本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。 富士通半導体デバイス CONTROLLER MANUAL CM71-10110-5 FR30 32 ビット・マイクロコントローラ MB91150 Series ハードウェアマニュアル FR30 32 ビット・マイクロコントローラ MB91150 Series ハードウェアマニュアル 開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。 『Check Sheet』は , 下記サポートページに掲載しています。 URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html 『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を リストにしたものです。 富士通株式会社 はじめに ■ 本書の目的と対象読者 MB91150 シリーズ ( 以降 , MB91150 と表記します ) は , 新しい RISC アーキテクチャの CPU をコアとした「32 ビット・シングルチップ・マイクロコントローラ FR30」の 1 つとして開発された製品で , 低消費電力動作を要求されるオーディオ , MD 等に適した 周辺 I/O リソースを内蔵した , シングルチップ指向のマイクロコントローラです。 本書は , 実際にこの MB91150 を使用して製品を開発される技術者の方を対象に , MB91150 の機能や動作について解説したものです。本書をご一読ください。なお , 各 種命令の詳細については ,「インストラクション・マニュアル」をご参照ください。 ■ 商標 FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。 Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。 ■ ライセンス 本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用されることを条件に , Philips 社 I2C 特許がライセンスされております。 Purchase of FUJITSU Ltd, I2C components conveys a license under the Philips I2C Patent Right to use, these components in an I2C system provided that the system conforms to the I2C Standard Specification as defined by Philips. i ■ 本書の全体構成 本書は , 以下に示す 22 の章および付録から構成されています。 第 1 章 MB91150 の概要 この章では , MB91150 の特長 , ブロックダイヤグラム , 機能概要など全体を知るた めの基本的なことについて説明します。 第 2 章 デバイスの取扱いについて この章では , MB91150 の取扱い上の注意について説明します。 第 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 章 割込みコントローラ この章では , 割込みコントローラの概要 , ブロックダイヤグラム , レジスタの構成 / 機能および割込みコントローラの動作について説明します。 第 13 章 8/10 ビット A/D コンバータ この章では , 8/10 ビット A/D コンバータの概要 , ブロックダイヤグラム , 端子 , レジ スタの構成 / 機能 , 割込み , 動作 , A/D 変換データ保護機能および 8/10 ビット A/D ii コンバータの使用上の注意事項について説明します。 第 14 章 8 ビット D/A コンバータ この章では , 8 ビット D/A コンバータの概要 , ブロックダイヤグラム , レジスタの構 成 / 機能および 8 ビット D/A コンバータの動作について説明します。 第 15 章 UART この章では , UART の概要 , ブロックダイヤグラム , 端子 , レジスタの構成 / 機能 , 割込み , タイミング , ボーレート , 動作および UART の使用上の注意事項について 説明します。 第 16 章 I2C インタフェース この章では , I2C インタフェースの概要 , ブロックダイヤグラム , レジスタの構成 / 機能および I2C インタフェースの動作について説明します。 第 17 章 DMA コントローラ (DMAC) この章では , DMAC の概要 , ブロックダイヤグラム , レジスタの一覧 / 詳細 , 動作 , 注意事項 , DMA 転送要式要因および DMAC のタイミングについて説明します。 第 18 章 ビットサーチモジュール この章では , ビットサーチモジュールの概要 , レジスタの構成 / 機能およびビット サーチモジュールの待避・復帰の処理について説明します。 第 19 章 周辺ストップ制御 この章では , 周辺ストップ制御の概要 , レジスタの構成 / 機能について説明します。 第 20 章 カレンダーマクロ この章では , カレンダーマクロの概要 , レジスタの構成 / 機能およびカレンダーマク ロの動作について説明します。 第 21 章 フラッシュメモリ この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , 動作 , 自動アルゴリ ズムおよびフラッシュメモリの書込み / 消去の詳細について説明します。 第 22 章 FR MB91F155A シリアル書込み接続 この章では, 株式会社横河ディジタルコンピュータ製AF220/AF210/AD120/AF110フ ラッシュマイコンプログラマを用いた場合の , シリアル書込み接続例について説明 します。 付録 付録には , I/O マップ , 割込みベクタ , 各 CPU ステートにおける端子状態 , リトルエ ディアン領域を利用する際の注意事項および命令一覧を掲載しています。 iii • • • • • • 本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認 ください。 本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので , 実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当 社はその責任を負いません。 本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的 財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用 について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従 いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任 を負いません。 本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用 されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保 されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力 施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生 命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性 が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承 ください。 半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 , 火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策 設計 , 誤動作防止設計などの安全設計をお願いします。 本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該 当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。 Copyright ©2001-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 ブロックダイヤグラム............................................................................................................ 5 外形寸法図.............................................................................................................................. 7 端子配列 ............................................................................................................................... 10 端子機能説明 ........................................................................................................................ 13 入出力回路形式 .................................................................................................................... 21 デバイスの取扱いについて ...................................................................... 25 デバイス取扱い上の注意 ...................................................................................................... 26 各デバイス使用上の注意 ...................................................................................................... 28 電源投入 ............................................................................................................................... 29 メモリ空間 , CPU および制御部 .............................................................. 31 3.1 メモリ空間............................................................................................................................ 32 3.2 CPU アーキテクチャ ............................................................................................................ 34 3.3 プログラミングモデル.......................................................................................................... 37 3.4 データ構造............................................................................................................................ 43 3.5 ワードアライメント ............................................................................................................. 44 3.6 特別なメモリ領域 ................................................................................................................. 45 3.7 命令概要 ............................................................................................................................... 46 3.7.1 遅延スロット付き分岐命令 ........................................................................................ 48 3.7.2 遅延スロットなし分岐命令 ........................................................................................ 50 3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 51 3.8.1 割込みレベル .............................................................................................................. 52 3.8.2 割込みスタック .......................................................................................................... 53 3.8.3 EIT ベクタテーブル.................................................................................................... 54 3.8.4 多重 EIT 処理.............................................................................................................. 55 3.8.5 EIT 動作...................................................................................................................... 57 3.9 リセットシーケンス ............................................................................................................. 61 3.10 動作モード............................................................................................................................ 62 3.11 クロック発生部 ( 低消費電力メカニズム ) ........................................................................... 64 3.11.1 リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) ......... 66 3.11.2 スタンバイ制御レジスタ (STCR)............................................................................... 68 3.11.3 タイムベースタイマクリアレジスタ (CTBR)............................................................. 69 3.11.4 ギア制御レジスタ (GCR) ........................................................................................... 70 3.11.5 ウォッチドッグリセット発生延期レジスタ (WPR) ................................................... 72 3.11.6 DMA 要求抑止レジスタ (PDRR) ................................................................................ 73 3.11.7 PLL 制御レジスタ (PCTR).......................................................................................... 74 3.11.8 ウォッチドッグタイマ機能 ........................................................................................ 75 3.11.9 ギア機能 ..................................................................................................................... 77 3.11.10 リセット要因保持....................................................................................................... 79 3.11.11 PLL のクロック設定例 ............................................................................................... 81 3.12 低消費電力モード ................................................................................................................. 84 3.12.1 ストップ状態 .............................................................................................................. 85 vii 3.12.2 3.12.3 第4章 スリープ状態 .............................................................................................................. 88 低消費電力モードの状態遷移図 ................................................................................. 90 バスインタフェース................................................................................. 91 4.1 バスインタフェースの概要................................................................................................... 92 4.2 バスインタフェースのブロックダイヤグラム...................................................................... 94 4.3 バスインタフェースのレジスタ ........................................................................................... 95 4.3.1 エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR)..................................... 96 4.3.2 エリアモードレジスタ 0 (AMD0) ............................................................................... 99 4.3.3 エリアモードレジスタ 1 (AMD1) ............................................................................. 101 4.3.4 エリアモードレジスタ 32 (AMD32) ......................................................................... 102 4.3.5 エリアモードレジスタ 4 (AMD4) ............................................................................. 103 4.3.6 エリアモードレジスタ 5 (AMD5) ............................................................................. 104 4.3.7 外部端子制御レジスタ 0 (EPCR0) ........................................................................... 105 4.3.8 外部端子制御レジスタ 1 (EPCR1) ........................................................................... 108 4.3.9 リトルエンディアンレジスタ (LER) ........................................................................ 109 4.4 バス動作 ............................................................................................................................. 110 4.4.1 データバス幅と制御信号との関係............................................................................ 111 4.4.2 ビッグエンディアンのバスアクセス ........................................................................ 112 4.4.3 リトルエンディアンのバスアクセス ........................................................................ 117 4.4.4 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 121 4.5 バスタイミング .................................................................................................................. 125 4.5.1 基本リードサイクル ................................................................................................. 126 4.5.2 基本ライトサイクル ................................................................................................. 128 4.5.3 各モードでのリードサイクル................................................................................... 130 4.5.4 各モードでのライトサイクル................................................................................... 132 4.5.5 リード / ライト混在サイクル.................................................................................... 134 4.5.6 自動ウェイトサイクル ............................................................................................. 135 4.5.7 外部ウェイトサイクル ............................................................................................. 136 4.5.8 外部バスリクエスト ................................................................................................. 137 4.6 内部クロック逓倍動作 ( クロックダブラ ) ......................................................................... 138 4.7 外部バス動作のプログラム例 ............................................................................................. 139 第5章 I/O ポート............................................................................................... 143 I/O ポートの概要 ................................................................................................................ 144 基本入出力ポートのブロックダイヤグラム ....................................................................... 145 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤグラム ........................................ 146 入出力ポート ( オープンドレイン出力機能 , プルアップ抵抗付き ) の ブロックダイヤグラム........................................................................................................ 147 5.5 入出力ポート ( オープンドレイン出力機能付き ) のブロックダイヤグラム ...................... 149 5.6 ポートデータレジスタ (PDR2 ∼ PDRL)............................................................................ 150 5.7 データ方向レジスタ (DDR2 ∼ DDRL) ............................................................................... 151 5.8 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) .................................................................. 153 5.9 オープンドレイン制御レジスタ (OCRH, OCRI) ................................................................ 154 5.10 アナログ入力制御レジスタ (AICR)..................................................................................... 155 5.1 5.2 5.3 5.4 viii 第6章 8/16 ビットアップダウンカウンタ / タイマ ........................................... 157 6.1 8/16 ビットアップダウンカウンタ / タイマの概要............................................................. 158 6.2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム................................ 160 6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 .............................................. 162 6.3.1 カウンタコントロールレジスタ "H"/"L" ch.0 (CCRH0/CCRL0) ............................... 163 6.3.2 カウンタコントロールレジスタ "H"/"L" ch.1 (CCRH1/CCRL1) ............................... 166 6.3.3 カウンタステータスレジスタ 0/1 (CSR0, CSR1) .................................................... 167 6.3.4 アップダウンカウントレジスタ 0/1 (UDCR0, UDCR1) ........................................... 169 6.3.5 リロード / コンペアレジスタ 0/1 (RCR0, RCR1)..................................................... 170 6.4 カウントモード選択の動作................................................................................................. 171 6.5 リロード / コンペア機能の動作 .......................................................................................... 174 6.6 アップダウンカウントレジスタ (UDCR) へのデータの書込み .......................................... 177 第7章 16 ビットリロードタイマ ...................................................................... 179 7.1 16 ビットリロードタイマの概要 ........................................................................................ 180 7.2 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 181 7.3 16 ビットリロードタイマのレジスタ一覧.......................................................................... 182 7.3.1 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ..................................... 183 7.3.2 16 ビットタイマレジスタ (TMR0 ∼ TMR3)/ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3)................................................ 185 7.4 内部クロック動作 ............................................................................................................... 186 7.5 アンダフロー動作 ............................................................................................................... 187 7.6 カウンタの動作状態 ........................................................................................................... 189 第8章 PPG タイマ ............................................................................................ 191 8.1 PPG タイマの概要.............................................................................................................. 192 8.2 PPG タイマのブロックダイヤグラム................................................................................. 193 8.3 PPG タイマのレジスタ ...................................................................................................... 195 8.3.1 コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............ 197 8.3.2 PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) .......................................................... 201 8.3.3 PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) ................................................ 202 8.3.4 PWM タイマレジスタ (PTMR0 ∼ PTMR5).............................................................. 203 8.3.5 ジェネラルコントロールレジスタ 1 (GCN1) ........................................................... 204 8.3.6 ジェネラルコントロールレジスタ 2 (GCN2) ........................................................... 207 8.4 PWM 動作........................................................................................................................... 208 8.5 ワンショット動作 ............................................................................................................... 210 8.6 PWM タイマの割込み要因とタイミングチャート.............................................................. 212 8.7 ジェネラルコントロールレジスタを使った複数チャネルの起動 ....................................... 214 第9章 多機能タイマ.......................................................................................... 215 9.1 多機能タイマの概要 ........................................................................................................... 216 9.2 多機能タイマのブロックダイヤグラム............................................................................... 218 9.3 多機能タイマのレジスタ .................................................................................................... 219 9.3.1 16 ビットフリーランタイマのレジスタ ................................................................... 220 9.3.2 アウトプットコンペアのレジスタ............................................................................ 223 9.3.3 インプットキャプチャのレジスタ............................................................................ 226 9.4 多機能タイマユニットの動作 ............................................................................................. 228 9.4.1 16 ビットフリーランタイマ部 ................................................................................. 229 9.4.2 16 ビットアウトプットコンペア.............................................................................. 231 ix 9.4.3 16 ビットインプットキャプチャ.............................................................................. 233 第 10 章 外部割込み制御部 .................................................................................. 235 10.1 外部割込み制御部の概要 .................................................................................................... 236 10.2 外部割込み制御部のレジスタ ............................................................................................. 237 10.2.1 割込み許可レジスタ (ENIR0, ENIR1)....................................................................... 238 10.2.2 外部割込み要因レジスタ (EIRR0, EIRR1) ............................................................... 239 10.2.3 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1)............................................ 240 10.3 外部割込み制御部の動作 .................................................................................................... 241 10.4 外部割込み要求レベル........................................................................................................ 242 第 11 章 遅延割込みモジュール ........................................................................... 245 11.1 遅延割込みモジュールの概要 ............................................................................................. 246 11.2 遅延割込み制御レジスタ (DICR) ........................................................................................ 247 11.3 遅延割込みモジュールの動作 ............................................................................................. 248 第 12 章 割込みコントローラ............................................................................... 249 12.1 割込みコントローラの概要................................................................................................. 250 12.2 割込みコントローラのブロックダイヤグラム.................................................................... 251 12.3 割込み制御のレジスタ........................................................................................................ 252 12.3.1 割込み制御レジスタ (ICR00 ∼ ICR47) .................................................................... 254 12.3.2 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL).................................. 255 12.4 優先順位判定 ...................................................................................................................... 256 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 ....................................................... 258 12.6 ホールドリクエスト取下げ要求 ......................................................................................... 259 12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 ..................................................... 260 第 13 章 8/10 ビット A/D コンバータ................................................................... 263 13.1 8/10 ビット A/D コンバータの概要 .................................................................................... 264 13.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 265 13.3 8/10 ビット A/D コンバータの端子 .................................................................................... 267 13.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 269 13.4.1 A/D 制御ステータスレジスタ 1 (ADCS1)................................................................. 270 13.4.2 A/D 制御ステータスレジスタ 0 (ADCS0)................................................................. 273 13.4.3 A/D データレジスタ (ADCR) .................................................................................... 276 13.5 割込み ................................................................................................................................. 278 13.6 8/10 ビット A/D コンバータの動作 .................................................................................... 279 13.7 A/D 変換データ保護機能 .................................................................................................... 281 13.8 8/10 ビット A/D コンバータの使用上の注意 ...................................................................... 282 第 14 章 8 ビット D/A コンバータ........................................................................ 283 14.1 8 ビット D/A コンバータの概要 ......................................................................................... 284 14.2 8 ビット D/A コンバータのブロックダイヤグラム............................................................. 285 14.3 8 ビット D/A コンバータのレジスタ .................................................................................. 286 14.3.1 D/A コントロールレジスタ (DACR0, DACR1, DACR2)........................................... 287 14.3.2 D/A データレジスタ (DADR2, DADR1, DADR0)...................................................... 288 14.4 8 ビット D/A コンバータの動作説明 .................................................................................. 289 x 第 15 章 UART ..................................................................................................... 291 15.1 UART の概要 ...................................................................................................................... 292 15.2 UART のブロックダイヤグラム ......................................................................................... 294 15.3 UART の端子 ...................................................................................................................... 296 15.4 レジスタ ............................................................................................................................. 298 15.4.1 制御レジスタ (SCR0 ∼ SCR3) ................................................................................ 299 15.4.2 モードレジスタ (SMR0 ∼ SMR3)............................................................................ 301 15.4.3 ステータスレジスタ (SSR0 ∼ SSR3)...................................................................... 303 15.4.4 インプットデータレジスタ (SIDR0 ∼ SIDR3), アウトプットデータレジスタ (SODR0 ∼ SODR3) ................................................. 305 15.4.5 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) ............................... 307 15.5 UART の割込み................................................................................................................... 309 15.6 受信割込み発生とフラグセットのタイミング.................................................................... 311 15.7 送信割込み発生とフラグセットのタイミング.................................................................... 312 15.8 ボーレート.......................................................................................................................... 313 15.8.1 専用ボーレートジェネレータによるボーレート ...................................................... 315 15.8.2 内部タイマ (16 ビットリロードタイマ 0) によるボーレート................................... 318 15.8.3 外部クロックによるボーレート ............................................................................... 320 15.9 UART の動作 ...................................................................................................................... 321 15.9.1 非同期モード ( 動作モード 0, 1) 時の動作................................................................ 323 15.9.2 同期モード ( 動作モード 2) 時の動作 ....................................................................... 326 15.9.3 双方向通信機能 ( ノーマルモード ) .......................................................................... 328 15.9.4 マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 330 15.10 UART の使用上の注意........................................................................................................ 332 第 16 章 I2C インタフェース ................................................................................ 333 16.1 I2C インタフェースの概要.................................................................................................. 334 16.2 I2C インタフェースのブロックダイヤグラム..................................................................... 335 16.3 I2C インタフェースのレジスタ .......................................................................................... 336 16.3.1 バスコントロールレジスタ (IBCR) .......................................................................... 337 16.3.2 バスステータスレジスタ (IBSR) .............................................................................. 343 16.3.3 アドレスレジスタ (IADR)/ データレジスタ (IDAR).................................................. 345 16.3.4 クロックコントロールレジスタ (ICCR) ................................................................... 346 16.4 I2C インタフェースの動作.................................................................................................. 348 第 17 章 DMA コントローラ (DMAC) .................................................................. 351 17.1 DMA コントローラの概要 .................................................................................................. 352 17.2 DMA コントローラのブロックダイヤグラム...................................................................... 353 17.3 DMA コントローラのレジスタ ........................................................................................... 354 17.3.1 DMAC パラメータディスクリプタポインタ (DPDP) ............................................... 355 17.3.2 DMAC コントロールステータスレジスタ (DACSR) ................................................ 356 17.3.3 DMAC 端子コントロールレジスタ (DATCR) ........................................................... 358 17.3.4 RAM 上のディスクリプタ内レジスタ ...................................................................... 360 17.4 DMA コントローラの転送モード........................................................................................ 363 17.4.1 ステップ転送 ( シングル / ブロック転送 ) ................................................................ 366 17.4.2 連続転送 ................................................................................................................... 367 17.4.3 バースト転送 ............................................................................................................ 368 17.4.4 DREQ センスモードによる違い............................................................................... 369 17.5 転送受付信号出力と転送終了信号出力............................................................................... 371 xi 17.6 DMA コントローラに関する注意事項 ................................................................................ 372 17.7 DMA コントローラのタイミング図 .................................................................................... 374 17.7.1 ディスクリプタアクセス部のタイミング図 ............................................................. 375 17.7.2 データ転送部のタイミング図................................................................................... 377 17.7.3 連続転送モードでの転送停止タイミング図 ............................................................. 378 17.7.4 転送の終了動作タイミング図................................................................................... 380 第 18 章 ビットサーチモジュール........................................................................ 383 18.1 ビットサーチモジュールの概要 ......................................................................................... 384 18.2 ビットサーチモジュールのレジスタ .................................................................................. 385 18.3 ビットサーチモジュールの動作と退避 / 復帰処理 ............................................................. 387 第 19 章 周辺ストップ制御 .................................................................................. 389 19.1 周辺ストップ制御の概要 .................................................................................................... 390 19.2 周辺ストップ制御のレジスタ ............................................................................................. 391 第 20 章 カレンダーマクロ .................................................................................. 395 20.1 カレンダーマクロの概要 .................................................................................................... 396 20.2 カレンダーマクロのレジスタ ............................................................................................. 397 20.3 カレンダーマクロの動作 .................................................................................................... 400 第 21 章 フラッシュメモリ .................................................................................. 401 21.1 フラッシュメモリの概要 .................................................................................................... 402 21.2 フラッシュメモリのレジスタ ............................................................................................. 405 21.3 フラッシュメモリの動作 .................................................................................................... 408 21.4 フラッシュメモリ自動アルゴリズム .................................................................................. 410 21.5 自動アルゴリズム実行状態の確認...................................................................................... 413 21.6 フラッシュメモリ書込み / 消去 .......................................................................................... 416 21.6.1 読出し / リセット状態にする.................................................................................... 417 21.6.2 データ書込みを行う ................................................................................................. 418 21.6.3 データ消去を行う..................................................................................................... 420 第 22 章 FR MB91F155A シリアル書込み接続.................................................... 423 22.1 基本構成 ............................................................................................................................. 424 22.2 フラッシュマイコンプログラマとの接続例 ....................................................................... 426 付録 ............................................................................................................... 429 付録 A I/O マップ ...................................................................................................................... 430 付録 B 付録 C 割込みベクタ ................................................................................................................. 437 各 CPU ステートにおける端子状態 .............................................................................. 440 付録 D リトルエンディアン領域を利用する際の注意事項 ....................................................... 447 D.1 D.2 D.3 D.4 付録 E C コンパイラ (fcc911) .................................................................................................. 448 アセンブラ (fasm911)................................................................................................... 451 リンカ (flnk911) ............................................................................................................ 453 デバッガ (sim911, eml911, mon911)............................................................................ 454 命令一覧 ........................................................................................................................ 455 E.1 FR ファミリの命令一覧表 ............................................................................................ 458 索引 ............................................................................................................... 471 xii 本版での主な変更内容 ページ − 変更内容(詳細は本文を参照してください。) レジスタ名を変更 ( ポート (PDR) → ポートデータレジスタ (PDR) ( オープンドレイン制御レジスタ (ODCR) → オープンドレイン制御レジスタ (OCR)) ( 方向レジスタ (DDR) → データ方向レジスタ (DDR)) (AICK(Analog Input Control register on port-K) → AICR (Analog Inp ut Control register on port-K)) アナログ入力制御レジスタ (AIC) → アナログ入力制御レジスタ (AICR) ( カウンタコントロールレジスタ ch0,1(CSR0,1) → カウンタステータスレジスタ ch0,1(CSR0,1)) ( カウンタ制御レジスタ ハイ / ロウ ch0(CCR H/L ch0) → カウンタコントロールレジ スタ "H"/"L" ch.0 (CCRH0/CCRL0)) ( カウンタ制御レジスタ ハイ / ロウ ch1(CCR H/L ch1) → カウンタコントロールレジ スタ "H"/"L" ch.1 (CCRH1/CCRL1)) ( リロード / コンペアレジスタ 0/1 (CCR0/1) →リロード / コンペアレジスタ 0/1 (CCRH/CCRL)) ( タイマコントロールレジスタ (TCCS) →タイマコントロールステータスレジスタ (TCCS)) (A/D 制御ステータスレジスタ (ADCS1) → A/D 制御ステータスレジスタ 1 (ADCS1)) (A/D データビット → 変換分解能選択ビット ) ( アナログ入力許可レジスタ (AICK) → アナログ入力制御レジスタ (AICR)) (D/A コンバータデータレジスタ → D/A データレジスタ ) ( モードレジスタ 1(SMC0 ∼ SMC3) →モードレジスタ 1(SMR0 ∼ SMR3)) ( ステータスレジスタ (FLCL) → ステータスレジスタ (FLCR)) 4 ● その他の特長 を変更 (・パッケージ を変更 ) (QFP-144 (MB91F155A) の記述を追加 ) 5, 6 図 1.2-1 ブロックダイヤグラム (MB91FV150, MB91F155A, MB91155) および図 1.2-2 ブロックダイヤグラム (MB91154) を変更 (P50/A8 → P50/A08) (P47/A7 → P47/A07) (P40/A0 → P40/A00) (PH2/SCK0/T00 → PH2/SCK0/TO0) (PH5/SCK1/T01 → PH5/SCK1/TO1) (PI2/SCK2/T02 → PI2/SCK2/TO2) (PI5/SCK3/T03 → PI5/SCK3/TO3) (PD5/INT13/ZIN1 → PD5/INT13/ZIN1/TRG5) (PD4/INT12/ZIN0 → PD4/INT12/ZIN0/TRG4) (PD3/INT11/BIN1 → PD3/INT11/BIN1/TRG3) (PD2/INT10/AIN1 → PD2/INT10/AIN1/TRG2) (PD1/INT9/BIN0(I) → PD1/INT9/BIN0(I)/TRG1) (PD0/INT8/AIN0(I) → PD0/INT8/AIN0(I)/TRG0) 7 ■ PGA-299C-A01 の外形寸法図 (MB91FV150 のみ ) を変更 ( ■ FPT-100P-M05 の外形寸法図 → ■ PGA-299C-A01 の外形寸法図 (MB91FV150 の み )) xiii ページ 変更内容(詳細は本文を参照してください。) 9 ■ FPT-144P-M01 の外形寸法図 (MB91F155A のみ ) を追加 15 表 1.5-1 端子機能一覧 (3 / 8) を変更 (Pin No.69 ∼ 74 の機能説明を変更 ) ([AIN,BIN] → [ZIN0, ZIN1]) ([TRG] → [TRG0 ∼ TRG5]) 18 表 1.5-1 端子機能一覧 (6 / 8) を変更 (Pin No.116 の機能説明を変更 ) (DMA 外部転送終了出力が禁止の場合は , ポートとして使用できます。の文を追加 ) 19 表 1.5-1 端子機能一覧 (7 / 8) を変更 (Pin No.119 の機能説明を変更 ) (DMA 外部転送要求入力が未使用の場合は , ポートとして使用できます。の文を追加 ) 21 ∼ 23 表 1.6-1 入出力回路形式 を変更 ( ヒステリシス入力 → CMOS ヒステリシス入力 ) ( 分類 H, O, P の プルアップ抵抗値 = 約 50KΩ(TYP) を削除 ) ( 分類 N の AIC → AICR レジスタ ) 27 ● 水晶発振回路について を変更 ( 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。の 文を追加 ) 28 ■ ウォッチドッグタイマ機能について を変更 ( ウォッチドッグの機能説明 → 「3.11.8 ウォッチドッグタイマ機能」) 29 ● 電源電圧不安定 , または電源遮断時の扱いについて を追加 46 ● 分岐 を変更 ( 分岐命令の詳細については後述します。→ 分岐命令の詳細については「3.7.1 遅延 スロット付き分岐命令」を参照してください。) 52 表 3.8-1 割込みレベル を変更 54 表 3.8-2 ベクタテーブル を変更 ( ベクタ番号 10 の説明を変更 ) ( 命令ブレーク例外 → システム予約 ) 64 図 3.11-1 クロック発生部のレジスタ構成 を変更 (PLL → PLL 制御レジスタ ) 75 3.11.8 ウォッチドッグタイマ機能 の要約を変更 ( ウォッチドッグ機能は , プログラムの暴走状態を検出する機能です。→ ウォッチ ドッグタイマ機能は , タイムベースタイマ出力を用いて動作し , プログラムの暴走状 態を検出する機能です。) ■ ウォッチドッグタイマ機能の設定 を変更 ( 差替え ) 83 ■ アセンブラのソース例 (PLL 系への切替え動作の例 ) を変更 (and R5,R3 ; PTCR → VSTP=1 ? → and R5,R3 ; PCTR → VSTP=1 ?) 85 3.12.1 ストップ状態の要約を変更 (32K → 32kHz) 104 ■ エリアモードレジスタ 5 (AMD5) を変更 ( エリアモードレジスタ 5(AMD4) → エリアモードレジスタ 5 (AMD5)) 109 ■ リトルエンディアンレジスタ (LER) を変更 ([bit 2 ∼ bit 0] LE2 ∼ LE0 (Little-Endian Register 2 ∼ 0) リトルエンディアンの設定をします。の文を追加 ) ■ モードレジスタ (MODR) を変更 (MODR (MODe Register) → ■ モードレジスタ (MODR)) xiv ページ 変更内容(詳細は本文を参照してください。) 115 図 4.4-8 ビッグエンディアンの外部バスアクセス (8 ビットバス幅 ) を変更 ((c)PA1/ PA0="10" および (d)PA1/PA0="11" を変更 ) ( → (1) 出力 A1/A0="10" (2) 出力 A1/A0="10" → → (1) 出力 A1/A0="10" (2) 出力 A1/A0="11") 120 図 4.4-15 外部デバイスとの接続例 (16 ビットバス幅 ) を変更 (WR0 と WR1 の記載位置を変更 ) 133 図 4.5-12 ライトサイクルのタイミング例 5 を変更 (BA → BA2) 134 図 4.5-13 リード / ライト混在サイクルのタイミング例 を変更 (BA → BA2) 145 ■ 基本入出力ポートのブロックダイヤグラム の<注意事項>を変更 (AIC → AICR レジスタ ) 158 ■ 8/16 ビットアップダウンカウンタ / タイマの特長 を変更 (0d ∼ 255d → 0 ∼ 255(00H ∼ FFH) (0d ∼ 65,535d → 0 ∼ 65,535 (0000H ∼ FFFFH)) 160 図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.0) を 変更 (C/GS → CGSC) (RCUT → CTUT) 161 図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.1) を 変更 (C/GS → CGSC) (RCUT → CTUT) 162 図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 を変更 (D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08) 169 ■ アップダウンカウントレジスタ 0/1 (UDCR0, UDCR1) を変更 ( 図のビットを変更 ) (D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08) 170 ■ リロード / コンペアレジスタ 0/1 (RCR0, RCR1) を変更 ( 図のビットを変更 ) (D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08) 173 ● 4 逓倍モード を変更 ( なお , このカウントモード選択時は , USS1,USS0,DSS1,DSS0 → なお , このカウント モード選択時は , CCRH の CES1, CES0) 181 図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム を変更 (EXCK の部分を削除 ) 197 [bit 14] STGR: ソフトウェアトリガビット を変更 ([bit 14] TGR: ソフトウェアトリガビット → [bit 14] STGR: ソフトウェアトリガビット ) 218 図 9.2-1 多機能タイマのブロックダイヤグラム を変更 (MSI3 ∼ 0 および ICLR の部分 を削除 ) (ICRE → CST0) 221 [bit 4] MODE を変更 ( クリアビット (bit3:CLR) → クリアビット (bit3:SCLR)) xv ページ 変更内容(詳細は本文を参照してください。) 226 [bit 7, bit 6] ICP3, ICP2, ICP1, ICP0 を変更 ([bit 15,14,7,6] ICP3, ICP2, ICP1, ICP0 → [bit 7, bit 6] ICP3, ICP2, ICP1, ICP0) 227 [bit 5, bit 4] ICE3, ICE2, ICE1, ICE0 を変更 ([bit 13,12,5,4] ICE3, ICE2, ICE1, ICE0 → [bit 5, bit 4] ICE3, ICE2, ICE1, ICE0) [bit 3 ∼ bit 0] EG31/30, EG21/20, EG11/10, EG01/00 を変更 ([bit 11 ∼ 8,3 ∼ 0] EG31/30,EG21/20,EG11/10,EG01/00 → [bit 3 ∼ bit 0] EG31/30, EG21/ 20, EG11/10, EG01/00) 231 図 9.4-5 コンペアレジスタ 0, 1 を使用した時の出力波形例 ( 出力の初期は "0") および 図 9.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0") を 変更 (RTO0 → アウトプットコンペア 0) (RTO1 → アウトプットコンペア 1) 233 図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例 を変更 (N0 → IN0) (N1 → IN1) (N 例 → IN 例 ) ( 矢印の向き を変更 ) 237 図 10.2-1 外部割込み制御部のレジスタ一覧 を変更 ( 外部割込み許可レジスタ (ENIR1) を追加 ) ( 外部割込み要因レジスタ (EIRR1) を追加 ) ( 要求レベル設定レジスタ (ELVR1 ) を追加 ) 238 10.2.1 割込み許可レジスタ (ENIR0, ENIR1) を変更 (ENIRn → ENIR0, ENIR1) 239 10.2.2 外部割込み要因レジスタ (EIRR0, EIRR1) を変更 (EIRRn → EIRR0, EIRR1) 240 ■外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register 0,1) を 変更 (ELVR の割当て表 → 外部割込み要求レベル設定 ) 表 10.2-1 外部割込み要求レベル設定表 を変更 (LBx → LB15 ∼ LB0) (Lax → LA15 ∼ LA0) 241 ■外部割込みの動作手順 を変更 (1) 外部割込みの入力として使用する端子と兼用する汎用入出力ポートを入力ポート に設定する。の文を追加 ) 242 , 243 ( ■ 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における 注意事項 を追加 ) ( 図 10.4-3 STOP 状態からの外部割込みによる復帰動作のシーケンス を追加 ) ( ■ STOP 状態からの復帰動作について を追加 ) 250 ■ 割込みコントローラのハードウェア構成 を変更 (・ICR レジスタ → ・割込み制御レジスタ (ICR レジスタ : ICR00 ∼ ICR47)) 251 図 12.2-1 割込みコントローラのブロックダイヤグラム を変更 ( リソース割込み の記述を追加 ) 256 , 257 表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 を変更 ( システム予約 の行を追加 ) xvi ページ 変更内容(詳細は本文を参照してください。) 260 図 12.7-1 ホールドリクエスト取下げ要求信号の流れ を変更 (HACK の記述を追加 ) (HACK : ホールドアクノリッジの記述を追加 ) 265 図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム を変更 (AVR ± → AVRH, AVRL) 267 表 13.3-1 8/10 ビット A/D コンバータの端子 を変更 ( 端子の使用に必要な I/O ポート の設定 を変更 ) ((AICK:bit0 ∼ 7=1) → (AICR:bit0 ∼ bit 7=1)) 268 図 13.3-1 PK0/AN0 ∼ PK7/AN7 端子のブロックダイヤグラム を変更 ((HIZX=1) の記述を削除 ) 270 図 13.4-2 A/D 制御ステータスレジスタ 1 (ADCS1) のレジスタ構成と機能概要 を変更 ( タイマ起動 → 16 ビットリロードタイマ起動 ) [bit 7, bit 6] MD1, MD0:A/D 変換モード選択ビット の<注意事項> を変更 (・A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中 274 の再起動ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設 定可能です。再起動は下記の手順で行ってください。 (1) INT ビットを 0 にクリアする (2) STRT ビットに 1 を , INT ビットに 0 を同時にライトするを追加 ) 275 [bit 2, bit 1, bit 0] ANE2, ANE1, ANE0:A/D 変換終了チャネル選択ビット に<注意事項 >を追加 276 図 13.4-4 A/D データレジスタ (ADCR) のレジスタ構成と機能概要を変更 ((0) (0) (1) (0) (1) (X) (X) → (0) (0) (1) (0) (1) (X) (X) (X)) (A/D データビット → 変換分解能選択ビット ) 279 ■ 単発変換モード の動作 に<注意事項>を追加 282 ● アナログ入力端子 を変更 ((AIx=1) の記述を削除 ) ((AIx=0) の記述を削除 ) ● A/D 変換の再起動について を追加 288 [bit 23 ∼ bit 16] DA27 ∼ DA20 を変更 (DADR2 → DA27 ∼ DA20) [bit 15 ∼ bit 8] DA17 ∼ DA10 を変更 (DADR1 → DA17 ∼ DA10) [bit 7 ∼ bit 0] DA07 ∼ DA00 を変更 (DADR0 → DA07 ∼ DA00) 300 [bit 10] REC: 受信エラーフラグクリアビット の ( 注意事項 ) を変更 (FRE,DRE,PE フラグのいずれか → FRE, ORE, PE フラグのいずれか ) 302 [bit 1] SCKE: シリアルクロック出力許可ビット を変更 (SCKn → SCK0 ∼ SCK3) [bit 1] SCKE: シリアルクロック出力許可ビット の ( 注意事項 ) を変更 (( 注 1) SCKn 端子を → ・SCK0 ∼ SCK3 端子を ) (( 注 3) シリアルクロック出力許可 (SCKE-1) は , → ・シリアルクロック出力許可 (SCKE=1) は ,) [bit 0] SOE: シリアルデータ出力許可ビット を変更 (SOTn → SOT0 ∼ SOT3) xvii ページ 304 308 変更内容(詳細は本文を参照してください。) [bit 10] BDS: 転送方向選択ビット の ( 注意事項 ) を変更 (SDR レジスタ → SIDR0 ∼ SIDR3 レジスタ ) <注意事項> を変更 (・同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止で す。 - CS2 ∼ CS0=000B - CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B を追加 ) 313 ● 専用ボーレータジェネレータによるボーレートの選択 を変更 (BCH, の記述を削除 ) 316 表 15.8-2 同期ボーレート分周比の選択 を変更 (16M → − ) (8M → − ) (SCKI の列を削除 ) ● 同期転送クロック分周比 に<注意事項> を追加 表 15.8-3 非同期ボーレート分周比の選択 を変更 ((Hz) の記述を追加 ) (SCKI の列を削除 ) ● 内部タイマ の<注意事項> を削除 ( モード 2(CLK 同期モード ) の場合は ,SCKI に対して SCKO が MAX3 クロック遅れ ます。論理上可能な転送レートは , システムクロックの周波数の 1/3 となります。実 仕様上は ,1/4 を推奨します。の文を削除 ) 320 ■ 外部クロックによるボーレート を変更 (・外部クロックを入力するポートを入力設定にします。の文を追加 ) 323 ● 転送データフォーマット を変更 ( 動作モード 0 では , パリティなしのときのデータは 7 ビット長 , パリティありのと きのデータは 8 ビット長に固定されています。→ 動作モード 0 のノーマルモードは , データ長は 7 ビットまたは 8 ビットに設定が可能です。) 329 図 15.9-8 双方向通信フローの例 を変更 (UODR → SODR) 338 [bit 12] MSS (Master Slave Select) に <注意事項>を追加 340 ∼ 342 [bit 8] INT (INTerr upt) に<注意事項> を追加 344 [bit 4] LRB (Last Received Bit) を変更 ( 表を追加 ) 345 [bit 14 ∼ bit 8] A6 ∼ A0 ( スレーブアドレスビット ) を変更 (DAR レジスタ → IDAR レジスタ ) 346 [bit 5] EN (ENa ble) を変更 (BSR レジスタ ,BCR レジスタ → IBSR レジスタ , IBCR レジスタ ) 353 図 17.2-1 DMA コントローラのブロックダイヤグラム を変更 (DREQO-2 → DREQ0 ∼ DREQ2) 356 [bit 31, bit 27, bit 23, bit 19, bit 15, bit 11, bit 7, bit 3] DER7 ∼ DER0 (DMA ERror) を変更 (DERn → DER7 ∼ DER0) [bit 30, bit 26, bit 22, bit 18, bit 14, bit 10, bit 6, bit 2] DED7 ∼ DED0 (DMA EnD) を変更 (DEDn → DED7 ∼ DED0) xviii ページ 変更内容(詳細は本文を参照してください。) 357 [bit 29, bit 25, bit 21, bit 17, bit 13, bit 9, bit 5, bit 1] DIE7 ∼ DIE0 (DMA Interrupt Enable) を変更 (DIEn → DIE7 ∼ DIE0) (DEDn → DED7 ∼ DED0) [bit 28, bit 24, bit 20, bit 16, bit 12, bit 8, bit 4, bit 0] DOE7 ∼ DOE0 (DMA Operation Ena ble) を変更 (DOEn → DOE7 ∼ DOE0) (DEDn → DED7 ∼ DED0) 358 [bit 21, bit 20, bit 13, bit 12, bit 5, bit 4] LS21, LS20, LS11, LS10, LS01, LS00 ( 転送要求入 力検出レベル選択 ) を変更 (LSn1,LSn0 → LS21, LS20, LS11, LS10, LS01, LS00) (DREQn → DREQ2 ∼ DREQ0) 359 [bit 19, bit 11, bit 3] AKSE2, AKSE1, AKSE0 を変更 (AKSEn → AKSE2, AKSE1, AKSE0) [bit 18, bit 10, bit 2] AKDE2, AKDE1, AKDE0 を変更 (AKDEn → AKDE2, AKDE1, AKDE0) [bit 17, bit 9, bit 1] EPSE2, EPSE1, EPSE0 を変更 (EPSEn → EPSE2, EPSE1, EPSE0) [bit 16, bit 8, bit 0] EPDE2, EPDE1, EPDE0 を変更 (EPDEn → EPDE2, EPDE1, EPDE0) 363 ■ シングル / ブロック転送モード を変更 (DOEn → DOE7 ∼ DOE0) (DEDn → DED7 ∼ DED0) ■ 連続転送モード を変更 (DOEn → DOE7 ∼ DOE0) 364 ■ 連続転送モード を変更 (DEDn → DED7 ∼ DED0) ■ バースト転送モード を変更 (DOEn → DOE7 ∼ DOE0) (DEDn → DED7 ∼ DED0) 369 図 17.4-5 レベルモード時のタイミング を変更 ( 最大 1CYC → 最大 1tcyc) 371 ■ 転送受付信号出力を変更 (AKSEn,AKDEn ビット → AKSE2 ∼ AKSE0, AKDE2 ∼ AKDE0 ビット ) ■ 転送終了信号出力を変更 (EPSEn,EPDEn ビット → EPSE2 ∼ EPSE0, EPDE2 ∼ EPDE0 ビット ) 373 ● DMAC 転送要求元のエラーステータス を変更 (DERn → DER7 ∼ DER0) 375 ● 要求端子入力モード : レベル , ディスクリプタアドレス : 外部 , ● 要求端子入力 モード : レベル , ディスクリプタアドレス : 内部 および● 要求端子入力モード : エッ ジ , ディスクリプタアドレス : 外部 を変更 (DREQn → DREQ2 ∼ DREQ0) (WRn → WR0,WR1) 376 ● 要求端子入力モード : エッジ , ディスクリプタアドレス : 内部 を変更 (DREQn → DREQ2 ∼ DREQ0) (WRn → WR0,WR1) xix ページ 変更内容(詳細は本文を参照してください。) 377 ● 転送元領域 : 外部 , 転送先領域 : 外部 , ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM および ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 を変更 (DREQn → DREQ2 ∼ DREQ0) (WRn → WR0,WR1) 378 ● 転送元領域 : 外部 , 転送先領域 : 外部 , ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM および ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 を変更 (DREQn → DREQ2 ∼ DREQ0) (WRn → WR0,WR1) 379 ● 転送元領域 : 外部 , 転送先領域 : 外部 , ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM および ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 を変更 (DREQn → DREQ2 ∼ DREQ0) (WRn → WR0,WR1) 380 ● バス幅 : 16 ビット , データ長 : 8/16 ビット および ● バス幅 : 16 ビット , データ長 : 32 ビット を変更 (WRn → WR0,WR1) 381 ● バス幅 : 16 ビット , データ長 : 8/16 ビット および ● バス幅 : 16 ビット , データ長 : 32 ビット を変更 (WRn → WR0,WR1) 392 [bit 2] ST12 を変更 ( 表を変更 ) (IIC → I2C) 396 図 20.1-2 カレンダーマクロのレジスタ一覧 を変更 (D7 - - D4 D3 D2 D1 D0 → RST - - - - - MD1 MD0) (- - D5 D4 D3 D2 D1 D0 → - - S5 S4 S3 S2 S1 S0) (- - D5 D4 D3 D2 D1 D0 → - - M5 M4 M3 M2 M1 M0) (- - - D4 D3 D2 D1 D0 → - - - H4 H3 H2 H1 H0) (- - - D4 D3 D2 D1 D0 → - - - DA4 DA3 DA2 DA1 DA0) (- - - - - D2 D1 D0 → - - - - - W2 W1 W0) (- - - - D3 D2 D1 D0 → - - - - MN3 MN2 MN1 MN0) (- D6 D5 D4 D3 D2 D1 D0 → - Y6 Y5 Y4 Y3 Y2 Y1 Y0) (D7 - - - - - D0 → TST - - - - - TST) 400 ■ 初期リセット を変更 (RST → RST) 403 図 21.1-1 フラッシュメモリのブロックダイヤグラム を変更 (RDY/BUSYX → RDY/BUSY) (RESETX → RESET) (BYTEX → BYTE) (OEX → OE) (WEX → WE) (CEX → CE) 407 [bit 0] LPM (Low Power Mode) を変更 ( 表を変更 ) (CEX → CE) xx ページ 410 変更内容(詳細は本文を参照してください。) 21.4 フラッシュメモリ自動アルゴリズム の要約 を変更 ( セクタ消去については一時停止と再開の制御が可能です。の文を削除 ) 表 21.4-1 コマンドシーケンス一覧 を変更 ( セクタ消去一時停止およびセクタ消去再開の行 を削除 ) ( 消去一時停止コマンド (B0H) と , 消去再開コマンド (30H) は , セクタ消去動作中の み有効です。の文を削除 ) 412 ○ 消去一時停止 を削除 413 ■ ハードウェアシーケンスフラグ を変更 ( 図を変更 ) (TOGGLE → ―) (TOGGL2 → ―) 414 表 21.5-1 ハードウェアシーケンスフラグ状態一覧 を変更 ( 表の一部分 を削除 ) ([bit 6] TOGGLE: トグルビット の記述を削除 ) ([bit 2] TOGGL2: トグルビット 2 の記述を削除 ) ( ○ セクタ消去一時停止時 を削除 ) ([bit 6] TOGGLE: トグルビットフラグ を削除 ) 415 ● 書込み / チップ・セクタ消去時 を変更 ( もしくはトグルビット機能 の記述を削除 ) ( またトグルビットフラグはトグル動作を止めず , タイムリミットを超え , タイミン グリミット超過フラグは "1" を出力します。の文を削除 ) ● セクタ消去動作時 を変更 ( やトグルビット機能 の記述を削除 ) ( または消去一時停止 の記述を削除 ) ([bit 2] TOGGL2: トグルビットフラグ 2 を削除 ) ( ○ セクタ消去一時停止時 を削除 ) 416 21.6 フラッシュメモリ書込み / 消去 の要約を変更 (, セクタ消去一時停止 , セクタ消去再開 の記述を削除 ) ■ フラッシュメモリ書込み / 消去 の概要を変更 (, セクタ消去一時停止 , 消去再開 の記述を削除 ) 418 ■ フラッシュメモリ書込み手順 を変更 ( トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット (TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (TOGGLE) を再チェックする必要があります。の文を削除 ) 420 ● セクタ消去手順 を変更 ( ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。の文 を削除 ) ( トグルビットフラグ (TOGGLE) は , タイミングリミット超過フラグ (TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フ ラグ (TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする 必要があります。の文を削除 ) 421 図 21.6-2 フラッシュメモリセクタ消去手順 の例を変更 422 21.6.4 セクタ消去を一時停止 / 再開する を削除 423 22 章 追加 431 ∼ 433 付表 A-1 I/O マップ の以下のレジスタについて アクセス単位を変更 (SIDR0/SODR0, SIDR1/SODR1, SIDR2/SODR2, SIDR3/SODR3, PCNH0, PCNH1, PCNH2, PCNH3, PCNH4, PCNH5) xxi ページ 432 , 433 435 438 , 439 441 ∼ 446 変更内容(詳細は本文を参照してください。) 付表 A-1 I/O マップのブロック を変更 (8/16bit U/D カウンタ → 8/16 ビットアップ / ダウンカウンタ ) (PPG ctl → PPG コントロール ) (Ext int → 外部割込み ) (A/D コンバータ ( 逐次型 ) → A/D コンバータ ) 付表 A-1 I/O マップ の PCTR レジスタについて アドレスを変更 (000488H → 000488H ∼ 00048BH) 付表 B-1 割込みベクタ を変更 ( − → ICR09) ( − → ICR14) ( − → ICR25) (A/D( 逐次型 ) → A/D) ( − → ICR45) 付表 C-2 外バス 16 ビットモード ∼ 付表 C-4 シングルチップモード を変更 (A0 ∼ 7 → A00 ∼ 07) (A8 ∼ 15 → A08 ∼ 15) ((BGRNT=1) → (BGRNT)) ((RST=1) の記述を削除 ) (SCK/TO2 → SCK2/TO2) 460 付表 E-5 論理演算命令 および 付表 E-6 ビット操作命令 を変更 (RMW の列 を追加 ) 465 付表 E-15 その他の命令 を変更 (RMW の列 を追加 ) xxii 第1章 概要 この章では , MB91150 の特長 , ブロックダイヤグ ラム , 機能概要など全体を知るための基本的なこと について説明します 。 1.1 特長 1.2 ブロックダイヤグラム 1.3 外形寸法図 1.4 端子配列 1.5 端子機能説明 1.6 入出力回路形式 1 第 1 章 概要 1.1 特長 MB91150 は 32 ビット RISC-CPU (FR30) をコアとし , 低消費電力動作を要求される オーディオ , MD 等に適した周辺 I/O リソースを内蔵した , シングルチップ指向のマ イクロコントローラです。 ■ MB91150 の特長 ● CPU • 32 ビット RISC (FR30), ロード / ストアアーキテクチャ , 5 段パイプライン • 汎用レジスタ :32 ビット× 16 本 • 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル • メモリ - メモリ間転送 , ビット処理 , バレルシフト等の命令 : 組込み用途に適した命令 • 関数入口 / 出口命令 , レジスタ内容のマルチロード / ストア命令 : 高級言語対応命令 • レジスタインターロック機能 : アセンブラ記述の容易化 • 遅延スロット付分岐命令 : 分岐処理時のオーバヘッドの低減 • 乗算器の内蔵 / 命令レベルでのサポート - 符号付 32 ビット乗算 :5 サイクル - 符号付 16 ビット乗算 :3 サイクル - 割込み (PC, PS の退避 ):6 サイクル , 16 プライオリティレベル ● バスインタフェース • 24 ビットアドレス出力 , 8/16 ビットデータ入出力 • 基本バスサイクル :2 クロックサイクル • 各種メモリに対するインタフェースのサポート • 未使用データ / アドレス端子は , 入出力ポートとして使用可能 • リトルエンディアンモードサポート ● 内蔵 ROM • MB91F155A, MB91FV150 フラッシュ品 , EVA- フラッシュ品 :510K バイト • MB91155 マスク品 :510K バイト • MB91154 マスク品 :384K バイト ● 内蔵 RAM マスク品 , フラッシュ品 , EVA- フラッシュ品 :2K バイト 2 第 1 章 概要 ● 内蔵データ RAM • MB91FV150, MB91F155A, MB91155 EVA- フラッシュ品 , フラッシュ品 , マスク品 :32K バイト • MB91154 マスク品 :20K バイト ● DMAC • 転送パラメータを主記憶上に配置するディスクリプタ形式の DMAC • 内部と外部合わせて最大 8 要因の転送が可能 • 外部要因は 3 チャネル ● ビットサーチモジュール 1 ワード中の MSB からの最初の 1/0 に変化ビットの位置を 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) 内蔵:任意のボーレー トを発生 ● I2C バスインタフェース • 1 チャネルマスタ / スレーブ送受信 • アービトレーション機能 , クロック同期化機能 ( 本製品は , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使 用する場合には , Philips 社 I2C 特許がライセンスされています。) 3 第 1 章 概要 ● クロック切換え機能 ギア機能 : 基本クロックに対する動作クロック比を CPU および周辺のそれぞれで独立 に 1:1, 1:2, 1:4, 1:8 の 4 種から設定可能 ● 時計機能 ( カレンダーマクロ ) • 32kHz による時計機能を内蔵 • ストップモード時においても 32kHz 発振による時計機能動作が可能 ( ストップモード時 , 32kHz 発振は停止しません ) ● 割込みコントローラ • 外部割込み入力 ( 合計 16 チャネル ) 立上り / 立下り /"H" レベル /"L" レベルの設定が可能 • 内部割込み要因 リソースによる割込み , 遅延割込み ● その他の特長 • リセット要因 パワーオンリセット / ウォッチドッグタイマ / ソフトウェアリセット / 外部リセット • 低消費電力モード スリープモード / ストップモード • パッケージ PGA-299 (MB91FV150) LQFP-144 (MB91F155A, MB91155, MB91154) QFP-144 (MB91F155A) • CMOS テクノロジ (0.35 µm) • 電源 3.15V ∼ 3.6V <注意事項> MB91F155 は , MB91F155A となりました。 4 第 1 章 概要 ブロックダイヤグラム 1.2 ここでは , MB91150 のブロックダイヤグラムをパッケージ別に示します。 ■ MB91FV150, MB91F155A, MB91155 のブロックダイヤグラム 図 1.2-1 に , MB91FV150, MB91F155A, MB91155 のブロックダイヤグラムを示します。 図 1.2-1 ブロックダイヤグラム (MB91FV150, MB91F155A, MB91155) MODE( ) ~ MD0 MD1 MD2 RST FR30 CPU Core D-bus I-bus 4 Calendar P50/A08 ~ P47/A07 ~ ~ Address PORT6/5/4( ) ~ P60/A16 P57/A15 DMAC 8ch Bit Search R-bus D-bus 24 P40/A00 7 C-bus External Bus CTL UART 4ch UTIMER 4ch Reload Timer 4ch P80/RDY(I) 510KB 16bit PPG 6ch 16bit OSC (2) Input Capture 4ch Clock Control 16bit Output Compare Interrupt 8bit 8 Up/Down Counter 2ch 8bit 3output D/A converter I 2C Interface External Interrupt 1ch 16ch 2 IC Interface PI2/SCK2/TO2 UART TOX: Reload Timer PI3/SIN3 PI4/SOT3 PJ0/SCL PJ1/SDA 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 DA(3) 10bit 8input A/D converter PI0/SIN2 PI1/SOT2 PI5/SCK3/TO3 8ch Controller 8 PORT C ( ) External Interrupt ROM PH2/SCK0/TO0 PH3/SIN1 PH4/SOT1 PORTF(5) Up/Down Counter Free RUN Timer PORTK(8) DMAC 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) 16bit 1ch 8 PORT D( ) A/D 2KB PH0/SIN0 PH1/SOT0 PORT(2) Clock X0 (I) X1 (I) PORT L( ) DMAC PL7/DACK2 PL6/DREQ2 PL5/DEOP1 PL4/DACK1 PL3/DREQ1 PL2/DEOP0(O) PL1/DACK0(O) PL0/DREQ0(I) PPG PH5/SCK1/TO1 16bit P81/BGRNT(O) RAM PG5/PPG5 PG4/PPG4 PG3/PPG3 PG2/PPG2 PG1/PPG1 PG0/PPG0 PORTI(6) PORT8( ) Bus Control P86/CLK(O) P85/WR1(O) P84/WR0 P83/RD(O) P82/BRQ(I) D-bus I-bus Output Compare PORT H(6) ~ 16 P20/D16 P67/A23(O) PE7/OC7 PE6/OC6 PE5/OC5 PE4/OC4 PE3/OC3 PE2/OC2 PE1/OC1 PE0/OC0 PORTE(8) Data RAM 32KB Clock PORTG(6) ~ P30/D24 P27/D23 PORT3/2( ) ~ DATA P37/D31(IO) X0A X1A OSC (2) DA2 DA1 DA0 I2C A/D Input Capture 1ch 5 第 1 章 概要 ■ MB91154 のブロックダイヤグラム 図 1.2-2 に , MB91154 のブロックダイヤグラムを示します。 図 1.2-2 ブロックダイヤグラム (MB91154) MODE(4) ~ MD0 MD1 MD2 RST FR30 CPU Core D-bus I-bus Calendar Data RAM 20KB ) 16 D-bus R-bus ) 24 P40/A00 C-bus UART 4ch UTIMER 4ch External Bus CTL 16bit Reload Timer P81/BGRNT(O) 4ch P80/RDY(I) RAM 384KB 16bit PPG 6ch Input Capture 4ch Clock Control 16bit Output Compare Interrupt 10bit 8input A/D converter 8bit Up/Down Counter 2ch External Interrupt 1ch 16ch PPG PH0/SIN0 PH1/SOT0 PH2/SCK0/TO0 PH3/SIN1 PH4/SOT1 8bit 3output D/A converter I2C Interface 1ch PI0/SIN2 PI1/SOT2 UART TOX: Reload Timer PI2/SCK2/TO2 PI3/SIN3 PI4/SOT3 PI5/SCK3/TO3 8ch Controller I 2C Interface PG5/PPG5 PG4/PPG4 PG3/PPG3 PG2/PPG2 PG1/PPG1 PG0/PPG0 PJ0/SCL PJ1/SDA 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 DA(3) 6 OSC (2) PORTC(8) External Interrupt 1ch ROM Output Compare PORTF(5) Up/Down Counter Free RUN Timer PORTK(8) DMAC 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) 2KB 16bit PORTD(8) A/D X0 (I) X1 (I) 16bit PORT J(2) Clock PORTL(8) DMAC PL7/DACK2 PL6/DREQ2 PL5/DEOP1 PL4/DACK1 PL3/DREQ1 PL2/DEOP0(O) PL1/DACK0(O) PL0/DREQ0(I) Clock PE7/OC7 PE6/OC6 PE5/OC5 PE4/OC4 PE3/OC3 PE2/OC2 PE1/OC1 PE0/OC0 PH5/SCK1/TO1 PORTI(6) PORT8(7) Bus Control P86/CLK(O) P85/WR1(O) P84/WR0 P83/RD(O) P82/BRQ(I) D-bus I-bus PORT H(6) ~ P50/A08 P47/A07 Bit Search PORTG(6) Address DMAC 8ch PORT6/5/4( ~ P60/A16 P57/A15 ~ ~ P20/D16 P67/A23(O) PORTE(8) PORT3/2( ~ P30/D24 P27/D23 ~ ~ DATA P37/D31(IO) X0A X1A OSC (2) DA2 DA1 DA0 I2C A/D Input Capture 第 1 章 概要 1.3 外形寸法図 MB91150 には , 2 種類のパッケージが用意されています。 ■ PGA-299C-A01 の外形寸法図 (MB91FV150 のみ ) 図 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) 注意:括弧内の値は参考値です。 7 第 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 8 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 章 概要 ■ FPT-144P-M01 の外形寸法図 (MB91F155A のみ ) 図 1.3-3 FPT-144P-M01 の外形寸法図 プラスチック・QFP, 144 ピン リードピッチ 0.65mm パッケージ幅× パッケージ長さ 28 × 28mm リード形状 ガルウィング 封止方法 プラスチックモールド 取付け高さ 3.85mm MAX コード(参考) P-QFP144-28×28-0.65 (FPT-144P-M01) プラスチック・QFP, 144 ピン (FPT-144P-M01) 注 1)* 印寸法はレジン残りを含まず。 注 2)端子幅および端子厚さはメッキ厚を含む。 注 3)端子幅はタイバ切断残りを含まず。 32.00±0.40(1.260±.016)SQ 0.17±0.06 (.007±.002) * 28.00±0.20(1.102±.008)SQ 108 73 109 72 0.10(.004) Details of "A" part 3.65±0.20 (Mounting height) (.144±.008) 0.25(.010) INDEX 0~8˚ 144 37 1 0.65(.026) C "A" 36 2003 FUJITSU LIMITED F144002S-c-5-5 0.32±0.05 (.013±.002) 0.13(.005) 0.80±0.20 (.031±.008) 0.88±0.15 (.035±.006) +0.10 0.30 –0.25 +.004 .012 –.010 (Stand off) M 単位:mm (inches) 注意:括弧内の値は参考値です。 9 第 1 章 概要 端子配列 1.4 ここでは , MB91150 の端子配列をパッケージ別に示します。 ■ MB91FV150 (PGA-299C-A01) の端子配列 図 1.4-1 に , MB91FV150 (PGA-299C-A01) の端子配列を示します。また , この配列の端 子番号の対応表を , 表 1.4-1 に示します。 図 1.4-1 端子配列 (MB91FV150 (PGA-299C-A01)) 10 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 294 288 282 273 266 260 253 244 238 232 227 222 217 212 202 27 19 15 12 9 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 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 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 220 216 213 209 199 PGA-299C-A01 (Bottom View) 198 197 196 194 200 178 180 181 183 172 第 1 章 概要 表 1.4-1 端子番号対応表 (MB91FV150 (PGA-299C-A01)) Device:MB91FV150 No. 1 端子名 P20/D16 VSS No. Package:PGA-299C-A01 端子名 No. 52 53 P81/BGRNT 101 P82/BRQ 102 VCC 103 51 端子名 No. PK1/AN1 151 PK2/AN2 PK3/AN3 152 153 端子名 PD4/INT12/ZIN0 VSS No. 端子名 No. 端子名 201 OPEN 251 OPEN 202 203 OPEN VCC 4 P21/D17 54 P83/RD 104 OPEN 154 PD6/INT14/DEOP2 204 IHIT3 252 OPEN 253 OPEN 254 VCC 5 VCC 55 P84/WR0 105 PK4/AN4 155 VCC 205 IHIT2 255 MODEN3 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 P22/D18 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 106 P85/WR1 P86/CLK 107 PL0/DREQ0 108 PL1/DACK0 109 PL2/DEOP0 110 PL3/DREQ1 111 PL4/DACK1 112 PL5/DEOP1 113 PL6/DREQ2 114 PL7/DACK2 115 OPEN 116 OPEN 117 VCC 118 OPEN 119 OPEN 120 VSS 121 OPEN 122 OPEN 123 VCC 124 OPEN 125 MD0 126 MD1 127 MD2 128 VCC 129 VSS 130 X0 131 X1 132 VCC 133 PK5/AN5 PK6/AN6 PK7/AN7 DAVC DAVS DA0 VSS 156 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 PD7/INT15/ATG PE0/OC0 VSS PE1/OC1 PE2/OC2 PE3/OC3 PE4/OC4 PE5/OC5 PE6/OC6 PE7/OC7 VCC OPEN OPEN OPEN OPEN 206 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 IHIT1 IHIT0 OPEN OPEN OPEN VCC P47/A07 P50/A08 P51/A09 P52/A10 56 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 MOD21 MOD20 MOD19 MOD18 MOD17 VCC MOD16 MOD15 VSS 256 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 34 P53/A11 84 184 OPEN 234 MOD14 284 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 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 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 243 244 245 246 247 248 249 250 MOD6 MOD5 MOD4 MOD3 VSS MOD2 MOD1 MOD0 293 294 295 296 297 298 299 300 2 3 OPEN ICD3 BREAK AVCC AVRH VSS AVRL AVSS PK0/AN0 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 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/SCL PJ1/SDA VSS PC0/INT0 PC1/INT1 PC2/INT2 PC3/INT3 PC4/INT4/CS0 PC5/INT5/CS1 PC6/INT6/CS2 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 PD5/INT13/ZIN1 PF0/IN0 PF1/IN1 PF2/IN2 PF3/IN3 PF4 VCC PG0/PPG0 PG1/PPG1 PG2/PPG2 PG3/PPG3 PG4/PPG4 PG5/PPG5 VSS MRST VCC DHIT5 DHIT4 DHIT3 DHIT2 DHIT1 DHIT0 VSS MOD31 MOD30 MOD29 MOD28 MOD27 MOD26 VSS MOD25 MOD24 VCC MOD23 MOD22 VSS MODEN2 MODEN1 MODEN0 OPEN OPEN OPEN VSS VCC TEST X0A X1A VSS OPEN VCC OPEN OPEN OPEN OPEN OPEN VCC OPEN OPEN VSS OPEN OPEN OPEN OPEN OPEN OPEN VCC OPEN OPEN OPEN OPEN OPEN OPEN VCC OPEN OPEN VSS OPEN OPEN VCC OPEN 11 第 1 章 概要 ■ MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 図 1.4-2 に , MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144PM01) の端子配列を示します。 X1A X0A TEST VCC PK7/AN7 PK6/AN6 PK5/AN5 PK4/AN4 PK3/AN3 PK2/AN2 PK1/AN1 PK0/AN0 AVSS AVRL AVRH AVCC DAVC DAVS 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 141 140 139 138 137 136 135 134 133 132 131 130 129 128 127 126 125 124 123 122 121 120 119 118 117 116 115 114 113 112 111 110 109 VSS 144 143 142 図 1.4-2 端子配列 (MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01)) 12 P20/D16 1 108 PH5/SCK1/TO1 P21/D17 2 107 PI0/SIN2 PI1/SOT2 P22/D18 3 106 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 9 100 PJ0/SCL P30/D24 10 99 PJ1/SDA 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 P37/D31 17 92 PG1/PPG1 P40/A00 18 91 PG0/PPG0 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 VSS 26 Top View FPT-144P-M08 FPT-144P-M01 84 PE6/OC6 83 PE5/OC5 82 PE4/OC4 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 PD0/AIN0/INT8/TRG0 PD1/BIN0/INT9/TRG1 PD2/AIN1/INT10/TRG2 PD3/BIN1/INT11/TRG3 PC0/INT0 PC1/INT1 PC2/INT2 PC3/INT3 PC4/INT4/CS0 PC5/INT5/CS1 PC6/INT6/CS2 PC7/INT7/CS3 VCC 71 72 PE1/OC1 78 69 70 79 31 65 66 67 68 30 P53/A11 63 64 P52/A10 60 61 62 PE2/OC2 55 56 57 58 59 80 50 51 52 53 54 29 P85/WR1 P86/CLK MD2 MD1 MD0 RST VCC X1 X0 VSS PE3/OC3 P51/A09 40 41 42 43 44 45 46 47 48 49 81 P64/A20 P65/A21 P66/A22 P67/A23 VSS P80/RDY P81/BGRNT P82/BRQ P83/RD P84/WR0 28 37 38 39 27 P61/A17 P62/A18 P63/A19 VCC P50/A08 第 1 章 概要 1.5 端子機能説明 表 1.5-1 に , MB91150 の端子の機能一覧を示します。 ■ 端子機能説明 表 1.5-1 端子機能一覧 (1 / 8) 回路 形式 機能説明 P20/D16 P21/D17 P22/D18 P23/D19 P24/D20 P25/D21 P26/D22 P27/D23 C 外部データバスの bit16 ∼ bit23 です。 外バス 16 ビットモードの場合のみ有効となります。 シングルチップおよび外バス 8 ビットモードの場合は , ポートとして使用できます。 10 11 12 13 14 15 16 17 P30/D24 P31/D25 P32/D26 P33/D27 P34/D28 P35/D29 P36/D30 P37/D31 C 外部データバスの bit24 ∼ bit31 です。 シングルチップモードの場合は , ポートとして使用で きます。 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 F 外部アドレスバスの bit0 ∼ bit15 です。 外バスモードの場合に有効となります。 シングルチップモードの場合は , ポートとして使用で きます。 36 37 38 39 40 41 42 43 P60/A16 P61/A17 P62/A18 P63/A19 P64/A20 P65/A21 P66/A22 P67/A23 O 外部アドレスバスの bit16 ∼ bit23 です。 アドレスバスが未使用の場合は , ポートとして使用で きます。 Pin No. 端子名 1 2 3 4 5 6 7 8 13 第 1 章 概要 表 1.5-1 端子機能一覧 (2 / 8) Pin No. 45 46 47 48 49 14 端子名 P80/RDY P81/BGRNT P82/BRQ P83/RD P84/WR0 回路 形式 機能説明 C 外部 RDY 入力 この機能は外部 RDY 入力が許可の場合に有効となりま す。 実行中のバスサイクルが完了しない場合に "0" を入力 します。 外部 RDY 入力が未使用の場合は , ポートとして使用で きます。 F 外部バス開放受付出力 この機能は外部バス開放受付出力が許可の場合に有効 となります。 外部バスを開放した場合に "L" を出力します。 外部バス開放受付出力が禁止の場合は , ポートとして 使用できます。 C 外部バス開放要求入力 この機能は外部バス開放要求入力が許可の場合に有効 となります。 外部バスを開放してほしい場合に "1" を入力します。 外部バス開放要求入力が未使用の場合は , ポートとし て使用できます。 F 外部バスリードストローブ出力 この機能は外部バスリードストローブ出力が許可の場 合に有効となります。 外部バスリードストローブ出力が禁止の場合は , ポー トとして使用できます。 F 外部バスライトストローブ出力 この機能は外バスモードの場合に有効となります。 シングルチップモードの場合は , ポートとして使用で きます。 50 P85/WR1 F 外部バスライトストローブ出力 この機能は外バスモードかつバス幅 16 ビットの場合に 有効となります。 シングルチップモードまたは外バス 8 ビットの場合は , ポートとして使用できます。 51 P86/CLK F システムクロック出力です。 外部バス動作周波数と同じクロックを出力します。未 使用の場合は , ポートとして使用できます。 52 53 54 MD2 MD1 MD0 G これらの端子により MCU の基本動作モードを設定し ます。 モード端子 55 RST B 外部リセット入力 57 58 X1 X0 A 高速クロック用発振端子 (16.5MHz) VCC または VSS に直接つないで使用してください。 第 1 章 概要 表 1.5-1 端子機能一覧 (3 / 8) Pin No. 60 61 62 63 64 65 66 67 69 70 71 72 73 74 75 端子名 PC0/INT0 PC1/INT1 PC2/INT2 PC3/INT3 PC4/INT4/CS0 PC5/INT5/CS1 PC6/INT6/CS2 PC7/INT7/CS3 PD0/AIN0/INT8/TRG0 PD1/BIN0/INT9/TRG1 PD2/AIN1/INT10/TRG2 PD3/BIN1/INT11/TRG3 PD4/ZIN0/INT12/TRG4 PD5/ZIN1/INT13/TRG5 PD6/DEOP2/INT14 回路 形式 機能説明 H 外部割込み要求入力の 0 ∼ 3 です。 対応する外部割込みを許可している間はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 このポートはスタンバイ時も入力が許可されますので , スタンバイの解除用に使用できます。 外部割込み要求入力が未使用の場合は , ポートとして 使用できます。 H チップセレクト出力と外部割込み要求入力の 4 ∼ 7 の 兼用です。 チップセレクト出力禁止時に外部割込み要求 , もしく はポートとして使用できます。 対応する外部割込みを許可している間はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 このポートはスタンバイ時も入力が許可されますので , スタンバイの解除用に使用できます。 外部割込み要求入力 , チップセレクト出力が未使用の 場合は , ポートとして使用できます。 H 外部割込み要求入力の 8 ∼ 13 です。 対応する外部割込みを許可している間はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 [ZIN0, ZIN1] アップダウンタイマの入力 [TRG0 ∼ TRG5] PPG 外部トリガの入力 入力を許可している場合はこの入力を随時使用してい ますので , 意図的に行う以外はポートによる出力を停 止させておく必要があります。 外部割込み要求入力 , アップタイマカウンタの入力 , PPG の外部トリガの入力が未使用の場合は , ポートと して使用できます。 H 外部割込み要求入力の 14 です。 対応する外部割込みを許可している間はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 [DEOP2] DMA 外部転送終了出力 この機能は DMAC の外部転送終了出力指定が許可の場 合に有効となります。 外部割込み要求入力 , DMA 外部転送終了出力として未 使用の場合は , ポートとして使用できます。 15 第 1 章 概要 表 1.5-1 端子機能一覧 (4 / 8) Pin No. 回路 形式 機能説明 76 PD7/ATG/INT15 H 外部割込み要求入力の 15 です。 対応する外部割込みを許可している間はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 [ATG] A/D コンバータ外部トリガ入力 A/D の起動要因として選択した場合はこの入力を随時 使用していますので , 意図的に行う以外はポートによ る出力を停止させておく必要があります。 外部割込み要求入力 , A/D コンバータ外部トリガ入力 として未使用の場合は , ポートとして使用できます。 78 79 80 81 82 83 84 85 PE0/OC0 PE1/OC1 PE2/OC2 PE3/OC3 PE4/OC4 PE5/OC5 PE6/OC6 PE7/OC7 F アウトプットコンペアの出力 アウトプットコンペア出力指定が禁止の場合は , ポー トとして使用できます。 86 87 88 89 PF0/IN0 PF1/IN1 PF2/IN2 PF3/IN3 F インプットキャプチャの入力 この機能はインプットキャプチャが入力動作の場合に 有効になります。 インプットキャプチャの入力が未使用の場合は , ポー トとして使用できます。 90 PF4 F 汎用の入出力ポートです。 91 92 93 94 95 96 PG0/PPG0 PG1/PPG1 PG2/PPG2 PG3/PPG3 PG4/PPG4 PG5/PPG5 F PPG タイマ出力 この機能は PPG タイマの出力指定が許可の場合に有効 になります。 PPG タイマの出力指定が禁止の場合は , ポートとして 使用できます。 Q I2C インタフェースのデータ入出力端子です。 この機能は I2C インタフェースが動作許可の場合に有 効となります。 I2C インタフェースが動作している間はポート出力を Hi-Z としてください。 I2C が未使用の場合は , ポートとして使用できます。 Q I2C インタフェースの入出力端子です。 この機能は I2C インタフェースが動作許可の場合に有 効となります。 I2C インタフェースが動作している間はポート出力を Hi-Z としてください。 I2C が未使用の場合は , ポートとして使用できます。 99 100 16 端子名 PJ1/SDA PJ0/SCL 第 1 章 概要 表 1.5-1 端子機能一覧 (5 / 8) Pin No. 102 103 104 105 106 107 108 109 端子名 PI5/SCK3/TO3 PI4/SOT3 PI3/SIN3 PI2/SCK2/TO2 PI1/SOT2 PI0/SIN2 PH5/SCK1/TO1 PH4/SOT1 回路 形式 機能説明 P UART3 のクロック入出力 , リロードタイマ 3 の出力 UART3 のクロック出力禁止時 , リロードタイマ 3 の出 力許可を行うと , リロードタイマ 3 を出力できます。 UART3 のクロック出力 , リロードタイマ出力を共に禁 止の場合は , ポートとして使用できます。 P UART3 のデータ出力 この機能は UART3 のデータ出力指定が許可の場合に 有効となります。 UART3 のクロック出力指定が禁止の場合は , ポートと して使用できます。 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 のクロック出力指定が禁止の場合は , ポートと して使用できます。 17 第 1 章 概要 表 1.5-1 端子機能一覧 (6 / 8) Pin No. 110 111 112 113 114 115 116 18 端子名 PH3/SIN1 PH2/SCK0/TO0 PH1/SOT0 PH0/SIN0 PL0/DREQ0 PL1/DACK0 PL2/DEOP0 回路 形式 機能説明 P UART1 のデータ入力 UART1 が入力動作をしている間はこの入力を随時使用 していますので , 意図的に行う以外はポートによる出 力を停止させておく必要があります。 UART1 のデータ入力が未使用の場合は , ポートとして 使用できます。 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 外部転送終了出力が禁止の場合は , ポートとして 使用できます。 第 1 章 概要 表 1.5-1 端子機能一覧 (7 / 8) Pin No. 117 118 119 120 端子名 PL3/DREQ1 PL4/DACK1 PL5/DEOP1 PL6/DREQ2 回路 形式 機能説明 F DMA 外部転送要求入力 DMAC の転送要因として選択した場合はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 DMA 外部転送要求入力が未使用の場合は , ポートとし て使用できます。 F DMA 外部転送要求受付出力 この機能は DMAC の外部転送要求受付出力指定が許可 の場合に有効となります。 DMAC の転送要求受付出力指定が禁止の場合は , ポー トとして使用できます。 F DMA 外部転送終了出力 この機能は DMAC の外部転送終了出力指定が許可の場 合に有効となります。 DMA 外部転送終了出力が禁止の場合は , ポートとして 使用できます。 F DMA 外部転送要求入力 DMAC の転送要因として選択した場合はこの入力を随 時使用していますので , 意図的に行う以外はポートに よる出力を停止させておく必要があります。 DMA 外部転送要求入力が未使用の場合は , ポートとし て使用できます。 121 PL7/DACK2 F DMA 外部転送要求受付出力 この機能は DMAC の外部転送要求受付出力指定が許可 の場合に有効となります。 DMAC の転送要求受付出力指定が禁止の場合は , ポー トとして使用できます。 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 電源 19 第 1 章 概要 表 1.5-1 端子機能一覧 (8 / 8) 回路 形式 機能説明 PK0/AN0 PK1/AN1 PK2/AN2 PK3/AN3 PK4/AN4 PK5/AN5 PK6/AN6 PK7/AN7 N A/D コンバータアナログ入力 AICR レジスタの指定がアナログ入力の場合に有効とな ります。 A/D コンバータアナログ入力が未使用の場合は , ポー トとして使用できます。 141 TEST G 必ず VCC 電源に接続してください。 142 143 X0A X1A K 低速クロック用発振端子 (32kHz) 27, 56, 68, 77, 97, 122, 140 VCC - デジタル回路の電源端子 必ず全 VCC 端子に電源を接続して使用してください。 9, 26, 44, 59, 98, 101, 144 VSS - デジタル回路の接地レベル 必ず全 VSS 端子に電源を接地して使用してください。 Pin No. 端子名 132 133 134 135 136 137 138 139 ( 注意事項 )上記の大部分の端子は , xxxx/Pxx といったように I/O ポートとリソースの入出力がマル チプレクスされます。 これらの端子でポートとリソースの出力同士が競合した場合 , リソースが優先されます。 20 第 1 章 概要 1.6 入出力回路形式 表 1.6-1 に , MB91150 の入出力回路の形式を示します。 ■ 入出力回路形式 表 1.6-1 入出力回路形式 (1 / 3) 分類 回路 備考 A X1 Xout 高速発振回路 (16.5MHz) 発振帰還抵抗 = 約 1MΩ X0 スタンバイ制御信号 B CMOS ヒステリシス入力端子 CMOS ヒステリシス入力 ( スタンバイ制御なし ) プルアップ抵抗あり デジタル入力 C Pout Nout CMOS レベル入出力端子 CMOS レベル出力 CMOS レベル入力 ( スタンバイ制御付き ) IOL=4mA CMOS入力 スタンバイ制御 F Pout Nout CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=4mA CMOS ヒステリシス入力 スタンバイ制御 21 第 1 章 概要 表 1.6-1 入出力回路形式 (2 / 3) 分類 回路 備考 G CMOS レベル入力端子 CMOS レベル入力 ( スタンバイ制御なし ) デジタル入力 H プルアップ制御 R Pout Nout プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御なし ) IOL=4mA CMOS ヒステリシス入力 K 時計発振回路 (32kHz) X1A Xout X0A N Pout Nout CMOS入力 スタンバイ制御 アナログ入力 22 アナログ /CMOS レベル入出力端子 CMOS レベル出力 CMOS レベル入力 ( スタンバイ制御付 ) アナログ入力 (AICR レジスタの対応するビットが "1" の場合アナログ入力が有効にな ります ) IOL=4mA 第 1 章 概要 表 1.6-1 入出力回路形式 (3 / 3) 分類 回路 O 備考 プルアップ制御 R Pout Nout プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=4mA CMOS ヒステリシス入力 スタンバイ制御 P プルアップ制御 R オープンドレイン制御 Nout CMOS ヒステリシス入力 スタンバイ制御 Q Nout プルアップコントロール付き CMOS ヒステリシス入出力端子 CMOS レベル出力 ( オープンドレイン制御付き ) CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=4mA オープンドレイン入出力端子 5V 耐圧 CMOS ヒステリシス入力 ( スタンバイ制御付き ) IOL=15mA CMOS ヒステリシス入力 スタンバイ制御 23 第 1 章 概要 24 第2章 デバイスの取扱いについて この章では , MB91150 の取扱い上の注意について 説明します。 2.1 デバイス取扱い上の注意 2.2 各デバイス使用上の注意 2.3 電源投入 25 第 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 程度のセラミックコンデンサをバイパスコンデンサとして接続するようにして ください。 26 第 2 章 デバイスの取扱いについて ■ 回路の取扱い ● 水晶発振回路について X0, X1, X0A, X1A 端子の近辺のノイズは , 本デバイスの誤動作のもととなります。X0 と X1 (X0A と X1A) および水晶発振子 ( またはセラミック発振子 ) さらにグラウンドへ のバイパスコンデンサは,できる限り近くに配置するようにプリント板を設計してくだ さい。 X0, X1, X0A, X1A 端子の回りをグラウンドで囲むようなプリント板アートワークは安 定した動作を期待できますので , 強くお勧めいたします。 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。 なお , MB91FV150 は , 32kHz 用発振回路 (X0A, X1A) に帰還抵抗を内蔵していますが , MB91F155A, MB91155, MB91154 は帰還抵抗を内蔵していませんので , 時計機能を使用 する場合は図 2.1-1 に示すように , 外部に抵抗を接続してください。 図 2.1-1 抵抗の接続 X0A X0A X1A MB91FV150 X1A MB91F155A/MB91155/ MB91154 27 第 2 章 デバイスの取扱いについて 2.2 各デバイス使用上の注意 ここでは , 外部リセット入力および外部クロック使用上の注意について説明します。 ■ 外部リセット入力について RST端子に"L"レベルを入力し,内部が確実にリセット状態となるためには, RST端子の "L" レベル入力が最低 5 マシンサイクル必要です。 ■ 外部クロックについて 外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク ロックを同時に供給してください。ただし , ストップモード ( 発振停止モード ) を併用 する場合は , ストップモード時に X1 端子が "H" 出力で停止しますので , 出力同士の衝 突を避けるために , 外部に 1kΩ 程度の抵抗を入れるようにしてください。 図 2.2-1 に , 外部クロック使用方法例を示します。 図 2.2-1 外部クロック使用例 X0 X1 MB91150 ■ PLL クロックモード動作中の注意について 本マイコンでPLLクロックを選択しているときに発振子が外れた場合,あるいはクロッ ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を 継続し続ける場合があります。この動作は保証外の動作です。 ■ ウォッチドッグタイマ機能について FR ファミリが備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリ セット延期動作を行うことを監視し,プログラムの暴走によりリセット延期動作が行わ れなかったときに , CPU をリセットするための機能です。そのため , 一度ウォッチドッ グタイマ機能を有効にすると , リセットを掛けるまで動作を続けます。 例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い ます。この例外にあてはまる条件については ,「3.11.8 ウォッチドッグタイマ機能」の 項を参照してください。 28 第 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 以下 ) から電源を投入する。 29 第 2 章 デバイスの取扱いについて ■ 時計機能 ( カレンダマクロ ) を使用していない場合 時計機能を使用しない場合は , 時計用発振端子を図 2.3-1 のようにしてください。 図 2.3-1 時計機能を使用しない場合の時計用発振端子の設定 X0A 開放 X1A MB91150 <注意事項> 本品種において , 時計用水晶発振器はソフトウェアで停止できません。 30 第3章 メモリ空間 , CPU および制御部 この章では , FR ファミリの CPU コアの機能を知 るために , アーキテクチャ , 仕様 , 命令などの基本 的なことについて説明します。 3.1 メモリ空間 3.2 CPU アーキテクチャ 3.3 プログラミングモデル 3.4 データ構造 3.5 ワードアライメント 3.6 特別なメモリ領域 3.7 命令概要 3.8 EIT ( 例外・割込み・トラップ ) 3.9 リセットシーケンス 3.10 動作モード 3.11 クロック発生部 ( 低消費電力メカニズム ) 3.12 低消費電力モード 31 第 3 章 メモリ空間 , CPU および制御部 3.1 メモリ空間 FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク セスを行います。 ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は I/O 用に使用されます。 この領域をダイレクトアドレッシング領域と呼び,命令中で直接オペランドのアドレス を指定できます。 ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。 • バイトデータアクセス :000H ∼ 0FFH • ハーフワードデータアクセス :000H ∼ 1FFH • ワードデータアクセス :000H ∼ 3FFH ■ MB91FV150, MB91F155A, MB91155 のメモリマップ 図 3.1-1 に , MB91FV150, MB91F155A および MB91155 のメモリマップを示します。 図 3.1-1 MB91FV150, MB91F155A, MB91155 のメモリマップ 外ROM外バスモード 内ROM外バスモード シングルチップモード I/O I/O I/O ダイレクト アドレッシング 領域 I/O I/O I/O I/Oマップ参照 アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM 32Kバイト 内蔵RAM 32Kバイト アクセス禁止 アクセス禁止 アクセス禁止 外部領域 アクセス禁止 0000 0000 H 0000 0400 H 0000 0800 H 0000 1000 H 内蔵RAM 32Kバイト 0000 9000 H 0001 0000 H 0001 0000H 外部領域 内蔵RAM 2Kバイト 内蔵RAM 2Kバイト 内蔵ROM 510Kバイト 内蔵ROM 510Kバイト 0008 0000H 0008 0800H 0010 0000H 外部領域 FFFF FFFFH アクセス禁止 FFFF FFFFH ( 注意事項 ) シングルチップモードでは , 外部領域へのアクセスはできません。 32 第 3 章 メモリ空間 , CPU および制御部 ■ MB91154 のメモリマップ 図 3.1-2 に , MB91154 のメモリマップを示します。 図 3.1-2 MB91154 のメモリマップ 外ROM外バスモード 内ROM外バスモード シングルチップモード I/O I/O I/O I/O I/O I/O 0000 0000H 0000 0400H ダイレクト アドレッシング 領域 I/Oマップ参照 0000 0800H 0000 1000H アクセス禁止 アクセス禁止 アクセス禁止 内蔵RAM 20Kバイト 内蔵RAM 20Kバイト 内蔵RAM 20Kバイト アクセス禁止 アクセス禁止 0000 6000H アクセス禁止 0001 0000H 0001 0000H 外部領域 アクセス禁止 内蔵RAM 2Kバイト 内蔵RAM 2Kバイト 0008 0000H 0008 0800H 外部領域 アクセス禁止 アクセス禁止 内蔵ROM 384Kバイト 内蔵ROM 384Kバイト 000A 0000H 0010 0000H 外部領域 FFFF FFFFH アクセス禁止 FFFF FFFFH ( 注意事項 ) シングルチップモードでは , 外部領域へのアクセスはできません。 33 第 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 に , 内部アーキテクチャの構造を示します。 34 第 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 命令1 命令2 命令3 命令4 命令5 命令6 WB MA EX ID IF WB MA EX ID IF WB MA EX ID WB MA EX WB MA WB 35 第 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 ワードのプリフェッチバッファを持っています。 36 第 3 章 メモリ空間 , CPU および制御部 3.3 プログラミングモデル ここでは , 基本のプログラミングモデルおよび各レジスタについて説明します。 ■ 基本プログラミングモデル 図 3.-31 に , 基本プログラミングモデルを示します。 図 3.3-1 基本プログラミングモデル 32ビット長 〔初期値〕 XXXX XXXXH XXXX XXXXH R12 R13 R14 R15 AC FP SP … … 汎用レジスタ … R0 R1 XXXX XXXXH XXXX XXXXH XXXX XXXXH 0 0 0 0 0 0 0 0H プログラムカウンタ プログラムステータス テーブルベースレジスタ CP PS TBR リターンポインタ RP XXXX XXXXH システムスタックポインタ SSP 0 0 0 0 0 0 0 0H ユーザスタックポインタ USP XXXX XXXXH 乗除算結果レジスタ MDH MDL XXXX XXXXH XXXX XXXXH XXXX XXXXH - ILM SCR - CCR 000F FC00H ■ 汎用レジスタ 図 3.3-2 に , 汎用レジスタの構成を示します。 図 3.3-2 汎用レジスタの構成 32ビット 〔初期値〕 XXXX XXXXH XXXX XXXXH R0 R1 R13 R14 R15 AC FP SP ~ ~ ~ R12 XXXX XXXXH XXXX XXXXH XXXX XXXXH 0 0 0 0 0 0 0 0H 37 第 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 - - S 4 3 2 1 0 〔初期値〕 I N Z V C --00XXXXB [bit 5] S: スタックフラグ R15 として使用されるスタックポインタを指定します。 値 内容 0 SSP が R15 として使用されます。EIT 発生時 , 自動的に "0" となります。 ( ただし , スタックに退避される値はクリアされる前の値です。) 1 USP が R15 として使用されます。 リセットにより "0" にクリアされます。 RETI 命令の実行は , SSP を選択してください。 38 第 3 章 メモリ空間 , CPU および制御部 [bit 4] I: 割込み許可フラグ ユーザ割込み要求の許可・禁止を制御します。 値 内容 0 ユーザ割込み禁止。INT 命令実行時 , "0" にクリアされます。 ( ただし , スタック退避させる値はクリアする前の値です。) 1 ユーザ割込み許可。 ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されま す。 リセットにより "0" にクリアされます。 [bit 3] N: ネガティブフラグ 演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。 値 内容 0 演算結果が正の値であったことを示します。 1 演算結果が負の値であったことを示します。 リセットによる初期状態は不定です。 [bit 2] Z: ゼロフラグ 演算結果が "0" であったかどうかを示します。 値 内容 0 演算結果が "0" 以外の値であったことを示します。 1 演算結果が "0" であったことを示します。 リセットによる初期状態は不定です。 [bit 1] V: オーバフローフラグ 演算に用いたオペランドを "2" の補数で表現される整数であるとみなし , 演算の結果 , オーバフローが生じたかどうかを示します。 値 内容 0 演算の結果 , オーバフローは生じていないことを示します。 1 演算の結果 , オーバフローが生じたことを示します。 リセットによる初期状態は不定です。 39 第 3 章 メモリ空間 , CPU および制御部 [bit 0] C: キャリフラグ 演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示します。 値 内容 0 キャリもボローも発生していないことを示します。 1 キャリまたはボローが発生したことを示します。 リセットによる初期状態は不定です。 ● SCR (System Condition code Register) SCR 10 9 D1 D0 8 T 〔初期値〕 XX0B [bit 10, bit 9] D1, D0: ステップ除算用フラグ ステップ除算実行時の中間データを保持します。除算処理の実行途中は , 変更してはい けません。 ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰する ことによりステップ除算の再開が保証されます。リセットによる初期状態は不定です。 DIV0S 命令の実行により被除数と除数を参照して設定されます。 DIV0U 命令の実行により , 強制的にクリアされます。 [bit 8] T: ステップトレーストラップフラグ ステップトレーストラップを有効にするかどうかを指定するフラグです。 値 内容 0 ステップトレーストラップ無効 1 ステップトレーストラップ有効。このとき , ユーザ用 NMI とユーザ割 込みがすべて割込み禁止となります。 リセットにより "0" に初期化されます。ステップトレーストラップの機能はエミュレー タが使用します。エミュレータ使用時 , ユーザプログラム中では使用できません。 40 第 3 章 メモリ空間 , CPU および制御部 ● ILM 20 ILM 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 〔初期値〕 0 0 0 F F C 0 0H テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス を保持します。リセットによる初期値は , 000FFC00H です。 ■ RP (Return Pointer) 31 RP 0 〔初期値〕 XXXXXXXXH リターンポインタで , サブルーチンから復帰するアドレスを保持します。CALL 命令実 行時, PCの値がこのRPに転送され, RET命令実行時は, RPの内容がPCに転送されます。 リセットによる初期値は不定です。 41 第 3 章 メモリ空間 , CPU および制御部 ■ SSP (System Stack Pointer) 31 0 〔初期値〕 0 0 0 0 0 0 0 0H SSP SSP は , システムスタックポインタです。 S フラグが "0" のとき , R15 として機能します。SSP を明確に指定することも可能です。 また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして も使用されます。 リセットによる初期値は 00000000H です。 ■ USP (User Stack Pointer) 31 0 〔初期値〕 XXXXXXXXH USP 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: 商 42 第 3 章 メモリ空間 , CPU および制御部 データ構造 3.4 FR ファミリのデータ配置は , 次のようになっています。 • ビットオーダリングの場合 : リトルエンディアン • バイトオーダリングの場合 : ビッグエンディアン ■ ビットオーダリング FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。 図 3.4-1 に , ビットオーダリングのデータ配置を示します。 図 3.4-1 ビットオーダリングのデータ配置 ビット 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 MSB 3 2 1 0 LSB ■ バイトオーダリング FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。 図 3.4-2 に , バイトオーダリングのデータ配置を示します。 図 3.4-2 バイトオーダリングのデータ配置 MSB ビット メモリ ビット 7 n 番地 (n+1) 番地 (n+2) 番地 (n+3) 番地 31 LSB 23 15 70 10101010 11001100 11111111 00010001 0 10101010 11001100 11111111 00010001 43 第 3 章 メモリ空間 , CPU および制御部 3.5 ワードアライメント 命令やデータは , バイト単位でアクセスするため , 配置するアドレスは命令長やデー タ幅によって異なります。 ■ プログラムアクセス 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 +) 加算結果 アドレス端子 44 00002225H ↓ 下位2ビット強制マスク 00002224H 第 3 章 メモリ空間 , CPU および制御部 3.6 特別なメモリ領域 ここでは , MB91150 のメモリマップを示します。 ■ MB91150 のメモリマップ アドレス空間は 32 ビットリニアです。 図 3.6-1 に , MB91150 のメモリマップを示します。 図 3.6-1 MB91150 のメモリマップ 0000 0000H バイトデータ 0000 0100H ハーフワードデータ ダイレクトアドレッシング領域 0000 0200H ワードデータ 0000 0400H 000F FC00H ベクタテーブル初期領域 000F FFFFH FFFF FFFFH ■ ダイレクトアドレッシング領域 アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ ングにより , 命令中で直接オペランドアドレスを指定できます。 ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。 • バイトデータ (8 ビット ): 0000H ∼ 00FFH • ハーフワードデータ (16 ビット ): 0000H ∼ 01FFH • ワードデータ (32 ビット ): 0000H ∼ 03FFH ■ ベクタテーブル初期領域 000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。 EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。 45 第 3 章 メモリ空間 , CPU および制御部 3.7 命令概要 FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理 演算とビット操作およびダイレクトアドレッシング命令をサポートしています。命 令セットの一覧は ,「付録 E 命令一覧」を参照してください。各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。 命令セットは以下の機能グループに分けることができます。 • 算術演算 • ロードとストア • 分岐 • 論理演算とビット操作 • ダイレクトアドレッシング • その他 ■ 命令概要 ● 算術演算 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付演算や , アドレス計算に便利なフラグ値を変化させない演算も可能です。 さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32 ビットのステップ除算命令を持ちます。 また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま す。 算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行 います。 ● ロードとストア ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内 の周辺回路 (I/O) への読出しと書込みにも使用されます。 ロードとストアは , バイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。 また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については ディスプレースメント付レジスタ間接やレジスタインクリメント・デクリメント付レ ジスタ間接のメモリアドレッシングも可能です。 ● 分岐 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと 持たないものがあり , 用途に応じて最適化を行うことができます。 分岐命令の詳細については「3.7.1 遅延スロット付き分岐命令」を参照してください。 46 第 3 章 メモリ空間 , CPU および制御部 ● 論理演算とビット操作 論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND, OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/ O) の内容を直接操作できます。メモリアドレッシングは一般的なレジスタ間接です。 ● ダイレクトアドレッシング ダイレクトアドレッシング命令は I/O と汎用レジスタ間または I/O とメモリ間のアクセ スに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定する ことにより , 高速 , 高効率なアクセスを行うことができます。一部の命令についてはレ ジスタインクリメント・デクリメント付レジスタ間接のメモリアドレッシングも可能 です。 ● その他 PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張等を行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。 47 第 3 章 メモリ空間 , CPU および制御部 3.7.1 遅延スロット付き分岐命令 ここでは , 分岐命令のうち , 遅延スロットを持つものについて説明します。 遅延スロット付きの動作では , 分岐先の命令を実行する前に , 遅延スロットに置かれ た命令を実行した後に , 分岐します。 ■ 遅延スロット付き分岐命令 遅延スロット付きの分岐命令には , 以下の命令があります。 JMP:D @Ri CALL:D label12 CALL:D @Ri RET:D BRA:D Label9 BNO:D label9 BEQ:D label9 BNE:D label9 BC:D Label9 BNC:D label9 BN:D label9 BP:D 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 を更 新しても影響を受けません。 [例] LDI:32 JMP:D @R0 LDI:8 #0, … 48 #Label,R0 ; Label に分岐 R0 ; 分岐先アドレスには影響を与えない。 第 3 章 メモリ空間 , CPU および制御部 • RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受 けません。 [例] ; これより前に設定された RP の示すアドレスへ分岐 RET:D MOV R8, RP ; リターン動作には影響を与えない。 … • Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。 [例] ADD #1, R0 BC:D Overflow ; フラグ変化 ; 上記の命令の実行結果により分岐 ; このフラグ更新は上記分岐命令では参照しない。 ANDCCR#0 … • CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更 新された内容が読み出されます。 [例] ; RP を更新して分岐 CALL:D Label MOV RP, R0 ; 上記 CALL:D の実行結果の RP を転送 … ■ 遅延スロット付き分岐命令の制限事項 ● 遅延スロットに置くことができる命令 遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。 • 1 サイクル命令 • 分岐命令ではないこと • 順番が変化した場合でも動作に影響を与えない命令 「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」ま たは「d」と記載された命令です。 ● ステップトレーストラップ 遅延スロットを持つ分岐命令の実行と遅延スロットの間では,ステップトレーストラッ プは発生しません。 ● 割込み・NMI 遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し ません。 ● 未定義命令例外 遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき , 未定義命令は NOP 命令として動作します。 49 第 3 章 メモリ空間 , CPU および制御部 3.7.2 遅延スロットなし分岐命令 ここでは , 分岐命令のうち , 遅延スロットを持たないものについて説明します。 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。 ■ 遅延スロットなし分岐命令 遅延スロットなしの分岐命令には , 以下の命令があります。 JMP @Ri CALL label12 CALL @Ri RET BRA label9 BNO label9 BEQ label9 BNE label9 BC label9 BNC label9 BN label9 BP label9 BV label9 BNV label9 BLT label9 BGE label9 BLE label9 BGT label9 BLS label9 BHI label9 ■ 遅延スロットなし分岐命令の動作 遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分 岐前に実行されることはありません。 [例] ; 命令の並び ADD R1,R2 ; BRA LABEL ; 分岐命令 ( 遅延スロットなし ) MOV R2,R3 ; 実行されない … LABEL ST R3,@R4 ; 分岐先 遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな いとき 1 サイクルとなります。これは , 遅延スロットに適当な命令を入れることができ ないために NOP を明記した遅延スロット付き分岐命令に比べ , 命令コード効率を上げ ることができます。遅延スロットに有効な命令を設置できるときは遅延スロット付き の動作を選択し , そうでないときは遅延スロットなしの動作を選択することで , 実行速 度とコード効率を両立させることが可能となります。 50 第 3 章 メモリ空間 , CPU および制御部 3.8 EIT ( 例外・割込み・トラップ ) EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断 し , ほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), トラップ (Trap) の総称です。 ■ EIT ● 例外 例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か ら再実行します。 ● 割込み 割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー ドウェアです。 ● トラップ トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの ようにプログラムで指示するものがあります。トラップを発生した命令の次の命令か ら再実行します。 ■ EIT 要因 EIT 要因として , 次のものがあります。 • リセット • ユーザ割込み ( 内部リソース , 外部割込み ) • 遅延割込み • 未定義命令例外 • トラップ命令 (INT) • トラップ命令 (INTE) • ステップトレーストラップ • コプロセッサ不在トラップ • コプロセッサエラートラップ ■ EIT からの復帰 EIT からの復帰には , RETI 命令を使用します。 ■ EIT の注意事項 ● 遅延スロット 分岐命令の遅延スロットには , EIT に関して制約があります。 詳しくは ,「 3.7.1 遅延スロット付き分岐命令」を参照してください。 51 第 3 章 メモリ空間 , CPU および制御部 割込みレベル 3.8.1 割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。 ■ 割込みレベル 各レベルの割当てを , 表 3.8-1 に示します。 表 3.8-1 割込みレベル 割込みレベル 割込み要因 2 進数 10 進数 00000 0 00001 1 00010 2 00011 3 00100 4 00101 ∼ 01110 5 ∼ 14 01111 15 10000 ∼ 11110 16 ∼ 30 11111 31 − INTE 命令 , ステップトレーストラップ 注意事項 ILM の元の値が 16 ∼ 31 のと き , この範囲の値はプログラム によって ILM に設定できませ ん。 ( システム予約 ) ( システム予約 :NMI) 割込み − ILM 設定時 , ユーザ割込み禁止 − ICR 設定時 , 割込み禁止 操作が可能なのは , 16 ∼ 31 のレベルです。 未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップ , そして INT 命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。 ■ 割込みに対するレベルマスク 割込み要求が発生したときは , 割込み要因の持つ割込みレベルが ILM の保持するレベ ルマスク値と比較されます。そして , 次の条件が成立したときはマスクされ , 要求は受 理されません。 要因の持つ割込みレベル ≧ レベルマスク値 52 第 3 章 メモリ空間 , CPU および制御部 3.8.2 割込みスタック システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退 避・復帰されます。割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。 ■ 割込みスタック 図 3.8-1 に割込みスタックの動作図を示します。 図 3.8-1 割込みスタック動作図 [例] SSP [割込み前] 80000000H SSP メモリ 80000000H 7FFFFFFCH 7FFFFFF8H [割込み後] 7FFFFFF8H メモリ 80000000H 7FFFFFFCH 7FFFFFF8H PS PC 53 第 3 章 メモリ空間 , CPU および制御部 3.8.3 EIT ベクタテーブル テーブルベースレジスタ (TBR) は , EIT 用ベクタテーブルの先頭アドレスを示すレ ジスタです。 TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。 ■ ベクタテーブル 1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ うに表されます。 vctadr = TBR + vctofs = TBR + (03FCH - 4 × vct) vctadr : ベクタアドレス vctofs : ベクタオフセット vct : ベクタ番号 加算結果の下位 2 ビットは常に "00" として扱われます。 000FFC00H ∼ 000FFFFFH の領域が , リセットによるベクタテーブルの初期領域です。 ベクタの一部には特殊な機能が割り当てられています。なおアーキテクチャ上のベク タテーブルを , 表 3.8-2 に示します。 表 3.8-2 ベクタテーブル 0 ベクタ番号 00H 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 64 40H TBR + 02FCH マスク可能割込み要因 #1 (IRQ2) ∼ マスク可能割込み要因 #47 (IRQ47) システム予約 (REALOS にて使用 ) 65 41H TBR + 02F8H システム予約 (REALOS にて使用 ) 66 ∼ 255 42H ∼ FFH TBR + 02F4H ∼ TBR + 0000H 54 ベクタアドレス 000FFFFCH 説明 リセット INT 命令 第 3 章 メモリ空間 , CPU および制御部 3.8.4 多重 EIT 処理 複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま す。 EIT 要因検出の際に , 受理可能な EIT 要因が無くなったとき , 最後に受理した EIT 要 因のハンドラの命令を実行します。 そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラ実行順序は , 次 の 2 つの要素により決まります。 • EIT 要因受理の優先順位 • 受理した場合にほかの要因をどのようにマスクするか ■ EIT 要因受理の優先順位 EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの 要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。 EIT 要因受理の優先度は , 表 3.8-3 のようになっています。 表 3.8-3 EIT 要因の受理の優先度とほかの要因へのマスク 受理の優先順位 要因 ほかの要因に対するマスク 1 リセット ほかの要因は破棄されます。 2 未定義命令例外 取消 INT 命令 I フラグ =0 コプロセッサ不在トラップ なし 3 コプロセッサエラートラップ 4 ユーザ割込み ILM= 受理した要因のレベル 5 (NMI) ILM=15 7 INTE 命令 ILM=4 8 ステップトレーストラップ ILM=4 55 第 3 章 メモリ空間 , CPU および制御部 EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し た EIT 要因の各ハンドラの実行順序は , 表 3.8-4 のようになります。 表 3.8-4 EIT ハンドラの実行順序 ハンドラの実行順序 要因 1 リセット *1 2 未定義命令例外 3 ステップトレーストラップ *2 4 INTE 命令 *2 5 (NMI) 6 INT 命令 7 ユーザ割込み 8 コプロセッサ不在トラップ コプロセッサエラートラップ *1: ほかの要因は破棄されます。 *2: INTE 命令をステップ実行した場合は , ステップトレーストラップの EIT のみ発 生します。INTE による要因は無視されます。 図 3.8-2 に , 多重 EIT 処理の例を示します。 図 3.8-2 多重 EIT 処理の例 メインルーチン NMIの ハンドラ 優先度 ↓ (高) NMI発生 INT命令の ハンドラ (1)最初に実行 (低) INT命令実行 (2)次に実行 56 第 3 章 メモリ空間 , CPU および制御部 3.8.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 割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を 行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス に遷移します。 57 第 3 章 メモリ空間 , CPU および制御部 ■ 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 命令実行ごとにトラップが発生し , ブレークします。 ● ステップトレーストラップ検出の条件 1) T フラグ = 1 2) 遅延分岐命令でないとき。 3) INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。 4) 以上の条件が成立すると , 命令動作の切れ目でブレークします。 58 第 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 として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。 ■ コプロセッサ不在トラップ 実装されていないコプロセッサを使用するコプロセッサ命令を実行すると,コプロセッ サ不在トラップが発生します。 59 第 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" に戻してください。 60 第 3 章 メモリ空間 , CPU および制御部 3.9 リセットシーケンス ここでは , CPU を動作状態にするときのリセットについて説明します。 ■ リセット要因 リセット要因は以下のとおりです。 • 外部リセット端子からの入力 • スタンバイ制御レジスタ (STCR) の SRST ビット操作によるソフトウェアリセット • ウォッチドッグタイマのカウントアップ • パワーオンリセット ■ リセットによる初期化 リセット要因が発生すると , CPU は初期化されます。 ● 外部リセット端子 , ソフトウェアリセットからの解除 • 端子を定められた状態に設定します。 • デバイス内部の各リソースを , リセット状態にします。制御レジスタは , あらかじ め決められた値に初期化されます。 • クロックとして , 最も遅いギアが選択されます。 ■ リセットシーケンス リセット要因が解除されると , CPU は以下のリセットシーケンスを実行します。 (000FFFFCH) → PC <注意事項> リセット後は , モードレジスタの設定により動作モードの設定が必要です。 61 第 3 章 メモリ空間 , CPU および制御部 動作モード 3.10 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, 0 ビットで指定します。 ■ モード端子 MD2, MD1, MD0 の 3 端子で , 表 3.10-1 に示すように動作の指定を行います。 表 3.10-1 モード端子と設定モード モード端子 モード名 リセット ベクトル アクセス領域 外部データ バス幅 MD2 MD1 MD0 0 0 0 外部ベクタモード 0 外部 8 ビット 0 0 1 外部ベクタモード 1 外部 16 ビット 0 1 0 外部ベクタモード 2 外部 32 ビット 本品種では使用 禁止 0 1 1 内部ベクタモード 内部 ( モードレジスタ ) シングルチップ モード 1 - - 62 - - - 外部 ROM 外部 バスモード 使用禁止 第 3 章 メモリ空間 , CPU および制御部 ■ モードデータ リセット後 CPU が "0000 07FFH" に書き込むデータをモードデータとよびます。 "0000 07FFH" に存在するのはモードレジスタ (MODR) で , 本レジスタに設定した後は 本レジスタの設定モードで動作します。モードレジスタには , リセット後 1 度だけしか 書き込むことができません。 本レジスタによる設定値は , 書込み直後に有効となります。 MODR アドレス:0000 07FFH 7 6 5 4 3 2 1 0 M1 M0 * * * * * * 初期値 XXXXXXXXB アクセス W └──┬──┘ └──────────────── バス・モード設定ビット [bit 7, bit 6] M1, M0 バスモード設定ビットです。モードレジスタ書込み後のバスモードの指定を行います。 M1 M0 0 0 シングルチップモード 0 1 内 ROM 外バスモード 1 0 外 ROM 外バスモード 1 1 機能 ─ 備考 設定禁止 [bit 5 ∼ bit 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~MD0 → AMD0~AMD5のBW1,0 63 第 3 章 メモリ空間 , CPU および制御部 3.11 クロック発生部 ( 低消費電力メカニズム ) クロック発生部は , 以下の機能を受け持つモジュールです。 • CPU クロック生成 ( ギア機能を含む ) • 周辺クロック生成 ( ギア機能を含む ) • リセット発生および要因の保持 • スタンバイ機能 • PLL ( 逓倍回路 ) 内蔵 ■ クロック発生部のレジスタ構成 図 3.11-1 に , クロック発生部のレジスタ構成を示します。 図 3.11-1 クロック発生部のレジスタ構成 アドレス 000480H 000481H 000482H 000483H 000484H 000485H 000488H 64 7 0 RSRR/WTCR STCR PDRR CTBR GCR WPR PCTR リセット要因/ウォッチ・ドック周期制御レジスタ スタンバイ制御レジスタ DMA要求抑止レジスタ タイムベースタイマクリアレジスタ ギア制御レジスタ ウォッチドックリセット発生延期レジスタ PLL制御レジスタ 第 3 章 メモリ空間 , CPU および制御部 ■ クロック発生部のブロックダイヤグラム 図 3.11-2 に , クロック発生部のブロックダイヤグラムを示します。 図 3.11-2 クロック発生部のブロックダイヤグラム [ギア制御部] GCRレジスタ CPUギア 周辺ギア 1/2 X0 X1 発振回路 PLL CPU クロック M P 内部Bus クロック 内部 クロック 生成回路 X 内部周辺クロック [ストップ・スリープ制御部] 内部割込み 内部リセット STCRレジスタ STOP状態 DMA要求 SLEEP状態 CPU Hold要求 状態遷移 PDRRレジスタ 制御回路 リセット 発生 内部リセット F/F パワー・オン検出回路 VCC [リセット要因回路] R GND RSRRレジスタ RST端子 [ウォッチドッグ制御部] WPRレジスタ ウォッチドッグ F/F カウント クロック CTBRレジスタ タイムベースタイマ 65 第 3 章 メモリ空間 , CPU および制御部 3.11.1 リセット要因レジスタ (RSRR) とウォッチドッグ周 期制御レジスタ (WTCR) リセット要因レジスタ (RSRR) は , 発生したリセットの種別を保持するレジスタで , ウォッチドッグ周期制御レジスタ (WTCR) は , ウォッチドッグタイマの周期を指定 するレジスタです。 ■ リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) のレジス タ構成は , 以下のとおりです。 7 RSRR/WTCR 000480H 6 PONR - (R) (-) 5 WDOG ( R) 4 ERST (R) 3 2 SRST - (R) ( -) 1 0 Power ON後の初期値 WT1 (W) WT0 (W) 1-XX X-00B [bit 7] PONR 本ビットが "1" であると , 直前に発生したリセットはパワーオンリセットであったこと を示します。本ビットが "1" の場合は , 本レジスタの本ビット以外の内容は無効となり ます。 [bit 6] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 [bit 5] WDOG 本ビットが "1" であると , 直前に発生したリセットはウォッチドッグリセットであった ことを示します。 [bit 4] ERST 本ビットが "1" であると , 直前に発生したリセットは外部リセット端子に起因するリ セットであったことを示します。 [bit 3] SRST 本ビットが "1" であると , 直前に発生したリセットはソフトウェアリセット要求に起因 するリセットであったことを示します。 [bit 2] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 66 第 3 章 メモリ空間 , CPU および制御部 [bit 1, bit 0] WT1, 0 本ビットは , ウォッチドッグの周期を指定するものです。本ビットと選択する周期は以 下のような関係があります。本ビットはすべてのリセットにより初期化されます。 ウォッチドッグリセットの 発生を抑止するために最低限 必要な WPR への書込み間隔 WPR への最終 5AH 書込みから 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 倍 の周期となります。 67 第 3 章 メモリ空間 , CPU および制御部 3.11.2 スタンバイ制御レジスタ (STCR) スタンバイ制御レジスタ (STCR) は , スタンバイ動作の制御と発振安定待ち時間の指 定を行うレジスタです 。 ■ スタンバイ制御レジスタ (STCR) スタンバイ制御レジスタ (STCR) のレジスタ構成は , 以下のとおりです。 STCR 000481H 7 6 5 STOP (R/W) SLEP (R/W) HIZX (R/W) 4 SRST (W) 3 OSC1 (R/W) 2 OSC0 (R/W) 1 0 (-) (-) 初期値 0001 11--B [bit 7] STOP 本ビットに "1" を書き込むと内部周辺のクロック停止 , 内部 CPU のクロック停止およ び発振の停止を行うストップ状態になります。 [bit 6] SLEP 本ビットに "1" を書き込むと内部 CPU のクロック停止を行うスタンバイ状態になりま す。なお , STOP ビットと本ビット両方に "1" を書き込んだ場合は , STOP ビットの方が 優先となりますので , ストップ状態になります。 [bit 5] HIZX 本ビットに "1" を書き込んだ状態でストップ状態になるとデバイスの端子をハイイン ピーダンスにします。 [bit 4] SRST 本ビットに "0" を書き込むとソフトウェアリセット要求を発生します。 リード値は不定です。 [bit 3, bit 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 倍 の周期となります。 [bit 1, bit 0] (Reserved) 本ビットは予約ビットです。読出し値は不定です。 68 第 3 章 メモリ空間 , CPU および制御部 タイムベースタイマクリアレジスタ (CTBR) 3.11.3 タイムベースタイマクリアレジスタ (CTBR) は , タイムベースタイマの内容を 0 初期 化するためのレジスタです 。 ■ タイムベースタイマクリアレジスタ (CTBR) タイムベースタイマクリアレジスタ (CTBR) のレジスタ構成は , 以下のとおりです。 CTBR 000483H 7 6 5 4 3 2 1 0 D7 (W) D6 (W) D5 (W) D4 (W) D3 (W) D2 (W) D1 (W) D0 (W ) 初期値 XXXX XXXXB [bit 7 ∼ bit 0]D7 ∼ D0 本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にタイムベースタイマを "0" にクリアします。本レジスタの読出し値は不定です。A5H ライトと 5AH ライトの間の 時間は制限がありません。 <注意事項> 本レジスタを使用してタイムベースタイマをクリアすると , 発振安定待ち間隔 , ウォッチ ドッグ周期およびタイムベースを使用している周辺の周期が一時的に変動します。 69 第 3 章 メモリ空間 , CPU および制御部 3.11.4 ギア制御レジスタ (GCR) ギア制御レジスタ (GCR) は , CPU, 周辺系クロックのギア機能を制御するレジスタ です 。 ■ ギア制御レジスタ (GCR) ギア制御レジスタ (GCR) のレジスタ構成は , 以下のとおりです。 7 GCR 000484H CCK1 (R/W) 6 5 4 CCK0 DBLAK DBLON (R/W) (R) ( R/W ) 3 2 1 0 初期値 PCK1 (R/W) PCK0 (R/W) (-) CHC (R/W) 110011-1B [bit 7, bit 6] CCK1, CCK0 本ビットは , 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 からの入力周波数 ) [bit 5] DBLAK 本ビットは , クロックダブラの動作状態を示すビットです。リードオンリであり , ライ トは無視されます。本ビットはリセットにより初期化されます。 バス周波数の切換えにはタイムラグがありますが,実際に動作が切り換わったかどうか は本ビットで確認できます。 DBLAK 70 内部 : 外部の動作周波数 0 1:1 で動作中 〔初期値〕 1 2:1 で動作中 第 3 章 メモリ空間 , CPU および制御部 [bit 4] DBLON 本ビットは , クロックダブラの動作状態を指定するビットです。本ビットはリセットに より初期化されます。 DBLON 内部 : 外部の動作周波数 0 1:1 で動作 〔初期値〕 1 2:1 で動作 [bit 3, bit 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 からの入力周波数 ) [bit 0] CHC 本ビットは , 発振回路の 1/2 分周系と PLL 系の 2 種類のいずれを基本クロックとして 使用するかを選択します。 "1" にすると 1/2 分周系に , "0" にすると PLL 系になります。 71 第 3 章 メモリ空間 , CPU および制御部 3.11.5 ウォッチドッグリセット発生延期レジスタ (WPR) ウォッチドッグリセット発生延期レジスタ (WPR) は , ウォッチドッグタイマ用フ リップフロップをクリアするレジスタです。本レジスタを用いてウォッチドッグリ セットの発生を延期させます。 ■ ウォッチドッグリセット発生延期レジスタ (WPR) ウォッチドッグリセット発生延期レジスタ (WPR) のレジスタ構成は , 以下のとおりで す。 7 WPR 000485H D7 (W) 6 5 4 3 2 1 0 D6 (W) D5 (W) D4 (W) D3 (W) D2 (W) D1 (W) D0 ( W) 初期値 XXXXXXXXB [bit7 ∼ bit 0]D7 ∼ D0 本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にウォッチドッグタイマ用 フリップフロップを "0" にクリアし , ウォッチドッグリセットの発生を延期させます。 本レジスタの読出し値は不定です。A5H と 5AH の間の時間は制限がありませんが , 以 下の表の期間内に両データの書込みを終えないとウォッチドッグリセットを発生しま す。 STCR WPR への最終 5AH 書込みから WT1 WT0 ウォッチドッグリセットの発生を 抑止するために最低限必要な WPR への書込み間隔 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 倍 の周期となります。 72 第 3 章 メモリ空間 , CPU および制御部 DMA 要求抑止レジスタ (PDRR) 3.11.6 DMA 要求抑止レジスタ (PDRR) は , DMA 要求を一時的に抑止して , CPU 動作させ るレジスタです。 ■ DMA 要求抑止レジスタ (PDRR) DMA 要求抑止レジスタ (PDRR) のレジスタ構成は , 以下のとおりです。 PDRR 000482H 15 14 13 12 11 10 9 8 初期値 (-) (-) (-) (-) D3 (R/W) D2 (R/W) D1 (R/W) D0 (R/W) ----0000B [bit 11 ∼ bit 8] D3 ∼ D0 本ビットに , "0" 以外の値を書き込むと , 以降の DMA から CPU への DMA 転送を抑止 します。以降 , 本ビットの内容を "0" にしない限り , DMA は使えなくなります。 <注意事項> PDRR レジスタは単独では使用しないでください。必ず HRCL レジスタと組み合わせて 使ってください。 73 第 3 章 メモリ空間 , CPU および制御部 PLL 制御レジスタ (PCTR) 3.11.7 PLL 制御レジスタ (PCTR) は , PLL の発振を制御するレジスタです。 本レジスタは , GCR の CHC が "1" のときのみ設定を変更可能です。 ■ PLL 制御レジスタ (PCTR) PLL 制御レジスタ (PCTR) のレジスタ構成は , 以下のとおりです。 PCTR 000488H 15 SLCT1 14 SLCT0 13 - 12 - 11 VSTP 10 - 9 - 8 - (R/W) (R/W) (-) (-) (R/W) (-) (-) (-) 初期値 00XX0XXXB [bit 15, bit 14] SLCT1, SLCT0 本ビットは , PLL の逓倍率を制御するものです。電源投入時のみ初期化されます。 本ビットの設定は GCR の CHC を "0" にしたときの内部動作周波数になります。 SLCT1 SLCT0 0 0 8.25 MHz 動作 [ 初期値 ] 0 1 16.5 MHz 動作 1 X 33.0 MHz 動作 内部動作周波数 ( 原発振 :16.5MHz の場合 ) [bit 13, bit 12, bit 10 ∼ bit 8] 予約ビット 常に "0" を書いてください。読出し値は不定です。 [bit 11] VSTP 本ビットは , PLL の発振を制御するものです。電源投入時および外部リセットにより 初期化されます。 なお PLL を停止して使用する場合は , リセット解除後に毎回停止させる必要がありま す。 VSTP PLL 動作 0 発振 1 発振停止 [ 初期値 ] <注意事項> ストップモードに移行すると , 本ビットの設定に関わらず , PLL は停止します。 74 第 3 章 メモリ空間 , CPU および制御部 3.11.8 ウォッチドッグタイマ機能 ウォッチドッグタイマ機能は , タイムベースタイマ出力を用いて動作し , プログラム の暴走状態を検出する機能です。プログラムの暴走などによりウォッチドッグリセッ ト延期レジスタへの A5H, 5AH 書込みが定められた時間内に行われなかった場合 , ウォッチドッグタイマよりウォッチドッグリセット要求が発生します。 ■ ウォッチドッグ制御部のブロックダイヤグラム 図 3.11-3 に , ウォッチドッグ制御部のブロックダイヤグラムを示します。 図 3.11-3 ウォッチドッグ制御部のブロックダイヤグラム MPX タイムベース タイマ Edge Detect リセット発生 F/F ウォッチ 内部リセット ラッチ 状態デコーダ ドッグ F/F リセット状態遷移要求信号 状態遷移 制御回路 クリア CTBR WT1,WT0 WPR A5&5A RSRR WDOG 内部バス ■ ウォッチドッグタイマ機能の設定 ウォッチドッグタイマは , タイムベースタイマ出力を用いて動作します。ウォッチドッ グ制御レジスタ (WTCR) への書込みにより動作を開始します。このとき , ウォッチドッ グタイマのインターバル時間を WT1, WT0 ビットにより設定します。インターバル時 間の設定は , すべてのリセット後最初の書込みで設定した値だけが有効となり , それ以 降の設定は無効となります。 また, 動作開始前に必ず, ウォッチドッグリセット発生延期レジスタ(WPR)にA5H, 5AH の書込みを行い , ウォッチドッグタイマを初期化してください。初期化しないとタイム ベースタイマの周期が変動し動作開始直後にウォッチドッグリセットを要求すること があります。 [例] LDI:20 #WRP,R0 LDI:8 #10000000b,R1 ; WT1,0=10 LDI:32 #WTCR,R2 LDI:8 #0x5A,R3 STB R3,@R0 LDI:8 #0x5A,R3 STB R3,@R0 STB R1,@R2 ; ウォッチドッグ起動 75 第 3 章 メモリ空間 , CPU および制御部 ■ リセット発生延期 一度 , ウォッチドッグタイマを起動すると , プログラムで定期的にウォッチドッグリ セット延期レジスタ (WPR) に対して定期的に A5H, 5AH を書き込む必要があります。 ウォッチドッグリセット用フリップフロップは,タイムベースタイマの選択したタップ の立下りを記憶し , 2 回目の立下りで本フリップフロップがクリアされていないと , リ セットが生成されます。 図 3.11-4 に , ウォッチドッグタイマの動作タイミングを示します。 図 3.11-4 ウォッチドッグタイマの動作タイミング タイムベースタイマ・オーバフロー ウォッチドッグフリップフロップ WPR ライト ウォッチドッグ起動 ウォッチドッグクリア ↑ウォッチドッグリセット発生 ■ プログラム以外のリセット延期要因 ウォッチドッグタイマは次の要因により自動的にリセット発生を延期します。 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.11-5 に , タイマベースタイマの構成を示します。 図 3.11-5 タイマベースタイマの構成 φ 76 1/2 1 1/2 2 1/2 3 ・ ・ ・ ・ ・ ・ 1/2 18 1/2 19 1/2 20 1/2 21 第 3 章 メモリ空間 , CPU および制御部 3.11.9 ギア機能 ギア機能は , クロックを間引いて供給する機能です。CPU 用と周辺用の 2 種類の独 立な回路があり , 異なるギア比でも CPU と周辺の間でのデータの送受を行うことが できます。さらに , 原クロックの選択として , 発振回路からのクロックと同周期のク ロックを使用するかまたは 1/2 分周回路を通したクロックを使用するかの指定が行 えます。 ■ ギア制御部のブロックダイヤグラム 図 3.11-6 に , ギア制御部のブロックダイヤグラムを示します。 図 3.11-6 ギア制御部のブロックダイヤグラム CPU系ギア 間隔指示信号 内部バス PCK1,PCK0 CHC 周辺クロック系統 ギア間隔生成回 発振 回路 1/2 (2逓倍) 選択回路 X0 X1 内部クロック生成回路選択回路 CPUクロック系統 ギア間隔生成回 CCK1,CCK0 CPUクロック 内部バス クロック 内部周辺 クロック PLL 周辺系ギア 間隔指示信号 77 第 3 章 メモリ空間 , CPU および制御部 ■ 設定 CPU のクロックの制御であればギア制御レジスタ (GCR) の CCK1, CCK0 ビットを , 周 辺のクロックの制御であれば同レジスタの PCK1, PCK0 ビットを , それぞれ望む値に設 定することで , 希望するギア比に設定できます。 [ 例 1] LDI:32 #GCR,R2 LDI:8 #11111100b,R1 ; CCK=11, PCK=11, CHC=0 STB R1,@R2 LDI:8 #01111000b,R1 ; CCK=01, PCK=10, CHC=0 STB R1,@R2 LDI:8 #00111000b,R1 ; CCK=00, PCK=10, CHC=0 STB R1,@R2 LDI:8 #00110000b,R1 ; CCK=00, PCK=00, CHC=0 STB R1,@R2 LDI:8 #10110000b,R1 ; CCK=10, PCK=00, CHC=0 STB R1,@R2 ; CPU clock=1/8f, Periferal clock=1/8f, f=direct ; CPU clock=1/2f, Periferal clock=1/4f, f=direct ; CPU clock=f, Periferal clock=1/4f, f=direct ; CPU clock=f, Periferal clock=f, f=direct ; 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 LDI:8 #00110000b,R1 ; CCK=00, PCK=00, CHC=0 STB R1,@R2 ; CPU clock=f, Periferal clock=f, f=1/2xtal ; CPU clock=f, Periferal clock=f, f=direct 図 3.11-7 に , ギア切換えのタイミングを示します。 図 3.11-7 ギア切換えのタイミング 原クロック CPU クロック(a) CPU クロック(b) 周辺クロック(a) 周辺クロック(b) CHC CCK値 PCK値 78 01 00 00 第 3 章 メモリ空間 , CPU および制御部 3.11.10 リセット要因保持 リセット要因保持回路は , 直前に発生したリセットの要因を保持する機能です。読出 しにより全フラグを "0" にします。読み出さない限り , 一度立った要因フラグは消え ません。 ■ リセット要因保持回路のブロックダイヤグラム 図 3.11-8 に , リセット要因保持回路のブロックダイヤグラムを示します。 図 3.11-8 リセット要因保持回路のブロックダイヤグラム RST端子 PONR PONR ウォッチドッグタイマ リセット検出回路 - - WDOG WDOG リセット入力回路 ERST ERST SRST SRST - - 内部バス パワーオン検出 SRST 状態 遷移 回路 デコーダ .or. 79 第 3 章 メモリ空間 , CPU および制御部 ■ 設定 本機能を使用するにあたっての特別な設定は不要です。リセットエントリアドレスに 置くプログラムの初めの方に , リセット要因レジスタの読出しと , 適切なプログラムへ 分岐する命令を置くようにします。 [例] 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 <注意事項> • PONR ビットが "1" の場合は , それ以外のビットの内容は不定として扱ってください。 また , このため , リセット要因をチェックする必要がある場合には必ず先頭にパワーオ ンリセット確認の命令を置いてください。 • パワーオンリセットのチェック以外のリセット要因チェックは,任意の位置で行うこと ができます。優先度は , チェックした順番で決まります。 80 第 3 章 メモリ空間 , CPU および制御部 3.11.11 PLL のクロック設定例 ここでは , PLL クロック設定例とアセンブラのソース例について説明します 。 ■ PLL のクロック設定例 図 3.11-9 に , PLL を使用した 33MHz 動作への切換え手順の例を示します。 図 3.11-9 PLL のクロック設定例 No PLL関係の設定を行う場合は必ずクロックを2分周系に 切り替えた後に行います。 CHC = 1 Yes DBLON = 1 Yes CHC ← 1 No DBLON ←1 ダブラをONにすることで, CPU=1/1にギアが固定となります。 周辺系は任意に設定が可能です。 No DBLAK=1 (注意事項) 外部バスを使用しない場合はダブラを使用する必要は ありません。その場合CPUのギアも任意に設定できます。 Yes No VSTP=0 Yes VSTP ← 0 PLLが停止している場合は再起動します。ただしPLLの再起動時は, 安定するまでの待ち時間300μs以上を,ソフトウェアで待つ必要が あります。 WAIT300μs SLCT1 ← 1 CHC ← 0 PLLからの出力タップを33MHzに切り替える。 クロックを2分周系からPLLに切り替える。 <注意事項> • ここに記載した DBLON, VSTP, SLCT1 の各ビットの設定順序の指定は特にありませ ん。 • PLL の再起動時には , 安定するまでの待ち時間 300 µs 以上を , ソフトウェアで必ず取っ てください。 また , キャッシュ ON/OFF などで待ち時間の不足を起こさないように注意してくださ い。 81 第 3 章 メモリ空間 , CPU および制御部 ■ クロック系統参考図 図 3.11-10 に , クロック系統参考図を示します。 図 3.11-10 クロック系統参考図 2分周系入力 1/2 16.5MHz PLL系入力 原発振入力 CHC 1 0 CCK1,0 1/1 1/2 1/4 1/8 PLL 1/2 SLCT1,0 1X 1/2 01 16.5MHz 00 1/2 VSTP 33MHz DBLON CPU系ギア PCTRレジスタ PCK1,0 1/1 1/2 1/4 1/8 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 @R15+,PS ; pop processor status ; ******************************************* ; VCO Setting ; ******************************************* 82 バス系 周辺系ギア 8.25MHz ; CPU系 周辺系 第 3 章 メモリ空間 , CPU および制御部 VCO_RUN: st R3,@-R15 ldi:8 #PCTR _MASK,R3 ; PCTR_MASK = 0000 1000 b and beq R5,R3 ; PCTR → VSTP=1 ? 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 WAIT_300US: add2 ; push R3 ; 300 µs = 160ns(6.25MHz) × 7 × 300(834) cycle #(-1),R2 ; 834h/2 = 41Ah (if cache on) bne WAIT_300US ; ld @R15+,R2 ; Pop R2 LOOP_300US_END: ld @R15+,R3 ; Pop R3 ret ; ******************************************* ; doubler ON ; ******************************************* DOUBLER_ON: borh #0001B,@r0 ; doubler ON LOOP_DBLON1: btsth #0010B,@r0 ; check DBLACK beq LOOP_DBLON1 ; loop while DBLACK = 0 bandl #1110B,@r0 ; to 1/1(PLL)clock nop nop nop nop nop nop ret 83 第 3 章 メモリ空間 , CPU および制御部 3.12 低消費電力モード 低消費電力モードには , ストップ状態とスリープ状態があります。 ■ ストップ状態の概要 ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止 ( ただし 32kHz の発振は停止しません ) した状態をいいます。この状態になると , 消費電力を最低限に 抑えることができます。 ストップ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに よって行います。 ストップ状態からの復帰は , 以下のいずれかで行います。 • 割込み要求 ( ただし , ストップ状態中でも割込み要求が発生可能な周辺に限る ) • RST 端子への "L" レベルの印加 ストップ状態ではすべての内部クロックが停止しますので , 復帰用の割込みを生成 できるもの以外の内蔵周辺は停止状態になります。 ■ スリープ状態の概要 スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。こ の状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。 スリープ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに よって行います。 スリープ状態からの復帰は , 以下のいずれかで行います。 • 割込み要求 • リセット要因の発生 スリープ状態では周辺クロックは動作しますので,内蔵周辺による割込みで解除ができ ます。 ■ 低消費電力モードの動作一覧 表 3.12-1 に , 低消費電力モードの動作一覧を示します。 表 3.12-1 低消費電力モードの動作一覧表 発振器 動作状態 遷移条件 ラン 内部クロック 周辺 端子 ○ ○ ○ 標準 CPU/ 内部バス 周辺 ○ ○ 解除方法 スリープ STCR の SLEP=1 ○ × ○ ○ ○ リセット 割込み ストップ STCR の STOP=1 × × × × * 外部リセット 外部割込み ○ : 動作 × : 停止 * : STCR の HIZX=0 で前の状態保持 , HIZX=1 でハイインピーダンス状態 84 第 3 章 メモリ空間 , CPU および制御部 ストップ状態 3.12.1 ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止 ( ただし 32kHz の発振は停止しません ) した状態をいいます。この状態になると , 消費電力を 最低限に抑えることができます。 ■ ストップ制御部のブロックダイヤグラム 図 3.12-1 に , ストップ制御部のブロックダイヤグラムを示します。 図 3.12-1 ストップ制御部のブロックダイヤグラム STOP状態遷移要求信号 停止信号 STCR STOP CPU クロック 生成 内部バス クロック 生成 内部DMA CPU Hold Enable CPU Hold Request クロック 生成 CPUクロック 内部クロック生成回路 内部割込み 内部リセット 状態遷移制御回路 clear 状態デコーダ 内部バス 内部周辺 クロック 生成 内部バスクロック 内部DMAクロック 外部バスクロック 内部周辺クロック STOP状態表示信号 クロック停止 クロック解除 要求信号 要求信号 ■ ストップ状態への移行 ● 命令を用いてストップ状態にする方法 ストップ状態にするためには , 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 にしてください。 85 第 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 フラグで禁止されている場合 ストップ状態に入れた命令以降の命令より実行 86 第 3 章 メモリ空間 , CPU および制御部 ● RST 端子による復帰 ストップ状態からの通常動作状態へは , 以下の手順で行います。 1) RST 端子への "L" レベル印加 2) 内部リセット発生 3) 発振回路動作再開 4) 発振安定待ち 5) 安定後 , 内部周辺クロック供給再開 6) 内部バスクロック供給再開 7) 内部 CPU クロック供給再開 8) リセットベクタ 取込み 9) リセットエントリアドレスより命令の実行再開 <注意事項> • 周辺からの割込み要求がすでに発生している場合は , ストップ状態にならず , 書込みは 無視されます。 • パワーオンリセット以外では発振安定待ち時間中のすべての内部クロック供給は行わ れません。パワーオンリセットでは内部状態の初期化を行う必要があるため , すべての 内部クロックの供給を行います。 87 第 3 章 メモリ空間 , CPU および制御部 スリープ状態 3.12.2 スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。 この状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。 ■ スリープ制御部のブロックダイヤグラム 図 3.12-2 に , スリープ制御部のブロックダイヤグラムを示します。 図 3.12-2 スリープ制御部のブロックダイヤグラム Sleep状態遷移要求信号 停止信号 STCR SLEP 内部リセット CPUクロック 内部バス クロック 生成 × × 内部DMA クロック 生成 外部バス クロック 生成 内部クロック生成回路 内部割込み 状態遷移制御回路 クリア 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 命令が必要です。 88 第 3 章 メモリ空間 , CPU および制御部 ● 設定方法 LDI:8 LDI:32 STB LDI:8 LDI:32 STB NOP NOP NOP NOP NOP NOP #11001100b,R1 ; CPU= 周辺ギア比 ( 左記は原発振× 1/8 の例 ), CHC は任意 #GCR,R2 R1,@R2 #01010000b,R1 ; SLEP=1 #STCR,R2 R1,@R2 ; ; ; ; ; ; ■ スリープ状態からの復帰 スリープ状態からの復帰は割込みまたはリセットの発生で行うことができます。 ● 割込みによる復帰 周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発生によりス リープ状態から復帰します。 スリープ状態から通常動作状態へは , 以下の手順で行います。 1) 割込み発生 2) 内部バスクロック供給再開 3) 部 CPU クロック供給再開 クロック供給後のプログラム実行は , 以下のようになります。 • 発生した割込みのレベルが CPU の ILM, I フラグで許可されている場合 レジスタ退避を行った後に , 割込みベクタを取り込んで割込み処理ルーチンより実 行 • 発生した割込みのレベルが CPU の ILM, I フラグで禁止されている場合 スリープ状態に入れた命令以降の命令より実行 ● リセット要求による復帰 スリープ状態からの通常動作状態へは , 以下の手順で行います。 1) 内部リセット発生 2) 内部バスクロック供給再開 3) 内部 CPU クロック供給再開 4) リセットベクタ取込み 5) リセットエントリアドレスより命令の実行再開 <注意事項> • STCR に書き込む命令に続く数命令は実行完了することがありえます。このため , 直後 に割込み要求の取消しや分岐命令などを置くと,一見予想と違う動作を行うように見え ることがあります。 • 周辺からの割込み要求がすでに発生している場合は , スリープ状態になりません。 • スリープ中の DMA 転送動作は , 使用できません。スリープ状態にする前に必ず DMA 転送動作を動作禁止にしてください . • スリープ状態にする前にクロックダブラを OFF にしてください。 89 第 3 章 メモリ空間 , CPU および制御部 低消費電力モードの状態遷移図 3.12.3 図 3.12-3 に , 低消費電力モードの状態遷移図を示します。 ■ 低消費電力モードの状態遷移図 図 3.12-3 低消費電力モードの状態遷移図 パワーオン リセット中 発振安定待ち メイン発振開始 32kHz発振開始 (1) カレンダ動作 CPUはストップ状態 メイン停止 32kHz発振 (2) リセット中 メイン発振 32kHz発振 (2) スリープ メイン発振 32kHz発振 (5) (2) カレンダ動作 発振安定 CPUはストップ状態 メイン発振開始 32kHz発振 (2) (1) (6) (3) (9) (4) 2分周クロック動作 メイン発振 32kHz発振 (7) (8) (1) 発振安定終了 (2) リセット (3) リセット解除 (4) 割込み (5) 外部割込み (6) ストップモード (7) PLL (8) 2 分周 (9) SLEEP モード 90 PLLクロック動作 メイン発振 32kHz発振 (2) 第4章 バスインタフェース この章では , バスインタフェースの概要およびバス 動作について説明します。 4.1 バスインタフェースの概要 4.2 バスインタフェースのブロックダイヤグラム 4.3 バスインタフェースのレジスタ 4.4 バス動作 4.5 バスタイミング 4.6 内部クロック逓倍動作 ( クロックダブラ ) 4.7 外部バス動作のプログラム例 91 第 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 バイト単位で配置し た例を示します。 92 第 4 章 バスインタフェース 図 4.1-1 チップセレクト領域配置例 00000000H 00000000H CS1 (512K バイト) 00080000H CS0 (512K バイト) CS0 (1M バイト) 00080000H 000FFFFFH CS2 (1M バイト) 000FFFFFH 001FFFFFH CS1 (64K バイト) CS3 (1M バイト) 0010FFFFH CS2 (64K バイト) 0011FFFFH 002FFFFFH CS3 (64K バイト) CS4 (1M バイト) 0012FFFFH 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 は使用できません。 ● バスサイズ指定 各領域はレジスタの設定によりバス幅の任意指定が可能です。 93 第 4 章 バスインタフェース 4.2 バスインタフェースのブロックダイヤグラム 図 4.2-1 に , バスインタフェースのブロックダイヤグラムを示します。 ■ バスインタフェースのブロックダイヤグラム 図 4.2-1 バスインタフェースのブロックダイヤグラム アドレスバス データバス A-Out MUX 書込みバッファ スイッチ 読出しバッファ スイッチ 外部データバス データブロック アドレスブロック +1または+2 アドレスバッファ シフタ 外部アドレスバス インページ 4 CS0-CS3 コンパレータ ASR AMR 3 外部端子制御部 RD WR0,WR1 全ブロック制御 4 レジスタ & コントロール 94 BRQ BGRNT RDY CLK 第 4 章 バスインタフェース 4.3 バスインタフェースのレジスタ 図 4.3-1 に , バスインタフェースのレジスタ構成を示します。 ■ バスインタフェースのレジスタ構成 図 4.3-1 バスインタフェースのレジスタ構成 アドレス 00060CH 00060EH 000610H 000612H 000614H 000616H 000618H 00061AH 00061CH 00061EH 000620H 000622H 000624H 000626H 15 8 7 0 RFCR エリア選択レジスタ 1 エリアマスクレジスタ 1 エリア選択レジスタ 2 エリアマスクレジスタ 2 エリア選択レジスタ 3 エリアマスクレジスタ 3 エリア選択レジスタ 4 エリアマスクレジスタ 4 エリア選択レジスタ 5 エリアマスクレジスタ 5 エリアモードレジスタ 0 / エリアモードレジスタ 1 エリアモードレジスタ 32 / エリアモードレジスタ 4 エリアモードレジスタ 5 ReFresh Control Register DMCR4 DMCR5 DRAM Control Register 4 DRAM Control Register 5 ASR1 AMR1 ASR2 AMR2 ASR3 AMR3 ASR4 AMR4 ASR5 AMR5 AMD0 AMD32 AMD5 00062CH 00062EH AMD1 AMD4 - 000628H 00062AH - EPCR1 外部端子制御レジスタ 0 外部端子制御レジスタ 1 0007FEH LER MODR リトルエンディアン / モードレジスタ EPCR0 (注意事項) 本品種では, 部分に対する機能端子は準備されておりませんので, これらのレジスタに対するアクセスは行わないでください。 95 第 4 章 バスインタフェース エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) 4.3.1 エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマスクレジスタ (AMR1 ∼ AMR5) は , チップセレクト領域 1 ∼ 5 アドレス空間の範囲を指定します。 ■ エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) のレジスタ構成は , 以下の とおりです。 ● エリア選択レジスタ (ASR1 ∼ ASR5) 15 14 13 12 …… 2 1 0 初期値 アクセス ASR1 A31 A30 A29 … …… A18 A17 A16 0001H W ASR2 A31 A30 A29 … …… A18 A17 A16 0002H W ASR3 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 12 …… 2 1 0 初期値 アクセス AMR1 A31 A30 A29 … …… A18 A17 A16 0000H W AMR2 A31 A30 A29 … …… A18 A17 A16 0000H W AMR3 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 の組合せによる , 各チップセレクト領域指定の例を示します。 96 第 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, WR1) が "L" 出力となります。 なお , 領域 0 は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で設定された領域以外の空間が割り 当てられ , リセット時は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 の初期値により 0001000H ∼ 0005FFFFH 以外の領域が割り当てられています。 <注意事項> チップセレクト領域は , お互いにオーバラップしないように設定してください。 97 第 4 章 バスインタフェース 図 4.3-2 に , チップセレクト領域を設定したマップの例を示します。 図 4.3-2 チップセレクト領域を設定したマップの例 (初期値) (例1・2) 00000000H 00000000H 領域0 領域0 00010000H 領域1 64Kバイト 00020000H 00030000H 領域2 領域1 64Kバイト 00030000H 00040000H 領域3 領域0 64Kバイト 00040000H 0FFC0000H 領域4 64Kバイト 領域2 00050000H 領域5 00060000H 64Kバイト 10000000H 領域0 FFFFFFFFH 98 64Kバイト 領域0 FFFFFFFFH 256Kバイト 第 4 章 バスインタフェース 4.3.2 エリアモードレジスタ 0 (AMD0) エリアモードレジスタ 0 (AMD0) は , チップセレクト領域 0 (ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で指定された領域以外の領域 ) の動作モードを指定します。リセッ ト時は領域 0 が選択されます。 ■ エリアモードレジスタ 0 (AMD0) エリアモードレジスタ 0 (AMD0) のレジスタ構成は , 以下のとおりです。 AMD0 7 6 5 ─ ─ ─ 4 BW1 3 BW0 2 1 WTC2 0 WTC1 WTC0 初期値 アクセス ---00111B R/W アドレス : 000620H [bit 4, bit 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 の端子レベルが読まれます。 [bit 2 ∼ bit 0] WTC2 ∼ WTC0 (Wait Cycle bit) WTC2 ∼ WTC0 は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を 指定します。 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 サイクルのウェイトが挿入されます。 99 第 4 章 バスインタフェース <注意事項> • MODR を書き込む前には必ず使用する AMD0 ∼ AMD5 の BW1, BW0 を設定してくだ さい。 • モードレジスタ (MODR) 設定後は , 外部領域に対しては AMD0 ∼ AMD5 で設定されて いるバス幅が有効になります。 • MODR 書込み後の BW1, BW0 の変更は行わないでください。誤動作の原因になります。 MODR write RST(リセット) ↓ → AMD0~AMD5レジスタの内容が有効 100 第 4 章 バスインタフェース エリアモードレジスタ 1 (AMD1) 4.3.3 エリアモードレジスタ 1 (AMD1) は , チップセレクト領域 1 (ASR1 と AMR1 で指定 された領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 1 (AMD1) エリアモードレジスタ 1 (AMD1) のレジスタ構成は , 以下のとおりです。 AMD1 7 6 5 4 3 2 1 0 MPX ─ ─ BW1 BW0 WTC2 WTC1 WTC0 初期値 アクセス 0--00000B R/W アドレス: 000621H [bit 7] MPX (MultiPleX bit) MPX は , アドレス / データ入出力の時分割入出力インタフェースを制御します。 0 通常バスインタフェース 1 設定禁止 [bit 4, bit 3] BW1, BW0 (Bus Width bit) BW1, BW0 は , 領域 1 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [bit 2 ∼ bit 0] WTC2 ∼ WTC0 (Wait Cycle bit) WTC2 ∼ WTC0 は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を 指定します。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初 期化され , 挿入ウェイトサイクル数は "0" になります。 101 第 4 章 バスインタフェース 4.3.4 エリアモードレジスタ 32 (AMD32) エリアモードレジスタ 32 (AMD32) は , チップセレクト領域 2 (ASR2 と AMR2 で指 定された領域 ) とチップセレクト領域 3 (ASR3 と AMR3 で指定された領域 ) の動作 モードを指定します。 領域 2, 3 のバス幅は , BW1, BW0 のビットで一括して同じバス幅を制御し , 自動 ウェイトサイクルはそれぞれの領域で独立に設定できます。 ■ エリアモードレジスタ 32 (AMD32) エリアモードレジスタ 32 (AMD32) のレジスタ構成は , 以下のとおりです。 AMD32 7 6 5 4 3 2 1 0 BW1 BW0 WT32 WT31 WT30 WT22 WT21 WT20 初期値 アクセス 00000000B R/W アドレス : 000622H [bit 7, bit 6] BW1, BW0 (Bus Width bit) BW1, BW0 は , 領域 2・領域 3 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [bit 5 ∼ bit 3] WT32 ∼ WT30 (Wait Cycle bit) WT32 ∼ WT30 は , 領域 3 のメモリアクセス時の自動挿入ウェイトサイクル数を指定し ます。 動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿入 ウェイトサイクル数は "0" になります。 [bit 2 ∼ bit 0] WT22 ∼ WT20 (Wait Cycle bit) WT22 ∼ WT20 は , 領域 2 のメモリアクセス時の自動挿入ウェイトサイクル数を指定し ます。 動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿入 ウェイトサイクル数は "0" になります。 102 第 4 章 バスインタフェース エリアモードレジスタ 4 (AMD4) 4.3.5 エリアモードレジスタ 4 (AMD4) は , チップセレクト領域 4 (ASR4 と AMR4 で指定 された領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 4 (AMD4) エリアモードレジスタ 4 (AMD4) のレジスタ構成は , 以下のとおりです。 AMD4 7 6 5 4 3 2 1 0 DRME ─ ─ BW1 BW0 WTC2 WTC1 WTC0 初期値 アクセス 0--00000B R/W アドレス: 000623H [bit 7] DRME (DRaM Enable bit) DRME は , 領域 4 に対して通常バスインタフェースか DRAM インタフェースかを選択 します。 0 通常バスインタフェース 1 設定禁止 [bit 4, bit 3] BW1, BW0 (Bus Width bit) BW1, BW0 は , 領域 4 のバス幅を指定します。 BW1 BW0 バス幅 0 0 8 ビット 0 1 16 ビット 1 0 Reserved 1 1 Reserved [bit 2 ∼ bit 0] WTC2 ∼ WTC0 (Wait Cycle bit) WTC2 ∼ WTC0 は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を 指定します。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初 期化され , 挿入ウェイトサイクル数は "0" になります。 103 第 4 章 バスインタフェース エリアモードレジスタ 5 (AMD5) 4.3.6 エリアモードレジスタ 5 (AMD5) は , チップセレクト領域 5 (ASR5 と AMR5 で指定 された領域 ) の動作モードを指定します。 ■ エリアモードレジスタ 5 (AMD5) エリアモードレジスタ 5 (AMD5) のレジスタ構成は , 以下のとおりです。 7 AMD5 DRME 6 5 ─ ─ 4 3 2 1 0 BW1 BW0 WTC2 WTC1 WTC0 アドレス: 000624H 各ビットは AMD4 と同様の意味を持ちます。 「4.3.5 エリアモードレジスタ 4 (AMD4)」を参照してください。 104 初期値 アクセス R/W 0--00000B 第 4 章 バスインタフェース 外部端子制御レジスタ 0 (EPCR0) 4.3.7 外部端子制御レジスタ 0 (EPCR0) は , 各信号の出力を制御します。 出力許可の場合は各バスモードで所望のタイミングを出力し , 入力有効の場合は外部 からの入力信号を受け付けます。 出力禁止・入力無効の場合は I/O ポートとして使用できます。 ■ 外部端子制御レジスタ 0 (EPCR0) 外部端子制御レジスタ 0 (EPCR0) のレジスタ構成は , 以下のとおりです。 EPCR0 15 14 13 12 11 10 9 8 ─ ─ ─ ─ WRE RDXE RDYE BRE 7 6 5 4 3 2 1 0 ─ CKE ─ ─ COE3 COE2 COE1 COE0 初期値 アクセス W - -- -1100B 初期値 アクセス W -1111111B アドレス: 000628H [bit 11] WRE (WRite pulse output Enable bit) WRE は , ライトパルス WR0, WR1 を出力するかどうかを選択します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) ライトパルスは , WRE ビットを "1" に設定していても , AMD で設定されたバス幅に応 じて I/O ポートとして使用できます ( 例えば 8 ビットモードでは WR1 は出力されず , 対応する端子は I/O ポートとして使用できます )。 [bit 10] RDXE (ReaDX pulse output Enable bit) RDXE は , リードパルス RD を出力するかどうかを選択します。 リセット時は出力許可となります。 0 出力禁止 ( 設定禁止 ) 1 出力許可 ( 初期値 ) [bit 9] RDYE (ReaDY input Enable bit) RDYE は , RDY 入力を以下のように制御します。 リセット時は入力無効となります。 0 RDY 入力無効 ( 初期値 ) 1 RDY 入力有効 105 第 4 章 バスインタフェース [bit 8] BRE (Bus Request Enable bit) BRE は , BRQ と BGRNT を以下のように制御します。 リセット時は BRQ の入力は無効 , BGRNT の出力禁止となります。 0 BRQ の入力無効 , BGRNT の出力禁止 ( 端子は I/O ポートとして機能 ) ( 初期値 ) 1 BRQ の入力有効 , BGRNT の出力許可 [bit 6] CKE (ClocK output Enable bit) CKE は , CLK ( 外部バスの動作クロック波形 ) の出力イネーブルビットです。 0 出力禁止 1 出力許可 ( 初期値 ) 本ビットはリセット時に "1" に初期化され , CLK は出力許可状態になります。 [bit 5, bit 4] 空で , 本ビットへの書込みは無意味です。 初期値は , "1" です。 [bit 3] COE3 (Chip select Output Enable) COE3 は , CS3 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) [bit 2] COE2 (Chip select Output Enable) COE2 は , CS2 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 1 出力許可 ( 初期値 ) [bit 1] COE1 (Chip select Output Enable) COE1 は , CS1 の出力を制御します。 リセット時は出力許可となります。 106 0 出力禁止 1 出力許可 ( 初期値 ) 第 4 章 バスインタフェース [bit 0] COE0 (Chip select Output Enable) COE0 は , CS0 の出力を制御します。 リセット時は出力許可となります。 0 出力禁止 ( 設定禁止 ) 1 出力許可 ( 初期値 ) 本品種では , このビットには常に "1" を設定してください。 107 第 4 章 バスインタフェース 4.3.8 外部端子制御レジスタ 1 (EPCR1) 外部端子制御レジスタ 1 (EPCR1) は , アドレス信号の出力を制御します。 ■ 外部端子制御レジスタ 1 (EPCR1) 外部端子制御レジスタ 1 (EPCR1) のレジスタ構成は , 以下のとおりです。 EPCR1 15 14 13 12 11 10 9 8 ─ ─ ─ ─ ─ ─ ─ ─ 7 6 5 4 3 2 1 0 AE23 AE22 AE21 AE20 AE19 AE18 AE17 AE16 初期値 アクセス W --------B 初期値 アクセス W 11111111B アドレス: 00062AH [bit 7 ∼ bit 0] AE23 ∼ AE16 (Address output Enable 23 ∼ 16) AE23 ∼ AE16 は対応するアドレスを出力するかどうかを指定します。 出力禁止の場合は , I/O ポートとして使用できます。 0 出力禁止 1 出力許可 ( 初期値 ) AE23 ∼ AE16 は , リセットによって "FFH" に初期化されます。 108 第 4 章 バスインタフェース リトルエンディアンレジスタ (LER) 4.3.9 本品種のバスアクセスは通常全領域ビッグエンディアンで行いますが , LER を設定 することにより , 領域 1 ∼ 5 のどれか 1 領域をリトルエンディアン領域として扱う ことができます。 ただし , 領域 0 はリトルエンディアン対象外です。 LER レジスタには , リセット後 1 度だけしか書き込むことができません。 ■ リトルエンディアンレジスタ (LER) リトルエンディアンレジスタ (LER) のレジスタ構成は , 以下のとおりです。 LER 7 6 5 4 3 2 1 0 ─ ─ ─ ─ ─ LE2 LE1 LE0 初期値 -----000B アクセス W アドレス: 0007FEH [bit 2 ∼ bit 0] LE2 ∼ LE0 (Little-Endian Register 2 ∼ 0) リトルエンディアンの設定をします。 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) モードレジスタ (MODR) については ,「3.10 動作モード」を参照してください。 109 第 4 章 バスインタフェース 4.4 バス動作 ここでは , バス動作の基本事項として , 以下の項目について説明します。 • データバス幅と制御信号との関係 • ビッグエンディアンのバスアクセス • リトルエンディアンのバスアクセス • 外部アクセスの比較 ■ データバス幅と制御信号との関係 通常バスインタフェースでのデータバス幅と制御信号の関係について説明します。 ■ ビッグエンディアンのバスアクセス 外部アクセスについて , 次の項目を説明します。 • データフォーマット • データバス幅 • 外部バスアクセス • 外部デバイスとの接続例 ■ リトルエンディアンのバスアクセス 外部アクセスについて , 次の項目を説明します。 • リトルエンディアンとビッグエンディアンとの相違点 • データフォーマット • データバス幅 • 外部デバイスとの接続例 ■ ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ビッグエンディアンとリトルエンディアンの外部アクセスの比較として,バス幅に対す るワードアクセス , ハーフワードアクセスおよびバイトアクセスについて説明します。 110 第 4 章 バスインタフェース 4.4.1 データバス幅と制御信号との関係 WR0, WR1の制御信号は,ビッグエンディアン/リトルエンディアンやデータバス幅に 関係なくデータバスのバイト位置に常に 1 対 1 に対応します。 ■ データバス幅と制御信号との関係 図 4.4-1 に , 設定されたデータバス幅で使用される本品種のデータバスのバイト位置と それに対応する制御信号をまとめます。 図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号 (a) 16ビットバス幅 data bus D31 (b) 8ビットバス幅 制御信号 data bus D31 : WR0 : WR0 D24 - : - : WR1 制御信号 D16 - : - - : - - : - - : - (D23~D16 は未使用) 111 第 4 章 バスインタフェース 4.4.2 ビッグエンディアンのバスアクセス リトルエンディアンレジスタ (LER) を設定しない領域に対しては , ビッグエンディ アンで外部バスアクセスを行います。 FR ファミリは , 通常ビッグエンディアンです。 ■ データフォーマット 図 4.4-2 ∼図 4.4-4 に , データフォーマットごとの内部レジスタと外部データバスとの 関係を示します。 ● ワードアクセス (LD, ST 命令実行時 ) 図 4.4-2 内部レジスタと外部データバスとの関係 ( ワードアクセス ) 内部レジスタ 外部バス D31 AA AA D23 BB BB D15 CC D07 DD D31 CC D23 DD ● ハーフワードアクセス (LDUH, STH 命令実行時 ) 図 4.4-3 内部レジスタと外部データバスとの関係 ( ハーフワードアクセス ) 内部レジスタ 外部バス D31 D31 AA D23 D23 BB D15 AA D07 BB ● バイトアクセス (LDUB, STB 命令実行時 ) 図 4.4-4 内部レジスタと外部データバスとの関係 ( バイトアクセス ) (a) 出力アドレス下位 "0" (b) 出力アドレス下位 "1" 内部レジスタ 外部バス D31 内部レジスタ 外部バス D31 D31 D23 D23 D31 AA D23 D23 AA D15 D15 D07 D07 AA 112 AA 第 4 章 バスインタフェース ■ データバス幅 図 4.4-5 および図 4.4-6 に , データバス幅ごとの内部レジスタと外部データバスとの関 係を示します。 ● 16 ビットバス幅 図 4.4-5 内部レジスタと外部データバスとの関係 (16 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00""10" D31 D31 AA Read/Wr ite 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 ■ 外部バスアクセス 図 4.4-7 および図 4.4-8 に , 以下の状態の外部バスアクセスを示します。 • データバス幅 :16/8 ビットバス幅 • データフォーマット : ワード / ハーフワード / バイトアクセス また , 図中には , 各状態のアクセスバイト位置 , プログラムアドレスと出力アドレスお よびバスアクセス回数をまとめます。 本 LSI は , ミスアラインエラーを検出しません。 したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット が"00", "01", "10", "11"であっても,出力するアドレスの下位2ビットはすべて"00"となり, ハーフワードアクセスの場合には "00", "01" のときは "00" に , "10", "11" のときには "10" になります。 113 第 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 16ビット (B)ハーフワードアクセス (a)PA1/PA0="00" →(1) 出力A1/A0="00" (b)PA1/PA0="01" →(1) 出力A1/A0="00" (c)PA1/PA0="10" →(1) 出力A1/A0="10" (d)PA1/PA0="11" →(1) 出力A1/A0="10" (1) → 00 01 (1) → 00 01 00 01 00 01 10 11 10 11 (1) → 10 11 (1) → 10 11 (C)バイトアクセス (a)PA1/PA0="00" →(1) 出力A1/A0="00" (c)PA1/PA0="10" →(1) 出力A1/A0="10" (d)PA1/PA0="11" →(1) 出力A1/A0="11" (1) → 00 01 (1) → 00 01 00 01 00 01 10 11 10 11 (1) → 10 11 (1) → 10 11 PA1/PA0 出力A1/A0 + (1)~(4) 114 (b)PA1/PA0="01" →(1) 出力A1/A0="01" :プログラムで指定したアドレス下位2ビット :出力するアドレスの下位2ビット :出力するアドレスの先頭バイト位置 :アクセスするデータバイト位置 :バスアクセス回数 第 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) 出力A1/A0="01" (2) 出力 A1/A0= "01" (2) 出力 A1/A0= "01" (2) 出力 A1/A0= "01" (3) 出力A1/A0="10" (3) 出力 A1/A0= "10" (3) 出力 A1/A0= "10" (3) 出力 A1/A0= "10" (4) 出力A1/A0="11" (4) 出力 A1/A0= "11" (4) 出力 A1/A0= "11" (4) 出力 A1/A0= "11" MSB LSB (1) → 00 (1) → 00 (1) → 00 (1) → 00 (2) → 01 (2) → 01 (2) → 01 (2) → 01 (3) → 10 (3) → 10 (3) → 10 (3) → 10 (4) → 11 (4) → 11 (4) → 11 (4) → 11 8ビット (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) 出力 A1/A0= "01" (2) 出力 A1/A0= "01" (2) 出力 A1/A0= "11" (2) 出力 A1/A0= "11" (1) → 00 (1) → 00 00 00 (2) → 01 (2) → 01 01 01 10 10 (1) → 10 (1) → 10 11 11 (2) → 11 (2) → 11 (C )バイトアクセス (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 (1) → 01 01 01 10 10 (1) → 10 10 11 11 11 (1) → 11 PA1/PA0 :プログラムで指定したアドレス下位2ビット 出力 A1/A0 :出力するアドレスの下位2ビット + (1) ~ (4) :出力するアドレスの先頭バイト位置 :アクセスするデータバイト位置 :バスアクセス回数 115 第 4 章 バスインタフェース ■ 外部デバイスとの接続例 図 4.4-9 に , MB91150 と外部デバイスの接続例を示します。 図 4.4-9 外部デバイスとの接続例 MB91150 D23 D31 D24 WR0 D16 WR1 0 D15 1 D08 D07 D00 16ビット デバイス* X D07 D00 8ビット デバイス* ("0"Address下位1bit,"X" は Address下位1bitが"0","1" 可) * :16ビット/8ビットデバイスの場合は、本品種のMSB 側のデータバスを使用します。 116 第 4 章 バスインタフェース 4.4.3 リトルエンディアンのバスアクセス リトルエンディアンレジスタ (LER) を設定した領域に対しては , リトルエンディア ンで外部バスアクセスを行います。 MB91150 のリトルエンディアンバスアクセスは , ビッグエンディアン時のバスアク セス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御信 号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることによ り実現しています。 接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必 要がありますので , 十分注意が必要です。 ■ リトルエンディアンとビッグエンディアンの相違点 出力するアドレスの順番はビッグエンディアン / リトルエンディアンによって変わり ません。 また , 16 ビット /8 ビットバス幅で使用するデータバス制御信号は , ビッグエンディア ン / リトルエンディアンによって変わりません。 データフォーマットごとの相違を以下に示します。 ● ワードアクセス ビッグエンディアンのアドレス "00B" に対応する MSB 側のバイトデータが , リトルエ ンディアンでは LSB 側のバイトデータになります。 ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。 "00" → "11", "01" → "10", "10" → "01", "11" → "00" ● ハーフワードアクセス ビッグエンディアンのアドレス "0" に対応する MSB 側のバイトデータが , リトルエン ディアンでは LSB 側のバイトデータになります。 ハーフワードアクセスの場合は,ハーフワード内の2バイトのバイト位置が反転します。 "0" → "1", "1" → "0" ● バイトアクセス ビッグエンディアン / リトルエンディアンとも同じです。 ■ データフォーマット 図 4.4-10 ∼図 4.4-12 に , データフォーマットごとの内部レジスタと外部データバスと の関係を示します。 117 第 4 章 バスインタフェース ● ワードアクセス (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 118 AA 第 4 章 バスインタフェース ■ データバス幅 図 4.4-13 および図 4.4-14 に , データバス幅ごとの内部レジスタと外部データバスとの 関係を示します。 ● 16 ビットバス幅 図 4.4-13 内部レジスタと外部データバスとの関係 (16 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00" "10" D31 D31 AA リード/ライト DD BB BB CC AA D23 D23 D15 CC D07 DD ● 8 ビットバス幅 図 4.4-14 内部レジスタと外部データバスとの関係 (8 ビットバス幅 ) 内部レジスタ 外部バス 出力アドレス下位 "00" "01" "10" "11" D31 AA D31 リード/ライト DD CC BB D23 AA BB D15 CC D07 DD 119 第 4 章 バスインタフェース ■ 外部デバイスとの接続例 図 4.4-15 および図 4.4-16 に , データバス幅ごとの , MB91150 と外部デバイスとの接続 例を示します。 ● 16 ビットバス幅 図 4.4-15 外部デバイスとの接続例 (16 ビットバス幅 ) MB91150 D23 D24 WR0 D16 WR1 D31 ビッグエンディアン領域 WR0 WR1 D31-24 D23-16 MSB LSB D15 D08 D07 D00 リトルエンディアン領域 WR1 WR0 D23-16 D31-24 MSB LSB D15 D08 D07 D00 ● 8 ビットバス幅 図 4.4-16 外部デバイスとの接続例 (8 ビットバス幅 ) MB91150 D31 D23 D24 WR0 D16 WR1 ビッグエンディアン領域 D07 D00 リトルエンディアン領域 D07 D00 ( 注意事項 ) 本品種にはチップセレクト出力がありませんので , 外部でアドレスをデコードす る必要があります。 120 第 4 章 バスインタフェース 4.4.4 ビッグエンディアンとリトルエンディアンの外部ア クセスの比較 表 4.4-1 ∼表 4.4-3 に , データバス幅およびデータフォーマットごとの , ビッグエン ディアンとリトルエンディアンの外部アクセスの比較を示します。 ■ ワードアクセス 表 4.4-1 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ワードアクセス ) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部reg 外部端子 address: "0" "2" D31 D31 AA AA CC BB CC BB DD D16 リトルエンディアンモード 制御端子 内部reg 外部端子 制御端子 WR0 address: "0" "2" D31 AA DD BB WR0 WR1 BB WR1 D31 - - - - - - DD CC AA D16 D00 CC - - - DD - - - D00 (1) (2) 8 ビットバス幅 内部reg 外部端子 (1) (2) 制御端子 address: "0" "1" "2" "3" D31 D31 AA AA BB CC DD WR0 内部reg 外部端子 制御端子 address: "0" "1" "2" "3" D31 D31 DD CC BB AA WR0 AA D24 D24 BB - - - - - BB - - - - - CC - - - - - CC - - - - - DD - - - - - DD - - - - - D00 D00 (1) (2) (3) (4) (1) (2) (3) (4) 121 第 4 章 バスインタフェース ■ ハーフワードアクセス 表 4.4-2 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ハーフワードアクセス ) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部reg 外部端子 制御端子 address: "0" D31 D31 AA WR0 BB WR1 リトルエンディアンモード 内部reg 外部端子 address: "0" D31 D31 BB AA AA - - BB - - AA - - BB - - (1) (1) 内部reg 外部端子 制御端子 address: "2" D31 内部reg 外部端子 address: "2" D31 D31 制御端子 D31 CC WR0 DD WR0 DD WR1 CC WR1 D16 CC - - DD - - D00 D16 CC - - DD - - D00 (1) (1) 内部reg 外部端子 制御端子 address: "0" "1" D31 D31 AA BB WR0 D24 - - - D00 - - AA BB D00 WR0 - - - - - - - D00 (1) (2) 内部reg 外部端子 address: "2" "3" D31 D31 DD CC 制御端子 D24 - - - BB D00 内部reg 外部端子 address: "0" "1" D31 D31 BB AA - - - AA (1) (2) 制御端子 WR0 内部reg 外部端子 address: "2" "3" D31 D31 DD CC 制御端子 WR0 D24 D24 - - - CC D00 - DD D00 (1) (2) - CC - DD 122 WR1 D00 D00 D00 WR0 D16 D16 8 ビットバス幅 制御端子 D00 (1) (2) 第 4 章 バスインタフェース ■ バイトアクセス 表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (1 / 2) バス幅 16 ビットバス幅 ビッグエンディアンモード 内部Reg 外部端子 address: "0" D31 制御端子 リトルエンディアンモード 内部Reg 外部端子 address: "0" D31 D31 AA 制御端子 D31 WR0 AA - WR0 - D16 D16 - - - AA D00 - AA D00 (1) 内部Reg 外部端子 address: "1" D31 (1) 制御端子 内部Reg 外部端子 address: "1" D31 D31 D31 - BB 制御端子 - WR1 BB D16 WR1 D16 - - - BB D00 - BB D00 (1) 内部Reg 外部端子 address: "2" D31 D31 CC (1) 制御端子 WR0 内部Reg 外部端子 address: "2" D31 D31 CC - 制御端子 WR0 - D16 D16 - - - CC D00 - CC D00 (1) 内部Reg 外部端子 address: "3" D31 (1) 制御端子 内部Reg 外部端子 address: "3" D31 D31 D31 - DD 制御端子 - WR1 DD D16 WR1 D16 - - - DD D00 - DD D00 (1) (1) 123 第 4 章 バスインタフェース 表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (2 / 2) バス幅 8 ビットバス幅 ビッグエンディアンモード 内部Reg 外部端子 address: "0" D31 制御端子 リトルエンディアンモード 内部Reg 外部端子 address: "0" D31 D31 AA D31 WR0 AA WR0 D24 D24 - - - - - AA D00 - AA D00 (1) 内部Reg 外部端子 address: "1" D31 (1) 制御端子 内部Reg 外部端子 address: "1" D31 D31 BB 制御端子 D31 WR0 BB WR0 D24 D24 - - - - - BB D00 - BB D00 (1) 内部Reg 外部端子 address: "2" D31 D31 CC (1) 制御端子 WR0 D24 内部Reg 外部端子 address: "2" D31 D31 CC D24 WR0 - - - - CC 制御端子 - D00 - CC D00 (1) 内部Reg 外部端子 address: "3" D31 D31 DD (1) 制御端子 WR0 D24 内部Reg 外部端子 address: "3" D31 D31 DD D24 WR0 - - - - DD D00 (1) 制御端子 - - DD D00 124 制御端子 (1) 第 4 章 バスインタフェース 4.5 バスタイミング ここでは , 以下の各モードでのバスアクセスの動作の詳細について示します。 • 通常バスアクセス • ウェイトサイクル • 外部バスリクエスト ■ 通常バスアクセス 通常バスインタフェースでは , リードサイクル / ライトサイクルともに "2 クロックサ イクル " が基本バスサイクルになります。以降では , その 2 サイクルを "BA1", "BA2" で表します。 通常バスアクセスには , 以下のサイクルがあります。 • 基本リードサイクル • 基本ライトサイクル • 各モードでのリードサイクル • 各モードでのライトサイクル • リード / ライト混在サイクル ■ ウェイトサイクル ウェイトサイクルは前のサイクルを継続して行うモードであり,ウェイトが解除される まで "BA1 サイクル " を繰り返します。 ウェイトサイクルには , 以下の 2 種類があります。 • AMD レジスタの WTC2 ∼ WTC0 ビットによる「自動ウェイトサイクル」 • RDY 端子を使用する「外部ウェイトサイクル」 ■ 外部バスリクエスト 外部バスリクエストには , 以下の 2 種類があります。 • バス権解放 • バス権獲得 125 第 4 章 バスインタフェース 基本リードサイクル 4.5.1 ここでは , 基本リードサイクルの動作について示します。 ■ 基本リードサイクルタイミング 図 4.5-1 に , バス幅 :16 ビット , アクセス : ワード , CS0 領域にアクセスする場合での基 本リードサイクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-1 基本リードサイクルのタイミング例 BA1 BA2 BA1 BA2 CLK A23-00 D31-24 D23-16 #0 #0 #1 ↑ #2 #2 #3 ↑ RD WR0 WR1 (CS0) (CS1) (CS2) (CS3) (DACK0) (DEOP0) アドレス上位側の ハーフワードアクセス アドレス下位側の ハーフワードアクセス ( 注意事項 ) A23-00 の "#" は , アドレスの下位 2 ビットを表します。 D31-16 の "#" は , リードデータのバイトアドレスを表します。 (DACK0)(DEOP0) は DMAC のバスサイクルを表します。 " ↑ " は , リードデータの取込みタイミングを表します。 126 第 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 と同じです。 127 第 4 章 バスインタフェース 基本ライトサイクル 4.5.2 ここでは , 基本ライトサイクルの動作について示します。 ■ 基本ライトサイクルタイミング 図 4.5-2 に , バス幅 :8 ビット , アクセス : ワード , CS0 領域にアクセスする場合での基 本ライトサイクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-2 基本ライトサイクルのタイミング例 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23-00 D31-24 D23-16 RD WR0 WR1 (CS0) (CS1) (CS2) (CS3) (DACK0) (DEOP0) 128 #0 #0 #1 #1 #2 #2 アドレス下位2ビット "0"のバイトアクセス アドレス下位2ビット "1"のバイトアクセス アドレス下位2ビット "2"のバイトアクセス #3 #3 アドレス下位2ビット "3"のバイトアクセス 第 4 章 バスインタフェース 【動作説明】 • A23 ∼ A00 ( アドレス 23 ∼ 00) は , ライトサイクルのワード / ハーフワード / バイト アクセスの先頭バイト位置のアドレスをバスサイクルの開始 (BA1) から出力しま す。上記例の場合 , 8 ビットバス幅でワードアクセスを行うため , まずワードアクセ スの先頭バイト ( アドレス下位 "0") のアドレスを出力し , その後は順々に先頭バイ トから +1 のアドレス ("1"), +2 のアドレス ("2"), +3 のアドレス ("3") を出力します。 • D31 ∼ D16 ( データ 31 ∼ 16) は , 外部メモリ , I/O へのライトデータを表します。ラ イトサイクルの場合は , ライトデータをバスサイクルの開始 (BA1) から出力し , バ スサイクルの終了 (BA2 の終了 ) で Hi-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 ポートして使用できませんのでご注意く ださい。 端子 最大バス幅 16 ビット 8 ビット D31 ∼ D24 D23 ∼ D16 WR0 WR1 D31 ∼ D24 D23 ∼ D16 WR0 WR1 D31 ∼ D24 WR0 I/O ポート • DACK0 ∼ DACK2, DEOP0 ∼ DEOP2 は DMA の外部バスサイクルで出力されます。 出力するかどうかはDMACのレジスタ設定により決定され,出力タイミングはWR0, WR1 と同じです。 129 第 4 章 バスインタフェース 各モードでのリードサイクル 4.5.3 図 4.5-3 ∼図 4.5-7 に , 各モードでのリードサイクルの動作タイミング例を示しま す。 ■ 各モードでのリードサイクルタイミング ● バス幅 :16 ビット , アクセス : ハーフワード 図 4.5-3 リードサイクルのタイミング例 1 BA1 BA2 BA1 BA2 CLK #0 A23~00 D31~24 D23~16 RD #2 #0 #1 #2 #3 ● バス幅 :16 ビット , アクセス : バイト 図 4.5-4 リードサイクルのタイミング例 2 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 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~00 D31~24 D23~16 RD 130 #0 #1 #0 #2 #1 #3 #2 #3 第 4 章 バスインタフェース ● バス幅 :8 ビット , アクセス : ハーフワード 図 4.5-6 リードサイクルのタイミング例 4 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 RD #0 #1 #0 #2 #1 #3 #2 #3 ● バス幅 :8 ビット , アクセス : バイト 図 4.5-7 リードサイクルのタイミング例 5 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 RD #0 #1 #0 #2 #1 #3 #2 #3 131 第 4 章 バスインタフェース 4.5.4 各モードでのライトサイクル 図 4.5-8 ∼図 4.5-12 に , 各モードでのライトサイクルの動作タイミング例を示しま す。 ■ 各モードでのライトサイクルタイミング ● バス幅 :16 ビット , アクセス : ワード 図 4.5-8 ライトサイクルのタイミング例 1 BA1 BA2 BA1 BA2 CLK #0 #0 #1 A23~00 D31~24 D23~16 WR0 WR1 #2 #2 #3 ● バス幅 :16 ビット , アクセス : ハーフワード 図 4.5-9 ライトサイクルのタイミング例 2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 WR0 WR1 #0 #0 #1 #2 #2 #3 ● バス幅 :16 ビット , アクセス : バイト 図 4.5-10 ライトサイクルのタイミング例 3 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 WR0 WR1 #0 #0 X #1 X #1 #2 #2 X #3 X #3 X:無効データ出力 132 第 4 章 バスインタフェース ● バス幅 :8 ビット , アクセス : ハーフワード 図 4.5-11 ライトサイクルのタイミング例 4 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 WR0 WR1 #0 #0 #1 #1 #2 #2 #3 #3 ● バス幅 :8 ビット , アクセス : バイト 図 4.5-12 ライトサイクルのタイミング例 5 BA1 BA2 BA1 BA2 BA1 BA2 BA1 BA2 CLK A23~00 D31~24 D23~16 WR0 WR1 #0 #0 #1 #1 #2 #2 #3 #3 133 第 4 章 バスインタフェース リード / ライト混在サイクル 4.5.5 ここでは , リード / ライト混在サイクルの動作について示します。 ■ リード / ライト混在サイクルタイミング 図 4.5-13 に , CS0 領域 : バス幅 16 ビット , アクセス : ワードリードの場合および CS1 領 域 : バス幅 8 ビット , アクセス : ハーフワードライトの場合の , リード / ライト混在サ イクルのタイミング例を示します。 <注意事項> 本品種には CS4, CS5 出力はありません。 図 4.5-13 リード / ライト混在サイクルのタイミング例 BA1 BA2 BA1 BA2 Idle BA2 BA1 BA1 BA2 Idle CLK A23-00 D31-24 D23-16 #0 #0 #1 #2 #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 は ネゲート状態になります。 134 第 4 章 バスインタフェース 4.5.6 自動ウェイトサイクル ここでは , 自動ウェイトサイクルの動作について示します。 ■ 自動ウェイトサイクルタイミング 図 4.5-14 に , バス幅 :16 ビット , アクセス : ハーフワードリード / ライトの場合の , 自動 ウェイトサイクルのタイミング例を示します。 図 4.5-14 自動ウェイトサイクルのタイミング例 BA1 BA1 BA2 BA1 BA1 BA2 CLK A23-00 D31-16 RD WR0,WR1 (DACK0) (DEOP0) #0 #2 #2,3 #0:1 wait wait リード ライト 【動作説明】 • 自動ウェイトサイクルは , それぞれのチップセレクト領域の AMD レジスタの WTC2 ∼ WTC0 ビットを設定することにより実現できます。 • 上記の場合は , WTC2 ∼ WTC0 ビットに "001B" を設定して , 通常バスサイクルに 1 ウェイトのバスサイクルを挿入した例を示しており , その場合は「通常バスサイク ル 2 クロック」+「ウェイトサイクル 1 クロック」の「計 3 クロックバスサイクル」 になります。 自動ウェイトは最大 7 クロックサイクルまで ( その場合通常バスサイクルは 9 クロッ クサイクル ) 設定できます。 135 第 4 章 バスインタフェース 4.5.7 外部ウェイトサイクル ここでは , 外部ウェイトサイクルの動作について示します。 ■ 外部ウェイトサイクルタイミング 図 4.5-15 に , バス幅 :16 ビット , アクセス : ハーフワードの場合の , 外部ウェイトサイ クルのタイミング例を示します。 図 4.5-15 外部ウェイトサイクルのタイミング例 BA1 BA1 BA1 BA1 BA1 BA2 CLK A23-00 リード D31-16 RD ライト D31-16 WR0,WR1 #0 #0:1 #0,1 RDY wait wait wait RDY 自動 ウェイト RDYによるウェイト バスサイクル 【動作説明】 • 外部ウェイトサイクルは , EPCR0 の RDYE ビットを "1" に設定し , 外部 RDY 端子の 入力を有効にすることにより実現できます。 • 外部 RDY を使用する場合は , 必ず 1 クロック以上の自動ウェイトサイクル , すなわ ち AMD の WTC2 ∼ WTC0 ビットに "001B" 以上の値を設定してください。 自動ウェイトの最終サイクルから RDY を検出します。 • また外部 RDY は , CLK 端子出力の立下りに同期して入力してください。 CLK の立下り時点で外部 RDY が "L" レベルならばウェイトサイクルとなり , 同じ BA1 サイクルを繰り返します。また "H" レベルのときにはウェイトサイクル終了と 判断し , BA2 サイクルに遷移します。 136 第 4 章 バスインタフェース 4.5.8 外部バスリクエスト ここでは , 外部バスリクエストの動作について示します。 ■ バス権解放 図 4.5-16 に , バス権解放のタイミング例を示します。 図 4.5-16 バス権解放のタイミング例 CLK A23-00 D31-16 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-00 D31-16 RD Hi-Z Hi-Z Hi-Z BRQ BGRNT 1サイクル 【動作説明】 • EPCR0 の BRE ビットを "1" に設定することにより , BRQ, BGRNT によるバスアービ トレーションを行うことができます。 • バス権獲得時は , BGRNT をネゲートしてから 1 クロック後に各端子をアクティブに します。 137 第 4 章 バスインタフェース 4.6 内部クロック逓倍動作 ( クロックダブラ ) MB91150 は , クロック逓倍回路を持っており , CPU 内部はバスインタフェースの 2 倍 , 1 倍のいずれかの周波数で動作します。どちらのクロックを選択した場合でも , バスインタフェースは CLK 出力端子に同期して動作します。 CPU からの外部アクセス要求が発生した場合 , CLK 出力の立上りを待って外部への アクセスを開始します。 ■ クロック選択方法 2 倍 , 1 倍のクロック選択の方法は ,「3.11.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 D+2 外部RD プリフェッチ 外部アクセス(命令フェッチ) ● 1 倍クロック 図 4.6-2 に , バス幅 :16 ビット , アクセス : ワードの場合の , 1 倍クロックのタイミング 例を示します。 図 4.6-2 1 倍クロックのタイミング例 内部クロック 内部命令アドレス N N+2 内部命令データ D D+2 CLK出力 外部アドレスバス 外部データバス N N+4 N+2 D D+2 外部RD 外部アクセス(命令フェッチ) 138 プリフェッチ 第 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 は "001B" 外部ベクタは 16 ビットモード。 • 領域 0 を同じバス幅に設定してから , モードレジスタ (MODR) を設定する。 • 領域 1 ∼ 5 はオーバラップしないように設定する。 <注意事項> 本品種では DRAM 制御の機能はありません。またチップセレクト出力もありません。 139 第 4 章 バスインタフェース ■ 外部バス動作のプログラム例 本プログラムは説明のためにバイトレジスタはバイトで,ハーフワードレジスタはハー フワードで書込みを行っています。 // 各レジスタ設定 init_epcr ldi:20 #0xffff,r0 // 外部端子設定 // 外部 RDY ウェイト , BRQ, BGRNT バ スアービレーション init_dscr init_amd0 init_amd1 init_amd32 init_amd4 init_amd5 init_dmcr4 ldi:20 #0x628,r1 // epcr0 レジスタ アドレス 設定 sth r0,@r1 // epcr0 レジスタ ライト ldi:8 #0xff,r0 // DRAM 端子設定 // RAS, CAS, WE 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 stb #0x621,r1 r0,@r1 // amd1 レジスタ アドレス設定 // 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 ldi:20 r0,@r1 #0x0c90,r0 // amd5 レジスタ ライト // page size=256, Q1/Q4-wait, Page // 1CAS-2WE, CBR, パリティ ナシ init_dmcr5 ldi:20 sth ldi:20 #0x62c,r1 r0,@r1 #0x10c0,r0 // dmcr4 レジスタ アドレス 設定 // dmcr4 レジスタ ライト // page size=512, Q1/Q4-wait ナシ , Page // 2CAS-1WE, CBR, パリティ ナシ init_rfcr init_asr 140 ldi:20 #0x62e,r1 // dmcr5 レジスタ アドレス 設定 sth ldi:20 r0,@r1 #0x0205,r0 // dmcr5 レジスタ ライト // REL=2,R1W/R3W-wait ナシ ,refresh, 1/8 ldi:20 #0x626,r1 // rfcr レジスタ アドレス設定 sth r0,@r1 // rfcr レジスタ ライト ldi:32 #0x0013001,r0 // asr1, amr1 レジスタ設定値 ldi:32 #0x0015001,r1 // asr2, amr2 レジスタ設定値 ldi:32 #0x0017001,r2 // asr3, amr3 レジスタ設定値 ldi:32 #0x0019001,r3 // asr4, amr4 レジスタ設定値 第 4 章 バスインタフェース init_ler init_modr 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 レジスタ ライト // 外部バスアクセス adr_set ldi:32 #0x00136da0,r0 // CS1 アドレス ldi:32 #0x00151300,r1 // CS2 アドレス ldi:32 #0x00196434,r2 // CS4 アドレス ( ページ内 ) bus_acc 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 141 第 4 章 バスインタフェース 142 第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) 143 第 5 章 I/O ポート 5.1 I/O ポートの概要 ここでは , I/O ポートのブロックダイヤグラムとレジスタについての概要を示しま す。 ■ 各ポートのブロックダイヤグラム MB91150 は , 各端子に対応するリソースが入出力として端子を使用しない設定になっ ているとき , I/O ポートとして使用できます。 ポートデータレジスタ (PDR) の読出し値は , ポートが入力に設定されている場合は端 子のレベルが読み出されます。また , 出力に設定されている場合にはデータレジスタの 値が読み出されます。これはリードモディファイライトでのリードでも同じです。 入力設定から出力設定に変更する場合,あらかじめデータレジスタに出力データを設定 しますが , このときにリードモディファイライト系の命令 ( ビットセットなど ) を使用 しますと , リードしたデータは端子からの入力データであり , データレジスタのラッチ の値ではありませんので注意が必要です。 MB91150 の I/O ポートには , 以下の種類があります。 • 基本入出力ポート • プルアップ抵抗付き入出力ポート • オープンドレイン出力機能 , プルアップ抵抗付き入出力ポート • オープンドレイン出力機能付き入出力ポート ■ I/O ポートのレジスタ I/O ポートは , 以下のレジスタで構成されています。 • ポートデータレジスタ (PDR) • データ方向レジスタ (DDR) • プルアップ抵抗制御レジスタ (PCR) • オープンドレイン制御レジスタ (OCR) • アナログ入力制御レジスタ (AICR) 144 第 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 on port-K): ポート K をアナログに使用するか , 汎用 ポートとして使用するかを制御します。 0: 汎用ポート 1: アナログ入力 (A/D) 145 第 5 章 I/O ポート 5.3 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤ グラム ここでは , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。 ■ プルアップ抵抗付き入出力ポートのブロックダイヤグラム 図 5.3-1 に , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。 図 5.3-1 プルアップ抵抗付き入出力ポートのブロックダイヤグラム Data Bus リソース入力 0 プルアップ抵抗 (約50kΩ) 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" を書き込まないようにしてください。 146 第 5 章 I/O ポート 5.4 入出力ポート ( オープンドレイン出力機能 , プルアップ 抵抗付き ) のブロックダイヤグラム ここでは , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック ダイヤグラムを示します。 ■ オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグ ラム 図 5.4-1 に , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック ダイヤグラムを示します。 図 5.4-1 オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグラム Data Bus リソース入力 0 1 PDR read pin 0 PDR リソース出力 1 リソース出力許可 DDR ODCR PCR PDR : Port Data Register DDR : Data Direction Register ODCR: OpenDrain Control Register PCR : Pull-up Control Register この機能を持つポートは , PH0 ∼ PH5, PI0 ∼ PI5 です。 147 第 5 章 I/O ポート <注意事項> • プルアップ抵抗制御レジスタ (PCR): プルアップ抵抗 ON/OFF 制御を行います。 0: プルアップ抵抗なし 1: プルアップ抵抗あり • オープンドレイン制御レジスタ (ODCR): 出力モード時のオープンドレイン制御を行い ます。 0: 出力モード時標準出力ポート 1: 出力モード時オープンドレイン出力ポート 入力モード時は意味を持ちません ( 出力 Hi-Z)。 入出力モードはデータ方向レジスタ (DDR) で決まります。 • ストップモード時でもプルアップ抵抗制御レジスタの設定が優先されます。 • 該当端子を外バス端子として使用する場合は , 両機能とも使用禁止です。両レジスタと もに "1" を書き込まないようにしてください。 148 第 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 の値が読み込まれます。 149 第 5 章 I/O ポート 5.6 ポートデータレジスタ (PDR2 ∼ PDRL) ポートデータレジスタ (PDR2 ∼ PDRL) は , I/O ポートの入出力データレジスタです。 対応するデータ方向レジスタ (DDR2 ∼ DDRL) で , 入出力制御が行われます。 ■ ポートデータレジスタ (PDR) ポートデータレジスタ (PDR) のレジスタ構成を , 以下に示します。 PDR2 アドレス:000001H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 初期値 アクセス P20 XXXXXXXXB R/W PDR3 アドレス:000000H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 初期値 アクセス P30 XXXXXXXXB R/W PDR4 アドレス:000007H 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 初期値 アクセス P40 XXXXXXXXB R/W PDR5 アドレス:000006H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 初期値 アクセス 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 アドレス:00000BH 7 - 6 P86 5 P85 4 P84 3 P83 2 P82 1 P81 0 初期値 アクセス P80 -XXXXXXB R/W PDRC アドレス:000013H 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 初期値 アクセス PC0 XXXXXXXXB R/W PDRD アドレス:000012H 7 PD7 6 PD6 5 PD5 4 PD4 3 PD3 2 PD2 1 PD1 0 初期値 アクセス PD0 XXXXXXXXB R/W 7 PE7 6 PE6 5 PE5 4 PE4 3 PE3 2 PE2 1 PE1 0 初期値 アクセス PE0 XXXXXXXXB R/W 7 - 6 - 5 - 4 PF4 3 PF3 2 PF2 1 PF1 0 初期値 アクセス PF0 ---XXXXXB R/W 7 - 6 - 5 PG5 4 PG4 3 PG3 2 PG2 1 PG1 0 初期値 アクセス PG0 --XXXXXXB R/W アドレス:000016H 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 初期値 アクセス PH0 --XXXXXXB R/W PDRI アドレス:000015H 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 アドレス:000014H 7 - 6 - 5 - 4 - 3 - 2 - 1 PJ1 0 初期値 アクセス PJ0 - - - - - - 1 1 B R/W PDRK アドレス:00001BH 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 初期値 アクセス PK0 XXXXXXXXB R/W PDRL アドレス:00001AH 7 PL7 6 PL6 5 PL5 4 PL4 3 PL3 2 PL2 1 PL1 0 初期値 アクセス PL0 XXXXXXXXB R/W PDRE アドレス:000011H PDRF アドレス:000010H PDRG アドレス:000017H PDRH PDRJ 150 初期値 --XXXXXXB アクセス R/W 第 5 章 I/O ポート 5.7 データ方向レジスタ (DDR2 ∼ DDRL) D データ方向レジスタ (DDR2 ∼ DDRL) は , 対応する I/O ポートの入出力方向を , 以 下のようにビット単位で制御します。 • DDR=0: ポート入力 • DDR=1: ポート出力 ■ データ方向レジスタ (DDR) データ方向レジスタ (DDR) のレジスタ構成を , 以下に示します。 DDR2 アドレス:000601H 7 P27 6 P26 5 P25 4 P24 3 P23 2 P22 1 P21 0 初期値 アクセス P20 00000000B W DDR3 アドレス:000600H 7 P37 6 P36 5 P35 4 P34 3 P33 2 P32 1 P31 0 初期値 アクセス W P30 00000000B DDR4 アドレス:000607H 7 P47 6 P46 5 P45 4 P44 3 P43 2 P42 1 P41 0 初期値 アクセス P40 00000000B W DDR5 アドレス:000606H 7 P57 6 P56 5 P55 4 P54 3 P53 2 P52 1 P51 0 初期値 アクセス P50 00000000B W DDR6 アドレス:000605H 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 初期値 アクセス P60 00000000B W DDR8 アドレス:00060BH 7 - 6 P86 5 P85 4 P84 3 P83 2 P82 1 P81 0 初期値 アクセス P80 -0000000B W DDRC アドレス:0000FFH 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 初期値 アクセス PC0 00000000B R/W DDRD アドレス:0000FEH 7 PD7 6 PD6 5 PD5 4 PD4 3 PD3 2 PD2 1 PD1 0 初期値 アクセス PD0 00000000B R/W DDRE アドレス: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 PF4 3 PF3 2 PF2 1 PF1 0 初期値 アクセス R/W PF0 ---00000B 7 - 6 - 5 PG5 4 PG4 3 PG3 2 PG2 1 PG1 0 初期値 アクセス PG0 --000000B R/W 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 初期値 アクセス PH0 --000000B R/W 7 - 6 TEST 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 アドレス:000107H 7 PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 初期値 アクセス PK0 00000000B R/W DDRL アドレス:000106H 7 PL7 6 PL6 5 PL5 4 PL4 3 PL3 2 PL2 1 PL1 0 初期値 アクセス PL0 00000000B R/W アドレス:0000FCH DDRG アドレス :000103 H DDRH アドレス:000102H DDRI アドレス:000101H DDRK 初期値 アクセス -0000000B R/W 151 第 5 章 I/O ポート <注意事項> DDRI のビット 6 はテストビットです。必ず "0" を書き込んでください。 リード値は "0" です。 152 第 5 章 I/O ポート 5.8 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) は , 対応する I/O ポートの入力モード 時のプルアップ抵抗制御を , 以下のように行います。 • PCR=0: 入力モード時プルアップ抵抗なし • PCR=1: 入力モード時プルアップ抵抗あり 出力モード時は意味を持ちません ( プルアップ抵抗なし )。 ■ プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) のレジスタ構成を , 以下に示します。 7 P67 6 P66 5 P65 4 P64 3 P63 2 P62 1 P61 0 初期値 アクセス P60 00000000B R/W アドレス:0000F7H 7 PC7 6 PC6 5 PC5 4 PC4 3 PC3 2 PC2 1 PC1 0 初期値 アクセス PC0 00000000B R/W PCRD アドレス:0000F6H 7 PD7 6 PD6 5 PD5 4 PD4 3 PD3 2 PD2 1 PD1 0 初期値 アクセス PD0 00000000B R/W 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 初期値 アクセス PH0 --000000B R/W 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 PCR6 アドレス:000631H PCRC PCRH アドレス:0000F4H PCRI アドレス:0000F5H 初期値 アクセス R/W --00 0000B 153 第 5 章 I/O ポート 5.9 オープンドレイン制御レジスタ (OCRH, OCRI) オープンドレイン制御レジスタ (OCRH, OCRI) は , 対応する I/O ポートの出力モード 時のオープンドレイン制御を , 以下のように行います。 • OCR=0: 出力モード時標準出力ポート • OCR=1: 出力モード時オープンドレイン出力ポート 入力モード時は意味を持ちません ( 出力 Hi-Z)。 ■ オープンドレイン制御レジスタ (OCRH, OCRI) オープンドレイン制御レジスタ (OCRH, OCRI) のレジスタ構成を , 以下に示します。 154 OCRH アドレス:0000F8H 7 - 6 - 5 PH5 4 PH4 3 PH3 2 PH2 1 PH1 0 初期値 アクセス PH0 --000000B R/W OCRI アドレス:0000F9H 7 - 6 - 5 PI5 4 PI4 3 PI3 2 PI2 1 PI1 0 PI0 初期値 アクセス --000000B R/W 第 5 章 I/O ポート 5.10 アナログ入力制御レジスタ (AICR) アナログ入力制御レジスタ (AICR) は , 対応する I/O ポートの各端子を以下のように 制御します。 • AICR=0: ポート入力モード • AICR=1: アナログ入力モード リセットで "0" になります。 ■ アナログ入力制御レジスタ (AICR) アナログ入力制御レジスタ (AICR) のレジスタ構成を , 以下に示します。 AICR 7 アドレス:0000EBH PK7 6 PK6 5 PK5 4 PK4 3 PK3 2 PK2 1 PK1 0 初期値 アクセス PK0 00000000B R/W 155 第 5 章 I/O ポート 156 第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 アップダウンカウントレジスタ (UDCR) へのデータの 書込み 157 第 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 種類の機能を選択可能 ( すべてのモードで有効 ) です。 - カウンタクリア機能 - ゲート機能 158 第 6 章 8/16 ビットアップダウン カウンタ / タイマ • コンペア機能およびリロード機能を有し , 以下のように , それぞれの機能のみで , ま た組み合わせても使用可能で , 両機能を組み合わせて使用することで任意幅での アップダウンカウントを行うことが可能です。 - コンペア機能 ( コンペア時割込み要求出力 ) - コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア ) - リロード機能 ( アンダフロー時割込み要求出力およびリロード ) - コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , アンダフロー時割込み要求出力およびリロード ) - コンペア / リロード禁止 • カウント方向フラグにより , 直前のカウント方向を識別可能です。 • コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時およびカウント 方向が変わった場合の割込みの発生を , それぞれ個別に制御可能です。 159 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマのブロック ダイヤグラム 6.2 ここでは , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラムを示し ます。 ■ 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム ● ch.0 図 6.2-1 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.0) を示します。 図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.0) データバス 8ビット CGE1 CGE0 CGSC RCR0(リロード/コンペアレジスタ0) リロード制御 CTUT ZIN0 エッジ/レベル 検出 UCRE RLDE カウンタクリア UDCC 8ビット UDCR0(アップ/ダウンカウントレジスタ 0) Carry CES1 CES0 CMS1 CMS0 UDFF CITE AIN0 BIN0 カウントクロック アップ/ダウン カウントクロック 選択 UDF1 プリスケーラ CSTR UDF0 CDCF CFIE 割込み出力 CLKS 160 UDIE OVFF CMPF 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ● ch.1 図 6.2-2 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.1) を示します。 図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch.1) データバス 8ビット CGE1 CGE0 CGSC RCR1(リロード/コンぺアレジスタ 1) リロード制御 CTUT ZIN1 エッジ/レベル検出 UCRE UDCC RLDE カウンタクリア 8ビット UDCR1(アップ/ダウンカウントレジスタ 1) CMPF UDFF CMS1 CMS0 CES1 CES0 OVFF M16E CITE UDIE Carry AIN1 BIN1 カウントクロック アップ/ダウン カウントクロック 選択 UDF1 ブリスケーラ CSTR UDF0 CDCF CFIE 割込み出力 CLKS 161 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ 一覧 ここでは , 8/16 ビットアップダウンカウンタ / タイマのレジスタの一覧を示します。 ■ 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 図 6.3-1 に , 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧を示します。 図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 24 31 16 15 8 7 0 RCR1 RCR0 UDCR1 UDCR0 CCRH0 CCRL0 - CSR0 CCRH1 CCRL1 - CSR1 アドレス:00005FH アドレス:00005EH アドレス:00005DH アドレス:00005CH アドレス:000063H 000067H アドレス:000061H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D07 D06 D05 D04 D03 D02 D01 D00 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 D14 D13 D12 D11 D10 D09 D08 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D07 D06 D05 D04 D03 D02 D01 D00 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 D14 D13 D12 D11 D10 D09 D08 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 CSTR CITE UDIE CMPF OVFF UDFF UDF1 UDF0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 M16E CDCF CFIE CLKS CMS1 CMS0 CES1 CES0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - CDCF CFIE CLKS CMS1 CMS0 CES1 CES0 000065H アドレス:000060H アドレス:000064H 162 23 アップダウンカウン トレジスタ ch0 (UDCR0) アップダウンカウン トレジスタ ch1 (UDCR1) リロードコンペア レジスタ ch0 (RCR0) リロードコンペア レジスタ ch1 (RCR1) カウンタステータス レジスタ ch0,1 (CSR0,1) カウンタコントロール レジスタ ch0,1 (CCRL0,1) カウンタコントロール レジスタ ch0 (CCRH0) カウンタコントロール レジスタ ch1 (CCRH1) 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.1 カウンタコントロールレジスタ "H"/"L" ch.0 (CCRH0/CCRL0) ここでは , カウンタコントロールレジスタ "H"/"L" ch.0 (Counter Control Register High/Low ch.0) について示します。 ■ カウンタコントロールレジスタ "H"/"L" ch.0 (CCR H/L ch.0) カウンタコントロールレジスタ "H"/"L" ch.0 のレジスタ構成は以下のとおりです。 アドレス : 000060H 000061H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 M16E CDCF CFIE CLKS CMS1 CMS0 CES1 CES0 R/W bit7 R/W bit6 R/W bit5 R/W bit4 R/W bit3 R/W bit2 R/W bit1 R/W bit0 初期値 - CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 -000X000B R/W R/W R/W R/W W R/W 初期値 00000000B R/W [bit 15] M16E:16 ビットモード許可設定ビット 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。 M16E 16 ビットモード許可設定 0 8 ビット× 2 チャネル動作モード ( 初期値 ) 1 16 ビット× 1 チャネル動作モード [bit 14] CDCF: カウント方向転換フラグ カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウント 方向がアップ→ダウンまたはダウン→アップに変わった場合に "1" にセットされます。 • "0" の書込みでクリアされます。 • "1" の書込みは無視され , 本ビットの値は変化しません。 CDCF 方向転換検出 0 方向転換は行われていない ( 初期値 ) 1 方向転換が 1 回以上行われた [bit 13] CFIE: カウント方向転換割込みイネーブルビット CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。カ ウント起動中に一度でもカウント方向が変わった場合に割込みを発生します。 CFIE 方向転換割込み出力 0 方向転換割込み出力禁止 ( 初期値 ) 1 方向転換割込み出力許可 163 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [bit 12] CLKS: 内蔵プリスケーラ選択ビット タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。 タイマモードでのみ有効で , このときはダウンカウントのみとなります。 CLKS 選択内部クロック 0 2 マシンサイクル ( 初期値 ) 1 8 マシンサイクル [bit 11, bit10] CMS1, CMS0: カウントモード選択ビット カウントモードを選択するビットです。 CMS1 CMS0 0 0 タイマモード〔ダウンカウント〕( 初期値 ) 0 1 アップ / ダウンカウントモード 1 0 位相差カウントモード 2 逓倍 1 1 位相差カウントモード 4 逓倍 カウントモード [bit 9, bit8] CES1, CES0: カウントクロックエッジ選択ビット アップ / ダウンカウントモード時において , 外部端子 AIN および BIN の検出エッジを 選択するビットです。 アップ / ダウンカウントモード以外では , この設定は無効です。 CES1 CES0 0 0 エッジ検出禁止 ( 初期値 ) 0 1 立下りエッジ検出 1 0 立上りエッジ検出 1 1 立上り / 立下り両エッジ検出 選択エッジ [bit 6] CTUT: カウンタライトビット RCR から UDCR へのデータ転送を行います。 このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。 "0" の書込みは無効であり , 読出し値は常に "0" です。 カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まない でください。 164 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [bit 5] UCRE:UDCR クリアイネーブルビット コンペアによる UDCR のクリアを制御するビットです。 コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) には影 響しません。 UCRE コンペアによるカウンタのクリア 0 カウンタクリア禁止 ( 初期値 ) 1 カウンタクリア許可 [bit 4] RLDE: リロードイネーブルビット リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダフ ローを発生した場合に RCR の値を UDCR に転送します。 RLDE リロード機能 0 リロード機能禁止 ( 初期値 ) 1 リロード機能許可 [bit 3] UDCC:UDCR クリアビット UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が 0000H にク リアされます。 "1" の書込みは無効であり , 読出し値は不定です。 [bit 2] CGSC: カウンタクリア / ゲート選択ビット 外部端子 ZIN の機能を選択するビットです。 CGSC ZIN の機能 0 カウンタクリア機能 ( 初期値 ) 1 ゲート機能 [bit 1, bit0] CGE1, CGE0: カウンタクリア / ゲートエッジ選択ビット 外部端子 ZIN の検出エッジ / レベルを選択するビットです。 CGE1 CGE0 0 0 エッジ検出禁止 ( 初期値 ) レベル検出禁止 ( カウントディセーブル ) 0 1 立下りエッジ "L" レベル 1 0 立上りエッジ "H" レベル 1 1 設定禁止 設定禁止 カウンタクリア機能選択時 ゲート機能選択時 165 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.2 カウンタコントロールレジスタ "H"/"L" ch.1 (CCRH1/CCRL1) ここでは , カウンタコントロールレジスタ "H"/"L" ch.1 (Counter Control Register High/Low ch.1) について示します。 ■ カウンタコントロールレジスタ "H"/"L" ch.1 (CCR H/L ch.1) カウンタコントロールレジスタ "H"/"L" ch.1 のレジスタ構成は以下のとおりです。 bit15 アドレス : 000064H 000065H bit14 bit13 bit12 bit11 bit10 bit9 bit8 - CDCF CFIE CLKS CMS1 CMS0 CES1 CES0 bit7 R/W bit6 R/W R/W bit4 bit3 R/W bit2 - CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 R/W R/W R/W bit5 R/W R/W W R/W bit1 R/W R/W bit0 初期値 -0000000B 初期値 -000X000B R/W 各 ビ ッ ト の 詳 細 は ,「6.3.1 カ ウ ン タ コ ン ト ロ ー ル レ ジ ス タ "H"/"L" ch.0 (CCRH0/ CCRL0)」を参照してください。 166 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.3 カウンタステータスレジスタ 0/1 (CSR0, CSR1) ここでは , カウンタステータスレジスタ (Counter Status Register 0/1) について示 します。 ■ カウンタステータスレジスタ 0/1 (CSR0, CSR1) カウンタステータスレジスタ 0/1 のレジスタ構成は以下のとおりです。 bit7 アドレス :000063H 000067H bit6 bit5 CSTR CITE R/W R/W bit4 bit3 bit2 bit1 bit0 UDIE CMPF OVFF UDFF UDF1 UDF0 R/W R/W R R R/W R/W 初期値 00000000B [bit 7] CSTR: カウント起動ビット UDCR のカウント動作の起動 / 停止を制御するビットです。 CSTR 動作内容 0 カウント動作停止 ( 初期値 ) 1 カウント動作起動 [bit 6] CITE: コンペア割込み出力制御ビット CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行うかの 許可 / 禁止を制御するビットです。 CITE コンペア割込み出力 0 コンペア割込み出力禁止 ( 初期値 ) 1 コンペア割込み出力許可 [bit 5] UDIE: オーバフロー / アンダフロー割込み出力制御ビット OVFF/UDFF がセットされた ( オーバフロー / アンダフローが発生した ) 場合に , CPU への割込み出力を行うかの許可 / 禁止を制御するビットです。 UDIE オーバフロー / アンダフロー割込み出力 0 オーバフロー / アンダフロー割込み出力の禁止 ( 初期値 ) 1 オーバフロー / アンダフロー割込み出力の許可 167 第 6 章 8/16 ビットアップダウン カウンタ / タイマ [bit 4] CMPF: コンペア検出フラグ UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 CMPF フラグ内容 0 比較結果が一致していない ( 初期値 ) 1 比較結果が一致した [bit 3] OVFF: オーバフロー検出フラグ オーバフローの発生を示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 OVFF フラグ内容 0 オーバフローなし ( 初期値 ) 1 オーバフローあり [bit 2] UDFF: アンダフロー検出フラグ アンダフローの発生を示すフラグです。 "0" の書込みのみ可能で , "1" の書込みはできません。 UDFF フラグ内容 0 アンダフローなし ( 初期値 ) 1 アンダフローあり [bit 1, bit0] UDF1, UDF0: アップダウンフラグ 直前のカウント動作 ( アップ / ダウン ) を示すビットです。 読出しのみ可能で , 書込みはできません。 168 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 (UDCR0, UDCR1) アップダウンカウントレジスタ 0/1 のレジスタ構成は以下のとおりです。 アドレス : 00005EH UDCR1 00005FH UDCR0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 D14 D13 D12 D11 D10 D09 D08 R R R R R R R R bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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 ビット一度に読み出してください。 169 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.3.5 リロード / コンペアレジスタ 0/1 (RCR0, RCR1) ここでは , リロード / コンペアレジスタ 0/1 (Reload/Compare Register 0/1) につい て示します。 ■ リロード / コンペアレジスタ 0/1 (RCR0, RCR1) リロード / コンペアレジスタ 0/1 のレジスタ構成は以下のとおりです。 アドレス : 00005C H RCR1 00005D H RCR0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 D15 W bit7 D14 W bit6 D13 W bit5 D12 W bit4 D11 W bit3 D10 W bit2 D09 W bit1 D08 W bit0 00000000B D07 D06 D05 D04 D03 D02 D01 D00 00000000B W W W W W W W W 初期値 初期値 本レジスタは , 8 ビットリロード / コンペアレジスタです。本レジスタにより , リロー ド値およびコンペア値を設定します。リロード値とコンペア値は同一であり , リロード 機能およびコンペア機能を起動することで 00H ∼本レジスタ値の間(16ビット動作モー ド :0000H ∼本レジスタ値 ) でアップ / ダウンカウントが可能になります。 本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCRH/CCRL レジスタの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送す ることが可能です ( ソフトウェアによるリロード )。 本レジスタは , 16 ビット一度に書き込んでください。 170 第 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 立下り / 立上り両エッジ検出 171 第 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 172 +1 1 +1 2 +1 3 +1 4 +1 5 -1 4 +1 5 -1 4 -1 3 -1 2 -1 1 -1 0 第 6 章 8/16 ビットアップダウン カウンタ / タイマ ● 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" の場合 , ダウンカウント 図 6.4-2 に , 位相差カウントモード (4 逓倍 ) の動作概略を示します。 図 6.4-2 位相差カウントモード (4 逓倍 ) 動作概略 AIN端子 ↓ ↑↓ ↑ ↓ ↑↓ ↑ ↓ ↑ ↑ ↑ ↑ ↓ ↑ ↓↑ ↓ ↑ ↓↑ BIN端子 カウント値 0 +1 +1 +1 +1 +1 +1 +1 +1 +1 1 2 3 4 5 6 7 8 9 +1 10 -1 9 +1 10 -1 -1 9 8 -1 7 -1 -1 -1 6 5 4 -1 -1 -1 3 2 1 エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN 端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出等が可 能です。 なお , このカウントモード選択時は , CCRH の CES1, CES0 による検出エッジの選択は 無効です。 173 第 6 章 8/16 ビットアップダウン カウンタ / タイマ リロード / コンペア機能の動作 6.5 本カウンタには , リロード機能およびコンペア機能があります。この 2 つの機能は 組み合わせて処理を行うことが可能です。 ■ リロード / コンペア機能 表 6.5-1 に , リロード / コンペア機能の組合せの設定例を示します。 表 6.5-1 リロード / コンペア機能選択の 1 例 RLDE, UCRE リロード / コンペア機能 00B リロード / コンペア禁止 ( 初期値 ) 01B コンペア許可 10B リロード許可 11B リロード / コンペア許可 ■ リロード機能起動時 リロード機能起動時は,アンダフローが発生した次のダウンカウントクロックのタイミ ングで RCR の値を UDCR に転送します。このとき , UDFF がセットされると共に割込 み要求を発生します。 ダウンカウントを行わないモードでは , 本機能の起動は無効となります。 図 6.5-1 に , リロード機能の動作概略を示します。 図 6.5-1 リロード機能動作概略 (0FFFFH) 0FFH リロード, 割込み発生 リロード, 割込み発生 RCR 00H アンダフロー 174 アンダフロー 第 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 カウンタクリア カウンタクリア アンダフロー カウンタクリア 175 第 6 章 8/16 ビットアップダウン カウンタ / タイマ コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが できます。 また , これらの割込み出力のイネーブルは個別に制御可能です。 UDCR に対しリロードおよびクリアを行う場合のタイミングについて , カウント起動 中と停止中では異なります。 • カウント動作中にリロードまたはクリアのイベントが発生した場合は , すべてカウ ントクロックに同期して行われます ( 図は 0080H をリロードした場合 )。 065H UDCR 066H 080H 081H このクロックに同期する リロード/ クリアイベント カウントクロック • カウント動作中にリロードおよびクリアのイベントが発生した場合で , カウントク ロック同期待ち ( 同期させるためのカウント入力を待っている状態 ) のままカウン トを停止させた場合は , 停止した時点でリロードおよびクリアが行われます ( 図は 0080H をリロードした場合 )。 UDCR 065H 066H 080H リロード/ クリアイベント カウントクロック カウント イネーブル イネーブル(カウント許可) ディセーブル(カウント禁止) • カウント停止中にリロードおよびクリアのイベントが発生した場合は , イベント発 生時点で行われます ( 図は 0080H をリロードした場合 )。 UDCR 065H 080H リロード/ クリアイベント コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン トが行われた場合にクリアが行われます。UDCR と RCR の値が一致した場合において も , その後ダウンカウントやカウント停止になった場合は , クリアは行われません。 クリア / リロードのタイミングについて , クリアについてはリセット入力以外のすべて のイベントで , またリロードもすべてのイベントにおいて上記タイミングに従います。 クリアイベントとリロードイベントが同時期に発生した場合はクリアイベントが優先 となります。 176 第 6 章 8/16 ビットアップダウン カウンタ / タイマ 6.6 アップダウンカウントレジスタ (UDCR) へのデータの 書込み アップダウンカウントレジスタ (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" レベル 177 第 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 端子は使われません。 178 第7章 16 ビットリロードタイマ この章では , 16 ビットリロードタイマの概要 , ブ ロックダイヤグラム , レジスタの構成 / 機能および 16 ビットリロードタイマの動作について説明しま す。 7.1 16 ビットリロードタイマの概要 7.2 16 ビットリロードタイマのブロックダイヤグラム 7.3 16 ビットリロードタイマのレジスタ一覧 7.4 内部クロック動作 7.5 アンダフロー動作 7.6 カウンタの動作状態 179 第 7 章 16 ビットリロードタイマ 7.1 16 ビットリロードタイマの概要 16 ビットリロードタイマは , 以下により構成されています。 • 16 ビットのダウンカウンタ • 16 ビットのリロードレジスタ • 内部カウントクロック作成用プリスケーラ • コントロールレジスタ ■ 16 ビットリロードタイマの特長 • 入力クロックとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ) から選択 できます。 • 割込みによる DMA 転送の起動が可能です。 • 本品種は , 本タイマを 4 チャネル内蔵しています。 • リロードタイマの ch.2 の TO 出力は , LSI 内部で A/D コンバータに接続されていま す。したがって , リロードレジスタに設定された周期で A/D 変換を起動することが 可能です。 180 第 7 章 16 ビットリロードタイマ 16 ビットリロードタイマのブロックダイヤグラム 7.2 図 7.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。 ■ 16 ビットリロードタイマのブロックダイヤグラム 図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム 16 16ビットリロードレジスタ 8 リロード RELD 16 OUTE 16ビット ダウンカウンタ UF 2 GATE R-bus OUTL OUT . CTL 2 INTE CSL1 UF CSL0 CNTE クロック セレクタ 2 IRQ TRG IN CTL. φ φ φ - - - 21 23 25 リトリガ PWM(ch.0, ch.1) A/D (ch.2) 3 プリスケーラ クリア MOD2 MOD1 φ 内部クロック MOD0 3 181 第 7 章 16 ビットリロードタイマ 16 ビットリロードタイマのレジスタ一覧 7.3 図 7.3-1 に , 16 ビットリロードタイマのレジスタ一覧を示します。 ■ 16 ビットリロードタイマのレジスタ一覧 図 7.3-1 16 ビットリロードタイマのレジスタ一覧 15 - 7 14 - 6 13 - 5 MOD0 OUTE OUTL 15 12 - 11 10 CSL1 CSL0 9 8 MOD2 MOD1 4 3 2 1 RELD INTE UF CNTE コントロールステータス レジスタ (TMCSR0~TMCSR3 ) 0 TRG 0 16ビットタイマレジスタ (TMR0~TMR3 ) 15 0 16ビットリロードレジスタ (TMRLR0~TMRLR3) 182 第 7 章 16 ビットリロードタイマ 7.3.1 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) は , 16 ビットタイマの動 作モードおよび割込みの制御をします。 UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにして ください。 同時書込みは可能です。 ■ コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) のレジスタ構成は以下のとお りです。 11 TMCSR CSL1 アドレス :000032H R/W 00003AH 000042H 00004AH 10 9 8 7 6 5 4 3 2 1 0 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE UF CNTE TRG R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W 初期値 -000H [bit 11, bit 10] CSL1, CSL0 (Conut clock SLect) カウントクロックセレクトビットです。 選択されるクロックソースを , 表 7.3-1 に示します。 表 7.3-1 CSL ビット設定クロックソース CSL1 CSL0 0 0 φ/21 0 1 φ/23 1 0 φ/25 1 1 設定禁止 クロックソース (φ: マシンクロック ) [bit 9, bit 8, bit 7] MOD2, MOD1, MOD0 (MODe) 動作モードを設定するビットです。 必ず "0" を設定してください。 [bit 6] OUTE (OUTput Enable) 出力許可ビットです。"0" のとき , TO 端子は汎用ポートになり , "1" のとき , TO 端子は タイマ出力端子になります。 出力波形は , リロードモード時はトグル出力となり , ワンショットモード時はカウント 中を示す矩形波出力になります。 [bit 5] OUTL TO 端子の出力レベルを設定するビットです。本ビットが "0" のときと "1" のときでは , 端子レベルが逆になります。 183 第 7 章 16 ビットリロードタイマ [bit 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" のトグル出力 出力波形 ( 注意事項 ) 表中の " × " は , 任意の値を示します。 [bit 3] INTE 割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発生し ます。"0" のときは , 割込み要求を発生しません。 [bit 2] UF タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに より "1" にセットされます。"0" の書込みによってクリアされます。 このビットへの "1" の書込みは , 意味がありません。 リードモディファイライト系命令における読出し時には , "1" が読み出されます。 [bit 1] CNTE タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリガ 待ち状態になります。"0" の書込みによりカウント動作は停止します。 [bit 0] TRG ソフトウェアトリガビットです。"1" の書込みによりソフトウェアトリガがかかり , リ ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。 "0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。 このレジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。 CNTE=0 のときには , 何も起こりません。 184 第 7 章 16 ビットリロードタイマ 16 ビットタイマレジスタ (TMR0 ∼ TMR3)/ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) 7.3.2 16 ビットタイマレジスタ (TMR0 ∼ TMR3) は , 16 ビットタイマのカウント値を読み 出すことができるレジスタです。初期値は不定です。 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) は , カウントの初期値を保持し ておくレジスタです。初期値は不定です。 ■ 16 ビットタイマレジスタ (TMR0 ∼ TMR3) 16 ビットタイマレジスタ (TMR0 ∼ TMR3) のレジスタ構成を以下に示します。 15 TMR アドレス :00002EH 000036H 00003EH 000046H R 0 R R R … R R R R R 初期値 X X X X … X X X X X … <注意事項> このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。 ■ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) のレジスタ構成を以下に示します。 15 0 TMRLR … アドレス :00002CH 000034H 00003CH 000044H W W W W … W 初期値 X X X X … W W W W X X X X X <注意事項> このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行ってください。 185 第 7 章 16 ビットリロードタイマ 7.4 内部クロック動作 内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ ンクロックの 2, 8, 32 分周のクロックから選択できます。 ■ 内部クロック動作 カウント許可と同時にカウント動作を開始したい場合は,コントロールステータスレジ スタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビットに よるトリガ入力は , タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に有 効です。 カウンタの起動 , カウンタの動作について , 図 7.4-1 に示します。 カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間がかかります。 図 7.4-1 カウンタの起動および動作 カウントクロック カウンタ リロードデータ -1 -1 -1 データロード CNTE(レジスタ) TRG(レジスタ) T 186 第 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] 187 第 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=1, OUTL=0] 188 起動トリガ待ち状態 第 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=1 CNTE=1 TRG=0 WAIT CNTE=1,WAIT=1 カウンタ: 停止時の値を保持 リセット直後ロードするまで は不定 RUN CNTE=1,WAIT=0 カウンタ: 動作 RELD・UF TRG=1 TRG=1 RELD・UF LOAD CNTE=1,WAIT=0 リロードレジスタの内容をカウンタへロード ロード終了 189 第 7 章 16 ビットリロードタイマ 190 第8章 PPG タイマ この章では , PPG タイマの概要 , ブロックダイヤ グラム , レジスタの構成 / 機能および PPG タイマ の動作について説明します。 8.1 PPG タイマの概要 8.2 PPG タイマのブロックダイヤグラム 8.3 PPG タイマのレジスタ 8.4 PWM 動作 8.5 ワンショット動作 8.6 PWM タイマの割込み要因とタイミングチャート 8.7 ジェネラルコントロールレジスタを使った複数チャネル の起動 191 第 8 章 PPG タイマ 8.1 PPG タイマの概要 PPG タイマは , 精度の高い PWM 波形を効率良く出力できます。 MB91150 は , PPG タイマを 6 チャネル内蔵しています。 各チャネルは , 以下のものから構成されています。 • 16 ビットダウンカウンタ • 周期設定用バッファ付 16 ビットデータレジスタ • デューティ設定用バッファ付 16 ビットコンペアレジスタ • 端子制御部 ■ PPG タイマの特長 • 16 ビットダウンカウンタのカウントクロックは , 以下の 4 種類から選択が可能です。 - 内部クロック : φ - 内部クロック : φ/4 - 内部クロック : φ/16 - 内部クロック : φ/64 • カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化できます。 • チャネルごとに PWM 出力があります。 • レジスタ - 周期設定レジスタ : バッファ付 , リロード用データレジスタです。 - デューティ設定レジスタ : バッファ付 , コンペアレジスタです。 - バッファからの転送は , カウンタボローで行います。 • 端子制御 - デューティ一致で , "1" にセットします ( 優先 )。 - カウンタボローで , "0" にリセットします。 - 出力値固定モードがあり , オール "L"( または "H") を簡単に出力できます。 - 極性指定も可能です。 • 割込み要求は , 以下の組合せから選択して発生できます。また , 割込み要求によっ て , DMA 転送起動が可能です。 - 本タイマ起動 - カウンタボロー発生 ( 周期一致 ) - デューティ一致発生 - カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生 • ソフトウェアまたはほかのインターバルタイマで複数チャネルの同時起動が設定 できます。また , 動作中の再起動も設定可能です。 192 第 8 章 PPG タイマ 8.2 PPG タイマのブロックダイヤグラム 図 8.2-1 に PPG タイマ全体 , 図 8.2-2 に PPG タイマ 1 チャネル分の , ブロックダイ ヤグラムを示します。 ■ PPG タイマ全体のブロックダイヤグラム 図 8.2-1 PPG タイマ全体のブロックダイヤグラム 16ビット リロード タイマ ch.0 TRG 入力 PWMタイマ ch.0 PWM0 TRG 入力 PWMタイマ ch.1 PWM1 TRG 入力 PWMタイマ ch.2 PWM2 TRG 入力 PWMタイマ ch.3 PWM3 外部TRG4 TRG入力 PWMタイマ ch.4 PWM4 外部TRG5 TRG入力 PWMタイマ ch.5 PWM5 ジェネラル 16ビット リロード タイマ ch.1 ジェネラル コントロール レジスタ2 外部TRG0~3 コントロール 4 レジスタ1 (要因選択) 4 193 第 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 反転ビット TRG入力 エッジ検出 ソフトトリガ 194 割 込 み 選 択 イネーブル IRQ 第 8 章 PPG タイマ 8.3 PPG タイマのレジスタ 図 8.3-1 に , PPG タイマのレジスタ一覧を示します。 ■ PPG タイマのレジスタ一覧 図 8.3-1 PPG タイマのレジスタ一覧 アドレス 15 0 00000094 H GCN1 00000097 H GCN2 00000098 H PTMR0 0000009A H PCSR0 0000009C H 0000009E H PDUT0 PCNH0 000000A0 H PTMR1 000000A2 H PCSR1 000000A4 H 000000A6 H PDUT1 PCNH1 000000A8 H PCNL1 PTMR2 000000AA H PCSR2 000000AC H 000000AE H PCNL0 PDUT2 PCNH2 PCNL2 R/W ジェネラルコントロール レジスタ1 R/W ジェネラルコントロール レジスタ2 R ch0 PWMタイマレジスタ W ch0 PWM周期設定レジスタ W ch0 PWMデューティ設定レジスタ R/W ch0 コントロールステータス レジスタ R ch1 PWMタイマレジスタ W ch1 PWM周期設定レジスタ W ch1 PWMデューティ設定レジスタ R/W ch1 コントロールステータス レジスタ R ch2 PWMタイマレジスタ W ch2 PWM周期設定レジスタ W ch2 PWMデューティ設定レジスタ R/W ch2 コントロールステータス レジスタ ( 続く ) 195 第 8 章 PPG タイマ ( 続き ) アドレス 0 000000B0H PTMR3 R ch3 PWMタイマレジスタ 000000B2H PCSR3 W ch3 PWM周期設定レジスタ 000000B4H PDUT3 W ch3 PWMデューティ設定レジスタ R/W ch3 コントロールステータス レジスタ 000000B6H PCNH3 PCNL3 000000B8H PTME4 R ch4 PWMタイマレジスタ 000000BAH PCSR4 W ch4 PWM周期設定レジスタ 000000BCH PDUT4 W ch4 PWMデューティ設定レジスタ R/W ch4 コントロールステータス レジスタ 000000BEH PCNH4 PCNL4 000000C0 H PTMR5 R ch5 PWMタイマレジスタ 000000C2 H PCSR5 W ch5 PWM周期設定レジスタ 000000C4 H PDUT5 W ch5 PWMデューティ設定レジスタ R/W ch5 コントロールステータス レジスタ 000000C6 H 196 15 PCNH5 PCNL5 第 8 章 PPG タイマ 8.3.1 コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) は , PWM タイマの制御およびステータス表示をします。PWM タイマ動作中に書換え不可能な ビットがありますので注意してください。 ■ コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) のレジスタ構 成は以下のとおりです。 PCNH0~PCNH5 アドレス: ch.0 00009E H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 CNTE STGR MDSE RTRG CKS1 CKS0 PGMS - R/W R/W R/W R/W R/W R/W R/W - ←属性 0 0 0 0 0 0 0 - ←初期値 ○ ○ × × × × ○ - ←動作中の書換え bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EGS1 EGS0 IREN IRQF IRS1 IRS0 POEN OSEL R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 0 0 0 0 0 ←初期値 × × ○ ○ × × × × ←動作中の書換え ch.1 0000A6 H ch.2 0000AE H ch.3 0000B6 H ch.4 0000BE H ch.5 0000C6 H PCNL0~PCNL5 アドレス: ch.0 00009F H ch.1 0000A7 H ch.2 0000AF H ch.3 0000B7 H ←属性 ch.4 0000BF H ch.5 0000C7 H [bit 15] CNTE: タイマ許可ビット 16 ビットダウンカウンタの動作を許可するビットです。 0 停止 ( 初期値 ) 1 許可 [bit 14] STGR: ソフトウェアトリガビット このビットに "1" を書き込むことによりソフトウェアトリガがかかります。 STGR ビットの読出し値は , 常に "0" です。 [bit 13] MDSE: モード選択ビット 連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択しま す。 0 PWM 動作 ( 初期値 ) 1 ワンショット動作 197 第 8 章 PPG タイマ [bit 12] RTRG: 再起動許可ビット ソフトウェアトリガまたはトリガ入力による再起動を許可するビットです。 0 再起動禁止 ( 初期値 ) 1 再起動許可 [bit 11, bit 10] CKS1, CKS0: カウンタクロック選択ビット 16 ビットダウンカウンタのカウントクロックを選択します。 CKS1 CKS0 0 0 φ ( 初期値 ) 0 1 φ/4 1 0 φ/16 1 1 φ/64 周期 φ: 周辺系マシンクロック [bit 9] PGMS:PWM 出力マスク選択ビット このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値に 関わらず PWM 出力を "0" または "1" にマスクできます。以下に , PGMS に "1" を書き 込んだときの PWM 出力を示します。 極性 PWM 出力 通常極性 "L" 出力 反転極性 "H" 出力 通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期設定 レジスタとデューティ設定レジスタに同値を書き込めば上記マスク値の反転を出力で きます。 [bit 8] 未使用ビットです。 [bit 7, bit 6] EGS1, EGS0: トリガ入力エッジ選択ビット ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。 どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリガ は有効になります。 198 第 8 章 PPG タイマ EGS1 EGS0 0 0 無効 ( 初期値 ) 0 1 立上りエッジ 1 0 立下りエッジ 1 1 両エッジ エッジ選択 [bit 5] IREN: 割込み要求許可ビット 割込み要求を許可するビットです。 0 禁止 ( 初期値 ) 1 許可 [bit 4] IRQF: 割込み要求フラグ bit5 IREN が許可されていて bit3, bit 2 IRS1, IRS0 にて選択した割込み要因が発生すると , 本ビットがセットされ CPU に割込み要求を発生します。また , DMA 転送の起動を選 択している場合は , DMA 転送が起動されます。 本ビットのクリアは , "0" の書込みと DMAC からのクリア信号で行われます。 "1" を書き込んでもビット値は変化しません。 リードモディファイライト系命令におけるリード値は,ビット値にかかわらず"1"です。 [bit 3, bit 2] IRS1, IRS0: 割込み要因選択ビット bit4 IRQF をセットする要因を選択します。 IRS1 IRS0 0 0 ソフトウェアトリガまたはトリガ入力あり ( 初期値 ) 0 1 カウンタボロー発生 ( 周期一致 ) 1 0 デューティ一致発生 1 1 カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生 割込み要因 [bit 1] POEN: PWM 出力許可ビット "1" に設定することにより , PWM 出力が端子から出力されます。 0 汎用ポート ( 初期値 ) 1 PWM 出力端子 [bit 0] OSEL: PWM 出力極性指定ビット PWM 出力の極性を設定します。 bit9 PGMS との組合せで , 以下のようになります。 199 第 8 章 PPG タイマ 200 PGMS OSEL 0 0 通常極性 ( 初期値 ) 0 1 反転極性 1 0 出力 "L" 固定 1 1 出力 "H" 固定 PWM 出力 極性 リセット後 通常極性 "L" 出力 反転極性 "H" 出力 デューティ一致 カウンタボロー 第 8 章 PPG タイマ 8.3.2 PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) は , 周期を設定するための , バッファ付 レジスタです。バッファからの転送は , カウンタボローで行われます。 ■ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) のレジスタ構成は以下のとおりです。 PCSR0~PCSR5 アドレス: ch.0 00009A H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 ch.1 0000A2 H ch.2 0000AA H bit0 ch.3 0000B2 H ch.4 0000BA H ch.5 0000C2 H 属性 → ライトオンリ 初期値 → 不定 <注意事項> • 周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタの書込み後 , 必ず デューティ設定レジスタへの書込み動作を行ってください。 • 本レジスタは , 16 ビットデータでアクセスしてください。 201 第 8 章 PPG タイマ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) 8.3.3 PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) は , デューティを設定するための , バッファ付レジスタです。バッファからの転送は , カウンタボローで行われます。 ■ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) PWM デューティ設定レジスタ (PDUT0∼ PDUT5) のレジスタ構成は以下のとおりです。 PDUT0~PDUT5 アドレス: ch.0 00009C H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 ch.1 0000A4 H ch.2 0000AC H bit0 ch.3 0000B4 H ch.4 0000BC H ch.5 0000C4 H 属性 → ライトオンリ 初期値 → 不定 周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に オール "H" を , 反転極性時にオール "L" を出力します。 <注意事項> • PCSR < PDUT となるような値を設定しないでください。PWM 出力は不定となります。 • 本レジスタは , 16 ビットデータでアクセスしてください。 202 第 8 章 PPG タイマ 8.3.4 PWM タイマレジスタ (PTMR0 ∼ PTMR5) PWM タイマレジスタ (PTMR0 ∼ PTMR5) は , 16 ビットダウンカウンタの値を読み 出すことができるレジスタです。 ■ PWM タイマレジスタ (PTMR0 ∼ PTMR5) PWM タイマレジスタ (PTMR0 ∼ PTMR5) のレジスタ構成は以下のとおりです。 PTMR0~PTMR5 アドレス: ch.0 000098 H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 ch.1 0000A0 H ch.2 0000A8 H bit0 ch.3 0000B0 H ch.4 0000B8 H ch.5 0000C0 H 属性 → リードオンリ 初期値 → FFFF H <注意事項> 本レジスタは , 16 ビットデータでアクセスしてください。 203 第 8 章 PPG タイマ 8.3.5 ジェネラルコントロールレジスタ 1 (GCN1) ジェネラルコントロールレジスタ 1 (GCN1) は , PWM タイマのトリガ入力の要因を 選択するレジスタです。 ■ ジェネラルコントロールレジスタ 1 (GCN1) ジェネラルコントロールレジスタ 1 (GCN1) のレジスタ構成は以下のとおりです。 bit15 GCN1 アドレス: 000094H bit14 bit13 bit12 bit11 TSEL33~TSEL30 R/W R/W R/W R/W bit10 bit9 TSEL23~TSEL20 R/W 0 0 1 1 0 bit7 bit6 bit5 bit4 bit3 TSEL13~TSEL10 R/W 0 bit2 R/W R/W 1 bit1 0 ←初期値 bit0 R/W R/W R/W R/W R/W R/W R/W R/W 0 0 0 1 0 0 0 0 TSEL33 ∼ TSEL30 ←属性 TSEL03~TSEL00 [bit 15 ∼ bit 12] TSEL33 ∼ TSEL30:ch.3 トリガ入力選択ビット 204 bit8 ch.3 トリガ入力 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 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 X 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 ←属性 ←初期値 第 8 章 PPG タイマ [bit 11 ∼ bit 8] TSEL23 ∼ TSEL20:ch.2 トリガ入力選択ビット TSEL23 ∼ TSEL20 ch.2 トリガ入力 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 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 X 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 [bit 7 ∼ bit 4] TSEL13 ∼ TSEL10:ch.1 トリガ入力選択ビット TSEL13 ∼ TSEL10 ch.1 トリガ入力 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 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 X 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 205 第 8 章 PPG タイマ [bit 3 ∼ bit 0] TSEL03 ∼ TSEL00:ch.0 トリガ入力選択ビット TSEL03 ∼ TSEL00 206 ch.0 トリガ入力 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 ビットリロードタイマ ch.0 0 1 0 1 16 ビットリロードタイマ ch.1 0 1 1 X 設定禁止 1 0 0 0 外部 TRG0 1 0 0 1 外部 TRG1 1 0 1 0 外部 TRG2 1 0 1 1 外部 TRG3 1 1 X X 設定禁止 第 8 章 PPG タイマ ジェネラルコントロールレジスタ 2 (GCN2) 8.3.6 ジェネラルコントロールレジスタ 2 (GCN2) は , ソフトウェアによって , 起動トリガ を発生させるためのレジスタです。 ■ ジェネラルコントロールレジスタ 2 (GCN2) ジェネラルコントロールレジスタ 2 (GCN2) のレジスタ構成は以下のとおりです。 GCN2 アドレス: 000097H bit7 bit6 bit5 bit4 bit3 bit2 bit1 - - - - EN3 EN2 EN1 EN0 R/W 0 R/W 0 R/W 0 R/W 0 R/W 0 R/W R/W 0 0 bit0 R/W 0 ←属性 ←初期値 GCN1 レジスタで本レジスタの EN3 ∼ EN0 ビットを選択した場合 , レジスタの値がそ のまま PWM タイマのトリガ入力に伝わります。 コントロールステータスレジスタの EGS1, EGS0 ビットで選択したエッジをソフト ウェアで発生させることにより , 複数チャネルの PWM タイマを同時に起動することが できます。 <注意事項> 本ビットの bit7 ∼ bit4 には , 必ず 0 を書き込んでください。 207 第 8 章 PPG タイマ 8.4 PWM 動作 PWM 動作では , 起動トリガの検出時より連続してパルスを出力できます。 出力パルスの周期は , PCSR 値を変えることにより制御でき , またデューティ比は , PDUT 値を変えることにより制御できます。 ■ PWM 動作 ● 再起動禁止の場合 図 8.4-1 に , トリガの再起動を禁止した場合の PWM 動作のタイミングチャートを示し ます。 図 8.4-1 PWM 動作のタイミングチャート ( トリガ再起動禁止 ) 立上りエッジ検出 トリガにより再起動します 起 動 トリガ m n o PWM A B A = T (n+1)µs B = T (m+1)µs 208 T : カウントクロック周期 m: PCSR値 n : PDUT値 第 8 章 PPG タイマ ● 再起動許可の場合 図 8.4-2 に , トリガの再起動を許可した場合の PWM 動作のタイミングチャートを示し ます。 図 8.4-2 PWM 動作のタイミングチャート ( トリガ再起動許可 ) 立上りエッジ検出 トリガにより再起動します 起 動 トリガ m n o PWM A B A = T (n+1)µs B = T (m+1)µs T : カウントクロック周期 m: PCSR値 n : PDUT値 <注意事項> PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。 209 第 8 章 PPG タイマ ワンショット動作 8.5 ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。 再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。 ■ ワンショット動作 ● 再起動禁止の場合 図 8.5-1 に , トリガの再起動を禁止した場合のワンショット動作のタイミングチャート を示します。 図 8.5-1 ワンショット動作のタイミングチャート ( トリガ再起動禁止 ) 起 動 トリガ 立上りエッジ検出 トリガは無視されます m n o PWM A B A = T (n+1)µs B = T (m+1)µs 210 T : カウントクロック周期 m: PCSR値 n : PDUT値 第 8 章 PPG タイマ ● 再起動許可の場合 図 8.5-2 に , トリガの再起動を許可した場合のワンショット動作のタイミングチャート を示します。 図 8.5-2 ワンショット動作のタイミングチャート ( トリガ再起動許可 ) m n o PWM A B T: m: PCSR n : PDUT 211 第 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 クロック 有効エッジ 212 デューティ一致 カウンタボロー 第 8 章 PPG タイマ ■ PWM 出力オール "L" またはオール "H" の出力方法例 ● PWM 出力をオール "L" レベルにする例 図 8.6-2 に , PWM 出力をオール "L" にする出力方法例を示します。 図 8.6-2 PWM 出力をオール "L" レベルにする例 PWM デューティ値を 小さくしていく ボローによる割込みでPGMS(マスクビット)に"1" を書き込みます。 また、ボローによる割込みでPGMS(マスクビット) に"0"を書き込めば,ヒゲを出力する事なくPWM波 形を出力できます。 ● PWM 出力をオール "H" レベルにする例 図 8.6-3 に , PWM 出力をオール "H" にする出力方法例を示します。 図 8.6-3 PWM 出力をオール "H" レベルにする例 PWM デューティ値を 大きくしていく コンペア一致による割込みでデューティ設定レ ジスタに,周期設定レジスタ値と同じ値を書き込 みます。 213 第 8 章 PPG タイマ 8.7 ジェネラルコントロールレジスタを使った複数チャネ ルの起動 GCN1 レジスタで起動トリガを選択することにより , 複数チャネルを同時に起動で きます。ここでは , GCN2 レジスタを使ったソフトウェア起動の例を示します。 ■ ジェネラルコントロールレジスタを使った複数チャネルの起動 ● 設定手順 1) PCSR に周期を設定します。 2) PDUT にデューティを設定します。 必ず PCSR → PDUT の順で書込みを行ってください。 3) GCN1 レジスタで , 起動するチャネルのトリガ入力要因を決めます。 ここでは , GCN2 レジスタを使うので , 初期設定のままとします。 (ch.0 → EN0, ch.1 → EN1, ch.2 → EN2, ch.3 → EN3) 4) 起動するチャネルのコントロールステータスレジスタを設定します。 - CNTE:1 → タイマ動作を許可 - STGR:0 → GCN2 で起動するので , ここでは起動しない - MDSE:0 → PWM 動作 - RTRG:0 → 再起動禁止とする - CSK1, CSK0:00 → カウントクロック =φ - PGMS:0 → 出力マスクしない(bit8:0 → 未使用ビット,何を設定しても構いません) - EGS1, EGS0:01 → 立上りエッジ起動 - IREN:1 → 割込み要求許可 - IRQF:0 → 割込み要因をクリア - IRS1, IRS0:01 → カウンタボロー発生で割込み要求発生 - POEN:1 → PWM 出力許可 - OSEL:0 → 通常極性 5) GCN2 にデータを書き込むことで , 起動トリガを発生させます。 上記の設定で ch.0 と ch.1 を同時に起動させる場合 , GCN2 の EN0, EN1 に "1" を書き込 みます。立上りエッジが発生し , PWM0, PWM1 からパルスが出力されます。 ● 16 ビットリロードタイマを使用して起動する場合 上記 3) の GCN1 レジスタで要因として 16 ビットリロードタイマを選択し , 5) で GCN2 の代わりに 16 ビットリロードタイマを起動します。 また , コントロールステータスレジスタの設定を以下のようにします。 • RTRG:1 → 再起動許可とする • EGS1, EGS0:11 → 両エッジ起動 16ビットリロードタイマ出力をトグル出力設定にすることにより,一定時間ごとにPPG タイマを再起動することも可能です。 214 第9章 多機能タイマ この章では , 機能タイマの概要 , ブロックダイヤグ ラム , レジスタの構成 / 機能および機能タイマの動 作について説明します。 9.1 多機能タイマの概要 9.2 多機能タイマのブロックダイヤグラム 9.3 多機能タイマのレジスタ 9.4 多機能タイマユニットの動作 215 第 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 本を使用して出力レベルを反転することが可能です。 • 各出力端子の初期値を設定することが可能です。 • 割込みはコンペア一致により発生可能です。 216 第 9 章 多機能タイマ ● インプットキャプチャ ( × 4) インプットキャプチャは独立した 4 本の外部入力端子と対応したキャプチャレジスタ , コントロールレジスタにより構成されています。外部入力端子から入力された信号の 任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ に保持し , 同時に割込みを発生できます。 • 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択可能。 • 4 本のインプットキャプチャは独立して動作が可能。 • 割込みは外部入力信号の有効エッジにより発生が可能。 ● 16 ビット PPG タイマ ( × 6) 「第 8 章 PPG タイマ」を参照してください。 217 第 9 章 多機能タイマ 多機能タイマのブロックダイヤグラム 9.2 図 9.2-1 に , 多機能タイマユニットのブロックダイヤグラムを記載します。 ■ 多機能タイマのブロックダイヤグラム 図 9.2-1 多機能タイマのブロックダイヤグラム 割込み IVF IVFE STOP MODE SCLR CLK2 分周器 CLK0 CLK1 クロック 16ビットフリーランタイマ 16ビット コンペアクリアレジスタ (ch.6のコンペアレジスタ) 割込み コンペア回路 CST0 R-bus コンペアレジスタ 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 割込み 割込み 218 第 9 章 多機能タイマ 9.3 多機能タイマのレジスタ ここでは , 多機能タイマユニットのレジスタ一覧について説明します。 ■ 多機能タイマのレジスタ 多機能タイマのレジスタ一覧については ,「付録 A I/O マップ」を参照してください。 219 第 9 章 多機能タイマ 9.3.1 16 ビットフリーランタイマのレジスタ 16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。 • データレジスタ (TCDT) • コンペアクリアレジスタ • タイマコントロールステータスレジスタ (TCCS) ■ データレジスタ (TCDT) データレジスタ (TCDT) のレジスタ構成は以下のとおりです。 タイマデータレジスタ上位 アドレス:00008CH タイマデータレジスタ下位 アドレス:00008CH bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 T15 T14 T13 T12 T11 T10 T09 T08 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 T07 T06 T05 T04 T03 T02 T01 T00 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ←属性値 ←初期値 ←属性値 ←初期値 データレジスタ (TCDT) は , 16 ビットフリーランタイマのカウント値を読み出すこと のできるレジスタです。カウンタ値は , リセット時に "0000H" にクリアされます。この レジスタに書き込むことでタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行っ てください。このレジスタは , ワードアクセスしてください。 16 ビットフリーランタイマの初期化は次の要因で行われます。 • リセットによる初期化 • コントロールステータスレジスタのクリア (SCLR) による初期化 • コンペアクリアレジスタ (ch.6 のコンペアレジスタ ) 値とタイマカウンタ値の一致に よる初期化 ( モード設定が必要です ) ■ コンペアクリアレジスタ コンペアクリアレジスタは , 16 ビットフリーランタイマと比較する 16 ビット長のコン ペアレジスタです。アウトプットコンペアの ch.6 のコンペアレジスタが使用されます。 本レジスタ値と 16 ビットフリーランタイマ値が一致した場合 , 16 ビットフリーランタ イマ値を "0000H" に初期化して , コンペアクリア割込みフラグをセットします。また , 割込み動作を許可している場合は , CPU に対して割込み要求を行います。 ■ タイマコントロールステータスレジスタ (TCCS) タイマコントロールステータスレジスタ (TCCS) のレジスタ構成は以下のとおりです。 タイマコントロールステータスレジスタ上位 bit15 アドレス:00008EH bit14 bit13 bit12 bit11 bit10 bit9 bit8 ECLK - - - - - - - R/W (0) - (-) - (-) - (-) - (-) - (-) - (-) - (-) bit6 bit5 bit4 bit3 bit2 bit1 bit0 IVF IVFE STOP MODE SCLR CLK2 CLK1 CLK0 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) タイマコントロールステータスレジスタ下位 bit7 アドレス:00008EH 220 ←属性値 ←初期値 ←属性値 ←初期値 第 9 章 多機能タイマ [bit 15] ECLK 本ビットには , 必ず "0" を書き込んでください。 0 内部クロックソースを選択 ( 初期値 ) 1 設定禁止 [bit 14 ∼ bit 8] 未使用ビットです。 [bit 7] IVF 16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマが オーバフローを起こしたときに本ビットは "1" にセットされます。割込み要求許可ビッ ト (bit6:IVFE) がセットされていると割込みが発生します。本ビットは "0" の書込みに よりクリアされます。"1" の書込みは意味を持ちません。リードモディファイライト系 命令では , 常に "1" が読み出せます。 0 割込み要求なし ( 初期値 ) 1 割込み要求あり [bit 6] IVFE 16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込み フラグ (bit7:IVF) が "1" にセットされると割込みが発生します。 0 割込み禁止 ( 初期値 ) 1 割込み許可 [bit 5] STOP 16 ビットフリーランタイマのカウントを停止するためのビットです。"1" の書込み時 にタイマのカウント停止 , "0" の書込み時にタイマのカウントを開始します。 0 カウント許可 ( 動作 )( 初期値 ) 1 カウント禁止 ( 停止 ) <注意事項> 16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。 [bit 4] MODE 16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットとクリ アビット (bit3:SCLR) でカウンタ値を初期化可能です。"1" の場合は , リセットとクリ アビット (bit3:SCLR) のほかにアウトプットコンペアのコンペアレジスタ 6 の値との一 致によりカウンタ値を初期化できます。 221 第 9 章 多機能タイマ 0 リセット , クリアビットによる初期化 ( 初期値 ) 1 リセット , クリアビット , コンペアレジスタ 6 による初期化 <注意事項> カウンタ値の初期化はカウント値の変化点で行われます。 [bit 3] SCLR 動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。"1" の書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持ちませ ん。リード値は , 常に "0" です。カウンタ値の初期化は , カウント値の変化点で行われ ます。 SCLR フラグの意味 0 意味を持ちません ( 初期値 ) 1 カウンタ値を "0000H" に初期化します <注意事項> タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。 [bit 2, bit 1, bit 0] CLK2, CLK1, CLK0 16 ビットフリーランタイマのカウントクロックを選択するビットです。本ビットに書 込み後すぐにクロックは変更されますのでアウトプットコンペア , インプットキャプ チャが停止状態のときに変更してください。 φ=16MHz φ=8MHz φ=4MHz φ=1MHz CLK2 CLK1 CLK0 0 0 0 φ 62.5 ns 125 ns 0.25 µs 1 µs 0 0 1 φ/2 125 ns 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 φ= マシンクロック 222 カウントクロック 第 9 章 多機能タイマ アウトプットコンペアのレジスタ 9.3.2 アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。 • コンペアレジスタ (OCCP0 ∼ OCCP7) • アウトプットコントロールレジスタ (OCS0 ∼ OCS7) ■ コンペアレジスタ (OCCP0 ∼ OCCP7) コンペアレジスタ (OCCP0 ∼ OCCP7) のレジスタ構成は以下のとおりです。 アドレス:000074H ~000080H bit13 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 コンペアレジスタ下位 アドレス:000074H ~000080H bit14 bit15 コンペアレジスタ上位 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) のレジスタ構成は以下のとおりで す。 アウトプットコントロールレジスタ上位 アドレス:000084H ~000088H bit15 bit13 bit12 bit11 bit10 bit9 bit8 - - - 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 アウトプットコントロールレジスタ下位 アドレス:000084H ~000088H bit14 bit6 bit5 bit4 bit3 bit2 bit1 ←属性値 ←初期値 bit0 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) ←属性値 ←初期値 ここでは , ch.0, ch.1 について説明しますので , ch.2, ch.3, ch.4, ch.5, ch.6, ch.7 はそれぞれ ch.0 → ch.2, ch.4, ch.6, ch.1 → ch.3, ch.5, ch.7 と読み替えてください。 223 第 9 章 多機能タイマ [bit 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 の一致によりレベルを反転します。 [bit 11, bit 10] OTE1, OTE0 アウトプットコンペアの端子出力を許可するビットです。 0 汎用ポート (PE0 ∼ PE7) として動作します ( 初期値 ) 1 アウトプットコンペア端子出力になります OTE1: アウトプットコンペア 1 に対応 OTE0: アウトプットコンペア 0 に対応 [bit 9, bit 8] OTD1, OTD0 アウトプットコンペアレジスタの端子出力を許可した場合の端子出力レベルを変更す る場合に使用します。コンペア端子出力の初期値は "0" となります。書込み時はコン ペア動作を停止してから行ってください。読出し時は , アウトプットコンペア端子出力 値が読み出せます。 0 コンペア端子出力を "0" にします ( 初期値 ) 1 コンペア端子出力を "1" にします OTD1: アウトプットコンペア 1 に対応 OTD0: アウトプットコンペア 0 に対応 [bit 7, bit 6] IOP1, IOP0 アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラン タイマ値が一致した場合に "1" にセットされます。割込み要求ビット (IOE1, IOE0) が 許可されているときに本ビットが "1" セットされるとアウトプットコンペア割込みが 発生します。本ビットは "0" の書込みによりクリアされ "1" の書込みでは意味を持ちま せん。リードモディファイライト系の命令では "1" が読めます。 224 第 9 章 多機能タイマ 0 アウトプットコンペア一致なし ( 初期値 ) 1 アウトプットコンペア一致あり IOP1: アウトプットコンペア 1 に対応 IOP0: アウトプットコンペア 0 に対応 [bit 5, bit 4] IOE1, IOE0 アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割込み フラグ(IOP1, IOP0)が"1"にセットされるとアウトプットコンペア割込みが発生します。 0 アウトプットコンペア割込み禁止 ( 初期値 ) 1 アウトプットコンペア割込み許可 IOE1: アウトプットコンペア 1 に対応 IOE0: アウトプットコンペア 0 に対応 [bit 3, bit 2] 未使用ビットです。 [bit 1, bit 0] CST1, CST0 16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許可 する前に必ずコンペアレジスタ値およびアウトプットデータレジスタ値を設定してく ださい。 0 コンペア動作禁止 ( 初期値 ) 1 コンペア動作許可 CST1: アウトプットコンペア 1 に対応 CST0: アウトプットコンペア 0 に対応 <注意事項> • コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペ ア動作禁止の状態で行い,コンペア一致と書込みが同時に発生しないようにしてくださ い。 • アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビッ トフリーランタイマを停止させるとコンペア動作も停止します。 225 第 9 章 多機能タイマ 9.3.3 インプットキャプチャのレジスタ インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。 • インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) • インプットキャプチャコントロールレジスタ (ICS01, ICS23) ■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) のレジスタ構成は以下のとお りです。 インプットキャプチャデータレジスタ上位 アドレス:000068H,00006AH, 00006CH,00006EH bit15 bit13 bit12 bit11 bit10 bit9 bit8 CP15 CP14 CP13 CP12 CP11 CP10 CP09 CP08 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) インプットキャプチャデータレジスタ下位 アドレス:000068H,00006AH, 00006CH,00006EH bit14 bit7 bit6 bit5 bit4 bit3 bit2 bit1 ←属性値 ←初期値 bit0 CP07 CP06 CP05 CP04 CP03 CP02 CP01 CP00 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) ←属性値 ←初期値 インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) は , 対応した外部端子入力波形 の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。 ( ワードアクセスしてください。書込みはできません。) ■ インプットキャプチャコントロールレジスタ (ICS01, ICS23) インプットキャプチャコントロールレジスタ (ICS01, ICS23) のレジスタ構成は以下の とおりです。 キャプチャコントロールレジスタ (ICS23) アドレス:000071H キャプチャコントロールレジスタ (ICS01) アドレス:000073H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00 R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) ←属性値 ←初期値 ←属性値 ←初期値 [bit 7, bit 6] ICP3, ICP2, ICP1, ICP0 インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると本 ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセットさ れていると有効エッジを検出することにより割込みを発生できます。本ビットは , "0" の書込みによりクリアされます。"1" の書込みは意味を持ちません。リードモディファ イライト系の命令では "1" が読み出せます。 0 有効エッジ検出なし ( 初期値 ) 1 有効エッジ検出あり ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。 226 第 9 章 多機能タイマ [bit 5, bit 4] ICE3, ICE2, ICE1, ICE0 インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ (ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生し ます。 0 割込み禁止 ( 初期値 ) 1 割込み許可 ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。 [bit 3 ∼ bit 0] EG31/30, EG21/20, EG11/10, EG01/00 外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可も 兼用しています。 EG31 EG30 0 0 エッジ検出なし ( 停止状態 )( 初期値 ) 0 1 立上りエッジ検出 ↑ 1 0 立下りエッジ検出 ↓ 1 1 両エッジ検出 ↑ & ↓ エッジ検出極性 EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。 227 第 9 章 多機能タイマ 9.4 多機能タイマユニットの動作 ここでは , 多機能タイマユニットの動作について説明します。 ■ 多機能タイマの動作説明 ● 16 ビットフリーランタイマ 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを 開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプッ トキャプチャの基準時間となります。 ● 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフリー ランタイマ値との値を比較して一致すると割込みフラグをセットするとともに,出力レ ベルを反転できます。 ● 16 ビットインプットキャプチャ 16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生できます。 228 第 9 章 多機能タイマ 9.4.1 16 ビットフリーランタイマ部 16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン プットキャプチャの基準時間となります。 ■ 16 ビットフリーランタイマの動作説明 カウンタ値は , 次の条件でクリアされます。 • オーバフローが発生したとき。 • コンペアクリアレジスタ ( アウトプットコンペア ch.6 のコンペアレジスタ ) 値とコ ンペアマッチしたとき ( モード設定が必要 )。 • 動作中に TCCS レジスタの SCLR ビットに "1" を書き込んだとき。 • タイマ停止中に TCDT レジスタに "0000H" を書き込んだとき。 割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とコンペアマッチ してカウンタがクリアされたとき発生できます。( コンペアマッチ割込みは , モード設定 が必要です。) 図 9.4-1 にオーバフローによるカウンタクリア , 図 9.4-2 にコンペアクリアレジスタ値 とコンペアマッチしたときのカウンタクリアを示します。 図 9.4-1 オーバフローによるカウンタクリア カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 0000H 時間 リセット 割込み 229 第 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 ビットフリーランタイマのカウントタイミング φ 外部クロック入力 カウントクロック カウンタ値 230 N N+1 第 9 章 多機能タイマ 16 ビットアウトプットコンペア 9.4.2 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 BFFFH コンペアレジスタ1 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 BFFFH コンペアレジスタ1 7FFFH アウトプットコンペア0 アウトプットコンペア1 コンペア0割込み コンペア1割込み 231 第 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 コンペアマッチ 端子出力 <注意事項> コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペア 動作禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにしてください。 232 第 9 章 多機能タイマ 16 ビットインプットキャプチャ 9.4.3 16 ビットインプットキャプチャでは , 設定された有効エッジを検出すると , 16 ビッ トフリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生すること ができます。 ■ 16 ビットインプットキャプチャの動作 図 9.4-8 に , 16 ビットインプットキャプチャの取込みタイミング例を示します。 図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例 カウンタ値 FFFFH BFFFH 7FFFH 3FFFH 時間 0000H リセット IN0 IN1 IN例 不定 データレジスタ0 3FFFH 不定 データレジスタ1 BFFFH 不定 データレジスタ例 BFFFH 7FFFH キャプチャ0割込み キャプチャ1割込み キャプチャ例割込み キャプチャ0 = 立上りエッジ キャプチャ1 = 立下りエッジ キャプチャ例 = 両エッジ(例として) 再度有効エッジにより割込み発生 ソフトウェアにより割込みクリア ■ 16 ビットインプットキャプチャの入力タイミング 図 9.4-9 に , 16 ビットインプットキャプチャの入力タイミングを示します。 図 9.4-9 16 ビットインプットキャプチャの入力タイミング φ カウンタ値 N N+1 インプットキャプチャ入力 有効エッジ キャプチャ信号 キャプチャレジスタ値 N+1 割込み 233 第 9 章 多機能タイマ 234 第 10 章 外部割込み制御部 この章では , 外部割込み制御の概要 , レジスタの構 成 / 機能および外部割込み制御の動作について説明 します。 10.1 外部割込み制御部の概要 10.2 外部割込み制御部のレジスタ 10.3 外部割込み制御部の動作 10.4 外部割込み要求レベル 235 第 10 章 外部割込み制御部 10.1 外部割込み制御部の概要 外部割込み制御部は , INT0 ∼ INT15 に入力される外部割込み要求の制御を行うブ ロックです。検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下り エッジ " から選択できます。 ■ 外部割込み制御部のブロックダイヤグラム 図 10.1-1 に , 外部割込み制御部のブロックダイヤグラムを示します。 図 10.1-1 外部割込み制御部のブロックダイヤグラム R-bus 16 割込み 要求 16 割込み許可レジスタ ゲート 要因F/F 16 割込み要因レジスタ 32 236 要求レベル設定レジスタ エッジ検出回路 16 INT0~INT15 第 10 章 外部割込み制御部 10.2 外部割込み制御部のレジスタ 図 10.2-1 に , 外部割込み制御部のレジスタ一覧を示します。 ■ 外部割込み制御部のレジスタ一覧 図 10.2-1 外部割込み制御部のレジスタ一覧 外部割込み許可レジスタ(ENIR0) アドレス:0000C9H 外部割込み許可レジスタ(ENIR1) アドレス:0000CBH 外部割込み要因レジスタ(EIRR0) アドレス:0000C8H 外部割込み要因レジスタ(EIRR1) アドレス:0000CAH 要求レベル設定レジスタ(ELVR0) アドレス:0000CCH 要求レベル設定レジスタ(ELVR1) アドレス:0000CEH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ER7 ER6 ER5 ER4 ER3 ER2 ER1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LB11 LA11 LB10 LA10 LB9 LA9 LB8 LA8 bit14 bit13 bit12 bit11 bit10 bit9 bit8 LB14 LA14 LB13 LA13 LB12 LA12 bit15 LB15 LA15 bit8 ER0 bit8 上記レジスタ (8 チャネル分 ) が 2 セットあり , 合計 16 チャネルあります。 237 第 10 章 外部割込み制御部 10.2.1 割込み許可レジスタ (ENIR0, ENIR1) 割込み許可レジスタ (ENIR0, ENIR1) は , 外部割込み要求出力のマスク制御を行います。 ■ 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register 0, 1) 割込み許可レジスタ (ENIR0, ENIR1) のレジスタ構成は以下のとおりです。 ENIR0 アドレス :0000C9H ENIR1 アドレス :0000CBH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8 初期値 00000000B [R/W] 初期値 00000000B [R/W] このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の 許可を EN0 が制御 ), 割込みコントローラに対して要求が出力されます。"0" を書かれ たビットに対応する端子は割込み要因は保持しますが,割込みコントローラに対しては 要求を発生しません。 238 第 10 章 外部割込み制御部 10.2.2 外部割込み要因レジスタ (EIRR0, EIRR1) 外部割込み要因レジスタ (EIRR0, EIRR1) は , 読出し時には対応する外部割込み要求 があることを示し , 書込み時にはこの要求を示すフリップフロップ内容をクリアする レジスタです。 ■ 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register 0, 1) 外部割込み要因レジスタ (EIRR0, EIRR1) のレジスタ構成は以下のとおりです。 EIRR0 アドレス :0000C8H EIRR1 アドレス :0000CAH bit15 bit14 bit13 bit12 ER7 ER6 ER5 ER4 bit15 bit14 bit13 bit12 ER15 ER14 ER13 ER12 bit11 ER3 bit11 bit10 ER2 bit10 ER11 ER10 bit9 ER1 bit9 ER9 bit8 初期値 ER0 00000000B [R/W] bit8 初期値 ER8 00000000B [R/W] このレジスタの読出し時が "1" のとき , このビットに対応する端子に外部割込み要求が あることを示します。また , このレジスタに "0" を書き込むと , 対応するビットの要求 フリップフロップがクリアされます。"1" の書込みは無効です。 リードモディファイライトのリード時には "1" が読み出されます。 239 第 10 章 外部割込み制御部 10.2.3 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1) 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1) は , 要求検出の選択を行うレ ジスタです。 ■ 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register 0,1) 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1) のレジスタ構成は以下のとおり です。 ELVR0 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 アドレス :0000CCH LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0 00000000B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 00000000B ELVR1 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 初期値 アドレス :0000CEH LB11 LA11 LB10 LA10 LB9 LA9 LB8 LA8 00000000B bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 初期値 LB15 LA15 LA14 LB13 LA13 LB12 LA12 00000000B LB14 [R/W] [R/W] [R/W] [R/W] INT0 ∼ INT15 に 2 ビットずつが割り当てられていて , 以下のような設定になります。 要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな らば該当するビットは再びセットされます。 表 10.2-1 に , 外部割込み要求レベル設定を示します。 表 10.2-1 外部割込み要求レベル設定表 240 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 EIRR ENIR 割込みレベル ICRYY CMP ICRXX CMP ILM 要因 ■ ストップからの復帰 エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。 ■ 外部割込みの動作手順 外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。 1) 外部割込みの入力として使用する端子と兼用する汎用入出力ポートを入力ポート に設定する。 2) 許可レジスタの対象となるビットをディセーブル状態にする。 3) 要求レベル設定レジスタの対象となるビットを設定する。 4) 要因レジスタの対象となるビットをクリアする。 5) 許可レジスタの対象となるビットをイネーブル状態にする。 ただし , 4) と 5) は , 16 ビットデータによる同時書込みが可能です。 本モジュール内のレジスタを設定する場合には,必ず許可レジスタをディセーブル状態 に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に 必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み 許可状態時に誤って割込み要因が起こってしまうことを避けるためです。 241 第 10 章 外部割込み制御部 10.4 外部割込み要求レベル 要求レベルがエッジ要求の場合 , エッジがあったことを検出するためには , パルス幅 は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。 要求入力レベルがレベル設定の場合 , 外部より要求が入力され , その後取り下げられ ても内部に要因保持回路が存在するため , 割込みコントローラへの要求はアクティブ のままです。 割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があ ります。 ■ 外部割込み要求レベル 図 10.4-1 に , レベル設定時の要因保持回路のクリア , 図 10.4-2 に割込み許可時の割込み 要因と割込みコントローラへの割込み要求を示します。 図 10.4-1 レベル設定時の要因保持回路のクリア 割込み入力 レベル検出 要因 F/F (要因保持回路) 許可ゲート 割込み コントローラへ クリアしない限り要因を保持し続ける 図 10.4-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求 "H" レベル 割込み入力 割込みコントローラ への割込み要求 要因 F/Fのクリアによってインアクティブとなる ■ 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における注 意事項 クロック発振停止した STOP 状態時に , INT 端子への最初に入力された外部割込み信号 は非同期で入力され , STOP 状態から復帰することが可能です。ただし , その STOP 解 除から , 発振安定待ち時間経過するまでの期間においては , 他の外部割込み信号の入力 を認識できない期間が存在します ( 図 10.4-3 の b+c 期間 )。STOP 解除後の外部入力信 号を内部クロックに同期させるため , クロックが安定していない期間内は , その割込み 要因を保持できないためです。 そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に 外部割込み信号を入力してください。 エッジ検出の INT0 の後にレベル検出の INT1 が入力された場合の例を示します。 発振安定待ち時間中に入力されたレベル入力は , 検出されません。 242 第 10 章 外部割込み制御部 図 10.4-3 STOP 状態からの外部割込みによる復帰動作のシーケンス INT1 INT0 内部STOP 内部動作(RUN) 命令実行(run) X0 内部Clock 割込みフラグクリア 割込み要因ビットER0 割込み要因ビットER1 (a)STOP (b)振動子の発振時間 (d)RUN (c)振動子発振安定時間 ■ STOP 状態からの復帰動作について 現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。 ● STOP 遷移前の処理 外部割込みの設定 デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必 要があるので , 対応する外部割込み入力端子をポート入力に設定してください。 外部割込みの入力 STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状 態となっています。この割込み入力がアサートされると直ちに内部 STOP 信号を立 ち下げる動作が行われます。同時に外部割込み回路では他のレベル割込み入力の同 期化を行うように切り換わります。 ● 振動子の発振時間 外部割込み検出後 , クロックの発振が開始されます。振動子の発振時間は使用され る振動子により異なります。 ● 発振安定待ち時間 振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待 ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定 待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開 始されると共に , STOP からの復帰要因以外の外部割込み要因を受付け可能になり ます。 243 第 10 章 外部割込み制御部 244 第 11 章 遅延割込みモジュール この章では , 遅延割込みモジュールの概要 , レジス タの構成 / 機能および遅延割込みモジュールの動作 について説明します。 11.1 遅延割込みモジュールの概要 11.2 遅延割込み制御レジスタ (DICR) 11.3 遅延割込みモジュールの動作 245 第 11 章 遅延割込みモジュール 11.1 遅延割込みモジュールの概要 遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで す。 本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことができます。 ■ 遅延割込みモジュールのブロックダイヤグラム 遅延割込み発生部のブロックダイヤグラムについては「12.2 , 割込みコントローラのブ ロックダイヤグラム」を参照してください。 ■ 遅延割込みモジュールのレジスタ一覧 図 11.1-1 に , 遅延割込みモジュールのレジスタ一覧を示します。 図 11.1-1 遅延割込みモジュールのレジスタ一覧 アドレス:000430 H bit7 bit6 bit5 bit4 bit3 bit2 bit1 - - - - - - - bit0 DLYI R/W 246 DICR 第 11 章 遅延割込みモジュール 11.2 遅延割込み制御レジスタ (DICR) 遅延割込み制御レジスタ (DICR) は , 遅延割込みを制御するレジスタです。 ■ 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) 遅延割込み制御レジスタ (DICR) のレジスタ構成は以下のとおりです。 アドレス:000430 H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - - - - DLYI -------0B R/W [bit 0] DLYI 本ビットにより , 該当する割込み要因の発生・解除を制御します。 DLYI 説明 0 遅延割込み要因の解除・要求なし〔初期値〕 1 遅延割込み要因の発生 247 第 11 章 遅延割込みモジュール 11.3 遅延割込みモジュールの動作 遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用すること により , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができ ます。 ■ 割込み番号 遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。 本品種では , 遅延割込みを , 割込み番号 63 (3FH) に割り当てています。 ■ DICR の DLYI ビット このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き 込むことで , 遅延割込み要因を解除します。 本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。 248 第 12 章 割込みコントローラ この章では , 割込みコントローラの概要 , ブロック ダイヤグラム , レジスタの構成 / 機能および割込み コントローラの動作について説明します。 12.1 割込みコントローラの概要 12.2 割込みコントローラのブロックダイヤグラム 12.3 割込み制御のレジスタ 12.4 優先順位判定 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 12.6 ホールドリクエスト取下げ要求 12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 249 第 12 章 割込みコントローラ 12.1 割込みコントローラの概要 割込みコントローラは , 割込み受付 / 調停処理を処理するモジュールです。 ■ 割込みコントローラのハードウェア構成 本モジュールは , 以下のものにより構成されます。 • 割込み制御レジスタ (ICR レジスタ : ICR00 ∼ ICR47) • 割込み優先度判定回路 • 割込みレベル , 割込み番号 ( ベクタ ) 発生部 • ホールドリクエスト取下げ要求発生部 ■ 割込みコントローラの主要機能 本モジュールには , 主に以下のような機能があります。 • 割込み要求の検出 • 優先度判定 ( レベルおよび番号による ) • 判定結果の要因の割込みレベル伝達 (CPU へ ) • 判定結果の要因の割込み番号伝達 (CPU へ ) • 割込み発生によるストップモードからの復帰指示 • バスマスタへのホールドリクエスト取下げ要求発生 250 第 12 章 割込みコントローラ 12.2 割込みコントローラのブロックダイヤグラム 図 12.2-1 に , 割込みコントローラのブロックダイヤグラムを示します。 ■ 割込みコントローラのブロックダイヤグラム 図 12.2-1 割込みコントローラのブロックダイヤグラム *2 INTO IM 優先度判定 OR NMI 5 NMI処理 / 5 / LEVEL4~0 4 LEVEL, LEVEL判定 ICR00 リソース割込み RI00 VECTOR VECTOR 6 / 発生 ホールド リクエスト 取下げ要求 *3 HLDCAN 6 VCT5~0 判定 ICR47 RI47 *1 (DLYIRQ) DLYI R-bus *1:DLYI は , 遅延割込み部を意味します ( 詳細は「第 , 11 章 遅延割込みモジュール」 を 参照してください )。 *2:INT0 は , スリープ , ストップ時のクロック制御部に対するウェイクアップ信号です。 *3:HLDCAN は , CPU 以外のバスマスタに対するバス明け渡し要求信号です。 ( 注意事項 ) 本品種には , NMI 機能はありません。 251 第 12 章 割込みコントローラ 12.3 割込み制御のレジスタ 図 12.3-1 に , 割込み制御のレジスタ一覧を示します。 ■ 割込み制御のレジスタ一覧 図 12.3-1 割込み制御のレジスタ一覧 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス:00000400 H - - - - ICR3 ICR2 ICR1 ICR0 ICR00 アドレス:00000401 H - - - - ICR3 ICR2 ICR1 ICR0 ICR01 アドレス:00000402 H - - - - ICR3 ICR2 ICR1 ICR0 ICR02 アドレス:00000403 H - - - - ICR3 ICR2 ICR1 ICR0 ICR03 アドレス:00000404 H - - - - ICR3 ICR2 ICR1 ICR0 ICR04 アドレス:00000405 H - - - - ICR3 ICR2 ICR1 ICR0 ICR05 アドレス:00000406 H - - - - ICR3 ICR2 ICR1 ICR0 ICR06 アドレス:00000407 H - - - - ICR3 ICR2 ICR1 ICR0 ICR07 アドレス:00000408 H - - - - ICR3 ICR2 ICR1 ICR0 ICR08 アドレス:00000409 H - - - - ICR3 ICR2 ICR1 ICR0 ICR09 アドレス:0000040A H - - - - ICR3 ICR2 ICR1 ICR0 ICR10 アドレス:0000040B H - - - - ICR3 ICR2 ICR1 ICR0 ICR11 アドレス:0000040C H - - - - ICR3 ICR2 ICR1 ICR0 ICR12 アドレス:0000040D H - - - - ICR3 ICR2 ICR1 ICR0 ICR13 アドレス:0000040E H - - - - ICR3 ICR2 ICR1 ICR0 ICR14 アドレス:0000040F H - - - - ICR3 ICR2 ICR1 ICR0 ICR15 アドレス:00000410 H - - - - ICR3 ICR2 ICR1 ICR0 ICR16 アドレス:00000411 H - - - - ICR3 ICR2 ICR1 ICR0 ICR17 アドレス:00000412 H - - - - ICR3 ICR2 ICR1 ICR0 ICR18 アドレス:00000413 H - - - - ICR3 ICR2 ICR1 ICR0 ICR19 アドレス:00000414 H - - - - ICR3 ICR2 ICR1 ICR0 ICR20 アドレス:00000415 H - - - - ICR3 ICR2 ICR1 ICR0 ICR21 アドレス:00000416 H - - - - ICR3 ICR2 ICR1 ICR0 ICR22 アドレス:00000417 H - - - - ICR3 ICR2 ICR1 ICR0 ICR23 アドレス:00000418 H - - - - ICR3 ICR2 ICR1 ICR0 ICR24 アドレス:00000419 H - - - - ICR3 ICR2 ICR1 ICR0 ICR25 アドレス:0000041A H - - - - ICR3 ICR2 ICR1 ICR0 ICR26 アドレス:0000041B H - - - - ICR3 ICR2 ICR1 ICR0 ICR27 アドレス:0000041C H - - - - ICR3 ICR2 ICR1 ICR0 ICR28 アドレス:0000041D H - - - - ICR3 ICR2 ICR1 ICR0 ICR29 アドレス:0000041E H - - - - ICR3 ICR2 ICR1 ICR0 ICR30 アドレス:0000041F H - - - - ICR3 ICR2 ICR1 ICR0 ICR31 R/W R/W R/W R/W ( 続く ) 252 第 12 章 割込みコントローラ ( 続き ) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 アドレス:00000420 H - - - - ICR3 ICR2 ICR1 ICR0 ICR32 アドレス:00000421 H - - - - ICR3 ICR2 ICR1 ICR0 ICR33 アドレス:00000422 H - - - - ICR3 ICR2 ICR1 ICR0 ICR34 アドレス:00000423 H - - - - ICR3 ICR2 ICR1 ICR0 ICR35 アドレス:00000424 H - - - - ICR3 ICR2 ICR1 ICR0 ICR36 アドレス:00000425 H - - - - ICR3 ICR2 ICR1 ICR0 ICR37 アドレス:00000426 H - - - - ICR3 ICR2 ICR1 ICR0 ICR38 アドレス:00000427 H - - - - ICR3 ICR2 ICR1 ICR0 ICR39 アドレス:00000428 H - - - - ICR3 ICR2 ICR1 ICR0 ICR40 アドレス:00000429 H - - - - ICR3 ICR2 ICR1 ICR0 ICR41 アドレス:0000042A H - - - - ICR3 ICR2 ICR1 ICR0 ICR42 アドレス:0000042B H - - - - ICR3 ICR2 ICR1 ICR0 ICR43 アドレス:0000042C H - - - - ICR3 ICR2 ICR1 ICR0 ICR44 アドレス:0000042D H - - - - ICR3 ICR2 ICR1 ICR0 ICR45 アドレス:0000042E H - - - - ICR3 ICR2 ICR1 ICR0 ICR46 アドレス:0000042F H - - - - ICR3 ICR2 ICR1 ICR0 ICR47 R/W R/W R/W R/W LVL3 LVL2 LVL1 LVL0 R/W R/W R/W R/W アドレス:00000431 H - - - - HRCL 253 第 12 章 割込みコントローラ 割込み制御レジスタ (ICR00 ∼ ICR47) 12.3.1 割込み制御レジスタ (ICR00 ∼ ICR47) は , 割込み制御レジスタです。各割込み入力 に対して 1 つずつ設けられており , 対応する割込み要求の割込みレベルを設定しま す。 ■ 割込み制御レジスタ (ICR:Interrupt Control Register) 割込み制御レジスタ (ICR) のレジスタ構成は以下のとおりです。 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - ICR3 ICR2 ICR1 ICR0 R/W R/W R/W R/W ----1111B (初期値) [bit 3 ∼ bit 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" 固定です。 254 割込みレベル システム予約 (強) (弱) 割込み禁止 第 12 章 割込みコントローラ 12.3.2 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) は , ホールドリクエスト 取下げ要求発生のためのレベル設定レジスタです。 ■ ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL:Hold Request Cancel Level register) ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のレジスタ構成は以下の とおりです。 アドレス:000431H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 - - - - LVL3 LVL2 LVL1 LVL0 R/W R/W R/W R/W ----1111B (初期値) [bit 3 ∼ bit 0] LVL3 ∼ LVL0 バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定しま す。 本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した場合 は , バスマスタに対してホールドリクエスト取下げ要求を出します。 255 第 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 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 I2C 35 23 ICR19 370H 000FFF70H DMAC ( 終了 , エラー ) 36 24 ICR20 36CH 000FFF6CH 256 第 12 章 割込みコントローラ 表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 2) 割込み要因 割込み番号 割込みレベル オフセット TBR デフォルト のアドレス 10 進 16 進 リロードタイマ 0 37 25 ICR21 368H 000FFF68H リロードタイマ 1 38 26 ICR22 364H 000FFF64H リロードタイマ 2 39 27 ICR23 360H 000FFF60H リロードタイマ 3 40 28 ICR24 35CH 000FFF5CH システム予約 A/D 41 29 ICR25 358H 000FFF58H 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 ■ 割込み要因の解除 割込みルーチンにおける , 割込み要因解除のための命令と RETI 命令の間には制限があ ります。 詳細は ,「第 3 章 メモリ空間 , CPU および制御部」を参照してください。 257 第 12 章 割込みコントローラ 12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し ます。 ■ スタンバイモード ( ストップ / スリープ ) からの復帰 周辺からの割込み要求が 1 つでも発生すると , クロック制御部に対してストップモード からの復帰要求を発生します。 優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので,優先 度判定部の結果が出るまでの間 CPU は命令を実行することになります。 スリープ状態からの復帰においても , 同様に動作します。 また , スリープ時は , 本モジュール内のレジスタはアクセス可能です。 <注意事項> ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の制 御レジスタにて割込み要求出力を禁止してください。スタンバイからの復帰要求信号は , 全割込み要因の単なる論理和出力のため , ICR レジスタに設定した割込みレベルの内容は 加味されません。 258 第 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 レジスタの値を必要な値に設 定してください。 259 第 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) HACK : ホールドアクノリッジ : 割込み要求 HRCR : ホールドリクエスト取下げ要求 260 (PDRR) DMA HRCR DHRQ :DMA ホールドリクエスト HRQ : ホールドリクエスト IRQ クロック制御部 DHRQ CPU HRQ HACK 第 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 PDRR 0000 0001 0000 (1) PDRR インクリメント (2) 割込み要因クリア (3) PDRR デクリメント (4) RETI 割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した レベルより強いと DMA に対して HRCR をアクティブにします。これによって DMA は ホールドリクエストを下げ , CPU はホールド状態から復帰して割込み処理を行います。 割込みルーチンでは , PDRR をインクリメントし割込み要因をクリアします。これによ り割込みレベルは変化し , HRCR がインアクティブになり DMA は再びホールドリクエ ストを出すようになります。しかし , PDRR が "0" ではないので , このホールドリクエ ストは遮断されています。PDRR をデクリメントすることで , 初めてホールドリクエス トが CPU に伝わり再び DMA 転送が行われるようになります。 261 第 12 章 割込みコントローラ ● 多重割込みルーチンの例 多重割込みの場合を , 図 12.7-3 に示します。 図 12.7-3 ホールドリクエスト取下げ要求シーケンスのタイミング例 (HRCL > a > b) CPU RUN バスホールド 割込みI (1) 割込み処理II (7)(8) (5)(6) バスホールド 割込み処理I (2) (3)(4) DHRQ HRQ HACK IRQ1 IRQ2 a LEVEL b a HRCR PDRR 0000 0001 0002 0001 0000 (1), (5) PDRR インクリメント (2), (6) 割込み要因クリア (3), (7) PDRR デクリメント (4), (8) RETI 上記例では,割込みルーチンを実行中にそれより優先度の高い割込みが発生した場合を 示しています。ここでも , 各割込みルーチンの先頭で PDRR をインクリメントし , ルー チンの出口でデクリメントすることによって,不用意にホールドリクエストが出るのを 防ぐことができます。 <注意事項> • PDRR のインクリメント / デクリメントは , DMA 転送中 (CPU ホールド中 ) に処理さ せたい割込みルーチンの先頭と出口で必ず行うようにしてください。これを行わない と , 割込みルーチンの途中で再び DMA 転送が行われてしまいます。 • 逆に , PDRR のインクリメント / デクリメントを通常の割込みルーチンでは行わないで ください。割込みルーチン実行中に DMA 転送が行えず , パフォーマンスを落とすこと になります。 • HRCL レジスタと ICR レジスタに設定する割込みレベルの関係には , 十分注意してく ださい。 262 第 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 コンバータの使用上の注意 263 第 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 チャネル変換ごとに一時停止し , 次の起動がかかるまで待機 264 スキャン変換動作 第 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, ADCS2 動作クロック プリスケーラ 各ブロックの機能を以下に示します。 ● A/D 制御ステータスレジスタ (ADCS1, ADCS2) ソフトウェアによる起動 , 起動トリガの選択 , 変換モードの選択 , A/D 変換チャネルの 選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中の 表示をします。 ● A/D データレジスタ (ADCR) A/D 変換結果を格納するレジスタであり , A/D 変換の分解能を選択する機能もありま す。 ● クロックセレクタ A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー ドタイマ ch.2 出力または外部端子トリガが選択できます。 265 第 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) に格納し , 割込み要求を発生します。 266 第 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 コンバータの端子 機能 端子名 ch.0 PK0/AN0 ch.1 PK1/AN1 ch.2 PK2/AN2 端子機能 入出力形式 プルアップ スタンバイ 設定 制御 ch.5 CMOS 出力 / ポート K 入出 CMOS ヒス PK3/AN3 力 / アナログ テリシス入 なし PK4/AN4 入力 力またはア PK5/AN5 ナログ入力 ch.6 PK6/AN6 ch.7 PK7/AN7 ch.3 ch.4 端子の使用に必要な I/O ポートの設定 ポート K を入力設定 なし (DDRK:bit0 ∼ bit 7=0) アナログ入力に設定 (AICR:bit0 ∼ bit 7=1) 267 第 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" になります。 268 第 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 0000EB H 0000E6 H 0000E4 H 6 5 4 3 2 1 0 AICR ADCS1 ADCS0 ADCR 269 第 13 章 8/10 ビット A/D コンバータ 13.4.1 A/D 制御ステータスレジスタ 1 (ADCS1) A/D 制御ステータスレジスタ 1 (ADCS1) は , ソフトウェアによる起動 , 起動トリガ の選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換 中の確認をするレジスタです。 ■ A/D 制御ステータスレジスタ 1 (ADCS1) 図 13.4-2 に , A/D 制御ステータスレジスタ 1 (ADCS1) のレジスタ構成と機能概要を示 します。 図 13.4-2 A/D 制御ステータスレジスタ 1 (ADCS1) のレジスタ構成と機能概要 bit13 bit12 bit11 bit10 bit9 bit8 BUSY INT INTE PAUS STS1 STS0 STRT RESV R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) R/W (0) W (0) R/W (0) bit15 0000E6 H bit14 bit7・・・・bit0 (ADCS0) 予約ビット RESV このビットへは必ず "0" を書き込んでください。 STRT A/D変換起動ビット (ソフトウェア起動時のみ有効) 0 A/D変換機能を起動しない 1 A/D変換機能を起動する STS1 STS0 0 0 A/D起動要因選択ビット ソフトウェア起動 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:初期値 270 リード時 ライト時 0 A/D変換停止中 A/D変換強制停止 1 A/D変換動作中 変化なし,他への影響なし 第 13 章 8/10 ビット A/D コンバータ [bit 15] BUSY: 変換中ビット • A/D コンバータの動作表示ビットです。 • リード時 , このビットが "0" であれば A/D 変換停止中であることを示し , "1" であれ ば A/D 変換動作中であることを示します。 • ライト時 , このビットへの "0" の書込みによって A/D 変換動作は強制的に停止され ます。"1" の書込みでは , 変化せずほかへの影響はありません。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないで ください。 [bit 14] INT: 割込み要求フラグビット • A/D 変換によって A/D データレジスタにデータがセットされれば , このビットは "1" にセットされます。 • このビットと割込み要求許可ビット (ADCS:INTE) が "1" のとき , 割込み要求を発生 します。 • 書込み時は , "0" でこのビットがクリアされ , "1" では変化せずほかへの影響はあり ません。 ( 注意事項 ) このビットの "0" 書込みによるクリアは , A/D 停止中に行ってください。 [bit 13] INTE: 割込み要求許可ビット • CPU への割込み出力の許可 / 禁止をするビットです。 • このビットと , 割込み要求フラグビット (ADCS:INT) が "1" のとき , 割込み要求を発 生します。 [bit 12] PAUS: 一時停止フラグビット • A/D 変換動作が一時停止したときに "1" にセットされます。 • この A/D コンバータには , A/D データレジスタが 1 つしかないため , 連続変換モー ドを使用したときに旧変換結果の CPU による読出しが完了していなければ , 新しい 変換結果の書込みにより旧変換データは失われてしまいます。したがって , 連続変 換モードを使用するときは , 基本的には変換終了ごとに変換結果をメモリに転送す るように設定しておく必要があります。ただし多重割込みなどで変換データの転送 が次の変換に間に合わない場合が想定できます。このビットはそのときの対処とし て考えられた機能で , 変換終了後にデータレジスタの内容を転送するまでの間 , こ のビットを "1" にセットし , その間は A/D 変換は停止し , 次の変換データを格納し ないようになっています。 [bit 11, bit 10] STS1, STS0:A/D 起動要因選択ビット • A/D 変換の起動要因の選択を行います。 • 起動要因が兼用になっている場合には , 最初に発生した起動要因で起動します。 ( 注意事項 ) 起動要因は , 書換えと同時に変更されますので , A/D 変換動作中に書き換 える場合には , 目的とする起動要因がない状態で切り替えてください。 [bit 9] STRT:A/D 変換起動ビット • A/D 変換動作をソフトウェア起動するビットです。 • このビットに "1" を書き込むと A/D 変換が起動します。 • 停止変換モード時は , このビットによる再起動はかかりません。 ( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1)を同時にしないでくださ い。 271 第 13 章 8/10 ビット A/D コンバータ [bit 8] RESV: 予約ビット ( 注意事項 ) このビットへは必ず "0" を書き込んでください。 272 第 13 章 8/10 ビット A/D コンバータ 13.4.2 A/D 制御ステータスレジスタ 0 (ADCS0) A/D 制御ステータスレジスタ 0 (ADCS0) は , 変換モードの選択と A/D 変換チャネル の選択をするレジスタです。 ■ A/D 制御ステータスレジスタ 0 (ADCS0) 図 13.4-3 に , A/D 制御ステータスレジスタ 0 (ADCS0) のレジスタ構成と機能概要を示 します。 図 13.4-3 A/D 制御ステータスレジスタ 0 (ADCS0) のレジスタ構成と機能概要 bit15・・・・・bit8 0000E7 H (ADCS1) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 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 停止中 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 R/W:リード/ライト可能 MD0 変換中の 読出し 停止変換モード で一時停止中 の読出し 変換中の チャネル 番号 直前に 変換した チャネル番号 A/D変換モード選択ビット 0 0 単発変換モード1(動作中の再起動可能) 0 1 単発変換モード2(動作中の再起動不可) 1 0 連続変換モード(動作中の再起動不可) 1 1 停止変換モード(動作中の再起動不可) 0,1:初期値 273 第 13 章 8/10 ビット A/D コンバータ [bit 7, bit 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 ビッ トで選択した起動要因の発生によります。 <注意事項> • 単発 , 連続 , 停止の各変換モードの再起動不可はタイマ , 外部トリガ , ソフトすべての 起動に適用されます。 • A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起 動ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能で す。再起動は下記の手順で行ってください。 (1) INT ビットを 0 にクリアする (2) STRT ビットに 1 を , INT ビットに 0 を同時に書き込む [bit 5, bit 4, bit 3] ANS2, ANS1, ANS0:A/D 変換開始チャネル選択ビット • A/D 変換の開始チャネルの設定および変換中チャネル番号の確認を行うビットです。 • A/D 変換を起動すると , これらのビットに書き込まれたチャネルから A/D 変換を開 始します。 • A/D 変換中は , 変換中のチャネル番号が読み出せます。停止変換モードでの一時停 止中は , 直前に変換したチャネルの番号が読み出せます。 274 第 13 章 8/10 ビット A/D コンバータ [bit 2, bit 1, bit 0] ANE2, ANE1, ANE0:A/D 変換終了チャネル選択ビット • A/D 変換の終了チャネルの設定を行うビットです。 • A/D 変換を起動するとこれらのビットに書き込まれたチャネルまで A/D 変換を行い ます。 • ANS2 ∼ ANS0 と同じチャネルを設定するとそのチャネルのみ変換を行います。ま た , 連続変換モードまたは停止変換モードを設定しているときは , これらのビット で設定されたチャネルまでの変換が終わると ANS2 ∼ ANS0 で設定された開始チャ ネルに戻ります。設定チャネルが 開始チャネル>終了チャネルのときは , 開始チャ ネルから AN7 まで変換し , さらに AN0 から終了チャネルまで変換し , 1 度目の変換 動作を終了します。 <注意事項> • A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) に開始チャネルを設定したあとに , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) をリードモディファイライト系命令で設定しないでください。 ANS2 ∼ ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネルが読み出 されるため , ANS2 ∼ ANS0 ビットに開始チャネルを設定したあとに , MD1, MD0 ビッ トおよび ANE2 ∼ ANE0 ビットをリードモディファイライト系命令で設定した場合 , ANE2 ∼ ANE0 ビットの値が書き換わる可能性があります。 275 第 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) のレジスタ構成と機能概要 0000E4 H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 S10 ST1 ST0 CT1 CT0 - D9 D8 W (0) W (0) W (1) W (0) W (1) - (X) R (X) R (X) bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 R (X) R (X) R (X) R (X) R (X) R (X) R (X) R (X) D0~D9 A/Dデータビット 変換データ CT0 0 0 34マシンサイクル(4.3µs @ 8MHz) 0 1 67(4.2µs @ 16MHz)マシンサイクル 1 0 100(4.0µs @ 25MHz)マシンサイクル 1 1 122(3.7µs @ 33MHz)マシンサイクル ST1 ST0 0 0 11(1.4µs @ 8MHz)マシンサイクル 0 1 23(1.4µs @ 16MHz)マシンサイクル 1 0 33(1.3µs @ 25MHz)マシンサイクル 1 1 45(1.4µs @ 33MHz)マシンサイクル S10 R :リードオンリ W :ライトオンリ 0,1:初期値 276 コンペア時間設定ビット CT1 サンプリング時間設定ビット 変換分解能選択ビット 0 10ビット分解能モード(D9~D0) 1 8ビット分解能モード(D7~D0) 第 13 章 8/10 ビット A/D コンバータ [bit 15] S10:A/D 変換分解能選択ビット • A/D 変換の分解能を選択するビットです。 • このビットに "0" を書き込むと 10 ビット分解能が選択され , "1" を書き込むと 8 ビッ ト分解能が選択されます。 ( 注意事項 ) 分解能によって , 使用されるデータビットが異なります。 [bit 14, bit 13] ST1, ST0: サンプリング時間設定ビット • A/D 変換時のサンプリング時間を選択するビットです。 • A/Dが起動されると,このビットに設定された時間,アナログ入力が取り込まれます。 ( 注意事項 ) 16MHz 動作時に "00", 8MHz 用の設定を行うと正常なアナログ電圧を取り 込めない場合があります。 [bit 12, bit 11] CT1, CT0: コンペア時間設定ビット • A/D 変換時のコンペア時間を選択するビットです。 • アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , このビットに設定された 時間後に変換結果のデータが確定し , このレジスタの bit9 ∼ bit0 に格納されます。 ( 注意事項 ) 16MHz 動作時に "00", 8MHz 用の設定を行うと正常なアナログ変換値が得 られない場合があります。 [bit 10] 空きビット [bit 9 ∼ bit 0] D9 ∼ D0 • A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに書き換えられます。 • 通常は , 最終変換値が格納されます。 • 本レジスタの初期値は不定です。 ( 注意事項 ) 変換データ保護機能があります。 A/D 変換中に本ビットにデータを書き込まないようにしてください。 <注意事項> • S10 ビットの書換えは必ず変換動作前の A/D 動作が停止の状態で行ってください。変 換後の書換えをしたときは , ADCR の内容が不定となります。 • ADCR レジスタの読出しは , 10 ビットモードを指定したときには必ずワード転送命令 を使用してください。 277 第 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 制御ステータスレジスタ 1 (ADCS1) の INT ビットが "1" にセットされます。 このとき , 割込み要求が許可 (ADCS1:INTE=1) されていると , 割込みコントローラに割 込み要求を出力します。 278 第 13 章 8/10 ビット A/D コンバータ 13.6 8/10 ビット A/D コンバータの動作 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 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 ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ◇ ADCR S10 ST1 ST0 CT1 CT0 ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ - 変換データを格納 AICR ◆ ◆ ◆ ◇:使用ビット ◆:使用する端子と対応するビットに "1" を設定 0: "0" を設定 ● 参考 単発変換モードでの変換順序の例を以下に示します。 • ANS="000B", ANE="011B" のとき :AN0 → AN1 → AN2 → AN3 →終了 • ANS="110B", ANE="010B" のとき :AN6 → AN7 → AN0 → AN1 → AN2 →終了 • ANS="011B", ANE="011B" のとき :AN3 →終了 <注意事項> A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起 動ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能で す。再起動は下記の手順で行ってください。 (1) INT ビットを 0 にクリアする (2) STRT ビットに 1 を , INT ビットに 0 を書き込む ■ 連続変換モードの動作 連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定 されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが 同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変 換モードで動作させるには , 図 13.6-2 に示す設定が必要です。 279 第 13 章 8/10 ビット A/D コンバータ 図 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 ◇ ◇ ◇ ◇ ◇ ◆ ◆ ◆ ◆ ◆ - 変換データを格納 AICR ◆ ◆ ◆ ◇: ◆: 1: 0: 使用ビット 使用する端子と対応するビットに "1" を設定 "1" を設定 "0" を設定 ● 参考 連続変換モードでの変換順序の例を以下に示します。 • 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 →繰返し ■ 停止変換モードの動作 停止変換モードは , 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 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" を設定 1 : "1" を設定 0 : "0" を設定 ● 参考 停止変換モードでの変換順序の例を以下に示します。 • ANS="000B", ANE="011B" のとき :AN0 →一時停止→ AN1 →一時停止→ AN2 → 一時停止→ AN0 →繰返し • ANS="110B", ANE="001B" のとき :AN6 →一時停止→ AN7 →一時停止→ AN0 → 一時停止→ AN1 →一時停止→ AN6 →繰返し • ANS="011B", ANE="011B" のとき :AN3 →一時停止→ AN3 →一時停止→繰返し 280 第 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) 状態でしか動作しません。 • 一時停止中に再起動をかけると待機データが壊れます。 281 第 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) で切り替えて , 使用するようになってい ます。アナログ入力として使用する端子では , DDRK の対応するビットに "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) の電 圧を超えないようにしてください。 ● A/D 変換の再起動について A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起 動ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能で す。再起動は下記の手順で行ってください。 (1) INT ビットを 0 にクリアする (2) STRT ビットに 1 を , INT ビットに 0 を同時に書き込む 282 第 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 コンバータの動作説明 283 第 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 制御レジスタにてそれぞれ独立に出力制 御を行うことができます。 284 第 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 スタンバイ制御 D/A出力 ch.2 DAE1 スタンバイ制御 D/A出力 ch.1 DAE0 スタンバイ制御 D/A出力 ch.0 ■ 8 ビット D/A コンバータの端子 D/A コンバータの端子は専用端子となっています。 285 第 14 章 8 ビット D/A コンバータ 14.3 8 ビット D/A コンバータのレジスタ 図 14.3-1 に , 8 ビット D/A コンバータのレジスタ一覧を示します。 ■ 8 ビット D/A コンバータのレジスタ一覧 図 14.3-1 8 ビット D/A コンバータのレジスタ一覧 bit7 DADR0 0000E3H bit6 bit5 bit4 bit3 bit2 bit1 DA07 DA06 DA05 DA04 DA03 DA02 DA01 DA00 bit15 bit14 bit13 bit12 bit11 bit10 bit9 DADR1 0000E2H bit0 D/Aデータレジスタ0 bit8 DA17 DA16 DA15 DA14 DA13 DA12 DA11 DA10 D/Aデータレジスタ1 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 DADR2 0000E1H DACR0 0000DFH DA27 DA26 DA25 DA24 DA23 DA22 DA21 DA20 bit7 bit6 bit5 bit4 bit3 bit2 bit1 ― ― ― ― ― ― ― bit15 bit14 bit13 bit12 bit11 bit10 bit9 DACR1 0000DEH ― ― ― ― ― ― ― D/Aデータレジスタ2 bit0 DAE0 D/Aコントロールレジスタ0 bit8 DAE1 D/Aコントロールレジスタ1 bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 DACR2 0000DDH 286 ― ― ― ― ― ― ― DAE2 D/Aコントロールレジスタ2 第 14 章 8 ビット D/A コンバータ 14.3.1 D/A コントロールレジスタ (DACR0, DACR1, DACR2) D/A コントロールレジスタ (DACR0, DACR1, DACR2) は , D/A コンバータ出力の許 可 / 禁止を行うレジスタです。 ■ D/A コントロールレジスタ (DACR0, DACR1, DACR2) D/A コントロールレジスタ (DACR0, DACR1, DACR2) のレジスタ構成は以下のとおり です。 DACR0 0000DFH bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 ― ― ― ― ― ― ― DAE0 初期値 -------0B R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 DACR1 0000DEH ― ― ― ― ― ― ― bit8 DAE1 初期値 -------0B R/W bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 DACR2 0000DDH ― ― ― ― ― ― ― DAE2 初期値 -------0B R/W [bit 0] DAE2, DAE1, DAE0 • DAE2, DAE1, DAE0 は , それぞれ ch.2, ch.1, ch.0 の出力制御を行います。 • "1" の場合 , D/A 出力の許可 , "0" の場合 , D/A 出力を禁止します。 • リセットにより , "0" に初期化されます。また , リード / ライト可能です。 • 出力禁止時 , D/A コンバータ出力端子は "0" レベル出力となります。 287 第 14 章 8 ビット D/A コンバータ 14.3.2 D/A データレジスタ (DADR2, DADR1, DADR0) D/A データレジスタ (DADR2, DADR1, DADR0) は , D/A コンバータの出力電圧設定 を行うレジスタです。 ■ D/A データレジスタ (DADR2, DADR1, DADR0) D/A データレジスタ (DADR2, DADR1, DADR0) のレジスタ構成は以下のとおりです。 bit7 DADR0 0000E3H bit5 bit4 bit3 bit2 bit1 bit0 DA07 DA06 DA05 DA04 DA03 DA02 DA01 DA00 R/W DADR1 0000E2H bit6 R/W R/W bit15 bit14 bit13 bit12 bit11 bit10 bit9 R/W R/W R/W R/W R/W bit8 DA17 DA16 DA15 DA14 DA13 DA12 DA11 DA10 R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB 初期値 XXXXXXXXB R/W bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 DADR2 0000E1H DA27 DA26 DA25 DA24 DA23 DA22 DA21 DA20 R/W R/W R/W R/W R/W R/W R/W 初期値 XXXXXXXXB R/W [bit 23 ∼ bit 16] DA27 ∼ DA20 • D/A コンバータ ch.2 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 [bit 15 ∼ bit 8] DA17 ∼ DA10 • D/A コンバータ ch.1 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 [bit 7 ∼ bit 0] DA07 ∼ DA00 • D/A コンバータ ch.0 の出力電圧設定を行います。 • リセットによって初期化されません。リード / ライト可能です。 288 第 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 289 第 14 章 8 ビット D/A コンバータ 290 第 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 の使用上の注意 291 第 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 は , クロック同期転送時にスタートビット / ストップビットは付加されず , データ だけ転送されます。 292 第 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 ビットのみ検出可能です。 293 第 15 章 UART UART のブロックダイヤグラム 15.2 図 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 *:割込み番号 294 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) 送信データを設定するレジスタです。このレジスタに書き込まれたデータが , シリアル 変換されて出力されます。 295 第 15 章 UART 15.3 UART の端子 UART の端子および端子のブロックダイヤグラムを示します。 ■ UART の端子 UART の端子は , 汎用ポートと兼用になっています。表 15.3-1 に端子の機能 , 入出力形 式および UART 使用時の設定などを示します。 表 15.3-1 UART の端子 端子名 PH0/SIN0 PH1/SOT0 端子機能 ポート H 入出力 / シリアルデータ入力 ポート H 入出力 / シリアルデータ出力 ポート H 入出力 / PH2/SCK0/ シリアルクロック入出 TO0 力 PH3/SIN1 PH4/SOT1 ポート H 入出力 / シリアルデータ入力 ポート H 入出力 / シリアルデータ出力 ポート H 入出力 / PH5/SCK1/ シリアルクロック入出 TO1 力 PI0/SIN2 PI1/SOT2 PI2/SCK2/ TO2 PI3/SIN3 PI4/SOT3 PI5/SCK3/ TO3 296 ポート I 入出力 / シリアルデータ入力 ポート I 入出力 / シリアルデータ出力 ポート I 入出力 / シリアルクロック入出 力 ポート I 入出力 / シリアルデータ入力 ポート I 入出力 / シリアルデータ出力 ポート I 入出力 / シリアルクロック入出 力 入出力形式 プルアップ 選択 スタンバ イ制御 オープンド レイン制御 端子の使用に 必要な設定 入力ポートに設定 (DDRH:bit0=0) CMOS 出力 / CMOS ヒステリシス入力 出力許可に設定 (SMR0:SOE=1) あり あり あり クロック入力時入力 ポートに設定 (DDRH:bit2=0) クロック出力時出力 許可に設定 (SMR0:SCKE=1) 入力ポートに設定 (DDRH:bit3=0) CMOS 出力 / CMOS ヒステリシス入力 出力許可に設定 (SMR1:SOE=1) あり あり あり クロック入力時入力 ポートに設定 (DDRH bit5=0) クロック出力時出力 許可に設定 (SMR1:SCKE=1) 入力ポートに設定 (DDRI:bit0=0) CMOS 出力 / CMOS ヒステリシス入力 出力許可に設定 (SMR2:SOE=1) あり あり あり クロック入力時入力 ポートに設定 (DDRI:bit2=0) クロック出力時出力 許可に設定 (SMR2:SCKE=1) 入力ポートに設定 (DDRI:bit3=0) CMOS 出力 / CMOS ヒステリシス入力 出力許可に設定 (SMR3:SOE=1) あり あり あり クロック入力時入力 ポートに設定 (DDRI:bit5=0) クロック出力時出力 許可に設定 (SMR3:SCKE=1) 第 15 章 UART ■ UART の端子のブロックダイヤグラム 図 15.3-1 に , UART の端子のブロックダイヤグラムを示します。 図 15.3-1 UART の端子のブロックダイヤグラム Data Bus リソース入力 0 1 PDR read 0 pin PDR リソース出力 1 リソース出力許可 DDR ODCR PCR PDR :ポートデータレジスタ DDR :ポート方向レジスタ ODCR : オープンドレイン制御レジスタ PCR :プルアップ制御レジスタ 297 第 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 298 bit15 .......................... bit8 bit7 .......................... bit0 SCR(制御レジスタ) SMR(モードレジスタ) SIDR/SODR SSR(ステータスレジスタ) (インプット/アウトプットデータレジスタ) CDCR (通信プリスケーラコントロールレジスタ) 空き 第 15 章 UART 制御レジスタ (SCR0 ∼ SCR3) 15.4.1 制御レジスタ (SCR0 ∼ SCR3) は , パリティの設定 , ストップビット長やデータ長の 選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア , 送受信 動作の許可 / 禁止を設定するレジスタです。 ■ 制御レジスタ (SCR0 ∼ SCR3) 図 15.4-2 に , 制御レジスタ (SCR0 ∼ SCR3) のレジスタ構成と機能概要を示します。 図 15.4-2 制御レジスタ (SCR0 ∼ 3) のレジスタ構成と機能概要 アドレス bit15 ch0:0000_001EH ch1:0000_0022H ch2:0000_0026H ch3:0000_002AH bit14 bit13 bit12 bit11 bit10 bit9 bit8 PEN P SBL CL A/D REC RXE TXE R/W R/W R/W R/W R/W W R/W R/W bit7 ......... bit0 (SMR) 初期値 00000100B R/W: リード/ライト可能 W : ライトオンリ TXE 送信動作許可ビット データ長選択ビット 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:下線付は初期値 [bit 15] PEN: パリティイネーブルビット シリアルデータに対して , パリティビットの付加 ( 送信時 ) および検出 ( 受信時 ) をす るどうかを選択します。 ( 注意事項 ) 動作モード 1, 2 を選択した場合は , パリティは使用できません。このビッ トは常に "0" を設定してください。 299 第 15 章 UART [bit 14] P: パリティ選択ビット パリティあり (PEN=1) のとき , 奇数パリティ / 偶数パリティを選択します。 [bit 13] SBL: ストップビット長選択ビット 非同期転送モード時の送信データのフレームエンドマークである , ストップビットの ビット長を選択します。 ( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出します。 [bit 12] CL: データ長選択ビット 送受信データのデータ長を指定します。 ( 注意事項 ) 7 ビットを選択できるのは , 動作モード 0 ( 非同期 ) だけです。動作モード 1 ( マルチプロセッサモード ), 動作モード 2 ( 同期 ) では , 必ず 8 ビット (CL=1) を選択してください。 [bit 11] A/D: アドレス / データ選択ビット • マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を指定し ます。 • このビットが "0" のとき通常データとなり , "1" のときアドレスデータとなります。 [bit 10] REC: 受信エラーフラグクリアビット • ステータスレジスタ (SSR) の FRE, ORE, PE フラグをクリアするビットです。 • このビットに "0" を書き込むと , FRE, ORE, PE フラグがクリアされ , "1" の書込みで は , 変化せず他への影響はありません。 ( 注意事項 ) UART 動作中の受信割込み許可状態では , FRE, ORE, PE フラグのいずれか が "1" であるときのみ , REC ビットをクリアしてください。 [bit 9] RXE: 受信動作許可ビット • UART の受信動作を制御します。 • このビットが "0" のとき , 受信動作は禁止となり , "1" のとき受信動作が許可となり ます。 ( 注意事項 ) 受信中に受信動作を禁止したときには , そのフレームの受信を完了し , 受 信データバッファ (SIDR0 ∼ SIDR3) に受信データを格納した時点で受信 動作を停止します。 [bit 8] TXE: 送信動作許可ビット • UART の送信動作を制御します。 • このビットが "0" のとき , 送信動作は禁止となり , "1" のとき送信動作が許可となり ます。 ( 注意事項 ) 送信中に送信動作を禁止したときには , 送信データバッファ (SODR0 ∼ SODR3) にデータが無くなった後で送信動作を停止します。"0" の書込み は, SODR0∼SODR3にデータを書き込んだ後は,一定の期間を置いて行っ てください。 一定の期間は , クロック非同期転送モード時は , ボーレートの 1/16 時間で す。 クロック同期転送モード時は , ボーレートの時間です。 300 第 15 章 UART 15.4.2 モードレジスタ (SMR0 ∼ SMR3) モードレジスタ (SMR0 ∼ SMR3) は , 動作モードの選択 , ボーレートクロックの選択 , シリアルデータとクロックの端子への出力許可 / 禁止を設定するレジスタです。 ■ モードレジスタ (SMR0 ∼ SMR3) 図 15.4-3 に , モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要を示します。 図 15.4-3 モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要 アドレス bit15 ....... ch0:0000_001FH (SCR) ch1:0000_0023H ch2:0000_0027H ch3:0000_002BH R/W: リード/ライト可能 SOE bit8 bit7 bit6 bit5 bit4 bit3 MD1 MD0 CS2 CS1 CS0 R/W R/W R/W R/W R/W bit2 bit1 bit0 - SCKE SOE - R/W R/W 初期値 00000-00B シリアルデータ出力許可ビット 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:下線付は初期値 301 第 15 章 UART [bit 7, bit 6] MD1, MD0: 動作モード選択ビット これらのビットにより動作モードを選択します。 ( 注意事項 ) 動作モード 1 ( マルチプロセッサモード ) は , マスタスレーブ型通信のマ スタとしてのみ使用できます。UART は , 受信時にアドレス / データ判別 機能がないためスレーブとしては使用できません。 [bit5, bit 4, bit 3] CS2 ∼ CS0: クロック選択ビット • ボーレートのクロックソースを選択します。専用ボーレートジェネレータを選択し た場合には , 同時にボーレートも決定されます。 • 専用ボーレートジェネレータ選択時は非同期転送モード時 5 種類 , 同期転送モード 時 3 種類の計 8 種類のボーレートが選択できます。 • クロック入力は , 専用ボーレートジェネレータ , 16 ビットリロードタイマ , 外部ク ロック (SCK0 ∼ SCK3 端子 ) より選択できます。 [bit 2] 空きビットです。 [bit 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) のときは , 汎用入出力ポート の状態にかかわらずシリアルクロック出力端子として機能します。 [bit 0] SOE: シリアルデータ出力許可ビット • シリアルデータの出力を許可 / 禁止するビットです。 • このビットが "0" のとき , SOT0 ∼ SOT3 端子は , 汎用入出力ポートとなり "1" のと きシリアルデータ出力端子 (SOT0 ∼ SOT3) となります。 参考: シリアルデータ出力 (SOE=1) のときは , 汎用入出力ポートの状態にかかわらず SOT0 ∼ SOT3 端子として機能します。 302 第 15 章 UART ステータスレジスタ (SSR0 ∼ SSR3) 15.4.3 ステータスレジスタ (SSR0 ∼ SSR3) は , 送受信やエラーの状態の確認 , 割込みの許 可 / 禁止を設定するレジスタです。 ■ ステータスレジスタ (SSR0 ∼ SSR3) 図 15.4-4 に,ステータスレジスタ(SSR0∼SSR3)のレジスタ構成と機能概要を示します。 図 15.4-4 ステータスレジスタ (SSR0 ∼ SSR3) のレジスタ構成と機能概要 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 PE ORE FRE RDRF TDRE BDS RIE TIE R R R R R R/W R/W R/W ch0:0000_001CH ch1:0000_0020H ch2:0000_0024H ch3:0000_0028H bit7 ......... bit0 (SIDR/SODR) 初期値 00001000B R/W: リード/ライト可能 R : リードオンリ TIE 送信割込み要求許可ビット RDRF 受信データフルフラグビット 0 送信割込み要求出力を禁止 0 受信データなし 1 送信割込み要求出力を許可 1 受信データあり RIE 受信割込み要求許可ビット FRE フレーミングエラーフラグビット 0 受信割込み要求出力を禁止 0 フレーミングエラーなし 1 受信割込み要求出力を許可 1 フレーミングエラーあり BDS 転送方向選択ビット ORE 0 LSBファースト(最下位ビットから転送) 0 オーバランエラーなし 1 MSBファースト(最下位ビットから転送) 1 オーバランエラーあり 送信データエンプティフラグビット PE TDRE オーバランエラーフラグビット パリティエラーフラグビット 0 送信データあり(送信データの書込み禁止) 0 パリティエラーなし 1 送信データなし(送信データの書込み許可) 1 パリティエラーあり 0,1:下線付は初期値 [bit 15] PE: パリティエラーフラグビット • 受信時に , パリティエラーが発生すると "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むとクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには , インプットデータレジスタ (SIDR0 ∼ SIDR3) のデータは無効です。 303 第 15 章 UART [bit 14] ORE: オーバランエラーフラグビット • 受信時にオーバランが発生すると , "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには , インプットデータレジスタ (SIDR0 ∼ SIDR3) のデータは無効です。 [bit 13] FRE: フレーミングエラーフラグビット • 受信時にフレーミングエラーが発生すると "1" にセットされ , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 • このフラグがセットされたときには , インプットデータレジスタ (SIDR0 ∼ SIDR3) のデータは無効です。 [bit 12] RDRF: 受信データフルフラグビット • インプットデータレジスタ (SIDR0 ∼ SIDR3) の状態を示すフラグです。 • SIDR0 ∼ SIDR3 に受信データがロードされると , このビットは "1" にセットされ , SIDR0 ∼ SIDR3 を読み出すと "0" にクリアされます。 • このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。 [bit 11] TDRE: 送信データエンプティフラグビット • アウトプットデータレジスタ (SODR0 ∼ SODR3) の状態を示すフラグです。 • SODR0 ∼ SODR3 に送信データを書き込むと , このビットは "0" にクリアされ , デー タが送信用シフトレジスタにロードされ送信が開始されると"1"にセットされます。 • このビットと TIE ビットが "1" のとき , 送信割込み要求を出力します。 ( 注意事項 ) 初期状態でこのビットは "1"(SODR0 ∼ SODR3 空 ) にセットされています。 [bit 10] BDS: 転送方向選択ビット シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0), 最上 位ビット側から先に転送するか (MSB ファースト , BDS=1) を選択するビットです。 ( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側 を入れ替えるため SIDR0 ∼ SIDR3 レジスタへデータを書き込んだ後 , この ビットを書き換えると , そのデータは無効になります。 [bit 9] RIE: 受信割込み要求許可ビット • CPU への受信割込み要求出力の許可 / 禁止をするビットです。 • このビットと受信データフラグビット (RDRF) が "1" のとき , もしくは , このビット といずれか 1 つの以上のエラーフラグビット (PE, ORE, FRE) が "1" のとき , 受信割 込み要求を出力します。 [bit 8] TIE: 送信割込み要求許可ビット • CPU への送信割込み要求出力の許可 / 禁止をするビットです。 • このビットと TDRE ビットが "1" のとき , 送信割込み要求を出力します。 304 第 15 章 UART 15.4.4 インプットデータレジスタ (SIDR0 ∼ SIDR3), アウトプットデータレジスタ (SODR0 ∼ SODR3) インプットデータレジスタ (SIDR0 ∼ SIDR3) は , シリアルデータ受信用レジスタで , アウトプットデータレジスタ (SODR0 ∼ SODR3) は , シリアルデータ送信用レジス タです。SIDR0 ∼ SIDR3 レジスタと SODR0 ∼ SODR3 レジスタは同一アドレスに 配置されています。 ■ インプットデータレジスタ (SIDR0 ∼ SIDR3) インプットデータレジスタ (SIDR0 ∼ SIDR3) のレジスタ構成は以下のとおりです。 アドレス bit15 ....... ch0:0000_001DH ch1:0000_0021H ch2:0000_0025H ch3:0000_0029H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 R R R R R R R R 初期値 XXXXXXXX B R : リードオンリ X : 不定 受信したデータが格納されるレジスタです。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 のデータは無効となります。 305 第 15 章 UART ■ アウトプットデータレジスタ (SODR0 ∼ SODR3) アウトプットデータレジスタ (SODR0 ∼ SODR3) のレジスタ構成は以下のとおりです。 アドレス bit15 ....... ch0:0000_001DH ch1:0000_0021H ch2:0000_0025H ch3:0000_0029H bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 W W W W W W W W 初期値 XXXXXXXX B W : ライトオンリ X : 不定 送信許可状態のとき , 送信するデータをこのレジスタに書き込むと , 送信データが送信 用シフトレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子 (SOT0 ∼ SOT3 端子 ) から送出されます。データ長が 7 ビットのとき , 上位 1 ビット (D7) は無効データとなります。 送信データがこのレジスタに書き込まれると , 送信データエンプティフラグ (SSR0 ∼ SSR3:TDRE) が "0" にクリアされ , 送信用シフトレジスタへの転送が終了すれば , "1" に セットされます。TDRE ビットが "1" のとき , 次の送信用データを書き込むことができ ます。このとき送信割込み要求出力が許可されていれば送信割込みが発生します。次 の送信データの書込みは , 送信割込みの発生によるかまたは TDRE ビットが "1" のとき にしてください。 <注意事項> SODR0 ∼ SODR3 は書込み専用のレジスタで , SIDR0 ∼ SIDR3 は読込み専用のレジスタ です。しかし同一アドレスに配置されているため書込み値と読出し値は異なります。その ため , リードモディファイライト (RMW) 動作をする命令は使用できません。 306 第 15 章 UART 15.4.5 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) は , マシンクロックの 分周を制御するレジスタです。 ■ 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) UART の動作クロックは , マシンクロックを分周することによりえられます。この通信 プリスケーラによって,マシンサイクルに対して一定のボーレートが得られように設計 されています。通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR1) のレジス タ構成は以下のとおりです。 アドレス bit15 ch0:0000_004EH ch1:0000_004CH ch2:0000_0052H ch3:0000_0050H bit14 bit13 bit12 bit11 bit10 bit9 bit8 MD - - - DIV3 DIV2 DIV1 DIV0 R/W - - - R/W R/W R/W R/W 初期値 0---0000 B R/W:リード/ライト可能 [bit 15] MD (Machine clock devide mode select) 通信プリスケーラの動作許可ビットです。 0: 通信プリスケーラは停止します。 1: 通信プリスケーラは動作します。 [bit 11, bit 10, bit 9, bit 8] DIV3 ∼ DIV0 (DIVide 3 ∼ DIVide 0) 表 15.4-1 に示す値に従い , マシンクロックの分周比を決定します。 表 15.4-1 通信プリスケーラ MD DIV3 DIV2 DIV1 DIV0 div 0 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 − 0 0 0 0 0 0 0 0 1 1 1 1 1 1 1 1 − 0 0 0 0 1 1 1 1 0 0 0 0 1 1 1 1 − 0 0 1 1 0 0 1 1 0 0 1 1 0 0 1 1 − 0 1 0 1 0 1 0 1 0 1 0 1 0 1 0 1 停止 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 307 第 15 章 UART <注意事項> • 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通信を 行ってください。 • 同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。 - CS2 ∼ CS0=000B - CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B 308 第 15 章 UART UART の割込み 15.5 UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生させ ることができます。 • 受信データがインプットデータレジスタ (SIDR0 ∼ SIDR3) にセットされたとき , または受信エラーが発生したとき。 • 送信データがアウトプットデータレジスタ (SODR0 ∼ SODR3) から送信用シフト レジスタに転送されたとき。 ■ UART の割込み UART の割込み制御ビットと割込み要因を , 表 15.5-1 に示します。 表 15.5-1 UART の割込み制御ビットと割込み要因 送受信 割込み要求 フラグ ビット 割込み要因 0 1 2 ○ ○ ○ 受信データをバッファ (SIDR0 ∼ SIDR3) へロード ORE ○ ○ ○ オーバランエラー発生 FRE ○ ○ × フレーミングエラー発生 ○ × × ○ ○ ○ RDRF 受信 PE 送信 動作モード TDRE 割込み 要因許可 ビット 受信データの読出し SSR0 ∼ SSR3:RIE 受信エラーフラグ クリアビット (SCR0 ∼ SCR3: REC) への "0" の書 込み SSR0 ∼ SSR3:TIE 送信データの書込み パリティエラー発生 送信バッファ (SODR0 ∼ SODR3) が空 割込み要求フラグの クリア ○ : 使用ビット × : 未使用ビット ● 受信割込み 受信モード時は , データ受信完了 (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" にクリアされます。 309 第 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 310 第 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" にセットされると , その直後に受信割込み要求が発生します。 311 第 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出力 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 ST :スタートビット D0~D7 :データビット SP :ストップビット A/D :アドレス/データ選択ビット ● 送信割込み要求発生のタイミング 送信割込みが許可 (SSR0 ∼ SSR3:TIE=1) されるときに , TDRE フラグが "1" にセットさ れるとその直後に送信割込み要求が発生します。 <注意事項> 初期状態で TDRE ビットが "1" のため , 送信割込みを許可 (TIE=1) すると直ちに送信完了 割込みが発生します。TDRE ビットはリードオンリビットで , アウトプットデータレジス タ (SODR0 ∼ SODR3) に新規データを書き込むしかクリアする方法がありませんので , 送信割込み許可のタイミングに注意してください。 312 第 15 章 UART 15.8 ボーレート UART の送受信クロックは , 次のいずれかを選択できます。 • 専用ボーレートジェネレータ • 内部クロック (16 ビットリロードタイマ ) • 外部クロック (SCK 端子入力のクロック ) ■ UART ボーレート選択 ボーレートの設定方法は次の 3 種類の中から 1 種類を選択できます。 ● 専用ボーレートジェネレータによるボーレートの選択 UART は専用ボーレートジェネレータを内蔵しており , モードレジスタ (SMR0 ∼ SMR3) で , 8 種類のボーレートから 1 種類を選択できます。マシンクロックの周波数とモード レジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットによって , 非同期もしくは , クロック 同期ボーレートを選択します。 ● 内部タイマによるボーレート 16 ビットリロードタイマ 0 ∼ 3 から供給される内部クロックを , そのまま ( 同期のと き ) もしくは 16 分周 ( 非同期 ) して , ボーレートとして使用します。リロード値の設定 で自由にボーレートを設定できます。 ● 外部クロックによるボーレート UART のクロック入力端子から入力されたクロックを , そのまま ( 同期のとき ) もしく は 16 分周 ( 非同期のとき ) して , ボーレートとして使用します。外部で自由にボーレー トを設定できます。 313 第 15 章 UART ■ UART ボーレート選択回路 図 15.8-1 に , UART ボーレートの選択回路を示します。 図 15.8-1 UART ボーレート選択回路 SMR0~SMR3:CS2/1/0 (クロック選択ビット) クロックセレクタ "000B"~"101B"のとき [専用ボーレートジェネレータ] 分周回路 (同期) 1/2,1/4,1/8分周の いずれか選択 (非同期) 内部固定分周比を選択 プリスケーラ [内部タイマ] TMCSR0~TMCSR3:CSL1,CSL0 2 "110B"のとき クロックセレクタ ダウン カウンタ UF 1/1(同期) 1/16(非同期) 16ビットリロードタイマ0~3 [外部クロック ] "111B"のとき SCK0~SCK3 1/1(同期) 1/16(非同期) 端子 SMR0~SMR3:MD1 (クロック同期/非同期の選択) 314 ボーレート 第 15 章 UART 15.8.1 専用ボーレートジェネレータによるボーレート UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを選択 したときの設定可能なボーレートを示します。 ■ 専用ボーレートジェネレータによるボーレート 専用ボーレートジェネレータで , 転送クロックを生成するときは , マシンクロックが , マシンクロックプリスケーラで分周されたあと,クロックセレクタで選択される転送ク ロック分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転 送クロック分周比は , 非同期と同期で , 別々に内部設定された値を選択するようになっ ています。 したがって実際の転送レートは , 次式で与えられます。 • 非同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 非同期転送クロック分周比 ) • 同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 同期転送クロック分周比 ) φ: マシンクロック周波数 ● プリスケーラによる分周比 ( 非同期 / 同期共通 ) マシンクロックの分周比は , 表 15.8-1 に示すように通信プリスケーラコントロールレ ジスタの 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 315 第 15 章 UART ● 同期転送クロック分周比 同期ボーレートの分周比は , 表 15.8-2 に示すようにモードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットで指定します。 表 15.8-2 同期ボーレート分周比の選択 CS2 CS1 CS0 CLK 同期時 (Hz) 算出式 0 0 0 禁止 禁止 0 0 1 − (φ ÷ div)/2 0 1 0 − (φ ÷ div)/4 0 1 1 4M (φ ÷ div)/8 1 0 0 2M (φ ÷ div)/16 1 0 1 1M (φ ÷ 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 非同期 ( 調歩同期 ) (Hz) 算出式 0 0 0 76.8K (φ ÷ div)/(8 × 13 × 2) 0 0 1 38.4K (φ ÷ div)/(8 × 13 × 4) 0 1 0 19.2K (φ ÷ div)/(8 × 13 × 8) 0 1 1 9.6K (φ ÷ div)/(8 × 13 × 16) 1 0 0 500K (φ ÷ div)/(8 × 2 × 2) 1 0 1 250K (φ ÷ div)/(8 × 2 × 4) ただし ,φ はマシンサイクル ,φ = 31.9488MHz, div = 2 で算出しています。 316 第 15 章 UART ● 内部タイマ CS2 ∼ CS0 を 110 に設定して内部タイマを選択した場合のボーレートの算出式 ( リロー ドタイマを使用した場合の例 ) は次式のようになります。 • 非同期 ( 調歩同期 ) (φ ÷ N)/(16 × 2 × (n + 1)) • CLK 同期 (φ ÷ N)/(2 × (n + 1)) N: タイマのカウントクロックソース n: タイマのリロード値 ● 外部クロック CS2 ∼ CS0 を 111 に設定して外部クロックを選択した場合のボーレートは , 外部クロッ クの周波数を f とすると次のようになります。 • 非同期 ( 調歩同期 ) f/16 • CLK 同期 f' ただし, fの最大はマシンクロックの1/2まで, f'の最大はマシンクロックの1/8までです。 317 第 15 章 UART 15.8.2 内部タイマ (16 ビットリロードタイマ 0) によるボー レート UART の転送クロックとして , 16 ビットリロードタイマ 0 から供給される内部ク ロックを選択するときの設定とボーレートの計算式を示します。 ■ 内部タイマ (16 ビットリロードタイマ 0) によるボーレート モードレジスタ (SMR0 ∼ 3) の CS2 ∼ 0 ビットに "110B" を書き込むと , 内部タイマに よるボーレートが選択されます。ボーレートは , 16 ビットリロードタイマ 0 のプリス ケーラ分周比とリロード値の選択で , 自由に設定できます。図 15.8-2 に , 内部タイマに よるボーレート選択回路を示します。 図 15.8-2 内部タイマ (16 ビットリロードタイマ 0) によるボーレート選択回路 SMR0~SMR3:CS2/1/0="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) 318 第 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 のプリスケーラによる分周比 - : 設定禁止 319 第 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/1/0="111B" (外部クロック選択) クロックセレクタ SCK0~SCK3 1/1(同期) 1/16(非同期) 端子 ボーレート SMR0~SMR3:MD1 (クロック同期/非同期の選択) ● ボーレート計算式 • 非同期ボーレート = f/16 • 同期ボーレート =f f: 外部クロック周波数 (f は最大 , [ 周辺系動作クロック ]/8 までです。31.9488MHz で最大 3.9936MHz) 320 第 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 ノーマルモード 同期方式 ストップビット長 非同期 1 ビットまたは 2 ビット *2 パリティあり 7 ビットまたは 8 ビット 8+1*1 ― 非同期 8 ― 同期 なし ― : 設定不可 *1 :"+1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。 *2 : 受信時のストップビットは 1 ビットのみ検出可 <注意事項> UART の動作モード 1 は , マスタスレーブ型接続時のマスタ時だけに使用されます。 ● CPU 間接続方式 1 対 1 接続 ( ノーマルモード ) とマスタスレーブ型接続 ( マルチプロセッサモード ) の どちらかを選択できます。どちらの方式でも , データ長 , パリティ有無 , 同期方式など は , すべての CPU で統一しておく必要があり , 動作モードを次のように選択します。 • 1 対 1 接続では , 2 つの CPU で動作モード 0, 2 のいずれかの同じ方式を採用する必 要があります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を選択 してください。 • マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を選択し , マスタとして使用してください。なお , この接続ではパリティなしを選択してくだ さい。 ● 同期方式 動作モードで , 非同期方式 ( 調歩同期 ) もしくはクロック同期方式のどちらかを選択で きます。 321 第 15 章 UART ● 信号方式 UART は , NRZ (Non Return to Zero) 形式のデータだけを扱えます。 ● 動作許可 UART は , 送信 , 受信のそれぞれに対して , TXE ( 送信 ), RXE ( 受信 ) の動作許可ビット があり , 送受信動作を制御できます。動作中に , 動作禁止したときは , 次のようになり ます。 • 受信中 ( 受信用シフトレジスタにデータが入力されているとき ) に受信動作を禁止 したときには , そのフレームの受信を完了し , インプットデータレジスタ (SIDR0 ∼ SIDR3) に受信データを格納したところで受信動作を停止します。 • 送信中 ( 送信用シフトレジスタからデータが出力されているとき ) に送信動作を禁 止したときは , アウトプットデータレジスタ (SODR0 ∼ SODR3) にデータがなくなっ た後に送信動作を停止します。 322 第 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" にクリアされます。 323 第 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 スタート ビット ST 非通信期間 ストップ ビット データ D0 D1 D2 D3 D4 D5 D6 D7 SP D7 SP (01010101B送信) RXE 受信クロック サンプリングクロック ●受信クロック(8パルス) マイコン側の認識 (01010101B受信) ST ●受信クロックを16分周してサンプリングクロックを生成 D0 D1 D2 D3 D4 D5 D6 以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ (SIN) が正しく認識されませんので注意してください。 • 通信線が "L" の期間に , 受信許可 (RXE=H) に設定した場合の動作例 図 15.9-3 異常動作 通信期間 非通信期間 マークレベル SIN (01010101B送信) RXE スタート ビット 非通信期間 ストップ ビット データ ST D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 SP SP 受信クロック サンプリングクロック マイコン側の認識 (10101010B受信) ST認識 PE,ORE,FRE ●受信エラー発生 324 第 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 0 0 0 0 1 1 0 0 0 1 1 データ 0 0 SP 偶数パリティの送信 (SCR0~SCR3:P=0) SP 奇数パリティの送信 (SCR0~SCR3:P=1) 1 ST 1 ST:スタートビット SP:ストップビット 1 ST 1 SOT0~SOT3 0 偶数パリティにて受信時 パリティエラー発生 (SCR0~SCR3:P=0) 0 パリティ ( 注意事項 ) 動作モード 1, 2 では , パリティは使用できません。 325 第 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") にする必要があります。 ● エラー検出 オーバランエラーだけ検出可能で , パリティエラー, フレーミングエラーは検出できま せん。 326 第 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) をチェックし , 通信が正常に行われたかどうかを判断してください。 327 第 15 章 UART 双方向通信機能 ( ノーマルモード ) 15.9.3 動作モード 0, 2 では , 1 対 1 接続の通常のシリアル双方向通信できます。同期方式 は , 動作モード 0 のときは非同期 , 動作モード 2 のときは同期となります。 ■ 双方向通信機能 UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 15.9-6 の設定が 必要です。 図 15.9-6 UART の動作モード 0 の設定 SCR1,SMR1 bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 - bit1 bit0 PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 モード0 ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ ◎ モード2 0 × × 1 × 0 ◎ ◎ 1 0 ◎ ◎ ◎ ◎ ◎ - RIE TIE SSR1, SIDR1/SODR1 PE ORE FRE RDRF TDRE モード0 ◎ ◎ ◎ ◎ ◎ ◎ ◎ モード2 × ◎ × ◎ ◎ ◎ ◎ 送信データを設定(ライト時)/ 受信データを保持(リード時) ◎:使用ビット ×:未使用ビット 1 :"1" を設定 0 :"0" を設定 ● CPU 間接続 図 15.9-7 に示すように , 2 つの CPU を相互に接続します。 図 15.9-7 UART の双方向通信の接続例 SOT1 SOT1 SIN1 SIN1 出力 SCK1 CPU-1 328 SCKE SOE 入力 SCK1 CPU-2 第 15 章 UART ● 通信手順 通信は , 任意なタイミングで , 送信データが準備できたときに送信側から開始します。 受信側で送信データを受けとると定期的に , ANS ( 本例では 1 バイトごと ) を返します。 図 15.9-8 に , 双方向通信フローの一例を示します。 図 15.9-8 双方向通信フローの例 (送信側) (受信側) スタート スタート 動作モード設定 (送信側に合わせる) 動作モード設定 ("0", "2"いずれか) データ送信 SODRに1バイトデータを セットして通信 受信データあり NO YES 受信データあり 受信データ読出しと処理 NO YES 受信データ読出しと処理 データ送信 (ANS) 1バイトデータ送信 329 第 15 章 UART マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) 15.9.4 UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー ド 1 を使用します。ただし , UART は , マスタとしてだけ使用可能です。 ■ マスタ / スレーブ型通信機能 UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 15.9-9 の 設定が必要です。 図 15.9-9 UART の動作モード 1 の設定 SCR1, SMR1 SSR1, SIDR1/SODR1 ◎: ×: 1: 0: bit15 bit14 bit13 bit12 bit11 PEN P SBL CL AD 0 × ◎ 1 ◎ PE ORE × ◎ FRE RDRF TDRE ◎ ◎ bit10 bit9 bit8 bit7 bit6 REC RXE TXE MD1 MD0 CS2 0 ◎ ◎ 0 - RIE TIE ◎ ◎ ◎ bit5 ◎ 1 bit4 bit3 CS1 CS0 ◎ ◎ bit2 - bit1 bit0 SCKE SOE 0 ◎ 送信データを設定(ライト時)/ 受信データを保持(リード時) 使用ビット 未使用ビット "1" を設定 "0" を設定 ● CPU 間接続 図 15.9-10 に示すように , 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレー ブ CPU を接続して , 通信システムを構成します。UART は , マスタ CPU としてだけ使 用可能です。 図 15.9-10 UART のマスタスレーブ型通信の接続例 SOT1 SIN1 マスタ CPU SOT SIN スレーブ CPU #0 330 SOT SIN スレーブ CPU #1 第 15 章 UART ● 機能選択 マスタ / スレーブ型通信では , 表 15.9-2 に示すように , 動作モードとデータ転送方式を 選択してください。 表 15.9-2 マスタ / スレーブ型通信機能の選択 動作モード マスタ CPU アドレス 送受信 データ 送受信 モード 1 データ スレーブ CPU ― パリティ 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 331 第 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" にしてください。 332 第 16 章 I2C インタフェース この章では , I2C インタフェースの概要 , ブロック ダイヤグラム , レジスタの構成 / 機能および I2C イ ンタフェースの動作を示します。 16.1 I2C インタフェースの概要 16.2 I2C インタフェースのブロックダイヤグラム 16.3 I2C インタフェースのレジスタ 16.4 I2C インタフェースの動作 333 第 16 章 I2C インタフェース 16.1 I2C インタフェースの概要 I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ ス上のマスタ / スレーブデバイスとして動作します。 ■ I2C インタフェースの特長 MB91150 は , I2C インタフェースを 1 チャネル内蔵しています。 以下に I2C インタフェースの特長を示します。 • マスタ / スレーブ送受信 • アービトレーション機能 • クロック同期化機能 • スレーブアドレス / ジェネラルコールアドレス検出機能 • 転送方向検出機能 • スタートコンディションの繰り返し発生および検出機能 • バスエラー検出機能 334 第 16 章 I2C インタフェース I2C インタフェースのブロックダイヤグラム 16.2 図 16.2-1 に , I2C インタフェースのブロックダイヤグラムを示します。 ■ I2C インタフェースのブロックダイヤグラム 図 16.2-1 I2C インタフェースのブロックダイヤグラム ICCR I2Cイネーブル EN 周辺クロック クロック分周1 5 6 7 8 ICCR クロック選択 1 CS4 CS3 R-bus クロック分周2 CS2 CS1 CS0 2 4 8 16 32 64 128 256 クロック選択 2 IBSR BB RSC Sync シフトクロック発生 シフトクロック エッジ変化タイミング バスビジィ リピートスタート Last Bit LRB スタート・ストップ コンディション検出 エラー 送/受 TRX First Byte FBT アービトレーションロスト検出 AL IBCR SCL BER SDA BEIE 割込み要求 IRQ INTE INT IBCR SCC 終了 スタート マスタ MSS ACK ACK許可 スタート・ストップ コンディション検出 GC-ACK許可 GCAA IDAR IBSR AAS スレーブ グローバルコール スレーブアドレス比較 GCA IADR 335 第 16 章 I2C インタフェース 16.3 I2C インタフェースのレジスタ 図 16.3-1 に , I2C インタフェースのレジスタ一覧を示します。 ■ I2C インタフェースのレジスタ一覧 図 16.3-1 I2C インタフェースのレジスタ一覧 アドレス 00000120H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 BER BEIE SCC MSS ACK GCAA INTE INT R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000 B R/W:リード/ライト可能 アドレス 00000121H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 BB RSC AL LRB TRX AAS GCA FBT R R R R R R R R 00000122H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 - A6 A5 A4 A3 A2 A1 A0 - R/W R/W R/W R/W R/W R/W R/W 00000123H bit7 bit6 - - - - bit5 bit4 bit3 bit2 bit1 bit0 EN CS4 CS3 CS2 CS1 CS0 R/W R/W R/W R/W R/W R/W 00000125H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W:リード/ライト可能 336 クロックコントロール レジスタ(ICCR) 初期値 - - 0 X X X X X B R/W:リード/ライト可能 アドレス アドレスレジスタ (IADR) 初期値 -XXXXXXX B R/W:リード/ライト可能 アドレス バスステータス レジスタ(IBSR) 初期値 00000000 B R:リードオンリ アドレス バスコントロール レジスタ ( IBCR) データレジスタ (IDAR) 初期値 XXXXXXXXB 第 16 章 I2C インタフェース 16.3.1 バスコントロールレジスタ (IBCR) バスコントロールレジスタ (IBCR) には , 以下の機能があります。 • 割込み要求 / 割込み許可 • スタートコンディション発生 • マスタ / スレーブの選択 • アクノリッジ発生許可 ■ バスコントロールレジスタ (IBCR) バスコントロールレジスタ (IBCR) のレジスタ構成は以下のとおりです。 アドレス 00000120H bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 BER BEIE SCC MSS ACK GCAA INTE INT R/W R/W R/W R/W R/W R/W R/W R/W 初期値 00000000 B R/W:リード/ライト可能 [bit 15] BER (Bus ERror) バスエラー割込み要求フラグビットです。 ( ライト時 ) 0 バスエラー割込み要求フラグをクリアにする。 1 関係なし ( リード時 ) 0 バスエラーは検出されていない。 1 データ転送中に , 不正なスタート , ストップコンディションを検出した。 このビットがセットされた場合 , CCR レジスタの EN ビットはクリアされ , I2C インタ フェースは停止状態になり , データ転送は中断されます。 [bit 14] BEIE (Bus Error Interrupt Enable) バスエラー割込み許可ビットです。 0 バスエラー割込み禁止 1 バスエラー割込み許可 このビットが "1" のとき , BER ビットが "1" なら割込みを発生します。 337 第 16 章 I2C インタフェース [bit 13] SCC (Start Condition Continue) スタートコンディション発生ビットです。 ( ライト時 ) 0 1 関係なし マスタ転送時に再びスタートコンディションを発生させる。 このビットの読出し値は常に "0" です。 [bit 12] MSS (Master Slave Select) マスタ / スレーブの選択ビットです。 0 ストップコンディションを発生し , 転送終了後スレーブモードとなります。 1 マスタモードとなりスタートコンディションを発生し , 転送を開始します。 このビットは , マスタ転送中にアービトレーションロストが発生した場合クリアされ , スレーブモードになります。 <注意事項> 本 LSI の他にマスタモードとなる他の LSI がバス上に存在する場合 , 本 LSI はマス タモードで使用できません。 ・使用可能な構成例 I2C バス MB91150 シリーズ マスタ スレーブ A スレーブ B I2C バス MB91150 シリーズ スレーブ A マスタ A スレーブ ・使用できない構成例 I2C バス MB91150 シリーズ マスタ 338 スレーブ A マスタ A 第 16 章 I2C インタフェース [bit 11] ACK (ACKnowledge) データを受信した場合のアクノリッジ発生許可ビットです。 0 アクノリッジは発生しない。 1 アクノリッジは発生する。 このビットは , スレーブ時のアドレスデータ受信時には無効となります。 [bit 10] GCAA (General Call Address Acknowledge) ジェネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。 0 アクノリッジは発生しない。 1 アクノリッジは発生する。 [bit 9] INTE (INTerrupt Enable) 割込み許可ビットです。 0 割込み禁止 1 割込み許可 このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。 [bit 8] INT (INTerrupt) 転送終了割込み要求フラグビットです。 ( ライト時 ) 0 転送終了割込み要求フラグをクリアにする。 1 関係なし ( リード時 ) 0 転送終了していない。 1 アクノリッジビットを含めた 1 バイト転送が終了したときに次の条件に 該当する場合セットされます。 ・バスマスタである。 ・アドレスされたスレーブである。 ・ジェネラルコールアドレスを受信した。 ・アービトレーションロストが起こった。 ・ほかのシステムがバスを使用中にスタートコンディションを発生しよう とした。 このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへの "0" 書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行います。また , マスタ時にスタートコンディションまたはストップコンディションの発生により "0" にリセットされます。 339 第 16 章 I2C インタフェース <注意事項> 図 16.3-2 と図 16.3-3 に示したタイミングで , スタートコンディションを発生させる命 令を実行 (MMS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビッ ト= 1) による割込み (INT ビット= 1) が発生しません。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 1 スタートコンディション未検出 (BB ビット= 0) 状態で , SDA 端子または SCL 端子 レベルが "L" の時に , スタートコンディションを発生させる命令を実行 (IBCR レジ スタの MSS ビットに "1" を設定 ) した場合。 図 16.3-2 AL ビット= 1 検出による割込みが発生しないタイミング図 SCL 端子 SDA 端子 "L" "L" I2C 動作許可状態 (EN ビット= 1) マスタモード設定 (MSS ビット= 1) 1 アービトレーションロスト検出 (AL ビット ) バスビジー (BB ビット ) 0 割込み (INT ビット ) 0 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 2 他のマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット= 1) して スタートコンディションを発生させる命令を実行 (IBCR レジスタの MMS ビットに "1" を設定 ) した場合。 図 16.3-3 に示したとおり , I2C が動作禁止 (EN ビット= 0) の状態で , I2C バス上の 他のマスタが通信を開始すると , スタートコンディション未検出 (BB ビット= 0) で I2C バスが占有されている状態になるためです。 340 第 16 章 I2C インタフェース 図 16.3-3 AL ビット= 1 検出による割込みが発生しないタイミング図 Start Condition 9 クロック目で INT ビット 割込みが発生しない Stop Condition SCL 端子 SDA 端子 SLAVE ADDRESS ACK ACK DAT EN ビット MSS ビット AL ビット BB ビット 0 0 INT ビット 上記のような現象が発生する可能性がある場合には , 以下の手順でプログラム処理を お願いします。 1) スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 ) 2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビットデータ送信時間を待つ。* 例: I2C 転送周波数 100 kHz の場合 3 ビットデータ送信時間 {1/(100 × 103)} × 3 = 30 3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット = 1, BB ビット = 0 の 場合には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビット と BB ビットがその他の状態のときは通常処理を行う。 以下にフロー例を示します。 マスタモード設定 バス制御レジスタ (IBCR) の MSS ビットに "1" を設定 クロック制御レジスタ (ICCR) に設定されている I2C 転送周波数での 3 ビットデータ送信時間待ち * BB ビット= 0 でかつ AL ビット= 1 NO YES EN ビットを 0 にして I2C の初期化 通常処理へ *:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 I2C 転送周波 数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。 341 第 16 章 I2C インタフェース *:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 I2C 転送周波 数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。 • AL ビット= 1 検出による割込み (INT ビット= 1) が発生する例 バスビジー検出 (BB ビット= 1) されている状態で , スタートコンディションを発生 させる命令を実行 (MSS ビットに "1" を設定 ) アービトレーションロストした場合 には , AL ビット= 1 検出時に INT ビット割込みが発生します。 図 16.3-4 AL ビット= 1 時に割込みが発生するタイミング図 Start Condition 9 クロック目で割込み SCL 端子 SDA 端子 SLAVE ADDRESS ACK DAT EN ビット MSS ビット AL ビット プログラムでの AL ビットクリア BB ビット INT ビット プログラムでの INT ビットクリア で SCL 開放 ■ SCC, MSS, INT ビットの競合 SCC, MSS, INT ビットの同時書込みにより , 次バイトの転送 , スタートコンディション 発生 , ストップコンディション発生の競合が起こります。この場合の優先度は次のよう になります。 1) 次バイトの転送とストップコンディション発生 INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの "0" 書込みが優先 され , ストップコンディションが発生されます。 2) 次バイトの転送とスタートコンディション発生 INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの "1" 書込みが優先 され , スタートコンディションが発生されます。 3) スタートコンディション発生とストップコンディション発生 SCC ビットに "1", MSS ビットに "0" の同時書込みは禁止します。 342 第 16 章 I2C インタフェース 16.3.2 バスステータスレジスタ (IBSR) バスステータスレジスタ (IBSR) には , 以下の機能があります。 • 繰り返しスタートコンディション検出 • アービトレーションロスト検出 • アクノリッジ格納 • データ転送 • アドレッシング検出 • ジェネラルコールアドレス検出 • 第 1 バイト検出 ■ バスステータスレジスタ (IBSR) バスステータスレジスタ (IBSR) のレジスタ構成は以下のとおりです。 アドレス bit7 0000_0121H bit6 bit5 bit4 bit3 bit2 bit1 bit0 BB RSC AL LRB TRX AAS GCA FBT R R R R R R R R 初期値 00000000 B R:リードオンリ [bit 7] BB (Bus Busy) I2C バスの状態を示すビットです。 0 ストップコンディションを検出した。 1 スタートコンディションを検出した ( バスは使用されている )。 [bit 6] RSC (Repeated Start Condition) 繰返しスタートコンディション検出ビットです。 0 繰返しスタートコンディションは検出されていない。 1 バス使用中に , 再びスタートコンディションを検出した。 INT ビットへの "0" 書込み , スレーブ時にアドレスされなかった場合 , バス停止中のス タートコンディション検出またはストップコンディション検出でクリアされます。 [bit 5] AL (Arbitration Lost) アービトレーションロスト検出ビットです。 0 アービトレーションロスト検出されていない。 1 マスタ送信中にアービトレーションロストが発生した。または , ほかのシス テムがバスを使用中である時に MSS ビットに "1" 書込みを行った場合。 INT ビットへ "0" 書込みでクリアされます。 343 第 16 章 I2C インタフェース [bit 4] LRB (Last Received Bit) アクノリッジ格納ビットです。 受信側からのアクノリッジを格納します。 0 スレーブアクノリッジを検出した。 1 スレーブアクノリッジを検出していない。 スタートコンディションまたはストップコンディションの検出でクリアされます。 [bit 3] TRX (Transfer/Receive) データ転送の送受信を示すビットです。 0 受信状態 1 送信状態 [bit 2] AAS (Addressed As Slave) アドレッシング検出ビットです。 0 スレーブ時に , アドレッシングされていない。 1 スレーブ時に , アドレッシングされた。 スタートコンディションまたはストップコンディションの検出でクリアされます。 [bit 1] GCA (General Call Address) ジェネラルコールアドレス (00H) 検出ビットです。 0 スレーブ時に , ジェネラルコールアドレスは受信されていない。 1 スレーブ時に , ジェネラルコールアドレスを受信した。 スタートコンディションまたはストップコンディションの検出でクリアされます。 [bit 0] FBT (First Byte Transfer) 第 1 バイト検出ビットです。 0 受信データが第 1 バイト以外である。 1 受信データが第 1 バイト ( アドレスデータ ) である。 スタートコンディションの検出で "1" にセットされても , INT ビットの "0" 書込み , ま たはスレーブ時にアドレスされなかった場合にクリアされます。 344 第 16 章 I2C インタフェース 16.3.3 アドレスレジスタ (IADR)/ データレジスタ (IDAR) アドレスレジスタ (IADR) は , スレーブアドレスを指定するレジスタです。 また , データレジスタ (IDAR) は , シリアル転送に使用するレジスタです。 ■ アドレスレジスタ (IADR) アドレスレジスタ (IADR) のレジスタ構成は以下のとおりです。 アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 0000_0122H - A6 A5 A4 A3 A2 A1 A0 - R/W R/W R/W R/W R/W R/W R/W 初期値 -XXXXXXX B R/W:リード/ライト可能 [bit 14 ∼ bit 8] A6 ∼ A0 ( スレーブアドレスビット ) スレーブアドレスを指定するレジスタです。スレーブ時,アドレスデータ受信後にIDAR レジスタとの比較が行われ,一致している場合にはマスタに対してアクノリッジを送信 します。 ■ データレジスタ (IDAR) データレジスタ (IDAR) のレジスタ構成は以下のとおりです。 アドレス 0000_0125H bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 D7 D6 D5 D4 D3 D2 D1 D0 R/W R/W R/W R/W R/W R/W R/W R/W R/W:リード/ライト可能 初期値 XXXXXXXX B [bit 7 ∼ bit 0] D7 ∼ D0 ( データビット ) シリアル転送に使用されるデータレジスタであり , MSB から転送されます。データ受 信時 (TRX=1) は , データ出力値は "1" になります。 このレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB=1) である 場合 , 書込みデータは各バイト転送時にシリアル転送用のレジスタにロードされます。 読出し時はシリアル転送用のレジスタを直接読み出すため , 受信データは INT ビット がセットされている場合のみ有効です。 345 第 16 章 I2C インタフェース 16.3.4 クロックコントロールレジスタ (ICCR) クロックコントロールレジスタ (ICCR) には , 以下の機能があります。 • I2C インタフェース動作許可 • シリアルクロックの周波数の設定 ■ クロックコントロールレジスタ (ICCR) クロックコントロールレジスタ (ICCR) のレジスタ構成は以下のとおりです。 アドレス bit7 bit6 - - - - 0000_0123H bit5 bit4 bit3 bit2 bit1 bit0 EN CS4 CS3 CS2 CS1 CS0 R/W R/W R/W R/W R/W R/W 初期値 --0XXXXX B R/W:リード/ライト可能 [bit 7, bit 6] 未使用ビット [bit 5] EN (ENable) I2C インタフェース動作許可ビットです。 0 動作禁止 1 動作許可 このビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く ) の 各ビットはクリアされます。BER ビットがセットされた場合 , このビットはクリアさ れます。 [bit 4 ∼ bit 0] CS4 ∼ CS0 (Clock Period Select 4 ∼ 0) シリアルクロックの周波数を設定するビットです。 シフトクロックの周波数 fsck は次式のように設定されます。 φ Fsck = m×n+4 φ: マシンクロック周波数 <注意事項> +4 のサイクルは , SCL 端子の出力レベルが変化したことをチェックしているための最小 のオーバヘッドです。SCL 端子の立上りのディレイが大きい場合やスレーブデバイスで クロックを引き延ばしている場合には , この値より大きくなります。 346 第 16 章 I2C インタフェース m, n は , CS4 ∼ CS0 に対して表 16.3-1 のようになります。 表 16.3-1 シリアルクロック周波数設定 m CS4 CS3 n CS2 CS1 CS0 5 0 0 4 0 0 0 6 0 1 8 0 0 1 7 1 0 16 0 1 0 8 1 1 32 0 1 1 64 1 0 0 128 1 0 1 256 1 1 0 512 1 1 1 347 第 16 章 I2C インタフェース 16.4 I2C インタフェースの動作 I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL) の 2 本の双方向バスラインにより通信が行われます。I2C インタフェースはそ れに対して 2 本のオープンドレイン入力端子 (SDA, SCL) を有し , ワイヤード理論を 可能にします。 ■ I2C インタフェースの動作 ● スタートコンディション バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ ンタフェースはマスタモードとなり , 同時にスタートコンディションを発生します。マ スタモードでは , バスが使用状態 (BB=1) であっても , SCC ビットに "1" を書き込むこ とで再びスタートコンディションを発生させることができます。 スタートコンディションを発生させる条件として , 次の 2 とおりがあります。 • バスが使用されていない状態 (MSS=0*BB=0*INT=0*AL=0) での MSS ビットへの "1" の書込み。 • バスマスタ時の割込み状態 (MSS=1*BB=1*INT=1*AL=0) での SCC ビットへの "1" の 書込み。 ほかのシステム ( アイドル状態中 ) がバス使用中に , MSS ビットへ "1" 書込みを行うと , AL ビットが "1" にセットされます。上記以外での MSS ビット , SCC ビットへの "1" の 書込みは無視されます。 ● ストップコンディション マスタモード (MSS=1) 時に , MSS ビットに "0" を書き込むと , ストップコンディショ ンを発生し , スレーブモードになります。 ストップコンディションを発生させる条件は , 次のとおりです。 • バスマスタ時の割込み状態 (MSS=1*BB=1*INT=1*AL=0) での MSS ビットへの "0" 書 込み。 • 上記以外での , MSS ビットへの "0" の書込みは , 無視されます。 ● アドレッシング マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ , IDAR レジスタの内容を MSB から出力されます。アドレスデータ送信後 , スレーブからアク ノリッジを受信すると , 送信データのビット 0 ( 送信後の IDAR レジスタのビット 0) を 反転して TRX ビットへ格納します。 スレーブモードでは , スタートコンディション発生後 , BB=1, TRX=0 にセットされ , マ スタからの送信データを IDAR レジスタへ受信します。アドレスデータ受信後 IDAR レ ジスタと IADR レジスタとの比較が行われ , 一致している場合 , AAS=1 にセットし , マ スタに対してアクノリッジを送信します。その後 , 受信データのビット 0 ( 受信後の IDAR レジスタのビット 0) を TRX ビットへ格納します。 348 第 16 章 I2C インタフェース ● アービトレーション マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ ンが起こります。自分の送信データが "1", SDA ライン上のデータが "L" レベルの場合 , 自分はアービトレーションを失ったと見なし , AL=1 にセットします。また , 前述のよ うにバスが使用状態のときに , スタートコンディションを発生させようとした場合も AL=1 にセットされます。AL=1 にセットされると , MSS=0, TRX=0 となり , スレーブ受 信モードとなります。 ● アクノリッジ アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット によってアクノリッジの有無を選択できます。データ送信時は , 受信側からのアクノ リッジが LRB ビットに格納されます。 スレーブ送信時に , マスタ受信側からアクノリッジを受信しなかった場合 , TRX=0 と なりスレーブ受信モードになります。これにより , マスタはスレーブが SCL ラインを 開放した時に , ストップコンディションを発生させることができます。 ● バスエラー 以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に なります。 • データ転送中 (ACK ビットを含む ) の I2C バス上の基本規定違反の検出 • マスタ時のストップコンディション検出 • バスアイドル時の I2C バス上の基本規定違反の検出 349 第 16 章 I2C インタフェース 350 第 17 章 DMA コントローラ (DMAC) この章では , DMA コントローラの概要 , ブロック ダイヤグラム , レジスタの構成 / 機能および DMA コントローラの動作について説明します。 17.1 DMA コントローラの概要 17.2 DMA コントローラのブロックダイヤグラム 17.3 DMA コントローラのレジスタ 17.4 DMA コントローラの転送モード 17.5 転送受付信号出力と転送終了信号出力 17.6 DMA コントローラに関する注意事項 17.7 DMA コントローラのタイミング図 351 第 17 章 DMA コントローラ (DMAC) 17.1 DMA コントローラの概要 DMA コントローラは , MB91150 に内蔵されているモジュールで , DMA (Direct Memory Access) 転送を行います。 ■ DMA コントローラの特長 • 8 チャネル • 以下の 3 種類の転送モード - シングル / ブロック転送 - バースト転送 - 連続転送 • アドレス全領域とアドレス全領域の間での転送 • 最大 65536 回の転送回数 • 転送終了時割込み機能 • 転送アドレス増加 / 減少をソフトウェアで選択可能 • 以下の端子×各 3 本 - 外部転送要求入力端子 - 外部転送要求受付出力端子 - 外部転送終了出力端子 352 第 17 章 DMA コントローラ (DMAC) 17.2 DMA コントローラのブロックダイヤグラム 図 17.2-1 に , DMA コントローラのブロックダイヤグラムを示します。 ■ DMA コントローラのブロックダイヤグラム 図 17.2-1 DMA コントローラのブロックダイヤグラム DREQ0~DREQ2 内蔵リソース 転送要求 3 エッジ/レベル 検出回路 5 シーケンサ スイッチャ DPDP DACSR DATCR 3 3 8 DACK0~DACK2 DEOP0~DEOP2 割込み要求 データバス データバッファ 3 モード BLK 減 BLK DMACT 増 /減 SADR DADR 353 第 17 章 DMA コントローラ (DMAC) 17.3 DMA コントローラのレジスタ 図 17.3-1 に , DMA コントローラのレジスタ一覧を示します。 ■ DMA コントローラのレジスタ一覧 図 17.3-1 DMA コントローラのレジスタ一覧 [DMAC 内:DMAC 内部レジスタ] 31 000200H 0 DPDP 000204H DACSR 000208H DATCR [RAM上:DMA ディスクリプタ] 31 0 DPDP + 0H DMA ch0 ディスクリプタ DMA ch1 ディスクリプタ DPDP + 0CH : : DPDP + 54H 354 DMA ch7 ディスクリプタ 第 17 章 DMA コントローラ (DMAC) 17.3.1 DMAC パラメータディスクリプタポインタ (DPDP) DMAC パラメータディスクリプタポインタ (DPDP) は , DMAC の内部レジスタで , RAM 上にある DMAC 用ディスクリプタテーブルの先頭アドレスを格納するレジス タです。 DPDP の bit6 ∼ bit0 は常に 0 で , 設定可能なディスクリプタの先頭アドレスは 128 バイト単位となります。 ■ DMAC パラメータディスクリプタポインタ (DPDP) DMAC パラメータディスクリプタポインタ (DPDP) のレジスタ構成は以下のとおりで す。 31 000200H 7 6 0 0000000 初期値:0000000B 初期値:不定 • リセット時 : 初期化されません。 • リード / ライト可能です。 • 本レジスタへのアクセスには , 32 ビット転送命令を使用してください。 各チャネルの動作モードを指定するディスクリプタは , 表 17.3-1 に示すように , DPDP で指定される以下のアドレスに置かれます。 表 17.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) 355 第 17 章 DMA コントローラ (DMAC) 17.3.2 DMAC コントロールステータスレジスタ (DACSR) DMAC コントロールステータスレジスタ (DACSR) は , DMAC の内部レジスタで , DMAC 全体に関する制御 , ステータスを示すレジスタです。 ■ DMAC コントロールステータスレジスタ (DACSR) DMAC コントロールステータスレジスタ (DACSR) のレジスタ構成を以下に示します。 000204H bit31 bit30 bit29 bit28 bit27 bit26 bit25 bit24 DER7 DED7 DIE7 DOE7 DER6 DED6 DIE6 DOE6 R/W R/W R/W R/W R/W R/W R/W R/W bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16 DER5 DED5 DIE5 DOE5 DER4 DED4 DIE4 DOE4 R/W R/W R/W R/W R/W R/W R/W R/W bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit15 DER3 DED3 DIE3 DOE3 DER2 DED2 DIE2 DOE2 R/W R/W R/W R/W R/W R/W R/W R/W bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 DER1 DED1 DIE1 DOE1 DER0 DED0 DIE0 DOE0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値:00000000H [bit 31, bit 27, bit 23, bit 19, bit 15, bit 11, bit 7, bit 3] DER7 ∼ DER0 (DMA ERror) ch.n の DMA 要求発生元にエラーが発生して , DMA 転送処理を中断したことを示しま す。 0: エラーはありません。 1: エラーが発生しました。 エラーが発生するか否かは , DMA 要求発生元 ( リソース ) により異なります。エラー が発生しない DMA 要求発生元もあります。 • リセット時 :"0" に初期化されます。 • リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。 • リードモディファイライト系の命令による読出し時は , "1" が読み出されます。 [bit 30, bit 26, bit 22, bit 18, bit 14, bit 10, bit 6, bit 2] DED7 ∼ DED0 (DMA EnD) ch.n の DMA 転送が終了したことを示します。 0:DMA 転送動作は終了していません。 1: カウンタが "0" になった , または転送要求発生元でエラーが発生したことを示し ます。 356 第 17 章 DMA コントローラ (DMAC) • リセット時 :"0" に初期化されます。 • リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。 • リードモディファイライト系の命令による読出し時は , "1" が読み出されます。 [bit 29, bit 25, bit 21, bit 17, bit 13, bit 9, bit 5, bit 1] DIE7 ∼ DIE0 (DMA Interrupt Enable) ch.n の DMA 転送終了時 (DIE7 ∼ DIE0 が 1 になったとき ) に割込み要求を発生させる か否かを指定します。 0: 割込み禁止 1: 割込み許可 • リセット時 :"0" に初期化されます。 • リード / ライト可能です。 [bit 28, bit 24, bit 20, bit 16, bit 12, bit 8, bit 4, bit 0] DOE7 ∼ DOE0 (DMA Operation Enable) ch.n の DMA 転送動作を許可します。 0: 動作禁止 1: 動作許可 • 該当するチャネルの DMA 転送が完了すると (DED7 ∼ DED0 が 1 になると ), DOE7 ∼ DOE0 は 0 にクリアされます。 • 転送の完了によるクリア動作と , バスからの書込みによるセット動作が同時に行わ れた場合は , セット動作が優先されます。 • リセット時 :"0" に初期化されます。 • リード / ライト可能です。 357 第 17 章 DMA コントローラ (DMAC) 17.3.3 DMAC 端子コントロールレジスタ (DATCR) DMAC 端子コントロールレジスタ (DATCR) は , DMAC の内部レジスタで , 外部転送 要求入力端子 , 外部転送要求受付出力端子 , 外部転送終了出力端子に関する制御を行 うレジスタです。 ■ DMAC 端子コントロールレジスタ (DATCR) DMAC 端子コントロールレジスタ (DATCR) のレジスタ構成を以下に示します。 bit24 bit31 - 000208H bit23 - bit15 - bit21 bit20 bit19 bit18 bit17 bit16 LS21 LS20 AKSE2 AKDE2 EPSE2 EPDE2 R/W R/W R/W R/W R/W R/W bit14 bit13 bit12 bit11 bit10 bit9 bit8 - LS11 LS10 AKSE1 AKDE1 EPSE1 R/W R/W R/W R/W R/W R/W bit5 bit4 bit3 bit2 bit1 bit0 LS01 LS00 AKSE0 AKDE0 EPSE0 EPDE0 R/W R/W R/W R/W R/W R/W bit22 - bit7 bit6 - - EPDE1 初期値:XXX0X0X0H [bit 21, bit 20, bit 13, bit 12, bit 5, bit 4] LS21, LS20, LS11, LS10, LS01, LS00 ( 転送要求入力検出レベル選択 ) 該当する外部転送要求入力端子 DREQ2 ∼ DREQ0 の検出レベルを以下のように選択し ます。 LS21, LS11, LS01 LS20, LS10, LS00 0 0 立上りエッジ検出 0 1 立下りエッジ検出 1 0 "H" レベル検出 1 1 "L" レベル検出 動作制御機能 • リセット時 : 不定です。 • リード / ライト可能です。 • 連続転送モードを使用するときは , "H" レベル検出または "L" レベル検出を設定して ください。 358 第 17 章 DMA コントローラ (DMAC) [bit 19, bit 11, bit 3] AKSE2, AKSE1, AKSE0 [bit 18, bit 10, bit 2] AKDE2, AKDE1, AKDE0 転送要求受付出力信号を発生するタイミングを指定します。また , 転送要求受付出力信 号の端子からの出力機能の許可 / 禁止も指定します。 AKSE2, AKSE1, AKSE0 AKDE2, AKDE1, AKDE0 0 0 転送受付出力禁止 0 1 転送受付出力許可 , 転送先データアクセス時に出力 1 0 転送受付出力許可 , 転送元データアクセス時に出力 1 1 転送受付出力許可および転送先データアクセス時に出力 動作制御機能 • リセット時 :"00B" に初期化されます。 • リード / ライト可能です。 [bit 17, bit 9, bit 1] EPSE2, EPSE1, EPSE0 [bit 16, bit 8, bit 0] EPDE2, EPDE1, EPDE0 転送終了出力信号を発生するタイミングを指定します。また , 転送終了出力信号の端子 からの出力機能の許可 / 禁止も指定します。 EPSE2, EPSE1, EPSE0 EPDE2, EPDE1, EPDE0 0 0 転送終了出力禁止 0 1 転送終了出力許可 , 転送先データアクセス時に出力 1 0 転送終了出力許可 , 転送元データアクセス時に出力 1 1 転送終了出力許可 , 転送元および転送先データアクセス 時に出力 動作制御機能 • リセット時 :"00B" に初期化されます。 • リード / ライト可能です。 359 第 17 章 DMA コントローラ (DMAC) 17.3.4 RAM 上のディスクリプタ内レジスタ RAM 上のディスクリプタ内レジスタは , DMA 転送における , チャネルごとの設定情 報を格納するレジスタです。 チャネル当たり 12 バイトの大きさを持ち , DPDP により示されるアドレスのメモリ が使用されます。 チャネルごとのディスクリプタの先頭アドレスは ,「表 17.3-1 各チャネルのディス クリプタアドレス」を参照してください。 ■ ディスクリプタ先頭ワード ディスクリプタ先頭ワードのレジスタ構成は以下のとおりです。 bit16 bit31 DMACT R/W bit15 bit13 bit14 bit12 bit11 bit10 - bit9 bit8 BLK bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 SCS1 SCS0 DCS1 DCS0 WS1 WS0 MOD1 MOD0 R/W R/W R/W R/W R/W R/W R/W R/W 初期値:不定 [bit 31 ∼ bit 16] DMACT 転送回数指定 DMA 転送を行う回数を指定します。"0000H" を設定すると , 65536 回の転送を行います。 1 回転送を行うたびに , 値が 1 ずつ減少します。 [bit 15 ∼ bit 12] 空き [bit 11 ∼ bit 8] BLK ブロックサイズ指定 シングル / ブロック転送モードにおける , 転送ブロックサイズを指定します。 "0" を設定すると , ブロックサイズとしては 16 が指定されたことになります。シング ル転送を行うときは , "1" を指定してください。 360 第 17 章 DMA コントローラ (DMAC) [bit 7, bit 6] SCS1, SCS0 転送元アドレス更新モード指定 [bit 5, bit 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 バイト [bit 3, bit 2] WS1, WS0 転送データサイズを指定します。 WS1 WS0 0 0 バイト 0 1 ハーフワード 1 0 ワード 1 1 設定禁止 転送データサイズ 361 第 17 章 DMA コントローラ (DMAC) [bit1, bit 0] MOD1, MOD0 転送モード指定 転送モードを指定します。 MOD1 MOD0 0 0 シングル / ブロックモード 0 1 バーストモード 1 0 連続転送モード 1 1 設定禁止 動作モード 連続転送モードが使用できるのは , ch.0 ∼ ch.2 だけです。 ■ ディスクリプタ第 2 ワード ディスクリプタ第 2 ワードのレジスタ構成は以下のとおりです。 31 0 SADR R/W 転送元アドレスを格納します。 アドレス更新モードの指定 (SCS1, SCS0 ビット ) に基づき , 転送動作に応じて値が更新 されます。 転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは 4 の倍数のアドレスを指定してください。 ■ ディスクリプタ第 3 ワード ディスクリプタ第 3 ワードのレジスタ構成は以下のとおりです。 31 0 DADR R/W 転送先アドレスを格納します。 アドレス更新モードの指定 (DCS1, DCS0 ビット ) に基づき , 転送動作に応じて値が更 新されます。 転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは 4 の倍数のアドレスを指定してください。 362 第 17 章 DMA コントローラ (DMAC) 17.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 にバス権確保を要求します。 363 第 17 章 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) サイクル 364 第 17 章 DMA コントローラ (DMAC) ■ リクエストのセンスと各転送モードの組合せ 図 17.4-1 に , リクエストのセンスと各転送モードの組合せを示します。 図 17.4-1 リクエストのセンスと各転送モードの組合せ リクエストセンス 転送モード 転送の単位 エッジセンス ステップ動作モード シングル転送 レベルセンス バースト転送モード ブロック転送 連続転送モード ■ DREC 信号のセンスモード ● エッジセンス ステップ転送 ( シングル / ブロック ) およびバースト転送にて使用可能です。 DMA 要求を , ( アクティブ ) エッジにより検出します。 DMAC 転送中は外部 DREQ の入力はマスクされているので , 次転送のためのアクティ ブエッジは , 直前の DMA 転送における転送先 DACK のアクティブエッジ以降である 必要があります。ステップ転送時には注意してください。 ● レベルセンス ステップ転送 ( シングル / ブロック ) および連続・バースト転送にて使用可能です。 DMA 要求を , ( アクティブ ) レベルにより検出します。 <注意事項> レベルセンス , エッジセンス共に , DACK 信号の電気的特性は , 最小 2tCYC (ns) です。 エッジセンスの場合は , DACK のネゲート期間も同様に最小 2tCYC (ns) 必要です。 365 第 17 章 DMA コントローラ (DMAC) 17.4.1 ステップ転送 ( シングル / ブロック転送 ) ステップ転送 ( シングル / ブロック転送 ) は , 1 回の転送要求で , 1 回の DMA 転送を 行う転送モードです。DREQ 入力はエッジ , レベルの選択が可能です。 ■ ステップ転送 ( シングル / ブロック転送 ) ステップ転送では , 1DMA 転送ごとに , CPU にバス権が譲渡されます ( サイクルスチー ル的に転送が行われます )。 1 転送単位は , ブロックサイズにて決定され , ブロックサイズを大きくすれば DMAC の 転送レートは向上しますが , CPU の実行スループットは低下します。 図 17.4-2 に , CLK ダブラ使用 , 内部ディスクリプタ , ブロックサイズ =1 の場合の , ス テップ転送のタイミング例を示します。 図 17.4-2 ステップ転送のタイミング例 ステップ転送[CLKダブラ使用,内部ディスクリプタ,ブロックサイズ=1] CLK DREQ DACK ディスクリプタ アクセス Internal D-Abus external Abus 366 CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 第 17 章 DMA コントローラ (DMAC) 17.4.2 連続転送 連続転送は , 転送要求 (DREQ) がアクティブレベルを保持し続けている間 , DMA 転 送を行う転送モードです。DREQ 入力はレベルセンスのみ可能です。 ■ 連続転送 連続転送では , 転送回数レジスタが "0" になるか , もしくは DREQ 入力のネゲートによ り , CPU へバス権を譲渡します。 図 17.4-3 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , 連続転送のタイミング例 を示します。 図 17.4-3 連続転送のタイミング例 連続転送[CLKダブラ使用,内部ディスクリプタ] CLK ディスクリプタ DREQ アクセス DACK Internal D-Abus external Abus CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 367 第 17 章 DMA コントローラ (DMAC) 17.4.3 バースト転送 バースト転送は , 1 回の転送要求 (DREQ) で設定された転送回数分の DMA 転送をす べて行う転送モードです。DREQ 入力はレベルセンスもしくは , エッジセンスの選 択が可能です。 ■ バースト転送 バースト転送では , 転送回数レジスタが "0" になることにより , DMA 転送を終了し , CPU へバス権を譲渡します。 図 17.4-4 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , バースト転送のタイミン グ例を示します。 図 17.4-4 バースト転送のタイミング例 バースト転送[CLKダブラ使用,内部ディスクリプタ] CLK DREQ ディスクリプタ アクセス DACK Internal D-Abus external Abus CPUの DATA bus使用可能期間 転送先 転送先 転送先 転送先 DEOP2~DEOP0 DMACT=1 368 DMACT=0 第 17 章 DMA コントローラ (DMAC) DREQ センスモードによる違い 17.4.4 DREQ センスモードには , レベルモードとエッジモードがあります。ここでは , それ ぞれの注意事項について示します。 ■ レベルモード時の注意事項 レベルセンスモード時には , DMAC 転送のオーバランに注意が必要です。 転送先アクセス時の DACK ↑エッジまでに DREQ をネゲートしてください。 図 17.4-5 に , レベルモード時のタイミングを示します。 図 17.4-5 レベルモード時のタイミング 最大1tcyc CLK DREQ DREQ DACK DREQ(NG) 1回の転送要求に対して,2回 転送してしまいます。 ディスティネーションライト ソースリード 内部D-A ディスクリプタライト ディスクリプタリード external A bus 転送先 転送先 A B A: 要求フラグのクリアポイント エッジセンス時の次 DREQ のセンス開始ポイント 連続転送モード時の次 DREQ のセンス開始ポイント B: レベルセンスモードで , シングル , ブロック転送時における次 DREQ のセンス開始ポイント ( 注意事項 ) DREQ から DMA 起動までのタイミングは , ほぼ最速の場合を記載しています。 369 第 17 章 DMA コントローラ (DMAC) ■ エッジモード時の注意事項 エッジセンスモード時には , DMAC 要求フラグのクリアポイント以降に , 次の DREQ エッジを入力する必要があります。それ以前に入力されたエッジは無視されますので , 注意してください。 また , エッジを認識させるためにネゲート期間として最小 2tCYC (ns) 必要です。 転送先アクセス時のDACK↓エッジ以降に,図 17.4-6 に示すDREQを入力してください。 図 17.4-6 に , エッジモード時のタイミングを示します。 図 17.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 起動までのタイミングは , ほぼ最速の場合を記載しています。 370 第 17 章 DMA コントローラ (DMAC) 17.5 転送受付信号出力と転送終了信号出力 ch.0, ch.1, ch.2 には , 転送要求受付信号と転送終了信号出力を端子から出力する機 能があります。 転送受付信号出力では , 端子からの転送要求入力を受理して DMA 転送を行うとき , DMAC から転送要求受付信号が出力されます。 転送終了信号出力では , 端子からの転送要求入力を受理して DMA 転送を行い , DMACT カウンタが 0 となって転送を終了するとき , DMAC から転送終了信号が出 力されます。 ■ 転送受付信号出力 転送要求受付信号は , アクティブローのパルスで , 転送データのアクセスに伴って出力 されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す るのか , またはその両方で出力するのか , を DATCR 中の AKSE2 ∼ AKSE0, AKDE2 ∼ AKDE0 ビットにて指定可能です。 ■ 転送終了信号出力 転送終了信号は , アクティブローのパルスで , 最終転送データのアクセスに伴って出力 されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す るのか , またはその両方で出力するのか , を DATCR 中の EPSE2 ∼ EPSE0, EPDE2 ∼ EPDE0 ビットにて指定可能です。 371 第 17 章 DMA コントローラ (DMAC) 17.6 DMA コントローラに関する注意事項 DMA コントローラを使用する上での注意事項を示します。 ■ チャネル間優先順位 本 DMAC は , 1 つのチャネルの DMA 転送要求により一度起動されると , ほかのチャネ ルの DMA 転送要求が発生しても実行中の転送が終了するまでほかのチャネルの転送 要求は受理されず , 保留されます。 DMAC が DMA 転送要求を検出するときに , 複数のチャネルの要求が同時にアクティ ブになっていた場合 , 受理するチャネルは以下の優先度に従って決まります。 ( 強 ) ch.0 > ch.1 > ch.2 > ch.3 > ch.4 > ch.5 > ch.6 > ch.7 ( 弱 ) 複数のチャネルの要求が同時に発生した場合 , 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 レジスタを必要な値に設定してくださ い。 372 第 17 章 DMA コントローラ (DMAC) ● PDRR レジスタ HRCL レジスタの指定による DMA 転送動作の抑止機能は , より高い優先度の割込み要 求がアクティブなときのみ有効です。そのため , 例えば割込みハンドラのプログラム中 で割込み要求をクリアすると , その時点で HRCL レジスタによる DMA 転送の抑止は解 除され , CPU がバス権を失ってしまう場合があります。 ほかの割込み要求を受理できるように割込み要求はクリアして , かつ DMA 転送動作は 抑止するために , クロック制御部の PDRR レジスタが用意されています。 割込みハンドラ中で PDRR に 0 以外の値を書き込むと , DMA 転送動作は抑止されます。 DMA 転送動作の抑止を解除したいとき , PDRR に 0 を書き込んでください。 ■ スリープモード中の DMA 転送動作 スリープモード中の DMA 転送動作は使用できません。スリープモードにする前に必 ず DMA 転送動作を動作禁止に設定してください。 ■ DMAC 内部レジスタへの転送動作 転送先アドレスとして , DMAC の内部レジスタは指定しないでください。表 17.6-1 に , DMA 転送要求要因の一覧を示します。 表 17.6-1 DMA 転送要求要因一覧 チャネル番号 転送要求要因 0 外部転送要求入力端子 DREQ0 1 外部転送要求入力端子 DREQ1 2 外部転送要求入力端子 DREQ2 3 PPG ch.0 4 UART ch.0 受信 5 UART ch.0 送信 6 16 ビットリロードタイマ ch.0 7 A/D コンバータ ● DMAC 転送要求元のエラーステータス DACSR の DER7 ∼ DER0 ビットで DMA 要求発生元にエラーが発生したことを通知で きるのは , ch.4 だけです。 UART ch.0 の受信割込みを DMA 転送要求として使用しているときに , 以下のエラーが 発生すると , DER4 ビットが "1" となります。 • パリティエラー • オーバランエラー • フレーミングエラー 373 第 17 章 DMA コントローラ (DMAC) 17.7 DMA コントローラのタイミング図 以下の動作のタイミングを示します。 • ディスクリプタアクセス部 • データ転送部 • 連続転送モードでの転送停止 • 転送の終了 ■ タイミング図で使用している記号 表 17.7-1 に , 以降のタイミング図中で使用している記号の意味を示します。 表 17.7-1 タイミング図で使用している記号 記号 #0 ディスクリプタ No.0 #0H ディスクリプタ No.0 の bit31 ∼ bit 16 #0L ディスクリプタ No.0 の bit15 ∼ bit 0 #1 ディスクリプタ No.1 #1H ディスクリプタ No.1 の bit31 ∼ bit 16 #1L ディスクリプタ No.1 の bit15 ∼ bit 0 #2 ディスクリプタ No.2 #2H ディスクリプタ No.2 の bit31 ∼ bit 16 #2L ディスクリプタ No.2 の bit15 ∼ bit 0 #1/2 ディスクリプタ No.1 または No.2 (SCS1, SCS0, DCS1, DCS0 により決まる ) #1/2H ディスクリプタ No.1 または No.2 の bit31 ∼ bit 16 #1/2L ディスクリプタ No.1 または No.2 の bit15 ∼ bit 0 S 374 意味 転送元 SH 転送元の bit31 ∼ bit 16 SL 転送元の bit15 ∼ bit 0 D 転送先 DH 転送先の bit31 ∼ bit 16 DL 転送先の bit15 ∼ bit 0 第 17 章 DMA コントローラ (DMAC) 17.7.1 ディスクリプタアクセス部のタイミング図 ディスクリプタアクセス部のタイミング図を示します。 ■ ディスクリプタアクセス部 ● 要求端子入力モード : レベル , ディスクリプタアドレス : 外部 (A) CLK DREQ2~ DREQ0 Addr端子 Data端子 #0L #0H #0H #1H #0L #1L #1H #2H #1L #2H #2L S #2L S RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 要求端子入力モード : レベル , ディスクリプタアドレス : 内部 (A) 内部 KB CLK DREQ2~ DREQ0 Addr端子 S Data端子 S RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 要求端子入力モード : エッジ , ディスクリプタアドレス : 外部 (A) CLK DREQ2~ DREQ0 Addr端子 Data端子 #0H #0H #0L #0L #1H #1H #1L #1L #2H #2H #2L #2L S S RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 375 第 17 章 DMA コントローラ (DMAC) ● 要求端子入力モード : エッジ , ディスクリプタアドレス : 内部 (A) CLK DREQ2~ DREQ0 Addr端子 S S Data端子 RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 <注意事項> DREQn の発生から DMAC 動作開始までの部分については , 最も早い条件の場合を示して あります。 実際の動作では , CPU の命令フェッチやデータアクセスによるバスの競合があるため , DMAC の動作開始が遅れる場合があります。 376 第 17 章 DMA コントローラ (DMAC) 17.7.2 データ転送部のタイミング図 データ転送部のタイミング図を示します。 ■ データ転送部 , 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ2~ DREQ0 Addr端子 Data端子 #2 D S #2 S S S D S D D S D D S D S D RD WR0,WR1 W DACK2~ DACK0 DEOP2~ DEOP0 W W (A) ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM (A) CLK DREQ2~ DREQ0 Addr端子 Data端子 S #2 #2 S S S S S S S RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 (A) CLK DREQ2~ DREQ0 Addr端子 Data端子 #2 #2 D D D D D D D D W W W W RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 377 第 17 章 DMA コントローラ (DMAC) 17.7.3 連続転送モードでの転送停止タイミング図 連続転送モードでの転送停止のタイミング図を示します。 ■ 連続転送モードでの転送停止 ( いずれか一方のアドレスは固定である場合 ), 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ2~ DREQ0 Addr端子 D Data端子 D S S D #0H #1/2H #1/2L D #0H #1/2H #1/2L W W W W RD WR0,WR1 W DACK2~ DACK0 DEOP2~ DEOP0 ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM CLK DREQ2~ DREQ0 Addr端子 S Data端子 S S S #0H #1/2H #1/2L #0H #1/2H #1/2L W W W RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 CLK DREQ2~ DREQ0 Addr端子 D D D #0H #1/2H #1/2L Data端子 D D D #0H #1/2H #1/2L W W W W W W RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 378 第 17 章 DMA コントローラ (DMAC) ■ 連続転送モードでの転送停止 ( 両方のアドレスが変化する場合 ), 16/8 ビットデータ ● 転送元領域 : 外部 , 転送先領域 : 外部 CLK DREQ2~ DREQ0 Addr端子 D Data端子 D S S D #0H #1H #1L #2H #2L D #0H #1H #1L #2H #2L W W W W W W #0H #1H #1L #2H #2L #0H #1H #1L #2H #2L W W W W W RD W WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 転送元領域 : 外部 , 転送先領域 : 内部 RAM CLK DREQ2~ DREQ0 Addr端子 S Data端子 S S S RD WR0,WR1 DACK2~ DACK0 DEOP2~ DEOP0 ● 転送元領域 : 内部 RAM, 転送先領域 : 外部 CLK DREQ2~ DREQ0 Addr端子 D D D #0H #1H #1L #2H #2L Data端子 D D D #0H #1H #1L #2H #2L W W W W W W W W RD WR0, WR1 DACK2~ DACK0 DEOP2~ DEOP0 379 第 17 章 DMA コントローラ (DMAC) 17.7.4 転送の終了動作タイミング図 転送の終了動作のタイミング図を示します。 ■ 転送の終了動作 ( いずれか一方のアドレスは固定である場合 ) ● バス幅 : 16 ビット , データ長 : 8/16 ビット CLK Addr端子 D Data端子 D D S S D S D #0H #1/2H #1/2L D #0H #1/2H #1/2L W W W W S RD WR0,WR1 W W AKSE2~AKSE0=1 DACK AKDE2~AKDE0=1 両方とも1 EPSE2~EPSE0=1 DEOP EPDE2~EPDE0=1 両方とも1 ● バス幅 : 16 ビット , データ長 : 32 ビット CLK Addr端子 Data端子 RD AKSE2~AKSE0=1 AKDE2~AKDE0=1 両方とも1 EPSE2~EPSE0=1 DEOP EPDE2~EPDE0=1 両方とも1 380 SH SL SL D DL DH DL SH SH SL SL D DL #0H #1/2H #1/2L DH DL #0H #1/2H #1/2L W W W W H WR0,WR1 DACK SH W H W W 第 17 章 DMA コントローラ (DMAC) ■ 転送の終了動作 ( 両方のアドレスが変化する場合 ) ● バス幅 : 16 ビット , データ長 : 8/16 ビット CLK Addr端子 D Data端子 D S D S D S S D #0H #1H #1L #2H #2L D #0H #1H #1L #2H #2L W W W W W W RD W WR0,WR1 W AKSE2~AKSE0=1 AKDE2~AKDE0=1 DACK 両方とも1 EPSE2~EPSE0=1 EPDE2~EPDE0=1 DEOP 両方とも1 ● バス幅 : 16 ビット , データ長 : 32 ビット CLK Addr端子 Data端子 SH SL SH SL D DL DH DL RD SH SH SL SL D DL #0H #1H #1L DH DL #0H #1H #1L W W H H W WR0,WR1 W W W W AKSE2~AKSE0=1 DACK AKDE2~AKDE0=1 両方とも1 EPSE2~EPSE0=1 DEOP EPDE2~EPDE0=1 両方とも1 CLK Addr端子 #2H #2L Data端子 #2H #2L W W RD WR0,WR1 381 第 17 章 DMA コントローラ (DMAC) 382 第 18 章 ビットサーチモジュール この章では , ビットサーチモジュールの概要 , レジ スタの構成 / 機能およびビットサーチモジュールの 動作について説明します。 18.1 ビットサーチモジュールの概要 18.2 ビットサーチモジュールのレジスタ 18.3 ビットサーチモジュールの動作と退避 / 復帰処理 383 第 18 章 ビットサーチモジュール 18.1 ビットサーチモジュールの概要 ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , 0, 1 また は変化点を検索し , 検出したビット位置を返す機能をもつモジュールです。 ■ ビットサーチモジュールのブロックダイヤグラム 図 18.1-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。 図 18.1-1 ビットサーチモジュールのブロックダイヤグラム D-bus 入力ラッチ アドレス デコーダ 検出モード 1検出データ化 ビットサーチ回路 検索結果 ■ ビットサーチモジュールのレジスタ一覧 図 18.1-2 に , ビットサーチモジュールのレジスタ一覧を示します。 図 18.1-2 ビットサーチモジュールのレジスタ一覧 31 0 384 アドレス:0003F0H BSD0 0検出用データレジスタ アドレス:0003F4H BSD1 1検出用データレジスタ アドレス:0003F8H BSDC 変化点検出用データレジスタ アドレス:0003FCH BSDR 検出結果レジスタ 第 18 章 ビットサーチモジュール 18.2 ビットサーチモジュールのレジスタ ビットサーチモジュールのレジスタには , 以下の 4 つがあります。 • 0 検出用データレジスタ (BSD0) • 1 検出用データレジスタ (BSD1) • 変化点検出用データレジスタ (BSDC) • 検出結果レジスタ (BSRR) ■ 0 検出用データレジスタ (BSD0) 0 検出用データレジスタ (BSD0) のレジスタ構成は以下のとおりです。 31 0 0003F0H R/W → 初期値 → ライトオンリ 不定 書き込んだ値に対して , 0 検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください )。 ■ 1 検出用データレジスタ (BSD1) 1 検出用データレジスタ (BSD1) のレジスタ構成は以下のとおりです。 (BSD1) 31 0 000003F4H R/W → 初期値 → リードライト可能 不定 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は使わないでください )。 ● 書込み時 書き込んだ値に対して , "1" を検出します。 ● 読出し時 ビットサーチモジュールの内部状態の退避用データが読み出されます。 割込みハンドラ等がビットサーチモジュールを使用する場合に,元の状態を退避復帰す るときに使用します。 0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ ジスタのみ操作することで退避復帰できます。 リセットによる初期値は不定です。 385 第 18 章 ビットサーチモジュール ■ 変化点検出用データレジスタ (BSDC) 変化点検出用データレジスタ (BSDC) のレジスタ構成は以下のとおりです。 31 0 000003F8H R/W → 初期値 → ライトオンリ 不定 書き込んだ値に対して , 変化点の検出を行います。 リセットによる初期値は不定です。 読出し値は不定です。 データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ ト長のデータ転送命令は , 使わないでください )。 ■ 検出結果レジスタ (BSRR) 検出結果レジスタ (BSRR) のレジスタ構成は以下のとおりです。 31 0 000003FCH R/W → 初期値 → リードオンリ 不定 0 検出 , 1 検出または変化点検出の結果が読み出されます。 どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって , 決定さ れます。 386 第 18 章 ビットサーチモジュール 18.3 ビットサーチモジュールの動作と退避 / 復帰処理 ここでは , ビットサーチモジュールの 0 検出 , 1 検出および変化点検出の動作と 退避 / 復帰処理について示します。 ■ 0 検出 0 検出では , 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ ンし , 最初の "0" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す数値の関係は , 表 18.3-1 に示すとおりです。 "0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 11111111111111111111000000000000B (FFFFF000H) → 11111000010010011110000010101010B (F849E0AAH) → 20 10000000000000101010101010101010B (8002AAAAH) → 1 11111111111111111111111111111111B (FFFFFFFFH) → 32 5 ■ 1 検出 1 検出では , 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ ンし , 最初の "1" を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値との関係は , 表 18.3-1 のとおりです。 "1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ 結果として返します。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) 00000001001000110100010101100111B (01234567H) → 2 → 7 00000000000000111111111111111111B (0003FFFFH) 00000000000000000000000000000001B (00000001H) → 14 → 31 00000000000000000000000000000000B (00000000H) → 32 ■ 変化点検出 変化点検出では , 変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし , MSB の値と比較します。 最初に MSB と異なる値を検出した位置を返します。 検出結果は , 検出結果レジスタを読み出すことで得られます。 検出した位置と返す値は , 表 18.3-1 に示すとおりです。 387 第 18 章 ビットサーチモジュール 変化点が存在しないときは , "32" を返します。 変化点検出では , 結果として "0" を返すことはありません。 【実行例】 書込みデータ 読出し値 (10 進 ) 00100000000000000000000000000000B (20000000H) 00000001001000110100010101100111B (01234567H) → 2 → 7 00000000000000111111111111111111B (0003FFFFH) → 14 00000000000000000000000000000001B (00000001H) 00000000000000000000000000000000B (00000000H) → 31 → 32 11111111111111111111000000000000B (FFFFF000H) → 11111000010010011110000010101010B (F849E0AAH) → 20 10000000000000101010101010101010B (8002AAAAH) → 11111111111111111111111111111111B (FFFFFFFFH) → 1 5 32 表 18.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 ■ 退避・復帰の処理 割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ い。 1) 1 検出用データレジスタを読出し , この内容を保存する ( 退避 ) 2) ビットサーチモジュールを使用 3) 1) で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 ) 以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1) 以前に , ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記手 順で正しく元に戻ります。 388 第 19 章 周辺ストップ制御 この章では , 周辺ストップ制御の概要およびレジス タの構成 / 機能について説明します。 19.1 周辺ストップ制御の概要 19.2 周辺ストップ制御のレジスタ 389 第 19 章 周辺ストップ制御 19.1 周辺ストップ制御の概要 周辺ストップ制御は , 使用しないリソースのクロックを停止させ , より低消費電力化 を可能とする機能です。 ■ 周辺ストップ制御のレジスタ一覧 図 19.1-1 に , 周辺ストップ制御のレジスタ一覧を示します。 図 19.1-1 周辺ストップ制御のレジスタ一覧 アドレス bit7 ・・・・・・ ・・ bit0 000090H STPR0 000091H STPR1 000092H STPR2 ■ 周辺ストップ制御の動作と注意事項 各ビットそれぞれ対応するリソースのクロックを停止できます。 クロックを停止させたリソースは当然ながら起動できません。また停止中のリソース のレジスタをアクセスしないでください。 使用中のリソースに対して本機能を用いて停止させないでください。 390 第 19 章 周辺ストップ制御 19.2 周辺ストップ制御のレジスタ 周辺ストップ制御のレジスタには , 以下の 3 つがあります。 • ストップ制御レジスタ 0 (STPR0) • ストップ制御レジスタ 1 (STPR1) • ストップ制御レジスタ 2 (STPR2) ■ ストップ制御レジスタ 0 (STPR0) ストップ制御レジスタ 0 (STPR0) のレジスタ構成は以下のとおりです。 アドレス 000090H bit7 bit6 bit5 bit4 bit3 ST07 ST06 ST05 ST04 - bit2 - bit1 - bit0 - 初期値 0000----B (R/W) [bit 7] ST07 0 UART0 動作許可 1 UART0 動作停止 [bit 6] ST06 0 UART1 動作許可 1 UART1 動作停止 [bit 5] ST05 0 UART2 動作許可 1 UART2 動作停止 [bit 4] ST04 0 UART3 動作許可 1 UART3 動作停止 ■ ストップ制御レジスタ 1 (STPR1) ストップ制御レジスタ 1 (STPR1) のレジスタ構成は以下のとおりです。 アドレス 000091H bit7 ST17 bit6 bit5 bit4 ST16 ST15 ST14 bit3 bit2 bit1 ST13 ST12 ST11 bit0 ST10 初期値 00000000B (R/W) 391 第 19 章 周辺ストップ制御 [bit 7] ST17 0 リロードタイマ 0 動作許可 1 リロードタイマ 0 動作停止 [bit 6] ST16 0 リロードタイマ 1 動作許可 1 リロードタイマ 1 動作停止 [bit 5] ST15 0 リロードタイマ 2 動作許可 1 リロードタイマ 2 動作停止 [bit 4] ST14 0 リロードタイマ 3 動作許可 1 リロードタイマ 3 動作停止 [bit 3] ST13 0 フリーランタイマ動作許可 1 フリーランタイマ動作停止 [bit 2] ST12 0 I2C 動作許可 1 I2C 動作停止 [bit 1] ST11 0 アップダウンカウンタ動作許可 1 アップダウンカウンタ動作停止 [bit 0] ST10 392 0 A/D コンバータ動作許可 1 A/D コンバータ動作停止 第 19 章 周辺ストップ制御 ■ ストップ制御レジスタ 2 (STPR2) ストップ制御レジスタ 2 (STPR2) のレジスタ構成は以下のとおりです。 アドレス bit7 000092H ST27 bit6 ST26 bit5 bit4 bit3 bit2 ST25 ST24 ST23 ST22 bit1 bit0 ─ ─ 初期値 000000--B (R/W) [bit 7] ST27 0 PPG0 動作許可 1 PPG0 動作停止 [bit 6] ST26 0 PPG1 動作許可 1 PPG1 動作停止 [bit 5] ST25 0 PPG2 動作許可 1 PPG2 動作停止 [bit 4] ST24 0 PPG3 動作許可 1 PPG3 動作停止 [bit 3] ST23 0 PPG4 動作許可 1 PPG4 動作停止 [bit 2] ST22 0 PPG5 動作許可 1 PPG5 動作停止 393 第 19 章 周辺ストップ制御 394 第 20 章 カレンダーマクロ この章では , カレンダーマクロの概要 , レジスタの 構成 / 機能およびカレンダーマクロの動作について 説明します。 20.1 カレンダーマクロの概要 20.2 カレンダーマクロのレジスタ 20.3 カレンダーマクロの動作 395 第 20 章 カレンダーマクロ 20.1 カレンダーマクロの概要 本マクロは 32.768kHz を基本クロックとした , カレンダーマクロです。 年 , 月 , 日 , 時 , 分 , 秒 , 曜日 , うるう年の時計機能を行います。 年のカウントは , 西暦の下位 2 桁の 0 ∼ 99 をカウントします。 ■ カレンダーマクロのブロックダイヤグラム 図 20.1-1 に , カレンダーマクロのブロックダイヤグラムを示します。 図 20.1-1 カレンダーマクロのブロックダイヤグラム 発振器 カレンダー回路 32kHz D-bus バス 制御 ■ カレンダーマクロのレジスタ一覧 図 20.1-2 に , カレンダーマクロのレジスタ一覧を示します。 図 20.1-2 カレンダーマクロのレジスタ一覧 396 アドレス000210H RST - - - - - アドレス000211H - - S5 S4 S3 S2 S1 S0 CA1レジスタ アドレス000212H - - M5 M4 M3 M2 M1 M0 CA2レジスタ アドレス000213H - - - H4 H3 H2 H1 H0 CA3レジスタ アドレス000214H - - - アドレス000215H - - - - アドレス000216H - - - - アドレス000217H - Y6 Y5 Y4 Y3 Y2 Y1 Y0 CA7レジスタ アドレス00021FH TST - - - - - TST CASレジスタ MD1 MD0 DA4 DA3 DA2 DA1 DA0 - W2 W1 W0 MN3 MN2 MN1 MN0 CACレジスタ CA4レジスタ CA5レジスタ CA6レジスタ 第 20 章 カレンダーマクロ 20.2 カレンダーマクロのレジスタ カレンダーマクロのレジスタには , 以下の 9 つがあります。 • CAC ( カレンダーブロックリード / ライト制御レジスタ ) • CA1 ( 秒のデータレジスタ ) • CA2 ( 分のデータレジスタ ) • CA3 ( 時のデータレジスタ ) • CA4 ( 日のデータレジスタ ) • CA5 ( 曜日のデータレジスタ ) • CA6 ( 月のデータレジスタ ) • CA7 ( 年のデータレジスタ ) • CAS ( カレンダーテストレジスタ ) ■ CAC ( カレンダーブロックリード / ライト制御レジスタ ) CAC ( カレンダーブロックリード / ライト制御レジスタ ) のレジスタ構成は以下のとお りです。 CAC 7 bit RST 6 bit - 5 bit - 4 bit - 3 bit - 2 bit - 1 bit MD1 0 bit MD0 初期値 00000000B[R/W] [bit 7] RST 本ビットはカレンダー制御回路の初期化を行うビットです。 "1" の書込みにより初期化が行われます。 CA1 ∼ 7 およびカウンタは初期化されません。 [bit 6 ∼ bit 2] 予約 本ビットは予約ビットです , 必ず "0" を書き込んでください。 [bit 1, bit 0] MD1, MD0 モード設定ビット MD1 MD0 0 0 通常カウント動作 0 1 リードモード 1 0 ライトモード 1 1 禁止 モード ■ CA1 ( 秒のデータレジスタ ) CA1 ( 秒のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA1 7 bit - 6 bit - 5 bit S5 4 bit S4 3 bit S3 2 bit S2 1 bit S1 0 bit S0 初期値 --XXXXXXB[R/W] 397 第 20 章 カレンダーマクロ [bit 7, bit 6] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 5 ∼ bit 0] S5 ∼ S0 秒データです。0 ∼ 59 のバイナリ表示をします。 ■ CA2 ( 分のデータレジスタ ) CA2 ( 分のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA2 7 bit - 6 bit - 5 bit M5 4 bit M4 3 bit M3 2 bit M2 1 bit M1 0 bit M0 初期値 --XXXXXXB[R/W] [bit 7, bit 6] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 5 ∼ bit 0] M5 ∼ M0 分データです。0 ∼ 59 のバイナリ表示をします。 ■ CA3 ( 時のデータレジスタ ) CA3 ( 時のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA3 7 bit - 6 bit - 5 bit - 4 bit H4 3 bit H3 2 bit H2 1 bit H1 0 bit H0 初期値 ---XXXXXB[R/W] [bit 7 ∼ bit 5] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 4 ∼ bit 0] H4 ∼ H0 時データです。0 ∼ 23 のバイナリ表示をします。 ■ CA4 ( 日のデータレジスタ ) CA4 ( 日のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA4 7 bit - 6 bit - 5 bit - 4 bit DA4 3 bit DA3 2 bit DA2 1 bit DA1 0 bit DA0 初期値 ---XXXXXB[R/W] [bit 7 ∼ bit 5] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 4 ∼ bit 0] DA4 ∼ DA0 日データです。1 ∼ 31 のバイナリ表示をします。 ■ CA5 ( 曜日のデータレジスタ ) CA5 ( 曜日のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA5 7 bit - 6 bit - 5 bit - 4 bit - 3 bit - 2 bit W2 1 bit W1 0 bit W0 [bit 7 ∼ bit 3] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 2 ∼ bit 0] W2 ∼ W0 曜日データです。0 ∼ 6 のバイナリ表示をします。 398 初期値 -----XXXB[R/W] 第 20 章 カレンダーマクロ ■ CA6 ( 月のデータレジスタ ) CA6 ( 月のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA6 7 bit - 6 bit - 5 bit - 4 bit - 3 bit MN3 2 bit MN2 1 bit MN1 0 bit MN0 初期値 ----XXXXB[R/W] [bit 7 ∼ bit 4] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 3 ∼ bit 0] MN3 ∼ MN0 月データです。1 ∼ 12 のバイナリ表示をします。 ■ CA7 ( 年のデータレジスタ ) CA7 ( 年のデータレジスタ ) のレジスタ構成は以下のとおりです。 CA7 7 bit - 6 bit Y6 5 bit Y5 4 bit Y4 3 bit Y3 2 bit Y2 1 bit Y1 0 bit Y0 初期値 -XXXXXXXB[R/W] [bit 7] 予約 本ビットは予約ビットです。ライト値は無視されます。 [bit 6 ∼ bit 0] Y6 ∼ Y0 年データです。0 ∼ 99 のバイナリ表示をします。 ■ CAS ( カレンダーテストレジスタ ) CAS ( カレンダーテストレジスタ ) のレジスタ構成は以下のとおりです。 CAS 7 bit TST 6 bit - 5 bit - 4 bit - 3 bit - 2 bit - 1 bit - 0 bit TST 初期値 0------0B[R/W] [bit 7, bit 0] TST 本ビットは TST ビットです。必ず "0" を書き込んでください。 [bit 6 ∼ bit 1] 予約 本ビットは予約ビットです。ライト値は無視されます。 399 第 20 章 カレンダーマクロ 20.3 カレンダーマクロの動作 ここでは , カレンダーマクロの初期リセット , カレンダー値設定およびカレンダー値 読出しについて示します。 ■ 初期リセット 通常のリセット (RST 端子によるリセット等の CPU のリセット信号 ) では , CAC レジ スタ , CAS レジスタのみ初期化できます。 カレンダー回路の初期化のためには, CACレジスタに80H をライトして制御系をリセッ トする必要があります。CA1 ∼ 7, カウンタはリセットされません。 ■ カレンダー値設定 カレンダー値の設定は , ライトモード (CAC レジスタ MD1, 0=1, 0) にした後に行います。 カウンタは , ライトモード中でカウント動作を続けていますので , 直接カウンタへのラ イトは行いません。 レジスタ (CA1 ∼ 7) の設定が終わり , 通常モードに戻る (CAC レジスタ D2="0") 際に書 き込まれたレジスタの値のみが , カウンタにロードされカウントが続きます。 <注意事項> • ライト動作中でもカウント動作は継続しますが , CA1 レジスタだけはライトした時点 でカウントは停止します。また , CA1 にライトしたときだけは通常動作に戻る際は , 0 からカウントをはじめます。 • ライトモード中 , ライトモード終了後 , 4CPU サイクルの間にパワーダウンした場合 , データは保証されません。 • ライトモードから次のライトモードまでに 1CPU サイクル , 間をあける必要がありま す。 • 各レジスタ (CA1 ∼ 7) へのライト値は , それぞれのカウント値を超えた値を書き込ま ないでください。 ■ カレンダー値読出し カレンダー値の読出しは , リードモード (CAC レジスタ MD1, 0=0, 1) にした後に行いま す。 リードモードとした時にカウンタ値が内部レジスタ (CA1 ∼ 7) にロードされ , 固定さ れます。 このあとに内部レジスタをリードしますので , カウンタ動作は継続しています。 <注意事項> リードモードを終了し , 次のリードモードまで 35 µs あけないと , データが変わらないこ とがあります。 400 第 21 章 フラッシュメモリ この章では , フラッシュメモリの概要 , レジスタの 構成 / 機能およびフラッシュメモリの動作について 説明します。 21.1 フラッシュメモリの概要 21.2 フラッシュメモリのレジスタ 21.3 フラッシュメモリの動作 21.4 フラッシュメモリ自動アルゴリズム 21.5 自動アルゴリズム実行状態の確認 21.6 フラッシュメモリ書込み / 消去 401 第 21 章 フラッシュメモリ 21.1 フラッシュメモリの概要 MB91FV150/MB91F155A は 510K バイト (4Mbit) の容量で , 3V 単一電源による全セ クタ一括消去およびセクタ単位での消去と FR-CPU によるハーフワード (16 ビット ) 単位での書込みが可能なフラッシュメモリを内蔵しています。 ■ フラッシュメモリの概要 本フラッシュメモリは , 内蔵の 3V 動作フラッシュメモリです。このフラッシュメモリ は , 当社製 2M ビット (512K バイト× 8/256K バイト× 16) フラッシュメモリ MBM29LV400C と ( 一部セクタ構成を除いて ) 同じものであり , ROM ライタによるデ バイス外部からの書込みも可能です。 また , MBM29LV400C 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合には , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速動作を 実現できます。 本書と併せて MBM29LV400C データシートも参照してください。 MB91FV150/MB91F155A では , フラッシュメモリマクロと FR-CPU インタフェース回 路の組合せにより , 以下の機能を実現します。 • CPU のプログラム / データ格納用メモリとして機能 - ROM として使用する際は 32 ビットバス幅でアクセス可能 - CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能 • 単体フラッシュメモリ製品の MBM29LV400C 相当の機能 - ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能 ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。 ROM ライタから本フラッシュメモリを使用する場合の詳細につきましては , 別途 ROM ライタの取扱説明書を参照してください。 *: 自動プログラムアルゴリズム = Embedded AlgorithmTM Embedded AlgorithmTM は , Advanced Micro Devices 社の商標です。 402 第 21 章 フラッシュメモリ ■ フラッシュメモリのブロックダイヤグラム 図 21.1-1 に , フラッシュメモリのブロックダイヤグラムを示します。 図 21.1-1 フラッシュメモリのブロックダイヤグラム RDY/BUSY 立上りエッジ検出 RESET BYTE OE 制御信号生成 フラッシュメモリ WE CE INTE RDYINT RDY WE バス制御信号 割込み要求 FA18-0 アドレスバッファ DI15-0 DO31-0 データバッファ CA18-0 CD31-0 FR-Cバス(命令/データ) ■ フラッシュメモリのメモリマップ フラッシュメモリのアドレスマッピングはフラッシュメモリモードと CPU モードでは 異なります。以下に各モードでのマッピングを示します。 ● MB91FV150/MB91F155A のフラッシュメモリモードでのメモリマップ 図 21.1-2 に , MB91FV150/MB91F155A のフラッシュメモリモードでのメモリマップを 示します。 図 21.1-2 MB91FV150/MB91F155A のフラッシュメモリモードでのメモリマップ 0FFFFFH SA13 SA12 FLASH メモリ SA11 SA10 イメージ SA9 SA8 SA7 07FFFFH SA6 SA5 SA4 SA3 010000H SA2 SA1 SA0 000000H (SAn:sector address n) フラッシュメモリモード 403 第 21 章 フラッシュメモリ ● MB91FV150/MB91F155A の CPU モードでのメモリマップ 図 21.1-3 に , MB91FV150/MB91F155A の CPU モードでのメモリマップを示します。 図 21.1-3 MB91FV150/MB91F155A の CPU モードでのメモリマップ 0FFFFFH 0FFFFFH SA6 SA13 SA5 SA12 SA4 SA11 SA3 SA10 SA2 SA9 SA1 SA8 SA0 SA7 0F8000H 0F4000H FLASHメモリ領域 0F0000H 0E0000H 080800H RAM領域 2KByte 0C0000H 080000H 0A0000H 0007C0H ステータスレジスタ 080800H 000000H 080000H (SAn:sector address n) CPUモード ■ セクタアドレス表 表 21.1-1 に , フラッシュメモリのセクタアドレスを示します。 表 21.1-1 フラッシュメモリのセクタアドレス表 セクタアドレス 404 アドレス範囲 対応ビット位置 セクタ容量 SA7 080802, 3H ∼ 09FFFE, FH (LSB 側 16bit) bit15 ∼ bit0 64K バイト SA8 0A0002, 3H ∼ 0BFFFE, FH (LSB 側 16bit) bit15 ∼ bit0 64K バイト SA9 0C0002, 3H ∼ 0DFFFE, FH (LSB 側 16bit) bit15 ∼ bit0 64K バイト SA10 0E0002, 3H ∼ 0EFFFE, FH (LSB 側 16bit) bit15 ∼ bit0 32K バイト SA11 0F0002, 3H ∼ 0F3FFE, FH (LSB 側 16bit) bit15 ∼ bit0 8K バイト SA12 0F4002, 3H ∼ 0F7FFE, FH (LSB 側 16bit) bit15 ∼ bit0 8K バイト SA13 0F8002, 3H ∼ 0FFFFE, FH (LSB 側 16bit) bit15 ∼ bit0 16K バイト SA0 080800, 1H ∼ 09FFFC, DH (MSB 側 16bit) bit31 ∼ bit16 64K バイト SA1 0A0000, 1H ∼ 0BFFFC, DH (MSB 側 16bit) bit31 ∼ bit16 64K バイト SA2 0C0000, 1H ∼ 0DFFFC, DH (MSB 側 16bit) bit31 ∼ bit16 64K バイト SA3 0E0000, 1H ∼ 0EFFFC, DH (MSB 側 16bit) bit31 ∼ bit16 32K バイト SA4 0F0000, 1H ∼ 0F3FFC, DH (MSB 側 16bit) bit31 ∼ bit16 8K バイト SA5 0F4000, 1H ∼ 0F7FFC, DH (MSB 側 16bit) bit31 ∼ bit16 8K バイト SA6 0F8000, 1H ∼ 0FFFFC, DH (MSB 側 16bit) bit31 ∼ bit16 16K バイト 第 21 章 フラッシュメモリ 21.2 フラッシュメモリのレジスタ フラッシュメモリにはステータスレジスタ (FLCR) とウェイトレジスタ (FWTC) の 2 つのレジスタがあります。 ■ FLCR: ステータスレジスタ (CPU モード ) フラッシュメモリの動作状態を示すレジスタです。CPU に対する割込みの制御や , フ ラッシュメモリへの書込み制御を行います。 CPU モードでのみアクセスすることが可能です。本レジスタは , リードモディファイ ライト系命令ではアクセスしないでください。 ステータスレジスタ (CPU モード ) のレジスタ構成は以下のとおりです。 0007C0 H bit7 bit6 bit5 bit4 bit3 bit2 bit1 INTE RDYINT WE RDY - - - LPM R/W (0) R/W (0) R/W (0) R (X) - (X) - (X) - (X) R/W (0) bit0 [bit 7] INTE (INTerrupt Enable): フラッシュメモリの自動アルゴリズム ( 書込み / 消去など ) の終了による割込み発生を 制御します。 0 自動アルゴリズム終了割込み出力禁止 1 自動アルゴリズム終了割込み出力許可 • リセット時 :"0" に初期化されます。 • 読出し / 書込み可能です。 [bit 6] RDYINT (ReaDY INTerrupt): フラッシュメモリの自動アルゴリズム(書込み/消去など)の終了により"1"になります。 bit7:INTE="1" により割込み発生が許可されているときに , 本ビットが "1" になると , 自 動アルゴリズム終了割込み要求が発生します。 0 自動アルゴリズムの終了は検出していません 1 自動アルゴリズムの終了を検出しました • リセット時 :"0" に初期化されます。 • 読出し / 書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込んでもビッ ト値は変化しません。 ( 注意事項 ) 割込み要因は 16bit フリーランタイマと共有しています。 割込み番号 割込み要因 16 ビットフリーランタイマ / フラッシュ 10 進 16 進 62 3E 割込み レベル オフセット TBR デフォルト のアドレス ICR46 304H 000FFF04H 405 第 21 章 フラッシュメモリ [bit 5] WE (Write Enable): CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込みを制御しま す。 本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはすべて 無効になります。 また , フラッシュメモリからのデータ読出しが倍速化します (32bit アクセスを行います )。 本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有効と なり , 自動アルゴリズムの起動が可能となります。ただし , フラッシュメモリからの データ読出しは低速になります (16bit アクセスを行います )。 本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が停 止していることを確認してから行ってください。RDY ビットが "0" の間は , 本ビット の値を書き換えることができません。 フラッシュメモリモードにおいては,本ビットの状態にかかわらず書込み動作が有効と なります。 0 フラッシュメモリへの書込み禁止および読出しの倍速化 1 フラッシュメモリへの書込み許可および読出しの低速化 • リセット時 :"0" に初期化されます。 • 読出し / 書込み可能です。 [bit 4] RDY (ReaDY): 自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。 本ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われており , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッシュメ モリアドレスからのデータ読出しはできません。 読み出したデータはフラッシュメモリのステータスを示します。 0 書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受付はで きません 1 データの読出しおよび書込み / 消去コマンドの受付が可能です。 • リセット時 : 初期化されません ( その時点でのフラッシュメモリの状態に従います )。 • 読出しのみ可能です。書込みは本ビット値に影響を与えません。 [bit 3, bit 2, bit 1] 予約ビット 書込み時は必ず "0" を書いてください。 406 第 21 章 フラッシュメモリ [bit 0] LPM (Low Power Mode): 低速動作時にフラッシュアクセス以外の消費電力を低減させる機能を許可するビット です。 本ビットに "1" を書き込むと , アドレス変化によるフラッシュメモリ回路の駆動を抑止 します。 本ビット機能は CPU 動作周波数が 10MHz 以下の場合にのみ使用してください。 0 通常状態です。 CE 出力はアクセスの有無にかかわらず "L" となります。[ 初期値 ] 1 CE 出力はフラッシュメモリアクセス時のみ "L" になります。 • リセット時 :"0" に初期化されます。 • 読出し / 書込み可能です。 ■ FWTC: ウェイトレジスタ CPU モードにおいて , フラッシュメモリのウェイト制御を行うレジスタです。 また , フラッシュメモリの高速読出し (33MHz 動作 ) アクセスを行うための制御をしま す。 ウェイトレジスタのレジスタ構成は以下のとおりです。 0007C4 H bit7 bit6 bit5 bit4 bit3 bit2 bit1 - - - - - FACH WTC1 WTC0 - (-) - (-) - (-) - (-) - (-) W (0) R/W (0) R/W (0) bit0 [bit 1, bit 0] WTC1, WTC0: フラッシュメモリのウェイト制御をします。 00 +0 ウェイト , 2 サイクル [ 初期値 ] 01 使用できません 10 使用できません 11 使用できません [bit 2] FACH: フラッシュマクロの読出し速度の制御をします。 0 通常読出し 1 高速読出し (33MHz 動作時に使用 ) 407 第 21 章 フラッシュメモリ 21.3 フラッシュメモリの動作 FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。 • ROM モード ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできま せん。 • プログラミングモード ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長での書込みが可能になります。 ■ FR-CPU ROM モード (32 ビット , 読出しのみ ) FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括読 出しが可能となりますが , フラッシュへ書込み , 自動アルゴリズムの起動はできません。 ● モードの指定方法 • フラッシュメモリステータスレジスタの WE ビットが "0" のとき , 本モードとなり ます。 • CPU 動作時でのリセット解除後は常に本モードになります。 • CPU 動作時以外では本モードにすることができません。 ● 動作内容 • フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で 読み出します。 • 読出しにかかるサイクル数は 2 サイクル /1 ワード (1 ウェイト ) です。これにより FR-CPU に対し , ウェイトなしで命令を供給できます。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。 • 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。 ■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み ) データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア クセスは不可能ですので,本モードで動作している間はフラッシュメモリ上のプログラ ムは実行が不可能となります。 ● モードの指定方法 • フラッシュメモリステータスレジスタの WE ビットが "1" のとき本モードとなりま す。 • CPU 動作時でのリセット解除後は WE ビットが "0" になっています。本モードにす るためには "1" を書き込んでください。再度 "0" を書き込むかまたはリセットの発 生により WE ビットが "0" になると ROM モードに戻ります。 • フラッシュメモリステータスレジスタの RDY ビットが "0" の期間は WE ビットを書 き換えることができません。RDY ビットが "1" になったことを確認してから WE ビットを書き換えてください。 408 第 21 章 フラッシュメモリ ● 動作内容 • フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長データを 一括で読み出します。 読出しにかかるサイクル数は 2 サイクル / ハーフワード (1 ウェ イト ) です。 • フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動できます。 自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可能となりま す。自動アルゴリズムの詳細については , 自動アルゴリズムの項を参照してくださ い。 ● 制限事項 • ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。 • 本モードではワード (32 ビット ) 長でデータを読み出すことを禁止します。 ■ 自動アルゴリズム実行状態 CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レディ / ビジー信号 (RDY/BUSYX) により自動実行アルゴリズムの動作状態を知ることができ ます。このレディ / ビジー信号のレベルはフラッシュメモリステータスレジスタの "RDY" ビットとして読むことができます。 "RDY" ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお り , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッ シュメモリアドレスからのデータ読出しはできません。 "RDY" ビットが "0" の期間に読み出したデータは , フラッシュメモリのステータスを示 すハードウェアシーケンスフラグとなっています。 ■ 割込み制御 自動アルゴリズムのシーケンス終了により , CPU に対し割込み要求を発生することが できます。 これにより,長時間にわたる自動アルゴリズムシーケンスの終了を即座に知ることが可 能です。 自動アルゴリズム終了割込みは , フラッシュメモリステータスレジスタの "RDYINT" ビットと "INTE" ビットにより制御されます。 "RDYINT" ビットは自動アルゴリズム終了割込みフラグです。内部レディ / ビジー信号 が "1" のとき , "RDYINT" ビットがセットされると , CPU に対して割込み要求が出力さ れます。 割込み要求をキャンセルするには , "RDYINT" ビットまたは "INTE" ビットに "0" を書 き込んでください。 なお , 本品種では割込みの要因を 16 ビットフリーランタイマと共有しています。 割込み番号 割込み要因 16 ビット フリーランタイマ / フラッシュ 10 進 16 進 62 3E 割込み レベル オフセット TBR デフォルトの アドレス ICR46 304H 000FFF04H 409 第 21 章 フラッシュメモリ 21.4 フラッシュメモリ自動アルゴリズム フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込み , チップ消去 , セクタ消去の 4 種類があります。 ■ コマンドシーケンス 自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード (16 ビット ) データの連続書込みを実行します。これをコマンドと呼びます。 不正なアドレスとデータを書き込んだり,誤った順番でアドレスとデータを書き込んだ りすると , フラッシュメモリはリードモードにリセットされます。 表 21.4-1 にフラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示します ( アドレスは CPU から見たアドレス )。 表 21.4-1 コマンドシーケンス一覧 コマンド シー ケンス 読出し / リセット 読出し / リセット 書込み チップ 消去 セクタ 消去 Auto Select 連続モード 連続 書込み 連続 モード リセット バス ライト サイ クル 1st バス ライト サイクル 2nd バス ライト サイクル 3rd バス ライト サイクル 4th バス リード / ライト サイクル 5th バス ライト サイクル 6th バス ライト サイクル アド レス データ アド レス データ アド レス データ アド レス データ アド レス データ アド レス データ 1 XXXXXH F0H − − − − − − − − − − 4 D5555H AAH CAAABH 55H D5555H F0H (RA) (RD) − − − − 4 D5555H AAH CAAABH 55H D5555H A0H (PA) (PD) − − − − 6 D5555H AAH CAAABH 55H D5555H 80H D5555H AAH CAAABH 55H D5555H 10H 6 D5555H AAH CAAABH 55H D5555H 80H D5555H AAH CAAABH 55H (SA) 30H 3 D5555H AAH CAAABH 55H D5555H 90H − − − − − − 3 D5555H AAH CAAABH 55H D5555H 20H − − − − − − (PA) (PD) − − − − − − − − XXXXXH F0H or 00H − − − − − − − − 2 XXXXXH A0H 2 XXXXXH 90H ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータ は任意です。 アドレス , データはすべて 16 進数で表記しています。 (RA): 読出しアドレス (PA): 書込みアドレス (SA): セクタアドレス ( セクタ内の任意の 1 アドレスを指定 ) (RD): 読出しデータ (PD): 書込みデータ 2 種類のリセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットで きます。 410 第 21 章 フラッシュメモリ ● リード ( 読出し )/ リセットコマンド フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入 時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ ンドは必要ありません。 タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー タを読み出します。 ● プログラム ( 書込み ) CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書 込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし て最後の書込みサイクルでメモリへの書込みが開始されます。 自動書込みアルゴリズムコマンドシーケンス実行後は,フラッシュメモリはそれ以上の 外部よりの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切 な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作 は , データポーリング機能により , ビット 7 のデータがこのビットに書き込んだデータ に一致したとき終了し ( ■ハードウェアシーケンスフラグを参照してください ), この ときをもって読出しモードに戻り , これ以上書込みアドレスは受け付けなくなります。 この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求します。このように データポーリングは , メモリが書込み中であることを示します。 書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。もし 書込み中にハードウェアリセットが起動されると書き込んでいるアドレスのデータは 保証されません。 書込みはどのようなアドレスの順番でも , またセクタの境界を超えても可能です。書込 みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムにより , 素子が不良と判定されるか , ま たは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし , リ セット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" データにすることができます。 ● チップ消去 チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に 2 つの " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。 チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。 チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。自動消去アルゴリズム実行中にはフラッシュメモリは自動的にすべてのセルを消 去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に は , フラッシュメモリは外部からの制御は必要としません。 自動消去はコマンドシーケンス中の書込みで開始され , ビット 7 が "1" になったときに 終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セ クタ消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。 411 第 21 章 フラッシュメモリ ● セクタ消去 セクタ消去は , 6 回のアクセスで行われます。 2 つの " アンロック " サイクルがあり , 引 き続き " セットアップ " コマンドを書き込み , その後さらに 2 つの " アンロック " サイ クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始 まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次の セクタ消去コマンドの受け付けが可能です。 複数のセクタ消去は前述したような 6 つのバスサイクルを書き込むことで同時に受け 付け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消 去コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書 込みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。つまり , 複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内に入力 する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く セクタ消去コマンドが有効かどうかはビット 3 にてモニタ可能です (「21.5 自動アル ゴリズム実行状態の確認」の■ハードウェアシーケンスフラグを参照してください )。 タイムアウト中のセクタ消去コマンドまたは消去一時停止以外のいかなるコマンドも 読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そのセ クタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタア ドレス入力は , セクタのどのような組合せや数 (0 から 6) からでも実行可能です。 セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い ます ( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響 も受けません。これらの動作中のフラッシュメモリは外部からの制御は必要としませ ん。 自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間 の後に開始され , ビット 7 のデータが "1" になったとき終了し , フラッシュメモリは読 出しモードに戻ります。ほかのコマンドは無視されます。データポーリングは消去さ れたセクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セクタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。 412 第 21 章 フラッシュメモリ 21.5 自動アルゴリズム実行状態の確認 フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵 フラッシュメモリの動作状態の確認ができます。 ■ レディ / ビジー信号 (RDY/BUSYX) フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と して , ハードウェアシーケンスフラグの他に , レディ / ビジー信号を持っています。こ のレディ/ ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッシュ メモリステータスレジスタの "RDY" ビットとして読み出すことが可能です。また , こ のレディ/ ビジー信号の立上りにより , CPU に対して割込み要求を発生することも可能 です。 "RDY" ビットの読出し値が "0" のとき , フラッシュメモリは書込み , または消去動作中 です。このときは書込みコマンドも消去コマンドも受け付けません。"RDY" ビットの 読出し値が "1" のときフラッシュメモリは読出し / 書込みまたは消去動作待ちの状態で す。 ■ ハードウェアシーケンスフラグ 8 15 ハーフワード読出し時 0 7 (不定) ハードウェアシーケンスフラグ 7 バイト読出し時(奇数アドレスのみ) 0 ハードウェアシーケンスフラグ <注意事項> ワード読出しは禁止です。FR-CPU プログラミングモードのみ使用してください。 ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意 のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして得 られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの状 態を示します。 bit (ハーフワード, バイトアクセス時) 7 DPOLL 6 5 4 3 TLOVER (不定) SETIMR 2 1 0 (不定) (不定) なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ い。 413 第 21 章 フラッシュメモリ 表 21.5-1 に , ハードウェアシーケンスフラグの状態一覧を示します。 表 21.5-1 ハードウェアシーケンスフラグ状態一覧 状態 自動書込み動作 DPOLL TLOVER SETIMR 反転データ 0 0 0 0 1 反転データ 1 0 0 1 1 実行中 自動消去動作 タイムリミット 超過 自動書込み動作 自動消去動作 表中の各ビットは , 以下を示します。 [bit 7] DPOLL : データポーリング [bit 5] TLOVER: タイムリミット超過 [bit 3] SETIMR : セクタ消去タイマ それぞれについて , 以下に説明します。 [bit 7] DPOLL: データポーリングフラグ データポーリングフラグは,自動アルゴリズム実行が進行中もしくは終了状態であるこ とをデータポーリング機能によって知らせるためのフラグです。 ● 書込み動作時 自動書込みアルゴリズム実行中にリードアクセスすると,フラッシュメモリはアドレス の指し示す番地によらず , 最後に書き込まれたデータのビット 7 の反転データを出力し ます。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア ドレスの指し示す番地の読出し値のビット 7 を出力します。 ● チップ / セクタ消去動作時 チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。 <注意事項> 自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ の読出しは , データポーリングフラグの終了を受けてほかのビットの出力が可能となりま す。このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認 したリードアクセスの次に行うようにしてください。 [bit 5] TLOVER: タイミングリミット超過フラグ タイミングリミット超過フラグは,自動アルゴリズムの実行がフラッシュメモリ内部に 規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラグです。 414 第 21 章 フラッシュメモリ ● 書込み / チップ • セクタ消去時 書込みまたはチップ • セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規 定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい る場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか無 関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち , こ のフラグが "1" を出力したとき , データポーリング機能により自動アルゴリズムがまだ 実行中であれば , 書込みが失敗していると判断できます。 例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする とフェイルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズム は終了しません。したがって , データポーリングフラグから有効なデータが出力されま せん。この状態はフラッシュメモリが不良ではなく , 正しく使用されなかったというこ とを表しています。この状態が発生したときは,リセットコマンドを実行してください。 [bit 3] SETIMR: セクタ消去タイマフラグ セクタ消去タイマフラグは,セクタ消去コマンド起動後セクタ消去ウェイト期間中であ るか否かを知らせるフラグです。 ● セクタ消去動作時 セクタ消去コマンド起動後にリードアクセスすると,フラッシュメモリはコマンドを発 行したセクタのアドレス信号の指し示す番地によらず,セクタ消去ウェイト期間中であ れば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力します。 データポーリング機能により消去アルゴリズムが実行中を示している場合,このフラグ が "1" であれば内部で制御される消去が始まっています。続けてのセクタ消去コード のライト以外のコマンドは , 消去が終了されるまで無視されます。 このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードのライトを受 け付けます。このことを確認するために , 引き続くセクタ消去コードのライトに先立ち このフラグの状態をチェックすることを推奨します。もし 2 回目の状態チェックで "1" であったなら追加セクタの消去コードは受け付けられてない可能性があります。 ● セクタ消去動作時 セクタ消去一時停止中にリードアクセスすると,フラッシュメモリはアドレスの指し示 す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さな いのであれば , アドレスの指し示す番地の読出し値のビット 3 (DATA:3) を出力します。 415 第 21 章 フラッシュメモリ 21.6 フラッシュメモリ書込み / 消去 ここでは , 自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出 し / リセット , 書込み , チップ消去 , セクタ消去のそれぞれの動作を行う手順を説明 します。 ■ フラッシュメモリ書込み / 消去の概要 フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去の動作がコマ ンドシーケンスのバスへのライトサイクルを行うことで自動アルゴリズムを実行する ことが可能です。それぞれのバスへのライトサイクルは必ず続けて行う必要がありま す。また , 自動アルゴリズムはデータ・ポーリング機能等で終了時を知ることができま す。正常終了後は読出し / リセット状態に戻ります。 416 第 21 章 フラッシュメモリ 21.6.1 読出し / リセット状態にする ここでは , 読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセッ ト状態にする手順について説明します。 ■ 読出し / リセット状態にする フラッシュメモリを読出し / リセット状態にするには 「 , 表 21.4-1 コマンドシーケンス 一覧」の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送る ことで実行可能です。 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー ケンスがありますが , これらの本質的な違いはありません。 読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの 正常終了時は常に読出し / リセット状態になります。読出し / リセット状態は他のコマ ンドの入力待ち状態です。 読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。 417 第 21 章 フラッシュメモリ 21.6.2 データ書込みを行う ここでは , 書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順に ついて説明します。 ■ データ書込みを行う フラッシュメモリのデータ書込み自動アルゴリズムを起動するには ,「表 21.4-1 コマ ンドシーケンス一覧」の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて 送ることで実行可能です。4 サイクル目に目的のアドレスへのデータ書込みが終了した 時点で , 自動アルゴリズムが起動され自動書込みが開始します。 ■ アドレス指定方法 書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ スへのハーフワードデータ単位での書込みが必要となります。 書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが , 1 回の書込みコマンドによって書き込まれるデータは 1 ハーフワードのみです。 ■ データ書込み上の注意 書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー タ "1" を書き込むと , データポーリングアルゴリズムまたはトグル動作が終了せず , フ ラッシュメモリ素子が不良と判定され,書込み規定時間を超えタイミングリミット超過 フラグがエラーと判定するか , または見かけ上データ "1" が書き込まれたように見える かのどちらかとなります。しかし , 読出し / リセット状態でデータを読み出すとデータ は "0" のままです。消去動作のみが "0" データを "1" にすることができます。自動書込 み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリセットが起 動されると , 書き込んでいるアドレスのデータは保証されませんので注意が必要です。 ■ フラッシュメモリ書込み手順 図 21.6-1 に , フラッシュメモリ書込みの手順の例を示します。ハードウェアシーケン スフラグを用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能 です。ここでは,書込み終了の確認にデータポーリングフラグ(DPOLL)を用いています。 フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込 みとなります。 データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同 時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても データポーリングフラグビット (DPOLL) は再チェックする必要があります。 418 第 21 章 フラッシュメモリ 図 21.6-1 フラッシュメモリ書込み手順の例 書込み開始 FLCR:WE(bit5) フラッシュメモリ書込み許可 書込みコマンドシーケンス D5555H ← AAH CAAABH ← 55H D5555H ← A0H 書込みアドレス ← 書込みデータ 内部アドレスリード データボーリング (DPOLL) 次アドレス Data Data 0 タイミングリミット (TLOVER) 1 内部アドレスリード Data データボーリング (DPOLL) Data 書込みエラー 最終アドレス NO YES FLCR:WE(bit5) フラッシュメモリ書込み禁止 ハードウェアシーケンス・フラグ による確認 書込み完了 419 第 21 章 フラッシュメモリ 21.6.3 データ消去を行う データを消去するには , チップ全体のデータを消去するチップ消去と , セクタ単位で 消去するセクタ消去があります。 ■ データ消去を行う ( チップ消去 ) フラッシュメモリからすべてのデータを消去するには ,「表 21.4-1 コマンドシーケン ス一覧」のチップ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ること で実行可能です。 チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目の書込みが完了した 時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。 ■ データ消去を行う ( セクタ消去 ) セクタ消去では , セクタごとの消去が可能であり , 複数のセクタを同時に指定すること も可能です。 フラッシュメモリの任意のセクタを消去するためには ,「表 21.4-1 コマンドシーケン ス一覧」のセクタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ること で実行可能です。 ● セクタ指定方法 セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに より 50 µs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上記 の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)を書き込みま す。 ● 複数のセクタを指定する場合の注意 最後のセクタ消去コードの書込みから50 µsのセクタ消去ウェイト期間終了により消去 が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入力す る必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去 コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェアシーケンスフラグ SETIMR) によって調べることができます。なおこのとき , セクタ消去タイマをリード するアドレスは , 消去しようとしているセクタを指すようにします。 ● セクタ消去手順 ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ ズムの状態判定が可能です。図 21.6-2 に , フラッシュメモリセクタ消去の手順の例を 示します。 フラグチェックのために読み込むデータは,消去しようとしているセクタからの読込み となりますので , 注意が必要です。 データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同 時に変わるので , データポーリングフラグ (DPOLL) を再チェックする必要があります。 420 第 21 章 フラッシュメモリ 図 21.6-2 フラッシュメモリセクタ消去手順の例 消去開始 FLCR:WE(bit5) フラッシュメモリ消去許可 セクタ消去タイマ (SETIMR) 0 1 消去コマンドシーケンス D5555H ← AAH CAAABH ← 55H D5555H ← 80H D5555H ← AAH CAAABH ← 55H 消去セクタへコード入力(30H) YES 消去セクタが 他にあるか NO 内部アドレスリード 内部アドレスリード データポーリング (DPOLL) 次セクタ 1 0 0 ハードウェアシーケンス・フラグ による確認 タイミングリミット (TLOVER) 1 内部アドレスリード 0 データポーリング (DPOLL) 1 消去エラー 最終セクタ NO YES FLCR:WE(bit5) フラッシュメモリ消去禁止 消去完了 421 第 21 章 フラッシュメモリ 422 第 22 章 FR MB91F155A シリアル書込み接続 この章では , 株式会社横河ディジタルコンピュータ 製 AF220/AF210/AD120/AF110 フラッシュマイコ ンプログラマを用いた場合の , シリアル書込み接続 例について説明します。 22.1 基本構成 22.2 フラッシュマイコンプログラマとの接続例 423 第 22 章 FR MB91F155A シリアル書込み接続 22.1 基本構成 MB91F155A ではフラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ ポートしています。その仕様について以下に説明します。 ■ MB91F155A シリアルオンボード書込み基本構成 富士通標準シリアルオンボード書込みには , 株式会社横河ディジタルコンピュータ製 AF220/AF210/AD120/AF110 フラッシュマイコンプログラマを使用します。 フラッシュ品のシリアル書込みモードには , シングルチップモードと内 ROM 外バス モードのオプションを選択することができます。 図 22.1-1 に , MB91F155A シリアル書込み接続の基本構成について示します。 図 22.1-1 シリアル書込み接続例の基本構成 ホストインタフェースケーブル 汎用共通ケーブル(AZ210) RS232C AF220/AF210 /AD120/AF110 フラッシュマイ CLK同期シリアル コンプログラマ + メモリカード MB91F155A ユーザシステム スタンドアロンで動作可能 • AF210 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケー ブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータにお問い合わ せください。 ■ 富士通標準シリアルオンボード書込みに使用する端子 端子 MD2, MD1, MD0 機能 モード端子 PG3, PG4, 書込みプログラム起動端子 PG5 RST リセット端子 SIN1 シリアルデータ入力端子 SOT1 シリアルデータ出力端子 SCK1 シリアルクロック入力端子 424 補足説明 書込みモードに制御します。 ・フラッシュ シリアル書込みモード :MD2, MD1, MD0=1, 1, 0 ・参考 : シングルチップモード :MD2, MD1, MD0=0, 1, 1 フラッシュ シリアル書換え時の端子設定 PG5=1, PG4=0, PG3=1 - UART の ch.1 のリソースをクロック同期モードとして使用 します。 VCC 電源電圧供給端子 電源電圧 (3.15V ∼ 3.6V) をユーザシステムから供給してく ださい。 VSS GND 端子 フラッシュマイコンプログラマの GND と共通にします。 第 22 章 FR MB91F155A シリアル書込み接続 1. PG3, PG4, PG5, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 22.1-2 の制御回路が必要となります。 ( フラッシュマイコンプログラマの /TICS 信 号により , シリアル書込み中はユーザ回路を切り離すことができます。) 2. AF200 との接続はユーザ電源が OFF の状態で行ってください。 図 22.1-2 端子制御回路 AF220/AF210 /AD120/AF110 書き込み制御端子 MB91F155A 書き込み制御端子 10kΩ AF220/AF210 /AF120/AF110 /TICS端子 ユーザ ■ シリアル書込み接続例 シリアル書込み接続例を示しますので参照してください。 • 内部ベクタモード ( シングルチップモード ): 標準接続構成例 • 内部ベクタモード ( シングルチップモード ):AF200 との最小接続構成例 ■ AF200 フラッシュマイコンプログラマ システム構成 ( 株式会社ワイ・ディ・シー製 ) 型格 本 体 機能 AF220/AC4P イーサネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF210/AC4P スタンダードモデル /100V ∼ 220V 電源アダプタ AD120/AC4P 単キーイーサネットインタフェースモデル /100V ∼ 220V 電源アダプタ AF110/AC4P 単キーモデル /100V ∼ 220V 電源アダプタ AZ221 ライタ専用 PC-AT 用 RS232C ケーブル AZ210 標準ターゲットプローブ (a) 長さ :1m FF205 富士通製 FR ファミリ フラッシュマイコン用コントロールモジュール AZ290 リモートコントローラ /P2 2M バイト PC Card (Option) フラッシュメモリ容量 128K バイトまで /P4 4M バイト PC Card (Option) フラッシュメモリ容量 512K バイトまで /P8 8M バイト PC Card (Option) フラッシュメモリ容量 1M バイトまで 問い合せ先 : 株式会社横河ディジタルコンピュータ 機器事業部 電話 :042-333-6224 ■ 原発振クロック周波数について フラッシュメモリ書込み時に使用可能な原発振クロックは 2MHz から 16.5MHz となっ ております。 ■ その他の注意事項 シリアルライタを用いてフラッシュメモリ書込み時のポート状態は,書込みに使用して いる端子を除きリセット状態と同じです。 425 第 22 章 FR MB91F155A シリアル書込み接続 22.2 フラッシュマイコンプログラマとの接続例 マイコンの電源電圧をユーザ電源より供給する場合のシリアル書込み接続例を示し ます。モード端子 MD2, MD0 には AF200 の TAUX3, TMODE より MD2=1, MD0=0 が入力されます。 フラッシュシリアル書換えモードは MD2, MD1, MD=1, 1, 0 です。 ■ 内部ベクタモード ( シングルチップモード ): 標準接続例 図 22.2-1 MB91F155A シリアル書込み接続例 AF200 フラッシュマイコ ンプログラマ TAUX3 TMODE ユーザシステム コネクタ DX10-28S (19) (12) MB91F155A シリアル 書換え時 1 MD2 52 シリアル書換え時 1 MD1 53 MD0 54 PG5 96 PG4 95 シリアル書換え時 0 シリアル書換え時 1 ユーザ 回路 10k TAUX (23) WDT (18) TICS (10) シリアル書換え時 0 シリアル書換え時1 10k PG3 94 RST 55 ユーザ回路 TRES (5) TTXD TRXD TCK (13) (27) (6) TVcc (2) GND (14, 15, 1,28) ▼ SIN1 110 SOT1 109 SCK1 108 Vcc (27,56,68,77, 97,122,140) Vss (9,26,44,59, 98,101,144) ユーザ電源(3.3V) 14ピン 1ピン DX10-28S 3,4,9,11,16,17,18, 20,24,25,26ピン はOPEN 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 DX10-28S :ライトアングルタイプ 426 第 22 章 FR MB91F155A シリアル書込み接続 ■ 内部ベクタモード ( シングルチップモード ):AF200 との最小接続例 マイコンの電源電圧をユーザ電源より供給する場合の最小限の接続例を示します。 フラッシュシリアル書き換えモードは MD2, MD1, MD0=1, 1, 0 です。 図 22.2-2 MB91F155A シリアル書込み接続例 AF200 フラッシュマイコン プログラマ TAUX3 ユーザシステム コネクタDX10-28S MB91F155A シリアル 書換え時 1 MD2 52 MD1 53 MD0 54 PG5 96 PG4 95 PG3 94 RST 55 (19) シリアル 書換え時 1 シリアル 書換え時 0 TMODE (12) シリアル書換え時 1 ユーザ回路 TAUX (23) WDT (18) TICS (10) シリアル書換え時 0 シリアル書換え時1 ユーザ回路 10k TRES TTXD TRXD TCK TVcc GND (5) SIN1 110 SOT1 109 (13) (27) ▼ (6) SCK1 108 (2) (14, 15, 1,28) ユーザ電源(3.3V) 14ピン Vcc (27,56,68,77, 97,122,140) Vss ( 9,26,44,59, 98,101,144) 1ピン DX10-28S 3,4,9,11,16,17,18, 20,24,25,26ピン はOPEN 28ピン 15ピン コネクタ(ヒロセ電機製)のピン配列 DX10-28S :ライトアングルタイプ 427 第 22 章 FR MB91F155A シリアル書込み接続 428 付録 付録には , I/O マップ , 割込みベクタ , 各 CPU ス テートにおける端子状態 , リトルエンディアン領域 を利用する際の注意事項および命令一覧を掲載し ます。 付録 A I/O マップ 付録 B 割込みベクタ 付録 C 各 CPU ステートにおける端子状態 付録 D リトルエンディアン領域を利用する際の注意事項 付録 E 命令一覧 429 付録 付録 A I/O マップ 付図 A-1 に I/O マップの見方 , 付表 A-1 に I/O マップ ( メモリ空間領域と周辺リソー スの各レジスタの対応 ) を示します。 ■ I/O マップの見方 付図 A-1 I/O マップの見方 アドレス 000000 +0 PDR3 [R/W] XXXXXXXX H レジスタ +1 PDR2 [R/W] XXXXXXXX +2 ____ +3 ____ ブロック ポートデータレジスタ リード/ライト 属性 リセット後のレジスタ初期値 レジスタ名(1コラムのレジスタが4n番地、2コラムが4n+2番地・・・) 最左のレジスタ番地(ワードでアクセスした際は、1コラム目のレジスタがデータのMSB側となる。) <注意事項> レジスタのビット値は , 以下のように初期値を表します。 "1" : 初期値 "1" "0" : 初期値 "0" "X" : 初期値 "X" "-" : その位置に物理的にレジスタがない 430 付録 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 [R]/ SODR0 [W] XXXXXXXX SCR0 [R/W,W] 00000100 SMR0 [R/W] 00000-00 UART0 000020 H SSR1 [R/W,R] 00001000 SIDR1 [R]/ SODR1 [W] XXXXXXXX SCR1 [R/W,W] 00000100 SMR1 [R/W] 00000-00 UART1 000024 H SSR2 [R/W,R] 00001000 SIDR2 [R]/ SODR2 [W] XXXXXXXX SCR2 [R/W,W] 00000100 SMR2 [R/W] 00000-00 UART2 000028 H SSR3 [R/W,R] 00001000 SIDR3 [R]/ SODR3 [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 − TMCSR3 [R/W] ----0000 00000000 00002C H 000048 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 431 付録 付表 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] 00000000 000094 H GCN1 [R/W] 00110010 00010000 000098 H PTMR0 [R] 11111111 11111111 00009C H PDUT0 [W] XXXXXXXX XXXXXXXX 0000A0 H PTMR1 [R] 11111111 11111111 0000A4 H PDUT1 [W] XXXXXXXX XXXXXXXX 0000A8 H PTMR2 [R] 11111111 11111111 0000AC H PDUT2 [W] XXXXXXXX XXXXXXXX 432 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 コントロール PCSR0 [W] XXXXXXXX XXXXXXXX PCNH0 [R/W] 0000000- PCNL0 [R/W] 00000000 PCSR1 [W] XXXXXXXX XXXXXXXX PCNH1 [R/W] 0000000- PCNL1 [R/W] 00000000 PCSR2 [W] XXXXXXXX XXXXXXXX PCNH2 [R/W] 0000000- PCNL2 [R/W] 00000000 PPG0 PPG1 PPG2 付録 A I/O マップ 付表 A-1 I/O マップ (3 / 6) アドレス レジスタ +0 +1 0000B0 H PTMR3 [R] 11111111 11111111 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 0000C8 H 0000CC H EIRR0 [R/W] 00000000 0000E0 H 0000E4 H +3 PCSR3 [W] XXXXXXXX XXXXXXXX PCNH3 [R/W] 0000000- PCNL3 [R/W] 00000000 PCSR4 [W] XXXXXXXX XXXXXXXX PCNH4 [R/W] 0000000- PCNL4 [R/W] 00000000 PCSR5 [W] XXXXXXXX XXXXXXXX ENIR0 [R/W] 00000000 ELVR0 [R/W] 00000000 00000000 0000D0 H | 0000D8 H 0000DC H +2 PCNH5 [R/W] 0000000- PCNL5 [R/W] 00000000 EIRR1 [R/W] 00000000 ENIR1 [R/W] 00000000 ELVR1 [R/W] 00000000 00000000 PPG4 PPG5 外部割込み − 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 アナログ 入力制御 ADCR [R,W] 00101-XX XXXXXXXX − 0000EC H | 0000F0 H PCRH [R/W] --000000 PCRI [R/W] --000000 PCRD [R/W] 00000000 0000F8 H OCRH [R/W] --000000 OCRI [R/W] --000000 PCRC [R/W] 00000000 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 − プルアップ 制御 オープン ドレイン制御 − − D/A コンバータ Reserved − 0000F4 H 000108 H | 00011C H PPG3 Reserved − 0000E8 H 000104 H ブロック データ方向 レジスタ Reserved 433 付録 付表 A-1 I/O マップ (4 / 6) アドレス レジスタ +0 +1 +2 +3 000120 H IBCR [R/W] 00000000 IBSR [R] 00000000 IADR [R/W] -XXXXXXX ICCR [R/W] --0XXXXX 000124 H − IDAR [R/W] XXXXXXXX − 000128 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 − DMAC Reserved CAC [R/W] 00000000 CA1 [R/W] --XXXXXX CA2 [R/W] --XXXXXX CA3 [R/W] ---XXXXX 000214 H CA4 [R/W] ---XXXXX CA5 [R/W] -----XXX CA6 [R/W] ----XXXX CA7 [R/W] -XXXXXXX CAS [R/W] 0------0 − 000220 H | 0003EC H − 0003F0 H BSD0 [W] XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX 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 カレンダー Reserved 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 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 434 カレンダー Reserved − 00021C H I2C インタ フェース Reserved 000210 H 000218 H ブロック ビットサーチ モジュール 割込み制御部 付録 A I/O マップ 付表 A-1 I/O マップ (5 / 6) アドレス レジスタ +0 +1 +2 +3 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 − RSRR/WTCR [R,W] 1-XXX-00 STCR [R/W,W] 000111-- 000484 H GCR [R/W,R] 110011-1 WPR [W] XXXXXXXX 割込み制御部 遅延 Reserved − 000480 H ブロック PDRR [R/W] ----0000 CTBR [W] XXXXXXXX クロック 制御部 − 000488 H PCTR [R/W] 00XX0XXX − 00048C H | 0005FC H − Reserved 000600 H DDR3 [W] 00000000 DDR2 [W] 00000000 − − 000604 H − DDR6 [W] 00000000 DDR5 [W] 00000000 DDR4 [W] 00000000 000608 H 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 00061C H ASR5 [W] 00000000 00000101 AMR5 [W] 00000000 00000000 000620 H AMD0 [R/W] ---00111 AMD1 [R/W] 0--00000 データ方向 レジスタ AMD32 [R/W] 00000000 T-unit AMD4 [R/W] 0--00000 435 付録 付表 A-1 I/O マップ (6 / 6) アドレス 000624 H 000628 H レジスタ +0 +1 AMD5 [R/W] 0--00000 EPCR0 [W] ----1100 -1111111 EPCR1 [W] -------- 11111111 − ブロック PCR6 [R/W] 00000000 − プルアップ 制御 Reserved − 0007C0 H FLCR [R/W,R] 000XXXX0 − 0007C4 H FWTC [R/W,W] -----000 − − T-unit Reserved − 000634 H | 0007BC H 0007C8 H | 0007F8 H +3 − 00062C H 000630 H +2 フラッシュ 制御 Reserved リトル エンディアン LER [W] MODR [W] 0007FC H − レジスタ -----000 XXXXXXXX モード レジスタ ( 注意事項 ) ・ライトオンリビットのあるレジスタに対して RMW 系の命令を行わないでください。 ・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 ・Reserved または ( − ) の領域のデータは不定です。 436 付録 B 割込みベクタ 付録 B 割込みベクタ 付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには , MB91150 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されて います。 ■ 割込みベクタ • ICR00 ∼ 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 割込み要因 437 付録 付表 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 I2C 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 割込み要因 438 付録 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 の割込みを使用します。 439 付録 付録 C 各 CPU ステートにおける端子状態 付表 C-1 に端子状態の用語の説明 , 付表 C-2 ∼付表 C-4 に各 CPU ステートにおける 端子状態の一覧を示します。 ■ 端子状態表の用語 端子の状態に対する語句の意味を , 付表 C-1 に示します。 付表 C-1 端子状態の用語 用語 説明 入力可能 入力機能が使用可能な状態であることを意味する。 入力 0 固定 端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状態。 出力 Hi-Z 端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンス (Hi-Z) にすることを意味する。 出力保持 本モードになる直前に出力していた状態をそのまま出力することを意味する。 つまり , 出力のある内蔵周辺が v 動作中であればその内蔵周辺に従い出力を行い , ポート等として出力している場合にはその出力を保持する。 直前の状態を保持 本モードになる直前に出力していた状態をそのまま出力 , または入力であれば入 力可能を意味する。 440 付録 C 各 CPU ステートにおける端子状態 ■ 各 CPU ステートにおける端子状態 付表 C-2 外バス 16 ビットモード (1 / 2) 端子名 機能 P20 ∼ 7 D16 ∼ 23 P30 ∼ 7 D24 ∼ 31 P40 ∼ 7 A00 ∼ 07 P50 ∼ 7 A08 ∼ 15 スリープ時 ストップ時 HIZX=0 出力保持 or Hi-Z 同左 出力保持 ( アドレス 出力 ) 同左 P60 ∼ 7 A16 ∼ 23 P: 直前状態 保持 F: アドレス 出力 P80 RDY P: 直前状態 保持 F:RDY 入力 P81 BGRNT P: 直前状態 保持 F:H 出力 P82 BRQ P83 RD P84 WR0 P85 WR1 P86 CLK P: 直前状態 保持 F:CLK 出力 PC0 ∼ 3 INT0 ∼ 3 直前状態 保持 PC4 INT4/CS0 AIN0/INT8 BIN0/INT9 PD2 AIN1/INT10 PD3 BIN1/INT11 PD4 ZIN0/INT12 PD5 ZIN1/INT13 PD6 DEOP2/INT14 PD7 ATG/INT15 備考 出力 Hi-Z FFH 出力 同左 P: 直前状態 保持 F:RDY 入力 出力 Hi-Z/ 入力 0 固定 P: 直前状態 保持 INT5 ∼ 7/CS1 PC5 ∼ 7 F:CS 出力 ∼3 PD0 リセット時 出力 Hi-Z/ 全端子 入力可能 P: 直前状態 保持 直前状態保 F:BRQ 入力 持/ 入力 0 固定 直前状態 保持 P: 直前状態 保持 F:H 出力 PD1 HIZX=1 バス開放 (BGRNT) L 出力 出力 Hi-Z/ 全端子入力 可能 BRQ 入力 出力 Hi-Z H 出力 CLK 出力 CLK 出力 入力可能 直前状態保持 出力 Hi-Z/ 全端子 入力可能 出力 Hi-Z/ 入力可能 直前状態保持 / CS 出力時は Hi-Z CS 出力 入力可能 直前状態保持 出力 Hi-Z/ 全端子 入力可能 入力可能 直前状態 保持 441 付録 付表 C-2 外バス 16 ビットモード (2 / 2) 端子名 機能 PE0 ∼ 7 OC0 ∼ 7 PF0 ∼ 3 IN0 ∼ 3 PF4 ポート PG0 ∼ 5 PPG0 ∼ 5 PJ0 SCL PJ1 SDA 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 ∼ 7 AN0 ∼ 7 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 ストップ時 スリープ時 直前状態 保持 HIZX=0 バス開放 (BGRNT) 直前状態 出力 Hi-Z/ 保持 / 直前状態保持 入力 0 固定 入力 0 固定 P: 汎用ポート選択時 , F: 指定機能選択時 442 HIZX=1 リセット時 出力 Hi-Z/ 全端子 入力可能 備考 付録 C 各 CPU ステートにおける端子状態 付表 C-3 外バス 8 ビットモード (1 / 2) ストップ時 端子名 機能 スリープ時 P20 ∼ 7 ポート 直前状態保持 同左 P30 ∼ 7 D24 ∼ 31 出力保持 or Hi-Z 同左 P40 ∼ 7 A00 ∼ A07 P50 ∼ 7 A08 ∼ A15 出力保持 ( アドレス出 力) 同左 P60 ∼ 7 A16 ∼ 23 P: 直前状態 保持 F: アドレス 出力 P80 RDY P: 直前状態 保持 F:RDY 入力 P81 BGRNT P: 直前状態 保持 F:H 出力 P82 BRQ P: 直前状態 保持 F:BRQ 入力 P83 RD P84 WR0 HIZX=0 HIZX=1 ポート P86 CLK PC0 ∼ 3 INT0 ∼ 3 PC4 INT4/CS0 AIN0/INT8 PD1 BIN0/INT9 PD2 AIN1/INT10 PD3 BIN1/INT11 PD4 ZIN0/INT12 PD5 ZIN1/INT13 PD6 DEOP2/INT14 PD7 ATG/INT15 リセット時 備考 出力 Hi-Z/ 全端子 入力可能 出力 Hi-Z FFH 出力 同左 P: 直前状態 保持 F:RDY 入力 出力 Hi-Z/ 入力 0 L 出力 固定 出力 Hi-Z/ 全端子 入力可能 BRQ 入力 直前状態 保持 / 入力 0 固定 出力 Hi-Z H 出力 出力 Hi-Z/ 直前状態保持 全端子入力 可能 P: 直前状態 保持 F:CLK 出力 CLK 出力 直前状態保持 P: 直前状態 保持 PC5 ∼ 7 INT5/CS1 ∼ 3 F:CS 出力 PD0 (BGRNT) 直前状態保持 直前状態保持 P85 バス開放 CLK 出力 入力可能 出力 Hi-Z/ 直前状態保持 全端子入力 可能 出力 Hi-Z/ 入力可能 直前状態保持 / CS 出力時は Hi-Z CS 出力 直前状態保持 出力 Hi-Z/ 全端子 入力可能 入力可能 直前状態保持 入力可能 443 付録 付表 C-3 外バス 8 ビットモード (2 / 2) 端子名 機能 PE0 ∼ 7 OC0 ∼ 7 PF0 ∼ 3 IN0 ∼ 3 PF4 ポート PG0 ∼ 5 PPG0 ∼ 5 PJ0 SCL PJ1 SDA 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 ∼ 7 AN0 ∼ 7 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 スリープ時 直前状態保持 P: 汎用ポート選択時 , F: 指定機能選択時 444 ストップ時 HIZX=0 直前状態 保持 / 入力 0 固定 HIZX=1 バス開放 (BGRNT) 出力 Hi-Z/ 入力 0 直前状態保持 固定 リセット時 備考 出力 Hi-Z/ 全端子 入力可能 付録 C 各 CPU ステートにおける端子状態 付表 C-4 シングルチップモード (1 / 2) 端子名 機能 スリープ時 ストップ時 HIZX=0 HIZX=1 直前状態 保持 / 出力 Hi-Z/ − リセット時 備考 P20 ∼ 7 P30 ∼ 7 P40 ∼ 7 P50 ∼ 7 P60 ∼ 7 P80 ポート P81 入力 0 固定 P82 入力 0 固定 P83 P84 P85 P86 CLK PC0 ∼ 7 INT0 ∼ 7 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 ∼ 7 OC0 ∼ 7 PF0 ∼ 3 IN0 ∼ 3 PF4 ポート PG0 ∼ 5 PPG0 ∼ 5 PJ0 SCL PJ1 SDA 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 入力可能 入力可能 出力 Hi-Z/ 直前状態 保持 − 直前状態 保持 / 入力 0 固定 全端子 入力可能 出力 Hi-Z/ 入力 0 固定 445 付録 付表 C-4 シングルチップモード (2 / 2) 端子名 機能 PK0 ∼ 7 AN0 ∼ 7 PL0 DREQ0 PL1 DACK0 PL2 DEOP0 PL3 DREQ1 PL4 DACK1 PL5 DEOP1 PL6 DREQ2 PL7 DACK2 ストップ時 スリープ時 直前状態 保持 HIZX=0 HIZX=1 直前状態 保持 / 出力 Hi-Z/ 入力 0 固定 P: 汎用ポート選択時 , F: 指定機能選択時 446 入力 0 固定 − リセット時 出力 Hi-Z/ − 全端子 入力可能 備考 付録 D リトルエンディアン領域を利用する際の注意事項 付録 D リトルエンディアン領域を利用する際の注意事項 ここでは , リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明 します。 D.1 C コンパイラ (fcc911) D.2 アセンブラ (fasm911) D.3 リンカ (flnk911) D.4 デバッガ (sim911, eml911, mon911) 447 付録 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(); ... } ■ 構造体代入 構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造 体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を 行うと , 正しい結果が得られません。 構造体のメンバをそれぞれ代入してください。 448 付録 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 オプションも同様に指定しな いでください。 449 付録 ■ 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 ■ スタックのリトルエンディアン領域への配置 リトルエンディアン領域にスタックの一部または全部が配置された場合,動作を保証し ません。 450 付録 D リトルエンディアン領域を利用する際の注意事項 D.2 アセンブラ (fasm911) FR ファミリのアセンブラ言語でプログラミングをする場合 , リトルエンディアン領 域に関して注意して頂きたい項目を以下に示します。 • セクション • データのアクセス ■ セクション リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク ションとして定義してください。 もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど の指定をした場合には , MB91150 でのアクセス動作は保証できなくなります。 [例] /* 正しいリトルエンディアン領域のセクション定義 */ .SECTION Little_Area, DATA, ALIGN=4 Little_Word: .RES.W 1 Little_Half:・ .RES.H 1 Little_Byte: .RES.B 1 451 付録 ■ データのアクセス リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。 [例] 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 MB91150 でデータサイズと異なるサイズでアクセスした場合には , その値の保証はで きません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使っ て一度にアクセスした場合には , データの値の保証はできません。 452 付録 D リトルエンディアン領域を利用する際の注意事項 D.3 リンカ (flnk911) リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ ン配置で注意して頂きたい項目を以下に示します。 • セクション種別の制限 • エラーの未検出 ■ セクション種別の制限 リトルエンディアン領域には , 初期値なしデータセクションのみ配置できます。 リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス 解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。 ■ エラーの未検出 リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。 453 付録 D.4 デバッガ (sim911, eml911, mon911) シミュレータデバッガとエミュレータデバッガ / モニタデバッガでの注意事項につい て説明します。 ■ シミュレータデバッガ リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。 したがって , メモリ操作コマンドや , メモリを操作する命令実行は , ビッグエンディア ンとして扱われます。 ■ エミュレータデバッガ / モニタデバッガ 以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値として扱わ れませんので注意してください。 ● set memory/show memory/enter/examine/set watch コマンド 浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定 / 表示ともにでき ません。 ● search memory コマンド ハードワード, ワードのデータの検索を行った場合,指定した値で検索が行われません。 ● 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む ) 正常な命令コードが設定 / 表示ともにできません ( リトルエンディアン領域には , 命令 コードを配置しないようにしてください )。 ● call/show call コマンド スタック領域が , リトルエンディアン領域に置かれた場合 , 正常に動作しません ( リト ルエンディアン領域にスタック領域を配置しないようにしてください )。 454 付録 E 命令一覧 付録 E 命令一覧 FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事 項について説明します。 • 命令一覧表の読み方 • アドレッシングモードの記号 • 命令フォーマット ■ 命令一覧表の読み方 ニーモニック 型 OP CYCLE NZVC 動作 ADD Rj, Rj *ADD #s5, Rj , , A C , , AG A4 , , 1 1 , , CCCC CCCC , , Ri + Rj → Rj Ri + s5 → Ri , , ↓ 3) ↓ 4) ↓ 5) ↓ 6) ↓ 1) ↓ 2) 備考 ↓ 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 サイクルです。 6) フラグ変化を表しています。 フラグ変化 C 0 1 ・・・ 変化する ・・・ 変化しない ・・・ クリア ・・・ セット フラグの意味 N Z V C ・・・ ネガティブフラグ ・・・ ゼロフラグ ・・・ オーバフラグ ・・・ キャリフラグ 7) 命令動作が表記されています。 455 付録 ■ アドレッシングモードの記号 付表 E-1 アドレッシングモードの記号説明 記号 意味 Ri レジスタ直接 (R0 ∼ R15, AC, FP, SP) Rj レジスタ直接 (R0 ∼ R15, AC, FP, SP) R13 レジスタ直接 (R13, AC) Ps レジスタ直接 ( プログラムステータスレジスタ ) Rs レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL) Cri レジスタ直接 (CR0 ∼ CR15) CRj レジスタ直接 (CR0 ∼ CR15) #i8 符号なし 8 ビット即値 (-128 ∼ 255) ( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。 #i20 符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF) ( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。 #i32 符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF) ( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱います。 #s5 符号付き 5 ビット即値 (-16 ∼ 15) #s10 符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ ) #u4 符号なし 4 ビット即値 (0 ∼ 15) #u5 符号なし 5 ビット即値 (0 ∼ 31) #u8 符号なし 8 ビット即値 (0 ∼ 255) #u10 符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ ) @dir8 符号なし 8 ビット直接アドレス (0 ∼ 0XFF) @dir9 符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ ) @dir10 符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ ) label9 符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ ) label12 符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC 2 の倍数のみ ) label20 符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF) label32 符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF) @Ri レジスタ間接 (R0 ∼ R15, AC, FP, SP) @Rj レジスタ間接 (R0 ∼ R15, AC, FP, SP) @(R13,Rj) レジスタ相対間接 (Rj: R0 ∼ R15, AC, FP, SP) @(R14,disp10) レジスタ相対間接 (disp10: -0X200 ∼ 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) レジスタリスト 456 付録 E 命令一覧 ■ 命令フォーマット 付表 E-2 命令フォーマット 型 A 命令フォーマット MSB LSB 16bit OP Rj Ri 8 4 4 B OP i8/o8 Ri 4 8 4 C C' OP u4/m4 Ri 8 4 4 ADD,ADDN,CMP,LSL,LSR,ASR命令のみ OP s5/u5 Ri 7 5 4 OP u8/re18/dir/ reglist D 8 8 E OP SUB-OP Ri 8 4 4 F OP rel11 5 11 457 付録 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 コプロセッサ制御命令 458 付録 E 命令一覧 ■ 加減算命令 付表 E-3 加減算命令 型 OP CYCLE NZVC ADD Rj, Ri *ADD #s5, Ri A C' A6 A4 1 1 CCCC Ri + Rj → Ri CCCC Ri + s5 → Ri ADD #u4, Ri ADD2 #u4, Ri C C A4 A5 1 1 CCCC Ri + extu(i4) → Ri CCCC Ri + extu(i4) → Ri CCCC Ri + Rj + c → Ri ---Ri + Rj → Ri ---Ri + s5 → Ri ニーモニック ADDC Rj, Ri A A7 1 ADDN Rj, Ri *ADDN#s5, Ri A C' A2 A0 1 1 ADDN #u4, Ri ADDN2#u4, Ri C C A0 A1 1 1 SUB Rj, Ri A AC 1 SUBC Rj, Ri SUBN Rj, Ri A A AD AE 1 1 ------- 動作 Ri + extu(i4) → Ri Ri + extu(i4) → Ri CCCC Ri - Rj → Ri CCCC Ri - Rj - c → Ri ---Ri - Rj → Ri 備考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き加算 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 キャリ付き減算 ■ 比較演算命令 付表 E-4 比較演算命令 ニーモニック 型 OP CYCLE NZVC 動作 CMP Rj, Ri *CMP #s5, Ri A C' AA A8 1 1 CCCC Ri - Rj CCCC Ri - s5 CMP #u4, Ri CMP2 #u4, Ri C C A8 A9 1 1 CCCC Ri - extu(i4) CCCC Ri - extu(i4) 備考 アセンブラでは上位 1 ビットを符号と見る ゼロ拡張 マイナス拡張 459 付録 ■ 論理演算命令 付表 E-5 論理演算命令 型 OP ニーモニック CYCLE NZVC RMW 動作 AND AND ANDH ANDB Rj, Ri Rj, @Ri Rj, @Ri Rj, @Ri A A A A 82 84 85 86 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- Ri (Ri) (Ri) (Ri) &= &= &= &= Rj Rj Rj Rj OR OR ORH ORB Rj, Ri Rj, @Ri Rj, @Ri Rj, @Ri A A A A 92 94 95 96 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- Ri (Ri) (Ri) (Ri) |= |= |= |= Rj Rj Rj Rj EOR EOR EORH EORB Rj, Ri Rj, @Ri Rj, @Ri Rj, @Ri A A A A 9A 9C 9D 9E 1 1+2a 1+2a 1+2a CC-CC-CC-CC-- Ri (Ri) (Ri) (Ri) ^= ^= ^= ^= Rj Rj Rj Rj ○ ○ ○ ○ ○ ○ ○ ○ ○ 備考 ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト ワード ワード ハーフワード バイト ■ ビット操作命令 付表 E-6 ビット操作命令 ニーモニック 型 OP CYCLE NZVC 動作 RMW 備考 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 #u4, @Ri BORH #u4, @Ri *BOR #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 ---------- ○ ○ - 下位 4 ビットを操作 上位 4 ビットを操作 88 89 2+a 2+a 0C-CC-- (Ri) ^ = u4 (Ri) ^ = (u4<<4) (Ri) ^ = u8 (Ri) & u4 (Ri) & (u4<<4) BTSTL #u4, @Ri BTSTH #u4, @Ri C C - 下位 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 の両方を生成する場合もあります。 460 付録 E 命令一覧 ■ 乗除算命令 付表 E-7 乗除算命令 ニーモニック 型 OP CYCLE NZVC MUL Rj,Ri MULU Rj,Ri MULH Rj,Ri MULUHRj,Ri A A A A AF AB BF BB 5 5 3 3 CCCCCCCC-CC-- DIV0S DIV0U DIV1 DIV2 DIV3 DIV4S *DIV 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 Ri Ri Ri Ri*3 Ri*1 動作 Ri × Rj Ri × Rj Ri × Rj Ri × Rj → → → → MDH,MDL MDH,MDL MDL MDL 備考 32bit × 32bit=64bit 符号なし 16bit × 16bit=32bit 符号なし ステップ演算 32bit/32bit=32bit MDL / Ri → MDL, MDL % Ri → MDH *DIVU Ri*2 33 -C-C MDL / Ri → MDL, MDL % Ri → MDH *1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。 *2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。 *3:DIV2 命令の後には , 必ず DIV3 命令を置いてください。 ■ シフト命令 付表 E-8 シフト命令 型 OP ニーモニック CYCLE NZVC 動作 備考 LSL Rj, Ri *LSL #u5, Ri (u5:0 ∼ 31) LSL #u4, Ri LSL2 #u4, Ri A C' C C B6 B4 B4 B5 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri << Rj → Ri << u5 → Ri << u4 → Ri <<(u4+16) → Ri 論理シフト LSR Rj, Ri *LSR #u5, Ri (u5:0 ∼ 31) LSR #u4, Ri LSR2 #u4, Ri A C' C C B2 B0 B0 B1 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri >> Rj → Ri >> u5 → Ri >> u4 → Ri >>(u4+16) → Ri 論理シフト ASR Rj, Ri *ASR #u5, Ri (u5:0 ∼ 31) ASR #u4, Ri ASR2 #u4, Ri A C' C C BA B8 B8 B9 1 1 1 1 CC-C CC-C CC-C CC-C Ri Ri Ri Ri >> Rj → Ri >> u5 → Ri >> u4 → Ri >>(u4+16) → Ri 算術シフト ■ 即値セット /16 ビット /32 ビット即値転送命令 付表 E-9 即値セット /16 ビット /32 ビット即値転送命令 ニーモニック 型 OP LDI:32 #i32, Ri E 9F-8 LDI:20 #i20, Ri C 9B LDI:8 #i8, Ri B C0 *LDI # {i8 | i20 | i32}, Ri*1 CYCLE NZVC 3 2 1 ---------- 動作 備考 i32 → Ri i20 → Ri 上位 12 ビットはゼロ拡張 i8 → Ri 上位 24 ビットはゼロ拡張 {i8 | i20 | i32} → Ri *1: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。 即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。 461 付録 ■ メモリロード命令 付表 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 A B C E E E 04 00 20 03 07-0 07-8 07-9 b b b b b b 1+a+b ------------------CCCC LDUH LDUH LDUH @Rj, Ri @(R13,Rj), Ri @(R14,disp9), Ri A A B 05 01 40 b b b ---------- (Rj) → Ri (R13+Rj) → Ri (R14+disp9) → Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 LDUB LDUB LDUB @Rj, Ri @(R13,Rj), Ri @(R14,disp8), Ri A A B 06 02 60 b b b ---------- (Rj) → Ri (R13+Rj) → Ri (R14+disp8) → Ri ゼロ拡張 ゼロ拡張 ゼロ拡張 (Rj) → Ri (R13+Rj) → Ri (R14+disp10) → Ri (R15+udisp6) → Ri (R15) → Ri,R15+=4 (R15) → Rs, R15+=4 (R15) → PS, R15+=4 Rs: 特殊レジスタ * *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL ( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。 udisp6/4 → o4 udisp6 は , 符号なしです。 ■ メモリストア命令 付表 E-11 メモリストア命令 型 OP A A B C E E E 14 10 30 13 17-0 17-8 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) STH Ri, @Rj STH Ri, @(R13,Rj) STH Ri, @(R14,disp9) A A B 15 11 50 a a a ---------- Ri → (Rj) Ri → (R13+Rj) Ri → (R14+disp9) ハーフワード ハーフワード ハーフワード STB STB STB A A B 16 12 70 a a a ---------- Ri → (Rj) Ri → (R13+Rj) Ri → (R14+disp8) バイト バイト バイト ニーモニック ST ST ST ST ST ST ST Ri, @Rj Ri, @(R13,Rj) Ri, @(R14,disp10) Ri, @(R15,udisp6) Ri, @-R15 Rs, @-R15 PS, @-R15 Ri, @Rj Ri, @(R13,Rj) Ri, @(R14,disp8) CYCLE NZVC 動作 備考 ワード ワード ワード Rs: 特殊レジスタ * *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL ( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定します。 disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。 udisp6/4 → o4 udisp6 は , 符号なしです。 462 付録 E 命令一覧 ■ レジスタ間転送命令 付表 E-12 レジスタ間転送命令 ニーモニック MOV MOV MOV MOV MOV 型 Rj, Ri Rs, Ri Ri, Rs PS, Ri Ri, PS OP CYCLE NZVC A 8B A B7 A B3 E 17-1 E 07-1 1 1 1 1 c ------------CCCC 動作 Rj → Ri Rs → Ri Ri → Rs PS → Ri Ri → PS 備考 汎用レジスタ間転送 Rs: 特殊レジスタ * Rs: 特殊レジスタ * *: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL ■ 通常分岐 ( 遅延なし ) 命令 付表 E-13 通常分岐 ( 遅延なし ) 命令 ニーモニック 型 OP CYCLE NZVC 動作 JMP @Ri E 97-0 2 ---- Ri → PC CALL label12 F D0 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 D 1F 3+3a ---- INTE E 9F-3 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 RETI E 97-3 2+2a RET INT #u8 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 備考 リターン エミュレータ用 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 ( 注意事項 )・サイクル数の「2/1」は , 分岐するとき 2, 分岐しないとき "1" であることを示します。 ・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定 します。(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。 ・RETI 命令を実行するときは , S フラグが "0" であることが必要です。 463 付録 ■ 遅延分岐命令 付表 E-14 遅延分岐命令 ニーモニック 型 OP CYCLE NZVC 動作 JMP:D @Ri E 9F-0 1 ---- Ri → PC CALL:D label12 F D8 1 ---- CALL:D @Ri E 9F-1 1 ---- PC+4 → RP, PC+2+(label12-PC-2) → PC PC+4 → RP,Ri → PC E 9F-2 1 ---- RP → PC PC+2+(label9-PC-2) → PC 非分岐 if(Z==1) then PC+2+(label9-PC-2) → PC ↑ s/Z==0 ↑ s/C==1 ↑ s/C==0 ↑ s/N==1 ↑ s/N==0 ↑ s/V==1 ↑ s/V==0 ↑ s/V xor N==1 ↑ s/V xor N==0 ↑ s/(V xor N) or Z==1 ↑ s/(V xor N) or Z==0 ↑ s/C or Z==1 ↑ s/C or Z==0 RET:D 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 ---------------------------------------- 備考 リターン ( 注意事項 )・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定 します。(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。 ・遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。 ・遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令 です。複数サイクル命令は置けません。 464 付録 E 命令一覧 ■ その他の命令 付表 E-15 その他の命令 ニーモニック 型 OP CYCLE NZVC NOP E 9F-A 1 ANDCCR#u8 ORCCR #u8 D D 83 93 c c D 87 1 D A3 1 ---- 1 1 1 1 STILM #u8 ADDSP #s10 *1 ---- 動作 何も変化しない CCCC CCR and u8 → CCR CCCC CCR or u8 → CCR ---i8 → ILM RMW 備考 - ILM 即値セット R15 += s10 - ADD SP 命令 ------------- 符号拡張 ゼロ拡張 符号拡張 ゼロ拡張 8 → 32bit 8 → 32bit 16 → 32bit 16 → 32bit - (R15) → reglist, R15 インクリメント (R15) → reglist, R15 インクリメント (R15) → reglist, R15 インクリメント - ロードマルチ R0-R7 - ロードマルチ R8-R15 - ロードマルチ R0-R15 R15 デクリメント , reglist → (R15) R15 デクリメント , reglist → (R15) R15 デクリメント , reglist → (R15) - ストアマルチ R0-R7 - ストアマルチ R8-R15 - ストアマルチ R0-R15 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 D 0F 1+a ---- R14 → (R15 - 4), R15 - 4 → R14, R15 - u10 → R15 - 関数の入口処理 LEAVE E 9F-9 b ---- R14 + 4 → R15, (R15 - 4) → R14 - 関数の出口処理 A 8A 2a ---- Ri → TEMP (Rj) → Ri TEMP → (Rj) ○ セマフォ管理用 バイトデータ XCHB @Rj, Ri *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 サイクルとなります。 465 付録 ■ 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: 466 付録 E 命令一覧 ■ 20 ビット遅延分岐マクロ命令 付表 E-17 20 ビット遅延分岐マクロ命令 ニーモニック 動作 備考 *CALL20:D label20,Ri 次の命令のアドレス +2 → RP, label20 → PC Ri: テンポラリレジスタ ( 参考 1 参照 ) *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: 467 付録 ■ 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: 468 付録 E 命令一覧 ■ 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 JMP:D @Ri [ 参考 3] Bcc32:D 1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。 Bcc:D label9 2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生 成します。 Bxcc false xcc は , cc の背反条件 LDI:32 #label32,Ri JMP:D @Ri False: 469 付録 ■ ダイレクトアドレッシング命令 付表 E-20 ダイレクトアドレッシング命令 ニーモニック DMOV DMOV DMOV DMOV DMOV DMOV @dir10, R13, @dir10, @R13+, @dir10, @R15+, 型 OP CYCLE NZVC 動作 備考 R13 @dir10 @R13+ @dir10*1 @-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@dir9, DMOVHR13, DMOVH@dir9, DMOVH@R13+, R13 @dir9 @R13+ @dir9*1 D D D D 09 19 0D 1D b a 2a 2a ------------- (dir9) → R13 R13 → (dir9) (dir9) → (R13),R13+=2 (R13) → (dir9),R13+=2 ハーフワード ハーフワード ハーフワード ハーフワード DMOVB@dir8, DMOVBR13, DMOVB@dir8, DMOVB@R13+, R13 @dir8 @R13+ @dir8*1 D D D D 0A 1A 0E 1E b a 2a 2a ------------- (dir8) → R13 R13 → (dir8) (dir8) → (R13),R13++ (R13) → (dir8),R13++ バイト バイト バイト バイト *1: 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, #u8, CRj, CRi #u4, #u8, Rj, CRi #u4, #u8, CRj, Ri #u4, #u8, CRj, Ri 型 OP E 9F-C E 9F-D E 9F-E 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:= コマンド指定 ・ 本品種では , コプロセッサを搭載していないため使用できません。 470 索引 Numerics 0 検出 0 検出 ......................................................................387 0 検出用データレジスタ 0 検出用データレジスタ (BSD0) ........................385 16 ビット 即値セット /16 ビット /32 ビット即値転送 命令 ..................................................................461 16 ビットアウトプットコンペア 16 ビットアウトプットコンペアの タイミング ......................................................232 16 ビットアウトプットコンペアの 動作説明 ..........................................................231 16 ビットインプットキャプチャ 16 ビットインプットキャプチャの動作 ............233 16 ビットインプットキャプチャの入力タイミン グ ......................................................................233 16 ビットタイマレジスタ 16 ビットタイマレジスタ (TMR0 ∼ TMR3) ............................................185 16 ビットフリーランタイマ 16 ビットフリーランタイマのカウントタイミン グ ......................................................................230 16 ビットフリーランタイマのクリア タイミング ......................................................230 16 ビットフリーランタイマの動作説明 ............229 16 ビットリロードタイマ 16 ビットリロードタイマの特長 ........................180 16 ビットリロードタイマのブロック ダイヤグラム ..................................................181 16 ビットリロードタイマのレジスタ一覧 ..........................................................................182 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................318 16 ビットリロードレジスタ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) ..................................185 16 ビット× 1 チャネル 8 ビット× 2 チャネル ,16 ビット× 1 チャネル動 作 ......................................................................178 1 検出 1 検出 ......................................................................387 1 検出用データレジスタ 1 検出用データレジスタ (BSD1) ........................385 20 ビット遅延分岐マクロ命令 20 ビット遅延分岐マクロ命令 ............................467 20 ビット通常分岐マクロ命令 20 ビット通常分岐マクロ命令 ............................466 2 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ..........................................................................172 32 ビット即値転送命令 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................461 32 ビット遅延分岐マクロ命令 32 ビット遅延分岐マクロ命令 ............................469 32 ビット通常分岐マクロ命令 32 ビット通常分岐マクロ命令 ........................... 468 4 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ............172 8/10 ビット A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................282 8/10 ビット A/D コンバータの端子 ...................267 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................268 8/10 ビット A/D コンバータの特長 ...................264 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................265 8/10 ビット A/D コンバータの変換モード ..........................................................................264 8/10 ビット A/D コンバータの レジスタ一覧 ..................................................269 8/10 ビット A/D コンバータの割込み ............... 278 8/16 ビットアップダウンカウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマの特長 ..........................................................................158 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................160 8/16 ビットアップダウンカウンタ / タイマの レジスタ一覧 ..................................................162 8 ビット D/A コンバータ 8 ビット D/A コンバータの端子 ........................ 285 8 ビット D/A コンバータの動作 ........................ 289 8 ビット D/A コンバータの特長 ........................ 284 8 ビット D/A コンバータのブロックダイヤグラム ..........................................................................285 8 ビット D/A コンバータのレジスタ一覧 ..........................................................................286 8 ビット× 2 チャネル 8 ビット× 2 チャネル ,16 ビット× 1 チャネル動 作 ......................................................................178 471 索引 A C A/D コンバータ 8/10 ビット A/D コンバータ使用上の注意 ..........................................................................282 8/10 ビット A/D コンバータの端子 ....................267 8/10 ビット A/D コンバータの端子のブロック ダイヤグラム ..................................................268 8/10 ビット A/D コンバータの特長 ....................264 8/10 ビット A/D コンバータのブロック ダイヤグラム ..................................................265 8/10 ビット A/D コンバータの変換モード ..........................................................................264 8/10 ビット A/D コンバータのレジスタ一覧 ..........................................................................269 8/10 ビット A/D コンバータの割込み ................278 A/D 制御ステータスレジスタ A/D 制御ステータスレジスタ 0 (ADCS0) ..........................................................................273 A/D 制御ステータスレジスタ 1 (ADCS1) ..........................................................................270 A/D データレジスタ A/D データレジスタ (ADCR) ..............................276 A/D 変換 A/D 変換データ保護機能 .....................................281 ADCR A/D データレジスタ (ADCR) ..............................276 ADCS A/D 制御ステータスレジスタ 0 (ADCS0) ..........................................................................273 A/D 制御ステータスレジスタ 1 (ADCS1) ..........................................................................270 AF200 AF200 フラッシュマイコンプログラマ システム 構成 ( 株式会社ワイ・ディ・シー製 ) ..........................................................................425 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 AICR アナログ入力制御レジスタ (AICR) ...................155 AMD エリアモードレジスタ 0 (AMD0) .........................99 エリアモードレジスタ 1 (AMD1) .......................101 エリアモードレジスタ 32 (AMD32) ...................102 エリアモードレジスタ 4 (AMD4) .......................103 エリアモードレジスタ 5 (AMD5) .......................104 AMR エリア選択レジスタ (ASR) とエリアマスク レジスタ (AMR) ................................................96 ASR エリア選択レジスタ (ASR) とエリアマスク レジスタ (AMR) ................................................96 CA B BSD 0 検出用データレジスタ (BSD0) ........................385 1 検出用データレジスタ (BSD1) ........................385 BSDC 変化点検出用データレジスタ (BSDC) ..............386 BSRR 検出結果レジスタ (BSRR) ...................................386 472 CA1 ( 秒のデータレジスタ ) ............................... 397 CA2 ( 分のデータレジスタ ) ............................... 398 CA3 ( 時のデータレジスタ ) ............................... 398 CA4 ( 日のデータレジスタ ) ............................... 398 CA5 ( 曜日のデータレジスタ ) ........................... 398 CA6 ( 月のデータレジスタ ) ............................... 399 CA7 ( 年のデータレジスタ ) ............................... 399 CAC CAC ( カレンダーブロックリード / ライト制御 レジスタ ) ........................................................ 397 CAS CAS ( カレンダーテストレジスタ ) ...................399 CCR カウンタコントロールレジスタ "H"/"L"ch.0 (CCR H/L ch.0) ................................................163 カウンタコントロールレジスタ "H"/"L"ch.1 (CCR H/L ch.1) ................................................166 CDCR 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) ........................................ 307 CPU FR-CPU ROM モード (32 ビット , リードのみ ) ..........................................................................408 FR-CPU プログラミングモード (16 ビット , リード / ライト ) .......................408 各 CPU ステートにおける端子状態 ...................441 CPU アーキテクチャ CPU アーキテクチャの特長 ..................................34 CPU ステート 各 CPU ステートにおける端子状態 ...................441 CPU モード FLCR: ステータスレジスタ (CPU モード ) ..........................................................................405 CSR カウンタステータスレジスタ 0/1 (CSR0, CSR1) ........................................................................... 167 CTBR タイムベースタイマクリアレジスタ (CTBR) ............................................................................69 D D/A コントロールレジスタ D/A コントロールレジスタ (DACR0, DACR1, DACR2) ............................287 D/A コンバータ 8 ビット D/A コンバータの端子 ........................ 285 8 ビット D/A コンバータの動作 ........................ 289 8 ビット D/A コンバータの特長 ........................ 284 8 ビット D/A コンバータのブロックダイヤグラム ..........................................................................285 8 ビット D/A コンバータのレジスタ一覧 ..........................................................................286 D/A データレジスタ D/A データレジスタ (DADR2, DADR1, DADR0) ..........................................................................288 DACR D/A コントロールレジスタ (DACR0, DACR1, DACR2) ............................................................ 287 索引 DACSR DMAC コントロールステータスレジスタ (DACSR) ..........................................................356 DADR D/A データレジスタ (DADR2, DADR1, DADR0) ..........................................................................288 DATCR DMAC 端子コントロールレジスタ (DATCR) ..........................................................................358 DDR データ方向レジスタ (DDR) ................................151 Delayed Interrupt Control Register 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) ..............................................247 DICR DICR の DLYI ビット ...........................................248 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) ..............................................247 DLYI ビット DICR の DLYI ビット ...........................................248 DMAC コントロールステータスレジスタ DMAC コントロールステータスレジスタ (DACSR) ..........................................................356 DMAC 端子コントロールレジスタ DMAC 端子コントロールレジスタ (DATCR) ...........................................................................358 DMAC 内部レジスタ DMAC 内部レジスタへの転送動作 ....................373 DMAC パラメータディスクリプタポインタ DMAC パラメータディスクリプタポインタ (DPDP) .............................................................355 DMA コントローラ DMA コントローラの特長 ..................................352 DMA コントローラのブロックダイヤグラム ..........................................................................353 DMA コントローラのレジスタ一覧 ..................354 DMA 転送動作 スリープモード中の DMA 転送動作 .................373 DMA 転送要求 リソースの割込み要求を DMA 転送要求とし て使用する場合の注意 ..................................372 DMA 転送抑止 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................372 DMA 要求抑止レジスタ DMA 要求抑止レジスタ (PDRR) ..........................73 double 型 double 型 , long double 型の利用 ..........................450 DPDP DMAC パラメータディスクリプタポインタ (DPDP) .............................................................355 DREC 信号 DREC 信号のセンスモード .................................365 E EIRR 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register 0, 1) ........................239 EIT EIT ............................................................................51 EIT からの復帰 .......................................................51 EIT の注意事項 ....................................................... 51 EIT 要因受理の優先順位 .......................................55 EIT 要因 EIT 要因 ................................................................... 51 ELVR 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register 0, 1) ............. 240 ENable Interrupt request Register 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register 0, 1) .........................238 ENIR 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register 0, 1) .........................238 EPCR 外部端子制御レジスタ 0 (EPCR0) ...................... 105 外部端子制御レジスタ 1 (EPCR1) ...................... 108 External Interrupt Request Register 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register 0, 1) ........................ 239 External LeVel Register 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register 0, 1) ............. 240 F FLCR FLCR: ステータスレジスタ (CPU モード ) ..........................................................................405 FPT-144P-M01 FPT-144P-M01 の外形寸法図 (MB91F155A のみ ) ............................................ 9 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 FPT-144P-M08 FPT-144P-M08 の外形寸法図 ..................................8 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 FR-CPU FR-CPU ROM モード (32 ビット , リードのみ ) ........................................................................... 408 FR-CPU プログラミングモード (16 ビット , リード / ライト ) .......................408 FR ファミリ FR ファミリの命令一覧表 ..................................458 FWTC FWTC: ウェイトレジスタ ................................... 407 G GCN ジェネラルコントロールレジスタ 1 (GCN1) ........................................................................... 204 ジェネラルコントロールレジスタ 2 (GCN2) ........................................................................... 207 GCR ギア制御レジスタ (GCR) ...................................... 70 473 索引 H L Hold Request Cancel Request ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準 ...........................259 HRCL ホールドリクエスト取下げ要求レベル設定 レジスタ (HRCL:Hold Request Cancel Level register) .............................................................255 LER リトルエンディアンレジスタ (LER) ................. 109 long double 型 double 型 , long double 型の利用 .........................450 M I/O ポート I/O ポートのレジスタ ..........................................144 I/O マップ I/O マップ ..............................................................431 I/O マップの見方 ..................................................430 I2C インタフェース I2C インタフェースの動作 ..................................348 I2C インタフェースの特長 ..................................334 I2C インタフェースのブロックダイヤグラム ..........................................................................335 I2C インタフェースのレジスタ一覧 ..................336 IADR アドレスレジスタ (IADR) ...................................345 IBCR バスコントロールレジスタ (IBCR) ....................337 IBSR バスステータスレジスタ (IBSR) ........................343 ICCR クロックコントロールレジスタ (ICCR) ............346 ICR 割込み制御レジスタ (ICR:Interrupt Control Register) ............................................................254 ICS インプットキャプチャコントロールレジスタ (ICS01, ICS23) .................................................226 IDAR データレジスタ (IDAR) .......................................345 Interrupt Control Register 割込み制御レジスタ (ICR:Interrupt Control Register) ............................................................254 INTE 命令 INTE 命令の動作 .....................................................58 INT ビット SCC,MSS,INT ビットの競合 ...............................342 INT 命令 INT 命令の動作 .......................................................58 IPCP インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................226 MB91150 MB91150 の特長 ....................................................... 2 MB91150 のメモリマップ ..................................... 45 MB91154 MB91154 のブロックダイヤグラム .......................6 MB91154 のメモリマップ ..................................... 33 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 MB91155 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 MB91FV150, MB91F155A, MB91155 の ブロックダイヤグラム ......................................5 MB91FV150, MB91F155A, MB91155 の メモリマップ ....................................................32 MB91F155A FPT-144P-M01 の外形寸法図 (MB91F155A のみ ) ............................................................................... 9 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 MB91F155A シリアルオンボード書込み 基本構成 .......................................................... 424 MB91FV150, MB91F155A, MB91155 の ブロックダイヤグラム ......................................5 MB91FV150, MB91F155A, MB91155 の メモリマップ ....................................................32 MB91FV150 MB91FV150 (PGA-299C-A01) の端子配列 ..........10 MB91FV150, MB91F155A, MB91155 の ブロックダイヤグラム ......................................5 MB91FV150, MB91F155A, MB91155 の メモリマップ ....................................................32 MODR モードレジスタ (MODR) .....................................109 MSS SCC,MSS,INT ビットの競合 ............................... 342 Multiply & Divide Register 乗除算レジスタ (Multiply & Divide Register) ............................................................................42 K O -K lib オプション 文字列操作関数使用時の -K lib オプションの 指定 ..................................................................449 OCCP コンペアレジスタ (OCCP0 ∼ OCCP7) ..............223 OCR オープンドレイン制御レジスタ (OCRH, OCRI) ........................................................................... 154 OCS アウトプットコントロールレジスタ (OCS0 ∼ OCS7) .............................................. 223 I 474 索引 P PC PC (Program Counter) ..............................................41 PCNH コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............................197 PCNL コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............................197 PCR プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) ..........................................................................153 PCSR PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) ..........................................................................201 PCTR PLL 制御レジスタ (PCTR) .....................................74 PDR ポートデータレジスタ (PDR) .............................150 PDRR DMA 要求抑止レジスタ (PDRR) ..........................73 PDUT PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) .........................................202 PGA-299C-A01 MB91FV150 (PGA-299C-A01) の端子配列 ..........10 PGA-299C-A01 の外形寸法図 (MB91FV150 のみ ) ............................................7 PLL PLL のクロック設定例 ..........................................81 アセンブラのソース例 (PLL 系への切替え動作の例 ) .........................82 PLL クロックモード PLL クロックモード動作中の注意について ............................................................................28 PLL 制御レジスタ PLL 制御レジスタ (PCTR) .....................................74 PPG タイマ PPG タイマ 1 チャネル分の ブロックダイヤグラム ..................................194 PPG タイマ全体のブロックダイヤグラム ..........................................................................193 PPG タイマの特長 ................................................192 PPG タイマのレジスタ一覧 ................................195 Program Counter PC (Program Counter) ..............................................41 Program Status PS (Program Status) ..................................................38 PS PS (Program Status) ..................................................38 PTMR PWM タイマレジスタ (PTMR0 ∼ PTMR5) ........................................203 PWM PWM 動作 ..............................................................208 PWM 周期設定レジスタ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) ..........................................................................201 PWM 出力 PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................213 PWM タイマ PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 212 PWM タイマレジスタ PWM タイマレジスタ (PTMR0 ∼ PTMR5) ........................................ 203 PWM デューティ設定レジスタ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) .........................................202 R RCR リロード / コンペアレジスタ 0/1 (RCR0, RCR1) ........................................................................... 170 RDY/BUSYX レディ / ビジー信号 (RDY/BUSYX) .................. 413 RETI 命令 RETI 命令の動作 ....................................................60 Return Pointer RP(Return Pointer) ................................................... 41 ROM モード FR-CPU ROM モード (32 ビット , リードのみ ) ..........................................................................408 RP RP(Return Pointer) ................................................... 41 RSRR リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) ............................. 66 S SCC SCC,MSS,INT ビットの競合 ............................... 342 SCR 制御レジスタ (SCR0 ∼ SCR3) ............................299 SIDR インプットデータレジスタ (SIDR0 ∼ SIDR3) ..........................................................................305 SMR モードレジスタ (SMR0 ∼ SMR3) ...................... 301 SODR アウトプットデータレジスタ (SODR0 ∼ SODR3) ..........................................................................306 SSP SSP (System Stack Pointer) ...................................... 42 SSR ステータスレジスタ (SSR0 ∼ SSR3) ................ 303 STCR スタンバイ制御レジスタ (STCR) .........................68 STOP 状態 STOP 状態からの復帰動作について .................. 243 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における注意事項 ..........................................................................242 STPR ストップ制御レジスタ 0 (STPR0) ...................... 391 ストップ制御レジスタ 1 (STPR1) ...................... 391 ストップ制御レジスタ 2 (STPR2) ...................... 393 System Stack Pointer SSP (System Stack Pointer) ...................................... 42 475 索引 T あ Table Base Register TBR (Table Base Register) .......................................41 TBR TBR (Table Base Register) .......................................41 TCCS タイマコントロールステータスレジスタ (TCCS) ..........................................................................220 TCDT データレジスタ (TCDT) .......................................220 TMCSR コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ...................................183 TMR 16 ビットタイマレジスタ (TMR0 ∼ TMR3) ............................................185 TMRLR 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) ..................................185 アーキテクチャ CPU アーキテクチャの特長 ..................................34 内部アーキテクチャ .............................................. 34 アウトプットコントロールレジスタ アウトプットコントロールレジスタ (OCS0 ∼ OCS7) .............................................. 223 アウトプットデータレジスタ アウトプットデータレジスタ (SODR0 ∼ SODR3) ........................................................................... 306 アセンブラ アセンブラのソース例 (PLL 系への切替え動作の 例 ) ......................................................................82 アップ / ダウンカウントモード アップ / ダウンカウントモード .........................171 アップダウンカウンタ / タイマ 8/16 ビットアップダウンカウンタ / タイマの 特長 .................................................................. 158 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................160 アップダウンカウントレジスタ アップダウンカウントレジスタ 0/1 (UDCR0, UDCR1) ...........................................169 アップダウンカウントレジスタ (UDCR) への データの書込み .............................................. 177 アドレスレジスタ アドレスレジスタ (IADR) ................................... 345 アドレッシング ダイレクトアドレッシング領域 .................... 32, 45 アドレッシングモード アドレッシングモードの記号 ............................456 アナログ入力制御レジスタ アナログ入力制御レジスタ (AICR) ...................155 アルゴリズム 自動アルゴリズム実行状態 ................................409 アンダフロー アンダフロー動作 ................................................187 U UART UART 使用上の注意 .............................................332 UART に関連する割込み .....................................310 UART の端子 .........................................................296 UART の端子のブロックダイヤグラム .............297 UART の動作 .........................................................321 UART の特長 .........................................................292 UART のブロックダイヤグラム .........................294 UART のレジスタ一覧 .........................................298 UART の割込み .....................................................309 UART ボーレート選択 .........................................313 UART ボーレート選択回路 .................................314 UART ボーレート選択回路 UART ボーレート選択回路 .................................314 UDCR アップダウンカウントレジスタ 0/1 (UDCR0, UDCR1) ...........................................169 アップダウンカウントレジスタ (UDCR) への データの書込み ..............................................177 User Stack Pointer USP (User Stack Pointer) ..........................................42 USP USP (User Stack Pointer) ..........................................42 W WPR ウォッチドッグリセット発生延期レジスタ (WPR) .................................................................72 WTCR リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) .............................66 い 位相差カウントモード 位相差カウントモード (2 逓倍 /4 逓倍 ) ............172 インプットキャプチャコントロールレジスタ インプットキャプチャコントロールレジスタ (ICS01, ICS23) ................................................. 226 インプットキャプチャデータレジスタ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) .............................................226 インプットデータレジスタ インプットデータレジスタ (SIDR0 ∼ SIDR3) ........................................................................... 305 う ウェイトサイクル ウェイトサイクル ................................................125 ウェイトサイクルタイミング 外部ウェイトサイクルタイミング .................... 136 自動ウェイトサイクルタイミング .................... 135 ウェイトレジスタ FWTC: ウェイトレジスタ ................................... 407 476 索引 ウォッチドッグ周期制御レジスタ リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) .............................66 ウォッチドッグ制御部 ウォッチドッグ制御部のブロック ダイヤグラム ....................................................75 ウォッチドッグタイマ ウォッチドッグタイマ機能について ...................28 ウォッチドッグタイマ機能の設定 .......................75 ウォッチドッグリセット発生延期レジスタ ウォッチドッグリセット発生延期レジスタ (WPR) .................................................................72 え エッジモード エッジモード時の注意事項 .................................370 エミュレータデバッガ エミュレータデバッガ / モニタデバッガ ..........................................................................454 エラー エラーの未検出 .....................................................453 エリア選択レジスタ エリア選択レジスタ (ASR) とエリアマスク レジスタ (AMR) ................................................96 エリアマスクレジスタ エリア選択レジスタ (ASR) とエリアマスク レジスタ (AMR) ................................................96 エリアモードレジスタ エリアモードレジスタ 0 (AMD0) .........................99 エリアモードレジスタ 1 (AMD1) .......................101 エリアモードレジスタ 32 (AMD32) ...................102 エリアモードレジスタ 4 (AMD4) .......................103 エリアモードレジスタ 5 (AMD5) .......................104 お オーダリング バイトオーダリング ...............................................43 ビットオーダリング ...............................................43 オープンドレイン出力 オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................147 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................149 オープンドレイン出力付き入出力ポート オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................149 オープンドレイン制御レジスタ オープンドレイン制御レジスタ (OCRH, OCRI) ..........................................................................154 オール "H" PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................213 オール "L" PWM 出力オール "L" またはオール "H" の 出力方法例 ......................................................213 オプション 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................449 か 外形寸法図 FPT-144P-M01 の外形寸法図 (MB91F155A のみ ) ..............................................................................9 FPT-144P-M08 の外形寸法図 ..................................8 PGA-299C-A01 の外形寸法図 (MB91FV150 のみ ) ..............................................................................7 外部アクセス ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ...................................... 110 外部ウェイトサイクルタイミング 外部ウェイトサイクルタイミング .................... 136 外部クロック 外部クロックについて .......................................... 28 外部クロックによるボーレート ........................ 320 外部端子制御レジスタ 外部端子制御レジスタ 0 (EPCR0) ...................... 105 外部端子制御レジスタ 1 (EPCR1) ...................... 108 外部デバイス 外部デバイスとの接続例 ............................116, 120 外部バス 外部バス動作のプログラム例 ............................140 外部バスアクセス 外部バスアクセス ................................................113 外部バスリクエスト 外部バスリクエスト ............................................ 125 外部リセット 外部リセット入力について ..................................28 外部割込み 外部割込みの動作 ................................................241 外部割込みの動作手順 ........................................ 241 外部割込み要求レベル ........................................ 242 外部割込みを使用したクロック発振停止した STOP 状態からの復帰時における注意事項 ..........................................................................242 外部割込み制御部 外部割込み制御部のブロックダイヤグラム ..........................................................................236 外部割込み制御部のレジスタ一覧 .................... 237 外部割込み要因レジスタ 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register 0, 1) ........................ 239 外部割込み要求レベル設定レジスタ 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register 0, 1) ............. 240 回路 回路の取扱い .......................................................... 27 カウンタ カウンタの動作状態 ............................................ 189 カウンタコントロールレジスタ カウンタコントロールレジスタ "H"/"L"ch.0 (CCR H/L ch.0) ................................................163 カウンタコントロールレジスタ "H"/"L" (CCR H/L ch.1) ................................................166 カウンタステータスレジスタ カウンタステータスレジスタ 0/1 (CSR0, CSR1) ..........................................................................167 カウントクリア / ゲート カウントクリア / ゲート機能 ............................. 177 477 索引 カウントタイミング 16 ビットフリーランタイマのカウント タイミング ......................................................230 カウント方向転換フラグ カウント方向転換フラグ .....................................178 カウント方向フラグ カウント方向フラグ .............................................178 カウントモード カウントモード選択 .............................................171 加減算命令 加減算命令 .............................................................459 カレンダー値 カレンダー値設定 .................................................400 カレンダー値読出し カレンダー値読出し .............................................400 カレンダーテストレジスタ CAS ( カレンダーテストレジスタ ) ...................399 カレンダーブロックリード / ライト制御レジスタ CAC ( カレンダーブロックリード / ライト制御 レジスタ ) ........................................................397 カレンダーマクロ カレンダーマクロのブロックダイヤグラム ..........................................................................396 カレンダーマクロのレジスタ一覧 .....................396 カレンダマクロ 時計機能 ( カレンダマクロ ) を使用していない 場合 ....................................................................30 関数 文字列操作関数使用時の -K lib オプションの 指定 ..................................................................449 文字列操作関数を使った文字型配列以外の操作 ..........................................................................449 き ギア制御部 ギア制御部のブロックダイヤグラム ...................77 ギア制御レジスタ ギア制御レジスタ (GCR) .......................................70 基本構成 MB91F155A シリアルオンボード書込み基本構成 ..........................................................................424 基本入出力ポート 基本入出力ポートの ブロックダイヤグラム ..................................145 基本プログラミングモデル 基本プログラミングモデル ...................................37 基本ライトサイクルタイミング 基本ライトサイクルタイミング .........................128 基本リードサイクルタイミング 基本リードサイクルタイミング .........................126 競合 SCC,MSS,INT ビットの競合 ...............................342 く クリアタイミング 16 ビットフリーランタイマのクリアタイミング ..........................................................................230 クロック PLL クロックモード動作中の注意に X ついて ............................................................................28 478 PLL のクロック設定例 .......................................... 81 外部クロックについて .......................................... 28 外部クロックによるボーレート ........................ 320 クロック系統参考図 .............................................. 82 クロック選択方法 ................................................138 原発振クロック周波数について ........................ 425 内部クロック動作 ................................................186 クロックコントロールレジスタ クロックコントロールレジスタ (ICCR) ........... 346 クロック発生部 クロック発生部のブロックダイヤグラム ............................................................................65 クロック発生部のレジスタ構成 .......................... 64 け ゲート カウントクリア / ゲート機能 ............................. 177 月のデータレジスタ CA6 ( 月のデータレジスタ ) ............................... 399 検出 0 検出 ..................................................................... 387 1 検出 ..................................................................... 387 変化点検出 ............................................................ 387 検出結果レジスタ 検出結果レジスタ (BSRR) ..................................386 原発振クロック 原発振クロック周波数について ........................ 425 こ 構造体代入 構造体代入 ............................................................ 448 コプロセッサエラートラップ コプロセッサエラートラップ ..............................60 コプロセッサ制御命令 コプロセッサ制御命令 ........................................ 470 コプロセッサ不在トラップ コプロセッサ不在トラップ ..................................59 コマンドシーケンス コマンドシーケンス ............................................ 410 コントロールステータスレジスタ コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............................197 コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ..................................183 コンペア コンペア機能起動時 ............................................ 175 コンペアクリアレジスタ コンペアクリアレジスタ .................................... 220 コンペア検出フラグ コンペア検出フラグ ............................................ 178 コンペアレジスタ コンペアレジスタ (OCCP0 ∼ OCCP7) ..............223 さ サイクルタイミング リード / ライト混在サイクルタイミング ..........................................................................134 索引 最小接続例 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 し ジェネラルコントロールレジスタ ジェネラルコントロールレジスタ 1 (GCN1) .............................................................204 ジェネラルコントロールレジスタ 2 (GCN2) .............................................................207 ジェネラルコントロールレジスタを使った複数 チャネルの起動 ..............................................214 システム構成 AF200 フラッシュマイコンプログラマ システム 構成 ( 株式会社ワイ・ディ・シー製 ) ..........................................................................425 自動アルゴリズム 自動アルゴリズム実行状態 .................................409 自動ウェイトサイクルタイミング 自動ウェイトサイクルタイミング .....................135 時のデータレジスタ CA3 ( 時のデータレジスタ ) ...............................398 シフト命令 シフト命令 .............................................................461 シミュレータデバッガ シミュレータデバッガ .........................................454 周辺ストップ制御 周辺ストップ制御の動作と注意事項 .................390 周辺ストップ制御のレジスタ一覧 .....................390 受信割込み 受信割込み発生とフラグセットのタイミング ..........................................................................311 出力端子 出力端子機能 .........................................................188 乗除算命令 乗除算命令 .............................................................461 乗除算レジスタ 乗除算レジスタ (Multiply & Divide Register) ............................................................................42 状態遷移図 低消費電力モードの状態遷移図 ...........................90 初期化 リセットによる初期化 ...........................................61 初期値付き変数 初期値付き変数の配置 .........................................448 初期リセット 初期リセット .........................................................400 シリアルオンボード書込み MB91F155A シリアルオンボード書込み基本構成 ..........................................................................424 富士通標準シリアルオンボード書込みに 使用する端子 ..................................................424 シリアル書込み シリアル書込み接続例 .........................................425 シングル シングル / ブロック転送モード .........................363 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................366 シングルチップモード 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 内部ベクタモード ( シングルチップモード ): 標準接続例 ......................................................426 す スタック スタックのリトルエンディアン領域への配置 ..........................................................................450 割込みスタック ......................................................53 スタンバイ制御レジスタ スタンバイ制御レジスタ (STCR) .........................68 スタンバイモード スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 258 ステータスレジスタ FLCR: ステータスレジスタ (CPU モード ) ........................................................................... 405 ステータスレジスタ (SSR0 ∼ SSR3) ................ 303 ステップ転送 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................366 ステップトレーストラップ ステップトレーストラップの動作 ...................... 58 ストップ 周辺ストップ制御の動作と注意事項 ................ 390 周辺ストップ制御のレジスタ一覧 .................... 390 スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 258 ストップからの復帰 ............................................ 241 ストップ状態からの復帰 ...................................... 86 ストップ状態の概要 .............................................. 84 ストップ状態への移行 .......................................... 85 ストップ制御部 ストップ制御部のブロックダイヤグラム ..........85 ストップ制御レジスタ ストップ制御レジスタ 0 (STPR0) ...................... 391 ストップ制御レジスタ 1 (STPR1) ...................... 391 ストップ制御レジスタ 2 (STPR2) ...................... 393 スリープ スタンバイモード ( ストップ / スリープ ) からの 復帰 .................................................................. 258 スリープ状態からの復帰 ...................................... 89 スリープ状態の概要 .............................................. 84 スリープ状態への移行 .......................................... 88 スリープ制御部 スリープ制御部のブロックダイヤグラム ..........88 スリープモード スリープモード中の DMA 転送動作 ................. 373 せ 制御信号 データバス幅と制御信号との関係 ............110, 111 制御レジスタ 制御レジスタ ........................................................ 260 制御レジスタ (SCR0 ∼ SCR3) ............................299 セクション セクション ............................................................ 451 セクション種別の制限 ........................................ 453 セクタアドレス セクタアドレス表 ................................................404 479 索引 セクタ消去 データ消去を行う ( セクタ消去 ) .......................420 接続例 外部デバイスとの接続例 .............................116, 120 シリアル書込み接続例 .........................................425 センス リクエストのセンスと各転送モードの組合せ ..........................................................................365 センスモード DREC 信号のセンスモード .................................365 専用ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................315 そ 送信割込み 送信割込み発生とフラグセットのタイミング ..........................................................................312 双方向通信 双方向通信機能 .....................................................328 ソース アセンブラのソース例 (PLL 系への切替え動作の 例 ) ......................................................................82 即値セット 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................461 即値転送命令 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................461 その他の命令 その他の命令 .........................................................465 た タイマコントロールステータスレジスタ タイマコントロールステータスレジスタ (TCCS) ..........................................................................220 タイマベースタイマ タイマベースタイマ ...............................................76 タイマモード タイマモード〔ダウンカウント〕.......................171 タイミング図 タイミング図で使用している記号 .....................374 タイミングチャート PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) .................................212 タイムベースタイマクリアレジスタ タイムベースタイマクリアレジスタ (CTBR) ............................................................................69 ダイレクトアドレッシング ダイレクトアドレッシング領域 .....................32, 45 ダイレクトアドレッシング命令 ダイレクトアドレッシング命令 .........................470 ダウンカウント タイマモード〔ダウンカウント〕.......................171 多機能タイマ 多機能タイマの構成 .............................................216 多機能タイマの動作説明 .....................................228 多機能タイマのブロックダイヤグラム .............218 多機能タイマのレジスタ .....................................219 480 端子機能 端子機能説明 .......................................................... 13 端子状態 各 CPU ステートにおける端子状態 ...................441 端子状態表 端子状態表の用語 ................................................440 端子処理 端子処理 .................................................................. 26 端子のブロックダイヤグラム UART の端子のブロックダイヤグラム ............297 端子配列 MB91F155A, MB91155, MB91154 (FPT-144P-M08), MB91F155A (FPT-144P-M01) の端子配列 ............................................................................12 MB91FV150 (PGA-299C-A01) の端子配列 ............................................................................10 単発変換モード 単発変換モードの動作 ........................................ 279 ち 遅延スロット付き分岐命令 遅延スロット付き分岐命令 ..................................48 遅延スロット付き分岐命令の制限事項 ..............49 遅延スロット付き分岐命令の動作 ...................... 48 遅延スロットなし分岐命令 遅延スロットなし分岐命令 ..................................50 遅延スロットなし分岐命令の動作 ...................... 50 遅延分岐マクロ命令 20 ビット遅延分岐マクロ命令 ........................... 467 32 ビット遅延分岐マクロ命令 ........................... 469 遅延分岐命令 遅延分岐命令 ........................................................ 464 遅延割込み制御レジスタ 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) .............................................. 247 遅延割込みモジュール 遅延割込みモジュールのブロックダイヤグラム ..........................................................................246 遅延割込みモジュールのレジスタ一覧 ............246 チップ消去 データ消去を行う ( チップ消去 ) .......................420 チップセレクト チップセレクト領域 .............................................. 92 チャネル間優先順位 チャネル間優先順位 ............................................ 372 つ 通常極性 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 212 通常バスアクセス 通常バスアクセス ................................................125 通常分岐 通常分岐 ( 遅延なし ) 命令 ..................................463 通常分岐マクロ命令 20 ビット通常分岐マクロ命令 ........................... 466 32 ビット通常分岐マクロ命令 ........................... 468 通信プリスケーラコントロールレジスタ 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) ........................................ 307 索引 て 停止変換モード 停止変換モードの動作 .........................................280 低消費電力モード 低消費電力モードの状態遷移図 ...........................90 低消費電力モードの動作一覧 ...............................84 ディスクリプタ ディスクリプタ先頭ワード .................................360 ディスクリプタ第 2 ワード .................................362 ディスクリプタ第 3 ワード .................................362 ディスクリプタアクセス ディスクリプタアクセス部 .................................375 逓倍 位相差カウントモード (2 逓倍 /4 逓倍 ) ............172 データ データ書込み上の注意 .........................................418 データアクセス データアクセス .......................................................44 データ消去 データ消去を行う ( セクタ消去 ) .......................420 データ消去を行う ( チップ消去 ) .......................420 データ転送部 データ転送部 ,16/8 ビットデータ ......................377 データバス幅 データバス幅 .................................................113, 119 データバス幅と制御信号との関係 .............110, 111 データフォーマット データフォーマット .....................................112, 117 データ方向レジスタ データ方向レジスタ (DDR) ................................151 データレジスタ データレジスタ (IDAR) .......................................345 データレジスタ (TCDT) .......................................220 電源投入時の注意 電源投入時の注意 ...................................................29 転送 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................366 転送の終了動作 ( いずれか一方のアドレスは固定 である場合 ) ....................................................380 転送の終了動作 ( 両方のアドレスが変化する 場合 ) ................................................................381 転送受付信号出力 転送受付信号出力 .................................................371 転送終了信号出力 転送終了信号出力 .................................................371 転送モード シングル / ブロック転送モード .........................363 と 同期モード 同期モード ( 動作モード 2) 時の動作 ................326 動作モード 動作モード ...............................................................62 同時起動時 リロード / コンペア機能同時起動時 .................175 時計 時計機能 ( カレンダマクロ ) を使用していない場 合 ........................................................................30 トラップ コプロセッサエラートラップ ..............................60 コプロセッサ不在トラップ ..................................59 な 内部アーキテクチャ 内部アーキテクチャ .............................................. 34 内部クロック 内部クロック動作 ................................................186 内部タイマ 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................318 内部ベクタモード 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 内部ベクタモード ( シングルチップモード ): 標準接続例 ......................................................426 に 日のデータレジスタ CA4 ( 日のデータレジスタ ) ............................... 398 入出力回路形式 入出力回路形式 ......................................................21 入出力ポート オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................147 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................149 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................146 ね 年のデータレジスタ CA7 ( 年のデータレジスタ ) ............................... 399 は バースト転送 バースト転送 ........................................................ 368 バースト転送モード バースト転送モード ............................................ 364 ハードウェア構成 ハードウェア構成 ................................................260 割込みコントローラのハードウェア構成 ..........................................................................250 ハードウェアシーケンスフラグ ハードウェアシーケンスフラグ ........................ 413 ハーフワードアクセス ハーフワードアクセス ........................................ 122 バイトアクセス バイトアクセス ....................................................123 バイトオーダリング バイトオーダリング .............................................. 43 バスアクセス 外部バスアクセス ................................................113 通常バスアクセス ................................................125 ビッグエンディアンのバスアクセス ................ 110 481 索引 リトルエンディアンのバスアクセス .................110 バスインタフェース バスインタフェース ...............................................93 バスインタフェースの特長 ...................................92 バスインタフェースのブロック ダイヤグラム ....................................................94 バスインタフェースのレジスタ構成 ...................95 バス権解放 バス権解放 .............................................................137 バス権獲得 バス権獲得 .............................................................137 バスコントロールレジスタ バスコントロールレジスタ (IBCR) ....................337 バスステータスレジスタ バスステータスレジスタ (IBSR) ........................343 バスリクエスト 外部バスリクエスト .............................................125 汎用レジスタ 汎用レジスタ ...........................................................37 ひ 比較演算命令 比較演算命令 .........................................................459 ビッグエンディアン ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ......................................110 ビッグエンディアンのバスアクセス .................110 リトルエンディアンとビッグエンディアンの 相違点 ..............................................................117 ビット SCC,MSS,INT ビットの競合 ...............................342 ビットオーダリング ビットオーダリング ...............................................43 ビットサーチモジュール ビットサーチモジュールのブロックダイヤグラム ..........................................................................384 ビットサーチモジュールのレジスタ一覧 ..........................................................................384 ビット操作命令 ビット操作命令 .....................................................460 非同期モード 非同期モード ( 動作モード 0, 1) 時の動作 ..........................................................................323 秒のデータレジスタ CA1 ( 秒のデータレジスタ ) ...............................397 ふ 複数チャネル ジェネラルコントロールレジスタを使った 複数チャネルの起動 ......................................214 富士通標準シリアルオンボード書込み 富士通標準シリアルオンボード書込みに使用する 端子 ..................................................................424 フラグ カウント方向転換フラグ .....................................178 カウント方向フラグ .............................................178 コンペア検出フラグ .............................................178 フラグセットのタイミング 受信割込み発生とフラグセットのタイミング ..........................................................................311 482 送信割込み発生とフラグセットのタイミング ..........................................................................312 フラッシュマイコンプログラマ AF200 フラッシュマイコンプログラマ システム 構成 ( 株式会社ワイ・ディ・シー製 ) ..........................................................................425 フラッシュメモリ フラッシュメモリ書込み / 消去の概要 ............. 416 フラッシュメモリ書込み手順 ............................418 フラッシュメモリの概要 .................................... 402 フラッシュメモリのブロック ダイヤグラム ..................................................403 フラッシュメモリのメモリマップ .................... 403 プルアップ抵抗制御レジスタ プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) ........................................................................... 153 プルアップ抵抗付き入出力ポート オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ........................................................................... 147 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................146 プログラミングモード FR-CPU プログラミングモード (16 ビット , リード / ライト ) .............................................408 プログラミングモデル 基本プログラミングモデル ..................................37 プログラム プログラム以外のリセット延期要因 .................. 76 プログラム例の仕様 ............................................ 139 プログラムアクセス プログラムアクセス .............................................. 44 プログラム例 外部バス動作のプログラム例 ............................140 ブロックダイヤグラム 16 ビットリロードタイマの ブロックダイヤグラム ..................................181 8/10 ビット A/D コンバータの端子の ブロックダイヤグラム ..................................268 8/10 ビット A/D コンバータの ブロックダイヤグラム ..................................265 8/16 ビットアップダウンカウンタ / タイマの ブロックダイヤグラム ..................................160 8 ビット D/A コンバータの ブロックダイヤグラム ..................................285 DMA コントローラのブロックダイヤグラム ..........................................................................353 I2C インタフェースのブロックダイヤグラム ..........................................................................335 MB91154 のブロックダイヤグラム .......................6 MB91FV150, MB91F155A, MB91155 の ブロックダイヤグラム ......................................5 PPG タイマ 1 チャネル分の ブロックダイヤグラム ..................................194 PPG タイマ全体のブロックダイヤグラム ........................................................................... 193 UART の端子のブロックダイヤグラム ............297 UART のブロックダイヤグラム ........................ 294 ウォッチドッグ制御部のブロック ダイヤグラム ....................................................75 オープンドレイン出力機能 , プルアップ抵抗付き 入出力ポートのブロックダイヤグラム ..........................................................................147 索引 オープンドレイン出力付き入出力ポートの ブロックダイヤグラム ..................................149 外部割込み制御部のブロックダイヤグラム ..........................................................................236 各ポートのブロックダイヤグラム .....................144 カレンダーマクロのブロックダイヤグラム ..........................................................................396 ギア制御部のブロックダイヤグラム ...................77 基本入出力ポートのブロックダイヤグラム ..........................................................................145 クロック発生部のブロックダイヤグラム ...........65 ストップ制御部のブロックダイヤグラム ...........85 スリープ制御部のブロックダイヤグラム ...........88 多機能タイマのブロックダイヤグラム .............218 遅延割込みモジュールのブロックダイヤグラム ..........................................................................246 バスインタフェースのブロックダイヤグラム ............................................................................94 ビットサーチモジュールのブロックダイヤグラム ..........................................................................384 フラッシュメモリのブロックダイヤグラム ..........................................................................403 プルアップ抵抗付き入出力ポートの ブロックダイヤグラム ..................................146 リセット要因保持回路のブロックダイヤグラム ............................................................................79 割込みコントローラのブロックダイヤグラム ..........................................................................251 ブロック転送 ステップ転送 ( シングル / ブロック転送 ) ..........................................................................366 ブロック転送モード シングル / ブロック転送モード .........................363 分岐 通常分岐 ( 遅延なし ) 命令 ..................................463 分岐マクロ命令 20 ビット遅延分岐マクロ命令 ............................467 20 ビット通常分岐マクロ命令 ............................466 32 ビット遅延分岐マクロ命令 ............................469 32 ビット通常分岐マクロ命令 ............................468 分岐命令 遅延スロット付き分岐命令 ...................................48 遅延スロット付き分岐命令の制限事項 ...............49 遅延スロット付き分岐命令の動作 .......................48 遅延スロットなし分岐命令 ...................................50 遅延スロットなし分岐命令の動作 .......................50 遅延分岐命令 .........................................................464 分のデータレジスタ CA2 ( 分のデータレジスタ ) ...............................398 変化点検出用データレジスタ 変化点検出用データレジスタ (BSDC) ..............386 変換モード 8/10 ビット A/D コンバータの変換モード ..........................................................................264 単発変換モードの動作 ........................................ 279 停止変換モードの動作 ........................................ 280 連続変換モードの動作 ........................................ 279 変数 初期値付き変数の配置 ........................................ 448 ほ ポート 各ポートのブロックダイヤグラム .................... 144 基本入出力ポートの ブロックダイヤグラム ..................................145 ポートデータレジスタ ポートデータレジスタ (PDR) ............................. 150 ホールドリクエスト取下げ要求 ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準 ........................... 259 ホールドリクエスト取下げ要求 シーケンス ......................................................261 ホールドリクエスト取下げ要求の設定可能な レベル .............................................................. 259 ホールドリクエスト取下げ要求レベル設定レジスタ ホールドリクエスト取下げ要求レベル設定 レジスタ (HRCL:Hold Request Cancel Level register) .............................................................255 ボーレート UART ボーレート選択 ........................................ 313 UART ボーレート選択回路 ................................314 外部クロックによるボーレート ........................ 320 専用ボーレートジェネレータによるボーレート ..........................................................................315 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................318 ボーレートジェネレータ 専用ボーレートジェネレータによるボーレート ..........................................................................315 保護機能 A/D 変換データ保護機能 .................................... 281 ま マスタ / スレーブ型通信 マスタ / スレーブ型通信機能 ............................. 330 へ み ベクタテーブル ベクタテーブル .......................................................54 ベクタテーブル初期領域 .......................................45 ベクタモード 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 内部ベクタモード ( シングルチップモード ): 標準接続例 ......................................................426 変化点検出 変化点検出 .............................................................387 未定義命令 未定義命令例外の動作 .......................................... 59 め 命令 20 ビット遅延分岐マクロ命令 20 ビット通常分岐マクロ命令 32 ビット遅延分岐マクロ命令 32 ビット通常分岐マクロ命令 ........................... 467 ........................... 466 ........................... 469 ........................... 468 483 索引 FR ファミリの命令一覧表 ...................................458 INTE 命令の動作 .....................................................58 INT 命令の動作 .......................................................58 RETI 命令の動作 .....................................................60 加減算命令 .............................................................459 コプロセッサ制御命令 .........................................470 シフト命令 .............................................................461 乗除算命令 .............................................................461 即値セット /16 ビット /32 ビット即値転送命令 ..........................................................................461 その他の命令 .........................................................465 ダイレクトアドレッシング命令 .........................470 遅延スロット付き分岐命令 ...................................48 遅延スロット付き分岐命令の制限事項 ...............49 遅延スロット付き分岐命令の動作 .......................48 遅延スロットなし分岐命令 ...................................50 遅延スロットなし分岐命令の動作 .......................50 遅延分岐命令 .........................................................464 通常分岐 ( 遅延なし ) 命令 ..................................463 比較演算命令 .........................................................459 ビット操作命令 .....................................................460 命令一覧表の読み方 .............................................455 命令概要 ...................................................................46 命令フォーマット .................................................457 メモリストア命令 .................................................462 メモリロード命令 .................................................462 リソース命令 .........................................................470 レジスタ間転送命令 .............................................463 論理演算命令 .........................................................460 メモリストア命令 メモリストア命令 .................................................462 メモリマップ MB91150 のメモリマップ .....................................45 MB91154 のメモリマップ .....................................33 MB91FV150, MB91F155A, MB91155 の メモリマップ ....................................................32 フラッシュメモリのメモリマップ .....................403 メモリロード命令 メモリロード命令 .................................................462 も モード DREC 信号のセンスモード .................................365 FLCR: ステータスレジスタ (CPU モード ) ...........................................................................405 FR-CPU ROM モード (32 ビット , リードのみ ) ..........................................................................408 FR-CPU プログラミングモード (16 ビット , リード / ライト ) ........................408 アップ / ダウンカウントモード .........................171 アドレッシングモードの記号 .............................456 位相差カウントモード (2 逓倍 /4 逓倍 ) ............172 エッジモード時の注意事項 .................................370 カウントモード選択 .............................................171 各モードでのライトサイクルタイミング ..........................................................................132 各モードでのリードサイクルタイミング ..........................................................................130 シングル / ブロック転送モード .........................363 スタンバイモード ( ストップ / スリープ ) からの 復帰 ..................................................................258 484 スリープモード中の DMA 転送動作 ................. 373 タイマモード〔ダウンカウント〕...................... 171 低消費電力モードの動作一覧 ..............................84 動作モード .............................................................. 62 内部ベクタモード ( シングルチップモード ): AF200 との最小接続例 ..................................427 内部ベクタモード ( シングルチップモード ): 標準接続例 ......................................................426 バースト転送モード ............................................ 364 非同期モード ( 動作モード 0, 1) 時の動作 ..........................................................................323 モード端子 .............................................................. 62 モードデータ .......................................................... 63 リクエストのセンスと各転送モードの組合せ ..........................................................................365 レベルモード時の注意事項 ................................369 連続転送モード ....................................................363 連続転送モードでの転送停止 ( いずれか一方の アドレスは固定である場合 ), 16/8 ビットデータ .......................................... 378 モードレジスタ モードレジスタ (MODR) .....................................109 モードレジスタ (SMR0 ∼ SMR3) ...................... 301 文字列操作関数 文字列操作関数使用時の -K lib オプションの指定 ..........................................................................449 文字列操作関数を使った文字型配列以外の操作 ..........................................................................449 モニタデバッガ エミュレータデバッガ / モニタデバッガ ..........................................................................454 ゆ ユーザ割込み ユーザ割込みの動作 .............................................. 57 優先順位 EIT 要因受理の優先順位 .......................................55 優先順位判定 優先順位判定 ........................................................ 256 優先度 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................372 よ 曜日のデータレジスタ CA5 ( 曜日のデータレジスタ ) ........................... 398 ら ライト リード / ライト混在サイクルタイミング ..........................................................................134 ライトサイクルタイミング 各モードでのライトサイクルタイミング ..........................................................................132 基本ライトサイクルタイミング ........................ 128 ラッチアップ防止 ラッチアップ防止 ..................................................26 索引 り れ リード リード / ライト混在サイクルタイミング ..........................................................................134 リード / ライト混在サイクルタイミング リード / ライト混在サイクルタイミング ..........................................................................134 リードサイクルタイミング 各モードでのリードサイクルタイミング ..........................................................................130 基本リードサイクルタイミング .........................126 リセット 外部リセット入力について ...................................28 初期リセット .........................................................400 プログラム以外のリセット延期要因 ...................76 読出し / リセット状態にする .............................417 リセットシーケンス ...............................................61 リセットによる初期化 ...........................................61 リセット発生延期 ...................................................76 リセット延期要因 プログラム以外のリセット延期要因 ...................76 リセット発生延期 リセット発生延期 ...................................................76 リセット要因 リセット要因 ...........................................................61 リセット要因保持回路 リセット要因保持回路のブロック ダイヤグラム ....................................................79 リセット要因レジスタ リセット要因レジスタ (RSRR) とウォッチドッグ 周期制御レジスタ (WTCR) .............................66 リソース リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ......................................372 リソース命令 リソース命令 .........................................................470 リトルエンディアン スタックのリトルエンディアン領域への配置 ..........................................................................450 ビッグエンディアンとリトルエンディアンの 外部アクセスの比較 ......................................110 リトルエンディアンとビッグエンディアンの 相違点 ..............................................................117 リトルエンディアンのバスアクセス .................110 リトルエンディアンレジスタ リトルエンディアンレジスタ (LER) .................109 リロード リロード機能起動時 .............................................174 リロード / コンペア リロード / コンペア機能 .....................................174 リロード / コンペア機能同時起動時 .................175 リロード / コンペアレジスタ リロード / コンペアレジスタ 0/1 (RCR0, RCR1) ..................................................170 リロードタイマ 16 ビットリロードタイマの特長 ........................180 内部タイマ (16 ビットリロードタイマ 0) による ボーレート ......................................................318 例外 未定義命令例外の動作 .......................................... 59 レジスタ間転送命令 レジスタ間転送命令 ............................................ 463 レディ / ビジー信号 レディ / ビジー信号 (RDY/BUSYX) .................. 413 レベルマスク 割込みに対するレベルマスク ..............................52 レベルモード レベルモード時の注意事項 ................................369 連続転送 連続転送 ................................................................ 367 連続転送モード 連続転送モード ....................................................363 連続転送モードでの転送停止 ( いずれか一方の アドレスは固定である場合 ), 16/8 ビットデータ .......................................... 378 連続転送モードでの転送停止 ( 両方のアドレスが 変化する場合 ), 16/8 ビットデータ ..............379 連続変換モード 連続変換モードの動作 ........................................ 279 ろ 論理演算命令 論理演算命令 ........................................................ 460 わ ワードアクセス ワードアクセス ....................................................121 ワイ・ディ・シー製 AF200 フラッシュマイコンプログラマ システム 構成 ( 株式会社ワイ・ディ・シー製 ) ........................................................................... 425 割込み 8/10 ビット A/D コンバータの割込み ............... 278 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 212 UART に関連する割込み .................................... 310 UART の割込み ..................................................... 309 外部割込みの動作 ................................................241 外部割込みの動作手順 ........................................ 241 外部割込み要求レベル ........................................ 242 ユーザ割込みの動作 .............................................. 57 優先度の高い割込み発生時の DMA 転送抑止 ..........................................................................372 リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 372 割込み制御 ............................................................ 409 割込みに対するレベルマスク ..............................52 割込み番号 ............................................................ 248 割込みベクタ ........................................................ 437 割込みレベル .......................................................... 52 割込み許可レジスタ 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register 0, 1) .........................238 割込みコントローラ 割込みコントローラの主要機能 ........................ 250 485 索引 割込みコントローラのハードウェア構成 ..........................................................................250 割込みコントローラのブロックダイヤグラム ..........................................................................251 割込みスタック 割込みスタック .......................................................53 割込み制御 割込み制御のレジスタ一覧 .................................252 割込み制御レジスタ 割込み制御レジスタ (ICR:Interrupt Control Register) ............................................................254 割込み番号 割込み番号 .............................................................248 486 割込みベクタ 割込みベクタ ........................................................ 437 割込み要因 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 ) ................................. 212 割込み要因の解除 ................................................257 割込み要求 リソースの割込み要求を DMA 転送要求として 使用する場合の注意 ...................................... 372 割込みレベル 割込みレベル .......................................................... 52 ワンショット ワンショット動作 ................................................210 CM71-10110-5 富士通半導体デバイス • CONTROLLER MANUAL FR30 32 ビット・マイクロコントローラ MB91150 Series ハードウェアマニュアル 2006 年 6 月 第 5 版発行 発行 富士通株式会社 編集 営業推進統括部 営業推進部 電子デバイス事業本部