7.8MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10121-3
FR60
32 ビット・マイクロコントローラ
MB91350A Series
ハードウェアマニュアル
FR60
32 ビット・マイクロコントローラ
MB91350A Series
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項
目をリストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
MB91350A シリーズは , 32 ビット高性能 RISC CPU をコアとした FR30/40 ファミリ CPU
をベースに , バスアクセスの強化を行った FR60 ファミリです。豊富な周辺リソースを
内蔵したシングルチップ指向のマイクロコントローラで , 高性能 / 高速な CPU 処理を
要求される組込み制御用途に最適な仕様になっています。
本書は実際にこの MB91350A シリーズを使用して製品を開発される技術者の方を対照
に , MB91350A シリーズの機能や動作について解説したものです。本書をご一読くだ
さい。なお , 各種命令の詳細については , 『インストラクション・マニュアル』をご参
照ください。
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
■ 商標
本書に記載されている社名および製品名などの固有名詞は、各社の商標または登録商
標です。
■ ライセンス
本製品には,お客様が 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.
■ 本書の全体構成
本書は , 以下に示す章 , および付録から構成されています。
第 1 章 概要
この章では , MB91350A シリーズの特長 , ブロックダイヤグラム , 外形寸法など全体
を知るための基本的なことについて説明します。
第 2 章 デバイスの取扱いについて
この章では , デバイスを使用するときの注意事項について説明します。
第 3 章 CPU および制御部
この章では , MB91350A シリーズの CPU コアの機能を知るために , アーキテクチャ,
仕様 , 命令などの基本的なことについて説明します。
第 4 章 外部バスインタフェース
この章では , 外部バスインタフェースの基本事項 , レジスタ構成 / 機能 , バス動作 ,
バスタイミングおよびレジスタの設定手順について説明します。
i
第 5 章 I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第 6 章 8/16 ビットアップダウンカウンタ / タイマ・U-TIMER
この章では , 8/16 ビットアップダウンカウンタ / タイマおよび U-TIMER の概要 , レ
ジスタの構成 / 機能 , および動作について説明します。
第 7 章 16 ビットフリーランタイマ / リロードタイマ
この章では , 16 ビットフリーランタイマおよび 16 ビットリロードタイマの概要 , レ
ジスタの構成 / 機能 , および動作について説明します。
第 8 章 PPG タイマ
この章では , PPG (Programable Pulse Generator) タイマの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
第 9 章 割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , および動作につい
て説明します。
第 10 章 外部割込み /NMI 制御
この章では , 外部割込み /NMI 制御部の概要 , レジスタの構成 / 機能 , および外部割
込み /NMI 制御部の動作について説明します。
第 11 章 REALOA 関連ハード
この章では , 遅延割込みモジュールおよびビットサーチモジュールの概要 , レジス
タ構成 / 機能 , および動作について説明します。
第 12 章 A/D コンバータ ( 直並列型 )
この章では , A/D コンバータの概要 , レジスタの構成 / 機能 , および A/D コンバータ
の動作について説明します。
第 13 章 8 ビット D/A コンバータ
この章では , 8 ビット D/A コンバータの概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
この章では , UART・SIO・インプットキャプチャ・アウトプットコンペアの概要 ,
レジスタの構成 / 機能 , および動作について説明します。
第 15 章 I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作につい
て説明します。
第 16 章 DMAC (DMA コントローラ )
この章では , DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について
説明します。
第 17 章 フラッシュメモリ
この章では , フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について
説明します。
ii
第 18 章 MB91F353A/F355A/F356B/F357B シリアル書込み接続
この章では , MB91F353A/F355A/F356B/F357B 書込み基本構成 , シリアルオンボード
書込みに使用する端子 , シリアル書込み接続例 , およびフラッシュマイコンプログ
ラマシステム構成について説明します。
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 )
この章では内蔵 RAM ( データ ) および内蔵 RAM ( 命令実行可能 ) アクセス制限機
能の概要 , レジスタの構成 / 機能 , および動作について説明します。
付録
付録として , I/O マップ , 割込みベクタ , 各 CPU ステートにおける端子状態 , および
命令一覧を記載しています。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2003-2007 FUJITSU LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
概要 ............................................................................................................ 1
特長 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 7
外形寸法図............................................................................................................................ 11
端子配列図............................................................................................................................ 13
端子機能一覧 ........................................................................................................................ 15
入出力回路形式 .................................................................................................................... 26
第2章
デバイスの取扱いについて ...................................................................... 29
2.1 デバイス取扱い上の注意 ...................................................................................................... 30
2.1.1
C コンパイラ (fcc911) ................................................................................................ 36
2.1.2
アセンブラ (fasm911) ................................................................................................ 39
2.1.3
リンカ (flnk911).......................................................................................................... 41
2.1.4
デバッガ (sim911, eml911, mon911) ......................................................................... 42
第3章
CPU および制御部 ................................................................................... 43
3.1 メモリ空間............................................................................................................................ 44
3.2 内部アーキテクチャ ............................................................................................................. 47
3.2.1
内部アーキテクチャ ................................................................................................... 48
3.2.2
命令概要 ..................................................................................................................... 52
3.3 プログラミング・モデル ...................................................................................................... 54
3.3.1
汎用レジスタ .............................................................................................................. 55
3.3.2
専用レジスタ .............................................................................................................. 56
3.4 データ構造............................................................................................................................ 62
3.5 メモリマップ ........................................................................................................................ 64
3.6 分岐命令 ............................................................................................................................... 65
3.6.1
遅延スロット付き動作 ............................................................................................... 66
3.6.2
遅延スロットなし動作 ............................................................................................... 68
3.7 EIT ( 例外・割込み・トラップ ) ........................................................................................... 69
3.7.1
EIT の割込みレベル.................................................................................................... 70
3.7.2
ICR (Interrupt Control Register).................................................................................. 72
3.7.3
SSP (System Stack Pointer)....................................................................................... 73
3.7.4
3.7.5
割込みスタック .......................................................................................................... 74
TBR (Table Base Register) ........................................................................................ 75
3.7.6
EIT ベクタテーブル.................................................................................................... 76
3.7.7
多重 EIT 処理.............................................................................................................. 79
3.7.8
動作 ............................................................................................................................ 81
3.8 動作モード............................................................................................................................ 85
3.8.1
バスモード ................................................................................................................. 86
3.8.2
モード設定 ................................................................................................................. 87
3.9 リセット ( デバイス初期化 ) ................................................................................................. 89
3.9.1
リセットレベル .......................................................................................................... 90
3.9.2
リセット要因 .............................................................................................................. 91
3.9.3
リセットシーケンス ................................................................................................... 93
3.9.4
発振安定待ち時間....................................................................................................... 94
v
3.9.5
リセット動作モード ................................................................................................... 96
3.10 クロック生成制御 ................................................................................................................. 98
3.10.1
PLL 制御 ..................................................................................................................... 99
3.10.2
発振安定待ち・PLL ロック待ち時間........................................................................ 101
3.10.3
クロック分配 ............................................................................................................ 103
3.10.4
クロック分周 ............................................................................................................ 105
3.10.5
クロック生成制御部のブロックダイヤグラム.......................................................... 106
3.10.6
クロック生成制御部のレジスタ詳細説明................................................................. 107
3.10.7
クロック制御部が持つ周辺回路 ............................................................................... 122
3.11 デバイス状態制御 ............................................................................................................... 126
3.11.1
デバイス状態と各遷移 ............................................................................................. 127
3.11.2
低消費電力モード..................................................................................................... 131
3.12 時計タイマ.......................................................................................................................... 136
3.13 メイン発振安定待ちタイマ................................................................................................. 142
3.14 周辺停止制御 ...................................................................................................................... 147
第4章
外部バスインタフェース........................................................................ 151
4.1 外部バスインタフェースの特長 ......................................................................................... 152
4.2 外部バスインタフェースのレジスタ .................................................................................. 156
4.2.1
ASR0 ∼ ASR3 (Area Select Register) ..................................................................... 157
4.2.2
ACR0 ∼ ACR7 (Area Configuration Register) ......................................................... 158
4.2.3
AWR0 ∼ AWR7 (Area Wait Register)...................................................................... 164
4.2.4
IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) ..................................................... 170
4.2.5
CSER (Chip Select Enable register)......................................................................... 172
4.2.6
TCR (Terminal and timing Control Register) ............................................................ 173
4.3 チップセレクト領域 ........................................................................................................... 175
4.4 エンディアンとバスアクセス ............................................................................................. 176
4.4.1
データバス幅と制御信号との関係............................................................................ 177
4.4.2
ビッグエンディアンのバスアクセス ........................................................................ 178
4.4.3
リトルエンディアンのバスアクセス ........................................................................ 183
4.4.4
外部アクセス ............................................................................................................ 187
4.5 通常バスインタフェース .................................................................................................... 191
4.6 アドレス / データマルチプレックスインタフェース.......................................................... 201
4.7 プリフェッチ動作 ............................................................................................................... 205
4.8 DMA アクセス .................................................................................................................... 209
4.9 バスアービトレーション .................................................................................................... 215
4.10 レジスタ設定手順 ............................................................................................................... 217
第5章
5.1
5.2
I/O ポート............................................................................................... 219
I/O ポートの概要 ................................................................................................................ 220
I/O ポートのレジスタ ......................................................................................................... 222
第6章
8/16 ビットアップダウンカウンタ / タイマ・U-TIMER ........................ 231
6.1 8/16 ビットアップダウンカウンタ / タイマ ....................................................................... 232
6.1.1
8/16 ビットアップダウンカウンタ / タイマの概要 .................................................. 233
6.1.2
8/16 ビットアップダウンカウンタ / タイマのレジスタ ........................................... 238
6.1.3
8/16 ビットアップダウンカウンタ / タイマの動作説明 ........................................... 244
6.2 U-TIMER............................................................................................................................. 252
6.2.1
U-TIMER の概要....................................................................................................... 253
vi
6.2.2
6.2.3
第7章
U-TIMER のレジスタ................................................................................................ 254
U-TIMER の動作説明................................................................................................ 257
16 ビットフリーランタイマ・16 ビットリロードタイマ ...................... 259
7.1 16 ビットフリーランタイマ ............................................................................................... 260
7.1.1
16 ビットフリーランタイマの構造 .......................................................................... 261
7.1.2
16 ビットフリーランタイマのレジスタ ................................................................... 262
7.1.3
16 ビットフリーランタイマの動作説明 ................................................................... 266
7.2 16 ビットリロードタイマ................................................................................................... 269
7.2.1
16 ビットリロードタイマの構造.............................................................................. 270
7.2.2
16 ビットリロードタイマのレジスタ....................................................................... 272
7.2.3
16 ビットリロードレジスタの動作説明 ................................................................... 275
第8章
PPG タイマ ............................................................................................ 279
8.1 PPG タイマの概要.............................................................................................................. 280
8.2 PPG タイマのレジスタ ...................................................................................................... 283
8.2.1
コントロールステータスレジスタ (PCNH/PCNL) ................................................... 284
8.2.2
PPG 周期設定レジスタ (PCSR) ............................................................................... 287
8.2.3
PPG デューティ設定レジスタ (PDUT) .................................................................... 288
8.2.4
PPG タイマレジスタ (PTMR) .................................................................................. 289
8.2.5
ジェネラルコントロールレジスタ 10 (GCN10) ....................................................... 290
8.2.6
ジェネラルコントロールレジスタ 20 (GCN20) ....................................................... 292
8.3 PPG タイマの動作説明 ...................................................................................................... 293
8.3.1
PWM 動作タイミングチャート ................................................................................ 294
8.3.2
ワンショット動作タイミングチャート .................................................................... 295
8.3.3
割込み要因とタイミングチャート (PPG 出力は , 通常極性 )................................... 296
8.3.4
PPG 出力オール "L" またはオール "H" の出力方法例............................................... 297
8.3.5
ジェネラルコントロールレジスタを使った複数チャネル起動 ................................ 298
第9章
割込みコントローラ............................................................................... 299
9.1 割込みコントローラの概要................................................................................................. 300
9.2 割込みコントローラのレジスタ ......................................................................................... 303
9.2.1
割込み制御レジスタ (ICR)........................................................................................ 304
9.2.2
ホールドリクエスト取下げ要求レジスタ (HRCL).................................................... 305
9.3 割込みコントローラの動作説明 ......................................................................................... 306
第 10 章
外部割込み・NMI 制御部 ....................................................................... 313
10.1 外部割込み・NMI 制御部の概要 ......................................................................................... 314
10.2 外部割込み・NMI 制御部のレジスタ.................................................................................. 316
10.2.1
割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) .......................... 317
10.2.2
外部割込み要因レジスタ (EIRRn: External Interrupt Request Register).................. 318
10.2.3
外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register) ................. 319
10.3 外部割込み・NMI 制御部の動作説明.................................................................................. 320
第 11 章
REALOS 関連ハード ............................................................................. 323
11.1 遅延割込みモジュール........................................................................................................ 324
11.1.1
遅延割込みモジュールの概要................................................................................... 325
11.1.2
遅延割込みモジュールのレジスタ............................................................................ 326
11.1.3
遅延割込みモジュールの動作説明............................................................................ 327
vii
11.2 ビットサーチモジュール .................................................................................................... 328
11.2.1
ビットサーチモジュールの概要 ............................................................................... 329
11.2.2
ビットサーチモジュールのレジスタ ........................................................................ 330
11.2.3
ビットサーチモジュールの動作説明 ........................................................................ 332
第 12 章
A/D コンバータ ...................................................................................... 335
12.1 A/D コンバータの概要 ........................................................................................................ 336
12.2 A/D コンバータのレジスタ................................................................................................. 338
12.2.1
コントロール・ステータスレジスタ (ADCS1)......................................................... 339
12.2.2
コントロール・ステータスレジスタ (ADCS2)......................................................... 341
12.2.3
変換時間設定レジスタ (ADCT) ................................................................................ 343
12.2.4
データレジスタ (ADTHx, ADTLx) ............................................................................ 345
12.3 A/D コンバータの動作説明................................................................................................. 346
第 13 章
8 ビット D/A コンバータ........................................................................ 349
13.1 8 ビット D/A コンバータの概要 ......................................................................................... 350
13.2 8 ビット D/A コンバータのレジスタ .................................................................................. 352
13.3 8 ビット D/A コンバータの動作説明 .................................................................................. 354
第 14 章
UART・SIO・インプットキャプチャ・アウトプットコンペア ............ 355
14.1 UART .................................................................................................................................. 356
14.1.1
UART の特長 ............................................................................................................ 357
14.1.2
UART のレジスタ..................................................................................................... 359
14.1.3
UART の動作説明..................................................................................................... 366
14.1.4
応用例....................................................................................................................... 372
14.2 拡張 I/O シリアルインタフェース (SIO)............................................................................. 375
14.2.1
拡張 I/O シリアルインタフェース (SIO) 概要 .......................................................... 376
14.2.2
拡張 I/O シリアルインタフェースのレジスタ .......................................................... 378
14.2.3
拡張 I/O シリアルインタフェース (SIO) の動作説明................................................ 383
14.3 インプットキャプチャ........................................................................................................ 389
14.3.1
インプットキャプチャの概要................................................................................... 390
14.3.2
インプットキャプチャのレジスタ............................................................................ 392
14.3.3
インプットキャプチャの動作説明............................................................................ 394
14.4 アウトプットコンペア........................................................................................................ 395
14.4.1
アウトプットコンペアの特長................................................................................... 396
14.4.2
アウトプットコンペアのレジスタ............................................................................ 398
14.4.3
アウトプットコンペアの動作説明............................................................................ 401
第 15 章
I2C インタフェース ................................................................................ 405
15.1 I2C インタフェースの概要.................................................................................................. 406
15.2 I2C インタフェースのレジスタ .......................................................................................... 410
15.2.1
バスステータスレジスタ (IBSR) .............................................................................. 411
15.2.2
バスコントロールレジスタ (IBCR) .......................................................................... 414
15.2.3
クロックコントロールレジスタ (ICCR) ................................................................... 420
15.2.4
10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 422
15.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)................................................ 423
15.2.6
7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 425
15.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 426
15.2.8
データレジスタ (IDAR) ............................................................................................ 427
viii
15.2.9
クロックディセーブルレジスタ (IDBL).................................................................... 428
2
15.3 I C インタフェースの動作説明 .......................................................................................... 429
15.4 動作フローチャート ........................................................................................................... 434
第 16 章
DMAC (DMA コントローラ ) ................................................................. 437
16.1 概要 .................................................................................................................................... 438
16.2 レジスタ詳細説明 ............................................................................................................... 441
16.2.1
DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジスタ A ................................... 442
16.2.2
DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4)............................................................................................ 447
16.2.3
DMAC-ch0, 1, 2, 3, 4 転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4)........................................................ 452
16.2.4
DMAC-ch0, 1, 2, 3, 4 DMAC 全体制御レジスタ....................................................... 454
16.3 動作説明 ............................................................................................................................. 456
16.3.1
動作概要 ................................................................................................................... 457
16.3.2
転送要求の設定 ........................................................................................................ 460
16.3.3
転送シーケンス ........................................................................................................ 462
16.3.4
DMA 転送全般 .......................................................................................................... 466
16.3.5
アドレッシングモード ............................................................................................. 468
16.3.6
データの種類 ............................................................................................................ 469
16.3.7
転送回数制御 ............................................................................................................ 470
16.3.8
CPU 制御.................................................................................................................. 471
16.3.9
ホールド調停 ............................................................................................................ 472
16.3.10
動作開始 ................................................................................................................... 473
16.3.11
転送要求の受付けと転送 .......................................................................................... 474
16.3.12
DMA による周辺割込みクリア ................................................................................. 475
16.3.13
一時停止 ................................................................................................................... 476
16.3.14
動作終了 / 停止 ......................................................................................................... 477
16.3.15
エラーによる停止..................................................................................................... 478
16.3.16
DMAC 割込み制御 .................................................................................................... 479
16.3.17
スリープ中の DMA 転送 ........................................................................................... 480
16.3.18
チャネル選択と制御 ................................................................................................. 481
16.3.19
外部端子と内部動作タイミングに関する補足.......................................................... 483
16.4 動作フロー.......................................................................................................................... 487
16.5 データパス.......................................................................................................................... 490
16.6 DMA 外部インタフェース .................................................................................................. 493
第 17 章
フラッシュメモリ .................................................................................. 499
17.1 フラッシュメモリの概要 .................................................................................................... 500
17.2 フラッシュメモリのレジスタ ............................................................................................. 506
17.2.1
フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR.................... 507
17.2.2
ウェイトレジスタ : FLWC........................................................................................ 509
17.3 フラッシュメモリの動作説明 ............................................................................................. 511
17.4 フラッシュメモリ自動アルゴリズム .................................................................................. 513
17.4.1
コマンドシーケンス ................................................................................................. 514
17.4.2
自動アルゴリズム実行状態の確認............................................................................ 519
17.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 524
17.5.1
読出し / リセット状態にする.................................................................................... 525
17.5.2
データ書込みを行う ................................................................................................. 526
ix
17.5.3
17.5.4
17.5.5
17.5.6
第 18 章
18.1
18.2
18.3
18.4
18.5
データ消去を行う ( チップ消去 ).............................................................................. 528
データ消去を行う ( セクタ消去 ).............................................................................. 529
セクタ消去を一時停止する ...................................................................................... 531
セクタ消去を再開する ............................................................................................. 532
MB91F353A/F355A/F356B/F357B シリアル書込み接続 ...................... 533
MB91F353A/F355A/F356B/F357B 書込み基本構成........................................................... 534
富士通標準シリアルオンボード書込みに使用する端子 ..................................................... 535
シリアル書込み接続例........................................................................................................ 536
フラッシュマイコンプログラマシステム構成.................................................................... 538
その他の注意事項 ............................................................................................................... 539
第 19 章
内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
..................................................................................................... 541
19.1 概要 .................................................................................................................................... 542
19.2 レジスタ詳細説明 ............................................................................................................... 543
19.3 動作説明 ............................................................................................................................. 545
付録
付録 A
付録 B
付録 C
付録 D
索引
............................................................................................................... 547
I/O マップ ...................................................................................................................... 548
割込みベクタ ................................................................................................................. 559
各 CPU ステートにおける端子状態 .............................................................................. 561
命令一覧表..................................................................................................................... 567
............................................................................................................... 583
x
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
-
-
品種 を変更
(MB91F353A/352A/353A → MB91F353A/351A/352A/353A)
(MB91F35 → MB91F353A/351A/352A/353A)
(MB91F35A → MB91F353A/351A/352A/353A)
(MB91F355A/353A → MB91F353A/F355A/F356B/F357B)
(MB91F355A/355A/354A → MB91F355A/355A/354A/F356B/
F357B)
-
-
レジスタ名を変更
(UTIM(U-TIMER) → U-TIMER レジスタ (UTIM))
(UTIMR(reload register) → リロードレジスタ (UTIMR)
(UTIMC(U-TIMer Control register) → U-TIMER コントロールレ
ジスタ (UTIMC))
-
-
フラッシュメモリ を変更
(256 キロバイト → 256K バイト /128K バイト )
(512 キロバイト → 512K バイト /256K バイト )
-
-
用語を統一
(FR シリーズ → FR ファミリ )
(FR30 シリーズ → FR30 ファミリ )
(Advanced Micro Device 社 → Advanced Micro Devices 社 )
3
1.1 特長
表 1.1-1 内蔵メモリの詳細 を変更
(MB91351A の列を追加 )
(MB91F356B と MB91F357B の列を追加 )
4
■ A/D コンバータ を変更
( 変換時間 : 1.48ms → 変換時間 : 1.48µs)
5
■ その他の特長 を変更
(LQFP-176( リードピッチ 0.50 mm) → MB91F355A/F356B/
F357B/355A/354A:LQFP-176( リードピッチ 0.50 mm)
6
表 1.1-2 機能比較 : 内蔵メモリ ( メモリ容量展開品 ,
メモリ構成については検討中 ) を変更
(MB91351A の列を追加 )
7, 8
1.2 ブロックダイヤグ
ラム
図 1.2-1 MB91F353A/353A/352A/351A のブロックダイヤグラ
ム を変更
9, 10
1.2 ブロックダイヤグ
ラム
図 1.2-2 MB91F356B/F357B/F355A/355A/354A の
ブロックダイヤグラム を変更
14
1.4 端子配列図
■ MB91352A/MB91F353A(LQFP-120) 端子配列図 を削除
24
1.5 端子機能一覧
表 1.5-1 端子機能一覧 の 端子名 BRQ を変更
( 外部バスを開放したいときに 1 を入力します。→
外部バスを開放したいときに "H" を入力します。)
xi
ページ
44
変更内容(詳細は本文を参照してください。)
3.1 メモリ空間
図 3.1-1 MB91F355A/MB91355A/MB91F353A/MB91353A/
MB91F357B のメモリマップ を変更
( 内蔵 ROM → 内蔵 RAM)
図 3.1-2 MB91351A のメモリマップ を追加
45
図 3.1-3 MB91354A/MB91352A のメモリマップ を変更
( 内蔵 ROM → 内蔵 RAM)
図 3.1-4 MB91F356B のメモリマップ を追加
46
■ メモリマップ を変更
(MB91V350A では,MB91355A/F355A/353A/F353A メモリ
マップにおいて内蔵 ROM512KB の領域がエミュレーション
RAM となります。また,内蔵 RAM(Instruction) が 8KB から
16KB に拡張されています。→
MB91V350A では , MB91355A/F355A/353A/F353A/F357B メモ
リマップにおいて内蔵 ROM512K バイトの領域が ,
MB91F356B メモリマップにおいて内蔵 ROM256K バイトの領
域が , エミュレーション RAM となります。また , 内蔵
RAM(Instruction) が 8K バイトから 16K バイトに拡張されてい
ます。)
163
4.2.2 ACR0 ∼ ACR7
(Area Configuration
Register)
<注意事項> を変更
(ASR, ACR はワードアクセスで同時設定してください。ASR,
ACR をハーフワードでアクセスする場合には , ASR 設定後 ,
ACR を設定してください。を追加 )
217
4.10 レジスタ設定手順
■ 外部バスインタフェースの設定手順 を変更
226
∼
229
5.2 I/O ポートの
レジスタ
表 5.2-1 PFR レジスタの初期値と機能 を変更
(*2 を削除 )
232
6.1 8/16 ビットアップ
ダウンカウンタ /
タイマ
■ 8/16 ビットアップダウンカウンタ / タイマの概要 を変更
(MB91F355A/355A/354A/V350A → MB91F355A/355A/354A/
F356B/F357B)
254
6.2.2 U-TIMER の
レジスタ
■ リロードレジスタ (UTIMR) を変更
( <注意事項> を追加 )
257
6.2.3 U-TIMER の
動作説明
■ ボーレートの計算 を変更
( <注意事項> を追加 )
320
10.3 外部割込み・NMI
制御部の動作説明
■ 外部割込みの動作手順 を変更
(1. 外部割込み入力として使用する端子と兼用する汎用入出力
ポートを入力ポートに設定する。を追加 )
354
13.3 8 ビット D/A
コンバータの動作説明
表 13.3-1 D/A コンバータの出力電圧の論理式 を変更
(DADR1 DADR2 DADR3 の設定値 → DADR0 DADR1 DADR2
の設定値 )
368
14.1.3 UART の
動作説明
図 14.1-3 転送データフォーマット ( モード 2) を変更
xii
ページ
変更内容(詳細は本文を参照してください。)
378,
379
14.2.2 拡張 I/O シリア
ルインタフェースの
レジスタ
[ ビット 15, 14, 13] シフトクロック選択ビット (SMD2, SMD1,
SMD0:Serial Shift Clock モード ) を変更
416
15.2.2 バスコントロー
ルレジスタ (IBCR)
[ ビット 12] MSS (Master Slave Select) を変更
( <注意事項> を追加 )
417
∼
419
15.2.2 バスコントロー
ルレジスタ (IBCR)
■ バスコントロールレジスタ (IBCR) を変更
( <注意事項> を変更 )
445
16.2.1 DMAC-ch0, 1, 2,
3, 4 コントロール /
ステータスレジスタ A
[ ビット 28 ∼ 24] IS4 ∼ 0(Input Select): 転送要因選択 を変更
458
16.3.1 動作概要
● フライバイ転送 (I/O →メモリ ) ( 注意事項 : MB91F353A/
351A/352A/353A はフライバイ転送不可能 ) を変更
(MB91350A でのフライバイ転送のアクセス領域は必ず外部領
域でなければいけません。→ MB91F355A/F356B/F357B/355A
でのフライバイ転送のアクセス領域は必ず外部領域でなけれ
ばいけません。)
500
17.1 フラッシュメモリ
の概要
17.1 Outline of Flash Memory の 要約 を変更
503
17.1 フラッシュメモリ
の概要
図 17.1-3 MB91F356B フラッシュメモリのメモリマップ を
追加
504,
505
17.1 フラッシュメモリ
の概要
■ フラッシュメモリのセクタアドレス表 を変更
510
17.2.2 ウェイトレジス
タ : FLWC
[ ビット 2 ∼ 0] WTC2, 1, 0:Wait Cycle ビット を変更
526
17.5.2 データ書込みを
行う
■ アドレス指定方法 を変更
534
18.1 MB91F353A/
F355A/F356B/F357B 書
込み基本構成
■ MB91F353A/F355A/F356B/F357B 書込み基本構成 を変更
( シングルチップモードで動作するプログラムあるいは , 内
ROM 外バスモードで動作するプログラムのどちらかを選択し
て書き込むことができます。を追加 )
535
18.2 富士通標準シリア
ルオンボード書込みに
使用する端子
表 18.2-1 富士通標準シリアルオンボード書込みに使用する端
子の機能 を変更
539
18.5 その他の注意事項
● 原発振クロック周波数 を変更
(4.0MHz から 12.0MH → 10.0MHz から 12.5MHz)
● フラッシュメモリ書込み時のポート状態 を変更
( リセット状態 → シングルチップモードの初期化状態 )
550
付録 A I/O マップ
付表 A-1 I/O マップ の アドレス 00009CH を変更
(*1 を追加 )
変更箇所は , 本文中のページ左側の│によって示しています。
xiii
xiv
第1章
概要
FR ファミリは 32 ビット高性能 RISC CPU を使用
し , 高性能 / 高速な CPU 処理を要求される組込み
制御用に各種 I/O リソースやバス制御機構を内蔵し
た , 標準シングルチップマイクロコントローラで
す。
本品種は , FR30/40 ファミリ CPU をベースにバス
アクセスの強化を行った FR60 ファミリです。豊
富な周辺リソースを内蔵した , シングルチップ指向
のマイクロコントローラです。
1.1 特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能一覧
1.6 入出力回路形式
1
第 1 章 概要
1.1
特長
FR60 ファミリの特長を説明します。
■ FR CPU の特長
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 最大動作周波数 50MHz[PLL 使用 : 原振 12.5MHz の場合 ]
• 16 ビット固定長命令 ( 基本命令 ) , 1 命令 /1 サイクル
• メモリ - メモリ間転送 , ビット処理 , バレルシフト等の命令
組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令
高級言語対応命令
• レジスタインターロック機能
アセンブラ記述の容易化
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付き 32 ビット乗算: 5 サイクル
- 符号付き 16 ビット乗算: 3 サイクル
• 割込み (PC, PS の退避 ) : 6 サイクル , 16 プライオリティレベル
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• FR ファミリとの命令互換
■ バスインタフェース
• 最大動作周波数 25MHz
• 24 ビットアドレスフル出力可能 (16M バイト空間 )
(21 ビットアドレスフル出力可能 (2M バイト空間 ) : MB91F353A/351A/352A/353A)
• 8/16 ビットデータ出力
• プリフェッチバッファ搭載
• 未使用データ / アドレス端子は汎用入出力ポートとして使用可能
• 最小 64K バイト単位で設定可能な完全独立な 4 領域のチップセレクト出力が可能
• 各種メモリに対するインタフェースのサポート
SRAM, ROM/FLASH
ページモード FLASH ROM, ページモード ROM インタフェース
• 基本バスサイクル : 2 サイクル
• 領域ごとに , プログラマブルでウェイト挿入可能な自動ウェイトサイクル発生機構
• RDY 入力による外部ウェイトサイクル
• DMA は , 独立した I/O 用ウェイト制御が可能なフライバイ転送をサポート
(MB91F353A/351A/352A/353A はフライバイ転送使用不可能 )
2
第 1 章 概要
■ 内蔵メモリ
表 1.1-1 に内蔵メモリの詳細を示します。
表 1.1-1 内蔵メモリの詳細
メモリ
ROM
MB91V350A MB91F355A MB91F356B MB91F357B MB91355A MB91354A MB91F353A MB91353A MB91352A MB91351A
なし
512K バイト
256K バイト
512K バイト 512K バイト 384K バイト 512K バイト 512K バイト 384K バイト 384K バイト
RAM
( スタック )
16K バイト
16K バイト
16K バイト
16K バイト
16K バイト
8K バイト
16K バイト
16K バイト
8K バイト
16K バイト
RAM
( 命令実行
可能 )
16K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
■ DMAC (DMA Controller)
• 同時に最大 5 チャネルの動作が可能 ( 外部→外部は 3 チャネル )
• 3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア )
• 起動要因はソフトウェアにて選択可能 (UART0, 1, 2 からの起動可能 )
• アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
• 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
• フライバイ転送サポート ( 外部 I/O とメモリ間 )
• 転送データサイズは 8/16/32 ビットから選択可能
• 多バイト転送可能 ( ソフトにて決定 )
• DMAC ディスクリプタは I/O 領域 (200H ∼ 240H, 1000H ∼ 1024H)
(MB91F353A/351A/352A/353A は外部インタフェースなし。)
外部端子転送不可能。デマンド転送 , フライバイ転送使用不可能
■ ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ
■ 各種タイマ
• 16 ビットリロードタイマ 4 チャネル (REALOS 用 1 チャネルを含む )
内部クロックは 2/8/32 分周から選択可能
(ch 3 のみ , 64/128 分周も選択可能 )
• 16 ビットフリーランタイマ 1 チャネル
アウトプットコンペア : 8 チャネル (MB91F353A/351A/352A/353A: 2 チャネル )
インプットキャプチャ : 4 チャネル
• 16 ビット PPG タイマ : 6 チャネル (MB91F353A/351A/352A/353A: 3 チャネル )
■ UART
• UART 全二重ダブルバッファ
• 5 チャネル , (MB91F353A/351A/352A/353A: 4 チャネル )
• パリティあり / なし選択可能
• 非同期 ( 調歩同期 ) , CLK 同期通信の選択可能
• 専用ボーレート用タイマ内蔵
• 外部クロックを転送クロックとして使用可能
• 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン )
• 115 kbps 対応
3
第 1 章 概要
■ SIO
• 8 ビットデータのシリアル転送
• 3 チャネル , (MB91F353A/351A/352A/353A: 2 チャネル )
• シフトクロックは内部 3 種類 , 外部 1 種類から選択
• シフト方向の LSB/MSB 切換え
■ 割込みコントローラ
• 外部割込み合計
- 17 本
- (MB91F353A/351A/352A/353A: (9) 本 )
( マスク不可能割込み端子 1 本と通常割込み端子 16/ (8) 本
ストップ時のウェイクアップ用として使用可能 )
• 内部ペリフェラルからの割込み
• マスク不可能割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル )
■ D/A コンバータ
8 ビット分解能 , 3 チャネル , (MB91F353A/351A/352A/353A: 2 チャネル )
■ A/D コンバータ
• 10 ビット分解能 , 12 チャネル , (MB91F353A/351A/352A/353A: 8 チャネル )
• 直並列変換型
変換時間 : 1.48µs
• 変換モード ( 単発変換モード , 連続変換モード )
• 起動要因 ( ソフト / 外部トリガ / ペリフェラル割込み )
■ その他のインターバルタイマ / カウンタ
• 8/16 ビットアップダウンカウンタ
MB91F353A/351A/352A/353A は 8 ビットアップダウンカウンタのみ
• 16 ビットタイマ (U-TIMER), 5 チャネル , (MB91F353A/351A/352A/353A: 4 チャネル )
• ウォッチドッグタイマ
■ I2C* バスインタフェース (400kbps 対応 )
• 1 チャネルマスタ / スレーブ送受信
- アービトレーション機能 , クロック同期化機能
■ I/O ポート
• 3V 入出力ポート
( ただし外部割込み兼用ポート (16 本 , MB91F353A/351A/352A/353A は 8 本 ) は 5V
入力対応 )
• 最大 126 ポート (MB91F353A/351A/352A/353A: 最大 84 ポート )
4
第 1 章 概要
■ その他の特長
• クロックソースとして発振回路を内蔵し , PLL 逓倍も選択可能
• リセット端子として INIT を用意
(INIT 端子解除後 , 発振安定待ちなしですぐに CPU 動作 )
• その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり
• 低消費電力モードとしてストップモードとスリープモードをサポート
32kHz CPU 動作による低消費電力動作が可能
• ギア機能
• タイムベースタイマ内蔵
• パッケージ MB91F355A/F356B/F357B/355A/354A: QFP-176( リードピッチ 0.50 mm)
MB91F353A/351A/352A/353A:
LQFP-120(リードピッチ0.50 mm)
• CMOS テクノロジ (0.35 µm)
• 電源電圧 : 3.3V ± 0.3V
*: I2C ライセンス
本製品には , お客様が 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.
5
第 1 章 概要
■ 機能比較
表 1.1-2 に FR60 ファミリの機能比較を示します。
表 1.1-2 機能比較 : 内蔵メモリ ( メモリ容量展開品 , メモリ構成については検討中 )
機能
ROM
MB91F355A
MB91F353A
MB91V350A MB91355A MB91F356B MB91354A
MB91352A MB91351A
MB91353A
MB91F357B
なし
512K バイト
256K バイト 384K バイト 512K バイト 384K バイト 384K バイト
RAM( スタック )
16K バイト
16K バイト
16K バイト
8K バイト
16K バイト
8K バイト
16K バイト
RAM( 命令実行可能 )
16K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
DMAC
5ch
5ch
5ch
5ch
5ch
5ch
5ch
A/D 入力
12ch
12ch
12ch
12ch
8ch
8ch
8ch
D/A 入力
3ch
3ch
3ch
3ch
2ch
2ch
2ch
UART
5ch
5ch
5ch
5ch
4ch
4ch
4ch
U-TIMER
5ch
5ch
5ch
5ch
4ch
4ch
4ch
SIO
3ch
3ch
3ch
3ch
2ch
2ch
2ch
外部割込み
16ch
16ch
16ch
16ch
8ch
8ch
8ch
フリーランタイマ
PPG
1ch
1ch
1ch
1ch
1ch
1ch
1ch
6ch
6ch
6ch
6ch
3ch
3ch
3ch
リロードタイマ
4ch
4ch
4ch
4ch
4ch
4ch
4ch
インプットキャプチャ
4ch
4ch
4ch
4ch
4ch
4ch
4ch
アウトプットコンペア
8ch
8ch
8ch
8ch
2ch
2ch
2ch
8 ビットアップダウン
カウンタ
2ch
2ch
2ch
2ch
1ch
1ch
1ch
I2C
1ch
1ch
1ch
1ch
1ch
1ch
1ch
端子数
279
176
176
176
120
120
120
6
第 1 章 概要
1.2
ブロックダイヤグラム
図 1.2-1 に MB91F353A/353A/352A/351A の , 図 1.2-2 に MB91F356B/F357B/
F355A/355A/354A のブロックダイヤグラムを示します。
■ MB91F353A/353A/352A/351A のブロックダイヤグラム
図 1.2-1 MB91F353A/353A/352A/351A のブロックダイヤグラム
FR CPU
コア
32
32
DMAC 5チャネル
ビットサーチ
RAM (スタック)
ROM/Flash
A20~A00
D31~D16
バスコンバータ
RAM (命令実行可能)
32
RD
WR1,WR0
32
外部メモリ I/F
32
X0,X1
MD0~MD2
INIT
X0A,X1A
クロック
制御
RDY
BRQ
BGRNT
SYSCLK
16
アダプタ
時計タイマ
割込み
コントローラ
INT0~INT7
NMI
8チャネル
外部割込み
SI0~SI3
SO0~SO3
SCK0~SCK3
4チャネル
UART
4チャネル
U-TIMER
SI6~SI7
SO6~SO7
SCK6~SCK7
2チャネル
4
SIO
SIO
AN0~AN7
ATG
AVRH,AVCC
AVSS/AVRL
8チャネル
A/D
DA0~DA1
DAVC,DAVS
2チャネル
D/A
ポート
16
3チャネル
16 ビットPPG
4チャネル
リロードタイマ
PORT
TRG0~TRG4
PPGO,PPG2,
PPG4
フリーランタイマ
FRCK
4チャネル
インプットキャプチャ
IN0~IN3
2チャネル
アウトプットコンペア
OC0,OC2
1チャネル
I2C
1チャネル
アップダウンカウンタ
SDA
SCL
AIN0
BIN0
ZIN0
7
第 1 章 概要
MB91F353A
MB91353A
MB91352A
MB91351A
Flash 512K バイト
512K バイト
384K バイト
384K バイト
RAM ( スタック )
16K バイト
16K バイト
8K バイト
16K バイト
RAM
( 命令実行可能 )
8K バイト
8K バイト
8K バイト
8K バイト
ROM/Flash
8
第 1 章 概要
■ MB91F356B/F357B/F355A/355A/354A のブロックダイヤグラム
図 1.2-2 MB91F356B/F357B/F355A/355A/354A のブロックダイヤグラム
FR CPU
コア
32
32
DMAC 5チャネル
ビットサーチ
DREQ0~DREQ2
DACK0~DACK2
EOP/DSTP0~DSTP2
IOWR
IORD
RAM(スタック)
ROM/Flash 512KB
(F356Bのみ 256KB)
A23~A00
D31~D16
バスコンバータ
RAM (命令実行可能)
32
RD
WR1,WR0
32
外部メモリ I/F
32
X0,X1
MD0~MD2
INIT
X0A,X1A
クロック
制御
時計タイマ
割込み
コントローラ
INT0~INT15
NMI
16チャネル
外部割込み
SI0~SI4
SO0~SO4
SCK0~SCK4
5チャネル
UART
5チャネル
U-TIMER
SI5~SI7
SO5~SO7
SCK5~SCK7
43チャネル
SIO
SIO
AN0~AN11
ATG
AVRH,AVCC
AVSS/AVRL
12チャネル
A/D
DA0~DA2
DAVC,DAVS
3チャネル
D/A
RDY
BRQ
BGRNT
SYSCLK
16
アダプタ
16
ポート
6チャネル
16ビットPRG
PORT
TRG0~TRG5
PPGO~PPG5
4チャネル
リロードタイマ
TOT0~TOT3
フリーランタイマ
FRCK
4チャネル
インプットキャプチャ
IN0~IN3
2チャネル
アウトプットコンペア
OC0~OC7
1チャネル
I2C
SDA
SCL
1チャネル
アップダウンカウンタ
AIN0,AIN1
BIN0,BIN1
ZIN0,ZIN1
9
第 1 章 概要
MB91F356B
MB91F357B
MB91F355A
MB91355A
MB91354A
ROM/Flash
Flash
256K バイト
Flash
512K バイト
Flash
512K バイト
512K バイト
384K バイト
RAM ( スタック )
16K バイト
16K バイト
16K バイト
16K バイト
8K バイト
RAM
( 命令実行可能 )
8K バイト
8K バイト
8K バイト
8K バイト
8K バイト
10
第 1 章 概要
外形寸法図
1.3
図 1.3-1 , 図 1.3-2 に外形寸法図を示します。
■ MB91F355A/F356B/F357B/354A/355A 外形寸法図
図 1.3-1 MB91F355A/F356B/F357B/354A/355A 外形寸法図
プラスチック・LQFP, 176 ピン
(FPT-176P-M02)
プラスチック・LQFP, 176 ピン
(FPT-176P-M02)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
24.0 × 24.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
1.86g
コード(参考)
P-LFQFP176-24×24-0.50
注 1)* 印寸法はレジン残りを含まず。レジン残りは片側 +0.25(.010)MAX
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
26.00±0.20(1.024±.008)SQ
* 24.00±0.10(.945±.004)SQ
0.145±0.055
(.006±.002)
132
89
133
88
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
0°~8°
(Mounting height)
0.10±0.10
(.004±.004)
(Stand off)
INDEX
176
45
"A"
LEAD No.
1
44
0.50(.020)
C
2003 FUJITSU LIMITED F176006S-c-4-6
0.22±0.05
(.009±.002)
0.08(.003)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.25(.010)
M
単位:mm (inches)
注意:括弧内の値は参考値です。
11
第 1 章 概要
■ MB91F353A/351A/352A/353A 外形寸法図
図 1.3-2 MB91F353A/351A/352A/353A 外形寸法図
プラスチック・LQFP, 120 ピン
(FPT-120P-M21)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
16.0 × 16.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.88g
コード(参考)
P-LFQFP120-16×16-0.50
プラスチック・LQFP, 120 ピン
(FPT-120P-M21 )
注 1)* 印寸法はレジン残りを含む。
レンジ残りは,片側 +0.25(.010)MAX。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
18.00±0.20(.709±.008)SQ
+0.40
* 16.00 –0.10 .630 +.016
–.004 SQ
90
61
91
60
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
INDEX
0~8°
120
LEAD No.
1
30
0.50(.020)
C
12
"A"
31
2002 FUJITSU LIMITED F120033S-c-4-4
0.22±0.05
(.009±.002)
0.08(.003)
M
0.145
.006
+0.05
–0.03
+.002
–.001
0.60±0.15
(.024±.006)
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.4
端子配列図
図 1.4-1 , 図 1.4-2 に , MB91350A シリーズの端子配列図を示します。
■ MB91F355A/MB91F356B/MB91F357B/MB91354A/MB91355A 端子配列図
搭載パッケージは FPT-176P-M02 です。
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
PG4/SO5
PG3/SI5
PG2/SCK4
PG1/SO4
PG0/SI4
PH5/SCK3
PH4/SO3
PH3/SI3
PH2/SCK2
PH1/SO2
PH0/SI2
PI5/SCK1
PI4/SO1
PI3/SI1
PI2/SCK0
PI1/SO0
PI0/SI0
VCC
VSS
PJ7/INT15
PJ6/INT14
PJ5/INT13
PJ4/INT12
PJ3/INT11
PJ2/INT10
PJ1/INT9
PJ0/INT8
PK7/INT7/ATG
PK6/INT6/FRCK
PK5/INT5
PK4/INT4
PK3/INT3
PK2/INT2
PK1/INT1
PK0/INT0
VCC
VSS
PL1/SCL
PL0/SDA
VSS
PM5/SCK7/ZIN1/TRG5
PM4/SO7/BIN1/TRG4
PM3/SI7/AIN1/TRG3
PM2/SCK6/ZIN0/TRG2
図 1.4-1 MB91F355A/MB91F356B/MB91F357B/MB91354A/MB91355A 端子配列図
MB91F355A/MB91355A/MB91354A/
MB91F356B/MB91F357B
TOP VIEW
(LQFP176)
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
PM1/SO6/BIN0/TRG1
PM0/SI6/AIN0/TRG0
PN5/PPG5
PN4/PPG4
PN3/PPG3
PN2/PPG2
PN1/PPG1
PN0/PPG0
VCC
VSS
PO7/OC7
PO6/OC6
PO5/OC5
PO4/OC4
PO3/OC3
PO2/OC2
PO1/OC1
PO0/OC0
PP3/TOT3
PP2/TOT2
PP1/TOT1
PP0/TOT0
VCC
VSS
AVSS/AVRL
AVRH
AVCC
AN11
AN10
AN9
AN8
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
DA2
DA1
DA0
DAVC
DAVS
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
44
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
P26/D22
P27/D23
P30/D24
P31/D25
P32/D26
P33/D27
P34/D28
P35/D29
P36/D30
P37/D31
VSS
VCC
P40/A00
P41/A01
P42/A02
P43/A03
P44/A04
P45/A05
P46/A06
P47/A07
P50/A08
P51/A09
P52/A10
P53/A11
P54/A12
P55/A13
P56/A14
P57/A15
VSS
VCC
P60/A16
P61/A17
P62/A18
P63/A19
P64/A20
P65/A21
P66/A22
P67/A23
PG5/SCK5
NMI
X1A
VSS
X0A
MD2
MD1
MD0
X0
VCC
X1
INIT
VSS
VCC
PC0/DREQ2
PC1/DACK2
PC2/DSTP2/DEOP2
PB0/DREQ0
PB1/DACK0
PB2/DSTP0/DEOP0
PB3/DREQ1
PB4/DACK1
PB5/DSTP1/DEOP1
PB6/IOWR
PB7/IORD
PA0/CS0
PA1/CS1
PA2/CS2
PA3/CS3
VSS
VCC
P80/IN0/RDY
P81/IN1/BGRNT
P82/IN2/BRQ
P83/RD
P84/WR0
P85/IN3/WR1
P90/SYSCLK
P91
P92/MCLK
P93
P94/AS
VSS
VCC
13
第 1 章 概要
■ MB91F353A/MB91351A/MB91352A/MB91353A 端子配列図
搭載パッケージは FPT-120P-M21 です。
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
1
2
3
4
5
6
7
8
9
10
MB91F353A/MB91351A/MB91352A/MB91353A
11
12
13
14
15
16
TOP VIEW
17
18
19
20
21
22
23
24
(LQFP-120)
25
26
27
28
29
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
P54/A12
P55/A13
P56/A14
P57/A15
P60/A16
P61/A17
P62/A18
P63/A19
P64/A20
VSS
PL1/SCL
PL0/SDA
VSS
VCC
P80/IN0/RDY
P81/IN1/BGRNT
P82/IN2/BRQ
P83/RD
P84/WR0
P85/IN3/WR1
NMI
MD2
MD1
MD0
INIT
VCC
X1
X0
VSS
X0A
32
30
31
P20/D16
P21/D17
P22/D18
P23/D19
P24/D20
P25/D21
P26/D22
P27/D23
P30/D24
P31/D25
P32/D26
P33/D27
P34/D28
P35/D29
P36/D30
P37/D31
P40/A00
VSS
VCC
P41/A01
P42/A02
P43/A03
P44/A04
P45/A05
P46/A06
P47/A07
P50/A08
P51/A09
P52/A10
P53/A11
119
120
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
VSS
AVSS/AVRL
AVRH
AVCC
DAVC
DAVS
DA0
DA1
PH5/SCK3
PH4/SO3
PH3/SI3
PH2/SCK2
PH1/SO2
PH0/SI2
PO2/OC2
PO0/OC0
VSS
VCC
PI5/SCK1
PI4/SO1
PI3/SI1
PI2/SCK0
図 1.4-2 MB91F353A/MB91351A/MB91352A/MB91353A 端子配列図
14
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
PI1/SO0
PI0/SI0
PK7/INT7/ATG
PK6/INT6/FRCK
PK5/INT5
PK4/INT4
PK3/INT3
PK2/INT2
PK1/INT1
PK0/INT0
PM5/SCK7
PM4/SO7/TRG4
PM3/SI7/TRG3
VCC
VSS
PM2/SCK6/ZIN0/TRG2
PM1/SO6/BIN0/TRG1
PM0/SI6/AIN0/TRG0
PN4/PPG4
PN2/PPG2
PN0/PPG0
PA3/CS3
PA2/CS2
PA1/CS1
PA0/CS0
P94/AS
P93
P91
P90/SYSCLK
X1A
第 1 章 概要
端子機能一覧
1.5
表 1.5-1 に端子機能一覧を , 表 1.5-2 に電源・GND 端子を示します。
端子配列については図 1.4-1 , 図 1.4-2 を参照してください。
■ 端子機能一覧
表 1.5-1 端子機能一覧 (1 / 11)
端子番号
LQFP-176 LQFP-120
1∼8
1∼8
端子名
D16 ∼ D23
I/O
回路
形式
C
P20 ∼ P27
9 ∼ 16
9 ∼ 16
D24 ∼ D31
27 ∼ 34
37 ∼ 41
42 ∼ 44
17, 20 ∼
26
27 ∼ 34
C
C
外部アドレスバスのビット 0 ∼ 7 です。
外バスモードのとき有効となります。
P40 ∼ P47
シングルチップモード時はポートとして使用できます。
A08 ∼ A15
C
外部アドレスバスのビット 8 ∼ 15 です。
外バスモードのとき有効となります。
A00 ∼ A07
P50 ∼ P57
シングルチップモード時はポートとして使用できます。
A16 ∼ A20
外部アドレスバスのビット 16 ∼ 20 です。
外バスモードのとき有効となります。
C
35 ∼ 39
P60 ∼ P64
シングルチップモード時または外部アドレスバス未使用時は ,
ポートとして使用できます。
A21 ∼ A23
外部アドレスバスのビット 21 ∼ 23 です。
外バスモードのとき有効となります。
-
C
47, 48
106, 105
DA0, DA1
49
-
58 ∼ 61
67 ∼ 70
D/A コンバータの出力端子です。
DA2
-
D/A コンバータの出力端子です。
113 ∼ 120
AN0 ∼ AN7
G
アナログ入力端子です。
-
AN8 ∼
AN11
G
-
TOT0 ∼
TOT3
D
97
PO0
PO1
リロードタイマ出力ポートです。
この機能はタイマ出力許可のときに有効になります。
アウトプットコンペア出力端子です。
D
OC1
-
アナログ入力端子です。
汎用入出力ポートです。
この機能はタイマ出力機能が禁止のときに有効になります。
OC0
72
シングルチップモード時または外部アドレスバス未使用時は ,
ポートとして使用できます。
-
PP0 ∼ PP3
71
外部データバスのビット 24 ∼ 31 です。
外バスモードのとき有効となります。
シングルチップモード時はポートとして使用できます。
P65 ∼ P67
50 ∼ 57
外部データバスのビット 16 ∼ 23 です。
外バスモードのとき有効となります。
外バス 8 ビットモードのときはポートとして使用できます。
P30 ∼ P37
19 ∼ 26
機 能
汎用の入出力ポートです。
この機能は , アウトプットコンペア出力が未使用時はポートとし
て使用できます。
アウトプットコンペア出力端子です。
D
汎用の入出力ポートです。
この機能は , アウトプットコンペア出力が未使用時はポートとし
て使用できます。
15
第 1 章 概要
表 1.5-1 端子機能一覧 (2 / 11)
端子番号
LQFP-176 LQFP-120
端子名
I/O
回路
形式
OC2
73
98
PO2
アウトプットコンペア出力端子です。
D
OC3 ∼ OC7
74 ∼ 78
-
PO3 ∼ PO7
70
PN0
D
-
PN1
D
71
PN2
D
-
PN3
D
72
PN4
D
87
16
-
PN5
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
PPG タイマ出力端子です。
D
PPG5
86
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
PPG タイマ出力端子です。
PPG4
85
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
PPG タイマ出力端子です。
PPG3
84
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
PPG タイマ出力端子です。
PPG2
83
汎用の入出力ポートです。
この機能は , アウトプットコンペア出力が未使用時はポートとし
て使用できます。
PPG タイマ出力端子です。
PPG1
82
汎用の入出力ポートです。
この機能は , アウトプットコンペア出力が未使用時はポートとし
て使用できます。
アウトプットコンペア出力端子です。
PPG0
81
機 能
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
PPG タイマ出力端子です。
D
汎用の入出力ポートです。
この機能は , PPG タイマ出力が未使用時はポートとして使用でき
ます。
SI6
シリアル I/O6 のデータ入力です。
シリアル I/O6 が入力動作をしている間はこの入力を随時使用し
ていますので , 意図的に行うとき以外はポートによる出力を停止
させておく必要があります。
AIN0
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
73
D
TRG0
PPG タイマ 0 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM0
汎用の入出力ポートです。
この機能は , シリアル I/O, アップダウンタイマ , PPG タイマ出力
が未使用時はポートとして使用できます。
第 1 章 概要
表 1.5-1 端子機能一覧 (3 / 11)
端子番号
LQFP-176 LQFP-120
88
89
90
端子名
I/O
回路
形式
機 能
SO6
シリアル I/O6 のデータ出力です。
この機能は , シリアル I/O6 のデータ出力指定が許可のときに有
効になります。
BIN0
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
74
D
TRG1
PPG タイマ 1 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM1
汎用の入出力ポートです。
この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が
未使用時はポートとして使用できます。
SCK6
シリアル I/O6 のクロック入出力です。
この機能はシリアル I/O6 のクロック出力指定が許可のとき , ま
たは外部シフトクロック入力のときに有効になります。
ZIN0
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
75
D
TRG2
PPG タイマ 2 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM2
汎用の入出力ポートです。
この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が
未使用時はポートとして使用できます。
SI7
シリアル I/O7 のデータ入力です。
シリアル I/O7 が入力動作をしている間はこの入力を随時使用し
ていますので , 意図的に行うとき以外はポートによる出力を停止
させておく必要があります。
AIN1*
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
78
D
TRG3
PPG タイマ 3 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM3
汎用の入出力ポートです。
この機能は , シリアル I/O, アップダウンタイマ , PPG タイマ出力
が未使用時はポートとして使用できます。
17
第 1 章 概要
表 1.5-1 端子機能一覧 (4 / 11)
端子番号
LQFP-176 LQFP-120
91
92
94
95
端子名
I/O
回路
形式
SO7
シリアル I/O7 のデータ出力です。
この機能は , シリアル I/O7 のデータ出力指定が許可のときに有
効になります。
BIN1*
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
79
D
TRG4
PPG タイマ 4 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM4
汎用の入出力ポートです。
この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が
未使用時はポートとして使用できます。
SCK7
シリアル I/O7 のクロック入出力です。
この機能はシリアル I/O7 のクロック出力指定が許可のとき , 外
部シフトクロック入力のときに有効になります。
ZIN1*
アップダウンタイマの入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
80
D
TRG5*
PPG タイマ 5 の外部トリガ入力です。
入力を許可している場合はこの入力を随時使用していますので ,
意図的に行うとき以外はポートによる出力を停止させておく必
要があります。
PM5
汎用の入出力ポートです。
この機能はシリアル I/O, アップダウンタイマ , PPG タイマ出力が
未使用時はポートとして使用できます。
SDA
I2C バス用 DATA 入出力端子です。
この機能は I2C が標準モード動作許可のときに有効となります。
意図的に行うとき以外はポートによる出力を停止させておく必
要があります ( オープンドレイン出力 ) 。
42
F
PL0
汎用入出力ポートです。
この機能は , I2C が動作禁止のときポートとして使用できます
( オープンドレイン出力 ) 。
SCL
I2C バス用 CLK 入出力端子です。
この機能は I2C が標準モード動作許可のときに有効となります。
意図的に行うとき以外はポートによる出力を停止させておく必
要があります ( オープンドレイン出力 ) 。
41
F
汎用入出力ポートです。
この機能は I2C が動作禁止のときポートとして使用できます
( オープンドレイン出力 ) 。
PL1
98 ∼ 103
81 ∼ 86
INT0 ∼
INT5
PK0 ∼ PK5
18
機 能
E
外部割込み入力です。
対応する外部割込みを許可している間はこの入力を随時使用し
ていますので , 意図的に行う以外はポートによる出力を停止させ
ておく必要があります。
汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能一覧 (5 / 11)
端子番号
LQFP-176 LQFP-120
端子名
I/O
回路
形式
外部割込み入力です。
対応する外部割込みを許可している間はこの入力を随時使用し
ていますので , 意図的に行う以外はポートによる出力を停止させ
ておく必要があります。
INT6
104
87
E
FRCK
105
106 ∼ 113
汎用入出力ポートです。
INT7
外部割込み入力です。
対応する外部割込みを許可している間はこの入力を随時使用し
ていますので , 意図的に行う以外はポートによる出力を停止させ
ておく必要があります。
ATG
A/D コンバータ外部トリガ入力です。
A/D の起動要因として選択した場合はこの入力を随時使用しま
すので , 意図的に行う以外はポートによる出力を停止させておく
必要があります。
PK7
汎用入出力ポートです。
E
INT8 ∼
INT15
E
PJ0 ∼ PJ7
116
117
118
119
89
SI0
外部割込み入力です。
対応する外部割込みを許可している間はこの入力を随時使用し
ていますので , 意図的に行う以外はポートによる出力を停止させ
ておく必要があります。
汎用入出力ポートです。
D
UART0 のデータ入力です。
UART0 が入力動作をしている間はこの入力を随時使用していま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
PI0
汎用入出力ポートです。
SO0
UART0 のデータ出力です。
この機能は UART0 のデータ出力指定が許可のときに有効になり
ます。
90
D
PI1
汎用入出力ポートです。
この機能は UART0 のデータ出力機能が禁止のときに有効になり
ます。
SCK0
UART0 のクロック入出力です。
この機能は UART0 のクロック出力指定が許可のとき , または外
部クロック入力のときに有効になります。
91
92
フリーランタイマの外部クロック入力端子です。
フリーランタイマの外部クロック入力として選択した場合はこ
の入力を随時使用しますので , 意図的に行う以外はポートによる
出力を停止させておく必要があります。
PK6
88
-
機 能
D
PI2
汎用入出力ポートです。
この機能は UART0 のクロック出力機能が禁止 , または外部ク
ロック入力を使用しないときに有効になります。
SI1
UART1 のデータ入力です。
UART1 が入力動作をしている間はこの入力を随時使用していま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
PI3
D
汎用入出力ポートです。
19
第 1 章 概要
表 1.5-1 端子機能一覧 (6 / 11)
端子番号
LQFP-176 LQFP-120
端子名
I/O
回路
形式
SO1
120
121
122
123
124
125
126
127
93
D
汎用入出力ポートです。
この機能は UART1 のデータ出力機能が禁止のときに有効になり
ます。
SCK1
UART1 のクロック入出力です。
この機能は UART1 のクロック出力指定が許可のときに , または
外部クロック入力のときに有効になります。
D
PI5
汎用入出力ポートです。
この機能は UART1 のクロック出力機能が禁止 , または外部ク
ロック入力を使用しないときに有効になります。
SI2
UART2 のデータ入力です。
UART2 が入力動作をしている間はこの入力を随時使用していま
すので , 意図的に行う以外はポートによる出力を停止させておく
必要があります
汎用入出力ポートです。
SO2
UART2 のデータ出力です。
この端子は UART2 のデータ出力指定が許可のときに有効になり
ます。
D
PH1
汎用入出力ポートです。
この機能は UART2 のデータ出力機能が禁止のときに , または外
部シフトクロック入力のときに有効になります。
SCK2
UART2 のクロック入出力です。
この機能は UART2 のクロック出力指定が許可のときに , または
外部クロック入力のときに有効になります。
101
D
PH2
汎用入出力ポートです。
この機能は UART2 のクロック出力機能が禁止 , または外部ク
ロック入力を使用しないときに有効になります。
SI3
UART3 のデータ入力です。
UART3 が入力動作をしている間はこの入力を随時使用していま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
D
PH3
汎用入出力ポートです。
SO3
UART3 のデータ出力です。
この機能は UART3 のデータ出力指定が許可のときに有効になり
ます。
103
D
PH4
汎用入出力ポートです。
この機能は UART3 のデータ出力機能が禁止のときに有効になり
ます。
SCK3
UART3 のクロック入出力です。
この機能は UART3 のクロック出力指定が許可のときに , または
外部クロック入力のときに有効になります。
104
D
PH5
20
D
PH0
100
102
UART1 のデータ出力です。
この機能は UART1 のデータ出力指定が許可のときに有効になり
ます。
PI4
94
99
機 能
汎用入出力ポートです。
この機能は UART3 のクロック出力機能が禁止 , または外部ク
ロック入力を使用しないときに有効になります。
第 1 章 概要
表 1.5-1 端子機能一覧 (7 / 11)
端子番号
LQFP-176 LQFP-120
128
129
130
131
132
133
-
端子名
SI4
D
機 能
UART4 のデータ入力です。
UART4 が入力動作をしている間はこの入力を随時使用していま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
PG0
汎用入出力ポートです。
SO4
UART4 のデータ出力です。
この機能はシリアル I/O4 のデータ出力指定が許可のときに有効
になります。
-
D
PG1
汎用入出力ポートです。
この機能はシリアル I/O4 のデータ出力機能が禁止のときに有効
になります。
SCK4
UART4 のクロック入出力です。
この機能はシリアル I/O4 のクロック出力指定が許可のとき , ま
たは外部クロック入力のときに有効になります。
-
-
I/O
回路
形式
D
PG2
汎用入出力ポートです。
この機能はシリアル I/O4 のクロック出力機能が禁止のとき , ま
たは外部クロック入力を使用しないときに有効になります。
SI5
シリアル I/O5 のデータ入力です。
シリアル I/O5 が入力動作をしている間はこの入力を随時使用し
ていますので , 意図的に行うとき以外はポートによる出力を停止
させておく必要があります。
D
PG3
汎用入出力ポートです。
SO5
シリアル I/O5 のデータ出力です。
この機能はシリアル I/O5 のデータ出力指定が許可のときに有効
になります。
-
D
PG4
汎用入出力ポートです。
この機能はシリアル I/O5 のデータ出力機能が禁止のときに有効
になります。
SCK5
シリアル I/O5 のクロック入出力です。
この機能はシリアル I/O5 のクロック出力指定が許可のときに ,
または外部シフトクロック入力のときに有効になります。
-
D
PG5
汎用入出力ポートです。この機能はシリアル I/O5 のクロック出
力機能が禁止のとき , または外部クロック入力を使用しないとき
に有効になります。
134
51
NMI
H
NMI(Non Maskable Interrupt) 入力です。
135
61
X1A
B
クロック ( 発振 ) 出力です ( サブクロック )。
137
60
X0A
B
クロック ( 発振 ) 入力です ( サブクロック )。
H
モード端子 2 ∼ 0 です。
これらの端子の設定により基本動作モードを設定します。VCC
138 ∼ 140
52 ∼ 54
MD2 ∼ MD0
または VSS に接続してください。
J
入力回路形式 :
•
量産版 ( マスク ROM 版 ) は "H" タイプ
•
FLASH ROM 版は "J" タイプ
141
58
X0
A
143
57
X1
A
クロック ( 発振 ) 出力です ( メインクロック )。
144
55
INIT
I
外部リセット入力です。
クロック ( 発振 ) 入力です ( メインクロック )。
21
第 1 章 概要
表 1.5-1 端子機能一覧 (8 / 11)
端子番号
LQFP-176 LQFP-120
147
-
端子名
DREQ2
I/O
回路
形式
C
PC0
149
150
-
-
-
C
汎用入出力ポートです。
この機能は DMA の転送要求受付け出力指定が許可のときに有効
になります。
DEOP2
DMA 外部転送終了出力です。
この機能は DMA の外部転送終了出力指定が許可のときに有効に
なります。
DSTP2
C
汎用入出力ポートです。
この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指
定が禁止のときに有効になります。
DREQ0
DMA 外部転送要求入力です。
DMA の起因要因として選択した場合はこの入力を随時使用しま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
153
-
-
-
C
汎用入出力ポートです。
C
DMA 外部転送要求受付け出力です。
この機能は DMA の転送要求受付け出力指定が許可のときに有効
になります。
PB1
汎用入出力ポートです。
この機能は DMA の転送要求受付け出力指定が禁止のときに有効
になります。
DEOP0
DMA 外部転送終了出力です。
この機能は DMA の外部転送終了出力指定が許可のときに有効に
なります。
DSTP0
C
DMA 外部転送停止入力です。
この機能は DMA の外部転送停止入力指定が許可のときに有効に
なります。
PB2
汎用入出力ポートです。
この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指
定が禁止のときに有効になります。
DREQ1
DMA 外部転送要求入力です。
DMA の起因要因として選択した場合はこの入力を随時使用しま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
PB3
22
DMA 外部転送停止入力です。
この機能は DMA の外部転送停止入力指定が許可のときに有効に
なります。
PC2
DACK0
152
DMA 外部転送要求受付け出力です。
この機能は DMA の転送要求受付け出力指定が許可のときに有効
になります。
PC1
PB0
151
DMA 外部転送要求入力です。
DMA の起因要因として選択した場合はこの入力を随時使用しま
すので , 意図的に行うとき以外はポートによる出力を停止させて
おく必要があります。
汎用入出力ポートです。
DACK2
148
機 能
C
汎用入出力ポートです。
第 1 章 概要
表 1.5-1 端子機能一覧 (9 / 11)
端子番号
LQFP-176 LQFP-120
端子名
I/O
回路
形式
DACK1
154
155
156
157
158
159
160
161
-
-
C
機 能
DMA 外部転送要求受付け出力です。
この機能は DMA の転送要求受付け出力指定が許可のときに有効
になります。
PB4
汎用入出力ポートです。
この機能は DMA の外部転送要求受付け出力指定が禁止のときに
有効になります。
DEOP1
DMA 外部転送終了出力です。
この機能は DMA の外部転送終了出力指定が許可のときに有効に
なります。
DSTP1
C
DMA 外部転送停止入力です。
この機能は DMA の外部転送停止入力指定が許可のときに有効に
なります。
PB5
汎用入出力ポートです。
この機能は DMA の外部転送終了出力指定 , 外部転送停止入力指
定が禁止のときに有効になります。
IOWR
DMA フライバイ転送時のライトストローブ出力です。
この機能は DMA フライバイ転送ライトストローブ出力指定が許
可のときに有効になります。
-
C
PB6
汎用入出力ポートです。
この機能は DMA フライバイ転送ライトストローブ出力指定が禁
止のときに有効になります。
IORD
DMA フライバイ転送時のリードストローブ出力です。
この機能は DMA フライバイ転送リードストローブ出力指定が許
可のときに有効になります。
-
C
PB7
汎用入出力ポートです。
この機能は DMA フライバイ転送リードストローブ出力指定が禁
止のときに有効になります。
CS0
チップセレクト 0 出力です。
外バスモード時有効になります。
66
C
PA0
汎用入出力ポートです。
シングルチップモード時有効になります。
CS1
チップセレクト 1 出力です。
この機能はチップセレクト 1 出力指定が許可のときに有効にな
ります。
67
C
PA1
汎用入出力ポートです。
この機能はチップセレクト 1 出力指定が禁止のときに有効にな
ります。
CS2
チップセレクト 2 出力です。
この機能はチップセレクト 2 出力指定が許可のときに有効にな
ります。
68
C
PA2
汎用入出力ポートです。
この機能はチップセレクト 2 出力指定が禁止のときに有効にな
ります。
CS3
チップセレクト 3 出力です。
この機能はチップセレクト 3 出力指定が許可のときに有効にな
ります。
69
C
PA3
汎用入出力ポートです。
この機能はチップセレクト 3 出力指定が禁止のときに有効にな
ります。
23
第 1 章 概要
表 1.5-1 端子機能一覧 (10 / 11)
端子番号
LQFP-176 LQFP-120
164
45
端子名
I/O
回路
形式
RDY
外部レディ入力です。
この機能は外部レディ入力指定が許可のときに有効になります。
IN0
インプットキャプチャ入力端子です。
インプットキャプチャ入力として選択した場合はこの入力を随
時使用しますので , 意図的に行う以外はポートによる出力を停止
させておく必要があります。
D
汎用入出力ポートです。
この機能は外部レディ入力指定が禁止のときに有効になります。
P80
外部バス開放受付け出力です。
外部バスを開放したときに "L" を出力します。出力指定が許可
のときに有効になります。
BGRNT
165
166
167
168
169
46
47
IN1
D
汎用入出力ポートです。
この機能は外部バス開放受付け指定が禁止のときに有効になり
ます。
BRQ
外部バス開放要求入力です。
外部バスを開放したいときに "H" を入力します。
入力指定が許可のときに有効になります。
IN2
インプットキャプチャ入力端子です。
インプットキャプチャ入力として選択した場合はこの入力を随
時使用しますので , 意図的に行う以外はポートによる出力を停止
させておく必要があります。
D
P82
汎用入出力ポートです。
この機能は外部バス開放要求指定が禁止のときに有効になりま
す。
RD
外バスリードストローブ出力です。
外バスモード時に有効になります。
D
P83
汎用入出力ポートです。
シングルチップモード時に有効になります。
WR0
外バスライトストローブ出力です。
外バスモード時に有効になります。
D
49
P84
汎用入出力ポートです。
シングルチップモード時に有効になります。
WR1
外バスライトストローブ出力です。
外バスモード時 WR1 の出力を許可にすると有効になります。
IN3
インプットキャプチャ入力端子です。
インプットキャプチャ入力として選択した場合はこの入力を随
時使用しますので , 意図的に行う以外はポートによる出力を停止
させておく必要があります。
D
汎用入出力ポートです。
外バスライトイネーブル出力設定を禁止にしたときに有効にな
ります。
P85
SYSCLK
170
62
C
P90
24
インプットキャプチャ入力端子です。
インプットキャプチャ入力として選択した場合は , この入力を随
時使用しますので意図的に行う以外はポートによる出力を停止
させておく必要があります。
P81
48
50
機 能
システムクロック出力です。
この機能はシステムクロック出力指定が許可のときに有効にな
ります。外バス動作周波数と同じクロックを出力します ( ストッ
プ時に停止します )。
汎用入出力ポートです。
この機能はシステムクロック出力指定が禁止のときに有効にな
ります。
第 1 章 概要
表 1.5-1 端子機能一覧 (11 / 11)
端子名
I/O
回路
形式
P91
C
汎用入出力ポートです。
C
メモリ用クロック出力です。
この機能はメモリ用クロック出力指定が許可のときに有効にな
ります。外バス動作周波数と同じクロックを出力します ( スリー
プ時に停止します )。
端子番号
LQFP-176 LQFP-120
171
63
機 能
MCLK
172
-
汎用入出力ポートです。
この機能はメモリ用クロック出力指定が禁止のときに有効にな
ります。
P92
173
64
P93
C
汎用入出力ポートです。
アドレスストローブ出力です。
この機能はアドレスストローブ出力が許可のときに有効になり
ます。
AS
174
C
65
汎用入出力ポートです。
この機能はアドレスロード出力指定が禁止のときに有効になり
ます。
P94
*: LQFP-120 版には , この機能がありません。
表 1.5-2 電源・GND 端子
端子番号
176 ピン
120 ピン
端子名
機 能
17, 35, 65, 79, 93, 96, 18, 40, 43, 59,
114, 136, 145, 162, 175 76, 96, 112
VSS
GND 端子です。すべて同電位でお使いください。
18, 36, 66, 80, 97, 115,
142, 146, 163, 176
19, 44, 56, 77,
95
VCC
3.3V 電源端子です。すべて同電位でお使いください。
45
107
DAVS
D/A コンバータ用の GND 端子です。
46
108
DAVC
D/A コンバータ用の電源端子です。
62
109
AVCC
A/D コンバータ用アナログ電源端子です。
63
110
AVRH
A/D コンバータ用の基準電源端子です。
64
111
AVSS/
AVRL
A/D コンバータ用アナログ GND 端子です。
25
第 1 章 概要
1.6
入出力回路形式
表 1.6-1 に入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 3)
分 類
回路形式
備 考
高速用 ( メインクロック原発振 )
発振帰還抵抗 約 1MΩ
X1
クロック入力
A
X0
スタンバイ
コントロール
低速用 ( サブクロック原発振 )
発振帰還抵抗 約 7MΩ
X1A
クロック入力
B
X0A
スタンバイ
コントロール
プルアップ制御
デジタル出力
•
CMOS レベル出力
•
CMOS レベル入力
スタンバイ制御あり
プルアップ制御あり
プルアップ抵抗値=約 50kΩ (Typ)
C
デジタル出力
IOL = 8mA
デジタル入力
スタンバイコントロール
26
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 3)
分 類
回路形式
備 考
プルアップ制御
•
CMOS レベル出力
•
CMOS レベルヒステリシス入力
スタンバイ制御あり
プルアップ制御あり
プルアップ抵抗値=約 50kΩ (Typ)
デジタル出力
D
デジタル出力
IOL = 4mA
デジタル入力
スタンバイコントロール
•
CMOS レベル出力
•
CMOS レベルヒステリシス入力
デジタル出力
5V 耐圧
IOL = 4mA
E
デジタル出力
デジタル入力
•
Nch オープンドレイン出力
•
CMOS レベルヒステリシス入力
デジタル出力
スタンバイ制御あり
5V 耐圧
F
デジタル入力
IOL = 15mA
スタンバイコントロール
アナログ入力スイッチ付き
G
アナログ入力
コントロール
27
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 3)
分 類
回路形式
備 考
CMOS レベルヒステリシス入力
H
デジタル入力
CMOS レベルヒステリシス入力
プルアップ抵抗付き
プルアップ抵抗値=約 50kΩ (Typ)
I
デジタル入力
CMOS レベル入力 ( フラッシュ ROM 品のみ )
J
制御信号
モード入力
拡散抵抗
28
第2章
デバイスの取扱いについて
この章では , FR ファミリの取扱い上の注意につい
て説明します。
2.1 デバイス取扱い上の注意
29
第 2 章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて
説明します。
■ ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合 , または , VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象
を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に
至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意
してください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンの処理をしてください。
■ 電源端子について
VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた
めにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻射の低
減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を
遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくださ
い。また , 電流供給源からできるかぎり低インピーダンスで本デバイスの VCC, VSS に
接続するような配慮をお願いします。
さらに , 本デバイスの近くで , VCC と VSS の間に 0.1 µF 程度のセラミックコンデンサ
をバイパスコンデンサとして接続することをお勧めします。
■ 水晶発振回路について
X0, X1, X0A, X1A 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0 と
X1, X0A と X1A および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへの
バイパスコンデンサはできるかぎり近くに配置するようにプリント板を設計してくだ
さい。
また , X0, X1, X0A, X1A 端子の回りをグランドで囲むようなプリント板アートワーク
は安定した動作を期待できますので , 強くお勧めします。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
30
第 2 章 デバイスの取扱いについて
■ 外部クロック使用時の注意
外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , この場合にはストップモード ( 発振停止
モード ) は使用しないでください ( ストップ時 X1 端子が "H" 出力で停止するため )。
外部クロック使用例 ( 通常 )
X0
X1
<注意事項>
ストップモード ( 発振停止モード ) は使用できません。
■ サブクロックを使用しない場合の注意について
X0A, X1A 端子に発振器を接続しない場合は , X0A 端子をプルダウン処理に , X1A 端子
を開放にしてください。
X0A
開放
X1A
MB91350A
■ NC, OPEN 端子の処理について
NC 端子 , OPEN 端子は , 必ず開放にして使用してください。
■ モード端子 (MD0 ∼ MD2) について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ
てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と
VCC または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接
続するようにしてください。
■ 電源投入時について
電源投入時は , INIT 端子を "L" レベルにしておくことが必要です。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子に
よる INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
■ 電源投入時の原振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。
■ PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , クロック入力が
停止した場合には PLL 内部の自励発振回路の自走周波数で動作を継続し続ける場合が
あります。この動作は保証外の動作です。
31
第 2 章 デバイスの取扱いについて
■ 外バスの設定
本品種は , 外バス 25MHz の保証となっています。
DIVR1 ( 外バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを
50MHz に設定すると , 外バスも 50MHz になります。ベースクロックを変更する際には ,
外バスが 25MHz を超えないように設定した後 , ベースクロックを変更してください。
■ MCLK と SYSCLK
MCLK は SLEEP/STOP モード時停止し , SYSCLK は STOP モード時のみ停止するとい
う違いがあります。用途に応じて使い分けてください。
イニシャライズ後 , MCLK は無効 ( ポート ) , SYSCLK は有効となっています。MCLK
を使用する場合は , PFR ( ポートファンクションレジスタ ) にて , MCLK を使用するた
めの設定が必要です。
■ プルアップコントロール
外バス端子として使用する端子に対してプルアップ抵抗をつけると AC 規格を保証で
きません。
また , プルアップ抵抗を設定してあるポートであっても , HIZ = 1 のストップモード ,
ハードウェアスタンバイ時は無効となります。
■ クロック制御部
INIT への "L" 入力時には , 発振安定待ち時間を確保してください。
■ サブクロック切換え
クロックソースとしてメインクロックからサブクロックモードに切り換えた直後は ,
NOP 命令を一個以上挿入してください。
(ldi
#0x0b, r0)
(ldi
#_CLKR ,r12)
stb
r0, @r12 // sub-clock mode
nop
// Must insert NOP instruction
■ ビットサーチモジュール
BSD0, BSD1, BDSC レジスタはワードアクセスのみとなります。
■ D-bus メモリ
コード領域を , D-bus へは命令フェッチを行わないため , D-bus 上のメモリに設定しな
いでください。
D-bus 領域へ命令フェッチを行った場合 , 誤ったデータをコードとして解釈するため ,
暴走する可能性があります。
32
第 2 章 デバイスの取扱いについて
■ 低消費電力モード
スリープモード , ストップモードに入れる場合は , スタンバイ制御レジスタ (STCR) へ
の書込み直後に , 同レジスタを必ず読み出してください。
具体的には , 以下のシーケンスを使用してください。
(ldi
#value_of_standby, r0)
(ldi
#_STCR, r12)
stb
r0, @r12
// set STOP/SLEEP bit
ldub
@r12, r0
// Must read STCR
ldub
@r12, r0
// after reading, go into standby mode
nop
// Must insert NOP *5
nop
nop
nop
nop
■ プリフェッチ
リトルエンディアンに設定した領域に対して , プリフェッチを許可する場合 , 該当する
領域へのアクセスは , ワード (32 ビット ) 長アクセス限定としてください。
バイト / ハーフワードアクセスでは , 正しくアクセスできません。
■ I/O ポートアクセス
ポートへのアクセスはバイトアクセスのみです。
■ 兼用ポートの機能切換え
PORT と兼用端子の切換えは , PFR ( ポートファンクションレジスタ ) で行います。た
だし , バス端子は外バスの設定により切り換わります。
■ 内蔵 RAM
リセット解除直後は , 内蔵 RAM 容量の制限機能が働いており , デバイスに搭載されて
いる RAM 容量に関わらず , データ用 / プログラム実行用ともに , 4K バイトしか使用で
きません。
制限機能を解除するには , 設定を書き換えてください。
また , 上記の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。
■ フラッシュメモリ
プログラミングモード時は , フラッシュメモリを割込みベクタテーブルとして使用で
きません ( リセットは可能です ) 。
33
第 2 章 デバイスの取扱いについて
■ PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
ご使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容
が更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく
再処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行い
ます。
1) DIV0U/DIV0S 命令の直前の命令では , ユーザ割込み・NMI を受け付けた場合 , ス
テップ実行を行った場合 , データイベントまたはエミュレータメニューにてブレー
クした場合 , 以下の動作を行う場合があります。
• D0, D1 フラグが , 先行して更新されます。
• EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
• EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0, D1 フラグが 1) と同じ値に更新
されます。
2) ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために ORCCR/
STILM/MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
• PS レジスタが先行して更新されます。
• EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
• EIT から復帰後 , 上記命令が実行され , PS レジスタが 1) と同じ値に更新されます。
■ デバッガ関連の注意事項
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , 該当割込み処理ルーチンだ
けを繰り返して実行します。その結果 , メインルーチンや割込みレベルの低いプログラ
ムの実行が行われなくなります ( 例えば , タイムベースタイマの割込みを許可していた
場合, RETIをステップ実行すると, 必ずタイムベースタイマのルーチンの先頭でブレー
クします ) 。
該当割込み処理ルーチンのデバッグが不要になった段階で , 該当割込みを禁止してく
ださい。
● ブレーク機能
ハードウェアブレーク ( イベントブレーク含む ) の対象アドレスが現在のシステムス
タックポインタのアドレスや , スタックポインタを含む領域に設定されていると , ユー
ザプログラムに実際のデータアクセス命令がないにもかかわらず , 1 命令実行後にブ
レークしてしまいます。
回避するために , システムスタックポインタのアドレスを含む領域に対する ( ワード )
アクセスを , ハードウェアブレーク ( イベントブレーク含む ) の対象に設定しないでく
ださい。
● 内蔵 ROM ( フラッシュメモリ , MASKROM)
内蔵 ROM 領域を DMAC 転送先に設定しないでください。
内蔵 ROM 領域を DMAC 転送先に設定した場合 , DMAC 転送中にブレークが発生する
と , 内蔵 ROM 領域が書きかえられるおそれがあります。内蔵 ROM 領域を DMAC 転
送元とすることは , 可能です。
34
第 2 章 デバイスの取扱いについて
● ソフトウェアブレーク (INTE 命令 ) とユーザ割込み /NMI の同時発生
ソフトウェアブレークとユーザ割込み /NMI が同時に発生した場合 , デバッガにて , 以
下の現象が発生することがあります。
• 設定したブレークポイントでないところを示して停止します。
• 停止後の再実行が正しく行われません。
本現象が発生した場合は , ソフトウェアブレークではなく , ハードウェアブレークをご
使用ください。また , モニタデバッガをご使用の場合は , 該当個所にブレークを設定し
ないようにしてください。
● オペランドブレークについて
DSU のオペランドブレークとして設定している領域にスタックポインタがあると誤動
作の原因となります。システムスタックポインタのアドレスを含む領域に対するアク
セスを , データイベントブレークの対象にしないでください。
35
第 2 章 デバイスの取扱いについて
2.1.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();
...
}
36
第 2 章 デバイスの取扱いについて
■ 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。
このため , 通常の領域に割り当てられた構造体変数とリトルエンディアンの領域に割
り当てられた構造体変数の間で構造体代入を行うと , 正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合
struct tag { char c; int i; } normal_st;
extern struct tag little_st;
#define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i;
void main(void) {
STRMOVE(little_st,normal_st);
}
また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ
イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと
きには , 前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは , リトルエンディアン領域に構造体変数を
配置しないでください。
■ 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま
す。
このためリトルエンディアン領域に配置された char, unsigned char, signed char 型以外の
型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得られませ
ん。
このような処理は行わないでください。
[ 不具合例 ] memcpy でのワードデータの転送
int big = 0x01020304;
/* ビッグエンディアン領域 */
extern int little;
/* リトルエンディアン領域 */
memcpy(&little,&big,4);
/* memcpy による転送 */
上記の実行結果は以下のようになり , ワードデータの転送結果としては誤りになりま
す。
(ビッグエンディアン領域)
01
02
03
04
(リトルエンディアン領域)
→ memcpy →
(正しい結果)
04
03
02
01
02
03
04
01
37
第 2 章 デバイスの取扱いについて
■ 文字列操作関数使用時の -K lib オプションの指定
-K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン
ライン展開を行います。このとき最適な処理を選択するため , ハーフワードまたはワー
ドごとの処理に変更される場合があります。
このため , リトルエンディアン領域に対する処理が正しく実行されません。
リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは , -K
lib オプションを指定しないでください。また , -K lib オプションを包含する -O 4 オプ
ションや -K speed オプションも同様に指定しないでください。
■ 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
00
→
00
00
00
00
00
f0
f0
3f
00
00
00
00
3f
■ スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保
証しません。
38
第 2 章 デバイスの取扱いについて
2.1.2
アセンブラ (fasm911)
FR ファミリのアセンブラ言語でプログラミングをするにあたって , リトルエンディ
アン領域に関して以下の項目に注意してください。
■ セクション
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど
の指定をした場合には , MB91350A シリーズでのアクセス動作は保証できなくなりま
す。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:
.RES.H 1
Little_Byte:
.RES.B 1
39
第 2 章 デバイスの取扱いについて
■ データのアクセス
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン
ディアンを意識せずにコーディングできます。
ただし , リトルエンディアン領域のデータへのアクセスは , 必ずデータサイズと同じサ
イズでアクセスしてください。
[例]
LDI
#0x01020304, r0
LDI
#Little_Word, r1
LDI
#0x0102, r2
LDI
#Little_Half, r3
LDI
#0x01, r4
LDI
#Little_Byte, r5
/* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/
ST
r0, @r1
/* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/
STH
r2, @r3
/* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/
STB
r4, @r5
本品種でデータサイズと異なるサイズでアクセスした場合には , その値の保証はでき
ません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使って
一度にアクセスした場合には , データの値の保証はできません。
40
第 2 章 デバイスの取扱いについて
2.1.3
リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成にあたって , リンク時のセク
ション配置では以下の項目に注意してください。
■ セクション種別の制限
リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ
ます。
リトルエンディアン領域に初期値付きデータセクション , スタックセクション , および
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
■ エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。
リトルエンディアン領域に配置したセクションの内容を十分にご確認のうえ , ご使用
ください。
41
第 2 章 デバイスの取扱いについて
2.1.4
デバッガ (sim911, eml911, mon911)
リトルエンディアン領域を使用するプログラムの作成にあたって , デバッガに関し
ては以下の項目に注意してください。
■ シミュレータデバッガ
リトルエンディアン領域を示すような , メモリ空間指定コマンドはありません。
したがって , メモリ操作コマンドやメモリを操作する命令実行は , ビッグエンディアン
として扱われます。
■ エミュレータデバッガ , モニタデバッガ
以下のコマンドでリトルエンディアン領域をアクセスした場合 , 正常な値として扱わ
れませんので注意してください。
• set memory/show memory/enter/examine/set watch コマンド :
浮動小数点 (single/double) のデータを扱った場合 , 指定した値が設定・表示ともにで
きません。
• search memory コマンド :
ハーフワード , ワードのデータの検索を行った場合 , 指定した値で検索が行われま
せん。
• 行 / 逆アセンブル ( ソースウィンドウの逆アセンブル表示を含む )
正常な命令コードが設定・表示ともにできません ( リトルエンディアン領域には ,
命令コードを配置しないようにしてください ) 。
• call/show call コマンド :
スタック領域がリトルエンディアン領域に置かれた場合 , 正常に動作しません ( リ
トルエンディアン領域にスタック領域を配置しないようにしてください ) 。
42
第3章
CPU および制御部
この章では , FR ファミリの CPU コアの機能を知
るために , アーキテクチャ , 仕様 , 命令などの基本
的なことについて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 プログラミング・モデル
3.4 データ構造
3.5 メモリマップ
3.6 分岐命令
3.7 EIT ( 例外・割込み・トラップ )
3.8 動作モード
3.9 リセット ( デバイス初期化 )
3.10 クロック生成制御
3.11 デバイス状態制御
3.12 時計タイマ
3.13 メイン発振安定待ちタイマ
3.14 周辺停止制御
43
第 3 章 CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク
セスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
• バイトデータアクセス 000H ∼ 0FFH
• ハーフワードアクセス 000H ∼ 1FFH
• ワードデータアクセス 000H ∼ 3FFH
■ メモリマップ
図 3.1-1 から図 3.1-4 に , FR ファミリのメモリ空間を示します。
図 3.1-1 MB91F355A/MB91355A/MB91F353A/MB91353A/MB91F357B のメモリマップ
シングルチップモード 内ROM外バスモード 外ROM外バスモード
0000 0000 H
0000 0400 H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
アクセス禁止
アクセス禁止
0001 0000 H
0003 E000 H
0004 0000 H
0004 4000 H
0005 0000 H
アクセス禁止
外部領域
0008 0000 H
内蔵ROM 512KB
内蔵ROM 512KB
0010 0000 H
アクセス禁止
FFFF FFFF H
44
外部領域
外部領域
ダイレクト
アドレッシング領域
I/Oマップ参照
第 3 章 CPU および制御部
図 3.1-2 MB91351A のメモリマップ
シングルチップモード 内ROM外バスモード 外ROM外バスモード
0000 0000 H
0000 0400 H
0001 0000 H
0003 E000 H
0004 0000 H
0004 4000 H
0005 0000 H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
アクセス禁止
アクセス禁止
アクセス禁止
0008 0000 H
000A 0000 H
ダイレクト
アドレッシング領域
I/Oマップ参照
外部領域
アクセス禁止
内蔵ROM 384KB
内蔵ROM 384KB
アクセス禁止
外部領域
外部領域
0010 0000 H
FFFF FFFF H
図 3.1-3 MB91354A/MB91352A のメモリマップ
シングルチップモード 内ROM外バスモード 外ROM外バスモード
0000 0000 H
0000 0400 H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
内蔵RAM8KB
(Instruction)
内蔵RAM8KB
(Instruction)
内蔵RAM8KB
(Instruction)
内蔵RAM8KB
(Data)
内蔵RAM8KB
(Data)
内蔵RAM8KB
(Data)
アクセス禁止
アクセス禁止
0001 0000 H
0003 E000 H
0004 0000 H
0004 2000 H
0005 0000 H
アクセス禁止
0008 0000 H
ダイレクト
アドレッシング領域
I/Oマップ参照
外部領域
アクセス禁止
000A 0000 H
内蔵ROM384KB
内蔵ROM384KB
外部領域
0010 0000 H
アクセス禁止
外部領域
FFFF FFFF H
45
第 3 章 CPU および制御部
図 3.1-4 MB91F356B のメモリマップ
シングルチップモード 内ROM外バスモード 外ROM外バスモード
0000 0000 H
0000 0400 H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 8KB
(Instruction)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
内蔵RAM 16KB
(Data)
アクセス禁止
アクセス禁止
ダイレクト
アドレッシング領域
I/Oマップ参照
0001 0000 H
0003 E000 H
0004 0000 H
0004 4000 H
0005 0000 H
0008 0000 H
000C 0000 H
アクセス禁止
外部領域
アクセス禁止
内蔵ROM 256KB
内蔵ROM 256KB
アクセス禁止
外部領域
外部領域
0010 0000 H
FFFF FFFF H
• 各モードの設定は , INIT ネゲート後のモードベクタフェッチにより決定します
( モードの設定に関しては , 「3.8.2 モード設定」を参照してください ) 。
• MB91V350A では ,
MB91355A/F355A/353A/F353A/F357B メモリマップにおいて内蔵
ROM512K バイトの領域が , MB91F356B メモリマップにおいて内蔵 ROM256K バイト
の領域が , エミュレーション RAM となります。また , 内蔵 RAM(Instruction) が 8K バイ
トから 16K バイトに拡張されています。
• 内蔵 RAM は , リセット解除直後は使用可能領域が制限されています。また , 使用可
能領域の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。
46
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
FR ファミリの内部アーキテクチャの構造および命令概要について説明します。
■ 内部アーキテクチャの概要
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた
高機能命令を導入した , 高性能コアです。
47
第 3 章 CPU および制御部
3.2.1
内部アーキテクチャ
内部アーキテクチャの特長および構造について説明します。
■ 内部アーキテクチャの特長
• RISC アーキテクチャの採用
基本命令 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
- 32 ビット× 32 ビット乗算 5 サイクル
- 16 ビット× 16 ビット乗算 3 サイクル
• 割込み処理機能の強化
- 高速応答速度 (6 サイクル )
- 多重割込みのサポート
- レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
- メモリ - メモリ転送命令
- ビット処理命令
• 高いコード効率
基本命令語長 16 ビット
• 低消費電力
- スリープモードストップモード
- ギア機能
48
第 3 章 CPU および制御部
■ 内部アーキテクチャの構造
FR の CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造を採
用しています。
32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。
ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ
スコントローラとのインタフェースを実現します。
図 3.2-1 に内部アーキテクチャの構造を示します。
図 3.2-1 内部アーキテクチャの構造
FRex CPU
D-bus
I-bus
32
I アドレス
ハーバード
32
外部アドレス
24
I データ
D アドレス
データ
RAM
32
外部データ
16
プリンストン
バス
D データ
コンバータ
32
32ビット
アドレス
32
16ビット
データ
32
バスコンバータ
16
F-bus
R-bus
周辺リソース
内部I/O
バスコンバータ
49
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採
用しています。パイプラインは以下のステージから構成されています。
図 3.2-2 に , 命令パイプラインの構成を示します。
• 命令フェッチ (IF)
:命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
:フェッチした命令をデコードします。レジスタの読出しも行
います。
• 実行 (EX)
:演算を実行します。
• メモリアクセス (MA) :メモリに対するロードまたはストアのアクセスを行います。
• ライトバック (WB)
:演算結果 ( またはロードされたメモリデータ ) をレジスタに
書き込みます。
図 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 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と ,
16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回
路へのデータアクセスを実現します。
CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ
れを 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部
にはアクセス幅に関して制限のあるものがあります。
50
第 3 章 CPU および制御部
■ ハーバード←→プリンストン バスコンバータ
ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ
スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。
CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
51
第 3 章 CPU および制御部
3.2.2
命令概要
FR は , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算と
ビット操作およびダイレクトアドレッシング命令をサポートしています。命令セッ
トの一覧は「付録 D 命令一覧表」に示します。
各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効
率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
■ 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
■ ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
■ 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては「3.6 分岐命令」に記述します。
■ 論理演算とビット操作
論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND, OR,
EOR の論理演算を行うことが可能です。またビット操作命令はメモリ ( および I/O) の内
容を直接操作することができます。
メモリアドレッシングは一般的なレジスタ間接です。
52
第 3 章 CPU および制御部
■ ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については
レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも
可能です。
■ その他の命令概要
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
53
第 3 章 CPU および制御部
3.3
プログラミング・モデル
FR ファミリのプログラミングモデル , 汎用レジスタ , および専用レジスタについて
説明します。
■ 基本プログラミングモデル
図 3.3-1 に , FR ファミリの基本プログラミングモデルを示します。
図 3.3-1 基本プログラミングモデル
32ビット
〔初期値〕
R0
XXXX XXXX H
R1
… … … 汎用レジスタ
R12
…
…
… … … R13
… R14
R15
AC
FP
XXXX XXXX H
SP
0000 0000 H
プログラムカウンタ PC
プログラムステータス PS テーブルベースレジスタ TBR
リターンポインタ RP
システムスタックポインタ SSP
ユーザスタックポインタ USP
乗除算結果レジスタ
54
MDH
MDL
-
ILM
-
SCR
CCR
第 3 章 CPU および制御部
3.3.1
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。
各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ
れます。
■ 汎用レジスタ
図 3.3-2 に , 汎用レジスタの構成を示します。
図 3.3-2 汎用レジスタの構成
32ビット
〔初期値〕
R0 R1 … … R12
R13
R14
R15
…
…
AC
FP
SP
XXXX XXXXH
… … … … … XXXX XXXXH
0000 0000H
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
• R13:
仮想アキュムレータ
• R14:
フレームポインタ
• R15:
スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
55
第 3 章 CPU および制御部
3.3.2
専用レジスタ
専用レジスタは , 特定の目的のために使用します。
FR ファミリでは , 以下の専用レジスタが用意されています。
• PS (Program Status)
• CCR (Condition Code Register)
• SCR (System Condition code Register)
• ILM
• PC (Program Counter)
• TBR (Table Base Register)
• RP (Return Pointer)
• SSP (System Stack Pointer)
• USP (User Stack Pointer)
• 乗除算レジスタ (Multiply & Divide register)
■ PS (Program Status)
PS は , プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパー
トに分かれています。
未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
PS(Program Status) のレジスタ構成は , 以下のとおりです。
ビット位置→ 31
20
16
── ── ILM
56
10 8 7
SCR CCR
0
第 3 章 CPU および制御部
■ CCR (Condition Code Register)
CCR (Condition Code Register) のレジスタ構成は , 以下のとおりです。
7
-
6
-
5
S
4
I
3
2
N
Z
1
V
0
[ 初期値 ]
C
--00XXXXB
[ ビット 5] スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内 容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります ( ただし , スタックに退避される値はクリアされる
前の値です ) 。
1
USP が R15 として使用されます。
• リセットにより "0" にクリアされます。
• RETI 命令実行時は "0" に設定してください。
[ ビット 4] 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内 容
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます ( ただし , スタック退避させる値はクリアする前
の値です ) 。
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。
リセットにより "0" にクリアされます。
[ ビット 3] ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内 容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
[ ビット 2] ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内 容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
57
第 3 章 CPU および制御部
[ ビット 1] オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内 容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[ ビット 0] キャリフラグ
演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示します。
値
内 容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
■ SCR (System Condition code Register)
SCR (System Condition code Register) のレジスタ構成は , 以下のとおりです。
10
9
8
[ 初期値 ]
D1
D0
T
XX0B
[ ビット 10, 9] ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中は , 変更してはいけません。ステップ除算実行途中にほかの処理を
行う場合は , PS レジスタの値を退避・復帰することによりステップ除算の再開が保証
されます。
• リセットによる初期状態は不定です。
• DIV0S 命令の実行により被除数と除数を参照して設定されます。
• DIV0U 命令の実行により , 強制的にクリアされます。
• DIV0S/DIV0U 命令とユーザ割込み , NMI 同時受付け EIT 処理ルーチン内で , EIT 分
岐前の PS レジスタの D0/D1 ビットを期待した処理を行わないでください。
• DIV0S/DIV0U 命令の直前に , ブレーク , ステップ等で停止させた場合 , PS レジスタ
の D0/D1 ビットの表示は正しい値とならないことがあります。ただし , 復帰後の演
算結果は正しいものになります。
[ ビット 8] ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内 容
0
ステップトレーストラップ無効です。
1
ステップトレーストラップ有効です。
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となります。
• リセットにより "0" に初期化されます。
• ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中で使用することはできません。
58
第 3 章 CPU および制御部
■ ILM
ILM のレジスタ構成は , 以下のとおりです。
20
19
18
17
16
[ 初期値 ]
ILM4
ILM3
ILM2
ILM1
ILM0
01111B
[ ビット 20 ∼ 16]
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。
• 元の値が 16 ∼ 31 の時 :
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると ,
( 指定した値+ 16) という値が転送されます。
• 元の値が 0 ∼ 15 の時 :
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15 (01111B) に初期化されます。
■ PC (Program Counter)
PC(Program Counter) のレジスタ構成は , 以下のとおりです。
31
0
[ 初期値 ]
XXXXXXXXH
PC
[ ビット 31 ∼ 0]
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , ビット 0 は "0" に設定されます。ビット 0 が "1" に
なる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
リセットによる初期値は不定です。
■ TBR (Table Base Register)
TBR(Table Base Register) のレジスタ構成は , 以下のとおりです。
31
TBR
0
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
59
第 3 章 CPU および制御部
■ RP (Return Pointer)
RP(Return Pointer) のレジスタ構成は , 以下のとおりです。
31
0
[ 初期値 ]
XXXXXXXXH
RP
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RETI 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ SSP (System Stack Pointer)
SSP(System Stack Pointer) のレジスタ構成は , 以下のとおりです。
31
0
[ 初期値 ]
00000000H
SSP
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
■ USP (User Stack Pointer)
USP(User Stack Pointer) のレジスタ構成は , 以下のとおりです。
31
USP
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
60
0
[ 初期値 ]
XXXXXXXXH
第 3 章 CPU および制御部
■ 乗除算レジスタ (Multiply & Divide register)
乗除算レジスタ (Multiply & Divide register) のレジスタ構成は , 以下のとおりです。
31
0
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……商
61
第 3 章 CPU および制御部
データ構造
3.4
FR ファミリのデータ構造について説明します。
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.4-1 に , ビットオーダリングのデータ配置を示します。
図 3.4-1 ビットオーダリングのデータ配置
bit
31
29
30
27
28
25
26
23
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
7
8
5
6
3
4
1
2
MSB
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.4-2 に , バイトオーダリングのデータ配置を示します。
図 3.4-2 バイトオーダリングのデータ配置
MSB
LSB
メモリ
ビット 31 23
15
7
0
10101010 11001100 11111111 00010001
ビット
7
0
n番地 10101010
(n+1)番地 11001100
(n+2)番地 11111111
(n+3)番地 00010001
62
第 3 章 CPU および制御部
■ ワードアライメント
● プログラムアクセス
FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。
PC のビット 0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。
"1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで
す。
ただし , その場合でもビット 0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
奇数アドレス例外はありません。
● データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
イメントがアドレスに対して施されます。
ワードアクセス
: アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00")
ハーフワードアクセス
: アドレスは , 2 の倍数 ( 最下位ビットは強制的に "0")
バイトアクセス
: ──
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。
例えば , @ (R13, Ri) のアドレッシングモードの場合 , 加算前のレジスタは ( たとえ最下
位ビットが "1" であっても ) そのまま計算に使用され , 加算結果の下位ビットがマスク
されます。計算前のレジスタがマスクされるわけではありません。
[ 例 ] LD @ (R13, R2) , R0
R13
00002222H
R2 00000003H
+) ────────────────
加算結果 00002225H
↓ 下位
2ビット強制マスク
アドレス 端子 00002224H
63
第 3 章 CPU および制御部
3.5
メモリマップ
FR ファミリのメモリマップについて説明します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.5-1 に , メモリマップを示します。
図 3.5-1 メモリマップ
0000 0000
H
バイト
データ
0000 0100
H
ハーフワード
データ
0000 0200 H
ワードデータ
ダイレクト
アドレッシング領域
0000 0400 H
~ ~
000F FC00 H
ベクタテーブル
初期領域
000F FFFF H
~ ~
FFFF FFFF H
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは , データ長ごとに異なります。
• バイトデータ (8 ビット )
: 000H ∼ 0FFH
• ハーフワードデータ (16 ビット )
: 000H ∼ 1FFH
• ワードデータ (32 ビット )
: 000H ∼ 3FFH
● ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT処理時に使用されるベクタテーブルは, TBRを書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
64
第 3 章 CPU および制御部
3.6
分岐命令
FR ファミリの分岐命令について説明します。
■ 分岐命令の概要
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指
定することができます。
65
第 3 章 CPU および制御部
3.6.1
遅延スロット付き動作
分岐命令に遅延スロット付き動作を指定した場合について説明します。
■ 遅延スロット付き動作の命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D
@Ri
CALL:D label12
CALL:D @Ri
RET:D
BRA:D label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
■ 遅延スロット付き動作の動作説明
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」とよびます ) に置かれた命令を実行した後に分岐します。
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置く必要があります。
[例]
; 命令の並び
ADD
R1, R2
;
BRA:D LABEL ; 分岐命令
MOV
R2, R3; 遅延スロット……分岐の前に実行される
…
R3, @R4 ; 分岐先
LABEL: ST
条件分岐命令の場合 , 分岐条件が成立するかしないかに関わらず , 遅延スロットに置か
れた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体的な説明をします。
1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更
新しても影響を受けません。
[例]
LDI:32 #Label, R0
JMP:D @R0
;Label に分岐
LDI:8 #0,
; 分岐先アドレスには影響を与えない
…
66
R0
第 3 章 CPU および制御部
2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
RET:D
; これより前に設定された RP の示すアドレスへ分岐
MOV R8, RP
; リターン動作には影響を与えない
…
3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
; フラグ変化
ADD
#1, R0
BC:D
Overflow ; 上記の命令の実行結果により分岐
ANDCCR #0
; このフラグ更新は上記分岐命令では参照しない
…
4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更
新された内容が読み出されます。
[例]
CALL:D Label
MOV
;RP を更新して分岐
RP, R0 ; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き動作の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または「b」
または「c」または「d」と記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
● 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し
ません。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
67
第 3 章 CPU および制御部
3.6.2
遅延スロットなし動作
分岐命令に遅延スロットなし動作を指定した場合について説明します。
■ 遅延スロットなし動作の命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
■ 遅延スロットなし動作の動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。
直後の命令が分岐前に実行されることはありません。
[例]
; 命令の並び
ADD R1, R2
;
BRA LABEL
; 分岐命令 ( 遅延スロットなし )
MOV R2, R3
; 実行されない
…
LABEL ST
R3, @R4
; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない
ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる
ことができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させることが可能となります。
68
第 3 章 CPU および制御部
3.7
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命
令から再実行します。
割込みとは , 実行中のコンテキストに無関係に発生する事象です。イベント要因は ,
ハードウェアです。
トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー
ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の
命令から再実行します。
■ EIT の特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
<注意事項>
分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.6 分岐命令」を
参照してください。
■ EIT からの復帰
EIT から復帰するためには , RETI 命令を実行します。
69
第 3 章 CPU および制御部
3.7.1
EIT の割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
表 3.7-1 に , 各レベルの割当てを示します。
表 3.7-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
0
( システム予約 )
…
…
…
…
00011
…
3
( システム予約 )
00100
4
00101
5
( システム予約 )
…
…
…
…
01110
…
14
…
01111
15
NMI ( ユーザ用 )
10000
16
割込み
10001
17
割込み
…
…
…
…
11110
…
30
…
割込み
11111
31
─
注意事項
…
{
INTE 命令
ステップトレーストラップ
ILM の元の値が 16 ∼ 31 のとき , この
範囲の値をプログラムにより ILM に設
定することはできません。
( システム予約 )
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
( 注意事項 ) 操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
■ I フラグ
I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR のビット
4 として設けられています。
70
値
内 容
0
割込み禁止。
INT 命令実行時 "0" にクリアされます ( ただし , スタック退避させる値はクリアする前
の値です ) 。
1
割込み許可。
割込み要求のマスク処理は , ILM の保持する値により制御されます。
第 3 章 CPU および制御部
■ ILM
ILM は , 割込みレベルマスク値を保持する PS レジスタ (20 ∼ 16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。任意の値を設定するに
は STILM 命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.7-1 )
が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき
はマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
71
第 3 章 CPU および制御部
3.7.2
ICR (Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ ICR ビット構成
ICR のビット構成は , 以下のとおりです。
7
6
5
4
3
2
1
0
-
-
-
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
[ 初期値 ]
---111111B
[ ビット 4]
ICR4 は , 常に "1" です。
[ ビット 3 ∼ 0] ICR3 ∼ 0
対応する割込み要因の割込みレベルの下位 4 ビットです。リード・ライト可能です。
ビット 4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ ICR マッピング
表 3.7-2 に , 割込み要因と割込み制御レジスタ , 割込みベクタの割当てを示します。
表 3.7-2 割込み要因と割込み制御レジスタ , 割込みベクタ
割込み制御レジスタ
割込み要因
対応する割込みベクタ
番号
番号
アドレス
IRQ00
ICR00
IRQ01
10 進
00000440H
10H
16
TBR+3BCH
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 初期値 :000F FC00H
・「第 9 章 割込みコントローラ」を参照してください。
72
アドレス
16 進
第 3 章 CPU および制御部
3.7.3
SSP (System Stack Pointer)
SSP が , EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポイン
タとして使用されます。
■ SSP (System Stack Pointer)
SSP のレジスタ構成は , 以下のとおりです。
31...
SSP
...0
[ 初期値 ]
00000000H
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
73
第 3 章 CPU および制御部
割込みスタック
3.7.4
SSP により示される領域で , PC および PS の値が退避・復帰されます。
割込み後は SSP の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されてい
ます。
■ 割込みスタック
図 3.7-1 に , 割込みスタックの例を示します。
図 3.7-1 割込みスタック
[割込前]
SSP
80000000H
[割込後]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
74
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
第 3 章 CPU および制御部
3.7.5
TBR (Table Base Register)
Table Base Register は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタで
す。
■ TBR (Table Base Register)
TBR のレジスタ構成は , 以下のとおりです。
31...
TBR
...0
[ 初期値 ]
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は 000FFC00H です。
75
第 3 章 CPU および制御部
3.7.6
EIT ベクタテーブル
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
■ EIT ベクタテーブル
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと
おりです。
vctadr=TBR + vctofs
=TBR + (3FCH − 4 × vct)
vctadr: ベクタアドレス
vctofs: ベクタオフセット
vct: ベクタ番号
加算結果の下位 2 ビットは常に "00" として扱われます。
000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
表 3.7-3 に , アーキテクチャ上のベクタテーブルを示します。
表 3.7-3 ベクタテーブル (1 / 3)
割込み番号
割込みレベル
オフセット
TBR デフォルト
のアドレス
00
-
3FCH
000FFFFCH
1
01
-
3F8H
000FFFF8H
システム予約
2
02
-
3F4H
000FFFF4H
システム予約
3
03
-
3F0H
000FFFF0H
000FFFECH
割込み要因
リセット *1
モードベクタ
*1
16 進
0
システム予約
4
04
-
3ECH
システム予約
5
05
-
3E8H
000FFFE8H
システム予約
6
06
-
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
-
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
-
3DCH
000FFFDCH
INTE 命令
9
09
-
3D8H
000FFFD8H
命令ブレーク例外
10
0A
-
3D4H
000FFFD4H
オペランドブレークトラップ
11
0B
-
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
-
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
-
3C8H
000FFFC8H
未定義命令例外
14
0E
-
3C4H
000FFFC4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
ICR03
3B0H
000FFFB0H
外部割込み 3
76
10 進
19
13
第 3 章 CPU および制御部
表 3.7-3 ベクタテーブル (2 / 3)
割込み番号
割込み要因
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
外部割込み 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
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
マスク可能要因
*2
27
1B
ICR11
390H
000FFF90H
マスク可能要因
*2
28
1C
ICR12
38CH
000FFF8CH
マスク可能要因
*2
29
1D
ICR13
388H
000FFF88H
マスク可能要因
*2
30
1E
ICR14
384H
000FFF84H
マスク可能要因 *2
31
1F
ICR15
380H
000FFF80H
マスク可能要因 *2
32
20
ICR16
37CH
000FFF7CH
マスク可能要因 *2
33
21
ICR17
378H
000FFF78H
マスク可能要因 *2
34
22
ICR18
374H
000FFF74H
マスク可能要因 *2
35
23
ICR19
370H
000FFF70H
マスク可能要因 *2
36
24
ICR20
36CH
000FFF6CH
マスク可能要因 *2
37
25
ICR21
368H
000FFF68H
マスク可能要因
*2
38
26
ICR22
364H
000FFF64H
マスク可能要因
*2
39
27
ICR23
360H
000FFF60H
マスク可能要因
*2
40
28
ICR24
35CH
000FFF5CH
マスク可能要因 *2
41
29
ICR25
358H
000FFF58H
マスク可能要因 *2
42
2A
ICR26
354H
000FFF54H
マスク可能要因 *2
43
2B
ICR27
350H
000FFF50H
マスク可能要因 *2
44
2C
ICR28
34CH
000FFF4CH
マスク可能要因 *2
45
2D
ICR29
348H
000FFF48H
マスク可能要因 *2
46
2E
ICR30
344H
000FFF44H
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
マスク可能要因 *2
48
30
ICR32
33CH
000FFF3CH
マスク可能要因 *2
49
31
ICR33
338H
000FFF38H
マスク可能要因 *2
50
32
ICR34
334H
000FFF34H
マスク可能要因 *2
51
33
ICR35
330H
000FFF30H
マスク可能要因 *2
52
34
ICR36
32CH
000FFF2CH
マスク可能要因 *2
53
35
ICR37
328H
000FFF28H
マスク可能要因 *2
54
36
ICR38
324H
000FFF24H
マスク可能要因 *2
55
37
ICR39
320H
000FFF20H
マスク可能要因
*2
56
38
ICR40
31CH
000FFF1CH
マスク可能要因
*2
57
39
ICR41
318H
000FFF18H
77
第 3 章 CPU および制御部
表 3.7-3 ベクタテーブル (3 / 3)
割込み番号
割込み要因
割込みレベル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
マスク可能要因 *2
58
3A
ICR42
314H
000FFF14H
マスク可能要因 *2
59
3B
ICR43
310H
000FFF10H
マスク可能要因 *2
60
3C
ICR44
30CH
000FFF0CH
マスク可能要因 *2
61
3D
ICR45
308H
000FFF08H
*2
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
000FFEECH
マスク可能要因
システム予約
68
44
-
2ECH
システム予約
69
45
-
2E8H
000FFEE8H
システム予約
70
46
-
2E4H
000FFEE4H
システム予約
71
47
-
2E0H
000FFEE0H
システム予約
72
48
-
2DCH
000FFEDCH
システム予約
73
49
-
2D8H
000FFED8H
システム予約
74
4A
-
2D4H
000FFED4H
システム予約
75
4B
-
2D0H
000FFED0H
システム予約
76
4C
-
2CCH
000FFECCH
システム予約
77
4D
-
2C8H
000FFEC8H
システム予約
78
4E
-
2C4H
000FFEC4H
-
2C0H
000FFEC0H
2BCH
000FFEBCH
∼
000H
∼
000FFC00H
システム予約
INT 命令で使用
79
4F
80
50
∼
∼
255
FF
-
*1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス 000FFFFCH, 000FFFF8H が使用さ
れます。
*2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは「付録 B 割込みベクタ」を
参照してください。
78
第 3 章 CPU および制御部
3.7.7
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理
し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返
します。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は ,
次の 2 つの要素によって決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
表 3.7-4 に , EIT 要因受理の優先度を示します。
表 3.7-4 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 になります ( 本品
種ではエミュレータ用 NMI をデータアクセスによるブレークに使用しています ) 。
79
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.7-5 のようになります。
表 3.7-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1: ほかの要因は破棄されます。
*2: INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生します。
INTE による要因は無視されます。
図 3.7-2 に多重 EIT 処理の例を示します。
図 3.7-2 多重 EIT 処理
メイン ルー チン
NMIのハ ンド ラ
INT命令
のハンドラ
優先度
(高) NMI 発生
①最初 に実 行
(低) INT 命令実行
②次に 実行
80
第 3 章 CPU および制御部
3.7.8
動作
FR ファミリの各動作について説明します。
以降の説明で , 転送元の「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) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) 次の命令のアドレス → (SSP)
5) 受理した要求の割込みレベル → ILM
6) "0" → S フラグ
7) (TBR +受理した割込み要求のベクタオフセット ) → PC
割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
81
第 3 章 CPU および制御部
に遷移します。
ユーザ割込み, またはNMI要因が発生している状態で割込みを許可するためにORCCR,
STILM, および MOV Ri, PS の各命令が実行されると , 割込みハンドラの前後で上記命
令が 2 回実行される場合があります。ただし , CPU 内のレジスタに対して , 同じ値を 2
度設定するだけですので , 動作的に問題ありません。
EIT 処理ルーチン内では EIT 分岐前の PS レジスタの内容を期待した処理を行わないで
ください。
■ INT 命令の動作
INT#u8:
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) PC + 2 → (SSP)
5) "0" → I フラグ
6) "0" → S フラグ
7) (TBR + 3FCH-4 × u8) → PC
■ INTE 命令の動作
INTE:
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) PC + 2 → (SSP)
5) "00100" → ILM
6) "0" → S フラグ
7) (TBR + 3D8H) → PC
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
82
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。
[ ステップトレーストラップ検出の条件 ]
1) T フラグ= 1
2) 遅延分岐命令ではないとき。
3) INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。
4) 以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) 次の命令のアドレス → (SSP)
5) "00100" → ILM
6) "0" → S フラグ
7) (TBR + 3CCH) → PC
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
[ 未定義命令例外の検出条件 ]
1) 命令のデコード時に , 未定義命令であることを検出します。
2) 遅延スロット外に置かれています ( 遅延分岐命令の直後ではない ) 。
3) 以上の条件が成立すると未定義命令例外が発生し , ブレークします。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) PC → (SSP)
5) "0" → S フラグ
6) (TBR + 3C4H) → PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
83
第 3 章 CPU および制御部
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) 次の命令のアドレス→ (SSP)
5) "0" → S フラグ
6) (TBR + 3E0H) → PC
■ コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを
操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま
す。
[ 動作 ]
1) SSP-4 → SSP
2) PS → (SSP)
3) SSP-4 → SSP
4) 次の命令のアドレス → (SSP)
5) "0" → S フラグ
6) (TBR + 3DCH) → PC
■ RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
1) (R15) → PC
2) R15 + 4 → R15
3) (R15) → PS
4) R15 + 4 → R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
84
第 3 章 CPU および制御部
3.8
動作モード
FR ファミリの動作モードについて説明します。
■ 動作モードの概要
動作モードには , バスモードとアクセスモードがあります。
■ バスモード
バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し
ます。
■ アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR7(Area Configuration Register) 内の DBW1, DBW0
ビットで指定します。
85
第 3 章 CPU および制御部
3.8.1
バスモード
FR ファミリには , 次に示す 3 つのバスモードがあります。
詳細は「3.1 メモリ空間」を参照してください。
■ バスモード 0 ( シングルチップモード )
内部 I/O, D-bus RAM, F-bus RAM, F-bus ROM が有効で , それ以外の領域へのアクセスは
無効であるモードです。
外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機
能しません。
■ バスモード 1 ( 内 ROM 外バスモード )
内部 I/O, D-bus RAM, F-bus RAM, F-bus ROM が有効で , 外部アクセスが可能な領域への
アクセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子とし
て機能します。
■ バスモード 2 ( 外 ROM 外バスモード )
内部 I/O, D-bus RAM が有効で , F-bus RAM, F-bus ROM へのアクセスを禁止にしてすべ
てのアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子
として機能します。
86
第 3 章 CPU および制御部
モード設定
3.8.2
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作
モードの設定を行います。
■ モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。
表 3.8-1 にモードベクタフェッチに関する指定を示します。
表 3.8-1 モードベクタフェッチに関する指定
モード端子
MD2 MD1 MD0
リセットベクタ
アクセス領域
モード名
000
内 ROM モードベクタ
内部
001
外 ROM モードベクタ
外部
備考
バス幅はモードレジスタで設定
ただし , 表に示した設定以外は禁止とします。
■ モードレジスタ (MODR)
モードベクタフェッチによってモードレジスタに書き込むデータを , モードデータと
よびます。モードベクタフェッチについては , 「3.9.3 リセットシーケンス」を参照し
てください。
モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定にしたがった動作
モードで動作します。
モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか
らは書き込むことはできません。
<参考>
従来 FR ファミリのモードレジスタのアドレス (0000_07FFH) には , なにも存在しません。
エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令
を使用してください。
16/32 ビット長の転送命令では書き込めません。
モードレジスタの詳細は以下のとおりです。
〔レジスタ詳細説明〕
MODR
000FFFF8H
7
6
5
4
3
−
−
−
−
−
2
1
0
ROMA WTH1 WTH0
初期値
XXXXXXXXB
動作モード設定ビット
87
第 3 章 CPU および制御部
[ ビット 7 ∼ 3] 予約ビット
必ず "00000" を設定してください。
"00000" 以外の値を設定したときの動作は保証できません。
[ ビット 2] ROMA ( 内部 ROM イネーブルビット )
内部 F-bus RAM, F-bus ROM 領域を有効にするかどうかを設定します。
ROMA
機 能
0
外 ROM モード
1
内 ROM モード
備 考
内蔵 F-bus RAM は有効 , 内部 ROM 領域 (80000H ∼ 100000H) が外
部領域になります。
内蔵 F-bus RAM, F-bus ROM が有効になります。
[ ビット 1, 0] WTH1, WTH0 ( バス幅指定ビット )
外バスモード時のバス幅指定の設定を行います。
外バスモード時 , この値が ACROH (CS0 領域 ) の DBW1, DBW0 ビットに設定されます。
88
WTH1
WTH0
0
0
8 ビットバス幅
外バスモード
0
1
16 ビットバス幅
外バスモード
1
0
―
設定禁止
1
1
シングルチップモード
シングルチップモード
機 能
備 考
第 3 章 CPU および制御部
3.9
リセット ( デバイス初期化 )
本品種の初期化であるリセット動作について説明します。
■ リセット ( デバイス初期化 ) の概要
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始にいたる一連の動作をリセット
シーケンスとよびます。
89
第 3 章 CPU および制御部
3.9.1
リセットレベル
本品種のリセット動作は , 2 種類のレベルに分かれており , それぞれ発生要因および
初期化の内容が異なります。
ここでは , 各リセットレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび
ます。
設定初期化リセット (INIT) により初期化される主な内容は , 以下のとおりです。
〔設定初期化リセット (INIT) による初期化箇所〕
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バスの CS0 領域に関するすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化されるすべての箇所
詳細はそれぞれの機能の説明を参照してください。
なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は , 以下のとおりです。
〔動作初期化リセット (RST) による初期化箇所〕
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関するすべての設定
詳細はそれぞれの機能の説明を参照してください。
90
第 3 章 CPU および制御部
3.9.2
リセット要因
本品種における各リセット発生要因と発生するリセットレベルについて説明します。
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことで
確認できます ( 各説明にあるレジスタ , フラグの詳細な説明は , 「3.10.5 クロック
生成制御部のブロックダイヤグラム」および「3.10.6 クロック生成制御部のレジス
タ詳細説明」を参照してください ) 。
■ INIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
本端子へ "L" レベル入力を行っている間 , 設定初期化リセット (INIT) 要求が発生しま
す。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ
ジスタ ) 中のビット 15:INIT ビットがセットされます。本端子要求による設定初期化リ
セット (INIT) は , すべてのリセット要因中で最強のものであり , すべての入力・動作・
状態よりも優先されます。
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
Low レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子
による INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 発生要因
: 外部 INIT 端子への Low レベル入力
• 解除要因
: 外部 INIT 端子への High レベル入力
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 15:INIT
91
第 3 章 CPU および制御部
■ STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットに "0" が書き込まれると ,
ソフトウェアリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要
求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中のビット 11:SRST ビットがセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース
カウンタ制御レジスタ ) 中のビット 7:SYNCR ビットがセットされている場合 ( 同期リ
セットモード ) , すべてのバスアクセスが停止してからでないと発生しません。
このため , バスの使用状況によっては動作初期化リセット (RST) が発生するまでに長
時間を要する場合があります。
• 発生要因 :
STCR ( スタンバイ制御レジスタ ) 中のビット 4:SRST ビットへの "0"
が書込み
• 解除要因 :
動作初期化リセット (RST) の発生
• 発生レベル : 動作初期化リセット (RST)
• 対応フラグ : ビット 11:SRST
■ ウォッチドッグリセット
RSRR ( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグ
タイマが起動します。その後 , RSRR 中のビット 9, 8:WT1, WT0 ビットにて設定した周
期内に WPR ( ウォッチドッグリセット発生延期レジスタ ) への A5H/5AH 書込みが行わ
れないと , ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合, RSRR
( リセット要因レジスタ ) 中のビット 13:WDOG ビットがセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
• 発生要因 :
ウォッチドッグタイマの設定周期経過
• 解除要因 :
設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
• 発生レベル : 設定初期化リセット (INIT)
• 対応フラグ : ビット 13:WDOG
92
第 3 章 CPU および制御部
3.9.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
ここでは , 各リセットレベルにおけるリセットシーケンスの動作内容について説明
します。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1) 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
2) 発振安定待ち時間 (STCR のビット 3, 2: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 ( プログラムカウンタ ) の示す番地より , プログラム動作開始
93
第 3 章 CPU および制御部
3.9.4
発振安定待ち時間
デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき ,
自動的に発振安定待ち状態に遷移します。
本機能により発振開始後の安定していない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定
待ち時間の経過を待ちます。
ここでは , 発振安定待ち動作の詳細について説明します。
■ 発振安定待ち発生要因
発振安定待ち発生要因を , 以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
なお, INIT端子による初期化時は発振安定待ち時間は最小値に設定されるため, 発振安
定待ちは行いません。電源投入時および発振停止後は発振安定待ち時間 INIT を入力し
てください。
● ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。
ただし, 設定初期化リセット (INIT) 要求により解除された場合は, 設定初期化リセット
(INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後, 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷
移します。
• 有効な外部割込み要求入力 (NMI 含む ) および , 時計タイマ / メイン発振安定待ちタ
イマ割込みの発生による復帰時 :
通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時 :
動作初期化リセット (RST) 状態へ遷移します。
● PLL 選択時の異常状態の発生からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生し
た場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。
94
第 3 章 CPU および制御部
● サブクロックでメイン発振停止中のウォッチドッグリセット発生時
サブクロックをソースクロックとして動作しているときに , OSCCR( 発振制御レジス
タ ) のビット 0:OSCDS1 ビットによってメイン発振停止中にウォッチドッグリセット
が発生した場合 , リセット (INIT) が解除された直後に発振安定待ち状態に遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
なお , サブクロックで OSCDS1 ビットが "0" の時およびメインクロック時は発振安定
待ちを行いません。
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。
STCR ( スタンバイ制御レジスタ ) のビット 3, 2:OS1, OS0 ビットにより , 発振安定待ち
時間を 4 種類のうちから選択して設定することができます。
いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初
期化されません。それ以外の , ウォッチドッグリセットによる設定初期化リセット
(INIT) や , 動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち
時間が保持されます。
発振安定待ち時間の選択の 4 種類の設定は , それぞれ以下の用途を想定してあります。
• OS1, OS0="00B": 発振安定待ち時間なし
( ストップモードで PLL も発振器を停止させない場合 )
• OS1, OS0="01B": PLL ロック待ち時間
( ストップモードで発振器を停止させない場合 )
• OS1, OS0="10B": 発振安定待ち時間 ( 中 )
( セラミック振動子などの安定が速い発振子を使用する場合 )
• OS1, OS0="11B": 発振安定待ち時間 ( 長 )
( 一般の水晶発振子などを使用する場合 )
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット (INIT) をかけてください。
また , 下記状態では , 発振回路の発振安定待ち時間を確保するため , INIT 端子への "L"
レベル入力を発振回路の要求する安定待ち時間の間持続してください (INIT 端子によ
る INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
• 電源投入直後の INIT 端子入力
• ストップモードで発振停止中の INIT 端子入力
• クロックソースとしてサブクロック選択中かつメイン発振停止状態での INIT 端子
入力
したがって , メイン , サブ両方の安定発振を行うためには , INIT 端子入力はメインク
ロック , サブクロック両方の発振安定待ち時間を満たす期間 "L" レベルを入力してくだ
さい。
95
第 3 章 CPU および制御部
3.9.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , TBCR ( タイムベースカウンタ制御レジスタ ) 中の
ビット 7:SYNCR ビットによってどちらのモードで動作するかを設定します。
本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。
設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。
ここでは , 各モード動作について説明します。
■ 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状
態への遷移を行う動作を , 通常リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動
作状態に関わらず , 即時にリセット (RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結
果を保証できません。しかし , それら要求を確実に受け付けることが可能です。
TBCR ( タイムベースカウンタ制御レジスタ ) 中のビット 7:SYNCR ビットが "0" のとき ,
通常リセットモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。
96
第 3 章 CPU および制御部
■ 同期リセット動作
動作初期化リセット (RST) 要求が発生した際に , すべてのバスアクセスが停止してか
ら動作初期化リセット (RST) 状態への遷移を行う動作を , 同期リセット動作とよびま
す。
本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行
われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され
ます。各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点ではすべてのバスアクセスが停止しているため ,
すべてのバスアクセスの結果を保証できます。
しかし , バスアクセスが何らかの理由により停止しない場合 , その間各要求を受け付け
ることができなくなります (この様な場合でも, 設定初期化リセット (INIT) は即座に有
効となります ) 。
バスアクセスが停止しない要因には以下のものがあげられます。
• 外部拡張バスインタフェースに対し BRQ ( バス解放要求 ) が入力され続け , BGRNT
( バス解放アクノリッジ ) が有効となっている場合で , 内部バスから新たなバスアク
セス要求が発生しているような場合
• 外部拡張バスインタフェースに対し RDY ( レディ要求 ) が入力され続け , バスウェ
イトが有効となっている場合 ( また , 以下の場合においては , 最終的には各状態へ遷
移しますが , 遷移するまでに長時間かかってしまいます。)
• SDRAM インタフェースが起動されており , スリープ時のセルフリフレッシュを行
う設定となっている場合 ( セルフリフレッシュモード設定完了までは状態遷移しま
せん。)
<参考>
• DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状
態への遷移を遅延させることはありません。
• TBCR ( タイムベースカウンタ制御レジスタ ) 中のビット 7:SYNCR ビットが "1" のと
き , 同期リセットモードとなります。
<注意事項>
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
97
第 3 章 CPU および制御部
3.10
クロック生成制御
クロック生成制御について説明します。
■ 内部動作クロックの生成
本品種の内部動作クロックは , 以下のようにして生成されます。
• ソースクロックの選択 :
クロックの供給源を選択します。
• ベースクロックの生成 :
ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。
• 各内部クロックの生成 :
ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。
以降 , 各クロック生成とその制御について説明します。
各説明にあるレジスタ , フラグの詳細な説明は「3.10.5 クロック生成制御部のブロック
ダイヤグラム」および「3.10.6 クロック生成制御部のレジスタ詳細説明」を参照して
ください。
■ ソースクロックの選択
ソースクロックの選択について説明します。
外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生
成した原発振がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で
き , 動作中に任意に切り換えて使用することが可能です。
• メインクロック :
X0/X1端子入力から生成し, 高速クロックとして使用することを
想定したものです。
• サブクロック :
X0A/X1A 端子入力から生成し , 低速クロックとして使用するこ
とを想定したものです。
メイン , サブそれぞれのクロックは , それぞれ独立に制御可能な内蔵メイン PLL を用
いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックをメイン PLL で逓倍したもの
• サブクロックそのもの
ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって
行います。
98
第 3 章 CPU および制御部
3.10.1
PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することが可能です。
各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。
ここでは , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) のビット
10:PLL1EN ビットの設定によって行います。
サブクロック発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) のビッ
ト 11:PLL2EN ビットの設定によって行います。
PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL
の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択する
ことはできません。
プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設
定しかつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する
ことをお奨めします。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際
などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分
周したものに選択し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットやビット 1:OSCD2
ビットにより , ストップモード中の発振が停止するように設定してある場合 , 対応する
PLL はストップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する
必要はありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作
を開始します。ストップモード中の発振が停止しないように設定してある場合は , PLL
は自動では停止しません。この場合は , 必要であればストップモード移行前にあらかじ
め動作停止を設定してください。
99
第 3 章 CPU および制御部
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) のビット 14-12:PLL1S2,
PLL1S1, PLL1S0 ビットによって設定します。
どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。
〔PLL 逓倍率設定〕
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース
クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ
マ割込みを使用することをお奨めします。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に
切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後
にソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が
経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り
換えた場合は , プログラム動作は停止しません。
100
第 3 章 CPU および制御部
3.10.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります (「3.9.4 発振安定待ち時間」参照 ) 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
ここでは , 各種ケースにおける待ち時間について説明します。
■ 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい
るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。
プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が
発生した場合の解除時には , プログラムにて設定された時間の発振安定待ち時間を内
部的に発生します。
これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
はここでは考慮する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め
します。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。
101
第 3 章 CPU および制御部
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させる設定であった場合は , その発振回路の発振安定待ち時間と使用している PLL の
ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる
前に , あらかじめその発振安定待ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定であった場合は , PLL は自動では動作停止しません。したがって , PLL を
停止させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させ
る前に , あらかじめ発振安定待ち時間を最小値に設定しておくことをお奨めします。
■ サブクロックからメインクロック切換え後の待ち時間
サブクロックからメインクロックに切り換えた後に PLL を使用する場合 , CLKR( ク
ロックソースレジスタ ) のビット 2-PLL1EN の値に関わらず , ロック待ち時間が経過し
ないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め
します。
102
第 3 章 CPU および制御部
3.10.3
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
ここでは , 各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• CPU
• 命令キャッシュ
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I バス , D バス , X バス , F バス
• DMA コントローラ
• DSU
動作可能な上限周波数は 50MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• ICU
• フリーランタイマ
• リロードタイマ
• アップダウンカウンタ
• インプットキャプチャ
• アウトプットコンペア
• I2C インタフェース
• PPG
動作可能な上限周波数は 25MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
103
第 3 章 CPU および制御部
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• 外部拡張バスインタフェース
• 外部 CLK 出力
<注意事項>
• 動作可能な上限周波数は 25MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
• CPU の処理能力はウェイトレジスタ (FLWC) の設定にも影響を受けます。必ず本レジ
スタの設定を最適な値にしてご利用ください。
「17.2.2 ウェイトレジスタ : FLWC」も
ご参照ください。
104
第 3 章 CPU および制御部
クロック分周
3.10.4
各内部動作クロックは , それぞれ独立に , ベースクロックからの分周比を設定するこ
とができます。この機能により , 各回路に最適な動作周波数を設定することができ
ます。
■ 分周比の設定
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) にて設定します。
各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設
定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が
奇数であっても , 常にデューティは 50 % となります。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
■ 分周比設定の初期化
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソー
スクロックを高速なものに変更する前に必ず分周比の設定を行ってください。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注
意願います。
105
第 3 章 CPU および制御部
3.10.5
クロック生成制御部のブロックダイヤグラム
図 3.10-1 に , クロック生成制御部のブロックダイヤグラムを示します。
図中のレジスタの詳細な説明は , 「3.10.6 クロック生成制御部のレジスタ詳細説明」
を参照してください。
■ クロック生成制御部のブロックダイヤグラム
図 3.10-1 クロック生成制御部のブロックダイヤグラム
周辺停止制御レジスタ
[クロック生成部]
DIVR0,1レジスタ
CPUクロック分周
R-bus
セレ
クタ
外部バスクロック分周
メイン発振
安定待ちタイマ
(サブ選択時用)
メイン発振
PLL
1/2
X0A
X1A
発振回路
時計タイマ
各周辺クロック
外部バスクロック
セレクタ
発振回路
CPU クロック
CLKRレジスタ
X0
X1
セレ
クタ
停止制御
周辺クロック分周
周辺停止制御
セレ
クタ
サブ発振
[ストップ・ スリープ制御部]
内部割込み
STCRレジスタ
内部リセット
ストップ状態
状態遷移
制御回路
スリープ状態
リセット発生
F/F
内部リセット(RST)
リセット発生
F/F
内部リセット(INIT)
[リセット要因回路]
INIT端子
RS RRレジスタ
[ウォッチドッグ制御部]
ウォッチドッグ F/ F
WPRレジスタ
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
割込み許可
106
カウンタクロック
セレクタ
オーバフロー検出 F/F
タイムベースタイマ
割込み要求
第 3 章 CPU および制御部
3.10.6
クロック生成制御部のレジスタ詳細説明
クロック生成制御部のレジスタについて説明します。
■ RSRR: リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成は ,
以下のとおりです。
ビット
アドレス : 0000 0480H
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
*
X
0
*
X
0
X
*
0
X
*
0
*
X
0
0
0
0
0
0
初期値 (INIT 端子 )
初期値 (INIT)
初期値 (RST)
*: 要因により変化します。
X: 初期化されません。
直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定およ
び起動制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の
フラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[ ビット 15] INIT(INITialize reset occurred)
INIT 端子入力によるリセット (INIT) の発生の有無を示します。
値
内 容
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
• 読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[ ビット 14] (reserved ビット )
予約ビットです。
[ ビット 13] WDOG(WatchDOG reset occurred)
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
値
内 容
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
• INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みは意味を持ちません。
107
第 3 章 CPU および制御部
[ ビット 12] (reserved ビット )
予約ビットです。
[ ビット 11] SRST(Software ReSeT occurred)
STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセット (RST)
の発生の有無を示します。
値
内 容
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
• INIT 端子入力によるリセット (INIT) , または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みは意味を持ちません。
[ ビット 10] (reserved ビット )
予約ビットです。
[ ビット 9, 8] WT1, WT0(Watchdog interval Time select)
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により, ウォッチドッグタイマの周期を下表に示す4種類のうち
から選択します。
WT1
WT0
ウォッチドッグリセットの発生を
抑止するために最低限必要な
WPR への書込み間隔
WPR への最終 5AH 書込みから
ウォッチドッグリセットが
発生するまでの時間
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ : システムベースクロックの周期
• リセット (RST) により "00" に初期化されます。
• 読出し可能です。書込みはリセット (RST) 後 1 回のみ有効で , それ以降の 書込みは
無効です。
108
第 3 章 CPU および制御部
■ STCR: スタンバイ制御レジスタ
スタンバイ制御レジスタのレジスタ構成は , 以下のとおりです。
7
6
ビット
アドレス : 0000 0481H STOP SLEEP
R/W
R/W
初期値 (INIT 端子 )
初期値 (HST 端子 )*
初期値 (INIT)
初期値 (RST)
0
0
0
0
0
0
0
0
5
4
3
HIZ
R/W
SRST
R/W
OS1
R/W
1
1
1
X
1
1
1
1
0
1
X
X
2
1
0
OS0 OSCD2 OSCD1
R/W
R/W
R/W
0
1
X
X
1
1
1
X
1
1
1
X
* : INIT 端子による初期化と同時の場合のみ。それ以外は INIT 時と同じ。
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタのビット 8 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 × 5
NOP
NOP
NOP
NOP
[ ビット 7] STOP(STOP mode)
ストップモードへの遷移を指示します。ビット 6:SLEEP ビットと本ビット両方に "1"
を書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
値
内 容
0
ストップモードへの遷移は行いません ( 初期値 ) 。
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
109
第 3 章 CPU および制御部
[ ビット 6] SLEEP(SLEEP mode)
スリープモードへの遷移を指示します。ビット 7:STOP ビットと本ビット両方に "1" を
書き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップモードへ遷移し
ます。
値
内 容
0
スリープモードへの遷移は行いません ( 初期値 ) 。
1
スリープモードへ遷移します。
• リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 5] HIZ(HIZ mode)
ストップモード時の端子状態を制御します。
値
内 容
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします ( 初期値 ) 。
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 4] SRST(Software ReSeT)
ソフトウェアリセット (RST) の発行を指示します。
値
内 容
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません ( 初期値 ) 。
• リセット (RST) により "1" に初期化されます。
• 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
[ ビット 3, 2] OS1, OS0(Oscillation Stabilization time select)
リセット (INIT) 後, およびストップモード復帰後などにおける, 発振安定待ち時間を設
定します。
本ビットに書き込む値により, 発振安定待ち時間を下表に示す4種類のうちから選択し
ます。
OS1
OS0
発振安定待ち時間
原発振 12.5MHz の場合
サブ 32kHz の場合
0
0
φ × 21 ( 初期値 )
0.32[µs]
120[µs]
0
1
φ × 211
328[µs]
123[ms]
1
0
φ × 216
10.5[ms]
3.9[s]
1
1
φ × 222
671[ms]
251[s]
φ : システムベースクロックの周期 , この場合は原発振入力の 2 倍の周期
• INIT 端子入力によるリセット (INIT) により "00" に初期化されます。ただし , INIT
端子入力と HST 端子入力によるリセット (INIT) が同時に有効であった場合 , "11B"
に初期化されます。
• 読出しおよび書込みが可能です。
110
第 3 章 CPU および制御部
[ ビット 1] OSCD2(OSCillation Disable mode for XIN2)
サブ発振入力 (XIN2) における , ストップモード時の発振停止を制御します。
値
内 容
0
ストップモード中もサブ発振は停止しません。
1
ストップモード中はサブ発振を停止します ( 初期値 ) 。
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 0] OSCD1(OSCillation Disable mode for XIN1)
メイン発振入力 (XIN1) における , ストップモード時の発振停止を制御します。
値
内 容
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します ( 初期値 ) 。
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
■ TBCR: タイムベースカウンタ制御レジスタ
タイムベースカウンタ制御レジスタのレジスタ構成は , 以下のとおりです。
ビット 15
アドレス : 0000 0482H TBIF
R/W
初期値 (INIT)
初期値 (RST)
0
0
14
13
12
11
TBIE
R/W
TBC2
R/W
TBC1
R/W
TBC0
R/W
0
0
X
X
X
X
X
X
10
9
8
SYNCR SYNCS
R/W
R/W
R/W
X
X
0
X
0
X
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , および
リセット動作のオプション機能の設定を行います。
[ ビット 15] TBIF(TimeBasetimer Interrupt Flag)
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 ( ビット 13-11:TBC2-0 ビットに
て設定 ) を経過したことを示します。
ビット 14:TBIE ビットにより割込み発生が許可 (TBIE="1") されているときに , 本ビッ
トが "1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
セット要因
命令による "0" の書込み
設定されたインターバル時間の経過 ( タイムベースカウンタ出力の立下りエッ
ジ検出 )
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込んで
もビット値は変化しません。
また , リードモディファイライト系命令での読出し値は , 常に "1" となります。
111
第 3 章 CPU および制御部
[ ビット 14] TBIE(TimeBasetimer Interrupt Enable)
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御します。
本ビットが "1" のときに , ビット 15:TBIF ビットが "1" になると , タイムベースタイマ
割込み要求が発生します。
値
内 容
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 13 ∼ 11] TBC2, TBC1, TBC0(TimeBasetimer Counting time select)
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定しま
す。
本ビットに書き込む値により, インターバル時間を下表に示す8種類のうちから選択し
ます。
TBC2 TBC1 TBC0
タイマインターバル
時間
原発振 12.5MHz かつ
PLL が 4 逓倍の場合
サブクロック
32kHz の場合
0
0
0
φ × 211
41.0[µs]
61.4[ms]
0
0
1
φ × 212
81.9[µs]
123[ms]
0
1
0
φ × 213
164 [µs]
246[ms]
0
1
1
φ × 222
83.9[ms]
126[s]
1
0
0
φ × 223
168 [ms]
256[s]
1
0
1
φ × 224
336 [ms]
512[s]
1
1
0
φ × 225
672 [ms]
1024[s]
1
1
1
φ × 226
1342[ms]
2048[s]
φ : システムベースクロックの周期
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• 読出しおよび書込みが可能です。
[ ビット 10] (reserved ビット )
予約ビットです。読出し値は不定で , 書込みは意味を持ちません。
[ ビット 09] SYNCR(SYNChronous Reset enable)
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常リ
セット動作を行うか, すべてのバスアクセスが停止してから動作初期化リセット (RST)
を行う同期リセット動作を行うかを選択します。
値
内 容
0
通常リセット動作 ( 初期値 )
1
同期リセット動作
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
112
第 3 章 CPU および制御部
[ ビット 08] SYNCS(SYNChronous Standby enable)
同期スタンバイ動作許可ビットです。
スタンバイ要求 (スリープモード要求またはストップモード要求) を発生する際, STCR
レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバイ動作を
行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読み出すことに
よってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択します。
値
内 容
0
通常スタンバイ動作 ( 初期値 )
1
同期スタンバイ動作
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
スタンバイモードに遷移する際には , 必ず "1" を設定し , 同期スタンバイ動作としてくだ
さい。
■ CTBR: タイムベースカウンタクリアレジスタ
タイムベースカウンタクリアレジスタのレジスタ構成は , 以下のとおりです。
ビット
アドレス : 0000 0483H
初期値 (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
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して {A5h} , {5Ah} を書き込むと , {5Ah} 書込みの直後にタイムベー
スカウンタを全ビット"0"にクリアします。{A5h} 書込みと {5Ah} 書込みの間の時間制
限はありませんが , {A5h} 書込みの後に {5Ah} 以外のデータを書き込むと , 再度 {A5h}
を書き込まないと {5Ah} を書き込んでもクリア動作は行いません。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。
113
第 3 章 CPU および制御部
■ CLKR: クロックソース制御レジスタ
クロックソース制御レジスタのレジスタ構成は , 以下のとおりです。
14
13
12
11
10
9
8
ビット 15
アドレス : 0000 0484H PLL2S0 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
X
初期値 (INIT)
初期値 (RST)
0
X
0
X
0
X
0
X
0
X
0
X
0
X
システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを 3 種類 ( 本品種では 2 種類 ) のうちから選択します。
また , メイン・サブ 2系統の PLLそれぞれの動作許可および逓倍率の選択を制御します。
[ ビット 15] PLL2S0(PLL2 ratio Select 0)
サブクロックの逓倍率選択ビットです。
サブクロックの逓倍率を , 2 種類のうちから選択します。
本品種では , 本ビットへの書込みは常に "0" を書き込んでください。
値
内 容
0
逓倍率設定 1 ( 初期値 )
1
逓倍率設定 1
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 14 ∼ 12] PLL1S2, PLL1S1, PLL1S0(PLL1 ratio Select 2-0)
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を , 8 種類 * のうちから選択します。
* : 本品種では 4 種類
本ビットは , クロックソースとしてメインPLLを選択している間は書換えを禁止します。
動作可能な上限周波数は 50MHz ですので , これを超える設定をしないでください。
PLL1S2 PLL1S1 PLL1S0 メイン PLL 逓倍率
0
0
0
× 1 ( 等倍 )
原発振 12.5[MHz] の場合 ,
φ = 80[ns] (12.5[MHz])
0
0
1
× 2 (2 逓倍 )
原発振 12.5[MHz] の場合 ,
φ = 40[ns] (25[MHz])
0
1
0
× 3 (3 逓倍 )
原発振 12.5[MHz] の場合 ,
φ = 26[ns] (37.5[MHz])
0
1
1
× 4 (4 逓倍 )
原発振 12.5[MHz] の場合 ,
φ = 20[ns] (50[MHz])
1
0
0
× 5 (5 逓倍 )
本品種では未サポート
1
0
1
× 6 (6 逓倍 )
本品種では未サポート
1
1
0
× 7 (7 逓倍 )
本品種では未サポート
1
1
1
× 8 (8 逓倍 )
本品種では未サポート
φ : システムベースクロックの周期
• リセット (INIT) により "000B" に初期化されます。
• 読出しおよび書込みが可能です。
114
第 3 章 CPU および制御部
[ ビット 11] PLL2EN(PLL2 ENable)
サブクロックの選択許可ビットです。
本ビットは , クロックソースとしてサブクロックを選択している間は書換えを禁止し
ます。
また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択することを禁止
します ( ビット 9, 8:CLKS1, 0 ビットの設定による ) 。
STCR のビット 1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって
もサブクロックは停止します。ストップモードからの復帰後は動作許可に戻ります。
値
内 容
0
サブクロック選択禁止 ( 初期値 )
1
サブクロック選択許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 10] PLL1EN(PLL1 ENable)
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメインPLLを選択している間は書換えを禁止します。
また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択することを禁止
します ( ビット 9, 8:CLKS1, 0 ビットの設定による ) 。
STCR のビット 0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって
もメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
値
内 容
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
115
第 3 章 CPU および制御部
[ ビット 9, 8] CLKS1, CLKS0(CLocK source Select)
FRex コアで使用するクロックソースを設定します。
本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま
す。
なお , ビット 9:CLKS1 が "1" の間はビット 8:CLKS0 の値を変更することができません。
変更不可能な組合せ
変更可能な組合せ
"00" → "11"
"00" → "01" または "10"
"01" → "10"
"01" → "11" または "00"
"10" → "01" または "11"
"10" → "00"
"11" → "00" または "10"
"11" → "01"
このため , INIT 後の状態からサブクロックを選択したい場合は , まず "01B" を書き込ん
だ後に , "11B" を書き込むようにしてください。
<注意事項>
サブクロックのソースである X0A/X1A からの原発振入力の 2 分周は選択できません。ま
た , "01" を書き込んだ直後は NOP 命令を 1 つ以上挿入してください。
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 ( 初期値 )
0
1
X0/X1 からの原発振入力の 2 分周
1
0
メイン PLL
1
1
サブクロック
クロックソース設定
• リセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
116
第 3 章 CPU および制御部
■ WPR: ウォッチドッグリセット発生延期レジスタ
ウォッチドッグリセット発生延期レジスタのレジスタ構成は , 以下のとおりです。
ビット
アドレス : 0000 0485H
初期値 (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
ウォッチドッグリセットの発生を延期するためのレジスタです。
本レジスタに連続して {A5H} , {5AH} を書き込むと , {5AH} 書込みの直後にウォッチ
ドッグタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。
{A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込みの後に
{5AH} 以外のデータを書き込んだ場合 , 再度 {A5H} を書き込まないと {5AH} を書き込
んでもクリア動作は行いません。
表 3.10-1 に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の
関係を示します。
この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。
ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は ,
RSRR レジスタの WT1( ビット 9), WT0( ビット 8) の状態によって変化します。
表 3.10-1 ウォッチドッグリセット発生に関する時間間隔
WT1 WT0
WPR への最終 5AH 書込みから
RSRR のウォッチドッグリセットの発生を
抑止するために最低限必要な WPR への書
込み間隔
ウォッチドッグリセットが発生す
るまでの時間
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ : システムベースクロックの周期
WT1, WT0: RSRR のビット 9, 8 でウォッチドッグタイマ周期設定
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
ただし, 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッ
チドッグリセットは延期されませんので , 長期間外部バスをホールドする場合はス
リープモードにしてからホールド要求 (BRQ) を入力してください。
本レジスタの読出し値は不定です。
117
第 3 章 CPU および制御部
■ DIVR0: 基本クロック分周設定レジスタ 0
基本クロック分周設定レジスタ 0 のレジスタ構成は , 以下のとおりです。
ビット
アドレス : 0000 0486H
初期値 (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
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB) , 周辺回路 , およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特にソースクロック選択の変更設定との順序を間違えないようにご注意
ください。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[ ビット 15 ∼ 12] B3, B2, B1, B0(clkB divide select 3-0)
CPU クロック (CLKB) クロック分周比設定ビットです。CPU と内部メモリおよび内部
バスのクロック (CLKB) のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対
する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 50MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
B3
B2
B1
B0
クロック分周比
クロック周波数 : 原発振 12.5[MHz]
および PLL4 逓倍の場合
0
0
0
0
φ
50[MHz] ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
25[MHz]
0
0
1
0
φ × 3 (3 分周 )
16.7[MHz]
0
0
1
1
φ × 4 (4 分周 )
12.5[MHz]
0
1
0
0
φ × 5 (5 分周 )
10[MHz]
0
1
0
1
φ × 6 (6 分周 )
8.33[MHz]
0
1
1
0
φ × 7 (7 分周 )
7.01[MHz]
0
1
1
1
φ × 8 (8 分周 )
6.25[MHz]
…
1
…
1
…
1
…
1
…
φ × 16 (16 分周 )
…
3.13[MHz]
φ : システムベースクロックの周期
• リセット (INIT) により "0000" に初期化されます。
• 読出しおよび書込みが可能です。
118
第 3 章 CPU および制御部
[ ビット 11 ∼ 8] P3, P2, P1, P0(clkP divide select 3-0)
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース
クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数は 25MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
P3
P2
P1
P0
クロック分周比
クロック周波数 : 原発振 12.5[MHz]
および PLL4 逓倍の場合
0
0
0
0
φ
50[MHz]
0
0
0
1
φ × 2 (2 分周 )
25[MHz]
0
0
1
0
φ × 3 (3 分周 )
16.7[MHz]
0
0
1
1
φ × 4 (4 分周 )
12.5[MHz] ( 初期値 )
0
1
0
0
φ × 5 (5 分周 )
10[MHz]
0
1
0
1
φ × 6 (6 分周 )
8.33[MHz]
0
1
1
0
φ × 7 (7 分周 )
7.01[MHz]
0
1
1
1
φ × 8 (8 分周 )
6.25[MHz]
…
1
…
1
…
1
…
1
…
φ × 16 (16 分周 )
…
3.13[MHz]
φ : システムベースクロックの周期
• リセット (INIT) により "0011" に初期化されます。
• 読出しおよび書込みが可能です。
■ DIVR1: 基本クロック分周設定レジスタ 1
基本クロック分周設定レジスタ 1 のレジスタ構成は , 以下のとおりです。
ビット
アドレス : 0000 0487H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
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
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を
行います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注
意ください。
119
第 3 章 CPU および制御部
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[ ビット 7 ∼ 4] T3, T2, T1, T0(clkT divide select 3-0)
外部バスクロック (CLKT) クロック分周比設定ビットです。
外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 25MHz ですので , これを超える周波数になる分周比は設定し
ないでください。
T3
T2
T1
T0
クロック分周比
クロック周波数 : 原発振 12.5[MHz]
および PLL4 逓倍の場合
0
0
0
0
φ
50[MHz] ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
25[MHz]
0
0
1
0
φ × 3 (3 分周 )
16.7[MHz]
0
0
1
1
φ × 4 (4 分周 )
12.5[MHz]
0
1
0
0
φ × 5 (5 分周 )
10[MHz]
0
1
0
1
φ × 6 (6 分周 )
8.33[MHz]
0
1
1
0
φ × 7 (7 分周 )
7.01[MHz]
0
1
1
1
φ × 8 (8 分周 )
6.25[MHz]
…
1
…
1
…
1
…
1
…
φ × 16 (16 分周 )
…
3.13[MHz]
φ : システムベースクロックの周期
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 3 ∼ 0] (reserved ビット )
予約ビットです。
120
第 3 章 CPU および制御部
■ OSCCR: 発振制御レジスタ
発振制御レジスタのレジスタ構成は , 以下のとおりです。
ビット
アドレス : 0000 048AH
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
OSCDS1
X
X
X
X
X
X
X
X
X
X
X
X
X
X
0
X
R/W
サブクロック動作時のメイン発振を制御するレジスタです。
[ ビット 8] OSCDS1(OSCillation Disable on Subclock for XIN1)
サブクロック選択中のメイン発振停止ビットです。
クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン発振
を停止します。
本ビットは , メインクロックを選択中は "1" を書くことはできません。
本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に
してメイン発振の安定を待ってからメインクロックに切り換えてください。このとき ,
メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。
また, 本ビットによってメイン発振を停止させた状態で, INITによってクロックソース
がメインクロックに切り換わった場合もメイン発振安定待ち時間が必要になります。
このとき , STCR( スタンバイ制御レジスタ ) のビット 3, 2:OS1, OS0 の設定がメイン発
振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。
この様な場合は , STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発振安
定待ち時間両方を満たした値を設定してください。
INIT端子によるINIT時は, メイン発振が安定するまでINIT端子に"L"を入力し続ける必
要があります。
発振安定待ちについては , 「3.10.2 発振安定待ち・PLL ロック待ち時間」も参照して
ください。
値
内 容
0
サブクロック実行中 , メイン発振を停止しません ( 初期値 ) 。
1
サブクロック実行中 , メイン発振を停止します。
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
121
第 3 章 CPU および制御部
3.10.7
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.9.4 発振安定待ち時間」を参
照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ :
システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ :
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
〔ウォッチドッグタイマの起動と周期設定〕
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジスタ /
ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。
このとき , ウォッチドッグタイマのインターバル時間をビット 09, 08:WT1, WT0 ビット
により設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみ
が有効となり , それ以降の書込みはすべて無視されます。
〔ウォッチドッグリセットの発生延期〕
いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッチ
ドッグリセット発生延期レジスタ) に対して {A5h} , {5Ah} の順でデータを書き込む必
要があります。
この操作により , ウォッチドッグリセット発生用フラグが初期化されます。
〔ウォッチドッグリセットの発生〕
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカウ
ンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出時にフ
ラグがセットされていると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
122
第 3 章 CPU および制御部
〔ウォッチドッグタイマの停止〕
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生する
までは , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停止
し , 再度プログラム動作にて起動するまでは , 機能しません。
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
• 発振安定待ちリセット (RST) 状態
〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生を
延期します。プログラム動作の停止とは具体的には以下の動作を示します。
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• エミュレータデバッガ , モニタデバッガを使用時のブレーク中
• INTE 命令の実行から RETI 命令の実行までの期間
• ステップトレーストラップ (PS レジスタのTフラグ=1による1命令ごとのブレーク)
• 命令キャッシュ制御レジスタ (ISIZE, ICHCR) , RAMモード時のキャッシュメモリへ
のデータ
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生用
フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット
が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセット (INIT) をかけ
てください。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最
大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途に
適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
〔タイムベースタイマの起動とインターバル設定〕
タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) のビット 13-11:
TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下がりエッジは常
に検出されているため , インターバル時間の設定後はまずビット 15:TBIF ビットをクリ
アしてから , ビット 14:TBIE ビットを "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめビット 14:TBIE ビットを "0" にして割込
み要求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていますの
123
第 3 章 CPU および制御部
で , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタイムベー
スカウンタをクリアしてください。そうでないと , 割込み許可直後に割込み要求が発生
することもあり得ます。
〔プログラムによるタイムベースカウンタのクリア〕
CTBR ( タイムベースカウンタクリアレジスタ ) に対して {A5h} , {5Ah} の順でデータ
を書き込むと , {5Ah} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリア
します。{A5h} 書込みと {5Ah} 書込みの間の時間制限はありませんが , {A5h} 書込み
の後に {5Ah} 以外のデータを書き込むと , 再度 {A5h} を書き込まないと {5Ah} を書き
込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリセッ
ト発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期されま
す。
〔デバイス状態によるタイムベースカウンタのクリア〕
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にクリ
アされます。
• ストップ状態
• 設定初期化リセット (INIT) 状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタが
使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生してし
まう可能性があります。
そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し , タ
イムベースタイマを使用しないでください。
それ以外の状態については , 動作初期化リセット (RST) が発生するため , タイムベース
タイマ割込みは自動的に禁止されます。
● 時計タイマ
クロックソースの選択や分周設定の影響を受けず, 32kHzのサブクロックに同期してカ
ウントアップする 15 ビットのフリーランタイマです。
サブクロックの安定待ち時間の計時や , サブクロックを用いて一定周期ごとに処理し
たい用途に使用します。
時計タイマはサブクロック動作時にカウントアップを行いますが , STCR( スタンバイ
制御レジスタ ) のビット 1:OSCD2 が "1" の設定でストップモードに移行させると時計
タイマも停止します。ストップモードで停止させたくない場合は , ストップモードに移
行させる前に OSCD2 ビットに "0" を設定し , サブクロックを停止させないでください。
時計タイマを用いてクロックソースをメインクロックからサブクロックに切り換える
場合は , 以下の手順で行います。
1) 時計タイマを発振安定待ち時間に設定しておきます。必要であれば 0 クリアも行っ
てください。
2) 時計タイマを用いてサブクロックが安定するまで待ちます。この時計割込みを使用
して発振安定待ち時間を確保してください。
3) サブクロック安定後 , CLKR( クロックソースレジスタ ) のビット 9, 8:CLKS1, CLKS0
にてメインクロックからサブクロックに切り換えます。
124
第 3 章 CPU および制御部
<注意事項>
安定を待たずサブクロックに切り換えると , 不安定なクロックが供給され , その後の動作
は保証されません。必ず安定を待った後にサブクロックに切り換えてください。
時計タイマの詳細については , 「3.12 時計タイマ」を参照してください。
● メイン発振安定待ちタイマ ( サブクロック選択時用 )
クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン
トアップする 26 ビットのタイマです。
サブクロック動作中のメイン発振安定待ち時間の計時に使用します。
サブクロックで動作中 , OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 にて , メイン
発振の制御を行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タ
イマを用いて発振安定待ち時間を計時します。
メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える
際は , 以下の手順で行います。
1) メイン発振安定待ちタイマをクリアします。
2) OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 を "0" にしてメイン発振を開始し
ます。
3) メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。
4) メインクロック安定後 , CLKR( クロックソースレジスタ ) のビット 9, 8:CLKS1, CLKS0
にてサブクロックからメインクロックに切り換えます。
<注意事項>
安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の動
作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてください。
メイン発振安定待ちタイマの詳細については , 「3.13 メイン発振安定待ちタイマ」を参
照してください。
● 周辺停止制御
各周辺リソースへのクロック供給を制御します。
使用しない周辺リソースへのクロック供給を停止することで , 省電力化を行います。
詳細は「3.14 周辺停止制御」を参照してください。
125
第 3 章 CPU および制御部
3.11
デバイス状態制御
本品種の各種状態とその制御について説明します。
■ デバイス状態制御の概要
本品種のデバイス状態には , 以下のものがあります。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 発振待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ
モードの詳細について説明します。
126
第 3 章 CPU および制御部
3.11.1
デバイス状態と各遷移
図 3.11-1 に , 本品種のデバイスの状態遷移を示します。
■ デバイス状態
図 3.11-1 デバイス状態
1
2
3
4
5
6
7
8
9
10
11
12
13
INTX 端子 =0(INIT)
INIT 端子=1(INIT解除)
発振安定待ち終了
リセット(RST)解除
ソフトウェアリセット(RST)
スリープ(命令書込み)
ストップ(命令書込み )
割込み
クロックを必要としない外部割込み
メイン→サブ切替え(命令 書込み )
サブ→メイン切替え(命令 書込み )
ウォッチドックリセット(INIT )
サブスリープ(命令 書込み )
最強
↓
↓
↓
↓
最弱
パワーオン
1
遷移要求の優先順位
設定初期化リセット(INIT)
発振安 定待ち終了
動作初 期化リセット(RST)
割込み要求
ストッ プ
スリープ
設定初期化
(INIT)
2
メインクロックモード
1
メイン発振安定待ち
1
リセット
メインストップ
9
3
1
発振安定待ちRUN
プログラムリセット
1
(RST)
3
7
1
6
メインスリープ
5
4
12
メインRUN
8
1
10
サブクロックモード
1
サブスリープ
発振安定待ちRUN
9
サブストップ
( 時計状態*2 )
12
サブRUN
13
3
1
1
11
8
7
5
1
4
プログラムリセット
1
(RST)
サブストップ
(時計状態*2)
*1: クロックソースをメイン←→サブに切り替える場合は, RUN状態にて, 切替え
後のクロックが安定供給されている状態にて, クロックソースレジスタ
(CLKR)-ビット1:0(CLKS1,CLKS0)ビットを切り替えてください。
*2: 時計タイマ以外を停止(時計状態)させるには, サブRUN状態にてスタンバイ制
御レジスタ(STCR)ビット1:OSCD2を0, ビット0:OSCD1を1に設定した状態でス
トップモードに移行してください(同時書込み可)。
127
第 3 章 CPU および制御部
■ デバイスの動作状態
本品種のデバイスの動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。
ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間は
バスクロックのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ
セットモードの場合と一部要求に対する状態遷移動作が異なります。
詳細は , 「3.9.5 リセット動作モード」の「■同期リセット動作」を参照してください。
● スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ
は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限
り停止状態です。
有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移しま
す。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移
します。
● ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL
は設定により停止させることが可能です。また , 設定により , 外部端子を一律ハイイン
ピーダンスにすることが可能です ( 一部端子を除く ) 。
特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中の時計タイマ / メイン
発振安定待ちタイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷
移します。
128
第 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) 状態へ遷移
します。
129
第 3 章 CPU および制御部
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , またはハードウェ
アスタンバイ状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて
の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外
では動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により, 本状態は解除され, 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位にしたがいます。
ただし , 一部要求は特定の状態でしか発生しませんので , その状態でしか有効になりま
せん。
【最強】設定初期化リセット (INIT) 要求
↓ 発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち RUN
状態のみ発生 )
↓ 動作初期化リセット (RST) 要求
↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
【最弱】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
130
第 3 章 CPU および制御部
3.11.2
低消費電力モード
本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。
本品種の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
■ スリープモード
STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットに "1" を書き込むと , スリー
プモードとなり , スリープ状態へ遷移します。
以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。
STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットと本ビット両方に "1" を書き
込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
スリープ状態については , 「3.11.1 デバイス状態と各遷移」の「●スリープ状態」も参
照してください。
〔スリープモードへの移行〕
スリープモードへに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタのビット8 SYNCSビットにて設定します) を使用した上で, 以下のシー
ケンスを必ず使用してください。
(LDI#value_of_sleep,R0) ;value_of_sleep は , STCR へのライトデータ
(LDI#_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB R0,@R12
;スタンバイ制御レジスタ (STCR) への書込み
[email protected],R0
;同期スタンバイのための STCR リード
[email protected],R0
;もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
131
第 3 章 CPU および制御部
〔ストップモードへの移行〕
ストップモードへに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタのビット8 SYNCSビットにて設定します) を使用した上で, 以下のシー
ケンスを必ず使用してください。
(LDI#value_of_sleep,R0) ;value_of_sleep は , STCR へのライトデータ
(LDI#_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB R0,@R12
;スタンバイ制御レジスタ (STCR) への書込み
[email protected],R0
;同期スタンバイのための STCR リード
[email protected],R0
;もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
〔スリープ状態で停止する回路〕
• CPU のプログラム実行
• データキャッシュ
• ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
• 各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
• 内部 / 外部バス (DMA 転送が発生した場合は動作します。)
〔スリープ状態で停止しない回路〕
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
• DSU
• 時計タイマ
• メイン発振安定待ちタイマ
132
第 3 章 CPU および制御部
〔スリープ状態からの復帰要因〕
• 有効な割込み要求の発生
割込み禁止(1Fh)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR
に割込みレベルとして割込み禁止 (1Fh) を設定してください。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
各要因の優先順位については , 「3.11.1 デバイス状態と各遷移」を参照してください。
〔同期スタンバイ動作〕
タイムベースカウンタ制御レジスタ (TBCR) のビット 8(SYNCS ビット ) に "1" が設定
してある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込
みのみではスリープ状態へは遷移しません。
その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , 【スリープモードへの移行】にあるシーケンスを ,
必ず使用してください。
133
第 3 章 CPU および制御部
■ ストップモード
STCR ( スタンバイ制御レジスタ ) のビット 7:STOP ビットに "1" を書き込むと , ストッ
プモードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発
生するまでは , ストップ状態を維持します。
STCR ( スタンバイ制御レジスタ ) のビット 6:SLEEP ビットと本ビット両方に "1" を書
き込んだ場合は , ビット 7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
ストップ状態については , 「3.11.1 デバイス状態と各遷移」の「●ストップ状態」も参
照してください。
〔ストップ状態で停止する回路〕
• 停止するよう設定された発振回路 :
STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "1" が設定してある
とき , ストップ状態中のサブクロック用発振回路を停止状態にします。このとき時
計タイマも停止します。
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "1" が設定してある
とき , ストップ状態中のメインクロック用発振回路を停止状態にします。このとき
メイン発振安定待ちタイマも停止します。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL:
STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "1" が設定してある
とき , CLKR ( クロックソース制御レジスタ ) のビット 11:PLL2EN ビットに "1" が設
定してあっても , ストップ状態中のサブクロック用 PLL を停止状態にします。
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "1" が設定してある
とき , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" が設
定してあっても , ストップ状態中のメインクロック用 PLL を停止状態にします。
• 〔ストップ状態で停止しない回路〕を除くすべての内部回路
〔ストップ状態で停止しない回路〕
• 停止するよう設定されていない発振回路 :
STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してある
とき , ストップ状態中のサブクロック用発振回路は停止しません。このとき時計タ
イマも停止しません。
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してある
とき , ストップ状態中のメインクロック用発振回路は停止しません。このときメイ
ン発振安定待ちタイマも停止しません。
• 動作許可されていて ,
PLL:
かつ停止するよう設定されていない発振回路に接続された
STCR ( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してある
とき , CLKR ( クロックソース制御レジスタ ) のビット 11:PLL2EN ビットに "1" が設
定してあると , ストップ状態中のサブクロック用 PLL は停止しません。
STCR ( スタンバイ制御レジスタ ) のビット 0:OSCD1 ビットに "0" が設定してある
とき , CLKR ( クロックソース制御レジスタ ) のビット 10:PLL1EN ビットに "1" が設
定してあると , ストップ状態中のメインクロック用 PLL は停止しません。
134
第 3 章 CPU および制御部
〔ストップ状態での端子のハイインピーダンス制御〕
STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "1" が設定してあると , ス
トップ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端
子は「付録 C 各 CPU ステートにおける端子状態」を参照してください。
STCR ( スタンバイ制御レジスタ ) のビット 5:HIZ ビットに "0" が設定してあると , ス
トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「付録
C 各 CPU ステートにおける端子状態」を参照してください。
〔ストップ状態からの復帰要因〕
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生 :
外部割込み入力端子 (INTn 端子 ) , メイン発振中のメイン発振安定待ちタイマ割込
み , およびサブ発振中の時計割込みのみ有効です。
割込み禁止 (1Fh) 以外の割込みレベルを持つ割込み要求が発生するとストップモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR に
割込みレベルとして割込み禁止 (1Fh) を設定してください。
• 時計タイマ割込み :
STCR( スタンバイ制御レジスタ ) のビット 1:OSCD2 ビットに "0" が設定してあると
き , 時計タイマの割込み要求が発生するとストップモードは解除され RUN 状態 ( 通
常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , 時計タイマの割
込み許可ビットを割込み禁止に設定してください。
• メイン発振安定待ちタイマ割込み :
サブクロック選択中で OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 ビットに "0"
が設定時もしくはメインクロック選択中において, STCR(スタンバイ制御レジスタ)
のビット 0:OSCD1 ビットに "0" が設定してあるとき , メイン発振安定待ちタイマの
割込み要求が発生するとストップモードは解除され RUN 状態 ( 通常状態 ) へ遷移し
ます。
割込み要求が発生してもストップモードを解除したくない場合は , メイン発振安定
待ちタイマを停止させるか , またはメイン発振安定待ちタイマの割込み許可ビット
を割込み禁止に設定してください。
• 設定初期化リセット (INIT) 要求の発生 :
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生 :
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
各要因の優先順位については , 「3.11.1 デバイス状態と各遷移」の「●各状態遷移要求
の優先順位」を参照してください。
〔ストップモード時のクロックソース選択〕
ストップモードを設定する前に, メインクロックの2分周をソースクロックとするよう
あらかじめ選択しておいてください。詳細は , 「3.10 クロック生成制御」, 特にその節
の「3.10.1 PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
135
第 3 章 CPU および制御部
3.12
時計タイマ
時計タイマはサブクロックに同期してカウントアップする 15 ビットのフリーランカ
ウンタです。
一定の時間間隔で繰り返し割込みを発生するインターバルタイマ機能があります。
■ インターバル時間
表 3.12-1 にインターバル時間の種類を示します。インターバル時間は次の 4 種類の中
から選択できます。
表 3.12-1 インターバル時間の種類
サブクロック周期
インターバル時間
210/FCL(31.25ms)
213/FCL(0.25s)
1/FCL( 約 30.5 µs)
214/FCL(0.50s)
215/FCL(1.00s)
FCL: サブクロック発振周波数
■ 時計タイマのブロックダイヤグラム
図 3.12-1 に , 時計タイマのブロックダイヤグラムを示します。
図 3.12-1 時計タイマのブロックダイヤグラム
時計タイマ用
カウンタ
FCL
0
1
2
1
2
2
2
3
2
3
4
2
4
5
5
2
6
2
6
7
7
2
8
2
8
9
9
10 11 12 13 14
10
2
2
211 212 213 214 215
( 31.25ms)
インター
バル
タイマ
セレクタ
(0.25s)
(0.5s)
(1.0s)
リセット
(INIT)
カウンタ
クリア回路
時計割込み
時計タイマ
制御レジスタ (WPCR)
WIF
WIE
-
-
-
WS1
WS0
WCL
FCL:サブクロック原発振
( )内の数字は,サブクロック原発振32.768kHzの場合の周期
136
第 3 章 CPU および制御部
● 時計タイマ
サブクロック原発振をカウントクロックとする 15 ビットのアップカウンタです。
● カウンタクリア回路
WPCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし
ます。
● インターバルタイマセレクタ
時計タイマ用カウンタの 4 種類の分周出力からインターバルタイマ用の 1 種類を選択
する回路で , 選択した分周出力の立下がりエッジが割込み要因になります。
● 時計タイマ制御レジスタ (WPCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い
ます。
■ 時計タイマのレジスタ説明
時計タイマのレジスタ構成は , 以下のとおりです。
WPCR
ビット
アドレス :0000 048CH
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
WIF
R/W
WIE
R/W
-
-
-
WS1
R/W
WS0
R/W
WCL
R/W
0
X
0
X
X
X
X
0
X
0
X
0
X
[ ビット 15] WIF(Watch timer Interrupt Flag)
時計割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立下がりエッジによって "1" にセットさ
れます。
このビットと割込み要求許可ビットが "1" のとき , 時計割込み要求を出力します。
値
内 容
0
時計割込みの要求なし ( 初期値 )
1
時計割込みの要求あり
• リセット (INIT) で "0" に初期化されます。
• リードおよびライトが可能です。ただしライトは "0" のみ可能で , "1" をライトして
もビット値は変化しません。
• また , リードモディファイライト系命令でのリード値では常に "1" となります。
137
第 3 章 CPU および制御部
[ ビット 14] WIE(Watch timer Interrupt Enable)
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットと時計割込み要
求フラグビットが "1" のとき , 時計割込み要求を出力します。
値
内 容
0
時計割込み要求出力禁止 ( 初期値 )
1
時計割込み要求出力許可
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 13 ∼ 11](reserved ビット )
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。
読出し値は不定です。
[ ビット 10, 9] WS1, WS0(Watch timer interval Select 1, 0)
インターバルタイマの周期を選択します。
時計タイマ用カウンタの出力ビットを , 表 3.12-2 に示す 4 種類のうちから選択します。
表 3.12-2 時計タイマ用カウンタの出力ビット
WS1
WS0
0
0
210/FCL(31.25ms)( 初期値 )
0
1
213/FCL(0.25s)
1
0
214/FCL(0.50s)
1
1
215/FCL(1.00s)
インターバルタイマ周期 (FCL=32.768kHz 時 )
• リセット (INIT) で "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 8] WCL(Watch timer CLear)
"0" 書込みで時計タイマを "0" にクリアします。
書込みは "0" のみ可能で , "1" を書き込んでも意味を持ちません。
• 読出し値は常に "1" となります。
138
第 3 章 CPU および制御部
■ 時計割込み
時計タイマ用カウンタがサブクロックでカウント動作し , 設定したインターバル時間
が経過すると , 時計割込み要求フラグ (WIF) を "1" にセットします。そのとき , 割込み
要求許可ビットを許可 (WIE="1") していると CPU へ割込み要求が発生します。
ただし , サブクロックが発振停止しているとき (「3.13 メイン発振安定待ちタイマ」の
「■インターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , 時
計割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる
とセットされます。
<注意事項>
• リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:0 ビットの変更
時は , 必ず WIF, WCL ビットを同時にクリア (WIF=WCL=0) してください。
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み
要求が発生します。
• カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場
合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
時計タイマ用カウンタはサブクロックが発振中は常にカウントアップをしていますが,
以下の状態時はサブクロック発振が停止するため , カウント動作が停止します。
• ストップモードでサブ発振が停止する設定 ( スタンバイ制御レジスタ STCR のビッ
ト 1:OSCD2="1") でストップモードに移行すると , ストップモード中 , カウント動作
が停止します。
本品種では , リセット (INIT) 時 OSCD2="1" に初期化しますので , ストップモード中
も時計タイマを動かしたい場合は , スタンバイ移行前に OSCD2="0" を設定してくだ
さい。
カウンタをクリア (WCL="0") すると , "0000H" からカウント動作を行い , "7FFFH" に達
すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン
ターバルタイマ用の分周出力に立下がりエッジが発生すると , 時計割込み要求ビット
(WIF) を "1" にセットします。すなわち , クリアされた時間を基準にして , 選択された
インターバル時間ごとに時計割込み要求を発生することになります。
139
第 3 章 CPU および制御部
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてメインクロックを選択中にサブクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にサブクロッ
クで動作する本時計タイマを使用します。
メインクロック動作からサブクロックの発振安定待ちを行うには , 次の手順で行って
ください。
1) 時計タイマのインターバル時間を 1s(FCL=32.768kHz 時 ) にし , カウンタを "0" にク
リアします (WS1, WS0="11", WCL="0" 書込み )。
発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行
います (WIF="0", WIE="1" 書込み )。
2) サブクロックの発振を開始します (CLKR ビット 11:PLL2EN="1" 書込み )。
3) プログラムにて , WIF フラグが "1" になるまで待ちます。
4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF="1" 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。
メインクロックからサブクロックに切り換える場合も , (4) の WIF="1" の確認を待っ
てから行ってください ( 発振安定を待たずにサブクロックへ切り換えると , デバイ
ス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。
■ 時計タイマの動作
時計タイマを起動したとき , サブクロックへの移行時 , サブクロック動作でストップ
モードへ移行時のカウンタ状態を , 図 3.12-2 に示します。
図 3.12-2 サブクロックへの移行およびストップモードへ移行時のカウンタ状態
7FFFH
カウンタ値
4000H
サブクロック
発振安定待ち時間
・タイマクリア(WS1,WS0=1) 0以外の時
・インターバル時間設定(WS1,0=11B)
インターバル時間
割込みルーチンでクリア
WIF
クロックソース
クロックモード
メインクロック
RU N
サブクロック
ストップ*
RU N
ストップモード移行命令
・インターバル時間を変更(WS1,WS0=10B)
・メイン→サブクロック変更
*: STCR:OSCD2=0(ストップ時発振停止しない)設定時
140
第 3 章 CPU および制御部
■ 時計タイマ使用時の注意事項
発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
サブクロックが発振停止中は時計タイマも停止しますので , 時計割込みも発生しませ
ん。時計割込みを使った処理を行う場合は , サブクロックの発振を停止しないでくださ
い。
WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合ハーフラグ
セットが優先し , "0" クリアは無効となります。
141
第 3 章 CPU および制御部
3.13
メイン発振安定待ちタイマ
メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23
ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ
イマ機能があります。
本タイマは , サブクロックで動作中に OSCCR( 発振制御レジスタ ) のビット 0:
OSCDS1 によってメイン発振を一度止めて再度発振させた場合に , メインクロック
を発振安定待ち時間の確保に使用します。
■ メイン発振安定待ちタイマのインターバル時間
表 3.13-1 にインターバル時間の種類を示します。インターバル時間は次の 3 種類の中
から選択できます。
表 3.13-1 メイン発振安定待ちタイマのインターバル時間
メインクロック周期
インターバル時間
211/FCL(164µs)
216/FCL(5.25ms)
1/FCL( 約 80ns)
223/FCL(671ms)
FCL: メインクロック発振周波数
■ メイン発振安定待ちタイマのブロックダイヤグラム
図 3.13-1 に , メイン発振安定待ちタイマのブロックダイヤグラムを示します。
図 3.13-1 メイン発振安定待ちタイマのブロックダイヤグラム
メイン発振安定待ち
タイマ用カウンタ
FCL
0
1
2
3
4
5
6
7
8
10
15
22
21 22 23 24 25 26 27 28 29
2 11
2 16
2 23
(164μs)
インター
バル
タイマ
セレクタ
( 671ms )
リセット
(INIT)
メイン発振安定待ち
タイマ割込み
メイン発振安定待ちタイマ
制御レジスタ (OSCR)
(5.25ms)
WIF
WIE
WEN
-
-
WS1
カウンタ
クリア回路
WS0
WCL
FCL:メインクロック原発振
( )内の数字は,メインクロック原発振12.5Hzの場合の周期
142
第 3 章 CPU および制御部
● メイン発振安定待ちタイマ
メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。
● カウンタクリア回路
OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし
ます。
● インターバルタイマセレクタ
メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用
の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になりま
す。
● メイン発振安定待ちレジスタ (OSCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い
ます。
■ メイン発振安定待ちタイマのレジスタ説明
メイン発振安定待ちタイマレジスタのレジスタ構成は , 以下のとおりです。
OSCR
ビット
アドレス :0000 048CH
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
WIF
R/W
WIE
R/W
WEN
-
-
WS1
R/W
WS0
R/W
WCL
R/W
0
X
0
X
0
X
X
X
0
X
0
X
0
X
[ ビット 15] WIF(timer Interrupt Flag)
メイン発振安定待ち割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットされ
ます。
このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出力し
ます。
値
内 容
0
メイン発振安定割込みの要求なし ( 初期値 )
1
メイン発振安定割込みの要求あり
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん
でもビット値は変化しません。
また , リードモディファイライト系命令での読出し値では常に "1" となります。
143
第 3 章 CPU および制御部
[ ビット 14] WIE(timer Interrupt Enable)
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振安
定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力します。
値
内 容
0
メイン発振安定割込み要求出力禁止 ( 初期値 )
1
メイン発振安定割込み要求出力許可
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 13] WEN(timer enable)
タイマ動作許可ビットです。
本ビットが "1" のときタイマはカウント動作を行います。
値
内 容
0
タイマ動作停止 ( 初期値 )
1
タイマ動作
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。
[ ビット 12, 11](reserved ビット )
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。
読出し値は不定です。
[ ビット 10, 9] WS1, WS0(timer interval Select 1, 0)
インターバルタイマの周期を選択します。
メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択しま
す。
WS1
WS0
0
0
設定禁止 ( 初期値 )
0
1
211/FCL(164µs)
1
0
216/FCL(5.25ms)
1
1
223/FCL(671ms)
インターバルタイマ周期 (FCL=12.5MHz 時 )
• リセット (INIT) で "00B" に初期化されます。
• 読出しおよび書込みが可能です。
• メイン発振安定待ち時間タイマを使用する場合 ,
本レジスタにデータの書込みを
行ってください。
[ ビット 8] WCL(timer CLear)
"0" 書込みでメイン発振安定待ちタイマを "0" にクリアします。
書込みは "0" のみ可能で , "1" をライトしても動作に影響を与えません。
• 読出し値は常に "1" となります。
144
第 3 章 CPU および制御部
■ メイン発振安定待ち割込み
メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した
インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に
セットします。そのとき , 割込み要求許可ビットを許可 (WIE="1") していると CPU へ
割込み要求が発生します。ただし , メインクロックが発振停止しているとき (「■イン
ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振
安定待ち割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる
とセットされます。
<注意事項>
• リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:0 ビット変更時
は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み
要求が発生します。
• カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場
合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま
すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま
す。
• WEN ビットが "0" のとき
• ストップモードでメイン発振が停止する設定(スタンバイ制御レジスタSTCRのビッ
ト 0:OSCD1="1") でストップモードに移行すると , ストップモード中 , カウント動作
が停止
本品種では , リセット (INIT) 時 OSCD1="1" に初期化しますので , ストップモード中
もメイン発振安定待ちタイマを動かしたい場合は , スタンバイ移行前に OSCD2="0"
を設定してください。
• サブクロックモードで OSCCR( 発振制御レジスタ ) のビット 0:OSCDS1 に "1" を設
定時 , メイン発振が停止
タイマカウント動作も停止します。
カウンタをクリア (WCL="0") すると , "000000H" からカウント動作を行い , "7FFFFFH"
に達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択され
たインターバルタイマ用の分周出力に立下がりエッジが発生すると , メイン発振安定
待ち割込み要求ビット (WIF) を "1" にセットします。すなわち , クリアされた時間を基
準にして , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求
を発生することになります。
145
第 3 章 CPU および制御部
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク
ロックで動作する本メイン発振安定待ちタイマを使用します。
サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを行う
には , 次の手順で行ってください。
1) メインクロックの発振安定に必要な時間を WT1, 0 ビットに設定し , カウンタを "0"
にクリアします (WT1, WT0= 発振安定待ち時間 , WCL="0" 書込み )。
発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行
います (WIF="0", WIE="0" 書込み )。
2) メインクロックの発振を開始します OSCR ビット 0:OCSDS1="1" 書込み )。
3) プログラムにて , WIF フラグが "1" になるまで待ちます。
4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF="1" 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。
サブクロックからメインクロックに切り換える場合も , 4) の WIF="1" の確認を待っ
てから行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバ
イス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。
■ メイン発振安定待ちタイマの動作
図 3.13-2 に , メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウン
タ状態を示します。
図 3.13-2 メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウンタ状態
7FFFFFH
カウンタ値
メインクロック
発振安定待ち時間
・タイマクリア(WCL=1)※0以外の時
・インターバル時間設定(WS1,0=11B)
・メイン発振開始(OSCR:OSCDS1=0)
割込みルーチンでクリア
WIF(割込み要求)
WIE(割込みマスク)
クロックモード
サブクロック
メインクロック
・サブ→メインクロック変更
■ メイン発振安定待ちタイマ使用時の注意事項
発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込みも
発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を停止し
ないでください。
WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合ハーフラグ
セットが優先し , "0" クリアは無効となります。
146
第 3 章 CPU および制御部
周辺停止制御
3.14
周辺停止制御は , 使用していない周辺リソースへのクロック供給を停止することに
より , デバイスの省電力化を行うものです。
各周辺リソースのチャネルごとにクロック供給もしくは停止を設定できますので ,
リソース使用状態に合わせた細かな設定が可能です。
■ 周辺停止制御のレジスタ一覧
周辺停止レジスタのレジスタ構成は , 以下のとおりです。
RSTOP0
初期値
bit
0000 0494H
15
14
13
12
11
10
9
8
ST07
ST06
ST05*
ST04*
ST03
ST02
ST01
ST00
6
5
4
3
2
1
0
ST16
ST15*
ST14
ST13*
ST12
ST11*
ST10
14
13
12
11
10
9
8
ST26*
ST25
ST24
ST23
ST22
ST21
ST20
7
6
5
4
3
2
1
0
-
-
-
-
-
ST32
ST31
ST30
INIT 時
RST 時 アクセス
xxH
00000000B
W
RSTOP1
bit
7
0000 0495H
ST17
00000000B
xxH
W
00000000B
xxH
W
------00B
xxH
W
RSTOP2
bit 15
0000 0496H
ST27*
RSTOP3
bit
0000 0497H
*: MB91F353A/351A/352A/353A では , ST05, ST04, ST15, ST13, ST11, ST27, ST26 のビット設定は無効です。
■ 周辺停止制御のブロックダイヤグラム
図 3.14-1 に , 周辺停止制御のブロックダイヤグラムを示します。
図 3.14-1 周辺停止制御のブロックダイヤグラム
ST32
ST31
ST02
ST01
ST00
各リソースクロック
UART ch0 / U-TIMER ch0
UART ch1 / U-TIMER ch1
R-bus
UART ch2 / U-TIMER ch2
:
A/D
D/A
CLKP
147
第 3 章 CPU および制御部
■ 周辺停止制御のレジスタ詳細説明
レジスタの各ビットについて説明します。
RSTOP0 ∼ RSTOP3( 周辺停止レジスタ ) の各々のビット値が "0" のとき , 該当する周辺
リソースへクロック供給されますが , "1" を書き込むことで該当リソースへのクロック
供給を停止します。
リセット (INIT) 時は全ビットクリアされ , すべての周辺リソースはクロック供給状態
となります。
● 周辺停止レジスタ 0(RSTOP0)
UART および同期シリアル I/F へのクロック供給を制御します。
周辺停止レジスタ 0 のレジスタ構成は , 以下のとおりです。
RSTOP0
初期値
bit
0000 0494H
15
14
13
12
11
10
9
ST07
ST06
ST05*
ST04*
ST03
ST02
ST01
8
INIT 時
RST 時 アクセス
xxH
00000000
ST00
W
B
ビット
名称
15
ST07
0: 同期シリアル I/Fch7 へクロック供給します ( 初期値 )/1: 供給を停止します
14
ST06
0: 同期シリアル I/Fch6 へクロック供給します ( 初期値 )/1: 供給を停止します
13
ST05*
0: 同期シリアル I/Fch5 へクロック供給します ( 初期値 )/1: 供給を停止します
12
ST04*
0: UARTch4/U-TIMERch4 へクロック供給します ( 初期値 )/1: 供給を停止します
11
ST03
0: UARTch3/U-TIMERch3 へクロック供給します ( 初期値 )/1: 供給を停止します
10
ST02
0: UARTch2/U-TIMERch2 へクロック供給します ( 初期値 )/1: 供給を停止します
9
ST01
0: UARTch1/U-TIMERch1 へクロック供給します ( 初期値 )/1: 供給を停止します
8
ST00
0: UARTch0/U-TIMERch0 へクロック供給します ( 初期値 )/1: 供給を停止します
*: MB91F353A/351A/352A/353A は , ST05, ST04 ビットの設定は無効です。
● 周辺停止レジスタ 1(RSTOP1)
リロードタイマ , PPG へのクロック供給を制御します。
周辺停止レジスタ 1 のレジスタ構成は , 以下のとおりです。
RSTOP1
初期値
bit
0000 0495H
148
7
6
5
4
3
2
1
ST17
ST16
ST15*
ST14
ST13*
ST12
ST11*
0
INIT 時
RST 時 アクセス
ST10 00000000B xxH
W
第 3 章 CPU および制御部
ビット
名称
7
ST17
6
ST16
5
ST15
*
0: PPGch5 へクロック供給します ( 初期値 )/1: 供給を停止します
4
ST14
0: PPGch4 へクロック供給します ( 初期値 )/1: 供給を停止します
3
ST13*
0: PPGch3 へクロック供給します ( 初期値 )/1: 供給を停止します
2
ST12
0: PPGch2 へクロック供給します ( 初期値 )/1: 供給を停止します
1
ST11*
0: PPGch1 へクロック供給します ( 初期値 )/1: 供給を停止します
0
ST10
0: PPGch0 へクロック供給します ( 初期値 )/1: 供給を停止します
0: リロードタイマ ch3 へクロック供給します ( 初期値 )/1: 供給を停止します
0: リロードタイマ ch0 ∼ ch2 へクロック供給します ( 初期値 )/1: 供給を停止します
*: MB91F353A/351A/352A/353A は , ST15, ST13, ST11 ビットの設定は無効です。
● 周辺停止レジスタ 2(RSTOP2)
アップダウンカウンタ , フリーランタイマ , インプットキャプチャおよび , アウトプッ
トコンペアへの クロック供給を制御します。
周辺停止レジスタ 2 のレジスタ構成は , 以下のとおりです。
RSTOP2
初期値
bit
0000 0496H
15
14
13
12
11
10
9
ST27*
ST26*
ST25
ST24
ST23
ST22
ST21
8
INIT 時
RST 時 アクセス
xxH
ST20 00000000B
W
ビット
名称
15
ST27*
0: アウトプットコンペア ch6, ch7 へクロック供給します ( 初期値 )/1: 供給を停止します
14
*
ST26
0: アウトプットコンペア ch4, ch5 へクロック供給します ( 初期値 )/1: 供給を停止します
13
ST25
0: アウトプットコンペア ch2, ch3 へクロック供給します ( 初期値 )/1: 供給を停止します
12
ST24
0: アウトプットコンペア ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します
11
ST23
0: インプットキャプチャ ch2, ch3 へクロック供給します ( 初期値 )/1: 供給を停止します
10
ST22
0: インプットキャプチャ ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します
9
ST21
0: フリーランタイマへクロック供給します ( 初期値 )/1: 供給を停止します
8
ST20
0: アップダウンカウンタ ch0, ch1 へクロック供給します ( 初期値 )/1: 供給を停止します
*: MB91F353A/351A/352A/353A は , ST27, ST26 ビットの設定は無効です。
149
第 3 章 CPU および制御部
● 周辺停止レジスタ 3(RSTOP3)
I2C, A/D コンバータ , D/A コンバータへのクロック供給を制御します。
周辺停止レジスタ 3 のレジスタ構成は , 以下のとおりです。
RSTOP3
初期値
bit
0000 0497H
7
6
5
4
3
2
1
0
-
-
-
-
-
ST32
ST31
ST30
INIT 時
-----000B
RST 時 アクセス
xxH
W
ビット
名称
7
-
(reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。
6
-
(reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。
5
-
(reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。
4
-
(reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。
3
-
(reserved ビット ) * 本ビットへの "1" 書込みは禁止です。リード時は "0" が読み出されます。
2
ST32
0: D/A コンバータへクロック供給します ( 初期値 ) / 1: 供給を停止します
1
ST31
0: A/D コンバータへクロック供給します ( 初期値 ) / 1: 供給を停止します
0
ST30
0: I2C I/F へクロック供給します ( 初期値 ) / 1: 供給を停止します
<注意事項>
本レジスタ設定を用いて周辺停止制御を行う場合は , 以下の点に注意してください。
• 停止したリソースのレジスタはリード / ライトできません。クロックを停止する場合は ,
該当リソースが停止した状態にて停止してください。
• "1" を書き込むと該当リソースのクロック供給が停止するため , リソースの起動も行え
ません。停止したリソースを使用する際は , 該当ビットを "0" にしてクロックを供給状
態にした後にリソースを起動してください。
• DMA 対象になっていて DMA 許可状態にある周辺リソースを停止しないでください。
また , 本ビットで停止したリソースに対して DMA 転送を許可しないでください。
• 動作中や DMA 転送中のリソースを停止しないでください。
• 周辺停止レジスタは RST 時 ( ソフトウェアリセット ) 初期化されません (INIT 時は初期
化されます )。ソフトウェアリセット後に初期化したい場合は , プログラムにて再度設
定してください。
150
第4章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内
部バスと外部のメモリおよび I/O デバイスとのイン
タフェースを制御します。
本章では , 外部バスインタフェースの各機能につい
て説明します。
4.1 外部バスインタフェースの特長
4.2 外部バスインタフェースのレジスタ
4.3 チップセレクト領域
4.4 エンディアンとバスアクセス
4.5 通常バスインタフェース
4.6 アドレス / データマルチプレックスインタフェース
4.7 プリフェッチ動作
4.8 DMA アクセス
4.9 バスアービトレーション
4.10 レジスタ設定手順
151
第 4 章 外部バスインタフェース
4.1
外部バスインタフェースの特長
外部バスインタフェースの特長について説明します。
■ 外部バスインタフェースの特長
• 最大 23 ビット長のアドレス出力
• 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン
グを混在制御可能
- 非同期 SRAM, 非同期 ROM/FLASH メモリ ( 複数ライトストローブ方式またはバ
イトイネーブル方式 )
- ページモード ROM/FLASH メモリ ( ページサイズ 2/4/8 が可能 )
- アドレス / データマルチプレックスバス (8 ビット /16 ビット幅のみ )
- 同期メモリ (ASIC 内蔵メモリ等 )
( 注意事項 ) Synchronous SRAM は直結できません。
• 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
- 各領域のサイズは 64K バイトの倍数単位で設定可能 (1 チップセレクト領域あたり
64K バイト∼ 2G バイトまで )
- 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウン
ダリの制限あり )
• チップセレクト領域ごとに以下の機能が独立に設定可能
- チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません )
- 各種メモリ対応などのアクセスタイミングタイプ設定
- 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 )
- データバス幅設定 (8 ビット /16 ビット )
- バイトオーダリングのエンディアン設定 ( ビッグまたはリトル )
( 注意事項 ) CS0 領域は , ビッグエンディアンのみ可能
- 書込み禁止設定 ( 読出し専用領域 )
- 内蔵キャッシュへの取込み許可・禁止設定
- プリフェッチ機能の許可・禁止設定
- 最大バースト長設定 (1, 2, 4, 8)
152
第 4 章 外部バスインタフェース
• アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能
- 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 15 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash,
I/O 領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O
領域 )
- ファーストアクセスウェイトとページウェイトが設定可能(バースト・ページモー
ド ROM/FLASH 領域 )
- 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能
• DMA によるフライバイ転送が可能
- メモリと I/O 間の 1 アクセスでの転送が可能
- メモリウェイトサイクルをフライバイ時に I/O のウェイト周期に同期させること
が可能
- 転送元アクセスのみを延長してホールドタイムを確保することが可能
- フライバイ転送時固有のアイドル / リカバリサイクルを設定することが可能
- BRQ と BGRNT を使用した外部バスアービトレーションが可能
- 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能
153
第 4 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 4.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 4.1-1 外部バスインタフェースのブロックダイヤグラム
内部
アドレスパス
32
内部
データパス
32
外部
データパス
MUX
ライトバッファ
スイッチ
リードバッファ
スイッチ
データブロック
アドレスブロック
+1 または +2
外部
アドレスパス
アドレスバッファ
ASR
CS0~CS3
ASZ
comparator
外部端子制御部
RD
WR0, WR1
全ブロック制御
レジスタ
&
制御
AS
BRQ
BGRNT
RDY
154
第 4 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です ( 一部のピンは兼用端子です )。
〔通常バスインタフェース〕
A23 ∼ A00, D31 ∼ D16 (AD15 ∼ AD00)
CS0, CS1, CS2, CS3,
AS, SYSCLK, MCLK
RD
WR0, WR1,
RDY, BRQ, BGRNT
〔メモリインタフェース〕
MCLK
〔DMA インタフェース〕
IOWR, IORD,
DACK0, DACK1, DACK2
DREQ0, DREQ1, DREQ2
DEOP0/DSTP0, DEOP1/DSTP1, DEOP2/DSTP2
■ 外部バスインタフェースのレジスタ一覧
外部バスインタフェースのレジスタ構成は , 以下のとおりです。
アドレス
00000640H
00000644H
00000648H
0000064CH
00000650H
00000654H
00000658H
0000065CH
00000660H
00000664H
00000668H
0000066CH
00000670H
00000674H
00000678H
0000067CH
00000680H
00000684H
00000688H
0000068CH
000007F8H
000007FCH
31
24 23
16 15
8 7
ASR0
ASR1
ASR2
ASR3
ASR4
ASR5
ASR6
ASR7
AWR0
AWR2
AWR4
AWR6
予約
予約
IOWR0
予約
予約
IOWR1
予約
予約
IOWR2
予約
CSER
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
予約
0
ACR0
ACR1
ACR2
ACR3
ACR4
ACR5
ACR6
ACR7
AWR1
AWR3
AWR5
AWR7
予約
予約
予約
予約
(MODR)
予約
予約
予約
予約
TCR
予約
予約
予約
予約
予約
予約
予約 : 予約レジスタです。書き換える場合には , 必ず "0" を設定してください。
MODR はユーザプログラムからはアクセスできません。
155
第 4 章 外部バスインタフェース
4.2
外部バスインタフェースのレジスタ
外部バスインタフェースのレジスタについて説明します。
■ 外部バスインタフェースのレジスタ概要
外部バスインタフェースには , 以下の 6 種類のレジスタがあります。
• ASR0 ∼ ASR7 (Area Select Register)
• ACR0 ∼ ACR7 (Area Configuration Register)
• AWR0 ∼ AWR7 (Area Wait Register)
• IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC)
• CSER (Chip Select Enable register)
• TCR (Terminal and timing Control Register)
156
第 4 章 外部バスインタフェース
4.2.1
ASR0 ∼ ASR3 (Area Select Register)
Area Select Register の詳細を説明します。
■ ASR0 ∼ ASR3 (Area Select Register) のレジスタ構成
ASR0 ∼ ASR3 のレジスタ構成は , 以下のとおりです。
初期値
ASR0
15
14
13
0000 0640H
A31
A30
A29
ASR1
0000 0644H
15
14
13
A31
A30
A29
ASR2
0000 0648H
15
14
13
A31
A30
A29
ASR3
15
0000 064CH A31
14
13
A30
A29
15
14
13
A31
A30
A29
15
14
13
A31
A30
A29
15
14
13
A31
A30
A29
14
13
A30
A29
ASR4
0000 0650H
ASR5
0000 0654H
ASR6
0000 0658H
ASR7
15
0000 065CH A31
12
...
...
...
2
1
0
INIT 時
A17
A16
0000000000000000H
RST 時
0000H
アクセス
A18
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
12
...
...
...
2
1
0
A18
A17
A16
0000000000000000H
XXXXH
R/W
R/W
ASR0 ∼ ASR7(Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップセレクト領域の開
始アドレスを指定します。
開始アドレスは, A31∼A16の上位16ビットを設定できます。各チップセレクト領域は,
このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ3 ∼
ASZ0 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ3 ∼ ASZ0 ビッ
トの設定にしたがいます。例えば , ASZ3 ∼ ASZ0 ビットにより , 1M バイトの領域を設
定した場合は , ASR0 ∼ ASR7 レジスタの下位 4 ビットは無視され , A31 ∼ A20 ビット
のみ意味を持ちます。
ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7
は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 ,
CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ
ジスタを設定してください。
157
第 4 章 外部バスインタフェース
4.2.2
ACR0 ∼ ACR7 (Area Configuration Register)
Area Configuration Register の詳細を説明します。
■ ACR0 ∼ ACR7 (Area Configuration Register) のレジスタ構成
ACR0 ∼ ACR7 のレジスタ構成は , 以下のとおりです。
初期値
ACR0H
12
11
10
9
8
ACR0L
7
6
5
0000 0643H SREN PFEN WREN
4
3
2
1
0
ACR1H
0000 0646H
12
0000 0642H
15
14
13
RST 時 アクセス
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111xx00B 1111**00B
R/W
15
14
13
0
INIT 時
TYP3 TYP2 TYP1 TYP0 00000000B 00000000B
11
10
9
R/W
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR1L
7
6
5
4
3
2
1
0
0000 0647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB
R/W
ACR2H
0000 064AH
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR2L
7
6
5
4
3
2
1
0
0000 064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB
R/W
ACR3H
0000 064EH
15
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR3L
7
6
5
4
3
2
1
0
0000 064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB
R/W
ACR4H
0000 0652H
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR4L
7
6
5
4
3
2
1
0
0000 0653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB
R/W
ACR5H
0000 0656H
15
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR5L
7
6
5
4
3
2
1
0
0000 0657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB
R/W
15
15
14
14
13
13
12
12
11
11
10
10
9
9
8
8
( 続く )
158
第 4 章 外部バスインタフェース
( 続き )
初期値
ACR6H
0000 065AH
15
14
13
12
11
10
9
8
INIT 時
RST 時 アクセス
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR6L
7
6
5
4
3
2
1
0
0000 065BH SREN PFEN WREN LEND TYP3 TYP2 TYP3 TYP0 xxxxxxxxB xxxxxxxxB
R/W
ACR7H
0000 065EH
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
R/W
ACR7L
7
6
5
4
3
2
1
0
0000 065FH SREN PFEN WREN LEND TYP3 TYP2 TYP3 TYP0 xxxxxxxxB xxxxxxxxB
R/W
15
14
13
12
11
10
9
8
ACR0 ∼ ACR7(Area Configuration Register 0 ∼ 7) は , 各チップセレクト領域の機能を設
定します。
[ ビット 15 ∼ 12] ASZ3 ∼ 0= Area Size ビット 3 ∼ 0
各チップセレクト領域のサイズを , 表 4.2-1 のように設定します。
表 4.2-1 Area Size ビットの各チップセレクト領域の設定サイズ
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 への最初の書込み後より , 全領域設定が解除され , 上記の表
にしたがったサイズに設定されます。
159
第 4 章 外部バスインタフェース
[ ビット 11, 10] DBW1, DBW0= Data Bus Width1, 0
各チップセレクト領域のデータバス幅を , 以下のように設定します
DBW1
DBW0
0
0
8 ビット ( バイトアクセス )
0
1
16 ビット ( ハーフワードアクセス )
1
0
Reserved 設定禁止
1
1
Reserved 設定禁止
データバス幅
ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビッ
トの値と同じ値が自動的に書き込まれます。
[ ビット 9, 8] BST1, BST0= Burst Size1, 0
各チップセレクト領域のデータバス幅を , 以下のように設定します
BST1
BST0
最大バースト長
0
0
1( シングルアクセス )
0
1
2 バースト ( アドレス境界 1 ビット )
1
0
4 バースト ( アドレス境界 2 ビット )
1
1
8 バースト ( アドレス境界 3 ビット )
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスまた
はバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決まる
アドレス境界内で連続したバーストアクセスを行います。
バス幅 32 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけません。
2 バースト以下を推奨します。
バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。
シングルアクセス以外のバースト長設定を行った領域では RDY 入力を無視します。
[ ビット 7] SREN=ShaRed ENable
各チップセレクト領域の BRQ/BGRNT による共有の許可・禁止を , 以下のように設定
します
SREN
共有の許可・禁止
0
BRQ/BGRNT による共有を禁止 (CS はハイインピーダンスになりません )
1
BRQ/BGRNT による共有を許可 (CS はハイインピーダンスになります )
共有が許可された領域は , バス開放中 (BGRNT=Low 出力中 ) はチップセレクト出力
(CSn) がハイインピーダンスになります。
共有が禁止された領域は , バス開放中 (BGRNT=Low 出力中 ) もチップセレクト出力
(CSn) がハイインピーダンスになりません。
CSER により許可されたすべての領域の共有が許可されている場合のみ , アクセススト
ローブ出力 (AS, RD, WR0, WR1) がハイインピーダンスになります。
160
第 4 章 外部バスインタフェース
[ ビット 6] PFEN=PreFetch ENable
各チップセレクト領域のプリフェッチの許可・禁止を , 以下のように設定します
PFEN
プリフェッチ許可・禁止
0
プリフェッチ禁止
1
プリフェッチ許可
プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに対
し先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレスに対し
内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッチバッファに
先読みされたデータを返します。
詳細は「4.7 プリフェッチ動作」を参照してください。
[ ビット 5] WREN=WRite ENable
各チップセレクト領域の書込みの許可・禁止を設定します。
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , そのア
クセスは無視され , 外部アクセスを一切行いません。
データ領域等 , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[ ビット 4] LEND=Little ENDian select
各チップセレクト領域のバイトオーダリングを設定します。
LEND
バイトオーダリング
0
ビッグエンディアン
1
リトルエンディアン
ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエンディ
アンのみをサポートします。
161
第 4 章 外部バスインタフェース
[ ビット 3 ∼ 0] TYP3 ∼ TYP0= TYPe select
各チップセレクト領域のアクセスタイプを , 以下のように設定します
TYP3 TYP2 TYP1 TYP0
0
1
0
x
1
x
アクセスタイプ
x
通常アクセス ( 非同期 SRAM, I/O, single/page)
x
x
アドレスデータマルチプレックスアクセス
(8/16 ビットバス幅限定 )
x
0
RDY 端子による WAIT 挿入無効
x
1
RDY 端子による WAIT 挿入有効 ( バースト時は無効 )
0
x
WR0∼WR3端子をライトストローブとして使用(WRは"H"固定)
1
x
設定禁止
0
設定禁止
1
設定禁止
0
0
0
1
0
設定禁止
0
1
1
設定禁止
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のものになり
ます。) *
各ビットは , 組み合わせて設定します。
*: CS 領域マスク設定機能
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した
領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYPE3 ∼ TYPE0=1111 を設
定し , マスク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は
禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
- マスク設定領域に対応する CS はアサートされません。
- ベース設定領域に対応する CS がアサートされます。
- ACR の以下の設定はマスク設定領域側のものが有効になります。
ビット 11, 10 DBW1, 0: バス幅設定
ビット 9, 8 BST1, 0: バースト長設定
ビット 7 SREN: 共有許可設定
ビット 6 PFEN: プリフェッチ許可設定
ビット 5 WREN: ライト許可設定 ( 注意 : この設定のみ , ベース設定領域と異な
る設定は禁止します ) 。
ビット 4 LEND: リトルエンディアン設定
- ACR の以下の設定はベース設定領域側のものが有効になります。
ビット 3 ∼ 0 TYPE3 ∼ 0: アクセスタイプ設定
- AWR の設定はマスク設定領域側のものが有効になります。
- CHER の設定はマスク設定領域側のものが有効になります。
162
第 4 章 外部バスインタフェース
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき
ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけません。ま
た , マスク設定領域を複数重複させてもいけません。ASR および ACR:ASZ3 ∼ ASZ0
ビットの設定には十分注意してください。
<注意事項>
[ ビット 3 ∼ 0] TYP3 ∼ TYP0] についての制限事項は以下のとおりです。
• ライト許可設定をマスクで実現することはできません。
• ライト許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定としてく
ださい。
• マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域と
して動作します。
• ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると ,
ベース設定のない領域となり , 誤動作します。
• MB91350A シリーズでは CS4 ∼ CS7 端子がありませんので CS 領域 4 ∼ 7 は
ACR:TYPE 3 ∼ TYPE0 = 1111 マスク領域設定のみ有効となります。
• ASR, ACR はワードアクセスで同時設定してください。ASR, ACR をハーフワードで
アクセスする場合には , ASR 設定後 , ACR を設定してください。
163
第 4 章 外部バスインタフェース
4.2.3
AWR0 ∼ AWR7 (Area Wait Register)
Area Wait Register の詳細を説明します。
■ AWR0 ∼ AWR7 (Area Wait Register) のレジスタ構成
AWR0 ∼ AWR7 のレジスタ構成は , 以下のとおりです。
初期値
AWR0H
31
30
29
28
27
26
25
0000 0660H
W15
W14
W13
W12
W11
W10
W09
AWR0L
0000 0661H
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
24
INIT 時
RST 時 アクセス
W08 01111111B 01111111B R/W
16
W00 11111111B 11111011B
R/W
AWR1H
0000 0662H
15
14
13
12
11
10
9
8
W15
W14
W13
W12
W11
W10
W09
W08 xxxxxxxxB xxxxxxxxB
R/W
AWR1L
0000 0663H
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
0
W00 xxxxxxxxB xxxxxxxxB
R/W
AWR2H
0000 0664H
31
30
29
28
27
26
25
W15
W14
W13
W12
W11
W10
W09
W08 xxxxxxxxB xxxxxxxxB
R/W
AWR2L
0000 0665H
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
16
W00 xxxxxxxxB xxxxxxxxB
R/W
AWR3H
0000 0666H
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
8
W08 xxxxxxxxB xxxxxxxxB
R/W
AWR3L
0000 0667H
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
0
W00 xxxxxxxxB xxxxxxxxB
R/W
AWR4H
0000 0668H
31
30
29
28
27
26
25
W15
W14
W13
W12
W11
W10
W09
AWR4L
0000 0669H
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
W00 xxxxxxxxB xxxxxxxxB
R/W
AWR5H
0000 066AH
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
8
W08 xxxxxxxxB xxxxxxxxB
R/W
AWR5L
0000 066BH
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
0
W00 xxxxxxxxB xxxxxxxxB
R/W
24
24
W08 xxxxxxxxB xxxxxxxxB
R/W
16
( 続く )
164
第 4 章 外部バスインタフェース
( 続き )
初期値
AWR6H
31
30
29
28
27
26
25
24
0000 066CH
W15
W14
W13
W12
W11
W10
W09
AWR6L
0000 066DH
23
22
21
20
19
18
17
W07
W06
W05
W04
W03
W02
W01
AWR7H
0000 066EH
15
14
13
12
11
10
9
W15
W14
W13
W12
W11
W10
W09
W08 xxxxxxxxB xxxxxxxxB
R/W
AWR7L
0000 066FH
7
6
5
4
3
2
1
W07
W06
W05
W04
W03
W02
W01
0
W00 xxxxxxxxB xxxxxxxxB
R/W
INIT 時
RST 時 アクセス
W08 xxxxxxxxB xxxxxxxxB
R/W
16
W00 xxxxxxxxB xxxxxxxxB
R/W
8
AWR0 ∼ AWR7 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各
ビットの働きが変わります。
■ 通常アクセスおよびアドレス / データマルチプレックスアクセス
ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアク
セス動作を行う領域となります。
TYP3
TYP2
TYP1
TYP0
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, single/page)
0
1
x
x
アドレスデータマルチプレックスアクセス
(8/16 ビットバス幅限定 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての , AWR0
∼ AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各
領域を CSER レジスタによって有効にする前に , 設定を行ってください。
[ ビット 15 ∼ 12] W15 ∼ W12= ファーストアクセスウェイトサイクル (First Access
Wait Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設定し
ます。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
W15
W14
W13
W12
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
1
1
1
1
ファーストアクセスウェイトサイクル
…
…
自動ウェイトサイクル 15
165
第 4 章 外部バスインタフェース
[ ビット 11 ∼ 8] W11 ∼ 08=ページ内アクセスウェイトサイクル (Inpage Access Wait
Cycle)
バーストアクセス時 , ページ内アクセスサイクルに挿入するオートウェイトサイクル
数を設定します。バーストアクセスサイクル以外では , 意味を持ちません。
W11
W10
W09
W08
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
1
1
1
1
自動ウェイトサイクル 15
ページ内アクセスウェイトサイクル
…
…
ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同じ値
を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイムは同
じにはならないことに注意してください (ページ内アクセスサイクルでは , アドレス出
力遅延が含まれるため ) 。
[ ビット 7, 6] W07, 06= リード→ライトアイドルサイクル (Read → Write Idle Cycle)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場合
に , リードデータとライトデータのデータバス上での衝突を防ぐために設定します。ア
イドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子はハイイ
ンピーダンス状態を維持します。
リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へのア
クセスが発生した場合に , 指定したアイドルサイクルを挿入します。
W07
W06
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
リード→ライトアイドルサイクル
[ ビット 5, 4] W05, W04= ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制限
のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイクル
中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダンスを
維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必ずラ
イトリカバリサイクルが挿入されます。
166
W05
W04
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
ライトリカバリサイクル
第 4 章 外部バスインタフェース
[ ビット 3] W03=WR0 ∼ WR1 出力タイミング選択
WR0 ∼ WR1 出力タイミング設定は , ライトストローブ出力を , 非同期ストローブとし
て使用するか , 同期ライトイネーブルとして使用するかを選択します。非同期ストロー
ブとすることにより通常メモリ I/O に対応し , 同期イネーブルとすることによりクロッ
ク同期のメモリ I/O(ASIC 内蔵メモリなど ) に対応します。
W03
WR0 ∼ WR1 出力タイミング選択
0
MCLK 同期ライトイネーブル出力 (AS="L" から有効 )
1
非同期ライトストローブ出力 ( 通常動作 )
同期ライトイネーブルとした場合 (AWR:W03 ビットが "0") , 以下のような動作となり
ます。
• 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの MCLK
出力の立上がりエッジで取り込まれることを前提としたタイミングになります。非
同期ストローブ出力とはタイミングが異なります。
• WR0 ∼ WR1 端子出力は , AS 端子出力がアサートされているタイミングから , 同期
ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同
期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる場
合 , 同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートしたクロックサイクルにて , 外部データ出力
端子よりライトデータを出力します。
• リードストローブ出力 (RD) は, WR0∼WR1 出力タイミング設定の内容に関わらず,
非同期リードストローブとして機能します。データの入出力方向制御にそのまま用
いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
以下の追加ウェイト設定はしないでください。
• CS → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください )
ファーストアクセスウェイトサイクル設定 (AWR:W15-W12 ビットは常に "0000B" を
書いてください )
• 以下のアクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3
∼ビット 0)) は設定しないでください。
アドレス / データマルチプレックスバス設定 (ACR:TYPE2 ビットは常に "0" を書い
てください )
• WR0 ∼ WR1 をライトストローブとして使用する設定 (ACR:TYP1 ビットは常に "0"
を書いてください )
RDY 入力有効設定 (ACR:TYPE0 ビットは常に "0" を書いてください )
• 同期ライトイネーブル出力の場合 , バースト長は常に 1(ACR:BST1, 0 ビットに "00B")
を設定してください。
167
第 4 章 外部バスインタフェース
[ ビット 2] W02= アドレス→ CS 遅延 (Address → CS Delay)
アドレス→ CS 遅延設定は , CS の立下りに対してアドレスなどが一定のセットアップ
を必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際にも CS の
エッジを必要とする場合などに設定します。
アドレスおよび AS 出力から , CS0 ∼ CS3 出力のディレイを設定します。
W02
アドレス→ CS 遅延
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼
CS3 がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセス
を実行した場合 , 両アクセスの間も CS0 ∼ CS3 はアサートを継続したまま変化しない
ことがあります。
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立上りか
ら CS0 ∼ CS3 がアサート開始されます。このとき , 同じチップセレクト領域に連続し
たアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS7 ネゲートタイミングが
発生します。
CS 遅延ありを選択した場合は , 遅延させた CS のアサートから , リード / ライトスト
ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01
の CS → RD/WR セットアップ設定と同等の動作となります ) 。
アドレス→ CS 遅延設定は , 同一領域に対し出力される DACK 信号 ( 基本モード ) にも
同様に作用します。基本モードでの DACK 出力は , その領域に対する CS と同じ波形
となります。
[ ビット 1] W01=CS → RD/WR セットアップ延長サイクル (CS → RD/WR setup)
CS→RD/WRセットアップ延長サイクルは, CSアサート後, リード/ライトストローブを
アサートするまでの期間を延長する場合に設定します。CS アサート後 , リード / ライ
トストローブをアサートする前に最低 1 サイクルのセットアップ延長サイクルを挿入
します。
W01
CS → RD/WR セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , 最速で , CS アサート直後の外部メモリク
ロック MCLK 出力の立上がりから RD/WR0 ∼ WR1 が出力されます。WR0 ∼ WR1 は ,
内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定し , 1 サイクルを選択した場合は , RD/WR0 ∼ WR1 とも , 必ず 1 サイクル以
上遅れて出力されます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 ,
このセットアップ延長サイクルは挿入されません。アドレス確定のセットアップ延長
サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CS 遅延を挿入するこ
とにより , 毎アクセス時に CS がいったんネゲートされるため , このセットアップ延長
サイクルが有効となります。
W02 の CS 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセット
アップサイクルが有効となります。
168
第 4 章 外部バスインタフェース
[ ビット 0] W00=RD/WR → CS ホールド延長サイクル (RD/WR → CS Hold Cycle)
RD/WR→CSホールド延長サイクルは, リード/ライトストローブネゲート後, CSネゲー
トまでの期間を延長する場合に設定します。リード / ライトストローブネゲート後 , CS
をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。
W00
RD/WR → CS ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , RD/WR0 ∼ WR1 がネゲートされた後の外
部メモリクロックMCLK出力の立上がりエッジよりホールド遅延経過後に, CS0∼CS3
がネゲートされます。
"1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS3 は 1 サイクル遅れてネゲート
されます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 ,
このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サイクル
が必須となる場合, W02ビットを有効にしてアドレス→CS遅延を挿入することにより,
毎アクセス時に CS がいったんネゲートされるため , このホールド延長サイクルが有効
となります。
169
第 4 章 外部バスインタフェース
4.2.4
IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC)
I/O Wait Register for DMAC の詳細を説明します。
■ IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) のレジスタ構成
IOWR0 ∼ IOWR3 のレジスタ構成は , 以下のとおりです。
IOWR0
初期値
31
0000 0678H
IOWR1
0000 0679H
30
29
28
27
26
25
24
INIT 時
RST 時
RYE0 HLD0 WR01 WR00 IW03 IW02 IW01 IW00 xxxxxxxxB xxxxxxxxB
23
22
21
20
19
18
17
14
13
12
11
10
9
R/W
16
RYE1 HLD1 WR11 WR10 IW13 IW12 IW11 IW10 xxxxxxxxB xxxxxxxxB
15
アクセス
R/W
IOWR2
0000 067AH
8
RYE2 HLD2 WR21 WR20 IW23 IW22 IW21 IW20 xxxxxxxxB xxxxxxxxB
R/W
IOWR3 *
0000 067BH
15
14
13
12
11
10
9
8
RYE3 HLD3 WR31 WR30 IW33 IW32 IW31 IW30 xxxxxxxxB xxxxxxxxB
R/W
*: MB91F355A/355A/354A/F356B/F357B のみです。
DMA フライバイアクセス時の , 各種ウェイトを設定します。
[ ビット 31, 23, 15] RYE0, 1, 2=RDY 機能設定 (ReadY Enable0, 1, 2, 3)
DMA フライバイアクセス時のチャネル 0 ∼ 2 のチャネルごとの 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 端子によるウェイト挿入が可能と
なります。
170
第 4 章 外部バスインタフェース
[ ビット 30, 22, 14] HLD0, 1, 2= ホールドウェイト設定 (HoLD wait control)
DMA フライバイアクセス時の , 転送元アクセス側のリードストローブ信号のホールド
サイクルを制御します。
HLDn
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長します。
"0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は RD,
I/O →メモリの場合は IORD) とライトストローブ信号 ( メモリ→ I/O の場合は IOWR,
I/O →メモリの場合は , WR0 ∼ WR3 および WRX) は同じタイミングで , 出力されます。
"1" 設定時は , 転送元アクセス側データの転送先に対するホールドタイムを確保するた
め , ライトストローブ信号に対し , リードストローブ信号を , "1" サイクル長く出力し
ます。
[ ビット 29, 28, 21, 20, 13, 12] WR01, WR00, WR11, WR10, WR21, WR20
=I/O アイドルサイクル設定 (I/O Idle Wait)
DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを設
定します。
WRn1
WRn0
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
I/O アイドルサイクル設定
アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に , I/O
アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイドルサイ
クル中は , すべての CS およびストローブ出力はネゲートされ , データ端子はハイイン
ピーダンスとなります。
[ビット27∼24, 19∼16, 11∼8] IW03∼W00, IW13∼IW10, IW23∼IW20, IW33∼IW30
=I/O ウェイトサイクル (I/O access Wait)
DMA フライバイアクセス時の , 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 ビットに設定したサイクル数より多いウェイ
トが挿入される場合があります。
171
第 4 章 外部バスインタフェース
4.2.5
CSER (Chip Select Enable register)
Chip Select Enable register の詳細を説明します。
■ CSER (Chip Select Enable register) のレジスタ構成
CSER のレジスタ構成は , 以下のとおりです。
初期値
31
0000 0680H
30
29
28
27
26
25
24
INIT 時
RST 時 アクセス
CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B R/W
各チップセレクト領域の許可 / 禁止を設定します。
[ ビット 31 ∼ 24] CSE7 ∼ CSE0= チップセレクト領域許可 (Chip select enable 0-7)
CS0 ∼ CS7 の各チップセレクト領域許可ビットです。
初期値は , 00000001B で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定にし
たがい , 動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってください。
CSE7 ∼ CSE0
領域コントロール
0
禁止
1
許可
表 4.2-2 に , CSE のビットと対応する CSK を示します。
表 4.2-2 CSE のビットと対応する CSK
172
CSE のビット
対応する CS
ビット 24:CSE0
CS0
ビット 25:CSE1
CS1
ビット 26:CSE2
CS2
ビット 27:CSE3
CS3
ビット 28:CSE4
CS4
ビット 29:CSE5
CS5
ビット 30:CSE6
CS6
ビット 31:CSE7
CS7
第 4 章 外部バスインタフェース
4.2.6
TCR (Terminal and timing Control Register)
Terminal and timing Control Register の詳細を説明します。
■ TCR (Terminal and timing Control Register) のレジスタ構成
TCR のレジスタ構成は , 以下のとおりです。
初期値
7
6
5
4
0000 0683H BREN PSUS PCLR 予約
3
予約
2
1
0
INIT 時
RST 時 アクセス
0000xxxx
00000000
RDW1
RDW0
R/W
予約
B
B
共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラ全般
に関わる機能を制御します。
[ ビット 7] BREN=BRQ 入力許可設定 (BRQ enable)
BRQ 端子入力を許可し , 外部バス共有を可能にします。
BREN
BRQ 入力許可設定
0
BRQ/BGRNT によるバス共有をしません。BRQ 入力は無効となります。
1
BRQ/BGRNT によるバス共有を行います。BRQ 入力は有効となります。
初期状態 ("0") のときは , BRQ の入力を無視します。
"1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バス
を開放 ( ハイインピーダンス制御 ) し BGRNT をアクティブ ("L" 出力 ) にします。
[ ビット 6] PSUS= プリフェッチ抑止 (Prefetch SUSpend)
すべての領域に対するプリフェッチの一時停止を制御します。
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ抑止
"1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。こ
の間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファの内
容は消去されませんので , プリフェッチを再開する前にビット 5:PCLR ビット機能によ
りプリフェッチバッファのクリアを行ってください。
173
第 4 章 外部バスインタフェース
[ ビット 5] PCLR= プリフェッチバッファ全クリア (Prefetch buffer CleaR)
プリフェッチバッファのすべての内容をクリアします。
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファクリ
アが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッチを中
断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と PCLR の
両ビットに同時に "11B" を書き込んで結構です ) 。
[ ビット 4 ∼ 2] 予約 (reserved)
予約ビットです。必ず "0" を設定してください。
[ ビット 1, 0] RDW1, RDW0= ウェイトサイクル短縮 (ReDuce Wait cycle)
すべてのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセスサ
イクルウェイトの設定値を , AWR レジスタの設定値はそのままで自動ウェイトサイク
ルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セットアップやホー
ルドサイクルの設定には影響しません。SDRAM 制御領域でも機能しません。
RDW1
RDW0
0
0
通常ウェイト (AWR0 ∼ AWR7 の設定値 )
0
1
AWR0 ∼ AWR3 の設定値の 1/2 (1 ビット右シフト )
1
0
AWR0 ∼ AWR3 の設定値の 1/4 (2 ビット右シフト )
1
1
AWR0 ∼ AWR3 の設定値の 1/8 (3 ビット右シフト )
ウェイトサイクル短縮
この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設定を
大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイクルウェ
イトがかかることを防ぐためのものです。
通常このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれぞれ
書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべての AWR
の設定は高速クロックのときの設定のままで, アクセスサイクルウェイトのみ1度に削
減することができます。
クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくださ
い。
174
第 4 章 外部バスインタフェース
4.3
チップセレクト領域
外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。
各領域のアドレス空間は ASR0 ∼ ASR7 (Area Select Register) と ACR0 ∼ ACR7
(Area Configuration Register) で 4G バイトの空間に , 最小 64K バイト単位で任意
に配置することができます。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセ
スサイクル中に対応するチップセレクト信号 CS0 ∼ CS3 がアクティブ ("L" 出力 )
になります。
■ ASR および ASZ3 ∼ ASZ0 の設定例
1) ASR1=0003H ACR1->ASZ3 ∼ ASZ0=0000B
チップセレクト領域 1 は , 00030000H から 0003FFFFH に割り当てられます。
2) ASR2=0FFCH ACR2->ASZ3 ∼ ASZ0=0010B
チップセレクト領域 2 は , 0FFC0000H から 10000000H に割り当てられます。
3) 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 チップセレクト領域
(初期値) (例)
00000000 H
00000000 H
00030000 H
領域 1
64Kバイト
領域 3
1Mバイト
領域 2
256Kバイト
00040000 H
00100000 H
領域0
00200000 H
0FFC0000 H
0FFFFFFF H
FFFFFFFF H
FFFFFFFF H
175
第 4 章 外部バスインタフェース
4.4
エンディアンとバスアクセス
エンディアンとバスアクセスについて説明します。
■ エンディアンの概要
FR ファミリは特定の領域を除いて , チップセレクトごとにビッグエンディアンとリト
ルエンディアンを切り換えて使用することができます。
176
第 4 章 外部バスインタフェース
4.4.1
データバス幅と制御信号との関係
WR 3 ∼ WR0 の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に
1 対 1 に対応します。
下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト
位置とそれに対応する制御信号をまとめます。
■ 通常バスインタフェースの制御信号
図 4.4-1 に , 通常バスインタフェースの 16 ビットバス幅および 8 ビット幅の制御信号
を示します。
図 4.4-1 通常バスインタフェースの制御信号
a)16ビットバス幅
データバス
制御記号
b)8ビットバス幅
データバス
WR0
制御記号
WR0
WR1
-
-
-
-
-
-
-
-
-
-
(D23~16は未使用)
■ 時分割入出力インタフェースの制御信号
図 4.4-2 に , 時分割入出力インタフェースの 16 ビットバス幅および 8 ビット幅の制御
信号を示します。
図 4.4-2 時分割入出力インタフェースの制御信号
a)16ビットバス幅
b)8ビットバス幅
データバス 出力アドレス 制御記号
データバス 出力アドレス
制御記号
D31
D16
A15~8
WR0
A7~0
WR1
-
-
-
A7~0
WR0
-
-
-
-
-
-
-
-
-
-
-
(D23~16は未使用)
177
第 4 章 外部バスインタフェース
4.4.2
ビッグエンディアンのバスアクセス
FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト
ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "0" に
設定した場合は , その領域はビッグエンディアンとして扱います。
通常 FR ファミリは , ビッグエンディアンで外部バスアクセスを行います。
■ ビッグエンディアンのデータフォーマット
図 4.4-3 に , ワードアクセス (LD, ST 命令実行時 ) のデータフォーマットによる内部レ
ジスタと外部データバスとの関係を示します。
図 4.4-3 ワードアクセス (LD, ST 命令実行時 )
内部レジスタ
D31
AA
D23
BB
D15
CC
D7
DD
D0
外部バス
D31
AA
D23
BB
D15
CC
D7
DD
D0
図 4.4-4 に , ハーフワードアクセス (LDUH, STH 命令実行時 ) のデータフォーマットに
よる内部レジスタと外部データバスとの関係を示します。
図 4.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 )
178
a)出力アドレス下位"00"
b)出力アドレス下位"10"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
BB
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
AA
BB
BB
D7
D0
D7
D0
第 4 章 外部バスインタフェース
図 4.4-5 に , バイトアクセス (LDUB, STB 命令実行時 ) のデータフォーマットによる内
部レジスタと外部データバスとの関係を示します。
図 4.4-5 バイトアクセス (LDUB, STB 命令実行時 )
a)出力アドレス下位"00"
b)出力アドレス下位"01"
c)出力アドレス下位"10"
d)出力アドレス下位"11"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
内部レジスタ 外部バス
D31
D31
D23
D23
D23
D23
D23
D23
D15
D15
D15
D15
D15
D7
D7
AA
D15
D15
D15
AA
D7
D7
D7
D7
D7
AA
AA
D0
AA
D0
D0
D0
D0
D7
AA
D0
D0
AA
D0
■ ビッグエンディアンのデータバス幅
図 4.4-6 に , 16 ビットバス幅のデータバス幅を示します。
図 4.4-6 16 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
“00”“10”
D31
D23
D15
D07
AA
リード/ライト
BB
AA
CC
BB
DD
D31
D23
CC
DD
図 4.4-7 に , 8 ビットバス幅のデータバス幅を示します。
図 4.4-7 8 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
AA
BB
リード/ライト
“00” “01” “10” “11”
AA
BB
CC
DD
D31
CC
DD
179
第 4 章 外部バスインタフェース
■ 外部バスアクセス
ビッグエンディアンは , 外部バスアクセスを「16 ビット /8 ビットバス幅」「ワード /
ハーフワード / バイトアクセス」の項目で , そのときの以下の項目をまとめます。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
PA1/PA0
出力 A1/A0
+
①∼④
:
プログラムで指定したアドレス下位 2 ビット
:
出力するアドレスの下位 2 ビット
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
FR ファミリは , ミスアラインエラーを検出しません。
したがってワードアクセスの場合には, プログラムで指定したアドレス下位2ビットが
"00B" "01B" "10B" "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B"
となり ,
ハーフワードアクセスの場合には "00B" "01B" のときには "00B" に , "10B" "11B" のとき
には "10B" になります。
● 16 ビットバス幅
図 4.4-8 に , 16 ビットバス幅の各アクセスを示します。
図 4.4-8 16 ビットバス幅の各アクセス
(A)ワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
②出力A1/A0=“10”
②出力A1/A0=“10”
②出力A1/A0=“10”
②出力A1/A0=“10”
MSB
LSB
①
00
01
①
00
01
①
00
01
①
00
01
②
10
11
②
10
11
②
10
11
②
10
11
16ビット
(B)
ハーフワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“10”
→①出力A1/A0=“10”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
(C)
バイトアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“10”
→①出力A1/A0=“11”
→①出力A1/A0=“00”
→①出力A1/A0=“01”
①
180
00
01
10
11
①
00
01
10
11
①
00
01
10
11
①
00
01
10
11
第 4 章 外部バスインタフェース
● 8 ビットバス幅
図 4.4-9 に , 8 ビットバス幅の各アクセスを示します。
図 4.4-9 8 ビットバス幅の各アクセス
(A)ワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
②出力A1/A0=“01”
②出力A1/A0=“01”
②出力A1/A0=
“01”
②出力A1/A0=“01”
③出力A1/A0=“10”
③出力A1/A0=“10”
③出力A1/A0=
“10”
③出力A1/A0=“10”
④出力A1/A0=“11”
④出力A1/A0=“11”
④出力A1/A0=
“11”
④出力A1/A0=“11”
MSB
LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8ビット
(B)
ハーフワードアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“10”
→①出力A1/A0=“10”
→①出力A1/A0=“00”
→①出力A1/A0=“00”
②出力A1/A0=“11”
②出力A1/A0=“11”
②出力A1/A0=
“01”
②出力A1/A0=“01”
①
00
①
00
00
00
②
01
②
01
01
01
10
10
①
10
①
10
11
11
②
11
②
11
(C)
バイトアクセス
(c)PA1/PA0=“10”
(d)PA1/PA0=“11”
(a) PA1/PA0=
“00”
(b) PA1/PA0=
“01”
→①出力A1/A0=“10”
→①出力A1/A0=“11”
→①出力A1/A0=“00”
→①出力A1/A0=“01”
①
00
01
00
00
00
01
01
01
10
10
10
10
11
11
①
①
11
①
11
181
第 4 章 外部バスインタフェース
■ 外部との接続例
図 4.4-10 に LSI と外部装置との接続の例を示します。
図 4.4-10 外部装置との接続
本LSI
D31
D23
| WR0 | WR1
D24
D16
*:16ビット/8ビットデバイスの場合は,
本LSIのMSB側のデータバスを使用します。
0
1
0
D15 D08D07 D00
D07 D00
8ビットデバイス*
16ビットデバイス*
(“0”/“1”アドレス下位1ビット)
182
第 4 章 外部バスインタフェース
4.4.3
リトルエンディアンのバスアクセス
FR ファミリは CS0 領域を除いて , チップセレクトごとにビッグエンディアン / リト
ルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビットを "1" に
設定した場合は , その領域はリトルエンディアンとして扱います。
■ リトルエンディアンの概要
FR ファミリのリトルエンディアンバスアクセスは , ビッグエンディアン時のバスアク
セス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番と制御信
号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップすることによ
り実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける必
要がありますので , 十分注意が必要です。
• 出力するアドレスの順番はビッグエンディアン / リトルエンディアンで変わりませ
ん。
• ワードアクセス :
ビッグエンディアンのアドレス A1, A0=00 に対応する MSB 側のバイトデータが , リ
トルエンディアンでは LSB 側のバイトデータになります。
ワードアクセスの場合は , ワード内の 4 バイトすべてのバイト位置が反転します。
• ハーフワードアクセス :
ビッグエンディアンのアドレス A0 に対応する MSB 側のバイトデータが , リトルエ
ンディアンでは LSB 側のバイトデータになります。
ハーフワードアクセスの場合は , ハーフワード内の 2 バイトのバイト位置が反転し
ます。
• バイトアクセス :
ビッグエンディアン / リトルエンディアンとも同じです。
• 16/8 ビットバス幅で使用するデータバス / 制御信号は , ビッグエンディアン / リトル
エンディアン で変わりません。
〔リトルエンディアン領域に対する制限事項〕
• リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に
対するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファ
に読み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換
が行われず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機
構のハードウェア的な制限によるものです。
• リトルエンディアン領域には , 命令コードを配置しないでください。
183
第 4 章 外部バスインタフェース
■ リトルエンディアンのデータフォーマット
図 4.4-11 に , ワードアクセス時 (LD, ST 命令実行時 ) のデータフォーマットによる内部
レジスタと外部データバスとの関係を示します。
図 4.4-11 ワードアクセス時 (LD, ST 命令実行時 )
内部レジスタ 外部バス
D31
D31
AA
DD
D23
D23
BB
CC
D15
D15
CC
BB
D7
D7
DD
AA
D0
D0
図 4.4-12 に , ハーフワードアクセス時 (LDUH, STH 命令実行時 ) のデータフォーマット
による内部レジスタと外部データバスとの関係を示します。
図 4.4-12 ハーフワードアクセス時 (LD, ST 命令実行時 )
a)出力アドレス下位"00B"
b)出力アドレス下位"10B"
内部レジスタ 外部バス
D31
D31
BB
D23
D23
AA
D15
D15
AA
D7
D7
BB
D0
D0
内部レジスタ 外部バス
D31
D31
D23
D23
D15
D15
AA
BB
BB
AA
D7
D7
D0
D0
図 4.4-13 に , バイトアクセス時 (LDUB, STB 命令実行時 ) のデータフォーマットによる
内部レジスタと外部データバスとの関係を示します。
図 4.4-13 バイトアクセス時 (LDUB, STB 命令実行時 )
a)出力アドレス下位"00B"
内部レジスタ 外部バス
D31
D31
AA
D23
D23
b)出力アドレス下位"01B"
c)出力アドレス下位"10B"
d)出力アドレス下位"11B"
内部レジスタ 外部バス
内部レジスタ 外部バス
D31
D31 D31
D31
内部レジスタ 外部バス
D31
D31
D23
D23
D23
D23
D15
D15
D15
D7
D7
D23 D23
AA
D15
D15
D15
D15 D15
AA
D7
D7
D7
AA
D0
184
D7
D7
AA
D0
D0
AA
D0
D0
D7
AA
D0
D0
AA
D0
第 4 章 外部バスインタフェース
■ リトルエンディアンのデータバス幅
図 4.4-14 に , 16 ビットバス幅のデータバス幅を示します。
図 4.4-14 16 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
AA
BB
“00B”
“10B”
D31
DD BB
リード/ライト
D23
CC AA
CC
DD
図 4.4-15 に , 8 ビットバス幅のデータバス幅を示します。
図 4.4-15 8 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
AA
リード/ライト
“00B”“01B”“10B”“11B”
DD
CC
BB
AA
D31
BB
CC
DD
185
第 4 章 外部バスインタフェース
■ 本 LSI とエンディアンの接続
図 4.4-16 に , 本 LSI とエンディアンの接続を示します。
図 4.4-16 本 LSI とエンディアンの接続
● 16 ビットバス幅
本LSI
D31
D23
| WR0 | WR1
D24
D16
0
1
1
0
D15 D08D07 D00
D15 D08D07 D00
ビッグエンディアン領域
リトルエンディアン領域
● 8 ビットバス幅
本LSI
D31
| WR0
D24
D07 D00
ビッグエンディアン領域
186
D07 D00
リトルエンディアン領域
第 4 章 外部バスインタフェース
4.4.4
外部アクセス
エンディアンモードおよびバス幅による , 内部レジスタと外部データバスとの関係
について説明します。
■ ワードアクセス
ワードアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
D31
アドレス:“0”“2”
D31
AA
AA CC
BB
D00
BB DD
内部レジスタ
外部端子
制御端子
WR0
アドレス:“0”“2”
D31
AA
DD BB
WR0
WR1
BB
CC AA
WR1
CC
- -
-
DD
- -
-
D31
D16
- -
-
DD
- -
-
内部レジスタ
D31
D16
制御端子
CC
D00
8 ビット
バス幅
外部端子
リトルエンディアンモード
D00
① ②
① ②
外部端子
制御端子
アドレス:“0”
“1”
“2”
“3”
D31
AA
AA BB CC DD
D24
- - - -
BB
内部レジスタ
外部端子
制御端子
WR0
-
アドレス:“0”
“1”
“2”
“3”
D31
AA
DD CC BB AA
D24
BB
- - - -
CC
- - - -
-
DD
- - - -
-
D31
WR0
CC
- - - -
-
DD
- - - -
-
-
D00
① ②
③ ④
① ②
③ ④
187
第 4 章 外部バスインタフェース
■ ハーフワードアクセス
ハーフワードアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
D31
外部端子
アドレス:“0”
D31
AA
BB
制御端子
リトルエンディアンモード
内部レジスタ
D31
WR0
アドレス:“0”
D31
BB
WR1
AA
-
-
BB
-
-
WR1
AA
-
-
BB
-
-
D00
①
外部端子
制御端子
アドレス:“2”
D31
CC
WR0
DD
WR1
①
内部レジスタ
D31
外部端子
アドレス:“2”
D31
DD
-
-
DD
-
-
WR1
CC
-
-
DD
-
-
D00
D00
①
①
D31
外部端子
AA
BB
D00
内部レジスタ
D31
188
- -
-
AA
- -
-
WR0
D00
BB
D00
制御端子
D00
内部レジスタ
-
① ②
外部端子
- -
-
CC
- -
-
① ②
DD
D00
D00
-
- -
-
WR0
WR0
-
- -
D31
制御端子
- -
アドレス:“2”“3”
D31
DD CC
D24
- -
アドレス:“2”“3”
D31
CC DD
DD
外部端子
-
外部端子
CC
内部レジスタ
D31
① ②
D24
D00
制御端子
アドレス:“0”“1”
D31
BB AA
D24
- -
アドレス:“0”“1”
D31
AA BB
D24
- -
D00
WR0
D16
CC
内部レジスタ
制御端子
CC
D16
8 ビット
バス幅
WR0
D16
D00
D31
制御端子
AA
D16
内部レジスタ
外部端子
制御端子
WR0
-
- -
-
- -
-
① ②
第 4 章 外部バスインタフェース
■ バイトアクセス
バイトアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
D31
外部端子
アドレス:“0”
D31
AA
制御端子
リトルエンディアンモード
内部レジスタ
D31
WR0
外部端子
アドレス:“0”
D31
AA
-
D16
-
-
-
-
D00
AA
-
-
-
-
D00
①
内部レジスタ
D31
外部端子
①
制御端子
アドレス:“1”
D31
内部レジスタ
D31
外部端子
BB
-
WR1
D16
BB
BB
WR1
-
-
-
-
D16
-
-
-
-
D00
外部端子
アドレス:“2”
D31
CC
BB
D00
①
内部レジスタ
制御端子
①
内部レジスタ
D31
WR0
外部端子
アドレス:“2”
D31
CC
-
WR0
D16
-
-
-
-
D00
CC
-
-
-
-
D00
①
内部レジスタ
D31
制御端子
-
D16
CC
制御端子
アドレス:“1”
D31
-
D31
WR0
-
D16
AA
制御端子
外部端子
①
制御端子
アドレス:“3”
D31
内部レジスタ
D31
外部端子
アドレス:“3”
D31
-
DD
-
WR1
D16
DD
制御端子
DD
WR1
-
-
-
-
D16
-
-
-
-
D00
①
DD
D00
①
189
第 4 章 外部バスインタフェース
ビッグエンディアンモード
8 ビット
バス幅
内部レジスタ
外部端子
アドレス:“0”
D31
D31
AA
D24
-
AA
制御端子
リトルエンディアンモード
内部レジスタ
D31
WR0
AA
WR0
-
-
-
-
-
-
-
-
-
-
-
D24
AA
D00
①
内部レジスタ
外部端子
アドレス:“1”
D31
D31
BB
D24
-
BB
①
制御端子
内部レジスタ
外部端子
制御端子
アドレス:“1”
D31
D31
WR0
BB
WR0
-
-
-
-
-
-
-
-
-
-
-
D24
D00
BB
D00
①
内部レジスタ
外部端子
アドレス:“2”
D31
CC
D24
-
CC
①
制御端子
内部レジスタ
外部端子
制御端子
アドレス:“2”
D31
D31
WR0
CC
WR0
-
-
-
-
-
-
-
-
-
-
-
D24
D00
CC
D00
①
内部レジスタ
外部端子
アドレス:“3”
D31
D31
DD
D24
-
DD
①
制御端子
内部レジスタ
外部端子
制御端子
アドレス:“3”
D31
D31
WR0
DD
WR0
-
-
-
-
-
-
-
-
-
-
-
D00
D24
DD
D00
①
190
制御端子
アドレス:“0”
D31
D00
D31
外部端子
①
第 4 章 外部バスインタフェース
4.5
通常バスインタフェース
通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ
クルが基本バスサイクルになります。
■ 基本タイミング ( アクセスが連続する場合 )(TYP3 ∼ TYP0= 0000B, AWR=0008H)
図 4.5-1 に , アクセスが連続する場合の基本タイミングを示します。
図 4.5-1 アクセスが連続する場合の基本タイミング
MCLK
A[23:0]
#2
#1
AS
CSn
RD
リード
D[31:16]
#1
#2
WRn
ライト
D[31:16]
#1
#2
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A23 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス
をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS3 は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , AS と同じ
タイミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS3 がネゲートしま
せん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼
CS3 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ
ゲートします。
• RD, WR0, WR1 は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ
191
第 4 章 外部バスインタフェース
W15-W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0, WR1
をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定することによ
り 1 サイクル遅らせることができます。
• リードアクセスの場合, RDアサート後ウェイトサイクルが終了したサイクルのMCLK
の立上りで D31 ∼ D0 を取り込みます。
• ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D[31:0] にデータ
を出力します。
■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H)
図 4.5-2 に , リード→ライトタイミングを示します。
図 4.5-2 リード→ライトタイミング
リード
アイドル
ライト
MCLK
A[23:0]
AS
CSn
RD
WRn
D[31:16]
• AWR レジスタ W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサイ
クル挿入が可能です。
• リード側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで
ある場合このアイドルサイクルを挿入します。
192
第 4 章 外部バスインタフェース
■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H)
図 4.5-3 に , ライト→ライトタイミングを示します。
図 4.5-3 ライト→ライトタイミング
ライト
ライト
リカバリ
ライト
MCLK
A[23:0]
AS
CSn
WRn
D[31:16]
• AWR レジスタ W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでのライトリカバ
リサイクルを挿入可能です。
• すべてのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルは発生します。
193
第 4 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H)
図 4.5-4 に , 自動ウェイトタイミングを示します。
図 4.5-4 自動ウェイトタイミング
基本サイクル
ウェイトサイクル
MCLK
A[23:0]
AS
CSn
RD
D[31:16]
WRn
D[31:16]
• AWRレジスタW15-12ビット(first wait cycle)の設定により自動ウェイトサイクルを,
0 ∼ 15 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと
なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル +
(first wait cycle) となります。ライトの場合は内部状態によりさらに長くなることが
あります。
194
第 4 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H)
図 4.5-5 に , 外部ウェイトタイミングを示します。
図 4.5-5 外部ウェイトタイミング
基本サイクル
自動ウェイト
2サイクル
RDYによる
ウェイト
サイクル
MCLK
A[23:0]
AS
CSn
RD
D[31:16]
WRn
D[31:16]
RDY
解除
ウェイト
• ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに
より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクル
によるウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動
ウェイトサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。ま
た , いったんウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで ,
RDY 入力端子の値は無効になります。
195
第 4 章 外部バスインタフェース
■ 同期ライトイネーブル出力タイミング (TYP3 ∼ TYP0=0000B, AWR=0000H)
図 4.5-6 に , 同期ライトイネーブル出力タイミングを示します。
図 4.5-6 同期ライトイネーブル出力タイミング
MCLK
#2
#1
A[23:0]
AS
CSn
RD
リード
D[31:16]
#1
#2
WRn
ライト
#1
D[31:16]
#2
• 同期ライトイネーブルとした場合 (AWR:W03 ビットが 1) , 以下のような動作となり
ます。
• WR0, WR1 端子出力は , AS 端子出力がアサートされているタイミングで , 同期ライ
トイネーブル出力をアサートします。外部バスへのライトが行われる場合 , 同期ラ
イトイネーブル出力は "L" を出力します。外部バスからのリードが行われる場合 ,
同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートしたクロックサイクルにて , 外部データ出力
端子よりライトデータを出力します。
• リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に関わ
らず , 非同期リードストローブとして機能します。データの入出力制御にそのまま
用いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
- 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の
追加ウェイト設定はしないでください。
196
第 4 章 外部バスインタフェース
・CS → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください )
・ファーストウェイトサイクル設定 (AWR:W15-W12 ビットは常に "0000" を書い
てください )
- 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の
アクセスタイプ設定 (ACR レジスタ中の TYPE3 ∼ TYPE0 ビット ( ビット 3 ∼
ビット 0)) は設定しないでください。
・マルチプレックスバス設定 (ACR:TYPE2 ビットは常に "0" を書いてください )
・RDY 入力有効設定 (ACR:TYPE0 ビットは常に "0" を書いてください )
- 同期ライトイネーブル出力の場合 , バースト長は常に 1(BST1, BST0 ビットに "0")
を設定してください。
■ CS 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH)
図 4.5-7 に , CS 遅延設定を示します。
図 4.5-7 CS 遅延設定
MCLK
A[23:0]
AS
CSn
RD
リード
D[31:16]
WRn
ライト
D[31:16]
• W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続する
アクセスがある場合ネゲート期間を挿入します。
197
第 4 章 外部バスインタフェース
■ CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH)
図 4.5-8 に , CS → RD/WR セットアップ・RD/WR → CS ホールド設定を示します。
図 4.5-8 CS → RD/WR セットアップ・RD/WR → CS ホールド設定
MCLK
A[23:0]
AS
CSn
CSX->RDX/WRX
遅延
RDX/WRX->CSX
遅延
RD
リード
D[31:16]
WRn
ライト
D[31:16]
• AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ
プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ
レイを設定可能です。
リード / ライトストローブネゲート後 , チップセレクトネゲー
トまでの期間を延長する場合に設定します。
• CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ
イ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ
レイ共に挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
198
第 4 章 外部バスインタフェース
■ DMAフライバイ転送(I/O→メモリ)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=51H)
図 4.5-9 に , DMA フライバイ転送 (I/O →メモリ ) を示します。
• メモリ側のウェイト設定なしの場合
図 4.5-9 DMA フライバイ転送 (I/O →メモリ )
基本サイクル
I/Oウェイト I/Oウェイト I/Oアイドル
サイクル サイクル
サイクル
基本サイクル
I/Oウェイト I/Oボールド
サイクル ウェイト
MCLK
A[23:0]
AS
CSn
WRn
D[31:16]
IORD
• IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR3 レジスタの IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビットの
設定により , 0 ∼ 15 サイクルまでのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20 ビット ) と比較して大きい
ほうの値をウェイトサイクルとして使用します。
199
第 4 章 外部バスインタフェース
■ DMAフライバイ転送(メモリ→I/O)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=51H)
図 4.5-10 に , DMA フライバイ転送 ( メモリ→ I/O) を示します。
• メモリ側のウェイト設定なしの場合
図 4.5-10 DMA フライバイ転送 ( メモリ→ I/O)
基本サイクル
I/Oウェイト I/Oボールド I/Oアイドル
サイクル
ウェイト
サイクル
基本サイクル
I/Oウェイト I/Oボールド
サイクル ウェイト
MCLK
A[23:0]
AS
CSn
RD
D[31:16]
IOWR
• IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR3 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
のライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR3 レジスタの IW03 ∼ IW00, IW13 ∼ IW10, IW13 ∼ IW20 ビットの
設定により , 0 ∼ 15 サイクルまでのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR15 ∼ AWR12 が "0" でないとき ) は ,
I/O ウェイト (IW03 ∼ IW00, IW13 ∼ IW10, IW13 ∼ IW20 ビット ) と比較して大きい
ほうの値をウェイトサイクルとして使用します。
200
第 4 章 外部バスインタフェース
アドレス / データマルチプレックスインタフェース
4.6
アドレス / データマルチプレックスインタフェースの設定について説明します。
■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H)
図 4.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 4.6-1 外部ウェイトがない場合のアドレス / データマルチプレックスインタフェース設定
MCLK
アドレス[23:0]
A[23:0]
AS
CSn
RD
リード
D[31:16]
データ
[15:0]
アドレス[15:0]
WR
ライト
D[31:16]
アドレス[15:0]
データ[15:0]
• ACR レジスタ TYP3 ∼ TYP0=01xxB と設定することによりアドレス / データマルチ
プレックスインタフェース設定が可能です。
• アドレス / データマルチプレックスインタフェースに設定した場合 , データバス幅
(DBW1, DBW0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。
32 ビット幅はサポートしていません。
• アドレス / データマルチプレックスインタフェースでは , アドレス出力サイクル 2 サ
イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
201
第 4 章 外部バスインタフェース
• アドレス出力サイクルでは, 出力アドレスラッチイネーブル信号としてASをアサー
トしますが , CS → RD/WR セットアップ遅延 (AWR1) が "0" に設定してある場合 , 上
図のようにマルチプレックスアドレス出力サイクルが 1 サイクルのみとなり , アド
レスを AS の立上りエッジで直接ラッチすることは不可能となります。このため ,
AS に Low がアサートされているサイクルの MCLK の立上りエッジでアドレスを取
り込んでください。
• A23 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先
頭を示すアドレスを出力しますので , アドレス / データマルチプレックスインタ
フェースで 8/16 ビット以上のアドレスを使用したい場合に使用してください。
• 自動ウェイト (AWR15 ∼ AWR12), リード→ライトアイドルサイクル (AWR7, 6), ラ
イトリカバリ (AWR5, 4), アドレス→ CS 遅延 (AWR2), CS → RD/WR セットアップ遅
延 (AWR1), RD/WR → CS ホールド遅延 (AWR0) の設定は , 通常インタフェースと同
様に設定可能です。
• アドレス / データマルチプレックスインタフェースを設定した領域では , バースト
長を "1"(DBW1, 0]=00B) に設定してください。
202
第 4 章 外部バスインタフェース
■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H)
図 4.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 4.6-2 外部ウェイトがある場合のアドレス / データマルチプレックスインタフェース設定
MCLK
アドレス[23:0]
A[23:0]
AS
CSn
RD
リード
D[31:16]
データ
[15:0]
アドレス[15:0]
WR
ライト
D[31:16]
データ[15:0]
アドレス[15:0]
外部ウェイト
解除
RDY
• ACR レジスタ TYP3 ∼ TYP0=01x1B と設定することにより , アドレス / データマル
チプレックスインタフェースにおいて RDY 入力を有効とすることが可能です。
203
第 4 章 外部バスインタフェース
■ CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH)
図 4.6-3 に , CS → RD/WR セットアップ設定を示します。
図 4.6-3 CS → RD/WR セットアップ設定
MCLK
アドレス[23:0]
A[23:0]
AS
CSn
RD
リード
D[31:16]
アドレス[15:0]
データ
[15:0]
WR
ライト
D[31:16]
アドレス[15:0]
データ[15:0]
• CS → RD/WR セットアップ遅延 (AWR1) を "1" に設定すると , 上図のようにマルチ
プレックスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上り
エッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を ALE
(Address Latch Enable) ストローブとして使用したい場合にこの設定を使用してくだ
さい。
204
第 4 章 外部バスインタフェース
4.7
プリフェッチ動作
外部バスインタフェースコントローラは 8 ビット× 16 本で構成されるプリフェッチ
バッファを内蔵しています。
TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセッ
ト ("1") してある領域に対するリードアクセスが発生すると , それ以降続くアドレス
に対してプリフェッチを行い , プリフェッチバッファ内に蓄積します。
蓄積されたアドレスに対し内部バスからのアクセスがあると , 外部アクセスを行わ
ずにプリフェッチバッファに先読みされたデータを返します。これにより , 外部バ
ス領域への連続したアクセスでの待ち時間を少なくすることができます。
■ プリフェッチによる外部アクセスを開始する基本条件
プリフェッチによる外部バスアクセスは , 以下の条件が揃っている場合に発生します。
• TCR レジスタの PSUS ビットが "0" であること。
• スリープまたはストップモードでないこと。
• プリフェッチ許可されたチップセレクト領域への外部バスリードアクセスが行わ
れたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による
リードアクセスを除きます。
• プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな
い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生
していないこと。
• 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて
空であること。
• これらの条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッ
チアクセス後に , プリフェッチを許可していない領域への外部バス領域アクセスが
発生した後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッ
チ許可領域へのプリフェッチアクセスは引き続き行われます。
複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス
を行っている場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ
許可領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ
フェッチ禁止領域へのアクセスはプリフェッチバッファの状態には一切影響を及ぼさ
ないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチと
が混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。
205
第 4 章 外部バスインタフェース
■ プリフェッチアクセスの一時停止と任意クリア
TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。
PSUS ビットに "0" を設定すると再開します。このときミス発生 , PCLR ビットのセッ
トなどのバッファクリアが発生しなければ , バッファ内容は保持されます。
TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファをすべてク
リアします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断して
いるときに行ってください。
アドレス上位 16 ビットが変化する境界=チップセレクト領域の最小単位 (64K バイト
ごと ) では , プリフェッチはいったん停止します。境界を超えた場合 , いったんバッ
ファリードミスが発生し , 引き続き新しい領域でプリフェッチを開始します。
■ 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 バイトしか取り込みません ) 。
〔例〕
• バス幅 16 ビット , バースト長 2 を設定した領域 :
1 回のプリフェッチでバッファに読み込まれるデータ量は , 4 バイト分となります。
この場合 , プリフェッチバッファに 4 バイト分の空きができるまでプリフェッチア
クセスは行われません。
• バス幅 8 ビット , バースト長 8 を設定した領域 :
1 回のプリフェッチでバッファに読み込まれるデータ量は , 8 バイト分となります。
この場合 , プリフェッチバッファに 8 バイト分の空きができるまでプリフェッチア
クセスは行われません。
206
第 4 章 外部バスインタフェース
■ バースト長設定とプリフェッチ効率
「■ 1 回のプリフェッチアクセス動作の単位」で説明した 1 回のプリフェッチアクセス
が行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ
フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア
クセスが終了するまでは , それらアクセス要求は待たされます。
そのため , バースト長をあまり大きく設定しますと , プリフェッチ以外のバスアクセス
の効率や反応が低下します。反面 , バースト長を "1" に設定しますと , バースト / ペー
ジアクセスメモリを接続している場合でも常にシングルアクセスを行うため , 読込み
サイクルの無駄が多く発生します。
また , 1 回のプリフェッチアクセスで読み込まれるデータが多い設定ですと , それだけ
プリフェッチバッファの空きができないとプリフェッチアクセスが開始できないため,
プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイドル状態になり易
くなります。例えば , バス幅が 16 ビット・バースト長 8 を設定した場合 , 1 回のプリ
フェッチでバッファに読み込まれるデータ量は, 16バイト分となるため, プリフェッチ
バッファがすべて空にならないと , 新たなプリフェッチアクセスができなくなります。
これらのことを念頭に置いた上で , 使用状況・環境に応じて最適なバースト長設定を調
整してください。一般に , バースト / ページアクセスのできない非同期メモリを接続す
る場合は , バースト長は 1 ( シングルアクセス ) を設定するのが最適です。逆に , SDRAM
などのバースト / ページアクセスサイクルの短いメモリを接続する場合は , バースト長
は 1 ( シングルアクセス ) 以外を設定するのが最適です。こちらの場合は , バス幅に応
じて 1 回で 8 バイト ( バッファの半分 ) を読み込む設定をするのが最適ですが , 外部ア
クセスの頻度や外部アクセスクロックの分周比設定などによっても条件は変わってき
ます。
■ プリフェッチバッファからの読込み
プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ
スが一致したものがあれば読み出され , 外部へのアクセスを行いません。バッファの読
込みは順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16 バイト ) で
すので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになっ
ています。
内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 ,
プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対しウェ
イトを返します。この場合 , バッファミス扱いにはなりません。
DMA 転送でのリードにて , プリフェッチバッファ内のアドレスが一致した場合は , プ
リフェッチバッファ内のデータは使用されず , 外部バスから新たに読込みを行います。
この場合 , バッファミス扱いになりますが , 引き続きプリフェッチを継続はせずに , プ
リフェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアクセ
スを行いません。
207
第 4 章 外部バスインタフェース
■ プリフェッチバッファのクリア , 更新
プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ
ます。
• TCR レジスタの PCLR ビットに "1" が書き込まれたとき。
• バッファリードミス ( 後述 ) が発生したとき。
• バッファライトヒット ( 後述 ) が発生したとき。
プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。
• バッファリードヒットが発生したとき。
この場合 , ヒットしたアドレス以前のバッファのみクリアされます。
バッファリードミスとは , 以下のものを示します。
• プリフェッチ許可領域へのリードアクセスで , バッファ内のアドレスに一致するも
のがない場合。
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんが , 続くアドレスからプリフェッチアクセスを開
始し , バッファにストアしていきます。
• プリフェッチ許可領域へのリードアクセスで , リードモディファイライト系命令に
よるリードである場合。
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません
( 次にそのアドレスに対しライトが行われるため ) 。
• プリフェッチ許可領域へのリードアクセスで , DMA 転送によるリードである場合。
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません。
バッファライトヒットとは , 以下のものを示します。
• プリフェッチ許可領域へのライトアクセスで , バッファ内のアドレスに 1 バイトで
も一致するものがあった場合。
この場合 , 外部バスに対し新たにアクセスを行いますが , プリフェッチアクセスは ,
新たなリードアクセスが発生するまでは行われません。
■ プリフェッチ許可領域に対する制限事項
リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対
するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファに読
み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ
れず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構のハード
ウェア的な制限によるものです。
208
第 4 章 外部バスインタフェース
4.8
DMA アクセス
DMA アクセスの設定について説明します。
■ DMAフライバイ転送(I/O→メモリ)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=41H)
図 4.8-1 に , DMA フライバイ転送 (I/O →メモリ ) の設定を示します。
• メモリ側のウェイト設定なしの場合
図 4.8-1 DMA フライバイ転送 (I/O →メモリ ) の設定
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト *2
MCLK
A[23:0]
メモリアドレス
AS
CSn
WRn
D[31:16]
FR30
互換モード
DACKn
EOPn
DACKn
基本モード
EOPn
IORD
DREQn
ディマンドモード時の
センスタイミング
• AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ
プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ
レイを設定可能です。
リード / ライトストローブネゲート後 , チップセレクトネゲー
トまでの期間を延長する場合に設定します。
209
第 4 章 外部バスインタフェース
• CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ
イ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ
レイ共に挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ
クルにより延長された , 3 バスサイクル分のリードストローブが発生しています。
受け取り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイ
クル分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライ
トストローブには影響を与えません。
ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイクル終了まで保持
されます。
■ DMAフライバイ転送(メモリ→I/O)(TYP3∼TYP0=0000B, AWR=0008H, IOWR=41H)
図 4.8-2 に , DMA フライバイ転送 ( メモリ→ I/O) の設定を示します。
• メモリ側のウェイト設定なしの場合
図 4.8-2 DMA フライバイ転送 ( メモリ→ I/O) の設定
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト *2
MCLK
A[23:0]
メモリアドレス
AS
CSn
RD
D[31:16]
DACKn
FR30
互換モード
EOPn
DACKn
基本モード
EOPn
IOWR
DREQn
210
ディマンドモード時の
センスタイミング
第 4 章 外部バスインタフェース
• IOWR0 ∼ IOWR3 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR3 レジスタの WR1, WR0 ビットの設定により , 0 ∼ 3 サイクルまで
のライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR3 レジスタの IW3 ∼ IW0 ビットの設定により , 0 ∼ 15 サイクルま
でのウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR0H ∼AWR7Hレジスタの W15∼ W12
ビットが "0" でないとき ) は , I/O ウェイト (IW3 ∼ IW0 ビット ) と比較して大きい
ほうの値をウェイトサイクルとして使用します。
データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサ
イクルにより延長された , 3 バスサイクル分のリードストローブが発生しています。
受け取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル
分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトス
トローブには影響を与えません。
ただし , アドレスと CS 信号は , フライバイによるバスアクセスサイクル終了まで保持
されます。
フライバイ転送を行う場合は , 必ず同じデータバス幅間で行ってください。
211
第 4 章 外部バスインタフェース
■ 2サイクル転送(内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング
は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.8-3 に , 2 サイクル転送の設定を示します。
● I/O 側のウェイト設定なしの場合
図 4.8-3 2 サイクル転送の設定
MCLK
A[23:0]
I/O アドレス
AS
CSnX(I/O側)
WRn
D[31:16]
DACKn
FR30
互換モード
EOPn
DACKn
基本モード
EOPn
DREQn
ディマンドモード時の
センスタイミング
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• DACKn/EOPn は , 内部 RAM アクセスのサイクルでは出力されません。
212
第 4 章 外部バスインタフェース
■ 2 サイクル転送 ( 外部→ I/O)(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.8-4 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。
● メモリ , I/O のウェイト設定なしの場合
図 4.8-4 2 サイクル転送 ( 外部→ I/O) の設定
MCLK
メモリアドレス
A[23:0]
アイドル
I/O アドレス
AS
CSn
RD
CSn
WRn
D[31:16]
FR30
互換モード
DACKn
EOPn
DACKn
基本モード
EOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/EOPn は転送元バスアクセス , 転送先バスアクセスの両方で
出力されます。
213
第 4 章 外部バスインタフェース
■ 2 サイクル転送 (I/O →外部 )(TYP3 ∼ TYP0=0000B, AWR=0008H, IOWR=00H)
図 4.8-5 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。
● メモリ , I/O のウェイト設定なしの場合
図 4.8-5 2 サイクル転送 (I/O →外部 ) の設定
MCLK
A[23:0]
I/O アドレス
アイドル
メモリアドレス
AS
CSn
WRn
CSn
RD
D[31:16]
FR30
互換モード
DACKn
EOPn
DACKn
基本モード
EOPn
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKn/EOPn は転送元バスアクセス , 転送先バスアクセスの両方で
出力されます。
214
第 4 章 外部バスインタフェース
4.9
バスアービトレーション
バスアービトレーションを行うための設定について説明します。
■ バス権開放
図 4.9-1 に , バス権開放時の設定を示します。
図 4.9-1 バス権開放時の設定
MCLK
A23~A00
AS
CSn
RD
リード
D31~D16
BRQ
BGRNT
1サイクル
215
第 4 章 外部バスインタフェース
■ バス権獲得
図 4.9-2 に , バス権獲得時の設定を示します。
図 4.9-2 バス権獲得時の設定
MCLK
A23~A00
AS
CSn
WR
D31~D16
BRQ
BGRNT
1サイクル
• TRC レジスタ BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバス
アービトレーションを行うことができます。
• バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を
アサートします。
• バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに
します。
• CSn は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ
ンピーダンスにします。
• CSER レジスタで許可している領域がすべて共有許可 (ACR レジスタ SREN ビット
が "1") の場合 , AS, BAA, RD, WR, WR0 ∼ WR1 をハイインピーダンスにします。
216
第 4 章 外部バスインタフェース
4.10
レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則にしたがってください。
■ 外部バスインタフェースの設定手順
1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の
アクセスは保証されません。
2) レジスタの変更は以下の手順で行ってください。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② ASR と ACR をワードアクセスで同時に設定してください。
ASR, ACR をハーフワードでアクセスする場合には , ASR 設定後 , ACR を設定
してください。
③ AWR を設定してください。
④ 該当領域に対する CSER のビットを設定してください。
3) CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記②∼③の設定を行ってください。そのあと , クロック
を高速クロックに切り換えてください。
4) プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ
さい。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② TCR レジスタ PSUS ビットおよび PCLR ビットを共に "1" に設定してください。
③ ASR と ACR をワードアクセスにて同時に設定してください。
④ AWR を設定してください。
⑤ TCR レジスタ PSUS ビットおよび PCLR ビットに "0" を設定してください。
⑥ 該当領域に対応する CSER のビットを "1" に設定してください。
217
第 4 章 外部バスインタフェース
218
第5章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 ,
および機能について説明します。
5.1 I/O ポートの概要
5.2 I/O ポートのレジスタ
219
第 5 章 I/O ポート
5.1
I/O ポートの概要
I/O ポートの概要について説明します。
■ ポート基本ブロックダイヤグラム
本LSIは, 各端子に対応する外部バスインタフェースやペリフェラルが入出力として端
子を使用しない設定になっているとき , I/O ポートとして使用することができます。
図 5.1-1 に , ポートの基本的な構成を示します。
図 5.1-1 ポート基本ブロックダイヤグラム
ペリフェラル入力
ポートバス
プルアップ抵抗
( 約 50kΩ )
0
1
ペリフェラル出力 PDRリード 1
PDR
Pin
0
PFR
DDR
PCR
PCR=0:プルアップ抵抗なし
PCR=1:プルアップ抵抗あり
DDR:ポ-ト方向レジスタ
PDR:ポートデータレジスタ
PFR:ポート機能レジスタ
PCR:プルアップ抵抗制御レジスタ
■ プルアップ抵抗付き入出力ポート
プルアップ付き I/O ポートは , 以下のもので構成されています。
• PDR( ポートデータレジスタ /Port Data Register)
• DDR( ポート方向レジスタ /Data Direction Register)
• PFR( ポート機能レジスタ /Port Function Register)
• PCR( プルアップ抵抗制御レジスタ /Pull-up Control Register)
● ポート入力モード時 (PFR="0" & DDR="0")
PDR リード : 対応する外部端子のレベルが読み出されます。
PDR ライト : PDR に設定値が書き込まれます。
● ポート出力モード時 (PFR="0" & DDR="1")
PDR リード : PDR の値が読み出されます。
PDR ライト : PDR の値が対応する外部端子に出力されます。
220
第 5 章 I/O ポート
● ペリフェラル出力モード時 (PFR="1" & DDR="x")
PDR リード : 対応するペリフェラル出力の値が読み出されます。
PDR ライト : PDR に設定値が書き込まれます。
<注意事項>
• ポートへのアクセスは , バイトアクセスで行ってください。
ポート 0 ∼ポート A ( ポート 9 のビット 3 を除く ) を外部バス端子として使用している
場合は , 外バス機能が優先されます。このため , 外部バス端子として動作させていると
きに DDR レジスタを書き換えても入出力の切換えは , 起こりません。DDR レジスタ
の値が有効になるのは , PFR レジスタを切り換えて汎用端子としたときです。
• ストップモード時 (HIZ=0) には , プルアップ抵抗制御レジスタの設定が優先されます。
• ストップモード時 (HIZ=1) には , プルアップ抵抗制御レジスタの設定は無効となりま
す。
• 当該端子を外バス端子として使用する場合は , プルアップ抵抗は使用禁止です。Pull Up
Control Register(PCR) の当該ビットに "1" を書き込まないようにしてください。
• シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, C の外部バス機能は使
用できません。これらのレジスタの書換えはしないでください。また , シングルチップ
モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0)
に関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。
221
第 5 章 I/O ポート
5.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ ポートデータレジスタ (PDR)
ポートデータレジスタ (PDR) の構成は , 以下のとおりです。
PDR2
アドレス:00000002 H
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
XXXXXXXX B
アクセス
R/W
PDR3
アドレス:00000003
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
XXXXXXXX B
アクセス
R/W
PDR4
アドレス:00000004 H
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
XXXXXXXX B
アクセス
R/W
PDR5
アドレス:00000005 H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
XXXXXXXX B
アクセス
R/W
PDR6
アドレス:00000006 H
7
*P67
6
*P66
5
*P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
XXXXXXXX B
アクセス
R/W
PDR8
アドレス:00000008 H
7
-
6
-
5
P85
4
P84
3
P83
2
P82
1
P81
0
P80
初期値
--XXXXXX B
アクセス
R/W
PDR9
アドレス:00000009 H
7
-
6
-
5
-
4
P94
3
P93
2
*P92
1
P91
0
P90
初期値
---XXXXX B
アクセス
R/W
PDRA
アドレス:0000000A H
7
-
6
-
5
-
4
-
3
PA3
2
PA2
0
PA0
初期値
----XXXX B
アクセス
R/W
* PDRB
アドレス:0000000B H
7
*PB7
6
*PB6
5
*PB5
4
*PB4
3
*PB3
2
*PB2
1
PA1
1
*PB1
0
*PB0
初期値
XXXXXXXX B
アクセス
R/W
* PDRC
アドレス:0000000C H
7
-
6
-
5
-
4
-
3
-
2
*PC2
1
*PC1
0
*PC0
初期値
-----XXX B
アクセス
R/W
* PDRG
アドレス:00000010 H
7
-
6
-
5
*PG5
4
*PG4
3
*PG3
2
*PG2
1
*PG1
0
*PG0
初期値
--XXXXXX B
アクセス
R/W
PDRH
アドレス:00000011 H
7
-
6
-
5
PH5
4
PH4
3
PH3
2
PH2
1
PH1
0
PH0
初期値
--XXXXXX B
アクセス
R/W
PDRI
アドレス:00000012 H
7
-
6
-
5
PI5
4
PI4
3
PI3
2
PI2
1
PI1
0
PI0
初期値
--XXXXXX B
アクセス
R/W
* PDRJ
アドレス:00000013 H
7
*PJ7
6
*PJ6
5
*PJ5
4
*PJ4
3
*PJ3
2
*PJ2
1
*PJ1
0
*PJ0
初期値
XXXXXXXX B
アクセス
R/W
PDRK
アドレス:00000014 H
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値
XXXXXXXX B
アクセス
R/W
PDRL
アドレス:00000015 H
7
-
6
-
5
-
4
-
3
-
2
-
1
PL1
0
PL0
初期値
------XX B
アクセス
R/W
PDRM
アドレス:00000016 H
7
-
6
-
5
PM5
4
PM4
3
PM3
2
PM2
1
PM1
0
PM0
初期値
--XXXXXX B
アクセス
R/W
PDRN
アドレス:00000017 H
7
-
6
-
5
*PN5
4
PN4
3
*PN3
2
PN2
1
*PN1
0
PN0
初期値
--XXXXXX B
アクセス
R/W
PDRO
アドレス:00000018 H
7
*PO7
6
*PO6
5
*PO5
4
*PO4
3
*PO3
2
PO2
1
*PO1
0
PO0
初期値
XXXXXXXX B
アクセス
R/W
* PDRP
アドレス:00000019 H
7
-
6
-
5
-
4
-
3
*PP3
2
*PP2
1
*PP1
0
*PP0
初期値
XXXXXXXX B
アクセス
R/W
PDR0 ∼ PDRP は , I/O ポートの入出力データレジスタです。対応する DDR2 ∼ DDRP,
PFR6 ∼ PFRP で , 入出力制御が行われます。
P20 ∼ P27, P30 ∼ P37, P40 ∼ P47, P50 ∼ P57, P91, PJ0 ∼ PJ7, PK0 ∼ PK7, PG0, PG3,
PH0, PH3, PI0, PI3, PM1, PM3 に対する PFR (Port Function Register) はありません。
*: MB91F353A/351A/352A/353A は , PDRB, PDRC, PDRG, PDRJ, PDRP の PDR がありま
せん。また , P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7 のビッ
ト値は無効です。
222
第 5 章 I/O ポート
■ ポート方向レジスタ (DDR)
ポート方向 (DDR) レジスタの構成は , 以下のとおりです。
DDR2
アドレス:00000602 H
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
00000000 B
アクセス
R/W
DDR3
アドレス:00000603 H
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
00000000 B
アクセス
R/W
DDR4
アドレス:00000604 H
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
00000000 B
アクセス
R/W
DDR5
アドレス:00000605 H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
00000000 B
アクセス
R/W
DDR6
アドレス:00000606 H
7
*P67
6
*P66
5
*P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
00000000 B
アクセス
R/W
DDR8
アドレス:00000608 H
7
-
6
-
5
P85
4
P84
3
P83
2
P82
1
P81
0
P80
初期値
--000000 B
アクセス
R/W
DDR9
アドレス:00000609 H
7
-
6
-
5
-
4
P94
3
P93
2
*P92
1
P91
0
P90
初期値
---00000 B
アクセス
R/W
DDRA
アドレス:0000060A H
7
-
6
-
5
-
4
-
3
PA3
2
PA2
1
PA1
0
PA0
初期値
----0000 B
アクセス
R/W
* DDRB
アドレス:0000060B H
7
*PB7
6
*PB6
5
*PB5
4
*PB4
3
*PB3
2
*PB2
1
*PB1
0
*PB0
初期値
00000000 B
アクセス
R/W
* DDRC
アドレス:0000060C H
7
-
6
-
5
-
4
-
3
-
2
*PC2
1
*PC1
0
*PC0
初期値
-----000 B
アクセス
R/W
* DDRG
アドレス:00000400 H
7
-
6
-
5
*PG5
4
*PG4
3
*PG3
2
*PG2
1
*PG1
0
*PG0
初期値
--000000 B
アクセス
R/W
DDRH
アドレス:00000401 H
7
-
6
-
5
PH5
4
PH4
3
PH3
2
PH2
1
PH1
0
PH0
初期値
--000000 B
アクセス
R/W
DDRI
アドレス:00000402 H
7
-
6
-
5
PI5
4
PI4
3
PI3
2
PI2
1
PI1
0
PI0
初期値
--000000 B
アクセス
R/W
* DDRJ
アドレス:00000403 H
7
*PJ7
6
*PJ6
5
*PJ5
4
*PJ4
3
*PJ3
2
*PJ2
1
*PJ1
0
*PJ0
初期値
00000000 B
アクセス
R/W
DDRK
アドレス:00000404 H
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値
00000000 B
アクセス
R/W
DDRL
アドレス:00000405 H
7
-
6
-
5
-
4
-
3
-
2
-
1
PL1
0
PL0
初期値
------00 B
アクセス
R/W
DDRM
アドレス:00000406 H
7
-
6
-
5
PM5
4
PM4
3
PM3
2
PM2
1
PM1
0
PM0
初期値
--000000 B
アクセス
R/W
DDRN
アドレス:00000407 H
7
-
6
-
5
*PN5
4
PN4
3
*PN3
2
PN2
1
*PN1
0
PN0
初期値
--000000 B
アクセス
R/W
DDRO
アドレス:00000408 H
7
*PO7
6
*PO6
5
*PO5
4
*PO4
3
*PO3
2
PO2
1
*PO1
0
PO0
初期値
00000000 B
アクセス
R/W
* DDRP
アドレス:00000409 H
7
-
6
-
5
-
4
-
3
*PP3
2
*PP2
1
*PP1
0
*PP0
初期値
----0000 B
アクセス
R/W
DDR0 ∼ DDRP は , 対応する I/O ポートの入出力方向をビット単位で制御します。
• PFR=0 のとき
DDR=0: ポート入力
DDR=1: ポート出力
• PFR=1 のとき
DDR=0: ペリフェラル入力
DDR=1: ペリフェラル出力
*: MB91F353A/351A/352A/353A は , DDRB, DDRC, DDRG, DDRJ, DDRP の DDR が
ありません。また , P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7
のビット値は無効です。
223
第 5 章 I/O ポート
■ プルアップ抵抗レジスタ (PCR)
プルアップ抵抗レジスタ (PCR) の構成は , 以下のとおりです。
PCR2
アドレス:00000622 H
7
P27
6
P26
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値
00000000 B
アクセス
R/W
PCR3
アドレス:00000623 H
7
P37
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値
00000000 B
アクセス
R/W
PCR4
アドレス:00000624 H
7
P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値
00000000 B
アクセス
R/W
PCR5
アドレス:00000625 H
7
P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値
00000000 B
アクセス
R/W
PCR6
アドレス:00000626 H
7
*P67
6
*P66
5
*P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値
00000000 B
アクセス
R/W
PCR8
アドレス:00000628 H
7
-
6
-
5
P85
4
P84
3
P83
2
P82
1
P81
0
P80
初期値
--000000 B
アクセス
R/W
PCR9
アドレス:00000629 H
7
-
6
-
5
-
4
P94
3
P93
2
*P92
1
P91
0
P90
初期値
---00000 B
アクセス
R/W
PCRA
アドレス:0000062A H
7
-
6
-
5
-
4
-
3
PA3
2
PA2
1
PA1
0
PA0
初期値
----0000 B
アクセス
R/W
* PCRB
アドレス:0000062B H
7
*PB7
6
*PB6
5
*PB5
4
*PB4
3
*PB3
2
*PB2
1
*PB1
0
*PB0
初期値
00000000 B
アクセス
R/W
* PCRC
アドレス:0000062C H
7
-
6
-
5
-
4
-
3
-
2
*PC2
1
*PC1
0
*PC0
初期値
-----000 B
アクセス
R/W
* PCRG
アドレス:00000420 H
7
-
6
-
5
*PG5
4
*PG4
3
*PG3
2
*PG2
1
*PG1
0
*PG0
初期値
--000000 B
アクセス
R/W
PCRH
アドレス:00000421 H
7
-
6
-
5
PH5
4
PH4
3
PH3
2
PH2
1
PH1
0
PH0
初期値
--000000 B
アクセス
R/W
PCRI
アドレス:00000422 H
7
-
6
-
5
PI5
4
PI4
3
PI3
2
PI2
1
PI1
0
PI0
初期値
--000000 B
アクセス
R/W
PCRM
アドレス:00000426 H
7
-
6
-
5
PM5
4
PM4
3
PM3
2
PM2
1
PM1
0
PM0
初期値
--000000 B
アクセス
R/W
PCRN
アドレス:00000427 H
7
-
6
-
5
*PN5
4
PN4
3
*PN3
2
PN2
1
*PN1
0
PN0
初期値
--000000 B
アアクセス
R/W
PCRO
アドレス:00000428 H
7
*PO7
6
*PO6
5
*PO5
4
*PO4
3
*PO3
2
PO2
1
*PO1
0
PO0
初期値
00000000 B
アクセス
R/W
* PCRP
アドレス:00000429 H
7
-
6
-
5
-
4
-
3
*PP3
2
*PP2
1
*PP1
0
*PP0
初期値
----0000 B
アクセス
R/W
PCR2 ∼ PCRP は , 対応する I/O ポートのプルアップ抵抗制御を行います。
• PCR=0: プルアップ抵抗なし
• PCR=1: プルアップ抵抗あり
PJ0 ∼ PJ7, PK0 ∼ PK7, PL0 ∼ PL1 は , プルアップ抵抗はありません。
*: MB91F353A/351A/352A/353A は , PCRB, PCRC, PCRG, PCRP の PCR がありません。
また, P65, P66, P67, P92, PN1, PN3, PN5, PO1, PO3, PO4, PO5, PO6, PO7のビット値は
無効です。
224
第 5 章 I/O ポート
■ ポート機能レジスタ (PFR)
ポート機能レジスタ (PFR) の構成は , 以下のとおりです。
PFR6
アドレス:00000616 H
7
*A23E
6
*A22E
5
*A21E
4
A20E
3
A19E
2
A18E
1
A17E
0
A16E
初期値
アクセス
11111111 B R/W
PFR8
アドレス:00000618 H
7
-
6
-
5
WR1XE
4
-
3
-
2
BRQE
1
-
0
-
初期値
アクセス
--1--0-- B R/W
PFR9
アドレス:00000619 H
7
-
6
-
5
-
4
ASXE
3
*1
2
*MCKE
1
-
0
SYSE
初期値
アクセス
---010-1 B R/W
PFRA
アドレス:0000061A H
7
-
6
-
5
-
4
-
3
CS3XE
2
CS2XE
1
CS1XE
0
CS0XE
初期値
アクセス
----1111 B R/W
* PFRB1
アドレス:0000061B H
7
*DES1
6
*AK12
5
*AK11
4
*AK10
3
*DES0
2
*AK02
1
*AK01
0
*AK00
初期値
アクセス
00000000 B R/W
* PFRB2
アドレス:0000061C H
7
*DRDE
6
*DWRE
5
-
4
-
3
-
2
-
1
*AKH1
0
*AKH0
初期値
アクセス
00----00 B R/W
* PFRC
アドレス:0000061D H
7
-
6
-
5
-
4
*AKH2
3
*DES2
2
*AK22
1
*AK21
0
*AK20
初期値
アクセス
---00000 B R/W
* PFRG
アドレス:00000410 H
7
-
6
-
5
*SCE5
4
*SOE5
3
-
2
*SCE4
1
*SOE4
0
-
初期値
アクセス
--00-00- B R/W
PFRH
アドレス:00000411 H
7
-
6
-
5
SCE3
4
SOE3
3
-
2
SCE2
1
SOE2
0
-
初期値
アクセス
--00-00- B R/W
PFRI
アドレス:00000412 H
7
-
6
-
5
SCE1
4
SOE1
3
-
2
SCE0
1
SOE0
0
-
初期値
アクセス
--00-00- B R/W
PFRL
アドレス:00000415 H
7
-
6
-
5
-
4
-
3
-
2
-
1
TEST
0
I2CE
初期値
アクセス
------00 B R/W
PFRM
アドレス:00000416 H
7
-
6
-
5
SCE7
4
SOE7
3
-
2
SCE6
1
SOE6
0
-
初期値
アクセス
--00-00- B R/W
PFRN
アドレス:00000417 H
7
-
6
-
5
*PGE5
4
PGE4
3
*PGE3
2
PGE2
1
*PGE1
0
PGE0
初期値
アクセス
--000000 B R/W
PFRO
アドレス:00000418 H
7
*OTE7
6
*OTE6
5
*OTE5
4
*OTE4
3
*OTE3
2
OTE2
1
*OTE1
0
OTE0
初期値
アクセス
00000000 B R/W
* PFRP
アドレス:00000419 H
7
-
6
-
5
-
4
-
3
*TOE3
2
*TOE2
1
*TOE1
0
*TOE0
初期値
アクセス
----0000 B R/W
PFR6 ∼ PFRO は , 対応する外部バスインタフェースやペリフェラルの出力をビット単
位で制御します。
PFR の空きビットには , 必ず 0 を設定してください ( ただし , *1 のビットは必ず "1" を
書いてください ) 。
シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, Cの外部バス機能は使用
できません。これらのレジスタの書換えはしないでください。また , シングルチップ
モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0) に
関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。
*: MB91F353A/351A/352A/353A は , PFRB1, PFRB2, PFRC, PFRG, PFRP の PFR があり
ま せ ん。ま た , A23E, A22E, A21E, MCKE, PGE1, PGE3, PGE5, OTE1, OTE3, OTE4,
OTE5, OTE6, OTE7 のビット値は無効です。
225
第 5 章 I/O ポート
■ PFR レジスタの初期値と機能
表 5.2-1 に , 各 PFR レジスタについてその初期値と機能をまとめます。
シングルチップモードでのご使用時には PFR6, 8, 9, A, B1, B2, Cの外部バス機能は使用
できません。これらのレジスタの書換えはしないでください。また , シングルチップ
モード時には PFR6, 8, 9, A の初期値 "1" の機能 (A23-A16, WR1, SYSCLK, CS3-CS0) に
関しては外バス機能出力とはなりません ( 汎用ポートとしてのご使用となります )。
表 5.2-1 PFR レジスタの初期値と機能 (1 / 4)
レジスタ名称
PFR6(A16E ∼ A23E)
[P60/A16 ∼ P67/A23]
ビット名称
A16E
A17E
P65/A21E, P66/A22E,
P67/A23E *
A18E
A19E
A20E
A21E*
ビット
0
1
0
1
0
1
0
1
0
1
0
1
A22E*
0
1
A23E*
0
PFR8(BRQE)
[P81/IN1/BGRNT,
P82/IN2/BRQ]
PFR8(WR1XE)
[P85/IN3/WR1]
BRQE
0
PFR9(SYSE)
[P90/SYSCLK]
SYSE
PFR9(MCKE)
[P92/MCLK] *
MCKE*
PFR9(ASXE)
[P94/AS]
ASXE
PFRA(CS0XE ∼ CS3XE)
[PA0/CS0 ∼ PA3/CS3]
CS0XE
CS1XE
CS2XE
CS3XE
226
汎用ポート
アドレス出力 ( 初期値 )
汎用ポート *
アドレス出力 ( 初期値 )
汎用ポート *
アドレス出力 ( 初期値 )
汎用ポート *
アドレス出力 ( 初期値 )
汎用ポート *
アドレス出力 ( 初期値 )
汎用ポート *
アドレス出力 ( 初期値 ) *
汎用ポート *
アドレス出力 ( 初期値 ) *
1
汎用ポート *
アドレス出力 ( 初期値 ) *
汎用ポート ( 初期値 )
BRQ, BGRNT
0
1
0
1
汎用ポート
WR1/ULB 出力 ( 初期値 )
汎用ポート
SYSCLK 出力使用時 "1" を設定してください ( 初期値 ) 。
0
汎用ポート ( 初期値 ) *
1
メモリクロック出力使用時 "1" を設定してください *。
汎用ポート ( 初期値 )
アドレスストローブ出力使用時に設定してください。
汎用ポート
CS0 出力 ( 初期値 )
汎用ポート
CS1 出力 ( 初期値 )
汎用ポート
CS2 出力 ( 初期値 )
汎用ポート
CS3 出力 ( 初期値 )
1
WR1XE
機 能
*
0
1
0
1
0
1
0
1
0
1
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (2 / 4)
レジスタ名称
ビット名称
ビット
PFRB1(AK02, AK01,
AK00)
[PB1/DACK0] *
AK02, AK01,
AK00 *
0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
PFRB1(DES0), DDRB(PB2) DES0, PB2 *
[PB2/DSTP0/DEOP0] *
PFRB1(AK12, AK11,
AK10)
[PB4/DACK1] *
AK12, AK11,
AK10 *
1,1,1
0,0
0,1
1,0
1,1
0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
PFRB1(DES1), DDRB(PB5) DES1, PB5 *
[PB5/DSTP1/DEOP1] *
PFRB2(DWRE)
[PB6/IOWR] *
PFRB2(DRDE)
[PB7/IORD] *
PFRB2(AKH0)
[PB1/DACK0] *
PFRB2(AKH1)
[PB4/DACK1] *
DWRE *
DRDE *
AKH0 *
AKH1 *
1,1,1
0,0
0,1
1,0
1,1
0
1
0
1
0
1
0
1
機 能
汎用ポート ( 初期値 )
DACK0, DEOP0 出力 ( フライバイ転送時 FR30 互換 )
DACK0, DEOP0 出力
(2 サイクル転送 RD タイミング FR30 互換 )
DACK0, DEOP0 出力
(2 サイクル転送 WRn タイミング FR30 互換 )
DACK0, DEOP0 出力
(2 サイクル転送 WE タイミング FR30 互換 )
DACK0, DEOP0 出力
(2 サイクル転送 WRn, RD タイミング FR30 互換 )
DACK0, DEOP0 出力
(2 サイクル転送 WE, RD タイミング FR30 互換 )
DACK0, DEOP0 出力 ( チップセレクトタイミング )
汎用ポート入力 ( 初期値 )
汎用ポート出力
DMAC: DSTP0 入力
DMAC: DEOP0 出力
汎用ポート ( 初期値 )
DACK1, DEOP1 出力 ( フライバイ転送時 FR30 互換 )
DACK1, DEOP1 出力
(2 サイクル転送 RD タイミング FR30 互換 )
DACK1, DEOP1 出力
(2 サイクル転送 WRn タイミング FR30 互換 )
DACK1, DEOP1 出力
(2 サイクル転送 WE タイミング FR30 互換 )
DACK1, DEOP1 出力
(2 サイクル転送 WRn, RD タイミング FR30 互換 )
DACK1, DEOP1 出力
(2 サイクル転送 WE, RD タイミング FR30 互換 )
DACK1, DEOP1 出力 ( チップセレクトタイミング )
汎用ポート入力 ( 初期値 )
汎用ポート出力
DMAC: DSTP1 入力
DMAC: DEOP1 出力
汎用ポート ( 初期値 )
IOWR 出力
汎用ポート ( 初期値 )
IORD 出力
DACK0 出力がアクティブ L ( 初期値 )
DACK0 出力がアクティブ H
DACK1 出力がアクティブ L ( 初期値 )
DACK1 出力がアクティブ H
227
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (3 / 4)
レジスタ名称
ビット名称
PFRC(AK22, AK21, AK20) AK22, AK21,
[PC1/DACK2] *
AK20 *
ビット
0,0,0
0,0,1
0,1,0
0,1,1
1,0,0
1,0,1
1,1,0
PFRC(DES2), DDRC(PC2)
[PC2/DEOP2] *
DES2, PC2
PFRC(AKH2)
[PC1/DACK2] *
PFRG(SOE4)
[PG1/SO4] *
PFRG(SCE4)
[PG2/SCK4] *
PFRG(SOE5)
[PG4/SO5] *
PFRG(SCE5)
[PG5/SCK5] *
PFRH(SOE2)
[PH1/SO2]
AKH2 *
SOE4 *
SCE4 *
SOE5 *
SCE5 *
SOE2
PFRH(SCE2)
[PH2/SCK2]
SCE2
PFRH(SOE3)
[PH4/SO3]
SOE3
PFRH(SCE3)
[PH5/SCK3]
SCE3
PFRI(SOE0)
[PI1/SO0]
SOE0
PFRI(SCE0)
[PI2/SCK0]
SCE0
PFRI(SOE1)
[PI4/SO1]
SOE1
PFRI(SCE1)
[PI5/SCK1]
SCE1
PFRL(I2CE)
[PL1/SDL, PL0/SDA]
I2CE
PFRL(TEST)
TEST
PFRM(SOE6)
[PM1/SO6/BIN0/TRG1]
SOE6
228
*
1,1,1
0,0
0,1
1,0
1,1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
機 能
汎用ポート ( 初期値 )
DACK2, DEOP2 出力 ( フライバイ転送時 FR30 互換 )
DACK2, DEOP2 出力
(2 サイクル転送 RD タイミング FR30 互換 )
DACK2, DEOP2 出力
(2 サイクル転送 WRn タイミング FR30 互換 )
DACK2, DEOP2 出力
(2 サイクル転送 WE タイミング FR30 互換 )
DACK2, DEOP2 出力
(2 サイクル転送 WRn, RD タイミング FR30 互換 )
DACK2, DEOP2 出力 (2 サイクル転送 WE, RD タイミング
FR30 互換 )
DACK2, DEOP2 出力 ( チップセレクトタイミング )
汎用ポート入力 ( 初期値 )
汎用ポート出力
DMAC: DSTP2 入力
DMAC: DEOP2 出力
DACK2 出力がアクティブ L ( 初期値 )
DACK2 出力がアクティブ H
汎用ポート ( 初期値 )
SO4 出力
汎用ポート ( 初期値 )
SCK4 出力
汎用ポート ( 初期値 )
SO5 出力
汎用ポート ( 初期値 )
SCK5 出力
汎用ポート ( 初期値 )
SO2 出力
汎用ポート ( 初期値 )
SCK2 出力
汎用ポート ( 初期値 )
SO3 出力
汎用ポート ( 初期値 )
SCK3 出力
汎用ポート ( 初期値 )
SO0 出力
汎用ポート ( 初期値 )
SCK0 出力
汎用ポート ( 初期値 )
SO1 出力
汎用ポート ( 初期値 )
SCK1 出力
汎用ポート ( 初期値 )
SDA, SDL 入出力
必ず "0" にしてください ( 初期値 ) 。
テスト機能。設定禁止です。
汎用ポート ( 初期値 )
SO6 出力
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能 (4 / 4)
レジスタ名称
ビット名称
PFRM(SCE6)
[PM2/SCK6/ZIN0/TRG2]
SCE6
PFRM(SOE7)
[PM4/SO7/BIN1/TRG4]
SOE7
PFRM(SCE7)
[PM5/SCK7/ZIN1/TRG5]
SCE7
PGE0
PFRN(PGE0 ∼ 5)
[PN0/PPG0 ∼ PN5/PPG7] *
PGE1 *
PFRO(OTE0 ∼ 7)
[PO0/OC0 ∼ PO7/OC7] *
機 能
0
1
0
1
0
1
0
1
汎用ポート ( 初期値 )
SCK6 出力
汎用ポート ( 初期値 )
SO7 出力
汎用ポート ( 初期値 )
SCK7 出力
汎用ポート ( 初期値 )
PPG0 出力
0
汎用ポート ( 初期値 ) *
1
PGE2
0
1
PPG1 出力 *
汎用ポート ( 初期値 )
PPG2 出力
PGE3 *
0
汎用ポート ( 初期値 ) *
1
PGE4
0
1
PPG3 出力 *
汎用ポート ( 初期値 )
PPG4 出力
PGE5 *
0
汎用ポート ( 初期値 ) *
1
OTE0
0
1
PPG5 出力 *
汎用ポート ( 初期値 )
OC0 出力
OTE1 *
0
汎用ポート ( 初期値 ) *
1
OTE2
0
1
OC1 出力 *
汎用ポート ( 初期値 )
OC2 出力
OTE3 *
0
汎用ポート ( 初期値 ) *
1
OC3 出力 *
0
汎用ポート ( 初期値 ) *
1
OC4 出力 *
0
汎用ポート ( 初期値 ) *
1
OC5 出力 *
0
汎用ポート ( 初期値 ) *
1
OC6 出力 *
0
汎用ポート ( 初期値 ) *
1
OC7 出力 *
0
汎用ポート ( 初期値 ) *
1
TOT0 出力 *
0
汎用ポート ( 初期値 ) *
1
TOT1 出力 *
0
汎用ポート ( 初期値 ) *
1
TOT2 出力 *
0
汎用ポート ( 初期値 ) *
OTE4
*
OTE5 *
OTE6 *
OTE7 *
PFRP(TOE0 ∼ TOE3)
[PP0/TOT0 ∼ PP3/TOT3] *
ビット
TOE0 *
TOE1 *
TOE2 *
TOE3 *
TOT3 出力 *
* : MB91F353A/351A/352A/353A は設定無効です。
1
229
第 5 章 I/O ポート
230
第6章
8/16 ビットアップダウン
カウンタ / タイマ・
U-TIMER
この章では , 8/16 ビットアップダウンカウンタ / タ
イマと U-TIMER の概要 , レジスタの構成 / 機能 ,
および動作について説明します。
6.1 8/16 ビットアップダウンカウンタ / タイマ
6.2 U-TIMER
231
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
6.1
8/16 ビットアップダウンカウンタ / タイマ
8/16 ビットアップダウンカウンタ / タイマの概要 , レジスタの構成 / 機能 , および動
作について説明します。
■ 8/16 ビットアップダウンカウンタ / タイマの概要
本ブロックは , イベント入力端子 6 本 , 8 ビットアップ / ダウンカウンタ× 2 本 , 8 ビッ
トリロード / コンペアレジスタ× 2 本と , それらの制御回路から構成されるアップダウ
ンカウンタ / タイマです。
MB91F355A/355A/354A/F356B/F357B は本ブロック 8 ビットアップダウンカウンタ / タ
イマを 2 チャネル内蔵しています。
MB91F353A/351A/352A/353A は 8 ビットアップダウンカウンタ / タイマを 1 チャネル
内蔵しています。
16 ビットモードは使用不可能です。
232
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
6.1.1
8/16 ビットアップダウンカウンタ / タイマの概要
本ブロックは , イベント入力端子 6 本 , 8 ビットアップ / ダウンカウンタ× 2 本 , 8
ビットリロード / コンペアレジスタ× 2 本と , それらの制御回路から構成されるアッ
プダウンカウンタ / タイマです。
■ 8/16 ビットアップダウンカウンタ / タイマの特徴
• 8 ビットカウントレジスタにより , (0)d ∼ (255)d の範囲でカウント可能 (16 ビット×
1 動作モードでは (0)d ∼ (65535)d の範囲でカウント可能 )
• カウントクロックの選択による 4 種のカウントモード
カウントモード
- タイマモード
- アップ / ダウンカウンタモード
- 位相差カウントモード (2 逓倍 )
- 位相差カウントモード (4 逓倍 )
• タイマモード時には , カウントクロックとして内部クロック 2 種類 , 内部回路から
の入力を選択可能
カウントクロック (25MHz 動作時 )
- 80ns (12.5MHz:2 分周 )
- 320ns (3.125Hz:8 分周 )
• アップ / ダウンカウントモード時には , 外部端子入力信号の検出エッジを選択可能
- 立上りエッジ検出
- 立下り / 立上りエッジ両エッジ検出
- エッジ検出禁止
• 位相差カウントモードは , モータ等のエンコーダのカウントに適し, エンコーダのA
相 , B 相 , および Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数等
のカウントを容易に行うことが可能
• ZIN 端子は , 2 種の機能を選択可能 ( すべてのモードで有効 )
- カウンタクリア機能
- ゲート機能
• コンペア機能およびリロード機能を有し , それぞれの機能のみで , また組み合わせ
ても使用可能で , 両機能を組み合わせて使用することで任意幅でのアップダウンカ
ウントを行うことが可能
コンペア / リロード機能
- コンペア機能 ( コンペア時割込み要求出力 )
- コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア )
- リロード機能 ( アンダフロー時割込み要求出力およびリロード )
233
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
- コンペア / リロード機能
( コンペア時割込み要求出力およびカウンタクリア , アンダフロー時割込み要求
出力およびリロード )
- コンペア / リロード禁止
• カウント方向フラグにより , 直前のカウント方向を識別可能
• コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時 , およびカウン
ト方向が変わった場合の割込みの発生を , それぞれ個別に制御可能
■ 8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧
8/16 ビットアップダウンカウンタ / タイマのレジスタ一覧は , 以下のとおりです。
31
24
23
RCR1*
CCRH0
CCRH1*
16
15
RCR0
CCRL0
CCRL1*
8
7
UDCR1*
-
0
UDCR0
CSR0
CSR1*
*: MB91F353A/351A/352A/353A は RCR1, UDCR1, CCRH1, CCRL1, CSR1 のレジスタア
クセス禁止です。
● アップダウンカウントレジスタ (UDCR)
アップダウンカウントレジスタ (UDCR) のビット構成は , 以下のとおりです。
ビット
アドレス : 0000B3H
ビット
アドレス : 0000B2H
7
6
5
4
3
2
1
D07
D06
D05
D04
D03
D02
D01
15
14
13
12
11
10
9
D15
D14
D13
D12
D11
D10
D09
0
アップダウンカウントレジスタ ch0
D00 (UDCR0)
8
アップダウンカウントレジスタ ch1
D08 (UDCR1)
● リロードコンペアレジスタ (RCR)
リロードコンペアレジスタ (RCR) のビット構成は , 以下のとおりです。
ビット
アドレス : 0000B1H
ビット
アドレス : 0000B0H
7
6
5
4
3
2
1
D07
D06
D05
D04
D03
D02
D01
15
14
13
12
11
10
9
D15
D14
D13
D12
D11
D10
D09
0
リロードコンペアレジスタ ch0
D00 (RCR0)
8
リロードコンペアレジスタ ch1
D08 (RCR1)
● カウンタステータスレジスタ (CSR)
カウンタステータスレジスタ (CSR) のビット構成は , 以下のとおりです。
ビット
7
アドレス : 0000B7H CSTR
0000BBH
234
6
CITE
5
4
3
2
1
0
カウンタステータスレジスタ ch0,1
UDIE CMPF OVFF UDFF UDF1 UDF0 (CSR0, CSR1)
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
● カウンタコントロールレジスタ (CCRL)
カウンタコントロールレジスタ (CCRL) のビット構成は , 以下のとおりです。
ビット
7
アドレス : 0000B5H 予約
0000B9H
6
5
4
3
2
1
0
カウンタコントロールレジスタ ch0,1
CTUT UCRE RLDE UDCC CGSC CGE1 CGE0 (CCRL0, CCRL1)
● カウンタコントロールレジスタ (CCRH)
カウンタコントロールレジスタ (CCRH) のビット構成は , 以下のとおりです。
ビット
15
14
アドレス : 0000B4H M16E CDCF
ビット
15
アドレス : 0000B8H 予約
13
CFIE
14
13
CDCF
CFIE
12
11
10
9
8
12
11
10
9
8
カウンタコントロールレジスタ ch0
CLKS CMS1 CMS0 CES1 CES0 (CCRH0)
カウンタコントロールレジスタ ch1
CLKS CMS1 CMS0 CES1 CES0 (CCRH1)
235
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム
図 6.1-1 に 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラムを
示します。
図 6.1-1 8/16 ビットアップダウンカウンタ / タイマ (ch0) のブロックダイヤグラム
データバス
8ビット
CGE1
ZIN0
CGE0
RCR0(リロード/
コンペアレジスタ 0)
CGSC
CTUT
リロード制御
UCRE
RLDE
M16E
Ch1へ
Carry
エッジ/レベル検出
UDCC
カウンタクリア
8ビット
CES1
CES0
CMS1
CMS0
UDCR0(アップ/
ダウンカウントレジスタ 0)
CMPF
UDFF
AIN0
BIN0
アップ/ダウン
カウント
クロック
選択
カウント
クロック
CSTR
UDF1
UDIE
UDF0
プリスケーラ
CDCF
CITE
CLKS
CFIE
割込み出力
236
OVFF
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム
図 6.1-2 に 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラムを
示します。
図 6.1-2 8/16 ビットアップダウンカウンタ / タイマ (ch1) のブロックダイヤグラム
データバス
8ビット
CGE1
ZIN1
CGE0
RCR1(リロード/
コンペアレジスタ 1)
CGSC
CTUT
リロード制御
UCRE
RLDE
エッジ/レベル検出
カウンタクリア
UDCC
8ビット
CES1
CES0
CMS1
CMS0
Carry
AIN1
BIN1
UDCR1(アップ/
ダウンカウントレジスタ 1)
CMPF
M16E
アップ/ダウン カウント
クロック
カウント
クロック
選択
UDFF
OVFF
UDIE
CSTR
UDF1
UDF0
CDCF
プリスケーラ
CITE
CLKS
CFIE
割込み出力
( 注意事項 ) MB91F353A/351A/352A/353A には ch1 がありません。
237
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
8/16 ビットアップダウンカウンタ / タイマのレジス
タ
6.1.2
8/16 ビットアップダウンカウンタ / タイマで使用するレジスタの構成および機能に
ついて説明します。
■ CCRH/L ch0 (Counter Control Register High/Low ch0)
CCRH/L ch0 (Counter Control Register High/Low ch0) のビット構成は , 以下のとおりで
す。
14
ビット 15
アドレス : 0000B4H M16E CDCF
R/W
0000B5H R/W
7
予約
R/W
13
CFIE
R/W
12
11
10
9
8
CLKS CMS1 CMS0 CES1 CES0
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
6
5
4
3
2
1
0
CTUT UCRE RLDE UDCC CGSC CGE1 CGE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00001000B
[ ビット 15] M16E:16 ビットモード許可設定ビット
8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。
M16E
16 ビットモード許可設定
0
8 ビット× 2 チャネル動作モード ( 初期値 )
1
16 ビット× 1 チャネル動作モード
[ ビット 14] CDCF: カウント方向転換フラグ
カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン
ト方向がアップ→ダウン , またはダウン→アップに変わった場合に "1" にセットされ
ます。
"0" 書込みでクリアされます。
"1" 書込みは無視され , 本ビットの値は変化しません。
CDCF
方向転換検出
0
方向転換は行われていない ( 初期値 )
1
方向転換が 1 回以上行われた
<注意事項>
リセット直後のカウント方向はダウンカウント方向になっています。したがって , リセッ
ト直後のアップカウント時は CDCF に "1" がセットされます。
リードモディファイライト系命令における読出し時には "1" が読み出されます。
238
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
[ ビット 13] CFIE: カウント方向転換割込みイネーブルビット
CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。カ
ウント起動中に一度でもカウント方向が変わった場合に割込みを発生します。
CFIE
方向転換割込み出力
0
方向転換割込み出力禁止 ( 初期値 )
1
方向転換割込み出力許可
[ ビット 12] CLKS: 内蔵プリスケーラ選択ビット
タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。
タイマモードでのみ有効で , このときはダウンカウントのみとなります。
CLKS
選択内部クロック
0
2 マシンサイクル ( 初期値 )
1
8 マシンサイクル
[ ビット 11, 10] CMS1, CMS0: カウントモード選択ビット
カウントモードを選択するビットです。
CMS1
CMS0
0
0
タイマモード〔ダウンカウント〕( 初期値 )
0
1
アップ / ダウンカウントモード
1
0
位相差カウントモード 2 逓倍
1
1
位相差カウントモード 4 逓倍
カウントモード
[ ビット 9, 8] CES1, CES0: カウントクロックエッジ選択ビット
アップ / ダウンカウントモード時において , 内部回路の入力 , 外部端子 AIN および BIN
の検出エッジを選択するビットです。
アップ / ダウンカウントモード以外では , この設定は無効です。
CES1
CES0
0
0
エッジ検出禁止 ( 初期値 )
0
1
立下りエッジ検出
1
0
立上りエッジ検出
1
1
立上り / 立下り両エッジ検出
選択エッジ
[ ビット 7] 予約 : 予約ビット
予約ビットです。必ず "0" を設定してください。
[ ビット 6] CTUT: カウンタライトビット
RCR から UDCR へのデータ転送を行います。
このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。
"0" 書込みは無効であり , 読出し値は常に "0" です。
カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな
いでください。
239
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
[ ビット 5] UCRE:UDCR クリアイネーブルビット
コンペアによる UDCR のクリアを制御するビットです。
コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) には
影響しません。
UCRE
コンペアによるカウンタのクリア
0
カウンタクリア禁止 ( 初期値 )
1
カウンタクリア許可
[ ビット 4] RLDE: リロードイネーブルビット
リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ
フローを発生した場合に RCR の値を UDCR に転送します。
RLDE
リロード機能
0
リロード機能禁止 ( 初期値 )
1
リロード機能許可
[ ビット 3] UDCC:UDCR クリアビット
UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が 0000H に
クリアされます。
"1" 書込みは無効であり , 読出し値は常に "1" です。
[ ビット 2] CGSC: カウンタクリア / ゲート選択ビット
外部端子 ZIN の機能を選択するビットです。
CGSC
ZIN の機能
0
カウンタクリア機能 ( 初期値 )
1
ゲート機能
[ ビット 1, 0] CGE1, CGE0: カウンタクリア / ゲートエッジ選択ビット
外部端子 ZIN の検出エッジ / レベルを選択するビットです。
240
CGE1
CGE0
0
0
エッジ検出禁止 ( 初期値 )
レベル検出禁止
( カウントディセーブル )
0
1
立下りエッジ
"L" レベル
1
0
立上りエッジ
"H" レベル
1
1
設定禁止
設定禁止
カウンタクリア機能選択時
ゲート機能選択時
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ CCRH/L ch1 (Counter Control Register High/Low ch1)
CCRH/L ch1 (Counter Control Register High/Low ch1) のビット構成は , 以下のとおりで
す。
ビット 15
アドレス : 0000B8H 予約
0000B9H R/W
7
予約
R/W
14
CDCF
R/W
13
CFIE
R/W
12
11
10
9
8
CLKS CMS1 CMS0 CES1 CES0
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
6
5
4
3
2
1
0
CTUT UCRE RLDE UDCC CGSC CGE1 CGE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00001000B
[ ビット 15] 予約 : 予約ビット
予約ビットです。必ず "0" を設定してください。
[ ビット 14 ∼ 0]
各ビットの詳細は CCRH/L ch0 を参照してください。
■ CSR0/1 (Counter Status Register 0/1)
CSR0/1 (Counter Status Register 0/1) のビット構成は , 以下のとおりです。
7
ビット
アドレス : 0000B7H CSTR
0000BBH R/W
6
CITE
R/W
5
4
3
2
1
0
UDIE CMPF OVFF UDFF UDF1 UDF0
R/W
R/W
R/W
R/W
R
R
初期値
00000000B
[ ビット 7] CSTR: カウント起動ビット
UDCR のカウント動作の起動 / 停止を制御するビットです。
CSTR
動作内容
0
カウント動作停止 ( 初期値 )
1
カウント動作起動
[ ビット 6] CITE: コンペア割込み出力制御ビット
CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行うか
の許可 / 禁止を制御するビットです。
CITE
コンペア割込み出力
0
コンペア割込み出力禁止 ( 初期値 )
1
コンペア割込み出力許可
[ ビット 5] UDIE: オーバフロー / アンダフロー割込み出力制御ビット
OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU
への割込み出力を行うかの許可 / 禁止を制御するビットです。
UDIE
オーバフロー / アンダフロー割込み出力
0
オーバフロー / アンダフロー割込み出力の禁止 ( 初期値 )
1
オーバフロー / アンダフロー割込み出力の許可
241
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
[ ビット 4] CMPF: コンペア検出フラグ
UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。
"0" 書込みのみ可能で , "1" 書込みはできません。
リードモディファイライト系命令における読出し時には "1" が読み出されます。
CMPF
フラグ内容
0
比較結果が一致していない ( 初期値 )
1
比較結果が一致した
[ ビット 3] OVFF: オーバフロー検出フラグ
オーバフローの発生を示すフラグです。"0" 書込みのみ可能で "1" 書込みはできませ
ん。
リードモディファイライト系命令における読出し時には "1" が読み出されます。
OVFF
フラグ内容
0
オーバフローなし ( 初期値 )
1
オーバフローあり
[ ビット 2] UDFF: アンダフロー検出フラグ
アンダフローの発生を示すフラグです。"0" 書込みのみ可能で "1" 書込みはできませ
ん。
リードモディファイライト系命令における読出し時には "1" が読み出されます。
UDFF
フラグ内容
0
アンダフローなし ( 初期値 )
1
アンダフローあり
[ ビット 1, 0] UDF1, UDF0: アップダウンフラグ
直前のカウント動作 ( アップ / ダウン ) を示すビットです。
読出しのみ可能で , 書込みはできません。
UDF1 UDF0
242
検出エッジ
0
0
入力なし ( 初期値 )
0
1
ダウンカウント
1
0
アップカウント
1
1
アップ / ダウン同時発生
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ UDCR0/1 (Up Down Count Register 0/1)
UDCR0/1 (Up Down Count Register 0/1) のビット構成は , 以下のとおりです。
ビット 15
アドレス : 0000B2H D15
R
0000B3H
14
D14
R
13
D13
R
12
D12
R
11
D11
R
10
D10
R
9
D09
R
8
D08
R
初期値
00000000B
7
D07
R
6
D06
R
5
D05
R
4
D04
R
3
D03
R
2
D02
R
1
D01
R
0
D00
R
初期値
00000000B
本レジスタは , 8 ビットカウントレジスタです。内部回路からの入力 , 内部プリスケー
ラ , または AIN 端子 , BIN 端子の入力によってアップ / ダウンカウント動作を行いま
す。
また, 16ビットカウントモードでは, 16ビットカウントレジスタとして動作します。
本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場
合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に
書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本
レジスタに転送されます ( ソフトウェアによるリロード ) 。
本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。
■ RCR0/1 (Reload/Compare Register 0/1)
RCR0/1 (Reload/Compare Register 0/1) のビット構成は , 以下のとおりです。
ビット 15
アドレス : 0000B0H D15
0000B1H W
14
D14
W
13
D13
W
12
D12
W
11
D11
W
10
D10
W
9
D09
W
8
D08
W
初期値
00000000B
7
D07
W
6
D06
W
5
D05
W
4
D04
W
3
D03
W
2
D02
W
1
D01
W
0
D00
W
初期値
00000000B
本レジスタは , 8 ビットリロード / コンペアレジスタです。本レジスタにより , リロー
ド値およびコンペア値を設定します。リロード値とコンペア値は同一であり , リロード
機能およびコンペア機能を起動することで 00H ∼本レジスタ値の間 (16 ビット動作
モード :0000H ∼本レジスタ値 ) でアップ / ダウンカウントが可能になります。
本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR0/1 レジ
スタの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送するこ
とが可能です ( ソフトウェアによるリロード ) 。
16 ビットモード (M16E=1) のときは , 本レジスタに 16 ビットで一度に書き込んでくだ
さい。
243
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
6.1.3
8/16 ビットアップダウンカウンタ / タイマの動作説
明
8/16 ビットアップダウンカウンタ / タイマの動作について説明します。
■ カウントモード選択
本タイマ / カウンタは , 4 種類のカウントモードを有します。これらのカウントモード
の選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。図 6.1-1 にカウントモー
ド選択を示します。
表 6.1-1 カウントモード選択
CMS1, CMS0
カウントモード
00 B
タイマモード〔ダウンカウント〕
01 B
アップ / ダウンカウントモード
10 B
位相差カウントモード 2 逓倍
11 B
位相差カウントモード 4 逓倍
(a) タイマモード〔ダウンカウント〕
タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内蔵プリスケー
ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ
イクルの選択が可能です。
(b) アップ / ダウンカウントモード
アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ
とでアップ / ダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端
子の入力はダウンカウントをそれぞれ制御します。
AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタの CES1, CES0 ビットに
よって検出エッジの選択が可能です。図 6.1-2 に , 検出エッジ選択を示します。
表 6.1-2 検出エッジ選択
CES1, CES0
244
検出エッジ
00 B
エッジ検出禁止
01 B
立下りエッジ検出
10 B
立上りエッジ検出
11 B
立下り / 立上り両エッジ検出
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
(c) 位相差カウントモード (2 逓倍 /4 逓倍 )
位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする
ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを , BIN 端子の入力エッジ
検出時に AIN 端子の入力レベルを検出し , カウントを行います。
2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN の方
が早い場合にアップカウントを , BIN の方が早い場合にダウンカウントを行います。
2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の
値を検出することでカウントを行います。このとき , 以下の処理を行います。
• BIN 端子の立上りエッジで検出した AIN 端子の値が "H" のとき , アップカウント
• BIN 端子の立上りエッジで検出した AIN 端子の値が "L" のとき , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "H" のとき , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "L" のとき , アップカウント
図 6.1-3 に位相差カウントモード (2 逓倍 ) 動作概略を示します。
図 6.1-3 位相差カウントモード (2 逓倍 ) 動作概略
AIN 端子
BIN 端子
↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑ ↑
+1 +1 +1 +1 +1 -1 +1 -1 -1 -1 -1 -1
カウント値 0 1 2 3 4 5 4 5 4 3 2 1 0
4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を
検出し , また AIN 端子の立上り / 立下り両方のエッジのタイミングで BIN 端子の値を
検出することでカウントを行います。このとき , 以下の処理を行います。
• BIN 端子の立上りエッジで検出した AIN 端子の値が "H" のとき , アップカウント
• BIN 端子の立上りエッジで検出した AIN 端子の値が "L" のとき , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "H" のとき , ダウンカウント
• BIN 端子の立下りエッジで検出した AIN 端子の値が "L" のとき , アップカウント
• AIN 端子の立上りエッジで検出した BIN 端子の値が "H" のとき , ダウンカウント
• AIN 端子の立上りエッジで検出した BIN 端子の値が "L" のとき , アップカウント
• AIN 端子の立下りエッジで検出した BIN 端子の値が "H" のとき , アップカウント
• AIN 端子の立下りエッジで検出した BIN 端子の値が "L" のとき , ダウンカウント
図 6.1-4 に位相差カウントモード (4 逓倍 ) 動作概略を示します。
図 6.1-4 位相差カウントモード (4 逓倍 ) 動作概略
AIN 端子
↓ ↑↓ ↑ ↓
BIN 端子
+1 +1+1
カウント値 0 1 2 3
↑↓
+1 +1 +1+1
4 5 6 7
↑
↓ ↑ ↑
↑ ↑
↓ ↑
↓↑ ↓ ↑
↓↑
+1
8
+1 +1
-1
9 10 9
+1
-1 -1 -1 -1-1 -1 -1 -1-1
10 9 8 7
6 5 4 3 2 1
245
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN
端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出等が可
能です。
なお , このカウントモード選択時は , CES1, CES0 による検出エッジの選択は無効です。
■ リロード / コンペア機能
本カウンタでは , リロード機能およびコンペアによるクリア機能を有しています。この
2 つの機能は組み合わせて処理を行うことが可能です。表 6.1-3 に , 設定例を示します。
表 6.1-3 リロード / コンペアによるクリア機能選択の設定例
RLDE, UCRE
リロード / コンペア機能
00 B
リロード / コンペアによるクリア禁止 ( 初期値 )
01 B
コンペアによるクリア許可
10 B
リロード許可
11 B
リロード / コンペアによるクリア許可
● リロード機能起動時
リロード機能起動時は , アンダフロー発生の次のダウンカウントクロックのタイミン
グで RCR の値を UDCR に転送します。このとき , UDFF がセットされると共に割込み
要求を発生します。
ダウンカウントを行わないモードでは , 本機能の起動は無効となります。
図 6.1-5 にリロード機能動作概略を示します。
図 6.1-5 リロード機能動作概略
(0FFFFH )
0FF H
リロード、割込み発生
リロード、割込み発生
RCR
00 H
246
アンダフロー
アンダフロー
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
● コンペアによるクリア機能
コンペアによるクリア機能は , タイマモード以外のすべてのモードで使用可能です。コ
ンペア機能起動時は , RCR と UDCR の値が一致した場合に , CMPF がセットされると
共に割込み要求を発生します。また , コンペアクリア機能起動時は , その次のアップカ
ウントクロックのタイミングで UDCR をクリアします ( ダウンカウント時はクリアさ
れません ) 。
アップカウントを行わないモードでは , 本機能の起動は無効となります。
図 6.1-6 にコンペア機能動作概略を示します。
図 6.1-6 コンペア機能動作概略
(0FFFFH )
0FF H
コンペア一致
コンペア一致
RCR
00 H
カウンタクリア、割込み発生
カウンタクリア、割込み発生
■ リロード / コンペア機能起動時の , 任意幅でのアップ / ダウンカウント
リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。
リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま
た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。
この両機能を利用して , 0000H ∼ RCR の値の間でアップ / ダウンカウントを行います。
図 6.1-7 にリロード / コンペア機能同時起動時動作概略を示します。
図 6.1-7 リロード / コンペア機能同時起動時動作概略
0FF H
RCR
00 H
コンペア一致
カウンタ
クリア
コンペア一致
カウンタ
クリア
リロード
アンダ
フロー
リロード
リロード
アンダ
フロー
アンダ
フロー
コンペア一致
カウンタ
クリア
コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが
できます。
247
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
また , これらの割込み出力のイネーブルは個別に制御可能です。
UDCR に対しクリアを行う場合のタイミングについて , カウント起動中と停止中では
異なります。
カウント動作中のソフトウェアによるリロード (CTUT への "1" 書込み ) は禁止です。
• カウント動作中にクリアのイベントが発生した場合は , すべてカウントクロックに
同期して行われます。
図 6.1-8 に , カウント動作中の UDCR クリアタイミングを示します。
図 6.1-8 カウント動作中の UDCR クリアタイミング
0065H
UDCR
0066H
0000H
クリアイベント
0001H
このクロックに同期する
カウントクロック
( 注意事項 ) カウント動作中のアンダフローによるリロードはカウントクロックに同
期して行われます。
• カウント動作中にクリアのイベントが発生した場合で , カウントクロック同期待ち
(同期させるためのカウント入力を待っている状態) のままカウントを停止させたと
きは , 停止した時点でクリアが行われます。
図 6.1-9 に , カウント停止中の UDCR クリアタイミングを示します。
図 6.1-9 カウント停止中の UDCR クリアタイミング
0065H
UDCR
0066H
0000H
クリアイベント
カウントクロック
カウントイネーブル
イネーブル(カウント許可)
ディセーブル(カウント禁止)
• カウント停止中にリロードおよびクリアのイベントが発生した場合は , イベント発
生時点で UDCR のリロードおよびクリアが行われます ( 図は 80H をリロードした場
合)。
図 6.1-10 に, カウント停止中のUCDRリロードおよびクリアタイミングを示します。
図 6.1-10 カウント停止中の UCDR リロードおよびクリアタイミング
UDCR
リロード/
クリアイベント
248
065H
080H
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン
トが行われたときにクリアが行われます。UDCR と RCR の値が一致した場合において
も , その後ダウンカウントやカウント停止 , また RCR 値を書き換えた後にアップカウ
ントが発生した場合はクリアは行われません。
クリア / リロードのタイミングについて , クリアについてはリセット入力以外のすべて
のイベントで , またリロードもすべてのイベントにおいて上記タイミングにしたがい
ます。
クリアイベントとリロードイベントが同時期に発生した場合はクリアイベントが優先
となります。
■ UDCR へのデータの書込み
UDCR へデータバスから直接データを書き込むことはできません。UDCR に任意の
データを書き込む場合は , 以下のような手順で書き込む必要があります。
a. UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注
意)。
b. CCR の CTUT に "1" を書き込むことにより , RCR から UDCR にデータが転送される。
以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" のとき ) に行ってください。
誤って , カウント中に CTUT に "1" を書き込むと , 書き込んだタイミングで , RCR の値
が UDCR に転送されます。
カウンタのクリアについては , 上記以外の方法以外に以下のような方法があります。
• リセット入力によるクリア ( 初期化 )
• ZIN 端子からのエッジ入力によるクリア
• CCR の UDCC に "0" を書き込むことによるクリア
• コンペア機能によるクリア
これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。
● カウントクリア / ゲート機能
ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート
機能を選択して使用可能です。
カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子
のどのエッジ入力でカウントクリアを行うかを CCRL レジスタの CGE1, CGE0 ビット
で制御可能です。
ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。
ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ
トで制御可能です。
本機能は , すべてのモードで有効です。
表 6.1-4 に , ZIN 端子機能選択を示します。
表 6.1-4 ZIN 端子機能選択
CGSC
0
1
ZIN 端子の機能
CGE1, CGE0
カウンタクリア機能時
ゲート機能時
カウンタクリア機能
00B
検出禁止
検出禁止
ゲート機能
01B
立上りエッジ
"L" レベル
10B
立下りエッジ
"H" レベル
249
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
● カウント方向フラグ
カウント方向フラグ (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウント
がアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端子
の入力から生成されたカウントクロックから判断して , カウントのたびにフラグを書
き換えます。モータの制御等で , 現在の回転方向を知りたい場合等にこのフラグをみる
ことで回転方向を判別できます。
表 6.1-5 に , カウント方向フラグを示します。
表 6.1-5 カウント方向フラグ
UDF1,
UDF0
カウント方向
01B
ダウンカウント
10B
アップカウント
11B
アップ / ダウン同時発生 ( カウント動作は行われない )
● カウント方向転換フラグ
カウント方向転換フラグ (CDCF) は , カウント方向がアップ←→ダウンで変わった場
合にセットされます。また , このフラグがセットされると同時に CPU に対して割込み
要求を発生させることができます。この割込みとカウント方向フラグを参照すること
により , カウント方向がどちらからどちらへ変化したかを判断することができます。
ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの
示す方向が元に戻り同一方向となる場合がありますので注意が必要です。
表 6.1-7 に , カウント方向転換フラグを示します。
表 6.1-6 カウント方向転換フラグ
CDCF
カウント方向転換検出
0
方向転換なし
1
方向転換あり (1 回以上 )
● コンペア検出フラグ
コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく
なったときにセットされます。カウントアップ / ダウン一致のほか , リロードイベント
発生による一致 , カウント起動時にすでに一致している場合もセットされます。
● 8 ビット× 2 チャネル , 16 ビット× 1 チャネル動作
このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネル , または , 16 ビットアッ
プダウンカウンタ× 1 チャネルとして使用できます。CCRH0 レジスタの M16E ビット
に "0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むこと
により , 16 ビット× 1 チャネルモードとなります。
16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0, レジスタが有効と
なり , CSR1, CCRL1, CCRH1 レジスタは使用できません。また入力端子は , AIN0, BIN0,
ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使われません。
250
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ 割込み発生タイミング
表 6.1-7 に割込み発生タイミングを示します。
表 6.1-7 割込み発生タイミング
割込みフラグ
フラグセット割込み
CDCF
( カウント方向転換フラグ )
カウント方向が変わったカ
ウント時に , セットと同時
に割込み発生
CMPF
( コンペア検出フラグ )
アップカウント / ダウンカ
ウント / リロード / カウント
起動時に , RCR と UDCR が
一致すると , フラグセット
と同時に割込み発生
リロード
クリア
−
−
−
RCR と UDCR の一致の
次のアップカウントタ
イミングで UDCR をク
リア
( ダウンカウント時はク
リアされません )
カウント "FFFFH" の次の
OVFF
( オーバフロー検出フラグ )
カウント "0000H" の次のダ
UDFF
( アンダフロー検出フラグ )
カウント "FFFFH" の次
アップカウントタイミング
で , フラグセットと同時に
割込み発生
−
のカウントタイミング
で UDCR をクリア
カウント "0000H" の次の
ウンカウントタイミングで , カウントタイミングで
フラグセットと同時に割込 RCR の値を UDCR に転送
み発生
−
RCRはリロード値とコンペア値を兼用しているため, リロードが実行されると, コンペ
アフラグが必ずセットされます。
クリア機能を有効にしたダウンカウント実行時 , コンペア一致が発生した後 , アップカ
ウントが行われるとクリア発生します。
リードモディファイライト系命令における読出し時には "1" が読み出されます。
UDCR と RCR の値が一致した場合においても , その後ダウンカウントやカウント停止 ,
また RCR 値を書き換えた後にアップカウントが発生した場合はクリア動作は行われま
せん。
<注意事項>
カウントリセット直後のカウント方向はダウンカウント方向になっています。したがっ
て , リセット直後のアップカウント時は方向転換が行われたことを示す CDCF に "1" が
セットされます。
アップダウンカウントレジスタ (UDCR) がフルカウントになった場合, キャリなしでカウ
ントを続けます。見かけ上 , アップダウンカウントレジスタがクリアされカウントを続け
ることになります。
AIN, BIN, ZIN の最小パルス幅は , 2・T (T: 周辺系クロックマシンサイクル ) です。
251
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
6.2
U-TIMER
U-TIMER の概要 , レジスタの構成 / 機能 , および動作について説明します。
■ U-TIMER の概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と , U-TIMER のリロード値の組合せで任意のボーレートを設定できます。
252
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
6.2.1
U-TIMER の概要
MB91F355A/355A/354A/F356B/F357B は , U-TIMER を 5 チャネル内蔵しています。
MB91F353A/351A/352A/353A は , U-TIMER を 4 チャネル内蔵しています。
■ U-TIMER のレジスタ一覧
U-TIMER のレジスタ一覧は , 以下のとおりです。
15 8 7
UTIM
0
(R)
UTIMR
(W)
UTIMC
(R/W)
■ U-TIMER のブロックダイヤグラム
図 6.2-1 に , U-TIMER のブロックダイヤグラムを示します。
図 6.2-1 U-TIMER のブロックダイヤグラム
15
0
UTIMR(リロードレジスタ)
load
15
0
UTIM(U-TIMERレジスタ)
クロック
Φ
(周辺 系クロック)
アンダフロー
コントロール
f.f.
UARTへ
253
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
U-TIMER のレジスタ
6.2.2
U-TIMER で使用するレジスタの構成および機能について説明します。
■ U-TIMER レジスタ (UTIM)
U-TIMER レジスタ (UTIM) のビット構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
UTIM
ch0 アドレス : 0000 0064H
15
14
ch1 アドレス : 0000 006CH
b15
b14
...................................
2
1
0
b2
b1
b0
ch2 アドレス : 0000 0074H
R
アクセス
ch3 アドレス : 0000 00C4H
0
初期値
ch4 アドレス : 0000 00CCH
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
■ リロードレジスタ (UTIMR)
リロードレジスタ (UTIMR) のビット構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
UTIMR
ch0 アドレス : 0000 0064H
15
14
ch1 アドレス : 0000 006CH
b15
b14
...................................
2
1
0
b2
b1
b0
ch2 アドレス : 0000 0074H
W
アクセス
ch3 アドレス : 0000 00C4H
0
初期値
ch4 アドレス : 0000 00CCH
UTIMR は , UTIM がアンダフローしたときに UTIM にリロードされる値を格納するレ
ジスタです。
このレジスタは必ず 16 ビット転送命令でアクセスしてください。
<注意事項>
UART のモード 2 (CLK 同期モード ) で , U-TIMER をボーレートとして使用する場合 ,
UTIMR ( リロードレジスタ ) に "0" を設定しないでください。
254
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
■ U-TIMER コントロールレジスタ (UTIMC)
U-TIMER コントロールレジスタ (UTIMC) のビット構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
UTIMC
ch2 アドレス : 0000 0077H
7
UCC1
R/W
6
-
5
-
4
UTIE
R/W
ch3 アドレス : 0000 00C7H
0
-
-
0
ch0 アドレス : 0000 0067H
ch1 アドレス : 0000 006FH
3
2
UNDR CLKS
R/W
R/W
0
1
UTST
R/W
0
0
UTCR
R/W アクセス
0
1
初期値
ch4 アドレス : 0000 00CFH
UTIMC は , U-TIMER の動作を制御します。
このレジスタは , 必ずバイト転送命令でアクセスしてください。
[ ビット 7] UCC1(U-timer Count Control 1)
UCC1 ビットは , U-TIMER のカウント方法を制御します。
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" に設定して
ください。
[ ビット 6, 5](reserved)
予約ビットです。
[ ビット 4] UTIE(U-Timer Interrupt Enable)
<注意事項>
本製品では U-TIMER 割込みがないので常に "0" を設定してください。
UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。
UTIE
動 作
0
割込み禁止 ( 初期値 )
1
許可
255
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
[ ビット 3] UNDR(UNDeR flow flag)
UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット , また
は "0" 書込みによりクリアされます。リードモディファイライト系命令のリード時は ,
常に "1" が読み出されます。
また , UNDR に対する "1" 書込みは無効です。
[ ビット 2] CLKS(CLocK Select)
<注意事項>
本製品ではこのビットは常に "0" を設定してください。
[ ビット 1] UTST(U-Timer STart)
UTST は , U-TIMER の動作許可ビットです。
UTST
動 作
0
停止。動作中でも "0" 書込みで停止します ( 初期値 ) 。
1
動作。動作中に "1" を書き込んでも動作は続行されます。
[ ビット 0] UTCR(U-Timer CleaR)
UTCR に "0" を書き込むと U-TIMER は 0000H にクリアされます (f.f. も "0" にクリア )。
常に "1" が読まれます。
<注意事項>
• ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロー
ドします。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする
と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。
• 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。この
ため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART が誤動作する可
能性があります。
出力クロックを使用している場合には , 動作中にクリアビットによるクリアを行わないで
ください。
• U-TIMER コントロールレジスタのビット 1 (U-TIMER スタートビット :UTST) および ,
ビット0 (U-TIMERのクリアビット:UTCR) をタイマ停止状態で同時にアサートすると,
クリアした後のカウンタロードのタイミングで同レジスタのビット 3 ( アンダフローフ
ラグ :UNDR) がセットします。また , 内部ボーレートクロックは同タイミングで "H" レ
ベルになります。
• アンダフローフラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は , 無効となります。
• UTIMC(U-TIMer Control register) のビット 4(UTIE) およびビット 2(CLKS) には常に "0"
を書き込んでください。
• U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合には ,
旧データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次のリ
ロードのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
256
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
U-TIMER の動作説明
6.2.3
U-TIMER の動作について説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER(U-TIMER0 -> UART0, U-TIMER1 -> UART1, U-TIMER2 ->
UART2, U-TIMER3 -> UART3, U-TIMER4 -> UART4) のアンダフローフリップフロップ
( 図 6.2-1 中の f.f.) をボーレート用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 8 分周して使用します。
Φ n … UTIMR (リロード 値)
bps = ──────── ………
UCC1=0 時 (2n+2) × 8
Φ … 周辺系マシンクロック周波数
(ギアにより変動)
Φ
bps = ──────── ………
UCC1=1 時 (2n+3) × 8
最大 bps 周辺系 クロック(CLKP)
25MHz時
1562500bps ● CLK 同期モード
Φ bps = ──────── ………
(2n+2)
UCC1=0 時 Φ
bps = ──────── ………
(2n+3)
UCC1=1 時 n … UTIMR (リロード 値)
Φ … 周辺系マシンクロック周波数
(ギアにより変動)
最大 bps 周辺系 クロック(CLKP) 25MHz時
12500000bps
<注意事項>
UART のモード 2 (CLK 同期モード ) で , U-TIMER をボーレートとして使用する場合 ,
UTIMR ( リロードレジスタ ) に "0" を設定しないでください。
257
第 6 章 8/16 ビットアップダウン カウンタ / タイマ・ U-TIMER
258
第7章
16 ビットフリーランタイマ・
16 ビットリロードタイマ
この章では , 16 ビットフリーランタイマと 16 ビッ
トリロードタイマの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
7.1 16 ビットフリーランタイマ
7.2 16 ビットリロードタイマ
259
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
7.1
16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 , レジスタの構成 / 機能 , および動作について説明
します。
■ 16 ビットフリーランタイマの概要
16 ビットフリーランタイマのカウント値はアウトプットコンペア , インプットキャプ
チャの基本時間 ( ベースタイマ ) として使用されます。
260
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
16 ビットフリーランタイマの構造
7.1.1
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール・ステータ
スレジスタより構成されています。
• カウントクロックは 4 種類から選択可能です。
• カウンタオーバフローにより割込みを発生することができます。
• モード設定により , アウトプットコンペアのコンペアレジスタ 0 の値との一致に
よるカウンタの初期化が可能です。
■ 16 ビットフリーランタイマのレジスタ一覧
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
STOP MODE
タイマデータレジスタ上位
タイマデータレジスタ下位 (TCDT)
タイマコントロールステータス
CLK0 レジスタ下位 (TCCS)
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 7.1-1 に , 16 ビットフリーランタイマのブロックダイヤグラムを示します。
図 7.1-1 16 ビットフリーランタイマのブロックダイヤグラム
割込み
ECLK
IVF
IVFE
STOP
MODE
CLR
CLK1
CLK0
分周器
φ
FRCK
Rバス
クロック
選択
16ビットフリーランタイマ
(TCDT)
クロック
内部回路へ(T15~T00)
コンパレータ0
261
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
7.1.2
16 ビットフリーランタイマのレジスタ
16 ビットフリーランタイマで使用するレジスタの構成および機能について説明しま
す。
■ タイマデータレジスタ (TCDT)
タイマデータレジスタは , 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
7
T07
R/W
6
T06
R/W
5
T05
R/W
4
T04
R/W
3
T03
R/W
2
T02
R/W
1
T01
R/W
0
T00
R/W
初期値
0000H
カウンタ値は , リセット時に "0000" にクリアされます。このレジスタに書き込むこと
でタイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってください。このレジス
タは , ワードアクセスしてください。
16 ビットフリーランタイマの初期化は次の要因で行われます。
• リセットによる初期化
• コントロール・ステータスレジスタのクリア (CLR) による初期化
• コンペアクリアレジスタ (ch.0のコンペアレジスタ) 値とタイマカウンタ値の一致に
よる初期化 ( モード設定が必要です )
■ タイマコントロールステータスレジスタ (TCCS)
タイマコントロールステータスレジスタ (TCCS) のビット構成は , 以下のとおりです。
TCCS
bit
7
アドレス : 0000D7H ECLK
R/W
I 初期値
(0)
6
5
IVF
R/W
IVFE
R/W
(0)
(0)
4
3
STOP MODE
R/W
R/W
(0)
(0)
2
1
0
CLR
R/W
CLK1
R/W
CLK0
R/W
(0)
(0)
(0)
[ ビット 7] ECLK
16 ビットフリーランタイマのカウントクロックソースを内部か外部を選択するビッ
トです。
本ビットに書込み後すぐにクロックは変更されますのでアウトプットコンペア , イ
ンプットキャプチャが停止状態のときに変更してください。
ECLK
262
クロック選択
0
内部クロックソースを選択 ( 初期値 )
1
外部端子 (FRCK) よりクロックを入力します
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
<注意事項>
• 内部クロックを選択した場合は , ビット 1, ビット 0(CLK1, CLK0) にカウントクロック
の設定を行ってください。このカウントクロックがベースクロックとなります。また ,
FRCKよりクロックを入力する場合は, 対応するDDRビットを"0"に設定してください。
• 外部クロックに必要な最低パルス幅は , 2・T (T: 周辺系クロックマシンサイクル ) です。
外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割
込みは次のクロックで発生します。そのため , コンペア一致出力 , および割込みを発生
させるためには , コンペア一致後最低 "1 クロック " 入力する必要があります。
[ ビット 6] IVF
16 ビットフリーランタイマの割込み要求フラグです。
16ビットフリーランタイマがオーバフローを起こしたとき, またはモード設定により
コンペアレジスタ 0 とコンペアマッチしてカウンタクリアされたときに , 本ビットは
"1" にセットされます。
割込み要求許可ビット ( ビット 5:IVFE) がセットされていると割込みが発生します。
本ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー
ドモディファイライト系命令では , 常に "1" が読めます。
IVF
割込み要求フラグ
0
割込み要求なし ( 初期値 )
1
割込み要求あり
[ ビット 5] IVFE
16 ビットフリーランタイマの割込み許可ビットです。
本ビットが "1" のとき , 割込みフラグ ( ビット 6:IVF) が "1" セットされると割込みが
発生します。
IVFF
割込みイネーブル
0
割込み禁止 ( 初期値 )
1
割込み許可
[ ビット 4] STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。
本ビットに "1" 書込み時にタイマのカウント停止します。
本ビットに "0" 書込み時にタイマのカウントを開始します。
STOP
カウント動作
0
カウント許可 ( 動作 ) ( 初期値 )
1
カウント禁止 ( 停止 )
263
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
[ ビット 3] MODE
16 ビットフリーランタイマの初期化条件を設定します。
本ビットが "0" のときは , リセットとクリアビット ( ビット 2:CLR) でカウンタ値を初
期化することができます。
本ビットが "1" のときは , リセットとクリアビット ( ビット 2:CLR) のほかにアウト
プットコンペアのコンペアレジスタ0の値との一致によりカウンタ値を初期化するこ
とができます。
MODE
リセットの初期化
0
リセット , クリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , コンペアレジスタ 0 による初期化
<注意事項>
カウンタ値の初期化はカウント値の変化点で行われます。
[ ビット 2] CLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
本ビットに "1" 書込み時にカウンタを "0000H" に初期化します。
本ビットに "0" を書き込んでも意味を持ちません。読出し値は , 常に "0" です。
CLR
フラグの意味
0
意味を持ちません ( 初期値 )
1
カウンタ値を "0000H" に初期化します
<注意事項>
カウンタ値の初期化は , カウント値の変化点で行われます。タイマ停止中に初期化する場
合は , データレジスタに "0000H" を書き込んでください。
264
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
[ ビット 1, 0] CLK1, CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。
本ビットに書込み後 , すぐにクロックは変更されますのでアウトプットコンペア , イ
ンプットキャプチャが停止状態のときに変更してください。
CLK1
CLK0
カウント
クロック
Φ=25MHz
Φ=12.5MHz
Φ=6.25MHz
Φ=3.125MHz
0
0
Φ/4
160 ns
320 ns
640 ns
1.28 µs
0
1
Φ/16
640 ns
1.28 µs
2.56 µs
5.12 µs
1
0
Φ/32
1.28 µs
2.56 µs
5.12 µs
10.24 µs
1
1
Φ/64
2.56 µs
5.12 µs
10.24 µs
20.48 µs
Φ =マシンクロック
265
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
16 ビットフリーランタイマの動作説明
7.1.3
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。
このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットインプットキャプ
チャの基準時間となります。
■ 16 ビットフリーランタイマのカウンタクリア
カウンタ値は , 次の条件でクリアされます。
• オーバフローが発生したとき
• コンペアクリアレジスタ ( アウトプットコンペア Ch.0 のコンペアレジスタ ) 値とコ
ンペアマッチしたとき ( モード設定が必要 )
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• タイマ停止中に TCDT に "0000H" を書き込んだとき
• リセットをかけたとき
割込みはオーバフローが発生した時 , カウンタの値がコンペアクリアレジスタの値と
一致した時に発生します ( コンペアマッチ割込みは , モード設定が必要です ) 。
図 7.1-2 にオーバフローによるカウンタクリアを , 図 7.1-3 にコンペアクリアレジスタ
値とコンペアマッチしたときのカウンタクリアを示します。
図 7.1-2 オーバフローによるカウンタクリア
カウンタ 値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
リセット
割込み
266
時間
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
図 7.1-3 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア
カウンタ値
FFFFH
一致
BFFFH
一致
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ
BFFFH
割込み
■ 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行
われます。
リセットとソフトウェアでのカウンタクリアはクリア発生とともに行われますが , コ
ンペアクリアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期
して行われます。
図 7.1-4 に , 16 ビットフリーランタイマのクリアタイミングを示します。
図 7.1-4 16 ビットフリーランタイマのクリアタイミング
Φ
コンペアクリア
レジスタ値
N
カウンタクリア
カウンタ値
N
0000H
267
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ
ステムクロックで同期化したのち内部カウントクロックの立下りでカウントされま
す。
図 7.1-5 に , 16 ビットフリーランタイマのカウントタイミングを示します。
図 7.1-5 16 ビットフリーランタイマのカウントタイミング
Φ
外部クロック入力
内部カウントクロック
N
カウンタ値
N+1
<注意事項>
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラグ
セットが優先しクリア動作は無効となります。
• タイマコントロールステータスレジスタのビット 2 ( カウンタ初期ビット :CLR) は "1"
が書き込まれると , 内部カウンタをクリアするタイミングまで , 値を保持し , そのタイ
ミングで自身もクリアします。クリアタイミングと "1" の書込みが重複した場合には ,
書込みが優先し , カウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続
けます。
• カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有効
となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジスタに
0000H を書き込むようにしてください。
268
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
7.2
16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
■ 16 ビットリロードタイマの概要
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内部
カウント , クロック作成用プリスケーラ , およびコントロールレジスタで構成されてい
ます。
269
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
16 ビットリロードタイマの構造
7.2.1
クロックソースとして内部クロック 3 種類 ( マシンクロックの 2 / 8 / 32 分周 , ただ
し , ch3 のみ 64/128 分周まで選択可能 ) , 外部イベントから選択できます。
• 割込みによる DMA 転送の起動が可能です。
• 本タイマを 4 チャネル内蔵しています。
• MB91F353A/351A/352A/353A にはタイマ出力 (TOT0 ∼ TOT3) はありません。
■ 16 ビットリロードタイマのレジスタ一覧
16 ビットリロードタイマのレジスタ一覧は , 以下のとおりです。
15
14
13
12
11
10
9
8
-
-
予約
CSL2
CSL1
CSL0
予約
予約
(ch3 のみ )
7
6
5
4
3
2
1
0
予約
-
OUTL
RELD
INTE
UF
CNTE
TRG
15
コントロールステータスレジスタ
(TMCSR)
0
16 ビットタイマレジスタ (TMR)
15
0
16 ビットリロードレジスタ (TMRLR)
270
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ 16 ビットリロードタイマのブロックダイヤグラム
図 7.2-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 7.2-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビットリロードレジスタ (TMRLR)
7
リロード
16
16ビットダウンカウンタ (TMR)
RELD
UF
OUTL
OUT
CTL.
カウントイネーブル
R-bus
CSL2
クロックセレクタ
3
リトリガ
INTE
UF
CSL1
CNTE
CSL0
TRG
EXCK
外部タイマ出力
(TOT0 to TOT3)
IN CTL.
T0E0 to T0E3
φ
φ
−
−
φ
φ
φ
−
−
−
IRQ
PFRK内のビット
プリスケーラ
クリア
(ch.3のみ)
マシンクロック入力
( 注意事項 ) MB91F353A/351A/352A/353A は外部タイマ出力 (TOT0 ∼ TOT3) がありません。
271
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
7.2.2
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマで使用するレジスタの構成および機能について説明しま
す。
■ コントロールステータスレジスタ (TMCSR)
コントロールステータスレジスタ (TMCSR) のビット構成は , 以下のとおりです。
TMCSR
アドレス :
ch0: 00004EH
ch1: 000056H
ch2: 00005EH
ch3: 0000AEH
15
14
-
-
7
13
12
11
10
9
8
初期値
( 予約 ) CSL2
CSL1
CSL0
予約
予約
----0000 00000000B
-
(R/W)
R/W
R/W
R/W
R/W
R/W
6
5
4
3
2
1
0
予約
-
OUTL
RELD
INTE
UF
CNTE
TRG
R/W
R
R/W
R/W
R/W
R/W
R/W
R/W
16 ビットタイマの動作モードおよび割込みの制御をします。
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE=0 のときに行うようにしてく
ださい。
同時書込みは可能です。
[ ビット 13] 予約
予約ビットです。必ず "0" を設定してください。
なお , ch0, ch1, ch2, はこのビットが無く , ch3 のみにあります。
[ ビット 12, 11, 10] CSL2, CSL1, CSL0(Conut source SeLect)
カウントソースセレクトビットです。カウントソースは , 内部クロックと外部イベン
トを選択できます。表 7.2-1 に , 選択可能なカウントソースを示します。
また外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1,
MOD0 ビットにより設定されます。
リロードタイマ (ch0 ∼ ch2) には CSL2 レジスタは存在しません。ch3 のみ CSL2 レジ
スタが存在し 64/128 分周まで選択可能です。
表 7.2-1 CSL ビット設定カウントソース
CSL2
CSL1
CSL0
0
0
0
内部クロック φ/21 (ch0 ∼ ch3)
0
0
1
内部クロック φ/23 (ch0 ∼ ch3)
0
1
0
内部クロック φ/25 (ch0 ∼ ch3)
0
1
1
設定禁止 (ch0 ∼ ch3)
1
0
1
内部クロック φ/26 (ch3 のみ )
1
1
0
内部クロック φ/27(ch3 のみ )
カウントソース (φ: マシンクロック )
ただし , 表に記載されていない設定は禁止です。また , ch0, ch1, ch2 には CSL2 はあり
ません。
272
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
[ ビット 9, 8, 7] 予約
予約ビットです。必ず "0" を設定してください。
[ ビット 6] (reserved)
未使用ビットです。読出し時に常に "0" が読めます。
[ ビット 5] OUTL:
外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと , "1" のとき
では出力レベルが逆になります。
表 7.2-2 に , TOEx, OUTL, RELD の設定方法を示します。
表 7.2-2 RTIM-5 TOEx, OUTL, RELD の設定方法
TOEx
OUTL
RELD
0
X
X
出力禁止
1
0
0
カウント中 "H" の矩形波
1
1
0
カウント中 "L" の矩形波
1
0
1
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
表中の "X" は , 任意の値を示します。
TOEx は PFR (Port Function Register) 中の TOE0 ∼ 3 を示します。
[ ビット 4] RELD:
リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H →
FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロードしてカ
ウント動作を続けます。
"0" のときワンショットモードになり , カウンタの値が 0000H → FFFFH へのアンダフ
ローによりカウント動作を停止します。
[ ビット 3] INTE:
割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発生
します。"0" のときは , 割込み要求を発生しません。
[ ビット 2] UF:
タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに
より "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" 書込みは , 意味がありません。
リードモディファイライト系命令における読出し時には , "1" が読み出されます。
[ ビット 1] CNTE:
タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動トリ
ガ待ち状態になります。"0" 書込みによりカウント動作は停止します。
[ ビット 0] TRG:
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。
このレジスタによるトリガ入力は , CNTE="1" のときのみ有効となります。
CNTE="0" のときには , 何も起こりません。
273
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ 16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタ (TMR) のビット構成は , 以下のとおりです。
TMR
15
アドレス :
ch0: 00004AH
ch1: 000052H
R
ch2: 00005AH
ch3: 0000AAH
0
初期値
XXXXH
R
R
R
R
R
R
R
16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で
す。
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタ (TMRLR) のビット構成は , 以下のとおりです。
TMRLR
15
アドレス :
ch0: 000048H
ch1: 000050H
W
ch2: 000058H
ch3: 0000A8H
0
初期値
XXXXH
W
W
W
W
W
W
W
16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。
初期値は不定です。このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行っ
てください。
274
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
7.2.3
16 ビットリロードレジスタの動作説明
16 ビットリロードレジスタの動作について説明します。
■ クロック動作
クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシンク
ロックの 2/8/32 分周のクロックから選択することができます ( ただし , ch3 のみ 64・128
分周のクロックまで選択可能です ) 。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE="1") 動作モードにか
かわらず常に有効です。
図 7.2-2 にカウンタの起動および動作を示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T (T: 周辺系クロックマシンサイクル ) の時間がかかります。
図 7.2-2 カウンタの起動および動作
カウントクロック
リロードデータ
カウンタ
-1
-1
-1
データロード
CNTE(ビット)
TRG(ビット)
T
275
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ アンダフロー動作
カウンタの値が 0000H から FFFFH になるときをアンダフローとしています。したがっ
て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生します。
アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ
スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の
ときカウンタは , FFFFH で停止します。
アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが
"1" のとき割込み要求を発生します。
図 7.2-3 にアンダフロー動作を示します。
図 7.2-3 アンダフロー動作
カウントクロック
カウンタ
0000 H
リロードデータ
データロード
アンダフローセット
[RELD=1]
カウントクロック
カウンタ
0000 H
アンダフローセット
[RELD=0]
276
FFFF H
-1
-1
-1
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ 出力端子機能
TOT(0-3) 出力端子は , リロードモード時はアンダフローにより反転するトグル出力と
して , ワンショットモード時はカウント中を示すパルス出力として機能します。出力極
性はレジスタの OUTL ビットにより設定できます。OUTL="0" のときトグル出力は , 初
期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OTUL="1" に
すると出力波形は , 反転します。
( 注意事項 ) MB91F353A/351A/352A/353A には TOT(0-3) 出力機能がありません。
図 7.2-4 と図 7.2-5 に , 出力端子機能を示します。
図 7.2-4 出力端子機能 (1)
カウント開始
アンダフロー
OUTL=1 のときは反転
TOT(0-3)
CNTE
汎用ポート
起動トリガ
[ RE LD=1 ,OUTL=0
]
図 7.2-5 出力端子機能 (2)
カウント開始
アンダフロー
OUTL=1 で反転
TOT(0-3)
CNTE
汎用ポート
起動トリガ
起動トリガ待ち状態
[ RE LD=0 ,OUTL=0 ]
277
第 7 章 16 ビットフリーランタイマ・16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に
よって決まっています。
設定可能な状態として CNTE="0", WAIT="1" の停止状態 (STOP
状態 ) , CNTE="1", WAIT="1" の起動トリガ待ち状態 (WAIT 状態 ) , CNTE= "1", WAIT=
"0" の動作状態 (RUN 状態 ) があります。
図 7.2-6 に各状態の遷移を示します。
図 7.2-6 カウンタ状態遷移
リセ ット
ハードウェアによる状態遷移
レジスタアクセスによる状態遷移
STOP
ST
OP
CNTE=0,WAIT=1
カウンタ:停止時の値を保持
リセット直後は不定
CNTE="1"
TRG="0"
WAIT
WA
CNTE="1"
TRG="1"
CNTE=1,WAIT=1
RUN
カウンタ:停止時の値を保持
リセット直後リロードする
までは不定
TRG="1"
LOAD
RELD・UF
CNTE=1,WAIT=0
カウンタ:動作
T RG="1"
CNTE=1,WAIT=0
リロードレジスタの内容を
カウンタへロード
RELD・UF
ロード終了
■ その他
リロードタイマのチャネル 2 の TOT2 出力は , LSI 内部で A/D コンバータに接続されて
います。したがって , リロードレジスタに設定された周期で A/D 変換を起動すること
が可能です。
<注意事項>
• 内部プリスケーラは , コントロールステータスレジスタのビット 1( タイマ許可 :CNTE)
が "1" に設定されている状態でトリガがかけられることにより動作可能になります。
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラグ
セットが優先し , クリア動作は無効になります。
• 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった場
合には , 旧データがカウンタにロードされ新データがカウンタにロードされるのは , 次
のリロードのときになります。
• 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロー
ド ( リロード ) 動作の方が優先されます。
278
第8章
PPG タイマ
この章では , PPG(Programable Pulse Generator)
タイマの概要 , レジスタの構成 / 機能 , および動作
について説明します。
8.1 PPG タイマの概要
8.2 PPG タイマのレジスタ
8.3 PPG タイマの動作説明
279
第 8 章 PPG タイマ
8.1
PPG タイマの概要
PPG(Programable Pulse Generator) は , 精度の高い PWM 波形を効率良く出力す
ることができます。
MB91F355A/355A/354A/F356B/F357B は , PPG タイマを 6 チャネル内蔵していま
す。MB91F353A/351A/352A/353A は , PPG タイマを 3 チャネル内蔵しています。
■ PPG タイマの特長
• 各チャネルは , 16 ビットダウンカウンタ , 周期設定用バッファ付き 16 ビットデータ
レジスタ , デューティ設定用バッファ付き 16 ビットコンペアレジスタ , 端子制御部
から構成されます。
• 16 ビットダウンカウンタのカウントクロックは , 以下の 4 種類から選択が可能です。
- 周辺系クロック
- φ
- φ/4
- φ/16
- φ/64
• カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化することができます。
• チャネルごとに PPG 出力 (PPG0 ∼ PPG5) があります。
( 注意事項 ) MB91F353A/351A/352A/353A は PPG 出力 (PPG0, 2, 4) の 3 チャネルあ
ります。PPG1, 3, 5 はありません。
• レジスタ概要
- 周期設定レジスタ : バッファ付き , リロード用データレジスタ
バッファからの転送は起動トリガ検出およびカウンタボローにより行います。
カウンタボローにより PPG 出力は反転します。
- デューティ設定レジスタ : バッファ付き , コンペアレジスタ
本レジスタ値とカウンタ値一致により PPG 出力は反転します。
• 端子制御概要
- デューティ一致で , "1" にセット ( 優先 )
- カウンタボローで , "0" にリセット
- 出力値固定モード : オール "L" ( または "H") を簡単に出力できます。
- 極性指定可能
• 割込み要求は , 以下の組合せから選択して発生することができます。
- 本タイマ起動 ( ソフトトリガ もしくはトリガ入力 )
- カウンタボロー発生 ( 周期一致 )
- デューティ一致発生
- カウンタボロー発生 ( 周期一致 ) または , デューティ一致発生
• ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定
できます。また , 動作中の再起動も設定可能です。
280
第 8 章 PPG タイマ
■ PPG タイマのレジスタ一覧
図 8.1-1 に , PPG タイマのレジスタ一覧を示します。
図 8.1-1 PPG タイマのレジスタ一覧
15
アドレス
00000118H
GCN10
0 Access
R/W ジェネラルコントロールレジスタ 10
0000011BH
GCN20
R/W ジェネラルコントロールレジスタ 20
00000120H
PTMR0
R
ch0 PPG タイマレジスタ
00000122H
PCSR0
W
ch0 PPG 周期設定レジスタ
00000124H
PDUT0
W
ch0 PPG デューティ設定レジスタ
00000126H
PCNH0
PCNL0
R/W ch0 コントロールステータスレジスタ
00000128H
PTMR1
R
ch1 PPG タイマレジスタ
0000012AH
PCSR1
W
ch1 PPG 周期設定レジスタ
0000012CH
PDUT1
W
ch1 PPG デューティ設定レジスタ
0000012EH
PCNH1
PCNL1
R/W ch1 コントロールステータスレジスタ
00000130H
PTMR2
R
ch2 PPG タイマレジスタ
00000132H
PCSR2
W
ch2 PPG 周期設定レジスタ
00000134H
PDUT2
W
ch2 PPG デューティ設定レジスタ
00000136H
PCNH2
PCNL2
R/W ch2 コントロールステータスレジスタ
00000138H
PTMR3
R
ch3 PPG タイマレジスタ
0000013AH
PCSR3
W
ch3 PPG 周期設定レジスタ
0000013CH
PDUT3
W
ch3 PPG デューティ設定レジスタ
0000013EH
PCNH3
PCNL3
R/W ch3 コントロールステータスレジスタ
00000140H
PTMR4
R
ch4 PPG タイマレジスタ
00000142H
PCSR4
W
ch4 PPG 周期設定レジスタ
00000144H
PDUT4
W
ch4 PPG デューティ設定レジスタ
00000146H
PCNH4
PCNL4
R/W ch4 コントロールステータスレジスタ
00000148H
PTMR5
R
ch5 PPG タイマレジスタ
0000014AH
PCSR5
W
ch5 PPG 周期設定レジスタ
0000014CH
PDUT5
W
ch5 PPG デューティ設定レジスタ
0000014EH
PCNH5
PCNL5
R/W ch5 コントロールステータスレジスタ
281
第 8 章 PPG タイマ
■ PPG タイマのブロックダイヤグラム ( 全体構成 , 1 チャネル分 )
図 8.1-2 に , PPG タイマのブロックダイヤグラム ( 全体構成 ) を示します。
図 8.1-2 PPG タイマのブロックダイヤグラム ( 全体構成 )
16ビットリロード
タイマ ch0
TRG 入力
16ビットリロード
タイマ ch1
ジェネラル
コントロール
レジスタ 10
(要因選択)
ジェネラル
コントロール
レジスタ 20
外部 TRG0-3
PPG0
PPG タイマ
ch0
TRG 入力
PPG1
PPG タイマ
ch1
TRG 入力
PPG2
PPG タイマ
4
ch2
TRG 入力
PPG3
PPG タイマ
ch3
TRG 入力
外部 TRG4
PPG4
PPG タイマ
ch4
TRG 入力
外部 TRG5
PPG5
PPG タイマ
ch5
( 注意事項 ) MB91F353A/351A/352A/353A には PPG1, PPG3, PPG5 がありません。外部
TRG5 もありません。
図 8.1-3 に , PPG タイマのブロックダイヤグラム (1 チャネル分 ) を示します。
図 8.1-3 PPG タイマのブロックダイヤグラム (1 チャネル分 )
PCRS
PDUT
プリスケーラ
Comp
1/1
1/4
1/16
1/64
CK
ロード
16ビット
ダウンカウンタ
スタート ボロー
PPG マスク
PPG 出力
S
Q
R
周辺系クロック
反転ビット
TRG 入力
エッジ検出
ソフトトリガ
282
割込選択
イネーブル
IRQ
第 8 章 PPG タイマ
8.2
PPG タイマのレジスタ
PPG タイマで使用するレジスタの構成および機能について説明します。
■ PPG タイマのレジスタの概要
PPG タイマには , 以下の 6 種類のレジスタがあります。
• コントロールステータスレジスタ
• PCSR (PPG 周期設定レジスタ )
• PDUT (PPG デューティ設定レジスタ )
• PTMR (PPG タイマレジスタ )
• ジェネラルコントロールレジスタ 10
• ジェネラルコントロールレジスタ 20
283
第 8 章 PPG タイマ
8.2.1
コントロールステータスレジスタ (PCNH/PCNL)
MB91F353A/351A/352A/353A では , コントロールステータスレジスタ ch1, ch3,
ch5 の設定は無効です。
■ コントロールステータスレジスタの構成
コントロールステータスレジスタの構成は , 以下のとおりです。
PCNH
14
13
12
ビット 15
アドレス : ch0 000126H CNTE STGR MDSE RTRG
R/W
R/W
R/W
ch1 00012EH R/W
ch2 000136H
0
0
0
0
ch3 00013EH
X
X
○
○
ch4 000146H
ch5 00014EH
11
CKS1
R/W
0
X
10
9
CKS0 PGMS
R/W
R/W
0
X
0
○
8
-
←属性
←初期値
← 動作中の書換
PCNL
7
ビット
アドレス : ch0 000127H EGS1
ch1 00012FH R/W
ch2 000137H
0
ch3 00013EH
X
ch4 000147H
ch5 00014FH
6
5
4
3
2
1
EGS0
R/W
IREN
R/W
IRQF
R/W
IRS1
R/W
IRS0
R/W
-
0
0
X
0
0
0
0
X
0
←初期値
○
○
X
X
-
X
←動作中の書換
OSEL
R/W ←属性
[ ビット 15] CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
値
内 容
0
停止 ( 初期値 )
1
許可
[ ビット 14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことによりソフトウェアトリガが掛かります。
STGR ビットの読出し値は , 常に "0" です。
[ ビット 13] MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択し
ます。
値
284
内 容
0
PWM 動作 ( 初期値 )
1
ワンショット動作
第 8 章 PPG タイマ
[ ビット 12] RTRG: 再起動許可ビット
ソフトウェアトリガ , またはトリガ入力による再起動を許可するビットです。
値
内 容
0
再起動禁止 ( 初期値 )
1
再起動許可
[ ビット 11, 10] CKS1, CKS0: カウンタクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。
CKS1
CKS0
0
0
Φ ( 初期値 )
0
1
Φ/4
1
0
Φ/16
1
1
Φ/64
周期
Φ: 周辺系マシンクロック
[ ビット 9] PGMS:PPG 出力マスク選択ビット
このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値
に関わらず PPG 出力を "0" または , "1" にマスクすることができます。
表 8.2-1 に , PGMS に "1" 書込み時の PPG 出力を示します。
表 8.2-1 PGMS に "1" 書込み時の PPG 出力
極性
PPG 出力
通常極性
"L" 出力
反転極性
"H" 出力
通常極性時にオール "H" または , 反転極性時にオール "L" を出力したい場合は , 周期
設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の反転
を出力することができます。
[ ビット 8] 未使用ビットです。
[ ビット 7, 6] EGS1, EGS0: トリガ入力エッジ選択ビット
ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。
どのモードを選択していてもソフトトリガのビットに"1"を書き込むとソフトトリガ
は有効になります。
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
エッジ選択
285
第 8 章 PPG タイマ
[ ビット 5] IREN: 割込み要求許可ビット
値
内 容
0
禁止 ( 初期値 )
1
許可
[ ビット 4] IRQF: 割込み要求フラグ
ビット 5 IREN が許可されていてビット 3, 2 IRS1, IRS0 にて選択した割込み要因が発
生すると , 本ビットがセットされ CPU に割込み要求を発生します。
本ビットは , "0" 書込みによりクリアされます。
"1" を書き込んでもビット値は変化しません。
リードモディファイライト系命令におけるリード値は, ビット値に関わらず"1"です。
[ ビット 3, 2] IRS1, IRS0: 割込み要因選択ビット
ビット 4IRQF をセットする要因を選択します。
IRS1
IRS0
0
0
ソフトウェアトリガ , またはトリガ入力あり ( 初期値 )
0
1
カウンタボロー発生 ( 周期一致 )
1
0
デューティ一致発生
1
1
カウンタボロー発生 ( 周期一致 ) , またはデューティ一致発生
割込み要因
[ ビット 1](reserved)
未使用ビットです。
[ ビット 0] OSEL: PPG 出力極性指定ビット
PPG 出力の極性を設定します。
ビット 9PGMS との組合せで , 以下のようになります。
286
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
PPG 出力
極性
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティ一致
カウンタボロー
第 8 章 PPG タイマ
PPG 周期設定レジスタ (PCSR)
8.2.2
PPG 周期設定レジスタ (PCSR) は , 周期を設定するためのバッファ付きレジスタです。
MB91F353A/351A/352A/353A では , PPG 周期設定レジスタ ch1, ch3, ch5 の設定は無
効です。
■ PPG 周期設定レジスタ (PCSR) の構成
PPG 周期設定レジスタ (PCSR) の構成は , 以下のとおりです。
PCSR
ビット
アドレス : ch0 000122H
ch1 00012AH
ch2 000132H
ch3 00013AH
ch4 000142H
ch5 00014AH
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
属性→ W
初期値→不定
バッファからの転送は , カウンタボローで行われます。
<注意事項>
• 周期設定レジスタの初期設定時 , および書換え時は , 周期設定レジスタの書込み後 , 必
ずデューティ設定レジスタへの書込み動作を行ってください。
• 本レジスタは , 16 ビットデータでアクセスしてください。
287
第 8 章 PPG タイマ
PPG デューティ設定レジスタ (PDUT)
8.2.3
PPG デューティ設定レジスタ (PDUT) は , デューティを設定するためのバッファ付
きレジスタです。
MB91F353A/351A/352A/353A では , PPG デューティ設定レジスタ ch1, ch3, ch5
の設定は無効です。
■ PPG デューティ設定レジスタ (PDUT) の構成
PPG デューティ設定レジスタ (PDUT) の構成は , 以下のとおりです。
PDUT
ビット
アドレス : ch0 000124H
ch1 00012CH
ch2 000134H
ch3 00013CH
ch4 000144H
ch5 00014CH
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
属性→ W
初期値→不定
バッファからの転送は , カウンタボローで行われます。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
<注意事項>
• PCSR < PDUT となるような値を設定しないでください。
PPG 出力は不定となります。
• 本レジスタは , 16 ビットデータでアクセスしてください。
288
第 8 章 PPG タイマ
PPG タイマレジスタ (PTMR)
8.2.4
PPG タイマレジスタ (PTMR) は , 16 ビットダウンカウンタの値を読み出すことがで
きます。MB91F353A/351A/352A/353A では , PPG タイマレジスタ ch1, ch3, ch5
の設定は無効です。
■ PPG タイマレジスタ (PTMR) の構成
PPG タイマレジスタ (PTMR) の構成は , 以下のとおりです。
PTMR
ビット
アドレス : ch0 000120H
ch1 000128H
ch2 000130H
ch3 000138H
ch4 000140H
ch5 000148H
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
属性→ R
初期値→ FFFFH
<注意事項>
本レジスタは , 16 ビットデータでアクセスしてください。
289
第 8 章 PPG タイマ
ジェネラルコントロールレジスタ 10 (GCN10)
8.2.5
ジェネラルコントロールレジスタ 10 は , PPG タイマのトリガ入力の要因を選択する
レジスタです。
■ ジェネラルコントロールレジスタ 10 の構成
ジェネラルコントロールレジスタ 10 の構成は , 以下のとおりです。
GCN10 ビット
アドレス: 000118H 15 14 13 12 11 10 9 8
TSEL33:30
TSEL23:20
R/W R/W R/W R/W R/W R/W
0 0 1 1 0 0
R/W R/W
1 0 ←属性
←初期値
ビット 7 6 5 4 3 2 1 0 TSEL13:10
TSEL03:00
R/W R/W R/W R/W R/W R/W R/W R/W ←属性
0 0 0 1 0 0 0 0 ←初期値
PPG ch4, 5 については本レジスタに対応する機能はありません。
[ ビット 15 ∼ 12] TSEL33 ∼ TSEL30:ch3 トリガ入力選択ビット
( 注意事項 )
MB91F353A/351A/352A/353A は ch3 トリガ入力選択ビットの指定は無
効です。
TSEL33-30
290
ch3 トリガ入力
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット ( 初期値 )
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
X
設定禁止
1
0
0
0
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
第 8 章 PPG タイマ
[ ビット 11 ∼ 8] TSEL23 ∼ TSEL20:ch2 トリガ入力選択ビット
TSEL23-20
ch2 トリガ入力
0
0
0
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット ( 初期値 )
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
0
1
0
X
0
設定禁止
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
[ ビット 7 ∼ 4] TSEL13 ∼ TSEL10:ch1 トリガ入力選択ビット
TSEL13-10
0
0
0
ch1 トリガ入力
0
GCN2 の EN0 ビット
0
0
0
1
GCN2 の EN1 ビット ( 初期値 )
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
0
1
0
X
0
設定禁止
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
( 注意事項 ) MB91F353A/351A/352A/353A は ch1 トリガ入力選択ビットの指定は無効で
す。
[ ビット 3 ∼ 0] TSEL03 ∼ TSEL00:ch0 トリガ入力選択ビット
TSEL03-00
ch0 トリガ入力
0
0
0
0
GCN2 の EN0 ビット ( 初期値 )
0
0
0
1
GCN2 の EN1 ビット
0
0
1
0
GCN2 の EN2 ビット
0
0
1
1
GCN2 の EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch0
0
1
0
1
16 ビットリロードタイマ ch1
0
1
1
0
1
0
X
0
設定禁止
外部 TRG0
1
0
0
1
外部 TRG1
1
0
1
0
外部 TRG2
1
0
1
1
外部 TRG3
1
1
X
X
設定禁止
291
第 8 章 PPG タイマ
ジェネラルコントロールレジスタ 20 (GCN20)
8.2.6
ジェネラルコントロールレジスタ 20 は , ソフトウェアによって , 起動トリガを発生
させるためのレジスタです。
■ ジェネラルコントロールレジスタ 20 の構成
ジェネラルコントロールレジスタ 20 の構成は , 以下のとおりです。
GCN20
ビット
アドレス : 00011BH
7
6
5
4
3
2
1
0
-
-
-
-
EN3
EN2
EN1
EN0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
← 属性
←初期値
PPG ch4, 5 については本レジスタに対応する機能はありません。
GCN10 で本レジスタの EN ビットを選択した場合 , レジスタの値がそのまま PPG タイ
マのトリガ入力に伝わります。
コントロールステータスレジスタの EGS1, EGS0 ビットで選択したエッジをソフト
ウェアで発生させることにより , 複数チャネルの PPG タイマを同時に起動することが
できます。
<注意事項>
本ビットのビット 7 ∼ビット 4 には , 必ず "0" を設定してください。
292
第 8 章 PPG タイマ
8.3
PPG タイマの動作説明
PPG タイマの動作について説明します。
■ 注意点
割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラグ
セットが優先され , クリア動作は , 無効となります。
PPG コントロールレジスタのビット 11, 10 ( カウントロック選択ビット CKS1 および ,
CKS0) は , 書込み後すぐに反映されるので , 設定変更は , カウント停止状態で行ってく
ださい。
PPG ダウンカウンタ (PPGC:16 ビットダウンカウンタ ) は , ロードとカウントのタイミ
ングが重複した場合は , ロード動作の方を優先します。
293
第 8 章 PPG タイマ
8.3.1
PWM 動作タイミングチャート
PWM 動作タイミングチャートについて説明します。
■ 再起動禁止の場合
図 8.3-1 に , 再起動禁止の場合の PWM 動作タイミングチャートを示します。
図 8.3-1 再起動禁止の場合の PWM 動作タイミングチャート
立上りエッジ検出 トリガは、無視されます。
起動 トリガ m n 0 PPG ①
②
① = T(n+1) ms
② = T(m+1) ms
T:カウントクロック周期
m:PCSR値
n:PDUT値
■ 再起動許可の場合
図 8.3-2 に , 再起動許可の場合の PWM 動作タイミングチャートを示します。
図 8.3-2 再起動許可の場合の PWM 動作タイミングチャート
立上りエッジ検出 トリガにより再起動します。
起動 トリガ m n 0 PPG ①
m:PCSR値
n:PDUT値
② 〔PWM 動作〕
PWM動作では, 起動トリガの検出時より連続してパルスを出力することができます。
出力パルスの周期は , PCSR 値を変えることにより制御することができ , またデュー
ティ比は , PDUT 値を変えることにより制御できます。
( 注意事項 )
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってくだ
さい。
294
第 8 章 PPG タイマ
8.3.2
ワンショット動作タイミングチャート
ワンショット動作タイミングチャートについて説明します。
■ 再起動禁止の場合
図 8.3-3 に , 再起動禁止の場合のワンショット動作タイミングチャートを示します。
図 8.3-3 再起動禁止の場合のワンショット動作タイミングチャート
立上りエッジ検出 トリガは、無視されます。
起動 トリガ m n 0 PPG ① m:PCSR値
②
n:PDUT値
■ 再起動許可の場合
図 8.3-4 に , 再起動許可の場合のワンショット動作タイミングチャートを示します。
図 8.3-4 再起動許可の場合のワンショット動作タイミングチャート
立上りエッジ検出 トリガにより再起動します。
起動 トリガ m n 0
PPG ①
m:PCSR値
②
n:PDUT値
〔ワンショット動作〕
ワンショット動作では, トリガにより任意の幅の単一パルスを出力することができま
す。
再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。
295
第 8 章 PPG タイマ
割込み要因とタイミングチャート (PPG 出力は , 通常
極性 )
8.3.3
割込み要因とタイミングチャートについて説明します。
■ 割込み要因とタイミングチャート
図 8.3-5 に , 割込み要因とタイミングチャートを示します。
図 8.3-5 割込み要因とタイミングチャート
起動 トリガ
┌─────┐
─┘ └───────────────────────────── →最大2.5T←
┌┐ ┌┐
─────┘└─────────────────────┘└─────── ┌┐ ┌┐ ┌┐ ┌┐
──────────┘└────┘└────┘└──────────┘└─ ロード
クロック
カウント値 X 0003H 0002H 0001H 0000H 0003H
┌───────────┐
PPG ────────────────┘ └──────── ↑ ↑ ↑
割込み ─────┴──────────┴───────────┴──────── 有効エッジ デューティ一致 カウンタボロー
<注意事項>
起動トリガがかかってから, カウント値がロードされるまで, 最大2.5T(T:カウントクロッ
ク周期 ) を必要とします。
296
第 8 章 PPG タイマ
PPG 出力オール "L" またはオール "H" の出力方法例
8.3.4
PPG 出力オール "L" または , オール "H" の出力方法について説明します。
■ PPG 出力オール "L" またはオール "H" の出力方法の例
図 8.3-6 に , PPG 出力オール "L" またはオール "H" の出力方法の例を示します。
図 8.3-6 PPG 出力オール "L" またはオール "H" の出力方法の例
PPG
デューティ値 ↑ を小さくして ボローによる割込みでPGMS(マスクビット)
いく → → → に"1"を書き込みます。
また、ボローによる割込みでPGMS
(マスクビット)に"0"を書き込めば
ヒゲを出力する事なくPWM波形を
出力できます。
PPG
↑
デューティ値 コンペア一致による割込みでデュー
を大きくして ティ設定レジスタに周期設定レジス
いく → → → タ値と同じ値を書き込みます。
297
第 8 章 PPG タイマ
8.3.5
ジェネラルコントロールレジスタを使った複数チャ
ネル起動
GCN10 で起動トリガを選択することにより , 複数チャネルを同時に起動することが
できます。
ここでは , GCN20 を使ったソフトウェア起動の例を示します。
■ 設定手順
1) PCSR に周期を設定します。
2) PDUT にデューティを設定します。
必ず PCSR → PDUT の順で書込みを行ってください。
3) GCN10 で , 起動するチャネルのトリガ入力要因を決めます。
ここでは , GCN20 を使うので , 初期設定のままとします。
(ch0 -> EN0, ch1 -> EN1, ch2 -> EN2, ch3 -> EN3)
4) 起動するチャネルのコントロールステータスレジスタを設定します。
- CNTE:1 -> タイマ動作を許可
- STGR:0 -> GCN20 で起動するので , ここでは起動しない
- MDSE:0 -> PWM 動作
- RTRG:0 -> 再起動禁止とする
- CSK1,0:00 -> カウントクロック= Φ
- PGMS:0 -> 出力マスクしない
( ビット 8:0 -> 未使用ビット , 何を設定しても構いません )
- EGS1,0:01 -> 立上りエッジ起動
- IREN:1 -> 割込み要求許可
- IRQF:0 -> 割込み要因をクリア
- IRS1,0:01 -> カウンタボロー発生で割込み要求発生
- OSEL:0 -> 通常極性
5) GCN20 にデータを書き込むことで , 起動トリガを発生させます。
上記の設定で ch0 と ch1 を同時に起動させる場合 , GCN20 の EN0, EN1 に "1" を書き
込みます。立上りエッジが発生し , PPG0, PPG1 からパルスが出力されます。
16 ビットリロードタイマを使用して起動する場合は , 下記を行ってください。
3) の GCN10 で要因として 16 ビットリロードタイマを選択
5) で GCN20 の代わりに 16 ビットリロードタイマを起動
また , コントロールステータスレジスタの設定で下記のようにすることで , 一定時
間ごとに PPG タイマを再起動することも可能です。
- RTRG:1 -> 再起動許可とする
- EGS1,0:11 -> 両エッジ起動
- 16 ビットリロードタイマ出力をトグル出力設定にする
298
第9章
割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタ
の構成 / 機能 , および動作について説明します。
9.1 割込みコントローラの概要
9.2 割込みコントローラのレジスタ
9.3 割込みコントローラの動作説明
299
第 9 章 割込みコントローラ
9.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理を行います。
■ 割込みコントローラのハードウェア構成
本モジュールは , 以下のものより構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
300
第 9 章 割込みコントローラ
■ 割込みコントローラのレジスタ一覧
図 9.1-1 に , 割込みコントローラのレジスタ一覧を示します。
図 9.1-1 割込みコントローラのレジスタ一覧 ( 続く )
7
6
5
4
3
2
1
0
アドレス : 00000440H
bit
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
アドレス : 00000441H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
アドレス : 00000442H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
アドレス : 00000443H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
アドレス : 00000444H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
アドレス : 00000445H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
アドレス : 00000446H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
アドレス : 00000447H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
アドレス : 00000448H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス : 00000449H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
アドレス : 0000044AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス : 0000044BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
アドレス : 0000044CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
アドレス : 0000044DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
アドレス : 0000044EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
アドレス : 0000044FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
アドレス : 00000450H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
アドレス : 00000451H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
アドレス : 00000452H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
アドレス : 00000453H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
アドレス : 00000454H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス : 00000455H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
アドレス : 00000456H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
アドレス : 00000457H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
アドレス : 00000458H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
アドレス : 00000459H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
アドレス : 0000045AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
アドレス : 0000045BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
アドレス : 0000045CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
アドレス : 0000045DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
アドレス : 0000045EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
アドレス : 0000045FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
アドレス : 00000460H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
アドレス : 00000461H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
アドレス : 00000462H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
アドレス : 00000463H
-
-
-
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR35
301
第 9 章 割込みコントローラ
図 9.1-1 割込みコントローラのレジスタ一覧 ( 続き )
7
6
5
4
3
2
1
0
アドレス : 00000464H
bit
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
アドレス : 00000465H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
アドレス : 00000466H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
アドレス : 00000467H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
アドレス : 00000468H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
アドレス : 00000469H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
アドレス : 0000046AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
アドレス : 0000046BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
アドレス : 0000046CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
アドレス : 0000046DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
アドレス : 0000046EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
アドレス : 0000046FH
-
-
-
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR47
-
-
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
HRCL
アドレス : 00000045H MHALTI
R/W
■ 割込みコントローラのブロックダイヤグラム
図 9.1-2 に割込みコントローラのブロックダイヤグラムを示します。
図 9.1-2 割込みコントローラのブロックダイヤグラム
UNMI
WAKEUP (レベル≠11111のとき‘1’)
優先度判定
NMI
処理
レベル4~0
5
/
HLDREQ
取下げ
要求
レベル判定
RI00
・
・
・
RI47
(DLYIRQ)
ICR00
・
・
・
ICR47
ベクタ
判定
R-bus
302
6
/
レベル,
ベクタ
発生
MHALTI
VCT5~0
第 9 章 割込みコントローラ
9.2
割込みコントローラのレジスタ
割込みコントローラのレジスタ構成および機能について説明します。
■ 割込みコントローラのレジスタ詳細
割込みコントローラには , 以下の 2 種類のレジスタがあります。
• ICR ( 割込み制御レジスタ )
• HRCL ( ホールドリクエスト取下げ要求レジスタ )
303
第 9 章 割込みコントローラ
9.2.1
割込み制御レジスタ (ICR)
割込み制御レジスタ (ICR) は , 各割込み入力に対して 1 つずつ設けられており , 対応
する割込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR) のビット構成
割込み制御レジスタ (ICR) のビット構成は以下のとおりです。
ビット
アドレス ch0:000440H
7
6
5
4
3
2
1
0
初期値
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
---11111B
R
R/W
R/W
R/W
R/W
∼
ch7:00046FH
[ ビット 4 ∼ 0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ
ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
表 9.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。
表 9.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" を書き込むことはできません。
304
システム予約
(強)
(弱)
割込み禁止
第 9 章 割込みコントローラ
9.2.2
ホールドリクエスト取下げ要求レジスタ (HRCL)
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成
ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。
ビット
アドレス :00000045H
7
6
5
4
3
2
1
0
MHALTI
-
-
LVL4
LVL3
LVL2
LVL1
LVL0
R
R/W
R/W
R/W
R/W
R/W
HRCL
0--11111B
( 初期値 )
[ ビット 7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1" に
セットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後で通
常の割込みルーチンと同様にクリアしてください。
[ ビット 4 ∼ 0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を発生させるための割込みレベルを
設定します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した場
合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
305
第 9 章 割込みコントローラ
9.3
割込みコントローラの動作説明
割込みコントローラの動作について説明します。
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 以下のとおりです。
1) NMI
2) 以下の条件を満たす要因
- 割込みレベルの数値が "31" 以外 ("31" は割込み禁止 ) 。
- 割込みレベルの数値が最も小さい要因。
- その中で , 最も小さい割込み番号を持つ要因。
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31(11111B) を出力します。そのときの割込み番号は不定です。
表 9.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。
表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 3)
割込み番号
割込み要因
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
リセット
0
00
-
3FCH
000FFFFCH
-
モードベクタ
1
01
-
3F8H
000FFFF8H
-
システム予約
2
02
-
3F4H
000FFFF4H
-
システム予約
3
03
-
3F0H
000FFFF0H
-
システム予約
4
04
-
3ECH
000FFFECH
-
システム予約
5
05
-
3E8H
000FFFE8H
-
システム予約
6
06
-
3E4H
000FFFE4H
-
コプロセッサ不在トラップ
7
07
-
3E0H
000FFFE0H
-
コプロセッサエラートラップ
8
08
-
3DCH
000FFFDCH
-
INTE 命令
9
09
-
3D8H
000FFFD8H
-
命令ブレーク例外
10
0A
-
3D4H
000FFFD4H
-
オペランドブレークトラップ
11
0B
-
3D0H
000FFFD0H
-
ステップトレーストラップ
12
0C
-
3CCH
000FFFCCH
-
NMI 要求 (tool)
13
0D
-
3C8H
000FFFC8H
-
未定義命令例外
14
0E
-
3C4H
000FFFC4H
-
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
-
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
-
306
第 9 章 割込みコントローラ
表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 3)
割込み番号
割込み要因
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
外部割込み 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
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
39
27
ICR23
360H
000FFF60H
-
40
28
ICR24
35CH
000FFF5CH
-
41
29
ICR25
358H
000FFF58H
12
SIO 6
42
2A
ICR26
354H
000FFF54H
13
SIO 7
43
2B
ICR27
350H
000FFF50H
14
UART3 ( 受信完了 )
44
2C
ICR28
34CH
000FFF4CH
-
UART3 ( 送信完了 )
45
2D
ICR29
348H
000FFF48H
-
000FFF44H
-
I
2C
UART4 ( 受信完了 )
SIO 5
*1
*1
リロードタイマ 3/ メイン発振安定待ちタイマ
46
2E
ICR30
344H
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
-
外部割込み 8-15 *2
48
30
ICR32
33CH
000FFF3CH
-
時計カウンタ
49
31
ICR33
338H
000FFF38H
-
U/D カウンタ 0
50
32
ICR34
334H
000FFF34H
-
U/D カウンタ 1 *2
51
33
ICR35
330H
000FFF30H
-
PPG 0/1
52
34
ICR36
32CH
000FFF2CH
-
PPG 2/3
53
35
ICR37
328H
000FFF28H
-
PPG 4/5
54
36
ICR38
324H
000FFF24H
-
16 ビット フリーランタイマ
55
37
ICR39
320H
000FFF20H
-
ICU 0( 取込み )
56
38
ICR40
31CH
000FFF1CH
-
ICU 1( 取込み )/UART4 ( 送信完了 ) *2
57
39
ICR41
318H
000FFF18H
-
ICU 2/3( 取込み )
58
3A
ICR42
314H
000FFF14H
-
OCU0/1 ( 一致 )
59
3B
ICR43
310H
000FFF10H
-
OCU2/3 ( 一致 )
60
3C
ICR44
30CH
000FFF0CH
-
307
第 9 章 割込みコントローラ
表 9.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 3)
割込み番号
割込み要因
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
RN
OCU4/5 ( 一致 ) *2
61
3D
ICR45
308H
000FFF08H
-
OCU6/7 ( 一致 ) *2
62
3E
ICR46
304H
000FFF04H
-
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
-
システム予約 (REALOS にて使用 )
64
40
-
2FCH
000FFEFCH
-
システム予約 (REALOS にて使用 )
65
41
-
2F8H
000FFEF8H
-
システム予約
66
42
-
2F4H
000FFEF4H
-
システム予約
67
43
-
2F0H
000FFEF0H
-
システム予約
68
44
-
2ECH
000FFEECH
-
システム予約
69
45
-
2E8H
000FFEE8H
-
システム予約
70
46
-
2E4H
000FFEE4H
-
システム予約
71
47
-
2E0H
000FFEE0H
-
システム予約
72
48
-
2DCH
000FFEDCH
-
システム予約
73
49
-
2D8H
000FFED8H
-
システム予約
74
4A
-
2D4H
000FFED4H
-
システム予約
75
4B
-
2D0H
000FFED0H
-
システム予約
76
4C
-
2CCH
000FFECCH
-
システム予約
77
4D
-
2C8H
000FFEC8H
-
システム予約
78
4E
-
2C4H
000FFEC4H
-
システム予約
79
4F
-
2C0H
000FFEC0H
-
80
∼
255
50
∼
FF
2BCH
000FFEBCH
INT 命令で使用
-
∼
000H
∼
000FFC00H
-
*1: MB91F353A/351A/352A/353A は , UART4, SIO5 の割込み要因がありません
*2: MB91F353A/351A/352A/353A は , 外部割込み 8-15, U/D カウンタ 1, UART4, OCU4/5, OCU6/7 の割込み要因が
ありません。
308
第 9 章 割込みコントローラ
■ NMI (Non Maskable Interrupt)
NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま
す。
そのため , ほかの割込み要因と同時発生の場合は常に NMI が選択されます。
● NMI 発生
NMI が発生すると , CPU に対して次の情報を伝えます。
割込みレベル :15 (01111B)
割込み番号 :15 (0001111B)
● NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは
NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。
● NMI による DMA 転送の抑止
NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が
抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後にて
MHALTI ビットを "0" にクリアしてください。
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト
発生元においてリクエストを取り下げてもらう必要があります。この取下げ要求発生
の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル
→取下げ要求発生
HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル
→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている
ため , 取下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。
11111B に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
10000B に設定した場合は NMI でのみ取下げ要求を発生することになります。
表 9.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
309
第 9 章 割込みコントローラ
表 9.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 にしてください。
■ ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホールド
リクエストを取り下げてもらってホールド状態を解除する必要があります。ここでは ,
割込みを利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先
動作を実現します。
● 制御レジスタ
1) HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール :
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
2) ICR: 本モジュール :
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
310
第 9 章 割込みコントローラ
● ハードウェア構成
図 9.3-1 に , ホールドリクエストの各信号の流れを示します。
図 9.3-1 ホールドリクエストの各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
DHREQ
DMA
I-ユニット
DHREQ:Dバスホールドリクエスト
CPU
B-ユニット
DHACK:Dバスホールドアクノリッジ
(ICR)
IRQ :割込み要求
(HRCL)
DHACK
MHALTI:ホールドリクエスト
取下げ要求
● シーケンス
図 9.3-2 に , HRCL レジスタに設定したレベルより強い場合を , 以下に示します。
図 9.3-2 割込みレベル HRCL < ICR (LEVEL)
RUN
バスホールド
割込み処理
バスホールド
(DMA転送)
① ②
CPU
割込みルーチンの例
バスアクセス要求
①割込み要因クリア
DHREQ
~
DHACK
②RETI
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。
図 9.3-3 に , 多重割込みの場合を , 以下に示します。
図 9.3-3 割込みレベル HRCL < ICR( 割込みⅠ )< ICR( 割込みⅡ )
RUN
CPU
バスホールド
割込み I
割込み処理II
③
④
割込み処理I
①
バスホールド
(DMA転送)
②
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
311
第 9 章 割込みコントローラ
〔割込みルーチンの例〕
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した
場合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ はさがっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
312
第 10 章
外部割込み・NMI 制御部
この章では , 外部割込み・NMI 制御部の概要 , レジ
スタの構成 / 機能 , および動作について説明しま
す。
10.1 外部割込み・NMI 制御部の概要
10.2 外部割込み・NMI 制御部のレジスタ
10.3 外部割込み・NMI 制御部の動作説明
313
第 10 章 外部割込み・NMI 制御部
10.1
外部割込み・NMI 制御部の概要
外部割込み制御部は , NMI および INT0 ∼ 15 に入力される外部割込み要求の制御を
行うブロックです。
検出する要求のレベルとして , 以下の 4 種類から選択できます (NMI 以外 )。
• "H"
• "L"
• " 立上りエッジ "
• " 立下りエッジ "
( 注意事項 ) MB91F353A/351A/352A/353A に INT8 ∼ 15 はありません
■ 外部割込み・NMI 制御部のレジスタ一覧
外部割込み・NMI 制御部のレジスタ一覧は以下のとおりです。
ビット
ビット
ビット
ビット
7
EN7
6
EN6
5
EN5
4
EN4
3
EN3
2
EN2
1
EN1
0
EN0
15
ER7
14
ER6
13
ER5
12
ER4
11
ER3
10
ER2
9
ER1
8
ER0
15
LB7
14
LA7
13
LB6
12
LA6
11
LB5
10
LA5
9
LB4
8
LA4
7
LB3
6
LA3
5
LB2
4
LA2
3
LB1
2
LA1
1
LB0
0
LA0
割込み許可レジスタ
(ENIR)
外部割込み要因レジスタ
(EIRR)
外部割込み要求レベル
設定レジスタ (ELVR)
上記レジスタ (8 チャネル分 ) が 2 セットあり , 合計 16 チャネルあります。
314
第 10 章 外部割込み・NMI 制御部
■ 外部割込み・NMI 制御部のブロックダイヤグラム
図 10.1-1 に , 外部割込み・NMI 制御部のブロックダイヤグラムを示します。
図 10.1-1 図外部割込み・NMI 制御部のブロックダイヤグラム
R-bus
8
割込み許可レジスタ
割込み
要求
17
8
ゲート
要因 F/F
エッジ検出回路
17
INT0~15
NMI
外部割込み要因レジスタ
16
外部割込み要求レベル設定レジスタ
315
第 10 章 外部割込み・NMI 制御部
10.2
外部割込み・NMI 制御部のレジスタ
外部割込み・NMI 制御部のレジスタ構成および機能について説明します。
■ 外部割込み・NMI 制御部のレジスタ詳細
外部割込み・NMI 制御部のレジスタには , 以下の 3 種類があります。
• 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register)
• 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register)
• 外部割込み要求レベル設定レジスタ (ELVRn: External LeVel Register)
316
第 10 章 外部割込み・NMI 制御部
10.2.1
割込み許可レジスタ (ENIRn: ENable Interrupt
Request Register)
ENIRn は外部割込み要求出力のマスク制御を行います。
■ 割込み許可レジスタ (ENIRn: ENable Interrupt Request Register) のビット構成
割込み許可レジスタのビット構成は , 以下のとおりです。
ビット
7
ENIR0 アドレス :000041H EN7
6
5
4
3
2
1
0
初期値
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B
[R/W]
ビット
7
ENIR1 アドレス :0000D1H EN15
6
EN14
5
EN13
4
EN12
3
EN11
2
EN10
1
EN9
0
初期値
EN8
00000000B
[R/W]
このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の
許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ
たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して
は要求を発生しません。
また , NMI に対するマスクビットは , 存在しません。
317
第 10 章 外部割込み・NMI 制御部
10.2.2
外部割込み要因レジスタ (EIRRn: External Interrupt
Request Register)
EIRRn は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこ
の要求を示すフリップフロップ (NMI フラグ ) 内容をクリアするレジスタです。
■ 外部割込み要因レジスタ (EIRRn: External Interrupt Request Register) のビット
構成
外部割込み要因レジスタのビット構成は , 以下のとおりです。
ビット
15
EIRR0 アドレス :000040H ER7
14
ER6
13
ER5
12
ER4
11
ER3
10
ER2
9
ER1
8
初期値
ER0
00000000B
[R/W]
ビット
15
EIRR1 アドレス :0000D0H ER15
14
ER14
13
ER13
12
ER12
11
ER11
10
ER10
9
ER9
8
初期値
ER8
00000000B
[R/W]
この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。
"1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま
す。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。
"1" の書込みは無効です。
リード・モディファイ・ライトのリード時には "1" が読まれます。
NMI フラグは , ユーザから読出し / 書込みできません。
( 注意事項 ) NMI フラグについては , 図 10.3-4 を参照してください。
318
第 10 章 外部割込み・NMI 制御部
10.2.3
外部割込み要求レベル設定レジスタ (ELVRn:
External LeVel Register)
ELVRn は要求検出の選択を行うレジスタです。
■ 外部割込み要求レベル設定レジスタ(ELVRn: External LeVel Register)のビット構
成
外部割込み要求レベル設定レジスタのビット構成は , 以下のとおりです。
ビット
ELVR0 アドレス :000042H
ビット
000043H
15
14
13
12
11
10
9
8
初期値
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B
7
6
5
4
3
2
1
0
初期値
LA0
00000000B
LB3
LA3
LB2
LA2
LB1
LA1
LB0
[R/W]
ビット
15
ELVR1 アドレス :0000D2H LB15
ビット
7
000043H LB11
14
13
12
11
10
9
8
初期値
LA15
LB14
LA14
LB13
LA13
LB12
LA12
00000000B
6
5
4
3
2
1
0
初期値
LA11
LB10
LA10
LB9
LA9
LB8
LA8
00000000B
[R/W]
INT0 ∼ 15 に 2 ビットずつが割り当てられていて , 以下のような設定になります。
要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな
らば該当するビットは再びセットされます。
表 10.2-1 に , ELVR 割当てを示します。
表 10.2-1 ELVR 割当て
LBx
LAx
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動 作
NMI は常にその立下りエッジが検出されます ( ストップ時を除く ) 。
ストップ時は , "L" レベル検出となります。
319
第 10 章 外部割込み・NMI 制御部
10.3
外部割込み・NMI 制御部の動作説明
外部割込み・NMI 制御部の動作について説明します。
■ 外部割込みの動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本
リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生しま
す。
図 10.3-1 に , 外部割込みの動作を示します。
図 10.3-1 外部割込みの動作
外部割込み
CPU
割込みコントローラ
リソース要求
ELVR
EIRR ENIR
IL
ICR y y
Comp
ICR x x Comp
ILM
要因
■ スタンバイからの復帰
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求を "H" レベル要求または , "L" レベル要求としてください。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 許可レジスタの対象となるビットをディセーブル状態にする。
3. 要求レベル設定レジスタの対象となるビットを設定する。
4. 要因レジスタの対象となるビットをクリアする。
5. 許可レジスタの対象となるビットをイネーブル状態にする。
ただし , 4. と 5. は 16 ビットデータによる同時書込みが可能です。
本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態
に設定しておかなくてはなりません。また , 許可レジスタをイネーブル状態にする前に
必ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み
許可状態時に誤って割込み要因が起こってしまうことを避けるためです。
320
第 10 章 外部割込み・NMI 制御部
■ 外部割込み要求レベル
要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後取り下げられ
ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブ
のままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり
ます。
図 10.3-2 にレベル設定時の要因保持回路のクリアについて示します。
図 10.3-2 レベル設定時の要因保持回路のクリア
割込み入力 レベル検出
要因 F/F
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 10.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示し
ます
図 10.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
要因 F/Fのクリアによってinactiveとなる
321
第 10 章 外部割込み・NMI 制御部
■ NMI
• NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは不可能です。ただ
し , NMI を使用前に ILM に設定しないで NMI を起動すると , NMI 要因は検出され
ますが , CPU は NMI を受け付けません。このとき , ILM を NMI が受け付けられる
レベルに設定するまで NMI 要因が保持されつづけます。
このため , リセット後 , ILMを 16 以上の値に設定してから NMI を使用してください。
• NMI の受付けは下記のとおりです。
- 通常時 : 立下りエッジ
- ストップ時 : "L" レベル
• NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力
されるとストップ状態が解除され発振安定待ち時間が取られます。
NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割
込みの受付け , もしくは , リセットでのみクリアされます。なお , このビットはリー
ド / ライトできません。
図 10.3-4 に , NMI 要求検出を示します。
図 10.3-4 NMI 要求検出
(NMIフラグ)
0
NMI要求
(ストップ解除)
立下り
エッジ検出
Q SX
R
1
φ
STOP
clear (RST,interrupt acknowledge)
322
NMI
第 11 章
REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムで使用することはでき
ません。
11.1 遅延割込みモジュール
11.2 ビットサーチモジュール
323
第 11 章 REALOS 関連ハード
11.1
遅延割込みモジュール
遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま
す。
■ 遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。
本モジュールを使用することで , ソフトウェアで CPU に対して割込要求の発生 / 取消
しを行うことができます。
324
第 11 章 REALOS 関連ハード
11.1.1
遅延割込みモジュールの概要
遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。
■ 遅延割込みモジュールのレジスタ一覧
遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。
ビット
7
6
5
4
3
2
1
アドレス : 00000044H
-
-
-
-
-
-
-
0
DLYI DICR
[R/W]
■ 遅延割込みモジュールのブロックダイヤグラム
図 11.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。
図 11.1-1 遅延割込みモジュールのブロックダイヤグラム
R‐bus
DLYI
割込み要求
325
第 11 章 REALOS 関連ハード
11.1.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールのレジスタの構成および機能について説明します。
■ DICR ( 遅延割込みモジュールレジスタ )
DICR は , 遅延割込みを制御するレジスタです。
遅延割込みモジュールレジスタ (DICR) のビット構成は , 以下のとおりです。
ビット
アドレス : 00000044H
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
DLYI
[R/W]
[ ビット 0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし ( 初期値 )
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
326
-------0B( 初期値 )
第 11 章 REALOS 関連ハード
11.1.3
遅延割込みモジュールの動作説明
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ
とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで
きます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを , 割込み番号 63 (3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。
327
第 11 章 REALOS 関連ハード
11.2
ビットサーチモジュール
ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
■ ビットサーチモジュールの概要
ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0" または
"1" または変化点を検索し , 検出したビット位置を返します。
328
第 11 章 REALOS 関連ハード
11.2.1
ビットサーチモジュールの概要
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ ビットサーチモジュールのレジスタ一覧
ビットサーチモジュールのレジスタ一覧は , 以下のとおりです。
31
0
アドレス : 000003F0H
BSD0
0 検出用データレジスタ
アドレス : 000003F4H
BSD1
1 検出用データレジスタ
アドレス : 000003F8H
BSDC
変化点検出用データレジスタ
アドレス : 000003FCH
BSRR
検出結果レジスタ
■ ビットサーチモジュールのブロックダイヤグラム
図 11.2-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。
図 11.2-1 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
329
第 11 章 REALOS 関連ハード
11.2.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ 0 検出用データレジスタ (BSD0)
書き込んだ値に対して , 0 検出を行います。
0 検出用データレジスタ (BSD0) のレジスタ構成は , 以下のとおりです。
31
0
000003F0H
読出し / 書込み → W
初期値
→ XXXXXXXXH
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
■ 1 検出用データレジスタ (BSD1)
1 検出用データレジスタ (BSD1) のレジスタ構成は , 以下のとおりです。
31
0
000003F4H
読出し / 書込み → R/W
初期値
→ XXXXXXXXH
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
• 書込み時 :
書き込んだ値に対して , "1" を検出します。
• 読出し時 :
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避・復帰できます。
リセットによる初期値は不定です。
330
第 11 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
書き込んだ値に対して , 変化点の検出を行います。
変化点検出用データレジスタ (BSDC) のレジスタ構成は , 以下のとおりです。
31
0
000003F8H
読出し / 書込み → W
初期値
→ XXXXXXXXH
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
■ 検出結果レジスタ (BSRR)
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
検出結果レジスタ (BSRR) のレジスタ構成は , 以下のとおりです。
31
0
000003FCH
読出し / 書込み → R
初期値
→ XXXXXXXXH
331
第 11 章 REALOS 関連ハード
11.2.3
ビットサーチモジュールの動作説明
ビットサーチモジュールの動作について説明します。
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数
値の関係は , 表 11.2-1 を参照してください。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ) , "32" という値をサー
チ結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H)
→ 20
11111000010010011110000010101010B (F849E0AAH) →
5
10000000000000101010101010101010B (8002AAAAH) →
1
11111111111111111111111111111111B (FFFFFFFFH)
→ 32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と
の関係は , 表 11.2-1 を参照してください。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ) , "32" という値をサー
チ結果として返します。
【実行例】
書込みデータ
332
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→
2
00000001001000110100010101100111B (01234567H)
→
7
00000000000000111111111111111111B (0003FFFFH)
→ 14
00000000000000000000000000000001B (00000001H)
→ 31
00000000000000000000000000000000B (00000000H)
→ 32
第 11 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを , ビット 30 から LSB へスキャン
し , MSB の値と比較します。
最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを
読み出すことで得られます。
検出した位置と返す値は , 表 11.2-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
表 11.2-1 に , ビット位置と返す値 (10 進 ) を示します。
表 11.2-1 ビット位置と返す値 (10 進 )
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
333
第 11 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順にしたがってく
ださい。
1) 1 検出用データレジスタを読出し , この内容を保存 ( 退避 )
2) ビットサーチモジュールを使用
3) 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 )
以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, 1)以前に,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても, 上記の
手順で正しく元に戻ります。
334
第 12 章
A/D コンバータ
この章では , A/D コンバータの概要 , レジスタの構
成 / 機能 , および動作について説明します。
12.1 A/D コンバータの概要
12.2 A/D コンバータのレジスタ
12.3 A/D コンバータの動作説明
335
第 12 章 A/D コンバータ
12.1
A/D コンバータの概要
A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。
ここでは , A/D コンバータの概要について説明します。
■ A/D コンバータの特長
A/D コンバータの特長は , 以下のとおりです。
• 変換時間 :1 チャネルあたり最小 1.48 µS
• サンプル & ホールド回路付き直並列変換方式を採用
• 10 ビットの分解能 (8/10 ビット切換え可能 )
• アナログ入力は 12 チャネルからプログラムで選択できます。
( 注意事項 ) MB91F353A/351A/352A/353A は入力 8 チャネルです。
• 変換モード
シングル変換モード : 選択した 1 チャネルを 1 回変換します。
スキャン変換モード : 最大 4 チャネルのスキャン変換をします。
• 変換データはデータバッファに格納されます ( データバッファは全部で 4 つ )。
• A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが
できます。この割込み発生で DMA 転送を起動することもできます。
• 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , リロードタイマ ch2 ( 立上りエッ
ジ ) から選択できます。
■ A/D コンバータのレジスタ一覧
A/D コンバータのレジスタ一覧は , 以下のとおりです。
ビット 15 8
アドレス:000078 H ADCS1
ADCS2
アドレス:00007A H
コントロール・ステータス
レジスタ
変換時間設定レジスタ
ADCT
アドレス:00007C H アドレス:00007E H ADTH0
ADTL0
データレジスタ0
ADTH1
ADTL1
データレジスタ1
アドレス:000080 H
ADTH2
ADTL2
データレジスタ2
ADTH3
ADTL3
データレジスタ3
アドレス:000082 H
336
7 0
第 12 章 A/D コンバータ
■ A/D コンバータのブロックダイヤグラム
図 12.1-1 に , A/D コンバータのブロックダイヤグラムを示します。
( 注意事項 ) MB91F353A/351A/352A/353A は AN8 ∼ AN11 入力はありません。
図 12.1-1 A/D コンバータのブロックダイヤグラム
アナログ入力
AV CC ,AVRH,AV SS ,AVRL
M
P
X
S/H
10ビット
A/D
コンバータ
M
P
X
ADTH/L0
ADTH/L1
ADTH/L2
ADTH/L3
R-bus
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
AN8
AN9
AN10
AN11
コントロールロジック
割込み
リロードタイマch2
外部入力
337
第 12 章 A/D コンバータ
12.2
A/D コンバータのレジスタ
A/D コンバータで使用するレジスタの構成および機能について説明します。
■ A/D コンバータのレジスタの概要
A/D コンバータのレジスタには , 以下の 4 種類があります。
• コントロール・ステータスレジスタ (ADCS1)
• コントロール・ステータスレジスタ (ADCS2)
• 変換時間設定レジスタ (ADCT)
• データレジスタ (ADTHx, ADTLx)
338
第 12 章 A/D コンバータ
12.2.1
コントロール・ステータスレジスタ (ADCS1)
本レジスタは A/D コンバータの制御およびステータス表示を行います。
■ コントロール・ステータスレジスタ (ADCS1) のレジスタ構成
コントロール・ステータスレジスタ (ADCS1) のレジスタ構成は , 以下のとおりです。
7
ビット
BUSY
アドレス : 000079H
0
R/W
6
INT
5
INTE
4
-
3
STS1
2
STS0
1
STAR
0
0
X
0
0
0
R/W
R/W
-
R/W
R/W
R/W
0
ADCS1
予約
0
←初期値
R/W ←ビット属性
[ ビット 7] BUSY(busy):
• リード時
値
内 容
0
A/D コンバータ停止中
1
A/D コンバータ動作中
• ライト時
値
内 容
0
A/D コンバータ強制停止
1
意味を持ちません
ソフト起動と強制停止は同時に行わないでください (STAR ビット =1, BUSY ビット
=0)。
リードモディファイライト系命令では , "1" が読まれます。リセット時は "0" に初期
化されます。
[ ビット 6] INT(INTerrupt):
本ビットは変換終了によりセットされます ( シングル変換時は 1 回の変換の終了によ
りセットされ , スキャン変換時はチャネルすべての変換が終了したらセットされま
す)。
値
内 容
0
割込み要求なし
1
割込み要求あり
本ビットは "0" 書込み , 変換開始時 , DMA 転送による割込みクリア , およびリセット
によりクリアされます。
"1" の書込みは意味を持ちません。
リードモディファイライト系命令では , "1" が読まれます。
339
第 12 章 A/D コンバータ
[ ビット 5] INTE(INTerrupt Enable):
本ビットは変換終了による割込みの許可・禁止を指定します。
値
内 容
0
割込み禁止
1
割込み許可
DMA による自動転送を使用するときは本ビットをセットしてください。
リセット時 "0" に初期化されます。
[ ビット 4] 未使用ビット :
未使用ビットです。
[ ビット 3, 2] STS1, STS0(STart Select):
本ビット群の設定により A/D 起動要因を選択します。
STS1
STS0
0
0
ソフト起動
0
1
外部端子トリガでの起動とソフト起動
1
0
リロードタイマでの起動とソフト起動
1
1
外部端子トリガ , リロードタイマでの起動とソフト起動
機 能
起動が兼用になっているモードでは , 最初に検出した要因で起動します。
A/D 動作中 (BUSY ビット =1) に来た起動要因はすべて無視されます ( 再起動不可 )。
再起動する場合は一度 A/D 変換を停止 (BUSY ビットに "0" 書込み ) してから行って
ください。
外部トリガ起動は立下がり , リロードタイマ起動は立上りエッジを検出します。
リセット時 "00B" に初期化されます。
[ ビット 1] STAR(STARt):
本ビットに "1" を書き込むことにより A/D コンバータを起動します。
A/D 起動中 (BUSY=1) に "1" を書き込んでも無視されます。
読出し時は常に "0" が読めます。
ソフト起動と強制停止は同時に行わないでください (STAR=1, BUSY=0)。
[ ビット 0] 予約ビット :
本ビットには "0" を書き込んでください。
340
第 12 章 A/D コンバータ
12.2.2
コントロール・ステータスレジスタ (ADCS2)
本レジスタは A/D コンバータの制御およびステータス表示を行います。
■ コントロール・ステータスレジスタ (ADCS2) のレジスタ構成
コントロール・ステータスレジスタ (ADCS2) のレジスタ構成は , 以下のとおりです。
14
13
12
ビット 15
ACS3
ACS2
ACS1
ACS0
アドレス : 000078H
0
0
0
0
11
-
10
-
-
-
0
R/W
-
-
R/W
R/W
R/W
R/W
9
8
CREG SCAN
ADCS2
0
←初期値
R/W ←ビット属性
[ ビット 15, 14, 13, 12] ACS3, ACS2, ACS1, ACS0(Analog Channel Set):
本ビット群より A/D 変換のチャネルを設定します。
• シングル変換モード時は , 本ビットの設定チャネルを変換します。
• スキャン変換モード時は , 本ビットの設定チャネルがスキャンのスタートチャネル
になります (「12.3 A/D コンバータの動作説明」を参照 )。
- AN0∼AN3を設定したときは, 設定チャネルからAN3までをスキャン変換します。
- AN4∼AN7を設定したときは, 設定チャネルからAN7までをスキャン変換します。
- AN8 ∼ AN11 を設定したときは , 設定チャネルから AN11 までをスキャン変換し
ます。
• 変換するチャネルにより格納されるレジスタはかわります。
AN0 ∼ AN3 と AN4 ∼ AN7 と AN8 ∼ AN11 データレジスタは重複しますので注意
してください。
AN0 を変換後に AN4 や AN8 を変換すると , データが上書きされてしまい AN0 の変
換データは壊れてしまいます。
341
第 12 章 A/D コンバータ
• ACS3..ACS0 への 1100B ∼ 1111B の設定は禁止です。これらの値の書込み変換を行っ
た場合 , ADTH0 ∼ ADTH3 レジスタ値は壊れます。
ACS3
ACS2
ACS1
ACS0
チャネル
対応するデータレジスタ
0
0
0
0
AN0
ADTH0, ADTL0
0
0
0
1
AN1
ADAH1, ADTL1
0
0
1
0
AN2
ADTH2, ADTL2
0
0
1
1
AN3
ADTH3, ADTL3
0
1
0
0
AN4
ADTH0, ADTL0
0
1
0
1
AN5
ADAH1, ADTL1
0
1
1
0
AN6
ADTH2, ADTL2
0
1
1
1
AN7
ADTH3, ADTL3
1
0
0
0
AN8
ADTH0, ADTL0
1
0
0
1
AN9
ADAH1, ADTL1
1
0
1
0
AN10
ADTH2, ADTL2
1
0
1
1
AN11
ADTH3, ADTL3
1
1
0
0
-
-
設定禁止
1
1
0
1
-
-
設定禁止
1
1
1
0
-
-
設定禁止
1
1
1
1
-
-
設定禁止
備 考
( 注意事項 ) MB91F353A/351A/352A/353A は AN8, AN9, AN10, AN11 がありません。設
定禁止です。
[ ビット 11, 10] 未使用ビット :
未使用ビットです。
[ ビット 9] CREG:
本ビットは A/D 変換結果の格納ビット数を指定します。
• 0:10 ビットモード :
変換値の上位 2 ビットを ADTHx, 下位 8 ビットを ADTLx に格納します。
• 1:8 ビットモード :
変換値の上位 8 ビットを ADTLx に格納します。
リセット時 "0" に初期化されます。
[ ビット 8] SCAN:
本ビットにより変換モードを設定します。
リセット時 "0" に初期化されます。
値
342
機 能
0
シングル変換モード
1
スキャン変換モード
第 12 章 A/D コンバータ
12.2.3
変換時間設定レジスタ (ADCT)
本レジスタによりサンプリング期間 , 変換期間 a ∼ c の長さを設定します ( 図 12.21 参照 ) 。各期間幅は , ( レジスタ設定値× 2 + 1) × 0.04 µs( 周辺系クロック
25MHz 時 ) で表されます。
このレジスタは , 16 ビットまたは , 32 ビットデータでアクセスしてください。
このレジスタはリセット時不定です。A/D を起動する前に必ず設定してください。
■ 変換時間設定レジスタ (ADCT) のレジスタ構成
変換時間設定レジスタ (ADCT) のレジスタ構成は , 以下のとおりです。
7
ビット
アドレス : 00007AH CV13
X
6
CV12
5
CV11
4
CV10
3
CV23
2
CV22
1
CV21
0
CV20
X
X
X
X
X
X
X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
SMP3 SMP2 SMP1 SMP0 CV03
X
X
X
X
X
10
CV02
X
9
CV01
X
R/W
R/W
ビット
R/W
R/W
R/W
R/W
R/W
←初期値
R/W ←ビット属性
8
CV00
X
←初期値
R/W ←ビット属性
図 12.2-1 に , 変換時間を示します。
図 12.2-1 変換時間
│サンプリング期間│変換期間a│変換期間b│変換期間c│
│ │ │ │ │
│ │ │ │ │
A/D 起動 変換終了(割込み発生)
[ ビット 15, 14, 13, 12] SMP3, SMP2, SMP1, SMP0(sampling time):
本ビットにサンプリング期間の長さを設定します。
[ ビット 11, 10, 9, 8] CV03, CV02, CV01, CV00(convert time a):
本ビットに変換期間 a の長さを設定します。
[ ビット 7, 6, 5, 4] CV13, CV12, CV11, CV10(convert time b):
本ビットに変換期間 b の長さを設定します。
[ ビット 3, 2, 1, 0] CV23, CV22, CV21, CV20(convert time c):
本ビットに変換期間 c の長さを設定します。
343
第 12 章 A/D コンバータ
<注意事項>
1 チャネルあたりの起動から変換終了までの A/D 変換時間は , 「サンプリング時間 + 変換
時間 a+ 変換時間 b+ 変換時間 c+3 マシンサイクル」となります。
■ 推奨レジスタ値
周辺系クロック 25MHz のときは , 以下のレジスタ値を推奨します ( サンプリング時間 ,
変換時間 a, 変換時間 b, 変換時間 c は , それぞれ 245ns 以上になるように設定してくだ
さい )。
ADCT : 0101 0011B
: 0011 0100B
サンプリング時間+変換時間 a+ 変換時間 b+ 変換時間 c+ 3 = 37 サイクル (1.48 µs)
(5 × 2+1)
344
(3 × 2+1)
(3 × 2+1)
(4 × 2+1)
第 12 章 A/D コンバータ
12.2.4
データレジスタ (ADTHx, ADTLx)
本レジスタは変換結果であるデジタル値が格納されます。
■ データレジスタ (ADTHx, ADTLx) の概要
データレジスタは , ADCS2 の CREG ビットの値により格納形式が異なります (A/D の
変換動作に関係なく切り換えることができます ) 。
このレジスタの値は 1 回の変換終了ごとに更新されます。通常は最終変換値が格納さ
れています。
このレジスタはリセット時不定です。
● CREG ビット= "0" 時
CREG ビット= "0" 時の場合のレジスタ構成は , 以下のとおりです。
ビット
アドレス ch0:00007DH
ch1:00007FH
ch2:000081H
ch3:000083H
ビット
アドレス ch0:00007CH
ch1:00007EH
ch2:000080H
ch3:000082H
7
D7
X
6
D6
X
5
D5
X
4
D4
X
3
D3
X
2
D2
X
1
D1
X
0
D0
X
R
R
R
R
R
R
R
R
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
0
0
0
0
D9
X
D8
X
-
-
-
-
-
-
R
R
ADTLx
←初期値
←ビット属性
ADTHx
←初期値
←ビット属性
ADTHx は変換値の上位 2 ビット , ADTLx は下位 8 ビットに相当します。
ADTLx のビット 15 ∼ 10 はリード時 "0" です。
● CREG ビット= "1" 時
CREG ビット= "1" 時の場合のレジスタ構成は , 以下のとおりです。
ビット
アドレス ch0:00007DH
ch1:00007FH
ch2:000081H
ch3:000083H
ビット
アドレス ch0:00007CH
ch1:00007EH
ch2:000080H
ch3:000082H
7
6
5
4
3
2
1
0
D7
X
D6
X
D5
X
D4
X
D3
X
D2
X
D1
X
D0
X
R
R
R
R
R
R
R
R
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
-
-
-
-
-
-
-
-
ADTLx
←初期値
←ビット属性
ADTHx
←初期値
←ビット属性
ADTLx は変換値の上位 8 ビットに相当します。
ADTHx はリード時 00H です。
345
第 12 章 A/D コンバータ
12.3
A/D コンバータの動作説明
A/D コンバータは , 10 ビット直並列方式を用いており最小 1.48 µs の時間により変
換が可能になっています。
本 A/D コンバータにはシングル変換とスキャン変換の 2 つのモードを選択できます。
■ シングル変換モード
コントロール・ステータスレジスタの SCAN = 0 でシングル変換モードになります。
コントロール・ステータスレジスタの ACS2 から ACS0 で設定したアナログ入力を 1 回
変換して終了します。
図 12.3-1 に , シングル変換モードを示します。
( 例 ) ACS 値= 010B(AN2 選択 )
図 12.3-1 シングル変換モード
(例) ACS値=010B(AN2選択)
STAR
INT
A/D スタート A/Dストップ
A/D 変換期間
A/D 変換をスタートすると AN2 のアナログ入力を変換し , 終了すると INT ビットを
セットして終了します。
割込み要求フラグは 1 回の変換ごとにセットされます。
■ スキャン変換モード
コントロール・ステータスレジスタの SCAN = 1 でスキャン変換モードになります。
コントロール・ステータスレジスタの ACS2 から ACS0 で設定したアナログ入力チャ
ネルからスキャン変換を開始します。
スキャン終了チャネルは , ACS2 から ACS0 の設定により変わります。最大 4 チャネル
のスキャン変換が可能です。
表 12.3-1 に , スキャン変換モード時のチャネル設定を示します。
346
第 12 章 A/D コンバータ
表 12.3-1 スキャン変換モード時のチャネル設定
ACS3
ACS2
ACS1
ACS0
開始チャネル
終了チャネル
備 考
0
0
0
0
AN0
AN3
4 チャネルスキャン変換
0
0
0
1
AN1
AN3
3 チャネルスキャン変換
0
0
1
0
AN2
AN3
2 チャネルスキャン変換
0
0
1
1
AN3
AN3
1 チャネルシングル変換
0
1
0
0
AN4
AN7
4 チャネルスキャン変換
0
1
0
1
AN5
AN7
3 チャネルスキャン変換
2 チャネルスキャン変換
0
1
1
0
AN6
AN7
0
1
1
1
AN7
AN7
1 チャネルシングル変換
1
0
0
0
AN8
AN11
4 チャネルスキャン変換
1
0
0
1
AN9
AN11
3 チャネルスキャン変換
1
0
1
0
AN10
AN11
2 チャネルスキャン変換
1 チャネルシングル変換
1
0
1
1
AN11
AN11
1
1
0
0
-
-
設定禁止
1
1
0
1
-
-
設定禁止
1
1
1
0
-
-
設定禁止
1
1
1
1
-
-
設定禁止
( 注意事項 ) MB91F353A/351A/352A/353A は AN8, AN9, AN10, AN11 がありません。設定
禁止です。
図 12.3-2 に , スキャン変換モードを示します。
図 12.3-2 スキャン変換モード
(例) ACS値=000B (AN0~AN3までをスキャン変換)
STAR
INT
A/Dスタート A/Dストップ
AN0 AN1 AN2 AN3
変換 変換 変換 変換
順次変換する
A/D 変換をスタートすると AN0 から AN3 まで順次変換していき変換をすべて終了す
ると INT ビットをセットして終了します。
割込み要求フラグはスキャン変換終了時にセットされます。
347
第 12 章 A/D コンバータ
348
第 13 章
8 ビット D/A コンバータ
この章では , 8 ビット D/A コンバータの概要 , レジ
スタの構成 / 機能 , および動作について説明しま
す。
13.1 8 ビット D/A コンバータの概要
13.2 8 ビット D/A コンバータのレジスタ
13.3 8 ビット D/A コンバータの動作説明
349
第 13 章 8 ビット D/A コンバータ
13.1
8 ビット D/A コンバータの概要
本ブロックは , 8 ビット分解能の D/A コンバータを 3 チャネル (MB91F353A/351A/
352A/353A は D/A コンバータを 2 チャネル ) 内蔵しており , D/A 制御レジスタにて
それぞれ独立に出力制御を行うことができます 。
■ 8 ビット D/A コンバータの特長
8 ビット D/A コンバータの特長は , 以下のとおりです。
• パワーダウン機能あり
• 3.3V インタフェース
■ 8 ビット D/A コンバータのレジスタ一覧
8 ビット D/A コンバータのレジスタ一覧は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は DADR2, DACR2 がありません。
7
アドレス ch0:000085H
ch1:000086H DA7
ch2:000087H
350
6
5
4
3
2
1
0
DA6
DA5
DA4
DA3
DA2
DA1
DA0
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
DAE
D/A データレジスタ
0 ∼ 2 (DADR0 ∼ 2)
D/A コントロールレジスタ
0 ∼ 2(DACR0 ∼ 2)
第 13 章 8 ビット D/A コンバータ
■ 8 ビット D/A コンバータのブロックダイヤグラム
図 13.1-1 に , 8 ビット D/A コンバータのブロックダイヤグラムを示します。
( 注意事項 ) MB91F353A/351A/352A/353A は D/A コンバータ ch2 がありません。
図 13.1-1 8 ビット D/A コンバータのブロックダイヤグラム
R-bus
D/Aコントロール
レジスタ
D/Aデータ
レジスタ0
DAE0
D/Aデータ
レジスタ1
DAE1
PD
STOP
D/A
コンバータ
ch0
D/A 出力 0
D/Aデータ
レジスタ2
DAE2
PD
STOP
D/A
コンバータ
ch1
D/A 出力 1
PL
STOP
D/A
コンバータ
ch2
D/A 出力 2
351
第 13 章 8 ビット D/A コンバータ
13.2
8 ビット D/A コンバータのレジスタ
8 ビット D/A コンバータで使用するレジスタの構成および機能について説明します。
■ D/A データレジスタ 0 (DADR0)
D/A データレジスタ 0 (DADR0) のレジスタ構成は , 以下のとおりです。
7
ビット
DA7
アドレス : 00008BH
R/W
6
DA6
5
DA5
4
DA4
3
DA3
2
DA2
1
DA1
0
DA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXH
• D/A コンバータ ch0 の出力電圧設定を行います。
• リセットによって初期化されません。
■ D/A データレジスタ 1 (DADR1)
D/A データレジスタ 1 (DADR1) のレジスタ構成は , 以下のとおりです。
7
ビット
DA7
アドレス : 00008AH
R/W
6
DA6
5
DA5
4
DA4
3
DA3
2
DA2
1
DA1
0
DA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXH
• D/A コンバータ ch1 の出力電圧設定を行います。
• リセットによって初期化されません。
■ D/A データレジスタ 2 (DADR2)
D/A データレジスタ 2 (DADR2) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は DADR2 がありません。
7
ビット
DA7
アドレス : 000089H
R/W
6
DA6
5
DA5
4
DA4
3
DA3
2
DA2
1
DA1
0
DA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
• D/A コンバータ ch2 の出力電圧設定を行います。
• リセットによって初期化されません。
352
初期値
XXH
第 13 章 8 ビット D/A コンバータ
■ D/A コントロールレジスタ 0 (DACR0)
D/A コントロールレジスタ 0 (DACR0) のレジスタ構成は , 以下のとおりです。
ビット
アドレス : 000087H
7
-
6
-
5
-
4
-
3
-
2
-
1
-
0
DAE
-
-
-
-
-
-
-
R/W
初期値
-------0B
[ ビット 0] DAE
D/A コンバータ ch0 の出力の許可 / 禁止を行います。
値
内 容
0
D/A 出力禁止 ( 出力 0.0V)
1
D/A 出力許可
■ D/A コントロールレジスタ 1 (DACR1)
D/A コントロールレジスタ 1 (DACR1) のレジスタ構成は , 以下のとおりです。
ビット
アドレス : 000086H
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
DAE
-
-
-
-
-
-
-
R/W
初期値
-------0B
[ ビット 0] DAE
D/A コンバータ ch1 の出力の許可 / 禁止を行います。
値
内 容
0
D/A 出力禁止 ( 出力 0.0V)
1
D/A 出力許可
■ D/A コントロールレジスタ 2 (DACR2)
D/A コントロールレジスタ 2 (DACR2) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は DACR2 がありません。
ビット
アドレス : 000085H
7
-
6
-
5
-
4
-
3
-
2
-
1
-
0
DAE
-
-
-
-
-
-
-
R/W
初期値
-------0B
[ ビット 0] DAE
D/A コンバータ ch2 の出力の許可 / 禁止を行います。
値
内 容
0
D/A 出力禁止 ( 出力 0.0V)
1
D/A 出力許可
353
第 13 章 8 ビット D/A コンバータ
13.3
8 ビット D/A コンバータの動作説明
D/A データレジスタに D/A 出力値をセットして , D/A コントロールレジスタに "1"
をセットすれば , D/A 出力が開始されます。
D/A 出力の禁止を行うと , 禁止したチャネルの D/A コンバータ出力は 0.0V が出力さ
れます。これは , ストップモード時にも同様です。
出力許可時の D/A コンバータの出力電圧は , 0V から 255/256 × DAVC の範囲とな
ります。DAVC 端子を外部で調整することによって , 出力電圧範囲を変えることが可
能です。
■ D/A コンバータの出力電圧の論理式
表 13.3-1 に , D/A コンバータの出力電圧の論理式を示します。
表 13.3-1 D/A コンバータの出力電圧の論理式
00H
0/256 × DAVC(=0V)
01H
1/256 × DAVC
02H
2/256 × DAVC
∼
D/A コンバータ出力
∼
DADR0
DADR1
DADR2
の設定値
FDH
253/256 × DAVC
FEH
254/256 × DAVC
FFH
255/256 × DAVC
( 注意事項 ) 本 D/A コンバータの出力には , バッファアンプを内蔵していません。
354
第 14 章
UART・SIO・
インプットキャプチャ・
アウトプットコンペア
この章では , UART・SIO・インプットキャプ
チャ・アウトプットコンペアの概要 , レジスタの構
成 / 機能 , および動作について説明します。
14.1 UART
14.2 拡張 I/O シリアルインタフェース (SIO)
14.3 インプットキャプチャ
14.4 アウトプットコンペア
355
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.1
UART
UART の概要 , レジスタの構成 / 機能 , および動作について説明します。
■ UART の概要
UART は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアル I/O
ポートで , 以下の特長があります。MB91F355A/355A/354A/F356B/F357B は , UART を
5 チャネル内蔵します。MB91F353A/351A/352A/353A は , 4 チャネル内蔵しています。
356
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
UART の特長
14.1.1
UART の特長 , レジスタ一覧 , およびブロックダイヤグラムについて説明します。
■ UART の特長
UART の特長は , 以下のとおりです。
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ) , CLK 同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート
• 内蔵タイマにより任意のボーレートを設定可能 (「6.2 U-TIMER」参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• UART ch0 ∼ 2 は割込みによる DMA 転送の起動が可能 (ch3, 4 は DMA 起動不可 )
• DRCL レジスタへの書込み動作による DMAC の割込み要因クリア
■ UART のレジスタ一覧
UART のレジスタ一覧は , 以下のとおりです。
15
8 7
0
SCR
SSR
SMR
SIDR(R)/SODR(W)
DRCL
8 ビット
8 ビット
(W)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
15
14
13
12
11
10
9
8
PE
ORE
FRE
BDS
RIE
TIE
7
6
5
4
3
2
1
0
MD1
MD0
-
-
CS0
-
-
-
15
14
13
12
11
10
9
8
PEN
P
SBL
CL
A/D
REC
RXE
TXE
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
-
RDRF TDRE
(R/W)
(R/W)
シリアルインプットレジスタ
シリアルアウトプットレジスタ (SIDR /SODR)
シリアルステータスレジスタ (SSR)
シリアルモードレジスタ (SMR)
シリアルコントロールレジスタ (SCR)
DRCL レジスタ (DRCL)
357
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
■ UART のブロックダイヤグラム
図 14.1-1 に , UART のブロックダイヤグラムを示します。
図 14.1-1 UART のブロックダイヤグラム
制御信号
受信割込み
(CPU へ)
SCK(クロック)
送信クロック
U-TIMER より
外部クロック
SCK
クロック
送信割込み
(CPU へ)
受信クロック
選択回路
受信制御回路
SI(受信データ)
送信制御回路
スタートビット
送信スタート
検出回路
受信ビット
回路
送信ビット
カウンタ
カウンタ
送信パリティ
受信パリティ
カウンタ
カウンタ
SO(送信データ)
受信状態判定回路
受信用シフタ
送信用シフタ
受信終了
SIDR
送信開始
SODR
DMA 用
受信エラー発生信号
(DMAC へ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
制御信号
358
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.1.2
UART のレジスタ
UART で使用するレジスタの構成および機能について説明します。
■ シリアルモードレジスタ (SMR)
シリアルモードレジスタ (SMR) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
SMR
アドレス : ch0 000063H
7
ch1 00006BH MD1
ch2 000073H R/W
ch3 0000C3H
ch3 0000CBH
6
5
4
3
2
1
0
MD0
R/W
-
-
CS0
W
-
-
-
初期値
00--0---B
シリアルモードレジスタ (SMR) は , UART の動作モードを指定します。動作モードの
設定は動作停止中に行い , 動作中にこのレジスタへの書込みは行わないでください。
[ ビット 7, 6] MD1, MD0(MoDe select):
UART の動作モードを選択します。表 14.1-1 に動作モードの選択について示します。
表 14.1-1 動作モード選択
モード
MD1
MD0
0
0
0
非同期 ( 調歩同期 ) ノーマルモード ( 初期値 )
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
CLK 同期モード
-
1
1
設定禁止
動作モード
<注意事項>
モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の
スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を
判別できません。したがって , マルチプロセッサモードのマスタのみをサポートしま
す。
また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に設定
してください。
[ ビット 5, 4] (reserved)
常に "1" を書き込んでください 。
359
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
[ ビット 3] CS0(Clock Select)
UART の動作クロックを選択します。
内 容
値
0
内蔵タイマ (U-TIMER) ( 初期値 )
1
外部クロック
[ ビット 2, 1] (reserved)
常に "0" を書き込んでください。
[ ビット 0] (Reverse) :
未使用ビットです。
■ シリアルコントロールレジスタ (SCR)
シリアルコントロールレジスタ (SCR) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
SCR
アドレス : ch0 000062H
7
ch1 00006AH PEN
ch2 000072H R/W
ch3 0000C2H
ch3 0000CAH
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) はシリアル通信を行う場合の転送プロトコルを
制御します。
[ ビット 7] PEN (Parity Enable):
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定します。
内 容
値
0
パリティなし ( 初期値 )
1
パリティあり
<注意事項>
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では , パ
リティを付加することはできません。
[ ビット 6] P (Parity) :
パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。
内 容
値
360
0
偶数パリティ ( 初期値 )
1
奇数パリティ
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
[ ビット 5] SBL (Stop ビット Length) :
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである , ストップビット
のビット長を指定します。
内 容
値
0
1 ストップビット ( 初期値 )
1
2 ストップビット
[ ビット 4] CL (Character Length) :
送受信する 1 フレームのデータ長を指定します。
内 容
値
0
7 ビットデータ ( 初期値 )
1
8 ビットデータ
<注意事項>
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード
0) のみです。マルチプロセッサモード ( モード 1) および CLK 同期通信 ( モード 2) では ,
8 ビットデータとしてください。
[ ビット 3] A/D (Address/Data) :
非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信する
フレームのデータ形式を指定します。
内 容
値
0
データフレーム ( 初期値 )
1
アドレスフレーム
[ ビット 2] REC (Receiver Error Clear) :
"0"を書き込むことで, SSRレジスタのエラーフラグ (PE, ORE, FRE) をクリアします。
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[ ビット 1] RXE (Receiver Enable) :
UART の受信動作を制御します。
内 容
値
0
受信動作を禁止します ( 初期値 )。
1
受信動作を許可します。
<注意事項>
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合
には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス
トアしたところで受信動作を停止します。
361
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
[ ビット 0] TXE (Transmitter Enable) :
UART の送信動作を制御します。
内 容
値
0
送信動作を禁止します ( 初期値 )。
1
送信動作を許可します。
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。
■ シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジス
タ (SODR)
シリアルインプットデータレジスタ (SIDR) およびシリアルアウトプットデータレジ
スタ (SODR) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
SIDR
アドレス : ch0 000061H
ch1 000069H
ch2 000071H
ch3 0000C1H
ch4 0000C9H
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
アドレス : 同上
XXXXXXXXB
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
データ長が 7 ビットの場合 SIDR, SODR のビット 7 (D7) は無効データとなります。
BDS="1" のときは , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側
を入れかえるため , 見かけ上 ビット 0(D0) が無視されたように見えます。
SODR レジスタへの書込みは , SSR レジスタの TDRE が "1" のときに書き込んでくださ
い。
<注意事項>
このアドレスへの書込みは SODR レジスタへの書込みを , リードは SIDR レジスタの読出
しを意味します。
362
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ シリアルステータスレジスタ (SSR)
シリアルステータスレジスタ (SSR) のレジスタ構成は , 以下のとおりです。
( 注意事項 ) MB91F353A/351A/352A/353A は ch4 がありません。
SSR
アドレス : ch0 000060H
ch1 000068H
ch2 000070H
ch3 0000C0H
ch4 0000C8H
15
14
13
PE
R
ORE
R
FRE
R
12
11
RDRF TDRE
R
R
10
9
8
BDS
R/W
RIE
R/W
TIE
R/W
初期値
00001000B
SSR は UART の動作状態を表すフラグで構成されています。
[ ビット 7] PE (Parity Error):
受信時にパリティエラーが発生したときにセットされる , 割込要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビット ( ビット 10)
に "0" を書き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
内 容
値
0
パリティエラーなし ( 初期値 )
1
パリティエラーが発生
[ ビット 6] ORE (Over Run Error) :
受信時にオーバランエラーが発生したときにセットされる , 割込要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
内 容
値
0
オーバランエラーなし ( 初期値 )
1
オーバランエラー発生
[ ビット 5] FRE (FRaming Error) :
受信時にフレーミングエラーが発生したときにセットされる , 割込要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
内 容
値
0
フレーミングエラーなし ( 初期値 )
1
フレーミングエラー発生
363
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
<注意事項>
• シリアルモードレジスタのビット 3 による内 / 外ボーレートクロックの切換えは書込み
後 , すぐに反映されるので , UART が動作停止状態のときに行ってください。
• シリアルモードレジスタのビット 3 はライトオンリーです。
[ ビット 4] RDRF (Receiver Data Register Full) :
SIDR レジスタに受信データがあることを示す , 割込み要求フラグです。
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出す
と自動的にクリアされます。
内 容
値
0
受信データなし ( 初期値 )
1
受信データあり
[ ビット 3] TDRE (Transmitter Data Register Empty) :
SODR に送信データを書き込めることを示す , 割込み要求フラグです。
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを
書き込めることを表します。
内 容
値
0
送信データの書込み禁止
1
送信データの書込み許可 ( 初期値 )
[ ビット 2] BDS( ビット Direction Select)
転送方向選択ビットです。
値
内 容
0
最下位ビット (LSB) 側から転送します ( 初期値 )。
1
最上位ビット (MSB) 側から転送します。
<注意事項>
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入れ換えるた
め SDR レジスタへデータを書き込んだ後 , このビットを書き換えると , そのデータは無
効になります。
ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合には , 書
換え前の BDS の値にしたがい , SODR レジスタへの書込みが行われます。
364
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
[ ビット 1] RIE (Receiver Interrupt Enable) :
受信割込みを制御します。
内 容
値
0
割込みを禁止します ( 初期値 )。
1
割込みを許可します。
<注意事項>
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受信があ
ります。
[ ビット 0] TIE (Transmitter Interrupt Enable) :
送信割込みを制御します。
内 容
値
0
割込みを禁止します ( 初期値 )。
1
割込みを許可します。
<注意事項>
送信割込み要因は , TDRE による送信要求があります。
■ DRCL レジスタ (DRCL)
DRCL レジスタ (DRCL) のレジスタ構成は , 以下のとおりです。
DRCL
アドレス : ch0 000066H
ch1 00006EH
ch2 000076H
15
14
13
12
11
10
9
8
W
W
W
W
W
W
W
W
初期値
--------B
DRCL は , DMAC の割込み要因をクリアするためのレジスタです。任意の値を書き込
むことによって DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイト
でアクセスしてください。
割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする
まで DMAC 要因を保持します。
DMAC を起動しない割込み処理により , 各種「割込み要求フラグ」がクリアされても ,
DMAC の割込み要因は保持したままとなります。
このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , UART を指定し
DMAC を動作許可すると , 各種「割込み要求フラグ」がセットされていないにもかか
わらず , DMAC が起動され意図しない動作をします。
したがって , 初めて DMAC を起動する際 , または DMAC 起動以前に , DMAC を起動し
ない割込みを用いて UART を使用している場合 , このレジスタを利用して DMAC の割
込み要因をクリアしてください ( このレジスタは書込み専用です ) 。
365
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.1.3
UART の動作説明
UART の動作について説明します。
■ UART の動作モード
UART は , 表 14.1-2 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 14.1-2 に UART の動作モードを示します。
表 14.1-2 UART の動作モード
モード
パリティ
データ長
有/無
7
有/無
8
1
無
8+1
2
無
8
0
動作モード
非同期 ( 調歩同期 ) ノーマルモード
非同期 ( 調歩同期 ) マルチプロセッサ
モード
CLK 同期モード
ストップビット長
1 ビットまたは
2 ビット
無
ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動
作しませんので , 設定しないでください。
■ UART のクロック選択
a) 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード
値でボーレートが決まります。このときのボーレートの算出式は , 以下のとおりで
す。
非同期 ( 調歩同期 ) Φ / (8 × β)
CLK 同期 Φ / β
Φ: 周辺系マシンクロック 周波数
β:U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% ∼+ 1% ま
での範囲で転送が可能です。
b) 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロック
の周波数を f とすると次のようになります。
非同期 ( 調歩同期 ) f/8
CLK 同期 f
ただし , f は最大 3.125MHz までです。
366
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ 非同期 ( 調歩同期 ) モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.1-2 に , 転送
データフォーマットを示します。
図 14.1-2 転送データフォーマット ( モード 0, 1)
SI,SO
0
1
Start LSB
1
1
0
0
1
0 1 1
MSB Stop
A/D Stop
(モード0)
(モード1)
転送されたデータは 01001101 B
図 14.1-2 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロック
を入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが
できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。
また, マルチプロセッサモードではパリティを付加することはできません。そのかわり,
A/D ビットが必ず付加されます。
● 受信動作
SCR レジスタの RXE ビット ( ビット 1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットにしたがい 1 フレームデータの受信が行われます。
1 フレームの受信が終わると ,
エラーが発生した場合にはエラーフラグのセットが行われた後 RDRF フラグ (SSR レジ
スタビット 4) がセットされます。このとき同じ SSR レジスタの RIE ビット ( ビット 1)
が "1" にセットされていれば CPU に対して受信割込みが発生します。SSR レジスタの
各フラグを調べ , 正常受信なら SIDR レジスタをリードして , エラーが発生していれば
必要な処理を行うようにしてください。
RDRF フラグは , SIDR レジスタをリードするとクリアされます。
● 送信動作
SSR レジスタの TDRE フラグ ( ビット 3) が "1" のとき , SODR レジスタに送信データ
を書き込みます。ここで , SCR レジスタの TXE ビット ( ビット 0) が "1" なら送信が行
われます。
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開
始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな
ります。このとき同じ SSR レジスタの TIE ビット ( ビット 0) が "1" にセットされてい
れば CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットする
ように要求します。
TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。
367
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
■ CLK 同期モード
● 転送データフォーマット
UART は , NRZ (Non Return to Zero) 形式のデータのみを扱います。図 14.1-3 に , 送受信
クロックとデータとの関係を示します。
図 14.1-3 転送データフォーマット ( モード 2)
SODR 書込み
マーク
SCK
RXE,TXE
SI,SO
1
LSB
0
1
1
0
0
1
0
MSB
(モード2)
転送されたデータは 01001101B
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。
また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファ
SODR レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイ
ト分のクロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマーク
レベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター
ト / ストップビットがないのでオーバランエラー以外のエラー検出は行われません。
● 初期化
CLK 同期モードを使用する場合の , 各制御レジスタの設定値を示します。
① SMR レジスタ
MD1, MD0:10
CS: クロック入力を指定
② PFR( ポートファンクション ) レジスタ
SCE: 内部タイマの場合 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
368
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
● 通信開始
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
● 通信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたかを判断してください。
■ 割込み発生およびフラグのセットタイミング
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 のデータは無効データとなります。
図 14.1-4 に , モード 0 の場合の ORE, FRE, RDRF のセットタイミングを示します。
図 14.1-4 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
D6
D7
Stop
PE,ORE,FRE
RDRF
受信割込み
369
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込要求が発生します。また , 受信可能なデータ長は 8 ビット
のため最後の 9 ビット目のアドレス / データを示すデータは無効データとなります。
ORE, FRE がアクティブ時は , SIDR のデータは無効データとなります。図 14.1-5 に ,
モード 1 の場合の ORE, FRE, RDRF のセットタイミングを示します。
図 14.1-5 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D7
アドレス/
データ
STOP
ORE,FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込要求が発生します。ORE がアクティブ時は , SIDR のデータは無効
データとなります。図 14.1-6 に , モード 2 の場合の ORE, RDRF のセットタイミングを
示します。
図 14.1-6 ORE, RDRF のセットタイミング ( モード 2)
データ
D5
D6
D7
ORE
RDRF
受信割込み
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされて内部のシフトレジスタに転送
され , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込要求が発生し
ます。
送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE も含む ) を書き込む
と , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止してから UART の送信
動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 のときは RXE
も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれたデータは
送信されます。
図 14.1-7 に , モード 0 または 1 の場合の TDRE のセットタイミングを示します。
370
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
図 14.1-7 TDRE のセットタイミング ( モード 0, 1)
SODR 書込み
TDRE
CPU へ割込みを要求する
SO 割込み
SO 出力
ST
D0
D1
D2
D3
D4
D5
D6
ST:スタートビット D0~D7:デ ータビット
SP:ストップビット A/D :アドレス/データマルチプレクサ
D7 SP SP
A/D
ST D0
D1
D2
D3
D5
D6 D7
図 14.1-8 に , モード 2 の場合の TDRE のセットタイミングを示します。
図 14.1-8 TDRE のセットタイミング ( モード 2)
SODR 書込み
TDRE
CPU へ割込みを要求する
SO 割込み
SO 出力
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3 D4
<注意事項>
• SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮
の送信データを SODR レジスタに書き込む必要があります。
• 通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ
は保証されません。
• 割込みによる DMA 転送を最初に起動する前に DRCL レジスタに書き込んでください。
371
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.1.4
応用例
モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に
使用されます。
■ システム構築例 ( モード 1 使用時 )
図 14.1-9 に , モード 1 を使用時のシステム構築の例を示します。このリソースでは , ホ
スト側の通信インタフェースのみサポートします。
図 14.1-9 モード 1 を使用時のシステム構築例
SO
SI
ホスト CPU
SO SI
スレーブCPU#0 SO
SI
スレーブCPU#1
通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" のときのデータで , それにより通信先となるス
レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR
レジスタの A/D が "0" のときのデータです。図 14.1-10 に , そのフローチャートを示し
ます。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
372
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
図 14.1-10 モード 1 使用時の通信フローチャート
(ホスト CPU )
START
転送モードを1とする
D0~D7 にスレーブ CPU を
選択するデータ、
A/D に "1"をセットし
1バイト転送
A/D に"0"をセット
受信動作許可
スレーブ CPU と通信
No
通信終了?
Yes
他の
スレーブ CPU と
通信
No
Yes
受信動作禁止
END
373
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
■ ボーレートと U-TIMER のリロード値の設定例
表 14.1-3 に非同期 ( 調歩同期 ) モードでのボーレートと U-TIMER のリロード値の設定
例を , 表 14.1-4 に CLK 同期モード時のボーレートと U-TIMER のリロード値の設定例
を示します。
表中の周波数は , 周辺系マシンクロック周波数を表します。また , UCC1 は , U-TIMER
の UTIMC レジスタ UCC1 ビットに設定する値です。
表中の "-" 部は , 誤差が± 1% を超えてしまうため使用できないことを示します。
下記 U-TIMER リロード値は 10 進数で表示してあります。
表 14.1-3 非同期 ( 調歩同期 ) モード時のボーレートと U-TIMER のリロード値の設定
例
φ : 周辺系クロック周波数
ボーレート
ms
φ=25MHz
φ=20MHz
φ=12.5MHz
φ=10MHz
1200
833.33
1301(UCC1=0)
1040(UCC1=1)
650(UCC1=0)
520(UCC1=0)
2400
416.67
650(UCC1=0)
520(UCC1=0)
324(UCC1=1)
259(UCC1=1)
4800
208.33
324(UCC1=1)
259(UCC1=1)
162(UCC1=1)
129(UCC1=0)
9600
104.17
161(UCC1=1)
129(UCC1=0)
80(UCC1=1)
64(UCC1=0)
19200
52.08
80(UCC1=1)
64(UCC1=0)
39(UCC1=1)
31(UCC1=1)
38400
26.04
39(UCC1=1)
31(UCC1=1)
19(UCC1=1)
──
57600
17.36
26(UCC1=0)
20(UCC1=1)
12(UCC1=1)
──
115200
8.681
12(UCC1=1)
10400
96.15
149(UCC1=0)
──
119(UCC1=0)
──
74(UCC1=0)
──
59(UCC1=0)
31250
32.00
49(UCC1=0)
39(UCC1=0)
24(UCC1=0)
19(UCC1=0)
62500
16.00
24(UCC1=0)
19(UCC1=0)
11(UCC1=1)
9(UCC1=0)
*: ± 1% 以上の誤差あり
表 14.1-4 CLK 同期モード時のボーレートと U-TIMER のリロード値の設定例
φ : 周辺系クロック周波数
ボーレート
ms
φ=25MHz
φ=20MHz
φ=12.5MHz
φ=10MHz
250K
4.00
49(UCC1=0)
39(UCC1=0)
24(UCC1=0)
19(UCC1=0)
11(UCC1=1)
9(UCC1=0)
*
4(UCC1=0)
500K
2.00
24(UCC1=0)
19(UCC1=0)
1M
1.00
11(UCC1=1)
9(UCC1=0)
*: ± 1% 以上の誤差あり
374
5(UCC1=0)
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.2
拡張 I/O シリアルインタフェース (SIO)
拡張 I/O シリアルインタフェース (SIO) の概要 , レジスタの構成 / 機能 , および動作
について説明します。
■ 拡張 I/O シリアルインタフェースの概要
本ブロックは , 8 ビット× 1 チャネル . 構成のクロック同期式によるデータ転送可能な
シリアル I/O インタフェースです。
375
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.2.1
拡張 I/O シリアルインタフェース (SIO) 概要
本ブロックでは , データ転送において LSB ファースト /MSB ファーストの選択が可
能です。MB91F355A/355A/354A/F356B/F357B はこの SIO を 3 チャネル内蔵して
います。MB91F353A/351A/352A/353A は SIO を 2 チャネル内蔵しています。
■ シリアル I/O の動作モード
シリアル I/O の動作モードには , 以下の 2 種類があります。
• 内部シフトクロックモード :
内部クロックに同期してデータ転送を行います。
• 外部シフトクロックモード :
外部端子 (SCK) から入力されるクロックに同期してデータ転送を行います。この
モードで外部端子 (SCK) を共有している汎用ポートを操作することにより , CPU の
命令による転送動作も可能です。
■ 拡張 I/O シリアルインタフェース (SIO) のレジスタ一覧
拡張 I/O シリアルインタフェース (SIO) のレジスタ一覧は , 以下のとおりです。
15
14
13
アドレス
ch5: 000024H SMD2 SMD1 SMD0
ch6: 000028H
ch7: 00002CH
12
SIE
アドレス
ch5: 000025H
ch6: 000029H
ch7: 00002DH
7
-
6
-
5
-
4
-
3
MODE
2
BDS
1
-
アドレス
ch5: 000026H
ch6: 00002AH
ch7: 00002EH
15
-
14
-
13
-
12
-
11
-
10
-
9
TST1
アドレス
ch5: 000027H
ch6: 00002BH
ch7: 00002FH
アドレス
ch5: 000032H
ch6: 000034H
ch7: 000036H
アドレス
ch5: 000039H
ch6: 00003AH
ch7: 00003BH
376
11
SIR
10
9
8
BUSY STOP STRT
0
-
シリアルモード
コントロールステータス
レジスタ (SMCS)
8
TST0 SIO テストレジスタ
(SES)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
15
14
13
12
11
10
9
8
MD
-
-
-
DIV3
DIV2
DIV1
7
-
6
-
5
-
4
-
3
-
2
-
1
-
シリアルデータレジスタ
(SDR)
DIV0 専用プリスケーラ
コントロールレジスタ
(CDCR)
0
-
DMAC 割込み要因クリア
レジスタ (SRCL)
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ 拡張 I/O シリアルインタフェース (SIO) のブロックダイヤグラム
図 14.2-1 に , 拡張 I/O シリアルインタフェース (SIO) のブロックダイヤグラムを示しま
す。
図 14.2-1 拡張 I/O シリアルインタフェースのブロックダイヤグラム
内 部 デ ー タ バ ス
MSB (ファースト)D0~ D7
初期値
D7~D0( LS B ファースト)
転送方向選択
SI5~SI7
リード
ライト
SDR(シリアルデータレジスタ)
SO5~SO7
SCK5~SCK7
シフトクロック
カウンタ
制御回路
内部クロック
2
1
0
SMD2 SMD1 SMD0 SIE SIR BUSY STOP STRT MODE BDS
割込み
要求
SCE
PFRレジスタ
内 部 デ ー タ バ ス
( 注意事項 ) MB91F353A/351A/352A/353A は SI5, SCK5, SO5 がありません。
377
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.2.2
拡張 I/O シリアルインタフェースのレジスタ
拡張 I/O シリアルインタフェースで使用するレジスタの構成および機能について説
明します。
■ シリアルモードコントロールステータスレジスタ (SMCS)
シリアルモードコントロールステータスレジスタ (SMCS) のレジスタ構成は , 以下の
とおりです。
SMCS
15
14
13
アドレス : 000024H SMD2 SMD1 SMD0
R/W
R/W
000028H R/W
00002CH
12
11
10
9
8
SIE
R/W
SIR
R/W
BUSY
R/W
STOP
R/W
STRT
R/W
*1
初期値
00000010B
*2
SMCS
7
6
5
4
3
2
1
0
アドレス : 000025H
000029H
00002DH
-
-
-
-
MODE
R/W
BDS
R/W
-
-
初期値
----00--B
*1 : ライト動作は , "0" のみ可能
*2 : ライト動作は , "0" のみ可能 , リード動作は常に "0"
シリアル I/O の転送動作モードを制御するレジスタです。以下に各ビットの機能につ
いて説明します。
( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000024H, 000025H
の設定は無効です ) 。
[ビット15, 14, 13] シフトクロック選択ビット (SMD2, SMD1, SMD0:Serial Shift Clock
モード )
シリアルシフトクロックモードを以下のように選択します。
378
SMD2
SMD1
SMD0
0
0
0
φ=25MHz
div=3
φ=20MHz
div=4
φ=10MHz
div=5
分周値
2.5MHz
1MHz
2
0
0
1
設定禁止
2.08MHz
1.25MHz
500kHz
4
0
1
0
520kHz
312kHz
125kHz
16
0
1
1
260kHz
156kHz
62.5kHz
32
1
0
0
130kHz
78kHz
31.2kHz
64
1
0
1
1
1
0
外部シフトクロックモード
reserved
1
1
1
reserved
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
通信プリスケーラ (CDCR) の設定
( マシンクロック )
div
MD
DIV3
DIV2
DIV1
DIV0
3
1
1
1
0
1
4
1
1
1
0
0
5
1
1
0
1
1
6
1
1
0
1
0
7
1
1
0
0
1
8
1
1
0
0
0
リセットにより "000" に初期化されます。本ビットの転送中の書換えは禁止します。
シフトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが選択できま
す。
SMD2, 1, 0 = "110", "111" はリザーブですので設定しないでください。
外部シフトクロックモード選択時 , SCK5-7 端子を共有しているポートを操作するこ
とによって命令ごとにシフト動作させることも可能です。
[ ビット 12] シリアル I/O 割込み許可ビット (SIE:Serial I/0 Interrupt Enable)
シリアル I/O の割込み要求を以下のように制御します。
値
内 容
0
シリアル I/O 割込み禁止 ( 初期値 )
1
シリアル I/O 割込み許可
リセットにより "0" に初期化され , リード / ライトが可能です。
[ ビット 11] シリアル I/O 割込み要求ビット (SIR:Serial I/0 Interrupt Request)
シリアルデータの転送が終了すると "1" にセットされ , 割込許可時 (SIE = "1") にこ
のビットが "1" になると , CPU へ割込要求が発生します。クリア条件はモードビット
によって異なります。モードビットが "0" のとき , SIR ビットへの "0" 書込みにより
クリアされます。モードビットが "1" のとき , SDR の読出し , または書込み動作によ
りクリアされます。モードビットの値に関わらずリセット , または STOP ビットへの
"1" 書込み動作によりクリアされます。
本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系命令
の読出し時は , 常に , "1" が読み出されます。
[ ビット 10] 転送状態ビット (BUSY)
シリアル転送が実行中かどうかを示すビットです。
BUSY
動 作
0
停止またはシリアルデータレジスタ R/W 待機状態 ( 初期値 )
1
シリアル転送状態
リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。
379
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
[ ビット 9] ストップビット (STOP)
シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると STOP = 1
による停止状態となります。
STOP
動 作
0
通常動作
1
STOP = 1 による転送停止 ( 初期値 )
リセットにより "1" に初期化されます。本ビットは , リード / ライトが可能です。
[ ビット 8] スタートビット (STRT:Start)
シリアル転送の起動を行うビットです。停止状態で "1" を書くことによって転送が開
始されます。シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1"
のライトは無視され , "0" の書込みは意味を持ちません。
読出し時には常に "0" が読み出されます。
[ ビット 3] シリアルモード選択ビット ( モード )
このビットにより停止状態からの起動条件の選択を行います。ただし , 動作中の書換
えは禁止します。
モード
動 作
0
STRT = 1 にすることにより起動します ( 初期値 ) 。
1
シリアルデータレジスタのリード / ライトにより起動します。
リセットにより "0" に初期化され , 読出し / 書込みが可能です。DMA を起動する際
には , "1" にしておいてください。
[ ビット 2] 転送方向選択ビット (BDS: ビット Direction Select)
シリアルデータ入出力時に , 最下位ビット側から先に転送するか (LSB ファースト ) ,
最上位ビット側から先に転送するか (MSBファースト) を, 以下のように選択します。
値
内 容
0
LSB ファースト ( 初期値 )
1
MSB ファースト
<注意事項>
• 転送方向の選択は SDR にデータを書き込む前に , 設定しておいてください。
• リセットにより "0" に初期化されます。本ビットは , 読出し / 書込み可能です。
[ ビット 7 ∼ 4, 1, 0] 未使用ビット
未使用ビットです。
380
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ シリアルシフトデータレジスタ (SDR)
シリアルシフトデータレジスタ (SDR) のレジスタ構成は , 以下のとおりです。
本レジスタは必ずバイトでアクセスしてください。
SDR
7
アドレス : 000027H D7
00002BH R/W
00002FH
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
初期値
XXXXXXXXB
( 不定 )
シリアル I/O の転送データを保持するシリアルデータレジスタです。転送中の SDR へ
の書込み , および読出しは禁止です。
( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000027H の設定は
無効です ) 。
■ SIO テストレジスタ (SES)
SIO テストレジスタ (SES) のレジスタ構成は , 以下のとおりです。
本レジスタは必ずバイトでアクセスしてください。
SES
アドレス : 000026H
00002AH
00002EH
15
-
14
-
13
-
12
-
11
-
10
-
9
TST1
R/W
8
TST0
R/W
初期値
------00B
( 不定 )
[ ビット 9, 8] TST1, TST0
テスト用のビットです。必ず "0" を書き込んでください。
( 注意事項 )
MB91F353A/351A/352A/353A は SIO ch5 がありません (000026 H の設定
は無効です ) 。
■ 専用プリスケーラコントロールレジスタ (CDCR)
専用プリスケーラコントロールレジスタ (CDCR) のレジスタ構成は , 以下のとおりで
す。
本レジスタは必ずバイトでアクセスしてください。
CDCR
15
MD
アドレス : 000032H
000034H R/W
000036H
14
-
13
-
12
-
11
DIV3
R/W
10
DIV2
R/W
9
DIV1
R/W
8
DIV0
R/W
初期値
0---1111B
( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000032 H の設定は
無効です ) 。
[ ビット 15] MD (Machine clock divide moDe select)
通信プリスケーラの動作許可ビットです。
値
内 容
0
通信プリスケーラは停止します ( 初期値 )。
1
通信プリスケーラは動作します。
381
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
[ ビット 11, 10, 9, 8] DIV3, DIV2, DIV1, DIV0 (DIVide3 ∼ 0)
周辺系クロック (CLKP) の分周比を決定します。
DIV3 ∼ 0
分周比
1101B
3 分周
1100B
4 分周
1011B
5 分周
1010B
6 分周
1001B
7 分周
1000B
8 分周
<注意事項>
分周比を変えた場合には , クロックの安定時間として 2 分周分の時間をおいてから通信を
行ってください。
■ DMAC 割込み要因クリアレジスタ (SRCL)
DMAC 割込み要因クリアレジスタ (SRCL) のレジスタ構成は , 以下のとおりです。
本レジスタは必ずバイトでアクセスしてください。
SRCL
7
アドレス :
000039H R/W
00003AH
00003BH
6
R/W
5
R/W
4
R/W
3
R/W
2
R/W
1
R/W
0
R/W
初期値
--------B
( 不定 )
SIO の割込み要因をクリアするためのレジスタです。任意の値を書き込むことによっ
て DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイトでアクセスし
てください。
割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする
まで DMAC 要因を保持します。
DMAC を起動しない割込み処理により , シリアル I/O 割込み要求フラグがクリアされ
ても , DMAC の割込み要因は保持したままとなります。
このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , SIO を指定し DMAC
を動作許可すると , シリアル I/O 割込み要求フラグがセットされていないにもかかわら
ず , DMAC が起動され意図しない動作をします。
したがって , 初めて DMAC を起動する際または DMAC 移動以前に , DMAC を起動しな
い割込みを用いて SIO を使用している場合 , このレジスタを利用して DMAC の割込み
要因をクリアしてください ( このレジスタは書込み専用です ) 。
( 注意事項 ) MB91F353A/351A/352A/353A は SIO ch5 がありません (000039H の設定は
無効です ) 。
382
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.2.3
拡張 I/O シリアルインタフェース (SIO) の動作説明
本ブロックはシリアルモードコントロールステータスレジスタ (SMCS) , シリアルシ
フトデータレジスタ (SDR) により構成され , 8 ビットのシリアルデータの入出力に
使用します。
■ 拡張 I/O シリアルインタフェース (SIO) の動作概要
シリアルデータの入出力は , シフトレジスタの内容がシリアルシフトクロック ( 外部ク
ロック , 内部クロック ) の立下がりに同期してビット直列にシリアル出力端子 (SO5-7
端子 ) に出力され , 立上がりに同期してシリアル入力端子 (SI5-7 端子 ) からビット直列
に SDR ( シフトレジスタ ) に入力されます。
シフトの方向 (MSB からの転送または LSB からの転送 ) は , SMCS ( シリアルモードコ
ントロールステータスレジスタ ) の方向指定ビット (BDS) により指定することができ
ます。
転送が終了するとシリアルモードコントロールステータスレジスタ (SMCS) のモード
ビットによって停止状態または , データレジスタ R/W 待機状態に入ります。
各々の状態から転送状態に移るには , それぞれ次のことを行います。
1) 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま
す (STOP と STRT は同時設定が可能です ) 。
2) シリアルシフトデータレジスタR/W待機状態からの復帰時はデータレジスタをリー
ド , またはライトします。
■ シフトクロック
シフトクロックは内部シフトクロックモード, 外部シフトクロックモードの2種類があ
り , SMCS の設定で指定します。
モードの切換えは , シリアル I/O が停止した状態で行ってください。停止状態の確認は ,
BUSY ビットを読み出すことで可能です。
● 内部シフトクロックモード
内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク
ロックが SCK 端子より出力可能です。
データが 1 クロックごとに 1 ビット転送されます。転送の速度は ,
転送速度 (S) =
A
内部クロックのマシンサイクル (Hz)
A は SMCS の SMD ビットで示す分周比で下記の通り。
(φ ÷ div) /2, (φ ÷ div) /22, (φ ÷ div) /24, (φ ÷ div) /25, (φ ÷ div) /26
383
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
● 外部シフトクロックモード
SCK 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに
1 ビット転送されます。転送速度は DC から 1/ (8 周辺系クロックサイクル ) まで可能
です。例えば , "1" 周辺系クロックサイクル= 0.04 µs のとき , 3.125MHz まで可能です。
命令ごとに転送することもでき , 次のような設定をすることによって実現します。
外部シフトクロックモードを選択し , ポートファンクション (PFR) レジスタの SCK 対
応ビットを "0" に設定します。さらに , SCK 端子を共有しているポートの方向レジスタ
に "1" を書き込み , ポートを出力モードに設定します。以上の設定をした後 , ポートの
データレジスタ (PDR) に "1", "0" を書き込むと , SCK 端子に出力されるポートの値を外
部クロックとして取り込み , 転送動作を行います。シフトクロックの開始は "H" から
のスタートさせてください。
<注意事項>
シリアル I/O 動作中の SMCS・SDR への書込みは禁止です。
■ シリアル I/O の動作状態
シリアル I/O の動作状態として STOP 状態 , 停止状態 , SDR の R/W 待機状態 , 転送状態
の 4 種類の状態があります。
● STOP 状態
リセット時 , または SMCS の STOP ビットに "1" を書き込んだときの状態でシフトカウ
ンタは初期化され , SIR = "0" となります。
STOP 状態からの復帰は , STOP = "0", STRT = "1" ( 同時設定可能 ) とすることによっ
て行われます。STOP ビットは STRT ビットより優先ビットですので STOP = 1 のとき
STRT = 1 としても転送動作は行われません。
● 停止状態
モードビットが "0" のとき , 転送が終了したことによって SMCS が BUSY = "0", SIR =
"1" となり , カウンタが初期化され停止状態に入ります。
停止状態からの復帰は STRT =
"1" にすると転送動作が再開されます。
● シリアルデータレジスタ R/W 待機状態
SMCS のモードビットが "1" のとき , シリアル転送が終了すると , BUSY = "0", SIR =
"1" となりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可レジスタが
許可状態ならば本ブロックより割込み信号を出します。
R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた
りすると BUSY = 1 となり転送動作が再開されます。
384
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
● 転送状態
BUSY = 1 でシリアル転送を行っている状態です。モードビットによりそれぞれ停止
状態および R/W 待機状態に遷移します。
図 14.2-2 に , 各状態の動作遷移図を示します。
図 14.2-2 I/O 拡張シリアルインタフェース動作遷移図
リセット
STOP=0 & STRT=0
転送終了
STRT=0, BUSY=0
MODE=0
STOP=1
MODE=0
STOP=0 &
&
STOP=0
STRT=1 &
終了
転送 動作
STRT=1, BUSY=1
STOP
STRT=0, BUSY=0
STOP=1
STOP=1
STOP=0
&
STRT=1
シリアルデータレジスタR/W待機
MODE=1 & 終了 & STOP=0
SDRのR/W & MODE=1
STRT=1, BUSY=0
MODE=1
図 14.2-3 に , シリアルデータレジスタへのリード , ライト概念図を示します。
シリアルデータ
図 14.2-3 シリアルデータレジスタへのリード , ライト概念図
SOT
SIN
データバス
データバス
リード
ライト
割込み出力
I/O 拡張
シリアル
インタフェース
リード
ライト
CPU
①
②
割込み入力
割込みコントローラ
データバス
① モード= 1 のとき , シフトクロックカウンタによって転送終了し , SIR = 1 となって
リード / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生しま
す。ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送
中断のときは割込み信号は発生しません。
② シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリ
アル転送を開始します。
■ シフト動作のスタート / ストップタイミングと入出力のタイミング
• スタート :
SMCS の STOP ビットを "0", STRT ビット "1" に設定します。
• ストップ :
転送終了によって停止するときと STOP = 1 によって停止するときがあります。
- STOP = 1 によって停止 :
モードビットにかかわらず SIR = 0 のまま停止します。
- 転送終了で停止 :
モードビットにかかわらず SIR = 1 となり停止します。
385
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
BUSY ビットはモードビットにかかわらずシリアル転送状態のとき "1" となり , 停止状
態 , または R/W 待機状態のとき "0" となります。転送状態を確認したいときはこのビッ
トをリードしてください。
図 14.2-4 に , 内部クロックの場合のシフト動作のスタート / ストップタイミングを示し
ます。
図 14.2-4 シフト動作のスタート / ストップタイミング ( 内部クロック )
SCK5~7
(転送スタート)
STRT
MODE=0 のとき
BUSY
DO0
SO5~7
"1"出力
(転送終了)
DO7 (データ保持)
・ ・ ・
図 14.2-5 に , 外部ファーストの場合のシフト動作のスタート / ストップタイミングを示
します。
図 14.2-5 シフト動作のスタート / ストップタイミング ( 外部ファースト )
SCK5~7
STRT
(転送スタート)
MODE=0 のとき
(転送終了)
BUSY
DO0
SO5~7
・ ・ ・
DO7 (データ保持)
図 14.2-6 に , 外部シフトクロックモードで命令ごとにシフトさせた場合のシフト動作
のスタート / ストップタイミングを示します。
図 14.2-6 シフト動作のスタート / ストップタイミング
( 外部シフトクロックモードで命令ごとにシフトさせた場合 )
SCK5~7
STRT
PDRのSCKビット"0"
PDRのSCKビット"1"
(転送終了)
MODE=0 のとき
PDRのSCKビット"0"
BUSY
SO5~7 ・ ・ ・
DO6
DO7 (データ保持)
<参考>
命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力さ
れ , "0" が書き込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード選択
で , PFR の SCE = 0 のとき ) 。
386
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
図 14.2-7 に , STOP ビットを "1" としたときストップタイミングを示します。
図 14.2-7 STOP ビットを "1" としたときストップタイミング
SCK5~7
(転送 スタート)
STRT
"1"出力
(転送終了)
MODE=0 のとき
BUSY
STOP
SO5~7 ・ ・ ・
DO3
DO4
DO5 (データ保持)
<注意事項>
DO7 ∼ DO0 出力データを示します。
シリアルデータの転送中は , シフトクロックの立下がりでシリアル出力端子 (SO5-7)
からのデータが出力され , 立上がりでシリアル入力端子 (SI5-7) のデータが入力されま
す。
図 14.2-8 に , 入出力のシフトタイミングを示します。
図 14.2-8 入出力のシフトタイミング
○ LSBファースト(BDSビットが"0"の時)
SCK5~7
SI5~7
DI0
DI1
SO5~7
DO0
DO1
SIN 入力
DI2
DI3
DI4
SOT 出力
DO2
DO3
DO4
DI5
DI6
DI7
DO5
DO6
DO7
DI2
DI1
DI0
DO2
DO1
DO0
○ LSBファースト(BDSビットが"1"の時)
SCK5~7
SI5~7
DI7
DI6
SO5~7
DO7
DO6
SIN 入力
DI5
DI4
DI3
SOT 出力
DO5
DO4
DO3
387
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
■ 割込み機能
本ブロックは , CPU に対し割込み要求を発生することができます。データの転送終了
時に割込みフラグである SIR ビットがセットされ , 割込みを許可する SMCS の SIE ビッ
トが "1" のとき , CPU へ割込み要求を出力します。図 14.2-9 に , 割込み信号出力タイミ
ングを示します。
図 14.2-9 割込み信号出力タイミング
SCK5~7
(転送終了)
BUSY
SIR
(注意事項) MODE=1の時
SIE=1
SDR の RD/WR
SO5~7
388
DO6
DO7 (データ保持)
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.3
インプットキャプチャ
インプットキャプチャの概要 , レジスタの構成 / 機能 , および動作について説明しま
す。
■ インプットキャプチャの概要
本モジュールは外部から入力された信号の立上りエッジ , 立下りエッジまたは両エッ
ジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持する機能を
持っています。また , エッジ検出時に割込みを発生することができます。
389
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.3.1
インプットキャプチャの概要
インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ
スタで構成されています。
■ 各インプットキャプチャに対応する外部入力端子
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
• 外部入力の有効エッジを 3 種類から選択可能です。
- 立上りエッジ
- 立下りエッジ
- 両エッジ
• 外部入力有効エッジを検出したときに割込みを発生することができます。
MB91350A は本インプットキャプチャを 4 チャネル内蔵しています。
■ インプットキャプチャのレジスタ一覧
インプットキャプチャのレジスタ一覧は , 以下のとおりです。
15
アドレス :
ch0: 0000DAH CP15
ch1: 0000D8H
ch2: 0000DEH
ch3: 0000DCH
アドレス :0000E1H
アドレス :0000E3H
390
14
13
12
11
10
9
CP14
CP13
CP12
CP11
CP10
CP09
CP08 インプットキャプチャ
データレジスタ上位
(IPCP)
0
インプットキャプチャ
CP00 データレジスタ下位
(IPCP)
7
6
5
4
3
2
1
CP07
CP06
CP05
CP04
CP03
CP02
CP01
7
6
5
4
3
2
1
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
7
6
5
4
3
2
1
ICP1
ICP1
ICE1
ICE0
EG11
EG10
EG01
8
0
インプットキャプチャ
EG20 コントロールレジスタ
(ICS23)
0
インプットキャプチャ
EG00 コントロールレジスタ
(ICS01)
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ インプットキャプチャのブロックダイヤグラム
図 14.3-1 に , インプットキャプチャのブロックダイヤグラムを示します。
図 14.3-1 インプットキャプチャのブロックダイヤグラム
16ビットタイマカウント値(T15~T00)
キャプチャデータレジスタ
ch0,ch2
IN0,2
入力端子
R-bus
エッジ検出
EG11
EG10
EG01
EG00
EG31
EG30
EG21
EG20
16ビットタイマカウント値(T15~T00 )
キャプチャデータレジスタ
ch1,ch3
IN1,3
入力端子
エッジ検出
ICP1
ICP0
ICE1
ICE0
ICP3
ICP2
ICE3
ICE2
割込み
割込み
391
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.3.2
インプットキャプチャのレジスタ
インプットキャプチャで使用するレジスタの構成および機能について説明します。
インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。
• インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
• インプットキャプチャコントロールレジスタ (ICS01, ICS23)
■ インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) のレジスタ構成は , 以下のとお
りです。
IPCP0 ∼ 3
15
アドレス
ch0: 0000DAH CP15
R
ch1: 0000D8H
ch2: 0000DEH
7
ch3: 0000DCH
CP07
R
14
13
12
11
10
9
8
CP14
R
CP13
R
CP12
R
CP11
R
CP10
R
CP09
R
CP08
R
6
5
4
3
2
1
0
CP06
R
CP05
R
CP04
R
CP03
R
CP02
R
CP01
R
CP00
R
初期値
XXXXXXXXB
初期値
XXXXXXXXB
本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16
ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。
このレジスタは 16 ビットデータまたは , 32 ビットデータでアクセスしてください。書
込みはできません。
■ インプットキャプチャコントロールレジスタ (ICS01, ICS23)
インプットキャプチャコントロールレジスタ (ICS01, ICS23) のレジスタ構成は , 以下
のとおりです。
ICS23
アドレス : 0000E1H
ICS01
アドレス : 0000E3H
392
15
14
13
12
11
10
9
8
初期値
ICP3
ICP2
ICE3
ICE2
EG31
EG30
EG21
EG20
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
初期値
ICP1
ICP1
ICE1
ICE0
EG11
EG10
EG01
EG00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
[ ビット 7, 6] ICP3, ICP2, ICP1, ICP0
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE3, ICE2, ICE1, ICE0) がセッ
トされていると , 有効エッジを検出することにより割込みを発生することができま
す。本ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。
リードモディファイライト系の命令では "1" が読めます。
ICPn
インプットキャプチャ割込みフラグ
0
有効エッジ検出なし ( 初期値 )
1
有効エッジ検出あり
ICPn: n の番号がインプットキャプチャのチャネル番号に対応します。
[ ビット 5, 4] ICE3, ICE2, ICE1, ICE0
インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき割込みフラグ
(ICP3, ICP2, ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生
します。
ICEn
インプットキャプチャ割込み指定
0
割込み禁止 ( 初期値 )
1
割込み許可
ICEn: n の番号がインプットキャプチャのチャネル番号に対応します。
[ ビット 3 ∼ 0] EG31, EG30, EG21, EG20, EG11, EG10, EG01, EG00
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可
も兼用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 ) ( 初期値 )
0
1
立上がりエッジ検出↑
1
0
立下がりエッジ検出↓
1
1
両エッジ検出↑ & ↓
エッジ検出極性
EGn1/EGn0: n の番号がインプットキャプチャのチャネル番号に対応します。
393
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
インプットキャプチャの動作説明
14.3.3
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット
フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することが
できます。
■ 16 ビットインプットキャプチャの動作
図 14.3-2 に , インプットキャプチャの取込みタイミングの例を示します。
図 14.3-2 インプットキャプチャの取込みタイミング例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
時間
0000 H
リセット
IN 0
IN 1
IN 2
データ レジスタ0
不定
3FFFH
データ レジスタ1
データ レジスタ2
不定
不定
B FFFH
BFFFH
7FFF H
キャプチャ0 割込み
キャプチャ1 割込み
キャプチャ2割込み
キャプチャ0=立上りエッジ
キャプチャ1=立下りエッジ
キャプチャ2=両エッジ
再度有効エッジにより割込み発生
ソフトウェアにより割込みクリア
■ 16 ビットインプットキャプチャの入力タイミング
図 14.3-3 に , 16 ビットインプットキャプチャの入力タイミングの例を示します。
図 14.3-3 16 ビットインプットキャプチャの入力タイミング
Φ
カウンタ値
N
N+1
インプットキャプチャ入力
有効エッジ
キャプチャ信号
キャプチャレジスタ値
割込み
394
N+1
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.4
アウトプットコンペア
アウトプットコンペアの概要 , レジスタの構成 / 機能 , および動作について説明しま
す。
■ アウトプットコンペアの概要
アウトプットコンペアは 16 ビットコンペアレジスタ , コンペア出力用ラッチ , コント
ロールレジスタより構成されています。16 ビットフリーランタイマ値とコンペアレジ
スタ値が , 一致したとき出力レベルを反転すると共に割込みを発生することができま
す。
395
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.4.1
アウトプットコンペアの特長
MB91F355A/355A/354A/F356B/F357B はアウトプットコンペアを 8 チャネル内蔵
しています。
MB91F353A/351A/352A/353A はアウトプットコンペア 2 チャネル内蔵しています。
■ アウトプットコンペアの特長
本モジュールの特長は , 以下のとおりです。
• 8 本のコンペアレジスタを独立して動作が可能です。各コンペアレジスタに対応し
た出力端子と割込みフラグ
• 2 本のコンペアレジスタをペアにして出力端子を制御することが可能です。コンペ
アレジスタ 2 本を使用して出力端子を反転します。
• 各出力端子の初期値を設定することが可能です。
• 割込みはコンペア一致により発生可能です。
• ch0 のコンペアレジスタは 16 ビットフリーランタイマのコンペアクリアレジスタと
して使用されます。
■ アウトプットコンペアのレジスタ一覧
アウトプットコンペアのレジスタ一覧は , 以下のとおりです。
アドレス :
ch0:0000E6H
ch1:0000E4H
ch2:0000EAH
ch3:0000E8H
ch4:0000EEH
ch5:0000ECH
ch6:0000F2H
ch7:0000F0H
アドレス :
ch01:0000F6H
ch23:0000F4H
ch45:0000FAH
ch67:0000F8H
396
15
14
13
12
11
10
9
8
C15
C14
C13
C12
C11
C10
C09
C08
7
6
5
4
3
2
1
0
C07
C06
C05
C04
C03
C02
C01
C00
15
14
13
12
11
10
9
8
-
-
-
CMOD
-
-
OTD1
7
6
5
4
3
2
1
ICP1
ICP0
ICE1
ICE0
-
-
CST1
コンペアレジスタ上位
(OCCP)
コンペアレジスタ下位
(OCCP)
アウトプットコントロール
OTD0 レジスタ上位
(OCS)
0
アウトプットコントロール
CST0 レジスタ下位
(OCS)
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
■ アウトプットコンペアのブロックダイヤグラム
図 14.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。
図 14.4-1 アウトプットコンペアのブロックダイヤグラム
OTD1
OTD0
(ch0のみフリーランタイマのクリア
レジスタとして使用される)
コンペアレジスタ
コンペア
出力用ラッチ
コンペア回路
R-bus
コンペア
出力用ラッチ
コンペア回路
CST1
出力
(ch0,2,4,6)
OTE0 ~ 7 は,
PFRO にあります
CMOD
コンペアレジスタ
OTE0,2,4,6
OTE1,3,5,7
出力
(ch1,3,5,7)
CST0
ICP1
ICP 0
ICE1
ICE 0
16ビットフリーランタイマ
割込み出力
割込み出力
397
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
14.4.2
アウトプットコンペアのレジスタ
アウトプットコンペアで使用するレジスタの構成および機能について説明します。
アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。
■ コンペアレジスタ (OCCP0 ∼ OCCP7)
コンペアレジスタ (OCCP0 ∼ OCCP7) のレジスタ構成は , 以下のとおりです。
CCCP0 ∼ 7
アドレス :
ch0:0000E6H
ch1:0000E4H
ch2:0000EAH
ch3:0000E8H
ch4:0000EEH
ch5:0000ECH
ch6:0000F2H
ch7:0000F0H
15
14
13
12
11
10
9
8
C15
R/W
C14
R/W
C13
R/W
C12
R/W
C11
R/W
C10
R/W
C09
R/W
C08
R/W
7
6
5
4
3
2
1
0
C07
R/W
C06
R/W
C05
R/W
C04
R/W
C03
R/W
C02
R/W
C01
R/W
C00
R/W
初期値
XXXXH
( 注意事項 ) MB91F353A/351A/352A/353A は OCCP0, OCCP2 の 2 チャネルがあります。
その他 OCCP1, OCCP3 ∼ 7 はありません。
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス
タ値は , 初期値不定ですのでコンペア値を設定してから起動を許可してください。本レ
ジスタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビッ
トフリーランタイマ値が一致したとき , コンペア信号が発生してアウトプットコンペ
ア割込みフラグをセットします。また , ポートファンクションレジスタ (PFRO) の対応
する OTE をセットし出力許可している場合は , コンペアレジスタに対応した出力レベ
ルを反転します。
■ アウトプットコントロールレジスタ (OCS0 ∼ 7)
アウトプットコントロールレジスタ (OCS0 ∼ 7) のレジスタ構成は , 以下のとおりです。
OCP01, 23, 45, 67
15
アドレス :
ch01:0000F6H
ch23:0000F4H
ch45:0000FAH
ch67:0000F8H
14
13
12
11
10
9
8
初期値
11101100B
-
-
-
CMOD
R/W
-
-
OTD1
R/W
OTD0
R/W
7
6
5
4
3
2
1
0
ICP1
R/W
ICP0
R/W
ICE1
R/W
ICE0
R/W
-
-
CST1
R/W
CST0
R/W
初期値
00001100B
ch0, 1 について説明しますので , ch2, ch3, ch4, ch5, ch6, ch7 はそれぞれ
ch0 → ch2, ch4, ch6, ch1 → ch3, ch5, ch7 と読み替えてください。
( 注意事項 ) MB91F353A/351A/352A/353A は OCS45, OCS67 がありません。
398
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
[ ビット 15 ∼ビット 13] 未使用ビット
読出しは , 必ず "1" が読めます。
[ ビット 12] CMOD
端子出力を許可した場合 (OTE1=0 または OTE0=1:PFRO) のコンペア一致における端
子出力レベル反転動作モードを切り換えます。
CMOD = 0 のとき ( 初期値 ) はコンペアレジスタに対応した端子の出力レベルを反
転します。
• OC0:
コンペアレジスタ 0 の一致によりレベルを反転します。
• OC1:
コンペアレジスタ 1 の一致によりレベルを反転します。
CMOD = 1 のときはコンペアレジスタ 0 は , CMOD = 0 と同じく出力レベルを反転
しますが , コンペアレジスタ 1 に対応した端子 (OC1) の出力レベルは , コンペアレジ
スタ 0 の一致とコンペアレジスタ 1 の一致の両方で出力レベルを反転します。
コンペアレジスタ 0 と 1 が同じ値のときはコンペアレジスタ 1 本のときと同じ動作
をします。
• OC0:
コンペアレジスタ 0 の一致によりレベルを反転します。
• OC1:
コンペアレジスタ 0 と 1 の一致によりレベルを反転します。
[ ビット 11, 10] 未使用ビット
読出しは , 必ず "1" が読めます。
[ ビット 9, 8] OTD1, OTD0
アウトプットコンペアレジスタの端子出力を許可した場合の端子出力レベルを変更
するときに使用します。コンペア端子出力の初期値は "0" となります。書込み時はコ
ンペア動作を停止してから行ってください。読出し時は , アウトプットコンペア端子
出力値が読めます。
OTD1, OTD0
コンペア端子出力レベル
0
コンペア端子出力を "0" にします ( 初期値 )
1
コンペア端子出力を "1" にします
OTD1: アウトプットコンペア 1 に対応
OTD0: アウトプットコンペア 0 に対応
399
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
[ ビット 7, 6] ICP1, ICP0
アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリーラ
ンタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1, ICE0)
が許可されているときに本ビットが"1"セットされるとアウトプットコンペア割込み
が発生します。本ビットは "0" 書込みによりクリアされ "1" 書込みでは意味を持ちま
せん。リードモディファイライト系の命令では "1" が読めます。
ICP1, ICP0
割込みフラグ
0
アウトプットコンペア一致なし ( 初期値 )
1
アウトプットコンペア一致あり
ICP1: アウトプットコンペア 1 に対応
ICP0: アウトプットコンペア 0 に対応
フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次
のクロックで発生します。そのため , コンペア一致出力 , および割込みを発生させる
ためには , フリーランタイマの外部クロックに , コンペア一致後最低 "1 クロック " 入
力する必要があります。
[ ビット 5, 4] ICE1, ICE0
アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割込
みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発生し
ます。
ICE1, ICE0
割込み許可指定
0
アウトプットコンペア割込み禁止 ( 初期値 )
1
アウトプットコンペア割込み許可
ICE1: アウトプットコンペア 1 に対応
ICE0: アウトプットコンペア 0 に対応
[ ビット 3, 2] 未使用ビット
読出しは , 必ず "1" が読めます。
[ ビット 1, 0] CST1, CST0
16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許
可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値を
設定してください。
CST1, CST0
ビットフリーランタイマとの一致動作を許可
0
コンペア動作禁止 ( 初期値 )
1
コンペア動作許可
CST1: アウトプットコンペア 1 に対応
CST0: アウトプットコンペア 0 に対応
アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビッ
トフリーランタイマを停止させるとコンペア動作も停止します。
400
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
14.4.3
アウトプットコンペアの動作説明
16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ
リーランタイマ値との値を比較して一致したら割込みフラグをセットするとともに ,
出力レベルを反転することができます。
■ 16 ビットアウトプットコンペアの動作
1 チャネル独立でコンペア動作を行うことができます (CMOD=0 のとき ) 。
図 14.4-2 に , コンペアレジスタ 0, 1 を使用したときの出力波形の例を示します ( 出力の
初期値は "0") 。
図 14.4-2 コンペアレジスタ 0, 1 を使用したときの出力波形例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
0000 H
リセット
コンペアレジスタ 0 値
B FFFH
コンペアレジスタ 1 値
7FFFH
時間
OC0
OC1
コンペア 0 割込み
コンペア 1 割込み
2 組のコンペアレジスタを使い出力レベルを変えることができます。(CMOD=1 のとき
1) を示します。
図 14.4-3 に , コンペアレジスタ 0, 1 を使用したときの出力波形の例を示します ( 出力の
初期値は "0") 。
図 14.4-3 コンペアレジスタ 0, 1 を使用したときの出力波形例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000
時間
H
リセット
コンペアレジスタ 0 値
B FFFH
コンペアレジスタ 1 値
7FFFH
OC0
OC1
コンペア 0 割込み
コンペア 1 割込み
401
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
■ 16 ビットアウトプットコンペアのタイミング
2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD=1 のとき
1) 。
アウトプットコンペアは , フリーランタイマと設定したコンペアレジスタの値が一致
したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する
ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ
ミングに同期して行われます。
〔コンペアレジスタライトタイミング〕
コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。
図 14.4-4 に , コンペアレジスタライトタイミングを示します。
図 14.4-4 コンペアレジスタライトタイミング
N
カウンタ値
N+1 _
N+ 2
N+ 3
一致信号は発生しない
コンペアクリアレジスタ0値
N+ 1
M
コンペアレジスタ0ライト
コンペアクリアレジスタ1値
N+ 3
L
コンペアレジスタ1ライト
コンペア0停止
コンペア1停止
〔コンペアマッチ , 割込みタイミング〕
図 14.4-5 に , コンペアマッチ , 割込みタイミングを示します。
図 14.4-5 コンペアマッチ , 割込みタイミング
Φ
カウントクロック
カウンタ値
コンペアレジスタ値
コンペアマッチ
端子出力
割込み
402
N
N+1 _
N
N+2 _
N+3
第 14 章 UART・SIO・インプットキャプチャ・アウトプットコンペア
〔端子出力タイミング〕
図 14.4-6 に , 端子出力タイミングを示します。
図 14.4-6 端子出力タイミング
カウンタ値
コンペアレジスタ値
N
N+1 _
N
N+1 _
N
コンペアマッチ
端子出力
403
第 14 章 UART・SIO・ インプットキャプチャ・ アウトプットコンペア
404
第 15 章
I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタ
の構成 / 機能 , および動作について説明します。
15.1 I2C インタフェースの概要
15.2 I2C インタフェースのレジスタ
15.3 I2C インタフェースの動作説明
15.4 動作フローチャート
405
第 15 章 I2C インタフェース
15.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ
ス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの特長
I2C インタフェースの特長は , 以下のとおりです。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ジェネラルコールアドレス検出機能
• 転送方向検出機能
• 反復「START」条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード ( 最大 100kbps)/ 高速モード ( 最大 400kbps) に対応
406
第 15 章 I2C インタフェース
■ I2C インタフェースのレジスタ一覧
I2C インタフェースのレジスタ一覧は , 以下のとおりです。
• バスコントロールレジスタ (IBCR)
アドレス : 000094H
初期値 →
15
14
13
12
11
10
9
8
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
• バスステータスレジスタ (IBSR)
アドレス : 000095H
初期値 →
7
6
5
4
3
2
1
0
BB
R
0
RSC
R
0
AL
R
0
LRB
R
0
TRX
R
0
AAS
R
0
GCA
R
0
ADT
R
0
• 10 ビットスレーブアドレスレジスタ (ITBA)
アドレス : 000096H
初期値 →
アドレス : 000097H
初期値 →
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
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
0
0
0
0
0
0
0
0
• 10 ビットスレーブアドレスマスクレジスタ (ITMK)
アドレス : 000098H
15
ENTB
14
RAL
13
-
12
-
11
-
10
-
9
TM9
8
TM8
R
0
R
R
R
R
R/W
R/W
1
1
1
1
1
1
7
6
5
4
3
2
1
0
TM7
R/W
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
1
1
1
1
1
1
1
1
R/W
0
初期値 →
アドレス : 000099H
初期値 →
• 7 ビットスレーブアドレスレジスタ (ISBA)
アドレス : 00009BH
初期値 →
7
6
5
4
3
2
1
0
-
SA6
R/W
0
SA5
R/W
0
SA4
R/W
0
SA3
R/W
0
SA2
R/W
0
SA1
R/W
0
SA0
R/W
0
R
0
407
第 15 章 I2C インタフェース
• 7 ビットスレーブアドレスマスクレジスタ (ISMK)
15
アドレス : 00009AH
ENSB
R/W
0
初期値 →
14
13
12
11
10
9
8
SM6
R/W
1
SM5
R/W
1
SM4
R/W
1
SM3
R/W
1
SM2
R/W
1
SM1
R/W
1
SMA
R/W
1
• データレジスタ (IDAR)
7
アドレス : 00009DH
D7
R/W
0
初期値 →
6
5
4
3
2
1
0
D6
R/W
0
D5
R/W
0
D4
R/W
0
D3
R/W
0
D2
R/W
0
D1
R/W
0
D0
R/W
0
• クロックコントロールレジスタ (ICCR)
15
アドレス : 00009EH
TEST
W
0
初期値 →
14
13
12
11
10
9
8
R
0
EN
R/W
0
CS4
R/W
1
CS3
R/W
1
CS2
R/W
1
CS1
R/W
1
CS0
R/W
1
• クロックディセーブルレジスタ (IDBL)
アドレス : 00009FH
初期値 →
408
7
6
5
4
3
2
1
0
R
-
R
-
R
-
R
-
R
-
R
-
R
-
DBL
R/W
0
第 15 章 I2C インタフェース
■ I2C インタフェースのブロックダイヤグラム
図 15.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。
図 15.1-1 I2C インタフェースのブロックダイヤグラム
ICCR
EN
I2C 動作許可
IDBL
DBL
ICCR
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
CLKP
クロック許可
クロック分周2
2345
32
シフトクロック
エッジ変化タイミング
バスビジィ
リピート
スタート
Last ビット
スタート・ストップ
コンディション検出
送/受
TRX
エラー
First バイト
ADT
AL
アビトレーションロスト検出
SCLI
SCLO
IBCR
BER
BEIE
IBCR
MSS
ACK
IRQ
割 込み要求
INTE
INT
SCC
シフトクロック発生
クロック選択2 (1/12)
LRB
R-bus
Sync
終了
スタート
マスタ
ACK 許可
SDA
SDAO
スタート・ストップ
コンディション発生
GC-ACK許可
GCAA
IDAR
IBSR
スレーブ
AAS
グローバル
コール
GCA
スレーブアドレス
比較
ISMK
FNSB
ITMK
ENTB
RAL
ITBA
ITMK
ISBA
ISMK
409
第 15 章 I2C インタフェース
15.2
I2C インタフェースのレジスタ
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ I2C インタフェースのレジスタ概要
I2C インタフェースには , 次の 9 種類のレジスタがあります。
• バスステータスレジスタ (IBSR)
• バスコントロールレジスタ (IBCR)
• クロックコントロールレジスタ (ICCR)
• 10 ビットスレーブアドレスレジスタ (ITBA)
• 10 ビットスレーブアドレスマスクレジスタ (ITMK)
• 7 ビットスレーブアドレスレジスタ (ISBA)
• 7 ビットスレーブアドレスマスクレジスタ (ISMK)
• データレジスタ (IDAR)
• クロックディセーブルレジスタ (IDBL)
410
第 15 章 I2C インタフェース
15.2.1
バスステータスレジスタ (IBSR)
レジスタは , 全ビット読出し専用です。I2C が動作停止 (ICCR 中の EN = 0) すると
全ビットクリアされます。
■ バスステータスレジスタ (IBSR)
バスステータスレジスタ (IBSR) のレジスタ構成は , 以下のとおりです。
アドレス : 000095H
初期値 →
7
6
5
4
3
2
1
0
BB
R
0
RSC
R
0
AL
R
0
LRB
R
0
TRX
R
0
AAS
R
0
GCA
R
0
ADT
R
0
[ ビット 7] BB (Bus Busy)
I2C バスの状態を示すビットです。
値
内 容
0 「STOP」条件を検出した。
1 「START」条件を検出した ( バス使用中 ) 。
[ ビット 6] RSC (Repeated Start Condition)
反復「START」条件検出ビットです。
値
内 容
0
反復「START」条件は検出されていない。
1
バス使用中に , 反復「START」条件を検出した。
このビットは , スレーブ・アドレス転送終了 (ADT="0") , または「STOP」条件の検出
でクリアされます。
[ ビット 5] AL (Arbitration Lost)
アービトレーションロスト検出ビットです。
値
内 容
0
アービトレーションロストが検出されていない。
1
マスタ送信中にアービトレーションロストが発生した。
このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに "1"
を書き込むことによってクリアされます。
〔アービトレーションロストが発生する例〕
• データ送信が SCL の立上がりエッジで SDA ライン上のデータと一致しない。
• データのファーストビットで , ほかのマスタによって , 反復「START」条件が発生
した。
• I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にドラ
イブされているために , 「START」条件 , または「STOP」条件を生成できない。
411
第 15 章 I2C インタフェース
[ ビット 4] LRB (Last Received ビット )
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
値
内 容
0
スレーブアクノリッジを検出した。
1
スレーブアクノリッジを検出していない。
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
「START」条件または「STOP」条件の検出でクリアされます。
[ ビット 3] TRX (Transferring data)
データ転送中に送信状態を示すビットです。
値
内 容
0
データ送信中でない。
1
データ送信中。
1 セット : マスタモードで「START」条件が生成された
スレーブモードでリードアクセス時 ( 送信 ) , 第一バイトの転送終了
マスタモードで送信中
0 セット : バスがアイドル状態 (BB="0":IBCR)
アービトレーションロス発生
マスタ割込み中 (MSS="1", INT="1") に SCC に "1" が書き込まれた。
マスタ割込み中 (MSS="1", INT="1") に MSS ビットがクリアされた。
スレーブ時 , 転送の最後にアクノリッジが発生しなかった。
スレーブモードでの受信中
マスタモードでのスレーブからデータ受信中
[ ビット 2] AAS (Addressed As Slave)
スレーブ・アドレッシング検出ビットです。
値
内 容
0
スレーブに指定されていない。
1
スレーブに指定された。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出したときにセットされます。
[ ビット 1] GCA (General Call Address)
ジェネラルコールアドレス (00H) 検出ビットです。
値
内 容
0
スレーブとして , ジェネラルコールアドレスを受信していない。
1
スレーブとして , ジェネラルコールアドレスを受信した。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
412
第 15 章 I2C インタフェース
[ ビット 0] ADT (Address Data Transfer)
スレーブ・アドレス受信検出ビットです。
値
内 容
0
受信データがスレーブ・アドレスでない ( またはバス開放中 ) 。
1
受信データがスレーブ・アドレスである。
「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・ア
ドレスのヘッダが検出されると , 第二バイトのあとクリアされ , それ以外のときは , 第
一バイトのあとでクリアされます。
〔第一バイト / 第二バイトのあととは〕
• マスタ割込み (MSS="1", INT="1":IBCR) 中に MSS ビットに "0" が書き込まれた
• マスタ割込み (MSS="1", INT="1":IBCR) 中に SCC ビットに "1" が書き込まれた
• INT ビットがクリアされた
• マスタ , またはスレーブとして転送対象でなければ , すべての転送バイトの最初
413
第 15 章 I2C インタフェース
15.2.2
バスコントロールレジスタ (IBCR)
I2C インタフェースが停止 (EN="0":ICCR) すると , BER, BEIE ビットを除きすべて
のビットがクリアされます。
■ バスコントロールレジスタ (IBCR)
バスコントロールレジスタ (IBCR) のレジスタ構成は , 以下のとおりです。
アドレス : 000094H
初期値 →
15
14
13
12
11
10
9
8
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
[ ビット 15] BER (Bus ERror)
バスエラー割込要求フラグビットです。このビットは , リードモディファイライト
系の命令では , 常に "1" が読まれます。
( ライト時 )
値
内 容
0
バスエラー割込み要求フラグをクリアする。
1
意味をもちません。
( リード時 )
値
内 容
0
バスエラーは検出されていない。
1
エラーコンディションを検出した。
このビットがセットされた場合 , CCR レジスタの EN ビットはクリアされ , I2C インタ
フェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を除き IBSR
と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C インタフェー
スを再度イネーブル (EN = 1) する前にクリアしてください。
〔"1" がセットされる場合〕
1)「START」条件 , または「STOP」条件が不正な場所で検出された ( スレーブ・アド
レス転送中 , データ転送中 ) 。
2) 10 ビットリードアクセス時に , 第一バイトにて 10 ビットライトアクセスする前に ,
リードアクセスのスレーブ・アドレスヘッダが受信された。
3) マスタモードで転送中に「STOP」条件が検出された。
1), 2) の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バス
エラーレポートを抑止するために , 最初の「STOP」条件の受信後フラグセットされま
す。
414
第 15 章 I2C インタフェース
[ ビット 14] BEIE (Bus Error Interrupt Enable)
バスエラー割込み許可ビットです。
値
内 容
0
バスエラー割込み禁止。
1
バスエラー割込み許可。
このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。
[ ビット 13] SCC (Start Condition Continue)
反復「START」条件発生ビットです。
( ライト時 )
値
内 容
0
意味をもちません。
1
マスタ転送時に反復「START」条件を発生させる。
このビットの読出し値は常に "0" です。
マスタモード (MSS="1", INT="1") 中にこのビットに "1" を書き込むと , 反復「START」
条件が発生し , 自動的に INT ビットをクリアします。
[ ビット 12] 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) かどうか確認することが重要とな
ります。
415
第 15 章 I2C インタフェース
<注意事項>
下記条件で使用する場合 , スレーブとして受信できませんのでジェネラルコールアドレス
の送信は禁止です。
・ 本 LSI のほかにマスタモードとなる他の LSI がバス上に存在し , 本 LSI がマスタとして
ジェネラルコールアドレスを送信し , 第 2 バイト目以降でアービトレーションロストが
発生する場合
[ ビット 11] ACK (ACKnowledge)
データを受信許可ビットにしたがいアクノリッジを発生するビットです。
値
内 容
0
データ受信に対しアクノリッジを発生しない。
1
データ受信に対しアクノリッジを発生する。
• このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C イ
ンタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出したと
き , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされていると ,
アクノリッジを返します。
• このビットへの書込みは , 割込みフラグセット中 (INT="1") , またはバスが開放中
(BB="0":IBSR) , I2C インタフェースが停止中 (EN="0":ICCR) に行ってください。
[ ビット 10] GCAA (General Call Address Ackowledge)
ジェネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。
値
内 容
0
ジェネラルコールアドレスを受信に対しアクノリッジ発生しない。
1
ジェネラルコールアドレスを受信に対しアクノリッジ発生する。
このビットへの書込みは , 割込みフラグセット中 (INT="1") , またはバスが開放中
(BB="0":IBSR) , I2C インタフェースが停止中 (EN="0":ICCR) に行ってください。
[ ビット 9] INTE (INTerrupt Enable)
割込み許可ビットです。
値
内 容
0
割込み禁止。
1
割込み許可。
このビットが "1" のとき , INT ビットが "1" なら割込みを発生します。
416
第 15 章 I2C インタフェース
[ ビット 8] 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 インタフェースはスレーブモードになります。
4. 図 1 と図 2 に示したタイミングで , スタートコンディションを発生させる命令を実行
(MSS ビットへの 1 設定 ) すると , アービトレーションロスト検出 (AL ビット =1) によ
る割込み (INT ビット =1) が発生しません。
417
第 15 章 I2C インタフェース
5. AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 1
スタートコンディション未検出 (BB ビット =0) 状態で , SDA 端子または SCL 端子レベ
ルが "L" の時に , スタートコンディションを発生させる命令を実行 (IBCR レジスタの
MSS ビットに 1 を設定 ) した場合。
図 15.2-1 AL ビット =1 検出による割込みが発生しないタイミング図
SCL端子またはSDA端子が"L"レベル
SCL端子
"L"
SDA端子
"L"
I 2C動作許可状態(ENビット=1)
1
マスタモード設定(MSSビット=1)
アービトレーションロスト検出
(ALビット=1)
バスビジー(BBビット)
0
割込み(INTビット)
0
6. AL ビット =1 検出による割込み (INT ビット =1) が発生しない条件 2
他のマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット =1) してス
タートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビットに 1 を
設定 ) した場合。
図 2 に示した通り , I2C が動作禁止 (EN ビット =0) の状態で , I2C バス上の他のマスタ
が通信を開始すると , スタートコンディション未検出 (BB ビット =0) で I2C バスが占
有されている状態になるためです。
図 15.2-2 AL ビット =1 検出による割込みが発生しないタイミング図
Start Condition
9クロック目でINTビット
割込みが発生しない
Stop Condition
SCL端子
SDA端子
SLAVE ADDRESS
ACK
DATA
ACK
ENビット
MSSビット
ALビット
418
BBビット
0
INTビット
0
第 15 章 I2C インタフェース
上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願
いします。
1) スタートコンディションを発生させる命令を実行 (MSS ビットへの 1 設定 )。
2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での
3 ビットデータ送信時間ウェイト * する。
例 : I2C 転送周波数 100 kHz の場合
{1/ (100 × 103)} × 3 = 30 µs
3 ビットデータ送信時間
3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット =1, BB ビット =0
の場合には , ICCR レジスタの EN ビットを 0 にして I2C を初期化する。AL ビッ
トと BB ビットがその他の状態の時は通常処理を行う。
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) の MSS ビットに "1" を設定
クロック制御レジスタ (ICCR) に設定されている
I2C 転送周波数での 3 ビットデータ送信時間ウェイト *
no
BB ビット = 0 でかつ AL ビット = 1
yes
EN ビットを "0" にして I2C の初期化
通常処理へ
* : アービトレーションロストが検出された場合 , MSS ビット =1 設定後 I2C 転送
周波数での 3 ビットデータ送信時間後には確実に AL ビット =1 となります。
7. AL ビット =1 検出による割込み (INT ビット =1) が発生する例
バスビジー検出 (BB ビット =1) されている状態で , スタートコンディションを発生さ
せる命令を実行 (MSS ビットへの 1 設定 ) しアービトレーションロストした場合には ,
AL ビット =1 検出時に INT ビット割込みが発生します。
図 15.2-3 AL ビット =1 時に割込みが発生するタイミング図
9クロック目で割込み
Start Condition
SCL端子
SDA端子
SLAVE ADDRESS
ACK
DATA
ENビット
MSSビット
ALビット
BBビット
ソフトでのALビットクリア
ソフトでのINTビット
クリアでSCL開放
INTビット
419
第 15 章 I2C インタフェース
15.2.3
クロックコントロールレジスタ (ICCR)
クロックコントロールレジスタは , I2C インタフェースの動作許可およびシリアルク
ロックの周波数を設定します。
■ クロックコントロールレジスタ (ICCR)
クロックコントロールレジスタ (ICCR) のレジスタ構成は以下のとおりです。
15
アドレス : 00009EH
TEST
W
0
初期値 →
14
13
12
11
10
9
8
R
0
EN
R/W
0
CS4
R/W
1
CS3
R/W
1
CS2
R/W
1
CS1
R/W
1
CS0
R/W
1
[ ビット 15] テストビット
必ず "0" を設定してください。
[ ビット 14] 未使用ビット
必ず "0" を設定してください。
[ ビット 13] EN (ENable)
I2C インタフェース動作許可ビットです。
値
内 容
0
動作禁止。
1
動作許可。
EN ビットが "0" のとき , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く )
の各ビットはクリアされます。バスエラー発生 (BER="1":IBCR) によりこのビットは
クリアされます。
( 注意事項 ) 動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。
[ ビット 12 ∼ 8] CS4 ∼ CS0 (Clock Period Select 4 ∼ 0)
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN="0") にするか , EN ビットがクリ
アされたときにのみ書込み可能です。
シフトクロックの周波数 fsck は次式のように設定されます。
fsck =
420
φ
N×12 + 16
N>0
φ:周辺マシンクロック(=CLKP)
第 15 章 I2C インタフェース
レジスタ設定
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 は設定禁止です。
クロック周波数
CLKP[MHz]
100K bps
400K bps
n
n
fsck
fsck
25
20
98
4
396.8
12.5
9
101.6
2
320.5
16.7
13
97.6
3
327.4
8.33
6
95.7
1
308.5
7.14
5
95.2
1
264.4
6.25
4
99.2
1
231.4
421
第 15 章 I2C インタフェース
15.2.4
10 ビットスレーブアドレスレジスタ (ITBA)
10 ビットスレーブアドレスレジスタの書換えは動作停止中に行ってください
(EN=0:ICCR)。
■ 10 ビットスレーブアドレスレジスタ (ITBA)
10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成は , 以下のとおりです。
アドレス : 000096H
初期値 →
アドレス : 000097H
初期値 →
15
-
14
-
13
-
12
-
11
-
10
-
9
TA9
8
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
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
0
0
0
0
0
0
0
0
ITBAH
ITBAL
[ ビット 15 ∼ 10]
リード時は常に "0" です。
[ ビット 9 ∼ 0] 10 ビットスレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効 (ITMK:ENTB="1") のとき , スレーブモードでスレーブ・ア
ドレスを受信すると , 受信アドレスと ITBA と比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第一 , 第二バイト受信データと ITBA レジスタと比較されます。一致が検出されると ,
アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。
I2C インタフェースは , 反復「START」条件のあと 10 ビットリードアクセスのアド
レスヘッダの受信に応答します。
スレーブ・アドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブ・アドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
422
第 15 章 I2C インタフェース
15.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)
10 ビットスレーブアドレスマスクレジスタ (ITMK) について説明します。
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK)
10ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成は, 以下のとおりで
す。
アドレス : 000098H
15
ENTB
14
RAL
13
-
12
-
11
-
10
-
9
TM9
8
TM8
R
0
R
R
R
R
R/W
R/W
1
1
1
1
1
1
7
6
5
4
3
2
1
0
TM7
R/W
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
1
1
1
1
1
1
1
1
R/W
0
初期値 →
アドレス : 000099H
初期値 →
[ ビット 15] ENTB: 10 ビットスレーブアドレス許可ビット
10 ビットスレーブアドレス動作許可ビットです。
値
内 容
0
10 ビットスレーブアドレス動作禁止。
1
10 ビットスレーブアドレス動作許可。
このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN="0") で行ってくだ
さい。
[ ビット 14] RAL: スレーブアドレス長ビット
このビットは , スレーブアドレス長を示します。
値
内 容
0
7 ビットスレーブアドレス。
1
10 ビットスレーブアドレス。
このビットは , 10 ビット / 7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB=1, ENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス動作の
どちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (ICCR:EN="0") したときにクリアされま
す。
このビットはリードのみ可能です。
[ ビット 13 ∼ 10] 未使用ビット
リード時は常に "1" が読まれます。
423
第 15 章 I2C インタフェース
[ ビット 9 ∼ 0] 10 ビットスレーブアドレスマスクビット
このビットは 10 ビットスレーブアドレスレジスタ (ITBA) のビットをマスクします。
このレジスタへの書込みは , I2C インタフェースが動作禁止 (EN="0":ICCR) のとき
行ってください。
値
内 容
0
当該ビットをスレーブアドレス比較に使用しない。
1
当該ビットをスレーブアドレス比較に使用する。
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノリッ
ジを送信することが可能になります。このレジスタを , 10 ビットスレーブアドレス比
較に使用されるときに , このビットを "1" にセットしてください。受信したスレーブア
ドレスは , ITBA に上書きされます。ASS = "1" (IBSR) のとき ITBA レジスタを読み出
すことによって実際の指定されたスレーブ・アドレスを特定できます。
ITMK の TM9-0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9-0 の値
が "1" のときは ITBA のアドレスが有効になり "0" のときは無効になります。
例:
ITBA アドレス 0010010111B
ITMK アドレス 1111111100B のとき
スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。
424
第 15 章 I2C インタフェース
15.2.6
7 ビットスレーブアドレスレジスタ (ISBA)
7 ビットスレーブアドレスレジスタの書換えは動作停止中に行ってください (EN=0
in ICCR)。
■ 7 ビットスレーブアドレスレジスタ (ISBA)
7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成は , 以下のとおりです。
アドレス : 00009BH
初期値 →
7
R
0
6
5
4
3
2
1
0
SA6
R/W
0
SA5
R/W
0
SA4
R/W
0
SA3
R/W
0
SA2
R/W
0
SA1
R/W
0
SA0
R/W
0
[ ビット 7] 未使用ビット
リード時は "0" です。
[ ビット 6 ∼ 0] スレーブアドレスビット (SA6 ∼ SA0)
スレーブモードでスレーブ・アドレスを受信したとき , 7 ビットスレーブアドレスが
許可 (ISMK:ENSB="1") されていると , 受信スレーブ・アドレスと ISBA と比較を行
います。スレーブ・アドレス一致が検出されると , マスタに対してアクノリッジを
送信し , AAS ビットをセットします。
I2C インタフェースは , 反復「START」条件のあと 7 ビットリードアクセスのアドレ
スヘッダの受信にアクノリッジを返します。
スレーブ・アドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブ・アドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはジェネラルコールが
受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。
425
第 15 章 I2C インタフェース
15.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK)
7 ビットスレーブアドレスマスクレジスタの書換えは動作停止中に行ってください
(EN=0 in ICCR)。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK)
7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成は , 以下のとおりで
す。
アドレス : 00009AH
初期値 →
15
ENSB
R/W
0
14
13
12
11
10
9
8
SM6
R/W
1
SM5
R/W
1
SM4
R/W
1
SM3
R/W
1
SM2
R/W
1
SM1
R/W
1
SM0
R/W
1
[ ビット 15] ENSB: 7 ビットスレーブアドレス許可ビット
7 ビットスレーブアドレス動作許可ビットです。
値
内 容
0
7 ビットスレーブアドレス動作禁止。
1
7 ビットスレーブアドレス動作許可。
[ ビット 14 ∼ 8] SM6 ∼ SM0: 7 ビットスレーブアドレスマスクビット
このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。
値
内 容
0
当該ビットをスレーブアドレス比較に使用しない。
1
当該ビットをスレーブアドレス比較に使用する。
このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノリッ
ジを送信することが可能になります。このレジスタを , 7 ビットスレーブアドレス比較
に使用されるときに , このビットを "1" にセットしてください。受信したスレーブアド
レスは , ISBA に上書きされます。ASS = "1" (IBSR) のとき ISBA レジスタを読み出す
ことによって実際の指定されたスレーブ・アドレスを特定できます。
I2C インタフェースが許可になった後 , スレーブ・アドレス (ISBA) は , 受信動作によっ
て書き換えられるため , SMK が書き換えたときは , SMK を再設定しないと期待どおり
の動作をしないことがあります。
ISMK の SM6-0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6-0 の値
が "1" のときは ISBA のアドレスが有効になり "0" のときは無効になります。
例:
ISBA アドレス 0010111B
ISMK アドレス 1111100B のとき
スレーブアドレスは 0010100B ∼ 0010111B の空間になります。
426
第 15 章 I2C インタフェース
15.2.8
データレジスタ (IDAR)
データレジスタ (IDAR) について説明します。
■ データレジスタ (IDAR)
データレジスタ (IDAR) のレジスタ構成は , 以下のとおりです。
7
アドレス : 00009DH
D7
R/W
0
初期値 →
6
5
4
3
2
1
0
D6
R/W
0
D5
R/W
0
D4
R/W
0
D3
R/W
0
D2
R/W
0
D1
R/W
0
D0
R/W
0
[ ビット 7 ∼ 0] データビット (D7 ∼ D0)
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており, バスが使用中 (BB=1) であ
る場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビット
(IBCR) がクリアされるか , バスがアイドル状態 (BB="0":IBSR) のとき転送データは
内部転送レジスタにロードされます。
読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー
タは INT ビット (IBCR) がセットされている場合のみ有効です。
427
第 15 章 I2C インタフェース
クロックディセーブルレジスタ (IDBL)
15.2.9
クロックディセーブルレジスタ (IDBL) について説明します。
■ クロックディセーブルレジスタ (IDBL)
クロックディセーブルレジスタ (IDBL) のレジスタ構成は , 以下のとおりです。
アドレス : 00009FH
初期値 →
7
6
5
4
3
2
1
0
R
-
R
-
R
-
R
-
R
-
R
-
R
-
DBL
R/W
0
[ ビット 0] クロックディセーブルビット (DBL)
このビットは I2C インタフェース用の動作クロック供給の許可 , 停止を指示します。
低消費電力時に使用できます。
値
内 容
0
I2C のクロックを供給します。
1
I2C のクロックを停止します。I2C ラインは開放されます。
本ビットは , リセットにより "0" に初期化されます。
本ビットに "1" を書き込むと , 本レジスタ (IDBL) を除き , 読出し値は不定値となり , 本
ビット ( 本レジスタ ) 以外の書込みは無効になります。
<注意事項>
このビットを "1" にすると I2C は送受信中でも直ちに停止します。
428
第 15 章 I2C インタフェース
15.3
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":IDAR or EN="0":ICCR)
にすると , 直ちに動作停止し SCL ラインに不正クロックが発生します。I2C インタフェー
スを動作禁止する際には , 「STOP」条件の発生を確認 (BB=0:IBSR) した後 , 動作を禁止
(DBL="1":IDAR or EN="0":ICCR) してください。
429
第 15 章 I2C インタフェース
■ スレーブアドレス検出
スレーブモードでは , 「START」条件発生後 , BB=1 にセットされ , マスタからの送信
データを IDAR レジスタへ受信します。
〔7 ビットスレーブアドレス動作許可の場合〕(ENSB=1 in ISMK)
8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。このと
き , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS=1 にセットし , マスタに対してアクノリッジを送信します。そ
の後 , 受信データのビット 0 ( 受信後の IDAR レジスタのビット 0) を反転して TRX ビッ
トへ格納します。
〔10 ビットスレーブアドレス動作許可の場合〕(ENTB=1 in ITMK)
10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出したらマスタに対してア
クノリッジを送信し受信データのビット 0 を反転して TRX ビットへ格納します。この
とき割込みは発生しません。
続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。このと
き ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信しま
す。このとき割込みが発生します。
スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビットア
ドレスのヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを
発生します。
10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ
(ISBA) を搭載しているので , 両方の動作許可 (ENSB=1 in ISMK, ENTB=1 in 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 ビットアドレス時 ) レジスタから読み出せます。
ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの
モニタとして使用できます。
<注意事項>
ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを
返すので , この機能は , リアルバスモニタとはなりません。
430
第 15 章 I2C インタフェース
■ マスタアドレッシング
マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ
の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを
受信すると , 送信データのビット 0 ( 送信後の IDAR レジスタのビット 0) を反転して
TRX ビットへ格納します。この動作は , 反復「START」条件でも実行されます。
ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第一バイトは , 10
ビットシーケンスを示すヘッダ"1 1 1 1 0 A9 A8 0"であり, 続いて, 第二バイトでスレー
ブアドレスの下位 8 ビット (A7-A0) を送信します。
リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと
もに , リードアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。
7 ビット
スレーブアクセス
10 ビット
スレーブアクセス
ライト 「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
リード
「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) を読み出すことにより , アクノリッジがあったか
どうかをチェックできます。
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビット含む ) の I2C バス 上の基本規定違反の検出
• マスタ時のストップコンディション検出
• バスアイドル時の I2C バス上の基本規定違反の検出
431
第 15 章 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 × 40 ≒ 1.680µs
標準モードの場合 :27 × 7 × 40 ≒ 7.560µs
(CLKP=25MHz 時 )
<注意事項>
BER がセットされている場合は , EN = "0" でクリアされません。クリア後 , 再送信して
ください。
432
第 15 章 I2C インタフェース
■ その他
1) アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド
レッシングされていなかった場合をソフトで判断しなければなりません。
アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送
終了後 , CLK ライン , DATA ライン双方を "L" に引っ張ります。このため , アドレッ
シングされていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシ
ングされていた場合には , スレーブ送信または , スレーブ受信の準備をしてから ,
CLK ライン , DATA ラインを開放する必要があります ( すべてソフトにて処理する
必要があります ) 。
2) I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるいは割込み
条件に該当していた場合 , 割込み要因が発生する仕様になっています。
1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン
内で , 各フラグをチェックしなければなりません。1 バイト転送終了時点での割込
み条件を下記に示します。
- バスマスタであった場合
- アドレスされたスレーブであった場合
- ジェネラルコールアドレスを受信した場合
- アービトレーションロストが生じた場合
3) アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな
く , 1 バイト転送終了した時点で要因が発生します。
アービトレーションロストを検出するとハード的にスレーブになりますが , スレー
ブになっても , 割込み要因を発生させるために , トータル 9 クロック出力をします。
そのため , 即座に割込み要因が発生しないので , アービトレーションロスト後に処
理を行うことはできません。
433
第 15 章 I2C インタフェース
15.4
動作フローチャート
スレーブアドレスとデータ転送および受信データを例に , 動作フローチャートを示
します。
■ スレーブアドレスとデータ転送の例
図 15.4-1 に , スレーブアドレスとデータ転送の例を示します。
図 15.4-1 スレーブアドレスとデータ転送例
7ビットスレーブアドレッシング
転送データ
スタート
スタート
インタフェース動作許可 EN=1
BER ビットクリア(セット)
ライトアクセスの
スレーブアドレス
IDAR =S. アドレス≪1+R W
IDAR = バイトデータ
MSS=1
N
Y
INT=0
INT=0
INT=1?
INT=1?
Y
Y
N
Y
BER=1?
バスエラー
BER=1?
N
N
Y
A L=1?
AAS の検査
Y
により再起動
AAS の検査
により再起動
A L=1?
転送
転送
N
N
N
ACK?
(LRB=0? )
N
ACK?
(LRB=0? )
Y
Y
データ転送の準備
最終バイト
の転送
Y
N
転送 終了
・スレーブがACKを発生しない、
もしくはマスタがACKを受信できない
・いったんEN=0にし、再送信
転送 終了
・反復「START」条件、「STOP」
条件を発生する
・「STOP」条件発生(BB=0)
を確認し、EN=0
転送 終了
送信時:
・スレーブがACKを発生
しない、もしくはマスタが
ACKを受信できない
・いったんEN=0にし、再送信
受信時:
ACKなし、反復
「START」条件、「STOP」
条件を発生する
434
第 15 章 I2C インタフェース
■ 受信データの例
図 15.4-2 に , 受信データの例を示します。
図 15.4-2 受信データ例
スタート
リードアクセスの
スレーブアドレス
スレーブからの最終リード
データならACKビットを
クリアする。
INT=0
INT=1?
N
Y
BER=1?
Y
バスエラー
再起動
N
N
最終バイト
の転送
Y
転送終了
反復「START」条件、「STOP」条件
を発生する
435
第 15 章 I2C インタフェース
■ 割込み処理
図 15.4-3 に , 割込み処理を示します。
図 15.4-3 割込み処理
スタート
INT=1?
N
他のモジュールから
の受信割込み
Y
BER=1?
バスエラー
Y
再起動
N
GCA=1?
Y
スレーブ時にゼネラルコール
検出
N
N
転送の失敗
再トライを行う
Y
A AS=1?
Y
A L=1?
A L=1?
Y
アビトレーション
ロスト 再転送
N
スレーブの ACKなし
N
LRB=1?
Y
次の割込みで
新データ転送開始
必要であれば
A CKビットを変更
「STOP」条件,反復
「START」条件の生成
A DT=1
N
N
TRX=1?
Y
TRX=1?
Y
Y
N
N
IDAR から受信データ
を読む。必要であれば
ACK ビットを変更する
IDAR に
次の送信
データを
ライト
IDARから受信データ
を読む。必要であ
ればACKビットを
変更する
クリア INT ビット
ISR 終了
436
IDARに次の送信
データをライト
またはMSSビット
のクリア
第 16 章
DMAC
(DMA コントローラ )
この章では DMAC の概要 , レジスタの構成 / 機能 ,
および DMAC の動作について説明します。
16.1 概要
16.2 レジスタ詳細説明
16.3 動作説明
16.4 動作フロー
16.5 データパス
16.6 DMA 外部インタフェース
437
第 16 章 DMAC (DMA コントローラ )
16.1
概要
本モジュールは , FR ファミリデバイスにて DMA (Direct Memory Access) 転送を
実現するためのモジュールです。
本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高
速に行うことが可能となり , システムのパフォーマンスを増加させます。
■ DMAC のハードウェア構成
本モジュールは , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 32 ビットアドレスレジスタ ( リロード指定可能 : 各チャネル 2 本 )
• 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 外部転送要求入力端子 DREQ0, DREQ1, DREQ2 (ch0, 1, 2 のみ )
( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。
• 外部転送要求受付け出力端子 DACK0, DACK1, DACK2 (ch0, 1, 2 のみ )
( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。
• DMA 終了出力端子 DEOP0, DEOP1, DEOP2 (ch0, 1, 2 のみ )
( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。
• フライバイ転送 ( メモリ→ I/O, I/O →メモリ ) (ch0, 1, 2 のみ )
( 注意事項 ) MB91F353A/351A/352A/353A はフライバイ転送不可能
• 2 サイクル転送
■ DMAC の主要機能
本モジュールによるデータ転送には , 主に以下のような機能があります。
● 複数チャネルの独立したデータ転送が可能 (5 チャネル )
• 優先順位 (ch0>ch1>ch2>ch3>ch4)
• ch0 ∼ ch1 間にて順位回転が可能
• DMAC 起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 ch0-ch2 のみ )
( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースなし。
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 / バースト転送 / ステップ転送 / ブロック転送
( 注意事項 ) MB91F353A/351A/352A/353A はデマンド転送不可能
- アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
( アドレス増減幅は -255 ∼+ 255 まで指定可能 )
- データの種類バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
438
第 16 章 DMAC (DMA コントローラ )
■ DMAC のレジスタ概要
図 16.1-1 に , DMAC のレジスタ概要を示します。
図 16.1-1 DMAC のレジスタ概要
(ビット) 31
ch0
DMACA0
00000200H
レジスタ B
DMACB0
00000204H
コントロール/ステータス レジスタ A
DMACA1
00000208H
レジスタ B
DMACB1
0000020CH
コントロール/ステータス レジスタ A
DMACA2
00000210H
レジスタ B
DMACB2
00000214H
c h3 コントロール/ステータス レジスタ A
DMACA3
00000218H
レジスタ B
DMACB3
0000021CH
c h4 コントロール/ステータス レジスタ A
DMACA4
00000220H
DMACB4
00000224H
全体制御レジスタ
DMACR
00000240H
c h0
転送元アドレスレジスタ
DMASA0 00001000H
転送先
DMADA0
コントロール/ステータス レジスタ A
〃
ch1
〃
ch2
〃
〃
〃
〃
c h1
〃
/ 〃
/ 〃
/ 〃
/ 〃
/ 〃
レジスタ B
〃 〃
DMASA1 00001008H
転送先
DMADA1
転送元アドレスレジスタ
DMASA2 00001010H
〃
転送先
DMADA2
c h3
転送元アドレスレジスタ
DMASA3 00001018H
転送先
DMADA3
〃
c h4
〃
〃 〃
08
07
00
00001014H
0000101CH
転送元アドレスレジスタ
DMASA4 00001020H
転送先
DMADA4
〃 〃
15
0000100CH
c h2
〃 〃
16
00001004H
転送元アドレスレジスタ
〃 〃
24 23
00001024H
439
第 16 章 DMAC (DMA コントローラ )
■ DMAC のブロックダイヤグラム
図 16.1-2 に , DMAC のブロックダイヤグラムを示します。
カウンタ
バスコントローラへ
DMA転送要求
バッファ
セレクタ
ライトバック
図 16.1-2 DMAC のブロックダイヤグラム
DTC2段レジスタ DTCR
DMA起動要因
選択回路
&
要求受付
制御
ペリフェラル起動要求/停止入力
外部端子起動要求/停止入力
カウンタ
DSS[3:0]
バッファ
Read
Write
優先度回路
割込みコントローラへ
IRQ[4:0]
周辺割込みクリア
MCLREQ
ERIR,EDIR
セレクタ
リード/ライト
制御
BLK register
440
DSAD2段レジスタ SADM,SASZ[7:0] SADR
ライトバック
ライトバック
DDAD2段レジスタ DADM,DASZ[7:0] DADR
バス制御部
DMAコントロール
セレクタ
カウンタバッファ
DDNO register
セレクタ
アドレス
カウンタバッファ
アクセス
アドレスカウンタ
DDNO
バス制御部
バスコン
トローラ
へ
セレクタ
状態遷移回路
X-bus
TYPE.MOD,WS
第 16 章 DMAC (DMA コントローラ )
16.2
レジスタ詳細説明
DMAC の各レジスタの詳細について説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換え
は DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと
き ) で設定した場合は , 一時停止解除後に設定は有効になります。
441
第 16 章 DMAC (DMA コントローラ )
16.2.1
DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジ
スタ A
[DMACA0 ∼ DMACA4] は DMAC 各チャネルの動作制御を行うレジスタで , チャネ
ルごとに独立して存在します。
■ [DMACA0 ∼ DMACA4] のビット機能
[DMACA0 ∼ DMACA4] の各ビット機能は , 以下に示すとおりです。
ビット 31
30
29
28
27
14
13
25
24
23
IS [4 : 0]
アドレス ch0:0000200H DENB PAUS STRG
ch1:0000208H
ch2:0000210H
ch3:0000218H
ch4:0000220H
ビット 15
26
11
11
10
22
21
20
19
DDN [3 : 0]
9
8
7
6
5
18
17
16
BLK [3 : 0]
4
3
2
1
0
DTC [15 : 0]
( 初期値 : 00000000_0000XXXX_XXXXXXXX_XXXXXXXXB)
[ ビット 31] DENB(Dma ENaBle):DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま
す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな
ります。
起動されたチャネルの転送が指定回数分すべて終了した場合, 本ビットは"0"になり,
転送は停止します。
本ビットに "0" を書込みすると強制停止しますが , 必ず PAUS ビット [DMACA: ビッ
ト 30] で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一
時停止しないで強制停止した場合 , DMA は停止しますが転送データは保証されませ
ん。停止の確認は DSS[2:0] ビット (DMACB: ビット 18-16) で行ってください。
DENB
機 能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 : "0" に初期化されます。
• 読出し / 書込み可能です。
DMAC 全体制御レジスタ DMACR のビット 15:DMAE ビットにより , 全チャネルの動
作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維持しま
す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が禁止
された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。
442
第 16 章 DMAC (DMA コントローラ )
[ ビット 30] PAUS(PAUSe): 一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停
止中は DSS ビットが "1xxB" になります ) 。
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなります。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません 「
( 16.3.11 転送要求の受付けと転送」
を参照 ) 。
PAUS
機 能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 一時停止
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 29] STRG(Software TRiGger): 転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。
ただし, 対応するチャネルが起動されていない場合は, 本ビットへの操作は無効とな
ります。
<参考>
DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要
求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時である場合 ,
転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。
STRG
機 能
0
無効
1
DMA 起動要求
• リセット時 :"0" に初期化されます。
• 読出し値は常に "0" となります。
書込み値は "1" のみ有効で , "0" は動作に影響を与えません。
443
第 16 章 DMAC (DMA コントローラ )
[ ビット 28 ∼ 24] IS4 ∼ 0(Input Select): 転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフト
ウェア転送要求は本設定に関わらず有効となります。
IS
機 能
00000
ハードウェア
00001
↓
01101
設定禁止
↓
設定禁止
01110 *
外部端子 (DREQ) "H" レベルまたは↑エッジ
01111 *
外部端子 (DREQ) "L" レベルまたは↓エッジ
10000
UART0 ( 受信完了 )
10001
UART1 ( 受信完了 )
10010
UART2 ( 受信完了 )
10011
UART0 ( 送信完了 )
10100
UART1 ( 送信完了 )
10101
UART2 ( 送信完了 )
10110
外部割込み 0
10111
外部割込み 1
11000
リロードタイマ 0
11001
リロードタイマ 1
11010
リロードタイマ 2
11011
外部割込み 2
11100 *
SIO5
11101
SIO6
11110
SIO7
11111
A/D
*: MB91F353A/351A/352A/353A には , 外部端子 , SIO5 の転送要因がありません。
• リセット時 :00000B に初期化されます。
• リード / ライト可能です。
周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxx), 選択した機能は ICR レ
ジスタで割込みを禁止状態にしてください。
デマンド転送モードを選択した場合は , IS[4:0]=01110B, 01111B のみ設定可能です。ほ
かの要因での起動は禁止です。
外部要求入力は , ch0, 1, 2 のみ有効です。ch3, 4 は外部要求入力は選択できません。ま
たレベル検出かエッジ検出かはモード設定により決定されます ( デマンド転送はレベ
ル , ほかはエッジ検出になります ) 。
444
第 16 章 DMAC (DMA コントローラ )
外部割込み 0 ∼ 2 および A/D 割込みの転送要因を選択する場合は , 基本クロック分周
設定レジスタの (DIVR0) による CPU クロックおよび , 周辺クロックの設定が下記に示
す条件での使用はできません。
CPU クロックの分周比
周辺クロックの分周比
CLKB 分周比= 1
CLKP 分周比> 3
CLKB 分周比= 2
CLKP 分周比> 6
CLKB 分周比= 3
CLKP 分周比> 9
CLKB 分周比= 4
CLKP 分周比> 12
CLKB 分周比= 5
CLKP 分周比> 15
[ ビット 23 ∼ 20] DDNO3 ∼ DDNO0( ダイレクトアクセスナンバー ):
内蔵周辺へのフライバイ機能
対応するチャネルで使用する転送先 / 元の内蔵周辺を指定します。
DDNO
機 能
0000
設定禁止
0001
未使用
0010
未使用
0011
未使用
0100
未使用
0101
未使用
0110
未使用
0111
未使用
1000
未使用
1001
未使用
1010
未使用
1011
未使用
1100
未使用
1101
未使用
1110
未使用
1111
設定禁止
• リセット時 : "0000B" に初期化されます。
• 読出し / 書込み可能です。
<注意事項>
本品種はこの機能はサポートされません。書込みデータは無視されます。
445
第 16 章 DMAC (DMA コントローラ )
[ ビット 19 ∼ 16] BLK3 ∼ BLK0(BLocK size): ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設
定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返し回
数 ) となります。
ブロック転送を行わない場合は 01H ( サイズ 1) を設定してください ( デマンド転送
時 , 本レジスタ値は無視されます。サイズ 1 となります ) 。
BLK
XXXX
機 能
対応チャネルのブロックサイズ指定
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[ ビット 15 ∼ 00] DTC(Dma Terminal Count register): 転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC
XXXX
機 能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウン
タバッファに格納して 1 転送単位ごとに -1 カウントします ( 減算 ) 。DMA の転送終了
時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。そ
のため DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード長
にてアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
• リセット時 : 初期化されません。
446
第 16 章 DMAC (DMA コントローラ )
16.2.2
DMAC-ch0, 1, 2, 3, 4 コントロール / ステータスレジ
スタ B (DMACB0 ∼ DMACB4)
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) は , DMAC 各チャネ
ルの動作制御を行うレジスタで , チャネルごとに独立して存在します。
■ コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) のビット機能
コントロール / ステータスレジスタ B (DMACB0 ∼ DMACB4) の各ビット機能は , 以下
に示すとおりです。
ビット 31
30
29
28
27
26
25
24
23
22
21
20
19
アドレス ch0:0000204 TYPE [1 : 0] MOD [1 : 0] WS [1 : 0] SADM DADM DTCRSADRDADR ERIE EDIE
ch1:000020C
ch2:0000214
ch3:000021C
ch4:0000224
ビット 15
14
13
11
11
10
9
8
7
6
5
SASZ [7 : 0]
4
3
18
17
16
DSS [2 : 0]
2
1
0
DASZ [7 : 0]
( 初期値 : 00000000_00000000_XXXXXXXX_XXXXXXXXB)
[ ビット 31, 30] TYPE(TYPE)*: 転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード :
転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定してリード動作とラ
イト動作を転送回数分繰り返して転送するモードです。転送元 / 転送先ともに全領
域 (32 ビットアドレス ) 指定可能です。
フライバイ転送モード :
転送先アドレス (DMADA) にメモリアドレスを設定することにより外部⇔外部転送
を 1 サイクルで行うモードです。メモリアドレスは必ず外部領域を指定してくださ
い。
TYPE
機 能
00
2 サイクル 転送 ( 初期値 )
01
フライバイ : メモリ→ I/O 転送
10
フライバイ : I/O →メモリ 転送
11
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
*: MB91F353A/351A/352A/353A はフライバイ転送不可能。TYP ビット "01B", "10B" の
設定は禁止です。
447
第 16 章 DMAC (DMA コントローラ )
[ ビット 29, 28] MOD1, MOD0 (MODe)*: 転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機 能
00
ブロック / ステップ転送モード ( 初期値 )
01
バースト転送モード
10
デマンド転送モード
11
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
*: MB91F353A/351A/352A/353A はデマンド転送不可能。MOD ビット "10" の設定は禁
止です。
[ ビット 27, 26] WS1, WS0 (Word Size): 転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機 能
00
バイト単位で転送 ( 初期値 )
01
ハーフワード単位で転送
10
ワード幅単位で転送
11
設定禁止
• リセット時 : "00" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 25] SADM(Source-ADdr, count-Mode select): 転送元アドレスカウントモー
ド指定
対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) にしたがって ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMASA) に書き込まれます。
そのため DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウント
幅 (SASZ, DASZ) を "0" としてください。
SADM
機 能
0
転送元アドレスは増加します ( 初期値 )。
1
転送元アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
448
第 16 章 DMAC (DMA コントローラ )
[ ビット 24] DADM(Destination-ADdr, Count-Mode select) : 転送先アドレスカウント
モード指定
対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) にしたがって ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
そのため DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウント
幅 (SASZ, DASZ) を "0" としてください。
DADM
機 能
0
転送先アドレスは増加します ( 初期値 )。
1
転送先アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 23] DTCR(DTC-reg, Reload): 転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG または , IS 設定による起動要求 ) 待
ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。
DENB=0, または DMAE=0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 DENB ビットはクリアされます。
DTCR
機 能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 22] SADR(Source-ADdr.-reg, Reload): 転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります ) 。
449
第 16 章 DMAC (DMA コントローラ )
SADR
機 能
0
転送元アドレスレジスタリロード禁止 ( 初期値 )
1
転送元アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 21] DADR(Dest.-ADdr.-reg, Reload): 転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細はビット 22:SADR の内容と等価になります。
DADR
機 能
0
転送先アドレスレジスタリロード禁止 ( 初期値 )
1
転送先アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 20] ERIE(ERror Interrupt Enable): エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。
発生したエラーの内容はDSS2∼
0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の終了
要因の際のみ割込みが発生することに注意してください (DSS2 ∼ 0 ビットの説明を参
照してください ) 。
ERIE
機 能
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 19] EDIE(EnD Interrupt Enable): 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機 能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
450
第 16 章 DMAC (DMA コントローラ )
[ ビット 18 ∼ 16] DSS2 ∼ DSS0(DMA Stop Status)*: 転送停止要因表示
対応するチャネルのDMA転送停止/終了の要因を示す3ビットのコード (終了コード)
を表示します。
終了コードの内容は以下のとおりです。
DSS
機 能
割込み発生
000
初期値
x01
アドレスエラー ( アンダ / オーバフロー )
エラー
x10
転送停止要求
エラー
x11
正常終了
終了
1xx
DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど )
なし
なし
転送停止要求は , 周辺回路からの要求と外部端子 DSTP 機能を使用した場合のみセット
されます。
ただし , MB91F353A/351A/352A/353A は外部端子 DSTP 機能がありません。
なお「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 : "000B" に初期化されます。
• "000B" を書き込むことによりクリアされます。
• 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。
[ ビット 15 ∼ 8] SASZ(Source Addr count SiZe)*: 転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送元アドレスカウントモード (SADM) の指定にしたがいます。
SASZ
機 能
XXXX 転送元アドレスの増減幅を指定します。0 ∼ 255
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。
[ ビット 7 ∼ 0] DASZ(Des Addr count SiZe)*: 転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送先アドレスカウントモード (DADM) の指定にしたがいます。
DASZ
機 能
XXXX 転送先アドレスの増減幅を指定します。0 ∼ 255
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。
451
第 16 章 DMAC (DMA コントローラ )
16.2.3
DMAC-ch0, 1, 2, 3, 4 転送元 / 転送先アドレス設定レ
ジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4)
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4) は , DMAC 各チャネルの動作制御を行うレジスタで , チャネルごとに独立
して存在します。
■ 転送元/転送先アドレス設定レジスタ(DMASA0∼DMASA4/DMADA0∼DMADA4)
のビット機能
転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4) の
各ビット機能は , 以下に示すとおりです。
ビット 31
30
29
28
27
26
25
23
22
21
20
19
18
17
16
5
4
3
2
1
0
DMASA [31 : 16]
アドレス ch0:00001000H
ch1:00001008H
ch2:00001010H
ch3:00001018H
ch4:00001020H
ビット 15
24
14
13
11
11
10
9
8
7
6
DMASA [15 : 0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX bit)
ビット 31
30
29
28
27
26
25
23
22
21
20
19
18
17
16
5
4
3
2
1
0
DMADA [31 : 16]
アドレス ch0:00001004H
ch1:0000100CH
ch2:00001014H
ch3:0000101CH
ch4:00001024H
ビット 15
24
14
13
11
11
10
9
8
7
6
DMADA [15 : 0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX bit)
転送元 / 転送先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成
されています。
[ ビット 31 ∼ 0] DMASA(DMA Source Addr): 転送元アドレス設定
転送元アドレスの設定を行います。
[ ビット 31 ∼ 0] DMADA(DMA Destination Addr): 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに設定にしたがいアドレスカウントします。
DMA の転送終了時にカウンタバッファの内容を本レジスタにライトバックして
DMA は終了します。そのため DMA 動作中のアドレスカウンタ値を読み出すことは
できません。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先アド
452
第 16 章 DMAC (DMA コントローラ )
レスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自
動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影
響を与えません。
• リセット時 : 初期化されません。
• 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてくだ
さい。
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスアド
レス値となります。リロード値のリードはできません。そのため転送アドレスをリ
アルタイムで読み出すことはできません。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
453
第 16 章 DMAC (DMA コントローラ )
16.2.4
DMAC-ch0, 1, 2, 3, 4 DMAC 全体制御レジスタ
全体制御レジスタ (DMACR) は , DMAC5 チャネル分全体の動作制御を行うレジスタ
です。本レジスタは必ずバイト長でアクセスしてください。
■ 全体制御レジスタ (DMACR) のビット機能
全体制御レジスタ (DMACR) の各ビット機能は , 以下に示すとおりです。
ビット 31
アドレス : 000240H
30
29
-
27
26
25
24
DMAH[3:0]
PM01
DMAE
ビット 15
28
23
22
21
20
19
18
17
16
-
-
-
-
-
-
-
-
14
13
11
11
10
9
8
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
( 初期値 : 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
[ ビット 31] DMAE(DMA Enable):DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , チャネルごとの起動 / 停止の設定
や動作状態に関わらず , 全チャネルの転送動作が禁止されます。転送中であったチャ
ネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて , 各チャ
ネルに対して行われる起動操作は , すべて無効となります。
本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作が
有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対する
起動は行われません。
本ビットに "0" を書込みすると強制停止しますが , 必ず DMAH[3:0] ビット (DMACR:
ビット 27-24) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してくださ
い。一時停止しないで強制停止した場合 , DMA は停止しますが転送データは保証さ
れません。停止の確認は DSS[2:0] ビット (DMACB: ビット 18-16) で行ってください。
DMAE
機 能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 28] PM01(Priority Mode ch0, 1 robin): チャネル優先度回転
ch0, ch1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機 能
0
優先順位固定 (ch0>ch1) ( 初期値 )
1
優先順位回転 (ch1>ch0)
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
454
第 16 章 DMAC (DMA コントローラ )
[ ビット 27 ∼ 24] DMAH(DMA Halt):DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと
なります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求は, すべて有効となり, 本ビットをクリアすることにより転送を
開始します。
DMAH
0000
0000 以外
機 能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[ ビット 30, 29, 23 ∼ 0] (Reserved): 未使用ビット
読出し値は不定です。
■ その他の機能
MB91350A は , 外部転送用として DACK, DEOP, DREQ の端子がありますが汎用ポート
と兼用になっています。
この機能を使用するときはポート機能から DMA 端子機能に切り換える必要がありま
す。PFR レジスタの設定で切り換えてください。
( 注意事項 ) MB91F353A/351A/352A/353A は外部インタフェースがありません。
455
第 16 章 DMAC (DMA コントローラ )
16.3
動作説明
DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など
について説明します。
■ DMAC の概要
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー
タ転送を制御する多機能 DMA コントローラです。
456
第 16 章 DMAC (DMA コントローラ )
16.3.1
動作概要
DMAC の動作概要を説明します。
■ DMAC の主要動作
各転送チャネルは , 独立に各種機能を設定します。
各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いません。
転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。転送はチャネルごとに独立
に設定されたモード設定にしたがったシーケンスで行われます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された
転送モードにしたがって転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け付
けられるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0])
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数 : ブロックサイズ分×転送回数分 (DMACA:BLK[3:0] ×
DMACA:DTC[15:0])
● デマンド転送 ( 注意 : MB91F353A/351A/352A/353A はデマンド転送不可能 )
外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは
連続して転送を行います。
デマンド転送での指定転送回数 : 設定した転送回数分 (DMACA:DTC[15:0])
ブロックサイズは "1" 固定となりレジスタ値は無視されます。
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータを読出しして転送先レジスタのアドレスへデー
タを書込みします。
● フライバイ転送(メモリ→I/O)(注意: MB91F353A/351A/352A/353Aはフライバイ転送不可能)
DMA コントローラの動作は , リード動作を 1 つの単位として動作を行います。
フライバイ転送を設定して DMA 転送を行うと DMA はバスコントローラに対しフライ
バイ転送 ( リード ) 要求を出しバスコントローラは外部インタフェースにフライバイ転
送 ( リード ) をさせます。
457
第 16 章 DMAC (DMA コントローラ )
● フライバイ転送 (I/O →メモリ ) ( 注意事項 : MB91F353A/351A/352A/353A はフライバイ転
送不可能 )
DMA コントローラの動作は , ライト動作を 1 つの単位として動作を行います。ほかは
フライバイ転送 ( メモリ→ I/O) と同等です。
MB91F355A/F356B/F357B/355A でのフライバイ転送のアクセス領域は必ず外部領域で
なければいけません。
■ 転送アドレス
アドレッシングには以下のようなものがあり , チャネル転送元 / 転送先ごとに独立に設
定します。
2 サイクル転送とフライバイ転送でのアドレス設定レジスタ (DMASA, DMADA) の指
定方法は異なります。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック
されます。
そのためアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更
新されませんので転送中のアドレスをリアルタイムに知ることはできません。
● フライバイ転送でのアドレスの指定 ( 注意 : MB91F353A/351A/352A/353A はフライバイ転送
不可能 )
フライバイ転送では転送先アドレスレジスタ (DMADA) から読み出した値をアドレス
としてアクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定す
るアドレスは必ず外部領域にしてください。
転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMADA) へライトバックされます。
そのためアドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されま
せんので転送中のアドレスをリアルタイムに知ることはできません。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。転送回
数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または
再起動 (1) します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
458
第 16 章 DMAC (DMA コントローラ )
● 転送終了
転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ
れます (DMACB:DSS[2:0])。
• 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) →正常終了
• 周辺回路または外部端子 (DSTP) からの転送停止要求の発生→エラー
• アドレスエラーの発生→エラー
• リセットの発生→リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
459
第 16 章 DMAC (DMA コントローラ )
転送要求の設定
16.3.2
DMA 転送を起動する転送要求は , 以下の 3 種類があります。
• 外部転送要求端子
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定に関わらず常に使用することがで
きます。
■ 外部転送要求端子
チャネルごとに 1 本用意された入力端子への入力により , 転送要求を発生します。
MB91350A では ch0 ∼ 2 のみ対応しています (DREQ0, 1, 2)。
この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。
〔エッジ検出〕
転送タイプがブロック / ステップ / バースト転送のときはエッジ検出が選択されます。
• 立下がりエッジ検出 :
転送要因選択レジスタで設定。DMACA:IS[4:0]=01110B のとき。
• 立上がりエッジ検出 :
転送要因選択レジスタで設定。DMACA:IS[4:0]=01111B のとき。
転送タイプがデマンド転送のときはレベル検出が選択されます。
• "H" レベル検出 :
転送要因選択レジスタで設定。DMACA:IS[4:0]=01110B のとき。
• "L" レベル検出 :
転送要因選択レジスタで設定。DMACA:IS[4:0]=01111B のとき。
MB91F353A/351A/352A/353A は使用不可能です。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS[4:0]=1xxxxB)。
外部転送要求とは同時に使用することができません。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ )。
460
第 16 章 DMAC (DMA コントローラ )
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。
上記 2 つの転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対し DMA 転送要求を出力し転送を開始します。
461
第 16 章 DMAC (DMA コントローラ )
16.3.3
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転
送モードを独立して設定することができます (DMACB:TYPE[1:0], MOD[1:0] の
設定 )。
■ 転送シーケンスの選択
レジスタの設定により , 以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• デマンド 2 サイクル転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 )
• ブロック / ステップ 2 サイクル転送
• バーストフライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 )
• デマンド フライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可能 )
• ブロック / ステップフライバイ転送 ( 注意 : MB91F353A/351A/352A/353A は使用不可
能)
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転
送元 / 転送先アドレスは 32 ビット全領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出
要求を選択できます。
表 16.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。
表 16.3-1 バースト 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
〔バースト転送の特徴〕
• 転送要求を 1 回受け付けると , 転送回数レジスタが 0 になるまで連続して転送を行
います。転送回数はブロックサイズ分×転送回数分になります (DMACA:BLK[3:0]
× DMACA:DTC[15:0])。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転
送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで
復帰しません。
図 16.3-1 に , バースト転送例を示します。
462
第 16 章 DMAC (DMA コントローラ )
図 16.3-1 バースト転送例
転送要求 (↑エッジ)
バス動作
CPU
SA
転送回数
DA
SA
DA
SA
43
DA
2
SA
DA
CPU
0
1
転送終了
(外部端子立上りエッジ起動,ブロック数=1
,
転送回数=4のときのバースト転送例)
■ バーストフライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト
(I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 16.3-2 に , バーストフライバイ転送の指定可能転送アドレスを示します。
表 16.3-2 バーストフライバイ転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
■ デマンド転送 2 サイクル転送
転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド
転送シーケンスとなります ( レベル選択は , DMACA:IS[3:0] にて設定する ) 。
〔連続転送の特徴〕
• 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要
求レベルの間は要求をクリアせずに連続して転送を行います。外部入力が変化する
と要求がクリアされ , 転送は転送の境目にて停止します。これを指定転送回数終了
まで繰り返します。
• その他はバースト転送と同等に動作します。
図 16.3-2 に , デマンド転送例を示します。
図 16.3-2 デマンド転送例
転送要求("H"レベル)
バス動作
CPU
SA
転送回数
DA
SA
DA
CPU
SA
32
DA
1
0
転送終了
(外部端子"H"レベル起動,ブロック数=1, 転送回数=3のときのデマンド転送例)
表 16.3-3 にデマンド転送 2 サイクル転送の指定可能転送アドレスを示します。
表 16.3-3 デマンド転送 2 サイクル転送の指定可能転送アドレス
転送元アドレス
方向
転送先アドレス
外部領域
→
外部領域
外部領域
→
内蔵 I/O
外部領域
→
内蔵 RAM
内蔵 I/O
→
外部領域
内蔵 RAM
→
外部領域
463
第 16 章 DMAC (DMA コントローラ )
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。デマンド転送モード時は , DMA 転送を外バスタイミングに合わせているた
め必ず外部領域へのアクセスが必要になります。
デマンド転送時 , 転送元 / 転送先共に SDRAM 領域はサポートしていませんので設定禁
止です。
■ デマンド転送フライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト
(I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 16.3-4 に , デマンド転送フライバイ転送の指定可能転送アドレスを示します。
表 16.3-4 デマンド転送フライバイ転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
表 16.3-5 にステップ / ブロック転送 2 サイクル転送の指定可能転送アドレスを示しま
す。
表 16.3-5 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
■ ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
〔ステップ転送の特徴〕
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後
に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先順
位は , 転送要求が同時に発生した場合のみ意味を持ちます。
464
第 16 章 DMAC (DMA コントローラ )
■ ブロック転送
ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。
[ ブロック転送の特徴 ]
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス
テップ転送と全く同じ動作となります。図 16.3-3 にブロック転送例を示します。
図 16.3-3 ブロック転送例
転送要求
(↑エッジ)
バス動作
ブロック数
CPU
SA
DA
SA
DA
21
転送回数
CPU
0
2
SA
DA
SA
2
DA
1
1
転送終了
(外部端子立上がりエッジ起動,ブロック数=2
,
転送回数=2のときのブロック転送例)
■ ステップ / ブロック転送 2 サイクル転送フライバイ転送
転送領域が外部領域のみであること , 転送単位がリード ( メモリ→ I/O) またはライト
(I/O →メモリ ) だけであることを除けば 2 サイクル転送と同じです。
表 16.3-6 に , ステップ / ブロック転送 2 サイクル転送フライバイ転送の指定可能転送ア
ドレスを示します。
表 16.3-6 ステップ / ブロック転送 2 サイクル転送フライバイ転送の指定可能転送ア
ドレス
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
465
第 16 章 DMAC (DMA コントローラ )
16.3.4
DMA 転送全般
DMA の転送動作について説明します。
■ ブロックサイズ
転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の
データの集合となります。
1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送
単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。
転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時停止
要求が発生した場合において, ブロック転送時においても1転送単位の境界にならない
と停止しません。これにより分割・一時停止を希望しないデータブロックのデータ保
護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因ともな
ります。
リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは保
証されません。
■ リロード動作
本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。
(1) 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受
付け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が 0 のままと
なり , 以降の転送は行われません。
(2) 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま
す。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が
終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
(3) 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま
す。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
( 以下 (2) と同じ )
転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の
再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
466
第 16 章 DMAC (DMA コントローラ )
〔動作モードとリロード動作の特殊な例〕
外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードはセットされます。
転送終了にていったん停止し, 再度入力検出から行いたい場合は, リロード指定を行
わないようにしてください。
バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となる
とリロード後いったん転送を中断し , あらためて転送要求入力が検出されるまで転
送を行いません。
467
第 16 章 DMAC (DMA コントローラ )
アドレッシングモード
16.3.5
各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。
ここでは , その指定方法について説明します。転送シーケンスによって設定してく
ださい。
■ アドレスレジスタ指定
2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレ
スを,転送先アドレス設定レジスタ(DMADA)には転送先アドレスを設定してください。
フライバイ転送モードでは , 転送先アドレス設定レジスタ (DMASA) にはメモリアドレ
スを設定してください。このときの転送先アドレス設定レジスタ (DMADA) の値は無
視されます。
〔アドレスレジスタの特徴〕
• 最大 32 ビット長のレジスタです。32 ビット長の場合メモリマップ上の全空間がア
クセス可能です。
〔アドレスレジスタの機能〕
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の
アドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より
選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま
す (DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終
アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<参考>
32 ビット長フルアドレス計算の結果オーバフロー/ アンダフローが発生した場合 , アドレ
スエラーとして検出され , そのチャネルの転送を中止します (DMACB0 ∼ 4 レジスタの
DSS ビットを参照してください ) 。
<注意事項>
・アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
・デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。
・DMAC により DMAC 自身のレジスタへの転送は行わないでください。
468
第 16 章 DMAC (DMA コントローラ )
16.3.6
データの種類
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。
• バイト
• ハーフワード
• ワード
■ アクセスアドレス
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット
は無視されます。
• ワード :
実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。
• ハーフワード :
実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイトとなります。
• バイト :
実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス
上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記
の決まりにしたがってアドレスが修正されてアクセスが行われます。
469
第 16 章 DMAC (DMA コントローラ )
16.3.7
転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回
数指定値は転送回数レジスタ (DMACA:DTC) に設定します。
■ 転送回数レジスタとリロード動作
レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され
, そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
〔転送回数レジスタ群の特徴〕
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
〔リロード動作〕
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共
に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
470
第 16 章 DMAC (DMA コントローラ )
CPU 制御
16.3.8
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発
行します。
バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA
転送が開始されます。
■ DMA 転送と割込み
DMA 転送中は , 基本的に転送終了まで割込みの受付けは停止します。
また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転送
終了まで割込み処理動作は停止します。
例外として , NMI 要求 , または割込みコントローラにて設定されたホールド抑止レベル
より高いレベルの割込み要求が発生した場合には , DMAC は転送単位 (1 ブロック ) の
境界にてバスコントローラの転送要求を一時取り下げ , 割込み要求がクリアされるま
では転送を一時停止状態にします。この間転送要求は内部で保持されます。割込み要
求がクリアされた後に再度 DMAC のバスコントローラは転送要求を発行してバス使用
権を取得し , DMA 転送を再開します。
■ DMA 抑止
FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送
を中断して該当割込みルーチンへ分岐します。この機能は割込み要求がある限り有効
ですが , 割込み要因をクリアすると抑止機能が働かなくなり , 割込み処理ルーチン内で
DMA 転送を再開します。
このため , DMA 転送を中断するレベルの割込み要因の処理ルーチン内で , 割込み要因
クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止機能を使用します。
DMA 抑止機能は , DMA 全体制御レジスタの DMAH[3:0] ビットに "0" 以外の値を書く
ことで起動し , "0" を書くことで停止します。
本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み
要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす
ると , 以降 , DMA 転送は行いません。
割込み処理への対応を行った後 , 復帰する前に DMAH[3:0] ビットの内容を 1 つ減少さ
せます。
もし , 多重割込みであれば DMAH[3:0] ビットの内容は , まだ "0" にならないため , 引き
続いて DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH[3:0] ビットの
内容は "0" になるため , その後すぐに DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用することができません。
• DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
471
第 16 章 DMAC (DMA コントローラ )
16.3.9
ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用
可能となります。ここでは , この際の外部ホールド要求と本モジュールによる DMA
転送要求との関係について説明します。
■ 外部ホールド中の DMA 転送要求
DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA
転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。
■ DMA 転送中の外部ホールド要求
外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場
合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転
送を再開します。
■ DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外
部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部
ホールドが解除され次第 , DMA 転送を再開します。
472
第 16 章 DMAC (DMA コントローラ )
16.3.10
動作開始
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動
作を許可しておく必要があります。
■ 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。
許可されていない状態で行った起動設定,および発生した転送要求はすべて無効となり
ます。
■ 転送起動
チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送
動作が開始されます。
■ 一時停止状態からの起動
チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転
送動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場
合は , 要求を受け付け , 保持します。
一時停止を解除した時点より転送を開始します。
473
第 16 章 DMAC (DMA コントローラ )
16.3.11
転送要求の受付けと転送
転送要求の受付けと転送の内容を説明します。
■ 転送要求の受付けと転送
起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求ク
リア条件を満たすまで DMAC 内部で要求を保持します ( ブロック / ステップ / バース
ト転送で外部端子起動要因を選択したとき ) 。
外部端子起動要因でレベル検出 , または周辺割込み起動を選択した場合は , 転送要求が
クリアされるまで DMAC は転送を続けますがクリアされたら 1 転送単位で転送を停止
します ( デマンド転送 / 周辺割込み起動 ) 。
周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで行
うようにしてください。
転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け
付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定
しています。
474
第 16 章 DMAC (DMA コントローラ )
16.3.12
DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に
周辺割込みを選択したときに機能します (IS[4:0]=1xxxx のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち IS[4:0] で設
定された周辺機能のみクリアされます。
■ DMA による割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います (「16.4 動作フロー」を参照 ) 。
〔ブロック / ステップ転送〕
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生
します。
〔バースト転送〕
バースト転送を選択した場合は , 指定転送回数がすべて終了したらクリア信号は発
生します。
〔デマンド転送〕
デマンド転送では外部端子からの起動要求のみサポートするためクリア信号はでま
せん。
475
第 16 章 DMAC (DMA コントローラ )
16.3.13
一時停止
DMA 転送が一時停止する場合について説明します。
■ 制御レジスタへの書込みによる一時停止の設定 (各チャネル独立または全チャネル
同時に設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると , 転送を再開します。
■ NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
476
第 16 章 DMAC (DMA コントローラ )
16.3.14
動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止
することも可能です。
■ 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:
DENB ビットをクリアする )。
リロード動作が有効である場合, 転送回数レジスタが"0"になると初期値をリロードし,
終了コードにて「正常終了」を表示した後 , 再度転送要求待ちとなります (DMACA:
DENB ビットをクリアしない )。
■ 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは
一切発生しません。
477
第 16 章 DMAC (DMA コントローラ )
16.3.15
エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー
発生による停止および強制停止があります。
■ 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。
この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し
て対応するチャネルの転送を停止します。
IS
機 能
転送停止要求
00000
ハードウェア
↑
↓
01111
↓
なし
外部端子 L レベルまたは↓エッジ
↓
10000
UART0 ( 受信完了 )
↑
↓
10010
↓
あり
UART2 ( 受信完了 )
↓
10011
UART0 ( 送信完了 )
↑
↓
11111
↓
A/D
なし
↓
( 注意事項 ) 各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してくだ
さい。
■ アドレスエラーの発生
各アドレッシングモードにて , 不適切なアドレッシングが行われたとき , アドレスエ
ラーとして検出されます。
「不適切なアドレッシング」とは , 例えば「32 ビットアドレ
ス指定時に , アドレスカウンタにてオーバ / アンダフローが発生した場合」です。
アドレスエラーを検出すると , 終了コードにて「アドレスエラーの発生」を表示して対
応するチャネルの転送を停止します。
478
第 16 章 DMAC (DMA コントローラ )
16.3.16
DMAC 割込み制御
DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に DMAC チャネルごとに
割込みを出力することが可能です。
■ DMAC 割込み制御が出力できる割込み
• 転送終了割込み :
正常終了した場合のみ発生する。
• エラー割込み :
周辺回路よりの転送停止要求 ( 周辺に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容にしたがって出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ 0 ( 終了コード ) に "000B" を書き込むこと
により行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリ
アしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードにしたがいます。
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 ) 。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求または , 外部端子入力 (DSTP) の停止要求
• 正常終了
• アドレスエラー検出による停止
• チャネル選択と制御
479
第 16 章 DMAC (DMA コントローラ )
16.3.17
スリープ中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。
ここでは , スリープ状態のときの DMA 転送について説明します。
■ スリープモード中の DMA 転送の注意
スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
1) CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
2) スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込みを
選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし
てください。
480
第 16 章 DMAC (DMA コントローラ )
16.3.18
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。
各チャネルは基本的に各機能を独立に設定することが可能です。
■ チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) ごとに選
択します。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch0 > ch1 > ch2 > ch3 > ch4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
図 16.3-4 に固定モード時の DMA 転送を示します。
図 16.3-4 固定モード時の DMA 転送
ch0 転送要求
ch1 転送要求
バス動作
CPU
SA
転送ch
DA
SA
ch1
DA
SA
ch0
DA
SA
ch0
DA
CPU
ch1
ch0 転送終了
ch1 転送終了
● 回転モード (ch0, ch1 間のみ )
動作許可後の初期状態は固定モードと同じ順位に設定されますが,一転送終了ごとにそ
のチャネルの優先度は逆転します。そのため , 同時に転送要求が出力されている場合 ,
1 転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 16.3-5 に回転モード時の DMA 転送を示します。
図 16.3-5 回転モード時の DMA 転送
ch0 転送要求
ch1 転送要求
バス動作
転送ch
CPU
SA
DA
ch1
SA
DA
ch0
SA
DA
ch1
SA
DA
CPU
ch0
ch0 転送終了
ch1 転送終了
481
第 16 章 DMAC (DMA コントローラ )
■ チャネルグループ
優先順位の選択は , 以下の単位で設定します。
表 16.3-7 に , DMA 優先順位選択の設定を示します。
表 16.3-7 DMA 優先順位選択の設定
482
モード
優先度
固定
ch0>ch1
回転
ch0>ch1
↑↓
ch0<ch1
備 考
初期状態は上側の順位です。
上側が転送されると反転します。
第 16 章 DMAC (DMA コントローラ )
16.3.19
外部端子と内部動作タイミングに関する補足
外部端子と内部動作タイミングに関する補足説明をします。
■ DREQ 端子入力の最小有効パルス幅について
(MB91F353A/351A/352A/353A には 0, 1, 2 チャネルはありません。)
バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時最小 5 シス
テムクロックサイクル (= 外バスクロック (CLKT) の 5 周期分 ) の幅が必要です。
( 注意事項 ) DACK 出力は , DREQ 入力の受付けを示すものではありません。DMA 許
可状態で転送前であれば DREQ 入力は常に受け付けられます。そのため ,
DACK 出力のアサートまで DREQ 入力を保持する必要はありません ( デマ
ンド転送モードは除く ) 。
■ デマンド転送要求の停止時の DREQ 端子入力のネゲートタイミングについて
● 2 サイクル転送時
デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。
• 転送対象が外部⇔外部の場合 :
最後の DMA 転送の転送元アクセス時の外部 WR 端子出力が "L" 区間の間にネゲー
トしてください (DACK=L & WR=L の区間 ) 。これより後に DREQ をネゲートした
場合 , 次の転送まで行う可能性があります。
• 転送対象が外部⇔内部の場合 :
最後の DMA 転送の転送元アクセス時の外部 RD 端子出力が "L" 区間の間にネゲー
トしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ をネゲートした
場合 , 次の転送まで行う可能性があります。
図 16.3-6 に 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例
を示します。
図 16.3-6 2 サイクル外部→内部転送時の DREQ 端子入力のネゲートタイミング例
バス動作
領域
CPU
SA
DA
SA
DA
外部 内部 外部 内部
CPU
SA
DA
SA
DA
外部 内部 外部 内部
外部D-bus
DACK
DEOP
RD
WR
DREQ("H"レベル)
• 転送対象が内部⇔外部の場合 :
最後の DMA 転送の転送元アクセス時の外部 WR 端子出力が "L" 区間の間にネゲー
トしてください (DACK=L & WR=L の区間 ) 。これより後に DREQ をネゲートした
場合 , 次の転送まで行う可能性があります。
483
第 16 章 DMAC (DMA コントローラ )
● フライバイ ( リード / ライト ) 転送時
デマンド転送時は , 必ず外部領域のアドレスを転送先に設定してください。
• フライバイ ( リード ) の場合 :
最後の DMA 転送の IOWR 端子出力が "H" になった後の外部 RD 端子出力が "L" 区
間の間にネゲートしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ
をネゲートした場合 , 次の転送まで行う可能性があります。
• フライバイ ( ライト ) の場合 :
最後の DMA 転送の外部 WR 端子出力が "H" になった後の IORD が "L" 区間の間に
ネゲートしてください (DACK=L & RD=L の区間 ) 。これより後に DREQ をネゲー
トした場合 , 次の転送まで行う可能性があります。
図 16.3-7 にフライバイ ( ライト ) の場合の DREQ 端子入力のネゲートタイミング例
を示します。
図 16.3-7 フライバイ ( ライト ) の場合の DREQ 端子入力のネゲートタイミング例
バス動作
CPU
領域
DA
DA
DA
DA
外部
外部
外部
外部
CPU
DA
DA
DA
DA
外部
外部
外部
外部
外部D-bus
DACK
DEOP
RD
WR
IORD
DREQ("H"レベル)
■ 同一チャネルで引き続き転送を行うための DREQ 端子入力のタイミングについて
● バースト / ステップ / ブロック / デマンド転送時
DREQ端子入力によって同一チャネルの転送を連続させることは動作保証できません。
転送終了によって内部に保持した要求をクリアするため , 最速タイミングで DREQ が
再度アサートされたとしても最低でも 1 システムクロックサイクル (CLK 出力の 1 周
期分) はほかのチャネルの転送要求の検出が有効になっており , 結果ほかのチャネルの
優先度が高ければそちらの転送が開始されます。
また , それより以前に DREQ が再度アサートされても , 転送が終了していないので無視
されます。ほかのチャネルの転送要求が発生していない場合であれば , DACK 端子出
力がアサートされた時点で DREQ を再度アサートすることにより , 同一チャネルでの
転送が再開します。
■ DACK 端子出力のタイミングについて
本 DMAC の DACK 出力は , 受け付けられた転送要求に対する転送が行われていること
を示します。
DACK の出力は , 基本的に外部バスアクセスタイミングのアドレス出力に同期してい
ます。DACK 出力を使用する場合は , ポートで DACK 出力イネーブルにする必要があ
ります。
484
第 16 章 DMAC (DMA コントローラ )
■ DEOP 端子出力のタイミングについて
本 DMA での DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送回数分終
了したことを示すものです。
DEOP 出力は最終転送ブロックの外部領域アクセスが開始されると出力されます。そ
のため , ブロックサイズを "1" 以外に設定 ( ブロック転送モード ) している場合 , 最終
ブロックの最後のデータ転送時に DEOP が出力されます。この場合 , 転送がまだ行わ
れている間 (DEOP 出力される前 ) でも , DACK 端子出力がアサートされていれば , 次
の DREQ の受付けは開始されています。
DEOP の出力は外部バスアクセスタイミングの RD, WR に同期しています。しかし , 転
送元 / 転送先が内部アクセスであった場合 DEOP は出力されません。DEOP 出力を使用
する場合は , ポートレジスタで DEOP 出力イネーブルにする必要があります。
■ DSTP 端子入力のタイミングについて
バースト / ステップ / ブロック / デマンド転送すべての転送モードで動作時最小 5 シス
テムクロックサイクル (=1/2θ, CPU 系のクロックの 2 周期分 ) の幅が必要です。
DSTP の入力タイミングは DREQ と同様に外部アクセスと同期させて使用することを
お奨めします (DACK 出力と RD または WR でデコードした信号を使用してください ) 。
DMA の転送を強制的に停止する場合に使用します。この端子入力を使用することで転
送を強制的に停止することができますが , ステータスレジスタ (DMACB:DSS[2:0]) は
「転送停止要求」を示しエラーとして扱われます。割込みを許可していれば割込みを発
生します。
この機能は DEOP 端子と兼用になっているので両方の機能を使用することはできませ
ん。機能の切換えはポートレジスタで設定してください。
■ 転送中に外部端子転送要求が再度入力された場合について
● バースト / ステップ / ブロック転送時
DACK 信号が DMAC 内部でアサートされるまでの間 , 次の転送要求は入力されても無
効となります。しかし , 外部バス制御ユニットと DMAC の動作は完全に同期してはい
ないため , DREQ 入力で転送要求を有効にすためには DACK と DEOP 出力により DREQ
端子入力を作成する回路を初期化する必要があります。
● デマンド転送時
全転送回数が終了した際に転送回数レジスタのリロードを指定している場合 , 再度転
送要求が受け付けられます。
■ ブロック転送中にほかの転送要求が発生した場合について
指定したブロックの転送が終了するまでは , ほかの要求は検出されません。
ブロックの境界にて , その時点で受け付けられている転送要求を評価し , もっとも優先
順位の高いチャネルの転送を行います。
■ 外部 I/O −外部メモリ間の転送について
本 DMAC の転送対象として , 外部 I/O と外部メモリの区別は存在しません。外部 I/O は ,
アドレス固定の外部アドレスとして設定してください。
フライバイ転送を行う場合 , 外部メモリは転送先アドレスレジスタにアドレスを設定
してください。また外部 I/O に対しては DACK 出力と RD または WR でデコードした
信号を使用してください。
485
第 16 章 DMAC (DMA コントローラ )
■ DMAC の AC 特性について
DMAC に関連する外部端子は DREQ 端子入力と DACK 端子出力 , DEOP 端子出力があ
りますが , 出力タイミングは外部バスアクセスに同期しています (DMAC の AC 規格を
参照してください ) 。
486
第 16 章 DMAC (DMA コントローラ )
16.4
動作フロー
図 16.4-1 ∼ 図 16.4-3 に , DMA 転送の動作フローを示します。
■ ブロック転送の動作フロー
図 16.4-1 ブロック転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み起動要因選択時のみ
アドレス,転送回数,ブロック数
ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA転送終了
DMA割込み発生
ブロック転送
・全ての起動要因で起動できる(選択)。
・全ての領域へのアクセスができる。
・ブロック数の設定可能。
・ブロック数終了で割込みクリア発行。
・指定転送回数終了でDMA割込みを発行。
487
第 16 章 DMAC (DMA コントローラ )
■ バースト転送の動作フロー
図 16.4-2 バースト転送
DMA停止
DENB=>0
DENB=1
起動要求待機
リロード許可
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込みクリア発生
割込みクリア
DMA転送終了
バースト転送
・全ての起動要因で起動できる(選択)。
・全ての領域へのアクセスができる。
・ブロック数の設定可能。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
488
DMA割込み発生
第 16 章 DMAC (DMA コントローラ )
■ デマンド転送の動作フロー
図 16.4-3 デマンド転送
DMA停止
DENB=>0
なし
リロード許可
DENB=1
起動要求待機
起動要求あり
initial
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は1回のアクセス
転送先アドレスアクセス
アドレス演算
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
DTC=0
割込みクリア
周辺割込み起動要因選択時のみ
割込みクリア発生
DMA転送終了
DMA割込み発生
デマンド転送
・外部端子(DREQ)からの要求(レベル検出)のみ受け付け。他の要因での起動禁止。
・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)
・ブロック数は,設定に関係なく1固定になる。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
489
第 16 章 DMAC (DMA コントローラ )
データパス
16.5
ここでは , 各転送時のデータの動作を示します。
■ 2 サイクル転送時のデータの動作
図 16.5-1 から図 16.5-6 に 2 サイクル転送時のデータの動作を示します。
図 16.5-1 外部領域→外部領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
外部バス I/F
外部領域=>外部領域 転送
I/O
RAM
I/O
図 16.5-2 外部領域→内部 RAM 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
490
F-bus
I/O
RAM
I/O
外部バス I/F
外部領域=>内部RAM領域 転送
第 16 章 DMAC (DMA コントローラ )
図 16.5-3 外部領域→内蔵 I/O 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
外部領域=>内蔵I/O領域 転送
F-bus
RAM
I/O
I/O
図 16.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
D-bus
X-bus
バスコントローラ
F-bus
RAM
外部バス I/F
内蔵I/O領域=>内蔵RAM領域 転送
F-bus
RAM
I/O
I/O
図 16.5-5 内部 RAM 領域→外部領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
I/O
外部バス I/F
内部RAM領域=>外部領域 転送
F-bus
RAM
I/O
491
第 16 章 DMAC (DMA コントローラ )
図 16.5-6 内部 RAM 領域→内蔵 I/O 領域転送
MB91xxx
リードサイクル
X-bus
I-bus
CPU
バスコントローラ
D-bus
DMAC
ライトサイクル
X-bus
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
データバッファ
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
RAM
I/O
I/O
■ フライバイ転送時のデータの動作
図 16.5-7 および図 16.5-8 に , フライバイ転送時のデータの動作を示します。
図 16.5-7 フライバイ転送 ( メモリ→ I/O)
DMAC
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
memory
MB91xxx
外部バス I/F
フライバイ転送 (メモリ→I/O)
RD ,CSxでメモリリードする。
データバッファ
RAM
I/O
F-bus
I/O
RD, DACKでI/Oライトする。
SDRAMでのフライバイ転送は不可。
図 16.5-8 フライバイ転送 (I/O →メモリ )
CPU
I-bus
X-bus
バスコントローラ
D-bus
memory
DMAC
リードサイクル
WR, CSxでメモリライトする。
データバッファ
F-bus
RAM
I/O
I/O
MB91xxx
外部バス I/F
フライバイ転送 (I/O→メモリ)
WR, DACKでI/Oリードする。
SDRAMでのフライバイ転送は不可。
492
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
第 16 章 DMAC (DMA コントローラ )
16.6
DMA 外部インタフェース
DMA 外部インタフェースについて説明します。
ただし , MB91F353A/351A/352A/353A は DMA 外部インタフェースがありません。
■ DMA 外部インタフェースの動作概要
DMA ch0 ∼ 2 は , DMA 専用端子 (DREQ, DACK, DEOP) を持っています。
• DREQ:
デマンド転送を行うときの DMA 転送要求入力端子です。"1" 入力で転送要求。
• DACK:
DMA が外部インタフェースを通して外部領域にアクセスした場合にアクティブ
("L" 出力 ) になります。
• DEOP:
DMA 転送がすべて終了する最後のアクセスに同期してアクティブ ("L" 出力 ) にな
ります。
• IORD:
フライバイ転送時に I/O →メモリの方向選択時にアクティブになります。
• IOWR:
フライバイ転送時にメモリ→ I/O の方向選択時にアクティブになります。
■ 動作例 ( 簡易波形 )
● 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 )
図 16.6-1 に 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 ) の簡易波形を示
します。
図 16.6-1 2 サイクル転送 ( 外部→外部転送時 , 転送回数 =2 の場合 ) の簡易波形
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
EOP
DACK
CS1
1回目リード
1回目ライト 2回目リード
2回目ライト
493
第 16 章 DMAC (DMA コントローラ )
● フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 )
図 16.6-2 に , フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 ) の簡易波形を
示します。
図 16.6-2 フライバイ転送 (I/O →メモリ転送時 , 転送回数 =3 の場合 ) の簡易波形
A24~A0
CPU
#1
#2
#3
RD
WR
IORD
EOP
DACK
CS1
CPUリード
フライバイ1回目
フライバイ2回目
フライバイ3回目
● フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 )
図 16.6-3 に , フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 ) の簡易波形を
示します。
図 16.6-3 フライバイ転送 ( メモリ→ I/O 転送時 , 転送回数 =3 の場合 ) の簡易波形
A24~A0
CPU
#1
#2
#3
RD
WR
IOWR
EOP
DACK
CS1
CPUリード
フライバイ1回目 フライバイ2回目
フライバイ3回目
■ DREQx 端子の入力タイミング
DREQx 端子は DMA の起動要求信号です。ポートと兼用になっている場合は PFR レジ
スタで DREQ 入力を許可してください。
494
第 16 章 DMAC (DMA コントローラ )
● タイミング
1) デマンド転送以外の場合は , DMA の起動要因をエッジ検出に設定してください。立
上り / 立下りタイミングに規定はありませんが , DREQ 信号の保持時間は , 3 クロッ
ク以上必要です。再度転送要求をする場合は DMA 転送が終了したあとに要求入力
を入れてください (DEOP が出力されたあとに要求する ) 。DEOP 出力前に要求を入
れても無視されることがあります。
図 16.6-4 に , DREQx エッジ要求時 (2 サイクル転送時 ) を示します。
2) デマンド転送の場合は , DMA の起動要因をレベル検出に設定してください。起動開
始時に規定はありませんが , 停止時は , DMA 転送の RD/WR に同期させてください。
センスタイミングは最終外部アクセスの MCLK の立上りになります。
図 16.6-5 に , DREQx レベル要求時 (2 サイクル転送時 ) を示します。
図 16.6-4 DREQx エッジ要求時 (2 サイクル転送時 )
MCLK
DREQ
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
DEOP
CPU動作
CPU
DMA転送
3サイクル以上
次の要求はDEOP出力後
図 16.6-5 DREQx レベル要求時 (2 サイクル転送時 )
MCLK
DREQ
A24~A0
#RD1
#WR1
#RD2
#WR2
RD
WR
CPU動作
DMA転送
CPU
3回目の転送要求のセンスポイント
この場合は 2 サイクル転送で転送元 / 先が外部領域のため , 2 回の DMA 転送で停止さ
せるときは , #RD2 の立下りから #WR2 の最終の MCLK 立上りの前までにネゲートし
てください。
495
第 16 章 DMAC (DMA コントローラ )
■ DACK の FR30 互換モード
この DACK の FR30 互換モードは , DACK のタイミングを FR30 ファミリの DMA と同
じタイミングにするモードです。このモードは DACK 端子に対応する PFR レジスタで
設定してください。
PFR 設定時は対応する DMA チャネルの転送モード ( フライバイ , 2 サイクル ) と合わ
せてください。
<注意事項>
FR30 互換モードで 2 サイクル転送の設定時 RD または WR/WRn に同期します。WR を
使用する場合は外部インタフェース ACR レジスタの TYPE3-0 を "0x1xB" にして WR を有
効にしてください。
図 16.6-6 に 2 サイクル転送モード時の , 図 16.6-7 にフライバイ転送モード時の転送例
を示します。
〔設定例〕
図 16.6-6 2 サイクル転送モード時設定例
RD
DQMU/L
WR/WRn
DACK(AKxx=111B)
チップセレクトと同じタイミング転送
DACK(AKxx=001B) 2サイクル転送時設定禁止
DACK(AKxx=010B)
DACK(AKxx=011B)
DACK(AKxx=100B)
DACK(AKxx=101B)
DACK(AKxx=110B)
AKxx : DMAチャネルに対応するPFRレジスタの設定値です。
496
第 16 章 DMAC (DMA コントローラ )
図 16.6-7 フライバイ転送モード時
RD
DQMU/L
WR/WRn
IORD
IOWR
DACK(AKxx=111B)
チップセレクトと同じタイミング
DACK(AKxx=001B)
DACK(AKxx=010B) フライバイ転送時設定禁止
DACK(AKxx=011B) フライバイ転送時設定禁止
DACK(AKxx=100B) フライバイ転送時設定禁止
DACK(AKxx=101B) フライバイ転送時設定禁止
DACK(AKxx=110B) フライバイ転送時設定禁止
メモリ→IO
IO→メモリ
メモリ→IO
IO→メモリ
AKxx : DMAチャネルに対応するPFRレジスタの設定値です。
497
第 16 章 DMAC (DMA コントローラ )
498
第 17 章
フラッシュメモリ
この章では , フラッシュメモリの概要 , レジスタの
構成 / 機能 , および動作について説明します。
17.1 フラッシュメモリの概要
17.2 フラッシュメモリのレジスタ
17.3 フラッシュメモリの動作説明
17.4 フラッシュメモリ自動アルゴリズム
17.5 フラッシュメモリ書込み / 消去の詳細説明
499
第 17 章 フラッシュメモリ
17.1
フラッシュメモリの概要
MB91F355A/MB91F353A/MB91F357B は , 256K バイトのフラッシュメモリを 2 個内
蔵しており , 合計 512K バイトのフラッシュメモリ容量があります。
MB91F356B は , 128K バイトのフラッシュメモリを 2 個内蔵しており , 合計 256K
バイトのフラッシュメモリ容量があります。
内蔵フラッシュメモリは , 3.3V 単一電源にて , FR-CPU による , セクタ単位での
消去 , 全セクタ一括消去 , およびハーフワード (16 ビット ) 単位での書込みが可能で
す。
■ フラッシュメモリの概要
内蔵の 3.3V 動作 256K バイト /128K バイト FLASH メモリは , 当社フラッシュメモリ製
品MBM29LV400Cと同等の機能を持ち (ただし, 容量, セクタ構成が異なります) , ROM
ライタによるデバイス外部からの書込みも可能です。本書と併せて「MBM29LV400C
データシート」もご参照ください。
また , MBM29LV400C 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合に
は , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速動
作に寄与します。MB91F355A/MB91F353A/MB91F356B/MB91F357B ではこの FLASH
メモリを 2 個搭載しています。
MB91F355A/MB91F353A/MB91F356B/MB91F357B では , 内蔵フラッシュメモリと FRCPU インタフェース回路の組合せにより , 以下の機能を実現します。
• CPU のプログラム / データ格納用メモリとして機能 ( 以下 , CPU モードと表記 )
- ROM として使用する際は 32 ビットバス幅でアクセス可能
- CPU の命令動作による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *)
• 単体フラッシュメモリ製品の MBM29LV400C 相当の機能 ( 以下 , FLASH モードと表
記)
ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *)
ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。
ROM ライタから本フラッシュメモリを使用する場合の詳細については , 別途 ROM ラ
イタの取扱説明書を参照してください。
* : 自動プログラムアルゴリズム= Embedded AlgorithmTM
Embedded AlgorithmTM は Advanced Micro Devices 社の商標です。
500
第 17 章 フラッシュメモリ
■ フラッシュメモリのブロックダイヤグラム
図 17.1-1 に , フラッシュメモリのブロックダイヤグラムを示します。
図 17.1-1 フラッシュメモリのブロックダイヤグラム
立上りエッジ検出
制御信号生成
RDY/BUSYX
RESETX
BYTEX
256Kバイト/128Kバイト
OEX
フラッシュメモリ
(2個搭載)
WEX
RDYEG
RDY
WE
バス制御信号
CEX
FA17~0
DI15~0 DO31~0
アドレスバッファ
FA17~0
データバッファ
FD31~0
FR-Fバス(命令/データ)
501
第 17 章 フラッシュメモリ
■ フラッシュメモリのメモリマップ
フラッシュメモリのアドレスマッピングは FLASH モードと CPU モードでは異なりま
す。図 17.1-2 に , 各モードでのフラッシュメモリのメモリマップを示します。
図 17.1-2 MB91F353A/F355A/F356B/F357B フラッシュメモリのメモリマップ
CPU モード
FLASH モード
0000_0000H
I/O ,etc
0008_0000H
32ビット 32ビット
内蔵
ROM
1
内蔵
ROM
2
0 010_0000H
512K
バイト
0010_0000H
8ビット/16ビット
内蔵 ROM1
256 K
バイト
内蔵 ROM2
256 K
バイト
0014_0000H
0017_FFFFH
外部
FFFF_FFFFH
502
第 17 章 フラッシュメモリ
図 17.1-3 MB91F356B フラッシュメモリのメモリマップ
CPU モード
FLASH モード
0000_0000H
I/O ,etc
000C_0000H
32ビット 32ビット
内蔵
ROM
1
内蔵
ROM
2
0 010_0000H
外部
256K
バイト
0010_0000H
0011_0000H
0012_0000H
0013_0000H
0014_0000H
0015_0000H
0016_0000H
0017_0000H
0017_FFFFH
8ビット/16ビット
アクセス禁止
内蔵ROM1
アクセス禁止
内蔵ROM1
アクセス禁止
内蔵ROM2
アクセス禁止
内蔵ROM2
64K
バイト
FFFF_FFFFH
CPU モードでは , 32 ビットフラッシュメモリを 2 個並列接続して 64 ビットアクセスす
るので上位側 ROM (ROM1) と下位側 ROM (ROM2) という配置になっています。
FLASH モードでは ROM1 と ROM2 は A18 で切り換わります。ROM ライタからの A18
は接続せずにスイッチなどを接続して 256K バイト /128K バイトのフラッシュメモリ 2
個を切り換えるイメージで使用します。
503
第 17 章 フラッシュメモリ
■ フラッシュメモリのセクタアドレス表
〔フラッシュメモリのセクタマップ〕
フラッシュメモリのセクタ配置は , 以下のとおりです。
• CPU モード (MB91F355A/MB91F353A/FMB91F357B)
0xFFFFFH
0xF0000H
0xEF000H
0xE8000H
0xE7FFFH
0xE0000H
0xDFFFFH
0xC0000H
0xBFFFFH
0x80000H
SAA9(16K)
SAA4(16K)
SAB9(16K)
SAB4(16K)
SAA8(8K)
SAA3(8K)
SAB8(8K)
SAB3(8K)
SAA7(8K)
SAA2(8K)
SAB7(8K)
SAB2(8K)
SAA6(32K)
SAA1(32K)
SAB6(32K)
SAB1(32K)
SAA5(64K)
SAA0(64K)
SAB5(64K)
SAB0(64K)
31… 24,23… 16
15… 8,7… 0
31… 24,23… 16
15… 8,7… 0
+4/+5
+6/+7
+0/+1
ROM 1
+2/+3
• FLASH モード (MB91F355A/MB91F353A/FMB91F357B)
0x13FFFFH
0x13C000H
0x13BFFFH
0x13A000H
0x139FFFH
0x138000H
0x137FFFH
0x130000H
0x12FFFFH
0x120000H
0x11FFFFH
0x11C000H
0x11BFFFH
0x11A000H
0x119FFFH
0x118000H
0x117FFFH
0x110000H
0x10FFFFH
0x100000H
A18
504
SAA9 (16K )
SAB9(16K )
SAA8 (8K )
SAB8(8K )
SAA7 (8K )
SAB7(8K)
SAA6 (32K )
SAB6(32K)
SAA5 (64K )
SAB5(64K)
ROM 2
ROM 1
SAA4 (16K )
SAB4(16K)
SAA3 (8K )
SAB3(8K)
SAA2 (8K )
SAB2(8K )
SAA1 (32K )
SAB1(32K)
SAA0 (64K )
SAB0(64K)
15… 8,7… 01
5… 8,7… 0
0
1
ROM 2
第 17 章 フラッシュメモリ
• CPU モード (SAA0, SAA5, SAB0, SAB5 はアクセス禁止です ) (MB91F356B)
0xFFFFFH
0xF0000H
0xEF000H
0xE8000H
0xE7FFFH
0xE0000H
0xDFFFFH
0xC0000H
0xBFFFFH
0x80000H
SAA9(16K)
SAA4(16K)
SAB9(16K)
SAB4(16K)
SAA8(8K)
SAA3(8K)
SAB8(8K)
SAB3(8K)
SAA7(8K)
SAA2(8K)
SAB7(8K)
SAB2(8K)
SAA6(32K)
SAA1(32K)
SAB6(32K)
SAB1(32K)
-
-
-
-
31… 24,23… 16
15… 8,7… 0
31… 24,23… 16
15… 8,7… 0
+4/+5
+6/+7
+0/+1
ROM 1
+2/+3
ROM 2
( 注意事項 ) FLCR レジスタの WE ビットに "1" の時は 32 ビット幅アクセスは不可能
• FLASH モード (SAA0, SAA5, SAB0, SAB5 はアクセス禁止です ) (MB91F356B)
0x13FFFFH
0x13C000H
0x13BFFFH
0x13A000H
0x139FFFH
0x138000H
0x137FFFH
0x130000H
0x12FFFFH
0x120000H
0x11FFFFH
0x11C000H
0x11BFFFH
0x11A000H
0x119FFFH
0x118000H
0x117FFFH
0x110000H
0x10FFFFH
0x100000H
A18
SAA9 (16K )
SAB9(16K )
SAA8 (8K )
SAB8(8K )
SAA7 (8K )
SAB7(8K)
SAA6 (32K )
SAB6(32K)
-
-
ROM 1
ROM 2
SAA4 (16K )
SAB4(16K)
SAA3 (8K )
SAB3(8K)
SAA2 (8K )
SAB2(8K )
SAA1 (32K )
SAB1(32K)
-
-
15… 8,7… 01
5… 8,7… 0
0
1
ROM1 と ROM2 は A18 端子で切り換わりますが , 512K バイト /256K バイトのフラッ
シュメモリ 1 個としては扱えません。
A18 端子には ROM ライタからの A18 の代わりにスイッチなどを接続し , 256K バイト /
128K バイトのフラッシュメモリとして切換えで使用してください。
505
第 17 章 フラッシュメモリ
17.2
フラッシュメモリのレジスタ
フラッシュメモリで使用するレジスタの構成および機能について説明します。
■ フラッシュメモリのレジスタ概要
フラッシュメモリのレジスタには , 以下の 2 種類があります。
• フラッシュコントロール / ステータスレジスタ (CPU モード ): FLCR
• フラッシュメモリウェイトレジスタ : FLWC
506
第 17 章 フラッシュメモリ
17.2.1
フラッシュコントロール / ステータスレジスタ
(CPU モード ): FLCR
フラッシュメモリの動作状態を示すレジスタです。フラッシュメモリへの書込み制
御などを行います。CPU モードでのみアクセスすることが可能です。
本レジスタは , リードモディファイライト系命令ではアクセスしないでください。
■ フラッシュコントロール/ステータスレジスタ (CPUモード): FLCRのレジスタ構成
フラッシュコントロール / ステータスレジスタ (CPU モード ):FLCR のレジスタ構成は ,
以下のとおりです。
アドレス : 00007000H
初期値 →
7
6
5
R/W
(0)
R/W
(1)
R/W
(1)
4
3
RDYEG RDY
R
R
(0)
(X)
2
1
0
R/W
(0)
WE
R/W
(0)
R/W
(0)
[ ビット 7] Reserve: 予約ビット
必ず "0" を設定してください。
[ ビット 6, 5] Reserve: 予約ビット
必ず "1" を設定してください。
[ ビット 4] RDYEG:
フラッシュメモリの自動アルゴリズム ( 書込み / 消去など ) の終了により "1" になり
ます。
本ビットは , 読み出すとクリアされます。
値
内 容
0
自動アルゴリズムの終了は検出していません。
1
自動アルゴリズムの終了を検出しました。
• リセット時 : "0" に初期化されます。
[ ビット 3] RDY:
自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。
本ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われており ,
新たな書込みまた消去コマンドを受け付けることはできません。また , フラッシュメ
モリアドレスからのデータ読出しはできません。
読み出したデータはフラッシュメモリのステータスを示します。
値
内 容
0
書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受付けはできません。
1
データの読出しおよび書込み / 消去コマンドの受付けが可能です。
• リセット時に初期化されません ( その時点でのフラッシュメモリの状態にしたがい
ます ) 。
• 読出しのみ可能です。書込みは本ビット値に影響を与えません。
507
第 17 章 フラッシュメモリ
[ ビット 2] Reserve: 予約ビット
必ず "0" を設定してください。
[ ビット 1] WE (Write Enable) :
CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込みを制御し
ます。
本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはすべ
て無効になります。また , フラッシュメモリからのデータ読出しが倍速化します (32
ビット /16 ビット /8 ビットアクセスが可能 ) 。
本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有効
となり , 自動アルゴリズムの起動が可能となります。ただし , フラッシュメモリから
のデータ読出しは低速になります (16 ビット /8 ビットアクセスのみ可能 ) 。
本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が
停止していることを確認してから行ってください。RDY ビットが "0" の間は , 本ビッ
トの値を書き換えることができません。
なお , FLASH モードにおいては , 本ビットの状態に関わらず書込み動作が有効とな
ります。
値
内 容
0
フラッシュメモリへの書込み禁止 , および読出しの倍速化
1
フラッシュメモリへの書込み許可 , および読出しの低速化
• リセット時には "0" に初期化されます。
• 読出し / 書込み可能です。
<注意事項>
FLCR レジスタの WE ビットを変更する場合 , 直後に本 FLCR レジスタを必ずダミーリー
ドしてください。ダミーリードを行わないと , 正常に動作しないことがあります。
(例)
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
STB
R1,@R2
LDUB @R2,R1
// WE 変更
// ダミーリード
‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐‐
ただし , レジスタ番号は任意
[ ビット 0] Reserve: 予約ビット
必ず "0" を設定してください。
508
第 17 章 フラッシュメモリ
17.2.2
ウェイトレジスタ : FLWC
FLWC は , CPU モードにおいてフラッシュメモリアクセスのウェイト制御を行いま
す。
■ ウェイトレジスタ :FLWC のレジスタ構成
ウェイトレジスタ :FLWC のレジスタ構成は , 以下のとおりです。
アドレス : 00007004H
初期値 →
7
6
5
4
3
2
R
(0)
R/W
(0)
FAC1
R/W
(0)
FAC0
R/W
(1)
R/W
(0)
1
0
WTC2 WTC1 WTC0
R/W
R/W
R/W
(0)
(1)
(1)
[ ビット 7, 6] Reserve: 予約ビット
必ず "0" を設定してください。
[ ビット 5, 4] FAC1, 0:
フラッシュ制御の内部パルス生成を制御するための設定ビットです。
MB91F355A/F353A/F356B/F357B では , ATDIN/EQIN パルス幅の設定になります。
FAC1
FAC0
ATDIN
EQIN
0
0
0.5 CLKB クロック
1.0 CLKB クロック
0
1
1.0 CLKB クロック
1.5 CLKB クロック
初期値
1
0
1.5 CLKB クロック
2.0 CLKB クロック
設定禁止
1
1
2.0 CLKB クロック
2.5 CLKB クロック
設定禁止
設定禁止
• リセット時 , FAC1 ビットは "0", FAC0 ビットは "1" に初期化されます。
• MB91F355A/F353A/F356B/F357B では , 必ず FAC1 ビットに "0" を , FAC0 ビットに
"1" を設定してください。
[ ビット 3] Reserve: 予約ビット
必ず "0" を設定してください。
509
第 17 章 フラッシュメモリ
[ ビット 2 ∼ 0] WTC2, 1, 0:Wait Cycle ビット
フラッシュメモリのウェイト制御をします。
[email protected][email protected] 時
WTC2
WTC1
WTC0
ウェイト数
WE ビット
"0" 時
WE ビット
"1" 時
WE ビット
"0" 時
WE ビット
"1" 時
0
0
0
-
設定禁止
設定禁止
設定禁止
設定禁止
0
0
1
1
設定禁止
設定禁止
設定禁止
設定禁止
0
1
0
2
動作可能
設定禁止
設定禁止
設定禁止
0
1
1
3
動作可能
設定禁止
動作可能
設定禁止
1
0
0
4
動作可能
動作可能
動作可能
動作可能
1
0
1
5
動作可能
動作可能
動作可能
動作可能
1
1
0
6
動作可能
動作可能
動作可能
動作可能
1
1
1
7
動作可能
動作可能
動作可能
動作可能
初期値
• リセット時 , WTC2 ビットは "0", WTC1 ビットは "1", WTC0 ビットは "1" に初期化
されます。
• MB91F355A/F353A/F356B/F357Bでは, 動作可能なウェイト数最小動作電源電圧によ
り , 上記となります。
また , 動作可能なウェイト数は , FLCR レジスタの WE ビットの設定状態により変化
します。
510
第 17 章 フラッシュメモリ
17.3
フラッシュメモリの動作説明
フラッシュメモリの動作について説明します。
■ フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モード :
ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできま
せん。
• プログラミングモード :
ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長
での書込みが可能になります。
■ FR-CPU ROM モード (32 ビット , リードのみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括
読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま
せん。
• モードの指定方法
- FLCR レジスタの WE ビットが "0" のとき , 本モードとなります。
- CPU 動作時でのリセット解除後は常に本モードになります。
- CPU 動作時以外では本モードにすることができません。
• 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括
で読み出します。
• 制限事項
- ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
- 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできませ
ん。
■ FR-CPU プログラミングモード (16 ビット , リード / ライト可能 )
データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア
クセスは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログ
ラムは実行が不可能となります。
• モードの指定方法
- FLCR レジスタの WE ビットが "1" のとき本モードとなります。
- CPU 動作時でのリセット解除後は WE ビットが "0" になっています。本モードに
するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ
トの発生により WE ビットが "0" になると ROM モードに戻ります。
- FLCR レジスタの RDY ビットが "0" の期間は WE ビットを書き換えることができ
ません。RDY ビットが "1" になったことを確認してから WE ビットを書き換えて
ください。
511
第 17 章 フラッシュメモリ
• 動作内容
- フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長デー
タを一括で読み出します。
- フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること
ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込み
が可能となります。自動アルゴリズムの詳細については , 「17.4 フラッシュメモ
リ自動アルゴリズム」を参照してください。
• 制限事項
- ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
- 本モードではワード (32 ビット ) 長でデータを読み出すことを禁止します。
- MB91F355A/MB91F353A/MB91F356B/MB91F357B は 256K バイト /128K バイト
FLASH を 2 個搭載しており , それぞれの FLASH (ROM1, ROM2) について , 独立
に制御しなければなりません。詳しくは「17.4.1 コマンドシーケンス」を参照し
てください。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ
ディ / ビジー信号 (RDY/BUSY) により自動実行アルゴリズムの動作状態を知ることが
できます。このレディ / ビジー信号のレベルは FLCR レジスタの RDY ビットとして読
むことができます。
RDY ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお
り , 新たな書込み , または消去コマンドを受け付けることはできません。また , フラッ
シュメモリアドレスからのデータ読出しはできません。
RDY ビットが "0" の期間に読み出したデータは , フラッシュメモリのステータスを示
すハードウェアシーケンスフラグとなっています。
512
第 17 章 フラッシュメモリ
17.4
フラッシュメモリ自動アルゴリズム
フラッシュメモリ自動アルゴリズムのコマンドシーケンス , 実行状態の確認方法 , お
よびフラッシュメモリ書込み / 消去の詳細を説明します。
■ フラッシュメモリ自動アルゴリズムの概要
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書
込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と再開
の制御が可能です。
513
第 17 章 フラッシュメモリ
コマンドシーケンス
17.4.1
自動アルゴリズムを起動するためのコマンドシーケンスについて説明します。
■ 自動アルゴリズムのコマンドシーケンス
自動アルゴリズムを起動するには , フラッシュメモリに対して 1 ∼ 6 回のハーフワード
(16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。
不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん
だりすると , フラッシュメモリはリードモードにリセットされます。
<注意事項>
MB91F355A/MB91F353A/MB91F357B は 256K バイトフラッシュメモリを 2 個 ,
MB91F356B は 128K バイトフラッシュメモリを 2 個搭載しており , コマンドアドレスは
それぞれのフラッシュメモリで異なりますので , 注意が必要です。また , 512K バイト /
256K バイトの領域を消去するには , チップ消去を ROM1 側 , ROM2 側とそれぞれ実行し
なくてはいけません。
514
第 17 章 フラッシュメモリ
表 17.4-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま
す。
FR-CPU により書込みを行う場合 , 書込みデータは , ハーフワード (16 ビット ) データ
で行ってください ( アドレスは CPU モード時のアドレスを記載してあります ) 。
表 17.4-1 コマンドシーケンス表
バ
ス
ラ
イ
コマンド
ト
シーケンス
サ
イ
ク
ル
ROM
読出し /
リセット
1
共通
読出し /
リセット
3
書込み
チップ消去
4
6
6
セクタ消去
1st バス
2nd バス
ライトサイクル ライトサイクル
3rd バス
ライトサイクル
4th バス
リード / ライト
サイクル
5th バス
6th バス
ライトサイクル ライトサイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
*XXXXH
F0H
−
−
−
−
−
−
−
−
−
−
ROM1 *AAAAH
AAH
*5552H
55H
*AAAAH
F0H
(RAH)
(RDH)
−
−
−
−
ROM2 *AAAEH
AAH
*5556H
55H
*AAAEH
F0H
(RAH)
(RDH)
−
−
−
−
ROM1 *AAAAH
AAH
*5552H
55H
*AAAAH
A0H
(PAH)
(PDH)
−
−
−
−
ROM2 *AAAEH
AAH
*5556H
55H
*AAAEH
A0H
(PAH)
(PDH)
−
−
−
−
ROM1 *AAAAH
AAH
*5552H
55H
*AAAAH
80H
*AAAAH
AAH
*5552H
55H
*AAAAH
10H
ROM2 *AAAEH
AAH
*5556H
55H
*AAAEH
80H
*AAAEH
AAH
*5556H
55H
*AAAEH
10H
ROM1 *AAAAH
AAH
*5552H
55H
*AAAAH
80H
*AAAAH
AAH
*5552H
55H
(SAH)
30H
ROM2 *AAAEH
AAH
*5556H
55H
*AAAEH
80H
*AAAEH
AAH
*5556H
55H
(SAH)
30H
セクタ消去一時停止
アドレス (*XXXXH) , データ (B0H) の入力で , セクタ消去中の消去一時停止
セクタ消去再開
アドレス (*XXXXH) , データ (30H) の入力で , セクタ消去一時停止後 , 消去再開
・コマンドシーケンスにおいて , 上位 16 ビットアドレスは , 任意のフラッシュメモリ空間としてください ( 表 17.4-1 では上位アドレ
スを * で表記 ) 。
・ワードモード / バイトモード共にコマンドは同じで , 表記されていないビットのデータは任意です。
・アドレス , データはすべて 16 進数で表記しています。
(RA) : 読出しアドレス
(PA) : 書込みアドレス
(SA) : セクタアドレス ( セクタ内の任意の 1 アドレスを指定 )
(RD) : 読出しデータ
(PD) : 書込みデータ
・消去一時停止コマンド (B0H) と , 消去再開コマンド (30H) は , セクタ消去動作中のみ有効です。
・2 種類のリセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットすることができます。
515
第 17 章 フラッシュメモリ
■ リード ( 読出し ) / リセットコマンド
フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ
かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入
時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ
ンドは必要ありません。
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。
■ プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ
イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし
て最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上
の外部よりの制御を必要としません。
フラッシュメモリは , 自動的に内部で作られた適切な書込みパルスを発生し , 書き込ま
れたセルのマージンを検証します。自動書込み動作は , データポーリング機能により ,
ビット 7 のデータがこのビットに書き込んだデータに一致したとき終了し (「17.4.2 自
動アルゴリズム実行状態の確認」の「■ ハードウェアシーケンスフラグ」参照 ) , この
時点で読出しモードに戻ってこれ以上書込みアドレスは受け付けなくなります。この
結果 , フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデー
タポーリングは , メモリが書込み中であることを示します。
書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。書込
み中にハードウェアリセットが起動された場合は , 書き込んでいるアドレスのデータ
は保証されません。
書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー
タ "1" を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定され
るか , あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。し
かし , リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動
作のみが "0" データを "1" データにすることができます。
■ チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に 2 つの
" アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行に際して , フラッシュメモリは自動的にすべてのセルを
消去する前に "0" のパターンに書き込んで検証します ( プリプログラム ) 。この動作中
には , フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書込みで開始され , ビット 7 が "1" になったときに
終了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セ
クタ消去時間×全セクタ数+チップ書込み時間 ( プリプログラム )」となります。
516
第 17 章 フラッシュメモリ
■ セクタ消去
セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドを書き込み , その後さらに 2 つの " アンロック " サイ
クルが続いて 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が
始まります。
最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次のセクタ消去
コマンドの受付けが可能です。
複数のセクタ消去は, 前述したような6つのバスサイクルを書き込むことで同時に受付
け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去
コマンド (30h) を引き続き書き込むことで行います。
最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間終了により , セクタ
消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セ
クタをそれぞれ 50 µs 以内に入力する必要があり , それ以降ではコマンドが受け付けら
れないことがあります。引き続くセクタ消去コマンドが有効かどうかはビット 3 にて
モニタ可能です (「17.4.2 自動アルゴリズム実行状態の確認」の「■ ハードウェアシー
ケンスフラグ」参照 ) 。
タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン
ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ
のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク
タアドレス入力は , セクタのどのような組合せや数でも実行可能です。
セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い
ます ( プリプログラム ) 。また , セクタ消去中はほかの消去されないセクタは何の影響
も受けません。これらの動作中において , フラッシュメモリは外部からの制御は必要と
しません。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間
の後に開始され , ビット 7 のデータが "1" になったとき終了し , フラッシュメモリは読
出しモードに戻ります。ほかのコマンドは無視されます。
データポーリングは消去されたセクタ内のどのアドレスでも機能します。複数セクタ
消去時間は「( セクタ消去時間+セクタ書込み時間 ( プリプログラム )) ×消去セクタ
数」となります。
517
第 17 章 フラッシュメモリ
■ 消去一時停止
消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ
ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも
のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視
されます。
消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイムアウ
ト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト期間中
に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開コマン
ドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンドの入力
時のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去
動作を停止するために最大 20 µs の時間がかかります。フラッシュメモリが消去一時停
止モードに入ると , レディ / ビジー出力とビット 7 が "1" を出力し , ビット 6 がトグル
動作をやめます。消去しているセクタのアドレスを入力しビット 6 とビット 7 の読出
し値をモニタすることによって , 消去動作を停止しているかどうかを確かめられます。
さらに , 消去一時停止コマンドの書込みは無視されます。
消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。
このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな
りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一
時停止したセクタからの連続的な読出しに対しては , ビット 2 はトグル動作をします。
消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスを書き
込むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時
停止書込みモードとなります。このモードでの書込みは , データが消去一時停止してい
ないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時
停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては ,
ビット2はトグル動作をします。消去一時停止ビット (ビット6) によって検出できます。
使用上の注意として , ビット 6 はどんなアドレスに対しても読出し可能ですが , ビット
7 は書込みアドレスに対して読出しを行わなければなりません。
セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。
この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン
ドはフラッシュメモリが消去再開した後に入力することができます。
518
第 17 章 フラッシュメモリ
17.4.2
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち
ます。
この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵フ
ラッシュメモリの動作状態の確認ができます。
■ レディ / ビジー信号 (RDY/BUSY)
フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と
して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。
このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ
シュメモリ / コントロールステータスレジスタの RDY ビットとして読み出すことが可
能です。
RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作中
です。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読
出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの状態
です。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは , 以下のとおりです。
ハーフワード読出し時
1
(不定)
8
バイト読出し時(奇数アドレスのみ)
7
ハードウェアシーケンスフラグ
0
7
ハードウェアシーケンスフラグ
0
<注意事項>
ワード読出しは禁止です。FR-CPU プログラミングモードのみ使用してください。
ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任
意のアドレス (バイトアクセス時は奇数アドレス) を読み出すことによりデータとして
取得できます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズム
の状態を示します。
ROM1 の自動アルゴリズム実行中は ROM1 の任意のアドレスを , ROM2 の自動アルゴ
リズム実行中は ROM2 の任意のアドレスを指定してください。
ビット
( ハーフワード ,
バイトアクセス時 )
7
6
5
4
DPOLL TOGGLE TLOVER ( 不定 )
3
2
1
SETIMR TOGGL2 ( 不定 )
0
( 不定 )
なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ
い。
519
第 17 章 フラッシュメモリ
表 17.4-2 に , ハードウェアシーケンスフラグ状態一覧を示します。
表 17.4-2 ハードウェアシーケンスフラグ状態一覧
DPOLL
状 態
自動書込み動作
自動消去動作
反転データ
0
トグル
0
0
1
トグル
0
1
トグル
1
1
0
0
トグル
データ
データ
データ
データ
データ
トグル
0
0
トグル
1
0
1
トグル
1
1
*4
トグル
1
1
*4
消去一時停止読み出し
( 消去一時停止しているセクタ )
実行中
消去
一時停止
モード
消去一時停止読み出し
( 消去一時停止していないセクタ )
消去一時停止読み出し
( 消去一時停止しているセクタ )
タイム
リミット
超過
自動消去動作
消去一時停止モード
TOGGLLE TLOVER SETIMR TOGGL2
反転データ
反転データ
0
消去一時停止時の書込み動作
0
*2
*1
1
*3
*1: 消去一時停止セクタからの連続的な読出し時に TOGGLE2 はトグル動作をします。
*2: どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。
*3: 消去一時停止書込み中 , その書込みされているアドレスの読出し時は , TOGGL2 は "1" となります。しかし ,
消去一時停止しているセクタからの連続的な読出し時は , TOGGL2 はトグル動作をします。
*4:TLOVER が "1" のとき ( タイムリミット超過 ) , 書込み / 消去中セクタへの連続的な読み出しに対して ,
TOGGL2 はトグル動作をし , 他のセクタへの読出しに対してはトグルしません。
表中の各ビットは , 以下の内容を示します。
[ ビット 7] DPOLL: データポーリング
[ ビット 6] TOGGLE: トグルビット
[ ビット 5] TLOVER: タイムリミット超過
[ ビット 3] SETIMR: セクタ消去タイマ
[ ビット 2] TOGGL2: トグルビット 2
以下に , それぞれのビットについて簡単に説明します。
[ ビット 7] DPOLL データポーリングフラグ
データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ
ることをデータポーリング機能によって知らせるためのフラグです。
● 書込み動作時 :
自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ
スの指す番地にアクセスせず, 最後に書き込まれたデータのビット7の反転データを出
力します。
自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはアドレ
スの指す番地の読出し値のビット 7 を出力します。
● チップ / セクタ消去動作時 :
消去 / セクタ消去アルゴリズム実行中にリードアクセスすると , セクタ消去時は現在消
去しているセクタから , チップ消去時はアドレスの指す番地に関係なく , フラッシュメ
モリは "0" を出力します。同様に終了時には "1" を出力します。
520
第 17 章 フラッシュメモリ
● セクタ消去一時停止時 :
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指す
番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレスの指
す番地の読出し値のビット 7 を出力します。
トグルビットフラグと共に参照することで , 現在セクタ一時停止状態であるか , どのセ
クタが消去中であるかの判定が可能です。
<注意事項>
自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ
の読出しは , データポーリングフラグの終了を受けてほかのビットの出力が可能となりま
す。
このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認した
リードアクセスの次に行うようにしてください。
[ ビット 6] TOGGLE: トグルビットフラグ
トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実
行が進行中または終了状態であることを , トグルビット機能によって知らせるため
のフラグです。
● 書込み / チップ • セクタ消去時 :
自動書込みアルゴリズムおよびチップ • セクタ消去アルゴリズム実行中に連続した
リードアクセスを行うと , フラッシュメモリはアドレスの指す番地にアクセスせず ,
リードごとに "1" と "0" を交互に出力するトグル状態を出力します。
自動書込みアルゴリズムおよびチップ / セクタ消去アルゴリズム終了時に連続した
リードアクセスを行うと , フラッシュメモリはビット 6 のトグル動作を中止し , アドレ
スの指す番地の読出し値のビット 6 (DATA:6) を出力します。
● セクタ消去一時停止時 :
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指す
番地が消去中のセクタに属するならば , "1" を出力します。
消去中のセクタに属さないのであれば , アドレスの指す番地の読出し値のビット 6
(DATA:6) を出力します。
<参考>
書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は ,
約 2 µs のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消
去の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは
約 100 µs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻り
ます。
521
第 17 章 フラッシュメモリ
[ ビット 5] TLOVER タイミングリミット超過フラグ
タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内
部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラグで
す。
● 書込み / チップ • セクタ消去時 :
書込みまたはチップ • セクタ消去自動アルゴリズム起動後にリードアクセスすると , 規
定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまってい
る場合は "1" を出力します。
これは , 自動アルゴリズムが実行中か終了状態にあるかとは無関係ですので , 書込み /
消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが "1" を出力し
たとき , データポーリング機能もしくはトグルビット機能により自動アルゴリズムが
まだ実行中であれば , 書込みが失敗していると判断することができます。
例えば, "0"が書込まれているフラッシュメモリアドレスに"1"を書込もうとするとフェ
イルが発生します。この場合フラッシュメモリはロックされ , 自動アルゴリズムは終了
しません。したがって , データポーリングフラグから有効なデータが出力されません。
またトグルビットフラグはトグル動作を中止せず , タイムリミットを超え , タイミング
リミット超過フラグは "1" を出力します。この状態はフラッシュメモリが不良ではな
く , 正しく使用されなかったということを表しています。この状態が発生したときは ,
リセットコマンドを実行してください。
[ ビット 4] SETIMR セクタ消去タイマフラグ
セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中
であるかどうかを知らせるフラグです。
● セクタ消去動作時 :
セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを
発行したセクタのアドレス信号の指す番地にアクセスせず , セクタ消去ウェイト期間
中であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合は "1" を出力し
ます。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して
いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて
のセクタ消去コードの書込み , または消去一時停止以外のコマンドは , 消去が終了され
るまで無視されます。
このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードの書込みを受
け付けます。このことを確認するために , 続くセクタ消去コードの書込みに先立ちこの
フラグの状態をチェックすることをお奨めします。もし 2 回目の状態チェックで "1" で
あったなら追加セクタの消去コードは受け付けられてない可能性があります。
● セクタ消去動作時
セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指す
番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さない
のであれば , アドレスの指す番地の読出し値のビット 3 (DATA:3) を出力します。
522
第 17 章 フラッシュメモリ
[ ビット 6] TOGGL2: トグルビットフラグ 2
このトグルビットフラグはビット 6 のトグルビットに加えて , フラッシュメモリが
自動消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知
らせるためのフラグです。
● 書込み / チップ • セクタ消去時 :
トグルビット ( ビット 2) と同様のトグル動作をします。
● セクタ消去一時停止時
フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止しているセクタ
から連続して読出しを行うと , ビット 2 はトグル動作をします。
消去一時停止書込みモードのときは , 消去一時停止していないセクタのアドレスから
連続して読出しを行うと , ビット 2 は "1" が読み出されます。
ビット 6 はビット 2 と異なり , 通常の書込み , 消去 , または消去一時停止書込み動作中
にのみトグル動作をします。
<参考>
ビット 2 とビット 6 は , 消去一時停止読出しモードを検出するために , 同時に使われます
( ビット 2 はトグル動作をするがビット 6 はトグル動作をしない ) 。さらにビット 2 は消
去しているセクタの検出にも使われます。フラッシュメモリが消去動作のときは , ビット
2 は消去しているセクタからの読出しならばトグル動作をします。
523
第 17 章 フラッシュメモリ
17.5
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , およびセクタ消去再開
のそれぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の概要
フラッシュメモリは , 以下の動作がコマンドシーケンスのバスへのライトサイクルを
行うことで自動アルゴリズムを実行することが可能です。
• 読出し / リセット
• 書込み
• チップ消去
• セクタ消去
• セクタ消去一時停止
• 消去再開
それぞれのバスへのライトサイクルは必ず続けて行う必要があります。
また , 自動アルゴリズムはデータ • ポーリング機能などで終了時を確認できます。正常
終了後は読出し / リセット状態に戻ります。
524
第 17 章 フラッシュメモリ
17.5.1
読出し / リセット状態にする
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリの読出し / リセット方法
フラッシュメモリを読出し/リセット状態にするには, コマンドシーケンス表の読出し/
リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能
です。
読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 通りのコマンドシーケ
ンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。
読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM
と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに
このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと
きなど , 自動アルゴリズムを初期化する場合に , 主にこのコマンドを使用します。
525
第 17 章 フラッシュメモリ
17.5.2
データ書込みを行う
書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説
明します。
■ フラッシュメモリのデータ書込み方法
フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実
行可能です。
4 サイクル目に目的のアドレスへのデータ書込みが終了した時点で , 自動アルゴリズム
が起動され自動書込みが開始します。
■ アドレス指定方法
書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが ,
1 回の書込みコマンドによって書込まれるデータは 1 ハーフワードのみです。
■ データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。
データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムまたはトグル動
作が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミ
ングリミット超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書込ま
れたように見えるかのどちらかとなります。ただし , 読出し / リセット状態でデータを
読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることがで
きます。
自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意
が必要です。
■ フラッシュメモリ書込み手順
図 17.5-1 に , フラッシュメモリ書込みの手順の例を示します。
ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ
ズムの状態判定が可能です。ここでは , 書込み終了の確認にデータポーリングフラグ
(DPOLL) を用いています。
フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読み
込みとなります。
データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同
時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても
データポーリングフラグビット (DPOLL) は再チェックする必要があります。
トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット
(TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ
(TOGGLE) を再チェックする必要があります。
526
第 17 章 フラッシュメモリ
図 17.5-1 フラッシュメモリ書込み手順の例
書込み開始
FLCR:WE(ビット1)
フラッシュメモリ書込み許可
書込みコマンドシーケンス
・AAAAA (ROM1)/AAAAE( ROM2)←AA
・D5552 (ROM1)/D5556( ROM2)←55
・AAAAA (ROM1)/AAAAE( ROM2)←A0
・書込みアドレス←書込みデータ
内部アドレスリード
データ
ポーリング
(DPOLL)
次アドレス
Dat
Dat
0
タイミング
リミット
(TLOVER)
1
内部アドレスリード
Dat
データ
ポーリング
(DPOLL)
Dat
書込みエラー
最終アドレス
No
Yes
FLCR :WE (ビット1)
フラッシュメモリ書込み禁止
書込み完了
ハードウェアシーケンス・
フラグによる確認
527
第 17 章 フラッシュメモリ
17.5.3
データ消去を行う ( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい
て説明します。
■ フラッシュメモリのデータ消去 ( チップ消去 ) 方法
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表のチッ
プ消去コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能で
す。
チップ消去コマンドは 6 回のバス動作で行われます。
6サイクル目の書込みが完了した時点でチップ消去動作が開始します。チップ消去では,
消去前にユーザがフラッシュメモリに書込みを行う必要はありません。自動消去アル
ゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消去する前に "0" を
書き込んで検証します。
528
第 17 章 フラッシュメモリ
17.5.4
データ消去を行う ( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に
ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す
ることも可能です。
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセ
クタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可
能です。
■ セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに
より 50 µs のセクタ消去ウェイトが開始します。
複数のセクタ消去を行う場合は , 上記の処理に引き続き消去する目的のセクタ内のア
ドレスに消去コード (30H) を書き込みます。
■ 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから50 µsのセクタ消去ウェイト期間終了により消去
が開始します。すなわち , 複数のセクタを同時に消去する場合は , 次の消去セクタのア
ドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入力
する必要があり , それ以降では受け付けられないことがあります。
続くセクタ消去コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェア •
シーケンス • フラグ : SETIMR) によって調べることができます。このとき , セクタ消去
タイマをリードするアドレスは , 消去しようとしているセクタを指すようにします。
■ セクタ消去手順
ハードウェア • シーケンス • フラグを用いることでフラッシュメモリ内部の自動アルゴ
リズムの状態判定が可能です。図 17.5-2 に , フラッシュメモリセクタ消去の手順の例
を示します。
ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。
フラグチェックのために読込むデータは , 消去しようとしているセクタからの読込み
となりますので , 注意が必要です。
トグルビットフラグ (TOGGLE) は, タイミングリミット超過フラグ (TLOVER) が"1"に
変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ
(TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が
あります。
デ ー タ ポ ー リ ン グ フ ラ グ (DPOLL) で も 同 様 に , タ イ ミ ン グ リ ミ ッ ト 超 過 フ ラ グ
(TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする
必要があります。
529
第 17 章 フラッシュメモリ
図 17.5-2 セクタ消去手順の例
消去開始
FLCR:WE(ビット1)
フラッシュメモリ消去許可
セクタ消去タイマ
(SETIMR)
0
1
消去コマンドシーケンス
・AAAAA (ROM1)/AAAAE( ROM2)←AA
・D5552 (ROM1)/D5556( ROM2)←55
・AAAAA (ROM1)/AAAAE( ROM2)←80
・AAAAA (ROM1)/AAAAE( ROM2)←AA
・D5552 (ROM1)/D5556( ROM2)←55
・ 消去セクタへコード入力(30h)
Yes
消去セクタが
他にあるか
No
内部アドレスリード1
内部アドレスリード
次セクタ
内部アドレスリード2
Yes
トグルビット(TOGGLE)
データ1=データ2
No
ハードウェアシーケンス・
フラグによる確認
0
タイミングリミット
(TLOVER)
1
内部アドレスリード1
内部アドレスリード2
No
トグルビット(TOGGLE)
データ1=データ2
Yes
消去エラー
最終セクタ
No
Yes
(ビット1)
フラッシュメモリ消去禁止
消去完了
530
第 17 章 フラッシュメモリ
17.5.5
セクタ消去を一時停止する
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから , データを読み出すことが
可能です。
■ フラッシュメモリのセクタ消去一時停止方法
フラッシュメモリのセクタ消去を一時停止するには , フラッシュメモリ内に表 17.4-1
のセクタ消去一時停止コマンドを送ることで実行可能です。
セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込
みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み動作中は無視されます。
消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレス
はフラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度
の消去一時停止コマンドは無視されます。
セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ
クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去
ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20
µs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セクタ
消去コマンドあるいはセクタ消去再開コマンド発行後, 20 µs以上後に行ってください。
531
第 17 章 フラッシュメモリ
17.5.6
セクタ消去を再開する
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリのセクタ消去再開方法
一時停止したセクタ消去を再開させるには , フラッシュメモリ内に表 17.4-1 のセクタ
消去再開コマンドを送ることで実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード
(30H) の書込みを行うことで実施されますが , このときのアドレスはフラッシュメモリ
領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
532
第 18 章
MB91F353A/F355A/
F356B/F357B
シリアル書込み接続
この章では , 横河ディジタルコンピュータ株式会社
製 AF220/AF210/AF120/AF110 フラッシュマイコ
ンプログラマを用いた場合の , シリアルオンボード
書込み ( 富士通標準 ) 接続について説明します。
18.1 MB91F353A/F355A/F356B/F357B 書込み基本構成
18.2 富士通標準シリアルオンボード書込みに使用する端子
18.3 シリアル書込み接続例
18.4 フラッシュマイコンプログラマシステム構成
18.5 その他の注意事項
533
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
18.1
MB91F353A/F355A/F356B/F357B 書込み基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/
AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。
■ MB91F353A/F355A/F356B/F357B 書込み基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/
AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。シングルチップ
モードで動作するプログラムあるいは , 内 ROM 外バスモードで動作するプログラムの
どちらかを選択して書き込むことができます。
図 18.1-1 に , MB91F353A/F355A/F356B/F357B シリアル書込み接続例の基本構成を示し
ます。
図 18.1-1 MB91F353A/F355A/F356B/F357B シリアル書込み接続例の基本構成
ホストインタフェースケーブル
汎用共通ケーブル(AZ210)
RS232C
AF220/AF210/
AF120/AF110
CLK 同期シリアル
フラッシュマイ
コンプログラマ
+
メモリカード
MB91F353A/F355A/
F356B/F357B
ユーザシステム
スタンドアロンで動作可能
( 注意事項 ) MB91351A/352A/353A/354A/355A はマスク品なので Flash 書込みができません。
<参考>
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続
用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株
式会社にお問い合わせください。
534
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
18.2
富士通標準シリアルオンボード書込みに使用する端子
富士通標準シリアルオンボード書込みに使用する端子について説明します。
■ 富士通標準シリアルオンボード書込みに使用する端子
表 18.2-1 に , 富士通標準シリアルオンボード書込みに使用する端子の機能を示します。
表 18.2-1 富士通標準シリアルオンボード書込みに使用する端子の機能
端子
機能
補足説明
書込みモードに制御します。
フラッシュシリアル書込みモード : MD2=1, MD1=0, MD0=0
<参考>
シングルチップモード : MD2=0, MD1=0, MD0=0
MD2, MD1, MD0 モード端子
PN0, PN2
INIT
書込みプログラム起動端子 PN0 に "L" レベル , PN2 に "H" レベルを入力してください。
リセット端子
SI3
シリアルデータ入力端子
SO3
シリアルデータ出力端子
SCK3
シリアルクロック入力端子
UART のチャネル 3 リソースをクロック同期モードとして使用し
ます。
VCC
電源電圧供給端子
書込み電圧をユーザシステムから供給してください。
( 注意事項 )
接続時にはユーザ側の電源と短絡しないようにしてください。
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にします。
PN0, PN2, SI3, SO3, SCK3 端子をユーザシステムでも使用する場合には , 図 18.2-1 に示
す制御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シ
リアル書込み中はユーザ回路を切り離すことができます )。
AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
図 18.2-1 ユーザシステムで使用する場合の制御回路
AF220/AF210/
AF120/AF110
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS端子
MB91F353A/F355A/
F356B/F357B
書込み制御端子
ユーザ回路
535
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
18.3
シリアル書込み接続例
シリアル書込み接続例を示します。
■ シリアル書込み接続例
図 18.3-1 および図 18.3-2 に , シリアル書込み接続例を示します。
図 18.3-1 MB91F353A シリアル書込み接続例
ユーザシステム
AF200
フラッシュマイコン
MB91F353A(LQFP-120)
コネクタ DX10-28S
使用MODEに合わせ
Pull_UP/Pull_DOWN
TAUX3
(19)
TMODE
(12)
TAUX
(23)
シリアル書換時
同期通信="H"
52
MD1
53
MD0
54
PN0
70
PN2
71
WDT
(18)
/TICS
(10)
/TRES
(5)
INTX
55
TTXD
(13)
SI3
102
TRXD
(27)
SO3
103
TCK
(6)
TVcc
(2)
ユーザ回路
SCK3 104
ユーザ電源(3.3V)
GND
(14,15,
1,28)
3,4,9,11,16,17,18,
20,24,25,26ピンは
OPEN
DX10-28S:ライトアングルタイプ
Vcc
(19,44,56,
77,95)
Vss
(18,40,43,59,
76,96,112)
14ピン
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン
( 注意事項 ) プルアップ / プルダウン 抵抗はすべて 10kΩ です。
536
MD2
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
図 18.3-2 MB91F355A/MB91F356B/MB91F357B シリアル書込み接続例
ユーザシステム
AF200
フラッシュマイコン
MB91F355A/MB91F356B/
MB91F357B (LQFP-176)
コネクタ DX10-28S
使用MODEに合わせ
Pull_UP/Pull_DOWN
TAUX3
(19)
TMODE
(12)
TAUX
(23)
シリアル書換時
同期通信="H"
MD2
138
MD1
139
MD0
140
PN0
81
PN2
83
144
WDT
(18)
/TICS
(10)
/TRES
(5)
INIT
TTXD
(13)
SI3
125
TRXD
(27)
SO3
126
TCK
(6)
TVcc
(2)
ユーザ回路
SCK3 127
ユーザ電源(3.3V)
GND
(14,15,
1,28)
3,4,9,11,16,17,18,
20,24,25,26ピンは
OPEN
DX10-28S:ライトアングルタイプ
14ピン
Vcc
(18,36,46,62,
66,80,97,115,
142,146,163,
176)
Vss
(17,35,45,64,
65,79,93,96
114,136,145
162,175)
1ピン
DX10-28S
15ピン
28ピン
コネクタ(ヒロセ電機製)のピン
( 注意事項 ) プルアップ / プルダウン 抵抗はすべて 10kΩ です。
537
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
フラッシュマイコンプログラマシステム構成
18.4
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコン
ピュータ株式会社製 ) のシステム構成を示します。
■ フラッシュマイコンプログラマシステム構成
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコンピュー
タ株式会社製 ) のシステム構成と問い合わせ先は次のとおりです。
表 18.4-1 フラッシュマイコンプログラマシステム構成
型 格
本
体
機 能
AF220 /AC4P
イーサーネットインタフェースモデル /100V ∼ 220V 電源アダプタ
AF210 /AC4P
スタンダードモデル /100V ∼ 220V 電源アダプタ
AF120 /AC4P
単キー イーサーネットインタフェースモデル /100V ∼ 220V 電源アダプタ
AF110 /AC4P
単キーモデル /100V ∼ 220V 電源アダプタ
AZ221
ライタ専用 PC-AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ :1m
FF201
富士通 フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P2
2M バイト PC Card (Option) フラッシュメモリ容量 128K バイトまで
/P4
4M バイト PC Card (Option) フラッシュメモリ容量 512K バイトまで
問い合わせ先 : 横河ディジタルコンピュータ株式会社 電話 :042-333-6224
538
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
18.5
その他の注意事項
MB91F353A/F355A/F356B/F357B シリアル書込み接続時の注意事項を示します。
■ MB91F353A/F355A/F356B/F357B シリアル書込み接続時の注意事項
● 原発振クロック周波数
フラッシュメモリ書込み時に使用可能な原発振クロックは 10.0MHz から 12.5MHz と
なっております。
● フラッシュメモリ書込み時のポート状態
シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し
ている端子を除きシングルチップモードの初期化状態と同じです。
539
第 18 章 MB91F353A/F355A/ F356B/F357B シリアル書込み接続
540
第 19 章
内蔵 RAM ( データ ) /
内蔵 RAM ( 命令実行可能 )
アクセス制限機能
この章では内蔵 RAM ( データ ) および内蔵 RAM
( 命令実行可能 ) アクセス制限機能について説明し
ます。
19.1 概要
19.2 レジスタ詳細説明
19.3 動作説明
541
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
19.1
概要
本機能は , デバイスに搭載している内蔵 RAM 領域のうち , 使用可能な領域を制限し
ます。デバイス初期状態では , 使用可能な領域は 4K バイトに制限されていますので ,
設定変更してから使用する必要があります。
■ 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能レジスタ一覧
内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のレジスタは , 以下
のとおりです。
DRLR
アドレス 00000390 H
アドレス 00000280 H
FRLR
■ 内蔵RAM (データ) /内蔵RAM (命令実行可能) アクセス制限機能 のブロックダイヤ
グラム
図 19.1-1 に , 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブ
ロックダイヤグラムを示します。
図 19.1-1 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能のブロックダイヤグラム
RAM制御信号
D-bus RAM 制御回路
リード値
レジスタ値
DRLR
ライト値
バス制御信号
バス制御信号
D-bus(データ)
D-bus RAM
F-bus RAM 制御回路
リード値
レジスタ値
RAM 制御信号
FRLR
ライト値
バス制御信号
バス制御信号
F-bus(命令/データ)
F-bus RAM
542
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
19.2
レジスタ詳細説明
内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の各レジスタの
詳細を説明します。
■ DRLR: データ RAM 制限コントロールレジスタ (D-bus RAM Limit control
Register)
データ RAM 制限コントロールレジスタのレジスタ構成は , 以下のとおりです。
アドレス
00000390 H
初期値
7
6
5
4
3
2
1
0
-
-
-
-
-
-
DL1
D L0
-
-
-
-
-
-
0
1
(R/W )
[ ビット 7 ∼ 2] Reseve
予約ビットです。書込み時は "0" を書き込んでください。読出し値は不定です。
[ ビット 1, 0] DL1, DL0
スタック用 RAM の領域制限をすることができます。
DL1
DL0
0
0
( 設定禁止 )
0
1
アドレス 40000H ∼ 40FFFH の 4K バイトが使用できます ( 初期値 ) 。
1
0
アドレス 40000H ∼ 41FFFH の 8K バイトが使用できます。
1
1
アドレス 40000H ∼ 43FFFH の 16K バイトが使用できます。
説 明
<注意事項>
デバイスが搭載する RAM 容量を超えた設定を行わないでください。
本設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。
543
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
■ FRLR: 命令 RAM 制限コントロールレジスタ (F-Bus RAM Limit control Register)
命令 RAM 制限コントロールレジスタのレジスタ構成は , 以下のとおりです。
アドレス
00000280 H
初期値
7
6
5
4
3
2
1
0
-
-
-
-
-
-
FL1
F L0
-
-
-
-
-
-
0
1
(R/W )
[ ビット 7 ∼ 2] Reseve
予約ビットです。書込み時は "0" を書き込んでください。読出し値は不定です。
[ ビット 1, 0] FL1, FL0
命令実行可能 RAM の領域制限をすることができます。
FL1
FL0
0
0
( 設定禁止 )
0
1
アドレス 3F000H ∼ 3FFFFH の 4K バイトが使用できます ( 初期値 ) 。
1
0
アドレス 3E000H ∼ 3FFFFH の 8K バイトが使用できます。
1
1
アドレス 3C000H ∼ 3FFFFH の 16K バイトが使用できます。
説明
<注意事項>
デバイスが搭載する RAM 容量を超えた設定を行わないでください。
本設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください。
544
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
19.3
動作説明
内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作について
説明します。
■ 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能の動作
本機能は , デバイスに搭載している内蔵 RAM 領域のうち , 使用可能な領域を制限しま
す。
使用できないように設定された RAM 領域に対しては , 書込み無効 , 読出し値不定とな
ります。
デバイス初期状態では , データ用 RAM, 命令実行可能 RAM ともに , 4K バイトのみ使
用可能に制限されていますので , 4K バイト以上使用する場合 , 本機能を設定変更して
から使用する必要があります。
545
第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制限機能
546
付録
付録として , I/O マップ , 割込みベクタ , CPU ス
テートでの端子状態 , および命令一覧について記載
しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D 命令一覧表
547
付録 A I/O マップ
付録 A
I/O マップ
本品種に内蔵された周辺機能の各レジスタは , 付表 A-1 に示すアドレスが割り当て
られています。
■ I/O マップの読み方
アドレス
000000H
レジスタ
+0
PDR0 [R/W]B
XXXXXXXX
+1
PDR1 [R/W]B
XXXXXXXX
+2
PDR2 [R/W]B
XXXXXXXX
+3
PDR3 [R/W]B
XXXXXXXX
ブロック
T-unit
ポートデータ
レジスタ
リード/ライトアトリビュート, アクセス単位
(B:バイト, H:ハーフワード, W:ワード)
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地・・・)
最左のレジスタ番地(ワードでアクセスした際は,1コラム目の
レジスタがデータのMSB側となる)
レジスタのビット値は , 以下のように初期値を表します。
• "1": 初期値 "1"
• "0": 初期値 "0"
• "X": 初期値 "X"
• "-": その位置に物理的にレジスタがない
548
付録 A I/O マップ
■ メモリ空間領域と周辺リソースの各レジスタの対応
付表 A-1 I/O マップ (1 / 10)
アドレス
000000H
000004H
000008H
00000CH
000010H
000014H
000018H
レジスタ
+0
+1
───
───
PDR4[R/W]B
XXXXXXXX
PDR8[R/W]B
--XXXXXX
PDR5[R/W]B
XXXXXXXX
PDR9[R/W]B
---XXXXX
000024H
000028H
00002CH
PDR2[R/W]B
XXXXXXXX
PDR6[R/W]B
XXXXXXXX
PDRA[R/W]B
----XXXX
PDR3[R/W]B
XXXXXXXX
───
*3
PDRB[R/W]B
XXXXXXXX
T- ユニット
ポートデータ
レジスタ *3
───
PDRH[R/W]B
--XXXXXX
PDRL[R/W]B
------XX
PDRI[R/W]B
--XXXXXX
PDRM[R/W]B
--XXXXXX
PDRJ[R/W]B *3
XXXXXXXX
PDRN[R/W]B
--XXXXXX
PDRP[R/W]B *3
----XXXX
───
───
00001CH
000020H
+3
PDRC[R/W]B *3
-----XXX
PDRG[R/W]B *3
--XXXXXX
PDRK[R/W]B
XXXXXXXX
PDRO[R/W]B
XXXXXXXX
ブロック
+2
R-bus
ポートデータ
レジスタ *3
───
───
───
*3
SMCS5[R/W]B,H
00000010----00-SMCS6[R/W]B,H
00000010----00-SMCS7[R/W]B,H
00000010----00--
───
Reserved
───
*3
*3
SES5[R/W]B
------00
SES6[R/W]B
------00
SES7[R/W]B
------00
SDR5[R/W]B
XXXXXXXX
SDR6[R/W]B
XXXXXXXX
SDR7[R/W]B
XXXXXXXX
CDCR5[R/W]B *3
─── *1
SIO5 *3
SIO6
SIO7
SIO プリスケーラ 5
000030H
───
───
000034H
CDCR6[R/W]B
0---1111
─── *1
CDCR7[R/W]B
0---1111
─── *1
SIO プリスケーラ
6, 7
000038H
───
SRCL5[W]B *3
--------
SRCL6[W]B
--------
SRCL7[W]B
--------
SIO5 ∼ 7 *3
00003CH
000048H
───
───
EIRR0[R/W]B,H,W ENIR0[R/W]B,H,W
00000000
00000000
DICR[R/W]B,H,W HRCL[R/W]B,H,W
-------0
0--11111
TMRLR0[W]H,W
XXXXXXXXXXXXXXXX
00004CH
───
000050H
TMRLR1[W]H,W
XXXXXXXXXXXXXXXX
000054H
───
000058H
TMRLR2[W]H,W
XXXXXXXXXXXXXXXX
00005CH
───
000040H
000044H
000060H
SSR0[R/W]B,H,W
00001000
SIDR0[R]
SORR0[W]B,H,W
0---1111
───
───
ELVR0[R/W]B,H,W
00000000
───
TMR0[R]H,W
XXXXXXXXXXXXXXXX
TMCSR0[R/W]B,H,W
----000000000000
TMR1[R]H,W
XXXXXXXXXXXXXXXX
TMCSR1[R/W]B,H,W
----000000000000
TMR2[R]H,W
XXXXXXXXXXXXXXXX
TMCSR2[R/W]B,H,W
----000000000000
SCR0
SMR0[R/W]B,H,W
[R/W]B,H,W
00--0--00000100
*3
Reserved
Extint(INT0-7)
DLYI/I- ユニット
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
UART0
XXXXXXXX
*1: テスト用レジスタです。アクセス禁止です。
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
549
付録 A I/O マップ
付表 A-1 I/O マップ (2 / 10)
アドレス
000064H
000068H
00006CH
000070H
000074H
000078H
レジスタ
+0
+1
+2
+3
UTIM0[R]H(UTIMR0[W]H)
DRCL0[W]B
UTIMC0[R/W]B
0000000000000000
SIDR1[R]
SSR1[R/W]B,H,W
SODR1[W]B,H,W
00001000
XXXXXXXX
UTIM1[R]H(UTIMR1[W]H)
-------SCR1[R/
W]B,H,W
0--00001
0000000000000000
SIDR2[R]
SSR2[R/W]B,H,W
SODR2[W]B,H,W
00001000
XXXXXXXX
UTIM2[R]H(UTIMR2[W]H)
0000000000000000
ADCS2[R/W]B,H,W ADCS1[R/W]B,H,W
00000100
DRCL1[W]B
-------SCR2[R/W]
B,H,W
00000100
DRCL2[W]B
SMR1[R/W]B,H,W
00--0--UTIMC1[R/W]B
0--00001
SMR2[R/W]B,H,W
00--0--UTIMC2[R/W]B
-------0--00001
ADCT[R/W]H,W
0000XX00
000X0000
ADTH0[R]B,H,W
ADTL0[R]B,H,W
000000XX
XXXXXXXX
ADTH2[R]B,H,W
ADTL2[R]B,H,W
000000XX
XXXXXXXX
───
DACR2[R/W]
B,H,W *3
XXXXXXXX_XXXXXXXX
ADTH1[R]
ADTL1[R]B,H,W
B,H,W
XXXXXXXX
000000XX
ADTH3[R]
ADTL3[R]B,H,W
B,H,W
XXXXXXXX
000000XX
DACR0[R/W]
DACR1[R/W]
B,H,W
B,H,W
000088H
───
-------0
DADR2[R/W]
B,H,W *3
-------0
DADR1[R/W]
B,H,W
-------0
DADR0[R/W]
B,H,W
XXXXXXXX
───
───
IBCR[R]B,H,W
XXXXXXXX
───
───
IBSR[R]B,H,W
XXXXXXXX
00008CH
000090H
00000000
00000000
00007CH
000080H
000084H
000094H
000098H
00009CH
0000A0H
0000A4H
0000A8H
0000ACH
ITMK[R/W]B,H,W
0011111111111111
─── *1
IDAR[R/W]B,H,W
00000000
───
───
───
───
TMRLR3[W]H,W
XXXXXXXXXXXXXXXX
───
*1
*1
───
───
*1
───
───
ITBA[R/W]B,H,W
0000000000000000
ISMK[R/
ISBA[R/W]B,H,W
W]B,H,W
00000000
01111111
ICCR[R/
IDBL[R/W]B,H,W
W]B,H,W
-------0
00011111
─── *1
───
*1
───
─── *1
TMR3[R]H,W
XXXXXXXXXXXXXXXX
TMCSR3[R/W]B,H,W
----000000000000
*1: テスト用レジスタです。アクセス禁止です。
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
550
ブロック
U- タイマ /UART0
UART1
U- タイマ /UART1
UART2
U- タイマ /UART2
A/D コンバータ
D/A コンバータ
*3
Reserved
Reserved
I2C インタフェース
Reserved
リロードタイマ 3
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 10)
アドレス
0000B0H
0000B4H
0000B8H
0000BCH
0000C0H
0000C4H
0000C8H
0000CCH
0000D0H
0000D4H
0000D8H
0000DCH
0000E0H
0000E4H
0000E8H
0000ECH
0000F0H
0000F4H
0000F8H
0000FCH
レジスタ
+0
+1
RCR1[W]B,H,W *3
RCR0[W]B,H,W
00000000
00000000
CCRH0[R/W]B,H,W CCRL0[R/W]B,H,W
00000000
00001000
CCRH1[R/W]B,H,W *3 CCRL1[R/W]B,H,W *3
00000000
00001000
───
───
SIDR3[R]
SSR3[R/W]B,H,W
SODR3[W]B,H,W
00001000
XXXXXXXX
UTIM4[R]H(UTIMR4[W]H)
0000000000000000
SSR[R/W]B,H,W *3
00001000
SIDR[R/W]B,H,W *3
XXXXXXXX
UTIM[R]H(UTIMR[W]H) *3
0000000000000000
*3
ENIR1[R/W]B,H,W *3
EIRR1[R/W]B,H,W
00000000
00000000
TCDT[R/W]H,W
0000000000000000
IPCP1[R]H,W
XXXXXXXXXXXXXXXX
IPCP3[R]H,W
XXXXXXXXXXXXXXXX
ICS23[R/W]B,H,W
───
00000000
OCCP1[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCCP3[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCCP5[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCCP7[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCS23[R/W]B,H,W
1110110000001100
OCS67[R/W]B,H,W *3
1110110000001100
+2
UDCR1[R]
B,H,W *3
00000000
───
───
+3
ブロック
UDCR0[R]B,H,W
00000000
CSR0[R/W]B,H,W
00000000
CSR1[R/W]B,H,W *3
8/16 ビット
アップダウン
カウンタ 0, 1 *3
00000000
───
Reserved
SMR3[R/W]B,H,W
00--0---
UART3
───
UTIMC4[R/W]B
0--00001
U- タイマ /UART 3
SCR[R/W]
B,H,W *3
00000100
SMR[R/W]B,H,W *3
00--0---
───
UTIMC[R/W]B *3
0--00001
───
SCR3
[R/W]B,H,W
00000100
UART4
*3
U- タイマ /UART 4
*3
*3
ELVR1[R/W]B,H,W
00000000
TCCS[R/W]B,H,W
───
00000000
IPCP0[R]H,W
XXXXXXXXXXXXXXXX
IPCP2[R]H,W
XXXXXXXXXXXXXXXX
ICS01[R/W]B,H,W
───
00000000
OCCP0[R/W]H,W
XXXXXXXXXXXXXXXX
Ext int(INT8-15)
*3
16 ビットフリー
ランタイマ
16 ビット ICU
OCCP2[R/W]H,W
XXXXXXXXXXXXXXXX
OCCP4[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCCP6[R/W]H,W *3
XXXXXXXXXXXXXXXX
OCS01[R/W]B,H,W
1110110000001100
16 ビット OCU
*3
OCS45[R/W]B,H,W *3
1110110000001100
───
───
───
───
Reserved
───
───
───
───
Reserved
───
GCN20[R/W]B
00000000
PPG 制御 0
000100H
|
000114H
000118H
00011CH
GCN10[R/W]H
0011001000010000
───
PTMR0[R]H,W
1111111111111111
───
PCSR0[W]H,W
000120H
XXXXXXXXXXXXXXXX
PCNH0[R/
PCNL0[R/W]
PDUT0[W]H,W
000124H
W]B,H,W
B,H,W
XXXXXXXXXXXXXXXX
00000000
000000X0
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
Reserved
PPG0
551
付録 A I/O マップ
付表 A-1 I/O マップ (4 / 10)
アドレス
レジスタ
+0
+1
000128H
PTMR1[R]H,W *3
1111111111111111
00012CH
PDUT1[W]H,W *3
XXXXXXXXXXXXXXXX
000130H
PTMR2[R]H,W
1111111111111111
000134H
PDUT2[W]H,W
XXXXXXXXXXXXXXXX
000138H
PTMR3[R]H,W *3
1111111111111111
00013CH
PDUT3[W]H,W *3
XXXXXXXXXXXXXXXX
000140H
PTMR4[R]H,W
1111111111111111
000144H
PDUT4[W]H,W
XXXXXXXXXXXXXXXX
000148H
PTMR5[R]H,W *3
1111111111111111
00014CH
PDUT5[W]H,W *3
XXXXXXXXXXXXXXXX
000150H
|
0001FCH
+2
PCSR1[W]H,W *3
XXXXXXXXXXXXXXXX
PCNH1[R/W]
PCNL1[R/W]B,H,W *3
B,H,W *3
000000X0
00000000
PCSR2[W]H,W
XXXXXXXXXXXXXXXX
PCNH2[R/
PCNL2[R/W]B,H,W
W]B,H,W
000000X0
00000000
PCSR3[W]H,W *3
XXXXXXXXXXXXXXXX
PCNH3[R/
PCNL3[R/W]B,H,W *3
W]B,H,W *3
000000X0
00000000
PCSR4[W]H,W
XXXXXXXXXXXXXXXX
PCNH4[R/
PCNL4[R/W]B,H,W
W]B,H,W
000000X0
00000000
PCSR5[W]H,W *3
XXXXXXXXXXXXXXXX
PCNH5[R/W]
PCNL5[R/W]B,H,W *3
B,H,W *3
000000X0
00000000
───
000224H
DMACA0[R/W]B,H,W *4
000000000000XXXXXXXXXXXXXXXXXXXX
DMACB0[R/W]B,H,W
0000000000000000XXXXXXXXXXXXXXXX
DMACA1[R/W]B,H,W *4
000000000000XXXXXXXXXXXXXXXXXXXX
DMACB1[R/W]B,H,W
0000000000000000XXXXXXXXXXXXXXXX
DMACA2[R/W]B,H,W *4
000000000000XXXXXXXXXXXXXXXXXXXX
DMACB2[R/W]B,H,W
0000000000000000XXXXXXXXXXXXXXXX
DMACA3[R/W]B,H,W *4
000000000000XXXXXXXXXXXXXXXXXXXX
DMACB3[R/W]B,H,W
0000000000000000XXXXXXXXXXXXXXXX
DMACA4[R/W]B,H,W *4
000000000000XXXXXXXXXXXXXXXXXXXX
DMACB4[R/W]B,H,W
0000000000000000XXXXXXXXXXXXXXXX
000228H
───
00022CH
|
00023CH
───
000200H
000204H
000208H
00020CH
000210H
000214H
000218H
00021CH
000220H
+3
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
*4: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15: 0]) は , バイトでのアクセスはできません。
552
ブロック
PPG1
*3
PPG2
PPG3
*3
PPG4
PPG5
*3
Reserved
DMAC
Reserved
付録 A I/O マップ
付表 A-1 I/O マップ (5 / 10)
アドレス
レジスタ
+0
+1
+2
+3
ブロック
000240H
DMACR[R/W]B
0XX00000XXXXXXXXXXXXXXXXXXXXXXXX
DMAC
000244H
|
00027CH
───
Reserved
000280H
FRLR[R/W]B,H,W *2
------01
───
000284H
|
00038CH
000390H
0003F4H
0003F8H
0003FCH
000400H
000404H
000408H
DRLR[R/W]B,H,W *2
------01
PFRG[R/W]B *3
--00-00───
000418H
PFRO[R/W]B
00000000
00041CH
PCRG[R/W]B
--000000
*3
000424H
───
000428H
PCRO[R/W]B
00000000
00042CH
|
00043CH
───
───
───
PFRH[R/W]B
PFRI[R/W]B
───
--00-00--00-00PFRL[R/W]B
PFRM[R/W]B
PFRN[R/W]B
------00
--00-00--000000
PFRP[R/W]B *3
───
----0000
───
PCRH[R/W]B
PCRI[R/W]B
--000000
--000000
PCRM[R/W]B
───
--000000
PCRP[R/W]B *3
----0000
D-bus RAM
容量制限
Reserved
BSD0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
BSD1[R/W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
BSDC[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
BSRR[R]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DDRH[R/W]B
DDRI[R/W]B
DDRG[R/W]B *3
DDRJ[R/W]B *3
--000000
--000000
--000000
00000000
DDRK[R/W]B
DDRL[R/W]B
DDRM[R/W]B
DDRN[R/W]B
00000000
------00
--000000
--000000
*3
DDRO[R/W]B
DDRP[R/W]B
───
00000000
----0000
000414H
000420H
───
F-bus RAM
容量制限
Reserved
───
00040CH
000410H
───
───
000394H
|
0003ECH
0003F0H
───
───
ビットサーチ
モジュール
R-bus
データ方向
レジスタ *3
R-bus
ポート機能
レジスタ *3
Reserved
───
PCRN[R/W]B
--000000
R-bus
プルアップ制御
レジスタ *3
───
───
Reserved
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
553
付録 A I/O マップ
付表 A-1 I/O マップ (6 / 10)
アドレス
レジスタ
+0
+1
000440H
ICR00[R/W]B,H,W
---11111
ICR01[R/W]B,H,W
---11111
000444H
ICR04[R/W]B,H,W
---11111
ICR05[R/W]B,H,W
---11111
000448H
ICR08[R/W]B,H,W
---11111
ICR09[R/W]B,H,W
---11111
00044CH
ICR12[R/W]B,H,W
---11111
ICR13[R/W]B,H,W
---11111
000450H
ICR16[R/W]B,H,W
---11111
ICR17[R/W]B,H,W
---11111
000454H
ICR20[R/W]B,H,W
---11111
ICR21[R/W]B,H,W
---11111
000458H
ICR24[R/W]B,H,W
---11111
ICR25[R/W]B,H,W
---11111
00045CH
ICR28[R/W]B,H,W
---11111
ICR29[R/W]B,H,W
---11111
000460H
ICR32[R/W]B,H,W
---11111
ICR33[R/W]B,H,W
---11111
000464H
ICR36[R/W]B,H,W
---11111
ICR37[R/W]B,H,W
---11111
000468H
ICR40[R/W]B,H,W
---11111
ICR41[R/W]B,H,W
---11111
00046CH
ICR44[R/W]B,H,W
---11111
ICR45[R/W]B,H,W
---11111
000470H
|
00047CH
000480H
000484H
RSRR[R/W]B,H,W
10000000
STCR[R/W]B,H,W
00110011
CLKR[R/W]B,H,W
00000000
WPR[W]B,H,W
XXXXXXXX
───
000494H
WPCR[R/W]B
00---000
OSCR[R/W]B
00---000
RSTOP0[W]B
00000000
000498H
───
000490H
554
ICR02[R/W]
B,H,W
---11111
ICR06[R/W]
B,H,W
---11111
ICR10[R/W]
B,H,W
---11111
ICR14[R/W]
B,H,W
---11111
ICR18[R/W]
B,H,W
---11111
ICR22[R/W]
B,H,W
---11111
ICR26[R/W]
B,H,W
---11111
ICR30[R/W]
B,H,W
---11111
ICR34[R/W]
B,H,W
---11111
ICR38[R/W]
B,H,W
---11111
ICR42[R/W]
B,H,W
---11111
ICR46[R/W]
B,H,W
---11111
+3
ブロック
ICR03[R/W]B,H,W
---11111
ICR07[R/W]B,H,W
---11111
ICR11[R/W]B,H,W
---11111
ICR15[R/W]B,H,W
---11111
ICR19[R/W]B,H,W
---11111
ICR23[R/W]B,H,W
---11111
ICR27[R/W]B,H,W
---11111
割込み制御
ユニット
ICR31[R/W]B,H,W
---11111
ICR35[R/W]B,H,W
---11111
ICR39[R/W]B,H,W
---11111
ICR43[R/W]B,H,W
---11111
ICR47[R/W]B,H,W
---11111
───
000488H
00048CH
+2
TBCR[R/W]
B,H,W
00XXXX00
DIVR0[R/W]
B,H,W
00000011
OSCCR[R/W]B
XXXXXXX0
CTBR[W]B,H,W
XXXXXXXX
DIVR1[R/W]B,H,W
00000000
クロック制御
ユニット
───
発振制御
───
───
───
時計タイマ
───
───
───
メイン発振安定待ち
タイマ
RSTOP1[W]B
00000000
RSTOP2[W]B
00000000
RSTOP3[W]B
-----000
周辺停止制御
───
───
───
Reserved
付録 A I/O マップ
付表 A-1 I/O マップ (7 / 10)
アドレス
レジスタ
+0
+1
00049CH
|
0005FCH
000600H
000604H
000608H
+2
───
───
DDR4[R/W]B
00000000
DDR8[R/W]B
--000000
DDR5[R/W]B
00000000
DDR9[R/W]B
---00000
DDRC[R/W]B *3
-----000
000610H
───
───
000614H
───
───
000618H
PFR8[R/W]B
--1--0--
PFR9[R/W]B
---010-1
00061CH
PFRB2[R/W]B *3
00----00
PFRC[R/W]B *3
---00000
000620H
───
───
PCR4[R/W]B
00000000
PCR8[R/W]B
--000000
PCRC[R/W]B *3
-----000
000628H
00062CH
000630H
|
00063CH
Reserved
───
00060CH
000624H
ブロック
+3
DDR2[R/W]B
00000000
DDR6[R/W]B
00000000
DDRA[R/W]B
----0000
DDR3[R/W]B
00000000
───
DDRB[R/W]B *3
00000000
T- ユニット
データ方向
レジスタ *3
───
───
PFR6[R/W]B
11111111
PFRA[R/W]B
----1111
───
PFRB1[R/W]B *3
00000000
───
───
PCR3[R/W]B
00000000
PCR5[R/W]B
00000000
PCR9[R/W]B
00000000
PCR2[R/W]B
00000000
PCR6[R/W]B
00000000
PCRA[R/W]B
00000000
───
───
───
───
PCRB[R/W]B
00000000
*3
T- ユニット
ポート機能
レジスタ *3
T- ユニット
プルアップ制御
レジスタ *3
───
───
ASR0[R/W]H,W
ACR0[R/W]B,H,W
0000000000000000
1111XX0000000000
ASR1[R/W]H,W
ACR1[R/W]B,H,W
000644H
0000000000000000
XXXXXXXXXXXXXXXX
ASR2[R/W]H,W
ACR2[R/W]B,H,W
000648H
0000000000000000
XXXXXXXXXXXXXXXX
ASR3[R/W]H,W
ACR3[R/W]B,H,W
00064CH
0000000000000000
XXXXXXXXXXXXXXXX
ASR4[R/W]H,W
ACR4[R/W]B,H,W
000650H
0000000000000000
XXXXXXXXXXXXXXXX
ASR5[R/W]H,W
ACR5[R/W]B,H,W
000654H
0000000000000000
XXXXXXXXXXXXXXXX
ASR6[R/W]H,W
ACR6[R/W]B,H,W
000658H
0000000000000000
XXXXXXXXXXXXXXXX
ASR7[R/W]H,W
ACR7[R/W]B,H,W
00065CH
0000000000000000
XXXXXXXXXXXXXXXX
AWR0[R/W]B,H,W
AWR1[R/W]B,H,W
000660H
0111111111111111
XXXXXXXXXXXXXXXX
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
Reserved
000640H
T- ユニット
555
付録 A I/O マップ
付表 A-1 I/O マップ (8 / 10)
アドレス
000664H
000668H
00066CH
レジスタ
+0
+1
+2
AWR2[R/W]B,H,W
XXXXXXXXXXXXXXXX
AWR4[R/W]B,H,W
XXXXXXXXXXXXXXXX
AWR6[R/W]B,H,W
XXXXXXXXXXXXXXXX
───
000674H
───
IOWR0[R/W]B,H,W IOWR1[R/W]B,H,W
XXXXXXXX
XXXXXXXX
00067CH
000680H
000B04H
000B08H
000B0CH
000B10H
IOWR2[R/
W]B,H,W
XXXXXXXX
───
───
TCR[W]B,H,W
00000000
───
Reserved
───
───
MODR[W] *5
XXXXXXXX
000800H
|
000AFCH
000B00H
T- ユニット
───
CSER[R/W]B,H,W
000000001
000684H
|
0007F8H
0007FCH
───
───
Reserved
───
ESTS0[R/W]
ESTS1[R/W]
ESTS2[R]
X0000000
ECTL0[R/W]
XXXXXXXX
ECTL1[R/W]
1XXXXXXX
ECTL2[W]
ECTL3[R/W]
0X000000
ECNT0[W]
00000000
ECNT1[W]
000X0000
EUSA[W]
00X00X11
EDTC[W]
XXX00000
0000XXXX
XXXXXXXX
XXXXXXXX
EWPT[R]
───
───
0000000000000000
EDTR0[W]
EDTR1[W]
XXXXXXXXXXXXXXXX
XXXXXXXXXXXXXXXX
000B14H
|
ブロック
AWR3[R/W]B,H,W
XXXXXXXXXXXXXXXX
AWR5[R/W]B,H,W
XXXXXXXXXXXXXXXX
AWR7[R/W]B,H,W
XXXXXXXXXXXXXXXX
000670H
000678H
+3
DSU
( エバチップ
───
のみ )
000B1CH
000B20H
000B24H
000B28H
000B2CH
EIA0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA1[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA2[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA3[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
*5: このレジスタは , モードベクタフェッチによりアクセスされます。通常動作時にはアクセスできません。
556
付録 A I/O マップ
付表 A-1 I/O マップ (9 / 10)
アドレス
レジスタ
+0
+1
+2
+3
ブロック
EIA4[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA5[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA6[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIA7[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EDTA[R/W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EDTM[R/W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOA0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOA1[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EPCR[R/W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EPSR[R/W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIAM0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EIAM1[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOAM0/EODM0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOAM1/EODM1[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOD0[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
EOD1[W]
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
DSU
( エバチップ
のみ )
000B70H
|
000BFCH
───
Reserved
000C00H
TEST 用レジスタアクセス禁止
割込み制御
ユニット
000C04H
|
000C14H
TEST 用レジスタアクセス禁止
R-bus test
000C18H
|
000FFCH
───
Reserved
000B30H
000B34H
000B38H
000B3CH
000B40H
000B44H
000B48H
000B4CH
000B50H
000B54H
000B58H
000B5CH
000B60H
000B64H
000B68H
000B6CH
557
付録 A I/O マップ
付表 A-1 I/O マップ (10 / 10)
アドレス
001000H
001004H
001008H
00100CH
001010H
001014H
001018H
00101CH
001020H
001024H
レジスタ
+0
+1
+2
+3
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
───
Reserved
001028H
|
001FFCH
007004H
FLCR[R/W]
0110X000
FLWC[R/W]
00010011
007008H
───
───
───
───
00700CH
───
───
───
───
007010H
───
───
───
───
007000H
007014H
|
0070FFH
ブロック
───
───
───
───
───
───
───
フラッシュ
メモリ
Reserved
*1: テスト用レジスタです。アクセス禁止です。
*2: 内蔵 RAM は , リセット解除直後は , 「第 19 章 内蔵 RAM ( データ ) / 内蔵 RAM ( 命令実行可能 ) アクセス制
限機能」に記載の機能により , 使用可能領域が制限されています。
また , 使用可能領域の設定を書き換えた場合 , 直後に最低 1 つの nop 命令を置いてください
*3: MB91F353A/351A/352A/353A はレジスタがありません。アクセス禁止です。
*4: DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15: 0]) は , バイトでのアクセスはできません
*5: このレジスタは , モードベクタフェッチによりアクセスされます。通常動作時にはアクセスできません。
558
付録 B 割込みベクタ
付録 B
割込みベクタ
付表 B-1 に割込みベクタテーブルを示します。
割込みベクタテーブルには , 本品種の割込み要因と割込みベクタ / 割込み制御レジス
タの割当てが記載されています。
■ 割込みベクタ
付表 B-1 割込みベクタテーブル (1/2)
割込み要因
割込み番号
割込みレベル
10 進 16 進
0
00
リセット
1
01
モードベクタ
2
02
システム予約
3
03
システム予約
4
04
システム予約
5
05
システム予約
6
06
システム予約
7
07
コプロセッサ不在トラップ
8
08
コプロセッサエラートラップ
9
09
INTE 命令
10
0A
命令ブレーク例外
11
0B
オペランドブレークトラップ
12
0C
ステップトレーストラップ
13
0D
NMI 要求 (tool)
14
0E
未定義命令例外
15(FH) 固定
15
0F
NMI 要求
16
10
ICR00
外部割込み 0
17
11
ICR01
外部割込み 1
18
12
ICR02
外部割込み 2
19
13
ICR03
外部割込み 3
20
14
ICR04
外部割込み 4
21
15
ICR05
外部割込み 5
22
16
ICR06
外部割込み 6
23
17
ICR07
外部割込み 7
24
18
ICR08
リロードタイマ 0
25
19
ICR09
リロードタイマ 1
26
1A
ICR10
リロードタイマ 2
27
1B
ICR11
UART0 ( 受信完了 )
28
1C
ICR12
UART1 ( 受信完了 )
29
1D
ICR13
UART2 ( 受信完了 )
30
1E
ICR14
UART0 ( 送信完了 )
31
1F
ICR15
UART1 ( 送信完了 )
32
20
ICR16
UART2 ( 送信完了 )
33
21
ICR17
DMAC0 ( 終了 , エラー )
34
22
ICR18
DMAC1 ( 終了 , エラー )
35
23
ICR19
DMAC2 ( 終了 , エラー )
36
24
ICR20
DMAC3 ( 終了 , エラー )
37
25
ICR21
DMAC4 ( 終了 , エラー )
A/D
38
26
ICR22
39
27
ICR23
I 2C
40
28
ICR24
UART4 ( 受信完了 ) *1
*1: MB91F353A/351A/352A/353A には割込み要因はありません。
オフセット
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
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
RN
6
7
11
8
9
10
0
1
2
3
4
5
15
-
559
付録 B 割込みベクタ
付表 B-1 割込みベクタテーブル (2/2)
割込み要因
SIO5 *1
SIO6
SIO7
UART3 ( 受信完了 )
UART3 ( 送信完了 )
リロードタイマ 3/
メイン発振安定待ちタイマ
タイムベースタイマ
オーバフロー
外部割込み 8-15 *1
時計カウンタ
U/D カウンタ 0
U/D カウンタ 1 *1
PPG0/1
PPG2/3
PPG4/5
16 ビットフリーランタイマ
ICU0( 取込み )
ICU1( 取込み )/
UART4 ( 送信完了 ) *2
ICU2/3( 取込み )
OCU0/1 ( 一致 )
OCU2/3 ( 一致 )
OCU4/5 ( 一致 ) *1
OCU6/7 ( 一致 ) *1
遅延割込み要因ビット
システム予約
(REALOS にて使用 )
システム予約
(REALOS にて使用 )
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
割込み番号
割込みレベル
オフセット
ICR25
ICR26
ICR27
ICR28
ICR29
358H
354H
350H
34CH
348H
TBR デフォルトの
アドレス
000FFF58H
000FFF54H
000FFF50H
000FFF4CH
000FFF48H
2E
ICR30
344H
000FFF44H
-
2F
ICR31
340H
000FFF40H
-
000FFF3CH
000FFF38H
000FFF34H
000FFF30H
000FFF2CH
000FFF28H
000FFF24H
000FFF20H
000FFF1CH
-
10 進
41
42
43
44
45
16 進
29
2A
2B
2C
2D
46
47
RN
12
13
14
-
48
49
50
51
52
53
54
55
56
30
31
32
33
34
35
36
37
38
ICR32
ICR33
ICR34
ICR35
ICR36
ICR37
ICR38
ICR39
ICR40
33CH
338H
334H
330H
32CH
328H
324H
320H
31CH
57
39
ICR41
318H
000FFF18H
-
58
59
60
61
62
63
3A
3B
3C
3D
3E
3F
ICR42
ICR43
ICR44
ICR45
ICR46
ICR47
314H
310H
30CH
308H
304H
300H
000FFF14H
000FFF10H
000FFF0CH
000FFF08H
000FFF04H
000FFF00H
-
64
40
-
2FCH
000FFEFCH
-
65
41
-
2F8H
000FFEF8H
-
2F4H
66
42
2F0H
67
43
2ECH
68
44
2E8H
69
45
2E4H
70
46
2E0H
71
47
2DCH
72
48
2D8H
73
49
2D4H
74
4A
2D0H
75
4B
2CCH
76
4C
2C8H
77
4D
2C4H
78
4E
2C0H
79
4F
2BCH
80
50
INT 命令で使用
∼
∼
∼
000H
255
FF
*1: MB91F353A/351A/352A/353A には割込み要因はありません。
*2: MB91F353A/351A/352A/353A は UART4 ( 送信完了 ) がありません。
000FFEF4H
000FFEF0H
000FFEECH
000FFEE8H
000FFEE4H
000FFEE0H
000FFEDCH
000FFED8H
000FFED4H
000FFED0H
000FFECCH
000FFEC8H
000FFEC4H
000FFEC0H
000FFEBCH
-
∼
000FFC00H
-
560
付録 C 各 CPU ステートにおける端子状態
付録 C
各 CPU ステートにおける端子状態
付表 C-1 に端子状態一覧表で使用されている用語の説明を , 付表 C-2 および付表 C-3
に各 CPU ステートにおける端子状態を示します。
■ 端子状態一覧表の用語説明
端子の状態に対する語句は以下の意味を持ちます。
付表 C-1 端子状態一覧表の用語説明
用 語
説 明
入力可能
入力機能が使用可能な状態であることを意味します。
入力 0 固定
端子からすぐの入力ゲートで , 外部入力を遮断して内部へ "0" を伝え
ている状態です。
出力 Hi-Z
端子駆動用トランジスタを駆動禁止状態にし , 端子をハイインピーダ
ンスにすることを意味します。
出力保持
本モードになる直前に出力していた状態をそのまま出力することを意
味します。
すなわち , 出力のある内蔵周辺が動作中であれば , その内蔵周辺にした
がって出力を行い , ポートなどとして出力している場合には , その出力
を保持します。
直前の状態を保持
本モードになる直前に出力していた状態をそのまま出力 , あるいは入
力であれば入力可能を意味します。
561
付録 C 各 CPU ステートにおける端子状態
■ 各 CPU ステートにおける端子状態
付表 C-2 外バスモード時の端子状態 (1/3)
P: 汎用ポート選択時 , F: 指定機能選択時
ストップ時
時計モード時
イニシャライズ時 (INIT)
PIN №
ポート名
初期値
指定
機能名
機能名
1∼8
9 ∼ 16
外 ROM モード 内 ROM モード
ベクタ
ベクタ
(MD2-0=001) (MD2-0=000)
19 ∼ 26
A00 ∼ A07 A00 ∼ A07
27 ∼ 34
-
A08 ∼ A15 A08 ∼ A15
バス開放
(BGRNT)
HIZ=0
HIZ=1
P: 直前状態
保持
F: 出力 Hi-Z
P: 直前状態保持
F: 出力保持 or Hi-Z 同左
P20 ∼ P27 D16 ∼ D23 P20 ∼ P27 出力 Hi-Z/
入力可能
D24 ∼ D31 D24 ∼ D31
-
スリープ時
サブスリープ時
出力保持 or Hi-Z
出力 Hi-Z
アドレス出力
同左
37 ∼ 44 P60 ∼ P67 A16 ∼ A23 A16 ∼ A23
P: 直前状態保持
F: アドレス出力
同左
169
P: 直前状態保持
F(WR1): H 出力
F(IN3): 直前状態
保持
P: 直前状態
保持
F: H 出力
直前の状態の保持
H 出力
FF 出力
P85
WR1/IN3
WR1
H 出力
168
-
WR0
WR0
167
-
RD
RD
166
P82
BRQ/IN2
P82
出力 Hi-Z/
入力可能
165
164
158 ∼
161
170
P81
P80
BGRNT/IN1 P81
RDY/IN0
出力 Hi-Z/
入力可能
P80
PA0 ∼ PA3 CS0 ∼ CS3 CS0 ∼ CS3 H 出力
P90
SYSCLK
SYSCLK
アサート時 :
L 出力
ネゲート時 :
CLK 出力
*3
P: 直前状態保持
F(BRQ): 入力無効
F(IN2): 直前状態
保持
P: 直前状態保持
F(BGNT): H 出力
F(IN1): 直前状態
保持
P: 直前状態
保持
F: 出力 Hi-Z
直前
状態
保持
出力 Hi- BRQ 入力
Z/
入力
0 固定
L 出力
P: 直前状態保持
F(RDY): RDY 入力
F(IN0): 直前状態
保持
P: 直前状態
保持
F: RDY 入力
P: 直前状態保持
F: CS 出力
P: 直前状態
保持
F: SREN=0: H
出力
SREN=1:
出力 Hi-Z
P: 直前状態保持
F: SYSCLK 出力
P: 直前
状態
保持
F: H また
は L 出力
*1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。
*2: 電源投入直後の出力は不定です。
*3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。
562
*3
P: 直前状態
保持
F: CLK 出力
備
考
付録 C 各 CPU ステートにおける端子状態
付表 C-2 外バスモード時の端子状態 (2/3)
P: 汎用ポート選択時 , F: 指定機能選択時
ストップ時
時計モード時
イニシャライズ時 (INIT)
PIN №
ポート名
指定
機能名
初期値
機能名
171
172
P91
P92
-
MCLK
173
P93
-
174
P94
AS
HIZ=0
P92
P: 直前
P: 直前状態保持
状態保持
F: H 出力
F: H 出力
P93
直前状態保持
P94
P: 直前状態保持
F: LBAX 出力
PB0
DREQ0
PB0
PB1
DACK0
PB1
152
PB2
DEOP0/
DSTP0
PB2
153
PB3
DREQ1
PB3
154
PB4
DACK1
PB4
155
PB5
DEOP1/
DSTP1
PB5
IOWR
PB6
PB7
157
PB7
IORD
147
PC0
DREQ2
PC0
148
PC1
DACK2
PC1
149
PC2
DEOP2/
DSTP2
PC2
128
PG0
SI4
PG0
129
PG1
SO4
PG1
130
PG2
SCK4
PG2
131
PG3
SI5
PG3
132
PG4
SO5
PG4
133
PG5
SCK5
PG5
122
PH0
SI2
PH0
123
PH1
SO2
PH1
124
PH2
SCK2
PH2
125
PH3
SI3
PH3
126
PH4
SO3
PH4
127
PH5
SCK3
PH5
HIZ=1
直前状態
保持
直前状態保持
150
PB6
外 ROM モード 内 ROM モード
ベクタ
ベクタ
(MD2-0=001) (MD2-0=000)
バス開放
(BGRNT)
P91
151
156
スリープ時
サブスリープ時
直前の状態の
保持
P: 直前状態
保持
F: CLK 出力
*3
直前状態
保持
直前状態保持
P: 直前状態
保持
F: H 出力 *3
出力
Hi-Z/
入力
0 固定
出力 Hi-Z/
入力可能
直前状態保持
直前状態
保持
直前状態
保持
*1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。
*2: 電源投入直後の出力は不定です。
*3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。
563
備
考
付録 C 各 CPU ステートにおける端子状態
付表 C-2 外バスモード時の端子状態 (3/3)
P: 汎用ポート選択時 , F: 指定機能選択時
ストップ時
時計モード時
イニシャライズ時 (INIT)
PIN №
ポート名
初期値
指定
機能名
機能名
116
PI0
SI0
PI0
117
PI1
SO0
PI1
118
PI2
SCK0
PI2
119
PI3
SI1
PI3
120
PI4
SO1
PI4
121
PI5
SCK1
PI5
106 ∼
113
INT8 ∼
PJ0 ∼ PJ7 INT15
外 ROM モード 内 ROM モード
ベクタ
ベクタ
(MD2-0=001) (MD2-0=000)
スリープ時
サブスリープ時
出力
Hi-Z/
入力
0 固定
PJ0 ∼ PJ7
P: 直前
状態保持
F: 入力可
能
P: 出力
Hi-Z
F: 入力可
能
PK0 ∼ PK7
P: 直前
状態保持
F: 入力可
能
P: 出力
Hi-Z
F: 入力可
能
*1
94
PL0
95
SDA
PL0
PL1
SCL
PL1
PM0
SI6/AIN0/
TRG0
PM0
88
PM1
SO6/BIN0/
PM1
TRG1
89
PM2
SCK6/
PM2
ZIN0/TRG2
90
PM3
SI7/AIN1/
TRG3
87
HIZ=1
直前状態
保持
*1
INT0 ∼
INT5
INT6/
98 ∼ 103 PK0 ∼ PK7 FRCK
INT7/ATG
HIZ=0
出力 Hi-Z/
入力可能
直前状態
保持
直前状態保持
直前状態
保持
出力
Hi-Z/
入力
0 固定
PM3
91
PM4
SO7/BIN1/
PM4
TRG4
92
PM5
SCK7/
PM5
ZIN1/TRG5
81 ∼ 86 PN0 ∼ PN5
PPG0 ∼
PPG5
PN0 ∼ PN5
71 ∼ 78 PO0 ∼ PO7
OC0 ∼
OC7
PO0 ∼ PO7
67 ∼ 70 PP0 ∼ PP3
TOT0 ∼
TOT3
PP0 ∼ PP3
50 ∼ 61
-
AN0 ∼
AN11
AN0 ∼
AN11
入力無効
入力無効
入力無効
47 ∼ 49
-
DA0 ∼
DA2
DA0 ∼
DA2
L レベル出力
L レベル
出力
L レベル
出力
*1: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。
*2: 電源投入直後の出力は不定です。
*3: すべての CS に対して SREN=1 を設定したとき出力は , Hi-Z になります。
564
バス開放 備
(BGRNT) 考
付録 C 各 CPU ステートにおける端子状態
付表 C-3 シングルチップモード時の端子状態 (1 / 2)
P: 汎用ポート選択時 , F: 指定機能選択時
ストップ時 , 時計モード時
イニシャライズ時 (INIT)
PIN №
指定
機能名
ポート名
初期値
機能名
1∼8
P20 ∼ P27
-
P20 ∼ P27
9 ∼ 16
P30 ∼ P37
-
P30 ∼ P37
19 ∼ 26
P40 ∼ P47
-
P40 ∼ P47
27 ∼ 34
P50 ∼ P57
-
P50 ∼ P57
-
P60 ∼ P67
37 ∼ 44
P60 ∼ P67
164
P80
IN0
165
P81
IN1
166
P82
IN2
P85
備
考
IN3
-
P90 ∼ P94
158 ∼ 161 PA0 ∼ PA3
-
PA0 ∼ PA3
150 ∼ 157 PB0 ∼ PB7
-
PB0 ∼ PB7
147 ∼ 149 PC0 ∼ PC2
-
PC0 ∼ PC2
128
PG0
SI4
PG0
129
PG1
SO4
PG1
130
PG2
SCK4
PG2
131
PG3
SI5
PG3
132
PG4
SO5
PG4
PG5
133
PG5
SCK5
122
PH0
SI2
PH0
123
PH1
SO2
PH1
PH2
124
PH2
SCK2
125
PH3
SI3
PH3
126
PH4
SO3
PH4
127
PH5
SCK3
PH5
116
PI0
SI0
PI0
117
PI1
SO0
PI1
118
PI2
SCK0
PI2
119
PI3
SI1
PI3
120
PI4
SO1
PI4
121
PI5
SCK1
PI5
98 ∼ 105
HIZ=1
P80 ∼ P85
170 ∼ 174 P90 ∼ P94
106 ∼ 113 PJ0 ∼ PJ7
HIZ=0
-
167 ∼ 168 P83 ∼ P84
169
内 ROM モードベクタ
(MD2-0=000)
スリープ時
サブスリープ時
INT8 ∼
INT15
*
PJ0 ∼ PJ7
INT0 ∼ INT5
PK0 ∼ PK7 INT6/FRCK PK0 ∼ PK7
INT7/ATG *
直前状態保持
出力 Hi-Z/
入力可能
出力 Hi-Z/
入力 0 固定
直前状態保持
P: 直前状態保持 P: 出力 Hi-Z
F: 入力可能
F: 入力可能
P: 直前状態保持 P: 出力 Hi-Z
F: 入力可能
F: 入力可能
565
付録 C 各 CPU ステートにおける端子状態
付表 C-3 シングルチップモード時の端子状態 (2 / 2)
P: 汎用ポート選択時 , F: 指定機能選択時
ストップ時 , 時計モード時
イニシャライズ時 (INIT)
PIN №
ポート名
指定
機能名
初期値
機能名
94
PL0
SDA
PL0
95
PL1
SCL
PL1
87
PM0
SI6/AIN0/
TRG0
PM0
88
PM1
SO6/BIN0/
TRG1
PM1
89
PM2
SCK6/ZIN0/
TRG2
PM2
90
PM3
SI7/AIN1/
TRG3
PM3
PM4
SO7/BIN1/
TRG4
PM4
92
PM5
SCK7/ZIN1/
TRG5
PM5
81 ∼ 86
PN0 ∼ PN5
PPG0 ∼
PPG5
PN0 ∼ PN5
71 ∼ 78
PO0 ∼ PO7 OC0 ∼ OC7 PO0 ∼ PO7
67 ∼ 70
PP0 ∼ PP3
50 ∼ 61
47 ∼ 49
91
内 ROM モードベクタ
(MD2-0=000)
スリープ時
サブスリープ時
出力 Hi-Z/
入力可能
HIZ=0
HIZ=1
直前状態保持
出力 Hi-Z/
入力 0 固定
入力無効
入力無効
L レベル出力
L レベル出力
直前状態保持
TOT0 ∼
TOT3
PP0 ∼ PP3
-
AN0 ∼ AN11
AN0 ∼
AN11
-
DA0 ∼ DA2 DA0 ∼ DA2 L レベル出力
入力無効
*: INT0 ∼ INT15 の入力可能状態は , 出力 Hi-Z で入力可能を示します。本端子は , stop からの復帰に使用できます。
566
備
考
付録 D 命令一覧表
付録 D
命令一覧表
付表 D-1 にアドレッシングモードの記号 , 付図 D-1 に命令フォーマット , そして付
表 D-2 ∼付表 D-21 に FR ファミリの命令一覧を命令種別ごとに示します。
■ 命令一覧表の読み方
ニーモニック
ADD Rj, Rj
*ADD #s5, Rj
,
,
型
OP
CYC
NZVC
A
C
,
,
AG
A4
,
,
1
1
,
,
CCCC
CCCC
,
,
動
作
備考
Ri + Rj -> Rj
Ri + s5 -> Ri
,
,
(1) (2) (3) (4) (5) (6) (7)
(1) 命令名が示されています。
* 印は , CPU 仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
(2) オペランドに指定可能なアドレッシングモードを記号で示されています。
記号の意味は , 「付表 D-1 アドレッシングモードの記号」を参照してください。
(3) 命令フォーマットが示されています。
(4) 命令コードが 16 進数表示されています。
(5) マシンサイクル数を表しています。
a, b, c, d とも最小は 1 サイクルです。
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" となります。
(6) フラグ変化を表しています。
フラグ変化 C ・・・ 変化する - ・・・ 変化しない
0 ・・・ クリア 1 ・・・ セット N
Z
V
C
フラグの意味
・・・ ネガティブフラグ
・・・ ゼロフラグ ・・・ オーバーフラグ ・・・ キャリフラグ (7) 命令動作が表記されています。
567
付録 D 命令一覧表
■ アドレッシングモードの記号
付表 D-1 に , アドレッシングモードの記号と内容を示します。
付表 D-1 アドレッシングモードの記号
記 号
Ri
Rj
R13
Ps
Rs
Cri
CRj
#i8
#i20
#i32
#s5
#s10
#u4
#u5
#u8
#u10
@dir8
@dir9
@dir10
label9
label12
label20
label32
@Ri
@Rj
@(R13,Rj)
@(R14,disp10)
@(R14,disp9)
@(R14,disp8)
@(R15,udisp6)
@Ri+
@R13+
@SP+
@-SP
(reglist)
568
内 容
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
レジスタ直接 (R13, AC)
レジスタ直接 ( プログラムステータスレジスタ )
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
レジスタ直接 (CR0 ∼ CR15)
レジスタ直接 (CR0 ∼ CR15)
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱い
ます。
符号付き 5 ビット即値 (-16 ∼ 15)
符号付き 10 ビット即値 (-512 ∼ 5084 の倍数のみ )
符号なし 4 ビット即値 (0 ∼ 15)
符号なし 5 ビット即値 (0 ∼ 31)
符号なし 8 ビット即値 (0 ∼ 255)
符号なし 10 ビット即値 (0 ∼ 10204 の倍数のみ )
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE2 の倍数のみ )
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC4 の倍数のみ )
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC2 の倍数のみ )
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC2 の倍数のみ )
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
レジスタ相対間接 (RjR0 ∼ R15, AC, FP, SP)
レジスタ相対間接 (disp10-0X200 ∼ 0X1FC4 の倍数のみ )
レジスタ相対間接 (disp9-0X100 ∼ 0XFE2 の倍数のみ )
レジスタ相対間接 (disp8-0X80 ∼ 0X7F)
レジスタ相対間接 (udisp60 ∼ 604 の倍数のみ )
ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
ポストインクリメント付きレジスタ間接 (R13, AC)
スタックポップ
スタックプッシュ
レジスタリスト
付録 D 命令一覧表
■ 命令フォーマット
付図 D-1 に命令フォーマットを示します。
付図 D-1 命令フォーマット
MSB
A
B
LSB
16ビット
OP
Rj
Ri
8
4
4
OP
i8/08
Ri
4
8
4
OP
u4/m4
Ri
8
4
4
C
ADD,ADDN,CMP,LSL,LSR,ASR命令のみ
*C'
OP
s5/u5
7
5
D
E
F
Ri
4
OP
u8/rel8/dir/
reglist
8
8
OP
SUB-OP
8
4
OP
rel11
5
11
Ri
4
569
付録 D 命令一覧表
付表 D-2 加減算
ニーモニック
ADD Rj, Ri
*ADD #s5, Ri
型
A
C'
OP CYCLE
NZVC
A6
A4
1
1
動 作
CCCC Ri+Rj->Ri
CCCC Ri+s5->Ri
ADD
#u4, Ri
ADD2 #u4, Ri
ADDN Rj, Ri
ADDN Rj, Ri
*ADDN #s5, Ri
C
C
A
A
C'
A4
A5
A7
A2
A0
1
1
1
1
1
CCCC
CCCC
CCCC
-------
Ri+extu(i4)->Ri
Ri+extu(i4)->Ri
Ri+Rj+c->Ri
Ri+Rj->Ri
Ri+s5->Ri
ADDN #u4, Ri
ADDN2 #u4, Ri
SUB
Rj, Ri
SUBC Rj, Ri
SUBN Rj, Ri
C
C
A
A
A
A0
A1
AC
AD
AE
1
1
1
1
1
------CCCC
CCCC
----
Ri+extu(i4)->Ri
Ri+extu(i4)->Ri
Ri-Rj->Ri
Ri-Rj-c->Ri
Ri-Rj->Ri
備 考
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き加算
アセンブラでは上位 1
ビットを符号と見る
ゼロ拡張
マイナス拡張
キャリ付き減算
付表 D-3 比較演算
ニーモニック
CMP Rj, Ri
*CMP #s5, Ri
型
A
C'
OP CYCLE
NZVC
AA
A8
1
1
CCCC Ri-Rj
CCCC Ri-s5
CMP #u4, Ri
CMP2 #u4, Ri
C
C
A8
A9
1
1
CCCC Ri-extu(i4)
CCCC Ri-extu(i4)
動 作
備 考
アセンブラでは上位 1 ビッ
トを符号と見る
ゼロ拡張
マイナス拡張
付表 D-4 論理演算
ニーモニック
AND
Rj, Ri
AND Rj, @Ri
ANDH Rj, @Ri
ANDB Rj, @Ri
OR
Rj, Ri
OR
Rj, @Ri
ORH Rj, @Ri
ORB Rj, @Ri
EOR
Rj, Ri
EOR
Rj, @Ri
EORH Rj, @Ri
EORB Rj, @Ri
570
型
A
A
A
A
A
A
A
A
A
A
A
A
OP
CYCLE
NZVC
82
84
85
86
92
94
95
96
9A
9C
9D
9E
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
1
1+2a
1+2a
1+2a
CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC-CC--
動 作
Ri &= Rj
(Ri)&= Rj
(Ri)&= Rj
(Ri)&= Rj
Ri |= Rj
(Ri)|= Rj
(Ri)|= Rj
(Ri)|= Rj
Ri ^= Rj
(Ri)^= Rj
(Ri)^= Rj
(Ri)^= Rj
備 考
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
ワード
ワード
ハーフワード
バイト
付録 D 命令一覧表
付表 D-5 ビット操作命令
ニーモニック
型 OP CYCLE NZVC
動 作
備 考
BANDL #u4, @Ri C 80
1+2a
---- (Ri)&=(0xF0+u4)
下位 4 ビットを操作
BANDH #u4, @Ri C 81
1+2a
---- (Ri)&=((u4<<4)+0x0F)
上位 4 ビットを操作
*BAND #u8, @Ri
---- (Ri)&=u8
( 注 1)
BORL #u4, @Ri C 90
1+2a
---- (Ri) | = u4
下位 4 ビットを操作
BORH #u4, @Ri C 91
1+2a
---- (Ri) | =(u4<<4)
上位 4 ビットを操作
*BOR #u8, @Ri
---- (Ri) | = u8
( 注 2)
BEORL #u4, @Ri C 98
1+2a
---- (Ri) ^ = u4
下位 4 ビットを操作
BEORH #u4, @Ri C 99
1+2a
---- (Ri) ^ =(u4<<4)
上位 4 ビットを操作
*BEOR #u8, @Ri
---- (Ri) ^ = u8
( 注 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 両方生成する場合もあり
ます。
付表 D-6 乗除算
ニーモニック
MUL
Rj,Ri
MULU Rj,Ri
MULH Rj,Ri
MULUH Rj,Ri
DIV0S Ri
DIV0U Ri
DIV1 Ri
DIV2 Ri
DIV3
DIV4S
*DIV Ri
( 注 1)
*DIVU Ri
( 注 2)
( 注 1)
( 注 2)
型
A
A
A
A
E
E
E
E
E
E
OP
AF
AB
BF
BB
97-4
97-5
97-6
97-7
9F-6
9F-7
CYCLE NZVC
5
5
3
3
1
1
d
1
1
1
36
CCCCCCCC-CC--------C-C
-C-C
-------C-C
動 作
Ri*Rj->MDH,MDL
Ri*Rj->MDH,MDL
Ri*Rj->MDL
Ri*Rj->MDL
備 考
32 ビット *32 ビット =64 ビット
符号なし
16 ビット *16 ビット =32 ビット
符号なし
ステップ演算
32 ビット /32 ビット =32 ビット
MDL/Ri->MDL, MDL%Ri->MDH
-C-C
MDL/Ri->MDL, MDL%Ri->MDH
DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとな
ります。
DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
571
付録 D 命令一覧表
付表 D-7 シフト
LSL
*LSL
LSL
LSL2
LSR
*LSR
LSR
LSR2
ASR
*ASR
ASR
ASR2
ニーモニック
Rj, Ri
#u5, Ri(u5: 0 ∼ 31)
#u4, Ri
#u4, Ri
Rj, Ri
#u5, Ri(u5: 0 ∼ 31)
#u4, Ri
#u4, Ri
Rj, Ri
#u5, Ri(u5: 0 ∼ 31)
#u4, Ri
#u4, Ri
型
A
C'
C
C
A
C'
C
C
A
C'
C
C
OP CYCLE NZVC
B6
B4
B4
B5
B2
B0
B0
B1
BA
B8
B8
B9
1
1
1
1
1
1
1
1
1
1
1
1
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
CC-C
動作
Ri<<Rj->Ri
Ri<<u5->Ri
Ri<<u4->Ri
Ri<<(u4+16)->Ri
Ri>>Rj->Ri
Ri>>u5->Ri
Ri>>u4->Ri
Ri>>(u4+16)->Ri
Ri>>Rj->Ri
Ri>>u5->Ri
Ri>>u4->Ri
Ri>>(u4+16)->Ri
備 考
論理シフト
論理シフト
算術シフト
付表 D-8 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
LDI: 32 #i32, Ri
LDI: 20 #i20, Ri
LDI: 8 #i8, Ri
*LDI # {i8|i20|i32} ,Ri
(注)
型
E
C
B
OP
9F-8
9B
C0
CYCLE NZVC
3
2
1
----------
動 作
備 考
i32->Ri
上位 12 ビットはゼロ拡張
i20->Ri
上位 24 ビットはゼロ拡張
i8->Ri
{i8 | i20 | i32} ->Ri
( 注 ) 即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。即値が , 相
対値または外部参照シンボルを含む場合は , i32 が選択されます。
付表 D-9 メモリロード
OP CYCLE NZVC
ニーモニック
型
動 作
備 考
LD @Rj, Ri
A
04
b
---- (Rj)->Ri
LD @(R13,Rj), Ri
A
00
b
---- (R13+Rj)->Ri
LD @(R14,disp10),Ri
B
2
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 Rs: 特殊レジスタ
LD @R15+, PS
E
07-9 1+a+b CCCC (R15)->PS, R15+=4 ( 注 )
LDUH @Rj, Ri
A
05
b
---- (Rj)->Ri
ゼロ拡張
LDUH @(R13,Rj), Ri
A
01
b
---- (R13+Rj)->Ri
ゼロ拡張
LDUH @(R14,disp9), Ri
B
4
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
6
b
---- (R14+disp8)->Ri
ゼロ拡張
( 注 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
disp10/4->o8, disp9/2->o8, disp8->o8, disp10,disp9,disp8 は符号付き
udisp6/4->o4 udisp6 は符号なし
572
付録 D 命令一覧表
付表 D-10 メモリストア
OP CYCLE NZVC
ニーモニック
型
動 作
備 考
STRi,@Rj
A
14
a
---- Ri->(Rj)
ワード
STRi,@(R13,Rj)
A
10
a
---- Ri->(R13+Rj)
ワード
STRi,@(R14,disp10)
B
3
a
---- Ri->(R14+disp10)
ワード
STRi,@(R15,udisp6)
C
13
a
---- Ri->(R15+udisp6)
STRi,@-R15
E
17-0
a
---- R15-=4,Ri->(R15)
STRs,@-R15
E
17-8
a
---- R15-=4,Rs->(R15)
Rs 特殊レジスタ
STPS,@-R15
E
17-9
a
---- R15-=4,PS->(R15)
(注)
STHRi,@Rj
A
15
a
---- Ri->(Rj)
ハーフワード
STHRi,@(R13,Rj)
A
11
a
---- Ri->(R13+Rj)
ハーフワード
STHRi,@(R14,disp9)
B
5
a
---- Ri->(R14+disp9)
ハーフワード
STBRi,@Rj
A
16
a
---- Ri->(Rj)
バイト
STBRi,@(R13,Rj)
A
12
a
---- Ri->(R13+Rj)
バイト
STBRi,@(R14,disp8)
B
7
a
---- Ri->(R14+disp8)
バイト
( 注 ) ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
disp10/4->o8, disp9/2->o8, disp8->o8, disp10,disp9,disp8 は符号付き
udisp6/4->o4 udisp6 は符号なし
付表 D-11 レジスタ間転送
OP CYCLE NZVC
ニーモニック
型
動 作
MOVRj,Ri
A
8B
1
---Rj->Ri
MOVRs,Ri
A
B7
1
---Rs->Ri
MOVRi,Rs
E
B3
1
---Ri->Rs
MOVPS,Ri
E
17-1
1
---PS->Ri
MOVRi,PS
E
07-1
c
CCCC Ri->PS
( 注 ) 特殊レジスタ Rs: TBR, RP, USP, SSP, MDH, MDL
備 考
汎用レジスタ間転送
Rs: 特殊レジスタ
Rs: 特殊レジスタ
(注)
573
付録 D 命令一覧表
付表 D-12 通常分岐 ( 遅延なし )
OP
CYCLE
NZVC
E
D
97-0
D0
97-1
97-2
1F
2
2
2
2
3+3a
----------------
E
9F-3
3+3a
----
E
DD
D
97-3
E0
E1
E2
2+2A
2
1
2/1
CCCC
----------
ニーモニック
JMP @Ri
CALL label12
CALL @Ri
RET
INT #u8
型
E
EF
INTE
RETI
BRA label9
BNO label9
BEQ label9
動 作
備 考
Ri->PC
PC+2->RP,PC+2+(label12-PC-2)->PC
PC+2->RP,Ri->PC
RP->PC
リターン
SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP),
0->I フラグ , 0->S フラグ ,
(TBR+0x3FC-u8 × 4)->PC
SSP-=4,PS->(SSP),SSP-=4,PC+2->(SSP),
0->S フラグ ,(TBR+0x3D8)->PC
エミュレータ用
(R15)->PC,R15-=4,(R15)->PS,R15-=4
PC+2+(label9-PC-2)->PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2)->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
DD
BNE label9
DD
E3
2/1
---BC label9
DD
E4
2/1
---BNC label9
DD
E5
2/1
---BN label9
DD
E6
2/1
---BP label9
DD
E7
2/1
---BV label9
D
E8
2/1
---BNV label9
E9
2/1
---BLT label9
EA
2/1
---BGE label9
EB
2/1
---BLE label9
EC
2/1
---BGT label9
ED
2/1
---BLS label9
EE
2/1
---BHI label9
EF
2/1
---( 注意事項 )
・CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき "1" であることを示します。
・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定します。
(label12-PC-2)/2->rel11,(label9-PC-2)/2->rel8, label12, label9 は符号付きです。
・RETI 命令を実行するときは S フラグが "0" であることが必要です。
574
付録 D 命令一覧表
付表 D-13 遅延分岐
ニーモニック
JMP: D @Ri
CALL: D label12
CALL: D @Ri
RET: D
BRA: D label9
BNO: D label9
BEQ: D label9
型
E
FE
E
D
D
D
OP
9F-0
D8
9F-1
9F-2
F0
F1
F2
CYCLE NZVC
1
1
1
1
1
1
1
----------------------
動 作
備 考
Ri->PC
PC+4->RP,PC+2+(label12-PC-2)->PC
PC+4->RP,Ri->PC
RP->PC
リターン
PC+2+(label9-PC-2)->PC
非分岐
if(Z==1) then
PC+2+(label9-PC-2)->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
BNE: D label9
D
F3
1
---BC: D label9
D
F4
1
---BNC: D label9
D
F5
1
---BN: D label9
D
F6
1
---BP: D
label9
D
F7
1
---BV: D
label9
D
F8
1
---BNV: D label9
D
F9
1
---BLT: D label9
D
FA
1
---BGE: D label9
D
FB
1
---BLE: D label9
D
FC
1
---BGT: D label9
D
FD
1
---BLS: D label9
D
FE
1
---BHI: D label9
D
FF
1
---( 注意事項 )
・ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。(label12-PC-2)/2->rel11,(label9-PC-2)/2->rel8, label12, label9 は符号付きです。
・遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
・遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令です。
複数サイクル命令は置けません。
575
付録 D 命令一覧表
付表 D-14 その他
ニーモニック
NOP
ANDCCR #u8
ORCCR #u8
STILM #u8
ADDSP #s10
( 注 1)
EXTSB Ri
EXTUB Ri
EXTSH Ri
EXTUH Ri
LDM0 (reglist)
LDM1 (reglist)
OP
CYCLE
NZVC
D
D
9F-A
83
93
87
A3
1
c
c
1
1
---cccc
cccc
-------
何も変化しない
CCRandu8->CCR
CCRoru8->CCR
i8->ILM
R15+=s10
E
E
E
E
D
97-8
97-9
97-A
97-B
8C
1
1
1
1
----------------
D
8D
符号拡張 8->32 ビット
ゼロ拡張 8->32 ビット
符号拡張 16->32 ビット
ゼロ拡張 16->32 ビット
(R15)->reglist,
R15 インクリメント
(R15)->reglist,
R15 インクリメント
(R15)->reglist,
R15 インクリメント
型
E
DD
----
*LDM (reglist)
----
( 注 2)
STM0 (reglist)
D
8E
----
STM1 (reglist)
D
8F
----
*STM (reglist)
----
動 作
備 考
ILM 即値セット
ADD SP 命令
ロードマルチ R0-R7
ロードマルチ R8-R15
ロードマルチ R0-R15
R15 デクリメント ,
reglist->(R15)
R15 デクリメント ,
reglist->(R15)
R15 デクリメント ,
reglist->(R15)
ストアマルチ R0-R7
ストアマルチ R8-R15
ストアマルチ R0-R15
( 注 3)
ENTER #u10
D
0F
1+a
----
R14->(R15-4),
R15-4->R14,
R15-u10->R15
関数の入口処理
( 注 4)
LEAVE
E
9F-9
b
----
関数の出口処理
XCHB @Rj, Ri
A
8A
2a
----
R14+4->R15,
(R15-4)->R14
Ri->TEMP
(Rj)->Ri
TEMP->(Rj)
セマフォ管理用
バイトデータ
( 注意事項 )
・LDM0 (reglist) , LDM1 (reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*(n-1)+b+1 サイクルと
なります。
・STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき , a*n+1 サイクルとなりま
す。
( 注 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 は符号なしです。
576
付録 D 命令一覧表
付表 D-15 20 ビット通常分岐マクロ命令
ニーモニック
*CALL20 label20,Ri
*BRA20
*BEQ20
*BNE20
*BC20
*BNC20
*BN20
*BP20
*BV20
*BNV20
*BLT20
*BGE20
*BLE20
*BGT20
*BLS20
*BHI20
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
動 作
次の命令のアドレス ->RP,
label20->PC
label20->PC
if(Z==1) then label20->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備 考
Ri: テンポラリレジスタ「参考 : 1」参照
Ri: テンポラリレジスタ「参考 : 2」参照
Ri: テンポラリレジスタ「参考 : 3」参照
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
参考 : 1 CALL20
(1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL label12
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 20 #label20,Ri
CALL @Ri
参考 : 2 BRA20
(1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA label9
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 20 #label20,Ri
JMP @Ri
参考 : 3 Bcc20
(1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc label9
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
Bxcc false
xcc は cc の背反条件
LDI: 20 #label20,Ri
JMP @Ri
false:
577
付録 D 命令一覧表
付表 D-16 20 ビット遅延分岐マクロ命令
ニーモニック
*CALL20: D label20,Ri
*BRA20: D
*BEQ20: D
*BNE20: D
*BC20: D
*BNC20: D
*BN20: D
*BP20: D
*BV20: D
*BNV20: D
*BLT20: D
*BGE20: D
*BLE20: D
*BGT20: D
*BLS20: D
*BHI20: D
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
label20,Ri
動 作
次の命令のアドレス +2->RP,
label20->PC
label20->PC
if(Z==1) then label20->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備 考
Ri: テンポラリレジスタ「参考 : 1」参照
Ri: テンポラリレジスタ「参考 : 2」参照
Ri: テンポラリレジスタ「参考 : 3」参照
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
参考 : 1 CALL20: D
(1) label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL: D label12
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 20 #label20,Ri
CALL: D @Ri
参考 : 2 BRA20: D
(1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA: D label9
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 20 #label20,Ri
JMP: D @Ri
参考 : 3 Bcc20: D
(1) label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc: D label9
(2) label20-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI: 20 #label20,Ri
JMP: D @Ri
false:
578
付録 D 命令一覧表
付表 D-17 32 ビット通常分岐マクロ命令
ニーモニック
*CALL32 label32,Ri
*BRA32
*BEQ32
*BNE32
*BC32
*BNC32
*BN32
*BP32
*BV32
*BNV32
*BLT32
*BGE32
*BLE32
*BGT32
*BLS32
*BHI32
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
動 作
次の命令のアドレス ->RP,
label32->PC
label32->PC
if(Z==1) then label32->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備 考
Ri: テンポラリレジスタ「参考 : 1」参照
Ri: テンポラリレジスタ「参考 : 2」参照
Ri: テンポラリレジスタ「参考 : 3」参照
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
参考 : 1 CALL32
(1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL label12
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 32 #label32,Ri
CALL @Ri
参考 : 2 BRA32
(1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA label9
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 32 #label32,Ri
JMP @Ri
参考 : 3 Bcc32
(1) label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc label9
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI: 32 #label32,Ri
JMP @Ri
false:
579
付録 D 命令一覧表
付表 D-18 32 ビット遅延分岐マクロ命令
ニーモニック
*CALL32D label32,Ri
*BRA32: D
*BEQ32: D
*BNE32: D
*BC32: D
*BNC32: D
*BN32: D
*BP32: D
*BV32: D
*BNV32: D
*BLT32: D
*BGE32: D
*BLE32: D
*BGT32: D
*BLS32: D
*BHI32: D
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
label32,Ri
動 作
次の命令のアドレス +2->RP,
label32->PC
label32->PC
if(Z==1) then label32->PC
↑ s/Z==0
↑ s/C==1
↑ s/C==0
↑ s/N==1
↑ s/N==0
↑ s/V==1
↑ s/V==0
↑ s/V xor N==1
↑ s/V xor N==0
↑ s/(V xor N) or Z==1
↑ s/(V xor N) or Z==0
↑ s/C or Z==1
↑ s/C or Z==0
備 考
Ri: テンポラリレジスタ 「参考 : 1」参照
Ri: テンポラリレジスタ「参考 : 2」参照
Ri: テンポラリレジスタ「参考 : 3」参照
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
参考 : 1 CALL32: D
(1) label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL: D label12
(2) label32-PC-2 が , (1) の範囲外の場合および外部参照シンボルを含む場合は , 次
のように命令を生成します。
LDI: 32 #label32,Ri
CALL: D @Ri
2 BRA32: D
参考 : 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
参考 : 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:
580
付録 D 命令一覧表
付表 D-19 ダイレクトアドレッシング
ニーモニック
型 OP CYCLE NZVC
動 作
備 考
DMOV @dir10, R13
D
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
0E
2a
---- (dir8)->(R13),R13++
バイト
DMOVB @R13+, @dir8
D
1E
2a
---- (R13)->(dir8),R13++
バイト
( 注意事項 )
dir8, dir9, dir10 フィールドには , 次のようにアセンブラが計算して値を設定します。
dir8->dir, dir9/2->dir, dir10/4->dir dir8, dir9, dir10 は符号なしです。
付表 D-20 リソース命令
ニーモニック
LDRES @Ri+, #u4
型
C
OP CYCLE NZVC
BC
a
----
STRES #u4, @Ri+
C
BD
a
----
動 作
(Ri)->u4 のリソース
Ri+=4
u4 のリソース ->(Ri)
Ri+=4
備 考
u4: チャネル番号
u4: チャネル番号
<注意事項>
MB91350A では , チャネル番号を持つリソースを搭載していないので , 使用できません。
581
付録 D 命令一覧表
付表 D-21 コプロセッサ制御命令
{ CRi| CRj} := CR0| CR1| CR2| CR3| CR4| CR5| CR6| CR7| CR8| CR9| CR10| CR11 |CR12| CR13
|CR14| |CR15
u4: : = チャネル指定
u8: : = コマンド指定
COPOP
COPLD
COPST
COPSV
ニーモニック
#u4, #u8, CRj, Cri
#u4, #u8, Rj, Cri
#u4, #u8, CRj, Ri
#u4, #u8, CRj, Ri
型
E
E
E
E
OP
9F-C
9F-D
9F-E
9F-F
CYCLE NZVC
2+a
1+2a
1+2a
1+2a
-------------
動作
演算指示
Rj->CRi
CRj->Ri
CRj->Ri
<注意事項>
MB91350A では , コプロセッサを搭載していないため使用できません。
582
備 考
エラートラップ
なし
索引
索引
Numerics
0 検出
0 検出 ......................................................................332
0 検出用データレジスタ
0 検出用データレジスタ (BSD0) ........................330
10 ビットスレーブアドレスマスクレジスタ
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................423
10 ビットスレーブアドレスレジスタ
10 ビットスレーブアドレスレジスタ
(ITBA) ..............................................................422
16 ビット
32 ビット←→ 16 ビットバスコンバータ ............50
FR-CPU プログラミングモード
(16 ビット , リード / ライト可能 ) ...............511
16 ビットアウトプットコンペア
16 ビットアウトプットコンペアの
タイミング ......................................................402
16 ビットアウトプットコンペアの動作 ............401
16 ビットインプットキャプチャ
16 ビットインプットキャプチャの動作 ............394
16 ビットインプットキャプチャの
入力タイミング ..............................................394
16 ビットタイマレジスタ
16 ビットタイマレジスタ (TMR) .......................274
16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 ....................260
16 ビットフリーランタイマの
カウンタクリア ..............................................266
16 ビットフリーランタイマの
カウントタイミング ......................................268
16 ビットフリーランタイマの
クリアタイミング ..........................................267
16 ビットフリーランタイマの
ブロックダイヤグラム ..................................261
16 ビットフリーランタイマの
レジスタ一覧 ..................................................261
16 ビットリロードタイマ
16 ビットリロードタイマの概要 ........................269
16 ビットリロードタイマの
ブロックダイヤグラム ..................................271
16 ビットリロードタイマのレジスタ一覧 ........270
16 ビットリロードレジスタ
16 ビットリロードレジスタ (TMRLR) ..............274
1 検出
1 検出 ......................................................................332
1 検出用データレジスタ
1 検出用データレジスタ (BSD1) ........................330
2 サイクル転送
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................214
2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................213
2 サイクル転送 ( 内部 RAM →外部 I/O,RAM,
外部 I/O,RAM →内部 RAM もタイミングは同
じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................212
2 サイクル転送時のデータの動作 .....................490
ステップ / ブロック転送 2 サイクル転送 ......... 464
ステップ / ブロック転送 2 サイクル転送
フライバイ転送 .............................................. 465
デマンド転送 2 サイクル転送 ............................463
バースト 2 サイクル転送 .................................... 462
32 ビット
32 ビット←→ 16 ビットバスコンバータ ........... 50
FR-CPU ROM モード
(32 ビット , リードのみ ) ..............................511
400kbps
I2C バスインタフェース (400kbps 対応 ) ............... 4
7 ビットスレーブアドレスマスクレジスタ
7 ビットスレーブアドレスマスクレジスタ
(ISMK) .............................................................426
7 ビットスレーブアドレスレジスタ
7 ビットスレーブアドレスレジスタ
(ISBA) .............................................................. 425
8/16 ビットアップダウンカウンタ
8/16 ビットアップダウンカウンタ / タイマ (ch0)
のブロックダイヤグラム ..............................236
8/16 ビットアップダウンカウンタ / タイマ (ch1)
のブロックダイヤグラム ..............................237
8/16 ビットアップダウンカウンタ / タイマの
概要 .................................................................. 232
8/16 ビットアップダウンカウンタ / タイマの
特徴 .................................................................. 233
8/16 ビットアップダウンカウンタ / タイマの
レジスタ一覧 ..................................................234
8 ビット D/A コンバータ
8 ビット D/A コンバータの特長 ........................ 350
8 ビット D/A コンバータの
ブロックダイヤグラム ..................................351
8 ビット D/A コンバータのレジスタ一覧 ........350
583
索引
A
A/D コンバータ
A/D コンバータ .........................................................4
A/D コンバータの特長 .........................................336
A/D コンバータのブロックダイヤグラム .........337
A/D コンバータのレジスタ一覧 .........................336
A/D コンバータのレジスタの概要 .....................338
ACR
ACR0 ∼ ACR7 (Area Configuration Register) の
レジスタ構成 ..................................................158
AC 特性
DMAC の AC 特性について ................................486
ADCS
コントロール・ステータスレジスタ (ADCS1) の
レジスタ構成 ..................................................339
コントロール・ステータスレジスタ (ADCS2) の
レジスタ構成 ..................................................341
ADCT
変換時間設定レジスタ (ADCT) のレジスタ
構成 ..................................................................343
ADTHx
データレジスタ (ADTHx,ADTLx) の概要 .........345
ADTLx
データレジスタ (ADTHx,ADTLx) の概要 .........345
Area Configuration Register
ACR0 ∼ ACR7 (Area Configuration Register) の
レジスタ構成 ..................................................158
Area Select Register
ASR0 ∼ ASR3 (Area Select Register) のレジスタ
構成 ..................................................................157
Area Wait Register
AWR0 ∼ AWR7(Area Wait Register) のレジスタ
構成 ..................................................................164
ASR
ASR0 ∼ ASR3 (Area Select Register) のレジスタ
構成 ..................................................................157
ASR および ASZ3 ∼ ASZ0 の設定例 .................175
ASZ
ASR および ASZ3 ∼ ASZ0 の設定例 .................175
AWR
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................214
2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................213
2 サイクル転送 ( 内部 RAM →外部 I/O,RAM,
外部 I/O,RAM →内部 RAM もタイミングは同
じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................212
AWR0 ∼ AWR7(Area Wait Register) のレジスタ
構成 ..................................................................164
CS 遅延設定
(TYP3 ∼ TYP0=0000B,AWR=000CH) ...........197
CS → RD/WR セットアップ・RD/WR → CS
ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH) ..................................................198
CS → RD/WR セットアップ設定
(TYP3 ∼ TYP0=0101B, AWR=100BH) ..........204
584
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................209
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................199
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................210
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................200
外部ウェイトあり
(TYP3 ∼ TYP0=0101B,AWR=1008H) ........... 203
外部ウェイトタイミング
(TYP3 ∼ TYP0=0001B,AWR=2008H) ........... 195
外部ウェイトなし
(TYP3 ∼ TYP0=0100B,AWR=0008H) ........... 201
基本タイミング ( アクセスが連続する場合 )
(TYP3 ∼ TYP0=0000B,AWR=0008H) ........... 191
自動ウェイトタイミング
(TYP3 ∼ TYP0=0000B,AWR=2008H) ........... 194
同期ライトイネーブル出力タイミング
(TYP3 ∼ TYP0=0000B,AWR=0000H) ........... 196
ライト→ライトタイミング
(TYP3 ∼ TYP0=0000B,AWR=0018H) ........... 193
リード→ライトタイミング
(TYP3 ∼ TYP0=0000B,AWR=0048H) ........... 192
B
BSD
0 検出用データレジスタ (BSD0) ........................ 330
1 検出用データレジスタ (BSD1) ........................ 330
BSDC
変化点検出用データレジスタ (BSDC) ..............331
BSRR
検出結果レジスタ (BSRR) ..................................331
BUSY
レディ / ビジー信号 (RDY/BUSY) .....................519
C
CCR
CCR (Condition Code Register) ............................... 57
CCRH
CCRH/L ch0
(Counter Control Register High/Low ch0) ....... 238
CCRH/L ch1
(Counter Control Register High/Low ch1) ....... 241
CDCR
専用プリスケーラコントロールレジスタ
(CDCR) .............................................................381
Chip Select Enable register
CSER (Chip Select Enable register) のレジスタ
構成 .................................................................. 172
CLK
CLK 同期モード ................................................... 368
CLKB
CPU クロック (CLKB) .........................................103
CLKP
周辺クロック (CLKP) .......................................... 103
索引
CLKR
CLKR: クロックソース制御レジスタ ................114
CLKT
外部バスクロック (CLKT) ..................................104
CLK 同期モード
CLK 同期モード ....................................................368
Condition Code Register
CCR (Condition Code Register) ...............................57
SCR (System Condition code Register) ....................58
Controller
DMAC (DMA Controller) ..........................................3
Counter Control Register
CCRH/L ch0
(Counter Control Register High/Low ch0) .......238
CCRH/L ch1
(Counter Control Register High/Low ch1) .......241
Counter Status Register
CSR0/1 (Counter Status Register 0/1) ....................241
CPU
CPU ...........................................................................50
CPU クロック (CLKB) ..........................................103
FR-CPU ROM モード
(32 ビット , リードのみ ) ...............................511
各 CPU ステートにおける端子状態 ...................562
CPU モード
フラッシュコントロール / ステータスレジスタ
(CPU モード ): FLCR のレジスタ構成 .........507
CSER
CSER (Chip Select Enable register) のレジスタ
構成 ..................................................................172
CSR
CSR0/1 (Counter Status Register 0/1) ....................241
CS 遅延設定
CS 遅延設定
(TYP3 ∼ TYP0=0000B,AWR=000CH) ...........197
CS → RD/WR セットアップ
CS → RD/WR セットアップ設定
(TYP3 ∼ TYP0=0101B, AWR=100BH) ..........204
CS → RD/WR セットアップ・RD/WR → CS
ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH) ..................................................198
CTBR
CTBR: タイムベースカウンタクリア
レジスタ ..........................................................113
D
D/A コントロールレジスタ
D/A コントロールレジスタ 0 (DACR0) .............353
D/A コントロールレジスタ 1 (DACR1) .............353
D/A コントロールレジスタ 2 (DACR2) .............353
D/A コンバータ
8 ビット D/A コンバータの特長 .........................350
8 ビット D/A コンバータの
ブロックダイヤグラム ..................................351
8 ビット D/A コンバータのレジスタ一覧 .........350
D/A コンバータ .........................................................4
D/A コンバータの出力電圧の論理式 .................354
D/A データレジスタ
D/A データレジスタ 0 (DADR0) .........................352
D/A データレジスタ 1 (DADR1) .........................352
D/A データレジスタ 2 (DADR2) .........................352
DACK
DACK の FR30 互換モード ................................. 496
DACK 端子出力
DACK 端子出力のタイミングについて ............484
DACR
D/A コントロールレジスタ 0 (DACR0) ............. 353
D/A コントロールレジスタ 1 (DACR1) ............. 353
D/A コントロールレジスタ 2 (DACR2) ............. 353
DADR
D/A データレジスタ 0 (DADR0) ........................ 352
D/A データレジスタ 1 (DADR1) ........................ 352
D/A データレジスタ 2 (DADR2) ........................ 352
D-bus
D-bus メモリ ............................................................ 32
DDR
ポート方向レジスタ (DDR) ................................223
DEOP 端子出力
DEOP 端子出力のタイミングについて ............. 485
DICR
DICR ( 遅延割込みモジュールレジスタ ) ......... 326
DICR の DLYI ビット .......................................... 327
DIVR
DIVR0: 基本クロック分周設定レジスタ 0 ....... 118
DIVR1: 基本クロック分周設定レジスタ 1 ....... 119
DLYI
DICR の DLYI ビット .......................................... 327
DMA
DMAC (DMA Controller) .......................................... 3
DMA 転送中の外部ホールド要求 ...................... 472
DMA による割込みクリアの発生
タイミング ......................................................475
DMA 抑止 .............................................................. 471
外部ホールド中の DMA 転送要求 .....................472
DMAC
DMAC (DMA Controller) .......................................... 3
DMAC の AC 特性について ................................486
DMAC の概要 ....................................................... 456
DMAC の主要機能 ............................................... 438
DMAC の主要動作 ............................................... 457
DMAC のハードウェア構成 ............................... 438
DMAC のブロックダイヤグラム .......................440
DMAC のレジスタ概要 .......................................439
DMAC 割込み制御が出力できる割込み ........... 479
IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の
レジスタ構成 ..................................................170
DMACA
[DMACA0 ∼ DMACA4] のビット機能 ............. 442
DMACB
コントロール / ステータスレジスタ B
(DMACB0 ∼ DMACB4) のビット機能 ....... 447
DMACR
全体制御レジスタ (DMACR) の
ビット機能 ......................................................454
DMAC 割込み要因クリアレジスタ
DMAC 割込み要因クリアレジスタ (SRCL) ...... 382
DMADA
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) のビット機能 ........452
DMASA
転送元 / 転送先アドレス設定レジスタ
(DMASA0 ∼ DMASA4/
DMADA0 ∼ DMADA4) のビット機能 ........452
585
索引
DMA 外部インタフェース
DMA 外部インタフェースの動作概要 ..............493
DMA 転送
DMA 転送と割込み ..............................................471
スリープモード中の DMA 転送の注意 .............480
DMA 転送要求
DMA 転送要求と外部ホールド要求の
同時発生 ..........................................................472
DMA フライバイ転送
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................209
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................199
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................210
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................200
double 型
double 型 ,long double 型の利用 .............................38
DRCL
DRCL レジスタ (DRCL) .......................................365
DRCL レジスタ
DRCL レジスタ (DRCL) .......................................365
DREQ
DREQ 端子入力の最小有効パルス幅について
(MB91F353A/351A/352A/353A には 0,1,2 チャ
ネルはありません。) .....................................483
DREQx 端子
DREQx 端子の入力タイミング ...........................494
DREQ 端子入力
デマンド転送要求の停止時の DREQ 端子入力の
ネゲートタイミングについて ......................483
同一チャネルで引き続き転送を行うための DREQ
端子入力のタイミングについて ..................484
DRLR
DRLR: データ RAM 制限コントロールレジスタ
(D-bus RAM Limit control Register) ...............543
DSTP 端子入力
DSTP 端子入力のタイミングについて ..............485
E
EIT
EIT からの復帰 .......................................................69
EIT の特長 ...............................................................69
EIT の割込みレベル ...............................................70
EIT ベクタテーブル ...............................................76
EIT 要因 ...................................................................69
EIT 要因受理の優先度 ...........................................79
ELVRn
外部割込み要求レベル設定レジスタ (ELVRn:
External LeVel Register) のビット構成 .........319
ENable Interrupt Request Register
割込み許可レジスタ (ENIRn: ENable Interrupt
Request Register) のビット構成 .....................317
ENIRn
割込み許可レジスタ (ENIRn: ENable Interrupt
Request Register) のビット構成 .....................317
586
External Interrupt
外部割込み要因レジスタ (EIRRn: External Interrupt
Request Register) のビット構成 .....................318
External Interrupt Request Register
外部割込み要因レジスタ (EIRRn: External Interrupt
Request Register) のビット構成 .....................318
External LeVel Register
外部割込み要求レベル設定レジスタ (ELVRn:
External LeVel Register) のビット構成 ......... 319
F
F-Bus RAM Limit control Register
FRLR: 命令 RAM 制限コントロールレジスタ
(F-Bus RAM Limit control Register) ............... 544
FLCR
フラッシュコントロール / ステータスレジスタ
(CPU モード ): FLCR のレジスタ構成 ........507
FLWC
ウェイトレジスタ :FLWC のレジスタ構成 ...... 509
FR30
DACK の FR30 互換モード ................................. 496
FRCPU
FRCPU の特長 ........................................................... 2
FR-CPU ROM モード
FR-CPU ROM モード
(32 ビット , リードのみ ) ..............................511
FR-CPU プログラミングモード
FR-CPU プログラミングモード
(16 ビット , リード / ライト可能 ) ............... 511
FRLR
FRLR: 命令 RAM 制限コントロールレジスタ
(F-Bus RAM Limit control Register) ............... 544
H
Hold Request Cancel Request
ホールドリクエスト取下げ要求
(Hold Request Cancel Request) ........................ 309
HRCL
ホールドリクエスト取下げ要求レジスタ (HRCL)
のビット構成 ..................................................305
HRCR
ホールドリクエスト取下げ要求機能 (HRCR) の
使用例 .............................................................. 310
I
I/O
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................214
2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................213
2 サイクル転送 ( 内部 RAM →外部 I/O,RAM,
外部 I/O,RAM →内部 RAM もタイミングは同
じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................212
索引
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................209
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................199
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................210
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................200
I/O ピン ..................................................................155
I/O ポート ..................................................................4
I/O ポートアクセス ................................................33
外部 I/O −外部メモリ間の転送について .........485
拡張 I/O シリアルインタフェース (SIO) の
ブロックダイヤグラム ..................................377
拡張 I/O シリアルインタフェース (SIO) の
レジスタ一覧 ..................................................376
拡張 I/O シリアルインタフェース (SIO) の
動作概要 ..........................................................383
拡張 I/O シリアルインタフェースの概要 .........375
シリアル I/O の動作状態 .....................................384
シリアル I/O の動作モード .................................376
I/O Wait Register
IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の
レジスタ構成 ..................................................170
I/O ポート
I/O ポート ..................................................................4
I/O ポートアクセス ................................................33
I/O マップ
I/O マップの読み方 ..............................................548
I2 C
I2C バスインタフェース (400kbps 対応 ) ...............4
I2C インタフェース
I2C インタフェースの特長 ..................................406
I2C インタフェースの
ブロックダイヤグラム ..................................409
I2C インタフェースのレジスタ一覧 ..................407
I2C インタフェースのレジスタ概要 ..................410
IBCR
バスコントロールレジスタ (IBCR) ....................414
IBSR
バスステータスレジスタ (IBSR) ........................411
ICCR
クロックコントロールレジスタ (ICCR) ............420
ICR
ICR ビット構成 .......................................................72
ICR マッピング .......................................................72
割込み制御レジスタ (ICR) のビット構成 .........304
ICS
インプットキャプチャコントロールレジスタ
(ICS01,ICS23) ..................................................392
IDAR
データレジスタ (IDAR) .......................................427
IDBL
クロックディセーブルレジスタ (IDBL) ............428
ILM
ILM .....................................................................59, 71
INIT
設定初期化リセット (INIT) ...................................90
設定初期化リセット (INIT) 解除シーケンス
............................................................................93
INIT
INIT 端子入力 ( 設定初期化リセット端子 ) ........ 91
INT
INT 命令の動作 ....................................................... 82
INTE
INTE 命令の動作 ....................................................82
Interrupt
外部割込み要因レジスタ (EIRRn: External Interrupt
Request Register) のビット構成 .....................318
IOWR
2 サイクル転送 (I/O →外部 )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................214
2 サイクル転送 ( 外部→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................213
2 サイクル転送 ( 内部 RAM →外部 I/O,RAM,
外部 I/O,RAM →内部 RAM もタイミングは同
じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................212
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................209
DMA フライバイ転送 (I/O →メモリ )
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................199
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=41H) ......................................................210
DMA フライバイ転送 ( メモリ→ I/O)
(TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=51H) ......................................................200
IOWR0 ∼ IOWR3 (I/O Wait Register for DMAC) の
レジスタ構成 ..................................................170
IPCP
インプットキャプチャデータレジスタ
(IPCP0 ∼ IPCP3) .............................................392
ISBA
7 ビットスレーブアドレスレジスタ
(ISBA) .............................................................. 425
ISMK
7 ビットスレーブアドレスマスクレジスタ
(ISMK) .............................................................426
ITBA
10 ビットスレーブアドレスレジスタ
(ITBA) .............................................................. 422
ITMK
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................423
I フラグ
I フラグ .................................................................... 70
L
lib オプション
文字列操作関数使用時の -K lib オプションの
指定 .................................................................... 38
long double 型
double 型 ,long double 型の利用 ............................ 38
587
索引
LSI
本 LSI とエンディアンの接続 .............................186
M
MCLK
MCLK と SYSCLK ..................................................32
MD
モード端子 (MD0 ∼ MD2) について ...................31
MODR
モードレジスタ (MODR) .......................................87
Multiply & Divide register
乗除算レジスタ (Multiply & Divide register) ........61
N
NC
NC,OPEN 端子の処理について .............................31
NMI
NMI .........................................................................322
NMI (Non Maskable Interrupt) ...............................309
NMI/ ホールド抑止レベル割込み処理中 ...........476
外部割込み・NMI 制御部の
ブロックダイヤグラム ..................................315
外部割込み・NMI 制御部のレジスタ一覧 ........314
外部割込み・NMI 制御部のレジスタ詳細 ........316
ユーザ割込み・NMI の動作 ..................................81
割込み・NMI に対するレベルマスク ..................71
Non Maskable Interrupt
NMI (Non Maskable Interrupt) ...............................309
O
OCCP
コンペアレジスタ (OCCP0 ∼ OCCP7) ..............398
OCS
アウトプットコントロールレジスタ
(OCS0 ∼ 7) ......................................................398
OPEN 端子
NC,OPEN 端子の処理について .............................31
OSCCR
OSCCR: 発振制御レジスタ .................................121
P
PC
PC (Program Counter) ..............................................59
PCR
プルアップ抵抗レジスタ (PCR) .........................224
PCSR
PPG 周期設定レジスタ (PCSR) の構成 ..............287
PDR
ポートデータレジスタ (PDR) .............................222
PDUT
PPG デューティ設定レジスタ (PDUT) の
構成 ..................................................................288
PFR
ポート機能レジスタ (PFR) ..................................225
PFR レジスタ
PFR レジスタの初期値と機能 ............................226
588
PLL
PLL 逓倍率 ............................................................ 100
PLL 動作許可 .......................................................... 99
PLL クロック
PLL クロックモード動作中の注意について ...... 31
PLL 逓倍率変更後
PLL 逓倍率変更後の待ち時間 ............................101
PLL 動作許可後
PLL 動作許可後の待ち時間 ................................101
Pointer
RP (Return Pointer) ..................................................60
SSP (System Stack Pointer) ................................ 60, 73
USP (User Stack Pointer) .........................................60
PPG
PPG 出力オール "L" またはオール "H" の出力方法
の例 .................................................................. 297
PPG 周期設定レジスタ
PPG 周期設定レジスタ (PCSR) の構成 ..............287
PPG タイマ
PPG タイマの特長 ................................................280
PPG タイマのブロックダイヤグラム
( 全体構成 ,1 チャネル分 ) ............................282
PPG タイマのレジスタ一覧 ................................281
PPG タイマのレジスタの概要 ............................283
PPG タイマレジスタ
PPG タイマレジスタ (PTMR) の構成 ................ 289
PPG デューティ設定レジスタ
PPG デューティ設定レジスタ (PDUT) の
構成 .................................................................. 288
Program Counter
PC (Program Counter) .............................................. 59
Program Status
PS (Program Status) ..................................................56
PS
PS (Program Status) ..................................................56
PS レジスタ
PS レジスタに関する注意事項 ............................. 34
PTMR
PPG タイマレジスタ (PTMR) の構成 ................ 289
R
RAM
2 サイクル転送 ( 内部 RAM →外部 I/O,RAM,
外部 I/O,RAM →内部 RAM もタイミングは同
じ ) (TYP3 ∼ TYP0=0000B,AWR=0008H,
IOWR=00H) ......................................................212
FRLR: 命令 RAM 制限コントロールレジスタ
(F-Bus RAM Limit control Register) ............... 544
内蔵 RAM ................................................................ 33
内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 )
アクセス制限機能の動作 ..............................545
内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 )
アクセス制限機能のブロックダイヤグラム
..........................................................................542
内蔵 RAM ( データ )/ 内蔵 RAM ( 命令実行可能 )
アクセス制限機能レジスタ一覧 .................. 542
RCR
RCR0/1 (Reload/Compare Register 0/1) ................ 243
索引
RD/WR → CS ホールド設定
CS → RD/WR セットアップ・RD/WR → CS
ホールド設定 (TYP3 ∼ TYP0=0000B,
AWR=000BH) ..................................................198
RDY
レディ / ビジー信号 (RDY/BUSY) ......................519
REALOS
ビットサーチモジュール (REALOS 使用 ) ...........3
Reload/Compare Register
RCR0/1 (Reload/Compare Register 0/1) ................243
Request Register
外部割込み要因レジスタ (EIRRn: External Interrupt
Request Register) のビット構成 .....................318
RETI
RETI 命令の動作 .....................................................84
Return Pointer
RP (Return Pointer) ...................................................60
ROM
FR-CPU ROM モード
(32 ビット , リードのみ ) ...............................511
バスモード 1 ( 内 ROM 外バスモード ) ...............86
RP
RP (Return Pointer) ...................................................60
RSRR
RSRR: リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ......................................107
RST
動作初期化リセット (RST) ....................................90
動作初期化リセット (RST) 解除シーケンス .......93
S
SCR
SCR (System Condition code Register) ....................58
シリアルコントロールレジスタ (SCR) .............360
SDR
シリアルシフトデータレジスタ (SDR) .............381
SES
SIO テストレジスタ (SES) ...................................381
SIDR
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................362
SIO
SIO ..............................................................................4
拡張 I/O シリアルインタフェース (SIO) の
ブロックダイヤグラム ..................................377
拡張 I/O シリアルインタフェース (SIO) の
レジスタ一覧 ..................................................376
拡張 I/O シリアルインタフェース (SIO) の
動作概要 ..........................................................383
SIO テストレジスタ
SIO テストレジスタ (SES) ...................................381
SMCS
シリアルモードコントロールステータスレジスタ
(SMCS) .............................................................378
SMR
シリアルモードレジスタ (SMR) ........................359
SODR
シリアルインプットデータレジスタ (SIDR)/
シリアルアウトプットデータレジスタ
(SODR) .............................................................362
SRCL
DMAC 割込み要因クリアレジスタ (SRCL) ...... 382
SRST ビット書込み
STCR:SRST ビット書込み
( ソフトウェアリセット ) ............................... 92
SSP
SSP (System Stack Pointer) ................................ 60, 73
SSR
シリアルステータスレジスタ (SSR) .................. 363
Stack Pointer
SSP (System Stack Pointer) ................................ 60, 73
USP (User Stack Pointer) .........................................60
START
「START