8.6MB

本ドキュメントは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 版発行
発行
富士通株式会社
編集
営業推進統括部 営業推進部
電子デバイス事業本部