7.9MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10114-4
FR60
32 ビット・マイクロコントローラ
MB91301 シリーズ
ハードウェアマニュアル
FR60
32 ビット・マイクロコントローラ
MB91301 シリーズ
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を
リストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
MB91301 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理
が要求される組込み制御用に各種 I/O リソースやバス制御機構 , さらに SDRAM が直結
可能な SDRAM I/F を内蔵した , 標準マイクロコントローラです。32 ビット CPU がア
クセスする広大なアドレス空間をサポートするために,外部バスアクセスが基本となっ
ていますが , CPU の命令実行を高速化するために 4K バイトの命令キャッシュメモリと
4K バイトの RAM ( データ用 ) を内蔵しています。
デジタルビデオカメラ , ナビゲーションシステム , DVD プレイヤ等 , 高性能な CPU 処
理パワーを要求される組込み用途に最適な仕様となっています。
MB91301 シリーズは , FR30/40 CPU をベースにバスアクセスの強化を行い , より高速で
の使用に対応した FR60 です。
本書は , 実際に MB91301 シリーズを使用して製品を開発される技術者を対象に ,
MB91301 シリーズの機能や動作について解説したものです。本書をご一読ください。
なお,各種命令の詳細については,「インストラクションマニュアル」をご参照ください。
■ 商標
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
SOFTUNE は , 富士通株式会社の商標です。
REALOS は , 富士通株式会社の商標です。
TRON は , "The Realtime Operating System Nucleus" の略称です。
ITRON は , "Industrial TRON" の略称です。
µITRON は , "Micro Industrial TRON" の略称です。
■ ライセンス
本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使
用されることを条件に , Philips 社 I2C 特許がライセンスされております。
Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to
use, these components in an I2C system provided that the system conforms to the I2C Standard
Specification as defined by Philips.
i
■ 本書の全体構成
本書は , 以下に示す 20 の章および付録から構成されています。
第 1 章 概要
この章では , MB91301 シリーズの特長 , ブロックダイヤグラム , 機能概要など全体
を知るための基本的なことがらについて説明します。
第 2 章 デバイスの取扱いについて
MB91301 シリーズの取扱いに関して , 端子処理のしかたや , 電源の取扱いの注意な
どについて説明します。
第 3 章 CPU および制御部
この章では , MB91301 シリーズの機能を知るために , アーキテクチャ, 仕様 , 命令な
どの基本的なことについて説明します。
第 4 章 外部バスインタフェース
この章では , 外部バスインタフェースの基本事項 , レジスタ構成 / 機能 , 外部バスの
動作および外部バスの各種タイミングについて説明します。
第 5 章 I/O ポート
この章では , I/O ポートの概要およびレジスタ構成 / 機能について説明します。
第 6 章 16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レジスタの構成 / 機能および 16 ビッ
トリロードタイマの動作について説明します。
第 7 章 PPG タイマ
この章では , PPG タイマの概要 , レジスタの構成 / 機能および PPG タイマの動作に
ついて説明します。
第 8 章 U-TIMER
この章では, U-TIMERの概要,レジスタの構成,機能および動作について説明します。
第 9 章 外部割込み /NMI 制御部
この章では , 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能および動作につ
いて説明します。
第 10 章 遅延割込みモジュール
この章では , 遅延割込みモジュールの機能と動作について説明します。
第 11 章 割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 割込みコントロー
ラの動作およびホールドリクエスト取下げ要求機能の使用例について説明します。
第 12 章 A/D コンバータ
この章では , A/D コンバータの概要 , レジスタの構成 / 機能および A/D コンバータ
の動作について説明します。
第 13 章 UART
この章では , UART の概要 , レジスタの構成 / 機能および UART の動作について説
明します。
ii
第 14 章 DMA コントローラ (DMAC)
この章では , DAM コントローラ (DMAC) の概要 , レジスタの構成 / 機能および DMA
コントローラ (DMAC) の動作について説明します。
第 15 章 ビットサーチモジュール
この章では , ビットサーチモジュールの概要 , レジスタ構成 / 機能およびビットサー
チモジュールの動作について説明します。
第 16 章 I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタの構成 / 機能および I2C インタ
フェースの動作について説明します。
第 17 章 16 ビットフリーランタイマ
この章では , 16 ビットフリーランタイマの概要 , レジスタの構成 / 機能および 16
ビットフリーランタイマの動作について説明します。
第 18 章 インプットキャプチャ
この章では , インプットキャプチャの概要 , レジスタの構成 / 機能およびインプット
キャプチャの動作について説明します。
第 19 章 プログラムローダモード< MB91302A (IPL 内蔵版 ) のみ対応>
この章では , プログラムローダモードの概要 , 設定方法 , 動作について説明します。
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
この章では , MB91302A-010 の特徴や開発方法について説明します。
付 録
付録として , I/O マップ , 割込みベクタ , CPU ステートでの端子状態 , リトルエンディ
アン領域を利用するときの注意事項および命令一覧について , 本文に記載できな
かった細かいことや , プログラミングするときに参照することがらを記載していま
す。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright ©2002-2006 FUJITSU LIMITED All rights reserved.
iv
本書の読み方
■ 本書の記述形式
以下に本書で使用する主要な用語に関しての説明を示します。
用語
意味
I-bus
内部インストラクション用の 32 ビット幅のバスです。FR ファミリは ,
内部ハーバードアーキテクチャを採用しているため , 命令とデータは独
立したバスです。I-bus には , バスコンバータが接続されます。
D-bus
内部 32 ビット幅のデータバスです。D-bus には , 内部リソースが接続さ
れます。
F-bus
内部命令 , データがマルチプレクスされたプリンストンバスです。ス
イッチを通して I-bus と D-bus に接続されます。F-bus には , ROM, RAM
等の内蔵リソースが接続されます。
X-bus
外部インタフェースバスです。X-bus には外部インタフェースモジュー
ルが接続されます。外部データバスは , データと命令がマルチプレクス
されます。
R-bus
内部 16 ビット幅のデータバスです。R-bus は , アダプタを通して F-bus
に接続されます。
R-bus には , 各種 I/O, クロック発生部 , 割込みコントローラが接続され
ます。
R-bus は 16 ビット幅でかつアドレス , データがマルチプレクスされるた
め , CPU がこれらのリソースにアクセスする場合 , 複数サイクルの時間
が掛かります。
E-unit
演算実行ユニットです。
CLKP
システムクロックです。R-bus につながる各内蔵リソースに対してク
ロック発生部から出力されるクロックです。最速で原発振と同周期です
が , クロック発生部 DIVR0 レジスタの B3 ∼ B0 で 1, 1/2, 1/3, 1/4, 1/5,
1/6, 1/7,…1/16 ( または , 1/2, 1/4, 1/6…1/32) に分周されたクロックとなり
ます。
CLKB
システムクロックです。R-bus, X-bus 以外のバスに接続されるリソース
と CPU の動作クロックです。最速で原発振と同周期ですが , クロック
発生部 DIVR0 レジスタの P3 ∼ P0 で 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, …1/16
( または , 1/2, 1/4, 1/6…1/32) に分周されたクロックとなります。
CLKT
システムクロックです。X-bus に接続される外部バスインタフェースの
動作クロックです。最速で原発信と同周期ですが , クロック発生部
DIVR1 レジスタの T3 ∼ T0 で , 1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, …1/16 ( また
は , 1/2, 1/4, 1/6…1/32) に分周されたクロックとなります。
v
vi
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
第2章
2.1
2.2
第3章
概要 ............................................................................................................ 1
MB91301 シリーズの特長 ...................................................................................................... 2
ブロックダイヤグラム............................................................................................................ 7
外形寸法図.............................................................................................................................. 8
端子配列 ............................................................................................................................... 11
端子番号対応表 .................................................................................................................... 13
端子機能一覧 ........................................................................................................................ 16
入出力回路形式 .................................................................................................................... 28
デバイスの取扱いについて ...................................................................... 33
デバイスの取扱い上の注意................................................................................................... 34
電源に関する取扱い上の注意 ............................................................................................... 41
CPU および制御部 ................................................................................... 43
3.1 メモリ空間............................................................................................................................ 44
3.2 内部アーキテクチャ ............................................................................................................. 46
3.3 命令キャッシュ .................................................................................................................... 51
3.3.1
命令キャッシュの構成 ............................................................................................... 52
3.3.2
制御レジスタ構成....................................................................................................... 55
3.3.3
命令キャッシュの状態と設定..................................................................................... 59
3.3.4
命令キャッシュを使用する場合の設定方法 ............................................................... 61
3.4 専用レジスタ ........................................................................................................................ 63
3.4.1
プログラムステータスレジスタ (PS) ......................................................................... 66
3.5 汎用レジスタ ........................................................................................................................ 70
3.6 データ構造............................................................................................................................ 71
3.7 ワードアライメント ............................................................................................................. 72
3.8 メモリマップ ........................................................................................................................ 73
3.9 分岐命令 ............................................................................................................................... 74
3.9.1
遅延スロット付き分岐命令の動作.............................................................................. 75
3.9.2
遅延スロットなし分岐命令の動作.............................................................................. 77
3.10 EIT ( 例外 , 割込み , トラップ ) ............................................................................................. 78
3.10.1
EIT の割込みレベル.................................................................................................... 79
3.10.2
割込み制御レジスタ (ICR).......................................................................................... 81
3.10.3
システムスタックポインタ (SSP).............................................................................. 82
3.10.4
テーブルベースレジスタ (TBR) ................................................................................. 83
3.10.5
多重 EIT 処理.............................................................................................................. 86
3.10.6
EIT の動作 .................................................................................................................. 88
3.11 リセット ( デバイスの初期化 ) ............................................................................................. 92
3.11.1
リセットレベル .......................................................................................................... 93
3.11.2
リセット要因 .............................................................................................................. 94
3.11.3
リセットシーケンス ................................................................................................... 96
3.11.4
発振安定待ち時間....................................................................................................... 97
3.11.5
リセット動作モード ................................................................................................... 99
3.12 クロック発生制御 ............................................................................................................... 101
3.12.1
PLL 制御 ................................................................................................................... 102
vii
3.12.2
発振安定待ち /PLL ロック待ち時間.......................................................................... 104
3.12.3
クロック分配 ............................................................................................................ 105
3.12.4
クロック分周 ............................................................................................................ 107
3.12.5
クロック発生制御部のブロックダイヤグラム.......................................................... 108
3.12.6
クロック発生制御部のレジスタ ............................................................................... 109
3.12.7
クロック制御部がもつ周辺回路 ............................................................................... 125
3.12.8
クロックの滑らかな起動と停止 ............................................................................... 128
3.13 デバイス状態制御 ............................................................................................................... 131
3.13.1
デバイス状態と各遷移 ............................................................................................. 132
3.13.2
低消費電力モード..................................................................................................... 135
3.14 動作モード.......................................................................................................................... 139
第4章
外部バスインタフェース........................................................................ 143
4.1 外部バスインタフェースの概要 ......................................................................................... 144
4.2 外部バスインタフェースのレジスタ .................................................................................. 149
4.2.1
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)............................................................... 150
4.2.2
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) .............................................................. 152
4.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR7) ................................................................ 160
4.2.4
メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )(MCRA)
................................................................................................................................. 170
4.2.5
メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB) ............ 173
4.2.6
DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) .................................................. 174
4.2.7
チップセレクト領域許可レジスタ (CSER) .............................................................. 177
4.2.8
キャッシュ取込み許可レジスタ (CHER).................................................................. 179
4.2.9
端子 / タイミングコントロールレジスタ (TCR)....................................................... 180
4.2.10
リフレッシュコントロールレジスタ (RCR)............................................................. 183
4.3 チップセレクト領域の設定例 ............................................................................................. 187
4.4 エンディアンとバスアクセス ............................................................................................. 188
4.4.1
ビッグエンディアンのバスアクセス ........................................................................ 190
4.4.2
リトルエンディアンのバスアクセス ........................................................................ 197
4.4.3
ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 202
4.5 通常バスインタフェースの動作 ......................................................................................... 209
4.5.1
基本タイミング ........................................................................................................ 210
4.5.2
WRn+ バイト制御タイプの動作 ............................................................................... 211
4.5.3
読出し→書込み動作 ................................................................................................. 213
4.5.4
書込み→書込み動作 ................................................................................................. 214
4.5.5
自動ウェイトサイクル ............................................................................................. 215
4.5.6
外部ウェイトサイクル ............................................................................................. 216
4.5.7
同期書込みイネーブル出力 ...................................................................................... 217
4.5.8
CSn 遅延設定 ........................................................................................................... 219
4.5.9
CSn → RD/WRn セットアップおよび RD/WRn → CSn ホールド設定.................... 220
4.5.10
DMA フライバイ転送 (I/O →メモリ ) ....................................................................... 221
4.5.11
DMA フライバイ転送 ( メモリ→ I/O) ....................................................................... 222
4.6 バーストアクセスの動作 .................................................................................................... 223
4.7 アドレス / データマルチプレクスインタフェース ............................................................. 225
4.8 プリフェッチ動作 ............................................................................................................... 229
4.9 SDRAM/FCRAM インタフェースの動作 ............................................................................ 233
4.9.1
セルフリフレッシュ ................................................................................................. 236
4.9.2
パワーオンシーケンス ............................................................................................. 237
viii
4.9.3
複数領域への SDRAM/FCRAM 接続 ........................................................................ 238
4.9.4
アドレスマルチプレクスフォーマット .................................................................... 239
4.9.5
メモリ接続例 ............................................................................................................ 240
4.10 DMA アクセス動作 ............................................................................................................. 244
4.10.1
DMA フライバイ転送 (I/O →メモリ ) ....................................................................... 245
4.10.2
DMA フライバイ転送 ( メモリ→ I/O) ....................................................................... 247
4.10.3
DMA フライバイ転送 (I/O → SDRAM/FCRAM) ....................................................... 249
4.10.4
DMA フライバイ転送 (SDRAM/FCRAM → I/O) ....................................................... 251
4.10.5
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) ......................................................... 255
4.10.6
2 サイクル転送 ( 外部→ I/O) .................................................................................... 256
4.10.7
2 サイクル転送 (I/O →外部 ) .................................................................................... 257
4.10.8
2 サイクル転送 (I/O → SDRAM/FCRAM)................................................................. 258
4.10.9
2 サイクル転送 (SDRAM/FCRAM → I/O)................................................................. 259
4.11 バスアービトレーション .................................................................................................... 260
4.12 レジスタの設定手順 ........................................................................................................... 262
4.13 外部バスインタフェースの使用上の注意 ........................................................................... 263
第5章
5.1
5.2
第6章
I/O ポート............................................................................................... 265
I/O ポートの概要 ................................................................................................................ 266
I/O ポートのレジスタ ......................................................................................................... 268
16 ビットリロードタイマ ...................................................................... 277
6.1 16 ビットリロードタイマの概要 ........................................................................................ 278
6.2 16 ビットリロードタイマのレジスタ................................................................................. 279
6.2.1
コントロールステータスレジスタ (TMCSR) ........................................................... 280
6.2.2
16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2).................................................... 284
6.2.3
16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) .................................. 285
6.3 16 ビットリロードタイマの動作 ........................................................................................ 286
6.4 カウンタの動作状態 ........................................................................................................... 288
6.5 16 ビットリロードタイマの使用上の注意.......................................................................... 289
第7章
PPG タイマ ............................................................................................ 291
7.1 PPG タイマの概要.............................................................................................................. 292
7.2 PPG タイマのブロックダイヤグラム................................................................................. 293
7.3 PPG タイマのレジスタ ...................................................................................................... 294
7.3.1
コントロールステータスレジスタ
(PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0 ∼ PCNL3) .................................................. 295
7.3.2
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3)................................................. 300
7.3.3
PPG デューティ設定レジスタ (PDUT:PDUT0 ∼ PDUT3) ...................................... 301
7.3.4
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3).................................................... 302
7.3.5
ゼネラルコントロールレジスタ 10 (GCN10)........................................................... 303
7.3.6
ゼネラルコントロールレジスタ 20 (GCN20)........................................................... 306
7.4 PPG 動作 ............................................................................................................................ 307
7.5 ワンショット動作 ............................................................................................................... 308
7.6 割込み要因とタイミングチャート...................................................................................... 309
7.7 ゼネラルコントロールレジスタを使った複数チャネル起動 .............................................. 311
7.8 PPG タイマの使用上の注意 ............................................................................................... 313
ix
第8章
8.1
8.2
8.3
U-TIMER ................................................................................................ 315
U-TIMER の概要 ................................................................................................................. 316
U-TIMER のレジスタ.......................................................................................................... 317
U-TIMER の動作 ................................................................................................................. 321
第9章
外部割込み /NMI 制御部 ......................................................................... 323
9.1 外部割込み /NMI 制御部の概要........................................................................................... 324
9.2 外部割込み /NMI 制御部のレジスタ.................................................................................... 325
9.2.1
割込み許可レジスタ (ENIR) ..................................................................................... 326
9.2.2
外部割込み要因レジスタ (EIRR) .............................................................................. 327
9.2.3
外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 328
9.3 外部割込み /NMI 制御部の動作........................................................................................... 329
第 10 章
遅延割込みモジュール ........................................................................... 335
10.1 遅延割込みモジュールの概要 ............................................................................................. 336
10.2 遅延割込みモジュールのレジスタ...................................................................................... 337
10.3 遅延割込みモジュールの動作 ............................................................................................. 338
第 11 章
割込みコントローラ............................................................................... 339
11.1 割込みコントローラの概要................................................................................................. 340
11.2 割込みコントローラのレジスタ ......................................................................................... 341
11.2.1
割込み制御レジスタ (ICR)........................................................................................ 343
11.2.2
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL).................................. 344
11.3 割込みコントローラの動作................................................................................................. 345
11.4 ホールドリクエスト取下げ要求機能 (HRCR) の使用例 ..................................................... 351
第 12 章
A/D コンバータ ...................................................................................... 353
12.1 A/D コンバータの概要 ........................................................................................................ 354
12.2 A/D コンバータのレジスタ................................................................................................. 356
12.2.1
コントロールステータスレジスタ (ADCS) .............................................................. 357
12.2.2
データレジスタ (ADCR)........................................................................................... 363
12.2.3
変換結果レジスタ (ADCR0 ∼ ADCR3).................................................................... 364
12.3 A/D コンバータの動作 ........................................................................................................ 365
12.4 A/D コンバータ使用上の注意 ............................................................................................. 367
第 13 章
UART ..................................................................................................... 369
13.1 UART の概要 ...................................................................................................................... 370
13.2 UART のレジスタ ............................................................................................................... 372
13.2.1
シリアルモードレジスタ (SMR)............................................................................... 373
13.2.2
シリアルコントロールレジスタ (SCR) .................................................................... 375
13.2.3
シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ
(SODR).......................................................................................................................... 379
13.2.4
シリアルステータスレジスタ (SSR) ........................................................................ 380
13.3 UART の動作 ...................................................................................................................... 384
13.3.1
非同期 ( 調歩同期 ) モード........................................................................................ 386
13.3.2
CLK 同期モード........................................................................................................ 388
13.3.3
割込み発生およびフラグのセットタイミング.......................................................... 390
13.4 UART の使用例................................................................................................................... 394
13.5 ボーレートと U-TIMER のリロード値の設定例 ................................................................. 396
x
第 14 章
DMA コントローラ (DMAC) .................................................................. 397
14.1 DMA コントローラ (DMAC) の概要.................................................................................... 398
14.2 DMA コントローラ (DMAC) のレジスタ ............................................................................ 400
14.2.1
コントロール / ステータスレジスタ A(DMACA0 ∼ DMACA4)................................ 402
14.2.2
コントロール / ステータスレジスタ B(DMACB0 ∼ DMACB4)................................ 407
14.2.3
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
................................................................................................................................. 414
14.2.4
DMAC 全体制御レジスタ (DMACR)......................................................................... 416
14.2.5
その他の機能 ............................................................................................................ 418
14.3 DMA コントローラ (DMAC) の動作.................................................................................... 419
14.3.1
転送要求の設定 ........................................................................................................ 422
14.3.2
転送シーケンス ........................................................................................................ 423
14.3.3
DMA 転送全般 .......................................................................................................... 427
14.3.4
アドレッシングモード ............................................................................................. 429
14.3.5
データの種類 ............................................................................................................ 430
14.3.6
転送回数制御 ............................................................................................................ 431
14.3.7
CPU 制御.................................................................................................................. 432
14.3.8
ホールド調停 ............................................................................................................ 433
14.3.9
開始∼終了 / 停止までの動作.................................................................................... 434
14.3.10
DMAC 割込み制御 .................................................................................................... 438
14.3.11
チャネル選択と制御 ................................................................................................. 439
14.3.12
外部端子と内部動作タイミングに関する補足.......................................................... 441
14.4 動作フローチャート ........................................................................................................... 445
14.5 データバス.......................................................................................................................... 448
14.6 DMA 外部インタフェース .................................................................................................. 451
14.6.1
DREQx 端子の入力タイミング ................................................................................ 452
14.6.2
DACK の FR30 互換モード ...................................................................................... 454
第 15 章
ビットサーチモジュール........................................................................ 457
15.1 ビットサーチモジュールの概要 ......................................................................................... 458
15.2 ビットサーチモジュールのレジスタ .................................................................................. 459
15.3 ビットサーチモジュールの動作 ......................................................................................... 461
第 16 章
16.1
16.2
16.3
16.4
16.5
16.6
I2C インタフェースの概要.................................................................................................. 466
I2C インタフェースのレジスタ .......................................................................................... 467
I2C インタフェースのブロックダイヤグラム..................................................................... 469
レジスタの詳細 .................................................................................................................. 470
I2C インタフェースの動作.................................................................................................. 487
動作フローチャート ........................................................................................................... 492
第 17 章
17.1
17.2
17.3
17.4
17.5
17.6
I2C インタフェース ................................................................................ 465
16 ビットフリーランタイマ................................................................... 495
16 ビットフリーランタイマの概要 .................................................................................... 496
16 ビットフリーランタイマのレジスタ ............................................................................. 497
16 ビットフリーランタイマのブロックダイヤグラム........................................................ 498
レジスタの詳細 .................................................................................................................. 499
16 ビットフリーランタイマの動作 .................................................................................... 503
16 ビットフリーランタイマの注意事項 ............................................................................. 505
xi
第 18 章
18.1
18.2
18.3
18.4
18.5
第 19 章
19.1
19.2
19.3
19.4
リアルタイム OS 内蔵 MB91302A-010 使用手引き .............................. 531
概要 .................................................................................................................................... 532
メモリマップ ...................................................................................................................... 533
MB91302A-010 搭載の REALOS/FR の仕様 ...................................................................... 534
配置 .................................................................................................................................... 537
スタートアップルーチン .................................................................................................... 538
SOFTUNE Workbench と REALOS/FR の初期設定........................................................... 539
モード端子 , モードベクタ , リセットベクタ ..................................................................... 549
評価系 ................................................................................................................................. 553
付録
付録 A
付録 B
付録 C
付録 D
D.1
D.2
D.3
D.4
付録 E
E.1
索引
プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >........... 515
プログラムローダモードの概要 ......................................................................................... 516
プログラムローダの設定方法 ............................................................................................. 517
プログラムローダモードの動作説明 .................................................................................. 518
プログラムローダモードを利用した Flash メモリへの書込み例 ....................................... 529
第 20 章
20.1
20.2
20.3
20.4
20.5
20.6
20.7
20.8
インプットキャプチャ ........................................................................... 507
インプットキャプチャの概要 ............................................................................................. 508
インプットキャプチャのレジスタ...................................................................................... 509
インプットキャプチャのブロックダイヤグラム ................................................................ 510
レジスタの詳細 .................................................................................................................. 511
インプットキャプチャの動作 ............................................................................................. 513
................................................................................................................555
I/O マップ ....................................................................................................................... 556
割込みベクタ .................................................................................................................. 566
各 CPU ステートにおける端子状態 ............................................................................... 569
リトルエンディアン領域を利用する際の注意事項 ........................................................ 577
C コンパイラ (fcc911) ............................................................................................... 578
アセンブラ (fasm911) ............................................................................................... 581
リンカ (flnk911)......................................................................................................... 583
デバッガ (sim911, eml911, mon911) ........................................................................ 584
命令一覧 ......................................................................................................................... 585
FR ファミリの命令一覧表......................................................................................... 589
................................................................................................................605
xii
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
2
■ MB91301 シリーズの特長 の 表 を変更
(MB91301 の行を削除 )
6
■ 品種構成 を変更
(MB91301 および MB91V301 の 列 を削除 )
8
1.3 外形寸法図の要約 を変更
(MB91V301/V301A には 1 種類の ,MB91301/302A には 1 種類のパッケージが用意さ
れています。→ MB91301 シリーズには , 3 種類のパッケージが用意されています。)
13
表 1.5-1 Device:MB91V301A 端子番号対応表 Package:PGA-179C-A03 (1 / 3) 端子名
を変更
No.49(LABA → LBA)
13,14
表 1.5-1 Device:MB91V301A 端子番号対応表 Package:PGA-179C-A03 の備考 を変更
No.78(SDA0 は MB91V301A のみの記述を削除 )
No.79(SCL0 は MB91V301A のみの記述を削除 )
No.80(SDA1 は MB91V301A のみの記述を削除 )
No.81(SCL1 は MB91V301A のみの記述を削除 )
No.111(ICU0 は MB91V301A のみの記述を削除 )
No.112(ICU1 は MB91V301A のみの記述を削除 )
No.113(ICU2 は MB91V301A のみの記述を削除 )
No.114(ICU3 は MB91V301A のみの記述を削除 )
No.115(FRCK は MB91V301A のみの記述を削除 )
18
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (3 / 11) 端子番号 42 の 端子名と機能
を修正
(SWR → SWE)
34
■ 水晶発振回路について を変更
( 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。の
文を追加 )
36
・低消費電力モード を変更
( さらに,スタンバイ復帰後に,復帰要因である割込みハンドラへ分岐するように,
I フラグ,ILM,及び ICR を設定してください。の文を削除 )
45
図 3.1-1 メモリマップ を変更
( 図を差替え )
84,85
95
表 3.10-4 ベクタテーブル を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
(*:MB91301,MB91V301 ではシステム予約となります。の文を削除 )
■ ウォッチドッグリセット を変更
( ウォッチドッグリセット発生延期レジスタ (WPR) へ A5H/5AH 書込みが行われない
と , → タイムベースカウンタクリアレジスタ (CTBR) へ A5H/5AH 書込みが行われな
いと ,)
xiii
ページ
変更内容(詳細は本文を参照してください。)
101
■ クロック発生制御 を変更
( 表 3.12-4, 表 3.12-9, 表 3.12-13, 表 3.12-16, 表 3.12-20, 表 3.12-21, 表 3.12-22 に示して
ある φ は , ソースクロックを 2 分周または PLL 発振させた基本クロックを指しま
す。したがってシステムベースクロックは上記のベースクロックの発生のところで
生成されるクロックです。の文を追加 )
108
図 3.12-1 クロック発生制御部のブロックダイヤグラム を変更
( 図中 [ ウォッチドッグ制御部 ] を変更 )
112
<注意事項> を変更
118
■ タイムベースカウンタクリアレジスタ (CTBR) を変更
( ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリ
アしますので , これらの条件が発生すると , ウォッチドックリセットは自動的に延
期されます。ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合に
はウォッチドッグリセットは延期されませんので , 長時間外部バスをホールドする
場合は , スリープモードにしてからホールド要求 (BRQ) を入力してください。の文
を追加 )
120
■ウォッチドッグリセット発生延期レジスタ (WPR) を削除
125
[ ウォッチドッグリセットの発生延期 ] を変更
( ウォッチドッグリセット発生延期レジスタ (WPR) に対して "A5H","5AH" の順で
データを書き込む必要があります。→ タイムベースカウンタクリアレジスタ
(CTBR) に対して "A5H", "5AH" の順でデータを書き込む必要があります。)
135
[ スリープモードへの移行 ] を変更
137
■ ストップモード を変更
([ スリープモードへの移行 ] を追加 )
139
■ 動作モード を変更
( ※シングルチップ,内部 ROM 外部バスモードは MB91302A,MB91V301A のみ設定
できます。の文を削除 )
140
表 3.14-1 モード設定 を変更
( 表中の * と表下の * : シングルチップモードは MB91302A,MB91V301A のみ設定
可能です。の文を削除 )
141
表 3.14-2 内部 ROM イネーブルの機能 を変更
( 表中の *1 と表下の *1: 内部 ROM は MB91302A にのみ内蔵されています。の文を
削除 )
( 表中,表下の *2 → *)
表 3.14-3 バス幅指定の設定内容 を変更
(MB91302A,MB91V301A のみ設定可能です。の文を削除 )
151
■ 領域選択レジスタ (ASR0 ∼ ASR7) のビット機能 を変更
( 領域選択レジスタ (ASR0 ∼ ASR7) → 領域構成レジスタ (ACR0 ∼ ACR7) )
153
図 4.2-2 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成 を変更
( <注意事項>を追加 )
xiv
ページ
変更内容(詳細は本文を参照してください。)
212
■ WRn+ バイト制御タイプの動作タイミング を変更
(・書込みアクセスの場合 ,WR をアサートしたタイミングから D31 ∼ 0 にデータを
出力します。→ ・書込みアクセスの場合 , WR0 をアサートしたタイミングから D31
∼ D0 にデータを出力します。)
262
■ レジスタの設定手順 (2) の 2) および (4) の 3) を変更
(ASR と ACR をハーフワードでアクセスする場合には , ASR 設定後 ACR を設定し
てください。の文を追加 )
268
■ ポートデータレジスタ (PDR) の構成 を変更
(( 注意 ) MB91301,MB91V301 には PFR61 レジスタはありません。の文を削除 )
270
図 5.2-3 プルアップ抵抗制御レジスタ (PCR) の構成 を変更
(PCRG および PCRJ の図を削除 )
■ プルアップ抵抗制御レジスタ (PCR) の構成 を変更
(PCR0 ∼ PCR2,PCR6,PCR8 ∼ PCRB,PCRG,PCRH,PCRJ は , 対応する I/O ポートのプ
ルアップ抵抗制御を行います。→ PCR0 ∼ PCR2, PCR6, PCR8 ∼ PCRB, PCRH は , 対
応する I/O ポートのプルアップ抵抗制御を行います。)
(( 注意 ) MB91302A,MB91V301A には,PCRG レジスタおよび PCRJ レジスタはあ
りません。の文を削除 )
278
図 6.1-1 16 ビットリロードタイマのブロックダイヤグラム を変更
(16 ビットダウンカウンタ (TMR) UF → 16 ビットタイマレジスタ (TMR) UF)
317
<注意事項> を追加
321
<注意事項> を追加
329
■ 外部割込みの動作手順 を変更
(1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート
に設定する。の文を追加 )
330
■ 外部割込み要求レベル を変更
( 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま
す。また , 割込み入力端子がアクティブレベルを保持し続けている限りは , 要因レ
ジスタをクリアしても , 割込みコントローラへの割込み要求は発生し続けます。の
文を追加 )
332
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項 を追加
333
■ STOP 状態からの復帰動作について を追加
360
[bit7, bit6] MD1, MD0 (A/D converter MoDe set) の <注意事項> を変更
362
[bit2 ∼ bit0] ANE2, ANE1, ANE0 (ANalog End channel set) :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 の値が書き換わる可能性があ
ります。の文を追加 )
xv
ページ
変更内容(詳細は本文を参照してください。)
365
■ 単発変換モード を変更
( <注意事項> を追加 )
367
■ A/D コンバータ使用上の注意 を変更
(STS1,STS0 設定時は ,ATG=1 入力 , リロードタイマ ( チャネル 2)=0 出力の状態にし
てください。→ STS1, STS0 設定時は , ATG=1 入力 , リロードタイマ (ch.1)=0 出力の
状態にしてください。)
( ● A/D 変換の再起動について を追加 )
370
■ UART の特長 を変更
(・DRCL レジスタへの書込み動作による DMAC の割込み要因クリア の記述を削除 )
372
図 13.2-1 UART のレジスタ構成 および 図 13.2-2 UART のレジスタ一覧 を変更
(DRCL の部分 を削除 )
383
13.2.5 DRCL レジスタ の項を削除
399
図 14.1-1 DMA コントローラ (DMAC) のブロックダイヤグラム を変更
(DSAD 2 段レジスタ → DMASA 2 段レジスタ )
(DDAD 2 段レジスタ → DMADA 2 段レジスタ )
400
図 14.2-1 DMA コントローラ (DMAC) のレジスタ一覧 を変更
( 全体制御レジスタ (DMACR) → DMAC 全体制御レジスタ (DMACR))
402
[bit31] DENB (Dma ENaBle) :DMA 動作許可ビット を変更
(PUAS ビット → PAUS ビット )
404, 405
[bit28 ∼ bit24] IS4 ∼ IS0 (Input Select): 転送要因選択 の <注意事項> を変更
409
[bit25] SADM (So urce-ADdr. count-Mode select): 転送元アドレスカウントモード指定
を変更
( アドレスカウント幅 (SAAZ,DASZ) を "0" としてください。→ アドレスカウント幅
(SASZ, DASZ) を "0" としてください。)
424
■ デマンド転送 2 サイクル転送 を変更
( レベル選択は , DMACA の IS3 ∼ 0 で設定します。→ レベル選択は , DMACA の
IS4 ∼ IS0 で設定します。)
441,442
■デマンド転送要求を停止するために DREQ 端子を無効にするタイミングについて
を変更
469
図 16.3-1 I2C インタフェースのブロックダイヤグラムを変更
(FNSB → ENSB)
474
[bit12] MSS (Master Slave Select) を変更
( <注意事項> を追加 )
487
<注意事項> を変更
((DBL="1":IDAR or EN="0":ICCR)→ (DBL=1:IDBL or EN=0:ICCR))
521
● メインプログラム フローチャートを変更
( * UART0 設定について → * UART1 設定について )
529
19.4 プログラムローダモードを利用した Flash メモリへの書込み例 を変更
( ■ Flash メモリの配置 を追加 )
xvi
ページ
557, 561
変更内容(詳細は本文を参照してください。)
付表 A-1 I/O マップ の以下のレジスタの欄 を変更
(DRCL0, DRCL1, DRCL2, WPR)
565
付表 A-1 I/O マップ を変更
(*4: 予約レジスタです。アクセス禁止です。の文を追加 )
566
付表 B-1 割込みベクタ (1 / 3) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
570, 571
付表 C-1 外部バス 32 ビットモード時の端子状態 を変更
xvii
xviii
第1章
概要
MB91301 シリーズの特長 , ブロックダイヤグラム ,
機能概要など全体を知るための基本的なことがら
について説明します。
1.1 MB91301 シリーズの特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列
1.5 端子番号対応表
1.6 端子機能一覧
1.7 入出力回路形式
1
第 1 章 概要
1.1
MB91301 シリーズの特長
MB91301 シリーズは , 32 ビット RISC CPU (FR ファミリ ) をコアとし , 高性能 / 高
速な CPU 処理を要求される組込み制御用に各種 I/O リソースやバス制御機構 , さら
に , SDRAM が直結可能な SDRAM I/F を内蔵したマイクロコントローラです。
32 ビット CPU がアクセスする広大なアドレス空間をサポートするために , 外部バス
アクセスが基本となっていますが , CPU の命令実行を高速化するために 4K バイト
の命令キャッシュメモリと 4K バイトの RAM ( データ用 ) を内蔵しています。
MB91301 シリーズは , FR30/40 CPU をベースにバスアクセスの強化を行い , より高
速での使用に対応した FR60 です。デジタルビデオカメラ , ナビゲーションシステム ,
DVD プレーヤなど , 高性能な CPU 処理パワーを要求される組込み用途に最適な仕様
となっています。
■ MB91301 シリーズの特長
MB91301 シリーズでは , 内蔵 ROM に各種プログラムを組み込んだシリーズをライン
ナップしております。
ROM バリエーション
品種名
MB91302A
リアルタイム OS
内蔵版 ROM
IPL (Internal Program
Loader) 内蔵版
ユーザ
ROM 版
ROM なし版
○
○
○
○
■ FR CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , 5 段パイプライン
• 動作周波数内部 ( 最大 ) 68MHz [ 外部 ( 最大 ) 68MHz]
(PLL 使用 , 原発振 ( 最大 ) 17MHz 時 )
• 汎用レジスタ 32 ビット× 16 本
• 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル
• メモリ - メモリ間転送 , ビット処理 , バレルシフトなどの命令 : 組込み用途に適した
命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : 高級言語対応命令
• レジスタインタロック機能 : アセンブラ記述の容易化
• 遅延スロット付き分岐命令 : 分岐処理時のオーバヘッドの低減
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付き 32 ビット乗算 : 5 サイクル
- 符号付き 16 ビット乗算 : 3 サイクル
• 割込み (PC, PS の退避 ) : 6 サイクル , 16 プライオリティレベル
2
第 1 章 概要
■ バスインタフェース
• 最大動作周波数 68MHz (SDRAM 使用時 )
• 24 ビットアドレスフル出力可能 (16M バイト空間 )
• 8, 16, 32 ビットデータ入出力
• プリフェッチバッファ搭載
• 未使用データ / アドレス端子は汎用入出力ポートとして使用可能
• 最小 64K バイト単位で設定可能な完全独立な 8 領域のチップセレクト出力が可能
• 各種メモリに対するインタフェースのサポート
- 非同期 SRAM, 非同期 ROM/FLASH
- ページモード ROM/FLASHROM ( ページサイズ 1, 2, 4, 8 可能 )
- バーストモード ROM/FLASH (MBM29BL160D/161D/162D 等 )
- SDRAM (FCRAM タイプも対応 , CAS Latency1 ∼ 8, 2/4 バンク品 )
- アドレス / データマルチプレクスバス (8 ビット /16 ビット幅のみ )
• 基本バスサイクル : 2 サイクル
• 領域ごとにプログラマブルでウェイト挿入可能な自動ウェイトサイクル発生機構
( 最大 15 サイクル )
• RDY 入力による外部ウェイトサイクル
• バイトオーダリングのエンディアン設定 ( ビッグ / リトル )
ただし , CS0 領域はビッグエンディアンのみ
• 書込み禁止設定 ( 読み出し専用領域 )
• 内蔵キャッシュへの取り込み許可 / 禁止設定
• プリフェッチ機能の許可 / 禁止設定
• DMA は独立した I/O 用ウェイト制御が可能なフライバイ転送をサポート
• BRQ と BGRNT を使用した外部バスアービトレーションが可能
■ 内蔵メモリ
• 4K バイトの DATA RAM
• 4K バイトの ROM (MB91302A)
MB91V301A は 8K バイトの DATA RAM と 8K バイトの DATA/ 命令 RAM, 8K バイト
のエミュレーション RAM を内蔵。
■ 命令キャッシュ
• 4K バイトの容量
• 2 ウェイセットアソシアティブ方式
• 128 ブロック / ウェイ , 4 エントリ (4 ワード )/ ブロック
• ロック機能 : 特定プログラムコードのキャッシュへの常駐化
• 命令 RAM 機能 : 命令キャッシュとして使用しないときは , 命令 RAM として使用可能
3
第 1 章 概要
■ DMAC (DMA Controller)
• 5 チャネル ( 外部要求は 2 チャネル )
• 3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア )
• 転送要因としてチャネルごとに自由に内部ペリフェラルを選択可能
• アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
• 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
• フライバイ転送サポート ( 外部 I/O とメモリ間 )
• 転送データサイズは 8/16/32 ビットから選択可能
■ ビットサーチモジュール
• 1 ワード中の MSB からの最初の "1"/"0" の変化ビットの位置を 1 サイクルでサーチ
■ リロードタイマ
• 16 ビットタイマ : 3 チャネル
• 内部クロック : 2 クロックサイクル分解能 , 2/8/32 分周から選択
■ UART
• UART 全二重ダブルバッファ
• 独立 3 チャネル
• データ長 : 7 ∼ 9 ビット ( パリティなし ), 6 ∼ 8 ビット ( パリティあり )
• 非同期 ( 調歩同期 ), CLK 同期通信の選択可能
• マルチプロセッサモード
• ボーレートジェネレータとして 16 ビットタイマ (U-TIMER) 内蔵 :
任意のボーレートを発生
• 外部クロックを転送クロックとして使用可能
• エラー検出 : パリティ , フレーム , オーバラン
■ 割込みコントローラ
• 外部割込み入力:マスク不可割込み端子1本(NMI),通常割込み端子8本(INT0∼INT7)
• 内部割込み要因 :
UART, DMAC, A/D, UTIMER, 遅延割込み , I2C,
フリーランタイマ , ICU
•
I2C, フリーランタイマ , ICU は MB91302A, MB91V301A のみの要因です。
• マスク不可割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル )
■ A/D コンバータ ( 逐次変換型 )
• 10 ビット分解能 , 4 チャネル
• 逐次比較変換 : 周辺クロック (CLKP) 140 クロックサイクル変換時間約 4.1µs/ch
(34MHz 動作時 )
• サンプル & ホールド回路内蔵
• 変換モード : シングル変換 / スキャン変換 / リピート変換より選択
• 起動 : ソフトウェア / 外部トリガ / 内蔵タイマより選択
4
第 1 章 概要
■ I2C バスインタフェース
• I2C バスインタフェース 2 チャネル マスタ / スレーブ送受信
• I2C バスインタフェースアービトレーション機能 , クロック同期化機能
■ フリーランタイマ
• 16 ビット 1 チャネル
• インプットキャプチャ 4 チャネル
■ その他のインターバルタイマ
• 16 ビットタイマ : 3 チャネル (U-TIMER)
• PPG タイマ : 4 チャネル
• ウォッチドッグタイマ : 1 チャネル
■ その他の特長
• リセット要因 : ウォッチドッグタイマ / ソフトウェアリセット / 外部リセット (INT
端子 )
• 低消費電力モード : スリープ / ストップモード
•
クロック制御
ギア機能 :
CPU とペリフェラルの動作クロック周波数を独立に任意に設定可能
ギアクロックは 1/1, 1/2, 1/3, 1/4, 1/5, 1/6, 1/7, 1/8,……1/16 の 16 種から
選択。
また , PLL 逓倍も選択可能。ただし , ペリフェラルの動作は 34MHz
を限界とする。
• パッケージ : MB91302A FPT-144P-M12, FPT-144P-M08, MB91V301A PGA-179C-A03
• CMOS テクノロジ : 0.25µm
• 電源 ( アナログ電源 ) : 3.3V ± 0.3V ( 内蔵レギュレータ使用 )
• MB91V301A において On Chip Device Support Unit (DSU4) 搭載
5
第 1 章 概要
■ 品種構成
MB91302A
MB91V301A
分類
マスク ROM 品
( 量産品 )
エバ品
( 評価・開発用 )
RAM
4K バイト
( データ専用 )
16K バイト
( データ 8K バイト+ 8K バイト )
ROM
4K バイト
ユーザ ROM 版に加え , ROM なし版 , 最適
化リアルタイム OS 内蔵版 *1, IPL (Internal
Program Loader) 内蔵版 *2 があります。
8K バイト (RAM)
DSU
―
DSU4
LQFP-144
(0.4mm ピッチ , 0.5mm ピッチ )
PGA-179
量産中
提供中
パッケージ
その他
*1: µITRON3.0 準拠の富士通製リアルタイム OS REALOS/FR を , MB91302A に合わせて最適化し内蔵し
ております。内蔵されるサービスコールの種類や , ユーザタスクとのリンク仕様は ,「 リアルタイ
ム OS 内蔵 MB91302A 使用手引書」および下記のマニュアルを合わせてご参照願います。
・ FR ファミリ µITRON3.0 仕様準拠 SOFTUNE REALOS/FR ユーザーズガイド
・ FR ファミリ µITRON3.0 仕様準拠 SOFTUNE REALOS/FR カーネルマニュアル
・ FR/F2MCファミリ µITRON仕様準拠 SOFTUNE REALOS/FR/907/896 コンフィグレータマニュ
アル
・ FR-V/FR/F2MC ファミリ µITRON 仕様準拠 SOFTUNE REALOS アナライザマニュアル
*2: IPL (Internal Program Loader) を内蔵しています。内蔵 UART/SIO 経由で外部システムから , 様々なプ
ログラムロードし実行させることができます。
この機能を利用して , 例えば外部に接続された Flash メモリへのオンボード書込みを実現できます。
6
第 1 章 概要
ブロックダイヤグラム
1.2
図 1.2-1 に , MB91301 シリーズのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム
FR CPU
コア
32
I-キャッシュ
4KB
32
DMAC 5ch
ビットサーチ
MB91302A :RAM 4KB
MB91V301A:RAM 8KB(スタック)
MB91302A :ROM 4KB*
MB91V301A:RAM 8KB
バス
コンバータ
32
32
外部メモリI/F
32
16
アダプタ
X0,X1
MD0~MD2
INIT
クロック
制御
16
SDRAM I/F
SIN0~SIN 2
SOT0~SOT2
SCK0~SCK2
8ch
外部割込み
3ch
UART
3ch
U-TIMER
AN0~AN3
ATG
AVRH,AVcc
AVss/AVRL
4ch
A/D
TIN0~TIN2
3ch
リロードタイマ
A23~A00
D31~D16
D15~D00
RD,WR
WR0~WR3
CS0~CS7
RDY
BRQ
BGRNT
SYSCLK
MCLK
AS
MCLKE
割込み
コントローラ
INT0~INT7
NMI
DREQ0,DREQ1
DACK0,DACK1
DEOP0,DEOP1
IOWR
IORD
4ch
PPGタイマ
ポートI/F
SRAS
SCAS
SWE
DQMUU,DQMUL
DQMLU,DQMLL
LBA
BAA
PPG0~PPG3
TRG0~TRG3
PORT
2ch
I2C I/F
SDA0,SDA1
SCL0,SCL1
フリーランタイマ
FRCK
4ch
ICU
ICU0~ICU3
*:ユーザROM版に加えROMなし版,最適化リアルタイムOS内蔵版,
IPL(Internal Program Loader)内蔵版があります。
7
第 1 章 概要
外形寸法図
1.3
MB91301 シリーズには , 3 種類のパッケージが用意されています。
■ PGA-179C-A03 の外形寸法図
図 1.3-1 PGA-179C-A03 の外形寸法図
セラミック・PGA, 179 ピン
リードピッチ
2.54mm (100mil)
ピンマトリックス
15
封止方法
メタルシール
(PGA-179C-A03)
セラミック・PGA,179ピン
(PGA-179C-A03)
2.54±0.25
(.100±.010)
35.56(1.400)
REF
1.27(.050)TYP DIA
INDEX
INDEX AREA
+0.18
0.46 ±0.05 DIA
+.007
.018 ±.002
38.10±0.51 SQ
(1.500±.020)
1.27±0.25
(.050±.010)
6.10(.240)
MAX
C
8
1994 FUJITSU LIMITED R179004SC-3-2
+0.41
3.40 ±0.36
+.016
.134 ±.014
単位:mm(inches)
注意:括弧内の値は参考値です。
第 1 章 概要
■ FPT-144P-M12 の外形寸法図
図 1.3-2 FPT-144P-M12 の外形寸法図
プラスチック・LQFP, 144 ピン
(FPT-144P-M12)
プラスチック・LQFP, 144ピン
(FPT-144P-M12)
リードピッチ
0.40 mm
パッケージ幅×
パッケージ長さ
16.0×16.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.88 g
コード(参考)
P-LFQFP144-16×16-0.40
注1)*印寸法はレジン残りを含む。レジン残りは片側+0.25(.010)MAX
注2)端子幅および端子厚さはメッキ厚を含む。
注3)端子幅はタイバ切断残りを含まず。
18.00±0.20(.709±.008)SQ
+0.40
+.016
*16.00 –0.10 .630 –.004 SQ
73
108
72
109
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
INDEX
0~8
37
144
LEAD No.
1
0.60±0.15
(.024±.006)
36
0.40(.016)
C
"A"
2003 FUJITSU LIMITED F144024S-c-3-3
0.18±0.035
.007±.001
+0.05
0.07(.003)
M
0.145 –0.03
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
+.002
.006 –.001
単位:mm (inches)
注意:括弧内の値は参考値です。
9
第 1 章 概要
■ FPT-144P-M08 の外形寸法図
図 1.3-3 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
10
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
端子配列
MB91V301A, MB91302A の端子配列を示します。
■ 端子配列図
図 1.4-1 に , MB91V301A の端子配列図を示します。
図 1.4-1 MB91V301A の端子配列図
INDEX
1
5
178 174 172 168
165 161 160 156 155 151 150 145 142 140
2
7
179 177 173 169
166 162 157 154 149 148
144 139 134 133
3
10
4
2
176 171
167 163 159 153 147 143
138 137 132 129
4
15
9
3
180 175
170 164 158 152 146 141
135 131 128 127
5
16
13
8
6
6
20
14
12
11
125 122 121 120
7
21
19
18
17
119 118 117 116
8
25
22
24
23
9
26
27
28
29
107 108 109 111
10
30
31
32
35
101 102 104 110
11
33
34
36
40
46
12
37
38
41
45
51
56
62
68
74
13
39
42
47
48
53
57
63
69
14
43
44
49
54
58
59
64
15
50
52
55
60
61
65
A
B
C D E
136 130 126 124 123
1
Top View
PGA-179C-A03
113 114 112 115
91
96
98
80
85
90
93
99
105
73
77
81
86
92
94
100
67
72
76
79
83
87
89
97
66
70
71
75
78
82
84
88
95
F G
H
J
K
L
M
N P R
103 106
11
第 1 章 概要
図 1.4-2 に , MB91302A の端子配列図を示します。
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
D10/P12
D09/P11
D08/P10
Vcc
Vss
D07/P07
D06/P06
D05/P05
D04/P04
D03/P03
D02/P02
D01/P01
D00/P00
Vcc
Vss
CS7/PA7
CS6/PA6
CS5/PPG2/PA5
CS4/TRG2/PA4
CS3/PA3
CS2/PA2
CS1/PA1
CS0/PA0
Vcc
NMI
INIT
MD2
MD1
MD0
Vcc
Vss
X1
X0
Vcc
IORD/PB7
IOWR/PB6
図 1.4-2 MB91302A の端子配列図
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
MB91302A
(Top View)
FPT-144P-M12
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
P91/MCLKE
P92/MCLK
P93
P94/SRAS/LBA/AS
P95/SCAS/BAA
P96/SWE/WR
Vss
Vcc
A00
A01
A02
A03
A04
A05
A06
A07
Vss
Vcc
A08
A09
A10
A11
A12
A13
A14
A15
Vss
P60/A16
P61/A17
P62/A18
P63/A19
P64/A20/SDA0
P65/A21/SCL0
P66/A22/SDA1
P67/A23/SCL1
Vcc
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
P13/D11
P14/D12
P15/D13
P16/D14
P17/D15
Vss
Vcc
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
P26/D22
P27/D23
Vss
Vcc
D24
D25
D26
D27
D28
D29
D30
D31
Vss
Vcc
P80/RDY
P81/BGRNT
P82/BRQ
RD
DQMUU/WR0
P85/DQMUL/WR1
P86/DQMLU/WR2
P87/DQMLL/WR3
P90/SYSCLK
12
DEOP1/PPG1/PB5
DACK1/TRG1/PB4
DREQ1/PB3
DEOP0/PB2
DACK0/PB1
DREQ0/PB0
C
Vss
TIN2/TRG3/PH2
TIN1/PPG3/PH1
TIN0/PH0
TRG0/PJ7
PPG0/PJ6
SCK1/PJ5
SOT1/PJ4
SIN1/PJ3
SCK0/PJ2
SOT0/PJ1
SIN0/PJ0
Vcc
INT7/SCK2/PG7
INT6/SOT2/PG6
INT5/SIN2/PG5
INT4/ATG/PG4/FRCK
INT3/PG3/ICU3
INT2/PG2/ICU2
INT1/PG1/ICU1
INT0/PG0/ICU0
AVss/AVRL
AN0
AN1
AN2
AN3
AVR
ANRH
AVcc
第 1 章 概要
端子番号対応表
1.5
MB91V301A の端子番号対応表を示します。
■ 端子番号対応表
表 1.5-1 に , 端子番号対応表を示します。
表 1.5-1 Device:MB91V301A 端子番号対応表 Package:PGA-179C-A03 (1 / 3)
No. PIN
端子名
備考
No. PIN
E5
C3
C4
B3
A1
D5
A2
N.C.
P13/D11
VSS
VCC
P14/D12
P15/D13
P16/D14
43
44
45
46
47
48
49
8
C5 P17/D15
50
9
B4 VSS
A3 VCC
D6 P20/D16
C6 P21/D17
B5 P22/D18
B6 P23/D19
A4 P24/D20
A5 P25/D21
D7 P26/D22
C7 P27/D23
B7 VSS
A6 VCC
A7 D24
B8 D25
D8 D26
C8 D27
A8 Vss
A9 Vcc
B9 D28
C9 D29
D9 D30
A10 D31
B10 VSS
C10 VCC
A11 P80/RDY
B11 P81/BGRNT
51
P94/SRAS/LBA/AS
A15 P95/SCAS/BAA
E12 P96/SWE/WR
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
B15
E13
D14
C15
F12
F13
E14
F14
D15
E15
G12
G13
G14
F15
G15
H14
H12
H13
H15
J15
J14
J13
J12
K15
K14
77
78
K13 P63/A19
L15 SDA0/P64/A20
79
L14 SCL0/P65/A21
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
35
36
37
D10 P82/BRQ
C11 RD
A12 DQMUU/WR0
A14
B14
D12
E11
C13
D13
C14
端子名
P90/SYSCLK
P91/MCLKE
P92/MCLK
P93
VSS
VCC
1
2
3
4
5
6
7
備考
VSS
VCC
A00
A01
A02
A03
A04
A05
A06
A07
VSS
VCC
A08
A09
A10
A11
A12
A13
A14
A15
VSS
VCC
P60/A16
P61/A17
P62/A18
13
第 1 章 概要
表 1.5-1 Device:MB91V301A 端子番号対応表 Package:PGA-179C-A03 (2 / 3)
No. PIN
80
端子名
K12 SDA1/P66/A22
81
L13 SCL1/P67/A23
D11 P87/DQMLL/WR3
C12 VSS
B13 VCC
82
L12 EWR2
M13 EWR1
133
R2 DREQ0/PB0
134
P2 DACK0/PB1
N14 EWR0
P15 ECS
135
M4 DEOP0/PB2
136
L5 DREQ1/PB3
89 P14 EMRAM
90 M12 ICD3
91 L11 ICD2
137
138
139
92
N13 ICD1
140
N3 DACK1/TRG1/PB4
M3 DEOP1/PPG1/PB5
N2 IOWR/PB6
R1 IORD/PB7
93
94
95
96
97
98
99
100
101
N12
P13
R15
M11
R14
N11
P12
R13
M10
141
142
143
144
145
146
147
148
149
L4
P1
L3
M2
N1
K4
K3
L2
K2
150
151
152
M1 VCC
L1 VCC
J4 INIT
J3 NMI
39
40
41
42
85
86
87
88
ICD0
VSS
VCC
BREAK
ICLK
ICS2
ICS1
ICS0
TRST
102 N10 C
103 P11 AVCC
104 P10 AVRH
備考
No. PIN
B12 P85/DQMUL/WR1
A13 P86/DQMLU/WR2
38
端子名
M15 VCC
83 M14 VCC
84 N15 EWR3
105 R12 AVR
153
106 R11 AN3
107 M9 AN2
108 N9 AN1
154
155
156
109
157
P9 AN0
VCC
VSS
X0
X1
VSS
VCC
MD0
MD1
MD2
J2 VSS
K1 VCC
J1 CS0/PA0
H2 CS1/PA1
110 R10 AVSS/AVRL
111 R9 INT0/PG0/ICU0
159
112
P8 INT1/PG1/ICU1
160
113
M8 INT2/PG2/ICU2
161
114
N8 INT3/PG3/ICU3
162
115
R8 INT4/ATG/PG4/FRCK
R7 INT5/SIN2/PG5
P7 INT6/SOT2/PG6
N7 INT7/SCK2/PG7
M7 VCC
R6 SIN0/PJ0
P6 SOT0/PJ1
N6 SCK0/PJ2
163
G2 CS6/PA6
G3 CS7/PA7
164
165
166
167
168
169
170
G4
F1
F2
F3
E1
E2
F4
116
117
118
119
120
121
122
14
158
H4 CS2/PA2
H3 CS3/PA3
H1 CS4/TRG2/PA4
G1 CS5/PPG2/PA5
VSS
VCC
D00/P00
D01/P01
D02/P02
D03/P03
VSS
備考
第 1 章 概要
表 1.5-1 Device:MB91V301A 端子番号対応表 Package:PGA-179C-A03 (3 / 3)
No. PIN
123
124
125
126
127
128
129
130
131
132
R5
P5
M6
N5
R4
P4
R3
M5
N4
P3
端子名
SIN1/PJ3
SOT1/PJ4
SCK1/PJ5
PPG0/PJ6
TRG0/PJ7
TIN0/PH0
TIN1/PPG3/PH1
TIN2/TRG3/PH2
VSS
C
備考
No. PIN
171
172
173
174
175
176
177
178
179
180
E3
D1
D2
C1
E4
D3
C2
B1
B2
D4
端子名
VCC
D04/P04
D05/P05
D06/P06
D07/P07
VSS
VCC
D08/P10
D09/P11
D10/P12
備考
15
第 1 章 概要
端子機能一覧
1.6
MB91V301A, MB91302A の端子機能を説明します。
■ 端子機能説明
表 1.6-1 に , MB91V301A, MB91302A の端子機能を示します。
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (1 / 11)
端子番号
MB91302A MB91V301A
132 ∼ 139
142 ∼ 144
1∼5
166 ∼ 169,
172 ∼ 175
178 ∼ 180,
2, 5 ∼ 8
端子名
入出力回路形式
D00 ∼ D07
J
P00 ∼ P07
D08 ∼ D15
J
P10 ∼ P17
D16 ∼ D23
8 ∼ 15
J
11 ∼ 18
P20 ∼ P27
18 ∼ 25
21 ∼ 24,
27 ∼ 30
D24 ∼ D31
C
RDY
28
33
J
P80
BGRNT
29
34
J
P81
BRQ
30
35
J
P82
31
16
36
RD
C
機能
外部データバスの bit0 ∼ bit7 です。外バス
モードのときに有効となります。
外バス 8 ビット /16 ビットモードのときは
ポートとして使用できます。
外部データバスの bit8 ∼ bit15 です。外バ
スモードのときに有効となります。
外バス 8 ビット /16 ビットモードのときは
ポートとして使用できます。
外部データバスの bit16 ∼ bit23 です。外バ
スモードのときに有効となります。
外バス 8 ビットモードのときはポートとし
て使用できます。
外部データバスの bit24 ∼ bit31 です。外バ
スモードのときに有効となります。
[RDY] 外部レディ入力です。この機能は外
部レディ入力指定が許可のときに有効にな
ります。アクティブレベルは "H" です。
[P80] 汎用入出力ポートです。この機能は外
部レディ入力指定が禁止のときに有効にな
ります。
[BGRNT] 外部バス開放受付け出力です。外
部バスを開放したときに "L" を出力します。
出力指定が許可のときに有効になります。
[P81] 汎用入出力ポートです。この機能は外
部バス開放受付け指定が禁止のときに有効
になります。
[BRQ] 外部バス開放要求入力です。外部バ
スを開放したいときに "1" を入力します。
入力指定が許可のときに有効になります。
アクティブレベルは "H" です。
[P82] 汎用入出力ポートです。この機能は外
部バス開放要求指定が禁止のときに有効に
なります。
[RD] 外バスリードストローブ出力です。外
バスモード時に有効になります。
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (2 / 11)
端子番号
MB91302A MB91V301A
32
37
端子名
WR0/
DQMUU
入出力回路形式
機能
C
[WR0] 外バスライトストローブ出力です。
外バスモード時に有効になります。WR0 を
ライトストローブとして使用したときには ,
バイトイネーブル (UUB) となります。
J
[WR1] 外バスライトストローブ出力です。
外バスモード時 WR1 の出力を許可にする
と有効になります。WR1 をライトストロー
ブとして使用したときには , バイトイネー
ブル (ULB) となります。
[P85] 汎用入出力ポートです。外バスライト
イネーブル出力設定を禁止にしたときに有
効になります。
J
[WR2] 外バスライトストローブ出力です。
外バスモード時 WR2 の出力を許可にする
と有効になります。WR2 をライトストロー
ブとして使用したときには , バイトイネー
ブル (LUB) となります。
[P86] 汎用入出力ポートです。シングルチッ
プモード時または外バスライトイネーブル
出力設定を禁止にしたときに有効になりま
す。
WR1/
DQMUL
33
38
P85
WR2/
DQMLU
34
39
P86
WR3/
DQMLL
35
40
J
P87
SYSCLK
36
43
C
P90
MCLKE
37
44
J
P91
[WR3] 外バスライトストローブ出力です。
外バスモード時 WR3 の出力を許可にする
と有効になります。WR3 をライトストロー
ブとして使用したときには , バイトイネー
ブル (LLB) となります。
[P87] 汎用入出力ポートです。シングルチッ
プモード時または外バスライトイネーブル
出力設定を禁止にしたときに有効になりま
す。
[SYSCLK] システムクロック出力です。こ
の機能はシステムクロック出力指定が許可
のときに有効になります。外バス動作周波
数と同じクロックを出力します (STOP 時に
停止します )。
[P90] 汎用入出力ポートです。この機能はシ
ステムクロック出力指定が禁止のときに有
効になります。
[MCLKE] メモリ用クロックイネーブル信号
です。
[P91] 汎用入出力ポートです。この機能はメ
モリ用クロックイネーブル出力指定が禁止
のときに有効になります。
17
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (3 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
MCLK
38
45
C
P92
39
40
46
P93
C
AS
LBA
[LBA] バースト Flash ROM アドレスロード
出力です。ポート機能レジスタ 9 の ASXE
ビットが許可のとき , 通常アクセスで , バー
スト長を "1" 以上に設定された領域のアク
セスで有効になります。
49
J
[SRAS] SDRAM 用の RAS 信号です。ポー
ト機能レジスタ 9 の ASXE ビットが許可の
とき , SDRAM 領域のアクセスで有効になり
ます。
[P94] 汎用入出力ポートです。この機能は
ポート機能レジスタ 9 の ASXE ビットが汎
用ポートのときに有効になります。
P94
[BAA] バースト FlashROM アドレスアドバ
ンス出力です。ポート機能レジスタの
BAAE ビットが許可のときに有効になりま
す。
BAA
50
SCAS
J
P95
51
SWE
J
P96
45 ∼ 52
18
54 ∼ 61
A00 ∼ A07
[SCAS] SDRAM 用の CAS 信号です。ポー
ト機能レジスタの BAAE ビットが許可のと
き , SDRAM 領域のアクセスで有効になりま
す。
[P95] 汎用入出力ポートです。ポート機能レ
ジスタの BAAE ビットが汎用ポートのとき
に有効になります。
[WR] メモリライトストローブ出力です。こ
の機能はポート機能レジスタの WEXE ビッ
トが許可のときに有効になります。
WR
42
[MCLK] メモリ用クロック出力です。この
機能はメモリ用クロック出力指定が許可の
ときに有効になります。外バス動作周波数
と同じクロックを出力します (STOP, SLEEP
時に停止します )。
[P92] 汎用入出力ポートです。この機能はメ
モリ用クロック出力指定が禁止のときに有
効になります。
[P93] 汎用入出力ポートです。
[AS] アドレスストローブ出力です。ポート
機能レジスタ 9 の ASXE ビットが許可のと
き , EDRAM 領域以外のアクセスで有効に
なります。
SRAS
41
機能
C
[SWE] SDRAM 用ライト出力です。この機
能はポート機能レジスタの WEXE ビットが
許可のとき , SDRAM 領域のアクセスで有効
になります。
[P96] 汎用入出力ポートです。この機能は
ポート機能レジスタの WEXE ビットが汎用
ポートのときに有効になります。
外部アドレスバスの bit0 ∼ bit7 です。
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (4 / 11)
端子番号
MB91302A MB91V301A
55 ∼ 62
64 ∼ 71
端子名
入出力回路形式
機能
A08 ∼ A15
C
外部アドレスバスの bit8 ∼ bit15 です。
外部アドレスバスの bit16 ∼ bit19 です。
外部アドレスバス未使用のときは , ポート
として使用できます。
外バス 8 ビットモードのときは , ポートと
して使用できます。
[SDA0] I2C バス用データ入出力端子です。
この機能は I2C が標準モード動作許可のと
きに有効となります。
意図的に行うとき以外はポートによる出力
を停止させておく必要があります ( オープ
ンドレイン出力 )。
[A20] 外部アドレスの bit20 です。この機能
は I2C が動作禁止で外部アドレスバスのと
きに有効です。
[P64] 汎用入出力ポートです。この機能は
I2C が動作禁止で , 外部アドレスバス未使用
時にポートとして使用できます。
[SCL0] I2C バス用クロック入出力端子です。
この機能は I2C が標準モード動作許可のと
きに有効となります。
意図的に行うとき以外はポートによる出力
を停止させておく必要があります ( オープ
ンドレイン出力 )。
[A21] 外部アドレスの bit21 です。この機能
は I2C が動作禁止で外部アドレスバス未使
用時にポートとして使用できます。
[P65] 汎用入出力ポートです。この機能は
I2C が動作禁止で , 外部アドレスバス未使用
時にポートとして使用できます。
[SDA1] I2C バス用データ入出力端子です。
この機能は I2C が標準モード動作許可のと
きに有効となります。
意図的に行うとき以外はポートによる出力
を停止させておく必要があります ( オープ
ンドレイン出力 )。
[A22] 外部アドレスの bit20 です。この機能
は I2C が動作禁止で外部アドレスバスのと
きに有効です。
[P66] 汎用入出力ポートです。この機能は
I2C が動作禁止で , 外部アドレスバス未使用
時にポートとして使用できます。
A16 ∼ A19
64 ∼ 67
J
74 ∼ 77
P60 ∼ P63
SDA0
68
78
J, T
A20
P64
SCL0
69
79
J, T
A21
P65
SDA1
70
80
J, T
A22
P66
19
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (5 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
SCL1
71
81
J, T
A23
P67
76 ∼ 79
106 ∼ 109
AN3 ∼ AN0
D
INT0 ∼
INT3
81 ∼ 84
L
111 ∼ 114
PG0 ∼ PG3
ICU0 ∼ ICU3
INT4
85
115
ATG
PG4
FRCK
20
L, V
機能
[SCL1] I2C バス用クロック入出力端子です。
この機能は I2C が標準モード動作許可のと
きに有効となります。
意図的に行うとき以外はポートによる出力
を停止させておく必要があります ( オープ
ンドレイン出力 )。
[A23] 外部アドレスの bit21 です。この機能
は I2C が動作禁止で外部アドレスバス未使
用時にポートとして使用できます。
[P67] 汎用入出力ポートです。この機能は
I2C が動作禁止で , 外部アドレスバス未使用
時にポートとして使用できます。
アナログ入力端子
[INT0 ∼ INT3] 外部割込み入力です。対応
する外部割込みを許可している間は , この
入力を随時使用していますので意図的に行
う以外はポートによる出力を停止させてお
く必要があります。アクティブレベル設定
は「9.2.3 外部割込み要求レベル設定レジス
タ (ELVR)」を参照してください。
[PG0 ∼ PG3] 汎用入出力ポートです。
[ICU0 ∼ ICU3] インプットキャプチャ入力
端子です。インプットキャプチャ入力とし
て選択した場合は , この入力を随意使用し
ますので , 意図的に行う場合はポートによ
る出力を停止しておく必要があります。
[INT4] 外部割込み入力です。対応する外部
割込みを許可している間は , この入力を随
時使用していますので意図的に行う以外は
ポートによる出力を停止させておく必要が
あります。
アクティブレベル設定は「9.2.3 外部割込み
要求レベル設定レジスタ (ELVR)」を参照し
てください。
[ATG] A/D コンバータ外部トリガ入力です。
A/D の起動要因として選択した場合は , こ
の入力を随時使用しますので , 意図的に行
う以外はポートによる出力 , INT による入
力を停止させておく必要があります。
[PG4] 汎用入出力ポートです。
[FRCK] フリーランタイマの外部クロック入
力端子です。フリーランタイマの外部ク
ロック入力端子として使用した場合は , こ
の入力を随時使用していますので , 意図的
に行う以外はポートによる出力を停止させ
ておく必要があります。
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (6 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
INT5
86
116
L, V
SIN2
PG5
INT6
87
117
L, V
SOT2
PG6
INT7
88
118
L, V
SCK2
PG7
90
120
SIN0
K, U
PJ0
91
121
SOT0
PJ1
J, U
機能
[INT5] 外部割込み入力です。対応する外部
割込みを許可している間は , この入力を随
時使用していますので , 意図的に行う以外
はポートによる出力を停止させておく必要
があります。
アクティブレベル設定は「9.2.3 外部割込み
要求レベル設定レジスタ (ELVR)」を参照し
てください。
[SIN2] UART2 のデータ入力です。UART2
が入力動作をしている間は , この入力を随
時使用していますので意図的に行うとき以
外はポートによる出力を停止させておく必
要があります。
[PG5] 汎用入出力ポートです。
[INT6] 外部割込み入力です。対応する外部
割込みを許可している間は , この入力を随
時使用していますので , 意図的に行う以外
はポートおよび UART による出力を停止さ
せておく必要があります。アクティブレベ
ル設定は「9.2.3 外部割込み要求レベル設定
レジスタ (ELVR)」を参照してください。
[SOT2] UART2 のデータ出力です。この機
能はポート機能レジスタで UART2 のデー
タ出力指定が許可のときに有効になります。
[PG6] 汎用入出力ポートです。
[INT7] 外部割込み入力です。対応する外部
割込みを許可している間は , この入力を随
時使用していますので , 意図的に行う以外
はポートおよび UART のクロックによる出
力を停止させておく必要があります。アク
ティブレベル設定は「9.2.3 外部割込み要求
レベル設定レジスタ (ELVR)」を参照してく
ださい。
[SCK2] UART2 のクロック入出力です。こ
の機能はポート機能レジスタで UART2 の
クロック出力指定が許可のときに有効にな
ります。
[PG7] 汎用入出力ポートです。
[SIN0] UART0 のデータ入力です。UART0
が入力動作をしている間は , この入力を随
時使用していますので , 意図的に行うとき
以外はポートによる出力を停止させておく
必要があります。
[PD0] 汎用入出力ポートです。
[SOT0] UART0 のデータ出力です。この機
能はポート機能レジスタで UART0 のデー
タ出力指定が許可のときに有効になります。
[PD1] 汎用入出力ポートです。
21
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (7 / 11)
端子番号
MB91302A MB91V301A
92
122
端子名
SCK0
入出力回路形式
K, U
PJ2
93
123
SIN1
K, U
PJ3
94
124
SOT1
J, U
PJ4
95
125
SCK1
K, U
PJ5
96
126
PPG0
J, U
PJ6
97
127
TRG0
J, U
PJ7
98
128
TIN0
J
PH0
TIN1
99
129
J
PPG3
PH1
22
機能
[SCK0] UART0 のクロック入出力です。こ
の機能は UART0 のクロック出力指定が許
可のときに有効になります。
[PJ2] 汎用入出力ポートです。
[SIN1] UART1 のデータ入力です。UART1
が入力動作をしている間は , この入力を随
時使用していますので , 意図的に行うとき
以外はポートおよびタイマによる出力を停
止させておく必要があります。
[PJ3] 汎用入出力ポートです。
[SOT1] UART1 のデータ出力です。この機
能はポート機能レジスタで UART1 のデー
タ出力指定が許可のときに有効になります。
[PJ4] 汎用入出力ポートです。
[SCK1] UART1 のクロック入出力です。こ
の機能はポート機能レジスタで UART1 の
クロック出力指定が許可のときに有効にな
ります。
[PJ5] 汎用入出力ポートです。
[PPG0] PPG タイマ出力です。この機能は
ポート機能レジスタで PPG0 出力指定が許
可のときに有効になります。
[PJ6] 汎用入出力ポートです。
[TRG0] PPG タイマの外部トリガ入力です。
対応するタイマ入力を許可している間は ,
この入力を随時使用していますので , 意図
的に行うとき以外はポートによる出力を停
止させておく必要があります。*1
[PJ7] 汎用入出力ポートです。
[TIN0] リロードタイマ入力です。対応する
タイマ入力を許可している間は , この入力
を随時使用していますので , 意図的に行う
とき以外はポートによる出力を停止させて
おく必要があります。*2
[PH0] 汎用入出力ポートです。
[TIN1] リロードタイマ入力です。対応する
タイマ入力を許可している間は , この入力
を随時使用していますので , 意図的に行う
とき以外はポートおよび PPG タイマによる
出力を停止させておく必要があります。*2
[PPG3] PPG タイマ出力です。この機能は
ポート機能レジスタで PPG3 出力指定が許
可のときに有効になります。
[PH1] 汎用入出力ポートです。
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (8 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
TIN2
100
130
J
TRG3
PH2
103
133
DREQ0
J
PB0
104
134
DACK0
J
PB1
105
135
DEOP0
J
PB2
106
136
DREQ1
J
PB3
DACK1
107
137
J
TRG1
PB4
機能
[TIN2] リロードタイマ入力です。対応する
タイマ入力を許可している間は , この入力
を随時使用していますので , 意図的に行う
とき以外はポートによる出力を停止させて
おく必要があります。*2
[TRG3] PPG タイマの外部トリガ入力です。
対応するタイマ入力を許可している間は ,
この入力を随時使用していますので , 意図
的に行うとき以外はポートによる出力を停
止させておく必要があります。*1
[PH2] 汎用入出力ポートです。
[DREQ0] DMA 外部転送要求入力です。対
応する DMA 外部転送要求入力を許可して
いる間は , この入力を随時使用しています
ので , 意図的に行うとき以外はポートによ
る出力を停止させておく必要があります。
アクティブレベル設定は「14.3.1 転送要求
の設定」を参照してください。
[PB0] 汎用入出力ポートです。
[DACK0] DMA 外部転送要求受付け出力で
す。この機能は DMA の転送要求受付け出
力指定が許可のときに有効になります。
[PB1] 汎用入出力ポートです。
[DEOP0] DMA 外部転送終了出力です。こ
の機能はポート機能レジスタで DMA の外
部転送終了出力指定が許可のときに有効に
なります。
[PB2] 汎用入出力ポートです。
[DREQ1] DMA 外部転送要求入力です。対
応する DMA 外部転送要求入力を許可して
いる間は , この入力を随時使用しています
ので , 意図的に行うとき以外はポートによ
る出力を停止させておく必要があります。
アクティブレベル設定は「14.3.1 転送要求
の設定」を参照してください。
[PB3] 汎用入出力ポートです。
[DACK1] DMA 外部転送要求受付け出力で
す。この機能はポート機能レジスタで
DMA の転送要求受付け出力指定が許可の
ときに有効になります。
[TRG1] PPG タイマの外部トリガ入力です。
対応するタイマ入力を許可している間は ,
この入力を随時使用していますので , 意図
的に行うとき以外はポートおよび DMAC 外
部転送要求受付け出力による出力を停止さ
せておく必要があります。*1
[PB4] 汎用入出力ポートです。
23
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (9 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
J
[DEOP1] DMA 外部転送終了出力です。こ
の機能はポート機能レジスタで DMA の外
部転送終了出力指定が許可のときに有効に
なります。
[PPG1] PPG タイマ出力です。この機能は
ポート機能レジスタの PPE1 ビットが許可
のときに有効になります。
[PB5] 汎用入出力ポートです。
J
[IOWR] DMA フライバイ転送時の書込みス
トローブ出力です。この機能はポート機能
レジスタで DMA フライバイ転送書込みス
トローブ出力指定が許可のときに有効にな
ります。
[PB6] 汎用入出力ポートです。この機能は
DMA フライバイ転送書込みストローブ出
力指定が禁止のときに有効になります。
DEOP1
108
138
PPG1
PB5
IOWR
109
139
PB6
IORD
110
140
J
PB7
112
113
143
144
X0
X1
A
A
116 ∼ 118
147 ∼ 149
MD0 ∼ MD2
G
119
152
INIT
B
120
153
NMI
M
CS0
122
J
156
PA0
24
機能
[IORD] DMA フライバイ転送時の読出しス
トローブ出力です。この機能はポート機能
レジスタで DMA フライバイ転送読出しス
トローブ出力指定が許可のときに有効にな
ります。
[PB7] 汎用入出力ポートです。この機能は
DMA フライバイ転送読出しストローブ出
力指定が禁止のときに有効になります。
クロック ( 発振 ) 入力です。
クロック ( 発振 ) 出力です。
[MD0 ∼ MD2] モード端子 0 ∼ 2 です。こ
れらの端子の設定により基本動作モードを
設定します。VCC または VSS に接続してく
ださい。
外部リセット入力です。( 設定初期化リ
セット ) アクティブレベルは "L" アクティ
ブです。
NMI (Non Maskable Interrupt) 入力です。ア
クティブレベルは "L" アクティブです。
[CS0] チップセレクト 0 出力です。CSER
( チップセレクト許可レジスタ ) の CS0 領
域が許可時にポート機能レジスタの CS0XE
ビットの指定が許可のときに有効になりま
す。
[PA0] 汎用入出力ポートです。ポート機能
レジスタの CS0XE ビットの指定が汎用
ポートのときに有効になります。
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (10 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
機能
J
[CS1] チップセレクト 1 出力です。この機
能は CSER の CS1 領域が許可時にポート機
能レジスタの CS1XE ビットの指定が許可
のときに有効になります。
[PA1] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 1 出
力指定が禁止のときに有効になります。
J
[CS2] チップセレクト 2 出力です。この機
能は CSER の CS2 領域が許可時にポート機
能レジスタの CS2XE ビットの指定が許可
のときに有効になります。
[PA2] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 2 出
力指定が禁止のときに有効になります。
J
[CS3] チップセレクト 3 出力です。この機
能は CSER の CS3 領域が許可時にポート機
能レジスタの CS3XE ビットの指定が許可
のときに有効になります。
[PA3] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 3 出
力指定が禁止のときに有効になります。
J
[CS4] チップセレクト 4 出力です。この機
能は CSER の CS4 領域が許可時にポート機
能レジスタの CS4XE ビットの指定が許可
のときに有効になります。
[TRG2] PPG タイマの外部トリガ入力です。
対応するタイマ入力を許可している間は ,
この入力を随時使用していますので , 意図
的に行うとき以外はチップセレクトおよび
ポートによる出力を停止させておく必要が
あります。*1
[PA4] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 4 出
力が禁止のときに有効になります。
J
[CS5] チップセレクト 5 出力です。この機
能は CSER の CS5 領域が許可時にポート機
能レジスタの CS5XE ビットの指定が許可
のときに有効になります。
[PPG2] PPG タイマ出力です。この機能は
ポート機能レジスタの PPE2 ビットが許可
のときに有効になります。
[PA5] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 5 お
よび PPG タイマの出力指定が禁止のときに
有効になります。
CS1
123
157
PA1
CS2
124
158
PA2
CS3
125
159
PA3
CS4
126
160
TRG2
PA4
CS5
127
161
PPG2
PA5
25
第 1 章 概要
表 1.6-1 端子機能表 ( 電源端子 /GND 端子以外 ) (11 / 11)
端子番号
MB91302A MB91V301A
端子名
入出力回路形式
機能
J
[CS6] チップセレクト 6 出力です。この機
能は CSER の CS6 領域が許可時にポート機
能レジスタの CS6XE ビットの指定が許可
のときに有効になります。
[PA6] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 6 出
力指定が禁止のときに有効になります。
J
[CS7] チップセレクト 7 出力です。この機
能は CSER の CS7 領域が許可時にポート機
能レジスタの CS7XE ビットの指定が許可
のときに有効になります。
[PA7] 汎用入出力ポートです。この機能は
ポート機能レジスタでチップセレクト 7 出
力指定が禁止のときに有効になります。
CS6
128
162
PA6
CS7
129
163
PA7
*1: アクティブレベル設定は「第 7 章 PPG タイマ」の EGS1, EGS0: トリガ入力エッジ選択ビットを参
照してください。
*2: アクティブレベル設定は「第 6 章 16 ビット リロードタイマ」の MOD2, MOD1, MOD0 動作モード
設定ビットを参照してください。
26
第 1 章 概要
表 1.6-2 端子機能表 ( 電源端子 /GND 端子 )
端子番号
MB91302A
端子名
MB91V301A
機能
6, 16, 26, 43, 53, 3, 9, 19, 25, 31, 41, 47, 52,
63, 101, 114, 130, 62, 72, 94, 131, 142, 145,
140
154, 164, 170, 176
VSS
GND 端子です。
すべて同電位でお使いください。
4, 10, 20, 26, 32, 42, 48,
53, 63, 73, 82, 83, 95, 119,
141, 146, 150, 151, 155,
165, 171, 177
VCC
3V 系電源端子です。
すべて同電位でお使いください。
73
103
AVCC
A/D コンバータ用アナログ電源端子です。
74
104
AVRH
A/D コンバータ用の基準電源端子です。
75
105
AVR
80
110
-
1
N.C.
N.C. 端子です。OPEN でお使いください。
102
102, 132
C
内蔵レギュレータ用のコンデンサ結合端子
7, 17, 27, 44, 54,
72, 89, 111, 121,
115, 131, 141
A/D コンバータ用のコンデンサ結合端子です。
AVSS/AVRL A/D コンバータ用アナログ GND 端子です。
表 1.6-3 端子機能表 ( ツール端子 )
端子番号
端子名
入出力
回路形式
機能
MB91302A
MB91V301A
-
97
ICLK
S
クロック出力
-
101
TRST
Q
ツールリセット
-
98 ∼ 100
ICS2 ∼ ICS0
N
デバイスの状態出力 (TRC 中 )
DSU4 の動作状態出力 (EML 中 )
-
90 ∼ 93
ICD3 ∼ ICD0
R
トレース情報出力 (TRC 中 )
プログラム / データ入出力 (EML 中 )
-
96
BREAK
P
DSU4 ブレーク要求入力
-
89
EMRAM
O
エミュレーションメモリの有無
-
88
ECS
N
エミュレーションメモリ用
チップセレクト
-
84 ∼ 87
EWR3 ∼ EWR0
N
エミュレーションメモリ用
ライトストローブ
27
第 1 章 概要
1.7
入出力回路形式
入出力回路形式を示します。
■ 入出力回路形式
表 1.7-1 入出力回路形式 (1 / 5)
分類
A
回路形式
備考
発振帰還抵抗 約 1MΩ
X1
クロック入力
X0
スタンバイ制御
B
プルアップ抵抗付き
CMOS ヒステリシス入力
プルアップ抵抗値 = 約 25kΩ
(Typ)
デジタル入力
C
デジタル出力
デジタル出力
デジタル入力
スタンバイ制御
28
• CMOS レベル入出力
スタンバイ制御あり
• IOL=4mA
第 1 章 概要
表 1.7-1 入出力回路形式 (2 / 5)
分類
回路形式
備考
D
アナログ入力
スイッチ付き
アナログ入力
チャネル制御
G
CMOS レベル出力
スタンバイ制御なし
デジタル入力
J
プルアップ制御
デジタル出力
• プルアップコントロール付き
プルアップ抵抗値 = 約 25kΩ
(Typ)
• CMOS レベル入出力
スタンバイ制御あり
• プルアップコントロール付き
• IOL=4mA
デジタル出力
デジタル入力
スタンバイ制御
29
第 1 章 概要
表 1.7-1 入出力回路形式 (3 / 5)
分類
回路形式
K
備考
プルアップ制御
デジタル出力
• プルアップコントロール付き
プルアップ抵抗値 = 約 25kΩ
(Typ)
• CMOS レベル出力
CMOS レベルヒステリシス入力
スタンバイ制御あり
• IOL=4mA
デジタル出力
デジタル入力
スタンバイ制御
L
プルアップ制御
デジタル出力
• プルアップコントロール付き
プルアップ抵抗値 = 約 25kΩ
(Typ)
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御なし
• IOL=4mA
デジタル出力
デジタル入力
M
CMOS レベルヒステリシス入力
スタンバイ制御なし
デジタル入力
30
第 1 章 概要
表 1.7-1 入出力回路形式 (4 / 5)
分類
回路形式
備考
N
デジタル出力
• 出力バッファ
• CMOS レベル出力
• IOL=4mA
デジタル出力
O
デジタル入力
• 入力バッファ
• CMOS レベル入力
デジタル入力
• プルダウン付き入力バッファ
• プルダウン抵抗値 = 約 25kΩ
(Typ)
P
Q
• プルアップ付入力バッファ
• プルアップ抵抗値 = 約 25kΩ
(Typ)
デジタル入力
R
デジタル出力
•
•
•
プルダウン付入出力バッファ
CMOS レベル出力
IOL=4mA
• プルアップ抵抗値 = 約 25kΩ
(Typ)
デジタル出力
デジタル入力
31
第 1 章 概要
表 1.7-1 入出力回路形式 (5 / 5)
分類
回路形式
備考
S
デジタル出力
• 入出力バッファ
• CMOS レベル出力
• IOL=4mA
デジタル出力
デジタル入力
T
プルアップ制御
オープンドレイン
制御付デジタル出力
デジタル出力
•
•
•
•
•
•
N-ch オープンドレイン出力
CMOS レベル入出力
スタンバイ制御あり
プルアップ制御あり
プルアップ抵抗値 = 約 25kΩ
IOL=4mA
デジタル入力
スタンバイ制御
U
デジタル出力
デジタル出力
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御あり
• 5V 耐圧
• IOL=4mA
デジタル入力
スタンバイ制御
V
デジタル出力
デジタル出力
デジタル入力
32
• CMOS レベル出力
• CMOS レベルヒステリシス入力
スタンバイ制御なし
• 5V 耐圧
• IOL=4mA
第2章
デバイスの取扱いについて
MB91301 シリーズの取扱い上の注意について説明
します。
2.1 デバイスの取扱い上の注意
2.2 電源に関する取扱い上の注意
33
第 2 章 デバイスの取扱いについて
2.1
デバイスの取扱い上の注意
ここでは , ラッチアップ防止および端子処理について説明します。
■ ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合 , または VCC と VSS との間に定格を超える電圧を印加した場合に , ラッチアップ
現象を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破
壊に至ることがありますので,使用に際しては最大定格を超えることのないよう十分に
注意してください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと,誤動作の原因となることがありま
すので , プルアップまたはプルダウンの処理をしてください。
■ 電源端子について
VCC または VSS 端子が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を
防止するためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要
輻射の低減 , グランドレベルの上昇によるストローブ信号の誤動作の防止 / 総出力電流
規格を遵守などのために,必ずそれらすべてを外部で電源およびグランドに接続してく
ださい。また , 電流供給源からできるかぎり低インピーダンスでこのデバイスの VCC,
VSS に接続するような配慮をお願いします。
さらに , このデバイスの近くで , VCC と VSS の間に 0.1µF 程度のセラミックコンデンサ
をバイパスコンデンサとして接続することを奨励します。
■ 水晶発振回路について
X0, X1 端子の近辺のノイズは , このデバイスを誤動作の原因となります。X0 と X1 お
よび水晶発振子 ( またはセラミック発振子 ) さらにグランドへのバイパスコンデンサは
できるかぎり近くに配置するようにプリント板を設計してください。
また , X0, X1 端子の回りをグランドで囲むようなプリント板アートワークはより安定
した動作ができますので , 設計の際に考慮してください。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
34
第 2 章 デバイスの取扱いについて
■ 外部クロック使用時の注意について
外部クロックを使用する際には , 原則として X0 端子また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , この場合には STOP モード ( 発振停止モー
ド ) は使用しないでください (STOP 時 X1 端子が "H" 出力で停止するため )。
また , 12.5MHz 以下では X0 端子のみの供給で使用できます。
図 2.1-1 および図 2.1-2 に , 外部クロック使用方法例について示します。
図 2.1-1 外部クロック使用方法 ( 通常 )
X0
~
X1
MB91301
[STOP モード ( 発振停止モード ) は使用できません。]
図 2.1-2 外部クロック使用方法 (12.5MHz 以下の場合は可能 )
X0
~
X1
開放
MB91301
■ NC, OPEN 端子の処理について
NC 端子 , OPEN 端子は , 必ず開放にして使用してください。
■ モード端子 (MD0 ∼ MD2) について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ
てテストモードに入ってしまうことを防ぐために,プリント板上の各モード端子とVCC
または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接続す
るようにしてください。
■ 使用上の注意
● MB91301 シリーズ共通
• クロック制御部
INITへの"L"入力時には,レギュレータの安定待ち時間および発振安定待ち時間を確
保してください。
• PLL クロックモード動作中の注意
本マイコンで PLL クロックを選択しているときに発振子が外れた場合 , あるいはク
ロック入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で
動作を継続する場合があります。この動作は保証外の動作です。
• MCLK と SYSCLK
MCLK は , SLEEP/STOP モード時に停止し , SYSCLK は STOP モード時のみ停止す
るという違いがあります。用途に応じ使い分けてください。
• プルアップコントロール
外バス端子として使用する端子に対してプルアップ抵抗をつけると交流規格を保
証できません。
また , プルアップ抵抗を設定してあるポートであっても , HIZ=1 のストップモード ,
ハードウェアスタンバイ時は無効となります。
35
第 2 章 デバイスの取扱いについて
• ビットサーチモジュール
0 検出用データレジスタ (BSD0), 1 検出用データレジスタ (BSD1), 変化点検出用デー
タレジスタ (BSDC) はワードアクセスのみです。
• 低消費電力モード
1. スタンバイモードに入れる場合は, 同期スタンバイモード(TBCR:タイムベースカウ
ンタ制御レジスタの bit8 SYNCS ビットにて設定します ) を使用した上で , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
; STCR レジスタ (0x0481)
ldi
#_STCR, r0
ldi
#Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ
stb
rl, @r0
; STCR へのライト
/* CTBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl, @r2
; CTBR への A5 ライト
ldi
#0x5A, rl
; クリアコマンド (2)
stb
rl, @r2
; CTBR への 5A ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
@r0, rl
nop
; STCR ダミーリード
; タイミング調整用 NOP × 5
nop
nop
nop
nop
2. モニタデバッガを使用される場合は , 以下のことを行わないでください。
- 上記命令列に対するブレークポイントの設定
- 上記命令列に対するステップ実行
• プリフェッチ
リトルエンディアンに設定した領域に対して , プリフェッチを許可する場合 , 該当
する領域へのアクセスは , ワード (32 ビット ) 長アクセス限定としてください。
バイト / ハーフワードアクセスでは , 正しくアクセスできません。
• I/O ポートアクセス
I/O ポートへのアクセスはバイトアクセスのみです。
• 兼用ポートの機能切換え
ポートと兼用端子の切換えは , ポート機能レジスタ (PFR) で行います。ただし , バス ,
端子は外バスの設定により切り換わります。
36
第 2 章 デバイスの取扱いについて
• D-bus メモリ
コード領域を , D-bus 上のメモリに設定しないでください。
D-bus へは命令フェッチを行いません。
D-bus 領域へ命令フェッチを行った場合 , 誤ったデータをコードとして解釈するため ,
暴走する可能性があります。
データ領域を I-bus 上のメモリに設定しないでください。
• I-bus メモリ
スタック領域およびベクタテーブルを , I-bus 上のメモリに設定しないでください。
EIT 処理 (RETI 含む ) 中に , ハングアップする可能性があります。
復帰するには , リセットをかける必要があります。
I-bus 上のメモリに対して , DMA 転送を行わないでください。
• PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッ
ガご使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新
されたりする場合があります。
何れの場合も, EIT から復帰後以降に, 正しく再処理を行うように設計されています
ので , EIT 前後の動作は仕様どおりの処理を行います。
1. DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込み・NMI を受け付けた場合 , (b)
ステップ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下のような動作を行う場合があります。
(1) D0, D1 フラグが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
2. ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR ,
STILM , MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが , 先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI) を実行します。
(3) EIT から復帰後, 上記命令が実行され, PS レジスタが(1)と同じ値に更新されます。
• R15 ( 汎用レジスタ )
下記の命令を実行した場合 , R15 として SSP*, USP* の値が使われず , 結果として誤っ
た値をメモリへ書き込んでしまいます。
AND
R15,@Ri
ANDH
R15,@Ri
ANDB
R15,@Ri
OR
R15,@Ri
ORH
R15,@Ri
ORB
R15,@Ri
EOR
R15,@Ri
EORH
R15,@Ri
EORB
R15,@Ri
XCHB
@Rj,R15
*: R15 は実体がなく , プログラムから R15 をアクセスした場合 , SP フラグの "S" フラ
グの状態によって , SSP または USP がアクセスされます。上記 10 命令をアセンブ
ラで記述される場合は , R15 以外の汎用レジスタを指定してください。
• RETI 命令
RETI 命令直前で , 命令キャッシュの制御レジスタおよび命令キャッシュの RAM へ
のデータアクセスを行わないでください。
37
第 2 章 デバイスの取扱いについて
• ウォッチドッグタイマ機能について
本品種が備えているウォッチドッグタイマ機能は , プログラムが一定時間内にリ
セット延期動作を行うことを監視し , プログラムの暴走によりリセット延期動作が
行われなかったときに , CPU をリセットするための機能です。そのため , いったん
ウォッチドッグタイマ機能を有効にすると , リセットをかけるまでウォッチドッグ
タイマは動作を続けます。
例外として , ストップ , スリープ , DMA 転送中など CPU のプログラム実行が停止す
る条件では自動的にリセット延期を行います。この例外にあてはまる条件について
は , 「3.12.7 クロック制御部がもつ周辺回路」を参照してください。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリ
セットが発生しない可能性があります。その場合, 外部INIT端子よりリセット(INIT)
をかけてください。
• A/D コンバータ
電源投入時 , リセット後 , ストップからの復帰後 , 外付けのコンデンサがチャージさ
れるまでに時間がかかりますので , 10ms 以上待つ必要があります。
● エバチップ MB91V301A 固有
• ツールリセット
評価ボード上で INIT と TRST をショートさせて使用してください。
• RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , RETI をステップ実行後
に該当割込み処理ルーチンだけを繰り返して実行します。その結果 , メインルーチ
ンや割込みレベルの低いプログラムの実行が行われなくなります。回避のために ,
RETI 命令をステップ実行しないでください。または , 該当割込みルーチンのデバッ
グが不要になった段階で , 該当割込みを禁止してデバッグを行ってください。
• ソフトウェアブレークとユーザ割込み /NMI 同時発生
ソフトウェアブレークとユーザ割込み /NMI が同時に発生した場合 , エミュレータ
デバッガにて , 以下の現象が発生することがあります。
- 設定したブレークポイント以外のところを示して停止します。
- 停止後の再実行が正しく行われません。
本現象が発生した場合は , ソフトウェアブレークではなく , ハードウェアブレーク
をご使用ください。また , モニタデバッガをご使用の場合は , 該当箇所にブレーク
を設定しないようにしてください。
• オペランドブレーク
DSU のオペランドブレークとして設定している領域にスタックポインタがあると ,
誤動作の原因となります。
システムスタックポインタのアドレスを含む領域に対するアクセスを , データイベ
ントブレークの対象にしないでください。
• ICE 起動シーケンス
ICE 使用時において , デバッグ開始時にダウンロードを行う前には , 該当領域のバ
スコンフィグレーションを正しく設定する必要があります。
ターゲット電源起動直後のツール起動シーケンスにおいて , 上記の設定を行うまで
の期間 , RD, WR0 ∼ WR3 端子の状態が不定になりますので , プルアップ処理をお
願いします。
また , これらの端子を汎用ポートとして使用する場合は , 上記期間での出力信号の
38
第 2 章 デバイスの取扱いについて
衝突を防ぐために出力ポートとして使用をお願いします。
表 2.1-1 ICE 使用時に処理が必要な端子
外バス幅端子名
32 ビット
16 ビット
8 ビット
RD
プルアップ
プルアップ
プルアップ
WR0
プルアップ
プルアップ
プルアップ
WR1 (P85)
プルアップ
プルアップ
*
WR2 (P86)
プルアップ
*
*
WR3 (P87)
プルアップ
*
*
*: 出力ポートとして使用してください。
• コンフィグレーション用バッチファイル例
下記バッチファイルでは , モードベクタの設定とダウンロード領域としての CS0 コ
ンフィグレーション用レジスタを設定しています。ウェイトやタイミングなど,ハー
ドウェアに合った設定をしてください。
#-----------------------------------------------------------------# Set MODR (0x7fd) = Enable In memory + 16bit External Bus
set mem/byte 0x7fd=0x5
#-----------------------------------------------------------------# Set ASR0 (0x640)
; 0x0010_0000-0x002f_ffff
set mem/halfword 0x640=0x0010
#-----------------------------------------------------------------# Set ACR0 (0x642)
#
#
; ASZ[3:0]=0101 :2Mbyte
; DBW[1:0]=01: 16bit width, automatically
set form MODR
#
; BST[1:0]=00: 1burst(16bit x 2)
#
; SREN=0: Disable BRQ
#
; PFEN=1: Enable Pre fetch buffer
#
; WREN=1: Enable Write operation
#
; LEND=0: Big endian
#
; TYPE[3:0]=0010: WEX: Disable RDY
set mem/halfword 0x642=0x5462
#------------------------------------------------------------------# Set AWR0 (0x660)
#
; W15-12=0010: auto wait = 2
#
; W07,06=01: RD,WR delay = 1cycle
#
; W05,04=01: WR->WR delay = 1cycle(for WEX)
#
; W03=1: MCLK->RD/WR delay = 0.5cycle
#
: for async Memory
#
; W02=0: ADR->CS delay = 0
39
第 2 章 デバイスの取扱いについて
#
; W01=0: ADR->RD/WR setup 0cycle
#
; W00=0 RD/WR->ADR hold 0cycle
set mem/halfword 0x660=0x2058
#------------------------------------------------------------------• エミュレーションメモリ
エミュレーションメモリとしての SRAM をターゲットボードに構築する場合 , RD,
WR 信号+ BYTE 制御信号でアクセスする SRAM は使用できません。
(外部バスは,リセット後の初期状態がRD, WRnにてアクセスするバスモードとなっ
ています。)
40
第 2 章 デバイスの取扱いについて
2.2
電源に関する取扱い上の注意
電源投入時の端子の扱いや処理など , 電源に関する注意事項について説明します。
■ 電源投入時について
電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。また ,
電源投入直後は,発振回路の発振安定待ち時間およびレギュレータの安定待ち時間を確
保するため , INIT 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持
続してください (INIT 端子による INIT では , 発振安定待ち時間の設定は最小値に初期
化されています )。
■ 電源投入時の外部クロック入力について
電源投入時は , 必ず発振安定待ち時間が解除されるまでの間 , 外部クロックを入力して
ください。
■ 電源投入時の不定出力について
電源投入時は内部電源が安定するまでの間 , 出力端子が不定となる可能性があります。
■ 内蔵 DC-DC レギュレータおよび A/D 使用時の注意について
MB91301 シリーズは , レギュレータを内蔵しており , VCC 端子に 3.3V を供給し , C 端
子にはレギュレータ用に 4.7µF 程度のバイパスコンデンサを必ず入れてください。
また , A/D コンバータも内蔵しており , AVCC には 3.3V を供給し , AVR 端子 AVSS/AVRL
端子間には 0.05µF 以上のコンデンサを必ず入れてください。
図 2.2-1 内蔵 DC-DC レギュレータおよび A/D 使用時の注意
3.3V
Vcc
3.3V
AVcc
C
4.7µF
AVRH
0.05µF
AVR
Vss
AVss/AVRL
Vss
MB91301
GND
41
第 2 章 デバイスの取扱いについて
42
第3章
CPU および制御部
FR ファミリの機能を知るために , アーキテクチャ ,
仕様 , 命令などの基本的なことがらについて説明し
ます。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 命令キャッシュ
3.4 専用レジスタ
3.5 汎用レジスタ
3.6 データ構造
3.7 ワードアライメント
3.8 メモリマップ
3.9 分岐命令
3.10 EIT ( 例外 , 割込み , トラップ )
3.11 リセット ( デバイスの初期化 )
3.12 クロック発生制御
3.13 デバイス状態制御
3.14 動作モード
43
第 3 章 CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク
セスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび,命令中で直接オペランドのアドレス
を指定できます。
ダイレクトアドレッシング領域は , アクセスするデータのサイズにより , 以下のように
異なります。
• バイトデータアクセス :
000H ∼ 0FFH
• ハーフワードデータアクセス : 000H ∼ 1FFH
• ワードデータアクセス :
44
000H ∼ 3FFH
第 3 章 CPU および制御部
■ メモリマップ
図 3.1-1 に , MB91301 シリーズのメモリマップを示します。
図 3.1-1 メモリマップ
(MB91302A)
シングル
チップ
モード
(MB91302A)
内部 ROM
外部バス
モード
(MB91302A)
外部 ROM
外部バス
モード
(MB91V301A)
内部 ROM
外部バスモード
(MODRレジスタ
ROM=1時)
(MB91V301A)
外部 ROM
外部バス
モード
0000 0000H
ダイレクト
アドレッ
シング領域
I/O
ダイレクト
アドレッ
シング領域
I/O
ダイレクト
アドレッ
シング領域
I/O
ダイレクト
アドレッ
シング領域
I/O
ダイレクト
アドレッ
シング領域
I/O
0000 0400H
I/Oマップ
参照I/O
I/O
I/Oマップ
参照I/O
I/O
I/Oマップ
参照I/O
I/O
I/Oマップ
参照I/O
I/O
I/Oマップ参照I/O
I/O
0001 0000H
0002 0000H
0003 E000H
0003 F000H
0004 0000H
I-RAM *
I-RAM *
1
I-RAM *
1
アク
セス
禁止
アク
セス
禁止
アク
セス
禁止
内蔵
RAM
4K
バイト
内蔵
RAM
4K
バイト
内蔵
RAM
4K
バイト
アク
セス
禁止
アク
セス
禁止
000F E000H
I-RAM *
1
I-RAM *
1
アクセス
禁止
アクセス
禁止
内蔵
RAM
8K
バイト
内蔵
RAM
8K
バイト
内蔵
RAM
8K
バイト
外部
領域
0004 2000H
0006 0000H
000E 0000H
1
アクセス
禁止
外部
領域
外部
領域
外部
領域
内蔵
RAM
(8 K
バイト)
ROM
emulation
000F F000H
内蔵
ROM
4K 2
バイト*
0010 0000H
アク
セス
禁止
外部
領域
外部
領域
外部
領域
外部
領域
FFFF FFFFH
MB91302Aは, ユーザROM版に加えROMなし版, 最適化リアルタイムOS内蔵版, IPL (Internal Program Loader)
内蔵版があります。
*1: 10000H~20000Hの特定の領域において4 KB分のRAMを使用できます。
詳しくは, 「■命令キャッシュ」を参照してください。
キャッシュ機能をONにした場合, 内蔵ROM/RAMを含めてアクセス領域はすべてキャッシュ対象となります。
*2: リアルタイムOS内蔵版は, リアルタイムOSカーネルが格納されます。プログラムローダ内蔵版は,
プログラムローダが格納されます。
(注意事項)内蔵ROM emulationは, MB91V301Aのみになります。
<注意事項>
各モードの設定は , INIT ネゲート後のモードベクタフェッチにより決定します ( モードの
設定に関しては ,「3.14 動作モード ■モード設定」を参照してください )。
45
第 3 章 CPU および制御部
内部アーキテクチャ
3.2
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向け
た高機能命令を導入した高性能コアです。
■ 特長
● RISC アーキテクチャの採用
基本命令 : 1 命令 1 サイクル
● 32 ビットアーキテクチャ
汎用レジスタ : 32 ビット× 16 本
● 4G バイトのリニアなメモリ空間
● 乗算器の搭載
• 32 ビット× 32 ビット乗算 : 5 サイクル
• 16 ビット× 16 ビット乗算 : 3 サイクル
● 割込み処理機能の強化
• 高速応答速度 : 6 サイクル
• 多重割込みのサポート
• レベルマスク機能 : 16 レベル
● I/O 操作用命令の強化
• メモリ - メモリ転送命令
• ビット処理命令
● 高いコード効率
基本命令語長 : 16 ビット
● 低消費電力
スリープモード / ストップモード
● ギア機能
46
第 3 章 CPU および制御部
■ 内部アーキテクチャ
FR ファミリの CPU は , 命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。32 ビット←→ 16 ビットバスコンバータは 32 ビットバス
(F-bus) に接続され , CPU と周辺リソースとのインタフェースを実現します。ハーバー
ド←→プリンストンバスコンバータは I-bus, D-bus 双方に接続され , CPU とバスコント
ローラとのインタフェースを実現します。
図 3.2-1 に , 内部アーキテクチャの接続図を示します。
図 3.2-1 図内部アーキテクチャ
FR60 CPU
D-bus
I-bus
32
I アドレス
ハーバード
32
D アドレス
外部アドレス
24
I データ
32
データRAM
D データ
32
プリンストン
バスコンバータ
32ビット
アドレス
32
16ビット
データ
32
外部データ
32
バスコンバータ
16
R-bus
F-bus
周辺リソース
内部 I/O
バスコントローラ
47
第 3 章 CPU および制御部
● CPU
CPU は , 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。
1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい
ます。パイプラインは , 以下のステージから構成されています。
• 命令フェッチ (IF)
: 命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
: フェッチした命令をデコードします。レジスタの読出し
も行います。
• 実行 (EX)
: 演算を実行します。
• メモリアクセス (MA)
: メモリに対するロードまたはストアのアクセスを行いま
す。
• ライトバック (WB)
: 演算結果 ( またはロードされたメモリデータ ) をレジス
タに書き込みます。
図 3.2-2 に , 命令パイプラインの構成を示します。
図 3.2-2 命令パイプライン
CLK
命令1
WB
命令2
MA
WB
命令3
EX
MA
WB
命令4
ID
EX
MA
WB
命令5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前に書込みバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロードストア命令,遅延スロットを持たない分岐命令および複数サ
イクル命令では , 命令の実行に複数のサイクルが必要となります。また , 命令の供給が
遅い場合も命令の実行速度が低下します。
● 32 ビット←→ 16 ビットバスコンバータ
32 ビット幅でアクセスされる F-bus と , 16 ビット幅でアクセスされる R-bus とのイン
タフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ
れを 2 回の 16 ビット幅アクセスに変換して R-bus へアクセスします。内蔵周辺回路の
一部には , アクセス幅に関して制限のあるものがあります。
48
第 3 章 CPU および制御部
● ハーバード←→プリンストンバスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は , 命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは,単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは , CPU の命令アクセスとデータアクセスに優先順位を
つけ , バスコントローラへのアクセスを制御します。この働きにより , 外部へのバスア
クセス順位が常に最適化されたものになります。
■ 命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算
とビット操作およびダイレクトアドレッシング命令をサポートしています。各命令は ,
16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率をもちま
す。命令セットの一覧は ,「付録 E 命令一覧」を参照してください。
命令セットは , 以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
算術演算命令には , 標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シ
フト , 算術演算シフト ) があります。加算命令と減算命令については , 多ワード長演算
で使用するキャリ付き演算や,アドレス計算に便利なフラグ値を変化させない演算も可
能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令があります。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令は , すべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算し
ます。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアは , バイト , ハーフワード , ワードの 3 種類のアクセス長をもちます。
また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については
ディスプレースメント付きレジスタ間接やレジスタインクリメント / デクリメント付
きレジスタ間接のメモリアドレッシングも可能です。
49
第 3 章 CPU および制御部
● 分岐
分岐グループは , 分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロッ
トを持つものと持たないものがあり , 用途に応じて最適化できます。分岐命令の詳細に
ついては「3.9 分岐命令」で説明します。
● 論理演算とビット操作
論理演算命令は , 汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND, OR,
EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の
内容を直接操作できます。メモリアドレッシングは , 一般的なレジスタ間接アドレッシン
グです。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については ,
レジスタインクリメントデクリメント付きレジスタ間接のメモリアドレッシングも可
能です。
● その他
プログラムステータスレジスタ (PS) 内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張な
どを行う命令です。また , 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ス
トア命令も備えています。
50
第 3 章 CPU および制御部
3.3
命令キャッシュ
命令キャッシュの詳細を説明します。
■ 概要
命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセス
する場合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降のアク
セス速度を速めるために使用します。
命令キャッシュデータ RAM は , RAM モードに設定することにより , ソフトウェアで
直接読出しアクセスおよび書込みアクセスができるようになります。また , 命令キャッ
シュを一度 ON にしてから OFF にする場合には , 必ず「3.3.4 命令キャッシュを使用す
る場合の設定方法」の注意事項に記載されているサブルーチンを使用してください。
51
第 3 章 CPU および制御部
3.3.1
命令キャッシュの構成
命令キャッシュの構成について説明します。
■ 本体構成
命令キャッシュの本体構成は , 以下のとおりです。
• FR ファミリの基本命令長
: 2 バイト
• ブロックの配置方式
: 2 ウェイセットアソシアティブ方式
• ブロック
: 1 ウェイは 128 ブロック構成
1 ブロックは 16 バイト (=4 サブブロック )
1 サブブロックは 4 バイト (=1 バスアクセス単位 )
■ 命令キャッシュの構成
図 3.3-1 に , 命令キャッシュの構成を示します。
図 3.3-1 命令キャッシュの構成
4 バイト
4 バイト
I3
ウェイ1
4 バイト
4 バイト
I2
I1
4 バイト
I0
キャッシュタグ サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
128 ブロック
・
・
・
・
・
・
・
・
・
キャッシュタグ サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック127
ウェイ2
キャッシュタグ サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
128 ブロック
・
・
・
・
・
・
・
・
・
キャッシュタグ サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック127
52
第 3 章 CPU および制御部
■ 命令キャッシュタグ
図 3.3-2 に , 命令キャッシュタグの構成を示します。
図 3.3-2 命令キャッシュタグの構成
ウェイ1
31
09
アドレスタグ
07
06
08
空き
05
04
03
02
01
00
SBV3 SBV2 SBV1 SBV0 TAGV 空き LRU ETLK
ウェイ2
31
09
アドレスタグ
07
06
08
空き
05
04
03
02
01
SBV3 SBV2 SBV1 SBV0 TAGV 00
空き ETLK
以下に , 命令キャッシュタグの各ビットの機能を説明します。
[bit31 ∼ bit9] アドレスタグ
アドレスタグには , 対応するブロックにキャッシュされている命令のメモリアドレ
スの上位 23 ビットが格納されています。ブロック i のサブブロック k に格納されて
いる命令データのメモリアドレス IA は ,
IA= アドレスタグ× 29+i × 24+k × 22
となります。
CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ
グ検査の結果に従い , 以下の動作をします。
• 要求された命令データがキャッシュ内に存在するとき ( ヒット )
キャッシュから CPU へサイクル内にデータを転送します。
• 要求された命令データがキャッシュ内に存在しないとき ( ミス )
外部アクセスで取得されたデータを CPU とキャッシュが同時に取得します。
[bit7 ∼ bit4] SBV3 ∼ SBV0: サブブロックバリッド
サブブロックビットバリッド (SBV3 ∼ SBV0) に "1" を設定した場合 , 関連したサブ
ブロックには , タグで示されたアドレスの現行命令データがエントリされていま
す。サブブロックには , 通常 2 つの命令が格納されます ( 即値転送命令を除く )。
[bit3] TAGV: TAG バリッドビット
アドレスタグの値が有効かどうかを示します。このビットが "0" のときは , サブバ
リッドビットとは無関係に , このブロックはインバリッド状態になります。( フラッ
シュ時 )
53
第 3 章 CPU および制御部
[bit1] LRU ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にアクセスしたエントリがウェイ1,ウェイ2のどちらであるかを示します。LRU=1
のときはウェイ 1 の , LRU=0 のときはウェイ 2 のセットのエントリが最後にアクセ
スしたことを示します。
[bit0] ETLK: エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK=1 の
ときにロック状態で , キャッシュミス時にエントリは更新されません。ただし , 無
効なサブブロックは更新されます。ウェイ 1, ウェイ 2 ともにエントリロックされて
いるときにキャッシュミスした場合は , キャッシュミス判定の 1 サイクルをロスし
た後 , 外部メモリをアクセスします。
54
第 3 章 CPU および制御部
3.3.2
制御レジスタ構成
制御レジスタには , キャッシュサイズレジスタ (ISIZE) と , 命令キャッシュコント
ロールレジスタ (ICHCR) があります。
これらのレジスタの機能について説明します。
■ キャッシュサイズレジスタ (ISIZE)
図 3.3-3 に , キャッシュサイズレジスタ (ISIZE) のビット構成を示します。
図 3.3-3 キャッシュサイズレジスタ (ISIZE) のビット構成
bit
7
6
5
4
3
2
アドレス 00000307H
-
-
-
-
-
-
-
-
-
-
-
-
1
0
初期値
SIZE1 SIZE0 ------10B
R/W
R/W
以下に , キャッシュサイズレジスタ (ISIZE) の各ビットの機能を説明します。
[bit1, bit0] SIZE1, SIZE0
これらのビットは,命令キャッシュの容量を設定するビットです。設定によりキャッ
シュサイズと IRAM 容量 , RAM モード時のアドレスマップが図 3.3-5 に示すように
変化します。
キャッシュ容量を変更した場合は,必ずフラッシュおよびエントリロッ
ク解除を行ってからキャッシュを ON にしてください。
表 3.3-1 に , キャッシュサイズレジスタについて示します。
表 3.3-1 キャッシュサイズレジスタ
SIZE1
SIZE0
0
0
1K バイト
0
1
2K バイト
1
0
4K バイト ( 初期値 )
1
1
設定禁止
キャッシュ容量
55
第 3 章 CPU および制御部
■ 命令キャッシュコントロールレジスタ (ICHCR)
命令キャッシュコントロールレジスタ (ICHCR:I-CacHe Control Register) は , 命令キャッ
シュの動作を制御します。
命令キャッシュコントロールレジスタ (ICHCR) への書込みは , 以降 3 サイクル以内に
フェッチされる命令のキャッシュ動作に影響を与えません。
図 3.3-4 に , 命令キャッシュコントロールレジスタ (ICHCR) のビット構成を示します。
図 3.3-4 命令キャッシュコントロールレジスタ (ICHCR) のビット構成
bit
アドレス 000003E7H
7
6
5
4
3
2
1
RAM
-
GBLK
ALFL
EOLK
ELKR
FLSH
R/W
-
R/W
R/W
R/W
R/W
R/W
0
初期値
ENAB 0-000000B
R/W
以下に , 命令キャッシュコントロールレジスタ (ICHCR) の各ビットの機能を説明しま
す。
[bit7] RAM: RAM モード
このビットが "1" のとき , RAM モードとして動作します。
RAM モード時は , ENAB が "0" でキャッシュオフとしてください。
[bit5] GBLK: グローバルロック
このビットは , すべてのカレントエントリを命令キャッシュにロックします。
GBLK=1 のとき , 命令キャッシュ内の有効なエントリはミス時に更新されません。
ただし , 無効なサブブロックは更新されます。その際の命令データフェッチ動作は ,
ロックしていないときと同様です。
[bit4] ALFL: オートロックフェイル
既にロックしているエントリをさらにロックしようとすると , ALFL=1 にセットさ
れます。エントリオートロック中のエントリの更新が , 既にロックされているエン
トリに対して行われようとしたとき , ユーザの意図に反して , 新たなエントリが命
令キャッシュ中にロックされません。このようなプログラムのデバッグのために参
照します。"0" 書込みでクリアされます。
[bit3] EOLK: エントリオートロック
このビットは , 命令キャッシュ内の各エントリに対して , オートロッキングの有効 ,
無効を切り換えます。EOLK=1 のときにアクセス ( ミス時のみ ) されたエントリは ,
命令キャッシュタグ内のエントリロックビットがハードウェアで "1" にセットされ
ることにより , ロックされます。ロックされたエントリは以後 , キャッシュミス時
の更新の対象になりません。ただし , 無効なサブブロックは更新されます。確実に
ロックするためには , 一度フラッシュした後 , このビットをセットしてください。
[bit2] ELKR: エントリロック解除
このビットは , すべての命令キャッシュタグ中にあるエントリロックビットのクリ
アを指定します。ELKR=1 にセットされた次のサイクルで , すべてのキャッシュタ
グ中のエントリロックビットが "0" にクリアされます。ただし , このビットの内容
が保持されるのは 1 クロックサイクルのみであり , 2 クロックサイクル以降は "0" に
クリアされます。
56
第 3 章 CPU および制御部
[bit1] FLSH: フラッシュ
このビットは , 命令キャッシュのフラッシュを指定します。FLSH=1 のとき , キャッ
シュの内容がフラッシュされます。ただし , このビットの内容が保持されるのは 1
クロックサイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。
[bit0] ENAB: イネーブル
命令キャッシュのイネーブル , ディセーブルを切り換えます。ENAB=0 のときディ
セーブル状態で , CPU からの命令アクセスは , キャッシュを介さずに外部に対して
直接行われます。ディセーブル状態では , 命令キャッシュの内容は保存されます。
図 3.3-5 RAM のアドレスマップ
Address
00010000H
00010200H
00010400H
00010600H
00010800H
00010FFFH
00014000H
00014200H
00014400H
00014600H
00014800H
00014FFFH
00018000H
00018200H
00018400H
00018600H
00018800H
00018FFFH
0001C000H
0001C200H
0001C400H
0001C600H
0001C800H
0001CFFFH
Cache off
RAM off
TAG1
Cache
4Kバイト
RAM on
TAG1
<TAG1>
<TAG1>
<TAG1>
TAG2
TAG2
TAG2
<TAG2>
<TAG2>
<TAG2>
TAG2
<TAG2>
<TAG2>
<TAG2>
<TAG2>
$RAM1
$RAM1
$RAM1
$RAM1
Cache off
RAM on
Cache
2Kバイト
RAM off
Cache
2Kバイト
RAM on
Cache
1Kバイト
RAM off
TAG1
<TAG2>
IRAM1
<IRAM1>
<$RAM1>
<$RAM1>
IRAM2
$RAM2
$RAM2
<IRAM2>
<$RAM2>
<$RAM2>
Cache
RAM on
TAG1
<TAG1>
<TAG1>
<TAG1>
<TAG1>
<TAG1>
TAG1・・・TAG RAM(way1)
TAG2・・・TAG RAM(way2)
< >・・・ミラー 領域です。
RAM on/off・・・RAM bit=I/O
TAG RAM
00010000H
00010004H
00010008H
0001000CH
00010010H
00010014H
・・・
Cache
4Kバイト
RAM off
IRAM1
IRAM1
IRAM1
IRAM1
<IRAM1>
<$RAM1>
<IRAM1>
<$RAM1>
$RAM2
$RAM2
IRAM2
IRAM2
IRAM2
IRAM2
<IRAM2>
<$RAM2>
<IRAM2>
<$RAM2>
$RAM1・・・Cache RAM(way1) IRAM1・・・I-bus RAM(way1)
$RAM2・・・Cache RAM(way2) IRAM1・・・I-bus RAM(way2)
<-00x番地のエントリ
<-00xのミラー
<-01x番地のエントリ
<-01xのミラー
CacheRAM
00018000H
00018004H
00018008H
0001800CH
00018010H
00018014H
・・・
000番地の命令(SBV0)
004番地の命令(SBV1)
008番地の命令(SBV2)
00C番地の命令(SBV3)
010番地の命令(SBV0)
014番地の命令(SBV1)
・・・
57
第 3 章 CPU および制御部
図 3.3-6 各キャッシュ容量時のメモリの割当て
Address
000H
200H
400H
600H
000H
200H
400H
600H
Cache
4Kバイト
Cache
2Kバイト
Cache
1Kバイト
$RAM1
$RAM1
IRAM1
IRAM1
$RAM2
$RAM2
$RAM1
$RAM2
IRAM2
IRAM2
Cache off
IRAM1
IRAM2
図 3.3-7 キャッシュ領域
Address
00000000H
ROMA=1
(ROMあり)
ダイレクト領域 ダイレクト領域
00010000H
00020000H
00030000H
00040000H
IRAM
00100000H
キャッシュ領域
FFFFFFFFH
58
ROMA=0
(ROMなし)
IRAM
(D-bus RAM領域の場合でも
CacheとしてはIAバスにのればキャッシュされる)
内部ROM
キャッシュ領域
チップセレクトの領域ごとに
非キャッシュ領域に設定することができます。
第 3 章 CPU および制御部
命令キャッシュの状態と設定
3.3.3
命令キャッシュの各動作モードにおける状態と , 命令キャッシュの設定方法について
説明します。
■ 各動作モード時の命令キャッシュの状態
表 3.3-2 に , 各動作モードにおける命令キャッシュの状態を示します。
ディセーブル , フラッシュの状態は , ビット操作命令などでそのビットだけ変化させた
場合の状態を示しています。
表 3.3-2 各動作モード時の命令キャッシュの状態
タ
グ
リセット直後
ディセーブル
フラッシュ
キャッシュメモリ
内容は不定
直前の状態を保持
ディセーブル中書換え不可
直前の状態を保持
アドレスタグ
内容は不定
直前の状態を保持
ディセーブル中書換え不可
直前の状態を保持
サブブロック
バリッドビット
内容は不定
直前の状態を保持
ディセーブル中書換え不可
直前の状態を保持
LRU
内容は不定
直前の状態を保持
ディセーブル中書換え不可
直前の状態を保持
エントリロック
ビット
内容は不定
直前の状態を保持
ディセーブル中書換え不可
エントリロック解除
TAG
バリッドビット
内容は不定
直前の状態を保持
ディセーブル中フラッシュ可能
すべてのエントリが
インバリッド
通常モード
直前の状態を保持
ディセーブル中フラッシュ可能
直前の状態を保持
グローバルロック
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
オートロック
フェイル
フェイルなし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
解除なし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
ディセーブル
ディセーブル
直前の状態を保持
フラッシュ
しない
直前の状態を保持
ディセーブル中書換え可能
メモリアクセス直後の
サイクルでフラッシュ
以後 "0" にもどる。
RAM
制
エントリ
御
オートロック
レ
ジ
ス エントリロック解除
タ
イネーブル
フラッシュ
59
第 3 章 CPU および制御部
■ 命令キャッシュのエントリ更新
命令キャッシュのエントリ更新は , 表 3.3-3 に示すように行います。
表 3.3-3 に , 命令キャッシュのエントリ更新の機能を示します。
表 3.3-3 命令キャッシュのエントリ更新
アンロック
ヒット 更新しない。
ミス
ロック
更新しない。
メモリをロードし , 命令キャッシュの タグミスの場合は更新しない。
サブブロックインバリッドの場合は
エントリの内容を更新する。
更新する。
■ 命令キャッシュのキャッシュ可能領域
• 命令キャッシュは , 内部 F-bus 空間 (RAM8K バイト ) および外バス空間のみをキャッ
シュ可能とします。
• DMA 転送で外部メモリの内容が更新されたとしてもキャッシュの内容とのコヒー
レンシはとりません。
このような場合はキャッシュをフラッシュすることで , コヒー
レンシを保ってください。
• 各チップセレクトの領域ごとに非キャッシュ領域に設定できます。この場合でも
キャッシュオフに比べて 1 サイクルのペナルティを受けます。
60
第 3 章 CPU および制御部
3.3.4
命令キャッシュを使用する場合の設定方法
命令キャッシュを使用する場合の設定方法を説明します。
■ 設定手順
命令キャッシュを使用する場合の設定は , 以下の要領で行います。
● 初期化
命令キャッシュを使い始める最初は,命令キャッシュの内容をクリアしておく必要があ
ります。
レジスタの FLSH ビットと ELKR ビットを "1" にして , 過去のデータを消去します。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000110,r1
// FLSH ビット (1 ビット )
// ELKR ビット (2 ビット )
stb
r1,@r0
// レジスタへ書込み
これで , 命令キャッシュが初期化されます。
● 命令キャッシュを有効 (ON) にする
命令キャッシュを有効にするには , 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
// レジスタへ書込み
● 命令キャッシュを無効 (OFF) にする
命令キャッシュを無効にするには , ENAB ビットを "0" にします。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000,r1
// ENAB ビット (0 ビット )
stb
r1,@r0
// レジスタへ書込み
この状態 ( リセット後の状態と同じ ) では , 命令キャッシュはないのと同じで何もしま
せん。
命令キャッシュのオーバヘッドが気になる処理の場合は , OFF にすると良いかも知れ
ません。
61
第 3 章 CPU および制御部
● キャッシュの内容をすべてロックする
現在 , 命令キャッシュに入っている命令が命令キャッシュから追い出されない状態に
ロックします。レジスタの GBLK ビットを "1" にします。ENAB ビットも "1" にして
おかないと , 命令キャッシュが OFF になってしまい , 命令キャッシュ内のロックした
命令が使われません。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00100001,r1
// ENAB ビット (0 ビット )
// GBLK ビット (5 ビット )
stb
r1,@r0
// レジスタへ書込み
● 特定の命令を命令キャッシュにロックする
特定の命令群 ( サブルーチン等 ) を命令キャッシュにロックするには , それらの命令を
実行する前に EOLK ビットを "1" にします。ロックした命令は , 高速な内部 ROM のよ
うにアクセスされます。
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
// レジスタへ書込み
● 命令キャッシュのロックを解除する
上記の EOLK ビットでロックした命令のロック情報を解除します。
ldi
#0x000003e7,r0
// I-Cache コントロールレジスタのアドレス
ldi
#0B00000000,r1
// キャッシュディセーブル
stb
r1,@r0
// レジスタへ書込み
ldi
#0B00000101,r1
// ELKR ビット (2 ビット )
stb
r1,@r0
// レジスタへ書込み
ロック情報だけ解除されるので , ロックされていた命令は LRU ビットの状態に応じて
順次新しい命令に置き換わります。
62
第 3 章 CPU および制御部
3.4
専用レジスタ
専用レジスタは , 特定の目的のために使用します。プログラムカウンタ (PC), プログ
ラムステータス (PS), テーブルベースレジスタ (TBR), リターンポインタ (RP), シス
テムスタックポインタ (SSP), ユーザスタックポインタ (USP) および乗除算結果レジ
スタ (MDH/MDL) が用意されています。
■ 専用レジスタ一覧
各レジスタは , 32 ビットで構成されています。
図 3.4-1 に , 専用レジスタ一覧を示します。
図 3.4-1 専用レジスタ一覧
プログラムカウンタ (PC)
−
ILM
−
SCR
CCR
プログラムステータス (PS)
テーブルベースレジスタ (TBR)
リターンポインタ (RP)
システムスタックポインタ (SSP)
ユーザスタックポインタ (USP)
乗除算結果レジスタ (MDH)
乗除算結果レジスタ (MDL)
■ プログラムカウンタ (PC)
プログラムカウンタ (PC:Program Counter) の機能について説明します。
プログラムカウンタ (PC) は , 32 ビットから構成されています。
図 3.4-2 に , プログラムカウンタ (PC) のビット構成を示します。
図 3.4-2 プログラムカウンタ (PC) のビット構成
bit 31
0
初期値
XXXXXXXXH
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に ,bit0 は "0" に設定されます。bit0 が "1" になる可能性
があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は "2" の倍数のアドレスに置く必要があ
ります。
リセットによる初期値は不定です。
63
第 3 章 CPU および制御部
■ テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR:Table Base Register) の機能について説明します。
テーブルベースレジスタ (TBR) は , 32 ビットから構成されています。
図 3.4-3 に , テーブルベースレジスタ (TBR) のビット構成を示します。
図 3.4-3 テーブルベースレジスタ (TBR) のビット構成
bit 31
0
初期値
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
■ リターンポインタ (RP)
リターンポインタ (RP:Return Pointer) の機能について説明します。
リターンポインタ (RP) は , 32 ビットから構成されています。
図 3.4-4 に , リターンポインタ (RP) のビット構成を示します。
図 3.4-4 リターンポインタ (RP) のビット構成
bit 31
0
初期値
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP:System Stack Pointer) の機能について説明します。
システムスタックポインタ (SSP) は , 32 ビットから構成されています。
図 3.4-5 に , システムスタックポインタ (SSP) のビット構成を示します。
図 3.4-5 システムスタックポインタ (SSP) のビット構成
bit 31
0
初期値
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
64
第 3 章 CPU および制御部
■ ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP:User Stack Pointer) の機能について説明します。
ユーザスタックポインタ (USP) は , 32 ビットから構成されています。
図 3.4-6 に , ユーザスタックポインタ (USP) のビット構成を示します。
図 3.4-6 ユーザスタックポインタ (USP) のビット構成
bit 31
0
初期値
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令では使用できません。
■ 乗除算結果レジスタ (MDH/MDL)
乗除算結果レジスタ (MDH/MDL:Multiply & Divide register) の機能について説明します。
乗除算結果レジスタ (MDH/MDL) は , 32 ビットから構成されています。
図 3.4-7 に , 乗除算結果レジスタ (MDH/MDL) のビット構成を示します。
図 3.4-7 乗除算結果レジスタ (MDH/MDL) のビット構成
bit 31
0
MDH
MDL
乗除算用のレジスタで , MDH と MDL があります。それぞれ 32 ビット長です。
リセットによる初期値は不定です。
● 乗算実行時の機能
32 ビット× 32 ビットの乗算の場合 , 64 ビット長の演算結果は , 以下の配置で乗除算結
果レジスタに格納されます。
• MDH: 上位 32 ビット
• MDL: 下位 32 ビット
16 ビット× 16 ビットの乗算の場合は , 以下のように結果が乗除算結果レジスタ格納さ
れます。
• MDH: 不定
• MDL: 結果 32 ビット
● 除算実行時の機能
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4Sの各命令の実行により除算を計算すると,以下
のように結果が MDL と MDH に格納されます。
• MDH: 剰余
• MDL: 商
65
第 3 章 CPU および制御部
プログラムステータスレジスタ (PS)
3.4.1
プログラムステータスレジスタ (PS:Program Status) は , プログラムステータスを
保持するレジスタで , ILM, SCR および CCR の 3 つのパートに分かれています。未
定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。書
込みは無効です。
■ プログラムステータスレジスタ (PS)
● プログラムステータスレジスタ (PS)
プログラムステータスレジスタ (PS) は , コンディションコードレジスタ (CCR), システ
ムコンディションコードレジスタ (SCR) および割込みレベルマスクレジスタ (ILM) か
ら構成されています。
図 3.4-8 に , プログラムステータスレジスタのレジスタ構成を示します。
図 3.4-8 プログラムステータスレジスタ (PS) のレジスタ構成
bit
31
20
16
10 8 7
ILM 0
SCR
CCR
● コンディションコードレジスタ (CCR)
図 3.4-9 に , コンディションコードレジスタ (CCR:Condition Code Register) の構成を示し
ます。
図 3.4-9 コンディションコードレジスタ (CCR) のレジスタ構成
bit
7
6
5
4
3
2
1
0
−
−
S
I
N
Z
V
C
初期値
-00XXXXH
以下に , 各ビットの機能を説明します。
[bit5] S: スタックフラグ
このビットは , R15 として使用させるスタックポインタを指定します。
表 3.4-1 に , このビットの設定内容を示します。
表 3.4-1 スタックフラグ (S) の機能
S
機能
0
システムスタックポインタ (SSP) が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
ユーザスタックポインタ (USP) が R15 として使用されます。
このビットは , リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にセットしてください。
66
第 3 章 CPU および制御部
[bit4] I: 割込み許可フラグ
このビットは , ユーザ割込み要求の許可 / 禁止を制御します。
表 3.4-2 に , このビットの設定内容を示します。
表 3.4-2 割込み許可フラグ (I) の機能
I
機能
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます。
ただし , スタック退避させる値はクリアする前の値です。
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されま
す。
このビットは , リセットにより "0" にクリアされます。
[bit3] N: ネガティブフラグ
このビットは , 演算結果を "2" の補数で表現された整数とみなしたときの符号を示
します。
表 3.4-3 に , このビットの設定内容を示します。
表 3.4-3 ネガティブフラグ (N) の機能
N
機能
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
このビットは , リセットによる初期状態は不定です。
[bit2] Z: ゼロフラグ
このビットは , 演算結果が "0" であったかどうかを示します。
表 3.4-4 に , このビットの設定内容を示します。
表 3.4-4 ゼロフラグ (Z) の機能
Z
機能
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
このビットは , リセットによる初期状態は不定です。
67
第 3 章 CPU および制御部
[bit1] V: オーバフローフラグ
このビットは , 演算に用いたオペランドを "2" の補数で表現される整数であるとみ
なし , 演算の結果 , オーバフローが生じたかどうかを示します。
表 3.4-5 に , このビットの設定内容を示します。
表 3.4-5 オーバフローフラグ (V) の機能
V
機能
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
このビットは , リセットによる初期状態は不定です。
[bit0] C: キャリフラグ
このビットは , 演算により最上位ビットからのキャリまたはボローが発生したかど
うかを示します。
表 3.4-6 に , このビットの設定内容を示します。
表 3.4-6 キャリフラグ (C) の機能
C
機能
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
このビットは , リセットによる初期状態は不定です。
● システムコンディションコードレジスタ (SCR)
図 3.4-10 に , システムコンディションコードレジスタ (SCR:System Condition code
Register) の構成を示します。
図 3.4-10 システムコンディションコードレジスタ (SCR) のレジスタ構成
bit
10
9
8
D1
D0
T
初期値
XX0B
以下に , システムコンディションコードレジスタ (SCR) の各ビットの機能を説明しま
す。
[bit10, bit9] D1, D0: ステップ除算用フラグ
これらのビットは , ステップ除算実行時の中間データを保持します。
除算処理の実行途中は , 変更してはいけません。
ステップ除算実行途中にほかの処理を行う場合は , プログラムステータスレジスタ
(PS) の値を退避 / 復帰することによりステップ除算の再開が保証されます。
このビットは , リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
68
第 3 章 CPU および制御部
•
DIV0S/DIV0U 命令とユーザ割込み , NMI 同時受付け
EIT 処理ルーチン内で , EIT 分岐前の PS レジスタの D0/D1 ビットを期待した処理
を行わないでください。
•
DIV0S/DIV0U 命令の直前に , ブレーク , ステップなど で停止させた場合 , PS レ
ジスタの D0/D1 ビットの表示は正しい値とならないことがあります。
ただし , 復帰後の演算結果は正しいものになります。
[bit8] T: ステップトレーストラップフラグ
このビットは , ステップトレーストラップを有効にするかどうかを指定するフラグ
です。
表 3.4-7 に , このビットの設定内容を示します。
表 3.4-7 ステップトレーストラップ (T) の機能
T
機能
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま
す。
このビットは , リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中では使用できません。
● 割込みレベルマスクレジスタ (ILM)
図 3.4-11 に , 割込みレベルマスクレジスタ (ILM) の構成を示します。
図 3.4-11 割込みレベルレジスタ (ILM) のレジスタ構成
bit
20
19
18
17
16
ILM4
ILM3
ILM2
ILM1
ILM0
初期値
01111B
割込みレベルマスクレジスタ (ILM) は , 割込みレベルマスク値を保持するレジスタで ,
この ILM の保持する値がレベルマスクに使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも高い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。
元の値が 16 ∼ 31 の場合 , 新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設
定する命令を実行すると , ( 指定した値 +16) という値が転送されます。
元の値が 0 ∼ 15 の場合は , 0 ∼ 31 の任意の値が設定可能です。
このレジスタは , リセットにより 15 (01111B) に初期化されます。
69
第 3 章 CPU および制御部
3.5
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータおよび
メモリアクセスのポインタとして使用されます。
■ 汎用レジスタ
図 3.5-1 に , 汎用レジスタの構成を示します。
図 3.5-1 汎用レジスタの構成
32 ビット
R0
[ 初期値 ]
XXXX XXXXH
...
R1
...
...
...
...
...
...
...
R12
R13
AC
...
R14
FP
XXXX XXXXH
R15
SP
0000 0000H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータおよびメ
モリアクセスのポインタとして使用されます。16 本のレジスタのうち , 以下に示すレ
ジスタは特殊な用途を想定しており , そのために一部の命令が強化されています。
• R13: 仮想アキュムレータ (AC)
• R14: フレームポインタ (FP)
• R15: スタックポインタ (SP)
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
70
第 3 章 CPU および制御部
データ構造
3.6
FR ファミリのデータ配置には , 次の 2 つがあります。
• ビットオーダリング
• バイトオーダリング
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.6-1 に , ビットオーダリングのビット構成を示します。
図 3.6-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.6-2 に , バイトオーダリングの構造を示します。
図 3.6-2 バイトオーダリングの構造
MSB
メモリ bit31 23
15
7
LSB
0
10101010 11001100 11111111 00010001
bit
7 0
n 番地 10101010
(n+1) 番地 11001100
(n+2) 番地 11111111
(n+3) 番地 00010001
71
第 3 章 CPU および制御部
3.7
ワードアライメント
命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデータ
幅で異なります。
■ プログラムアクセス
FR ファミリのプログラムは , "2" の倍数のアドレスに配置する必要があります。
プログラムカウンタ(PC)のbit0は,命令の実行に伴うPCの更新時に, "0"に設定されます。
"1"になる可能性があるのは,分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は "2" の倍数のアドレスに置かなくては
なりません。
奇数アドレス例外はありません。
■ データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
インメントがアドレスに対して施されます。
• ワードアクセス
: アドレスは , "4" の倍数
( 最下位 2 ビットは強制的に "00")
• ハーフワードアクセス
: アドレスは , "2" の倍数
( 最下位ビットは強制的に "0")
• バイトアクセス
:
─
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。例えば , @ (R13,Ri) のアドレッシング
モードの場合 , 加算前のレジスタは ( たとえ最下位ビットが "1" であっても ) そのまま
計算に使用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスク
されるわけではありません。
[ 例 ] LD @ (R13,R2),R0
R13
00002222H
R2
00000003H
+)
加算結果 00002225H
アドレス端子
72
↓ 下位2ビット強制マスク
00002224H
第 3 章 CPU および制御部
3.8
メモリマップ
FR ファミリのメモリマップを示します。
■ メモリマップ
メモリのアドレス空間は 32 ビットリニアです。
図 3.8-1 に , メモリマップを示します。
図 3.8-1 メモリマップ
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を書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
73
第 3 章 CPU および制御部
3.9
分岐命令
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を
指定できます。
■ 遅延スロット付きの分岐命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
74
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
第 3 章 CPU および制御部
3.9.1
遅延スロット付き分岐命令の動作
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅
延スロット」とよびます ) に置かれた命令を実行した後に , 分岐します。
■ 遅延スロット付き分岐命令の動作
分岐動作の前に遅延スロットの命令を実行するため , 見かけ上の実行速度が 1 サイクル
となります。そのかわり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置かなくてはなりません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2, R3
; 遅延スロット …… 分岐の前に実行される
R3, @R4
; 分岐先
…
LABEL : ST
条件分岐命令の場合,分岐条件が成立する場合も成立しない場合も遅延スロットに置か
れた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新 , 参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体例を示します。
● JMP:D @Ri / CALL:D @Ri 命令
JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更新
しても影響を受けません。
[例]
LDI:32
#Label, R0
JMP:D
@R0
LDI:8
#0,
; Label に分岐
R0
; 分岐先アドレスには影響を与えない
…
● RET:D 命令
RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受け
ません。
[例]
; これより前に設定された RP の示す
RET:D
アドレスへ分岐
MOV
R8,
RP
; リターン動作には影響を与えない
…
75
第 3 章 CPU および制御部
● Bcc:D rel 命令
Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
BC:D
Overflow
R0
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では
ANDCCR #0
参照しない
…
● CALL:D 命令
CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更新
された内容が読み出されます。
[例]
; RP を更新して分岐
CALL:D Label
MOV
RP,
R0
; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き分岐命令の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄に「1」
「a」
「b」
「c」
「d」の
どれかが記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では,ステップトレーストラッ
プは発生しません。
● 割込み /NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み /NMI を受理しま
せん。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
76
第 3 章 CPU および制御部
3.9.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
; 実行されない
R3, @R4
; 分岐先
…
LABEL ST
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れることができないために , NOP を明記した遅延ス
ロット付き分岐命令に比べ , 命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し,そう
でないときは遅延スロットなしの動作を選択することで,実行速度とコード効率を両立
させることが可能となります。
77
第 3 章 CPU および制御部
3.10
EIT ( 例外 , 割込み , トラップ )
EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中
断してほかのプログラムを実行することを指し , 例外 (Exception), 割込み
(Interrupt), トラップ (Trap) の総称です。
■ EIT ( 例外 , 割込み , トラップ )
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー
ドウェアです。
トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ 特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT からの復帰には , RETI 命令を使用します。
78
第 3 章 CPU および制御部
3.10.1
EIT の割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
表 3.10-1 に , 各レベルの割当てを示します。
表 3.10-1 EIT の割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
…
…
00011
0
…
…
3
( システム予約 )
…
…
( システム予約 )
00100
4
INTE 命令
ステップトレーストラップ
00101
…
…
01110
5
…
…
14
( システム予約 )
…
…
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
10001
…
…
11110
11111
16
17
…
…
30
31
割込み
割込み
…
…
割込み
─
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムに
より ILM に設定することはでき
ません。
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップおよび INT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
79
第 3 章 CPU および制御部
■ I フラグ
割込みの許可 / 禁止を指定するフラグです。プログラムステータスレジスタ (PS) の CCR
の bit4 として設けられています。
表 3.10-2 に , I フラグの機能を示します。
表 3.10-2 I フラグの機能
I
機能
0
割込み禁止。
INT 命令実行時 "0" にクリアされます。
ただし , スタック退避させる値はクリアする前の値です。
1
割込み許可。
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ 割込みレベルマスクレジスタ (ILM)
割込みレベルマスク値を保持するプログラムステータスレジスタ (PS)(bit20 ∼ bit16) で
す。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , 割込みレベルマスクレ
ジスタ (ILM) で示されるレベルよりも強い場合にのみ割込み要求が受付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値 +16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。
<注意事項>
設定するには STILM 命令を使用してください。
■ 割込み /NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.10-1 を
参照 ) が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立し
たときはマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
80
第 3 章 CPU および制御部
3.10.2
割込み制御レジスタ (ICR)
割込み制御レジスタ (ICR:Interrupt Control Register) は , 割込みコントローラ内に
設けられたレジスタで , 割込みの各要求に対するレベルを設定します。ICR は , 割込
み要求入力のそれぞれに対応して用意されています。ICR は I/O 空間にマッピング
されており , CPU からはバスを通してアクセスされます。
■ 割込み制御レジスタ (ICR) のビット構成
図 3.10-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。
図 3.10-1 割込み制御レジスタ (ICR) のビット構成
bit
アドレス 000440H ∼
00046FH
7
6
5
4
3
2
1
0
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
R
R/W
R/W
R/W
R/W
初期値
---111111B
以下に , 割込み制御レジスタ (ICR) の各ビットの機能を説明します。
[bit4] ICR4
このビットは , 常に "1" です。
[bit3 ∼ bit0] ICR3 ∼ ICR0
これらのビットは , 対応する割込み要因の割込みレベルの下位 4 ビットです。読込
み , 書込みが可能です。
bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。
■ 割込み制御レジスタ (ICR) のマッピング
表 3.10-3 に , 割込み要因と割込み制御レジスタおよび割込みベクタの関係を示します。
表 3.10-3 割込み要因と割込み制御レジスタ , 割込みベクタ
対応する割込みベクタ
割込み要因
番号
割込み制御レジスタ
16 進
10 進
アドレス
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
ICR01
00000441H
11H
17
TBR + 3B8H
IRQ02
ICR02
00000442H
12H
18
TBR + 3B4H
…
…
IRQ45
…
…
ICR45
…
…
0000046DH
…
…
3DH
…
…
61
…
…
TBR + 308H
IRQ46
ICR46
0000046EH
3EH
62
TBR + 304H
IRQ47
ICR47
0000046FH
3FH
63
TBR + 300H
TBR 初期値 :00F FC00H
( 注意事項 )「第 11 章 割込みコントローラ」を参照してください。
81
第 3 章 CPU および制御部
3.10.3
システムスタックポインタ (SSP)
EIT の受理および復帰動作時のデータ退避 / 復活用スタックを示すポインタとしてシ
ステムスタックポインタ (SSP) が使用されます。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP) は , 32 ビットから構成されています。
図 3.10-2 に , システムスタックポインタ (SSP) のビット構成を示します。
図 3.10-2 システムスタックポインタ (SSP) のビット構成
bit 31
0
初期値
00000000H
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
システムスタックポインタ (SSP) は , リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
■ 割込みスタック
システムスタックポインタ (SSP) により示される領域で , PC および PS の値が退避 / 復
活されます。割込み後は , SSP の示すアドレスに PC が , (SSP+4) のアドレスに PS が格
納されています。
図 3.10-3 に , 割込みスタックを示します。
図 3.10-3 割込みスタック
[例]
SSP
[割込み前]
80000000 H
[割込み後]
SSP
7FFFFFF8 H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
82
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
第 3 章 CPU および制御部
3.10.4
テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR:Table Base Register) は , EIT 用ベクタテーブルの先
頭アドレスを示すレジスタです。
■ テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR) は , 32 ビットから構成されています。
図 3.10-4 に , テーブルベースレジスタ (TBR) のビット構成を示します。
図 3.10-4 テーブルベースレジスタ (TBR) のビット構成
bit 31
0
初期値
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
テーブルベースレジスタ (TBR) は , リセットによる初期値は 000FFC00H です。
■ EIT ベクタテーブル
テーブルベースレジスタ (TBR) の示すアドレスから 1K バイトの領域が , EIT 用ベクタ
領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr
= TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
: ベクタ番号
加算結果の下位 2 ビットは , 常に "00" として扱われます。
000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
表 3.10-4 に , アーキテクチャ上のベクタテーブルを示します。
83
第 3 章 CPU および制御部
表 3.10-4 ベクタテーブル (1 / 2)
割込み要因
リセット
モードベクタ
システム予約
システム予約
システム予約
システム予約
システム予約
コプロセッサ不在トラップ
コプロセッサエラートラップ
INTE 命令
システム予約
システム予約
ステップトレーストラップ
NMI 要求 (tool)
未定義命令例外
NMI 要求
外部割込み 0
外部割込み 1
外部割込み 2
外部割込み 3
外部割込み 4
外部割込み 5
外部割込み 6
外部割込み 7
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
UART0 ( 受信完了 )
UART1 ( 受信完了 )
UART2 ( 受信完了 )
UART0 ( 送信完了 )
UART1 ( 送信完了 )
UART2 ( 送信完了 )
DMAC0 ( 終了 , エラー )
DMAC1 ( 終了 , エラー )
DMAC2 ( 終了 , エラー )
DMAC3 ( 終了 , エラー )
DMAC4 ( 終了 , エラー )
A/D
PPG0
PPG1
PPG2
PPG3
システム予約
84
割込み番号
10 進
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
16 進
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
29
2A
2B
割込み
レベル
オフセット
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
15(FH) 固定
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
ICR16
ICR17
ICR18
ICR19
ICR20
ICR21
ICR22
ICR23
ICR24
ICR25
ICR26
ICR27
3FCH
3F8H
3F4H
3F0H
3ECH
3E8H
3E4H
3E0H
3DCH
3D8H
3D4H
3D0H
3CCH
3C8H
3C4H
3C0H
3BCH
3B8H
3B4H
3B0H
3ACH
3A8H
3A4H
3A0H
39CH
398H
394H
390H
38CH
388H
384H
380H
37CH
378H
374H
370H
36CH
368H
364H
360H
35CH
358H
354H
350H
TBR デフォルト
のアドレス
000FFFFCH
000FFFF8H
000FFFF4H
000FFFF0H
000FFFECH
000FFFE8H
000FFFE4H
000FFFE0H
000FFFDCH
000FFFD8H
000FFFD4H
000FFFD0H
000FFFCCH
000FFFC8H
000FFFC4H
000FFFC0H
000FFFBCH
000FFFB8H
000FFFB4H
000FFFB0H
000FFFACH
000FFFA8H
000FFFA4H
000FFFA0H
000FFF9CH
000FFF98H
000FFF94H
000FFF90H
000FFF8CH
000FFF88H
000FFF84H
000FFF80H
000FFF7CH
000FFF78H
000FFF74H
000FFF70H
000FFF6CH
000FFF68H
000FFF64H
000FFF60H
000FFF5CH
000FFF58H
000FFF54H
000FFF50H
RN
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
6
7
11
12
−
−
−
−
8
9
10
0
1
2
3
4
5
−
−
−
15
13
14
−
−
−
第 3 章 CPU および制御部
表 3.10-4 ベクタテーブル (2 / 2)
割込み要因
U-TIMER0
U-TIMER1
U-TIMER2
タイムベースタイマ
オーバフロー
I2C I/F 0
I2C I/F 1
システム予約
システム予約
16 ビットフリーランタイマ
ICU0 ( 取込み )
ICU1 ( 取込み )
ICU2 ( 取込み )
ICU3 ( 取込み )
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
遅延割込み要因ビット
システム予約
(REALOS にて使用 )
システム予約
(REALOS にて使用 )
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
INT 命令で使用
割込み番号
割込み
レベル
オフセット
ICR28
ICR29
ICR30
34CH
348H
344H
TBR デフォルト
のアドレス
000FFF4CH
000FFF48H
000FFF44H
2F
ICR31
340H
000FFF40H
−
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
ICR32
ICR33
ICR34
ICR35
ICR36
ICR37
ICR38
ICR39
ICR40
ICR41
ICR42
ICR43
ICR44
ICR45
ICR46
ICR47
33CH
338H
334H
330H
32CH
328H
324H
320H
31CH
318H
314H
310H
30CH
308H
304H
300H
000FFF3CH
000FFF38H
000FFF34H
000FFF30H
000FFF2CH
000FFF28H
000FFF24H
000FFF20H
000FFF1CH
000FFF18H
000FFF14H
000FFF10H
000FFF0CH
000FFF08H
000FFF04H
000FFF00H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
64
40
−
2FCH
000FFEFCH
−
65
41
−
2F8H
000FFEF8H
−
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
|
255
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
50
|
FF
−
−
−
−
−
−
−
−
−
−
−
−
−
−
2F4H
2F0H
2ECH
2E8H
2E4H
2E0H
2DCH
2D8H
2D4H
2D0H
2CCH
2C8H
2C4H
2C0H
2BCH
|
000H
000FFEF4H
000FFEF0H
000FFEECH
000FFEE8H
000FFEE4H
000FFEE0H
000FFEDCH
000FFED8H
000FFED4H
000FFED0H
000FFECCH
000FFEC8H
000FFEC4H
000FFEC0H
000FFEBCH
|
000FFC00H
−
−
−
−
−
−
−
−
−
−
−
−
−
−
10 進
44
45
46
16 進
2C
2D
2E
47
−
RN
−
−
−
−
85
第 3 章 CPU および制御部
3.10.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま
す。EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した
EIT 要因のハンドラの命令を実行します。そのため , 複数の EIT 要因が同時に発生し
た場合の各要因に対するハンドラの実行順序は , 次の 2 つの要素によって決まりま
す。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
表 3.10-5 に , EIT 要因受理の優先度を示します。
表 3.10-5 EIT 要因の受理の優先度とほかの要因へのマスク
受理の優先順位
要因
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
未定義命令例外
取消し
3
INT 命令
I フラグ =0
4
コプロセッサ不在トラップ
コプロセッサエラートラップ
5
ユーザ割込み
ILM= 受理した要因のレベル
6
NMI ( ユーザ用 )
ILM=15
7
(INTE 命令 )
ILM=4 *
8
NMI ( エミュレータ用 )
ILM=4
9
ステップトレーストラップ
ILM=4
10
INTE 命令
ILM=4
―
*:INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が "6" になり
ます。MB91301 シリーズでは , エミュレータ用 NMI をデータアクセスによるブ
レークに使用しています。
86
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると同時に発生し
た EIT 要因の各ハンドラの実行順序は以下のようになります。
表 3.10-6 に , EIT 要因の各ハンドラの実行順序を示します。
表 3.10-6 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1: ほかの要因は破棄されます。
*2: INTE 命令をステップ実行したときは , ステップトレーストラップの EIT のみ
発生します。INTE による要因は無視されます。
図 3.10-5 に , 多重 EIT 処理の例を示します。
図 3.10-5 多重 EIT 処理
[例] メインルーチン
NMIのハンドラ
INT 命令
のハンドラ
優先度
①最初に実行
(高) NMI発生
(低) INT命令実行
②次に実行
87
第 3 章 CPU および制御部
3.10.6
EIT の動作
EIT の動作について説明します。
■ EIT の動作
以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すもの
とします。
また ,「次の命令のアドレス」とは , EIT を検出した命令が下記のようになっているこ
とを意味します。
• LDI が 32 のとき : PC+6
• LDI が 20 で , COPOP, COPLD, COPST, COPSV のとき : PC+4
• その他の命令のとき : PC+2
■ ユーザ割込み /NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
[ 割込み要求受理の可否判定 ]
1) 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 )
を保持するものが選択されます。
比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持す
る値が , NMI についてはあらかじめ定められた定数が使用されます。
2) 同じレベルをもつ割込み要求が複数発生しているときは,最も若い割込み番号を
もつ割込み要求が選択されます。
3)「割込みレベル≧レベルマスク値」のとき , 割込み要求はマスクされ受理されま
せん。
「割込みレベル<レベルマスク値」のときは , 4) へ移ります。
4) 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割
込み要求はマスクされ , 受理されません。I フラグが "1" ならば 5) へ移ります。
選択された割込み要求が NMI であるときは , I フラグの値にかかわらず 5) へ移
ります。
5) 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み /NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。( ) は , レジスタの
指すアドレスを表します。
[ 動作 ]
1) (TBR+ 受理した割込み要求のベクタオフセット ) → TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) 次の命令のアドレス → (SSP)
6) 受理した要求の割込みレベル → ILM
88
7) "0"
→ S フラグ
8) TMP
→ PC
第 3 章 CPU および制御部
割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
ユーザ割込み , または NMI 要因が発生している状態で , 割込みを許可するために
ORCCR, STILM, および MOV Ri, PS の各命令が実行されると , 割込みハンドラの前後
で上記命令が 2 回実行される場合があります。ただし , CPU 内のレジスタに対して , 同
じ値を 2 度設定するだけですので , 動作的に問題ありません。
EIT 処理ルーチン内では , EIT 分岐前の PS レジスタの内容を期待した処理を行わない
でください。
■ INT 命令の動作
INT #u8 命令は , 以下のように動作します。
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) (TBR+3FCH-4 × u8)
→ TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) PC+2
→ (SSP)
6) "0"
→ I フラグ
7) "0"
→ S フラグ
8) TMP
→ PC
■ INTE 命令の動作
INTE 命令は , 以下のように動作します。
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) (TBR+3D8H)
→ TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) PC+2
→ (SSP)
6) "00100"
→ ILM
7) "0"
→ S フラグ
8) TMP
→ PC
INTE 命令およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
89
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。ステップトレース
トラップ検出の条件は , 以下のとおりです。
[ ステップトレーストラップ検出の条件 ]
• T フラグ =1
• 遅延分岐命令ではないとき
• INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1) (TBR+3CCH)
→ TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) 次の命令のアドレス → (SSP)
6) "00100"
→ ILM
7) "0"
→ S フラグ
8) TMP
→ PC
T フラグをセットしてステップトレーストラップをイネーブルにしたとき , ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
未定義命令例外の検出条件は , 以下のとおりです。
• 命令のデコード時に , 未定義命令であることを検出
• 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない )
以上の条件が成立すると , 未定義命令例外が発生しブレークします。
[ 動作 ]
1) (TBR+3C4H) → TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) PC
→ (SSP)
6) "0"
→ S フラグ
7) TMP
→ PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
90
第 3 章 CPU および制御部
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると,コプロセッサ
不在トラップが発生します。
[ 動作 ]
1) (TBR+3E0H)
→ TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) 次の命令のアドレス
→ (SSP)
6) "0"
→ S フラグ
7) TMP
→ PC
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合,次にそのコプロセッサを操
作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生します。
[ 動作 ]
1) (TBR+3DCH)
→ TMP
2) SSP-4
→ SSP
3) PS
→ (SSP)
4) SSP-4
→ SSP
5) 次の命令のアドレス → (SSP)
6) "0"
→ S フラグ
7) TMP
→ PC
■ RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
1) (R15)
→ PC
2) R15+4
→ R15
3) (R15)
→ PS
4) R15+4
→ R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
■ 遅延スロットの注意事項
分岐命令の遅延スロットには , EIT に関して制約があります。
「3.9 分岐命令」を参照してください。
91
第 3 章 CPU および制御部
3.11
リセット ( デバイスの初期化 )
FR ファミリデバイスの初期化であるリセットについて説明します。
■ リセット ( デバイスの初期化 )
リセット要因が発生すると,デバイスはすべてのプログラムおよびハードウェア動作を
停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により,デバイスは初期状態からプログラムおよびハードウェア動
作を開始します。このリセット状態から動作開始にいたる一連の動作をリセットシー
ケンスとよびます。
92
第 3 章 CPU および制御部
リセットレベル
3.11.1
FR ファミリデバイスのリセット動作は 2 種類のレベルに分けられ , それぞれ発生要
因および初期化の内容が異なります。各リセットのレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最も高いレベルのリセットを , 設定初期化リセット (INIT)
とよびます。
設定初期化リセット (INIT) により初期化される主なものは , 以下のとおりです。
● 設定初期化リセット (INIT) による初期化箇所
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バス拡張インタフェースのすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細については , それぞれの機能の説明を参照してください。
<注意事項>
電源投入後は , 必ず INIT 端子で設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主なものは , 以下のとおりです。
● 動作初期化リセット (RST) による初期化箇所
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関するすべての設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
詳細については , それぞれの機能の説明を参照してください。
93
第 3 章 CPU および制御部
3.11.2
リセット要因
FR ファミリデバイスにおける各リセット発生要因と , 発生するリセットレベルにつ
いて説明します。
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことに
より知ることが可能です。各説明にあるレジスタ , フラグの詳細については ,
「3.12.5 クロック発生制御部のブロックダイヤグラム」「3.12.6 クロック発生制御部
のレジスタ」で説明します。
■ INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
この端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生し
ます。
この端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除
されます。
この端子からの要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセッ
ト要因レジスタ ) 中の bit15 (INIT ビット ) がセットされます。
この端子からの要求による設定初期化リセット (INIT) は , すべてのリセット要因中最
強のものであり , すべての入力 / 動作 / 状態よりも優先されます。
なお , 電源投入直後は必ず INIT 端子で設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間およびレギュレータの安定待ち時
間を確保するため , INIT 端子への "L" レベル入力を発振回路が必要とする安定待ち時
間の間持続してください。INIT 端子による INIT では , 発振安定待ち時間の設定は最小
値に初期化されています。
• 発生要因 : 外部 INIT 端子への "L" レベル入力
• 解除要因 : 外部 INIT 端子への "H" レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : bit15 (INIT)
94
第 3 章 CPU および制御部
■ ソフトウェアリセット (STCR:SRST ビット書込み )
スタンバイ制御レジスタ (STCR) 中の bit4 (SRST ビット ) に "0" が書き込まれると , ソフ
トウェアリセット要求が発生します。ソフトウェアリセット要求は , 動作初期化リセッ
ト (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生すると , ソフトウェアリセット要
求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit11 (SRST ビット ) がセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , タイムベースカウンタ
制御レジスタ (TBCR) 中の bit7 (SYNCR ビット ) がセットされている場合 ( 同期リセッ
トモード ), すべてのバスアクセスが停止してからでないと発生しません。このため , バ
スの使用状況によっては動作初期化リセット (RST) が発生するまでに , 長時間を要する
場合があります。
• 発生要因
:スタンバイ制御レジスタ(STCR)中のbit4 (SRSTビット) への"0"書込み
• 解除要因
: 動作初期化リセット (RST) の発生
• 発生レベル
: 動作初期化リセット (RST) 要求
• 対応フラグ
: bit11 (SRST)
■ ウォッチドッグリセット
ウォッチドッグタイマ制御レジスタ (RSRR) に対して書込みを行うと , ウォッチドッグ
タイマが起動します。その後 , RSRR 中の bit9, bit8 (WT1, WT0 ビット ) で設定した周期
内にタイムベースカウンタクリアレジスタ (CTBR) へ A5H/5AH 書込みが行われないと ,
ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられて設定初期化リセット (INIT) が発生するかまたは動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット(INIT)が発生した場合,リセッ
ト要因レジスタ (RSRR) 中の bit13 (WDOG ビット ) がセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
• 発生要因
: ウォッチドッグタイマの設定周期経過
• 解除要因
: 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル
: 設定初期化リセット (INIT)
• 対応フラグ
: bit13 (WDOG)
95
第 3 章 CPU および制御部
3.11.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
各リセットレベルにおけるリセットシーケンスの動作内容について説明します。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
2) 発振安定待ち時間 (STCR の bit3, bit2 (OS1, OS0 ビット ) で設定 ) の間 , 動作初期
化リセット (RST) 状態を保持 , 内部クロック停止
3) 動作初期化リセット (RST) 状態 , 内部クロック動作開始
4) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
5) 000FFFF8H 番地より , モードベクタの読出し
6) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
7) 000FFFFCH 番地より , リセットベクタの読出し
8) プログラムカウンタ (PC) へ , リセットベクタの書込み
9) プログラムカウンタ (PC) の示す番地より , プログラム動作開始
■ 動作初期化リセット (RST) 解除シーケンス
このリセットは , ソフトウェアリセットで発生します。
動作初期化リセット (RST) 要求が解除されると , デバイスは以下の動作を順に実行しま
す。
1) 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
2) 000FFFF8H 番地より , モードベクタの読出し
3) 000007FDH 番地の MODR ( モードレジスタ ) へ , モードベクタの書込み
4) 000FFFFCH 番地より , リセットベクタの読出し
5) プログラムカウンタ (PC) へ , リセットベクタの書込み
6) プログラムカウンタ (PC) が示す番地より , プログラム動作開始
96
第 3 章 CPU および制御部
3.11.4
発振安定待ち時間
デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき ,
自動的に発振安定待ち状態に遷移します。この機能により , 発振開始後の安定してい
ない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , スタンバイ制御レジスタ (STCR) で設定された安定待ち
時間の経過を待ちます。
発振安定待ち動作について説明します。
■ 発振安定待ち発生要因
発振安定待ちの発生要因を , 以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
● ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。
ただし , 設定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット
(INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は,ストップモードが解除された要因に対応した状態へ遷移し
ます。
• 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時 :
通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時 :
動作初期化リセット (INIT) 状態へ遷移します。
• 動作初期化リセット (RST) 要求による復帰時 :
動作初期化リセット (RST) 状態へ遷移します。
● PLL 選択時の異常状態発生からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生し
た場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。
97
第 3 章 CPU および制御部
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタは一度初期化された後 , 発振安定待ち時間の計測を開始します。
スタンバイ制御レジスタ (STCR) の bit3, bit2 (OS1, OS0 ビット ) により , 発振安定待ち
時間を 4 種類のうちから選択して設定できます。
一度選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初期化
されません。それ以外の , ウォッチドッグリセット / 低電圧検出スタンバイによる設定
初期化リセット (INIT) や , 動作初期化リセット (RST) では , リセット発生以前に設定し
た発振安定待ち時間が保持されます。
発振安定待ち時間選択の4種類の設定項目は,それぞれ以下の用途を想定してあります。
• OS1, OS0="00" : 発振安定待ち時間なし ( ストップモードで PLL も発振器を停止さ
せない場合 )
• OS1, OS0="01" : PLL ロック待ち時間 ( 外部クロック入力や , ストップモードで発
振器を停止させない場合 )
• OS1, OS0="10" : 発振安定待ち時間 ( 中 )( セラミック振動子などの安定が速い発振
子を使用する場合 )
• OS1, OS0="11" : 発振安定待ち時間 ( 長 )( 一般の水晶発振子などを使用する場合 )
なお , 電源投入直後は必ず INIT 端子で , 設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間およびレギュレータの安定待ち時
間を確保するため , INIT 端子への "L" レベル入力を発振回路が必要とする安定待ち時
間の間持続してください (INIT 端子による INIT では , 発振安定待ち時間の設定は最小
値に初期化されています )。
98
第 3 章 CPU および制御部
3.11.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , タイムベースカウンタ制御レジスタ (TBCR) 中の bit7
(SYNCR ビット ) によってどちらのモードで動作するかを設定します。このモード
設定は , 設定初期化リセット (INIT) のみで初期化されます。設定初期化リセット
(INIT) は , 常に非同期でリセット動作を行います。
各モードの動作について説明します。
■ 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状態
へ遷移する動作を , 通常リセット動作とよびます。
このモードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの
動作状態にかかわらず , 即時にリセット (RST) 状態へ遷移します。
このモードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その
結果を保証できません。しかし , それらの要求を確実に受け付けることは可能です。
タイムベースカウンタ制御レジスタ (TBCR) 中 bit7 (SYNCR ビット ) が "0" のとき , 通
常リセットモードとなります。設定初期化リセット (INIT) の発生後の初期値は , 通常
リセットモードとなります。
■ 同期リセット動作
動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止してから
動作初期化リセット (RST) 状態へ遷移する動作を , 同期リセット動作とよびます。
このモードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが
行われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると,それによって内部バスに対してスリープ要求が発行され
ます。各バスが動作を切り上げてスリープ状態に移行すると,動作初期化リセット(RST)
状態へ遷移します。
このモードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため ,
すべてのバスアクセスの結果は保証されます。
しかし , バスアクセスが何らかの理由によって停止しない場合は , その間各要求を受け
付けることができなくなります。このような場合でも , 設定初期化リセット (INIT) は
即座に有効となります。
バスアクセスが停止しない要因には , 以下の場合があげられます。
• 外部拡張バスインタフェースに対してバス解放要求 (BRQ) が入力され続け , バス解
放アクノリッジ (BGRNT) が有効となっている場合で , 内部バスから新たなバスアク
セス要求が発生しているような場合。
• 外部拡張バスインタフェースに対してレディ要求 (RDY) が入力され続け , バスウェ
イトが有効となっている場合。また , 次の場合においては , 最終的には各状態へ遷
移しますが , 遷移するまでに長時間かかってしまいます。
• SDRAM インタフェースが起動されており , スリープ時のセルフリフレッシュを行
う設定となっている場合 ( セルフリフレッシュモード設定完了までは状態遷移しま
せん )。
99
第 3 章 CPU および制御部
参考
DMA コントローラについては , 各要求の受付けによって転送を停止しますので , 各状態へ
の遷移を遅延させることはありません。タイムベースカウンタ制御レジスタ (TBCR) 中の
bit7 (SYNCR ビット ) が "1" のとき , 同期リセットモードとなります。設定初期化リセッ
ト (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
100
第 3 章 CPU および制御部
3.12
クロック発生制御
クロックの発生とその制御について説明します。
■ クロック発生制御
FR ファミリデバイスの内部動作クロックは , 以下のように発生されます。
• ソースクロックの選択 : クロックの供給源を選択します。
• ベースクロックの発生 : ソースクロックを 2 分周または PLL 発振させ , 基本クロッ
クを生成します。
• 各内部クロックの発生 : ベースクロックを分周し , 各部に供給する 3 種類の動作ク
ロックを生成します。
以下 , 各クロック生成とその制御について説明します。各解説にあるレジスタ , フラグ
の詳細な説明は ,「3.12.5 クロック発生制御部のブロックダイヤグラム」,「3.12.6 ク
ロック発生制御部のレジスタ」を参照してください。
表 3.12-4, 表 3.12-9, 表 3.12-13, 表 3.12-16, 表 3.12-20, 表 3.12-21, 表 3.12-22 に示してある
φ は , ソースクロックを 2 分周または PLL 発振させた基本クロックを指します。したがっ
てシステムベースクロックは上記のベースクロックの発生のところで生成されるク
ロックです。
■ ソースクロック
● 自励発振モード (X0/X1 端子入力 )
外部発振端子に発振子を接続し,内蔵発振回路で生成した原発振をソースクロックとす
るモードです。外部バスクロックを含むすべてのクロック供給源は , FR ファミリデバ
イス自身となります。
メインクロック : X0/X1 端子入力から生成し , 高速クロックとして使用することを想
定したものです。
メインクロックは , 制御可能な内蔵メイン PLL を用いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して発生させます。
• メインクロックを 2 分周したもの
• メインクロックをメイン PLL で逓倍したもの
ソースクロックの選択制御は , クロックソース制御レジスタ (CLKR) の設定によって行
います。
101
第 3 章 CPU および制御部
3.12.1
PLL 制御
メインのソースクロックに対応した PLL 発振回路それぞれについて , 動作 ( 発振 )
許可 / 禁止と逓倍率設定を独立に制御することが可能です。各制御は , クロックソー
ス制御レジスタ (CLKR) の設定によって行います。
各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , クロックソース制御レジスタ (CLKR) の bit10
(PLL1EN ビット ) の設定によって行います。
● PLL 動作制御
どちらのビットも設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作は
停止しています。停止中は , ソースクロックとして , PLL 出力を選択することはできま
せん。
プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設
定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用でき
ます。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります )。ストップモードに移行する際
などで PLL を停止させたい場合は , 一度ソースクロックをメインクロックの 2 分周し
たものに選択し直した後 , PLL を停止させてください。
なお , スタンバイ制御レジスタ (STCR) の bit0 (OSCD1 ビット ) により , ストップモー
ド中の発振が停止するように設定してある場合 , 対応する PLL はストップモード遷移
時に自動的に停止しますので , 動作停止を改めて設定する必要はありません。その後 ,
ストップモードから復帰する際 , PLL は自動的に発振動作を開始します。ストップモー
ド中の発振が停止しないように設定してある場合は , PLL は自動では停止しません。こ
の場合は,必要であればストップモード移行前にあらかじめ動作停止を設定してくださ
い。
■ PLL 逓倍率
メイン PLL の逓倍率は , クロックソース制御レジスタ (CLKR) の bit14 ∼ bit12 (PLL1S2,
PLL1S1, PLL1S0 ビット ) によって設定します。
設定初期化リセット (INIT) 後は , 全ビットが "0" に初期化されています。
● PLL 逓倍率設定
自励発振モードで PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 ,
PLL を動作許可する前または同時に設定してください。逓倍率変更後は , ロック待ち
時間経過後にソースクロックを切り換えてください。この際の PLL ロック待ち時間は ,
タイムベースタイマ割込みを使用できます。
動作中に PLL 逓倍率設定を変更する場合 , 一度ソースクロックを該当 PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後に
ソースクロックを切り換えてください。
102
第 3 章 CPU および制御部
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し,設定された発振安定待ち時間が経
過するまでの間はプログラム動作が停止します。
PLL 以外にクロックソースを切り換えた場合は , プログラム動作は停止しません。
103
第 3 章 CPU および制御部
3.12.2
発振安定待ち /PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち時
間が必要となります (「3.11.4 発振安定待ち時間」を参照してください )。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
各種のケースにおける待ち時間について説明します。
● 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL はどちらも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要はありません。
● 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。INIT 端子入力後の初めの発
振安定待ち状態では , 設定時間は最小値に初期化されているため , すぐにこの状態は終
了し , 動作初期化リセット (RST) 状態へと遷移します。
プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が
発生した場合の解除時には,プログラムで設定された時間の発振安定待ち時間を内部的
に発生します。
これらの状態においては , PLL はどちらも動作許可されていないため , ロック待ち時間
はここでは考慮する必要はありません。
● PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合 , 設定変更後に
プログラム動作は一時停止して発振安定待ち ( ロック待ち ) 状態に遷移し , 設定されて
いる発振安定待ち ( ロック待ち ) 時間の経過後にプログラム動作に復帰します。
この動作により , タイムベースカウンタは一度初期化されます。
● ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムで設
定された時間の発振安定待ち時間を内部的に発生します。ストップモード中に , メイン
クロック用発振回路を停止させる設定であった場合,その発振回路の発振安定待ち時間
とメイン PLL のロック待ち時間のうち長い方の時間が必要となります。ストップモー
ドに遷移させる前に , あらかじめその発振安定待ち時間を設定しておいてください。
ストップモード中に , メインクロック用発振回路を停止させない設定であった場合は ,
PLL は自動では動作停止しません。PLL を停止させない限り発振安定待ち時間は必要
となりません。ストップモードに遷移させる前に , あらかじめ発振安定待ち時間を最小
値に設定しておくようにしてください。
104
第 3 章 CPU および制御部
3.12.3
クロック分配
ソースクロックから発生されたベースクロックを元に , 各機能用の動作クロックをそ
れぞれ生成します。内部動作クロックは全部で 4 種類あり , それぞれが独立に分周
比を設定できます。
各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
このクロックを使用する回路には , 以下のようなものがあります。
• CPU
• 内蔵 RAM
• ビットサーチモジュール
• I-bus, D-bus, X-bus, F-bus
• DMA コントローラ
• DSU ( 開発ツールインタフェース回路 )
動作可能な上限周波数は 68MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
このクロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• PPG
動作可能な上限周波数は 34MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
105
第 3 章 CPU および制御部
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
このクロックを使用する回路には , 以下のようなものがあります。
• 外部拡張バスインタフェース
• 外部 CLK 出力バス
• バスインタフェースポート
動作可能な上限周波数は 68MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
106
第 3 章 CPU および制御部
3.12.4
クロック分周
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できま
す。この機能によって , 各回路に最適な動作周波数を設定できます。
■ クロック分周
分周比は , 基本クロック分周設定レジスタ 0 (DIVR0) および基本クロック分周設定レジ
スタ 1 (DIVR1) で設定します。各レジスタには , 各クロックに対応する 4 ビットずつの
設定ビットがあり , ( レジスタ設定値 +1) がそのクロックのベースクロックに対する分
周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% となります。
設定値の変更があった場合,設定後次のクロックの立上りから変更後の分周比が有効と
なります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソー
スクロックを高速なものに変更する前に必ず分周比の設定を行ってください。
各クロックには , 動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 ,
動作は保証されませんので注意してください。ソースクロック選択の変更設定との順
序を間違えないように特に留意してください。
107
第 3 章 CPU および制御部
クロック発生制御部のブロックダイヤグラム
3.12.5
クロック発生制御部のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 3.12-1 に , クロック発生制御部のブロックダイヤグラムを示します。
図 3.12-1 中のレジスタの詳細な説明は ,「 3.12.6 クロック発生制御部のレジスタ」を
参照してください。
図 3.12-1 クロック発生制御部のブロックダイヤグラム
[クロック生成部]
DIVR0,1レジスタ
セレクタ
周辺クロック分周
セレクタ
外部バスクロック分周
セレクタ
CPUクロック
停止制御
R-bus
CPUクロック分周
周辺クロック
外部バスクロック
CLKRレジスタ
X1
発振回路
PLL
セレクタ
X0
1/2
内部割込み
[ストップ・スリープ制御部]
内部リセット
ストップ状態
STCRレジスタ
状態遷移
制御回路
SLEEP状態
リセット発生F/F
内部リセット(RST)
リセット発生F/F
内部リセット(INIT)
[リセット要因回路]
INIT端子
RSRRレジスタ
[ウォッチドッグ制御部]
ウォッチドッグF/F
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
割込み許可
108
カウンタクロック
セレクタ
オーバフロー検出F/F
タイムベースタイマ
割込み要求
第 3 章 CPU および制御部
3.12.6
クロック発生制御部のレジスタ
クロック発生制御部で使用するレジスタの機能について説明します。
■ リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
図 3.12-2 に , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) の
ビット構成を示します。
図 3.12-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
bit
アドレス 00000480H
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
INIT
R
R
WDOG
R
R
SRST
R
R
WT1
R/W
WT0
R/W
1
X
0
0
X
0
X
0
X
-
0
X
-
0
X
0
0
0
0
0
0
- : 要因により変化します。
X : 初期化されません。
直前に発生したリセットの要因の保持,ウォッチドッグタイマの周期設定および起動制
御を行うレジスタです。このレジスタを読み出すと , 保持されたリセット要因は読出し
後にクリアされます。読み出すまでの間に複数回のリセットが発生した場合 , リセット
要因フラグは累積され , 複数のフラグがセットされることになります。
このレジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リ
セット (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
以下に , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) の各ビッ
トの機能を説明します。
[bit15] INIT (INITialize reset occured)
このビットは , INIT 端子入力によるリセット (INIT) の発生の有無を示します。
表 3.12-1 に , INIT の機能を示します。
表 3.12-1 INIT の機能
INIT
機能
0
INIT 端子入力によるリセット (INIT) は発生していません。
1
INIT 端子入力によるリセット (INIT) が発生しました。
• 読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit14] (reserved bit)
このビットは , 予約ビットです。
109
第 3 章 CPU および制御部
[bit13] WDOG (WatchDOG reset occured)
このビットは , ウォッチドッグタイマによるリセット (INIT) の発生の有無を示しま
す。表 3.12-2 に , WDOG の機能を示します。
表 3.12-2 DOG の機能
WDOG
機能
0
ウォッチドッグタイマによるリセット (INIT) は発生していません。
1
ウォッチドッグタイマによるリセット (INIT) が発生しました。
• INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit12] (reserved bit)
このビットは , 予約ビットです。
[bit11] SRST (Software ReSeT occured)
このビットは , スタンバイ制御レジスタ (STCR) の SRST ビット書込み ( ソフトウェ
アリセット ) によるリセット (RST) の発生の有無を示します。
表 3.12-3 に , SRST の機能を示します。
表 3.12-3 SRST の機能
SRST
機能
0
ソフトウェアリセットによるリセット (RST) は発生していません。
1
ソフトウェアリセットによるリセット (RST) が発生しました。
• INIT 端子入力によるリセット (INIT) または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit10] (reserved bit)
このビットは , 予約ビットです。
110
第 3 章 CPU および制御部
[bit9, bit8] WT1, WT0 (Watchdog interval Time select)
このビットは , ウォッチドッグタイマウォッチドッグの周期を設定します。
このビットに書き込む値によって , ウォッチドッグタイマの周期を表 3.12-4 に示す
4 種類のうちから選択します。
表 3.12-4 に , ウォッチドッグタイマの周期を示します。
表 3.12-4 ウォッチドッグタイマの周期設定
WT0
ウォッチドッグリセットの発
生を抑止するために最低限必
要な CTBR への書込み間隔
CTBR への最終 5AH 書込みから
WT1
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
ウォッチドッグリセットが発生
するまでの時間
( 注意事項 ) φ はシステムベースクロックの周期
• リセット (RST) により "00B" に初期化されます。
• 読出し可能で , 書込みはリセット (RST) 後 1 回のみ有効です。それ以降の書込み
は無効です。
111
第 3 章 CPU および制御部
■ スタンバイ制御レジスタ (STCR)
図 3.12-3 に , スタンバイ制御レジスタ (STCR) のビット構成を示します。
図 3.12-3 スタンバイ制御レジスタ (STCR) のビット構成
bit
アドレス 00000481H
7
0
0
0
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
6
STOP SLEEP
R/W
R/W
0
0
0
5
4
3
2
1
0
HIZ
R/W
SRST
R/W
OS1
R/W
OS0
R/W
R/W
OSCD1
R/W
1
1
X
1
1
1
0
X
X
0
X
X
1
1
X
1
1
X
スタンバイ制御レジスタ (STCR) は , デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか,発振安定待ち時間の設定およびソフトウェアリセットの発
行を行います。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8 SYNCS ビットにて設定します ) を使用した上で , 以下のシーケンス
を必ず使用してください。
(LDI
(LDI
#value_of_standby, R0) ; value_of_standby は , STCR へのライトデータ
#_STCR, R12)
; _STCR は , STCR のアドレス (481H)
STB
R0, @R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB
@R12, R0
; 同期スタンバイのための STCR リード
LDUB
@R12, R0
; もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
さらに , スタンバイ復帰後に , 復帰要因である割込みハンドラへ分岐するように , I フラグ ,
ILM および ICR を設定してください。
112
第 3 章 CPU および制御部
以下に , スタンバイ制御レジスタ (STCR) の各ビットの機能を説明します。
[bit7] STOP (STOP mode)
このビットは , ストップモードへの遷移を指示します。bit6 (SLEEP ビット ) とこの
ビット両方に "1" を書き込んだ場合は , このビット (STOP) の方が優先となり , ス
トップモードへ遷移します。
表 3.12-5 に , STOP の機能を示します。
表 3.12-5 STOP の機能
STOP
機能
0
ストップモードへ遷移しません。( 初期値 )
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit6] SLEEP (SLEEP mode)
このビットは , スリープモードへの遷移を指示します。bit7 (STOP ビット ) とこの
ビット両方に "1" を書き込んだ場合は , bit7 (STOP ビット ) の方が優先となり , ス
トップモードへ遷移します。
表 3.12-6 に , SLEEP の機能を示します。
表 3.12-6 SLEEP の機能
SLEEP
機能
0
スリープモードへの遷移は行いません。( 初期値 )
1
スリープモードへ遷移します。
• リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit5] HIZ (HIZ mode)
このビットは , ストップモード時の端子状態を制御します。
表 3.12-7 に , HIZ の機能を示します。
表 3.12-7 HIZ の機能
HIZ
機能
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。
( 初期値 )
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
113
第 3 章 CPU および制御部
[bit4] SRST (Software ReSeT)
このビットは , ソフトウェアリセット (RST) の発行を指示します。
表 3.12-8 に , SRST の機能を示します。
表 3.12-8 SRST の機能
SRST
機能
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットを発行しません。( 初期値 )
• リセット (RST) により "1" に初期化されます。
• 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
[bit3, bit2] OS1, OS0 (Oscillation Stabilization time select)
これらのビットは , リセット (INIT) 後およびストップモード復帰後等における , 発
振安定待ち時間を設定します。
これらのビットに書き込む値により , 発振安定待ち時間を表 3.12-9 に示す 4 種類の
うちから選択します。
表 3.12-9 に , 発振安定待ち時間の設定を示します。
表 3.12-9 発振安定待ち時間の設定
OS1
OS0
0
0
φ × 21 ( 初期値 )
0.238 µs
0
1
φ × 211
240.9 µs
1
0
φ × 216
7.71 ms
1
1
φ × 222
493 ms
発振安定待ち時間
原発振 17MHz の場合
( 注意事項 ) φ はシステムベースクロックの周期 , この場合は原発振入力の 2 倍
の周期
• INIT 端子入力によるリセット (INIT) によって , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit1] (reserved bit)
• リセット (INIT) により "1" に初期化されます。
• 書込み時は "1" を書くようにしてください。
114
第 3 章 CPU および制御部
[bit0] OSCD1 (OSCillation Disable mode for XIN1)
このビットは , メイン発振入力 (XIN1) における , ストップモード時の発振停止を制
御します。
表 3.12-10 に , OSCD1 の機能を示します。
表 3.12-10 OSCD1 の機能
OSCD1
機能
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します。( 初期値 )
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
■ タイムベースカウンタ制御レジスタ (TBCR)
図 3.12-4 に , タイムベースカウンタ制御レジスタ (TBCR) のビット構成を示します。
図 3.12-4 タイムベースカウンタ制御レジスタ (TBCR) のビット構成
bit
アドレス 00000482H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
TBIF
R/W
TBIE
R/W
TBC2
R/W
TBC1
R/W
TBC0
R/W
0
0
0
0
X
X
X
X
X
X
2
1
0
SYNCR SYNCS
R/W
R/W
R/W
X
X
0
X
0
X
タイムベースカウンタ制御レジスタ (TBCR) は , タイムベースタイマ割込みなどを制御
するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , リセッ
ト動作のオプション機能の設定を行います。
以下に , タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を説明します。
[bit15] TBIF (TimeBasetimer Interrupt Flag)
このビットは , タイムベースタイマ割込みフラグです。タイムベースカウンタが設
定されたインターバル時間 (bit13 ∼ bit11 の TBC2 ∼ TBC0 ビットで設定 ) を経過し
たことを示します。
bit14 (TBIE ビット ) により割込み発生が許可 (TBIE=1) されているときに , このビッ
トが "1" になると , タイムベースタイマ割込み要求が発生します。
表 3.12-11 に , タイムベースタイマ割込みフラグ (TBIF) の機能を示します。
表 3.12-11 タイムベースタイマ割込みフラグ (TBIF) の機能
TBIF
機能
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過 ( タイムベースカウンタ
出力の立下りエッジ検出 )
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込
んでもビット値は変化しません。また , リードモディファイライト系命令での読
出し値は , 常に "1" となります。
115
第 3 章 CPU および制御部
[bit14] TBIE (TimeBasetimer Interrupt Enable)
このビットは , タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。このビットが "1" のときに , ビットの TBIF ビットが "1" になると , タイムベー
スタイマ割込み要求が発生します。
表 3.12-12 に , タイムベースタイマ割込み要求出力許可ビット (TBIE) の機能を示し
ます。
表 3.12-12 タイムベースタイマ割込み要求出力許可ビット (TBIE) の機能
TBIF
機能
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit13 ∼ bit11] TBC2, TBC1, TBC0 (TimeBasetimer Counting time select)
これらのビットは , タイムベースタイマで使用するタイムベースカウンタのイン
ターバル時間を設定します。
これらのビットに書き込む値により , インターバル時間を表 3.12-13 に示す 8 種類の
うちから選択します。
表 3.12-13 に , インターバル時間の設定を示します。
表 3.12-13 インターバル時間の設定
TBC2
TBC1
TBC0
タイマインターバル時間
原発振 17MHz および
PLL が 4 逓倍の場合
0
0
0
φ × 211
30.1 µs
0
0
1
φ × 212
60.2 µs
0
1
0
φ × 213
120.5 µs
0
1
1
φ × 222
61.7 ms
1
0
0
φ × 223
123.4 ms
1
0
1
φ × 224
246.7 ms
1
1
0
φ × 225
493.4 ms
1
1
1
φ × 226
986.9 ms
( 注意事項 ) φ はシステムベースクロックの周期
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• 読出しおよび書込みが可能です。
116
第 3 章 CPU および制御部
[bit10] (reserved bit)
このビットは , 予約ビットです。読出し値は不定で , 書込みは動作に影響を与えま
せん。
[bit9] SYNCR (SYNChronous Reset enable)
このビットは , 同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常
リセット動作を行うか , すべてのバスアクセスが停止してから動作初期化リセット
(RST) を行う同期リセット動作を行うかを選択します。
表 3.12-14 に , 同期リセット動作許可ビット (SYNCR) の機能を示します。
表 3.12-14 同期リセット動作許可ビット (SYNCR) の機能
TBIF
機能
0
通常リセット動作 ( 初期値 )
1
同期リセット動作
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit8] SYNCS (SYNChronous Standby enable)
同期スタンバイ動作許可ビットです。
スタンバイモード ( スリープモードまたはストップモード ) を使用する際は , 必ず
"1" を設定してください。
表 3.12-15 に , 同期スタンバイ動作許可ビット (SYNCS) の機能を示します。
表 3.12-15 同期スタンバイ動作許可ビット (SYNCS) の機能
SYNCS
機能
0
通常スタンバイ動作 ( 初期値 )
1
同期スタンバイ動作
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
117
第 3 章 CPU および制御部
■ タイムベースカウンタクリアレジスタ (CTBR)
図 3.12-5 に , タイムベースカウンタクリアレジスタ (CTBR) のビット構成を示します。
図 3.12-5 タイムベースカウンタクリアレジスタ (CTBR) のビット構成
bit
アドレス 000483H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
D7
W
D6
W
D5
W
D4
W
D3
W
D2
W
D1
W
D0
W
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
タイムベースカウンタクリアレジスタ (CTBR) は , タイムベースカウンタを初期化する
ためのレジスタです。
このレジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。"A5H" 書込みと "5AH" 書込みの間の時間
は制限がありませんが , "A5H" 書込みの後に "5AH" 以外のデータを書き込むと , 再度
"A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアし
ますので , これらの条件が発生すると , ウォッチドックリセットは自動的に延期されま
す。ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合にはウォッチ
ドッグリセットは延期されませんので , 長時間外部バスをホールドする場合は , スリー
プモードにしてからホールド要求 (BRQ) を入力してください。
このレジスタの読出し値は不定です。
<注意事項>
このレジスタを使用してタイムベースカウンタをクリアすると,発振安定待ち間隔,ウォッ
チドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。
■ クロックソース制御レジスタ (CLKR)
図 3.12-6 に , クロックソース制御レジスタ (CLKR) のビット構成を示します。
図 3.12-6 クロックソース制御レジスタ (CLKR) のビット構成
bit
15
14
アドレス 000484H Reserved PLL1S2
R/W
R/W
初期値 (INIT)
初期値 (RST)
0
X
0
X
13
PLL1S1
R/W
0
X
12
11
10
PLL1S0 Reserved PLL1EN
R/W
R/W
R/W
0
X
0
X
0
X
9
8
CLKS1
R/W
CLKS0
R/W
0
X
0
X
クロックソース制御レジスタ (CLKR) は , システムのベースクロックとするクロック
ソースの選択や PLL の制御を行うレジスタです。このレジスタでクロックソースを 2
種類のうちから選択します。また , PLL の動作許可および逓倍率の選択を制御します。
以下に , クロックソース制御レジスタ (CLKR) の各ビットの機能を説明します。
[bit15] (reserved bit)
このビットは , 予約ビットです。
118
第 3 章 CPU および制御部
[bit14 ∼ bit12] PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2 ∼ 0)
これらのビットは , PLL の逓倍率選択ビットです。表 3.3-2 に示す PLL の逓倍率を
8 種類 (MB91301 シリーズでは 4 種類をサポート ) のうちから選択します。
これらのビットは , クロックソースとしてメイン PLL を選択している間は書換えを
禁止します。
表 3.12-16 に , PLL の逓倍率の設定を示します。
表 3.12-16 メイン PLL 逓倍率の設定
PLL1S2
PLL1S1
PLL1S0
メイン PLL 逓倍率
0
0
0
× 1 ( 等倍 )
*2
0
0
1
× 2 (2 逓倍 )
*2
0
1
0
× 3 (3 逓倍 )
φ*1=19.6 ns (51.0 MHz)
0
1
1
× 4 (4 逓倍 )
φ*1=14.7 ns (68.0 MHz)
1
0
0
× 5 (5 逓倍 )
*2
1
0
1
× 6 (6 逓倍 )
設定禁止
1
1
0
× 7 (7 逓倍 )
設定禁止
1
1
1
× 8 (8 逓倍 )
設定禁止
原発振 17MHz の場合
*1:φ はシステムベースクロックの周期
*2:MB91301 シリーズでは未サポート
( ただし , PLL の出力が 48MHz ∼ 68MHz の範囲の場合にはサポートしています。)
• リセット (INIT) により "000B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
動作可能な上限周波数は 68MHz ですので , これを超える設定をしないでください。
[bit11] (reserved bit)
このビットは , 予約ビットです。
[bit10] PLL1EN (PLL1 ENable)
このビットは , メイン PLL の動作許可ビットです。
このビットは,クロックソースとしてPLLを選択している間は書換えを禁止します。
また , このビットが "0" の間はクロックソースとしてメイン PLL を選択することを
禁止します (bit9, bit8 の CLKS1, CLKS0 ビットの設定による )。
119
第 3 章 CPU および制御部
表 3.12-17 に , メイン PLL の動作許可ビット (PLL1EN) の機能を示します。
表 3.12-17 メイン PLL の動作許可ビット (PLL1EN) の機能
PLL1EN
機能
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit9, bit8] CLKS1, CLKS0 (CLocK source Select)
これらのビットは , FR コアで使用するクロックソースを設定します。
これらのビットに書き込む値により , クロックソースを表 3.12-19 に示す 2 種類のう
ちから選択します。
表 3.12-18 に , クロックソースの設定を示します。
表 3.12-18 クロックソースの設定
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 ( 初期値 )
0
1
X0/X1 からの原発振入力の 2 分周
1
0
メイン PLL
1
1
設定禁止
クロックソース設定
表 3.12-19 に , CLKS1, CLKS0 ビットの変更不可能な組合せおよび変更可能な組合せ
を示します。
表 3.12-19 CLKS1, CLKS0 ビットの変更不可能 / 変更可能な組合せ
変更不可能な組合せ
変更可能な組合せ
"00B" → "11B"
"00B" → "01B" または "10B"
"01B" → "10B"
"01B" → "11B" または "00B"
"10B" → "01B" または "11B"
"10B" → "00B"
"11B" → "00B" または "10B"
"11B" → "01B"
• リセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
120
第 3 章 CPU および制御部
■ 基本クロック分周設定レジスタ (DIVR0)
図 3.12-7 に , 基本クロック分周設定レジスタ 0 (DIVR0) のビット構成を示します。
図 3.12-7 基本クロック分周設定レジスタ 0 (DIVR0) のビット構成
bit
アドレス 000486H
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
B3
R/W
B2
R/W
B1
R/W
B0
R/W
P3
R/W
P2
R/W
P1
R/W
P0
R/W
0
X
0
X
0
X
0
X
0
X
0
X
1
X
1
X
基本クロック分周設定レジスタ 0 (DIVR0) は , 各内部クロックの , ベースクロックに対
する分周比を制御するレジスタです。このレジスタでは , CPU および内部バスのクロッ
ク (CLKB) と , 周辺回路およびペリフェラルバスクロック (CLKP) の分周比を設定しま
す。
各クロックには , 動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合は ,
動作が保証されませんので , 注意してください。ソースクロック選択の変更設定との順
序を間違えないように注意してください。
このレジスタの設定に変更があった場合,設定後の次のクロックレートから変更後の分
周比が有効となります。
[bit15 ∼ bit12] B3, B2, B1, B0 (clkB divide select 3 ∼ 0)
これらのビットは , CPU クロック (CLKB) のクロック分周比設定ビットです。CPU
と内部メモリおよび内部バスのクロック (CLKB) のクロック分周比を設定します。
このビットに書き込む値により , CPU および内部バスのクロックのベースクロック
に対する分周比(クロック周波数)を,表 3.12-20に示す16種類のうちから選択します。
<注意事項>
動作可能な上限周波数は 68MHz ですので , これを超える周波数になる分周比は設定しな
いでください。
121
第 3 章 CPU および制御部
表 3.12-20 に , クロック分周比 (CPU クロック ) の設定を示します。
表 3.12-20 クロック分周比 (CPU クロック ) の設定
クロック周波数 : 原発振 17 MHz
および PLL4 逓倍の場合
B3
B2
B1
B0
0
0
0
0
φ
68 MHz ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
34 MHz
0
0
1
0
φ × 3 (3 分周 )
22.7 MHz
0
0
1
1
φ × 4 (4 分周 )
17 MHz
0
1
0
0
φ × 5 (5 分周 )
13.6 MHz
0
1
0
1
φ × 6 (6 分周 )
11.3 MHz
0
1
1
0
φ × 7 (7 分周 )
9.71 MHz
0
1
1
1
φ × 8 (8 分周 )
8.5 MHz
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
クロック分周比
…
4.25 MHz
( 注意事項 ) φ はシステムベースクロックの周期
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit11 ∼ bit8] P3, P2, P1, P0 (clkP divide select 3 ∼ 0)
これらのビットは , 周辺クロック (CLKP) のクロック分周比設定ビットです。周辺
回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。
このビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックの
ベースクロックに対する分周比 ( クロック周波数 ) を , 表 3.12-21 に示す 16 種類の
うちから選択します。
122
第 3 章 CPU および制御部
表 3.12-21 に , クロック分周比 (CPU クロック ) の設定を示します。
表 3.12-21 クロック分周比 (CPU クロック ) の設定
クロック周波数 : 原発振 17 MHz
および PLL4 逓倍の場合
P3
P2
P1
P0
0
0
0
0
φ
68 MHz
0
0
0
1
φ × 2 (2 分周 )
34 MHz
0
0
1
0
φ × 3 (3 分周 )
22.7 MHz
0
0
1
1
φ × 4 (4 分周 )
17 MHz ( 初期値 )
0
1
0
0
φ × 5 (5 分周 )
13.6 MHz
0
1
0
1
φ × 6 (6 分周 )
11.3 MHz
0
1
1
0
φ × 7 (7 分周 )
9.71 MHz
0
1
1
1
φ × 8 (8 分周 )
8.5 MHz
…
…
…
…
1
1
1
1
クロック分周比
…
…
φ × 16 (16 分周 )
4.25 MHz
( 注意事項 ) φ はシステムベースクロックの周期
• リセット (INIT) により "0011B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
動作可能な上限周波数は 34MHz ですので , これを超える周波数になる分周比は設定しな
いでください。
■ 基本クロック分周設定レジスタ (DIVR1)
図 3.12-8 に , 基本クロック分周設定レジスタ 1 (DIVR1) のビット構成を示します。
図 3.12-8 基本クロック分周設定レジスタ 1 (DIVR1) のビット構成
bit
アドレス 000487H
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
T3
R/W
T2
R/W
T1
R/W
T0
R/W
R/W
R/W
R/W
R/W
0
X
0
X
0
X
0
X
0
X
0
X
0
X
0
X
基本クロック分周設定レジスタ 1 (DIVR1) は , 各内部クロックのベースクロックに対す
る分周比を制御するレジスタです。このレジスタでは , 外部拡張バスインタフェースの
クロック (CLKT) の分周比の設定を行います。各クロックには , 動作可能な上限周波数
が規定されています。ソースクロックの選択 , PLL の逓倍率の設定 , 分周比の設定の組
合せで , 上限周波数を超える設定をした場合は , 動作は保証されませんので注意してく
ださい。ソースクロック選択の変更設定との順序を間違えないように注意してくださ
い。
このレジスタの設定に変更があった場合,設定後の次のクロックレートから変更後の分
周比が有効となります。
123
第 3 章 CPU および制御部
[bit7 ∼ bit4] T3, T2, T1, T0 (clkT divide select 3 ∼ 0)
これらのビットは , 外部バスクロック (CLKT) のクロック分周比設定ビットです。外
部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。こ
のビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を表 3.12-22 に示す 16 種類のうちから選
択します。
表 3.12-22 に , クロック分周比 ( 外部バスクロック ) の設定を示します。
表 3.12-22 クロック分周比 ( 外部バスクロック ) の設定
クロック周波数 : 原発振 17 MHz
および PLL4 逓倍の場合
T3
T2
T1
T0
0
0
0
0
φ
68 MHz ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
34 MHz
0
0
1
0
φ × 3 (3 分周 )
22.7 MHz
0
0
1
1
φ × 4 (4 分周 )
17 MHz
0
1
0
0
φ × 5 (5 分周 )
13.6 MHz
0
1
0
1
φ × 6 (6 分周 )
11.3 MHz
0
1
1
0
φ × 7 (7 分周 )
9.71 MHz
0
1
1
1
φ × 8 (8 分周 )
8.5 MHz
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
クロック分周比
…
4.25 MHz
( 注意事項 ) φ はシステムベースクロックの周期
• 読出しおよび書込みが可能です。
[bit3 ∼ bit0] (reserved bit)
このビットは , 予約ビットです。
<注意事項>
動作可能な上限周波数は 68MHz ですので , これを超える周波数になる分周比は設定しな
いでください。
124
第 3 章 CPU および制御部
3.12.7
クロック制御部がもつ周辺回路
クロック制御部がもつ周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測のほか , 以下の用途に使用されます
( 発振安定待ち時間の詳細については ,「3.11.4 発振安定待ち時間」を参照してくださ
い )。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
以下に , これらの機能について説明します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
[ ウォッチドッグタイマの起動と周期設定 ]
ウォッチドッグタイマは , リセット (RST) 後の 1 回目のリセット要因レジスタ /
ウォッチドッグタイマ制御レジスタ (RSRR) への書込み動作により起動します。こ
のとき , ウォッチドッグタイマのインターバル時間を bit9, bit8 (WT1, WT0 ビット )
により設定します。インターバル時間の設定は , この最初の書込みで設定した時間
のみが有効となり , それ以降の書込みはすべて無視されます。
[ ウォッチドッグリセットの発生延期 ]
一度ウォッチドッグタイマを起動すると , プログラムで定期的にタイムベースカウ
ンタクリアレジスタ (CTBR) に対して "A5H", "5AH" の順でデータを書き込む必要が
あります。この操作により , ウォッチドッグリセット発生用フラグが初期化されま
す。
[ ウォッチドッグリセットの発生 ]
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。
125
第 3 章 CPU および制御部
[ ウォッチドッグタイマの停止 ]
一度ウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生するま
では , ウォッチドッグタイマを停止させられません。
動作初期化リセット (RST) が発生する以下の状態では , ウォッチドッグタイマは停
止し , 再度プログラム動作で起動するまでは機能しません。
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
• 発振安定待ちリセット (RST) 状態
[ ウォッチドッグタイマの一時停止 ( 自動発生延期 )]
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には一度
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生
を延期します。プログラム動作の停止とは , 具体的には以下の動作を示します。
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• エミュレータデバッガ , モニタデバッガを使用時のブレーク中
• INTE 命令の実行から RETI 命令の実行までの期間
• ステップトレーストラップ(PS レジスタのT フラグ=1 による1 命令ごとのブレー
ク)
• 命令キャッシュ制御レジスタ (ISIZE, ICHCR ), RAM モード時のキャッシュメモ
リへのデータアクセス中
また , タイムベースカウンタをクリアすると , 同時にウォッチドッグリセット発生
用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリ
セットが発生しない可能性があります。その場合, 外部INIT端子よりリセット(INIT)
をかけてください。
■ タイムベースタイマ
タイムベースタイマは,タイムベースカウンタ出力を用いたインターバル割込み発生用
タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最
大で " ベースクロック× 227" サイクルまでの比較的長時間の時間計測をする用途に適
しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
[ タイムベースタイマの起動とインターバル設定 ]
タイムベースタイマは , タイムベースカウンタ制御レジスタ (TBCR) の bit13 ∼ bit11
(TBC2, TBC1, TBC0 ビット ) でインターバル時間を設定します。設定したインター
バルに対応するタイムベースカウンタの出力の立下りエッジは常に検出されてい
るため , インターバル時間の設定後は , まず , bit15 (TBIF ビット ) をクリアしてから ,
bit14 (TBIE ビット ) を "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめ bit14 (TBIE ビット ) を "0" にして割
込み要求出力を禁止しておいてください。
126
第 3 章 CPU および制御部
タイムベースカウンタはこれらの設定に影響されず常にカウント動作をしていま
すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。クリアしない場合は , 割込み許可直後
に割込み要求が発生することがあります。
[ プログラムによるタイムベースカウンタのクリア ]
タイムベースカウンタクリアレジスタ (CTBR) に対して "A5H", "5AH" の順でデータ
を書き込むと , "5AH" 書込みの直後に , タイムベースカウンタを全ビット "0" にクリ
アします。"A5H" 書込みと "5AH" 書込みの間の時間は制限がありませんが , "A5H"
書込みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH"
を書き込んでもクリア動作は行いません。
このタイムベースカウンタをクリアすることにより , 同時にウォッチドッグリセッ
ト発生用フラグも初期化され,ウォッチドッグリセットの発生が一度延期されます。
[ デバイス状態によるタイムベースカウンタのクリア ]
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク
リアされます。
• ストップ状態
• 設定初期化リセット (INIT) 状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまうことがあります。そのため , ストップモードを設定する前には , タイムベー
スタイマ割込みを禁止し , タイムベースタイマを使用しないようにしてください。
それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベー
スタイマ割込みは自動的に禁止されます。
127
第 3 章 CPU および制御部
3.12.8
クロックの滑らかな起動と停止
内部電圧効果または電圧サージを抑制するための方法を説明します。
■ クロックの滑らかな起動と停止
内部電圧効果または電圧サージを抑制するために C 端子に 5.0µF 程度のバイパスコン
デンサを接続すると内部電圧変化が大幅に抑制されます。また,すべてのクロック(CPU
および内部バスクロック (CLKB), 外部バスクロック (CLKT), 周辺回路およびペリフェ
ラルバスクロック (CLKP)) を , 低周波数から目標とする周波数にいきなり切り換える
のではなく , 段階的に切り換えてください。
低周波数での動作に戻す場合も段階的に行って , 以下のような , クロックの起動と
シャットダウンを行ってください。
高周波数での動作から低周波数での動作に切り換える場合も , 同様の方法で行います。
● 起動
1) PLL 動作許可 ( クロックソース制御レジスタ (CLKR) の PLL1EN ビットを "1" に設
定してください。)
2) 発振安定待ち時間
3) CLKB, CLKT, CLKP を 16 分周します (DIVR0, DIVR1 レジスタを設定してください )。
4) PLL の逓倍率を設定し , X0 を PLL 側に切り換えます ( クロックソース制御レジス
タ (CLKR) を設定してください )。
5) CLKB, CLKT, CLKP の分周比を段階的に下げます。分周ステップの間に待機ループ
を挿入します。
● シャットダウン
1) CLKB, CLKT, CLKP を段階的 ( ステップ数は周波数の設定による ) に最大分周係数
まで分周し , 分周ステップの間に待機ループを挿入します (DIVR0, DIVR1 レジスタ
を設定してください )。
2) PLL から X0/X1 よりの原発振に切り換えます ( クロックソース制御レジスタ (CLKR)
を設定してください )。
3) PLL を無効にします ( クロックソース制御レジスタ (CLKR) の PLL1EN ビットを "0"
に設定してください )。
128
第 3 章 CPU および制御部
■ クロックの滑らかな起動と停止のプログラム例
● 起動手順
#macro wait_loop loop_number
#local _wait64_loop
ldi
#loop_number,r0
_wait64_loop:
add
#-1,r0
bne
_wait64_loop
#endm
smooth_up_start3:
ldi #_DIVR0,r1
// CLKB および CLKP 用の分周レジスタ
ldi #_DIVR1,r2
// CLKT 用の分周レジスタ
ldi #_CLKR,r3
// CLKR レジスタ
ldi #0xff,r4
ldi #0x11,r5
ldi #0x33,r6
ldi #0x77,r7
ldi #0x01,r8
ldi #0x34,r12
ldi #0x36,r13
nop
nop
nop
stb r12,@r3
// PLL → X0 PLL 動作許可
//CLKB, CLKT, CLKP を 16 分周します
stb
r4,@r1
// CLKB , CLKP 16 分周
stb
r4,@r2
// CLKT 16 分周
wait_loop 4
stb r13,@r3
//X0 を PLL 側に切り換えます。
wait_loop 4
//CLKB, CLKP の分周比を段階的に下げます。
stb r7,@r1
// CLKB , CLKP 16 分周→ 8 分周
wait_loop 8
stb r6,@r1
// CLKB , CLKP 8 分周→ 4 分周
wait_loop 8
stb r5,@r1
// CLKB , CLKP 4 分周→ 2 分周
wait_loop 16
stb r8,@r1
// CLKB 2 分周→分周なし , CLKP2 分周→ 2 分周
wait_loop 16
//CLKT の分周比を段階的に下げます。
stb r7,@r2
// CLKT 16 分周→ 8 分周
wait_loop 8
stb r6,@r2
// CLKT 8 分周→ 4 分周
wait_loop 8
stb r5,@r2
// CLKT 4 分周→ 2 分周
wait_loop 16
stb r8,@r2
// CLKT 分周なし
wait_loop 16
129
第 3 章 CPU および制御部
● シャットダウン手順
#macro wait_loop loop_number
#local _wait64_loop
ldi
#loop_number,r0
_wait64_loop:
add
#-1,r0
bne
_wait64_loop
#endm
smooth_down_start3:
ldi #_DIVR0,r1
// CLKB および CLKP 用の分周レジスタ
ldi #_DIVR1,r2
// CLKT 用の分周レジスタ
ldi #_CLKR,r3
// CLKR レジスタ
ldi #0x11,r5
ldi #0x3f,r6
ldi #0xff,r8
ldi #0x04,r9
ldi #0x33,r10
ldi #0xff,r12
ldi #0x00,r13
ldi #0x1f,r14
nop
nop
nop
//CLKT の分周比を段階的に上げます。
stb r14,@r2
// CLKT 分周なし→ 2 分周
wait_loop 16
stb r6,@r2
// CLKT 2 分周→ 4 分周
wait_loop 8
stb r8,@r2
// CLKT 4 分周→ 16 分周
wait_loop 4
//CLKB, CLKP の分周比を段階的に上げます。
stb r5,@r1
// CLKB 分周なし→ 2 分周 , CLKP 2 分周→ 2 分周
wait_loop 16
stb r10,@r1
// CLKB, CLKP 2 分周→ 4 分周
wait_loop 8
stb r12,@r1
// CLKB, CLKP 4 分周→ 16 分周
wait_loop 4
//PLL の逓倍率を段階的に下げます。
stb r9,@r3
stb r13,@r3
nop
nop
nop
ret
130
// PLL から X0/X1 よりの原発振に切り換えます。
// PLL off
第 3 章 CPU および制御部
3.13
デバイス状態制御
FR ファミリの各種状態とその制御および低消費電力モードについて説明します。
■ デバイス状態
FR ファミリの動作状態には以下のものがあります。
これらの詳細については ,「 3.13.1 デバイス状態と各遷移」で説明します。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 発振安定待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
■ 低消費電力モード
低消費電力モードには以下の 2 つがあります。
これらの詳細については ,「 3.13.2 低消費電力モード」で説明します。
• スリープモード
• ストップモード
■ デバイス状態と各遷移
MB91301 シリーズのデバイスの状態遷移を下記に示します。
1 INIT端子=0(INT)
2 INIT端子=1(INIT解除)
3 発振安定待ち終了
4 リセット(RST)解除
5 ソフトウェアリセット(RST)
6 スリープ(命令書込み)
7 ストップ(命令書込み)
8 割込み
9 クロックを必要としない外部割込み
10 ウォッチドッグリセット(INIT)
遷移要求の優先順位
最強 設定初期化リセット(INT)
↓ 発振安定待ち終了
↓ 動作初期化リセット(RST)
↓ 割込み要求
↓ ストップ
最弱 スリープ
パワーオン
1
設定初期化
(INIT)
2
1
発振安定待ち
リセット
ストップ
9
1
発振安定待ちRUN
1
3
3
動作初期化リセット
(RST)
1
7
4
5
1
スリープ
1
8
RUN
6
10
131
第 3 章 CPU および制御部
3.13.1
デバイス状態と各遷移
デバイスの動作状態と , 各動作状態間の遷移について説明します。
■ RUN 状態 ( 通常動作 )
この状態は , プログラム実行状態です。すべての内部クロックが供給され , すべての回
路が動作可能な状態です。
ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスされていない期間はバス
クロックのみ停止しています。
この状態では , 各状態の遷移要求を受け付けますが , 同期リセットモードを選択してい
る場合 , 通常リセットモードの場合と一部要求に対する状態遷移動作が異なります。詳
細については,
「3.11.5 リセット動作モード ■同期リセット動作」を参照してください。
■ スリープ状態
この状態は , プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ
および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。
• 有効な割込み要求の発生により , この状態は解除され , RUN 状態 ( 通常動作 ) へ遷
移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷
移します。
■ ストップ状態
この状態は , デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL
は 設 定 に よ り 停 止 さ せ る こ と が 可 能 で す。ス ト ッ プ 状 態 へ 遷 移 す る 際 に は 必 ず
PLL1EN=0 にしてから行ってください。
また , 設定により , 外部端子を一律にハイインピーダンスにすることが可能です ( 一部
端子を除く )。
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち
RUN 状態へ遷移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
132
第 3 章 CPU および制御部
■ 発振安定待ち RUN 状態
この状態は , デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
• ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
• 設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
• 動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
■ 発振安定待ちリセット (RST) 状態
この状態は , デバイス停止状態です。ストップ状態または設定初期化リセット (INIT)
状態からの復帰後に遷移します。クロック発生制御部 ( タイムベースカウンタおよび
デバイス状態制御部 ) を除くすべての内部回路が停止します。内部クロックはすべて
停止しますが , 発振回路および動作許可されていた PLL は動作しています。
• ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
• 内部回路に対し , 動作初期化リセット (RST) を出力します。
• 設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷
移します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
■ 動作初期化リセット (RST) 状態
この状態は , プログラム初期化状態です。動作初期化リセット (RST) 要求の受付けまた
は発振安定待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いた PLL は動作しています。
• 内部回路に対し , 動作初期化リセット (RST) を出力します。
• 動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動
作初期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの
復帰後だった場合は , 設定初期化リセットシーケンスを実行します。
• 設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
133
第 3 章 CPU および制御部
■ 設定初期化リセット (INIT) 状態
この状態は , 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより
遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて
の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外
では動作します。
• 内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出
力します。
• 設定初期化リセット (INIT) 要求の消失によりこの状態は解除され , 発振安定待ちリ
セット (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設
定初期化リセットシーケンスを実行します。
■ 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
[ 最強 ] 設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待
ち RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
[ 最弱 ] スリープモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
134
第 3 章 CPU および制御部
3.13.2
低消費電力モード
FR ファミリデバイスの状態のうち , 各低消費電力モードとその使用方法について説
明します。
■ 低消費電力モード
FR ファミリの低消費電力モードには , 以下のものがあります。
• スリープモード : レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード : レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下に , 各モードについて説明します。
■ スリープモード
スタンバイ制御レジスタ (STCR) の bit6 (SLEEP ビット ) に "1" を書き込むとスリープ
モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生
するまでは , スリープ状態を維持します。
スタンバイ制御レジスタ (STCR) の bit7 (STOP ビット ) とこのビット両方に "1" を書き
込んだ場合は , bit7 (STOP ビット ) の方が優先となり , ストップ状態へ遷移します。
スリープ状態については ,「3.13.1 デバイス状態と各遷移 ■スリープ状態」も参照し
てください。
[ スリープモードへの移行 ]
スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウ
ンタ制御レジスタの bit8 SYNCS ビットにて設定します ) を使用した上で , 以下の
シーケンスを必ず使用してください。
/* STCR ライト */
; STCR レジスタ (0x0481)
ldi
#_STCR, r0
ldi
#Val_of_Stby, rl ; Val_of_Stby は , STCR へのライトデータ
stb
rl, @r0
; STCR へのライト
/* CTBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0x0483)
ldi
#0xA5, rl
; クリアコマンド (1)
stb
rl, @r2
; CTBR への A5 ライト
ldi
#0x5A, rl
; クリアコマンド (2)
stb
rl, @r2
; CTBR への 5A ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用 NOP × 5
nop
nop
nop
nop
135
第 3 章 CPU および制御部
● スリープ状態で停止する回路
• CPU のプログラム実行
• ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
• 各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
• 内部 / 外部バス (DMA 転送が発生した場合は動作します。バスリクエストは使用可
能です。)
● スリープ状態で停止しない回路
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
● スリープ状態からの復帰要因
• 有効な割込み要求の発生
ICR レジスタの設定が "11111B" でなく割込み要求が発生したとき , スリープモード
は解除され , RUN 状態 ( 通常動作 ) へ遷移します。ICR レジスタの設定が "11111B"
のとき , 割込み要求が発生しても , スリープモードは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
各要因の優先順位については ,「3.13.1 デバイス状態と各遷移 ■各状態遷移要求の優
先順位」を参照してください。
● 同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) の bit8 (SYNCS ビット ) に "1" が設定して
ある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込みの
みではスリープ状態へは遷移しません。
その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , 「3.13.2 低消費電力モード ■スリープモード [ ス
リープモードへの移行 ] 」にあるシーケンスを , 必ず使用してください。
■ ストップモード
スタンバイ制御レジスタ (STCR) の bit7 (STOP ビット ) に "1" を書き込むとストップ
モードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生
するまでは , ストップ状態を維持します。
スタンバイ制御レジスタ (STCR) の bit6 (SLEEP ビット ) とこのビット両方に "1" を書
き込んだ場合は , bit7 (STOP ビット ) の方が優先となり , ストップ状態へ遷移します。
136
第 3 章 CPU および制御部
ストップ状態については ,「3.13.1 デバイス状態と各遷移」の「■ストップ状態」も参
照してください。
[ ストップモードへの移行 ]
ストップモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウ
ンタ制御レジスタの bit8 SYNCS ビットにて設定します ) を使用した上で , 以下の
シーケンスを必ず使用してください。
(LDI
#value_of_standby, R0) ; value_of_standby は , STCR へのライトデータ
(LDI
#_STCR, R12)
; _STCR は , STCR のアドレス (481H)
STB
R0, @R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB @R12, R0
; 同期スタンバイのための STCR リード
LDUB @R12, R0
; もう一度 STCR をダミーリード
NOP
NOP
NOP
NOP
NOP
; タイミング調整用の NOP × 5
さらに , スタンバイ復帰後に , 復帰要因である割込みハンドラへ分岐するように , I
フラグ , ILM および ICR を設定してください。
● ストップ状態で停止する回路
• 停止するよう設定された発振回路
スタンバイ制御レジスタ (STCR) の bit0 (OSCD1 ビット ) に "1" が設定されていると
き , ストップ状態中のメインクロック用発振回路を停止状態にします。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL スタ
ンバイ制御レジスタ (STCR) の bit0 (OSCD1 ビット ) に "1" が設定されているとき ,
クロックソース制御レジスタ (CLKR) の bit10 (PLL1EN ビット ) に "1" が設定されて
いても , ストップ状態中のメインクロック用 PLL を停止状態にします。
• 下記に記載の「ストップ状態で停止しない回路」を除くすべての内部回路
● ストップ状態で停止しない回路
• 停止するよう設定されていない発振回路
スタンバイ制御レジスタ (STCR) の bit0 (OSCD1 ビット ) に "0" が設定されていると
き , ストップ状態中のメインクロック用発振回路は停止しません。
• 動作許可されていて , かつ停止するよう設定されていない発振回路に接続された
PLL スタンバイ制御レジスタ (STCR) の bit0 (OSCD1 ビット ) に "0" が設定されてい
るとき , クロックソース制御レジスタ (CLKR) の bit10 (PLL1EN ビット ) に "1" が設
定されていると , ストップ状態中のメインクロック用 PLL は停止しません。
● ストップ状態での端子のハイインピーダンス制御
• スタンバイ制御レジスタ (STCR) の bit5 (HIZ ビット ) に "1" が設定されていると , ス
トップ状態中の端子出力をハイインピーダンス状態にします。この制御の対象とな
る端子は ,「付録 C 各 CPU ステートにおける端子状態」を参照してください。
• スタンバイ制御レジスタ (STCR) の bit5 (HIZ ビット ) に "0" が設定されていると , ス
トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は 「
, 付
録 C 各 CPU ステートにおける端子状態」を参照してください。
137
第 3 章 CPU および制御部
● ストップ状態からの復帰要因
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生
外部割込み入力端子 (INT0 ∼ INT7 端子 ) が有効です。
ICR レジスタの設定が "11111B"
でなく割込み要求が発生したとき , ストップモードは解除され , RUN 状態 ( 通常動作 )
へ遷移します。ICR レジスタの設定が "11111B" のとき , 割込み要求が発生しても ,
ストップモードは解除されません。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
各要因の優先順位については ,「3.13.1 デバイス状態と各遷移 ■各状態遷移要求の優
先順位」を参照してください。
● ストップモード時のクロックソース選択
自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周をソー
スクロックとするようあらかじめ選択しておいてください。詳細は ,「3.12 クロック発
生制御」, 特に「3.12.1 PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
● 同期スタンバイ動作
タイムベースカウンタ制御レジスタ (TBCR) の bit8 (SYNCS ビット ) に "1" が設定して
ある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込みの
みではスリープ状態へは遷移しません。
その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , 「3.13.2 低消費電力モード ■スリープモード [ ス
リープモードへの移行 ] 」にあるシーケンスを必ず使用してください。
138
第 3 章 CPU および制御部
3.14
動作モード
動作モードには , バスモードとアクセスモードがあります。それぞれのモードについ
て説明します。
■ 動作モード
バスモード
外部ROM
外部バス
アクセスモード
32ビットバス幅
16ビットバス幅
8ビットバス幅
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し
ます。
● アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) 内の DBW1, DBW0
ビットで指定します。
■ バスモード
FR ファミリには , バスモード 0 ( シングルチップモード ), バスモード 1 ( 内部 ROM 外
部バスモード ), バスモード 2 ( 外部 ROM 外部バスモード ) の 3 つのバスモードがあり
ます。
MB91V301A では , バスモード 2 ( 外部 ROM 外部バスモード ) のみ設定できます。
また , MB91302A ではすべてのバスモードを設定できます。
詳細は「3.1 メモリ空間」を参照してください。
● バスモード 0 ( シングルチップモード )
内部 I/O, D-busRAM, F-busRAM, F-busROM が有効で , それ以外の領域へのアクセスは
無効であるモードです。
外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機
能しません。
● バスモード 1 ( 内 ROM 外バスモード )
内部 I/O, D-busRAM, F-busRAM, F-busROM が有効で , 外部アクセスが可能な領域への
アクセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子とし
て機能します。
● バスモード 2 ( 外部 ROM 外部バスモード )
内部 I/O, D-busRAM が有効で , すべてのアクセスが外部空間へのアクセスとなるモー
ドです。外部端子の一部は , バス端子として機能します。
139
第 3 章 CPU および制御部
■ モード設定
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作モー
ドを設定します。
● モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。
表 3.14-1 に , モード設定について示します。
表 3.14-1 モード設定
モード端子
リセットベクタ
アクセス領域
モード名
備考
MD2
MD1
MD0
0
0
0
内部 ROM モードベクタ
内部
シングルチップモード
0
0
1
外部 ROM モードベクタ
外部
バス幅はモードレジスタで設定
ただし , 表に示した設定以外は禁止とします。
● モードレジスタ (MODR)
• モードレジスタ (MODR) の詳細
図 3.14-1 に , モードレジスタ (MODR) のビット構成を示します。
図 3.14-1 モードレジスタ (MODR) のビット構成
動作モード設定ビット
bit
アドレス 0007FDH
23
22
21
20
19
-
-
-
-
-
18
17
16
ROMA WTH1 WTH0
W
W
W
初期値
XXXXXXXXB
モードベクタフェッチ (「3.11.3 リセットシーケンス」を参照 ) によってモードレジス
タに書き込むデータを , モードデータとよびます。
モードレジスタ (MODR) に設定された後 , このレジスタの設定の動作モードに従った
動作モードで動作します。モードレジスタは , すべてのリセット要因で設定されます。
また , ユーザプログラムから書き込むことはできません。
• モードデータの詳細
図 3.14-2 に , モードベクタに設定する , モードデータの詳細を示します。
図 3.14-2 モードデータの詳細
動作モード設定ビット
bit
アドレス 0007FDH
140
31
30
29
28
27
-
-
-
-
-
26
25
24
ROMA WTH1 WTH0
W
W
W
初期値
XXXXXXXXH
第 3 章 CPU および制御部
以下に , 各ビットの機能を説明します。
[bit31 ∼ bit27] 予約ビット
これらのビットには , 必ず "00000B" を設定してください。"00000B" 以外の値を設定
した場合の動作は保証されません。
[bit26] ROMA: 内部 ROM イネーブルビット
このビットは , 内部 F-busRAM, F-busROM 領域を有効にするかどうかを設定します。
表 3.14-2 に , 内部 ROM イネーブルビットの機能を示します。
表 3.14-2 内部 ROM イネーブルの機能
ROMA
機能
備考
0
外部 ROM
モード
内蔵 F-bus 領域 (4 0000H ∼ 10 0000H) が外部領域になり
1
内部 ROM
モード
ます。
内蔵 F-bus 領域 (4 0000H ∼ 10 0000H) がアクセス禁止に
なります。*
*: EVA では RAM を 8K バイト内蔵しているので設定できます。詳細は「3.1
メモリ空間 ■メモリマップ」を参照してください。
[bit25, bit24] WTH1, WTH0: バス幅指定ビット
これらのビットは , 外部バスモード時のバス幅指定を設定します。
外部バスモード時 , この値が ACR0H (CS0 領域 ) の DBW1, DBW0 ビットに設定され
ます。
表 3.14-3 に , バス幅指定の設定内容を示します。
表 3.14-3 バス幅指定の設定内容
WTH1 WTH0
機能
備考
0
0
8 ビットバス幅
外部バスモード
0
1
16 ビットバス幅
外部バスモード
1
0
32 ビットバス幅
外部バスモード
1
1
シングルチップモード
141
第 3 章 CPU および制御部
<注意事項>
モードベクタに設定するモードデータは , "0X000FFFF8H" にバイトデータとして配置す
る必要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採
用していますので , 図 3.14-3 のように , bit31 ∼ bit24 の最上位バイトに配置してください。
図 3.14-3 モードデータの注意事項
bit 31
誤
0X000FFFF8H
XXXXXXXX
bit 31
正
0X000FFFF8H
0X000FFFFCH
142
24 23
XXXXXXXX
24 23
モードデータ
16 15
XXXXXXXX
16 15
XXXXXXXX
87
XXXXXXXX
リセットベクタ
0
モードデータ
87
0
XXXXXXXX
第4章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内
部バスと外部のメモリおよび I/O デバイスとのイン
タフェースを制御します。
4.1 外部バスインタフェースの概要
4.2 外部バスインタフェースのレジスタ
4.3 チップセレクト領域の設定例
4.4 エンディアンとバスアクセス
4.5 通常バスインタフェースの動作
4.6 バーストアクセスの動作
4.7 アドレス / データマルチプレクスインタフェース
4.8 プリフェッチ動作
4.9 SDRAM/FCRAM インタフェースの動作
4.10 DMA アクセス動作
4.11 バスアービトレーション
4.12 レジスタの設定手順
4.13 外部バスインタフェースの使用上の注意
143
第 4 章 外部バスインタフェース
4.1
外部バスインタフェースの概要
外部バスインタフェースの特長 , ブロックダイヤグラム , I/O ピンおよびレジスタ一
覧について説明します。
■ 特長
外部バスインタフェースの特長は , 以下のとおりです。
• 最大 32 ビット長 (4G バイト空間 ) のアドレス出力
• 各種外部メモリ (8 ビット /16 ビット /32 ビット品 ) を直結できるほか , 複数のアクセ
スタイミングを混在制御可能
- 非同期 SRAM, 非同期 ROM/FLASH メモリ ( 複数書込みストローブ方式またはバ
イトイネーブル方式 )
- ページモード ROM/FLASH メモリ ( ページサイズ 2/4/8 が可能 )
- バーストモード ROM/FLASH メモリ
- SDRAM (FCRAM タイプも対応 , CAS-Latency1 ∼ 8, 2 バンク品および 4 バンク品 )
- アドレス / データマルチプレクスバス (8 ビット /16 ビット幅のみ )
- 同期メモリ (ASIC 内蔵メモリなど )(Synchronous SRAM は直結できません )
• 独立した 8 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
- 各領域のサイズは 64K バイトの倍数単位で設定可能 (1 チップセレクト領域あた
り 64K バイト∼ 2G バイトまで )
- 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウン
ダリの制限あり )
• 各チップセレクト領域ごとに以下の機能が独立に設定可能
- チップセレクト領域の許可 / 禁止 ( 禁止された領域はアクセスしません )
- 各種メモリ対応などのアクセスタイミングタイプの設定 (SDRAM は , CS6 領域と
CS7 領域のみ接続可能 )
- 詳細アクセスタイミングの設定 ( ウェイトサイクルなどのアクセスタイプ個別設
定)
- データバス幅の設定 (8 ビット /16 ビット /32 ビット )
- バイトオーダリングのエンディアンの設定(ビッグまたはリトル)(CS0領域はビッ
グエンディアンのみ可能 )
- 書込み禁止の設定 ( 読出し専用領域 )
- 内蔵キャッシュへの取込み許可 / 禁止の設定
- プリフェッチ機能の許可 / 禁止の設定
- 最大バースト長の設定 (1, 2, 4, 8)
144
第 4 章 外部バスインタフェース
• アクセスタイミングタイプごとに異なる詳細なタイミングの設定が可能
- 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 15 サイクルまで設定可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- ファーストアクセスウェイトとページウェイトが設定可能
( バースト , ページモード , ROM/FLASH 領域 )
- 各種アイドル / リカバリサイクル , セットアップ遅延などの挿入が可能
- CAS レイテンシ , RAS-CAS ディレイほかのタイミング設定が可能 (SDRAM 領域 )
- 分散 / 集中オートリフレッシュ , セルフリフレッシュなどの各種リフレッシュタ
イミング制御可能 (SDRAM 領域 )
• DMA によるフライバイ転送が可能
- メモリ (SDRAM を含みます ) と I/O 間の 1 アクセスでの転送が可能
- メモリウェイトサイクルをフライバイ時に I/O のウェイト周期に同期させること
が可能
- 転送元アクセスのみを延長してホールドタイムを確保することが可能
- フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能
• BRQ と BGRNT を使用した外部バスアービトレーションが可能
• 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能
145
第 4 章 外部バスインタフェース
■ ブロックダイヤグラム
図 4.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 4.1-1 外部バスインタフェースのブロックダイヤグラム
内部アドレスバス
32
内部データバス
32
外部データバス
MUX
ライトバッファ
スイッチ
スイッチ
リードバッファ
データブロック
アドレスブロック
+1 or +2
外部アドレスバス
アドレスバッファ
ASR
CS0~CS7
ASZ
コンパレータ
SDRAM制御部
アンダフロー
RCR
SRAS,SCAS,
SWE,MCLKE,
DQMUU,DQMUL,
DQMLU,DQMLL
リフレッシュカウンタ
外部端子制御部
全クロック制御
レジスタ&制御部
146
RD
WR0,WR1,
WR2,WR3,
AS,BAA
BRQ
BGRNT
RDY
第 4 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です ( 一部のピンは兼用端子です )。
以下に , インタフェースごとの I/O ピンを示します。
• 通常バスインタフェース
- A31 ∼ A00, D31 ∼ D00 (AD15 ∼ AD00)
- CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7
- AS, SYSCLK, MCLK
- RD
- WR, WR0 (UUBX), WR1 (ULBX), WR2 (ULBX), WR3 (LLBX)
- RDY, BRQ, BGRNT
• メモリインタフェース
- MCLK, MCLKE
- LBA (= AS), BAA
( バースト ROM/FLASH 用 )
- SRAS, SCAS, SWE (= WR)
(SDRAM 用 )
- DQMUU, DQMUL, DQMLU, DQMLL
(SDRAM 用 (= WR0, WR1, WR2, WR3))
• DMA インタフェース
- IOWR, IORD
- DACK0, DACK1
- DREQ0, DREQ1
- DEOP0, DEOP1
147
第 4 章 外部バスインタフェース
■ レジスタ一覧
図 4.1-2 に , 外部バスインタフェースで使用するレジスタ一覧を示します。
図 4.1-2 外部バスインタフェースのレジスタ一覧
24 23
31
16 15
08 07
00
ASR0
ACR0
ASR1
ACR1
ASR2
ACR2
ASR3
ACR3
ASR4
ACR4
ASR5
ACR5
ASR6
ACR6
ASR7
ACR7
AWR0
AWR1
AWR2
AWR3
AWR4
AWR5
AWR6
AWR7
MCRA
領域選択レジスタ0~7(ASR0~ASR7)
領域構成レジスタ0~7(ACR0~ACR7)
領域ウェイトレジスタ(AWR0~AWR7)
MCRB
予約
予約
メモリ設定レジスタ
(SDRAM/FCRAMオートプリチャージなしモード用)(MCRA)
メモリ設定レジスタ
(FCRAMオートプリチャージありモード用)(MCRB)
予約
予約
予約
予約
IOWR0
IOWR1
予約
予約
予約
予約
予約
予約
DMAC用I/Oウェイトレジスタ(IOWR0, IOWR1)
CSER
CHER
予約
TCR
チップセレクト領域許可レジスタ(CSER)
予約
予約
キャッシュ取込み許可レジスタ(CHER)
端子/タイミングコントロールレジスタ(TCR)
RCR
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
(MODR)
予約
予約
リフレッシュコントロールレジスタ(RCR)
(注意事項)
・予約は,予約レジスタです。必ず"0"を設定してください。
・MODRは,ユーザプログラムからはアクセスできません。
148
第 4 章 外部バスインタフェース
4.2
外部バスインタフェースのレジスタ
外部バスインタフェースで使用するレジスタの構成および機能について説明します。
■ レジスタの種類
外部バスインタフェースで使用するレジスタには , 以下のものがあります。
• 領域選択レジスタ (ASR0 ∼ ASR7)
• 領域構成レジスタ (ACR0 ∼ ACR7)
• 領域ウェイトレジスタ (AWR0 ∼ AWR7)
• メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )(MCRA)
• メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB)
• DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1)
• チップセレクト領域許可レジスタ (CSER)
• キャッシュ取込み許可レジスタ (CHER)
• 端子 / タイミングコントロールレジスタ (TCR)
• リフレッシュコントロールレジスタ (RCR)
149
第 4 章 外部バスインタフェース
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7)
4.2.1
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7) の構成および機能について説明します。
■ 領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7) の構成
領域選択レジスタ (ASR0 ∼ ASR7:Area Select Register0 ∼ 7) は , CS0 ∼ CS7 の各チップ
セレクト領域の開始アドレスを指定します。
図 4.2-1 に , 領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7:Area Select Register) の構成を示し
ます。
図 4.2-1 領域選択レジスタ (ASR0 ∼ ASR7) の構成
初期値
ASR0
14
13
000640H A31
bit
15
A30
A29
ASR1 bit 15
000644H A31
14
13
A30
A29
ASR2 bit 15
000648H A31
14
13
A30
A29
ASR3 bit 15
00064CH A31
14
13
A30
A29
ASR4 bit 15
000650H A31
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
ASR5 bit 15
000654H A31
ASR6 bit 15
000658H A31
ASR7 bit 15
00065CH A31
150
12
...
...
...
2
1
0
INIT 時
A17
A16
0000H
RST 時
0000H
アクセス
A18
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
XXXXH
XXXXH
R/W
R/W
第 4 章 外部バスインタフェース
■ 領域選択レジスタ (ASR0 ∼ ASR7) のビット機能
領域選択レジスタ (ASR0 ∼ ASR7) は , CS0 ∼ CS7 の各チップセレクト領域の開始アド
レスを指定します。
開始アドレスは , A31-A16 ビットの上位 16 ビットを設定できます。各チップセレクト
領域は , このレジスタに設定されたアドレスから始まり , 領域構成レジスタ (ACR0 ∼
ACR7) の ASZ3 ∼ ASZ0 の 4 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , 領域構成レジスタ (ACR0 ∼ ACR7) の ASZ3 ∼
ASZ0 の 4 ビットの設定に従います。例えば , ASZ3 ∼ ASZ0 の 4 ビットにより , 1M バ
イトの領域を設定した場合は , 領域選択レジスタ (ASR0 ∼ ASR7) の下位 4 ビットは無
視され , A31 ∼ A20 ビットのみ意味をもちます。
ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7
は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 ,
チップセレクト領域許可レジスタ(CSER)により各チップセレクト領域を有効にする前
に , 必ず対応する領域選択レジスタ (ASR) を設定してください。
151
第 4 章 外部バスインタフェース
4.2.2
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7)
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成および機能について説明します。
■ 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7:Area Configuration Register 0 ∼ 7) は , 各チップ
セレクト領域の機能を設定します。
図 4.2-2 に , 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成を示します。
図 4.2-2 領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の構成
初期値
ACR0H
bit 15
14
13
12
11
10
9
8
INIT 時
000642H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111XX00B
ACR0L bit 7
6
5
4
3
2
1
0
000643H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0
00000000B
RST 時
アクセス
1111XX00B
R/W
00000000B
R/W
ACR1H bit 15
14
13
12
11
10
9
8
000646H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR1L bit 7
6
5
4
3
2
1
0
000647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR2H bit 15
14
13
12
11
10
9
8
00064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR2L bit 7
6
5
4
3
2
1
0
00064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR3H bit 15
14
13
12
11
10
9
8
00064EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR3L bit 7
6
5
4
3
2
1
0
00064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR4H bit 15
14
13
12
11
10
9
8
000652H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR4L bit 7
6
5
4
3
2
1
0
000653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR5H bit 15
14
13
12
11
10
9
8
000656H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR5L bit 7
6
5
4
3
2
1
0
000657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
( 続く )
152
第 4 章 外部バスインタフェース
( 続き )
初期値
ACR6H
bit 15
14
13
12
11
10
9
8
INIT 時
RST 時
アクセス
00065AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR6L bit 7
6
5
4
3
2
1
0
00065BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR7H bit 15
14
13
12
11
10
9
8
00065EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
ACR7L bit 7
6
5
4
3
2
1
0
00065FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
<注意事項>
ASR と ACR は , ワードアクセスで同時設定してください。
ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 , ACR を設定してくだ
さい。
153
第 4 章 外部バスインタフェース
以下に , 各ビットの機能を説明します。
[bit15 ∼ bit12] ASZ3 ∼ ASZ0 (Area Size Bit 3 ∼ 0)
これらのビットは , 領域のサイズを設定します。表 4.2-1 に , 設定内容を示します。
表 4.2-1 領域のサイズ設定
ASZ3 ASZ2 ASZ1 ASZ0
各チップセレクト領域のサイズ
0
0
0
0
64K バイト (00010000H バイト , ASR の A31 ∼ A16 ビット指定が有効 )
0
0
0
1
128K バイト (00020000H バイト , ASR の A31 ∼ A17 ビット指定が有効 )
0
0
1
0
256K バイト (00040000H バイト , ASR の A31 ∼ A18 ビット指定が有効 )
0
0
1
1
512K バイト (00080000H バイト , ASR の A31 ∼ A19 ビット指定が有効 )
0
1
0
0
1M バイト (00100000H バイト , ASR の A31 ∼ A20 ビット指定が有効 )
0
1
0
1
2M バイト (00200000H バイト , ASR の A31 ∼ A21 ビット指定が有効 )
0
1
1
0
4M バイト (00400000H バイト , ASR の A31 ∼ A22 ビット指定が有効 )
0
1
1
1
8M バイト (00800000H バイト , ASR の A31 ∼ A23 ビット指定が有効 )
1
0
0
0
16M バイト (01000000H バイト , ASR の A31 ∼ A24 ビット指定が有効 )
1
0
0
1
32M バイト (02000000H バイト , ASR の A31 ∼ A25 ビット指定が有効 )
1
0
1
0
64M バイト (04000000H バイト , ASR の A31 ∼ A26 ビット指定が有効 )
1
0
1
1
128M バイト (08000000H バイト , ASR の A31 ∼ A27 ビット指定が有効 )
1
1
0
0
256M バイト (10000000H バイト , ASR の A31 ∼ A28 ビット指定が有効 )
1
1
0
1
512M バイト (20000000H バイト , ASR の A31 ∼ A29 ビット指定が有効 )
1
1
1
0
1024M バイト (40000000H バイト , ASR の A31 ∼ A30 ビット指定が有効 )
1
1
1
1
2048M バイト (80000000H バイト , ASR の A31 ビット指定が有効 )
ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各
領域のサイズを設定します。そのため ASR は比較されないビットが存在します。
ACR0 の ASZ3 ∼ ASZ0 ビットは , RST により 1111B (0FH) に初期化されますが , こ
の設定にかかわらず RST 直後の CS0 領域は特別に 00000000H から FFFFFFFFH ( 全
領域 ) に設定されています。ACR0 への最初の書込み後より全領域設定が解除され ,
表 4.2-1 に従ったサイズに設定されます。
ASR6, ASR7 で設定する領域に SDRAM/FCRAM を接続する場合 , 128M バイト
(1011H) 以下に設定してください。
154
第 4 章 外部バスインタフェース
[bit11, bit10] DBW1, DBW0 (Data Bus Width 1, 0)
これらのビットは,各チップセレクト領域のデータバス幅を表 4.2-2に示すように設
定します。
表 4.2-2 に , チップセレクト領域のデータバス幅の設定を示します。
表 4.2-2 チップセレクト領域のデータバス幅の設定
DBW1
DBW0
0
0
8 ビット ( バイトアクセス )
0
1
16 ビット ( ハーフワードアクセス )
1
0
32 ビット ( ワードアクセス )
1
1
Reserved 設定禁止
データバス幅
ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH
ビットの値と同じ値が自動的に書き込まれます。
SDRAM/FCRAMを接続する領域では,このビットによるデータバス幅の設定はすべ
て同じにしてください。
[bit9, bit8] BST1, BST0 (Burst Size 1, 0)
これらのビットは , 各チップセレクト領域の最大バースト長を , 表 4.2-3 に示すよう
に設定します。
表 4.2-3 に , 各チップセレクト領域の最大バースト長の設定を示します。
表 4.2-3 各チップセレクト領域の最大バースト長の設定
BST1
BST0
0
0
1 ( シングルアクセス )
0
1
2 バースト ( アドレス境界 1 ビット )
1
0
4 バースト ( アドレス境界 2 ビット )
1
1
8 バースト ( アドレス境界 3 ビット )
最大バースト長
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま
たはバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決
まるアドレス境界内で連続したバーストアクセスを行います。
バス幅 32 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけませ
ん。2 バースト以下を推奨します。
バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。
シングルアクセス以外のバースト長設定を行った領域では , RDY 入力を無視しま
す。
SDRAM/FCRAMを接続する領域では,このビットによるバースト長の設定はすべて
同じにしてください。
155
第 4 章 外部バスインタフェース
[bit7] SREN (ShaRed ENable)
このビットは , 各チップセレクト領域の BRQ/BGRNT による共有の許可 / 禁止を表
4.2-4 のとおり設定します。
表 4.2-4 に , 各チップセレクト領域の BRQ/BGRNT による共有の許可 / 禁止の設定を
示します。
表 4.2-4 各チップセレクト領域の BRQ/BGRNT による共有の許可 / 禁止の設定
SREN
共有の許可 / 禁止
0
BRQ/BGRNT による共有を禁止
(CSn はハイインピーダンスになりません )
1
BRQ/BGRNT による共有を許可
(CSn はハイインピーダンスになります )
共有が許可された領域は , バス開放中 (BGRNT="L" 出力中 ) はチップセレクト出力
(CSn) がハイインピーダンスになります。共有が禁止された領域は , バス開放中
(BGRNT="L" 出力中 ) もチップセレクト出力 (CSn) がハイインピーダンスになりま
せん。
CSER により許可されたすべての領域の共有が許可されている場合のみ , アクセス
ストローブ出力 (AS, BAA, RD, WR0, WR1, WR2, WR3, WR, MCLK, MCLKE) がハイ
インピーダンスになります。
[bit6] PFEN (PreFetch ENable)
このビットは , 各チップセレクト領域のプリフェッチの許可 / 禁止を表 4.2-5 のとお
り設定します。
表 4.2-5 に , 各チップセレクト領域のプリフェッチの許可 / 禁止の設定を示します。
表 4.2-5 各チップセレクト領域のプリフェッチの許可 / 禁止の設定
PFEN
プリフェッチ許可 / 禁止
0
プリフェッチ禁止
1
プリフェッチ許可
プリフェッチが許可された領域に対して読出しを行うと , それに続くアドレスに対
して先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレス
に対し内部バスからアクセスされると,外部アクセスを行わずに,プリフェッチバッ
ファに先読みされたデータを返します。
詳細は ,「4.8 プリフェッチ動作」を参照してください。
156
第 4 章 外部バスインタフェース
[bit5] WREN (WRite ENable)
このビットは , 各チップセレクト領域の書込みの許可 / 禁止を設定します。
表 4.2-6 に , 各チップセレクト領域の書込みの許可 / 禁止の設定を示します。
表 4.2-6 各チップセレクト領域の書込みの許可 / 禁止の設定
WREN
書込み許可 / 禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。データ領域など , 書込みが
必要な領域は , WREN ビットに "1" を設定してください。
[bit4] LEND (Little ENDian select)
このビットは,各チップセレクト領域のバイトオーダリングを表 4.2-7のとおり設定
します。
表 4.2-7 に , 各チップセレクト領域のバイトオーダリングの設定を示します。
表 4.2-7 各チップセレクト領域のバイトオーダリングの設定
LEND
バイトオーダリング
0
ビッグエンディアン
1
リトルエンディアン
ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエン
ディアンのみをサポートします。
157
第 4 章 外部バスインタフェース
[bit3 ∼ bit0] TYP3 ∼ TYP0 (TYPe select)
これらのビットは,各チップセレクト領域のアクセスタイプを表 4.2-8に示すとおり
設定します。
表 4.2-8 に , 各チップセレクト領域のアクセスタイプの設定を示します。
表 4.2-8 各チップセレクト領域のアクセスタイプの設定
TYP3 TYP2 TYP1 TYP0
アクセスタイプ
0
0
X
X
通常アクセス
( 非同期 SRAM, I/O, シングル / ページ / バースト -ROM/FLASH)
0
1
X
X
アドレスデータマルチプレクスアクセス (8/16 ビットバス幅限定 )
0
X
X
0
RDY 端子による WAIT 挿入無効
0
X
X
1
RDY 端子による WAIT 挿入有効 ( バースト時は無効 )
0
X
0
X
WR0 ∼ WR3 端子を書込みストローブとして使用 (WRn は "H" 固定 )
0
X
1
X
WRn 端子を書込みストローブとして使用 *1
1
0
0
0
メモリタイプ A:SDRAM/FCRAM ( オートプリチャージは使用しません ) *2
1
0
0
1
メモリタイプ B:FCRAM ( オートプリチャージを使用します ) *2
1
0
1
0
設定禁止
1
0
1
1
設定禁止
1
1
0
0
設定禁止
1
1
0
1
設定禁止
1
1
1
0
設定禁止
1
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のものになります ) *3
*1:
*2:
*3:
この設定をした場合 , WR0 ∼ WR3 は , 各バイトのイネーブルとして使用できます。
ACR6, ACR7 レジスタのみ有効です。ACR0, ACR1, ACR2, ACR3, ACR4, ACR5 レジスタでは設定
禁止です。
次項の「● CS 領域マスク設定機能」を参照してください。
各ビットは , 組み合わせて設定します。
各アクセスタイプの動作詳細は , 「4.5 通常バスインタフェースの動作」以降の動作説
明の項を参照してください。
158
第 4 章 外部バスインタフェース
● CS 領域マスク設定機能
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した領
域を定義したい場合 , 別の CS 領域の設定で , ACR の TYPE3 ∼ TYPE0 を "1111B" に設
定し , マスク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は禁止
します。
マスク設定領域へのアクセスは , 以下のような動作をします。
• マスク設定領域に対応する CSn はアサートされません。
• ベース設定領域に対応する CSn がアサートされます。
• ACR の以下の設定はマスク設定領域側のものが有効になります。
- bit11, bit10 (DBW1, DBW0)
: バス幅設定
- bit9, bit8 (BST1, BST0)
: バースト長設定
- bit7 (SREN)
: 共有許可設定
- bit6 (PFEN)
: プリフェッチ許可設定
- bit5 (WREN)
: 書込み許可設定 ( この設定のみ , ベース設定領域と
異なる設定は禁止します。)
- bit4 (LEND)
: リトルエンディアン設定
• ACR の以下の設定はベース設定領域側のものが有効になります。
- bit3 ∼ bit0 (TYPE3 ∼ TYPE0) : アクセスタイプ設定
• AWR の設定はマスク設定領域側のものが有効になります。
• CHER の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき
ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけません。ま
た , マスク設定領域を複数重複させてもいけません。ASR および ACR の ASZ3 ∼ ASZ0
ビットの設定には十分注意してください。
これらのビット使用に際して , 以下の制限事項があります。
• 書込み許可設定をマスクでは実現できません。
• 書込み許可設定は , ベースとなる CS 領域とマスク設定領域とで同じ設定としてくだ
さい。
• マスク設定領域で書込み禁止を設定すると , その領域はマスクされずベース CS 領域
として動作します。
• ベース CS 領域で書込み禁止を設定し , マスク設定領域で書込み許可を設定すると ,
ベース設定のない領域となり誤動作します。
159
第 4 章 外部バスインタフェース
4.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR7)
領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成および機能について説明します。
■ 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成
領域ウェイトレジスタ (AWR0 ∼ AWR7:Area Wait Register 0 ∼ 7) は , 各チップセレク
ト領域の各種ウェイトタイミングを指定します。
図 4.2-3 に , 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成を示します。
図 4.2-3 領域ウェイトレジスタ (AWR0 ∼ AWR7) の構成
初期値
AWR0H
31
30
29
28
27
26
25
24
000660H
W15
W14
W13
W12
W11
W10
W09
W08
AWR0L
000661H
23
22
21
20
19
18
17
16
W07
W06
W05
W04
W03
W02
W01
W00
AWR1H
000662H
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
AWR1L
000663H
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
W00 XXXXXXXXB XXXXXXXXB
R/W
AWR2H
000664H
31
30
29
28
27
26
25
W15
W14
W13
W12
W11
W10
W09
24
W08 XXXXXXXXB XXXXXXXXB
R/W
AWR2L
000665H
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
16
W00 XXXXXXXXB XXXXXXXXB
R/W
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
31
30
29
28
27
26
25
W15
W14
W13
W12
W11
W10
W09
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
AWR3H
000666H
AWR3L
000667H
AWR4H
000668H
AWR4L
000669H
AWR5H
00066AH
AWR5L
00066BH
INIT 時
RST 時
アクセス
01111111B 01111111B
R/W
11111111B 11111011B
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
24
W08 XXXXXXXXB XXXXXXXXB
R/W
16
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
( 続く )
160
第 4 章 外部バスインタフェース
( 続き )
初期値
AWR6H
31
30
29
28
27
26
25
00066CH
W15
W14
W13
W12
W11
W10
W09
AWR6L
00066DH
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
AWR7H
00066EH
AWR7L
00066FH
24
INIT 時
RST 時
アクセス
W08 XXXXXXXXB XXXXXXXXB R/W
16
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各
ビットの機能が変わります。
● 通常アクセスおよびアドレス / データマルチプレクスアクセス
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に表 4.2-9 の設定を
したチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレクスアク
セス動作を行う領域となります。
表 4.2-9 に , アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定を示します。
表 4.2-9 アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定
TYP3
TYP2
TYP1
TYP0
0
0
X
X
通常アクセス
( 非同期 SRAM, I/O, single/page/burst-ROM/FLASH)
0
1
X
X
アドレスデータマルチプレクスアクセス
(8/16 ビットバス幅限定 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての , AWR0 ∼
AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各
領域をチップセレクト領域許可レジスタ (CSER) によって有効にする前に , 設定を行っ
てください。
161
第 4 章 外部バスインタフェース
以下に , 領域ウェイトレジスタ (AWR0 ∼ AWR7) の各ビットの機能を説明します。
[bit15 ∼ bit12] W15 ∼ W12 (First Access Wait Cycle) : ファーストアクセスウェイト
サイクル
これらのビットは , 各サイクルの最初のアクセスサイクルに挿入する自動ウェイト
サイクル数を設定します。バーストアクセスサイクル以外は , このウェイト設定の
み使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
表 4.2-10 に , ファーストアクセス時の自動ウェイトサイクル数の設定内容を示しま
す。
表 4.2-10 自動ウェイトサイクル数の設定 ( ファーストアクセス時 )
W15
W14
W13
W12
ファーストアクセスウェイトサイクル
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
1
…
1
1
自動ウェイトサイクル 15
[bit11 ∼ bit8] W11 ∼ W08 (Inpage Access Wait Cycle) : ページ内アクセスウェイト
サイクル
これらのビットは , バーストアクセス時にページ内アクセスサイクルに挿入する自
動ウェイトサイクル数を設定します。バーストアクセスサイクル以外では , 意味を
もちません。
表 4.2-11に,バーストアクセス時の自動ウェイトサイクル数の設定内容を示します。
表 4.2-11 自動ウェイトサイクル数の設定 ( バーストアクセス時 )
W11
W10
W09
W08
ページ内アクセスウェイトサイクル
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
1
…
1
1
自動ウェイトサイクル 15
ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同
じ値を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイ
ムは同じにはなりません。ページ内アクセスサイクルでは , アドレス出力遅延が含
まれるためです。
162
第 4 章 外部バスインタフェース
[bit7, bit6] W07, W06 (Read → Write Idle Cycle) : 読出し→書込みアイドルサイクル
読出し→書込みアイドルサイクルは , 読出しサイクル後に書込みサイクルが続く場
合に , 読出しデータと書込みデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子
はハイインピーダンス状態を維持します。読出し後に書込みが続く場合または読出
しの後に別のチップセレクト領域へのアクセスが発生した場合に , 指定したアイド
ルサイクルを挿入します。
表 4.2-12 に , アイドルサイクルの設定内容を示します。
表 4.2-12 アイドルサイクルの設定内容
W07
W06
読出し→書込みアイドルサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
[bit5, bit4] W05, W04 (Write Recovery Cycle) : 書込みリカバリサイクル
書込みリカバリサイクルは , 書込みアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。書込みリカバリサイ
クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。書込みリカバリサイクルを "1" 以上に設定した場合は , 書込み
アクセスの後には必ず書込みリカバリサイクルが挿入されます。
表 4.2-13 に , 書込みリカバリサイクル数の設定内容を示します。
表 4.2-13 書込みリカバリサイクル数の設定内容
W05
W04
書込みリカバリサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
163
第 4 章 外部バスインタフェース
[bit3] W03 (WR0 ∼ WR3) : WRn 出力タイミング選択
WR0∼WR3, WR出力タイミング設定は,書込みストローブ出力を非同期ストローブ
として使用するか , 同期書込みイネーブルとして使用するかを選択します。非同期
ストローブとすることにより通常メモリ / I/O に対応し , 同期イネーブルとすること
によりクロック同期のメモリ / I/O (ASIC 内蔵メモリなど ) に対応します。
表 4.2-14 に , WR0 ∼ WR3, WR 出力タイミング設定を示します。
表 4.2-14 WR0 ∼ WR3, WR 出力タイミング設定
W03
WR0 ∼ WR3, WR 出力タイミング選択
0
MCLK 同期書込みイネーブル出力 (AS="L" から有効 )
1
非同期書込みストローブ出力 ( 通常動作 )
同期書込みイネーブルとした場合 (AWR の W03 ビットが "0"), 以下のような動作と
なります。
• 同期書込みイネーブル出力のタイミングは,外部メモリアクセスクロックの MCLK
出力の立上りエッジで取り込まれることを前提としたタイミングになります。非
同期ストローブ出力とはタイミングが異なります。
• WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングか
ら , 同期書込みイネーブル出力をアサートします。外部バスへ書き込む場合 , 同
期書込みイネーブル出力は "L" を出力します。外部バスから読み出す場合 , 同期
書込みイネーブル出力は "H" を出力します。
• 同期書込みイネーブル出力をアサートした次のクロックサイクルで , 外部データ
出力端子から書込みデータを出力します。
• 読出しストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に
かかわらず , 非同期読出しストローブとして機能します。データの入出力方向制
御にそのまま使用してください。
同期書込みイネーブル出力を使用する場合 , 以下の制限があります。
• 以下の追加ウェイト設定はしないでください。
- CSn → RD/WRn セットアップ設定 (AWR の W01 ビットには常に "0" を書いて
ください )
- ファーストウェイトサイクル設定 (AWR の W15 ∼ W12 ビットには常に "0000B"
を書いてください )
• 以下のアクセスタイプ設定 ( 領域構成レジスタ (ACR) 中の TYPE3 ∼ TYPE0
ビット (bit3 ∼ bit0)) は設定しないでください。
- アドレス / データマルチプレクスバス設定 (ACR の TYPE2 ビットには常に "0"
を書いてください )
- WR0 ∼ WR3 を書込みストローブとして使用する設定 (ACR の TYP1 ビットに
は常に "0" を書いてください )
- RDY 入力有効設定 (ACR の TYPE0 ビットには常に "0" を書いてください )
• 同期書込みイネーブル出力の場合 , バースト長は常に "1" (ACR の BST1, BST0
ビットには "00B") を設定してください。
164
第 4 章 外部バスインタフェース
[bit2] W02 (Address → CSn Delay) : アドレス→ CSn 遅延
アドレス→ CSn 遅延設定は , CSn の立下りに対してアドレスなどが一定のセット
アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際
にも CSn のエッジを必要とする場合などに設定します。
アドレスおよび AS 出力から , CS0 ∼ CS7 出力までの遅延を設定します。
表 4.2-15 に , アドレス→ CSn 遅延設定を示します。
表 4.2-15 アドレス→ CSn 遅延設定
W02
アドレス→ CSn 遅延の有無
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼
CS7 がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセ
スを実行した場合でも , 両アクセスの間も CS0 ∼ CS7 はアサートを継続したまま変
化しないことがあります。
"1"を設定し,遅延ありを選択した場合は,外部メモリクロックMCLK出力の立上りか
ら , CS0 ∼ CS7 がアサート開始されます。このとき , 同じチップセレクト領域に連
続したアクセスを実行した場合でも , 両アクセスの間に , CS0 ∼ CS7 ネゲートタイ
ミングが発生します。
CSn遅延ありを選択した場合は,遅延させたCSnのアサートから,読出し/書込みスト
ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01
の CSn → RD/WRn セットアップ設定と同等の動作となります )。
アドレス→ CSn 遅延設定は , 同一領域に対して出力される DACKX 信号 ( 基本モー
ド ) にも同様に作用します。基本モードでの DACKX 出力は , その領域に対する CSn
と同じ波形となります。
[bit1] W01:(CSn → RD/WRn SETUP) : CSn → RD/WRn セットアップ延長サイクル
CSn → RD/WRn セットアップ延長サイクルは , CSn アサート後 , 読出し / 書込みスト
ローブをアサートするまでの期間を延長する場合に設定します。CSn アサート後 ,
読出し / 書込みストローブをアサートする前に最低 1 サイクルのセットアップ延長
サイクルを挿入します。
表 4.2-16 に , CSn → RD/WRn セットアップ延長サイクルの機能を示します。
表 4.2-16 CSn → RD/WRn セットアップ延長サイクルの機能
W01
CSn → RD/WRn セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0"を設定して0サイクルを選択した場合は,最速で, CSnアサート直後の外部メモリ
クロック MCLK 出力の立上りから RD/WR0 ∼ WR3/WR が出力されます。WR0 ∼
WR3/WR は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
165
第 4 章 外部バスインタフェース
"1"を設定して1サイクルを選択した場合は, RD/WR0∼WR3/WRとも,必ず1サイクル
以上遅れて出力されます。
同一チップセレクト領域内で , CSn をネゲートしないまま連続してアクセスする場
合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ
プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSn 遅延を
挿入することにより , 毎アクセス時に CSn が一度ネゲートされるため , このセット
アップ延長サイクルが有効となります。
W02 の CSn 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ
トアップサイクルが有効となります。
[bit0] W00 (RD/WRn → CSn Hold Cycle) :(RD/WRn → CSn ホールド延長サイクル
RD/WRn→CSnホールド延長サイクルは,読出し/書込みストローブネゲート後, CSn
ネゲートまでの期間を延長する場合に設定します。読出し/書込みストローブネゲー
ト後 , CSn をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。
表 4.2-17 に , RD/WRn → CSn ホールド延長サイクルの機能を示します。
表 4.2-17 RD/WRn → CSn ホールド延長サイクルの機能
W00
RD/WRn → CSn ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定して 0 サイクルを選択した場合は , RD/WR0 ∼ WR3/WR がネゲートされた
後の外部メモリクロック MCLK 出力の立上りエッジよりホールド遅延経過後に ,
CS0 ∼ CS7 がネゲートされます。
"1"を設定して1サイクルを選択した場合は, CS0∼CS7は1サイクル遅れてネゲート
されます。
同一チップセレクト領域内で , CSn をネゲートしないまま連続してアクセスする場
合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ
イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSn 遅延を挿入する
ことにより , 毎アクセス時に CSn が一度ネゲートされるため , このホールド延長サ
イクルが有効となります。
166
第 4 章 外部バスインタフェース
● メモリタイプ A (SDRAM/FCRAM) およびメモリタイプ B (FCRAM)
ACR6, ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に表 4.2-18 の設定を
したチップセレクト領域は , SDRAM/FCRAM アクセス動作を行う領域となります。
表 4.2-18 に , アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定を示します。
表 4.2-18 アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定
TYP3
TYP2
TYP1
TYP0
1
0
0
0
アクセスタイプ
Memory type A:SDRAM/FCRAM
( オートプリチャージは使用しません )
SDRAM アクセス領域に対しての , AWR6, AWR7 の各ビットの機能を以下に示します。
初期値が不定ですので , 各領域をチップセレクト領域許可レジスタ (CSER) によって有
効にする前に , 設定を行ってください。
SDRAM/FCRAMを接続する領域では,このジスタの設定はすべて同じにしてください。
以下に , 領域ウェイトレジスタ (AWR6, AWR7) の各ビットの機能を説明します。
[bit15] W15: 予約ビット
このビットは , 予約ビットです。必ず "0" を設定してください。
[bit14 ∼ bit12] W14 ∼ W12 (RAS-CAS delay Cycle) :RAS-CAS ディレイサイクル
これらのビットには , RAS 出力から CAS 出力までのサイクル数を設定してくださ
い。
表 4.2-19 に , RAS 出力から CAS 出力までのサイクル数の設定内容を示します。
表 4.2-19 RAS 出力から CAS 出力までのサイクル数の設定
W14
W13
W12
RAS-CAS ディレイサイクル
0
0
0
1 サイクル
0
0
1
2 サイクル
…
1
1
…
1
8 サイクル
SDRAM/FCRAM を接続する領域では , これらのビットによる RAS-CAS ディレイサ
イクルの設定はすべて同じにしてください。
[bit11] W11: 予約ビット
このビットは , 予約ビットです。必ず "0" を設定してください。
167
第 4 章 外部バスインタフェース
[bit10 ∼ bit8] W10 ∼ W08 (CAS latency Cycle) :CAS レイテンシ
これらのビットには , CAS レイテンシを設定してください。
表 4.2-20 に , CAS レイテンシの設定内容を示します。
表 4.2-20 CAS レイテンシの設定
W10
W09
W08
CAS レイテンシ
0
0
0
1 サイクル
0
0
1
2 サイクル
…
1
…
1
1
8 サイクル
SDRAM/FCRAM を接続する領域では , これらのビットによる CAS レイテンシの設
定はすべて同じにしてください。
[bit7, bit6] W07, W06 (Read → Write Cycle) : 読出し→書込みサイクル
これらのビットには , 最後の読出しデータ入力サイクルから書込みコマンド発行ま
での最小サイクル数を設定してください。
表 4.2-21 に , 読出し→書込みサイクルの設定内容を示します。
表 4.2-21 読出し→書込みサイクル
W07
W06
読出し→書込みサイクル
0
0
1 サイクル
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAMを接続する領域では,これらのビットによる読出し→書込みサイク
ルの設定はすべて同じにしてください。
読出し→書込みアイドルサイクルは , このビットの設定サイクルを -1 したサイクル
数となります。
168
第 4 章 外部バスインタフェース
[bit5, bit4] W05, W04 (Write Recovery Cycle) : 書込みリカバリサイクル
これらのビットには,最後の書込みデータ出力から次の読出しコマンド発行までの最小
サイクル数を設定してください。
表 4.2-22 に , 書込みリカバリサイクルの設定内容を示します。
表 4.2-22 書込みリカバリサイクル設定
W05
W04
書込みリカバリサイクル
0
0
設定禁止
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAMを接続する領域では,これらのビットによる書込みリカバリサイク
ルの設定はすべて同じにしてください。
[bit3, bit2] W03, W02 (RAS Active time) :RAS アクティブタイム
これらのビットには , RAS アクティブタイムの最小サイクル数を設定してくださ
い。
表 4.2-23 に , RAS アクティブタイムの設定内容を示します。
表 4.2-23 RAS アクティブタイム設定
W03
W02
RAS アクティブタイム
0
0
1 サイクル
0
1
2 サイクル
1
0
5 サイクル
1
1
6 サイクル
SDRAM/FCRAM を接続する領域では , これらのビットによる RAS アクティブタイ
ムの設定はすべて同じにしてください。
[bit1, bit0] W01, W00 (RAS precharge cycle) :RAS プリチャージサイクル
これらのビットには , RAS プリチャージサイクル数を設定してください。
表 4.2-24 に , RAS プリチャージサイクルの設定内容を示します。
表 4.2-24 RAS プリチャージサイクル設定
W01
W00
RAS プリチャージサイクル
0
0
1 サイクル
0
1
2 サイクル
1
0
3 サイクル
1
1
4 サイクル
SDRAM/FCRAM を接続する領域では , これらのビットによる RAS プリチャージサ
イクルの設定はすべて同じにしてください。
169
第 4 章 外部バスインタフェース
4.2.4
メモリ設定レジスタ (SDRAM/FCRAM オートプリ
チャージなしモード用 )(MCRA)
メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )(MCRA)
の構成および機能について説明します。
■ メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )(MCRA)
の構成
メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 ) (MCRA:
Memory Configuration Register for extend type-A:SDRAM/FCRAM オートプリチャージな
し ) は , チップセレクト領域に接続する SDRAM/FCRAM の各種設定を行います。
図 4.2-4 に , メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )
(MCRA) の構成を示します。
図 4.2-4 メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )(MCRA) の構成
bit
アドレス
31
30
29
28
27
26
25
24
000670H 予約 PSZ2 PSZ1 PSZ0 WBST BANK ABS1 ABS0
R/W R/W R/W R/W R/W R/W R/W R/W
初期値
XXXXXXXXB (INIT)
XXXXXXXXB (RST)
ACR6, ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に表 4.2-25 の設定を
したチップセレクト領域に接続する SDRAM/FCRAM の各種設定を行う領域となりま
す。
表 4.2-25 に , アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定を示します。
表 4.2-25 アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定
TYP3
TYP2
TYP1
TYP0
1
0
0
0
アクセスタイプ
メモリタイプ A:SDRAM/FCRAM
( オートプリチャージは使用しません )
MCRB とレジスタハードウェアを共用しています。したがって , MCRA を変更した場
合は MCRB も変更されます。
以下に , メモリ設定レジスタ (SDRAM/FCRAM オートプリチャージなしモード用 )
(MCRA) の各ビットの機能を説明します。
[bit31] 予約ビット
このビットは , 予約ビットです。必ず "0" を設定してください。
170
第 4 章 外部バスインタフェース
[bit30 ∼ bit28] PSZ2, PSZ1, PSZ0 (Page SiZe) : ページサイズ
これらのビットには , 接続する SDRAM のページサイズを設定してください。
表 4.2-26 に , 接続する SDRAM のページサイズの設定内容を示します。
表 4.2-26 SDRAM のページサイズの設定
PSZ2
PSZ1
PSZ0
0
0
0
8 ビットコラムアドレス
0
0
1
9 ビットコラムアドレス :A0 ∼ A8 (512 メモリワード )
0
1
0
10 ビットコラムアドレス :A0 ∼ A9 (1024 メモリワード )
0
1
1
11 ビットコラムアドレス :A0 ∼ A9, A11 (2048 メモリワード )
1
X
X
設定禁止
SDRAM のページサイズ
:A0 ∼ A7 (256 メモリワード )
[bit27] WBST (Write BurST enable) : 書込みバースト設定
このビットには , 書込み時にバースト書込みを行うかを設定してください。
表 4.2-27 に , 書込みバースト設定内容を示します。
表 4.2-27 書込みバースト設定
WBST
書込みバースト設定
0
シングル書込み
1
バースト書込み
FCRAM を接続する場合は , 必ず "1" を設定してください。
FCRAM は " バースト読出し , シングル書込み " モードをサポートしていません。
[bit26] BANK (BANK type select) : バンク数設定
このビットには , 接続する SDRAM のバンク数を設定してください。
表 4.2-28 に , 書込みバースト設定内容を示します。
表 4.2-28 バンク数設定
BANK
バンク数設定
0
2 バンク
1
4 バンク
171
第 4 章 外部バスインタフェース
[bit25, bit24] ABS1, ABS0 (Active Bank Select) : アクティブバンク数設定
これらのビットには , 同時にアクティブにする最大バンク数を設定してください。
表 4.2-29 に , アクティブバンク数設定内容を示します。
表 4.2-29 アクティブバンク数設定
172
ABS1
ABS0
アクティブバンク数
0
0
1 バンク
0
1
2 バンク
1
0
3 バンク
1
1
4 バンク
第 4 章 外部バスインタフェース
4.2.5
メモリ設定レジスタ (FCRAM オートプリチャージあ
りモード用 )(MCRB)
メモリ設定レジスタ (FCRAM オートプリチャージありモード用 ) (MCRB) の構成お
よび機能について説明します。
■ メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB) の構成
メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB:Memory
Configuration Register for extend type-B:FCRAM オートプリチャージあり ) は , チップセ
レクト領域に接続する FCRAM の各種設定を行います。
図 4.2-5 に , メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB)
の構成を示します。
図 4.2-5 メモリ設定レジスタ (FCRAM オートプリチャージありモード用 )(MCRB) の構成
bit
23
22
21
20
19
18
17
16
初期値
アクセス
アドレス 000671H 予約 PSZ2 PSZ1 PSZ0 WBST BANK ABS1 ABS0 XXXXXXXXB (INIT)
R/W
XXXXXXXXB (RST)
ACR6, ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に表 4.2-30 の設定を
したチップセレクト領域に接続する FCRAM の各種設定を行う領域となります。
表 4.2-30 に , アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定を示します。
表 4.2-30 アクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定
TYP3
TYP2
TYP1
TYP0
1
0
0
1
アクセスタイプ
メモリタイプ B:FCRAM
( オートプリチャージは使用します )
MCRA とレジスタハードウェアを共用しています。したがって , MCRA を変更した場
合は MCRB も変更されます。
MCRA と同じ機能です。ただし , この TYP 設定においては , WBST ビットの機能は使
用できません (FCRAM は " バースト読出し , シングル書込み " モードをサポートして
いません )。
173
第 4 章 外部バスインタフェース
DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1)
4.2.6
DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) の構成および機能について説明し
ます。
■ DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) の構成
DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1:I/O Wait Register for DMAC0, DMAC1)
は , DMA フライバイアクセス時の各種ウェイトを設定します。
図 4.2-6 に , DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) の構成を示します。
図 4.2-6 DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) の構成
IOWR0
bit
アドレス 000678H
IOWR1
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
初期値
アクセス
(INIT)
XXXXXXXX
RYE0 HLD0 WR01 WR00 IW03 IW02 IW01 IW00
R/W
B
XXXXXXXXB (RST)
RYE1 HLD1 WR11 WR10 IW13 IW12 IW11 IW10 XXXXXXXXB (INIT)
XXXXXXXXB (RST)
アドレス 000679H
R/W
■ DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) のビット機能
以下に , DMAC 用 I/O ウェイトレジスタ (IOWR0, IOWR1) の各ビットの機能を説明し
ます。
[bit31, bit23] RYE0, RYE1 (ReadY Enable0, 1) :RDY 機能設定 0, 1
これらのビットは , DMA フライバイアクセス時の ch.0, ch.1 の各チャネルごとの
RDY によるウェイト制御の設定をします。
表 4.2-31 に , RDY 機能設定を示します。
表 4.2-31 RDY 機能設定
RYEn
RDY 機能設定
0
I/O アクセスに対する RDY 入力は無効となります。
1
I/O アクセスに対する RDY 入力が有効になります。
"1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDY 端子による
ウェイト挿入が可能となります。IOWR, IORD は RDY 端子がイネーブルになるま
で延長されます。また , メモリ側の RD/WR0 ∼ WR3/WR もそれに同期して延長さ
れます。フライバイ転送相手のチップセレクト領域が領域構成レジスタ (ACR) によ
り RDY 有効に設定されていれば , IOWR 側の RYEn ビットとは関係なく RDY 端子
によるウェイト挿入が可能となります。フライバイ転送相手のチップセレクト領域
で領域構成レジスタ (ACR) により RDY 無効にされている場合でも , IOWR 側の
RYEn ビットにより RDY 有効に設定されていれば , フライバイアクセス時のみ RDY
端子によるウェイト挿入が可能となります。
174
第 4 章 外部バスインタフェース
[bit30, bit22] HLD0, HLD1 (HoLD wait control) : ホールドウェイト設定
これらのビットは , DMA フライバイアクセス時の転送元アクセス側の読出しスト
ローブ信号のホールドサイクルを制御します。
表 4.2-32 に , ホールドウェイト設定を示します。
表 4.2-32 ホールドウェイト設定
HLDn
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , 読出しサイクルを 1 サイクル延長し
ます。
"0"設定時は,転送元アクセス側の読出しストローブ信号(メモリ→I/Oの場合はRD,
I/O →メモリの場合は IORD) と書込みストローブ信号 ( メモリ→ I/O の場合は IOWR,
I/O →メモリの場合は , WR0 ∼ WR3 および WR) は同じタイミングで出力されます。
"1"設定時は,転送元アクセス側データの転送先に対するホールドタイムを確保する
ため , 書込みストローブ信号に対し読出しストローブ信号を 1 サイクル長く出力し
ます。
[bit29, bit28, bit21, bit20] WR01, WR00, WR11, WR10 (I/O Idle Wait) :
I/O アイドルサイクル数設定
これらのビットは , DMA フライバイアクセス時に , 連続した I/O アクセスに対する
アイドルサイクル数を設定します。
表 4.2-33 に , I/O アイドルサイクル数の設定内容を示します。
表 4.2-33 I/O アイドルサイクル数の設定内容
WRn1
WRn0
I/O アイドルサイクル数の設定
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
アイドルサイクル数を 1 サイクル以上設定した場合 , DMA フライバイアクセス時に ,
I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド
ルサイクル中は , すべての CSn およびストローブ出力はネゲートされ , データ端子
はハイインピーダンスとなります。
175
第 4 章 外部バスインタフェース
[bit27 ∼ bit24, bit19 ∼ bit16, bit11 ∼ bit8] IW03 ∼ W00, IW13 ∼ W10 (I/O access Wait) :
I/O アクセスウェイトサイクル数設定
これらのビットは , DMA フライバイアクセス時の I/O アクセスの自動ウェイトサイ
クル数を設定します。
表 4.2-34 に , I/O ウェイトサイクル数の設定内容を示します。
表 4.2-34 I/O ウェイトサイクル数の設定内容
IWn3
IWn2
IWn1
IWn0
I/O ウェイトサイクル数
0
0
0
0
0 サイクル
0
0
0
1
1 サイクル
…
1
1
…
1
1
15 サイクル
ウェイトサイクルの挿入数は , 転送元と転送先とでのデータの同期のため , IWnn
ビットによる I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定の
うち , 大きい方を使用します。そのため , IWnn ビットに設定したサイクル数より多
いウェイトサイクルが挿入される場合があります。
176
第 4 章 外部バスインタフェース
4.2.7
チップセレクト領域許可レジスタ (CSER)
チップセレクト領域許可レジスタ (CSER) の構成および機能について説明します。
■ チップセレクト領域許可レジスタ (CSER) の構成
チップセレクト領域許可レジスタ (CSER:Chip Select Enable register) は , 各チップセレク
ト領域の許可 / 禁止を設定します。
図 4.2-7 に , チップセレクト領域許可レジスタ (CSER) の構成を示します。
図 4.2-7 チップセレクト領域許可レジスタ (CSER) の構成
bit
31
30
29
28
27
26
25
24
初期値
アクセス
11111111
(INIT)
アドレス 000681H CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0
R/W
B
11111111B (RST)
000680H
■ チップセレクト領域許可レジスタ (CSER) のビット機能
以下に , チップセレクト領域許可レジスタ (CSER) のビットの機能を説明します。
[bit31 ∼ bit24] CSE7 ∼ CSE0 (Chip select enable 0 ∼ 7) : チップセレクト領域許可 0 ∼ 7
これらのビットは , CS0 ∼ CS7 の各チップセレクト領域許可ビットです。
初期値は , 00000001B で CS0 領域のみ許可されています。
"1"を書き込むことにより ASR0 ∼ ASR7, ACR0∼ ACR7, AWR0 ∼ AWR7 の設定に従
い , 動作します。許可にする前に , 必ず対応するチップセレクト領域のすべての設
定を行ってください。ただし , リフレッシュコントロールレジスタ (RCR) の PON
ビットによるパワーオンシーケンスの実行は , チップセレクト領域許可レジスタ
(CSER) によるチップセレクト領域の許可を行った後に開始してください。
チップセレクト領域許可レジスタ (CSER) で許可されていない領域に接続された
SDRAM/FCRAM に対しては , パワーオンシーケンスは無効となります。
表 4.2-35 に , チップセレクト領域許可 0 ∼ 7 の機能を示します。
表 4.2-35 チップセレクト領域許可 0 ∼ 7 の機能
CSE7 ∼ CSE0
領域コントロール
0
禁止
1
許可
177
第 4 章 外部バスインタフェース
表 4.2-36 に , チップセレクト領域許可ビットの対応する CSn を示します。
表 4.2-36 チップセレクト領域許可ビットの対応す CSn
178
CSE のビット
対応する CSn
bit24:CSE0
CS0
bit25:CSE1
CS1
bit26:CSE2
CS2
bit27:CSE3
CS3
bit28:CSE4
CS4
bit29:CSE5
CS5
bit30:CSE6
CS6
bit31:CSE7
CS7
第 4 章 外部バスインタフェース
4.2.8
キャッシュ取込み許可レジスタ (CHER)
キャッシュ取込み許可レジスタ (CHER) の構成および機能について説明します。
■ キャッシュ取込み許可レジスタ (CHER) の構成
キャッシュ取込み許可レジスタ (CHER:CacHe Enable Register) は , 各チップセレクト領
域から読み込んだデータの内蔵キャッシュへの取込みを制御します。
図 4.2-8 に , キャッシュ取込み許可レジスタ (CHER) の構成を示します。
図 4.2-8 キャッシュ取込み許可レジスタ (CHER) の構成
bit 23
22
21
20
19
18
17
16
初期値
アクセス
アドレス 000681H CHE7 CHE6 CHE5 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B (INIT)
R/W
11111111B (RST)
■ キャッシュ取込み許可レジスタ (CHER) のビット機能
以下に , キャッシュ取込み許可レジスタ (CHER) のビットの機能を説明します。
[bit24 ∼ bit17] CHE7 ∼ CHE0 (Cache Enable 7 ∼ 0) : キャッシュ領域設定 7 ∼ 0
これらのビットは , 各チップセレクト領域に内蔵キャッシュへの取込みの許可 / 禁
止を設定します。
表 4.2-37 に , キャッシュ領域設定を示します。
表 4.2-37 キャッシュ領域設定
CHEn
キャッシュ領域設定
0
非キャッシュ領域 ( 該当する領域より読み出した
データをキャッシュに保存しません )
1
キャッシュ領域 ( 該当する領域より読み出した
データをキャッシュに保存します )
179
第 4 章 外部バスインタフェース
4.2.9
端子 / タイミングコントロールレジスタ (TCR)
端子 / タイミングコントロールレジスタ (TCR) の構成および機能について説明しま
す。
■ 端子 / タイミングコントロールレジスタ (TCR) の構成
端子 / タイミングコントロールレジスタ (TCR:Terminal and timing Control Register) は ,
共通端子機能設定やタイミング制御など,外部バスインタフェースコントローラの全般
に関わる機能を制御します。
図 4.2-9 に , 端子 / タイミングコントロールレジスタ (TCR) の構成を示します。
図 4.2-9 端子 / タイミングコントロールレジスタ (TCR) の構成
bit
7
6
5
4
3
2
1
0
初期値
アクセス
アドレス 000683H BREN PSUS PCLR 予約 OHT1 OHT0 RDW1 RDW0 00000000B (INIT)
R/W
0000XXXXB (RST)
■ 端子 / タイミングコントロールレジスタ (TCR) のビット機能
以下に , 端子 / タイミングコントロールレジスタ (TCR) の各ビットの機能を説明します。
[bit7] BREN (BRQ ENable) :BRQ 入力許可設定
このビットは , BRQ 端子の入力を許可し , 外部バス共有を可能にします。
表 4.2-38 に , BRQ 入力許可設定を示します。
表 4.2-38 BRQ 入力許可設定
BREN
BRQ 入力許可設定
0
BRQ/BGRNT によるバス共有をしません。
BRQ 入力は無効となります。
1
BRQ/BGRNT によるバス共有を行います。
BRQ 入力は有効となります。
初期状態 ("0") のときは , BRQ の入力を無視します。"1" を設定すると , BRQ 入力が
"H" になった後バス開放が可能になった時点で , バスを開放 ( ハイインピーダンス制
御 ) し , BGRNT をアクティブ ("L" 出力 ) にします。
180
第 4 章 外部バスインタフェース
[bit6] PSUS (Prefetch SUSpend) : プリフェッチ抑止
このビットは , すべての領域に対するプリフェッチの一時停止を制御します。
表 4.2-39 に , プリフェッチ制御の機能を示します。
表 4.2-39 プリフェッチ制御の機能
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ抑止
"1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作をしません。こ
の間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファの
内容は消去されませんので , プリフェッチを再開する前に bit5 の PCLR ビット機能
によりプリフェッチバッファをクリアしてください。
[bit5] PCLR (Prefetch buffer CleaR) : プリフェッチバッファ全クリア
このビットは , プリフェッチバッファのすべての内容をクリアします。
表 4.2-40 に , プリフェッチバッファ制御の機能を示します。
表 4.2-40 プリフェッチバッファ制御の機能
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファク
リアが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッ
チを中断("1"に設定)しておいてからバッファをクリアしてください (PSUSとPCLR
の両ビットに同時に "11B" を書き込んでください )。
[bit4 ∼ bit2] 予約
これらのビットは , 予約ビットです。必ず "0" を設定してください。
181
第 4 章 外部バスインタフェース
[bit1, bit0] RDW1, RDW0 (Reduce Wait cycle) : ウェイトサイクル短縮
これらのビットは , すべてのチップセレクト領域およびフライバイ用 I/O チャネル
に対し , 自動アクセスサイクルウェイトの設定値を , 領域ウェイトレジスタ (AWR)
の設定値はそのままで自動ウェイトサイクルのみを一律に削減することを指示し
ます。アイドルサイクルやリカバリサイクル , セットアップやホールドサイクルの
設定には影響しません。SDRAM 制御領域でも機能しません。
表 4.2-41 に , これらのビットの組合せによるウェイトサイクル短縮の設定内容を示
します。
表 4.2-41 ウェイトサイクル短縮の設定内容
RDW1
RDW0
0
0
通常ウェイト (AWR0 ∼ AWR7 の設定値 )
0
1
AWR0 ∼ AWR7 の設定値の 1/2 (1 ビット右シフト )
1
0
AWR0 ∼ AWR7 の設定値の 1/4 (2 ビット右シフト )
1
1
AWR0 ∼ AWR7 の設定値の 1/8 (3 ビット右シフト )
ウェイトサイクル短縮
この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設
定を大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイ
クルウェイトがかかることを防ぐためのものです。
通常このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれ
ぞれ書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべて
の AWR の設定は高速クロック時の設定のままで , アクセスサイクルウェイトのみ
一度に削減できます。
クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくだ
さい。
182
第 4 章 外部バスインタフェース
リフレッシュコントロールレジスタ (RCR)
4.2.10
リフレッシュコントロールレジスタ (RCR) の構成および機能について説明します。
■ リフレッシュコントロールレジスタ (RCR) の構成
リフレッシュコントロールレジスタ (RCR:Refresh Control Register) は , SDRAM に対す
る各種リフレッシュ制御設定を行います。どの領域に対しても SDRAM 制御を設定し
ていない場合 , このレジスタの設定は意味を持ちませんが , その場合はレジスタ値を初
期化状態から書き換えないでください。
リードモディファイライト系命令の読出しの場合は , SELF, RRLD, PON ビットは必ず
"0" を返します。
図 4.2-10 に , リフレッシュコントロールレジスタ (RCR) の構成を示します。
図 4.2-10 リフレッシュコントロールレジスタ (RCR) の構成
RCRH
アドレス
31
30
29
28
27
26
25
24
bit
23
22
21
20
19
18
17
16
初期値
アクセス
000684H SELF RRLD RFINT5 RFINT4 RFINT3 RFINT2 RFINT1 RFINT0 00XXXXXXB (INIT)
R/W
00XXXXXXB (RST)
RCRL
アドレス
bit
000685H BRST RFC2 RFC1 RFC0 PON TRC2 TRC1 TRC0 XXXX0XXXB (INIT)
XXXX0XXXB (RST)
R/W
■ リフレッシュコントロールレジスタ (RCR) のビット機能
以下に , リフレッシュコントロールレジスタ (RCR) の各ビットの機能を説明します。
[bit31] SELF (SELF refresh assert) : セルフリフレッシュ制御
このビットは , セルフリフレッシュモードに対応するメモリに対してセルフリフ
レッシュモードの制御を行います。
表 4.2-42 に , セルフリフレッシュ制御の設定を示します。
表 4.2-42 セルフリフレッシュ制御の設定
SELF
セルフリフレッシュ制御
0
オートリフレッシュまたはパワーダウン
1
セルフリフレッシュモードへ移行
"1"を設定すると SELF コマンド発行後セルフリフレッシュを行います。"0"を書き込
むとセルフリフレッシュモードを終了します。
LSI をストップモードにする際 , SDRAM の内容を保持させたい場合は , ストップ
モードに入れる前にこのビットにてセルフリフレッシュモードに入れてください。
この際 , セルフリフレッシュ遷移前に集中リフレッシュを行いますので , 終了する
までの間に発生した外部アクセス要求は待たされます。また , ストップモードへの
遷移も待たされます。
セルフリフレッシュモードからの解除は , このビットへの "0" 書込みかまたは
SDRAM に対するアクセスの発生によって行われます。この際 , 解除直後に集中リ
183
第 4 章 外部バスインタフェース
フレッシュを行いますので , SDRAM アクセスを含む外部アクセスを行うと , しばら
くの間外部アクセス要求が待たされ , CPU の動作が停止します。
セルフリフレッシュモードに入れない状態で LSI をストップモードにすると , その
ままパワーダウンモードとなり , SDRAM の内容は破壊されます。
リードモディファイライト系命令の読出しの場合は , SELF, RRLD, PON ビットは必
ず "0" を返します。
[bit30] RRLD (Refresh counter ReLoaD) : リフレッシュカウンタ起動制御
このビットは , フレッシュカウンタの動作開始およびリロードをします。
表 4.2-43 に , リフレッシュカウンタ起動制御の機能を示します。
表 4.2-43 リフレッシュカウンタ起動制御の機能
RRLD
リフレッシュカウンタ起動制御
0
無効 ( 何もしません )
1
オートリフレッシュを 1 回実行し , RFINT の値をリロードします。
初期状態ではリフレッシュカウンタは停止しています。この状態でこのビットに"1"
を設定すると , その時点で CSER が有効になっているすべての SDRAM 領域に対し ,
分散リフレッシュモード時はオートリフレッシュを 1 回 , 集中リフレッシュモード
時は RFC で指定された回数実行し , その後 RFINT5 ∼ RFINT0 ビットの値をリロー
ドします。これ以降 , リフレッシュカウンタはダウンカウントを開始し , カウンタ
値が "000000B" からアンダフローを発生するたびに , RFINT5 ∼ RFINT0 ビットの値
をリロードすると同時にオートリフレッシュを 1 回実行する , という動作を繰り返
します。リロード終了後 "0" に戻ります。
オートリフレッシュを停止させたい場合は , RFINT5 ∼ RFINT0 ビットに "000000B"
を書き込んでください。
リードモディファイライト系命令の読出しの場合は , 必ず "0" を返します。
[bit29∼bit24] RFINT5∼RFINT0 (ReFresh INTerval) :オートリフレッシュインターバル
これらのビットは , オートリフレッシュの間隔を指定します。
オートリフレッシュ間隔は分散リフレッシュモード時 {(REFINT5 ∼ REFINT0 の値 ) ×
32 × ( 外部バスクロックサイクル )}, 集中リフレッシュモード時 {(REFINT5 ∼ REFINT0
の値 ) × 32 × (RFC での指定回数 ) × ( 外部バスクロックサイクル )} で求めることが
できます。最大 RAS アクティブ時間も考慮して設定値を計算してください。
オートリフレッシュを停止させたい場合は , RFINT5 ∼ REFINT0 ビットに "000000B"
を書き込んでください。
なお , オートリフレッシュコマンドを発行している時間も , リフレッシュカウンタ
はダウンカウントを行っています。
184
第 4 章 外部バスインタフェース
[bit23] BRST (BuRST refresh select) : バーストリフレッシュ制御
このビットは , オートリフレッシュの際の動作モードを制御します。
表 4.2-44 に , バーストリフレッシュ制御の機能を示します。
表 4.2-44 バーストリフレッシュ制御の機能
BRST
バーストリフレッシュ制御
0
分散リフレッシュ ( 分散してオートリフレッシュを起動します )
1
バーストリフレッシュ (1 回に連続してオートリフレッシュを起動しま
す)
分散リフレッシュを設定している場合 , 1 回のリフレッシュ間隔ごとに 1 回 , オート
リフレッシュコマンドを発行します。
バーストリフレッシュを設定している場合 , 1 回のリフレッシュ間隔ごとに , リフ
レッシュカウンタに設定した回数のオートリフレッシュコマンドを連続して発行
します。
[bit22 ∼ bit20] RFC2, RFC1, RFC0 (ReFresh Count) : リフレッシュ回数
これらのビットは , SDRAM すべてをリフレッシュするのに必要なリフレッシュ回
数を指定します。
表 4.2-45 に , リフレッシュ回数を示します。
表 4.2-45 リフレッシュ回数
RFC2
RFC1
RFC0
0
0
0
256
0
0
1
512
0
1
0
1024
0
1
1
2048
1
0
0
4096
1
0
1
8192
1
1
0
設定禁止
1
1
1
リフレッシュ禁止
リフレッシュ回数
ここで指定されたリフレッシュ回数は , セルフリフレッシュモード遷移前および遷
移後に実行される集中リフレッシュの際の回数となります。また , BRST ビットに
よりバーストリフレッシュを選択している場合は , リフレッシュインターバル 1 回
ごとに発行されるリフレッシュコマンドの回数となります。
185
第 4 章 外部バスインタフェース
[bit19] PON (Power ON) : パワーオン制御
このビットは , SDRAM (FCRAM) のパワーオンシーケンスを制御します。
表 4.2-46 に , パワーオン制御の機能を示します。
表 4.2-46 パワーオン制御の機能
PON
パワーオン制御
0
無効 ( 何もしません )
1
パワーオンシーケンス開始
PON ビットに "1" を書き込むことにより , SDRAM のパワーオンシーケンスを開始
します。パワーオンシーケンスを開始する前に必ず対応する AWR, MCRA (B),
CSER などのレジスタを設定してください。パワーオンシーケンスを開始するとこ
のビットは "0" に戻ります。
PON ビットを有効にするときには , RFINT の設定と RRLD を有効にしてリフレッ
シュカウンタも動作させてください。PON ビットのみでは , リフレッシュ動作は行
いません。
SELF ビットと同時に有効にしないでください。
リードモディファイライト系命令の読出しの場合は , 必ず "0" を返します。
[bit18 ∼ bit16] TRC2, TRC1, TRC0 (Time of Refresh Cycle) :
リフレッシュサイクル (tRC) 設定
これらのビットは , リフレッシュサイクル (tRC) を設定します。
表 4.2-47 に , リフレッシュサイクル (tRC) 設定を示します。
表 4.2-47 リフレッシュサイクル (tRC) 設定
186
TRC2
TRC1
TRC0
リフレッシュサイクル (tRC)
0
0
0
4
0
0
1
5
0
1
0
6
0
1
1
7
1
0
0
8
1
0
1
9
1
1
0
10
1
1
1
11
第 4 章 外部バスインタフェース
4.3
チップセレクト領域の設定例
外部バスインタフェースは全部で 8 領域分のチップセレクト領域が設定できます。
チップセレクト領域の設定例を説明します。
■ チップセレクト領域の設定例
各領域のアドレス空間は ASR0 ∼ ASR7 ( 領域選択レジスタ ) と ACR0 ∼ ACR7 ( 領域
構成レジスタ ) で 4G バイトの空間に , 最小 64K バイト単位で任意に配置ができます。
これらのレジスタによって指定された領域に対してバスアクセスを行うと,アクセスサ
イクル中に対応するチップセレクト信号CS0∼CS7がアクティブ("L"出力)になります。
● ASR および ASZ3 ∼ 0 の設定例
• ASR1=0003H ACR1 の ASZ3 ∼ ASZ0 を 0000B に設定 :
チップセレクト領域 1 は , 00030000H ∼ 0003FFFFH に割り当てられます。
• ASR2=0FFCH ACR2 の ASZ3 ∼ ASZ0 を 0010B に設定 :
チップセレクト領域 2 は , 0FFC0000H ∼ 10000000H に割り当てられます。
• ASR3=0011H ACR3 の ASZ3 ∼ ASZ0 を 0100B に設定 :
チップセレクト領域 3 は , 00100000H ∼ 00200000H に割り当てられます。
このとき , ACR の ASZ3 ∼ ASZ0 ビットが 1M バイトの設定になっていますので , バウ
ンダリは 1M バイト単位となり , ASR3 の 19 ∼ 16 ビットは無視されます。リセット後
は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ FFFFFFFFH がチップセレクト領
域 0 に割り当てられます。
チップセレクト領域は , お互いにオーバラップしないように設定してください。
図 4.3-1 に , チップセレクト領域の設定例を示します。
図 4.3-1 チップセレクト領域の設定例
(初期値)
00000000H
(例)
00000000H
00030000H
領域1
64Kバイト
領域3
1Mバイト
領域2
256Kバイト
00040000H
00100000H
領域0
0FFC0000H
0FFC0000H
0FFFFFFFH
FFFFFFFFH
FFFFFFFFH
187
第 4 章 外部バスインタフェース
4.4
エンディアンとバスアクセス
WR3 ∼ WR0 の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に
1 対 1 に対応します。以下に , バスモード別に設定されたデータバス幅で使用される
FR ファミリのデータバスのバイト位置と , それに対応する制御信号をまとめます。
■ データバス幅と制御信号の関係
ここでは,バスモード別に設定されたデータバス幅で使用されるデータバスのバイト位
置とそれに対応する制御信号をまとめます。
● 通常バスインタフェース
図 4.4-1 に , 通常バスインタフェースでのデータバス幅と制御信号を示します。
図 4.4-1 通常バスインタフェースでのデータバス幅と制御信号
a)32ビット バス幅
データバス 制御信号
D31
D0
b)16ビット バス幅
データバス 制御信号
c)8ビット バス幅
データバス 制御信号
WR0
(UUB)
WR0
(UUB)
WR0
(UUB)
WR1
(ULB)
WR1
(ULB)
-
-
WR2
(LUB)
-
-
-
-
WR3
(LLB)
-
-
-
-
(D15~D0は未使用)
(D23~D0は未使用)
● 時分割入出力インタフェース
図 4.4-2 に , 時分割入出力インタフェースでのデータバス幅と制御信号を示します。
図 4.4-2 時分割入出力インタフェースでのデータバス幅と制御信号
a)16ビット バス幅
b)8ビット バス幅
データバス 出力アドレス 制御信号
データバス 出力アドレス 制御信号
D31
A15~A8
WR0
A7~A0
WR0
A7~A0
WR1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
D16
(D15~D0は未使用)
188
(D23~D0は未使用)
第 4 章 外部バスインタフェース
● SDRAM (FCRAM) インタフェース
図 4.4-3 に , SDRAM (FCRAM) インタフェースのデータバス幅と制御信号を示します。
図 4.4-3 SDRAM (FCRAM) インタフェースでのデータバス幅と制御信号
a)32ビット バス幅
データバス 制御信号
b)16ビット バス幅
データバス 制御信号
c)8ビット バス幅
データバス 制御信号
D31
DQMUU
DQMUU
DQMUL
DQMUL
DQMUU
-
-
DQMLU
-
-
-
-
DQMLL
-
-
-
-
D0
(D15~D0は未使用)
(D23~D0は未使用)
189
第 4 章 外部バスインタフェース
4.4.1
ビッグエンディアンのバスアクセス
FR ファミリは CS0 領域を除いて , 各チップセレクトにビッグエンディアンとリト
ルエンディアンを切り換えて使用できます。領域構成レジスタ (ACR) の LEND ビッ
トを "0" に設定した場合は , その領域はビッグエンディアンとして扱います。通常 ,
FR ファミリは , ビッグエンディアンで外部バスアクセスを行います。
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
● ワードアクセス (LD, ST 命令実行時 )
図 4.4-4 に , ワードアクセスの内部レジスタと外部データバスの関係を示します。
図 4.4-4 ワードアクセスの内部レジスタと外部データバスの関係
内部レジスタ 外部バス
D31
D31
AA
AA
D23
D23
BB
BB
D15
D15
CC
CC
D7
D7
DD
DD
D0
D0
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-5に,ハーフワードアクセスの内部レジスタと外部データバスの関係を示します。
図 4.4-5 ハーフワードアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位"00"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
BB
D15
D15
b出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
D7
AA
D7
D7
D0
D0
BB
D0
190
AA
D7
BB
BB
D0
第 4 章 外部バスインタフェース
● バイトアクセス (LDUB, STB 命令実行時 )
図 4.4-6 に , バイトアクセスの内部レジスタと外部データバスの関係を示します。
図 4.4-6 バイトアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位"00"
内部レジスタ
D31
外部バス
b)出力アドレス下位"01"
内部レジスタ
外部バス
c)出力アドレス下位"10"
内部レジスタ
d)出力アドレス下位"11"
D31 D31
D31 D31
外部バス
内部レジスタ
D31 D31
外部バス
D23
D23 D23
D23 D23
D23 D23
D23
D15
D15 D15
D15 D15
D15 D15
D15
D7
D7 D7
D7 D7
D31
AA
AA
AA
AA
AA
D0
D0 D0
D7 D7
AA
D0 D0
D7
AA
D0 D0
AA
D0
191
第 4 章 外部バスインタフェース
■ データバス幅
● 32 ビットバス幅
図 4.4-7 32 ビットバス幅の内部レジスタと外部バスの関係
内部レジスタ
D31
D23
D15
D07
外部バス
読出し/書込み
AA
AA
BB
BB
CC
CC
DD
DD
D31
D23
D15
D07
● 16 ビットバス幅
図 4.4-8 16 ビットバス幅の内部レジスタと外部バスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D23
D15
D07
AA
読出し/書込み
BB
AA
CC
BB
DD
D31
D23
CC
DD
● 8 ビットバス幅
図 4.4-9 8 ビットバス幅の内部レジスタと外部バスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "01"
D31
D23
D15
D07
192
AA
BB
CC
DD
読出し/書込み
AA
BB
"10" "11"
CC
DD
D31
第 4 章 外部バスインタフェース
■ 外部バスアクセス
外部バスアクセス (32 ビット /16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バ
イトアクセス別に , 図 4.4-10, 図 4.4-11 および図 4.4-12 に示します。また , 以下の項目
も合わせて図 4.4-10, 図 4.4-11 および図 4.4-12 に示します。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
PA1/PA0
: プログラムで指定したアドレス下位2ビット
出力 A1/A0
: 出力するアドレスの下位2ビット
: 出力するアドレスの先頭バイト位置
+
: アクセスするデータバイト位置
①~④
: バスアクセス回数
FR ファミリは , ミスアラインエラーを検出しません。
したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット
が "00", "01", "10", "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" と
なり , ハーフワードアクセスの場合には "00", "01" のときには "00" に , "00", "01" のと
きには "10" になります。
● 32 ビットバス幅
図 4.4-10 32 ビット幅の場合の外部バスアクセス
(A) ワードアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
MSB
(b) PA1/PA0="01"
→①出力A1/A0="00"
(d) PA1/PA0="11"
→①出力A1/A0="00"
LSB
①
①
①
00
(c) PA1/PA0="10"
→①出力A1/A0="00"
01
10
11
00
01
10
11
①
00
01
10
00
11
01
10
11
32bit
(B) ハーフワードアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
(b) PA1/PA0="01"
→①出力A1/A0="00"
(c) PA1/PA0="10"
→①出力A1/A0="10"
(d) PA1/PA0="11"
→①出力A1/A0="10"
①
①
①
①
00
01
10
11
00
01
10
11
00
01
10
00
11
01
10
11
(C) バイトアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
(b) PA1/PA0="01"
→①出力A1/A0="01"
(c) PA1/PA0="10"
→①出力A1/A0="10"
(d) PA1/PA0="11"
→①出力A1/A0="11"
①
①
①
①
00
01
10
11
00
01
10
11
00
01
10
11
00
01
10
11
193
第 4 章 外部バスインタフェース
● 16 ビットバス幅
図 4.4-11 16 ビット幅の場合の外部バスアクセス
(A) ワードアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
②出力A1/A0="10"
(b) PA1/PA0="01"
→①出力A1/A0="00"
②出力A1/A0="10"
(c) PA1/PA0="10"
→①出力A1/A0="00"
②出力A1/A0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
②出力A1/A0="10"
LSB
MSB
①
00
01
①
00
01
①
00
01
①
00
01
②
10
11
②
10
11
②
10
11
②
10
11
16bit
(B) ハーフワードアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
①
00
01
10
11
(b) PA1/PA0="01"
→①出力A1/A0="00"
①
00
01
10
11
(c) PA1/PA0="10"
→①出力A1/A0="10"
①
00
01
10
11
(d) PA1/PA0="11"
→①出力A1/A0="10"
①
00
01
10
11
(C) バイトアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
①
194
00
01
10
11
(b) PA1/PA0="01"
→①出力A1/A0="01"
①
00
01
10
11
(c) PA1/PA0="10"
→①出力A1/A0="10"
①
00
01
10
11
(d) PA1/PA0="11"
→①出力A1/A0="11"
①
00
01
10
11
第 4 章 外部バスインタフェース
● 8 ビットバス幅
図 4.4-12 8 ビットバス幅の場合の外部バスアクセス
(A) ワードアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
②出力A1/A0="01"
③出力A1/A0="10"
④出力A1/A0="11"
(b) PA1/PA0="01"
→①出力A1/A0="00"
②出力A1/A0="01"
③出力A1/A0="10"
④出力A1/A0="11"
(c) PA1/PA0="10"
→①出力A1/A0="00"
②出力A1/A0="01"
③出力A1/A0="10"
④出力A1/A0="11"
(d) PA1/PA0="11"
→①出力A1/A0="00"
②出力A1/A0="01"
③出力A1/A0="10"
④出力A1/A0="11"
MSB LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8bit
(B) ハーフワードアクセス
(a) PA1/PA0="00"
(b) PA1/PA0="01"
(c) PA1/PA0="10"
(d) PA1/PA0="11"
→①出力A1/A0="00"
→①出力A1/A0="00"
→①出力A1/A0="10"
→①出力A1/A0="10"
②出力A1/A0="01"
②出力A1/A0="01"
②出力A1/A0="11"
②出力A1/A0="11"
①
00
①
00
00
00
②
01
②
01
01
01
10
10
①
11
11
②
10
①
10
11
②
11
(C) バイトアクセス
(a) PA1/PA0="00"
→①出力A1/A0="00"
①
(b) PA1/PA0="01"
→①出力A1/A0="01"
(c) PA1/PA0="10"
→①出力A1/A0="10"
(d) PA1/PA0="11"
→①出力A1/A0="11"
00
00
00
00
01
01
01
01
10
10
①
10
10
11
11
①
11
①
11
195
第 4 章 外部バスインタフェース
■ 外部デバイスとの接続例
図 4.4-13 に , FR ファミリと外部デバイスとの接続例を示します。
図 4.4-13 FR ファミリと外部デバイスとの接続例
MB91301シリーズ
D31
|
D24
D23
D15
D07
|
|
|
D16
D08
D00
WR3
WR1
WR2
WR0
00
01
10
11
D31 D24D23 D16D15 D08D07 D00
32ビットデバイス
("00"~"11"アドレス下位2ビット)
196
*:16ビット/8ビットデバイスの場合は, MB91301
シリーズの MSB側のデータバスを使用します。
0
1
D15 D08D07 D00
0
D07 D00
8ビットデバイス *
16ビットデバイス *
("0"/"1"アドレス下位1ビット)
第 4 章 外部バスインタフェース
4.4.2
リトルエンディアンのバスアクセス
FR ファミリは CSO 領域を除いて , 各チップごとにビッグエンディアン / リトルエ
ンディアンを切り換えて使用可能です。領域構成レジスタ (ACR) の LEND ビットを
"1" に設定した場合は , その領域はリトルエンディアンとして扱います。
FR ファミリのリトルエンディアンバスアクセスは , ビッグエンディアン時のバスア
クセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御
信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることに
より実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必
要がありますので , 十分注意が必要です。
■ リトルエンディアンとビッグエンディアンの相違点
リトルエンディアンとビッグエンディアンの相違点を以下に説明します。
• 出力するアドレスの順番はビッグエンディアンとリトルエンディアンで変わりま
せん。
• ワードアクセス
ビッグエンディアンのアドレス A1, A0 の "00" に対応する MSB 側のバイトデータ
が , リトルエンディアンでは LSB 側のバイトデータになります。
ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。
• ハーフワードアクセス
ビッグエンディアンのアドレス A0 に対応する MSB 側のバイトデータが , リトルエ
ンディアンでは LSB 側のバイトデータになります。
ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置が反転し
ます。
• バイトアクセス
ビッグエンディアン / リトルエンディアンとも同じです。
• 32, 16, 8 ビットバス幅で使用するデータバス / 制御信号は , ビッグエンディアン / リ
トルエンディアンで変わりません。
■ リトルエンディアン領域に対する制限事項
• リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に
対するアクセスは必ずワードアクセスで行ってください。プリフェッチバッファに
読み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が
行われず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構
のハードウェア的な制限によるものです。
• リトルエンディアン領域には , 命令コードを配置しないでください。
197
第 4 章 外部バスインタフェース
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
● ワードアクセス (LD, ST 命令実行時 )
図 4.4-14 ワードアクセスの内部レジスタと外部データバスの関係
内部レジスタ 外部バス
D31
D31
DD
AA
D23
D23
CC
BB
D15
D15
BB
CC
D7
D7
AA
DD
D0
D0
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-15 ハーフワードアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位 "00"
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
BB
D23
D23
AA
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
BB
D7
D7
BB
AA
D0
D0
● バイトアクセス (LDUB, STB 命令実行時 )
図 4.4-16 バイトアクセスの内部レジスタと外部データバスの関係
a)出力アドレス下位"00"
b)出力アドレス下位"01"
c)出力アドレス下位"10"
d)出力アドレス下位"11"
内部レジスタ 外部バス 内部レジスタ 外部バス 内部レジスタ 外部バス 内部レジスタ 外部バス
D31
D31 D31
D31 D31
D31 D31
D31
AA
D23
D23 D23
D23 D23
D23 D23
D23
AA
D15
D15 D15
D15 D15
D15 D15
D15
AA
D7
D7 D7
D7
D7 D7
D7 D7
AA
AA
AA
AA
AA
D0
D0 D0
D0 D0
D0 D0
D0
198
第 4 章 外部バスインタフェース
■ データバス幅
データバス幅ごとに , 内部レジスタと外部データバスとの関係を示します。
● 32 ビットバス幅
図 4.4-17 16 ビットバス幅の内部レジスタと外部データバスの関係
内部レジスタ
D31
読出し/書込み
AA
D23
D15
D07
外部バス
DD
BB
CC
CC
BB
DD
AA
D31
D23
D15
D07
● 16 ビットバス幅
図 4.4-18 16 ビットバス幅の内部レジスタと外部データバスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D23
D15
D07
AA
読出し/書込み
BB
DD
BB
CC
AA
D31
D23
CC
DD
● 8 ビットバス幅
図 4.4-19 8 ビットバス幅の内部レジスタと外部データバスの関係
内部レジスタ
外部バス
出力アドレス下位
"00" "01"
D31
D23
D15
D07
AA
読出し/書込み
DD
CC
"10" "11"
BB
AA
D31
BB
CC
DD
199
第 4 章 外部バスインタフェース
■ 外部デバイスとの接続例
FR ファミリと外部デバイスとの接続例を , バス幅ごとに示します。
● 32 ビットバス幅
図 4.4-20 FR ファミリと外部デバイスとの接続例 (16 ビットバス幅 )
MB91301シリーズ
D31
D23
D15
D07
|
|
|
|
D24
D16
D08
D00
WR3
WR1
WR2
WR0
00
01
10
11
D31 D24D23 D16D15 D08D07 D00
ビッグエディアン領域
11
10
01
D31 D24D23 D16D15 D08D07 D00
リトルエンディアン領域
● 16 ビットバス幅
図 4.4-21 FR ファミリと外部デバイスとの接続例 (16 ビットバス幅 )
MB91301シリーズ
D31
D23
|
|
D24
D16
WR1
WR0
0
1
D15 D08 D07 D00
ビッグエンディアン領域
200
00
0
1
D15 D08 D07 D00
リトルエンディアン領域
第 4 章 外部バスインタフェース
● 8 ビットバス幅
図 4.4-22 FR ファミリと外部デバイスとの接続例 (8 ビットバス幅 )
MB91301シリーズ
D31
|
D24
WR0
D07 D00
ビッグエンディアン領域
D07 D00
リトルエンディアン領域
201
第 4 章 外部バスインタフェース
4.4.3
ビッグエンディアンとリトルエンディアンの外部ア
クセスの比較
バス幅に対するワードアクセス , ハーフワードアクセスおよびバイトアクセスについ
て , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。
これらの図は , ビッグエンディアン領域とリトルエンディアン領域とを分け 「
, 4.4.1
ビッグエンディアンのバスアクセス」および「4.4.2 リトルエンディアンのバスアク
セス」で示した外部デバイスとの接続例に従ってデータバスを接続した場合に , すべ
てのアクセスについて内部レジスタにおいてビッグエンディアンになることを示し
ています。
202
第 4 章 外部バスインタフェース
■ ワードアクセス
ビッグエンディアンモード
32 ビット
バス幅
内部レジスタ 外部端子
address: "0"下位2bit
D31
D31
AA
AA
制御端子 内部レジスタ 外部端子
address: "0"
D31
D31
WR0
AA
DD
制御端子
WR0
BB
BB
WR1
BB
CC
WR1
CC
CC
WR2
CC
BB
WR2
DD
WR3
DD
AA
DD
D00
D00
D00
①
16 ビット 内部レジスタ 外部端子
バス幅
address: "0" "2"
D31
D31
AA
AA CC
BB
BB DD
D16
制御端子
①
内部レジスタ
WR3
D00
外部端子
制御端子
WR0
address: "0" "2"
D31
AA
DD BB
WR0
WR1
BB
WR1
D31
CC AA
D16
CC
-
-
-
DD
-
-
-
CC
-
-
-
DD
-
-
-
①
②
D00
D00
8 ビット
バス幅
リトルエンディアンモード
①
②
外部端子
内部レジスタ
address: "0" "1" "2" "3"
D31
D31
AA
AA BB CC DD
D24
BB
- - - -
制御端子
WR0
-
CC
- - - -
-
DD
- - - -
-
外部端子
内部レジスタ
address: "0" "1" "2" "3"
D31
D31
AA
DD CC BB AA
D24
BB
- - - -
制御端子
WR0
-
CC
- - - -
-
DD
- - - -
-
D00
D00
① ② ③ ④
① ② ③ ④
203
第 4 章 外部バスインタフェース
■ ハーフワードアクセス
ビッグエンディアンモード
32 ビット 内部レジスタ 外部端子
バス幅
address: "0"
D31
D31
AA
BB
BB
制御端子
WR0
内部レジスタ 外部端子
address: "0"
D31
D31
BB
WR1
AA
-
AA
D00
リトルエンディアンモード
BB
D00
address: "2"
D31
D31
-
①
制御端子
-
内部レジスタ 外部端子
1
D31
address: "2"
D31
DD
D00
D00
CC
WR2
DD
WR3
CC
DD
D00
D00
BB
制御端子
D31
CC
WR3
WR0
制御端子
address: "0"
D31
BB
WR0
AA
WR1
AA
-
-
BB
-
-
WR1
AA
-
-
BB
-
-
D00
①
DD
制御端子
WR0
①
内部レジスタ 外部端子
address: "2"
D31
D31
DD
制御端子
WR0
CC
WR1
CC
-
-
DD
-
-
WR1
D16
D16
204
WR2
D16
内部レジスタ 外部端子
address: "2"
D31
D31
CC
D00
DD
内部レジスタ 外部端子
D16
D00
-
①
①
16 ビット 内部レジスタ 外部端子
バス幅
address: "0"
D3
D31
D31
AA
制御端子
-
-
CC
WR1
D00
①
内部レジスタ 外部端子
WR0
-
AA
-
D00
制御端子
CC
-
-
DD
-
-
D00
①
①
第 4 章 外部バスインタフェース
ビッグエンディアンモード
8 ビット
バス幅
内部レジスタ 外部端子
address: "0" "1"
D31
D31
AA BB
D24
- -
AA
BB
D00
制御端子
WR0
-
- -
-
- -
-
D00
内部レジスタ 外部端子
address: "0" "1"
D31
D31
BB AA
D24
- -
AA
D00
BB
CC
DD
D00
WR0
-
- -
-
- -
-
① ②
制御端子
WR0
-
- -
-
- -
-
① ②
制御端子
D00
① ②
内部レジスタ 外部端子
address: "2" "3"
D31
D31
CC DD
D24
- -
D00
リトルエンディアンモード
内部レジスタ
外部端子
address: "2" "3"
D31
D31
DD CC
D24
- -
CC
DD
D00
制御端子
WR0
-
- -
-
- -
-
D00
① ②
205
第 4 章 外部バスインタフェース
■ バイトアクセス
ビッグエンディアンモード
32 ビット 内部レジスタ 外部端子
バス幅
address: "0"
D31
D31
AA
制御端子
内部レジスタ 外部端子
制御端子
address: "0"
D31
AA
WR0
D31
WR0
-
-
-
-
-
AA
D00
リトルエンディアンモード
D00
D00
AA
-
D00
①
①
内部レジスタ
外部端子
address: "1"
D31
D31
BB
制御端子
-
内部レジスタ
D31
外部端子
address: "1"
D31
WR1
BB
-
D00
内部レジスタ
外部端子
address: "2"
D31
D31
BB
D00
①
制御端子
-
D00
CC
-
①
内部レジスタ 外部端子
address: "2"
D31
D31
内部レジスタ 外部端子
D31
D00
address: "3"
D31
DD
D00
DD
CC
D00
制御端子
-
-
WR2
-
D00
①
内部レジスタ 外部端子
address: "3"
D31
D31
制御端子
-
-
-
-
-
WR3
D00
①
206
CC
-
①
制御端子
-
WR2
D00
WR1
D00
-
CC
-
-
-
BB
D00
制御端子
DD
D00
DD
①
WR3
第 4 章 外部バスインタフェース
ビッグエンディアンモード
16 ビット 内部レジスタ 外部端子
バス幅
address: "0"
D31
D31
AA
リトルエンディアンモード
制御端子
内部レジスタ 外部端子
制御端子
address: "0"
D31
AA
WR0
D31
WR0
-
-
D16
D16
-
-
-
AA
D00
D00
-
AA
①
内部レジスタ 外部端子
address: "1"
D31
D31
①
制御端子
内部レジスタ 外部端子
D31
address: "1"
D31
-
-
BB
WR1
BB
WR1
D16
D16
-
-
-
BB
-
BB
D00
D00
①
①
内部レジスタ 外部端子
D31
制御端子
address: "2"
D31
CC
制御端子
内部レジスタ 外部端子
制御端子
address: "2"
D31
CC
WR0
D31
WR0
-
-
D16
D16
-
-
-
CC
-
CC
D00
D00
①
内部レジスタ 外部端子
①
制御端子
内部レジスタ 外部端子
-
-
DD
D16
DD
WR1
D16
WR1
-
-
-
DD
制御端子
address: "3"
D31
D31
address: "3"
D31
D31
-
DD
D00
D00
①
①
207
第 4 章 外部バスインタフェース
ビッグエンディアンモード
8 ビット
バス幅
リトルエンディアンモード
内部レジスタ 外部端子
制御端子
address: "0"
D31
AA
WR0
D31
D24
内部レジスタ 外部端子
address: "0"
D31
D31
AA
D24
-
-
-
-
AA
D00
D00
①
①
内部レジスタ 外部端子
address: "1"
D31
D31
BB
D24
制御端子
WR0
外部端子
address: "2"
D31
CC
D24
外部端子
address: "1"
D31
D31
BB
D24
-
-
-
BB
D00
制御端子
WR0
①
内部レジスタ 外部端子
address: "2"
D31
D31
CC
D24
WR0
-
-
-
CC
D00
D00
①
①
内部レジスタ 外部端子
address: "3"
D31
D31
DD
D24
制御端子
WR0
内部レジスタ 外部端子
address: "3"
D31
D31
DD
D24
WR0
-
-
-
D00
①
制御端子
-
-
DD
208
制御端子
-
-
D00
WR0
-
-
CC
制御端子
-
①
内部レジスタ
内部レジスタ
-
BB
D00
D31
WR0
-
-
AA
制御端子
-
DD
①
第 4 章 外部バスインタフェース
4.5
通常バスインタフェースの動作
通常バスインタフェースの動作について説明します。
■ 通常バスインタフェース
通常バスインタフェースでは , 読出しアクセス / 書込みアクセスともに 2 クロックサイ
クルが基本バスサイクルになります。
通常バスインタフェースにおける以下の動作について,タイミングチャートを示して説
明します。
• 基本タイミング ( アクセスが連続する場合 )
• WRn+ バイト制御タイプ
• 読出し → 書込み
• 書込み → 書込み
• 自動ウェイトサイクル
• 外部ウェイトサイクル
• 同期書込みイネーブル出力
• CSn 遅延設定
• CSn → RD/WRn セットアップ , RD/WRn → CSn ホールド設定
• DMA フライバイ転送 (I/O →メモリ )
• DMA フライバイ転送 ( メモリ→ I/O)
209
第 4 章 外部バスインタフェース
4.5.1
基本タイミング
アクセスが連続する場合の基本タイミングを示します。
■ 基本タイミング ( アクセスが連続する場合 )
図 4.5-1 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H に設定した場合の基本タイミング
を示します。
図 4.5-1 基本タイミング ( アクセスが連続する場合 )
MCLK
A31~A0
#2
#1
AS
CSn
RD
読出し
D31~D0
#1
#2
WRn
書込み
D31~D0
#1
#2
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A31 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス
をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS7 は , AWR0 ∼ AWR7 レジスタの W02 ビットが "0" のときは , AS と同じ
タイミングでアサートし , 連続するアクセスがある場合 , CS0 ∼ CS7 がネゲートし
ません。領域ウェイトレジスタ (AWR) の W00 ビットが "0" の場合はバスサイクル
終了後に CS0 ∼ CS7 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の
1 サイクル後にネゲートします。
• RD, WR0 ∼ WR3 は , バスアクセス第 2 サイクルからアサートします。領域ウェイ
トレジスタ (AWR) の W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲート
します。RD, WR0 ∼ WR3をアサートするタイミングは領域ウェイトレジスタ (AWR)
の W01 ビットを "1" に設定することにより 1 サイクル遅らせることができます。
• TYP3 ∼ TYP0 を 0X0XB に設定のように WR0 ∼ WR3 使用する設定の場合 , WRn は
"H" 固定です。
• 読出しアクセスの場合 , RD アサート後ウェイトサイクルが終了したサイクルの MCLK
の立上りで D31 ∼ D0 を取り込みます。
• 書込みアクセスの場合 , WR0 ∼ WR3 をアサートしたタイミングから D31 ∼ D0 に
データを出力します。
210
第 4 章 外部バスインタフェース
4.5.2
WRn+ バイト制御タイプの動作
WRn+ バイト制御タイプの動作タイミングを示します。
■ WRn+ バイト制御タイプの動作タイミング
図 4.5-2 に , TYP3 ∼ TYP0 を 0010B, AWR を 0008H に設定した場合の動作タイミング
を示します。
図 4.5-2 WRn+ バイト制御タイプのタイミングチャート
MCLK
A31~A0
AS
CSn
RD
WR0,WR1
読出し
WR2,WR3
D31~D0
WR
WR0,WR1
書込み
WR2,WR3
D31~D0
• AS, CS, RD, A31 ∼ A0, D31 ∼ D0 は , 図 4.5-1 と同様の動作をします。
• WR は , バスアクセス第 2 サイクルからアサートします。領域ウェイトレジスタ
(AWR) の W15 ∼ 12 ビットのウェイトサイクルを挿入した後ネゲートします。RD,
WR0∼WR3をアサートするタイミングは,領域ウェイトレジスタ(AWR)のW01ビッ
トを "1" に設定することにより 1 サイクル遅らせることができます ( 図 4.5-1 の WR0
∼ WR3 と同様の動作をします )。
211
第 4 章 外部バスインタフェース
• WR0 ∼ WR3 は , バイトイネーブル信号としてアクセスするバイト位置を負論理で
示します。バスアクセス開始サイクルからバスサイクル終了までアサートします。
アドレスと同じタイミングで変化します。読出し / 書込みアクセスともにアクセス
するバイト位置を示します。
• 書込みアクセスの場合 , WR0 をアサートしたタイミングから D31 ∼ D0 にデータを
出力します。
TYP3 ∼ TYP0 を 0X0XB (WR0 ∼ WR3 使用 ) に , TYP3 ∼ TYP0 を 0X1XB (WRn+ バ
イト制御 ) に設定した領域を混在させる場合には , 使用するすべての領域で , 必ず以
下の設定をしてください ( 詳細は「4.13 外部バスインタフェースの使用上の注意」
を参照してください )。
- 読出し→書込みアイドルサイクルを最低 1 サイクル以上設定してください。
- 書込みリカバリサイクルを最低 1 サイクル以上設定してください。
212
第 4 章 外部バスインタフェース
読出し→書込み動作
4.5.3
読出し→書込み動作のタイミングを示します。
■ 読出し→書込み動作タイミング
図 4.5-3 に , TYP3 ∼ TYP0 を 0000B, AWR を 0048H に設定した場合の動作タイミング
を示します。
図 4.5-3 読出し→書込みのタイミングチャート
読出し
アイドル
書込み
MCLK
A31~A0
AS
CSn
RD
WRn
D31~D0
• 領域ウェイトレジスタ (AWR) の W07, W06 ビットの設定により , 0 ∼ 3 サイクルま
でのアイドルサイクル挿入が可能です。
• 読出し側の CS 領域の設定が有効になります。
• 読出しアクセスの次のアクセスが書込みアクセスまたは別の領域へのアクセスで
ある場合 , このアイドルサイクルを挿入します。
213
第 4 章 外部バスインタフェース
書込み→書込み動作
4.5.4
書込み→書込み動作のタイミングを示します。
■ 書込み→書込み動作タイミング
図 4.5-4 に , TYP3 ∼ TYP0 を 0000B, AWR を 0018H に設定した場合の動作タイミング
を示します。
図 4.5-4 書込み→書込み動作のタイミングチャート
書込み
書込みリカバリ
書込み
MCLK
A31~A0
AS
CSn
WRn
D31~D0
• 領域ウェイトレジスタ (AWR) の W05, W04 ビットの設定により , 0 ∼ 3 サイクルま
での書込みリカバリサイクルを挿入可能です。
• すべての書込みサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによって書込みアクセスが分割された場合も , 書込
みリカバリサイクルは発生します。
214
第 4 章 外部バスインタフェース
4.5.5
自動ウェイトサイクル
自動ウェイトサイクルの動作タイミングを示します。
■ 自動ウェイトサイクルタイミング
図 4.5-5 に , TYP3 ∼ TYP0 を 0000B, AWR を 2008H に設定した場合の動作タイミング
を示します。
図 4.5-5 自動ウェイトサイクルのタイミングチャート
基本サイクル
ウェイトサイクル
MCLK
A31~A0
AS
CSn
RD
読出し
D31~D0
WRn
書込み
D31~D0
• 領域ウェイトレジスタ (AWR) の W15 ∼ W12 ビット ( ファーストウェイトサイクル )
の設定によって自動ウェイトサイクルを , 0 ∼ 15 まで設定できます。
• 図 4.5-5 では , 自動ウェイトサイクルを 2 サイクル挿入し , 合計 4 サイクルのアクセ
スとなっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイク
ル +( ファーストウェイトサイクル ) となります。書込みの場合は内部状態によりさ
らに長くなることがあります。
215
第 4 章 外部バスインタフェース
4.5.6
外部ウェイトサイクル
外部ウェイトサイクルの動作タイミングを示します。
■ 外部ウェイトサイクルタイミング
図 4.5-6 に , TYP3 ∼ TYP0 を 0001B, AWR を 2008H に設定した場合の動作タイミング
を示します。
図 4.5-6 外部ウェイトサイクルのタイミングチャート
基本サイクル
RDYによる
自動ウェイト ウェイト
サイクル
2サイクル
MCLK
A31~A0
AS
CSn
RD
読出し
D31~D0
WRn
書込み
D31~D0
RDY
解除
ウェイト
• 領域構成レジスタ (ACR) の TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効
にすることにより , 外部ウェイトサイクルを挿入できます。
• 図 4.5-6 において , 自動ウェイトサイクルによるウェイトが有効であるため , RDY 端
子の斜線部分は無効になります。自動ウェイトサイクルの最後のサイクル以降から ,
RDY 入力端子の値を判定します。また , 一度ウェイトサイクルを終了した後は , 次
のアクセスサイクルの開始まで , RDY 入力端子の値は無効になります。
216
第 4 章 外部バスインタフェース
4.5.7
同期書込みイネーブル出力
同期書込みイネーブル出力の動作タイミングを示します。
■ 同期書込みイネーブル出力の動作タイミング
図 4.5-7 に , TYP3 ∼ TYP0 を 0000B, AWR を 0000H に設定した場合の動作タイミング
を示します。
図 4.5-7 同期書込みイネーブル出力のタイミングチャート
MCLK
A31~A0
#2
#1
AS
CSn
RD
読出し
D31~D0
#1
#2
WRn
書込み
D31~D0
#1
#2
同期書込みイネーブルとした場合 (AWR の W03 ビットが "1"), 以下のような動作とな
ります。
• WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングで , 同
期書込みイネーブル出力をアサートします。外部バスへの書込みが行われる場合 ,
同期書込みイネーブル出力は "L" を出力します。外部バスからの読出しが行われる
場合 , 同期書込みイネーブル出力は "H" を出力します。
• 同期書込みイネーブル出力をアサートした次のクロックサイクルで , 外部データ出
力端子から書込みデータを出力します。
• 読出しストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容にかか
らわず , 非同期読出しストローブとして機能します。データの入出力制御にそのま
ま使用してください。
• 同期書込みイネーブル出力を使用する場合 , 以下の制限があります。
- 同期書込みイネーブル出力のタイミングが無意味なものとなりますので , 以下の
追加ウェイト設定はしないでください。
• CSn → RD/WRn セットアップ設定 (AWR の W01 ビットは , 常に "0" を書いてく
ださい )
217
第 4 章 外部バスインタフェース
• ファーストウェイトサイクル設定 (AWR の W15 ∼ W12 ビットには , 常に "0000"
を書いてください )
- 同期書込みイネーブル出力のタイミングが無意味なものとなりますので , 以下の
アクセスタイプ設定 ( 領域構成レジスタ (ACR) 中の TYP3 ∼ TYP0 ビット (bit3 ∼
bit0)) は設定しないでください。
• マルチプレクスバス設定 (ACR の TYP2 ビットは , 常に "0" を書いてください )
• RDY 入力有効設定 (ACR の TYP0 ビットは , 常に "0" を書いてください )
- 同期書込みイネーブル出力の場合 , バースト長は常に "1" (BST1, BST0 ビットに
"0") を設定してください。
218
第 4 章 外部バスインタフェース
4.5.8
CSn 遅延設定
CSn 遅延設定の動作タイミングを示します。
■ CSn 遅延設定の動作タイミング
図 4.5-8 に , TYP3 ∼ TYP0 を 0000B, AWR を 000CH に設定した場合の動作タイミング
を示します。
図 4.5-8 遅延設 CSn 定の動作タイミングチャート
MCLK
A31~A0
AS
CSn
RD
読出し
D31~D0
WRn
書込み
D31~D0
• W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続する
アクセスがある場合はネゲート期間を挿入します。
219
第 4 章 外部バスインタフェース
4.5.9
CSn → RD/WRn セットアップおよび RD/WRn →
CSn ホールド設定
CSn → RD/WRn セットアップおよび RD/WRn → CSn ホールド設定の動作タイミング
を示します。
■ CSn → RD/WRn セットアップ , RD/WRn → CSn ホールド設定の動作タイミング
図 4.5-9 に , TYP3 ∼ TYP0 を 0000B, AWR を 000BH に設定した場合の動作タイミング
を示します。
図 4.5-9 CSn → RD/WRn セットアップ , RD/WRn → CSn ホールド設定のタイミングチャート
MCLK
A31~A0
AS
CSn
CS→RD/WR
遅延
RD/WR→CS
遅延
RD
読出し
D31~D0
WRn
書込み
D31~D0
• 領域ウェイトレジスタ (AWR) の W01 ビットを "1" に設定することにより , CSn →
RD/WRnセットアップディレイを設定可能です。チップセレクトアサート後,読出し/
書込みストローブまでの期間を延長する場合に設定します。
• 領域ウェイトレジスタ (AWR) の W00 ビットを "1" に設定することにより , RD/WRn
→ CSn ホールドディレイを設定可能です。読出し / 書込みストローブネゲート後 ,
チップセレクトネゲートまでの期間を延長する場合に設定します。
• CSn → RD/WRn セットアップディレイ (W01 ビット ) と RD/WRn → CSn ホールド
ディレイ (W00 ビット ) は , 独立に設定できます。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSn → RD/WRn セットアップディレイ , RD/WRn → CSn ホールド
ディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSn 遅延設定 ( 領域ウェイトレジスタ (AWR) の W02
ビット ) を "1" に設定してください。
220
第 4 章 外部バスインタフェース
4.5.10
DMA フライバイ転送 (I/O →メモリ )
DMA フライバイ転送 (I/O →メモリ ) の動作タイミングを示します。
■ DMA フライバイ転送 (I/O →メモリ ) の動作タイミング
図 4.5-10 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 51H に設定した場合の動
作タイミングチャートを示します。このタイミングチャートは , メモリ側のウェイト設
定なしの場合です。
図 4.5-10 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル ウェイト
サイクル
基本サイクル
I/Oウェイト
サイクル
I/Oホールド
ウェイト
MCLK
A31~A0
AS
CSn
WRn
D31~D0
IORD
• IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O 読出し
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR3 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
221
第 4 章 外部バスインタフェース
4.5.11
DMA フライバイ転送 ( メモリ→ I/O)
DMA フライバイ転送 ( メモリ→ I/O) の動作タイミングを示します。
■ DMA フライバイ転送 ( メモリ→ I/O) の動作タイミング
図 4.5-11 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 51H に設定した場合の動
作タイミングチャートを示します。このタイミングチャートは , メモリ側のウェイト設
定なしの場合です。
図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド I/Oアイドル
サイクル
ウェイト
サイクル
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
MCLK
A31~A0
AS
CSn
RD
D31~D0
IOWR
• IOWR0, IOWR1 レジスタの HLD ビットを "1" に設定することにより , I/O 読出しサ
イクルを 1 サイクル延長します。
• IOWR0, IOWR1 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまでの
書込みリカバリサイクルを挿入できます。
• 書込みリカバリサイクルを "1" 以上に設定した場合は , 書込みアクセスの後には必
ず書込みリカバリサイクルを挿入します。
• IOWR0, IOWR1 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルまで
のウェイトサイクルを挿入できます
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
222
第 4 章 外部バスインタフェース
バーストアクセスの動作
4.6
外部バスインタフェースにおいては , 1 回のアクセスシーケンスで複数のデータを連
続して転送する動作を , バーストアクセスとよびます。バーストアクセス以外の通常
のアクセスサイクルを , シングルアクセスとよびます。1 回のアクセスシーケンスと
は , AS および CSn のアサートから始まり , CSn がネゲートされるまでを示します。
複数のデータとは , その領域に設定されたバス幅単位で 2 単位以上のデータを示し
ます。バーストアクセスの動作について説明します。
■ バーストアクセスの動作
図 4.6-1 に , 第 1 ウェイトサイクルを "1", ページウェイトサイクルを "1", TYP3 ∼ TYP0
を 0000B, AWR を 1108H に設定した場合の動作タイミングチャートを示します。
図 4.6-1 バーストアクセスのタイミングチャート
第1ウェイト
サイクル
インページアクセス インページアクセス インページアクセス
ウェイト
ウェイト
ウェイト
MCLK
A31~A0
AS(LBA)
CSn
RD
WRn
WR
WRn
BAA
D31~D0
• 外部バスインタフェースにおいては , 1 回のアクセスシーケンスで複数のデータを
連続して転送する動作を , バーストアクセスとよびます。
バーストアクセス以外の通常のアクセスサイクルを , シングルアクセスとよびます。
ここでいう 1 回のアクセスシーケンスとは , AS および CSn のアサートから始まり ,
CSn がネゲートされるまでを示します。複数のデータとは , その領域に設定されたバ
ス幅単位で 2 単位以上のデータを示します。
• バーストサイクルは , ページモード ROM などの非同期メモリやバーストフラッシュ
メモリなど , まとまったデータを読む際のアクセスサイクルの効率化とともに , 通
常の非同期メモリからの読出しにも使用できます。
223
第 4 章 外部バスインタフェース
• バーストサイクル時のアクセスシーケンスは , 以下の 2 種類のサイクルに分かれま
す。
- ファーストアクセスサイクル
バーストアクセスの開始サイクルで,通常のシングルアクセスサイクルと同じ動
作をします。
- ページアクセスサイクル
ファーストアクセスサイクルに引き続き , CSn や RD ( 読出しストローブ ) をア
サートしたまま行うサイクルです。シングルサイクル時とは異なるウェイトサ
イクルを設定できます。バースト長設定から決定されるアドレスバウンダリ内に
ある間 , ページアクセスサイクルは繰り返し行われます。アドレスバウンダリ内
のアクセスが終了するとバーストアクセスは終了し , CSn がネゲートされます。
• 領域ウェイトレジスタ (AWR) の W15 ∼ W12 ビットの設定により , 0 ∼ 15 サイクル
の第 1 ウェイトサイクルを挿入できます。このとき , ファーストアクセスサイクル
は最小で , ウェイトサイクル +2 サイクルとなります ( 図 4.6-1 に示すタイミング
チャートでは 3 サイクル )。
• 領域ウェイトレジスタ (AWR) の W11 ∼ W08 ビットの設定により , 0 ∼ 15 サイクル
のページウェイトサイクルを挿入できます。このとき , ページアクセスサイクルは ,
ページウェイトサイクル +1 サイクルとなります ( 図 4.6-1 に示すタイミングチャー
トでは 2 サイクル )。
• 領域構成レジスタ (ACR) の BST ビットの設定により , バースト長を 1, 2, 4, 8 に設定
できます。バースト長を "1" に設定するとシングルアクセスとなり , 第 1 サイクル
のみが繰り返されます。ただし , データバス幅 32 ビット ( 領域構成レジスタ (ACR)
の BST ビットを "10B") に設定した場合は , バースト長を "4" 以下に設定してくだ
さい ( バースト長を "8" に設定した場合は誤動作します )。
• バーストアクセスを有効にした場合 , プリフェッチアクセスまたは設定したデータ
バス幅よりも大きなサイズで転送するときにバーストアクセスを行います。例えば ,
データバス幅を 8 ビット , バースト長を "4" に設定した領域にワードアクセスした
場合バイトアクセスを 4 回ではなく , 4 バースト 1 回のアクセスを行います。
• バースト設定をした領域ではRDY入力は無視されますので, TYP3∼TYP0を0XX1B
に設定しないでください。
• LBA, BAA 信号は , バーストフラッシュメモリ用で , LBA でアクセスの開始を示し
BAA でアドレスのインクリメントを指示します。
• バーストアクセス中に設定したウェイト後に A31 ∼ A0 を更新します。
• フライバイ転送の場合は , バーストアクセスはできません。
224
第 4 章 外部バスインタフェース
4.7
アドレス / データマルチプレクスインタフェース
アドレス / データマルチプレクスインタフェースの動作として , 以下の 3 つの場合に
ついて説明します。
• 外部ウェイトなし
• 外部ウェイトあり
• CSn → RD/WRn セットアップ設定
■ 外部ウェイトなし
図 4.7-1 に , TYP3 ∼ TYP0 を 0100B, AWR を 0008H に設定した場合の動作タイミング
チャートを示します。
図 4.7-1 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトなし )
MCLK
アドレス 31~0
A31~A0
AS
CSn
RD
読出し
D31~D16
アドレス
データ
15~0
15~0
WR
書込み
D31~D16
アドレス
15~0
データ15~0
• 領域構成レジスタ (ACR) の TYP3 ∼ TYP0 を 01XXB に設定することにより , アドレ
ス / データマルチプレクスインタフェース設定が可能です。
• アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅
(DBW1, DBW0 ビット ) の設定は 8 ビットまたは 16 ビットに設定してください。32
ビット幅はサポートしていません。
• アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ
イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
225
第 4 章 外部バスインタフェース
• アドレス出力サイクルでは , 出力アドレスラッチ信号として AS をアサートしますが ,
CSn→RD/WRnセットアップ遅延(AWR1)が"0"に設定してある場合,図 4.7-1のように
マルチプレクスアドレス出力サイクルが 1 サイクルのみとなり , アドレスを AS の
立上りエッジで直接ラッチすることは不可能となります。このため , AS に "L" がア
サートされているサイクルのMCLKの立上りエッジでアドレスを取り込んでくださ
い。
• A31 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先
頭を示すアドレスを出力しますので , アドレス / データマルチプレクスインタフェー
スで 8/16 ビット以上のアドレスを使用したい場合に使用してください。
• 自動ウェイト(AWR15∼AWR12),読出し→書込みアイドルサイクル(AWR7, AWR6),
書込みリカバリ (AWR5, AWR4), アドレス→ CSn 遅延 (AWR2), CSn → RD/WRn セッ
トアップ遅延 (AWR1), RD/WRn → CSn ホールド遅延 (AWR0) の設定は , 通常インタ
フェースと同様に設定できます。
• アドレス / データマルチプレクスインタフェースを設定した領域では , バースト長
を "1" (DBW1, DBW0 を 00B) に設定してください。
226
第 4 章 外部バスインタフェース
■ 外部ウェイトあり
図 4.7-2 に , TYP3 ∼ TYP0 を 0101B, AWR を 1008H に設定した場合の動作タイミング
チャートを示します。
図 4.7-2 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトあり )
MCLK
A31~A0
アドレス 31~0
AS
CSn
RD
読出し
D31~D16
アドレス
データ
15~0
15~0
WR
書込み
D31~D16
アドレス
15~0
データ15~0
外部ウェイト 解除
RDY
領域構成レジスタ (ACR) の TYP3 ∼ TYP0 を 01X1B と設定することにより , アドレス /
データマルチプレクスインタフェースにおいて RDY 入力を有効とすることができま
す。
227
第 4 章 外部バスインタフェース
■ CSn → RD/WRn セットアップ設定
図 4.7-3 に , TYP3 ∼ TYP0 を 0101B, AWR を 100BH に設定した場合の動作タイミング
チャートを示します。
図 4.7-3 アドレス / データマルチプレクスインタフェースのタイミングチャート
(CSn → RD/WRn セットアップ設定 )
MCLK
A31~A0
アドレス31~0
AS
CSn
RD
読出し
D31~D16
アドレス15~0
データ
15~0
WR
書込み
D31~D16
アドレス15~0
データ15 ~0
CSn→RD/WRnセットCSnアップ遅延(AWR1)を"1"に設定すると,図 4.7-3に示すように
マルチプレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上り
エッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を ALE
(Address Latch Enable) ストローブとして使用したい場合にこの設定をしてください。
228
第 4 章 外部バスインタフェース
4.8
プリフェッチ動作
プリフェッチ動作について説明します。
■ プリフェッチ動作
外部バスインタフェースコントローラは , 8 ビット× 16 本で構成されるプリフェッチ
バッファを内蔵しています。
端子 / タイミングコントロールレジスタ (TCR) の PSUS ビットが "0" の場合 , 領域構成
レジスタ (ACR) の PFEN ビットをセット "1" してある領域に対する読出しアクセスが
発生すると , それ以降に続くアドレスに対してプリフェッチを行い , プリフェッチバッ
ファ内に蓄積します。
蓄積されたアドレスに対して内部バスからのアクセスがあると,外部アクセスをせずに
プリフェッチバッファに先読みされたデータを返します。これにより , 外部バス領域へ
の連続したアクセスでの待ち時間を少なくすることができます。
● プリフェッチによる外部アクセスを開始する基本条件
プリフェッチによる外部バスアクセスは , 以下の条件が揃っている場合に発生します。
• 端子 / タイミングコントロールレジスタ (TCR) の PSUS ビットが "0" であること。
• スリープまたはストップモードでないこと。
• プリフェッチ許可されたチップセレクト領域への外部バスの読出しアクセスが行
われたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による
読出しアクセスを除きます。
• プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな
い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生
していないこと。
• 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて
空であること。
以上の条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッチアク
セス後に,プリフェッチを許可していない領域への外部バス領域アクセスが発生した後
でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッチ許可領域への
プリフェッチアクセスは引き続き行われます。
複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス
している場合,プリフェッチバッファは常に最後にアクセスされたプリフェッチ許可領
域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリフェッ
チ禁止領域へのアクセスは,プリフェッチバッファの状態には一切影響を及ぼさないた
め,プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチとが混在し
ても , プリフェッチバッファ内のデータを無駄にすることはありません。
229
第 4 章 外部バスインタフェース
● プリフェッチアクセスの一時停止と任意クリア
端子 / タイミングコントロールレジスタ (TCR) の PSUS ビットに "1" をセットすると ,
プリフェッチは一時停止します。PSUS ビットに "0" を設定すると再開します。このと
き , ミス発生 , PCLR ビットのセットなどのバッファクリアが発生しなければ , バッファ
内容は保持されます。
端子 / タイミングコントロールレジスタ (TCR) の PCLR ビットに "1" をセットすると ,
プリフェッチバッファをすべてクリアします。バッファのクリアは , PSUS ビットを
セットし , プリフェッチを中断しているときに行ってください。
アドレス上位 16 ビットが変化する境界 : チップセレクト領域の最小単位 (64K バイト
ごと ) では , プリフェッチは一度停止します。境界を超えた場合 , 一度バッファの読出
しミスが発生し , 引き続き新しい領域でプリフェッチを開始します。
SDRAM/FCRAMを接続した領域においては,バンクアドレスをまたぐ場合,プリフェッ
チは一度停止します。新しいバンクアドレスに対するアクセスが行われた場合 , 一度
バッファ読出しミスが発生し,引き続き新しいバンクアドレスでプリフェッチを開始し
ます。また , SDRAM/FCRAM を接続した領域においては , プリフェッチを行っている
領域に対する書込みにてページミスが発生した場合およびプリフェッチを許可してい
ない別の SDRAM/FCRAM 領域へのアクセスが発生した場合など , ページアドレスが更
新された場合も , プリフェッチは一度停止します。
● 1 回のプリフェッチアクセス動作の単位
1 回のプリフェッチアクセスの単位は , 領域構成レジスタ (ACR) の DBW ビット ( バス
幅 ) と BST ビット ( バースト長 ) によって決まります。
プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア
クセスし , BST ビットで設定されたバースト長の回数のアクセスを 1 回のアクセスで
行います。すなわち , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセス
は常にページモード / バーストモードでのアクセスとなります。対応していない ROM/
RAM やアクセスタイム不足には注意してください ( 領域ウェイトレジスタ (AWR) の
W15 ∼ W08 ビットに適切な値を設定してください )。
バーストアクセス時は,バースト長に依存したアドレスバウンダリ内でしか連続アクセ
スをしません。そのため , バッファの空きバイト数が例えば 4 バイトあったとしても ,
バウンダリをまたいでいる場合 , 4 バイト分を 1 回でアクセスすることはできません
( プリフェッチバッファ先頭が XXXXXX0EH で , バッファに 4 バイトの空きがあり , バ
ス幅 16 ビットであっても , 2 バーストを設定した場合は , 次のプリフェッチアクセスで
は XXXXXX0EH と XXXXXX0FH の 2 バイトしか取り込みません )。
以下に , 2 つの例を示します。
• バス幅 16 ビット , バースト長 2 を設定した領域
1 回のプリフェッチでバッファに読み込まれるデータ量は , 4 バイト分となります。
この場合 , プリフェッチバッファに 4 バイト分の空きができるまでプリフェッチア
クセスは行われません。
• バス幅 8 ビット , バースト長 8 を設定した領域
1 回のプリフェッチでバッファに読み込まれるデータ量は , 8 バイト分となります。
この場合 , プリフェッチバッファに 8 バイト分の空きができるまでプリフェッチア
クセスは行われません。
230
第 4 章 外部バスインタフェース
● バースト長設定とプリフェッチ効率
前項の「● 1 回のプリフェッチアクセス動作の単位」で説明した 1 回のプリフェッチ
アクセスが行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や ,
プリフェッチバッファへのミスが発生した場合でも,実行中のプリフェッチバッファの
アクセスが終了するまでは , それらのアクセス要求は待たされます。
そのため , バースト長をあまり大きく設定すると , プリフェッチ以外のバスアクセスの
効率や反応が低下します。反面 , バースト長を "1" に設定すると , バースト / ページア
クセスメモリを接続している場合でも常にシングルアクセスを行うため , 読出しサイ
クルの無駄が多く発生します。
また , 1 回のプリフェッチアクセスで読み出されるデータが多い設定になっていると ,
それだけプリフェッチバッファの空きができないとプリフェッチアクセスが開始でき
ません。このため , プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイ
ドル状態になりやすくなります。たとえば , バス幅が 16 ビット , バースト長 8 を設定
した場合 , 1 回のプリフェッチでバッファに読み出されるデータ量は , 16 バイト分とな
るため , プリフェッチバッファがすべて空にならないと , 新たなプリフェッチアクセス
ができなくなります。
これらのことを考慮して,使用状況や環境に応じて最適なバースト長設定を調整してく
ださい。一般に , バースト / ページアクセスのできない非同期メモリを接続する場合は ,
バースト長は 1 ( シングルアクセス ) を設定するのが最適です。逆に , SDRAM などの
バースト / ページアクセスサイクルの短いメモリを接続する場合は , バースト長は 1
( シングルアクセス ) 以外を設定するのが最適です。この場合は , バス幅に応じて 1 回
で 8 バイト ( バッファの半分 ) を読み出す設定をするのが最適ですが , 外部アクセスの
頻度や外部アクセスクロックの分周比設定などによっても条件は変わってきます。
● プリフェッチバッファからの読込み
プリフェッチバッファ内にストアされたデータは,内部バスからのアクセスでアドレス
が一致したものがあれば読み出され , 外部へのアクセスを行いません。バッファの読出
しは , 順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16 バイト ) な
ので , 短い前方への分岐などでも極力外部バスへの 2 度読みが発生しないようになって
います。
内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 ,
プリフェッチアクセスが完了してデータが取り込まれるまでの間は,内部に対してウェ
イトを返します。この場合 , バッファミス扱いにはなりません。
DMA 転送での読出しで , プリフェッチバッファ内のアドレスが一致した場合は , プリ
フェッチバッファ内のデータは使用されず , 外部バスから新たに読出しを行います。こ
の場合 , バッファミス扱いになりますが , 引き続きプリフェッチを継続はせずに , プリ
フェッチ許可領域への新たな外部アクセスが発生するまでは,プリフェッチアクセスを
行いません。
231
第 4 章 外部バスインタフェース
● プリフェッチバッファのクリア , 更新
プリフェッチバッファは,以下の条件のいずれかが成立した場合にすべてクリアされま
す。
• 端子 / タイミングコントロールレジスタ (TCR) の PCLR ビットに "1" が書き込まれ
たとき
• バッファ読出しミスが発生したとき
バッファ読出しミスとは , 以下のものをいいます。
- プリフェッチ許可領域への読出しアクセスで , バッファ内のアドレスに一致する
ものがない場合。この場合 , 外部バスに対して新たにアクセスを行います。この
際の読出しデータは , バッファ内にはストアされませんが , 続くアドレスからプ
リフェッチアクセスを開始し , バッファにストアしていきます。
- プリフェッチ許可領域への読出しアクセスで , リードモディファイライト系命令
による読出しである場合。この場合 , 外部バスに対して新たにアクセスを行いま
す。この際の読出しデータは , バッファ内にはストアされません。また , 続けて
プリフェッチアクセスは行いません ( 次にそのアドレスに対し書込みが行われる
ため )。
- プリフェッチ許可領域への読出しアクセスで , DMA 転送による読出しである場
合。この場合 , 外部バスに対して新たにアクセスを行います。この際の読出しデー
タは , バッファ内にはストアされません。また , 続けてプリフェッチアクセスは
行いません。
• バッファ書込みヒットが発生したとき
バッファ書込みヒットとは , 以下のものをいいます。
- プリフェッチ許可領域への書込みアクセスで , バッファ内のアドレスに 1 バイト
でも一致するものがあった場合。この場合 , 外部バスに対して新たにアクセスを
行いますが , プリフェッチアクセスは , 新たな読出しアクセスが発生するまでは
行われません。
プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。
• バッファ読出しヒットが発生したとき
この場合 , ヒットしたアドレス以前のバッファのみクリアされます。
● プリフェッチ許可領域に対する制限事項
リトルエンディアン領域に対してプリフェッチを許可している場合は,その領域に対す
るアクセスは必ずワードアクセスで行ってください。プリフェッチバッファに読み出
されたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行われず ,
誤ったデータを読み出してしまいます。これは , エンディアン変換機構のハードウェア
的な制限によるものです。
232
第 4 章 外部バスインタフェース
SDRAM/FCRAM インタフェースの動作
4.9
SDRAM/FCRAM インタフェースの動作について説明します。
■ SDRAM/FCRAM インタフェース
CS6, CS7 の領域は , 領域構成レジスタ (ACR) の TYP3 ∼ TYP0 ビットを "100XB" に設
定することにより SDRAM/FCRAM 空間として使用できます。
SDRAM/FCRAM インタフェースにおける以下の動作について , タイミングチャートを
示して説明します。
• バースト読出し / 書込み ( ページヒット , CAS レイテンシを "2" に設定した場合 )
• シングル読出し / 書込み ( ページヒット , CAS レイテンシを "3", オートプリチャー
ジなしに設定した場合 )
• シングル読出し ( ページミス , CAS レイテンシを "3", オートプリチャージなしに設
定した場合 )
• シングル読出し / 書込み (CAS レイテンシを "1", TYP を 1001B, オートプリチャージ
ありに設定した場合 )
• オートリフレッシュ
■ バースト読出し / 書込みの動作タイミング
図 4.9-1 に , ページヒット , CAS レイテンシを "2" に設定した場合の動作タイミングを
示します。
図 4.9-1 バースト読出し / 書込みのタイミングチャート
MCLK
A
#1
D
#1
SRAS,SCAS,
SWE
#1
#2
#3
#1
#4
#3
#4
READ
WRITE
書込みリカバリ
書込みサイクル
#2
CASレイテンシ
読出しサイクル
• A13 ∼ A0 は , SDRAM 容量により , すべての端子を使用しない場合があります。
「4.9.5 メモリ接続例」を参考にしてください。
•
MCLK は , SDRAM に入力するクロックです。アドレス , データ , コマンドなどの信
号は , MCLK の立上りで SDRAM に取り込まれます。
•
領域ウェイトレジスタ (AWR) の W05, W04 ビットで SDRAM/FCRAM の規格にあわ
せて書込みリカバリサイクルを設定してください。
•
領域ウェイトレジスタ (AWR) の W10 ∼ W08 ビットで SDRAM/FCRAM の規格にあ
わせて CAS レイテンシを設定してください。
•
バースト長の設定は領域構成レジスタ (ACR) の BST ビットにて設定してください。
233
第 4 章 外部バスインタフェース
■ シングル読出し / 書込みの動作タイミング
図 4.9-2 に , ページヒット , CAS レイテンシを "3", オートプリチャージなしに設定した
場合の動作タイミングを示します。
図 4.9-2 シングル読出し / 書込みのタイミングチャート
MCLK
A
#1
#1
D
#1
SRAS,SCAS,
SWE
READ
#1
読出し→書込み
Casレイテンシ
WRITE
アイドルサイクル
書込みサイクル
読出しサイクル
• 領域ウェイトレジスタ (AWR) の W07, W06 ビットで SDRAM/FCRAM の規格にあわ
せて読出し→書込みアイドルサイクルを設定してください。
■ シングル読出しの動作タイミング
図 4.9-3 に , ページミス , CAS レイテンシを "3", オートプリチャージなしに設定した場
合の動作タイミングを示します。
図 4.9-3 シングル読出しのタイミングチャート
MCLK
A
BA
Row
#1
D
#1
SRAS,SCAS,
SWE
PRE
ACT
RASプリチャージサイクル
(tRP)
READ
RAS→CASディレイ
CASレイテンシ
(tRCD)
• ページミスが発生した場合は , PRE チャージコマンド , ACTV コマンド発行後に読
出しを行います。
• SDRAM/FCRAM の規格にあわせて , 領域ウェイトレジスタ (AWR) の W01, W00 ビッ
トに RAS プリチャージサイクル (tRP) を設定してください。
• SDRAM/FCRAM の規格にあわせて , 領域ウェイトレジスタ (AWR) の W14 ∼ W12
ビットに RAS to CAS ディレイ (tRCD) を設定してください。
234
第 4 章 外部バスインタフェース
■ シングル読出し / 書込みの動作タイミング
図 4.9-4 に , CAS レイテンシを "1", TYP を 1001B, オートプリチャージありに設定した
場合の動作タイミングを示します。
図 4.9-4 シングル読出し / 書込みのタイミングチャート
MCLK
A
Row
D
Col
Row
Col
Row
Col
#2
#3
ACTV
WRITA
#1
SRAS,SCAS,
SWE
ACTV
WRITA
ACTV
CL+BL-1
READA
CL+BL-1
• TYP を 1001B に設定した場合 , オートプリチャージ付きの読出し / 書込みコマンド
を発行します。ただし , READA/WRITA 発行から ACTV 発行までのサイクルは
CL+BL-1 に固定されますので , FCRAM 接続の場合のみ TYP を 1001B に設定が可能
です。
• PRE コマンドを発行するサイクルがなくなるため , ページミスを多発するような場
合に有効です。
■ オートリフレッシュの動作タイミング
図 4.9-5 に , オートリフレッシュの動作タイミングを示します。
図 4.9-5 オートリフレッシュのタイミングチャート
MCLK
A
D
SRAS,SCAS,
SWE
ACTV
REF
tRC
リフレッシュサイクル
• リフレッシュコントロールレジスタ (RCR) の RFINT5 ∼ RFINT0 × 32 サイクルごと
にリフレッシュコマンドを発行し , リフレッシュ終了後にアクセスを再開します。
• SDRAM/FCRAM の規格にあわせて , リフレッシュコントロールレジスタ (RCR) の
TRC ビットを設定してください。
• 最大 RAS アクティブ時間も満たすようにしてください。
235
第 4 章 外部バスインタフェース
4.9.1
セルフリフレッシュ
セルフリフレッシュについて説明します。
■ セルフリフレッシュ
リフレッシュコントロールレジスタ (RCR) の SELF ビットへの "1" 書込みにより ,
SDRAM/FCRAM インタフェースはセルフリフレッシュ以降シーケンスを開始します。
SDRAM/FCRAM インタフェースは RFC2 ∼ RFC0 で設定した回数オートリフレッシュ
を実行した後 , SDRAM/FCRAM へ SELF コマンドを発行しセルフリフレッシュモード
へ移行します。
セルフリフレッシュモードの解除は , SELF ビットへの "0" 書込みおよび SDRAM/
FCRAM への読出し / 書込みアクセスで行います。
SDRAM/FCRAM インタフェースは , セルフリフレッシュモード中に SELF ビットへの
"0"書込みまたはSDRAM/FCRAMへのアクセスを検出した場合, SELFXコマンドを発行
し , RFC2 ∼ RFC0 で設定した回数のオートリフレッシュを実行します。
したがって , セルフリフレッシュモードを設定し , チップをスリープモードに入れた後
に , DMA 転送で SDRAM/FCRAM へのアクセスがあった場合にもセルフリフレッシュ
モードは解除されます。
● セルフリフレッシュモード以降の手順
1) SELF ビットへ "1" をセット
2) RFC2 ∼ RFC0 で設定した回数の REF コマンド発行
3) SELF コマンドを発行
● セルフリフレッシュモード解除の手順
1) SELF ビットへ "0" 書込みまたは SDRAM/FCRAM へのアクセス
2) SELFX コマンドの発行
3) RFC2 ∼ RFC0 で設定した回数の REF コマンド発行
4) 通常アクセス状態に移行
236
第 4 章 外部バスインタフェース
4.9.2
パワーオンシーケンス
パワーオンシーケンスについて説明します。
■ パワーオンシーケンス
リフレッシュコントロールレジスタ (RCR) の PON ビットを "1" にセットすることによ
りパワーオンシーケンスを開始します。
以下の手順に従い PON ビットを "1" に設定し , パワーオンシーケンスへ移行させてく
ださい。
1) SDRAM/FCRAM マニュアルに規定してあるクロック安定待ち時間を確保してくだ
さい。
2) ACR, AWR, MCRA (B) を設定してください。
3) CSER を設定し , SDRAM/FCRAM を接続した領域を有効にしてください。
4) RCR の値を設定すると同時に PON ビットを "1" に設定してください。
以上の手順を実行すると SDRAM/FCRAM インタフェースは以下のパワーオンシーケ
ンスを実行します。
5) PALL コマンドを実行します。
6) REF コマンドを 8 回実行します。
7) ACR の BST ビット , AWR の CL (CAS レイテンシ ), MCRA の WBST ビットに従い
モードレジスタをセット。
8) 通常アクセス状態に移行
237
第 4 章 外部バスインタフェース
4.9.3
複数領域への SDRAM/FCRAM 接続
複数領域への SDRAM/FCRAM 接続について説明します。
■ 複数領域への SDRAM/FCRAM 接続
SDRAM/FCRAM 設定は CS6, CS7 領域に設定可能ですが , 同時に 2 つの領域に SDRAM/
FCRAM を接続する場合は同じタイプのものを接続してください。具体的には , 以下の
レジスタ設定が同じになるものを接続してください。
• 領域構成レジスタ (ACR)
:DBW1, DBW0, BST1, BST0, TYP3 ∼
TYP0 の設定は同じにしてください。
• 領域ウェイトレジスタ (AWR)
: すべてのビットが同じになるようにし
てください。
• メモリ設定レジスタ (MCR)
: レジスタが共通のため , すべての設定
が同じになります。
• リフレッシュコントロールレジスタ (RCR) : レジスタが共通のため , すべての設定
が同じになります。
なお , 2 つの領域を同時に有効にした場合 , パワーオンシーケンス / オートリフレッシュ/
セルフリフレッシュは同時に行います。
238
第 4 章 外部バスインタフェース
4.9.4
アドレスマルチプレクスフォーマット
アドレスマルチプレクスフォーマットについて説明します。
■ アドレスマルチプレクスフォーマット
SDRAM/FCRAM へのアクセスアドレスは , ASZ3 ∼ ASZ0 ビット , DBW1, DBW0 ビッ
ト , PSZ2 ∼ PSZ0 ビット , BANK ビットの設定により Row アドレス , BANK アドレス ,
Column アドレスへの対応が変わります。アドレスの対応は , 下位ビットから Column
アドレス , BANK アドレス , Row アドレスの順に並べます。各ビットは , 以下のように
設定してください。
•
ASZ3 ∼ ASZ0 ビット : 対応する領域に接続する SDRAM/FCRAM の総容量を設定し
ます。2 個並列に使用する場合は合計容量を設定してくださ
い。Row アドレス本数に影響します。
• DBW1, DBW0 ビット : データバス幅を設定します。(8 ビット品 2 個を並列に接続す
る場合は 16 ビットに設定してください ) データバス幅指定
に従い , Column アドレスのシフトを行います。8 ビット : そ
のまま , 16ビット:1ビットシフト , 32ビット:2ビットシフト。
• PSZ2 ∼ PSZ0 ビット :SDRAM/FCRAM で使用する Column アドレスの本数を設定し
てください。
• BANK ビット :SDRAM/FCRAM の BANK アドレスの本数を設定してください。
図 4.9-6 に , アクセスアドレスと Row アドレス , BANK アドレス , Column アドレスの
対応の例を示します。
図 4.9-6 アクセスアドレスと Row アドレス , BANK アドレス , Column アドレスの対応の例
・4Mバイト(ASZを0110Bに設定),8ビットバス幅(DBWを00Bに設定),
256カラム(PSZを000Bに設定),2バンク(BANKを0Bに設定)
22 21
アクセスアドレスビット 31
9 8 7
ROW
外部アドレス端子
A14
BA
0
COLUMN
A12A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
・16Mバイト(ASZを1000Bに設定),16ビットバス幅(DBWを01Bに設定),
512カラム(PSZを001Bに設定),4バンク(BANKを1Bに設定)
アクセスアドレスビット 31
24 23
12 1110 9
BA
ROW
外部アドレス端子
A15 A14
1 0
COLUMN
A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
・64Mバイト(ASZを1010Bに設定),32ビットバス幅(DBWを10Bに設定),
512カラム(PSZを001Bに設定),4バンク(BANKを1Bに設定)
アクセスアドレスビット 31
26 25
13 12 1110
ROW
外部アドレス端子
A15 A14
BA
2 1 0
COLUMN
A12A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
239
第 4 章 外部バスインタフェース
メモリ接続例
4.9.5
メモリ接続例について説明します。
■ メモリ接続例
SDRAM/FCRAM インタフェースから SDRAM/FCRAM への接続は , 基本的に表 4.9-1 の
ようになります。
表 4.9-1 SDRAM/FCRAM インタフェースから SDRAM/FCRAM への接続表
SDRAM/FCRAM
インタフェース端子
SDRA/FCRAM 端子
MCLK
CLK
MCLKE
CKE
SRAS (AS)
RAS
SCAS (BAA)
CAS
SWE (WR)
WE
CS6 または CS7
CS
CS6/CS7 領域のみ SDRAM/FCRAM 設定が可能です。
A00 ∼ A09
A00 ∼ A09
バス幅によってアドレスをシフトさせる必要はありま
せん。
A10/AP
A10/AP
A11 ∼ A13
A11 ∼ A13
A14
BA0
2BANK 品の場合 BA
A15
BA1
2BANK 品の場合使用しません。
D31 ∼ D00
DQ
エンディアン , データバス幅により接続が変わります。
詳しい接続は ,「4.4 エンディアンとバスアクセス」を
参照してください。
DQMUU, DQMUL,
DQMLU, DQMLL
DQM
エンディアン , データバス幅により接続が変わります。
詳しい接続は ,「4.4 エンディアンとバスアクセス」を
参照してください。
240
備考
Row アドレス出力時 A10, その他 AP
SDRAM/FCRAM で使用するアドレスまで接続。
第 4 章 外部バスインタフェース
● 8 ビットの SDRAM/FCRAM を使用する場合 ( ビッグエンディアン )
合計データバス幅 32 ビット :SDRAM/FCRAM4 個を使用します。
合計データバス幅 16 ビット :SDRAM/FCRAM2 個を使用します。
図 4.9-7 に , 容量 64M ビットの SDRAM を使用する場合 (BANK アドレス 1 本 , Row ア
ドレス 12 本 ) を示します。
図 4.9-7 容量 64M ビットの SDRAM を使用する場合
CS6
or
CS7
本 LSI
A14 A11-A00
DQMUU
DQMLU
SRAS SCAS SWE MCLKE
DQMUL
DQMLL MCLK
DQ31-DQ0
[31-24]
CS
BA IA11-IA0
RAS CAS
WE CKE DQM
CLK
DQ7-DQ0
SDRAM(No.1)
[23-16]
CS
BA IA11-IA0
RAS CAS
WE CKE DQM
CLK
DQ7-DQ0
SDRAM(No.2)
[15-8]
CS
BA IA11-IA0
RAS
CAS
WE
CKE DQM
CLK
DQ7-DQ0
SDRAM(No.3)
[7-0]
CS
BA IA11-IA0
RAS CAS
WE
CKE
DQM
CLK
DQ7-DQ0
SDRAM(No.4)
合計データバス幅 16 ビットで使用するときは , SDRAM No.3, No.4 は不要であり , DQ15 ∼ DQ0
は開放としてください。
241
第 4 章 外部バスインタフェース
● 16 ビットの SDRAM/FCRAM を使用する場合
合計データ幅 32 ビット :SDRAM2 個または 4 個を使用します。
合計データ幅 16 ビット :SDRAM1 個または 2 個を使用します。
図 4.9-8 に , 容量 64M ビットの SDRAM を使用する場合 (BANK アドレス 2 本 ,Row ア
ドレス 12 本 ) を示します。
図 4.9-8 容量 64M ビットの SDRAM を使用する場合
本 LSI
CS7
A15
CS6
A14 A11-A00
DQMLU
DQMUU
DQMUL
DQMLL
SRAS SCAS SWE MCLKE
MCLK
DQ31-DQ0
[31-16]
CS
BA1BA0 IA11-IA0
RAS CAS
WE CKE DQMU DQML
CLK
DQ15-DQ0
SDRAM(No.1)
[15-0]
CS
BA1BA0 IA11-IA0
RAS CAS
WE CKE DQMUDQML
CLK
DQ15-DQ0
SDRAM(No.2)
[31-16]
CS
BA1BA0 IA11-IA0
RAS CAS
WE
CKE DQMU DQML
CLK
DQ15-DQ0
SDRAM(No.3)
[15-0]
CS
BA1BA0 IA11-IA0
RAS CAS
WE
CKE DQMUDQML
CLK
DQ15-DQ0
SDRAM(No.4)
データ幅 16 ビットで SDRAM1 個使用時は , SDRAM No.2, No.3, No.4 は不要であり ,
DQ15 ∼ DQ0 は開放としてください。
データ幅 16 ビットで SDRAM2 個を使用するときは , SDRAM No.2, No.4 は不要です。
データ幅 32 ビットで SDRAM2 個を使用するときは , SDRAM No.3, No.4 は不要です。
242
第 4 章 外部バスインタフェース
● 32 ビットの SDRAM を使用する場合
データ幅 32 ビット :SDRAM1 個または 2 個を使用します。
図 4.9-9 に , 64M ビット品の場合 (BANK アドレス 1 本 , Row アドレス 12 本 ) を示します。
図 4.9-9 64M ビット品の場合
本 LSI
CS7 CS6
A14 A11-A00
DQMLU
DQMUU
SRAS SCAS SWE MCLKE
DQMUL
DQMLL
MCLK
DQ31-DQ0
[ 31-0 ]
CS
BA IA11-IA0
RAS CAS
WE CKE DQM3 DQM2DQM1 DQM0
CLK
DQ31-DQ0
SDRAM(No.1)
[31-0]
CS
BA IA11-IA0
RAS CAS
WE
CKE DQM3 DQM2DQM1 DQM0
CLK
DQ31-DQ0
SDRAM(No.2)
SDRAM1 個のみで使用するときは , SDRAM No.2 は不要です。
243
第 4 章 外部バスインタフェース
4.10
DMA アクセス動作
DMA アクセス動作について説明します。
■ DMA アクセス動作
以下の 9 つの DMA 動作について説明します。
• DMA フライバイ転送 (I/O →メモリ )
• DMA フライバイ転送 ( メモリ→ I/O)
• DMA フライバイ転送 (I/O → SDRAM/FCRAM)
• DMA フライバイ転送 (SDRAM/FCRAM → I/O)
• 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
• 2 サイクル転送 ( 外部→ I/O)
• 2 サイクル転送 (I/O →外部 )
• 2 サイクル転送 (I/O → SDRAM/FCRAM)
• 2 サイクル転送 (SDRAM/FCRAM → I/O)
244
第 4 章 外部バスインタフェース
4.10.1
DMA フライバイ転送 (I/O →メモリ )
DMA フライバイ転送 (I/O →メモリ ) の動作について説明します。
■ DMA フライバイ転送 (I/O →メモリ )
図 4.10-1 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 41H に設定した場合の動
作タイミングチャートを示します。
図 4.10-1 は , メモリ側のウェイト設定なしの場合です。
図 4.10-1 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
MCLK
A31~A00
メモリアドレス
AS
CSn
WRn
D31~D00
FR30 DACKn
互換
モード DEOPn
基本
モード
DACKn
DEOPn
IORD
DREQn
デマンドモード時の
センスタイミング
• 領域ウェイトレジスタ (AWR) の W01 ビットを "1" に設定することにより , CSn →
RD/WRnセットアップディレイを設定できます。チップセレクトアサート後,読出し/
書込みストローブまでの期間を延長する場合に設定します。
• 領域ウェイトレジスタ (AWR) の W00 ビットを "1" に設定することにより , RD/WRn →
CSnホールドディレイを設定できます。読出し/書込みストローブネゲート後,チップセ
レクトネゲートまでの期間を延長する場合に設定します。
245
第 4 章 外部バスインタフェース
• CSn → RD/WRn セットアップディレイ (W01 ビット ) と RD/WRn → CSn ホールド
ディレイ (W00 ビット ) は , 独立に設定できます。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSn → RD/WRn セットアップディレイ , RD/WRn → CSn ホールド
ディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSn 遅延設定 ( 領域ウェイトレジスタ (AWR) の W02
ビット ) を "1" に設定してください。
<参考>
データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイクル
により延長された , 3 バスサイクル分の読出しストローブが発生しています。受取り側で
あるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分の書込みス
トローブが発生しています。I/O ホールドウェイトサイクルは , 書込みストローブには影
響を与えません。ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイク
ル終了まで保持されます。
246
第 4 章 外部バスインタフェース
4.10.2
DMA フライバイ転送 ( メモリ→ I/O)
DMA フライバイ転送 ( メモリ→ I/O) の動作について説明します。
■ DMA フライバイ転送 ( メモリ→ I/O)
図 4.10-2 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 41H に設定した場合の動
作タイミングチャートを示します。
図 4.10-2 は , メモリ側のウェイト設定なしの場合です。
図 4.10-2 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート
基本サイクル
I/OウェイトI/Oホールド
サイクル ウェイト
MCLK
A31~A00
メモリアドレス
AS
CSn
RD
D31~D00
FR30 DACKn
互換
モード DEOPn
基本
モード
DACKn
DEOPn
IOWR
DREQn
デマンドモード時の
センスタイミング
• IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O 読出し
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR3 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
の書込みリカバリサイクルを挿入できます。
• 書込みリカバリサイクルを "1" 以上に設定した場合は , 書込みアクセスの後には必
ず書込みリカバリサイクルを挿入します。
247
第 4 章 外部バスインタフェース
• IOWR0 ∼ IOWR3 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入できます。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" 以外のとき ) は ,
I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい方の値をウェイトサイクルとし
て使用します。
<参考>
データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ
クルにより延長された , 3 バスサイクル分の読出しストローブが発生しています。受取り
側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分の書込み
ストローブが発生しています。I/O ホールドウェイトサイクルは , 書込みストローブには
影響を与えません。ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイ
クル終了まで保持されます。
フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。
248
第 4 章 外部バスインタフェース
DMA フライバイ転送 (I/O → SDRAM/FCRAM)
4.10.3
DMA フライバイ転送 (I/O → SDRAM/FCRAM) の動作について説明します。
■ DMA フライバイ転送 (I/O → SDRAM/FCRAM)
図 4.10-3 に , TYP3 ∼ TYP0 を 1000B, AWR を 0051H, IOWR を 41H に設定した場合の動
作タイミングチャートを示します。
図 4.10-3 DMA フライバイ転送 (I/O → SDRAM/FCRAM) のタイミングチャート
基本サイクル
I/Oウェイト I/Oホールド
サイクル
ウェイト
サイクル
MCLK
A31~A00
メモリアドレス
AS
CSn
SRAS
SCAS
WRn(SWE)
D31~D00
FR30
互換
モード
基本
モード
DACKn
DEOPn
DACKn
DEOPn
IORD
DREQn
249
第 4 章 外部バスインタフェース
• データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサ
イクルにより延長された , 3 バスサイクル分のリードストローブが発生しています。
• 受取り側である SDRAM/FCRAM には , I/O ウェイトサイクル後に書き込めるような
タイミングで WRIT コマンド発行します。SDRAM/FCRAM のバンクアクティブ状
態 , SDRAM/FCRAM のウェイト設定により , I/O ウェイトサイクルは長くなる場合
もあります。
• I/O ホールドウェイトサイクルは , ライトストローブには影響を与えません。ただし
CS 信号は , フライバイによるバスアクセスサイクル終了まで保持されます。
• I/O → SDRAM/FCRAM 間でフライバイ転送を行う場合は , 必ず DMAC 用 I/O ウェ
イトレジスタ (IOWR) の HLD ビットの "1" をセットし , I/O ホールドウェイトサイ
クルを有効にしてください。
• フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。
250
第 4 章 外部バスインタフェース
DMA フライバイ転送 (SDRAM/FCRAM → I/O)
4.10.4
DMA フライバイ転送 (SDRAM/FCRAM → I/O) の動作について説明します。
■ DMA フライバイ転送 (SDRAM/FCRAM → I/O)
図 4.10-4 に , TYP3 ∼ TYP0 を 1000B, AWR を 0051H, IOWR を 42H に設定した場合の動
作タイミングチャートを示します。
SDRAM ページヒット時 ( 最短 )
図 4.10-4 DMA フライバイ転送 (SDRAM/FCRAM → I/O) の
ページヒット時 ( 最短 ) タイミングチャート
SDRAM
基本サイクル
I/Oウェイト
サイクル
I/O
基本サイクル
I/Oホールド
ウェイト
MCLK
A31~A00
コラムアドレス
CSn
SRAS
SCAS
WRn(SWE)
MCLKE
D31~D00
基本
モード
DACKn
DEOPn
データセットアップ
IOWR
DREQn
I/O アクセスよりも SDRAM アクセスが短い場合は , I/O アクセス ( 基本アクセス+ I/O
ウェイト ) により SDRAM アクセスが延長されます。
251
第 4 章 外部バスインタフェース
図 4.10-5 に , TYP3 ∼ TYP0 を 1000B, AWR を 0051H, IOWR を 42H に設定した場合の動
作タイミングチャートを示します。
SDRAM ページミス時
図 4.10-5 DMA フライバイ転送 (SDRAM/FCRAM → I/O) のページミス時タイミングチャート
I/Oホールド
ウェイト
SDRAM基本サイクル
I/O基本サイクル
I/Oウェイト
バンク
アドレス
ロー
アドレス
MCLK
A31~A00
コラム
アドレス
CSn
SRAS
SCAS
WRn(SWE)
MCLKE
D31~D0A0
基本
モード
DACKn
DEOPn
IOWR
DREQn
• SDRAM に対してページミスが発生するような場合 , プリチャージ動作などにより
SDRAM アクセスが延長されると , 設定した I/O アクセスよりも SDRAM アクセスが
長くなるため , I/O アクセスが SDRAM アクセスにより延長されます。そのため , I/O
に対してデータセットアップが必要な場合は , I/O ウェイトサイクルの設定は , 最大
となる SDRAM のアクセスサイクルよりも I/O アクセスが大きくなるように設定す
る必要があります。上記の設定の場合 , I/O ウェイトサイクルの設定を 4 サイクル以
上に設定してください。
• データ出力側である SDRAM/FCRAM に対して , I/O ウェイトサイクルを満たすよう
なタイミングで READ コマンドを発行し , I/O ホールドサイクルの設定がある場合
はバスアクセスサイクル終了直前のサイクルで DESL コマンドを発行することによ
り I/O ホールドサイクルを挿入します。
• 受取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイク
ル分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライ
トストローブには影響を与えません。ただし CS 信号は , フライバイによるバスアク
セスサイクル終了まで保持されます。
252
第 4 章 外部バスインタフェース
• フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。
• I/O のデータセットアップを確保するために I/O ウェイトサイクルを利用した場合は ,
ページミスの条件で I/O ウェイト値を設定する必要があります。このため , ページ
ヒット時にはペナルティが発生します。このページヒット時のペナルティが問題に
なるような場合は , 図 4.10-6 のような外部回路を用意して , CAS 信号を利用した外
部ウェイトを使用することによって, I/Oアクセスを延長させてデータセットアップ
を確保してください。
図 4.10-6 CAS 信号を利用した外部ウェイトによるフライバイペナルティ対策回路例 (CL = 2 場合 )
本LSI
SDRAM
MCLK
MCLKE
SRAS
SCAS
SWE
DQMUU
DQMUL
A11~A00
A14
A15
CLK
CKE
RAS
CAS
WE
DQMU
DQML
IA11~IA0
BA0
BA1
D31~D16
DQ15~DQ0
CS6
CS
I/O
Q
D
FF
CK
RDY
IORD
IOWR
DACK
DREQ
<注意事項>
• CL=3 の場合は , MCLK による FF を 2 段にしてもう 1 サイクル遅延させてください。
• ほかに外部ウェイトが必要なデバイスが存在する場合は , 必要に応じて RDY 信号との
論理ゲートを追加してください。
253
第 4 章 外部バスインタフェース
図 4.10-7 CAS 信号を利用した外部ウェイトによるフライバイペナルティ対策のタイミング図 (CL=2 場合 )
SDRAM基本アクセス
I/O基本サイクル
I/Oホールド
ウェイト
外部RDYウェイト
MCLK
A31~A00
バンク
アドレス
コラム
ロー
アドレス アドレス
CSn
SRAS
SCAS
WRn(SWE)
MCLKE
D31~D00
DACKn
基本モード
DEOPn
IOWR
DREQn
RDY
CAS 信号と転送の対象となる SDRAM 領域のチップセレクト信号との OR ( 負論理の
AND) 信号を MCLK によりタイミングをとって外部 RDY に入力することによって ,
SDRAM のリードアクセスを 1 サイクル延長させると , IOWR 信号の立上りも 1 サイク
ル遅延させることができます。この場合 , CAS 信号の立下りタイミングを基準にして
外部ウェイト信号を作成しているので , SDRAM のページヒット・ミスに関係なく
SDRAM のデータ出力からの I/O デバイスへデータセットアップ時間を 1 サイクル確保
できます。
外部ウェイトの設定は , DMAC 用 I/O ウェイトレジスタの RYE0, RYE1 ビットによっ
て , 使用する DMA フライバイアクセスのチャネルの RDY 機能を有効になるように設
定してください。
また , CAS レイテンシが 3 の場合は , SDRAM のデータ出力が 1 サイクル遅れるため ,
MCLK によるフリップフロップを一段追加し , 上図よりも 1 サイクル遅らせた信号を
RDY に入力させてください。
254
第 4 章 外部バスインタフェース
4.10.5
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) の動作について説明します。
外部 I/O, RAM →内部 RAM もタイミングは同じです。
■ 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM)
図 4.10-8 に , TYP3 ∼ TYP0=0000B, AWR を 0008H, IOWR を 00H に設定した場合の動作
タイミングチャートを示します。
図 4.10-8 は , I/O 側のウェイト設定なしの場合です。
図 4.10-8 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) のタイミングチャート
MCLK
A31~A00
I/O アドレス
AS
CSn(I/O側)
WRn
D31~D00
FR30 DACKn
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
デマンドモード時の
センスタイミング
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• DACKn/DEOPn は , 内部 RAM アクセスのサイクルでは出力されません。
255
第 4 章 外部バスインタフェース
2 サイクル転送 ( 外部→ I/O)
4.10.6
2 サイクル転送 ( 外部→ I/O) の動作について説明します。
■ 2 サイクル転送 ( 外部→ I/O)
図 4.10-9 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 00H に設定した場合の動
作タイミングチャートを示します。
図 4.10-9 は , メモリ , I/O のウェイト設定なしの場合です。
図 4.10-9 2 サイクル転送 ( 外部→ I/O) のタイミングチャート
MCLK
A31~A00
メモリアドレス
アイドル
I/O アドレス
AS
CSn
RD
CSn
WRn
D31~D00
FR30 DACKn
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは , DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
256
第 4 章 外部バスインタフェース
4.10.7
2 サイクル転送 (I/O →外部 )
2 サイクル転送 (I/O →外部 ) の動作について説明します。
■ 2 サイクル転送 (I/O →外部 )
図 4.10-10 に , TYP3 ∼ TYP0 を 0000B, AWR を 0008H, IOWR を 00H に設定した場合の
動作タイミングチャートを示します。
図 4.10-10 は , メモリ , I/O のウェイト設定なしの場合です。
図 4.10-10 2 サイクル転送 (I/O →外部 ) のタイミングチャート
MCLK
A31~A00
I/Oアドレス
アイドル
メモリアドレス
AS
CSn
WRn
CSn
RD
D31~D00
FR30 DACKn
互換
モード DEOPn
基本
モード
DACKn
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
257
第 4 章 外部バスインタフェース
2 サイクル転送 (I/O → SDRAM/FCRAM)
4.10.8
2 サイクル転送 (I/O → SDRAM/FCRAM) の動作について説明します。
■ 2 サイクル転送 (I/O → SDRAM/FCRAM)
図 4.10-11 に , TYP3 ∼ TYP0 を 1000B, AWR を 0051H, IOWR を 00H に設定した場合の
動作タイミングチャートを示します。
図 4.10-11 2 サイクル転送 (I/O → SDRAM/FCRAM) のタイミングチャート
MCLK
A31~A00
AS
CSn
SRAS
SCAS
WRn(SWE)
CSn
RD
D31~D00
FR30
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
258
I/O
アドレス
アイドル
メモリ
アドレス
第 4 章 外部バスインタフェース
2 サイクル転送 (SDRAM/FCRAM → I/O)
4.10.9
2 サイクル転送 (SDRAM/FCRAM → I/O) の動作について説明します。
■ 2 サイクル転送 (SDRAM/FCRAM → I/O)
図 4.10-12 に , 2 サイクル転送 (SDRAM/FCRAM → I/O) の動作タイミングチャートを示
します。
図 4.10-12 2 サイクル転送 (SDRAM/FCRAM → I/O) のタイミングチャート
MCLK
A31~A00
メモリ
アドレス
I/Oアドレス
AS
CSn
RD
CSn
SRAS
SCAS
WRn(SWE)
D31~D00
FR30
互換モード
DACKn
DEOPn
DACKn
基本モード
DEOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/DEOPn は転送元バスアクセス , 転送先バスアクセスの両方
で出力されます。
259
第 4 章 外部バスインタフェース
4.11
バスアービトレーション
バス権開放およびバス権獲得のタイミングチャートを示します。
■ バス権開放
図 4.11-1 に , バス権開放のタイミングチャートを示します。
図 4.11-1 バス権開放のタイミングチャート
MCLK
A23~A00
AS
CSn
RD
読出し
D31~D16
BRQ
BGRNT
260
1サイクル
第 4 章 外部バスインタフェース
■ バス権獲得
図 4.11-2 に , バス権獲得のタイミングチャートを示します。
図 4.11-2 バス権獲得のタイミングチャート
MCLK
A23~A00
AS
CSn
WR
読出し
D31~D16
BRQ
BGRNT
1サイクル
• 端子 / タイミングコントロールレジスタ (TCR) の BREN ビットを "1" に設定するこ
とにより , BRQ/BGRNT によるバスアービトレーションを行うことができます。
• バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を
アサートします。
• バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに
します。
• CSn は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ
ンピーダンスにします。
• チップセレクト領域許可レジスタ (CSER) で許可している領域がすべて共有許可 ( 領
域構成レジスタ (ACR) の SREN ビットが "1") の場合 , AS, BAA, RD, WR, WR0 ∼
WR3 をハイインピーダンスにします。
261
第 4 章 外部バスインタフェース
4.12
レジスタの設定手順
レジスタの設定手順を説明します。
■ レジスタの設定手順
外部バスインタフェースに関する設定は , 以下の手順で行ってください。
(1) レジスタの内容を書き換える場合は , 必ずチップセレクト領域許可レジスタ (CSER)
の対応する領域を使用しない設定 ("0") にして行ってください。"1" のまま設定を変
更した場合 , その前後のアクセスは保証されません。
(2) レジスタの変更は , 以下の手順で行ってください。
1) 該当領域に対応する CSER のビットを "0" に設定してください。
2) ASR と ACR をワードアクセスで同時に設定してください。
ASR と ACR をハーフワードでアクセスする場合には , ASR 設定後 ACR を設定
してください。
3) AWR を設定してください。
4) 該当領域に対応する CHER のビットを設定してください。
5) 該当領域に対する CSER のビットを設定してください。
(3) CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記 2) ∼ 4) の設定を行ってください。その後 , クロック
を高速クロックに切り換えてください。
(4) プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ
さい。
1) 該当領域に対応する CSER のビットを "0" に設定してください。
2) 端子 / タイミングコントロールレジスタ (TCR) の PSUS ビットおよび PCLR ビッ
トをともに "1" に設定してください。
3) ASR と ACR をワードアクセスで同時に設定してください。
ASR と ACR をハーフワードでアクセスする場合には , ASR 設定後 ACR を設定
してください。
4) AWR を設定してください。
5) 該当領域に対応する CHER のビットを設定してください。
6) 端子 / タイミングコントロールレジスタ (TCR) の PSUS ビットおよび PCLR ビッ
トに "0" を設定してください。
7) 該当領域に対応する CSER のビットを "1" に設定してください。
262
第 4 章 外部バスインタフェース
4.13
外部バスインタフェースの使用上の注意
外部バスインタフェースを使用する上で注意しなければならない事項について説明
します。
■ 使用上の注意事項
WR0∼WR3を書込みストローブとして使用する領域(TYP3∼TYP0を0X0XB に設定)と
WRを書込みストローブとして使用する領域(TYP3∼TYP0を0X1XBに設定)を混在させ
る設定にした場合 , 使用するすべての領域で , 必ず以下の設定をしてください。
• 読出し→書込みアイドルサイクルを最低 1 サイクル以上設定してください。(AWR
の W07, W06 を 00B に設定時以外 )
• 書込みリカバリサイクルを最低 1 サイクル以上設定してください。(AWR の W05,
W04 を 00B に設定時以外 )
ただし , WR0 ∼ WR3 を書込みストローブとして使用する領域 (TYP3 ∼ TYP0 を 0X0XB
に設定 ) で WR0 ∼ WR3 が無効な (ROM のみ接続されている ) 場合は , 上記制限はあり
ません。
また , WR を書込みストローブとして使用する領域 (TYP3 ∼ TYP0 を 0X1XB に
設定 ) の設定でアドレス→ RD/WRn セットアップサイクル (W01 を "1"), RD/WRn →ア
ドレスホールドサイクル (W00 を "1") をともに設定している場合も上記制限はありま
せん。
263
第 4 章 外部バスインタフェース
264
第5章
I/O ポート
I/O ポートの概要 , レジスタの構成および機能につ
いて説明します。
5.1 I/O ポートの概要
5.2 I/O ポートのレジスタ
265
第 5 章 I/O ポート
I/O ポートの概要
5.1
I/O ポートの概要を説明します。
■ I/O ポートの基本ブロックダイヤグラム
この LSI は , 各端子に対応する外部バスインタフェースやペリフェラルが入出力として
端子を使用しない設定になっているとき , I/O ポートとして使用できます。
図 5.1-1 に , I/O ポートの基本的な構成を示します。
図 5.1-1 プルアップ付きポートブロック
ペリフェラル入力
内部バス
PDRリード
0
プルアップ抵抗
(約25k
1
ペリフェラル出力
PDR
1
Pin
0
PFR
DDR
PCR
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
PDR:Port Data Register
DDR:Data Direction Register
PFR:Port Function Register
PCR:Pull-up Resistance Control Rgister
<注意事項>
ポート出力時には設定にかかわらず , プルアップ抵抗は無効となります。
プルアップ付き I/O ポートは ,
• PDR ( ポートデータレジスタ : Port Data Register)
• DDR ( データ方向レジスタ : Data Direction Register)
• PFR ( ポート機能レジスタ : Port Function Register)
• PCR ( プルアップ抵抗制御レジスタ : Pull-up Resistance Control Register)
から構成されています。
266
第 5 章 I/O ポート
■ I/O ポートのモード
I/O ポートには , 以下の 3 つのモードがあります。
• ポート入力モード時 (PFR="0" & DDR="0")
- PDR 読出し : 対応する外部端子のレベルが読み出されます。
- PDR 書込み : PDR に設定値が書き込まれます。
• ポート出力モード時 (PFR="0" & DDR="1")
- PDR 読出し : PDR の値が読み出されます。
- PDR 書込み : PDR の値が対応する外部端子に出力されます。
• ペリフェラル出力モード時 (PFR="1" & DDR="X")
- PDR 読出し : 対応するペリフェラル出力の値が読み出されます。
- PDR 書込み : PDR に設定値が書き込まれます。
<注意事項>
ポートへのアクセスは , バイトアクセスで行ってください。
• ポート 0 ∼ポート A を外部バス端子として使用している場合は , 外部バス機能が優先
されます。このため , 外部バス端子として動作させているときにポート方向レジスタ
(DDR) を書き換えても入出力の切換えは起こりません。ポート方向レジスタ (DDR) の
値が有効になるのは , ポート機能レジスタ (PFR) を切り換えて汎用端子としたときで
す。
• ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。
• ストップモード時 (HIZ=1), ハードウェアスタンバイのときには , プルアップ抵抗制御
レジスタの設定は無効になります。
• ポート端子を外部バス端子として使用する場合は , プルアップ抵抗は使用禁止です。プ
ルアップ抵抗レジスタ (PCR) の対応するビットに "1" を書き込まないようにしてくだ
さい。
267
第 5 章 I/O ポート
5.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ ポートデータレジスタ (PDR) の構成
図 5.2-1 に , ポートデータレジスタ (PDR:Port Data Register) の構成を示します。
図 5.2-1 ポートデータレジスタ (PDR) の構成
PDR0
bit
アドレス : 000000H
PDR1
bit
アドレス : 000001H
PDR2
bit
アドレス : 000002H
PDR6
bit
アドレス : 000006H
PDR8
bit
アドレス : 000008H
PDR9
bit
アドレス : 000009H
PDRA
bit
アドレス : 00000AH
PDRB
bit
アドレス : 00000BH
PDRG
bit
アドレス : 000010H
PDRH
bit
アドレス : 000011H
PDRJ
bit
アドレス : 000013H
7
6
5
4
3
2
1
0
P07
P06
P05
P04
P03
P02
P01
P00
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
7
6
5
4
3
2
1
0
P67
P66
P65
P64
P63
P62
P61
P60
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
-
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
PG7
PG6
PG5
PG4
PG3
PG2
PG1
PG0
7
6
5
4
3
2
1
0
-
-
-
-
-
PH2
PH1
PH0
7
6
5
4
3
2
1
0
PJ7
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
PJ0
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
アクセス
XXXXXXXXB
R/W
初期値
-XXXXXXXB
アクセス
R/W
初期値
アクセス
XX X XX X XX B
R/W
初期値
アクセス
XX X XX X XX B
R/W
初期値
アクセス
XXXX X X X X B
R/W
初期値
-----XXXB
アクセス
R/W
初期値
アクセス
XXXXXXXXB
R/W
• PDR0 ∼ PDR2, PDR6, PDR8 ∼ PDRB, PDRG, PDRH, PDRJ は , I/O ポートの入出力
データレジスタです。
• 対応する DDR0 ∼ DDR2, DDR6, DDR8 ∼ DDRB, DDRG, DDRH, DDRJ, PFR6, PFR8,
PFR9, PFRA1, PFRB1, PFRB2, PFRA2, PFRG, PFRH, PFRJ で入出力制御が行われま
す。
• P00 ∼ P07, P10 ∼ P17, P20 ∼ P27 に対するポート機能レジスタ (PFR) はありません。
268
第 5 章 I/O ポート
■ データ方向レジスタ (DDR) の構成
図 5.2-2 に , データ方向レジスタ (DDR:Data Direction Register) の構成を示します。
図 5.2-2 データ方向レジスタ (DDR) の構成
DDR0
bit
アドレス : 000600H
DDR1
bit
アドレス : 000601H
DDR2
bit
アドレス : 000602H
DDR6
bit
アドレス : 000606H
DDR8
bit
アドレス : 000608H
DDR9
bit
アドレス : 000609H
DDRA
bit
アドレス : 000060AH
DDRB
bit
アドレス : 00060BH
DDRG
bit
アドレス : 000400H
DDRH
bit
アドレス : 000401H
DDRJ
bit
アドレス : 000403H
7
6
5
4
3
2
1
0
P07
P06
P05
P04
P03
P02
P01
P00
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
7
6
5
4
3
2
1
0
P67
P66
P65
P64
P63
P62
P61
P60
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
-
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
PG7
PG6
PG5
PG4
PG3
PG2
PG1
PG0
7
6
5
4
3
2
1
0
-
-
-
-
-
PH2
PH1
PH0
7
6
5
4
3
2
1
0
PJ7
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
PJ0
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
-0000000B
アクセス
R/W
R/W
R/W
R/W
R/W
初期値
アクセス
00 0 0 0 0 0 0 B
R/W
初期値
アクセス
00 0 0 0 0 0 0 B
R/W
初期値
アクセス
000000 00B
R/W
初期値
-----000B
アクセス
R/W
初期値
00000000B
アクセス
R/W
DDR0 ∼ DDR2, DDR6, DDR8 ∼ DDRB, DDRG, DDRH, DDRJ は , 対応する I/O ポートの
入出力方向をビット単位で制御します。
• PFR=0 のとき
- DDR=0: ポート入力
- DDR=1: ポート出力
• PFR=1 のとき
- DDR=0: ペリフェラル入力
- DDR=1: ペリフェラル出力
269
第 5 章 I/O ポート
■ プルアップ抵抗制御レジスタ (PCR) の構成
図 5.2-3 に , プルアップ抵抗制御レジスタ (PCR:Pull-up Control Register) の構成を示しま
す。
図 5.2-3 プルアップ抵抗制御レジスタ (PCR) の構成
PCR0
bit
アドレス : 000620H
PCR1
bit
アドレス : 000621H
PCR2
bit
アドレス : 000622H
PCR6
bit
アドレス : 000626H
PCR8
bit
アドレス : 000628H
PCR9
bit
アドレス : 000629H
PCRA
bit
アドレス : 00062AH
PCRB
bit
アドレス : 00062BH
PCRH
アドレス : 000423H
bit
7
6
5
4
3
2
1
0
P07
P06
P05
P04
P03
P02
P01
P00
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
7
6
5
4
3
2
1
0
P67
P66
P65
P64
P63
P62
P61
P60
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
-
P96
P95
P94
-
-
P91
-
7
6
5
4
3
2
1
0
PA7
PA6
PA5
PA4
PA3
PA2
PA1
PA0
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
-
-
-
-
-
PH2
PH1
PH0
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
R/W
初期値
00000000B
アクセス
初期値
-000--0-B
アクセス
R/W
R/W
R/W
R/W
R/W
初期値
アクセス
00 0 0 0 0 0 0 B
R/W
初期値
アクセス
00 0 0 0 0 0 0 B
R/W
初期値
-----000B
アクセス
R/W
PCR0 ∼ PCR2, PCR6, PCR8 ∼ PCRB, PCRH は , 対応する I/O ポートのプルアップ抵抗
制御を行います。
• PCR=0 のとき : プルアップ抵抗なし
• PCR=1 のとき : プルアップ抵抗あり
270
第 5 章 I/O ポート
■ ポート機能レジスタ (PFR) の構成
図 5.2-4 に , ポート機能レジスタ (PFR:Port Function Register) の構成を示します。
図 5.2-4 ポート機能レジスタ (PFR) の構成
PFR6
bit
アドレス : 000616H
PFR8
bit
アドレス : 000618H
PFR9
bit
bit
bit
bit
アドレス : 00061CH
PFRA2
bit
アドレス : 00061EH
PFRG
bit
アドレス : 000410H
PFRH
bit
アドレス : 000411H
PFRJ
bit
アドレス : 000413H
PFR61
bit
アドレス : 000417H
4
3
2
1
0
AE20
AE19
AE18
AE17
AE16
7
6
5
4
3
2
1
0
-
-
BRQE
-
-
2
1
0
7
7
6
5
WRXE BAAE
6
5
4
3
ASXE
-
4
3
MCKE MCKEE SYSE
2
1
0
CS7XE CS6XE CS5XE CS4XE CS3XE CS2XE CS1XE CS0XE
アドレス : 00061BH
PFRB2
5
AE21
-
アドレス : 00061AH
PFRB1
6
AE22
WR3XE WR2XE WR1XE
アドレス : 000619H
PFRA1
7
AE23
7
6
5
4
3
2
1
0
DES1
AK12
AK11
AK10
DES0
AK02
AK01
AK00
7
6
5
4
3
2
1
0
-
-
-
AKH1
AKH0
DRDE DWRE PPE1
7
6
5
4
3
2
1
0
-
-
PPE2
-
-
-
-
-
7
6
5
4
3
2
1
0
SCE2
SOE2
-
-
-
-
-
-
7
6
5
4
3
2
1
0
-
-
-
-
-
-
PPE3
-
7
6
5
4
3
2
1
0
-
PPE0
SCE1
SOE1
-
SCE0
SOE0
-
7
6
5
4
3
2
1
0
-
-
-
-
TEST1 TEST0 I2CE1 I2CE0
初期値
11111111B
アクセス
R/W
初期値
111--0--B
アクセス
初期値
-0000111B
アクセス
初期値
11111111B
アクセス
初期値
00000000B
アクセス
初期値
000---00B
アクセス
初期値
- -0 -- --- - B
アクセス
初期値
00------B
アクセス
初期値
------0-B
アクセス
初期値
-000-00-B
アクセス
R/W
初期値
----0000B
アクセス
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
PFR6, PFR8, PFR9, PFRA1, PFRB1, PFRB2, PFRA2, PFRG, PFRH, PFRJ は , 対応する外部
バスインタフェースやペリフェラルの出力をビット単位で制御します。
PFR の空きビットには , 必ず "0" を書いてください。
271
第 5 章 I/O ポート
■ ポート機能レジスタ (PFR) の機能
以下に各ポート機能レジスタ (PFR) について , その初期値と機能をまとめます。
表 5.2-1 ポート機能レジスタ (PFR) の機能 (1 / 4)
レジスタ名
ビット名
AE16
AE17
AE18
PFR6
000616H
AE19
AE20
AE21
AE22
AE23
BRQE
PFR8
000618H
WR1XE
WR2XE
WR3XE
SYSE
MCKEE
MCKE
PFR9
000619H
ASXE
BAAE
WRXE
272
ビット値
機能
0
汎用ポート (P60)
1
アドレス出力
0
汎用ポート (P61)
1
アドレス出力
0
汎用ポート (P62)
1
アドレス出力
0
汎用ポート (P63)
1
アドレス出力
0
汎用ポート (P64)
1
アドレス出力
0
汎用ポート (P65)
1
アドレス出力
0
汎用ポート (P66)
1
アドレス出力
0
汎用ポート (P67)
1
アドレス出力
0
汎用ポート (P82, P81)
1
BRQ, BGRNT, TCR レジスタの BREN に "1" を設定時
有効
0
汎用ポート (P85)
1
WR1/ULBX/DQMUL
0
汎用ポート (P86)
1
WR2/LUBX/DQMLU
0
汎用ポート (P87)
1
WR3/LLBX/DQMLL
0
汎用ポート (P90)
1
SYSCLK 使用時 "1" を設定
0
汎用ポート (P91)
1
MCLKE
0
汎用ポート (P92)
1
メモリクロック使用時 "1" を設定 , MCLK
0
汎用ポート (P94)
1
AS/LBA/SRAS, 汎用 / バーストメモリ使用時 "1" に設定
0
汎用ポート (P95)
1
BAA/SCAS, バーストメモリ使用時に "1" に設定
0
汎用ポート (P96)
1
WRn/SWR, 汎用 / バーストメモリ使用時に "1" に設定
初期値
1
1
1
1
1
1
1
1
0
1
1
1
1
1
1
0
0
0
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (2 / 4)
レジスタ名
ビット名
CS0XE
CS1XE
CS2XE
CS3XE
PFRA
00061AH
CS4XE
CS5XE
CS6XE
CS7XE
ビット値
機能
初期値
0
汎用ポート (PA0)
1
CS0出力, CSERレジスタのCSE0ビットに"1"を設定時
有効
1
0
汎用ポート (PA1)
1
CS1出力, CSERレジスタのCSE1ビットに"1"を設定時
有効
0
汎用ポート (PA2)
1
CS2出力, CSERレジスタのCSE2ビットに"1"を設定時
有効
0
汎用ポート (PA3)
1
CS3出力, CSERレジスタのCSE3ビットに"1"を設定時
有効
0
汎用ポート (PA4)
1
CS4出力, CSERレジスタのCSE4ビットに"1"を設定時
有効
0
汎用ポート (PA5)
1
CS5出力, CSERレジスタのCSE5ビットに"1"を設定時
有効
0
汎用ポート (PA6)
1
CS6出力, CSERレジスタのCSE6ビットに"1"を設定時
有効
0
汎用ポート (PA7)
1
CS7出力, CSERレジスタのCSE7ビットに"1"を設定時
有効
1
1
1
1
1
1
1
273
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (3 / 4)
レジスタ名
ビット名
AK02, AK01,
AK00
DES0, PB2
(DDRB)
PFRB1
00061BH
AK12, AK11,
AK10
DES1, PB5
(DDRB)
274
ビット値
機能
0,0,0
汎用ポート (PB0, PB1, PB2)
0,0,1
DACK0, DEOP0 出力 ( フライバイ転送時 FR30 互換 )
0,1,0
DACK0, DEOP0 出力
(2 サイクル転送 RD タイミング FR30 互換 )
0,1,1
DACK0, DEOP0 出力
(2 サイクル転送 WRn タイミング FR30 互換 )
1,0,0
DACK0, DEOP0 出力
(2 サイクル転送 WE タイミング FR30 互換 )
1,0,1
DACK0, DEOP0 出力
(2 サイクル転送 WRn, RD タイミング FR30 互換 )
1,1,0
DACK0, DEOP0 出力
(2 サイクル転送 WE, RD タイミング FR30 互換 )
1,1,1
DACK0, DEOP0 出力 ( チップセレクトタイミング )
0,0
汎用ポート入力 (PB2)
0,1
汎用ポート出力 (PB2)
1,0
DMAC: DSTP0 入力 ( 設定禁止 )
1,1
DMAC: DEOP0 出力
0,0,0
汎用ポート (PB3, PB4, PB5)
0,0,1
DACK1, DEOP1 出力 ( フライバイ転送時 FR30 互換 )
0,1,0
DACK1, DEOP1 出力
(2 サイクル転送 RD タイミング FR30 互換 )
0,1,1
DACK1, DEOP1 出力
(2 サイクル転送 WRn タイミング FR30 互換 )
1,0,0
DACK1, DEOP1 出力
(2 サイクル転送 WE タイミング FR30 互換 )
1,0,1
DACK1, DEOP1 出力
(2 サイクル転送 WRn, RD タイミング FR30 互換 )
1,1,0
DACK1, DEOP1 出力
(2 サイクル転送 WE, RD タイミング FR30 互換 )
1,1,1
DACK1, DEOP1 出力 ( チップセレクトタイミング )
0,0
汎用ポート入力 (PB5)
0,1
汎用ポート出力 (PB5)
1,0
DMAC: DSTP1 入力 ( 設定禁止 )
1,1
DMAC: DEOP1 出力
初期値
000
00
000
00
第 5 章 I/O ポート
表 5.2-1 ポート機能レジスタ (PFR) の機能 (4 / 4)
レジスタ名
ビット名
AKH0
AKH1
PFRB2
00061CH
PPE1
DWRE
DRDE
PFRA2
00061EH
PPE2
SOE2
PFRG
000410H
SCE2
PFRH
000411H
PPE3
SOE0
SCE0
PFRJ
000413H
SOE1
SCE1
PPE0
I2CE0
PFR61
000617H
I2CE1
TEST0
TEST1
ビット値
機能
0
DACK0 出力アクティブ L
1
DACK0 出力アクティブ H
0
DACK1 出力アクティブ L
1
DACK1 出力アクティブ H
0
汎用ポート (PB5)/DEOP1 出力
1
PPG1 出力
0
汎用ポート (PB6)
1
IOWR 出力
0
汎用ポート (PB7)
1
IORD 出力
0
汎用ポート (PA5)/CS5 出力
1
PPG2 出力
0
汎用ポート (PG6)
1
SOT2 出力
0
汎用ポート (PG7)
1
SCK2 出力
0
汎用ポート (PH1)
1
PPG3 出力
0
汎用ポート (PJ1)
1
SOT0 出力
0
汎用ポート (PJ2)
1
SCK0 出力
0
汎用ポート (PJ4)
1
SOT1 出力
0
汎用ポート (PJ5)
1
SCK1 出力
0
汎用ポート (PJ6)
1
PPG0 出力
0
汎用ポート (P65, P64) / アドレス出力 (A21, A20)
1
I2C I/F SCL0, SDA0 入出力
0
汎用ポート (P67, P66) / アドレス出力 (A23, A22)
1
I2C I/F SCL1, SDA1 入出力
0
必ず 0 に設定してください。
1
テスト機能です , 設定禁止です。
0
必ず 0 に設定してください。
1
テスト機能です , 設定禁止です。
初期値
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
275
第 5 章 I/O ポート
• PPG1 出力を有効にするには , PPE1 ビットを "1" かつ DES1 ビットを "0" に設定して
ください。
• PPG2 出力を有効にするには , PPE2 ビットを "1" かつ CS5XE ビットを "0" に設定し
てください。
• SDA0, SCL0 出力を有効にするには , I2CE0 ビットを "1" に設定してください。
• SDA1, SCL1 出力を有効にするには , I2CE1 ビットを "1" に設定してください。
• 汎用ポート (P67) を有効にするには , I2CE1 ビットを "0" かつ PFR6 レジスタの AE23
ビットを "0" に設定してください。
• 汎用ポート (P66) を有効にするには , I2CE1 ビットを "0" かつ PFR6 レジスタの AE22
ビットを "0" に設定してください。
• 汎用ポート (P65) を有効にするには , I2CE0 ビットを "0" かつ PFR6 レジスタの AE21
ビットを "0" に設定してください。
• 汎用ポート (P64) を有効にするには , I2CE0 ビットを "0" かつ PFR6 レジスタの AE20
ビットを "0" に設定してください。
• アドレス出力 (A23) を有効にするには , I2CE1 ビットを "0" かつ PFR6 レジスタの
AE23 ビットを "1" に設定してください。
• アドレス出力 (A22) を有効にするには , I2CE1 ビットを "0" かつ PFR6 レジスタの
AE22 ビットを "1" に設定してください。
• アドレス出力 (A21) を有効にするには , I2CE0 ビットを "0" かつ PFR6 レジスタの
AE21 ビットを "1" に設定してください。
• アドレス出力 (A20) を有効にするには , I2CE0 ビットを "0" かつ PFR6 レジスタの
AE20 ビットを "1" に設定してください。
276
第6章
16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 /
機能および 16 ビットリロードタイマの動作につい
て説明します。
6.1 16 ビットリロードタイマの概要
6.2 16 ビットリロードタイマのレジスタ
6.3 16 ビットリロードタイマの動作
6.4 カウンタの動作状態
6.5 16 ビットリロードタイマの使用上の注意
277
第 6 章 16 ビットリロードタイマ
16 ビットリロードタイマの概要
6.1
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ
スタ , 内部カウント , クロック作成用プリスケーラ , コントロールレジスタで構成され
ています。
■ 16 ビットリロードタイマの概要
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジス
タ , 内部カウント , クロック作成用プリスケーラ , コントロールレジスタで構成されて
います。
クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ), 外部イベ
ントから選択できます。
割込みによる DMA 転送の起動が可能です。
MB91301 シリーズは , 16 ビットリロードタイマを 3 チャネル内蔵しています。
■ ブロックダイヤグラム
図 6.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 6.1-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビットリロードレジスタ(TMRLR)
7
リロード
16
16ビットタイマレジスタ(TMR) UF
RELD
R
OUT
CTL.
カウントイネーブル
b
u
s
UF
リトリガ
クロックセレクタ
3
CSL1
CNTE
CSL0
TRG
IN CTL.
EXCK
21
23 2 5
プリスケーラ
クリア
3
MOD0
MOD1
CLKP入力
3
278
INTE
MOD2
外部トリガ
選択
外部トリガ入力(TI)
IRQ
第 6 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタ
6.2
16 ビットリロードタイマで使用するレジスタの構成と機能について説明します。
■ 16 ビットリロードタイマのレジスタ一覧
図 6.2-1 16 ビットリロードタイマのレジスタ一覧
bit
15
14
13
12
11
10
-
-
-
-
CSL1
CSL0
7
6
5
4
3
2
1
0
MOD0
-
-
RELD
INTE
UF
CNTE
TRG
bit
bit 15
9
8
MOD2 MOD1 コントロールステータスレジスタ
(TMCSR)
0
16 ビットタイマレジスタ
(TMR)
bit 15
0
16 ビットリロードレジスタ
(TMRLR)
279
第 6 章 16 ビットリロードタイマ
6.2.1
コントロールステータスレジスタ (TMCSR)
コントロールステータスレジスタ (TMCSR) は , 16 ビットタイマの動作モードおよ
び割込みの制御をします。
■ コントロールステータスレジスタ (TMCSR) のビット構成
図 6.2-2 コントロールステータスレジスタ (TMCSR) のビット構成
bit
アドレス : 00004EH
000056H
00005EH
bit
15
14
13
12
Reserved Reserved Reserved Reserved
11
10
CSL1
CSL0
9
8
MOD2 MOD1
-
-
(R/W)
(R/W)
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
RELD
INTE
UF
CNTE
TRG
R/W
R/W
R/W
R/W
R/W
MOD0
Reserved Reserved
R/W
R
R/W
初期値
--XX0000B
00000000B
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにしてく
ださい。
コントロールステータスレジスタ (TMCSR) には , 同時書込みが可能です。
5, 12, 13 ビットに書込みする場合は , 必ず "0" を書き込んでください。
■ コントロールステータスレジスタ (TMCSR) のビット機能
以下に , コントロールステータスレジスタ (TMCSR) のビット機能を説明します。
[bit15] (reserved)
このビットは , 未使用ビットです。
[bit14] (reserved)
このビットは , 未使用ビットです。
[bit13] (reserved)
書込み時 , 必ず "0" を書き込んでください。
[bit12] (reserved)
書込み時 , 必ず "0" を書き込んでください。
[bit11, bit10] CSL1, CSL0 (Count source SeLect) : カウントソースセレクト
これらのビットは , カウントソースセレクトビットです。カウントソースは , 内部
クロックと外部イベントを選択できます。
表 6.2-1 に , これらのビットによって選択されるカウントソースを示します。
また , 外部イベントをカウントソースに設定した場合のカウント有効エッジは ,
MOD1, MOD0 ビットにより設定されます。
280
第 6 章 16 ビットリロードタイマ
表 6.2-1 CSL ビット設定カウントソース
CSL1
CSL0
0
0
内部クロック φ/2 1
(ch.0 ∼ ch.2)
0
1
内部クロック φ/2 3
(ch.0 ∼ ch.2)
1
0
内部クロック φ/2 5
(ch.0 ∼ ch.2)
1
1
外部イベント
(ch.0 ∼ ch.2)
クロックソース (φ: マシンクロック )
<注意事項>
外部クロックに必要な最小パルス幅は , 2T (T: 周辺系クロックマシンサイクル ) です。
[bit9, bit8, bit7] MOD2, MOD1, MOD0 (MODe) : 動作モードの設定
これらのビットは , 動作モードを設定するビットです。
カウントソースが「内部クロック」のときと「外部イベント」のときで機能が変わ
ります。
• 内部クロックのとき : リロードトリガ設定
• 外部イベントのとき : カウント有効エッジの設定
また , MOD2 は必ず "0" を設定してください。
[ 内部クロック選択時のリロードトリガ設定 ]
カウントソースとして , 内部クロック (CSL1, CSL0=00, 01, 10) が選択されている場
合は , MOD2 ∼ MOD0 ビットの設定により有効エッジが入力されるとリロードレジ
スタの内容をロードしてカウント動作を継続します。
表 6.2-2 に , 内部クロック選択時の MOD2, MOD1, MOD0 の設定を示します。
表 6.2-2 MOD2 ∼ MOD0 ビットの設定方法 ( 内部クロック選択時 )
MOD2
MOD1
MOD0
0
0
0
ソフトウェアトリガ
0
0
1
外部トリガ ( 立上りエッジ )
0
1
0
外部トリガ ( 立下りエッジ )
0
1
1
外部トリガ ( 両エッジ )
1
X
X
設定禁止
有効エッジ
( 注意事項 ) 表中の "X" は , 任意の値
281
第 6 章 16 ビットリロードタイマ
[ 外部イベント選択時の有効エッジ設定 ]
カウントソースとして , 外部クロックイベント (CSL1, CSL0=11) が選択されている
場合の MOD2, MOD1, MOD0 の設定により , 有効エッジが入力されるとイベントを
カウントします。
表 6.2-3 に , 外部イベント選択時の MOD2, MOD1, MOD0 の設定を示します。
表 6.2-3 MOD2 ∼ MOD0 ビットの設定方法 ( 外部イベント選択時 )
MOD2
MOD1
MOD0
有効エッジ
X
0
0
⎯
X
0
1
外部イベント ( 立上りエッジ )
X
1
0
外部イベント ( 立下りエッジ )
X
1
1
外部イベント ( 両エッジ )
( 注意事項 ) 表中の "X" は , 任意の値
外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。
[bit6] (reserved)
このビットは , 未使用ビットです。
読出し時 , 常に "0" が読めます。
[bit5] (reserved)
書込み時 , 必ず "0" を書き込んでください。
[bit4] RELD: リロード許可
このビットは , リロード許可ビットです。"1" のときリロードモードになり , カウン
タの値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカ
ウンタへロードしてカウント動作を続けます。
"0"のときワンショットモードになり,カウンタの値が0000H → FFFFH へのアンダフ
ローによりカウント動作を停止します。
[bit3] INTE: 割込み要求許可
このビットは , 割込み要求許可ビットです。INTE ビットが "1" のとき , UF ビット
が "1" になると割込み要求を発生します。"0" のときは , 割込み要求を発生しません。
[bit2] UF: タイマ割込み要求
このビットは , タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へ
のアンダフローにより"1"にセットされます。"0"の書込みによってクリアされます。
このビットに対して "1" の書込みは , 意味がありません。
リードモディファイライト系命令における読出し時には , "1" が読み出されます。
[bit1] CNTE: タイマのカウントイネーブル
このビットは , タイマのカウントイネーブルビットです。このビットに "1" を書き
込むと , 起動トリガ待ち状態になります。このビットへ "0" を書き込むと , カウント
動作は停止します。
282
第 6 章 16 ビットリロードタイマ
[bit0] TRG: ソフトウェアトリガ
このビットは , ソフトウェアトリガビットです。"1" の書込みによりソフトウェアト
リガがかかり , リロードレジスタの内容をカウンタへロードして , カウント動作を
開始します。
このビットに対して "0" の書込みは , 意味がありません。読出し値は , 常に "0" です。
このレジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0
のときには , 何も起こりません。
283
第 6 章 16 ビットリロードタイマ
6.2.2
16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2)
16 ビットタイマレジスタ (TMR) は , 16 ビットタイマのカウント値を読み出すこと
ができるレジスタです。初期値は不定です。
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2) のビット構成
図 6.2-3 に , 16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2) のビット構成を示します。
図 6.2-3 16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2) のビット構成
アドレス :00004AH 15
000052H
00005AH R
284
0 初期値
XXXXH
R
R
R
R
R
R
R
第 6 章 16 ビットリロードタイマ
6.2.3
16 ビットリロードレジスタ
(TMRLR:TMRLR0 ∼ TMRLR2)
16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) は , カウントの初期値を
保持するレジスタです。初期値は不定です。
このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) のビット構成
図 6.2-4 に , 16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) のビット構成
を示します。
図 6.2-4 16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼ TMRLR2) のビット構成
アドレス :000048H 15
000050H
000058H W
0 初期値
XXXXH
W
W
W
W
W
W
W
285
第 6 章 16 ビットリロードタイマ
6.3
16 ビットリロードタイマの動作
16 ビットリロードタイマの以下の動作について説明します。
• 内部クロック動作
• アンダフロー動作
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合,カウントソースとしてマシン
クロックの 2, 8, 32 分周のクロックから選択できます。
カウント許可と同時にカウント動作を開始したい場合は,コントロールステータスレジ
スタ (TMCSR) の CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG
ビットによるトリガ入力は , タイマが起動状態のとき (CNTE=1), 動作モードにかかわ
らず常に有効です。
図 6.3-1 に , カウンタの起動および動作を示します。
カウンタスタートのトリガが入力されてから 16 ビットリロードレジスタ (TMRLR) の
データがカウンタへロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時
間がかかります。
図 6.3-1 カウンタの起動および動作
カウントクロック
カウンタ
リロードデータ
データロード
CNTE(レジスタ)
TRG(レジスタ)
T
286
-1
-1
-1
第 6 章 16 ビットリロードタイマ
■ アンダフロー動作
カウンタの値が 0000H から FFFFH になる場合をアンダフローとしています。したがっ
て ,〔リロードレジスタの設定値 +1〕カウントでアンダフローが発生することになり
ます。
アンダフロー発生時にコントロールステータスレジスタ (TMCSR) の RELD ビットが
"1"のとき16ビットリロードレジスタ(TMRLR)の内容をカウンタへロードして,カウン
ト動作を継続します。RELD ビットが "0" のとき , カウンタは FFFFH で停止します。
アンダフローによりコントロールステータスレジスタ (TMCSR) の UF ビットがセット
され , INTE ビットが "1" のとき , 割込み要求を発生します。
図 6.3-2 に , アンダフロー動作のタイミングチャートを示します。
図 6.3-2 アンダフロー動作のタイミングチャート
[RELD=1] の場合
カウントクロック
カウンタ
0000H
リロードデータ
-1
-1
-1
データロード
アンダフローセット
[RELD=0] の場合
カウントクロック
カウンタ
0000H
FFFFH
アンダフローセット
287
第 6 章 16 ビットリロードタイマ
6.4
カウンタの動作状態
カウンタの状態は , コントロールステータスレジスタ (TMCSR) の CNTE ビットと内
部信号の WAIT 信号によって決まります。設定可能な状態として CNTE=0, WAIT=1
の停止状態 (STOP 状態 ), CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ),
CNTE=1, WAIT=0 の動作状態 (RUN 状態 ) があります。
■ カウンタの動作状態
図 6.4-1 に , 各状態の遷移を示します。
図 6.4-1 カウンタの状態遷移
ハードウェアによる状態遷移
リセット
レジスタアクセスによる状態遷移
STOP CNTE=0, WAIT=1
カウンタ:停止時の値を保持
リセット直後は不
定
CNTE= "1"
TRG= "0"
WAIT CNTE=1, WAIT=1
カウンタ:停止時の値を保持
リセット直後ロー
ドするまでは不定
CNTE= "1"
TRG= "1"
RUN CNTE=1, WAIT=0
カウンタ:動作
RELD・UF
TRG= "1"
LOAD
TRG= "1"
CNTE=1, WAIT=0
リロードレジスタの内容を
カウンタへロード
288
RELD・UF
ロード終了
第 6 章 16 ビットリロードタイマ
6.5
16 ビットリロードタイマの使用上の注意
16 ビットリロードタイマを使用する上で , 注意しなければならない事項について説
明します。
■ 使用上の注意事項
• 内部プリスケーラ
内部プリスケーラは , コントロールステータスレジスタ (TMCSR) の bit1 ( タイマ許
可 :CNTE) が "1" に設定されている状態で , トリガ ( ソフトウェアトリガまたは外部
トリガ ) がかけられることにより動作可能となります。
• 割込み要求フラグのセットとクリアのタイミング
割込み要求フラグをセットするタイミングとクリアタイミングが重複した場合に
は , フラグのセットが優先し , クリア動作は無効となります。
• 16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタへの書込みとリロードのタイミングが重なった場合に
は , 旧データがカウンタにロードされます。新データがカウンタにロードされるの
は , 次のリロードのときになります。
• 16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタは , ロードとカウントのタイミングが重なった場合には ,
ロード ( リロード ) 動作の方が優先されます。
289
第 6 章 16 ビットリロードタイマ
290
第7章
PPG タイマ
PPG タイマの概要 , レジスタの構成 / 機能および
PPG タイマの動作について説明します。
7.1 PPG タイマの概要
7.2 PPG タイマのブロックダイヤグラム
7.3 PPG タイマのレジスタ
7.4 PPG 動作
7.5 ワンショット動作
7.6 割込み要因とタイミングチャート
7.7 ゼネラルコントロールレジスタを使った複数チャネル起動
7.8 PPG タイマの使用上の注意
291
第 7 章 PPG タイマ
7.1
PPG タイマの概要
PPG タイマは , 精度の高い PWM 波形を効率良く出力できます。
MB91301 シリーズは , PPG タイマを 4 チャネル内蔵しています。
■ PPG タイマの特長
● 各チャネルは, 16ビットダウンカウンタ,周期設定用バッファ付き16ビットデータレジスタ,
デューティ設定用バッファ付 16 ビットコンペアレジスタ , 端子制御部から構成されます。
● 16 ビットダウンカウンタのカウントクロックは , 4 種類から選択が可能です。
内部クロック φ, φ/4, φ/16, φ/64
● カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化できます。
● チャネルごとに PPG 出力があります。
● レジスタ概要
- 周期設定レジスタ : バッファ付 , リロード用データレジスタ
- デューティ設定レジスタ : バッファ付 , コンペアレジスタ
- バッファからの転送は , カウンタボローで行います。
● 端子制御概要
- デューティ一致で , "1" にセット。( 優先 )
- カウンタボローで , "0" にリセット。
- 出力値固定モードがあり , オール "L" ( または "H") を簡単に出力できます。
- 極性指定も可能です。
● 割込み要求は , 以下の組合せから選択して発生できます。
- 本タイマ起動
- カウンタボロー発生 ( 周期一致 )
- デューティ一致発生
- カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
上記の割込み要求によって , DMA 転送起動が可能です。
● ソフトウェアまたはほかのインターバルタイマで複数チャネルの同時起動が設定できます。
また , 動作中の再起動も設定可能です。
● 検出する要求のレベルとして"立上りエッジ", "立下りエッジ", "両エッジ"から選択できます。
292
第 7 章 PPG タイマ
7.2
PPG タイマのブロックダイヤグラム
図 7.2-1 に PPG タイマの全体ブロックダイヤグラムを , 図 7.2-2 に PPG タイマ 1
チャネル分のブロックダイヤグラムを示します。
■ PPG タイマの全体ブロックダイヤグラム
図 7.2-1 PPG タイマの全体ブロックダイヤグラム
16ビットリロード
タイマ ch.0
TRG入力
PPG0
PPGタイマ ch.0
16ビットリロード
タイマ ch.1
ゼネラル
コントロール
レジスタ2
外部TRG0-3
TRG入力
ゼネラル
コントロール
レジスタ1
(要因選択)
4
PPG1
PPGタイマ ch.1
TRG入力
PPG2
PPGタイマ ch.2
4
TRG入力
PPG3
PPGタイマ ch.3
■ PPG タイマ 1 チャネル分のブロックダイヤグラム
図 7.2-2 PPG タイマ 1 チャネル分のブロックダイヤグラム
PCRS
PDUT
プリスケーラ
1/1
cmp
1/16
ロード
CK
16ビット
ダウンカウンタ
1/64
スタート
1/4
ボロー
PPGマスク
PPG出力
S
周辺系クロック
Q
R
反転ビット
TRG入力
割込 選択
イネーブル
IRQ
エッジ検出
ソフトトリガ
293
第 7 章 PPG タイマ
7.3
PPG タイマのレジスタ
図 7.3-1 に PPG タイマのレジスタ一覧を示します。
■ PPG タイマのレジスタ一覧
図 7.3-1 PPG タイマのレジスタ一覧
bit 15
0
GCN10
ゼネラルコントロールレジスタ 10
GCN20
PTMR0
ch.0 PPG タイマレジスタ
PCSR0
ch.0 PPG 周期設定レジスタ
PDUT0
ch.0 PPG デューティ設定レジスタ
PCNH0
PCNL0
ch.1 PPG タイマレジスタ
PCSR1
ch.1 PPG 周期設定レジスタ
PDUT1
ch.1 PPG デューティ設定レジスタ
PCNL1
ch.1 コントロールステータスレジスタ
PTMR2
ch.2 PPG タイマレジスタ
PCSR2
ch.2 PPG 周期設定レジスタ
PDUT2
ch.2 PPG デューティ設定レジスタ
PCNH2
294
ch.0 コントロールステータスレジスタ
PTMR1
PCNH1
PCNH3
ゼネラルコントロールレジスタ 20
PCNL2
ch.2 コントロールステータスレジスタ
PTMR3
ch.3 PPG タイマレジスタ
PCSR3
ch.3 PPG 周期設定レジスタ
PDUT3
ch.3 PPG デューティ設定レジスタ
PCNL3
ch.3 コントロールステータスレジスタ
第 7 章 PPG タイマ
7.3.1
コントロールステータスレジスタ
(PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0 ∼ PCNL3)
コントロールステータスレジスタ (PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0 ∼
PCNL3) は , PPG タイマの制御およびステータス表示をします。PPG タイマ動作中
に書換え不可能なビットがありますので注意してください。
■ コントロールステータスレジスタ (PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0 ∼
PCNL3) のビット構成
図 7.3-2 に , コントロールステータスレジスタ (PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0
∼ PCNL3) のビット構成を示します。
図 7.3-2 コントロールステータスレジスタ (PCNH:PCNH0 ∼ PCNH3, PCNL:PCNL0 ∼ PCNL3) の
ビット構成
PCNH
bit
15
14
13
12
アドレス :ch.0 000126H CNTE STGR MDSE RTRG
11
CKS1
10
9
CKS0 PGMS
8
初期値
-
00000000B
ch.1 00012EH
R/W
R/W
R/W
R/W
R/W
R/W
R/W
-
ch.2 000136H
○
○
×
×
×
×
○
-
7
6
5
4
3
2
1
0
EGS0
IREN
IRQF
IRS1
IRS0
-
OSEL
←動作中の書換え
ch.3 00013EH
PCNL
bit
アドレス :ch.0 000127H EGS1
ch.1 00012FH
R/W
R/W
R/W
R/W
R/W
R/W
-
R/W
ch.2 000137H
×
×
○
○
×
×
-
×
000000X0B
←動作中の書換え
ch.3 00013FH
■ コントロールステータスレジスタ (PCNH, PCNL) のビット機能
以下に , コントロールステータスレジスタ (PCNH, PCNL) のビット機能を説明します。
[bit15] CNTE: タイマ許可ビット
このビットは , 16 ビットダウンカウンタの動作を許可するビットです。
表 7.3-1 に , タイマ許可の設定を示します。
表 7.3-1 タイマ許可の設定
CNTE
機能
0
停止 ( 初期値 )
1
許可
[bit14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことによりソフトウェアトリガがかかります。
STGR ビットの読出し値は , 常に "0" です。
295
第 7 章 PPG タイマ
[bit13] MDSE: モード選択ビット
このビットは , 連続してパルスを出す PPG 動作か , 単一パルスを出すワンショット
動作かを選択します。
表 7.3-2 に , モード選択の設定を示します。
表 7.3-2 モード選択の設定
MDSE
機能
0
PPG 動作 ( 初期値 )
1
ワンショット動作
[bit12] RTRG: 再起動許可ビット
このビットは , ソフトウェアトリガまたはトリガ入力による再起動を許可するビッ
トです。
表 7.3-3 に , 再起動許可の設定を示します。
表 7.3-3 再起動許可の設定
RTRG
機能
0
再起動禁止 ( 初期値 )
1
再起動許可
[bit11, bit10] CKS1, CKS0: カウンタクロック選択ビット
これらのビットは , 16 ビットダウンカウンタのカウントクロックを選択します。
表 7.3-4 に , カウンタクロック選択の設定を示します。
表 7.3-4 カウンタクロック選択の設定
CKS1
CKS0
0
0
φ ( 初期値 )
0
1
φ/4
1
0
φ/16
1
1
φ/64
φ: 周辺系マシンクロック
296
周期
第 7 章 PPG タイマ
[bit9] PGMS:PPG 出力マスク選択ビット
このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値
にかからわず PPG 出力を "0" または "1" にマスクできます。
表 7.3-5 に , PGMS ビットに "1" 書込み時の PPG 出力を示します。
表 7.3-5 PGMS ビットに "1" 書込み時の PPG 出力
極性
PPG 出力
通常極性
"L" 出力
反転極性
"H" 出力
通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期
設定レジスタとデューティ設定レジスタに同値を書き込めば上記マスク値の反転
を出力できます。
[bit8] (reserved)
このビットは , 未使用ビットです。
[bit7, bit6] EGS1, EGS0: トリガ入力エッジ選択ビット
これらのビットは , ゼネラルコントロールレジスタ 1 で選んだ起動要因の有効エッ
ジを選択します。
どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ
ガは有効になります。
表 7.3-6 に , トリガ入力エッジ選択の設定を示します。
表 7.3-6 トリガ入力エッジ選択の設定
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
機能
[bit5] IREN: 割込み要求許可ビット
このビットは , 割込み要求を許可するビットです。
表 7.3-7 に , 割込み要求の設定を示します。
表 7.3-7 割込み要求の設定
IREN
機能
0
禁止 ( 初期値 )
1
許可
297
第 7 章 PPG タイマ
[bit4] IRQF: 割込み要求フラグ
このビットは , bit5 の IREN ビットが許可されていて bit3, bit2 の IRS1 ビット , IRS0
ビットにて選択した割込み要因が発生すると , このビットがセットされ CPU に割込
み要求を発生します。また , DMA 転送の起動を選択している場合は , DMA 転送が
起動されます。
このビットのクリアは , "0" 書込みと DMAC からのクリア信号で行われます。
"1" を書き込んでもビット値は変化しません。
リードモディファイライト系命令における読出し値は , ビット値にかからわず "1"
です。
[bit3, bit2] IRS1, IRS0: 割込み要因選択ビット
これらのビットは , bit4 の IRQF ビットをセットする要因を選択します。
表 7.3-8 に , 割込み要因選択の設定を示します。
表 7.3-8 割込み要因選択の設定
IRS1
IRS0
0
0
ソフトウェアトリガまたはトリガ入力あり ( 初期値 )
0
1
カウンタボロー発生 ( 周期一致 )
1
0
デューティ一致発生
1
1
カウンタボロー発生 ( 周期一致 ) またはデューティ一致発生
機能
[bit1] (reserved)
このビットは , 未使用ビットです。
[bit0] OSEL:PPG 出力極性指定ビット
このビットは , PPG 出力の極性を設定します。
bit9 の PGMS ビットとの組合せで , 表 7.3-9 のようになります。
表 7.3-9 PPG 出力極性指定組合せ
298
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
機能
第 7 章 PPG タイマ
表 7.3-10 PPG 出力極性指定
極性
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティ一致
カウンタボロー
299
第 7 章 PPG タイマ
7.3.2
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3)
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3) は , 周期を設定するためのバッ
ファ付きレジスタです。バッファからの転送は , カウンタボローで行われます。
■ PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3) のビット構成
図 7.3-3 に , PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3) のビット構成を示します。
図 7.3-3 PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3) のビット構成
bit 15
アドレス :ch.0 000122H
ch.1 00012AH
ch.2 000132H
ch.3 00013AH
0 初期値
XXXXH
W
W
W
W
W
W
W
W
周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタの書込み後 , 必ず
デューティ設定レジスタへの書込み動作を行ってください。
このレジスタは , 16 ビットデータまたは 32 ビットデータでアクセスしてください。
300
第 7 章 PPG タイマ
7.3.3
PPG デューティ設定レジスタ
(PDUT:PDUT0 ∼ PDUT3)
PPG デューティ設定レジスタ (PDUT:PDUT0 ∼ PDUT3) はデューティを設定するた
めの , バッファ付レジスタです。バッファからの転送は , カウンタボローで行われま
す。
■ PPG デューティ設定レジスタ (PDUT:PDUT0 ∼ PDUT3) のビット構成
図 7.3-4 は , PPG デューティ設定レジスタ (PDUT:PDUT0 ∼ PDUT3) のビット構成を示
します。
図 7.3-4 PPG デューティ設定レジスタ (PDUT:PDUT0 ∼ PDUT3) ビット構成
bit 15
アドレス :ch.0 000124H
ch.1 00012CH
ch.2 000134H
ch.3 00013CH
0 初期値
XXXXH
W
W
W
W
W
W
W
W
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR < PDUT となるような値を設定しないでください。PPG 出力は不定となります。
このレジスタは , 16 ビットデータまたは 32 ビットデータでアクセスしてください。
301
第 7 章 PPG タイマ
7.3.4
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3)
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3) は , 16 ビットダウンカウンタの値
を読み出すことができます。
■ PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3) のビット構成
図 7.3-5 に , PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3) のビット構成を示します。
図 7.3-5 PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3) のビット構成
bit 15
アドレス : ch.0 000120H
ch.1 000128H
ch.2 000130H
ch.3 000138H
0 初期値
FFFFH
R
R
R
R
R
R
このレジスタは , 16 ビットデータでアクセスしてください。
302
R
R
第 7 章 PPG タイマ
7.3.5
ゼネラルコントロールレジスタ 10 (GCN10)
ゼネラルコントロールレジスタ 10 (GCN10) は , PPG タイマのトリガ入力の要因を
選択するレジスタです。
■ ゼネラルコントロールレジスタ 10 (GCN10) のビット構成
図 7.3-6 に , ゼネラルコントロールレジスタ 10 (GCN10) のビット構成を示します。
図 7.3-6 ゼネラルコントロールレジスタ 10 (GCN10) のビット構成
bit
15
アドレス 000118H
bit
14
13
12
11
TSEL33 ∼ TSEL30
10
9
8
TSEL23 ∼ TSEL20
00110010B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
000119H
TSEL13 ∼ TSEL10
R/W
R/W
R/W
00010000B
TSEL03 ∼ TSEL00
R/W
R/W
R/W
R/W
初期値
R/W
■ ゼネラルコントロールレジスタ 10 (GCN10) のビット詳細
[bit15 ∼ bit12] TSEL33 ∼ 30:ch.3 トリガ入力選択ビット
これらのビットは , ch.3 トリガ入力選択ビットです。
表 7.3-11 に , ch.3 トリガ入力選択を示します。
表 7.3-11 ch.3 トリガ入力選択
TSEL33 ∼ TSEL30
機能
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット ( 初期値 )
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
X
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
303
第 7 章 PPG タイマ
[bit11 ∼ bit8] TSEL23 ∼ TSEL20:ch.2 トリガ入力選択ビット
これらのビットは , ch.2 トリガ入力選択ビットです。
表 7.3-12 に , ch.2 トリガ入力選択を示します。
表 7.3-12 ch.2 トリガ入力選択
TSEL23 ∼ TSEL20
機能
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット ( 初期値 )
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
X
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
[bit7 ∼ bit4] TSEL13 ∼ TSEL10:ch.1 トリガ入力選択ビット
これらのビットは , ch.1 トリガ入力選択ビットです。
表 7.3-13 に , ch.1 トリガ入力選択を示します。
表 7.3-13 ch.1 トリガ入力選択
TSEL13 ∼ TSEL10
304
機能
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット ( 初期値 )
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
X
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
第 7 章 PPG タイマ
[bit3 ∼ bit0] TSEL03 ∼ TSEL00:ch.0 トリガ入力選択ビット
これらのビットは , ch.0 トリガ入力選択ビットです。
表 7.3-14 に , ch.0 トリガ入力選択を示します。
表 7.3-14 ch.0 トリガ入力選択
TSEL00 ∼ TSEL03
機能
0
0
0
0
GCN2 の EN0 ビット ( 初期値 )
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
X
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
305
第 7 章 PPG タイマ
7.3.6
ゼネラルコントロールレジスタ 20 (GCN20)
ゼネラルコントロールレジスタ 20 (GCN20) は , ソフトウェアによって , 起動トリガ
を発生させるためのレジスタです。
■ ゼネラルコントロールレジスタ 20 (GCN20) のビット構成
図 7.3-7 に , ゼネラルコントロールレジスタ 20 (GCN20) のビット構成を示します。
図 7.3-7 ゼネラルコントロールレジスタ 20 (GCN20) のビット構成
bit
7
6
5
4
3
2
1
0
初期値
アドレス 00011BH
-
-
-
-
EN3
EN2
EN1
EN0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ゼネラルコントロールレジスタ 10 (GCN10) でこのレジスタの EN ビットを選択した場
合 , レジスタの値がそのまま PPG タイマのトリガ入力に伝わります。
コントロールステータスレジスタ (PCNH, PCNL) の EGS1, EGS0 ビットで選択したエッ
ジをソフトウェアで発生させることにより , 複数チャネルの PPG タイマを同時に起動
できます。
このレジスタの bit7 ∼ bit4 には , 必ず "0" を書き込んでください。
アドレス 00011AH の bit7 ∼ bit0 には , 必ず "0" を書き込んでください。
306
第 7 章 PPG タイマ
PPG 動作
7.4
PPG 動作では , 起動トリガの検出時より連続してパルスを出力できます。出力パル
スの周期は , PCSR 値を変えることにより制御でき , デューティ比は , PDUT 値を変
えることにより制御できます。
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
■ PPG 動作
● 再起動禁止の場合
図 7.4-1に,トリガの再起動を禁止した場合のPPG動作のタイミングチャートを示します。
図 7.4-1 PPG 動作のタイミングチャート ( トリガ再起動禁止 )
立上りエッジ検出
トリガは,無視されます。
起動
トリガ
m
n
0
PPG
①
②
① =T (n+1)ms
② =T (m+1)ms
T:カウントクロック周期
m:PCSR値
n:PDUT値
● 再起動許可の場合
図 7.4-2に,トリガの再起動を許可した場合のPPG動作のタイミングチャートを示します。
図 7.4-2 PPG 動作のタイミングチャート ( トリガ再起動許可 )
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
0
PPG
①
②
① =T (n+1)ms
② =T (m+1)ms
T:カウントクロック周期
m:PCSR値
n:PDUT値
307
第 7 章 PPG タイマ
ワンショット動作
7.5
ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。
再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。
■ ワンショット動作
● 再起動禁止の場合
図 7.5-1 に , トリガの再起動を禁止した場合のワンショット動作のタイミングチャート
を示します。
図 7.5-1 ワンショット動作のタイミングチャート ( トリガ再起動禁止 )
立上りエッジ検出
トリガは,無視されます。
起動
トリガ
m
n
0
PPG
①
②
① =T (n+1)ms
② =T (m+1)ms
T:カウントクロック周期
m:PCSR値
n:PDUT値
● 再起動許可の場合
図 7.5-2 に , トリガの再起動を許可した場合のワンショット動作のタイミングチャート
を示します
図 7.5-2 ワンショット動作のタイミングチャート ( トリガ再起動許可 )
立上りエッジ検出
トリガにより再起動します。
トリガ
m
n
0
PPG
①
②
① =T (n+1)ms
② =T (m+1)ms
308
T:カウントクロック周期
m:PCSR値
n:PDUT値
第 7 章 PPG タイマ
7.6
割込み要因とタイミングチャート
割込み要因とタイミングチャートについて示します。
■ 割込み要因とタイミングチャート (PPG 出力 : 通常極性 )
図 7.6-1 に , PPG タイマの割込み要因とタイミングチャートを示します。
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク
ロック周期 ) を必要とします。
図 7.6-1 PPG タイマの割込み要因とタイミングチャート
起動トリガ
最大2.5T
ロード
クロック
カウント値
X
0003
0002
0001
0000
0003
PPG
割込み
有効エッジ
デューティ一致
カウンタボロー
309
第 7 章 PPG タイマ
■ PPG 出力オール "L" またはオール "H" の出力方法例
図 7.6-2 に , PPG 出力をオール "L" に , 図 7.6-3 に , オール "H" にする出力方法を示します。
図 7.6-2 PPG 出力をオール "L" レベルにする例
PWM
デューティ値を
小さくして
いく
ボローによる割込みでPGMS(マスクビット)に
"1"を書き込みます。
また,ボローによる割込みでPGMS(マスクビット)に
"0"を書き込めば,ヒゲを出力することなく
PWM波形を出力できます。
図 7.6-3 PPG 出力をオール "H" レベルにする例
PWM
デューティ値を
大きくして
いく
コンペア一致による割込みでデューティ設定
レジスタに,周期設定レジスタ値と同じ値を
書き込みます。
310
第 7 章 PPG タイマ
7.7
ゼネラルコントロールレジスタを使った複数チャネル
起動
ゼネラルコントロールレジスタ 10 (GCN10) で起動トリガを選択することにより , 複
数チャネルを同時に起動できます。
GCN20 を使ったソフトウェア起動の例を示します。
■ ゼネラルコントロールレジスタを使った複数チャネル起動
[ 設定手順 ]
1) PCSR に周期を設定します。
2) PDUT にデューティを設定します。
<注意事項>
必ず PCSR → PDUT の順で書込みを行ってください。
3) GCN10 で , 起動するチャネルのトリガ入力要因を決めます。
ここでは , GCN20 を使うので , 初期設定のままとします。
(ch.0 → EN0, ch.1 → EN1, ch.2 → EN2, ch.3 → EN3)
4) 起動するチャネルのコントロールステータスレジスタを設定します。
- CNTE:1
→ タイマ動作を許可
- STGR:0
→ GCN20 で起動するので , ここでは起動しない
- MDSE:0
→ PPG 動作
- RTRG:0
→ 再起動禁止とする
- CSK1,0:00
→ カウントクロック =φ
- PGMS:0
→ 出力マスクしない
- bit8:0
→ 未使用ビット , 何を設定しても構いません
- EGS1,0:01
→ 立上りエッジ起動
- IREN:1
→ 割込み要求許可
- IRQF:0
→ 割込み要因をクリア
- IRS1,0:01
→ カウンタボロー発生で割込み要求発生
- PPE0,1,2,3:1 → PPG 出力許可 ( ポートファンクションレジスタの設定 )
- OSEL:0
→ 通常極性
5) GCN20 にデータを書き込むことで , 起動トリガを発生させます。
上記の設定で ch.0 と ch.1 を同時に起動させる場合 , GCN20 の EN0, EN1 に "1" を書込
みます。立上りエッジが発生し PPG0, PPG1 からパルスが出力されます。
311
第 7 章 PPG タイマ
■ 16 ビットリロードタイマを使用して起動する場合
16 ビットリロードタイマを使用して起動する場合は , 3) の GCN10 で要因として 16 ビッ
トリロードタイマを選択し , 5) で GCN20 の代わりに 16 ビットリロードタイマを起動
します。
また , コントロールステータスレジスタの設定で ,
- RTRG:1
→ 再起動許可とする
- EGS1,0:11
→ 両エッジ起動
とし , 16 ビットリロードタイマ出力をトグル出力設定にすることにより , 一定時間ごと
に PPG タイマを再起動することも可能です。
312
第 7 章 PPG タイマ
7.8
PPG タイマの使用上の注意
PPG タイマを使用する上で , 注意しなければならない事項について説明します。
■ 使用上の注意事項
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は無効となります。
• PPG コントロールレジスタの bit11, bit10 ( カウントロック選択ビット CKS1 および
CKS0) は , 書込み後すぐに反映されるので , 設定変更はカウント停止状態で行って
ください。
• PPG ダウンカウンタ (PPGC:16 ビットダウンカウンタ ) は , ロードとカウントのタイ
ミングが重複した場合は , ロード動作の方を優先します。
313
第 7 章 PPG タイマ
314
第8章
U-TIMER
U-TIMER の概要 , レジスタの構成 , 機能および動
作について説明します。
8.1 U-TIMER の概要
8.2 U-TIMER のレジスタ
8.3 U-TIMER の動作
315
第 8 章 U-TIMER
8.1
U-TIMER の概要
U-TIMER (16-bit timer for UART baud rate generation) の概要とブロックダイヤグ
ラムを示します。
■ U-TIMER の概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。
また , カウントアンダフローで割込みを発生するので , インターバルタイマとしても使
用できます。
MB91301 シリーズは , U-TIMER を 3 チャネル内蔵しています。インターバルタイマと
して使用する場合 , 2 組の U-TIMER をカスケードして使用でき , 最大 232 × φ のイン
ターバルをカウントできます。カスケード接続できる組合せは , ch.0 と ch.1 および ch.0
と ch.2 のみです。
■ ブロックダイヤグラム
図 8.1-1 に , U-TIMER のブロックダイヤグラムを示します。
図 8.1-1 U-TIMER のブロックダイヤグラム
0
15
UTIMR(リロードレジスタ)
ロード
15
0
UTIM(タイマ)
クロック
アンダフロー
(周辺系クロック)
CLKP
MUX
ch.0
のみ
U-TIMER1 アンダフロー
316
制御部
f.f.
UARTへ
第 8 章 U-TIMER
8.2
U-TIMER のレジスタ
U-TIMER で使用するレジスタの構成および機能について説明します。
■ U-TIMER のレジスタ一覧
図 8.2-1 に , U-TIMER のレジスタ一覧を示します。
図 8.2-1 U-TIMER のレジスタ一覧
bit 15
8 7
0
UTIM
UTIMR
UTIMC
■ U-TIMER (UTIM:UTIM0 ∼ UTIM2)
図 8.2-2 に , U-TIMER (UTIM:UTIM0 ∼ UTIM2) のビット構成を示します。
図 8.2-2 U-TIMER (UTIM:UTIM0 ∼ UTIM2) のビット構成
bit
アドレス
000064H (ch.0)
00006CH (ch.1)
000074H (ch.2)
15
14
2
1
0
初期値
00000000 00000000B
b15
b14
b2
b1
b0
R
R
R
R
R
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
■ リロードレジスタ (UTIMR:UTIMR0 ∼ UTIMR2)
図 8.2-3 に , リロードレジスタ (UTIMR:UTIMR0 ∼ UTIMR2) のビット構成を示します。
図 8.2-3 リロードレジスタ (UTIMR:UTIMR0 ∼ UTIMR2) のビット構成
bit
アドレス
000064H (ch.0)
00006CH (ch.1)
000074H (ch.2)
15
14
2
1
0
初期値
b15
b14
b2
b1
b0
00000000 00000000B
W
W
W
W
W
UTIMR:UTIMR0 ∼ UTIMR2 は , UTIM がアンダフローしたときに UTIM にリロードさ
れる値を格納するレジスタです。
16 ビット転送命令でアクセスしてください。
<注意事項>
UART のモード 2(CLK 同期モード ) で U-TIMER をボーレートとして使用する場合 , UTIMR
に "0" を設定することは禁止です。
317
第 8 章 U-TIMER
■ U-TIMER コントロールレジスタ (UTIMC:UTIMC0 ∼ UTIMC2)
図 8.2-4 に , U-TIMER コントロールレジスタ (UTIMC:UTIMC0 ∼ UTIMC2) のビット構
成を示します。
図 8.2-4 U-TIMER コントロールレジスタ (UTIMC:UTIMC0 ∼ UTIMC2) のビット構成
bit
アドレス
000067H (ch.0)
00006FH (ch.1)
000077H (ch.2)
7
6
5
4
UCC1
-
-
UTIE
R/W
-
-
R/W
3
2
1
UNDR CLKS
R/W
UTST
R/W
R/W
0
初期値
UTCR 0--00001B
R/W
UTIMC:UTIMC0 ∼ UTIMC2 は , U-TIMER の動作を制御します。
バイト転送命令でアクセスしてください。
■ U-TIMER コントロールレジスタ (UTIMC) のビット詳細
以下に , U-TIMER コントロールレジスタ (UTIMC) の各ビットの機能を説明します。
[bit7] UCC1 (U-timer Count Control 1) : カウント方法の制御
このビットは , U-TIMER のカウント方法を制御します。
表 8.2-1 に , カウント方法の制御を示します。
表 8.2-1 カウント方法の制御
UCC1
機能
0
通常動作 α=2n+2 ( 初期値 )
1
+1 モード α=2n+3
n:UTIMR の設定値
α:UART に対する出力クロックの周期
U-TIMER は , UART に対して通常の 2 (n+1) 周期のクロックのほかに奇数分周を設
定できます。
UCC1 を "1" に設定すると , 2n+3 の周期を発生します。
設定例 : 1.UTIMR= 5, UCC1=0 → 発生周期 =2n+2= 12 サイクル
2.UTIMR=25, UCC1=1 → 発生周期 =2n+3= 53 サイクル
3.UTIMR=60, UCC1=0 → 発生周期 =2n+2=122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 の値を "0" に設定し
てください。
[bit6, bit5] (reserved)
このビットは , 予約ビットです。
318
第 8 章 U-TIMER
[bit4] UTIE (U-TIMER Interrupt Enable) : アンダフローによる割込み許可
このビットは , U-TIMER のアンダフローによる割込み許可ビットです。
表 8.2-2 に , アンダフローによる割込み許可を示します。
表 8.2-2 アンダフローによる割込み許可
UTIE
機能
0
割込み禁止 ( 初期値 )
1
割込み許可
[bit3] UNDR (UNDeR flow flag) : アンダフローの発生を示す
このビットは , アンダフローが発生したことを示すフラグです。
bit4 の UTIE ビットが "1" のときに UNDR ビットがセットされると , アンダフロー
割込みが発生します。UNDR ビットは , リセットまたは "0" 書込みによりクリアさ
れます。
リードモディファイライト系命令の読出し時は , 常に "1" が読み出されます。
また , UNDR ビットに対する "1" 書込みは無効です。
[bit2] CLKS (CLocK Select) : カスケード指定
このビットは , U-TIMER の ch.0 と ch.1 のカスケード指定ビットです。
表 8.2-3 は , カスケード指定を示します。
表 8.2-3 カスケード指定
CLKS
機能
0
クロックソースは周辺系クロック (φ) ( 初期値 )
1
U-TIMER ソースクロックタイミングとして , ch.0 のアンダフロー信
号を使用 *
*: ブロックダイヤグラムの f.f.
CLKS は ch.1, ch.2 でのみ有効です。ch.0 では常に "0" にしてください。
φ( 周辺系クロック =CLKP) は , ギアの設定により周期が変わります。
[bit1] UTST (U-Timer STart) : 動作許可
このビットは , U-TIMER の動作許可ビットです。
表 8.2-4 に , 動作許可を示します。
表 8.2-4 動作許可
UTST
機能
0
停止。動作中でも "0" の書込みで停止します。( 初期値 )
1
動作。動作中に "1" を書き込んでも動作を続行します。
[bit0] UTCR (U-Timer CleaR)
UTCR に "0" を書き込むと , U-TIMER は 0000H にクリアされます (f.f. も "0" にクリア )。
このビットは , 常に "1" が読み出されます。
319
第 8 章 U-TIMER
■ U-TIMER コントロールレジスタ (UTIMC) 使用上の注意事項
• ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリ
ロードします。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートす
ると , カウンタを "0" にクリアして , 直後のカウントダウンでアンダフローが発生し
ます。
• 動作中にクリアビット UTCR をアサートすると , カウンタも "0" にクリアされます。
このため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART やカス
ケードモードの上位側の U-TIMER が誤動作する可能性があります。出力クロック
を使用している場合には , 動作中にクリアビットによってクリアしないでください。
• カスケードモードで , 下位側の UTIMR ( リロードレジスタ ) に "0" または "1" をセッ
トすると正しくカウントされません。
• U-TIMER コントロールレジスタの bit1 (U-TIMER スタートビット :UTST) および bit0 (UTIMER のクリアビット :UTCR) をタイマ停止状態で同時にアサートすると , クリアした
後のカウンタロードのタイミングで同レジスタの bit3 ( アンダフローフラグ :UNDR) が
セットされます。また , 内部ボーレートクロックは , 同タイミングで "H" レベルになり
ます。
• 割込み要求セットタイミングとクリアタイミングが重なった場合には , フラグセッ
トが優先され , クリア動作は無効となります。
• ch.0 をカスケードモードで使用しない場合やこのモジュールを単にタイマ機能とし
て使用する場合は , U-TIMER コントロールレジスタの bit2 ( 基準クロック選択ビッ
ト :CLKS) には常に "0" を書き込んでください。また , CLKS ビットの設定変更は ,
このモジュールが動作停止の状態で行ってください。
• U-TIMER リロードレジスタへの書込みとリロードのタイミングが重なった場合には ,
旧データがカウンタにロードされます。新データがカウンタにロードされるのは ,
次のリロードのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重なった場合には , タイ
マクリアが最優先されます。
320
第 8 章 U-TIMER
8.3
U-TIMER の動作
U-TIMER のボーレートの計算と , カスケードモードのタイミングを示します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1, U-TIMER2 →
UART2) のアンダフローフリップフロップ ( ブロックダイヤグラム中の f.f.) をボーレー
ト用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 16 分周して使用します。
• UCC1=0 の場合
φ
bps = ⎯⎯⎯⎯⎯⎯⎯⎯
(2n+2) × 16
n: UTIMR ( リロード値 )
φ: 周辺系マシンクロック周波数
• UCC1=1 の場合
φ
bps = ⎯⎯⎯⎯⎯⎯⎯⎯
(2n+3) × 16
( ギアにより変動 )
最大 bps 34MHz 531250bps, 68MHz 1062500bps
● CLK 同期モード
• UCC1=0 の場合
φ
bps = ⎯⎯⎯⎯⎯⎯⎯⎯
(2n+2)
n: UTIMR ( リロード値 )
φ: 周辺系マシンクロック周波数
• UCC1=1 の場合
φ
bps = ⎯⎯⎯⎯⎯⎯⎯⎯
(2n+3)
( ギアにより変動 )
最大 bps 34MHz 8500000bps, 68MHz 17000000bps
<注意事項>
UART のモード 2(CLK 同期モード ) で U-TIMER をボーレートとして使用する場合 , UTIMR
に "0" を設定することは禁止です。
321
第 8 章 U-TIMER
■ カスケードモード
U-TIMER ch.0 と ch.1 は , カスケードモードで使用できます。
図 8.3-1 に , UTIMR ch.0 を "0100H" に , UTIMR ch.1 を "0002H" に設定した場合のタイミ
ングチャート例を示します。
図 8.3-1 カスケードモードのタイミングチャート
φ
UTIM ch.1
01 00 02 01 00 02 01 00 02 01 00 02 01 00 02 01 00 02 01 00
f.f. ch.1
UTIM ch.0
f.f. ch.0
322
0002H
0001H
0000H
0100H
第9章
外部割込み /NMI 制御部
外部割込み /NMI 制御部の概要 , レジスタの構成 /
機能および動作について説明します。
9.1 外部割込み /NMI 制御部の概要
9.2 外部割込み /NMI 制御部のレジスタ
9.3 外部割込み /NMI 制御部の動作
323
第 9 章 外部割込み /NMI 制御部
外部割込み /NMI 制御部の概要
9.1
外部割込み制御部は , NMI および INT0 ∼ INT7 に入力される外部割込み要求の制御
を行うブロックです。
検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下りエッジ " から選
択できます (NMI 以外 )。
■ 外部割込み /NMI 制御部のブロックダイヤグラム
図 9.1-1 に , 外部割込み /NMI 制御部のブロックダイヤグラムを示します。
図 9.1-1 外部割込み /NMI 制御部のブロックダイヤグラム
R-bus
8
割込み
要求
9
8
8
324
割込み許可レジスタ
ゲート
要因 F/F
割込み要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
9
INT0~INT7
NMI
第 9 章 外部割込み /NMI 制御部
外部割込み /NMI 制御部のレジスタ
9.2
外部割込み /NMI 制御部で使用するレジスタの構成および機能について説明します。
■ 外部割込み /NMI 制御部のレジスタ一覧
図 9.2-1 に , 外部割込み /NMI 制御部のレジスタ一覧を示します。
図 9.2-1 外部割込み /NMI 制御部のレジスタ一覧
bit
bit
bit
bit
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
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
外部割込み許可レジスタ (ENIR)
外部割込み要因レジスタ (EIRR)
外部割込み要求レベル設定レジスタ
(ELVR)
325
第 9 章 外部割込み /NMI 制御部
割込み許可レジスタ (ENIR)
9.2.1
割込み許可レジスタ (ENIR) のビット構成と機能を説明します。
■ 割込み許可レジスタ (ENIR:ENable Interrupt request Register)
図 9.2-2 に , 割込み許可レジスタ (ENIR) のビット構成を示します。
図 9.2-2 割込み許可レジスタ (ENIR) のビット構成
bit
7
6
5
4
3
2
1
0
初期値
00000000B
アドレス 000041H EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
割込み許可レジスタ (ENIR) は , 外部割込み要求出力のマスク制御を行います。このレ
ジスタの "1" が書き込まれたビットに対応する割込み要求出力は許可され (INT0 の許
可を EN0 が制御 ), 割込みコントローラに対して割込み要求が出力されます。"0" が書
き込まれたビットに対応する端子は割込み要因を保持しますが,割込みコントローラに
対しては要求を発生しません。
<注意事項>
NMI に対するマスクビットは , 存在しません。
326
第 9 章 外部割込み /NMI 制御部
外部割込み要因レジスタ (EIRR)
9.2.2
外部割込み要因レジスタ (EIRR) のビット構成と機能を説明します。
■ 外部割込み要因レジスタ (EIRR:External Interrupt Request Register)
図 9.2-3 に , 外部割込み要因レジスタ (EIRR) のビット構成を示します。
図 9.2-3 外部割込み要因レジスタ (EIRR) のビット構成
bit
15
14
13
12
11
10
9
8
初期値
00000000B
アドレス 000040H ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
外部割込み要因レジスタ (EIRR) は , 読出し時には対応する外部割込み要求があること
を示し , 書込み時にはこの要求を示すフリップフロップ (NMI フラグ ) の内容をクリア
するレジスタです。外部割込み要因レジスタ (EIRR) を読み出したときに "1" であった
場合 , そのビットに対応する端子に外部割込み要求があることを示します。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。"1" の書込みは無効です。
リードモディファイライト系命令の読出し時には , "1" が読み出されます。
<注意事項>
NMI フラグは , ユーザから読出し / 書込みできません。
NMI フラグについては ,「9.3 外部割込み /NMI 制御部の動作」「■ NMI」を参照してくだ
さい。
ストップ状態において INT0 ∼ INT7 に "H" レベルが入力されたとき , それぞれ対応した
ER0 ∼ ER7 ビットが "1" になります。
327
第 9 章 外部割込み /NMI 制御部
外部割込み要求レベル設定レジスタ (ELVR)
9.2.3
外部割込み要求レベル設定レジスタ (ELVR) のビット構成と機能を説明します。
■ 外部割込み要求レベル設定レジスタ (ELVR:External LeVel Register)
図 9.2-4 に , 外部割込み要求レベル設定レジスタ (ELVR) のビット構成を示します。
図 9.2-4 外部割込み要求レベル設定レジスタ (ELVR) のビット構成
bit
アドレス 000042H
bit
アドレス 000043H
15
14
13
12
11
10
9
8
初期値
00000000B
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
初期値
00000000B
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
外部割込み要求レベル設定レジスタ (ELVR) は , 要求検出の選択を行うレジスタです。
INT0 ∼ INT7 に 2 ビットずつが割り当てられていています。
表 9.2-1 に , 設定内容を示します。
要求入力がレベルの場合 , 外部割込み要因レジスタ (EIRR) の各ビットをクリアしても
入力がアクティブレベルならば , 該当するビットは再びセットされます。
表 9.2-1 LBn, LAn ビットの設定内容
LBn
LAn
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動作
<注意事項>
NMI は常にその立下りエッジが検出されます ( ストップ時を除く )。
ストップ時は , "L" レベル検出となります。
INT はストップ時 , "H" レベル検出にしてください。
328
第 9 章 外部割込み /NMI 制御部
9.3
外部割込み /NMI 制御部の動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に外部割込み要求レベル設定レ
ジスタ (ELVR) で設定された要求が入力されると , このモジュールは割込みコント
ローラに対して割込み要求信号を発生します。
■ 外部割込みの動作
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果,このリソース
からの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。
図 9.3-1 に , 外部割込みの動作を示します。
図 9.3-1 外部割込みの動作
外部割込み
リソース要求
割込みコントローラ
ICR y y
ELVR
EIRR
CPU
IL
CMP
ENIR
ICR x x
CMP
ILM
要因
■ スタンバイからの復帰
ストップ状態からの復帰に外部割込みを使う場合は,外部割込み要求レベル設定レジス
タ (ELVR) の設定にかかわらず入力要求は "H" レベル要求となります。
<注意事項>
INT0 ∼ INT7 端子においてストップ時には , プルアップを切ってください。
■ 外部割込みの動作手順
外部割込み部の内部に存在するレジスタの設定は , 次の手順で行ってください。
1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポート
に設定する。
2) 許可レジスタの対象となるビットをディセーブル状態にする。
3) 要求レベル設定レジスタの対象となるビットを設定する。
4) 要因レジスタの対象となるビットをクリアする。
5) 許可レジスタの対象となるビットをイネーブル状態にする。
ただし , 4) と 5) は , 16 ビットデータによる同時書込みができます。
このモジュール内のレジスタを設定するときには,必ず許可レジスタをディセーブル状
態に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前
に必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込
み許可状態時に誤って割込み要因が起こってしまうことを避けるためです。
329
第 9 章 外部割込み /NMI 制御部
■ 外部割込み要求レベル
要求レベルがエッジ要求の場合 , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要とします。
また , 割込み入力端子がアクティブレベルを保持し続けている限りは , 要因レジスタを
クリアしても , 割込みコントローラへの割込み要求は発生し続けます。
要求入力レベルがレベル設定の場合,外部から要求入力が入ってその後取り下げられて
も , 内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブの
ままです。
割込みコントローラへの要求を取り下げるには,要因レジスタをクリアする必要があり
ます。
図 9.3-2 にレベル設定時の要因保持回路のクリアを , 図 9.3-3 に割込み許可時の割込み
要因と割込みコントローラへの割込み要求を示します。
図 9.3-2 レベル設定時の要因保持回路のクリア
割込み入力
レベル検出
要因F/F
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 9.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み入力
割込みコントローラ
への割込み要求
330
"H"レベル
要因 F/Fのクリアによってインアクティブとなる
第 9 章 外部割込み /NMI 制御部
■ NMI
NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは不可能です。
例外として , NMI を使用前に ILM を設定しないで NMI を起動すると , NMI 要因は検出
されますが , CPU は NMI 要求を受付けません。このとき , ILM を NMI が受付けられる
レベルに設定されるまで , NMI 要因は保持され続けます。このため , リセット後 , ILM
を 16 以上の値に設定してから , NMI を使用してください。
また , NMI の内部要因フラグは , CPU からアクセスできませんので , リセット後の NMI
端子は "H" レベルを保持してください。
NMI の受付けは , 以下の条件で行われます。
• 通常時
: 立下りエッジ
• STOP 時 : "L" レベル
NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力さ
れるとストップ状態が解除され , 発振安定待ち時間が取られます。ストップ状態解除後
に NMI 処理を行いたい場合は , NMI 端子を "L" レベルのままにして , NMI 処理ルーチ
ン内で "H" レベルに戻すようにしてください。
NMI 要求検出部には NMI フラグがあり , NMI 要求によりセットされて , NMI 自身の割
込みの受付けまたはリセットでのみクリアされます。なお , このビットは読出し / 書込
みできません。
図 9.3-4 に , NMI 要求検出部を示します。
図 9.3-4 NMI 要求検出部
(NMIフラグ)
NMI要求
Q SX
(ストップ解除)
R
0
立下り
エッジ検出
NMI
1
STOP
クリア (RST,割込み確認)
331
第 9 章 外部割込み /NMI 制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子への最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない期
間が存在します ( 図 9.3-5 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロック
に同期させるため , クロックが安定していない期間内は , その割込み要因を保持できな
いためです。
STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み
信号を入力してください。
図 9.3-5 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
"H"
レギュレータ
"L"
内部動作(RUN)
命令実行(run)
X0
内部クロック
割込みフラグクリア
INTR0
INTE0
"1"(STOPモードに遷移前にイネーブルへ設定)
INTR1
INTE1
"1イネーブル"(STOPモードに遷移前に設定)
(a)STOP
(b) レギュレータ安定待ち時間
(d) 発振安定待ち時間
(c) 振動子の発振時間
332
(e)RUN
第 9 章 外部割込み /NMI 制御部
■ STOP 状態からの復帰動作について
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行なわれます。
● STOP 遷移前の処理
外部割込み経路の設定
デバイスが STOP 状態に遷移する前に STOP 状態を解除するための外部割込み入力
経路を設定しておく必要があります。これは PFR レジスタ (Port Function Register)
で設定を行います。通常状態 (STOP 以外の状態 ) では割込みの入力経路は確保され
ていますので意識する必要はありません。しかし STOP 状態では PFR レジスタ値に
より入力パスが制御されています。
STOP 解除に使用する端子名
設定するレジスタとビット
INT7/SCK2/PG7
PDRG の bit7 を "0" としてください。
INT6/SDT2/PG6
PDRG の bit6 を "0" としてください。
INT5/SIN2/PG5
PDRG の bit5 を "0" としてください。
INT4/ATG/PG4/FRCK
PDRG の bit4 を "0" としてください。
INT3/PG3/ICU3
PDRG の bit3 を "0" としてください。
INT2/PG2/ICU2
PDRG の bit2 を "0" としてください。
INT1/PG1/ICU1
PDRG の bit1 を "0" としてください。
INT0/PG0/ICU0
PDRG の bit0 を "0" としてください。
• 外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み信号が有効になると , 直ちに内部 STOP 信号を立ち
下げる動作が行われます。同時に外部割込み回路ではほかのレベル割込み入力の同
期化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータへ切
換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前に内部動作
が開始すると動作が不安定なため内部出力電圧の安定待ち時間を確保しています。こ
の期間はクロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間が終了後 , クロックの発振が開始されます。振動子の発振時
間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間がとられます。発振安定待ち
時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安定待ち時
間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が開始されると
ともに , STOP からの復帰要因以外の外部割込み要因が受付け可能になります。
333
第 9 章 外部割込み /NMI 制御部
334
第 10 章
遅延割込みモジュール
遅延割込みモジュールの機能と動作について説明
します。
10.1 遅延割込みモジュールの概要
10.2 遅延割込みモジュールのレジスタ
10.3 遅延割込みモジュールの動作
335
第 10 章 遅延割込みモジュール
10.1
遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。このモジュールを使用することで , ソフトウェアで CPU に対して割込み要求の
発生 / 取消しを行うことができます。
■ 遅延割込みモジュールのブロックダイヤグラム
図 10.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。
図 10.1-1 遅延割込みモジュールのブロックダイヤグラム
R-bus
割込み要求
336
DLYI
第 10 章 遅延割込みモジュール
遅延割込みモジュールのレジスタ
10.2
遅延割込みモジュールで使用するレジスタの構成および機能について説明します。
■ 遅延割込みモジュールのレジスタ一覧
遅延割込みモジュールには , 遅延割込み制御レジスタ (DICR) があります。
図 10.2-1 に , 遅延割込み制御レジスタ (DICR) の構成を示します。
図 10.2-1 遅延割込み制御レジスタ (DICR) の構成
bit
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
DLYI
遅延割込み制御レジスタ
(DICR)
■ 遅延割込み制御レジスタ (DICR)
遅延割込み制御レジスタ (DICR:Delayed Interrupt Control Register) は , 遅延割込みを制御
するレジスタです。
図 10.2-2 に , 遅延割込み制御レジスタ (DICR) のビット構成を示します。
図 10.2-2 遅延割込み制御レジスタ (DICR) のビット構成
bit
7
6
5
4
3
2
1
0
初期値
アドレス 00000044H
-
-
-
-
-
-
-
DLYI
-------0B
R/W
以下に , 遅延割込み制御レジスタ (DICR) のビット機能を説明します。
[bit0] DLYI: 該当する割込み要因の発生 / 解除を制御
このビットは , 該当する割込み要因の発生 / 解除を制御します。
表 10.2-1 に , 該当する割込み要因の発生 / 解除の機能を示します。
表 10.2-1 該当する割込み要因の発生 / 解除の機能
DLYI
機能
0
遅延割込み要因の解除 / 要求なし ( 初期値 )
1
遅延割込み要因の発生
337
第 10 章 遅延割込みモジュール
10.3
遅延割込みモジュールの動作
遅延割込みは , タスク切換え用の割込みを発生するものです。この機能を使用するこ
とにより , ソフトウェアで CPU に対して割込み要求の発生 / 取消しを行うことがで
きます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
MB91301 シリーズでは , 遅延割込みを割込み番号 63 (3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことによって , 遅延割込み要因が発生します。また , "0" を
書き込むことによって , 遅延割込み要因を解除します。
このビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルー
チンの中でこのビットをクリアし , 併せてタスクの切換えを行うようにしてください。
338
第 11 章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 /
機能 , 割込みコントローラの動作およびホールド
リクエスト取下げ要求機能の使用例について説明
します。
11.1 割込みコントローラの概要
11.2 割込みコントローラのレジスタ
11.3 割込みコントローラの動作
11.4 ホールドリクエスト取下げ要求機能 (HRCR) の使用例
339
第 11 章 割込みコントローラ
11.1
割込みコントローラの概要
割込みコントローラは , 割込み受付 / 調停処理を行います。
■ 割込みコントローラのハードウェア構成
割込みコントローラは , 以下のものから構成されます。
• 割込み制御レジスタ (ICR)
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
割込みコントローラには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
■ ブロックダイヤグラム
図 11.1-1 に , 割込みコントローラのブロックダイヤグラムを示します。
図 11.1-1 割込みコントローラのブロックダイヤグラム
UNMI
WAKEUP (LEVEL≠11111Bのとき"1")
優先度判定
NMI
処理
5
/
LEVEL4~LEVEL0
HLDREQ
取下げ
要求
LEVEL,
VECTOR
発生
LEVEL判定
RI00
・
・
・
RI47
(DLYIRQ)
ICR00
・
・
・
ICR47
VECTOR
判定
6
/
R-bus
340
MHALTI
VCT5~VCT0
第 11 章 割込みコントローラ
11.2
割込みコントローラのレジスタ
割込みコントローラで使用するレジスタの構成および機能について説明します。
■ 割込みコントローラのレジスタ一覧
図 11.2-1 に , 割込みコントローラのレジスタ一覧を示します。
図 11.2-1 割込みコントローラのレジスタ一覧
bit
7
6
5
4
3
2
1
0
アドレス
000440H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
アドレス
000441H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
アドレス
000442H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
アドレス
000443H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
アドレス
000444H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
アドレス
000445H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
アドレス
000446H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
アドレス
000447H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
アドレス
000448H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス
000449H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
アドレス
00044AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス
00044BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
アドレス
00044CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
アドレス
00044DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
アドレス
00044EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
アドレス
00044FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
アドレス
000450H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
アドレス
000451H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
アドレス
000452H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
アドレス
000453H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
アドレス
000454H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR20
アドレス
000455H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
アドレス
000456H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
アドレス
000457H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
アドレス
000458H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
アドレス
000459H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
アドレス
00045AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
アドレス
00045BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
アドレス
00045CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
アドレス
00045DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
アドレス
00045EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
アドレス
00045FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
( 続く )
341
第 11 章 割込みコントローラ
( 続き )
bit
342
7
6
5
4
3
2
1
0
アドレス
000460H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
アドレス
000461H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
アドレス
000462H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
アドレス
000463H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
アドレス
000464H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
アドレス
000465H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
アドレス
000466H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
アドレス
000467H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
アドレス
000468H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
アドレス
000469H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
アドレス
00046AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
アドレス
00046BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
アドレス
00046CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
アドレス
00046DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
アドレス
00046EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
アドレス
00046FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR47
アドレス
000045H
MHALTI
-
-
LVL4
LVL3
LVL2
LVL1
LVL0
HRCL
第 11 章 割込みコントローラ
11.2.1
割込み制御レジスタ (ICR)
割込み制御レジスタは , 各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR) のビット構成
図 11.2-2に,割込み制御レジスタ(ICR:Interrupt Control Register)のビット構成を示します。
図 11.2-2 割込み制御レジスタ (ICR) のビット構成
bit
7
6
5
4
3
2
1
0
初期値
アドレス 000440H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
---11111B
R
R/W
R/W
R/W
R/W
∼
00046FH
■ 割込み制御レジスタ (ICR) のビット詳細
以下に , 割込み制御レジスタ (ICR) の各ビットの機能を説明します。
[bit4 ∼ bit0] ICR4 ∼ ICR0: 割込みレベル設定
これらのビットは割込みレベル設定ビットで , 対応する割込み要求の割込みレベル
を指定します。
このレジスタに設定した割込みレベルが CPU の割込みレベルマスクレジスタ (ILM)
に設定した ( された ) レベルマスク値以上の場合は , CPU 側で割込み要求はマスク
されます。
リセットにより , 11111B に初期化されます。
表 11.2-1に,設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。
表 11.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
割込みレベル
0
0
0
0
0
0
システム予約
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
(強)
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
(弱)
1
1
1
1
1
31
割込み禁止
( 注意事項 ) ICR4 は "1" 固定で , "0" を書き込むことはできません。
343
第 11 章 割込みコントローラ
11.2.2
ホールドリクエスト取下げ要求レベル
設定レジスタ (HRCL)
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) は , ホールドリクエスト
取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット構成
図 11.2-3 に , ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット構成
を示します。
図 11.2-3 ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット構成
bit
アドレス 000045H
7
6
5
4
3
2
1
0
MHALTI
R/W
-
-
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
初期値
0--11111B
■ ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) のビット詳細
以下に , ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) の各ビットの機能
を説明します。
[bit7] MHALTI:NMI の要求による DMA 転送抑止
このビットは , NMI の要求による DMA 転送抑止ビットです。
NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[bit4 ∼ bit0] LVL4 ∼ LVL0: 割込みレベル設定
これらのビットは , バスマスタへのホールドリクエスト取下げ要求を出すための割
込みレベルを設定します。
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) に設定した割込みレベ
ルより高いレベルを持つ割込み要求が発生した場合は , バスマスタに対してホール
ドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
344
第 11 章 割込みコントローラ
11.3
割込みコントローラの動作
割込みコントローラの動作として , 以下の項目について説明します。
• 優先順位判定
• NMI
• ホールドリクエスト取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
割込みコントローラでは,同時に発生している割込み要因の中で最も優先度の高い要因
を選択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 以下のとおりです。
• NMI
• 以下の条件を満たす要因
- 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
- 割込みレベルの数値が最も小さい要因
- その中で , 最も小さい割込み番号を持つ要因
上記の判定基準により割込み要因が 1 つも選択されなかった場合は , 割込みレベルとし
て 31 ("11111B") を出力します。そのときの割込み番号は不定です。
表 11.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。
345
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3)
割込み番号
割込み要因
10 進 16 進
リセット
0
00
モードベクタ
1
01
TBR デフォルト
RN
のアドレス
割込み
レベル
オフセット
−
3FCH
000FFFFCH
−
−
3F8H
000FFFF8H
−
000FFFF4H
−
システム予約
2
02
−
3F4H
システム予約
3
03
−
3F0H
000FFFF0H
−
システム予約
4
04
−
3ECH
000FFFECH
−
システム予約
5
05
−
3E8H
000FFFE8H
−
000FFFE4H
−
システム予約
6
06
−
3E4H
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
−
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
−
INTE 命令
9
09
−
3D8H
000FFFD8H
−
命令ブレーク例外
10
0A
−
3D4H
000FFFD4H
−
000FFFD0H
−
オペランドブレークトラップ
11
0B
−
3D0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
−
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
−
未定義命令例外
14
0E
−
3C4H
000FFFC4H
−
000FFFC0H
−
NMI 要求
15
0F
15(FH) 固定
3C0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
6
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
7
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
11
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
12
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
−
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
−
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
−
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
−
000FFF9CH
8
リロードタイマ 0
24
18
ICR08
39CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
10
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
0
UART1 ( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
1
UART2 ( 受信完了 )
29
1D
ICR13
388H
000FFF88H
2
UART0 ( 送信完了 )
30
1E
ICR14
384H
000FFF84H
3
UART1 ( 送信完了 )
31
1F
ICR15
380H
000FFF80H
4
UART2 ( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
5
DMAC0 ( 終了 , エラー )
33
21
ICR17
378H
000FFF78H
−
000FFF74H
−
000FFF70H
−
DMAC1 ( 終了 , エラー )
34
22
ICR18
374H
DMAC2 ( 終了 , エラー )
35
23
ICR19
370H
346
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 3)
割込み要因
割込み番号
10 進 16 進
割込み
レベル
オフセット
TBR デフォルト
RN
のアドレス
DMAC3 ( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
−
DMAC4 ( 終了 , エラー )
37
25
ICR21
368H
000FFF68H
−
A/D
38
26
ICR22
364H
000FFF64H
15
PPG0
39
27
ICR23
360H
000FFF60H
13
PPG1
40
28
ICR24
35CH
000FFF5CH
14
PPG2
41
29
ICR25
358H
000FFF58H
−
PPG3
42
2A
ICR26
354H
000FFF54H
−
システム予約
43
2B
ICR27
350H
000FFF50H
−
000FFF4CH
−
U-TIMER0
44
2C
ICR28
34CH
U-TIMER1
45
2D
ICR29
348H
000FFF48H
−
U-TIMER2
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
−
000FFF3CH
−
I2C
I/FO
48
30
ICR32
33CH
I C I/F1
49
31
ICR33
338H
000FFF38H
−
システム予約
50
32
ICR34
334H
000FFF34H
−
000FFF30H
−
2
システム予約
51
33
ICR35
330H
16 ビットフリーランタイマ
52
34
ICR36
32CH
000FFF2CH
−
ICU0 ( 取込み )
53
35
ICR37
328H
000FFF28H
−
ICU1 ( 取込み )
54
36
ICR38
324H
000FFF24H
−
ICU2 ( 取込み )
55
37
ICR39
320H
000FFF20H
−
000FFF1CH
−
ICU3 ( 取込み )
56
38
ICR40
31CH
システム予約
57
39
ICR41
318H
000FFF18H
−
システム予約
58
3A
ICR42
314H
000FFF14H
−
システム予約
59
3B
ICR43
310H
000FFF10H
−
システム予約
60
3C
ICR44
30CH
000FFF0CH
−
000FFF08H
−
システム予約
61
3D
ICR45
308H
システム予約
62
3E
ICR46
304H
000FFF04H
−
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
−
システム予約 (REALOS にて使用 )
64
40
−
2FCH
000FFEFCH
−
システム予約 (REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
−
000FFEF4H
−
システム予約
66
42
−
2F4H
システム予約
67
43
−
2F0H
000FFEF0H
−
システム予約
68
44
−
2ECH
000FFEECH
−
システム予約
69
45
−
2E8H
000FFEE8H
−
000FFEE4H
−
システム予約
70
46
−
2E4H
システム予約
71
47
−
2E0H
000FFEE0H
−
システム予約
72
48
−
2DCH
000FFEDCH
−
347
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 3)
割込み要因
割込み番号
10 進 16 進
割込み
レベル
オフセット
TBR デフォルト
RN
のアドレス
システム予約
73
49
−
2D8H
000FFED8H
−
システム予約
74
4A
−
2D4H
000FFED4H
−
システム予約
75
4B
−
2D0H
000FFED0H
−
000FFECCH
−
システム予約
76
4C
−
2CCH
システム予約
77
4D
−
2C8H
000FFEC8H
−
システム予約
78
4E
−
2C4H
000FFEC4H
−
システム予約
79
4F
−
2C0H
000FFEC0H
−
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
−
INT 命令で使用
348
80
|
255
50
|
FF
第 11 章 割込みコントローラ
■ NMI
NMI (Non Maskable Interrupt) は , 割込みコントローラが取り扱う割込み要因の中では ,
最も優先順位が高くなっています。そのため , ほかの割込み要因と同時発生の場合は ,
常に NMI が選択されます。
• NMI が発生すると , CPU に対して次の情報を伝えます。
- 割込みレベル :15 ("01111B")
- 割込み番号 :15 ("0001111B")
• NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。このモジュー
ルではNMI要求により,割込みレベル/割込み番号, MHALTIの生成のみを行います。
• NMI による DMA 転送の抑止
NMI要求が発生すると, ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)
の MHALTI ビットが "1" になり , DMA 転送が抑止されます。DMA 転送の抑止を解
除したい場合は , NMI ルーチンの最後で MHALTI ビットを "0" にクリアしてくださ
い。
■ ホールドリクエスト取下げ要求 (HRCR:Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト
発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求発生
の基準となる割込みレベルをホールドリクエスト取下げ要求レベル設定レジスタ
(HRCL) に設定します。
● 発生基準
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) に設定した割込みレベル
より高いレベルの割込み要因が発生した場合は,ホールドリクエスト取下げ要求を発生
します。
• ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)の割込みレベル > 優先
度判定後の割込みレベル → 取下げ要求発生
• ホールドリクエスト取下げ要求レベル設定レジスタ(HRCL)の割込みレベル ≦ 優先
度判定後の割込みレベル → 取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り,この取下げ要求は有効で
あり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割込
み要因をクリアしてください。
また , NMI を使用したときは , ホールドリクエスト取下げ要求レベル設定レジスタ
(HRCL) の MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。
349
第 11 章 割込みコントローラ
● 設定可能なレベル
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) に設定可能な値は , ICR と
同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生します。
表 11.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
表 11.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
NMI のみ
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
‥
31
‥
NMI, 割込みレベル 16 ∼ 30 〔初期値〕
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , ホールドリクエスト取下げ要求
レベル設定レジスタ (HRCL) の値を必要な値に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により,ストップモードから復帰する機能をこのモジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つで
も発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部は , ストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 割込みコントローラ内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI を設定してください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は,対応する周辺の
制御レジスタで割込みレベルを "11111B" にしてください。
350
第 11 章 割込みコントローラ
11.4
ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホール
ドリクエストを取り下げてもらってホールド状態を解除する必要があります。ここ
では , 割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち ,
CPU の優先動作を実現します。
■ 制御レジスタ
• HRCL ( ホールドリクエスト取下げ要求レベル設定レジスタ )
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) に設定した割込みレベ
ルより高いレベルの割込みが発生した場合に, DMAに対してホールドリクエスト取
下げ要求を発生します。その基準となるレベルを設定します。
• ICR
使用する割込み要因に対応する ICR に , ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) よりも高いレベルを設定します。
■ ハードウェア構成
各信号の流れは , 次のようになっています。
図 11.4-1 各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-UNIT
DHREQ
DMA
B-UNIT
CPU
(ICR)
(HRCL)
DHREQ:D-busホールドリクエスト
DHACK:D-busホールドアクノリッジ
IRQ:割込み要求
DHACK
MHALTI:ホールドリクエスト
取下げ要求
351
第 11 章 割込みコントローラ
■ ホールドリクエスト取下げ要求シーケンス
図 11.4-2 に , ホールドリクエスト取下げ要求のタイミングチャートを示します。
図 11.4-2 ホールドリクエスト取下げ要求のタイミングチャート
RUN
バスホールド
①
CPU
バスアクセス要求
割込み処理
②
バスホールド
(DMA転送)
DHREQ
DHACK
IRQ
LEVEL
MHALTI
● 割込みルーチンの例 [HRCL < ICR (LEVEL)]
①割込み要因クリア
∼
② RETI
割込み要求が発生すると割込みレベルが変化して,これがホールドリクエスト取下げ要
求レベル設定レジスタ (HRCL) に設定したレベルよりも高いと DMA に対して MHALTI
をアクティブにします。これによって DMA はアクセス要求を取り下げ , CPU はホー
ルド状態から復帰して割込み処理を行います。
図 11.4-3 に , 多重割込みの場合のタイミングチャートを示します。
図 11.4-3 多重割込みの場合のタイミングチャート
RUN
バスホールド
CPU
バスアクセス要求
割込みI
割込み処理II
③
④
割込み処理I
①
②
バスホールド
(DMA転送)
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
● 割込みルーチンの例 [ 割込みレベル HRCL < ICR ( 割込みⅠ ) < ICR ( 割込みⅡ )]
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した
場合を示しています。ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) に
設定した割込みレベルより高い割込みレベルが発生している間は , DHREQ は下がって
います。
<注意事項>
ホールドリクエスト取下げ要求レベル設定レジスタ (HRCL) と ICR に設定する割込みレベ
ルの関係には , 十分注意してください。
352
第 12 章
A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能およ
び A/D コンバータの動作について説明します。
12.1 A/D コンバータの概要
12.2 A/D コンバータのレジスタ
12.3 A/D コンバータの動作
12.4 A/D コンバータ使用上の注意
353
第 12 章 A/D コンバータ
12.1
A/D コンバータの概要
A/D コンバータは , 逐次比較変換方式でアナログ入力電圧をデジタル値に変換するモ
ジュールです。
■ A/D コンバータの特長
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) をデジタル値に A/D 変換す
る機能をもち , 以下の特長をもっています。
• 周辺クロック (CLKP) 140 クロックサイクル
• 最小変換時間 : 4.1µs/ チャネル ( マシンクロック 34MHz 時 =CLKP)
• サンプル & ホールド回路内蔵
• 分解能 : 10 ビット
• アナログ入力は 4 チャネルからプログラムで選択
- シングル変換モード : 1 チャネルを選択変換
- スキャン変換モード : 連続した複数のチャネルを変換。最大 4 チャネルプログラ
ム可能
• 動作モードとして , 3 モードから選択可能
- 単発変換モード : 指定チャネルを 1 回変換し停止
- 連続変換モード : 指定チャネルを繰返し変換
- 停止変換モード : 1 チャネルを変換したら一時停止して次の起動がかかるまで待
機 ( 変換開始の同期が可能 )
• 割込みによる DMA 転送の起動が可能
• 起動要因は , ソフトウェア , 外部トリガ ( 立下りエッジ ), リロードタイマ ( 立上り
エッジ ) から選択
354
第 12 章 A/D コンバータ
■ ブロックダイヤグラム
図 12.1-1 に , A/D コンバータのブロックダイヤグラムを示します。
図 12.1-1 A/D コンバータのブロックダイヤグラム
AVcc AVRH AVss AVR
内部電圧発生器
サンプル&ホールド回路
AN0
逐次比較レジスタ
AN1
AN2
上位8ビットCOPY
R-bus
データレジスタ(ADCR)
AN3
データレジスタ(ADCR0~ADCR3:8bit)
チャネルデコーダ
タイミング発生回路
クロック(CLKP)
A/D 制御レジスタ(ADCS)
プリスケーラ
ATG(外部端子トリガ)
リロードタイマ ch.2(内部接続)
355
第 12 章 A/D コンバータ
A/D コンバータのレジスタ
12.2
A/D コンバータで使用するレジスタの構成および機能について説明します。
■ A/D コンバータのレジスタ一覧
図 12.2-1 に , A/D コンバータのレジスタ一覧を示します。
図 12.2-1 A/D コンバータのレジスタ一覧
bit
bit
bit
bit
bit
356
15
14
13
12
11
10
9
8
BUSY
INT
INTE
CRF
STS1
STS0
STRT
-
7
6
5
4
3
2
1
0
MD1
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
-
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
7
6
5
4
3
2
1
0
コントロールステータスレジスタ
(ADCS)
データレジスタ (ADCR)
変換結果レジスタ (ADCR0 ∼ ADCR3)
第 12 章 A/D コンバータ
コントロールステータスレジスタ (ADCS)
12.2.1
コントロールステータスレジスタ (ADCS) は , A/D コンバータの制御およびステータ
スの表示を行います。
■ コントロールステータスレジスタ (ADCS) のビット構成
図 12.2-2 に , コントロールステータスレジスタ (ADCS) のビット構成を示します。
図 12.2-2 コントロールステータスレジスタ (ADCS) のビット構成
bit
15
アドレス 00007AH BUSY
bit
14
13
12
11
10
9
8
初期値
00000000B
INT
INTE
CRF
STS1
STS0
STRT
-
R/W
R/W
R/W
R
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
初期値
00000000B
MD1
MD0
ANS2
ANS1
ANS0
ANE2
ANE1
ANE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
<注意事項>
コントロールステータスレジスタ (ADCS) は , STRT, BUSY ビット以外は , A/D 変換動作
中に書き換えないでください。
■ コントロールステータスレジスタ (ADCS) のビット詳細
以下に , コントロールステータスレジスタ (ADCS) の各ビットの機能を説明します。
[bit15] BUSY (BUSY flag and stop)
読出し時と書込み時で , 以下のように機能が変わります。
• 読出し時 :
A/D コンバータ動作表示用のビットです。A/D 変換起動でセットさ
れ , 終了でクリアされます。
• 書込み時 :
A/D 動作中にこのビットに "0" を書き込むと , 強制的に動作を停止し
ます。連続 , 停止モード時の強制停止に利用します。
このビットに "1" を書き込むことはできません。RMW 系命令では "1" が読まれま
す。単発モードでは A/D 変換終了でクリアされます。連続 , 停止モードでは "0" 書
込みで停止するまでクリアされません。
リセット時 "0" に初期化されます。
強制停止とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。
357
第 12 章 A/D コンバータ
[bit14] INT (INTerrupt) : データ表示
変換データがデータレジスタ (ADCR) に書き込まれるとセットされます ( シングル
変換時は , 1 回の変換の終了によりセットされ , スキャン変換時はチャネルすべての
変換が終了したらセットされます )。
INTE (bit13) が "1" のときにこのビットがセットされると , 割込み要求が発生します。
また , DMA 転送の起動を選択している場合は , DMA が起動されます。"1" 書込みは
意味を持ちません。
クリアは "0" 書込みと DMAC からのクリア信号で行われます。
<注意事項>
このビットの "0" 書込みによるクリアは , A/D 停止中に行ってください。リセット時 "0"
に初期化されます。
リードモディファイライト系命令の読出しでは , "1" が読み出されます。
[bit13] INTE (INTerrupt Enable) : 変換終了による割込みの指定
このビットは , 変換終了による割込みの許可 / 不許可を指定します。
表 12.2-1 に , 変換終了による割込みの指定を示します。
表 12.2-1 変換終了による割込みの指定の機能
INTE
機能
0
割込みの禁止 ( 初期値 )
1
割込みの許可
割込み要求発生で DMA 転送を起動するときは , このビットをセットしてください。
リセット時 "0" に初期化されます。
[bit12] CRF (Convert Run Flag) :A/D コンバータの変換中
このビットは , A/D コンバータの変換中を示すフラグです。
このビットは , 読込み専用ビットです。
表 12.2-2 に , A/D コンバータの変換中の機能を示します。
表 12.2-2 A/D コンバータの変換中の機能
CRF
機能
0
停止中 ( 初期値 )
1
変換中
<注意事項>
A/D コンバータ変換中は , アナログ入力値を変化させないでください。
358
第 12 章 A/D コンバータ
[bit11, bit10] STS1, STS0 (STart Source select)
これらのビットは , リセット時 "00" に初期化されます。これらのビットの設定によ
り , A/D 変換起動要因を選択します。
表 12.2-3 に , A/D 変換起動要因の設定内容を示します。
表 12.2-3 A/D 変換起動要因の設定内容
STS1
STS0
0
0
ソフトウェア起動
0
1
外部端子トリガでの起動またはソフトウェア起動
1
0
リロードタイマでの起動またはソフトウェア起動
1
1
外部端子トリガ , リロードタイマでの起動またはソフト
ウェア起動
機能
起動が兼用になっているモードでは , 最初に検出した要因で起動します。
<注意事項>
起動要因は書換えと同時に変わりますので , A/D 変換動作中に書き換えるときは注意して
ください。
• 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のときにこ
のビットを書き換えて外部トリガ起動にすると, A/Dコンバータが起動する場合があり
ます。
• タイマ選択時は , リロードタイマの ch.2 の立上りエッジが選択されます。リロードタ
イマの出力レベルが "H" のときにこのビットを書き換えてタイマ起動にすると A/D コ
ンバータが起動する場合があります。
[bit9] STRT (STaRT)
このビットに "1" を書き込むことにより , A/D コンバータを起動します。再起動を
かけるときは , 再び書き込んでください。停止モード時は , 動作機能上再起動はか
かりません。
リセット時に "0" に初期化されます。
強制停止とソフトウェア起動を同時に行わないでください (BUSY=0, STRT=1)。
リードモディファイライト系の命令では "0" が読まれます。
電源投入時 , リセット後 , ストップからの復帰後 , 外付けのコンデンサがチャージさ
れるまでに時間がかかりますので , 10ms 以上待つ必要があります。
[bit8] 試験用ビット
このビットは , 試験用ビットです。書込み時は "0" を書き込んでください。
359
第 12 章 A/D コンバータ
[bit7, bit6] MD1, MD0 (A/D converter MoDe set)
これらのビットは , 動作モードを選択します。
表 12.2-4 に , 動作モードの設定内容を示します。
表 12.2-4 動作モードの設定内容
MD1
MD0
0
0
単発モード , 動作中の再起動はすべて可能
0
1
単発モード , 動作中の再起動は不可
1
0
連続モード , 動作中の再起動は不可
1
1
停止モード , 動作中の再起動は不可
• 単発モード :
機能
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネ
ルまで A/D 変換を連続して行い , 1 回変換が終了したら停止する。
• 連続モード :
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネ
ルまで , A/D 変換を繰り返し行います。ただし , 割込み許可
(INTE=1) している場合は ANS2 ∼ ANS0 の設定チャネルすべての
変換が 1 回終了すると , 割込みをクリアするまで一時停止します。
割込みをクリアすると変換を再開します。
• 停止モード :
ANS2 ∼ ANS0 の設定チャネルから ANE2 ∼ ANE0 の設定チャネ
ルまで , 1 チャネルごとに A/D 変換を行い一時停止します。
変換再開は , 起動要因発生によって行われます。
<注意事項>
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動
ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能です。
再起動は下記の手順で行ってください。
(1) INTE ビットを "0" にクリアする。
(2) STRT ビットに "1" を , INTE ビットを "0" を同時にライトする。
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起動
はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了し ,
データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変換再
起動と終了が同時に発生しないように再起動をかけてください。
<注意事項>
• 連続モード , 停止モードで A/D 変換を起動すると , BUSY ビットで停止するまで変換動
作を続けます。
• 停止は BUSY ビットに "0" を書き込むことにより行われます。
• 単発 , 連続 , 停止の各モードの「再起動不可」はタイマ , 外部トリガおよびソフトウェ
アのすべての起動に適用されます。
360
第 12 章 A/D コンバータ
[bit5 ∼ bit3] ANS2, ANS1, ANS0 (ANalog Start channel set) :
A/D 変換開始チャネルの設定
これらのビットにより , A/D 変換の開始チャネルを設定します。
A/D コンバータを起動すると , このビットで選択されたチャネルから A/D 変換を始
めます。
表 12.2-5 に , A/D 変換開始チャネルの設定内容を示します。
表 12.2-5 A/D 変換開始チャネルの設定内容
ANS2
ANS1
ANS0
開始チャネル
0
0
0
AN0
0
0
1
AN1
0
1
0
AN2
0
1
1
AN3
1
X
X
設定禁止
• 読出し時 :
これらのビットは , A/D 変換中は変換チャネルが読まれます。
停止中はレジスタの初期値が読まれます。
• リセット時 : "000B" に初期化されます。
<注意事項>
ANS2 ビットは書込み時 "0" を書き込んでください。
[bit2 ∼ bit0] ANE2, ANE1, ANE0 (ANalog End channel set) :A/D 変換終了チャネルの設定
これらのビットにより , A/D 変換の終了チャネルを設定します。
表 12.2-6 に , A/D 変換終了チャネルの設定内容を示します。
表 12.2-6 A/D 変換終了チャネルの設定内容
ANE2
ANE1
ANE0
終了チャネル
0
0
0
AN0
0
0
1
AN1
0
1
0
AN2
0
1
1
AN3
1
X
X
設定禁止
• ANS2 ∼ ANS0 と同じチャネルを設定すると , 1 チャネル変換になります ( シング
ル変換 )。
• 連続モード , 停止モードを設定している場合は , これらのビットによって設定さ
れたチャネルの変換が終わると , ANS2 ∼ ANS0 で設定された開始チャネルに戻
ります。
361
第 12 章 A/D コンバータ
• 設定チャネルは , ANS ≦ ANE としてください。
• リセット時に "000B" に初期化されます。
<注意事項>
• ANE2 ビットは書込み時 "0" を書き込んでください。
• 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 の値が書き換わる可能性があります。
■ 設定例
チャネル設定 ANS=1 チャネル (AN1), ANE=3 チャネル (AN3) で単発モードのとき , A/
D コンバータへの入力チャネル ( 変換チャネル ) が , 1 チャネル → 2 チャネル → 3 チャ
ネル に変わります。
362
第 12 章 A/D コンバータ
12.2.2
データレジスタ (ADCR)
データレジスタ (ADCR) は , A/D 変換結果を格納するレジスタです。最新の変換結
果であるデジタル値が格納されます。
■ データレジスタ (ADCR)
図 12.2-3 に , データレジスタ (ADCR) のビット構成を示します。
図 12.2-3 データレジスタ (ADCR) のビット構成
bit
アドレス 000078H
bit
15
14
13
12
11
10
9
8
初期値
000000XXB
-
-
-
-
-
-
-
-
R
R
R
R
R
R
R
R
7
6
5
4
3
2
1
0
初期値
XXXXXXXXB
7
6
5
4
3
2
1
0
R
R
R
R
R
R
R
R
データレジスタ (ADCR) は , 最新の変換格納レジスタで変換結果であるデジタル値が格
納されます。
データレジスタ (ADCR) の値は , 1 回の変換終了時ごとに更新されます。通常は , 最終
変換値が格納されています。
このレジスタは , リセット時は不定です。上位の 15 ∼ 10 ビットは , 読出し時は "0" です。
363
第 12 章 A/D コンバータ
12.2.3
変換結果レジスタ (ADCR0 ∼ ADCR3)
変換結果レジスタ (ADCR0 ∼ ADCR3) は , A/D 変換結果を格納するレジスタです。
対応するチャネルの変換結果であるデジタル値が格納されます。
■ 変換結果レジスタ (ADCR0 ∼ ADCR3)
図 12.2-4 に , 変換結果レジスタ (ADCR0 ∼ ADCR3) のビット構成を示します。
図 12.2-4 変換結果レジスタ (ADCR0 ∼ ADCR3) のビット構成
bit
アドレス 00007CH
00007DH
00007EH
00007FH
7
6
5
4
3
2
1
0
初期値
XXXXXXXXB
7
6
5
4
3
2
1
0
R
R
R
R
R
R
R
R
変換結果レジスタ (ADCR0 ∼ ADCR3) は , 変換格納レジスタで , 対応するチャネルの変
換結果であるデジタル値が格納されます。変換結果は , 変換結果レジスタ (ADCR) の上
位 8 ビットが格納されます。
変換結果レジスタ (ADCR0 ∼ ADCR3) の値は , 対応するチャネル 1 回の変換終了時ご
とに更新されます。通常は , 最終変換値が格納されています。
364
第 12 章 A/D コンバータ
12.3
A/D コンバータの動作
A/D コンバータは , 逐次変換方式で動作し 10 ビットの分解能をもっています。この
変換結果はデータレジスタ (ADCR) に格納されます。
この A/D コンバータは , 1 回の変換終了と同時に対応するチャネルの 8 ビット変換
結果レジスタ (ADCR0 ∼ ADCR3) に上位 8 ビットが格納されます。変換結果を読み
出すときは , 対応する変換結果レジスタ (ADCR0 ∼ ADCR3) を読み出してくださ
い。
A/D コンバータには , 単発変換モード , 連続変換モードおよび停止変換モードの 3 種
類のモードがあります。各モードでの動作を説明します。
■ 単発変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き , ANE ビットで設定された終了チャネルまで変換が終わると , 動作を停止します。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は , 1 チャネル変換動作になりま
す。
●例
• ANS=000B, ANE=011B の場合
開始 → AN0 → AN1 → AN2 → AN3 → 終了
• ANS=010B, ANE=010B の場合
開始 → AN2 → 終了
<注意事項>
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動
ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能です。
再起動は下記の手順で行ってください。
(1) INTE ビットを "0" にクリアする
(2) STRT ビットに "1" を , INTE ビットを "0" を同時にライトする
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起動
はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了し ,
データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変換再
起動と終了が同時に発生しないように再起動をかけてください。
■ 連続変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き , ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に
戻り , A/D 変換動作を続けます。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は 1 チャネル変換を続けます。
365
第 12 章 A/D コンバータ
●例
• ANS=000B, ANE=011B の場合
開始 → AN0 → AN1 → AN2 → AN3 → AN0 →→→→ 繰返し
• ANS=010B, ANE=010B の場合
開始 → AN2 → AN2 → AN2 →→→→ 繰返し
連続変換モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し , 続
けます。BUSY ビットに "0" を書き込むと , 強制動作停止します。強制動作停止を行う
と , 変換中のものは途中で止まってしまうため , 注意してください。強制動作停止した
場合は , 変換レジスタは変換完了した前データが格納されています。
割込み許可 (INTE=1) している場合は , ANS2 ∼ ANS0 の設定チャネルすべての変換が
1 回終了すると , 割込みをクリアするまで一時停止します。割込みをクリアすると変換
を再開します。
■ 停止変換モード
このモードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
きますが , 1 チャネル変換するごとに変換動作を一時停止します。一時停止を解除する
には , もう一度起動することにより行われます。
ANE ビットで設定された終了チャネルまで変換が終わると , ANS のアナログ入力に戻
り , A/D 変換動作を続けます。
開始チャネルと終了チャネルが同じ場合 (ANS=ANE) は 1 チャネルを変換します。
●例
• ANS=000B, ANE=011B の場合
開始 → AN0 → 停止 → 起動 → AN1 → 停止 → 起動 → AN2 → 停止 → 起動 →
AN3 → 停止 → 起動 → AN0 →→→→ 繰返し
• ANS=010B, ANE=010B の場合
開始 → AN2 → 停止 → 起動 → AN2 → 停止 → 起動 →
AN2 →→→→ 繰返し
このときの起動要因は , STS1, STS0 で設定されたものだけです。
このモードを使用することにより , 変換開始の同期をかけることが可能です。
366
第 12 章 A/D コンバータ
12.4
A/D コンバータ使用上の注意
A/D コンバータを使用するときの使用上の注意を示します。
■ A/D コンバータ使用上の注意
A/D コンバータを外部トリガまたは内部タイマを使って起動する場合 ,コントロールス
テータスレジスタ (ADCS) の A/D 起動要因ビット STS1, STS0 で設定しますが , このと
きに外部トリガおよび内部タイマの入力値はインアクティブ側にしてください。アク
ティブ側にしておくと誤動作します。
STS1, STS0設定時は, ATG=1入力,リロードタイマ(ch.1)=0出力の状態にしてください。
外部インピーダンスが指定値以上に高くなると,規定のサンプリング時間内にアナログ
入力値をサンプリングできなくなり , 正しい変換結果が得られません。
● A/D 変換の再起動について
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起
動ができます。このモードではソフトウェア起動 (STS1, STS0="00B") のみ設定可能で
す。再起動は下記の手順で行ってください。
(1) INTE ビットを "0" にクリアする
(2) STRT ビットに "1" を , INTE ビットを "0" を同時にライトする
A/D 変換モード選択ビット (MD1, MD0) を "01B" に設定した場合は , A/D 変換中の再起
動はできません。
A/D 変換の再起動と終了が同時に発生した場合 , 再起動は行われずに A/D 変換は終了
し , データレジスタ (ADCR1/ADCR0) には "300H" が格納されます。したがって , A/D 変
換再起動と終了が同時に発生しないように再起動をかけてください。
367
第 12 章 A/D コンバータ
368
第 13 章
UART
UART の概要 , レジスタの構成 / 機能および UART
の動作について説明します。
13.1 UART の概要
13.2 UART のレジスタ
13.3 UART の動作
13.4 UART の使用例
13.5 ボーレートと U-TIMER のリロード値の設定例
369
第 13 章 UART
13.1
UART の概要
UART は , 非同期 ( 調歩同期 ) 通信または CLK 同期通信を行うためのシリアル I/O
ポートです。
MB91301 シリーズは , UART を 3 チャネル内蔵しています。
■ UART の特長
UART は , 以下の特長をもっています。
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ), CLK 同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート : 内蔵タイマにより任意のボーレートを設定可
能 (「第 8 章 U-TIMER」参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• 割込みによる DMA 転送の起動が可能
370
第 13 章 UART
■ ブロックダイヤグラム
図 13.1-1 に , UART のブロックダイヤグラムを示します。
図 13.1-1 UART のブロックダイヤグラム
制御信号
受信割込み
(CPUへ)
U-TIMERより
SCK(クロック)
送信クロック
クロック
選択回路
送信割込み
(CPUへ)
受信クロック
外部クロック
SCK
受信制御回路
SI(受信データ)
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SO(送信データ)
受信用シフタ
受信状態判定回路
送信用シフタ
送信開始
受信終了
SIDR
SODR
DMA用
受信エラー発生信号
(DMACへ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCKE
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
制御信号
371
第 13 章 UART
UART のレジスタ
13.2
UART で使用するレジスタの構成および機能について説明します。
■ UART のレジスタ一覧
図 13.2-1 に , UART のレジスタ構成を , 図 13.2-2 に , UART のレジスタ一覧を示します。
図 13.2-1 UART のレジスタ構成
15
8 7
0
SCR
SMR
SSR
SIDR(R)/SODR(W)
8 ビット
8 ビット
(R/W)
(R/W, R, W)
図 13.2-2 UART のレジスタ一覧
372
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
7
6
5
4
3
2
1
0
PE
ORE
FRE
BDS
RIE
TIE
7
6
5
4
3
2
1
0
MD1
MD0
-
-
CS0
-
SCKE
-
7
6
5
4
3
2
1
0
PEN
P
SBL
CL
A/D
REC
RXE
TXE
RDRF TDRE
シリアルインプットレジスタ
シリアルアウトプットレジスタ
(SIDR /SODR)
シリアルステータスレジスタ (SSR)
シリアルモードレジスタ (SMR)
シリアルコントロールレジスタ (SCR)
第 13 章 UART
シリアルモードレジスタ (SMR)
13.2.1
シリアルモードレジスタ (SMR) は , UART の動作モードを指定します。
動作モードの設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わない
でください。
■ シリアルモードレジスタ (SMR) のビット構成
図 13.2-3 に , シリアルモードレジスタ (SMR) のビット構成を示します。
図 13.2-3 シリアルモードレジスタ (SMR) のビット構成
bit
7
アドレス 000063H (ch.0) MD1
00006BH (ch.1) R/W
000073H (ch.2)
6
5
4
3
2
1
0
MD0
R/W
-
-
CS0
W
-
SCKE
R/W
-
初期値
00--0-0-B
■ シリアルモードレジスタ (SMR) のビット詳細
以下に , シリアルモードレジスタ (SMR) の各ビットの機能を説明します。
[bit7, bit6] MD1, MD0 (MoDe select) : 動作モードの設定
これらのビットは , UART の動作モードを選択します。
表 13.2-1 に , 動作モードの設定内容を示します。
表 13.2-1 動作モードの設定内容
モード
MD1
MD0
動作モード
0
0
0
非同期 ( 調歩同期 ) ノーマルモード ( 初期値 )
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
CLK 同期モード
−
1
1
設定禁止
<注意事項>
モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台のス
レーブ CPU が接続される使用法です。このリソースでは , 受信データのデータ形式を判
別できません。したがって , マルチプロセッサモードのマスタのみをサポートします。ま
た , パリティチェック機能は使用できませんので , シリアルコントロールレジスタ (SCR)
の PEN は "0" に設定してください。
[bit5, bit4] (reserved)
これらのビットは , 未使用ビットです。
常に "1" を書き込んでください。
373
第 13 章 UART
[bit3] CS0 (Clock Select) : 動作クロックを選択
このビットは , UART の動作クロックを選択します。
表 13.2-2 に , 動作クロックの選択を示します。
表 13.2-2 動作クロックの選択の機能
CS0
機能
0
内蔵タイマ (U-TIMER) ( 初期値 )
1
外部クロック
[bit2] (reserved)
このビットは , 未使用ビットです。
常に "0" を書き込んでください。
[bit1] SCKE (SCLK Enable) :SCK 端子の設定
このビットは , CLK 同期モード ( モード 2) で通信をする場合 , SCK 端子をクロック
入力端子にするか , クロック出力端子として使うかを指定します。
CLK 非同期モード時または外部クロックモード時では "0" に設定してください。
表 13.2-3 に , SCK 端子の設定を示します。
表 13.2-3 SCK 端子の設定の機能
SCKE
機能
0
クロック入力端子として機能します ( 初期値 )。
1
クロック出力端子として機能します。
<注意事項>
クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択しておく
必要があります。
[bit0] (reserved)
このビットは , 未使用ビットです。
374
第 13 章 UART
シリアルコントロールレジスタ (SCR)
13.2.2
シリアルコントロールレジスタ (SCR) は , シリアル通信を行う場合の転送プロトコ
ルを制御します。
シリアルコントロールレジスタ (SCR) の構成および機能について説明します。
■ シリアルコントロールレジスタ (SCR) のビット構成
図 13.2-4 に , シリアルコントロールレジスタ (SCR) のビット構成を示します。
図 13.2-4 シリアルコントロールレジスタ (SCR) のビット構成
bit
7
アドレス 000062H (ch.0) PEN
00006AH (ch.1) R/W
000072H (ch.2)
6
5
4
3
2
1
0
P
R/W
SBL
R/W
CL
R/W
A/D
R/W
REC
W
RXE
R/W
TXE
R/W
初期値
00000100B
■ シリアルコントロールレジスタ (SCR) のビット詳細
以下に , シリアルコントロールレジスタ (SCR) の各ビットの機能を説明します。
[bit7] PEN (Parity Enable) : パリティの設定
このビットは , シリアル通信において , パリティを付加してデータ通信を行うかど
うかを指定します。
表 13.2-4 に , パリティの設定を示します。
表 13.2-4 パリティの設定の機能
PEN
機能
0
パリティなし ( 初期値 )
1
パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , パ
リティを付加することはできません。
375
第 13 章 UART
[bit6] P (Parity) : 偶数 / 奇数パリティの指定
このビットは , パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指
定します。
表 13.2-5 に , 偶数 / 奇数パリティの指定を示します。
表 13.2-5 偶数 / 奇数パリティの指定の機能
P
機能
0
偶数パリティ ( 初期値 )
1
奇数パリティ
[bit5] SBL (Stop Bit Length) : ストップビットのビット長の指定
このビットは , 非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである ,
ストップビットのビット長を指定します。
表 13.2-6 に , ストップビットのビット長指定を示します。
表 13.2-6 ストップビットのビット長指定の機能
SBL
機能
0
1 ストップビット ( 初期値 )
1
2 ストップビット
[bit4] CL (Character Length) :1 フレームのデータ長の指定
このビットは , 送受信する 1 フレームのデータ長を指定します。
表 13.2-7 に , 1 フレームのデータ長指定を示します。
表 13.2-7 1 フレームのデータ長指定の機能
CL
機能
0
7 ビットデータ ( 初期値 )
1
8 ビットデータ
<注意事項>
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , 8
ビットデータとしてください。
376
第 13 章 UART
[bit3] A/D (Address/Data) : フレームのデータ形式の指定
このビットは , 非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) にお
いて , 送受信するフレームのデータ形式を指定します。
表 13.2-8 に , フレームのデータ形式指定を示します。
表 13.2-8 フレームのデータ形式指定の機能
A/D
機能
0
データフレーム ( 初期値 )
1
アドレスフレーム
[bit2] REC (Receiver Error Clear) : エラーフラグのクリア
このビットに , "0" を書き込むことによって , シリアルステータスレジスタ (SSR) の
エラーフラグ (PE, ORE, FRE) をクリアします。
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[bit1] RXE (Receiver Enable) : 受信動作の制御
このビットは , UART の受信動作を制御します。
表 13.2-9 に , 受信動作の制御を示します。
表 13.2-9 受信動作の制御の機能
RXE
機能
0
受信動作を禁止します。( 初期値 )
1
受信動作を許可します。
<注意事項>
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合
には , そのフレームの受信を完了し , 受信データバッファシリアルインプットデータレジ
スタ (SIDR) に受信データをストアしたところで受信動作を停止します。
[bit0] TXE (Transmitter Enable) : 送信動作の制御
このビットは , UART の送信動作を制御します。
表 13.2-10 に , 送信動作の制御を示します。
表 13.2-10 送信動作の制御の機能
TXE
機能
0
送信動作を禁止します。( 初期値 )
1
送信動作を許可します。
377
第 13 章 UART
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファシリアルアウトプットデータレジスタ(SODR)にデータが無くなった
後に送信動作を停止します。
378
第 13 章 UART
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ (SODR)
13.2.3
このレジスタは , 受信 / 送信用のデータバッファレジスタです。
■ シリアルインプットデータレジスタ (SIDR)/ シリアルアウトプットデータレジスタ
(SODR)
図 13.2-5 に , シリアルインプットデータレジスタ (SIDR) およびシリアルアウトプット
データレジスタ (SODR) のビット構成を示します。
図 13.2-5 シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ (SODR) のビット構成
SIDR
bit
アドレス 000061H (ch.0)
000069H (ch.1)
000071H (ch.2)
7
6
5
4
3
2
1
0
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
初期値
XXXXXXXXB
SODR
bit
アドレス 同上
初期値
XXXXXXXXB
データ長が 7 ビットの場合 , SIDR, SODR の bit7 (D7) は無効データとなります。シリア
ルアウトプットデータレジスタ (SODR) への書込みは , シリアルステータスレジスタ
(SSR) の TDRE ビットが "1" のときに書き込んでください。
<注意事項>
このアドレスへの書込みはシリアルアウトプットデータレジスタ (SODR) への書込みを ,
読出しはシリアルインプットデータレジスタ (SIDR) からの読出しを意味します。
379
第 13 章 UART
13.2.4
シリアルステータスレジスタ (SSR)
シリアルステータスレジスタ (SSR) は , UART の動作状態を表すフラグで構成され
ています。
シリアルステータスレジスタ (SSR) の構成と機能について説明します。
■ シリアルステータスレジスタ (SSR) のビット構成
図 13.2-6 に , シリアルステータスレジスタ (SSR) のビット構成を示します。
図 13.2-6 シリアルステータスレジスタ (SSR) のビット構成
bit
アドレス 000060H (ch.0)
000068H (ch.1)
000070H (ch.2)
7
6
5
PE
R
ORE
R
FRE
R
4
3
RDRF TDRE
R
R
2
1
0
BDS
R/W
RIE
R/W
TIE
R/W
初期値
00001000B
■ シリアルステータスレジスタ (SSR) のビット詳細
以下に , シリアルステータスレジスタ (SSR) の各ビットの機能を説明します。
[bit7] PE (Parity Error) : パリティエラーの有無
このビットは , 受信時にパリティエラーが発生したときにセットされる , 割込み要
求フラグです。
表 13.2-11 に , パリティエラーの有無を示します。
表 13.2-11 パリティエラーの有無の機能
PE
機能
0
パリティエラーなし ( 初期値 )
1
パリティエラーが発生
一度セットされたフラグをクリアするには , シリアルコントロールレジスタ (SCR)
の REC ビット (bit10) に "0" を書き込みます。
このビットがセットされた場合には , SIDR のデータは無効データとなります。
[bit6] ORE (Over Run Error) : オーバランエラーの有無
このビットは , 受信時にオーバランエラーが発生したときにセットされる , 割込み
要求フラグです。
表 13.2-12 に , オーバランエラーの有無を示します。
表 13.2-12 オーバランエラーの有無の機能
ORE
機能
0
オーバランエラーなし ( 初期値 )
1
オーバランエラーが発生
一度セットされたフラグをクリアするには , シリアルコントロールレジスタ (SCR)
の REC ビットに "0" を書き込みます。
このビットがセットされた場合には , SIDR のデータは無効データとなります。
380
第 13 章 UART
[bit5] FRE (FRaming Error) : フレーミングエラーの有無
このビットは , 受信時にフレーミングエラーが発生したときにセットされる , 割込
み要求フラグです。
表 13.2-13 に , フレーミングエラーの有無を示します。
表 13.2-13 フレーミングエラーの有無の機能
FRE
機能
0
フレーミングエラーなし ( 初期値 )
1
フレーミングエラーが発生
一度セットされたフラグをクリアするには , シリアルコントロールレジスタ (SCR)
の REC ビットに "0" を書込みます。
このビットがセットされた場合には , SIDR のデータは無効データとなります。
<注意事項>
シリアルモードレジスタの bit3 による内 / 外ボーレートクロックの切換えは , 書込み後す
ぐに反映されるので , UART が動作停止状態のときに行ってください。
シリアルモードレジスタの bit3 は書込み専用です。
[bit4] RDRF (Receiver Data Register Full) : 受信データの有無
このビットは , シリアルインプットデータレジスタ (SIDR) に受信データがあること
を示す , 割込み要求フラグです。
表 13.2-14 に , 受信データの有無を示します。
表 13.2-14 受信データの有無の機能
RDRF
機能
0
受信データなし ( 初期値 )
1
受信データあり
シリアルインプットデータレジスタ (SIDR) に受信データがロードされるとセット
され , シリアルインプットデータレジスタ (SIDR) を読み出すと自動的にクリアされ
ます。
381
第 13 章 UART
[bit3] TDRE (Transmitter Data Register Empty) : 送信データの書込み
このビットは , SODR に送信データを書き込むことができることを示す , 割込み要
求フラグです。
表 13.2-15 に , 送信データの書込みの機能を示します。
表 13.2-15 送信データの書込みの機能
TDRE
機能
0
送信データの書込み禁止
1
送信データの書込み許可 ( 初期値 )
シリアルアウトプットデータレジスタ (SODR) に送信データを書き込むとクリアさ
れます。書き込んだデータが送信用シフタにロードされて転送が開始されると再び
セットされ , 次の送信データを書き込むことができることを表します。
[bit2] BDS (Bit Direction Select) : 転送方向選択
このビットは , 転送方向選択ビットです。
表 13.2-16 に , 転送方向選択を示します。
表 13.2-16 転送方向選択の機能
BDS
機能
0
最下位ビット (LSB) 側から転送 ( 初期値 )
1
最上位ビット (MSB) 側から転送
<注意事項>
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ替えるた
め SDR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無効
になります。
シリアルステータスレジスタ (SSR) をハーフワードアクセスし , BDS ビットに "1" 書込
みとシリアルアウトプットデータレジスタ(SODR)に送信データ書込みを同時に行った場
合には , 送信データの BDS ビットの設定は無視されます。
MSB/LSB 転送方向を切り換える場合には , SODR にデータを書き込む前に BDS ビットを
設定する必要があります。
[bit1] RIE (Receiver Interrupt Enable) : 受信割込み
このビットは , 受信割込みを制御します。
表 13.2-17 に , 受信割込みの制御の機能を示します。
表 13.2-17 受信割込みの制御の機能
RIE
382
機能
0
受信割込みを禁止します。( 初期値 )
1
受信割込みを許可します。
第 13 章 UART
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ
ります。
[bit0] TIE (Transmitter Interrupt Enable) : 送信割込みを制御
このビットは , 送信割込みを制御します。
表 13.2-18 に , 送信割込みを制御の機能を示します。
表 13.2-18 送信割込みを制御の機能
TIE
機能
0
送信割込みを禁止します。( 初期値 )
1
送信割込みを許可します。
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
383
第 13 章 UART
13.3
UART の動作
UART には , 非同期 ( 調歩同期 ) モードと CLK 同期モードの 2 種類の動作モードが
あります。
非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサモードがありま
す。
各動作モードにおける動作について説明します。
■ UART の動作モード
UART は , 表 13.3-1 に示す動作モードを持ち , シリアルモードレジスタ (SMR), シリア
ルコントロールレジスタ (SCR) に値を設定することによりモードを切り換えることが
できます。
表 13.3-1 UART の動作モード
モード
パリティ
データ長
あり / なし
7
あり / なし
8
1
なし
8+1
非同期 ( 調歩同期 )
マルチプロセッサモード
2
なし
8
CLK 同期モード
0
動作モード
ストップビット長
非同期 ( 調歩同期 )
ノーマルモード
1 ビット
または
2 ビット
なし
<注意事項>
非同期 ( 調歩同期 ) モードでのストップビット長については , 送信動作のみ指定が可能で
す。受信動作については常に 1 ビット長となります。上記モード以外では動作しませんの
で , 設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は , 次のとおりです。
非同期 ( 調歩同期 )
: φ/(16 × β)
CLK 同期
: φ/ β
φ: 周辺系マシンクロック周波数 (CLKP)
β: U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% ∼ +1% までの
範囲で転送が可能です。
384
第 13 章 UART
● 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周
波数を f とすると次のようになります。
非同期 ( 調歩同期 )
:f/16
CLK 同期
:f
ただし , f は最大 3.125MHz までです。
385
第 13 章 UART
非同期 ( 調歩同期 ) モード
13.3.1
UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用するとき , 転送方式は非同期となります。
■ 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。
図 13.3-1 に , データフォーマットを示します。
図 13.3-1 転送データフォーマット ( モード 0, 1)
SI,SO
0 1 0 1 1 0 0 1 0 1 1
Start LSB MSB Stop ─────(モード0)
A/D Stop ───(モード1)
転送されたデータは 01001101 B
図 13.3-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック
を入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定できますが ,
マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。また , マル
チプロセッサモードではパリティを付加できません。そのかわり , A/D ビットが必ず付
加されます。
■ 受信動作
シリアルコントロールレジスタ (SCR) の RXE ビット (bit1) が "1" ならば , 常に受信動
作が行われています。
受信ラインにスタートビットが現れると , シリアルコントロールレジスタ (SCR) で決
められたデータフォーマットに従い , 1 フレームデータの受信が行われます。1 フレー
ムの受信が終わると , エラーが発生した場合にはエラーフラグのセットが行われた後 ,
RDRF フラグ ( シリアルステータスレジスタ (SSR) の bit4) がセットされます。このと
き同じシリアルステータスレジスタ (SSR) の RIE ビット (bit1) が "1" にセットされてい
れば CPU に対して受信割込みが発生します。シリアルステータスレジスタ (SSR) の各
フラグを調べ , 正常受信ならシリアルインプットデータレジスタ (SIDR) を読み出して ,
エラーが発生していれば必要な処理を行うようにしてください。
RDRF フラグは , シリアルインプットデータレジスタ (SIDR) を読み出すとクリアされ
ます。
386
第 13 章 UART
■ 送信動作
シリアルステータスレジスタ (SSR) の TDRE フラグ (bit3) が "1" のとき , シリアルアウ
トプットデータレジスタ (SODR) に送信データを書き込みます。ここで , シリアルコン
トロールレジスタ (SCR) の TXE ビット (bit0) が "1" なら送信が行われます。
シリアルアウトプットデータレジスタ (SODR) にセットしたデータが送信用シフトレ
ジスタにロードされて送信が開始されると TDRE フラグが再びセットされ , 次の送信
データをセットできるようになります。このとき , 同じシリアルステータスレジスタ
(SSR) の TIE ビット (bit0) が "1" にセットされていれば CPU に対して送信割込みが発生
して , シリアルアウトプットデータレジスタ (SODR) に送信データをセットするように
要求します。
TDRE フラグは , シリアルアウトプットデータレジスタ (SODR) にデータをセットする
と一度クリアされます。
387
第 13 章 UART
13.3.2
CLK 同期モード
UART を動作モード 2 で使用するとき , 転送方式はクロック同期となります。
■ 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。
図 13.3-2 に , 送受信クロックとデータとの関係を示します。
図 13.3-2 転送データフォーマット ( モード 2)
SODR書込み
マーク
SCK
RXE,TXE
SI,SO
1 0 1 1 0 0 1 0
LSB MSB ───(モード2)
転送されたデータは 01001101 B
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。
また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファシリ
アルアウトプットデータレジスタ (SODR) にデータがあること (TDRE フラグが "0") を
確かめた後 , 正確に 1 バイト分のクロックを供給する必要があります。また , 送信開始
前と終了後は , 必ずマークレベルにしてください。
データ長は 8 ビットのみとなり , パリティは付加できません。また , スタート / ストッ
プビットがないのでオーバランエラー以外のエラー検出は行われません。
388
第 13 章 UART
■ 初期化
CLK 同期モードを使用する場合の , 各制御レジスタの設定値を示します。
• シリアルモードレジスタ (SMR)
- MD1, MD0
:10
- CS
: クロック入力を指定
- SCKE
: 内部タイマの場合 "1", 外部クロックの場合 "0"
- SOE
: 送信を行う場合 "1", 受信のみの場合 "0"
• シリアルコントロールレジスタ (SCR)
- PEN
:0
- P,SBL,A/D
: これらのビットは意味を持ちません
- CL
:1
- REC
:0 ( 初期化するため )
- RXE,TXE
: 少なくとも , どちらか一方を "1"
• シリアルステータスレジスタ (SSR)
- RIE
: 割込みを使用する場合 "1", 割込みを使用しない場合 "0"
- TIE
:0
■ 通信開始
シリアルアウトプットデータレジスタ (SODR) への書込みによって通信を開始します。
受信のみの場合でも , 必ず仮の送信データをシリアルアウトプットデータレジスタ
(SODR) に書き込む必要があります。
■ 通信終了
シリアルステータスレジスタ (SSR) の RDRF フラグが "1" に変化したことにより確認
できます。シリアルステータスレジスタ (SSR) の ORE ビットによって , 通信が正常に
行われたかを判断してください。
389
第 13 章 UART
13.3.3
割込み発生およびフラグのセットタイミング
UART には , 5 つのフラグと 2 つの割込み要因があります。
5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE は
オーバランエラー , FRE はフレーミングエラーのことで , 受信時エラーが発生した
ときにセットされ , シリアルコントロールレジスタ (SCR) の REC に "0" を書き込
むとクリアされます。RDRF は , 受信データがシリアルインプットデータレジスタ
(SIDR) にロードされるとセットされ , シリアルインプットデータレジスタ (SIDR) を
読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード 2
ではパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は , シリ
アルアウトプットデータレジスタ (SODR) が空になって書込み可能な状態になると
セットされ , シリアルアウトプットデータレジスタ (SODR) へ書き込むとクリアさ
れます。
■ 割込み発生およびフラグのセットタイミング
2 つの割込み要因は , 受信用のものと送信用のものです。受信時は , PE/ORE/FRE/RDRF
により割込みを要求します。送信時は , TDRE により割込みを要求します。各動作モー
ドによる割込みフラグのセットタイミングを以下に示します。
● モード 0 の受信動作時
PE, ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラ
グがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブ時は ,
SIDR のデータは無効データとなります。
図 13.3-3 に , モード 0 における ORE, FRE, RDRF のセットタイミングを示します。
図 13.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
PE,ORE,FRE
RDRF
受信割込み
390
D6
D7
Stop
第 13 章 UART
● モード 1 の受信動作時
ORE, FRE, RDRF は , 受信転送が終了し最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8 ビッ
トのため , 最後の 9 ビット目のアドレス / データを示すデータは無効データとなりま
す。ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。
図 13.3-4 に , モード 1 における ORE, FRE, RDRF のセットタイミングを示します。
図 13.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D7
アドレス/
データ
Stop
ORE,FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は , 受信転送が終了し最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブ時は , SIDR のデータは無
効データとなります。
図 13.3-5 に , モード 2 における ORE, RDRF のセットタイミングを示します。
図 13.3-5 ORE, RDRF のセットタイミング ( モード 2)
データ
D5
D6
D7
ORE
RDRF
受信割込み
391
第 13 章 UART
● モード 0, モード 1, モード 2 の送信動作時
TDRE はシリアルアウトプットデータレジスタ (SODR) へ書き込まれるとクリアされま
す。内部のシフトレジスタに転送されて次のデータ書込みが可能な状態になるとセッ
トされ , CPU への割込み要求が発生します。送信動作中にシリアルコントロールレジ
スタ (SCR) の TXE に "0" ( モード 2 のときは RXE も含む ) を書き込むと , シリアルス
テータスレジスタ (SSR) の TDRE が "1" となり , 送信用のシフタが停止してから UART
の送信動作を禁止します。送信動作中にシリアルコントロールレジスタ (SCR) の TXE
に "0" ( モード 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前にシリアル
アウトプットデータレジスタ (SODR) へ書き込まれたデータは送信されます。
図 13.3-6 にモード 0, 1 における TDRE のセットタイミングを , 図 13.3-7 にモード 2 に
おける TDRE のセットタイミングを示します。
図 13.3-6 TDRE のセットタイミング ( モード 0, 1)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
SO出力
ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3
A/D
ST:スタートビット D0~D7:データビット
SP:ストップビット A/D:アドレス/データマルチプレクサ
図 13.3-7 TDRE のセットタイミング ( モード 2)
SODR書込み
TDRE
CPUへ割込みを要求する。
SO割込み
SO出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
D0~D7:データビット
392
第 13 章 UART
■ 使用上の注意
シリアルアウトプットデータレジスタ (SODR) への書込みによって通信を開始します。
受信のみの場合でも , 必ず仮の送信データをシリアルアウトプットデータレジスタ
(SODR) に書き込む必要があります。
通信モードの設定は , 動作停止中に行ってください。モード設定時に送受信したデータ
は保証されません。
393
第 13 章 UART
13.4
UART の使用例
UART の使用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU
が接続されるような場合に使用されます。
■ UART の使用例
図 13.4-1 に , モード 1 を使用した場合のシステム構築例を示します。このリソースで
は , ホスト側の通信インタフェースのみサポートしています。
図 13.4-1 モード 1 を使用した場合のシステム構築例
SO
SI
ホストCPU
SO
SI
スレーブCPU#0
SO SI
スレーブCPU#1
通信は , ホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , シリアルコントロールレジスタ (SCR) の A/D が "1" のときのデータです。
それにより通信先となるスレーブ CPU が選択され , ホスト CPU との通信が可能になり
ます。通常データは , シリアルコントロールレジスタ (SCR) の A/D が "0" のときのデー
タです。
図 13.4-2 に , そのフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので , シリアルコント
ロールレジスタ (SCR) の PEN ビットは "0" としてください。
394
第 13 章 UART
図 13.4-2 モード 1 を使用した場合の通信フローチャート
(ホストCPU)
START
転送モードを"1"とする
D0~D7にスレーブCPUを
選択するデータ,
A/Dに"1"をセットし
1バイト転送
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
NO
通信終了? YES
ほかの
スレーブCPU
通信
NO
YES
受信動作禁止 END
395
第 13 章 UART
13.5
ボーレートと U-TIMER のリロード値の設定例
ボーレートと U-TIMER のリロード値の設定例を示します。
■ ボーレートと U-TIMER のリロード値の設定例
表 13.5-1 に , 非同期 ( 調歩同期 ) モードの設定値を , 表 13.5-2 に CLK 同期モードの設
定値を示します。
表中の周波数は , 周辺系マシンクロック周波数を表します。また , UCC1 は , U-TIMER
の U-TIMER コントロールレジスタ (UTIMC) の UCC1 ビットに設定する値です。表中
の「−」部は , 誤差が± 1% を超えてしまうため使用できないことを示します。
表 13.5-1 非同期 ( 調歩同期 ) モードの設定値
ボーレート
(bps)
ms
1200
833.33
884 (UCC1=1) 520 (UCC1=0) 441 (UCC1=1) 259 (UCC1=1)
2400
416.67
441 (UCC1=1) 259 (UCC1=1) 220 (UCC1=0) 129 (UCC1=0)
4800
208.33
220 (UCC1=1) 129 (UCC1=0) 109 (UCC1=0)
64 (UCC1=0)
9600
104.17
109 (UCC1=1)
64 (UCC1=0)
54 (UCC1=1)
31 (UCC1=1)
19200
52.08
54 (UCC1=1)
31 (UCC1=1)
26 (UCC1=1)
─
38400
26.04
26 (UCC1=1)
─
─
─
57600
17.36
17 (UCC1=1)
─
─
─
10400
96.15
101 (UCC1=0)
59 (UCC1=0)
50 (UCC1=0)
29 (UCC1=0)
31250
32.00
33 (UCC1=0)
19 (UCC1=0)
16 (UCC1=0)
9 (UCC1=0)
62500
16.00
16 (UCC1=0)
9 (UCC1=0)
7 (UCC1=1)
4 (UCC1=0)
34MHz
20MHz
17MHz
10MHz
表 13.5-2 CLK 同期モードの設定値
ボーレート
(bps)
ms
34MHz
20MHz
17MHz
10MHz
250K
4.00
67 (UCC1=0)
39 (UCC1=0)
33 (UCC1=0)
19 (UCC1=0)
500K
2.00
33 (UCC1=0)
19 (UCC1=0)
16 (UCC1=1)
9 (UCC1=0)
1M
1.00
16 (UCC1=0)
9 (UCC1=0)
7 (UCC1=0) *
4 (UCC1=0)
*: ± 1% 以上の誤差あり
396
第 14 章
DMA コントローラ (DMAC)
DMA コントローラ (DMAC) の概要 , レジスタの構
成 / 機能および DMA コントローラ (DMAC) の動作
について説明します。
14.1 DMA コントローラ (DMAC) の概要
14.2 DMA コントローラ (DMAC) のレジスタ
14.3 DMA コントローラ (DMAC) の動作
14.4 動作フローチャート
14.5 データバス
14.6 DMA 外部インタフェース
397
第 14 章 DMA コントローラ (DMAC)
14.1
DMA コントローラ (DMAC) の概要
DMA コントローラ (DMAC) は , FR ファミリデバイスで DMA (Direct Memory
Access) 転送を実現するためのモジュールです。このモジュールの制御による DMA
転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり , シス
テムのパフォーマンスを増加させます。
■ ハードウェア構成
DMA コントローラ (DMAC) は , 主に以下のブロックから構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 32 ビットアドレスレジスタ ( リロード指定可 : 各チャネル 2 本 )
• 16 ビット転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 外部転送要求入力端子 : DREQ0, DREQ1 (ch.0, ch.1 のみ )
• 外部転送要求受付出力端子 : DACK0, DACK1 (ch.0, ch.1 のみ )
• DMA 終了出力端子 : DEOP0, DEOP1 (ch.0, ch.1 のみ )
• フライバイ転送 ( メモリ→ I/O, I/O →メモリ )(ch.0, ch.1 のみ )
• 2 サイクル転送
■ 主要機能
DMA コントローラ (DMAC) によるデータ転送には , おもに以下の機能があります。
複数チャネルの独立したデータ転送が可能です (5 チャネル )。
• 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
• ch.0, ch.1 間で順位回転が可能
• DMAC 起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 ch.0, ch.1 のみ )
- 内蔵周辺要求 ( 割込み要求を共用 : 外部割込み含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 / バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
アドレス増減幅は -255 ∼ +255 まで指定可能
- データの種類 : バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
398
第 14 章 DMA コントローラ (DMAC)
■ ブロックダイヤグラム
図 14.1-1 に , DMA コントローラ (DMAC) のブロックダイヤグラムを示します。
図 14.1-1 DMA コントローラ (DMAC) のブロックダイヤグラム
カウンタ
バスコントローラへ
DMA転送要求
DMA起動
要因選択回路 ペリフェラル起動要求/停止入力
&
要求受付制御 外部端子起動要求/停止入力
ライトバック
バッファ
セレクタ
DTC 2段レジスタ
DTCR
カウンタ
割込みコントローラへ
周辺割込みクリア
状態遷移
回路
MCLREQ
TYPE.MOD,WS
DDNO ビット
DMAコントロール
セレクタ
IRQ4~0
ERIR,EDIR
BLK レジスタ
DMASA 2段レジスタ
SADM,SASZ7~0 SADR
DMADA 2 段レジスタ
DADM,DASZ7~0 DADR
ライトバック
セレクタ
アドレス
カウンタバッファ カウンタバッファ
アクセス
セレクタ
X-bus
セレクタ
読込み/
書込み制御
DDNO
アドレスカウンタ
バスコン
トローラ
へ
バス制御部
読出し
書込み
DSS2~0
優先度回路
バス制御部
バッファ
ライトバック
399
第 14 章 DMA コントローラ (DMAC)
DMA コントローラ (DMAC) のレジスタ
14.2
DMA コントローラ (DMAC) で使用するレジスタの構成および機能について説明しま
す。
■ DMA コントローラ (DMAC) のレジスタ一覧
図 14.2-1 に , DMA コントローラ (DMAC) のレジスタ一覧を示します。
図 14.2-1 DMA コントローラ (DMAC) のレジスタ一覧
bit
31
24
23
16
15
8
7
0
ch.0
コントロール / ステータスレジスタ A
(DMACA0)
ch.0
コントロール / ステータスレジスタ B
(DMACB0)
ch.1
コントロール / ステータスレジスタ A
(DMACA1)
ch.1
コントロール / ステータスレジスタ B
(DMACB1)
ch.2
コントロール / ステータスレジスタ A
(DMACA2)
ch.2
コントロール / ステータスレジスタ B
(DMACB2)
ch.3
コントロール / ステータスレジスタ A
(DMACA3)
ch.3
コントロール / ステータスレジスタ B
(DMACB3)
ch.4
コントロール / ステータスレジスタ A
(DMACA4)
ch.4
コントロール / ステータスレジスタ B
(DMACB4)
DMAC 全体制御レジスタ
(DMACR)
ch.0
転送元アドレス設定レジスタ
(DMASA0)
ch.0
転送先アドレス設定レジスタ
(DMADA0)
ch.1
転送元アドレス設定レジスタ
(DMASA1)
ch.1
転送先アドレス設定レジスタ
(DMADA1)
ch.2
転送元アドレス設定レジスタ
(DMASA2)
ch.2
転送先アドレス設定レジスタ
(DMADA2)
ch.3
転送元アドレス設定レジスタ
(DMASA3)
ch.3
転送先アドレス設定レジスタ
(DMADA3)
ch.4
転送元アドレス設定レジスタ
(DMASA4)
ch.4
転送先アドレス設定レジスタ
(DMADA4)
400
第 14 章 DMA コントローラ (DMAC)
■ レジスタ設定時の注意
DMA コントローラ (DMAC) の設定をする場合 , DMA が停止しているときに行う必要
があるビットがあります。動作中 ( 転送中 ) に設定した場合には , 正常な動作は保証さ
れません。
以降で説明する各レジスタのビット機能についている「* マーク」は , DMAC 転送中に
設定すると動作に影響するビットを示しています。このビットの書換えは , DMAC 転
送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR の DMAE=0 または DMACA の DENB=0 のとき )
で設定した場合は , 起動許可後に設定が有効になります。
DMA 転送の一時停止状態 (DMACR の DMAH3 ∼ DMAH0 ≠ 0000B または DMACA の
PAUS=1 のとき ) で設定した場合は , 一時停止解除後に設定が有効になります。
401
第 14 章 DMA コントローラ (DMAC)
14.2.1
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4)
コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) は , DMAC 各チャネ
ルの動作を制御するレジスタで , チャネルごとに独立して存在します。
コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) の構成および機能に
ついて説明します。
■ コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット構成
図 14.2-2 に , コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット構
成を示します。
図 14.2-2 コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット構成
bit 31
30
29
28
アドレス
DENB PAUS STRG
000200H (ch.0)
000208H (ch.1)
000210H (ch.2) bit 15 14 13 12
000218H (ch.3)
000220H (ch.4)
27
26
25
24
23
IS4 ∼ 0
11
10
22
21
20
19
DDNO3 ∼ 0
9
8
7
6
5
18
17
16
00000000 0000XXXXB
BLK3 ∼ 0
4
3
2
1
DTC15 ∼ 0
初期値
0
XXXXXXXX XXXXXXXXB
■ コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) のビット詳細
以下に , コントロール / ステータスレジスタ A (DMACA0 ∼ DMACA4) の各ビットの機
能を説明します。
[bit31] DENB (Dma ENaBle) :DMA 動作許可ビット
このビットは , 各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは,転送要求が発生し受け付けられるとDMA転送を開始します。
起動許可されていないチャネルに対して発生した転送要求は , すべて無効となります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , このビットは "0" に
なり , 転送は停止します。
このビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット (DMACA の
bit30) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一
時停止しないで強制停止した場合, DMAは停止しますが転送データは保証されませ
ん。
停止の確認は DSS2 ∼ DSS0 ビット (DMACB の bit18 ∼ bit16) で行ってください。
表 14.2-1 に , DMA 動作許可ビットの機能を示します。
表 14.2-1 DMA 動作許可ビットの機能
DENB
機能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
402
第 14 章 DMA コントローラ (DMAC)
• DMAC 全体制御レジスタ (DMACR) の bit15 (DMAE ビット ) により , 全チャネル
の動作が禁止されている場合 , このビットへの "1" 書込みは無効となり , 停止状
態を維持します。また , このビットにより動作が許可されている状態で前記ビッ
トにより動作が禁止された場合 , このビットは "0" となり , 転送は中断します ( 強
制停止 )。
[bit30] PAUS (PAUSe) : 一時停止指示
このビットは , 対応するチャネルの DMA 転送の一時停止制御を行います。このビッ
トがセットされると , 再びこのビットがクリアされるまでの間は , DMA 転送を行い
ません (DMA が停止中は DSS ビットが "1XXB" になります )。
起動前にこのビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
このビットがセットされている間に新たに発生した転送要求は受け付けられます
が , このビットをクリアしないと転送は開始しません (「14.3.9 開始∼終了 / 停止ま
での動作」の ■転送要求の受付けと転送を参照 )。
表 14.2-2 に , 一時停止指示の機能を示します。
表 14.2-2 一時停止指示の機能
PAUS
機能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 一時停止
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit29] STRG (Software TRiGger) : 転送要求
このビットは , 対応するチャネルの DMA 転送要求を生成します。このビットに "1"
を書き込むと,レジスタへの書込みが終了した時点より転送要求が発生し,対応チャ
ネルの転送を開始します。
ただし , 対応するチャネルが起動されていない場合は , このビットへの操作は無効
となります。
DMAE ビットの書込みによる起動と , このビットによる転送要求が同時の場合 , 転
送要求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時
である場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転
送は開始しません。
表 14.2-3 に , 転送要求の機能を示します。
表 14.2-3 転送要求の機能
STRG
機能
0
無効
1
DMA 起動要求
• リセット時 , "0" に初期化されます。
• 読出し値は常に "0" となります。
• 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。
403
第 14 章 DMA コントローラ (DMAC)
[bit28 ∼ bit24] IS4 ∼ IS0 (Input Select): 転送要因選択
このビットは , 転送要求の要因を表 14.2-4 のように選択します。ただし , STRG ビッ
ト機能によるソフトウェア転送要求のときはこの設定にかからわず有効となりま
す。
表 14.2-4 転送要求の要因設定
IS
機能
00000B
ソフトウェアでの起動禁止
00001B
設定禁止
↓
01101B
↓
設定禁止
01110B
外部端子 "H" レベル または ↑エッジ
01111B
外部端子 "L" レベル または ↓エッジ
10000B
UART0 ( 受信完了 )
10001B
UART1 ( 受信完了 )
10010B
UART2 ( 受信完了 )
10011B
UART0 ( 送信完了 )
10100B
UART1 ( 送信完了 )
10101B
UART2 ( 送信完了 )
10110B
外部割込み 0
10111B
外部割込み 1
11000B
リロードタイマ 0
11001B
リロードタイマ 1
11010B
リロードタイマ 2
11011B
外部割込み 2
11100B
11101B
外部割込み 3
PPG0
11110B
PPG1
11111B
A/D
• リセット時 , "00000B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
• 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1XXXXB), 選択した周辺機能は
割込み制御レジスタ (ICR) で割込みを禁止状態にしてください。
• デマンド転送モードを選択した場合は , IS4 ∼ 0=01110B, 01111B のみ設定可能です。
ほかの要因での起動は禁止です。
• 外部要求入力は , ch.0, ch.1 のみ有効です。ch.2, ch.3, ch.4 は , 外部要求入力の選択は
できません。また , レベル検出かエッジ検出かはモード設定により決定されます。デマ
ンド転送はレベル検出 , ほかはエッジ検出になります。
外部割込み0∼3の転送要因を選択する場合は, 基本クロック分周設定レジスタ(DIVR0)
による CPU クロックおよび周辺クロックの設定が下記に示す条件での使用はできませ
ん。
404
第 14 章 DMA コントローラ (DMAC)
CPU クロックの分周比
周辺クロックの分周比
CLKB 分周比 =1
CLKP 分周比 >3
CLKB 分周比 =2
CLKP 分周比 >6
CLKB 分周比 =3
CLKP 分周比 >9
CLKB 分周比 =4
CLKP 分周比 >12
CLKB 分周比 =5
CLKP 分周比 >15
[bit23 ∼ bit20] DDNO3 ∼ DDNO0 ( ダイレクトアクセスナンバー ):
内蔵周辺へのフライバイ機能
これらのビットは,対応するチャネルで使用する転送先/元の内蔵周辺を指定します。
表 14.2-5 に , ダイレクトアクセスナンバーの設定内容を示します。
表 14.2-5 ダイレクトアクセスナンバーの設定内容
DDNO
機能
0000B
未使用
0001B
未使用
0010B
未使用
0011B
未使用
0100B
未使用
0101B
未使用
0110B
未使用
0111B
未使用
1000B
未使用
1001B
未使用
1010B
未使用
1011B
未使用
1100B
未使用
1101B
未使用
1110B
未使用
1111B
設定禁止
• リセット時 , "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
MB91301 シリーズは , この機能はサポートされません。書込みデータは無視されます。通
常は , "0000B" を書き込んでください。
405
第 14 章 DMA コントローラ (DMAC)
[bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
これらのビットは , 対応するチャネルのブロック転送時のブロックサイズを指定し
ます。これらのビットに設定した値が 1 回の転送単位におけるワード数 ( 正確には ,
データ幅設定の繰返し回数 ) となります。ブロック転送を行わない場合は "0001B"
( サイズ 1) を設定してください。デマンド転送時はこのレジスタ値は無視されます。
サイズ 1 となります。
表 14.2-6 に , ブロックサイズ指定の機能を示します。
表 14.2-6 ブロックサイズ指定の機能
BLK
XXXXB
機能
対応チャネルのブロックサイズ指定
• リセット時 , 初期化されません。
• 読出しおよび書込みが可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit00] DTC (Dma Terminal Count register): 転送回数レジスタ
これらのビットは , 転送回数を格納するレジスタです。各レジスタは 16 ビット長で
構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
表 14.2-7 に , 転送回数レジスタの機能を示します。
表 14.2-7 転送回数レジスタの機能
DTC
XXXXH
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , このレジスタのデータを DMA 専用転送回数カウンタのカ
ウンタバッファに格納して 1 転送単位ごとに -1 カウントします ( 減算 )。DMA の転
送終了時にカウンタバッファの内容をこのレジスタに書き戻して DMA は終了しま
す。したがって , DMA 動作中の転送回数値を読み出すことはできません。
• リセット時 , 初期化されません。
• 読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長または
ワード長でアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
406
第 14 章 DMA コントローラ (DMAC)
14.2.2
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4)
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) は , DMAC 各チャネ
ルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) の構成および機能に
ついて説明します。
■ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット構成
図 14.2-3 に , コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット構
成を示します。
図 14.2-3 コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット構成
bit 31
30
29
28
27
26
アドレス
TYPE1 ∼ 0 MOD1 ∼ 0 WS1 ∼ 0
000204H (ch.0)
00020CH (ch.1)
000214H (ch.2) bit 15 14 13 12 11 10
00021CH (ch.3)
SASZ7 ∼ 0
000224H (ch.4)
25
24
23
22
21
20
19
18
SADMDADM DTCR SADR DADR ERIE EDIE
9
8
7
6
5
4
17
16
DSS2 ∼ 0
3
2
1
初期値
00000000 00000000B
0
XXXXXXXX XXXXXXXXB
DASZ7 ∼ 0
■ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット詳細
以下に , コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) の各ビットの機
能を説明します。
[bit31, bit30] TYPE (TYPE) : 転送タイプ設定
これらのビットは転送タイプ設定ビットで , 対応するチャネルの動作タイプを設定
します。
• 2 サイクル転送モード :
転送元アドレス (DMASA) と転送先アドレス (DMADA)
を設定して , 読出し動作と書込み動作を転送回数分繰
り返して転送するモード。転送元 / 転送先ともに全領
域 (32 ビットアドレス ) 指定可能です。
• フライバイ転送モード :
転送先アドレス (DMADA) にメモリアドレスを設定す
ることにより,外部⇔外部転送を1サイクルで行うモー
ド。メモリアドレスは , 必ず外部領域を指定してくだ
さい。
表 14.2-8 に , 転送タイプの設定内容を示します。
表 14.2-8 転送タイプの設定内容
TYPE
機能
00B
2 サイクル転送 ( 初期値 )
01B
フライバイ : メモリ→ I/O 転送
10B
フライバイ :I/O →メモリ 転送
11B
設定禁止
407
第 14 章 DMA コントローラ (DMAC)
• リセット時 , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit29, bit28] MOD (MODe) : 転送モード設定
これらのビットは転送モード設定ビットで , 対応チャネルの動作モードを設定しま
す。
表 14.2-9 に , 転送モードの設定内容を示します。
表 14.2-9 転送モードの設定内容
MOD
機能
00B
ブロック / ステップ転送モード ( 初期値 )
01B
バースト転送モード
10B
デマンド転送モード
11B
設定禁止
• リセット時 , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit27, bit26] WS (Word Size) : 転送データ幅選択
これらのビットは転送データ幅選択ビットで , 対応チャネルの転送データ幅を選択
します。このレジスタに設定したデータ幅単位で指定回数分を転送します。
表 14.2-10 に , 転送データ幅の選択を示します。
表 14.2-10 転送データ幅の選択
WS
機能
00B
バイト単位で転送 ( 初期値 )
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
• リセット時 , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
408
第 14 章 DMA コントローラ (DMAC)
[bit25] SADM (Source-ADdr. count-Mode select):転送元アドレスカウントモード指定
このビットは , 対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を
指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送後に加算 / 減算され , 転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMASA) に書き込まれます。
したがって , DMA 転送が終了されるまで転送元アドレスレジスタは更新されませ
ん。
アドレス固定にする場合は , このビットを "0" または "1" に指定してアドレスカウ
ント幅 (SASZ, DASZ) を "0" としてください。
表 14.2-11 に , 転送元アドレスカウントモード指定の機能を示します。
表 14.2-11 転送元アドレスカウントモード指定の機能
SADM
機能
0
転送元アドレスは増加します。( 初期値 )
1
転送元アドレスは減少します。
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit24] DADM (Destination-ADdr. count-Mode select):
転送先アドレスカウントモード指定
このビットは , 対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を
指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
したがって , DMA 転送が終了されるまで転送先アドレスレジスタは更新されませ
ん。
アドレス固定にする場合は , このビットを "0" または "1" に指定してアドレスカウ
ント幅 (SASZ, DASZ) を "0" としてください。
表 14.2-12 に , 転送先アドレスカウントモード指定の機能を示します。
表 14.2-12 転送先アドレスカウントモード指定の機能
DADM
機能
0
転送元アドレスは増加します。( 初期値 )
1
転送元アドレスは減少します。
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
409
第 14 章 DMA コントローラ (DMAC)
[bit23] DTCR (DTC-reg. Reload): 転送回数レジスタリロード指定
このビットは,対応するチャネルの転送回数レジスタのリロード機能を制御します。
このビットによってリロード動作が許可されている場合 , 転送終了後に回数レジス
タ値を初期設定値に戻して停止し , 転送要求 (STRG または IS 設定による起動要求 )
待ち状態になります。このビットが "1" の場合 , DENB ビットはクリアされません。
停止させる場合は , DENB=0 または DMAE=0 にする必要がありますが , この場合は
強制停止になります。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了で停止するシングルショット動作となります。この場
合 , DENB ビットはクリアされます。
表 14.2-13 に , 転送回数レジスタリロード指定の機能を示します。
表 14.2-13 転送回数レジスタリロード指定の機能
DTCR
機能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit22] SADR (Source-ADdr.-reg. Reload): 転送元アドレスレジスタリロード指定
このビットは , 対応するチャネルの転送元アドレスレジスタのリロード機能を制御
します。
このビットによってリロード動作が許可されている場合 , 転送終了後に転送元アド
レスレジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了で停止するシングルショット動作となります。この場
合 , アドレスレジスタ値は , 初期設定値がリロードされた状態で停止します。
このビットによってリロード動作が禁止されている場合は , 転送終了時のアドレス
レジスタ値は最終アドレスの次のアクセスアドレスとなります。アドレス増加を指
定している場合は , 増加したアドレスとなります。
表 14.2-14 に , 転送元アドレスレジスタリロード指定の機能を示します。
表 14.2-14 転送元アドレスレジスタリロード指定の機能
SADR
機能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
410
第 14 章 DMA コントローラ (DMAC)
[bit21] DADR (Dest.-ADdr.-reg. Reload): 転送先アドレスレジスタリロード指定
このビットは , 対応するチャネルの転送先アドレスレジスタのリロード機能を制御
します。
このビットによってリロード動作が許可されている場合 , 転送終了後に転送先アド
レスレジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit22 (SADR) の内容と同等です。
表 14.2-15 に , 転送先アドレスレジスタリロード指定の機能を示します。
表 14.2-15 転送先アドレスレジスタリロード指定の機能
DADR
機能
0
転送先アドレスレジスタリロード禁止 ( 初期値 )
1
転送先アドレスレジスタリロード許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit20] ERIE (ERror Interrupt Enable): エラー割込み出力許可
このビットは,エラー発生による終了時の割込み発生を制御します。発生したエラー
の内容は , DSS2 ∼ DSS0 で示されます。すべての終了要因でこの割込みが発生する
のではなく , 特定の終了要因の際のみ割込みが発生することに注意してください
(bit18 ∼ bit16 の DSS2 ∼ DSS0 ビットを参照 )。
表 14.2-16 に , エラー割込み出力許可の機能を示します。
表 14.2-16 エラー割込み出力許可の機能
ERIE
機能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit19] EDIE (EnD Interrupt Enable): 終了割込み出力許可
このビットは , 正常終了時の割込み発生を制御します。
表 14.2-17 に , 終了割込み出力許可の機能を示します。
表 14.2-17 終了割込み出力許可の機能
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
411
第 14 章 DMA コントローラ (DMAC)
[bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status): 転送停止要因表示
これらのビットは , 対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビッ
トのコード ( 終了コード ) を表示します。
表 14.2-18 に , 終了コードの内容を示します。
表 14.2-18 終了コードの内容
DSS
機能
割込み発生
000B
初期値
なし
X01B
アドレスエラー ( アンダフロー / オーバフロー )
エラー
X10B
転送停止要求
エラー
X11B
正常終了
終了
1XXB
DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど )
なし
転送停止要求は,周辺回路からの要求と外部端子DSTP機能を使用した場合のみセッ
トされます。
「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 , "000B" に初期化されます。
• "000B" を書き込むことにより , クリアされます。
• 読出しおよび書込みが可能ですが , このビットへの書込みは "000" のみ有効とな
ります。
[bit15 ∼ bit8] SASZ (Source Addr count SiZe):転送元アドレスカウントサイズ指定
これらのビットは , 対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の
増減幅を指定します。このビットに設定した値が 1 回の転送単位におけるアドレス
増減幅となります。アドレスの増減は , 転送元アドレスカウントモード (SADM) の
指定に従います。
表 14.2-19 に , 転送元アドレスカウントサイズ指定の機能を示します。
表 14.2-19 転送元アドレスカウントサイズ指定の機能
SASZ
XXH
機能
転送元アドレスの増減幅を指定します。0 ∼ 255
• リセット時 , 初期化されません。
• 読出しおよび書込みが可能です。
412
第 14 章 DMA コントローラ (DMAC)
[bit7 ∼ bit0] DASZ (Des Addr count SiZe): 転送先アドレスカウントサイズ指定
これらのビットは , 対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の
増減幅を指定します。これらのビットに設定した値が 1 回の転送単位におけるアド
レス増減幅となります。アドレスの増減は転送先アドレスカウントモード (DADM)
の指定に従います。
表 14.2-20 に , 転送先アドレスカウントサイズ指定の機能を示します。
表 14.2-20 転送先アドレスカウントサイズ指定の機能
DASZ
XXH
機能
転送先アドレスの増減幅を指定します。0 ∼ 255
• リセット時 , 初期化されません。
• 読出しおよび書込みが可能です。
413
第 14 章 DMA コントローラ (DMAC)
14.2.3
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) は , DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立
して存在します。転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) の構成および機能について説明します。
■ 転送元/転送先アドレス設定レジスタ(DMASA0∼DMASA4/DMADA0∼DMADA4)
のビット構成
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)
は , 転送元 / 先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成
されています。
図 14.2-4 に , 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット構成を示します。
図 14.2-4 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4) の
ビット構成
bit 31
アドレス
001000H (ch.0)
001008H (ch.1)
001010H (ch.2) bit 15
001018H (ch.3)
001020H (ch.4)
bit 31
アドレス
001004H
00100CH
001014H
00101CH
001024H
414
(ch.0)
(ch.1)
(ch.2) bit 15
(ch.3)
(ch.4)
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
XXXXXXXX XXXXXXXXB
DMASA31 ∼ 16
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
XXXXXXXX XXXXXXXXB
DMASA15 ∼ 0
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
13
12
11
10
9
8
7
6
DMADA15 ∼ 0
初期値
XXXXXXXX XXXXXXXXB
DMADA31 ∼ 16
14
初期値
5
4
3
2
1
0
XXXXXXXX XXXXXXXXB
第 14 章 DMA コントローラ (DMAC)
■ 転送元/転送先アドレス設定レジスタ(DMASA0∼DMASA4/DMADA0∼DMADA4)
のビット詳細
以下に , 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) の各ビットの機能を説明します。
[bit31 ∼ bit0] DMASA (DMA Source Addr): 転送元アドレス設定
これらのビットは , 転送元アドレスを設定します。
[bit31 ∼ bit0] DMADA (DMA Destination Addr): 転送先アドレス設定
これらのビットは , 転送先アドレスを設定します。
DMA 転送が起動すると , このレジスタのデータを DMA 専用アドレスカウンタのカ
ウンタバッファに格納して 1 転送ごとに設定に従ってアドレスカウントします。
DMAの転送終了時にカウンタバッファの内容をこのレジスタに書き戻してDMAは
終了します。したがって , DMA 動作中のアドレスカウンタ値を読み出すことはでき
ません。
すべてのレジスタは , 専用のリロードレジスタをもっています。転送元 / 転送先ア
ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に
自動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには
影響を与えません。
• リセット時 , 初期化されません。
• 読出しおよび書込みが可能です。このレジスタは , 必ず 32 ビットデータでアク
セスしてください。
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。したがって , 転送アド
レスをリアルタイムで読み出すことはできません。
<注意事項>
このレジスタで , DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジス
タに DMA 転送を行うことはできません。
415
第 14 章 DMA コントローラ (DMAC)
14.2.4
DMAC 全体制御レジスタ (DMACR)
DMAC 全体制御レジスタ (DMACR) は , DMAC5 チャネル分全体の動作を制御するレ
ジスタです。このレジスタは , 必ずバイト長でアクセスしてください。
DMAC 全体制御レジスタ (DMACR) の構成および機能について説明します。
■ DMAC 全体制御レジスタ (DMACR) のビット構成
図 14.2-5 に , DMAC 全体制御レジスタ (DMACR) のビット構成を示します。
図 14.2-5 DMAC 全体制御レジスタ (DMACR) のビット構成
bit 31
アドレス
000240H
DMAE
bit 15
-
30
29
28
27
26
25
-
-
PMO1
14
13
12
11
10
9
-
-
-
-
-
-
24
23
22
21
20
19
18
17
16
初期値
-
-
-
-
-
-
-
-
0XX00000 00000000B
8
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
-
-
DMAH3 ∼ 0
XXXXXXXX XXXXXXXXB
■ DMAC 全体制御レジスタ (DMACR) のビット詳細
以下に , DMAC 全体制御レジスタ (DMACR) の各ビットの機能を説明します。
[bit31] DMAE (DMA Enable) :DMA 動作許可
このビットは , DMA 全チャネルの動作を制御します。
このビットによって DMA 動作が禁止されている場合 , 各チャネルごとの起動 / 停
止の設定や動作状態にかからわず , 全チャネルの転送動作が禁止されます。転送中
であったチャネルは要求を取り下げ , ブロック境界で転送を停止します。禁止状態
で , 各チャネルに対して行われる起動操作はすべて無効となります。
このビットによって DMA 動作が許可されている場合 , チャネルごとに起動 / 停止
操作が有効となります。このビットで DMA 動作許可を行ったのみでは , 各チャネ
ルに対する起動は行われません。
このビットに "0" を書き込むと強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット
(DMACR の bit27 ∼ bit24) で DMA を一時停止状態にしてから強制停止 ("0" 書込み )
してください。一時停止しないで強制停止した場合は , DMA は停止しますが転送
データは保証されません。停止の確認は , DSS2 ∼ DSS0 ビット (DMACB の bit18 ∼
bit16) で行ってください。
表 14.2-21 に , DMA 動作許可の機能を示します。
表 14.2-21 DMA 動作許可の機能
DMAE
機能
0
全チャネル DMA 転送禁止 ( 初期値 )
1
全チャネル DMA 転送許可
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
416
第 14 章 DMA コントローラ (DMAC)
[bit28] PM01 (Priority Mode ch.0, ch.1 robine) : チャネル優先度回転
このビットは , ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定しま
す。
表 14.2-22 に , チャネル優先度回転の機能を示します。
表 14.2-22 チャネル優先度回転の機能
PM01
機能
0
優先順位固定 (ch.0 > ch.1) ( 初期値 )
1
優先順位回転 (ch.1 > ch.0)
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit27 ∼ bit24] DMAH (DMA Halt) :DMA 一時停止
これらのビットは , DMA 全チャネルの一時停止制御を行います。これらのビットが
セットされると,再びこれらのビットがクリアされるまでの間は,全チャネルのDMA
転送を行いません。
起動前にこれらのビットをセットしてから起動した場合 , 全チャネルが一時停止の
ままとなります。
これらのビットがセットされている間にDMA転送が許可(DENB=1)されているチャ
ネルに発生した転送要求は , すべて有効となり , これらのビットをクリアすること
により転送を開始します。
表 14.2-23 に , DMA 一時停止の機能を示します。
表 14.2-23 DMA 一時停止の機能
DMAH
0000B
0000B 以外
機能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時 , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit30, bit29, bit23 ∼ bit0] (reserved) : 未使用ビット
これらのビットは , 未使用ビットです。
• 読出し値は不定です。
417
第 14 章 DMA コントローラ (DMAC)
14.2.5
その他の機能
MB91301 シリーズは , 外部転送用として DACK, DEOP, DREQ の端子があります
が , 汎用ポートと兼用になっています。
■ DACK, DEOP, DREQ の端子機能
外部転送用として DACK, DEOP, DREQ の端子機能を使用するときは , ポート機能から
DMA 端子機能に切り換える必要があります。
ポート機能レジスタ (PFR) の設定で切り換えてください。
418
第 14 章 DMA コントローラ (DMAC)
14.3
DMA コントローラ (DMAC) の動作
DMA コントローラ (DMAC) は FR ファミリに内蔵され , CPU の命令動作を介するこ
となく高速にデータ転送を制御する多機能 DMA コントローラです。
DMA コントローラ (DMAC) の動作について説明します。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対して DMA 転送要求を出力し , バスコン
トローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれのコントロール / ステータスレジスタ B (DMACB) の
MOD1, MOD0 ビットで設定された転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求で 1 ブロック転送単位のみを転送し , その後次の転送要求が受け付けら
れるまでは , DMA はバスコントローラに対し転送要求を停止します。
1ブロック転送単位とは,設定されたブロックサイズ分(DMACAのBLK3∼BLK0)です。
● バースト転送
1 回の転送要求で指定転送回数終了まで連続して転送します。
指定転送回数とは,ブロックサイズ分×転送回数分(DMACAのBLK3∼BLK0×DMACA
の DTC15 ∼ DTC0) です。
● デマンド転送
外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは
連続して転送します。
デマンド転送での指定転送回数は設定した転送回数分 (DMACA の DTC15 ∼ DTC0) と
なります。ブロックサイズは "1" 固定となり , レジスタ値は無視されます。
419
第 14 章 DMA コントローラ (DMAC)
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作します。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー
タを書き込みます。
● フライバイ転送 ( メモリ→ I/O)
DMA コントローラの動作は , 読出し動作を 1 つの単位として動作します。
フライバイ転送を設定して DMA 転送を行うと , DMA はバスコントローラに対してフ
ライバイ転送 ( 読出し ) 要求を出力し , バスコントローラは外部インタフェースにフラ
イバイ転送 ( 読出し ) をさせます。
● フライバイ転送 (I/O →メモリ )
DMA コントローラの動作は , 書込み動作を 1 つの単位として動作します。
ほかはフライバイ転送 ( メモリ→ I/O) と同等です。
MB91301 シリーズでのフライバイ転送のアクセス領域は , 必ず外部領域でなければい
けません。
■ 転送アドレス
アドレッシングには以下に記述するものがあり , チャネル転送元 / 転送先ごとに独立に
設定します。
2 サイクル転送とフライバイ転送でのアドレス設定レジスタ (DMASA, DMADA) の指
定方法は異なります。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとして , アクセスします。転送要求を受け付けたら , DMA はレジスタからア
ドレスを一時記憶バッファに格納して転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタで次回アクセスアドレスを生成 ( 加算 /
減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの内容
は , 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へ書き戻されます。し
たがって , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか
更新されませんので , 転送中のアドレスをリアルタイムに知ることはできません。
● フライバイ転送でのアドレスの指定
フライバイ転送では , 転送先アドレスレジスタ (DMADA) から読み出した値をアドレス
としてアクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定す
るアドレスは , 必ず外部領域にしてください。
転送要求を受け付けたら , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタで次回アクセスアドレスを生成 ( 加算 /
減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの内容
は , 1 ブロック転送単位終了ごとにレジスタ (DMADA) へ書き戻されます。したがって ,
アドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されませんので ,
転送中のアドレスをリアルタイムに知ることはできません。
420
第 14 章 DMA コントローラ (DMAC)
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転送回
数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または
再起動 * します。
転送回数レジスタ値は , アドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
*: 転送回数レジスタリロード禁止に設定している場合は , 転送を終了します。許可さ
れている場合はレジスタ値を初期化して , 転送待ち状態になります (DMACB の
DTCR)。
● 転送終了
転送終了要因には , 以下に記述するものがあり , 終了時は終了コードとして要因が表示
されます (DMACB の DSS2 ∼ DSS0)。
• 指定転送回数の終了 (DMACA の BLK3 ∼ BLK0 × DMACA の DTC15 ∼ DTC0) →
正常終了
• 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 → エラー
• アドレスエラーの発生 → エラー
• リセットの発生 → リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生できます。
421
第 14 章 DMA コントローラ (DMAC)
転送要求の設定
14.3.1
DMA 転送を起動する転送要求には , 以下の 3 種類があります。
• 外部転送要求端子
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用できます。
■ 外部転送要求端子
各チャネルに 1 本用意された入力端子への入力により , 転送要求を発生します。
MB91301 シリーズでは ch.1, ch.2 のみ対応しています (DREQ0, DREQ1)。
この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。
● エッジ検出
転送タイプがブロック / ステップ / バースト転送のときは , エッジ検出が選択されます。
• 立下りエッジ検出:転送要因選択レジスタで設定。
DMACAのIS4∼IS0=01110Bのとき
• 立上りエッジ検出:転送要因選択レジスタで設定。
DMACAのIS4∼IS0=01111Bのとき
● レベル検出
転送タイプがデマンド転送のときは , レベル検出が選択されます。
• "H" レベル検出 : 転送要因選択レジスタで設定。DMACA の IS4 ∼ IS0=01110B のとき
• "L" レベル検出 : 転送要因選択レジスタで設定。DMACA の IS4 ∼ IS0=01111B のとき
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA の IS4 ∼ IS0=1XXXXB)。
外部転送要求とは同時に使用できません。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください ( 割込み制御レジスタ (ICR))。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA の STRG)。
外部転送要求端子と内蔵周辺要求とは独立で , 常に使用できます。
起動 ( 転送許可 ) と同時にソフトウェア要求を発生した場合 , 直後にバスコントローラ
に対し DMA 転送要求を出力し転送を開始します。
422
第 14 章 DMA コントローラ (DMAC)
14.3.2
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンス等を決定する転送タイプと転送
モードを独立して設定できます (DMACB の TYPE1 ∼ TYPE0, MOD1 ∼ MOD0 の設
定 )。
■ 転送シーケンスの選択
レジスタの設定により , 以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• デマンド 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
• バーストフライバイ転送
• デマンドフライバイ転送
• ブロック / ステップフライバイ転送
● バースト 2 サイクル転送
バースト 2 サイクル転送は , 1 回の転送要因で指定転送回数の転送を続けて行います。
2 サイクル転送の場合は , 転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出
要求を選択できます。
表 14.3-1 に , バースト 2 サイクル転送の指定可能転送アドレスを示します。
表 14.3-1 バースト 2 サイクル転送の指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
バースト転送の特長は , 以下のとおりです。
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を
行います。
転送回数は , ブロックサイズ分×転送回数分になります (DMACA の BLK3 ∼ BLK0 ×
DMACA の DTC15 ∼ DTC0)。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転
送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで
復帰しません。
423
第 14 章 DMA コントローラ (DMAC)
図 14.3-1 外部端子立上りエッジ起動 , ブロック数 =1, 転送回数 =4 のときのバースト転送例
転送要求(↑エッジ)
バス動作
SA
CPU
転送回数
DA
SA
4
DA
SA
3
DA
2
SA
DA
CPU
1
0
転送終了
● バーストフライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) だけであること以外は 2 サイクル転送と同じです。
表 14.3-2 に , バーストフライバイ転送の指定可能転送アドレスを示します。
表 14.3-2 バーストフライバイ転送の指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
■ デマンド転送 2 サイクル転送
転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド
転送シーケンスとなります。レベル選択は , DMACA の IS4 ∼ IS0 で設定します。
連続転送の特長は , 以下のとおりです。
• 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要
求レベルの間は , 要求をクリアせずに連続して転送を行います。外部入力が変化す
ると要求がクリアされ , 転送は転送の境目で停止します。これを指定転送回数終了
まで繰り返します。
• その他は , バースト転送と同等に動作します。
図 14.3-2 外部端子 "H" レベル起動 , ブロック数 =1, 転送回数 =3 のときのデマンド転送例
転送要求("H"レベル)
バス動作
CPU
SA
転送回数
DA
3
SA
CPU
DA
2
SA
DA
1
0
転送終了
表 14.3-3 に , デマンド転送 2 サイクル転送の指定可能転送アドレスを示します。
表 14.3-3 デマンド転送 2 サイクル転送の指定可能転送アドレス表
424
転送元アドレス
方向
転送先アドレス指定
外部領域
→
外部領域
外部領域
→
内蔵 I/O
外部領域
→
内蔵 RAM
内蔵 I/O
→
外部領域
内蔵 RAM
→
外部領域
第 14 章 DMA コントローラ (DMAC)
<注意事項>
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先または両方に設定してくだ
さい。デマンド転送モード時は , DMA 転送を外部バスタイミングに合わせているため , 必
ず外部領域へのアクセスが必要になります。
● デマンド転送フライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) である以外は 2 サイクル転送と同じです。
表 14.3-4 に , デマンド転送フライバイ転送の指定可能転送アドレスを示します。
表 14.3-4 デマンド転送フライバイ転送の指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
● ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は , 転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
表 14.3-5 に , ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレスを示しま
す。
表 14.3-5 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
[ ステップ転送 ]
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
ステップ転送の特長は , 以下のとおりです。
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転
送を停止します ( バスコントローラに対し , DMA 転送要求を取り下げます )。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合は , 転送停
止後にチャネルを切り換えて続けて転送を開始します。ステップ転送における優
先順位は , 転送要求が同時に発生した場合のみ意味をもちます。
425
第 14 章 DMA コントローラ (DMAC)
[ ブロック転送 ]
ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。
ブロック転送の特長は , 以下のとおりです。
• 1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス
テップ転送と全く同じ動作となります。
図 14.3-3 外部端子立上りエッジ起動 , ブロック数 =2, 転送回数 =2 のときのブロック転送例
転送要求(↑エッジ)
バス動作
CPU
ブロック数
SA
DA
SA
2
転送回数
DA
1
CPU
0
SA
DA
SA
2
2
DA
1
1
転送終了
● ステップ / ブロック転送フライバイ転送
転送領域が外部領域のみであること , 転送単位が読出し ( メモリ→ I/O) または書込み
(I/O →メモリ ) である以外は 2 サイクル転送と同じです。
表 14.3-6 に , ステップ / ブロック転送フライバイ転送の指定可能転送アドレスを示しま
す。
表 14.3-6 ステップ / ブロック転送フライバイ転送の指定可能転送アドレス表
426
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
第 14 章 DMA コントローラ (DMAC)
14.3.3
DMA 転送全般
DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位は , ブロックサイズ指定レジスタに設定した数 ( ×データ
幅 ) のデータの集合となります。
• 1 転送サイクルで転送されるデータは , データ幅指定の値に固定されるため , 1 転送
単位はブロックサイズ指定値分の転送サイクル数から構成されることになります。
• 転送中により高い優先順位の転送要求が受け付けられた場合または転送の一時停
止要求が発生した場合は , ブロック転送時においても 1 転送単位の境界にならない
と停止しません。これにより分割 / 一時停止を希望しないデータブロックのデータ
保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因と
もなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは
保証されません。
427
第 14 章 DMA コントローラ (DMAC)
■ リロード動作
このモジュールでは , チャネルごとに , 以下に示す 3 種類のリロード機能の設定が可能
です。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後,転送回数レジスタに初期設定値を再設定して起動受付け
待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のままとな
り , 以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で , 固定領域へ繰り返し転送する場合に設定します。
リロード指定をしない場合,指定回数の転送終了後は転送元アドレスレジスタ値が終了
時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
• 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
● 動作モードとリロード動作の特殊な例
• 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードはセットされます。
• 転送終了で一度停止し , 再度入力検出から行いたい場合は , リロード指定をしない
でください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送が終了する
とリロード後一度転送を中断し , あらためて転送要求入力が検出されるまで転送を
しません。
428
第 14 章 DMA コントローラ (DMAC)
アドレッシングモード
14.3.4
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
■ アドレスレジスタの指定
指定方法には , 以下の方法があります。転送シーケンスによって設定してください。
• 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド
レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく
ださい。
• フライバイ転送モードでは , 転送先アドレス設定レジスタ (DMADA) にはメモリア
ドレスを設定してください。このときの転送元アドレス設定レジスタ (DMASA) の
値は無視されます。
■ アドレスレジスタの特長
最大 32 ビット長のレジスタです。32 ビット長の場合メモリマップ上の全空間がアクセ
ス可能です。
■ アドレスレジスタの機能
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタで次回アクセス時のアドレス計算が行われ , 計算結果のア
ドレスでアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より
選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま
す (DMACB の SASZ, DASZ)。
• 転送終了時のアドレスレジスタにはリロード機能を有効にしていない場合 , 最終ア
ドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<注意事項>
• 32 ビット長フルアドレス計算の結果オーバフロー / アンダフローが発生した場合 , ア
ドレスエラーとして検出され , そのチャネルの転送を中止します。終了コードに関する
項目を参照してください。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• デマンド転送時は,必ず外部領域のアドレスを転送元か転送先または両方に設定してく
ださい。
• DMAC により DMAC 自身のレジスタへは転送しないでください。
429
第 14 章 DMA コントローラ (DMAC)
14.3.5
データの種類
1 回で転送されるデータ長 ( データ幅 ) は , 以下の内から選択します。
• バイト
• ハーフワード
• ワード
■ データ長 ( データ幅 )
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と違うアドレスが設定された場合,異なる下位ビットは無視さ
れます。
• バイト
: 実際のアクセスアドレスとアドレス指定が一致します。
• ハーフワード
: 実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイ
トとなります。
• ワード
: 実際のアクセスアドレスは下位 2 ビットが "00" から始まる 4 バイ
トとなります。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合,内部アドレスバ
ス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上
記の決まりに従ってアドレスが修正されてアクセスされます。
430
第 14 章 DMA コントローラ (DMAC)
14.3.6
転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。
■ 転送回数制御
転送回数指定値は , 転送回数レジスタ (DMACA の DTC) に設定します。
レジスタ値は , 転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
転送回数レジスタ群の特長は , 以下のとおりです。
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" のときに起動すると , 65536 回の転送を行います。
■ リロード動作
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタでカウントを行った際に "0" になると , 転送終了を通知するとと
もに , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
431
第 14 章 DMA コントローラ (DMAC)
CPU 制御
14.3.7
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発
行します。
バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA
転送が開始されます。
■ DMA 転送と割込み
• DMA 転送中は , 基本的には転送終了まで割込みの受付けは停止します。
• また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転
送終了まで割込み処理動作は停止します。
• 例外として , NMI 要求または割込みコントローラで設定されたホールド抑止レベル
より高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロック )
の境界でバスコントローラは転送要求を一時取り下げ , 割込み要求がクリアされる
まで転送を一時停止状態にします。この間 , 転送要求は内部で保持されます。割込
み要求がクリアされた後に再度 DMAC はバスコントローラに転送要求を発行して
バス使用権を取得し , DMA 転送を再開します。
■ DMA 抑止
FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると , DMA 転送
を中断して該当割込みルーチンへ分岐します。この機構は割込み要求がある限り有効
ですが , 割込み要因をクリアすると抑止機構が働かなくなり , 割込み処理ルーチン内で
DMA 転送を再開します。このため , DMA 転送を中断するレベルの割込み要因の処理
ルーチン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいときは , DMA 抑
止機能を使用します。DMA 抑止機能は , DMA 全体制御レジスタの DMAH3 ∼ DMAH0
ビットに "0" 以外の値を書き込むことで起動し , "0" を書き込むことで停止します。
この機能は , 主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込
み要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このように
すると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰する前
に DMAH3 ∼ DMAH0 ビットの内容を 1 つ減少させます。もし , 多重割込みであれば
DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないため , 引き続いて DMA 転送
は抑止されます。
また , 多重割込みでなければ , DMAH3 ∼ DMAH0 ビットの内容が "0"
になるため , その後すぐに DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みでこの機能を
使用できません。
• DMA タスクの優先順位は , 必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
432
第 14 章 DMA コントローラ (DMAC)
14.3.8
ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用
可能となります。この際の , 外部ホールド要求とこのモジュールによる DMA 転送要
求との関係は , 以下に示すとおりとなります。
■ 外部ホールド中の DMA 転送要求
DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA
転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。
■ DMA 転送中の外部ホールド要求
外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場
合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転
送を再開します。
■ DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外
部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部
ホールドが解除され次第 , DMA 転送を再開します。
433
第 14 章 DMA コントローラ (DMAC)
14.3.9
開始∼終了 / 停止までの動作
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動
作を許可しておく必要があります。開始から終了 / 停止までの動作について説明しま
す。
■ 動作開始
● 全チャネル動作許可
DMAC 各チャネルを起動する前に , DMA 動作許可ビット (DMACR の DMAE) であら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態で行った
起動設定および発生した転送要求はすべて無効となります。
● 転送起動
チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードで DMA 転送動
作が開始されます。
● 一時停止状態よりの起動
チャネルごとまたは全チャネル制御で起動前に一時停止状態にしてあった場合,転送動
作を起動しても一時停止状態を維持します。この間に転送要求が発生した場合は , 要求
を受け付け , 保持します。一時停止を解除した時点から転送を開始します。
■ 転送要求の受付けと転送
起動後より , 各チャネルに対して設定した転送要求のサンプリングが開始されます。
外部端子起動要因でエッジ検出を選択した場合,転送要求が検出されると転送要求のク
リア条件を満たすまで DMAC 内部で要求を保持します ( ブロック / ステップ / バース
ト転送で外部端子起動要因を選択したとき )。
外部端子起動要因でレベル検出または周辺割込み起動を選択した場合は,転送要求がク
リアされるまで DMAC は転送を続けますが , クリアされたら 1 転送単位で転送を停止
します ( デマンド転送 / 周辺割込み起動 )。周辺割込みは , レベル検出扱いとなります
ので割込みは DMA による割込みクリアで行うようにしてください。
転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け
付けられており , 優先順位の判断をして , 1 転送単位ごとに転送するチャネルを決定し
ています。
434
第 14 章 DMA コントローラ (DMAC)
■ DMA による周辺割込みクリア
この DMA には周辺割込みをクリアする機能があります。この機能は , DMA 起動要因
に周辺割込みを選択したときに機能します (IS4 ∼ IS0=1XXXXB のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。つまり , IS4 ∼ IS0 で設
定された周辺機能のみクリアされます。
割込みクリアの発生タイミングは , 転送モードにより異なります (「14.4 動作フロー
チャート」を参照 )。
• ブロック / ステップ転送 : ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転
送ごとにクリア信号が発生します。
• バースト転送 : バースト転送を選択した場合は , 指定転送回数がすべて終了したら
クリア信号が発生します。
• デマンド転送 : デマンド転送では外部端子からの起動要求のみサポートするため
クリア信号は出ません。
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定(各チャネル独立または全チャネル同時に設定)
一時停止ビットにより一時停止を設定すると,一時停止解除設定を再度設定するまでの
間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行ってく
ださい。
一時停止を解除すると , 転送を再開します。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界で一時停止し , バス権を開放して NMI/ 割込み
処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , そのま
ま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
435
第 14 章 DMA コントローラ (DMAC)
■ 動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止す
ることも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードで『正常終了』を表示した後 , 以降の転送要求は無効となります (DMACA の
DENB ビットをクリアする )。
リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし ,
終了コードで『正常終了』を表示した後 , 再度転送要求待ちとなります (DMACA の
DENB ビットをクリアしない )。
● 全チャネル動作禁止
DMA 動作許可ビット DMAE で全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動し直さないと , 転送は行われません。この場合 , 割
込みは一切発生しません。
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として,各種エラー発生
による停止および強制停止があります。
● 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては,異常を検出した際などに転送停止要求を発生
するものがあります ( 例 : 通信系周辺における受信 / 送信エラー等 )。
この転送停止要求を受け取った DMAC は , 終了コードで『転送停止要求』を表示して
対応するチャネルの転送を停止します。
表 14.3-7 に , エラーによる停止の機能を示します。
表 14.3-7 エラーによる停止の機能
IS
機能
転送停止要求
00000B
↓
01111B
ハードウェアでの起動禁止
↓
外部端子 "L" レベル または↓エッジ
↑
なし
↓
10000B
10001B
10010B
UART0 ( 受信エラーによる転送停止要求 )
UART1 ( 受信エラーによる転送停止要求 )
UART2 ( 受信エラーによる転送停止要求 )
↑
あり
↓
10011B
UART0 ( 送信完了 )
↓
A/D
↑
なし
↓
↓
11111B
各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。
436
第 14 章 DMA コントローラ (DMAC)
■ アドレスエラーの発生
各アドレッシングモードで , 以下に示すような不適切なアドレッシングが行われたと
き , アドレスエラーとして検出されます (32 ビットアドレス指定時に , アドレスカウン
タでオーバ / アンダフローが発生した場合 )。
アドレスエラーを検出すると , 終了コードで『アドレスエラーの発生』を表示して , 対
応するチャネルの転送を停止します。
437
第 14 章 DMA コントローラ (DMAC)
14.3.10
DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC のチャネルごとに割込みを出力する
ことができます。
■ DMAC 割込み制御
DMAC のチャネルごとに , 以下の割込みを出力できます。
• 転送終了割込み : 正常終了した場合のみ発生する。
• エラー割込み : 周辺回路からの転送停止要求 ( 周辺に起因するエラー )
• エラー割込み : アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む
ことにより行います。なお , 終了コードは , 再起動する際には必ず "000B" を書き込ん
でクリアしてください。
リロード動作が有効である場合は自動的に再起動しますが,この際には終了コードはク
リアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードで表示できる終了要因は 1 種類のみですので , 複数の要因が同時に発生した
場合は , 優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を , 以下に示します ( 上から , 優先度の高い順 )。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求または外部端子入力 (DSTP) の停止要求
• 正常終了
• アドレスエラー検出による停止
• チャネル選択と制御
■ スリープ中の DMA 転送
• DMAC は , スリープモード中でも動作させることができます。
• スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
- CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
- スリープモードは , 割込みで解除されますので , DMAC 起動要因で周辺での割込
みを選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
• DMAC 終了割込みでスリープモードを解除したくない場合は , 割込みを禁止にして
ください。
438
第 14 章 DMA コントローラ (DMAC)
14.3.11
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定ができます。各チャネルは , 基本的に
各機能を独立に設定することが可能です。
■ チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には,固定/回転の2モードがあり,チャネルグループ(後述)ごとに選択します。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
図 14.3-4 固定モード時のタイミング例
ch.0転送要求
ch.1転送要求
バス動作
CPU
転送ch
SA
DA
ch.1
SA
DA
ch.0
SA
DA
ch.0
SA
DA
CPU
ch.1
ch.0転送終了
ch.1転送終了
● 回転モード (ch.0, ch.1 間のみ )
動作許可後の初期状態は「固定モード」と同じ順位に設定されますが , 1 転送終了ごと
にそのチャネルの優先度は逆転します。したがって , 同時に転送要求が出力されている
場合 , 1 転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 14.3-5 回転モード時のタイミング例
ch.0転送要求
ch.1転送要求
バス動作
転送ch
CPU
SA
DA
ch.1
SA
DA
ch.0
SA
DA
ch.1
SA
DA
CPU
ch.0
ch.0転送終了
ch.1転送終了
439
第 14 章 DMA コントローラ (DMAC)
■ チャネルグループ
優先順位の選択は , 表 14.3-8 に示す単位で設定します。
表 14.3-8 優先順位選択の単位
440
モード
優先度
固定
ch.0 > ch.1
回転
ch.0 > ch.1
↑↓
ch.0 < ch.1
備考
初期状態は上側の順位です。
上側が転送されると反転します。
第 14 章 DMA コントローラ (DMAC)
外部端子と内部動作タイミングに関する補足
14.3.12
外部端子と内部動作タイミングに関して補足説明をします。
■ DREQ 端子入力の最小有効パルス幅
MB91301 シリーズは , 0, 1 チャネルのみについて該当します。
バースト / ステップ / ブロック / デマンド転送すべての転送モードで , 動作時最小 5 シ
ステムクロックサイクル ( 外バスクロック CLKT の 5 周期分 ) の幅が必要です。
<注意事項>
DACK 出力は , DREQ 入力の受付けを示すものではありません。DMA 許可状態で転送前
であれば , DREQ 入力は常に受け付けられます。そのため , DACK 出力のアサートまで
DREQ 入力を保持する必要はありません ( デマンド転送モードは除く )。
■ デマンド転送要求を停止するために DREQ 端子を無効にするタイミングについて
● 2 サイクル転送時
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。
• 転送対象が外部→外部の場合
以下のいずれかの方法で , DREQ の取下げのセンスタイミングを , ライトストロー
ブの無効のタイミングより 1 サイクル以上前にしてください。
- 外部 I/O あるいは外部グルーロジック側での調整により , DREQ の取下げタイミ
ングを 1 サイクル以上前にする。
- FR ファミリが内蔵する外部バス制御部のオートウェイト機能を使用して , ウェイ
トを現在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ をネゲートした場合 , 次の転送まで行う可能性があります。
• 転送対象が外部→内部の場合
最後の DMA 転送の転送元アクセス時の外部 RD 端子出力が "L" 区間の間にネゲー
トしてください (DACK="L" & RD="L" の区間 )。これより後に DREQ をネゲート
した場合 , 次の転送まで行う可能性があります。
441
第 14 章 DMA コントローラ (DMAC)
図 14.3-6 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
矢印の範囲内で無効にしてください。 より遅いタイミングで無効にした場合 , 1 回分
多く転送する場合があります。
• 転送対象が内部→外部の場合
以下のいずれかの方法で , DREQ の取下げのセンスタイミングを , ライトストロー
ブの無効のタイミングより 1 サイクル以上前にしてください。
- 外部 I/O あるいは外部グルーロジック側での調整により , DREQ の取下げタイミ
ングを 1 サイクル以上前にする。
- FR ファミリが内蔵する外部バス制御部のオートウェイト機能を使用して , ウェイ
トを現在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ をネゲートした場合 , 次の転送まで行う可能性があります。
● フライバイ転送時
デマンド転送時は , 必ず外部領域のアドレスを転送先に設定してください。
• フライバイ ( リード端子に対するタイミング ) の場合
最後の DMA 転送の IOWR 端子出力が "H" になった後の外部 RD 端子出力が "L" 区
間の間にネゲートしてください (DACK="L" & RD="L" の区間 )。これより後に DREQ
をネゲートした場合 , 次の転送まで行う可能性があります。
• フライバイ (IORD 端子に対するタイミング ) の場合
最後の DMA 転送の外部 WR 端子出力が "H" になった後の IORD が "L" 区間の間に
ネゲートしてください (DACK="L" & IORD="L" の区間 )。これより後に DREQ をネ
ゲートした場合 , 次の転送まで行う可能性があります。
442
第 14 章 DMA コントローラ (DMAC)
図 14.3-7 フライバイ (IORD 端子に対するタイミング ) の場合の DREQ 端子入力のネゲートタイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
IORD
矢印の範囲内で無効にしてください。 より遅いタイミングで無効にした場合 , 1 回分
多く転送する場合があります。
■ 同一チャネルで引き続き転送するための DREQ 端子入力のタイミング
● バースト / ステップ / ブロック / デマンド転送時
DREQ 端子入力によって同一チャネルの転送を連続させることは , 動作保証できませ
ん。転送終了によって内部に保持した要求をクリアするため , 最速タイミングで DREQ
が再度アサートされたとしても , 最低でも 1 システムクロックサイクル (CLK 出力の 1
周期分 ) は他チャネルの転送要求の検出が有効になっており , 結果他チャネルの優先度
が高ければそちらの転送が開始されます。
また , それより以前に DREQ が再度アサートされても , 転送が終了していないので無視
されます。他チャネルの転送要求が発生していない場合であれば , DACK 端子出力が
アサートされた時点で DREQ を再度アサートすることにより , 同一チャネルでの転送
が再開します。
■ DACK 端子出力のタイミング
この DMAC の DACK 出力は , 受け付けられた転送要求に対する転送が行われているこ
とを示します。
DACK の出力は , 基本的に外部バスアクセスタイミングのアドレス出力に同期してい
ます。DACK 出力を使用する場合は , ポートで DACK 出力イネーブルにする必要があ
ります。
443
第 14 章 DMA コントローラ (DMAC)
■ DEOP 端子出力のタイミング
• この DMA での DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送回
数分終了したことを示すものです。
• DEOP 出力は , 最終転送ブロックの外部領域アクセスが開始されると出力されます。
そのため , ブロックサイズを "1" 以外に設定 ( ブロック転送モード ) している場合 ,
最終ブロックの最後のデータ転送時に DEOP が出力されます。この場合 , 転送がま
だ行われている間 (DEOP 出力される前 ) でも , DACK 端子出力がアサートされてい
れば , 次の DREQ の受付けは開始されています。
• DEOP の出力は外部バスアクセスタイミングの RD, WRn に同期しています。しかし ,
転送元 / 転送先が内部アクセスであった場合 , DEOP は出力されません。DEOP 出力
を使用する場合は , ポートレジスタで DEOP 出力イネーブルにする必要があります。
■ 転送中に外部端子転送要求が再度入力された場合
● バースト / ステップ / ブロック転送時
DACK 信号が DMAC 内部でアサートされるまでの間 , 次の転送要求は入力されても無
効となります。しかし , 外部バス制御ユニットと DMAC の動作は完全に同期してはい
ないため , DREQ 入力で転送要求を有効にするためには , DACK と DEOP 出力により
DREQ 端子入力を作成する回路を初期化する必要があります。
● デマンド転送時
全転送回数が終了した際に転送回数レジスタのリロードを指定している場合,再度転送
要求が受け付けられます。
■ ブロック転送中にほかの転送要求が発生した場合
指定したブロックの転送が終了するまでは , ほかの要求は検出されません。ブロックの
境界で , その時点で受け付けられている転送要求を評価し , 最も優先順位の高いチャネ
ルの転送を行います。
■ 外部 I/O −外部メモリ間の転送
この DMAC の転送対象として , 外部 I/O と外部メモリの区別は存在しません。外部 I/O
は , アドレス固定の外部アドレスとして設定してください。
フライバイ転送を行う場合,外部メモリは転送先アドレスレジスタにアドレスを設定し
てください。また , 外部 I/O に対しては DACK 出力と読出し信号 RD または書込み信
号 WRn 端子でデコードした信号を使用してください。
■ DMAC の交流特性
DMAC に関連する外部端子は , DREQ 端子入力と DACK 端子出力 , DEOP 端子出力が
ありますが , 出力タイミングは外部バスアクセスに同期しています (DMAC の交流規格
を参照 )。
444
第 14 章 DMA コントローラ (DMAC)
14.4
動作フローチャート
次の各転送モードにおける動作フローチャートを示します。
• ブロック転送
• バースト転送
• デマンド転送
■ ブロック転送
図 14.4-1 に , ブロック転送の動作フローチャートを示します。
図 14.4-1 ブロック転送の動作フローチャート
DMA停止
DENB→0
DENB=1
起動要求待機
リロード許可
起動要求
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み
起動要因選択時のみ
アドレス,転送回数,
ブロック数,ライトバック
割込みクリア
割込み
クリア発生
DTC=0
DMA転送終了
DMA割込み発生
ブロック転送
・すべての起動要因で起動可能 (選択)
・すべての領域へのアクセス可能
・ブロック数の設定可能
・ブロック数終了で割込みクリア発行
・指定転送回数終了でDMA割込みを発行
445
第 14 章 DMA コントローラ (DMAC)
■ バースト転送
図 14.4-2 に , バースト転送の動作フローチャートを示します。
図 14.4-2 バースト転送の動作フローチャート
DMA停止
DENB→0
DENB=1
起動要求待機
リロード許可
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込み
クリア
割込みクリア発生
DMA転送終了
バースト転送
・すべての起動要因で起動可能 (選択)
・すべての領域へのアクセス可能
・ブロック数の設定可能
・指定転送回数終了で割込みクリア,DMA割込みを発行
446
DMA割込み発生
第 14 章 DMA コントローラ (DMAC)
■ デマンド転送
図 14.4-3 に , デマンド転送の動作フローチャートを示します。
図 14.4-3 デマンド転送の動作フローチャート
DMA停止
DENB→0
なし
DENB=1
起動要求待機
リロード許可
起動要求あり
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
DTC=0
周辺割込み起動要因選択時のみ
割込み
クリア
DMA転送終了
割込みクリア発生
DMA割込み発生
デマンド転送
・外部端子(DREQ)からの要求(レベル検出)のみ受付け。他の要因での起動禁止。
・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)
・ブロック数は, 設定に関係なく1固定になる。
・指定転送回数終了で割込みクリア, DMA割込みを発行。
447
第 14 章 DMA コントローラ (DMAC)
14.5
データバス
2 サイクル転送時およびフライバイ転送時のデータの動きを図で示します。
■ 2 サイクル転送時のデータの動き
図 14.5-1 に , 2 サイクル転送時の 6 種類の転送例を示します。
( ほかの組合せは省略します。)
図 14.5-1 2 サイクル転送の転送例
MB91301
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91301
X-bus
バスコントローラ
データバッファ
外部バス I/F
外部領域 ⇒ 外部領域 転送
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
データバッファ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
CPU
リードサイクル
I-bus
D-bus
MB91301
DMAC
外部バス I/F
MB91301
X-bus
バスコントローラ
データバッファ
外部バス I/F
外部領域 ⇒ 内部RAM領域 転送
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
データバッファ
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
CPU
リードサイクル
I-bus
D-bus
MB91301
DMAC
外部バス I/F
MB91301
D-bus
X-bus
バスコントローラ
データバッファ
外部バス I/F
外部領域 ⇒ 内蔵I/O領域 転送
F-bus
I/O
RAM
I/O
( 続く )
448
第 14 章 DMA コントローラ (DMAC)
( 続き )
MB91301
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
X-bus
バスコントローラ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91301
外部バス I/F
内蔵I/O領域 ⇒ 内部RAM領域 転送
F-bus
I/O
RAM
I/O
MB91301
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
D-bus
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91301
X-bus
バスコントローラ
データバッファ
外部バス I/F
内部RAM領域 ⇒ 外部領域 転送
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
D-bus データバッファ
F-bus
RAM
DMAC
ライトサイクル
I-bus
CPU
リードサイクル
I-bus
CPU
MB91301
DMAC
外部バス I/F
MB91301
X-bus
バスコントローラ
D-bus データバッファ
外部バス I/F
内部RAM領域 ⇒ 内蔵I/O領域 転送
F-bus
I/O
RAM
I/O
449
第 14 章 DMA コントローラ (DMAC)
■ フライバイ転送時のデータの動き
図 14.5-2 に , フライバイ転送時の 2 種類の転送例を示します。
図 14.5-2 フライバイ転送の転送例
DMAC
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
メモリ
MB91301
外部バス I/F
フライバイ転送(メモリ⇒I/O)
RD,DACKでI/Oの書込み
I/O
F-bus
RAM
RD,CSnでメモリの読出し
I/O
DMAC
CPU
リードサイクル
I-bus
D-bus
X-bus
バスコントローラ
データバッファ
メモリ
MB91301
外部バス I/F
フライバイ転送(I/O⇒メモリ)
WR,DACKでI/Oの読出し
450
I/O
I/O
F-bus
RAM
WR,CSnでメモリの書込み
第 14 章 DMA コントローラ (DMAC)
14.6
DMA 外部インタフェース
DMA 外部インタフェースにおける動作タイミングチャートを示します。
■ DMA 外部インタフェースの端子
DMA チャネル 0, DMA チャネル 1 は , 以下の DMA 専用端子 (DREQ, DACK, DEOP) を
もっています。
• DREQ:
デマンド転送を行うときの DMA 転送要求入力端子です。1 入力で転送要
求。
• DACK:
DMA が外部インタフェースを通して外部領域にアクセスした場合にアク
ティブ ("L" 出力 ) になります。
• DEOP:
DMA 転送がすべて終了する最後のアクセスに同期してアクティブ ("L" 出
力 ) になります。
• IORD:
フライバイ転送時 , I/O →メモリの方向選択時にアクティブになります。
• IOWR:
フライバイ転送時 , メモリ→ I/O の方向選択時にアクティブになります。
<注意事項>
DMA 外部インタフェースの動作例については , 「4.10 DMA アクセス動作」を参照して
ください。
451
第 14 章 DMA コントローラ (DMAC)
14.6.1
DREQx 端子の入力タイミング
DREQx 端子は , DMA の起動要求信号です。ポートと兼用になっている場合はポー
ト機能レジスタ (PFR) で DREQ 入力を許可してください。ここでは , DREQx 端子
の入力タイミングを示します。
■ デマンド転送以外のタイミング
デマンド転送以外の場合は , DMA の起動要因をエッジ検出に設定してください。立上
り / 立下りタイミングに規定はありませんが , DREQ 信号の保持時間は , 3 クロック以
上必要です。再度転送要求をする場合は , DMA 転送が終了したあとに要求入力を入れ
てください (DEOP が出力されたあとに要求する )。
DEOP 出力前に要求を入れても無視されることがあります。
図 14.6-1 に , デマンド転送以外の場合のタイミングチャートを示します。
図 14.6-1 デマンド転送以外のタイミングチャート
DREQxエッジ要求時(2サイクル転送時)
MCLK
DREQ
A23~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
DEOP
CPU動作
MAD転送
3サイクル以上
452
CPU
次の要求はDEOP出力後
第 14 章 DMA コントローラ (DMAC)
■ デマンド転送のタイミング
デマンド転送の場合は , DMA の起動要因をレベル検出に設定してください。起動開始
時に規定はありませんが , 停止時は DMA 転送の RD/WRn に同期させてください。セ
ンスタイミングは最終外部アクセスの MCLK の立上りになります。
図 14.6-2 に , デマンド転送の場合のタイミングチャートを示します。
図 14.6-2 デマンド転送の場合のタイミングチャート
DREQxレベル要求時(2サイクル転送時)
MCLK
DREQ
A23~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
CPU動作
DMA転送
CPU
3回目の転送要求のセンスポイント
<注意事項>
この場合は , 2 サイクル転送で転送元 / 転送先が外部領域のため , 2 回の DMA 転送で停止
させるときは #RD2 の立下りから #WR2 の最終の MCLK 立上り前までにネゲートしてく
ださい。
453
第 14 章 DMA コントローラ (DMAC)
DACK の FR30 互換モード
14.6.2
この DACK の FR30 互換モードは , DACK のタイミングを FR30 の DMA と同じタ
イミングにするモードです。ここでは , FR30 互換モードにおける DACK 端子のタ
イミングチャートを , 以下の転送モード設定例について示します。
• 2 サイクル転送モード
• フライバイ転送モード
■ 転送モードの設定
転送モードは , DACK 端子に対応するポート機能レジスタ (PFR) で設定してください。
PFR 設定時は対応する DMA チャネルの転送モード (2 サイクル転送 , フライバイ転送 )
と合わせてください。
<注意事項>
FR30 互換モードで 2 サイクル転送の設定時 , RD または WR/WRn に同期します。WR を
使用する場合は , 外部インタフェース領域構成レジスタ (ACR) の TYPE3 ∼ TYPE0 を
"0X1XB" にして WR を有効にしてください。
● 2 サイクル転送モード
図 14.6-3 に , 2 サイクル転送モードにおけるタイミングチャートを示します。
図 14.6-3 2 サイクル転送モードにおけるタイミングチャート
RD
DQMUU/DQMUL
WR/WRn
DACK(AKxx=111 B) *
チップセレクトと同じタイミング
DACK(AKxx=001 B) * 2サイクル転送時設定禁止
DACK(AKxx=010 B) *
DACK(AKxx=011 B) *
DACK(AKxx=100 B) *
DACK(AKxx=101 B) *
DACK(AKxx=110 B) *
*: AKxx は , DMA チャネルに対応するポート機能レジスタ (PFR) の設定値です。
454
第 14 章 DMA コントローラ (DMAC)
● フライバイ転送モード
図 14.6-4 に , フライバイ転送モードにおけるタイミングチャートを示します。
図 14.6-4 フライバイ転送モードにおけるタイミングチャート
RD
DQMUU/DQMUL
WR/WRn
IORD
IOWR
チップセレクトと同じタイミング
DACK(AKxx=111 B) *
DACK(AKxx=001 B) *
DACK(AKxx=010 B) * フライバイ転送時設定禁止
DACK(AKxx=011 B) * フライバイ転送時設定禁止
DACK(AKxx=100 B) * フライバイ転送時設定禁止
DACK(AKxx=101 B) * フライバイ転送時設定禁止
DACK(AKxx=110 B) * フライバイ転送時設定禁止
メモリ→I/O
I/O→メモリ
メモリ→I/O
I/O→メモリ
*: AKxx は , DMA チャネルに対応するポート機能レジスタ (PFR) の設定値です。
455
第 14 章 DMA コントローラ (DMAC)
456
第 15 章
ビットサーチモジュール
ビットサーチモジュールの概要 , レジスタ構成 / 機
能およびビットサーチモジュールの動作について
説明しています。
15.1 ビットサーチモジュールの概要
15.2 ビットサーチモジュールのレジスタ
15.3 ビットサーチモジュールの動作
457
第 15 章 ビットサーチモジュール
15.1
ビットサーチモジュールの概要
入力レジスタに書き込まれたデータに対して , "0", "1" または変化点を検索し , 検出
したビット位置を返します。
■ ブロックダイヤグラム
図 15.1-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。
図 15.1-1 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレス
デコーダ
検出モ ー ド
1検出データ化
ビットサーチ回路
検索結果
458
第 15 章 ビットサーチモジュール
15.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタを示します。
■ ビットサーチモジュールのレジスタ一覧
図 15.2-1 ビットサーチモジュールのレジスタ一覧
0 検出用データレジスタ
(BSD0)
1 検出用データレジスタ
(BSD1)
変化点検出用データレジスタ (BSDC)
(BSRR)
検出結果レジスタ
■ 0 検出用データレジスタ (BSD0)
図 15.2-2 に , 0 検出用データレジスタ (BSD0) のレジスタ構成を示します。
図 15.2-2 0 検出用データレジスタ (BSD0) のレジスタ構成
bit 31
0
初期値
XXXXH
アドレス 0003F0H
W
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
459
第 15 章 ビットサーチモジュール
■ 1 検出用データレジスタ (BSD1)
図 15.2-3 に , 1 検出用データレジスタ (BSD1) のレジスタ構成を示します。
図 15.2-3 1 検出用データレジスタ (BSD1) のレジスタ構成
bit 31
0
初期値
XXXXH
アドレス 0003F4H
R/W
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
● 書込み時
書き込んだ値に対して , "1" を検出します。
● 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハンド
ラなどがビットサーチモジュールを使用する場合に , 元の状態を退避 / 復帰するときに
使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ
ジスタのみ操作することで退避 / 復帰できます。
リセットによる初期値は不定です。
■ 変化点検出用データレジスタ (BSDC)
図 15.2-4 に , 変化点検出用データレジスタ (BSDC) のレジスタ構成を示します。
図 15.2-4 変化点検出用データレジスタ (BSDC) のレジスタ構成
bit 31
0
初期値
XXXXH
アドレス 0003F8H
W
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください。
8 ビット長 , 16 ビット長のデータ転送命令は , 使わないでください。
■ 検出結果レジスタ (BSRR)
0 検出 , 1 検出または変化点検出の結果が読み出されます。どの検出結果が読み出され
るかは , 最後に書き込んだデータレジスタによって決定されます。
図 15.2-5 に , 検出結果レジスタ (BSRR) のレジスタ構成を示します。
図 15.2-5 検出結果レジスタ (BSRR) のレジスタ構成
bit 31
0
XXXXH
アドレス 0003FCH
R
460
初期値
第 15 章 ビットサーチモジュール
15.3
ビットサーチモジュールの動作
ビットサーチモジュールは , 次の 3 つの動作を行います。
• 0 検出
• 1 検出
• 変化点検出
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0"を検出した位置を返します。検出結果は,検出結果レジスタを読み出すことで得られ
ます。
表 15.3-1 に , 検出した位置と返す数値の関係を示します。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ結
果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B
(FFFFF000H)
→ 20
11111000010010011110000010101010B
(F849E0AAH)
→5
10000000000000101010101010101010B
(8002AAAAH)
→1
11111111111111111111111111111111B
(FFFFFFFFH)
→ 32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1"を検出した位置を返します。検出結果は,検出結果レジスタを読み出すことで得られ
ます。
表 15.3-1 に , 検出した位置と返す値との関係を示します。
"1"が存在しないとき(すなわち00000000Hという数値のとき), 32という値をサーチ結果
として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B
(20000000H)
→2
00000001001000110100010101100111B
(01234567H)
→7
00000000000000111111111111111111B
(0003FFFFH)
→ 14
00000000000000000000000000000001B
(00000001H)
→ 31
00000000000000000000000000000000B
(00000000H)
→ 32
461
第 15 章 ビットサーチモジュール
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし ,
MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。検出結
果は , 検出結果レジスタを読み出すことで得られます。
表 15.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
表 15.3-1 ビット位置と返す値 (10 進 )
検出した
検出した
検出した
検出した
返す値
返す値
返す値
返す値
ビット位置
ビット位置
ビット位置
ビット位置
462
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
第 15 章 ビットサーチモジュール
■ 退避 / 復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避 / 復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1) 1 検出用データレジスタを読出し , この内容を保存する ( 退避 )
2) ビットサーチモジュールを使用
3) 1) で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1) 以前に ,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記手
順で正しく元に戻ります。
463
第 15 章 ビットサーチモジュール
464
第 16 章
I2C インタフェース
I2C インタフェースの概要 , レジスタの詳細および
動作について説明します。
16.1 I2C インタフェースの概要
16.2 I2C インタフェースのレジスタ
16.3 I2C インタフェースのブロックダイヤグラム
16.4 レジスタの詳細
16.5 I2C インタフェースの動作
16.6 動作フローチャート
465
第 16 章 I2C インタフェース
16.1
I2C インタフェースの概要
I2C インタフェースの概要を説明します。
■ 概要
I2C インタフェースは , INTER IC bus をサポートするシリアル I/O ポートで , I2C バス上
のマスタ / スレーブデバイスとして動作し , 以下の特長があります。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• 反復「START」条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード (Max.100Kbps)/ 高速モード (Max. 400Kbps) に対応
466
第 16 章 I2C インタフェース
16.2
I2C インタフェースのレジスタ
I2C インタフェースのレジスタを示します。
■ レジスタ一覧
・バスコントロールレジスタ (IBCR0/1)
アドレス : 000094H/0000B4H
初期値 =>
15
14
13
12
11
10
9
BER
BEIE
SCC
MSS
ACK
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
R
R
R
R
R
R
R
R
0
0
0
0
0
0
0
0
GCAA INTE
8
INT
・バスステータスレジスタ (IBSR0/1)
アドレス : 000095H/0000B5H
初期値 =>
・10 ビットスレーブアドレスレジスタ (ITBA0/1)
アドレス : 000096H/0000B6H
初期値 =>
アドレス : 000097H/0000B7H
初期値 =>
15
14
13
12
11
10
9
8
−
−
−
−
−
−
TA9
TA8
R
R
R
R
R
R
R/W
R/W
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
・10 ビットスレーブアドレスマスクレジスタ (ITMK0/1)
アドレス : 000098H/0000B8H
初期値 =>
アドレス : 000099H/0000B9H
初期値 =>
15
14
13
12
11
10
9
8
ENTB
RAL
−
−
−
−
TM9
TM8
R/W
R
R
R
R
R
R/W
R/W
0
0
1
1
1
1
1
1
7
6
5
4
3
2
1
0
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
1
1
1
1
1
1
1
467
第 16 章 I2C インタフェース
・7 ビットスレーブアドレスレジスタ (ISBA0/1)
アドレス : 00009BH/0000BBH
初期値 =>
7
6
5
4
3
2
1
0
−
SA6
SA5
SA4
SA3
SA2
SA1
SA0
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
・7 ビットスレーブアドレスマスクレジスタ (ISMK0/1)
アドレス : 00009AH/0000BAH
初期値 =>
15
14
13
12
11
10
9
8
ENSB
SM6
SM5
SM4
SM3
SM2
SM1
SM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
1
1
1
1
1
1
1
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
TEST
−
EN
CS4
CS3
CS2
CS1
CS0
W
R
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
1
1
1
1
1
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
R
R
R
R
R
R
R
R/W
0
0
0
0
0
0
0
0
・データレジスタ (IDAR0/1)
アドレス : 00009DH/0000BDH
初期値 =>
・クロックコントロールレジスタ (ICCR0/1)
アドレス : 00009EH/0000BEH
初期値 =>
・クロックディセーブルレジスタ (IDBL0/1)
アドレス : 00009FH/0000BFH
初期値 =>
468
第 16 章 I2C インタフェース
16.3
I2C インタフェースのブロックダイヤグラム
I2C インタフェースのブロックダイヤグラムを示します。
■ ブロックダイヤグラム (1 チャネル 分 )
図 16.3-1 I2C インタフェースのブロックダイヤグラム
ICCR
EN
I 2C 動作許可
IDBL
DBL
ICCR
クロック許可
クロック分周2
2345
32
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
Sync
シフトクロック発生
クロック選択2(1/12)
シフトクロック
エッジ変化タイミング
バスビジー
リピートスタート
Last Bit
スタート・ストップ
コンディション検出
LRB
エラー
送/受
TRX
First Byte
ADT
アービトレーションロスト検出
AL
R-bus
CLKP
IBCR
SCL0/1
BER
BEIE
割込み要求
INTE
SDA0/1
IRQ
INT
IBCR
SCC
MSS
終了
スタート
マスタ
スタート・ストップ
ACK 許可
コンディション発生
ACK
GC-ACK許可
GCAA
IDAR
IBSR
AAS
スレーブ
グローバル スレーブアドレス
比較
コール
GCA
ISMK
ENSB
ITM K
ENTB
RAL
ITBA
ITMK
ISBA
ISMK
469
第 16 章 I2C インタフェース
16.4
レジスタの詳細
I2C インタフェースのレジスタの詳細について説明します。
■ IBSR0/1 ( バスステータスレジスタ )
アドレス : 000095H/0000B5H
初期値 =>
7
6
5
4
3
2
1
0
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
R
R
R
R
R
R
R
R
0
0
0
0
0
0
0
0
このレジスタは , 全ビット読出し専用です。I2C が動作停止 (ICCR 中の EN = 0) すると
全ビットクリアされます。
[bit7] BB (Bus Busy)
I2C バスの状態を示すビットです。
0
「STOP」条件を検出した。
1
「START」条件を検出した。( バス使用中 )
[bit6] RSC (Repeated Start Condition)
反復「START」条件検出ビットです。
0
反復「START」条件は検出されていない。
1
バス使用中に , 反復「START」条件を検出した。
このビットは , スレーブ・アドレス転送終了 (ADT=0), または「STOP」条件の検出
でクリアされます。
[bit5] AL (Arbitration Lost)
アービトレーションロスト検出ビットです。
0
アービトレーションロストが検出されていない。
1
マスタ送信中にアービトレーションロストが発生した。
このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに
"1" を書き込むことによってクリアされます。
アービトレーションロストが発生する例 :
• データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない。
• データのファーストビットで , 他のマスタによって , 反復「START」条件が発生
した。
• I2C インタフェースが , 他のスレーブデバイスによって SCL ラインが "L" にドラ
イブされているために , 「START」条件 , または「STOP」条件を生成できない。
470
第 16 章 I2C インタフェース
[bit4] LRB (Last Received Bit)
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
0
スレーブアクノリッジを検出した。
1
スレーブアクノリッジを検出していない。
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
「START」条件または「STOP」条件の検出でクリアされます。
[bit3] TRX (Transferring データ )
データ転送中に送信状態を示すビットです。
0
データ送信中でない
1
データ送信中
1 セット : マスタモードで「START」条件が生成された
スレーブモードでリードアクセス時 ( 送信 ), 第 1 バイトの転送終了
マスタモードで送信中
0 セット : バスがアイドル状態 (BB=0:IBCR)
アービトレーションロスト発生
マスタ割込み中 (MSS=1, INT=1) に SCC に "1" が書き込まれた。
マスタ割込み中 (MSS=1, INT=1) に MSS ビットがクリアされた。
スレーブ時 , 転送の最後にアクノリッジが発生しなかった。
スレーブモードでの受信中
マスタモードでのスレーブからデータ受信中
[bit2] AAS (Addressed As Slave)
スレーブ・アドレッシング検出ビットです。
0
スレーブに指定されていない。
1
スレーブに指定された。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出した時にセットされます。
[bit1] GCA (General Call Address)
ゼネラルコールアドレス ( 00H) 検出ビットです。
0
スレーブとして , ゼネラルコールアドレスを受信していない。
1
スレーブとして , ゼネラルコールアドレスを受信した。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
471
第 16 章 I2C インタフェース
[bit0] ADT (Address Data Transfer)
スレーブアドレス受信検出ビットです。
0
受信データがスレーブアドレスでない。( またはバス開放中 )
1
受信データがスレーブアドレスである。
「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ
アドレスのヘッダが検出されると , 第 2 バイトのあとクリアされ , それ以外のとき
は , 第 1 バイトのあとでクリアされます。
第 1 バイト / 第 2 バイトのあととは :
• マスタ割込み (MSS=1, INT=1:IBCR) 中に MSS ビットに "0" が書き込まれた
• マスタ割込み (MSS=1, INT=1:IBCR) 中に SCC ビットに "1" が書き込まれた
• INT ビットがクリアされた
• マスタ , またはスレーブとして転送対象でなければ , すべての転送バイトの最初
472
第 16 章 I2C インタフェース
■ IBCR0/1 ( バスコントロールレジスタ )
15
14
13
12
11
10
9
8
アドレス : 000094H/0000B4H BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
初期値 =>
I2C インタフェースが停止 (EN=0:ICCR) すると , BER, BEIE ビットを除きすべてのビッ
トがクリアされます。
[bit15] BER (Bus Error)
バスエラー割込み要求フラグビットです。このビットは , リードモディファイ系の
命令では , 常に "1" が読まれます。
( ライト時 )
0
バスエラー割込み要求フラグをクリアする。
1
意味をもちません。
( リード時 )
0
バスエラーは検出されていない。
1
エラーコンディションを検出した。
このビットがセットされた場合 , CCR レジスタの EN ビットはクリアされ , I2C イン
タフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を除
き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C
インタフェースを再度イネーブル (EN=1) する前にクリアしてください。
"1" がセットされる場合 :
1)「START」条件 , または「STOP」条件が不正な場所で検出された ( スレーブアド
レス転送中 , データ転送中 )。
2) 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセスする前
に , リードアクセスのスレーブアドレスヘッダが受信された。
3) マスタモードで転送中に「STOP」条件が検出された。
1), 2) の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バ
スエラーレポートを抑止するために , 最初の「STOP」条件の受信後フラグセットさ
れる。
[bit14] BEIE (Bus Error Interrupt Enable)
バスエラー割込み許可ビットです。
0
バスエラー割込み禁止
1
バスエラー割込み許可
このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。
473
第 16 章 I2C インタフェース
[bit13] SCC (Start Condition Continue)
反復「START」条件発生ビットです。
( ライト時 )
0
1
意味をもちません。
マスタ転送時に反復「START」条件を発生させる。
このビットの読出し値は常に "0" です。
マスタモード (MSS=1, INT=1) 中にこのビットに "1" を書き込むと , 反復「START」
条件が発生し , 自動的に INT ビットをクリアします
[bit12] MSS (Master Slave Select)
マスタ / スレーブの選択ビットです。
0
スレーブモードとなります。
1
マスタモードとなり「START」条件を発生し IDAR レジスタの値をス
レーブアドレスとして送信します。
• このビットは , マスタ送信中にアービトレーションロストが発生した場合クリア
され , スレーブモードになります。
• マスタ割込みフラグセット中 (MSS=1, INT=1) に "0" を書き込むと INT ビットは
自動的にクリアされ , 「STOP」条件が発生し転送が終了します。
<注意事項>
MSS ビットは直接的なリセットとして機能します。
「STOP」条件の発生は , IBSR レジス
タの BB ビットを調査することによって確認できます。
• バスがアイドル中 (MSS=0, BB=0) に "1" を書き込むと「START」条件が発生し ,
IDAR の値が送信されます。
• バス使用中 (BB=1, TRX=0, MSS=0) に "1" を書き込むと I2C インタフェースはバ
スが開放されるまで待ち , 送信を開始します。その間に I2C インタフェースはラ
イトアクセスを伴うスレーブとしてアドレス指定されると , 転送終了後にバスは
開放されます。その間 , スレーブとして送信中の場合 (AAS=1, TRX=1:IBCR), バスが
開放されてもデータ送信しません。I2C インタフェースがスレーブ (AAS=1:IBSR)
として指定されたか , 次の割込み時にデータ送信が正常終了した (MSS=1:IBCR)
か , 不正終了した (AL=1:IBSR) かどうか確認することが重要となります。
<注意事項>
下記条件で使用する場合 , スレーブとして受信できませんのでゼネラルコールアドレスの
送信は禁止です。
• 本 LSI のほかにマスタモードとなる他の LSI がバス上に存在し , 本 LSI がマスタとして
ゼネラルコールアドレスを送信し, 第 2 バイト目以降でアービトレーションロストが発
生する場合
474
第 16 章 I2C インタフェース
[bit11] ACK (ACKnowledge)
データを受信許可ビットに従いアクノリッジを発生するビットです。
0
データ受信に対しアクノリッジを発生しない。
1
データ受信に対しアクノリッジを発生する。
• このビットは , スレーブ時のスレーブアドレス受信時には無効となります。I2C
インタフェースが 7 ビット , または 10 ビットのスレーブアドレス指定を検出し
たとき, 対応するイネーブルビット(ENTB:ITMK, ENSB:ISMK)がセットされてい
ると , アクノリッジを返します。
• このビットへの書込みは , 割込みフラグセット中 (INT=1), またはバスが開放中
(BB=0:IBSR), I2C インタフェースが停止中 (EN=0:ICCR) に行ってください。
[bit10] GCAA (General Call Address Ackowledge)
ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。
0
ゼネラルコールアドレスを受信に対しアクノリッジ発生しない。
1
ゼネラルコールアドレスを受信に対しアクノリッジ発生する。
• このビットへの書込みは , 割込みフラグセット中 (INT=1), またはバスが開放中
(BB=0:IBSR), I2C インタフェースが停止中 (EN=0:ICCR) に行ってください。
[bit9] INTE (INTerrupt Enable)
割込み許可ビットです。
0
割込み禁止
1
割込み許可
このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。
475
第 16 章 I2C インタフェース
[bit8] INT (INTerrupt)
転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命
令では常に "1" が読み出されます。
( ライト時 )
0
転送終了割込み要求フラグをクリアする。
1
意味をもちません。
( リード時 )
0
転送が終了していない , または転送対象でない , バスが開放状態であ
る。
1
アクノリッジビットを含めた 1 バイト転送が終了した時に次の条件に
該当する場合セットされます。
• バスマスタである。
• スレーブアドレスに指定された。
• ゼネラルコールアドレスを受信した。
• アービトレーションロストが起こった。
スレーブアドレスに指定されているとき , アクノリッジを含むスレー
ブアドレス受信の最後にセットされます。
このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへの
"0" 書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 反復
「START」条件 , または「STOP」条件を生成します。
このビットは , SCC ビットまたは MSS ビットに "1" が書き込まれると , クリアされ
ます。
<注意事項>
• SCC, MSS, INT ビットの競合について
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 反復「START」条件 , ま
たは「STOP」条件発生の競合が起こります。このときの優先度は次のようになります。
1. 次のバイト転送と「STOP」条件発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先さ
れ , 「STOP」条件が発生します。
2. 次のバイト転送と「START」条件発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先さ
れ , 反復「START」条件が発生し IDAR の値が送信されます。
3. 反復「START」条件発生と「STOP」条件発生
SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先さ
れます。「STOP」条件が発生し I2C インタフェースはスレーブモードになります。
476
第 16 章 I2C インタフェース
<注意事項>
図 16.4-2 に示したタイミングで , スタートコンディションを発生させる命令を実行
(MSS ビットに "1" を設定 ) すると , アービトレーションロスト検出 (AL ビット =1) によ
る割込み (INT ビット =1) が発生しません。
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 1
スタートコンディション未検出 (BB ビット =0) 状態で , SDA 端子または SCL 端子レベ
ルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レジスタ
の MSS ビットに "1" を設定 ) した場合
図 16.4-1 AL ビット =1 検出による割込みが発生しないタイミング図
SCL端子
SDA端子
"L"
"L"
1
I2C動作許可状態(ENビット=1)
マスタモード設定(MSSビット=1)
アービトレーションロスト検出(ALビット=1)
バスビジー(BBビット)
0
割込み(INTビット)
0
• AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 2
他のマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット =1) してス
タートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに "1" を
設定 ) した場合。
図 16.4-2 に示したとおり , I2C が動作禁止 (EN ビット =0) の状態で , I2C バス上のほかの
マスタが通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C バスが
占有されている状態になるためです。
477
第 16 章 I2C インタフェース
図 16.4-2 AL ビット =1 検出による割込みが発生しないタイミング図
9クロック目でINTビット
割込みが発生しない
Start Condition
Stop Condition
SCL端子
SDA端子
SLAVE ADDRESS
ACK
DAT
ACK
ENビット
MSSビット
ALビット
BBビット
0
INTビット
0
• AL ビット =1 検出による割込み (INT ビット =1) が発生する例
バスビジー検出 (BB ビット =1) されている状態で , スタートコンディションを発生さ
せる命令を実行 (MSS ビットへの "1" 設定 ) しアービトレーションロストした場合には ,
AL ビット =1 検出時に INT ビット割込みが発生します。
図 16.4-3 AL ビット =1 時に割り込みが発生するタイミング図
9クロック目で割込み
Start Condition
SCL端子
SDA端子
SLAVE ADDRESS
ACK
DAT
ENビット
MISSビット
ソフトでのALビットクリア
ALビット
BBビット
ソフトでのINTビットクリアで
SCL開放
INTビット
478
第 16 章 I2C インタフェース
上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願いし
ます。
1. スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 )。
2. タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3 ビッ
トデータ送信時間を待つ。*
例 : I2C 転送周波数 100kHz の場合
3 ビットデータ送信時間 {1/(100 × 103)} × 3=30 µs
3. IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット =1, BB ビット =0 の場合
には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビットと BB ビッ
トがその他の状態のときは通常処理を行う。
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ(IBCR)のMSSビットに"1"を設定
クロック制御レジスタ(ICCR)の設定されている
I2C転送周波数での3ビットデータ送信時間待ち*
NO
BBビット=1かつALビット=1
YES
ENビットを"0"にしてI2Cの初期化
通常処理へ
* : アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送
周波数での 3 ビットデータ送信時間後には確実に AL ビット =1 となります。
479
第 16 章 I2C インタフェース
■ ICCR0/1 ( クロックコントロールレジスタ )
15
14
13
12
11
10
9
8
−
EN
CS4
CS3
CS2
CS1
CS0
W
R
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
1
1
1
1
1
アドレス : 00009EH/0000BEH TEST
初期値 =>
[bit15] テストビットです。必ず "0" を書いてください。
[bit14] 未使用ビットです。必ず "0" を書いてください。
[bit13] EN (Enable)
I2C インタフェース動作許可ビットです。
0
動作禁止
1
動作許可
このビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く )
の各ビットはクリアされます。バスエラー発生 (BER=1:IBCR) によりこのビットは
クリアされます。
<注意事項>
動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。
[bit12 ∼ 8] CS4 ∼ CS0 (Clock Period Select 4-0)
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN=0) にするか , EN ビットがクリア
されたときにのみ書込み可能です。
シフトクロックの周波数 fsck は次式のように設定されます。
φ
fsck = ―――――――――
N > 0 φ : マシンクロック (=CLKP)
n × 12 + 15
レジスタ設定
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
…
…
…
…
…
…
31
1
1
1
1
1
CS4 ∼ CS0=00000 は設定禁止です。
480
第 16 章 I2C インタフェース
100K bps
クロック周波数
CLKP[MHz]
400K bps
n
fsck
n
fsck
34
27
100.3
6
390.8
25
20
98
4
396.8
17
13
99.4
3
333.3
12.5
9
101.6
2
320.5
8.5
6
97.7
1
314.8
6.25
4
99.2
1
231.5
■ 10 ビットスレーブアドレスレジスタ (ITBA0/1)
15
アドレス : 000096H/0000B6H
初期値 =>
アドレス : 000097H/0000A7H
初期値 =>
14
13
12
11
10
9
8
TA8
−
−
−
−
−
−
TA9
R
R
R
R
R
R
R/W
R/W
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
ITBAH
ITBAL
このレジスタの書換えは動作停止中に行ってください。(EN=0 : ICCR)
[bit15 ∼ 10] リード時は常に "0" です。
[bit9 ∼ 0] 10 ビットスレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効 (ENTB=1:ITMK) のとき , スレーブモードでスレーブアド
レスを受信すると , 受信アドレスと ITBA と比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第 1, 第 2 バイト受信データと TA9 ∼ TA0 ビットと比較されます。一致が検出され
ると , アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされま
す。I2C インタフェースは , 反復「START」条件のあと 10 ビットリードアクセスの
アドレスヘッダの受信に応答します。
スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
481
第 16 章 I2C インタフェース
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK0/1)
15
14
13
12
11
10
9
8
RAL
−
−
−
−
TM9
TM8
R/W
R
R
R
R
R
R/W
R/W
0
0
1
1
1
1
1
1
7
アドレス : 000098H/0000B8H ENTB
初期値 =>
6
5
4
3
2
1
0
アドレス : 000099H/0000B9H TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
1
1
1
1
1
1
1
1
初期値 =>
[bit15] ENTB 10 ビットスレーブアドレス許可ビット
10 ビットスレーブアドレス動作許可ビットです。
0
10 ビットスレーブアドレス動作禁止
1
10 ビットスレーブアドレス動作許可
このビットへの書込みは , I2C インタフェースが停止状態 (EN=0:ICCR) で行ってく
ださい。
[bit14] RAL スレーブアドレス長ビット
このビットは , スレーブアドレス長を示します。
0
7 ビットスレーブアドレス
1
10 ビットスレーブアドレス
このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB=1andENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス動
作のどちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (EN=0:ICCR) したときにクリアされま
す。
このビットはリードのみ可能です。
[bit13 ∼ 10] 未使用ビットです。リード時は常に "1" が読まれます。
482
第 16 章 I2C インタフェース
[bit9 ∼ 0] 10 ビットスレーブアドレスマスクビット
このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。
このレジスタへの書込みは, I2Cインタフェースが動作禁止(EN=0:ICCR)のとき行っ
てください。
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 10 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。受信した
スレーブアドレスは , ITBA に上書きされます。ASS = 1 (IBSR) のとき ITBA レジ
スタを読み出すことによって実際の指定されたフレーブアドレスを特定できます。
ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9 ∼
TM0の値が"1"のときはITBAのアドレスが有効になり"0"のときは無効になります。
例 : ITBA アドレス 0010010111B
ITMK アドレス 1111111100B のとき
スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。
483
第 16 章 I2C インタフェース
■ 7 ビットスレーブアドレスレジスタ (ISBA0/1)
アドレス : 00009BH/0000BBH
初期値 =>
7
6
5
4
3
2
1
0
−
SA6
SA5
SA4
SA3
SA2
SA1
SA0
R
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
このレジスタの書換えは動作停止中に行ってください。(EN=0 : ICCR)
[bit7] 未使用ビットです。リード時は 0 です。
[bit6 ∼ 0] スレーブアドレスビット (SA6 ∼ SA0)
スレーブモードでスレーブアドレスを受信した時 , 7 ビットスレーブアドレスが許
可 (ENSB=1 : ISMK) されていると , 受信スレーブアドレスと ISBA と比較を行いま
す。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信し ,
AAS ビットをセットします。
I2C インタフェースは , 反復「START」条件のあと 7 ビットリードアクセスのアド
レスヘッダの受信にアクノリッジを返します。
スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが
受信されたとき , ISBA と受信スレーブアドレスとの比較を行いません。
484
第 16 章 I2C インタフェース
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK0/1)
15
14
13
12
11
10
9
8
SM6
SM5
SM4
SM3
SM2
SM1
SM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
1
1
1
1
1
1
1
アドレス : 00009AH/0000BAH ENSB
初期値 =>
本レジスタの書換えは動作停止中に行ってください。(EN=0 : ICCR)
[bit15] ENSB 7 ビットスレーブアドレス許可ビット
7 ビットスレーブアドレス動作許可ビットです。
0
7 ビットスレーブアドレス動作禁止
1
7 ビットスレーブアドレス動作許可
[bit14 ∼ 8] 7 ビットスレーブアドレスマスクビット
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 7 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。
受信したスレーブアドレスは , ISBA に上書きされます。ASS = 1 (IBSR) のとき ISBA
レジスタを読み出すことによって実際の指定されたスレーブアドレスを特定でき
ます。
I2C インタフェースが許可になった後 , スレーブアドレス (ISBA) は , 受信動作によっ
て書き換えられるため , ISMK が書き換えたときは , ISMK を再設定しないと期待ど
おりの動作をしないことがあります。
ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6 ∼
SM0の値が"1"のときはISBAのアドレスが有効になり"0"のときは無効になります。
例 : ISBA アドレス 0010111B
ISMK アドレス 1111100B のとき
スレーブアドレスは 0010100B ∼ 0010111B の空間になります。
485
第 16 章 I2C インタフェース
■ データレジスタ (IDAR0/1)
アドレス : 00009DH/0000BDH
初期値 =>
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
[bit7 ∼ 0] データビット (D7 ∼ D0)
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中 ( BB=1) で
ある場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビッ
ト (IBCR) がクリアされるか , バスがアイドル状態 (BB=0:IBSR) のとき転送データは
内部転送レジスタにロードされます。
読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー
タは INT ビット (IBCR) がセットされている場合のみ有効です。
■ クロックディセーブルレジスタ (IDBL0/1)
7
アドレス : 00009FH/0000BFH
初期値 =>
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
R
R
R
R
R
R
R
R/W
0
0
0
0
0
0
0
0
[bit0] クロックディセーブルビット (DBL)
このビットは I2C インタフェース用の動作クロック供給の許可 , 停止を指示します。
低消費電力時に使用できます。
0
I2C のクロックを供給します。
1
I2C のクロックを停止します。I2C ラインは開放されます。
本ビットは , リセットにより "0" に初期化されます。
本ビットに "1" を書き込むと , 本レジスタ (IBDL) を除き , 読出し値は不定値となり ,
本ビット ( 本レジスタ ) 以外の書込みは無効になります。
<注意事項>
このビットを "1" にすると I2C は送受信中でも直ちに停止します。
486
第 16 章 I2C インタフェース
16.5
I2C インタフェースの動作
I2C インタフェースにおける動作について説明します。
■ 動作説明
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン (SCL)
の 2 本の双方向バスラインにより転送が行われます。
I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を
有し , ワイヤード論理を可能にします。
●「START」条件
バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ
ンタフェースはマスタモードとなり , 「START」条件を発生します。そのとき , スレー
ブアドレスとして IDAR レジスタの値を送信します。
バスマスタモードで割込みフラグがセットされているとき (MSS=1, INT=1:IBCR), SCC
ビットに "1" を書き込むことで , 反復「START」条件が生成されます。
バス使用時 (BB=1, TRX=0:IBSR, MSS=0 または INT=0:IBCR) に , MSS ビットに "1" を
書き込むとバスが開放され , 送信が開始されます。
スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 ,
送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され
ても送信しません。
インタフェースは , 次のことをチェックする必要があります。
• スレーブとして指定された (MSS=0:IBCR, AAS=1:IBSR) かどうか。
• 次の割込みで , データバイトを正常に送れた (AL=1:IBSR) かどうか
●「STOP」条件
マスタモード ( MSS=1, INT=1:IBCR) 時に , MSS ビットに "0" を書き込むと , 「STOP」
条件を発生し , スレーブモードになります。他の条件での , MSS に "0" 書込みは , 無視
されます。
MSS ビットがクリアされたあと , 「STOP」条件を生成しようとします。
「STOP」条件
を生成する前に , SCL ラインが "L" にドライブされているときは , 生成されません。次
のバイトが転送されたあと割込みが生成されます。
<注意事項>
MSS ビットに "0" を書き込んでから , 「STOP」条件を発生するまでに時間を要します。
「STOP」条件を発生前に I2C インタフェースを動作禁止 (DBL=1:IDBL or EN=0:ICCR) に
すると , 直ちに動作停止し SCL ラインに不正クロックが発生します。
I2C インタフェースを動作禁止する際には , 「STOP」条件の発生を確認 (BB=0:IBSR) し
たのち , 動作を禁止 (DBL=1:IDBL or EN=0:ICCR) してください。
487
第 16 章 I2C インタフェース
● スレーブアドレス検出
スレーブモードでは ,「START」条件発生後 , BB=1 にセットされ , マスタからの送信
データを IDAR レジスタへ受信します。
[7 ビットスレーブアドレス動作許可の場合 ] (ENSB=1 in ISMK)
8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。こ
のとき , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合, AAS=1 にセットし, マスタに対してアクノリッジを送信します。
その後 , 受信データの bit0 ( 受信後の IDAR レジスタの bit0) を反転して TRX ビット
へ格納します。
[10 ビットスレーブアドレス動作許可の場合 ] (ENTB=1 in ITMK)
10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出したらマスタに対して
アクノリッジを送信し受信データの bit0 を反転して TRX ビットへ格納します。こ
のとき割込みは発生しません。
続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。こ
のとき ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信し
ます。このとき割込みが発生します。
スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビット
アドレスのヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割
込みを発生します。
10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ
(ISBA) を搭載しているので , 両方の動作許可 (ENSB=1:ISMK, ENTB=1:ITMK) をす
ることにより , 10 ビットアドレス /7 ビットアドレスに対してアクノリッジを送信で
きます。
スレーブモード時 (AAS=1) の受信スレーブアドレス長は , ITMK レジスタの RAL
ビットによって決定します。マスタモード時は , 両方の動作を禁止 (ENSB=0:ISMK,
ENTB=0:ITMK) することにより , I2C インタフェースにスレーブアドレスを生成し
ないことが可能です。
全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできま
す。
● スレーブアドレスマスク
スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各
ビットに対してマスクできます。マスクレジスタに "1" をセットされたビットはアド
レス比較を行いますが , "0" に設定されているビットは無視されます。スレーブモード
(AAS=1:IBSR) 時 , 受信スレーブアドレスは , ITBA (10 ビットアドレス時 ), ISBA (7 ビッ
トアドレス時 ) レジスタから読み出せます。
ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの
モニタとして使用できます。
488
第 16 章 I2C インタフェース
<注意事項>
他のスレーブデバイスが無い場合でも , スレーブアドレスを受信するとアクノリッジを返
すので , この機能は , リアルバスモニタとはなりません。
● マスタアドレッシング
マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ
の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを
受信すると , 送信データの bit0 ( 送信後の IDAR レジスタの bit0) を反転して TRX ビッ
トへ格納します。この動作は , 反復「START」条件でも実行されます。
ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第 1 バイトは , 10
ビットシーケンスを示すヘッダ "1 1 1 1 0 A9 A8 0" であり , 続いて , 第 2 バイトでスレー
ブアドレスの下位 8 ビット (A7 ∼ A0) を送信します。
リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと
もに , リードアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。
7 ビット
スレーブアクセス
ライト 「START」条件 -A6 A5 A4 A3 A2 A1 A0 0
リード 「START」条件 -A6 A5 A4 A3 A2 A1 A0 1
ライト 「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0
10 ビット
スレーブアクセス
リード
「START」条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0
- 反復「START」条件 -1 1 1 1 0 A9 A8 1
● アービトレーション
マスタ送信時に , 他のマスタも同時にデータを送信している場合 , アービトレーション
が起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 ,
自身はアービトレーションを失ったと見なし , AL=1 にセットします。
インタフェースがデータの最初のビットで , 不要な「START」条件を検出されるか
「START」条件 , 「STOP」条件の生成が失敗した場合 , AL=1 がセットされます。
アービトレーションロストが発生すると , MSS=0, TRX=0 となり , スレーブ受信モード
となり , 自身のスレーブアドレスを受信するとアクノリッジを返します。
● アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット
(IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択できます。
スレーブモード時のデータ送信 ( 他のマスタからのリードアクセス ) に , マスタからア
クノリッジが無くても , TRX ビットは "0" にセットし , 受信モードになります。これに
より , マスタはスレーブが SCL ラインを開放した時に , ストップコンディションを発
生できます。
マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか
どうかをチェックできます。
489
第 16 章 I2C インタフェース
● バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビット含む ) の I2C バス上の基本規定違反の検出
• マスタモード時のストップコンディション検出
• バスアイドル時の I2C バス上の基本規定違反の検出
● エラーを発生しない通信エラー
マスタモード送信時 , SCL ラインにノイズ等で不正クロックが発生すると , I2C インタ
フェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ラインに
"L" レベルを出したまま , ハングアップすることがあります。このようなクロックの不
正に対し , エラー (AL=1, BER=1) が発生しません。
この場合次の方法でエラー処理をしてください。
1) MSS = 1, TRX = 1, INT = 1 のとき , LRB = 1 であれば , 通信エラーと判断。
2) ここで , EN = 0 とし , その後 EN = 1 とすることにより , 擬似的に SCL が 1 クロッ
ク発生します。これにより , スレーブにバスを開放させます。
EN = 0 から EN = 1 の期間は , スレーブ側が , クロックと認識できる期間 ( 送信ク
ロックの "H" 期間と同じ程度 ) としてください。
3) EN = 0 の時点で , IBSR, IBCR はクリアされますので , 「START」コンディション
から再送信処理をしてください。このとき , BSS = 0 による「STOP」コンディショ
ンは生成されません。
このとき , EN = 1 から MSS = 1 (「START」コンディション ) までに , "n × 7 × tCPP"
以上の時間を空けてください。
例 : 高速モードの場合 : 6 × 7 × 30.3 ≒ 1.273µs
標準モードの場合 : 27 × 7 × 30.3 ≒ 5.727µs
<注意事項>
BER がセットされている場合は , EN = 0 でクリアされませんのでクリア後 , 再送信して
ください。
● その他
1) アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド
レッシングされていなかった場合をソフトで判断しなければなりません。
アービトレーションロストするとハード的にスレーブになるが , 1 バイト転送終了
後 , CLK ライン , DATA ライン双方を "L" レベルにします。このため , アドレッシン
グされていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシング
されていた場合には , スレーブ送信または , スレーブ受信の準備をしてから , CLK ラ
イン , DATA ラインを開放する必要があります ( すべてソフトにて処理する必要が
あります )。
2) I2 C バスは , 1 バイト転送終了した時点 , または割込み条件に該当した場合に , 割込
み要因が発生します。
また , 1 つの割込みによって , 複数の割込み条件を判断しなければならないため , 割
込みルーチン内で , 各フラグをチェックしなければなりません。1 バイト転送終了
時点での割込み条件を下記に示します。
490
第 16 章 I2C インタフェース
• バスマスタであった場合
• アドレスされたスレーブであった場合
• ゼネラルコールアドレスを受信した場合
• アービトレーションロストが生じた場合
3) アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな
く , 1 バイト転送終了した時点で要因が発生します。
アービトレーションロストを検出するとハード的にスレーブになりますが , スレー
ブになっても , 割込み要因を発生するために , 全部で 9 クロック出力します。よっ
て , 即座に割込み要因が発生しないため , アービトレーションロスト後に処理を行
うことはできません。
491
第 16 章 I2C インタフェース
16.6
動作フローチャート
I2C インタフェースにおける動作フローチャートを示します。
■ スレーブアドレスとデータ転送の例
転送データ
7ビットスレーブアドレッシング
スタート
スタート
BERビットクリア(セット)
ライトアクセスの
インタフェース動作許可 EN=1
スレーブアドレス
IDAR =S.アドレス≪1+RW
IDAR = バイトデータ
MSS=1 INT=0
NO
INT=0
INT=1?
NO
INT=1?
YES
YES
YES
YES
BER=1?
BER=1?
NO
NO
AL=1?
YES AASの検査
により再起動
転送
AASの検査
により再起動
転送
YES
AL=1?
NO
NO
ACK?
バスエラー
NO
ACK?
(LRB=0?)
(LRB=0?)
YES
YES
データ転送の準備
最終バイト
の転送
YES
NO
転送終了
・スレーブがACKを発生しない
もしくは,マスタがACKを
受信できない
・一度 EN=0にし,再送信
NO
転送終了
・反復「START」条件,「STOP」
条件を発生する
・「STOP」条件発生(BB=0)を
を確認し,EN=0
転送終了
送信時:
・スレーブがACKを発生し
ない,もしくは,マスタ
がACKを受信できない
・一度 EN=0にし,再送信
受信時:
ACKなし,反復「START」条件,
「STOP」条件を発生する
492
第 16 章 I2C インタフェース
■ 受信データの例
スタート
リードアクセスの
スレーブアドレス
スレーブからの最終リード
データならACKビットを
クリアする。
INT= 0
INT=1?
NO
YES
BER=1?
YES バスエラー
再起動
NO
NO
最終バイト
の転送
YES
転送終了
反復「START」条件,「STOP」条件を
発生する
493
第 16 章 I2C インタフェース
■ 割込み処理
スタート
NO
他のモジュールからの
INT=1?
受信割込み
YES
YES
BER=1?
バスエラー
再起動
NO
GCA=1?
NO
NO
転送の失敗
AAS=1?
YES
スレーブ時にゼネラルコール
検出
YES
再トライを行う
YES
AL=1?
AL=1?
YES アービトレーション
ロスト再転送
NO
NO
YES
「STOP」条件,反復
LRB=1?
YES
次の割込みで
新データ転送開始
必 要 で あ れ ば
ACKビットを変更
「START」条件の生成
ADT=1?
NO
NO
TRX=1?
スレーブのACKなし
TRX=1?
YES
YES
NO
NO
IDA Rから受信データ
を読む。必要であれ
ばACKビットを変
更する
IDA Rに
次の送信
データを
ライト
IDA Rから受信データ
を読む。必要であ
ればACKビットを変
更する
クリアINTビット
ISR終了
494
IDA Rに 次 の 送
信データをライト
またはMSSビット
のクリア
第 17 章
16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 , レジスタの詳
細および動作について説明します。
17.1 16 ビットフリーランタイマの概要
17.2 16 ビットフリーランタイマのレジスタ
17.3 16 ビットフリーランタイマのブロックダイヤグラム
17.4 レジスタの詳細
17.5 16 ビットフリーランタイマの動作
17.6 16 ビットフリーランタイマの注意事項
495
第 17 章 16 ビットフリーランタイマ
17.1
16 ビットフリーランタイマの概要
16 ビットフリーランタイマの概要を説明します。
■ 概要
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールステータスレ
ジスタより構成されています。本タイマのカウント値はアウトプットコンペア , イン
プットキャプチャの基本時間 ( ベースタイマ ) として使用されます。
• カウントクロックは 4 種類から選択可能です。
• カウンタオーバフローにより割込み発生できます。
• モード設定により , アウトプットコンペアのコンペアレジスタ 0 の値との一致によ
るカウンタの初期化が可能です。
496
第 17 章 16 ビットフリーランタイマ
16 ビットフリーランタイマのレジスタ
17.2
16 ビットフリーランタイマのレジスタを示します。
■ レジスタ一覧
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
7
6
5
4
3
2
1
0
ECLK
IVF
IVFE
CLR
CLK1
CLK0
STOP MODE
タイマデータレジスタ上位 (TCDT)
タイマデータレジスタ下位 (TCDT)
タイマコントロール
ステータスレジスタ (TCCS)
497
第 17 章 16 ビットフリーランタイマ
16 ビットフリーランタイマのブロックダイヤグラム
17.3
16 ビットフリーランタイマのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 17.3-1 フリーランタイマのブロックダイヤグラム
割込み
ECLK
IV F
IV FE
STOP
MODE
CLR
CLK1
CLK0
分周器
φ
F-bus
FRCK
クロック選択
16ビットフリーランタイマ
(TCDT)
クロック
内部回路へ(T15~T00)
コンパレータ0
498
第 17 章 16 ビットフリーランタイマ
レジスタの詳細
17.4
16 ビットフリーランタイマのレジスタの詳細について説明します。
■ タイマデータレジスタ (TCDT)
TCDT
アドレス : 0000D4H
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T09
T08
初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0000H
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ
ンタ値は , リセット時に "0000" にクリアされます。このレジスタに書き込むことでタ
イマ値を設定できますが , 必ず停止 (STOP=1) 状態で行なってください。このレジスタ
は , ワードアクセスしてください。16 ビットフリーランタイマの初期化は次の要因で
行われます。
• リセットによる初期化
• コントロールステータスレジスタのクリア (CLR) による初期化
• コンペアクリアレジスタ (ch.0 のコンペアレジスタ ) 値とタイマカウンタ値の一致に
よる初期化 ( モード設定が必要です )
499
第 17 章 16 ビットフリーランタイマ
■ タイマコントロールステータスレジスタ (TCCS)
TCCS
7
6
5
IVF
IVFE
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
アドレス : 0000D7H ECLK
4
3
2
1
0
CLR
CLK1
CLK0
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0)
STOP MODE
初期値
[bit7] ECLK
16 ビットフリーランタイマのカウントクロックソースを内部か外部を選択する
ビットです。
本ビットに書込み後すぐにクロックは変更されますのでアウトプットコンペア , イ
ンプットキャプチャが停止状態のときに変更してください。
ECLK
クロック選択
0
内部クロックソースを選択 ( 初期値 )
1
外部端子 (FRCK) よりクロックを入力します
<注意事項>
内部クロックを選択した場合は , bit1, bit0 (CLK1, CLK0) にカウントクロックの設定を
行ってください。このカウントクロックがベースクロックとなります。また , FRCK より
クロックを入力する場合は , 対応する DDR ビットを "0" に設定してください。
外部クロックに必要な最低パルス幅は , 2T (T : 周辺系クロックマシンサイクル ) です。
外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割込み
は次のクロックで発生します。そのため , コンペア一致出力 , および割込みを発生させる
ためには , コンペア一致後最低 "1 クロック " 入力する必要があります。
[bit6] IVF
16 ビットフリーランタイマの割込み要求フラグです。
16 ビットフリーランタイマがオーバフローを起こしたとき , またはモード設定によ
りコンペアレジスタ0とコンペア一致したときに, 本ビットは"1"にセットされます。
割込み要求許可ビット (bit5:IVFE) がセットされていると割込みが発生します。
本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー
ドモディファイライト系命令では , 常に "1" が読めます。
IVF
500
割込み要求フラグ
0
割込み要求なし ( 初期値 )
1
割込み要求あり
第 17 章 16 ビットフリーランタイマ
[bit5] IVFE
16 ビットフリーランタイマの割込み許可ビットです。
本ビットが "1" のとき , 割込みフラグ (bit6:IVF) が "1" セットされると割込みが発生
します。
IVFE
割込みイネーブル
0
割込み禁止 ( 初期値 )
1
割込み許可
[bit4] STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。
本ビットに "1" 書込み時にタイマのカウント停止します。
本ビットに "0" 書込み時にタイマのカウントを開始します。
STOP
カウント動作
0
カウント許可 ( 動作 )( 初期値 )
1
カウント禁止 ( 停止 )
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
[bit3] MODE
16 ビットフリーランタイマの初期化条件を設定します。
本ビットが "0" のときは , リセットとクリアビット (bit2:CLR) でカウンタ値を初期
化できます。
本ビットが "1" のときは , リセットとクリアビット (bit2:CLR) の他にアウトプット
コンペアのコンペアレジスタ 0 の値との一致によりカウンタ値を初期化できます。
MODE
リセットの初期化
0
リセット , クリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , コンペアレジスタ 0 による初期化
<注意事項>
カウンタ値の初期化はカウント値の変化点で行われます。
501
第 17 章 16 ビットフリーランタイマ
[bit2] CLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
本ビットに "1" 書込み時にカウンタを "0000H" に初期化します。
本ビットに "0" を書込んでも意味を持ちません。リード値は , 常に "0" です。
CLR
フラグの意味
0
意味を持ちません ( 初期値 )
1
カウンタ値を "0000H" に初期化します
<注意事項>
カウンタ値の初期化は , カウント値の変化点で行われます。
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。
[bit1, bit0] CLK1, CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。
本ビットに書込み後 , すぐにクロックは変更されますのでアウトプットコンペア ,
インプットキャプチャが停止状態のときに変更してください。
CLK1
CLK0
カウン
トクロック
φ=25MHz
φ=12.5MHz
φ= 6.25MHz
φ= 3.125MHz
0
0
φ/4
160ns
320ns
640ns
1.28ms
0
1
φ/16
640ns
1.28ms
2.56ms
5.12ms
1
0
φ/32
1.28ms
2.56ms
5.12ms
10.24ms
1
1
φ/64
2.56ms
5.12ms
10.24ms
20.48ms
φ= マシンクロック
502
第 17 章 16 ビットフリーランタイマ
17.5
16 ビットフリーランタイマの動作
16 ビットフリーランタイマにおける動作について説明します。
■ 動作説明
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを
開始します。
このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプットキャプチャ
の基準時間となります。
● 16 ビットフリーランタイマの動作説明
カウンタ値は , 次の条件でクリアされます。
• オーバフローが発生したとき
• コンペアクリアレジスタ ( アウトプットコンペア ch.0 のコンペアレジスタ ) 値とコ
ンペア一致したとき ( モード設定が必要 )
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• タイマ停止中に TCDT に "0000H" を書き込んだとき
• リセットをかけたとき
割込みはオーバフローが発生したとき, コンペアクリアレジスタ0の値とコンペア一致
してカウンタがクリアされたとき発生します (コンペア一致割込みは , モード設定が必
要です )。
図 17.5-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
割込み
503
第 17 章 16 ビットフリーランタイマ
図 17.5-2 コンペアクリアレジスタ値とコンペア一致したときのカウンタクリア
カウンタ値
FFFFH
一致
BFFFH
一致
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ
BFFFH
割込み
● 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行
われます。
リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われますが , コ
ンペアクリアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期
して行われます。
図 17.5-3 フリーランタイマのクリアタイミング
コンペアクリアレジスタ値
N
カウンタクリア
カウンタ値
N
0000H
● 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ
ステムクロックで同期化したのち内部カウントクロックの立下りでカウントされま
す。
図 17.5-4 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
内部カウント
クロック
カウンタ値
504
N
N+1
第 17 章 16 ビットフリーランタイマ
17.6
16 ビットフリーランタイマの注意事項
16 ビットフリーランタイマの注意事項を説明します。
■ 注意事項
1) 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先しクリア動作は無効となります。
2) コントロールステータスレジスタの bit2 ( カウンタ初期ビット : CLR) は "1" が書き
込まれると , 内部カウンタをクリアするタイミングまで , 値を保持し , そのタイミン
グで自身もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書
込みが優先し , カウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続
けます。
3) カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有
効となります。
停止中にカウンタをクリアする場合は , タイマカウントデータレジスタに "0000H"
を書き込むようにしてください。
505
第 17 章 16 ビットフリーランタイマ
506
第 18 章
インプットキャプチャ
インプットキャプチャの概要 , レジスタの詳細およ
び動作について説明します。
18.1 インプットキャプチャの概要
18.2 インプットキャプチャのレジスタ
18.3 インプットキャプチャのブロックダイヤグラム
18.4 レジスタの詳細
18.5 インプットキャプチャの動作
507
第 18 章 インプットキャプチャ
18.1
インプットキャプチャの概要
インプットキャプチャの概要を説明します。
■ 概要
本モジュールは外部から入力された信号の立上りエッジ , 立下りエッジまたは両エッ
ジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持する機能を
持っています。また , エッジ検出時に割込みを発生できます。
インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジス
タで構成されています。
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
• 外部入力の有効エッジを 3 種類から選択可能です。
立上りエッジ
立下りエッジ
両エッジ
• 外部入力有効エッジを検出したときに割込みを発生できます。
インプットキャプチャを 4 チャネル内蔵しています。
508
第 18 章 インプットキャプチャ
インプットキャプチャのレジスタ
18.2
インプットキャプチャのレジスタを示します。
■ レジスタ一覧
15
14
13
12
11
10
9
8
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
7
6
5
4
3
2
1
0
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
7
6
5
4
3
2
1
0
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
7
6
5
4
3
2
1
0
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
インプットキャプチャ
データレジスタ上位 (IPCP)
インプットキャプチャ
データレジスタ下位 (IPCP)
インプットキャプチャコントロール
レジスタ (ICS23)
インプットキャプチャコントロール
レジスタ (ICS01)
509
第 18 章 インプットキャプチャ
インプットキャプチャのブロックダイヤグラム
18.3
インプットキャプチャのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 18.3-1 インプットキャプチャのブロックダイヤグラム
16ビットタイマカウント値(T15~T00)
ICU 0, ICU2
入力端子
エッジ検出
R-bus
キャプチャデータレジスタ
ch.0,ch.2
EG11
EG10
EG01
EG00
EG31
EG30
EG21
EG20
16ビットタイマカウント値(T15~T00)
キャプチャデータレジスタ
ch.1,ch.3
ICU 1,3
入力端子
エッジ検出
ICP1
ICP0
ICE1
ICE0
ICP3
ICP2
ICE3
ICE2
割込み
割込み
510
第 18 章 インプットキャプチャ
レジスタの詳細
18.4
インプットキャプチャのレジスタの詳細について説明します。
インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。
• インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
• インプットキャプチャコントロールレジスタ (ICS01, ICS23)
■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
14
13
12
11
10
9
8
アドレス :0000DAH CP15
0000D8H
R
0000DEH
0000DCH
CP14
CP13
CP12
CP11
CP10
CP09
CP08
初期値
R
R
R
R
R
R
R
xxxxxxxxB
7
アドレス :0000DBH
0000D9H CP07
0000DFH
R
0000DDH
6
5
4
3
2
1
0
CP06
CP05
CP04
CP03
CP02
CP01
CP00
初期値
R
R
R
R
R
R
R
xxxxxxxxB
IPCP0 ∼ IPCP3
15
本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16
ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。
このレジスタは 16 ビットデータまたは , 32 ビットデータでアクセスしてください。書
込みはできません。
■ インプットキャプチャコントロールレジスタ (ICS01, ICS23)
ICS23
7
6
5
4
3
2
1
0
アドレス :0000E1H ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00000000B
7
6
5
4
3
2
1
0
アドレス :0000E3H ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00000000B
ICS01
[bit7, bit6] ICP3, ICP2, ICP1, ICP0
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ
トされていると , 有効エッジを検出することにより割込みを発生します。本ビット
は , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモ
ディファイライト系の命令では "1" が読めます。
ICPn
インプットキャプチャ割込みフラグ
0
有効エッジ検出なし ( 初期値 )
1
有効エッジ検出あり
ICPn : n の番号がインプットキャプチャのチャネル番号に対応します。
511
第 18 章 インプットキャプチャ
[bit5, bit4] ICE3, ICE2, ICE1, ICE0
インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ
(ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発
生します。
ICEn
インプットキャプチャ割込み指定
0
割込み禁止 ( 初期値 )
1
割込み許可
ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。
[bit3 ∼ bit0] EG31, EG30, EG21, EG20, EG11, EG10, EG01, EG00
外部入力の有効エッジ極性を選択するビットです。
インプットキャプチャ動作許可も兼用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 )( 初期値 )
0
1
立上りエッジ検出↑
1
0
立下りエッジ検出↓
1
1
両エッジ検出↑ & ↓
エッジ検出極性
EGn1/EGn0 : n の番号がインプットキャプチャのチャネル番号に対応します。
512
第 18 章 インプットキャプチャ
18.5
インプットキャプチャの動作
インプットキャプチャにおける動作について説明します。
■ 動作説明
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフ
リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することができ
ます。
● 16 ビットインプットキャプチャの動作
図 18.5-1 インプットキャプチャの取込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
IN0
IN1
IN2
不定
データレジスタ0
BFFFH
3FFF H
データレジスタ1
不定
データレジスタ2
不定
BFFFH
7FFFH
キャプチャ 0 割込み
キャプチャ 1 割込み
キャプチャ 2 割込み
再度有効エッジにより割込み発生
キャプチャ 0 = 立上りエッジ
キャプチャ 1 = 立下りエッジ
キャプチャ 2 = 両エッジ
ソフトウェアにより割込みクリア
● 16 ビットインプットキャプチャの入力タイミング
図 18.5-2 インプットキャプチャの入力タイミング例
カウンタ値
N
N+1 _
インプットキャプチャ入力
キャプチャ信号
キャップレジスタ値
有効エッジ
N+1
割込み
513
第 18 章 インプットキャプチャ
514
第 19 章
プログラムローダモード
<MB91302A (IPL 内蔵版 ) のみ対応 >
プログラムローダモードの概要 , 設定方法 , 動作に
ついて説明します。
19.1 プログラムローダモードの概要
19.2 プログラムローダの設定方法
19.3 プログラムローダモードの動作説明
19.4 プログラムローダモードを利用した Flash メモリへの書
込み例
515
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
19.1
プログラムローダモードの概要
プログラムローダモードの概要を説明します。
■ プログラムローダモードの概要
プログラムローダモードは , 内蔵 ROM に格納されたプログラムローダが , UART ch.0
を用いて外部とシリアル通信を行い , 外部からプログラムを内蔵 RAM (2K バイト ) へ
ロードして , ロードしたプログラムを起動するモードです。
シリアル通信は , INIT による初期化時の UART ch.0 における端子 SIN0 の状態により ,
非同期通信か同期通信かが選択可能です。ただし , 非同期通信の場合は原発振周波数
17.0MHz (CPU の動作クロックは PLL で原発振周波数を 4 逓倍した 68.0MHz です ) に
よるボーレート 9600bps で動作しますので , 原発振周波数は必ず 17.0MHz でご使用く
ださい。
なお , プログラムローダモードは MB91302A (IPL 内蔵版 ) でのみ対応する機能です。
■ メモリマップ
内蔵 ROM (4K バイト ) に格納されているローダプログラムは内 ROM 外バスモードで
実行され , 実行後のメモリマップは , 下記のようになります。プログラムを配置できる
のは下記の命令 RAM 領域 ( 命令キャッシュを RAM モードへ設定 ) となります。外部
領域他へアクセスする場合は , ダウンロードされたプログラムにて , 必要なレジスタ設
定を行ってください。
000FFFFFH
内蔵ROM 4Kバイト
000FF000H
データ用RAM
0003FFFFH
RAM領域 4Kバイト
0003F000H
000187FFH
RAM領域 2Kバイト
00018000H
00000000H
516
命令RAM
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
19.2
プログラムローダの設定方法
プログラムローダの設定方法について示します。
■ プログラムローダの設定方法
INIT による初期化時に端子 MD2, MD1, MD0, SIN0 の状態を表 19.2-1 のとおりに設定す
ると , 内蔵 ROM に格納されたプログラムローダが起動します。
外部とのシリアル通信に用いる UART ch.0 は , INIT による初期化時の端子 SIN0 の状
態で , 非同期通信か同期通信かが決定されます。SIN0 の設定については , 図 19.2-1, 図
19.2-2 にリセットタイミングを示します。
表 19.2-1 INIT による初期化時における端子 MD2, MD1, MD0, SIN0 の設定
端子名
MD2
MD1
MD0
SIN0
非同期通信
0
0
0
1
同期通信
0
0
0
0
仕様
図 19.2-1 リセットタイミング ( 非同期通信 )
INIT
SIN0
1ms以上
SOT0
図 19.2-2 リセットタイミング ( 同期通信 )
INIT
SIN0
1ms以上
SOT0
SCK0
517
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
プログラムローダモードの動作説明
19.3
プログラムローダモードの非同期通信および同期通信の動作について説明します。
■ プログラムローダモードの動作説明
● 非同期通信−原発振周波数 17.0MHz
UART ch.0 の非同期モード ( モード 0) でシリアル通信を行います。
マシンクロック 68.0MHz ( 原発振周波数 17.0MHz の PLL による 4 逓倍 ) でボーレート
9600bps になります。
シリアルの設定はデータ長…8 ビット , ストップビット長…1 ビット , パリティなし ,
LSB ファーストです。
● 同期通信
UART ch.0 の同期モード ( モード 2) でシリアル通信を行います。ボーレートの選択は ,
クロック入力 (SCK0) により自由に設定できます ( クロック入力 SCK0 の周波数がその
ままボーレート )。
クロック入力の最大周波数は, 周辺系動作クロックの周波数の1/8以下でかつ3.125MHz
以下です。
なお , 周辺系動作クロックの周波数は , 下記の式で与えられます。
周辺系動作クロック周波数=マシンクロック周波数 ( 原発振周波数の PLL による
4 逓倍 ) の 1/2
シリアル設定はデータ長…8 ビット , パリティなし , LSB ファーストです。
いずれのモードも
• コマンドデータ (00H)
• ダウンロード先 RAM アドレス 4 バイト (00018000H ∼ 000187FFH)
• ダウンロードバイト数 4 バイト ( 最大 000007FFH)
の 3 つのダウンロード情報データを FR 側へ順に上位バイトから 1 バイトずつ与え , さ
らにこれらの SUM チェックデータ ( データをすべて加えて下位 8 ビットを取り出し )
を与えることにより , RAM へのダウンロードルーチンに入ります。次に内蔵 RAM に
ダウンロードしたいデータを同じく FR 側へ順に上位バイトから 1 バイトずつ与え ,
SUM チェックデータを与えます。転送終了後 , RAM にジャンプしダウンロードされた
プログラムが実行されます。
■ コマンド一覧
FR 側に発行されるコマンドおよび FR 側からの応答信号の一覧を示します。
FR
コマンド
コマンド
受信応答
518
ダウンロード
( 受信 ) ← 00H ( パソコンなど )
リセット
( 受信 ) ← 18H ( パソコンなど )
RAM ジャンプ
( 受信 ) ← C0H ( パソコンなど )
コマンド異常
( 受信コマンド &F0H) | 04H → ( 受信 ) ( パソコンなど )
SUM チェック異常
{ 受信コマンド (00H)&F0H} | 02H → ( 受信 )
( パソコンなど )
RESET コマンド受信
11H
→ ( 受信 ) ( パソコンなど )
DOWN LOAD コマンド受信
01H
→ ( 受信 ) ( パソコンなど )
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
■ 動作例
● RAM アドレス 00018000H へ 0000005BH バイトのデータを転送するとき
FR
処理の順番
パソコンなど
①
00H
→
②
00H
→
③
01H
→
④
80H
→
⑤
00H
→
⑥
00H
→
⑦
00H
→
⑧
00H
→
⑨
5BH
→
SUM チェックデータ
⑩
DCH
→
( 受信 )
FR からのアクノリッジ
⑪
( 受信 )
←
01H
データ送信
⑫
DATA
→
( 受信 )
SUM チェックデータ
⑬
*
→
( 受信 )
コマンドデータ
ダウンロード先アドレス
ダウンロードバイト数
(91 バイト )
( 受信 )
( 受信 )
( 受信 )
*: 送信データをすべて加えて下位 8 ビットを取り出し
● データ転送後に RAM のアドレスにプログラムカウンタがジャンプするとき
FR
処理の順番
パソコンなど
①
C0H
→
②
00H
→
③
00H
→
④
00H
→
⑤
00H
→
⑥
00H
→
⑦
00H
→
⑧
00H
→
⑨
00H
→
SUM チェックデータ
⑩
C0H
→
( 受信 )
RAM へジャンプ
⑪
−
−
*
コマンドデータ
ダミーデータ
ダミーデータ
( 受信 )
( 受信 )
( 受信 )
*: プログラムカウンタのジャンプ先は, RAMへデータを転送する際に指定したダウン
ロード先アドレスになります。ジャンプする際には「コマンドデータ (C0H)」+「ダ
ミーデータ (8 バイト )」+「SUM チェックデータ」が必要になります。
519
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● パソコンなどからリセットコマンドを発行するとき
FR
パソコンなど
コマンドデータ
①
18H
→
( 受信 )
リセット実行
③
−
−
*
*: コマンドデータ "18H" をパソコンなどから発行すると , 直ちにリセットシーケンス
へ遷移します。
詳細動作については次項以降の専用 ROM 内プログラムのフローチャートを参照して
ください。
なお , UART の詳細動作 , 全端子状態などについては , 「第 13 章 UART」または付録 C
の「■端子状態一覧表」の「イニシャライズ時 (INIT)」を参照してください。
520
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
■ フローチャート
● メインプログラム フローチャート
START
SIN=L ?
NO
非同期通信
YES
同期
非同期通信
同期
ギア設定 CPU:13.5MHz / 周辺:13.5MHz
UART1設定*
MAIN
コマンド受信
00H
DOWN LOAD
受信コマンド=?
(DOWN LOAD)
00H/C0H以外
C0H
*UART1設定について
非同期の時
・非同期モード(内部タイマ使用)
・ボーレート9600bps
(水晶発振器17.0MHz時)
・データ長8ビット
・ストップビット1ビット
・パリティなし
RAMへJUMP
コマンドエラー
同期の時
・同期モード(外部クロック使用)
・データ長8ビット
・パリティなし
521
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン " コマンド受信 " フローチャート … 非同期モードのとき
コマンド受信
1バイト受信(コマンドデータ)
NO
受信データ有 ?
YES
1バイトデータ受信(コマンドデータ)
受信データ=18 H?
8バイト受信(ダウンロード情報データ)
ダウンロード先アドレス4バ イト
+
ダウンロードバイト数4バイ ト
YES
RESET
NO
受信データ有 ?
NO
YES
1バイトデータ受信(ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=8回 ?
(8バイト受信)
NO
YES
1バイト受信(SUMチェックデータ)
受信データ有 ?
NO
YES
1バイトデータ受信( SUMチェックデータ):α
コマンドデータとダウンロード情報デ-タ
(合計 9 バイト分)を加えて下位 8 ビットを取り出し:β
β=α ?(SUMチェック)
YES
EXIT
522
NO
SUMチェックエラー
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン "DOWN LOAD" フローチャート … 非同期モードのとき
DOWN LOAD
1バイト送信(コマンド正常受信応答)
1バイト送信(01H)
RAMにダウンロード
受信データ有 ?
NO
YES
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=ダウンロードバイト数 ?
NO
YES
1バイト受信(SUMチェックデータ)
受信データ有 ?
NO
YES
1バイトデータ受信(SUMチェックデータ)
:α
受信データすべてを加えて下位8ビット取り出し:β
α=β ?(SUMチェック)
NO
SUMチェックエラー
YES
EXIT
523
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン " コマンドエラー " フローチャート … 非同期モード
1バイト送信(コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取り出し
・{(受信コマンドデータ)&(F0H)}|(04H)
1バイト送信
MAIN
● サブルーチン "SUM チェックエラー " フローチャート … 非同期モード
1バイト送信(SUMチェック異常応答)
SUMチェックエラー
送信データ作成
・受信コマンドデータ取り出し
・{(受信コマンドデータ)&(F0H)}|(02H)
1バイト送信
MAIN
● サブルーチン "RESET" フローチャート … 非同期モード
1バイト送信(RESETコマンド受信応答)
RESET
1バイト送信(11H)
MAIN
524
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン " コマンド受信 " フローチャート … 同期モードのとき
コマンド受信
1バイト送信(ダミー)…00H
1バイト受信(コマンドデータ)
受信データ有 ?
NO
YES
1バイトデータ受信(コマンドデータ)
受信データ=18H ?
YES
RESET
NO
1バイト送信(ダミー)…00H
8バイト受信(ダウンロード情報データ)
ダウンロード先アドレス 4 バイト
+
ダウンロードバイト数4 バイト
受信データ有 ?
NO
YES
1バイト送信(ダミー)…00H
1バイトデータ受信(ダウンロード情報データ)
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=8回 ?
(8バイト受信)
YES
NO
1バイト受信(SUMチェックデータ)
受信データ有 ?
NO
YES
1バイトデータ受信(SUMチェックデータ) :β
コマンドデータとダウンロード情報データ
(合計9バイト分)を加えて下位8ビットを取り出し:α
β=α?(SUMチェック)
NO
SUMチェックエラー
YES
EXIT
525
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン "DOWN LOAD" フローチャート … 同期モードのとき
DOWN LOAD
1バイト送信(コマンド正常受信応答)
1バイト送信(01H)
受信データ有 ?
NO
YES
ダミー受信
DOWNLOAD
1バイト送信(ダミー)…00H
受信データ有 ?
NO
YES
RAMにダウンロード
1バイトデータ受信
・受信データ格納アドレスインクリメント
・受信回数カウント
受信回数=ダウンロードバイト数 ?
NO
YES
1バイト送信(ダミー)…00H
1バイト受信(SUMチェックデータ)
受信データ有 ?
NO
YES
1バイトデータ受信(SUMチェックデータ) :α
受信データ全てを加えて下位8ビット取り出し :β
α=β ?(SUMチェック)
YES
EXIT
526
NO
SUMチェックエラー
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン " コマンドエラー " フローチャート … 同期モード
1バイト送信(コマンド異常受信応答)
コマンドエラー
送信データ作成
・受信コマンドデータ取り出し
・{(受信コマンドデータ)&(F0 H)}|(04H)
1バイト送信
受信データ有 ?
NO
YES
ダミー受信
MAIN
● サブルーチン "SUM チェックエラー " フローチャート … 同期モード
1バイト送信(SUMチェック異常応答)
SUMチェックエラー
送信データ作成
・受信コマンドデータ取り出し
・{(受信コマンドデータ)&(F0 H)}|(02H)
1バイト送信
受信データ有 ?
NO
YES
ダミー受信
MAIN
527
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
● サブルーチン "RESET" フローチャート … 同期モード
1バイト送信(RESETコマンド受信応答)
RESET
1バイト送信(11H)
受信データ有 ?
YES
ダミー受信
MAIN
528
NO
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
19.4
プログラムローダモードを利用した Flash メモリへの
書込み例
プログラムローダモードを利用して , CS0 へ接続された Flash メモリの配置と書き
込む場合の接続例を示します。
■ Flash メモリの配置
CS0 に接続される Flash メモリは , 0x00000000H ∼ 0x00FFFFFFH 範囲の任意な領域に配
置する必要があります。シリアルプログラマによって RAM に展開されたプログラム
は , 実際のアドレスではなく , ミラーアドレスに書込みを行います。書き込んだプログ
ラムを実行するのは外 ROM 外バスモードなので , 内蔵 ROM 領域を意識することなく
配置することができます。
図 19.4-1 Flash メモリの配置
内ROM外バスモード
実際のアドレス
外ROM外バスモード:
書き込んだプログラムを実行するモード
ミラーアドレス
0x00000000H
0x00000000H
内蔵ROM
内蔵ROM
0x00FFFFFFH
0x00FFFFFFH
0x10000000H
0x10FFFFFFH
■ 1M バイト Flash の接続例
Flash 全体をアクセスするためには , 内蔵リソースや RAM 等の内部領域とオーバラップ
しない領域に Flashメモリを配置する必要があります。本例では, CS0領域に接続された
1M バイトの Flash メモリを「0x10 0000 ∼ 0x1F FFFF 番地」としてアクセスすることを
想定しています。ただし , 「FR ファミリでは , リセットベクタは 0xF FFFC 番地 , モー
ドベクタは 0xF FFF8 番地に固定」されており , 書き込まれた Flash 内のプログラムを正
常に実行させるためには , この領域をカバーしておく必要があります。これは , 1M バイ
トの Flash の場合であれば , A20 より上位のアドレス信号は Flash へは接続されませんの
で , CS0 のアドレスレンジ設定を 0x0 ∼ 0x1F FFFF 番地とすることで , 0x0 ∼ 0xF FFFF
番地と 0x10 0000 ∼ 0x1F FFFF 番地をミラー領域としてアクセスすることで対応できま
す。
図 19.4-2 にオフセットアドレスを付加したメモリアクセス (1M バイトの場合 ) を示しま
す。
529
第 19 章 プログラムローダモード <MB91302A (IPL 内蔵版 ) のみ対応 >
図 19.4-2 オフセットアドレスを付加したメモリアクセス (1M バイトの場合 )
MB91302
(IPL内蔵版)
000F FFFCとしても1F FFFCとしても, 同一領域をアクセス可能
A20
A19
A18
A17
A16
‥
A12
A11
A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
A18
A17
A16
A15
‥
1M Byte
A11
A10
Flash
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0 D15~D8 D7~D0 CEx
D31~D24
D23~D16
CS0x
なお , Flash へ書き込まれたプログラムを実行する場合は , 「外部ベクタ起動 , 外 ROM
外バスモード」となりますので , ローダが格納された内蔵 ROM 領域は意識する必要は
ありません。
図 19.4-3 に各モードにおけるメモリマップを示します。
図 19.4-3 各モードにおけるメモリマップ
内ROM外バスモード(ローダプログラム実行時)
0x00 0000H
内蔵RAM
内蔵リソース
内蔵リソース
外ROM外バスモード(通常動作時)
0x00 0000H
内蔵RAM
A*
0x0F FFFFH
0x10 0000H
0x0F FFFFH
外部Flashへの
書込み
0x1F FFFFH
B*
0x1F FFFFH
*:Aの領域でプログラムを実行させる場合は、コンパイラの「ショートアドレス最適化が
使用できますが、内蔵メモリや、内蔵リソースにオーバラップしている領域はアクセスできま
せん。
Bの領域で実行させる場合は、コンパイラの「ショートアドレス最適化」は使用できません
が、内蔵メモリ等のアドレスとオーバラップすることなく、Flash全体をアクセスできます。
530
第 20 章
リアルタイム OS 内蔵
MB91302A-010 使用手引き
MB91302A-010 の特長や開発方法について説明し
ます。
20.1 概要
20.2 メモリマップ
20.3 MB91302A-010 搭載の REALOS/FR の仕様
20.4 配置
20.5 スタートアップルーチン
20.6 SOFTUNE Workbench と REALOS/FR の初期設定
20.7 モード端子 , モードベクタ , リセットベクタ
20.8 評価系
531
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.1
概要
MB91302A-010 の概要および関連マニュアルなどについて説明します。
■ 概要
MB91302A-010 は , 当社オリジナル 32 ビット RISC マイコン FR ファミリ MB91302A の
内部 ROM に µITRON3.0 準拠 *1 の SOFTUNE REALOS/FR*2 ( 以後 REALOS/FR) を搭載
したマイコンです。
この章は , MB91302A-010 の特長や開発方法を解説したものです。MB91302A-010 のプ
ログラム開発は , SOFTUNE Workbench と MB91302A-RDK01 にバンドルされた機能限
定版 REALOS/FR によって行います。したがって , この章のほかに関連する開発ツール
のマニュアルも併せて参照願います。
■ 搭載 REALOS/FR のバージョン
SOFTUNE REALOS/FR Rev600001 (SOFTUNE REALOS/FR カーネル V30L08)
■ 関連マニュアル
「FR ファミリ µITRON3.0 仕様準拠 SOFTUNE REALOS/FR ユーザーズガイド」
「FR ファミリ µITRON3.0 仕様準拠 SOFTUNE REALOS/FR カーネルマニュアル」
「FR/F2MC ファミリ µITRON 仕様準拠 SOFTUNE REALOS/FR/907/896 コンフィグレー
タマニュアル」
「FR-V/FR/F2MC ファミリ µITRON 仕様準拠 SOFTUNE REALOS アナライザマニュアル」
「FR ファミリ アセンブラマニュアル」
「SOFTUNE リンケージキットマニュアル V6 対応」
「SOFTUNE Workbench 操作マニュアル V6 対応」
「SOFTUNE Workbench 機能説明書」
「SOFTUNE Workbench コマンドリファレンスマニュアル V6 対応」
*1: TRON は , "The Realtime Operating System Nucleus" の略称です。
ITRON は , "Industrial TRON" の略称です。
µITRON は , "Micro Industrial TRON" の略称です。
*2: SOFTUNE は , 富士通株式会社の商標です。
REALOS は , 富士通株式会社の商標です。
532
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.2
メモリマップ
MB91302A-010 とその評価チップ MB91V301A のメモリマップを説明します。
下記は , MB91302A-010 と MB91V301A のメモリマップです。MB91302A-010 のアドレ
ス 0xFF000 ∼ 0xFFFFF に配置されている 4K バイトの内部 ROM 領域に µITRON3.0 に
準拠した REALOS/FR が搭載されています。
図 20.2-1 MB91302A-010 と MB91V301A のメモリマップ
0x 00000000H
0x00000400 H
MB91302A-010
MB91V301A
ダイレクト
アドレッシングI/O
ダイレクト
アドレッシングI/O
I/O
I/O
0x00001000 H
I-RAM 4KB
I-RAM 4KB
0x00002000 H
アクセス禁止
アクセス禁止
0x0003E000 H
0x0003F000 H
RAM 16KB
RAM 4KB
0x00040000 H
0x00042000 H
外部領域
アクセス禁止
0x00060000 H
0x000E0000 H
外部領域
アクセス禁止
0x000FE000 H
0x000FF000 H
0x00100000 H
ROM 4KB
(REALOS/FR搭載)
RAM 8KB
外部領域
外部領域
0xFFFFFFFF H
533
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.3
MB91302A-010 搭載の REALOS/FR の仕様
MB91302A-010 では , µITRON3.0 準拠の REALOS/FR を内部 4K バイトの ROM に
搭載しています。内部 ROM に搭載している REALOS/FR がサポートしているシス
テムコールやオブジェクトについて説明します。
■ 搭載 REALOS/FR の概要
REALOS/FR が使用するシステムスタックのサイズは 64K バイトです。周期起動ハン
ドラは最大 32 個まで対応しています。ユーザタスクは最大 64 個まで登録可能で優先度
は 1 ∼ 32 までが設定が可能です。なお , アラームハンドラには対応していません。
表 20.3-1 搭載 REALOS/FR 概要
システムスタックサイズ
64K バイト
アラームハンドラ
未対応
周期起動ハンドラ数
0 ∼ 32
ユーザタスク優先度
1 ∼ 32
ユーザタスク数
1 ∼ 64
セマフォ数
0 ∼ 32
イベントフラグ数
0 ∼ 32
メールボックス数
0 ∼ 32
■ 搭載システムコール
MB91302A-010 の内部 ROM に搭載されているシステムコールは , 次のシステムコール
です。実際の開発では , REALOS/FR のコンフィグレータで下記のシステムコールをす
べて登録し , それ以外のシステムコールは絶対に登録しないようご注意ください。
ターゲットボード上の評価チップ MB91V301A でデバッグを行います。
REALOS/FR のコンフィグレータでシステムコールを登録する方法は , SOFTUNE
REALOS/FR のコンフィグレータマニュアルを参照願います。
表 20.3-2 対応システムコール
機能
タスク管理
sta_tsk
ext_tsk
タスク付属同期
tslp_tsk
wup_tsk
sig_sem
wai_sem
preq_sem
set_flg
clr_flg
wai_flg
snd_msg
rcv_msg
prcv_msg
時間管理
def_cyc
ret_tmr
割込み管理
ret_int
同期 • 通信
534
システムコール
chg_pri
pol_flg
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ オブジェクト
MB91302A-010 の内部 ROM に搭載しているオブジェクトを説明します。
MB91302A-010 では , イベントフラグ , セマフォ , メールボックスに対応しています。
表 20.3-3 搭載オブジェクト
オブジェクト名
定義数
イベントフラグ
0 ∼ 32 個
セマフォ
0 ∼ 32 個
メールボックス
0 ∼ 32 個
● イベントフラグ
MB91302A-010 では最大 32 個までのイベントフラグに対応しています。
プログラム開発時のイベントフラグの定義は , SOFTUNE REALOS/FR のコンフィグ
レータのイベントフラグ定義で行います。なお , 実際に使用するイベントフラグ数が
32 個未満の場合でも , イベントフラグ定義では空の定義も含めて必ず 32 個定義する必
要があります。
● セマフォ
MB91302A-010 では最大 32 個までのセマフォに対応しています。
プログラム開発時のセマフォの定義は , SOFTUNE REALOS/FR のコンフィグレータの
セマフォ定義で行います。なお , 実際に使用するセマフォ数が 32 個未満の場合でも ,
セマフォ定義では空の定義も含めて必ず 32 個定義する必要があります。
● メールボックス
MB91302A-010 では最大 32 個までのメールボックスに対応しています。
プログラム開発時のセマフォの定義は , SOFTUNE REALOS/FR のコンフィグレータの
メールボックス定義で行います。なお , 実際に使用するメールボックス数が 32 個未満
の場合でも , メールボックス定義では空の定義も含めて必ず 32 個定義する必要があり
ます。
535
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ ユーザタスク
MB91302A-010 では , 最大 64 個までのユーザタスクに対応しています。
プログラム開発時のユーザタスクの定義は , SOFTUNE REALOS/FR のコンフィグレー
タのタスク定義で行います。
表 20.3-4 対応ユーザタスク
ユーザタスク数
1 ∼ 64 個
実際にプログラムで使用するユーザタスク数が 64 個未満の場合でも , SOFTUNE
REALOS/FR のコンフィグレータのタスク定義で空のタスクを含めて必ず 64 個のタス
ク を 定 義 し ま す。そ の 際 , 実 際 に は 使 用 し な い 空 の ユ ー ザ タ ス ク の 初 期 状 態 は
DORMANT で構成します。また , 使用しない空のユーザタスクでも空のソースコード
を作成して他のタスクと共にコンパイルします。
実際のプログラムでは , これら未使用のタスクに対してシステムコールを発行しない
よう注意してください。
void boo(void){}
リスト 1 使用しないタスクに関する空のソースコード例
536
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.4
配置
セクションの配置について説明します。
MB91302A-010 では , 下記セクションの配置アドレスが固定となります。実際にプログ
ラムを開発する際には , これらセクションの配置アドレスが , 必ず下記アドレスになる
ように配置してください。配置は SOFTUNE Workbench のプロジェクトの設定のリン
カタブにて行い , sstack, knldata1, knldata2, DBGDAT2, mplmem, mplctl, mpfmem は RAM
領域に , inidata, startcode, R_eit は ROM 領域に配置します。
なお , MB91302A-010 ではメモリプール関連のシステムコールには対応していません
が , メモリプールに関連する mplmem, mplctl, mpfmem の各セクションも配置する必要
があります。
表 20.4-1 配置アドレスが固定となるセクション
セクション名
配置アドレス
機能 / サイズ
oscode
0x000FF000H
リアルタイム OS/0xFE4
sstack
0x10000000H
システムスタック /0x10000
knldata1
0x10010000H
リアルタイム OS データ /0x1A68
knldata2
0x10011F00H
アイドルタスクのスタック /0x60
DBGDAT2
0x10011FB0H
デバッグ用データ /0x4
mplmem
0x10011FD0H
メモリプール関連データ /0x0
mplctl
0x10011FE0H
メモリプール関連データ /0x0
mpfmem
0x10011FF0H
メモリプール関連データ /0x0
inidata
0x400FE000H
リアルタイム OS データ /0xDCC
startcode
0x400FE400H
スタートアップルーチン /0x544
R_eit
0x400FFC00H
ベクタエントリ /0x400
備考
内部 ROM
外部 RAM に配置
外部 ROM に配置
537
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.5
スタートアップルーチン
スタートアップルーチンについて説明します。
MB91302A-010 では , スタートアップルーチン init_MB91302A-010_rtos.asm が必ず
startcode セクションに配置されます。また , 内部 ROM に搭載されている REALOS/FR
が直接 init_MB91302A-010_rtos.asm 内に記述されているラベル _uinit と _system_down
を参照しているので , スタートアップルーチンは富士通が提供する init_MB91302A010_rtos.asm を必ず使用して , その内容を書き換えないでください。内容を書き換える
と REALOS/FR が参照しているこれらラベルのアドレスがずれて , 正常に動作しなくな
ります。
下記は , init_MB91302A-010_rtos.asm に記述されているサブルーチンの処理フローを説
明したものです。この中で , _csinit ( バス設定 / クロック設定 etc), _rtinit ( リロードタイ
マの設定 ), _init ( その他のユーザ初期化設定 ), _sysdwn ( システムダウン時のルーチン )
は , コール命令で呼び出されるサブルーチンです。これらは , ユーザがシステムに合わ
せて作成します。
図 20.5-1 スタートアップルーチンに記述されているサブルーチンのフロー
_system_entry
_csinit
REALOS/FRが参照する
init_MB91302A-010_rtos.asm
に記述されているラベル
_R_init
_uinit
_rtinit
_init
リアルタイムOS 通常処理
(タスク起動,ディスパッチ, etc.)
REALOS/FRが参照する
init_MB91302A-010_rtos.asm
に記述されているラベル
_system_down
538
_sysdwn
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.6
SOFTUNE Workbench と REALOS/FR の初期設定
プログラム開発は SOFTUNE Workbench と REALOS/FR によって行います。
実際に例を挙げてツールの初期設定を説明します。
■ プログラム例
今回 , 次の仕様のプログラムを例にツールの初期設定を説明します。
• ユーザタスク
§タスク数
50
§スタックサイズ
0x1000 ( タスクあたり )
§初期状態
タスク ID1 ∼ 40
⇒ READY
タスク ID41 ∼ 50
⇒ DORMANT
タスク ID1 ∼ 30
⇒1
タスク ID31 ∼ 50
⇒2
§起動優先度
• セマフォ
§セマフォ数
20
§セマフォカウント
セマフォ ID1 ∼ 10
セマフォ ID11 ∼ 20
⇒ 最大値 20 初期値 0
⇒ 最大値 15 初期値 0
• イベントフラグ
§フラグ数
32
§初期パターン
セマフォ ID1 ∼ 16
⇒ 0x0000
セマフォ ID17 ∼ 32
⇒ 0xFFFF
• メールボックス
§ボックス数
10
• 割込みベクタ
§システムクロック用にリロードタイマ 0 を使用
⇒タイマハンドラ名 _timer
• メモリ
§コード ROM
0x40000000-0x403FFFFF (CS0 の領域 x16 ビット )
§ワーク RAM
0x10000000-0x10FFFFFF
539
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ REALOS/FR コンフィグレータの設定
SOFTUNE Workbench で新規に REALOS/FR 用のプロジェクトを作成すると , プロジェ
クトウィンドウの REALOS ディレクトリ内にメンバ名 " プロジェクト名 .rcf" ( 以下 rcf
ファイル ) ができるので , この rcf ファイルをダブルクリックしてコンフィグレータを
起動し , REALOS/FR の初期設定を行います。
● システム定義タブ
ここではシステムが扱うハンドラの登録数を定義しますが , これら登録数は必ず下記
固定値を設定します。
表 20.6-1 システム定義タブの設定
アイテム
設定値
備考
1
周期起動ハンドラ数 (C)
D’32
周期起動ハンドラ数が 32 個未満でも必ず "32" を設定
2
アラームハンドラ数 (L)
D’0
未対応なので必ず "0" を設定
3
例外ハンドラエントリ名 (E)
空白
未対応なので空白
4
優先度数 (P)
D’32
タスク優先度が 32 未満でも必ず "32" を設定
5
インクルードファイルの設定
空白
空白のまま
● メモリ定義タブ
ここではシステムが扱うメモリの設定を行います。
表 20.6-2 メモリ定義タブの設定
アイテム
設定値
備考
1
システムスタックサイズ (S)
2
カーネルコードアドレス (C)
空白
SOFTUNE Workbench のリンカで設定するので空白
3
カーネルコードアドレス (D)
空白
SOFTUNE Workbench のリンカで設定するので空白
540
H’10000 必ず 64K バイトで設定
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
● システムコール定義タブ
ここでは使用するシステムコールの登録を行います。MB91302A-010 で使用可能な下
記システムコールを必ずすべて登録し , これら以外のシステムコールは絶対に登録し
ないでください。
表 20.6-3 システムコール定義タブの設定
1
アイテム
設定値
備考
登録システムコール (S)
sta_tsk
ext_tsk
chg_pri
tslp_tsk
wup_tsk
sig_sem
wai_sem
preq_sem
set_flg
clr_flg
wai_flg
pol_flg
snd_msg
rcv_msg
prcv_msg
ret_int
def_cyc
ret_tmr
これらシステムコールすべてを必ず登録
これら以外は絶対に登録しない
● タスク定義タブ
ここではユーザタスクの登録を行います。登録は ID 番号 1 から順番に行います。
実際のシステムのユーザタスクが 64 個未満の場合でも必ず 64 個のタスクを登録しま
す。このとき , 未使用のユーザタスクの起動優先度やスタック , 初期状態はそれぞれ ,
D’32 ( 優先度最低 ), H’60 ( 設定可能なスタック最小値 ), DORMANT ( 休止状態 ) で設定し ,
これらの空のユーザタスクが起動しないようにします。
表 20.6-4 タスク詳細定義ウィンドウの設定
アイテム
設定値
備考
1
名前
自由
自由に設定可
2
エントリ (T)
自由
ユーザタスク名を自由に設定可
C ソースコードで boo(){…} としたユーザタスクのエントリは
_boo
3
起動優先度 (P)
自由
未使用のユーザタスクは優先度 32 で登録
4
スタック (S)
自由
未使用のユーザタスクは H’60 で設定
5
初期状態 (A)
自由
未使用のユーザタスクは必ず DORMANT に設定
6
スタートコード (C)
自由
自由に設定可
7
ID 番号 (I)
8
拡張情報 (O)
9
タイムアウト (M)
D’1 ∼ 64 1 から順に 64 まで必ず設定
自由
自由に設定可
使用する " 使用する " に設定
541
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
未使用ユーザタスクは , C ソースコードで中身のない空のコードを必ず作成し , システ
ムで使用する他のユーザタスクと共にコンパイルします。
void boo(void){}
リスト 2 未使用タスクの空の C ソースコード
今回の開発例では , ユーザタスクが以下を想定しています。
§タスク数
50 個
§スタックサイズ
0x1000/ タスク当り
§初期状態
タスク ID1 ∼ 40 ⇒ READY
タスク ID41 ∼ 50⇒ DORMANT
§起動優先度
タスク ID1 ∼ 30 ⇒ 1
タスク ID31 ∼ 50 ⇒ 2
したがって , 今回の開発例でのコンフィグレータのタスク定義タブでの設定は次のよ
うになります。
タスク ID1 ∼ 30
スタック (S)
⇒ H’1000
初期状態 (P)
⇒ READY
起動優先度 (A) ⇒ D’1
タスク ID31 ∼ 40
スタック (S)
⇒ H’1000
初期状態 (P)
⇒ READY
起動優先度 (A) ⇒ D’2
タスク ID41 ∼ 50
スタック (S)
⇒ H’1000
初期状態 (P)
⇒ DORMANT
起動優先度 (A) ⇒ D’2
タスク ID51 ∼ 64
スタック (S)
⇒ H’60 ( 最少スタック量 )
初期状態 (P)
⇒ DORMANT ( 休止状態 ) 空タスクを定義
起動優先度 (A) ⇒ D’32 ( 最低優先度 )
● セマフォ定義タブ
ここではシステムで使用するセマフォの登録を行います。登録は ID 番号 1 から順番に
32 まで必ず行います。
実際のシステムで使用するセマフォが 32 個未満の場合でも必ず 32 個登録します。
表 20.6-5 セマフォ定義タブの設定
アイテム
542
設定値
備考
1
名前 (E)
自由
自由に設定可
2
初期カウント (C)
自由
自由に設定可
3
カウント最大値 (M)
自由
自由に設定可
4
ID 番号 (D)
5
拡張情報 (O)
D’1 ∼ 32
自由
D’1 から順に D’32 まで必ず設定
自由に設定可
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
今回の開発例では , セマフォに関して以下を想定しています。
§セマフォ数
20 個
§セマフォカウント
セマフォ ID1 ∼ 10
⇒最大値 15/ 初期値 0
セマフォ ID11 ∼ 20
⇒最大値 20/ 初期値 0
したがって , 今回の開発例でのコンフィグレータのセマフォ定義タブでの設定は次の
ようになります。
セマフォ ID1 ∼ 10
セマフォ ID11 ∼ 20
セマフォ ID21 ∼ 32
初期カウント (C)
⇒ D’0
カウント最大値 (M)
⇒ D’15
初期カウント (C)
⇒ D’0
カウント最大値 (M)
⇒ D’20
初期カウント (C)
⇒ D’0 空セマフォを定義
カウント最大値 (M)
⇒ D’8
● イベントフラグ定義タブ
ここではシステムで使用するイベントフラグの登録を行います。登録は ID 番号 1 から
順番に 32 まで必ず行います。
実際のシステムで使用するイベントフラグが 32 個未満の場合でも必ず 32 個登録しま
す。
表 20.6-6 イベントフラグ定義タブの設定
アイテム
設定値
備考
1
名前 (E)
自由
自由に設定可
2
初期パターン (P)
自由
自由に設定可
3
ID 番号 (D)
4
拡張情報 (O)
D’1 ∼ 32
自由
D’1 から順に D’32 まで必ず設定
自由に設定可
今回の開発例では , イベントフラグに関して以下を想定しています。
§フラグ数
32 個
§初期パターン
フラグ ID1 ∼ 16
⇒ 0x0000
フラグ ID17 ∼ 32
⇒ 0xFFFF
今回の開発例でのコンフィグレータのイベントフラグ定義タブは次のようになりま
す。
フラグ ID1 ∼ 16
初期パターン (P)
⇒ H’0000
フラグ ID17 ∼ 32
初期パターン (P)
⇒ H’FFFF
543
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
● メールボックス定義タブ
ここではシステムで使用するメールボックスの登録を行います。登録は ID 番号 1 から
順番に 32 まで必ず行います。
実際のシステムで使用するメールボックスが 32 個未満の場合でも必ず 32 個登録しま
す。
表 20.6-7 メールボックス定義タブの設定
アイテム
1
名前 (E)
2
ID 番号 (D)
3
拡張情報 (O)
設定値
自由
D’1 ∼ 32
自由
備考
自由に設定可
D’1 から順に D’32 まで必ず設定
自由に設定可
● 可変長メモリプール定義タブと固定長メモリプール定義タブ
MB91302A-010 の内部 ROM に搭載されている REALOS/FR は , これら可変長メモリ
プールや固定長メモリプールには未対応ですので , これらの定義タブでは空白のまま
何も設定しません。
● ベクタ定義タブ
ここでは , 割込みハンドラの登録を行います。システムクロックを内蔵リロードタイマ
0 ∼ 2 のどれかを使用して生成する場合には , 割込み番号 D’24 ∼ 26 のいずれかにリ
ロードタイマの割込みハンドラを登録します。また , D’1 ではモードベクタを登録しま
すが , MB91302A-010 ではターゲットのハードウェア仕様に合わせて , モードベクタ値
が 0x06000000 (MB91302A-010 内部 ROM 有効で外部 ROM 領域 32 ビットモード ), ま
たは 0x05000000 (MB91302A-010 内部 ROM 有効で外部 ROM 領域 16 ビットモード ), ま
たは 0x04000000 (MB91302A-010 内部 ROM 有効で外部 ROM 領域 8 ビットモード ) の
いずれかの値になります。モードベクタの詳細については , MB91302A-010 のハード
ウェアマニュアルを参照ください。
表 20.6-8 ベクタ定義タブの設定
番号 (M)
544
エントリ (E)
備考
D’0
_system_entry
左記リセットベクタ名固定
D’1
0x06000000 または
0x05000000 または
0x04000000
モードベクタはターゲットのハードウェア仕様に
合わせて左記の 3 つの内のどれかを登録
D’2 ∼ 23
自由
自由に設定可
D’24 ∼ 26
タイマハンドラ名
システムクロックをリロードタイマ 0 ∼ 2 のどれ
かを使用して生成する場合には , 使用するリロー
ドタイマに対応する割込み番号 D’24 ∼ 26 にタイ
マハンドラを登録する
D’27∼255
自由
自由に設定可
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
今回のプログラム例では, リロードタイマ1を使用してシステムクロックを生成してい
て , そのタイマハンドラ名が _timer なので , D’25 ( リロードタイマ 1 の割込み番号 ) に
_timer を設定します。
また , CS0 が x16 ビットの ROM でハードウェアが構成されているので , モードベクタ
は 0x05000000になります。したがって , D’1 ( モードベクタ )はH’0500000を設定します。
● デバッグ設定タブ
MB91302A-010 に固有の設定はありません。( デフォルト設定 )
<注意事項>
デバッグ設定タブがデフォルト設定の場合, REALOSアナライザのログ機能に制限が発生
し ま す。詳 細 に つ い て は , 「FR-V/FR/F2MC フ ァ ミ リ µITRON 仕 様 準 拠 SOFTUNE
REALOS アナライザマニュアル」を参照してください。
545
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
● コンフィグレータ設定のまとめ
表 20.6-9 に , コンフィグレータの各定義タブで固定値を設定する項目をまとめます。
表 20.6-9 コンフィグレータ固定値設定まとめ
項目
詳細項目
周期起動ハンドラ数
システム定義
アラームハンドラ数
例外ハンドラエントリ名
優先度数
インクルードファイルの設定
システムスタックサイズ
メモリ定義
セマフォ定義
イベントフラグ
メールボックス定義
登録数
登録数 64 固定 ( 空タスク含 )
名前
エントリ
起動優先度
スタック
初期状態
スタートコード
ID 番号
自由に設定可
自由に設定可
自由に設定可
自由に設定可
自由に設定可
自由に設定可
1 ∼ 64 まで必ず設定
拡張情報
タイムアウト
共有スタック
登録数
自由に設定可
タイムアウトあり固定
自由に設定可
登録数 32 固定 ( 空セマフォ含 )
名前
初期カウント
カウント最大値
ID 番号
自由に設定可
自由に設定可
自由に設定可
D’1 ∼ D’32 まで必ず設定
拡張情報
登録数
自由に設定可
登録数 32 固定 ( 空イベントフラグ含 )
名前
初期パターン
ID 番号
自由に設定可
自由に設定可
D’1 ∼ D’32 まで必ず設定
拡張情報
登録数
自由に設定可
登録数 32 固定 ( 空メールボックス含 )
名前
ID 番号
自由に設定可
D’1 ∼ D’32 まで必ず設定
拡張情報
自由に設定可
未対応
未対応
_system_entry 固定
リセットベクタ名
デバッグ設定
546
空白のまま
64K バイト固定
空白のまま
空白のまま
表 20.6-3 参照
可変長メモリプール
固定長メモリプール
ベクタ定義
空白のまま
D’32 固定
カーネルコードアドレス
カーネルデータアドレス
システムコール定義
タスク定義
固定設定値
登録数 32 固定
D’0
番号
D’1 ∼ D’255 まで設定可
エントリ
自由に設定可
デフォルト設定固定
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ プログラムの配置
プログラムの配置について説明します。
● セクション
REALOS/FR を含めて最低限 , 次のセクションがデフォルトで存在します。
表 20.6-10 セクション
セクション名
サイズ ( バイト )
内容
配置先頭アドレス
メモリ
DATA
−
C ソースコードのデータ
配置自由
RAM
INIT
−
C ソースコードの初期値データ 配置自由
RAM
oscode
0xFE4
リアルタイム OS
0x000FF000 固定
内部 ROM
sstack
0x10000
システムスタック
0x10000000 固定
RAM
knldata1
0x1A68
リアルタイム OS のデータ
0x10010000 固定
RAM
knldata2
0x60
アイドルタスクのスタック
0x10011F00 固定
RAM
DBGDAT2
0x4
デバッグ関連
0x10011FB0 固定
RAM
mplmem
0x0
メモリプール関連
0x10011FD0 固定
RAM
mplctl
0x0
メモリプール関連
0x10011FE0 固定
RAM
mpfmem
0x0
メモリプール関連
0x10011FF0 固定
RAM
R_stk001 ∼ 040
−
ユーザスタック
配置自由
RAM
inidata
0xDCC
リアルタイム OS 初期値データ
0x400FE000 固定
ROM
startcode
0x544
スタートアップ
0x400FF400 固定
ROM
CODE
−
C ソースコード
配置自由
ROM
@ INIT
−
C ソースコードの初期値データ 配置自由
ROM
CONST
−
C ソースコードの初期値データ 配置自由
ROM
uinitcode *
−
_csinit _init _rtinit _sysdwn
配置自由
ROM
R_eit
0x400
割込みベクタ
0x400FFC00 固定
ROM
*: セクション名 uinitcode は _csinit _init _rtinit _sysdwn のセクション名
これらは .section 擬似命令で自由に命名可
● リンカ配置オプション
下記は , 「■ プログラム例」のリンカオプションとアドレスマップです。リンカのオ
プションの詳細については , SOFTUNE Workbench のマニュアルを参照ください。
50 個のユーザタスクのスタック ( 個々に 0x1000 バイト ) を R_stk0001 ∼ R_stk0032 に
配置し , 14 個の空タスクには個々に 0x60 バイトのユーザスタックを R_stk0033 ∼
R_stk0040 に割り当てます。
なお , この例では [email protected]+CONST のサイズが 0x40000000 から 0x400FDFFF に格
納できるものと仮定しています。
547
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
図 20.6-1 リンカオプションとアドレスマップ
リンカの配置オプション
アドレス アドレスマップ
0
-sc oscode=0x000FF000
-sc sstack=0x10000000
-sc knldata1=0x10010000
FF000
MB91302A-010
内部 4KB ROM
10000000
外部 RAM
40000000
外部 ROM
-sc knldata2=0x10011F00
-sc DBGDAT2=0x10011FB0
-sc mplmem=0x10011FD0
-sc mplctl=0x10011FE0
-sc mpfmem=0x10011FF0
-sc R_stk0001+R_stk0002+,,,+R_stk0032=0x10012000
-sc R_stk0033+R_stk0034+,,,+R_stk0040=0x10044000
-sc DATA+INIT+STACK=10044540
-sc [email protected]+CONST+uinitcode=0x40000000
-sc inidata=0x400FE000
-sc startcode=0x400FF400
-sc R_eit=0x400FFC00
400FFC00 割込みベクタ 1KB
FFFFFFFF
548
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
20.7
モード端子 , モードベクタ , リセットベクタ
MB91302A-010 のモード端子 , モードベクタ , リセットベクタについて説明します。
これらについては , 「3.11.3 リセットシーケンス」および「3.14 動作モード」も併
せて参照ください。
■ モード端子
MB91302A-010 は , リセットによる初期化後にアドレス 0x000FFFF8H からマイコンの
動作モードを決定するモードベクタと , アドレス 0x000FFFFCH からリセットベクタ
( スタートアップルーチンの先頭アドレス ) を取り込みます。
しかし , アドレス 0x000FFFF8H や 0x000FFFFCH は REALOS/FR が搭載されている内部
ROM のアドレスなので , リセットによる解除後に取り込むモードベクタやリセットベ
クタはマイコン外部の ROM から取り込みます。したがって , MB91302A-010 のモード
端子は外部ベクタフェッチモードに設定します。
表 20.7-1 モード端子の設定例
モード端子
MD2-0
設定値
"LLH" 固定 ( 外ベクタフェッチモード )
■ モードベクタ
MB91302A-010 は , リセット解除後にアドレス 0x400FFFF8H からマイコンの動作モー
ドを決定するモードベクタを取り込みます ( 実際に MB91302A-010 が外部に出力する
アドレスは 0x000FFFF8H)。
MB91302A-010 では REALOS/FR が搭載されている内部 ROM を有効にするので , 内
ROM 外バスモードに設定します ( 内 ROM 外バスの場合のモードデータ 0B000001xxH)。
また , リセット解除後に取り込むモードベクタには内 ROM 外バスモードの他に外部
CS0 領域のビット幅を設定するビットがあります。この CS0 領域のビット幅設定につ
いては , ターゲットボードに搭載されている ROM のビット幅に合わせて設定します。
なお , モードベクタの設定は , REALOS/FR のコンフィグレータのベクタ定義タブ ( ハ
ンドラ番号 D’1) で設定します。
表 20.7-2 モードベクタ設定値
CS0 の ROM のビット幅
設定値 (hex)
ベクタ定義タブの設定値
8 ビット
04
04000000H
16 ビット
05
05000000H
32 ビット
06
06000000H
549
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ リセットベクタ
MB91302A-010 は , リセット解除後にアドレス 0x000FFFFCH からリセットベクタを取
り込みます。
リセットベクタは , SOFTUNE Workbench のリンカによって自動的にコードに埋め込ま
れます。
■ モードデータとリセットベクタの配置アドレス
MB91302A-010 の割込みベクタのサイズは 1K バイトで , R_eit セクションに配置されま
す。
R_eit セ ク シ ョ ン は , SOFTUNE Workbench の リ ン カ で ア ド レ ス 0x400FFC00H ∼
0x400FFFFFH に必ず配置します。このとき , リンカによってモードベクタもリセット
ベクタも R_eit 内に配置されます。
表 20.7-3 モードベクタとリセットベクタのアクセスアドレス
ベクタ名
配置アドレス (hex)
モードベクタ
0x400FFFF8H
リセットベクタ
0x400FFFFCH
備考 R_eit
0x400FFC00H ∼ 0x400FFFFFH
■ モードデータとリセットベクタのアクセスアドレス
MB91302A-010 では 32 ビットアドレス空間をリニアにアクセスすることが可能ですが ,
実際にはアドレス信号は A23-A00 までしかなく , A31-A24 の代わりに CS 信号がこれ
らアドレスをデコードしています。また , リセットによる初期化後からスタートアップ
ルーチンで各 CS の領域を設定するまでは全アドレス空間が CS0 となります。
したがって, アドレス0x400FFFF8Hや0x400FFFFCHをCS0とすれば, アドレス0x400FFFF8H
や 0x400FFFFCH に配置されているモードデータやリセットベクタでも , リセットによる
初期化後にアドレス 0x000FFFF8H と 0x000FFFFCH のデータとして MB91302A-010 が取
り込むことが可能です。
表 20.7-4 モードデータとリセットベクタのアクセスアドレス
550
リセット解除後
レジスタによる
CS 領域設定完了後
モードベクタ
0x000FFFF8H
0x400FFFF8H
リセットベクタ
0x000FFFFCH
0x400FFFFCH
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
■ リセット解除後のモードデータとリセットベクタの取込み
MB91302A-010 は , リセット解除後にアドレス 0x000FFFF8H や 0x000FFFFCH からモー
ドデータやリセットベクタを取り込みますが , MB91302A-010 の次の動作によって
R_eit セクション内のアドレス 0x400FFFF8H や 0x400FFFFCH に配置されているこれら
のデータがリセット解除時に取り込まれます。
表 20.7-5 リセット解除後のシーケンス
動作
備考
リセット解除
すべての外部へのアクセスで信号 CS0 が
① リセットによる初期化で 32 ビットアドレス空間すべ
アサートされます。
てが CS0 になる。
MB91302A-010 では ,
リセット解除後は , モード端子 MD2-0 が "LLH" に
モード端子 MD2 -0="LLH" に設定します。
ターゲットボードで固定されている場合 , ①のタイミ ( 外部ベクタモード )
②
ングで外部の 0x000FFFF8H からモードベクタを取り モードベクタは CS0 のバス幅によって ,
0x04H, 0x05H, 0x06H のどれかを設定しま
込む。このとき CS0 はアサートされる。
す。
モードベクタの下位 2 ビットは外部 CS0 領域 ROM の
ビット幅を設定するが , これに従って外部の
③
0x000FFFFCH からリセットベクタを取り込む。このと R_eit の領域 ( アドレス 0x400FFC00H ∼
0x400FFFFFH) を格納する外部 ROM は
き CS0 はアサートされる。
CS0 に設定します。
③で取り込んだリセットベクタを内部 PC にロードす
④
る。
⑤
④が完了したのち , ②で取り込んだモードベクタに
従って内部 4K バイト ROM が有効になる。
_csinit によるバス設定前は全アドレス領域
プログラムが実行開始される。
が CS0 としてアクセスされます。
⑥ 各 CS 領域は , スタートアップルーチンからコールさ
したがってスタートアップルーチンは必ず
れる _csinit で設定するバス幅 / 領域に設定される。
CS0 に配置します。
■ 外部メモリ接続例
MB91302A-010 と外部メモリの接続例を説明します。ターゲット上の外部メモリには
コードを格納する ROM ( アドレス 0x400FE000H ∼ 0x400FFFFFH はリアルタイム OS が
参照する領域なので必ず必要です ) とワークデータを格納する RAM ( アドレス
0x10000000H ∼ ) が必要です。なお , ROM は必ず CS0 にします。
MB91302A-010 は ,「リセットによる初期化後に全アドレスへのアクセスに対して CS0
信号を出力する」, 「アドレス上位ビット (A31-A24) は CS 信号によりデコードされて
いる」により , リセット解除後にモードベクタ ( アドレス 0x000FFFF8H) とリセットベ
クタ ( アドレス 0x000FFFFCH) を実際の外部 ROM のアドレス 0x400FFFF8H と
0x400FFFFCH から取り込むことが可能となります。
551
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
図 20.7-1 外部メモリ接続例
リセットによる初期化後は, すべてのアドレス
に対するアクセスでCS0信号が出力。
スタートアップルーチンでコールされる_csinit
のCS初期化設定後から各CS信号が出力。
CS0はROMに接続
302A
ROM
CS0
配置アドレス
0x40000000H~
CS
CSn
A23~ A0
D31~ D0
RD
A
モードベクタ
D
アドレス0x400FFFF8H
RD
リセットベクタ
WR
アドレスA31~A24はCSで
デコードされている。アド
レスA31~A24のデコードは
スタートアップルーチンで
コールされる_csinitで設定。
アドレス0x400FFFFCH
RAM
CS
A
D
RD
WR
552
配置アドレス
0x10000000H~
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
評価系
20.8
チップの評価系の構成例について説明します。
■ 構成例 ターゲットボード+評価チップ+ ICE
ターゲットボード
DSUケーブル
ICE
PC
USB または LAN
評価チップ゚+ アダプタボード+ ヘッダボード+(RAMボード)
名称
型格
備考
ICE
MB2198-01
PC とは USB または LAN で接続
DSU ケーブル
MB2198-10
ICE とアダプタボードを接続するケーブル
評価チップ
MB91V301A
開発キット MB91V301A-RDK01 にバンドル
アダプタボード
MB2198-100
MB2198-101 と併用
ヘッダボード
MB2198-101
MB2198-100 と併用
NQPACK144SE と HQPACK144SE が付属
RAM ボード
MB2198-90
ターゲットボードにエミュレーションメモリがあれば不用
そのほか , 開発には次の開発ツール ( ソフト , 開発キット ) が必要です。
・FR ファミリ SOFTUNE プロフェッショナルパック (V6 対応 ) ⇒統合開発環境 ( ワークベンチ , コ
ンパイラ , …)
・MB91V301A-RDK01 ⇒開発ソフトと評価チップのバンドル製品
553
第 20 章 リアルタイム OS 内蔵 MB91302A-010 使用手引き
554
付録
付録として , 使用上の注意 , I/O マップ , 割込みベ
クタ , CPU ステートでの端子状態 , リトルエン
ディアン領域を利用するときの注意事項および命
令一覧について , 本文に記載できなかった細かいと
ころや , プログラミングするときに参照することが
らを記載しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D リトルエンディアン領域を利用する際の注意事項
付録 E 命令一覧
555
付録
付録 A
I/O マップ
付表 A-1 にメモリ空間領域と周辺リソースの各レジスタの対応を示します。
■ I/O マップ
[ 表の見方 ]
アドレス
000000 H
レジスタ
+0
+1
+2
PDR0 [R/W] PDR1 [R/W] PDR2 [R/W]
XXXXXXXX
XXXXXXXX XXXXXXXX
ブロック
+3
PDR3 [R/W]
T-unit
XXXXXXXX ポートデータレジスタ
読出し/書込み属性
リセット後のレジスタ初期値
レジスタ名(1カラムのレジスタが4n番地,2カラムが4n+2番地…)
最左のレジスタ番地(ワードでアクセスした際は,1カラム目の
レジスタがデータのMSB側となる。)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
"1": 初期値 "1"
"0": 初期値 "0"
"X": 初期値 "X"
"-": その位置に物理的にレジスタがない
556
付録 A I/O マップ
付表 A-1 I/O マップ (1 / 9)
アドレス
レジスタ
+0
+1
+2
000000H
PDR0 [R/W] B
XXXXXXXX
PDR1 [R/W] B
XXXXXXXX
000004H
―
―
000008H
PDR8 [R/W] B
XXXXXXXX
PDR9 [R/W] B
-XXXXXXX
PDR2 [R/W] B
XXXXXXXX
PDR6 [R/W] B
XXXXXXXX
PDRA [R/W] B
XXXXXXXX
00000CH
000010H
000014H
|
00003CH
00004CH
000050H
000054H
000058H
00005CH
000060H
000064H
000068H
00006CH
000070H
000074H
ブロック
―
―
PDRB [R/W] B
XXXXXXXX
T-unit
ポートデータ
レジスタ
―――
PDRG [R/W] B
XXXXXXXX
PDRH [R/W] B
-----XXX
―
PDRJ [R/W] B
XXXXXXXX
――――
EIRR [R/W] B,H,W ENIR [R/W] B,H,W
00000000
00000000
HRCL [R, R/W]
DICR [R/W] B,H,W
000044H
B,H,W
-------0
0--11111
TMRLR0 [W] H,W
000048H
XXXXXXXX XXXXXXXX
000040H
+3
R-bus
ポートデータ
レジスタ
未使用
ELVR [R/W] B,H,W
00000000 00000000
Ext int
――――
DLYI/I-unit
TMR0 [R] H,W
XXXXXXXX XXXXXXXX
リロードタイマ 0
TMCSR0 [R, R/W] B,H,W
――――
--XX0000 00000000
TMRLR1 [W] H,W
TMR1 [R] H,W
XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX
リロードタイマ 1
TMCSR1 [R, R/W] B,H,W
――――
--XX0000 00000000
TMRLR2 [W] H,W
TMR2 [R] H,W
XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX
リロードタイマ 2
TMCSR2 [R, R/W] B,H,W
――――
--XX0000 00000000
SSR0 [R, R/W]
SIDR0[R]
SCR0 [W,R/W] SMR0 [W, R/W]
B,H,W
SODR0[W] B,H,W
B,H,W
B,H,W
UART0
00001000
XXXXXXXX
00000100
00--0-0UTIM0 [R] H,W (UTIMR0 [W] H,W)
UTIMC0 [R/W] B
DRCL0 *4
U-TIMER 0
00000000 00000000
0--00001
-------SSR1 [R, R/W]
SIDR1[R]
SCR1 [W,R/W]
SMR1 [W,R/W]
B,H,W
SODR1[W] B,H,W
B,H,W
B,H,W
UART1
00001000
XXXXXXXX
00000100
00--0-0UTIM1 [R] H,W (UTIMR1 [W] H,W)
UTIMC1 [R/W] B
DRCL1 *4
U-TIMER 1
00000000 00000000
0--00001
-------SSR2 [R, R/W]
SIDR2[R]
SCR2 [W,R/W] SMR2 [W, R/W]
B,H,W
SODR2[W] B,H,W
B,H,W
B,H,W
UART2
00001000
XXXXXXXX
00000100
00--0-0UTIM2 [R] H,W (UTIMR2 [W] H,W)
UTIMC2 [R/W] B
DRCL2 *4
U-TIMER 2
00000000 00000000
0--00001
--------
557
付録
付表 A-1 I/O マップ (2 / 9)
アドレス
000078H
00007CH
レジスタ
+0
+1
ADCR [R] B,H,W
000000XX XXXXXXXX
ADCR0 [R]
ADCR1 [R]
B,H,W
B,H,W
XXXXXXXX
XXXXXXXX
000080H
|
000090H
000094H
000098H
00009CH
0000A0H
0000A4H
0000A8H
|
0000B0H
0000B4H
+2
+3
ADCS [R, R/W] B,H,W
00000000 00000000
ADCR2 [R]
ADCR3 [R]
B,H,W
B,H,W
XXXXXXXX
XXXXXXXX
――――
IBCR0[W, R/W]
B,H,W
00000000
IBSR0 [R] B,H,W
00000000
ITBA0 [R, R/W] B,H,W
00000000 00000000
−
IDAR0[R/W] B,H,W
00000000
ICCR0[R, W, R/W]
B,H,W
00011111
−
−
−
−
−
−
−
−
ISMK0[R/W] B,H,W
01111111
________
IBCR1[W, R/W]
B,H,W
00000000
IBSR1 [R] B,H,W
00000000
−
IDAR1[R/W] B,H,W
00000000
ICCR1[R, W, R/W]
B,H,W
00011111
0000C0H
0000C4H
0000C8H
|
0000D0H
−
−
−
−
−
−
−
−
0000D4H
0000D8H
0000DCH
0000E0H
558
ISMK1[R/W] B,H,W
01111111
I2C インタ
フェース 1
Reserved
−
−
−
TCDT [R/W] H,W
00000000 00000000
IPCP1 [R] H,W
XXXXXXXX XXXXXXXX
IPCP3 [R] H,W
XXXXXXXX XXXXXXXX
ICS23[R/W] B,H,W
−
00000000
0000E4H
|
000114H
000118H
Reserved
ITBA1 [R, R/W] B,H,W
00000000 00000000
0000BCH
ITMK1 [R, R/W] B,H,W
00111111 11111111
I2C インタ
フェース 0
未使用
ISBA1[R, R/W]
B,H,W
00000000
IDBL1[R, R/W]
B,H,W
00000000
0000B8H
A/D コンバータ
逐次比較
未使用
ISBA0[R, R/W]
B,H,W
00000000
IDBL0[R, R/W]
B,H,W
00000000
ITMK0 [R, R/W] B,H,W
00111111 11111111
ブロック
−
TCCS[R/W] B,H,W
16 ビット
00000000
フリーランタイマ
IPCP0 [R] H,W
XXXXXXXX XXXXXXXX
IPCP2 [R] H,W
16 ビット ICU
XXXXXXXX XXXXXXXX
ICS01[R/W] B,H,W
−
00000000
−
________
GCN10[R/W] H
00110010 00010000
未使用
―
GCN20[R/W] B
00000000
PPG タイマ
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 9)
アドレス
レジスタ
+0
+1
00011CH
000120H
000124H
000128H
00012CH
000130H
000134H
000138H
00013CH
000140H
|
0001FCH
000200H
000204H
000208H
00020CH
000210H
000214H
000218H
00021CH
000220H
000224H
+2
+3
――――
PTMR0[R] H
11111111 11111111
PDUT0[W] H,W
XXXXXXXX XXXXXXXX
PTMR1[R] H
11111111 11111111
PDUT1[W] H,W
XXXXXXXX XXXXXXXX
PTMR2[R] H
11111111 11111111
PDUT2[W] H,W
XXXXXXXX XXXXXXXX
PTMR3[R] H
11111111 11111111
PDUT3[W] H,W
XXXXXXXX XXXXXXXX
PCSR0[W] H,W
XXXXXXXX XXXXXXXX
PCNH0[R/W] B PCNL0[R/W] B
00000000
000000X0
PCSR1[W] H,W
XXXXXXXX XXXXXXXX
PCNH1[R/W] B PCNL1[R/W] B
00000000
000000X0
PCSR2[W] H,W
XXXXXXXX XXXXXXXX
PCNH2[R/W] B PCNL2[R/W] B
00000000
000000X0
PCSR3[W] H,W
XXXXXXXX XXXXXXXX
PCNH3[R/W] B PCNL3[R/W] B
00000000
000000X0
――――
ブロック
未使用
PPG0
PPG1
PPG2
PPG3
未使用
DMACA0 [R/W] B,H,W *1
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB0 [R/W] B,H,W
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA1 [R/W] B,H,W *1
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB1 [R/W] B,H,W
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA2 [R/W] B,H,W *1
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB2 [R/W] B,H,W
00000000 00000000 XXXXXXXX XXXXXXXX
DMAC
DMACA3 [R/W] B,H,W *1
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB3 [R/W] B,H,W
00000000 00000000 XXXXXXXX XXXXXXXX
DMACA4 [R/W] B,H,W *1
00000000 0000XXXX XXXXXXXX XXXXXXXX
DMACB4 [R/W] B,H,W
00000000 00000000 XXXXXXXX XXXXXXXX
000228H
|
00023CH
――――
未使用
000240H
DMACR [R/W] B
0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX
DMAC
000244H
|
000300H
――――
未使用
559
付録
付表 A-1 I/O マップ (4 / 9)
アドレス
レジスタ
+0
000304H
+1
――――
0003E4H
0003F8H
0003FCH
000400H
I- キャッシュ
未使用
R-bus
データ方向レジスタ
――――
未使用
PFRG [R/W] B
00------
*2
000420H PCRG [R/W] B
00000000
560
I- キャッシュ
BSD0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSD1 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSDC [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
BSRR [R] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DDRG [R/W] B
DDRH [R/W] B
DDRJ [R/W] B
―
00000000
-----000
00000000
000414H
|
00041CH
000424H
|
00043CH
ICHCR[R/W] B,H,W
0-000000
――――
000404H
|
00040CH
000410H
ブロック
未使用
――――
0003E8H
|
0003EFH
0003F4H
+3
ISIZE[R/W] B,H,W
------10
――――
000308H
|
0003E0H
0003F0H
+2
PFRH [R/W] B
------0-
―
PFRJ [R/W] B
-000-00-
――――
PCRH [R/W] B
-----000
――――
ビットサーチ
モジュール
R-bus
ポート機能レジスタ
未使用
―
PCRJ [R/W] B *2
00000000
R-bus
プルアップ抵抗
制御レジスタ
未使用
付録 A I/O マップ
付表 A-1 I/O マップ (5 / 9)
アドレス
000440H
000444H
000448H
00044CH
000450H
000454H
000458H
00045CH
000460H
000464H
000468H
00046CH
000470H
|
00047CH
レジスタ
+0
+1
+2
+3
ICR00[R,R/W]
B,H,W
---11111
ICR04[R,R/W]
B,H,W
---11111
ICR08[R,R/W]
B,H,W
---11111
ICR12[R,R/W]
B,H,W
---11111
ICR16[R,R/W]
B,H,W
---11111
ICR20[R,R/W]
B,H,W
---11111
ICR24[R,R/W]
B,H,W
---11111
ICR28[R,R/W]
B,H,W
---11111
ICR32[R,R/W]
B,H,W
---11111
ICR36[R,R/W]
B,H,W
---11111
ICR40[R,R/W]
B,H,W
---11111
ICR44[R,R/W]
B,H,W
---11111
ICR01[R,R/W]
B,H,W
---11111
ICR05[R,R/W]
B,H,W
---11111
ICR09[R,R/W]
B,H,W
---11111
ICR13[R,R/W]
B,H,W
---11111
ICR17[R,R/W]
B,H,W
---11111
ICR21[R,R/W]
B,H,W
---11111
ICR25[R,R/W]
B,H,W
---11111
ICR29[R,R/W]
B,H,W
---11111
ICR33[R,R/W]
B,H,W
---11111
ICR37[R,R/W]
B,H,W
---11111
ICR41[R,R/W]
B,H,W
---11111
ICR45[R,R/W]
B,H,W
---11111
ICR02[R,R/W]
B,H,W
---11111
ICR06[R,R/W]
B,H,W
---11111
ICR10[R,R/W]
B,H,W
---11111
ICR14[R,R/W]
B,H,W
---11111
ICR18[R,R/W]
B,H,W
---11111
ICR22[R,R/W]
B,H,W
---11111
ICR26[R,R/W]
B,H,W
---11111
ICR30[R,R/W]
B,H,W
---11111
ICR34[R,R/W]
B,H,W
---11111
ICR38[R,R/W]
B,H,W
---11111
ICR42[R,R/W]
B,H,W
---11111
ICR46[R,R/W]
B,H,W
---11111
ICR03[R,R/W]
B,H,W
---11111
ICR07[R,R/W]
B,H,W
---11111
ICR11[R,R/W]
B,H,W
---11111
ICR15[R,R/W]
B,H,W
---11111
ICR19[R,R/W]
B,H,W
---11111
ICR23[R,R/W]
B,H,W
---11111
ICR27[R,R/W]
B,H,W
---11111
ICR31[R,R/W]
B,H,W
---11111
ICR35[R,R/W]
B,H,W
---11111
ICR39[R,R/W]
B,H,W
---11111
ICR43[R,R/W]
B,H,W
---11111
ICR47[R,R/W]
B,H,W
---11111
ブロック
割込み
コントローラ
――――
RSRR [R,R/W]
STCR [R/W] B,H,W TBCR [R/W] B,H,W
B,H,W
00XXXX00(INIT)
00110011(INIT)
000480H 10000000(INIT)
0011XX11 (INIT) 00XXXXXX (RST)
-0-XX-00 (INIT)
00X1XXXX (RST)
XXX--X00 (RST)
CLKR [R/W] B,H,W
DIVR0[R/W] B,H,W
WPR
000484H 00000000(INIT)
00000011(INIT)
*4
-------XXXXXXXX (RST)
XXXXXXXX (RST)
000488H
|
――――
0005FCH
CTBR [W] B,H,W
XXXXXXXX(INIT)
XXXXXXXX (RST)
クロック制御
ユニット
DIVR1[R/W] B,H,W
00000000(INIT)
XXXXXXXX (RST)
未使用
561
付録
付表 A-1 I/O マップ (6 / 9)
アドレス
000600H
000604H
000608H
00060CH
000610H
000614H
000618H
00061CH
000620H
000624H
000628H
00062CH
000630H
|
00063CH
562
レジスタ
+0
+1
+2
DDR0 [R/W] B
00000000
DDR1 [R/W] B
00000000
DDR2 [R/W] B
00000000
DDR6 [R/W] B
00000000
DDRA [R/W] B
00000000
――
DDR8 [R/W] B
00000000
DDR9 [R/W] B
-0000000
――
――――
PFR6 [R/W] B
――
11111111
PFR8 [R/W] B
PFR9 [R/W] B
PFRA1 [R/W] B
111--0--0000111
11111111
PFRB2 [R/W] B
PFRA2 [R/W] B
―
000---00
--0----PCR0 [R/W] B
PCR1 [R/W] B
PCR2 [R/W] B
00000000
00000000
00000000
PCR6 [R/W] B
――
00000000
PCR8 [R/W] B
PCR9 [R/W] B
PCRA [R/W] B
00000000
-000--000000000
+3
ブロック
―
―
DDRB [R/W] B
00000000
PFR61 [R/W] B
----0000
PFRB1 [R/W] B
00000000
T-unit
データ方向
レジスタ
T-unit
ポート機能
レジスタ
―
―
―
PCRB [R/W] B
00000000
T-unit
プルアップ抵抗
制御レジスタ
――――
――――
未使用
付録 A I/O マップ
付表 A-1 I/O マップ (7 / 9)
アドレス
レジスタ
+0
+1
000640H
ASR0 [R/W] H,W
00000000 00000000
000644H
ASR1 [R/W] H,W
XXXXXXXX XXXXXXXX
000648H
ASR2 [R/W] H,W
XXXXXXXX XXXXXXXX
00064CH
ASR3 [R/W] H,W
XXXXXXXX XXXXXXXX
000650H
ASR4 [R/W] H,W
XXXXXXXX XXXXXXXX
000654H
ASR5 [R/W] H,W
XXXXXXXX XXXXXXXX
000658H
ASR6 [R/W] H,W
XXXXXXXX XXXXXXXX
00065CH
ASR7 [R/W] H,W
XXXXXXXX XXXXXXXX
000660H
000664H
000668H
00066CH
AWR0H [R/W]
B,H,W
011111111
AWR2H [R/W]
B,H,W
XXXXXXXX
AWR4H [R/W]
B,H,W
XXXXXXXX
AWR6H [R/W]
B,H,W
XXXXXXXX
AWR0L [R/W]
B,H,W
11111111(INIT)
11111011(RST)
AWR2L [R/W]
B,H,W
XXXXXXXX
AWR4L [R/W]
B,H,W
XXXXXXXX
AWR6L [R/W]
B,H,W
XXXXXXXX
+2
+3
ACR0H [R/W]
H,W
1111XX00
ACR1H [R/W]
B,H,W
XXXXXXXX
ACR2H [R/W]
B,H,W
XXXXXXXX
XXXXXXXX
ACR3H [R/W]
B,H,W
XXXXXXXX
ACR4H [R/W]
B,H,W
XXXXXXXX
ACR5H [R/W]
B,H,W
XXXXXXXX
ACR6H [R/W]
B,H,W
XXXXXXXX
ACR7H [R/W]
B,H,W
XXXXXXXX
ACR0L [R/W]
H,W
00000000
ACR1L [R/W]
B,H,W
XXXXXXXX
ACR2L [R/W]
B,H,W
XXXXXXXX
XXXXXXXX
ACR3L [R/W]
B,H,W
XXXXXXXX
ACR4L [R/W]
B,H,W
XXXXXXXX
ACR5L [R/W]
B,H,W
XXXXXXXX
ACR6L [R/W]
B,H,W
XXXXXXXX
ACR7L [R/W]
B,H,W
XXXXXXXX
AWR1H [R/W]
B,H,W
XXXXXXXX
AWR1L [R/W]
B,H,W
XXXXXXXX
AWR3H [R/W]
B,H,W
XXXXXXXX
AWR5H [R/W]
B,H,W
XXXXXXXX
AWR7H [R/W]
B,H,W
XXXXXXXX
AWR3L [R/W]
B,H,W
XXXXXXXX
AWR5L [R/W]
B,H,W
XXXXXXXX
AWR7L [R/W]
B,H,W
XXXXXXXX
000670H MCRA [R/W] B,H,W MCRB [R/W] B,H,W
XXXXXXXX
000674H
――――
00067CH
000684H
T-unit
――
XXXXXXXX
000678H IOWR0[R/W] B,H,W IOWR1[R/W] B,H,W
XXXXXXXX
XXXXXXXX
000680H
ブロック
CSER [R/W]
B,H,W
000000001
RCRH [R/W]
B,H,W
00XXXXXX
――――
CHER [R/W]
B,H,W
11111111
RCRL [R/W]
B,H,W
XXXX0XXX
―
―
―
TCR [R/W] B,H,W
00000000(INIT)
0000XXXX (RST)
――
T-unit
563
付録
付表 A-1 I/O マップ (8 / 9)
アドレス
レジスタ
+0
00068CH
|
0007F8H
0007FCH
000800H
|
000AFCH
000B00H
000B04H
000B08H
000B0CH
000B10H
000B14H
|
000B1CH
000B20H
000B24H
000B28H
000B2CH
000B30H
000B34H
000B38H
000B3CH
000B40H
000B44H
000B48H
000B4CH
000B50H
564
+1
+2
+3
――――
―
MODR [W] *3
XXXXXXXX
ブロック
未使用
――
――――
未使用
ESTS0 [R/W] B
ESTS1 [R/W] B
ESTS2 [R] B
―
X0000000
XXXXXXXX
1XXXXXXX
ECTL0 [R/W] B ECTL1 [R/W] B
ECTL2 [W] B
ECTL3 [R/W] B
0X000000
00000000
000X0000
00X00X11
ECNT0 [W] B
ECNT1 [W] B
EUSA [W] B
EDTC [W] B
XXXXXXXX
XXXXXXXX
XXX00000
0000XXXX
EWPT [R] H
ECTL4[R]([R/W]) B ECTL5[R]([R/W]) B
00000000 00000000
-0X00000
----000X
EDTR0 [W] H
EDTR1 [W] H
XXXXXXXX XXXXXXXX
XXXXXXXX XXXXXXXX
――――
EIA0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA1 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA2 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA3 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA4 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA5 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA6 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIA7 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTA [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDTM [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOA1 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EPCR [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
( エバチップのみ )
付録 A I/O マップ
付表 A-1 I/O マップ (9 / 9)
アドレス
000B54H
000B58H
000B5CH
000B60H
000B64H
000B68H
000B6CH
000B70H
|
000FFCH
001000H
001004H
001008H
00100CH
001010H
001014H
001018H
00101CH
001020H
001024H
001028H
|
001FFCH
レジスタ
+0
+1
+2
+3
ブロック
EPSR [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EIAM1 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM0/EODM0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOAM1/EODM1 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOD0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EOD1 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DSU
( エバチップのみ )
――――
未使用
DMASA0 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA0 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA1 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA1 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA2 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA2 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA3 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA3 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMASA4 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMADA4 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
DMAC
――――
未使用
*1: DMACA0 ∼ 4 の下位 16 ビット (DTC15 ∼ 0) は , バイトでのアクセスはできません。
*2: MB91302A, MB91V301A の 000420H 番地および 000423H 番地はレジスタが存在しません。
*3: このレジスタは , モードベクタフェッチにより設定されます。通常動作時にはアクセスできません。
*4: 予約レジスタです。アクセス禁止です。
565
付録
付録 B
割込みベクタ
付表 B-1 に割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91301 シリーズの割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記
載されています。
■ 割込みベクタ
付表 B-1 割込みベクタ (1 / 3)
割込み要因
10 進 16 進
割込み
レベル
オフセット
TBR デフォルト
のアドレス
RN
リセット
0
00
−
3FCH
000FFFFCH
−
モードベクタ
1
01
−
3F8H
000FFFF8H
−
−
3F4H
000FFFF4H
−
−
3F0H
000FFFF0H
−
−
3ECH
000FFFECH
−
−
3E8H
000FFFE8H
−
−
3E4H
000FFFE4H
−
−
3E0H
000FFFE0H
−
−
3DCH
000FFFDCH
−
−
3D8H
000FFFD8H
−
−
3D4H
000FFFD4H
−
−
3D0H
000FFFD0H
−
−
3CCH
000FFFCCH
−
−
3C8H
000FFFC8H
−
3C4H
000FFFC4H
−
システム予約
システム予約
システム予約
システム予約
システム予約
566
割込み番号
2
3
4
5
6
02
03
04
05
06
コプロセッサ不在トラップ
7
07
コプロセッサエラートラップ
8
08
INTE 命令
9
09
システム予約
10
0A
システム予約
11
0B
ステップトレーストラップ
12
0C
NMI 要求 (tool)
13
0D
未定義命令例外
14
0E
NMI 要求
15
0F
−
15(FH) 固定
3C0H
000FFFC0H
−
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
6
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
7
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
11
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
12
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
−
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
−
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
−
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
−
8
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
10
UART0 ( 受信完了 )
27
1B
ICR11
390H
000FFF90H
0
UART1 ( 受信完了 )
28
1C
ICR12
38CH
000FFF8CH
1
UART2 ( 受信完了 )
29
1D
ICR13
388H
000FFF88H
2
UART0 ( 送信完了 )
30
1E
ICR14
384H
000FFF84H
3
付録 B 割込みベクタ
付表 B-1 割込みベクタ (2 / 3)
割込み要因
割込み番号
10 進 16 進
割込み
レベル
オフセット
TBR デフォルト
のアドレス
RN
UART1 ( 送信完了 )
31
1F
ICR15
380H
000FFF80H
4
UART2 ( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
5
DMAC0 ( 終了 , エラー )
33
21
ICR17
378H
000FFF78H
−
DMAC1 ( 終了 , エラー )
34
22
ICR18
374H
000FFF74H
−
DMAC2 ( 終了 , エラー )
35
23
ICR19
370H
000FFF70H
DMAC3 ( 終了 , エラー )
36
24
ICR20
36CH
000FFF6CH
−
-
DMAC4 ( 終了 , エラー )
37
25
ICR21
368H
000FFF68H
-
A/D
38
26
ICR22
364H
000FFF64H
15
PPG0
39
27
ICR23
360H
000FFF60H
13
PPG1
40
28
ICR24
35CH
000FFF5CH
14
PPG2
41
29
ICR25
358H
000FFF58H
−
PPG3
42
2A
ICR26
354H
000FFF54H
−
システム予約
U-TIMER0
43
2B
ICR27
350H
000FFF50H
−
44
2C
ICR28
34CH
000FFF4CH
−
U-TIMER1
45
2D
ICR29
348H
000FFF48H
−
U-TIMER2
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
−
I2C
I/F 0
48
30
ICR32
33CH
000FFF3CH
−
2
I/F 1
49
31
ICR33
338H
000FFF38H
−
50
32
ICR34
334H
000FFF34H
−
ICR35
330H
000FFF30H
−
ICR36
32CH
000FFF2CH
−
ICR37
328H
000FFF28H
−
ICR38
324H
000FFF24H
−
000FFF20H
−
IC
システム予約
システム予約
16bit フリーランタイマ
ICU0 ( 取り込み )
ICU1 ( 取り込み )
51
52
53
54
33
34
35
36
ICU2 ( 取り込み )
55
37
ICR39
320H
ICU3 ( 取り込み )
56
38
ICR40
31CH
000FFF1CH
−
システム予約
57
39
ICR41
318H
000FFF18H
−
システム予約
58
3A
ICR42
314H
000FFF14H
−
システム予約
59
3B
ICR43
310H
000FFF10H
−
システム予約
60
3C
ICR44
30CH
000FFF0CH
−
システム予約
61
3D
ICR45
308H
000FFF08H
−
システム予約
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
−
567
付録
付表 B-1 割込みベクタ (3 / 3)
割込み番号
割込み要因
10 進 16 進
システム予約
71
47
システム予約
72
48
システム予約
73
49
システム予約
74
4A
システム予約
75
4B
システム予約
76
4C
システム予約
77
4D
システム予約
78
4E
システム予約
79
4F
INT 命令で使用
80
|
255
50
|
FF
割込み
レベル
オフセット
TBR デフォルト
のアドレス
RN
−
2E0H
000FFEE0H
−
−
2DCH
000FFEDCH
−
−
2D8H
000FFED8H
−
−
2D4H
000FFED4H
−
−
2D0H
000FFED0H
−
−
2CCH
000FFECCH
−
−
2C8H
000FFEC8H
−
−
2C4H
000FFEC4H
−
−
2C0H
000FFEC0H
−
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
−
( 注意事項 )
• ICR は , 割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対する割込みレ
ベルを設定します。ICR は , 割込み要求のそれぞれに対応して用意されています。
• TBR は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレスとな
ります。
<参考>
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよう
に表されます。
Vctadr = TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
568
: ベクタ番号
付録 C 各 CPU ステートにおける端子状態
付録 C
各 CPU ステートにおける端子状態
付表 C-1 ∼付表 C-4 に各 CPU ステートにおける端子状態を示します。
■ 端子状態一覧表の語句の意味
付表 C-1∼付表 C-4中の端子の状態として使用している語句は,以下の意味を持ちます。
• 入力可
入力機能が使用可能な状態であることを意味します。
• 入力 0 固定
入力開放によるリークを防ぐため , 内部で入力レベルを "0" に固定しています。
• 出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダンスにするこ
とを意味します。
• 出力保持
このモードになる直前に出力していた状態をそのまま出力することを意味します。
すなわち , 出力のある内蔵周辺が動作中であれば , その内蔵周辺に従って出力をし ,
ポート等として出力している場合にはその出力を保持します。
• 直前の状態を保持
このモードになる直前に出力していた状態をそのまま出力または入力であれば入
力可能を意味します。
569
付録
■ 端子状態一覧表
付表 C-1 外部バス 32 ビットモード時の端子状態 (1 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
初期値
1∼5
8 ∼ 15
P13 ∼ P17
P20 ∼ P27
D11 ∼ D15
D16 ∼ D23
D11 ∼ D15
D16 ∼ D23
P13 ∼ P17
P20 ∼ P27
18 ∼ 25
―
D24 ∼ D31
D24 ∼ D31
D24 ∼ D31
28
P80
RDY
P80
P80
29
P81
BGRNT
P81
P81
30
P82
BRQ
P82
P82
31
P83
RD
RD
RD
32
P84
DQMUU/WR0 DQMUU/WR0 DQMUU/WR0
33
P85
DQMUL/WR1 DQMUL/WR1
P85
34
P86
DQMLU/WR2 DQMLU/WR2
P86
35
P87
DQMLL/WR3 DQMLL/WR3
P87
36
P90
SYSCLK
SYSCLK
SYSCLK
37
P91
MCLKE
MCLKE
MCLKE
38
P92
MCLK
MCLK
MCLK
39
P93
―
P93
P93
40
P94
SRAS/LBA/AS
P94
P94
出力 Hi-Z
入力可
41
P95
SCAS/BAA
P95
P95
出力 Hi-Z
入力可
42
P96
SWE/WR
P96
P96
出力 Hi-Z
入力可
45 ∼ 52
55 ∼ 62
64 ∼ 67
68
69
70
71
P40 ∼ P47
P50 ∼ P57
P60 ∼ P63
P64
P65
P66
P67
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20/SDA0 *
A21/SCL0 *
A22/SDA1 *
A23/SCL1 *
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20
A21
A22
A23
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
FF 出力
A20
A21
A22
A23
76 ∼ 79
―
AN3 ∼ AN0
AN0 ∼ AN3
AN0 ∼ AN3 入力無効
81
82
83
84
PG0
PG1
PG2
PG3
INT0/ICU0 *
INT1/ICU1 *
INT2/ICU2 *
INT3/ICU3 *
PG0
PG1
PG2
PG3
PG0
PG1
PG2
PG3
85
PG4
PG4
PG4
86
87
88
PG5
PG6
PG7
INT4/ATG/
FRCK *
INT5/SIN2
INT6/SOT2
INT7/SCK2
PG5
PG6
PG7
PG5
PG6
PG7
570
出力 Hi-Z
入力可
出力 Hi-Z
入力可
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
P: 直前状態
保持
F: 出力保持
or Hi-Z
P: 直前状態
保持
F:RDY 入力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:BRQ 入力
無効
P: 直前状態
出力 Hi-Z/
保持
出力 Hi-Z
出力 Hi-Z
F: 出力保持 入力 0 固定
or Hi-Z
P: 直前状態 P: 直前状態
保持
保持
F:RDY 入力 F:RDY 入力
"L" 出力
直前状態
保持
出力 Hi-Z/ BRQ 入力
入力 0 固定
"L" 出力
BRQ 入力
"H" 出力
F:"H" 出力
アサート時
:"L" 出力
ネゲート時
:CLK 出力
"H" 出力
アサート時
:"L" 出力
ネゲート時
:CLK 出力
出力 Hi-Z
入力可
出力 Hi-Z
入力可
P: 直前状態
直前状態
保持
保持
F:"H" 出力
直前状態
保持
出力 Hi-Z
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
F:CLK 出力 F:CLK 出力
F:SYSCLK F:"H" or "L" 入力 0 固定
出力
出力
F:"L" 出力 F:"L" 出力 F: 出力 Hi-Z 出力 Hi-Z
"H" 出力
P: 直前状態 P: 直前状態
F: 出力 Hi-Z 出力 Hi-Z
保持
保持
F:"H" 出力 F:"H" 出力
直前状態
保持
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:SWEX
出力
F:CLK 出力
直前状態
保持
出力 Hi-Z
ポート動作 ポート動作
"H" 出力
出力 Hi-Z
出力 Hi-Z
F:"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z
"H" 出力
直前状態
保持
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
直前状態
保持
P: 直前状態
保持
同左
F: アドレス
出力
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
出力 Hi-Z
直前状態
保持
入力無効
直前状態
保持
直前状態
保持
P: 直前状態 P: 直前状態
P: 出力 Hi-Z
保持
保持
通常動作
F: 入力可
F: 通常動作 F: 入力可
通常動作
入力無効
付録 C 各 CPU ステートにおける端子状態
付表 C-1 外部バス 32 ビットモード時の端子状態 (2 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
90
91
92
93
94
95
96
97
98
99
100
103
104
105
106
107
108
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
SIN0
SOT0
SCK0
SIN1
SOT1
SCK1
PPG0
TRG0
TIN0
TIN1/PPG3
TIN2/TRG3
DREQ0
DACK0
DEOP0
DREQ1
DACK1/TRG1
DEOP1/PPG1
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
109
PB6
IOWR
PB6
PB6
110
PB7
IORD
PB7
PB7
122
PA0
CS0
CS0
CS0
123
PA1
CS1
CS1
CS1
124
PA2
CS2
CS2
CS2
125
PA3
CS3
CS3
CS3
126
PA4
CS4/TRG2
CS4
CS4
127
PA5
CS5/PPG2
CS5
CS5
128
PA6
CS6
CS6
CS6
129
PA7
132 ∼ 139
P00 ∼ P07
CS7
D00 ∼ D07
CS7
D00 ∼ D07
CS7
P00 ∼ P07
142 ∼ 144
P10 ∼ P12
D08 ∼ D10
D08 ∼ D10
P10 ∼ P12
初期値
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
出力 Hi-Z
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z
入力可
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
出力 Hi-Z
F: 出力保持 F: 出力保持 入力 0 固定
or Hi-Z
or Hi-Z
"H" 出力
F:SREN=0: F:SREN=0:
"H" 出力
"H" 出力
SREN=1:
SREN=1:
出力 Hi-Z
出力 Hi-Z
出力 Hi-Z
P: 汎用ポート選択時 , F: 指定機能選択時
*: 68 ∼ 71 ピンの SDA0, SCL0, SDA1, SCL1 および , 81 ∼ 85 ピンの ICU0 ∼ ICU3, FRCK は MB91302A, MB91V301A のみの機能です。
( 注意事項 ) モードベクタフェッチ後にバス幅が決まります。イニシャライズ時はバス幅 8 ビットになっています。
571
付録
付表 C-2 外部バス 16 ビットモード時の端子状態 (1 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
初期値
1∼5
8 ∼ 15
P13 ∼ P17
P20 ∼ P27
D11 ∼ D15
D16 ∼ D23
P13 ∼ P17
D16 ∼ D23
P13 ∼ P17
P20 ∼ P27
18 ∼ 25
-
D24 ∼ D31
D24 ∼ D31
D24 ∼ D31
28
P80
RDY
P80
P80
29
P81
BGRNT
P81
P81
30
P82
BRQ
P82
P82
31
P83
RD
RD
RD
32
P84
DQMUU/WR0 DQMUU/WR0 DQMUU/WR0
33
P85
DQMUL/WR1 DQMUL/WR1
34
P86
DQMLU/WR2
P86
P86
35
P87
DQMLL/WR3
P87
P87
36
P90
SYSCLK
SYSCLK
SYSCLK
37
P91
MCLKE
MCLKE
MCLKE
38
P92
MCLK
MCLK
MCLK
39
P93
-
P93
P93
40
P94
SRAS/LBA/AS
P94
P94
出力 Hi-Z
入力可
41
P95
SCAS/BAA
P95
P95
出力 Hi-Z
入力可
42
P96
SWE/WR
P96
P96
出力 Hi-Z
入力可
45 ∼ 52
55 ∼ 62
64 ∼ 67
68
69
70
71
P40 ∼ P47
P50 ∼ P57
P60 ∼ P63
P64
P65
P66
P67
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20/SDA0 *
A21/SCL0 *
A22/SDA1 *
A23/SCL1 *
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20
A21
A22
A23
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
FF 出力
A20
A21
A22
A23
76 ∼ 79
-
AN0 ∼ AN3
AN0 ∼ AN3
AN0 ∼ AN3 入力無効
81
82
83
84
PG0
PG1
PG2
PG3
INT0/ICU0 *
INT1/ICU1 *
INT2/ICU2 *
INT3/ICU3 *
PG0
PG1
PG2
PG3
PG0
PG1
PG2
PG3
85
PG4
PG4
PG4
86
87
88
PG5
PG6
PG7
INT4/ ATG/
FRCK *
INT5/SIN2
INT6/SOT2
INT7/SCK2
PG5
PG6
PG7
PG5
PG6
PG7
572
出力 Hi-Z
入力可
出力 Hi-Z
入力可
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
P: 直前状態
保持
F: 出力保持
or Hi-Z
P: 直前状態
保持
F:RDY 入力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:BRQ 入力
無効
P: 直前状態 出力 Hi-Z/
保持
入力 0 固定 出力 Hi-Z
出力 Hi-Z
F: 出力保持
or Hi-Z
P: 直前状態 P: 直前状態
保持
保持
F:RDY 入力 F:RDY 入力
"L" 出力
直前状態
保持
"L" 出力
出力 Hi-Z/ BRQ 入力
入力 0 固定
BRQ 入力
出力 Hi-Z
出力 Hi-Z
"H" 出力
P85
F:"H" 出力
アサート時 :
"L" 出力
ネゲート時 :
CLK 出力
"H" 出力
アサート時 :
"L" 出力
ネゲート時 :
CLK 出力
出力 Hi-Z
入力可
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F:"H" 出力
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
F:CLK 出力 F:CLK 出力
F:SYSCLK F:"H" or "L" 入力 0 固定
出力
出力
F:"L" 出力 F:"L" 出力 F: 出力 Hi-Z 出力 Hi-Z
"H" 出力
P: 直前状態 P: 直前状態
F: 出力 Hi-Z 出力 Hi-Z
保持
保持
F:"H" 出力 F:"H" 出力
直前状態
保持
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:SWEX
出力
F:CLK 出力
直前状態
保持
出力 Hi-Z
出力 Hi-Z
出力 Hi-Z
"H" 出力
出力 Hi-Z
出力 Hi-Z
F:"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z
"H" 出力
直前状態
保持
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
直前状態
保持
P: 直前状態
保持
同左
F: アドレス
出力
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
出力 Hi-Z
直前状態
保持
入力無効
直前状態
保持
直前状態
保持
P: 直前状態 P: 直前状態
P: 出力 Hi-Z
保持
保持
通常動作
F: 入力可
F: 通常動作 F: 入力可
通常動作
入力無効
付録 C 各 CPU ステートにおける端子状態
付表 C-2 外部バス 16 ビットモード時の端子状態 (2 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
90
91
92
93
94
95
96
97
98
99
100
103
104
105
106
107
108
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
SIN0
SOT0
SCK0
SIN1
SOT1
SCK1
PPG0
TRG0
TIN0
TIN1/PPG3
TIN2/TRG3
DREQ0
DACK0
DEOP0
DREQ1
DACK1/TRG1
DEOP1/PPG1
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
109
PB6
IOWR
PB6
PB6
110
PB7
IORD
PB7
PB7
122
PA0
CS0
CS0
CS0
123
PA1
CS1
CS1
CS1
124
PA2
CS2
CS2
CS2
125
PA3
CS3
CS3
CS3
126
PA4
CS4/TRG2
CS4
CS4
127
PA5
CS5/PPG2
CS5
CS5
128
PA6
CS6
CS6
CS6
129
PA7
132 ∼ 139
P00 ∼ P07
CS7
D00 ∼ D07
CS7
P00 ∼ P07
CS7
P00 ∼ P07
142 ∼ 144
P10 ∼ P12
D08 ∼ D10
P10 ∼ P12
P10 ∼ P12
初期値
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z/ 入
力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z/
入力可
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
出力 Hi-Z
F: 出力保持 F: 出力保持 入力 0 固定
or Hi-Z
or Hi-Z
"H" 出力
F:SREN=0:
"H" 出力
SREN=1:
出力 Hi-Z
F:SREN=0:
"H" 出力
SREN=1:
出力 Hi-Z
出力 Hi-Z
P: 汎用ポート選択時 , F: 指定機能選択時
*: 68 ∼ 71 ピンの SDA0, SCL0, SDA1, SCL1 および , 81 ∼ 85 ピンの ICU0 ∼ ICU3, FRCK は MB91302A, MB91V301A のみの機能です。
( 注意事項 ) モードベクタフェッチ後にバス幅が決まります。イニシャライズ時はバス幅 8 ビットになっています。
573
付録
付表 C-3 外部バス 8 ビットモード時の端子状態 (1 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
初期値
1∼5
8 ∼ 15
P13 ∼ P17
P20 ∼ P27
D11 ∼ D15
D16 ∼ D23
P13 ∼ P17
P20 ∼ P27
P13 ∼ P17
P20 ∼ P27
18 ∼ 25
-
D24 ∼ D31
D24 ∼ D31
D24 ∼ D31
28
P80
RDY
P80
P80
29
P81
BGRNT
P81
P81
30
P82
BRQ
P82
P82
31
P83
RD
RD
RD
32
P84
DQMUU/WR0 DQMUU/WR0 DQMUU/WR0
33
P85
DQMUL/WR1
P85
P85
34
P86
DQMLU/WR2
P86
P86
35
P87
DQMLL/WR3
P87
P87
36
P90
SYSCLK
SYSCLK
SYSCLK
37
P91
MCLKE
MCLKE
MCLKE
38
P92
MCLK
MCLK
MCLK
39
P93
-
P93
P93
40
P94
SRAS/LBA/AS
P94
P94
出力 Hi-Z
入力可
41
P95
SCAS/BAA
P95
P95
出力 Hi-Z
入力可
42
P96
SWE/WR
P96
P96
出力 Hi-Z
入力可
45 ∼ 52
55 ∼ 62
64 ∼ 67
68
69
70
71
P40 ∼ P47
P50 ∼ P57
P60 ∼ P63
P64
P65
P66
P67
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20/SDA0 *
A21/SCL0 *
A22/SDA1 *
A23/SCL1 *
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
A20
A21
A22
A23
A00 ∼ A07
A08 ∼ A15
A16 ∼ A19
FF 出力
A20
A21
A22
A23
76 ∼ 79
-
AN0 ∼ AN3
AN0 ∼ AN3
AN0 ∼ AN3 入力無効
81
82
83
84
PG0
PG1
PG2
PG3
INT0/ICU0 *
INT1/ICU1 *
INT2/ICU2 *
INT3/ICU3 *
PG0
PG1
PG2
PG3
PG0
PG1
PG2
PG3
85
PG4
PG4
PG4
86
87
88
PG5
PG6
PG7
INT4/ATG/
FRCK *
INT5/SIN2
INT6/SOT2
INT7/SCK2
PG5
PG6
PG7
PG5
PG6
PG7
574
出力 Hi-Z
入力可
出力 Hi-Z
入力可
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
P: 直前状態
保持
F: 出力保持
or Hi-Z
P: 直前状態
保持
F:RDY 入力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:BRQ 入力
無効
P: 直前状態
出力 Hi-Z/
保持
出力 Hi-Z
出力 Hi-Z
F: 出力保持 入力 0 固定
or Hi-Z
P: 直前状態 P: 直前状態
保持
保持
F:RDY 入力 F:RDY 入力
"L" 出力
直前状態
保持
"L" 出力
出力 Hi-Z/ BRQ 入力
入力 0 固定
BRQ 入力
出力 Hi-Z
出力 Hi-Z
"H" 出力
F:"H" 出力
アサート時 :
"L" 出力
ネゲート時 :
CLK 出力
"H" 出力
アサート時 :
"L" 出力
ネゲート時 :
CLK 出力
出力 Hi-Z
入力可
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F:"H" 出力
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
F:CLK 出力 F:CLK 出力
F:SYSCLK F:"H" or "L" 入力 0 固定
出力
出力
F:"L" 出力 F:"L" 出力 F: 出力 Hi-Z 出力 Hi-Z
"H" 出力
P: 直前状態 P: 直前状態
F: 出力 Hi-Z 出力 Hi-Z
保持
保持
F:"H" 出力 F:"H" 出力
直前状態
保持
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:"H" 出力
P: 直前状態
保持
F:SWEX
出力
F:CLK 出力
直前状態
保持
出力 Hi-Z
出力 Hi-Z
出力 Hi-Z
"H" 出力
出力 Hi-Z
出力 Hi-Z
F:"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z
"H" 出力
直前状態
保持
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
直前状態
保持
P: 直前状態
保持
同左
F: アドレス
出力
出力 Hi-Z/
出力 Hi-Z
入力 0 固定
出力 Hi-Z
直前状態
保持
入力無効
直前状態
保持
直前状態
保持
P: 直前状態 P: 直前状態
P: 出力 Hi-Z
保持
保持
通常動作
F: 入力可
F: 通常動作 F: 入力可
通常動作
入力無効
付録 C 各 CPU ステートにおける端子状態
付表 C-3 外部バス 8 ビットモード時の端子状態 (2 / 2)
番号
ポート名
指定機能名
機能名
イニシャライズ時 (INIT)
機能名
バス幅 32bit 時 バス幅 8bit 時
90
91
92
93
94
95
96
97
98
99
100
103
104
105
106
107
108
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
SIN0
SOT0
SCK0
SIN1
SOT1
SCK1
PPG0
TRG0
TIN0
TIN1/PPG3
TIN2/TRG3
DREQ0
DACK0
DEOP0
DREQ1
DACK1/TRG1
DEOP1/PPG1
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
PJ0
PJ1
PJ2
PJ3
PJ4
PJ5
PJ6
PJ7
PH0
PH1
PH2
PB0
PB1
PB2
PB3
PB4
PB5
109
PB6
IOWR
PB6
PB6
110
PB7
IORD
PB7
PB7
122
PA0
CS0
CS0
CS0
123
PA1
CS1
CS1
CS1
124
PA2
CS2
CS2
CS2
125
PA3
CS3
CS3
CS3
126
PA4
CS4/TRG2
CS4
CS4
127
PA5
CS5/PPG2
CS5
CS5
128
PA6
CS6
CS6
CS6
129
PA7
132 ∼ 139
P00 ∼ P07
CS7
D00 ∼ D07
CS7
P00 ∼ P07
CS7
P00 ∼ P07
142 ∼ 144
P10 ∼ P12
D08 ∼ D10
P10 ∼ P12
P10 ∼ P12
初期値
ストップ時
スリープ時
HIZ=0
バス開放
(BGRNT)
HIZ=1
CS 共有あり CS 共有なし
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
出力 Hi-Z/
入力可
P: 直前状態
直前状態
保持
保持
F: 通常動作
出力 Hi-Z/
通常動作
入力 0 固定
通常動作
"H" 出力
"H" 出力
出力 Hi-Z
出力 Hi-Z/
入力可
P: 直前状態 P: 直前状態
出力 Hi-Z/
保持
保持
出力 Hi-Z
F: 出力保持 F: 出力保持 入力 0 固定
or Hi-Z
or Hi-Z
"H" 出力
F:SREN=
0:"H" 出力
SREN=1:
出力 Hi-Z
F:SREN=
0:"H" 出力
SREN=1:
出力 Hi-Z
出力 Hi-Z
P: 汎用ポート選択時 , F: 指定機能選択時
*: 68 ∼ 71 ピンの SDA0, SCL0, SDA1, SCL1 および , 81 ∼ 85 ピンの ICU0 ∼ ICU3, FRCK は MB91302A, MB91V301A のみの機能です。
( 注意事項 ) モードベクタフェッチ後にバス幅が決まります。イニシャライズ時はバス幅 8 ビットになっています。
575
付録
付表 C-4 シングルチップモード時の端子状態
ストップ時
イニシャライズ時 (INIT)
________
番号
1∼5
8 ∼ 15
18 ∼ 25
28
29
30
31
32
33
34
35
36
37
38
39
ポート名
指定機能名
機能名
初期値
バス幅 8bit 時
内 ROM モードベクタ
(MD2-0=000)
P13 ∼ P17
P20 ∼ P27
―
P80
P81
P82
P83
P84
P85
P86
P87
P90
P91
P92
P93
―
―
―
―
―
―
―
―
―
―
―
―
―
―
―
P13 ∼ P17
P20 ∼ P27
―
P80
P81
P82
P83
P84
P85
P86
P87
P90
P91
P92
P93
40
P94
SRAS
P94
41
P95
SCAS/BAA
P95
42
P96
出力 Hi-Z/
入力可
スリープ時
HiZ=0
直前状態保持
直前状態保持
出力 Hi-Z
出力 Hi-Z
直前状態保持
直前状態保持
HiZ=1
出力 Hi-Z/
入力 0 固定
P96
SWE/ WR
45 ∼ 52
P40 ∼ P47
P40 ∼ P47
―
出力 Hi-Z
出力 Hi-Z
55 ∼ 62
P50 ∼ P57
P50 ∼ P57
―
64 ∼ 67
P60 ∼ P63
P60 ∼ P63
―
68
P64
SDA0 *
P64
69
P65
SCL0 *
P65
直前状態保持
70
P66
SDA1 *
P66
71
P67
SCL1 *
P67
76 ∼ 79
AN0 ∼ AN3
AN0 ∼ AN3
―
入力無効
入力無効
入力無効
81
PG0
INT0/ICU0 *
PG0
82
PG1
INT1/ICU1 *
PG1
83
PG2
INT2/ICU2 *
PG2
84
PG3
INT3/ICU3 *
PG3
P: 直前状態保持 P: 出力 Hi-Z
85
PG4
INT4/ATG/FRCK *
PG4
F: 入力可
F: 入力可
86
PG5
INT5/SIN2
PG5
87
PG6
INT6/SOT2
PG6
88
PG7
INT7/SCK2
PG7
90
PJ0
SIN0
PJ0
91
PJ1
SOT0
PJ1
92
PJ2
SCK0
PJ2
93
PJ3
SIN1
PJ3
94
PJ4
SOT1
PJ4
95
PJ5
SCK1
PJ5
96
PJ6
PPG0
PJ6
97
PJ7
TRG0
PJ7
直前状態保持
98
PH0
TIN0
PH0
99
PH1
TIN1/PPG3
PH1
出力 Hi-Z/
100
PH2
TIN2/TRG3
PH2
入力可
103
PB0
PB0
―
104
PB1
PB1
―
105
PB2
PB2
―
出力 Hi-Z/
106
PB3
PB3
―
直前状態保持
入力 0 固定
107
PB4
TRG1
PB4
108
PB5
PPG1
PB5
109
PB6
PB6
―
110
PB7
PB7
―
122
PA0
PA0
―
123
PA1
PA1
―
124
PA2
PA2
―
125
PA3
PA3
―
126
PA4
TRG2
PA4
127
PA5
PPG2
PA5
128
PA6
PA6
―
129
PA7
PA7
―
132 ∼ 139
P00 ∼ P07
P00 ∼ P07
―
142 ∼ 144
P10 ∼ P12
P10 ∼ P12
―
P: 汎用ポート選択時 , F: 指定機能選択時
*: 68 ∼ 71 ピンの SDA0, SCL0, SDA1, SCL1 および , 81 ∼ 85 ピンの ICU0 ∼ ICU3, FRCK は MB91302A, MB91V301A のみの機能です。
( 注意事項 ) モードベクタフェッチ後にバス幅が決まります。イニシャライズ時はバス幅 8 ビットになっています。
576
付録 D リトルエンディアン領域を利用する際の注意事項
付録 D
リトルエンディアン領域を利用する際の注意事項
ここでは , リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明
します。
D.1 C コンパイラ (fcc911)
D.2 アセンブラ (fasm911)
D.3 リンカ (flnk911)
D.4 デバッガ (sim911, eml911, mon911)
577
付録
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();
...
}
■ 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造
体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を
行うと , 正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[ 例 ] リトルエンディアン領域の構造体変数 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);
}
578
付録 D リトルエンディアン領域を利用する際の注意事項
また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ
イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと
きには , 前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは,リトルエンディアン領域に構造体変数を配
置しないでください。
■ 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま
す。このためリトルエンディアン領域に配置された 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 オプションも同様に指定しな
いでください。
579
付録
■ 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
00
00
00
f0
3f
00
■ スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部または全部が配置された場合,動作を保証し
ません。
580
付録 D リトルエンディアン領域を利用する際の注意事項
D.2
アセンブラ (fasm911)
FR ファミリのアセンブラ言語でプログラミングをする場合 , リトルエンディアン領
域に関して注意して頂きたい項目を以下に示します。
• セクション
• データのアクセス
■ セクション
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
リトルエンディアン領域にコードやスタック,初期値付きデータセクションなどの指定
をした場合 , MB91301 シリーズでのアクセス動作は保証できなくなります。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:
.RES.H 1
Little_Byte:
.RES.B 1
581
付録
■ データのアクセス
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン
ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー
タへのアクセスは , 必ずデータサイズと同じサイズで行ってください。
[例]
LDI
LDI
#0X01020304, r0
#Little_Word, r1
LDI
LDI
#0X0102, r2
#Little_Half, r3
LDI
LDI
#0X01, r4
#Little_Byte, r5
/* 32 ビットデータは , ST 命令 ( または LD 命令など ) でアクセスします。*/
ST
r0, @r1
/* 16 ビットデータは , STH 命令 ( または LDH 命令など ) でアクセスします。*/
STH
r2, @r3
/* 8 ビットデータは , STB 命令 ( または LDB 命令など ) でアクセスします。*/
STB
r4, @r5
MB91301 シリーズでデータサイズと異なるサイズでアクセスした場合には , その値の
保証はできません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命
令を使って一度にアクセスした場合には , データの値の保証はできません。
582
付録 D リトルエンディアン領域を利用する際の注意事項
D.3
リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意して頂きたい項目を以下に示します。
• セクション種別の制限
• エラーの未検出
■ セクション種別の制限
リトルエンディアン領域には,初期値なしデータセクションのみ配置することができま
す。
リトルエンディアン領域に初期値付きデータセクション , スタックセクションおよび
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
■ エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認の上 , ご使用ください。
583
付録
D.4
デバッガ (sim911, eml911, mon911)
シミュレータデバッガとエミュレータデバッガ / モニタデバッガでの注意事項につい
て説明します。
■ シミュレータデバッガ
リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドおよびメモリを操作する命令の実行は , ビッグエン
ディアンとして扱われます。
■ エミュレータデバッガ / モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合に,正常な値として扱わ
れませんので注意してください。
• set memory/show memory/enter/examine/set watch コマンド
浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定 / 表示ともにで
きません。
• search memory コマンド
ハーフワード , ワードのデータを検索した場合 , 指定した値で検索が行われません。
• 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
正常な命令コードが設定 / 表示ともにできません。
リトルエンディアン領域には , 命令コードを配置しないようにしてください。
• call/show call コマンド
スタック領域が , リトルエンディアン領域に置かれた場合 , 正常に動作しません。
リトルエンディアン領域にスタック領域を配置しないようにしてください。
584
付録 E 命令一覧
付録 E
命令一覧
FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事
項について説明します。
• 命令一覧表の読み方
• アドレッシングモードの記号
• 命令フォーマット
■ 命令一覧表の読み方
ニーモニック
型
OP
CYCLE
NZVC
動作
ADD
Rj, Rj
A
AG
1
CCCC
Ri + Rj → Rj
*ADD
#s5, Rj
C
A4
1
CCCC
Ri + s5 → Ri
↓
1)
,
,
,
,
,
,
,
,
,
,
,
,
↓
3)
↓
4)
↓
5)
↓
6)
↓
7)
↓
2)
備考
1) 命令名が示されています。
- * 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
2) オペランドに指定可能なアドレッシングモードを記号で示されています。
- 記号の意味は ,「■アドレッシングモードの記号」を参照してください。
3) 命令フォーマットが示されています。
4) 命令コードが 16 進数表示されています。
5) マシンサイクル数を表しています。
- a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
- b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。た
だし, LD動作の対象となるレジスタを直後の命令が参照する場合にはインタロッ
クがかかり , 実行サイクル数が +1 増加します。
- c: 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令で
あるときまたは命令フォーマット A の命令であるとき , インタロックがかかり ,
実行サイクル数は +1 増加して 2 となります。
- d: 直後の命令が MDH/MDL を参照する場合インタロックがかかり , 実行サイクル
数は増加して 2 となります。
ただし , DIV1 命令の直後に , 特殊レジスタ (TBR, RP, USP, SSP, MDH, MDL) を ST
Rs,@R15- 命令でアクセスすると , 常にインタロックがかかって , 実行サイクル数
は増加して 2 となります。
- a, b, c, d とも最小は 1 サイクルです。
585
付録
6) フラグ変化を表しています。
フラグ変化
C : 変化する
- : 変化しない
0 : クリア
1 : セット
7) 命令動作が表記されています。
586
フラグの意味
N : ネガティブフラグ
Z : ゼロフラグ
V : オーバフラグ
C : キャリフラグ
付録 E 命令一覧
■ アドレッシングモードの記号
付表 E-1 アドレッシングモードの記号説明
記号
意味
Ri
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
レジスタ直接 (R13, AC)
Ps
レジスタ直接 ( プログラムステータスレジスタ )
Rs
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
CRi
レジスタ直接 (CR0 ∼ CR15)
CRj
レジスタ直接 (CR0 ∼ CR15)
#i8
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
#s5
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱い
ます。
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF と
して扱います。
符号付き 5 ビット即値 (-16 ∼ 15)
#s10
符号付き 10 ビット即値 (-512 ∼ 508, 4 の倍数のみ )
#u4
符号なし 4 ビット即値 (0 ∼ 15)
#u5
符号なし 5 ビット即値 (0 ∼ 31)
#u8
符号なし 8 ビット即値 (0 ∼ 255)
#u10
符号なし 10 ビット即値 (0 ∼ 1020, 4 の倍数のみ )
@dir8
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE, 2 の倍数のみ )
@dir10
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC, 4 の倍数のみ )
label9
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC, 2 の倍数のみ )
label12
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC, 2 の倍数のみ )
label20
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13,Rj)
レジスタ相対間接 (Rj:R0 ∼ R15, AC, FP, SP)
#i20
#i32
@(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+
@SP+
@-SP
(reglist)
ポストインクリメント付きレジスタ間接 (R13, AC)
スタックポップ
スタックプッシュ
レジスタリスト
587
付録
■ 命令フォーマット
付表 E-2 命令フォーマット
型
命令フォーマット
MSB
A
B
LSB
16bit
OP
Rj
Ri
8
4
4
OP
i8/o8
Ri
4
8
4
OP
C
u4/m4
Ri
4
4
8
ADD, ADDN, CMP, LSL, LSR, ASR 命令のみ
* C"
OP
s5/u5
Ri
7
5
4
OP
D
u8/rel8/dir
/reglist
8
OP
E
8
F
OP
5
588
8
SUB-OP
4
rel11
11
Ri
4
付録 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 コプロセッサ制御命令
589
付録
■ 加減算命令
付表 E-3 加減算命令
*ADD #s5, Ri
型 OP CYCLE NZVC
動作
A A6
1
CCCC Ri + Rj → Ri
C’ A4
1
CCCC Ri + s5 → Ri
ADD #u4, Ri
C
A4
1
ADD2 #u4, Ri
C
A5
1
ADDC Rj, Ri
A
A7
1
ADDN Rj, Ri
A
A2
1
----
Ri + Rj → Ri
*ADDN #s5, Ri
C’
A0
1
----
Ri + s5 → Ri
ADDN #u4, Ri
C
A0
1
----
Ri + extu(i4) → Ri
ADDN2 #u4, Ri
C
A1
1
----
SUB Rj, Ri
A
AC
1
SUBC Rj, Ri
A
AD
1
SUBN Rj, Ri
A
AE
1
ニーモニック
ADD Rj, Ri
備考
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
CCCC Ri + extu(i4) → Ri
CCCC Ri + extu(i4) → Ri
CCCC Ri + Rj + c → Ri
マイナス拡張
キャリ付き加算
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
Ri + extu(i4) → Ri
CCCC Ri - Rj → Ri
CCCC Ri - Rj - c → Ri
---Ri - Rj → Ri
マイナス拡張
キャリ付き減算
■ 比較演算命令
付表 E-4 比較演算命令
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型 OP CYCLE NZVC
動作
A AA
1
CCCC Ri - Rj
C’ A8
1
CCCC Ri - s5
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
備考
アセンブラでは上位
1 ビットを符号と見る
CCCC Ri - extu(i4)
CCCC Ri - extu(i4)
ゼロ拡張
マイナス拡張
■ 論理演算命令
付表 E-5 論理演算命令
ニーモニック
AND
Rj, Ri
型 OP CYCLE NZVC
動作
A 82
1
CC-- Ri &= Rj
RMV
備考
−
ワード
Rj, @Ri
*
A
84
1+2a
CC--
(Ri) &= Rj
○
ワード
ANDH Rj, @Ri
*
A
85
1+2a
CC--
(Ri) &= Rj
○
ハーフワード
ANDB Rj, @Ri
OR
Rj, Ri
*
A
86
1+2a
CC--
(Ri) &= Rj
○
バイト
A
92
1
CC--
Ri | = Rj
−
ワード
OR
Rj, @Ri
*
A
94
1+2a
CC--
(Ri) | = Rj
○
ワード
ORH
Rj, @Ri
*
A
95
1+2a
CC--
(Ri) | = Rj
○
ハーフワード
ORB
EOR
Rj, @Ri *
Rj, Ri
A
96
1+2a
CC--
(Ri) | = Rj
○
バイト
A
9A
1
CC--
Ri ^ = Rj
−
ワード
EOR
Rj, @Ri *
A
9C
1+2a
CC--
(Ri) ^ = Rj
○
ワード
EORH
Rj, @Ri *
A
9D
1+2a
CC--
(Ri) ^ = Rj
○
ハーフワード
EORB
Rj, @Ri *
A
9E
1+2a
CC--
(Ri) ^ = Rj
○
バイト
AND
*: これらの命令をアセンブラで記述する場合 , Rj には R15 以外の汎用レジスタを指定してください。
590
付録 E 命令一覧
■ ビット操作命令
付表 E-6 ビット操作命令
ニーモニック
BANDL #u4, @Ri
型 OP
C 80
BANDH #u4, @Ri
C
*BAND #u8, @Ri
BORL #u4, @Ri
81
CYCLE NZVC
備考
1+2a
----
○
下位 4 ビットを操作
1+2a
----
(Ri)&=((u4<<4)+0x0F)
○
上位 4 ビットを操作
----
(Ri)&=u8
−
(Ri) | = u4
○
下位 4 ビットを操作
上位 4 ビットを操作
*1
BORH #u4, @Ri
RMV
動作
(Ri)&=(0xF0+u4)
C
90
1+2a
----
C
91
1+2a
----
(Ri) | = (u4<<4)
○
----
(Ri) | = u8
−
*2
*BOR #u8, @Ri
BEORL #u4, @Ri
C
98
1+2a
----
(Ri) ^ = u4
○
下位 4 ビットを操作
BEORH #u4, @Ri
C
99
1+2a
----
(Ri) ^ = (u4<<4)
○
上位 4 ビットを操作
----
(Ri) ^ = u8
−
*BEOR #u8, @Ri *3
BTSTL #u4, @Ri
C
88
2+a
0C--
(Ri) & u4
−
下位 4 ビットテスト
BTSTH #u4, @Ri
C
89
2+a
CC--
(Ri) & (u4<<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 乗除算命令
MULH Rj,Ri
型 OP CYCLE NZVC
A AF
5
CCC- Ri × Rj
A AB
5
CCC- Ri × Rj
A BF
3
CC-- Ri × Rj
MULUH Rj,Ri
A
BB
3
CC--
DIV0S Ri
E 97-4
1
----
DIV0U Ri
DIV1 Ri
DIV2 Ri
DIV3
DIV4S
E
E
E
E
E
1
d
1
1
1
36
----C-C
-C-C
-------C-C
ニーモニック
MUL Rj,Ri
MULU Rj,Ri
*DIV Ri *1
97-5
97-6
97-7
9F-6
9F-7
動作
備考
→ MDH,MDL
32bit × 32bit=64bit
→ MDH,MDL
符号なし
→ MDL
16bit × 16bit=32bit
Ri × Rj → MDL
符号なし
ステップ演算
32bit/32bit=32bit
MDL / Ri → MDL ,
MDL % Ri → MDH
*DIVU Ri
*2
-C-C
MDL / Ri → MDL ,
MDL % Ri → MDH
*1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。
*2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
591
付録
■ シフト命令
付表 E-8 シフト命令
ニーモニック
LSL Rj, Ri
型
A
OP CYCLE
NZVC
B6
1
CC-C
Ri << Rj → Ri
*LSL #u5, Ri (u5:0 ∼ 31)
LSL #u4, Ri
C’
B4
1
CC-C
Ri << u5 → Ri
C
B4
1
CC-C
Ri << u4 → Ri
LSL2 #u4, Ri
C
B5
1
CC-C
Ri <<(u4+16) → Ri
LSR Rj, Ri
A
B2
1
CC-C
Ri >> Rj → Ri
*LSR #u5, Ri (u5:0 ∼ 31)
LSR #u4, Ri
C’
B0
1
CC-C
Ri >> u5 → Ri
C
B0
1
CC-C
Ri >> u4 → Ri
LSR2 #u4, Ri
C
B1
1
CC-C
Ri >>(u4+16) → Ri
ASR Rj, Ri
A
BA
1
CC-C
Ri >> Rj → Ri
*ASR #u5, Ri (u5:0 ∼ 31)
ASR #u4, Ri
C’
B8
1
CC-C
Ri >> u5 → Ri
C
B8
1
CC-C
Ri >> u4 → Ri
ASR2 #u4, Ri
C
B9
1
CC-C
Ri >>(u4+16) → Ri
動作
備考
論理シフト
論理シフト
算術シフト
■ 即値セット /16 ビット /32 ビット即値転送命令
付表 E-9 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
LDI:32
#i32, Ri
LDI:20
#i20, Ri
LDI:8
#i8, Ri
*LDI #{i8 | i20 | i32},Ri
*
型 OP CYCLE NZVC
動作
E 9F-8
3
---i32 → Ri
C 9B
2
---i20 → Ri
上位 12 ビットはゼロ拡張
B
上位 24 ビットはゼロ拡張
C0
1
----
i8 → Ri
備考
{i8 | i20 | i32} → Ri
*: 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
592
付録 E 命令一覧
■ メモリロード命令
付表 E-10 メモリロード命令
LD
ニーモニック
@Rj, Ri
型
A
OP
CYCLE NZVC
動作
04
b
----
(Rj) → Ri
LD
@(R13,Rj), Ri
A
00
b
----
(R13+Rj) → Ri
LD
@(R14,disp10), Ri
B
20
b
----
(R14+disp10) → Ri
LD
@(R15,udisp6), Ri
C
03
b
----
(R15+udisp6) → Ri
LD
@R15+, Ri
E
07-0
b
----
(R15) → Ri, R15+=4
LD
@R15+, Rs
E
07-8
b
----
(R15) → Rs, R15+=4
LD
@R15+, PS
E
07-9
1+a+b
LDUH
@Rj, Ri
A
05
b
CCCC (R15) → PS, R15+=4
---(Rj) → Ri
備考
Rs: 特殊レジスタ *
ゼロ拡張
LDUH
@(R13,Rj), Ri
A
01
b
----
(R13+Rj) → Ri
ゼロ拡張
LDUH
@(R14,disp9), Ri
B
40
b
----
(R14+disp9) → Ri
ゼロ拡張
LDUB
@Rj, Ri
A
06
b
----
(Rj) → Ri
ゼロ拡張
LDUB
@(R13,Rj), Ri
A
02
b
----
(R13+Rj) → Ri
ゼロ拡張
LDUB
@(R14,disp8), Ri
B
60
b
----
(R14+disp8) → Ri
ゼロ拡張
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様のo8, o4のフィールドには,次のようにアセンブラが計算して値を設定します。
- disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
- udisp6/4 → o4 udisp6 は , 符号なしです。
593
付録
■ メモリストア命令
付表 E-11 メモリストア命令
ST
ニーモニック
Ri, @Rj
型
A
OP
CYCLE NZVC
動作
備考
14
a
----
Ri → (Rj)
ワード
ST
Ri, @(R13,Rj)
A
10
a
----
Ri → (R13+Rj)
ワード
ST
Ri, @(R14,disp10)
B
30
a
----
Ri → (R14+disp10)
ワード
ST
Ri, @(R15,udisp6)
C
13
a
----
Ri → (R15+udisp6)
ST
Ri, @-R15
E
17-0
a
----
R15-=4, Ri → (R15)
ST
Rs, @-R15
E
17-8
a
----
R15-=4, Rs → (R15)
ST
PS, @-R15
E
17-9
a
----
R15-=4, PS → (R15)
STH
Ri, @Rj
A
15
a
----
Ri → (Rj)
ハーフワード
STH
Ri, @(R13,Rj)
A
11
a
----
Ri → (R13+Rj)
ハーフワード
STH
Ri, @(R14,disp9)
B
50
a
----
Ri → (R14+disp9)
ハーフワード
STB
Ri, @Rj
A
16
a
----
Ri → (Rj)
バイト
STB
Ri, @(R13,Rj)
A
12
a
----
Ri → (R13+Rj)
バイト
STB
Ri, @(R14,disp8)
B
70
a
----
Ri → (R14+disp8)
バイト
Rs: 特殊レジスタ *
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様のo8, o4のフィールドには,次のようにアセンブラが計算して値を設定します。
- disp10/4 → o8, disp9/2 → o8, disp8 → o8, disp10, disp9, disp8 は符号付きです。
- udisp6/4 → o4 udisp6 は , 符号なしです。
■ レジスタ間転送命令
付表 E-12 レジスタ間転送命令
ニーモニック
MOV Rj, Ri
型
A
OP
CYCLE
NZVC
8B
1
----
Rj → Ri
汎用レジスタ間転送
MOV Rs, Ri
A
B7
1
----
Rs → Ri
Rs: 特殊レジスタ *
MOV Ri, Rs
E
B3
1
----
Ri → Rs
Rs: 特殊レジスタ *
MOV PS, Ri
E
17-1
1
----
PS → Ri
MOV Ri, PS
E
07-1
c
CCCC
Ri → PS
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
594
動作
備考
付録 E 命令一覧
■ 通常分岐 ( 遅延なし ) 命令
付表 E-13 通常分岐 ( 遅延なし ) 命令
OP
CYCLE NZVC
ニーモニック
JMP
@Ri
型
E
動作
97-0
2
----
Ri → PC
CALL
label12
F
D0
2
----
PC+2 → RP ,
CALL
@Ri
E
97-1
2
----
PC+2 → RP ,Ri → PC
E
97-2
2
----
RP → PC
D
1F
3+3a
----
SSP-=4,PS → (SSP),
備考
PC+2+(label12-PC-2) → PC
RET
INT
#u8
リターン
SSP-=4,PC+2 → (SSP),
0 → I フラグ , 0 → S フラグ ,
(TBR+0x3FC-u8 × 4) → PC
INTE
E
9F-3
3+3a
----
SSP-=4,PS → (SSP),
エミュレータ用
SSP-=4,PC+2 → (SSP),
0 → S フラグ ,
(TBR+0x3D8) → PC
RETI
E
97-3
2+2A
CCCC (R15) → PC,R15-=4,
(R15) → PS,R15-=4
BRA
label9
D
E0
2
----
PC+2+(label9-PC-2) → PC
BNO
label9
D
E1
1
----
BEQ
label9
D
E2
2/1
----
非分岐
if(Z==1) then
BNE
label9
D
E3
2/1
----
BC
label9
D
E4
2/1
----
↑ s/C==1
BNC
label9
D
E5
2/1
----
↑ s/C==0
BN
label9
D
E6
2/1
----
↑ s/N==1
BP
label9
D
E7
2/1
----
↑ s/N==0
BV
label9
D
E8
2/1
----
↑ s/V==1
BNV
label9
D
E9
2/1
----
↑ s/V==0
BLT
label9
D
EA
2/1
----
↑ s/V xor N==1
BGE
label9
D
EB
2/1
----
↑ s/V xor N==0
BLE
label9
D
EC
2/1
----
↑ s/(V xor N) or Z==1
BGT
label9
D
ED
2/1
----
↑ s/(V xor N) or Z==0
BLS
label9
D
EE
2/1
----
↑ s/C or Z==1
BHI
label9
D
EF
2/1
----
↑ s/C or Z==0
PC+2+(label9-PC-2) → PC
↑ s/Z==0
<注意事項>
• CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• RETI 命令を実行するときは , S フラグが "0" であることが必要です。
595
付録
■ 遅延分岐命令
付表 E-14 遅延分岐命令
ニーモニック
JMP:D @Ri
OP
型
E
9F-0
CYCLE NZVC
1
----
Ri → PC
CALL:D label12
F
D8
1
----
PC+4 → RP ,
CALL:D @Ri
E
9F-1
1
----
PC+4 → RP ,Ri → PC
RET:D
E
9F-2
1
----
RP → PC
BRA:D label9
D
F0
1
----
PC+2+(label9-PC-2) → PC
非分岐
if(Z==1) then
動作
備考
PC+2+(label12-PC-2) → PC
BNO:D label9
D
F1
1
----
BEQ:D label9
D
F2
1
----
リターン
PC+2+(label9-PC-2) → PC
BNE:D label9
BC:D
D
F3
1
----
↑ s/Z==0
label9
D
F4
1
----
↑ s/C==1
BNC:D label9
D
F5
1
----
↑ s/C==0
BN:D
label9
D
F6
1
----
↑ s/N==1
BP:D
label9
D
F7
1
----
↑ s/N==0
BV:D
label9
D
F8
1
----
↑ s/V==1
BNV:D label9
D
F9
1
----
↑ s/V==0
BLT:D
label9
D
FA
1
----
↑ s/V xor N==1
BGE:D label9
D
FB
1
----
↑ s/V xor N==0
BLE:D label9
D
FC
1
----
↑ s/(V xor N) or Z==1
BGT:D label9
D
FD
1
----
↑ s/(V xor N) or Z==0
BLS:D label9
D
FE
1
----
↑ s/C or Z==1
BHI:D
D
FF
1
----
↑ s/C or Z==0
label9
<注意事項>
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8, label12, label9 は符号付きです。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
• 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令
です。
複数サイクル命令は置けません。
596
付録 E 命令一覧
■ その他の命令
付表 E-15 その他の命令
型
OP
CYCLE
NZVC
NOP
E
9F-A
1
----
ANDCCR#u8
D
83
c
CCCC
CCR and u8 → CCR
ORCCR #u8
D
93
c
CCCC
CCR or u8 → CCR
STILM
D
87
1
----
ADDSP #s10 *1
EXTSB Ri
D
A3
1
----
E
97-8
1
----
符号拡張 8 → 32bit
EXTUB Ri
E
97-9
1
----
ゼロ拡張 8 → 32bit
EXTSH
Ri
E
97-A
1
----
符号拡張 16 → 32bit
EXTUH Ri
E
97-B
1
----
ゼロ拡張 16 → 32bit
LDM0
D
8C
----
(R15) → reglist,
ニーモニック
#u8
(reglist)
動作
何も変化しない
i8 → ILM
R15 += s10
RMV
−
−
−
−
−
−
−
−
−
−
備考
ILM 即値セット
ADD SP 命令
ロードマルチ R0-R7
R15 インクリメント
LDM1
(reglist)
D
8D
----
(R15) → reglist,
----
(R15) → reglist,
−
ロードマルチ R8-R15
−
ロードマルチ R0-R15
−
ストアマルチ R0-R7
−
ストアマルチ R8-R15
−
ストアマルチ R0-R15
−
関数の入口処理
−
関数の出口処理
○
セマフォ管理用
R15 インクリメント
*2
*LDM
(reglist)
STM0
(reglist)
D
8E
----
STM1
(reglist)
D
8F
----
R15 ディクリメント ,
*STM
(reglist) *3
----
R15 ディクリメント ,
----
R14 → (R15 - 4),
R15 インクリメント
R15 ディクリメント ,
reglist → (R15)
reglist → (R15)
reglist → (R15)
ENTER
#u10
*4
D
0F
1+a
R15 - 4 → R14,
R15 - u10 → R15
LEAVE
E
9F-9
b
----
R14 + 4 → R15,
(R15 - 4) → R14
XCHB
@Rj, Ri *5
A
8A
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 は符号なしです。
*5: この命令をアセンブラで記述する場合 , Ri には R15 以外の汎用レジスタを指定してください。
<注意事項>
• LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*(n-1)+b+1 サイクルとなります。
• STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*n+1 サイクルとなります。
597
付録
■ 20 ビット通常分岐マクロ命令
付表 E-16 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 label20,Ri
動作
次の命令のアドレス→ RP,
備考
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20
label20,Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20
label20,Ri
if(Z==1) then label20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20
label20,Ri
↑ s/Z==0
↑
*BC20
label20,Ri
↑ s/C==1
↑
*BNC20
label20,Ri
↑ s/C==0
↑
*BN20
label20,Ri
↑ s/N==1
↑
*BP20
label20,Ri
↑ s/N==0
↑
*BV20
label20,Ri
↑ s/V==1
↑
*BNV20
label20,Ri
↑ s/V==0
↑
*BLT20
label20,Ri
↑ s/V xor N==1
↑
*BGE20
label20,Ri
↑ s/V xor N==0
↑
*BLE20
label20,Ri
↑ s/(V xor N) or Z==1
↑
*BGT20
label20,Ri
↑ s/(V xor N) or Z==0
↑
*BLS20
label20,Ri
↑ s/C or Z==1
↑
*BHI20
label20,Ri
↑ s/C or Z==0
↑
参考 1: CALL20
1. label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL
label12
2. abel20-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:
598
付録 E 命令一覧
■ 20 ビット遅延分岐マクロ命令
付表 E-17 20 ビット遅延分岐マクロ命令
ニーモニック
*CALL20:D label20,Ri
動作
備考
次の命令のアドレス +2 → RP,
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20:D label20,Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20:D label20,Ri
if(Z==1) then label20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20:D label20,Ri
↑ s/Z==0
↑
*BC20:D
label20,Ri
↑ s/C==1
↑
*BNC20:D label20,Ri
↑ s/C==0
↑
*BN20:D
label20,Ri
↑ s/N==1
↑
*BP20:D
label20,Ri
↑ s/N==0
↑
*BV20:D
label20,Ri
↑ s/V==1
↑
*BNV20:D label20,Ri
↑ s/V==0
↑
*BLT20:D label20,Ri
↑ s/V xor N==1
↑
*BGE20:D label20,Ri
↑ s/V xor N==0
↑
*BLE20:D label20,Ri
↑ s/(V xor N) or Z==1
↑
*BGT20:D label20,Ri
↑ s/(V xor N) or Z==0
↑
*BLS20:D label20,Ri
↑ s/C or Z==1
↑
*BHI20:D
↑ s/C or Z==0
↑
label20,Ri
参考 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:
599
付録
■ 32 ビット通常分岐マクロ命令
付表 E-18 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 label32,Ri
動作
次の命令のアドレス→ RP,
備考
Ri: テンポラリレジスタ ( 参考 1 参照 )
label32 → PC
*BRA32
label32,Ri
label32 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ32
label32,Ri
if(Z==1) then label32 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE32
label32,Ri
↑ s/Z==0
↑
*BC32
label32,Ri
↑ s/C==1
↑
*BNC32
label32,Ri
↑ s/C==0
↑
*BN32
label32,Ri
↑ s/N==1
↑
*BP32
label32,Ri
↑ s/N==0
↑
*BV32
label32,Ri
↑ s/V==1
↑
*BNV32
label32,Ri
↑ s/V==0
↑
*BLT32
label32,Ri
↑ s/V xor N==1
↑
*BGE32
label32,Ri
↑ s/V xor N==0
↑
*BLE32
label32,Ri
↑ s/(V xor N) or Z==1
↑
*BGT32
label32,Ri
↑ s/(V xor N) or Z==0
↑
*BLS32
label32,Ri
↑ s/C or Z==1
↑
*BHI32
label32,Ri
↑ s/C or Z==0
↑
参考 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:
600
付録 E 命令一覧
■ 32 ビット遅延分岐マクロ命令
付表 E-19 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32:D
label32,Ri
動作
備考
次の命令のアドレス +2 → RP,
Ri: テンポラリレジスタ ( 参考 1 参照 )
label32 → PC
*BRA32:D
label32,Ri
label32 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ32:D
label32,Ri
if(Z==1) then label32 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE32:D
label32,Ri
↑ s/Z==0
↑
*BC32:D
label32,Ri
↑ s/C==1
↑
*BNC32:D
label32,Ri
↑ s/C==0
↑
*BN32:D
label32,Ri
↑ s/N==1
↑
*BP32:D
label32,Ri
↑ s/N==0
↑
*BV32:D
label32,Ri
↑ s/V==1
↑
*BNV32:D
label32,Ri
↑ s/V==0
↑
*BLT32:D
label32,Ri
↑ s/V xor N==1
↑
*BGE32:D
label32,Ri
↑ s/V xor N==0
↑
*BLE32:D
label32,Ri
↑ s/(V xor N) or Z==1
↑
*BGT32:D
label32,Ri
↑ s/(V xor N) or Z==0
↑
*BLS32:D
label32,Ri
↑ s/C or Z==1
↑
*BHI32:D
label32,Ri
↑ s/C or Z==0
↑
参考 1: CALL32:D
1. label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
2. label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32,Ri
CALL:D @Ri
参考 2: BRA32:D
1. label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
2. label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32,Ri
JMP:D @Ri
参考 3: Bcc32:D
1. label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D
label9
2. label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
Bxcc
false
xcc は , cc の背反条件
LDI:32 #label32,Ri
JMP:D @Ri
false:
601
付録
■ ダイレクトアドレッシング命令
付表 E-20 ダイレクトアドレッシング命令
ニーモニック
DMOV @dir10, R13
型
D
OP CYCLE NZVC
08
b
----
(dir10) → R13
ワード
DMOV R13,
@dir10
D
18
a
----
R13 → (dir10)
ワード
DMOV @dir10,
@R13+ D
0C
2a
----
動作
備考
(dir10) → (R13),R13+=4
ワード
DMOV @R13+, @dir10
D
1C
2a
----
(R13) → (dir10),R13+=4
ワード
DMOV @dir10,
@-R15
D
0B
2a
----
R15-=4,(R15) → (dir10)
ワード
DMOV @R15+, @dir10
D
1B
2a
----
(R15) → (dir10),R15+=4
ワード
DMOVH @dir9,
R13
D
09
b
----
(dir9) → R13
ハーフワード
DMOVH R13,
@dir9
D
19
a
----
R13 → (dir9)
ハーフワード
DMOVH @dir9,
@R13+ D
0D
2a
----
(dir9) → (R13),R13+=2
ハーフワード
DMOVH @R13+, @dir9
D
1D
2a
----
(R13) → (dir9),R13+=2
ハーフワード
DMOVB @dir8,
R13
D
0A
b
----
(dir8) → R13
バイト
DMOVB R13,
@dir8
D
1A
a
----
R13 → (dir8)
バイト
DMOVB @dir8,
@R13+ D
DMOVB @R13+, @dir8
D
0E
2a
----
(dir8) → (R13),R13++
バイト
1E
2a
----
(R13) → (dir8),R13++
バイト
<注意事項>
dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8 → dir, dir9/2 → dir, dir10/4 → dir dir8, dir9, dir10 は符号なしです。
■ リソース命令
付表 E-21 リソース命令
ニーモニック
LDRES
@Ri+, #u4
型
C
OP
BC
a
----
(Ri) → u4 のリソース
Ri+=4
u4: チャネル番号
STRES
C
BD
a
----
u4 のリソース→ (Ri)
Ri+=4
u4: チャネル番号
#u4, @Ri+
CYCLE NZVC
動作
備考
<注意事項>
MB91301 シリーズでは , チャネル番号を持つリソースを搭載していないので , 使用できま
せん。
602
付録 E 命令一覧
■ コプロセッサ制御命令
付表 E-22 コプロセッサ制御命令
OP
CYCLE NZVC
ニーモニック
COPOP #u4, #u8, CRj, CRi
型
E
動作
9F-C
2+a
----
演算指示
COPLD #u4, #u8, Rj, CRi
E
9F-D
1+2a
----
Rj → CRi
COPST #u4, #u8, CRj, Ri
E
9F-E
1+2a
----
CRj → Ri
COPSV #u4, #u8, CRj, Ri
E
9F-F
1+2a
----
CRj → Ri
備考
エラートラップなし
<注意事項>
- ・{CRi | CRj}:= CR0 | CR1 | CR2 | CR3 | CR4 | CR5 | CR6 | CR7 | CR8
| CR9 | CR10 | CR11 | CR12 | CR13 | CR14 | CR15
・u4:= チャネル指定
・u8:= コマンド指定
- MB91301 シリーズでは , コプロセッサを搭載していないため使用できません。
603
付録
604
索引
索引
Numerics
0 検出
0 検出 ......................................................................461
0 検出用データレジスタ (BSD0) ........................459
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................459
10 ビットスレーブアドレスマスクレジスタ
10 ビットスレーブアドレスマスクレジスタ
(ITMK0/1) ........................................................482
10 ビットスレーブアドレスレジスタ
10 ビットスレーブアドレスレジスタ
(ITBA0/1) .........................................................481
16 ビット
即値セット /16 ビット /32 ビット即値
転送命令 ..........................................................592
16 ビットタイマレジスタ
16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2)
のビット構成 ..................................................284
16 ビットリロードタイマ
16 ビットリロードタイマの概要 ........................278
16 ビットリロードタイマのレジスタ一覧 ........279
16 ビットリロードタイマを使用して起動する
場合 ..................................................................312
16 ビットリロードレジスタ
16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼
TMRLR2) の
ビット構成 ......................................................285
1M バイト Flash
1M バイト Flash の接続例 ...................................529
1 検出
1 検出 ......................................................................461
1 検出用データレジスタ (BSD1) ........................460
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................460
20 ビット
20 ビット遅延分岐マクロ命令 ............................599
20 ビット通常分岐マクロ命令 ............................598
2 サイクル転送
2 サイクル転送 (I/O → SDRAM/FCRAM) .........258
2 サイクル転送 (I/O →外部 ) ...............................257
2 サイクル転送 (SDRAM/FCRAM → I/O) .........259
2 サイクル転送 ( 外部→ I/O) ...............................256
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................255
2 サイクル転送時
2 サイクル転送時のデータの動き ......................448
32 ビット
32 ビット遅延分岐マクロ命令 ............................601
32 ビット通常分岐マクロ命令 ............................600
即値セット /16 ビット /32 ビット即値
転送命令 ..........................................................592
7 ビットスレーブアドレスマスクレジスタ
7 ビットスレーブアドレスマスクレジスタ
(ISMK0/1) .........................................................485
7 ビットスレーブアドレスレジスタ
7 ビットスレーブアドレスレジスタ
(ISBA0/1) .........................................................484
A
A/D
内蔵 DC-DC レギュレータおよび A/D 使用時の
注意について ....................................................41
A/D コンバータ
A/D コンバータ ( 逐次変換型 ) ............................... 4
A/D コンバータ使用上の注意 ............................367
A/D コンバータの特長 ........................................ 354
A/D コンバータのレジスタ一覧 ........................ 356
ACR
領域構成レジスタ 0 ∼ 7 (ACR0 ∼ ACR7) の
構成 .................................................................. 152
ADCR
データレジスタ (ADCR) ...................................... 363
変換結果レジスタ (ADCR0 ∼ ADCR3) ............364
ADCS
コントロールステータスレジスタ (ADCS) の
ビット構成 ......................................................357
コントロールステータスレジスタ (ADCS) の
ビット詳細 ......................................................357
ASR
領域選択レジスタ (ASR0 ∼ ASR7) の
ビット機能 ......................................................151
領域選択レジスタ 0 ∼ 7 (ASR0 ∼ ASR7) の
構成 .................................................................. 150
AWR
領域ウェイトレジスタ (AWR0 ∼ AWR7) の
構成 .................................................................. 160
B
BSD
0 検出用データレジスタ (BSD0) ........................ 459
1 検出用データレジスタ (BSD1) ........................ 460
BSDC
変化点検出用データレジスタ (BSDC) ..............460
BSRR
検出結果レジスタ (BSRR) ..................................460
C
CHER
キャッシュ取込み許可レジスタ (CHER) の
構成 .................................................................. 179
キャッシュ取込み許可レジスタ (CHER) のビット
機能 .................................................................. 179
CLKB
CPU クロック (CLKB) .........................................105
CLKP
周辺クロック (CLKP) .......................................... 105
CLKR
クロックソース制御レジスタ (CLKR) ..............118
CLKT
605
索引
外部バスクロック (CLKT) ..................................106
CPU
CPU クロック (CLKB) ..........................................105
FR CPU .......................................................................2
CSER
チップセレクト領域許可レジスタ (CSER) の
構成 ..................................................................177
チップセレクト領域許可レジスタ (CSER) の
ビット機能 ......................................................177
CSn
CSn 遅延設定の動作タイミング .........................219
CSn → RD/WRn セットアップ ,
RD/WRn → CSn ホールド設定の
動作タイミング ..............................................220
CSn → RD/WRn セットアップ設定 ....................228
CTBR
タイムベースカウンタクリアレジスタ
(CTBR) .............................................................118
D
DACK
DACK,DEOP,DREQ の端子機能 .........................418
DACK 端子出力のタイミング ............................443
DC-DC レギュレータ
内蔵 DC-DC レギュレータおよび A/D 使用時の
注意について ....................................................41
DDR
データ方向レジスタ (DDR) の構成 ...................269
DEOP
DACK,DEOP,DREQ の端子機能 .........................418
DEOP 端子出力のタイミング .............................444
DICR
DICR の DLYI ビット ...........................................338
遅延割込み制御レジスタ (DICR) .......................337
DIVR
基本クロック分周設定レジスタ (DIVR0) .........121
基本クロック分周設定レジスタ (DIVR1) .........123
DLYI
DICR の DLYI ビット ...........................................338
DMA
DMAC (DMA Controller) ..........................................4
DMA アクセス動作 ..............................................244
DMA 外部インタフェースの端子 ......................451
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................400
DMA 転送中の外部ホールド要求 ......................433
DMA 転送と割込み ..............................................432
DMA 転送要求と外部ホールド要求の
同時発生 ..........................................................433
DMA による周辺割込みクリア ..........................435
DMA フライバイ転送
(I/O → SDRAM/FCRAM) ...............................249
DMA フライバイ転送 (I/O →メモリ ) ...............245
DMA フライバイ転送 (I/O →メモリ ) の
動作タイミング ..............................................221
DMA フライバイ転送
(SDRAM/FCRAM → I/O) ...............................251
DMA フライバイ転送 ( メモリ→ I/O) ...............247
DMA フライバイ転送 ( メモリ→ I/O) の
動作タイミング ..............................................222
DMA 抑止 ..............................................................432
606
外部ホールド中の DMA 転送要求 .....................433
スリープ中の DMA 転送 .....................................438
DMAC
DMAC (DMA Controller) .......................................... 4
DMAC 全体制御レジスタ (DMACR) の
ビット構成 ......................................................416
DMAC 全体制御レジスタ (DMACR) の
ビット詳細 ......................................................416
DMAC の交流特性 ............................................... 444
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
の構成 .............................................................. 174
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
のビット機能 ..................................................174
DMAC 割込み制御 ............................................... 438
DMA コントローラ (DMAC) の
レジスタ一覧 ..................................................400
DMACA
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4) のビット構成 ....... 402
コントロール / ステータスレジスタ A
(DMACA0 ∼ DMACA4) のビット詳細 ....... 402
DMACB
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) のビット構成 ....... 407
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) のビット詳細 ....... 407
DMACR
DMAC 全体制御レジスタ (DMACR) の
ビット構成 ......................................................416
DMAC 全体制御レジスタ (DMACR) の
ビット詳細 ......................................................416
DMAC 全体制御レジスタ
DMAC 全体制御レジスタ (DMACR) の
ビット構成 ......................................................416
DMAC 全体制御レジスタ (DMACR) の
ビット詳細 ......................................................416
DMAC 用 I/O ウェイトレジスタ
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
の構成 .............................................................. 174
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
のビット機能 ..................................................174
DMADA
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット構成 ............................... 414
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット詳細 ............................... 415
DMASA
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット構成 ............................... 414
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) のビット詳細 ............................... 415
DMA 転送要求
外部ホールド中の DMA 転送要求 .....................433
double 型
double 型 /long double 型の利用 .......................... 580
DREQ
DACK,DEOP,DREQ の端子機能 .........................418
DREQ 端子入力の最小有効パルス幅 ................ 441
デマンド転送要求を停止するために DREQ 端子
索引
を無効にするタイミングについて ..............441
同一チャネルで引き続き転送するための DREQ
端子入力のタイミング ..................................443
E
EIRR
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................327
EIT
EIT ( 例外 , 割込み , トラップ ) .............................78
EIT からの復帰 .......................................................78
EIT の動作 ...............................................................88
EIT の割込みレベル ...............................................79
EIT ベクタテーブル ...............................................83
EIT 要因 ...................................................................78
EIT 要因受理の優先度 ...........................................86
ELVR
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................328
ENable Interrupt request Register
割込み許可レジスタ (ENIR:ENable Interrupt request
Register) ............................................................326
ENIR
割込み許可レジスタ (ENIR:ENable Interrupt request
Register) ............................................................326
External Interrupt Request Register
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................327
External LeVel Register
外部割込み要求レベル設定レジスタ
(ELVR:External LeVel Register) .....................328
F
FCRAM
2 サイクル転送 (I/O → SDRAM/FCRAM) .........258
2 サイクル転送 (SDRAM/FCRAM → I/O) .........259
DMA フライバイ転送
(I/O → SDRAM/FCRAM) ...............................249
DMA フライバイ転送
(SDRAM/FCRAM → I/O) ...............................251
SDRAM/FCRAM インタフェース ......................233
複数領域への SDRAM/FCRAM 接続 .................238
メモリ設定レジスタ (FCRAM オート
プリチャージありモード用 )(MCRB) の
構成 ..................................................................173
メモリ設定レジスタ (SDRAM/FCRAM オート
プリチャージなしモード用 )(MCRA) の構成 ..
170
Flash メモリ
Flash メモリの配置 ...............................................529
FPT-144P-M08
FPT-144P-M08 の外形寸法図 ................................10
FPT-144P-M12
FPT-144P-M12 の外形寸法図 ..................................9
FR
FR CPU .......................................................................2
FR ファミリの命令一覧表 ...................................589
REALOS/FR コンフィグレータの設定 ..............540
搭載 REALOS/FR のバージョン .........................532
搭載 REALOS/FR の概要 .....................................534
G
GCN
ゼネラルコントロールレジスタ 10 (GCN10) の
ビット構成 ......................................................303
ゼネラルコントロールレジスタ 10 (GCN10) の
ビット詳細 ......................................................303
ゼネラルコントロールレジスタ 20 (GCN20) の
ビット構成 ......................................................306
H
Hold
ホールドリクエスト取下げ要求
(HRCR:Hold Request Cancel Request) ............349
Hold Request Cancel Request
ホールドリクエスト取下げ要求
(HRCR:Hold Request Cancel Request) ............349
HRCL
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) のビット構成 ...................344
ホールドリクエスト取下げ要求レベル設定
レジスタ (HRCL) のビット詳細 ...................344
HRCR
ホールドリクエスト取下げ要求
(HRCR:Hold Request Cancel Request) ............349
I
I/O
2 サイクル転送 (I/O → SDRAM/FCRAM) ......... 258
2 サイクル転送 (I/O →外部 ) ..............................257
2 サイクル転送 (SDRAM/FCRAM → I/O) ......... 259
2 サイクル転送 ( 外部→ I/O) ..............................256
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................255
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
の構成 .............................................................. 174
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
のビット機能 ..................................................174
DMA フライバイ転送
(I/O → SDRAM/FCRAM) ............................... 249
DMA フライバイ転送 (I/O →メモリ ) ............... 245
DMA フライバイ転送 (I/O →メモリ ) の
動作タイミング .............................................. 221
DMA フライバイ転送
(SDRAM/FCRAM → I/O) ............................... 251
DMA フライバイ転送 ( メモリ→ I/O) ............... 247
DMA フライバイ転送 ( メモリ→ I/O) の
動作タイミング .............................................. 222
I/O ピン .................................................................. 147
I/O ポートの基本ブロックダイヤグラム ..........266
I/O ポートのモード .............................................. 267
I/O マップ .............................................................. 556
外部 I/O −外部メモリ間の転送 .........................444
I/O ピン
I/O ピン .................................................................. 147
I/O ポート
I/O ポートの基本ブロックダイヤグラム ..........266
I/O ポートのモード .............................................. 267
I/O マップ
I/O マップ .............................................................. 556
607
索引
I2C
I2C バスインタフェース ..........................................5
IBCR
IBCR0/1 ( バスコントロールレジスタ ) ............473
IBSR
IBSR0/1 ( バスステータスレジスタ ) .................470
ICCR
ICCR0/1
( クロックコントロールレジスタ ) ..............480
ICE
構成例 ターゲットボード+評価チップ+
ICE ....................................................................553
ICHCR
命令キャッシュコントロールレジスタ
(ICHCR) .............................................................56
ICR
割込み制御レジスタ (ICR) の
ビット構成 ................................................81, 343
割込み制御レジスタ (ICR) のビット詳細 .........343
割込み制御レジスタ (ICR) のマッピング ...........81
ICS
インプットキャプチャコントロールレジスタ
(ICS01,ICS23) ..................................................511
IDAR
データレジスタ (IDAR0/1) ..................................486
IDBL
クロックディセーブルレジスタ (IDBL0/1) ......486
ILM
割込みレベルマスクレジスタ (ILM) ....................80
INIT
INIT 端子入力 ( 設定初期化リセット端子 ) ........94
設定初期化リセット (INIT) ...................................93
設定初期化リセット (INIT) 解除
シーケンス ........................................................96
設定初期化リセット (INIT) 状態 ........................134
Interrupt
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) ..............................................327
割込み許可レジスタ (ENIR:ENable Interrupt request
Register) ............................................................326
INTE 命令
INTE 命令の動作 .....................................................89
INT 命令
INT 命令の動作 .......................................................89
IOWR
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
の構成 ..............................................................174
DMAC 用 I/O ウェイトレジスタ (IOWR0,IOWR1)
のビット機能 ..................................................174
IPCP
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................511
ISIZE
キャッシュサイズレジスタ (ISIZE) .....................55
ISMK
7 ビットスレーブアドレスマスクレジスタ
(ISMK0/1) .........................................................485
ITBA
10 ビットスレーブアドレスレジスタ
(ITBA0/1) .........................................................481
ITMK
10 ビットスレーブアドレスマスクレジスタ
(ITMK0/1) ........................................................482
608
I フラグ
I フラグ .................................................................... 80
K
-K lib オプション
文字列操作関数使用時の -K lib オプションの
指定 .................................................................. 579
L
long double 型
double 型 /long double 型の利用 .......................... 580
M
MB91301 シリーズ
MB91301 シリーズの特長 ....................................... 2
MCRA
メモリ設定レジスタ (SDRAM/FCRAM オート
プリチャージなしモード用 )(MCRA) の構成 ..
170
MCRB
メモリ設定レジスタ (FCRAM オート
プリチャージありモード用 )(MCRB) の
構成 .................................................................. 173
MD
モード端子 (MD0 ∼ MD2) について ................... 35
MDH/MDL
乗除算結果レジスタ (MDH/MDL) .......................65
N
NC
NC,OPEN 端子の処理について ............................ 35
NMI
NMI .................................................................331, 349
外部割込み /NMI 制御部のブロック
ダイヤグラム ..................................................324
外部割込み /NMI 制御部のレジスタ一覧 ......... 325
ユーザ割込み /NMI の動作 ................................... 88
割込み /NMI に対するレベルマスク ................... 80
O
OPEN
NC,OPEN 端子の処理について ............................ 35
P
PC
プログラムカウンタ (PC) ...................................... 63
PCNH
コントロールステータスレジスタ (PCNH,PCNL)
のビット機能 ..................................................295
コントロールステータスレジスタ (PCNH:PCNH0
∼ PCNH3, PCNL:PCNL0 ∼ PCNL3) のビット
構成 .................................................................. 295
PCNL
コントロールステータスレジスタ (PCNH,PCNL)
索引
のビット機能 ..................................................295
コントロールステータスレジスタ (PCNH:PCNH0
∼ PCNH3, PCNL:PCNL0 ∼ PCNL3) のビット
構成 ..................................................................295
PCR
プルアップ抵抗制御レジスタ (PCR) の
構成 ..................................................................270
PCSR
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3)
の
ビット構成 ......................................................300
PDR
ポートデータレジスタ (PDR) の構成 ................268
PDUT
PPG デューティ設定レジスタ (PDUT:PDUT0 ∼
PDUT3) の
ビット構成 ......................................................301
PFR
ポート機能レジスタ (PFR) の機能 .....................272
ポート機能レジスタ (PFR) の構成 .....................271
PGA-179C-A03
PGA-179C-A03 の外形寸法図 .................................8
PLL
PLL 逓倍率 .............................................................102
PLL 動作許可 .........................................................102
PPG
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3)
の
ビット構成 ......................................................300
PPG 出力オール "L" またはオール "H" の
出力方法例 ......................................................310
PPG タイマ 1 チャネル分のブロック
ダイヤグラム ..................................................293
PPG タイマの全体ブロックダイヤグラム ........293
PPG タイマの特長 ................................................292
PPG タイマのレジスタ一覧 ................................294
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3)
の
ビット構成 ......................................................302
PPG デューティ設定レジスタ (PDUT:PDUT0 ∼
PDUT3) の
ビット構成 ......................................................301
PPG 動作 ................................................................307
割込み要因とタイミングチャート
(PPG 出力 : 通常極性 ) ...................................309
PPG 周期設定レジスタ
PPG 周期設定レジスタ (PCSR:PCSR0 ∼ PCSR3)
の
ビット構成 ......................................................300
PPG タイマレジスタ
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3)
の
ビット構成 ......................................................302
PPG デューティ設定レジスタ
PPG デューティ設定レジスタ (PDUT:PDUT0 ∼
PDUT3) の
ビット構成 ......................................................301
PS
プログラムステータスレジスタ (PS) ..................66
PTMR
PPG タイマレジスタ (PTMR:PTMR0 ∼ PTMR3)
の
ビット構成 ......................................................302
R
RAM
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................255
RCR
リフレッシュコントロールレジスタ (RCR) の
構成 .................................................................. 183
リフレッシュコントロールレジスタ (RCR) の
ビット機能 ......................................................183
RD
CSn → RD/WRn セットアップ ,
RD/WRn → CSn ホールド設定の
動作タイミング .............................................. 220
CSn → RD/WRn セットアップ設定 ...................228
REALOS
REALOS/FR コンフィグレータの設定 ..............540
搭載 REALOS/FR のバージョン .........................532
Register
割込み許可レジスタ (ENIR:ENable Interrupt request
Register) ...........................................................326
request Register
割込み許可レジスタ (ENIR:ENable Interrupt request
Register) ...........................................................326
RETI 命令
RETI 命令の動作 ....................................................91
RP
リターンポインタ (RP) .......................................... 64
RSRR
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) .................................... 109
RST
動作初期化リセット (RST) ................................... 93
動作初期化リセット (RST) 解除シーケンス ...... 96
動作初期化リセット (RST) 状態 ........................ 133
発振安定待ちリセット (RST) 状態 .................... 133
RUN
RUN 状態 ( 通常動作 ) .........................................132
発振安定待ち RUN 状態 ...................................... 133
S
SCR
シリアルコントロールレジスタ (SCR) のビット
構成 .................................................................. 375
シリアルコントロールレジスタ (SCR) のビット
詳細 .................................................................. 375
SDRAM
2 サイクル転送 (I/O → SDRAM/FCRAM) ......... 258
2 サイクル転送 (SDRAM/FCRAM → I/O) ......... 259
DMA フライバイ転送
(I/O → SDRAM/FCRAM) ............................... 249
DMA フライバイ転送
(SDRAM/FCRAM → I/O) ............................... 251
SDRAM/FCRAM インタフェース ...................... 233
複数領域への SDRAM/FCRAM 接続 ................. 238
メモリ設定レジスタ (SDRAM/FCRAM オート
プリチャージなしモード用 )(MCRA) の構成 ..
170
SIDR
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
609
索引
(SODR) .............................................................379
SMR
シリアルモードレジスタ (SMR) の
ビット構成 ......................................................373
シリアルモードレジスタ (SMR) の
ビット詳細 ......................................................373
SRST
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................95
SSP
システムスタックポインタ (SSP) ..................64, 82
SSR
シリアルステータスレジスタ (SSR) の
ビット構成 ......................................................380
シリアルステータスレジスタ (SSR) の
ビット詳細 ......................................................380
STCR
スタンバイ制御レジスタ (STCR) .......................112
ソフトウェアリセット
(STCR:SRST ビット書込み ) ...........................95
STOP
STOP 状態からの復帰動作について ..................333
外部割込みを使用した STOP 状態からの復帰時に
おける注意事項 ..............................................332
T
TBCR
タイムベースカウンタ制御レジスタ
(TBCR) .............................................................115
TBR
テーブルベースレジスタ (TBR) .....................64, 83
TCCS
タイマコントロールステータスレジスタ
(TCCS) ..............................................................500
TCDT
タイマデータレジスタ (TCDT) ..........................499
TCR
端子 / タイミングコントロールレジスタ (TCR) の
構成 ..................................................................180
端子 / タイミングコントロールレジスタ (TCR) の
ビット機能 ......................................................180
TMCSR
コントロールステータスレジスタ (TMCSR) の
ビット機能 ......................................................280
コントロールステータスレジスタ (TMCSR) の
ビット構成 ......................................................280
TMR
16 ビットタイマレジスタ (TMR:TMR0 ∼ TMR2)
のビット構成 ..................................................284
TMRLR
16 ビットリロードレジスタ (TMRLR:TMRLR0 ∼
TMRLR2) の
ビット構成 ......................................................285
U
UART
UART ..........................................................................4
UART のクロック選択 .........................................384
UART の使用例 .....................................................394
UART の動作モード .............................................384
610
UART の特長 .........................................................370
UART のレジスタ一覧 ........................................ 372
USP
ユーザスタックポインタ (USP) ...........................65
UTIM
U-TIMER (UTIM:UTIM0 ∼ UTIM3) .................. 317
UTIMC
U-TIMER コントロールレジスタ (UTIMC) 使用上
の注意事項 ......................................................320
U-TIMER コントロールレジスタ (UTIMC) の
ビット詳細 ......................................................318
U-TIMER コントロールレジスタ
(UTIMC:UTIMC0 ∼ UTIMC2) ...................... 318
U-TIMER
U-TIMER (UTIM:UTIM0 ∼ UTIM3) .................. 317
U-TIMER コントロールレジスタ (UTIMC) 使用上
の注意事項 ......................................................320
U-TIMER コントロールレジスタ (UTIMC) の
ビット詳細 ......................................................318
U-TIMER コントロールレジスタ
(UTIMC:UTIMC0 ∼ UTIMC2) ...................... 318
U-TIMER の概要 ................................................... 316
U-TIMER のレジスタ一覧 ................................... 317
ボーレートと U-TIMER のリロード値の
設定例 .............................................................. 396
U-TIMER コントロールレジスタ
U-TIMER コントロールレジスタ (UTIMC) 使用上
の注意事項 ......................................................320
U-TIMER コントロールレジスタ (UTIMC) の
ビット詳細 ......................................................318
U-TIMER コントロールレジスタ
(UTIMC:UTIMC0 ∼ UTIMC2) ...................... 318
UTIMR
リロードレジスタ (UTIMR:UTIMR0 ∼ UTIMR2) .
317
W
WRn
CSn → RD/WRn セットアップ ,
RD/WRn → CSn ホールド設定の
動作タイミング .............................................. 220
CSn → RD/WRn セットアップ設定 ...................228
WRn+ バイト制御タイプの動作タイミング
WRn+ バイト制御タイプの
動作タイミング .............................................. 211
あ
アクセスが連続する場合
基本タイミング
( アクセスが連続する場合 ) .........................210
アドレス
アドレスエラーの発生 ........................................ 437
アドレスマルチプレクスフォーマット
アドレスマルチプレクスフォーマット ............239
アドレスレジスタ
アドレスレジスタの機能 .................................... 429
アドレスレジスタの指定 .................................... 429
アドレスレジスタの特長 .................................... 429
アドレッシングモード
アドレッシングモードの記号 ............................587
索引
アンダフロー動作
アンダフロー動作 .................................................287
い
一時停止
一時停止 .................................................................435
インターバルタイマ
その他のインターバルタイマ .................................5
インタフェース
DMA 外部インタフェースの端子 ......................451
I2C バスインタフェース ..........................................5
SDRAM/FCRAM インタフェース ......................233
通常バスインタフェース .....................................209
バスインタフェース .................................................3
インプットキャプチャコントロールレジスタ
インプットキャプチャコントロールレジスタ
(ICS01,ICS23) ..................................................511
インプットキャプチャデータレジスタ
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................511
う
ウェイトサイクルタイミング
外部ウェイトサイクルタイミング .....................216
自動ウェイトサイクルタイミング .....................215
ウォッチドッグ
ウォッチドッグリセット .......................................95
ウォッチドッグタイマ
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) ....................................109
ウォッチドッグタイマ制御レジスタ
リセット要因レジスタ / ウォッチドッグタイマ
制御レジスタ (RSRR) ....................................109
え
エミュレータデバッガ
エミュレータデバッガ / モニタデバッガ .........584
エラー
アドレスエラーの発生 .........................................437
エラーによる停止 .................................................436
エラーの未検出 .....................................................583
コプロセッサエラートラップ ...............................91
エントリ更新
命令キャッシュのエントリ更新 ...........................60
お
オートプリチャージ
メモリ設定レジスタ (FCRAM オート
プリチャージありモード用 )(MCRB) の
構成 ..................................................................173
メモリ設定レジスタ (SDRAM/FCRAM オート
プリチャージなしモード用 )(MCRA) の構成 ..
170
オートリフレッシュ
オートリフレッシュの動作タイミング .............235
オール "L" またはオール "H"
PPG 出力オール "L" またはオール "H" の
出力方法例 ......................................................310
オブジェクト
オブジェクト ........................................................ 535
オプション
文字列操作関数使用時の -K lib オプションの
指定 .................................................................. 579
か
外形寸法図
FPT-144P-M08 の外形寸法図 ................................10
FPT-144P-M12 の外形寸法図 ..................................9
PGA-179C-A03 の外形寸法図 ................................. 8
解除
設定初期化リセット (INIT) 解除
シーケンス ........................................................96
動作初期化リセット (RST) 解除シーケンス ...... 96
外部
2 サイクル転送 (I/O →外部 ) ..............................257
2 サイクル転送 ( 外部→ I/O) ..............................256
外部 I/O
2 サイクル転送
( 内部 RAM →外部 I/O,RAM) .......................255
外部 I/O −外部メモリ間の転送
外部 I/O −外部メモリ間の転送 .........................444
外部インタフェース
DMA 外部インタフェースの端子 ...................... 451
外部ウェイト
外部ウェイトあり ................................................227
外部ウェイトなし ................................................225
外部ウェイトサイクルタイミング
外部ウェイトサイクルタイミング .................... 216
外部クロック
外部クロック使用時の注意について .................. 35
電源投入時の外部クロック入力について ..........41
外部端子転送要求
転送中に外部端子転送要求が再度入力された
場合 .................................................................. 444
外部デバイス
外部デバイスとの接続例 ............................196, 200
外部転送要求
外部転送要求端子 ................................................422
外部バスアクセス
外部バスアクセス ................................................193
外部バスクロック
外部バスクロック (CLKT) ..................................106
外部ホールド
DMA 転送中の外部ホールド要求 ...................... 433
DMA 転送要求と外部ホールド要求の
同時発生 .......................................................... 433
外部ホールド中の DMA 転送要求 .....................433
外部メモリ接続例
外部メモリ接続例 ................................................551
外部割込み
外部割込み /NMI 制御部のブロック
ダイヤグラム ..................................................324
外部割込み /NMI 制御部のレジスタ一覧 ......... 325
外部割込みの動作 ................................................329
外部割込みの動作手順 ........................................ 329
外部割込み要因レジスタ (EIRR:External Interrupt
Request Register) .................