6.3MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10116-2
FR30
32 ビット・マイクロコントローラ
MB91151A Series
ハードウェアマニュアル
FR30
32 ビット・マイクロコントローラ
MB91151A Series
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を
リストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
MB91151A シリーズ ( 以降 , MB91151A と表記します ) は , 新しい RISC アーキテクチャ
の CPU をコアとした「32 ビット・シングルチップ・マイクロコントローラ FR30 の 1
つとして開発された製品で , CD/DVD 用のマイクロコントローラです。
本書は , 実際にこの MB91151A を使用して製品を開発される技術者の方を対象に ,
MB91151A の機能や動作について解説したものです。本書をご一読ください。なお ,
各種命令の詳細については ,『インストラクション・マニュアル』をご参照ください。
■ 商標
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
i
■ 本書の全体構成
本書は , 以下に示す 19 の章および付録から構成されています。
第1章
概要
この章では , MB91151A の特長 , ブロックダイヤグラム , 機能概要など全体を知るた
めの基本的なことについて説明します。
第2章
デバイスの取扱いについて
この章では , MB91151A の取扱い上の注意について説明します。
第3章
メモリ , CPU および制御部
この章では , FR ファミリの CPU コアの機能を知るために , アーキテクチャ , 仕様 ,
命令などの基本的なことについて説明します。
第4章
バスインタフェース
この章では , バスインタフェースの概要およびバス動作について説明します。
第5章
I/O ポート
この章では , I/O ポートの概要 , 各ポートのブロックダイヤグラムおよびレジスタの
構成 / 機能について説明します。
第6章
8/16 ビットアップダウンカウンタ / タイマ
この章では , 8/16 ビットアップダウンカウンタ / タイマの概要 , ブロックダイヤグラ
ム , レジスタの構成 / 機能および 8/16 ビットアップダウンカウンタ / タイマの動作
について説明します。
第7章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , ブロックダイヤグラム , レジスタの
構成 / 機能および 16 ビットリロードタイマの動作について説明します。
第8章
PPG タイマ
この章では , PPG タイマの概要 , ブロックダイヤグラム , レジスタの構成 / 機能およ
び PPG タイマの動作について説明します。
第9章
多機能タイマ
この章では , 多機能タイマの概要 , ブロックダイヤグラム , レジスタの構成 / 機能お
よび多機能タイマの動作について説明します。
第 10 章 外部割込み制御部
この章では , 外部割込み制御部の概要 , レジスタの構成 / 機能および外部割込み制御
部の動作について説明します。
第 11 章 遅延割込みモジュール
この章では , 遅延割込みモジュールの概要 , レジスタの構成 / 機能および遅延割込み
モジュールの動作について説明します。
第 12 章 割込みコントローラ
この章では , 割込みコントローラの概要 , ブロックダイヤグラム , レジスタの構成 /
機能および割込みコントローラの動作について説明します。
ii
第 13 章 8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの概要 , ブロックダイヤグラム , 端子 , レジ
スタの構成 / 機能 , 割込み , 動作 , A/D 変換データ保護機能および 8/10 ビット A/D
コンバータの使用上の注意事項について説明します。
第 14 章 8 ビット D/A コンバータ
この章では , 8 ビット D/A コンバータの概要 , ブロックダイヤグラム , レジスタの構
成 / 機能および 8 ビット D/A コンバータの動作について説明します。
第 15 章 UART
この章では , UART の概要 , ブロックダイヤグラム , 端子 , レジスタの構成 / 機能 ,
割込み , タイミング , ボーレート , 動作および UART の使用上の注意事項について
説明します。
第 16 章 DMA コントローラ (DMAC)
この章では , DMAC の概要 , ブロックダイヤグラム , レジスタの一覧 / 詳細 , 動作 ,
注意事項 , DMA 転送要式要因および DMAC のタイミングについて説明します。
第 17 章 ビットサーチモジュール
この章では , ビットサーチモジュールの概要 , レジスタの構成 / 機能およびビット
サーチモジュールの待避・復帰の処理について説明します。
第 18 章 周辺ストップ制御
この章では , 周辺ストップ制御の概要 , レジスタの構成 / 機能について説明します。
第 19 章 シリアル起動
この章では , シリアル起動の概要および通信モードについて説明します。
付録
付録には , I/O マップ , 割込みベクタ , 各 CPU ステートにおける端子状態 , リトルエ
ンディアン領域を利用する際の注意事項および命令一覧を掲載しています。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ), ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright ©2002-2006 FUJITSU LIMITED All rights reserved.
iv
本書の読み方
■ 本書の記述形式
以下に本書で使用する主要な用語に関しての説明を示します。
用語
意味
I-bus
内部インストラクション用の 16 ビット幅のバスです。FR ファミリは , 内
部ハーバードアーキテクチャを採用しているため , 命令とデータは独立し
たバスです。I-bus には , バスコンバータが接続されます。
D-bus
内部 32 ビット幅のデータバスです。D-bus には , 内部リソースが接続さ
れます。
C-bus
内部マルチプレクスバスです。スイッチを通して I-bus と D-bus に接続さ
れます。C-bus には外部インタフェースモジュールが接続されます。外部
データバスは , データと命令がマルチプレクスされます。
R-bus
内部 16 ビット幅のデータバスです。R-bus は , アダプタを通して D-bus に
接続されます。
R-bus には , 各種 I/O, クロック発生部 , 割込みコントローラが接続されま
す。
R-bus は 16 ビット幅でかつアドレス , データがマルチプレクスされるた
め , CPU がこれらのリソースにアクセスする場合 , 複数サイクルの時間が
かかります。
E-unit
演算実行ユニットです。
φ
システムクロック。R-bus につながる各内蔵リソースに対してクロック発
生部から出力されるクロック。最速で原発振と同周期ですが , クロック発
生部 GCR レジスタの PCK1, 0 で 1, 1/2, 1/4, 1/8( または 1/2, 1/4, 1/8, 1/16)
に分周されたクロックとなります。
θ
システムクロック。R-bus 以外のバスに接続されるリソースと CPU の動
作クロック。
最速で原発振と同周期ですが , クロック発生部 GCR レジスタの CCK1, 0
で 1, 1/2, 1/4, 1/8( または 1/2, 1/4, 1/8, 1/16) に分周されたクロックとなりま
す。
v
vi
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
第2章
2.1
2.2
2.3
第3章
概要 ............................................................................................................ 1
特長 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 4
外形寸法図.............................................................................................................................. 5
端子配列 ................................................................................................................................. 7
端子機能説明 ........................................................................................................................ 10
入出力回路形式 .................................................................................................................... 17
デバイスの取扱いについて ...................................................................... 21
デバイス取扱い上の注意 ...................................................................................................... 22
各デバイス使用上の注意 ...................................................................................................... 24
電源投入 ............................................................................................................................... 25
メモリ空間 , CPU および制御部 .............................................................. 27
3.1 メモリ空間............................................................................................................................ 28
3.2 CPU アーキテクチャ ............................................................................................................ 29
3.3 命令キャッシュ .................................................................................................................... 32
3.4 プログラミングモデル.......................................................................................................... 40
3.5 データ構造............................................................................................................................ 46
3.6 ワードアライメント ............................................................................................................. 47
3.7 特別なメモリ領域 ................................................................................................................. 48
3.8 命令概要 ............................................................................................................................... 49
3.8.1
遅延スロット付き分岐命令 ........................................................................................ 51
3.8.2
遅延スロットなし分岐命令 ........................................................................................ 53
3.9 EIT( 例外・割込み・トラップ ) ............................................................................................ 54
3.9.1
割込みレベル .............................................................................................................. 55
3.9.2
割込みスタック .......................................................................................................... 56
3.9.3
EIT ベクタテーブル.................................................................................................... 57
3.9.4
多重 EIT 処理.............................................................................................................. 59
3.9.5
EIT 動作...................................................................................................................... 61
3.10 リセットシーケンス ............................................................................................................. 65
3.11 動作モード............................................................................................................................ 66
3.12 クロック発生部 ( 低消費電力メカニズム ) ........................................................................... 68
3.12.1
リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) ......... 70
3.12.2
スタンバイ制御レジスタ (STCR)............................................................................... 72
3.12.3
タイムベースタイマクリアレジスタ (CTBR)............................................................. 73
3.12.4
ギア制御レジスタ (GCR) ........................................................................................... 74
3.12.5
ウォッチドッグリセット発生延期レジスタ (WPR) ................................................... 76
3.12.6
DMA 要求抑止レジスタ (PDRR) ................................................................................ 77
3.12.7
PLL 制御レジスタ (PCTR).......................................................................................... 78
3.12.8
ウォッチドッグ機能 ................................................................................................... 79
3.12.9
ギア機能 ..................................................................................................................... 81
3.12.10
リセット要因保持....................................................................................................... 83
3.12.11
PLL のクロック設定例 ............................................................................................... 85
3.13 低消費電力モード ................................................................................................................. 88
vii
3.13.1
3.13.2
3.13.3
第4章
ストップ状態 .............................................................................................................. 89
スリープ状態 .............................................................................................................. 92
低消費電力モードの状態遷移図 ................................................................................. 95
バスインタフェース................................................................................. 97
4.1 バスインタフェースの概要................................................................................................... 98
4.2 バスインタフェースのブロックダイヤグラム.................................................................... 100
4.3 バスインタフェースのレジスタ ......................................................................................... 101
4.3.1
エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマスクレジスタ (AMR1 ∼ AMR5)
................................................................................................................................. 102
4.3.2
エリアモードレジスタ 0(AMD0) .............................................................................. 105
4.3.3
エリアモードレジスタ 1(AMD1) .............................................................................. 107
4.3.4
エリアモードレジスタ 32(AMD32) .......................................................................... 108
4.3.5
エリアモードレジスタ 4(AMD4) .............................................................................. 109
4.3.6
エリアモードレジスタ 5(AMD5) .............................................................................. 110
4.3.7
外部端子制御レジスタ 0(EPCR0) ............................................................................ 111
4.3.8
外部端子制御レジスタ 1(EPCR1) ............................................................................ 114
4.3.9
リトルエンディアンレジスタ (LER) ........................................................................ 115
4.4 バス動作 ............................................................................................................................. 116
4.4.1
データバス幅と制御信号との関係............................................................................ 117
4.4.2
ビッグエンディアンのバスアクセス ........................................................................ 118
4.4.3
リトルエンディアンのバスアクセス ........................................................................ 124
4.4.4
ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 128
4.5 バスタイミング .................................................................................................................. 132
4.5.1
基本リードサイクル ................................................................................................. 133
4.5.2
基本ライトサイクル ................................................................................................. 135
4.5.3
各モードでのリードサイクル................................................................................... 137
4.5.4
各モードでのライトサイクル................................................................................... 139
4.5.5
リード / ライト混在サイクル.................................................................................... 141
4.5.6
自動ウェイトサイクル ............................................................................................. 142
4.5.7
外部ウェイトサイクル ............................................................................................. 143
4.5.8
外部バスリクエスト ................................................................................................. 144
4.6 内部クロック逓倍動作 ( クロックダブラ ) ......................................................................... 145
4.7 外部バス動作のプログラム例 ............................................................................................. 146
第5章
I/O ポート............................................................................................... 149
5.1
5.2
5.3
5.4
I/O ポートの概要 ................................................................................................................ 150
基本入出力ポートのブロックダイヤグラム ....................................................................... 151
入出力ポート ( プルアップ抵抗付き ) のブロックダイヤグラム ........................................ 152
入出力ポート ( オープンドレイン出力機能 , プルアップ抵抗付き ) のブロックダイヤグラム
............................................................................................................................................ 153
5.5
5.6
5.7
5.8
5.9
5.10
入出力ポート ( オープンドレイン出力機能付き ) のブロックダイヤグラム ...................... 155
ポートデータレジスタ (PDR2 ∼ PDRL)............................................................................ 156
データ方向レジスタ (DDR2 ∼ DDRL) ............................................................................... 158
プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI) .................................................................. 160
オープンドレイン制御レジスタ (OCRH, OCRI) ................................................................ 161
アナログ入力制御レジスタ (AICR)..................................................................................... 162
viii
第6章
8/16 ビットアップダウンカウンタ / タイマ ........................................... 163
6.1 8/16 ビットアップダウンカウンタ / タイマの概要............................................................. 164
6.2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム................................ 166
6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 .............................................. 168
6.3.1
カウンタコントロールレジスタ H/L ch0 (CCRH0/CCRL0 ) .................................... 169
6.3.2
カウンタコントロールレジスタ H/L ch1 (CCRH1/CCRL1) ..................................... 172
6.3.3
カウンタステータスレジスタ 0/1(CSR 0, CSR1) .................................................... 173
6.3.4
アップダウンカウントレジスタ 0/1(UDCR0, UDCR1) ............................................ 175
6.3.5
リロード / コンペアレジスタ 0/1(RCR 0, RCR1)..................................................... 176
6.4 カウントモード選択の動作................................................................................................. 177
6.5 リロード / コンペア機能の動作 .......................................................................................... 180
6.6 アップダウンカウントレジスタ (UDCR0, UDCR1) へのデータの書込み .......................... 183
第7章
16 ビットリロードタイマ ...................................................................... 185
7.1 16 ビットリロードタイマの概要 ........................................................................................ 186
7.2 16 ビットリロードタイマのブロックダイヤグラム ........................................................... 187
7.3 16 ビットリロードタイマのレジスタ一覧.......................................................................... 188
7.3.1
コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) ..................................... 189
7.3.2
16 ビットタイマレジスタ (TMR0 ∼ TMR3)/16 ビットリロードレジスタ (TMRLR0 ∼
TMRLR3) ....................................................................................................................... 191
7.4
7.5
7.6
第8章
内部クロック動作 ............................................................................................................... 192
アンダフロー動作 ............................................................................................................... 193
カウンタの動作状態 ........................................................................................................... 195
PPG タイマ ............................................................................................ 197
8.1 PPG タイマの概要.............................................................................................................. 198
8.2 PPG タイマのブロックダイヤグラム................................................................................. 199
8.3 PPG タイマのレジスタ ...................................................................................................... 201
8.3.1
コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) ............ 203
8.3.2
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) .......................................................... 207
8.3.3
PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) ................................................ 208
8.3.4
PWM タイマレジスタ (PTMR0 ∼ PTMR5).............................................................. 209
8.3.5
ジェネラルコントロールレジスタ 1(GCN1) ............................................................ 210
8.3.6
ジェネラルコントロールレジスタ 2(GCN2) ............................................................ 213
8.4 PWM 動作........................................................................................................................... 214
8.5 ワンショット動作 ............................................................................................................... 216
8.6 PWM タイマの割込み要因とタイミングチャート.............................................................. 218
8.7 ジェネラルコントロールレジスタを使った複数チャネルの起動 ....................................... 220
第9章
多機能タイマ.......................................................................................... 221
9.1 多機能タイマの概要 ........................................................................................................... 222
9.2 多機能タイマのブロックダイヤグラム............................................................................... 224
9.3 多機能タイマのレジスタ .................................................................................................... 225
9.3.1
16 ビットフリーランタイマのレジスタ ................................................................... 226
9.3.2
アウトプットコンペアのレジスタ............................................................................ 229
9.3.3
インプットキャプチャのレジスタ............................................................................ 232
9.4 多機能タイマユニットの動作 ............................................................................................. 234
9.4.1
16 ビットフリーランタイマ部 ................................................................................. 235
9.4.2
16 ビットアウトプットコンペア.............................................................................. 237
ix
9.4.3
16 ビットインプットキャプチャ.............................................................................. 239
第 10 章
外部割込み制御部 .................................................................................. 241
10.1 外部割込み制御部の概要 .................................................................................................... 242
10.2 外部割込み制御部のレジスタ ............................................................................................. 243
10.2.1
割込み許可レジスタ (ENIR0, ENIR1)....................................................................... 244
10.2.2
外部割込み要因レジスタ (EIRR0, EIRR1) ............................................................... 245
10.2.3
外部割込み要求レベル設定レジスタ (ELVR0,ELVR1)............................................. 246
10.3 外部割込み制御部の動作 .................................................................................................... 247
10.4 外部割込み要求レベル........................................................................................................ 248
第 11 章
遅延割込みモジュール ........................................................................... 249
11.1 遅延割込みモジュールの概要 ............................................................................................. 250
11.2 遅延割込み制御レジスタ (DICR) ........................................................................................ 251
11.3 遅延割込みモジュールの動作 ............................................................................................. 252
第 12 章
割込みコントローラ............................................................................... 253
12.1 割込みコントローラの概要................................................................................................. 254
12.2 割込みコントローラのブロックダイヤグラム.................................................................... 255
12.3 割込み制御のレジスタ........................................................................................................ 256
12.3.1
割込み制御レジスタ (ICR00 ∼ ICR47) .................................................................... 258
12.3.2
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL).................................. 259
12.4 優先順位判定 ...................................................................................................................... 260
12.5 スタンバイモード ( ストップ / スリープ ) からの復帰 ....................................................... 263
12.6 ホールドリクエスト取下げ要求 ......................................................................................... 264
12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 ..................................................... 265
第 13 章
8/10 ビット A/D コンバータ................................................................... 269
13.1 8/10 ビット A/D コンバータの概要 .................................................................................... 270
13.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 271
13.3 8/10 ビット A/D コンバータの端子 .................................................................................... 273
13.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 275
13.4.1
A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 276
13.4.2
A/D 制御ステータスレジスタ 0(ADCS0).................................................................. 278
13.4.3
A/D データレジスタ (ADCR) .................................................................................... 281
13.5 割込み ................................................................................................................................. 283
13.6 8/10 ビット A/D コンバータの動作 .................................................................................... 284
13.7 A/D 変換データ保護機能 .................................................................................................... 287
13.8 8/10 ビット A/D コンバータの使用上の注意 ...................................................................... 288
第 14 章
8 ビット D/A コンバータ........................................................................ 289
14.1 8 ビット D/A コンバータの概要 ......................................................................................... 290
14.2 8 ビット D/A コンバータのブロックダイヤグラム............................................................. 291
14.3 8 ビット D/A コンバータのレジスタ .................................................................................. 292
14.3.1
D/A コントロールレジスタ (DACR0, DACR1, DACR2)........................................... 293
14.3.2
D/A データレジスタ (DADR2, DADR1, DADR0)...................................................... 294
14.4 8 ビット D/A コンバータの動作説明 .................................................................................. 295
x
第 15 章
UART ..................................................................................................... 297
15.1 UART の概要 ...................................................................................................................... 298
15.2 UART のブロックダイヤグラム ......................................................................................... 300
15.3 UART の端子 ...................................................................................................................... 302
15.4 レジスタ ............................................................................................................................. 304
15.4.1
制御レジスタ (SCR0 ∼ SCR3) ................................................................................ 305
15.4.2
モードレジスタ (SMR0 ∼ SMR3)............................................................................ 307
15.4.3
ステータスレジスタ (SSR0 ∼ SSR3)...................................................................... 309
15.4.4
インプットデータレジスタ (SIDR0 ∼ SIDR3), アウトプットデータレジスタ
(SODR0 ∼ SODR3) ...................................................................................................... 311
15.4.5
通信プリスケーラコントロールレジスタ (CDCR) ................................................... 313
15.5 UART の割込み................................................................................................................... 315
15.6 受信割込み発生とフラグセットのタイミング.................................................................... 317
15.7 送信割込み発生とフラグセットのタイミング.................................................................... 318
15.8 ボーレート.......................................................................................................................... 319
15.8.1
専用ボーレートジェネレータによるボーレート ...................................................... 321
15.8.2
内部タイマ (16 ビットリロードタイマ 0) によるボーレート................................... 324
15.8.3
外部クロックによるボーレート ............................................................................... 326
15.9 UART の動作 ...................................................................................................................... 327
15.9.1
非同期モード ( 動作モード 0, 1) 時の動作................................................................ 329
15.9.2
同期モード ( 動作モード 2) 時の動作 ....................................................................... 332
15.9.3
双方向通信機能 ( ノーマルモード ) .......................................................................... 334
15.9.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 336
15.10 UART の使用上の注意........................................................................................................ 338
第 16 章
DMA コントローラ (DMAC) .................................................................. 339
16.1 DMA コントローラの概要 .................................................................................................. 340
16.2 DMA コントローラのブロックダイヤグラム...................................................................... 341
16.3 DMA コントローラのレジスタ ........................................................................................... 342
16.3.1
DMAC パラメータディスクリプタポインタ (DPDP) ............................................... 343
16.3.2
DMAC コントロールステータスレジスタ (DACSR) ................................................ 344
16.3.3
DMAC 端子コントロールレジスタ (DATCR) ........................................................... 346
16.3.4
RAM 上のディスクリプタ内レジスタ ...................................................................... 348
16.4 DMA コントローラの転送モード........................................................................................ 351
16.4.1
ステップ転送 ( シングル / ブロック転送 ) ................................................................ 354
16.4.2
連続転送 ................................................................................................................... 355
16.4.3
バースト転送 ............................................................................................................ 356
16.4.4
DREQ センスモードによる違い............................................................................... 357
16.5 転送受付信号出力と転送終了信号出力............................................................................... 359
16.6 DMA コントローラに関する注意事項 ................................................................................ 360
16.7 DMA コントローラのタイミング図 .................................................................................... 362
16.7.1
ディスクリプタアクセス部のタイミング図 ............................................................. 363
16.7.2
データ転送部のタイミング図................................................................................... 365
16.7.3
連続転送モードでの転送停止タイミング図 ............................................................. 366
16.7.4
転送の終了動作タイミング図................................................................................... 368
第 17 章
ビットサーチモジュール........................................................................ 371
17.1 ビットサーチモジュールの概要 ......................................................................................... 372
17.2 ビットサーチモジュールのレジスタ .................................................................................. 373
xi
17.3 ビットサーチモジュールの動作と退避 / 復帰処理 ............................................................. 375
第 18 章
周辺ストップ制御 .................................................................................. 379
18.1 周辺ストップ制御の概要 .................................................................................................... 380
18.2 周辺ストップ制御のレジスタ ............................................................................................. 381
第 19 章
シリアル起動.......................................................................................... 385
19.1 シリアル起動の概要と設定方法 ......................................................................................... 386
19.2 シリアル起動の通信モード................................................................................................. 387
付録
............................................................................................................... 399
付録 A
I/O マップ............................................................................................... 400
付録 B
割込みベクタ.......................................................................................... 407
付録 C
各 CPU ステートにおける端子状態 ....................................................... 410
付録 D
リトルエンディアン領域を利用する際の注意事項 ................................ 417
C コンパイラ (fcc911) ............................................................................................................... 418
アセンブラ (fasm911) ............................................................................................................... 421
リンカ (flnk911) ......................................................................................................................... 423
デバッガ (sim911, eml911, mon911) ........................................................................................ 424
付録 E
命令一覧................................................................................................. 425
FR ファミリの命令一覧表 ......................................................................................................... 429
索引
............................................................................................................... 443
xii
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
-
レジスタ名を変更
( カウンタ制御レジスタ ハイ / ロウ ch0(CCR H/L ch0) →カウンタコントロールレジ
スタ H/L ch0(CCRH0/CCRL0))
( カウンタ制御レジスタ ハイ / ロウ ch1(CCR H/L ch1) →カウンタ制御レジスタ H/L
ch1(CCRH1/CCRL ch1))
( 割込み許可レジスタ (ENIRn) →割込み許可レジスタ (ENIR0, ENIR1))
( 外部割込み要因レジスタ (EIRRn) →外部割込み要因レジスタ (EIRR0, EIRR1))
( アナログ入力許可レジスタ (AICK) →アナログ入力許可レジスタ (AICR))
(D/A コンバータデータレジスタ 0(DADR0) → D/A データレジスタ 0(DADR0))
(D/A コンバータデータレジスタ 1(DADR1) → D/A データレジスタ 1(DADR1))
( 通信プリスケーラ制御レジスタ (CDCR) →通信プリスケーラコントロールレジス
タ (CDCR))
-
端子名を変更
(DREQn → DREQ0 ∼ DREQ2)
(DACKn → DACK0 ∼ DACK2)
(DACKn → DREQ0 ∼ DREQ2)
(WRn → WR0, WR1)
(DEOPn → DEOP0 ∼ DEOP2)
2
● バスインタフェース を変更
(16 ビットアドレス出力→ 24 ビットアドレス出力 )
4
図 1.2-1 ブロックダイヤグラム (MB91V151A, MB91151A) を変更
11
表 1.5-1 端子機能一覧 (2 / 7) Pin No.55 を変更
( 外部リセット出力→外部リセット入力です。)
12
表 1.5-1 端子機能一覧 (3 / 7) Pin No.69 ∼ 74 を変更
15
表 1.5-1 端子機能一覧 (6 / 7) Pin No.116 を変更
(DMA 外部転送終了出力が禁止の場合 , ポートとして使用できます。の文を追加 )
16
表 1.5-1 端子機能一覧 (7 / 7) Pin No.132 ∼ 139 を変更
(AIC レジスタ→ AICR レジスタ )
18
表 1.6-1 入出力回路形式 (2 / 3) 分類 N を変更
(AIC の対応する→ AICR の対応する )
23
● 水晶発振回路について を変更
( 各量産品において,ご使用される発振子メーカに発振評価依頼をしてください。の
文を追加 )
24
■ ウォッチドッグタイマ機能について を追加
25
● 電源電圧不安定 , もしくは電源遮断時の扱いについて を追加
28
図 3.1-1 MB91V151A, MB91151A のメモリマップ を変更
76
[ ビット 7 ∼ビット 0] D7 ∼ D0 を変更
( ただし , ストップ , スリープ時は自動的にクリアを行いますので , これらの条件が
発生すると , ウォッチドッグリセットは自動的に延期されます。の文を削除 )
xiii
ページ
変更内容(詳細は本文を参照してください。)
79
図 3.12-3 ウォッチドッグ制御部のブロックダイヤグラム を変更
(WTx → WT1,WT0)
80
■ プログラム以外のリセット延期要因 を追加
81
図 3.12-6 ギア制御部のブロックダイヤグラム を変更
87
■ アセンブラのソース例 (PLL 系への切換え動作の例 ) を変更
(DBLACK → DBLAK)
123,127
図 4.4-9 外部デバイスとの接続例 , 図 4.4-15 外部デバイスとの接続例 (16 ビットバス
幅 ) および 図 4.4-16 外部デバイスとの接続例 (8 ビットバス幅 ) を変更
(MB91151 → MB91151A)
143
【動作説明】を変更
( 自動ウェイトサイクル中は RDY の検出はせず , 自動ウェイトサイクル後検出しま
す。→自動ウェイトの最終サイクルから RDY を検出します。)
150
■ I/O ポートのレジスタ を変更
( オープンドレイン制御レジスタ (ODCR) →オープンドレイン制御レジスタ (OCR))
151
<注意事項> を変更
(AICK(Analog Input Control register on port-K) → AICR (Analog Input Control register))
166
図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0) を
変更
167
図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1) を
変更
168
図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧 を変更
175
■ アップダウンカウントレジスタ 0/1(UDCR 0, UDCR1) を変更
(D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08)
176
■ リロード / コンペアレジスタ 0/1(RCR 0, RCR1) を変更
(D17 D16 D15 D14 D13 D12 D11 D10 → D15 D14 D13 D12 D11 D10 D09 D08)
179
● 4 逓倍モード を変更
(USS1,USS0,DSS1,DSS0 による→ CCRH の CES1, CES0 による )
183
表 6.6-1 ZIN 端子機能選択 を変更
187
図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム を変更
200
図 8.2-2 PPG タイマ 1 チャネル分のブロックダイヤグラム を変更
(CK →クロック )
201,202
図 8.3-1 PPG タイマのレジスタ一覧 を変更
203
[ ビット 14] STGR: ソフトウェアトリガビット を変更
(TGR → STGR)
224
図 9.2-1 多機能タイマのブロックダイヤグラム を変更
227
[ ビット 4] MODE を変更
(bit3:CLR →ビット 3:SCLR)
229
■ コンペアレジスタ (OCCP0 ∼ OCCP7) に<注意事項> を追加
230
[ ビット 9, ビット 8] ODT1, ODT0 を変更
( アウトプットコンペアレジスタ→コンペアレジスタ )
xiv
ページ
変更内容(詳細は本文を参照してください。)
231
<注意事項> を変更
( アウトプットコンペアレジスタ→コンペアレジスタ )
232
[ ビット 7, ビット 6] ICP3, ICP2, ICP1, ICP0 を変更
([bit 15,14,7,6] → [ ビット 7, ビット 6])
233
[ ビット 5, ビット 4] ICE3, ICE2, ICE1, ICE0 を変更
([bit 13,12,5,4] → [ ビット 5, ビット 4])
233
[ ビット 3 ∼ビット 0] EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00 を変更
([bit 11-8,3-0] → [ ビット 3 ∼ビット 0])
237
図 9.4-5 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0") お
よび 図 9.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は
"0") を変更
(RTO0 →アウトプットコンペア 0)
(RTO1 →アウトプットコンペア 1)
238
<注意事項> を変更
( アウトプットコンペアレジスタ→コンペアレジスタ )
239
図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例 を変更
243
図 10.2-1 外部割込み制御部のレジスタ一覧 を変更
246
表 10.2-1 外部割込み要求レベル設定表 を変更
(LBx → LB15 ∼ LB0)
(Lax → LA15 ∼ LA0)
247
図 10.3-1 外部割込みの動作 を変更
(IL →割込みレベル )
247
■ 外部割込みの動作手順 を変更
(1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート
に設定する。の文を追加 )
255
図 12.2-1 割込みコントローラのブロックダイヤグラム を変更
(RI00 →リソース割込み 00)
(RI47 →リソース割込み 47)
(HLDREQ →ホールドリクエスト )
256,257
12.3 割込み制御のレジスタ を変更
( 割込みコントローラのレジスタ→割込み制御のレジスタ )
260,261
表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 を変更
265
図 12.7-1 ホールドリクエスト取下げ要求信号の流れ を変更
271
図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム を変更
(AVR ±→ AVRH AVRL)
274
図 13.3-1 PK0/AN0 ∼ PK7/AN7 端子のブロックダイヤグラム を変更
(ADER → AICR)
((SPL=1) を削除 )
276
図 13.4-2 A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要 を変更
280
<注意事項> を追加
281
図 13.4-4 A/D データレジスタ (ADCR) のレジスタ構成と機能概要 を変更
(AD データビット→ A/D 変換分解能選択ビット )
xv
ページ
変更内容(詳細は本文を参照してください。)
288
● アナログ入力端子 を変更
294
■ D/A データレジスタ (DADR2, DADR1, DADR0) を変更
([bit 23 ∼ 16] DADR2 → [ ビット 23 ∼ビット 16] DA27 ∼ DA20)
([bit 15 ∼ 8] DADR1 → [ ビット 15 ∼ビット 8] DA17 ∼ DA10)
([bit 7 ∼ 0] DADR0 → [ ビット 7 ∼ビット 0] DA07 ∼ DA00)
306
[ ビット 10] REC: 受信エラーフラグクリアビット を変更
(FRE,DRE,PE → FRE, ORE, PE)
314
<注意事項> を追加
322
表 15.8-2 同期ボーレート分周比の選択 および 表 15.8-3 非同期ボーレート分周比の
選択 を変更
(SCKI の列を削除 )
322
<注意事項> を追加
323
● 内部タイマ の <注意事項> を削除
326
■ 外部クロックによるボーレート を変更
(・外部クロックを入力するポートを入力設定にする。を追加 )
329
● 転送データフォーマット を変更
( 動作モード 0 では , パリティなしのときのデータは 7 ビット長 , パリティありのと
きのデータは 8 ビット長に固定されています。→動作モード 0 のノーマルモードで
は , データ長は 7 ビットまたは 8 ビットに設定が可能です。)
335
図 15.9-8 双方向通信フローの例 を変更
(UODR → SODR)
344,345
■ DMAC コントロールステータスレジスタ (DACSR) を変更
(DERn → DER7 ∼ DER0)
(DEDn → DED7 ∼ DED0)
(DIEn → DIE7 ∼ DIE0)
(DOEn → DOE7 ∼ DOE0)
346,347
■ DMAC 端子コントロールレジスタ (DATCR) を変更
(LSn1,LSn0 → LS21, LS20, LS11, LS10, LS01, LS00)
(AKSEn → AKSE2 ∼ AKSE0)
(AKDEn → AKDE2 ∼ AKDE0)
(EPSEn → EPSE2 ∼ EPSE0)
(EPDEn → EPDE2 ∼ EPDE0)
401 ∼ 406
付表 A-1 I/O マップ を変更
407 ∼ 409
付表 B-1 割込みベクタ を変更
xvi
第1章
概要
この章では , MB91151A の特長 , ブロックダイヤグ
ラム , 機能概要など全体を知るための基本的なこと
について説明します 。
1.1 特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列
1.5 端子機能説明
1.6 入出力回路形式
1
第 1 章 概要
1.1
特長
MB91151A は 32 ビット RISC ∼ CPU(FR30) をコアとした , CD/DVD 用のマイクロ
コントローラです。
■ MB91151A の特長
● CPU
• 32 ビット RISC(FR30), ロード / ストアアーキテクチャ , 5 段パイプライン
• 汎用レジスタ :32 ビット× 16 本
• 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル
• メモリ - メモリ間転送 , ビット処理 , バレルシフト等の命令 : 組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロード / ストア命令 : 高級言語対応命令
• レジスタインターロック機能 : アセンブラ記述の容易化
• 遅延スロット付分岐命令 : 分岐処理時のオーバヘッドの低減
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付 32 ビット乗算 :5 サイクル
- 符号付 16 ビット乗算 :3 サイクル
- 割込み (PC, PS の退避 ):6 サイクル , 16 プライオリティレベル
● バスインタフェース
• 24 ビットアドレス出力 , 8/16 ビットデータ入出力
• 基本バスサイクル :2 クロックサイクル
• 各種メモリに対するインタフェースのサポート
• 未使用データ / アドレス端子は , 入出力ポートとして使用可能
• リトルエンディアンモードサポート
● 内蔵 RAM
• 命令 RAM:2K バイト
• データ RAM:32K バイト
● DMAC
• 転送パラメータを主記憶上に配置するディスクリプタ形式の DMAC
• 内部と外部合わせて最大 8 要因の転送が可能
• 外部要因は 3 チャネル
● ビットサーチモジュール
1 ワード中の MSB からの最初の 1/0 に変化ビットの位置を 1 サイクルでサーチ
2
第 1 章 概要
● タイマ
• 16 ビット :OCU × 8 チャネル , ICU × 4 チャネル , フリーランタイマ× 1 チャネル
• 8/16 ビット : アップダウンタイマ / カウンタ (8 ビット× 2 チャネルまたは 16 ビット
× 1 チャネル )
• 16 ビット :PPG タイマ× 6 チャネル , 出力パルスの周期・デューティを任意に可変
が可能
• 16 ビット : リロードタイマ× 4 チャネル
● D/A コンバータ
8 ビット× 3 チャネル
● A/D コンバータ ( 逐次比較型 )
• 10 ビット× 8 チャネル
• 逐次変換方式 ( 変換時間 5.0 µ[email protected])
• シングル変換・スキャン変換の選択ができ , 単発 / 連続 / 停止変換モードの設定が可能
• ハード / ソフトによる変換スタート機能
● シリアル I/O
• UART × 4 チャネル , いずれも LSB/MSB 切換え機能付きクロック同期シリアル転送
が可能
• シリアルデータ出力およびシリアルクロック出力はプッシュプル / オープンドレイ
ンのソフトウェアによる選択が可能
• 専用ボーレートジェネレータとして16ビットタイマ(U-Timer) 内蔵:任意のボーレー
トを発生
● クロック切換え機能
ギア機能 :
基本クロックに対する動作クロック比を CPU および周辺のそれぞれで独
立に 1:1, 1:2, 1:4, 1:8 の 4 種から設定可能
● 割込みコントローラ
• 外部割込み入力 ( 合計 16 チャネル )
立上り / 立下り /"H" レベル /"L" レベルの設定が可能
• 内部割込み要因
リソースによる割込み , 遅延割込み
● その他の特長
• リセット要因
パワーオンリセット / ウォッチドッグタイマ / ソフトウェアリセット /
外部リセット
• 低消費電力モード
スリープモード / ストップモード
• パッケージ
PGA-299(MB91V151A)
LQFP-144(MB91151A)
• CMOS テクノロジ (0.35 µm)
• 電源
3.15V ∼ 3.6V
3
第 1 章 概要
ブロックダイヤグラム
1.2
ここでは , MB91151A のブロックダイヤグラムを示します。
■ MB91V151A, MB91151A のブロックダイヤグラム
図 1.2-1 に , MB91V151A, MB91151A のブロックダイヤグラムを示します。
図 1.2-1 ブロックダイヤグラム (MB91V151A, MB91151A)
MODE (4)
~
MD0
MD1
MD2
RST
PORT3/2( )
~
~
~
PORT I(6)
UART 4チャネル
U-Timer
4チャネル
外部バス
CTL
16ビット
リロードタイマ
RAM
2Kバイト
16ビット
フリーランタイマ
1チャネル
PI0/SIN2
PI1/SOT2
PI2/SCK2/T02
PI3/SIN3
PI4/SOT3
PI5/SCK3/T03
6チャネル
PORT J (2 )
16ビット PPG
クロック制御
4チャネル
16ビット
アウトプットキャプチャ
割込み
コントローラ
16チャネル
8ビット
3アウトプット
D/Aコンバータ
DA(3)
外部割込み
10ビット
8インプット
A/Dコンバータ
PORT F(5)
8ビット
アップダウン
カウンタ
2チャネル
8チャネル
PORT K(8)
インプットキャプチャ
PORT C(8)
4
PH0/SIN0
PH1/SOT0
PH2/SCK0/T00
PH3/SIN1
PH4/SOT1
PH5/SCK1/T01
Output
Compare
PPG
UART
TOX:
Reload
Timer
PJ0
PJ1
16ビット
OSC
(2)
PORT D(8)
外部割込み
PL7/DACK2
PL6/DREQ2
PL5/DEOP1
PL4/DACK1
PL3/DREQ1
PL2/DEOP0(O)
PL1/DACK0(O)
PL0/DREQ0(I)
PD7/INT15/ATG(I)
PD6/INT14/DEOP2
PD5/INT13/ZIN1/TRG5
PD4/INT12/ZIN0/TRG4
PD3/INT11/BIN1/TRG3
PD2/INT10/AIN1/TRG2
PD1/INT9/BIN0(I)/TRG1
PD0/INT8/AIN0(I)/TRG0
PC7/INT7/CS3
PC6/INT6/CS2
PC5/INT5/CS1
PC4/INT4/CS0
PC3/INT3
PC2/INT2
PC1/INT1
PC0/INT0(I)
C-bus
4チャネル
PORT L(8)
アップダウン
カウンタ
PORT 8(7)
A/D
DMAC
R-bus
D-bus
I-bus
P86/CLK(O)
P85/WR1(O)
P84/WR0
P83/RD(O)
P82/BRQ(I)
P81/BGRNT(O)
P80/RDY(I)
X0 (I)
X1 (I)
D-bus
PG5/PPG5
PG4/PPG4
PG3/PPG3
PG2/PPG2
PG1/PPG1
PG0/PPG0
PORT H(6)
~
Clock
ビットサーチ
PE7/OC7
PE6/OC6
PE5/OC5
PE4/OC4
PE3/OC3
PE2/OC2
PE1/OC1
PE0/OC0
PORT G(6)
~
~
DMAC
DMAC 8チャネル
24
P40/A00
Bus
Control
32Kバイト
PORT6/5/ 4 ( )
~
P50/A08
P47/A07
データRAM
16
P60/A16
P57/A15
Address
1Kバイト
PORT E(8)
P30/D24
P27/D23
P20/D16
P67/A23(O)
D-bus
I-bus
命令
キャッシュ
P37/D31(IO)
DATA
FR30 CPU コア
PK0/AN0
PK1/AN1
PK2/AN2
PK3/AN3
PK4/AN4
PK5/AN5
PK6/AN6
PK7/AN7
PF4
PF3/IN3
PF2/IN2
PF1/IN1
PF0/IN0
DA2
DA1
DA0
A/D
Input
Capture
第 1 章 概要
1.3
外形寸法図
MB91151A には , 2 種類のパッケージが用意されています。
■ PGA-299C-A01 の外形寸法図
図 1.3-1 PGA-299C-A01 の外形寸法図
リードピッチ
セラミック・PGA, 299ピン
2.54mm(100mil)
20
ピンマトリックス
封止方法
メタルシール
(PGA-299C-A01)
セラミック・PGA, 299ピン
(PGA-299C-A01)
2.41±0.10
(.095±.004)
1.65±0.10
(.065±.004)
0.46 +- 0.13
0.05
(.018 +- .005
.002 )
30.48±0.31
(1.200±.012)
35.56±0.41
(1.400±.016)
INDEX AREA
3.94±0.10
(.155±.004)
52.32±0.56 SQ
(2.060±.022)
5.59 (.220) MAX
1994 FUJITSU LIMITED R299001SC-2-2
2.54 (.100) MAX
1.27 (.050) DIA TYP
(4 PLCS)
48.26 (19.00)
REF
2.54±0.25
(.100±.010)
1.27±0.25
(.050±.010)
+ .016
3.40 +- 0.41
0.36 (.134 - .014 )
INDEX AREA
単位:mm(inches)
注意:括弧内の値は参考値です。
5
第 1 章 概要
■ FPT-144P-M08 の外形寸法図
図 1.3-2 FPT-144P-M08 の外形寸法図
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
20.0 × 20.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
1.20g
コード(参考)
P-LFQFP144-20×20-0.50
注 1)* 印寸法はレジン残りを含まず。レジン残りは, 片側 +0.25(.010)MAX
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
22.00±0.20(.866±.008)SQ
* 20.00±0.10(.787±.004)SQ
108
0.145±0.055
(.006±.002)
73
109
72
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
0 ~8
INDEX
144
37
"A"
LEAD No.
1
36
0.50(.020)
C
6
2003 FUJITSU LIMITED F144019S-c-4-6
0.22±0.05
(.009±.002)
0.08(.003)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
(Mounting height)
0.10±0.10
(.004±.004)
(Stand off)
0.25(.010)
M
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
端子配列
1.4
ここでは , MB91151A の端子配列をパッケージ別に示します。
■ MB91V151A(PGA-299C-A01) の端子配列
図 1.4-1 に , MB91V151A(PGA-299C-A01) の端子配列を示します。また , この配列の端
子番号の対応表を , 表 1.4-1 に示します。
図 1.4-1 端子配列 (MB91V151A(PGA-299C-A01))
3
299
296
293 277 274
270 268 278
275 262 254 247
257 252
250 245 233
230 224
2
298
292
289 286 283
280 276 269
264 263 258 251
248 243
240 237 234
225 221
5
10
4
297 291 287
284 279 271
265 261 256 249
242 239
235 229 228
219 218
8
13
6
300 295 290
285 281 272
267 259 255 246
241 236
231 226 223
215 207
25
16
11
7
1
288 282 273
266 260 253 244
238 232
227 222 217
212 202
27
19
15
12
9
220 216 213
209 199
32
23
18
17
14
214 211 210
205 195
34
26
24
21 20
208 206 204
201 203
22
33
31
30 28
198 197 196
194 200
29
39
38
35 36
192 193 191
190 187
37
40
41
43 42
186 185 188
189 179
50
44
46
47 48
178 180 181
183 172
53
51
54
56 58
170 171 174
176 184
45
55
60
61 64
164 167 168
173 182
49
59
63
66 70
159 162 165
169 177
52
62
67
72 77 82
88
94 103 110 116 123 133 139 145 153 157 161 166 175
57
65
73
76 81 86
91
96 105 109 117 122 131 136 141 147 151 156 163 158
68
69
78
79 85 89
92
99 106 111 115 121 129 135 138 142 148 154 160 155
71
75
84
87 90 93
98 101 108 113 114 119 126 130 134 137 140 144 150 152
74
80
83
95 100 102 107 97 104 112 125 128 118 120 124 127 132 143 146 149
294
PGA-299C-A01
(Bottom View)
7
第 1 章 概要
表 1.4-1 端子番号対応表 (MB91V151A(PGA-299C-A01)
No.
端子名
1 P20/D16
8
2
3
4
VSS
OPEN
P21/D17
No.
端子名
51 P81/BGRNT
52 P82/BRQ
53 VCC
54 P83/RD
No.
端子名
101 PK1/AN1
No.
端子名
151 PD4/INT12/ZIN0
No. 端子名
201 OPEN
No.
端子名
251 OPEN
102 PK2/AN2
103 PK3/AN3
104 OPEN
152 VSS
153 PD5/INT13/ZIN1
154 PD6/INT14/DEOP2
202 OPEN
203 VCC
204 IHIT3
252 OPEN
253 OPEN
254 VCC
5
VCC
55
P84/WR0
105 PK4/AN4
6
P22/D18
56
106 PK5/AN5
206 IHIT1
256 MODEN2
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
P23/D19
VSS
P24/D20
P25/D21
P26/D22
P27/D23
P30/D24
P31/D25
P32/D26
P33/D27
P34/D28
P35/D29
P36/D30
P37/D31
P40/A00
VCC
P41/A01
P42/A02
P43/A03
P44/A04
P45/A05
P46/A06
VSS
P47/A07
P50/A08
P51/A09
P52/A10
P53/A11
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
P85/WR1
P86/CLK
PL0/DREQ0
PL1/DACK0
PL2/DEOP0
PL3/DREQ1
PL4/DACK1
PL5/DEOP1
PL6/DREQ2
PL7/DACK2
OPEN
OPEN
VCC
OPEN
OPEN
VSS
OPEN
OPEN
VCC
OPEN
MD0
MD1
MD2
VCC
VSS
X0
X1
VCC
155 VCC
156 PD7/INT15/ATG
205 IHIT2
255 MODEN3
PK6/AN6
PK7/AN7
DAVC
DAVS
DA0
VSS
DA1
DA2
PH0/SIN0
PH1/SOT0
PH2/SCK0/TO0
PH3/SIN1
PH4/SOT1
PH5/SCK1/TO1
PI0/SIN2
PI1/SOT2
PI2/SCK2/TO2
PI3/SIN3
VCC
PI4/SOT3
PI5/SCK3/TO3
VSS
OPEN
OPEN
OPEN
OPEN
PJ0
PJ1
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
PE0/OC0
VSS
PE1/OC1
PE2/OC2
PE3/OC3
PE4/OC4
PE5/OC5
PE6/OC6
PE7/OC7
VCC
PF0/IN0
PF1/IN1
PF2/IN2
PF3/IN3
PF4
VCC
PG0/PPG0
PG1/PPG1
PG2/PPG2
PG3/PPG3
PG4/PPG4
PG5/PPG5
VSS
OPEN
OPEN
OPEN
OPEN
OPEN
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
IHIT0
OPEN
OPEN
OPEN
VCC
MOD31
MOD30
MOD29
MOD28
MOD27
MOD26
VSS
MOD25
MOD24
VCC
MOD23
MOD22
VSS
MOD21
MOD20
MOD19
MOD18
MOD17
VCC
MOD16
MOD15
VSS
MOD14
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
MODEN1
MODEN0
OPEN
OPEN
OPEN
VSS
VCC
OPEN
OPEN
OPEN
VSS
OPEN
VCC
OPEN
OPEN
OPEN
OPEN
OPEN
VCC
OPEN
OPEN
VSS
OPEN
OPEN
OPEN
OPEN
OPEN
OPEN
35
36
37
38
39
40
41
42
P54/A12
P55/A13
VCC
P56/A14
P57/A15
P60/A16
P61/A17
P62/A18
85
86
87
88
89
90
91
92
RST
OPEN
ICLK
ICS0
ICS1
ICS2
ICD0
ICD1
ICD2
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
VSS
PC0/INT0
PC1/INT1
PC2/INT2
PC3/INT3
PC4/INT4/CS0
PC5/INT5/CS1
PC6/INT6/CS2
185
186
187
188
189
190
191
192
OPEN
OPEN
VCC
OPEN
OPEN
OPEN
MCLK
235
236
237
238
239
240
241
242
MOD13
MOD12
MOD11
MOD10
MOD9
VCC
MOD8
MOD7
285
286
287
288
289
290
291
292
OPEN
VCC
OPEN
OPEN
OPEN
OPEN
OPEN
OPEN
43
44
45
46
47
48
49
50
P63/A19
P64/A20
P65/A21
P66/A22
P67/A23
P80/RDY
VCC
VSS
93
94
95
96
97
98
99
100
ICD3
BREAK
AVCC
AVRH
VSS
AVRL
AVSS
PK0/AN0
143
144
145
146
147
148
149
150
VCC
PC7/INT7/CS3
PD0/INT8/AIN0
VSS
PD1/INT9/BIN0
PD2/INT10/AIN1
VCC
PD3/INT11/BIN1
193
194
195
196
197
198
199
200
243
244
245
246
247
248
249
250
MOD6
MOD5
MOD4
MOD3
VSS
MOD2
MOD1
MOD0
293
294
295
296
297
298
299
300
VCC
OPEN
OPEN
VSS
OPEN
OPEN
VCC
OPEN
MRST
VCC
DHIT5
DHIT4
DHIT3
DHIT2
DHIT1
DHIT0
VSS
第 1 章 概要
■ MB91151A(FPT-144P-M08) の端子配列
図 1.4-2 に , MB91151A(FPT-144P-M08) の端子配列を示します。
DA0
DA1
DA2
VCC
PL7/DACK2
PL6/DREQ2
PL5/DEOP1
PL4/DACK1
PL3/DREQ1
PL2/DEOP0
PL1/DACK0
PL0/DREQ0
PH0/SIN0
PH1/SOT0
PH2/SCK0/TO0
PH3/SIN1
PH4/SOT1
122
121
120
119
118
117
116
115
114
113
112
111
110
109
128
127
DAVC
DAVS
AVSS
131
130
129
126
125
124
123
OPEN
VCC
PK7/AN7
PK6/AN6
PK5/AN5
PK4/AN4
PK3/AN3
PK2/AN2
PK1/AN1
PK0/AN0
AVRL
AVRH
AVCC
OPEN
141
140
139
138
137
136
135
134
133
132
OPEN
VSS
144
143
142
図 1.4-2 端子配列 (MB91151A(FPT-144P-M08))
P20/D16
1
108
PH5/SCK1/TO1
P21/D17
2
107
PI0/SIN2
P22/D18
3
106
PI1/SOT2
P23/D19
4
105
PI2/SCK2/TO2
P24/D20
5
104
PI3/SIN3
P25/D21
6
103
PI4/SOT3
P26/D22
7
102
PI5/SCK3/TO3
P27/D23
8
101
VSS
VSS
PJ0
9
100
P30/D24
10
99
PJ1
P31/D25
11
98
VSS
P32/D26
12
97
VCC
P33/D27
13
96
PG5/PPG5
P34/D28
14
95
PG4/PPG4
P35/D29
15
94
PG3/PPG3
P36/D30
16
93
PG2/PPG2
92
PG1/PPG1
91
PG0/PPG0
P37/D31
17
P40/A00
18
P41/A01
19
90
PF4
P42/A02
20
89
P43/A03
21
88
PF3/IN3
PF2/IN2
P44/A04
22
87
PF1/IN1
P45/A05
23
86
PF0/IN0
P46/A06
24
85
PE7/OC7
P47/A07
25
84
PE6/OC6
VSS
26
83
PE5/OC5
VCC
27
82
PE4/OC4
P50/A08
28
81
PE3/OC3
P51/A09
29
80
PE2/OC2
P52/A10
30
79
PE1/OC1
P53/A11
31
78
PE0/OC0
P54/A12
32
77
VCC
P55/A13
33
76
PD7/ATG/INT15
P56/A14
34
75
PD6/DEOP2/INT14
P57/A15
35
74
PD5/ZIN1/INT13/TRG5
P60/A16
36
73
PD4/ZIN0/INT12/TRG4
Top View
PD2/AIN1/INT10/TRG2
PD3/BIN1/INT11/TRG3
69
70
71
72
68
VCC
PD0/AIN0/INT8/TRG0
PD1/BIN0/INT9/TRG1
62
63
64
65
PC2/INT2
PC3/INT3
PC4/INT4/CS0
66
67
60
61
PC0/INT0
PC1/INT1
PC5/INT5/CS1
PC6/INT6/CS2
PC7/INT7/CS3
58
59
VSS
57
X1
X0
53
54
55
56
MD0
RST
VCC
50
51
52
P85/WR1
P86/CLK
MD2
MD1
40
41
42
43
44
45
46
47
48
49
P64/A20
P65/A21
P66/A22
P67/A23
VSS
P80/RDY
P81/BGRNT
P82/BRQ
P83/RD
P84/WR0
37
38
39
P61/A17
P62/A18
P63/A19
FPT-144P-M08
9
第 1 章 概要
1.5
端子機能説明
表 1.5-1 に , MB91151A の端子の機能一覧を示します。
■ 端子機能説明
表 1.5-1 端子機能一覧 (1 / 7)
Pin No.
端子名
1
2
3
4
5
6
7
8
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
P26/D22
P27/D23
10
11
12
13
14
15
16
17
P30/D24
P31/D25
P32/D26
P33/D27
P34/D28
P35/D29
P36/D30
P37/D31
18
19
20
21
22
23
24
25
28
29
30
31
32
33
34
35
P40/A00
P41/A01
P42/A02
P43/A03
P44/A04
P45/A05
P46/A06
P47/A07
P50/A08
P51/A09
P52/A10
P53/A11
P54/A12
P55/A13
P56/A14
P57/A15
36
37
38
39
40
41
42
43
P60/A16
P61/A17
P62/A18
P63/A19
P64/A20
P65/A21
P66/A22
P67/A23
10
回路形式
機能説明
C
外部データバスのビット 16 ∼ビット 23 です。
外バス 16 ビットモードの場合のみ有効となります。
シングルチップおよび外バス 8 ビットモードの場合
は , ポートとして使用できます。
外部データバスのビット 24 ∼ビット 31 です。
シングルチップモードの場合は , ポートとして使用で
きます。
C
外部アドレスバスのビット 0 ∼ビット 15 です。
外バスモードの場合に有効となります。
シングルチップモードの場合は , ポートとして使用で
きます。
F
外部アドレスバスのビット 16 ∼ビット 23 です。
アドレスバスが未使用の場合は , ポートとして使用で
きます。
O
第 1 章 概要
表 1.5-1 端子機能一覧 (2 / 7)
Pin No.
端子名
45
P80/RDY
46
47
48
49
50
51
回路形式
機能説明
C
外部 RDY 入力です。
この機能は外部 RDY 入力が許可の場合に有効となり
ます。
実行中のバスサイクルが完了しない場合に "0" を入力
します。
外部 RDY 入力が未使用の場合は , ポートとして使用
できます。
F
外部バス開放受付出力です。
この機能は外部バス開放受付出力が許可の場合に有
効となります。
外部バスを開放した場合に "L" を出力します。
外部バス開放受付出力が禁止の場合は , ポートとして
使用できます。
C
外部バス開放要求入力です。
この機能は外部バス開放要求入力が許可の場合に有
効となります。
外部バスを開放する場合に "1" を入力します。
外部バス開放要求入力が未使用の場合は , ポートとし
て使用できます。
F
外部バスリードストローブ出力です。
この機能は外部バスリードストローブ出力が許可の
場合に有効となります。
外部バスリードストローブ出力が禁止の場合は , ポー
トとして使用できます。
F
外部バスライトストローブ出力です。
この機能は外バスモードの場合に有効となります。
シングルチップモードの場合は , ポートとして使用で
きます。
F
外部バスライトストローブ出力です。
この機能は外バスモードかつバス幅 16 ビットの場合
に有効となります。
シングルチップモードまたは外バス 8 ビットの場合
は , ポートとして使用できます。
F
システムクロック出力です。
外部バス動作周波数と同じクロックを出力します。
未使用の場合は , ポートとして使用できます。
P81/BGRNT
P82/BRQ
P83/RD
P84/WR0
P85/WR1
P86/CLK
52
53
54
MD2
MD1
MD0
G
55
RST
B
外部リセット入力です。
57
58
X1
X0
A
高速クロック用発振端子です。
モード端子です。
VCC または VSS に直接つないで使用してください。
これらの端子により MCU の基本動作モードを設定し
ます。
11
第 1 章 概要
表 1.5-1 端子機能一覧 (3 / 7)
Pin No.
端子名
60
61
62
63
PC0/INT0
PC1/INT1
PC2/INT2
PC3/INT3
64
65
66
67
PC4/INT4/CS0
PC5/INT5/CS1
PC6/INT6/CS2
PC7/INT7/CS3
69
70
71
72
73
74
75
12
PD0/AIN0/INT8/
TRG0
PD1/BIN0/INT9/
TRG1
PD2/AIN1/INT10/
TRG2
PD3/BIN1/INT11/
TRG3
PD4/ZIN0/INT12/
TRG4
PD5/ZIN1/INT13/
TRG5
回路形式
機能説明
H
外部割込み要求入力の 0 ∼ 3 です。
対応する外部割込みを許可している間はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
このポートはスタンバイ時も入力が許可されますの
で , スタンバイの解除用に使用できます。
外部割込み要求入力が未使用の場合は , ポートとして
使用できます。
H
チップセレクト出力と外部割込み要求入力の 4 ∼ 7
の兼用です。
チップセレクト出力禁止時に外部割込み要求 , もしく
はポートとして使用できます。
対応する外部割込みを許可している間はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
このポートはスタンバイ時も入力が許可されますの
で , スタンバイの解除用に使用できます。
外部割込み要求入力 , チップセレクト出力が未使用の
場合は , ポートとして使用できます。
H
外部割込み要求入力の 8 ∼ 13 です。
対応する外部割込みを許可している間はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
[AIN0, AIN1 ,BIN0 ,BIN1 ,ZIN0 ,ZIN1] アップダウンタ
イマの入力です。
[TRG0 ∼ TRG5] PPG 外部トリガの入力です。
入力を許可している場合はこの入力を随時使用して
いますので , 意図的に行う以外はポートによる出力を
停止させておく必要があります。
外部割込み要求入力 , アップタイマカウンタの入力 ,
PPG の外部トリガの入力が未使用の場合は , ポート
として使用できます。
H
外部割込み要求入力の 14 です。
対応する外部割込みを許可している間はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
[DEOP2] DMA 外部転送終了出力です。
この機能は DMAC の外部転送終了出力指定が許可の
場合に有効となります。
外部割込み要求入力 , DMA 外部転送終了出力として
未使用の場合は , ポートとして使用できます。
PD6/DEOP2/INT14
第 1 章 概要
表 1.5-1 端子機能一覧 (4 / 7)
Pin No.
端子名
76
PD7/ATG/INT15
78
79
80
81
82
83
84
85
PE0/OC0
PE1/OC1
PE2/OC2
PE3/OC3
PE4/OC4
PE5/OC5
PE6/OC6
PE7/OC7
86
87
88
89
PF0/IN0
PF1/IN1
PF2/IN2
PF3/IN3
90
PF4
91
92
93
94
95
96
回路形式
機能説明
H
外部割込み要求入力の 15 です。
対応する外部割込みを許可している間はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
[ATG] A/D コンバータ外部トリガ入力です。
A/D の起動要因として選択した場合はこの入力を随
時使用していますので , 意図的に行う以外はポートに
よる出力を停止させておく必要があります。
外部割込み要求入力 , A/D コンバータ外部トリガ入力
として未使用の場合は , ポートとして使用できます。
アウトプットコンペアの出力です。
アウトプットコンペア出力指定が禁止の場合は , ポー
トとして使用できます。
F
F
インプットキャプチャの入力です。
この機能はインプットキャプチャが入力動作の場合
に有効になります。
インプットキャプチャの入力が未使用の場合は , ポー
トとして使用できます。
F
汎用の入出力ポートです。
PG0/PPG0
PG1/PPG1
PG2/PPG2
PG3/PPG3
PG4/PPG4
PG5/PPG5
F
PPG タイマ出力です。
この機能は PPG タイマの出力指定が許可の場合に有
効になります。
PPG タイマの出力指定が禁止の場合は , ポートとし
て使用できます。
99
PJ1
Q
汎用の入出力ポートです。
100
PJ0
Q
汎用の入出力ポートです。
102
PI5/SCK3/TO3
P
UART3 のクロック入出力 , リロードタイマ 3 の出力
です。
UART3 のクロック出力禁止時 , リロードタイマ 3 の
出力許可を行うと , リロードタイマ 3 を出力すること
ができます。
UART3 のクロック出力 , リロードタイマ出力を共に
禁止の場合は , ポートとして使用できます。
P
UART3 のデータ出力です。
この機能は UART3 のデータ出力指定が許可の場合に
有効となります。
UART3 のクロック出力指定が禁止の場合は , ポート
として使用できます。
103
PI4/SOT3
13
第 1 章 概要
表 1.5-1 端子機能一覧 (5 / 7)
Pin No.
端子名
104
PI3/SIN3
105
106
107
108
109
110
14
回路形式
機能説明
P
UART3 のデータ入力です。
UART3 が入力動作をしている間はこの入力を随時使
用していますので , 意図的に行う以外はポートによる
出力を停止させておく必要があります。
UART3 のデータ入力が未使用の場合は , ポートとし
て使用できます。
P
UART2 のクロック入出力 , リロードタイマ 2 の出力
です。
UART2 のクロック出力禁止時 , リロードタイマ 2 の
出力許可を行うと , リロードタイマ 2 を出力すること
ができます。
UART2 のクロック出力 , リロードタイマ出力を共に
禁止の場合は , ポートとして使用できます。
P
UART2 のデータ出力です。
この機能は UART2 のデータ出力指定が許可の場合に
有効となります。
UART2 のクロック出力指定が禁止の場合は , ポート
として使用できます。
P
UART2 のデータ入力です。
UART2 が入力動作をしている間はこの入力を随時使
用していますので , 意図的に行う以外はポートによる
出力を停止させておく必要があります。
UART2 のデータ入力が未使用の場合は , ポートとし
て使用できます。
P
UART1 のクロック入出力 , リロードタイマ 1 の出力
です。
UART1 のクロック出力禁止時 , リロードタイマ 1 の
出力許可を行うと , リロードタイマ 1 を出力すること
ができます。
UART1 のクロック出力 , リロードタイマ出力を共に
禁止の場合は , ポートとして使用できます。
P
UART1 のデータ出力です。
この機能は UART1 のデータ出力指定が許可の場合に
有効となります。
UART1 のクロック出力指定が禁止の場合は , ポート
として使用できます。
P
UART1 のデータ入力です。
UART1 が入力動作をしている間はこの入力を随時使
用していますので , 意図的に行う以外はポートによる
出力を停止させておく必要があります。
UART1 のデータ入力が未使用の場合は , ポートとし
て使用できます。
PI2/SCK2/TO2
PI1/SOT2
PI0/SIN2
PH5/SCK1/TO1
PH4/SOT1
PH3/SIN1
第 1 章 概要
表 1.5-1 端子機能一覧 (6 / 7)
Pin No.
端子名
111
PH2/SCK0/TO0
112
113
114
115
116
117
118
回路形式
機能説明
P
UART0 のクロック入出力 , リロードタイマ 0 の出力
です。
UART0 のクロック出力禁止の場合 , リロードタイマ
0 の出力許可を行うと , リロードタイマ 0 を出力する
ことができます。
UART0 のクロック出力 , リロードタイマ出力を共に
禁止の場合は , ポートとして使用できます。
P
UART0 のデータ出力です。
この機能は UART0 のデータ出力指定が許可の場合に
有効となります。
UART0 のクロック出力指定が禁止の場合は , ポート
として使用できます。
P
UART0 のデータ入力です。
UART0 が入力動作をしている間はこの入力を随時使
用していますので , 意図的に行う以外はポートによる
出力を停止させておく必要があります。
UART0 のデータ入力が未使用の場合は , ポートとし
て使用できます。
F
DMA 外部転送要求入力です。
DMAC の転送要因として選択した場合はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
DMA 外部転送要求入力が未使用の場合は , ポートと
して使用できます。
F
DMA 外部転送要求受付出力です。
この機能は DMAC の外部転送要求受付出力指定が許
可の場合に有効となります。
DMAC の転送要求受付出力指定が禁止の場合は ,
ポートとして使用できます。
F
DMA 外部転送終了出力です。
この機能は DMAC の外部転送終了出力指定が許可の
場合に有効となります。
DMA 外部転送終了出力が禁止の場合 , ポートとして
使用できます。
F
DMA 外部転送要求入力です。
DMAC の転送要因として選択した場合はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
DMA 外部転送要求入力が未使用の場合は , ポートと
して使用できます。
F
DMA 外部転送要求受付出力です。
この機能は DMAC の外部転送要求受付出力指定が許
可の場合に有効となります。
DMAC の転送要求受付出力指定が禁止の場合は ,
ポートとして使用できます。
PH1/SOT0
PH0/SIN0
PL0/DREQ0
PL1/DACK0
PL2/DEOP0
PL3/DREQ1
PL4/DACK1
15
第 1 章 概要
表 1.5-1 端子機能一覧 (7 / 7)
Pin No.
端子名
119
PL5/DEOP1
120
121
回路形式
機能説明
F
DMA 外部転送終了出力です。
この機能は DMAC の外部転送終了出力指定が許可の
場合に有効となります。
DMA 外部転送終了出力が禁止の場合 , ポートとして
使用できます。
F
DMA 外部転送要求入力です。
DMAC の転送要因として選択した場合はこの入力を
随時使用していますので , 意図的に行う以外はポート
による出力を停止させておく必要があります。
DMA 外部転送要求入力が未使用の場合は , ポートと
して使用できます。
F
DMA 外部転送要求受付出力です。
この機能は DMAC の外部転送要求受付出力指定が許
可の場合に有効となります。
DMAC の転送要求受付出力指定が禁止の場合は ,
ポートとして使用できます。
PL6/DREQ2
PL7/DACK2
123
124
125
DA2
DA1
DA0
-
D/A コンバータの出力です。
この機能は D/A コンバータの出力指定が許可の場合
に有効になります。
126
DAVS
-
D/A コンバータの電源端子です。
127
DAVC
-
D/A コンバータの電源端子です。
128
AVCC
-
A/D コンバータ用 VCC 電源です。
129
AVRH
-
A/D コンバータ基準電圧 ( 高電位側 ) です。
この端子の投入 / 切断は必ず VCC に AVRH 以上の電
位が印加してある状態で行ってください。
130
AVRL
-
A/D コンバータ基準電圧 ( 低電位側 ) です。
131
AVSS
-
A/D コンバータ用 VSS 電源です。
132
133
134
135
136
137
138
139
PK0/AN0
PK1/AN1
PK2/AN2
PK3/AN3
PK4/AN4
PK5/AN5
PK6/AN6
PK7/AN7
27, 56, 68,
77, 97,
122, 140
VCC
9,26,44,
59,98,
101,144
VSS
N
A/D コンバータアナログ入力です。
AICR レジスタの指定がアナログ入力の場合に有効と
なります。
A/D コンバータアナログ入力が未使用の場合は , ポー
トとして使用できます。
-
デジタル回路の電源端子です。
必ず全 VCC 端子に電源を接続して使用してください。
-
デジタル回路の接地レベルです。
必ず全 VSS 端子に電源を接地して使用してください。
( 注意事項 )上記の大部分の端子は , xxxx/Pxx といったように I/O ポートとリソースの入出力がマルチ
プレクスされます。
これらの端子でポートとリソースの出力同士が競合した場合 , リソースが優先されます。
16
第 1 章 概要
1.6
入出力回路形式
表 1.6-1 に , MB91151A の入出力回路の形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 3)
分類
回路
備考
A
X1
Xout
高速発振回路
発振帰還抵抗 = 約 1MΩ
X0
スタンバイ制御信号
B
CMOS ヒステリシス入力端子
CMOS ヒステリシス入力
( スタンバイ制御なし )
プルアップ抵抗あり
デジタル入力
C
Pout
Nout
CMOS レベル入出力端子
CMOS レベル出力
CMOS レベル入力
( スタンバイ制御付き )
IOL=4mA
CMOS入力
スタンバイ制御
F
Pout
Nout
CMOS ヒステリシス入出力端子
CMOS レベル出力
CMOS ヒステリシス入力
( スタンバイ制御付き )
IOL=4mA
CMOSヒステリシス入力
スタンバイ制御
17
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 3)
分類
回路
備考
G
CMOS レベル入力端子
CMOS レベル入力
( スタンバイ制御なし )
デジタル入力
H
プルアップ制御
R
Pout
Nout
プルアップコントロール付き
CMOS ヒステリシス入出力端子
CMOS レベル出力
CMOS ヒステリシス入力
( スタンバイ制御なし )
プルアップ抵抗値 = 約 50kΩ(Typ)
IOL=4mA
CMOSヒステリシス入力
N
Pout
Nout
CMOS入力
アナログ /CMOS レベル入出力端子
CMOS レベル出力
CMOS レベル入力
( スタンバイ制御付き )
アナログ入力
(AICR の対応するビットが "1" の場
合アナログ入力が有効になります )
IOL=4mA
スタンバイ制御
アナログ入力
O
プルアップ制御
R
Pout
Nout
プルアップコントロール付き
CMOS ヒステリシス入出力端子
CMOS レベル出力
CMOS ヒステリシス入力
( スタンバイ制御付き )
プルアップ抵抗値 = 約 50kΩ(Typ)
IOL=4mA
CMOSヒステリシス入力
スタンバイ制御
18
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 3)
分類
回路
P
備考
プルアップ制御
R
オープンドレイン制御
Nout
CMOSヒステリシス入力
プルアップコントロール付き
CMOS ヒステリシス入出力端子
CMOS レベル出力
( オープンドレイン制御付き )
CMOS ヒステリシス入力
( スタンバイ制御付き )
プルアップ抵抗値 = 約 50kΩ(Typ)
IOL=4mA
スタンバイ制御
Q
Nout
オープンドレイン入出力端子
5V 耐圧
CMOS ヒステリシス入力
( スタンバイ制御付き )
IOL=15mA
COMSヒステリシス入力
スタンバイ制御
19
第 1 章 概要
20
第2章
デバイスの取扱いについて
この章では , MB91151A の取扱い上の注意につい
て説明します。
2.1 デバイス取扱い上の注意
2.2 各デバイス使用上の注意
2.3 電源投入
21
第 2 章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ここでは , ラッチアップ防止 , 端子処理および回路の取扱いについて説明します。
■ ラッチアップ防止
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合または VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象を
生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に至
ることがありますので,使用に際しては最大定格を超えることのないよう十分に注意し
てください。
■ 端子処理
● 未使用端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンなどの処理をしてください。
● OPEN 端子の処理について
OPEN 端子は , 必ず開放にして使用してください。
● 出力端子の処理について
出力端子を電源やほかの出力端子とショートしたり,大きな容量負荷を接続すると大電
流が流れる場合があります。このような状態が長時間続くとデバイスが劣化しますの
で , 使用に際しては最大定格を超えることのないよう十分に注意してください。
● モード (MD0 ∼ MD2) 端子について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ
てテストモードに入ってしまうことを防ぐために,プリント板上の各モード端子とVCC
または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接続す
るようにしてください。
● 電源端子について
VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた
めに , デバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低
減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を
遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくださ
い。
また , 電流供給源からできる限り低インピーダンスで本デバイスの VCC, VSS に接続す
るような配慮をお願いいたします。さらに , 本デバイスの近くで , VCC と VSS の間に
0.1 µF 程度のセラミックコンデンサをバイパスコンデンサとして接続するようにして
ください。
22
第 2 章 デバイスの取扱いについて
■ 回路の取扱い
● 水晶発振回路について
X0, X1 端子の近辺のノイズは , 本デバイスの誤動作の原因となります。X0 と X1 およ
び水晶発振子 ( またはセラミック発振子 ) さらにグランドへのバイパスコンデンサは ,
できる限り近くに配置するようにプリント板を設計してください。
X0, X1 端子の回りをグランドで囲むようなプリント板アートワークは安定した動作を
期待できますので , 強くお勧めいたします。
各量産品において,ご使用される発振子メーカに発振評価依頼をしてください。
23
第 2 章 デバイスの取扱いについて
2.2
各デバイス使用上の注意
ここでは , 外部リセット入力および外部クロック使用上の注意について説明します。
■ 外部リセット入力について
RST端子に"L"レベルを入力し,内部が確実にリセット状態となるためには, RST端子の
"L" レベル入力が最低 5 マシンサイクル必要です。
■ 外部クロックについて
外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , STOP モード ( 発振停止モード ) を併用す
る場合は , STOP モード時に X1 端子が "H" 出力で停止しますので , 出力同士の衝突を
避けるために , 外部に 1kΩ 程度の抵抗を入れるようにしてください。
図 2.2-1 に , 外部クロック使用方法例を示します。
図 2.2-1 外部クロック使用例
X0
~
X1
M B 9 1 151A
■ PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
■ ウォッチドッグタイマ機能について
FR ファミリが備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリ
セット延期動作を行うことを監視し,プログラムの暴走によりリセット延期動作が行わ
れなかったときに , CPU をリセットするための機能です。そのため , いったんウォッチ
ドッグタイマ機能を有効にすると , リセットをかけるまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については ,「3.12.8 ウォッチドッグ機能」を参照し
てください。
24
第 2 章 デバイスの取扱いについて
2.3
電源投入
ここでは , 電源投入時の注意事項 , 電源投入および時計機能を使用していない場合の
注意について説明します。
■ 電源投入時の注意
● 電源投入時について
電源投入時には , 必ず RST 端子を "L" レベル状態から開始し , 電源が VCC レベルになっ
てから , 最低でも内部動作クロックの 5 サイクル分の時間を確保してから "H" レベル
にしてください。
● 原発振入力について
電源投入時は , 必ず発振安定待ちが解除されるまでの間クロックを入力してください。
● パワーオンリセットについて
電源投入時および電源電圧が動作保証電圧を下回った場合の再投入時は,必ずパワーオ
ンリセットをかけてください。
● 電源投入順序について
電源投入は , VCC → AVCC → AVRH の順に投入し , 切断時はこの逆の順序で行ってく
ださい。
● A/D コンバータについて
A/D コンバータを使用しない場合においても , AVCC=VCC レベル , AVSS=VSS レベルに
接続してください。
● D/A コンバータについて
D/A コンバータを使用しない場合においても , DAVC=VCC レベル , DAVS=VSS レベル
に接続してください。
● 電源電圧不安定 , もしくは電源遮断時の扱いについて
電源電圧が動作保証電圧の下限を下回った場合は,デバイス内部の状態が不定になりま
すので , 次のいずれかの方法でデバイスを初期化してください。
• 方法 1 : 原発振の 221 期間以上 , 外部リセットを入力する。
• 方法 2 : パワーオンリセットが発生する電圧 (VCC=0.2V 以下 ) から電源を投入する。
25
第 2 章 デバイスの取扱いについて
26
第3章
メモリ空間 , CPU
および制御部
この章では , FR ファミリの CPU コアの機能を知
るために , アーキテクチャ , 仕様 , 命令などの基本
的なことについて説明します。
3.1 メモリ空間
3.2 CPU アーキテクチャ
3.3 命令キャッシュ
3.4 プログラミングモデル
3.5 データ構造
3.6 ワードアライメント
3.7 特別なメモリ領域
3.8 命令概要
3.9 EIT( 例外・割込み・トラップ )
3.10 リセットシーケンス
3.11 動作モード
3.12 クロック発生部 ( 低消費電力メカニズム )
3.13 低消費電力モード
27
第 3 章 メモリ空間 , CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク
セスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域と呼び,命令中で直接オペランドのアドレス
を指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
• バイトデータアクセス :000H ∼ 0FFH
• ハーフワードデータアクセス :000H ∼ 1FFH
• ワードデータアクセス :000H ∼ 3FFH
■ MB91V151A, MB91151A のメモリマップ
図 3.1-1 に , MB91V151A, MB91151A のメモリマップを示します。
図 3.1-1 MB91V151A, MB91151A のメモリマップ
外バスモード
シリアル起動モード
I/O
I/O
ダイレクト
アドレッシング
領域
I/O
I/O
I/Oマップ参照
アクセス禁止
アクセス禁止
内蔵RAM 32KB
内蔵RAM 32KB
アクセス禁止
アクセス禁止
0000 0000H
0000 0400H
0000 0800H
0000 1000H
0000 9000H
0001 0000H
0001 0000H
外部領域
アクセス禁止
0008 0000H
0008 0800H
0009 0800H
0008 0000H
内蔵RAM 2KB
内蔵RAM 2KB
アクセス禁止
アクセス禁止
0008 0800H
000F F800H
シリアルROM 2KB
0010 0000H
外部領域
アクセス禁止
FFFF FFFFH
28
FFFF FFFFH
第 3 章 メモリ空間 , CPU および制御部
3.2
CPU アーキテクチャ
FR CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた高機能
命令を導入した , 高性能コアです。
■ CPU アーキテクチャの特長
• RISC アーキテクチャの採用
• 基本命令 :1 命令 1 サイクル
• 32 ビットアーキテクチャ
- 汎用レジスタ 32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
- 32 ビット× 32 ビット乗算 :5 サイクル
- 16 ビット× 16 ビット乗算 :3 サイクル
• 割込み処理機能の強化
- 高速応答速度 (6 サイクル )
- 多重割込みのサポート
- レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
- メモリ - メモリ転送命令
- ビット処理命令
• 高いコード効率
- 基本命令語長 :16 ビット
• 低消費電力
- スリープモード / ストップモード
■ 内部アーキテクチャ
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット ↔ 16 ビット バスコンバータはデータバス (D-bus) に接続され , CPU と周辺
リソースとのインタフェースを実現します。
ハーバード ↔ プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ
スコントローラとのインタフェースを実現します。
図 3.2-1 に , 内部アーキテクチャの構造を示します。
29
第 3 章 メモリ空間 , CPU および制御部
図 3.2-1 内部アーキテクチャの構造
FR CPU
D-bus
I-bus
ハーバード
プリンストン
32ビット
バスコンバータ
16ビット
バスコンバータ
R-bus
C-bus
周辺機器
バスコントローラ
● CPU
CPU は , 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用
しています。パイプラインは以下のステージから構成されています。
• 命令フェッチ (IF)
: 命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
: フェッチした命令をデコードします。レジスタの読出しも
行います。
• 実行 (EX)
: 演算を実行します。
• メモリアクセス (MA) : メモリに対するロードまたはストアのアクセスを行います。
• ライトバック (WB)
: 演算結果 ( またはロードされたメモリデータ ) をレジスタに
書き込みます。
図 3.2-2 に , 命令パイプラインを示します。
図 3.2-2 命令パイプライン
CLK
30
命令1
命令2
命令3
命令4
WB
MA
EX
ID
命令5
命令6
IF
WB
MA
EX
WB
MA
WB
ID
IF
EX
ID
MA
EX
WB
MA
WB
第 3 章 メモリ空間 , CPU および制御部
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード / ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
● 32 ビット ↔ 16 ビット バスコンバータ
32 ビット幅で高速アクセスされる D-bus と , 16 ビット幅でアクセスされる R-bus との
インタフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16
ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に
はアクセス幅に関して制限のあるものがあります。
● ハーバード ↔ プリンストン バスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。
このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつけ , バス
コントローラへのアクセスの制御を行います。この働きにより , 外部へのバスアクセス
順位が常に最適化されたものになります。
また , CPU のバス待ち時間をなくすための 2 ワードのライトバッファと , 命令フェッチ
のために 1 ワードのプリフェッチバッファを持っています。
31
第 3 章 メモリ空間 , CPU および制御部
3.3
命令キャッシュ
命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセ
スする場合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降の
アクセス速度を速めるために使用します。
命令キャッシュ , 命令キャッシュタグはソフトウェアで直接リード・ライトアクセス
はできません。また , 命令キャッシュを一度 ON してから OFF にする場合には , 必
ず「■ 本品種の I-Cache を使用するときの設定方法 」の注意事項に記載されている
サブルーチンをご使用ください。
■ 本体構成
• FR ファミリの基本命令長
2 バイト
• ブロックの配置方式
2 ウェイセットアソシアティブ方式
• ブロック
1 ウェイは 32 ブロック構成
1 ブロックは 16 バイト (=4 サブブロック )
1 サブブロックは 4 バイト (=1 バスアクセス単位 )
図 3.3-1 命令キャッシュ構成
4バイト
ウェイ1
4バイト
4バイト
4バイト
I2
I1
I0
サブブロック2
サブブロック1
サブブロック0
ブロック0
キャッシュタグ
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック31
キャッシュタグ
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック0
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック31
・・・
・・・
I3
サブブロック3
キャッシュタグ
32ブロック
4バイト
キャッシュタグ
32
・・・
32ブロック
・・・
ウェイ2
第 3 章 メモリ空間 , CPU および制御部
図 3.3-2 命令キャッシュタグ
ウェイ1
31
09
08
空き
03
TAGV
02
空き
アドレスタグ
07
SBV3
06
SBV2
05
SBV1
04
SBV0
サブブロックバリッド
LRU
エントリロック
00
ETLK
01
00
ETLK
TAGバリッド
ウェイ2
31
09
08
空き
03
TAGV
02
アドレスタグ
07
SBV3
01
LRU
06
SBV2
05
SBV1
04
SBV0
サブブロックバリッド
空き
TAGバリッド
エントリロック
[ ビット 31 ∼ビット 9] アドレスタグ
対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット
がストアされています。
ブロック i のサブブロック k に格納されている命令データのメモリアドレス IA は ,
IA= アドレスタグ × 211 + i × 24 + k × 22
となります。
CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ
グ検査の結果に従い , 以下のような動作をします。
1)要求された命令データがキャッシュ内に存在するとき ( ヒット ), キャッシュから
CPU へサイクル内にデータを転送します。
2)要求された命令データがキャッシュ内に存在しないとき ( ミス ), 外部アクセスで
取得されたデータを CPU とキャッシュが同時に取得します。
[ ビット 7 ∼ビット 4] SBV3 ∼ SBV0: サブブロックバリッド
サブブロックバリッドを "1" に設定したとき , 対応するサブブロックにタグで示さ
れたアドレスの現行命令データがエントリされています。サブブロックには , 通常
2 命令が格納されます ( 即値転送命令を除く ) 。
[ ビット 3] TAGV TAG: バリッドビット
アドレスタグの値が有効かどうかを示します。このビットが"0"のときはサブバリッ
ドビットに無関係に,このブロックはインバリッド状態になります(フラッシュ時)。
[ ビット 1] LRU ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にアクセスしたエントリがウェイ 1・2 のどちらであるかを示します。LRU=1 の
ときはウェイ 1 の , LRU=0 のときはウェイ 2 のセットのエントリが最後にアクセス
したことを示します。
33
第 3 章 メモリ空間 , CPU および制御部
[ ビット 0] ETLK: エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK=1 の
ときにロック状態で , キャッシュミス時にエントリは更新されません。ただし , 無
効なサブブロックは更新されます。
ウェイ 1, 2 ともにエントリロックされているときにキャッシュミスした場合は ,
キャッシュミス判定の 1 サイクルをロスした後 , 外部メモリをアクセスします。
■ 制御レジスタ構成
ICHCR(I-CacHe Control Register) は , 命令キャッシュの動作を制御します。
ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に
影響を与えません。
図 3.3-3 命令キャッシュ制御レジスタ ICHCR (I-CacHe Control Register)
(ウェイ1,2共用で1本)
bit
ICHCR
アドレス:000003E7H
7
-
-
6
-
-
5
GBLK
R/W
4
ALFL
R/W
3
EOLK
R/W
2
ELKR
R/W
1
FLSH
R/W
0
ENAB
R/W
初期値
--000000B
グローバルロック
オートロックフェイル
エントリオートロック
エントリロック解除
フラッシュ
イネーブル
[ ビット 5] GBLK: グローバルロック
すべてのカレントエントリをキャッシュにロックします。GBLK=1 のとき , キャッ
シュ内の有効なエントリはミス時に更新されません。ただし , 無効なサブブロック
は更新されます。その際の命令データフェッチ動作は , ロックしていないときと同
様です。
[ ビット 4] ALFL: オートロックフェイル
すでにロックしているエントリをさらにロックしようとすると ALFL=1 にセットさ
れます。エントリオートロック中のエントリの更新が , すでにロックされているエ
ントリに対して行われようとしたとき , ユーザの意図に反して新たなエントリが
キャッシュ中にロックされません。このようなプログラムのデバッグのために参照
します。"0" 書込みでクリアされます。
[ ビット 3] EOLK: エントリオートロック
命令キャッシュ内の各エントリに対して , オートロッキングの有効・無効を切り換
えます。
EOLK=1 のときにアクセス ( ミス時のみ ) されたエントリは , キャッシュタグ内の
エントリロックビットがハードウェアで "1" にセットされることにより , ロックさ
れます。ロックされたエントリは以後 , キャッシュミス時の更新の対象になりませ
ん。ただし , 無効なサブブロックは更新されます。確実にロックするためには一度
フラッシュした後 , このビットをセットしてください。
[ ビット 2] ELKR: エントリロック解除
す べ て の キ ャ ッ シ ュ タ グ 中 の エ ン ト リ ロ ッ ク ビ ッ ト の ク リ ア を 指 定 し ま す。
ELKR=1 にセットされた次のサイクルで , すべてのキャッシュタグ中のエントリ
ロックビットが "0" にクリアされます。ただし , 本ビットの内容が保持されるのは 1
クロックサイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。
34
第 3 章 メモリ空間 , CPU および制御部
<注意事項>
命令キャッシュイネーブル (ENAB=1) 時にエントリロック解除 (ELKR=1) しないでくださ
い。
[ ビット 1] FLSH: フラッシュ
命令キャッシュのフラッシュを指定します。FLSH=1 のとき , キャッシュの内容が
フラッシュされます。ただし , 本ビットの内容が保持されるのは 1 クロックサイク
ルのみであり , 2 クロックサイクル以降は "0" にクリアされます
<注意事項>
命令キャッシュイネーブル (ENAB=1) 時にフラッシュ (FLSH=1) しないでください。
[ ビット 0] ENAB: イネーブル
命令キャッシュのイネーブル・ディセーブルを切り換えます。ENAB=0 のときディ
セーブル状態で , CPU からの命令アクセスは , キャッシュを介さず外部に対して直
接行われます。ディセーブル状態では , キャッシュの内容は保存されます。
■ 各動作モードの状態
● 各動作モード時のキャッシュの状態
ディセーブル / フラッシュはビット操作命令等で , そのビットだけ変化させた場合の状
態を示しています。
35
第 3 章 メモリ空間 , CPU および制御部
表 3.3-1 各動作モード時のキャッシュの状態
リセット直後
フラッシュ
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
アドレスタグ
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
サブブロック
バリッド
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
エントリロック
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
( 要エントリロック解除 )
TAG バリッド
内容は不定
直前の状態を保持
ディセーブル中フラッシュ可能
すべてのエントリが
インバリッド
グローバル
ロック
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
オートロック
フェイル
フェイルなし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
エントリ
オートロック
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
エントリロック
解除
解除なし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
イネーブル
ディセーブル
ディセーブル
直前の状態を保持
フラッシュ
フラッシュ
しない
直前の状態を保持
ディセーブル中書換え可能
メモリアクセス直後の
サイクルでフラッシュ。
以後 "0" に戻る。
キャッシュ メモリ
タ LRU
グ
制
御
レ
ジ
ス
タ
ディセーブル
● キャッシュのエントリ更新
キャッシュのエントリ更新は , 表 3.3-2 のように行います。
表 3.3-2 キャッシュのエントリ更新
アンロック
ロック
ヒット
更新しない
更新しない
ミス
メモリをロードし , キャッシュの
エントリの内容を更新する。
タグミスの場合は更新しない。
サブブロックインバリッドの場合は更新する。
36
第 3 章 メモリ空間 , CPU および制御部
■ 命令キャッシュのキャッシュ可能領域
• 命令キャッシュは , すべての空間をキャッシュ可能とします。
• 内蔵 ROM 搭載品では , 内蔵 ROM もキャッシュの対象とします。
• 外部領域 , 内蔵 ROM 以外の空間への命令アクセスが行われないことを , 前提にして
います。したがって , I/O 領域の制御レジスタ等へ命令アクセスが行われてもキャッ
シュの対象となります。
• DMA 転送で外部メモリの内容が更新されたとしても , キャッシュの内容とのコヒー
レンシはとりません。
このような場合はキャッシュをフラッシュすることで , コヒー
レンシを保ってください。
■ 本品種の I-Cache を使用するときの設定方法
1)初期化
I-Cache を使い始める最初はキャッシュの中身をクリアしておく必要があります。
レジスタの Flash ビットと ELKR ビットを "1" にして , 過去のデータを消去します。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000110,r1
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1,@r0
// レジスタへ書込み
これで , キャッシュが初期化されます。
また , キャッシュを使用開始後にクリアする場合は必ずキャッシュディセーブルの
状態で行ってください。
ldi
ldi
ldi
ldi
stb
#0x000003e7,r0
#0B00000000,r1
r1,@r0
#0B00000010,r1
r1,@r0
//
//
//
//
//
I-Cache コントロールレジスタのアドレス
FLSH ビット (1 ビット )
レジスタへ書込み
FLSH ビット (1 ビット )
レジスタへ書込み
2)キャッシュを有効 (ON) にする
I-Cache を有効にするには ENAB ビットを "1" にします。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000001,r1
// ENAB ビット (0 ビット )
stb
r1,@r0
// レジスタへ書込み
これ以降の命令アクセスがキャッシュに取り込まれていきます。
キャッシュの有効化は , キャッシュの初期化と同時に行うこともできます。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000111,r1
// ENAB ビット (0 ビット )
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1,@r0
// レジスタへ書込み
3)キャッシュを無効 (OFF) にする
I-Cache を無効にするには ENAB ビットを "0" にします。
キャッシュを無効 (OFF) にする場合に命令キャッシュと CPU とのアドレス整合性
を保つため以下のプログラム例のように解除後にNOP, RET, JMPによってタイミン
グ同期を行ってください。
37
第 3 章 メモリ空間 , CPU および制御部
● サブルーチンで無効にする場合
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000,r1
// ENAB ビット (0 ビット )
stb
r1,@r0
// レジスタへ書込み
nop
// タイミング同期のため nop を 3 回実行
nop
nop
ret
// タイミング同期のため ret を 3 回実行
ret
ret
● プログラムの途中で無効にする場合
ldi
#chche_off,r2
// キャッシュ OFF 後の飛び先指定
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000,r1
// ENAB ビット (0 ビット )
stb
r1,@r0
// レジスタへ書込み
nop
// タイミング同期のため nop を 3 回実行
nop
nop
jmp
@r2
jmp
@r2
jmp
@r2
chche_off:
// タイミング同期のため jmp を 3 回実行
// ラベル
この状態 ( リセット後の状態と同じ ) では , キャッシュはないのと同じで , 何もしま
せん。
キャッシュのオーバヘッドが気になる処理のときは, OFFにすることを推奨します。
4)キャッシュの内容をすべてロックする。
現在 I-Cache に入っている命令がキャッシュから追い出されないようにロックしま
す。レジスタの GBLK ビットを "1" にします。
ENAB ビットも "1" にしないと , キャッシュが OFF となり , キャッシュ内のロック
した命令が使われません。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00100001,r1
// ENAB ビット (0 ビット )
// GBLK ビット (5 ビット )
stb
r1,@r0
// レジスタへ書込み
5)特定の命令をキャッシュにロックする。
特定の命令群 ( サブルーチン等 ) をキャッシュにロックするには , それらの命令を
実行する前に EOLK ビットを "1" にします。
ロックした命令は高速な内部 ROM のようにアクセスされます。
38
第 3 章 メモリ空間 , CPU および制御部
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00001001,r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1,@r0
// レジスタへ書込み
メモリのウェイト数によりますが , stb 命令の次以降の命令から有効になります。
ロックしたい命令群が終わった所で EOLK ビットを "0" にします。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000001,r1
// ENAB ビット (0 ビット )
// EOLK ビット (3 ビット )
stb
r1,@r0
// レジスタへ書込み
6)キャッシュのロックを解除する。
上記 5) でロックした命令のロック情報を解除します。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000,r1
// キャッシュディセーブル
stb
r1,@r0
// レジスタへ書込み
ldi
#0B00000100,r1
// ELKR ビット (2 ビット )
stb
r1,@r0
// レジスタへ書込み
ロック情報だけ解除されるので , ロックされていた命令は , LRU ビットの状態に応
じて順次新しい命令に置き換わります。
39
第 3 章 メモリ空間 , CPU および制御部
3.4
プログラミングモデル
ここでは , 基本のプログラミングモデルおよび各レジスタについて説明します。
■ 基本プログラミングモデル
図 3.4-1 に , 基本プログラミングモデルを示します。
図 3.4-1 基本プログラミングモデル
32ビット長
〔初期値〕
XXXX XXXXH
XXXX XXXXH
プログラムカウンタ
プログラムステータス
テーブルベースレジスタ
R12
R13
R14
R15
AC
FP
SP
PC
PS
TBR
リターンポインタ
…
…
汎用レジスタ
…
R0
R1
XXXX
XXXX
XXXX
0000
XXXX XXXXH
-
ILM
-
SCR
CCR
000F FC00H
RP
XXXX XXXXH
システムスタックポインタ
SSP
0000 0000H
ユーザスタックポインタ
USP
XXXX XXXXH
乗除算結果レジスタ
MDH
MDL
XXXX XXXXH
XXXX XXXXH
■ 汎用レジスタ
図 3.4-2 に , 汎用レジスタの構成を示します。
図 3.4-2 汎用レジスタの構成
32ビット
〔初期値〕
XXXX XXXXH
XXXX XXXXH
R0
R1
~
R12
R13
R14
R15
AC
FP
SP
~
~
40
XXXXH
XXXXH
XXXXH
0000H
XXXX
XXXX
XXXX
0000
XXXXH
XXXXH
XXXXH
0000H
第 3 章 メモリ空間 , CPU および制御部
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータおよびメ
モリアクセスのポインタとして使用されます。
16 本のレジスタのうち , 以下に示すレジスタは特殊な用途を想定しており , そのために
一部の命令が強化されています。
• R13: 仮想アキュムレータ
• R14: フレームポインタ
• R15: スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H(SSP の値 ) となり
ます。
■ PS(Program Status)
プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパートに分か
れています。
図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
ビット位置→
31
20
16
10
8 7
0
PS
ILM
SCR
CCR
● CCR(Condition Code Register)
CCR
7
6
5
4
3
2
1
0
−
−
S
I
N
Z
V
C
[ 初期値 ]
--00XXXXB
[ ビット 5] S: スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内容
0
SSP が R15 として使用されます。EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令の実行は , SSP を選択してください。
41
第 3 章 メモリ空間 , CPU および制御部
[ ビット 4] I: 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内容
0
ユーザ割込み禁止。INT 命令実行時 , "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されま
す。
リセットにより "0" にクリアされます。
[ ビット 3] N: ネガティブフラグ
演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
[ ビット 2] Z: ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
[ ビット 1] V: オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
42
第 3 章 メモリ空間 , CPU および制御部
[ ビット 0] C: キャリフラグ
演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示しま
す。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
● SCR(System Condition code Register)
SCR
10
9
8
D1
D0
T
[ 初期値 ]
XX0B
[ ビット 10, ビット 9] D1, D0: ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。除算処理の実行途中は , 変更して
はいけません。
ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰す
ることによりステップ除算の再開が保証されます。リセットによる初期状態は不定
です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[ ビット 8] T: ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効。このとき , ユーザ用 NMI とユーザ割
込みがすべて割込み禁止となります。
リセットにより "0" に初期化されます。ステップトレーストラップの機能はエミュ
レータが使用します。エミュレータ使用時 , ユーザプログラム中で使用することは
できません。
43
第 3 章 メモリ空間 , CPU および制御部
● ILM
ILM
20
19
18
17
16
ILM4
ILM3
ILM2
ILM1
ILM0
[ 初期値 ]
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。レベル値は , 0(00000B)
が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行する場合 , 指定し
た値に 16 を加えた値が転送されます。元の値が 0 ∼ 15 の場合は , 0 ∼ 31 の任意の値
が設定可能です。
リセットにより , 15(01111B) に初期化されます。
■ PC(Program Counter)
31
0
PC
[ 初期値 ]
XXXXXXXXH
プログラムカウンタで , 実行している命令のアドレスを示しています。命令の実行を伴
う PC の更新時に , ビット 0 は "0" に設定されます。
ビット 0 が "1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場
合だけです。
ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
リセットによる初期値は不定です。
■ TBR(Table Base Register)
31
0
TBR
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。リセットによる初期値は , 000FFC00H です。
■ RP(Return Pointer)
31
RP
0
[ 初期値 ]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。CALL 命令実
行時, PCの値がこのRPに転送され, RET命令実行時は, RPの内容がPCに転送されます。
リセットによる初期値は不定です。
44
第 3 章 メモリ空間 , CPU および制御部
■ SSP(System Stack Pointer)
31
0
SSP
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。SSP を明確に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
■ USP(User Stack Pointer)
31
0
USP
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。S フラグが "1" のとき , R15 として機能します。
USP を明確に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令を使用する場合は , SSP を使用してください。
■ 乗除算レジスタ (Multiply & Divide register)
31
乗除算結果格
納レジスタ
MDH
MDL
0
[ 初期値 ]
XXXXXXXXH
XXXXXXXXH
乗除算用のレジスタで , 各々 32 ビット長です。リセットによる初期値は不定です。
● 乗算実行時
32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除算結
果格納レジスタに格納されます。
• MDH: 上位 32 ビット
• MDL: 下位 32 ビット
16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。
• MDH: 不定
• MDL: 結果 32 ビット
● 除算実行時
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果が
MDL と MDH に格納されます。
• MDH: 剰余
• MDL: 商
45
第 3 章 メモリ空間 , CPU および制御部
データ構造
3.5
FR ファミリのデータ配置は , 次のようになっています。
• ビットオーダリングの場合 : リトルエンディアン
• バイトオーダリングの場合 : ビッグエンディアン
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.5-1 に , ビットオーダリングのデータ配置を示します。
図 3.5-1 ビットオーダリングのデータ配置
bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSB
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.5-2 に , バイトオーダリングのデータ配置を示します。
図 3.5-2 バイトオーダリングのデータ配置
MSB
bit 31
メモリ
46
1
1
1
0
0
1
1
0
0
1
0
1
0
0
0
1
1
15
7
0
10101010 11001100 11111111 00010001
bit
7
n 番地
(n+1) 番地
(n+2) 番地
(n+3) 番地
LSB
23
1
1
1
0
0
1
1
0
1
0
1
0
0
0
1
1
第 3 章 メモリ空間 , CPU および制御部
3.6
ワードアライメント
命令やデータは , バイト単位でアクセスするため , 配置するアドレスは命令長やデー
タ幅によって異なります。
■ プログラムアクセス
FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。PC の
ビット 0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。"1" になる可能性
があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , その場
合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置かなくてはなりません。
奇数アドレス例外はありません。
■ データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
インメントがアドレスに対して施されます。
• ワードアクセス : アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00")
• ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位 ビットは強制的に "0")
• バイトアクセス : −
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。例えば ,@(R13,Ri) のアドレッシングモー
ドの場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま計算
に使用され , 加算結果の下位ビットがマスクされます。
計算前のレジスタがマスクされるわけではありません。
[ 例 ] LD @(R13,R2),R0
R13
R2
00002222H
00000003H
+)
加算結果
アドレス端子
00002225H
↓ 下位2ビット強制マスク
00002224H
47
第 3 章 メモリ空間 , CPU および制御部
3.7
特別なメモリ領域
ここでは , MB91151A のメモリマップを示します。
■ MB91151A のメモリマップ
アドレス空間は 32 ビットリニアです。
図 3.7-1 に , MB91151A のメモリマップを示します。
図 3.7-1 MB91151A のメモリマップ
0000 0000H
0000 0100H
0000 0200H
バイトデータ
ハーフワードデータ
ダイレクトアドレッシング領域
ワードデータ
0000 0400H
000F FC00H
ベクタテーブル初期領域
000F FFFFH
FFFF FFFFH
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ (8 ビット )
: 000H ∼ 0FFH
• ハーフワードデータ (16 ビット ) : 000H ∼ 1FFH
• ワードデータ (32 ビット )
: 000H ∼ 3FFH
■ ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
48
第 3 章 メモリ空間 , CPU および制御部
3.8
命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理
演算とビット操作およびダイレクトアドレッシング命令をサポートしています。命
令セットの一覧は ,「付録 E 命令一覧」を参照してください。各命令は 16 ビット長
( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
■ 命令概要
● 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。
また,レジスタに即値をセットする即値転送命令や,レジスタ間転送命令も備えています。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアは , バイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。
また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については
ディスプレースメント付レジスタ間接やレジスタインクリメント・デクリメント付レ
ジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。
分岐命令の詳細については「3.8.1 遅延スロット付き分岐命令」を参照してください。
● 論理演算とビット操作
論理演算命令は汎用レジスタ間または汎用レジスタとメモリ(およびI/O)間でAND, OR,
EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の
内容を直接操作することができます。メモリアドレッシングは一般的なレジスタ間接で
す。
49
第 3 章 メモリ空間 , CPU および制御部
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は I/O と汎用レジスタ間または I/O とメモリ間のアクセ
スに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定する
ことにより , 高速 , 高効率なアクセスを行うことができます。一部の命令についてはレ
ジスタインクリメント・デクリメント付レジスタ間接のメモリアドレッシングも可能
です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張等を行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
50
第 3 章 メモリ空間 , CPU および制御部
3.8.1
遅延スロット付き分岐命令
ここでは , 分岐命令のうち , 遅延スロットを持つものについて説明します。
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 遅延スロットに置かれ
た命令を実行した後に , 分岐します。
■ 遅延スロット付き分岐命令
遅延スロット付きの分岐命令には , 以下の命令があります。
JMP:D
@Ri
CALL:D
label12
CALL:D
@Ri
RET:D
BRA:D
Label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
Label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
Label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
Label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
■ 遅延スロット付き分岐命令の動作
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」と呼びます ) に置かれた命令を実行した後に , 分岐します。
分岐動作の前に遅延スロットの命令を実行するため , 見掛け上の実行速度が 1 サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置かなくてはなりません。
[例]
; 命令の並び
ADD
R1,R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2,R3
; 遅延スロット …… 分岐の前に実行される
…
LABEL : ST
R3,@R4 ; 分岐先
条件分岐命令の場合,分岐条件が成立する場合も成立しない場合も遅延スロットに置か
れた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体例を示します。
• JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更
新しても影響を受けません。
51
第 3 章 メモリ空間 , CPU および制御部
[例]
LDI:32 #Label,R0
JMP:D
@R0
LDI:8
#0,
; Label に分岐
R0
; 分岐先アドレスには影響を与えない。
…
• RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
RET:D
MOV
; これより前に設定された RP の示すアドレスへ分岐
R8,
RP
; リターン動作には影響を与えない。
…
Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
R0
BC:D
Overflow
ANDCCR #0
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない。
…
• CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更
新された内容が読み出されます。
[例]
CALL:D Label
MOV
RP,
; RP を更新して分岐
R0
; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き分岐命令の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」,「a」,「b」,「c」, ま
たは「d」と記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では,ステップトレーストラッ
プは発生しません。
● 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し
ません。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
52
第 3 章 メモリ空間 , CPU および制御部
3.8.2
遅延スロットなし分岐命令
ここでは , 分岐命令のうち , 遅延スロットを持たないものについて説明します。
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。
■ 遅延スロットなし分岐命令
遅延スロットなしの分岐命令には , 以下の命令があります。
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
■ 遅延スロットなし分岐命令の動作
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分
岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1,R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2,R3
; 実行されない
…
LABEL
ST
R3,@R4 ; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。これは , 遅延スロットに適当な命令を入れることができ
ないために NOP を明記した遅延スロット付き分岐命令に比べ , 命令コード効率を上げ
ることができます。遅延スロットに有効な命令を設置できるときは遅延スロット付き
の動作を選択し , そうでないときは遅延スロットなしの動作を選択することで , 実行速
度とコード効率を両立させることが可能となります。
53
第 3 章 メモリ空間 , CPU および制御部
3.9
EIT( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
し , ほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
■ EIT
● 例外
例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
● 割込み
割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー
ドウェアです。
● トラップ
トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ EIT 要因
EIT 要因として , 次のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT からの復帰には , RETI 命令を使用します。
■ EIT の注意事項
● 遅延スロット
分岐命令の遅延スロットには , EIT に関して制約があります。
詳しくは ,「3.8.1 遅延スロット付き分岐命令」を参照してください。
54
第 3 章 メモリ空間 , CPU および制御部
3.9.1
割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ 割込みレベル
各レベルの割当てを , 表 3.9-1 に示します。
表 3.9-1 割込みレベル
割込みレベル
2 進数
10 進数
00000
0
00001
1
00010
2
00011
3
00100
4
00101 ∼ 01110
5 ∼ 14
01111
15
割込み要因
注意事項
─
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムによ
り ILM に設定することはできま
せん。
INTE 命令 , ステップトレーストラップ
( システム予約 )
( システム予約 :NMI)
10000 ∼ 11110 16 ∼ 30 割込み
11111
31
─
ILM 設定時 , ユーザ割込み禁止
─
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップ , そして INT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
■ 割込みに対するレベルマスク
割込み要求が発生したときは , 割込み要因の持つ割込みレベルが ILM の保持するレベ
ルマスク値と比較されます。そして , 次の条件が成立したときはマスクされ , 要求は受
理されません。
要因の持つ割込みレベル ≧ レベルマスク値
55
第 3 章 メモリ空間 , CPU および制御部
3.9.2
割込みスタック
システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退
避・復帰されます。割込み後は SSP の示すアドレスに PC, (SSP+4) のアドレスに
PS が格納されています。
■ 割込みスタック
図 3.9-1 に割込みスタックの動作図を示します。
図 3.9-1 割込みスタック動作図
[例]
SSP
[割込み前]
80000000H
SSP
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
56
[割込み後]
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
第 3 章 メモリ空間 , CPU および制御部
3.9.3
EIT ベクタテーブル
テーブルベースレジスタ (TBR) は , EIT 用ベクタテーブルの先頭アドレスを示すレ
ジスタです。
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
■ ベクタテーブル
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr = TBR + vctofs = TBR +(03FCH - 4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
: ベクタ番号
加算結果の下位 2 ビットは常に "00" として扱われます。
000FFC00H ∼ 000FFFFFH の領域が , リセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。なおアーキテクチャ上のベク
タテーブルを , 表 3.9-2 に示します。
57
第 3 章 メモリ空間 , CPU および制御部
表 3.9-2 ベクタテーブル
ベクタ番号
ベクタアドレス
説明
0
00H
000FFFFCH
1
01H
TBR + 03F8H
システム予約
2
02H
TBR + 03F4H
システム予約
3
03H
TBR + 03F0H
システム予約
4
04H
TBR + 03ECH
システム予約
5
05H
TBR + 03E8H
システム予約
6
06H
TBR + 03E4H
システム予約
7
07H
TBR + 03E0H
コプロセッサ不在トラップ
8
08H
TBR + 03DCH
コプロセッサエラートラップ
9
09H
TBR + 03D8H
INTE 命令
10
0AH
TBR + 03D4H
命令ブレーク例外
11
0BH
TBR + 03D0H
オペランドブレークトラップ
12
0CH
TBR + 03CCH
ステップトレーストラップ
13
0DH
TBR + 03C8H
システム予約 NMI( エミュレータ用 )
14
0EH
TBR + 03C4H
未定義命令例外
15
0FH
TBR + 03C0H
システム予約 (NMI)
16
10H
TBR + 03BCH
マスク可能割込み要因 #0 (IRQ0)
17 ∼ 63
11H ∼ 3FH TBR + 03B8H ∼ TBR + 0300H
リセット
マスク可能割込み要因 #1 (IRQ2) ∼
マスク可能割込み要因 #47 (IRQ47)
64
40H
TBR + 02FCH
システム予約 (REALOS にて使用 )
65
41H
TBR + 02F8H
システム予約 (REALOS にて使用 )
66 ∼ 255 42H ∼ FFH TBR + 02F4H ∼ TBR + 0000H INT 命令
58
第 3 章 メモリ空間 , CPU および制御部
3.9.4
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま
す。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラ実行順序は , 次
の 2 つの要素により決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先順位
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
EIT 要因受理の優先度は , 表 3.9-3 のようになっています。
表 3.9-3 EIT 要因の受理の優先度とほかの要因へのマスク
受理の優先順位
要因
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
未定義命令例外
取消し
INT 命令
I フラグ =0
3
コプロセッサ不在トラップ
なし
コプロセッサエラートラップ
4
ユーザ割込み
ILM= 受理した要因のレベル
5
(NMI)
ILM=15
7
INTE 命令
ILM=4
8
ステップトレーストラップ
ILM=4
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.9-4 のようになります。
59
第 3 章 メモリ空間 , CPU および制御部
表 3.9-4 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
(NMI)
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ
コプロセッサエラートラップ
*1: ほかの要因は破棄されます。
*2: INTE 命令をステップ実行した場合は , ステップトレーストラップの EIT のみ発
生します。INTE による要因は無視されます。
図 3.9-2 に , 多重 EIT 処理の例を示します。
図 3.9-2 多重 EIT 処理の例
メインルーチン
NMIの
ハンドラ
優先度
↓
(高)NMI 発生
INT命令の
ハンドラ
(1)最初に実行
(低)INT命令実行
(2)次に実行
60
第 3 章 メモリ空間 , CPU および制御部
3.9.5
EIT 動作
ここでは , EIT の動作について説明します。
以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも
のとします。
また ,「次の命令のアドレス」とは , EIT を検出した命令が下記のようになっている
ことを意味します。
• LDI:32 のとき……… PC+6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき……… PC+4
• その他の命令のとき……… PC+2
■ ユーザ割込みの動作
ユーザ割込み要求が発生すると , 以下の順序で要求受理の可否が判定されます。
● 割込み要求受理の可否判定
1)同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を
保持するものが選択されます。比較に使用されるレベルは , マスク可能割込みにつ
いては対応する ICR の保持する値が使用されます。
2)同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持
つ割込み要求が選択されます。
3)選択された割込み要求の割込みレベルをILMにより決定されるレベルマスク値と比
較します。
- 割込みレベル ≧ レベルマスク値のとき , 割込み要求はマスクされ受理されな
い。
- 割込みレベル < レベルマスク値のとき , 4) へ。
4)選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み
要求はマスクされ , 受理されません。I フラグが "1" ならば 5) へ。
5)上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
● 動作
EIT 要求検出時にユーザ割込みの要求が受理されると , 受理された割込み要求に対応し
た割込み番号を使用して , CPU は以下のように動作します。
以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)次の命令のアドレス → (SSP)
5)受理した要求の割込みレベル → ILM
6)"0"
→ S フラグ
7)(TBR + 受理した割込み要求のベクタオフセット ) → PC
61
第 3 章 メモリ空間 , CPU および制御部
割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
■ INT 命令の動作
INT #u8:u8 で示されるベクタの割込みハンドラへ分岐します。
以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。
● 動作
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)PC+2
→ (SSP)
5)"0"
→ I フラグ
6)"0"
→ S フラグ
7)(TBR + 3FCH - 4 × u8) → PC
■ INTE 命令の動作
INTE: ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。
● 動作
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)PC+2
→ (SSP)
5)"00100" → ILM
6)"0"
→ S フラグ
7)(TBR + 3D8H) → PC
INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 一命令実行ごとにトラップが発生し , ブレークします。
● ステップトレーストラップ検出の条件
1)T フラグ = 1
2)遅延分岐命令でないとき。
3)INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。
4)以上の条件が成立すると , 命令動作の切れ目でブレークします。
62
第 3 章 メモリ空間 , CPU および制御部
● 動作
以下 1) ∼ 7) の ( ) 内は , レジスタの指すアドレスを表します。
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)次の命令のアドレス → (SSP)
5)"00100" → ILM
6)"0"
→ S フラグ
7)(TBR + 3CCH) → PC
T フラグをセットしてステップトレーストラップをイネーブルにしたとき , ユーザ用の
NMI とユーザ割込みは禁止状態となります。
また , INTE 命令による EIT は発生しなくなります。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
● 未定義命令例外の検出条件
1)命令のデコード時に , 未定義命令であることを検出。
2)遅延スロット外に置かれている ( 遅延分岐命令の直後ではない )。
3)以上の条件が成立すると , 未定義命令例外が発生し , ブレークします。
● 動作
以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)PC
→ (SSP)
5)"0"
→ S フラグ
6)(TBR + 3C4H) → PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
■ コプロセッサ不在トラップ
実装されていないコプロセッサを使用するコプロセッサ命令を実行すると,コプロセッ
サ不在トラップが発生します。
63
第 3 章 メモリ空間 , CPU および制御部
● 動作
以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)次の命令のアドレス → (SSP)
5)"0"
→ S フラグ
6)(TBR + 3E0H) → PC
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合,次にそのコプロセッサを操
作するコプロセッサ命令を実行したときに , コプロセッサエラートラップが発生しま
す。
<注意事項>
本製品にコプロセッサは搭載されていません。
● 動作
以下 1) ∼ 6) の ( ) 内は , レジスタの指すアドレスを表します。
1)SSP-4
→ SSP
2)PS
→ (SSP)
3)SSP-4
→ SSP
4)次の命令のアドレス → (SSP)
5)"0"
→ S フラグ
6)(TBR + 3DCH) → PC
■ RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
● 動作
以下 1) ∼ 4) の ( ) 内は , レジスタの指すアドレスを表します。
1)(R15)
→ PC
2)R15+4 → R15
3)(R15)
→ PS
4)R15+4 → R15
PS, PC を復帰するために参照するスタックポインタは , S フラグの内容に応じて選択さ
れる点に注意してください。割込みハンドラ内で R15( スタックポインタ ) を操作する
命令を実行する場合は , S フラグを "1" にして USP を R15 として使用し , RETI 命令の
前に必ず S フラグを "0" に戻してください。
64
第 3 章 メモリ空間 , CPU および制御部
3.10
リセットシーケンス
ここでは , CPU を動作状態にするときのリセットについて説明します。
■ リセット要因
リセット要因は以下のとおりです。
• 外部リセット端子からの入力
• スタンバイ制御レジスタ (STCR) の SRST ビット操作によるソフトウェアリセット
• ウォッチドッグタイマのカウントアップ
• パワーオンリセット
■ リセットによる初期化
リセット要因が発生すると , CPU は初期化されます。
● 外部リセット端子 , ソフトウェアリセットからの解除
• 端子を定められた状態に設定します。
• デバイス内部の各リソースを , リセット状態にします。制御レジスタは , あらかじ
め決められた値に初期化されます。
• クロックとして , 最も遅いギアが選択されます。
■ リセットシーケンス
リセット要因が解除されると , CPU は以下のリセットシーケンスを実行します。
(000FFFFCH) → PC
<注意事項>
リセット後は , モードレジスタの設定により動作モードの設定が必要です。
65
第 3 章 メモリ空間 , CPU および制御部
動作モード
3.11
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で , 動
作モードの制御を行います。
■ 動作モード
動作モードには , バスモードとアクセスモードがあります。
バス・モード
アクセス・モード
シングルチップ
内ROM外バス 32ビット・バス幅
16ビット・バス幅
外ROM外バス 8ビット・バス幅
● バスモード
バスモードとは ,内部ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) とモードレジスタ (MODR) の M1, M0 ビットで指定
します。
● アクセスモード
アクセスモードとは,外部データバス幅を制御するモードを示し,モード設定端子(MD2,
MD1, MD0) と AMD0/AMD1/AMD32/AMD4/AMD5(Address Mode Register) 内の BW1,
BW0 ビットで指定します。
■ モード端子
MD2, MD1, MD0 の 3 端子で , 表 3.11-1 に示すように動作の指定を行います。
表 3.11-1 モード端子と設定モード
モード端子
モード名
リセット
ベクトル
アクセス領域
外部データ
バス幅
備考
MD2
MD1
MD0
0
0
0
外部ベクタモード 0
外部
8 ビット
0
0
1
外部ベクタモード 1
外部
16 ビット
0
1
0
外部ベクタモード 2
外部
32 ビット
0
1
1
内部ベクタモード
内部
(モードレジスタ) シングルチップモード *
1
-
-
外部バスモード
-
-
-
本品種では使用禁止
使用禁止
*:本品種では使用禁止
■ モードデータ
リセット後 CPU が "0000 07FFH" に書き込むデータをモードデータと呼びます。
"0000 07FFH" に存在するのはモードレジスタ (MODR) で , 本レジスタに設定した後は
本レジスタの設定モードで動作します。モードレジスタには , リセット後 1 度だけしか
書き込むことができません。
66
第 3 章 メモリ空間 , CPU および制御部
本レジスタによる設定値は , 書込み直後に有効となります。
MODR
アドレス: bit
0000 07FFH
7
6
5
4
3
2
1
0
初期値
アクセス
M1
M0
*
*
*
*
*
*
XXXXXXXXB
W
バス・モード設定ビット
[ ビット 7, ビット 6] M1, M0
バスモード設定ビットです。モードレジスタ書込み後のバスモードの指定を行います。
M1
M0
0
0
シングルチップモード
0
1
内 RAM 外バスモード
─
1
0
外バスモード
─
1
1
機能
備考
本品種では設定禁止
─
設定禁止
注 ) 本品種では , 上記のうち "01", "10" のみ設定してください。
[ ビット 5 ∼ビット 0] *
システム予約ビットです。
<注意事項>
これらのビットには , 常に "0" を書き込んでください。
● MODR 書込み時の注意点
MODR に書き込む前には必ず AMD0 ∼ AMD5 を設定し , 各 CS(Chip Select) 領域のバス
幅を決定してください。
MODR にはバス幅を設定するビットはありません。
バス幅に関しては , MODR 書込み前はモード端子 MD2 ∼ MD0 の値が , MODR 書込み
後は AMD0 ∼ AMD5 の BW1, BW0 の設定値が有効になります。
例えば , 外部リセットベクタは通常領域 0(CS0 がアクティブな領域 ) で行いますが , そ
のときのバス幅は MD2 ∼ MD0 端子で決まります。MD2 ∼ MD0 でそのときのバス幅
を 32 ビットもしくは 16 ビットに設定し AMD0 には何も設定しないまま MODR に書
込みを行ってしまうと , AMD0 のバス幅の初期値は 8 ビットになっているため , 領域 0
はMODRに書込み後8ビットバスモードに遷移してバス動作してしまい,誤動作します。
このような問題を防ぐため , MODR を書き込む前には必ず AMD0 ∼ AMD5 を設定して
おくことが必要です。
MODR書込み
RST(リセット)
バス幅指定:MD2,MD1,MD0
→
AMD0~AMD5のBW1,BW0
67
第 3 章 メモリ空間 , CPU および制御部
3.12
クロック発生部 ( 低消費電力メカニズム )
クロック発生部は , 以下の機能を受け持つモジュールです。
• CPU クロック生成 ( ギア機能を含む )
• 周辺クロック生成 ( ギア機能を含む )
• リセット発生および要因の保持
• スタンバイ機能
• PLL( 逓倍回路 ) 内蔵
■ クロック発生部のレジスタ構成
図 3.12-1 クロック発生部のレジスタ構成を示します。
図 3.12-1 クロック発生部のレジスタ構成
アドレス
000480H
000481H
000482H
000483H
000484H
000485H
000488H
68
7
0
RSRR/WTCR
STCR
PDRR
CTBR
GCR
WPR
PCTR
リセット要因 / ウォッチドッグ周期制御レジスタ
スタンバイ制御レジスタ
DMA 要求抑止レジスタ
タイムベースタイマクリアレジスタ
ギア制御レジスタ
ウォッチドッグリセット発生延期レジスタ
PLL 制御レジスタ
第 3 章 メモリ空間 , CPU および制御部
■ クロック発生部のブロックダイヤグラム
図 3.12-2 に , クロック発生部のブロックダイヤグラムを示します。
図 3.12-2 クロック発生部のブロックダイヤグラム
[ギア制御部]
GCRレジスタ
CPUギア
周辺ギア
X0
X1
発振
回路
CPUクロック
MPX
1/2
内部
クロック
生成回路
内部Busクロック
内部周辺クロック
PLL
[ストップ・スリープ制御部]
内部割込み
内部リセット
STCRレジスタ
STOP状態
DMA要求
SLEEP状態
CPU Hold要求
状態遷移
PDRRレジスタ
制御回路
リセット
発生 F/F
内部リセット
パワー・オン検出回路
V CC
[リセット要因回路]
R
RSRRレジスタ
GND
RST端子
[ウォッチドッグ制御部]
WPRレジスタ
ウォッチ
ドッグ
F/F
カウント
クロック
CTBRレジスタ
タイムベースタイマ
69
第 3 章 メモリ空間 , CPU および制御部
3.12.1
リセット要因レジスタ (RSRR) とウォッチドッグ周
期制御レジスタ (WTCR)
リセット要因レジスタ (RSRR) は , 発生したリセットの種別を保持するレジスタで ,
ウォッチドッグ周期制御レジスタ (WTCR) は , ウォッチドッグタイマの周期を指定
するレジスタです。
■ リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR)
リセット要因レジスタ (RSRR) とウォッチドッグ周期制御レジスタ (WTCR) のレジス
タ構成は , 以下のとおりです。
RSRR/WTCR
bit
7
アドレス :000480H PONR
(R)
6
−
(−)
5
4
WDOG ERST
(R)
(R)
3
2
1
0
SRST
−
WT1
WT0
(R)
(−)
(W)
(W)
Power ON 後の初期値
1-XX X-00B
[ ビット 7] PONR
本ビットが "1" であると , 直前に発生したリセットはパワーオンリセットであった
ことを示します。本ビットが "1" の場合は , 本レジスタの本ビット以外の内容は無
効となります。
[ ビット 6] (Reserved)
本ビットは予約ビットです。読出し値は不定です。
[ ビット 5] WDOG
本ビットが"1"であると,直前に発生したリセットはウォッチドッグリセットであっ
たことを示します。
[ ビット 4] ERST
本ビットが "1" であると , 直前に発生したリセットは外部リセット端子に起因する
リセットであったことを示します。
[ ビット 3] SRST
本ビットが "1" であると , 直前に発生したリセットはソフトウェアリセット要求に
起因するリセットであったことを示します。
[ ビット 2] (Reserved)
本ビットは予約ビットです。読出し値は不定です。
70
第 3 章 メモリ空間 , CPU および制御部
[ ビット 1, ビット 0] WT1, WT0
本ビットは , ウォッチドッグの周期を指定するものです。本ビットと選択する周期
は以下のような関係があります。本ビットはすべてのリセットにより初期化されま
す。
ウォッチドッグリセットの発生を抑止する WPR への最終 5AH 書込みからウォッチ
ために最低限必要な WPR への書込み間隔 ドッグリセットが発生するまでの時間
WT1
WT0
0
0
φ × 215( 初期値 )
φ × 215 ∼ φ × 216
0
1
φ × 217
φ × 217 ∼ φ × 218
1
0
φ × 219
φ × 219 ∼ φ × 220
1
1
φ × 221
φ × 221 ∼ φ × 222
ただし , φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は X0 の 1
倍の周期となります。
71
第 3 章 メモリ空間 , CPU および制御部
3.12.2
スタンバイ制御レジスタ (STCR)
スタンバイ制御レジスタ (STCR) は , スタンバイ動作の制御と発振安定待ち時間の指
定を行うレジスタです 。
■ スタンバイ制御レジスタ (STCR)
スタンバイ制御レジスタ (STCR) のレジスタ構成は , 以下のとおりです。
STCR
bit
アドレス :000481H
7
STOP
6
SLEP
5
HIZX
4
SRST
(R/W)
(R/W)
(R/W)
(W)
3
2
OSC1 OSC0
(R/W)
(R/W)
1
0
−
−
(−)
(−)
初期値
0001 11--B
[ ビット 7] STOP
本ビットに "1" を書き込むと内部周辺のクロック停止 , 内部 CPU のクロック停止 ,
および発振の停止を行うストップ状態になります。
[ ビット 6] SLEP
本ビットに "1" を書き込むと内部 CPU のクロック停止を行うスタンバイ状態になり
ます。なお , STOP ビットと本ビット両方に "1" を書き込んだ場合は , STOP ビット
の方が優先となりますので , ストップ状態になります。
[ ビット 5] HIZX
本ビットに "1" を書き込んだ状態でストップ状態になるとデバイスの端子をハイイ
ンピーダンスにします。
[ ビット 4] SRST
本ビットに "0" を書き込むとソフトウェアリセット要求を発生します。
リード値は不定です。
[ ビット 3, ビット 2] OSC1, OSC0
本ビットは , 発振安定待ち時間を指定するものです。本ビットと選択する周期は以
下のような関係があります。本ビットはパワーオンリセットにより初期化され , そ
れ以外のリセット要因では影響を受けません。
OSC1
OSC0
0
0
φ × 23
0
1
φ × 216
1
0
φ × 218
1
1
φ × 213
発振安定待ち時間
80ms × 2 × 8
( 初期値 )
ただし ,φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は X0 の 1
倍の周期となります。
[ ビット 1, ビット 0] (Reserved)
本ビットは予約ビットです。読出し値は不定です。
72
第 3 章 メモリ空間 , CPU および制御部
タイムベースタイマクリアレジスタ (CTBR)
3.12.3
タイムベースタイマクリアレジスタ (CTBR) は , タイムベースタイマの内容を 0 初期
化するためのレジスタです 。
■ タイムベースタイマクリアレジスタ (CTBR)
タイムベースタイマクリアレジスタ (CTBR) のレジスタ構成は , 以下のとおりです。
CTBR
bit
アドレス :000483H
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
(W)
(W)
(W)
(W)
(W)
(W)
(W)
(W)
初期値
XXXX XXXXB
[ ビット 7 ∼ビット 0] D7 ∼ D0
本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にタイムベースタイマ
を "0" にクリアします。本レジスタの読出し値は不定です。A5H ライトと 5AH ライ
トの間の時間は制限がありません。
<注意事項>
本レジスタを使用してタイムベースタイマをクリアすると , 発振安定待ち間隔 , ウォッチ
ドッグ周期およびタイムベースを使用している周辺の周期が一時的に変動します。
73
第 3 章 メモリ空間 , CPU および制御部
ギア制御レジスタ (GCR)
3.12.4
ギア制御レジスタ (GCR) は , CPU, 周辺系クロックのギア機能を制御するレジスタ
です 。
■ ギア制御レジスタ (GCR)
ギア制御レジスタ (GCR) のレジスタ構成は , 以下のとおりです。
GCR
bit
アドレス :000484H
7
CCK1
6
5
4
3
CCK0 DBLAK DBLON PCK1
2
PCK0
−
0
CHC
(R/W)
(R/W)
(R/W)
(−)
(R/W)
(R)
(R/W)
(R/W)
1
初期値
1100 11-1B
[ ビット 7, ビット 6] CCK1, 0
本ビットは , CPU 系のギア周期を指定するものです。本ビットと選択する周期は以
下のような関係があります。本ビットはリセットにより初期化されます。
CCK1
CCK0
CHC
0
0
0
PLL × 1
0
1
0
PLL × 1/2
1
0
0
PLL × 1/4
1
1
0
PLL × 1/8
0
0
1
原発振× 1/2
0
1
1
原発振× 1/2 × 1/2
1
0
1
原発振× 1/2 × 1/4
1
1
1
原発振× 1/2 × 1/8
CPU 系マシンクロック ( 原発振 :X0 からの入力周波数 )
( 初期値 )
[ ビット 5] DBLAK
本ビットは , クロックダブラの動作状態を示すビットです。リードオンリであり ,
ライトは無視されます。本ビットはリセットにより初期化されます。
バス周波数の切換えにはタイムラグがありますが , 実際に動作が切り換わったかど
うかは本ビットで確認できます。
DBLAK
74
内部 : 外部の動作周波数
0
1:1 で動作中
1
2:1 で動作中
( 初期値 )
第 3 章 メモリ空間 , CPU および制御部
[ ビット 4] DBLON
本ビットは , クロックダブラの動作状態を指定するビットです。本ビットはリセッ
トにより初期化されます。
DBLON
内部 : 外部の動作周波数
0
1:1 で動作
1
2:1 で動作
( 初期値 )
[ ビット 3, ビット 2] PCK1, PCK0
本ビットは , 周辺系のギア周期を指定するものです。本ビットと選択する周期は以
下のような関係があります。本ビットはリセットにより初期化されます。
PCK1
PCK0
CHC
0
0
0
PLL × 1
0
1
0
PLL × 1/2
1
0
0
PLL × 1/4
1
1
0
PLL × 1/8
0
0
1
原発振× 1/2
0
1
1
原発振× 1/2 × 1/2
1
0
1
原発振× 1/2 × 1/4
1
1
1
原発振× 1/2 × 1/8
周辺系マシンクロック ( 原発振 :X0 からの入力周波数 )
( 初期値 )
[ ビット 0] CHC
本ビットは , 発振回路の 1/2 分周系と PLL 系の 2 種類のいずれを基本クロックとし
て使用するかを選択します。
"1" にすると 1/2 分周系に , "0" にすると PLL 系になります。
75
第 3 章 メモリ空間 , CPU および制御部
ウォッチドッグリセット発生延期レジスタ (WPR)
3.12.5
ウォッチドッグリセット発生延期レジスタ (WPR) は , ウォッチドッグタイマ用フ
リップフロップをクリアするレジスタです。本レジスタを用いてウォッチドッグリ
セットの発生を延期させます。
■ ウォッチドッグリセット発生延期レジスタ (WPR)
ウォッチドッグリセット発生延期レジスタ (WPR) のレジスタ構成は , 以下のとおりで
す。
WPR
bit
アドレス :000485H
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
(W)
(W)
(W)
(W)
(W)
(W)
(W)
(W)
初期値
XXXX XXXXB
[ ビット 7 ∼ビット 0] D7 ∼ D0
本レジスタに連続して A5H, 5AH を書き込むと , 5AH の直後にウォッチドッグタイ
マ用フリップフロップを "0" にクリアし , ウォッチドッグリセットの発生を延期さ
せます。
本レジスタの読出し値は不定です。A5H と 5AH の間の時間は制限がありませんが ,
以下の表の期間内に両データの書込みを終えないとウォッチドッグリセットを発
生します。
STCR
ウォッチドッグリセットの発生を抑止する WPR への最終 5AH 書込みからウォッチ
ために最低限必要な WPR への書込み間隔 ドッグリセットが発生するまでの時間
WT1
WT0
0
0
φ × 215
φ × 215 ∼ φ × 216
0
1
φ × 217
φ × 217 ∼ φ × 218
1
0
φ × 219
φ × 219 ∼ φ × 220
1
1
φ × 221
φ × 221 ∼ φ × 222
ただし ,φ は GCR の CHC=1 の場合は X0 の 2 倍 , GCR の CHC=0 の場合は PLL の 1
倍の周期となります。
76
第 3 章 メモリ空間 , CPU および制御部
DMA 要求抑止レジスタ (PDRR)
3.12.6
DMA 要求抑止レジスタ (PDRR) は , DMA 要求を一時的に抑止して , CPU 動作させ
るレジスタです。
■ DMA 要求抑止レジスタ (PDRR)
DMA 要求抑止レジスタ (PDRR) のレジスタ構成は , 以下のとおりです。
PDRR
bit
アドレス :000482H
15
14
13
12
11
10
9
8
−
−
−
−
D3
D2
D1
D0
(−)
(−)
(−)
(−)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
---- 0000B
[ ビット 11 ∼ビット 8] D3 ∼ D0
本ビットに "0" 以外の値を書き込むと , 以降の DMA から CPU への DMA 転送を抑
止します。以降 , 本ビットの内容を "0" にしない限り , DMA は使えなくなります。
<注意事項>
PDRR レジスタは単独では使用しないでください。必ず HRCL レジスタと組み合わせて
使ってください。
77
第 3 章 メモリ空間 , CPU および制御部
PLL 制御レジスタ (PCTR)
3.12.7
PLL 制御レジスタ (PCTR) は , PLL の発振を制御するレジスタです。
本レジスタは , GCR の CHC が "1" のときのみ設定を変更可能です。
■ PLL 制御レジスタ (PCTR)
PLL 制御レジスタ (PCTR) のレジスタ構成は , 以下のとおりです。
PCTR
bit15
bit14
SLCT1 SLCT0
(R/W) (R/W)
アドレス
000488H
bit13
bit12
−
(−)
−
(−)
bit11
VSTP
(R/W)
bit10
bit9
bit8
−
(−)
−
(−)
−
(−)
初期値
00XX 0XXXB
[ ビット 15, ビット 14] SLCT1, SLCT0
本ビットは , PLL の逓倍率を制御するものです。電源投入時のみ初期化されます。
本ビットの設定は GCR の CHC を "0" にしたときの内部動作周波数になります。
SLCT1
SLCT0
内部動作周波数 ( 原振 :16.5MHz の場合 )
0
0
8.25 MHz 動作 [ 初期値 ]
0
1
16.5 MHz 動作
1
X
33.0 MHz 動作
[ ビット 13, ビット 12, ビット 10 ∼ビット 8] 予約ビット
常に "0" を書いてください。読出し値は不定です。
[ ビット 11] VSTP
本ビットは , PLL の発振を制御するものです。電源投入時および外部リセットによ
り初期化されます。
なお PLL を停止して使用する場合は , リセット解除後に毎回停止させる必要があり
ます。
VSTP
PLL 動作
0
発振
1
発振停止
[ 初期値 ]
<注意事項>
ストップモードに移行すると , 本ビットの設定にかかわらず , PLL は停止します。
78
第 3 章 メモリ空間 , CPU および制御部
3.12.8
ウォッチドッグ機能
ウォッチドッグ機能は , プログラムの暴走状態を検出する機能です。プログラムの暴
走などによりウォッチドッグリセット延期レジスタへの A5H, 5AH 書込みが定められ
た時間内に行われなかった場合 , ウォッチドッグタイマよりウォッチドッグリセット
要求が発生します。
■ ウォッチドッグ制御部のブロックダイヤグラム
図 3.12-3 に , ウォッチドッグ制御部のブロックダイヤグラムを示します。
図 3.12-3 ウォッチドッグ制御部のブロックダイヤグラム
MPX
タイム
ベースタイマ
リセット発生
エッジ検出
F/F
ウォッチ
ドッグ
内部リセット
ラッチ
状態デコーダ
F/F
リセット状態遷移要求信号
CTBR
WT1,WT0
クリア
状態遷移
制御回路
WPR
A5&5A
RSRR
WDOG
内部バス
■ ウォッチドッグタイマの起動
ウォッチドッグタイマは , ウォッチドッグ制御レジスタ (WTCR) への書込みにより動
作を開始します。このとき , ウォッチドッグタイマのインターバル時間を WT1, WT0
ビットにより設定します。インターバル時間の設定は , 最初の書込みで設定した時間だ
けが有効となり , それ以降の設定は無視されます。
[例]
LDI:8
#10000000b,R1 ; WT1,0=10
LDI:32 #WTCR,R2
STB
R1,@R2
; ウォッチドッグ起動
79
第 3 章 メモリ空間 , CPU および制御部
■ リセット発生延期
一度 , ウォッチドッグタイマを起動すると , プログラムで定期的にウォッチドッグリ
セット延期レジスタ (WPR) に対して定期的に A5H, 5AH を書き込む必要があります。
ウォッチドッグリセット用フリップフロップは,タイムベースタイマの選択したタップ
の立下りを記憶し , 2 回目の立下りで本フリップフロップがクリアされていないと , リ
セットが生成されます。
図 3.12-4 に , ウォッチドッグタイマの動作タイミングを示します。
図 3.12-4 ウォッチドッグタイマの動作タイミング
タイムベースタイマ・オーバフロー
ウォッチドッグフリップフロップ
WTEライト
ウォッチドッグ起動
ウォッチドッグクリア
↑ウォッチドッグリセット発生
■ プログラム以外のリセット延期要因
ウォッチドッグタイマは次の要因により自動的にリセット発生を延期します。
1. ストップ,スリープ
2. DMA 転送
3. エミュレータデバッガ,モニタデバッガを使用時のブレーク中
4. INTE 命令の実行
5. ステップトレーストラップ (PS レジスタの T=1 による 1 命令ごとのブレーク )
<注意事項>
• 最初の A5H と次の 5AH の間 , 書込み間隔の規定はありません。ウォッチドッグの延期
は 2 回の 5AH の書込み間隔が WT1,WT0 ビットで指定した時間内であり , かつそれら
の間に 1 回の A5H の書込みがあることでのみ行えます。
• 最初の A5H の後 , 書込みが 5AH 以外であったときは , 最初の A5H の書込みがあったこ
とを無効にします。このため , 再度 A5H の書込みを行う必要があります。
■ タイマベースタイマ
タイマベースタイマは,ウォッチドッグタイマへのクロック供給および発振安定時間待
ち用のタイマとして使用されています。動作クロック φ は GCR の CHC=1 の場合は X0
の 2 倍 , CHC=0 場合は X0 の 1 倍の周期となります。
図 3.12-5 に , タイマベースタイマの構成を示します。
図 3.12-5 タイマベースタイマの構成
φ
80
1/21
1/22
1/23
・ ・ ・ ・ ・ ・
1/218
1/219
1/220
1/221
第 3 章 メモリ空間 , CPU および制御部
ギア機能
3.12.9
ギア機能は , クロックを間引いて供給する機能です。CPU 用と周辺用の 2 種の独立
な回路があり , 異なるギア比でも CPU と周辺の間でのデータの送受を行うことがで
きます。さらに , 原クロックの選択として , 発振回路からのクロックと同周期のク
ロックを使用するかまたは 1/2 分周回路を通したクロックを使用するかの指定が行
えます。
■ ギア制御部のブロックダイヤグラム
図 3.12-6 に , ギア制御部のブロックダイヤグラムを示します。
図 3.12-6 ギア制御部のブロックダイヤグラム
CPU系ギア
間隔指示信号
内部バス
PCK1,PCK0
CHC
発振
回路
1/2
(2逓倍)
選択回路
X0
X1
周辺クロック
系統ギア
間隔生成回路
内部クロック生成回路選択回路
CPUクロック
系統ギア
間隔生成回路
CCK1,CCK0
CPUクロック
内部バスクロック
内部周辺クロック
PLL
周辺系ギア
間隔指示信号
■ 設定
CPU のクロックの制御であればギア制御レジスタ (GCR) の CCK1, CCK0 ビットを , 周
辺のクロックの制御であれば同レジスタの PCK1, PCK0 ビットを , それぞれ望む値に設
定することで , 希望するギア比に設定することができます。
81
第 3 章 メモリ空間 , CPU および制御部
[ 例 1]
LDI:32 #GCR,R2
LDI:8 #11111100b,R1 ; CCK=11,PCK=11,CHC=0
STB
R1,@R2
; CPU clock=1/8f,Periferal clock=1/8f,f=direct
LDI:8 #01111000b,R1 ; CCK=01,PCK=10,CHC=0
STB
R1,@R2
; CPU clock=1/2f,Periferal clock=1/4f,f=direct
LDI:8 #00111000b,R1 ; CCK=00,PCK=10,CHC=0
STB
R1,@R2
; CPU clock=f,Periferal clock=1/4f,f=direct
LDI:8 #00110000b,R1 ; CCK=00,PCK=00,CHC=0
STB
R1,@R2
; CPU clock=f,Periferal clock=f,f=direct
LDI:8 #10110000b,R1 ; CCK=10,PCK=00,CHC=0
STB
R1,@R2
; CPU clock=1/4f,Periferal clock=f,f=direct
ギア制御レジスタの CHC ビットを "1" にすると 1/2 分周回路の出力を原クロックとし
て選択し , "0" にすると発振回路からのクロックと同周期のクロックをそのまま使用し
ます。原クロックを切り換えるために , CPU 系と周辺系は同時に変化します。
[ 例 2]
LDI:8 #01110001b,R1 ; CCK=01,PCK=00,CHC=1
LDI:32 #GCR,R2
STB
R1,@R2
; CPU clock=1/2f,Periferal clock=f,f=1/2xtal
LDI:8 #00110001b,R1 ; CCK=00,PCK=00,CHC=1
STB
R1,@R2
; CPU clock=f,Periferal clock=f,f=1/2xtal
LDI:8 #00110000b,R1 ; CCK=00,PCK=00,CHC=0
STB
R1,@R2
; CPU clock=f,Periferal clock=f,f=direct
図 3.12-7 に , ギア切換えのタイミングを示します。
図 3.12-7 ギア切換えのタイミング
原クロック
CPU クロック(a)
CPU クロック(b)
周辺クロック(a)
周辺クロック(b)
CHC
CCK値
PCK値
82
01
00
00
第 3 章 メモリ空間 , CPU および制御部
3.12.10
リセット要因保持
リセット要因保持回路は , 直前に発生したリセットの要因を保持する機能です。読出
しにより全フラグを "0" にします。読み出さない限り , 一度立った要因フラグは消え
ません。
■ リセット要因保持回路のブロックダイヤグラム
図 3.12-8 に , リセット要因保持回路のブロックダイヤグラムを示します。
図 3.12-8 リセット要因保持回路のブロックダイヤグラム
ウォッチドッグタイマ
リセット検出回路
リセット入力回路
RST端子
PONR
PONR
-
-
WDOG
WDOG
ERST
ERST
SRST
SRST
-
-
内部バス
パワーオン検出
SRST
状態
遷移
回路
デコーダ
.or.
■ 設定
本機能を使用するにあたっての特別な設定は不要です。リセットエントリアドレスに
置くプログラムの初めの方に , リセット要因レジスタの読出しと , 適切なプログラムへ
分岐する命令を置くようにします。
[例]
RESET-ENTRY
LDI:32 #RSRR,R10
LDI:8
#10000000B,R2
LDUB
@R10,R1
; GET RSRR VALUE INTO R1
MOV
R1,R10
; R10 USED AS A TEMPORARY REGISTER
AND
R2,R10
; WAS PONR RESET?
BNE
PONR-RESET
LSR
#1,R2
; POINT NEXT BIT
MOV
R1,R10
; R10 USED AS A TEMPORARY REGISTER
AND
R2,R10
; WAS WATCH DOG RESET?
BNE
WDOG-RESET
…
83
第 3 章 メモリ空間 , CPU および制御部
<注意事項>
• PONR ビットが "1" の場合は , それ以外のビットの内容は不定として扱ってください。
また , このため , リセット要因をチェックする必要がある場合には必ず先頭にパワーオ
ンリセット確認の命令を置いてください。
• パワーオンリセットのチェック以外のリセット要因チェックは,任意の位置で行うこと
ができます。優先度は , チェックした順番で決まります。
84
第 3 章 メモリ空間 , CPU および制御部
PLL のクロック設定例
3.12.11
ここでは , PLL クロック設定例とアセンブラのソース例について説明します。
■ PLL のクロック設定例
図 3.12-9 に , PLL を使用した 33MHz 動作への切換え手順の例を示します。
図 3.12-9 PLL のクロック設定例
No
CHC = 1
CHC ← 1
Yes
DBLON = 1
Yes
PLL 関係の設定を行う場合は必ずクロックを 2 分周系
に切り換えた後に行います。
No
ダブラを ON にすることで ,CPU=1/1 にギアが固定とな
ります。
周辺系は任意に設定が可能です。
DBLON ← 1
DBLAK=1
Yes
No
( 注意事項 ):外部バスを使用しない場合はダブラを使用
する必要はありません。その場合 CPU の
ギアも任意に設定できます。
No
VSTP=0
Yes
VSTP ← 0
WAIT 300µs
SLCT1 ← 1
PLL が停止している場合は再起動します。ただし PLL
の再起動時は , 安定するまでの待ち時間 300 µs 以上を ,
ソフトウェアで取る必要があります。
PLL からの出力タップを 33MHz に切り換える。
クロックを 2 分周系から PLL に切り換える。
CHC ← 0
<注意事項>
• ここに記載した DBLON, VSTP, SLCT1 の各ビットの設定順序の指定は特にありませ
ん。
• PLL の再起動時には , 安定するまでの待ち時間 300 µs 以上を , ソフトウェアで必ず取っ
てください。
また , キャッシュ ON/OFF などで待ち時間の不足を起こさないように注意してくださ
い。
85
第 3 章 メモリ空間 , CPU および制御部
■ クロック系統参考図
図 3.12-10 に , クロック系統参考図を示します。
図 3.12-10 クロック系統参考図
2分周系入力
1/2
16.5MHz
原振入力
PLL系入力
PLL
1/2
1/2
VSTP
33MHz
16.5MHz
CHC
1
0
SLCT1,0
1X
01
00
CCK1,0
1/1
1/2
1/4
1/8
DBLON
周辺系ギア
PCK1,0
1/1
1/2
1/4
1/8
PCTR レジスタ
GCR レジスタ
■ アセンブラのソース例 (PLL 系への切換え動作の例 )
; *******************************************
PLL Sample Program
; *******************************************
; Load Setting Data
ldi:20
#GCR,R0
ldi:20
#PCTR,R1
ldi:8
#GCR_MASK,R2
; GCR_MASK = 0000 0001 b
ldi:8
#PCTR_MASK,R3
; PCTR_MASK = 0000 1000 b
ldub
@R0,R4
; read GCR register
ldub
@R1,R5
; read PCTR register
st
PS,@-R15
; push processor status
stilm
#0x0
; disable interrupt
and
R4,R2
beq
CHC_0
bra
CHC_1
borl
#0001B,@r0
call
VCO_RUN
call
DOUBLER_ON
;
CHC_0:
; to 1/2 clock @r0=GCR register
CHC_1:
PLL_SET_END:
ld
86
@R15+,PS
バス系
CPU系ギア
1/2
8.25MHz
;
CPU系
; pop processor status
周辺系
第 3 章 メモリ空間 , CPU および制御部
; *******************************************
;
VCO Setting
; *******************************************
VCO_RUN:
st
R3,@-R15
; push R3
ldi:8
#PCTR _MASK,R3
; PCTR_MASK = 0000 1000 b
and
R5,R3
; PCTR → VSTP=1 ?
beq
LOOP_300US_END
; if VSTP = 0 return
st
R2,@-R15
; push R2 for Loop counter
bandl
#0111B,@r1
; set VSTP = 0
ldi:20
#0x41A,R2
; wait 300 µs
; 300 µs = 160ns(6.25MHz)* 7 * 300(834)cycle
WAIT_300US:
add2
#(-1),R2
; 834h/2 = 41Ah (if cache on)
bne
WAIT_300US
;
ld
@R15+,R2
; Pop R2
ld
@R15+,R3
; Pop R3
LOOP_300US_END:
ret
; *******************************************
;
doubler ON
; *******************************************
DOUBLER_ON:
borh
#0001B,@r0
; doubler ON
btsth
#0010B,@r0
; check DBLAK
beq
LOOP_DBLON1
; loop while DBLAK = 0
bandl
#1110B,@r0
; to 1/1(PLL)clock
LOOP_DBLON1:
nop
nop
nop
nop
nop
nop
ret
87
第 3 章 メモリ空間 , CPU および制御部
3.13
低消費電力モード
低消費電力モードには , ストップ状態とスリープ状態があります。
■ ストップ状態の概要
ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止した状態をい
います。この状態になると , 消費電力を最低限に抑えることができます。
ストップ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに
よって行います。
ストップ状態からの復帰は , 以下のいずれかで行います。
• 割込み要求 ( ただし , ストップ状態中でも割込み要求が発生可能な周辺に限る )
• RST 端子への "L" レベルの印加
ストップ状態ではすべての内部クロックが停止しますので , 復帰用の割込みを生成
できるもの以外の内蔵周辺は停止状態になります。
■ スリープ状態の概要
スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。こ
の状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。
スリープ状態への移行は , 命令によるスタンバイ制御レジスタ (STCR) への書込みに
よって行います。
スリープ状態からの復帰は , 以下のいずれかで行います。
• 割込み要求
• リセット要因の発生
スリープ状態では周辺クロックは動作しますので,内蔵周辺による割込みで解除ができ
ます。
■ 低消費電力モードの動作一覧
表 3.13-1 に , 低消費電力モードの動作一覧を示します。
表 3.13-1 低消費電力モードの動作一覧表
発振器
動作状態
内部クロック
遷移条件
周辺
端子
解除方法
○
○
○
−
×
○
○
○
リセット
割込み
×
×
×
*
外部リセット
外部割込み
標準
CPU/ 内部バス
周辺
−
○
○
スリープ
STCR の
SLEP=1
○
ストップ
STCR の
STOP=1
×
ラン
○ : 動作
× : 停止
* : STCR の HIZX=0 で前の状態保持 , HIZX=1 でハイインピーダンス状態
88
第 3 章 メモリ空間 , CPU および制御部
ストップ状態
3.13.1
ストップ状態とは , すべての内部クロックを停止し , 発振回路の動作停止した状態を
いいます。この状態になると , 消費電力を最低限に抑えることができます。
■ ストップ制御部のブロックダイヤグラム
図 3.13-1 に , ストップ制御部のブロックダイヤグラムを示します。
図 3.13-1 ストップ制御部のブロックダイヤグラム
STOP状態遷移要求信号
停止信号
STCR
STOP
CPU
クロック
生成
内部バス
クロック
生成
内部DMA
クロック
生成
CPU 固定許可
CPUクロック
内部クロック生成回路
内部割込み
内部リセット
状態遷移制御回路
clear
状態デコーダ
内部バス
内部周辺
クロック
生成
CPU 固定要求
STOP状態表示信号
クロック停止
要求信号
内部バスクロック
内部DMAクロック
外部バスクロック
内部周辺クロック
クロック解除
要求信号
■ ストップ状態への移行
● 命令を用いてストップ状態にする方法
ストップ状態にするためには , STCR のビット 7 へ "1" を書き込みます。
ストップ要求を発行したのち , CPU が内部バスを使用していない状態になった後で ,
CPU クロック→内部バスクロック→内部 DMA クロック→内部周辺クロックの順にク
ロックを停止します。発振回路の停止は内部周辺クロック停止と同時に行います。
<注意事項>
命令を用いてストップ状態にするためには , 必ず下記ルーチンを使用してください。
(1)STCR へ書き込む前には , GCR の [CCK1,CCK0] と [PCK1,PCK0] ビットの組に同じ値
を設定し , CPU 系クロックと周辺系クロックのギア比を同一にしてください。
(2)そのとき , GCR の CHC ビットには必ず "1" を設定し , 1/2 分周系のクロックを選択し
てください。
GCR の CHC ビットを "0" の状態でストップ状態にすることは禁止です。
(3)STCR への書込み直後には , 最低 6 個の連続する NOP 命令が必要です。
(4)ストップ状態にする前にクロックダブラを OFF にしてください。
89
第 3 章 メモリ空間 , CPU および制御部
● 設定方法
LDI:8 #00000001b,R1 ; CPU= 周辺ギア比 ,CHC=1
LDI:32 #GCR,R2
STB
R1,@R2
LDI:8 #10010000b,R1 ; STOP=1
LDI:32 #STCR,R2
STB
R1,@R2
NOP
;
NOP
;
NOP
;
NOP
;
NOP
;
NOP
;
■ ストップ状態からの復帰
ストップ状態からの復帰は割込みとリセットの発生で行うことができます。
● 割込みによる復帰
周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発生によりス
トップ状態から復帰します。
ストップ状態から通常動作状態へは , 以下の手順で行います。
1)割込み発生
2)発振回路動作再開
3)発振安定待ち
4)安定後 , 内部周辺クロック供給再開
5)内部バスクロック供給再開
6)内部 CPU クロック供給再開
発振安定待ち時間後のプログラム実行は , 以下のようになります。
• 発生した割込みのレベルが CPU の ILM, I フラグで許可されている場合
レジスタ退避を行った後に , 割込みベクタを取り込んで割込み処理ルーチンより実
行
• 発生した割込みのレベルが CPU の ILM, I フラグで禁止されている場合
ストップ状態に入れた命令以降の命令より実行
90
第 3 章 メモリ空間 , CPU および制御部
● RST 端子による復帰
ストップ状態からの通常動作状態へは , 以下の手順で行います。
1)RST 端子への "L" レベル印加
2)内部リセット発生
3)発振回路動作再開
4)発振安定待ち
5)安定後 , 内部周辺クロック供給再開
6)内部バスクロック供給再開
7)内部 CPU クロック供給再開
8)リセットベクタ 取込み
9)リセットエントリアドレスより命令の実行再開
<注意事項>
• 周辺からの割込み要求がすでに発生している場合は , ストップ状態にならず , 書込みは
無視されます。
• パワーオンリセット以外では発振安定待ち時間中のすべての内部クロック供給は行わ
れません。パワーオンリセットでは内部状態の初期化を行う必要があるため , すべての
内部クロックの供給を行います。
91
第 3 章 メモリ空間 , CPU および制御部
スリープ状態
3.13.2
スリープ状態とは , CPU クロックと内部バスクロックを停止した状態をいいます。
この状態では , CPU 動作不要な状況での消費電力をある程度抑えることができます。
■ スリープ制御部のブロックダイヤグラム
図 3.13-2 に , スリープ制御部のブロックダイヤグラムを示します。
図 3.13-2 スリープ制御部のブロックダイヤグラム
Sleep状態遷移要求信号
停止信号
STCR
SLEP
×
内部バス
クロック
生成
内部DMA
クロック生成
外部バス
クロック生成
CPUクロック
×
内部クロック生成回路
内部割込み
内部リセット
状態遷移制御回路
クリア
CPU
クロック
生成
状態デコーダ
内部バス
内部周辺
クロック
生成
内部バスクロック
内部DMAクロック
外部バスクロック
内部周辺クロック
Sleep状態表示信号
クロック停止
要求信号
クロック解除
要求信号
■ スリープ状態への移行
スリープ状態にするためには , STCR のビット 7 へ "0", ビット 6 へ "1" を書き込みます。
スリープ要求を発行したのち , CPU が内部バスを使用していない状態になったあとで ,
CPU クロック→内部バスクロックの順にクロックを停止します。
<注意事項>
スリープ状態にするためには , 必ず下記ルーチンを使用してください。
(1)STCR へ書き込む前には , GCR の [CCK1,CCK0] と [PCK1,PCK0] ビットの組に同じ値
を設定し , CPU 系クロックと周辺系クロックのギア比を同一にしてください。
(2)GCR の CHC ビットは任意です。
(3)STCR への書込み直後には , 最低 6 個の連続する NOP 命令が必要です。
92
第 3 章 メモリ空間 , CPU および制御部
● 設定方法
LDI:8 #11001100b,R1 ; CPU= 周辺ギア比 ( 左記は原振× 1/8 の例 ), CHC は任意
LDI:32 #GCR,R2
STB
R1,@R2
LDI:8 #01010000b,R1 ; SLEP=1
LDI:32 #STCR,R2
STB
R1,@R2
NOP
;
NOP
;
NOP
;
NOP
;
NOP
;
NOP
;
■ スリープ状態からの復帰
スリープ状態からの復帰は割込みまたはリセットの発生で行うことができます。
● 割込みによる復帰
周辺の機能に付随する割込み許可ビットが有効であれば,周辺の割込みの発生によりス
リープ状態から復帰します。
スリープ状態から通常動作状態へは , 以下の手順で行います。
1)割込み発生
2)内部バスクロック供給再開
3)内部 CPU クロック供給再開
クロック供給後のプログラム実行は , 以下のようになります。
• 発生した割込みのレベルが CPU の ILM, I フラグで許可されている場合
レジスタ退避を行った後に , 割込みベクタを取り込んで割込み処理ルーチンより実
行
• 発生した割込みのレベルが CPU の ILM, I フラグで禁止されている場合
スリープ状態に入れた命令以降の命令より実行
● リセット要求による復帰
スリープ状態からの通常動作状態へは , 以下の手順で行います。
1)内部リセット発生
2)内部バスクロック供給再開
3)内部 CPU クロック供給再開
4)リセットベクタ取込み
5)リセットエントリアドレスより命令の実行再開
93
第 3 章 メモリ空間 , CPU および制御部
<注意事項>
• STCR に書き込む命令に続く数命令は実行完了することがありえます。このため , 直後
に割込み要求の取消しや分岐命令などを置くと,一見予想と違う動作を行うように見え
ることがあります。
• 周辺からの割込み要求がすでに発生している場合は , スリープ状態になりません。
• スリープ中の DMA 転送動作は , 使用できません。スリープ状態にする前に必ず DMA
転送動作を動作禁止にしてください。
• スリープ状態にする前にクロックダブラを OFF にしてください。
94
第 3 章 メモリ空間 , CPU および制御部
低消費電力モードの状態遷移図
3.13.3
図 3.13-3 に , 低消費電力モードの状態遷移図を示します。
■ 低消費電力モードの状態遷移図
図 3.13-3 低消費電力モードの状態遷移図
パワーオン
リセット中
発振安定待ち
メイン発振開始
(1)
CPUはストップ状態
メイン停止
(2)
リセット中
メイン発振
(2)
(5)
(2)
(2)
CPUはストップ状態
メイン発振開始
(1)
(3)
(6)
(9)
スリープ
メイン発振
(4)
2分周クロック動作
メイン発振
(7)
(8)
(1):
発振安定終了
(2):
リセット
(3):
リセット解除
(4):
割込み
(5):
外部割込み
(6):
STOP モード
(7):
PLL
(8):
2 分周
(9):
SLEEP モード
PLLクロック動作
メイン発振
(2)
95
第 3 章 メモリ空間 , CPU および制御部
96
第4章
バスインタフェース
この章では , バスインタフェースの概要およびバス
動作について説明します。
4.1 バスインタフェースの概要
4.2 バスインタフェースのブロックダイヤグラム
4.3 バスインタフェースのレジスタ
4.4 バス動作
4.5 バスタイミング
4.6 内部クロック逓倍動作 ( クロックダブラ )
4.7 外部バス動作のプログラム例
97
第 4 章 バスインタフェース
4.1
バスインタフェースの概要
バスインタフェースは , 外部メモリおよび外部 I/O のインタフェースを制御します。
■ バスインタフェースの特長
• 24 ビット (16M バイト ) のアドレス出力
• 16/8 ビットのバス幅の設定が可能
• プログラマブルな自動メモリウェイト ( 最大で 7 サイクル分 ) の挿入
• リトルエンディアンモードサポート
• 未使用のアドレス / データ端子は I/O ポートとして使用可能
• 外部バスが 25MHz を超える使用は禁止です。
• クロックダブラの使用時 , バス速度は CPU 速度の 1/2 になります。
■ チップセレクト領域
バスインタフェースには全 6 種類のチップセレクト領域が用意されます。
各領域の位置はASR1∼ASR5(Area Select Register)とAMR1∼AMR5(Area Mask Register)
で 4G バイトの空間に , 最小 64K バイト単位で任意に配置することができます。
<注意事項>
領域 0 は , ASR1 ∼ ASR5 によって指定された領域以外の空間に割り当てられます。
リセット時は , 00010000H ∼ 0005FFFFH 以外の外部領域が領域 0 です
( 本品種ではチップセレクト出力端子はチップセレクト領域 0 ∼ 3 の 4 本のみです )。
図 4.1-1 の (a) に , 領域 1 から領域 5 を 00100000H ∼ 0014FFFFH に 64K バイト単位で配
置した例を示します。また , 図 4.1-1 の (b) に , 領域 1 を 00000000H ∼ 0007FFFFH の
512K バイト , 領域 2 から領域 5 を 00100000H ∼ 004FFFFFH に 1M バイト単位で配置し
た例を示します。
98
第 4 章 バスインタフェース
図 4.1-1 チップセレクト領域配置例
00000000H
00000000H
CS1 (512Kバイト)
00080000H
CS0 (512Kバイト)
CS0 (1Mバイト)
00080000H
000FFFFFH
CS2 (1Mバイト)
001FFFFFH
000FFFFFH
CS1 (64Kバイト)
0010FFFFH
CS3 (1Mバイト)
CS2 (64Kバイト)
002FFFFFH
0011FFFFH
CS3 (64Kバイト)
0012FFFFH
CS4 (1Mバイト)
CS4 (64Kバイト)
0013FFFFH
003FFFFFH
CS5 (64Kバイト)
CS5 (1Mバイト)
0014FFFFH
004FFFFFH
CS0
CS0
(a)
(b)
■ バスインタフェース
バスインタフェースには , 通常バスインタフェースがあり , インタフェースはあらかじ
め決められた領域でのみ使用が可能です。
表 4.1-1 に , 各チップセレクト領域と , 使用可能なインタフェース機能との対応を示し
ます。
AMD(Area MoDe register) によって , これらのどのインタフェースを使用するかどうか
を選択します。
表 4.1-1 チップセレクト領域と使用できるインタフェースモード
選択できるバスインタフェース
領域
備考
通常バス
時分割
DRAM
0
○
-
-
-
1∼3
○
-
-
-
4∼5
○
-
-
-
( 注意事項 ) 本品種では時分割 , DRAM は使用できません。
● バスサイズ指定
各領域はレジスタの設定によりバス幅の任意指定が可能です。
99
第 4 章 バスインタフェース
バスインタフェースのブロックダイヤグラム
4.2
図 4.2-1 に , バスインタフェースのブロックダイヤグラムを示します。
■ バスインタフェースのブロックダイヤグラム
図 4.2-1 バスインタフェースのブロックダイヤグラム
データバス
MUX
アドレスバス
A-Out
ライト
バッファ
スイッチ
リード
バッファ
スイッチ
外部データバス
データブロック
アドレスブロック
+1or+2
アドレス
バッファ
外部アドレスバス
シフタ
inpage
4
コンパ
レータ
ASR
AMR
CS0~CS3
3
外部端子制御部
RD
WR0,WR1
全ブロック制御
レジスタ
&
コントロール
100
4
BRQ
BGRNT
RDY
CLK
第 4 章 バスインタフェース
4.3
バスインタフェースのレジスタ
図 4.3-1 に , バスインタフェースのレジスタ構成を示します。
■ バスインタフェースのレジスタ構成
図 4.3-1 バスインタフェースのレジスタ構成
アドレス
15
8
7
0
00060CH
ASR1
エリア選択レジスタ 1
00060EH
AMR1
エリアマスクレジスタ 1
000610H
ASR2
エリア選択レジスタ 2
000612H
AMR2
エリアマスクレジスタ 2
000614H
ASR3
エリア選択レジスタ 3
000616H
AMR3
エリアマスクレジスタ 3
000618H
ASR4
エリア選択レジスタ 4
00061AH
AMR4
エリアマスクレジスタ 4
00061CH
ASR5
エリア選択レジスタ 5
00061EH
AMR5
エリアマスクレジスタ 5
000620H
AMD0
AMD1
エリアモードレジスタ 0 / エリアモードレジスタ 1
000622H
AMD32
AMD4
エリアモードレジスタ 32 / エリアモードレジスタ 4
000624H
AMD5
−
エリアモードレジスタ 5
000626H
RFCR
00062CH
DMCR4
DRAM 制御レジスタ 4
00062EH
DMCR5
DRAM 制御レジスタ 5
000628H
EPCR0
外部端子制御レジスタ 0
リフレッシュ制御レジスタ
00062AH
−
EPCR1
外部端子制御レジスタ 1
0007FEH
LER
MODR
リトルエンディアンレジスタ / モードレジスタ
( 注意事項 ) 本品種では ,
部分に対する機能端子は準備されておりませんので , これらのレ
ジスタに対するアクセスは行わないでください。
101
第 4 章 バスインタフェース
4.3.1
エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマス
クレジスタ (AMR1 ∼ AMR5)
エリア選択レジスタ (ASR1 ∼ ASR5) とエリアマスクレジスタ (AMR1 ∼ AMR5) は ,
チップセレクト領域 1 ∼ 5 アドレス空間の範囲を指定します。
■ エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR)
エリア選択レジスタ (ASR) とエリアマスクレジスタ (AMR) のレジスタ構成は , 以下の
とおりです。
● エリア選択レジスタ (ASR1 ∼ ASR5)
15
14
13
ASR1
A31
A30
ASR2
A31
ASR3
12
2
1
0
初期値
アクセス
A29
A18
A17
A16
0001H
W
A30
A29
A18
A17
A16
0002H
W
A31
A30
A29
A18
A17
A16
0003H
W
ASR4
A31
A30
A29
A18
A17
A16
0004H
W
ASR5
A31
A30
A29
A18
A17
A16
0005H
W
● エリアマスクレジスタ (AMR1 ∼ AMR5)
15
14
13
AMR1
A31
A30
AMR2
A31
AMR3
12
2
1
0
初期値
アクセス
A29
A18
A17
A16
0000H
W
A30
A29
A18
A17
A16
0000H
W
A31
A30
A29
A18
A17
A16
0000H
W
AMR4
A31
A30
A29
A18
A17
A16
0000H
W
AMR5
A31
A30
A29
A18
A17
A16
0000H
W
エリア選択レジスタ(ASR)とエリアマスクレジスタ(AMR)は,チップセレクト領域1∼5
のアドレス空間の範囲を指定します。
ASR1 ∼ ASR5 はアドレスの上位 16 ビット (A31 ∼ A16) を指定し , AMR1 ∼ AMR5 で
対応するアドレスビットをマスクします。AMR1 ∼ AMR5 の各ビットは "0" で care, "1"
で don't care を示します。
"care" とは ASR の設定値が "0" の場合は "0", "1" の場合は "1" としてアドレス空間を示
し "don't care" の場合には ASR の設定値にかかわらず , "0", "1" 両方の場合のアドレス空
間を示します。
以下に ASR と AMR の組合せによる , 各チップセレクト領域指定の例を示します。
102
第 4 章 バスインタフェース
[ 例 1]
ASR1 = 00000000 00000011B
AMR1 = 00000000 00000000B
上記を設定した場合 , ASR1 に "1" を設定したビットに対応する AMR1 のビットは "0"
のため , 領域 1 のアドレス空間は , 以下の 64K バイトになります。
00000000 00000011 00000000 00000000B (00030000H)
:
00000000 00000011 11111111 11111111B (0003FFFFH)
[ 例 2]
ASR2 = 00001111 11111111B
AMR2 = 00000000 00000011B
上記を設定した場合 , AMR2 に "0" を設定したビットに対応する ASR2 の設定値は "1",
"0" をそのまま care し , AMR2 に "1" を設定したビットに対応する ASR2 のビットは ,
"0" もしくは "1" の don't care になることから , 領域 2 のアドレス空間は , 以下の 256K
バイトになります。
00001111 11111100 00000000 00000000B (0FFC0000H)
:
00001111 11111111 11111111 11111111B (0FFFFFFFH)
領域 1 ∼ 5 の各領域のアドレス空間は , ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で , 4G バイト
の空間に最小 64K バイト単位で任意に配置することができます。これらのレジスタに
よって指定された領域の内 , 領域 1 に対してバスアクセスを行うと , 対応するリード / ラ
イト端子 (RD, WR0, WR0) が "L" 出力となります。
なお , 領域 0 は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で設定された領域以外の空間が割り
当てられ , リセット時は ASR1 ∼ ASR5 と AMR1 ∼ AMR5 の初期値により 0001000H ∼
0005FFFFH 以外の領域が割り当てられています。
<注意事項>
チップセレクト領域は , お互いにオーバラップしないように設定してください。
103
第 4 章 バスインタフェース
図 4.3-2 に , チップセレクト領域を設定したマップの例を示します。
図 4.3-2 チップセレクト領域を設定したマップの例
(初期値)
(例1・2)
00000000H
00000000H
領域0
領域0
00010000H
領域1
64Kバイト
00020000H
00030000H
領域2
64Kバイト
00030000H
領域1
00040000H
領域3
64Kバイト
00040000H
領域0
0FFC0000H
領域4
64Kバイト
領域2
00050000H
領域5
00060000H
64Kバイト
10000000H
領域0
FFFFFFFFH
104
64Kバイト
領域0
FFFFFFFFH
256Kバイト
第 4 章 バスインタフェース
4.3.2
エリアモードレジスタ 0(AMD0)
エリアモードレジスタ 0(AMD0) は , チップセレクト領域 0(ASR1 ∼ ASR5 と AMR1 ∼
AMR5 で指定された領域以外の領域 ) の動作モードを指定します。リセット時は領域 0
が選択されます。
■ エリアモードレジスタ 0(AMD0)
エリアモードレジスタ 0(AMD0) のレジスタ構成は , 以下のとおりです。
AMD0
bit
7
アドレス:000620H
−
6
−
5
4
−
BW1
3
2
1
0
BW0 WTC2 WTC1 WTC0
初期値
---00111B
アクセス
R/W
[ ビット 4, ビット 3] BW1, BW0(Bus Width bit)
BW1, BW0 は , 領域 1 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
Reserved
1
1
Reserved
( 注意事項 )BW1, BW0 の初期値は共に "0" ですが , リード時 MODR を書き込むま
ではレジスタの値ではなく , MD1, MD0 の端子レベルが読まれます。
[ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC は ,通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定します。
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
AMD0 の WTC2 ∼ WTC0 はリセット時に "111B" に設定され , リセット解除直後のバス
アクセスでは自動的に 7 サイクルのウェイトが挿入されます。
105
第 4 章 バスインタフェース
<注意事項>
• MODR を書き込む前には必ず使用する AMD0 ∼ AMD5 の BW1, BW0 を設定してくだ
さい。
• モードレジスタ (MODR) 設定後は , 外部領域に対しては AMD0 ∼ AMD5 で設定されて
いるバス幅が有効になります。
• MODR 書込み後の BW1, BW0 の変更は行わないでください。誤動作の原因になります。
MODR write
RST(リセット)
↓
→ AMD0~5レジスタの内容が有効
106
第 4 章 バスインタフェース
4.3.3
エリアモードレジスタ 1(AMD1)
エリアモードレジスタ 1(AMD1) は , チップセレクト領域 1(ASR1 と AMR1 で指定さ
れた領域 ) の動作モードを指定します。
■ エリアモードレジスタ 1(AMD1)
エリアモードレジスタ 1(AMD1) のレジスタ構成は , 以下のとおりです。
AMD1
bit
アドレス:000621H
7
MPX
6
−
5
4
−
BW1
3
2
1
0
初期値
BW0 WTC2 WTC1 WTC0 0--00000B
アクセス
R/W
[ ビット 7] MPX(MultiPleX bit)
MPX は , アドレス / データ入出力の時分割入出力インタフェースを制御します。
0
通常バスインタフェース ( 通常バスインタフェース )
1
設定禁止
[ ビット 4, ビット 3] BW1, BW0(Bus Width bit)
BW1, BW0 は , 領域 1 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
Reserved
1
1
Reserved
[ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定しま
す。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初期化さ
れ , 挿入ウェイトサイクル数は "0" になります。
107
第 4 章 バスインタフェース
4.3.4
エリアモードレジスタ 32(AMD32)
エリアモードレジスタ 32(AMD32) は , チップセレクト領域 2(ASR2 と AMR2 で指
定された領域 ) とチップセレクト領域 3(ASR3 と AMR3 で指定された領域 ) の動作
モードを指定します。
領域 2, 3 のバス幅は , BW1, BW0 のビットで一括して同じバス幅を制御し , 自動
ウェイトサイクルはそれぞれの領域で独立に設定できます。
■ エリアモードレジスタ 32(AMD32)
エリアモードレジスタ 32(AMD32) のレジスタ構成は , 以下のとおりです。
AMD32
bit
アドレス:000622H
7
6
5
BW1
BW0
4
3
2
1
0
初期値
アクセス
00000000
WT32 WT31 WT30 WT22 WT21 WT20
R/W
B
[ ビット 7, ビット 6] BW1, BW0(Bus Width bit)
BW1, BW0 は , 領域 2・領域 3 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
Reserved
1
1
Reserved
[ ビット 5 ∼ビット 3] WT32 ∼ WT30(Wait Cycle bit)
WT32 ∼ WT30 は , 領域 3 のメモリアクセス時の自動挿入ウェイトサイクル数を指
定します。
動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿
入ウェイトサイクル数は "0" になります。
[ ビット 2 ∼ビット 0] WT22 ∼ WT20(Wait Cycle bit)
WT22 ∼ WT20 は , 領域 2 のメモリアクセス時の自動挿入ウェイトサイクル数を指
定します。
動作は AMD0 の WTC2 ∼ WTC0 と同様です。リセットで "000B" に初期化され , 挿
入ウェイトサイクル数は "0" になります。
108
第 4 章 バスインタフェース
4.3.5
エリアモードレジスタ 4(AMD4)
エリアモードレジスタ 4(AMD4) は , チップセレクト領域 4(ASR4 と AMR4 で指定さ
れた領域 ) の動作モードを指定します。
■ エリアモードレジスタ 4(AMD4)
エリアモードレジスタ 4(AMD4) のレジスタ構成は , 以下のとおりです。
AMD4
bit
アドレス:000623H
7
6
DRME
−
5
4
−
BW1
3
2
1
0
初期値
BW0 WTC2 WTC1 WTC0 0--00000B
アクセス
R/W
[ ビット 7] DRME(DRaM Enable bit)
DRME は , 領域 4 に対して通常バスインタフェースか DRAM インタフェースかを
選択します。
0
通常バスインタフェース ( 通常バスインタフェース )
1
設定禁止
[ ビット 4, ビット 3] BW1, BW0(Bus Width bit)
BW1, BW0 は , 領域 4 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
Reserved
1
1
Reserved
[ ビット 2 ∼ビット 0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC は , 通常バスインタフェース動作時の自動挿入ウェイトサイクル数を指定しま
す。動作は AMD0 の WTC2 ∼ WTC0 と同様ですが , リセットで "000B" に初期化さ
れ , 挿入ウェイトサイクル数は "0" になります。
109
第 4 章 バスインタフェース
4.3.6
エリアモードレジスタ 5(AMD5)
エリアモードレジスタ 5(AMD5) は , チップセレクト領域 5(ASR5 と AMR5 で指定さ
れた領域 ) の動作モードを指定します。
■ エリアモードレジスタ 5(AMD5)
エリアモードレジスタ 5(AMD5) のレジスタ構成は , 以下のとおりです。
AMD5
bit
アドレス:000624H
7
DRME
6
−
5
4
−
BW1
3
2
1
0
初期値
BW0 WTC2 WTC1 WTC0 0--00000B
各ビットは AMD4 と同様の意味を持ちます。
「4.3.5 エリアモードレジスタ 4(AMD4)」を参照してください。
110
アクセス
R/W
第 4 章 バスインタフェース
4.3.7
外部端子制御レジスタ 0(EPCR0)
外部端子制御レジスタ 0(EPCR0) は , 各信号の出力を制御します。
出力許可の場合は各バスモードで所望のタイミングを出力し , 入力有効の場合は外部
からの入力信号を受け付けます。
出力禁止・入力無効の場合は I/O ポートとして使用できます。
■ 外部端子制御レジスタ 0(EPCR0)
外部端子制御レジスタ 0(EPCR0) のレジスタ構成は , 以下のとおりです。
EPCR0
bit
アドレス:000628H
15
14
13
12
−
−
−
−
7
6
5
4
−
CKE
−
−
11
10
9
WRE RDXE RDYE
3
2
1
8
BRE
初期値
----1100B
アクセス
W
0
初期値
アクセス
W
COE3 COE2 COE1 COE0 -1111111B
[ ビット 11] WRE(WRite pulse output Enable bit)
WRE は , ライトパルス WR0, WR1 を出力するかどうかを選択します。
リセット時は出力許可となります。
0
出力禁止
1
出力許可 ( 初期値 )
ライトパルスは , WRE ビットを "1" に設定していても , AMD で設定されたバス幅
に応じてI/O ポートとして使用することができます(例えば8ビットモードではWR1
は出力されず , 対応する端子は I/O ポートとして使用できます )。
[ ビット 10] RDXE(ReaDX pulse output Enable bit)
RDXE は , リードパルス RD を出力するかどうかを選択します。
リセット時は出力許可となります。
0
出力禁止 ( 設定禁止 )
1
出力許可 ( 初期値 )
[ ビット 9] RDYE(ReaDY input Enable bit)
RDYE は , RDY 入力を以下のように制御します。
リセット時は入力無効となります。
0
RDY 入力無効 ( 初期値 )
1
RDY 入力有効
111
第 4 章 バスインタフェース
[ ビット 8] BRE(Bus Request Enable bit)
BRE は , BRQ と BGRNT を以下のように制御します。
リセット時は BRQ の入力は無効 , BGRNT の出力禁止となります。
0
BRQ の入力無効 , BGRNT の出力禁止 ( 端子は I/O ポートとして機能 )
( 初期値 )
1
BRQ の入力有効 , BGRNT の出力許可
[ ビット 6] CKE(ClocK output Enable bit)
CKE は , CLK ( 外部バスの動作クロック波形 ) の出力イネーブルビットです。
0
出力禁止
1
出力許可 ( 初期値 )
本ビットはリセット時に "1" に初期化され , CLK は出力許可状態になります。
[ ビット 5, ビット 4]
空で , 本ビットへの書込みは無意味です。
初期値は , "1" です。
[ ビット 3] COE3(Chip select Output Enable)
COE3 は , CS3 の出力を制御します。
リセット時は出力許可となります。
0
出力禁止
1
出力許可 ( 初期値 )
[ ビット 2] COE2(Chip select Output Enable)
COE2 は , CS2 の出力を制御します。
リセット時は出力許可となります。
0
出力禁止
1
出力許可 ( 初期値 )
[ ビット 1] COE1(Chip select Output Enable)
COE1 は , CS1 の出力を制御します。
リセット時は出力許可となります。
112
0
出力禁止
1
出力許可 ( 初期値 )
第 4 章 バスインタフェース
[ ビット 0] COE0(Chip select Output Enable)
COE0 は , CS0 の出力を制御します。
リセット時は出力許可となります。
0
出力禁止 ( 設定禁止 )
1
出力許可 ( 初期値 )
本品種では , このビットには常に "1" を設定してください。
113
第 4 章 バスインタフェース
4.3.8
外部端子制御レジスタ 1(EPCR1)
外部端子制御レジスタ 1(EPCR1) は , アドレス信号の出力を制御します。
■ 外部端子制御レジスタ 1(EPCR1)
外部端子制御レジスタ 1(EPCR1) のレジスタ構成は , 以下のとおりです。
EPCR1
bit
アドレス:00062AH
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
7
6
5
4
3
2
1
0
AE23
AE22
AE21
AE20
AE19
AE18
AE17
初期値
--------B
AE23 ∼ AE16 は対応するアドレスを出力するかどうかを指定します。
出力禁止の場合は , I/O ポートとして使用できます。
出力禁止
1
出力許可 ( 初期値 )
AE23 ∼ AE16 は , リセットによって "FFH" に初期化されます。
114
W
初期値
アクセス
AE16 11111111B
W
[ ビット 7 ∼ビット 0] AE23 ∼ AE16(Address output Enable 23 ∼ 16)
0
アクセス
第 4 章 バスインタフェース
リトルエンディアンレジスタ (LER)
4.3.9
本品種のバスアクセスは通常全領域ビッグエンディアンで行いますが , LER を設定
することにより , 領域 1 ∼ 5 のどれか 1 領域をリトルエンディアン領域として扱う
ことができます。
ただし , 領域 0 はリトルエンディアン対象外です。
LER レジスタには , リセット後 1 度だけしか書き込むことができません。
■ リトルエンディアンレジスタ (LER)
リトルエンディアンレジスタ (LER) のレジスタ構成は , 以下のとおりです。
LER
bit
アドレス:0007FEH
7
6
5
4
3
2
1
0
−
−
−
−
−
LE2
LE1
LE0
初期値
-----000B
アクセス
W
[ ビット 2 ∼ビット 0] LE2 ∼ LE0: リトルエンディアンの設定をします。
LE2
LE1
LE0
0
0
0
リセット後の初期値 , リトルエンディアン領域なし
0
0
1
領域 1 がリトルエンディアン , 領域 0, 2 ∼ 5 はビッグエンディアン
0
1
0
領域 2 がリトルエンディアン , 領域 0 ∼ 1, 3 ∼ 5 はビッグエンディアン
0
1
1
領域 3 がリトルエンディアン , 領域 0 ∼ 2, 4 ∼ 5 はビッグエンディアン
1
0
0
領域 4 がリトルエンディアン , 領域 0 ∼ 3, 5 はビッグエンディアン
1
0
1
領域 5 がリトルエンディアン , 領域 0 ∼ 4 はビッグエンディアン
モード
MODR (MODe Register)
モードレジスタ (MODR) については ,「3.11 動作モード」を参照してください。
115
第 4 章 バスインタフェース
4.4
バス動作
ここでは , バス動作の基本事項として , 以下の項目について説明します。
• データバス幅と制御信号との関係
• ビッグエンディアンのバスアクセス
• リトルエンディアンのバスアクセス
• 外部アクセスの比較
■ データバス幅と制御信号との関係
通常バスインタフェー スでのデータバス幅と制御信号の関係について説明します。
■ ビッグエンディアンのバスアクセス
外部アクセスについて , 次の項目を説明します。
• データフォーマット
• データバス幅
• 外部バスアクセス
• 外部デバイスとの接続例
■ リトルエンディアンのバスアクセス
外部アクセスについて , 次の項目を説明します。
• リトルエンディアンとビッグエンディアンとの相違点
• データフォーマット
• データバス幅
• 外部デバイスとの接続例
■ ビッグエンディアンとリトルエンディアンの外部アクセスの比較
ビッグエンディアンとリトルエンディアンの外部アクセスの比較として,バス幅に対す
るワードアクセス , ハーフワードアクセスおよびバイトアクセスについて説明します。
116
第 4 章 バスインタフェース
4.4.1
データバス幅と制御信号との関係
WR0, WR1の制御信号は,ビッグエンディアン/リトルエンディアンやデータバス幅に
関係なくデータバスのバイト位置に常に 1 対 1 に対応します。
■ データバス幅と制御信号との関係
図 4.4-1 に , 設定されたデータバス幅で使用される本品種のデータバスのバイト位置と
それに対応する制御信号をまとめます。
図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号
(a) 16ビットバス幅
data bus
D31
(b) 8ビットバス幅
制御信号
:
WR0
:
WR1
data bus
D31
制御信号
:
WR0
-
:
-
D24
D16
-
: -
-
:
-
-
: -
-
:
-
(D23~D 1 6 は 未 使 用 )
117
第 4 章 バスインタフェース
4.4.2
ビッグエンディアンのバスアクセス
リトルエンディアンレジスタ (LER) を設定しない領域に対しては , ビッグエンディ
アンで外部バスアクセスを行います。
FR ファミリは , 通常ビッグエンディアンです。
■ データフォーマット
図 4.4-2 ∼図 4.4-4 に , データフォーマットごとの内部レジスタと外部データバスとの
関係を示します。
● ワードアクセス (LD, ST 命令実行時 )
図 4.4-2 内部レジスタと外部データバスとの関係 ( ワードアクセス )
内部レジスタ
D31
AA
D23
BB
D15
CC
D07
DD
外部バス
D31
AA
CC
BB
DD
D23
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-3 内部レジスタと外部データバスとの関係 ( ハーフワードアクセス )
内部レジスタ
外部バス
D31
D31
AA
D23
D23
BB
D15
AA
D07
BB
118
第 4 章 バスインタフェース
● バイトアクセス (LDUB, STB 命令実行時 )
図 4.4-4 内部レジスタと外部データバスとの関係 ( バイトアクセス )
(a) 出力アドレス下位 "0"
内部レジスタ 外部バス
D31
(b) 出力アドレス下位 "1"
内部レジスタ 外部バス
D31
D31
D23
D23
D31
AA
D23
D23
AA
D15
D15
D07
D07
AA
AA
■ データバス幅
図 4.4-5 および図 4.4-6 に , データバス幅ごとの内部レジスタと外部データバスとの関
係を示します。
● 16 ビットバス幅
図 4.4-5 内部レジスタと外部データバスとの関係 (16 ビットバス幅 )
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D31
AA
Read/Write AA CC
D23
D23
BB
BB DD
D15
CC
D07
DD
● 8 ビットバス幅
図 4.4-6 内部レジスタと外部データバスとの関係 (8 ビットバス幅 )
内部レジスタ
内部アドレス下位
外部バス
"00""01""10""11"
D31
Read/Write
AA
D31
AA
BB
CC
DD
D23
BB
D15
CC
D07
DD
119
第 4 章 バスインタフェース
■ 外部バスアクセス
図 4.4-7 および図 4.4-8 に , 以下の状態の外部バスアクセスを示します。
• データバス幅 :16 ビットバス幅 /8 ビットバス幅
• データフォーマット : ワード / ハーフワード / バイトアクセス
また , 図中には , 各状態のアクセスバイト位置 , プログラムアドレスと出力アドレスお
よびバスアクセス回数をまとめます。
本 LSI は , ミスアラインエラーを検出しません。
したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット
が "00", "01", "10", "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" と
なり , ハーフワードアクセスの場合には "00", "01" のときは "00" に , "10", "11" のとき
には "10" になります。
120
第 4 章 バスインタフェース
● 16 ビットバス幅
図 4.4-7 ビッグエンディアンの外部バスアクセス (16 ビットバス幅 )
(A)ワードアクセス
(a)PA1/PA0="00"
→ ( 1 ) 出 力 A1/A0="00"
(2) 出 力 A1/A0="10"
MSB
LSB
(b)PA1/PA0="01"
→ ( 1 ) 出 力 A1/A0="00"
(2) 出 力 A1/A0="10"
(c)PA1/PA0="10"
→ ( 1 ) 出 力 A1/A0="00"
(2) 出 力 A1/A0="10"
(d)PA1/PA0="11"
→ ( 1 ) 出 力 A1/A0="00"
(2) 出 力 A1/A0="10"
(1)→
00
01
(1)→
00
01
(1)→
00
01
(1)→
00
01
(2)→
10
11
(2)→
10
11
(2)→
10
11
(2)→
10
11
16bit
(B)ハーフワードアクセス
(a)PA1/PA0="00"
→ ( 1 ) 出 力 A1/A0="00"
(1)→
00
01
10
11
(b)PA1/PA0="01"
→( 1 ) 出 力 A1/A0="00"
(1)→
00
01
10
11
(c)PA1/PA0="10"
→(1) 出 力 A1/A0="10"
(1)→
00
01
10
11
(d)PA1/PA0="11"
→(1) 出 力 A1/A0="10"
(1)→
00
01
10
11
(C)バイトアクセス
(a)PA1/PA0="00"
→ ( 1 ) 出 力 A1/A0="00"
(1)→
00
01
10
11
PA1/PA0
出 力 A1/A0
+
(1)~(4)
(b)PA1/PA0="01"
→( 1 ) 出 力 A1/A0="01"
(1)→
00
01
10
11
(c)PA1/PA0="10"
→(1) 出 力 A1/A0="10"
(1)→
00
01
10
11
(d)PA1/PA0="11"
→(1) 出 力 A1/A0="11"
(1)→
00
01
10
11
: プ ロ グ ラ ム で 指 定 し た ア ド レ ス 下 位 2 ビット
: 出 力 す る ア ド レ ス の 下 位 2ビ ッ ト
:出力するアドレスの先頭バイト位置
:アクセスするデータバイト位置
:バスアクセス回数
121
第 4 章 バスインタフェース
● 8 ビットバス幅
図 4.4-8 ビッグエンディアンの外部バスアクセス (8 ビットバス幅 )
(A)ワードアクセス
(a)PA1/PA0="00"
(b)PA1/PA0="01"
(c)PA1/PA0= "10"
(d)PA1/PA0="11"
→ ( 1 ) 出 力 A1/A0="00"
→( 1 ) 出 力 A1/A0="00"
→( 1 ) 出 力 A1/A0="00"
→( 1 ) 出 力 A1/A0="00"
(2) 出 力 A 1 / A 0 = "01"
(2) 出 力 A1/A0="01"
(2) 出 力 A1/A0="01"
(2) 出 力 A 1 / A 0 = "01"
(3) 出 力 A 1 / A 0 = "10"
(3) 出 力 A1/A0="10"
(3) 出 力 A1/A0="10"
(3) 出 力 A 1 / A 0 = "10"
(4) 出 力 A 1 / A 0 = "11"
(4) 出 力 A1/A0="11"
(4) 出 力 A1/A0="11"
(4) 出 力 A 1 / A 0 = "11"
MSB LSB
(1)→
00
(1)→
00
(1)→ 00
(1)→
00
(2)→
01
(2)→
01
(2)→ 01
(2)→
01
(3)→
10
(3)→
10
(3)→ 10
(3)→
10
(4)→
11
(4)→
11
(4)→ 11
(4)→
11
8bit
(B)ハーフワードアクセス
(a)PA1/PA0="00"
(b)PA1/PA0="01"
(c)PA1/PA0="10"
(d)PA1/PA0="11"
→ ( 1 ) 出 力 A1/A0="00"
→( 1 ) 出 力 A1/A0="00"
→(1) 出 力 A1/A0="10"
→(1) 出 力 A1/A0="10"
(2) 出 力 A 1 / A 0 = "01"
(2) 出 力 A1/A0="01"
(2) 出 力 A 1 / A 0 = "01"
(2) 出 力 A1/A0="01"
(1)→
00
(1)→
00
00
00
(2)→
01
(2)→
01
01
01
10
10
(1)→ 10
(1)→
10
11
11
(2)→ 11
(2)→
11
(C)バイトアクセス
(a)PA1/PA0="00"
(b)PA1/PA0="01"
(c)PA1/PA0="10"
(d)PA1/PA0="11"
→ ( 1 ) 出 力 A1/A0="00"
→( 1 ) 出 力 A1/A0="01"
→(1) 出 力 A1/A0="10"
→(1) 出 力 A1/A0="11"
(1)→
00
00
00
00
01
01
01
10
10
(1)→ 10
10
11
11
11
01
PA1/PA0
出 力 A1/A0
+
(1)~(4)
122
(1)→
: プ ロ グ ラ ム で 指 定 し た ア ド レ ス 下 位 2 ビット
: 出 力 す る ア ド レ ス の 下 位 2ビ ッ ト
:出力するアドレスの先頭バイト位置
:アクセスするデータバイト位置
:バスアクセス回数
(1)→
11
第 4 章 バスインタフェース
■ 外部デバイスとの接続例
図 4.4-9 に , MB91151A と外部デバイスの接続例を示します。
図 4.4-9 外部デバイスとの接続例
MB91151A
D31
D23
D 2 4 WR0
D 1 6 WR1
D15
0
1
D08 D07
D00
16ビットデバイス*
X
D07
D00
8ビットデバイス*
("0"Address下 位 1 ビ ッ ト ,"X"はA d d r e s s 下 位 1ビットが"0","1"可 )
*:16ビット/8ビットデバイスの場合は,本品種の M S B 側のdata busを使用します。
123
第 4 章 バスインタフェース
4.4.3
リトルエンディアンのバスアクセス
リトルエンディアンレジスタ (LER) を設定した領域に対しては , リトルエンディア
ンで外部バスアクセスを行います。
MB91151A のリトルエンディアンバスアクセスは , ビッグエンディアン時のバスア
クセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御
信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることに
より実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必
要がありますので , 十分注意が必要です。
■ リトルエンディアンとビッグエンディアンの相違点
出力するアドレスの順番はビッグエンディアン / リトルエンディアンによって変わり
ません。
また , 16 ビット /8 ビットバス幅で使用するデータバス制御信号は , ビッグエンディア
ン / リトルエンディアンによって変わりません。
データフォーマットごとの相違を以下に示します。
● ワードアクセス
ビッグエンディアンのアドレス "00B" に対応する MSB 側のバイトデータが , リトルエ
ンディアンでは LSB 側のバイトデータになります。
ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。
"00" → "11", "01" → "10", "10" → "01", "11" → "00"
● ハーフワードアクセス
ビッグエンディアンのアドレス "0" に対応する MSB 側のバイトデータが , リトルエン
ディアンでは LSB 側のバイトデータになります。
ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置がひっくりか
えります。
"0" → "1", "1" → "0"
● バイトアクセス
ビッグエンディアン / リトルエンディアンとも同じです。
124
第 4 章 バスインタフェース
■ データフォーマット
図 4.4-10 ∼図 4.4-12 に , データフォーマットごとの内部レジスタと外部データバスと
の関係を示します。
● ワードアクセス (LD, ST 命令実行時 )
図 4.4-10 内部レジスタと外部データバスとの関係 ( ワードアクセス )
内部レジスタ
外部バス
D31
D31
AA
DD
BB
BB
CC
AA
D23
D23
D15
CC
D07
DD
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-11 内部レジスタと外部データバスとの関係 ( ハーフワードアクセス )
内部レジスタ
外部バス
D31
D31
BB
D23
D23
AA
D15
AA
D07
BB
● バイトアクセス (LDUB, STB 命令実行時 )
図 4.4-12 内部レジスタと外部データバスとの関係 ( バイトアクセス )
(a)出力アドレス下位"0"
内部レジスタ 外部バス
D31
(b) 出力アドレス下位"1"
内部レジスタ 外部バス
D31
D31
D23
D23
D31
AA
D23
D23
AA
D15
D15
D07
D07
AA
AA
125
第 4 章 バスインタフェース
■ データバス幅
図 4.4-13 および図 4.4-14 に , データバス幅ごとの内部レジスタと外部データバスとの
関係を示します。
● 16 ビットバス幅
図 4.4-13 内部レジスタと外部データバスとの関係 (16 ビットバス幅 )
内部レジスタ
外部バス
出力アドレス下位
"00""10"
D31
D31
AA リード/ライト DD BB
D23
D23
BB
CC AA
D15
CC
D07
DD
● 8 ビットバス幅
図 4.4-14 内部レジスタと外部データバスとの関係 (8 ビットバス幅 )
内部レジスタ
外部バス
出力アドレス下位
"00" "01" "10" "11"
D31
AA
DD
D23
BB
D15
CC
D07
DD
126
D31
リード/ライト
CC
BB
AA
第 4 章 バスインタフェース
■ 外部デバイスとの接続例
図 4.4-15 および図 4.4-16 に , データバス幅ごとの , MB91151A と外部デバイスとの接続
例を示します。
● 16 ビットバス幅
図 4.4-15 外部デバイスとの接続例 (16 ビットバス幅 )
MB91151A
D31
D23
D 2 4 WR0
D 1 6 WR1
ビッグエンディアン領域
リトルエンディアン領域
WR0
WR1
D31-24
D23-16
WR0
WR1
D31-24 D23-16
MSB
LSB
D15
D08 D07
D00
MSB
D15
LSB
D08 D07
D00
● 8 ビットバス幅
図 4.4-16 外部デバイスとの接続例 (8 ビットバス幅 )
MB91151A
D31
D23
D 2 4 WR0 D 1 6 WR1
ビッグエンディアン領域
D07
D00
リトルエンディアン領域
D07
D00
( 注意事項 )本品種にはチップセレクト出力がありませんので , 外部でアドレスをデコー
ドする必要があります。
127
第 4 章 バスインタフェース
4.4.4
ビッグエンディアンとリトルエンディアンの外部ア
クセスの比較
表 4.4-1 ∼表 4.4-3 に , データバス幅およびデータフォーマットごとの , ビッグエン
ディアンとリトルエンディアンの外部アクセスの比較を示します。
■ ワードアクセス
表 4.4-1 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ワードアクセス )
バス幅
16 ビットバス幅
ビッグエンディアンモード
内部reg
D31
外部端子
リトルエンディアンモード
制御端子
内部reg
外部端子
address:"0" "2"
D31
AA
AA CC
WR0
AA
DD BB
WR0
BB
WR1
BB
CC AA
WR1
- -
-
- -
-
CC
BB DD
D16
DD
address:"0" "2"
D31
- - -
D31
CC
- - -
D00
D16
DD
D00
(1) (2)
8 ビットバス幅
内部reg
外部端子
(1) (2)
制御端子
内部reg
address:"0" "1" "2" "3"
D31
AA
AA BB CC DD
BB
外部端子 制御端子
address:"0" "1" "2" "3"
D31
D31
WR0
D31
AA
DD CC BB AA
- - - - -
BB
- - - - -
CC
- - - - -
CC
DD
- - - - -
D24
DD
D24
(1) (2) (3) (4)
WR0
- - - - -
- - - - -
D00
D00
128
制御端子
(1) (2) (3) (4)
第 4 章 バスインタフェース
■ ハーフワードアクセス
表 4.4-2 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( ハーフワードアクセス )
バス幅
16 ビットバス幅
ビッグエンディアンモード
内部reg 外部端子 制御端子
address:"0"
D31
D31
D00
AA
WR0
BB
WR1
AA
D16 -
-
BB
-
-
リトルエンディアンモード
内部reg 外部端子
address:"0"
D31
D31 BB
AA
D00
D16
BB
制御端子
D31
D31
CC
WR0
DD
WR1
CC
D16 -
-
DD
-
-
D00
WR1
-
-
-
-
D31
CC
D16
DD
制御端子
DD
WR0
CC
WR1
-
-
-
-
D00
(1)
内部reg 外部端子 制御端子
address:"0" "1"
D31
D31
AA BB
WR0
- -
AA
D24
BB
D00
内部reg 外部端子
address:"0" "1"
制御端子
D31
D31
BB AA
-
- - WR0
-
D24
- -
-
- -
-
AA
BB
D00
D00
内部reg 外部端子
address:"2" "3"
D31
D31 DD CC
制御端子
WR0
CC
-
制御端子
WR0
-
-
DD
D00
(1) (2)
-
D24
-
D00
- - 内部reg 外部端子
address:"2" "3"
D31
D31 DD CC
-
DD
-
(1) (2)
D24
CC
- - D00
(1) (2)
D00
AA
内部reg 外部端子
address:"2"
D31
(1)
8 ビットバス幅
WR0
(1)
(1)
内部reg 外部端子
address:"2"
制御端子
-
D00
(1) (2)
129
第 4 章 バスインタフェース
■ バイトアクセス
表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (1 / 2)
バス幅
16 ビットバス幅
ビッグエンディアンモード
内部Reg 外部端子
address:"0"
D31
制御端子
リトルエンディアンモード
内部Reg 外部端子
address:"0"
D31
D31
AA
D31
WR0
AA
-
D16
-
AA
WR0
-
D16
-
-
AA
-
D00
D00
(1)
内部Reg 外部端子
address:"1"
D31
D31
(1)
制御端子
内部Reg 外部端子
address:"1"
D31
BB
-
WR1
BB
-
D16
WR1
-
D16
-
BB
D00
制御端子
D31
-
-
BB
D00
(1)
内部Reg 外部端子
address:"2"
D31
D31
CC
(1)
制御端子
WR0
内部Reg 外部端子
address:"2"
D31
D31
CC
-
D16
CC
制御端子
WR0
-
D16
-
-
D00
-
CC
-
D00
(1)
内部Reg 外部端子
address:"3"
D31
D31
(1)
制御端子
内部Reg 外部端子
address:"3"
D31
D31
-
DD
DD
WR1
DD
D16
-
D00
WR1
-
DD
-
D00
(1)
制御端子
-
-
D16
130
制御端子
(1)
第 4 章 バスインタフェース
表 4.4-3 ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ( バイトアクセス ) (2 / 2)
バス幅
8 ビットバス幅
ビッグエンディアンモード
内部Reg 外部端子
address:"0"
D31
制御端子
リトルエンディアンモード
内部Reg 外部端子
address:"0"
D31
D31
AA
D31
AA
WR0
-
D24
-
-
D00
WR0
-
D24
-
AA
制御端子
AA
-
D00
(1)
内部Reg 外部端子
address:"1"
D31
(1)
制御端子
内部Reg 外部端子
address:"1"
D31
D31
BB
D24
制御端子
D31
BB
WR0
WR0
-
-
D24
-
-
BB
-
D00
BB
-
D00
(1)
内部Reg 外部端子
address:"2"
D31
D31
CC
(1)
制御端子
WR0
内部Reg 外部端子
address:"2"
D31
D31
CC
-
制御端子
WR0
-
D24
D24
-
CC
-
-
D00
CC
-
D00
(1)
内部Reg 外部端子
address:"3"
D31
D31
DD
(1)
制御端子
WR0
内部Reg 外部端子
address:"3"
D31
D31
DD
-
D24
D24
-
DD
WR0
-
-
-
D00
制御端子
DD
-
D00
(1)
(1)
131
第 4 章 バスインタフェース
4.5
バスタイミング
ここでは , 以下の各モードでのバスアクセスの動作の詳細について示します。
• 通常バスアクセス
• ウェイトサイクル
• 外部バスリクエスト
■ 通常バスアクセス
通常バスインタフェースでは , リードサイクル / ライトサイクルともに "2 クロックサ
イクル " が基本バスサイクルになります。以降では , その 2 サイクルを "BA1", "BA2"
で表します。
通常バスアクセスには , 以下のサイクルがあります。
• 基本リードサイクル
• 基本ライトサイクル
• 各モードでのリードサイクル
• 各モードでのライトサイクル
• リード / ライト混在サイクル
■ ウェイトサイクル
ウェイトサイクルは前のサイクルを継続して行うモードであり,ウェイトが解除される
まで "BA1 サイクル " を繰り返します。
ウェイトサイクルには , 以下の 2 種類があります。
• AMD レジスタの WTC2 ∼ WTC0 ビットによる「自動ウェイトサイクル」
• RDY 端子を使用する「外部ウェイトサイクル」
■ 外部バスリクエスト
外部バスリクエストには , 以下の 2 種類があります。
• バス権解放
• バス権獲得
132
第 4 章 バスインタフェース
基本リードサイクル
4.5.1
ここでは , 基本リードサイクルの動作について示します。
■ 基本リードサイクルタイミング
図 4.5-1 に , バス幅 :16 ビット , アクセス : ワード , CS0 領にアクセスする場合の基本
リードサイクルのタイミング例を示します。
<注意事項>
本品種には CS4, CS5 出力はありません。
図 4.5-1 基本リードサイクルのタイミング例
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
#0
#2
#0
#1
↑
#2
#3
↑
RD
WR0
WR1
(CS0)
(CS1)
(CS2)
(CS3)
(DACK0)
(DEOP0)
アドレス上位側の
ハーフワード
アクセス
アドレス下位側の
ハーフワード
アクセス
( 注意事項 )
A23 ∼ 00 の "#" は , アドレスの下位 2 ビットを表します。
D31 ∼ 16 の "#" は , リードデータのバイトアドレスを表します。
(DACK0)(DEOP0) は DMAC のバスサイクルを表します。
" ↑ " は , リードデータの取込みタイミングを表します。
133
第 4 章 バスインタフェース
【動作説明】
• CLK は外部バスの動作クロックを出力します。
クロックダブラ OFF 時は CPU 系と外部バス系の動作クロックは 1:1 の関係にあり ,
CLK も CPU 系と同周波数のクロックを出力します。またクロックダブラ ON のと
きには CPU 系と外部バス系は 1:1/2 の関係になり , CLK は CPU 系の 1/2 の周波数を
出力します。
ギアがかかったときには , ギア比に応じて CLK の周波数も下がります。
• A23 ∼ A00( アドレス 23 ∼ 00) は , リードサイクルのワード / ハーフワード / バイト
アクセスの先頭バイト位置のアドレスをバスサイクルの開始 (BA1) から出力しま
す。上記例の場合 , 16 ビットバス幅でワードアクセスを行うため , 1 回目のバスサ
イクルでワードアクセスの上位 16 ビットのアドレス ( 下位 2 ビット "0") を , 2 回目
のバスサイクルで下位 16 ビットのアドレス ( 下位 2 ビット "2") を出力します。
• D31 ∼ D16( データ 31 ∼ 16) は , 外部メモリ , I/O からのリードデータを表します。
リードサイクルの場合は , RD の立上りで D31 ∼ D16 を取り込みます。なお , リー
ドサイクルの場合は , バス幅やワード / ハーフワード / バイトアクセスに関係なく ,
RD の立上りで D31 ∼ D16 のすべてを取り込み , 取り込んだデータが有効かどうかの
判断はチップ内部で行います。
• RD は外部データバスのリードストローブ信号であり , BA1 の立下りでアサートし ,
BA2 の立下りでネゲートします。
• リードサイクルの場合は WR0, WR1 はネゲート状態です。
• CS0 ∼ CS3( 領域チップセレクト ) 信号の出力は , A23 ∼ A00 と同タイミングでバス
サイクルの開始 (BA1) からアサートされます。CS0 ∼ CS3 はアドレス出力をデコー
ドして作っており , アドレス出力が変化して ASR レジスタ , AMR レジスタで設定し
たチップセレクト領域が変わらない限り変化しません。
• DACK0 ∼ DACK2, DEOP0 ∼ DEOP2 は DMA の外部バスサイクルで出力されます。
出力するかどうかは DMAC のレジスタ設定により決定され , 出力タイミングは RD
と同じです。
134
第 4 章 バスインタフェース
基本ライトサイクル
4.5.2
ここでは , 基本ライトサイクルの動作について示します。
■ 基本ライトサイクルタイミング
図 4.5-2 に , バス幅 :8 ビット , アクセス : ワード , CS0 領域のアクセスの場合の基本ラ
イトサイクルのタイミング例を示します。
<注意事項>
本品種には CS4, CS5 出力はありません。
図 4.5-2 基本ライトサイクルのタイミング例
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
RD
WR0
WR1
(CS0)
(CS1)
(CS2)
(CS3)
(DACK0)
(DEOP0)
#0
#0
#1
#1
#2
#2
#3
#3
アドレス下位2ビット アドレス下位2ビット アドレス下位2ビット アドレス下位2ビット
"0"のバイトアクセス "1"のバイトアクセス "2"のバイトアクセス "3"のバイトアクセス
135
第 4 章 バスインタフェース
【動作説明】
• A23 ∼ A00( アドレス 23 ∼ 00) は , ライトサイクルのワード / ハーフワード / バイト
アクセスの先頭バイト位置のアドレスをバスサイクルの開始 (BA1) から出力しま
す。上記例の場合 , 8 ビットバス幅でワードアクセスを行うため , まずワードアクセ
スの先頭バイト ( アドレス下位 "0") のアドレスを出力し , その後は順々に先頭バイ
トから +1 のアドレス ("1"), +2 のアドレス ("2"), +3 のアドレス ("3") を出力します。
• D31 ∼ D16( データ 31 ∼ 16) は , 外部メモリ , I/O へのライトデータを表します。ラ
イトサイクルの場合は , ライトデータをバスサイクルの開始 (BA1) から出力し , バ
スサイクルの終了 (BA2 の終了 ) で High-Z にします。
上記例の場合は , 8 ビットデータバス幅のため , D31 ∼ D24 にライトデータが出力さ
れます。
• ライトサイクルでは RD はネゲート状態です。
• WR0, WR1 は外部データバスのライトストローブ信号であり , BA1 の立下りでア
サートし , BA2 の立下りでネゲートします。
D31 ∼ D24 は WR0, D23 ∼ D16 は WR1 と , それぞれ対応するデータバスに応じて
アサートされます。上記例の場合は 8 ビットデータバス幅のため , WR0 のみアサー
トされます。
• チップセレクト領域 0 ∼ 5 の最大バス幅が 8 ビットの場合 , すなわち , 設定された
すべての領域が 8 ビットの場合は , D23 ∼ D16 と WR1 は自動的に I/O ポートになり ,
ハイインピーダンス (Hi-Z) となります。
上記例はD23∼D16とWR1がI/Oポートとして使用される場合を示しています。また,
チップセレクト領域 0 ∼ 5 のうち , バス幅がどれか 1 領域でも 16 ビットに設定され
ていると , D23 ∼ D16 と WR1 は I/O ポートして使用できませんのでご注意ください。
端子
D31 ∼ D24
WR0
D23 ∼ D16
WR1
16 ビット
D31 ∼ D24
WR0
D23 ∼ D16
WR1
8 ビット
D31 ∼ D24
WR0
I/O ポート
最大バス幅
• DACK0 ∼ DACK2, DEOP0 ∼ DEOP2 は DMA の外部バスサイクルで出力されます。
出力するかどうかはDMACのレジスタ設定により決定され,出力タイミングはWR0,
WR1 と同じです。
136
第 4 章 バスインタフェース
各モードでのリードサイクル
4.5.3
図 4.5-3 ∼図 4.5-7 に , 各モードでのリードサイクルの動作タイミング例を示しま
す。
■ 各モードでのリードサイクルタイミング
● バス幅 :16 ビット , アクセス : ハーフワード
図 4.5-3 リードサイクルのタイミング例 1
BA1
BA2
BA1
BA2
CLK
#0
A23~A00
D31~D24
D23~D16
RD
#2
#0
#1
#2
#3
● バス幅 :16 ビット , アクセス : バイト
図 4.5-4 リードサイクルのタイミング例 2
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
RD
#0
#1
#0
X
#2
X
#1
#3
#2
X
X
#3
X:無効データ入力
● バス幅 :8 ビット , アクセス : ワード
図 4.5-5 リードサイクルのタイミング例 3
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
RD
#0
#1
#0
#2
#1
#3
#2
#3
137
第 4 章 バスインタフェース
● バス幅 :8 ビット , アクセス : ハーフワード
図 4.5-6 リードサイクルのタイミング例 4
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
RD
#0
#1
#2
#0
#3
#1
#2
#3
● バス幅 :8 ビット , アクセス : バイト
図 4.5-7 リードサイクルのタイミング例 5
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
RD
138
#0
#1
#0
#2
#1
#3
#2
#3
第 4 章 バスインタフェース
4.5.4
各モードでのライトサイクル
図 4.5-8 ∼図 4.5-12 に , 各モードでのライトサイクルの動作タイミング例を示しま
す。
■ 各モードでのライトサイクルタイミング
● バス幅 :16 ビット , アクセス : ワード
図 4.5-8 ライトサイクルのタイミング例 1
BA1
BA2
BA1
BA2
CLK
#0
#0
#1
A23~A00
D31~D24
D23~D16
WR0
WR1
#2
#2
#3
● バス幅 :16 ビット , アクセス : ハーフワード
図 4.5-9 ライトサイクルのタイミング例 2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
WR0
WR1
#0
#0
#1
#2
#2
#3
● バス幅 :16 ビット , アクセス : バイト
図 4.5-10 ライトサイクルのタイミング例 3
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
WR0
WR1
#0
#0
X
#1
X
#1
#2
#2
X
#3
X
#3
X:無効データ出力
139
第 4 章 バスインタフェース
● バス幅 :8 ビット , アクセス : ハーフワード
図 4.5-11 ライトサイクルのタイミング例 4
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
CLK
A23~A00
D31~D24
D23~D16
WR0
WR1
#0
#0
#1
#1
#2
#2
#3
#3
● バス幅 :8 ビット , アクセス : バイト
図 4.5-12 ライトサイクルのタイミング例 5
BA1
BA2
BA1
BA2
BA1
BA2
BA1
CLK
A23~A00
D31~D24
D23~D16
WR0
WR1
140
#0
#0
#1
#1
#2
#2
#3
#3
BA
第 4 章 バスインタフェース
リード / ライト混在サイクル
4.5.5
ここでは , リード / ライト混在サイクルの動作について示します。
■ リード / ライト混在サイクルタイミング
図 4.5-13 に , CS0 領域 : バス幅 16 ビット , アクセス : ワードリードの場合および CS1 領
域 : バス幅 8 ビット , アクセス : ハーフワードライトの場合の , リード / ライト混在サ
イクルのタイミング例を示します。
<注意事項>
本品種には CS4, CS5 出力はありません。
図 4.5-13 リード / ライト混在サイクルのタイミング例
BA1
BA2
BA1
BA2
Idle
BA1
BA2
BA1
BA
Idle
CLK
A23~A00
D31~D24
D23~D16
#0
#2
#0
#1
#2
#3
#0
#0
X
#1
#1
X
RD
WR0
WR1
(CS0)
(CS1)
ワードリードサイクル
CS0領域
ハーフワードライトサイクル
CS1領域
【動作説明】
• 上記の例は , チップセレクト領域の切り換わりに , アイドルサイクル ( 何もバスサイ
クルを行っていないサイクル ) が挿入された場合を表しています。
バスサイクルの間にアイドルサイクルが挿入された場合は , アドレスは次のバスサ
イクルが開始されるまで前のバスサイクルのアドレスをそのまま出力し続けます。
それに伴い , 出力しているアドレスに対応する CS0 ∼ CS3 もアサートし続けます。
• 上記の例は , 16 ビット /8 ビットバスの混在です。
最大バス幅が 16 ビットのため , 8 ビットアクセス領域 (CS1 領域 ) でも D23 ∼ D16
と WR1 は I/O ポートになりません。D23 ∼ D16 は不定データが出力され , WR1 は
ネゲート状態になります。
141
第 4 章 バスインタフェース
4.5.6
自動ウェイトサイクル
ここでは , 自動ウェイトサイクルの動作について示します。
■ 自動ウェイトサイクルタイミング
図 4.5-14 に , バス幅 :16 ビット , アクセス : ハーフワードリード / ライトの場合の , 自動
ウェイトサイクルのタイミング例を示します。
図 4.5-14 自動ウェイトサイクルのタイミング例
BA1
BA1
BA2
BA1
BA1
BA2
CLK
A23~A00
D31~D16
RD
WR0,WR1
(DACK0)
(DEOP0)
#0
#0:1
#2
#2,3
wait
wait
リード
ライト
【動作説明】
• 自動ウェイトサイクルは , それぞれのチップセレクト領域の AMD レジスタの WTC2 ∼
WTC0 ビットを設定することにより実現できます。
• 上記の場合は , WTC ビットに "001B" を設定して , 通常バスサイクルに 1 ウェイトの
バスサイクルを挿入した例を示しており , その場合は「通常バスサイクル 2 クロッ
ク」+「ウェイトサイクル 1 クロック」の「計 3 クロックバスサイクル」になります。
自動ウェイトは最大 7 クロックサイクルまで ( その場合通常バスサイクルは 9 クロッ
クサイクル ) 設定することができます。
142
第 4 章 バスインタフェース
4.5.7
外部ウェイトサイクル
ここでは , 外部ウェイトサイクルの動作について示します。
■ 外部ウェイトサイクルタイミング
図 4.5-15 に , バス幅 :16 ビット , アクセス : ハーフワードの場合の , 外部ウェイトサイ
クルのタイミング例を示します。
図 4.5-15 外部ウェイトサイクルのタイミング例
BA1
BA1
BA1
BA1
BA1
BA2
CLK
A23~A00
リード
D31~D16
RD
ライト
D31~D16
WR0,WR1
#0
#0:1
#0,1
wait
wait
wait
RDY
RDY
自動
ウェイト
RDYによるウェイト
バスサイクル
【動作説明】
• 外部ウェイトサイクルは , EPCR0 の RDYE ビットを "1" に設定し , 外部 RDY 端子の
入力を有効にすることにより実現できます。
• 外部 RDY を使用する場合は , 必ず 1 クロック以上の自動ウェイトサイクル , すなわ
ち AMD の WTC2 ∼ WTC0 ビットに "001B" 以上の値を設定してください。
自動ウェイトの最終サイクルから RDY を検出します。
• また外部 RDY は , CLK 端子出力の立下りに同期して入力してください。
CLK の立下り時点で外部 RDY が "L" レベルならばウェイトサイクルとなり , 同じ
BA1 サイクルを繰り返します。また "H" レベルのときにはウェイトサイクル終了と
判断し , BA2 サイクルに遷移します。
143
第 4 章 バスインタフェース
4.5.8
外部バスリクエスト
ここでは , 外部バスリクエストの動作について示します。
■ バス権解放
図 4.5-16 に , バス権解放のタイミング例を示します。
図 4.5-16 バス権解放のタイミング例
CLK
A23~A00
D31~D16
RD
#0:1
#0:1
Hi-Z
Hi-Z
Hi-Z
BRQ
BGRNT
1サイクル
【動作説明】
• EPCR0 の BRE ビットを "1" に設定することにより , BRQ, BGRNT によるバスアービ
トレーションを行うことができます。
• バス権解放時は,端子をハイインピーダンス(Hi-Z)にしてから1サイクル後にBGRNT
をアサートします。
■ バス権獲得
図 4.5-17 に , バス権獲得のタイミング例を示します。
図 4.5-17 バス権獲得のタイミング例
CLK
A23~A00
D31~D16
RD
Hi-Z
Hi-Z
Hi-Z
BRQ
BGRNT
1サイクル
【動作説明】
• EPCR0 の BRE ビットを "1" に設定することにより , BRQ, BGRNT によるバスアービ
トレーションを行うことができます。
• バス権獲得時は , BGRNT をネゲートしてから 1 クロック後に各端子をアクティブに
します。
144
第 4 章 バスインタフェース
4.6
内部クロック逓倍動作 ( クロックダブラ )
MB91151A は , クロック逓倍回路を持っており , CPU 内部はバスインタフェースの
2 倍 , 1 倍のいずれかの周波数で動作します。どちらのクロックを選択した場合で
も , バスインタフェースは CLK 出力端子に同期して動作します。
CPU からの外部アクセス要求が発生した場合 , CLK 出力の立上りを待って外部への
アクセスを開始します。
■ クロック選択方法
2 倍 , 1 倍のクロック選択の方法は ,「3.12.4 ギア制御レジスタ (GCR)」を参照してくだ
さい。
クロック選択の変更は , チップ動作中でも任意に行うことができます。クロック選択の
切換え中はバス動作が一時抑止されます。また , リセット時にはクロック選択は自動的
に 1 倍になります。
● 2 倍クロック
図 4.6-1 に , バス幅 :16 ビット , アクセス : ワードの場合の , 2 倍クロックのタイミング
例を示します。
図 4.6-1 2 倍クロックのタイミング例
内部クロック
内部命令アドレス
N + 2
N
内部命令データ
D
D + 2
CLK出力
外部アドレスバス
N
外部データバス
N + 4
N + 2
D + 2
D
外部RD
プリフェッチ
外部アクセス(命令フェッチ)
● 1 倍クロック
図 4.6-2 に , バス幅 :16 ビット , アクセス : ワードの場合の , 1 倍クロックのタイミング
例を示します。
図 4.6-2 1 倍クロックのタイミング例
内部クロック
内部命令アドレス
N
N + 2
内部命令データ
D
D + 2
CLK出力
外部アドレスバス
外部データバス
N + 4
N + 2
N
D
D + 2
外部RD
外部アクセス(命令フェッチ)
プリフェッチ
145
第 4 章 バスインタフェース
4.7
外部バス動作のプログラム例
ここでは , 外部バスを動作させるための簡単なプログラム例を示します。
■ プログラム例の仕様
● レジスタの設定
• 領域
- 領域 0(AMD0):16 ビット , 通常バス , 自動ウェイト 0
- 領域 1(AMD1):16 ビット , 通常バス , 自動ウェイト 2
- 領域 2(AMD32):16 ビット , 通常バス , 自動ウェイト 1
- 領域 3(AMD32):16 ビット , 通常バス , 自動ウェイト 1
- 領域 4(AMD4):16 ビット , DRAM, ページサイズ 256, 1CAS/2WE, ウェイトあり ,
CBR リフレッシュ
- 領域 5(AMD5):16 ビット , DRAM, ページサイズ 512, 2CAS/1WE, ウェイトなし ,
CBR リフレッシュ
• ほかのバス
- リフレッシュ (RFCR): ウェイトなし , 1/8 設定
- 外部端子 (EPCR0): 外部 RDY 受付け , BRQ, BGRNT のアービトレーション
- 外部端子 (DSCR):DRAM 端子の設定
- リトルエンディアン (LER): 領域 2
● その他の注意点
• MD2, MD1, MD0 は "001" 外部ベクタは 16 ビットモード。
• 領域 0 を同じバス幅に設定してから , モードレジスタ (MODR) を設定する。
• 領域 1 ∼ 5 はオーバラップしないように設定する。
<注意事項>
本品種では DRAM 制御の機能はありません。またチップセレクト出力もありません。
146
第 4 章 バスインタフェース
■ 外部バス動作のプログラム例
本プログラムは説明のためにバイトレジスタはバイトで,ハーフワードレジスタはハー
フワードで書込みを行っています。
// 各レジスタ設定
init_epcr
ldi:20
#0xffff,r0
// 外部端子設定
// 外部 RDY ウェイト , BRQ, BGRNT バスアービト
レーション
init_dscr
ldi:20
#0x628,r1
// epcr0 レジスタ アドレス 設定
sth
r0,@r1
// epcr0 レジスタ ライト
ldi:8
#0xff,r0
// DRAM 端子設定
// RAS, CAS,WE
init_amd0
init_amd1
init_amd32
init_amd4
init_amd5
init_dmcr4
ldi:20
#0x625,r1
// dscr レジスタ アドレス設定
stb
r0,@r1
// dscr レジスタ ライト
ldi:8
#0x08,r0
// 16 ビットバス , 0-wait
ldi:20
#0x620,r1
// amd0 レジスタ アドレス設定
stb
r0,@r1
// amd0 レジスタ ライト
ldi:8
#0x0a,r0
// 16 ビットバス , 2-wait
ldi:20
#0x621,r1
// amd1 レジスタ アドレス設定
stb
r0,@r1
// amd1 レジスタ ライト
ldi:8
#0x49,r0
// 通常 , 16 ビットバス , 1-wait
ldi:20
#0x622,r1
// amd32 レジスタ アドレス 設定
stb
r0,@r1
// amd32 レジスタ ライト
ldi:8
#0x88,r0
// DRAM, 16 ビットバス
ldi:20
#0x623,r1
// amd4 レジスタ アドレス設定
stb
r0,@r1
// amd4 レジスタ ライト
ldi:8
#0x88,r0
// DRAM, 16 ビットバス
ldi:20
#0x624,r1
// amd5 レジスタ アドレス設定
stb
r0,@r1
// amd5 レジスタ ライト
ldi:20
#0x0c90,r0
// page size=256,Q1/Q4-wait,Page
// 1CAS-2WE, CBR, パリティ なし
init_dmcr5
ldi:20
#0x62c,r1
// dmcr4 レジスタ アドレス 設定
sth
r0,@r1
// dmcr4 レジスタ ライト
ldi:20
#0x10c0,r0
// page size=512,Q1/Q4-wait なし ,Page
// 2CAS-1WE, CBR, パリティ なし
init_rfcr
init_asr
ldi:20
#0x62e,r1
// dmcr5 レジスタ アドレス 設定
sth
r0,@r1
// dmcr5 レジスタ ライト
ldi:20
#0x0205,r0
// REL=2,R1W/R3W-wait なし ,refresh, 1/8
ldi:20
#0x626,r1
// rfcr レジスタ アドレス設定
sth
r0,@r1
// rfcr レジスタ ライト
ldi:32
#0x0013001,r0
// asr1, amr1 レジスタ設定値
147
第 4 章 バスインタフェース
init_ler
init_modr
ldi:32
#0x0015001,r1
// asr2, amr2 レジスタ設定値
ldi:32
#0x0017001,r2
// asr3, amr3 レジスタ設定値
ldi:32
#0x0019001,r3
// asr4, amr4 レジスタ設定値
ldi:32
#0x001b001,r4
// asr5, amr5 レジスタ設定値
ldi:20
#0x60c,r5
// asr1, amr1 レジスタ アドレス 設定
ldi:20
#0x610,r6
// asr2, amr2 レジスタ アドレス 設定
ldi:20
#0x614,r7
// asr3, amr3 レジスタ アドレス 設定
ldi:20
#0x618,r8
// asr4, amr4 レジスタ アドレス 設定
ldi:20
#0x61C,r9
// asr5, amr5 レジスタ アドレス 設定
st
r0,@r5
// asr1, amr1 レジスタ ライト
st
r1,@r6
// asr2, amr2 レジスタ ライト
st
r2,@r7
// asr3, amr3 レジスタ ライト
st
r3,@r8
// asr4, amr4 レジスタ ライト
st
r4,@r9
// asr5, amr5 レジスタ ライト
ldi:8
#0x02,r0
// CS2 リトルエンディアン
ldi:20
#0x7fe,r1
// ler レジスタ アドレス 設定
stb
r0,@r1
// ler レジスタ ライト
ldi:8
#0x80,r0
// 外 ROM 外バス
ldi:20
#0x7ff,r1
// modr レジスタ アドレス設定
stb
r0,@r1
// modr レジスタ ライト
ldi:32
#0x00136da0,r0
// CS1 アドレス
ldi:32
#0x00151300,r1
// CS2 アドレス
ldi:32
#0x00196434,r2
// CS4 アドレス ( ページ内 )
ldi:32
#0x0019657c,r3
// CS4 アドレス ( ページ内 )
ldi:32
#0x00196600,r4
// CS4 アドレス ( ページ外 )
ldi:32
#0x001a6818,r5
// CS5 アドレス ( ページ内 )
ldi:32
#0x001a6b8c,r6
// CS5 アドレス ( ページ内 )
ldi:32
#0x001a6c00,r7
// CS5 アドレス ( ページ外 )
ld
@r0,r8
// CS1 data word load
lduh
@r1,r9
// CS2 data halfword load
ld
@r2,r10
// CS4 data word load
ldub
@r3,r11
// CS4 data byte load
st
r8,@r4
// CS4 data word store
sth
r9,@r5
// CS5 data half word store
st
r10,@r6
// CS5 data word store
stb
r11,@r7
// CS5 data byte store
// 外部バスアクセス
adr_set
bus_acc
148
第5章
I/O ポート
この章では , I/O ポートの概要 , 各ポートのブロッ
クダイヤグラムおよびレジスタの構成について説
明します。
5.1 I/O ポートの概要
5.2 基本入出力ポートのブロックダイヤグラム
5.3 入出力ポート ( プルアップ抵抗付き ) のブロックダイヤ
グラム
5.4 入出力ポート ( オープンドレイン出力機能 , プルアップ
抵抗付き ) のブロックダイヤグラム
5.5 入出力ポート ( オープンドレイン出力機能付き ) のブ
ロックダイヤグラム
5.6 ポートデータレジスタ (PDR2 ∼ PDRL)
5.7 データ方向レジスタ (DDR2 ∼ DDRL)
5.8 プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI)
5.9 オープンドレイン制御レジスタ (OCRH, OCRI)
5.10 アナログ入力制御レジスタ (AICR)
149
第 5 章 I/O ポート
5.1
I/O ポートの概要
ここでは , I/O ポートのブロックダイヤグラムとレジスタについての概要を示しま
す。
■ 各ポートのブロックダイヤグラム
MB91151Aは,各端子に対応するリソースが入出力として端子を使用しない設定になっ
ているとき , I/O ポートとして使用することができます。
ポートデータレジスタ (PDR) の読出し値は , ポートが入力に設定されている場合は端
子のレベルが読み出されます。また , 出力に設定されている場合にはデータレジスタの
値が読み出されます。これはリードモディファイライトでのリードでも同じです。
入力設定から出力設定に変更する場合,あらかじめデータレジスタに出力データを設定
しますが , このときにリードモディファイライト系の命令 ( ビットセットなど ) を使用
しますと , リードしたデータは端子からの入力データであり , データレジスタのラッチ
の値ではありませんので注意が必要です。
MB91151A の I/O ポートには , 以下の種類があります。
• 基本入出力ポート
• プルアップ抵抗付き入出力ポート
• オープンドレイン出力機能 , プルアップ抵抗付き入出力ポート
• オープンドレイン出力機能付き入出力ポート
■ I/O ポートのレジスタ
I/O ポートは , 以下のレジスタで構成されています。
• ポートデータレジスタ (PDR)
• データ方向レジスタ (DDR)
• プルアップ抵抗制御レジスタ (PCR)
• オープンドレイン制御レジスタ (OCR)
• アナログ入力制御レジスタ (AICR)
150
第 5 章 I/O ポート
5.2
基本入出力ポートのブロックダイヤグラム
ここでは , 基本入出力ポートのブロックダイヤグラムを示します。
■ 基本入出力ポートのブロックダイヤグラム
図 5.2-1 に , 基本入出力ポートのブロックダイヤグラムを示します。
図 5.2-1 基本入出力ポートのブロックダイヤグラム
Data Bus
リソース入力
0
1
PDR read
pin
0
PDR
リソース出力
1
リソース出力許可
DDR
PDR : Port Data Register
DDR : Data Direction Register
I/O ポートは , PDR( ポートデータレジスタ /Port Data Register) と DDR( ポート方向レジ
スタ /Data Direction Register) で構成されています。
• 入力モード (DDR=0) 時
- PDR リード時 : 対応する外部端子のレベルが読み出されます。
- PDR ライト時 :PDR に設定値が書き込まれます。
• 出力モード (DDR=1) 時
- PDR リード時 :PDR の値が読み出されます。
- PDR ライト時 :PDR の値が対応する外部端子に出力されます。
この機能を持つポートは , P20 ∼ P27, P30 ∼ P37, P40 ∼ P47, P50 ∼ P57, P80 ∼ P86,
PE0 ∼ PE7, PF0 ∼ PF4, PG0 ∼ PG5, PK0 ∼ PK7, PL0 ∼ PL7 です。
<注意事項>
• アナログ端子 (A/D) のリソースとポートの切換え制御は AICR で行います。
AICR (Analog Input Control register): ポート K をアナログに使用するか , 汎用ポートと
して使用するかを制御します .
0: 汎用ポート
1: アナログ入力 (A/D)
151
第 5 章 I/O ポート
5.3
入出力ポート ( プルアップ抵抗付き ) のブロックダイヤ
グラム
ここでは , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。
■ プルアップ抵抗付き入出力ポートのブロックダイヤグラム
図 5.3-1 に , プルアップ抵抗付き入出力ポートのブロックダイヤグラムを示します。
図 5.3-1 プルアップ抵抗付き入出力ポートのブロックダイヤグラム
Data Bus
リソース入力
0
1
PDR read
pin
0
PDR
リソース出力 1
リソース出力許可
DDR
PCR
PDR : Port Data Register
DDR : Data Direction Register
PCR : Pull-up Control Register
この機能を持つポートは , P60 ∼ P67, PD0 ∼ PD7, PC0 ∼ PC7 です。
<注意事項>
• プルアップ抵抗制御レジスタ (PCR): プルアップ抵抗 ON/OFF 制御を行います。
0: プルアップ抵抗なし
1: プルアップ抵抗あり
• ストップモード時でもプルアップ抵抗制御レジスタの設定が優先されます。
• 当該端子を外バス端子として使用する場合は , 本機能は使用禁止です。本レジスタに
"1" を書き込まないようにしてください。
152
第 5 章 I/O ポート
5.4
入出力ポート ( オープンドレイン出力機能 , プルアップ
抵抗付き ) のブロックダイヤグラム
ここでは , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック
ダイヤグラムを示します。
■ オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグ
ラム
図 5.4-1 に , オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロック
ダイヤグラムを示します。
図 5.4-1 オープンドレイン出力機能 , プルアップ抵抗付き入出力ポートのブロックダイヤグラム
Data Bus
リソース入力
0
1
PDR read
pin
0
PDR
リソース出力 1
リソース出力許可
DDR
OCR
PCR
PDR
DDR
OCR
PCR
:
:
:
:
Port Data Register
Data Direction Register
OpenDrain Control Register
Pull-up Control Register
この機能を持つポートは , PH0 ∼ PH5, PI0 ∼ PI5 です。
153
第 5 章 I/O ポート
<注意事項>
• プルアップ抵抗制御レジスタ (PCR): プルアップ抵抗 ON/OFF 制御を行います。
0: プルアップ抵抗なし
1: プルアップ抵抗あり
• オープンドレイン制御レジスタ (OCR): 出力モード時のオープンドレイン制御を行いま
す。
0: 出力モード時標準出力ポート
1: 出力モード時オープンドレイン出力ポート
入力モード時は意味を持ちません ( 出力 Hi-Z)。
入出力モードはデータ方向レジスタ (DDR) で決まります。
• ストップモード時でもプルアップ抵抗制御レジスタの設定が優先されます。
• 該当端子を外バス端子として使用する場合は , 両機能とも使用禁止です。両レジスタに
"1" を書き込まないようにしてください。
154
第 5 章 I/O ポート
5.5
入出力ポート ( オープンドレイン出力機能付き ) のブ
ロックダイヤグラム
ここでは , オープンドレイン出力機能付き入出力ポートのブロックダイヤグラムを示
します。
■ オープンドレイン出力付き入出力ポートのブロックダイヤグラム
図 5.5-1 に , オープンドレイン出力機能付き入出力ポートのブロックダイヤグラムを示
します。
図 5.5-1 オープンドレイン出力機能付き入出力ポートのブロックダイヤグラム
データバス
RMW
リソース出力
リソース入力
RMW=0
RMW=1
PDR read
端子
PDR
PDR : ポートデータレジスタ
この機能を持つポートは , PJ0, PJ1 です。
<注意事項>
• 入力ポート , リソース入力として使用する場合は , PDR, リソース出力を "1" としてく
ださい。
• RMW によるリード時は , 端子の値ではなく PDR の値が読み込まれます。
155
第 5 章 I/O ポート
5.6
ポートデータレジスタ (PDR2 ∼ PDRL)
ポートデータレジスタ (PDR2 ∼ PDRL) は , I/O ポートの入出力データレジスタで
す。
対応するデータ方向レジスタ (DDR2 ∼ DDRL) で , 入出力制御が行われます。
■ ポートデータレジスタ (PDR)
ポートデータレジスタ (PDR) のレジスタ構成を , 以下に示します。
PDR2
アドレス:000001H
PDR3
アドレス:000000H
PDR4
アドレス:000007H
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
XXXXXXXXB
アクセス
R/W
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
XXXXXXXXB
アクセス
R/W
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
XXXXXXXXB
アクセス
R/W
PDR5
7
6
5
4
3
2
1
0
アドレス:000006H
P57
P56
P55
P54
P53
P52
P51
P50
初期値
XXXXXXXXB
アクセス
R/W
PDR6
アドレス:000005H
7
P67
6
P66
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
XXXXXXXXB
アクセス
R/W
PDR8
7
6
5
4
3
2
1
0
アドレス:00000BH
−
P86
P85
P84
P83
P82
P81
P80
初期値
-XXXXXXXB
アクセス
R/W
PDRC
7
PC7
6
PC6
5
PC5
4
PC4
3
PC3
2
PC2
1
PC1
0
PC0
初期値
XXXXXXXXB
アクセス
R/W
7
PD7
6
PD6
5
PD5
4
PD4
3
PD3
2
PD2
1
PD1
0
PD0
初期値
XXXXXXXXB
アクセス
R/W
アドレス:000013H
PDRD
アドレス:000012H
PDRE
7
6
5
4
3
2
1
0
アドレス:000011H
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
初期値
XXXXXXXXB
アクセス
R/W
PDRF
7
6
5
アドレス:000010H
−
−
−
4
PF4
3
PF3
2
PF2
1
PF1
0
PF0
初期値
---XXXXXB
アクセス
R/W
PDRG
7
6
5
4
3
2
1
0
−
PG5
PG4
PG3
PG2
PG1
PG0
初期値
--XXXXXXB
アクセス
R/W
初期値
--XXXXXXB
アクセス
R/W
アドレス:000017H
−
PDRH
7
6
5
4
3
2
1
0
アドレス:000016H
−
−
PH5
PH4
PH3
PH2
PH1
PH0
( 続く )
156
第 5 章 I/O ポート
( 続き )
PDRI
7
6
5
4
3
2
1
0
アドレス:000015H
−
−
PI5
PI4
PI3
PI2
PI1
PI0
初期値
--XXXXXXB
アクセス
R/W
PDRJ
7
6
5
4
3
2
アドレス:000014H
−
−
−
−
−
−
1
PJ1
0
PJ0
初期値
------11B
アクセス
R/W
PDRK
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値
XXXXXXXXB
アクセス
R/W
7
PL7
6
PL6
5
PL5
4
PL4
3
PL3
2
PL2
1
PL1
0
PL0
初期値
XXXXXXXXB
アクセス
R/W
アドレス:00001BH
PDRL
アドレス:00001AH
157
第 5 章 I/O ポート
5.7
データ方向レジスタ (DDR2 ∼ DDRL)
データ方向レジスタ (DDR2 ∼ DDRL) は , 対応する I/O ポートの入出力方向を , 以下
のようにビット単位で制御します。
• DDR=0: ポート入力
• DDR=1: ポート出力
■ データ方向レジスタ (DDR)
データ方向レジスタ (DDR) のレジスタ構成を , 以下に示します。
DDR2
アドレス:000601H
DDR3
アドレス:000600H
DDR4
アドレス:000607H
DDR5
アドレス:000606H
DDR6
アドレス:000605H
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
00000000B
アクセス
W
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
00000000B
アクセス
W
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
00000000B
アクセス
W
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
00000000B
アクセス
W
7
P67
6
P66
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
00000000B
アクセス
W
DDR8
7
6
5
4
3
2
1
0
アドレス:00060BH
−
P86
P85
P84
P83
P82
P81
P80
初期値
-0000000B
アクセス
W
DDRC
7
PC7
6
PC6
5
PC5
4
PC4
3
PC3
2
PC2
1
PC1
0
PC0
初期値
00000000B
アクセス
R/W
7
PD7
6
PD6
5
PD5
4
PD4
3
PD3
2
PD2
1
PD1
0
PD0
初期値
00000000B
アクセス
R/W
アドレス:0000FDH
7
PE7
6
PE6
5
PE5
4
PE4
3
PE3
2
PE2
1
PE1
0
PE0
初期値
00000000B
アクセス
R/W
DDRF
7
6
5
4
3
2
1
0
PF3
PF2
PF1
PF0
初期値
---00000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
アドレス:0000FFH
DDRD
アドレス:0000FEH
DDRE
アドレス:0000FCH
−
−
−
PF4
DDRG
7
6
5
4
3
2
1
0
アドレス:000103H
−
−
PG5
PG4
PG3
PG2
PG1
PG0
DDRH
7
6
5
4
3
2
1
0
−
PH5
PH4
PH3
PH2
PH1
PH0
アドレス:000102H
−
( 続く )
158
第 5 章 I/O ポート
( 続き )
DDRI
7
6
5
4
3
2
1
0
アドレス:000101H
−
TEST
PI5
PI4
PI3
PI2
PI1
PI0
初期値
-0000000B
アクセス
R/W
DDRK
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値
00000000B
アクセス
R/W
7
PL7
6
PL6
5
PL5
4
PL4
3
PL3
2
PL2
1
PL1
0
PL0
初期値
00000000B
アクセス
R/W
アドレス:000107H
DDRL
アドレス:000106H
<注意事項>
DDRI のビット 6 はテストビットです。必ず "0" を書き込んでください。
リード値は "0" です。
159
第 5 章 I/O ポート
5.8
プルアップ抵抗制御レジスタ (PCR6 ∼ PCRI)
プルアップ抵抗制御レジスタ (PCR6, PCRI) は , 対応する I/O ポートの入力モード時
のプルアップ抵抗制御を , 以下のように行います。
• PCR=0: 入力モード時プルアップ抵抗なし
• PCR=1: 入力モード時プルアップ抵抗あり
出力モード時は意味を持ちません ( プルアップ抵抗なし )。
■ プルアップ抵抗制御レジスタ (PCR)
プルアップ抵抗制御レジスタ (PCR) のレジスタ構成を , 以下に示します。
PCR6
アドレス:000631H
PCRC
アドレス:0000F7H
7
P67
6
P66
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
00000000B
アクセス
R/W
7
PC7
6
PC6
5
PC5
4
PC4
3
PC3
2
PC2
1
PC1
0
PC0
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
PCRD
7
6
5
4
3
2
1
0
アドレス:0000F6H
PD7
PD6
PD5
PD4
PD3
PD2
PD1
PD0
PCRH
7
6
5
4
3
2
1
0
アドレス:0000F5H
−
−
PH5
PH4
PH3
PH2
PH1
PH0
PCRI
7
6
5
4
3
2
1
0
アドレス:0000F4H
−
−
PI5
PI4
PI3
PI2
PI1
PI0
160
第 5 章 I/O ポート
5.9
オープンドレイン制御レジスタ (OCRH, OCRI)
オープンドレイン制御レジスタ (OCRH,OCRI) は , 対応する I/O ポートの出力モード
時のオープンドレイン制御を , 以下のように行います。
• OCR=0: 出力モード時標準出力ポート
• OCR=1: 出力モード時オープンドレイン出力ポート
入力モード時は意味を持ちません ( 出力 Hi-Z)。
■ オープンドレイン制御レジスタ (OCR)
オープンドレイン制御レジスタ (OCR) のレジスタ構成を , 以下に示します。
OCRH
7
6
5
4
3
2
1
0
アドレス:0000F9H
−
−
PH5
PH4
PH3
PH2
PH1
PH0
OCRI
7
6
5
4
3
2
1
0
−
PI5
PI4
PI3
PI2
PI1
PI0
アドレス:0000F8H
−
初期値
--000000B
アクセス
R/W
初期値
--000000B
アクセス
R/W
161
第 5 章 I/O ポート
5.10
アナログ入力制御レジスタ (AICR)
アナログ入力制御レジスタ (AICR) は , 対応する I/O ポートの各端子を以下のように
制御します。
• AICR=0: ポート入力モード
• AICR=1: アナログ入力モード
リセットで "0" になります。
■ アナログ入力制御レジスタ (AICR)
アナログ入力制御レジスタ (AICR) のレジスタ構成を , 以下に示します。
AICR
アドレス:0000EBH
162
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値
00000000B
アクセス
R/W
第6章
8/16 ビットアップダウン
カウンタ / タイマ
この章では , 8/16 ビットアップダウンカウンタ / タ
イマの概要 , ブロックダイヤグラム , レジスタの構
成 / 機能および 8/16 ビットアップダウンカウンタ /
タイマの動作について説明します。
6.1 8/16 ビットアップダウンカウンタ / タイマの概要
6.2 8/16 ビットアップダウンカウンタ / タイマのブロック
ダイヤグラム
6.3 8/16 ビットアップダウンカウンタ / タイマのレジスタ
一覧
6.4 カウントモード選択の動作
6.5 リロード / コンペア機能の動作
6.6 アップダウンカウントレジスタ (UDCR0, UDCR1) への
データの書込み
163
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.1
8/16 ビットアップダウンカウンタ / タイマの概要
8/16 ビットアップダウンカウンタ / タイマは , 以下により構成されるアップダウンカ
ウンタ / タイマです。
• イベント入力端子 6 本
• 8 ビットアップ / ダウンカウンタ× 2 本
• 8 ビットリロード / コンペアレジスタ× 2 本
• 制御回路
■ 8/16 ビットアップダウンカウンタ / タイマの特長
• 8 ビットカウントレジスタにより , 0 ∼ 255 (00H ∼ FFH) の範囲でカウント可能です
(16 ビット× 1 動作モードでは 0 ∼ 65,535 (0000H ∼ FFFFH) の範囲でカウント可能 )。
• カウントクロックの選択による , 以下の 4 種類のカウントモードがあります。
- タイマモード
- アップ / ダウンカウンタモード
- 位相差カウントモード (2 逓倍 )
- 位相差カウントモード (4 逓倍 )
• タイマモード時には , 33.3MHz 動作時のカウントクロックとして , 以下の内部クロッ
ク 2 種類が選択可能です。
- 60ns(16.67MHz:2 分周 )
- 240ns(4.17MHz:8 分周 )
• アップ / ダウンカウントモード時には , 以下の 4 種の外部端子入力信号の検出エッ
ジが選択可能です。
- 立下りエッジ検出
- 立上りエッジ検出
- 立下り / 立上りエッジ両エッジ検出
- エッジ検出禁止
• 位相差カウントモードは , モータ等のエンコーダのカウントに適し , エンコーダの A
相 , B 相 , Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数等のカウ
ントを容易に行うことが可能です。
• ZIN 端子は , 以下の 2 種類の機能を選択可能 ( すべてのモードで有効 ) です。
- カウンタクリア機能
- ゲート機能
164
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
• コンペア機能およびリロード機能を有し , 以下のように , それぞれの機能のみで , ま
た組み合わせても使用可能で , 両機能を組み合わせて使用することで任意幅での
アップダウンカウントを行うことが可能です。
- コンペア機能 ( コンペア時割込み要求出力 )
- コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア )
- リロード機能 ( アンダフロー時割込み要求出力およびリロード )
- コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , ア
ンダフロー時割込み要求出力およびリロード )
- コンペア / リロード禁止
• カウント方向フラグにより , 直前のカウント方向を識別可能です。
• コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時およびカウント
方向が変わった場合の割込みの発生を , それぞれ個別に制御可能です。
165
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.2
8/16 ビットアップダウンカウンタ / タイマのブロック
ダイヤグラム
ここでは , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラムを示し
ます。
■ 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム
● ch0
図 6.2-1 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0) を
示します。
図 6.2-1 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch0)
データバス
CGE1
ZIN0
CGE0
8ビット
RCR0(リロード/
コンペアレジスタ0)
CGSC
CTUT
リロード制御
UCRE
RLDE
エッジ/レベル検出
カウンタ
クリア
UDCC
8ビット
UDCR0(アップ/ダウン
カウントレジスタ0)
Carry
CES1
CES0
CMS1
CMS0
UDFF
CITE
AIN0
BIN0
アップダウン
カウント
クロック選択
プリスケーラ
カウントクロック
UDF1
UDF0
CDCF
CFIE
CSTR
割込み出力
CLKS
166
UDIE
OVFF
CMPF
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
● ch1
図 6.2-2 に , 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1) を
示します。
図 6.2-2 8/16 ビットアップダウンカウンタ / タイマのブロックダイヤグラム (ch1)
データバス
8ビット
CGE1
ZIN1
CGE0
RCR1(リロード/
コンペアレジスタ1)
CGSC
CTUT
リロード制御
UCRE
RLDE
エッジ/レベル検出
カウンタ
クリア
UDCC
8ビット
UDCR1(アップ/ダウン
カウントレジスタ1)
CMPF
UDFF
CMS1
CMS0
CES1
CES0
OVFF
M16E
CITE
UDIE
Carry
AIN1
BIN1
アップダウン
カウント
クロック選択
プリスケーラ
カウントクロック
UDF1
UDF0
CDCF
CFIE
CSTR
割込み出力
CLKS
167
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
8/16 ビットアップダウンカウンタ / タイマのレジスタ
一覧
6.3
ここでは , 8/16 ビットアップダウンカウンタ / タイマのレジスタの一覧を示します。
■ 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧
図 6.3-1 に , 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧を示します。
図 6.3-1 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧
31
24 23
8 7
0
RCR1
RCR0
UDCR1
UDCR0
CCRH0
CCRL0
−
CSR0
CCRH1
CCRL1
−
CSR1
bit
アドレス:00005FH
bit
アドレス:00005EH
bit
アドレス:00005DH
bit
アドレス:00005CH
7
6
5
4
3
2
1
0
D07
D06
D05
D04
D03
D02
D01
D00
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D09
D08
7
6
5
4
3
2
1
0
D07
D06
D05
D04
D03
D02
D01
D00
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D09
D08
6
5
4
3
2
1
7
bit
アドレス:000063H CSTR
000067H
bit
アドレス:000061H
000065H
7
−
CITE
bit
アドレス:000064H
UDIE CMPF OVFF UDFF UDF1
アップダウン
カウントレジスタ ch0
(UDCR0)
アップダウン
カウントレジスタ ch1
(UDCR1)
リロードコンペア
レジスタ ch0
(RCR0)
リロードコンペア
レジスタ ch1
(RCR1)
カウンタステータス
レジスタ ch0,1
UDF0 (CSR0,1)
0
カウンタステータス
レジスタ ch0,1
CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 (CCRL0,1)
6
15
14
bit
アドレス:000060H M16E CDCF
168
16 15
5
13
CFIE
15
14
13
−
CDCF
CFIE
4
3
2
1
0
カウンタコントロール
レジスタ ch0
CLKS CMS1 CMS0 CES1 CES0 (CCRH0)
12
11
10
9
8
カウンタコントロール
レジスタ ch1
CLKS CMS1 CMS0 CES1 CES0 (CCRH1)
12
11
10
9
8
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.3.1
カウンタコントロールレジスタ H/L ch0 (CCRH0/
CCRL0 )
ここでは , カウンタコントロールレジスタ ハイ / ロー ch0(Counter Control
Register High/Low ch0) について示します。
■ カウンタコントロールレジスタ H/L ch0(CCRH0/CCRL0)
カウンタコントロールレジスタ H/L ch0 のレジスタ構成は以下のとおりです。
bit
15
アドレス : 000060H M16E
R/W
7
000061H
−
14
13
12
CDCF
R/W
CFIE
R/W
CLKS
R/W
6
5
4
11
10
CMS1 CMS0
R/W
R/W
3
9
8
CES1
R/W
CES0
R/W
2
1
CTUT UCRE RLDE UDCC CGSC CGE1
R/W
R/W
R/W
W
R/W
R/W
0
CGE0
R/W
初期値
00000000B
初期値
-000X000B
[ ビット 15] M16E:16 ビットモード許可設定ビット
8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。
M16E
16 ビットモード許可設定
0
8 ビット× 2 チャネル動作モード ( 初期値 )
1
16 ビット× 1 チャネル動作モード
[ ビット 14] CDCF: カウント方向転換フラグ
カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン
ト方向がアップ→ダウンまたはダウン→アップに切り換わった場合に "1" にセット
されます。
• "0" の書込みでクリアされます。
• "1" の書込みは無視され , 本ビットの値は変化しません。
CDCF
方向転換検出
0
方向転換は行われていない ( 初期値 )
1
方向転換が 1 回以上行われた
[ ビット 13] CFIE: カウント方向転換割込みイネーブルビット
CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。カ
ウント起動中に一度でもカウント方向が切り換わった場合に割込みを発生します。
CFIE
方向転換割込み出力
0
方向転換割込み出力禁止 ( 初期値 )
1
方向転換割込み出力許可
169
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
[ ビット 12] CLKS: 内蔵プリスケーラ選択ビット
タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。
タイマモードでのみ有効で , このときはダウンカウントのみとなります。
CLKS
選択内部クロック
0
2 マシンサイクル ( 初期値 )
1
8 マシンサイクル
[ ビット 11, ビット 10] CMS1, CMS0: カウントモード選択ビット
カウントモードを選択するビットです。
CMS1
CMS0
0
0
タイマモード〔ダウンカウント〕( 初期値 )
0
1
アップ / ダウンカウントモード
1
0
位相差カウントモード 2 逓倍
1
1
位相差カウントモード 4 逓倍
カウントモード
[ ビット 9, ビット 8] CES1, CES0: カウントクロックエッジ選択ビット
アップ / ダウンカウントモード時において , 外部端子 AIN および BIN の検出エッジ
を選択するビットです。
アップ / ダウンカウントモード以外では , この設定は無効です。
CES1
CES0
0
0
エッジ検出禁止 ( 初期値 )
0
1
立下りエッジ検出
1
0
立上りエッジ検出
1
1
立上り / 立下り両エッジ検出
選択エッジ
[ ビット 6] CTUT: カウンタライトビット
RCR から UDCR へのデータ転送を行います。
このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。
"0" の書込みは無効であり , 読出し値は常に "0" です。
カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな
いでください。
170
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
[ ビット 5] UCRE:UDCR クリアイネーブルビット
コンペアによる UDCR のクリアを制御するビットです。
コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) に
は影響しません。
UCRE
コンペアによるカウンタのクリア
0
カウンタクリア禁止 ( 初期値 )
1
カウンタクリア許可
[ ビット 4] RLDE: リロードイネーブルビット
リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ
フローを発生した場合に RCR の値を UDCR に転送します。
RLDE
リロード機能
0
リロード機能禁止 ( 初期値 )
1
リロード機能許可
[ ビット 3] UDCC:UDCR クリアビット
UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が 0000H に
クリアされます。
"1" の書込みは無効であり , 読出し値は不定です。
[ ビット 2] CGSC: カウンタクリア / ゲート選択ビット
外部端子 ZIN の機能を選択するビットです。
CGSC
ZIN の機能
0
カウンタクリア機能 ( 初期値 )
1
ゲート機能
[ ビット 1, ビット 0] CGE1, CGE0: カウンタクリア / ゲートエッジ選択ビット
外部端子 ZIN の検出エッジ / レベルを選択するビットです。
CGE1
CGE0
0
0
エッジ検出禁止 ( 初期値 )
レベル検出禁止 ( カウントディセーブル )
0
1
立下りエッジ
"L" レベル
1
0
立上りエッジ
"H" レベル
1
1
設定禁止
設定禁止
カウンタクリア機能選択時
ゲート機能選択時
171
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.3.2
カウンタコントロールレジスタ H/L ch1 (CCRH1/
CCRL1)
ここでは , カウンタ制御レジスタ H/L ch1(Counter Control Register High/Low
ch1) について示します。
■ カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1)
カウンタ制御レジスタ H/L ch1 のレジスタ構成は以下のとおりです。
bit
アドレス : 000064H
15
14
13
12
−
R/W
CDCF
R/W
CFIE
R/W
CLKS
R/W
6
5
4
7
000065H
−
11
10
CMS1 CMS0
R/W
R/W
3
2
9
8
CES1
R/W
CES0
R/W
1
CTUT UCRE RLDE UDCC CGSC CGE1
R/W
R/W
R/W
W
R/W
R/W
0
CGE0
R/W
初期値
-0000000B
初期値
-000X000B
各ビットの詳細は ,「6.3.1 カウンタコントロールレジスタ H/L ch0 (CCRH0/CCRL0 )」
を参照してください。
172
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.3.3
カウンタステータスレジスタ 0/1(CSR 0, CSR1)
ここでは , カウンタステータスレジスタ (Counter Status Register 0/1) について示
します。
■ カウンタステータスレジスタ 0/1(CSR 0, CSR1)
カウンタステータスレジスタ 0/1 のレジスタ構成は以下のとおりです。
bit
7
アドレス : 000063H CSTR
000067H R/W
6
5
CITE
R/W
UDIE
R/W
4
3
CMPF OVFF
R/W
R/W
2
1
0
UDFF
R/W
UDF1
R
UDF0
R
初期値
00000000B
[ ビット 7] CSTR: カウント起動ビット
UDCR のカウント動作の起動 / 停止を制御するビットです。
CSTR
動作内容
0
カウント動作停止 ( 初期値 )
1
カウント動作起動
[ ビット 6] CITE: コンペア割込み出力制御ビット
CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行う
かの許可 / 禁止を制御するビットです。
CITE
コンペア割込み出力
0
コンペア割込み出力禁止 ( 初期値 )
1
コンペア割込み出力許可
[ ビット 5] UDIE: オーバフロー / アンダフロー割込み出力制御ビット
OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU
への割込み出力を行うかの許可 / 禁止を制御するビットです。
UDIE
オーバフロー / アンダフロー割込み出力
0
オーバフロー / アンダフロー割込み出力の禁止 ( 初期値 )
1
オーバフロー / アンダフロー割込み出力の許可
173
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
[ ビット 4] CMPF: コンペア検出フラグ
UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。
"0" の書込みのみ可能で , "1" の書込みはできません。
CMPF
フラグ内容
0
比較結果が一致していない ( 初期値 )
1
比較結果が一致した
[ ビット 3] OVFF: オーバフロー検出フラグ
オーバフローの発生を示すフラグです。
"0" の書込みのみ可能で , "1" の書込みはできません。
OVFF
フラグ内容
0
オーバフローなし ( 初期値 )
1
オーバフローあり
[ ビット 2] UDFF: アンダフロー検出フラグ
アンダフローの発生を示すフラグです。
"0" の書込みのみ可能で , "1" の書込みはできません。
UDFF
フラグ内容
0
アンダフローなし ( 初期値 )
1
アンダフローあり
[ ビット 1, ビット 0] UDF1, UDF0: アップダウンフラグ
直前のカウント動作 ( アップ / ダウン ) を示すビットです。
読出しのみ可能で , 書込みはできません。
174
UDF1
UDF0
0
0
入力なし ( 初期値 )
0
1
ダウンカウント
1
0
アップカウント
1
1
アップ / ダウン同時発生
検出エッジ
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.3.4
アップダウンカウントレジスタ 0/1(UDCR0, UDCR1)
ここでは , アップダウンカウントレジスタ 0/1(Up Down Count Register 0/1) につい
て示します。
■ アップダウンカウントレジスタ 0/1(UDCR 0, UDCR1)
アップダウンカウントレジスタ 0/1 のレジスタ構成は以下のとおりです。
bit
15
14
13
12
11
10
9
8
アドレス : 00005EH
UDCR1
D15
R
D14
R
D13
R
D12
R
D11
R
D10
R
D09
R
D08
R
7
6
5
4
3
2
1
0
00005FH
UDCR0
D07
R
D06
R
D05
R
D04
R
D03
R
D02
R
D01
R
D00
R
初期値
00000000B
初期値
00000000B
本レジスタは , 8 ビットカウントレジスタです。内部プリスケーラまたは AIN 端子 , BIN
端子の入力によってアップ / ダウンカウント動作を行います。また , 16 ビットカウン
トモードでは , 16 ビットカウントレジスタとして動作します。この場合 , 上位 8 ビット
側の制御レジスタの設定値は動作上無効になります。
本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場
合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に
書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本
レジスタに転送されます ( ソフトウェアによるリロード )。
本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。
175
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.3.5
リロード / コンペアレジスタ 0/1(RCR 0, RCR1)
ここでは , リロード / コンペアレジスタ 0/1(Reload/Compare Register 0/1) につい
て示します。
■ リロード / コンペアレジスタ 0/1(RCR 0, RCR1)
リロード / コンペアレジスタ 0/1 のレジスタ構成は以下のとおりです。
bit
15
14
13
12
11
10
9
8
アドレス : 00005CH
RCR1
D15
W
D14
W
D13
W
D12
W
D11
W
D10
W
D09
W
D08
W
7
6
5
4
3
2
1
0
00005DH
RCR0
D07
W
D06
W
D05
W
D04
W
D03
W
D02
W
D01
W
D00
W
初期値
00000000B
初期値
00000000B
本レジスタは , 8 ビットリロード / コンペアレジスタです。本レジスタにより , リロー
ド値およびコンペア値を設定します。リロード値とコンペア値は同一であり , リロード
機能およびコンペア機能を起動することで 00H ∼本レジスタ値の間(16ビット動作モー
ド :0000H ∼本レジスタ値 ) でアップ / ダウンカウントが可能になります。
本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR0, CCR1
レジスタの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送す
ることが可能です ( ソフトウェアによるリロード )。
本レジスタは , 16 ビットを一度に書き込んでください。
176
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.4
カウントモード選択の動作
本タイマ / カウンタには , 4 種類のカウントモードがあります。これらのカウント
モードの選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。
■ カウントモード選択
表 6.4-1 に , カウントモード選択を示します。
表 6.4-1 カウントモード選択
CMS1, CMS0
カウントモード
00B
タイマモード〔ダウンカウント〕
01B
アップ / ダウンカウントモード
10B
位相差カウントモード 2 逓倍
11B
位相差カウントモード 4 逓倍
■ タイマモード〔ダウンカウント〕
タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内蔵プリスケー
ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ
イクルの選択が可能です。
■ アップ / ダウンカウントモード
アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ
とでアップ / ダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端
子の入力はダウンカウントをそれぞれ制御します。
表 6.4-2 に示すように , AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタ
の CES1, CES0 ビットによって検出エッジの選択が可能です。
表 6.4-2 検出エッジ選択
CES1, CES0
検出エッジ
00B
エッジ検出禁止
01B
立下りエッジ検出
10B
立上りエッジ検出
11B
立下り / 立上り両エッジ検出
177
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
■ 位相差カウントモード (2 逓倍 /4 逓倍 )
位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする
ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを , BIN 端子の入力エッジ
検出時に AIN 端子の入力レベルを検出し , カウントを行います。
2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN 端子
の方が早い場合にアップカウントを, BIN端子の方が早い場合にダウンカウントを行い
ます。
● 2 逓倍モード
2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の
値を検出することで , 以下のようにカウントを行います。
• BIN 端子の立上りエッジで検出した AIN 端子の値が "H" の場合 , アップカウント
• BIN 端子の立上りエッジで検出した AIN 端子の値が "L" の場合 , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "H" の場合 , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "L" の場合 , アップカウント
図 6.4-1 に , 位相差カウントモード (2 逓倍 ) の動作概略を示します。
図 6.4-1 位相差カウントモード (2 逓倍 ) 動作概略
AIN 端子
↑
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
BIN 端子
カウント値
0
+1
1
+1
2
+1
3
+1
4
+1
5
-1
4
+1
5
-1
4
-1
3
-1
2
-1
1
-1
0
● 4 逓倍モード
4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を
検出し , また AIN 端子の立上り / 立下り両方のエッジのタイミングで BIN 端子の値を
検出することで , 以下のようにカウントを行います。
• BIN 端子の立上りエッジで検出した AIN 端子の値が "H" の場合 , アップカウント
• BIN 端子の立上りエッジで検出した AIN 端子の値が "L" の場合 , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "H" の場合 , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "L" の場合 , アップカウント
• AIN 端子の立上りエッジで検出した BIN 端子の値が "H" の場合 , ダウンカウント
• AIN 端子の立上りエッジで検出した BIN 端子の値が "L" の場合 , アップカウント
• AIN 端子の立下りエッジで検出した BIN 端子の値が "H" の場合 , アップカウント
• AIN 端子の立下りエッジで検出した BIN 端子の値が "L" の場合 , ダウンカウント
178
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
図 6.4-2 に , 位相差カウントモード (4 逓倍 ) の動作概略を示します。
図 6.4-2 位相差カウントモード (4 逓倍 ) 動作概略
AIN 端子
↓ ↑↓ ↑ ↓ ↑↓ ↑ ↓ ↑ ↑ ↑ ↑ ↓ ↑ ↓↑ ↓ ↑ ↓↑
BIN 端子
カウント値
+1 +1+1 +1
0 1 2 3 4
+1 +1 +1 +1 +1
5
6 7 8
9
+1
10
-1
9
+1
10
-1
9
-1
8
-1 -1 -1 -1 -1 -1 -1
7 6 5 4
3 2 1
エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN
端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出等が可
能です。
なお , このカウントモード選択時は , CCRH の CES1, CES0 による検出エッジの選択は
無効です。
179
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
リロード / コンペア機能の動作
6.5
本カウンタには , リロード機能およびコンペア機能があります。この 2 つの機能は
組み合わせて処理を行うことが可能です。
■ リロード / コンペア機能
表 6.5-1 に , リロード / コンペア機能の組合せの設定例を示します。
表 6.5-1 リロード / コンペア機能選択の例
RLDE, UCRE
リロード / コンペア機能
00B
リロード / コンペア禁止 ( 初期値 )
01B
コンペア許可
10B
リロード許可
11B
リロード / コンペア許可
■ リロード機能起動時
リロード機能起動時は,アンダフロー発生の次のダウンカウントクロックのタイミング
で RCR の値を UDCR に転送します。このとき , UDFF がセットされると共に割込み要
求を発生します。
ダウンカウントを行わないモードでは , 本機能の起動は無効となります。
図 6.5-1 に , リロード機能の動作概略を示します。
図 6.5-1 リロード機能動作概略
(0FFFFH)
0FFH
リロード,割込み発生
リロード,割込み発生
RCR
00H
アンダフロー
180
アンダフロー
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
■ コンペア機能起動時
コンペア機能は , タイマモード以外のすべてのモードで使用可能です。コンペア機能起
動時は , RCR と UDCR の値が一致した場合に , CMPF がセットされると共に割込み要
求を発生します。また , コンペアクリア機能起動時は , その次のアップカウントクロッ
クのタイミングで UDCR をクリアします。
アップカウントを行わないモードでは , 本機能の起動は無効となります。
図 6.5-2 に , コンペア機能の動作概略を示します。
図 6.5-2 コンペア機能動作概略
(0FFFFH)
0FFH
コンペア一致
コンペア一致
RCR
00H
カウンタクリア,割込み発生
カウンタクリア,割込み発生
■ リロード / コンペア機能同時起動時
リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。
リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま
た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。
この両機能を利用して , 0000H ∼ RCR の値の間でアップ / ダウンカウントを行います。
図 6.5-3 に , リロード / コンペア機能同時起動時の動作概略を示します。
図 6.5-3 リロード / コンペア機能同時起動時動作概略
0FFH
コンペア一致
コンペア一致
リロード
リロード
アンダフロー
アンダフロー
リロード
コンペア一致
RCR
00H
カウンタクリア カウンタクリア
アンダフロー
カウンタクリア
コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが
できます。
また , これらの割込み出力のイネーブルは個別に制御可能です。
181
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
UDCR に対しリロードおよびクリアを行う場合のタイミングについて , カウント起動
中と停止中では異なります。
• カウント動作中にリロードまたはクリアのイベントが発生した場合は , すべてカウ
ントクロックに同期して行われます ( 図は 0080H をリロードした場合 )。
065H
UDCR
066H
080H
リロード/
クリアイベント
081H
このクロックに同期する
カウント
クロック
• カウント動作中にリロードおよびクリアのイベントが発生した場合で , カウントク
ロック同期待ち ( 同期させるためのカウント入力を待っている状態 ) のままカウン
トを停止させた場合は , 停止した時点でリロードおよびクリアが行われます ( 図は
0080H をリロードした場合 )。
UDCR
065H
066H
080H
リロード/
クリアイベント
カウント
クロック
カウント
イネーブル
イネーブル(カウント許可)
ディセーブル(カウント禁止)
• カウント停止中にリロードおよびクリアのイベントが発生した場合は , イベント発
生時点で行われます ( 図は 0080H をリロードした場合 )。
UDCR
065H
080H
リロード/
クリアイベント
コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン
トが行われた場合にクリアが行われます。UDCR と RCR の値が一致した場合において
も , その後ダウンカウントやカウント停止になった場合は , クリアは行われません。
クリア / リロードのタイミングについて , クリアについてはリセット入力以外のすべて
のイベントで , またリロードもすべてのイベントにおいて上記タイミングに従います。
クリアイベントとリロードイベントが同時期に発生した場合はクリアイベントが優先
となります。
182
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
6.6
アップダウンカウントレジスタ (UDCR0, UDCR1) への
データの書込み
アップダウンカウントレジスタ (UDCR) へは , データバスから直接データを書き込
むことはできません。ここでは , 書込みの手順 , カウンタのクリアおよびフラグなど
について示します。
■ アップダウンカウントレジスタ (UDCR) へのデータの書込み
UDCR に任意のデータを書き込む場合は , 以下のような手順で書き込む必要がありま
す。
1)UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注
意 )。
2)CCR の CTUT に "1" を書き込むことにより , RCR から UDCR にデータが転送される。
以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" の場合 ) に行ってください。
カウンタのクリアについては , 上記以外の方法以外に以下のような方法があります。
• リセット入力によるクリア ( 初期化 )
• ZIN 端子からのエッジ入力によるクリア
• CCR の UDCC に "0" を書き込むことによるクリア
• コンペア機能によるクリア
これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。
■ カウントクリア / ゲート機能
ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート
機能を選択して使用可能です。
カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子
のどのエッジ入力でカウントクリアを行うかを CCRL レジスタの CGE1, CGE0 ビット
で制御可能です。
ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。
ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ
トで制御可能です。
本機能は , すべてのモードで有効です。
表 6.6-1 に , ZIN 端子の機能選択を示します。
表 6.6-1 ZIN 端子機能選択
CGSC
ZIN 端子の機能
CGE1, CGE0
0
カウンタクリア機能
00B
検出禁止
検出禁止
1
ゲート機能
01B
立上りエッジ
"L" レベル
10B
立下りエッジ
"H" レベル
カウンタクリア機能時
ゲート機能時
183
第 6 章 8/16 ビットアップダウン カウンタ / タイマ
■ カウント方向フラグ
カウント方向フラグ (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウント
がアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端子
の入力から生成されたカウントクロックから判断して,カウントのたびにフラグを書き
換えます。モータの制御等で , 現在の回転方向を知りたい場合等にこのフラグをみるこ
とで回転方向を判別できます。
表 6.6-2 に , カウント方向フラグを示します。
表 6.6-2 カウント方向フラグ
UDF1, UDF0
カウント方向
01B
ダウンカウント
10B
アップカウント
11B
アップ / ダウン同時発生 ( カウント動作は行われない )
■ カウント方向転換フラグ
カウント方向転換フラグ (CDCF) は , カウント方向がアップ ↔ ダウンで切り換わった
場合にセットされます。また , このフラグがセットされると同時に CPU に対して割込
み要求を発生させることができます。この割込みとカウント方向フラグを参照するこ
とにより , カウント方向がどちらからどちらへ変化したかを判断することができます。
ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの
示す方向が元に戻り同一方向となる場合がありますので注意が必要です。
表 6.6-3 に , カウント方向転換フラグを示します。
表 6.6-3 カウント方向転換フラグ
CDCF
カウント方向転換検出
0
方向転換なし
1
方向転換あり (1 回以上 )
■ コンペア検出フラグ
コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく
なった場合にセットされます。カウントアップ一致のほか , リロードイベント発生によ
る一致 , カウント起動時にすでに一致している場合もセットされます。
ただし , ダウンカウントにより一致した場合 ( アンダフローによるリロードでのコンペ
アは除く ) は , 一致とみなしません。この場合 , フラグはセットされません。
■ 8 ビット× 2 チャネル , 16 ビット× 1 チャネル動作
このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネルまたは 16 ビットアッ
プダウンカウンタ× 1 チャネルとして使用できます。CCRH0 レジスタの M16E ビット
に "0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むこと
により , 16 ビット× 1 チャネルモードとなります。
16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0, レジスタが有効と
なり, CSR1, CCRL1, CCRH1レジスタは使用できません。また, 入力端子は, AIN0, BIN0,
ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使われません。
184
第7章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , ブ
ロックダイヤグラム , レジスタの構成 / 機能および
16 ビットリロードタイマの動作について説明しま
す。
7.1 16 ビットリロードタイマの概要
7.2 16 ビットリロードタイマのブロックダイヤグラム
7.3 16 ビットリロードタイマのレジスタ一覧
7.4 内部クロック動作
7.5 アンダフロー動作
7.6 カウンタの動作状態
185
第 7 章 16 ビットリロードタイマ
7.1
16 ビットリロードタイマの概要
16 ビットリロードタイマは , 以下により構成されています。
• 16 ビットのダウンカウンタ
• 16 ビットのリロードレジスタ
• 内部カウントクロック作成用プリスケーラ
• コントロールレジスタ
■ 16 ビットリロードタイマの特長
• 入力クロックとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ) から選択
できます。
• 割込みによる DMA 転送の起動が可能です。
• 本品種は , 本タイマを 4 チャネル内蔵しています。
• リロードタイマの ch2 の TO 出力は , LSI 内部で A/D コンバータに接続されていま
す。したがって , リロードレジスタに設定された周期で A/D 変換を起動することが
可能です。
186
第 7 章 16 ビットリロードタイマ
16 ビットリロードタイマのブロックダイヤグラム
7.2
図 7.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
■ 16 ビットリロードタイマのブロックダイヤグラム
図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビット リロードレジスタ
8
リロード
RELD
16
OUTE
16ビットダウンカウンタ UF
R-bus
2
OUT
CTL.
GATE
OUTL
2
INTE
CSL1
UF
CSL0
CNTE
IRQ
クロックセレクタ
2
TRG
IN CTL.
φ
φ
φ
- - -
21 23 25
リトリガ
3
プリスケーラ
クリア
PWM (ch0,ch1)
A/D (ch2)
MOD2
MOD1
φ 内部クロック
MOD0
3
187
第 7 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタ一覧
7.3
図 7.3-1 に , 16 ビットリロードタイマのレジスタ一覧を示します。
■ 16 ビットリロードタイマのレジスタ一覧
図 7.3-1 16 ビットリロードタイマのレジスタ一覧
15
14
13
12
11
10
-
-
-
-
CSL1
CSL0
7
6
5
4
3
2
1
0
RELD
INTE
UF
CNTE
TRG
MOD0 OUTE OUTL
15
9
8
コントロールステータスレジスタ
MOD2 MOD1 (TMCSR0 ∼ TMCSR3)
0 16 ビットタイマレジスタ
(TMR0 ∼ TMR3)
15
0 16 ビットリロードレジスタ
(TMRLR0 ∼ TMRLR3)
188
第 7 章 16 ビットリロードタイマ
7.3.1
コントロールステータスレジスタ (TMCSR0 ∼
TMCSR3)
コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3) は , 16 ビットタイマの動
作モードおよび割込みの制御をします。
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにして
ください。
同時書込みは可能です。
■ コントロールステータスレジスタ (TMCSR0 ∼ TMCSR3)
コントロールステータスレジスタ (TMCSR) のレジスタ構成は以下のとおりです。
TMCSR
11
10
9
8
7
6
5
4
3
アドレス :
000032H CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
00003AH R/W R/W R/W R/W R/W R/W R/W R/W R/W
000042H
00004AH
2
1
0
UF CNTE TRG
R/W R/W R/W
初期値
-000H
[ ビット 11, ビット 10] CSL1, CSL0(Conut clock SeLect)
カウントクロックセレクトビットです。
選択されるクロックソースを , 表 7.3-1 に示します。
表 7.3-1 CSL ビット設定クロックソース
CSL1
CSL0
0
0
φ/21
0
1
φ/23
1
0
φ/25
1
1
設定禁止
クロックソース (φ: マシンクロック )
[ ビット 9, ビット 8, ビット 7] MOD2, MOD1, MOD0 (MODe)
動作モードを設定するビットです。
必ず "0" を設定してください。
[ ビット 6] OUTE (OUTput Enable)
出力許可ビットです。"0" のとき , TO 端子は汎用ポートになり , "1" のとき , TO 端
子はタイマ出力端子になります。
出力波形は , リロードモード時はトグル出力となり , ワンショットモード時はカウ
ント中を示す矩形波出力になります。
[ ビット 5] OUTL
TO端子の出力レベルを設定するビットです。本ビットが"0"のときと"1"のときでは,
端子レベルが逆になります。
189
第 7 章 16 ビットリロードタイマ
[ ビット 4] RELD
リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H
→ FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロード
してカウント動作を続けます。
"0" のときカウンタの値が 0000H → FFFFH へのアンダフローによりカウント動作を
停止します。
表 7.3-2 OUTE, OUTL, RELD の設定方法
OUTE
OUTL
RELD
0
×
×
汎用ポート
1
0
0
カウント中 "H" の矩形波
1
1
0
カウント中 "L" の矩形波
1
0
1
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
注 ) 表中の " × " は , 任意の値を示します。
[ ビット 3] INTE
割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発
生します。"0" のときは , 割込み要求を発生しません。
[ ビット 2] UF
タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフロー
により "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" の書込みは , 意味がありません。
リードモディファイライト系命令における読出し時には , "1" が読み出されます。
[ ビット 1] CNTE
タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動ト
リガ待ち状態になります。"0" の書込みによりカウント動作は停止します。
[ ビット 0] TRG
ソフトウェアトリガビットです。"1" の書込みによりソフトウェアトリガがかかり ,
リロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。
このレジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。
CNTE=0 のときには , 何も起こりません。
190
第 7 章 16 ビットリロードタイマ
16 ビットタイマレジスタ (TMR0 ∼ TMR3)/16 ビット
リロードレジスタ (TMRLR0 ∼ TMRLR3)
7.3.2
16 ビットタイマレジスタ (TMR0 ∼ TMR3) は , 16 ビットタイマのカウント値を読み
出すことができるレジスタです。初期値は不定です。
16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3) は , カウントの初期値を保持し
ておくレジスタです。初期値は不定です。
■ 16 ビットタイマレジスタ (TMR0 ∼ TMR3)
16 ビットタイマレジスタ (TMR) のレジスタ構成を以下に示します。
TMR
初期値
0
~ ~
~ ~
アドレス : 15
00002EH
000036H
00003EH
000046H
R
R
R
R
...
R
R
R
R
R
X
X
X
X
...
X
X
X
X
X
<注意事項>
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3)
16 ビットリロードレジスタ (TMRLR) のレジスタ構成を以下に示します。
TMRLR
初期値
0
~ ~
~ ~
アドレス : 15
00002CH
000034H
00003CH
000044H
W
W
W
W
...
W
W
W
W
W
X
X
X
X
...
X
X
X
X
X
<注意事項>
このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行ってください。
191
第 7 章 16 ビットリロードタイマ
7.4
内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2, 8, 32 分周のクロックから選択することができます。
■ 内部クロック動作
カウント許可と同時にカウント動作を開始したい場合は,コントロールステータスレジ
スタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。TRG ビットに
よるトリガ入力は , タイマが起動状態のとき (CNTE="1") 動作モードにかかわらず常に
有効です。
カウンタの起動 , カウンタの動作について , 図 7.4-1 に示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T(T: 周辺系クロックマシンサイクル ) の時間がかかります。
図 7.4-1 カウンタの起動および動作
カウントクロック
カウンタ
リロードデータ
データロード
CNTE(レジスタ)
TRG(レジスタ)
T
192
-1
-1
-1
第 7 章 16 ビットリロードタイマ
7.5
アンダフロー動作
カウンタの値が 0000H から FFFFH になる場合をアンダフローとしています。した
がって ,〔リロードレジスタの設定値 +1〕カウントでアンダフローが発生すること
になります。
■ アンダフロー動作
アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ
スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の
ときカウンタは , FFFFH で停止します。
アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが
"1" のとき割込み要求を発生します。
図 7.5-1 に , アンダフロー動作について示します。
図 7.5-1 アンダフロー動作
カウントクロック
カウンタ
0000H
リロードデータ
-1
-1
-1
データロード
アンダフローセット
[RELD=1]
カウントクロック
カウンタ
0000H
FFFFH
アンダフローセット
[RELD=0]
193
第 7 章 16 ビットリロードタイマ
■ 出力端子機能
TO0 ∼ TO3 出力端子は , リロードモード時はアンダフローにより反転するトグル出力
として , ワンショットモード時はカウント中を示すパルス出力として機能します。出力
極性は , レジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は ,
初期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 に
すると出力波形は , 反転します。
図 7.5-2 および図 7.5-3 に , 出力端子機能を示します。
図 7.5-2 16 ビットリロードタイマの出力端子機能 (1)
カウント開始
アンダフロー
TO0~TO3
OUTL=1のときは反転
汎用ポート
CNTE
起動トリガ
[RELD=1, OUTL=0]
図 7.5-3 16 ビットリロードタイマの出力端子機能 (2)
カウント開始
アンダフロー
TO0~TO3
OUTL=1のときは反転
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
[RELD=0, OUTL=0]
194
第 7 章 16 ビットリロードタイマ
カウンタの動作状態
7.6
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号
によって決まっています。設定可能な状態として CNTE=0, WAIT=1 の停止状態
(STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1,
WAIT=0 の動作状態 (RUN 状態 ) があります。
■ カウンタの動作状態
各状態の遷移を , 図 7.6-1 に示します。
図 7.6-1 カウンタ状態遷移
ハードウェアによる状態遷移
リセット
レジスタアクセスによる状態遷移
STOP
CNTE=0,WAIT=1
カウンタ:停止時の値を保持
リセット直後は不定
CNTE=1
TRG=0
WAIT
CNTE=1
TRG=1
CNTE=1,WAIT=1
RUN
カウンタ:停止時の値を保持
リセット直後ロードするまで
は不定
カウンタ:動作
RELD・UF
TRG=1
LOAD
CNTE=1,WAIT=0
TRG=1
CNTE=1,WAIT=0
リロードレジスタの内容をカウンタへロード
RELD・UF
ロード終了
195
第 7 章 16 ビットリロードタイマ
196
第8章
PPG タイマ
この章では , PPG タイマの概要 , ブロックダイヤ
グラム , レジスタの構成 / 機能および PPG タイマ
の動作について説明します。
8.1 PPG タイマの概要
8.2 PPG タイマのブロックダイヤグラム
8.3 PPG タイマのレジスタ
8.4 PWM 動作
8.5 ワンショット動作
8.6 PWM タイマの割込み要因とタイミングチャート
8.7 ジェネラルコントロールレジスタを使った複数チャネル
の起動
197
第 8 章 PPG タイマ
8.1
PPG タイマの概要
PPG タイマは , 精度の高い PWM 波形を効率良く出力することができます。
MB91151A は , PPG タイマを 6 チャネル内蔵しています。
各チャネルは , 以下のものから構成されています。
• 16 ビットダウンカウンタ
• 周期設定用バッファ付 16 ビットデータレジスタ
• デューティ設定用バッファ付 16 ビットコンペアレジスタ
• 端子制御部
■ PPG タイマの特長
• 16 ビットダウンカウンタのカウントクロックは , 以下の 4 種類から選択が可能です。
- 内部クロック :φ
- 内部クロック :φ/4
- 内部クロック :φ/16
- 内部クロック :φ/64
• カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。
• チャネルごとに PWM 出力があります。
• レジスタ
- 周期設定レジスタ : バッファ付 , リロード用データレジスタです。
- デューティ設定レジスタ : バッファ付 , コンペアレジスタです。
- バッファからの転送は , カウンタボローで行います。
• 端子制御
- デューティ一致で , "1" にセットします ( 優先 )。
- カウンタボローで , "0" にリセットします。
- 出力値固定モードがあり , オール "L"( または "H") を簡単に出力できます。
- 極性指定も可能です。
• 割込み要求は , 以下の組合せから選択して発生することができます。また , 割込み
要求によって , DMA 転送起動が可能です。
- 本タイマ起動
- カウンタボロー発生 ( 周期一致 )
- デューティ一致発生
- カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
• ソフトウェアまたは , ほかのインターバルタイマで複数チャネルの同時起動が設定
できます。また , 動作中の再起動も設定可能です。
198
第 8 章 PPG タイマ
8.2
PPG タイマのブロックダイヤグラム
図 8.2-1 に PPG タイマ全体 , 図 8.2-2 に PPG タイマ 1 チャネル分の , ブロックダイ
ヤグラムを示します。
■ PPG タイマ全体のブロックダイヤグラム
図 8.2-1 PPG タイマ全体のブロックダイヤグラム
16ビットリロード
タイマ ch0
TRG入力
PWMタイマ
ch0
TRG入力
PWMタイマ
ch1
TRG入力
PWMタイマ
ch2
TRG入力
PWMタイマ
ch3
外部TRG4
TRG入力
PWMタイマ
ch4
外部TRG5
TRG入力
PWMタイマ
ch5
PWM0
ジェネラル
16ビットリロード
タイマ ch1
コントロール
レジスタ1
ジェネラル
コントロール
レジスタ2
外部TRG0~TRG3
4
(要因選択)
4
PWM1
PWM2
PWM3
PWM4
PWM5
199
第 8 章 PPG タイマ
■ PPG タイマ 1 チャネル分のブロックダイヤグラム
図 8.2-2 PPG タイマ 1 チャネル分のブロックダイヤグラム
PCSR
PDUT
プリスケーラ
1/1
1/4
クロック
ロード
CMP
1/16
1/64
16ビット
ダウンカウンタ
周辺系クロック
スタート ボロー
PPGマスク
S
Q
PWM出力
R
反転ビット
T R G 入力
エッジ検出
ソフトトリガ
200
割込み選択
イネーブル
IRQ
第 8 章 PPG タイマ
8.3
PPG タイマのレジスタ
図 8.3-1 に , PPG タイマのレジスタ一覧を示します。
■ PPG タイマのレジスタ一覧
図 8.3-1 PPG タイマのレジスタ一覧
アドレス
15
0
R/W ジェネラルコントロールレジスタ 1
GCN1
00000094H
00000097H
GCN2
R/W ジェネラルコントロールレジスタ 2
00000098H
PTMR0
R
ch0 PWM タイマレジスタ
0000009AH
PCSR0
W
ch0 PWM 周期設定レジスタ
0000009CH
PDUT0
W
ch0 PWM デューティ設定レジスタ
0000009EH
PCNH0
PCNL0
R/W ch0 コントロールステータスレジスタ
000000A0H
PTMR1
R
ch1 PWM タイマレジスタ
000000A2H
PCSR1
W
ch1 PWM 周期設定レジスタ
000000A4H
PDUT1
W
ch1 PWM デューティ設定レジスタ
000000A6H
PCNH1
PCNL1
R/W ch1 コントロールステータスレジスタ
000000A8H
PTMR2
R
ch2 PWM タイマレジスタ
000000AAH
PCSR2
W
ch2 PWM 周期設定レジスタ
000000ACH
PDUT2
W
ch2 PWM デューティ設定レジスタ
000000AEH
PCNH2
PCNL2
R/W ch2 コントロールステータスレジスタ
( 続く )
201
第 8 章 PPG タイマ
( 続き )
図 8.3-1 PPG タイマのレジスタ一覧
アドレス
15
0
000000B0H
PTMR3
R
ch3 PWM タイマレジスタ
000000B2H
PCSR3
W
ch3 PWM 周期設定レジスタ
000000B4H
PDUT3
W
ch3 PWM デューティ設定レジスタ
000000B6H
PCNH3
PCNL3
R/W ch3 コントロールステータスレジスタ
000000B8H
PTMR4
R
ch4 PWM タイマレジスタ
000000BAH
PCSR4
W
ch4 PWM 周期設定レジスタ
000000BCH
PDUT4
W
ch4 PWM デューティ設定レジスタ
000000BEH
PCNL4
R/W ch4 コントロールステータスレジスタ
000000C0H
PTMR5
R
ch5 PWM タイマレジスタ
000000C2H
PCSR5
W
ch5 PWM 周期設定レジスタ
000000C4H
PDUT5
W
ch5 PWM デューティ設定レジスタ
000000C6H
202
PCNH4
PCNH5
PCNL5
R/W ch5 コントロールステータスレジスタ
第 8 章 PPG タイマ
8.3.1
コントロールステータスレジスタ (PCNH0 ∼
PCNH5, PCNL0 ∼ PCNL5)
コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) は , PWM
タイマの制御およびステータス表示をします。PWM タイマ動作中に書換え不可能な
ビットがありますので注意してください。
■ コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5)
コントロールステータスレジスタ (PCNH0 ∼ PCNH5, PCNL0 ∼ PCNL5) のレジスタ構
成は以下のとおりです。
PCNH
bit
15
14
13
12
CNTE
STGR
MDSE
RTRG
アドレス : ch0 00009EH
R/W
R/W
R/W
ch1 0000A6H R/W
ch2 0000AEH
0
0
0
0
ch3 0000B6H
○
○
×
×
ch4 0000BEH
ch5 0000C6H
11
CKS1
R/W
10
9
CKS0 PGMS
R/W
R/W
8
-
←属性
0
0
0
-
←初期値
×
×
○
-
←動作中の書換え
1
0
PCNL
bit
7
アドレス : ch0 00009FH EGS1
ch1 0000A7H R/W
ch2 0000AFH
0
ch3 0000B7H
×
ch4 0000BFH
ch5 0000C7H
6
5
4
3
2
EGS0
R/W
IREN
R/W
IRQF
R/W
IRS1
R/W
IRS0
R/W
0
0
0
0
0
×
○
○
×
×
POEN OSEL
R/W
R/W ←属性
0
0
←初期値
×
×
←動作中の書換え
[ ビット 15] CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
0
停止
1
許可
( 初期値 )
[ ビット 14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことによりソフトウェアトリガがかかります。
STGR ビットの読出し値は , 常に "0" です。
[ ビット 13] MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択
します。
0
PWM 動作 ( 初期値 )
1
ワンショット動作
203
第 8 章 PPG タイマ
[ ビット 12] RTRG: 再起動許可ビット
ソフトウェアトリガまたはトリガ入力による再起動を許可するビットです。
0
再起動禁止 ( 初期値 )
1
再起動許可
[ ビット 11, ビット 10] CKS1, CKS0: カウンタクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。
CKS1
CKS0
0
0
φ ( 初期値 )
0
1
φ/4
1
0
φ/16
1
1
φ/64
周期
φ: 周辺系マシンクロック
[ ビット 9] PGMS:PWM 出力マスク選択ビット
このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値
にかかわらず PWM 出力を "0" または "1" にマスクすることができます。以下に ,
PGMS に "1" を書き込んだときの PWM 出力を示します。
極性
PWM 出力
通常極性
"L" 出力
反転極性
"H" 出力
通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期
設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の反
転を出力することができます。
[ ビット 8]
未使用ビットです。
[ ビット 7, ビット 6] EGS1, EGS0: トリガ入力エッジ選択ビット
ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。
どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ
ガは有効になります。
204
第 8 章 PPG タイマ
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
エッジ選択
[ ビット 5] IREN: 割込み要求許可ビット
割込み要求を許可するビットです。
0
禁止
1
許可
( 初期値 )
[ ビット 4] IRQF: 割込み要求フラグ
ビット 5 IREN が許可されていて ビット 3, 2, IRS1, IRS0 にて選択した割込み要因が
発生すると , 本ビットがセットされ CPU に割込み要求を発生します。また , DMA
転送の起動を選択している場合は , DMA 転送が起動されます。
本ビットのクリアは , "0" の書込みと DMAC からのクリア信号で行われます。
"1" を書き込んでもビット値は変化しません。
リードモディファイライト系命令におけるリード値は , ビット値にかかわらず "1"
です。
[ ビット 3, ビット 2] IRS1, IRS0: 割込み要因選択ビット
ビット 4 IRQF をセットする要因を選択します。
IRS1
IRS0
0
0
ソフトウェアトリガまたはトリガ入力あり ( 初期値 )
0
1
カウンタボロー発生 ( 周期一致 )
1
0
デューティ一致発生
1
1
カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
割込み要因
[ ビット 1] POEN: PWM 出力許可ビット
"1" に設定することにより , PWM 出力が端子から出力されます。
0
汎用ポート ( 初期値 )
1
PWM 出力端子
205
第 8 章 PPG タイマ
[ ビット 0] OSEL: PWM 出力極性指定ビット
PWM 出力の極性を設定します。
ビット 9 PGMS との組合せで , 以下のようになります。
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
極性
206
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
PWM 出力
デューティ一致
カウンタボロー
第 8 章 PPG タイマ
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5)
8.3.2
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) は , 周期を設定するための , バッファ付
レジスタです。バッファからの転送は , カウンタボローで行われます。
■ PWM 周期設定レジスタ (PCSR0 ∼ PCSR5)
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5) のレジスタ構成は以下のとおりです。
PCSR
bit
アドレス : ch0 00009AH
ch1 0000A2H
ch2 0000AAH
ch3 0000B2H
ch4 0000BAH
ch5 0000C2H
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
属性 →ライトオンリ
初期値→不定
<注意事項>
• 周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタの書込み後 , 必ず
デューティ設定レジスタへの書込み動作を行ってください。
• 本レジスタは , 16 ビットデータでアクセスしてください。
207
第 8 章 PPG タイマ
PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5)
8.3.3
PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5) は , デューティを設定するための ,
バッファ付レジスタです。バッファからの転送は , カウンタボローで行われます。
■ PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5)
PWM デューティ設定レジスタ (PDUT0∼ PDUT5) のレジスタ構成は以下のとおりです。
PDUT
bit
アドレス : ch0 00009CH
ch1 0000A4H
ch2 0000ACH
ch3 0000B4H
ch4 0000BCH
ch5 0000C4H
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
属性 →ライトオンリ
初期値→不定
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
<注意事項>
• PCSR < PDUT となるような値を設定しないでください。PWM 出力は不定となります。
• 本レジスタは , 16 ビットデータでアクセスしてください。
208
第 8 章 PPG タイマ
PWM タイマレジスタ (PTMR0 ∼ PTMR5)
8.3.4
PWM タイマレジスタ (PTMR0 ∼ PTMR5) は , 16 ビットダウンカウンタの値を読み
出すことができるレジスタです。
■ PWM タイマレジスタ (PTMR0 ∼ PTMR5)
PWM タイマレジスタ (PTMR0 ∼ PTMR5) のレジスタ構成は以下のとおりです。
PTMR 0 ∼ PTMR 5
bit
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
アドレス : ch0 000098H
ch1 0000A0H
ch2 0000A8H
ch3 0000B0H
ch4 0000B8H
ch5 0000C0H
属性 →リードオンリ
初期値→ 11111111 11111111B
<注意事項>
本レジスタは , 16 ビットデータでアクセスしてください。
209
第 8 章 PPG タイマ
8.3.5
ジェネラルコントロールレジスタ 1(GCN1)
ジェネラルコントロールレジスタ 1(GCN1) は , PWM タイマのトリガ入力の要因を
選択するレジスタです。
■ ジェネラルコントロールレジスタ 1(GCN1)
ジェネラルコントロールレジスタ 1(GCN1) のレジスタ構成は以下のとおりです。
GCN1
bit
アドレス : 000094H
bit
15
14
13
12
TSEL 33 ∼ TSEL 30
R/W
R/W
R/W
R/W
11
10
9
8
TSEL 23 ∼ TSEL 20
R/W
R/W
R/W
R/W
0
0
1
1
0
0
1
0
7
6
5
4
3
2
1
0
TSEL 13 ∼ TSEL 10
R/W
R/W
R/W
R/W
0
0
0
1
TSEL 03 ∼ TSEL 00
R/W
R/W
R/W
R/W
0
0
0
0
[ ビット 15 ∼ビット 12] TSEL33 ∼ TSEL30:ch3 トリガ入力選択ビット
TSEL33 ∼ TSEL30
210
ch3 トリガ入力
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット ( 初期値 )
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
×
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
×
×
設定禁止
←属性
←初期値
←属性
←初期値
第 8 章 PPG タイマ
[ ビット 11 ∼ビット 8] TSEL23 ∼ TSEL20:ch2 トリガ入力選択ビット
TSEL23 ∼ TSEL20
ch2 トリガ入力
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット ( 初期値 )
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
×
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
×
×
設定禁止
[ ビット 7 ∼ビット 4] TSEL13 ∼ TSEL10:ch1 トリガ入力選択ビット
TSEL13 ∼ TSEL10
ch1 トリガ入力
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット ( 初期値 )
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
×
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
×
×
設定禁止
211
第 8 章 PPG タイマ
[ ビット 3 ∼ビット 0] TSEL03 ∼ TSEL00:ch0 トリガ入力選択ビット
TSEL03 ∼ TSEL00
212
ch0 トリガ入力
0
0
0
0
GCN2 の EN0 ビット ( 初期値 )
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
×
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
×
×
設定禁止
第 8 章 PPG タイマ
ジェネラルコントロールレジスタ 2(GCN2)
8.3.6
ジェネラルコントロールレジスタ 2(GCN2) は , ソフトウェアによって , 起動トリガ
を発生させるためのレジスタです。
■ ジェネラルコントロールレジスタ 2(GCN2)
ジェネラルコントロールレジスタ 2(GCN2) のレジスタ構成は以下のとおりです。
GCN2
bit
アドレス : 000097H
7
-
6
-
5
-
4
-
3
EN3
2
EN2
1
EN1
0
EN0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
←属性
←初期値
GCN1 で本レジスタの EN ビットを選択した場合 , レジスタの値がそのまま PWM タイ
マのトリガ入力に伝わります。
コントロールステータスレジスタの EGS1, EGS0 ビットで選択したエッジをソフト
ウェアで発生させることにより , 複数チャネルの PWM タイマを同時に起動することが
できます。
<注意事項>
本ビットのビット 7 ∼ビット 4 には , 必ず 0 を書き込んでください。
213
第 8 章 PPG タイマ
8.4
PWM 動作
PWM 動作では , 起動トリガの検出時より連続してパルスを出力することができま
す。
出力パルスの周期は , PCSR 値を変えることにより制御することができ , またデュー
ティ比は , PDUT 値を変えることにより制御できます。
■ PWM 動作
● 再起動禁止の場合
図 8.4-1 に , トリガの再起動を禁止した場合の PWM 動作のタイミングチャートを示し
ます。
図 8.4-1 PWM 動作のタイミングチャート ( トリガ再起動禁止 )
立上りエッジ検出
トリガは無視されます
起動
トリガ
m
n
O
PWM
A
B
T: カウントクロック周期
m: PCSR値
n: PDUT値
214
第 8 章 PPG タイマ
● 再起動許可の場合
図 8.4-2 に , トリガの再起動を許可した場合の PWM 動作のタイミングチャートを示し
ます。
図 8.4-2 PWM 動作のタイミングチャート ( トリガ再起動許可 )
立上りエッジ検出
トリガにより再起動します
起動
トリガ
m
n
O
PWM
A
B
T: カウントクロック周期
m: PCSR値
n: PDUT値
<注意事項>
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
215
第 8 章 PPG タイマ
8.5
ワンショット動作
ワンショット動作では , トリガにより任意の幅の単一パルスを出力することができま
す。
再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。
■ ワンショット動作
● 再起動禁止の場合
図 8.5-1 に , トリガの再起動を禁止した場合のワンショット動作のタイミングチャート
を示します。
図 8.5-1 ワンショット動作のタイミングチャート ( トリガ再起動禁止 )
立上りエッジ検出
トリガは無視されます
起動
トリガ
m
n
O
PWM
A
B
T: カウントクロック周期
m: PCSR値
n: PDUT値
216
第 8 章 PPG タイマ
● 再起動許可の場合
図 8.5-2 に , トリガの再起動を許可した場合のワンショット動作のタイミングチャート
を示します。
図 8.5-2 ワンショット動作のタイミングチャート ( トリガ再起動許可 )
立上りエッジ検出
トリガにより再起動します
起動
トリガ
m
n
O
PWM
A
B
T: カウントクロック周期
m: PCSR値
n: PDUT値
217
第 8 章 PPG タイマ
PWM タイマの割込み要因とタイミングチャート
8.6
ここでは , 割込み要因とタイミングチャートについて示します。
■ PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 )
図 8.6-1 に , PWM タイマの割込み要因とタイミングチャートを示します。
<注意事項>
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T(T: カウントクロッ
ク周期 ) を必要とします。
図 8.6-1 PWM タイマの割込み要因とタイミングチャート (PWM 出力 : 通常極性 )
起動トリガ
最大2.5T
ロード
クロック
カウント値
X
0003
0002
0001
0000
0003
PWM
クロック
有効エッジ
デューティ一致
カウンタボロー
■ PWM 出力オール "L" またはオール "H" の出力方法例
● PWM 出力をオール "L" レベルにする例
図 8.6-2 に , PWM 出力をオール "L" にする出力方法例を示します。
図 8.6-2 PWM 出力をオール "L" レベルにする例
PWM
デューティ値
を小さくして
いく
218
ボローによる割込みでPGMS(マスクビット)に
"1"を書き込みます。
また,ボローによる割込みでPGMS(マスクビット)に
"0"を書き込めば,ヒゲを出力することなく
PWM波形を出力できます。
第 8 章 PPG タイマ
● PWM 出力をオール "H" レベルにする例
図 8.6-3 に , PWM 出力をオール "H" にする出力方法例を示します。
図 8.6-3 PWM 出力をオール "H" レベルにする例
PWM
デューティ値
を大きくして
いく
コンペア一致による割込みでデューティ設定
レジスタに,周期設定レジスタ値と同じ値を
書き込みます。
219
第 8 章 PPG タイマ
8.7
ジェネラルコントロールレジスタを使った複数チャネ
ルの起動
GCN1 レジスタで起動トリガを選択することにより , 複数チャネルを同時に起動するこ
とができます。ここでは , GCN2 レジスタを使ったソフトウェア起動の例を示します。
■ ジェネラルコントロールレジスタを使った複数チャネルの起動
● 設定手順
1)PCSR に周期を設定します。
2)PDUT にデューティを設定します。
必ず PCSR → PDUT の順で書込みを行ってください。
3)GCN1 で , 起動するチャネルのトリガ入力要因を決めます。
ここでは , GCN2 を使うので , 初期設定のままとします。
(ch0 → EN0, ch1 → EN1, ch2 → EN2, ch3 → EN3)
4)起動するチャネルのコントロールステータスレジスタを設定します。
- CNTE:1 → タイマ動作を許可
- STGR:0 → GCN2 で起動するので , ここでは起動しない
- MDSE:0 → PWM 動作
- RTRG:0 → 再起動禁止とする
- CSK1, CSK0:00 → カウントクロック = φ
- PGMS:0 → 出力マスクしない ( ビット 8:0 → 未使用ビット , 何を設定しても構い
ません )
- EGS1, EGS0:01 → 立上りエッジ起動
- IREN:1 → 割込み要求許可
- IRQF:0 → 割込み要因をクリア
- IRS1, IRS0:01 → カウンタボロー発生で割込み要求発生
- POEN:1 → PWM 出力許可
- OSEL:0 → 通常極性
5)GCN2 にデータを書き込むことで , 起動トリガを発生させます。
上記の設定で ch0 と ch1 を同時に起動させる場合 , GCN2 の EN0, EN1 に "1" を書き込
みます。立上りエッジが発生し , PWM0, PWM1 からパルスが出力されます。
● 16 ビットリロードタイマを使用して起動する場合
上記 3) の GCN1 レジスタで要因として 16 ビットリロードタイマを選択し , 5) で GCN2
の代わりに 16 ビットリロードタイマを起動します。
また , コントロールステータスレジスタの設定を以下のようにします。
• RTRG:1 → 再起動許可とする
• EGS1, EGS0:11 → 両エッジ起動
16ビットリロードタイマ出力をトグル出力設定にすることにより,一定時間ごとにPPG
タイマを再起動することも可能です。
220
第9章
多機能タイマ
この章では , 機能タイマの概要 , ブロックダイヤグ
ラム , レジスタの構成 / 機能および機能タイマの動
作について説明します。
9.1 多機能タイマの概要
9.2 多機能タイマのブロックダイヤグラム
9.3 多機能タイマのレジスタ
9.4 多機能タイマユニットの動作
221
第 9 章 多機能タイマ
9.1
多機能タイマの概要
多機能タイマユニットは , 以下のもので構成されています。
• 16 ビットフリーランタイマ 1 本
• 16 ビットアウトプットコンペア 8 本
• 16 ビットインプットキャプチャ 4 本
• 16 ビット PPG タイマ 6 チャネル
本機能を用いることにより 16 ビットフリーランタイマをベースにした波形出力が可
能であり , また , 入力パルス幅測定 , 外部クロック周期の測定が可能です。
■ 多機能タイマの構成
● 16 ビットフリーランタイマ ( × 1)
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16
ビットコンペアクリアレジスタ , プリスケーラより構成されています。本カウンタの出
力値はアウトプットコンペア , インプットキャプチャの基本時間 ( ベースタイマ ) とし
て使用されます。
• カウンタ動作クロックは 8 種類から選択可能です。内部クロック 8 種類 (φ, φ/2,
φ/4, φ/8, φ/16, φ/32, φ/64, φ/128)
φ: マシンクロック
• 割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペアマッチ
により発生することができます ( コンペアマッチはモード設定が必要です )。
• カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペアマッ
チにより "0000H" に初期化することができます。
● アウトプットコンペア ( × 8)
アウトプットコンペアは 8 本の 16 ビットコンペアレジスタ , コンペア出力用ラッチ ,
コントロールレジスタより構成されています。16 ビットフリーランタイマ値とコンペ
アレジスタ値が,一致したとき出力レベルを反転すると共に割込みを発生することがで
きます。
• 8 本のコンペアレジスタを独立して動作が可能です。各コンペアレジスタに対応し
た出力端子と割込みフラグを持っています。
• 2 本のコンペアレジスタをペアにして出力端子を制御することが可能です。コンペ
アレジスタ 2 本を使用して出力レベルを反転することが可能です。
• 各出力端子の初期値を設定することが可能です。
• 割込みはコンペア一致により発生可能です。
222
第 9 章 多機能タイマ
● インプットキャプチャ ( × 4)
インプットキャプチャは独立した 4 本の外部入力端子と対応したキャプチャレジスタ ,
コントロールレジスタにより構成されています。外部入力端子から入力された信号の
任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ
に保持し , 同時に割込みを発生することができます。
• 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択可能。
• 4 本のインプットキャプチャは独立して動作が可能。
• 割込みは外部入力信号の有効エッジにより発生が可能。
● 16 ビット PPG タイマ ( × 6)
「第 8 章 PPG タイマ」を参照してください。
223
第 9 章 多機能タイマ
多機能タイマのブロックダイヤグラム
9.2
図 9.2-1 に , 多機能タイマユニットのブロックダイヤグラムを記載します。
■ 多機能タイマのブロックダイヤグラム
図 9.2-1 多機能タイマのブロックダイヤグラム
φ
割込み
IVF
IVFE
STOP
MODE
SCLR
CLK2
CLK1
分周器
CLK0
クロック
16ビットフリーランタイマ
R-bus
16ビットコンペアクリアレジスタ
(ch6のコンペアレジスタ)
割込み
コンペア回路
CST0
コンペアレジスタ 0/2/4/6
コンペア回路
コンペアレジスタ 1/3/5/7
T
Q
OC0/2/4/6
T
Q
OC1/3/5/7
CMOD
セレ
クト
コンペア回路
IOP1
IOP0
IOE1
IOE0
割込み
割込み
IN 0/2
エッジ検出
キャプチャデータレジスタ 0/2
EG11
EG10
EG01
エッジ検出
キャプチャデータレジスタ 1/3
ICP0
ICP1
ICE0
EG00
IN 1/3
ICE1
割込み
割込み
224
第 9 章 多機能タイマ
9.3
多機能タイマのレジスタ
ここでは , 多機能タイマユニットのレジスタ一覧について説明します。
■ 多機能タイマのレジスタ
多機能タイマのレジスタ一覧については ,「付録 A I/O マップ」を参照してください。
225
第 9 章 多機能タイマ
9.3.1
16 ビットフリーランタイマのレジスタ
16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。
• データレジスタ (TCDT)
• コンペアクリアレジスタ
• タイマコントロールステータスレジスタ (TCCS)
■ データレジスタ (TCDT)
データレジスタ (TCDT) のレジスタ構成は以下のとおりです。
タイマデータレジスタ ( 上位 )
リード / ライト→
初期値→
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
00008CH
タイマデータレジスタ ( 下位 )
リード / ライト→
初期値→
データレジスタ (TCDT) は , 16 ビットフリーランタイマのカウント値を読み出すこと
のできるレジスタです。カウンタ値は , リセット時に "0000H" にクリアされます。この
レジスタに書き込むことでタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行っ
てください。このレジスタは , ワードアクセスしてください。
16 ビットフリーランタイマの初期化は次の要因で行われます。
• リセットによる初期化
• コントロールステータスレジスタのクリア (SCLR) による初期化
• コンペアクリアレジスタ (ch6 のコンペアレジスタ ) 値とタイマカウンタ値の一致に
よる初期化 ( モード設定が必要です。)
■ コンペアクリアレジスタ
コンペアクリアレジスタは , 16 ビットフリーランタイマと比較する 16 ビット長のコン
ペアレジスタです。アウトプットコンペアの ch6 のコンペアレジスタが使用されます。
本レジスタ値と 16 ビットフリーランタイマ値が一致した場合 , 16 ビットフリーランタ
イマ値を "0000H" に初期化して , コンペアクリア割込みフラグをセットします。また ,
割込み動作を許可している場合は , CPU に対して割込み要求を行います。
■ タイマコントロールステータスレジスタ (TCCS)
タイマコントロールステータスレジスタ (TCCS) のレジスタ構成は以下のとおりです。
タイマコントロールレジスタ ( 上位 )
リード / ライト→
初期値→
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ECLK
R/W
(0)
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
bit5
bit4
bit3
00008EH
タイマコントロールレジスタ ( 下位 )
リード / ライト→
初期値→
226
bit7
bit6
IVF
R/W
(0)
IVFE
R/W
(0)
STOP MODE SCLR
R/W
R/W
R/W
(0)
(0)
(0)
bit2
bit1
bit0
CLK2
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
第 9 章 多機能タイマ
[ ビット 15] ECLK
本ビットには , 必ず "0" を書き込んでください。
0
内部クロックソースを選択 ( 初期値 )
1
設定禁止
[ ビット 14 ∼ビット 8]
未使用ビットです。
[ ビット 7] IVF
16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマ
がオーバフローを起こしたときに本ビットは "1" にセットされます。割込み要求許
可ビット ( ビット 6:IVFE) がセットされていると割込みが発生します。本ビットは
"0" の書込みによりクリアされます。"1" の書込みは意味を持ちません。リードモ
ディファイライト系命令では , 常に "1" が読み出せます。
0
割込み要求なし ( 初期値 )
1
割込み要求あり
[ ビット 6] IVFE
16 ビットフリーランタイマの割込み許可ビットです。本ビットが "1" のとき , 割込
みフラグ ( ビット 7:IVF) が "1" にセットされると割込みが発生します。
0
割込み禁止 ( 初期値 )
1
割込み許可
[ ビット 5] STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。"1" の書込み
時にタイマのカウント停止 , "0" の書込み時にタイマのカウントを開始します。
0
カウント許可 ( 動作 )( 初期値 )
1
カウント禁止 ( 停止 )
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
[ ビット 4] MODE
16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットと
クリアビット ( ビット 3:SCLR) でカウンタ値を初期化可能です。"1" の場合は , リ
セットとクリアビット ( ビット 3:SCLR) のほかにアウトプットコンペアのコンペア
レジスタ 6 の値との一致によりカウンタ値を初期化することができます。
227
第 9 章 多機能タイマ
0
リセット , クリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , コンペアレジスタ 6 による初期化
<注意事項>
カウンタ値の初期化はカウント値の変化点で行われます。
[ ビット 3] SCLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
"1" の書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持
ちません。リード値は , 常に "0" です。カウンタ値の初期化は , カウント値の変化点
で行われます。
SCLR
フラグの意味
0
意味を持ちません ( 初期値 )。
1
カウンタ値を "0000H" に初期化します。
<注意事項>
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。
[ ビット 2, ビット 1, ビット 0] CLK2, CLK1, CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。本ビットに
書込み後すぐにクロックは変更されますのでアウトプットコンペア , インプット
キャプチャが停止状態のときに変更してください。
φ=16MHz
φ=8MHz
φ=4MHz
φ=1MHz
CLK2
CLK1
CLK0
0
0
0
φ
62.5ns
125ns
0.25 µs
1 µs
0
0
1
φ/2
125ns
0.25 µs
0.5 µs
2 µs
0
1
0
φ/4
0.25 µs
0.5 µs
1 µs
4 µs
0
1
1
φ/8
0.5 µs
1 µs
2 µs
8 µs
1
0
0
φ/16
1 µs
2 µs
4 µs
16 µs
1
0
1
φ/32
2 µs
4 µs
8 µs
32 µs
1
1
0
φ/64
4 µs
8 µs
16 µs
64 µs
1
1
1
φ/128
8 µs
16 µs
32 µs
128 µs
φ= マシンクロック
228
カウントクロック
第 9 章 多機能タイマ
アウトプットコンペアのレジスタ
9.3.2
アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。
• コンペアレジスタ (OCCP0 ∼ OCCP7)
• アウトプットコントロールレジスタ (OCS0 ∼ OCS7)
■ コンペアレジスタ (OCCP0 ∼ OCCP7)
コンペアレジスタ (OCCP0 ∼ OCCP7) のレジスタ構成は以下のとおりです。
000076H
000074H
00007AH
000078H
00007EH
00007CH
000082H
000080H
リード/ライト→
初期値→
bit14
bit15
コンペアレジスタ上位
リード/ライト→
初期値→
bit12
bit11
bit10
bit9
bit8
OP15
OP14
OP13
OP12
OP11
OP10
OP09
OP08
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
コンペアレジスタ下位
bit13
bit6
bit5
bit4
bit3
bit2
bit1
bit0
OP07
OP06
OP05
OP04
OP03
OP02
OP01
OP00
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
コンペアレジスタ (OCCP0 ∼ OCCP7) は , 16 ビットフリーランタイマと比較する 16 ビッ
ト長のコンペアレジスタです。本レジスタ値は , 初期値不定ですので設定してから起動
を許可してください。本レジスタはワードアクセスしてください。本レジスタ値と 16
ビットフリーランタイマ値が一致した場合,コンペア信号が発生してアウトプットコン
ペア割込みフラグをセットします。また , 出力許可している場合は , コンペアレジスタ
に対応した出力レベルを反転します。
<注意事項>
コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペア
動作禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにしてください。
■ アウトプットコントロールレジスタ (OCS0 ∼ OCS7)
アウトプットコントロールレジスタ(OCS0∼OCS7)のレジスタ構成は以下のとおりです。
bit15
アウトプットコントロールレジスタ上位
000086H
000084H
00008AH
000088H
リード/ライト→
初期値→
リード/ライト→
初期値→
bit13
bit12
bit11
bit10
bit9
-
-
-
CMOD
OTE1
OTE0
OTD1
OTD0
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit7
アウトプットコントロールレジスタ下位
bit14
bit6
bit5
bit4
bit3
bit2
bit1
IOP1
IOP0
IOE1
IOE0
-
-
CST1
CST0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(X)
R/W
(X)
R/W
(0)
R/W
(0)
bit8
bit0
ここでは , ch0, ch1 について説明しますので , ch2, ch3, ch4, ch5, ch6, ch7 はそれぞれ
ch0 → ch2, ch4, ch6, ch1 → ch3, ch5, ch7 と読み換えてください。
229
第 9 章 多機能タイマ
[ ビット 12] CMOD
端子出力を許可した場合 (OTE1=0 or OTE0=1) のコンペア一致における端子出力レ
ベル反転動作モードを切り換えます。
• CMOD=0 のとき ( 初期値 ) はコンペアレジスタに対応した端子の出力レベルを反
転します。
- OC0: コンペアレジスタ 0 の一致によりレベルを反転します。
- OC1: コンペアレジスタ 1 の一致によりレベルを反転します。
• CMOD=1 のときのコンペアレジスタ 0 は , CMOD=0 と同じく出力レベルを反転
しますが , コンペアレジスタ 1 に対応した端子 (OC1) の出力レベルは , コンペア
レジスタ 0 の一致とコンペアレジスタ 1 の一致の両方で出力レベルを反転しま
す。コンペアレジスタ 0 と 1 が同じ値の場合は , コンペアレジスタ 1 本のときと
同じ動作をします。
- OC0: コンペアレジスタ 0 の一致によりレベルを反転します。
- OC1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。
[ ビット 11, ビット 10] OTE1, OTE0
アウトプットコンペアの端子出力を許可するビットです。
0
汎用ポート (PE0 ∼ PE7) として動作します ( 初期値 )。
1
アウトプットコンペア端子出力になります。
OTE1: アウトプットコンペア 1 に対応
OTE0: アウトプットコンペア 0 に対応
[ ビット 9, ビット 8] ODT1, ODT0
コンペアレジスタの端子出力を許可した場合の端子出力レベルを変更する場合に
使用します。コンペア端子出力の初期値は "0" となります。書込み時はコンペア動
作を停止してから行ってください。読出し時は , アウトプットコンペア端子出力値
が読み出せます。
0
コンペア端子出力を "0" にします ( 初期値 )。
1
コンペア端子出力を "1" にします。
ODT1: アウトプットコンペア 1 に対応
ODT0: アウトプットコンペア 0 に対応
[ ビット 7, ビット 6] IOP1, IOP0
アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー
ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (IOE1,
IOE0) が許可されているときに本ビットが "1" セットされるとアウトプットコンペ
ア割込みが発生します。本ビットは "0" の書込みによりクリアされ "1" の書込みで
は意味を持ちません。リードモディファイライト系の命令では "1" が読めます。
230
第 9 章 多機能タイマ
0
アウトプットコンペア一致なし ( 初期値 )
1
アウトプットコンペア一致あり
IOP1: アウトプットコンペア 1 に対応
IOP0: アウトプットコンペア 0 に対応
[ ビット 5, ビット 4] IOE1, IOE0
アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割
込みフラグ (IOP1, IOP0) が "1" にセットされるとアウトプットコンペア割込みが発
生します。
0
アウトプットコンペア割込み禁止 ( 初期値 )
1
アウトプットコンペア割込み許可
IOE1: アウトプットコンペア 1 に対応
IOE0: アウトプットコンペア 0 に対応
[ ビット 3, ビット 2]
未使用ビットです。
[ ビット 1, ビット 0] CST1, CST0
16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許
可する前に必ずコンペアレジスタ値およびアウトプットデータレジスタ値を設定
してください。
0
コンペア動作禁止 ( 初期値 )
1
コンペア動作許可
CST1: アウトプットコンペア 1 に対応
CST0: アウトプットコンペア 0 に対応
<注意事項>
• コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペ
アをディセーブルの状態で行い,コンペア一致と書込みが同時に発生しないようにして
ください。
• アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビッ
トフリーランタイマを停止させるとコンペア動作も停止します。
231
第 9 章 多機能タイマ
9.3.3
インプットキャプチャのレジスタ
インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。
• インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
• インプットキャプチャコントロールレジスタ (ICS01, ICS23)
■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) のレジスタ構成は以下のとお
りです。
bit15
インプットキャプチャデータレジスタ上位
リード/ライト→
初期値→
00006AH
000068H
00006EH
00006CH
リード/ライト→
初期値→
bit13
bit12
bit11
bit10
bit9
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit7
インプットキャプチャデータレジスタ下位
bit14
bit6
bit5
bit4
bit3
bit2
bit1
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit8
bit0
インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) は , 対応した外部端子入力波形
の有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。
ワードアクセスしてください。書込みはできません。
■ インプットキャプチャコントロールレジスタ (ICS01, ICS23)
インプットキャプチャコントロールレジスタ (ICS01, ICS23) のレジスタ構成は以下の
とおりです。
キャプチャコントロールレジスタ (ICS23)
リード / ライト→
初期値→
000073H
000071H
キャプチャコントロールレジスタ (ICS01)
リード / ライト→
初期値→
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICP3
R/W
(0)
ICP2
R/W
(0)
ICE3
R/W
(0)
ICE2
R/W
(0)
EG31
R/W
(0)
EG30
R/W
(0)
EG21
R/W
(0)
EG20
R/W
(0)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICP1
R/W
(0)
ICP0
R/W
(0)
ICE1
R/W
(0)
ICE0
R/W
(0)
EG11
R/W
(0)
EG10
R/W
(0)
EG01
R/W
(0)
EG00
R/W
(0)
[ ビット 7, ビット 6] ICP3, ICP2, ICP1, ICP0
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ
トされていると有効エッジを検出することにより割込みを発生することができま
す。本ビットは , "0" の書込みによりクリアされます。"1" の書込みは意味を持ちま
せん。リードモディファイライト系の命令では "1" が読み出せます。
0
有効エッジ検出なし ( 初期値 )
1
有効エッジ検出あり
ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。
232
第 9 章 多機能タイマ
[ ビット 5, ビット 4] ICE3, ICE2, ICE1, ICE0
インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ
(ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発
生します。
0
割込み禁止 ( 初期値 )
1
割込み許可
ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。
[ ビット 3 ∼ビット 0] EG31/EG30, EG21/EG20, EG11/EG10, EG01/EG00
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可
も兼用しています。
EG31
EG30
0
0
エッジ検出なし ( 停止状態 )( 初期値 )
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出 ↑ & ↓
エッジ検出極性
EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。
233
第 9 章 多機能タイマ
9.4
多機能タイマユニットの動作
ここでは , 多機能タイマユニットの動作について説明します。
■ 多機能タイマの動作説明
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを
開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプッ
トキャプチャの基準時間となります。
● 16 ビットアウトプットコンペア
16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフリー
ランタイマ値との値を比較して一致すると , 割込みフラグをセットするとともに , 出力
レベルを反転することができます。
● 16 ビットインプットキャプチャ
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ
リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することができ
ます。
234
第 9 章 多機能タイマ
9.4.1
16 ビットフリーランタイマ部
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は , 次の条件でクリアされます。
• オーバフローが発生したとき。
• コンペアクリアレジスタ ( アウトプットコンペア ch6 のコンペアレジスタ ) 値とコ
ンペアマッチしたとき ( モード設定が必要 )。
• 動作中に TCCS レジスタの SCLR ビットに "1" を書き込んだとき。
• タイマ停止中に TCDT レジスタに "0000H" を書き込んだとき。
割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とコンペアマッチ
してカウンタがクリアされたとき発生することができます ( コンペアマッチ割込みは ,
モード設定が必要です )。
図 9.4-1 にオーバフローによるカウンタクリア , 図 9.4-2 にコンペアクリアレジスタ値
とコンペアマッチしたときのカウンタクリアを示します。
図 9.4-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
割込み
235
第 9 章 多機能タイマ
図 9.4-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア
カウンタ値
FFFFH
一致
一致
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ
BFFFH
割込み
■ 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行
われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ
ますが,コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミング
に同期して行われます。
図 9.4-3 に , フリーランタイマのクリアタイミングを示します。
図 9.4-3 フリーランタイマのクリアタイミング
φ
N
コンペアクリアレジスタ値
コンペアマッチ
N
カウンタ値
0000
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は,立上りエッジ↑でカウントされます。
図 9.4-4 に , 16 ビットフリーランタイマのカウントタイミングを示します。
図 9.4-4 16 ビットフリーランタイマのカウントタイミング
φ
外部クロック入力
カウントクロック
カウンタ値
236
N
N+1
第 9 章 多機能タイマ
9.4.2
16 ビットアウトプットコンペア
16 ビットアウトプットコンペアでは , 設定されたコンペアレジスタ値と 16 ビットフ
リーランタイマ値との値を比較して一致したら割込みフラグをセットするとともに ,
出力レベルを反転することができます。
■ 16 ビットアウトプットコンペアの動作説明
● CMOD=0
1 チャネル独立でコンペア動作を行うことができます (CMOD=0 の場合 )。
図 9.4-5 に , コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0") を
示します。
図 9.4-5 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0
コンペアレジスタ1
BFFFH
7FFFH
アウトプットコンペア0
アウトプットコンペア1
コンペア0割込み
コンペア1割込み
● CMOD=1 のとき 1
2組のコンペアレジスタを使い出力レベルを変えることができます(CMOD=1のとき1)。
図 9.4-6 に , コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0")
を示します。
図 9.4-6 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0
コンペアレジスタ1
BFFFH
7FFFH
アウトプットコンペア0
アウトプットコンペア1
コンペア0割込み
コンペア1割込み
237
第 9 章 多機能タイマ
■ 16 ビットアウトプットコンペアのタイミング
2組のコンペアレジスタを使い出力レベルを変えることができます(CMOD=1のとき1)。
アウトプットコンペアは,フリーランタイマと設定したコンペアレジスタの値が一致し
たときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生するこ
とができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイミ
ングに同期して行われます。
図 9.4-7 に , 16 ビットアウトプットコンペアのタイミングを示します。
図 9.4-7 16 ビットアウトプットコンペアのタイミング
φ
N
カウンタ値
コンペアクリアレジスタ値
N + 1
N
コンペアマッチ
割込み
カウンタ値
コンペアクリアレジスタ値
N
N + 1
N
N + 1
N
コンペアマッチ
端子出力
<注意事項>
コンペアレジスタを書き換える場合は , コンペア割込みのルーチン内で行うか , コンペア
をディセーブルの状態で行い , コンペア一致と書込みが同時に発生しないようにしてくだ
さい。
238
第 9 章 多機能タイマ
16 ビットインプットキャプチャ
9.4.3
16 ビットインプットキャプチャでは , 設定された有効エッジを検出すると , 16 ビッ
トフリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生すること
ができます。
■ 16 ビットインプットキャプチャの動作
図 9.4-8 に , 16 ビットインプットキャプチャの取込みタイミング例を示します。
図 9.4-8 16 ビットインプットキャプチャの取込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
IN0
IN1
IN例
3FFFH
不定
データレジスタ0
BFFFH
不定
データレジスタ1
BFFFH
不定
データレジスタ例
7FFFH
キャプチャ0割込み
キャプチャ1割込み
キャプチャ例割込み
キャプチャ0=立上りエッジ
キャプチャ0=立下りエッジ
キャプチャ例=両エッジ(例として)
再度有効エッジにより割込み発生
ソフトウェアにより割込みクリア
■ 16 ビットインプットキャプチャの入力タイミング
図 9.4-9 に , 16 ビットインプットキャプチャの入力タイミングを示します。
図 9.4-9 16 ビットインプットキャプチャの入力タイミング
φ
カウンタ値
N
N+1
インプットキャプチャ入力
有効エッジ
キャプチャ信号
キャプチャレジスタ値
N+1
割込み
239
第 9 章 多機能タイマ
240
第 10 章
外部割込み制御部
この章では , 外部割込み制御の概要 , レジスタの構
成 / 機能および外部割込み制御の動作について説明
します。
10.1 外部割込み制御部の概要
10.2 外部割込み制御部のレジスタ
10.3 外部割込み制御部の動作
10.4 外部割込み要求レベル
241
第 10 章 外部割込み制御部
10.1
外部割込み制御部の概要
外部割込み制御部は , INT0 ∼ INT15 に入力される外部割込み要求の制御を行うブ
ロックです。検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下り
エッジ " から選択できます。
■ 外部割込み制御部のブロックダイヤグラム
図 10.1-1 に , 外部割込み制御部のブロックダイヤグラムを示します。
図 10.1-1 外部割込み制御部のブロックダイヤグラム
R-bus
16
割込み
要求
16
割込み許可レジスタ
ゲート
要 因 F/F
16
割込み要因レジスタ
32
要求レベル設定レジスタ
242
エッジ検出回路
16
INT0~
INT15
第 10 章 外部割込み制御部
外部割込み制御部のレジスタ
10.2
図 10.2-1 に , 外部割込み制御部のレジスタ一覧を示します。
■ 外部割込み制御部のレジスタ一覧
図 10.2-1 外部割込み制御部のレジスタ一覧
bit
bit
bit
bit
bit
bit
bit
bit
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
7
6
5
4
3
2
1
0
EN15
EN14
EN13
EN12
EN11
EN10
EN9
EN8
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
15
14
13
12
11
10
9
8
ER15
ER14
ER13
ER12
ER11
ER10
ER9
ER8
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
15
14
13
12
11
10
9
8
LB15
LA15
LB14
LA14
LB13
LA13
LB12
LA12
7
6
5
4
3
2
1
0
LB11
LA11
LB10
LA10
LB9
LA9
LB8
LA8
外部割込み許可レジスタ
(ENIR0)
外部割込み許可レジスタ
(ENIR1)
外部割込み要因レジスタ
(EIRR0)
外部割込み要因レジスタ
(EIRR1)
外部割込み要求レベル
設定レジスタ (ELVR0)
外部割込み要求レベル
設定レジスタ (ELVR0)
外部割込み要求レベル
設定レジスタ (ELVR1)
外部割込み要求レベル
設定レジスタ (ELVR1)
243
第 10 章 外部割込み制御部
10.2.1
割込み許可レジスタ (ENIR0, ENIR1)
割込み許可レジスタ (ENIR0, ENIR1) は , 外部割込み要求出力のマスク制御を行いま
す。
■ 割込み許可レジスタ (ENIR0, ENIR1:ENable Interrupt request Register n)
割込み許可レジスタ (ENIR0, ENIR1) のレジスタ構成は以下のとおりです。
ENIR0
アドレス:0000C9H
ENIR1
7
6
5
4
3
2
1
0
EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0
7
6
5
4
3
2
1
初期値
00000000B
アクセス
R/W
00000000B
R/W
0
アドレス:0000CBH EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8
このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の
許可を EN0 が制御 ), 割込みコントローラに対して要求が出力されます。"0" が書かれ
たビットの対応する端子は割込み要因は保持しますが,割込みコントローラに対しては
要求を発生しません。
244
第 10 章 外部割込み制御部
10.2.2
外部割込み要因レジスタ (EIRR0, EIRR1)
外部割込み要因レジスタ (EIRR0, EIRR1) は , 読出し時には対応する外部割込み要求
があることを示し , 書込み時にはこの要求を示すフリップフロップ内容をクリアする
レジスタです。
■ 外部割込み要因レジスタ (EIRR0, EIRR1:External Interrupt Request Register n)
外部割込み要因レジスタ (EIRR0, EIRR1) のレジスタ構成は以下のとおりです。
EIRR0
アドレス:0000C8H
EIRR1
15
14
13
12
11
10
9
8
ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0
15
14
13
12
11
10
9
初期値
00000000B
アクセス
R/W
00000000B
R/W
8
アドレス:0000CAH ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8
このレジスタの読出し時が "1" のとき , このビットに対応する端子に外部割込み要求が
あることを示します。また , このレジスタに "0" を書き込むと , 対応するビットの要求
フリップフロップがクリアされます。"1" の書込みは無効です。
リードモディファイライトのリード時には "1" が読み出されます。
245
第 10 章 外部割込み制御部
10.2.3
外部割込み要求レベル設定レジスタ (ELVR0,ELVR1)
外部割込み要求レベル設定レジスタ (ELVR0,ELVR1) は , 要求検出の選択を行うレジ
スタです。
■ 外部割込み要求レベル設定レジスタ (ELVR0, ELVR1:External LeVel Register)
外部割込み要求レベル設定レジスタ (ELVR0, ELVR1) のレジスタ構成は以下のとおり
です。
ELVR0
15
14
13
12
11
10
9
8
アドレス:0000CCH
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
15
14
13
12
11
10
9
8
ELVR1
アドレス:0000CEH LB15 LA15 LB14 LA14 LB13 LA13 LB12 LA12
7
6
5
4
3
LB11 LA11 LB10 LA10 LB9
2
1
0
LA9
LB8
LA8
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
INT0 ∼ INT15 に 2 ビットずつが割り当てられていて , 以下のような設定になります。
要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな
らば該当するビットは再びセットされます。
表 10.2-1 に , 外部割込み要求レベル設定を示します。
表 10.2-1 外部割込み要求レベル設定表
246
LB15 ∼ LB0
LA15 ∼ LA0
動作
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
第 10 章 外部割込み制御部
10.3
外部割込み制御部の動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された
要求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を
発生します。
■ 外部割込みの動作
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果,本リソースか
らの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。
図 10.3-1 に , 外部割込みの動作を示します。
図 10.3-1 外部割込みの動作
外部割込み
割込みコントローラ
CPU
リソース要 求
ELVR
CMP
EIRR
ENIR
割込み
レベル
ICR Y Y
ICR X X
CMP
ILM
要因
■ ストップからの復帰
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1)外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2)許可レジスタの対象となるビットを禁止状態にする。
3)要求レベル設定レジスタの対象となるビットを設定する。
4)要因レジスタの対象となるビットをクリアする。
5)許可レジスタの対象となるビットを許可状態にする。
ただし , 4) と 5) は , 16 ビットデータによる同時書込みが可能です。
本モジュール内のレジスタを設定する場合には,必ず許可レジスタを禁止状態に設定し
ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス
タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に
誤って割込み要因が起こってしまうことを避けるためです。
247
第 10 章 外部割込み制御部
10.4
外部割込み要求レベル
要求レベルがエッジ要求の場合 , エッジがあったことを検出するためには , パルス幅
は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定の場合 , 外部より要求が入力され , その後取り下げられ
ても内部に要因保持回路が存在するため , 割込みコントローラへの要求はアクティブ
のままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があ
ります。
■ 外部割込み要求レベル
図 10.4-1 に , レベル設定時の要因保持回路のクリア , 図 10.4-2 に割込み許可時の割込み
要因と割込みコントローラへの割込み要求を示します。
図 10.4-1 レベル設定時の要因保持回路のクリア
割込み入力
レベル検出
要 因 F/F
(要因保持回路)
許可ゲート
割込み
コントローラへ
クリアしない限り要因を保持し続ける
図 10.4-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み入力
"H"レ ベ ル
割込みコントローラ
への割込み要求
要 因 F/Fの ク リ ア に よ っ て
インアクティブとなる
248
第 11 章
遅延割込みモジュール
この章では , 遅延割込みモジュールの概要 , レジス
タの構成 / 機能および遅延割込みモジュールの動作
について説明します。
11.1 遅延割込みモジュールの概要
11.2 遅延割込み制御レジスタ (DICR)
11.3 遅延割込みモジュールの動作
249
第 11 章 遅延割込みモジュール
11.1
遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 /
取消しを行うことができます。
■ 遅延割込みモジュールのブロックダイヤグラム
遅延割込み発生部のブロックダイヤグラムについては「12.2
,
割込みコントローラのブ
ロックダイヤグラム」を参照してください。
■ 遅延割込みモジュールのレジスタ一覧
図 11.1-1 に , 遅延割込みモジュールのレジスタ一覧を示します。
図 11.1-1 遅延割込みモジュールのレジスタ一覧
アドレス
000430H
250
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DLYI
R/W
←ビット No.
DICR
第 11 章 遅延割込みモジュール
11.2
遅延割込み制御レジスタ (DICR)
遅延割込み制御レジスタ (DICR) は , 遅延割込みを制御するレジスタです。
■ 遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register)
遅延割込み制御レジスタ (DICR) のレジスタ構成は以下のとおりです。
7
000430H
6
−
−
5
−
4
−
3
−
2
−
1
0
−
DLYI
R/W
←ビット No.
-------0B
( 初期値 )
[ ビット 0] DLYI
本ビットにより , 該当する割込み要因の発生および解除を制御します。
DLYI
説明
0
遅延割込み要因の解除・要求なし ( 初期値 )
1
遅延割込み要因の発生
251
第 11 章 遅延割込みモジュール
11.3
遅延割込みモジュールの動作
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用すること
により , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができ
ます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。
252
第 12 章
割込みコントローラ
この章では , 割込みコントローラの概要 , ブロック
ダイヤグラム , レジスタの構成 / 機能および割込み
コントローラの動作について説明します。
12.1 割込みコントローラの概要
12.2 割込みコントローラのブロックダイヤグラム
12.3 割込み制御のレジスタ
12.4 優先順位判定
12.5 スタンバイモード ( ストップ / スリープ ) からの復帰
12.6 ホールドリクエスト取下げ要求
12.7 ホールドリクエスト取下げ要求機能 (HRCR) の使用例
253
第 12 章 割込みコントローラ
12.1
割込みコントローラの概要
割込みコントローラは , 割込み受付 / 調停を処理するモジュールです。
■ 割込みコントローラのハードウェア構成
本モジュールは , 以下のものにより構成されます。
• 割込み制御レジスタ (ICR レジスタ:ICR00 ∼ ICR47)
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
本モジュールには , 主に以下のような機能があります。
• 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• 割込み発生によるストップモードからの復帰指示
• バスマスタへのホールドリクエスト取下げ要求発生
254
第 12 章 割込みコントローラ
12.2
割込みコントローラのブロックダイヤグラム
図 12.2-1 に , 割込みコントローラのブロックダイヤグラムを示します。
■ 割込みコントローラのブロックダイヤグラム
図 12.2-1 割込みコントローラのブロックダイヤグラム
INTO
*2
IM
優先度判定
OR
NMI
NMI処 理
5
/
5
/4
LEVEL,
LEVEL判 定
ICR00
リソース
割込み00
VECTOR
VECTOR
判定
6
/
発生
ホールド
リクエスト
取下げ
要求
LEVEL4~
LEVEL0
*3
HLDCAN
6
VCT5~
VCT0
ICR47
リソース
割込み47
(DLYIRQ)
*1
DLYI
R-bus
*1: DLYI は , 遅延割込み部を意味します ( 詳細は ,「第 11 章 遅延割込みモジュール」を参照し
てください )。
*2: INTO は , スリープ , ストップ時のクロック制御部に対するウェイクアップ信号です。
*3: HLDCAN は , CPU 以外のバスマスタに対するバス明け渡し要求信号です。
( 注意事項 ) 本品種には , NMI 機能はありません。
255
第 12 章 割込みコントローラ
12.3
割込み制御のレジスタ
図 12.3-1 に , 割込み制御のレジスタ一覧を示します。
■ 割込み制御のレジスタ一覧
図 12.3-1 割込み制御のレジスタ一覧
アドレス
7
6
5
4
3
2
1
0
←ビット No.
00000400H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR00
00000401H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR01
00000402H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR02
00000403H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR03
00000404H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR04
00000405H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR05
00000406H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR06
ICR2
ICR1
ICR0
ICR07
00000407H
−
−
−
−
ICR3
00000408H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR08
00000409H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR09
0000040AH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR10
0000040BH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR11
0000040CH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR12
0000040DH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR13
0000040EH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR14
ICR2
ICR1
ICR0
ICR15
0000040FH
−
−
−
−
ICR3
00000410H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR16
00000411H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR17
00000412H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR18
00000413H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR19
00000414H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR20
00000415H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR21
00000416H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR22
ICR2
ICR1
ICR0
ICR23
00000417H
−
−
−
−
ICR3
00000418H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR24
00000419H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR25
0000041AH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR26
0000041BH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR27
0000041CH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR28
0000041DH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR29
0000041EH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR30
−
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR31
0000041FH
−
−
−
( 続く )
256
第 12 章 割込みコントローラ
( 続き )
アドレス
7
6
5
4
3
2
1
0
←ビット No.
00000420H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR32
00000421H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR33
ICR2
ICR1
ICR0
ICR34
00000422H
−
−
−
−
ICR3
00000423H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR35
00000424H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR36
00000425H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR37
00000426H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR38
00000427H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR39
00000428H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR40
00000429H
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR41
ICR2
ICR1
ICR0
ICR42
0000042AH
−
−
−
−
ICR3
0000042BH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR43
0000042CH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR44
0000042DH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR45
0000042EH
−
−
−
−
ICR3
ICR2
ICR1
ICR0
ICR46
0000042FH
−
−
−
−
−
−
−
−
ICR2
R/W
LVL2
R/W
ICR1
R/W
LVL1
R/W
ICR0
R/W
LVL0
R/W
ICR47
00000431H
ICR3
R/W
LVL3
R/W
HRCL
257
第 12 章 割込みコントローラ
12.3.1
割込み制御レジスタ (ICR00 ∼ ICR47)
割込み制御レジスタ (ICR00 ∼ ICR47) は , 割込み制御レジスタです。各割込み入力
に対して 1 つずつ設けられており , 対応する割込み要求の割込みレベルを設定しま
す。
■ 割込み制御レジスタ (ICR00 ∼ ICR47:Interrupt Control Register)
割込み制御レジスタ (ICR00 ∼ ICR47) のレジスタ構成は以下のとおりです。
アドレス
000400H ∼
00042FH
7
6
5
4
3
2
1
0
−
−
−
−
ICR3
ICR2
ICR1
ICR0
R/W
R/W
R/W
R/W
←ビット No.
----1111B ( 初期値 )
[ ビット 3 ∼ビット 0] ICR3 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ
ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , 1111B に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 12.3-1 に示します。
表 12.3-1 割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
1
1
1
1
1
31
ICR4 は "1" 固定です。
258
割込みレベル
システム予約
(強)
(弱)
割込み禁止
第 12 章 割込みコントローラ
12.3.2
ホールドリクエスト取下げ要求レベル設定レジスタ
(HRCL)
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) は , ホールドリクエスト
取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL:Hold Request Cancel
Level register)
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のレジスタ構成は以下の
とおりです。
アドレス
000431H
7
6
5
4
3
2
1
0
−
−
−
−
LVL3
LVL2
LVL1
LVL0
R/W
R/W
R/W
R/W
←ビット No.
----1111B
( 初期値 )
[ ビット 3 ∼ビット 0] LVL3 ∼ 0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
259
第 12 章 割込みコントローラ
優先順位判定
12.4
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
■ 優先順位判定
割込み要因の優先順位判定基準は , 次のとおりです。
1)NMI
2)以下の条件を満たす要因
- 割込みレベルの数値が "31" 以外 ("31" は割込み禁止 )。
- 割込みレベルの数値が最も小さい要因。
- その中で , 最も小さい割込み番号を持つ要因。
割込み要因と割込み番号 , 割込みレベルの関係を表 12.4-1 に示します。
表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2)
割込み番号
割込み要因
割込みレベル
オフセット
TBR デフォル
トのアドレス
10 進
16 進
(NMI 要求 )
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
外部割込み 8 ∼ 15
24
18
ICR08
39CH
000FFF9CH
システム予約
25
19
ICR09
398H
000FFF98H
UART0( 受信完了 )
26
1A
ICR10
394H
000FFF94H
UART1( 受信完了 )
27
1B
ICR11
390H
000FFF90H
UART2( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
UART3( 受信完了 )
29
1D
ICR13
388H
000FFF88H
システム予約
30
1E
ICR14
384H
000FFF88H
UART0( 送信完了 )
31
1F
ICR15
380H
000FFF80H
UART1( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
UART2( 送信完了 )
33
21
ICR17
378H
000FFF78H
260
第 12 章 割込みコントローラ
表 12.4-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 2)
割込み番号
割込み要因
割込みレベル
オフセット
TBR デフォル
トのアドレス
10 進
16 進
UART3( 送信完了 )
34
22
ICR18
374H
000FFF74H
システム予約
35
29
ICR19
370H
000FFF70H
DMAC( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
リロードタイマ 0
37
25
ICR21
368H
000FFF68H
リロードタイマ 1
38
26
ICR22
364H
000FFF64H
リロードタイマ 2
39
27
ICR23
360H
000FFF60H
リロードタイマ 3
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
A/D
42
2A
ICR26
354H
000FFF54H
PPG0
43
2B
ICR27
350H
000FFF50H
PPG1
44
2C
ICR28
34CH
000FFF4CH
PPG2
45
2D
ICR29
348H
000FFF48H
PPG3
46
2E
ICR30
344H
000FFF44H
PPG4
47
2F
ICR31
340H
000FFF40H
PPG5
48
30
ICR32
33CH
000FFF3CH
U/D カウンタ 0
49
31
ICR33
338H
000FFF38H
U/D カウンタ 1
50
32
ICR34
334H
000FFF34H
ICU0( 取込み )
51
33
ICR35
330H
000FFF30H
ICU1( 取込み )
52
34
ICR36
32CH
000FFF2CH
ICU2( 取込み )
53
35
ICR37
328H
000FFF28H
ICU3( 取込み )
54
36
ICR38
324H
000FFF24H
OCU0( 一致 )
55
37
ICR39
320H
000FFF20H
OCU1( 一致 )
56
38
ICR40
31CH
000FFF1CH
OCU2( 一致 )
57
39
ICR41
318H
000FFF18H
OCU3( 一致 )
58
3A
ICR42
314H
000FFF14H
OCU4/5( 一致 )
59
3B
ICR43
310H
000FFF10H
OCU6/7( 一致 )
60
3C
ICR44
30CH
000FFF0CH
システム予約
61
3D
ICR45
308H
000FFF08H
16 ビット フリーラン
タイマ
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
261
第 12 章 割込みコントローラ
■ 割込み要因の解除
割込みルーチンにおける , 割込み要因解除のための命令と RETI 命令の間には制限があ
ります。
詳細は ,「第 3 章 メモリ空間 , CPU および制御部」を参照してください。
262
第 12 章 割込みコントローラ
12.5
スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
周辺からの割込み要求が 1 つでも発生すると , クロック制御部に対してストップモード
からの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので,優先
度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ時は , 本モジュール内のレジスタはアクセス可能です。
<注意事項>
ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の制
御レジスタにて割込み要求出力を禁止してください。スタンバイからの復帰要求信号は ,
全割込み要因の単なる論理和出力のため , ICR レジスタに設定した割込みレベルの内容は
加味されません。
263
第 12 章 割込みコントローラ
12.6
ホールドリクエスト取下げ要求
優先度の高い割込み処理を CPU のホールド中に行いたい場合は , ホールドリクエス
ト発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求
発生の基準となる割込みレベルを HRCL レジスタに設定します。
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request) の発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
• HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル
→ 取下げ要求発生
• HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル
→ 取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り,この取下げ要求は有効で
あり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割込
み要因をクリアしてください。
■ ホールドリクエスト取下げ要求の設定可能なレベル
HRCLレジスタに設定可能な値は, ICRレジスタと同様に"0000B"から"1111B"までです。
"1111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"0000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。
ホールドリクエスト取下げ要求発生となる割込みレベルの設定を表 12.6-1 に示しま
す。
表 12.6-1 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
(NMI のみ )
17
割込みレベル 16
18
割込みレベル 16, 17
:
:
31
割込みレベル 16 ∼ 30 ( 初期値 )
<注意事項>
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割込
みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値に設
定してください。
264
第 12 章 割込みコントローラ
12.7
ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に CPU が優先度の高い処理を行いたいときは , DMA に対してホールド
リクエストを取り下げてもらってホールド状態を解除する必要があります。ここで
は , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU
の優先動作を実現します。
■ 制御レジスタ
● HRCL( ホールドリクエスト キャンセル レベル 設定レジスタ ): 本モジュール
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に , DMA
に対してホールドリクエスト取下げ要求を発生します。その基準となるレベルを設定
します。
● ICR: 本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定しま
す。
● PDRR(DMA 要求抑止レジスタ ): クロック制御部
DMA からのホールドリクエストを一時的に抑止するためのレジスタです。割込み要因
のクリアにより , 再びホールド状態に戻るのを防ぐためのレジスタです。本レジスタの
値が 0000B のときのみ DMA からのホールドリクエストを CPU へ伝えます。使用方法
としては , 割込みルーチンの先頭で本レジスタの内容をインクリメントし , ルーチンの
出口でデクリメントしてください。
■ ハードウェア構成
各信号の流れは , 図 12.7-1 のようになっています。
図 12.7-1 ホールドリクエスト取下げ要求信号の流れ
本モジュール
IRQ
(ICR)
(HRCL)
クロック制御部
HRQ
DMA
HRCR
DHRQ
(PDRR)
CPU
HACK
DHRQ : DMA ホールドリクエスト
HRQ : ホールドリクエスト
HACK : ホールドアクノリッジ
IRQ
: 割込み要求
HRCR : ホールドリクエスト取下げ要求
265
第 12 章 割込みコントローラ
■ ホールドリクエスト取下げ要求シーケンス
● 割込みルーチンの例
図 12.7-2 に , 割込みレベル HRCL > a の場合のホールドリクエスト取下げ要求シーケ
ンスのタイミング例を示します。
図 12.7-2 ホールドリクエスト取下げ要求シーケンスのタイミング例
( 割込みレベル HRCL > a)
RUN
バスホールド
CPU
割込み処理 バスホールド(DMA転送)
(3)(4)
(1)(2)
DHRQ
HRQ
HACK
IRQ
a
LEVEL
HRCR
0000
PDRR
0001
0000
(1) PDRR インクリメント
(2) 割込み要因クリア
(3) PDRR デクリメント
(4) RETI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して HRCR をアクティブにします。これによって DMA は
ホールドリクエストを取り下げ , CPU はホールド状態から復帰して割込み処理を行い
ます。割込みルーチンでは , PDRR をインクリメントし割込み要因をクリアします。こ
れにより割込みレベルは変化し , HRCR がインアクティブになり DMA は再びホールド
リクエストを出すようになります。しかし , PDRR が 0 ではないので , このホールドリ
クエストは遮断されています。PDRR をデクリメントすることで , 初めてホールドリク
エストが CPU に伝わり再び DMA 転送が行われるようになります。
266
第 12 章 割込みコントローラ
● 多重割込みルーチンの例
多重割込みの場合を , 図 12.7-3 に示します。
図 12.7-3 ホールドリクエスト取下げ要求シーケンスのタイミング例 (HRCL > a > b)
RUN
バスホールド 割込みI
(1)
CPU
割込み処理I
割込み処理II
(7)(8)
(5)(6)
(2)
バスホールド
(3)(4)
DHRQ
HRQ
HACK
IRQ1
IRQ2
a
b
a
LEVEL
HRCR
0000
PDRR
0001
0002
0001
0000
(1),(5) PDRR インクリメント
(2),(6) 割込み要因クリア
(3),(7) PDRR デクリメント
(4),(8) RETI
上記例では,割込みルーチンを実行中にそれより優先度の高い割込みが発生した場合を
示しています。ここでも , 各割込みルーチンの先頭で PDRR をインクリメントし , ルー
チンの出口でデクリメントすることによって,不用意にホールドリクエストが出るのを
防ぐことができます。
<注意事項>
• PDRR のインクリメント / デクリメントは , DMA 転送中 (CPU ホールド中 ) に処理さ
せたい割込みルーチンの先頭と出口で必ず行うようにしてください。これを行わない
と , 割込みルーチンの途中で再び DMA 転送が行われてしまいます。
• 逆に , PDRR のインクリメント / デクリメントを通常の割込みルーチンでは行わないで
ください。割込みルーチン実行中に DMA 転送が行えず , パフォーマンスを落とすこと
になります。
• HRCL レジスタと ICR レジスタに設定する割込みレベルの関係には , 十分注意してく
ださい。
267
第 12 章 割込みコントローラ
268
第 13 章
8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの概要 ,
ブロックダイヤグラム , 端子 , レジスタの構成 / 機
能および 8/10 ビット A/D コンバータの動作につい
て説明します。
13.1 8/10 ビット A/D コンバータの概要
13.2 8/10 ビット A/D コンバータのブロックダイヤグラム
13.3 8/10 ビット A/D コンバータの端子
13.4 8/10 ビット A/D コンバータのレジスタ
13.5 割込み
13.6 8/10 ビット A/D コンバータの動作
13.7 A/D 変換データ保護機能
13.8 8/10 ビット A/D コンバータの使用上の注意
269
第 13 章 8/10 ビット A/D コンバータ
13.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータは , アナログ入力端子に入力されたアナログ電圧 ( 入力
電圧 ) をデジタル値に A/D 変換する機能をもつモジュールです。
■ 8/10 ビット A/D コンバータの特長
8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビッ
トもしくは 8 ビットのデジタル値に変換する機能があります。入力信号は , 8 チャネル
のアナログ入力端子から選択し , 変換起動は , ソフトウェア , 内部クロック , 外部端子
トリガの 3 種類から選択できます。
8/10 ビット A/D コンバータの特長を以下に示します。
• 変換時間は , 最小 5.0 µs( マシンクロック 33MHz 時 , サンプリング時間含む ) です。
• 変換方式は , サンプルホールド回路付 RC 逐次変換比較方式です。
• 10 ビットまたは 8 ビットの分解能が選択できます。
• アナログ入力端子は 8 チャネルからプログラムで選択可能です。
• A/D 変換終了時に割込み要求を発生できます。
• 割込み許可の状態では変換データ保護機能が働くため , 連続変換してもデータの欠
落がありません。
• 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 2( 立上りエッジ ), 外部
端子トリガ ( 立下りエッジ ) から選択できます。
■ 8/10 ビット A/D コンバータの変換モード
変換モードは , 表 13.1-1 に示す 3 種類があります。
表 13.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
単発変換モード
指定したチャネル (1 チャネルのみ )
を 1 回変換して終了
連続した複数のチャネル ( 最大 8 チャネ
ルまで指定可能 ) を 1 回変換して終了
連続変換モード
指定したチャネル (1 チャネルのみ )
を繰り返し変換
連続した複数のチャネル ( 最大 8 チャネ
ルまで指定可能 ) を繰り返し変換
停止変換モード
指定したチャネル (1 チャネルのみ )
を 1 回変換したら一時停止し , 次の
起動がかかるまで待機
連続した複数のチャネル ( 最大 8 チャネ
ルまで指定可能 ) を変換
ただし , 1 チャネル変換ごとに一時停止し ,
次の起動がかかるまで待機
270
スキャン変換動作
第 13 章 8/10 ビット A/D コンバータ
13.2
8/10 ビット A/D コンバータのブロックダイヤグラム
図 13.2-1 に , 8/10 ビット A/D コンバータのブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
AVSS
AVRH
AVRL
AVSS
MPX
D/Aコンバータ
入力回路
逐次比較レジスタ
比較器
R-bus
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
サンプル&
ホールド回路
デコーダ
データレジスタ
ADCR
A/D制御レジスタ1
A/D制御レジスタ2
16ビットリロードタイマ2
外部端子トリガ
φ
ADCS1,2
動作クロック
プリスケーラ
各ブロックの機能を以下に示します。
● A/D 制御ステータスレジスタ (ADCS1, ADCS2)
ソフトウェアによる起動 , 起動トリガの選択 , 変換モードの選択 , A/D 変換チャネルの
選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中の
表示をします。
● A/D データレジスタ (ADCR)
A/D 変換結果を格納するレジスタであり , A/D 変換の分解能を選択する機能もありま
す。
● クロックセレクタ
A/D 変換起動クロックを選択するセレクタです。起動クロックには , 16 ビットリロー
ドタイマ ch2 出力または外部端子トリガが選択できます。
271
第 13 章 8/10 ビット A/D コンバータ
● デコーダ
A/D 制御ステータスレジスタ (ADCS1) の ANE0 ∼ ANE2, ANS0 ∼ ANS2 ビットの設定
から , 使用するアナログ入力端子を選択する回路です。
● アナログチャネルセレクタ
8 本のアナログ入力端子の中から使用する端子を選択する回路です。
● サンプルホールド回路
アナログチャネルセレクタで選択された入力電圧を保持する回路です。A/D 変換を起
動した直後の入力電圧をサンプルホールドすることで , A/D 変換中 ( 比較中 ) の入力電
圧の変動の影響を受けずに変換できます。
● D/A コンバータ
サンプルホールドされた入力電圧と比較するための , 基準電圧を発生します。
● コンパレータ
サンプルホールドされた入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定
します。
● コントロール回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了すると , 変
換結果を A/D データレジスタ (ADCR) に格納し , 割込み要求を発生します。
272
第 13 章 8/10 ビット A/D コンバータ
13.3
8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子および端子のブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用ポートと兼用になっています。表 13.3-1 に端子の機能 ,
入出力形式 , 8/10 ビット A/D コンバータ使用時の設定などを示します。
表 13.3-1 8/10 ビット A/D コンバータの端子
機能
端子名
ch0
PK0/AN0
ch1
PK1/AN1
ch2
PK2/AN2
ch3
PK3/AN3
ch4
PK4/AN4
ch5
PK5/AN5
ch6
PK6/AN6
ch7
PK7/AN7
端子機能
入出力形式
プルアップ スタンバイ 端子の使用に必要な
I/O ポートの設定
設定
制御
CMOS 出力 /
ポート K
CMOS ヒス
入出力 /
テリシス入 なし
アナログ入力 力またはア
ナログ入力
なし
ポート K を入力設定
(DDRK: ビット 0 ∼
ビット 7=0)
アナログ入力に設定
(AICK: ビット 0 ∼
ビット 7=1)
273
第 13 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 13.3-1 に , 8/10 ビット A/D コンバータの端子のブロックダイヤグラムを示します。
図 13.3-1 PK0/AN0 ∼ PK7/AN7 端子のブロックダイヤグラム
AICR
PDR(ポートデータレジスタ)
アナログ入力
内部バスデータ
PDR リード
出力ラッチ
PDR ライト
端子
DDR(ポート方向レジスタ)
方向ラッチ
DDRライト
DDRリード
スタンバイ制御
<注意事項>
• 入力ポートとして使用する端子は , 対応する DDRK レジスタのビットを "0" に設定し ,
かつ外部端子にプルアップ抵抗を付加してください。
また AICR レジスタの対応するビットを "0" に設定してください。
• アナログ入力端子として使用する端子は , 対応する AICR レジスタのビットを "1" に設
定してください。このときの PDRK レジスタの読出し値は "0" になります。
274
第 13 章 8/10 ビット A/D コンバータ
13.4
8/10 ビット A/D コンバータのレジスタ
図 13.4-1 に , 8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 13.4-1 8/10 ビット A/D コンバータのレジスタ一覧
15
14
13
12
11
10
9
8
7
0000EBH
0000E6H
0000E4H
6
5
4
3
2
1
0
AICR
ADCS1
ADCS0
ADCR
275
第 13 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ 1(ADCS1)
13.4.1
A/D 制御ステータスレジスタ 1(ADCS1) は , ソフトウェアによる起動 , 起動トリガの
選択 , 割込み要求の許可 / 禁止 , 割込み要求の状態の確認 , 一時停止中および変換中
の確認をするレジスタです。
■ A/D 制御ステータスレジスタ 1(ADCS1)
図 13.4-2 に , A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要を示し
ます。
図 13.4-2 A/D 制御ステータスレジスタ 1(ADCS1) のレジスタ構成と機能概要
0000E6H
bit15
bit14
bit13
bit12
bit11
bit10
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
bit9
RESV
bit8
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
W
(0)
R/W
(0)
RESV
bit7・・・・bit0
(ADCS0)
予約ビット
このビットへは必ず "0" を書き込んでください。
A/D変換起動ビット
(ソフトウェア起動時のみ有効)
STRT
0
A/D変換機能を起動しない
1
A/D変換機能を起動する
STS1
STS0
A/D起動要因選択ビット
0
0
ソフトウェア起動
0
1
ゼロ検出起動またはソフトウェア起動
1
0
16ビットリロードタイマ起動またはソフトウェア起動
1
1
ゼロ検出起動、16ビットリロードタイマ起動
ソフトウェア起動
PAUS
一時停止フラグビット
0
A/D変換動作の一時停止は発生していない
1
A/D変換動作が一時停止中
INTE
割込み要求許可ビット
0
割込み要求出力の禁止
1
割込み要求出力の許可
割込み要求フラグビット
INT
リード時
0
A/D変換未終了
このビットのクリア
1
A/D変換終了
変化なし,他への影響なし
変換中ビット
BUSY
R/W:リード/ライト可能
W :ライトオンリ
0,1:初期値
276
ライト時
リード時
ライト時
0
A/D変換停止中
A/D変換強制停止
1
A/D変換動作中
変化なし,他への影響なし
第 13 章 8/10 ビット A/D コンバータ
[ ビット 15] BUSY: 変換中ビット
• A/D コンバータの動作表示ビットです。
• リード時 , このビットが "0" であれば A/D 変換停止中であることを示し , "1" であ
れば A/D 変換動作中であることを示します。
• ライト時 , このビットへの "0" の書込みによって A/D 変換動作は強制的に停止さ
れます。"1" の書込みでは , 変化せずほかへの影響はありません。
( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでく
ださい。
[ ビット 14] INT: 割込み要求フラグビット
• A/D 変換によって A/D データレジスタにデータがセットされれば , このビットは
"1" にセットされます。
• このビットと割込み要求許可ビット (ADCS:INTE) が "1" のとき , 割込み要求を発
生します。
• 書込み時は , "0" でこのビットがクリアされ , "1" では変化せずほかへの影響はあ
りません。
( 注意事項 ) このビットの"0"書込みによるクリアは, A/D停止中に行ってください。
[ ビット 13] INTE: 割込み要求許可ビット
• CPU への割込み出力の許可 / 禁止をするビットです。
• このビットと , 割込み要求フラグビット (ADCS:INT) が "1" のとき , 割込み要求を
発生します。
[ ビット 12] PAUS: 一時停止フラグビット
• A/D 変換動作が一時停止したときに "1" にセットされます。
• この A/D コンバータには , A/D データレジスタが 1 つしかないため , 連続変換モー
ドを使用したときに旧変換結果の CPU による読出しが完了していなければ , 新し
い変換結果の書込みにより旧変換データは失われてしまいます。したがって , 連
続変換モードを使用するときは , 基本的には変換終了ごとに変換結果をメモリに
転送するように設定しておく必要があります。ただし多重割込みなどで変換デー
タの転送が次の変換に間に合わない場合が想定できます。このビットはそのとき
の対処として考えられた機能で , 変換終了後にデータレジスタの内容を転送する
までの間 , このビットを "1" にセットし , その間は A/D 変換は停止し , 次の変換
データを格納しないようになっています。
[ ビット 11, ビット 10] STS1, STS0:A/D 起動要因選択ビット
• A/D 変換の起動要因の選択を行います。
• 起動要因が兼用になっている場合には , 最初に発生した起動要因で起動します。
( 注意事項 ) 起動要因は , 書換えと同時に変更されますので , A/D 変換動作中に書き
換える場合には,目的とする起動要因がない状態で切り換えてください。
[ ビット 9] STRT:A/D 変換起動ビット
• A/D 変換動作をソフトウェア的に起動するビットです。
• このビットに "1" を書き込むと A/D 変換が起動します。
• 停止変換モード時は , このビットによる再起動はかかりません。
( 注意事項 ) 強制停止とソフトウェア起動 (BUSY=0, STRT=1) を同時にしないでく
ださい。
[ ビット 8] RESV: 予約ビット
( 注意事項 ) このビットへは必ず "0" を書き込んでください。
277
第 13 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ 0(ADCS0)
13.4.2
A/D 制御ステータスレジスタ 0(ADCS0) は , 変換モードの選択と A/D 変換チャネル
の選択をするレジスタです。
■ A/D 制御ステータスレジスタ 0(ADCS0)
図 13.4-3 に , A/D 制御ステータスレジスタ 0(ADCS0) のレジスタ構成と機能概要を示し
ます。
図 13.4-3 A/D 制御ステータスレジスタ 0(ADCS0) のレジスタ構成と機能概要
0000E7H
bit15・・・・・bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
(ADCS1)
MD1
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
ANE2
ANE1
ANE0
A/D変換終了チャネル選択ビット
0
0
0
AN0端子
0
0
1
AN1端子
0
1
0
AN2端子
0
1
1
AN3端子
1
0
0
AN4端子
1
0
1
AN5端子
1
1
0
AN6端子
1
1
1
AN7端子
A/D変換開始チャネル選択ビット
ANS2
ANS1
ANS0
停止中
R/W:リード/ライト可能
0,1:初期値
278
変換中の
読出し
停止変換モード
で一時停止中
の読出し
変換中の
チャネル
番号
直前に
変換した
チャネル番号
0
0
0
AN0端子
0
0
1
AN1端子
0
1
0
AN2端子
0
1
1
AN3端子
1
0
0
AN4端子
1
0
1
AN5端子
1
1
0
AN6端子
1
1
1
AN7端子
MD1
MD0
0
0
単発変換モード1(動作中の再起動可能)
0
1
単発変換モード2(動作中の再起動不可)
1
0
連続変換モード (動作中の再起動不可)
1
1
停止変換モード (動作中の再起動不可)
A/D変換モード選択ビット
第 13 章 8/10 ビット A/D コンバータ
[ ビット 7, ビット 6] MD1, MD0:A/D 変換モード選択ビット
• A/D 変換機能時の変換モードを選択するビットです。
• MD1, MD0 の 2 ビット値によって , 単発変換モード 1, 単発変換モード 2, 連続変
換モード , 停止変換モードのいずれかが選択されます。
• それぞれのモードの意味は , 以下のとおりです。
- 単発変換モード 1
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D
変換を連続して , 1 度だけ行います。動作中の再起動が可能です。
- 単発変換モード 2
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D
変換を連続して , 1 度だけ行います。動作中の再起動はできません。
- 連続変換モード
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D
変換を連続して , BUSY ビットで強制停止するまで繰り返し行います。動作中
の再起動はできません。
- 停止変換モード
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネルまでの A/D
変換を 1 チャネルごとに一時停止しながら , BUSY ビットで強制停止するまで
繰り返します。動作中の再起動はできません。一時停止中の再起動は , STS1,
STS0 ビットで選択した起動要因の発生によります。
( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可はタイマ , 外部トリガ ,
ソフトすべての起動に適用されます。
[ ビット 5, ビット 4, ビット 3] ANS2, ANS1, ANS0:A/D 変換開始チャネル選択ビット
• A/D変換の開始チャネルの設定および変換中チャネル番号の確認を行うビット
です。
• A/D 変換を起動すると , これらのビットに書き込まれたチャネルから A/D 変換を
開始します。
• A/D 変換中は , 変換中のチャネル番号が読み出せます。停止変換モードでの一時
停止中は , 直前に変換したチャネルの番号が読み出せます。
[ ビット 2, ビット 1, ビット 0] ANE2, ANE1, ANE0:A/D 変換終了チャネル選択ビット
• A/D 変換の終了チャネルの設定を行うビットです。
• A/D変換を起動するとこれらのビットに書き込まれたチャネルまでA/D変換を行
います。
• ANS2 ∼ ANS0 と同じチャネルを設定するとそのチャネルのみ変換を行います。
また,連続変換モードまたは停止変換モードを設定しているときは,これらのビッ
トで設定されたチャネルまでの変換が終わると ANS2 ∼ ANS0 で設定された開始
チャネルに戻ります。設定チャネルが 開始チャネル>終了チャネルのときは , 開
始チャネルから AN7 まで変換し , さらに AN0 から終了チャネルまで変換し , 1 度
目の変換動作を終了します。
279
第 13 章 8/10 ビット A/D コンバータ
<注意事項>
• A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0) に開始チャネルを設定したあ
とに , A/D 変換モード設定ビット (MD1,MD0) および A/D 変換終了チャネル選択ビット
(ANE2, ANE1, ANE0) をリードモディファイライト系命令で設定しないでください。
• ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換チャネルが読
み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネルを設定したあとに , MD1,
MD0 ビットおよび ANE2, ANE1, ANE0 ビットをリードモディファイライト系命令で設
定した場合 , ANE2, ANE1, ANE0 ビットの値が書き換わる可能性があります。
280
第 13 章 8/10 ビット A/D コンバータ
13.4.3
A/D データレジスタ (ADCR)
A/D データレジスタ (ADCR) は , A/D 変換結果を格納するレジスタであり , A/D 変換
の分解能を選択する機能もあります。
■ A/D データレジスタ (ADCR)
図 13.4-4 に , A/D データレジスタ (ADCR) のレジスタ構成と機能概要を示します。
図 13.4-4 A/D データレジスタ (ADCR) のレジスタ構成と機能概要
0000E4H
bit9
bit8
D9
D8
-
(X)
R
(X)
R
(X)
bit5
bit4
bit3
bit2
bit1
bit0
D5
D4
D3
D2
D1
D0
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit15
bit14
bit13
bit12
bit11
bit10
S10
ST1
ST0
CT1
CT0
-
W
(0)
W
(0)
W
(1)
W
(0)
W
(1)
bit7
bit6
D7
D6
R
(X)
R
(X)
D0~D9
A/Dデータビット
変換データ
CT1
CT0
0
0
0
1
1
0
1
1
ST1
ST0
0
0
0
1
1
0
1
1
S10
R :リードオンリ
W :ライトオンリ
0,1:初期値
コンペア時間設定ビット
サンプリング時間設定ビット
A/D変換分解能選択ビット
0
10ビット分解能モード(D9~D0)
1
8ビット分解能モード(D7~D0)
281
第 13 章 8/10 ビット A/D コンバータ
[ ビット 15] S10:A/D 変換分解能選択ビット
• A/D 変換の分解能を選択するビットです。
• このビットに "0" を書き込むと 10 ビット分解能が選択され , "1" を書き込むと 8
ビット分解能が選択されます。
( 注意事項 ) 分解能によって , 使用されるデータビットが異なります。
[ ビット 14, ビット 13] ST1, ST0: サンプリング時間設定ビット
• A/D 変換時のサンプリング時間を選択するビットです。
• A/D が起動されると , このビットに設定された時間 , アナログ入力が取り込まれ
ます。
( 注意事項 ) 16MHz 動作時に "00", 8MHz 用の設定を行うと正常なアナログ電圧を
取り込めない場合があります。
[ ビット 12, ビット 11] CT1, CT0: コンペア時間設定ビット
• A/D 変換時のコンペア時間を選択するビットです。
• アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , このビットに設定さ
れた時間後に変換結果のデータが確定し , このレジスタのビット 9 ∼ビット 0 に
格納されます。
( 注意事項 ) 16MHz動作時に"00", 8MHz用の設定を行うと正常なアナログ変換値が
得られない場合があります。
[ ビット 10]
空きビット
[ ビット 9 ∼ビット 0] D9 ∼ D0
• A/D 変換の結果が格納され , レジスタは 1 回の変換終了ごとに書き換えられます。
• 通常は , 最終変換値が格納されます。
• 本レジスタの初期値は不定です。
( 注意事項 ) 変換データ保護機能があります。
A/D 変換中に本ビットにデータを書き込まないようにしてください。
<注意事項>
S10 ビットの書換えは必ず変換動作前の A/D 動作が停止の状態で行ってください。変換
後の書換えをしたときは , ADCR の内容が不定となります。
ADCR レジスタの読出しは , 10 ビットモードを指定したときには必ずワード転送命令を
使用してください。
282
第 13 章 8/10 ビット A/D コンバータ
13.5
割込み
8/10 ビット A/D コンバータは , A/D 変換で , A/D データレジスタにデータがセット
されることで , 割込み要求を発生させることができます。
■ 8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータの割込み制御ビットと割込み要因を , 表 13.5-1 に示します。
表 13.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS1:INT
割込み要求許可ビット
ADCS1:INTE
割込み要因
A/D 変換結果の A/D データレジスタへの書込み
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) にセットされ
ると , A/D 制御ステータスレジスタ (ADCS1) の INT ビットが "1" にセットされます。
このとき , 割込み要求が許可 (ADCS1:INTE=1) されていると , 割込みコントローラに割
込み要求を出力します。
283
第 13 章 8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータの動作
13.6
8/10 ビット A/D コンバータには , 単発変換モード , 連続変換モード , 停止変換モード
の 3 種類のモードがあります。以下に , 各モードでの動作を説明します。
■ 単発変換モードの動作
単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し
ます。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した
1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 13.6-1 の設定
が必要です。
図 13.6-1 単発変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCS0, BUSY INT INTE PAUS STS1 STS0
ADCS1
◇
◇
◇
◇
◇
◇
ADCR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
◆
◆
◆
◆
◆
STRT
◇
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
◇
◇
−
◇
◇
◇
◇
◇
◇
変換データを格納
AICK
◆
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0:"0" を設定
● 参考
単発変換モードでの変換順序の例を以下に示します。
• ANS="000B", ANE="011B" のとき :AN0 → AN1 → AN2 → AN3 →終了
• ANS="110B", ANE="010B" のとき :AN6 → AN7 → AN0 → AN1 → AN2 →終了
• ANS="011B", ANE="011B" のとき :AN3 →終了
284
第 13 章 8/10 ビット A/D コンバータ
■ 連続変換モードの動作
連続変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると ANS ビットで設定
されたアナログ入力に戻り , A/D 変換動作を続けます。開始チャネルと終了チャネルが
同じとき (ANS=ANE) は ANS で指定したチャネルだけの変換を繰り返します。連続変
換モードで動作させるには , 図 13.6-2 に示す設定が必要です。
図 13.6-2 連続変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
ADCS0, BUSY INT INTE PAUS STS1 STS0 STRT
予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
ADCS1
0
1
0
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
◇
ADCR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
◆
◆
◆
◆
◆
−
変換データを格納
AICK
◆
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0:"0" を設定
1:"1" を設定
● 参考
連続変換モードでの変換順序の例を以下に示します。
• ANS="000B", ANE="011B" のとき :AN0 → AN1 → AN2 → AN3 → AN0 →繰返し
• ANS="110B", ANE="010B" のとき :AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し
• ANS="011B", ANE="011B" のとき :AN3 → AN3 →繰返し
285
第 13 章 8/10 ビット A/D コンバータ
■ 停止変換モードの動作
停止変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を 1 チャネル
ごとに一時停止しながら変換していき , ANE ビットで設定された終了チャネルまで変
換が終わると ANS ビットで設定されたアナログ入力に戻り , A/D 変換と一時停止の動
作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は ANS ビットで
指定したチャネルだけの変換を繰り返します。一時停止時の変換の再起動は , STS1,
STS0 ビットで指定した起動要因を発生します。停止変換モードで動作させるには , 図
図 13.6-3 の設定が必要です。
図 13.6-3 停止変換モードでの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCS0, BUSY INT INTE PAUS STS1 STS0
ADCS1
◇
◇
◇
◇
◇
◇
ADCR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
◆
◆
◆
◆
◆
STRT
◇
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
−
1
0
◇
◇
◇
◇
◇
◇
変換データを格納
AICK
◆
◆
◆
◇:使用ビット
◆:使用する端子の対応するビットに "1" を設定
0:"0" を設定
1:"1" を設定
● 参考
停止変換モードでの変換順序の例を以下に示します。
• ANS="000B", ANE="011B" のとき :AN0 →一時停止→ AN1 →一時停止→ AN2 →
一時停止→ AN0 →繰返し
• ANS="110B", ANE="001B" のとき :AN6 →一時停止→ AN7 →一時停止→ AN0 →
一時停止→ AN1 →一時停止→ AN6 →繰返し
• ANS="011B", ANE="011B" のとき :AN3 →一時停止→ AN3 →一時停止→繰返し
286
第 13 章 8/10 ビット A/D コンバータ
13.7
A/D 変換データ保護機能
割込み許可状態で A/D 変換を実行すると , 変換データ保護機能が働きます。
■ A/D 変換データ保護機能
A/D コンバータは , 変換データ格納用のデータレジスタが 1 つしかないため , A/D 変換
をすると , 変換終了時に , データレジスタ内の格納データを書き換えます。したがって ,
変換データのメモリへの転送が間に合わないと前回のデータが一部欠落することにな
ります。この対策として , 割込み許可 (INTE=1) のときは , 以下のようにデータ保護機
能が働くようになっています。
変換データが A/D データレジスタ (ADCR) に格納されると A/D 制御ステータスレジス
タ 1(ADCS1) の INT ビットが "1" にセットされます。この INT ビットが "1" の間 , A/D
変換は一時停止状態になります。割込みルーチン内で , A/D データレジスタ (ADCR) を
メモリなどに転送した後 , INT ビットをクリアすると停止状態が解除されます。
<注意事項>
• 変換データ保護機能は , 割込み許可 (ADCS1:INTE=1) 状態でしか動作しません。
• 一時停止中に再起動をかけると待機データが壊れます。
287
第 13 章 8/10 ビット A/D コンバータ
13.8
8/10 ビット A/D コンバータの使用上の注意
ここでは , 8/10 ビット A/D コンバータを使用するときの注意点を示します。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子
A/D 入力端子はポート K の入出力端子と兼用になっており , ポート K 方向レジスタ
(DDRK) とアナログ入力許可レジスタ (AICR) で切り換えて , 使用するようになってい
ます。アナログ入力として使用する端子では , DDRR の対応するビットに "0" を書き込
んでポート設定を入力にしたうえで , AICR レジスタでアナログ入力モードに設定し ,
ポート側の入力ゲートを固定してください。ポート入力モードの状態では中間レベル
の信号が入力されると , ゲートに入力リーク電流が流れます。
● 内部タイマで使用するときの注意
A/D コンバータを内部タイマで起動するとき , A/D 制御ステータスレジスタ 1(ADCS1)
の STS1, STS0 ビットで設定しますが , このとき内部タイマの入力値は , インアクティ
ブ側 ( 内部タイマのときは "L") にしてください。アクティブ側にすると , ADCS レジス
タへの書込みと同時に動作し始める場合があります。
● A/D コンバータの電源・アナログ入力の投入順序
A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ∼ AN7) への印
加は , 必ずデジタル電源 (VCC) の投入後かまたは同時に投入してください。また , 電源
切断時は , A/D コンバータの電源およびアナログ入力の切断後にデジタル電源 (VCC) を
切断するかまたは同時に切断してください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため , A/D コンバータの電源 (AVCC) は , デジタル電源 (VCC) の電
圧を超えないようにしてください。
288
第 14 章
8 ビット D/A コンバータ
この章では , 8 ビット D/A コンバータの概要 , ブ
ロックダイヤグラム , レジスタの構成 / 機能および
8 ビット D/A コンバータの動作について説明しま
す。
14.1 8 ビット D/A コンバータの概要
14.2 8 ビット D/A コンバータのブロックダイヤグラム
14.3 8 ビット D/A コンバータのレジスタ
14.4 8 ビット D/A コンバータの動作説明
289
第 14 章 8 ビット D/A コンバータ
14.1
8 ビット D/A コンバータの概要
8 ビット D/A コンバータは , 8 ビット分解能 , R-2R 方式の D/A コンバータです。
■ 8 ビット D/A コンバータの特長
D/A コンバータ 3 チャネル内蔵しており , D/A 制御レジスタにてそれぞれ独立に出力制
御を行うことができます。
290
第 14 章 8 ビット D/A コンバータ
14.2
8 ビット D/A コンバータのブロックダイヤグラム
8 ビット D/A コンバータは , 次の 3 つのブロックで構成されています。
• 8 ビット抵抗ラダー
• データレジスタ
• コントロールレジスタ
■ 8 ビット D/A コンバータのブロックダイヤグラム
図 14.2-1 に , 8 ビット D/A コンバータのブロックダイヤグラムを示します。
図 14.2-1 8 ビット D/A コンバータのブロックダイヤグラム
R-bus
DA17~DA10
DA27~DA20
DA07~DA00
DAVC
DAVC
DAVC
DA27
DA17
DA07
DA20
DA10
DA00
DAE2
スタンバイ制御
DAE1
スタンバイ制御
DAE0
スタンバイ制御
D/A出力
ch2
D/A出力
ch1
D/A出力
ch0
■ 8 ビット D/A コンバータの端子
D/A コンバータの端子は専用端子となっています。
291
第 14 章 8 ビット D/A コンバータ
14.3
8 ビット D/A コンバータのレジスタ
図 14.3-1 に , 8 ビット D/A コンバータのレジスタ一覧を示します。
■ 8 ビット D/A コンバータのレジスタ一覧
図 14.3-1 8 ビット D/A コンバータのレジスタ一覧
bit
DADR0
000E3H
bit
DADR1
000E2H
bit
DADR2
000E1H
bit
DACR0
000DFH
bit
DACR1
000DEH
bit
DACR2
000DDH
292
7
6
5
4
3
2
1
DA07
DA06
DA05
DA04
DA03
DA02
DA01
15
14
13
12
11
10
9
DA17
DA16
DA15
DA14
DA13
DA12
DA11
23
22
21
20
19
18
17
DA27
DA26
DA25
DA24
DA23
DA22
DA21
7
6
5
4
3
2
1
−
−
−
−
−
−
−
15
14
13
12
11
10
9
−
−
−
−
−
−
−
23
22
21
20
19
18
17
−
−
−
−
−
−
−
0
DA00 D/A データレジスタ 0
8
DA10 D/A データレジスタ 1
16
DA20 D/A データレジスタ 2
0
DAE0 D/A コントロールレジスタ 0
8
DAE1 D/A コントロールレジスタ 1
16
DAE2 D/A コントロールレジスタ 2
第 14 章 8 ビット D/A コンバータ
D/A コントロールレジスタ (DACR0, DACR1,
DACR2)
14.3.1
D/A コントロールレジスタ (DACR0, DACR1, DACR2) は , D/A コンバータ出力の許
可 / 禁止を行うレジスタです。
■ D/A コントロールレジスタ (DACR0, DACR1, DACR2)
D/A コントロールレジスタ (DACR0, DACR1, DACR2) のレジスタ構成は以下のとおり
です。
bit
DACR0
0000DFH
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DAE0
初期値
-------0B
初期値
-------0B
初期値
-------0B
R/W
bit
DACR1
0000DEH
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
DAE1
R/W
bit
DACR2
0000DDH
23
22
21
20
19
18
17
16
−
−
−
−
−
−
−
DAE2
R/W
[ ビット 0] DAE2, DAE1, DAE0
• DAE2, DAE1, DAE0 は , それぞれ ch2, ch1, ch0 の出力制御を行います。
• "1" の場合 , D/A 出力の許可 , "0" の場合 , D/A 出力を禁止します。
• リセットにより , "0" に初期化されます。また , リード / ライト可能です。
• 出力禁止時 , D/A コンバータ出力端子は "0" レベル出力となります。
293
第 14 章 8 ビット D/A コンバータ
D/A データレジスタ (DADR2, DADR1, DADR0)
14.3.2
D/A データレジスタ (DADR2, DADR1, DADR0) は , D/A コンバータの出力電圧設定
を行うレジスタです。
■ D/A データレジスタ (DADR2, DADR1, DADR0)
D/A データレジスタ (DADR2, DADR1, DADR0) のレジスタ構成は以下のとおりです。
bit
DADR0
0000E3H
bit
DADR1
0000E2H
bit
DADR2
0000E1H
7
6
5
4
3
2
1
0
DA07
DA06
DA05
DA04
DA03
DA02
DA01
DA00 初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
9
8
DA17
DA16
DA15
DA14
DA13
DA12
DA11
DA10 初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
23
22
21
20
19
18
17
16
DA27
DA26
DA25
DA24
DA23
DA22
DA21
DA20 初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
[ ビット 23 ∼ビット 16] DA27 ∼ DA20
• D/A コンバータ ch2 の出力電圧設定を行います。
• リセットによって初期化されません。リード / ライト可能です。
[ ビット 15 ∼ビット 8] DA17 ∼ DA10
• D/A コンバータ ch1 の出力電圧設定を行います。
• リセットによって初期化されません。リード / ライト可能です。
[ ビット 7 ∼ビット 0] DA07 ∼ DA00
• D/A コンバータ ch0 の出力電圧設定を行います。
• リセットによって初期化されません。リード / ライト可能です。
294
第 14 章 8 ビット D/A コンバータ
14.4
8 ビット D/A コンバータの動作説明
D/A データレジスタ (DADR) に D/A 出力値をセットし , D/A コントロールレジスタ
(DACR) の該当する D/A 出力チャネルの許可ビットを "1" にセットすることによっ
て , D/A 出力が開始されます。
■ 8 ビット D/A コンバータの動作
D/A 出力の禁止を行うと , D/A コンバータは "0" 出力状態にクリアされ , 直流電流の流
れる経路は , 遮断されます。これは , ストップモード時にも同様です。
D/A コンバータの出力には , バッファアンプを内蔵していません。また , 出力にアナロ
グスイッチ ( ≒ 100Ω) を直列に挿入していますので , 外部の出力負荷には必要とされ
るセットリング時間を考慮し , 十分注意してください。
D/A コンバータの出力電圧は , 0V から 255/256 × DAVC の範囲となります。DAVC 電
圧を外部で調節することによって , 出力電圧範囲を変えることが可能です。
D/A コンバータの出力電圧の論理値を表 14.4-1 に示します。
表 14.4-1 8 ビット D/A コンバータの出力電圧の論理値
DA07 ∼ DA00
DA17 ∼ DA10
DA27 ∼ DA20
の設定値
8 ビット D/A コンバータ
00H
0/256 × DAVC(=0V)
01H
1/256 × DAVC
02H
2/256 × DAVC
:
:
FDH
253/256 × DAVC
FEH
254/256 × DAVC
FFH
255/256 × DAVC
295
第 14 章 8 ビット D/A コンバータ
296
第 15 章
UART
この章では , UART の概要 , ブロックダイヤグラム ,
端子 , レジスタの構成 / 機能および UART の動作に
ついて説明します。
15.1 UART の概要
15.2 UART のブロックダイヤグラム
15.3 UART の端子
15.4 レジスタ
15.5 UART の割込み
15.6 受信割込み発生とフラグセットのタイミング
15.7 送信割込み発生とフラグセットのタイミング
15.8 ボーレート
15.9 UART の動作
15.10 UART の使用上の注意
297
第 15 章 UART
15.1
UART の概要
UART は , 外部装置と同期通信もしくは非同期通信 ( 調歩同期 ) をするための , 汎用
のシリアルデータ通信インタフェースです。通常の双方向通信機能 ( ノーマルモー
ド ) だけではなく , マスタ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ
側だけサポート ) があります。
■ UART の特長
UART は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー
タ通信インタフェースで , 表 15.1-1 に示す機能をもっています。
表 15.1-1 UART の機能
機能
データバッファ
全二重ダブルバッファ
転送モード
クロック同期 ( スタート / ストップビットなし )
クロック非同期 ( 調歩周期 )
ボーレート
専用ボーレートジェネレータあり , 8 種類選択可能
外部クロック入力可能
内部クロック ( 各チャネルに対応する 16 ビットリロードタイマか
ら供給される内部クロックを利用可能 )
データ長
7 ビット ( 非同期ノーマルモード時のみ )
8 ビット
信号方式
NRZ(Non Return to Zero) 方式
受信エラー検出
フレーミングエラー
オーバランエラー
パリティエラー ( マルチプロセッサモード時は不可 )
割込み要求
受信割込み ( 受信完了 , 受信エラー検出 )
送信割込み ( 送信完了 )
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
1( マスタ ) 対 n( スレーブ ) 間の通信が可能
( マスタ側だけサポート )
<注意事項>
UART は , クロック同期転送時にスタートビット / ストップビットは付加されず , データ
だけ転送されます。
298
第 15 章 UART
表 15.1-2 に , UART の動作モードを示します。
表 15.1-2 UART の動作モード
データ長
動作モード
同期方式
パリティなし
0
ノーマルモード
1
マルチプロセッサモード
2
ノーマルモード
ストップビット長
パリティあり
7 ビットまたは 8 ビット
非同期
8+1*1
―
非同期
8
―
同期
1 ビットまたは
2 ビット *2
なし
― : 設定不可
*1 :"+1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。
*2 : 受信時のストップビットは 1 ビットのみ検出可能です。
299
第 15 章 UART
15.2
UART のブロックダイヤグラム
図 15.2-1 に , UART のブロックダイヤグラムを示します。
■ UART のブロックダイヤグラム
図 15.2-1 UART のブロックダイヤグラム
コントロールバス
受信割込み信号
#26~29*
専用ボーレート
ジェネレータ
送信割込み信号
#31~34*
送信クロック
クロック
セレクタ
16ビット
リロードタイマ
受信クロック
<SCK0~SCK3>
受信制御回路
端子
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
受信用
シフトレジスタ
送信用
シフトレジスタ
<SOT0~SOT3>
端子
<SIN0~SIN3>
端子
受信状態判定回路
SIDR0~SIDR3
受信終了
SODR0~SODR3
送信開始
受信エラー
発生信号
(CPUへ)
内部データバス
SMR0~
SMR3
レジスタ
MD1
MD0
CS2
CS1
CS0
SCKE
SOE
*:割込み番号
300
SCR0~
SCR3
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR0~
SSR3
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
第 15 章 UART
各ブロックの機能を以下に示します。
● クロックセレクタ
専用ボーレートジェネレータ , 外部入力クロック , 内部クロック (16 ビットリロードタ
イマから供給されるクロック ) から送受信クロックを選択します。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路および受信パリティカ
ウンタで構成されています。受信ビットカウンタは受信データのカウントをして , 設定
したデータ長に応じて , 1 データの受信を完了すれば , 受信割込み要求を発生します。
スタートビット検出回路は , シリアル入力信号からスタートビットを検出する回路で ,
スタートビットを検出すると設定された転送速度に応じてシフトしながら SIDR0 ∼
SIDR3 レジスタにデータを書き込みます。受信パリティカウンタは , 受信データのパ
リティを計算します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路および送信パリティカウンタ
で構成されています。送信ビットカウンタは送信データのカウントをして , 設定した
データ長に応じて , 1 データの送信を完了すれば , 送信割込み要求を発生します。送信
スタート回路は , SODR0 ∼ SODR3 の書込みで送信動作を開始します。送信パリティ
カウンタは , パリティありのとき送信するデータのパリティビットを生成します。
● 受信用シフトレジスタ
SIN 端子から入力された受信データを , 1 ビットずつビットシフトしながら取込み , 受
信終了すれば , SIDR0 ∼ SIDR3 レジスタに受信データを転送します。
● 送信用シフトレジスタ
SODR0 ∼ SODR3 に書き込まれたデータを送信用シフトレジスタに転送し , 1 ビットず
つシフトしながら SOT 端子に出力します。
● モードレジスタ 1(SMR0 ∼ SMR3)
動作モードの選択 , クロック入力ソースの選択 , 専用ボーレートジェネレータの設定 ,
専用ボーレートジェネレータ使用時のクロックレート ( クロック分周値 ) の選択 , シリ
アルデータの端子への出力許可 / 禁止 , クロックの端子への出力許可 / 禁止を設定しま
す。
● 制御レジスタ 1(SCR0 ∼ SCR3)
パリティの有無の設定 , パリティの選択 , ストップビット長の設定 , データ長の設定 ,
モード 1 でのフレームデータ形式の選択 , フラグのクリア , 送信の許可 / 禁止 , 受信の
許可 / 禁止の設定をします。
● ステータスレジスタ 1(SSR0 ∼ SSR3)
送受信やエラーの状態の確認と送受信割込み要求の許可 / 禁止の設定をします。
● インプットデータレジスタ 1(SIDR0 ∼ SIDR3)
受信データを保持するレジスタです。シリアル入力が変換されてこのレジスタに格納
されます。
● アウトプットデータレジスタ 1(SODR0 ∼ SODR3)
送信データを設定するレジスタです。このレジスタに書き込まれたデータが , シリアル
変換されて出力されます。
301
第 15 章 UART
15.3
UART の端子
UART の端子および端子のブロックダイヤグラムを示します。
■ UART の端子
UART の端子は , 汎用ポートと兼用になっています。表 15.3-1 に端子の機能 , 入出力形
式および UART 使用時の設定などを示します。
表 15.3-1 UART の端子 (1 / 2)
入出力形式
プル
アップ
選択
スタン
バイ
制御
オープン
ドレイン
制御
端子の使用に
必要な設定
端子名
端子機能
PH0/SIN0
ポート H 入出力 /
シリアルデータ入力
入力ポートに設定
(DDRH: ビット 0=0)
PH1/
SOT0
ポート H 入出力 /
シリアルデータ出力
出力許可に設定
(SMR0:SOE=1)
CMOS 出力 /
CMOS
あり
ヒステリシス入力
あり
あり
クロック入力時入
力ポートに設定
(DDRH: ビット 2=0)
PH2/
SCK0/
TO0
ポート H 入出力 /
シリアルクロック
入出力
PH3/SIN1
ポート H 入出力 /
シリアルデータ入力
入力ポートに設定
(DDRH: ビット 3=0)
PH4/
SOT1
ポート H 入出力 /
シリアルデータ出力
出力許可に設定
(SMR1:SOE=1)
クロック出力時出
力許可に設定
(SMR0:SCKE=1)
CMOS 出力 /
CMOS
あり
ヒステリシス入力
あり
あり
クロック入力時入
力ポートに設定
(DDRH ビット 5=0)
PH5/
SCK1/
TO1
ポート H 入出力 /
シリアルクロック
入出力
PI0/SIN2
ポート I 入出力 /
シリアルデータ入力
入力ポートに設定
(DDRI: ビット 0=0)
PI1/SOT2
ポート I 入出力 /
シリアルデータ出力
出力許可に設定
(SMR2:SOE=1)
PI2/
SCK2/
TO2
302
ポート I 入出力 /
シリアルクロック
入出力
クロック出力時出
力許可に設定
(SMR1:SCKE=1)
CMOS 出力 /
CMOS
あり
ヒステリシス入力
あり
あり
クロック入力時入
力ポートに設定
(DDRI: ビット 2=0)
クロック出力時出
力許可に設定
(SMR2:SCKE=1)
第 15 章 UART
表 15.3-1 UART の端子 (2 / 2)
スタン
バイ
制御
オープン
ドレイン
制御
端子の使用に
必要な設定
端子機能
PI3/SIN3
ポート I 入出力 /
シリアルデータ入力
入力ポートに設定
(DDRI: ビット 3=0)
PI4/SOT3
ポート I 入出力 /
シリアルデータ出力
出力許可に設定
(SMR3:SOE=1)
PI5/
SCK3/
TO3
入出力形式
プル
アップ
選択
端子名
ポート I 入出力 /
シリアルクロック
入出力
CMOS 出力 /
CMOS ヒステリシ あり
ス入力
あり
あり
クロック入力時入
力ポートに設定
(DDRI: ビット 5=0)
クロック出力時出
力許可に設定
(SMR3:SCKE=1)
■ UART の端子のブロックダイヤグラム
図 15.3-1 に , UART の端子のブロックダイヤグラムを示します。
図 15.3-1 UART の端子のブロックダイヤグラム
Data Bus
リソース入力
0
1
PDR read
pin
0
PDR
リソース出力
1
リソース出力許可
DDR
OCR
PCR
PDR
DDR
OCR
PCR
:
:
:
:
ポートデータレジスタ
データ方向レジスタ
オープンドレイン制御レジスタ
プルアップ抵抗制御レジスタ
303
第 15 章 UART
15.4
レジスタ
図 15.4-1 に , UART のレジスタ一覧を示します。
■ UART のレジスタ一覧
図 15.4-1 UART のレジスタ一覧
アドレス
ch0:00001EH,00001FH
ch1:000022H, 000023H
ch2:000026H, 000027H
ch3:00002AH, 00002BH
ch0:00001CH,00001DH
ch1:000020H, 000021H
ch2:000024H, 000025H
ch3:000028H, 000029H
ch0:00004EH
ch1:00004CH
ch2:000052H
ch3:000050H
304
bit15...............................................bit8
bit7...............................................bit0
SCR ( 制御レジスタ )
SMR ( モードレジスタ )
SSR ( ステータスレジスタ )
SIDR/SODR
( インプット / アウトプット
データレジスタ )
CDCR
( 通信プリスケーラ
コントロールレジスタ )
空き
第 15 章 UART
15.4.1
制御レジスタ (SCR0 ∼ SCR3)
制御レジスタ (SCR0 ∼ SCR3) は , パリティの設定 , ストップビット長やデータ長の
選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリア , 送受信
動作の許可 / 禁止を設定するレジスタです。
■ 制御レジスタ (SCR0 ∼ SCR3)
図 15.4-2 に , 制御レジスタ (SCR0 ∼ SCR3) のレジスタ構成と機能概要を示します。
図 15.4-2 制御レジスタ (SCR0 ∼ SCR3) のレジスタ構成と機能概要
アドレス
bit15
ch0: 0000_001EH
ch1: 0000_0022H
ch2: 0000_0026H
ch3: 0000_002AH
PEN
P
SBL
R/W
R/W
R/W
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7.............bit0
CL
A/D
REC
RXE
TXE
(SMR)
R/W
R/W
W
R/W
R/W
R/W:リード / ライト可能
W:ライトオンリ
TXE
初期値 00000100B
送信動作許可ビット
CL
データ長選択ビット
0
送信動作を禁止
0
7 ビット
1
送信動作を許可
1
8 ビット
RXE
受信動作許可ビット
SBL
ストップビット長選択ビット
0
受信動作を禁止
0
1 ビット長
1
受信動作を許可
1
2 ビット長
REC
受信エラーフラグクリアビット
0
FRE, ORE, PE フラグをクリア
1
変化なし , 他への影響なし
A/D
0
1
アドレス / データ選択ビット
パリティ選択ビット
P
パリティありのとき (PEN=1) のみ有効
0
偶数パリティ
1
奇数パリティ
PEN
送信許可ビット
データフレーム
0
パリティなし
アドレスフレーム
1
パリティあり
0, 1:下線付は初期値
[ ビット 15] PEN: パリティイネーブルビット
シリアルデータに対して , パリティビットの付加 ( 送信時 ) および検出 ( 受信時 ) をす
るどうかを選択します。
( 注意事項 ) 動作モード 1, 2 を選択した場合は , パリティは使用できません。このビッ
トは常に "0" を設定してください。
305
第 15 章 UART
[ ビット 14] P: パリティ選択ビット
パリティあり (PEN=1) のとき , 奇数パリティ / 偶数パリティを選択します。
[ ビット 13] SBL: ストップビット長選択ビット
非同期転送モード時の送信データのフレームエンドマークである , ストップビット
のビット長を選択します。
( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出します。
[ ビット 12] CL: データ長選択ビット
送受信データのデータ長を指定します。
( 注意事項 ) 7 ビットを選択できるのは , 動作モード 0( 非同期 ) だけです。動作モー
ド 1 ( マルチプロセッサモード ), 動作モード 2( 同期 ) では , 必ず 8 ビッ
ト (CL=1) を選択してください。
[ ビット 11] A/D: アドレス / データ選択ビット
• マルチプロセッサモード ( モード 1) で , 送受信するフレームのデータ形式を指定
します。
• このビットが"0"のとき通常データとなり, "1"のときアドレスデータとなります。
[ ビット 10] REC: 受信エラーフラグクリアビット
• ステータスレジスタ (SSR) の FRE, ORE, PE フラグをクリアするビットです。
• このビットに "0" を書き込むと , FRE, ORE, PE フラグがクリアされ , "1" の書込み
では , 変化せず他への影響はありません。
( 注意事項 ) UART 動作中の受信割込み許可状態では , FRE, ORE, PE フラグのいず
れかが "1" であるときのみ , REC ビットをクリアしてください。
[ ビット 9] RXE: 受信動作許可ビット
• UART の受信動作を制御します。
• このビットが "0" のとき , 受信動作は禁止となり , "1" のとき受信動作が許可とな
ります。
( 注意事項 ) 受信中に受信動作を禁止したときには , そのフレームの受信を完了し ,
受信データバッファ (SIDR0 ∼ SIDR3) に受信データを格納した時点で
受信動作を停止します。
[ ビット 8] TXE: 送信動作許可ビット
• UART の送信動作を制御します。
• このビットが "0" のとき , 送信動作は禁止となり , "1" のとき送信動作が許可とな
ります。
( 注意事項 ) 送信中に送信動作を禁止したときには , 送信データバッファ (SODR0 ∼
SODR3) にデータがなくなった後で送信動作を停止します。"0" の書込み
は , SODR0 ∼ SODR3 にデータを書き込んだ後は , 一定の期間を置いて
行ってください。一定の期間は , クロック非同期転送モード時は , ボー
レートの 1/16 時間です。クロック同期転送モード時は , ボーレートの時
間です。
306
第 15 章 UART
モードレジスタ (SMR0 ∼ SMR3)
15.4.2
モードレジスタ (SMR0 ∼ SMR3) は , 動作モードの選択 , ボーレートクロックの選
択,シリアルデータとクロックの端子への出力許可 / 禁止を設定するレジスタです。
■ モードレジスタ (SMR0 ∼ SMR3)
図 15.4-3 に , モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要を示します。
図 15.4-3 モードレジスタ (SMR0 ∼ SMR3) のレジスタ構成と機能概要
アドレス
bit15.............bit8
bit7
bit6
(SCR)
MD1
MD0
CS2
R/W
R/W
R/W
ch0: 0000_001FH
ch1: 0000_0023H
ch2: 0000_0027H
ch3: 0000_002BH
bit5
bit4
bit3
bit2
bit1
bit0
CS1
CS0
−
SCKE
SOE
R/W
R/W
−
R/W
R/W
R/W:リード / ライト可能
初期値 00000-00B
SOE
シリアルデータ出力許可ビット
0
汎用入出力ポートにします。
1
UART のシリアルデータ出力端子にします。
SCKE
シリアルクロック出力許可ビット
0
汎用入出力ポートまたは UART のクロック入力端子にします。
1
UART のクロック出力端子にします。
CS2 ∼ CS0
クロック選択ビット
"000B" ∼ "101B" 専用ボーレートジェネレータによるボーレートです。
"110B"
内部タイマ (16 ビットリロードタイマ ) によるボーレートです。
"111B"
UART のクロック出力端子にします。
MD1
動作モード選択ビット
MD0
動作モード
0
0
0
非同期 ( ノーマルモード )
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
-
設定禁止
0, 1:下線付は初期値
307
第 15 章 UART
[ ビット 7, ビット 6] MD1, MD0: 動作モード選択ビット
これらのビットにより動作モードを選択します。
( 注意事項 ) 動作モード 1( マルチプロセッサモード ) は , マスタスレーブ型通信の
マスタとしてのみ使用できます。UART は , 受信時にアドレス / データ
判別機能がないためスレーブとしては使用できません。
[ ビット 5, ビット 4, ビット 3] CS2 ∼ CS0: クロック選択ビット
• ボーレートのクロックソースを選択します。専用ボーレートジェネレータを選択
した場合には , 同時にボーレートも決定されます。
• 専用ボーレートジェネレータ選択時は非同期転送モード時 5 種類 , 同期転送モー
ド時 3 種類の計 8 種類のボーレートが選択できます。
• クロック入力は , 専用ボーレートジェネレータ , 16 ビットリロードタイマ , 外部
クロック (SCK0 ∼ SCK3 端子 ) より選択できます。
[ ビット 2]
空きビットです。
[ ビット 1] SCKE: シリアルクロック出力許可ビット
• シリアルクロックの入出力を制御するビットです。
• このビットが "0" のとき , SCK0 ∼ SCK3 端子は汎用入出力ポートまたはシリアル
クロック入力端子となり , "1" のときシリアルクロック出力端子となります。
( 注意事項 ) SCK0 ∼ SCK3 端子をシリアルクロック入力 (SCKE=0) として使用すると
きは , 対応するポートを入力ポートに設定してください。また , クロッ
ク選択ビット (SMR0 ∼ SMR3:CS2 ∼ CS0=111B) によって外部クロック
を選択してください。
( 注意事項 ) シリアルクロック出力 (SCKE=1) として使用するときは , 外部クロック
以外 (SMR0 ∼ SMR3:CS2 ∼ CS0=111B 以外 ) を選択してください。
( 注意事項 ) シリアルクロック出力許可 (SCKE=1) は , 同期通信時のみ使用してくだ
さい。
( 参考 )
SCK0 ∼ SCK3 端子がシリアルクロック出力 (SCKE=1) のときは , 汎用入出力
ポートの状態にかかわらずシリアルクロック出力端子として機能します。
[ ビット 0] SOE: シリアルデータ出力許可ビット
• シリアルデータの出力を許可 / 禁止するビットです。
• このビットが "0" のとき , SOT0 ∼ SOT3 端子は , 汎用入出力ポートとなり "1" の
ときシリアルデータ出力端子 (SOT0 ∼ SOT3) となります。
( 参考 )
シリアルデータ出力 (SOE=1) のときは , 汎用入出力ポートの状態にかかわら
ず SOT0 ∼ SOT3 端子として機能します。
308
第 15 章 UART
15.4.3
ステータスレジスタ (SSR0 ∼ SSR3)
ステータスレジスタ (SSR0 ∼ SSR3) は , 送受信やエラーの状態の確認 , 割込みの許
可 / 禁止を設定するレジスタです。
■ ステータスレジスタ (SSR0 ∼ SSR3)
図 15.4-4 に,ステータスレジスタ(SSR0∼SSR3)のレジスタ構成と機能概要を示します。
図 15.4-4 ステータスレジスタ (SSR0 ∼ SSR3) のレジスタ構成と機能概要
アドレス
ch0: 0000_001CH
ch1: 0000_0020H
ch2: 0000_0024H
ch3: 0000_0028H
bit15
bit14
bit13
PE
R
ORE
R
FRE
R
bit12
bit11
bit10
bit9
bit8
bit7.............bit0
RDRF TDRE
R
R
BDS
R/W
RIE
R/W
TIE
R/W
(SIDR/SODR)
R/W:リード / ライト可能
R:リードオンリ
TIE
送信割込み要求許可ビット
初期値 00001000B
RDRF
受信データフルフラグビット
0
送信割込み要求出力を禁止
0
受信データなし
1
送信割込み要求出力を許可
1
受信データあり
RIE
受信割込み要求許可ビット
FRE
フレーミングエラーフラグビット
0
受信割込み要求出力を禁止
0
フレーミングエラーなし
1
受信割込み要求出力を許可
1
フレーミングエラーあり
BDS
転送方向選択ビット
ORE
オーバランエラーフラグビット
0
LSB ファースト ( 最下位ビットから転送 )
0
オーバランエラーなし
1
MSB ファースト ( 最下位ビットから転送 )
1
オーバランエラーあり
TDRE
送信データエンプティフラグビット
PE
0
送信データあり ( 送信データの書込み禁止 )
0
パリティエラーなし
1
送信データなし ( 送信データの書込み許可 )
1
パリティエラーあり
パリティエラーフラグビット
0, 1:下線付は初期値
[ ビット 15] PE: パリティエラーフラグビット
• 受信時に , パリティエラーが発生すると "1" にセットされ , 制御レジスタ (SCR0 ∼
SCR3) の REC ビットに "0" を書き込むとクリアされます。
• このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。
• このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3)
のデータは無効です。
309
第 15 章 UART
[ ビット 14] ORE: オーバランエラーフラグビット
• 受信時にオーバランが発生すると , "1" にセットされ , 制御レジスタ (SCR0 ∼
SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。
• このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。
• このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3)
のデータは無効です。
[ ビット 13] FRE: フレーミングエラーフラグビット
• 受信時にフレーミングエラーが発生すると "1" にセットされ , 制御レジスタ
(SCR0 ∼ SCR3) の REC ビットに "0" を書き込むと "0" にクリアされます。
• このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。
• このフラグがセットされたときには,インプットデータレジスタ(SIDR0∼SIDR3)
のデータは無効です。
[ ビット 12] RDRF: 受信データフルフラグビット
• インプットデータレジスタ (SIDR0 ∼ SIDR3) の状態を示すフラグです。
• SIDR0 ∼ SIDR3 に受信データがロードされると , このビットは "1" にセットされ ,
SIDR0 ∼ SIDR3 を読み出すと "0" にクリアされます。
• このビットと RIE ビットが "1" のとき , 受信割込み要求を出力します。
[ ビット 11] TDRE: 送信データエンプティフラグビット
• アウトプットデータレジスタ (SODR0 ∼ SODR3) の状態を示すフラグです。
• SODR0 ∼ SODR3 に送信データを書き込むと , このビットは "0" にクリアされ ,
データが送信用シフトレジスタにロードされ送信が開始されると "1" にセットさ
れます。
• このビットと TIE ビットが "1" のとき , 送信割込み要求を出力します。
( 注意事項 ) 初期状態でこのビットは "1"(SODR0 ∼ SODR3 空 ) にセットされてい
ます。
[ ビット 10] BDS: 転送方向選択ビット
シリアルデータを最下位ビット側から先に転送するか (LSB ファースト , BDS=0), 最
上位ビット側から先に転送するか(MSBファースト, BDS=1)を選択するビットです。
( 注意事項 ) シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下
位側を入れ替えるため SIDR0 ∼ SIDR3 レジスタへデータを書き込んだ
後 , このビットを書き換えると , そのデータは無効になります。
[ ビット 9] RIE: 受信割込み要求許可ビット
• CPU への受信割込み要求出力の許可 / 禁止をするビットです。
• このビットと受信データフラグビット (RDRF) が "1" のとき , もしくは , このビッ
トといずれか 1 つの以上のエラーフラグビット (PE, ORE, FRE) が "1" のとき , 受
信割込み要求を出力します。
[ ビット 8] TIE: 送信割込み要求許可ビット
• CPU への送信割込み要求出力の許可 / 禁止をするビットです。
• このビットと TDRE ビットが "1" のとき , 送信割込み要求を出力します。
310
第 15 章 UART
15.4.4
インプットデータレジスタ (SIDR0 ∼ SIDR3), アウト
プットデータレジスタ (SODR0 ∼ SODR3)
インプットデータレジスタ (SIDR0 ∼ SIDR3) は , シリアルデータ受信用レジスタ
で , アウトプットデータレジスタ (SODR0 ∼ SODR3) は , シリアルデータ送信用レ
ジスタです。SIDR0 ∼ SIDR3 レジスタと SODR0 ∼ SODR3 レジスタは同一アドレ
スに配置されています。
■ インプットデータレジスタ (SIDR0 ∼ SIDR3)
インプットデータレジスタ (SIDR0 ∼ SIDR3) のレジスタ構成は以下のとおりです。
アドレス
bit15.............bit8
ch0: 0000_001DH
ch1: 0000_0021H
ch2: 0000_0025H
ch3: 0000_0029H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
R:リードオンリ
X:不定
初期値 XXXXXXXXB
受信したデータが格納されるレジスタです。SIN0 ∼ SIN3 端子に送られてきたシリア
ルデータ信号がシフトレジスタで変換されて , このレジスタに格納されます。データ長
が 7 ビットのとき , 上位 1 ビット (D7) は無効データとなります。受信データが , この
レジスタに格納されれば , 受信データフルフラグビット (SSR0 ∼ SSR3:RDRF) が "1" に
セットされ , このとき受信割込み要求が許可されていれば受信割込みが発生します。
SIDR0 ∼ SIDR3 は , ステータスレジスタ (SSR0 ∼ SSR3) の RDRF ビットが "1" のとき
に読み出してください。RDRF ビットは SIDR0 ∼ SIDR3 を読み出すと , 自動的に "0"
にクリアされます。なお , 受信エラーが発生 (SSR0 ∼ SSR3:PE, ORE, FRE のいずれか
が "1") したとき , SIDR0 ∼ SIDR3 のデータは無効となります。
311
第 15 章 UART
■ アウトプットデータレジスタ (SODR0 ∼ SODR3)
アウトプットデータレジスタ (SODR0 ∼ SODR3) のレジスタ構成は以下のとおりです。
アドレス
bit15.............bit8
ch0: 0000_001DH
ch1: 0000_0021H
ch2: 0000_0025H
ch3: 0000_0029H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
W:ライトオンリ
X:不定
初期値 XXXXXXXXB
送信許可状態のとき , 送信するデータをこのレジスタに書き込むと , 送信データが送信
用シフトレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子
(SOT0 ∼ SOT3 端子 ) から送出されます。データ長が 7 ビットのとき , 上位 1 ビット
(D7) は無効データとなります。
送信データがこのレジスタに書き込まれると , 送信データエンプティフラグ (SSR0 ∼
SSR3:TDRE) が "0" にクリアされ , 送信用シフトレジスタへの転送が終了すれば , "1" に
セットされます。TDRE ビットが "1" のとき , 次の送信用データを書き込むことができ
ます。このとき , 送信割込み要求出力が許可されていれば送信割込みが発生します。次
の送信データの書込みは , 送信割込みの発生によるか , または TDRE ビットが "1" のと
きにしてください。
<注意事項>
SODR0 ∼ SODR3 は書込み専用のレジスタで , SIDR0 ∼ SIDR3 は読込み専用のレジスタ
です。しかし , 同一アドレスに配置されているため書込み値と読出し値は異なります。そ
のため , リードモディファイライト (RMW) 動作をする命令は使用できません。
312
第 15 章 UART
15.4.5
通信プリスケーラコントロールレジスタ (CDCR0 ∼
CDCR3)
通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) は , マシンクロックの
分周を制御するレジスタです。
■ 通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3)
UART の動作クロックは , マシンクロックを分周することにより得られます。この通信
プリスケーラによって,マシンサイクルに対して一定のボーレートが得られように設計
されています。通信プリスケーラコントロールレジスタ (CDCR0 ∼ CDCR3) のレジス
タ構成は以下のとおりです。
アドレス
ch0: 0000_004EH
ch1: 0000_004CH
ch2: 0000_0052H
ch3: 0000_0050H
bit15
MD
bit14
bit13
bit12
−
bit11
DIV3
bit10
DIV2
bit9
DIV1
bit8
DIV0
−
−
R/W
−
−
−
R/W
R/W
R/W
R/W
R/W:リード / ライト可能
初期値 0---0000B
[ ビット 15] MD(Machine clock devide mode select)
通信プリスケーラの動作許可ビットです。
0: 通信プリスケーラは停止します。
1: 通信プリスケーラは動作します。
313
第 15 章 UART
[ ビット 11 ∼ビット 8] DIV3 ∼ DIV0(DIVide 3 ∼ DIVide 0)
表 15.4-1 に示す値に従い , マシンクロックの分周比を決定します。
表 15.4-1 通信プリスケーラ
MD
DIV3
DIV2
DIV1
DIV0
div
0
−
−
−
−
停止
1
0
0
0
0
1
1
0
0
0
1
2
1
0
0
1
0
3
1
0
0
1
1
4
1
0
1
0
0
5
1
0
1
0
1
6
1
0
1
1
0
7
1
0
1
1
1
8
1
1
0
0
0
9
1
1
0
0
1
10
1
1
0
1
0
11
1
1
0
1
1
12
1
1
1
0
0
13
1
1
1
0
1
14
1
1
1
1
0
15
1
1
1
1
1
16
<注意事項>
• 分周比を変えた場合はクロックの安定時間として 2 周期分の時間を置いてから通信を
行ってください。
• 同時転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。
- CS2 ∼ CS0=000B
- CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B
314
第 15 章 UART
UART の割込み
15.5
UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生させ
ることができます。
• 受信データがインプットデータレジスタ (SIDR0 ∼ SIDR3) にセットされたとき ,
または受信エラーが発生したとき。
• 送信データがアウトプットデータレジスタ (SODR0 ∼ SODR3) から送信用シフト
レジスタに転送されたとき。
■ UART の割込み
UART の割込み制御ビットと割込み要因を , 表 15.5-1 に示します。
表 15.5-1 UART の割込み制御ビットと割込み要因
送受信
受信
送信
割込み要求
フラグ
ビット
動作モード
割込み要因
0
1
2
割込み要因 割込み要求フラグの
許可ビット
クリア
RDRF
○
○
○
受信データをバッファ
(SIDR0 ∼ SIDR3) へ
ロード
ORE
○
○
○
オーバランエラー発生
FRE
○
○
×
フレーミングエラー発生
PE
○
×
×
パリティエラー発生
TDRE
○
○
○
送信バッファ (SODR0 ∼ SSR0 ∼
SSR3:TIE
SODR3) が空
受信データの読出し
SSR0 ∼
SSR3:RIE
受信エラーフラグ
クリアビット
(SCR0 ∼ SCR3:REC)
への "0" の書込み
送信データの書込み
○ : 使用ビット
× : 未使用ビット
● 受信割込み
受信モード時は , データ受信完了 (SSR0 ∼ SSR3:RDRF), オーバランエラー発生 (SSR0 ∼
SSR3:ORE), フレーミングエラー発生 (SSR0 ∼ SSR3:FRE), パリティエラー発生 (SSR0 ∼
SSR3:PE) によってステータスレジスタ中のそれぞれに対応するフラグビットが "1" に
セットされます。これらのフラグビットのいずれかが "1" のとき , 受信割込みが許可
(SSR0∼SSR3:RIE=1)されていると受信割込み要求を割込みコントローラに出力します。
受信データフルフラグ (SSR0 ∼ SSR3:RDRF) は , インプットデータレジスタ (SIDR0 ∼
SIDR3) を読み出すと , 自動的に "0" にクリアされます。受信エラーフラグ (SSR0 ∼
SSR3:PE, ORE, FRE) は , 制御レジスタ (SCR0 ∼ SCR3) の REC ビットに "0" を書き込め
ば , すべて "0" にクリアされます。
315
第 15 章 UART
● 送信割込み
送信データがアウトプットデータレジスタ (SODR0 ∼ SODR3) から転送用シフトレジ
スタに転送されたとき , ステータスレジスタ (SSR0 ∼ SSR3) の TDRE ビットが "1" に
セットされます。このとき , 送信割込みが許可 (SSR0 ∼ SSR3:TIE=1) されていると , 送
信割込み要求を割込みコントローラに出力します。
■ UART に関連する割込み
表 15.5-2 に , UART 関連する割込みの一覧を示します。
表 15.5-2 UART に関連する割込み
割込み制御レジスタ
割込み要因
ベクタテーブルアドレス
割込み番号
レジスタ名
アドレス
オフセット
TBR デフォルト
のアドレス
UART0 受信割込み
#26(1AH)
ICR10
00040AH
394H
000FFF94H
UART1 受信割込み
#27(1BH)
ICR11
00040BH
390H
000FFF90H
UART2 受信割込み
#28(1CH)
ICR12
00040CH
38CH
000FFF8CH
UART3 受信割込み
#29(1DH)
ICR13
00040DH
388H
000FFF88H
UART0 送信割込み
#31(1FH)
ICR15
00040FH
380H
000FFF80H
UART1 送信割込み
#32(20H)
ICR16
000410H
37CH
000FFF7CH
UART2 送信割込み
#33(21H)
ICR17
000411H
378H
000FFF78H
UART3 送信割込み
#34(22H)
ICR18
000412H
374H
000FFF74H
316
第 15 章 UART
受信割込み発生とフラグセットのタイミング
15.6
受信時の割込みとしては , 受信完了 (SSR0 ∼ SSR3:RDRF) および受信エラーの発生
(SSR0 ∼ SSR3:PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
受信時は , ストップビットの検出 ( 動作モード 0 ∼ 4 のとき ) もしくは , データの最終
ビット (D7) の検出 ( 動作モード 2 のとき ) によって , 受信データがインプットデータ
レジスタ 1(SIDR0 ∼ SIDR3) に格納されます。このとき , 受信エラーが発生していれば
エラーフラグ (SSR0 ∼ SSR3:PE, ORE, FRE) がセットされ , その後 , 受信データフルフ
ラグ (SSR0 ∼ SSR3:RDRF) が "1" にセットされます。各モードともいずれかのエラー
フラグが "1" のとき , SIDR0 ∼ SIDR3 の値は無効データです。
● 動作モード 0( 非同期 , ノーマルモード )
ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあれば , エラーフラ
グ (PE, ORE, FRE) がセットされます。
● 動作モード 1( 非同期 , マルチプロセッサモード )
ストップビット検出時に RDRF が "1" にセットされ , 受信エラーがあれば , エラーフラ
グ (ORE, FRE) がセットされます。パリティエラーの検出はできません。
● 動作モード 2( 同期 , ノーマルモード )
受信データの最終ビット (D7) 検出時に RDRF がセットされ , 受信エラーがあれば , エ
ラーフラグ (ORE) がセットされます。パリティエラーおよびフレーミングエラーの検
出はできません。図 15.6-1 に , 受信動作とフラグセットのタイミングについて示しま
す。
図 15.6-1 受信動作とフラグセットのタイミング
受信データ
(動作モード0)
ST
D0
D1
D5
D6
D7/P
SP
受信データ
(動作モード1)
ST
D0
D1
D6
D7
A/D
SP
D0
D1
D4
D5
D6
D7
受信データ
(動作モード2)
PE,ORE,FRE*
RDRF
* :PEフラグはモード1では使用できません
PE,FREフラグはモード2では使用できません
ST:スタートビット
SP:ストップビット
A/D:モード2(マルチプロセッサモード)のアドレス/データ選択ビット
受信割込み発生
● 受信割込み発生のタイミング
受信割込みが許可 (SSR0 ∼ SSR3:RIE=1) されているときに , RDRF, PE, ORE, FRE のい
ずれかのフラグが "1" にセットされると , その直後に受信割込み要求が発生します。
317
第 15 章 UART
送信割込み発生とフラグセットのタイミング
15.7
送信時の割込みは , アウトプットデータレジスタ (SODR0 ∼ SODR3) に次のデータ
の書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグセットのタイミング
送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) は , アウトプットデータレジ
スタ (SODR0 ∼ SODR3) に書き込まれたデータが , 送信用シフトレジスタに転送され ,
次のデータ書込みが可能な状態になると "1" にセットされます。SODR0 ∼ SODR3 に送
信データを書き込むと , TDRE は "0" にクリアされます。図 15.7-1 に送信動作とフラグ
セットのタイミングについて示します。
図 15.7-1 送信動作とフラグセットのタイミング
[動作モード0,1]
送信割込み発生
送信割込み発生
SODR書込み
TDRE
SOUT出力
ST
D0
D1
D2
D3
D4
D5
送信割込み発生
[動作モード2]
D6
D7
SP
A/D
SP
ST
D0
D1
D2
D3
D2
D3
D4
D5
D6
D7
送信割込み発生
SODR書込み
TDRE
SOUT出力
ST
D0~D7
SP
A/D
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
:スタートビット
:データビット
:ストップビット
:アドレス/データ選択ビット
● 送信割込み要求発生のタイミング
送信割込みが許可 (SSR0 ∼ SSR3:TIE=1) されるときに , TDRE フラグが "1" にセットさ
れるとその直後に送信割込み要求が発生します。
<注意事項>
初期状態で TDRE ビットが "1" のため , 送信割込みを許可 (TIE=1) すると直ちに送信完了
割込みが発生します。TDRE ビットはリードオンリビットで , アウトプットデータレジス
タ (SODR0 ∼ SODR3) に新規データを書き込むしかクリアする方法がありませんので ,
送信割込み許可のタイミングに注意してください。
318
第 15 章 UART
15.8
ボーレート
UART の送受信クロックは , 次のいずれかを選択できます。
• 専用ボーレートジェネレータ
• 内部クロック (16 ビットリロードタイマ )
• 外部クロック (SCK 端子入力のクロック )
■ UART ボーレート選択
ボーレートの選択回路は図 15.8-1 のようになっており , ボーレートは次の 3 種類の中
から 1 種類を選択できます。
● 専用ボーレートジェネレータによるボーレートの選択
UARTは専用ボーレートジェネレータを内蔵しており,モードレジスタ(SMR0∼SMR3)
で , 8 種類のボーレートから 1 種類を選択できます。マシンクロックの周波数とモード
レジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットによって , 非同期もしくは , クロック
同期ボーレートを選択します。
● 内部タイマによるボーレート
16 ビットリロードタイマ 0 ∼ 3 から供給される内部クロックを , そのまま ( 同期のと
き ) もしくは 16 分周 ( 非同期 ) して , ボーレートとして使用します。リロード値の設定
で自由にボーレートを設定できます。
● 外部クロックによるボーレート
UART のクロック入力端子から入力されたクロックを , そのまま ( 同期のとき ) もしく
は 16 分周 ( 非同期のとき ) して , ボーレートとして使用します。外部で自由にボーレー
トを設定できます。
319
第 15 章 UART
■ UART ボーレート選択回路
図 15.8-1 に , UART ボーレートの選択回路を示します。
図 15.8-1 UART ボーレート選択回路
SMR0~SMR3:CS2/CS1/CS0
(クロック選択ビット)
クロックセレクタ
"000B"~"101B"のとき
[専用ボーレートジェネレータ]
分周回路
φ
(同期)
1/2,1/4,1/8分周の
いずれか選択
プリスケーラ
(非同期)
内部固定分周比を選択
[内部タイマ]
TMCSR0~TMCSR3:CSL1,CSL0
2
"110B"のとき
クロックセレクタ
φ
ダウン
カウンタ
UF
1/1(同期)
1/16(非同期)
φ /2 φ /8 φ /32
16ビットリロードタイマ0~3
[ 外部クロック ]
"111B"のとき
SCK0~SCK3
1/1(同期)
1/16(非同期)
端子
SMR0~SMR3:MD1
(クロック同期/非同期の選択)
φ:内部周辺クロック
320
ボーレート
第 15 章 UART
15.8.1
専用ボーレートジェネレータによるボーレート
UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを選択
したときの設定可能なボーレートを示します。
■ 専用ボーレートジェネレータによるボーレート
専用ボーレートジェネレータで , 転送クロックを生成するときは , マシンクロックが ,
マシンクロックプリスケーラで分周された後 , クロックセレクタで選択される転送ク
ロック分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転
送クロック分周比は , 非同期と同期で , 別々に内部設定された値を選択するようになっ
ています。
実際の転送レートは , 次式で与えられます。
• 非同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 非同期転送クロック分周比 )
• 同期ボーレート = φ × ( プリスケーラ分周比 ) × ( 同期転送クロック分周比 )
φ: マシンクロック周波数
● プリスケーラによる分周比 ( 非同期 / 同期共通 )
マシンクロックの分周比は , 表 15.8-1 に示すように CDCR レジスタの DIV3 ∼ DIV0
ビットで指定します。
表 15.8-1 マシンクロックプリスケーラによる分周比の選択
MD
DIV3
DIV2
DIV1
DIV0
div
0
−
−
−
−
停止
1
0
0
0
0
1
1
0
0
0
1
2
1
0
0
1
0
3
1
0
0
1
1
4
1
0
1
0
0
5
1
0
1
0
1
6
1
0
1
1
0
7
1
0
1
1
1
8
1
1
0
0
0
9
1
1
0
0
1
10
1
1
0
1
0
11
1
1
0
1
1
12
1
1
1
0
0
13
1
1
1
0
1
14
1
1
1
1
0
15
1
1
1
1
1
16
321
第 15 章 UART
● 同期転送クロック分周比
同期ボーレートの分周比は , 表 15.8-2 に示すようにモードレジスタ (SMR0 ∼ SMR3) の
CS2 ∼ CS0 ビットで指定します。
表 15.8-2 同期ボーレート分周比の選択
CS2
CS1
CS0
CLK 同期時
算出式
0
0
0
禁止
禁止
0
0
1
16MHz
(φ ÷ div)/2
0
1
0
8MHz
(φ ÷ div)/4
0
1
1
4MHz
(φ ÷ div)/8
1
0
0
2MHz
(φ ÷ div)/16
1
0
1
1MHz
(φ ÷ div)/32
ただし , φ はマシンサイクル , φ = 32.0MHz, div = 1 で算出しています。
<注意事項>
同時転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止です。
• CS2 ∼ CS0=000B
• CS2 ∼ CS0=001B かつ DIV3 ∼ DIV0=0000B
● 非同期転送クロック分周比
非同期ボーレートの分周比は , 表 15.8-3 に示すようにモードレジスタ (SMR0 ∼ SMR3)
の CS2 ∼ CS0 ビットで指定します。
表 15.8-3 非同期ボーレート分周比の選択
CS2
CS1
CS0
非同期 ( 調歩同期 )
算出式
0
0
0
76.8kHz
(φ ÷ div)/(8 × 13 × 2)
0
0
1
38.4kHz
(φ ÷ div)/(8 × 13 × 4)
0
1
0
19.2kHz
(φ ÷ div)/(8 × 13 × 8)
0
1
1
9.6kHz
(φ ÷ div)/(8 × 13 × 16)
1
0
0
500kHz
(φ ÷ div)/(8 × 2 × 2)
1
0
1
250kHz
(φ ÷ div)/(8 × 2 × 4)
ただし , φ はマシンサイクル , φ = 31.9488MHz, div = 2 で算出しています。
322
第 15 章 UART
● 内部タイマ
CS2 ∼ CS0 を 110B に設定して内部タイマを選択した場合のボーレートの算出式 ( リ
ロードタイマを使用した場合の例 ) は次式のようになります。
• 非同期 ( 調歩同期 )
(φ ÷ N)/(16 × 2 × (n + 1))
• CLK 同期
(φ ÷ N)/(2 × (n + 1))
N: タイマのカウントクロックソース , n: タイマのリロード値
● 外部クロック
CS2 ∼ CS0 を 111B に設定して外部クロックを選択した場合のボーレートは , 外部ク
ロックの周波数を f とすると次のようになります。
• 非同期 ( 調歩同期 )
f/16
• CLK 同期
f’
ただし , f の最大はマシンクロックの 1/2 まで , f ’ の最大はマシンクロックの 1/8 までで
す。
323
第 15 章 UART
15.8.2
内部タイマ (16 ビットリロードタイマ 0) によるボー
レート
UART の転送クロックとして , 16 ビットリロードタイマ 0 から供給される内部ク
ロックを選択するときの設定とボーレートの計算式を示します。
■ 内部タイマ (16 ビットリロードタイマ 0) によるボーレート
モードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットに "110B" を書き込むと , 内部タ
イマによるボーレートが選択されます。ボーレートは , 16 ビットリロードタイマ 0 の
プリスケーラ分周比とリロード値の選択で , 自由に設定できます。図 15.8-2 に , 内部タ
イマによるボーレート選択回路を示します。
図 15.8-2 内部タイマ (16 ビットリロードタイマ 0) によるボーレート選択回路
SMR0~SMR3:CS2/CS1/CS0="110B"
(内部タイマ選択)
クロックセレクタ
16ビットリロードタイマ0出力
(プリスケーラ分周値と
リロード値によって周波数指定)
1/1(同期)
1/16(非同期)
ボーレート
SMR0~SMR3:MD1
(クロック同期/非同期の選択)
● ボーレート計算式
φ
bps
非同期ボーレート =
X(n+1) × 2 × 16
φ
bps
同期ボーレート =
X(n+1) × 2
φ : マシンクロック周波数
X :16 ビットリロードタイマ 0 のプリスケーラによる分周比 (21, 23, 25)
n :16 ビットリロードタイマ 0 のリロード値 (0 ∼ 65,535)
324
第 15 章 UART
●リロード値の設定例 ( マシンクロック :31.9488MHz のとき )
表 15.8-4 に , ボーレートとリロード値を示します。
表 15.8-4 ボーレートとリロード値
リロード値
ボーレート
(bps)
クロック非同期 ( 調歩同期 )
クロック同期
X=21
( マシンサイクルの
2 分周 )
X=23
( マシンサイクルの
8 分周 )
X=21
( マシンサイクルの
2 分周 )
X=23
( マシンサイクルの
8 分周 )
38400
12
―
207
51
19200
25
―
415
103
9600
51
12
831
207
4800
103
25
1,663
415
2400
207
51
3,327
831
1200
415
103
6,655
1,663
600
831
207
13,311
3,327
300
1,663
415
26,623
6,655
X :16 ビットリロードタイマ 0 のプリスケーラによる分周比
- : 設定禁止
325
第 15 章 UART
15.8.3
外部クロックによるボーレート
UART の転送クロックとして , 外部クロックを選択するときの設定とボーレートの計
算式を示します。
■ 外部クロックによるボーレート
外部クロックによるボーレートを選択するには , 次の 3 つの設定が必要です。
• モードレジスタ (SMR0 ∼ SMR3) の SCKE ビットに "0" としてください。
• モードレジスタ (SMR0 ∼ SMR3) の CS2 ∼ CS0 ビットに "111B" に書き込んで , 外部
クロック入力によるボーレートを選択します。
• 外部クロックを入力するポートを入力設定にする。
図 15.8-3 に示すように, SCK0∼SCK3端子から入力された外部クロックをもとに,ボー
レートを選択します。内部の分周比は固定されていますので , ボーレートを変更するに
は外部の入力クロックの周期を変更する必要があります。
図 15.8-3 外部クロックによるボーレート選択回路
SMR0~SMR3:CS2/CS1/CS0="111B"
(外部クロック選択)
クロックセレクタ
SCK0~SCK3
1/1(同期)
1/16(非同期)
端子
ボーレート
SMR0~SMR3:MD1
(クロック同期/非同期の選択)
● ボーレート計算式
• 非同期ボーレート = f/16
• 同期ボーレート
=f
f: 外部クロック周波数
(f は最大 , [ 周辺系動作クロック ]/8 までです。31.9488MHz で最大 3.9936MHz)
326
第 15 章 UART
15.9
UART の動作
UART には , 通常の双方向シリアル通信機能 ( 動作モード 0, 2) のほかに , マスタス
レーブ型接続の通信機能 ( 動作モード 1) があります。
■ UART の動作
● 動作モード
UART の動作モードはモード 0 ∼ 2 の 3 種類があり , 表 15.9-1 に示すように CPU 間の
接続方式やデータ転送方式で選択することができます。
表 15.9-1 UART の動作モード
データ長
動作モード
同期方式
パリティなし
0
ノーマルモード
1
マルチプロセッサ
モード
2
ノーマルモード
7 ビットまたは 8 ビット
*1
ストップビット長
パリティあり
非同期
1 ビットまたは 2 ビット *2
8+1
―
非同期
8
―
同期
なし
― : 設定不可
*1 :"+1" は通信制御用に使用されるアドレス / データ選択ビット (A/D) です。
*2 : 受信時のストップビットは 1 ビットのみ検出可
<注意事項>
UART の動作モード 1 は , マスタスレーブ型接続時のマスタ時だけに使用されます。
● CPU 間接続方式
1 対 1 接続 ( ノーマルモード ) とマスタスレーブ型接続 ( マルチプロセッサモード ) の
どちらかを選択できます。どちらの方式でも , データ長 , パリティ有無 , 同期方式など
は , すべての CPU で統一しておく必要があり , 動作モードを次のように選択します。
• 1 対 1 接続では , 2 つの CPU で動作モード 0, 2 のいずれかの同じ方式を採用する必
要があります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を選択
してください。
• マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を選択し ,
マスタとして使用してください。なお , この接続ではパリティなしを選択してくだ
さい。
● 同期方式
動作モードで , 非同期方式 ( 調歩同期 ) もしくはクロック同期方式のどちらかを選択で
きます。
327
第 15 章 UART
● 信号方式
UART は , NRZ(Non Return to Zero) 形式のデータだけを扱えます。
● 動作許可
UART は , 送信 , 受信のそれぞれに対して , TXE( 送信 ), RXE( 受信 ) の動作許可ビット
があり , 送受信動作を制御することができます。動作中に , 動作禁止したときは , 次の
ようになります。
• 受信中 ( 受信用シフトレジスタにデータが入力されているとき ) に受信動作を禁止
したときには , そのフレームの受信を完了し , インプットデータレジスタ (SIDR0 ∼
SIDR3) に受信データを格納したところで受信動作を停止します。
• 送信中 ( 送信用シフトレジスタからデータが出力されているとき ) に送信動作を禁
止したときは , アウトプットデータレジスタ (SODR0 ∼ SODR3) にデータがなくなっ
た後に送信動作を停止します。
328
第 15 章 UART
15.9.1
非同期モード ( 動作モード 0, 1) 時の動作
UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用するとき , 転送方式は非同期となります。
■ 非同期モード ( 動作モード 0, 1) 時の動作
● 転送データフォーマット
転送データは必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット
長の転送が LSB ファーストで行われ , ストップビット ("H" レベル ) で終了します。
• 動作モード 0 のノーマルモードでは , データ長は 7 ビットまたは 8 ビットに設定が
可能です。
• 動作モード 1 では , データは 8 ビット長固定で , パリティは付加されず , そのかわり
に A/D( アドレス / データ選択ビット ) が付加されています。
図 15.9-1 に , 非同期モード時のデータフォーマットを示します。
図 15.9-1 転送データフォーマット ( 動作モード 0, 1)
[動作モード0]
[動作モード1]
ST
D0
D1
D2
D3
D4
D5
D6
*
D7/P
SP
ST
D0
D1
D2
D3
D4
D5
D6
D7
A/D
SP
* :D7(ビット7)・・パリティなしのとき
P(パリティ)・・パリティありのとき
ST :スタートビット
SP :ストップビット
A/D :動作モード1(マルチプロセッサモード)のアドレス/データ選択ビット
● 送信動作
送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) が "1" のとき , アウトプット
データレジスタ (SODR0 ∼ SODR3) に送信データを書き込みます。ここで , 送信動作が
許可 (SCR0 ∼ SCR3:TXE=1) されていると送信します。
送信データが送信用シフトレジスタに転送され , 送信が開始されると TDRE フラグが
再び "1" にセットされ , 次の送信データをセットできるようになります。このとき ,
送信割込み要求が許可 (SSR0 ∼ SSR3:TIE=1) されていれば , 送信割込み要求を出力
して SODR0 ∼ SODR3 に送信データをセットするように要求します。TDRE フラグ
は , SODR0 ∼ SODR3 に送信データを書き込むと "0" にクリアされます。
329
第 15 章 UART
● 受信動作
受信動作が許可 (SCR0 ∼ SCR3:RXE=1) されていると , 常に受信動作が行われていま
す。スタートビットを検出すると , 制御レジスタ (SCR0 ∼ SCR3) で決められたデータ
フォーマットに従って 1 フレームデータの受信が行われます。1 フレームの受信が終わ
ると , エラーが発生したときにはエラーフラグのセットが行われた後 , 受信データフル
フラグビット (SSR0 ∼ SSR3:RDRF) が "1" にセットされます。このとき受信割込み要
求が許可 (SSR0 ∼ SSR3:RIE=1) されていれば受信割込み要求を出力します。ステータ
スレジスタ (SSR0 ∼ SSR3) の各フラグを調べ , 正常受信ならインプットデータレジス
タ (SIDR0 ∼ SIDR3) をリードして , エラーが発生していればエラー処理をするように
してください。RDRF フラグは , SIDR0 ∼ SIDR3 から受信データをリードすると "0" に
クリアされます。
● スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H" ( マークレベルを付加 ) にしてください。
• 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE=H) にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE=H) にしないでください。
正しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H" ( マー
クレベル ) の間に受信禁止 (RXE=L) にしてください。
図 15.9-2 正常動作
通信期間
非通信期間
マークレベル スタートビット
SIN
(01010101B送信)
RXE
ST
非通信期間
スタートビット
データ
D1
D0
D2
D3
D4
D5
D6
D7
SP
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
ST
D0
●受信クロックを16分周してサンプリングクロックを生成
D3
D5
D7
D1
D6
D2
D4
SP
(01010101B受信)
以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ
(SIN) が正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE=H) に設定した場合の動作例
図 15.9-3 異常動作
通信期間
非通信期間
マークレベル
SIN
スタートビット
ST
ST 認識 D0
(01010101B送信)
非通信期間
スタートビット
データ
D0
D1
D2
D3
D4
D5
D6
D7
D1
D2
D3
D4
D5
D6
D7
SP
SP
RXE
受信クロック
サンプリングクロック
マイコン側の認識
(01010101B受信)
PE,ORE,FRE
●受信エラー発生
330
第 15 章 UART
● ストップビット
送信時には 1 ビットまたは 2 ビットを選択できます。ただし , 受信側では , 常に最初の
1 ビットだけを判別します。
● エラー検出
• モード 0 では , パリティエラー, オーバランエラー, フレームエラーが検出できます。
• モード 1 では , オーバラン , フレームエラーが検出でき , パリティエラーは検出でき
ません。
● パリティ 0
パリティは , 動作モード 0( 非同期 , ノーマルモード ) のときにだけ使用できます。制御
レジスタ (SCR0 ∼ SCR3) の PEN ビットでパリティの有無を , P ビットで偶数パリティ /
奇数パリティを設定できます。動作モード 1( 非同期 , マルチプロセッサモード ) および
動作モード 2( 同期 , ノーマルモード ) では , パリティの使用はできません。パリティ有
効時の送受信データを , 図 15.9-4 に示します。
図 15.9-4 パリティ有効時の送信データ
SIN0-SIN3
ST
SP
1
SOT0-SOT3
1
1
0
0
0
ST
1
SOT0-SOT3
0
0
1
1
0
0
ST:スタートビット
SP:ストップビット
0
1
1
データ
0
0
SP
偶数パリティの送信
(SCR0-3:P=0)
SP
奇数パリティの送信
(SCR0-3:P=1)
1
ST
1
偶数パリティにて受信時
パリティエラー発生
(SCR0-3:P=0)
0
パリティ
( 注意事項 ) 動作モード 1, 2 では , パリティは使用できません。
331
第 15 章 UART
15.9.2
同期モード ( 動作モード 2) 時の動作
UART 動作モード 2( ノーマルモード ) で使用するとき , 転送方式はクロック同期と
なります。
■ 同期モード ( 動作モード 2) 時の動作
● 転送データフォーマット
同期モードでは , 8 ビットデータを LSB ファーストで転送し , スタートビット , ストッ
プビットは付加されません。図 15.9-5 に , クロック同期モード時のデータフォーマッ
トを示します。
図 15.9-5 転送データフォーマット ( 動作モード 2)
送信データ書込み
送受信クロック
マークレベル
RXE,TXE
送受信データ
1
LSB
0
1
1
データ
0
0
1
0
MSB
● クロック供給
クロック同期方式では , 送受信ビット数に等しい数のクロックの供給が必要になりま
す。
• 内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択していると
きは , データを送信するとデータ受信用同期クロックが自動的に生成されます。
• 外部クロックを選択しているときは送信側 UART のアウトプットデータレジスタ
(SODR0 ∼ SODR3) にデータがあること (SSR0 ∼ SSR3:TDRE=0) を確かめた後 , 正
確に 1 バイト分のクロックを外部から供給する必要があります。また , 送信開始前
と終了後は , 必ずマークレベル ("H") にする必要があります。
● エラー検出
オーバランエラーだけ検出可能で , パリティエラー, フレーミングエラーは検出できま
せん。
332
第 15 章 UART
● 初期化
同期モードを使用するときの , 各制御レジスタの設定値を示します。
[ モードレジスタ (SMR0 ∼ SMR3)]
• MD1,MD0
: "10B"
• CS2, CS1, CS0: クロックセレクタのクロック入力を指定
• SCKE
: 専用ボーレートジェネレータまたは内部タイマのとき "1",
クロック出力 , 外部クロック ( クロック入力 ) のとき "0"
• SOE
: 送信するとき "1", 受信だけのとき "0"
[ 制御レジスタ (SCR0 ∼ SCR3)]
• PEN
: "0"
• P,SBL,A/D
: これらのビットは意味を持ちません
• CL
: "1"(8 ビットデータ )
• REC
: "0"( 初期化するため , エラーフラグクリア )
• RXE,TXE
: 少なくとも , どちらか一方を "1"
[ ステータスレジスタ (SSR0 ∼ SSR3)]
• RIE
: 割込みを使用するとき "1", 割込みを使用しないとき "0"
• TIE
: "0"
● 通信開始
アウトプットデータレジスタ (SODR0 ∼ SODR3) への書込みで通信を開始します。受
信する場合でも通信を開始するときは , 必ず仮のデータを SODR0 ∼ SODR3 に書き込
む必要がありますので , 注意してください。
● 通信終了
1 フレームのデータ送受信が終了すると , ステータスレジスタ (SSR0 ∼ SSR3) の RDRF
フラグが "1" にセットされます。受信時は , オーバランエラーフラグビット (SSR0 ∼
SSR3:ORE) をチェックし , 通信が正常に行われたかどうかを判断してください。
333
第 15 章 UART
15.9.3
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 で , 1 対 1 接続の通常のシリアル双方向通信をすることができます。
同期方式は , 動作モード 0 のときは非同期 , 動作モード 2 のときは同期となります。
■ 双方向通信機能
UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 15.9-6 の設定が
必要です。
図 15.9-6 UART の動作モード 0 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SCR1, SMR1
モード 0 →
モード 2 →
SSR1,
SIDR1/SODR1
モード 0 →
モード 2 →
PEN
P
SBL
CL
AD
◎
0
◎
×
◎
×
◎
1
◎
×
PE
◎
×
ORE FRE RDRF TDRE
◎
◎
◎
×
◎
◎
REC RXE TXE MD1 MD0 CS2 CS1 CS0
◎
0
◎
◎
◎
◎
−
RIE
TIE
◎
◎
◎
◎
◎
◎
◎
1
◎
0
◎
◎
◎
◎
◎
◎
×:未定義ビット
1:"1" を設定
0:"0" を設定
● CPU 間接続
図 15.9-7 に示すように , 2 つの CPU を相互に接続します。
図 15.9-7 UART の双方向通信の接続例
SOT1
SOT1
SIN1
SCK1
CPU-1
334
SCKE SOE
◎
◎
送信データを設定 ( ライト時 ) /
受信データを保持 ( リード時 )
◎:使用ビット
SIN1
出力
−
入力
SCK1
CPU-2
◎
◎
第 15 章 UART
● 通信手順
通信は , 任意なタイミングで , 送信データが準備できたときに送信側から開始します。
受信側で送信データを受け取ると定期的に , ANS( 本例では 1 バイトごと ) を返します。
図 15.9-8 に , 双方向通信フローの一例を示します。
図 15.9-8 双方向通信フローの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
("0","2"いずれか)
動作モード設定
(送信側に合わせる)
データ送信
SODRに1バイトデータを
セットして通信
受信データあり
NO
YES
受信データ読出しと処理
受信データあり
NO
YES
受信データ読出しと処理
データ送信
(ANS)
1バイトデータ送信
335
第 15 章 UART
15.9.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモー
ド)
UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー
ド 1 を使用します。ただし , UART は , マスタとしてだけ使用可能です。
■ マスタ / スレーブ型通信機能
UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 15.9-9 の
設定が必要です。
図 15.9-9 UART の動作モード 1 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SCR1, SMR1
SSR1,
SIDR1/SODR1
PEN
P
SBL
CL
AD
0
×
◎
1
◎
PE
×
REC RXE TXE MD1 MD0 CS2 CS1 CS0
ORE FRE RDRF TDRE
◎
◎
◎
0
◎
◎
−
RIE
TIE
◎
◎
◎
0
1
◎
◎
◎
−
SCKE SOE
0
◎
送信データを設定 ( ライト時 ) /
受信データを保持 ( リード時 )
◎:使用ビット
×:未定義ビット
1:"1" を設定
0:"0" を設定
● CPU 間接続
図 15.9-10 に示すように , 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレー
ブ CPU を接続して , 通信システムを構成します。UART は , マスタ CPU としてだけ使
用可能です。
図 15.9-10 UART のマスタスレーブ型通信の接続例
SOT1
SIN1
マスタ CPU
SOT
SIN
スレーブ CPU #0
SOT
SIN
スレーブ CPU #1
● 機能選択
マスタ / スレーブ型通信では , 表 15.9-2 に示すように , 動作モードとデータ転送方式を
選択してください。
336
第 15 章 UART
表 15.9-2 マスタ / スレーブ型通信機能の選択
動作モード
マスタ CPU
スレーブ CPU
アドレス
送受信
モード 1
データ
送受信
―
データ
A/D="1"
+
8 ビットアドレス
A/D="0"
+
8 ビットデータ
パリティ 同期方式 ストップ ビット
なし
非同期
1 ビットまたは
2 ビットデータ
● 通信手順
通信はマスタ CPU がアドレスデータを送信することで始まります。アドレスデータと
は , A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択します。各ス
レーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレスと一致
するとき , マスタ CPU との通信 ( 通常データ ) をします。
図 15.9-11 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート
を示します。
図 15.9-11 マスタ / スレーブ型通信フローチャート
(マスタCPU)
START
動作モードを"1"とする
SIN端子をシリアルデータ
入力に設定
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)を
セットして送信
(A/D=1)
A/Dに "0" をセット
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
他の
スレーブCPUと
通信
NO
YES
受信動作許可
END
337
第 15 章 UART
15.10
UART の使用上の注意
UART を使用するときの注意点を示します。
■ UART 使用上の注意
● 動作許可
UART には , 送信 , 受信のそれぞれに対して制御レジスタ (SCR0 ∼ SCR3) に TXE ( 送
信 ), RXE ( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受信と
も動作禁止であるため , 転送前に動作を許可する必要があります。また , 必要に応じて
動作禁止にして , 転送を中止することもできます。
● 通信モードの設定
通信モードの設定は , 停止中に行ってください。送受信中にモード設定をすると , その
ときに送受信されたデータは保証されません。
● 同期モード
UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方
式を採用しており , スタートビット , ストップビットは , データに付加されません。
● 送信割込み許可のタイミング
送信データエンプティフラグビット (SSR0 ∼ SSR3:TDRE) はデフォルト ( 初期値 ) が "1"
( 送信データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR0 ∼
SSR3:TIE=1) すると直ちに , 送信割込み要求が発生します。必ず , 送信データを準備し
てから , TIE フラグを "1" にしてください。
338
第 16 章
DMA コントローラ (DMAC)
この章では , DMA コントローラの概要 , ブロック
ダイヤグラム , レジスタの構成 / 機能および DMA
コントローラの動作について説明します。
16.1 DMA コントローラの概要
16.2 DMA コントローラのブロックダイヤグラム
16.3 DMA コントローラのレジスタ
16.4 DMA コントローラの転送モード
16.5 転送受付信号出力と転送終了信号出力
16.6 DMA コントローラに関する注意事項
16.7 DMA コントローラのタイミング図
339
第 16 章 DMA コントローラ (DMAC)
16.1
DMA コントローラの概要
DMA コントローラは , MB91151A に内蔵されているモジュールで , DMA(Direct
Memory Access) 転送を行います。
■ DMA コントローラの特長
• 8 チャネル
• 以下の 3 種類の転送モード
- シングル / ブロック転送
- バースト転送
- 連続転送
• アドレス全領域とアドレス全領域の間での転送
• 最大 65536 回の転送回数
• 転送終了時割込み機能
• 転送アドレス増加 / 減少をソフトウェアで選択可能
• 以下の端子×各 3 本
- 外部転送要求入力端子
- 外部転送要求受付出力端子
- 外部転送終了出力端子
340
第 16 章 DMA コントローラ (DMAC)
16.2
DMA コントローラのブロックダイヤグラム
図 16.2-1 に , DMA コントローラのブロックダイヤグラムを示します。
■ DMA コントローラのブロックダイヤグラム
図 16.2-1 DMA コントローラのブロックダイヤグラム
3
DREQO~DREQ2
内蔵リソース
転送要求
3
エッジ/レベル
検出回路
3
DACKO~DACK2
DEOPO~DEOP2
割込み要求
3
8
シーケンサ
5
スイッチャ
DPDP
DACSR
データバス
データバッファ
DATCR
モード
BLK減
BLK
DMACT
増/減
SADR
DADR
341
第 16 章 DMA コントローラ (DMAC)
16.3
DMA コントローラのレジスタ
図 16.3-1 に , DMA コントローラのレジスタ一覧を示します。
■ DMA コントローラのレジスタ一覧
図 16.3-1 DMA コントローラのレジスタ一覧
[DMAC 内:DMAC 内部レジスタ ]
31
0
000200H
DPDP
000204H
DACSR
000208H
DATCR
[RAM 上:DMA ディスクリプタ ]
31
0
DPDP + 0H
DMA
ch0
ディスクリプタ
DPDP + 0CH
DMA
ch1
ディスクリプタ
:
:
DPDP + 54H
DMA
ch7
ディスクリプタ
342
第 16 章 DMA コントローラ (DMAC)
16.3.1
DMAC パラメータディスクリプタポインタ (DPDP)
DMAC パラメータディスクリプタポインタ (DPDP) は , DMAC の内部レジスタで ,
RAM 上にある DMAC 用ディスクリプタテーブルの先頭アドレスを格納するレジス
タです。
DPDP のビット 6 ∼ビット 0 は常に "0" で , 設定可能なディスクリプタの先頭アド
レスは 128 バイト単位となります。
■ DMAC パラメータディスクリプタポインタ (DPDP)
DMAC パラメータディスクリプタポインタ (DPDP) のレジスタ構成は以下のとおりで
す。
31
7 6
000200H
0
0000000
初期値:0000000B
初期値:不定
• リセット時 : 初期化されません。
• リード / ライト可能です。
• 本レジスタへのアクセスには , 32 ビット転送命令を使用してください。
各チャネルの動作モードを指定するディスクリプタは , 表 16.3-1 に示すように , DPDP
で指定される以下のアドレスに置かれます。
表 16.3-1 各チャネルのディスクリプタアドレス
DMA チャネル ディスクリプタアドレス DMA チャネル ディスクリプタアドレス
0
DPDP + 0(00H)
4
DPDP + 48(30H)
1
DPDP + 12(0CH)
5
DPDP + 60(3CH)
2
DPDP + 24(18H)
6
DPDP + 72(48H)
3
DPDP + 36(24H)
7
DPDP + 84(54H)
343
第 16 章 DMA コントローラ (DMAC)
16.3.2
DMAC コントロールステータスレジスタ (DACSR)
DMAC コントロールステータスレジスタ (DACSR) は , DMAC の内部レジスタで ,
DMAC 全体に関する制御 , ステータスを示すレジスタです。
■ DMAC コントロールステータスレジスタ (DACSR)
DMAC コントロールステータスレジスタ (DACSR) のレジスタ構成を以下に示します。
000204H
31
30
29
28
27
26
25
24
初期値
DER7
DED7
DIE7
DOE7
DER6
DED6
DIE6
DOE6
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
23
22
21
20
19
18
17
16
初期値
DER5
DED5
DIE5
DOE5
DER4
DED4
DIE4
DOE4
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
9
8
初期値
DER3
DED3
DIE3
DOE3
DER2
DED2
DIE2
DOE2
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
初期値
DER1
DED1
DIE1
DOE1
DER0
DED0
DIE0
DOE0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
[ ビット 31, 27, 23, 19, 15, 11, 7, 3] DER7 ∼ DER0 (DMA ERror)
ch7 ∼ ch0 の DMA 要求発生元にエラーが発生して , DMA 転送処理を中断したこと
を示します。
0: エラーはありません。
1: エラーが発生しました。
エラーが発生するか否かは , DMA 要求発生元 ( リソース ) により異なります。エ
ラーが発生しない DMA 要求発生元もあります。
• リセット時 :"0" に初期化されます。
• リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。
• リードモディファイライト系の命令による読出し時は , "1" が読み出されます。
[ ビット 30, 26, 22, 18, 14, 10, 6, 2] DED7 ∼ DED0 (DMA EnD)
ch7 ∼ ch0 の DMA 転送が終了したことを示します。
0:DMA 転送動作は終了していません。
1: カウンタが "0" になった , または転送要求発生元でエラーが発生したことを示
します。
• リセット時 :"0" に初期化されます。
• リード / ライト可能ですが , 本ビットへの書込みは , "0" のみ有効です。
344
第 16 章 DMA コントローラ (DMAC)
• リードモディファイライト系の命令による読出し時は , "1" が読み出されます。
[ ビット 29, 25, 21, 17, 13, 9, 5, 1] DIE7 ∼ DIE0 (DMA Interrupt Enable)
ch7 ∼ ch0 の DMA 転送終了時 (DED7 ∼ DED0 が 1 になったとき ) に割込み要求を
発生させるか否かを指定します。
0: 割込み禁止
1: 割込み許可
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
[ ビット 28, 24, 20, 16, 12, 8, 4, 0] DOE7 ∼ DOE0 (DMA Operation Enable)
ch7 ∼ ch0 の DMA 転送動作を許可します。
0: 動作禁止
1: 動作許可
• 該当するチャネルの DMA 転送が完了すると (DED7 ∼ DED0 が 1 になると ), DOE7 ∼
DOE0 は 0 にクリアされます。
• 転送の完了によるクリア動作と , バスからの書込みによるセット動作が同時に行
われた場合は , セット動作が優先されます。
• リセット時 :"0" に初期化されます。
• リード / ライト可能です。
345
第 16 章 DMA コントローラ (DMAC)
16.3.3
DMAC 端子コントロールレジスタ (DATCR)
DMAC 端子コントロールレジスタ (DATCR) は , DMAC の内部レジスタで , 外部転送
要求入力端子 , 外部転送要求受付出力端子 , 外部転送終了出力端子に関する制御を行
うレジスタです。
■ DMAC 端子コントロールレジスタ (DATCR)
DMAC 端子コントロールレジスタ (DATCR) のレジスタ構成を以下に示します。
31
24
000208H
XXXXXXXXB
−
23
22
21
20
−
−
LS21
LS20
R/W
R/W
R/W
R/W
R/W
R/W
13
12
11
10
9
8
15
14
−
−
19
18
17
16
AKSE2 AKDE2 EPSE2 EPDE2
LS11
LS10
R/W
R/W
R/W
R/W
R/W
R/W
3
2
1
0
7
6
5
4
−
−
LS01
LS00
R/W
R/W
初期値
AKSE1 AKDE1 EPSE1 EPDE1
AKSE0 AKDE0 EPSE0 EPDE0
R/W
R/W
R/W
初期値
XXXX0000B
初期値
XXXX0000B
初期値
XXXX0000B
R/W
[ビット21, 20, 13, 12, 5, 4] LS21, LS20, LS11, LS10, LS01, LS00 転送要求入力検出レ
ベル選択
該当する外部転送要求入力端子 DREQn の検出レベルを以下のように選択します。
LS21, LS11, LS01
LS20, LS10, LS00
0
0
立上りエッジ検出
0
1
立下りエッジ検出
1
0
"H" レベル検出
1
1
"L" レベル検出
動作制御機能
• リセット時 : 不定です。
• リード / ライト可能です。
• 連続転送モードを使用するときは , "H" レベル検出または "L" レベル検出を設定して
ください。
346
第 16 章 DMA コントローラ (DMAC)
[ ビット 19, ビット 11, ビット 3] AKSE2 ∼ AKSE0
[ ビット 18, ビット 10, ビット 2] AKDE2 ∼ AKDE0
転送要求受付出力信号を発生するタイミングを指定します。また , 転送要求受付出
力信号の端子からの出力機能の許可 / 禁止も指定します。
AKSE2 ∼
AKSE0
AKDE2 ∼
AKDE0
0
0
転送受付出力禁止
0
1
転送受付出力許可 , 転送先データアクセス時に出力
1
0
転送受付出力許可 , 転送元データアクセス時に出力
1
1
転送受付出力許可および転送先データアクセス時に出力
動作制御機能
• リセット時 :"00B" に初期化されます。
• リード / ライト可能です。
[ ビット 17, ビット 9, ビット 1] EPSE2 ∼ EPSE0
[ ビット 16, ビット 8, ビット 0] EPDE2 ∼ EPDE0
転送終了出力信号を発生するタイミングを指定します。また , 転送終了出力信号の
端子からの出力機能の許可 / 禁止も指定します。
EPSE2 ∼
EPSE0
EPDE2 ∼
EPDE0
0
0
転送終了出力禁止
0
1
転送終了出力許可 , 転送先データアクセス時に出力
1
0
転送終了出力許可 , 転送元データアクセス時に出力
1
1
転送終了出力許可 , 転送元および転送先データアクセス
時に出力
動作制御機能
• リセット時 :"00B" に初期化されます。
• リード / ライト可能です。
347
第 16 章 DMA コントローラ (DMAC)
16.3.4
RAM 上のディスクリプタ内レジスタ
RAM 上のディスクリプタ内レジスタは , DMA 転送における , チャネルごとの設定情
報を格納するレジスタです。
チャネルあたり 12 バイトの大きさを持ち , DPDP により示されるアドレスのメモリ
が使用されます。
チャネルごとのディスクリプタの先頭アドレスは , 表 16.3-1 を参照してください。
■ ディスクリプタ先頭ワード
ディスクリプタ先頭ワードのレジスタ構成は以下のとおりです。
31
16
DMACT
R/W
15
14
13
12
11
10
9
8
BLK
−
R/W
7
6
5
4
3
2
1
0
SCS1
SCS0
DCS1
DCS0
WS1
WS0
MOD1
MOD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値:不定
[ ビット 31 ∼ビット 16] DMACT 転送回数指定
DMA 転送を行う回数を指定します。0000H を設定すると , 65536 回の転送を行いま
す。
1 回転送を行うたびに , 値が 1 ずつ減少します。
[ ビット 15 ∼ビット 12]
空き
[ ビット 11 ∼ビット 8] BLK ブロックサイズ指定
シングル / ブロック転送モードにおける , 転送ブロックサイズを指定します。
"0" を設定すると , ブロックサイズとしては 16 が指定されたことになります。シン
グル転送を行うときは , "1" を指定してください。
348
第 16 章 DMA コントローラ (DMAC)
[ ビット 7, ビット 6] SCS1, SCS0 転送元アドレス更新モード指定
[ ビット 5, ビット 4] DCS1, DCS0 転送先アドレス更新モード指定
転送元および転送先アドレスの 1 転送ごとの更新モードを指定します。
以下の組合せの指定が可能です。
SCS1
SCS0
DCS1
DCS0
転送元アドレス
転送先アドレス
0
0
0
0
アドレス増加
アドレス増加
0
0
0
1
アドレス増加
アドレス減少
0
0
1
0
アドレス増加
アドレス固定
0
1
0
0
アドレス減少
アドレス増加
0
1
0
1
アドレス減少
アドレス減少
0
1
1
0
アドレス減少
アドレス固定
1
0
0
0
アドレス固定
アドレス増加
1
0
0
1
アドレス固定
アドレス減少
1
0
1
0
アドレス固定
アドレス固定
その他
設定禁止
アドレスを更新するモードにおける増減の単位は , 転送データサイズの指定に応じ
て , 以下のようになります。
転送データサイズ
アドレス増減の単位
バイト (8 ビット )
± 1 バイト
ハーフワード (16 ビット )
± 2 バイト
ワード (32 ビット )
± 4 バイト
[ ビット 3, ビット 2] WS1, WS0
転送データサイズを指定します。
WS1
WS0
0
0
バイト
0
1
ハーフワード
1
0
ワード
1
1
設定禁止
転送データサイズ
349
第 16 章 DMA コントローラ (DMAC)
[ ビット 1, ビット 0] MOD1, MOD0 転送モード指定
転送モードを指定します。
MOD1
MOD0
0
0
シングル / ブロックモード
0
1
バーストモード
1
0
連続転送モード
1
1
設定禁止
動作モード
連続転送モードが使用できるのは , ch0 ∼ 2 だけです。
■ ディスクリプタ第 2 ワード
ディスクリプタ第 2 ワードのレジスタ構成は以下のとおりです。
31
0
SADR
R/W
転送元アドレスを格納します。
アドレス更新モードの指定 (SCS1, SCS0 ビット ) に基づき , 転送動作に応じて値が更新
されます。
転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは
"4" の倍数のアドレスを指定してください。
■ ディスクリプタ第 3 ワード
ディスクリプタ第 3 ワードのレジスタ構成は以下のとおりです。
31
0
DADR
R/W
転送先アドレスを格納します。
アドレス更新モードの指定 (DCS1, DCS0 ビット ) に基づき , 転送動作に応じて値が更
新されます。
転送データサイズがハーフワード長のときは 2 の倍数のアドレスを , ワード長のときは
"4" の倍数のアドレスを指定してください。
350
第 16 章 DMA コントローラ (DMAC)
16.4
DMA コントローラの転送モード
DMA コントローラには , 以下の 3 つの転送モードがあります。
• シングル / ブロック転送モード
• 連続転送モード
• バースト転送モード
■ シングル / ブロック転送モード
1)初期化ルーチンでディスクリプタの設定を行います。
2)プログラムによって , DMA 転送要求発生元の初期化を行います。内部周辺回路を
転送要求発生元とする場合は , 割込み要求を許可にします。同時に , 割込みコント
ローラの ICR レジスタは割込み禁止にします。
3)プログラムによって,所望するDACSRのDOE7∼DOE0ビットに"1"を書き込みます。
この時点で DMA に関する設定は完了です。
4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。
5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス
を経由してアクセスします。
6)DMACT の減算を行い , ディスクリプタ内の情報に従った転送を BLK で指定された
回数 , または DMACT が "0" になるまで行います。データの転送中 , 転送要求受付
出力信号を出力します ( 外部転送要求入力使用の場合 )。減算した DMACT が "0" に
なったとき , データ転送中に転送終了出力信号を出力します。
7)転送要求入力をクリアします。
8)SADR または DADR の増加減を行って , DMACT の値とともにディスクリプタに書
き戻します。
9)CPU にバス権を返します。
10)DMACT の値が "0" であった場合 , DACSR の DED7 ∼ DED0 を "1" にするとともに
, 割込み許可になっていれば CPU に割込み発生します。
1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを
外部バス間で転送 , データ長がバイトの場合は , 以下のようになります。
• 転送元・転送先アドレスともに固定のとき :(6+5 × BLK) サイクル
• 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × BLK) サイクル
• 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × BLK) サイクル
■ 連続転送モード
1)初期化ルーチンでディスクリプタの設定を行います。
2)プログラムによって , DMA 転送要求発生元の初期化を行います。外部転送要求入
力端子を , "H" または "L" レベル検出に設定します。
3)プログラムによって,所望するDACSRのDOE7∼DOE0ビットに"1"を書き込みます。
この時点で DMA に関する設定は完了です。
4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。
351
第 16 章 DMA コントローラ (DMAC)
5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス
を経由してアクセスします。
6)DMACT の減算を行って , ディスクリプタ内の情報に従った転送を 1 回行います。
データの転送中 , 転送要求受付出力信号を出力します。減算した DMACT が "0" に
なったとき , データ転送中に転送終了出力信号を出力します。
7)DMACT の値が "0" ではなく , 周辺からの DMA 要求がまだ存在する場合は , 再び 6)
から繰り返します。
8)DMACT の値が "0" であるか , 周辺からの DMA 要求が解除されたら , SADR または
DADR に増加減を行い , DMACT の値とともにディスクリプタに書き戻します。
9)CPU にバス権を返します。
10)カウンタの値が "0" であった場合 , DACSR の DED7 ∼ DED0 を "1" にするとともに
, 割込み許可になっていれば CPU に割込みを発生します。
1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを
外部バス間で転送 , データ長がバイトの場合は , 以下のようになります。
• 転送元・転送先アドレスともに固定のとき :(6+5 × n) サイクル
• 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × n) サイクル
• 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × n) サイクル
■ バースト転送モード
1)初期化ルーチンでディスクリプタの設定を行います。
2)プログラムによって , DMA 転送要求発生元の初期化を行います。内部周辺回路を転
送要求元とする場合は , 割込み要求を許可にします。同時に , 割込みコントローラ
の ICR は割込み禁止にします。
3)プログラムにより , 所望する DACSR の DOE7 ∼ DOE0 ビットに "1" を書き込みます。
この時点で DMA に関する設定は完了です。
4)DMAC が DMA 転送要求入力を検出すると , CPU にバス権確保を要求します。
5)CPU がバス権を移譲すると , DMAC はディスクリプタにある 3 ワードの情報をバス
を経由してアクセスします。
6)DMACT の減算を行いながら , ディスクリプタ内の情報に従った転送を DMACT で
設定した回数だけ行います。データの転送中 , 転送要求受付出力信号を出力します
( 外部転送要求入力使用の場合 )。減算した DMACT が "0" になったとき , データ転
送中に転送終了出力信号を出力します。
7)SADR または DADR の増加減を行って , DMACT の値とともにディスクリプタに書
き戻します。
8)CPU にバス権を返します。
9)DACSR の DED7 ∼ DED0 を "1" にするとともに , 割込み許可になっていれば CPU
に割込みを発生します。
1 回あたりの最低所要サイクル数は , ディスクリプタを内蔵 RAM に格納し , データを
外部バス間で転送 , データ長がバイトの場合 , 以下のようになります。
• 転送元・転送先アドレスともに固定のとき :(6+5 × n) サイクル
• 転送元・転送先アドレスの一方のみ固定のとき :(7+5 × n) サイクル
• 転送元・転送先アドレスの両方が増加または減少のとき :(8+5 × n) サイクル
352
第 16 章 DMA コントローラ (DMAC)
■ リクエストのセンスと各転送モードの組合せ
図 16.4-1 に , リクエストのセンスと各転送モードの組合せを示します。
図 16.4-1 リクエストのセンスと各転送モードの組合せ
リクエストセンス
転送モード
転送の単位
エッジセンス
ステップ動作モード
シングル転送
レベルセンス
バースト転送モード
ブロック転送
連続転送モード
■ DREC 信号のセンスモード
● エッジセンス
ステップ転送 ( シングル / ブロック ) およびバースト転送にて使用可能です。
DMA 要求を , ( アクティブ ) エッジにより検出します。
DMAC 転送中は外部 DREQ の入力はマスクされているので , 次転送のためのアクティ
ブエッジは , 直前の DMA 転送における転送先 DACK のアクティブエッジ以降である
必要があります。ステップ転送時には注意してください。
● レベルセンス
ステップ転送 ( シングル / ブロック ) および連続・バースト転送にて使用可能です。
DMA 要求を ( アクティブ ) レベルにより検出します。
<注意事項>
レベルセンス , エッジセンスともに , DACK 信号の電気的特性は , 最小 2tCYC[ns] です。
エッジセンスの場合は , DACK のネゲート期間も同様に最小 2tCYC[ns] 必要です。
353
第 16 章 DMA コントローラ (DMAC)
16.4.1
ステップ転送 ( シングル / ブロック転送 )
ステップ転送 ( シングル / ブロック転送 ) は , 1 回の転送要求で , 1 回の DMA 転送を
行う転送モードです。DREQ 入力はエッジ , レベルの選択が可能です。
■ ステップ転送 ( シングル / ブロック転送 )
ステップ転送では , 1DMA 転送ごとに , CPU にバス権が譲渡されます ( サイクルスチー
ル的に転送が行われます )。
1 転送単位は , ブロックサイズにて決定され , ブロックサイズを大きくすれば DMAC の
転送レートは向上しますが , CPU の実行スループットは低下します。
図 16.4-2 に , CLK ダブラ使用 , 内部ディスクリプタ , ブロックサイズ =1 の場合の , ス
テップ転送のタイミング例を示します。
図 16.4-2 ステップ転送のタイミング例
ステップ転送[CLKダブラ使用,内部ディスクリプタ,ブロックサイズ=1]
CLK
DREQ
DACK
ディスクリプタ
アクセス
Internal
D-Abus
External
Abus
354
CPUの
DATA bus使用可能期間
転送先
転送先
転送先
転送先
第 16 章 DMA コントローラ (DMAC)
16.4.2
連続転送
連続転送は , 転送要求 [DREQ] がアクティブレベルを保持し続けている間 , DMA 転
送を行う転送モードです。DREQ 入力はレベルセンスのみ可能です。
■ 連続転送
連続転送では , 転送回数レジスタが "0" になるか , もしくは DREQ 入力のネゲートによ
り , CPU へバス権を譲渡します。
図 16.4-3 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , 連続転送のタイミング例
を示します。
図 16.4-3 連続転送のタイミング例
連続転送[CLKダブラ使用,内部ディスクリプタ]
CLK
ディスクリプタ
アクセス
DREQ
DACK
Internal
D-Abus
External
Abus
CPUの
DATA bus使用可能期間
転送先
転送先
転送先
転送先
355
第 16 章 DMA コントローラ (DMAC)
16.4.3
バースト転送
バースト転送は , 1 回の転送要求 [DREQ] で設定された転送回数分の DMA 転送をす
べて行う転送モードです。DREQ 入力はレベルセンスもしくは , エッジセンスの選
択が可能です。
■ バースト転送
バースト転送では , 転送回数レジスタが "0" になることにより , DMA 転送を終了し ,
CPU へバス権を譲渡します。
図 16.4-4 に , CLK ダブラ使用 , 内部ディスクリプタの場合の , バースト転送のタイミン
グ例を示します。
図 16.4-4 バースト転送のタイミング例
バースト転送[CLKダブラ使用,内部ディスクリプタ]
CLK
DREQ
ディスクリプタ
アクセス
DACK
Internal
D-Abus
External
Abus
CPUの
DATA bus使用可能期間
転送先
転送先
転送先
転送先
DEOP2~DEOP0
DMACT=1
356
DMACT=0
第 16 章 DMA コントローラ (DMAC)
16.4.4
DREQ センスモードによる違い
DREQ センスモードには , レベルモードとエッジモードがあります。ここでは , それ
ぞれの注意事項について示します。
■ レベルモード時の注意事項
レベルセンスモード時には , DMAC 転送のオーバランに注意が必要です。
転送先アクセス時の DACK ↑エッジまでに DREQ をネゲートしてください。
図 16.4-5 に , レベルモード時のタイミングを示します。
図 16.4-5 レベルモード時のタイミング
最大1サイクル
CLK
DREQ
DREQ
DACK
DREQ(NG)
1回の転送要求に対して,2回
転送してしまいます。
ソースリード
ディスティネーションライト
内部D-A
ディスクリプタライト
ディスクリプタリード
External
転送先
A bus
転送先
A
B
A: 要求フラグのクリアポイント
エッジセンス時の次 DREQ のセンス開始ポイント
連続転送モード時の次 DREQ のセンス開始ポイント
B: レベルセンスモードで , シングル , ブロック転送時における次 DREQ のセンス開始ポイント
( 注意事項 )DREQ から DMA 起動までのタイミングは , ほぼ最速の場合を記載しています。
357
第 16 章 DMA コントローラ (DMAC)
■ エッジモード時の注意事項
エッジセンスモード時には , DMAC 要求フラグのクリアポイント以降に , 次の DREQ
エッジを入力する必要があります。それ以前に入力されたエッジは無視されますので ,
注意してください。
また , エッジを認識させるためにネゲート期間として最小 2tCYC[ns] 必要です。
転送先アクセス時の DACK ↓エッジ以降に , 図 16.4-6 に示す DREQ を入力してくださ
い。
図 16.4-6 に , エッジモード時のタイミングを示します。
図 16.4-6 エッジモード時のタイミング
CLK
DREQ
DACK
DREQ(NG)
アクティブエッジが早い
DREQ(NG)
DREQ(NG)
ディスティネーションライト
最小2tCYC[ns]が満足されて
いない。
内部D-Abus
ディスクリプタライト
External
A bus
転送先
転送先
A
B
A: 要求フラグのクリアポイント
エッジセンス時の次 DREQ のセンス開始ポイント
連続転送モード時の次 DREQ のセンス開始ポイント
B: レベルセンスモードで , シングル , ブロック転送時における次 DREQ のセンス開始ポイント
( 注意事項 )DREQ から DMA 起動までのタイミングは , ほぼ最速の場合を記載しています。
358
第 16 章 DMA コントローラ (DMAC)
16.5
転送受付信号出力と転送終了信号出力
ch0, ch1, ch2 には , 転送要求受付信号と転送終了信号出力を端子から出力する機能
があります。
転送受付信号出力では , 端子からの転送要求入力を受理して DMA 転送を行うとき ,
DMAC から転送要求受付信号が出力されます。
転送終了信号出力では , 端子からの転送要求入力を受理して DMA 転送を行い ,
DMACT カウンタが "0" となって転送を終了するとき , DMAC から転送終了信号が
出力されます。
■ 転送受付信号出力
転送要求受付信号は , アクティブローのパルスで , 転送データのアクセスに伴って出力
されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す
るのか , またはその両方で出力するのか , を DATCR 中の AKSE2 ∼ AKSE0, AKDE2 ∼
AKDE0 ビットにて指定可能です。
■ 転送終了信号出力
転送終了信号は , アクティブローのパルスで , 最終転送データのアクセスに伴って出力
されます。転送元アクセスに同期して出力するのか , 転送先アクセスに同期して出力す
るのか , またはその両方で出力するのかを DATCR 中の EPSE2 ∼ EPSE0, EPDE2 ∼
EPDE0 ビットにて指定可能です。
359
第 16 章 DMA コントローラ (DMAC)
16.6
DMA コントローラに関する注意事項
DMA コントローラを使用するうえでの注意事項を示します。
■ チャネル間優先順位
本 DMAC は , 1 つのチャネルの DMA 転送要求により一度起動されると , ほかのチャネ
ルの DMA 転送要求が発生しても実行中の転送が終了するまでほかのチャネルの転送
要求は受理されず , 保留されます。
DMAC が DMA 転送要求を検出するときに , 複数のチャネルの要求が同時にアクティ
ブになっていた場合 , 受理するチャネルは以下の優先度に従って決まります。
( 強 ) ch0 > ch1 > ch2 > ch3 > ch4 > ch5 > ch6 > ch7( 弱 )
複数のチャネルの要求が同時に発生した場合 , 1 つのチャネルの DMA 転送を実行した
後 , 次のチャネルの DMA 転送を行う前に , 一度 CPU にバスの制御が戻ります。
■ リソースの割込み要求を DMA 転送要求として使用する場合の注意
DMAC 転送を望む場合 , 該当する割込みの割込みコントローラ内の割込みレベルは割
込み禁止にする必要があります。
また , 逆に , 割込み発生を望む場合 , DMAC 内の DMAC 動作許可ビットを禁止状態にし ,
割込みレベルを適切な値にする必要があります。
■ 優先度の高い割込み発生時の DMA 転送抑止
FR ファミリには , DMA 転送要求の発生による DMA 転送の実行中に , より優先度の高
い割込み要求が発生した場合 , DMA 転送を停止させる機能があります。
● HRCL レジスタ
割込みコントローラの HRCL レジスタ (Hold Request Cancel Level register) を操作するこ
とにより , 割込み要求の発生時に , DMA 転送動作を停止させることができます。
周辺回路からの割込み要求が発生したときに,その割込み要求に設定された割込みレベ
ルが , HRCL レジスタに設定された割込みレベルよりも強い値であった場合 , DMAC の
DMA 転送動作が抑止されます。DMA 転送動作の実行中であれば , 転送動作の切れ目
で動作を中止し , バス権を CPU に開放します。DMA 転送要求の発生待ちの状態であ
れば , DMA 転送要求が発生しても保留する状態になります。
リセット後 , HRCL レジスタは最も弱いレベル (31) に設定されるので , すべての割込み
要求に対して DMA 転送動作は抑止されることになります。割込み要求が発生してい
てもDMA転送を動作させたいときは, HRCLレジスタを必要な値に設定してください。
● PDRR レジスタ
HRCL レジスタの指定による DMA 転送動作の抑止機能は , より高い優先度の割込み要
求がアクティブなときのみ有効です。そのため , 例えば割込みハンドラのプログラム中
で割込み要求をクリアすると , その時点で HRCL レジスタによる DMA 転送の抑止は解
除され , CPU がバス権を失ってしまう場合があります。
ほかの割込み要求を受理できるように割込み要求はクリアして , かつ DMA 転送動作は
抑止するために , クロック制御部の PDRR レジスタが用意されています。
割込みハンドラ中で PDRR に 0 以外の値を書き込むと , DMA 転送動作は抑止されます。
DMA 転送動作の抑止を解除したいとき , PDRR に "0" を書き込んでください。
360
第 16 章 DMA コントローラ (DMAC)
■ スリープモード中の DMA 転送動作
スリープモード中の DMA 転送動作は使用できません。スリープモードにする前に必
ず DMA 転送動作を動作禁止に設定してください。
■ DMAC 内部レジスタへの転送動作
転送先アドレスとして , DMAC の内部レジスタは指定しないでください。表 16.6-1 に ,
DMA 転送要求要因の一覧を示します。
表 16.6-1 DMA 転送要求要因一覧
チャネル番号
転送要求要因
0
外部転送要求入力端子 DREQ0
1
外部転送要求入力端子 DREQ1
2
外部転送要求入力端子 DREQ2
3
PPG ch0
4
UART ch0 受信
5
UART ch0 送信
6
16 ビットリロードタイマ ch0
7
A/D コンバータ
● DMAC 転送要求元のエラーステータス
DACSR の DER7 ∼ DER0 ビットで DMA 要求発生元にエラーが発生したことを通知で
きるのは ,
ch4 だけです。
UART ch0 の受信割込みを DMA 転送要求として使用しているときに , 以下のエラーが
発生すると , DER4 ビットが "1" となります。
• パリティエラー
• オーバランエラー
• フレーミングエラー
361
第 16 章 DMA コントローラ (DMAC)
16.7
DMA コントローラのタイミング図
以下の動作のタイミングを示します。
• ディスクリプタアクセス部
• データ転送部
• 連続転送モードでの転送停止
• 転送の終了
■ タイミング図で使用している記号
表 16.7-1 に , 以降のタイミング図中で使用している記号の意味を示します。
表 16.7-1 タイミング図で使用している記号
記号
#0
ディスクリプタ No.0
#0H
ディスクリプタ No.0 のビット 31 ∼ビット 16
#0L
ディスクリプタ No.0 のビット 15 ∼ビット 0
#1
ディスクリプタ No.1
#1H
ディスクリプタ No.1 のビット 31 ∼ビット 16
#1L
ディスクリプタ No.1 のビット 15 ∼ビット 0
#2
ディスクリプタ No.2
#2H
ディスクリプタ No.2 のビット 31 ∼ビット 16
#2L
ディスクリプタ No.2 のビット 15 ∼ビット 0
#1/2
ディスクリプタ No.1 または No.2(SCS1, SCS0, DCS1, DCS0 により
決まる )
#1/2H
ディスクリプタ No.1 または No.2 のビット 31 ∼ビット 16
#1/2L
ディスクリプタ No.1 または No.2 のビット 15 ∼ビット 0
S
362
意味
転送元
SH
転送元のビット 31 ∼ビット 16
SL
転送元のビット 15 ∼ビット 0
D
転送先
DH
転送先のビット 31 ∼ビット 16
DL
転送先のビット 15 ∼ビット 0
第 16 章 DMA コントローラ (DMAC)
16.7.1
ディスクリプタアクセス部のタイミング図
ディスクリプタアクセス部のタイミング図を示します。
■ ディスクリプタアクセス部
● 要求端子入力モード : レベル , ディスクリプタアドレス : 外部
(A)
CLK
DREQ0~DREQ2
Addr端子
#0H
Data端子
#0L
#0H
#1H
#0L
#1L
#1H
#2L
#2H
#1L
#2H
S
#2L
S
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
● 要求端子入力モード : レベル , ディスクリプタアドレス : 内部
(A)
内部 KB
CLK
DREQ0~DREQ2
Addr端子
S
Data端子
S
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
● 要求端子入力モード : エッジ , ディスクリプタアドレス : 外部
(A)
CLK
DREQ0~DREQ2
Addr端子
Data端子
#0H
#0L
#0H
#1H
#0L
#1L
#1H
#2H
#1L
#2L
#2H
S
#2L
S
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
363
第 16 章 DMA コントローラ (DMAC)
● 要求端子入力モード : エッジ , ディスクリプタアドレス : 内部
(A)
CLK
DREQ0~DREQ2
S
Addr端子
S
Data端子
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
<注意事項>
DREQ0 ∼ DREQ2 の発生から DMAC 動作開始までの部分については , 最も早い条件の場
合を示してあります。
実際の動作では , CPU の命令フェッチやデータアクセスによるバスの競合があるため ,
DMAC の動作開始が遅れる場合があります。
364
第 16 章 DMA コントローラ (DMAC)
16.7.2
データ転送部のタイミング図
データ転送部のタイミング図を示します。
■ データ転送部 , 16/8 ビットデータ
● 転送元領域 : 外部 , 転送先領域 : 外部
CLK
DREQ0~DREQ2
Addr端子
S
#2
Data端子
#2
D
S
S
D
D
S
S
D
D
S
S
D
D
S
D
RD
WR0,WR1
W
W
W
DACK0~DACK2
DEOP0~DEOP2
(A)
● 転送元領域 : 外部 , 転送先領域 : 内部 RAM
(A)
CLK
DREQ0~DREQ2
Addr端子
S
#2
Data端子
#2
S
S
S
S
S
S
S
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
● 転送元領域 : 内部 RAM, 転送先領域 : 外部
(A)
CLK
DREQ0~DREQ2
Addr端子
Data端子
#2
#2
D
D
D
D
D
D
D
D
RD
WR0,WR1
W
W
W
W
DACK0~DACK2
DEOP0~DEOP2
365
第 16 章 DMA コントローラ (DMAC)
16.7.3
連続転送モードでの転送停止タイミング図
連続転送モードでの転送停止のタイミング図を示します。
■ 連続転送モードでの転送停止 ( いずれか一方のアドレスは固定である場合 ), 16/8
ビットデータ
● 転送元領域 : 外部 , 転送先領域 : 外部
CLK
DREQ0~DREQ2
Addr端子
D
Data端子
D
S
S
D
#0H
#1/2H
#1/2L
D
#0H
#1/2H
#1/2L
RD
WR0,WR1
W
W
W
W
W
DACK0~DACK2
DEOP0~DEOP2
● 転送元領域 : 外部 , 転送先領域 : 内部 RAM
CLK
DREQ0~DREQ2
Addr端子
S
S
Data端子
S
S
#0H
#1/2H
#1/2L
#0H
#1/2H
#1/2L
RD
WR0,WR1
W
DACK0~DACK2
DEOP0~DEOP2
● 転送元領域 : 内部 RAM, 転送先領域 : 外部
CLK
DREQ0~DREQ2
Addr端子
D
D
D
#0H
#1/2H
#1/2L
Data端子
D
D
D
#0H
#1/2H
#1/2L
W
W
RD
WR0,WR1
DACK0~DACK2
DEOP0~DEOP2
366
W
W
W
W
W
W
第 16 章 DMA コントローラ (DMAC)
■ 連続転送モードでの転送停止 ( 両方のアドレスが変化する場合 ), 16/8 ビットデータ
● 転送元領域 : 外部 , 転送先領域 : 外部
CLK
DREQ0~DREQ2
Addr端子
D
Data端子
D
S
S
D
#0H
#1H
#1L
#2H
#2L
D
#0H
#1H
#1L
#2H
#2L
RD
WR0,WR1
W
W
W
W
W
W
W
DACK0~DACK2
DEOP0~DEOP2
● 転送元領域 : 外部 , 転送先領域 : 内部 RAM
CLK
DREQ0~DREQ2
Addr端子
S
Data端子
S
S
S
#0H
#1H
#1L
#2H
#2L
#0H
#1H
#1L
#2H
#2L
RD
WR0,WR1
W
W
W
W
W
DACK0~DACK2
DEOP0~DEOP2
● 転送元領域 : 内部 RAM, 転送先領域 : 外部
CLK
DREQ0~DREQ2
Addr端子
D
D
D
#0H
#1H
#1L
#2H
#2L
Data端子
D
D
D
#0H
#1H
#1L
#2H
#2L
RD
WR0,WR1
W
W
W
W
W
W
W
W
DACK0~DACK2
DEOP0~DEOP2
367
第 16 章 DMA コントローラ (DMAC)
転送の終了動作タイミング図
16.7.4
転送の終了動作のタイミング図を示します。
■ 転送の終了動作 ( いずれか一方のアドレスは固定である場合 )
● バス幅 : 16 ビット , データ長 : 8/16 ビット
CLK
Addr端子
D
Data端子
D
S
D
S
S
D
S
D
#0H
#1/2H
#1/2L
D
#0H
#1/2H
#1/2L
RD
WR0,WR1
W
W
W
W
W
W
AKSE=1
DACK0~
DACK2
AKDE=1
両方とも1
EPSE=1
DEOP0~
EPDE=1
DEOP2
両方とも1
● バス幅 : 16 ビット , データ長 : 32 ビット
CLK
Addr端子
SH
Data端子
RD
SL
D
DL
DH
DL
SH
AKSE=1
両方とも1
EPSE=1
DEOP0~
EPDE=1
DEOP2
両方とも1
SL
D
DL
#0H
#1/2H
#1/2L
DH
DL
#0H
#1/2H
#1/2L
H
W
DACK0~
AKDE=1
DACK2
SL
SH
H
WR0,WR1
368
SL
SH
W
W
W
W
W
W
第 16 章 DMA コントローラ (DMAC)
■ 転送の終了動作 ( 両方のアドレスが変化する場合 )
● バス幅 : 16 ビット , データ長 : 8/16 ビット
CLK
Addr端子
D
Data端子
D
S
D
S
S
D
S
D
#0H
#1H
#1L
#2H
#2L
D
#0H
#1H
#1L
#2H
#2L
RD
W
WR0,WR1
W
W
W
W
W
W
W
D
DL
#0H
#1H
#1L
DH
DL
#0H
#1H
#1L
AKSE=1
DACK0~
AKDE=1
DACK2
両方とも1
EPSE=1
DEOP0~
EPDE=1
DEOP2
両方とも1
● バス幅 : 16 ビット , データ長 : 32 ビット
CLK
Addr端子
Data端子
SH
SL
SH
SL
D
DL
DH
DL
SH
H
RD
SL
H
W
WR0,WR1
SL
SH
W
W
W
W
W
W
AKSE=1
DACK0~
AKDE=1
DACK2
両方とも1
EPSE=1
DEOP0~
EPDE=1
DEOP2
両方とも1
CLK
Addr端子
#2H
#2L
Data端子
#2H
#2L
RD
WR0,WR1
W
W
369
第 16 章 DMA コントローラ (DMAC)
370
第 17 章
ビットサーチモジュール
この章では , ビットサーチモジュールの概要 , レジ
スタの構成 / 機能およびビットサーチモジュールの
動作について説明します。
17.1 ビットサーチモジュールの概要
17.2 ビットサーチモジュールのレジスタ
17.3 ビットサーチモジュールの動作と退避 / 復帰処理
371
第 17 章 ビットサーチモジュール
17.1
ビットサーチモジュールの概要
ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0", "1"
または変化点を検索し , 検出したビット位置を返す機能をもつモジュールです。
■ ビットサーチモジュールのブロックダイヤグラム
図 17.1-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。
図 17.1-1 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレス
デコーダ
検出モ ー ド
1検出データ化
ビットサーチ回路
検索結果
■ ビットサーチモジュールのレジスタ一覧
図 17.1-2 に , ビットサーチモジュールのレジスタ一覧を示します。
図 17.1-2 ビットサーチモジュールのレジスタ一覧
アドレス
0003F0H
372
31
0
BSD0
0 検出用データレジスタ
0003F4H
BSD1
1 検出用データレジスタ
0003F8H
BSDC
変化点検出用データレジスタ
0003FCH
BSRR
検出結果レジスタ
第 17 章 ビットサーチモジュール
17.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタには , 以下の 4 つがあります。
• 0 検出用データレジスタ (BSD0)
• 1 検出用データレジスタ (BSD1)
• 変化点検出用データレジスタ (BSDC)
• 検出結果レジスタ (BSRR)
■ 0 検出用データレジスタ (BSD0)
0 検出用データレジスタ (BSD0) のレジスタ構成は以下のとおりです。
アドレス
0003F0H
31
0
R/W → ライトオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
書き込んだ値に対して 0 検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください )。
■ 1 検出用データレジスタ (BSD1)
アドレス
0003F4H
31
0
R/W → リード / ライト可能
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください )。
● 書込み時
書き込んだ値に対して "1" を検出します。
● 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。
割込みハンドラなどがビットサーチモジュールを使用する場合に元の状態を退避復帰
するときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ
ジスタのみ操作することで退避復帰できます。
リセットによる初期値は不定です。
373
第 17 章 ビットサーチモジュール
■ 変化点検出用データレジスタ (BSDC)
変化点検出用データレジスタ (BSDC) のレジスタ構成は以下のとおりです。
アドレス
0003F8H
31
0
R/W → ライトオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください )。
■ 検出結果レジスタ (BSRR)
検出結果レジスタ (BSRR) のレジスタ構成は以下のとおりです。
アドレス
0003FCH
31
0
R/W → リードオンリ
初期値→ XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0 検出 , 1 検出または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは,最後に書き込んだデータレジスタによって決定され
ます。
374
第 17 章 ビットサーチモジュール
17.3
ビットサーチモジュールの動作と退避 / 復帰処理
ここでは , ビットサーチモジュールの 0 検出 , 1 検出および変化点検出の動作と退
避 / 復帰処理について示します。
■ 0 検出
0 検出では , 0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ
ンし , 最初の "0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す数値の関係は , 表 17.3-1 に示すとおりです。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H) →
20
11111000010010011110000010101010B (F849E0AAH) →
5
10000000000000101010101010101010B (8002AAAAH) →
1
11111111111111111111111111111111B (FFFFFFFFH) →
32
■ 1 検出
1 検出では , 1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャ
ンし , 最初の "1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は , 表 17.3-1 のとおりです。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H) →
2
00000001001000110100010101100111B (01234567H) →
7
00000000000000111111111111111111B (0003FFFFH) →
14
00000000000000000000000000000001B (00000001H) →
31
00000000000000000000000000000000B (00000000H) →
32
375
第 17 章 ビットサーチモジュール
■ 変化点検出
変化点検出では , 変化点検出用データレジスタに書き込まれたデータを , ビット 30 か
ら LSB へスキャンし , MSB の値と比較します。
最初に MSB と異なる値を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 17.3-1 に示すとおりです。
変化点が存在しないときは , "32" を返します。
変化点検出では , 結果として "0" を返すことはありません。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H) →
2
00000001001000110100010101100111B (01234567H) →
7
00000000000000111111111111111111B (0003FFFFH) →
14
00000000000000000000000000000001B (00000001H) →
31
00000000000000000000000000000000B (00000000H) →
32
11111111111111111111000000000000B (FFFFF000H) →
20
11111000010010011110000010101010B (F849E0AAH) →
5
10000000000000101010101010101010B (8002AAAAH) →
1
11111111111111111111111111111111B (FFFFFFFFH) →
32
表 17.3-1 ビット位置と返す値 (10 進 )
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
376
第 17 章 ビットサーチモジュール
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1)1 検出用データレジスタを読出し , この内容を保存する ( 退避 )
2)ビットサーチモジュールを使用
3)1) で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1) 以前に ,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記手
順で正しく元に戻ります。
377
第 17 章 ビットサーチモジュール
378
第 18 章
周辺ストップ制御
この章では , 周辺ストップ制御の概要およびレジス
タの構成 / 機能について説明します。
18.1 周辺ストップ制御の概要
18.2 周辺ストップ制御のレジスタ
379
第 18 章 周辺ストップ制御
18.1
周辺ストップ制御の概要
周辺ストップ制御は , 使用しないリソースのクロックを停止させ , より低消費電力化
を可能とする機能です。
■ 周辺ストップ制御のレジスタ一覧
図 18.1-1 に , 周辺ストップ制御のレジスタ一覧を示します。
図 18.1-1 周辺ストップ制御のレジスタ一覧
アドレス
000090H
bit7...........................................bit0
STPR0
000091H
STPR1
000092H
STPR2
■ 周辺ストップ制御の動作と注意事項
各ビットそれぞれ対応するリソースのクロックを停止することができます。
クロックを停止させたリソースは当然ながら起動できません。また , 停止中のリソース
のレジスタをアクセスしないでください。
使用中のリソースに対して本機能を用いて停止させないでください。
380
第 18 章 周辺ストップ制御
18.2
周辺ストップ制御のレジスタ
周辺ストップ制御のレジスタには , 以下の 3 つがあります。
• ストップ制御レジスタ 0(STPR0)
• ストップ制御レジスタ 1(STPR1)
• ストップ制御レジスタ 2(STPR2)
■ ストップ制御レジスタ 0(STPR0)
ストップ制御レジスタ 0(STPR0) のレジスタ構成は以下のとおりです。
アドレス
000090H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ST07
ST06
ST05
ST04
−
−
−
−
初期値
0000----B (R/W)
[ ビット 7] ST07
0
UART0 動作許可
1
UART0 動作停止
[ ビット 6] ST06
0
UART1 動作許可
1
UART1 動作停止
[ ビット 5] ST05
0
UART2 動作許可
1
UART2 動作停止
[ ビット 4] ST04
0
UART3 動作許可
1
UART3 動作停止
381
第 18 章 周辺ストップ制御
■ ストップ制御レジスタ 1(STPR1)
ストップ制御レジスタ 1(STPR1) のレジスタ構成は以下のとおりです。
アドレス
000091H
bit7
ST17
bit6
ST16
bit5
ST15
bit4
ST14
bit3
ST13
bit2
−
[ ビット 7] ST17
0
リロードタイマ 0 動作許可
1
リロードタイマ 0 動作停止
[ ビット 6] ST16
0
リロードタイマ 1 動作許可
1
リロードタイマ 1 動作停止
[ ビット 5] ST15
0
リロードタイマ 2 動作許可
1
リロードタイマ 2 動作停止
[ ビット 4] ST14
0
リロードタイマ 3 動作許可
1
リロードタイマ 3 動作停止
[ ビット 3] ST13
0
フリーランタイマ動作許可
1
フリーランタイマ動作停止
[ ビット 1] ST11
0
アップダウンカウンタ動作許可
1
アップダウンカウンタ動作停止
[ ビット 0] ST10
382
0
A/D コンバータ動作許可
1
A/D コンバータ動作停止
bit1
ST11
bit0
ST10
初期値
00000-00B (R/W)
第 18 章 周辺ストップ制御
■ ストップ制御レジスタ 2(STPR2)
ストップ制御レジスタ 2(STPR2) のレジスタ構成は以下のとおりです。
アドレス
000092H
bit7
ST27
bit6
ST26
bit5
ST25
bit4
ST24
bit3
ST23
bit2
ST22
bit1
bit0
−
−
初期値
000000--B (R/W)
[ ビット 7] ST27
0
PPG0 動作許可
1
PPG0 動作停止
[ ビット 6] ST26
0
PPG1 動作許可
1
PPG1 動作停止
[ ビット 5] ST25
0
PPG2 動作許可
1
PPG2 動作停止
[ ビット 4] ST24
0
PPG3 動作許可
1
PPG3 動作停止
[ ビット 3] ST23
0
PPG4 動作許可
1
PPG4 動作停止
[ ビット 2] ST22
0
PPG5 動作許可
1
PPG5 動作停止
383
第 18 章 周辺ストップ制御
384
第 19 章
シリアル起動
この章では , シリアル起動の概要および通信モード
について説明します。
19.1 シリアル起動の概要と設定方法
19.2 シリアル起動の通信モード
385
第 19 章 シリアル起動
19.1
シリアル起動の概要と設定方法
本モードは , 内蔵の専用 ROM による内蔵 RAM (2K バイト ) へのシリアル書込みおよ
び RAM プログラム起動モードです。本品種内蔵の UARTch1 を用いて通信を行いま
すが , 外付けフラッシュなどへのデータ転送用として使用できます。また , 外部端子の
設定により同期通信 , 非同期通信ともに選択可能ですが , 非同期通信については , マシ
ンクロック 25MHz ( 原振周波数 12.5MHz) でボーレート 9600bps, マシンクロック
33MHz ( 原振周波数 16.5MHz) でボーレート 9600bps の選択も可能です
( マシンクロック 36MHz/ 原振周波数 18MHz の場合は , 非同期通信を用いたシリアル
起動はできませんのでご注意願います )。
■ 設定方法
表 19.1-1 設定方法
外部端子名
MD2
MD1
MD0
PG5
PG4
非同期通信モード ( マシンクロック 33MHz)
1
1
0
1
0
0
非同期通信モード ( マシンクロック 25MHz)
1
1
0
1
0
1
同期通信モード
1
1
0
1
1
0
仕様
386
PG3
第 19 章 シリアル起動
19.2
シリアル起動の通信モード
シリアル起動の通信モードには , 以下の 3 つがあります。
• 非同期通信モード ( マシンクロック 33MHz)
• 非同期通信モード ( マシンクロック 25MHz)
• 同期モード
■ シリアル起動の通信モード
● 非同期通信モード ( マシンクロック 33MHz)
UARTch1 の非同期 ( ノーマルモード ) モードでシリアル通信を行います。
マシンクロック 33MHz ( 外部水晶発振器 16.5MHz) でボーレート 9600bps になります。
シリアルの設定はデータ長 :8 ビット , ストップビット長 :1 ビット , パリティなし , LSB
ファーストです。
● 非同期通信モード ( マシンクロック 25MHz)
UARTch1 の非同期 ( ノーマルモード ) モードでシリアル通信を行います。
マシンクロック 25MHz ( 外部水晶発振器 12.5MHz) でボーレート 9600bps になります。
シリアルの設定はデータ長 :8 ビット , ストップビット長 :1 ビット , パリティなし , LSB
ファーストです。
● 同期通信モード
UARTch1 の同期 ( ノーマルモード ) モードでシリアル通信を行います。ボーレートの
選択は , 外部クロック入力により自由に設定できます ( 外部クロックがそのままボー
レート )。外部クロック入力の最大値は周辺系動作クロックの 1/8 です ( 周辺系動作ク
ロックの設定は PLL 系最速です )。シリアル設定はデータ長 :8 ビット , パリティなし ,
LSB ファーストです。
いずれのモードも
1)コマンドデータ (00H)
2)ダウンロード先 RAM アドレス 4 バイト (00080400H ∼ 000807FFH)
3)ダウンロードバイト数 4 バイト ( 最大 000003FFH)
の 3 つのダウンロード情報データを FR 側へ順に上位バイトから 1 バイトずつ与えさら
に , これらの SUM チェックデータ ( データをすべて加えて下位 8 ビットを取り出し )
を与えることにより , RAM へのダウンロードルーチンに入ります。次に , RAM にダウ
ンロードしたいデータを同じく FR 側へ順に上位バイトから 1 バイトずつ与え , SUM
チェックデータを与えると転送終了後そのまま RAM にジャンプしダウンロードされ
たプログラムが実行されます。
例として表 19.2-1 を示します。
387
第 19 章 シリアル起動
表 19.2-1 非同期モードで RAM アドレス 00080400H へ 0000005BH バイトのデータ
を転送する場合
PC など
FR 側
①
00H
→
−
②
00H
→
−
③
08H
→
−
④
04H
→
−
⑤
00H
→
−
⑥
00H
→
−
⑦
00H
→
−
⑧
00H
→
−
⑨
5BH
→
−
SUM チェックデータ
⑩
67H
→
−
FR 側からのアクノリッジ
⑪
−
←
01H
データ送信
⑫
DATA
→
−
SUM チェックデータ
⑬
*
→
−
コマンドデータ
ダウンロード先アドレス
ダウンロードバイト数
(91 バイト )
*:送信データをすべて加えて下位 8 ビットを取り出します。
詳細動作については次項以降の専用 ROM 内プログラムのフローチャートを参照し
てください。なお , UART の詳細動作 , 端子および全端子状態などについては ,「第
15 章 UART」の項または「付録 C 各 CPU ステートにおける端子状態」の項を参照
してください。
388
第 19 章 シリアル起動
図 19.2-1 メインプログラムフローチャート
START
PG5~PG3=3'b100?
非同期33MHz
PG5~PG3=3'b101?
非同期25MHz
PG5~PG3=3'b110?
同期
禁止
非同期25MHz
(注意事項)UART1設定について
非同期33MHz
同期
非同期33MHz時
・非同期モード(内部タイマ使用)
・ボーレート9600bps
(水晶発振器16.5MHz時)
・データ長8ビット
・ストップビット1ビット
・パリティなし
非同期25MHz時
・非同期モード(内部タイマ使用)
・ボーレート9600bps
(水晶発振器12.5MHz時)
・データ長8ビット
・ストップビット1ビット
・パリティなし
同期時
・同期モード(外部クロック使用)
・データ長8ビット
・パリティなし
ギア設定(PLL系最速)
UART1設定(注)
MAIN
コマンド受信
受信コマンド①=00H?
(DOWN LOAD)
No
DOWN LOAD
RAMへJUMP
コマンドエラー
389
第 19 章 シリアル起動
■ コマンド一覧
FR 側に発行されるコマンドおよび FR 側からの応答信号の一覧を示します。
表 19.2-2 コマンド一覧
FR 側
PC など
ダウンロード
−
←
00H
リセット
−
←
18H
コマンド
コマンド
受信応答
390
コマンド異常
( 受信コマンド & F0H) | 04H
→
−
SUM チェック異常
{ 受信コマンド (00H) & F0H} | 02H
→
−
RESET コマンド受信
11H
→
−
DOWN LOAD コマンド受信
01H
→
−
第 19 章 シリアル起動
図 19.2-2 サブルーチン " コマンド受信 " フローチャート : 非同期モード時 (25MHz・33MHz 共通 )
コマンド受信
1バイト受信 (コマンドデータ)
No
受信データ有 ?
1バイトデータ受信①(コマンドデータ)
Yes
受信データ①=18H?
RESET
8バイト受信 (ダウンロード情報データ)
ダウンロード先アドレス4バイト
+
ダウンロードバイト数4バイト
No
受信データ有 ?
1バイトデータ受信②~⑨ (ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
No
受信回数=8回 ?
1バイト受信(SUMチェックデータ)
No
受信データ有 ?
1バイトデータ受信⑩(SUMチェックデータ)
①~⑨を加えて下位8ビット取出し:α
No
⑩=α ?(SUMチェック)
SUMチェックエラー
EXIT
391
第 19 章 シリアル起動
図 19.2-3 サブルーチン "DOWN LOAD" フローチャート : 非同期モード時 (25MHz・33MHz 共通 )
DOWN LOAD
1バイト送信(コマンド正常受信応答)
1バイト送信(01H)
RAMにダウンロード
No
受信データ有 ?
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=ダウンロード
バイト数 ?
No
1バイト受信(SUMチェックデータ)
No
受信データ有 ?
1バイトデータ受信⑬(SUMチェックデータ)
受信データすべてを加えて下位8ビット取出し:β
No
⑬=β ?(SUMチェック)
EXIT
392
SUMチェックエラー
第 19 章 シリアル起動
図 19.2-4 サブルーチン " コマンドエラー " フローチャート : 非同期モード時 (25MHz・33MHz 共通 )
1バイト送信 (コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(04H)
1バイト送信
MAIN
図 19.2-5 サブルーチン "SUM チェックエラー " フローチャート : 非同期モード時 (25MHz・33MHz
共通 )
1バイト送信 (SUMチェック異常応答)
SUMチェックエラー
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(02H)
1バイト送信
MAIN
図 19.2-6 サブルーチン "RESET" フローチャート : 非同期モード時 (25MHz・33MHz 共通 )
1バイト送信 (RESETコマンド受信応答)
RESET
1バイト送信(11H)
MAIN
393
第 19 章 シリアル起動
図 19.2-7 サブルーチン " コマンド受信 " フローチャート : 同期モード時
コマンド受信
PH4/SOT1"L"出力
1バイト送信(ダミー):00H
1バイト受信(コマンドデータ)
No
受信データ有 ?
1バイトデータ受信①(コマンドデータ)
Yes
受信データ①=18H ?
RESET
・1バイト送信(ダミー):00H
・PH4/SOT1"反転"出力
8バイト受信(ダウンロード情報データ)
ダウンロード先アドレス4バイト
+
ダウンロードバイト数4バイト
No
受信データ有 ?
・1バイト送信(ダミー):00H
・PH4/SOT1“反転”出力
1バイトデータ受信②~⑨(ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
No
受信回数=8回 ?
1バイト受信(SUMチェックデータ)
No
受信データ有 ?
PH4/SOT1"H"出力
1バイトデータ受信⑩(SUMチェックデータ)
①~⑨を加えて下位8ビット取出し:α
No
⑩=α?(SUMチェック)
EXIT
394
SUMチェックエラー
第 19 章 シリアル起動
図 19.2-8 サブルーチン "DOWN LOAD" フローチャート : 同期モード時 ( 続く )
DOWN LOAD
1バイト送信(コマンド正常受信応答)
・PH4/SOT1"L"出力
・シリアル出力許可
・PH4/SOT1"H"出力
1バイト送信 (01H)
No
受信データ有 ?
ダミー受信
汎用入出力切換え(シリアル出力禁止)
DOWN LOAD
ダミー受信
PH4/SOT1 "反転"出力
B
No
受信データ有 ?
ダミー受信
PH4/SOT1 "反転"出力
A
395
第 19 章 シリアル起動
図 19.2-8 サブルーチン "DOWN LOAD" フローチャート : 同期モード時 ( 続き )
A
RAMにダウンロード
No
受信データ有 ?
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
No
受信回数=ダウンロードバイト数?
B
1バイト受信 (SUMチェックデータ)
No
受信データ有 ?
PH4/SOT1"H"出力
・1バイト受信データ⑬受信
・受信データすべてを加えて下位8ビット取出し:β
No
⑬=β ?(SUMチェック)
EXIT
396
SUMチェックエラー
第 19 章 シリアル起動
図 19.2-9 サブルーチン " コマンドエラー " フローチャート : 同期モード時
1バイト送信(コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(04H)
・PH4/SOT1"L"出力
・シリアル出力許可
・PH4/SOT1"H"出力
1バイト送信
No
受信データ有 ?
ダミー受信
汎用入出力切換え(シリアル出力禁止)
MAIN
397
第 19 章 シリアル起動
図 19.2-10 サブルーチン "SUM チェックエラー " フローチャート : 同期モード時
1バイト送信(SUMチェック異常応答)
SUMチェックエラ-
送信データ作成
・受信コマンドデータ取出し
・{(受信コマンドデータ)&(F0H)}|(02H)
・PH4/SOT1"L"出力
・シリアル出力許可
・PH4/SOT1"L"出力
1バイト送信
No
受信データ有 ?
ダミー受信
汎用入出力切換え(シリアル出力禁止)
MAIN
図 19.2-11 サブルーチン "RESET" フローチャート : 同期モード時
1バイト送信(RESETコマンド受信応答)
RESET
・PH4/SOT1"L"出力
・シリアル出力許可
・PH4/SOT1"H"出力
1バイト送信(11H)
No
受信データ有 ?
ダミー受信
汎用入出力切換え(シリアル出力禁止)
MAIN
398
付録
付録には , I/O マップ , 割込みベクタ , 各 CPU ス
テートにおける端子状態 , リトルエンディアン領域
を利用する際の注意事項および命令一覧を掲載し
ます。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D リトルエンディアン領域を利用する際の注意事項
付録 E 命令一覧
399
付録
付録 A
I/O マップ
付図 A-1 に I/O マップの見方 , 付表 A-1 に I/O マップ ( メモリ空間領域と周辺リソー
スの各レジスタの対応 ) を示します。
■ I/O マップの見方
付図 A-1 I/O マップの見方
アドレス
000000 H
+0
PDR3 [R/W]
XXXXXXXX
レジスタ
+1
+2
____
PDR2 [R/W]
XXXXXXXX
ブロック
+3
____
ポートデータレジスタ
リード/ライト属性
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地、2コラムが4n+2番地・・・)
最左のレジスタ番地(ワードでアクセスした際は、1コラム目のレジスタがデータのMSB側となる。)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
"1" : 初期値 "1"
"0" : 初期値 "0"
"X" : 初期値 "X"
"-" : その位置に物理的にレジスタがない
400
付録 A I/O マップ
■ I/O マップ
付表 A-1 I/O マップ (1 / 6)
アドレス
レジスタ
+0
+1
000000 H
PDR3 [R/W]
XXXXXXXX
PDR2 [R/W]
XXXXXXXX
000004 H
−
PDR6 [R/W]
XXXXXXXX
000008 H
+2
PDR5 [R/W]
XXXXXXXX
PDR4 [R/W]
XXXXXXXX
PDR8 [R/W]
-XXXXXXX
−
000010 H
PDRF [R/W]
---XXXXX
PDRE [R/W]
XXXXXXXX
PDRD [R/W]
XXXXXXXX
PDRC [R/W]
XXXXXXXX
000014 H
PDRJ [R/W]
------11
PDRI [R/W]
--XXXXXX
PDRH [R/W]
--XXXXXX
PDRG [R/W]
--XXXXXX
−
PDRL [R/W]
XXXXXXXX
PDRK [R/W]
XXXXXXXX
000018 H
ブロック
−
−
00000C H
+3
ポートデータ
レジスタ
00001C H
SSR0 [R/W,R]
00001000
SIDR0/SODR0 [R,W]
XXXXXXXX
SCR0 [R/W,W]
00000100
SMR0 [R/W]
00000-00
UART0
000020 H
SSR1 [R/W,R]
00001000
SIDR1/SODR1 [R,W]
XXXXXXXX
SCR1 [R/W,W]
00000100
SMR1 [R/W]
00000-00
UART1
000024 H
SSR2 [R/W,R]
00001000
SIDR2/SODR2 [R,W]
XXXXXXXX
SCR2 [R/W,W]
00000100
SMR2 [R/W]
00000-00
UART2
000028 H
SSR3 [R/W,R]
00001000
SIDR3/SODR3 [R,W]
XXXXXXXX
SCR3 [R/W,W]
00000100
SMR3 [R/W]
00000-00
UART3
TMRLR0 [W]
XXXXXXXX XXXXXXXX
TMR0 [R]
XXXXXXXX XXXXXXXX
000030 H
−
TMCSR0 [R/W]
----0000 00000000
000034 H
TMRLR1 [W]
XXXXXXXX XXXXXXXX
TMR1 [R]
XXXXXXXX XXXXXXXX
000038 H
−
TMCSR1 [R/W]
----0000 00000000
00003C H
TMRLR2 [W]
XXXXXXXX XXXXXXXX
TMR2 [R]
XXXXXXXX XXXXXXXX
000040 H
−
TMCSR2 [R/W]
----0000 00000000
000044 H
TMRLR3 [W]
XXXXXXXX XXXXXXXX
TMR3 [R]
XXXXXXXX XXXXXXXX
000048 H
−
TMCSR3 [R/W]
----0000 00000000
00002C H
00004C H
CDCR1 [R/W]
0---0000
000050 H
CDCR3 [R/W]
0---0000
−
CDCR0 [R/W]
0---0000
−
−
CDCR2 [R/W]
0---0000
−
リロード
タイマ 0
リロード
タイマ 1
リロード
タイマ 2
リロード
タイマ 3
通信プリ
スケーラ 1
401
付録
付表 A-1 I/O マップ (2 / 6)
アドレス
レジスタ
+0
+1
000054 H
|
000058 H
+2
+3
Reserved
−
00005C H
RCR1 [W]
00000000
RCR0 [W]
00000000
UDCR1 [R]
00000000
UDCR0 [R]
00000000
000060 H
CCRH0 [R/W]
00000000
CCRL0 [R/W,W]
-000X000
−
CSR0 [R/W,R]
00000000
000064 H
CCRH1 [R/W]
-0000000
CCRL1 [R/W,W]
-000X000
−
CSR1 [R/W,R]
00000000
000068 H
IPCP1 [R]
XXXXXXXX XXXXXXXX
IPCP0 [R]
XXXXXXXX XXXXXXXX
00006C H
IPCP3 [R]
XXXXXXXX XXXXXXXX
IPCP2 [R]
XXXXXXXX XXXXXXXX
000070 H
ICS23 [R/W]
00000000
−
−
OCCP1 [R/W]
XXXXXXXX XXXXXXXX
OCCP0 [R/W]
XXXXXXXX XXXXXXXX
000078 H
OCCP3 [R/W]
XXXXXXXX XXXXXXXX
OCCP2 [R/W]
XXXXXXXX XXXXXXXX
00007C H
OCCP5 [R/W]
XXXXXXXX XXXXXXXX
OCCP4 [R/W]
XXXXXXXX XXXXXXXX
000080 H
OCCP7 [R/W]
XXXXXXXX XXXXXXXX
OCCP6 [R/W]
XXXXXXXX XXXXXXXX
000084 H
OCS2,3 [R/W]
XXX00000 0000XX00
OCS0,1 [R/W]
XXX00000 0000XX00
000088 H
OCS6,7 [R/W]
XXX00000 0000XX00
OCS4,5 [R/W]
XXX00000 0000XX00
00008C H
TCDT [R/W]
00000000 00000000
TCCS [R/W]
0------- 00000000
STPR0 [R/W]
0000----
STPR1 [R/W]
00000-00
000094 H
GCN1 [R/W]
00110010 00010000
000098 H
PTMR0 [R]
11111111 11111111
00009C H
PDUT0 [W]
XXXXXXXX XXXXXXXX
0000A0H
PTMR1 [R]
11111111 11111111
0000A4 H
PDUT1 [W]
XXXXXXXX XXXXXXXX
402
8/16 ビット
アップダウン
カウンタ
8/16 ビット
アップダウン
カウンタ
16 ビット ICU
ICS01 [R/W]
00000000
000074 H
000090 H
ブロック
16 ビット
OCU
16 ビット
フリーラン
タイマ
STPR2 [R/W]
000000--
−
ストップ
レジスタ 0,1,2
−
GCN2 [R/W]
00000000
PPG ctl
PCSR0 [W]
XXXXXXXX XXXXXXXX
PCNH0 [R/W]
0000000-
PCNL0 [R/W]
00000000
PCSR1 [W]
XXXXXXXX XXXXXXXX
PCNH1 [R/W]
0000000-
PCNL1 [R/W]
00000000
PPG0
PPG1
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 6)
アドレス
レジスタ
+0
+1
0000A8 H
PTMR2 [R]
11111111 11111111
0000AC H
PDUT2 [W]
XXXXXXXX XXXXXXXX
0000B0 H
PTMR3 [R]
11111111 11111111
+2
+3
ブロック
PCSR2 [W]
XXXXXXXX XXXXXXXX
PCNH2 [R/W]
0000000-
PCNL2 [R/W]
00000000
PPG2
PCSR3 [W]
XXXXXXXX XXXXXXXX
PPG3
0000B4 H
PDUT3 [W]
XXXXXXXX XXXXXXXX
0000B8 H
PTMR4 [R]
11111111 11111111
0000BC H
PDUT4 [W]
XXXXXXXX XXXXXXXX
0000C0 H
PTMR5 [R]
11111111 11111111
0000C4 H
PDUT5 [W]
XXXXXXXX XXXXXXXX
PCNH3 [R/W]
0000000-
PCNL3 [R/W]
00000000
PCSR4 [W]
XXXXXXXX XXXXXXXX
PPG4
PCNH4 [R/W]
0000000-
PCNL4 [R/W]
00000000
PCSR5 [W]
XXXXXXXX XXXXXXXX
PPG5
0000C8 H
EIRR0 [R/W]
00000000
ENIR0 [R/W]
00000000
PCNH5 [R/W]
0000000-
PCNL5 [R/W]
00000000
EIRR1 [R/W]
00000000
ENIR1 [R/W]
00000000
Ext int
ELVR0 [R/W]
00000000 00000000
0000CC H
0000D0 H
|
0000D8 H
0000DC H
Reserved
−
−
DACR2 [R/W]
-------0
DACR1 [R/W]
-------0
DACR0 [R/W]
-------0
DADR2 [R/W]
XXXXXXXX
DADR1 [R/W]
XXXXXXXX
DADR0 [R/W]
XXXXXXXX
ADCS1 [R/W,W]
00000000
ADCS0 [R/W]
00000000
A/D
コンバータ
AICR [R/W]
00000000
アナログ
入力制御
0000E0 H
−
0000E4 H
ADCR [R,W]
00101-XX XXXXXXXX
0000E8 H
−
0000EC H
|
0000F0 H
0000F4 H
ELVR1 [R/W]
00000000 00000000
Reserved
−
PCRI [R/W]
--000000
PCRH [R/W]
--000000
D/A
コンバータ
PCRD [R/W]
00000000
PCRC [R/W]
00000000
プルアップ
制御
403
付録
付表 A-1 I/O マップ (4 / 6)
アドレス
レジスタ
+0
+1
0000F8 H
OCRI [R/W]
--000000
OCRH [R/W]
--000000
0000FC H
DDRF [R/W]
---00000
DDRE [R/W]
00000000
DDRD [R/W]
00000000
DDRC [R/W]
00000000
000100 H
−
DDRI [R/W]
-0000000
DDRH [R/W]
--000000
DDRG [R/W]
--000000
DDRL [R/W]
00000000
DDRK [R/W]
00000000
000104 H
+2
+3
オープン
ドレイン制御
−
−
ブロック
データ方向
レジスタ
000108 H
|
0001FC H
−
000200 H
DPDP [R/W]
-------- -------- -------- -0000000
000204 H
DACSR [R/W]
00000000 00000000 00000000 00000000
000208 H
DATCR [R/W]
XXXXXXXX XXXX0000 XXXX0000 XXXX0000
00020C H
|
0003E0 H
−
Reserved
0003E4 H
ICHCR [R/W]
-------- -------- -------- --000000
命令
キャッシュ
0003E8 H
|
0003EC H
−
Reserved
0003F0 H
BSD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Reserved
DMAC
0003F4 H
BSD1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003F8 H
BSDC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003FC H
BSRR [R]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000400 H
ICR00 [R/W]
----1111
ICR01 [R/W]
----1111
ICR02 [R/W]
----1111
ICR03 [R/W]
----1111
000404 H
ICR04 [R/W]
----1111
ICR05 [R/W]
----1111
ICR06 [R/W]
----1111
ICR07 [R/W]
----1111
000408 H
ICR08 [R/W]
----1111
ICR09 [R/W]
----1111
ICR10 [R/W]
----1111
ICR11 [R/W]
----1111
404
ビットサーチ
モジュール
ビットサーチ
モジュール
割込み制御部
付録 A I/O マップ
付表 A-1 I/O マップ (5 / 6)
アドレス
レジスタ
+0
+1
+2
+3
00040C H
ICR12 [R/W]
----1111
ICR13 [R/W]
----1111
ICR14 [R/W]
----1111
ICR15 [R/W]
----1111
000410 H
ICR16 [R/W]
----1111
ICR17 [R/W]
----1111
ICR18 [R/W]
----1111
ICR19 [R/W]
----1111
000414 H
ICR20 [R/W]
----1111
ICR21 [R/W]
----1111
ICR22 [R/W]
----1111
ICR23 [R/W]
----1111
000418 H
ICR24 [R/W]
----1111
ICR25 [R/W]
----1111
ICR26 [R/W]
----1111
ICR27 [R/W]
----1111
00041C H
ICR28 [R/W]
----1111
ICR29 [R/W]
----1111
ICR30 [R/W]
----1111
ICR31 [R/W]
----1111
000420 H
ICR32 [R/W]
----1111
ICR33 [R/W]
----1111
ICR34 [R/W]
----1111
ICR35 [R/W]
----1111
000424 H
ICR36 [R/W]
----1111
ICR37 [R/W]
----1111
ICR38 [R/W]
----1111
ICR39 [R/W]
----1111
000428 H
ICR40 [R/W]
----1111
ICR41 [R/W]
----1111
ICR42 [R/W]
----1111
ICR43 [R/W]
----1111
00042C H
ICR44 [R/W]
----1111
ICR45 [R/W]
----1111
ICR46 [R/W]
----1111
ICR47 [R/W]
----1111
000430 H
DICR [R/W]
-------0
HRCL [R/W]
----1111
000434 H
|
00047C H
STCR [R/W,W]
000111--
000484 H
GCR [R/W,R]
110011-1
WPR [W]
XXXXXXXX
000488 H
PCTR [R/W]
00XX0XXX
000600 H
000604 H
Reserved
PDRR [R/W]
----0000
CTBR [W]
XXXXXXXX
クロック
制御部
−
PLL 制御
−
00048C H
|
0005FC H
割込み制御部
ディレイ
−
RSRR/WTCR
[R,W]
1-XXX-00
000480 H
−
ブロック
Reserved
−
DDR3 [W]
00000000
DDR2 [W]
00000000
−
−
−
DDR6 [W]
00000000
DDR5 [W]
00000000
DDR4 [W]
00000000
データ方向
レジスタ
405
付録
付表 A-1 I/O マップ (6 / 6)
アドレス
レジスタ
+0
+1
000608 H
+2
+3
DDR8 [W]
-0000000
−
00060C H
ASR1 [W]
00000000 00000001
AMR1 [W]
00000000 00000000
000610 H
ASR2 [W]
00000000 00000010
AMR2 [W]
00000000 00000000
000614 H
ASR3 [W]
00000000 00000011
AMR3 [W]
00000000 00000000
000618 H
ASR4 [W]
00000000 00000100
AMR4 [W]
00000000 00000000
ASR5 [W]
00000000 00000101
AMR5 [W]
00000000 00000000
00061C H
000620 H
AMD0 [R/W]
---00111
000624 H
AMD5 [R/W]
000000
AMD1 [R/W]
0--00000
00062C H
T-unit
AMD4 [R/W]
0--00000
EPCR1 [W]
-------- 11111111
Reserved
−
PCR6 [R/W]
00000000
−
000634 H
|
0007F8 H
0007FC H
データ方向
レジスタ
−
EPCR0 [W]
----1100 1111111
000628 H
000630 H
AMD32 [R/W]
00000000
ブロック
プルアップ
制御
−
Reserved
−
−
LER [W]
-----000
MODR [W]
XXXXXXXX
リトル
エンディアン
レジスタ
モード
レジスタ
( 注 1) ライトオンリビットのあるレジスタに対して RMW 系の命令を行わないでください。
( 注 2) RMW 系の命令 (RMW: リードモディファイライト )
AND
Rj, @Ri
OR
Rj,
@Ri
EOR
Rj, @Ri
ANDH
Rj, @Ri
ORH
Rj,
@Ri
EORH
Rj, @Ri
ANDB
Rj, @Ri
ORB
Rj,
@Ri
EORB
Rj, @Ri
BANDL
#u4, @Ri
BORL
#u4, @Ri
BEORL
#u4, @Ri
BANDH
#u4, @Ri
BORH
#u4, @Ri
BEORH
#u4, @Ri
( 注 3) Reserved または ( − ) の領域のデータは不定です。
406
付録 B 割込みベクタ
付録 B
割込みベクタ
付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91151A の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載され
ています。
■ 割込みベクタ
• ICR0 ∼ ICR47: 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に
対する割込みレベルを設定します。
ICR は割込み要求の各々に対応して用意されています。
• TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベク
タアドレスとなります。
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr = TBR + vctofs
= TBR +(3FCH - 4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
: ベクタ番号
付表 B-1 割込みベクタ (1 / 3)
割込み要因
割込み番号
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
リセット
0
00
−
3FCH
000FFFFCH
システム予約
1
01
−
3F8H
000FFFF8H
システム予約
2
02
−
3F4H
000FFFF4H
システム予約
3
03
−
3F0H
000FFFF0H
システム予約
4
04
−
3ECH
000FFFECH
システム予約
5
05
−
3E8H
000FFFE8H
システム予約
6
06
−
3E4H
000FFFE4H
システム予約
7
07
−
3E0H
000FFFE0H
システム予約
8
08
−
3DCH
000FFFDCH
システム予約
9
09
−
3D8H
000FFFD8H
システム予約
10
0A
−
3D4H
000FFFD4H
システム予約
11
0B
−
3D0H
000FFFD0H
システム予約
12
0C
−
3CCH
000FFFCCH
システム予約
13
0D
−
3C8H
000FFFC8H
407
付録
付表 B-1 割込みベクタ (2 / 3)
割込み要因
割込み番号
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
未定義命令例外
14
0E
−
3C4H
000FFFC4H
システム予約
15
0F
−
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
外部割込み 8 ∼ 15
24
18
ICR08
39CH
000FFF9CH
システム予約
25
19
ICR09
398H
000FFF98H
UART0( 受信完了 )
26
1A
ICR10
394H
000FFF94H
UART1( 受信完了 )
27
1B
ICR11
390H
000FFF90H
UART2( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
UART3( 受信完了 )
29
1D
ICR13
388H
000FFF88H
システム予約
30
1E
ICR14
384H
000FFF84H
UART0( 送信完了 )
31
1F
ICR15
380H
000FFF80H
UART1( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
UART2( 送信完了 )
33
21
ICR17
378H
000FFF78H
UART3( 送信完了 )
34
22
ICR18
374H
000FFF74H
システム予約
35
23
ICR19
370H
000FFF70H
DMAC( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
リロードタイマ 0
37
25
ICR21
368H
000FFF68H
リロードタイマ 1
38
26
ICR22
364H
000FFF64H
リロードタイマ 2
39
27
ICR23
360H
000FFF60H
リロードタイマ 3
40
28
ICR24
35CH
000FFF5CH
システム予約
41
29
ICR25
358H
000FFF58H
A/D
42
2A
ICR26
354H
000FFF54H
PPG0
43
2B
ICR27
350H
000FFF50H
PPG1
44
2C
ICR28
34CH
000FFF4CH
PPG2
45
2D
ICR29
348H
000FFF48H
PPG3
46
2E
ICR30
344H
000FFF44H
PPG4
47
2F
ICR31
340H
000FFF40H
PPG5
48
30
ICR32
33CH
000FFF3CH
U/D カウンタ 0( コンペア / アンダフロー ,
オーバフロー , アップダウン反転 )
49
31
ICR33
338H
000FFF38H
408
付録 B 割込みベクタ
付表 B-1 割込みベクタ (3 / 3)
割込み要因
割込み番号
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
U/D カウンタ 1( コンペア / アンダフロー ,
オーバフロー , アップダウン反転 )
50
32
ICR34
334H
000FFF34H
ICU0 ( 取込み )
51
33
ICR35
330H
000FFF30H
ICU1 ( 取込み )
52
34
ICR36
32CH
000FFF2CH
ICU2 ( 取込み )
53
35
ICR37
328H
000FFF28H
ICU3 ( 取込み )
54
36
ICR38
324H
000FFF24H
OCU0 ( 一致 )
55
37
ICR39
320H
000FFF20H
OCU1 ( 一致 )
56
38
ICR40
31CH
000FFF1CH
OCU2 ( 一致 )
57
39
ICR41
318H
000FFF18H
OCU3 ( 一致 )
58
3A
ICR42
314H
000FFF14H
OCU4/5 ( 一致 )
59
3B
ICR43
310H
000FFF10H
OCU6/7 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
システム予約
61
3D
ICR45
308H
000FFF08H
16 ビットフリーランタイマ
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約 (REALOS にて使用 *)
64
40
−
2FCH
000FFEFCH
システム予約 (REALOS にて使用 *)
65
41
−
2F8H
000FFEF8H
システム予約
66
42
−
2F4H
000FFEF4H
システム予約
67
43
−
2F0H
000FFEF0H
システム予約
68
44
−
2ECH
000FFEECH
システム予約
69
45
−
2E8H
000FFEE8H
システム予約
70
46
−
2E4H
000FFEE4H
システム予約
71
47
−
2E0H
000FFEE0H
システム予約
72
48
−
2DCH
000FFEDCH
システム予約
73
49
−
2D8H
000FFED8H
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
INT 命令で使用
80
|
255
50
|
FF
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
* : REALOS/FR は , システムコード用に 0x40, 0x41 の割込みを使用します。
409
付録
付録 C
各 CPU ステートにおける端子状態
付表 C-1 に端子状態の用語の説明 , 付表 C-2 ∼付表 C-4 に各 CPU ステートにおけ
る端子状態の一覧を示します。
■ 端子状態表の用語
端子の状態に対する語句の意味を , 付表 C-1 に示します。
付表 C-1 端子状態の用語
用語
説明
入力可能
入力機能が使用可能な状態であることを意味する。
入力 0 固定
端子からすぐの入力ゲートで外部入力を遮断して内部へ "0" を伝えている状
態。
出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンス (HiZ) にすることを意味する。
出力保持
本モードになる直前に出力していた状態をそのまま出力することを意味する。
つまり , 出力のある内蔵周辺が v 動作中であればその内蔵周辺に従い出力を行
い , ポート等として出力している場合にはその出力を保持する。
直前の状態を保持
本モードになる直前に出力していた状態をそのまま出力 , または入力であれば
入力可能を意味する。
■ 各 CPU ステートにおける端子状態
付表 C-2 外バス 16 ビットモード (1 / 3)
端子名
機能
P20 ∼ P27
D16 ∼ D23
P30 ∼ P37
D24 ∼ D31
P40 ∼ P47
A00 ∼ A07
P50 ∼ P57
A08 ∼ A15
P60 ∼ P67
A16 ∼ A23
P80
RDY
P81
BGRNT
410
スリープ時
ストップ時
バス開放
(STCR:HIZX=0) (STCR:HIZX=1)
(BGRNT="L")
出力保持
or Hi-Z
同左
出力保持
( アドレス
出力 )
同左
出力 Hi-Z/ 出力 Hi-Z
入力 0 固定
リセット時
出力 Hi-Z/
全端子
入力可能
FFH 出力
P: 直前状態 同左
保持
F: アドレス
出力
P: 直前状態 直前状態
保持 /
保持
F:RDY 入力 入力 0 固定
P: 直前状態 出力 Hi-Z/
保持
全端子
F:RDY 入力 入力可能
P: 直前状態
保持
F:H 出力
L 出力
備考
付録 C 各 CPU ステートにおける端子状態
付表 C-2 外バス 16 ビットモード (2 / 3)
ストップ時
バス開放
(STCR:HIZX=0) (STCR:HIZX=1)
(BGRNT="L")
端子名
機能
スリープ時
P82
BRQ
P: 直前状態 直前状態
保持 /
保持
F:BRQ 入力 入力 0 固定
P83
RD
P84
WR0
P85
WR1
P: 直前状態
保持
F:H 出力
P86
CLK
P: 直前状態
保持
F:CLK 出力
直前状態
保持
PC0 ∼ PC3 INT0 ∼ INT3 直前状態
保持
PC4
INT4/CS0
PD0
AIN0/INT8
PD1
BIN0/INT9
PD2
AIN1/INT10
PD3
BIN1/INT11
PD4
ZIN0/INT12
PD5
ZIN1/INT13
PD6
DEOP2/INT14
PD7
ATG/INT15
PE0 ∼ PE7
OC0 ∼ OC7
PF0 ∼ PF3
IN0 ∼ IN3
PF4
ポート
出力 Hi-Z/ BRQ 入力
入力 0 固定
入力可能
P: 直前状態
保持
PC5 ∼ PC7 INT5 ∼ INT7/
F:CS
出力
CS1 ∼ CS3
直前状態
保持
直前状態
保持 /
入力 0 固定
リセット時
備考
出力 Hi-Z/
全端子
入力可能
出力 Hi-Z
H 出力
CLK 出力
CLK 出力
入力可能
直前状態
保持
出力 Hi-Z/
全端子
入力可能
出力 Hi-Z/
入力可能
直前状態
CS 出力
保持
CS 出力時は
Hi-Z
入力可能
直前状態
保持
出力 Hi-Z/
全端子
入力可能
出力 Hi-Z/
入力 0 固定
PG0 ∼ PG5 PPG0 ∼ PPG5
PJ0
ポート
PJ1
PI0
ポート
SIN2
PI1
SOT2
PI2
SCK/TO2
PI3
SIN3
PI4
SOT3
PI5
SCK3/TO3
PH0
SIN0
PH1
SOT0
PH2
SCK0/TO0
PH3
SIN1
411
付録
付表 C-2 外バス 16 ビットモード (3 / 3)
端子名
機能
スリープ時
PH4
SOT1
PH5
SCK1/TO1
直前状態
保持
PK0 ∼ PK7
AN0 ∼ AN7
PL0
DREQ0
PL1
DACK0
PL2
DEOP0
PL3
DREQ1
PL4
DACK1
PL5
DEOP1
PL6
DREQ2
PL7
DACK2
P: 汎用ポート選択時 , F: 指定機能選択時
412
ストップ時
バス開放
(STCR:HIZX=0) (STCR:HIZX=1)
(BGRNT="L")
直前状態
保持 /
入力 0 固定
出力 Hi-Z/ 直前状態
入力 0 固定 保持
リセット時
出力 Hi-Z/
全端子
入力可能
備考
付録 C 各 CPU ステートにおける端子状態
付表 C-3 外バス 8 ビットモード (1 / 2)
スリープ時
ストップ時
バス開放
(STCR:HIZX=0) (STCR:HIZX=1)
(BGRNT="L")
端子名
機能
P20 ∼ P27
ポート
直前状態保
持
同左
P30 ∼ P37
D24 ∼ D31
出力保持 or
Hi-Z
同左
P40 ∼ P47
A0 ∼ A7
P50 ∼ P57
A8 ∼ A15
P60 ∼ P67
A16 ∼ A23
P80
RDY
P81
備考
出力 Hi-Z/ 直前状態保持 出力 Hi-Z/
入力 0 固定
全端子入力可
能
出力 Hi-Z
出力保持
同左
( アドレス出
力)
P: 直前状態
保持
F: アドレス
出力
リセット時
FFH 出力
同左
P: 直前状態 直前状態保
持/
保持
F:RDY 入力 入力 0 固定
P: 直前状態保 出力 Hi-Z/
持
全端子入力可
F:RDY 入力
能
BGRNT
P: 直前状態
保持
F:H 出力
L 出力
P82
BRQ
P: 直前状態
保持
F:BRQ 入力
BRQ 入力
P83
RD
出力 Hi-Z
P84
WR0
直前状態
保持
P85
ポート
H 出力
直前状態保持 出力 Hi-Z/
全端子入力可
能
P86
PC0 ∼ PC3
CLK
P: 直前状態
保持
F:CLK 出力
INT0 ∼ INT3 直前状態保
持
PC4
INT4/CS0
PC5 ∼ PC7
CLK 出力
入力可能
入力可能
P: 直前状態
保持
出力 Hi-Z
INT5/
CS1 ∼ CS3
F:CS 出力
入力可能
PD0
AIN0/INT8
入力可能
PD1
BIN0/INT9
直前状態
保持
PD2
AIN1/INT10
PD3
BIN1/INT11
PD4
ZIN0/INT12
PD5
ZIN1/INT13
PD6
DEOP2/INT14
PD7
ATG/INT15
CLK 出力
直前状態保持 出力 Hi-Z/
全端子入力可
能
直前状態保持 CS 出力
/CS 出力時は
Hi-Z
直前状態保持 出力 Hi-Z/
全端子入力可
能
413
付録
付表 C-3 外バス 8 ビットモード (2 / 2)
端子名
機能
PE0 ∼ PE7
OC0 ∼ OC7
PF0 ∼ PF3
IN0 ∼ IN3
PF4
ポート
スリープ時
直前状態
保持
PG0 ∼ PG5 PPG0 ∼ PPG5
PJ0
ポート
PJ1
PI0
ポート
SIN2
PI1
SOT2
PI2
SCK2/TO2
PI3
SIN3
PI4
SOT3
PI5
SCK3/TO3
PH0
SIN0
PH1
SOT0
PH2
SCK0/TO0
PH3
SIN1
PH4
SOT1
PH5
SCK1/TO1
PK0 ∼ PK7
AN0 ∼ AN7
PL0
DREQ0
PL1
DACK0
PL2
DEOP0
PL3
DREQ1
PL4
DACK1
PL5
DEOP1
PL6
DREQ2
PL7
DACK2
P: 汎用ポート選択時 , F: 指定機能選択時
414
ストップ時
バス開放
(STCR:HIZX=0) (STCR:HIZX=1)
(BGRNT="L")
リセット時
直前状態保 出力 Hi-Z/ 直前状態保持 出力 Hi-Z/
持/
入力 0 固定
全端子入力可
入力 0 固定
能
備考
−
付録 C 各 CPU ステートにおける端子状態
付表 C-4 シリアル起動モード (1 / 2)
端子名
機能
P20 ∼ P27
ポート
P30 ∼ P37
スリープ時
直前状態
保持
P40 ∼ P47
ストップ時
(STCR:HIZX=0) (STCR:HIZX=1)
直前状態
出力 Hi-Z/
保持 /
入力 0 固定
入力 0 固定
――
−
リセット時
出力 Hi-Z/
全端子
入力可能
備考
−
P50 ∼ P57
P60 ∼ P67
P80
P81
P82
P83
P84
P85
P86
CLK
PC0 ∼ PC7 INT0 ∼ INT7
PD0
AIN0/INT8
PD1
BIN0/INT9
PD2
AIN1/INT10
PD3
BIN1/INT11
PD4
ZIN0/INT12
PD5
ZIN1/INT13
PD6
DEOP2/INT14
PD7
ATG/INT15
PE0 ∼ PE7
OC0 ∼ OC7
PF0 ∼ PF3
IN0 ∼ IN3
PF4
ポート
入力可能
入力可能
直前状態保 出力 Hi-Z/
持/
入力 0 固定
入力 0 固定
PG0 ∼ PG5 PPG0 ∼ PPG5
PJ0
ポート
PJ1
PI0
ポート
SIN2
PI1
SOT2
PI2
SCK2/TO2
PI3
SIN3
PI4
SOT3
PI5
SCK3/TO3
PH0
SIN0
PH1
SOT0
PH2
SCK0/TO0
PH3
SIN1
PH4
SOT1
P: 汎用ポート選択時 , F: 指定機能選択時
415
付録
付表 C-4 シリアル起動モード (2 / 2)
端子名
機能
PH5
SCK1/TO1
PK0 ∼ PK7
スリープ時
直前状態
AN0 ∼ AN7 保持
PL0
DREQ0
PL1
DACK0
PL2
DEOP0
PL3
DREQ1
PL4
DACK1
PL5
DEOP1
PL6
DREQ2
PL7
DACK2
P: 汎用ポート選択時 , F: 指定機能選択時
416
ストップ時
(STCR:HIZX=0) (STCR:HIZX=1)
直前状態保 出力 Hi-Z/
持/
入力 0 固定
入力 0 固定
――
−
リセット時
出力 Hi-Z/
全端子
入力可能
備考
−
付録 D リトルエンディアン領域を利用する際の注意事項
付録 D
リトルエンディアン領域を利用する際の注意事項
ここでは , リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明
します。
D.1 C コンパイラ (fcc911)
D.2 アセンブラ (fasm911)
D.3 リンカ (flnk911)
D.4 デバッガ (sim911, eml911, mon911)
417
付録
D.1
C コンパイラ (fcc911)
C 言語でプログラミングをする場合 , リトルエンディアン領域に対して次のような操
作を行ったときは , 動作が保証できませんので注意してください。
• 初期値付き変数の配置
• 構造体代入
• 文字列操作関数を使った文字型配列以外の操作
• 文字列操作関数使用時の -K lib オプションの指定
• double 型 , long double 型の利用
• スタックのリトルエンディアン領域への配置
■ 初期値付き変数の配置
リトルエンディアン領域に , 初期値付きの変数を配置することはできません。
コンパイラは , リトルエンディアンの初期値を生成する機能を持っていません。リトル
エンディアン領域に変数を配置することはできますが,初期値を設定することはできま
せん。
プログラムの先頭で , 初期値を設定する処理を行ってください。
[ 例 ] リトルエンディアン領域の変数 little_data に初期値を設定する場合
extern int little_data;
void little_init(void) {
little_data = 初期値 ;
}
void main(void) {
little_init();
...
}
■ 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造
体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を
行うと , 正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
418
付録 D リトルエンディアン領域を利用する際の注意事項
[ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合
struct tag
{ char c; int i; } normal_st;
extern struct tag little_st;
#define
STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i;
void main(void)
{
STRMOVE(little_st,normal_st);
}
また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ
イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと
きには , 前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは,リトルエンディアン領域に構造体変数を配
置しないでください。
■ 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま
す。このため , リトルエンディアン領域に配置された char, unsigned char, signed char 型
以外の型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得ら
れません。
このような処理は行わないでください。
[ 不具合例 ] memcpy でのワードデータの転送
int big = 0x01020304;
/*
ビッグエンディアン領域 */
extern int little;
/*
リトルエンディアン領域 */
memcpy(&little,&big,4); /*
memcpy による転送
*/
上記の実行結果は次のようになり , ワードデータの転送結果としては誤りになります。
( ビッグエンディアン領域 )
01
02
03
04
→ memcpy →
( 正しい結果 )
( リトルエンディアン領域 )
01
02
03
04
04
03
02
01
■ 文字列操作関数使用時の -K lib オプションの指定
-K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン
ライン展開を行います。このとき , 最適な処理を選択するためハーフワードまたはワー
ドごとの処理に変更される場合があります。
このため , リトルエンディアン領域に対する処理が正しく実行されません。
リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは ,
-K lib オプションを指定しないでください。
-K lib オプションを包含する -O4 オプションや , -K speed オプションも同様に指定しな
いでください。
419
付録
■ double 型 , long double 型の利用
double 型および long double 型へのアクセスは , 上位 1 ワード , 下位 1 ワードをそれぞれ
アクセスする方法で行われます。このため , リトルエンディアン領域に配置された
double 型 , long double 型変数に対するアクセスは , 正しい結果が得られません。
リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能ですが,最
適化の結果 , これらの代入が定数の代入に置き換えられるときもあります。
double型およびlong double型変数をリトルエンディアン領域に配置しないでください。
[ 不具合例 ] double 型データの転送
double big = 1.0;
/*
ビッグエンディアン領域 */
extern int little; /*
リトルエンディアン領域 */
little = big;
double 型データの転送
/*
*/
上記の実行結果は次のようになり , double 型データの転送結果としては誤りになりま
す。
3f
( ビッグエンディアン領域 )
f0
00 00 00 00 00
00
→
( 正しい結果 )
00
( リトルエンディアン領域 )
00
f0
3f
00 00 00
00
00
00
3f
00
00
00
00
f0
■ スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部または全部が配置された場合,動作を保証し
ません。
420
付録 D リトルエンディアン領域を利用する際の注意事項
D.2
アセンブラ (fasm911)
FR ファミリのアセンブラ言語でプログラミングをする場合 , リトルエンディアン領
域に関して注意して頂きたい項目を以下に示します。
• セクション
• データのアクセス
■ セクション
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど
の指定をした場合には , MB91151A でのアクセス動作は保証できなくなります。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W
1
Little_Half:・
.RES.H
1
Little_Byte:
.RES.B
1
421
付録
■ データのアクセス
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン
ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー
タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。
[例]
LDI
#0x01020304, r0
LDI
#Little_Word, r1
LDI
#0x0102, r2
LDI
#Little_Half, r3
LDI
#0x01, r4
LDI
#Little_Byte, r5
/* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/
ST
r0, @r1
/* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/
STH
r2, @r3
/* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/
STB
r4, @r5
MB91151A でデータサイズと異なるサイズでアクセスした場合には , その値の保証は
できません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使っ
て一度にアクセスした場合には , データの値の保証はできません。
422
付録 D リトルエンディアン領域を利用する際の注意事項
D.3
リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意する項目を以下に示します。
• セクション種別の制限
• エラーの未検出
■ セクション種別の制限
リトルエンディアン領域には,初期値なしデータセクションのみ配置することができま
す。
リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
■ エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認のうえご使用ください。
423
付録
D.4
デバッガ (sim911, eml911, mon911)
シミュレータデバッガとエミュレータデバッガ / モニタデバッガでの注意事項につい
て説明します。
■ シミュレータデバッガ
リトルエンディアン領域を示すようなメモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドや , メモリを操作する命令実行は , ビッグエンディア
ンとして扱われます。
■ エミュレータデバッガ / モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値として扱わ
れませんので注意してください。
● set memory/show memory/enter/examine/set watch コマンド
浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定 / 表示ともにでき
ません。
● search memory コマンド
ハーフワード, ワードのデータの検索を行った場合,指定した値で検索が行われません。
● 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
正常な命令コードが設定 / 表示ともにできません ( リトルエンディアン領域には , 命令
コードを配置しないようにしてください )。
● call/show call コマンド
スタック領域が , リトルエンディアン領域に置かれた場合 , 正常に動作しません ( リト
ルエンディアン領域にスタック領域を配置しないようにしてください )。
424
付録 E 命令一覧
付録 E
命令一覧
FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事
項について説明します。
• 命令一覧表の読み方
• アドレッシングモードの記号
• 命令フォーマット
■ 命令一覧表の読み方
ニーモニック
ADD
*ADD
Rj,
#s5,
,
,
↓
1)
↓
2)
Rj
Rj
型
OP
CYCLE
NZVC
A
C
,
,
AG
A4
,
,
1
1
,
,
CCCC
CCCC
,
,
↓
3)
↓
4)
↓
5)
↓
6)
動作
Ri + Rj
Ri + s5
,
,
備考
→ Rj
→ Ri
↓
7)
1) 命令名が示されています。
- * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
2) オペランドに指定可能なアドレッシングモードを記号で示されています。
- 記号の意味は ,「■アドレッシングモードの記号」を参照してください。
3) 命令フォーマットが示されています。
4) 命令コードが 16 進数表示されています。
5) マシンサイクル数を表しています。
- a: メモリアクセスサイクルであり , レディ機能により延びる可能性があります。
- b: メモリアクセスサイクルであり , レディ機能により延びる可能性があります。
ただし , LD 動作の対象となるレジスタを直後の命令が参照する場合には , イン
タロックがかかり , 実行サイクル数が+ 1 増加します。
- c: 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令で
あるとき , または命令フォーマット A の命令であるとき , インタロックがかか
り , 実行サイクル数は+ 1 増加して 2 となります。
- d: 直後の命令が MDH/MDL を参照する場合 , インタロックがかかり , 実行サイク
ル数は増加して 2 となります。
- a, b, c, d とも最小は 1 サイクルです。
425
付録
6) フラグ変化を表しています。
フラグ変化
フラグの意味
C ・・・ 変化する
N ・・・ ネガティブフラグ
- ・・・ 変化しない
Z ・・・ ゼロフラグ
0 ・・・ クリア
V ・・・ オーバフラグ
1 ・・・ セット
C ・・・ キャリフラグ
7) 命令動作が表記されています。
■ アドレッシングモードの記号
付表 E-1 アドレッシングモードの記号説明 (1 / 2)
記号
意味
Ri
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
レジスタ直接 (R13, AC)
Ps
レジスタ直接 ( プログラムステータスレジスタ )
Rs
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
Cri
レジスタ直接 (CR0 ∼ CR15)
CRj
レジスタ直接 (CR0 ∼ CR15)
#i8
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
#i20
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。
#i32
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱います。
#s5
符号付き 5 ビット即値 (-16 ∼ 15)
#s10
符号付き 10 ビット即値 (-512 ∼ 508 4 の倍数のみ )
#u4
符号なし 4 ビット即値 (0 ∼ 15)
#u5
符号なし 5 ビット即値 (0 ∼ 31)
#u8
符号なし 8 ビット即値 (0 ∼ 255)
#u10
符号なし 10 ビット即値 (0 ∼ 1020 4 の倍数のみ )
@dir8
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE 2 の倍数のみ )
@dir10
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC 4 の倍数のみ )
label9
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC 2 の倍数のみ )
426
付録 E 命令一覧
付表 E-1 アドレッシングモードの記号説明 (2 / 2)
記号
意味
label12
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC 2 の倍数のみ )
label20
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13,Rj)
レジスタ相対間接 (Rj: R0 ∼ R15, AC, FP, SP)
@(R14,disp10)
レジスタ相対間接 (disp10: -0X200 ∼ 0X1FC 4 の倍数のみ )
@(R14,disp9)
レジスタ相対間接 (disp9: -0X100 ∼ 0XFE 2 の倍数のみ )
@(R14,disp8)
レジスタ相対間接 (disp8: -0X80 ∼ 0X7F)
@(R15,udisp6)
レジスタ相対間接 (udisp6: 0 ∼ 60 4 の倍数のみ )
@Ri+
ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
@R13+
ポストインクリメント付きレジスタ間接 (R13, AC)
@SP+
スタックポップ
@-SP
スタックプッシュ
(reglist)
レジスタリスト
427
付録
■ 命令フォーマット
付表 E-2 命令フォーマット
型
命令フォーマット
MSB
LSB
16bit
A
B
OP
Rj
Ri
8
4
4
OP
i8/o8
Ri
4
8
4
C
OP
u4/m4
Ri
8
4
4
ADD,ADDN,CMP,LSL,LSR,ASR命令のみ
C'
OP
s5/u5
Ri
7
5
4
OP
u8/re18/dir/
reglist
8
8
D
E
F
428
OP
SUB-OP
Ri
8
4
4
OP
rel11
5
11
付録 E 命令一覧
E.1
FR ファミリの命令一覧表
FR ファミリの命令一覧表を下記の命令順に記載します。
■ FR ファミリの命令一覧表
付表 E-3 加減算命令
付表 E-4 比較演算命令
付表 E-5 論理演算命令
付表 E-6 ビット操作命令
付表 E-7 乗除算命令
付表 E-8 シフト命令
付表 E-9 即値セット /16 ビット /32 ビット即値転送命令
付表 E-10 メモリロード命令
付表 E-11 メモリストア命令
付表 E-12 レジスタ間転送命令
付表 E-13 通常分岐 ( 遅延なし ) 命令
付表 E-14 遅延分岐命令
付表 E-15 その他の命令
付表 E-16 20 ビット通常分岐マクロ命令
付表 E-17 20 ビット遅延分岐マクロ命令
付表 E-18 32 ビット通常分岐マクロ命令
付表 E-19 32 ビット遅延分岐マクロ命令
付表 E-20 ダイレクトアドレッシング命令
付表 E-21 リソース命令
付表 E-22 コプロセッサ制御命令
429
付録
■ 加減算命令
付表 E-3 加減算命令
ニーモニック
型 OP CYCLE NZVC
ADD Rj, Ri
*ADD #s5, Ri
A
C'
A6
A4
1
1
CCCC
CCCC
ADD #u4,
ADD2 #u4,
C
C
A4
A5
1
1
CCCC
CCCC
A
A7
1
ADDN Rj, Ri
*ADDN #s5, Ri
A
C'
A2
A0
ADDN #u4,
ADDN2 #u4,
C
C
ADDC Rj,
SUB
Ri
Ri
Ri
Ri
Ri
動作
備考
Ri + Rj
Ri + s5
→ Ri
→ Ri
CCCC
アセンブラでは上位
1 ビットを符号と見る
Ri + extu(i4) → Ri ゼロ拡張
Ri + extu(i4) → Ri マイナス拡張
Ri + Rj + c → Ri キャリ付き加算
1
1
-------
Ri + Rj
Ri + s5
→ Ri
→ Ri
A0
A1
1
1
-------
アセンブラでは上位
1 ビットを符号と見る
Ri + extu(i4) → Ri ゼロ拡張
Ri + extu(i4) → Ri マイナス拡張
Rj,
Ri
A
AC
1
CCCC
Ri - Rj
→ Ri
SUBC Rj,
Ri
A
AD
1
CCCC
Ri - Rj
- c → Ri キャリ付き減算
SUBN Rj,
Ri
A
AE
1
----
Ri - Rj
→ Ri
■ 比較演算命令
付表 E-4 比較演算命令
ニーモニック
型
OP CYCLE NZVC
動作
CMP
*CMP
Rj, Ri
#s5, Ri
A
C'
AA
A8
1
1
CCCC
CCCC
Ri - Rj
Ri - s5
CMP
CMP2
#u4, Ri
#u4, Ri
C
C
A8
A9
1
1
CCCC
CCCC
Ri - extu(i4)
Ri - extu(i4)
型
OP CYCLE NZVC
備考
アセンブラでは上位
1 ビットを符号と見る
ゼロ拡張
マイナス拡張
■ 論理演算命令
付表 E-5 論理演算命令
ニーモニック
動作
AND
AND
ANDH
ANDB
Rj,
Rj,
Rj,
Rj,
Ri
@Ri
@Ri
@Ri
A
A
A
A
82
84
85
86
1
1+2a
1+2a
1+2a
CC-CC-CC-CC--
Ri
(Ri)
(Ri)
(Ri)
OR
OR
ORH
ORB
Rj,
Rj,
Rj,
Rj,
Ri
@Ri
@Ri
@Ri
A
A
A
A
92
94
95
96
1
1+2a
1+2a
1+2a
CC-CC-CC-CC--
EOR
EOR
EORH
EORB
Rj,
Rj,
Rj,
Rj,
Ri
@Ri
@Ri
@Ri
A
A
A
A
9A
9C
9D
9E
1
1+2a
1+2a
1+2a
CC-CC-CC-CC--
430
&=
&=
&=
&=
備考
Rj
Rj
Rj
Rj
ワード
ワード
ハーフワード
バイト
Ri | =
(Ri) | =
(Ri) | =
(Ri) | =
Rj
Rj
Rj
Rj
ワード
ワード
ハーフワード
バイト
Ri ^ =
(Ri) ^ =
(Ri) ^ =
(Ri) ^ =
Rj
Rj
Rj
Rj
ワード
ワード
ハーフワード
バイト
付録 E 命令一覧
■ ビット操作命令
付表 E-6 ビット操作命令
型
OP CYCLE NZVC
BANDL #u4, @Ri
BANDH #u4, @Ri
*BAND #u8, @Ri*1
C
C
80
81
1+2a
1+2a
---- (Ri)&=(0xF0+u4)
---- (Ri)&=((u4<<4)+0x0F)
---- (Ri)&=u8
下位 4 ビットを操作
上位 4 ビットを操作
BORL
BORH
*BOR
#u4, @Ri
#u4, @Ri
#u8, @Ri*2
C
C
90
91
1+2a
1+2a
----------
(Ri) | = u4
(Ri) | = (u4<<4)
(Ri) | = u8
下位 4 ビットを操作
上位 4 ビットを操作
BEORL #u4, @Ri
BEORH #u4, @Ri
*BEOR #u8, @Ri*3
C
C
98
99
1+2a
1+2a
----------
(Ri) ^ = u4
(Ri) ^ = (u4<<4)
(Ri) ^ = u8
下位 4 ビットを操作
上位 4 ビットを操作
BTSTL #u4, @Ri
BTSTH #u4, @Ri
C
C
88
89
2+a
2+a
0C-CC--
(Ri) & u4
(Ri) & (u4<<4)
下位 4 ビットテスト
上位 4 ビットテスト
ニーモニック
動作
備考
*1: アセンブラは , u8&0x0F でビットが立っていれば , BANDL を生成し , u8&0xF0 でビットが立って
いれば ,BANDH を生成します。BANDL, BANDH の両方を生成する場合もあります。
*2: アセンブラは , u8&0x0F でビットが立っていれば , BORL を生成し , u8&0xF0 でビットが立って
いれば ,BORH を生成します。BORL, BORH の両方を生成する場合もあります。
*3: アセンブラは , u8&0x0F でビットが立っていれば , BEORL を生成し , u8&0xF0 でビットが立って
いれば ,BEORH を生成します。BEORL, BEORH の両方を生成する場合もあります。
■ 乗除算命令
付表 E-7 乗除算命令
ニーモニック
型
OP CYCLE NZVC
MUL
MULU
MULH
MULUH
Rj,Ri
Rj,Ri
Rj,Ri
Rj,Ri
A
A
A
A
AF
AB
BF
BB
5
5
3
3
CCCCCCCC-CC--
DIV0S
DIV0U
DIV1
DIV2
DIV3
DIV4S
*DIV
Ri
Ri
Ri
Ri*3
E
E
E
E
E
E
97-4
97-5
97-6
97-7
9F-6
9F-7
1
1
d
1
1
1
36
-------C-C
-C-C
-------C-C
33
-C-C
Ri*1
*DIVU Ri*2
動作
Ri
Ri
Ri
Ri
*
*
*
*
Rj
Rj
Rj
Rj
→
→
→
→
備考
MDH,MDL
MDH,MDL
MDL
MDL
32bit*32bit=64bit
符号なし
16bit*16bit=32bit
符号なし
ステップ演算
32bit/32bit=32bit
MDL
MDL
MDL
MDL
/
%
/
%
Ri
Ri
Ri
Ri
→
→
→
→
MDL ,
MDH
MDL ,
MDH
*1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。
*2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
*3:DIV2 命令の後には , 必ず DIV3 命令を置いてください。
431
付録
■ シフト命令
付表 E-8 シフト命令
ニーモニック
型
OP CYCLE NZVC
動作
備考
LSL
*LSL
LSL
LSL2
Rj, Ri
A
#u5, Ri (u5:0 ∼ 31) C'
#u4, Ri
C
#u4, Ri
C
B6
B4
B4
B5
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri
Ri
Ri
Ri
<< Rj → Ri
<< u5 → Ri
<< u4 → Ri
<<(u4+16) → Ri
論理シフト
LSR
*LSR
LSR
LSR2
Rj, Ri
A
#u5, Ri (u5:0 ∼ 31) C'
#u4, Ri
C
#u4, Ri
C
B2
B0
B0
B1
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri
Ri
Ri
Ri
>> Rj → Ri
>> u5 → Ri
>> u4 → Ri
>>(u4+16) → Ri
論理シフト
ASR
*ASR
ASR
ASR2
Rj, Ri
A
#u5, Ri (u5:0 ∼ 31) C'
#u4, Ri
C
#u4, Ri
C
BA
B8
B8
B9
1
1
1
1
CC-C
CC-C
CC-C
CC-C
Ri
Ri
Ri
Ri
>> Rj → Ri
>> u5 → Ri
>> u4 → Ri
>>(u4+16) → Ri
算術シフト
■ 即値セット /16 ビット /32 ビット即値転送命令
付表 E-9 即値セット /16 ビット /32 ビット即値転送命令
型 OP CYCLE NZVC
ニーモニック
LDI:32
#i32, Ri
LDI:20
#i20, Ri
LDI:8
#i8, Ri
*LDI # {i8 | i20 | i32} ,Ri*1
E 9F-8
C 9B
B C0
3
2
1
----------
動作
i32 → Ri
i20 → Ri
i8 → Ri
{i8 | i20 | i32}
備考
上位 12 ビットはゼロ拡張
上位 24 ビットはゼロ拡張
→ Ri
*1: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
■ メモリロード命令
付表 E-10 メモリロード命令
ニーモニック
型
OP CYCLE NZVC
LD
LD
LD
LD
LD
LD
LD
@Rj, Ri
@(R13,Rj), Ri
@(R14,disp10), Ri
@(R15,udisp6), Ri
@R15+, Ri
@R15+, Rs
@R15+, PS
A 04
A 00
B 20
C 03
E 07-0
E 07-8
E 07-9
LDUH
LDUH
LDUH
@Rj, Ri
@(R13,Rj), Ri
@(R14,disp9), Ri
A
A
B
LDUB
LDUB
LDUB
@Rj, Ri
@(R13,Rj), Ri
@(R14,disp8), Ri
A
A
B
動作
備考
b
b
b
b
b
b
1+a+b
------------------CCCC
(Rj) → Ri
(R13+Rj) → Ri
(R14+disp10) → Ri
(R15+udisp6) → Ri
(R15) → Ri,R15+=4
(R15) → Rs, R15+=4 Rs: 特殊レジスタ *1
(R15) → PS, R15+=4
05
01
40
b
b
b
----------
(Rj) → Ri
(R13+Rj) → Ri
(R14+disp9) → Ri
ゼロ拡張
ゼロ拡張
ゼロ拡張
06
02
60
b
b
b
----------
(Rj) → Ri
(R13+Rj) → Ri
(R14+disp8) → Ri
ゼロ拡張
ゼロ拡張
ゼロ拡張
*1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
udisp6/4 → o4 udisp6 は , 符号なしです。
432
付録 E 命令一覧
■ メモリストア命令
付表 E-11 メモリストア命令
ニーモニック
ST
ST
ST
ST
ST
ST
ST
Ri,
Ri,
Ri,
Ri,
Ri,
Rs,
PS,
STH
STH
STH
STB
STB
STB
@Rj
@(R13,Rj)
@(R14,disp10)
@(R15,udisp6)
@-R15
@-R15
@-R15
型
OP
CYCLE NZVC
動作
備考
A 14
A 10
B 30
C 13
E 17-0
E 17-8
E 17-9
a
a
a
a
a
a
a
----------------------
Ri → (Rj)
Ri → (R13+Rj)
Ri → (R14+disp10)
Ri → (R15+udisp6)
R15-=4,Ri → (R15)
R15-=4, Rs → (R15)
R15-=4, PS → (R15)
ワード
ワード
ワード
Ri, @Rj
Ri, @(R13,Rj)
Ri, @(R14,disp9)
A
A
B
15
11
50
a
a
a
----------
Ri → (Rj)
Ri → (R13+Rj)
Ri → (R14+disp9)
ハーフワード
ハーフワード
ハーフワード
Ri, @Rj
Ri, @(R13,Rj)
Ri, @(R14,disp8)
A
A
B
16
12
70
a
a
a
----------
Ri → (Rj)
Ri → (R13+Rj)
Ri → (R14+disp8)
バイト
バイト
バイト
Rs: 特殊レジスタ *1
*1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
( 注意事項 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
udisp6/4 → o4 udisp6 は , 符号なしです。
■ レジスタ間転送命令
付表 E-12 レジスタ間転送命令
ニーモニック
MOV
MOV
MOV
MOV
MOV
Rj,
Rs,
Ri,
PS,
Ri,
Ri
Ri
Rs
Ri
PS
型
OP CYCLE NZVC
A 8B
A B7
A B3
E 17-1
E 07-1
1
1
1
1
c
------------CCCC
動作
Rj
Rs
Ri
PS
Ri
→
→
→
→
→
Ri
Ri
Rs
Ri
PS
備考
汎用レジスタ間転送
Rs: 特殊レジスタ *1
Rs: 特殊レジスタ *1
*1: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
433
付録
■ 通常分岐 ( 遅延なし ) 命令
付表 E-13 通常分岐 ( 遅延なし ) 命令
ニーモニック
型 OP CYCLE NZVC
動作
備考
JMP
@Ri
E 97-0
2
----
Ri → PC
CALL
label12
F
2
----
CALL
@Ri
E 97-1
2
----
PC+2 → RP ,
PC+2+(label12-PC-2) → PC
PC+2 → RP ,Ri → PC
E 97-2
2
----
RP → PC
3+3a
----
SSP-=4,PS → (SSP),
SSP-=4,PC+2 → (SSP),
0 → I フラグ , 0 → S フラグ ,
(TBR+0x3FC-u8 × 4) → PC
SSP-=4,PS → (SSP),
エミュレータ用
SSP-=4,PC+2 → (SSP),
0 → S フラグ ,
(TBR+0x3D8) → PC
RET
INT
#u8
D
D0
1F
INTE
E 9F-3
3+3a
----
RETI
E 97-3
2+2a
CCCC
(R15) → PC,R15-=4,
(R15) → PS,R15-=4
PC+2+(label9-PC-2) → PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2) → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
BRA
BNO
BEQ
label9
label9
label9
D
D
D
E0
E1
E2
2
1
2/1
----------
BNE
BC
BNC
BN
BP
BV
BNV
BLT
BGE
BLE
BGT
BLS
BHI
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
D
D
D
D
D
D
D
D
D
D
D
D
D
E3
E4
E5
E6
E7
E8
E9
EA
EB
EC
ED
EE
EF
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
2/1
----------------------------------------
リターン
( 注意事項 )
• サイクル数の「2/1」は , 分岐するとき 2, 分岐しないとき "1" であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• RETI 命令を実行するときは , S フラグが "0" であることが必要です。
434
付録 E 命令一覧
■ 遅延分岐命令
付表 E-14 遅延分岐命令
ニーモニック
型 OP CYCLE NZVC
動作
JMP:D
@Ri
E 9F-0
1
----
Ri → PC
CALL:D
label12
F
1
----
CALL:D
@Ri
E 9F-1
1
----
PC+4 → RP ,
PC+2+(label12-PC-2) → PC
PC+4 → RP ,Ri → PC
RET:D
D8
E 9F-2
1
----
RP → PC
BRA:D
BNO:D
BEQ:D
label9
label9
label9
D
D
D
F0
F1
F2
1
1
1
----------
BNE:D
BC:D
BNC:D
BN:D
BP:D
BV:D
BNV:D
BLT:D
BGE:D
BLE:D
BGT:D
BLS:D
BHI:D
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
label9
D
D
D
D
D
D
D
D
D
D
D
D
D
F3
F4
F5
F6
F7
F8
F9
FA
FB
FC
FD
FE
FF
1
1
1
1
1
1
1
1
1
1
1
1
1
----------------------------------------
PC+2+(label9-PC-2) → PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2) → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備考
リターン
( 注意事項 )
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
• 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令です。
複数サイクル命令は置けません。
435
付録
■ その他の命令
付表 E-15 その他の命令
ニーモニック
型
OP
CYCLE NZVC
動作
備考
NOP
E 9F-A
1
----
何も変化しない
ANDCCR #u8
ORCCR #u8
D
D
c
c
CCCC
CCCC
CCR and u8
CCR or u8
STILM
#u8
*1
83
93
D
87
1
----
i8 → ILM
ILM 即値セット
A3
1
----
R15 += s10
ADD SP 命令
1
1
1
1
-------------
符号拡張 8 → 32bit
ゼロ拡張 8 → 32bit
符号拡張 16 → 32bit
ゼロ拡張 16 → 32bit
(R15) → reglist,
R15 インクリメント
(R15) → reglist,
R15 インクリメント
(R15) → reglist,
R15 インクリメント
ADDSP
#s10
D
EXTSB
EXTUB
EXTSH
EXTUH
Ri
Ri
Ri
Ri
E
E
E
E
97-8
97-9
97-A
97-B
LDM0
(reglist)
D
8C
----
LDM1
(reglist)
D
8D
----
*LDM
(reglist)*2
STM0
(reglist)
D
8E
----
STM1
(reglist)
D
8F
----
*STM
(reglist)*3
ENTER
#u10*4
LEAVE
XCHB
----
---D
0F
ロードマルチ R0-R7
ロードマルチ R8-R15
ロードマルチ R0-R15
R15 ディクリメント , ストアマルチ R0-R7
reglist → (R15)
R15 ディクリメント , ストアマルチ R8-R15
reglist → (R15)
R15 ディクリメント , ストアマルチ R0-R15
reglist → (R15)
1+a
----
R14 → (R15 - 4),
R15 - 4 → R14,
R15 - u10 → R15
関数の入口処理
E 9F-9
b
----
R14 + 4 → R15,
(R15 - 4) → R14
関数の出口処理
A
2a
----
Ri → TEMP
セマフォ管理用
(Rj) → Ri
バイトデータ
TEMP → (Rj)
*1: s10 はアセンブラが , s10/4 を計算して s8 にして値を設定します。s10 は符号付きです。
*2: reglist で , R0-R7 のいずれかの指定があれば , LDM0 を生成し , R8-R15 のいずれかの指定があれ
ば , LDM1 を生成します。LDM0, LDM1 の両方を生成する場合もあります。
*3: reglist で , R0-R7 のいずれかの指定があれば , STM0 を生成し , R8-R15 のいずれかの指定があれ
ば , STM1 を生成します。STM1, STM0 の両方を生成する場合もあります。
*4: u10 はアセンブラが , u10/4 を計算して u8 にして値を設定します。u10 は符号なしです。
( 注意事項 )
• LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*(n-1)+b+1 サイクルとなります。
• STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*n+1 サイクルとなります。
436
@Rj, Ri
→ CCR
→ CCR
8A
付録 E 命令一覧
■ 20 ビット通常分岐マクロ命令
付表 E-16 20 ビット通常分岐マクロ命令
ニーモニック
動作
備考
*CALL20
label20,Ri
次の命令のアドレス→ RP,
label20 → PC
Ri: テンポラリレジスタ ( 参考 1 参照 )
*BRA20
*BEQ20
*BNE20
*BC20
*BNC20
*BN20
*BP20
*BV20
*BNV20
*BLT20
*BGE20
*BLE20
*BGT20
*BLS20
*BHI20
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20 → PC
if(Z==1) then label20 → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
Ri: テンポラリレジスタ ( 参考 2 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
[ 参考 1] CALL20
1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL
label12
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20,Ri
CALL
@Ri
[ 参考 2] BRA20
1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA
label9
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20,Ri
JMP
@Ri
[ 参考 3] Bcc20
1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc
label9
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:20 #label20,Ri
JMP
@Ri
false:
437
付録
■ 20 ビット遅延分岐マクロ命令
付表 E-17 20 ビット遅延分岐マクロ命令
ニーモニック
動作
備考
*CALL20:D
label20,Ri
次の命令のアドレス +2 → RP, Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20:D
*BEQ20:D
*BNE20:D
*BC20:D
*BNC20:D
*BN20:D
*BP20:D
*BV20:D
*BNV20:D
*BLT20:D
*BGE20:D
*BLE20:D
*BGT20:D
*BLS20:D
*BHI20:D
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20 → PC
if(Z==1) then label20 → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
Ri: テンポラリレジスタ ( 参考 2 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
[ 参考 1] CALL20:D
1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20,Ri
CALL:D @Ri
[ 参考 2] BRA20:D
1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:20 #label20,Ri
JMP:D @Ri
[ 参考 3] Bcc20:D
1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D label9
2) label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:20 #label20,Ri
JMP:D @Ri
False:
438
付録 E 命令一覧
■ 32 ビット通常分岐マクロ命令
付表 E-18 32 ビット通常分岐マクロ命令
ニーモニック
動作
備考
*CALL32
label32,Ri
次の命令のアドレス→ RP,
label32 → PC
Ri: テンポラリレジスタ ( 参考 1 参照 )
*BRA32
*BEQ32
*BNE32
*BC32
*BNC32
*BN32
*BP32
*BV32
*BNV32
*BLT32
*BGE32
*BLE32
*BGT32
*BLS32
*BHI32
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32 → PC
if(Z==1) then label32 → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
Ri: テンポラリレジスタ ( 参考 2 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
[ 参考 1] CALL32
1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL
label12
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32,Ri
CALL
@Ri
[ 参考 2] BRA32
1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA
label9
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32,Ri
JMP
@Ri
[ 参考 3] Bcc32
1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc
label9
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32,Ri
JMP
@Ri
False:
439
付録
■ 32 ビット遅延分岐マクロ命令
付表 E-19 32 ビット遅延分岐マクロ命令
ニーモニック
動作
備考
*CALL32:D
label32,Ri
次の命令のアドレス +2 → RP,
label32 → PC
Ri: テンポラリレジスタ ( 参考 1 参照 )
*BRA32:D
*BEQ32:D
*BNE32:D
*BC32:D
*BNC32:D
*BN32:D
*BP32:D
*BV32:D
*BNV32:D
*BLT32:D
*BGE32:D
*BLE32:D
*BGT32:D
*BLS32:D
*BHI32:D
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32 → PC
if(Z==1) then label32 → PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
Ri: テンポラリレジスタ ( 参考 2 参照 )
Ri: テンポラリレジスタ ( 参考 3 参照 )
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
[ 参考 1] CALL32:D
1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32,Ri
CALL:D @Ri
[ 参考 2] BRA32:D
1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D
label9
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
LDI:32 #label32,Ri
@Ri
JMP:D
[ 参考 3] Bcc32:D
1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D
label9
2) label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のように命令を生
成します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32,Ri
JMP:D
@Ri
False:
440
付録 E 命令一覧
■ ダイレクトアドレッシング命令
付表 E-20 ダイレクトアドレッシング命令
型 OP CYCLE NZVC
ニーモニック
動作
備考
DMOV
DMOV
DMOV
DMOV
DMOV
DMOV
@dir10,
R13,
@dir10,
@R13+,
@dir10,
@R15+,
R13
@dir10
@R13+
@dir10*
@-R15
@dir10
D
D
D
D
D
D
08
18
0C
1C
0B
1B
b
a
2a
2a
2a
2a
-------------------
(dir10) → R13
R13 → (dir10)
(dir10) → (R13),R13+=4
(R13) → (dir10),R13+=4
R15-=4,(R15) → (dir10)
(R15) → (dir10),R15+=4
ワード
ワード
ワード
ワード
ワード
ワード
DMOVH
DMOVH
DMOVH
DMOVH
DMOVB
DMOVB
DMOVB
DMOVB
@dir9,
R13,
@dir9,
@R13+,
@dir8,
R13,
@dir8,
@R13+,
R13
@dir9
@R13+
@dir9*
R13
@dir8
@R13+
@dir8*
D
D
D
D
09
19
0D
1D
b
a
2a
2a
-------------
(dir9) → R13
R13 → (dir9)
(dir9) → (R13),R13+=2
(R13) → (dir9),R13+=2
ハーフワード
ハーフワード
ハーフワード
ハーフワード
D
D
D
D
0A
1A
0E
1E
b
a
2a
2a
-------------
(dir8) → R13
R13 → (dir8)
(dir8) → (R13),R13++
(R13) → (dir8),R13++
バイト
バイト
バイト
バイト
* : R13+ を転送元にする DMOV 命令の後ろには , 必ず NOP を 1 つ置いてください。
( 注意事項 )
dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8 → dir, dir9/2 → dir, dir10/4 → dir dir8, dir9, dir10 は符号なしです。
■ リソース命令
付表 E-21 リソース命令
型 OP CYCLE NZVC
ニーモニック
LDRES
@Ri+, #u4
C
BC
a
----
STRES
#u4,
C
BD
a
----
@Ri+
動作
(Ri) → u4 のリソース
Ri+=4
u4 のリソース→ (Ri)
Ri+=4
備考
u4: チャネル番号
u4: チャネル番号
■ コプロセッサ制御命令
付表 E-22 コプロセッサ制御命令
ニーモニック
COPOP
COPLD
COPST
COPSV
#u4,
#u4,
#u4,
#u4,
#u8,
#u8,
#u8,
#u8,
CRj,CRi
Rj, CRi
CRj, Ri
CRj, Ri
型 OP
E
E
E
E
9F-C
9F-D
9F-E
9F-F
CYCLE NZVC
2+a
1+2a
1+2a
1+2a
-------------
動作
演算指示
Rj → CRi
CRj → Ri
CRj → Ri
備考
エラートラップなし
( 注意事項 )
• {CRi | CRj} := CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8 | CR9 |
CR10 | CR11 | CR12 | CR13 | CR14 | CR15
u4:= チャネル指定
u8:= コマンド指定
• 本品種では , コプロセッサを搭載していないため使用できません。
441
付録
442
索引
索引
Numerics
0 検出
0 検出 ......................................................................375
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................373
16 ビット
即値セット /16 ビット /32 ビット即値転送命令
..........................................................................432
16 ビットアウトプットコンペア
16 ビットアウトプットコンペアのタイミング
..........................................................................238
16 ビットアウトプットコンペアの動作説明
..........................................................................237
16 ビットインプットキャプチャ
16 ビットインプットキャプチャの動作 ............239
16ビットインプットキャプチャの入力タイミング
..........................................................................239
16 ビットタイマレジスタ
16 ビットタイマレジスタ (TMR0 ∼ TMR3)
..........................................................................191
16 ビットフリーランタイマ
16ビットフリーランタイマのカウントタイミング
..........................................................................236
16 ビットフリーランタイマのクリアタイミング
..........................................................................236
16 ビットフリーランタイマの動作説明 ............235
16 ビットリロードタイマ
16 ビットリロードタイマの特長 ........................186
16ビットリロードタイマのブロックダイヤグラム
..........................................................................187
16 ビットリロードタイマのレジスタ一覧
..........................................................................188
内部タイマ (16 ビットリロードタイマ 0) による
ボーレート ......................................................324
16 ビットリロードレジスタ
16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3)
..........................................................................191
16 ビット× 1 チャネル動作
8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作
..........................................................................184
1 検出
1 検出 ......................................................................375
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................373
20 ビット遅延分岐マクロ命令
20 ビット遅延分岐マクロ命令 ............................438
20 ビット通常分岐マクロ命令
20 ビット通常分岐マクロ命令 ............................437
2 逓倍
位相差カウントモード (2 逓倍 /4 逓倍 ) ............178
32 ビット即値転送命令
即値セット /16 ビット /32 ビット即値転送命令
...........................................................................432
32 ビット遅延分岐マクロ命令
32 ビット遅延分岐マクロ命令 ............................440
32 ビット通常分岐マクロ命令
32 ビット通常分岐マクロ命令 ........................... 439
4 逓倍
位相差カウントモード (2 逓倍 /4 逓倍 ) ............178
8/10 ビット A/D コンバータ
8/10 ビット A/D コンバータ使用上の注意 ....... 288
8/10 ビット A/D コンバータの端子 ...................273
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..................................274
8/10 ビット A/D コンバータの特長 ...................270
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................271
8/10 ビット A/D コンバータの変換モード ....... 270
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................275
8/10 ビット A/D コンバータの割込み ............... 283
8/16 ビットアップダウンカウンタ / タイマ
8/16 ビットアップダウンカウンタ / タイマの特長
..........................................................................164
8/16 ビットアップダウンカウンタ / タイマの
ブロックダイヤグラム ..................................166
8/16 ビットアップダウンカウンタ / タイマの
レジスタ一覧 ..................................................168
8 ビット D/A コンバータ
8 ビット D/A コンバータの端子 ........................ 291
8 ビット D/A コンバータの動作 ........................ 295
8 ビット D/A コンバータの特長 ........................ 290
8 ビット D/A コンバータのブロックダイヤグラム
..........................................................................291
8 ビット D/A コンバータのレジスタ一覧 ........292
8 ビット× 2 チャネル
8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作
..........................................................................184
443
索引
A
A/D コンバータ
8/10 ビット A/D コンバータ使用上の注意
..........................................................................288
8/10 ビット A/D コンバータの端子 ....................273
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..................................274
8/10 ビット A/D コンバータの特長 ....................270
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................271
8/10 ビット A/D コンバータの変換モード
..........................................................................270
8/10 ビット A/D コンバータのレジスタ一覧
..........................................................................275
8/10 ビット A/D コンバータの割込み ................283
A/D 制御ステータスレジスタ
A/D 制御ステータスレジスタ 0(ADCS0) ..........278
A/D 制御ステータスレジスタ 1(ADCS1) ..........276
A/D データレジスタ
A/D データレジスタ (ADCR) ..............................281
A/D 変換データ保護
A/D 変換データ保護機能 .....................................287
ADCR
A/D データレジスタ (ADCR) ..............................281
ADCS
A/D 制御ステータスレジスタ 0(ADCS0) ..........278
A/D 制御ステータスレジスタ 1(ADCS1) ..........276
AICR
アナログ入力制御レジスタ (AICR) ...................162
AMD
エリアモードレジスタ 0(AMD0) ........................105
エリアモードレジスタ 1(AMD1) ........................107
エリアモードレジスタ 32(AMD32) ....................108
エリアモードレジスタ 4(AMD4) ........................109
エリアモードレジスタ 5(AMD5) ........................110
AMR
エリア選択レジスタ (ASR) と
エリアマスクレジスタ (AMR) ......................102
ASR
エリア選択レジスタ (ASR) と
エリアマスクレジスタ (AMR) ......................102
B
BSD0
0 検出用データレジスタ (BSD0) ........................373
BSD1
1 検出用データレジスタ (BSD1) ........................373
BSDC
変化点検出用データレジスタ (BSDC) ..............374
BSRR
検出結果レジスタ (BSRR) ...................................374
C
CCRH
カウンタコントロールレジスタ H/L ch0(CCRH0/
CCRL0) .............................................................169
カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1)
..........................................................................172
444
CCRL
カウンタコントロールレジスタ H/L ch0(CCRH0/
CCRL0) ............................................................ 169
カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1)
..........................................................................172
CDCR
通信プリスケーラコントロールレジスタ (CDCR)
..........................................................................313
CPU
CPU アーキテクチャの特長 ..................................29
CPU ステート
各 CPU ステートにおける端子状態 ...................410
CSR
カウンタステータスレジスタ 0/1(CSR 0,CSR1)
..........................................................................173
CTBR
タイムベースタイマクリアレジスタ (CTBR)
............................................................................73
D
D/A コントロールレジスタ
D/A コントロールレジスタ
(DACR0,DACR1,DACR2) ..............................293
D/A コンバータ
8 ビット D/A コンバータの端子 ........................ 291
8 ビット D/A コンバータの動作 ........................ 295
8 ビット D/A コンバータの特長 ........................ 290
8 ビット D/A コンバータのブロックダイヤグラム
..........................................................................291
8 ビット D/A コンバータのレジスタ一覧
..........................................................................292
D/A データレジスタ
D/A データレジスタ (DADR2,DADR1,DADR0)
..........................................................................294
DACR
D/A コントロールレジスタ
(DACR0,DACR1,DACR2) ..............................293
DACSR
DMACコントロールステータスレジスタ(DACSR)
..........................................................................344
DADR
D/A データレジスタ (DADR2,DADR1,DADR0)
..........................................................................294
DATCR
DMAC 端子コントロールレジスタ (DATCR)
..........................................................................346
DDR
データ方向レジスタ (DDR) ................................158
Delayed Interrupt Control Register
遅延割込み制御レジスタ (DICR:Delayed Interrupt
Control Register) .............................................. 251
DICR
DICR の DLYI ビット .......................................... 252
遅延割込み制御レジスタ (DICR:Delayed Interrupt
Control Register) .............................................. 251
DLYI ビット
DICR の DLYI ビット .......................................... 252
DMA
リソースの割込み要求を DMA 転送要求として
使用する場合の注意 ...................................... 360
索引
DMAC コントロールステータスレジスタ
DMACコントロールステータスレジスタ(DACSR)
..........................................................................344
DMAC 端子コントロールレジスタ
DMAC 端子コントロールレジスタ (DATCR)
..........................................................................346
DMAC 内部レジスタ
DMAC 内部レジスタへの転送動作 ....................361
DMAC パラメータディスクリプタポインタ
DMAC
パ ラ メ ー タ デ ィ ス ク リ プ タ ポ インタ
(DPDP) .............................................................343
DMA コントローラ
DMA コントローラの特長 ..................................340
DMA コントローラのブロックダイヤグラム
..........................................................................341
DMA コントローラのレジスタ一覧 ..................342
DMA 転送動作
スリープモード中の DMA 転送動作 .................361
DMA 転送要求
リソースの割込み要求を DMA 転送要求として使
用する場合の注意 ..........................................360
DMA 転送抑止
優先度の高い割込み発生時の DMA 転送抑止
..........................................................................360
DMA 要求抑止レジスタ
DMA 要求抑止レジスタ (PDRR) ..........................77
double 型
double 型 ,long double 型の利用 ...........................420
DPDP
DMAC パラメータディスクリプタポインタ
(DPDP) .............................................................343
DREC 信号
DREC 信号のセンスモード .................................353
E
EIRR
外部割込み要因レジスタ (EIRR0,EIRR1:
External Interrupt Request Register n) .............245
EIT
EIT ............................................................................54
EIT からの復帰 .......................................................54
EIT の注意事項 .......................................................54
EIT 要因受理の優先順位 .......................................59
EIT 要因
EIT 要因 ...................................................................54
ELVR
外部割込み要求レベル設定レジスタ
(ELVR0,ELVR1:External LeVel Register)
..........................................................................246
ENable Interrupt request Register
割込み許可レジスタ (ENIR0,ENIR1:
ENable Interrupt request Register n) ................244
ENIR
割込み許可レジスタ (ENIR0,ENIR1:
ENable Interrupt request Register n) ................244
EPCR
外部端子制御レジスタ 0(EPCR0) .......................111
外部端子制御レジスタ 1(EPCR1) .......................114
External Interrupt Request Register
外部割込み要因レジスタ (EIRR0,EIRR1:
External Interrupt Request Register n) .............245
External LeVel Register
外部割込み要求レベル設定レジスタ
(ELVR0,ELVR1:External LeVel Register)
..........................................................................246
F
FPT-144P-M08
FPT-144P-M08 の外形寸法図 ..................................6
MB91151A(FPT-144P-M08) の端子配列 ................9
FR ファミリ
FR ファミリの命令一覧表 ..................................429
G
GCN
ジェネラルコントロールレジスタ 1(GCN1)
..........................................................................210
ジェネラルコントロールレジスタ 2(GCN2)
..........................................................................213
GCR
ギア制御レジスタ (GCR) ...................................... 74
H
Hold Request Cancel Request
ホールドリクエスト取下げ要求 (Hold Request
Cancel Request) の発生基準 ........................... 264
HRCL
ホールドリクエスト取下げ要求レベル設定レジス
タ (HRCL:Hold Request Cancel Level register)
.................................................................................259
I
I/O ポート
I/O ポートのレジスタ .......................................... 150
I/O マップ
I/O マップ .............................................................. 401
I/O マップの見方 ..................................................400
I-Cache
本品種の I-Cache を使用するときの設定方法
............................................................................37
ICR
割込み制御レジスタ (ICR00 ∼ ICR47:
Interrupt Control Register) ............................... 258
ICS
インプットキャプチャコントロールレジスタ
(ICS01,ICS23) ..................................................232
Interrupt Control Register
割込み制御レジスタ (ICR00 ∼ ICR47:
Interrupt Control Register) ............................... 258
INTE 命令
INTE 命令の動作 ....................................................62
INT 命令
INT 命令の動作 ....................................................... 62
IPCP
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................232
445
索引
K
-Klib オプション
文字列操作関数使用時の -K lib オプションの指定
..........................................................................419
L
LER
リトルエンディアンレジスタ (LER) .................115
long double 型
double 型 ,long double 型の利用 ...........................420
M
MB91151A
MB91151A(FPT-144P-M08) の端子配列 .................9
MB91151A の特長 .....................................................2
MB91151A のメモリマップ ..................................48
MB91V151A,MB91151A のブロックダイヤグラム
..............................................................................4
MB91V151A,MB91151A のメモリマップ ...........28
MB91V151A
MB91V151A(PGA-299C-A01) の端子配列 .............7
MB91V151A,MB91151A のブロックダイヤグラム
..............................................................................4
MB91V151A,MB91151A のメモリマップ ...........28
Multiply & Divide register
乗除算レジスタ (Multiply & Divide register) ........45
O
OCCP
コンペアレジスタ (OCCP0 ∼ OCCP7) ..............229
OCR
オープンドレイン制御レジスタ (OCR) .............161
OCS
アウトプットコントロールレジスタ
(OCS0 ∼ OCS7) ..............................................229
P
PC
PC(Program Counter) ...............................................44
PCNH
コントロールステータスレジスタ
(PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5)
..........................................................................203
PCNL
コントロールステータスレジスタ
(PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5) .........203
PCR
プルアップ抵抗制御レジスタ (PCR) .................160
PCSR
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5)
..........................................................................207
PCTR
PLL 制御レジスタ (PCTR) .....................................78
PDR
ポートデータレジスタ (PDR) .............................156
446
PDRR
DMA 要求抑止レジスタ (PDRR) .......................... 77
PDUT
PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5)
........................................................................... 208
PGA-299C-A01
MB91V151A(PGA-299C-A01) の端子配列 ............. 7
PGA-299C-A01 の外形寸法図 ................................. 5
PLL
PLL のクロック設定例 .......................................... 85
アセンブラのソース例
(PLL 系への切換え動作の例 ) ........................ 86
PLL クロックモード
PLL クロックモード動作中の注意について
............................................................................24
PLL 制御レジスタ
PLL 制御レジスタ (PCTR) ..................................... 78
PPG タイマ
PPG タイマ 1 チャネル分のブロックダイヤグラム
..........................................................................200
PPG タイマ全体のブロックダイヤグラム
..........................................................................199
PPG タイマの特長 ................................................198
PPG タイマのレジスタ一覧 ................................201
Program Counter
PC(Program Counter) ...............................................44
Program Status
PS(Program Status) ................................................... 41
PS
PS(Program Status) ................................................... 41
PTMR
PWM タイマレジスタ (PTMR0 ∼ PTMR5)
..........................................................................209
PWM
PWM 出力オール "L" またはオール "H" の
出力方法例 ......................................................218
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) ................................. 218
PWM 動作 .............................................................. 214
PWM 周期設定レジスタ
PWM 周期設定レジスタ (PCSR0 ∼ PCSR5)
..........................................................................207
PWM タイマ
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) ................................. 218
PWM タイマレジスタ
PWM タイマレジスタ (PTMR0 ∼ PTMR5)
..........................................................................209
PWM デューティ設定レジスタ
PWM デューティ設定レジスタ (PDUT0 ∼ PDUT5)
..........................................................................208
R
RCR
リロード / コンペアレジスタ 0/1(RCR 0,RCR1)
..........................................................................176
RETI 命令
RETI 命令の動作 ....................................................64
Return Pointer
RP(Return Pointer) ................................................... 44
索引
RP
RP(Return Pointer) ....................................................44
RSRR
リセット要因レジスタ (RSRR) とウォッチドッグ
周期制御レジスタ (WTCR) .............................70
S
SCR
制御レジスタ (SCR0 ∼ SCR3) ............................305
SIDR
インプットデータレジスタ (SIDR0 ∼ SIDR3)
..........................................................................311
SMR
モードレジスタ (SMR0 ∼ SMR3) ......................307
SODR
アウトプットデータレジスタ (SODR0 ∼ SODR3)
..........................................................................312
SSP
SSP(System Stack Pointer) .......................................45
SSR
ステータスレジスタ (SSR0 ∼ SSR3) .................309
STCR
スタンバイ制御レジスタ (STCR) .........................72
STPR
ストップ制御レジスタ 0(STPR0) .......................381
ストップ制御レジスタ 1(STPR1) .......................382
ストップ制御レジスタ 2(STPR2) .......................383
System Stack Pointer
SSP(System Stack Pointer) .......................................45
UART のブロックダイヤグラム ........................ 300
UART のレジスタ一覧 ........................................ 304
UART の割込み ..................................................... 315
UART ボーレート選択 ........................................ 319
UART ボーレート選択回路 ................................320
UDCR
アップダウンカウントレジスタ
0/1(UDCR 0,UDCR1) .....................................175
アップダウンカウントレジスタ (UDCR) への
データの書込み .............................................. 183
User Stack Pointer
USP(User Stack Pointer) .......................................... 45
USP
USP(User Stack Pointer) .......................................... 45
W
WPR
ウォッチドッグリセット発生延期レジスタ (WPR)
............................................................................76
WTCR
リセット要因レジスタ (RSRR) とウォッチドッグ
周期制御レジスタ (WTCR) ............................. 70
T
Table Base Register
TBR(Table Base Register) ........................................44
TBR
TBR(Table Base Register) ........................................44
TCCS
タイマコントロールステータスレジスタ (TCCS)
..........................................................................226
TCDT
データレジスタ (TCDT) .......................................226
TMCSR
コントロールステータスレジスタ
(TMCSR0 ∼ TMCSR3) ...................................189
TMR
16 ビットタイマレジスタ (TMR0 ∼ TMR3)
..........................................................................191
TMRLR
16 ビットリロードレジスタ (TMRLR0 ∼ TMRLR3)
..........................................................................191
U
UART
UART 使用上の注意 .............................................338
UART に関連する割込み .....................................316
UART の端子 .........................................................302
UART の端子のブロックダイヤグラム .............303
UART の動作 .........................................................327
UART の特長 .........................................................298
447
索引
あ
う
アーキテクチャ
CPU アーキテクチャの特長 ..................................29
内部アーキテクチャ ...............................................29
アウトプットコントロールレジスタ
アウトプットコントロールレジスタ
(OCS0 ∼ OCS7) ..............................................229
アウトプットコンペア
16 ビットアウトプットコンペアのタイミング
..........................................................................238
16 ビットアウトプットコンペアの動作説明
..........................................................................237
アウトプットデータレジスタ
アウトプットデータレジスタ (SODR0 ∼ SODR3)
..........................................................................312
アセンブラ
アセンブラのソース例
(PLL 系への切換え動作の例 ) .........................86
アップ / ダウンカウントモード
アップ / ダウンカウントモード .........................177
アップダウンカウンタ / タイマ
8/16 ビットアップダウンカウンタ / タイマの特長
..........................................................................164
8/16 ビットアップダウンカウンタ / タイマの
ブロックダイヤグラム ..................................166
8/16 ビットアップダウンカウンタ / タイマの
レジスタ一覧 ..................................................168
アップダウンカウントレジスタ
アップダウンカウントレジスタ
0/1(UDCR 0,UDCR1) ......................................175
アップダウンカウントレジスタ (UDCR) への
データの書込み ..............................................183
アドレッシング
ダイレクトアドレッシング領域 .....................28, 48
アドレッシングモード
アドレッシングモードの記号 .............................426
アナログ入力制御レジスタ
アナログ入力制御レジスタ (AICR) ...................162
アンダフロー
アンダフロー動作 .................................................193
ウェイトサイクル
ウェイトサイクル ................................................132
ウェイトサイクルタイミング
外部ウェイトサイクルタイミング .................... 143
自動ウェイトサイクルタイミング .................... 142
ウォッチドッグ周期制御レジスタ
リセット要因レジスタ (RSRR) とウォッチドッグ
周期制御レジスタ (WTCR) ............................. 70
ウォッチドッグ制御部
ウォッチドッグ制御部のブロックダイヤグラム
............................................................................79
ウォッチドッグタイマ
ウォッチドッグタイマ機能について .................. 24
ウォッチドッグタイマの起動 ..............................79
ウォッチドッグリセット発生延期レジスタ
ウォッチドッグリセット発生延期レジスタ (WPR)
............................................................................76
い
位相差カウントモード
位相差カウントモード (2 逓倍 /4 逓倍 ) ............178
インプットキャプチャ
16 ビットインプットキャプチャの動作 ............239
16ビットインプットキャプチャの入力タイミング
..........................................................................239
インプットキャプチャコントロールレジスタ
インプットキャプチャコントロールレジスタ
(ICS01,ICS23) ..................................................232
インプットキャプチャデータレジスタ
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................232
インプットデータレジスタ
インプットデータレジスタ (SIDR0 ∼ SIDR3)
..........................................................................311
448
え
エッジモード
エッジモード時の注意事項 ................................358
エミュレータデバッガ
エミュレータデバッガ / モニタデバッガ ......... 424
エラー
エラーの未検出 ....................................................423
エリア選択レジスタ
エリア選択レジスタ (ASR) と
エリアマスクレジスタ (AMR) .....................102
エリアマスクレジスタ
エリア選択レジスタ (ASR) と
エリアマスクレジスタ (AMR) .....................102
エリアモードレジスタ
エリアモードレジスタ 0(AMD0) .......................105
エリアモードレジスタ 1(AMD1) .......................107
エリアモードレジスタ 32(AMD32) ...................108
エリアモードレジスタ 4(AMD4) .......................109
エリアモードレジスタ 5(AMD5) .......................110
お
オーダリング
バイトオーダリング .............................................. 46
ビットオーダリング .............................................. 46
オープンドレイン出力
オープンドレイン出力機能 , プルアップ抵抗付き
入出力ポートのブロックダイヤグラム
..........................................................................153
オープンドレイン出力付き入出力ポートの
ブロックダイヤグラム ..................................155
オープンドレイン出力付き入出力ポート
オープンドレイン出力付き入出力ポートの
ブロックダイヤグラム ..................................155
オープンドレイン制御レジスタ
オープンドレイン制御レジスタ (OCR) ............161
オール "H"
PWM 出力オール "L" またはオール "H" の
出力方法例 ......................................................218
索引
オール "L"
PWM 出力オール "L" またはオール "H" の
出力方法例 ......................................................218
オプション
文字列操作関数使用時の -K lib オプションの指定
..........................................................................419
か
外形寸法図
FPT-144P-M08 の外形寸法図 ..................................6
PGA-299C-A01 の外形寸法図 .................................5
外部アクセス
ビッグエンディアンとリトルエンディアンの
外部アクセスの比較 ......................................116
外部ウェイトサイクルタイミング
外部ウェイトサイクルタイミング .....................143
外部クロック
外部クロックについて ...........................................24
外部クロックによるボーレート .........................326
外部端子制御レジスタ
外部端子制御レジスタ 0(EPCR0) .......................111
外部端子制御レジスタ 1(EPCR1) .......................114
外部デバイス
外部デバイスとの接続例 .............................123, 127
外部バス
外部バス動作のプログラム例 .............................147
外部バスアクセス
外部バスアクセス .................................................120
外部バスリクエスト
外部バスリクエスト .............................................132
外部リセット
外部リセット入力について ...................................24
外部割込み
外部割込みの動作 .................................................247
外部割込みの動作手順 .........................................247
外部割込み要求レベル .........................................248
外部割込み制御部
外部割込み制御部のブロックダイヤグラム
..........................................................................242
外部割込み制御部のレジスタ一覧 .....................243
外部割込み要因レジスタ
外部割込み要因レジスタ (EIRR0,EIRR1:
External Interrupt Request Register n) .............245
外部割込み要求レベル設定レジスタ
外部割込み要求レベル設定レジスタ
(ELVR0,ELVR1:External LeVel Register)
..........................................................................246
回路
回路の取扱い ...........................................................23
カウンタ
カウンタの動作状態 .............................................195
カウンタコントロールレジスタ
カウンタコントロールレジスタ H/L ch0
(CCRH0/CCRL0) .............................................169
カウンタステータスレジスタ
カウンタステータスレジスタ 0/1(CSR 0,CSR1)
..........................................................................173
カウンタ制御レジスタ
カウンタ制御レジスタ H/L ch1(CCRH1/CCRL ch1)
..........................................................................172
カウントクリア
カウントクリア / ゲート機能 ............................. 183
カウントタイミング
16ビットフリーランタイマのカウントタイミング
..........................................................................236
カウント方向転換フラグ
カウント方向転換フラグ .................................... 184
カウント方向フラグ
カウント方向フラグ ............................................ 184
カウントモード
カウントモード選択 ............................................ 177
加減算命令
加減算命令 ............................................................ 430
関数
文字列操作関数使用時の -K lib オプションの指定
..........................................................................419
文字列操作関数を使った文字型配列以外の操作
..........................................................................419
き
ギア制御部
ギア制御部のブロックダイヤグラム .................. 81
ギア制御レジスタ
ギア制御レジスタ (GCR) ...................................... 74
機能
カウントクリア / ゲート機能 ............................. 183
リロード / コンペア機能 .....................................180
リロード / コンペア機能同時起動時 ................. 181
基本プログラミングモデル
基本プログラミングモデル ..................................40
基本入出力ポート
基本入出力ポートのブロックダイヤグラム
..........................................................................151
基本ライトサイクルタイミング
基本ライトサイクルタイミング ........................ 135
基本リードサイクルタイミング
基本リードサイクルタイミング ........................ 133
キャッシュ可能領域
命令キャッシュのキャッシュ可能領域 ..............37
く
クリアタイミング
16 ビットフリーランタイマのクリアタイミング
..........................................................................236
クロック
PLL クロックモード動作中の注意について
............................................................................24
PLL のクロック設定例 .......................................... 85
外部クロックについて .......................................... 24
外部クロックによるボーレート ........................ 326
クロック選択方法 ................................................145
クロック系統参考図 .............................................. 86
クロック発生部のレジスタ構成 .......................... 68
内部クロック動作 ................................................192
クロック系統参考図
クロック系統参考図 .............................................. 86
クロック発生部
クロック発生部のブロックダイヤグラム ..........69
クロック発生部のレジスタ構成 .......................... 68
449
索引
け
ゲート機能
カウントクリア / ゲート機能 .............................183
検出
0 検出 ......................................................................375
1 検出 ......................................................................375
変化点検出 .............................................................376
検出結果レジスタ
検出結果レジスタ (BSRR) ...................................374
こ
構造体代入
構造体代入 .............................................................418
コプロセッサ
コプロセッサエラートラップ ...............................64
コプロセッサ不在トラップ ...................................63
コプロセッサエラートラップ
コプロセッサエラートラップ ...............................64
コプロセッサ制御命令
コプロセッサ制御命令 .........................................441
コプロセッサ不在トラップ
コプロセッサ不在トラップ ...................................63
コマンド
コマンド一覧 .........................................................390
混在サイクルタイミング
リード / ライト混在サイクルタイミング .........141
コントロールステータスレジスタ
コントロールステータスレジスタ
(PCNH0 ∼ PCNH5,PCNL0 ∼ PCNL5)
..........................................................................203
コントロールステータスレジスタ
(TMCSR0 ∼ TMCSR3) ...................................189
コンペア機能
コンペア機能起動時 .............................................181
リロード / コンペア機能 .....................................180
リロード / コンペア機能同時起動時 .................181
コンペアクリアレジスタ
コンペアクリアレジスタ .....................................226
コンペア検出フラグ
コンペア検出フラグ .............................................184
コンペアレジスタ
コンペアレジスタ (OCCP0 ∼ OCCP7) ..............229
さ
サイクルタイミング
リード / ライト混在サイクルタイミング .........141
し
シーケンス
ホールドリクエスト取下げ要求シーケンス
..........................................................................266
リセットシーケンス ...............................................65
ジェネラルコントロールレジスタ
ジェネラルコントロールレジスタ 1(GCN1)
..........................................................................210
ジェネラルコントロールレジスタ 2(GCN2)
..........................................................................213
450
ジェネラルコントロールレジスタを使った
複数チャネルの起動 ...................................... 220
自動ウェイトサイクルタイミング
自動ウェイトサイクルタイミング .................... 142
シフト命令
シフト命令 ............................................................ 432
シミュレータデバッガ
シミュレータデバッガ ........................................ 424
周辺ストップ制御
周辺ストップ制御の動作と注意事項 ................ 380
周辺ストップ制御のレジスタ一覧 .................... 380
初期領域
ベクタテーブル初期領域 ...................................... 48
受信割込み
受信割込み発生とフラグセットのタイミング
..........................................................................317
出力端子
出力端子機能 ........................................................ 194
乗除算命令
乗除算命令 ............................................................ 431
乗除算レジスタ
乗除算レジスタ (Multiply & Divide register)
............................................................................. 45
状態遷移図
低消費電力モードの状態遷移図 .......................... 95
初期化
リセットによる初期化 .......................................... 65
初期値付き変数
初期値付き変数の配置 ........................................ 418
シリアル起動
シリアル起動の通信モード ................................387
シングル
ステップ転送 ( シングル / ブロック転送 )
..........................................................................354
シングル / ブロック転送モード
シングル / ブロック転送モード .........................351
す
スタック
スタックのリトルエンディアン領域への配置
..........................................................................420
割込みスタック ......................................................56
スタンバイ制御レジスタ
スタンバイ制御レジスタ (STCR) .........................72
スタンバイモード
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 263
ステータスレジスタ
ステータスレジスタ (SSR0 ∼ SSR3) ................ 309
ステップ転送
ステップ転送 ( シングル / ブロック転送 ) ........354
ステップトレーストラップ
ステップトレーストラップの動作 ...................... 62
ストップ
スタンバイモード ( ストップ / スリープ ) からの
復帰 .................................................................. 263
ストップからの復帰 ............................................ 247
ストップ状態からの復帰 ...................................... 90
ストップ状態の概要 .............................................. 88
ストップ状態への移行 .......................................... 89
索引
ストップ制御部のブロックダイヤグラム ...........89
ストップ制御レジスタ
ストップ制御レジスタ 0(STPR0) .......................381
ストップ制御レジスタ 1(STPR1) .......................382
ストップ制御レジスタ 2(STPR2) .......................383
スリープ
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................263
スリープ状態からの復帰 .......................................93
スリープ状態の概要 ...............................................88
スリープ状態への移行 ...........................................92
スリープ制御部のブロックダイヤグラム ...........92
スリープモード
スリープモード中の DMA 転送動作 .................361
スロット
遅延スロット付き分岐命令 ...................................51
遅延スロット付き分岐命令の制限事項 ...............52
遅延スロット付き分岐命令の動作 .......................51
遅延スロットなし分岐命令 ...................................53
遅延スロットなし分岐命令の動作 .......................53
せ
制御信号
データバス幅と制御信号との関係 .............116, 117
制御レジスタ
制御レジスタ .........................................................265
制御レジスタ (SCR0 ∼ SCR3) ............................305
制御レジスタ構成 ...................................................34
セクション
セクション .............................................................421
セクション種別
セクション種別の制限 .........................................423
接続例
外部デバイスとの接続例 .............................123, 127
センス
リクエストのセンスと各転送モードの組合せ
..........................................................................353
センスモード
DREC 信号のセンスモード .................................353
専用ボーレートジェネレータ
専用ボーレートジェネレータによるボーレート
..........................................................................321
そ
送信割込み
送信割込み発生とフラグセットのタイミング
..........................................................................318
双方向通信
双方向通信機能 .....................................................334
ソース
アセンブラのソース例
(PLL 系への切換え動作の例 ) .........................86
即値セット
即値セット /16 ビット /32 ビット即値転送命令
..........................................................................432
即値転送命令
即値セット /16 ビット /32 ビット即値転送命令
..........................................................................432
た
退避
退避・復帰の処理 ................................................377
タイマコントロールステータスレジスタ
タイマコントロールステータスレジスタ (TCCS)
..........................................................................226
タイマベースタイマ
タイマベースタイマ .............................................. 80
タイマモード
タイマモード〔ダウンカウント〕...................... 177
タイミング
受信割込み発生とフラグセットのタイミング
..........................................................................317
送信割込み発生とフラグセットのタイミング
..........................................................................318
タイミング図
タイミング図で使用している記号 .................... 362
タイミングチャート
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) ................................. 218
タイムベースタイマクリアレジスタ
タイムベースタイマクリアレジスタ (CTBR)
............................................................................73
ダイレクトアドレッシング
ダイレクトアドレッシング領域 .................... 28, 48
ダイレクトアドレッシング命令
ダイレクトアドレッシング命令 ........................ 441
ダウンカウント
タイマモード〔ダウンカウント〕...................... 177
多機能タイマ
多機能タイマの構成 ............................................ 222
多機能タイマの動作説明 .................................... 234
多機能タイマのブロックダイヤグラム ............224
多機能タイマのレジスタ .................................... 225
端子機能
端子機能説明 .......................................................... 10
端子状態
各 CPU ステートにおける端子状態 ...................410
端子状態表
端子状態表の用語 ................................................410
端子処理
端子処理 .................................................................. 22
端子配列
MB91151A(FPT-144P-M08) の端子配列 ................9
MB91V151A(PGA-299C-A01) の端子配列 ............. 7
単発変換モード
単発変換モードの動作 ........................................ 284
ち
遅延
通常分岐 ( 遅延なし ) 命令 ..................................434
遅延スロット付き分岐命令
遅延スロット付き分岐命令 ..................................51
遅延スロット付き分岐命令の制限事項 ..............52
遅延スロット付き分岐命令の動作 ...................... 51
遅延スロットなし分岐命令
遅延スロットなし分岐命令 ..................................53
遅延スロットなし分岐命令の動作 ...................... 53
遅延分岐マクロ命令
20 ビット遅延分岐マクロ命令 ........................... 438
451
索引
32 ビット遅延分岐マクロ命令 ............................440
遅延分岐命令
遅延分岐命令 .........................................................435
遅延割込み制御レジスタ
遅延割込み制御レジスタ (DICR:
Delayed Interrupt Control Register) .................251
遅延割込みモジュール
遅延割込みモジュールのブロックダイヤグラム
..........................................................................250
遅延割込みモジュールのレジスタ一覧 .............250
チップセレクト
チップセレクト領域 ...............................................98
チャネル間優先順位
チャネル間優先順位 .............................................360
つ
通常極性
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) .................................218
通常バスアクセス
通常バスアクセス .................................................132
通常分岐
通常分岐 ( 遅延なし ) 命令 ..................................434
通常分岐マクロ命令
20 ビット通常分岐マクロ命令 ............................437
32 ビット通常分岐マクロ命令 ............................439
通信プリスケーラコントロールレジスタ
通信プリスケーラコントロールレジスタ (CDCR)
..........................................................................313
通信モード
シリアル起動の通信モード .................................387
て
停止変換モード
停止変換モードの動作 .........................................286
低消費電力モード
低消費電力モードの状態遷移図 ...........................95
低消費電力モードの動作一覧 ...............................88
ディスクリプタ
ディスクリプタ先頭ワード .................................348
ディスクリプタ第 2 ワード .................................350
ディスクリプタ第 3 ワード .................................350
ディスクリプタアクセス
ディスクリプタアクセス部 .................................363
逓倍
位相差カウントモード (2 逓倍 /4 逓倍 ) ............178
データアクセス
データアクセス .......................................................47
データ転送部
データ転送部 ,16/8 ビットデータ ......................365
データバス幅
データバス幅 .................................................119, 126
データバス幅と制御信号との関係 .............116, 117
データフォーマット
データフォーマット .....................................118, 125
データ方向レジスタ
データ方向レジスタ (DDR) ................................158
データ保護
A/D 変換データ保護機能 .....................................287
452
データレジスタ
データレジスタ (TCDT) ...................................... 226
電源投入時
電源投入時の注意 ..................................................25
転送
ステップ転送 ( シングル / ブロック転送 )
..........................................................................354
転送受付信号出力
転送受付信号出力 ................................................359
転送終了信号出力
転送終了信号出力 ................................................359
転送停止
連続転送モードでの転送停止 ( 両方のアドレスが
変化する場合 ),16/8 ビットデータ ............... 367
転送動作
スリープモード中の DMA 転送動作 ................. 361
転送の終了動作
転送の終了動作 ( いずれか一方のアドレスは固定
である場合 ) ....................................................368
転送の終了動作
( 両方のアドレスが変化する場合 ) ............. 369
転送モード
シングル / ブロック転送モード .........................351
バースト転送モード ............................................ 352
転送要求
リソースの割込み要求を DMA 転送要求として
使用する場合の注意 ...................................... 360
転送抑止
優先度の高い割込み発生時の DMA 転送抑止
..........................................................................360
と
同期モード
同期モード ( 動作モード 2) 時の動作 ................ 332
動作
8 ビット× 2 チャネル ,16 ビット× 1 チャネル動作
..........................................................................184
動作モード
同期モード ( 動作モード 2) 時の動作 ................ 332
動作モード .............................................................. 66
非同期モード ( 動作モード 0,1) 時の動作 ......... 329
トラップ
コプロセッサエラートラップ ..............................64
コプロセッサ不在トラップ ..................................63
な
内部
内部アーキテクチャ .............................................. 29
内部クロック
内部クロック動作 ................................................192
内部タイマ
内部タイマ (16 ビットリロードタイマ 0) による
ボーレート ......................................................324
内部レジスタ
DMAC 内部レジスタへの転送動作 ...................361
索引
に
系統参考図
クロック系統参考図 ...............................................86
入出力回路形式
入出力回路形式 .......................................................17
入出力ポート
オープンドレイン出力機能 , プルアップ抵抗付き
入出力ポートのブロックダイヤグラム
...........................................................................153
オープンドレイン出力付き入出力ポートの
ブロックダイヤグラム ..................................155
プルアップ抵抗付き入出力ポートの
ブロックダイヤグラム ..................................152
入力タイミング
16ビットインプットキャプチャの入力タイミング
..........................................................................239
は
バースト転送
バースト転送 .........................................................356
バースト転送モード
バースト転送モード .............................................352
ハードウェア構成
ハードウェア構成 .................................................265
割込みコントローラのハードウェア構成 .........254
ハーフワードアクセス
ハーフワードアクセス .........................................129
バイトアクセス
バイトアクセス .....................................................130
バイトオーダリング
バイトオーダリング ...............................................46
バス
バス権解放 .............................................................144
バス権獲得 .............................................................144
バスアクセス
外部バスアクセス .................................................120
通常バスアクセス .................................................132
ビッグエンディアンのバスアクセス .................116
リトルエンディアンのバスアクセス .................116
バスインタフェース
バスインタフェース ...............................................99
バスインタフェースの特長 ...................................98
バスインタフェースのブロックダイヤグラム
..........................................................................100
バスインタフェースのレジスタ構成 .................101
バス権解放
バス権解放 .............................................................144
バス権獲得
バス権獲得 .............................................................144
バスリクエスト
外部バスリクエスト .............................................132
汎用レジスタ
汎用レジスタ ...........................................................40
ひ
比較演算命令
比較演算命令 .........................................................430
ビッグエンディアン
ビッグエンディアンとリトルエンディアンの
外部アクセスの比較 ...................................... 116
ビッグエンディアンのバスアクセス ................ 116
リトルエンディアンとビッグエンディアンの
相違点 .............................................................. 124
ビットオーダリング
ビットオーダリング .............................................. 46
ビットサーチモジュール
ビットサーチモジュールのブロックダイヤグラム
..........................................................................372
ビットサーチモジュールのレジスタ一覧
..........................................................................372
ビット操作命令
ビット操作命令 ....................................................431
非同期モード
非同期モード ( 動作モード 0,1) 時の動作
..........................................................................329
ふ
フォーマット
データフォーマット ....................................118, 125
命令フォーマット ................................................428
複数チャネル
ジェネラルコントロールレジスタを使った
複数チャネルの起動 ...................................... 220
復帰
退避・復帰の処理 ................................................377
フラグ
カウント方向転換フラグ .................................... 184
カウント方向フラグ ............................................ 184
コンペア検出フラグ ............................................ 184
フラグセット
受信割込み発生とフラグセットのタイミング
..........................................................................317
送信割込み発生とフラグセットのタイミング
..........................................................................318
フリーランタイマ
16ビットフリーランタイマのカウントタイミング
..........................................................................236
16 ビットフリーランタイマのクリアタイミング
..........................................................................236
16 ビットフリーランタイマの動作説明 ........... 235
プルアップ抵抗
オープンドレイン出力機能 , プルアップ抵抗付き
入出力ポートのブロックダイヤグラム
..........................................................................153
プルアップ抵抗付き入出力ポートの
ブロックダイヤグラム ..................................152
プルアップ抵抗制御レジスタ
プルアップ抵抗制御レジスタ (PCR) ................. 160
プルアップ抵抗付き入出力ポート
オープンドレイン出力機能 , プルアップ抵抗付き
入出力ポートのブロックダイヤグラム
..........................................................................153
プルアップ抵抗付き入出力ポートの
ブロックダイヤグラム ..................................152
プログラミングモデル
基本プログラミングモデル ..................................40
プログラム
外部バス動作のプログラム例 ............................147
453
索引
プログラム以外のリセット延期要因 ...................80
プログラム例の仕様 .............................................146
プログラムアクセス
プログラムアクセス ...............................................47
ブロックダイヤグラム
16ビットリロードタイマのブロックダイヤグラム
..........................................................................187
8/10 ビット A/D コンバータの端子の
ブロックダイヤグラム ..................................274
8/10 ビット A/D コンバータの
ブロックダイヤグラム ..................................271
8/16 ビットアップダウンカウンタ / タイマの
ブロックダイヤグラム ..................................166
8 ビット D/A コンバータのブロックダイヤグラム
..........................................................................291
DMA コントローラのブロックダイヤグラム
..........................................................................341
MB91V151A,MB91151A のブロックダイヤグラム
..............................................................................4
PPG タイマ 1 チャネル分のブロックダイヤグラム
..........................................................................200
PPG タイマ全体のブロックダイヤグラム ........199
UART の端子のブロックダイヤグラム .............303
UART のブロックダイヤグラム .........................300
ウォッチドッグ制御部のブロックダイヤグラム
............................................................................79
オープンドレイン出力機能 , プルアップ抵抗付き
入出力ポートのブロックダイヤグラム
..........................................................................153
オープンドレイン出力付き入出力ポートの
ブロックダイヤグラム ..................................155
外部割込み制御部のブロックダイヤグラム
..........................................................................242
各ポートのブロックダイヤグラム .....................150
ギア制御部のブロックダイヤグラム ...................81
基本入出力ポートのブロックダイヤグラム
..........................................................................151
クロック発生部のブロックダイヤグラム ...........69
ストップ制御部のブロックダイヤグラム ...........89
スリープ制御部のブロックダイヤグラム ...........92
多機能タイマのブロックダイヤグラム .............224
遅延割込みモジュールのブロックダイヤグラム
..........................................................................250
バスインタフェースのブロックダイヤグラム
..........................................................................100
ビットサーチモジュールのブロックダイヤグラム
..........................................................................372
プルアップ抵抗付き入出力ポートの
ブロックダイヤグラム ..................................152
リセット要因保持回路のブロックダイヤグラム
............................................................................83
割込みコントローラのブロックダイヤグラム
..........................................................................255
ブロック転送
ステップ転送 ( シングル / ブロック転送 )
..........................................................................354
分岐
通常分岐 ( 遅延なし ) 命令 ..................................434
分岐マクロ命令
20 ビット遅延分岐マクロ命令 ............................438
20 ビット通常分岐マクロ命令 ............................437
32 ビット遅延分岐マクロ命令 ............................440
454
32 ビット通常分岐マクロ命令 ........................... 439
分岐命令
遅延スロット付き分岐命令 ..................................51
遅延スロット付き分岐命令の制限事項 ..............52
遅延スロット付き分岐命令の動作 ...................... 51
遅延スロットなし分岐命令 ..................................53
遅延スロットなし分岐命令の動作 ...................... 53
遅延分岐命令 ........................................................ 435
へ
ベクタテーブル
ベクタテーブル ......................................................57
ベクタテーブル初期領域 ...................................... 48
変化点検出
変化点検出 ............................................................ 376
変化点検出用データレジスタ
変化点検出用データレジスタ (BSDC) ..............374
変換モード
8/10 ビット A/D コンバータの変換モード
..........................................................................270
単発変換モードの動作 ........................................ 284
停止変換モードの動作 ........................................ 286
連続変換モードの動作 ........................................ 285
変数
初期値付き変数の配置 ........................................ 418
ほ
ポート
各ポートのブロックダイヤグラム .................... 150
ポートデータレジスタ
ポートデータレジスタ (PDR) ............................. 156
ホールドリクエスト取下げ要求
ホールドリクエスト取下げ要求 (Hold Request
Cancel Request) の発生基準 ........................... 264
ホールドリクエスト取下げ要求シーケンス
..........................................................................266
ホールドリクエスト取下げ要求の設定可能な
レベル .............................................................. 264
ホールドリクエスト取下げ要求レベル設定レジスタ
ホールドリクエスト取下げ要求レベル設定レジス
タ (HRCL:Hold Request Cancel Level register)
........................................................................... 259
ボーレート
UART ボーレート選択 ........................................ 319
UART ボーレート選択回路 ................................320
外部クロックによるボーレート ........................ 326
専用ボーレートジェネレータによるボーレート
..........................................................................321
内部タイマ (16 ビットリロードタイマ 0) による
ボーレート ......................................................324
ボーレートジェネレータ
専用ボーレートジェネレータによるボーレート
..........................................................................321
ボーレート選択回路
UART ボーレート選択回路 ................................320
本体構成
本体構成 .................................................................. 32
索引
ま
も
マスタ / スレーブ型通信
マスタ / スレーブ型通信機能 .............................336
モード
DREC 信号のセンスモード ................................. 353
アップ / ダウンカウントモード .........................177
アドレッシングモードの記号 ............................426
位相差カウントモード (2 逓倍 /4 逓倍 ) ............178
エッジモード時の注意事項 ................................358
カウントモード選択 ............................................ 177
各動作モードの状態 .............................................. 35
各モードでのライトサイクルタイミング
..........................................................................139
各モードでのリードサイクルタイミング
..........................................................................137
シリアル起動の通信モード ................................387
シングル / ブロック転送モード .........................351
スリープモード中の DMA 転送動作 ................. 361
タイマモード〔ダウンカウント〕...................... 177
同期モード ( 動作モード 2) 時の動作 ................ 332
動作モード .............................................................. 66
バースト転送モード ............................................ 352
非同期モード ( 動作モード 0,1) 時の動作
..........................................................................329
モード端子 .............................................................. 66
モードデータ .......................................................... 66
リクエストのセンスと各転送モードの組合せ
..........................................................................353
レベルモード時の注意事項 ................................357
連続転送モード ....................................................351
連続転送モードでの転送停止 ( いずれか一方の
アドレスは固定である場合 ),
16/8 ビットデータ .......................................... 366
連続転送モードでの転送停止 ( 両方のアドレスが
変化する場合 ),16/8 ビットデータ ............... 367
モード端子
モード端子 .............................................................. 66
モードデータ
モードデータ .......................................................... 66
モードレジスタ
モードレジスタ (SMR0 ∼ SMR3) ...................... 307
文字列操作関数
文字列操作関数使用時の -K lib オプションの指定
..........................................................................419
文字列操作関数を使った文字型配列以外の操作
..........................................................................419
モニタデバッガ
エミュレータデバッガ / モニタデバッガ
..........................................................................424
み
未定義命令
未定義命令例外の動作 ...........................................63
め
命令
20 ビット遅延分岐マクロ命令 ............................438
20 ビット通常分岐マクロ命令 ............................437
32 ビット遅延分岐マクロ命令 ............................440
32 ビット通常分岐マクロ命令 ............................439
FR ファミリの命令一覧表 ...................................429
INTE 命令の動作 .....................................................62
INT 命令の動作 .......................................................62
RETI 命令の動作 .....................................................64
加減算命令 .............................................................430
コプロセッサ制御命令 .........................................441
シフト命令 .............................................................432
乗除算命令 .............................................................431
即値セット /16 ビット /32 ビット即値転送命令
..........................................................................432
その他の命令 .........................................................436
ダイレクトアドレッシング命令 .........................441
遅延スロット付き分岐命令 ...................................51
遅延スロット付き分岐命令の制限事項 ...............52
遅延スロット付き分岐命令の動作 .......................51
遅延スロットなし分岐命令 ...................................53
遅延スロットなし分岐命令の動作 .......................53
遅延分岐命令 .........................................................435
通常分岐 ( 遅延なし ) 命令 ..................................434
比較演算命令 .........................................................430
ビット操作命令 .....................................................431
未定義命令例外の動作 ...........................................63
命令一覧表の読み方 .............................................425
命令概要 ...................................................................49
メモリストア命令 .................................................433
メモリロード命令 .................................................432
リソース命令 .........................................................441
レジスタ間転送命令 .............................................433
論理演算命令 .........................................................430
命令キャッシュ
命令キャッシュのキャッシュ可能領域 ...............37
命令フォーマット
命令フォーマット .................................................428
メモリストア命令
メモリストア命令 .................................................433
メモリマップ
MB91151A のメモリマップ ..................................48
MB91V151A,MB91151A のメモリマップ ...........28
メモリロード命令
メモリロード命令 .................................................432
ゆ
ユーザ割込み
ユーザ割込みの動作 .............................................. 61
優先順位
EIT 要因受理の優先順位 .......................................59
優先順位判定
優先順位判定 ........................................................ 260
優先度
優先度の高い割込み発生時の DMA 転送抑止
..........................................................................360
455
索引
よ
ライトサイクルタイミング
各モードでのライトサイクルタイミング
..........................................................................139
基本ライトサイクルタイミング .........................135
ラッチアップ
ラッチアップ防止 ...................................................22
リトルエンディアンのバスアクセス ................ 116
リトルエンディアンレジスタ
リトルエンディアンレジスタ (LER) ................. 115
リロード
リロード / コンペア機能 .....................................180
リロード / コンペア機能同時起動時 ................. 181
リロード / コンペアレジスタ
リロード / コンペアレジスタ 0/1(RCR 0,RCR1)
..........................................................................176
リロード機能
リロード機能起動時 ............................................ 180
リロードタイマ
内部タイマ (16 ビットリロードタイマ 0) による
ボーレート ......................................................324
り
れ
リード / ライト混在サイクルタイミング
リード / ライト混在サイクルタイミング
..........................................................................141
リードサイクルタイミング
各モードでのリードサイクルタイミング
..........................................................................137
基本リードサイクルタイミング .........................133
リクエスト
リクエストのセンスと各転送モードの組合せ
..........................................................................353
リセット
外部リセット入力について ...................................24
プログラム以外のリセット延期要因 ...................80
リセットシーケンス ...............................................65
リセットによる初期化 ...........................................65
リセット発生延期 ...................................................80
リセット要因 ...........................................................65
例外
未定義命令例外の動作 .......................................... 63
レジスタ間転送命令
レジスタ間転送命令 ............................................ 433
レベルマスク
割込みに対するレベルマスク ..............................55
レベルモード
レベルモード時の注意事項 ................................357
連続転送
連続転送 ................................................................ 355
連続転送モード
連続転送モード ....................................................351
連続転送モードでの転送停止 ( いずれか一方の
アドレスは固定である場合 ),
16/8 ビットデータ .......................................... 366
連続転送モードでの転送停止 ( 両方のアドレスが
変化する場合 ),16/8 ビットデータ ............... 367
リセット要因保持回路のブロックダイヤグラム
............................................................................83
リセット延期要因
プログラム以外のリセット延期要因 ...................80
リセットシーケンス
リセットシーケンス ...............................................65
リセット発生延期
リセット発生延期 ...................................................80
リセット要因
リセット要因 ...........................................................65
リセット要因保持回路
リセット要因保持回路のブロックダイヤグラム
............................................................................83
リセット要因レジスタ
リセット要因レジスタ (RSRR) とウォッチドッグ
周期制御レジスタ (WTCR) .............................70
リソース
リソースの割込み要求を DMA 転送要求として
使用する場合の注意 ......................................360
リソース命令
リソース命令 .........................................................441
リトルエンディアン
スタックのリトルエンディアン領域への配置
..........................................................................420
ビッグエンディアンとリトルエンディアンの
外部アクセスの比較 ......................................116
リトルエンディアンとビッグエンディアンの
相違点 ..............................................................124
連続変換モード
連続変換モードの動作 ........................................ 285
要求レベル
外部割込み要求レベル .........................................248
ら
456
ろ
論理演算命令
論理演算命令 ........................................................ 430
わ
ワードアクセス
ワードアクセス ....................................................128
割込み
8/10 ビット A/D コンバータの割込み ............... 283
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) ................................. 218
UART に関連する割込み .................................... 316
受信割込み発生とフラグセットのタイミング
..........................................................................317
送信割込み発生とフラグセットのタイミング
..........................................................................318
ユーザ割込みの動作 .............................................. 61
優先度の高い割込み発生時の DMA 転送抑止
..........................................................................360
リソースの割込み要求を DMA 転送要求として
使用する場合の注意 ...................................... 360
索引
割込みスタック .......................................................56
割込みに対するレベルマスク ...............................55
割込み番号 .............................................................252
割込み要因の解除 .................................................262
割込みレベル ...........................................................55
割込み許可レジスタ
割込み許可レジスタ (ENIR0,ENIR1:
ENable Interrupt request Register n) ................244
割込みコントローラ
割込みコントローラの主要機能 .........................254
割込みコントローラのハードウェア構成
..........................................................................254
割込みコントローラのブロックダイヤグラム
..........................................................................255
割込みスタック
割込みスタック .......................................................56
割込み制御
割込み制御のレジスタ一覧 .................................256
割込み制御レジスタ
割込み制御レジスタ
(ICR00 ∼ ICR47:Interrupt Control Register)
..........................................................................258
割込みベクタ
割込みベクタ ........................................................ 407
割込み要因
PWM タイマの割込み要因とタイミングチャート
(PWM 出力 : 通常極性 ) ................................. 218
割込み要因の解除 ................................................262
割込み要求
リソースの割込み要求を DMA 転送要求として
使用する場合の注意 ...................................... 360
割込みレベル
割込みレベル .......................................................... 55
ワンショット動作
ワンショット動作 ................................................216
457
索引
458
CM71-10116-2
富士通半導体デバイス・CONTROLLER MANUAL
FR30
32 ビット・マイクロコントローラ
MB91151A Series
ハードウェアマニュアル
2006 年 8 月 第 2 版発行
発行
富士通株式会社
編集
営業推進統括部 営業推進部
電子デバイス事業本部
Similar pages