12.8MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM71-10119-2
FR60
32 ビット マイクロコントローラ
MB91310 シリーズ
ハードウェアマニュアル
FR60
32 ビット マイクロコントローラ
MB91310 シリーズ
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。
「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目
をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛顧を賜り厚
くお礼申し上げます。
MB91310 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理
が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , シングル
チップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空間
をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行を
高速化するために 16KB の RAM ( データ用 ) を内蔵しています。
ディジタルビデオカメラ , ナビゲーションシステム , DVD プレイヤーなど , 高性能な
CPU 処理パワーを要求される組込み用途に最適な仕様となっています。
MB91310 シリーズは , FR30 ファミリ CPU をベースにバスアクセスの強化を行い , より
高速での使用に対応した FR60 ファミリです。
本書は , 実際に MB91310 シリーズを使用して製品を開発される技術者を対象に ,
MB91310 シリーズの機能や動作について解説したものです。本書をご一読ください。
なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ
い。
■ 商標
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.
■ 本書の全体構成
本書は , 以下に示す 21 の章 , および付録から構成されています。
第1章
概要
この章では , MB91310 シリーズの特長 , ブロックダイヤグラム , 機能概要など全体
を知るための基本的なことがらについて説明します。
第2章
デバイスの取扱いについて
この章では , MB91310 シリーズの取扱い上の注意について説明します。
第3章
CPU および制御部
この章では , FR ファミリの機能を知るために , アーキテクチャ , 仕様 , 命令などの
基本的なことがらについて説明します。
i
第4章
外部バスインタフェース
この章では , 外部バスインタフェースの各機能 , および動作について説明します。
第5章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第6章
U-TIMER
この章では , U-TIMER の概要 , レジスタの構成 / 機能および動作について説明しま
す。
第7章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第8章
PPG タイマ
この章では , PPG タイマの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
第9章
多機能タイマ
この章では , 多機能タイマの概要 , レジスタ構成 / 機能 , および動作について説明し
ています。
第 10 章 16 ビットパルス幅カウンタ
この章では , 16 ビットパルス幅カウンタの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 11 章 割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタの構成 / 機能 , 動作 , およびホー
ルドリクエスト取下げ要求機能の使用例について説明します。
第 12 章 外部割込み・NMI 制御部
この章では , 外部割込み・NMI 制御部の概要 , レジスタの構成 / 機能 , および動作に
ついて説明します。
第 13 章 REALOS 関連ハード
この章では , REALOS 関連ハードの遅延割込みモジュールとビットサーチモジュー
ルについて , 概要 , レジスタの構成 / 機能 , および動作を説明します。
第 14 章 10 ビット A/D コンバータ
この章では , 10 ビット A/D コンバータの概要 , レジスタの構成 / 機能 , および動作
について説明します。
第 15 章 UART
この章では, UARTの概要とレジスタの構成/機能, および動作について説明します。
第 16 章 I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作につい
て説明します。
第 17 章 DMAC (DMA コントローラ )
この章では , DMAC (DMA コントローラ ) の概要 , レジスタの構成 / 機能 , および動
作について説明します。
ii
第 18 章 USB ファンクション
この章では , USB ファンクションの概要 , レジスタの構成 / 機能 , 動作 , および補足
事項について説明します。
第 19 章 USB ホストインタフェース
この章では , USB ホストインタフェースの概要 , およびレジスタの概要 / 機能につ
いて説明します。
第 20 章 OSDC
この章では , OSDC の特長 , ブロックダイヤグラム , 表示機能 , 制御機能 , および表
示制御コマンドについて説明します。
第 21 章 FLASH メモリ
この章では , フラッシュメモリの概要 , レジスタの構成 / 機能および動作について説
明します。
付録
付録として , I/O マップ , 割込みベクタ , ドットクロック生成用 PLL, USB クロック ,
外部バスインタフェースの設定 , および命令一覧について , 本文に記載できなかっ
た細かい内容や , プログラミングのときに参照することがらを記載しています。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright© 2004-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
第2章
2.1
第3章
概要 ............................................................................................................ 1
特長 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 6
外形寸法図.............................................................................................................................. 7
端子配列図.............................................................................................................................. 8
端子機能一覧表 ...................................................................................................................... 9
入出力回路形式 .................................................................................................................... 15
デバイスの取扱いについて ...................................................................... 21
デバイスの取扱いについて................................................................................................... 22
CPU および制御部 ................................................................................... 25
3.1 メモリ空間............................................................................................................................ 26
3.2 内部アーキテクチャ ............................................................................................................. 27
3.3 プログラミング・モデル ...................................................................................................... 32
3.4 データ構造............................................................................................................................ 39
3.5 ワードアライメント ............................................................................................................. 40
3.6 メモリマップ ........................................................................................................................ 41
3.7 分岐命令 ............................................................................................................................... 42
3.8 EIT( 例外・割込み・トラップ ) ............................................................................................ 46
3.8.1
割込みレベル .............................................................................................................. 47
3.8.2
ICR(Interrupt Control Register)................................................................................. 49
3.8.3
SSP(System Stack Pointer)........................................................................................ 50
3.8.4
TBR (Table Base Register) ........................................................................................ 51
3.8.5
多重 EIT 処理.............................................................................................................. 55
3.8.6
EIT の動作 .................................................................................................................. 57
3.9 動作モード............................................................................................................................ 61
3.10 リセット ( デバイス初期化 ) ................................................................................................. 64
3.10.1
リセットレベル .......................................................................................................... 65
3.10.2
リセット要因 .............................................................................................................. 66
3.10.3
リセットシーケンス ................................................................................................... 68
3.10.4
発振安定待ち時間....................................................................................................... 69
3.10.5
リセット動作モード ................................................................................................... 71
3.11 クロック生成制御 ................................................................................................................. 73
3.11.1
PLL 制御 ..................................................................................................................... 74
3.11.2
発振安定待ち・PLL ロック待ち時間.......................................................................... 76
3.11.3
クロック分配 .............................................................................................................. 78
3.11.4
クロック分周 .............................................................................................................. 80
3.11.5
クロック生成制御部のブロックダイヤグラム............................................................ 81
3.11.6
クロック生成制御部のレジスタ詳細説明................................................................... 82
3.11.7
クロック制御部が持つ周辺回路 ................................................................................. 98
3.12 デバイス状態制御 ............................................................................................................... 102
3.12.1
低消費電力モード..................................................................................................... 106
3.13 時計タイマ.......................................................................................................................... 111
3.14 メイン発振安定待ちタイマ................................................................................................. 117
v
第4章
外部バスインタフェース........................................................................ 123
4.1 概要 .................................................................................................................................... 124
4.2 レジスタ説明 ...................................................................................................................... 129
4.3 チップセレクト領域 ........................................................................................................... 152
4.4 エンディアンとバスアクセス ............................................................................................. 154
4.4.1
Big endian のバスアクセス ...................................................................................... 155
4.4.2
Little endian のバスアクセス .................................................................................... 162
4.4.3
ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 167
4.5 通常バスインタフェース .................................................................................................... 173
4.6 バーストアクセス (first wait cycle:1, page wait cycle:1) (TYP[3:0]=0000B, AWR=3208H)
............................................................................................................................................ 184
4.7
4.8
4.9
4.10
4.11
4.12
アドレス / データマルチプレクスインタフェース ............................................................. 186
プリフェッチ動作 ............................................................................................................... 189
DMA アクセス .................................................................................................................... 193
バスアービトレーション .................................................................................................... 199
レジスタ設定手順 ............................................................................................................... 201
使用上の注意 ...................................................................................................................... 202
第5章
5.1
5.2
I/O ポート............................................................................................... 203
I/O ポートの概要 ................................................................................................................ 204
I/O ポートのレジスタ ......................................................................................................... 206
第6章
6.1
6.2
6.3
U-TIMER ................................................................................................ 211
概要 .................................................................................................................................... 212
U-TIMER のレジスタ.......................................................................................................... 213
動作説明 ............................................................................................................................. 216
第7章
7.1
7.2
7.3
16 ビットリロードタイマ ...................................................................... 217
16 ビットリロードタイマの概要 ........................................................................................ 218
16 ビットリロードタイマのレジスタ................................................................................. 220
16 ビットリロードタイマの動作説明................................................................................. 224
第8章
8.1
8.2
8.3
8.4
PPG(Programable Pulse Generator) .................................................. 227
概要 .................................................................................................................................... 228
PPG タイマのレジスタ ...................................................................................................... 231
動作説明 ............................................................................................................................. 237
PPG タイマの注意事項 ...................................................................................................... 240
第9章
9.1
9.2
9.3
多機能タイマ.......................................................................................... 241
多機能タイマの概要 ........................................................................................................... 242
多機能タイマのレジスタ .................................................................................................... 244
多機能タイマの動作 ........................................................................................................... 252
第 10 章
16 ビットパルス幅カウンタ................................................................... 255
10.1 16 ビットパルス幅カウンタの概要 .................................................................................... 256
10.2 16 ビットパルス幅カウンタのレジスタ ............................................................................. 257
10.3 16 ビット幅パルスカウンタの動作 .................................................................................... 263
vi
第 11 章
11.1
11.2
11.3
11.4
割込みコントローラ............................................................................... 267
割込みコントローラの概要................................................................................................. 268
割込みコントローラのレジスタ ......................................................................................... 271
割込みコントローラの動作................................................................................................. 273
ホールドリクエスト取り下げ要求機能 (HRCR) の使用例.................................................. 280
第 12 章
外部割込み・NMI 制御部 ....................................................................... 283
12.1 外部割込み /NMI 制御部の概要........................................................................................... 284
12.2 外部割込み /NMI 制御部のレジスタ.................................................................................... 285
12.3 外部割込み /NMI 制御部の動作........................................................................................... 287
第 13 章
13.1
13.2
13.3
13.4
13.5
13.6
REALOS 関連ハード ............................................................................. 291
遅延割込みモジュール........................................................................................................ 292
遅延割込みモジュールのレジスタ...................................................................................... 293
遅延割込みモジュールの動作 ............................................................................................. 294
ビットサーチモジュール .................................................................................................... 295
ビットサーチモジュールのレジスタ .................................................................................. 296
ビットサーチモジュールの動作 ......................................................................................... 298
第 14 章
10 ビット A/D コンバータ...................................................................... 301
14.1 10 ビット A/D コンバータの概要 ....................................................................................... 302
14.2 10 ビット A/D コンバータのレジスタ ................................................................................ 304
14.3 10 ビット A/D コンバータの動作 ....................................................................................... 307
第 15 章
UART ..................................................................................................... 309
15.1 UART の概要 ...................................................................................................................... 310
15.1.1
UART マクロにおける送受信転送の組み合わせ ...................................................... 312
15.2 UART のレジスタ ............................................................................................................... 313
15.3 UART の動作 ...................................................................................................................... 320
15.4 割込み発生およびフラグのセットタイミング.................................................................... 324
15.5 UART の応用例................................................................................................................... 327
15.6 ボーレートと U-TIMER のリロード値の設定例 ................................................................. 329
第 16 章
16.1
16.2
16.3
16.4
I2C インタフェースの概要.................................................................................................. 332
I2C インタフェースのレジスタ .......................................................................................... 335
I2C インタフェースの動作.................................................................................................. 350
動作フローチャート ........................................................................................................... 355
第 17 章
17.1
17.2
17.3
17.4
17.5
17.6
17.7
17.8
I2C インタフェース ................................................................................ 331
DMAC(DMA コントローラ ) .................................................................. 357
DMA コントローラ (DMAC) 概要 ....................................................................................... 358
DMA コントローラ (DMAC) のレジスタ ............................................................................ 361
DMA コントローラの動作 .................................................................................................. 374
転送要求の設定 .................................................................................................................. 378
転送シーケンス .................................................................................................................. 379
DMA 転送全般 .................................................................................................................... 383
動作フローチャート ........................................................................................................... 392
データパス.......................................................................................................................... 395
vii
第 18 章
USB ファンクション.............................................................................. 399
18.1 USB ファンクションの概要 ............................................................................................... 400
18.2 USB インタフェースのレジスタ ........................................................................................ 402
18.2.1
データ送受信用レジスタ (END POINT 用 ).............................................................. 403
18.2.2
ステータスレジスタ ................................................................................................. 406
18.2.3
コントロールレジスタ ............................................................................................. 413
18.3 USB ファンクションの動作 ............................................................................................... 424
18.3.1
データ転送フロー..................................................................................................... 425
18.3.2
CPU アクセス動作説明 ............................................................................................ 431
18.3.3
DMA 動作説明 .......................................................................................................... 434
18.3.4
割込み要因一覧 ........................................................................................................ 438
18.3.5
ENDPOINT BUFFER の設定.................................................................................... 439
18.3.6
ソフトウェア制御例 ( 暫定 )..................................................................................... 441
18.4 補足事項 ............................................................................................................................. 450
18.4.1
ダブルバッファ ........................................................................................................ 451
18.4.2
ボード上の D+ 終端抵抗制御について ..................................................................... 455
18.4.3
USB 標準要求コマンドに対するマクロの自動応答内容 .......................................... 456
18.4.4
デフォルト状態での USB マクロの動作 .................................................................. 458
18.4.5
SUSPEND 時の USB クロック制御 ......................................................................... 459
18.4.6
USB コネクタの接続 / 未接続の検知........................................................................ 460
18.4.7
UCLK48 の精度 ........................................................................................................ 461
18.4.8
コントロール転送時の転送許可 BFOK の設定......................................................... 462
18.4.9
コントロール転送における注意点............................................................................ 463
18.4.9.1
USB BUS RESET 後のマクロの状態 .................................................................. 465
第 19 章
USB ホストインタフェース................................................................... 467
19.1 USB ホストインタフェースの概要..................................................................................... 468
19.2 USB ホストインタフェースのレジスタ ............................................................................. 470
第 20 章
OSDC..................................................................................................... 485
20.1 特長 .................................................................................................................................... 486
20.2 表示機能 ............................................................................................................................. 489
20.2.1
画面構成 ................................................................................................................... 490
20.2.2
画面表示形式 ............................................................................................................ 491
20.2.3
画面出力制御 ............................................................................................................ 492
20.2.4
画面表示位置制御..................................................................................................... 493
20.2.4.1
画面表示位置オフセット..................................................................................... 499
20.2.5
フォントメモリ構成 ................................................................................................. 501
20.2.6
表示メモリ (VRAM) 構成.......................................................................................... 502
20.2.7
表示メモリ (VRAM) 書込み ...................................................................................... 503
20.2.8
パレット構成 ............................................................................................................ 505
20.2.9
文字表示 ................................................................................................................... 506
20.2.9.1
文字色.................................................................................................................. 510
20.2.9.2
イタリック表示 ................................................................................................... 511
20.2.9.3
アンダライン表示................................................................................................ 514
20.2.9.4
文字ふちどり....................................................................................................... 515
20.2.9.5
行拡大表示 .......................................................................................................... 523
20.2.9.6
グラフィック文字表示 ........................................................................................ 527
20.2.9.7
ブリンク制御....................................................................................................... 531
viii
20.2.9.8
透明 / 半透明制御 ................................................................................................ 535
20.2.10
文字背景表示 ............................................................................................................ 537
20.2.10.1
影付背景右文字結合表示..................................................................................... 539
20.2.10.2
影付背景下行結合表示 ( 文字背景 )..................................................................... 541
20.2.10.3
文字背景拡張表示................................................................................................ 543
20.2.11
行背景表示 ............................................................................................................... 545
20.2.11.1
影付背景下行結合表示 ( 行背景 ) ........................................................................ 547
20.2.12
画面背景表示 ............................................................................................................ 553
20.2.12.1
画面背景文字表示................................................................................................ 554
20.2.12.2
画面背景色表示 ................................................................................................... 557
20.2.13
スプライト文字表示 ................................................................................................. 558
20.3 制御機能 ............................................................................................................................. 561
20.3.1
ドットクロック制御 ................................................................................................. 562
20.3.2
同期信号入力 ............................................................................................................ 566
20.3.2.1
垂直同期制御....................................................................................................... 567
20.3.2.2
水平同期制御....................................................................................................... 569
20.3.2.3
フィールド制御 ................................................................................................... 571
20.3.3
表示信号出力 ............................................................................................................ 574
20.3.4
表示期間制御 ............................................................................................................ 576
20.3.5
同期制御 ................................................................................................................... 578
20.3.6
割込み制御 ............................................................................................................... 581
20.3.7
OSDC 動作制御........................................................................................................ 584
20.4 表示制御コマンド ............................................................................................................... 586
20.4.1
表示制御コマンド一覧 ............................................................................................. 587
20.4.2
VRAM 書込みアドレス設定 ( コマンド 0) ................................................................ 589
20.4.3
文字データ設定 ( コマンド 1・コマンド 2) .............................................................. 590
20.4.4
行制御データ設定 ( コマンド 3・コマンド 4) .......................................................... 592
20.4.5
画面出力制御 ( コマンド 5-00・コマンド 5-1) ......................................................... 594
20.4.6
表示位置制御 ( コマンド 5-2・コマンド 5-3) ........................................................... 595
20.4.7
文字垂直サイズ制御 ( コマンド 6-0) ........................................................................ 596
20.4.8
影付背景枠色制御 ( コマンド 6-1) ............................................................................ 597
20.4.9
透明色制御 ( コマンド 6-2)....................................................................................... 598
20.4.10
グラフィック色制御 ( コマンド 6-3) ........................................................................ 599
20.4.11
画面背景文字制御 ( コマンド 7-1・コマンド 7-3) .................................................... 601
20.4.12
スプライト文字制御 ( コマンド 8-1・コマンド 8-2・コマンド 9-0・コマンド 9-1)
................................................................................................................................. 603
20.4.13
20.4.14
20.4.15
20.4.16
20.4.17
20.4.18
20.4.19
第 21 章
同期制御 ( コマンド 11-0) ........................................................................................ 605
ドットクロック制御 ( コマンド 11-1, 11-2, 11-3) .................................................... 606
入出力端子制御 ( コマンド 13-0・コマンド 13-1).................................................... 608
表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3)...................................................... 609
割込み制御 ( コマンド 15-0)..................................................................................... 611
パレット制御 ( コマンド 16-0 ∼コマンド 16-15) .................................................... 612
OSDC 動作制御 ( コマンド 17-0, コマンド 17-1)..................................................... 613
FLASH メモリ........................................................................................ 615
21.1 フラッシュメモリの概要 .................................................................................................... 616
21.2 フラッシュメモリのレジスタ ............................................................................................. 620
21.3 フラッシュメモリのアクセスモード ................................................................................. 623
21.4 フラッシュメモリ自動アルゴリズム .................................................................................. 625
ix
21.5 自動アルゴリズム実行状態の確認...................................................................................... 629
21.6 フラッシュメモリ書込み / 消去 .......................................................................................... 634
21.6.1
読出し / リセット状態 .............................................................................................. 635
21.6.2
データ書込み ............................................................................................................ 636
21.6.3
データ消去 ( チップ消去 ) ........................................................................................ 638
21.6.4
データ消去 ( セクタ消去 ) ........................................................................................ 639
21.6.5
セクタ消去の一時停止 ............................................................................................. 641
21.6.6
セクタ消去の再開..................................................................................................... 642
21.7 制限および注意事項 ........................................................................................................... 643
付録
付録 A
付録 B
付録 C
付録 D
付録 E
付録 F
付録 G
付録 H
H.1
索引
............................................................................................................... 645
I/O マップ ...................................................................................................................... 646
割込みベクタ ................................................................................................................. 663
ドットクロック生成用 PLL について ............................................................................ 666
USB クロックについて.................................................................................................. 667
USB IO 低消費電力モードについて ............................................................................ 669
外部バスインタフェースの設定について...................................................................... 670
端子状態一覧 ................................................................................................................. 672
命令一覧 ........................................................................................................................ 674
FR ファミリの命令一覧表 .......................................................................................... 677
............................................................................................................... 693
x
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
2.1 デバイスの取扱い
について
「■ 電源投入 / 切断時の注意事項」を変更
「■ 同期モードのソフトウェアリセットについて」および
「■ 低消費電力モード」を追加
3.10.2 リセット要因
「■ ウォッチドッグリセット 」を変更
(WPR ( ウォッチドッグリセット発生延期レジスタ ) →
CTBR ( タイムベースカウンタクリアレジスタ ))
72
3.10.5 リセット動作
モード
「■ 同期リセット動作」の「注意事項」を変更
81
3.11.5 クロック生成制 「図 3.11-1 ブロックダイヤグラム」を変更
御部のブロックダイヤ
グラム
23, 24
67
83
84
3.11.6 クロック生成制
御部のレジスタ詳細説
明
「■ WPR:ウォッチドッグリセット発生延期レジスタ」を削
除
94
106, 107
「■ STCR : スタンバイ制御レジスタ」に < 注意事項 > を追加
[bit9]: SYNCR (SYNChronous Reset enable) に「注意事項」を追
加
89
98
[bit9,8] WT1, WT0 (Waychdog interval Time select) の 表を変更
(WPR → CTBR)
3.11.7 クロック制御部
が持つ周辺回路
「ウォッチドッグリセットの発生延期」を変更
(WPR ( ウォッチドッグリセット発生延期レジスタ ) →
CTBR ( タイムベースカウンタクリアレジスタ ))
低消費電力モード
「■ 低消費電力モード」に , 「スリープモードへの移行」と
「ストップモードへの移行」を追加
208
5.2 I/O ポートのレジス 「■ Port Function Register(PFR)」を変更
(PFR0 ∼ PFR4 → PFR0 ∼ PFR3)
タ
232
8.2 PPG タイマのレジ
スタ
「[bit11, bit10] CKS1, CKS0: カウントクロック選択ビット」の
表を変更
(φ/2 → φ)
286
12.2 外部割込み /NMI
制御部のレジスタ
「■ 外部割込要求レベル設定レジスタ (ELVR : External LeVel
Register)」に < 注意事項 > を追加
287
12.3 外部割込み /NMI
制御部の動作
「■ 外部割込みの動作手順について」を変更
312
15.1.1 UART マクロに
おける送受信転送の組
み合わせ
363
17.2 DMA コントロー 「[bit28 ∼ bit24]: IS4 ∼ IS0 (Input Select) * : 転送要因選択」の
ラ (DMAC) のレジスタ 表を変更
391
17.6 DMA 転送全般
15.1.1 項全体を追加
「■ 外部端子と内部動作タイミングに関する補足」を削除
xi
ページ
408
変更内容(詳細は本文を参照してください。)
18.2.2 ステータスレジ
スタ
「■ ST5」の「・ビット構成」および 「表 18.2-5 bit 解説」を変
更
410
413
「■ ST3」の「・ビット構成」および 「表 18.2-3 bit 解説」を変
更
18.2.3 コントロールレ
ジスタ
416
「■ CONT1」の「・ビット構成」および 「表 18.2-8 bit 解説」
を変更
「■ CONT3」の ( 注意事項 ) を変更
419, 420
「■ CONT9」の「・ビット構成」および 「表 18.2-16 bit 解説」
を変更
420
「■ CONT10」の「・ビット構成」および 「表 18.2-17 bit 解説」
を変更
421
「■ TTSIZE」の ( 注意事項 ) を変更
422
「■ TRSIZE」の ( 注意事項 ) を変更
423
「表 18.2-18 レジスタマップ」を変更
(0006_007E → 0006_FFFE)
652
付録 A I/O マップ
「表 A-1 I/O マップ」の Address 000414H を変更
(Register PFR4 → "-")
「表 A-1 I/O マップ」の Address 000484H を変更
653
(Register WPR を削除 )
「表 A-2 I/O マップ」を変更
(00060070H − 0006007DH → 00060070H − 0006FFFBH)
(0006007EH → 0006FFFCH, Register を "RESET" に変更 )
661
(00060080H − 0007FFFFH → 00070000H − 0007FFFFH)
663
∼
665
670
671
付録 B 割込みベクタ
「■ 割込みベクタ」の表を変更
付録 F 外部バスインタ 「● CS2 領域 :USB ファンクションが接続されています。」を
フェースの設定につい 変更
て
「■ 推奨設定例」を変更
変更箇所は , 本文中のページ左側の│によって示しています。
xii
第1章
概要
この章では , MB91310 シリーズの特長 , ブロック
ダイヤグラム , 機能概要など全体を知るための基本
的なことがらについて説明します。
1.1 特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能一覧表
1.6 入出力回路形式
1
第 1 章 概要
1.1
特長
FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理を
要求される組込制御用に各種 I/O リソースを内蔵した , シングルチップマイクロコン
トローラです。
TV, PDP 制御用など , 高性能な CPU 処理パワーを要求される組込み用途に最適な仕
様となっています。
本品種は , FR30 ファミリ CPU をベースにバスアクセスの強化を行い , より高速で
の使用に対応した FR60 ファミリです。
■ FR CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 動作周波数 40MHz (PLL 使用 : 原発振 10MHz)
• 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル
• メモリ - メモリ間転送 , ビット処理 , バレルシフトなどの命令 : 組込み用途に適した
命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : 高級言語対応命令
• レジスタインターロック機能 : アセンブラ記述の容易化
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付 32 ビット乗算 : 5 サイクル
- 符号付 16 ビット乗算 : 3 サイクル
• 割込み (PC, PS の退避 ): 6 サイクル , 16 プライオリティレベル
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• CPU 内の 4 ワードのキューにより , 命令の先取り機能を追加
• FR ファミリとの命令互換
■ バスインタフェース
本バスインタフェースは , マクロ接続に使用されます。(USB, OSDC)
• 動作周波数 Max 20MHz
• 16 ビットデータ入出力 (USB, OSDC とのインタフェース )
• 最小 64Kbyte 単位で設定可能な完全独立な 8 領域のチップセレクト出力が可能
CS1, CS2, CS3 の領域は以下のように予約されています。CS0, CS4 ∼ CS7 は使用で
きません。
- CS1 領域 : USB ホスト
- CS2 領域 : USB ファンクション
- CS3 領域 : OSDC
• 基本バスサイクル : 2 サイクル
• 領域ごとにプログラマブルでウェイト挿入可能な自動ウエイトサイクル発生機構
CS1, CS2, CS3 は予約されていますので設定は固定になります。
2
第 1 章 概要
■ 内蔵 RAM
• 16KB の容量の RAM を搭載
• 本 RAM はデータの他 , 命令コードを書き込むことにより命令用 RAM として使用で
きます。
■ DMAC (DMA Controller)
• 5 チャネル (ch.0, ch.1 → USB ファンクションに接続 )
• 3 つの転送要因 ( 内部ペリフェラル / ソフトウェア )
• アドレシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
• 転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
• 転送データサイズは 8/16/32 ビットから選択可能
■ ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ
■ リロードタイマ (REALOS 用 1ch 含む )
• 16 ビットタイマ : 3 チャネル
• 内部クロックは 2/8/32 分周から選択可能
■ UART
• 全二重ダブルバッファ
• 5 チャネル
• パリティあり / なし選択可能
• 非同期 ( 調歩同期 ), CLK 同期通信の選択可能
• 専用ボーレート用タイマ内蔵
• 外部クロックを転送クロックとして使用可能
• 豊富なエラー検出機能あり ( パリティ , フレーム , オーバラン )
■ I2C インタフェース
• 4 チャネル搭載 (ch.3 は 2 ポートで使用可能 )
• マスタ / スレーブ送受信
• クロック同期化機能
• 転送方向検出機能
• バスエラー検出機能
• 標準モード (Max 100kbps)/ 高速モード (Max 400kbps) に対応
• アビトレーション機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• スタートコンディションの繰り返し発生および検出機能
• 10 ビット / 7 ビットスレーブアドレス
■ 割込みコントローラ
• 外部割込み : 合計 5 本 ( マスク不可割込み端子 (NMI)1 本と通常割込み端子 (INT3 ∼
INT0)4 本 )
• 内部ペリフェラルからの割込み
• マスク不可割込み以外は , 優先レベルをプログラマブルに設定可能 (16 レベル )
3
第 1 章 概要
• STOP 時の Wake Up 用として使用可能
■ A/D コンバータ
• 10 ビット分解能 , 10 チャネル
• 逐次比較変換型 : 変換時間 : 約 10 µs
• 変換モード ( 単発変換モード , スキャン変換モード )
• 起動要因 ( ソフトウェア / 外部トリガ )
■ PPG
• 4 チャネル搭載
• 16 ビットダウンカウンタ , 周期設定用バッファ付 16 ビットデータレジスタ
• 内部クロックは 1/4/16/64 分周から選択可能
■ PWC
• 1 チャネル (1 入力 ) 搭載
• 16 ビットアップカウンタ
• 簡易 LPF デジタルフィルタ搭載
■ 多機能タイマ
• ローパスフィルタにより設定クロック以下のノイズを除去
• 7 種類のクロック信号を使った細かい設定によるパルス幅計測が可能
• 端子入力からのイベントカウント機能
• 7 種類のクロックおよび , 外部入力クロックを使用したインターバルタイマ機能
■ USB ホスト機能
• USB1.0 仕様
• パラメータ用の 8KB の RAM を内蔵
■ USB ファンクション機能
• USB1.1 仕様の Fullspeed・ダブルバッファ
• CONTROL IN/OUT, BULK IN/OUT, INTERRUPT IN
■ OSDC 機能
• 高品位 OSDC を内蔵
• アナログ RGB I/F (DAC 内蔵 )
• デジタル RGB I/F
• ドットクロック生成用 PLL 内蔵
■ その他のインターバルタイマ
• 16 ビットタイマ : 3 チャネル (U-TIMER)
• ウォッチドッグタイマ
■ I/O ポート
最大 72 ポート
■ その他の特長
• クロックソースとして発振回路内蔵
• リセット端子として INIT を用意
4
第 1 章 概要
• その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり
• 低消費電力モードとしてストップモードとスリープモードをサポート
• ギア機能
• タイムベースタイマ内蔵
• パッケージ : LQFP-144, 0.5mm ピッチ , 20mm × 20mm
• CMOS テクノロジ : 0.25 µm
• 電源電圧 : 3.3 V ± 0.3V, 2.5 V ± 0.2V, 2 電源
5
第 1 章 概要
1.2
ブロックダイヤグラム
図 1.2-1 に , MB91310 のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム
FR
CPU Core
DSU*1
32
Flash 512KB
32
RAM 16KB
Bus
DMAC5ch
32 16
USB
function
Font ROM
FLASH 512 KB*2
ROM 168 KB*2
UART
5ch
U-TIMER
5ch
PWC
1ch
PPG
4ch
USB
host
OSDC
I2C
4ch
A/D
10ch
*1: DSU は MB91FV310A のみ搭載です。
*2: FONT ROM として , MB91FV310A は FLASH 512KB が , MB91F312A は MASK ROM
168KB が搭載されています。
6
第 1 章 概要
外形寸法図
1.3
MB91310 には , 1 種類のパッケージが用意されています。図 1.3-1 に , MB91310 の
外形寸法を示します。
■ 外形寸法図
図 1.3-1 外形寸法図
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
20.0 × 20.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
1.20g
コード(参考)
P-LFQFP144-20×20-0.50
注 1)* 印寸法はレジン残りを含まず。レジン残りは、片側 +0.25(.010)MAX
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
22.00±0.20(.866±.008)SQ
* 20.00±0.10(.787±.004)SQ
108
0.145±0.055
(.006±.002)
73
109
72
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
0˚~8˚
INDEX
144
37
"A"
LEAD No.
1
36
0.50(.020)
0.22±0.05
(.009±.002)
0.08(.003)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.10±0.10
(.004±.004)
(Stand off)
0.25(.010)
M
©2003-2008 FUJITSU MICROELECTRONICS LIMITED F144019S-c-4-7
C
(Mounting height)
2003 FUJITSU LIMITED F144019S-c-4-6
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
7
第 1 章 概要
1.4
端子配列図
MB91310 の端末配列を示します。
■ 端子配列図
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
DCKO
VOB1
VOB2
VDDE
VDDI
VSS
R2
R1
R0
G2
G1
G0
B2
B1
B0
UHP
UHM
UDP
UDM
VDDE
VDDI
X1B
VSS
X0B
P74
P73
P72
P71
P70
ICD3 *
ICD2 *
ICD1 *
ICD0 *
ICS2 *
ICS1 *
ICS0 *
図 1.4-1 端子配列図
DOCKI
FH
VSYNC
HSYNC
VGS
CPO
VSS
VDDI(PLL)
VDDR(2.5V)
VREF(1.1V)
VRO(2.7KΩ)
RCOMP(0.1µF)
ROUT
VSSR
VDDG(2.5V)
GCOMP(0.1µF)
GOUT
VSSG
VDDB(2.5V)
BCOMP(0.1µF)
BOUT
VSSB
AVCC
AVRH
AVSS/AVRL
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
AN8
AN9
P00/SCL0
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
TOP VIEW
LQFP-144
MB91FV310A
MB91F312
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
IBREAK *
ICLK *
TRST *
VSS
VDDI
VDDE
NMI
P65/INT3
P64/INT2
P63/INT1
P62/INT0
P61
P60/ATRG
P57/TRG3
P56/TRG2
P55/TRG1
P54/TRG0
P53/TMI3
P52/TMI2
P51/TMI1
P50/TMI0
MD3
MD2
MD1
MD0
P47/PPG3
P46/PPG2
P45/PPG1
P44/PPG0
X1A
VSS
X0A
VDDI
VDDE
P43/TMO3
P42/TMO2
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
44
43
42
41
40
39
38
37
P41/TMO1
P40/TMO0
P36/RIN
P35/TO2
P34/TO1
P33/TO0
P32/SCK4/TIN2
P31/SO4/TIN1
P30/SI4/TIN0
P25/SCK3
P24/SO3
P23/SI3
P22/SCK2
P21/SO2
P20/SI2
P17/SCK1
P16/SO1
P15/SI1
P14/SCK0
P13/SO0
P12/SI0
P11/SDA4
P10/SDA3
P07/SCL4
P06/SCL3
P05/SDA2
P04/SCL2
INIT
X1
VSS
X0
VDDI
VDDE
P03/SDA1
P02/SCL1
P01/SDA0
*: MB91FV310A における TRST, ICS2 ∼ ICS0, ICD3 ∼ ICD0, ICLK, IBREAK の各端子
は MB91F312A ではオープン端子ですので接続しないでください。
8
第 1 章 概要
端子機能一覧表
1.5
MB91310 の端子機能の一覧を示します。
■ 端子機能一覧
表 1.5-1 に端子機能の一覧を示します。
表 1.5-1 端子機能一覧表 (1 / 6)
Pin
No.
Pin Name
I/O circuit
type
Function
1
DOCKI
D
ドットクロック入力
2
FH
D
水平同期出力
3
VSYNC
D
垂直同期入力
4
HSYNC
D
水平同期入力
5
VGS
-
ガードバンドグランド
6
CPO
K
チャージポンプ出力
7
VSS
-
ドットクロック PLL グランド
8
VDDI(PLL)
-
ドットクロック PLL 電源
9
VDDR(2.5V)
-
R 用 D/A 電源
10
VREF(1.1V)
K
電圧リファレンス入力
11
VRO(2.7kΩ)
K
抵抗接続端子
12
RCOMP(0.1µF)
K
容量接続端子
13
ROUT
K
R 出力 ( アナログ )
14
VSSR
-
R 用 D/A グランド
15
VDDG(2.5V)
-
G 用 D/A 電源
16
GCOMP(0.1µF)
K
容量接続端子
17
GOUT
K
G 出力 ( アナログ )
18
VSSG
-
G 用 D/A グランド
19
VDDB(2.5V)
-
B 用 D/A 電源
20
BCOMP(0.1µF)
K
容量接続端子
21
BOUT
K
B 出力 ( アナログ )
22
VSSB
-
B 用 D/A グランド
23
AVCC
-
A/D 電源
24
AVRH
-
A/D 基準電源
25
AVSS
-
A/D グランド
26
AN0
E
アナログ入力
27
AN1
E
アナログ入力
28
AN2
E
アナログ入力
29
AN3
E
アナログ入力
30
AN4
E
アナログ入力
31
AN5
E
アナログ入力
9
第 1 章 概要
表 1.5-1 端子機能一覧表 (2 / 6)
Pin
No.
Pin Name
I/O circuit
type
32
AN6
E
アナログ入力
33
AN7
E
アナログ入力
34
AN8
E
アナログ入力
35
AN9
E
アナログ入力
36
P00
C
汎用ポートです。
SCL0
37
P01
I2C クロック端子
C
SDA0
38
P02
39
P03
汎用ポートです。
I2C データ端子
C
SCL1
汎用ポートです。
I2C クロック端子
C
SDA1
汎用ポートです。
I2C データ端子
40
VDDE
-
3.3V 電源
41
VDDI(PLL)
-
2.5V 電源
42
X0
A
10MHz 発振端子
43
VSS
-
グランド
44
X1
A
10MHz 発振端子
45
INIT
B
イニシャル ( リセット ) 端子
46
P04
C
汎用ポートです。
SCL2
47
P05
I2C クロック端子
C
SDA2
48
P06
49
P07
N
P10
N
P11
N
P12
N
P13
C
P14
SCK0
汎用ポートです。
UART0 シリアル入力
C
SO0
54
汎用ポートです。
I2C データ端子
SI0
53
汎用ポートです。
I2C データ端子
SDA4
52
汎用ポートです。
I2C クロック端子
SDA3
51
汎用ポートです。
I2C クロック端子
SCL4
50
汎用ポートです。
I2C データ端子
SCL3
10
Function
汎用ポートです。
UART0 シリアル出力
C
汎用ポートです。
UART0 クロック入出力
第 1 章 概要
表 1.5-1 端子機能一覧表 (3 / 6)
Pin
No.
55
Pin Name
P15
I/O circuit
type
C
SI1
56
P16
P17
C
P20
C
P21
C
P22
C
P23
C
P24
C
P25
C
65
66
67
P30
C
C
UART4 シリアル入力
TIN0
リロードタイマ 0 トリガ入力
P31
C
UART4 シリアル出力
TIN1
リロードタイマ 1 トリガ入力
P32
C
汎用ポートです。
SCK4
UART4 クロック入出力
TIN2
リロードタイマ 2 トリガ入力
P33
C
P34
P35
P36
P40
TMO0
汎用ポートです。
リロードタイマ 0 出力
C
汎用ポートです。
リロードタイマ 1 出力
C
汎用ポートです。
リロードタイマ 2 出力
C
RIN
71
汎用ポートです。
SO4
TO2
70
汎用ポートです。
SI4
TO1
69
汎用ポートです。
UART3 クロック入出力
TO0
68
汎用ポートです。
UART3 シリアル出力
SCK3
64
汎用ポートです。
UART3 シリアル入力
SO3
63
汎用ポートです。
UART2 クロック入出力
SI3
62
汎用ポートです。
UART2 シリアル出力
SCK2
61
汎用ポートです。
UART2 シリアル入力
SO2
60
汎用ポートです。
UART1 クロック入出力
SI2
59
汎用ポートです。
UART1 シリアル出力
SCK1
58
汎用ポートです。
UART1 シリアル入力
SO1
57
Function
汎用ポートです。
PWC 入力
C
汎用ポートです。
多機能タイマ 0 出力
11
第 1 章 概要
表 1.5-1 端子機能一覧表 (4 / 6)
Pin
No.
72
Pin Name
P41
I/O circuit
type
C
TMO1
73
P42
P43
C
汎用ポートです。
多機能タイマ 2 出力
C
TMO3
汎用ポートです。
多機能タイマ 3 出力
75
VDDE
-
3.3V 電源
76
VDDI
-
2.5V 電源
77
X0A
A
32kHz 発振端子
78
VSS
-
グランド
79
X1A
A
32kHz 発振端子
80
P44
C
汎用ポートです。
PPG0
81
P45
PPG0 出力
C
PPG1
82
P46
83
P47
汎用ポートです。
PPG1 出力
C
PPG2
汎用ポートです。
PPG2 出力
C
PPG3
汎用ポートです。
PPG3 出力
84
MD0
F
モード端子
85
MD1
F
モード端子
86
MD2
F
モード端子
87
MD3
F
モード端子 ( グランド )
88
P50
C
汎用ポートです。
TMI0
89
P51
多機能タイマ 0 入力
C
TMI1
90
P52
91
P53
C
P54
C
P55
C
P56
TRG2
汎用ポートです
PPG0 トリガ入力
C
TRG1
94
汎用ポートです。
多機能タイマ 3 入力
TRG0
93
汎用ポートです。
多機能タイマ 2 入力
TMI3
92
汎用ポートです。
多機能タイマ 1 入力
TMI2
12
汎用ポートです。
多機能タイマ 1 出力
TMO2
74
Function
汎用ポートです
PPG1 トリガ入力
C
汎用ポートです
PPG2 トリガ入力
第 1 章 概要
表 1.5-1 端子機能一覧表 (5 / 6)
Pin
No.
95
Pin Name
P57
I/O circuit
type
C
TRG3
96
P60
Function
汎用ポートです
PPG3 トリガ入力
C
ATRG
汎用ポートです
A/D 変換トリガ入力
97
P61
C
汎用ポートです
98
P62
J
汎用ポートです
INT0
99
P63
外部割込み入力 0
J
INT1
100
P64
外部割込み入力 1
J
INT2
101
P65
汎用ポートです
汎用ポートです
外部割込み入力 2
J
INT3
汎用ポートです
外部割込み入力 3
102
NMI
G
NMI 入力
103
VDDE
-
3.3V 電源
104
VDDI
-
2.5V 電源
105
VSS
-
グランド
106
TRST
B
DSU ツールリセット (MB91F312A ではオープン端子で
すのでほかと接続しないでください )
107
ICLK
C
DSU クロック (MB91F312A ではオープン端子ですので
ほかと接続しないでください )
108
IBREAK
L
DSU ブレーク (MB91F312A ではオープン端子ですので
ほかと接続しないでください )
109
ICS0
M
DSU ステータス (MB91F312A ではオープン端子ですの
でほかと接続しないでください )
110
ICS1
M
DSU ステータス (MB91F312A ではオープン端子ですの
でほかと接続しないでください )
111
ICS2
M
DSU ステータス (MB91F312A ではオープン端子ですの
でほかと接続しないでください )
112
ICD0
H
DSU データ (MB91F312A ではオープン端子ですのでほ
かと接続しないでください )
113
ICD1
H
DSU データ (MB91F312A ではオープン端子ですのでほ
かと接続しないでください )
114
ICD2
H
DSU データ (MB91F312A ではオープン端子ですのでほ
かと接続しないでください )
115
ICD3
H
DSU データ (MB91F312A ではオープン端子ですのでほ
かと接続しないでください )
116
P70
I
汎用ポートです
117
P71
C
汎用ポートです
118
P72
C
汎用ポートです
13
第 1 章 概要
表 1.5-1 端子機能一覧表 (6 / 6)
Pin
No.
Pin Name
I/O circuit
type
Function
119
P73
C
汎用ポートです
120
P74
C
汎用ポートです
121
X0B
A
48MHz 発振端子
122
VSS
-
グランド
123
X1B
A
48MHz 発振端子
124
VDDI
-
2.5V 電源
125
VDDE
-
3.3V 電源
126
UDM
127
UDP
128
UHM
129
UHP
130
B0
D
RGB デジタル出力
131
B1
D
RGB デジタル出力
132
B2
D
RGB デジタル出力
133
G0
D
RGB デジタル出力
134
G1
D
RGB デジタル出力
135
G2
D
RGB デジタル出力
136
R0
D
RGB デジタル出力
137
R1
D
RGB デジタル出力
138
R2
D
RGB デジタル出力
139
VSS
-
グランド
140
VDDI
-
2.5V 電源
141
VDDE
-
3.3V 電源
142
VOB2
D
半透明色期間出力
143
VOB1
D
OSD 表示期間出力
144
DCKO
D
ドットクロック出力
14
USB-Function
USB
USB-Function
USB-Host
USB
USB-Host
第 1 章 概要
1.6
入出力回路形式
MB91310 の入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 に MB91310 の入出力回路形式を示します。
表 1.6-1 入出力回路形式 (1 / 5)
分類
A
回路形式
備考
• 発振回路
X1
クロック入力
X0
スタンバイ制御
B
• CMOS ヒステリシス入力
プルアップ抵抗付き
ディジタル入力
C
ディジタル出力
• CMOS レベル出力
CMOS レベルヒステリシス
入力
スタンバイ制御あり
ディジタル出力
ディジタル入力
スタンバイ制御
15
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 5)
分類
回路形式
備考
D
2.5V
ディジタル出力
• 2.5VCMOS レベル出力
CMOS レベルヒステリシス
入力
スタンバイ制御あり
ディジタル出力
ディジタル入力
スタンバイ制御
E
• アナログ入力スイッチ付き
アナログ入力
制御
F
• CMOS レベル入力
スタンバイ制御なし
ディジタル入力
16
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 5)
分類
回路形式
備考
G
• CMOS レベルヒステリシス
入力
スタンバイ制御なし
ディジタル入力
H
ディジタル出力
• CMOS レベル出力
ヒステリシス入力
スタンバイ制御あり
プルダウン抵抗付き
ディジタル出力
ディジタル入力
スタンバイ制御
I
ディジタル出力
• CMOS レベル出力
ヒステリシス入力
スタンバイ制御あり
プルアップ抵抗付き
ディジタル出力
ディジタル入力
スタンバイ制御
17
第 1 章 概要
表 1.6-1 入出力回路形式 (4 / 5)
分類
回路形式
備考
J
ディジタル出力
• CMOS レベル出力
CMOS レベルヒステリシス
入力
スタンバイ制御なし
ディジタル出力
ディジタル入力
K
• アナログ端子
L
• CMOS ヒステリシス入力
プルダウン抵抗付き
ディジタル入力
M
• CMOS レベル出力
オープンドレイン
制御
ディジタル出力
18
第 1 章 概要
表 1.6-1 入出力回路形式 (5 / 5)
分類
回路形式
備考
N
オープンドレイン
制御
• I2C 用 2 ポート
CMOS ヒステリシス入力
CMOS 出力
ストップ制御付き
ディジタル出力
ディジタル入力
制御
ディジタル入力
オープンドレイン
制御
ディジタル出力
19
第 1 章 概要
20
第2章
デバイスの取扱いについて
この章では , MB91310 シリーズの取扱い上の注意
について説明します。
2.1 デバイスの取扱いについて
21
第 2 章 デバイスの取扱いについて
2.1
デバイスの取扱いについて
この節では , ラッチアップ防止 , および端子処理について説明します。
■ ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VDD より高い電圧や VSS より低い電圧を印加し
た場合 , または , VDD ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現
象を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊
に至ることがありますので使用に際しては最大定格を超えることのないよう十分に注
意してください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたは , プルダウンなどの処理をしてください。
■ 電源端子について
VDD・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた
めにデバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低減・
グラウンドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を遵
守などのために , 必ずそれらすべてを外部で電源およびグラウンドに接続してくださ
い。また , 電流供給源からできるかぎり低インピーダンスで本デバイスの VDD, VSS に
接続するように配慮してください。
さらに , 本デバイスの近くで , VDD と VSS の間に 0.1 µF 程度のセラミックコンデンサ
をバイパスコンデンサとして接続することをお勧めします。
■ 水晶発振回路について
X0, X1 端子の近辺のノイズは本デバイスの誤動作のもととなります。X0 と X1 および
水晶発振子 ( あるいはセラミック発振子 ) さらにグラウンドへのバイパスコンデンサは
できるかぎり近くに配置するようにプリント板を設計してください。
また , X0, X1 端子の回りをグラウンドで囲むようなプリント板アートワークは安定し
た動作を期待できますので , 強くお勧めします。
■ モード端子 (MD0 ∼ MD3) について
これらの端子は , VDD または VSS に直接つないで使用してください。ノイズにより誤っ
てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と
VDD または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで接
続するようにしてください。
■ ツールリセット端子 (TRST) について
この端子はツールを使用しない場合 , 必ず INIT と同じ信号を入れてください。量産品
におきましても同様な処理をお願いします。
22
第 2 章 デバイスの取扱いについて
■ 電源投入時について
電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子
による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。)
■ 電源投入時の原振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。
■ 電源投入 / 切断時の注意事項
● VDDI( 内部電源 2.5V 系 ) と VDDE( 外部端子電源 3.3V 系 ) の電源投入 / 切断時の注意事項
VDDI( 内部 ) が切断されている条件で VDDE( 外部 ) のみを継続的 (1 分間を目安 ) に印
加することは , LSI の信頼性上の問題がありますので避けてください。
VDDE ( 外部 ) を OFF 状態から ON 状態に復帰させる際には , 電源ノイズなどの影響に
より , 回路の内部状態が保持できない場合があります。
投入時
VDDI( 内部 ) → VDDE( 外部 ) →アナログ→信号
切断時
信号→ アナログ→ VDDE( 外部 ) → VDDI( 内部 )
■ 同期モードのソフトウェアリセットについて
同期モードのソフトウェアリセットを使用するときは , STCR( スタンバイ制御レジス
タ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する
• NMI を使用しない
■ 制限事項
● クロック制御部
INIT への "L" 入力時には , 発振安定待ち時間を確保してください。
● ビットサーチモジュール
BSD0, BSD1, BDSC レジスタはワードアクセスのみです。
● I/O ポート
ポートへのアクセスはバイトアクセスのみです。
23
第 2 章 デバイスの取扱いについて
■ 低消費電力モード
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケン
スを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
stb
#_Val_of_Stby, rl
rl, @r0
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
stb
ldi
stb
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
24
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
第3章
CPU および制御部
この章では , MB91310 の機能を知るために , アー
キテクチャ , 仕様 , 命令などの基本的なことがらに
ついて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 プログラミング・モデル
3.4 データ構造
3.5 ワードアライメント
3.6 メモリマップ
3.7 分岐命令
3.8 EIT( 例外・割込み・トラップ )
3.9 動作モード
3.10 リセット ( デバイス初期化 )
3.11 クロック生成制御
3.12 デバイス状態制御
3.13 時計タイマ
3.14 メイン発振安定待ちタイマ
25
第 3 章 CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4 Gbyte (232 番地 ) あり , CPU はリニアにアクセ
スを行います。
■ メモリマップ
● ダイレクトアドレシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレシング領域とよび , 命令中で直接オペランドのアドレス
を指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下の様に異なります。
0 ∼ 0FFH
• byte data access :
• half word data access : 0 ∼ 1FFH
0 ∼ 3FFH
• word data access :
下図に , 各本品種のメモリ空間を示します。
図 3.1-1 メモリマップ
MB91FV310A
0000 0000H
I/O
ダイレクト
アドレッシング
領域
I/O
I/O
I/Oマップ参照
I/O
0000 0400H
0001 0000H
0003 C000H
0004 0000H
0005 0000H
0005 8000H
0006 0000H
0007 0000H
0007 8000H
0008 0000H
0010 0000H
0018 0000H
0020 0000H
アクセス禁止
アクセス禁止
内蔵RAM
内蔵RAM
USB-HOST(REG)
USB-HOST(RAM)
USB-FUNC
アクセス禁止
OSDC
FlashROM1
512KB
USB-HOST(REG)
USB-HOST(RAM)
USB-FUNC
アクセス禁止
OSDC
FlashROM1
512KB
FlashROM2
512KB
外部領域
FFFF FFFFH
26
MB91F312A
プログラム
フォント
MASKROM2
168KB
外部領域
第 3 章 CPU および制御部
内部アーキテクチャ
3.2
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向け
た高機能命令を導入した , 高性能コアです。
■ 特長
● RISC アーキテクチャの採用
基本命令 : 1 命令 1 サイクル
● 32 ビットアーキテクチャ
汎用レジスタ : 32 ビット× 16 本
● 4GB のリニアなメモリ空間
● 乗算器の搭載
• 32 ビット× 32 ビット乗算 : 5 サイクル
• 16 ビット× 16 ビット乗算 : 3 サイクル
● 割込み処理機能の強化
• 高速応答速度 (6 サイクル )
• 多重割込みのサポート
• レベルマスク機能 (16 レベル )
● I/O 操作用命令の強化
• メモリ - メモリ転送命令
• ビット処理命令
● 高いコード効率
基本命令語長 : 16 ビット
● 低消費電力
スリープモード・ストップモード
● ギア機能
27
第 3 章 CPU および制御部
■ 内部アーキテクチャ
FR の CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造を採用
しています。
32bit ←→ 16bit バスコンバータは 32bit バス (F-BUS) に接続され , CPU と周辺リソース
とのインタフェースを実現します。ハーバード←→プリンストン バスコンバータは
I-BUS, D-BUS 双方に接続され , CPU とバスコントローラとのインタフェースを実現し
ます。
図 3.2-1 内部アーキテクチャ
FR
CPU
Dバス
Iバス
32
Iアドレス
32
ハーバード
外部アドレス
24
Iデータ
32
プリンストン
バス
コンバータ
32
32ビット
アドレス
32
16ビット
データ
32
バスコンバータ
16
Fバス
Rバス
周辺リソース
28
内部I/O
バスコントローラ
外部データ
16
第 3 章 CPU および制御部
● CPU
CPU は 32bit RISC の FR アーキテクチャをコンパクトにインプリメントしたものです。
1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい
ます。パイプラインは以下のステージから構成されています。
• 命令フェッチ (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 命令の速度で行われます。ただし , メモ
リウエイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
● 32bit ←→ 16bit バスコンバータ
32bit 幅で高速アクセスされる F-BUS と , 16bit 幅でアクセスされる R-BUS とのインタ
フェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から R-BUS に対し 32bit 幅のアクセスがあった場合 , このバスコンバータがそれ
を 2 回の 16bit 幅アクセスに変換してアクセスします。内蔵周辺回路の一部にはアクセ
ス幅に関して制限があります。
● ハーバード←→プリンストン バスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
29
第 3 章 CPU および制御部
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスを制御します。この働きにより , 外部へのバスアク
セス順位が常に最適化されます。
■ 命令概要
FR は , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算とビット
操作およびダイレクトアドレッシング命令をサポートしています。命令セットの一覧
は「付録 H 命令一覧」を参照してください。各命令は 16 ビット長 ( 一部命令は 32, 48
ビット長 ) ですので , 優れたメモリ使用効率を持ちます。
命令セットは以下の機能グループに分けられます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) とシフト命令 ( 論理シフト , 算術演算シフト )
があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や , ア
ドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令は , すべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算し
ます。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・ディクリメント付き
レジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化できます。分岐命令の詳細については後述し
ます。
● 論理演算とビット操作
論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行えます。またビット操作命令はメモリ ( および I/O) の内容を
直接操作できます。メモリアドレッシングは一般的なレジスタ間接です。
30
第 3 章 CPU および制御部
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行えます。一部の命令についてはレジスタイ
ンクリメント・ディクリメント付きレジスタ間接のメモリアドレッシングも可能です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また
, 高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
31
第 3 章 CPU および制御部
3.3
プログラミング・モデル
この節では , プログラミングモデルの詳細について説明します。
■ 基本プログラミングモデル
図 3.3-1 基本プログラミングモデル
32
[
R0
]
XXXX XXXX
H
H
R1
R12
R13
A
C
R14
F
P
XXXX XXXX
R15
S
P
0000 0000 H
PC
PS
TBR
RP
SSP
USP
MDH
MDL
32
ILM
SCR CCR
第 3 章 CPU および制御部
■ レジスタ
● 汎用レジスタ
図 3.3-2 汎用レジスタ
32
[
]
R0
XXXX XXXX
H
H
R1
R12
R13
A
C
R14
F
P
XXXX XXXX
R15
S
P
0000 0000
H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ
モリアクセスのポインタとして使用されます。
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
R13: 仮想アキュムレータ
R14: フレームポインタ
R15: スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) となり
ます。
● PS (Program Status)
プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパートに分か
れています。
図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
31
20
16
ILM
10 8 7
SCR
0
CCR
33
第 3 章 CPU および制御部
● CCR (Condition Code Register)
bit
7
6
5
4
3
2
1
0
[初期値]
-
-
S
I
N
Z
V
C
--00XXXX B
[bit5] スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にしてください。
[bit4] 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内容
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御されます。
リセットにより "0" にクリアされます。
[bit3] ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
34
第 3 章 CPU および制御部
[bit2] ゼロフラグ
演算結果が 0 であったかどうかを示します。
値
内容
0
演算結果が 0 以外の値であったことを示します。
1
演算結果が 0 であったことを示します。
リセットによる初期状態は不定です。
[bit1] オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[bit0] キャリフラグ
演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示しま
す。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
35
第 3 章 CPU および制御部
● SCR (System Condition code Register)
bit 10
9
8
[初期値]
D0
T
XX0B
D1
[bit10, bit9] ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中に , 変更してはいけません。
ステップ除算実行途中に他の処理を行う場合は , PS レジスタの値を退避・復帰するこ
とによりステップ除算の再開が保証されます。
リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[bit8] ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みが全て割込み禁止となります。
リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用時 ,
ユーザプログラム中では使用できません。
● ILM
bit
20
19
ILM4 ILM3
18
17
16
ILM2
ILM1
ILM0
[初期値]
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。
元の値が 16 ∼ 31 の時
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると ,
( 指定した値 +16) という値が転送されます。
元の値が 0 ∼ 15 の時
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15(01111B) に初期化されます。
36
第 3 章 CPU および制御部
● PC (Program Counter)
bit 31
PC
0 [初期値]
XXXXXXXXH
[bit31 ∼ bit0]
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可能性
があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があり
ます。
リセットによる初期値は不定です。
● TBR (Table Base Register)
bit 31
TBR
0 [初期値]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
● RP (Return Pointer)
bit 31
RP
0 [初期値]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
● SSP (System Stack Pointer)
bit 31
SSP
0 [初期値]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
37
第 3 章 CPU および制御部
● USP (User Stack Pointer)
bit 31
0 [初期値]
USP
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令では使用できません。
● 乗除算レジスタ (Multiply & Divide register)
bit 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 …… 商
38
第 3 章 CPU および制御部
データ構造
3.4
MB91310 のデータ配置には , 次の 2 つがあります。
• ビットオーダリング
• バイトオーダリング
■ ビットオーダリング
FR ファミリでは, ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.4-1 ビットオーダリング
bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSB
LSB
■ バイトオーダリング
FR ファミリでは, バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.4-2 バイトオーダリング
MSB
LSB
0
bit 31
15
23
7
10101010 11001100 11111111 00010001
メモリ
bit
7
0
n番地
10101010
(n+1)番地
11001100
(n+2)番地
11111111
(n+3)番地
00010001
39
第 3 章 CPU および制御部
3.5
ワードアライメント
命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデー
タ幅で異なります。
■ プログラムアクセス
FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。
PC の bit0 は , 命令の実行に伴う PC の更新時に , "0" に設定されます。
"1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで
す。
ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置かなくては
なりません。
奇数アドレス例外はありません。
■ データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下の様に強制的な アライ
ンメントがアドレスに対して施されます。
word access :
アドレスは , 4 の倍数 ( 最下位 2bit は強制的に 00)
half word access :
アドレスは , 2 の倍数 ( 最下位 bit は強制的に 0)
byte access :
─
ワードおよびハーフワードデータアクセス時に, 一部のビットが強制的に0にされるの
は , 実効アドレスの計算結果に対してです。例えば , @(R13, Ri) のアドレシングモード
の場合 , 加算前のレジスタは ( たとえ最下位ビットが 1 であっても ) そのまま計算に使
用され , 加算結果の下位ビットがマスクされます。計算前のレジスタがマスクされる
わけではありません。
[ 例 ] LD @(R13, R2), R0
R13
00002222H
R2
00000003H
+)
00002225H
00002224H
40
第 3 章 CPU および制御部
3.6
メモリマップ
この節では , MB91310 のメモリマップを示します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.6-1 にメモリマップを示します。
図 3.6-1 メモリマップ
0000 0000H
0000 0100H
0000 0200H
0000 0400H
000F FC00H
000F FFFFH
FFFF FFFFH
● ダイレクトアドレシング領域
アドレス空間の下記の領域は , I/O 用の領域です。この領域は , ダイレクトアドレッシ
ングにより , 命令中で直接オペランドアドレスを指定できます。
ダイレクトアドレス指定可能なアドレス領域の大きさは, データ長ごとに異なります。
• バイトデータ (8 ビット ) :
0 ∼ 0FFH
• ハーフワードデータ (16 ビット ) : 0 ∼ 1FFH
• ワードデータ (32 ビット ) :
0 ∼ 3FFH
● ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT 処理時に使用されるベクタテーブルは , TBR を書き換えることにより任意の アド
レスに配置可能ですが, リセットによる初期化によってこのアドレスに配置されます。
41
第 3 章 CPU および制御部
分岐命令
3.7
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を
指定できます。
■ 遅延スロット付き動作
● 命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
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,
BRA:D
LABEL
MOV
R2,
R3,
R2
;
;
分岐命令
R3
;
遅延スロット …… 分岐の前に 実行される
@R4
;
分岐先
...
LABEL :
ST
条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体的な説明をします。
42
第 3 章 CPU および制御部
(1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を
更新しても影響を受けません。
[例]
LDI:32
#Label,
JMP:D
@R0
LDI:8
#0,
R0
R0
;
Label に分岐
;
分岐先アドレスには影響を与えない。
...
(2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響
を受けません。
[例]
RET:D
MOV
R8,
RP
;
これより前に設定された RP の示すアドレス
へ分岐
;
リターン動作には影響を与えない。
...
(3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
BC:D
ANDCCR
R0
;
フラグ変化
Overflow
;
上記の命令の実行結果により分岐
#0
;
このフラグ更新は上記分岐命令では参照しな
い。
...
(4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により
更新された内容が読み出されます。
[例]
CALL:D
Label
MOV
RP,
R0
;
RP を更新して分岐
;
上記 CALL:D の実行結果の RP を転送
...
43
第 3 章 CPU および制御部
● 制限事項
(1) 遅延スロットに置ける命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
•
1 サイクル命令
•
分岐命令ではないこと
•
順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または
「b」または「c」または「d」と記載された命令です。
(2) ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
(3) 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理
しません。
(4) 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと
き , 未定義命令は NOP 命令として動作します。
■ 遅延スロットなし動作
● 命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
● 動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分
岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1,
R2
;
BRA
LABEL
;
分岐命令 ( 遅延スロットなし )
MOV
R2,
R3
;
実行されない
R3,
@R4
;
分岐先
...
LABEL :
44
ST
第 3 章 CPU および制御部
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れられないために NOP を明記した遅延スロット付き分
岐命令に比べ , 命令コード効率を上げられます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させられます。
45
第 3 章 CPU および制御部
3.8
EIT( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
しほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt), ト
ラップ (Trap) の総称です。
■ EIT( 例外・割込み・トラップ )
例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
割込みとは実行中のコンテキストに無関係に発生する事象です。イベント要因は , ハー
ドウェアです。
トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ 特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 次のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
• RETI 命令
46
第 3 章 CPU および制御部
3.8.1
割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ 割込みレベル
各レベルの割り当ては , 以下の通りです。
表 3.8-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
0
( システム予約 )
…
…
…
…
…
…
00011
3
( システム予約 )
00100
4
┌ INTE 命令
┤
└ ステップトレーストラップ
00101
5
( システム予約 )
…
…
…
…
…
…
01110
14
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
16
割込み
10001
17
割込み
…
…
…
…
…
…
11110
30
割込み
11111
31
─
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムによ
り ILM に設定できません。
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
47
第 3 章 CPU および制御部
■ I フラグ
割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 として設けら
れています。
値
内容
0
割込み禁止。
INT 命令実行時 "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
割込み許可。
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ ILM
割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値 +16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。
注意事項
設定するには STILM 命令を使用してください。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.8-1 )
が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき
はマスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
48
第 3 章 CPU および制御部
3.8.2
ICR(Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ ICR ビット構成
bit
7
6
5
-
-
-
4
3
2
1
0
ICR4 ICR3 ICR2 ICR1 ICR0
R
R/W R/W R/W R/W
初期値 ---11111B
[bit4]ICR4
ICR4 は , 常に "1" です。
[bit3 ∼ bit0]ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位4ビットです。リード・ライト可能です。
bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定できます。
■ ICR マッピング
表 3.8-2 割込み要因と割込み制御レジスタ , 割込みベクタ
対応する割込みベクタ
割込み要因
番号
割込み制御レジスタ
Address
16 進
10 進
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
ICR01
00000441H
11H
17
TBR + 3B8H
IRQ02
ICR02
00000442H
12H
18
TBR + 3B4H
...
...
...
...
...
...
...
...
...
...
...
...
IRQ45
ICR45
0000046DH
3DH
61
TBR + 308H
IRQ46
ICR46
0000046EH
3EH
62
TBR + 304H
IRQ47
ICR47
0000046FH
3FH
63
TBR + 300H
TBR 初期値 : 000F FC00H
注意事項
「第 11 章 割込みコントローラ」を参照してください。
49
第 3 章 CPU および制御部
3.8.3
SSP(System Stack Pointer)
EIT の受理および復帰動作時のデータ退避・復活用スタックを示すポインタとして
使用されます。
■ SSP(System Stack Pointer)
bit 31
0[
SSP
]
00000000H
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
■ 割込みスタック
SSP により示される領域で , PC および PS の値が退避・復活されます。割込み後は SSP
の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。
図 3.8-1 割込みスタック
[
]
SSP
80000000H
7FFFFFFCH
7FFFFFF8H
50
[
]
80000000H
[
SSP
80000000H
7FFFFFFCH
7FFFFFF8H
]
7FFFFFF8H
PS
PC
第 3 章 CPU および制御部
3.8.4
TBR (Table Base Register)
EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
■ TBR (Table Base Register)
bit 31
0[
TBR
]
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は 000FFC00H です。
■ EIT ベクタテーブル
TBR の示すアドレスから 1KB の領域が , EIT 用ベクタ領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr = TBR + vctofs
= TBR + (3FC H − 4 × vct)
vctadr: ベクタアドレス
vctofs: ベクタオフセット
vct
: ベクタ番号
加算結果の下位 2bit は常に "00" として扱われます。
000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。なおアーキテクチャ上のベク
タテーブルを表 3.8-3 に示します。
51
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (1 / 3)
割込み要因
割込み番号
割込みレベ
ル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
リセット *1
0
00
−
3FCH
000FFFFCH
モードベクタ *1
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
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 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
52
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (2 / 3)
割込み要因
割込み番号
割込みレベ
ル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
マスク可能要因 *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
マスク可能要因 *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
53
第 3 章 CPU および制御部
表 3.8-3 ベクタテーブル (3 / 3)
割込み要因
割込み番号
割込みレベ
ル
オフセット
TBR デフォルト
のアドレス
10 進
16 進
システム予約
67
43
−
2F0H
000FFEF0H
システム予約
68
44
−
2ECH
000FFEECH
システム予約
69
45
−
2E8H
000FFEE8H
システム予約
70
46
−
2E4H
000FFEE4H
システム予約
71
47
−
2E0H
000FFEE0H
システム予約
72
48
−
2DCH
000FFEDCH
システム予約
73
49
−
2D8H
000FFED8H
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
INT 命令で使用
80
|
255
50
|
FF
−
2BCH
|
00H
000FFEBCH
|
000FFC00H
*1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス
000FFFFCH, 000FFFF8H が使用されます。
*2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは
「付録 B 割込みベクタ」を参照してください。
54
第 3 章 CPU および制御部
3.8.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理
し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返
します。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は ,
次の 2 つの要素により決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
EIT 要因受理の優先度は , 表 3.8-4 のようになっています。
表 3.8-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 をデータアクセスによるブレークに使用していま
す)
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。
55
第 3 章 CPU および制御部
表 3.8-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1: ほかの要因は破棄されます。
*2: INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生しま
す。INTE による要因は無視されます。
[例]
図 3.8-2 多重 EIT 処理
56
第 3 章 CPU および制御部
3.8.6
EIT の動作
この項では , EIT の動作について説明します。
■ EIT の動作
以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すもの
とします。
また , 「次の命令のアドレス」とは , EIT を検出した命令が下記のようになっているこ
とを意味します。
• LDI:32 のとき …… PC+6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき …… PC+4
• その他の命令 のとき …… PC+2
■ ユーザ割込み・NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
● 割込み要求受理の可否判定
1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を
保持するものが選択されます。
比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する
値が , NMI についてはあらかじめ定められた定数が使用されます。
2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持
つ割込み要求が選択されます。
3. 割込みレベル ≧ レベルマスク値 のとき , 割込み要求はマスクされ受理されない。
割込みレベル < レベルマスク値 のとき , 4 へ。
4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み
要求はマスクされ , 受理されません。I フラグが "1" ならば 5 へ。
選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5 へ。
5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。
注意事項
〔動作〕における ( ) はレジスタの指すアドレスを表します。
57
第 3 章 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 処理シーケンス
に遷移します。
■ 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 の発生はありません。
58
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレイクします。
● ステップトレーストラップ検出の条件
• T フラグ = 1
• 遅延分岐命令ではないとき。
• INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。
以上の条件が成立すると , 命令動作の切れ目でブレイクします。
● 動作
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. SSP − 4
→ SSP
2. PS
→ (SSP)
3. SSP − 4
→ SSP
4. PC
→ (SSP)
5. "0"
→ S フラグ
6. (TBR+3C4H) → PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
59
第 3 章 CPU および制御部
■ コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
● 動作
1. 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" の状態で実行する必要があります。
■ 遅延スロットの注意事項
分岐命令の遅延スロットには , EIT に関して制約があります。
「3.7 分岐命令」を参照してください。
60
第 3 章 CPU および制御部
3.9
動作モード
動作モードには , バスモードとアクセスモードがあります。この節では , それぞれの
モードについて説明します。
■ 動作モード
16
8
● バスモード
バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し
ます。
● アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR7(Area Configuration Register) 内の DBW1 , DBW0
ビットで指定します。
■ バスモード
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 へのアクセスを禁止にして全て
のアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と
して機能します。
61
第 3 章 CPU および制御部
■ モード設定
FR シリーズでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作モー
ドの設定を行います。
● モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。
モード端子
MD2, MD1, MD0
モード名
リセットベクタ
アクセス領域
000
内ROMモードベクタ
内部
001
外ROMモードベクタ
外部
備考
バス幅はモードレジスタで設定
ただし , 表に示した設定以外は禁止とします。
● モードレジスタ (MODR)
モードベクタフェッチ (「3.10.3 リセットシーケンス」」を参照してください。) によっ
てモードレジスタに書き込むデータを , モードデータとよびます。
モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード
で動作します。
モードレジスタは , 全てのリセット要因で設定されます。また , ユーザプログラムから
は書き込むことはできません。
注意事項
従来 FR シリーズのモードレジスタのアドレス (0000_07FFH) には何も存在しません。
エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令
を使用してください。16/32 ビット長の転送命令では書き込めません。
図 3.9-1 レジスタ詳細説明
bit
MODR
000FFFF8H
7
6
5
4
3
2
1
0
初期値
0
0
0
0
0
ROMA
WTH1
WTH0
XXXXXXXXB
動作モード設定ビット
[bit7 ∼ bit3] 予約ビット
「必ず "00000" を設定してください。"00000" 以外の値を設定した時の動作は保障でき
ません。」
62
第 3 章 CPU および制御部
[bit2] ROMA( 内部 ROM イネーブルビット )
内部 F-bus RAM, F-bus ROM 領域を有効にするかどうかを設定します。
ROMA
0
機能
外 ROM モード
備考
内蔵 F-bus RAM は有効 , 内部 ROM 領域 (80000H ∼
100000H) が外部領域になります。
1
内 ROM モード
内蔵 F-bus RAM , F-bus ROM が有効になります。
[bit1, bit0] WTH1, WTH0( バス幅指定ビット )
外バスモード時のバス幅指定の設定を行います。
外バスモード時 , この値が ACR(CS0 領域 ) の DBW ビットに設定されます。
WTH1
WTH0
0
0
8 ビットバス幅
0
1
16 ビットバス幅
1
0
―
設定禁止
1
1
シングルチップモード
シングルチップモード
機能
備考
外バスモード
63
第 3 章 CPU および制御部
3.10
リセット ( デバイス初期化 )
本品種の初期化であるリセット動作について解説します。
■ 概要
リセット要因が発生すると , デバイスは全てのプログラムおよびハードウェア動作を
停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。 このリセット状態から動作開始にいたる一連の動作をリセット
シーケンスとよびます。
64
第 3 章 CPU および制御部
3.10.1
リセットレベル
本品種のリセット動作は , 2 種類のレベルに分けられ , それぞれ発生要因および初期
化の内容が異なります。 以下 , 各リセットレベルについて解説します。
■ 設定初期化リセット (INIT)
全ての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよびま
す。
設定初期化リセット (INIT) により初期化される主な内容は以下の通りです。
● 設定初期化リセット (INIT) による初期化箇所
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• 内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
• 外部バスの CS0 領域に関するすべての設定
• その他端子状態に関するすべての設定
• 動作初期化リセット (RST) で初期化される全ての箇所
詳細はそれぞれの機能の解説を参照してください。
なお , 電源投入後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は以下の通りです。
● 動作初期化リセット (RST) による初期化箇所
• プログラム動作
• CPU および内部バス
• 周辺回路のレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関する全ての設定
詳細はそれぞれの機能の解説を参照してください。
65
第 3 章 CPU および制御部
3.10.2
リセット要因
本品種における各リセット発生要因と発生するリセットレベルについて解説します。
過去に発生したリセット要因は , RSRR( リセット要因レジスタ ) を読み出すことに
より知ることが可能です。
( 各解説にあるレジスタ , フラグの詳細な説明は ,「 3.11.5 クロック生成制御部のブ
ロックダイヤグラム」, 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し
てください。)
■ NIT 端子入力 ( 設定初期化リセット端子 )
外部端子の INIT 端子は , 設定初期化リセット端子として機能します。
本端子へ"L"レベル入力を行っている間, 設定初期化リセット(INIT)要求が発生します。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR( リセット要因レ
ジスタ ) の bit15:INIT ビットがセットされます。
本端子要求による設定初期化リセット (INIT) は , すべてのリセット要因中で最強のも
のであり , すべての入力・動作・状態よりも優先されます。
なお , 電源投入直後は必ず INIT 端子にて設定初期化リセット (INIT) をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子
による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。)
発生要因 :
外部 INIT 端子への "L" レベル入力
解除要因 :
外部 INIT 端子への "H" レベル入力
発生レベル :
設定初期化リセット (INIT)
対応フラグ :
bit15:INIT
■ STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR( スタンバイ制御レジスタ ) 中の bit4:SRST ビットに "0" が書き込まれると , ソフ
トウェアリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられ動作初期化リセット (RST) が発生するとソフトウェアリセット要
求は解除されます。
ソフトウェアリセット要求による動作初期化リセット(RST) が発生した場合, RSRR( リ
セット要因レジスタ ) 中の bit11:SRST ビットがセットされます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR( タイムベース
カウンタ制御レジスタ ) 中の bit9:SYNCR ビットがセットされている場合 ( 同期リセッ
トモード ), すべてのバスアクセスが停止してからでないと発生しません。
66
第 3 章 CPU および制御部
このため, バスの使用状況によっては動作初期化リセット (RST)が発生するまでに長時
間を要する場合があります。
同期モードのソフトウェアリセットの使用に関しては , TBCR( タイムベースカウンタ
制御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。
発生要因 :
STCR( スタンバイ制御レジスタ ) の bit4:SRST ビットへの "0" が書
き込み
解除要因 :
動作初期化リセット (RST) の発生
発生レベル :
動作初期化リセット (RST)
対応フラグ :
bit11:SRST
■ ウォッチドッグリセット
RSRR( ウォッチドッグタイマ制御レジスタ ) に対し書込みを行うと , ウォッチドッグタ
イマが起動します。その後 , RSRR 中の bit9, bit8:WT1, WT0 ビットにて設定した周期内
に CTBR( タイムベースカウンタクリアレジスタ ) への A5H/5AH 書込みが行われないと ,
ウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられ設定初期化リセット (INIT) が発生するか , または動作初期化リセット (RST) が
発生すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit13:WDOG ビットがセットされます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
発生要因 :
ウォッチドッグタイマの設定周期経過
解除要因 :
設定初期化リセット(INIT)または動作初期化リセット(RST)の発生
発生レベル :
設定初期化リセット (INIT)
対応フラグ :
bit13:WDOG
67
第 3 章 CPU および制御部
3.10.3
リセットシーケンス
リセット要因の消失により , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンスは , リセットレベルによりそれぞれ動作内容が異なります。
以下 , 各リセットレベルにおけるリセットシーケンスの動作内容について解説しま
す。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは以下の動作を順に実行し
ます。
1. 設定初期化リセット (INIT) の解除 , 発振安定待ち状態へ遷移
2. 発振安定待ち時間 (STCR の bit3, bit2:OS1, OS0 にて設定 ) の間 , 動作初期化リセット
(RST) 状態を保持 , 内部クロック停止
3. 動作初期化リセット (RST) 状態 , 内部クロック動作開始
4. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
5. 000FFFF8H 番地より , モードベクタの読出し
6. 000007FDH 番地の MODR( モードレジスタ ) へ , モードベクタの書込み
7. 000FFFFCH 番地より , リセットベクタの読出し
8. PC( プログラムカウンタ ) へ , リセットベクタの書込み
9. PC( プログラムカウンタ ) の示す番地より , プログラム動作開始
■ 動作初期化リセット (RST) 解除シーケンス
動作初期化リセット(RST)要求が解除されると, デバイスは以下の動作を順に実行しま
す。
1. 動作初期化リセット (RST) の解除 , 通常動作状態へ遷移
2. 000FFFF8H 番地より , モードベクタの読出し
3. 000007FDH 番地の MODR( モードレジスタ ) へ , モードベクタの書込み
4. 000FFFFCH 番地より , リセットベクタの読出し
5. PC( プログラムカウンタ ) へ , リセットベクタの書込み
6. PC( プログラムカウンタ ) の示す番地より , プログラム動作開始
68
第 3 章 CPU および制御部
3.10.4
発振安定待ち時間
デバイスの原発振が停止していたかまたはその可能性がある状態から復帰したとき ,
自動的に発振安定待ち状態に遷移します。
本機能により発振開始後の安定していない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , STCR( スタンバイ制御レジスタ ) にて設定された安定
待ち時間の経過を待ちます。
以下 , 発振安定待ち動作の詳細について解説します。
■ 発振安定待ち発生要因
要因を以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
● ストップモードからの復帰時
ストップモードが解除された直後に , 発振安定待ち状態へ遷移します。
ただし , 設定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット
(INIT) 状態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ
遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷
移します。
• 有効な外部割込み要求入力 (NMI 含む ) の発生による復帰時
→ 通常動作状態へ遷移します。
• 設定初期化リセット (INIT) 要求による復帰時
→ 動作初期化リセット (RST) 状態へ遷移します。
• 動作初期化リセット (RST) 要求による復帰時
→ 動作初期化リセット (RST) 状態へ遷移します。
● PLL 選択時の異常状態の発生よりの復帰時
PLL をソースクロックとして動作している時に , PLL 制御に何らかの異常 * が発生した
場合 , PLL ロックタイムの確保のために , 自動的に発振安定待ち時間に遷移します。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更や , PLL 動作許可ビット化けの発生など。
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計時されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタは , いったん初期化された後 , 発振安定待ち時間の計測を開始します。
69
第 3 章 CPU および制御部
STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 ビットにより , 発振安定待ち時
間を 4 種類のうちから選択して設定できます。
いったん選択した設定は , 外部 INIT 端子による設定初期化リセット (INIT) 以外では初
期化されません。 それ以外の , ウォッチドッグリセットによる設定初期化リセット
(INIT) や , 動作初期化リセット (RST) では , リセット発生以前に設定した発振安定待ち
時間が保持されます。
発振安定待ち時間の選択の 4 種類の設定は , それぞれ以下の用途を想定してあります。
• OS1, OS0 = 00 :
発振安定待ち時間なし
( ストップモードで PLL も発振器を停止させない場合 )
• OS1, OS0 = 01 :
PLL ロック待ち時間
( ストップモードで発振器を停止させない場合 )
• OS1, OS0 = 10 :
発振安定待ち時間 ( 中 )
( セラミック振動子等の安定が速い発振子を使用する場合 )
• OS1, OS0 = 11 :
発振安定待ち時間 ( 長 )
( 一般の水晶発振子等を使用する場合 )
なお, 電源投入直後は必ずINIT端子にて設定初期化リセット(INIT)をかけてください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INIT 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください。(INIT 端子
による INIT では , 発振安定待ち時間の設定は最小値に初期化されています。)
70
第 3 章 CPU および制御部
3.10.5
リセット動作モード
動作初期化リセット (RST) には , 通常 ( 非同期 ) リセットモードと同期リセットモー
ドの 2 つのモードがあり , TBCR( タイムベースカウンタ制御レジスタ ) の
bit9:SYNCR ビットによってどちらのモードで動作するかを設定します。
本モード設定は , 設定初期化リセット (INIT) のみで初期化されます。
設定初期化リセット (INIT) は , 常に非同期でリセット動作を行います。
以下 , 各モード動作について解説します。
■ 通常リセット動作
動作初期化リセット (RST) 要求が発生した際に , 即座に動作初期化リセット (RST) 状態
への遷移を行う動作を , 通常リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられると , 内部バスアクセスの動
作状態に関わらず , 即時にリセット (RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点で行われていたバスアクセスについては , その結
果を保証できません。しかし , それら要求を確実に受け付けることが可能です。
TBCR( タイムベースカウンタ制御レジスタ ) の bit9:SYNCR ビットが "0" の時 , 通常リ
セットモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードとなります。
■ 同期リセット動作
動作初期化リセット(RST)要求が発生した際に, 全てのバスアクセスが停止してから動
作初期化リセット (RST) 状態への遷移を行う動作を , 同期リセット動作とよびます。
本モードにおいては , リセット (RST) 要求が受け付けられても , 内部バスアクセスが行
われている間は , リセット (RST) 状態への遷移は行いません。
上記要求が受け付けられると , それにより内部バスに対してスリープ要求が発行され
ます。 各バスが動作を切り上げてスリープ状態に移行すると , 動作初期化リセット
(RST) 状態へ遷移します。
本モードでは , 各状態へ遷移する時点では全てのバスアクセスが停止しているため , 全
てのバスアクセスの結果を保証できます。
しかし , バスアクセスが何らかの理由により停止しない場合 , その間各要求を受け付け
ることができなくなります ( この様な場合でも , 設定初期化リセット (INIT) は即座に有
効となります )。バスアクセスが停止しない要因には以下の物があげられます。
外部拡張バスインタフェースに対し BRQ( バス解放要求 ) が入力され続け , BGRNT( バ
ス解放アクノリッジ ) が有効となっている場合で , 内部バスから新たなバスアクセス要
求が発生している様な場合。
外部拡張バスインタフェースに対し RDY( レディ要求 ) が入力され続け , バスウェイト
が有効となっている場合。また , 以下の場合においては , 最終的には各状態へ遷移しま
すが , 遷移するまでに長時間かかってしまいます。
71
第 3 章 CPU および制御部
注意事項
• DMA コントローラについては , 各要求の受け付けにより転送停止を行いますので , 各
状態への遷移を遅延させることはありません。
• TBCR( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットが "1" の時 , 同期
リセットモードとなります。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
• 同期モードのソフトウェアリセットの使用に関しては , TBCR( タイムベースカウンタ
制御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。
72
第 3 章 CPU および制御部
3.11
クロック生成制御
この節では , クロックの発生とその制御について説明します。
■ 概要
本品種の内部動作クロックは以下の様にして生成されます。
• ソースクロックの選択 : クロックの供給源を選択します。
• ベースクロックの生成 : ソースクロックを 2 分周または PLL 発振させ , 基本クロッ
クを生成します。
• 各内部クロックの生成 : ベースクロックを分周し , 各部に供給する 4 種類の動作ク
ロックを生成します。
以下 , 各クロック生成とその制御について解説します。
( 各解説にあるレジスタ , フラグの詳細な説明は , この「 3.11.5 クロック生成制御部の
ブロックダイヤグラム」, 「 3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し
てください。)
■ ソースクロックの選択
ソースクロックの選択について解説します。
外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生
成した原発振がソースクロックとなります。
外部バスクロックを含む全てのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で
き , 動作中に任意に切り換えて使用することが可能です。
• メインクロック :
X0/X1端子入力から生成し, 高速クロックとして使用することを
想定しています。
• サブクロック :
X0A/X1A 端子入力から生成し , 低速クロックとして使用するこ
とを想定しています。
メイン , サブそれぞれのクロックは , それぞれ独立に制御可能な内蔵メイン PLL, サブ
クロックを用いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックをメイン PLL で逓倍したもの
• サブクロックをそのもの
ソースクロックの選択制御は , CLKR( クロックソース制御レジスタ ) の設定によって
行います。
73
第 3 章 CPU および制御部
3.11.1
PLL 制御
メイン / サブ 2 種類のソースクロックに対応した PLL 発振回路それぞれについて ,
動作 ( 発振 ) 許可・禁止と逓倍率設定を独立に制御することが可能です。
各制御は , CLKR( クロックソース制御レジスタ ) の設定によって行います。 以下 ,
各制御内容について解説します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の
bit10:PLL1EN ビットの設定によって行います。
サブクロック発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の
bit11:PLL2EN ビットの設定によって行います。
PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "00" に初期化され , PLL
の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択でき
ません。
プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設
定しかつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する
と良いでしょう。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります )。ストップモードに移行する際
などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分
周したものに選択し直した後 , PLL を停止させてください。
なお , STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットによ
り , ストップモード中の発振が停止するように設定してある場合 , 対応する PLL はス
トップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要はあ
りません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始し
ます。ストップモード中の発振が停止しないように設定してある場合は , PLL は自動
では停止しません。この場合は , 必要であればストップモード移行前にあらかじめ動
作停止を設定してください。
74
第 3 章 CPU および制御部
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR( クロックソース制御レジスタ ) の bit14 ∼ bit12:PLL1S2,
PLL1S1, PLL1S0 ビットによって設定します。
どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。
● PLL 逓倍率設定
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソー
スクロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタ
イマ割込みを使用すると良いでしょう。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に
切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過
後にソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書き換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間
が経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切
り換えた場合は , プログラム動作は停止いたしません。
75
第 3 章 CPU および制御部
3.11.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります。
(「3.10.4 発振安定待ち時間」参照してください。)
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
以下 , 各種ケースにおける待ち時間について解説します。
■ 電源投入後の待ち時間
電源投入後は, まずメインクロック用発振回路の発振安定待ち時間が必要となります。
発振安定待ち時間の設定は , INIT 端子入力 ( 設定初期化リセット端子 ) により最小値に
初期化されるため , この発振安定待ち時間は , INIT 端子入力へ "L" レベルを入力する時
間により確保します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
INIT 端子入力後の初めの発振安定待ち状態では , 設定時間は最小値に初期化されてい
るため , すぐに本状態は終了し , 動作初期化リセット (RST) 状態へと遷移します。
プログラム動作開始後 , INIT 端子入力以外の要因により設定初期化リセット (INIT) が
発生した場合の解除時には , プログラムにて設定された時間の発振安定待ち時間を内
部的に発生します。
これらの状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
はここでは考慮する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ
う。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ
う。
76
第 3 章 CPU および制御部
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させる設定であった場合 , その発振回路の発振安定待ち時間と使用している PLL の
ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる
前に , あらかじめその発振安定待ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定であった場合は , PLL は自動では動作停止しません。よって , PLL を停止
させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させる前
に , あらかじめ発振安定待ち時間を最小値に設定しておくと良いでしょう。
77
第 3 章 CPU および制御部
3.11.3
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定できます。
以下に , 各内部動作クロックについて解説します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下の様なものがあります。
• CPU
• 命令キャッシュ
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I バス , D バス , X バス , F バス
• DMA コントローラ
• DSU
動作可能な上限周波数は 40 MHz ですので , これを越える周波数になる逓倍率と分周比
の組み合わせは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下の様なものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート ( ポート *, ポート *)
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• フリーランタイマ
• リロードタイマ
• アップダウンカウンタ
• I2C インタフェース
• PPG
動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる逓倍率と分周比
の組み合わせは設定しないでください。
78
第 3 章 CPU および制御部
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下の様なものがあります。
• 外部拡張バスインタフェース
• 外部 CLK 出力
動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる逓倍率と分周比
の組み合わせは設定しないでください。
79
第 3 章 CPU および制御部
3.11.4
クロック分周
各内部動作クロックは , それぞれ独立に , ベースクロックよりの分周比を設定できま
す。 この機能により , 各回路に最適な動作周波数を設定できます。
■ クロック分周
分周比は , DIVR0( 基本クロック分周設定レジスタ 0) および DIVR1( 基本クロック分周
設定レジスタ 1) にて設定します。各レジスタには各クロックに対応する 4 ビットずつ
の設定ビットがあり , ( レジスタ設定値 +1) がそのクロックのベースクロックに対する
分周比となります。分周比設定が奇数であっても , 常に Duty は 50 となります。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット(INIT)の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外は全て分周比が 1 となりますので , ソースク
ロックを高速なものに変更する前に必ず分周比の設定を行ってください。
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場
合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設
定との順序を間違えないように特に留意願います )。
80
第 3 章 CPU および制御部
クロック生成制御部のブロックダイヤグラム
3.11.5
以下にクロック生成制御部のブロックダイヤグラムを示します。図中のレジスタの
詳細な解説は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照してくだ
さい。
■ ブロックダイヤグラム
図 3.11-1 ブロックダイヤグラム
周辺停止制御レジスタ
[ クロック生成部 ]
DIVR0,DIVR1レジスタ
R
|
B
U
S
CPU クロック分周
セレクタ
タ
外部バスクロック分周
セレクタ
メイン発振
安定待ちタイマ
(サブ選択時用)
メイン発振
1/2
X0A
X1A
外部バスクロック
セレクタ
PLL
発振回路
各周辺クロック
CLKR レジスタ
X0
X1
周辺停止制御
セレクタ
停止制御
周辺クロック分周
CPU クロック
サブ発振
発振回路
時計タイマ
[ ストップ・スリープ制御部]
内部割込み
STCR レジスタ
ストップ状態
状態遷移
制御回路
内部リセット
スリープ状態
リセット発生
F/F
リセット発生
F/F
内部リセット(RST)
内部リセット(INIT)
[ リセット要因回路]
INIT端 子
RSRR レジスタ
[ ウォッチドッグ制御部]
ウォッチドッグ F/F
タイムベースカウンタ
カウンタクロック
CTBR レジスタ
セレクタ
タ
TBCR レジスタ
割込み許可
オーバフロー検出 F/F
タイムベースタイマ
割込み要求
81
第 3 章 CPU および制御部
3.11.6
クロック生成制御部のレジスタ詳細説明
この項では , クロック発生制御部で使用するレジスタの機能について説明します。
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
bit
アドレス:00000480H
初期値 (INIT端子)
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
INIT
-
WDOG
-
SRST
-
WT1
WT0
R
1
R
0
R
0
*
x
*
x
R
0
x
R
0
*
x
R
0
x
*
*
R
0
0
0
R/W
0
0
0
*
x
「*」…要因により変化します。
「×」…初期化されません。
直前に発生したリセットの要因の保持 , およびウォッチドックタイマの周期設定およ
び起動制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは , 累積され , 複数
のフラグがセットされることになります。
本レジスタに書込むと , ウォッチドッグタイマが起動されます。それ以降は , リセット
(RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[bit15]: INIT (INITialize reset occured)
INIT 端子入力によるリセット (INIT) の発生の有無を示します。
0
INIT 端子入力による INIT は発生していません。
1
INIT 端子入力による INIT が発生しました。
• Read 直後に "0" に初期化されます。
• Read 可能で , Write はビット値に影響を与えません。
[bit14]: (reserved bit)
[bit13]: WDOG (WatchDOG reset occured)
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
• INIT 端子入力によるリセット (INIT), または Read 直後に "0" に初期化されます。
82
第 3 章 CPU および制御部
• Read 可能で , Write はビット値に影響を与えません。
[bit12]: (reserved bit)
[bit11]: SRST (Software ReSeT occured)
STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセット (RST)
の発生の有無を示します。
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
• INIT 端子入力によるリセット (INIT), または Read 直後に "0" に初期化されます。
• Read 可能で , Write はビット値に影響を与えません。
[bit10]: (reserved bit)
[bit9, bit8]: WT1, WT0 (Watchdog interval Time select)
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により, ウォッチドッグタイマの周期を下表に示す4種類のうち
から選択します。
WT1
WT0
ウォッチドッグリセットの発生
を抑止するために最低限必要な
CTBR への書込み間隔
CTBR への最終 5AH 書込みから
ウォッチドッグリセットが発生
するまでの時間
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
(φ はシステムベースクロックの周期 )
• リセット (RST) により "00" に初期化されます。
• Read可能で, Writeはリセット(RST)後1回のみ有効で, それ以降のWriteは無効です。
83
第 3 章 CPU および制御部
■ STCR : スタンバイ制御レジスタ
bit
7
6
5
4
3
2
1
0
アドレス:00000481H STOP SLEEP HIZ SRST OS1 OS0 OSCD2 OSCD1
R/W R/W R/W R/W
R/W R/W R/W R/W
初期値 (INIT端子)
0
0
1
1
0
0
1
1
初期値 (HSTX)*
初期値 (INIT)
初期値 (RST)
0
0
0
0
0
0
1
1
x
1
1
1
1
x
x
1
x
x
1
1
x
1
1
x
*: INIT 端子による初期化と同時の場合のみ。それ以外は INIT 時と同じ。
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制
御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8: SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケン
スを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
stb
#_Val_of_Stby, rl
rl, @r0
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
stb
ldi
stb
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
84
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
第 3 章 CPU および制御部
[bit7]: STOP (STOP mode)
ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を書
き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
0
ストップモードへの遷移は行いません。( 初期値 )
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• Read および Write が可能です。
[bit6]: SLEEP (SLEEP mode)
スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書き
込んだ場合は , bit7:STOP ビットの方が優先となり , ストップモードへ遷移します。
0
スリープモードへの遷移は行いません。( 初期値 )
1
スリープモードへ遷移します。
• リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
• Read および Write が可能です。
[bit5]: HIZ (HIZ mode)
ストップモード時の端子状態を制御します。
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。( 初期値 )
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
[bit4]: SRST (Software ReSeT)
ソフトウェアリセット (RST) の発行を指示します。
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません。( 初期値 )
• リセット (RST) により "1" に初期化されます。
• Read および Write が可能です。Read 値は , 常に "1" となります。
同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制
御レジスタ ) の bit9:SYNCR ビットの制限事項を参照してください。
85
第 3 章 CPU および制御部
[bit3, bit2]: OS1, OS0 (Oscillation Stabilization time select)
リセット (INIT) 後 , およびストップモード復帰後などにおける , 発振安定待ち時間を設
定します。
本ビットに書き込む値により, 発振安定待ち時間を下表に示す4種類のうちから選択し
ます。
OS1
OS0
発振安定待ち時間
原発振 10MHz の場合
0
0
φ × 21 ( 初期値 )
0.4 [µs]
0
1
φ × 211
410 [µs]
1
0
φ × 216
13.1 [ms]
1
1
φ × 222
839 [ms]
(φ はシステムベースクロックの周期 , この場合は原発振入力の 2 倍の周期 )
• INIT 端子入力によるリセット (INIT) により "00" に初期化されます。
ただし , INIT 端子入力と HSTX 端子入力によるリセット (INIT) が同時に有効であっ
た場合 , "11" に初期化されます。
• Read および Write が可能です。
[bit1]: OSCD2 (OSCillation Disable mode for XIN2)
サブ発振入力 (XIN2) における , ストップモード時の発振停止を制御します。
0
ストップモード中もサブ発振は停止しません。
1
ストップモード中はサブ発振を停止します。( 初期値 )
• リセット (INIT) により "1" に初期化されます。
• Read および Write が可能です。
[bit0]: OSCD1 (OSCillation Disable mode for XIN1)
メイン発振入力 (XIN1) における , ストップモード時の発振停止を制御します。
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します。( 初期値 )
• リセット (INIT) により "1" に初期化されます。
• Read および Write が可能です。
86
第 3 章 CPU および制御部
■ TBCR : タイムベースカウンタ制御レジスタ
bit
15
アドレス: 00000482H TBIF
初期値 (INIT)
初期値 (RST)
0
0
R/W
14
13
12
11
TBIE TBC2 TBC1 TBC0
0
0
R/W
x
x
R/W
x
x
R/W
x
x
R/W
10
9
-
SYNCR
x
x
R/W
0
x
R/W
8
0
x
R/W
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , および
リセット動作のオプション機能の設定を行います。
[bit15]: TBIF (Time Base timer Interrupt Flag)
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0 ビッ
トにて設定 ) を経過したことを示します。
bit14:TBIE ビットにより割込み発生が許可 (TBIE= 1 ) されている時に , 本ビットが "1"
になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過 ( タイムベースカウンタ出力の
立下りエッジ検出 )
• リセット (RST) により "0" に初期化されます。
• Read/Write 可能です。ただし Write は "0" のみ可能で , "1" を Write してもビット値
は変化しません。
また , リードモディファイライト系命令での Read 値は , 常に "1" となります。
87
第 3 章 CPU および制御部
[bit14]: TBIE (Time Base timer Interrupt Enable)
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御します。
本ビットが "1" の時に , bit15:TBIF ビットが "1" になると , タイムベースタイマ割込み
要求が発生します。
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
• リセット (RST) により "0" に初期化されます。
• Read および Write が可能です。
[bit13 ∼ bit11]: TBC2, TBC1, TBC0 (Time Base timer Counting time select)
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定しま
す。
本ビットに書き込む値により, インターバル時間を下表に示す8種類のうちから選択し
ます。
TBC2
TBC1
TBC0
タイマインターバル時間
原発振 10MHz および PLL
が 4 逓倍の場合
0
0
0
φ × 211
51.2 [µs]
0
0
1
φ × 212
102 [µs]
0
1
0
φ × 213
205 [µs]
0
1
1
φ × 222
105 [ms]
1
0
0
φ × 223
210 [ms]
1
0
1
φ × 224
419 [ms]
1
1
0
φ × 225
839 [ms]
1
1
1
φ × 226
1678 [ms]
(φ はシステムベースクロックの周期 )
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• Read および Write が可能です。
[bit10]: (reserved bit)
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
88
第 3 章 CPU および制御部
[bit9]: SYNCR (SYNChronous Reset enable)
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求が発生した際に , 即座にリセット (RST) を行う通常リ
セット動作を行うか, 全てのバスアクセスが停止してから動作初期化リセット(RST)を
行う同期リセット動作を行うかを選択します。
0
通常リセット動作 ( 初期値 )
1
同期リセット動作
・リセット (INIT) により "0" に初期化されます。
・Read および Write が可能です。
注意事項
同期モードのソフトウェアリセットを使用するときは , STCR( スタンバイ制御レジスタ )
の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する
• NMI を使用しない
[bit8]: SYNCS (SYNChronous Standby enable)
同期スタンバイ動作許可ビットです。
スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 , STCR
レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバイ動作を
行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読み出すことに
よってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択します。
0
通常スタンバイ動作 ( 初期値 )
1
同期スタンバイ動作
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
89
第 3 章 CPU および制御部
■ CTBR : タイムベースカウンタクリアレジスタ
bit
アドレス: 00000483H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
x
x
W
x
x
W
x
x
W
x
x
W
x
x
W
x
x
W
x
x
W
x
x
W
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書き込みの直後にタイム
ベースカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の
時間は制限がありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再
度 {A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので,これらの条件が発生するとウォッチドッグリセットは自動的に延期され
ます。ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合では , ウォッ
チドッグリセットは延期されませんので , 長時間外部バスをホールドする場合は , ス
リープモードにしてからホールド要求 (BRQ) を入力してください。
本レジスタの読出し値は不定です。
注意事項
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。
■ CLKR : クロックソース制御レジスタ
bit
15
14
13
12
11
10
9
8
アドレス: 00000484H PLL2S0 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0
R/W R/W R/W R/W R/W R/W R/W R/W
初期値 (INIT)
0
0
0
0
0
0
0
0
初期値 (RST)
x
x
x
x
x
x
x
x
システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを 3 種類 ( ※本品種では 2 種類 ) のうちから選択しま
す。また , メイン・サブ 2 系統の PLL それぞれの動作許可および逓倍率の選択を制御
します。
[bit15]: PLL2S0 (PLL2 ratio Select 0)
サブクロックの逓倍率選択ビットです。
サブクロックの逓倍率を , 2 種類のうちから選択します。
90
第 3 章 CPU および制御部
本品種では , 本ビットへの書込みは常に "0" を書き込んでください。
0
逓倍率設定 1 ( 初期値 )
1
逓倍率設定 1
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
[bit14 ∼ bit12]: PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2-0)
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を , 8 種類 ( 本品種では 4 種類 ) のうちから選択します。
本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えを禁止し
ます。
動作可能な上限周波数は 40 MHz ですので , これを越える設定をしないでください。
PLL1S2
PLL1S1
PLL1S0
メインPLL逓倍率
0
0
0
× 1 ( 等倍 )
原発振10[MHz]の場合, φ=100[ns] (10[MHz])
0
0
1
× 2 (2 逓倍 )
原発振 10[MHz] の場合 , φ = 50[ns] (20[MHz])
0
1
0
× 3 (3 逓倍 )
原発振 10[MHz] の場合 , φ = 33[ns] (30[MHz])
0
1
1
× 4 (4 逓倍 )
原発振 10[MHz] の場合 , φ = 25[ns] (40[MHz])
1
0
0
× 5 (5 逓倍 )
本品種では未サポート
1
0
1
× 6 (6 逓倍 )
本品種では未サポート
1
1
0
× 7 (7 逓倍 )
本品種では未サポート
1
1
1
× 8 (8 逓倍 )
本品種では未サポート
(φ はシステムベースクロックの周期 )
• リセット (INIT) により "000" に初期化されます。
• Read および Write が可能です。
[bit11]: PLL2EN (PLL2 ENable)
サブクロックの動作許可ビットです。
本ビットは , クロックソースとしてサブクロックを選択している間は書き換えを禁止
します。
また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択することを禁止
します (bit9, bit8:CLKS1, CLKS0 ビットの設定による )。
STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であってもサ
ブクロックは停止します。ストップモードよりの復帰後は動作許可に戻ります。
91
第 3 章 CPU および制御部
0
サブクロック停止 ( 初期値 )
1
サブクロック動作許可
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
[bit10]: PLL1EN (PLL1 ENable)
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えを禁止し
ます。
また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択することを禁止
します (bit9, bit8:CLKS1, CLKS0 ビットの設定による )。
STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であってもメ
イン PLL は停止します。ストップモードよりの復帰後は動作許可に戻ります。
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
[bit9, bit8]: CLKS1, CLKS0 (CLocK source Select)
FR コアで使用するクロックソースを設定します。
本ビットに書き込む値により, クロックソースを下表に示す3種類のうちから選択しま
す。
なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更できません。
変更不可能な組み合わせ
変更可能な組み合わせ
"00" → "11"
"00" → "01" または "10"
"01" → "10"
"01" → "11" または "00"
"10" → "01" または "11"
"10" → "00"
"11" → "00" または "10"
"11" → "01"
このため , INIT 後の状態からサブクロックを選択したい場合は , まず "01" を書き込ん
だ後に , "11" を書き込む様にしてください。
92
第 3 章 CPU および制御部
サブクロックのソースである X0A/X1A よりの原発振入力の 2 分周は選択できません。
CLKS1
CLKS0
クロックソース設定
0
0
X0/X1 よりの原発振入力の 2 分周 ( 初期値 )
0
1
X0/X1 よりの原発振入力の 2 分周
1
0
メイン PLL
1
1
サブクロック
• リセット (INIT) により "00" に初期化されます。
• Read および Write が可能です。
93
第 3 章 CPU および制御部
■ DIVR0: 基本クロック分周設定レジスタ 0
bit
15
14
13
12
11
10
9
8
アドレス: 00000486H
B3
B2
B1
B0
P3
P2
P1
P0
初期値 (INIT)
初期値 (RST)
R/W
0
x
R/W
0
x
R/W
0
x
R/W
0
x
R/W
0
x
R/W
0
x
R/W
1
x
R/W
1
x
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB) と , 周辺回路およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場
合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設
定との順序を間違えないように注意願います )。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[bit15 ∼ bit12]: B3, B2, B1, B0 (clkB divide select 3-0)
CPU クロック (CLKB) クロック分周比設定ビットです。
CPUと内部メモリおよび内部バスのクロック(CLKB)のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに対
する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 40 MHz ですので , これを越える周波数になる分周比は設定し
ないでください。
B3
B2
B1
B0
クロック分周比
クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合
0
0
0
0
φ
40 [MHz] ( 初期値 )
0
0
0
1
φ × 2 (2 分周 )
20 [MHz]
0
0
1
0
φ × 3 (3 分周 )
13.3[MHz]
0
0
1
1
φ × 4 (4 分周 )
10 [MHz]
0
1
0
0
φ × 5 (5 分周 )
8 [MHz]
0
1
0
1
φ × 6 (6 分周 )
6.67[MHz]
0
1
1
0
φ × 7 (7 分周 )
5.71[MHz]
0
1
1
1
φ × 8 (8 分周 )
5 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2.5 [MHz]
(φ はシステムベースクロックの周期 )
• リセット (INIT) により "0000" に初期化されます。
• Read および Write が可能です。
94
第 3 章 CPU および制御部
[bit11 ∼ bit8]: P3, P2, P1, P0 (clkP divide select 3 ∼ 0)
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定します。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベース
クロックに対する分周比(クロック周波数)を下表に示す16種類のうちから選択します。
動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる分周比は設定し
ないでください。
P3
P2
P1
P0
クロック分周比
クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合
0
0
0
0
φ
設定禁止
0
0
0
1
φ × 2 (2 分周 )
20 [MHz]
0
0
1
0
φ × 3 (3 分周 )
13.3[MHz]
0
0
1
1
φ × 4 (4 分周 )
10 [MHz] ( 初期値 )
0
1
0
0
φ × 5 (5 分周 )
8 [MHz]
0
1
0
1
φ × 6 (6 分周 )
6.67[MHz]
0
1
1
0
φ × 7 (7 分周 )
5.71[MHz]
0
1
1
1
φ × 8 (8 分周 )
5 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2.5 [MHz]
(φ はシステムベースクロックの周期 )
• リセット (INIT) により "0011" に初期化されます。
• Read および Write が可能です。
95
第 3 章 CPU および制御部
■ DIVR1: 基本クロック分周設定レジスタ 1
bit
アドレス: 00000487H
初期値 (INIT)
初期値 (RST)
7
6
5
4
3
2
1
0
T3
R/W
0
x
T2
R/W
0
x
T1
R/W
0
x
T0
R/W
0
x
R/W
0
x
R/W
0
x
R/W
0
x
R/W
0
x
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行
います。
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 ,
PLL の逓倍率の設定 , 分周比の設定の組み合わせで , 上限周波数を越える設定をした場
合 , 動作は保証されません。くれぐれもご注意願います ( ソースクロック選択の変更設
定との順序を間違えないように注意願います )。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[bit7 ∼ bit4]: T3, T2, T1, T0 (clkT divide select 3 ∼ 0)
外部バスクロック (CLKT) クロック分周比設定ビットです。
外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 20 MHz ですので , これを越える周波数になる分周比は設定し
ないでください。
T3
T2
T1
T0
クロック分周比
クロック周波数:原発振 10[MHz] および PLL4 逓倍の場合
0
0
0
0
φ
設定禁止
0
0
0
1
φ × 2 (2 分周 )
20 [MHz]
0
0
1
0
φ × 3 (3 分周 )
13.3[MHz]
0
0
1
1
φ × 4 (4 分周 )
10 [MHz]
0
1
0
0
φ × 5 (5 分周 )
8 [MHz]
0
1
0
1
φ × 6 (6 分周 )
6.67[MHz]
0
1
1
0
φ × 7 (7 分周 )
5.71[MHz]
0
1
1
1
φ × 8 (8 分周 )
5 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2.5 [MHz]
(φ はシステムベースクロックの周期 )
• リセット (INIT) により "0000" に初期化されます。
• Read および Write が可能です。
[bit3 ∼ bit0]: (reserved bit)
96
第 3 章 CPU および制御部
■ OSCCR : 発振制御レジスタ
bit
アドレス: 0000048AH
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
R/W
x
x
R/W
x
x
R/W
x
x
R/W
x
x
R/W
x
x
R/W
x
x
R/W
x
x
8
OSCDS1
R/W
0
x
サブクロック動作時のメイン発振を制御するレジスタです。
[bit8]: OSCDS1 (OSCilattion Disable on Sub clock for XIN1)
サブクロック選択中のメイン発振停止ビットです。
クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン発振
を停止します。
本ビットは , メインクロックを選択中は "1" を書くことはできません。
本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に
してメイン発振の安定を待ってからメインクロックに切り替えてください。この時, メ
イン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。
また, 本ビットによってメイン発振を停止させた状態で, INITによってクロックソース
がメインクロックに切り替わった場合もメイン発振安定待ち時間が必要になります。
この時 , STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 の設定がメイン発振安
定待ち時間を満たさない場合 , 復帰後の動作が保証されません。この様な場合は ,
STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発振安定待ち時間両方を
満たした値を設定してください。INIT 端子による INIT 時は , メイン発振が安定するま
で INIT 端子に "L" を入力し続ける必要があります。
発振安定待ちについては , 「3.11.2 発振安定待ち・PLL ロック待ち時間」も参照くだ
さい。
0
サブクロック実行中 , メイン発振を停止しません。( 初期値 )
1
サブクロック実行中 , メイン発振を停止します。
• リセット (INIT) により "0" に初期化されます。
• Read および Write が可能です。
97
第 3 章 CPU および制御部
3.11.7
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について以下に解説します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参
照願います ) の他 , 以下の用途に使用されます。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
以下 , これらの機能について解説します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
ウォッチドッグタイマの起動と周期設定
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR( リセット要因レジス
タ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。この
時 , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットにより
設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみが
有効となり , それ以降の書込みは全て無視されます。
ウォッチドッグリセットの発生延期
いったんウォッチドッグタイマを起動すると , プログラムで定期的に CTBR( タイム
ベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデータを書込む必要
があります。この操作により , ウォッチドッグリセット発生用フラグが初期化され
ます。
ウォッチドッグリセットの発生
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立ち下がりエッジによってセットされます。2 度目の立ち下がりエッ
ジの検出時にフラグがセットされていると , ウォッチドッグリセットとして設定初
期化リセット (INIT) 要求を発生します。
ウォッチドッグタイマの停止
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す
るまでは , ウォッチドッグタイマを停止できません。
動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停
止し , 再度プログラム動作にて起動するまでは , 機能しません。
98
第 3 章 CPU および制御部
•
動作初期化リセット (RST) 状態
•
設定初期化リセット (INIT) 状態
•
発振安定待ちリセット (RST) 状態
ウォッチドッグタイマの一時停止 ( 自動発生延期 )
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には , いった
んウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発
生を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
•
スリープ状態
•
ストップ状態
•
発振安定待ち RUN 状態
•
D バス ( データバス ) に対する DMA 転送中
•
エミュレーションモード
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発
生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など ,
最大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途
に適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立ち下がりエッジを
検出すると , タイムベースタイマ割込み要求を発生します。
タイムベースタイマの起動とインターバル設定
タイムベースタイマは , TBCR( タイムベースカウンタ制御レジスタ ) の bit13 ∼
bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立ち下がりエッ
ジは常に検出されているため , インターバル時間の設定後はまず bit15:TBIF ビット
をクリアしてから , bit14:TBIE ビットを "1" にして割込み要求出力を許可してくだ
さい。
インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込
み要求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま
すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。そうでないと , 割込み許可直後に割込
み要求が発生することもあり得ます。
プログラムによるタイムベースカウンタのクリア
CTBR( タイムベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデー
タを書込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリ
アします。{A5H} 書込みと {5AH} 書込みの間の時間は制限がありませんが , {A5H}
書込みの後に{5AH}以外のデータを書き込むと, 再度{A5H}を書き込まないと{5AH}
を書き込んでもクリア動作は行いません。
99
第 3 章 CPU および制御部
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
セット発生用フラグも初期化され , ウォッチドッグリセットの発生が , いったん延
期されます。
デバイス状態によるタイムベースカウンタのクリア
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク
リアされます。
•
ストップ状態
•
設定初期化リセット (INIT) 状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまうことがあり得ます。そのため , ストップモードを設定する前には , タイム
ベースタイマ割込みを禁止し , タイムベースタイマを使用しない様にしてくださ
い。
それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー
スタイマ割込みは自動的に禁止されます。
■ 時計タイマ
クロックソースの選択や分周設定の影響を受けず, 32kHzのサブクロックに同期してカ
ウントアップする 15 ビットのフリーランタイマです。
サブクロックの安定待ち時間の計時や , サブクロックを用いて一定周期ごとに処理し
たい用途に使用します。
時計タイマはサブクロック動作時にカウントアップを行いますが , STCR( スタンバイ
制御レジスタ ) の bit1:OSCD2 が "1" の設定でストップモードに移行させると時計タイ
マも停止します。ストップモードで停止させたくない場合は , ストップモードに移行さ
せる前に OSCD2 ビットに "0" を設定し , サブクロックを停止させない様にしてくださ
い。
時計タイマを用いてクロックソースをメインクロックからサブクロックに切り替える
場合は , 以下の手順で行います。
• 時計タイマを発振安定待ち時間に設定しておきます。必要であれば 0 クリアも行っ
てください。
• CLKR( クロックソースレジスタ ) の bit11:PLL2EN を "1" にしてサブクロックの発振
を開始します。
• 時計タイマを用いてサブクロックが安定するまで待ちます。この時 , 時 計割込みを
使用して発振安定待ち時間を確保してください。
• サブクロック安定後 , CLKR( クロックソースレジスタ ) の bit9, bit8:CLKS1, CLKS0
にてメインクロックからサブクロックに切り替えます。
安定を待たずサブクロックに切り替えると , 不安定なクロックが供給され , その後の動
作は保証されませんので, 必ず安定を待った後にサブクロックに切り替えてください。
時計タイマの詳細については ,「 3.13 時計タイマ」を参照ください。
100
第 3 章 CPU および制御部
■ メイン発振安定待ちタイマ ( サブクロック選択時用 )
クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン
トアップする 26 ビットのフリーランタイマです。
サブクロック動作中のメイン発振安定待ち時間の計時に使用します。
サブクロックで動作中 , OSCCR( 発振制御レジスタ ) の bit8:OSCDS1 にて , メイン発振
の制御が行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タイマ
を用いて発振安定待ち時間を計時します。
メインクロックを停止させたサブクロック動作状態からメインクロックに切り替える
際は , 下記の手順で行います。
• メイン発振安定待ちタイマをクリアします。
• OSCCR( 発振制御レジスタ ) の bit8:OSCDS1 を "0" にしてメイン発振を開始します。
• メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。
• メインクロック安定後 , CLKR( クロックソースレジスタ ) の bit9, bit8:CLKS1, CLKS0
にてサブクロックからメインクロックに切り替えます。
安定を待たずメインクロックに切り替えると , 不安定なクロックが供給され , その後の
動作は保証されませんので , 必ず安定を待った後にメインクロックに切り替えてくだ
さい。
メイン発振安定待ちタイマの詳細については , 「 3.14 メイン発振安定待ちタイマ」を
参照ください。
101
第 3 章 CPU および制御部
3.12
デバイス状態制御
本品種の各種状態とその制御について解説します。
■ デバイス状態と各遷移
本品種のデバイスの状態遷移を下記に示します。
図 3.12-1 デバイス状態の遷移
1
2
3
4
5
6
7
8
9
10
11
12
13
INIT端子=0(INIT)
INIT端子=1(INIT解除)
発振安定待ち終了
リセット(RST) 解除
ソフトウェアリセット(RST)
スリープ(命令書込み)
ストップ(命令書込み)
割込み
クロックを必要としない外部割込み
メイン→サブ切換え(命令書込み)
サブ→メイン切換え(命令書込み)
ウォッチドックリセット(INIT)
サブスリープ(命令書込み)
遷移要求の優先順位
パワーオン
最強
↓
↓
↓
↓
最弱
1
設定初期化リセット(INIT)
発振安定待ち終了
動作初期化リセット(RST)
割込み要求
ストップ
スリープ
設定初期化
(INIT)
2
メインクロックモード
1
メインストップ
メイン発振安定待ち
リセット
3
9
1
発振安定待ち RUN
プログラムリセット
(RST)
3
1
1
7
メインスリープ
5
4
12
メイン RUN
6
1
1
8
10
サブクロックモード
1
11
8
サブスリープ
12
サブ RUN
13
1
1
3
発振安定待ち RUN
1
7
5
4
プログラムリセット
(RST)
1
9
サブストップ
*2
(時計状態 )
補足
*1)クロックソースをメイン←→サブに切り換える場合は,RUN状態にて,切換え後のクロックが安定供給さ
れている状態にて,クロックソースレジスタ(CLKR)-bit1:bit0(CLKS1,CLKS0)ビットを切り換えてください。
*2)時計タイマ以外を停止(時計状態)させるには,サブRUN状態にてスタンバイ制御レジスタ(STCR)
bit1:OSCD2を0に設定した状態でストップモードに移行してください。
本品種のデバイスの動作状態には以下のものがあります。
102
第 3 章 CPU および制御部
■ RUN 状態 ( 通常動作 )
プログラム実行状態です。
全ての内部クロックが供給され , 全ての回路が動作可能な状態です。
ただし , 16bit 周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバス
クロックのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常リ
セットモードの場合と一部要求に対する状態遷移動作が異なります。詳細は , 「3.10.5
リセット動作モード」を参照願います。
■ スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。命令キャッシュ
は停止し , 各種内蔵メモリおよび内部 / 外部バスは DMA コントローラが要求しない限
り停止状態です。
有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移しま
す。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移し
ます。
■ ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックは全て停止し , 発振回路および PLL は
設定により停止させることが可能です。
また , 設定により , 外部端子を一律ハイインピーダンスにすることが可能です。( 一部
端子を除く )
特定の ( クロックを必要としない ) 有効な割込み要求の発生により , 発振安定待ち RUN
状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
■ 発振安定待ち RUN 状態
デバイス停止状態です。ストップ状態よりの復帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて
の内部回路が停止します。内部クロックは全て停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態等での外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
103
第 3 章 CPU および制御部
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
■ 発振安定待ちリセット (RST) 状態
デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態よりの復
帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて
の内部回路が停止します。内部クロックは全て停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態等での外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し
ます。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
■ 動作初期化リセット (RST) 状態
プログラム初期化状態です。動作初期化リセット(RST)要求の受付, または発振安定待
ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。全ての内部クロックと発振回路および動作許可されてい
た PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
■ 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付 , またはハードウェア
スタンバイ状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
全て初期化されます。発振回路は動作しますが , PLL は動作を停止します。全ての内
部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外では
動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により , 本状態は解除され , 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
104
第 3 章 CPU および制御部
■ 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
【最強】 設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち
RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
【最弱】 スリープモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
105
第 3 章 CPU および制御部
3.12.1
低消費電力モード
本品種の状態のうち , 各低消費電力モードとその使用方法について解説します。
■ 低消費電力モード
本品種の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて解説します。
● スリープモード
STCR( スタンバイ制御レジスタ ) の bit6:SLEEP ビットに "1" を書き込むと , スリープ
モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生
するまでは , スリープ状態を維持します。
STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん
だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
スリープ状態については , 次のページを参照願います。
スリープモードへの移行
スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン
スを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
stb
#_Val_of_Stby, rl
rl, @r0
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
stb
ldi
stb
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
106
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
第 3 章 CPU および制御部
ストップモードへの移行
ストップモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン
スを必ず使用してください。
/* STCR ライト */
ldi
#_STCR, R0
; STCR レジスタ (0481H)
ldi
stb
#_Val_of_Stby, rl
rl, @r0
; Val_of_Stby は , STCR へのライトデータ
; STCR へのライト
/* STBR ライト */
ldi
#_CTBR, r2
; CTBR レジスタ (0483H)
ldi
stb
ldi
stb
#0xA5, rl
rl, @r2
#0xA5, rl
rl, @r2
; クリアコマンド (1)
; CTBR への A5 ライト
; クリアコマンド (2)
; CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0, rl
; STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
@r0, rl
; STCR ダミーリード
; タイミング調整用の NOP × 5
スリープ状態で停止する回路
•
CPU のプログラム実行
•
データキャッシュ
•
ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
•
各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
•
内部 / 外部バス (DMA 転送が発生した場合は動作します。)
スリープ状態で停止しない回路
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
• DSU
107
第 3 章 CPU および制御部
スリープ状態からの復帰要因
• 有効な割込み要求の発生
割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR
に割込みレベル
として割込み禁止 (1FH) を設定してください。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
注意事項
各要因の優先順位については ,「 3.12 デバイス状態制御」の「■ 各状態遷移要求の優先
順位」を参照願います。
通常スタンバイ動作と同期スタンバイ動作
TBCR( タイムベースカウンタ制御レジスタ ) の bit8:SYNCS ビットに "1" を設定し
てある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書
込みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出す
ことによってスリープ状態へ遷移します。
SYNCS ビットに "0" を設定してある場合 , 通常スタンバイ動作となり , SLEEP ビッ
トへの書込みのみでスリープ状態へ遷移します。
通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の
分周比が大きく設定してあると , 実際に SLEEP ビットへの書込みが行われるまでに
多くの命令を実行してしまいます。このため , SLEEP ビットへの書込み命令の後 ,
最低でも {5+(CPU クロックの分周比 / 周辺クロックの分周比 )} 命令以上の NOP 命
令を配置しなけれれば , それ以降の命令がスリープ状態への遷移前に実行されてし
まいます。
同期スタンバイ動作時は , 実際に SLEEP ビットへの書込みが行われた後 , STCR レ
ジスタの読み出しが完了するまではスリープ状態へ遷移しません。STCR レジスタ
の読出し値が CPU に格納されるまでは , CPU がバスを使用しているためです。こ
のため , CPU クロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる
設定においても , SLEEP ビットへの書込み命令と STCR レジスタの読出し命令の後
に , 2 命令のみ NOP 命令を配置するのみで , それ以降の命令がスリープ状態への遷
移前に実行されることを防ぐことができます。
● ストップモード
STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むと , ストップモー
ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する
までは , ストップ状態を維持します。
108
第 3 章 CPU および制御部
STCR( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビット両方に "1" を書き込
んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
ストップ状態については , 「 3.12 デバイス状態制御」の「■ ストップ状態」も参照願
います。
ストップ状態で停止する回路
• 停止するよう設定された発振回路
STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してある時 , ス
トップ状態中のサブクロック用発振回路を停止状態にします。
STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してある時 , ス
トップ状態中のメインクロック用発振回路を停止状態にします。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL
STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してある時 ,
CLKR( クロックソース制御レジスタ ) の bit11:PLL2EN ビットに "1" が設定してあっ
ても , ストップ状態中のサブクロック用 PLL を停止状態にします。
STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してある時 ,
CLKR( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあっ
ても , ストップ状態中のメインクロック用 PLL を停止状態にします。
• 下記のストップ状態で停止しない回路を除くすべての内部回路
ストップ状態で停止しない回路
• 停止するよう設定されていない発振回路
STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してある時 , ス
トップ状態中のサブクロック用発振回路は停止しません。
STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してある時 , ス
トップ状態中のメインクロック用発振回路は停止しません。
• 動作許可されていて ,
PLL
かつ停止するよう設定されていない発振回路に接続された
STCR( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してある時 ,
CLKR( クロックソース制御レジスタ ) の bit11:PLL2EN ビットに "1" が設定してある
と , ストップ状態中のサブクロック用 PLL は停止しません。
STCR( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してある時 ,
CLKR( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してある
と , ストップ状態中のメインクロック用 PLL は停止しません。
ストップ状態での端子のハイインピーダンス制御
STCR( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストッ
プ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端
子は , 「付録 G 端子状態一覧」を参照願います。
STCR( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストッ
プ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は , 「付録
G 端子状態一覧」を参照願います。
109
第 3 章 CPU および制御部
ストップ状態からの復帰要因
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生
外部割込み入力端子 (INTn 端子 ), メイン発振中のメイン発振安定待ちタイマ割込み ,
および , サブ発振中の時計割込みのみが有効です。
割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, ストップモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , ストップモードを解除したくない場合は , 該当する ICR
に割込みレベル
として割込み禁止 (1FH) を設定してください。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット (INIT)
状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット (RST)
状態へ遷移します。
注意事項
各要因の優先順位については , 「 3.12 デバイス状態制御」の「■ 各状態遷移要求の優先
順位」を参照願います。
ストップモード時のクロックソース選択
ストップモードを設定する前に , メインクロックの 2 分周をソースクロックとする
ようあらかじめ選択しておいてください。詳細は , 「3.11.1 PLL 制御」を参照願い
ます。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
通常スタンバイ動作と同期スタンバイ動作
TBCR( タイムベースカウンタ制御レジスタ ) の bit8:SYNCS ビットに "1" を設定し
てある場合 , 同期スタンバイ動作が許可されます。この場合 , STOP ビットへの書込
みのみではストップ状態へは遷移しません。その後 , STCR レジスタを読み出すこ
とによってストップ状態へ遷移します。
SYNCS ビットに "0" を設定してある場合 , 通常スタンバイ動作となり , STOP ビッ
トへの書込みのみでストップ状態へ遷移します。
通常スタンバイ動作時は , CPU クロック (CLKB) に対して周辺クロック (CLKP) の
分周比が大きく設定してあると , 実際に STOP ビットへの書込みが行われるまでに
多くの命令を実行してしまいます。このため , STOP ビットへの書込み命令の後 , 最
低でも {5+(CPU クロックの分周比 / 周辺クロックの分周比 )} 命令以上の NOP 命令
を配置しなけれれば , それ以降の命令がストップ状態への遷移前に実行されてしま
います。
同期スタンバイ動作時は , 実際に STOP ビットへの書込みが行われた後 , STCR レジ
スタの読み出しが完了するまではストップ状態へ遷移しません。STCR レジスタの
読出し値が CPU に格納されるまでは , CPU がバスを使用しているためです。この
ため , CPU クロック (CLKB) と周辺クロック (CLKP) の分周比の関係がいかなる設
定においても , STOP ビットへの書込み命令と STCR レジスタの読出し命令の後に ,
2 命令のみ NOP 命令を配置するのみで , それ以降の命令がストップ状態への遷移前
に実行されることを防ぐことができます。
110
第 3 章 CPU および制御部
時計タイマ
3.13
時計タイマはサブクロックに同期してカウントアップする 15 ビットのフリーランカ
ウンタで , 一定の時間間隔で繰返し割込みを発生するインターバルタイマ機能があ
ります。 インターバル時間は次の 4 種類の中から選択できます。
■ 時計タイマ
表 3.13-1 時計タイマのタイマインターバル時間
サブクロック周期
インターバル時間
1/FCL ( 約 30.5 µs)
210/FCL (31.25ms)
( 注意事項 )FCL はサブクロック発
213/FCL (0.25s)
振周波数
214/FCL (0.50s)
215/FCL (1.00s)
■ ブロック図
図 3.13-1 ブロックダイヤグラム
時計タイマ用
カウンタ
F CL
0
1
2
1
2
3
2
2
2
3
2
4
4
2
5
5
2
6
6
2
7
7
2
8
8
9 10 11 12 13 14
9
2 2 1 0 211 2 1 2 2 1 3 2 1 4 2 1 5
(31.25ms)
インター
バル
タイマ
セレクタ
(0.25s)
(0.5s)
(1.0s)
リセット
(INIT)
カウンタ
クリア回路
時計割込み
時計タイマ
制御レジスタ(WPCR)
WIF
WIE
-
-
-
WS1
WS0
WCL
F CL : サブクロック原発振
( )内の数字は,サブクロック原発振32.768KHzの場合の周期
111
第 3 章 CPU および制御部
● 時計タイマ
サブクロック原発振をカウントクロックとする 15 ビットのアップカウンタです。
● カウンタクリア回路
WPCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし
ます。
● インターバルタイマセレクタ
時計タイマ用カウンタの 4 種類の分周出力からインターバルタイマ用の 1 種類を選択
する回路で , 選択した分周出力の立下がりエッジが割込み要因になります。
● 時計タイマ制御レジスタ (WPCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い
ます。
■ レジスタ説明
bit 15
WPCR
0000 048C H WIF
R/W
14
WIE
R/W
13
12
11
10
WS1
R/W
9
WS0
R/W
8
WCL
W
初期値
INIT時 RST時
00H
xxH
アクセス
R/W
[bit15]: WIF (Watch timer Interrupt Flag)
時計割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立ち下がりエッジによって "1" にセット
されます。
このビットと割込み要求許可ビットが "1" のとき , 時計割込み要求を出力します。
0
時計割込みの要求なし ( 初期値 )
1
時計割込みの要求あり
• リセット (INIT) で "0" に初期化されます。
• Read および Write が可能です。ただし Write は "0" のみ可能で , "1" を Write しても
ビット値は変化しません。
• また , リードモディファイライト系命令での Read 値では常に "1" となります。
[bit14]: WIE (Watch timer Interrupt Enable)
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットと時計割込み要
求フラグビットが "1" のとき , 時計割込み要求を出力します。
0
時計割込み要求出力禁止 ( 初期値 )
1
時計割込み要求出力許可
• リセット (INIT) で "0" に初期化されます。
• Read および Write が可能です。
112
第 3 章 CPU および制御部
[bit13 ∼ bit11] (reserved bit)
予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 )
読出し値は不定です。
[bit10, bit9]: WS1, WS0 (Watch timer intervel Select 1, 0)
インターバルタイマの周期を選択します。
時計タイマ用カウンタの出力ビットの下記 4 種類のうちから選択します。
WS1
WS0
インターバルタイマ周期 (FCL=32.768kHz 時 )
0
0
210 / FCL (31.25ms) ( 初期値 )
0
1
213 / FCL (0.25s)
1
0
214 / FCL (0.50s)
1
1
215 / FCL (1.00s)
• リセット (INIT) で "00" に初期化されます。
• Read および Write が可能です。
[bit8]: WCL (Watch timer CLear)
"0" 書込みで時計タイマを 0 にクリアします。
Write は "0" のみ可能で , "1" を Write しても動作に影響を与えません。
• Read 値は常に "1" となります。
113
第 3 章 CPU および制御部
■ 時計割込み
時計タイマ用カウンタがサブクロックでカウント動作し , 設定したインターバル時間
が経過すると , 時計割込み要求フラグ (WIF) を "1" にセットします。そのとき , 割込み
要求許可ビットを許可 (WIE= 1 ) していると CPU へ割込み要求が発生します。ただし ,
サブクロックが発振停止している時 (「■ インターバルタイマ機能の動作」を参照 ) で
はカウント動作も停止しますので , 時計割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる
とセットされます。
注意事項
リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1, WS0 ビットの変
更時は , 必ず WIF, WCL ビットを同時にクリア (WIF=WCL=0) してください。
参考
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , ただちに割込
み要求が発生します。
• カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場
合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
時計タイマ用カウンタはサブクロックが発振中は常にカウントアップをしていますが,
以下の状態時はサブクロック発振が停止するため , カウント動作が停止します。
クロックソースレジスタ CLKR の bit11:PLL2EN が "0" の時。本品種では , リセット
(INIT) 時 , PLL2EN を "0" に初期化しますので , 時計タイマを使用する場合は , PLL2EN
に "1" を書き込んでサブクロックを発振させてください。
ストップモードでサブ発振が停止する設定 ( スタンバイ制御レジスタ STCR の
bit1:OSCD2= 1 ) でストップモードに移行すると , ストップモード中 , カウント動作が停
止します。本品種では , リセット (INIT) 時 OSCD2= 1 に初期化しますので , ストップ
モード中も時計タイマを動かしたい場合は, スタンバイ移行前にOSCD2= 0 を設定して
ください。
カウンタをクリア (WCL= 0 ) すると , "0000H" からカウント動作を行い , "7FFFH" に達
すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン
ターバルタイマ用の分周出力に立ち下がりエッジが発生すると , 時計割込み要求ビッ
ト (WIF) を "1" にセットします。つまり , クリアされた時間を基準にして , 選択された
インターバル時間ごとに時計割込み要求を発生することになります。
114
第 3 章 CPU および制御部
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてメインクロックを選択中にサブクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にサブクロッ
クで動作する本時計タイマを使用します。
メインクロック動作からサブクロックの発振安定待ちを行うには , 次の手順でおこ
なってください。
1. 時計タイマのインターバル時間を 1s(FCL=32.768kHz 時 ) にし , カウンタを "0" にク
リアします。(WS1, WS0= 11 , WCL= 0 書込み ) 発振安定待ち完了後の処理を割込み
で行いたい場合は , 割込みフラグの初期化も行います。(WIF= 0 , WIE= 1 書込み )
2. サブクロックの発振を開始します。(CLKR bit11:PLL2EN= 1 書き込み )
3. プログラムにて , WIF フラグが "1" になるまで待ちます。
4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。メインクロックからサブクロッ
クに切り替える場合も , (4) の WIF=1 の確認を待ってから行ってください。( 発振安
定を待たずにサブクロックへ切り替えると , デバイス全体に不安定なクロックが供
給され , その後の動作は保証されません。)
115
第 3 章 CPU および制御部
■ 時計タイマの動作
時計タイマを起動したとき , サブクロックへの移行時 , サブクロック動作でストップ
モードへ移行時のカウンタ状態を以下に示します。
図 3.13-2 ストップモードへの移行時のカウンタ状態
7FFF
H
カウンタ値
4000 H
サブクロック
発振安定待ち時間
・タイマクリア(WCL=1) ※0 以外の時
・インターバル時間設定 (WS1,WS0=11B)
・サブ発振開始(CLKR:PLL2EN=1)
インターバル時間
割込みルーチンでクリア
WIF
クロックソース
メインクロック
サブクロック
ストップ * 1
クロックモード
RUN
・ インターバル時間を変更 (WS1,WS0=10B)
・ メイン→サブクロック変更
RUN
ストップモード移行命令
*1) STCR:OSCD2=0( ストップ時発振停止しない )設定時
■ 時計タイマ使用時の注意事項
• 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
• サブクロックが発振停止中は時計タイマも停止しますので , 時計割込みも発生しま
せん。時計割込みを使った処理を行う場合は , サブクロックの発振を停止しないで
ください。
• WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ
グセットが優先し , "0" クリアは無効となります。
116
第 3 章 CPU および制御部
メイン発振安定待ちタイマ
3.14
メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23
ビットのフリーランカウンタで , 一定の時間間隔で繰返し割込みを発生するイン
ターバルタイマ機能があります。 本タイマは , サブクロックで動作中に OSCCR( 発
振制御レジスタ ) の bit8:OSCDS1 によってメイン発振を一度止めて再度発振させた
場合に , メインクロックを発振安定待ち時間の確保に使用します。インターバル時
間は次の 3 種類の中から選択できます。
■ 概要
メインクロック周期
インターバル時間
1/FCL ( 約 100ns)
212/FCL (410µs)
( 注意事項 ) FCL はメインク
ロック発振周波数
217/FCL (13.1ms)
223/FCL (839ms)
■ ブロックダイヤグラム
図 3.14-1 ブロックダイヤグラム
メイン発振安定待ち
タイマ用カウンタ
F CL
0
1
2
3
4
5
6
7
8
11
16
22
21 22 23 24 25 26 27 28 29
21 2
21 7
22 3
(410µs)
インター
バルタイマ
セレクタ
リセット
(INIT)
メイン発振安定待ち
タイマ割込み
メイン発振安定待ち
タイマ制御レジスタ
(OSCR)
(13.1ms)
(839ms)
WIF
WIE
WS1
カウンタ
クリア回路
WS0
WCL
F CL: メインクロック原発振
()内の数字は,メインクロック原発振10 MHzの場合の周期
117
第 3 章 CPU および制御部
● メイン発振安定待ちタイマ
メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。
● カウンタクリア回路
OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリアし
ます。
● インターバルタイマセレクタ
メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用
の1種類を選択する回路で, 選択した分周出力の立下がりエッジが割込み要因になりま
す。
● メイン発振安定待ちレジスタ (OSCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い
ます。
■ レジスタ説明
bit 15
OSCR
0000 0490H
WIF
14
WIE
R/W
R/W
13
12
11
10
WS1
R/W
9
WS0
R/W
8
WCL
W
初期値
INIT時 RST時
00 H
xx H
アクセス
R/W
[bit15]: WIF (Watch timer Interrupt Flag)
メイン発振安定待ち割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立ち下がりエッジによって "1" にセット
されます。
このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出力し
ます。
0
メイン発振安定割込みの要求なし ( 初期値 )
1
メイン発振安定割込みの要求あり
• リセット (INIT) で "0" に初期化されます。
• Read および Write が可能です。ただし Write は "0" のみ可能で , "1" を Write しても
ビット値は変化しません。
• また , リードモディファイライト系命令での Read 値では常に "1" となります。
[bit14]: WIE (Watch timer Interrupt Enable)
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振安
定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力します。
0
メイン発振安定割込み要求出力禁止 ( 初期値 )
1
メイン発振安定割込み要求出力許可
• リセット (INIT) で "0" に初期化されます。
118
第 3 章 CPU および制御部
• Read および Write が可能です。
[bit13 ∼ bit11] (reserved bit)
予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 )
読出し値は不定です。
[bit10, bit9]: WS1, WS0 (Watch timer intervel Select 1, 0)
インターバルタイマの周期を選択します。
メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択しま
す。
WS1
WS0
インターバルタイマ周期 (FCL=10MHz 時 )
0
0
設定禁止
0
1
212 / FCL (410µs) ( 初期値 )
1
0
217 / FCL (13.1ms)
1
1
223 / FCL (839ms)
• リセット (INIT) で "00" に初期化されます。
• Read および Write が可能です。
[bit8]: WCL (Watch timer CLear)
"0" 書込みでメイン発振安定待ちタイマを 0 にクリアします。
Write は "0" のみ可能で , "1" を Write しても動作に影響を与えません。
• Read 値は常に "1" となります。
119
第 3 章 CPU および制御部
■ メイン発振安定待ち割り込み
メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した
インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に
セットします。そのとき , 割込み要求許可ビットを許可 (WIE= 1 ) していると CPU へ
割込み要求が発生します。ただし , メインクロックが発振停止している時 (「■ イン
ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振
安定待ち割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がる
とセットされます。
注意事項
リセット解除後に割込み要求出力を許可 (WIE= 1 ) する場合および WS1, WS0 ビット変更
時は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。
参考
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , ただちに割込
み要求が発生します。
• カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場
合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
メイン発振安定待ちタイマ用カウンタはメインクロックが発振中は常にカウントアッ
プをしていますが , 以下の状態時はメインクロック発振が停止するため , カウント動作
が停止します。
• ストップモードでメイン発振が停止する設定 ( スタンバイ制御レジスタ STCR の
bit0:OSCD1= 1 ) でストップモードに移行すると , ストップモード中 , カウント動作
が停止します。本品種では , リセット (INIT) 時 OSCD1= 1 に初期化しますので , ス
トップモード中もメイン発振安定待ちタイマを動かしたい場合は , スタンバイ移行
前に OSCD2= 0 を設定してください。
カウンタをクリア (WCL= 0 ) すると , "0000H" からカウント動作を行い , "7FFFH" に達
すると , "0000H" に戻ってカウントを継続します。カウントアップ中に選択されたイン
ターバルタイマ用の分周出力に立ち下がりエッジが発生すると , メイン発振安定待ち
割込み要求ビット (WIF) を "1" にセットします。つまり , クリアされた時間を基準にし
て , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発生
することになります。
120
第 3 章 CPU および制御部
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク
ロックで動作する本メイン発振安定待ちタイマを使用します。
サブクロック動作にてメインクロックの発振安定待ちを行うには , 次の手順でおこ
なってください。
1. メインクロックの発振安定に必要な時間を WT1, WT0 ビットに設定し , カウンタを
"0" にクリアします。(WT1, WT0= 発振安定待ち時間 , WCL= 0 書込み ) 発振安定待
ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行います。
(WIF= 0 , WIE= 0 書込み )
2. メインクロックの発振を開始します。(OSCCR bit8:OCSDS1= 1 書込み )
3. プログラムにて , WIF フラグが "1" になるまで待ちます。
4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。サブクロックからメインクロッ
クに切り替える場合も , (4) の WIF= 1 の確認を待ってから行ってください。( 発振安
定を待たずにメインクロックへ切り替えると , デバイス全体に不安定なクロックが
供給され , その後の動作は保証されません。)
■ メイン発振安定待ちタイマの動作
メイン発振安定待ちタイマを起動したとき , メインクロックへの移行時のカウンタ状
態を以下に示します。
図 3.14-2 メインクロックへの移行時のカウンタ状態
7FFFFF
H
カウンタ値
メインクロック
発振安定待ち時間
・タイマクリア(WCL=1) ※0 以外の時
・インターバル時間設定(WS1,WS0=11B)
・メイン発振開始(OSCCR:OSCDS1=0)
割込みルーチンでクリア
WIF(割込み要求)
WIE(割込みマスク)
クロックモード
サブクロック
メインクロック
・ サブ→メインクロック変更
121
第 3 章 CPU および制御部
■ メイン発振安定待ちタイマ使用時の注意事項
• 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
• メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込み
も発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を
停止しないでください。
• WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ
グセットが優先し , "0" クリアは無効となります。
122
第4章
外部バスインタフェース
外部バスインタフェースは , チップ内部で各種機能
マクロの接続に使用されています。
本章では , 外部バスインタフェースの各機能 , およ
び動作について説明します。
4.1 概要
4.2 レジスタ説明
4.3 チップセレクト領域
4.4 エンディアンとバスアクセス
4.5 通常バスインタフェース
4.6 バーストアクセス (first wait cycle:1, page wait cycle:1)
(TYP[3:0]=0000B, AWR=3208H)
4.7 アドレス / データマルチプレクスインタフェース
4.8 プリフェッチ動作
4.9 DMA アクセス
4.10 バスアービトレーション
4.11 レジスタ設定手順
4.12 使用上の注意
123
第 4 章 外部バスインタフェース
概要
4.1
外部バスインタフェースは , チップ内部で各種機能マクロの接続に使用されていま
す。
CS1, CS2, CS3 の領域は USB ホスト , USB ファンクションと OSDC に接続されて
います。
CS0, CS4 ∼ CS7 は使用することができません。
各領域の設定に関しては「付録 F 外部バスインタフェースの設定について」を参照
してください。
■ 特長
● 最大 32bit 長 (4Gbyte 空間 ) のアドレス出力
● 各種外部メモリ (8bit/16bit/32bit 品 ) を直結できる他 , 複数のアクセスタイミングを混在制御
可能
• 非同期 SRAM, 非同期 ROM/FLASH メモリ ( 複数ライトストローブ方式またはバイ
トイネーブル方式 )
• ページモード ROM/FLASH メモリ ( ページサイズ 2/4/8 が可能 )
• バーストモード ROM/FLASH メモリ (MBM29BL160D/161D/162D など )
• アドレス / データマルチプレクスバス (8bit/16bit 幅のみ )
• 同期メモリ (ASIC 内蔵メモリなど *)
*: SynchronousSRAM は直結できません。
● 独立した8個のバンク (チップセレクト領域)を設定でき, それぞれに対応したチップセレク
ト出力が可能
• 各領域のサイズは 64Kbyte の倍数単位で設定可能 (1 チップセレクト領域あたり
64Kbyte ∼ 2Gbyte)
• 各領域は論理アドレス空間上の任意の位置に設定可能 ( 領域サイズによりバウンダ
リの制限あり )
● 各チップセレクト領域ごとに以下の機能が独立に設定可能
• チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません )
• 各種メモリ対応などのアクセスタイミングタイプ設定
• 詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 )
• データバス幅設定 (8bit/16bit/32bit)
• バイトオーダリングのエンディアン設定 ( ビッグまたはリトル )
( 注意事項 ) CS0 領域は , ビッグエンディアンのみ可能
• 書込み禁止設定 ( 読出し専用領域 )
• 内蔵キャッシュへの取込み許可・禁止設定
• プリフェッチ機能の許可・禁止設定
• 最大バースト長設定 (1, 2, 4, 8)
124
第 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 ポートとして使用可能
125
第 4 章 外部バスインタフェース
■ ブロックダイヤグラム
図 4.1-1 ブロックダイヤグラム
内部アドレスバス
32
内部データバス
32
外部データバス
MUX
write buffer
switch
read buffer
switch
DATA BLOCK
ADDRESS BLOCK
+1 or +2
外部アドレスバス
address buffer
ASR
CS0~CS7
ASZ
comparator
外部端子制御部
全block制御
resisters
&
control
126
RD
WR0,WR1,
WR2,WR3
AS,BAA
BRQ
BGRNT
RDY
第 4 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの信号です。
● 通常バスインタフェース
• A31 ∼ A00, D31 ∼ D00 (AD15 ∼ AD00)
• CS0, CS1, CS2, CS3, CS4, CS5, CS6, CS7
• AS, SYSCLK, MCLK
• RD
• WR, WR0(UUB), WR1(ULB), WR2(LUB), WR3(LLB)
• RDY, BRQ, BGRNT
● メモリインタフェース
• MCLK, SYSCLK
• LBA(=AS), BAA ( バースト ROM/FLASH 用 )
● DMA インタフェース
• IOWR, IORD
• DACK0, DACK1, DACK2
• DREQ0, DREQ1, DREQ2
• DEOP0/DSTP0, DEOP1/DSTP1, DEOP2/DSTP2
127
第 4 章 外部バスインタフェース
■ レジスタ一覧
アドレス bit 31
00000640H
ASR0
ACR0
00000644H
ASR1
ACR1
00000648H
ASR2
ASR2
0000064CH
ASR3
ACR3
00000650H
ASR4
ACR4
00000654H
ASR5
ACR5
00000658H
ASR6
ACR6
0000065CH
ASR7
ACR7
00000660H
AWR0
AWR1
00000664H
AWR2
AWR3
00000668H
AWR4
AWR5
0000066CH
00000670H
24 23
16 15
AWR6
MCRA
MCRB
8 7
0
AWR7
予約
予約
00000674H
予約
予約
予約
予約
00000678H
IOWR0
IOWR1
IOWR2
予約
0000067CH
予約
予約
予約
予約
00000680H
CSER
CHER
予約
TCR
予約
予約
00000684H
RCR
00000688H
予約
予約
予約
予約
0000068CH
予約
予約
予約
予約
予約
予約
予約
予約
予約
(MODR)
予約
予約
000007F8H
000007FCH
予約 : 予約レジスタです。書き込む場合は , 必ず "0" を設定してください。
MODR はユーザプログラムからはアクセスできません。
128
第 4 章 外部バスインタフェース
4.2
レジスタ説明
本節では , 外部バスインタフェースで使用するレジスタの構成 , および機能について
説明します。
■ ASR0 ∼ ASR7 (Area Select Register)
● ASR0 ∼ ASR7 (Area Select Register) の構成
初期値
ASR0 bit 15
0000 0640H
A31
ASR1 bit 15
0000 0644H
A31
ASR2 bit 15
0000 0648H
A31
ASR3 bit 15
0000 064CH
A31
ASR4 bit 15
0000 0650H
A31
ASR5 bit 15
0000 0654H
A31
ASR6 bit 15
0000 0658H
A31
ASR7 bit 15
0000 065CH
A31
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
14
13
A30
A29
12
12
12
12
12
12
12
12
2
1
0
INIT時 RST時
アクセス
A18
A17
A16
0000H 0000H
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
2
1
0
A18
A17
A16
xxxxH xxxxH
R/W
129
第 4 章 外部バスインタフェース
● ASR0 ∼ ASR7 (Area Select Register) のビット機能
ASR0 ∼ ASR7(Area Select Register 0 ∼ 7) は , CS0 ∼ CS7 の各チップセレクト領域の開
始アドレスを指定します。
開始アドレスは , A[31:16] の上位 16 ビットを設定できます。各チップセレクト領域は ,
このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR7 レジスタの ASZ[3:0]
ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR7 レジスタの ASZ[3:0] ビットの
設定に従います。例えば , ASZ[3:0] ビットにより , 1MByte の領域を設定した場合は ,
ASR0∼ASR7レジスタの下位4ビットは無視され, A[31:20]ビットのみ意味を持ちます。
ASR0 レジスタは , INIT および RST により , 0000H に初期化されます。ASR1 ∼ ASR7
は , INIT および RST によっては初期化されず , 不定となります。LSI の動作開始後 ,
CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR レ
ジスタを設定してください。
130
第 4 章 外部バスインタフェース
■ ACR0 ∼ ACR7 (Area Configuration Register)
● ACR0 ∼ ACR7 (Area Configuration Register) の構成
初期値
ACR0H
bit 15
14
13
12
11
10
9
8
INIT時
RST時
0000 0642H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 1111**00B 1111**00B
ACR0L
bit
7
6
5
0000 0643H SREN PFEN WREN
ACR1H
bit 15
14
13
4
0
12
3
2
1
bit
7
6
5
4
TYP3 TYP2 TYP1 TYP0 00000000B 00000000B R/W
11
10
9
8
3
2
1
bit 15
14
13
12
11
10
R/W
0
0000 0647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0
ACR2H
R/W
0
0000 0646H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
ACR1L
アクセス
9
xxxxxxxxB xxxxxxxxB R/W
8
0000 064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W
ACR2L
bit
7
6
5
4
3
2
1
0
0000 064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W
ACR3H
bit 15
14
13
12
11
10
9
8
0000 064EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W
ACR3L
bit
7
6
5
4
3
2
1
0
0000 064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W
ACR4H
bit
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB
0000 0652H
ACR4L
15
bit
7
6
5
4
3
2
1
0
0000 0653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0
ACR5H
bit 15
0000 0656H
ACR5L
14
13
12
11
10
9
6
5
4
3
2
1
xxxxxxxxB xxxxxxxxB R/W
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0
bit 7
R/W
xxxxxxxxB xxxxxxxxB R/W
0
0000 0657H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0
xxxxxxxxB xxxxxxxxB R/W
131
第 4 章 外部バスインタフェース
ACR6H
bit 15
13
12
11
10
9
初期値
INIT時
RST時
8
アクセス
ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0 xxxxxxxxB xxxxxxxxB R/W
0000 065AH
ACR6L
14
bit
7
6
5
4
3
2
1
0
0000 065BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W
ACR7H
bit 15
0000 065EH
ACR7L
bit
14
13
12
11
10
9
8
ASZ3 ASZ2 ASZ1 ASZ0 DBW1DBW0 BST1 BST0
7
6
5
4
3
2
1
xxxxxxxxB xxxxxxxxB R/W
0
0000 065FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 xxxxxxxxB xxxxxxxxB R/W
● ACR0 ∼ ACR7 (Area Configuration Register) のビット機能
ACR0 ∼ ACR7(Area Configuration Register 0 ∼ 7) は , 各チップセレクト領域の機能を設
定します。
[bit15 ∼ bit12] ASZ[3:0] = Area Size Bit [3:0]
各チップセレクト領域のサイズを以下のとおり設定します。
表 4.2-1 領域サイズ設定 (1 / 2)
ASZ3
ASZ2
ASZ1
ASZ0
各チップセレクト領域のサイズ
0
0
0
0
64 Kbyte
(00010000H byte, ASR A[31:16] ビット指定が有効 )
0
0
0
1
128 Kbyte
(00020000H byte, ASR A[31:17] ビット指定が有効 )
0
0
1
0
256 Kbyte
(00040000H byte, ASR A[31:18] ビット指定が有効 )
0
0
1
1
512 Kbyte
(00080000H byte, ASR A[31:19] ビット指定が有効 )
0
1
0
0
1 Mbyte
(00100000H byte, ASR A[31:20] ビット指定が有効 )
0
1
0
1
2 Mbyte
(00200000H byte, ASR A[31:21] ビット指定が有効 )
0
1
1
0
4 Mbyte
(00400000H byte, ASR A[31:22] ビット指定が有効 )
0
1
1
1
8 Mbyte
(00800000H byte, ASR A[31:23] ビット指定が有効 )
1
0
0
0
16 Mbyte
(01000000H byte, ASR A[31:24] ビット指定が有効 )
1
0
0
1
32 Mbyte
(02000000H byte, ASR A[31:25] ビット指定が有効 )
1
0
1
0
64 Mbyte
(04000000H byte, ASR A[31:26] ビット指定が有効 )
1
0
1
1
128 Mbyte
(08000000H byte, ASR A[31:27] ビット指定が有効 )
1
1
0
0
256 Mbyte
(10000000H byte, ASR A[31:28] ビット指定が有効 )
1
1
0
1
512 Mbyte
(20000000H byte, ASR A[31:29] ビット指定が有効 )
132
第 4 章 外部バスインタフェース
表 4.2-1 領域サイズ設定 (2 / 2)
ASZ3
ASZ2
ASZ1
ASZ0
各チップセレクト領域のサイズ
1
1
1
0
1024 Mbyte
(40000000H byte, ASR A[31:30] ビット指定が有効 )
1
1
1
1
2048 Mbyte
(80000000H byte, ASR A[31] ビット指定が有効 )
ASZ[3:0] では , ASR とのアドレス比較のビット数を変更させることにより , 各領域
のサイズを設定します。そのため ASR は比較されないビットが存在します。
ACR0 の ASZ[3:0] ビットは , RST により 1111B (0FH) に初期化されますが , この設定
にかかわらず RST 直後の CS0 領域は特別に 00000000H から FFFFFFFFH ( 全領域 )
に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記
の表に従ったサイズに設定されます。
[bit11, bit10] DBW[1:0] = Data Bus Width [1:0]
各チップセレクト領域のデータバス幅を以下のとおり設定します。
表 4.2-2 チップセレクト領域のデータバス幅の設定
DBW1
DBW0
データバス幅
0
0
8 bit
( バイトアクセス )
0
1
16 bit
( ハーフワードアクセス )
1
0
32 bit
( ワードアクセス )
1
1
Reserved
設定禁止
ACR0 の DBW[1:0] ビットは , リセットシーケンス中にモードベクタの WTH ビット
の値と同じ値が自動的に書き込まれます。
[bit9, bit8] BST[1:0] = Burst Size [1:0]
各チップセレクト領域の最大バースト長を以下のとおり設定します。
表 4.2-3 チップセレクト領域の最大バースト長の設定
BST1
BST0
最大バースト長
0
0
1
( シングルアクセス )
0
1
2
バースト ( アドレス境界 1 ビット )
1
0
4
バースト ( アドレス境界 2 ビット )
1
1
8
バースト ( アドレス境界 3 ビット )
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま
たはバス幅を超えるサイズのデータの読み出しを行った場合のみ , バースト長から
決まるアドレス境界内で連続したバーストアクセスを行います。
バス幅 32 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけませ
133
第 4 章 外部バスインタフェース
ん。2 バースト以下を推奨します。
バス幅 16 ビット領域の最大バースト長は 4 バースト以下しか設定してはいけませ
ん。2 バースト以下を推奨します。
シングルアクセス以外のバースト長設定を行った領域では RDY 入力を無視します。
[bit7] SREN = ShaRed ENable
各チップセレクト領域の BRQ/BGRNT による共有の許可・禁止を以下のとおり設定
します。
表 4.2-4 チップセレクト領域の BRQ/BGRNT による共有の許可・禁止の設定
SREN
共有の許可・禁止
0
BRQ/BGRNT による共有を禁止 (CSX はハイインピーダンスになりません )
1
BRQ/BGRNT による共有を許可 (CSX はハイインピーダンスになります )
共有が許可された領域は , バス開放中 (BGRNT=Low 出力中 ) はチップセレクト出力
(CSnX) がハイインピーダンスになります。
共有が禁止された領域は , バス開放中 (BGRNT=Low 出力中 ) もチップセレクト出力
(CSnX) がハイインピーダンスになりません。
CSER により許可された全ての領域の共有が許可されている場合のみ , アクセスス
トローブ出力 (AS, BAA, RD, WR0, WR1, WR2, WR3, WR など ) がハイインピーダン
スになります。
[bit6] PFEN = PreFetch ENable
各チップセレクト領域のプリフェッチの許可・禁止を以下のとおり設定します。
表 4.2-5 チップセレクト領域のプリフェッチの許可・禁止の設定
PFEN
プリフェッチ許可・禁止
0
プリフェッチ禁止
1
プリフェッチ許可
プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに
対し先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレス
に対し内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッチ
バッファに先読みされたデータを返します。
詳細は「4.8 プリフェッチ動作」を参照してください。
134
第 4 章 外部バスインタフェース
[bit5] WREN = WRite ENable
各チップセレクト領域の書込みの許可・禁止を設定します。
表 4.2-6 チップセレクト領域の書込みの許可・禁止の設定
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。
データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[bit4] LEND = Little ENDian select
各チップセレクト領域のバイトオーダリングを設定します。
表 4.2-7 チップセレクト領域のバイトオーダリングの設定
LEND
バイトオーダリング
0
Big Endian
1
Little Endian
ACR0 の LEND ビットには , 必ず "0" を設定してください。CS0 領域はビッグエン
ディアンのみをサポートします。
[bit3 ∼ bit0] TYP[3:0] = TYPe select
各チップセレクト領域のアクセスタイプを以下のとおり設定します。
表 4.2-8 チップセレクト領域のアクセスタイプの設定 (1 / 2)
TYP3
TYP2
TYP1
TYP0
アクセスタイプ
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, single/page/burst-ROM/FLASH)
1
x
x
アドレスデータマルチプレクスアクセス (8/16bit バス幅限定 )
x
x
0
RDY 端子による WAIT 挿入無効
x
1
RDY 端子による WAIT 挿入有効 ( バースト時は無効 )
0
x
WR0∼WR3端子をライトストローブとして使用(WRは"H"固定)
1
x
WR 端子をライトストローブとして使用 *1
135
第 4 章 外部バスインタフェース
表 4.2-8 チップセレクト領域のアクセスタイプの設定 (2 / 2)
TYP3
TYP2
TYP1
TYP0
アクセスタイプ
1
0
0
0
設定禁止
1
設定禁止
0
1
0
設定禁止
0
1
1
設定禁止
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のものになりま
す ) *2
*1: この設定をした場合 , WR0 ∼ WR3 は , 各バイトのイネーブルとして使用できます。
*2: CS 領域マスク設定機能
各ビットは , 組み合わせて設定します。
各アクセスタイプごとの動作詳細は , 動作解説の項を参照してください。
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した
領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111 を設定し , マ
スク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は
禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
•
マスク設定領域に対応する CSX はアサートされません。
•
ベース設定領域に対応する CSX がアサートされます。
•
ACR の以下の設定はマスク設定領域側のものが有効になります。
-
bit11, bit10 DBW[1:0]: バス幅設定
-
bit9, bit8 BST[1:0]: バースト長設定
-
bit7 SREN: 共有許可設定
-
bit6 PFEN: プリフェッチ許可設定
-
bit5 WREN: ライト許可設定 ( この設定のみ , ベース設定領域と異なる
設定は禁止します。)
•
bit4 LEND: リトルエンディアン設定
ACR の以下の設定はベース設定領域側のものが有効になります。
-
bit[3:0] TYP[3:0]: アクセスタイプ設定
•
AWR の設定はマスク設定領域側のものが有効になります。
•
CHER の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , 他の CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定でき
ます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけませ
136
第 4 章 外部バスインタフェース
ん。ASR および ACR:ASZ[3:0] ビットの設定には充分注意してください。
制限事項
•
ライト許可設定をマスクでは実現できません。
•
ライト許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定と
してください。
•
マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS
領域として動作します。
•
ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定する
と , ベース設定のない領域となり , 誤動作します。
137
第 4 章 外部バスインタフェース
■ AWR0 ∼ AWR7 (Area Wait Register)
● AWR0 ∼ AWR7 (Area Wait Register) の構成
初期値
AWR0H bit
31
30
29
28
27
26
25
24
0000 0660H
W15
W14
W13
W12
W11
W10
W09
W08
AWR0L
bit 23
22
21
19
18
17
16
W06
W05
W04
W03
W02
W01
W00
14
13
12
11
W15
W14
W13
W12
W11
W10
W09
W08
7
6
5
4
3
2
1
0
0000 0663H
W07
W06
W05
W04
W03
W02
W01
W00
AWR2H bit
31
30
29
28
27
26
25
24
W14
W13
W12
W11
W10
W09
W08
23
22
21
20
19
18
17
16
W07
W06
W05
W04
W03
W02
W01
W00
AWR3H bit 15
14
13
12
11
10
0000 0666H W15
W14
W13
W12
W11
W10
W09
W08
3
2
1
0
W03
W02
W01
W00
0000 0661H
W07
AWR1H bit 15
0000 0662H
AWR1L
bit
0000 0664H W15
AWR2L
bit
0000 0665H
AWR3L
bit
7
0000 0667H W07
6
W06
5
W05
20
4
W04
10
9
9
31
30
29
28
27
26
25
24
W15
W14
W13
W12
W11
W10
W09
W08
23
22
21
20
19
18
17
16
W07
W06
W05
W04
W03
W02
W01
W00
14
13
12
11
10
W13
W12
W11
W10
W09
W08
3
2
1
0
W03
W02
W01
W00
0000 0669H
AWR5H
bit 15
0000 066AH
AWR5L
bit
0000 066BH
W15
7
W07
W14
6
W06
5
W05
4
W04
9
31
30
29
28
27
26
25
24
W14
W13
W12
W11
W10
W09
W08
23
AWR6L bit
0000 066DH W07
22
21
20
19
18
W06
W05
W04
W03
W02
bit
138
17
W01
11111111B
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
8
W15
AWR6H
0000 066CH
11111111B
8
AWR4H bit
bit
RST時
アクセス
01111111B
R/W
8
0000 0668H
AWR4L
INIT時
01111111B
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
16
W00
第 4 章 外部バスインタフェース
初期値
AWR7H
15
bit
0000 066EH
W15
13
12
11
W14
W13
W12
W11
7
bit
AWR7L
0000 066FH
14
6
W07
5
W06
4
W05
W04
10
W10
9
W09
8
W08
3
2
1
0
W03
W02
W01
W00
INIT時
RST時
アクセス
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
AWR0 ∼ AWR7 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP[3:0] ビット ) の設定により , 各ビット
の働きが変わります。
● 通常アクセスおよびアドレス / データマルチプレクスアクセス
ACR0 ∼ ACR7 レジスタのアクセスタイプ (TYP[3:0] ビット ) に以下の設定を行った
チップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレクスアクセス
動作を行う領域となります。
表 4.2-9 通常アクセスまたはアドレス / データマルチプレクスアクセス動作を行う領域
TYP3
TYP2
TYP1
TYP0
アクセスタイプ
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, single/page/burst-ROM/FLASH)
0
1
x
x
アドレスデータマルチプレクスアクセス (8/16bit バス幅限定 )
通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての , AWR0
∼ AWR7 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので ,
各領域を CSER レジスタによって有効にする前に , 設定を行ってください。
● AWR0 ∼ AWR7 (Area Wait Register) のビット機能
[bit15 ∼ bit12] W15 ∼ W12 = ファーストアクセスウェイトサイクル (First Access Wait
Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設
定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されま
す。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
表 4.2-10 自動ウェイトサイクル数の設定(ファーストアクセス時)
W15
W14
W13
W12
ファーストアクセスウェイトサイクル
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
1
…
1
1
自動ウェイトサイクル 15
139
第 4 章 外部バスインタフェース
[bit11 ∼ bit8] W11 ∼ W08 = ページ内アクセスウェイトサイクル (Inpage Access Wait
Cycle)
バーストアクセス時 , ページ内アクセスサイクルに挿入するオートウェイトサイク
ル数を設定します。バーストアクセスサイクル以外では , 意味を持ちません。
表 4.2-11 自動ウェイトサイクル数の設定 ( バーストアクセス時 )
W11
W10
W09
W08
ページ内アクセスウェイトサイクル
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
1
…
1
1
自動ウェイトサイクル 15
ファーストアクセスウェイトサイクルとページ内アクセスウェイトサイクルに同
じ値を設定しても , それぞれのアクセスサイクルでのアドレスからのアクセスタイ
ムは同じにはならないことに注意してください ( ページ内アクセスサイクルでは ,
アドレス出力遅延が含まれるため )。
[bit7, bit6] W07, W06 = リード→ライトアイドルサイクル (Read → Write Idle Cycle)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場
合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中は全てのチップセレクト信号をネゲートし , データ端子は
ハイインピーダンス状態を維持します。
リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へ
のアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。
表 4.2-12 アイドルサイクルの設定内容
140
W07
W06
リード→ライトアイドルサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
第 4 章 外部バスインタフェース
[bit5, bit4] W05, W04 = ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサ
イクル中は全てのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルが挿入されます。
表 4.2-13 書込みリカバリサイクル数の設定内容
W05
W04
ライトリカバリサイクル
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
[bit3] W03 = WR0 ∼ WR3, WR 出力タイミング選択
WR0∼WR3, WR 出力タイミング設定は, ライトストローブ出力を, 非同期ストロー
ブとして使用するか , 同期ライトイネーブルとして使用するかを選択します。非同
期ストローブとすることにより通常メモリ /IO に対応し , 同期イネーブルとするこ
とによりクロック同期のメモリ /IO(ASIC 内蔵メモリなど ) に対応します。
表 4.2-14 WR 出力タイミング選択の設定内容
W03
WR0 ∼ WR3, WR 出力タイミング選択
0
MCLK 同期ライトイネーブル出力 (AS="L" から有効 )
1
非同期ライトストローブ出力 ( 通常動作 )
同期ライトイネーブルとした場合 (AWR:W03 ビットが "0"), 以下の様な動作となり
ます。
•
同期ライトイネーブル出力のタイミングは ,
外部メモリアクセスクロックの
MCLK 出力の立ち上がりエッジで取り込まれることを前提としたタイミングに
なります。非同期ストローブ出力とはタイミングが異なります。
•
WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングか
ら , 同期ライトイネーブル出力をアサートします。外部バスへのライトが行わ
れる場合 , 同期ライトイネーブル出力は "L" を出力します。外部バスからのリー
ドが行われる場合 , 同期ライトイネーブル出力は "H" を出力します。
•
同期ライトイネーブル出力をアサートした次のクロックサイクルにて,外部デー
タ出力端子よりライトデータを出力します。内部バスの都合によりライトデー
タを出力できなかった場合 , ライトデータが出力できるまで同期ライトイネー
ブル出力のアサートを延長することがあります。
141
第 4 章 外部バスインタフェース
•
リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に
関わらず , 非同期リードストローブとして機能します。データの入出力方向制
御にそのまま用いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
•
以下の追加ウェイト設定はしないでください。
-
CSX → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いて
ください )
-
ファーストアクセスウェイトサイクル設定 (AWR:W15 ∼ W12 ビットは常
に "0000B" を書いてください )
•
以下のアクセスタイプ設定 (ACR レジスタ中の TYP[3:0] ビット (bit[3:0])) は設定
しないでください。
-
アドレス / データマルチプレクスバス設定 (ACR:TYP2 ビットは常に "0" を
書いてください )
-
WR0 ∼ WR3 をライトストローブとして使用する設定 (ACR:TYP1 ビット
は常に "0" を書いてください )
•
RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください )
同期ライトイネーブル出力の場合 , バースト長は常に 1(ACR:BST[1:0] ビットに
"00B") を設定してください。
[bit2] W02 = アドレス→ CSX 遅延 (Address → CSX Delay)
アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット
アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際
にも CSX のエッジを必要とする場合などに設定します。
アドレスおよび AS 出力から , CS0 ∼ CS7 出力のディレイを設定します。
表 4.2-15 CS0 ∼ CS7 出力のディレイの設定内容
W02
アドレス→ CSX 遅延
0
遅延なし
1
遅延あり
"0"を設定し,遅延なしを選択した場合は, ASのアサートと同じタイミングでCSX0∼
CSX7 がアサート開始されます。このとき , 同じチップセレクト領域に連続したア
クセスを実行した場合 , 両アクセスの間も CS0 ∼ CS7 はアサートを継続したまま変
化しないことがあります。
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック MCLK 出力の立ち
上がりから CS0 ∼ CS7 がアサート開始されます。このとき , 同じチップセレクト領
域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS7 ネゲート
タイミングが発生します。
CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートから , リード / ライト
ストローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します。
(W01 の CSX → RD/WR セットアップ設定と同等の動作となります。)
142
第 4 章 外部バスインタフェース
アドレス→ CSX 遅延設定は , 同一領域に対し出力される DACKX 信号 ( 基本モー
ド ) にも同様に作用します。基本モードでの DACKX 出力は , その領域に対する CSX
と同じ波形となります。
[bit1] W01 = CSX → RD/WR セットアップ延長サイクル (CSX → RD/WR setup)
CSX → RD/WR セットアップ延長サイクルは , CSX アサート後 , リード / ライトス
トローブをアサートするまでの期間を延長する場合に設定します。CSX アサート
後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセットアップ
延長サイクルを挿入します。
表 4.2-16 CSX → RD/WR セットアップ延長サイクルの設定内容
W01
CSX → RD/WR セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メモ
リクロック MCLK 出力の立ち上がりから RD/WR0 ∼ WR3/WR が出力されます。
WR0 ∼ WR3/WR は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定し , 1 サイクルを選択した場合は , RD/WR0 ∼ WR3/WR とも , 必ず 1 サイ
クル以上遅れて出力されます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ
プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延
を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この
セットアップ延長サイクルが有効となります。
W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ
トアップサイクルが有効となります。
[bit0] W00 = RD/WR → CSX ホールド延長サイクル (RD/WR → CSX Hold Cycle)
RD/WR → CSX ホールド延長サイクルは , リード / ライトストローブネゲート後 ,
CSX ネゲートまでの期間を延長する場合に設定します。リード / ライトストローブ
ネゲート後 , CSX をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入
します。
表 4.2-17 RD/WR → CSX ホールド延長サイクルの設定内容
W00
RD/WR → CSX ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , RD/WR0 ∼ WR3/WR がネゲートされた
後の外部メモリクロック MCLK 出力の立ち上がりエッジよりホールド遅延経過後
に , CS0 ∼ CS7 がネゲートされます。
"1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS7 は 1 サイクル遅れてネゲー
143
第 4 章 外部バスインタフェース
トされます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ
イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延を挿入す
ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド
延長サイクルが有効となります。
144
第 4 章 外部バスインタフェース
■ IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC)
● IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) の構成
IOWR0
bit
0000 0688H
IOWR1
bit
30
29
28
27
RYE0 HLD0 WR01 WR00 IW03
bit 23
0000 0689H
IOWR2
31
22
21
20
14
13
12
25
24
IW02
IW01
IW00
18
17
16
IW12
IW11
IW10
10
9
8
IW22
IW21
IW20
19
RYE1 HLD1 WR11 WR10 IW13
15
26
11
0000 068AH RYE2 HLD2 WR21 WR20 IW23
初期値
INIT時
RST時
アクセス
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
xxxxxxxxB
xxxxxxxxB
R/W
● IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC) のビット機能
DMA フライバイアクセス時の , 各種ウェイトを設定します。
[bit31, bit23, bit15] RYE0, RYE1, RYE2 = RDY 機能設定 (ReadY Enable0, 1, 2)
DMA フライバイアクセス時のチャネル 0 ∼ 2 の各チャネルごとの RDY によるウェ
イト制御の設定を行います。
表 4.2-18 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 端子によるウェイト挿
入が可能となります。
[bit30, bit22, bit14] HLD0, HLD1, HLD2 = ホールドウェイト設定 (HoLD wait control)
DMAフライバイアクセス時の, 転送元アクセス側のリードストローブ信号のホール
ドサイクルを制御します。
表 4.2-19 ホールドウェイトの設定内容
HLDn
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長します。
145
第 4 章 外部バスインタフェース
"0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は
RD, I/O →メモリの場合は IORD) とライトストローブ信号 ( メモリ→ I/O の場合は
IOWR, I/O →メモリの場合は , WR0 ∼ WR3 および WR) は同じタイミングで , 出力
されます。
"1"設定時は, 転送元アクセス側データの転送先に対するホールドタイムを確保する
ため , ライトストローブ信号に対し , リードストローブ信号を , 1 サイクル長く出力
します。
[bit29, 28, 21, 20, 13, 12] WR0, 1, 2 = I/O アイドルサイクル設定 (I/O Idle Wait)
DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを
設定します。
表 4.2-20 I/O アイドルサイクルの設定内容
WRn1
WRn0
I/O アイドルサイクル設定
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に ,
I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド
ルサイクル中は , 全ての CSX およびストローブ出力はネゲートされ , データ端子は
ハイインピーダンスとなります。
[bit27-24, 19-16, 11-8] IW03-00, IW13-10, IW23-20 = 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 ビットに設定したサイクル数より
多いウェイトが挿入される場合があります。
146
第 4 章 外部バスインタフェース
■ CSER (Chip Select Enable register)
● CSER (Chip Select Enable register) の構成
初期値
INIT時
RST時
アクセス
0000 0680H CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B
R/W
bit 31
30
29
28
27
26
25
24
● CSER (Chip Select Enable register) のビット機能
各チップセレクト領域の許可 / 禁止を設定します。
[bit31 ∼ bit24] CSE[7:0] = チップセレクト領域許可 (Chip select enable 0 ∼ 7)
CS0 ∼ CS7 の各チップセレクト領域許可ビットです。
初期値は , 00000001B で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR7, ACR0 ∼ ACR7, AWR0 ∼ AWR7 の設定に
従い , 動作します。
CSE[7:0]
領域コントロール
0
禁止
1
許可
表 4.2-21 チップセレクト領域許可ビットの対応する CSnX
CSE のビット
対応する CSX
bit24:CSE0
CS0
bit25:CSE1
CS1
bit26:CSE2
CS2
bit27:CSE3
CS3
bit28:CSE4
CS4
bit29:CSE5
CS5
bit30:CSE6
CS6
bit31:CSE7
CS7
147
第 4 章 外部バスインタフェース
■ CHER (CacHe Enable Register)
● CHER (CacHe Enable Register) の構成
初期値
INIT時
RST時
アクセス
CHE7 CHE6 CHE5 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B 111111111B R/W
bit 23
0000 0681H
22
21
20
19
18
17
16
● CHER (CacHe Enable Register) の機能
各チップセレクト領域から読み込んだデータの内蔵キャッシュへの取込みを制御しま
す。
[bit24 ∼ bit17] CHE[7:0]= キャッシュ領域設定 (Cache Enable 7 ∼ 0)
各チップセレクト領域ごとに , 内蔵キャッシュへの取込みの許可・禁止を指定しま
す。
表 4.2-22 内蔵キャッシュへの取込みの許可・禁止の設定内容
148
CHEn
キャッシュ領域設定
0
非キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保
存しません )
1
キャッシュ領域 ( 該当する領域よりリードしたデータをキャッシュに保存
します )
第 4 章 外部バスインタフェース
■ TCR (Terminal and timing Control Register)
● TCR (Terminal and timing Control Register) の構成
初期値
7
bit
6
5
4
0000 0683H BREN PSUS PCLR
Reserved
3
2
1
0
INIT
RST
OHT1 OHT0 RDW1 RDW0 00000000B 0000xxxxB
Access
W
● TCR (Terminal and timing Control Register) のビット機能
共通端子機能設定やタイミング制御など , 外部バスインタフェースコントローラ全般
に関わる機能を制御します。
[bit7] BREN = BRQ 入力許可設定 (BRQ enable)
BRQ 端子入力を許可し , 外部バス共有を可能にします。
表 4.2-23 BRQ 入力許可の設定内容
BREN
BRQ 入力許可設定
0
BRQ/BGRNT によるバス共有をしません。BRQ 入力は無効となります。
1
BRQ/BGRNT によるバス共有を行います。BRQ 入力は有効となります。
初期状態 ("0") のときは , BRQ の入力を無視します。
"1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バ
スを開放 ( ハイインピーダンス制御 ) し BGRNT をアクティブ ("L" 出力 ) にします。
[bit6] PSUS = プリフェッチ抑止 (Prefetch SUSpend)
全ての領域に対するプリフェッチの一時停止を制御します。
表 4.2-24 プリフェッチの一時停止の設定内容
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ抑止
"1" を設定すると , "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。
この間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファ
の内容は消去されませんので , プリフェッチを再開する前に bit5:PCLR ビット機能
によりプリフェッチバッファのクリアを行ってください。
149
第 4 章 外部バスインタフェース
[bit5] PCLR = プリフェッチバッファ全クリア (Prefetch buffer CleaR)
プリフェッチバッファの全ての内容をクリアします。
表 4.2-25 プリフェッチバッファ制御の設定内容
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと 1 度だけプリフェッチバッファを全てクリアします。バッファク
リアが完了すると自動的にビット値は "0" に戻ります。PSUS ビットでプリフェッ
チを中断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と
PCLR の両ビットに同時に "10B" を書き込んで結構です )。
[bit4] 予約 = 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit3, bit2] OHT[1:0] = 出力ホールド遅延選択 (Output Hold Throttle)
外部メモリクロック MCLK 出力に対する外部制御信号出力のホールドのための遅
延値の調整を行います。
表 4.2-26 出力ホールド遅延選択の設定内容
OHT1
OHT0
出力ホールド遅延選択
0
0
SYSCLK/MCLK の立ち下がりから出力します。
0
1
SYSCLK/MCLK の立ち上がりから (3ns) 遅延させて出力します。
1
0
SYSCLK/MCLK の立ち上がりから (4ns) 遅延させて出力します。
1
1
SYSCLK/MCLK の立ち上がりから (5ns) 遅延させて出力します。
遅延値は typical 条件下における目標値です。
非 同 期 の リ ー ド お よ び ラ イ ト ス ト ロ ー ブ (RD/WR0/WR1/WR2/WR3/WR/IOWR/
IORD), および遅延させた CSX の立ち下がりタイミングは , この遅延値調整の対象
にはなりません。
OHT[1:0] は動作中に書き換えても誤動作しませんが , タイミング切換え時に一時外
部バス動作が停止します。
150
第 4 章 外部バスインタフェース
[bit1, bit0] RDW[1:0] = ウェイトサイクル短縮 (ReDuce Wait cycle)
全てのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセス
サイクルウェイトの設定値を, AWRレジスタの設定値はそのままで自動ウェイトサ
イクルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セットアッ
プやホールドサイクルの設定には影響しません。
表 4.2-27 ウェイトサイクル短縮の設定内容
RDW1
RDW0
ウェイトサイクル短縮
0
0
通常ウェイト (AWR0 ∼ AWR7 の設定値 )
0
1
AWR0 ∼ AWR7 の設定値の 1/2 (1bit 右シフト )
1
0
AWR0 ∼ AWR7 の設定値の 1/4 (2bit 右シフト )
1
1
AWR0 ∼ AWR7 の設定値の 1/8 (3bit 右シフト )
この機能は , ベースクロックを低速にしている間や , 外部バスクロックの分周比設
定を大きくしている間など , 低速クロックで動作している間 , 過剰なアクセスサイ
クルウェイトがかかることを防ぐためのものです。
通常このような場合にウェイトサイクルを設定し直すには , 全ての AWR をそれぞ
れ書き換えなければなりませんが , RDW[1:0] ビットの機能を使うと , 全ての AWR
の設定は高速クロックの時の設定のままで , アクセスサイクルウェイトのみ 1 度に
削減できます。
クロックを高速に戻す前に, 必ずRDW[1:0]ビットは"00B"に設定し直してください。
注意事項
TCR レジスタは書込み専用レジスタ ( 読出しはできません )
TCR レジスタは , ライトのみ可能です。 TCR レジスタ値をリードできません。
151
第 4 章 外部バスインタフェース
4.3チップセレクト領域
外部バスインタフェースは全 8 領域分のチップセレクト領域が設定できます。
本節では , チップセレクト領域を説明します。
■ チップセレクト領域
各領域のアドレス空間は ASR0 ∼ ASR7(Area Select Register) と ACR0 ∼ ACR7(Area
Configuration Register) で 4Gbyte の空間に , 最小 64Kbyte 単位で任意に配置できます。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス
サイクル中に対応するチップセレクト信号 CS0 ∼ CS7 がアクティブ ("L" 出力 ) になり
ます。
● ASR および ASZ[3:0] の設定例
1. ASR1=0003H ACR1- >ASZ[3:0]=0000B
0003FFFFH に割り当てられます。
チップセレクト領域 1 は , 00030000H から
2. ASR2=0FFCH ACR2- >ASZ[3:0]=0010B
チップセレクト領域 2 は , 0FFC0000H から
10000000H に割り当てられます。
3. ASR3=0011H ACR3- >ASZ[3:0]=0100B
00200000H に割り当てられます。
チップセレクト領域 3 は , 00100000H から
このとき , ACR- >ASZ[3:0] が 1Mbyte の設定になっていますので , バウンダリは
1Mbyte 単位となり , ASR3[19:16] は無視されます。
リセット後は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ FFFFFFFFH がチップ
セレクト領域 0 に割り当てられます。
注意事項
チップセレクト領域は , お互いにオーバラップしない様に設定してください。
152
第 4 章 外部バスインタフェース
図 4.3-1 チップセレクト領域の設定例
(
( )
)
00000000H
00000000H
00030000H
1
64 KB
3
1 MB
2
256 KB
00040000H
0
00100000H
00200000H
0FFC0000H
0FFFFFFFH
FFFFFFFFH
FFFFFFFFH
153
第 4 章 外部バスインタフェース
4.4
エンディアンとバスアクセス
WR[3:0] の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1
対 1 に対応します。
下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト
位置とそれに対応する制御信号をまとめます。
■ データバス幅と制御信号との関係
図 4.4-1 通常バスインタフェース
図 4.4-2 時分割入出力インタフェース
154
第 4 章 外部バスインタフェース
4.4.1
Big endian のバスアクセス
FR ファミリは CS0 領域を除いて , 各チップセレクトごとに Big endian/Little
endian を切り替えて使用可能です。 ACR レジスタの LEND ビットを "0" に設定し
た場合は , その領域は Big endian として扱います。
通常 FR ファミリは , Big endian で外部バスアクセスを行います。
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
図 4.4-3 ワードアクセス (LD, ST 命令実行時 )
図 4.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-5 バイトアクセス (LDUB, STB 命令実行時 )
155
第 4 章 外部バスインタフェース
■ データバス幅
図 4.4-6 32 ビットバス幅
図 4.4-7 16 ビットバス幅
図 4.4-8 8 ビットバス幅
156
第 4 章 外部バスインタフェース
■ 外部バスアクセス
外部バスアクセス (32 ビット /16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バ
イトアクセス別に , 下記をまとめます。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
表 4.4-1
PA1/PA0
:
プログラムで指定したアドレス下位 2bit
出力 A1/A0
:
出力するアドレスの下位 2bit
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
+
(1) ∼ (4)
FR ファミリは , ミスアラインエラーを検出しません。
従ってワードアクセスの場合には, プログラムで指定したアドレス下位2ビットが"00",
"01", "10", "11" であっても , 出力するアドレスの下位 2bit は全て "00" となり , ハーフ
ワードアクセスの場合には "00", "01" のときには "00" に , "00", "01" のときには "10" に
なります。
157
第 4 章 外部バスインタフェース
● 32bit bus 幅
(A) Word access
(a) PA1/PA0=00
→(1) 出力A1/A0=00
MSB
(b) PA1/PA0=01
→(1) 出力A1/A0=00
(d)PA1/PA0=11
→(1) 出力A1/A0=00
LSB
(1)
(1)
00
(c)PA1/PA0=10
→(1) 出力A1/A0=00
01
10
(1)
11
00
01
10
11
(1)
00
01
10
11
00
01
10
11
32bit
(B) Halfword access
(a) PA1/PA0=00
→(1) 出力A1/A0=00
(b) PA1/PA0=01
→(1) 出力A1/A0=00
(1)
(1)
00
01
10
11
(c)PA1/PA0=10
→(1) 出力A1/A0=10
(1)
00
01
10
11
(d)PA1/PA0=11
→(1) 出力A1/A0=10
(1)
00
01
10
11
00
01
10
11
(C) Byte access
(a) PA1/PA0=00
→(1) 出力A1/A0=00
(1)
(1)
00
158
(b) PA1/PA0=01
→(1) 出力A1/A0=01
01
10
11
(c)PA1/PA0=10
→(1) 出力A1/A0=10
(1)
(1)
00
01
10
11
(d)PA1/PA0=11
→(1) 出力A1/A0=11
00
01
10
11
00
01
10
11
第 4 章 外部バスインタフェース
● 16bit bus 幅
(A) Word access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(2) 出力A1/A0=10
MSB
(b) PA1/PA0=01
(1) 出力A1/A0=00
(2) 出力A1/A0=10
(c) PA1/PA0=10
(1) 出力A1/A0=00
(2) 出力A1/A0=10
(d) PA1/PA0=11
(1) 出力A1/A0=00
(2) 出力A1/A0=10
LSB
(1)
00
01
(1)
00
01
(1)
00
01
(1)
00
01
(2)
10
11
(2)
10
11
(2)
10
11
(2)
10
11
(B) Halfword access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(1)
00
01
10
11
(b) PA1/PA0=01
(1) 出力A1/A0=00
(1)
00
01
10
11
(c) PA1/PA0=10
(1) 出力A1/A0=10
(1)
00
01
10
11
(d) PA1/PA0=11
(1) 出力A1/A0=10
(1)
00
01
10
11
(C) Byte access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(1)
00
01
10
11
(b) PA1/PA0=01
(1) 出力A1/A0=01
(1)
00
01
10
11
(c) PA1/PA0=10
(1) 出力A1/A0=10
(1)
00
01
10
11
(d) PA1/PA0=11
(1) 出力A1/A0=11
(1)
00
01
10
11
159
第 4 章 外部バスインタフェース
● 8bit bus 幅
(A) Word access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(3) 出力A1/A0=10
(4) 出力A1/A0=11
(b) PA1/PA0=01
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(3) 出力A1/A0=10
(4) 出力A1/A0=11
(c) PA1/PA0=10
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(3) 出力A1/A0=10
(4) 出力A1/A0=11
(d) PA1/PA0=11
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(3) 出力A1/A0=10
(4) 出力A1/A0=11
MSB LSB
(1)
00
(1)
00
(1)
00
(1)
00
(2)
01
(2)
01
(2)
01
(2)
01
(3)
10
(3)
10
(3)
10
(3)
10
(4)
11
(4)
11
(4)
11
(4)
11
8bit
(B) Halfword access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(b) PA1/PA0=01
(1) 出力A1/A0=00
(2) 出力A1/A0=01
(c) PA1/PA0=10
(1) 出力A1/A0=10
(2) 出力A1/A0=11
(d) PA1/PA0=11
(1) 出力A1/A0=10
(2) 出力A1/A0=11
(1)
00
(1)
00
00
00
(2)
01
(2)
01
01
01
10
10
(1)
10
(1)
10
11
11
(2)
11
(2)
11
(C) Byte access
(a) PA1/PA0=00
(1) 出力A1/A0=00
(1)
00
01
160
(b) PA1/PA0=01
(1) 出力A1/A0=00
(1)
(c) PA1/PA0=10
(1) 出力A1/A0=10
(d) PA1/PA0=11
(1) 出力A1/A0=10
00
00
00
01
01
01
10
10
10
10
11
11
(1)
11
(1)
11
第 4 章 外部バスインタフェース
■ 外部との接続例
図 4.4-9 外部バスインタフェースと外部バスデバイスとの接続例
D31 W
| R
D24 0
X
D23 W
| R
D16 1
X
00
01
D31
D24D23
D15 W
| R
D08 2
X
10
D16D15
D07 W
| R
D00 3
X
*)
16ビット/8ビットデバイスの場合は,本LSIの
MSB側のデータバスを使用します。
11
D08D07
0
D00
D15
*)
1
D08D07
0
D00
D07
D00
*)
32ビットデバイス
16ビットデバイス
8ビットデバイス
("00"~"11" アドレス下位2ビット) ("0"/"1" アドレス下位1ビット)
161
第 4 章 外部バスインタフェース
4.4.2
Little endian のバスアクセス
FR ファミリは CS0 領域を除いて , 各チップセレクトごとに Big endian/Little
endian を切り替えて使用可能です。 ACR レジスタの LEND ビットを "1" に設定し
た場合は , その領域は Little endian として扱います。
FR ファミリの Little Endian バスアクセスは , big endian 時のバスアクセス動作を
利用し , 基本的には big endian 時の出力アドレスの順番と制御信号の出力は同じ
で , データバスのバイト位置をバス幅に応じてスワップすることにより実現してい
ます。
接続時には , big endian 領域と little endian 領域を物理的に分ける必要があります
ので , 充分注意が必要です。
■ 概要
• 出力するアドレスの順番は big endian/little endian で変わりません。
• word access :
big endian のアドレス A1, A0=00 に対応する MSB 側のバイトデータ
が , little endian では LSB 側のバイトデータになります。
word アクセスの場合は , word 内の 4byte 全ての byte 位置が反転します。
• half word access : big endian のアドレス A0 に対応する MSB 側のバイトデータが ,
little endian では LSB 側のバイトデータになります。
half word access の場合は , half word 内の 2byte の byte 位置が反転します。
• byte access :
big endian/little endian とも同じです。
• 32/16/8 ビットバス幅で使用するデータバス / 制御信号は , big endian/little endian で変
わりません。
■ Little endian 領域に対する制限事項
• Little endian 領域に対してプリフェッチを許可している場合は , その領域に対するア
クセスは必ずワードアクセスにて行ってください。 プリフェッチバッファに読み
込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ
れず , 誤ったデータを読み込んでしまいます。 これは , エンディアン変換機構の
ハードウェア的な制限によるものです。
• Little endian 領域には , 命令コードを配置しないでください。
• 32 ビット幅リトルエンディアン領域へのアクセスはワードアクセス限定
外部バス 32 ビット幅に設定した領域で , かつリトルエンディアン領域に設定している
場合 , その領域に対するアクセスはワードサイズでのみアクセス ( リード / ライト ) し
てください。
ハーフワード , またはバイトサイズでのアクセス ( リード / ライト ) は正しく実行され
ません。
162
第 4 章 外部バスインタフェース
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
図 4.4-10 ワードアクセス (LD, ST 命令実行時 )
図 4.4-11 ハーフワードアクセス (LDUH, STH 命令実行時 )
図 4.4-12 バイトアクセス (LDUB, STB 命令実行時 )
163
第 4 章 外部バスインタフェース
■ データバス幅
図 4.4-13 32 ビットバス幅
図 4.4-14 16 ビットバス幅
図 4.4-15 8 ビットバス幅
164
第 4 章 外部バスインタフェース
■ 外部との接続例
図 4.4-16 32bit バス幅
D31 W
| R
D24 0
X
D23 W
| R
D16 1
X
00
D31
D15 W
| R
D08 2
X
01
D24D23
D07 W
| R
D00 3
X
10
D16D15
11
D08D07
11
D00
D31
10
D24D23
ビッグエンディアン領域
00
01
D16D15
D08D07
D00
リトルエンディアン領域
図 4.4-17 16bit バス幅
D31 W
| R
D24 0
X
D23 W
| R
D16 1
X
0
D15
1
D08D07
0
D00
ビッグエンディアン領域
D15
1
D08D07
D00
リトルエンディアン領域
165
第 4 章 外部バスインタフェース
図 4.4-18 8bit バス幅
D31 W
| R
D24 0
X
D07
D00
ビッグエンディアン領域
166
D07
D00
リトルエンディアン領域
第 4 章 外部バスインタフェース
ビッグエンディアンとリトルエンディアンの外部ア
クセスの比較
4.4.3
バス幅に対するワードアクセス , ハーフワードアクセス , およびバイトアクセスにつ
いて , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。
■ Word アクセス
big endian mode
32bit
バス幅
内部Reg
外部端子
little endian mode
制御端子
Address 下位 2bit:"0"
D31
内部Reg
外部端子
D31
D31
D31
AA
AA
WR0X
AA
AA
WR0X
BB
BB
WR1X
BB
BB
WR1X
CC
CC
WR2X
CC
CC
WR2X
DD
WR3X
DD
WR3X
DD
D00
D00
DD
D00
D00
①
16bit
バス幅
①
内部 Reg 外部端子
D31
内部Reg
制御端子
CC
WR0X
AA
BB
DD
WR1X
BB
BB
D31
制御端子
D31
DD
BB
WR0X
CC
AA
WR1X
CC
-
-
-
DD
-
-
-
①
②
D16
CC
-
-
-
DD
-
-
-
①
②
D00
内部 Reg 外部端子
D31
外部端子
address: "0" "2"
address:
D31
AA
AA
D16
8bit
バス幅
制御端子
Address 下位 2bit:"0"
address: "0" "1" "2" "3"
D31
AA
AA BB CC DD
D24
BB
- - - -
D00
制御端子
内部Reg
外部端子
制御端子
address: "0" "1" "2" "3"
D31
D31
AA
WR0X
DD CC BB AA
WR0X
D24
-
BB
- - - -
-
CC
- - - -
-
DD
- - - -
-
CC
- - - -
-
DD
- - - -
-
D00
D00
① ② ③ ④
①
②
③
④
167
第 4 章 外部バスインタフェース
■ Half word アクセス
big endian mode
32bit
バス幅
内部Reg
外部端子
little endian mode
制御端子
内部Reg
Address 下位 2bit:"0"
D31
D31
AA
WR0X
BB
WR0X
BB
WR1X
AA
WR1X
AA
-
BB
D00
-
AA
-
BB
D00
D00
①
①
内部Reg
外部端子
制御端子
内部Reg
address: "2"
D31
D31
CC
DD
D00
D31
外部端子
D31
-
-
-
-
CC
WR2X
DD
WR3X
D00
内部Reg
CC
DD
D00
外部端子
制御端子
D16
BB
CC
WR3X
D00
内部Reg
外部端子
制御端子
D31
D31
AA
WR0X
BB
WR0X
BB
WR1X
AA
WR1X
-
-
-
-
-
-
-
-
D00
AA
D16
BB
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "2"
D31
DD
D16
外部端子
制御端子
address: "2"
D31
CC
D31
D31
CC
WR0X
DD
WR0X
DD
WR1X
CC
WR1X
-
-
-
-
-
-
-
-
D00
CC
DD
D16
D00
①
168
WR2X
address: "0"
D31
AA
DD
①
address: "0"
D31
制御端子
address: "2"
①
16bit
バス幅
制御端子
address: "0"
D31
D31
D00
外部端子
①
第 4 章 外部バスインタフェース
big endian mode
8bit
バス幅
内部Reg
外部端子
address:
D31
制御端子
AA
BB
D00
AA
BB
WR0X
-
-
-
-
-
-
-
-
-
address:
D31
制御端子
CC
DD
AA
BB
DD
WR0X
-
-
-
-
-
-
-
-
-
D00
①
②
WR0X
-
-
-
-
-
-
-
-
-
①
②
制御端子
"2" "3"
D31
D24
CC
DD
D00
AA
外部端子
address:
D31
CC
BB
D00
内部Reg
"2" "3"
D31
D24
D24
②
外部端子
制御端子
D31
D00
①
外部端子
address: "0" "1"
D31
D00
内部Reg
内部Reg
"0" "1"
D31
D24
D00
little endian mode
DD
CC
WR0X
-
-
-
-
-
-
-
-
-
①
②
D00
169
第 4 章 外部バスインタフェース
■ Byte アクセス
big endian mode
32bit
バス幅
内部Reg
外部端子
little endian mode
制御端子
内部Reg
address: "0"
D31
D31
AA
D00
D31
WR0X
AA
-
-
-
-
-
AA
D00
D00
①
外部端子
①
制御端子
内部Reg
address: "1"
D31
外部端子
D31
D31
-
-
WR1X
BB
-
BB
D00
BB
D00
-
D00
①
外部端子
①
制御端子
内部Reg
address: "2"
D31
D31
CC
D00
外部端子
D31
-
-
-
-
WR2X
CC
-
D00
CC
D00
外部端子
-
①
制御端子
内部Reg
address: "3"
D31
D31
DD
D00
170
制御端子
D31
-
-
-
-
-
-
WR3X
DD
D00
①
外部端子
address: "3"
D31
DD
D00
WR2X
D00
①
内部Reg
制御端子
address: "2"
D31
CC
WR1X
-
-
D00
内部Reg
制御端子
address: "1"
D31
BB
WR0X
-
D00
内部Reg
制御端子
address: "0"
D31
AA
外部端子
DD
D00
①
WR3X
第 4 章 外部バスインタフェース
big endian mode
16bit
バス幅
内部Reg
外部端子
little endian mode
制御端子
内部Reg
address: "0"
D31
制御端子
address: "0"
D31
D31
AA
外部端子
D31
WR0X
AA
-
WR0X
-
D16
D16
-
-
-
AA
D00
-
AA
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "1"
D31
外部端子
address: "1"
D31
D31
D31
-
BB
D16
-
WR1X
BB
D16
-
-
BB
制御端子
D00
WR1X
-
-
BB
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "2"
D31
D31
D31
WR0X
CC
-
D16
-
D00
WR0X
-
D16
-
CC
制御端子
address: "2"
D31
CC
外部端子
-
-
CC
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "3"
D31
外部端子
address: "3"
D31
D31
D31
-
DD
D16
-
WR1X
DD
D16
-
-
DD
D00
制御端子
WR1X
-
-
DD
D00
①
①
171
第 4 章 外部バスインタフェース
big endian mode
8bit
バス幅
内部Reg
外部端子
little endian mode
制御端子
内部Reg
address: "0"
D31
D31
D24
D31
WR0X
AA
D24
-
-
-
D00
-
AA
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "1"
D31
D31
D24
外部端子
D31
WR0X
BB
D24
-
-
-
D00
WR0X
-
-
BB
制御端子
address: "1"
D31
BB
-
BB
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "2"
D31
D31
D24
外部端子
D31
WR0X
CC
D24
-
-
-
D00
WR0X
-
-
CC
制御端子
address: "2"
D31
CC
-
CC
D00
①
内部Reg
外部端子
①
制御端子
内部Reg
address: "3"
D31
D31
D24
外部端子
D31
WR0X
DD
D24
-
-
-
DD
-
DD
D00
①
WR0X
-
-
D00
制御端子
address: "3"
D31
DD
172
WR0X
-
-
AA
制御端子
address: "0"
D31
AA
外部端子
①
第 4 章 外部バスインタフェース
4.5
通常バスインタフェース
通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ
クルが基本バスサイクルになります。
■ 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H)
図 4.5-1 基本タイミング ( アクセスが連続する場合 )
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A[31:0] は , word/half word/byte アクセスの先頭バイト位置のアドレスをバスアクセ
ス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS7 は , AWR0 ∼ AWR7 レジスタの W02 ビットが "0" の時は , AS と同じタ
イミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS7 がネゲートしませ
ん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼ CS7
をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネゲー
トします。
• RD, WR0 ∼ WR3 は , バスアクセス第 2 サイクルからアサートします。AWR レジス
タ W15 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0
∼ WR3 をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設定する
ことにより 1 サイクル遅らせることができます。ただし , WR0 ∼ WR3 は内部状態
によりW01ビットを"0"に設定した場合も第2サイクルより遅れることがあります。
• TYP[3:0]=0x0xB のように WR0 ∼ WR3 を使用する設定の場合 WR は "H" 固定です。
• リードアクセスの場合 , RD アサート後ウェイトサイクルが終了したサイクルの
MCLK の立上りで D[31:0] を取り込みます。
• ライトアクセスの場合 , WR0 ∼ WR3 をアサートしたタイミングから D[31:0] にデー
タを出力します。
173
第 4 章 外部バスインタフェース
■ WR+byte-control タイプ (TYP[3:0] = 0010B, AWR = 0008H)
図 4.5-2 WR+ バイト制御タイプのタイミングチャート
• AS, CSnX, RD, A[31:0], D[31:0] は , (1) 基本タイミングと同様の動作を行います。
• WR は , バスアクセス第 2 サイクルからアサートします。AWR レジスタ W15 ∼ W12
ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0 ∼ WR3 をアサー
トするタイミングは AWR レジスタ W01 ビットを "1" に設定することにより 1 サイ
クル遅らせることができます。ただし , 内部状態により W01 ビットを "0" に設定し
た場合も第 2 サイクルより遅れることがあります。((1) 基本タイミングの WR0 ∼
WR3 と同様の動作を行います。)
• WR0 ∼ WR3 は , バイトイネーブル信号 (UUB, ULB, LUB, LLB) としてアクセスする
バイト位置を負論理で示します。バスアクセス開始サイクルからバスサイクル終了
までアサートします。アドレスと同じタイミングで変化します。リード / ライトア
クセス共にアクセスするバイト位置を示します。
• ライトアクセスの場合 , WR をアサートしたタイミングから D[31:0] にデータを出力
します。
• TYP[3:0]=0x0xB (WR0 ∼ WR3 使用 ), TYP[3:0]=0x1xB(WR+byte control) の領域を混在
させる場合には , 使用する全ての領域にて , 必ず以下の設定を行ってください。( 詳
細は注意事項を参照してください。)
- リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください。
- ライトリカバリサイクルを最低 1 サイクル以上設定してください。
174
第 4 章 外部バスインタフェース
■ リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H)
図 4.5-3 リード → ライトのタイミングチャート
• AWR レジスタ W07, W06 ビットの設定により , 0 ∼ 3 サイクルまでのアイドルサイ
クル挿入が可能です。
• リード側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで
ある場合このアイドルサイクルを挿入します。
175
第 4 章 外部バスインタフェース
■ ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H)
図 4.5-4 ライト → ライトのタイミングチャート
• AWR レジスタ W05, W04 ビットの設定により , 0 ∼ 3 サイクルまでのライトリカバ
リサイクルを挿入可能です。
• 全てのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルは発生します。
176
第 4 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H)
図 4.5-5 自動ウェイトサイクルのタイミングチャート
• AWR レジスタ W15 ∼ W12 ビット (first wait cycle) の設定により自動ウェイトサイ
クルを ,0 ∼ 15 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと
なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル
+(first wait cycle) となります。ライトの場合は内部状態によりさらに長くなること
があります。
177
第 4 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H)
図 4.5-6 外部ウェイトサイクルのタイミングチャート
• ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに
より外部ウェイトサイクルを挿入可能です。
178
第 4 章 外部バスインタフェース
■ 同期ライトイネーブル出力タイミング (TYP[3:0]=0000B, AWR=0000H)
図 4.5-7 同期ライトイネーブル出力のタイミングチャート
同期ライトイネーブルとした場合 (AWR:W03 ビットが "0"), 以下の様な動作となりま
す。
• WR0 ∼ WR3, WR 端子出力は , AS 端子出力がアサートされているタイミングで , 同
期ライトイネーブル出力をアサートします。外部バスへのライトが行われる場合 ,
同期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行われる
場合 , 同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートした次のクロックサイクルにて , 外部データ
出力端子よりライトデータを出力します。内部バスの都合によりライトデータを出
力できなかった場合 , ライトデータが出力できるまで同期ライトイネーブル出力の
アサートを延長することがあります。
• リードストローブ出力 (RD) は , WR0 ∼ WR3, WR 出力タイミング設定の内容に関わ
らず , 非同期リードストローブとして機能します。データの入出力制御にそのまま
用いてください。
同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
• 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下の追
加ウェイト設定はしないでください。
- CSX → RD/WR セットアップ設定 (AWR:W01 ビットは常に "0" を書いてください )
- ファーストウェイトサイクル設定 (AWR:W15 ∼ W12 ビットは常に "0000" を書い
てください )
• 同期ライトイネーブル出力のタイミングが無意味なものとなりますので , 以下のア
クセスタイプ設定 (ACR レジスタ中の TYP[3:0] ビット (bit[3:0])) は設定しないでく
ださい。
- マルチプレクスバス設定 (ACR:TYP2 ビットは常に "0" を書いてください )
- RDY 入力有効設定 (ACR:TYP0 ビットは常に "0" を書いてください )
• 同期ライトイネーブル出力の場合 , バースト長は常に 1(BST[1:0] ビットに "0") を設
定してください。
179
第 4 章 外部バスインタフェース
■ CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH)
図 4.5-8 CSX 遅延設定の動作タイミングチャート
• W02 ビットが "1" の時は AS アサートの次のサイクルからアサートし , 連続するア
クセスがある場合ネゲート期間を挿入します。
180
第 4 章 外部バスインタフェース
■ CSX → RD/WR セットアップ・RD/WR → CSX ホールド設定
(TYP[3:0]=0000B, AWR=000BH)
図 4.5-9 CSX → RD/WR セットアップ , RD/WR → CSX ホールド設定のタイミングチャート
MCLK
A[31:0]
ASX
CSnX
CSX->RDX/WRX
Delay
RDX/WRX->CSX
Delay
RDX
READ
D[31:0]
WRnX
WRITE
D[31:0]
• AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RD/WR セットアッ
プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CSX ホールド
ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト
ネゲートまでの期間を延長する場合に設定します。
• CSX → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSX ホールドディ
レイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSX → RD/WR セットアップディレイ , RD/WR → CSX ホールド
ディレイ共に挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
181
第 4 章 外部バスインタフェース
■ DMA fly-by 転送 (I/O →メモリ )(TYP[3:0]=0000B, AWR=0008H, IOWR=51H)
図 4.5-10 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
( メモリ側のウェイト設定なしの場合 )
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの
ウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は ,
I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして
使用します。
182
第 4 章 外部バスインタフェース
■ DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=51H)
図 4.5-11 DMA フライバイ転送 ( メモリ→ I/O) のタイミングチャート
( メモリ側のウェイト設定なしの場合 )
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR[1:0] ビットの設定により , 0 ∼ 3 サイクルまでの
ライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの
ウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は ,
I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして
使用します。
183
第 4 章 外部バスインタフェース
4.6
バーストアクセス (first wait cycle:1, page wait cycle:1)
(TYP[3:0]=0000B, AWR=3208H)
外部バスインタフェースにおいては , 1 回のアクセスシーケンスで複数のデータを連
続して転送する動作を , バーストアクセスとよびます。 バーストアクセス以外の通
常のアクセスサイクルを , シングルアクセスとよびます。 ここで言う 1 回のアクセ
スシーケンスとは , AS および CSX のアサートから始まり , CSX がネゲートされる
までを示します。 複数のデータとは , その領域に設定されたバス幅単位で 2 単位以
上のデータを示します。
本節では , バーストアクセスの動作について説明します。
■ バーストアクセスの動作
図 4.6-1 バーストアクセスのタイミングチャート
• バーストサイクルは, ページモードROMなどの非同期メモリやバーストフラッシュ
メモリなど , まとまったデータを読む際のアクセスサイクルの効率化の他 , 通常の
非同期メモリよりの読出しにも使用できます。
• バーストサイクル時のアクセスシーケンスは , 以下の 2 種類のサイクルに分かれま
す。
- ファーストアクセスサイクル
バーストアクセスの開始サイクルで , 通常のシングルアクセスサイクルと同じ動
作を行います。
- ページアクセスサイクル
ファーストアクセスサイクルに引き続き , CSX や RD( リードストローブ ) をア
サートしたまま行うサイクルです。 シングルサイクル時とは異なるウェイトサ
184
第 4 章 外部バスインタフェース
イクルを設定できます。 バースト長設定から決定されるアドレスバウンダリ内
にある間 , ページアクセスサイクルは繰り返し行われます。アドレスバウンダリ
内のアクセスが終了するとバーストアクセスは終了となり , CSX がネゲートされ
ます。
• AWR レジスタ W15 ∼ W12 ビットの設定により , 0 ∼ 15 サイクルの第 1 ウェイトサ
イクルを挿入可能です。このとき , ファーストアクセスサイクルは最小でウェイト
サイクル +2 サイクルとなります。( 上記タイミング図では 3 サイクル )
• AWR レジスタ W11 ∼ W08 ビットの設定により , 0 ∼ 15 サイクルのページウェイト
サイクルを挿入可能です。このとき , ページアクセスサイクルはページウェイトサ
イクル +1 サイクルとなります。( 上記タイミング図では 2 サイクル )
• ACR レジスタ BST ビットの設定により , バースト長を 1, 2, 4, 8 に設定可能です。
バースト長を 1 に設定するとシングルアクセスとなり , 第 1 サイクルのみが繰り返
されます。ただし , データバス幅 32 ビット (ACR レジスタ BST ビットを "10B") に
設定した場合は , バースト長を 4 以下に設定してください ( バースト長 8 に設定し
た場合は誤動作します )。
• バーストアクセスを有効にした場合 , プリフェッチアクセスまたは設定したデータ
バス幅よりも大きなサイズで転送を行うときにバーストアクセスを行います。例え
ば , データバス幅を 8 ビット , バースト長を 4 に設定した領域に word アクセスを
行った場合 byte アクセスを 4 回ではなく , 4 バースト 1 回のアクセスを行います。
• バースト設定を行った領域では , RDY 入力は無視されますので TYP[3:0]=0xx1B に
設定しないでください。
• LBA, BAA 信号は , バースト FLASH メモリ用で , LBA でアクセスの開始を示し BAA
でアドレスのインクリメントを指示します。
• バーストアクセス中設定したウェイト後に A[31:0] の更新を行います。
185
第 4 章 外部バスインタフェース
4.7
アドレス / データマルチプレクスインタフェース
本節では , アドレス / データマルチプレクスインタフェースの動作として , 以下の 3
つの場合について説明します。
• 外部ウェイトなし
• 外部ウェイトあり
• CSX → RD/WR セットアップ設定
■ 外部ウェイトなし (TYP[3:0]=0100B, AWR=0008H)
図 4.7-1 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトなし )
MCLK
A[31:0]
address[31:0]
ASX
CSnX
RDX
READ
D[31:16]
address[15:0]
data[15:0]
WEX
WRITE
D[31:16]
address[15:0]
data[15:0]
• ACR レジスタ TYP[3:0]=01xxB と設定することによりアドレス / データマルチプレ
•
•
•
•
•
•
186
クスインタフェース設定が可能です。
アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅
(DBW[1:0] ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。32
ビット幅はサポートしていません。
アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ
イクル + データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
アドレス出力サイクルでは , 出力アドレスラッチ信号として AS をアサートします。
A[31:0] には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先頭
を示すアドレスを出力しますので , アドレス / データマルチプレクスインタフェー
スで 8/16 ビット以上のアドレスを使用したい場合に使用してください。
自動ウェイト (AWR:W15 ∼ W12), リード→ライトアイドルサイクル (AWR:W07,
W06), ライトリカバリ (AWR:W05, W04), アドレス→ CSX 遅延 (AWR:W02), CSX →
RD/WR セットアップ遅延 (AWR:W01), RD/WR → CSX ホールド遅延 (AWR:W00) の
設定は , 通常インタフェースと同様に設定可能です。
アドレス / データマルチプレクスインタフェースを設定した領域では , バースト長
を "1"(DBW[1:0]=00B) に設定してください。
第 4 章 外部バスインタフェース
■ 外部ウェイトあり (TYP[3:0]=0101B, AWR=1008H)
図 4.7-2 アドレス / データマルチプレクスインタフェースのタイミングチャート ( 外部ウェイトあり )
MCLK
A[31:0]
address[31:0]
ASX
CSnX
RDX
READ
D[31:16]
address[15:0]
data[15:0]
WRX
WRITE
D[31:16]
address[15:0]
data[15:0]
外部ウェイト 解除
RDY
• ACR レジスタ TYP[3:0]=01x1B と設定することにより , アドレス / データマルチプレ
クスインタフェースにおいて RDY 入力を有効とすることが可能です。
187
第 4 章 外部バスインタフェース
■ CSX → RD/WR セットアップ設定 (TYP[3:0]=0101B, AWR=100BH)
図 4.7-3 アドレス / データマルチプレクスインタフェースのタイミングチャート
(CSX → RD/WR セットアップ設定 )
MCLK
A[31:0]
address[31:0]
ASX
CSnX
RDX
READ
D[31:16]
address[15:0]
data[15:0]
WRX
WRITE
D[31:16]
address[15:0]
data[15:0]
• CSX → RD/WR セットアップ遅延 (AWR:W01) を "1" に設定すると , 上図のようにマ
ルチプレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立ち
上がりエッジで直接ラッチすることが可能となります。MCLK を使用せずに AS を
ALE(Address Latch Enable) ストローブとして使用したい場合にこの設定を用いてく
ださい。
188
第 4 章 外部バスインタフェース
4.8
プリフェッチ動作
本節では , プリフェッチ動作について説明します。
■ 機能概要
外部バスインタフェースコントローラは 8 ビット× 16 本で構成されるプリフェッチ
バッファを内蔵しています。
TCR レジスタの PSUS ビットが "0" の場合 , ACR レジスタの PFEN ビットをセット ("1")
してある領域に対するリードアクセスが発生すると , それ以降続くアドレスに対して
プリフェッチを行い , プリフェッチバッファ内に蓄積します。
蓄積されたアドレスに対し内部バスからのアクセスがあると , 外部アクセスを行わず
にプリフェッチバッファに先読みされたデータを返します。これにより , 外部バス領
域への連続したアクセスでの待ち時間を少なくすることができます。
● プリフェッチによる外部アクセスを開始する基本条件
プリフェッチによる外部バスアクセスは, 以下の条件が揃っている場合に発生します。
• TCR レジスタの PSUS ビットが "0" であること。
• スリープまたはストップモードでないこと。
• プリフェッチ許可されたチップセレクト領域への外部バスリードアクセスが行わ
れたこと。ただし , DMA アクセスおよびリードモディファイライト系命令による
リードアクセスを除きます。
• プリフェッチアクセス以外の外部バスアクセス要求 ( プリフェッチを許可していな
い領域への外部バス領域アクセスや , 外部バス領域との間の DMA 転送など ) が発生
していないこと。
• 次の 1 回のプリフェッチアクセスで取り込む部分のプリフェッチバッファがすべて
空であること。
これらの条件が成立する間 , プリフェッチアクセスを続けます。なお , プリフェッチア
クセス後に , プリフェッチを許可していない領域への外部バス領域アクセスが発生し
た後でも , プリフェッチバッファクリア条件が発生しない限り , プリフェッチ許可領域
へのプリフェッチアクセスは引き続き行われます。
複数のプリフェッチ許可領域と複数のプリフェッチ禁止領域とを混在させてアクセス
を行っている場合 , プリフェッチバッファは常に最後にアクセスされたプリフェッチ
許可領域に対するプリフェッチを行い , そのデータを保持しています。この場合 , プリ
フェッチ禁止領域へのアクセスはプリフェッチバッファの状態には一切影響をおよぼ
さないため , プリフェッチ禁止のデータアクセスとプリフェッチ許可の命令フェッチ
とが混在しても , プリフェッチバッファ内のデータを無駄にすることはありません。
● プリフェッチアクセスの一時停止と任意クリア
TCR レジスタの PSUS ビットに "1" をセットすると , プリフェッチは一時停止します。
PSUS ビットに "0" を設定すると再開します。この時ミス発生 , PCLR ビットのセット
などのバッファクリアが発生しなければ , バッファ内容は保持されます。
TCR レジスタの PCLR ビットに "1" をセットすると , プリフェッチバッファを全てクリ
アします。バッファのクリアは , PSUS ビットをセットし , プリフェッチを中断してい
189
第 4 章 外部バスインタフェース
る時に行ってください。
アドレス上位 16 ビットが変化する境界 = チップセレクト領域の最小単位 (64Kbyte 毎 )
では , プリフェッチは , いったん停止します。境界を越えた場合 , いったんバッファ
リードミスが発生し , 引き続き新しい領域でプリフェッチを開始します。
● 1 回のプリフェッチアクセス動作の単位
1 回のプリフェッチアクセスの単位は , ACR レジスタの DBW ビット ( バス幅 ) と BST
ビット ( バースト長 ) によって決まります。
プリフェッチアクセスは常に DBW ビットで設定されたバス幅いっぱいのサイズでア
クセスし , BST ビットにて設定されたバースト長の回数のアクセスを 1 回のアクセス
で行います。つまり , BST ビットに "00B" 以外を設定した場合 , プリフェッチアクセス
は常にページモード / バーストモードでのアクセスとなります。対応していない ROM/
RAM やアクセスタイム不足には注意してください (AWR レジスタの W15 ∼ W08 ビッ
トに適切な値を設定してください )。
バーストアクセス時は , バースト長に依存したアドレスバウンダリ内でしか連続アク
セスを行いません。そのため , バッファの空き byte 数が例えば 4byte あったとしても ,
バウンダリをまたいでいる場合 , 4byte 分を 1 回でアクセスできません ( プリフェッチ
バッファ先頭が xxxxxx0EH で , バッファに 4byte 空きがあり , バス幅 16bit であっても ,
2 バーストを設定した場合は , 次のプリフェッチアクセスでは xxxxxx0EH と xxxxxx0FH
の 2byte しか取り込みません )。
例)
バス幅 16bit, バースト長 2 を設定した領域
→ 1 回のプリフェッチでバッファに読み込まれるデータ量は , 4byte 分となります。
この場合 , プリフェッチバッファに 4byte 分の空きができるまでプリフェッチアク
セスは行われません。
バス幅 8bit, バースト長 8 を設定した領域
→ 1 回のプリフェッチでバッファに読み込まれるデータ量は , 8byte 分となります。
この場合 , プリフェッチバッファに 8byte 分の空きができるまでプリフェッチアク
セスは行われません。
● バースト長設定とプリフェッチ効率
「● 1 回のプリフェッチアクセス動作の単位」で解説した 1 回のプリフェッチアクセス
が行われている間に , プリフェッチアクセス以外の外部バスアクセス要求や , プリ
フェッチバッファへのミスが発生した場合でも , 実行中のプリフェッチバッファのア
クセスが終了するまでは , それらアクセス要求は待たされます。
そのため , バースト長をあまり大きく設定いたしますと , プリフェッチ以外のバスアク
セスの効率や反応が低下します。反面, バースト長を1に設定しますと, バースト/ペー
ジアクセスメモリを接続している場合でも常にシングルアクセスを行うため , 読み込
みサイクルの無駄が多く発生します。
また , 1 回のプリフェッチアクセスで読み込まれるデータが多い設定ですと , それだけ
プリフェッチバッファの空きができないとプリフェッチアクセスが開始できないため,
プリフェッチバッファへのアクセス頻度が少ないと外部バスがアイドル状態になり易
190
第 4 章 外部バスインタフェース
くなります。たとえば , バス幅が 16bit・バースト長 8 を設定した場合 , 1 回のプリフェッ
チでバッファに読み込まれるデータ量は , 16byte 分となるため , プリフェッチバッファ
がすべて空にならないと , 新たなプリフェッチアクセスができなくなります。
これらの事を念頭に置いた上で , 使用状況・環境に応じて最適なバースト長設定を調整
してください。一般に , バースト / ページアクセスのできない非同期メモリを接続する
場合は , バースト長は 1( シングルアクセス ) を設定するのが最適です。逆に , バースト /
ページアクセスサイクルの短いメモリを接続する場合は , バースト長は 1( シングルア
クセス ) 以外を設定するのが最適です。こちらの場合は , バス幅に応じて 1 回で 8byte(
バッファの半分 ) を読み込む設定をするのが最適ですが , 外部アクセスの頻度や外部ア
クセスクロックの分周比設定などによっても条件は変わってきます。
● プリフェッチバッファからの読込み
プリフェッチバッファ内にストアされたデータは , 内部バスからのアクセスでアドレ
スが一致した物があれば読み出され , 外部へのアクセスを行いません。バッファの読
み込みは順方向であればアドレスが連続していなくてもヒット可能 ( 最大 16byte) です
ので, 短い前方への分岐などでも極力外部バスへの2度読みが発生しないようになって
います。
内部バスからのアクセスで , 現在プリフェッチアクセス中のアドレスが一致した場合 ,
プリフェッチアクセスが完了してデータが取り込まれるまでの間は , 内部に対しウェ
イトを返します。この場合 , バッファミス扱いにはなりません。
DMA 転送でのリードにて , プリフェッチバッファ内のアドレスが一致した場合は , プ
リフェッチバッファ内のデータは使用されず , 外部バスから新たに読み込みを行いま
す。この場合, バッファミス扱いになりますが, 引き続きプリフェッチを継続はせずに,
プリフェッチ許可領域への新たな外部アクセスが発生するまでは , プリフェッチアク
セスを行いません。
● プリフェッチバッファのクリア , 更新
プリフェッチバッファは , 以下の条件のいずれかが成立した場合にすべてクリアされ
ます。
• TCR レジスタの PCLR ビットに "1" が書き込まれた時。
• バッファリードミス ( 後述 ) が発生した時。
• バッファライトヒット ( 後述 ) が発生した時。
プリフェッチバッファは , 以下の条件が成立した場合に一部のみクリアされます。
• バッファリードヒットが発生した時。 この場合 , ヒットしたアドレス以前のバッ
ファのみクリアされます。
バッファリードミスとは , 以下のものを示します。
• プリフェッチ許可領域へのリードアクセスで , バッファ内のアドレスに一致するも
のがない場合。 この場合 , 外部バスに対し新たにアクセスを行います。 この際の
リードデータは , バッファ内にはストアされませんが , 続くアドレスからプリ
フェッチアクセスを開始し , バッファにストアしていきます。
• プリフェッチ許可領域へのリードアクセスで , リードモディファイライト系命令に
よるリードである場合。この場合 , 外部バスに対し新たにアクセスを行います。こ
の際のリードデータは , バッファ内にはストアされませんし , 続けてプリフェッチ
アクセスは行いません ( 次にそのアドレスに対しライトが行われるため )。
191
第 4 章 外部バスインタフェース
• プリフェッチ許可領域へのリードアクセスで , DMA 転送によるリードである場合。
この場合 , 外部バスに対し新たにアクセスを行います。この際のリードデータは ,
バッファ内にはストアされませんし , 続けてプリフェッチアクセスは行いません。
バッファライトヒットとは , 以下のものを示します。
• プリフェッチ許可領域へのライトアクセスで , バッファ内のアドレスに1byteでも一
致するものがあった場合。この場合 , 外部バスに対し新たにアクセスを行いますが ,
プリフェッチアクセスは , 新たなリードアクセスが発生するまでは行われません。
● プリフェッチ許可領域に対する制限事項
リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に対
するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファに読
み込まれたデータをワード長以外でアクセスすると , 正しくエンディアン変換が行わ
れず , 誤ったデータを読み込んでしまいます。これは , エンディアン変換機構のハード
ウェア的な制限によるものです。
192
第 4 章 外部バスインタフェース
4.9
DMA アクセス
本節では , DMA アクセス動作について説明します。
■ DMA fly-by 転送 (I/O →メモリ ) (TYP[3:0]=0000B, AWR=0008H, IOWR=41H)
図 4.9-1 DMA フライバイ転送 (I/O →メモリ ) のタイミングチャート
( メモリ側のウェイト設定なしの場合 )
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト*2
MCLK
A[31:0]
memory address
ASX
CSnX
WRnX
D[31:0]
DACKnX
FR30
互換
モード EOPnX
基本
モード
DACKnX
EOPnX
IORDX
DREQn
デマンドモード時の
センスタイミング
• AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RD/WR セットアッ
プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CSX ホールド
ディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレクト
ネゲートまでの期間を延長する場合に設定します。
• CSX → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CSX ホールドディ
レイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
193
第 4 章 外部バスインタフェース
セスする場合は , CSX → RD/WR セットアップディレイ , RD/WR → CSX ホールド
ディレイ共に挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
● 解説
データ出力側である I/O に対して , I/O ウェイトサイクルと I/O ホールドウェイトサイ
クルにより延長された , 3 バスサイクル分のリードストローブが発生しています。受け
取り側であるメモリに対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル
分のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトス
トローブには影響を与えません。ただし , アドレスと CS 信号は , fly-by によるバスア
クセスサイクル終了まで保持されます。
194
第 4 章 外部バスインタフェース
■ DMA fly-by 転送 ( メモリ→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=41H)
図 4.9-2 DMA フライバイ転送 ( メモリ→ I/O) ( メモリ側のウェイト設定なしの場合 )
基本サイクル
I/Oウェイト I/Oホールド
サイクル *1 ウェイト*2
MCLK
A[31:0]
memory address
ASX
CSnX
RDX
D[31:0]
DACKnX
FR30
互換
モード EOPnX
基本
モード
DACKnX
EOPnX
IOWRX
DREQn
デマンドモード時の
センスタイミング
• IOWR0 ∼ IOWR2 レジスタの HLD ビットを "1" に設定することにより , I/O リード
サイクルを 1 サイクル延長します。
• IOWR0 ∼ IOWR2 レジスタの WR[1:0] ビットの設定により , 0 ∼ 3 サイクルまでの
ライトリカバリサイクルを挿入可能です。
• ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルを挿入します。
• IOWR0 ∼ IOWR2 レジスタの IW[3:0] ビットの設定により , 0 ∼ 15 サイクルまでの
ウェイトサイクルを挿入可能です。
• メモリ側にもウェイトの設定がある場合 (AWR:W15 ∼ W12 が "0" でないとき ) は ,
I/O ウェイト (IW[3:0] ビット ) と比較して大きいほうの値をウェイトサイクルとして
使用します。
● 解説
データ出力側であるメモリに対して , I/O ウェイトサイクルと I/O ホールドウェイトサ
イクルにより延長された , 3 バスサイクル分のリードストローブが発生しています。受
け取り側である I/O に対しては , I/O ウェイトサイクルで延長された , 2 バスサイクル分
のライトストローブが発生しています。I/O ホールドウェイトサイクルは , ライトスト
ローブには影響を与えません。ただし , アドレスと CS 信号は , fly-by によるバスアク
セスサイクル終了まで保持されます。
195
第 4 章 外部バスインタフェース
■ two-cycle 転送
( 内部 RAM →外部 I/O, RAM, 外部 I/O, RAM →内部 RAM もタイミングは同じ )
(TYP[3:0]=0000B, AWR=0008H, IOWR=00H)
図 4.9-3 2 サイクル転送 ( 内部 RAM →外部 I/O, RAM) のタイミングチャート
(I/O 側のウェイト設定なしの場合 )
MCLK
A[31:0]
I/O address
ASX
CSnX(I/O側)
WRnX
D[31:0]
DACKnX
FR30
互換
モード EOPnX
基本
モード
DACKnX
EOPnX
DREQn
デマンドモード時の
センスタイミング
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• DACKnX/EOPnX は , 内部 RAM アクセスのサイクルでは出力されません。
196
第 4 章 外部バスインタフェース
■ two-cycle 転送 ( 外部→ I/O) (TYP[3:0]=0000B, AWR=0008H, IOWR=00H)
図 4.9-4 2 サイクル転送 ( 外部→ I/O) のタイミングチャート
( メモリ , I/O のウェイト設定なしの場合 )
MCLK
A[31:0]
memory address
idle
I/O address
ASX
CSnX
RDX
CSnX
WRnX
D[31:0]
DACKnX
FR30
互換
モード EOPnX
基本
モード
DACKnX
EOPnX
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKnX/EOPnX は転送元バスアクセス , 転送先バスアクセスの両
方で出力されます。
197
第 4 章 外部バスインタフェース
■ two-cycle 転送 (I/O →外部 ) (TYP[3:0]=0000B, AWR=0008H, IOWR=00H)
図 4.9-5 2 サイクル転送 (I/O →外部 ) のタイミングチャート
( メモリ , I/O のウェイト設定なしの場合 )
MCLK
A[31:0]
I/O address
idle
memory address
ASX
CSnX
WRnX
CSnX
RDX
D[31:0]
DACKnX
FR30
互換
モード EOPnX
基本
モード
DACKnX
EOPnX
DREQn
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
• 基本モードでは DACKnX/EOPnX は転送元バスアクセス , 転送先バスアクセスの両
方で出力されます。
198
第 4 章 外部バスインタフェース
4.10
バスアービトレーション
バス権開放 , およびバス権獲得のタイミングチャートを示します。
■ バスアービトレーション
図 4.10-1 バス権開放のタイミングチャート
MCLK
A23~A0
ASX
CSnX *
RDX
リード
D31~D16
BRQ
BGRNTX
1サイクル
199
第 4 章 外部バスインタフェース
図 4.10-2 バス権獲得のタイミングチャート
MCLK
A23~A0
ASX
CSnX *
WRX
ライト
D31~D16
BRQ
BGRNTX
1サイクル
• TRC レジスタ BREN ビットを "1" に設定することにより , BRQ/BGRNT によるバス
アービトレーションを行うことができます。
• バス権開放時は , 端子をハイインピーダンスにしてから 1 サイクル後に BGRNT を
アサートします。
• バス権獲得時は , BGRNT をネゲートしてから 1 サイクル後に各端子をアクティブに
します。
• CSnX は , ACR0 ∼ ACR7 レジスタの SREN ビットがセットしてある場合のみハイイ
ンピーダンスにします。
• CSER レジスタで許可している領域が全て共有許可 (ACR レジスタ SREN ビットが
"1") の場合 , AS, BAA, RD, WR, WR0 ∼ WR3 をハイインピーダンスにします。
200
第 4 章 外部バスインタフェース
4.11
レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。
■ レジスタ設定手順
• レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の
アクセスは保証されません。
• レジスタの変更は以下の手順で行ってください。
1. 該当領域に対応する CSER のビットを "0" に設定してください。
2. ASR と ACR をワードアクセスで同時に設定してください。
3. AWR を設定してください。
4. 該当領域に対応する CHER のビットを設定してください。
5. 該当領域に対する CSER のビットを設定してください。
• CS0 領域はリセット解除後から有効になっており , プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記②∼④の設定を行ってください。そのあと , クロック
を高速クロックに切り替えてください。
• プリフェッチ許可を設定した領域のレジスタ値の変更は以下の手順で行ってくだ
さい。
1. 該当領域に対応する CSER のビットを "0" に設定してください。
2. TCRレジスタPSUSビットおよびPCLRビットを共に"1"に設定してください。
3. ASR と ACR をワードアクセスにて同時に設定してください。
4. AWR を設定してください。
5. 該当領域に対応する CHER のビットを設定してください。
6. TCR レジスタ PSUS ビットおよび PCLR ビットに "0" を設定してください。
7. 該当領域に対応する CSER のビットを "1" に設定してください。
201
第 4 章 外部バスインタフェース
4.12
使用上の注意
外部バスインタフェースを使用する上で注意しなければならない事項について説明
します。
■ 使用上の注意
WR0 ∼ WR3 をライトストローブとして使用する領域 (TYP[3:0]=0x0xB) と WR をライ
トストローブとして使用する領域 (TYP[3:0]=0x1xB) を混在させる設定にした場合 ,
使用する全ての領域にて , 必ず以下の設定を行ってください。
• リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください。(AWR
:W07, W06=00B 以外 )
• ライトリカバリサイクルを最低
1
サイクル以上設定してください。(AWR:W05,
W04=00B 以外 )
ただし , WR0 ∼ WR3 をライトストローブとして使用する領域 (TYP[3:0]=0x0xB) で WR0
∼ WR3 が無効な (ROM のみ接続されている ) 場合は , 上記制限はありません。また ,
WR をライトストローブとして使用する領域 (TYP[3:0]=0x1xB) の設定でアドレス→ RD/
WR セットアップサイクル (W01=1), RD/WR →アドレスホールドサイクル (W00=1) を
共に設定している場合も上記制限はありません。
● 制限理由
TYP[3:0]=0x1xB と設定して WR をライトストローブとして使用する領域では , WR0/
WR1 端子が , バイトイネーブル (UBX/LBX) 出力となります。この場合 , バイトイネー
ブル出力はアドレスおよび CSX 出力と同一のタイミングで , 各バイト位置のイネーブ
ル信号を出力します。
このため , WR0/WR1 端子を非同期ライトストローブとして使用している領域へのアク
セスが前後にあった場合 , そちらの領域において , CSX と WR0/WR1 間の AC 規格を満
足できなくなり , 誤書込みが発生する可能性があります。
リード→ライトアイドルサイクル , およびライトリカバリサイクルを設定した場合 , こ
れらサイクルでは , CSX はアサートされません ("H" レベルを維持 ) ので , 上記 AC 規
格を満足できます。
WR0/WR1 端子を非同期ライトストローブとして使用している領域にて , CSX と WR0/
WR1 間の AC 規格 ( セットアップおよびホールド ) に対し余裕がある場合は , 本制限は
必要ありません。
202
第5章
I/O ポート
この章では , I/O ポートの概要 , レジスタの構成 ,
および機能について説明します。
5.1 I/O ポートの概要
5.2 I/O ポートのレジスタ
203
第 5 章 I/O ポート
5.1
I/O ポートの概要
この節では , I/O ポートの概要を説明します。
■ ポート基本ブロックダイヤグラム
本LSIは, 各端子に対応するペリフェラルが入出力として端子を使用しない設定になっ
ているとき , I/O ポートとして使用できます。
下図にポートの基本的な構成を示します。
図 5.1-1 I/O ポートの基本ブロックダイヤグラム
I/O ポートは , PDR( ポートデータレジスタ /Port Data Register) と DDR( ポート方向レジ
スタ /Data Direction Register) と PFR( ポート機能レジスタ /Port Function Register) で構成
されています。
204
第 5 章 I/O ポート
■ I/O ポートのモード
● ポート入力モード時 (PFR= 0 & DDR= 0 )
•
PDR リード : 対応する外部端子のレベルが読み出されます。
• PDR ライト :PDR に設定値が書き込まれます。
● ポート出力モード時 (PFR= 0 & DDR= 1 )
• PDR リード :PDR の値が読み出されます。
• PDR ライト :PDR の値が対応する外部端子に出力されます。
● ペリフェラル出力モード時 (PFR= 1 & DDR= 1 )
• PDR リード : 対応する外部端子のレベルが読み出されます。
• PDR ライト :PDR に設定値が書き込まれます。
● ペリフェラル入力モード時 (PFR= 1 & DDR= 0 )
• PDR リード : 対応する外部端子のレベルが読み出されます。
• PDR ライト :PDR に設定値が書き込まれます。
( 注意事項 )
ポート関連レジスタへのアクセスは , バイトアクセス で行ってください。
DDR レジスタの値が有効になるのは , PFR レジスタを切り替えて汎用端子としたときで
す。
205
第 5 章 I/O ポート
5.2
I/O ポートのレジスタ
この節では , I/O ポートで使用するレジスタの構成 , および機能について説明します。
■ Port Data Register(PDR)
図 5.2-1
Port Data Register(PDR) の構成
bit 7
PDR0
アドレス:00000010 H P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値 アクセス
XXXXXXXXB
R/W
PDR1
bit 7
アドレス:00000011 H P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
初期値 アクセス
XXXXXXXXB
R/W
PDR2
bit
アドレス:00000012 H
7
-
6
-
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値 アクセス
--XXXXXXB
R/W
PDR3
bit
アドレス:00000013 H
7
-
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値 アクセス
-XXXXXXX B
R/W
bit 7
PDR4
アドレス:00000014 H P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値 アクセス
XXXXXXXXB
R/W
bit 7
PDR5
アドレス:00000015 H P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値 アクセス
XXXXXXXXB
R/W
bit
PDR6
アドレス:00000016 H
7
-
6
-
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値 アクセス
--XXXXXX B
R/W
bit
PDR7
アドレス:00000017 H
7
-
6
-
5
-
4
P74
3
P73
2
P72
1
P71
0
P70
初期値 アクセス
---XXXXX B
R/W
PDR0 ∼ PDR7 は , I/O ポートの入出力データレジスタです。
対応する DDR0 ∼ DDR7, PFR0 ∼ PFR3 で , 入出力制御が行われます。
206
第 5 章 I/O ポート
■ Data Direction Register(DDR)
図 5.2-2 Data Direction Register(DDR) の構成
bit 7
DDR0
アドレス:00000400 H P07
6
P06
5
P05
4
P04
3
P03
2
P02
1
P01
0
P00
初期値 アクセス
00000000B
R/W
bit
DDR1
7
アドレス:00000401 H P17
6
P16
5
P15
4
P14
3
P13
2
P12
1
P11
0
P10
初期値 アクセス
00000000B
R/W
bit
DDR2
アドレス:00000402 H
7
-
6
-
5
P25
4
P24
3
P23
2
P22
1
P21
0
P20
初期値 アクセス
--000000B
R/W
bit
DDR3
アドレス:00000403 H
7
-
6
P36
5
P35
4
P34
3
P33
2
P32
1
P31
0
P30
初期値 アクセス
-0000000B
R/W
bit 7
DDR4
アドレス:00000404 H P47
6
P46
5
P45
4
P44
3
P43
2
P42
1
P41
0
P40
初期値 アクセス
00000000B
R/W
bit 7
DDR5
アドレス:00000405 H P57
6
P56
5
P55
4
P54
3
P53
2
P52
1
P51
0
P50
初期値 アクセス
00000000B
R/W
bit
DDR6
アドレス:00000406 H
7
-
6
-
5
P65
4
P64
3
P63
2
P62
1
P61
0
P60
初期値 アクセス
--000000B
R/W
bit
DDR7
アドレス:00000407 H
7
-
6
-
5
-
4
P74
3
P73
2
P72
1
P71
0
P70
初期値 アクセス
---00000B
R/W
DDR0 ∼ DDR7 は , 対応する I/O ポートの入出力方向をビット単位で制御します。
• PFR=0 の時 DDR=0:ポート入力
DDR=1:ポート出力
• PFR=1 の時 DDR=0:周辺出力
DDR=1:周辺出力
207
第 5 章 I/O ポート
■ Port Function Register(PFR)
図 5.2-3 Port Function Register(PFR) の構成
bit 7
PFR0
アドレス: 00000410H I2CTST
6
5
-
-
4
3
2
1
I2CE4 I2CE3 I2CE2 I2CE1
0
I2CE0
初期値
0--00000B
初期値
bit 7
PFR1
6
5
4
3
2
1
0
アドレス: 00000411H UART3 SCKE3 UART2 SCKE2 UART1 SCKE1 UART0 SCKE0 00000000B
bit 7
PFR2
アドレス: 00000412H TOE2
6
5
TOE1
TOE0
4
-
3
-
2
-
1
0
UART4 SCKE4
初期値
000---00B
初期値
bit 7
PFR3
6
5
4
3
2
1
0
アドレス: 00000413H TME3 TME2 TME1 TME0 PPGE3 PPGE2 PPGE1 PPGE0 00000000B
アクセス
R/W
アクセス
R/W
アクセス
R/W
アクセス
R/W
リセット時はポート機能になります。
PFR0 ∼ PFR3 は , 対応するペリフェラルの出力を機能単位で制御します。
ペリフェラル入力として使用する端子は , DDR レジスタで入力設定にしてください。
( 注意事項 )
PFR0 の bit7[I2CTST] は必ず "0" にしてください。
I2CE3 と I2CE4 が両方 "1" のときは , SCL3・SCK3 が SCL4・SCK4 とブリッジされます。
208
第 5 章 I/O ポート
■ Port Function Register(PFR) の初期値と機能
以下に各 PFR レジスタについてその初期値と機能をまとめます。
表 5.2-1 PFR レジスタの初期値と機能
Register name
PFR0
Bit name
I2CTST
I2CE4
I2CE3
I2CE2
I2CE1
I2CE0
PFR1
UART3
SCKE3
UART2
SCKE2
UART1
SCKE1
UART0
SCKE0
Bit value
Function
0
I2C テスト用ビットです。
1
設定禁止
0
汎用ポートとして機能します。
1
SCL4, SDA4 として機能します。(I2C ch.4 と接続 )
0
汎用ポートとして機能します。
1
SCL3, SDA3 として機能します。(I2C ch.3 と接続 )
0
汎用ポートとして機能します。
1
SCL2, SDA2 として機能します。(I2C ch.2 と接続 )
0
汎用ポートとして機能します。
1
SCL1, SDA1 として機能します。(I2C ch.1 と接続 )
0
汎用ポートとして機能します。
1
SCL0, SDA0 として機能します。(I2C ch.0 と接続 )
0
汎用ポートとして機能します。
1
0
SO3 出力として機能します。
汎用ポートとして機能します。
1
SCK3 出力として機能します。
0
汎用ポートとして機能します。
1
SO2 出力として機能します。
0
汎用ポートとして機能します。
1
SCK2 出力として機能します。
0
汎用ポートとして機能します。
1
SO1 出力として機能します。
0
汎用ポートとして機能します。
1
SCK1 出力として機能します。
0
汎用ポートとして機能します。
1
SO0 出力として機能します。
0
汎用ポートとして機能します。
1
SCK0 出力として機能します。
209
第 5 章 I/O ポート
表 5.2-1 PFR レジスタの初期値と機能
Register name
PFR2
Bit name
Bit value
UART4
0
汎用ポートとして機能します。
1
SO4 出力として機能します。
0
汎用ポートとして機能します。
1
SCK4 出力として機能します。
0
汎用ポートとして機能します。
1
TO2 出力として機能します。
0
汎用ポートとして機能します。
1
TO1 出力として機能します。
0
汎用ポートとして機能します。
1
TO0 出力として機能します。
0
汎用ポートとして機能します。
1
TMO3 出力として機能します。
0
汎用ポートとして機能します。
1
TMO2 出力として機能します。
0
汎用ポートとして機能します。
1
TMO1 出力として機能します。
0
汎用ポートとして機能します。
1
TMO0 出力として機能します。
0
汎用ポートとして機能します。
1
PPG3 出力として機能します。
0
汎用ポートとして機能します。
1
PPG2 出力として機能します。
0
汎用ポートとして機能します。
1
PPG1 出力として機能します。
0
汎用ポートとして機能します。
1
PPG0 出力として機能します。
SCKE4
TOE2
TOE1
TOE0
PFR3
TME3
TME2
TME1
TME0
PPGE3
PPGE2
PPGE1
PPGE0
210
Function
第6章
U-TIMER
この章では , U-TIMER の概要 , レジスタの構成 , 機
能 , および動作について説明します。
6.1 概要
6.2 U-TIMER のレジスタ
6.3 動作説明
211
第 6 章 U-TIMER
6.1
概要
この節では , U-TIMER(16 bit timer for UART baud rate generation) の概要とブ
ロックダイヤグラムを示します。
■ U-TIMER の概要
U-TIMER は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と, U-TIMERのリロード値の組み合わせで任意のボーレートを設定できます。
本品種は , 本タイマを 5 チャネル内蔵しています。
■ レジスタ一覧
bit 15
8
7
UTIM
UTIMR
0
(R)
(W)
(R/W)
UTIMC
■ ブロックダイヤグラム
図 6.1-1 U-TIMER のブロックダイヤグラム
0
bit 15
UTIMR(リロードレジスタ)
ロード
bit 15
0
UTIM(timer)
クロック
φ
(周辺系クロック)
アンダフロー
コントロール
f.f.
212
UARTへ
第 6 章 U-TIMER
6.2
U-TIMER のレジスタ
この節では , U-TIMER で使用するレジスタの構成 , および機能について説明します。
■ UTIM (U-TIMER)
図 6.2-1 UTIM(U-TIMER) のビット構成
bit
14
2
1
0
b15 b14
000064H
00006CH
000074H R
00007CH 0
000084H
b2
b1
b0
UTIM
ch.0 アドレス:
ch.1 アドレス:
ch.2 アドレス:
ch.3 アドレス:
ch.4 アドレス:
15
R アクセス
0 初期値
UTIM は , タイマの値を示します。16 ビット転送命令でアクセスしてください。
■ UTIMR(reload register)
図 6.2-2 UTIMR(reload register) のビット構成
bit
14
2
1
0
b15 b14
000064H
00006CH
000074H R
00007CH 0
000084H
b2
b1
b0
UTIMR
ch.0 アドレス:
ch.1 アドレス:
ch.2 アドレス:
ch.3 アドレス:
ch.4 アドレス:
15
W アクセス
0 初期値
UTIMR は , UTIM がアンダフローした時に UTIM にリロードされる値を格納するレジ
スタです。
このレジスタは必ず 16 ビット転送命令でアクセスしてください。
■ UTIMC(U-TIMER Control register)
UTIMC は , U-TIMER の動作を制御します。
このレジスタは , 必ずバイト転送命令でアクセスしてください。
図 6.2-3 UTIMC(U-TIMER Control register) のビット構成
bit
UTIMC
ch.0 アドレス:
ch.1 アドレス:
ch.2 アドレス:
ch.3 アドレス:
ch.4 アドレス:
7
UCC1
000067H
00006FH R/W
0
000077H
00007FH
000087H
6
5
4
3
2
1
0
UTIE UNDR CLKS UTST UTCR
R/W
0
R/W
0
R/W
0
R/W
0
R/W
1
アクセス
初期値
213
第 6 章 U-TIMER
■ レジスタ説明
[bit7] 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" に設定し
てください。
[bit6, bit5] (reserved)
[bit4] UTIE (U-Timer Interrupt Enable)
UTIE は , U-TIMER のアンダフローによる割込み許可ビットです。
0 : 割込み禁止
〔初期値〕
1 : 許可
( 注意事項 )
本製品では U-Timer 割込みがないので常に "0" を書き込んでください。
[bit3] UNDR (UNDeR flow flag)
UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット , ま
たは "0" 書込みによりクリアされます。リードモディファイライト系命令のリード
時は , 常に "1" が読み出されます。
また , UNDR に対する "1" 書込みは無効です。
[bit2] CLKS (CLocK Select)
このビットは 常に "0" を書き込んでください。
214
第 6 章 U-TIMER
[bit1] UTST (U-Timer STart)
U-TIMER の動作許可ビットです。
0: 停止。動作中でも "0" ライトで停止します。〔初期値〕
1: 動作。動作中に "1" を書き込んでも動作は続行されます。
[bit0] UTCR (U-Timer CleaR)
UTCRに"0"を書き込むとU-TIMER は0000H にクリアされます(f.f. も"0"にクリア) 。
常に "1" が読まれます。
( 注意事項 )
• ストップ状態からスタートビット UTST をアサート ( スタート ) すると自動的にリロー
ドします。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時にアサートする
と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。
• 動作中にクリアビット UTCR をアサートすると , カウンタも "0" クリアされます。この
ため , 出力波形にヒゲ状の短いパルスが出力される場合があり , UART が誤動作する可
能性があります。
出力クロックを使用している場合には , 動作中にクリアビットによるクリアを行わな
いでください。
• U-TIMER コントロールレジスタの bit1(U-TIMER スタートビット :UTST) および , bit0
(U-TIMER のクリアビット :UTCR) をタイマ停止状態で同時にアサートすると , クリア
した後のカウンタロードのタイミングで同レジスタのbit3(アンダフローフラグ:UNDR)
がセットします。また , 内部ボーレートクロックは同タイミングで High レベルになり
ます。
• アンダフローフラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は , 無効となります。
• UTIMC(U-TIMer Control register) の bit4(UTIE) および bit0(CLKS) には常に "0" を書き込
んでください。
• U-TIMER リロードレジスタへの書込みとリロードのタイミングが重複した場合に
は , 旧データがカウンタにロードされ , 新データがカウンタにロードされるのは , 次の
リロードのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
215
第 6 章 U-TIMER
6.3
動作説明
この節では , U-TIMER のボーレートの計算について説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER (U-TIMER0 → UART0, U-TIMER1 → UART1, U-TIMER2
→ UART2, U-TIMER3 → UART3, U-TIMER4 → UART4) のアンダフローフリップフロッ
プ ( ブロック図中 f.f.) をボーレート用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-TIMER の出力を 16 分周して使用します。
φ
bps =
(2n+2) 16
UCC 1=0 時
n: UTIMR (リロード値)
φ: 周辺クロック周波数
(ギアにより変動)
φ
bps =
(2n+3) 16
UCC 1=1時
最大 bps 周辺クロック (CLKP) 20.275MHz 時 633438bps
● CLK 同期モード
φ
bps =
(2n+2)
bps =
φ
UCC 1=0 時
n: UTIMR (リロード値)
φ: 周辺クロック周波数
(ギアにより変動)
UCC 1=1時
(2n+3)
最大 bps 周辺クロック (CLKP) 20.27MHz 時 10135000bps
216
第7章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの概要 , レ
ジスタの構成 / 機能 , および 16 ビットリロードタ
イマの動作について説明します。
7.1 16 ビットリロードタイマの概要
7.2 16 ビットリロードタイマのレジスタ
7.3 16 ビットリロードタイマの動作説明
217
第 7 章 16 ビットリロードタイマ
16 ビットリロードタイマの概要
7.1
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内
部カウント , カウント用クロック作成用プリスケーラ , コントロールレジスタで構成
されています。
■ 16 ビットリロードタイマの概要
カウント用クロックソースとして内部クロック 3 種類 ( 周辺クロックの 2 / 8 / 32 分周
選択可能 ), 外部イベントから選択できます。
割込みによる DMA 転送の起動が可能です。
本製品では 本タイマを 3 チャネル内蔵しています。
■ レジスタ一覧
図 7.1-1 16 ビットリロードタイマレジスタ
15
bit
14
13
12
11
CSL1
7
bit
MOD0
6
5
4
3
RELD INTE
10
9
8
CSL0
MOD2 MOD1
2
UF
1
0
CNTE TRG
コントロールステータスレジスタ
(TMCSR)
bit 15
0 16ビットタイマレジスタ
(TMR)
bit 15
0 16ビットリロードレジスタ
(TMRLR)
218
第 7 章 16 ビットリロードタイマ
■ ブロックダイヤグラム
図 7.1-2 16 ビットリロードタイマのブロックダイヤグラム
16ビットリロードレジスタ (TMRLR)
16
7
リロード
16
RELD
16ビットダウンカウンタ (TMR) UF
OUT
CTL.
R- BUS
カウントイネーブル
INTE
UF
リトリガ
クロックセレクタ
2
EXCK
IRQ
CSL1
CNTE
CSL0
TRG
外部タイマ出力
(TOT0~TOT2)
IN CTL.
TOE0~TOE2
φ
φ
PFRK 内のビット
φ
21 23 25
MOD2
MOD1
MOD0
外部
トリガ
選択
外部トリガ入力(TI)
周辺クロック入力
3
219
第 7 章 16 ビットリロードタイマ
7.2
16 ビットリロードタイマのレジスタ
この節では , 16 ビットリロードタイマで使用するレジスタの構成と機能について説
明します。
■ コントロールステータスレジスタ (TMCSR)
図 7.2-1 コントロールステータスレジスタ (TMCSR) のビット構成
TMCSR
bit
15
14
13
12
アドレス:
ch.0 00004EH
ch.1 000056 H bit
ch.2 00005EH
(R/W) (R/W)
7
6
5
MOD0
R/W
R
R/W
11
10
9
8
初期値
CSL1
CSL0
MOD2
MOD1
R/W
R/W
R/W
R/W
4
3
2
1
0
RELD
INTE
UF
CNTE
TRG
R/W
R/W
R/W
R/W
R/W
--XX0000 00000000 B
16 ビットタイマの動作モード , および割込みの制御をします。
UF, CNTE, TRG ビット以外のビットの書換えは , CNTE= 0 のときに行うようにしてく
ださい。
同時書込みは可能です。
13, 12, 5 ビットに write する際は必ず "0" を書き込んでください。
[bit13] (Reserved)
write する際は必ず "0" を書き込んでください。
[bit12] (Reserved)
write する際は必ず "0" を書き込んでください。
[bit11, bit10] CSL1, CSL0 (Conut source SeLect)
カウントソースセレクトビットです。カウントソースは , 内部クロックと外部イベ
ントを選択できます。選択可能なカウントソースを , 表 7.2-1 に示します。
また外部イベントをカウントソースに設定した場合のカウント有効エッジは
MOD1, MOD0 ビットにより設定されます。
表 7.2-1 CSL ビット設定カウントソース
CSL1
CSL0
カウントソース (φ:マシンクロック )
0
0
内部クロック φ/21
(ch.0 ∼ ch.2)
0
1
内部クロック φ/23
(ch.0 ∼ ch.2)
1
0
内部クロック φ/25
(ch.0 ∼ ch.2)
1
1
外部イベント
(ch.0 ∼ ch.2)
外部クロックに必要な最小パルス幅は , 2•T(T: 周辺系クロックマシンサイクル ) で
す。
220
第 7 章 16 ビットリロードタイマ
[bit9, bit8, bit7] MOD2, MOD1, MOD0 (MODe)
動作モードを選択するビットです。カウントソースが「内部クロック」の場合と
「外部イベント」の場合で機能が変わります。
内部クロックのとき : リロードトリガ設定
外部イベントのとき : カウント有効エッジの設定
また , MOD2 は必ず "0" を設定してください。
内部クロック選択時のリロードトリガ設定
カウントソースとして , 内部クロック (CSL1, CSL0=00, 01, 10) が選択されて
いる場合は MOD2 ∼ MOD0 ビットの設定により有効エッジが入力されると
リロードレジスタの内容をロードしてカウント動作を継続します。内部ク
ロック選択時の MOD2 ∼ MOD0 の設定を表 7.2-2 に示します。
表 7.2-2 MOD2 ∼ MOD0 の設定方法
MOD2
MOD1
MOD0
有効エッジ
0
0
0
ソフトウェアトリガ
0
0
1
外部トリガ ( 立ち上がりエッジ )
0
1
0
外部トリガ ( 立ち下がりエッジ )
0
1
1
外部トリガ ( 両エッジ )
1
X
X
設定禁止
( 注意事項 ) 表中の "X" は , 任意の値を示します。
外部イベント選択時の有効エッジ設定
カウントソースとして , 外部クロックイベント (CSL1, CSL0=11) が選択され
ている場合の MOD2 ∼ MOD0 の設定により , 有効エッジが入力されるとイベ
ントをカウントします。
外部イベント選択時の MOD2 ∼ MOD0 の設定を表 7.2-3 に示します。
表 7.2-3 MOD2 ∼ MOD0 の設定方法
MOD2
MOD1
MOD0
X
0
0
-
X
0
1
外部イベント ( 立ち上がりエッジ )
X
1
0
外部イベント ( 立ち下がりエッジ )
X
1
1
外部イベント ( 両エッジ )
有効エッジ
( 注意事項 ) 表中の "X" は , 任意の値を示します。
外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生し
ます。
221
第 7 章 16 ビットリロードタイマ
[bit6] (reserved)
未使用ビットです。読出し時に常に "0" が読めます。
[bit5] (Reserved)
write する際は必ず "0" を書き込んでください。
[bit4] RELD :
リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が 0000H
→ FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへロード
してカウント動作を続けます。
"0" のときワンショットモードになり , カウンタの値が 0000H → FFFFH へのアンダ
フローによりカウント動作を停止します。
[bit3] INTE :
割込み要求許可ビットです。"1" のとき , UF ビットが "1" になると割込み要求を発
生します。"0" のときは , 割込み要求を発生しません。
[bit2] UF :
タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフロー
により "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" 書込みは , 意味がありません。
リードモディファイライト系命令における読出し時には , "1" が読み出されます。
[bit1] CNTE :
タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動ト
リガ待ち状態になります。"0" 書込みによりカウント動作は停止します。
[bit0] TRG :
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込み動作は意味を持ちません。読出し値は , 常に "0" です。
このレジスタによるトリガ入力は , CNTE= 1 のときのみ有効となります。
CNTE= 0 のときには , 何も起こりません。
222
第 7 章 16 ビットリロードタイマ
■ 16 ビットタイマレジスタ (TMR)
図 7.2-2 16 ビットタイマレジスタ (TMR) のビット構成
bit 15
TMR
アドレス: ch.0 00004AH
ch.1 000052H
ch.2 00005AH
R
初期値
0
XXXXH
R
R
R
R
R
R
R
16 ビットタイマのカウント値を読出す事ができるレジスタです。初期値は不定です。
このレジスタの読出しは , 必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR)
図 7.2-3 16 ビットリロードレジスタ (TMRLR) のビット構成
bit 15
TMRLR
アドレス: ch.0 000048H
ch.1 000050H
ch.2 000058H
W
0
初期値
XXXXH
W
W
W
W
W
W
W
16 ビットリロードレジスタは , カウントの初期値を保持しておくレジスタです。
初期値は不定です。このレジスタへの書込みは , 必ず 16 ビットデータ転送命令で行っ
てください。
223
第 7 章 16 ビットリロードタイマ
7.3
16 ビットリロードタイマの動作説明
この節では , 16 ビットリロードタイマの動作について説明します。
■ 動作説明
● クロック動作
内部クロックを分周したクロックでタイマを動作させる場合 , カウントソースとして
周辺クロックの 2•8•32 分周のクロックから選択できます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE= 1 ) 動作モードに係
わらず常に有効です。
カウンタの起動 , カウンタの動作について , 図 7.3-1 に示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , T(T: 周辺クロックサイクル ) の時間がかかります。
図 7.3-1 カウンタの起動 , および動作
カウントクロック
リロードデータ
カウンタ
データロード
CNTE (レジスタ)
TRG (レジスタ)
T
224
-1
-1
-1
第 7 章 16 ビットリロードタイマ
● アンダフロー動作
カウンタの値が 0000H から FFFFH になる時をアンダフローとしています。従って ,〔リ
ロードレジスタの設定値 +1〕カウントでアンダフローが発生することになります。
アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ
スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の
ときカウンタは , FFFFH で停止します。
アンダフローによりコントロールレジスタの UF ビットがセットされ , INTE ビットが
"1" のとき割込要求を発生します。
アンダフロー動作について図 7.3-2 に示します。
図 7.3-2 アンダフロー動作
0000H
-1
-1
-1
[RELD=1]
0000H
FFFFH
[RELD=0]
225
第 7 章 16 ビットリロードタイマ
● カウンタの動作状態
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に
よって決まっています。設定可能な状態として CNTE= 0 , WAIT= 1 の停止状態 (STOP
状態 ), CNTE= 1 , WAIT= 1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE= 1 , WAIT= 0
の動作状態 (RUN 状態 ) があります。各状態の遷移を図 7.3-3 に示します。
図 7.3-3 カウンタ状態遷移
リセット
ハードウェアによる状態遷移
STOP CNTE=0, WAIT=1
レジスタアクセスによる状態遷移
カウンタ: 停止時の値を保持
リセット直後は不定
CNTE=1
TRG=0
WAIT
CNTE=1
TRG=1
CNTE=1, WAIT=1
カウンタ: 停止時の値を保持
リセット直後,ロードする
までは不定
RUN
カウンタ: 動作
RELD UF
TRG=1
CNTE=1, WAIT=0
TRG=1
LOAD CNTE=1, WAIT=0
リロードレジスタの
内容をカウンタへロード
RELD UF
ロード終了
■ 注意点
• 内部プリスケーラは , コントロールステータスレジスタのビット 1( タイマ許可
:CNTE) が "1" に設定されている状態でトリガがかけられることにより動作可能にな
ります。
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ
グセットが優先し , クリア動作は無効になります。
• 16 ビットタイマリロードレジスタへの書き込みはとリロードのタイミングが重な
った場合には , 旧データがカウンタにロードされ新データがカウンタにロードされ
るのは , 次のリロードの時になります。
• 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には ,
ロード ( リロード ) 動作の方が優先されます。
226
第8章
PPG(Programable Pulse
Generator)
この章では , PPG(Programable Pulse Generator)
タイマの概要 , レジスタの構成 / 機能および動作に
ついて説明します。
8.1 概要
8.2 PPG タイマのレジスタ
8.3 動作説明
8.4 PPG タイマの注意事項
227
第 8 章 PPG(Programable Pulse Generator)
8.1
概要
PPG は , 精度の高い PWM 波形を効率良く出力できます。
本品種は , PPG タイマを 4 チャネル内蔵しています。
■ 概要
• 各チャネルは , 16 ビットダウンカウンタ , 周期設定用バッファ付 16 ビットデータレ
ジスタ , デューティ設定用バッファ付 16 ビットコンペアレジスタ , 端子制御部から
構成されます。
• 16 ビットダウンカウンタのカウントクロックは , 4 種類から選択が可能です。
- 周辺クロック φ, φ/4, φ/16, φ/64
• カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化できます。
• 各チャネルごとに PPG 出力 (PPG0 ∼ PPG3) があります。
• レジスタ概要
- 周期設定レジスタ : バッファ付 , リロード用データレジスタ
バッファからの転送は起動トリガ検出 およびカウンタボローにより行います。カ
ウンタボローにより PPG 出力は反転します。
- デューティ設定レジスタ : バッファ付 , コンペアレジスタ
本レジスタ値とカウンタ値一致により PPG 出力は反転します。
• 端子制御概要
- デューティ一致で , "1" にセット。( 優先 )
- カウンタボローで , "0" にリセット。
- 出力値固定モードがあり , オール "L" ( または "H") を簡単に出力できます。
- 極性指定も可能です。
• 割込要求は , 以下の組合せから選択して発生できます。
- 本タイマ起動 ( ソフトトリガ もしくは トリガ入力 )
- カウンタボロー発生 ( 周期一致 )
- デューティ一致発生
- カウンタボロー発生 ( 周期一致 ) または , デューティ一致発生
• ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定
できます。また , 動作中の再起動も設定可能です。
228
第 8 章 PPG(Programable Pulse Generator)
■ レジスタ一覧
図 8.1-1 レジスタ一覧
アドレス
bit 15
0
Access
00000120H
PTMR0
R
ch.0 タイマレジスタ
00000122H
PCSR0
W
ch.0 周期設定レジスタ
00000124H
PDUT0
W
ch.0 デューティ設定レジスタ
R/W
ch.0 コントロールステータスレジスタ
00000126H
PCNH0 PCNL0
00000128H
PTMR1
R
ch.1 タイマレジスタ
0000012AH
PCSR1
W
ch.1 周期設定レジスタ
0000012CH
PDUT1
W
ch.1 デューティ設定レジスタ
R/W
ch.1 コントロールステータスレジスタ
0000012EH
PCNH1 PCNL1
00000130H
PTMR2
R
ch.2 タイマレジスタ
00000132H
PCSR2
W
ch.2 周期設定レジスタ
00000134H
PDUT2
W
ch.2 デューティ設定レジスタ
R/W
ch.2 コントロールステータスレジスタ
00000136H
PCNH2 PCNL2
00000138H
PTMR3
R
ch.3 タイマレジスタ
0000013AH
PCSR3
W
ch.3 周期設定レジスタ
0000013CH
PDUT3
W
ch.3 デューティ設定レジスタ
R/W
ch.3 コントロールステータスレジスタ
0000013EH
PCNH3
PCNL3
│
229
第 8 章 PPG(Programable Pulse Generator)
■ ブロックダイヤグラム
図 8.1-2 全体構成
外部TRG0
TRG 入力
PPGタイマ ch.0
PPG0
外部TRG1
TRG 入力
PPGタイマ ch.1
PPG1
外部TRG2
TRG 入力
PPGタイマ ch.2
PPG2
外部TRG3
TRG 入力
PPGタイマ ch.3
PPG3
図 8.1-3 1 チャネル分
PCRS
PDUT
プリスケーラ
1/1
1/4
1/16
1/64
cmp
CK
ロード
16 bit
ダウンカウンタ
スタート
ボロー
PPGマスク
PPG出力
S Q
周辺クロック
R
反転bit
イネーブル
TRG入力
エッジ検出
ソフトトリガ
230
割込み
選択
IRQ
第 8 章 PPG(Programable Pulse Generator)
8.2
PPG タイマのレジスタ
この節では , PPG タイマのレジスタについて説明します。
■ コントロールステータス レジスタ
図 8.2-1 コントロールステータスレジスタ (PCNH,PCNL) のビット構成
PCNH
bit 15
14
13
12
11
10
9
アドレス ch.0 000126H
ch.1 00012EH CNTE STGR MDSE RTRG CKS1 CKS0 PGMS
ch.2 000136H
R/W R/W R/W R/W R/W R/W R/W
ch.3 00013EH
0
0
0
0
0
0
0
PCNL
bit 7
6
5
4
3
2
アドレス ch.0 000127H
ch.1 00012FH EGS1 EGS0 IREN IRQF IRS1 IRS0
ch.2 000137H
R/W R/W R/W R/W R/W R/W
ch.3 00013FH
0
0
0
0
0
0
1
8
属性
初期値
動作中の書換
0
OSEL
─
─
R/W
0
×
属性
初期値
動作中の書換
[bit15] CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
0
停止 ( 初期値 )
1
許可
[bit14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことによりソフトウェアトリガが掛かります。
STGR ビットの読出し値は , 常に "0" です。
[bit13] MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択
します。
0
PWM 動作 ( 初期値 )
1
ワンショット動作
231
第 8 章 PPG(Programable Pulse Generator)
[bit12] RTRG: 再起動許可ビット
ソフトウェアトリガ , またはトリガ入力による再起動を許可するビットです。
0
再起動禁止 ( 初期値 )
1
再起動許可
[bit11, bit10] CKS1, CKS0: カウントクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。
CKS1
CKS0
0
0
φ ( 初期値 )
0
1
φ/4
1
0
φ/16
1
1
φ/64
周期
φ: 周辺クロック
[bit9] PGMS:PPG 出力マスク選択ビット
このビットに "1" を書き込むことによりモード設定 , 周期設定値 , デューティ設定値
に関わらず PPG 出力を "0" または , "1" にマスクすることができます。
表 8.2-1 PGMS に "1" 書込み時の PPG 出力
極性
PPG 出力
通常極性
L 出力
反転極性
H 出力
通常極性時にオール "H" または , 反転極性時にオール "L" を出力したい場合は , 周
期設定レジスタとデューティ設定レジスタに同値をライトすれば上記マスク値の
反転を出力できます。
[bit8]: 未使用ビットです。
232
第 8 章 PPG(Programable Pulse Generator)
[bit7, bit6] EGS1, EGS0: トリガ入力エッジ選択ビット
ジェネラルコントロールレジスタ 1 で選んだ起動要因の有効エッジを選択します。
どのモードを選択していてもソフトトリガのビットに "1" を書き込むとソフトトリ
ガは有効になります。
EGS1
EGS0
0
0
無効 ( 初期値 )
0
1
立上がりエッジ
1
0
立下りエッジ
1
1
両エッジ
エッジ選択
[bit5] IREN: 割込み要求許可ビット
0
禁止 ( 初期値 )
1
許可
[bit4] IRQF: 割込み要求フラグ
bit5 IREN が許可されていて bit3, bit2 IRS1, IRS0 にて選択した割込み要因が発生す
ると , 本ビットがセットされ CPU に割込み要求を発生します。
本ビットは , "0" 書込みによりクリアされます。
"1" を書き込んでもビット値は変化しません。
リードモディファイライト系命令におけるリード値は , ビット値に関わらず "1" で
す。
[bit3, bit2] IRS1, IRS0:
割込み要因選択ビット
bit4 IRQF をセットする要因を選択します。
IRS1
IRS0
0
0
ソフトウェアトリガ , またはトリガ入力あり ( 初期値 )
0
1
カウンタボロー発生 ( 周期一致 )
1
0
デューティ一致発生
1
1
カウンタボロー発生 ( 周期一致 ), またはデューティ一致発生
割込み要因
[bit1] (reserved)
未使用ビットです。
233
第 8 章 PPG(Programable Pulse Generator)
[bit0] OSEL: PPG 出力極性指定ビット
PPG 出力の極性を設定します。
bit9 PGMS との組合せで , 以下のようになります。
表 8.2-2 PPG 出力極性指定組合せ
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
PPG 出力
表 8.2-3 PPG 出力極性指定
極性
234
リセット後
デューティ一致
カウンタボロー
通常極性
"L" 出力
立上りエッジ
立下りエッジ
反転極性
"H" 出力
立下りエッジ
立上りエッジ
第 8 章 PPG(Programable Pulse Generator)
■ PCSR(PPG 周期設定レジスタ )
図 8.2-2 PCSR(PPG 周期設定レジスタ ) のビット構成
bit
PCSR
アドレス: ch.0 000122H
ch.1 00012AH
ch.2 000132H
ch.3 00013AH
15
14
7
13
6
属性
初期値
12
5
11
4
10
3
9
2
8
1
0
ライトのみ
不定
周期を設定するための , バッファ付レジスタです。バッファからの転送は , カウンタボ
ローで行われます。
周期設定レジスタの初期設定時 , および書換え時は , 周期設定レジスタの書込み後 , 必
ずデューティ設定レジスタへの書込み動作を行ってください。
本レジスタは , 16 ビットデータでアクセスしてください。
■ PDUT(PPG デューティ設定レジスタ )
図 8.2-3 PDUT(PPG デューティ設定レジスタ ) のビット構成
bit
PDUT
アドレス: ch.0 000124H
ch.1 00012CH
ch.2 000134H
ch.3 00013CH
15
14
7
13
6
属性
初期値
12
5
11
4
10
3
9
2
8
1
0
ライトのみ
不定
デューティを設定するための , バッファ付レジスタです。バッファからの転送は , カウ
ンタボローで行われます。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR < PDUT となるような値を設定しないでください。PPG 出力は不定となります。
本レジスタは , 16 ビットデータでアクセスしてください。
235
第 8 章 PPG(Programable Pulse Generator)
■ PTMR(PPG タイマレジスタ )
図 8.2-4 PTMR(PPG タイマレジスタ ) のビット構成
bit
PDMR
アドレス: ch.0 000120H
ch.1 000128H
ch.2 000130H
ch.3 000138H
15
14
7
属性
初期値
13
6
12
5
11
4
10
3
リードのみ
FFFFH
16 ビットダウンカウンタの値を読み出すことができます。
本レジスタは , 16 ビットデータでアクセスしてください。
236
9
2
8
1
0
第 8 章 PPG(Programable Pulse Generator)
動作説明
8.3
PWM 動作では , 起動トリガの検出時より連続してパルスを出力します。
■ PWM 動作
PWM 動作では , 起動トリガの検出時より連続してパルスを出力できます。
出力パルスの周期は , PCSR 値を変えることにより制御でき , またデューティ比は ,
PDUT 値を変えることにより制御できます。
( 注意事項 )
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
● PWM 動作タイミングチャート
図 8.3-1 再起動禁止の場合
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
0
PPG
(1)
(2)
T: カウントクロック周期
m : PCSR値
n : PDUT値
(1) = T (n+1) ms
(2) = T (m+1) ms
図 8.3-2 再起動許可の場合
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
0
PPG
(1)
(2)
237
第 8 章 PPG(Programable Pulse Generator)
■ ワンショット動作
ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。
再起動許可の場合は , 動作中にエッジを検出するとカウンタをリロードします。
● ワンショット動作タイミングチャート
図 8.3-3 再起動禁止の場合
立上りエッジ検出
トリガは無視されます。
起動
トリガ
m
n
0
PPG
(1)
(2)
図 8.3-4 再起動許可の場合
立上りエッジ検出
トリガにより再起動します。
起動
トリガ
m
n
0
PPG
(1)
(2)
238
第 8 章 PPG(Programable Pulse Generator)
■ 割込み要因とタイミングチャート
図 8.3-5 割込み要因とタイミングチャート (PPG 出力は , 通常極性 )
2.5T
0003
0002
0001
0000
0003
PPG
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5T (T: カウントク
ロック周期 ) を必要とします。
■ PPG 出力オール "L" または , オール "H" の出力方法例
図 8.3-6 PPG 出力をオール "L" にする出力方法例
PPG
デューティ
値を小さく
していく
ボローによる割込みでPGMS(マスクビット)に
"1"を書き込みます。
また, ボローによる割込みでPGMS(マスクビット)に
"0"を書き込めば,ひげを出力することなくPWM波形を
出力できます。
図 8.3-7 PPG 出力をオール "H" にする出力方法例
PPG
デューティ
値を大きく
していく
コンペア一致による割込みでデューティ設定
レジスタに周期設定レジスタ値と同じ値を
書き込みます。
239
第 8 章 PPG(Programable Pulse Generator)
8.4
PPG タイマの注意事項
この節では , PPG タイマの使用に関して , 注意すべき点を説明します。
■ PPG タイマの注意事項
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先され , クリア動作は , 無効となります。
• PPG コントロールレジスタの bit11, bit10( カウントロック選択ビット CKS1 および ,
CKS0) は , 書き込み後すぐに反映されるので , 設定変更は , カウント停止状態で行っ
てください。
• PPG ダウンカウンタ (PPGC:16 ビットダウンカウンタ ) は , ロードとカウントのタイ
ミングが重複した場合は , ロード動作の方を優先します。
240
第9章
多機能タイマ
この章では , 多機能タイマの概要 , レジスタの構成 /
機能 , および動作について説明します。
9.1 多機能タイマの概要
9.2 多機能タイマのレジスタ
9.3 多機能タイマの動作
241
第 9 章 多機能タイマ
9.1
多機能タイマの概要
多機能タイマは 16 ビットのアップカウンタ 4 チャネルで構成されています。この節
では , 多機能タイマの概要について説明します。
■ 多機能タイマの概要
多機能タイマの機能には , 以下の特長があります。
• ローパスフィルタにより設定クロック以下のノイズを除去
• 7 種類のクロック信号を使った細かい設定によるパルス幅計測が可能
• 端子入力からのイベントカウント機能
• 7 種類のクロックおよび , 外部入力クロックを使用したインターバルタイマ機能
■ レジスタ一覧
図 9.1-1 レジスタ一覧
bit 15
0000F0H
0000F2H
0000F4H
0000F6H
0000F8H
0000FAH
0000FCH
0000FEH
000100H
000102H
000104H
000106H
000108H
00010AH
00010CH
00010EH
000110H
242
8 7
0
(R/W)
T0LPCR T0CCR
(R/W)
T0TCR T0R
T0DRR
(R/W)
(R/W)
T0CRR
T1LPCR T1CCR
(R/W)
T1TRR T1R
(R/W)
(R/W)
T1DRR
(R/W)
T1CRR
T2LPCR T2CCR
(R/W)
T2TRR T2R
(R/W)
T2DRR
(R/W)
T2CRR
(R/W)
T3LPCR T3CCR
(R/W)
T3TRR T3R
(R/W)
(R/W)
T3DRR
(R/W)
T3CRR
アクセス禁止
TTEST
第 9 章 多機能タイマ
■ ブロックダイヤグラム
図 9.1-2 ブロックダイヤグラム
CLKP
TO
C
CKI
CK
16 bit Counter
CNT
CPIB
EN
CLR
CPIA
LPF
CLKP
OUT
243
第 9 章 多機能タイマ
9.2
多機能タイマのレジスタ
この節では , 多機能タイマで使用するレジスタの構成 , および機能について説明しま
す。
■ TxLPCR ( ローパスフィルタ制御レジスタ )
図 9.2-1 TxLPCR ( ローパスフィルタ制御レジスタ ) のビット構成
bit
TxLPCR 0000F0H
アドレス 0000F8H
000100H
000108H
15
14
13
12
11
10
9
8
初期値
FCx1 FCx0 FxEN
R/W
R/W
00000000B
R/W
TxLPCR は , 各入力端子に対するローパスフィルタ の設定を行います。8 ビットでのア
クセスが可能なレジスタです。本フィルタは論理的にノイズを除去している関係上 , ノ
イズ除去幅 +2 サイクル分だけ入力波形に対して出力波形はディレイを持ちます。
[bit15 ∼ bit11](reserved)
未使用ビットです。書込みは無視 , リード値は常に "0" です。
[bit10, bit9]FCx1, FCx0 ( フィルタクロック選択フラグ ) :
LPF の動作クロックを選択します。
表 9.2-1 動作クロック選択
FCx1
FCx0
0
0
0.2 µs [ 初期値 ]
0
1
0.4 µs
1
0
0.8 µs
1
1
1.6 µs
ノイズ除去幅 (@20.27 MHz)
[bit8 ]FxEN( フィルタ動作許可フラグ ):
フィルタを使用するかしないかの設定をします。
0: フィルタを使用しません。〔初期値〕
1: フィルタを使用します。
244
第 9 章 多機能タイマ
■ TxCCR ( キャプチャ制御レジスタ )
図 9.2-2 TxCCR ( キャプチャ制御レジスタ ) のビット構成
bit
TxCCR 0000F1H
アドレス 0000F9H
000101H
000109H
7
6
CPF
R/0
5
4
3
2
1
0
CPST CPED CPIE CPOV CPMD CPIS
R/W
R/W R/W
R/0
R/W
初期値
00000000B
R/W
TxCCR は , キャプチャモード時のカウント , エッジ , 割込みの設定を行います。
8 ビットでのアクセスが可能なレジスタです。動作中 ( 全体レジスタの ST=1) に本レジ
スタ書き換えた場合 , タイマの動作は保証できません , 必ず停止状態 (ST= 0) で書き換
えてください。
[bit7]CPF( キャプチャエッジ検出フラグ ):
キャプチャ終了エッジを検出したことを示します。
0 : キャプチャエッジなし。〔初期値〕
1 : キャプチャエッジあり。
本ビットへの "1" 書込みは無効です。
( 注意事項 )
本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。
[bit6](reserved)
未使用ビットです。書込みは無視 , リード値は常に "0" です。
[bit5]CPST( キャプチャ開始エッジ選択フラグ ):
キャプチャ開始エッジの極性を設定します。
0 : 立ち上りエッジ。〔初期値〕
1 : 立ち下りエッジ。
[bit4]CPED( キャプチャ終了エッジ選択フラグ ):
キャプチャ終了エッジの極性を設定します。
0 : 立ち上りエッジ。〔初期値〕
1 : 立ち下りエッジ。
[bit3]CPIE( キャプチャ割込み許可フラグ ):
キャプチャ終了を要因とした割込みの許可をします。
0 : キャプチャ割込み禁止。〔初期値〕
1 : キャプチャ割込み許可。
本ビットが 1 のときに CPF=1 となると CPU に対して割込みを発生します。
245
第 9 章 多機能タイマ
[bit2]CPOV( キャプチャオーバフロー検出フラグ ):
キャプチャモードのフリーランモードにてカウンタが FFFFH から 0000H へのオー
バフローを検出したことを示します。
0 : キャプチャオーバフローなし。〔初期値〕
1 : キャプチャオーバフローあり。
( 注意事項 )
• 本ビットへの "1" 書込みは無効です。
• 本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。
[bit1]CPMD( キャプチャカウントモードフラグ ):
キャプチャカウンタのカウントモードを設定します。
0 : フリーランモード
〔初期値〕
1 : 上限コンペアモード
[bit0]CPIS( キャプチャ入力選択フラグ ):
キャプチャ用の入力信号を選択します。
0 : CPIA 入力使用
1 : CPIB 入力使用
246
〔初期値〕
第 9 章 多機能タイマ
■ TxTCR ( タイマ設定レジスタ )
図 9.2-3 TxTCR ( タイマ設定レジスタ ) のビット構成
bit
TxTCR 0000F2H
アドレス 0000FAH
000102H
00010AH
15
14
13
TCF TSES TCC
R/0
R/W R/W
12
11
10
9
8
TIE CINV TCS2 TCS1 TCS0
R/W R/W
R/W R/W
初期値
00000000B
R/W
TxTCR レジスタはタイマの動作を制御します。8 ビットでのアクセスが可能なレジス
タです。
動作中 ( 全体レジスタの ST=1) に本レジスタ書き換えた場合 , タイマの動作は保証でき
ません。必ず停止状態 (ST= 0) で書き換えてください。
[bit15]TCF( タイマコンペア一致検出フラグ ):
タイマのコンペア一致を検出したことを示します。
0 : コンペア一致なし。〔初期値〕
1 : コンペア一致あり。
( 注意事項 )
• 本ビットへの "1" 書込みは無効です。
• 本フラグへのハードと CPU からの同時書込みはハードからの書込みが優先します。
[bit14]TSES( タイマスタトエッジ選択フラグ )
タイマのスタートエッジの設定を行います。
0 : 立ち上りエッジ〔初期値〕
1 : 立ち下りエッジ
[bit13]TCC( タイマカウントクリア設定フラグ ):
タイマがコンペア一致をしたときにカウンタをクリアする設定をします。
0 : カウントクリアあり。〔初期値〕
1 : カウントクリアなし。
[bit12]TIE( タイマ割込み許可フラグ ):
タイマ割込みを許可します。
0 : タイマ割込み禁止。〔初期値〕
1 : タイマ割込み許可。
本ビットが "1" のときに TCF=1 となると CPU に対して割込みを発生します。
247
第 9 章 多機能タイマ
[bit11]CINV( タイマクロック反転フラグ ):
外部端子からのタイマ入力のクロックを反転します。
0 : クロック立ち上りでカウントアップ 〔初期値〕
1 : クロック立ち下りでカウントアップ
[bit10 ∼ bit8]TCS2 ∼ TCS0( タイマクロック選択フラグ ):
タイマクロックを選択します。
( 注意事項 )
イベントカウントモードを使用するときは本ビットを "111" に設定してください。
TCS bit
248
選択クロック , ソース
TCS2
TCS1
TCS0
分周比
周期 (@20.27 MHz)
0
0
0
φ x 23
0.4 µs
0
0
1
φ x 25
1.6 µs
0
1
0
φ x 27
6.3 µs
0
1
1
φ x 29
25.3 µs
1
0
0
φ x 210
50.5 µs
1
0
1
φ x 212
202.1 µs
1
1
0
φ x 214
808.3 µs
1
1
1
外部クロック
第 9 章 多機能タイマ
■ TxR ( タイマ全体制御レジスタ )
図 9.2-4 TxR ( タイマ全体制御レジスタ ) のビット構成
bit
TxR
0000F3H
アドレス 0000FBH
000103H
00010BH
7
6
5
4
3
2
1
TST2 TST1 MD1 MD0
R/W R/W
R/W R/W
0
初期値
ST
00000000B
R/W
TxR レジスタはタイマの全体動作制御を制御します。
8 ビットでのアクセスが可能なレジスタです。
[bit7 ∼ bit5](reserved)
未使用端子です。書込みは無視 , リード値は常に "0" です。
[bit4, bit3]TST2, TST1( テストビット )
常に "0" を書き込んでください。
[bit2, bit1 ]MD1, MD0 ( タイマ選択フラグ ):
タイマ動作を選択します。
MD1
MD0
0
0
インターバルタイマ ( 初期値 )
0
1
イベントカウント
1
0
キャプチャ
1
1
設定禁止
選択モード
[bit0]ST( タイマ動作開始フラグ )
0 : タイマ動作を禁止します。〔初期値〕
1 : タイマ動作を許可します。
ST= 0 にする前には CPIE および TIE を "0" に設定してください。
ST= 0 になるのと同時に割込み要因が発生した場合は ST= 0 でありながら割込みが
発生してしまいます。
249
第 9 章 多機能タイマ
■ TxDRR ( タイマコンペアデータレジスタ )
図 9.2-5 TxDRR ( タイマコンペアデータレジスタ ) のビット構成
bit
15
14
TxDRR 0000F4H D15 D14
アドレス 0000FCH
000104H
R/W R/W
00010CH
7
6
bit
D7
D6
R/W R/W
13
12
11
10
9
8
D13
D12
D11
D11
D9
D8
R/W
R/W
R/W
R/W R/W
5
4
3
2
1
0
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W R/W
初期値
不定
R/W
初期値
不定
R/W
本レジスタは , タイマのコンペアデータを格納するレジスタです。このレジスタのデー
タとタイマカウンタの値を比較しコンペア一致を出力します。
したがって , タイマモードに於いてはインターバル時間を設定し , 外部イベントモード
ではイベント回数を設定して使用してください。また , キャプテャモードに於いてはカ
ウント上限値を入力します。本レジスタの 8 ビットアクセスは禁止です。本レジスタ
に 0 を設定すると , 216 カウントします。
■ TxCRR ( キャプチャデータレジスタ )
図 9.2-6 TxCRR ( キャプチャデータレジスタ ) のビット構成
bit
15
14
TxCRR 0000F6H D15 D14
アドレス 0000FEH
000106H
R/W R/W
00010EH
bit 7
6
D7
D6
R/W R/W
13
12
11
10
9
8
D13
D12
D11
D11
D9
D8
R/W
R/W
R/W
R/W R/W
R/W
5
4
3
2
1
0
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W R/W
本レジスタは , キャプチャの値を読み出すレジスタです。
本レジスタに書き込むことで初期値を入れることも可能です。
本レジスタの 8 ビットアクセスは禁止です。
250
R/W
初期値
不定
初期値
不定
第 9 章 多機能タイマ
■ TTEST ( テスト用レジスタ )
図 9.2-7 TTEST ( テスト用レジスタ ) のビット構成
bit
TTEST 000110H
アドレス
bit
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D10
D11
D9
D8
R/W R/W
R/W
R/W
R/W
R/W R/W
R/W
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W R/W
R/W R/W
初期値
不定
初期値
不定
R/W
本レジスタは , テスト専用レジスタです。アクセスしないでください。
251
第 9 章 多機能タイマ
9.3
多機能タイマの動作
本タイマはインターバルタイマ , イベントカウント , キャプチャモードの 3 種類の動
作モードを持ちます。
以下に各モードの動作概要を説明します。本モジュールのトグル出力はどのモード
においても初期値は "0" です。
■ インターバルタイマモード
インターバルタイマモードにおいては 7 種類のクロックソースから選択されたクロッ
クを用いてタイマカウントを行い , トグル出力を行い , またコンペアレジスタ値と一致
した場合に割込みを発生する機能があります。動作状態を下図に示します。
図 9.3-1 インターバルタイマモードの動作状態
0xFFFF
0x0000
252
第 9 章 多機能タイマ
■ イベントカウントモード
端子入力のエッジ検出を行いその回数にてカウントを行うモードです。
カウンタの値がコンペアレジスタと一致すると TCF が 1 となりその際に TIE=1 だと割
込みを発生します。コンペア一致したときにカウンタをクリアできます。
図 9.3-2 イベントカウントモードの動作状態
0
4
1
2
3
4
3
■ キャプチャモード
外部端子入力のエッジからエッジまでの幅を計測できます。計測用のクロックは 7 種
類から選択でき , 開始 , 終了エッジは立ち上がりおよび立下りのどちらかを選択できま
す。キャプチャの値は , フリーランモードでは終了エッジが来たときのカウント値が
キャプチャされ , 上限値コンペアモードでは終了エッジが来る前に上限値コンペア値
と一致した場合は上限値が , 一致しなかった場合は終了エッジのときのキャプチャ値
が入力されます。下記にフリーランモードの場合における , 立ち上がりエッジでカウン
ト開始 , 立下りエッジで終了の場合の例を示します。
図 9.3-3 キャプチャモードでの立上り・立下りの例
0xFFFF
0x0000
xxxx
7777
253
第 9 章 多機能タイマ
■ ローパスフィルタについて
本モジュールには外部端子入力ごとに 1 つづつのローパスフィルタが内蔵されていま
す。
本フィルタに於いて , 4 種類の幅にてノイズの除去を論理的に行うことが可能です。
図 9.3-4 ローパスフィルタでのノイズ除去
0
1
0
254
0
1
2
2
1
0
2
1
0
1
1
0
1
0
2
第 10 章
16 ビットパルス幅カウンタ
この章では , 16 ビットパルス幅カウンタの概要 ,
レジスタの構成 / 機能 , および動作について説明し
ます。
10.1 16 ビットパルス幅カウンタの概要
10.2 16 ビットパルス幅カウンタのレジスタ
10.3 16 ビット幅パルスカウンタの動作
255
第 10 章 16 ビットパルス幅カウンタ
10.1
16 ビットパルス幅カウンタの概要
16 ビットパルス幅カウンタは , 外部からの入力信号のパルス幅を 16 ビットのアップ
カウンタで測定するカウンタです。
■ 16 ビットパルス幅カウンタ
PWC は外部からの入力信号のパルス幅を 16 ビットのアップカウンタで測定します。
ハードウェアとして , 16 ビットアップカウンタ 1 個 , 8 ビット制御レジスタ 3 個と , PWC
データレジスタ , PWC 上限データレジスタ , LPF などから構成されています。
• データレジスタ転送時に割込み要求を発生
■ レジスタ構成
図 10.1-1 レジスタ一覧
アドレス
000090H
000094H
000098H
00009CH
bit 15
8
7
0
PWCCL
PWCCH
PWCD
PWCC2
Reserve
PWCUD
PWC制御レジスタ
PWCデータレジスタ
PWC制御レジスタ
PWC上限データレジスタ
■ ブロックダイヤグラム
図 10.1-2 ブロックダイヤグラム
上限値レジスタ
カウントクロック
サンプリング間隔
カウントクロック
カウントクリア
LPF
PMI
オーバフロー
上限値
5
キャプチャレジスタ
制御回路
4
制御
ビット
フラグセット
PWCD
サンプリング間隔選択
カウントクロック選択
PWCCH
PWCCL
IRQ
内部バス
256
16ビットカウンタ
第 10 章 16 ビットパルス幅カウンタ
10.2
16 ビットパルス幅カウンタのレジスタ
この節では , 16 ビットパルス幅カウンタで使用するレジスタの構成 , および機能に
ついて説明します。
■ PWC 制御レジスタ (PWCCL)
図 10.2-1 PWC 制御レジスタ (PWCCL) のビット構成
bit
PWCCL
7
INT
( R/W )
6
INTE
( R/W )
5
OVFL
( R/W )
4
OVFLE
( R/W )
3
2
1
0
ST
(R/W)
初期値
0000--00B
[bit7]:INT
PWC データレジスタにキャプチャデータを転送したことを示すフラグです。キャ
プチャデータ転送割込み要求が許可されている時 , (bit6:INTE=1) 本ビットがセット
されると割込み要求が発生します。
リードモディファイライト系命令では "1" がリードされます。
0
割込み要因クリア
1
キャプチャ・データあり
[bit6]:INTE
キャプチャデータ転送割込み要求許可ビットです。
0
割込み要求禁止
1
割込み要求許可
[bit5] :OVFL
16 ビットアップカウンタが FFFFH から 0000H へオーバフローしたことを示すフラ
グですオーバフロー割込み要求が許可されている時 , (bit4:OVFLE=1) 本ビットが
セットされると割込み要求が発生します。
リードモディファイライト系命令では "1" がリードされます。
0
割込み要因クリア
1
オーバフロー発生
[bit4]:OVFLE
オーバフロー割込み要求許可ビットです。
0
割込み要求禁止
1
割込み要求許可
257
第 10 章 16 ビットパルス幅カウンタ
[bit3, bit2]: 未使用ビットです。
[bit1]:Reserved
予約ビットです。ライト時は必ず "0" を書いてください。
[bit0]:ST
PWC スタート・ビットです。
0
PWC 停止
1
PWC 動作
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
258
第 10 章 16 ビットパルス幅カウンタ
■ PWC 制御レジスタ (PWCCH)
図 10.2-2 PWC 制御レジスタ (PWCCH) のビット構成
bit
7
PWCCH TEST1
(R/W)
6
TEST0
(R/W)
5
(
4
CSLF1
(R/W)
)
3
CSLF0
(R/W)
2
CS2
(R/W)
1
CS1
(R/W)
0
CS0
(R/W)
初期値
00-00000B
[bit7, bit6]:TEST1, TEST0
テスト・ビットです。
"1" を書込み禁止
[bit5]: 未使用ビットです。
[bit4, bit3]:CSLF1, CSLF0
LPF のサンプリング間隔を以下から選択します。
CSLF1
CSLF0
サンプリング間隔
0
0
φ × 26
0
1
φ × 28
1
0
φ × 210
1
1
φ × 212
(φ はシステムベースクロックの周期 )
[bit2, bit1, bit0]:CS2, CS1, CS0
内部カウントクロックを以下のように選択します。
CS2 ∼ CS0
カウントクロック選択
0
0
0
φ
0
0
1
φ × 26
0
1
0
φ × 28
0
1
1
φ × 210
1
0
0
φ × 212
(φ はシステムベースクロックの周期 )
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
259
第 10 章 16 ビットパルス幅カウンタ
■ PWC・データ・レジスタ (PWCD)
図 10.2-3 PWC・データ・レジスタ (PWCD) のビット構成
bit
15
14
13
12
11
10
9
8
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
7
6
5
4
3
2
1
0
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
PWCD
bit
PWCD
初期値
XXXX XXXXB
初期値
XXXX XXXXB
パルス幅の計測値を格納するレジスタです。入力信号のエッジでのみキャプチャ値を
取り込みます。
オーバフロー時と上限値を越したときは取り込みません。
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
260
第 10 章 16 ビットパルス幅カウンタ
■ PWC 制御レジスタ 2(PWCC2)
図 10.2-4 PWC 制御レジスタ 2(PWCC2) のビット構成
7
bit
PWCC2 UPINT
( R/W )
6
UPINTE
( R/W )
5
LOW
( R/W )
4
3
2
1
0
初期値
000-----B
[bit7]:UPINT
設定した上限値レジスタの値までカウントしたことを示すフラグです。上限値割込
み要求が許可されている時 , (bit6:UPINTE=1) 本ビットがセットされると割込み要求
が発生します。
リードモディファイライト系命令では "1" がリードされます。
0
割込み要因クリア ( 初期値 )
1
上限値オーバカウントあり
[bit6]:UPINTE
上限値割込み要求許可ビットです。本ビットに "1" が設定されているとカウンタ値
と上限設定レジスタとの比較を行います。
0
割込み要求禁止 ( 初期値 )
1
割込み要求許可
[bit5] :LOW
データレジスタに入っているキャプチャ値が LOW 幅を示すことを表します。
0
HIGH 幅測定終了 ( 初期値 )
1
LOW 幅測定終了
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
261
第 10 章 16 ビットパルス幅カウンタ
■ PWC・上限値設定レジスタ (PWCUD)
図 10.2-5 PWC・上限値設定レジスタ (PWCUD) のビット構成
bit
PWCUD
bit
PWCUD
15
14
13
12
11
10
9
8
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
7
6
5
4
3
2
1
0
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
( R/W )
初期値
XXXX XXXXB
初期値
XXXX XXXXB
パルス幅測定の上限値を格納するレジスタです。
本レジスタは各幅に対応しますので , H 幅 , L 幅にかかわらず上限値を越したパルスを
測定しますと , PWCC2 レジスタの UPINT ビットがセットされます。また , 本レジスタ
をカウンタ値が越した場合でもカウントは連続して行われ , 停止しません。
また , 本レジスタの初期値は不定ですので , PWCC2 レジスタの UPINTE ビットに "1"
を書いて上限値比較をする前に上限値をライトしてください。
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
262
第 10 章 16 ビットパルス幅カウンタ
10.3
16 ビット幅パルスカウンタの動作
PWC は 16 ビットアップカウンタ , 8 ビット制御レジスタ 3 個 , PWC データレジス
タ , 上限値設定レジスタ , LPF などから構成され , パルス幅を測定します。また , カ
ウントクロックは , 5 種類から選択可能です。
■ パルス幅カウント動作
PWC は , PMI 信号の立上りおよび , 立下りエッジでカウンタ値のキャプチャとカウン
タのクリアを行います。クリアされたカウンタは , そのままカウント動作を継続しま
す。またキャプチャを行うと , 割込みを発生します。
カウンタ値が "FFFFH" から "0000H" になるとオーバフローによる割込みを発生します。
図 6-11-2. にこれらの動作を示します。
図 10.3-1 PWC 動作図
ST (動作許可)
上限値割込みをセットする
がキャプチャはしない
PMI入力
エッジ
エッジ
FFFFH
上限値 mmmH
カウント値
0000H
PWCD
xxxxH
aaaaH
bbbbH
ccccH
ddddH
eeeeH
INT
UPINT
OVFL
LOW
( 注意事項 )
動作許可後 (ST=1) の最初のエッジでは , キャプチャはしません。
263
第 10 章 16 ビットパルス幅カウンタ
■ カウントクロックの選択
カウンタのカウントクロックは , 5 種類から選択できます。
選択できるカウントクロックは , 以下のとおりです。
表 10.3-1 カウントクロックの選択
CS2
CS1
CS0
カウントクロック選択
PLL4 逓倍 (40MHz)
PLL オフ ( 原振 10MHz)
0
0
0
CLKP
50ns
200ns
0
0
1
φ × 26
*1
1.6µs
6.3µs
0
1
0
φ × 28
*1
6.3µs
25.3µs
0
1
1
φ × 210
*1
25.3µs
101.0µs
1
0
0
φ × 212
*1
101.0µs
404.1µs
(CLKP は周辺クロック , φ はシステムベースクロックの周期 )
■ LPF のサンプリング間隔について
LPF のサンプリング間隔を以下の設定から選択できます。
表 10.3-2 LPF のサンプリング間隔
CSLF1
CSLF0
サンプリング間隔
0
0
φ × 26
0
1
1
1
PLL4 逓倍 (40MHz)
PLL オフ ( 原振 10MHz)
*
1.6µs
6.3µs
φ × 28
*
6.3µs
25.3µs
0
φ × 210
*
25.3µs
101.0µs
1
φ × 212
*
101.0µs
404.1µs
(φ はシステムベースクロックの周期 )
*: 設定時の注意
PWC の動作クロックは , CLKP です。カウントクロック , LPF のサンプリングクロッ
クは φ で動作します。
よって PWC の動作クロックよりカウントクロック , LPF のサンプリングクロック
のほうが早いと正しく動作しません。
周期 : PWC の動作クロック× 4 <カウントクロック
PWC の動作クロック× 4 < LPF のサンプリングクロック の条件を守ってください。
例 :CLKP 20MHz 時 : 50ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし
264
CLKP 10MHz 時
100ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし
CLKP 5MHz 時
200ns × 4 <カウントクロック (φ × 26:1.6µs) 問題なし
CLKP 0.3MHz 時
3300ns × 4 <カウントクロック (φ × 26:1.6µs) 設定禁止
第 10 章 16 ビットパルス幅カウンタ
図 10.3-2 LPF の動作
Lが除去されます
Hが除去されます
入力信号
サンプリングクロック
LPF出力
Hが除去されます
Lが除去されます
入力信号
サンプリングクロック
LPF出力
■ 割込み要求発生
以下の 3 つの割込み要求を発生することが可能です。
● キャプチャデータ転送よる割込み要求
PWC データレジスタにキャプチャデータを転送すると割込みフラグがセットされ , 割
込み要求が許可されていると割込み要求が発生します。
● カウンタのオーバフローによる割込み要求
測定中 , カウンタ値が "FFFFH" から "0000H" へオーバフローするとオーバフローフラグ
がセットされ , 割込み要求が許可されていると割込み要求が発生します。
オーバフローではキャプチャはしません。
● カウンタ中の上限値レジスタを超えてカウントした場合の割込み要求
測定中 , カウンタ値が上限設定レジスタの値より大きくなった場合上限フラグがセッ
トされ , 割込み要求が許可されていると割込み要求が発生します。
265
第 10 章 16 ビットパルス幅カウンタ
266
第 11 章
割込みコントローラ
この章では , 割込みコントローラの概要 , レジスタ
の構成 / 機能 , 割込みコントローラの動作 , および
ホールドリクエスト取下げ要求機能の使用例につ
いて説明します。
11.1 割込みコントローラの概要
11.2 割込みコントローラのレジスタ
11.3 割込みコントローラの動作
11.4 ホールドリクエスト取り下げ要求機能 (HRCR) の
使用例
267
第 11 章 割込みコントローラ
11.1
割込みコントローラの概要
割込みコントローラは , 割込み受付 / 調停処理をつかさどります。
■ ハードウェア構成
本モジュールは , 以下のものより構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• HOLD リクエスト取り下げ要求発生部
■ 主要機能
本モジュールには , 主に以下の様な機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111" 以外の割込み発生によるストップモードからの復帰指
示 (CPU へ )
• バスマスタへの HOLD リクエスト取り下げ要求発生
268
第 11 章 割込みコントローラ
■ レジスタ一覧
図 11.1-1 レジスタ一覧
bit
7
6
5
4
3
2
1
0
: 00000440H
--
--
--
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 ICR20
: 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
R
R/W
R/W R/W R/W
269
第 11 章 割込みコントローラ
bit
7
6
5
: 00000460H
--
--
--
ICR4 ICR3 ICR2 ICR1
ICR0 ICR32
: 00000461H
--
--
--
ICR4 ICR3 ICR2 ICR1
ICR0 ICR33
: 00000462H
--
--
--
ICR4 ICR3 ICR2 ICR1
ICR0 ICR34
: 00000463H
--
--
--
ICR4 ICR3 ICR2 ICR1
ICR0 ICR35
: 00000464H
--
--
--
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 ICR3 ICR2 ICR1 ICR0 ICR47
R
R/W
R/W R/W R/W
MHALTI
R/W
--
--
LVL4 LVL3 LVL2 LVL1 LVL0 HRCL
R
R/W R/W R/W R/W
: 0000045H
4
3
2
■ ブロックダイヤグラム
図 11.1-2 ブロックダイヤグラム
270
1
0
第 11 章 割込みコントローラ
11.2
割込みコントローラのレジスタ
この節では , 割込みコントローラのレジスタ構成 , および機能について説明します。
■ ICR(Interrupt Control Register)
図 11.2-1 ICR(Interrupt Control Register) のビット構成
bit
7
6
5
--
--
--
4
3
2
1
ICR4 ICR3 ICR2
R
R/W
R/W
0
ICR1 ICR0
R/W
初期値
---11111B
R/W
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
[bit4 ∼ bit0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ
ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 11.2-1 に示します。
表 11.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4 *
ICR3
ICR2
ICR1
ICR0
割込みレベル
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
1
1
1
1
1
31
システム予約
(強)
(弱)
割込み禁止
* : ICR4 は "1" 固定で , "0" を書き込むことはできません。
271
第 11 章 割込みコントローラ
■ HRCL(Hold Request Cancel Level register)
図 11.2-2 HRCL(Hold Request Cancel Level register) のビット構成
bit
7
アドレス: 00000045H MHALTI
R/W
6
5
--
--
4
3
2
1
0
LVL4 LVL3 LVL2 LVL1 LVL0
R
R/W
R/W
R/W
初期値
0--11111B
R/W
ホールドリクエスト取り下げ要求発生のためのレベル設定レジスタです。
[bit7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[bit4 ∼ bit0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取り下げ要求を出すための割込みレベルを設
定します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取り下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
272
第 11 章 割込みコントローラ
11.3
割込みコントローラの動作
この節では , 割込みコントローラの動作の , 以下の項目について説明します。
• 優先順位判定
• NMI
• ホールドリクエスト取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 次の通りです。
1. NMI
2. 以下の条件を満たす要因
- 割込みレベルの数値が 31 以外。(31 は割込禁止 )
- 割込みレベルの数値が最も小さい要因。
- その中で , 最も小さい割込番号を持つ要因。
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31(11111B) を出力します。その時の割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係をに示します。
下表の内容は 実際の製品とは異なります
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 4)
割込み番号
割込み要因
割込みレベ
ル
オフ
セット
TBR のデ
フォルトア
ドレス
RN
10 進
16 進
リセット
0
00
−
3FCH
000FFFFCH
−
モードベクタ
1
01
−
3F8H
000FFFF8H
−
システム予約
2
02
−
3F4H
000FFFF4H
−
システム予約
3
03
−
3F0H
000FFFF0H
−
システム予約
4
04
−
3ECH
000FFFECH
−
システム予約
5
05
−
3E8H
000FFFE8H
−
システム予約
6
06
−
3E4H
000FFFE4H
−
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
−
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
−
INTE 命令
9
09
−
3D8H
000FFFD8H
−
273
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 4)
割込み番号
割込み要因
割込みレベ
ル
オフ
セット
TBR のデ
フォルトア
ドレス
RN
10 進
16 進
命令ブレーク例外
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
12
外部割込み 4 (USB-function)
20
14
ICR04
3ACH
000FFFACH
13
外部割込み 5 (USB-Host)
21
15
ICR05
3A8H
000FFFA8H
14
外部割込み 6 (OSDC)
22
16
ICR06
3A4H
000FFFA4H
−
外部割込み 7 (MS-IF)
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
−
274
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 4)
割込み番号
割込み要因
割込みレベ
ル
オフ
セット
TBR のデ
フォルトア
ドレス
RN
10 進
16 進
A/D
38
26
ICR22
364H
000FFF64H
15
PPG0
39
27
ICR23
360H
000FFF60H
−
PPG1
40
28
ICR24
35CH
000FFF5CH
−
PPG2
41
29
ICR25
358H
000FFF58H
−
PPG3
42
2A
ICR26
354H
000FFF54H
−
PWC
43
2B
ICR27
350H
000FFF50H
−
システム予約
44
2C
ICR28
34CH
000FFF4CH
−
システム予約
45
2D
ICR29
348H
000FFF48H
−
メイン発振待ち
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
−
システム予約
48
30
ICR32
33CH
000FFF3CH
−
時計タイマ
49
31
ICR33
338H
000FFF38H
−
I2C ch.0
50
32
ICR34
334H
000FFF34H
−
I2C ch.1
51
33
ICR35
330H
000FFF30H
−
I2C ch.2
52
34
ICR36
32CH
000FFF2CH
−
I2C ch.3
53
35
ICR37
328H
000FFF28H
−
UART3 ( 受信完了 )
54
36
ICR38
324H
000FFF24H
−
UART4 ( 受信完了 )
55
37
ICR39
320H
000FFF20H
−
UART3 ( 送信完了 )
56
38
ICR40
31CH
000FFF1CH
−
UART4 ( 送信完了 )
57
39
ICR41
318H
000FFF18H
−
多機能タイマ 0
58
3A
ICR42
314H
000FFF14H
−
多機能タイマ 1
59
3B
ICR43
310H
000FFF10H
−
多機能タイマ 2
60
3C
ICR44
30CH
000FFF0CH
−
多機能タイマ 3
61
3D
ICR45
308H
000FFF08H
−
システム予約
62
3E
ICR46
304H
000FFF04H
−
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
−
システム予約
(REALOS にて使用 *1)
64
40
−
2FCH
000FFEFCH
−
275
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 4)
割込み番号
割込み要因
割込みレベ
ル
オフ
セット
TBR のデ
フォルトア
ドレス
RN
10 進
16 進
システム予約
(REALOS にて使用 *1)
65
41
−
2F8H
000FFEF8H
−
システム予約
66
42
−
2F4H
000FFEF4H
−
システム予約
67
43
−
2F0H
000FFEF0H
−
システム予約
68
44
−
2ECH
000FFEECH
−
システム予約
69
45
−
2E8H
000FFEE8H
−
システム予約
70
46
−
2E4H
000FFEE4H
−
システム予約
71
47
−
2E0H
000FFEE0H
−
システム予約
72
48
−
2DCH
000FFEDCH
−
システム予約
73
49
−
2D8H
000FFED8H
−
システム予約
74
4A
−
2D4H
000FFED4H
−
システム予約
75
4B
−
2D0H
000FFED0H
−
システム予約
76
4C
−
2CCH
000FFECCH
−
システム予約
77
4D
−
2C8H
000FFEC8H
−
システム予約
78
4E
−
2C4H
000FFEC4H
−
システム予約
79
4F
−
2C0H
000FFEC0H
−
INT 命令で使用
80
|
255
50
|
FF
−
2BCH
|
000H
000FFEBCH
|
000FFC00H
−
276
第 11 章 割込みコントローラ
■ NMI(Non Maskable Interrupt)
NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま
す。
そのため , 他の割込み要因と同時発生の場合は常に NMI が選択されます。
● NMI が発生すると , CPU に対して次の情報を伝えます。
割込みレベル :15(01111B)
割込み番号
:15(0001111B)
● NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは
NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。
● NMI による DMA 転送の抑止
NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が
抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後にて
MHALTI ビットを "0" にクリアしてください。
277
第 11 章 割込みコントローラ
■ ホールドリクエスト取り下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中に行いたい場合は , ホールドリクエスト
発生元においてリクエストを取り下げてもらう必要があります。この取り下げ要求発
生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取り下げ要求を発生します。
HRCL レジスタの割込みレベル>優先度判定後の割込みレベル→取り下げ要求発生
HRCL レジスタの割込みレベル≦優先度判定後の割込みレベル→取り下げ要求なし
取り下げ要求発生原因となった割込み要因をクリアしない限り , この取り下げ要求は
有効であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応す
る割込み要因をクリアしてください。
また , NMI を使用した時は , HRCL レジスタの MHALTI ビットが "1" となっているた
め , 取り下げ要求が有効になっています。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。
11111B に設定した場合は全ての割込みレベルに対して取り下げ要求を発生し , また ,
10000B に設定した場合は NMI でのみ取り下げ要求を発生することになります。
ホールドリクエスト取り下げ要求発生となる割込みレベルの設定を表 11.3-2 に示しま
す。
表 11.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取り下げ要求発生となる割込みレベル
16
NMI のみ
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
∼
∼
31
NMI, 割込みレベル 16 ∼ 30[ 初期値 ]
リセット後は , 全ての割込みレベルに対して DMA 転送を抑止します。すなわち , 割込
みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値に
設定してください。
278
第 11 章 割込みコントローラ
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111 以外 ) が 1 つでも発
生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。
( 注意事項 )
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI の設定を行ってください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺
の制御レジスタにて割込みレベルを 11111 にしてください。
279
第 11 章 割込みコントローラ
11.4
ホールドリクエスト取り下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA に対してホール
ドリクエスト を取り下げてもらってホールド状態を解除する必要があります。ここ
では , 割込みを利用して DMA に対してホールドリクエスト の取り下げ , すなわち ,
CPU の優先動作を実現します。
■ 制御レジスタ
HRCL( ホールドリクエスト キャンセル レベル 設定レジスタ ): 本モジュール
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト 取り下げ要求を発生します。その基準となるレ
ベルを設定します。
ICR: 本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
■ ハードウェア構成
各信号の流れは , 次のようになっています。
図 11.4-1 各信号の流れ
IRQ
MHALTI
I-UNIT
DHREQ
DMA
B-UNIT
CPU
(ICR)
(HRCL)
280
DHACK
DHREQ: D
DHACK: D
IRQ:
MHALTI:
第 11 章 割込みコントローラ
■ シーケンス
図 11.4-2 割込みレベル HRCL < ICR(LEVEL)
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。
多重割込みの場合を , 以下に示します。
図 11.4-3 割込みレベル HRCL < ICR( 割込み I) < ICR( 割込み II)
割込みルーチンの例
① , ③割込要因クリア
∼
② , ④ RETI
上記例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した場
合を示しています。HRCL レジスタに設定した割込みレベルより高い割込みレベルが
発生している間は , DHREQ はさがっています。
■ 注意事項
HRCL レジスタと ICR に設定する割込みレベルの関係には , 充分注意してください。
281
第 11 章 割込みコントローラ
282
第 12 章
外部割込み・NMI 制御部
この章では , 外部割込み /NMI 制御部の概要 , レジ
スタの構成 / 機能 , および動作について説明しま
す。
12.1 外部割込み /NMI 制御部の概要
12.2 外部割込み /NMI 制御部のレジスタ
12.3 外部割込み /NMI 制御部の動作
283
第 12 章 外部割込み・NMI 制御部
外部割込み /NMI 制御部の概要
12.1
外部割込み制御部は ,NMI および INT0 ∼ INT7 に入力される外部割込み要求の制御
を行うブロックです。
検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下りエッジ " から選
択できます (NMI 以外 ) 。
INT4 ∼ INT7 はチップ内部で USB ホスト・USB ファンクション・OSDC の割込み
要求に接続されています。
■ レジスタ一覧
図 12.1-1 レジスタ一覧
bit
bit
bit
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
15
14
13
12
11
10
9
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
5
4
3
2
1
0
LB2
LA2
LB1
LA1
LB0
LA0
bit
7
LB3
6
LA3
(ENIR)
(EIRR)
外部割込み許可レジスタ
外部割込み要因レジスタ
8
(ELVR)
要求レベル設定レジスタ
■ ブロックダイヤグラム
図 12.1-2 ブロックダイヤグラム
R BUS
8
割込み
要求
割込み許可レジスタ
3
要因 F/F
エッジ検出回路
3
INT0~INT3
NMI
8
16
284
ゲート
割込み要因レジスタ
要求レベル設定レジスタ
第 12 章 外部割込み・NMI 制御部
12.2
外部割込み /NMI 制御部のレジスタ
この節では , 外部割込み /NMI 制御部で使用するレジスタの構成 , および機能につい
て説明します。
■ 割込み許可レジスタ (ENIR : ENable Interrupt request Register)
図 12.2-1 割込み許可レジスタ (ENIR : ENable Interrupt request Register) のビット構成
bit
7
ENIR アドレス: 000041H EN7
6
5
4
3
2
1
0
EN6
EN5
EN4
EN3
EN2
EN1
EN0
初期値
00000000B
[R/W]
ENIRn は外部割込み要求出力のマスク制御を行います。このレジスタの "1" を書かれ
たビットに対応する割込み要求出力は許可され (INT0 の許可を EN0 が制御 ), 割込みコ
ントローラに対して要求が出力されます。"0" が書かれたビットの対応する端子は割込
み要因を保持しますが , 割込みコントローラに対しては要求を発生しません。
NMI に対するマスクビットは , 存在しません。
■ 外部割込み要因レジスタ (EIRR : External Interrupt Request Register)
図 12.2-2 外部割込み要因レジスタ (EIRR : External Interrupt Request Register) のビット構成
bit
15
EIRR アドレス: 000040H ER7
14
13
12
11
10
9
8
ER6
ER5
ER4
ER3
ER2
ER1
ER0
初期値
00000000B
[R/W]
EIRRn は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの
要求を示すフリップフロップ (NMI フラグ ) 内容をクリアするレジスタです。この EIRR
レジスタを読み出した時に "1" であった場合 , そのビットに対応する端子に外部割込み
要求があることを示します。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。
"1" の書込みは無効です。
リード・モディファイ・ライトのリード時には "1" が読まれます。
NMI フラグは , ユーザからリード / ライトできません。
( 参照 )
NMI フラグについては , 図 12.3-4 を参照してください。
285
第 12 章 外部割込み・NMI 制御部
■ 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register)
図 12.2-3 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) のビット構成
ELVRn は要求検出の選択を行うレジスタです。INT0 ∼ INT15 に 2 ビットづつが割当
てられていて , 以下のような設定になります。要求入力がレベルの場合 , EIRR の各ビッ
トをクリアしても入力がアクティブレベルならば該当するビットは再びセットされま
す。
表 12.2-1 ELVR 割り当て表
LBx LAx
動作
00
L レベルで要求あり
01
H レベルで要求あり
10
立上りエッジで要求あり
11
立下りエッジで要求あり
NMI は常にその立下りエッジが検出されます ( ストップ時を除く )。
ストップ時は , L レベル検出となります。
INT はストップ時 , H レベル検出にしてください。
<注意事項>
外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますので ,
外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてください。
外部割込み要因レジスタをクリアする際はいったん , 外部割込み要求レベルレジスタを読
み出してからクリアの書き込みを行ってください。
286
第 12 章 外部割込み・NMI 制御部
12.3
外部割込み /NMI 制御部の動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された
要求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号
を発生します。
■ 外部割込みの動作について
割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本リソース
からの割込みが最も優先順位が高かったときに , 該当する割込みが発生します。
図 12.3-1 外部割込みの動作
■ スタンバイからの復帰について
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求は H レベル要求となります。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
■ 外部割込みの動作手順について
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。
4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。
5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアする。
6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。
( ただし , 5. と 6. は 16 ビットデータによる同時書込み可 )
本モジュール内のレジスタを設定するときには必ず許可レジスタを禁止状態に設定し
ておかなくてはなりません。また , 許可レジスタを許可状態にする前に必ず要因レジス
タをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に
誤って割込み要因が起こってしまうことを避けるためです。
287
第 12 章 外部割込み・NMI 制御部
■ 外部割込み要求レベルについて
1. 要求レベルがエッジ要求の時 , エッジがあったことを検出するためには , パルス幅
は最小 3 マシンサイクル ( 周辺クロックマシンサイクル ) 必要とします。
2. 要求入力レベルがレベル設定の時 , 外部より要求入力が入ってその後取り下げられ
ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティ
ブのままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり
ます。
図 12.3-2 レベル設定時の要因保持回路のクリア
図 12.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
288
第 12 章 外部割込み・NMI 制御部
■ NMI
1. NMI は , ユーザ割込みの中で最強の割込みで , マスクすることは , 不可能です。例外
として , リセット直後から ILM を設定するまではマスクされます。
2. NMI の受け付けは下記の通りです。
- 通常時 : 立下りエッジ
- STOP 時 : "L" レベル
3. NMI によってストップモードの解除が可能です。ストップ状態で "L" レベルが入力
されるとストップ状態が解除され発振安定待ち時間が取られます。
の発振安定待ち時間内に NMI 端子を "H" レベルに戻すと NMI 要因がなくなってし
まい動作再開後 NMI 処理が行われません。ストップ状態解除後に NMI 処理を行い
たい場合は , NMI 端子を "L" レベルのままにして , NMI 処理ルーチン内で "H" レベ
ルに戻すようにしてください。
NMI 要求検出部は NMI フラグがあり , NMI 要求によりセットされ , NMI 自身の割込み
の受付け , もしくは , リセットでのみクリアされます。なお , このビットはリード / ラ
イトできません。
図 12.3-4 NMI 要求検出
(NMIフラグ)
NMI要求
Q SX
(ストップ解除)
R
0
立下り
エッジ検出
NMI
1
ストップ
φ
クリア (RST,interrupt acknowledge)
289
第 12 章 外部割込み・NMI 制御部
290
第 13 章
REALOS 関連ハード
この章では , REALOS 関連ハードの , 遅延割込み
モジュールとビットサーチモジュールについて説
明します。REALOS 関連ハードは , リアルタイム
OS により使用されます。
したがって , REALOS を使用する場合にはユーザ
プログラムで使用できません。
13.1 遅延割込みモジュール
13.2 遅延割込みモジュールのレジスタ
13.3 遅延割込みモジュールの動作
13.4 ビットサーチモジュール
13.5 ビットサーチモジュールのレジスタ
13.6 ビットサーチモジュールの動作
291
第 13 章 REALOS 関連ハード
13.1
遅延割込みモジュール
遅延割込みモジュールは , タスク切り換え用の割込みを発生するためのモジュール
です。
本モジュールを使用することで , ソフトウェアで CPU に対して割込要求の発生 / 取
消しを行うことができます。
■ レジスタ一覧
図 13.1-1 レジスタ一覧
bit
7
6
5
4
3
アドレス: 00000044H
2
1
0
DLYI
[R/W]
■ ブロックダイヤグラム
図 13.1-2 ブロックダイヤグラム
292
DICR
第 13 章 REALOS 関連ハード
13.2
遅延割込みモジュールのレジスタ
この節では , 遅延割込みモジュールで使用するレジスタの構成 , および機能について
説明します。
■ DICR(Delayed Interrupt Control Register)
図 13.2-1 DICR(Delayed Interrupt Control Register) のビット構成
7
bit
6
5
4
3
2
1
0
DLYI
初期値
-------0B
[R/W]
遅延割込みを制御するレジスタです。
[bit0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし〔初期値〕
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
293
第 13 章 REALOS 関連ハード
13.3
遅延割込みモジュールの動作
遅延割込みは , タスク切り換え用の割込みを発生するものです。本機能を使用する
ことにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことが
できます。
■ 割込み番号
遅延割込みは, 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 合わせてタスクの切り換えを行うようにしてください。
294
第 13 章 REALOS 関連ハード
13.4
ビットサーチモジュール
入力レジスタに書き込まれたデータに対して , 0 または 1 または変化点を検索し , 検
出したビット位置を返します。
■ レジスタ一覧
図 13.4-1 レジスタ一覧
bit 31
0
アドレス:000003F0 H
BSD0
0検出用データレジスタ
アドレス:000003F4 H
BSD1
1検出用データレジスタ
アドレス:000003F8 H
BSDC
変化点検出用データレジスタ
アドレス:000003FC H
BSRR
検出結果レジスタ
■ ブロックダイヤグラム
図 13.4-2 ブロックダイヤグラム
295
第 13 章 REALOS 関連ハード
13.5
ビットサーチモジュールのレジスタ
この節では , ビットサーチモジュールで使用するレジスタの構成 , および機能につい
て説明します。
■ 0 検出用データレジスタ (BSD0)
図 13.5-1 0 検出用データレジスタ (BSD0) のビット構成
bit 31
0
000003F0H
リード/ライト
初期値
ライトオンリ
不定
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32bit 長のデータ転送命令を使用してください。
(8bit, 16bit 長のデータ転送命令は , 使わないでください。)
■ 1 検出用データレジスタ (BSD1)
図 13.5-2 1 検出用データレジスタ (BSD1) のビット構成
bit 31
0
000003F4H
リード/ライト
初期値
リード/ライト可能
不定
データ転送には , 32bit 長のデータ転送命令を使用してください。
(8bit, 16bit 長のデータ転送命令は , 使わないでください。)
書込み時
書き込んだ値に対して , 1 を検出します。
読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハ
ンドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避復帰する
時に使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用データレ
ジスタのみ操作することで退避復帰できます。
リセットによる初期値は不定です。
296
第 13 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
図 13.5-3 変化点検出用データレジスタ (BSDC) のビット構成
bit 31
0
000003F8H
リード/ライト
初期値
ライトオンリ
不定
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32bit 長のデータ転送命令を使用してください。
(8bit, 16bit 長のデータ転送命令は , 使わないでください。)
■ 検出結果レジスタ (BSRR)
図 13.5-4 検出結果レジスタ (BSRR) のビット構成
bit 31
0
000003FCH
リード/ライト
初期値
リードオンリ
不定
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
297
第 13 章 REALOS 関連ハード
13.6
ビットサーチモジュールの動作
ビットサーチモジュールは , 次の 3 つの動作を行います。
• 0 検出
• 1 検出
• 変化点検出
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と , 返す数値の関係は , 表 13.6-1 のとおりです。
"0" が存在しないとき , ( すなわち FFFFFFFFH という数値のとき ) 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
読出し値 (10 進 )
(FFFFF000H)
(F849E0AAH)
(8002AAAAH)
(FFFFFFFFH
→ 20
→5
→1
→ 32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値との関係は , 表 13.6-1 のとおりです。
"1" が存在しないとき , ( すなわち 00000000H という数値のとき ) 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
298
読出し値 (10 進 )
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
(00000000H)
→2
→7
→ 14
→ 31
→ 32
第 13 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし ,
MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します
検出結果は , 検出結果レジスタを読み出すことで得られます。
検出した位置と返す値は , 表 13.6-1 の示すとおりです。
変化点が存在しないときは , 32 を返します。
変化点検出では , 結果として 0 を返すことはありません。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
00000000H)
FFFFF000H)
F849E0AAH)
8002AAAAH)
(FFFFFFFFH)
→2
→7
→ 14
→ 31
→ 32
→ 20
→5
→1
→ 32
表 13.6-1 ビット位置と返す値 (10 進 )
検出した
bit 位置
返す値
検出した
bit 位置
返す値
検出した
bit 位置
返す値
検出した
bit 位置
返す値
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
299
第 13 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1. 1 検出用データレジスタを読出し , この内容を保存する ( 退避 )
2. ビッチサーチモジュールを使用
3. 1. で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出した時に得られる値は , 1. 以前に ,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。 最後に書き
込まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく
元に戻ります。
300
第 14 章
10 ビット A/D コンバータ
この章では , 10 ビット A/D コンバータの概要 , レ
ジスタの構成 / 機能 , および動作について説明しま
す。
14.1 10 ビット A/D コンバータの概要
14.2 10 ビット A/D コンバータのレジスタ
14.3 10 ビット A/D コンバータの動作
301
第 14 章 10 ビット A/D コンバータ
14.1
10 ビット A/D コンバータの概要
10 ビット逐次比較形 A/D コンバータで , ソフトによる変換起動と外部トリガによる
変換起動モードを有します。
■ 10 ビット A/D コンバータの特長
• 変換時間 10 µs( サンプリング 7.8 µs, 変換 2.2 µs) fch:@20MHz 時
• A/D 変換結果用レジスタ 各チャネルごとに用意
• チャネル・スキャン機能あり
■ レジスタ構成
図 14.1-1 レジスタ構成
アドレス 15
00020H
00022H
00024H
00026H
00028H
0002AH
0002CH
0002EH
00030H
00032H
00034H
00036H
00038H
0
ADCTH
ADCTL
ADCH
ADAT0
ADAT1
ADAT2
ADAT3
ADAT4
ADAT5
ADAT6
ADAT7
ADAT8
ADAT9
TEST
A/Dステータス・制御レジスタ
A/アナログ入力選択レジスタ
A/D変換データch.0
A/D変換データch.1
A/D変換データch.2
A/D変換データch.3
A/D変換データch.4
A/D変換データch.5
A/D変換データch.6
A/D変換データch.7
A/D変換データch.8
A/D変換データch.9
A/D変換部テストレジスタ (アクセス禁止)
図 14.1-2 A/D コンバータ構成図
A/D
AN0~AN9
外部端子(ATRG)
302
ATRG
IRQ
第 14 章 10 ビット A/D コンバータ
■ ブロックダイヤグラム
図 14.1-3 ブロックダイヤグラム
バッファ × 10
D/A コンバータ
部
デ
ー
タ
内
P
X
M
AN9
AN8
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
コンパレータ
コントロールロジック
S/H
A/D
ス
バ
チャネル & ステータス
コントロールロジック
外部端子
ATRG
IRQ
303
第 14 章 10 ビット A/D コンバータ
10 ビット A/D コンバータのレジスタ
14.2
この節では , 10 ビット A/D コンバータで使用するレジスタの構成 , および機能につ
いて説明します。
■ A/DC 制御レジスタ (ADCTH, ADCTL)
図 14.2-1 A/DC 制御レジスタ (ADCTH, ADCTL) のビット構成
bit
ADCTH
bit
ADCTL
15
"0"
14
"0"
13
"0"
12
"0"
11
"0"
10
"0"
9
TRG
8
STR
(R)
(R)
(R)
(R)
(R)
(R)
(R/W)
(R/W)
7
ASS3
6
ASS2
5
ASS1
4
ASS0
3
BUSY
2
"0"
1
INT
0
INTE
(R)
(R)
(R)
(R)
(R)
(R)
(R/W)
(R/W)
初期値
0000 0000B
初期値
0000 0000B
[bit15 ∼ bit10]:Don't Care
常に "000000B" がリードされます。
[bit9]:TRG
0
外部端子トリガでの起動禁止
1
外部端子トリガでの起動
TRG=1 のとき外部端子 (ATRG) 入力の立ち上りエッジを検出して A/D 変換を起動
します。
A/D 変換中にエッジ検出された場合は無視されます。
[bit8]:STR
A/D 変換スタート・ビットです。
0
影響なし
1
ソフト起動 / 再起動 ( 変換中の書き込み )
このビットをリードした場合 , 常に "0" が読み出されます。
[bit7 ∼ bit4]:ASS3 ∼ ASS0
選択されているアナログチャネルがリードできます。
bit3:BUSY=1 のときに有効なデータがリードできます。
0∼9
304
選択チャネル
第 14 章 10 ビット A/D コンバータ
[bit3]:BUSY
A/D 変換中を示すフラグです。
0
変換中でない
1
変換中
[bit2]:Don't Care
常に "0" がリードされます。
[bit1]:INT
A/D 変換終了フラグです。
0
変換なし。または , 変換中
1
変換完了
[bit0]:INTE
A/D 変換割込み許可ビットです。
0
割込み禁止
1
割込み許可
INT=1 の時 INTE=1 なら割込み要求を発生します。
( 注意事項 )
本レジスタへのリードモディファイライト (RMW) 系命令でのアクセスは , 行わないでく
ださい。
■ ソフト変換アナログ入力選択レジスタ
図 14.2-2 ソフト変換アナログ入力選択レジスタのビット構成
bit
ADCH
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
"0"
"0" "0"
"0"
"0"
"0"
i9
i8
i7
i6
i5
i4
i3
i2
i1
i0
初期値
00 00 H
(R/W)
[bit15 ∼ bit10]:Don't Care
常に "0" がリードされます。
305
第 14 章 10 ビット A/D コンバータ
[bit9 ∼ bit0]:i9 ∼ i0
ソフト変換用アナログ入力選択ビットです。
0
入力非選択
1
入力選択
複数の入力が選択されている場合には , 選択されている入力全てに対し順次 , 変換
されます。
■ A/D 変換結果レジスタ (0 ∼ 9ch)
図 14.2-3 A/D 変換結果レジスタ (0 ∼ 9ch) のビット構成
bit
ADAT0~ADAT9
15
14
13
12
11
10
"0"
"0"
"0"
"0" "0" "0"
9
8
d9
7
d8 d7
(R)
6
5
4
3
2
1
0
d6
d5
d4
d3
d2
d1
d0
1
0
初期値
00 00H
[bit15 ∼ bit10]:Don't Care
常に "000000B" がリードされます。
[bit9 ∼ bit0]:d9 ∼ d0
各チャネルに対応した A/D 変換結果が格納されます。
■ A/D 変換部テストレジスタ
図 14.2-4 A/D 変換部テストレジスタのビット構成
bit 15
14
13
12
11
TEST
10
9
8
7
6
TEST
(R/W)
[bit15 ∼ bit0]:TEST
A/D 変換部テスト用レジスタ。
( 注意事項 )
本レジスタにはアクセスしないでください。
306
5
4
3
2
初期値
00 00 H
第 14 章 10 ビット A/D コンバータ
14.3
10 ビット A/D コンバータの動作
この節では , ソフト変換 , および外部トリガ変換による A/D 動作について説明しま
す。
■ ソフト変換による A/D 動作
ソフト変換による A/D 変換を行うには , まず , アナログ入力端子 AN0 ∼ AN9 の 10 本
のうちから必要なチャネルを選択します。ADCH レジスタの対応するビットに "1" を
書き込むことより有効となります。
● 単一チャンネルの場合
変換用アナログ入力端子として 1 チャンネルのみを選択した場合。ADCTH レジスタの
STR ビットに "1" を書き込むことより , ソフト変換動作が開始され , ADCTL レジスタ
の BUSY ビットは "1" にセットされます。
変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再び変換が
開始されます。
A/D 変換動作が終了すると , ADCTL レジスタの BUSY ビットは "0" にリセットされ ,
ADCTL レジスタの INT ビットは "1" にセットされます。これらのステータス・ビット
を読むことにより変換動作の終了を判別できます。また変換完了の割込みを発生した
い場合は , ADCTL レジスタの INTE ビットを "1" にしておきます。
● 複数チャンネルの場合 ( スキャン変換 )
変換用アナログ入力端子として複数のチャンネルを選択した場合 , 自動的に各チャネ
ル選択の有無を調べ , 順次チャネル切替えと A/D 変換の起動をし , 変換結果を各チャネ
ルに対応したレジスタへ格納します。
変換したいチャンネルを ADCH レジスタの対応ビットに "1" を書込み選択をし ADCTH
レジスタの STR ビットに "1" を書き込むことより , 変換動作を開始し , ADCTL レジス
タの BUSY ビットは "1" にセットされます。変換チャンネルは 0 から 9 の順で選択さ
れ , ADCH レジスタで選択されていないチャンネルは変換を行わずに次の選択されて
いるチャンネルの変換に移ります。
変換動作中に STR ビットに再度 "1" を書き込むと変換動作は初期化され , 再びチャネ
ル 0 から 9 の順で選択されたチャネルの変換を開始します。
全ての選択したチャネルの A/D 変換動作が終了すると , ADCTL レジスタの BUSY ビッ
トは "0" にリセットされ , ADCTL レジスタの INT ビットは "1" にセットされます。ま
た , 変換完了の割込みを発生したい場合は , ADCTL レジスタの INTE ビットを "1" にし
ておきます。
A/D 変換された結果は , 各チャネルのレジスタに格納されます。
■ 外部トリガ変換による A/D 動作
外部トリガ起動を許可した場合 (ADCTH:TRG=1) には , 外部端子 (ATRG) 入力の立ち上
りエッジを検出して A/D 変換を開始します。外部トリガ許可の状態でソフト起動した
場合も起動します。また , A/D 起動中に再度外部端子 (ATRG) 入力の立ち上りエッジを
検出した場合には変換動作は初期化され , 再び最初から変換を開始します。
307
第 14 章 10 ビット A/D コンバータ
308
第 15 章
UART
この章では , UART の概要 , レジスタの構成 / 機能 ,
および UART の動作について説明します。
15.1 UART の概要
15.2 UART のレジスタ
15.3 UART の動作
15.4 割込み発生およびフラグのセットタイミング
15.5 UART の応用例
15.6 ボーレートと U-TIMER のリロード値の設定例
309
第 15 章 UART
UART の概要
15.1
UART は , 非同期 ( 調歩同期 ) 通信 , または CLK 同期通信を行うためのシリアル I/O
ポートで , 以下の特長があります。本品種は , UART を 5 チャネル内蔵します。
■ UART の特長
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ), CLK 同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート
内蔵タイマにより任意のボーレートを設定可能 (「第 6 章 U-TIMER」参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
• UART Ch0 ∼ 2 は 割込みによる DMA 転送の起動が可能 (Ch3, 4 は DMA 起動不可 )
• DRCL レジスタへの書込み動作による DMAC の割込み要因クリア
■ レジスタ一覧
図 15.1-1 レジスタ一覧
15
8
7
0
SCR
SMR
(R/W)
SSR
SIDR(R)/SODR(W)
(R/W)
DRCL
(W)
8bit
bit
bit
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
7
6
5
4
3
2
1
0
PE
bit
7
ORE FRE RDRF TDRE BDS RIE
6
MD1 MD0
bit
bit
310
8bit
TIE
5
4
3
2
1
0
-
-
CS0
-
-
-
1
0
7
6
5
4
3
2
PEN
P
SBL
CL
A/D
REC
7
6
5
4
3
2
1
0
-
-
-
-
-
-
-
-
RXE TXE
シリアルインプットレジスタ
シリアルアウトプットレジスタ
(SIDR /SODR)
シリアルステータスレジスタ
(SSR)
シリアルモードレジスタ
(SMR)
シリアルコントロールレジスタ
(SCR)
(DRCL)
第 15 章 UART
■ ブロックダイヤグラム
図 15.1-2 ブロックダイヤグラム
制御信号
受信割込み
(CPUへ)
SCK(クロック)
送信クロック
U-TIMERより
クロック
選択回路
受信クロック
送信割込み
(CPUへ)
外部クロック
SCK
受信制御回路
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
制御信号
311
第 15 章 UART
15.1.1
UART マクロにおける送受信転送の組み合わせ
UART マクロにおける送受信転送の組み合わせについて説明します。
1 つの UART マクロにおける送受信転送の組み合わせについて , 表 15.1-1 に示します。
「混在転送」とは , プログラム転送と DMA 転送を切り換えて使用する場合を示します。
表 15.1-1 UART/SIO 送受信転送の組み合わせ
UART/SIO 送信
DMA 転送
プログラム転送
混在転送
使用しない
DMA 転送
×
×
×
×
プログラム転送
○
○
×
○
混在転送
×
×
×
×
使用しない
○
○
×
○
UART/SIO 受信
表中の○は , DRCL レジスタによるクリアが必要でない組み合わせになります。
表中の×は , DMA を利用した転送ができない組合わせになります。この組合わせで
DMAC エラー処理もしくは DMA 転送とプログラム転送の切換えのために DRCL レジ
スタをクリアすると , 片側の DMA 要求ステートマシンがクリアされてしまいます。そ
のため , 例えば UART/SIO 送信では 1 つの余分なデータが出力され , UART 受信では 1
回余分にシリアルインプットデータレジスタ (SIDR) をリードすることになります。
312
第 15 章 UART
15.2
UART のレジスタ
本節では ,UART で使用するレジスタの構成 , および機能について説明します。
■ SMR ( シリアルモードレジスタ )
図 15.2-1 SMR ( シリアルモードレジスタ ) のビット構成
6
bit 7
SMR
アドレス ch.0 000063H MD1 MD0
ch.1 00006BH
ch.2 000073H
R/W R/W
ch.3 00007BH
ch.4 000083H
5
4
3
CS0
2
1
0
初期値
00--0---B
W
SMR は , UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動
作中にこのレジスタへの書込みは行わないでください。
[bit7, bit6]MD1, MD0 (MoDe select) :
UART の動作モードを選択します。
表 15.2-1 動作モード選択
モード
MD1
MD0
動作モード
0
0
0
非同期 ( 調歩同期 ) ノーマルモード〔初期値〕
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
クロック同期モード
−
1
1
設定禁止
( 注意事項 )
モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数台の
スレーブ CPU が接続される使用法です。本リソースでは , 受信データのデータ形式を判
別できません。従って , マルチプロセッサモード のマスタのみをサポートします。
また , パリティチェック機能は使用できませんので SCR レジスタの PEN は "0" に 設定し
てください。
[bit5, bit4](reserved)
常に "1" を書き込んでください。
[bit3]CS0(Clock Select)
UART の動作クロックを選択します。
0 : 内蔵タイマ (U-TIMER) 〔初期値〕
1 : 外部クロック
[bit2, bit1](reserved)
常に "0" を書き込んでください。
[bit0](ReverseReserved):
未使用ビットです。
313
第 15 章 UART
■ SCR ( シリアルコントロールレジスタ )
図 15.2-2 SCR ( シリアルコントロールレジスタ ) のビット構成
SCR
bit 7
アドレス: ch.0 000062H
ch.1 00006AH
ch.2 000072H
ch.3 00007AH
ch.4 000082H
6
5
4
3
PEN
P
SBL
CL
A/D
R/W
R/W
R/W
R/W
R/W
2
1
0
REC RXE
TXE
W
R/W
R/W
初期値
00000100B
SCR はシリアル通信を行う場合の転送プロトコルを制御します。
[bit7]PEN (Parity Enable):
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま
す。
0: パリティなし 〔初期値〕
1: パリティあり
( 注意事項 )
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では ,
パリティを付加できません。
[bit6]P (Parity):
パリティを付加してデータ通信を行うとき , 偶数 / 奇数パリティを指定します。
0: 偶数パリティ 〔初期値〕
1: 奇数パリティ
[bit5]SBL (Stop Bit Length):
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークである , ストップビッ
トのビット長を指定します。
0: 1 ストップビット 〔初期値〕
1: 2 ストップビット
[bit4]CL(Character Length):
送受信する 1 フレームのデータ長を指定します。
0: 7 ビットデータ 〔初期値〕
1: 8 ビットデータ
314
第 15 章 UART
( 注意事項 )
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード ( モード 0)
のみです。マルチプロセッサモード ( モード 1) およびクロック同期通信 ( モード 2) では ,
8 ビットデータとしてください。
[bit3]A/D (Address/Data):
非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す
るフレームのデータ形式を指定します。
0: データフレーム 〔初期値〕
1: アドレスフレーム
[bit2]REC (Receiver Error Clear):
"0" を書き込む事で , SSR レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。
"1" 書込みは無効であり , 読出し値は常に "1" になります。
[bit1]RXE (Receiver Enable):
UART の受信動作を制御します。
0: 受信動作を禁止します。〔初期値〕
1: 受信動作を許可します。
( 注意事項 )
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止した場合
には , そのフレームの受信を完了し受信データバッファ SIDR レジスタに受信データをス
トアしたところで受信動作を停止します。
[bit0]TXE(Transmitter Enable):
UART の送信動作を制御します。
0: 送信動作を禁止します。〔初期値〕
1: 送信動作を許可します。
( 注意事項 )
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止します。
315
第 15 章 UART
■ SIDR (シリアルインプットデータレジスタ)/SODR (シリアルアウトプットデータ
レジスタ )
図 15.2-3 SIDR ( シリアルインプットデータレジスタ )/SODR ( シリアルアウトプットデータレジス
タ ) のビット構成
bit 7
SIDR
アドレス: ch.0 000061H
ch.1 000069H
ch.2 000071H
ch.3 000079H
ch.4 000081H
SODR
アドレス: 同上
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
bit 7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
初期値
不定
R
不定
W
本レジスタは , 受信 / 送信用のデータバッファレジスタです。
データ長が 7bit の場合 SIDR, SODR の bit7(D7) は無効データとなります。BDS= 1 の時
は , SIDR と SODR のアクセス時に , バス上のデータの上位側と下位側を入れかえるた
め , 見かけ上 bit0(D0) が無視されたように見えます。
SODRレジスタへの書込みは, SSR レジスタのTDREが"1"の時に書き込んでください。
( 注意事項 )
このアドレスへのライトは SODR レジスタへの書込みを , リードは SIDR レジスタの読
出しを意味します。
316
第 15 章 UART
■ SSR ( シリアルステータスレジスタ )
図 15.2-4 SSR ( シリアルステータスレジスタ ) のビット構成
SSR
bit 7
アドレス: ch.0 000060H
ch.1 000068H
ch.2 000070H
ch.3 000078H
ch.4 000080H
PE
6
5
4
3
2
ORE FRE RDRF TDRE BDS
R
R
R
R
R
R/W
1
0
RIE
TIE
R/W
R/W
初期値
00001000B
SSR は UART の動作状態を表すフラグで構成されています。
[bit7]PE(Parity Error):
受信時にパリティエラーが発生したときにセットされる , 割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビット (bit10) に
"0" を書き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: パリティエラーなし 〔初期値〕
1: パリティエラーが発生
[bit6]ORE (Over Run Error):
受信時にオーバランエラーが発生したときにセットされる , 割込み要求フラグで
す。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: オーバランエラーなし 〔初期値〕
1: オーバランエラー発生
[bit5]FRE (FRaming Error):
受信時にフレーミングエラーが発生したときにセットされる , 割込み要求フラグで
す。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0: フレーミングエラーなし 〔初期値〕
1: フレーミングエラー発生
( 注意事項 )
• シリアルモードレジスタの bit3(CS0) による内 / 外ボーレートクロックの切り替えは書
込み後 , すぐに反映されるので , UART が動作停止状態の時に行ってください。
• シリアルモードレジスタの bit3(CS0) はライトオンリです。
317
第 15 章 UART
[bit4]RDRF(Receiver Data Register Full):
SIDR レジスタに受信データがあることを示す , 割込み要求フラグです。
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出
すと自動的にクリアされます。
0: 受信データなし 〔初期値〕
1: 受信データあり
[bit3]TDRE(Transmitter Data Register Empty):
SODR に送信データを書き込めることを示す , 割込み要求フラグです。
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを
書き込めることを表します。
0: 送信データの書込み禁止
1: 送信データの書込み許可 〔初期値〕
[bit2]BDS(Bit Direction Select)
転送方向選択ビットです。
0: 最下位ビット (LSB) 側から転送します。〔初期値〕
1: 最上位ビット (MSB) 側から転送します。
( 注意事項 )
シリアルデータレジスタへの読出し , 書込み時にデータの上位側と下位側を入換えるため
SODR レジスタへデータを書き込んだ後 , このビットを書換えると , そのデータは無効に
なります。
ハーフワード (16 ビット ) にて , SODR レジスタと BDS を同時に書き換えた場合には , 書
き換え前の BDS の値に従い , SODR レジスタへの書き込みが行われます。
[bit1]RIE (Receiver Interrupt Enable):
受信割込みを制御します。
0: 割込みを禁止します。〔初期値〕
1: 割込みを許可します。
( 注意事項 )
受信割込要因は , PE, ORE, FRE によるエラー発生の他 , RDRF による正常受信がありま
す。
[bit0]TIE (Transmitter Interrupt Enable):
送信割込みを制御します。
0: 割込みを禁止します。〔初期値〕
1: 割込みを許可します。
( 注意事項 )
送信割込み要因は , TDRE による送信要求があります。
318
第 15 章 UART
■ DRCL
図 15.2-5 DRCL のビット構成
DRCL
Address: ch.0 000066H
ch.1 00006EH
ch.2 000076H
ch.1 00007EH
ch.2 000086H
bit 7
6
5
4
3
2
1
0
初期値
--
--
--
--
--
--
--
--
--------B
W
W
W
W
W
W
W
W
DMAC の割込み要因をクリアするためのレジスタです。任意の値を書き込むことに
よって DMAC への割込み要因がクリアされます。本レジスタは , 必ずバイトでアクセ
スしてください。
割込みが発生すると , DMAC 転送が終了し DMAC が DMAC 割込み要因をクリアする
まで DMAC 要因を保持します。
DMAC を起動しない割込み処理により , 各種「割込み要求フラグ」がクリアされても ,
DMAC の割込み要因は保持したままとなります。
このため , DMAC の割込み要因が残ったまま , DMAC 起動要因に , UART を指定し
DMAC を動作許可すると , 各種「割込み要求フラグ」がセットされていないにもかか
わらず , DMAC が起動され意図しない動作をします。
従いまして , 初めて DMAC を起動する際 , または , DMAC 移動以前に , DMAC を起動
しない割込みを用いて UART を使用している場合 , このレジスタを利用して DMAC の
割込み要因をクリアしてください。 ( このレジスタは書込み専用です。)
319
第 15 章 UART
UART の動作
15.3
UART には , 非同期 ( 調歩同期 ) モードと CLK モードの 2 種類の動作モードがあり
ます。
非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサモードがありま
す。
この節では , 各動作モードにおける動作について説明します。
■ UART の動作モード
UART は , 表 15.3-1 に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切換えることができます。
表 15.3-1 UART の動作モード
モード
パリティ
データ長
動作モード
ストップビット長
0
有/無
7
非同期 ( 調歩同期 ) ノーマルモード
有/無
8
1 ビット または
2 ビット
1
無
8+1
非同期(調歩同期) マルチプロセッサモード
2
無
8
クロック同期モード
無
ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動
作しませんので , 設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-TIMER を選択した場合は , U-TIMER に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は , 次の通りです。
非同期 ( 調歩同期 )
φ /(8 × β )
クロック同期
φ / β
φ : 周辺クロック周波数
β : U-TIMER で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの− 1% ∼ +1% までの
範囲で転送が可能です。
● 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周
波数を f とすると次のようになります。
非同期 ( 調歩同期 )
f/8
クロック同期
f
ただし , f は最大 3.125MHz までです。
320
第 15 章 UART
■ 非同期 ( 調歩同期 ) モード
● 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 15.3-1 に , データ
フォーマットを示します。
図 15.3-1 転送データフォーマット ( モード 0,1)
SI, SO
0 1 0 1 1 0 0 1 0 1 1
Start LSB MSB Stop ─────(モード0)
A/D Stop ───(モード1)
転送されたデータは 01001101B
図 15.3-1 に示すように , 転送データは必ずスタートビット ("L" レベル データ ) より始
まり , LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット
("H" レベル データ ) で終了します。外部クロックを選択している場合は , 常にクロッ
クを入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定できますが
, マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。また , マル
チプロセッサモード ではパリティを付加できません。そのかわり , A/D ビットが必ず
付加されます。
● 受信動作
SCR レジスタの RXE ビット (bit1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ
ラーが発生した場合にはエラーフラグのセットが行われた後 RDRF フラグ(SSRレジス
タ bit4) がセットされます。このとき同じ SSR レジスタの RIE ビット (bit1) が "1" に
セットされていれば CPU に対して受信割込みが発生します。SSR レジスタの各フラグ
を調べ , 正常受信なら SIDR レジスタをリードして , エラーが発生していれば必要な処
理を行うようにしてください。
RDRF フラグは , SIDR レジスタをリードするとクリアされます。
● 送信動作
SSR レジスタの TDRE フラグ (bit3 ) が "1" のとき , SODR レジスタに送信データを書き
込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" なら送信が行われます。
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開
始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな
ります。このとき同じ SSR レジスタの TIE ビット (bit0) が "1" にセットされていれば
CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう
に要求します。
TDRE フラグは , SODR レジスタにデータをセットすると , いったんクリアされます。
321
第 15 章 UART
■ クロック同期モード
● 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。図 15.3-2 に , 送受信
クロックとデータとの関係を示します。
図 15.3-2 転送データフォーマット ( モード 2)
SODR書込み
マーク
SCK
RXE, TXE
SI, SO
1 0 1 1 0 0 1 0
LSB MSB ───(モード2)
転送されたデータは 01001101B
内部クロック (U-TIMER) を選択している場合は , データを送信するとデータ受信用同
期クロックが自動的に生成されます。
また , 外部クロックを選択している場合は , 送信側 UART の送信用データバッファ
SODR レジスタにデータがあること (TDRE フラグが "0") を確かめた後 , 正確に 1 バイ
ト分のクロックを供給する必要があります。また , 送信開始前と終了後は , 必ずマーク
レベルにしてください。
データ長は 8 ビットのみとなり , パリティを付加できません。また , スタート / ストッ
プビットがないのでオーバランエラー以外のエラー検出は行われません。
● 初期化
クロック同期モードを使用する場合の , 各制御レジスタの設定値を示します。
SMR レジスタ
MD1, MD0: 10
CS0:
クロック入力を指定
PFR( ポートファンクション ) レジスタ
SCKE: 内部タイマの場合 1, 外部クロックの場合 0
UART: 送信を行う場合 1, 受信のみの場合 0
SCR レジスタ
322
PEN:
0
P, SBL, A/D:
これらのビットは意味を持ちません
CL:
1
REC:
0 ( 初期化するため )
第 15 章 UART
RXE, TXE:
少なくとも , どちらか一方を 1
SSR レジスタ
RIE: 割込みを使用する場合 1, 割込みを使用しない場合 0
TIE:
0
● 通信開始
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
● 通信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたかを判断してください。
323
第 15 章 UART
15.4
割込み発生およびフラグのセットタイミング
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 のデータは無効データとなります。
図 15.4-1 ORE, FRE, RDRF のセットタイミング ( モード 0)
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し最後のストップビットを検出する時にフラグが
セットされ , CPU への割込み要求が発生します。また , 受信可能なデータ長は 8bit のた
め最後の 9bit 目のアドレス / データを示すデータは無効データとなります。ORE, FRE
がアクティブ時は , SIDR のデータは無効データとなります。
324
第 15 章 UART
図 15.4-2 ORE, FRE, RDRF のセットタイミング ( モード 1)
● モード 2 の受信動作時
ORE, RDRF は受信転送が終了し , 最後のデータ (D7) を検出する時にフラグがセットさ
れ , CPU への割込要求が発生します。ORE がアクティブ時は , SIDR のデータは無効
データとなります。
図 15.4-3 ORE, RDRF のセットタイミング ( モード 2)
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書き込まれるとクリアされ , 内部のシフトレジスタに転送
され次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要求が発生
します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 の時は RXE も含む ) を書
き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止してから UART
の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0" ( モード 2 の時は
RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書き込まれたデー
タは送信されます。
325
第 15 章 UART
図 15.4-4 TDRE のセットタイミング ( モード 0, 1)
図 15.4-5 TDRE のセットタイミング ( モード 2)
■ 使用上の注意
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも , 必ず仮の
送信データを SODR レジスタに書き込む必要があります。
通信モードの設定は , 動作停止中に行ってください。モード設定時の送受信したデータ
は保証されません。
割込みによる DMA 転送を最初に起動する前に DRCL レジスタにライトしてください。
326
第 15 章 UART
15.5
UART の応用例
UART の使用例を示します。モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU
が接続されるような場合に使用されます。
■ UART の使用例
図 15.5-1 に , モード 1 を使用した場合のシステム構築例を示します。このリソースでは ,
ホスト側の通信インタフェースのみサポートします。
図 15.5-1 モード 1 を使用時のシステム構築例
通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" の時のデータで , それにより通信先となるス
レーブ CPU が選択され , ホスト CPU との通信が可能になります。通常データは , SCR
レジスタの A/D が "0" の時のデータです。図 15.5-2 にそのフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
327
第 15 章 UART
図 15.5-2 モード 1 使用時の通信フローチャート
(ホストCPU)
START
転送モードを1とする
D0~D7にスレーブCPUを選
択するデータ,A/Dに"1"を
セットし,1バイト転送
A/Dに"0"をセット
受信動作許可
スレーブ CPU と通信 NO 通信終了? YES
他の NO
スレーブ CPUと 通信 YES 受信動作禁止 END
328
第 15 章 UART
15.6
ボーレートと U-TIMER のリロード値の設定例
ボーレートと U-TIMER のリロード値の設定例を示します。
■ ボーレートと U-TIMER のリロード値の設定例
以下に , ボーレートと U-TIMER のリロード値の設定例を示します。
表中の周波数は , 周辺クロック周波数を表します。また , UCC1 は , U-TIMER の UTIMC
レジスタ UCC1 ビットに設定する値です。
下記 U-Timer リロード値は 10 進数で表示してあります。
表 15.6-1 非同期 ( 調歩同期 ) モード
ボーレート
ms
φ =20.27MHz
527(UCC1=0)
φ =10.135MHz
1200
833.33
263(UCC1=0)
2400
416.67
263(UCC1=0)
131(UCC1=0)
4800
208.33
131(UCC1=0)
65(UCC1=0)
9600
104.17
65(UCC1=0)
32(UCC1=0)
19200
52.08
32(UCC1=0)
15(UCC1=1)
38400
26.04
15(UCC1=1)
7(UCC1=1) *
57600
17.36
10(UCC1=0)
4(UCC1=1)
115200
8.681
4(UCC1=1)
2(UCC1=0) *
10400
96.15
60(UCC1=0)
29(UCC1=1)
31250
32.00
* 19(UCC1=0)
9(UCC1=0) *
62500
16.00
* 9(UCC1=0)
4(UCC1=0) *
φ : 周辺クロック周波数
* ± 1% 以上の誤差あり
表 15.6-2 クロック同期モード
ボーレート
ms
φ =20.27MHz
φ =10.135MHz
250K
4.00
39(UCC1=1)
19(UCC1=1) *
500K
2.00
19(UCC1=1) *
9(UCC1=0) *
1M
1.00
9(UCC1=0) *
4(UCC1=0) *
φ : 周辺クロック周波数
* ± 1% 以上の誤差あり
329
第 15 章 UART
330
第 16 章
I2C インタフェース
この章では , I2C インタフェースの概要 , レジスタ
の構成 / 機能 , および I2C インタフェースの動作に
ついて説明します。
16.1 I2C インタフェースの概要
16.2 I2C インタフェースのレジスタ
16.3 I2C インタフェースの動作
16.4 動作フローチャート
331
第 16 章 I2C インタフェース
16.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートです。
■ I2C インタフェースの特長
I2C バス上のマスタ / スレーブデバイスとして動作し , 以下の特長があります。
• マスタ / スレーブ送受信
• アビトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• 反復「START」条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード (Max.100kbps)/ 高速モード (Max.400kbps) に対応
■ レジスタ一覧
図 16.1-1 バスコントロールレジスタ (IBCR)
アドレス: ch.0
ch.1
ch.2
ch.3
0000B4 H
0000C4 H
0000D4 H
0000E4 H
14
bit 15
BER BEIE
初期値
13
SCC
12
MSS
11
10
9
ACK GCAA INTE
8
INT
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
図 16.1-2 バスステータスレジスタ (IBSR)
アドレス: ch.0
ch.1
ch.2
ch.3
332
0000B5 H
0000C5 H
0000D5 H
0000E5 H
bit 7
BB
初期値
6
RSC
5
AL
4
LRB
3
TRX
2
AAS
1
GCA
0
ADT
R
R
R
R
R
R
R
R
0
0
0
0
0
0
0
0
第 16 章 I2C インタフェース
図 16.1-3 10 ビットスレーブアドレスレジスタ (ITBA)
アドレス: ch.0
ch.1
ch.2
ch.3
0000B6 H
0000C6 H
0000D6 H
0000E6 H
bit 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
bit 7
TA7
6
TA6
5
TA5
4
TA4
3
TA3
2
TA2
1
TA1
0
TA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
8
TM8
R/W
初期値
初期値
図 16.1-4 10 ビットスレーブアドレスマスクレジスタ (ITMK)
アドレス: ch.0
ch.1
ch.2
ch.3
0000B8 H
0000C8 H
0000D8 H
0000E8 H
bit 15
14
ENTB RAL
R/W
R
初期値
bit
0
bit 7
TM7
R/W
初期値
1
13
12
11
10
R
R
R
R
9
TM9
R/W
0
1
1
1
1
1
1
6
TM6
R/W
5
TM5
R/W
4
TM4
R/W
3
TM3
R/W
2
TM2
R/W
1
TM1
R/W
0
TM0
R/W
1
1
1
1
1
1
1
2
SA2
R/W
0
1
SA1
R/W
0
0
SA0
R/W
0
図 16.1-5 7 ビットスレーブアドレスレジスタ (ISBA)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BB H
0000CB H
0000DB H
0000EB H
bit
7
R
0
初期値
6
SA6
R/W
0
5
SA5
R/W
0
4
SA4
R/W
0
3
SA3
R/W
0
図 16.1-6 7 ビットスレーブアドレスマスクレジスタ (ISMK)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BA H
0000CA H
0000DA H
0000EA H
14
13
12
11
10
9
8
bit 15
ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0
R/W R/W R/W R/W R/W R/W R/W R/W
0
1
1
1
1
1
1
1
初期値
図 16.1-7 データレジスタ (IDAR)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BD H
0000CD H
0000DD H
0000ED H
bit
初期値
7
D7
R/W
0
6
D6
R/W
0
5
D5
R/W
0
4
D4
R/W
0
3
D3
R/W
0
2
D2
R/W
0
1
D1
R/W
0
0
D0
R/W
0
10
CS2
R/W
1
9
CS1
R/W
1
8
CS0
R/W
1
図 16.1-8 クロックコントロールレジスタ (ICCR)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BE H
0000CE H
0000DE H
0000EE H
bit 15
TEST
W
初期値
0
14
R
0
13
EN
R/W
0
12
CS4
R/W
1
11
CS3
R/W
1
333
第 16 章 I2C インタフェース
図 16.1-9 クロックディゼーブルレジスタ (IDBL)
アドレス: ch.0
ch.1
ch.2
ch.3
bit
0000BF H
0000CF H
0000DF H
0000EF H
初期値
7
6
5
4
3
2
1
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
DBL
R/W
0
■ ブロックダイヤグラム
図 16.1-10 ブロックダイヤグラム
ICCR
EN
I 2C 動作許可
Rバス
IDBL
DBL
ICCR
クロック許可
クロック分周2
CS4
CS3
CS2
CS1
CS0
2 3 4 5
Sync
32
シフトクロック発生
クロック選択2 (1/12)
シフトクロック
エッジ変化タイミング
IBSR
BB
RSC
CLKP
バスビジィ
リピートスタート
Lastビット
LRB
スタート・ストップ
コンディション検出
エラー
送/受
TRX
2
ADT
I C 入出力
Firstバイト
AL
アビトレーションロスト検出
SCL0~SCL3
SCL3
IBCR
I2 C 入出力
BER
BEIE
割込み要求
INTE
INT
IBCR
IRQ
SDA3
終了
SCC
スタート
MSS
マスタ
スタート・ストップ
ACK 許可
コンディション発生
ACK
GCAA
SDA0~SDA3
GC-ACK 許可
SDA4
レジスタ
IDAR
IBSR
スレーブ
AAS
グローバルコール
GCA
スレーブアドレス
比較
ISMK
FNSB
ITMK
ENTB
RAL
ITBA
334
SCL4
ITMK
ISBA
ISMK
第 16 章 I2C インタフェース
16.2
I2C インタフェースのレジスタ
この節では , I2C インタフェースで使用するレジスタの構成 , および機能について説
明します。
■ IBSR( バスステータスレジスタ )
図 16.2-1 バスステータスレジスタ (IBSR) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
0000B5 H
0000C5 H
0000D5 H
0000E5 H
bit 7
BB
初期値
6
RSC
5
AL
4
LRB
3
TRX
2
AAS
1
GCA
0
ADT
R
R
R
R
R
R
R
R
0
0
0
0
0
0
0
0
このレジスタは , 全ビット読出し専用です。
I2C が動作停止 (ICCR:EN= 0 ) すると全ビッ
トクリアされます。
[bit7]:BB(Bus Busy)
I2C バスの状態を示すビットです。
0
「STOP」条件を検出した。
1
「START」条件を検出した。( バス使用中 )
[bit6]:RSC(Repeated Start Condition)
反復「START」条件検出ビットです。
0
反復「START」条件は検出されていない。
1
バス使用中に , 反復「START」条件を検出した。
このビットは , スレーブ・アドレス転送終了 (ADT= 0 ), または「STOP」条件の検出
でクリアされます。
[bit5]:AL(Arbitration Lost)
アービトレーションロスト検出ビットです。
0
アービトレーションロスが検出されていない。
1
マスタ送信中にアービトレーションロスが発生した。
このビットは INT ビットへの "0" 書き込み , または IBCR レジスタ中の MSS ビット
に "1" を書き込むことによってクリアされます。
335
第 16 章 I2C インタフェース
アービトレーションロストが発生する例 :
•
データ送信が SCL の立ち上がりエッジで SDA ライン上のデータと一致し
ない
•
データのファーストビットで , ほかのマスタによって , 反復「START」条
件が発生した。
•
I2Cインタフェースが, ほかのスレーブデバイスによってSCLラインが"L"
にドライブされているために , 「START」条件 , または「STOP」条件を
生成できない。
[bit4]:LRB(Last Received Bit)
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
0
スレーブアクノロッジを検出した。
1
スレーブアクノロッジを検出していない。
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
「START」条件または「STOP」条件の検出でクリアされます。
[bit3]:TRX(Transferring data)
データ転送中に送信状態を示すビットです。
0
データ送信中でない
1
データ送信中
1 セット :
マスタモードで「START」条件が生成されたスレーブモードでリード
アクセス時 ( 送信 ), 第 1 バイトの転送終了
マスタモードで送信中
0 セット :
バスがアイドル状態 (IBCR:BB= 0 )
アービトレーションロス発生
マスタ割込み中 (MSS= 1 , INT= 1 ) に SCC に "1" が書き込まれた。
マスタ割込み中 (MSS= 1 , INT= 1 ) に MSS ビットがクリアされた。
スレーブ時 , 転送の最後にアクノリッジが発生しなかった。
スレーブモードでの受信中
マスタモードでのスレーブからデータ受信中
[bit2]:AAS(Addressed As Slave)
スレーブ・アドレッシング検出ビットです。
0
スレーブに指定されていない。
1
スレーブに指定された。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
336
第 16 章 I2C インタフェース
7/10 ビットのスレーブアドレスを検出した時にセットされます。
[bit1]:GCA(General Call Address)
ゼネラルコールアドレス (00H) 検出ビットです。
0
スレーブとして , ゼネラルコールアドレスを受信していない。
1
スレーブとして , ゼネラルコールアドレスを受信した。
( 反復 )「START」または「STOP」条件の検出でクリアされます。
[bit0]:ADT(Address Data Transfer)
スレーブ・アドレス受信検出ビットです。
0
受信データがスレーブ・アドレスでない。( またはバス開放中 )
1
受信データがスレーブ・アドレスである。
「START」の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・
アドレスのヘッダが検出されると , 第 2 バイトのあとクリアされ , それ以外の時は ,
第 1 バイトのあとでクリアされます。
第 1 バイト / 第 2 バイトのあととは
•
マスタ割込み (IBCR:MSS= 1 , INT= 1 ) 中に MSS ビットに "0" が書き込まれた
•
マスタ割込み (IBCR:MSS= 1 , INT= 1 ) 中に SCC ビットに "1" が書き込まれた
•
INT ビットがクリアされた
•
マスタ, またはスレーブとして転送対象でなければ, 全ての転送バイトの最初
337
第 16 章 I2C インタフェース
■ IBCR( バスコントロールレジスタ )
図 16.2-2 バスコントロールレジスタ (IBCR) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
0000B4 H
0000C4 H
0000D4 H
0000E4 H
14
bit 15
BER BEIE
初期値
13
SCC
12
MSS
11
10
9
ACK GCAA INTE
8
INT
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
I2C インタフェースが停止 (ICCR:EN= 0 ) すると , BER, BEIE ビットを除き全てのビッ
トがクリアされます。
[bit15]:BER(Bus ERror)
バスエラー割込み要求フラグビットです。このビットは , リードモディファイ系の
命令では , 常に "1" が読まれます。
表 16.2-1 ライト時
0
バスエラー割込み要求フラグをクリアする。
1
意味をもちません。
表 16.2-2 リード時
0
バスエラーは検出されていない。
1
エラーコンディションを検出した。
このビットがセットされた場合 , ICCR レジスタの EN ビットはクリアされ , I2C イ
ンタフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を
除き IBSR と IBCR レジスタの全てのビットはクリアされます。このビットは , I2C
インタフェースを再度イネーブル (EN=1) する前にクリアしてください。
"1" がセットされる場合
1. 「START」条件 , または「STOP」条件が不正な場所で検出された。( スレー
ブ・アドレス転送中 , データ転送中 )
2. 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセス
する前に , リードアクセスのスレーブ・アドレスヘッダが受信された。
3. マスタモードで転送中に「STOP」条件が検出された。
1., 2. の検出は , 転送実行中に I2C インタフェースが動作許可されていると ,
不正バスエラーレポートを抑止するために , 最初の「STOP」条件の受信後フ
ラグセットされる。
338
第 16 章 I2C インタフェース
[bit14]:BEIE(Bus Error Interrupt Enable)
バスエラー割込み許可ビットです。
0
バスエラー割込み禁止。
1
バスエラー割込み許可。
このビットが "1" の時 , BER ビットが "1" がセットされると割込みを発生します。
[bit13]:SCC(Start Condition Continue)
反復「START」条件発生ビットです。
表 16.2-3 ライト時
0
意味をもちません。
1
マスタ転送時に反復「START」条件を発生させる。
このビットの読出し値は常に "0" です。
マスタモード (MSS= 1 , INT= 1 ) 中にこのビットに "1" を書き込むと , 反復「START」
条件が発生し , 自動的に INT ビットをクリアします。
[bit12]:MSS(Master Slave Select)
マスタ / スレーブの選択ビットです。
0
スレーブモードとなります。
1
マスタモードとなり「START」条件を発生し IDAR レジスタの値を
スレーブアドレスとして送信します。
•
このビットは , マスタ送信中にアービトレーションロスが発生した場合クリア
され , スレーブモードになります。
•
マスタ割込みフラグセット中 (MSS= 1 , INT= 1 ) に "0" を書き込むと INT ビット
は自動的にクリアされ , 「STOP」条件が発生し転送が終了します。注 )MSS ビッ
トは直接的なリセットとして機能します。
「STOP」条件の発生は , IBSR レジス
タの BB ビットを調査することによって確認できます。
•
バスがアイドル中 (MSS= 0 , BB= 0 ) に "1" を書き込むと「START」条件が発生
し , IDAR の値が送信されます。
•
バス使用中 (BB= 1, TRX= 0, MSS= 0 ) に "1" を書き込むと I2C インタフェースは
バスが開放されるまで待ち , 送信を開始します。その間に I2C インタフェースは
ライトアクセスを伴うスレーブとしてアドレス指定されると , 転送終了後にバ
スは開放されます。その間 , スレーブとして送信中の場合 (IBCR:AAS=1,TRX=1
), バスが開放されてもデータ送信しません。I2C インタフェースがスレーブ
(IBSR:AAS=1 ) として指定されたか , 次の割込み時にデータを送信が正常終了に
した (IBCR:MSS= 1 ) か , 不正終了した (IBSR:AL= 1 ) かどうか確認することが重
要となります。
339
第 16 章 I2C インタフェース
[bit11]:ACK(ACKnowledge)
データを受信許可ビットに従いアクノリッジを発生するビットです。
0
データ受信に対しアクノリッジを発生しない。
1
データ受信に対しアクノリッジを発生する。
•
このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C
インタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出
したとき , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされ
ていると , アクノリッジを返します。
•
このビットへの書込みは , 割込みフラグセット中 (INT= 1 ), またはバスが開放中
(IBSR:BB= 0 ), I2C インタフェースが停止中 (ICCR:EN= 0 ) に行ってください。
[bit10]:GCAA(General Call Address Ackowledge)
ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可ビットです。
0
ゼネラルコールアドレスを受信に対しアクノリッジ発生しない。
1
ゼネラルコールアドレスを受信に対しアクノリッジ発生する。
このビットへの書込みは , 割込みフラグセット中 (INT= 1 ), またはバスが開放中
(IBSR:BB= 0 ), I2C インタフェースが停止中 (ICCR:EN= 0 ) に行ってください。
[bit9]:INTE(INTerrupt Enable)
割込み許可ビットです。
0
割込み禁止
1
割込み許可
このビットが "1" の時 , INT ビットが "1" なら割込みを発生します。
340
第 16 章 I2C インタフェース
[bit8]:INT(INTerrupt)
転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命
令では常に "1" が読み出されます。
表 16.2-4 ライト時
0
転送終了割込み要求フラグをクリアする。
1
意味をもちません。
表 16.2-5 リード時
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 インタフェースはスレーブモードになります。
341
第 16 章 I2C インタフェース
■ ICCR( クロックコントロールレジスタ )
図 16.2-3 クロックコントロールレジスタ (ICCR) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
bit 15
TEST
W
初期値
0
0000BE H
0000CE H
0000DE H
0000EE H
14
R
0
13
EN
R/W
0
12
CS4
R/W
1
11
CS3
R/W
1
10
CS2
R/W
1
9
CS1
R/W
1
8
CS0
R/W
1
[bit15]: テストビットです。
必ず "0" を書いてください。
[bit14]: 未使用ビットです。
必ず "0" を書いてください。
[bit13]:EN(ENable)
I2C インタフェース動作許可ビットです。
0
動作禁止
1
動作許可
このビットが "0" の時 , IBSR レジスタ , IBCR レジスタ (BER, BEIE ビットを除く ) の各
ビットはクリアされます。バスエラー発生 (IBCR:BER= 1 ) によりこのビットはクリア
されます。
( 注意事項 )
動作禁止にすると , I2C インタフェースは , 直ちに送受信を停止します。
[bit12 ∼ bit8]: CS4 ∼ CS0(Clock Period Select 4 ∼ 0)
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN= 0 ) にするか , EN ビットがクリ
アされたときにのみ書込み可能です。
シフトクロックの周波数 fsck は次式のように設定されます。
φ
fsck=
n
342
12+16
N > φ : 周辺クロック (= CLKP)
第 16 章 I2C インタフェース
表 16.2-6 レジスタ設定
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 は設定禁止です。
100kbps
周辺クロック周波数
CLKP[MHz]
400kbps
n
fsck
n
fsck
20.2
16
97.5
3
389.8
13.5
10
99.4
2
337.8
10.1
7
101.4
1
362.0
6.76
4
105.6
1
241.3
5.79
4
90.5
1
206.8
5.07
3
97.5
1
181.0
343
第 16 章 I2C インタフェース
■ 10 ビットスレーブアドレスレジスタ (ITBA)
図 16.2-4 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
0000B6 H
0000C6 H
0000D6 H
0000E6 H
初期値
初期値
bit 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
bit 7
TA7
6
TA6
5
TA5
4
TA4
3
TA3
2
TA2
1
TA1
0
TA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
このレジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 )
[bit15 ∼ bit10]: リード時は常に "0" です。
[bit9 ∼ bit0]: 10 ビットスレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効 (ITMK:ENTB= 1 ) のとき , スレーブモードでスレーブ・ア
ドレスを受信すると , 受信アドレスと ITBA と比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第 1, 第 2 バイト受信データと ITBA レジスタと比較されます。一致が検出されると
, アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。
I2C インタフェースは , 反復「START」条件のあと 10 ビットリードアクセスのアド
レスヘッダの受信に応答します。
スレーブ・アドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブ・アドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは ,
AAS(IBSR レジスタ ) が "1" のときのみです。
344
第 16 章 I2C インタフェース
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK)
図 16.2-5 10 ビットスレーブアドレスマスクレジスタ (ITMK)
アドレス: ch.0
ch.1
ch.2
ch.3
0000B8 H
0000C8 H
0000D8 H
0000E8 H
bit 15
14
ENTB RAL
R/W
R
初期値
bit
12
11
10
R
R
R
0
1
1
6
TM6
R/W
5
TM5
R/W
1
1
0
bit 7
TM7
R/W
初期値
13
1
R
9
TM9
R/W
8
TM8
R/W
1
1
1
1
4
TM4
R/W
3
TM3
R/W
2
TM2
R/W
1
TM1
R/W
0
TM0
R/W
1
1
1
1
1
[bit15]: ENTB 10 ビットスレーブアドレス許可ビット
10 ビットスレーブアドレス動作許可ビットです。
0
10 ビットスレーブアドレス動作禁止
1
10 ビットスレーブアドレス動作許可
このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN= 0 ) で行ってく
ださい。
[bit14]: RAL スレーブアドレス長ビット
このビットは , スレーブアドレス長を示します。
0
7 ビットスレーブアドレス
1
10 ビットスレーブアドレス
このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB= 1 かつ ENSB= 1) になっている場合に , 10 ビット , 7 ビットスレーブアドレ
ス動作のどちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (ICCR:EN= 0 ) したときにクリアされま
す。
このビットはリードのみ可能です。
[bit13 ∼ bit10]: 未使用ビットです。
リード時は常に "1" が読まれます。
345
第 16 章 I2C インタフェース
[bit9 ∼ bit0]: 10 ビットスレーブアドレスマスクビット
このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。
このレジスタへの書込みは , I2C インタフェースが動作禁止 (ICCR:EN= 0 ) のとき
行ってください。
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 10 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。受信した
スレーブアドレスは , ITBA に上書きされます。ASS= 1 (IBSR) の時 ITBA レジスタ
を読み出すことによって実際の指定されたフレーブ・アドレスを特定できます。
ITMKの TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9
∼TM0の値が"1"のときはITBAのアドレスが有効になり"0"の時は無効になります。
例:
ITBA アドレス 00100101 11B
ITMK アドレス 11111111 00B のとき
スレーブアドレスは 00100101 00B ∼ 00100101 11B の空間になります。
346
第 16 章 I2C インタフェース
■ 7 ビットスレーブアドレスレジスタ (ISBA)
図 16.2-6 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
0000BB H
0000CB H
0000DB H
0000EB H
bit
初期値
7
R
0
6
SA6
R/W
0
5
SA5
R/W
0
4
SA4
R/W
0
3
SA3
R/W
0
2
SA2
R/W
0
1
SA1
R/W
0
0
SA0
R/W
0
このレジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 )
[bit7]: 未使用ビットです。
リード時は "0" です。
[bit6 ∼ bit0]: スレーブアドレスビット (SA6 ∼ SA0)
スレーブモードでスレーブ・アドレスを受信した時 , 7 ビットスレーブアドレスが
許可 (ISMK:ENSB= 1 ) されていると , 受信スレーブ・アドレスと ISBA と比較を行
います。スレーブ・アドレス一致が検出されると , マスタに対してアクノリッジを
送信し , AAS ビットをセットします。
I2C インタフェースは , 反復「START」条件のあと 7 ビットリードアクセスのアド
レスヘッダの受信にアクノリッジを返します。
スレーブ・アドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブ・アドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは ,
AAS(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブ・アドレス指定 , またはゼネラルコール
が受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。
347
第 16 章 I2C インタフェース
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK)
図 16.2-7 7BIT スレーブアドレスマスクレジスタ (ISMK) のビット構成
アドレス: ch.0
ch.1
ch.2
ch.3
0000BA H
0000CA H
0000DA H
0000EA H
14
13
12
11
10
9
8
bit 15
ENSB SM6 SM5 SM4 SM3 SM2 SM1 SM0
R/W R/W R/W R/W R/W R/W R/W R/W
0
1
1
1
1
1
1
1
初期値
本レジスタの書き換えは動作停止中に行ってください。(ICCR:EN= 0 )
[bit15]: ENSB 7 ビットスレーブアドレス許可ビット
7 ビットスレーブアドレス動作許可ビットです。
0
7 ビットスレーブアドレス動作禁止
1
7 ビットスレーブアドレス動作許可
[bit14 ∼ bit8]: 7 ビットスレーブアドレスマスクビット (SM6 ∼ SM0)
このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する
このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 7 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。受信した
スレーブアドレスは , ISBA に上書きされます。ASS= 1 (IBSR) の時 ISBA レジスタ
を読み出すことによって実際の指定されたフレーブ・アドレスを特定できます。
I2C インタフェースが許可になった後 , スレーブ・アドレス (ISBA) は , 受信動作に
よって書き換えられるため , ISMK が書き換えたときは , ISMK を再設定しないと期
待通りの動作をしないことがあります。
ISMKのSM6∼SM0の各ビットがISBAのアドレスの各ビットに対応しておりSM6∼
SM0 の値が "1" のときは ISBA のアドレスが有効になり "0" の時は無効になります。
例:
ISBA アドレス 0010111B
ISMK アドレス 1111100B のとき
スレーブアドレスは 0010100B ∼ 0010111B の空間になります。
348
第 16 章 I2C インタフェース
■ データレジスタ (IDAR)
図 16.2-8 データレジスタ (IDAR)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BD H
0000CD H
0000DD H
0000ED H
bit
初期値
7
D7
R/W
0
6
D6
R/W
0
5
D5
R/W
0
4
D4
R/W
0
3
D3
R/W
0
2
D2
R/W
0
1
D1
R/W
0
0
D0
R/W
0
[bit7 ∼ bit0]: データビット (D7 ∼ D0)
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中(BB=1)であ
る場合 , 書き込みデータはシリアル転送用のレジスタにロードされます。INT ビッ
ト (IBCR) がクリアされるか , バスがアイドル状態 (IBSR:BB= 0 ) のとき転送データ
は内部転送レジスタにロードされます。
読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー
タは INT ビット (IBCR) がセットされている場合のみ有効です。
■ クロックディセーブルレジスタ (IDBL)
図 16.2-9 クロックディゼーブルレジスタ (IDBL)
アドレス: ch.0
ch.1
ch.2
ch.3
0000BF H
0000CF H
0000DF H
0000EF H
bit
初期値
7
6
5
4
3
2
1
0
R
0
R
0
R
0
R
0
R
0
R
0
R
0
DBL
R/W
0
[bit0]: クロックディセーブルビット (DBL)
このビットは I2C インタフェース用の動作クロック供給の許可 , 停止を指示します。
低消費電力時に使用できます。
0
I2C のクロックを供給します。
1
I2C のクロックを停止します。I2C ラインは開放されます。
本ビットは , リセットにより "0" に初期化されます。
本ビットに "1" を書き込むと , 本レジスタ (IDBL) を除き , 読出し値は不定値となり
, 本ビット ( 本レジスタ ) 以外の書込みは無効になります。
( 注意事項 )
このビットを "1" にすると I2C は送受信中でも直ちに停止します。
349
第 16 章 I2C インタフェース
16.3
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインにり転送が行われます。
I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL)
を有し , ワイヤード論理を可能にします。
■「START」条件
バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ
ンタフェースはマスタモードとなり , 「START」条件を発生します。そのとき , スレー
ブ・アドレスとして IDAR レジスタの値を送信します。
バスマスタモードで割込みフラグがセットされている時 (IBCR:MSS= 1 , INT= 1 ), SCC
ビットに "1" を書き込むことで , 反復「START」条件が生成されます。
バス使用時 (IBSR:BB= 1 , TRX= 0 , IBCR:MSS= 0 または IBCR:INT= 0 ) に , MSS ビット
に "1" を書き込むとバスが開放され , 送信が開始されます。
スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 ,
送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され
ても送信しません。
インタフェースは , 次のことをチェックする必要があります。
• スレーブとして指定された (IBCR:MSS= 0 , IBSR:AAS= 1 ) かどうか。
• 次の割込みで , データバイトを正常に送れた (IBSR:AL= 1 ) かどうか
■「STOP」条件
マスタモード (IBCR:MSS= 1, INT= 1 ) 時に , MSS ビットに "0" を書き込むと , 「STOP」
条件を発生し , スレーブモードになります。ほかの条件での , MSS に "0" 書込みは , 無
視されます。
MSS ビットがクリアされたあと , 「STOP」条件を生成しようとします。
「STOP」条件
を生成する前に , SCL ラインが "L" にドライブされているときは , 生成されません。次
のバイトが転送されたあと割込みが生成されます。
( 注意事項 )
MSS ビットに "0" を書き込んでから , 「STOP」条件を発生するまでに時間を要します。
「STOP」条件を発生前に I2C インタフェースを動作禁止 (IDBL:DBL=1 または ICCR:EN=
0 ) にすると , 直ちに動作停止し SCL ラインに不正クロックが発生します。
I2C インタフェースを動作禁止する際には , 「STOP」条件を発生を確認 (IBSR:BB=0) し
たのち , 動作を禁止 (IDBL:DBL= 1 または ICCR:EN= 0 ) してください。
350
第 16 章 I2C インタフェース
■ スレーブアドレス検出
スレーブモードでは , 「START」条件発生後 , BB=1 にセットされ , マスタからの送信
データを IDAR レジスタへ受信します。
● 7 ビットスレーブアドレス動作許可の場合 (ISMK:ENSB= 1 )
8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。このと
き , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS=1 にセットし , マスタに対してアクノリッジを送信します。そ
の後 , 受信データの bit0( 受信後の IDAR レジスタの bit0) を反転して TRX ビットへ格
納します。
● 10 ビットスレーブアドレス動作許可の場合 (ITMK:ENTB= 1 )
10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出したらマスタに対してア
クノリッジを送信し受信データの bit0 を反転して TRX ビットへ格納します。このとき
割込みは発生しません。
続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。このと
き ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信しま
す。このとき割込みが発生します。
スレーブとしてアドレス指定され , 反復「START」条件を検出した場合 , 10 ビットア
ドレスのヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを
発生します。
10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ
(ISBA) を搭載しているので , 両方の動作許可 (ISMK:ENSB=1 , ITMK:ENTB=1) をするこ
とにより, 10ビットアドレス/7ビットアドレスに対してアクノリッジを送信できます。
スレーブモード時 (AAS= 1 ) の受信スレーブアドレス長は , ITMK レジスタの RAL ビッ
ト に よ っ て 決 定 し ま す。マ ス タ モ ー ド 時 は , 両 方 の 動 作 を 禁 止 (ISMK:ENSB= 0,
ITMK:ENTB= 0 ) することにより , I2C インタフェースにスレーブアドレスを生成しな
いことが可能です。
全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできます。
351
第 16 章 I2C インタフェース
■ スレーブアドレスマスク
スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各
ビットに対してマスクできます。マスクレジスタに "1" をセットされたビットはアド
レス比較を行いますが , "0" に設定されているビットは無視されます。スレーブモード
(IBSR:AAS= 1 ) 時 , 受信スレーブアドレスは , ITBA(10 ビットアドレス時 ), ISBA(7 ビッ
トアドレス時 ) レジスタから読み出せます。
ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの
モニターとして使用できます。
( 注意事項 )
ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを
返すので , この機能は , リアルバスモニターとはなりません。
■ マスタアドレッシング
マスタモードでは , 「START」条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタ
の内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを
受信すると , 送信データの bit0( 送信後の IDAR レジスタの bit0) を反転して TRX ビッ
トへ格納します。この動作は , 反復「START」条件でも実行されます。
ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第 1 バイトは , 10
ビットシーケンスを示すヘッダ '1 1 1 1 0 A9 A8 0' であり , 続いて , 第 2 バイトでスレー
ブアドレスの下位 8 ビット (A7-A0) を送信します。
リード 10 ビットスレーブデバイスは上記のバイトを送信し , 反復「START」条件とと
もに , リードアクセスを示すヘッダ '1 1 1 1 0 A9 A8 1' を生成します。
7 ビットスレーブ
アクセス
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 となり , スレーブ受信モードと
なり , 自身のスレーブアドレスを受信するとアクノリッジを返します。
352
第 16 章 I2C インタフェース
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット
(IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択できます。
スレーブモード時のデータ送信 ( 他のマスタからのリードアクセス ) に , マスタからア
クノリッジが無くても , TRX ビットは "0" にセットし , 受信モードになります。これに
より , マスタはスレーブが SCL ラインを開放した時に , ストップコンディションを発
生できます。
マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか
どうかをチェックできます。
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビット含む ) の I2C バス 上の基本規定違反の検出
• マスタ一時のストップコンディション検出
• バスアイドル時の I2C バス上の基本規定違反の検出
( 注意事項 )
10 ビットアドレス Disable 時に於いても 10 ビットモードアドレッシングのバスエラーは
検出されます。
■ エラーを発生しない通信エラー
マスタモード送信時 , SCL ラインにノイズ等で不正クロックが発生すると , I2C インタ
フェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ラインに
"L" を出したまま , ハングアップすることがあります。このようなクロックの不正に対
し , エラー (AL= 1 , BER= 1 ) が発生しません。
この場合次の方法でエラー処理をしてください。
1. MSS= 1 , TRX= 1 , INT= 1 の時 , LRB= 1 であれば , 通信エラーと判断。
2. ここで , EN= 0 とし , その後 EN= 1 とすることにより , 擬似的に SCL が 1 クロック
発生します。
これにより , スレーブにバスを開放させます。
EN= 0 から EN= 1 の期間は , スレーブ側が , クロックと認識できる期間 ( 送信クロッ
クの "H" 期間と同じ程度 ) としてください。
3. EN= 0 の時点で , IBSR, IBCR はクリアされますので , 「START」コンディションか
ら再送信処理をしてください。このとき , BSS= 0 による「STOP」コンディション
は生成されません。
このとき , EN= 1 から MSS= 1 (「START」コンディション ) までに , "n × 7 × tCPP"
以上の時間を空けてください。
例 : 高速モードの場合 : 6 × 7 × 30.3 ≒ 1.273 µ s
標準モードの場合 :27 × 7 × 30.3 ≒ 5.727 µ s
353
第 16 章 I2C インタフェース
( 注意事項 )
BER がセットされている場合は , EN= 0 でクリアされませんのでクリア後 , 再送信してく
ださい。
■ その他
• アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド
レッシングされていなかった場合をソフトで判断しなければならない。
アービトレーションロストするとハード的にスレーブになるが , 1 バイト転送終了
後 , CLK ライン , DATA ライン双方を "L" に引っ張る。このため , アドレッシングさ
れていなければ , 即座に CLK ライン , DATA ラインを開放し , アドレッシングされ
ていた場合には , スレーブ送信または , スレーブ受信の準備をしてから , CLK ライ
ン , DATA ラインを開放する必要がある。( すべてソフトにて処理する必要がありま
す。)
• I2 C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるい割込み条
件に該当していた場合 , 割込み要因がたつ仕様になっています。1 つの割込みで , 複
数の割込み条件を判断しなければならないため , 割込みルーチン内で , 各フラグを
チェックしなければ , なりません。1 バイト転送終了時点での割込み条件を下記に
示します。
- バスマスタであった場合
- アドレスされたスレーブであった場合
- ゼネラルコールアドレスを受信した場合
- アービストレーションロストが生じた場合
• アービトレーションロストを検出した場合 , 即座に割込み要因が立つのではなく , 1
バイト転送終了した時点で要因は立ちます。
アービトレーションロストを検出するとハード的にスレーブになるが , スレーブに
なっても , 割込み要因をたてるために , トータル 9 クロック出力する。よって , 即座
に割込み要因が立たないため , アービトレーションロスト後に処理を行う事はでき
ない。
354
第 16 章 I2C インタフェース
16.4
動作フローチャート
この節では , 次の動作例のフローチャートを示します。
• メインルーチン
• 割込みルーチン
■ メインルーチン
図 16.4-1 メインルーチン
開始
スレーブアドレス
を設定
バスエラー割込み許可
I2Cの動作許可
YES
マスタ受信動作
NO
マスタ送信
送信データバイト数
のセット
マスタ受信
受信データバイト数
のセット
スレーブアドレスセット
受信
(データ方向ビット=0)
スレーブアドレスセット
送信
(データ方向ビット=0)
YES
YES
BBbit = 1 ?
NO
NO
スレーブアドレス送信
スタートコンディション発生
BBbit = 0 ?
BBbit = 1 ?
スレーブアドレス受信
スタートコンディション発生
YES
BBbit = 0 ?
NO
ALbit = 1 ?
YES
NO
I2Cの動作禁止
YES
NO
ALbit = 1 ?
YES
NO
I2Cの動作禁止
355
第 16 章 I2C インタフェース
■ 割込みルーチン
図 16.4-2 割込みルーチン
2
1
開始
STOPコンディション発生
YES
バスエラーは
生じたか
2
RETI
NO
ALは生じたか
I2Cの初期設定
YES
3
3
I2Cの動作許可
3
アクノリッジ
発生許可
RETI
1
スレーブプログラムの
割込みルーチンへ
NO
マスタか
NO
YES
NO
ACKは返ってきたか
YES
データ方向ビット
TRX bit = 1 ?
NO
YES
残りの送信バイト数=0?
NO
残りの受信バイト数=0?
YES
1
転送終了割込み
要因クリア
残りの受信バイト数=1?
アクノリッジ発生許可
アクノリッジ発生禁止
第1バイト目の受信か ?
ADTbit = 1 ?
YES
受信バイト数のデクリメント
受信データをRAMへ格納
転送終了割込み
要因クリア
RETI
356
YES
NO
NO
RETI
1
NO
送信倍と数のデクリメント
送信データのセット
YES
第 17 章
DMAC(DMA コントローラ )
この章では , DMA コントローラ (DMAC) の概要 ,
レジスタの構成 / 機能 , および DMA コントローラ
(DMAC) の動作について説明します。
17.1 DMA コントローラ (DMAC) 概要
17.2 DMA コントローラ (DMAC) のレジスタ
17.3 DMA コントローラの動作
17.4 転送要求の設定
17.5 転送シーケンス
17.6 DMA 転送全般
17.7 動作フローチャート
17.8 データパス
357
第 17 章 DMAC(DMA コントローラ )
17.1
DMA コントローラ (DMAC) 概要
本モジュールは , FR ファミリデバイスにて DMA(Direct Memory Access) 転送を実
現するためのモジュールです。
本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高
速に行うことが可能となり , システムのパフォーマンスを増加させます。
外部転送要求端子には USB ファンクションのエンドポイント 1・2 の DMA 転送要
求がチップ内部で接続されています。USB ホストには DMA 転送要求機能はありま
せん。
■ ハードウェア構成
本モジュールは , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5ch
• 5ch 独立アクセス制御回路
• 32bit アドレスレジスタ ( リロード指定可 : 各チャネル 2 本 )
• 16bit 転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 外部転送要求入力 DREQ0, DREQ1(ch.0, ch.1, ch.2 のみ )
• 外部転送要求受付出力 DACK0, DACK1(ch.0, ch.1, ch.2 のみ )
• DMA 終了出力 DEOP0, DEOP1, DEOP2(ch.0, ch.1, ch.2 のみ )
• fly-by transfer (memory to I/O , I/O to memory) (ch.0, ch.1, ch.2 のみ )
• Two-cycle transfer
■ 主要機能
本モジュールによるデータ転送には主に以下の様な機能があります。
• 複数チャネルの独立したデータ転送が可能 (5ch)
- 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
- ch.0, ch.1 間にて順位回転が可能
• DMAC 起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 ch.0 ∼ ch.2 のみ )
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込み含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 / バースト転送 / ステップ転送 / ブロック転送
- アドレシングモード 32bit フルアドレス指定 ( 増加 / 減少 / 固定 )
( アドレス増減幅は− 255 ∼+ 255 まで指定可能 )
- データの種類 byte/halfword/word 長
- シングルショット / リロード選択可能
358
第 17 章 DMAC(DMA コントローラ )
■ レジスタ一覧
図 17.1-1 レジスタ一覧
(bit)
ch.0コントロール/ステータスレジスタA
DMACA0 00000200H
ch.0コントロール/ステータスレジスタB
DMACB0 00000204H
ch.1コントロール/ステータスレジスタA
DMACA1 00000208H
ch.1コントロール/ステータスレジスタB
DMACB1 0000020CH
ch.2コントロール/ステータスレジスタA
DMACA2 00000210H
ch.2コントロール/ステータスレジスタB
DMACB2 00000214H
ch.3コントロール/ステータスレジスタA
DMACA3 00000218H
ch.3コントロール/ステータスレジスタB
DMACB3 0000021CH
ch.4コントロール/ステータスレジスタA
DMACA4 00000220H
ch.4コントロール/ステータスレジスタB
DMACB4 00000224H
全体制御レジスタ
DMACR
ch.0 転送元アドレスレジスタ
DMASA0 00001000H
ch.0 転送先アドレスレジスタ
DMADA0 00001004H
ch.1 転送元アドレスレジスタ
DMASA1 00001008H
ch.1 転送先アドレスレジスタ
DMADA1 0000100CH
ch.2 転送元アドレスレジスタ
DMASA2 00001010H
ch.2 転送先アドレスレジスタ
DMADA2 00001014H
ch.3 転送元アドレスレジスタ
DMASA3 00001018H
ch.3 転送先アドレスレジスタ
DMADA3 0000101CH
ch.4 転送元アドレスレジスタ
DMASA4 00001020H
ch.4 転送先アドレスレジスタ
DMADA4 00001024H
31 24 23 16 15
8
7
0
00000240H
359
第 17 章 DMAC(DMA コントローラ )
■ ブロックダイヤグラム
図 17.1-2 ブロックダイヤグラム
カウンタ
バッファ
セレクタ
DMA起動要因
選択回路
&
要求受付制御
ライトバック
バスコントローラへ
DMA転送要求
ペリフェラル起動要求/停止入力
外部端子起動要求/停止入力
DTC 2段レジスタ DTCR
カウンタ
DSS[3:0]
バッファ
Read
Write
リード/ライト
制御
優先度回路
ERIR,EDIR
セレクタ
割込みコントローラへ
外部割込みクリア
BLK register
MCLREQ
TYPE.MOD,WS
セレクタ
カウンタバッファ
X-bus
DMAコントロール
DSAD 2段レジスタ
SADM,SASZ[7:0] SADR
ライトバック
セレクタ
アドレス
カウンタバッファ
アクセス
アドレスカウンタ
バス制御部
バス
コントロ
ーラへ
DDNO register
DDAD 2段レジスタ
DADM,DASZ[7:0] DADR
ライトバック
DMAC 5ch ブロックダイヤグラム
360
バス制御部
セレクタ
状態遷移回路
DDNO
IRQ[4:0]
第 17 章 DMAC(DMA コントローラ )
17.2
DMA コントローラ (DMAC) のレジスタ
この節では , DMA コントローラ (DMAC) で使用するレジスタの構成 , および機能に
ついて説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
以降で説明する各レジスタのビット機能についている「*マーク」は DMAC 転送中に
設定すると動作に影響するビットです。このビットの書き換えは DMAC 転送停止中
( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと
き ) で設定した場合は , 一時停止解除後に設定は有効になります。
■ DMAC-ch.0, 1, 2, 3, 4 コントロール / ステータスレジスタ A[DMACA0 ∼ 4]
DMAC各チャネルの動作制御を行うレジスタで, 各チャネル毎に独立して存在します。
各ビット機能は以下に示す通りです。
図 17.2-1 DMAC-ch.0, 1, 2, 3, 4 コントロール / ステータスレジスタ A[DMACA0 ∼ 4] のビット構成
bit
31
30
29
28
27
15
14
13
25
24
23
IS[4:0]
DENB PAUS STRG
bit
26
12
11
(
10
22
21
20
19
DDNO[3:0]
9
8
7
6
5
18
17
16
BLK[3:0]
4
3
2
1
0
DTC[15:0]
: 00000000_0000XXXX_XXXXXXXX_XXXXXXXX bit)
[bit31]: DENB (Dma ENaBle) :DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま
す。
起動許可されていないチャネルに対して発生した転送要求は , 全て無効となりま
す。
起動されたチャネルの転送が指定回数分全て終了した場合 , 本ビットは "0" になり ,
転送は停止します。
本ビットに "0" をライトすると強制停止しますが , 必ず PAUS ビット [DMACA:bit30]
で DMA を一時停止状態にしてから強制停止 ("0" ライト ) してください。一時停止
しないで強制停止した場合は DMA は停止しますが転送データは保証されません。
停止の確認は DSS[2:0] ビット (DMACB:bit18 ∼ bit16) で行ってください。
DENB
0
機能
対応チャネル DMA 動作禁止 ( 初期値 )
361
第 17 章 DMAC(DMA コントローラ )
DENB
1
機能
対応チャネル DMA 動作許可
•
リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。
•
リード / ライト可能です。
•
DMAC 全体制御レジスタ DMACR の bit15:DMAE ビットにより , 全チャネル
の動作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状
態を維持します。また , 本ビットにより動作が許可されている状態にて前記
ビットにより動作が禁止された場合 , 本ビットは "0" となり , 転送は中断しま
す ( 強制停止 )。
[bit30]: PAUS (PAUSe): 一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません。(DMA が
停止中は DSS ビットが "1xx" になります )
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません。(「17.6 DMA 転送全般」を参照 )
PAUS
機能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 動作一時停止
•
リセット時 :"0" に初期化されます。
•
リード / ライト可能です。
[bit29]: STRG (Software TRiGger) : 転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。
ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と
なります。
( 注意事項 )
DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要
求は有効となり , 転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場
合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しませ
ん。
362
第 17 章 DMAC(DMA コントローラ )
STRG
機能
0
無効
1
DMA 起動要求
•
リセット時 :"0" に初期化されます。
•
リード値は常に "0" となります。
•
ライト値は "1" のみ有効で , "0" は動作に影響を与えません。
[bit28 ∼ bit24]: IS4 ∼ IS0 (Input Select) * : 転送要因選択
転送要求の要因を以下の様に選択します。ただし , STRG ビット機能によるソフト
ウェア転送要求は本設定に関わらず有効となります。
IS
機能
00000
ハードウェア
00001
↓
01101
設定禁止
↓
設定禁止
01110
外部端子 (DREQ) H レベル or ↑エッジ
01111
外部端子 (DREQ) L レベル or ↓エッジ
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
外部割込み 3
11111
PPG0
11110
PPG1
11111
PPG2
• リセット時 :00000 に初期化されます。
• リード / ライト可能です。
363
第 17 章 DMAC(DMA コントローラ )
( 注意事項 )
• 周辺機能の割込みによる DMA 起動を設定した場合 (IS=1xxxx), 選択した機能は , ICR
レジスタで割込みを禁止状態にしてください。
• デマンド転送モードを選択した場合は , IS[4:0]=01110, 01111 のみ設定可能です。他の
要因での起動は禁止。
• 外部要求入力は , ch.0, ch.1, ch.2 のみ有効です。ch.3, ch.4 は外部要求入力は選択でき
ません。またレベル検出かエッジ検出かはモード設定により決定されます。( デマンド
転送はレベル , ほかはエッジ検出になります )
[bit23 ∼ bit20]: DDNO3 ∼ DDNO0 ( ダイレクトアクセスナンバー ) * : 内蔵周辺への
fly-by 機能
対応するチャネルで使用する転送先 / 元の内蔵周辺を指定します。
表 17.2-1 ダイレクトアクセスナンバー
DDNO
Function
0000
設定禁止
0001
未使用
0010
未使用
0011
未使用
0100
未使用
0101
未使用
0110
未使用
0111
未使用
1000
未使用
1001
未使用
1010
未使用
1011
未使用
1100
未使用
1101
未使用
1110
未使用
1111
設定禁止
• リセット時 :0000 に初期化されます。
• リード / ライト可能です。
( 注意事項 )
本品種はこの機能はサポートされません。書込みデータは無視されます。
364
第 17 章 DMAC(DMA コントローラ )
[bit19 ∼ bit16]: BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。 本ビットに
設定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返
し回数 ) となります。ブロック転送を行わない場合は 01H ( サイズ 1) を設定してく
ださい。( デマンド転送時は本レジスタ値は無視されます。サイズ 1 となります。)
BLK
XXH
機能
対応チャネルのブロックサイズ指定
• リセット時 : 初期化されません。
• リード / ライト可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16word となります。
• リード時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit0]: DTC (Dma Terminal Count register) * : 転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16bit 長で構成されています。
全てのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタの
リロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定
値をレジスタに戻します。
DTC
XXXXH
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 )。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。よって DMA 動作中の転送回数指定値を読み出すことはできません。
•
リセット時 : 初期化されません。
•
リード / ライト可能です。DTC のアクセスは , 必ず halfword 長または word 長
にてアクセスしてください。
•
リード時の値は , カウント値となります。リロード値のリードはできません。
•
リセット時 : 初期化されません。
365
第 17 章 DMAC(DMA コントローラ )
■ DMAC-ch.0, 1, 2, 3, 4
コントロール / ステータスレジスタ B [DMACB0 ∼ 4]
DMAC 各チャネルの動作制御を行うレジスタで , 各チャネル毎に独立して存在します。
各ビット機能は以下に示す通りです。
図 17.2-2 DMAC-ch.0, 1, 2, 3, 4
bit
31
30
29
28
コントロール / ステータスレジスタ B [DMACB0 ∼ 4] のビット構
成
27
26
25
24
23
22
21
20
19
18
TYPE[1:0] MOD[1:0] WS[1:0] SADM DADM DTCR SADR DADR ERIE EDIE
bit
15
14
13
12
11
10
9
8
7
6
SASZ[7:0]
(
5
4
3
17
16
DSS[2:0]
2
1
0
DASZ[7:0]
: 00000000_00000000_XXXXXXXX_XXXXXXXX bit)
[bit31, bit30]: TYPE1, TYPE0 (TYPE) *: 転送タイプ設定
対応チャネルの動作タイプを以下の様に設定します。
two-cycle 転送モード : 転送元アドレス (DMASA) と転送先アドレス (DMADA) を設
定してリード動作とライト動作を転送回数分繰り返して転送するモード。転送元 /
転送先ともに全領域 (32bitADDRESS) 指定可能です。
fly-by 転送モード : 転送先アドレス (DMADA) に memory アドレスを設定すること
により外部 ( 外部転送を 1cycle で行うモード。memory アドレスは必ず外部領域を
指定してください。
TYPE
機能
00
two-cycle 転送 ( 初期値 )
01
Fly-by: Memory → I/O 転送
10
Fly-by: I/O → memory 転送
11
設定禁止
• リセット時 : "00" に初期化されます。
• リード / ライト可能です。
[bit29, bit28]: MOD1, MOD0 (MODe) * : 転送モード設定
対応チャネルの動作モードを以下の様に設定します。
MOD
機能
00
ブロック / ステップ転送モード ( 初期値 )
01
バースト転送モード
10
デマンド転送モード
11
設定禁止
• リセット時 : "00" に初期化されます。
366
第 17 章 DMAC(DMA コントローラ )
• リード / ライト可能です。
[bit27, bit26]: WS1, WS0 (Word Size) : 転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機能
00
Byte 単位で転送 ( 初期値 )
01
Halfword 単位で転送
10
Word 幅単位で転送
11
設定禁止
• リセット時 : "00" に初期化されます。
• リード / ライト可能です。
[bit25]: SADM (Source-ADdr. count-Mode select) * : 転送元アドレスカウントモード指
定
対応するチャネルの転送元アドレスの , 1 転送毎のアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMASA) に書き込まれます。
よって DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を 0 としてください。
SADM
機能
0
転送元アドレスは増加します。( 初期値 )
1
転送元アドレスは減少します。
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit24]: DADM (Destination-ADdr. Count-Mode select) * : 転送先アドレスカウント
モード指定
対応するチャネルの転送先アドレスの , 1 転送毎のアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
よって DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
367
第 17 章 DMAC(DMA コントローラ )
ト幅 (SASZ, DASZ) を 0 としてください。
DADM
機能
0
転送先アドレスは増加します。( 初期値 )
1
転送先アドレスは減少します。
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit23]: DTCR (DTC-reg. Reload) * : 転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG または , IS 設定による起動要求 ) 待
ち状態になります。( 本ビットが "1" の場合 , DENB ビットはクリアされません )
DENB=0, または DMAE=0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 DENB ビットはクリアされます。
DTCR
機能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit22]: SADR (Source-ADdr.-reg. Reload) * : 転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります )。
SADR
368
機能
0
転送元アドレスレジスタリロードを禁止 ( 初期値 )
1
転送元アドレスレジスタリロードを許可
第 17 章 DMAC(DMA コントローラ )
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit21]: DADR (Dest.-ADdr.-reg. Reload) * : 転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit22:SADR の内容と等価になります。
DADR
機能
0
転送先アドレスレジスタリロードを禁止 ( 初期値 )
1
転送先アドレスレジスタリロードを許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit20]: ERIE (ERror Interrupt Enable) * : エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。 発生したエラーの内容は
DSS2 ∼ DSS0 にて示されます。すべての終了要因で本割込みが発生するのではな
く , 特定の終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼
DSS0 ビット説明参照のこと )。
ERIE
Function
0
エラー割込み要求出力禁止 ( 初期値 )
1
エラー割込み要求出力許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit19]: EDIE (EnD Interrupt Enable) * : 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
369
第 17 章 DMAC(DMA コントローラ )
[bit18 ∼ bit16]: DSS2 ∼ DSS0 (Dma Stop Status) * : 転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビット のコード ( 終了コー
ド ) を表示します。終了コードの内容は以下の通りです。
DSS
機能
割込み発生
000
初期値
なし
x01
アドレスエラー ( アンダ / オーバフロー )
エラー
x10
転送停止要求
エラー
x11
正常終了
1xx
DMA 一時停止中 (DMAH, PAUS ビット , 割込み等 )
終了
None
転送停止要求は , 周辺回路からの要求と外部端子 DSTP 機能を使用した場合のみ
セットされます。
( 注意事項 )
「割込み発生」欄は , 発生可能な割込み要求の種類を示す。
• リセット時 :"000" に初期化されます。
• "000" を書き込むことにより , クリアされます。
• リード / ライト可能ですが , 本ビットへの書込みは "000" のみ有効となります。
[bit15 ∼ bit8]: SASZ (Source Addr count SiZe) * : 転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送毎の転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
XXH
機能
転送元アドレスの増減幅を指定します。0 ∼ 255
• リセット時 : 初期化されません。
• リード / ライト可能です。
[bit7 ∼ bit0]: DASZ (Des Addr count SiZe) * : 転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送毎の転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
XXH
機能
転送先アドレスの増減幅を指定します。0 ∼ 255
• リセット時 : 初期化されません。
• リード / ライト可能です。
370
第 17 章 DMAC(DMA コントローラ )
■ DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定レジスタ
[DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4]
DMAC各チャネルの動作制御を行うレジスタで, 各チャネル毎に独立して存在します。
各ビット機能は以下に示す通りです。
図 17.2-3 DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定レジスタ
[DMASA0 ∼ DMASA4/DMADA0 ∼ DMASA4] のビット構成
bit
31
30
29
28
27
26
25
bit
15
14
13
12
11
10
9
24 23 22 21
DMASA[31:16]
8
7
6
5
DMASA[15:0]
20
19
18
17
16
4
3
2
1
0
(初期値: XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXビット)
bit
31
30
29
28
27
26
25
bit
15
14
13
12
11
10
9
24 23 22 21
DMADA[31:16]
8
7
6
5
DMADA[15:0]
20
19
18
17
16
4
3
2
1
0
(初期値: XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXビット)
転送元 / 転送先アドレスを格納するレジスタ群です。各レジスタは 32 ビット長で構成
されています。
[bit31 ∼ bit0]: DMASA (DMA Source Addr) * : 転送元アドレス設定
転送元アドレスの設定を行います。
[bit31 ∼ bit0]: DMADA (DMA Destination Addr) * : 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウン
タバッファに格納して 1 転送毎に設定に従いアドレスカウントします。DMA の転送終
了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了します。
よって DMA 動作中のアドレスカウンタ値を読み出すことはできません。
全てのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先アドレス
レジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に
初期設定値をレジスタに戻します。この際 , 他のアドレスレジスタには影響を与えま
せん。
• リセット時 : 初期化されません。
• リード / ライト可能です。本レジスタは , 必ず 32 ビットデータ でアクセスしてくだ
さい。
• リード時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスアド
レス値となります。リロード値のリードはできません。よって転送アドレスをリア
ルタイムでリードできません。
( 注意事項 )
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
371
第 17 章 DMAC(DMA コントローラ )
■ DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ [DMACR]
DMAC 5ch 分全体の動作制御を行うレジスタです。本レジスタは必ず バイト長でアク
セスしてください。
各ビット機能は以下に示す通りです。
図 17.2-4 DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ [DMACR] のビット構成
bit
31
DMAE
bit
15
-
30
14
-
29 28
- PM01
13 12
-
27
26 25
DMAH[3:0]
11 10 9
-
24
8
-
23
7
-
22
6
-
21
5
-
20
4
-
19
3
-
18
2
-
17
1
-
16
0
-
(初期値: 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXX_ビット)
[bit31]: DMAE (DMA Enable) :DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , 各チャネル毎の起動 / 停止の設
定や動作状態に関わらず , 全チャネルの転送動作が禁止されます。転送中であった
チャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて ,
各チャネルに対して行われる起動操作は , すべて無効となります。
本ビットにより DMA 動作が許可されている場合 , 各チャネル毎に起動 / 停止操作
が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対
する起動は行われません。
本 ビ ッ ト に "0" を ラ イ ト す る と 強 制 停 止 し ま す が , 必 ず DMAH[3:0] ビ ッ ト
(DMACR:bit27 ∼ bit24) で DMA を一時停止状態にしてから強制停止 ("0" ライト ) し
てください。一時停止しないで強制停止した場合は DMA は停止しますが転送デー
タは保証されません。停止の確認は DSS[2:0] ビット (DMACB:bit18 ∼ bit16) で行っ
てください。
DMAE
機能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit28]: PM01 (Priority Mode ch.0, ch.1 robin) : チャネル優先度回転
ch.0, ch.1 の優先度を転送毎に順位を回転させるときに設定します。
PM01
機能
0
優先順位固定 (ch.0 > ch.1)( 初期値 )
1
優先順位回転 (ch.1 > ch.0)
• リセット時 : "0" に初期化されます。
372
第 17 章 DMAC(DMA コントローラ )
• リード / ライト可能です。
[bit27 ∼ bit24]: DMAH (DMA Halt) :DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと
なります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送
を開始します。
DMAH
0000
0000 以外
機能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時 : "0" に初期化されます。
• リード / ライト可能です。
[bit30, bit29, bit23 ∼ bit0]: (Reserved): 未使用ビットです。
リ−ド値は不定です。
■ その他の機能
本品種は , 外部転送用として DACK, DEOP, DREQ の端子がありますが汎用ポートを兼
用になっております。
この機能を使用するときはポート機能から DMA 端子機能に切り換える必要がありま
す。
PFR レジスタの設定で切り換えてください。
373
第 17 章 DMAC(DMA コントローラ )
17.3
DMA コントローラの動作
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速に
データ転送を制御する多機能 DMA コントローラです。
■ 主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。
• 転送は各チャネルごとに独立に設定されたモード設定に従ったシーケンスで行わ
れます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された
転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受付け
られるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0])
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数
:
DMACA:DTC[15:0])
ブロックサイズ分×転送回数分
(DMACA:BLK[3:0]
×
● デマンド転送
外部からの転送要求入力 (DREQ 端子のレベル検出 ) 終了か , 指定転送回数終了までは
連続して転送を行います。
デマンド転送での指定転送回数は設定した転送回数分 (DMACA:DTC[15:0]) となりま
す。ブロックサイズは "1" 固定となりレジスタ値は無視されます。
374
第 17 章 DMAC(DMA コントローラ )
■ 転送タイプ
● two-cycle 転送 ( 通常転送 )
DMA コントローラの動作は , リード動作とライト動作を 1 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータをリードして転送先レジスタのアドレスへデー
タをライトします。
● fly-by 転送 (memory to IO)
DMA コントローラの動作は , リード動作を 1 つの単位として動作を行います。
fly-by 転送を設定して DMA 転送を行うと DMA はバスコントローラに対し fly-by 転送
(read) 要求を出しバスコントローラは外部インタフェースに fly-by 転送 (read) をさせま
す。
● fly-by 転送 (IO to memory)
DMA コントローラの動作は , ライト動作を 1 つの単位として動作を行います。
他は fly-by 転送 (memory to IO) と同等です。
本品種での fly-by 転送のアクセス領域は必ず外部領域でなければいけません。
375
第 17 章 DMAC(DMA コントローラ )
■ 転送アドレス
アドレシングには以下の様なものがあり , 各チャネル転送元 / 転送先ごとに独立に設定
します。
two-cycle 転送と fly-by 転送でのアドレス設定レジスタ (DMASA, DMADA) の指定方法
は異なります。
● two-cycle 転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの
内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバックさ
れます。
よってアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更新
されませんので転送中のアドレスをリアルタイムに知ることはできません。
● fly-by 転送でのアドレスの指定
fly-by 転送では転送先アドレスレジスタ (DMADA) から読み出した値をアドレスとして
アクセスします。転送元アドレスレジスタ (DMASA) は無視されます。設定するアド
レスは必ず外部領域にしてください。
転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファの
内容は 1 ブロック転送単位終了ごとにレジスタ (DMADA) へライトバックされます。
よってアドレスレジスタ (DMADA) 値は , 1 ブロック転送単位ごとにしか更新されませ
んので転送中のアドレスをリアルタイムに知ることはできません。
376
第 17 章 DMAC(DMA コントローラ )
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをディクリメント ( − 1) します。転
送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止ま
たは再起動 (1) します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります。(DMACB:DTCR)
● 転送終了
転送終了要因には , 以下の様なものがあり , 終了時は終了コードとして要因が表示され
ます。(DMACB:DSS[2:0])
• 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) = > 正常終了
• 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 = > エラー
• アドレスエラーの発生 = > エラー
• リセットの発生 = > リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
377
第 17 章 DMAC(DMA コントローラ )
転送要求の設定
17.4
DMA 転送を起動する転送要求は , 以下の 3 種類があります。 ソフトウェア要求につ
いては , 他の要求の設定に関わらず常に使用できます。
■ 外部転送要求端子
各チャンネル毎に 1 本用意された入力端子への入力により , 転送要求を発生します。
本品種ではチャネル 0 ∼ 2 のみ対応しています。(DREQ0, 1, 2)
この際の有効入力は , 転送タイプと起動要因設定により次の要因が選択されます。
● エッジ検出
転送タイプが ブロック / ステップ / バースト転送のときはエッジ検出が選択されます。
• 立ち下がりエッジ検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110 の
とき
• 立ち上がりエッジ検出 :
転送要因選択レジスタで設定。DMACA:IS[4:0]=01111 の
とき
転送タイプが デマンド転送のときはレベル検出が選択されます。
• "H" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01110 のとき
• "L" レベル検出 : 転送要因選択レジスタで設定。DMACA:IS[4:0]=01111 のとき
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
各チャネル毎に , どの周辺の割込みにより転送要求を発生するかを設定します。
(DMACA:IS[4:0]=1xxxx)
外部転送要求とは同時に使用できません。
( 注意事項 )
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください。(ICR レジスタ )
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します。(DMACA:STRG)
上記 2 つの転送要求とは独立で , 常に使用できます。
起動 ( 転送許可 ) と同時にソフトウェア要求をおこなった場合 , 直後にバスコントロー
ラに対し DMA 転送要求を出力し転送を開始します。
378
第 17 章 DMAC(DMA コントローラ )
17.5
転送シーケンス
各チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと
転送モードを独立して設定できます。(DMACB:TYPE[1:0], MOD[1:0] の設定 )
■ 転送シーケンスの選択
レジスタの設定により以下のシーケンスが選択可能である。
• バースト two-cycle 転送
• デマンド two-cycle 転送
• ブロック / ステップ two-cycle 転送
• バースト fly-by 転送
• デマンド fly-by 転送
• ブロック / ステップ fly-by 転送
■ バースト two-cycle 転送
1 回の転送要因にて指定転送回数の転送を続けて行う。two-cycle 転送の場合は転送元 /
転送先アドレスは 32 ビット全領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求 / 外部端子 (DREQ) エッジ入力検出
要求を選択できます。
表 17.5-1 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
=>
32 ビット全領域指定可能
● バースト転送の特徴
• 転送要求を 1 回受け付けると , 転送回数レジスタが 0 になるまで連続して転送を行
います。
転 送 回 数 は ブ ロ ッ ク サ イ ズ 分 × 転 送 回 数 分 に な り ま す。(DMACA:BLK[3:0] ×
DMACA:DTC[15:0])
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転
送単位の境目でチャネルを切替え , そのチャネルの転送要求がクリアされるまで復
帰しません。
379
第 17 章 DMAC(DMA コントローラ )
図 17.5-1 外部端子立上りエッジ起動 , ブロック数 =1, 転送回数 =4 のときのバースト転送例
■ バースト fly-by 転送
転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト
(IO to memory) だけであることを除けば two-cycle 転送と同じです。
表 17.5-2 指定可能転送アドレス表
380
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
第 17 章 DMAC(DMA コントローラ )
■ デマンド転送 two-cycle 転送
転送要求として , 外部端子の "H" または "L" レベルを選択している場合のみ , デマンド
転送シーケンスとなります。( レベル選択は , DMACA:IS[4:0] にて設定する )
● 連続転送の特徴
• 転送要求を 1 回の転送ごとにチェックし , 外部からの入力レベルが設定した転送要
求レベルの間は要求をクリアせずに連続して転送を行います。外部入力が変化する
と要求がクリアされ , 転送は転送の境目にて停止します。これを指定転送回数終了
まで繰り返します。
• その他はバースト転送と同等に動作します。
図 17.5-2 外部端子 H レベル起動 , ブロック数 =1, 転送回数 =3 のときのデマンド転送例
表 17.5-3 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
外部領域
=>
外部領域
外部領域
=>
内蔵 IO
外部領域
=>
内蔵 RAM
内蔵 IO
=>
外部領域
内蔵 RAM
=>
外部領域
( 注意事項 )
• デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。デマンド転送モード時は , DMA 転送を外バスタイミングに合わせているた
め必ず外部領域へのアクセスが必要になります。
• デマンド転送時は , 転送元 / 転送先共に SDRAM 領域はサポートしていませんので設定
禁止です。
■ デマンド転送 fly-by 転送
転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト
(IO to memory) だけであることを除けば two-cycle 転送と同じです。
表 17.5-4 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
381
第 17 章 DMAC(DMA コントローラ )
■ ステップ / ブロック転送 two-cycle 転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは 32 ビット全領域指定可能です。
表 17.5-5 指定可能転送アドレス表
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
=>
32 ビット全領域指定可能
● ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
● ステップ転送の特徴
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します。( バスコントローラに対し DMA 転送要求を取り下げる )
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後
に , チャネルを切替えて続けて転送を開始します。ステップ転送における優先順位
は , 転送要求が同時に発生した場合のみ意味を持ちます。
● ブロック転送
ブロックサイズを "1" 以外を設定すると , ブロック転送シーケンスとなります。
● ブロック転送の特徴
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ
プ転送と全く同じ動作となります。
図 17.5-3 外部端子立上りエッジ起動 , ブロック数 =2, 転送回数 =2 のときのブロック転送例
図 17.5-4
■ ステップ / ブロック転送 two-cycle 転送 fly-by 転送
転送領域が外部領域のみであること , 転送単位がリード (memory to IO) またはライト
(IO to memory) だけであることを除けば two-cycle 転送と同じです。
表 17.5-6 指定可能転送アドレス表
382
転送元アドレス指定
方向
転送先アドレス指定
指定不要 ( 無効 )
なし
外部領域
第 17 章 DMAC(DMA コントローラ )
17.6
DMA 転送全般
この項では , DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 )
のデータの集合となります。
• 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転
送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま
す。
• 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時
停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に
ならないと停止しません。これにより分割・一時停止を希望しないデータブロック
のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ
る原因ともなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容等は保
証されません。
■ リロード動作
本モジュールでは , 各チャネル毎に , 以下の 3 種類のリロード機能の設定が可能です。
● 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受付
待ちします。
全転送シーケンスを繰返し行う際に設定します。
リロード指定をしない場合, 指定回数の転送終了後は回数レジスタ値が0のままとなり,
以降の転送は行われません。
● 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後, 転送元アドレスレジスタに初期設定値を再設定します。
転送元アドレス領域内で固定領域から繰返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終
了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
● 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後, 転送先アドレスレジスタに初期設定値を再設定します。
転送先アドレス領域内で固定領域へ繰返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が終
了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
• 転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
383
第 17 章 DMAC(DMA コントローラ )
● 動作モードとリロード動作の特殊な例
• 外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードはセットされます。
• 転送終了にて , いったん停止し , 再度入力検出から行いたい場合は , リロード指定を
行わないようにしてください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となる
とリロード後 , いったん転送を中断し , あらためて転送要求入力が検出されるまで
転送を行いません。
■ アドレシングモード
各転送チャネルの転送先および転送元アドレスは , それぞれ独立に指定します。
指定方法には下記の方法があります。転送シーケンスによって設定してください。
● アドレスレジスタ指定
• two-cycle 転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド
レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく
ださい。
• fly-by 転送モードでは , 転送先アドレス設定レジスタ (DMASA) にはメモリアドレス
を設定してください。このときの転送先アドレス設定レジスタ (DMADA) の値は無
視されます。
● アドレスレジスタの特徴
最大 32bit 長のレジスタです。32bit 長の場合メモリマップ上の全空間がアクセス可能
です。
● アドレスレジスタの機能
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の
アドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より
選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま
す。(DMACB:SASZ, DASZ)
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終
アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
( 注意事項 )
• 32bit 長フルアドレス計算の結果オーバフロー / アンダフローが発生した場合 , アドレ
スエラーとして検出され , そのチャネルの転送を中止します
( 転送停止要因表示 (DSS ビット ) の終了コードに関する項目を参照してください )。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• デマンド転送時は , 必ず外部領域のアドレスを転送元か転送先 , または両方に設定して
ください。
• DMAC により DMAC 自身のレジスタへの転送は行わないでください。
384
第 17 章 DMAC(DMA コントローラ )
■ データの種類等
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下の内から選択します。
• byte
• halfword
• word
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
• word
…実際のアクセスアドレスは下位 2bit が "00" から始まる 4byte となります。
• halfword…実際のアクセスアドレスは下位 1bit が "0" から始まる 2byte となります。
• byte
…実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記のきまりに従ってアドレスが修正されてアクセスが行われます。
■ 転送回数制御
転送回数は , 最大で 16bit 長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回数指定値
は転送回数レジスタ (DMACA:DTC) に設定します。
レジスタ値は転送開始時に一時記憶バッファへに格納され , 転送回数カウンタにより
減算されます。
このカウンタ値が "0" となった時 , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受け付け待ち ( リロード指定時 ) が行われます。
● 転送回数レジスタ群の特徴
• 各レジスタ 16bit 長です。
• 全てのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
● リロード動作
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共
に , リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
■ CPU 制御
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発行
します。
バスコントローラはバス動作の切れ目にて内部バス使用権をDMAにあけわたし, DMA
転送が開始されます。
● DMA 転送と割込み
• DMA 転送中は , 基本的には転送終了まで割込みの受け付けは停止します。
• また割込み処理動作中に DMA 転送要求があった場合 , 転送要求は受け付けられ , 転
送終了まで割込み処理動作は停止します。
385
第 17 章 DMAC(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 レベルは上に置いてくださ
い。
■ ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部からのホールド機能が使用
可能となります。この際の , 外部ホールド要求と本モジュールによる DMA 転送要求と
の関係は , 以下に示す通りとなります。
● 外部ホールド中の DMA 転送要求
DMA 転送を開始しますが , 外部バス領域へのアクセスがあった場合 , その時点で DMA
転送を一時停止します。外部ホールドが解除され次第 , DMA 転送を再開します。
● DMA 転送中の外部ホールド要求
外部ホールド状態となります。DMA 転送による外部バス領域へのアクセスがあった場
合 , その時点で DMA 転送は一時停止します。外部ホールドが解除され次第 , DMA 転
送を再開します。
● DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また内部では DMA 転送を開始します。DMA 転送による外
部バス領域へのアクセスがあった場合 , その時点で DMA 転送は一時停止します。外部
ホールドが解除され次第 , DMA 転送を再開します。
386
第 17 章 DMAC(DMA コントローラ )
■ 動作開始
DMA 転送の開始は , 各チャネルごとに独立に制御しますが , その前に全チャネルの動
作を許可しておく必要があります。
● 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ
た起動設定 , および発生した転送要求はすべて無効となります。
● 転送起動
各チャネルごとの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起
動されたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA
転送動作が開始されます。
● 一時停止状態よりの起動
各チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 ,
転送動作を起動しても一時停止状態を維持してします。この間に転送要求が発生した
場合は , 要求を受け付け保持します。一時停止を解除した時点より転送を開始します。
■ 転送要求の受付と転送
• 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
• 外部端子起動要因でエッジ検出を選択した場合 , 転送要求が検出されると転送要求
クリア条件を満たすまで DMAC 内部で要求を保持します。( ブロック / ステップ /
バースト転送で外部端子起動要因を選択したとき )
• 外部端子起動要因でレベル検出 , または周辺割込み起動を選択した場合は , 転送要
求がクリアされるまで DMAC は転送を続けますがクリアされたら 1 転送単位で転
送を停止します。( デマンド転送 / 周辺割込み起動 )
• 周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで
行うようにしてください。
• 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に
受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル
を決定しています。
■ DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周
辺割込みを選択したときに機能します。(IS[4:0]=1xxxx のとき )
周辺割込みのクリアは設定された起動要因にのみ行われます。つまり IS[4:0] で設定さ
れた周辺機能のみクリアされます。
● 割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います。(「17.7 動作フローチャート」を参
照)
[ ブロック / ステップ転送 ]
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生
します。
387
第 17 章 DMAC(DMA コントローラ )
[ バースト転送 ]
バースト転送を選択した場合は , 指定転送回数が全て終了したらクリア信号は発生
します。
[ デマンド転送 ]
デマンド転送では外部端子からの起動要求のみサポートするためクリア信号はで
ません。
■ 一時停止
DMA 転送は , 以下の場合に一時停止します。
● 制御レジスタへの書込みによる一時停止の設定(各チャネル独立または全チャネル同時に設
定)
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると , 転送を再開します。
● NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
■ 動作終了 / 停止
DMA 転送の終了は , 各チャネルごとに独立に制御しますが , 全チャネルの動作を禁止
することも可能です。
● 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが 0 になると転送を停止し , 終了
コードにて『正常終了』を表示した後 , 以降の転送要求は無効となります。
(DMACA:DENB ビットをクリアする )
リロード動作が有効である場合 , 転送回数レジスタが 0 になると初期値をリロードし ,
終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります。
(DMACA:DENB ビットをクリアしない )
● 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , 各チャネルごとに再起動しなおさないと , 転送は行われません。この場合 ,
割込みは一切発生しません。
■ エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー発
生による停止および強制停止があります。
● 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
388
第 17 章 DMAC(DMA コントローラ )
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど )。
この転送停止要求を受け取った DMAC は , 終了コードにて『転送停止要求』を表示し
て対応するチャネルの転送を停止します。
IS
00000
01111
10000
10010
10011
11111
( 注意事項 )
各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。
● アドレスエラーの発生
各アドレシングモードにて , 以下に示す様な不適切なアドレシングが行われた時 , アド
レスエラーとして検出されます。(32bit アドレス指定時に , アドレスカウンタにてオー
バ / アンダフローが発生した場合 )
アドレスエラーを検出すると , 終了コードにて『アドレスエラーの発生』を表示して対
応するチャネルの転送を停止します。
■ DMAC 割込み制御
転送要求となる周辺割込みとは独立に , DMAC 各チャネルごとに以下の割込みを出力
することが可能です。
• 転送終了割込み : 正常終了した場合のみ発生する。
• エラー割込み : 周辺回路よりの転送停止要求 ( 周辺に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0( 終了コード ) に "000" を書き込むこ
とにより行います。なお , 終了コードは再起動する際には必ず "000" を書き込んでクリ
アしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
389
第 17 章 DMAC(DMA コントローラ )
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 )。
1. リセット
2. "000" 書き込みによるクリア
3. 周辺停止要求または , 外部端子入力 (DSTP) の停止要求
4. 正常終了
5. アドレスエラー検出による停止
6. チャネル選択と制御
■ スリープ中の DMA 転送
• DMAC は , スリープモード中でも動作させることができます。
• スリープモードでの動作を期待する場合次のことに注意する必要があります。
- CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は済ませておいてください。
- スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込み
を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし
てください。
■ チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各機
能を独立に設定することが可能です。
● チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。
順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) 毎に選択します。
固定モード
チャネル番号の小さい順に固定されます。
(ch.0 >ch.1 >ch.2 >ch.3 >ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサ
イズ指定レジスタに設定した数×データ幅 )) の転送が終了した時点で , 転送チャネ
ルが高優 先度側に切り替わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
回転モード (ch.0-ch.1 間のみ )
動作許可後の初期状態は (1) と同じ順位に設定されますが , 1 転送終了ごとにその
チャネルの優先度は逆転します。よって , 同時に転送要求が出力されている場合 , 1
転送単位ごとにチャネルが切り替わります。
3 90
第 17 章 DMAC(DMA コントローラ )
連続 / バースト転送を設定した場合に効果のあるモードです。
ch.0 転送要求
ch.1 転送要求
バス動作
CPU
SA
転送チャネル
DA
ch.1
SA
DA
ch.0
SA
DA
SA
ch.1
DA
CPU
ch.0
ch.0 転送終了
ch.1 転送終了
● チャネルグループ
優先順位の選択は , 以下の単位で設定します。
MODE
Priority
Remarks
固定
ch.0 > ch.1
−
回転
ch.0 > ch.1
↑↓
ch.0 < ch.1
初期状態は上側の順位です
上側が転送されると反転します。
391
第 17 章 DMAC(DMA コントローラ )
17.7
動作フローチャート
この節では , 次の各転送モードにおける動作フローチャートを示します。
• ブロック転送
• バースト転送
• デマンド転送
■ 動作フローチャート
図 17.7-1 ブロック転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
周辺割込み
起動要因選択時のみ
割込みクリア
DTC=0
DMA転送終了
ブロック転送
・すべての起動要因で起動できる(選択)。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・ブロック数終了で割込みクリア発行。
・指定転送回数終了でDMA割込みを発行。
392
割込み
クリア発生
DMA割込み発生
第 17 章 DMAC(DMA コントローラ )
図 17.7-2 バースト転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込み
クリア
DMA転送終了
割込みクリア発生
DMA割込み発生
バースト転送
・すべての起動要因で起動できる(選択)。
・すべての領域へのアクセスができる。
・ブロック数の設定可能。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
393
第 17 章 DMAC(DMA コントローラ )
図 17.7-3 デマンド転送
DMA停止
DENB=>0
なし
リロード許可
DENB=1
起動要求待機
起動要求あり
初期化
アドレス,転送回数,ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は
1回のアクセス
転送先アドレスアクセス
アドレス演算
転送回数-1
アドレス,転送回数,ブロック数
ライトバック
DTC=0
割込み
クリア
DMA転送終了
周辺割込み起動要因選択時のみ
割込みクリア発生
DMA割込み発生
デマンド転送
・外部端子(DREQ)からの要求(レベル検出)のみ受付け。他の要因での起動禁止。
・外部領域へのアクセスは必須条件(外部領域へのアクセスが次の起動要因となるため)。
・ブロック数は,設定に関係なく1固定になる。
・指定転送回数終了で割込みクリア,DMA割込みを発行。
394
第 17 章 DMAC(DMA コントローラ )
17.8
データパス
この節では , 2 サイクル転送時 , およびフライバイ転送時のデータの動きを図で示し
ます。
■ two-cycle 転送時のデータの動き
395
第 17 章 DMAC(DMA コントローラ )
396
第 17 章 DMAC(DMA コントローラ )
■ fly-by 転送時のデータの動き
DMAC
CPU
リードサイクル
I-bus
X-bus
バスコントローラ
D-bus
メモリ
MB91xxx
外部バス I/F
フライバイ転送(メモリからIO)
RDX,CSxXでメモリリードする。
データバッファ
RDX,DACKでIOライトする。
RAM
IO
F-bus
IO
SDRAMでのフライバイ転送は不可。
CPU
D-bus
X-bus
バスコントローラ
データバッファ
メモリ
DMAC
リードサイクル
I-bus
WR0X/1X,DACKでIOリードする。
F-bus
RAM
WR0X/1X,CSxXでメモリライトする。
IO
IO
MB91xxx
外部バス I/F
フライバイ転送 (IOからメモリ)
SDRAMでのフライバイ転送は不可。
397
第 17 章 DMAC(DMA コントローラ )
398
第 18 章
USB ファンクション
この章では , USB ファンクションの概要 , レジス
タの構成と機能 , 動作 , および補足事項について説
明します。
18.1 USB ファンクションの概要
18.2 USB インタフェースのレジスタ
18.3 USB ファンクションの動作
18.4 補足事項
399
第 18 章 USB ファンクション
USB ファンクションの概要
18.1
本マクロは , プロトコルエンジン部分 , データ転送に必要となる物理
ENDPOINT(FIFO), および CPU DMA I/F 等から構成されており , USB FUNCTION
DEVICE としてのプロトコル処理を行います。
■ USB ファンクションの概要
マクロは以下のブロックから構成されます。
● USB プロトコルエンジン
アプリケーション ( ソフトウェア ) 側の負担を軽くするため , 基本的な USB の通信プ
ロトコルを処理します。
( 注意事項 )
以下の内容についてはアプリケーション側での対応が必要です。
• CLASS / VENDOR REQUEST の処理
• STANDERD
REQUEST の
SYNCH_FRAME の処理
SET_DESCRIPTOR
/
GET_DESCRIPTOR
● ENDPOINT 用 FIFO
コントロール用
IN
8Byte
OUT 8Byte
Bulk 転送用
IN
64Byte × 2( ダブルバッファ )
OUT 64Byte × 2( ダブルバッファ )
Interrupt 転送用
IN
8Byte
● ENDPOINT <- > プロトコルエンジン I/F( 内部 BUS I/F) 回路
● レジスタ群
● CPU DMA I/F 回路
CPU I/F :16bit
DMA I/F :16bit
● 本マクロは SELF POWERED DEVICE として動作します。
本マクロの ENDPOINT 構成を以下に示します。
表 18.1-1 USB ファンクションのエンドポイント構成
ENDPOINT
CONFIGURATION
INTERFACE
ALTERNATE
TRANS TYPE
MaxPacketSize(BYTE)
0
―
―
―
CONTROL
8
1
1
0
0
BULK(OUT)
64
2
1
0
0
BULK(IN)
64
3
1
0
0
INTERRUPT(IN)
8
400
/
第 18 章 USB ファンクション
■ ブロックダイヤグラム
図 18.1-1 ブロックダイヤグラム
401
第 18 章 USB ファンクション
18.2
USB インタフェースのレジスタ
この節では , USB インタフェースはで使用するレジスタの構成 , および機能につい
て説明します。
■ USB インタフェースのレジスタ
USB インタフェースは , 外部メモリインタフェースを経由して CS2 領域に接続されて
います。( 第 3 章 , 第 5 章参照 )。
USB インタフェースの内部レジスタに対して , バイトアクセスは禁止です。
■ レジスタ表記説明
記述例
15*1 14
アドレス : 0000-0000H
13
12
*3
R*4
11
10
9
8
7
6
5
4
3
2
1
0
XXXXXXXXXXXXXXXXB
*2
R
R
R
R
初期値 *5
R
R
R
R
R
R
R
R
R
R
R
*1: レジスタのビット位置 (15 ∼ 0) を示します。
*2: レジスタのビット名を示します。
*3: レジスタが物理的にないことを示します。読み出した場合 "0" となります。
*4: 各ビットの読出し・書込みが可能かどうかを示します。
W:
書込みのみ可能
R:
読出しのみ可能
R/W: 読み書き可能
*5: リセット (RESET=0) 後の各ビット値を示します。
"X":
不定を示します。
"0":
"0" を示します。
"1":
"1" を示します。
( 注意事項 )
レジスタは 16bit 単位でアクセスします。
402
第 18 章 USB ファンクション
18.2.1
データ送受信用レジスタ (END POINT 用 )
これらのレジスタを読み書きすることで ENDPOINT のデータを読み書きします。
■ FIFO0o
• 機能
ENDPOINT0 (CONTROL OUT ENDPOINT) 用 8 BYTES FIFO
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXXXXXXXXXXXB
アドレス : 0006-0000H
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
( 注意事項 )
USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。
格納するデータが 1Byte のみの場合は , [15:8] に格納します。
■ FIFO0i
• 機能
ENDPOINT0 (CONTROL IN ENDPOINT) 用 8 BYTES FIFO
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXXXXXXXXXXXB
アドレス : 0006-0002H
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
( 注意事項 )
USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。
格納するデータが 1Byte のみの場合は , [15:8] に格納します。
403
第 18 章 USB ファンクション
■ FIFO1
• 機能
ENDPOINT1 (BULK OUT ENDPOINT) 用 64BYTES FIFO
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXXXXXXXXXXXB
アドレス : 0006-0004H
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
( 注意事項 )
• USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。
格納するデータが 1Byte のみの場合は , [15:8] に格納します。
• FIFO1 は DoubleBuffer(64Bytes × 2) となっています。FIFO の切り換えは以下のタイ
ミングで起こります。
- USB バス側 :ACK の転送が起きると切り換わります。
- CPU バス側 : レジスタ CONT3 の BFOK1 を 1 にセットすることで切り換わります。
なお , DMA 転送の場合は自動で CONT3 の BFOK1 がセットされますので , そのタイ
ミングで切り換わります。
■ FIFO2
• 機能
ENDPOINT2 (BULK IN ENDPOINT) 用 64BYTES FIFO
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXXXXXXXXXXXB
アドレス : 0006-0006H
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
( 注意事項 )
• USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。
格納するデータが 1Byte のみの場合は , [15:8] に格納します。
• FIFO2 は DoubleBuffer(64Bytes × 2) となっています。FIFO の切り換えは以下のタイ
ミングで起こります。
- USB バス側 :ACK の転送が起きると切り換わります。
- CPU バス側 : レジスタ CONT3 の BFOK2 を 1 にセットすることで切り換わります。
なお , DMA 転送の場合は自動で CONT3 の BFOK2 がセットされますので , そのタイ
ミングで切り換わります。
404
第 18 章 USB ファンクション
■ FIFO3
• 機能
ENDPOINT3 (INTERRUPT IN ENDPOINT) 用 8BYTES FIFO
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXXXXXXXXXXXB
アドレス : 0006-0008H
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
W
( 注意事項 )
USB 転送データは 1Byte 目 [15:8], 2Byte 目 [7:0] の順で格納します。
格納するデータが 1Byte のみの場合は , [15:8] に格納します。
405
第 18 章 USB ファンクション
18.2.2
ステータスレジスタ
これらのレジスタを読む事で , 内部のステータスを監視します。
■ ST1
• 機能
USB 転送の ACK/NACK の監視 , 割込み要因ビット
• ビット構成
15
14
13
12
11
アドレス : 0006-0062H
10
9
8
7
6
5
4
3
2
1
0
N
A
C
K
3
A
C
K
3
N
A
C
K
2
A
C
K
2
N
A
C
K
1
A
C
K
1
N
A
C
K
0
i
A
C
K
0
i
N
A
C
K
0
o
A
C
K ------0000000000
B
0
o
初期値
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
表 18.2-1 bit 解説
名前
極性
機能
ACK0o
ActiveHigh
ENDPOINT0 の OUT 転送において , デバイスが ACK ハンドシェー
クを受信したことを示します。
NACK0o
ActiveHigh
ENDPOINT0 の OUT 転送において , デバイスが NACK ハンドシェー
クを受信したこと , またはストール状態で転送要求を受信したこと ,
またはパケットにエラーを検知した事を示します。
ACK0i
ActiveHigh
ENDPOINT0 の IN 転送において , デバイスが ACK ハンドシェ―ク
を受信した事を示します。
NACK0i
ActiveHigh
ENDPOINT0 の IN 転送において , ストール状態で転送要求を受信し
たこと , または TimeOut したことを示します。
ACKn (n:1 ∼ 3)
ActiveHigh
ENDPOINT[n] の転送において , デバイスが ACK ハンドシェ―クを
送受したことを示します。
NACKn (n:1∼3)
ActiveHigh
OUT 転送用 ENDPOINT[n] の転送において , デバイスが NACK ハン
ドシェークを送信したこと , またはストール状態で転送要求を受信
したこと , またはパケットにエラーを検知したことを示します。
IN 転送用 ENDPOINT[n] の転送において , ストール状態で転送要求
を受信したこと , または TimeOut したことを示します。
( 注意事項 )
• 各 bit は 1 を書き込むことで 0 にクリアされます。0 書込みは無効です。
• ACK1, NACK1, ACK2, NACK2 は DoubleBuffer に対応してレジスタを 2 面持っていま
す。DoubleBuffer の面が切り替わると同時に ACK1, NACK1, ACK2, NACK2 の面も切
り替わります。アプリケーション側から Read/Write できるレジスタの面は , Read/Write
できる FIFO の面と同じになります。
406
第 18 章 USB ファンクション
■ ST2
• 機能
bit 解説を参照の事
• ビット構成
15
14
13
アドレス : 0006-0068H
12
11
10
9
8
7
6
5
4
3
2
1
0
D
C
T
6
D
C
T
5
D
C
T
4
D
C
T
3
D
C
T
2
D
C
T
1
D
C ---------0000000
B
T
0
R
R
R
R
R
R
R
初期値
表 18.2-2 bit 解説
名前
極性
機能
DCT[6:0]
ActiveHigh
FIFO に対して , USB バス側から Read/Write が行われたデータのバイト数
を示します。
USB 転送が正常に終了し , ACK ハンドシェークを送受した時点で更新され
ます。
407
第 18 章 USB ファンクション
■ ST3
• 機能
bit 解説を参照の事
• ビット構成
アドレス: 0006-006AH
15
14
S
T
D
R
E
Q
2
S
T
D
R
E
Q
1
R
R
13
12
11
10
9
8
7
6
5
4
3
2
1
E
P
O
o
N
U
L
L
C
F
G
V
A
L
S
E
T
U
P
C
F
E
N
D
S
O
F
S
U
S
P
R/W
R
R/W
R
R/W R
0
初期値
00-------0000000B
表 18.2-3 bit 解説
名前
極性
機能
-
-
予約ビット , WRITE 可能ですが USB の転送には影響しません。READ
時は "1" あるいは "0" を示します。
SUSP
ActiveHigh
本デバイスがサスペンドになるとセットされて , サスペンドから抜ける
とリセットされます。
SOF
ActiveHigh
SOF パケットを受信したことを示します。
一度セットされると 0 を書き込むまで保持されます。
CFEND
ActiveHigh
デバイスの初期化が終了したことを示します。
SETUP
ActiveHigh
SETUP パケットを受信したことを示します。
マクロが自動応答しないコマンドを受信し ACK で応答した時点でセッ
トされます。自動応答を行うコマンドに対してはセットされません。
Control 転送で SETUP パケット以外の OUT 転送のデータを受信し ACK
で応答した時点でリセットされます。
CFGVAL
-
現在の Configuration 値を示します。
マクロは BUS RESET および Set Configuration0 を受信した場合にデフォ
ルト状態に遷移します。CFGVAL はデフォルト状態では "0" を示します。
EPOoNULL
ActiveHigh
ENDPOINT0 の OUT 側で長さ 0 のデータパケットを受信したことを示し
ます。一度セットされると 0 を書き込むまで保持されます。
STDREQ1
ActiveHigh
DREQ1 がアサートしていることを示します。
STDREQ2
ActiveHigh
DREQ2 がアサートしていることを示します。
( 注意事項 )
bit0 と bit2 と bit4 に対する書込みは , 0 書込みのみ有効です。
408
第 18 章 USB ファンクション
■ ST4
• 機能
bit 解説を参照の事
• ビット構成
15
14
13
12
アドレス : 0006-006CH
11
10
9
8
7
6
5
4
3
2
1
0
F
M
R
10
F
M
R
9
F
M
R
8
F
M
R
7
F
M
R
6
F
M
R
5
F
M
R
4
F
M
R
3
F
M
R
2
F
M
R
1
F
M -----00000000000
B
R
0
R
R
R
R
R
R
R
R
R
R
R
初期値
表 18.2-4 bit 解説
名前
極性
機能
FMR[10:0]
-
最新の USB 受信フレーム No を示します。
受信フレーム No は SOF パケットから抽出します。
409
第 18 章 USB ファンクション
■ ST5
• 機能
割込み要因 bit。bit 解説を参照の事。
• ビット構成
15
アドレス : 0006-006EH
14
L
P
E
N
D
R/W
13
12
11
S
E
T
C
F
G
U
S
B
R
E
S
E
T
10
R/W R/W
9
8
7
6
5
4
3
2
1
0
S
T
S
T
A
L
L
3
S
T
S
T
A
L
L
2
S
T
S
T
A
L
L
1
S
T
S
T
A
L
L
0
T
R
C
V
E
N
D
T
T
R
S
E
N
D
R
R
R
R
初期値
0--00-----000000B
R/W R/W
表 18.2-5 bit 解説
名前
極性
機能
TTRSEND
ActiveHigh
BULKIN FIFO からトータル送信バイト数分のデータの送信を終
了したことを示します。
TRCVEND
ActiveHigh
BULKOUT FIFO からトータル受信バイト数分のデータの読出し
を終了したことを示します。
STSTALLn(n:0∼3)
ActiveHigh
ENDPOINT[n] がストール状態であることを示します。ストール
が解除されるとリセットされます。
USBRESET
ActiveHigh
USB BUS RESET がかかったことを示します。
SETCFG
ActiveHigh
Set Configurationを受信し, ACKを返した場合にセットされます。
USB BUS RESET がかかるとリセットされます。
LPEND
ActiveHigh
ループバックが終了したことを示します。
( 注意事項 )
• STSTALL を除く各ビットは "1" を書き込むことで "0" にクリアされます。"0" 書込みは
無効です。
• STSTALLがセットされるのと同時に, レジスタST1のNACKビットもセットされます。
• TTRSEND をリセットする場合は CONT10 の TTCNTEN=0 を設定して TTSIZE カウン
タを使用しない状態にしてから "0" を書き込んでください。
TRCVEND をリセットする場合は CONT10 の TRCNTEN=0 を設定して TRSIZE カウ
ンタを使用しない状態にしてから "0" を書き込んでください。
• TTRSEND と TRCVEND を含むレジスタ ST5 の全てのビットは割込み要因となります。
• USBRESET は D+, D- を同時に 2.5 µs 以上 "L" とすることで "1" となります。
410
第 18 章 USB ファンクション
■ RSIZE0
• 機能
ENDPOINT0 (CONTROL OUT ENDPOINT) の最新転送量を示します。
• ビット構成
15
14
アドレス : 0006-0040H
13
12
11
10
9
8
7
6
5
4
3
2
1
0
R
S
I
Z
E
03
R
S
I
Z
E
02
R
S
I
Z
E
01
R
S
I ------------0000
B
Z
E
00
R
R
R
R
初期値
表 18.2-6 bit 解説
名前
極性
機能
RSIZE0[3:0]
-
ENDPOINT0 (CONTROL OUT ENDPOINT) の最新転送量を示します。
( 注意事項 )
RSIZE0 はマクロが ACK を送信した時点で更新されます。
411
第 18 章 USB ファンクション
■ RSIZE1
• 機能
ENDPOINT1 (BULK OUT ENDPOINT) の最新転送量を示します。
• ビット構成
15
14
13
アドレス : 0006-0044H
12
11
10
9
8
7
6
5
4
3
2
1
0
R
S
I
Z
E
16
R
S
I
Z
E
15
R
S
I
Z
E
14
R
S
I
Z
E
13
R
S
I
Z
E
12
R
S
I
Z
E
11
R
S
I ---------0000000
B
Z
E
10
R
R
R
R
R
R
R
初期値
表 18.2-7 bit 解説
名前
極性
機能
RSIZE1[6:0]
-
ENDPOINT1 (BULK OUT ENDPOINT) の最新転送量を示します。
( 注意事項 )
• RSIZE1レジスタはDoubleBufferに対応してレジスタを2面持っています。
DoubleBuffer
の面が切り替わると同時に RSIZE1 の面も切り替わります。アプリケーション側から
Read できるレジスタの面は , Read/Write できる FIFO の面と同じになります。
• RSIZE1 はマクロが ACK を送信した時点で更新されます。
412
第 18 章 USB ファンクション
18.2.3
コントロールレジスタ
これらのレジスタを読み書きすることで , デバイスを制御します。
■ CONT1
• 機能
デバイスの初期化 , デバイスのリジューム設定
• ビット構成
アドレス : 0006-0022H
15
14
13
L
P
S
T
A
R
T
I
O
D
I
S
A
U
T
O
B
F
O
K
12
11
10
R
E
S
U
M
R/W R/W R/W
R/W
9
8
7
6
5
4
3
2
1
0
初期値
S
T
A
L
L
3
S
T
A
L
L
2
S
T
A
L
L
1
S
T
A
L
L
0
C
F
G
E
N
000--0-----00000B
R/W R/W R/W R/W R/W
表 18.2-8 bit 解説
名前
極性
機能
CFGEN
ActiveHigh
本ビットに "1" を書き込むことで , 初期化 (ENDPOINT BUFFER の
設定 ) を実施します。"1" をセットすると "0" を書き込むまで保持
します。
初期化 (ENDPOINT BUFFER の設定 ) を実行した後は , マクロをリ
セットするまで初期化(ENDPOINT BUFFERの設定)は行えません。
STALLn(n:0 ∼ 3)
ActiveHigh
ENDPOINT[n] をストール状態にします。
NOTE:
本ビットは自己リセットのレジスタです。
"1" 書込みの後に自動的に "0" に戻ります。
RESUM
ActiveHigh
本デバイスがサスペンド (ST3: SUSP=1) 状態になったときの リ
ジューム要求の設定です (1: リジューム要求設定 ) 。
レジスタ ST3: SUSP=1 の場合に "1" 書込み有効です。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的
に "0" に戻ります。
AUTOBFOK
ActiveHigh
"1" をセットすることで , EXDPOINT0 の OUT 側の受信バイト数が
0 のとき , 自動で EXDPOINT0 の OUT 側 USB 転送を許可します。
このとき , ST1: ACK0o の割込み要因はアサートされません。
(CONT3: BFOK0 ビットを自動で "1" にセットします )
IODIS
ActiveHigh
本ビットを "1" をセットすることで , SUSPEND 信号 ( マクロ出力
信号 ) をアサートします。
SUSPEND 信号は本ビットがセットされたとき , または本デバイス
がサスペンド状態のときアサートされます。
LPSTART
ActiveHigh
本ビットを "1" にセットすることで , ループバックを開始します。
本ビットは自己リセットのレジスタです。ループバック終了後に
自動的に "0" に戻ります。
413
第 18 章 USB ファンクション
( 注意事項 )
• CFGEN に対する書込みは , "1" 書込みのみ有効です。
• STALL は STALL をセットした ENDPOINT に転送要求があり STALL ハンドシェーク
を送信した時点でリセットされます。
■ CONT2
• 機能
FIFO の初期化
• ビット構成
15
14
アドレス : 0006-0024H
13
12
11
10
9
8
7
6
5
4
3
2
1
0
I
N
I
3
I
N
I
2
I
N
I
1
I
N
I
0
i
I
N
I
0
o
初期値
-----------00000B
R/W R/W R/W R/W R/W
表 18.2-9 bit 解説
名前
極性
機能
INI0o
ActiveHigh
本ビットを "1" にセットすることで , FIFO0o のアドレスカウンタを初期化します。同
時にレジスタ ST1 の ACK0o, NACK0o, レジスタ RSIZE0, レジスタ CONT3 の BFOK0o
を初期化します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
INI0i
ActiveHigh
本ビットを "1" にセットすることで , FIFO0i のアドレスカウンタを初期化します。同時
にレジスタ ST1 の ACK0i, NACK0i, レジスタ CONT3 の BFOK0i, レジスタ CONT10 の
LSTD0 を初期化します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
INI1
ActiveHigh
本ビットを "1" にセットすることで , FIFO1 のアドレスカウンタを初期化します。同時
にダブルバッファの切り替えの状態 , レジスタ ST1 の ACK1, NACK1, レジスタ RSIZE1,
レジスタ CONT3 の BFOK1, レジスタ TRSIZE を初期化します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
INI2
ActiveHigh
本ビットを "1" にセットすることで , FIFO2 のアドレスカウンタを初期化します。同時
にダブルバッファの切り替えの状態 , レジスタ ST1 の ACK2, NACK2, レジスタ CONT3
の BFOK2, レジスタ CONT10 の LSTD2, レジスタ TTSIZE を初期化します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
INI3
ActiveHigh
本ビットを "1" にセットすることで , FIFO3 のアドレスカウンタを初期化します。レジ
スタ ST1 の ACK3, NACK3, レジスタ CONT3 の BFOK3, レジスタ CONT10 の LSTD3 を
初期化します。
本ビットは自己リセットのレジスタです。"1" 書込みの後に自動的に "0" に戻ります。
414
第 18 章 USB ファンクション
( 注意事項 )
• CONT2 に対する書込みは , "1" 書込みのみ有効です。
CONT2 は "1" 書込みの後に自動的に "0" に戻るレジスタなので , 通常 CPU から READ
する場合は常に "0" です。
• DoubleBuffer(ENDPOINT1, ENDPOINT2) に対応して 2 面構成となるレジスタ (ST1,
RSIZE1, CONT3, CONT10) のビットは , INI1 あるいは INI2 をセットすることで両面が
初期化されます。
• INIn(n;0o, 0i, 1, 2, 3) のセットによって初期化される FIFO およびレジスタは , INIn ビッ
トをセットしてから FMCLK0 で 9 サイクル経過するまで READ/WRITE できません。
■ CONT3
• 機能
ENDPOINT ごとの USB 転送許可の設定
• ビット構成
15
14
13
12
11
10
9
アドレス : 0006-0026H
8
7
6
5
4
3
2
1
0
B
F
O
K
3
B
F
O
K
2
B
F
O
K
1
B
F
O
K
0
i
B
F
O
K
0
o
初期値
-----------00000B
R/W R/W R/W R/W R/W
表 18.2-10 bit 解説
名前
極性
機能
BFOK0o
ActiveHigh
ENDPOINT0 の OUT 側の USB 転送を許可します。
BFOK0i
ActiveHigh
ENDPOINT0 の IN 側の USB 転送を許可します。
BFOKn(n:1 ∼ 3)
ActiveHigh
ENDPOINT[n] の USB 転送を許可します。
415
第 18 章 USB ファンクション
( 注意事項 )
• ステータスレジスタST1のACK0oまたはACK0iがセットされていると,そのENDPOINT
に対して BFOK はセットできません。ただし , NACK0o または NACK0i がセットされ
ていても BFOK はセットできます。
デバイスの初期化が終了した時点 ( ステータスレジスタ ST3 の CFEND がセットされ
た時点 ), あるいはコントロールレジスタ CONT2 の INIn がセットされると BFOK は次
の値にセットされます。
IN 転送用エンドポイント
BFOK=0
OUT 転送用エンドポイント
BFOK=1
• BFOK1, BFOK2 ( ダブルバッファのエンドポイント ) は "1" 書込みのみ有効です。
CONT3 に 1 をセットした後 , FIFO を BUSY にしたい場合は , CONT4 あるいは CONT5
をセットしてください。
• BFOK1, BFOK2( ダブルバッファのエンドポイント ) を "1" にセットすると , ダブルバッ
ファの面が切り替わります。同時にレジスタの面も切り替わります。アプリケーショ
ン側から Read/Write できるレジスタの面は , Read/Write できる FIFO の面と同じにな
ります。アプリケーション側からアクセスできるレジスタの面は片面のみですので , 裏
面になっているレジスタにはアクセスできません。
• BFOK の各ビットは , その ENDPOINT で ACK の転送が起こった時点でリセットされ
ます。
• BFOK の各ビットは , CONT2 の INI ビットをセットすることにより "0" にリセットさ
れます。
416
第 18 章 USB ファンクション
■ CONT4
• 機能
ENDPOINT ごとの USB BUSY の設定
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
アドレス : 0006-0028H
4
3
2
1
0
F
I
F
O
B
U
S
Y
3
F
I
F
O
B
U
S
Y
2
F
I
F
O
B
U
S
Y
1
F
I
F
O
B
U
S
Y
0
i
F
I
F
O
B
U
S
Y
0
o
初期値
-----------00000B
R/W R/W R/W R/W R/W
表 18.2-11 bit 解説
名前
極性
機能
FIFOBUSYn
(n:0o, 0i, 1 ∼ 3)
ActiveLow
ENDPOINT[n] を BUSY にします
( 注意事項 )
CPU アクセスにより転送を行う場合は , FIFOBUSYn を "1" にセットします。また
FIFOBUSYn を 0 にすることで , HOST PC に対して BUSY を宣言することが可能になり
ます。この場合 , HOST PC からのトークンに対して NACK ハンドシェークを返します。
DMA により転送を行う場合は常に "0" に設定します。
■ CONT5
• 機能
ENDPOINT ごとの USB BUSY の設定
• ビット構成
15
アドレス : 0006-002AH
14
13
12
11
10
9
8
7
6
5
4
3
2
D
F
I
F
O
B
U
S
Y
2
D
F
I
F
O
B
U
S
Y
1
R/W
R/W
1
0
初期値
------------00--B
417
第 18 章 USB ファンクション
表 18.2-12 bit 解説
名前
極性
機能
DFIFOBUSYn
(n:1, 2)
ActiveLow
ENDPOINT[n] を BUSY にします
( 注意事項 )
• DMAにより転送を行う場合は, DFIFOBUSYnを"1"にセットします。またDFIFOBUSYn
を "0" にすることで , HOST PC に対して BUSY を宣言することが可能になります。こ
の場合 , HOST PC からのトークンに対して NACK ハンドシェークを返します。CPU
アクセスにより転送を行う場合は常に "0" に設定します。
• MDREQn ビットを "0" にして , DREQ をマスクしてから , DFIFOBUSYn を "0" にして
ください。
■ CONT6
• 機能
ENDPOINT ごとの DREQ のマスク
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
アドレス : 0006-002CH
3
2
M
D
R
E
Q
2
M
D
R
E
Q
1
R/W
R/W
1
0
初期値
------------00--B
表 18.2-13 bit 解説
名前
極性
機能
MDREQn(n:1, 2)
ActiveLow
ENDPOINT[n] の転送での DREQn のアサートをマスクします。
■ CONT7
• 機能
ENDPOINT ごとの ACK 要因による IRQ のマスク
• ビット構成
15
アドレス : 0006-002EH
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
M
A
C
K
3
M
A
C
K
2
M
A
C
K
1
M
A
C
K
0
i
M
A
C
K
0
o
R/W R/W R/W R/W R/W
418
初期値
-----------00000B
第 18 章 USB ファンクション
表 18.2-14 bit 解説
名前
極性
機能
MACK0o
ActiveLow
ENDPOINT0 の OUT 側転送での ACK による IRQ のアサートをマ
スクします。
MACK0i
ActiveLow
ENDPOINT0 の IN 側転送での ACK による IRQ のアサートをマス
クします。
MACKn(n:1 ∼ 3)
ActiveLow
ENDPOINT[n] の転送での ACK による IRQ のアサートをマスクし
ます。
■ CONT8
• 機能
ENDPOINT ごとの NACK 要因による IRQ のマスク
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
アドレス : 0006-0030H
4
3
2
1
0
M
N
A
C
K
3
M
N
A
C
K
2
M
N
A
C
K
1
M
N
A
C
K
0
i
M
N
A
C
K
0
o
初期値
-----------00000B
R/W R/W R/W R/W R/W
表 18.2-15 bit 解説
名前
極性
機能
MNACK0o
ActiveLow
ENDPOINT0 の OUT 側転送での NACK による IRQ のアサートを
マスクします。
MNACK0i
ActiveLow
ENDPOINT0 の IN 側転送での NACK による IRQ のアサートをマ
スクします。
MNACKn(n:1∼3)
ActiveLow
ENDPOINT[n] の転送での NACK による IRQ のアサートをマスク
します。
■ CONT9
• 機能
ENDPOINT ごとの STALL 要因による IRQ のマスク
• ビット構成
15
アドレス : 0006-0032H
14
13
12
11
10
9
8
7
M
L
P
E
N
D
M
S
E
T
C
F
G
M
U
S
B
R
E
S
E
T
R/W
R/W
R/W
6
5
4
3
2
1
0
M
S
T
A
L
L
3
M
S
T
A
L
L
2
M
S
T
A
L
L
1
M
S
T
A
L
L
0
初期値
0--0----0---0000B
R/W R/W R/W R/W
419
第 18 章 USB ファンクション
表 18.2-16 bit 解説
名前
極性
機能
MSTALLn(n:0 ∼ 3)
ActiveLow
ENDPOINT[n] の STALL による IRQ のアサートをマスクします。
MUSBRESET
ActiveLow
USB BUS RESET による IRQ のアサートをマスクします。
MSETCFG
ActiveLow
SETCFG による IRQ をマスクします。
MLPEND
ActiveLow
LPEND による IRQ のアサートをマスクします。
■ CONT10
• 機能
bit 解説を参照の事
• ビット構成
15
アドレス : 0006-0034H
14
13
12
D
R
E
Q
C
N
T
R/W
11
10
9
8
N
U
L
L
S
E
T
3
N
U
L
L
S
E
T
2
N
U
L
L
S
E
T
0
D
M
A
M
O
D
E
R/W R/W R/W R/W
7
6
5
4
3
2
1
L
S
T
D
3
L
S
T
D
2
L
S
T
D
0
T
R
C
N
T
E
N
T
T
C
N
T
E
N
O
D
D
0
初期値
0---000--000000-B
R/W R/W R/W R/W R/W R/W
表 18.2-17 bit 解説
名前
極性
機能
LSTDn(n:0, 2, 3)
ActiveHigh
ENDPOINT[n] へのラストパケットの書込みを通知します。
ラストデータの書込み前に設定します。
ODD
ActiveHigh
奇数バイト数のショートパケットの書込みを通知します。
ラストデータの書込み前に設定します。
TTCNTEN
ActiveHigh
トータル送信バイト数カウンタを Enable にします。
TRCNTEN
ActiveLow
トータル受信バイト数カウンタを Enable にします。
DMAMODE
ActiveHigh
DMA をシングル転送とします。
1: シングル転送 , 0: ブロック転送
NULLSETn(n:0, 2, 3)
ActiveHigh
Null パケットを自動送信させる場合に 1 にセットします。
DREQCNT
-
トータル転送バイト数分のデータの転送が終了した後の DREQ
のアサートを制御します。
1: トータル転送バイト数分のデータの転送が終了した後は , 次
のトータル転送バイト数の設定を行うまで DREQ はアサート
しません。
0: トータル転送バイト数分のデータの転送が終了した後も ,
DREQ をアサートします。
420
第 18 章 USB ファンクション
( 注意事項 )
• LSTD はラストパケット送信後に ACK を受信することによって自動でリセットされま
すので , CPU 側からリセットを行う必要はありません。
ODD はラストデータ書き込み終了後に自動でリセットされますので , CPU 側からリ
セットを行う必要はありません。
• NULLSET はコントロール転送のデータステージ , バルク IN 転送 , インタラプト IN 転
送で有効です。NULLSET を "1" にセットしておくことで , ラストパケットのサイズが
マックスパケットサイズだった場合に, ラストパケット送信後の転送要求で自動にNull
パケットを送信します。なお , このビットはコントロール転送のステータスステージの
0Byte のパケットを制御するものではありません。
• LSTD2 は DoubleBuffer に対応してレジスタを 2 面持っています。DoubleBuffer の面が
切り替わると同時に LSTD2 の面も切り替わります。アプリケーション側から Read/
Write できるレジスタの面は , Read/Write できる FIFO の面と同じになります。
• LSTD2 は NOTE3 に記載の動作をしますので , LSTD2 の値が "0" に変化することは , ラ
ストパケット転送終了を意味するものではありません。
• NULLSET=1 の場合は , NULL パケットの転送が ACK で終了した時点 (ACK を受信し
た時点 ) で ACK による割込みがアサートします。
NULLSET=0 の場合は , ラストパケットの転送が ACK で終了した時点 (ACK を受信し
た時点 ) で ACK による割込みがアサートします。
• DREQCNT ビットの値にかかわらず , トータル受信バイト数カウンタ TRSIZE 分のデー
タの読出しが終了した時点で次の受信データが FIFO に格納されたいない場合は
DREQ1 はアサートしません。
■ TTSIZE
• 機能
BULKIN トータル送信バイト数の設定およびカウント
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
0001000100010001B
アドレス : 0006-0036H
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 注意事項 )
• 送信用 FIFO に送信データを書込むとカウントダウンします。
• TTSIZE カウンタを使用する場合は TTSIZE=0000H 以外の値を設定した後 , CONT10 の
TTCNTEN=1 としてから FIFO への WRITE アクセスを始めてください。
なお , CONT10 の TTCNTEN=1 の場合に TTSIZE=0000H と設定した状態で FIFO への
WRITE アクセスは行わないでください。
• TTSIZE は , CONT6 の MDREQ2 を "0" に設定して ,DREQ2 をマスクした状態で設定し
てください。
421
第 18 章 USB ファンクション
■ TRSIZE
• 機能
BULKOUT トータル受信バイト数の設定およびカウント
• ビット構成
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
初期値
0001000100010001B
アドレス : 0006-0038H
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 注意事項 )
• 受信用 FIFO から受信データを読み出すとカウントダウンします。
• TRSIZE カウンタを使用する場合は TRSIZE=0000H 以外の値を設定した後 , CONT10
の TRCNTEN=1 としてから FIFO への READ アクセスを始めてください。
なお , CONT10 の TRCNTEN=1 の場合に TRSIZE=0000H と設定した状態で FIFO への
READ アクセスは行わないでください。
• TRSIZE は , CONT6 の MDREQ1 を "0" に設定して ,DREQ1 をマスクした状態で設定
してください。
■ RESET
USB 動作開始時には同期 RESET を USB クロックで 16 クロック以上入力する必要があ
ります。USB の RESET に関しましては , 「付録 D USB クロックについて」を参照く
ださい。
422
第 18 章 USB ファンクション
■ レジスタマップ
表 18.2-18 レジスタマップ
アドレス
レジスタ名
0006_0000
FIFO0o
0006_0002
FIFO0i
0006_0004
FIFO1
0006_0006
FIFO2
0006_0008
FIFO3
Reserved
0006_0022
CONT1
0006_0024
CONT2
0006_0026
CONT3
0006_0028
CONT4
0006_002A
CONT5
0006_002C
CONT6
0006_002E
CONT7
0006_0030
CONT8
0006_0032
CONT9
0006_0034
CONT10
0006_0036
TTSIZE
0006_0038
TRSIZE
Reserved
0006_0040
RSIZE0
Reserved
0006_0044
RSIZE1
Reserved
0006_0062
ST1
Reserved
0006_0068
ST2
0006_006A
ST3
0006_006C
ST4
0006_006E
ST5
Reserved
0006_FFFE
RESET
423
第 18 章 USB ファンクション
18.3
USB ファンクションの動作
この節では , USB ファンクションのデータ転送フローと CPU アクセス動作 , および
DMA 動作について説明します。
■ USB ファンクションの動作
18.3.1 データ転送フロー
18.3.2 CPU アクセス動作説明
18.3.3 DMA 動作説明
18.3.4 割込み要因一覧
18.3.5 ENDPOINT BUFFER の設定
18.3.6 ソフトウェア制御例 ( 暫定 )
424
第 18 章 USB ファンクション
18.3.1
データ転送フロー
この項では , USB ファンクションのデータ転送フローについて説明します。
■ コントロール転送の SETUP ステージ ( 一部を除く標準コマンド )
HOST からの標準コマンドのほとんどの場合 , デバイス側 CPU の負荷をなくすために
プロトコルエンジンが全て自動で処理を行います。デバイス側の CPU は何も処理を行
う必要はありません。また , デバイス側 CPU へ , これらのコマンドを受信した事を通
知しません。自動処理を行う標準コマンドは下記の通りです。
• CLEAR_FEATURE
• GET_CONFIGURATION
• GET_INTERFACE
• GET_STATUS
• SET_ADDRESS
• SET_CONFIGURATION
• SET_FEATURE
• SET_INTERFACE
図 18.3-1 コントロール転送の SETUP ステージ ( 一部を除く標準コマンド ) のフロー
*1: USB からコントロール転送のセットアップステージが受信されるとプロトコルエ
ンジンは端子 SETUP をアサートし , ステータスレジスタの SETUP ビットをセット
します。
*2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME 以
外のスタンダードコマンドの場合にセットアップステージ ? が終了すると , ステー
タスレジスタの NACK0S ビットをセットします。この場合 , プロトコルエンジンが
コマンドに必要な処理を行うので , ENDPOINT 用 FIFO にはデータは書き込まれま
せん。
( 注意事項 )
CPU(アプリケーション)による処理は必要ありません。
セットアップステージを正常に受信した場合 , USB に ACK ハンドシェークを転送し , エ
ラーがあれば何も転送しません (TimeOut です )。
425
第 18 章 USB ファンクション
■ コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一
部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME))
HOST からのクラスコマンド・ベンダコマンドと一部標準コマンド
(GET_DESCRIPTOR/SET_DESCRIPTOR/SYNCH_FRAME) は , ENDPOINT 0 OUT 転送
用 FIFO に書き込まれます。
図 18.3-2 コントロール転送の SETUP ステージ ( クラスコマンド・ベンダコマンド , および一部の標
準コマンド (GET_DESCRIPTOR/SET_DESCRIPTOR/SYNCH_FRAME)) のフロー
*1: USB にてコントロール転送のセットアップステージが開始されると , プロトコルエ
ンジンは 端子 SETUP をアサートしてステータスレジスタの SETUP ビットをセッ
トします。
*2: プロトコルエンジンは , GET_DESCRIPTOR / SET_DESCRIPTOR / SYNC_FRAME,
または , クラスコマンドやベンダコマンドを受信した場合 , FIFO0o にセットアップ
ステージ中のデータを書き込み転送量レジスタをカウントアップします。
*3: セットアップステージが正常に終了するとプロトコルエンジンは USB に対して
ACK ハンドシェークを送信します。この時点でステータスレジスタ ST1 の ACK0o
ビットがセットされ転送量レジスタの値がステータスレジスタの RSIZE0 にロード
されます。また端子 IRQ をアサートしてセットアップステージのデータが受信され
た事を外部に知らせます。
エラー等により正常に終了しなかった場合は , USB に対しては何も返さないと共に
受信したデータを破棄しステータスレジスタの NACK0o をセットします。
*4: CPU I/F への読み出し動作により FIFO0o から有効データを読み出します。
( 注意事項 )
アプリケーションにより受信データのコマンドをデコードして処理する必要があります。
426
第 18 章 USB ファンクション
■ コントロール転送の STATUS ステージ ( 一部を除く標準コマンド )
GET_DESCRIPTOR / SET_DESCRIPTOR / SYNCH_FRAME を除く下記の標準コマンド
の場合 , プロトコルエンジンが全て処理を行い , デバイス内部のステータスレジスタに
変化はありません。割込み信号 IRQ もアサートされません。
• CLEAR_FEATURE
• GET_CONFIGURATION
• GET_INTERFACE
• GET_STATUS
• SET_ADDRESS
• SET_CONFIGURATION
• SET_FEATURE
• SET_INTERFACE
■ コントロール転送の STATUS ステージ ( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR / SET_DESCRIPTOR /
SYNCH_FRAME))
コントロールライトの場合
プロトコルエンジンが USB へ 0 バイトのデータを転送し , 正常終了するとステータ
スレジスタの ACK0i がセットされ , この時 , 端子 IRQ がアサートされます。
次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0i のリセット )
とコントロールレジスタの BFOK0i のセットをアプリケーションから行なう必要が
あります。
( 注意事項 )
0 バイトの転送に関してアプリケーションから設定する必要はありません。
コントロールリードの場合
プロトコルエンジンが USB から 0 バイトのデータを受信します。
( 注意事項 )
RSIZE0 レジスタが示す受信転送量は 0 バイトです。
転送が正常に終了すると , ステータスレジスタの ACK0o がセットされ , この時 , 端
子 IRQ がアサートされます。
次の転送に備えて , IRQ のディアサート ( ステータスレジスタの ACK0o のリセット )
とコントロールレジスタのBFOK0o のセットをアプリケーションから行なう必要が
あります。
427
第 18 章 USB ファンクション
■ コントロール (DATA ステージ )/ バルク OUT 転送
転送データは ENDPOINT OUT 転送用 FIFO に書き込まれ , Local Bus Interface から読み
出しを行います。
図 18.3-3 コントロール (DATA ステージ )/ バルク OUT 転送のフロー
*1: USBからOUT方向の転送が開始されると, プロトコルエンジンは転送先ENDPOINT
アドレスを出力し , CRC チェック / ビットストリッピング / シリアルーパラレル変
換等を実行しながら転送データを順次内部バスへ出力します。
( 注意事項 )
• OUT 方向の転送が開始された時点で , コントロールレジスタの転送先 ENDPOINT の
BFOKビットがセットされていない場合は, プロトコルエンジンがUSBに対してNACK
ハンドシェークを出力し転送が終了します。
• OUT 方向の転送が開始された時点で , コントロールレジスタの転送先 ENDPOINT の
STALL ビットがセットされている場合は , プロトコルエンジンが USB バスに対し
STALL ハンドシェークを出力し転送が終了します。この時 , ステータスレジスタ ST1
の NACK ビット , ST5 の STSTALL ビットがセットされます。
*2: 受信されたデータは内部バスを経由し転送先 ENDPOINT 用 FIFO に書き込まれ , 転
送量レジスタがカウント UP されます。
*3: 転送が 1 パケット分正常に終了すると , プロトコルエンジンは USB に対して ACK
ハンドシェークを出力します。この時点でステータスレジスタの ACK ビットがセッ
トされ , 転送量レジスタの値が RSIZE0 レジスタもしくは RSIZE1 レジスタにロード
されます。また , 端子 IRQ をアサートして 1 パケット分の転送が終了したことを外
部に知らせます。転送途中でエラーを検知した場合 , ステータスレジスタの NACK
ビットがセットされ転送が終了します。
*4: CPU I/F よりリード動作で ENDPOINT 用 FIFO から有効データを読み出せます。
428
第 18 章 USB ファンクション
( 注意事項 )
• CPU 読出しは , DATAO[15:0] から 2 バイト単位で読み出します。
• BulkOUT 転送において , 正常に受信したパケットのデータサイズが 0 バイトの場合は
マクロは割込みを上げません。
■ コントロール (DATA ステージ )/ バルク / インタラプト IN 転送
ENDPOINT IN 転送用 FIFO に Local Bus Interface から書き込まれたデータが , プロトコ
ルエンジンにより USB BUS へ転送されます。
図 18.3-4 コントロール (DATA ステージ )/ バルク / インタラプト IN 転送のフロー
*1: USB への IN 転送開始前に CPU I/F から書き込み動作により ENDPOINT 用 FIFO に
データを書き込みます。
( 注意事項 )
CPU から DATAI[15:0] へ有効データを 2 バイト単位で書き込みます。
429
第 18 章 USB ファンクション
*2: コントロールレジスタの転送元 ENDPOINT の BFOK をセットすることで , 以後 USB
から IN 転送の要求が ENDPOINT に発生すればこれが処理されます
( 注意事項 )
• BFOK をセットする以前に ENDPOINT に IN 転送要求があった場合には , ステータス
レジスタの NACK ビットがセットされて , USB に NACK ハンドシェークを返します。
• IN 転送要求があった時点で , コントロールレジスタの STALL ビットがセットされてい
ると , USB に STALL ハンドシェークを返します。
この時ステータスレジスタ ST1 の NACK ビット , ST5 の STSTALL ビットがセットさ
れます。
*3: プロトコルエンジンは , USB に IN 転送要求があると ENDPOINT 用 FIFO から , FIFO
に書き込まれたバイト数分のみ転送データを読み出します。
*4: プロトコルエンジンは , ENDPOINT 用 FIFO から読み出したデータに対してパラレ
ル−シリアル変換 , CRC の生成 , ビットスタッフィング等を実行したデータを USB
へ出力します。この時 , 転送が正常に終了すると (ACK ハンドシェークを受信すれ
ば ), ステータスレジスタの ACK ビットをセットします。もし , 転送に失敗した場
合には NACK ビットをセットします。
( 注意事項 )
転送に失敗した場合は , FIFO のデータは初期化されません。次の IN 転送要求に対し , 同
じデータを自動的に再送信します。
430
第 18 章 USB ファンクション
18.3.2
CPU アクセス動作説明
この項では , USB ファンクションの CPU アクセス動作について説明します。
■ CPU IN 転送
CPU IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , レジスタへ転送許可 BFOK
をセットします。また , マクロはトータルの送信バイト数をカウントする機能を備えて
おり , これを用いることによってラストパケットの送信設定を簡略化できます。このカ
ウンタを動作させずに IN 転送を行うことも可能です。カウンタを用いる場合と用いな
い場合ではラストパケットの送信時の設定に違いがあります。
● トータル送信バイト数カウンタ (16bit)
送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと
カウントダウンします。トータル送信バイト数カウンタを用いる場合は , システム側よ
りトータル送信バイト数 TTSIZE を設定します。なお , トータル送信バイト数カウンタ
はコントロール転送には適用できません。
● データ送信
エンドポイントバッファに 1 パケット ( 最大値 64Bytes) のデータを書き込み終了後 , シ
ステム側よりレジスタの転送許可 bit BFOK を書き込むことにより送信が行われます。
● ラストパケット
ラストパケットの送信にはトータル送信バイト数カウンタを用いる場合と用いない場
合で設定に違いがあります。それぞれについて以下に示します。
トータル送信バイトカウンタを用いる場合
ラストパケットのパケットサイズ (*) によって以下の動作をします。
•
マックスサイズパケット
パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタ
NULLSET の設定により , Null パケットは自動送信させないことも可能です。
•
偶数バイトショートパケット
パケットの送信は送信許可ビット BFOK を設定した時点でおこります。
•
奇数バイトショートパケット
偶数バイトショートパケットと同様。
トータル送信バイトカウンタを用いない場合
ラストデータ通知をレジスタ LSTD への設定 ( ラストデータ書き込み前に設定 ) に
よって行います。
ラストパケットのパケットサイズ * によって以下の動作をします。
•
マックスサイズパケット
パケットの送信が終了後 , Null パケットの自動送信を行います。レジスタの
NULL_SET の設定により Null パケットは自動送信させないことも可能です。
•
偶数バイトショートパケット
パケットの送信は転送許可ビット BFOK を設定した時点でおこります。
•
奇数バイトショートパケット
431
第 18 章 USB ファンクション
ラストデータの書込みを行う前に , レジスタの奇数バイトパケット通知 bit
ODD を設定します。
パケットの送信は転送許可ビット BFOK を設定した時点でおこります。
*: ラストパケットのパケットサイズ
マックスサイズパケット…パケットサイズが最大値 (64Bytes) のパケット
偶数バイトショートパケット…パケットサイズが最大値未満であり , かつその
数が偶数のパケット
奇数バイトショートパケット…パケットサイズが最大値未満であり , かつその
数が奇数のパケット
( 注意事項 )
NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 ,
NULL パケットが正常に送信終了するまで割込みは上がりません。
NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ
後 , 最後のパケットが正常に送信終了するまで割込みは上がりません。
表 18.3-1 CPU IN 転送時のレジスタ設定対応表
ラストパケット以外
ラストパケット
TTSIZE
( レジスタ )
BFOK
( レジスタ )
使用
○
LSTD
( レジスタ )
ODD
( レジスタ )
マックスサイズパケット
偶数サイズバイトパケット
奇数サイズバイトパケット
ラストパケット以外
ラストパケット
未使用
マックスサイズパケット
○
偶数サイズバイトパケット
○
奇数サイズバイトパケット
○
○ : 設定が必要
432
○
第 18 章 USB ファンクション
■ CPU OUT 転送
CPU OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , レジス
タへ転送許可 BFOK をセットします。また , マクロはトータルの受信バイト数をカウ
ントする機能を備えており , これを用いることによって全ての受信データの読出しが
完了したことを知ることができます。このカウンタを動作させずに OUT 転送を行うこ
とも可能です。その場合はトータルの転送が終了したことを知らせる割込みはあがり
ません。送信完了時の ACK 割込みを受けて CPU により転送終了を判断する必要があ
ります。
● データ受信
エンドポイントバッファに読出し可能データが格納されると, マクロが割込み要求IRQ
をあげます。受信したデータのサイズは受信データサイズレジスタ RSIZE に格納され
ます。受信データサイズレジスタ RSIZE を読んだ後 , そのサイズ分のデータを読み出
します。エンドポイントからデータを読み出した後 , システム側よりレジスタの転送許
可ビット BFOK を設定します。
● トータル受信バイト数カウンタ (16bit)
マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン
タを備えています。
トータル受信バイト数カウンタは , CPU が FIFO に格納された受信データを読み出すこ
とによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定します。
受信データを全て読み出し , カウント値が "0" になると割込み IRQ があがります。こ
れにより全てのデータの読出しが完了したことを知ることができます。なお , トータル
受信バイト数カウンタはコントロール転送には適用できません。
( 注意事項 )
BulkOUT 転送において , 正常に受信したパケットのデータサイズが 0Byte の場合はマクロ
は割込みを上げません
433
第 18 章 USB ファンクション
18.3.3
DMA 動作説明
この項では , USB ファンクションの DMA 動作について説明します。
本マクロの DMA 転送はシングル転送 / ブロック転送に対応します。
コントロールレジスタ CONT10 の DMAMODE の設定によりシングル転送 / ブロッ
ク転送の選択ができます。
DMA 転送は Bulk IN/OUT 転送で可能です。
DMA 転送では , 0Byte 以外の転送を行うことが可能です。
■ DMA IN 転送
DMA IN 転送は , IN 転送用 FIFO にデータを書き込んだ後 , 自動でレジスタへ転送許可
BFOK がセットされます。また , マクロはトータルの送信バイト数をカウントする機能
を備えており , これを用いることによってラストパケットの送信を自動で行います。
● トータル送信バイト数カウンタ (16bit)
送信させるデータのトータルバイト数をカウントします。FIFO にデータを書き込むと
カウントダウンします。トータル送信バイト数カウンタは , システム側よりトータル送
信バイト数 TTSIZE を設定します。なお , トータル送信バイト数カウンタはコントロー
ル転送 , インタラプト転送には適用できません。
● データ送信
データ送信は FIFO が Full(64Bytes) になった時点で自動におこります。あるいは , ラス
トパケットの書込みが終了した時点で起こります。ラストパケットの送信ついては次
に示します。
● ラストパケットの送信
ラストパケットのパケットサイズ (*) によって以下の動作をします。
マックスサイズパケット
パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込み終わった時
点で自動でおこります。パケットの送信が終了後 , Null パケットの自動送信を行い
ます。レジスタの NULLSET の設定により , Null パケットは自動送信させないこと
も可能です。
偶数バイトショートパケット
パケットの送信はトータル送信バイト数 TTSIZE 分のデータを書き込みが終わった
時点で自動におこります。
奇数バイトショートパケット
偶数バイトショートパケットと同様。
*: ラストパケットのパケットサイズ
マックスサイズパケット :
パケットサイズが最大値 (64Bytes) のパケット
偶数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が
偶数のパケット
奇数バイトショートパケット : パケットサイズが最大値未満であり , かつその数が
奇数のパケット
434
第 18 章 USB ファンクション
( 注意事項 )
NULL パケットの自動送信を行う設定にしている場合は , 最後のデータを書き込んだ後 ,
NULL パケットが正常に送信終了するまで次の DREQ は上がりません。
NULL パケットの自動送信を行わない設定にしている場合は , 最後のデータを書き込んだ
後 , 最後のパケットが正常に送信終了するまで次の DREQ は上がりません。
■ DMA OUT 転送
DMA OUT 転送は , OUT 転送用 FIFO に格納された受信データを読み出した後 , マクロ
が自動的にレジスタへ転送許可 BFOK をセットします。また , マクロはトータルの受
信バイト数をカウントする機能を備えており , これを用いることによって全ての受信
データの読み出しが完了したことを知ることができます。このカウンタを動作させず
に OUT 転送を行うことも可能です。その場合はトータルの転送が終了したことを知ら
せる割込みはあがりません。マクロ外部で判断する必要があります。
● データ受信
エンドポイントバッファに読出し可能データが格納されると , マクロが DREQ をあげ
ます。FIFO からデータを読み出し終わると , マクロは自動的に転送許可 BFOK をセッ
トします。
● トータル受信データバイト数カウンタ (16bit)
マクロはトータルの受信データバイト数をカウントするトータル受信バイト数カウン
タを備えています。
トータル受信バイト数カウンタは , DMAC が FIFO に格納された受信データを読み出す
ことによってカウントダウンします。カウンタ初期値はレジスタ TRSIZE に設定しま
す。受信データを全て読み出し , カウント値が "0" になると割込み IRQ があがります。
これにより全てのデータの読出しが完了したことを知ることができます。なお , トータ
ル受信バイト数カウンタはコントロール転送には適用できません。
( 注意事項 )
DMA OUT 転送終了後に CPU で Bulk OUT 転送を行う場合は , レジスタ CONT2 の INI1
をセットすることによって , レジスタ ST1 の両面の ACK, NACK 割込み要因ビットを初期
化する必要があります。
435
第 18 章 USB ファンクション
■ DMA シングル転送 READ/WRITE Timing Chart
FR はブロック / ステップ転送に対応します。
436
第 18 章 USB ファンクション
■ DMA ブロック転送 READ/WRITE Timing Chart
FR はデマンド転送に対応します。
437
第 18 章 USB ファンクション
18.3.4
割込み要因一覧
表 18.3-2 に , USB ファンクションの割込み要因の一覧を示します。
■ 割込み要因一覧
表 18.3-2 割込み要因一覧
割込み要因
CPU
アクセス
DMA
アクセス
ステータス
bit
マスク bit
IN 転送時にエンドポイントが書き込み許
可状態となる
○
―
レジスタ ST1
を参照
レ ジ ス タ
CONT7を参照
OUT 転送時にエンドポイントが読み出し
許可状態となる
○
―
レジスタ ST1
を参照
レ ジ ス タ
CONT7を参照
マクロが Nack を送受
○
○
レジスタ ST1
を参照
レ ジ ス タ
CONT8を参照
送信用エンドポイントからトータルの送
信データを送信完了
○
○
レジスタ ST5
TTRSEND
―
受信用エンドポイントからトータルの受
信データ読み出し完了
○
○
レジスタ ST5
TRCVEND
―
デバイスがストール状態になる
○
○
レジスタ ST5
STALLn
レ ジ ス タ
CONT9を参照
USB BUS RESET がかかる
○
○
レジスタ ST5
USBRESET
レ ジ ス タ
CONT9を参照
( ○ ; 割込み IRQ がアサート )
438
第 18 章 USB ファンクション
ENDPOINT BUFFER の設定
18.3.5
本マクロのプロトコルエンジンは電源投入時およびリセット後 , ENDPOINT に関す
る設定をプロトコルエンジン内の ENDPOINT BUFFER に書き込む必要があります。
設定は各 ENDPOINT 毎に 5 バイト必要であり , 全部で 20 バイトが必要となります。
■ ENDPOINT BUFFER の設定
図 18.3-5 エンドポイントバッファ設定のフロー
■ 設定方法
1: ハードウェアリセット / ソフトウェアリセットのタイミングにしたがってマクロの
リセットを解除します。
*2: FIFO2 に 20 バイトのデータを CPU から書き込みます。
20 バイトの内容は次項を参照願います。
*3: *2 が完了した後 , コントロールレジスタ CONT1 の CFGEN ビットをセットします。
*4: *3 をトリガにして , プロトコルエンジンが 20 バイトのデータを FIFO2 から自動的
に読み出します , これにより , プロトコルエンジン内の ENDPOINT BUFFER が設定
されます。
*5: 設定が完了するとステータスレジスタ ST3 の CFEND ビットがセットされます。
( 注意事項 )
*3 の CFGEN ビットをセットしてから *5 の CFEND ビットがセットされるまでには約 3.4
µ s の時間がかか ります。
439
第 18 章 USB ファンクション
■ 設定内容
以下のデータをデバイスの初期化のため , FIFO2 に CPU から書き込みます。
データの書き込み順は下の表において 1 行目を先頭に以下 2 行目 , 3 行目 , .., 10 行目の
順です。
各行の MSB は左側のビットです。
表 18.3-3 エンドポイントバッファの設定内容
440
ENDPOINT BUFFER
設定データ
[15]
[0]
16 進
0000000000000000
0x0000
0001000010000000
0x1080
0000000000010100
0x0014
0010000010000000
0x2080
1000000000000001
0x8001
0010010000101000
0x2428
1000000010000000
0x8080
0000001000110100
0x0234
0011100000010000
0x3810
1000000000000011
0x8003
第 18 章 USB ファンクション
18.3.6
ソフトウェア制御例 ( 暫定 )
この項では , USB ファンクションのソフトウェア制御例を示します。
■ セットアップ制御例
図 18.3-6 セットアップの制御例
441
第 18 章 USB ファンクション
■ CPU アクセス受信時の制御例
図 18.3-7 CPU アクセス受信時の制御例
442
第 18 章 USB ファンクション
443
第 18 章 USB ファンクション
■ CPU アクセス送信時の制御例
図 18.3-8 CPU アクセス送信時の制御例
444
第 18 章 USB ファンクション
445
第 18 章 USB ファンクション
■ ラストパケット送信データの書き込み
図 18.3-9 ラストパケット送信データの書き込み
446
第 18 章 USB ファンクション
■ DMA 受信時の制御例
図 18.3-10 DMA 受信時の制御例
447
第 18 章 USB ファンクション
■ DMA 送信時の制御例
図 18.3-11 送信動作
送信動作開始
コントロールレジスタTTSIZEに
トータル受信バイト数書込み
トータル送信バイト数カウンタを
使用する場合は、FIFOにデータを書
き込む前にこれらの設定をを行い
ます。
コントロールレジスタCONT10の
TTCNTENビットを1にセット
コントロールレジスタCONT4の
FIFOBUSY2ビットを0にリセット
コントロールレジスタCONT5の
DFIFOBUSY2ビットを1にセット
コントロールレジスタCONT6の
MDREQ2ビットを1にセット
DREQアサート
NO
YES
送信用 FIFO
に送信データを書込み
(2バイト)
IRQアサート
NO
YES
ステータスレジスタST5の
割込み要因ビットTTRSENDを読出し
*
送信動作終了
448
*: トータル送信バイト数カウンタを用
いない場合は割込みは発生しません。
トータルの転送の終了はマクロ外部
で判断する必要があります。
第 18 章 USB ファンクション
図 18.3-12 ラストパケット送信データの書き込み
449
第 18 章 USB ファンクション
18.4
補足事項
USB ファンクションコントローラマクロの使用上の補足事項を記述します。
■ 補足事項
18.4.1 ダブルバッファ
18.4.2 ボード上の D+ 終端抵抗制御について
18.4.3 USB 標準要求コマンドに対するマクロの自動応答内容
18.4.4 デフォルト状態での USB マクロの動作
18.4.5 SUSPEND 時の USB クロック制御
18.4.6 USB コネクタの接続 / 未接続の検知
18.4.7 UCLK48 の精度
18.4.8 コントロール転送時の転送許可 BFOK の設定
18.4.9 コントロール転送における注意点
450
第 18 章 USB ファンクション
18.4.1
ダブルバッファ
本マクロは , Bulk 転送用エンドポイントにダブルバッファ (64Byte × 2) を有してま
す。
IN 転送時 , USB データ送信中に , システム側より次パケットデータを送信 FIFO に
書き込むことができます。
OUT 転送時 , システム側よりデータ読み出し中に , 次パケットの受信を行うことが
できます。
ダブルバッファの切り替えはパケット単位で行います。
■ Bulk IN 転送 (CPU WRITE/USB READ) タイミングチャート
図 18.4-1 に Bulk IN 転送時のダブルバッファのタイミングチャートおよび動作図を示
します。
タイミングチャート中の IRQ は , コントロールレジスタ CONT8 MNACK の設定により
NACK でアサートしない場合について示しています。
図 18.4-1 の説明を以下に示します。
1. CPU より送信用 FIFO(a) にデータを書き込みます。
2. FIFO(a) が Full(64Bytes) の状態になり転送許可 BFOK をセットすると , USB 側から
送信が始まります。これと同時に CPU には FIFO(b) が見えることになり , 次の送信
用データを書き込むことができます。
3. FIFO(b) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU
には FIFO(a) が見えることになりますが , FIFO(a) の USB 送信が終了していないの
で CPU 側の書込みはできません。
FIFO(a) の送信が終了しエラーがなければ ACK(ACK1) が返って来ます。
4. ACK(ACK1) が返ると FIFO(a) は書込み許可の状態となります。CPU 側から次のデー
タを書き込みます。また , USB 側からは FIFO(b) が見えることになります。FIFO(b)
には送信許可状態のデータがすでにあるので , USB 側は送信を始めます。
5. FIFO(a) の書込みが終了した時点で , 転送許可 BFOK をセットします。同時に CPU
には FIFO(b) が見えることになりますが , FIFO(b) の USB 送信が終了していないの
で CPU 側の書込みはできません。
FIFO(b) の送信が終了しエラーがあると NACK が返って来ます。
6. NACK が返ると USB 側は FIFO(b) のデータの再送信を始めます。CPU 側は FIFO(b)
の USB 送信が終了していないので書込みはできません。
FIFO(b) の送信が終了しエラーがなければ ACK(ACK2) が返って来ます。
7. ACK(ACK2) が返ると FIFO(b) は書込み許可の状態となりますが , LAST PACKET の
送信終了まで割込みは上がりません。
451
第 18 章 USB ファンクション
図 18.4-1 Bulk IN 転送 (CPU 書込み /USB 読出し ) タイミングチャート
452
第 18 章 USB ファンクション
■ Bulk OUT 転送 (CPU READ/USB WRITE) タイミングチャート
図 18.4-2 に Bulk OUT 転送時のダブルバッファのタイミングチャートおよび動作図を
示します。
タイミングチャート中の IRQ は , コントロールレジスタ CONT8 MNACK の設定により
NACK でアサートしない場合について示しています。
図 18.4-2 の説明を以下に示します。
1. USB 側より FIFO(a) に受信データが書き込まれます。
FIFO(a) に 1 パケット分の受信データが格納され , エラーがなければマクロが
ACK(ACK1) を返します。
2. ACK(ACK1) を返すと , FIFO(a) は読出し可能となり , CPU 側より読出しを始めます。
また , USB 側には FIFO(b) が見えることになり , FIFO(b) に次のパケットの受信を始
めます。
3. CPU 側から FIFO(a) のデータの読出しを終了した時点で , 転送許可 BFOK をセット
します。CPU 側には FIFO(b) が見えることになりますが , USB 側の書込みが終了し
ていないので読出しはできません。
FIFO(b) に 1 パケット分の受信データが格納され , エラーがあるとマクロが NACK
を返します。
4. NACK を返すと FIFO(b) には再受信が始まります。CPU 側からは読出しはできませ
ん。
FIFO(b) に 1 パケット分の受信データが格納され , エラーがなければマクロが
ACK(ACK2) を返します。
5. ACK(ACK2) を返すと , FIFO(b) は読出し可能となり , CPU 側より読出しを始めます。
また , USB 側には FIFO(a) が見えることになり , FIFO(a) に次のパケットの受信を始
めます。
453
第 18 章 USB ファンクション
図 18.4-2 Bulk OUT 転送 (CPU 読出し /USB 書込み ) タイミングチャート
454
第 18 章 USB ファンクション
18.4.2
ボード上の D+ 終端抵抗制御について
アプリケーション ( ファームウェア ) の初期化ルーチンにかかる時間を確保する目的
で , ボード上の USB の D+ 信号の終端抵抗を CUT する制御を実施する場合の本マク
ロに関する注意点を説明します。
■ ボード上の D+ 終端抵抗制御
ハブが下流側 USB ポートの接続を感知するのは , ファンクションデバイスの次の状況
が満足された時です。
• USB が接続されている状態での電源投入
• 電源投入済みで USB に接続
USBの仕様では, ファンクションデバイスはハブがポートの接続を感知してから100ms
以内にトランザクションを受け取ることができる状態になっていなければなりませ
ん。
本マクロは上で説明したハブが USB ポートの接続を感知する条件が成立すると , リ
セット処理に続いて ENDPOINT BUFFER の設定シーケンスが必要です。
ファームウェアが , リセットや ENDPOINT BUFFER の設定を含めた初期化ルーチンに
100ms 以上の時間を必要とする場合には , ボード上の USB の D+ 信号の終端抵抗を CUT
する制御によりポートが接続されてもハブに接続を感知させない方法があります。こ
の場合の本マクロの注意点は以下の点です。
( 注意事項 )
• ENDPOINT BUFFER の設定は , リセットが解除されてから開始します。
• 終端抵抗を接続する制御はファームウェアの ENDPOINT BUFFER の設定が完了して
から行います。
455
第 18 章 USB ファンクション
18.4.3
USB 標準要求コマンドに対するマクロの自動応答内容
本マクロは USB 標準要求コマンドに対して , アプリケーション側の負荷を軽くする
ために自動応答処理します。
ただし , 以下の USB 標準要求コマンドに対してはアプリケーション側での処理が必
要です。
SET_DESCRIPTOR / GET_DESCRIPTOR / SYNCH_FRAME の処理
■ USB 標準要求コマンドに対するマクロの自動応答内容
表 18.4-1 に本マクロが自動応答処理する USB 標準要求コマンドとその自動応答内容を
示します。
自動応答内容は USB Function Ver1.1 に準拠します。
表 18.4-1 USB 標準要求コマンドとその自動応答内容
本マクロが自動応答処理する USB 標準要求コマンド
自動応答内容
Data Stage
Status Stage
Device:DEVICE_REMOTE_WAKEUP
―
NULLデータ返送
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしている
ENDPOINT 番号
―
NULLデータ返送
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしていない
ENDPOINT 番号
―
STALL 応答
GET_CONFIGURATION
現在の Configuration 値を返送
NULLデータ受信
GET_INTERF
ACE
本マクロがサポートしているInterface
番号
現在の Alternate 値を返送
NULLデータ受信
本マクロがサポートしていない
Interface 番号
STALL 応答
―
Device
現在のデバイスの電源の状態お
よび REMOTE_WAKEUP 機能の
有効 / 無効を返送
NULLデータ受信
ENDPOINT:
本マクロがサポートしている
ENDPOINT 番号
現在の ENDPOINT_STALL の状
態を返送
NULLデータ受信
ENDPOINT:
本マクロがサポートしていない
ENDPOINT 番号
STALL 応答
―
―
NULLデータ返送
CLEAR_FEAT
URE
GET_STATUS
SET_ADDRESS
456
第 18 章 USB ファンクション
表 18.4-1 USB 標準要求コマンドとその自動応答内容
本マクロが自動応答処理する USB 標準要求コマンド
SET_CONFIG
URATION
SET_FEATUR
E
SET_INTERFA
CE
自動応答内容
Data Stage
Status Stage
本マクロがサポートしている
Configuration 番号
―
NULLデータ返送
本マクロがサポートしていない
Configuration 番号
―
STALL 応答
Device:DEVICE_REMOTE_WAKEUP
―
NULLデータ返送
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしている
ENDPOINT番号(ENDPOINT0を除く)
―
NULLデータ返送
ENDPOINT:ENDPOINT_STALL
本マクロがサポートしていない
ENDPOINT 番号または ENDPOINT0
―
STALL 応答
本マクロがサポートしているInterface
番号および Alternate 番号
―
NULLデータ返送
本マクロがサポートしていない
Interface 番号または Alternate 番号
―
STALL 応答
457
第 18 章 USB ファンクション
18.4.4
デフォルト状態での USB マクロの動作
本 USB マクロはリセット解除後にはデフォルト状態となっています。
また , 本 USB マクロは Configuration が 1 のコンフィグレーション状態をとること
ができます。
■ デフォルト状態での USB マクロの動作
USB HOST からの送信されてきた SET_CONFIGURATION コマンドが Configuration=1
の設定要求であった場合に , マクロはコンフィグレーション状態に遷移します。
デフォルト状態では , ENDPOINT0 のみが使用できます。その他の ENDPOINT は使用
できません。仮に ENDPOINT0 以外の ENDPOINT に転送要求がきた場合はマクロは何
も応答せずに TimeOut となります。
コンフィグレーション状態では , 全ての ENDPOINT が使用できます。
デフォルト状態 , コンフィグレーション状態での ENDPOINT0 ∼ 3 のマクロの応答を以
下に示します。
表 18.4-2 コンフィグレーション状態でのエンドポイント 0 ∼ 3 のマクロの応答
デフォルト状態
コンフィグレーション状態
ENDPOINT0
使用可
転送要求が来ると応答します。
使用可
転送要求が来ると応答します。
ENDPOINT1 ∼ 3
使用不可
転送要求が来ても TimeOut します。
使用可
転送要求が来ると応答します。
458
第 18 章 USB ファンクション
18.4.5
SUSPEND 時の USB クロック制御
本 USB マクロは SUSPEND 状態に移行すると , SUSPEND 信号をアサートします。
また , この時 , レジスタ ST3 の SUSP が 1 にセットされます。
消費電力を抑えるために , 本マクロが SUSPEND 状態に移行した際に , SUSPEN
ビットにより USB クロックを停止させることが可能です。
■ SUSPEND 時の USB クロック制御例
サスペンド時の USB クロック制御は , 例えば以下の順序で行われます。
1. マクロが SUSPEND 信号をアサート
2. UCLK48 停止
3. SUSPEND 信号がディアサート
4. UCLK48 を再始動 , USB マクロへ 48MHz のクロックを入力
5. HOST からの転送待機
USB Ver1.1 の規格では , SUSPEND から抜けた USB ファンクションは 10ms 以内に
HOSTからの転送を受け付ける準備ができていなくてならないという規定があります。
そのため , USB クロックを停止させた場合は , USB マクロが SUSPEND から抜けてか
ら 10ms 以内に安定した USB クロックを入力する必要があります。
459
第 18 章 USB ファンクション
18.4.6
USB コネクタの接続 / 未接続の検知
本 USB マクロには , USB コネクタの接続 / 未接続を検知する機能は実装しておりま
せん。以下の方法で検知してください。
■ USB コネクタの接続 / 未接続の検知
USB ファンクションは USB のコネクタが接続されているか , 切断されているかを D+,
D- の信号から判断できません。
USB コネクタの接続 / 未接続は , マクロ外部において VBUS の検知により行う必要が
あります。
コネクタ接続時
:VBUS=5V
コネクタ未接続時
:VBUS=0V
ボード上で VBUS の変化を検知して , MPU に割込みを上げるなどの方法が考えられま
す。
コネクタの接続を検出した際は , USB マクロにリセットをかける必要があります。
460
第 18 章 USB ファンクション
18.4.7
UCLK48 の精度
UCLK48 のクロック精度について説明します。
■ UCLK48 の精度
USB Ver1.1 の規格では , D+, D- データ信号について 2 つの規格があります。
UCLK48 へのクロック入力は , 水晶発振モジュールから 48MHz を供給してください。
PLL をご使用になる場合は , 特にクロック精度に注意してください。
● データ−レート ( 長期的 ) 規格
デバイス装置は (LSI だけではなくて装置として )2500ppm( + / − 0.25%) の精度が必要
です。
USB 規格で 2500ppm の精度が要求されるのは 12MHz に対してですが , USB マクロは
48MHz のクロックエッジの中から , データに同期したクロックエッジを選択して
12MHz のクロックとするため , 48MHz に対して 2500ppm よりも高い精度が必要となり
ます。
このため , UCLK48 には必要条件として 2500ppm よりも高い精度が必要となります。
● 短期的な規格
デバイス装置は(LSIだけではなくて装置として)次のジッタを満たす必要があります。
• 1 回目のクロスポイントまで+ / − 1ns 以内のジッタ
• 2 回目のクロスポイントまで+ / − 2ns 以内のジッタ
毎回 D+, D- 信号が変化することがあるので , 48MHz のクロックの各エッジに対して
+ / − 1ns の精度が必要となります。
461
第 18 章 USB ファンクション
18.4.8
コントロール転送時の転送許可 BFOK の設定
コントロール転送のセットアップステージにおいて , マクロがコマンドを受信し
ACK 応答するためには , レジスタ CONT3 の BFOK0o が 1 にセットされている必要
があります。BFOK0o が 0 の場合は TimeOut します。これは , マクロが自動処理す
るコマンドのセットアップステージにおいても同様です。
■ BFOK の設定
コントロール転送時の BFOK0i, BFOK0o の設定について以下に示します。
マクロが自動処理するリクエストの場合
• セットアップステージ
- ACK 応答させるためには BFOK0o=1 セットする必要があります。
- BFOK0o=0 の場合は TimeOut します。
• データステージ
- IN
: 対象のリクエストはありません。
- OUT
:BFOK0o の設定値に関わらず ACK 応答
• ステータスステージ
- IN
:BFOK0i の設定値に関わらず ACK 応答
- OUT
:BFOK0o の設定値に関わらず ACK 応答
マクロが自動処理しないリクエストの場合
• セットアップステージ
- ACK 応答させるためには BFOK0o=1 セットする必要があります。
• データステージ
- IN
:ACK 応答させるためには BFOK0i=1 セットする必要があります。
- OUT
:ACK 応答させるためには BFOK0o=1 セットする必要があります。
• ステータスステージ
462
- IN
:ACK 応答させるためには BFOK0i=1 セットする必要があります。
- OUT
:ACK 応答させるためには BFOK0o=1 セットする必要があります。
第 18 章 USB ファンクション
18.4.9
コントロール転送における注意点
コントロール転送における注意点を以下に示します。
■ BFOK0o の設定の優先順位
USB の規格では , USB ファンクションはセットアップステージで ACK 応答することの
みが許されています。ACK 応答できない場合は TimeOut します。
セットアップステージで TimeOut が 3 回続くと USB ホストはファンクションデバイス
を切り離します。そのため , セットアップステージでは必ず ACK 応答させることが望
ましい制御となります。
ステータスステージが ACK 応答で終了すると , BFOK0o はリセットされます。次に
セットアップステージで ACK 応答させるためには , セットアップステージが始まる前
に BFOK0o の設定をすることが必要ですので , BFOK0o の設定の優先順位はできるだ
け上位にしてください。
なお , この事はマクロが自動処理しないコマンドの場合に該当します。マクロが自動処
理するコマンドの場合には ACK の転送があっても BFOK0o はリセットされません。
■ GET_DESCRIPTOR コマンドでのデータステージの中断
自動応答では無い GET_DESCRIPTOR コマンドの場合に , 初めにホストが要求してく
る IN 転送データのバイト数未満でも , ホストが途中でデータステージを止めてしまう
ことがあります。そのため , 先に IN 転送用 FIFO へデータを書き込んでおいても , 以下
に示すようにデータをホストが全て持っていかない場合があります。
セットアップステージ (16 バイト要求 )
↓
データステージ
CPU から IN 転送用 FIFO へ 8 バイト ( データ A) ライト
ホストから IN 転送要求 ファンクションが 8 バイト送信 ACK 受信
CPU から IN 転送用 FIFO へ 8 バイト ( データ B) ライト
( 注意事項 )
ここでホストがデータステージを止めてしまうことがあります。
↓
ステータスステージ
OUT 転送で 0 バイト受信
ここで , 既に FIFO に書いてあるデータ B は , 次の IN 転送要求がくる前に破棄し FIFO
を初期化する必要があります。上記のようにホストが途中でデータを持っていくのを
止めたことを知るには , USB RESET による割込みを検出する方法が考えられます。あ
るいは以下のように ACK の割込み要因を見る方法が考えられます。
463
第 18 章 USB ファンクション
データステージ :
割込み要因 ACK0i がセット
ステータスステージ : 割込み要因 ACK0o がセット
( データステージが続いているのであれば ACK0i がセットされ
る)
割込み要因が ACK0i から ACK0o に替わったことによって , データステージからステー
タスステージに移ったことが判断できます。
464
第 18 章 USB ファンクション
18.4.9.1
USB BUS RESET 後のマクロの状態
この項では , USB BUS RESET 後のマクロの状態について説明します。
■ USB BUS RESET 後のマクロの状態
USB BUS RESET によって , マクロのレジスタの設定値および FIFO の状態はリセット
されません。USB BUS RESET 後に USB の転送を始めるためには , アプリケーション
によってレジスタおよびFIFOの状態を転送をはじめる前の初期状態に戻すことが必要
です。
また , ENDPOINT BUFFER の初期設定値も USB BUS RESET によって初期化されずに
初期設定値を保持していますので , ENDPOINT BUFFER の設定は再度行う必要はあり
ません。
なお , USB BUS RESET によってマクロは USB の Default に遷移します。
465
第 18 章 USB ファンクション
466
第 19 章
USB ホストインタフェース
この章では , USB ホストインタフェースの概要と ,
レジスタの構成 / 機能について説明します。
19.1 USB ホストインタフェースの概要
19.2 USB ホストインタフェースのレジスタ
467
第 19 章 USB ホストインタフェース
19.1
USB ホストインタフェースの概要
本インタフェースは FR IF, SRAM IF をもった USB ホスト コントローラです。
■ USB ホストインタフェース
本マクロは OHCI 準拠の USB HOST CONTROLLER で , 次ページ以降に示す特徴を有
します。
本マクロはリトルエンディアンにて動作をしますので , CS1 の ACR1 レジスタの LEND
ビットは "1" に設定してから使用してください。
本マクロへのアクセスはワード (32 ビット ) アクセス命令を使用してください。その際
の動作モードは DBW を 10(32 ビットモード ) にし , ワードアクセス命令以外は使用し
ないでください。また , ビット操作命令を実施するとバイトアクセスを行ってしまうた
め , ビット操作命令は使用しないでください。
• USB Specification Version 1.0 準拠
• OpenHCI Specification Version 1.0a 準拠 ( 但し , レガシー関連未対応 )
• HOST CONTROLLER 機能
( 参考 )
OHCI の仕様につきましては , 下記の URL を参照してください。
http://www.compaq.com/productinfo/development/openhci.html
また , 本インタフェースは USB Version 1.0 対応ですが , USB Version 1.0 と 1.1 の違いに
つきましては , 下記の URL を参照してください。主な違いは Interrupt OUT 転送への対応
が追加されたことです。
http://www.usb.org/developers/data/usbplus.zip
468
第 19 章 USB ホストインタフェース
■ ブロックダイヤグラム
図 19.1-1 に本マクロのブロック構成図を示す。
図 19.1-1 ブロックダイヤグラム
469
第 19 章 USB ホストインタフェース
19.2
USB ホストインタフェースのレジスタ
USB ホストは , 外部メモリインタフェースを経由して CS1 領域に接続されていま
す。( 第 3 章 , 第 5 章参照 )。
■ USB ホスト マクロ内レジスタ
USB ホスト マクロ内レジスタに対するレジスタ マップを表 19.2-1 に示します。
表 19.2-1 USB ホスト マクロ内レジスタ マップ
470
CPU バスアドレス
(CS1 領域内 )
レジスタ
0x0005_0000
HcRevision
0x0005_0004
HcControl
0x0005_0008
HcCommandStatus
0x0005_000C
HcInterruptStatus
0x0005_0010
HcInterruptEnable
0x0005_0014
HcInterruptDisable
0x0005_0018
HcHCCA
0x0005_001C
HcPeriodCurrentED
0x0005_0020
HcControlHeadED
0x0005_0024
HcControlCurrentED
0x0005_0028
HcBulkHeadED
0x0005_002C
HcBulkCurrentED
0x0005_0030
HcDoneHead
0x0005_0034
HcFmInterval
0x0005_0038
HcFmRemaining
0x0005_003C
HcFmNumber
0x0005_0040
HcPeriodicStart
0x0005_0044
HcLSThreshold
0x0005_0048
HcRhDescriptorA
0x0005_004C
HcRhDescriptorB
0x0005_0050
HcRhStatus
0x0005_0054
HcRhPortStatus[1]
0x0005_0058
HcRhPortStatus[2]
0x0005_005C ∼ 0x0005_7FFF
Reserved
第 19 章 USB ホストインタフェース
■ SRAM 領域
CPU から見たアドレス領域 (CS1 領域 )
CS1 内 アドレス
: 0x0005_8000 ∼ 0x0005_9FFFF (8Kbyte 領域 )
USB から見たアドレス領域
内部 PCI バスアドレス : 0x4000_0000 ∼ 0x4000_1FFF(8Kbyte 領域 )
■ HcRevision Register
ビット
リセット
名称
R/W
説明
7∼0
REV
10H
R
Revision
OHCI specification の版数を示す。
本マクロは 1.0 をサポートしますので 10H 固定となる。
31∼8
―
01H
R
Reserved
■ HcControl Register
HcControl レジスタは, ホストコントローラのオペレーティング・モードを設定します。
RemoteWakeupConnected 以外のビットは , ホストコントローラ・ドライバからのみ書き
換え可能です。
ビット
名称
リセット
R/W
説明
1, 0
CBSR
00B
R/W
ControlBulkServiceRatio
BULK Endpoint ごとの Control Endpoint へのサービスの回数を記
述する。N-1 が N 回の Control Endpoint へのサービスを示す。
( 例 00=1Control Endpoint, 11 = 4Control Endpoint)
2
PLE
0B
R/W
PeriodicListEnable
このビットがセットされると Periodic(interrupt と isochronous) の
list の処理がイネーブルとなる。本マクロはフレームの周期的な
転送を行うまえにこのビットをチェックする。
3
IE
0B
R/W
IsochronousEnable
このビットがクリアされるとPeriodicListEnableがセットされてい
ても isochronous の list の処理はディセーブルされる。( この場合
interrupt ED は処理される。) 本マクロは isochronous ED を処理す
る毎にこのビットをチェックする。
4
CLE
0B
R/W
ControlListEnable
このビットがセットされると Control の list の処理がイネーブルと
なる。
5
BLE
0B
R/W
BulkListEnable
このビットがセットされると Bulk の List の処理がイネーブルと
なる。
7, 6
HCFS
00B
R/W
HostControllerFunctionalState
この領域は本マクロの State をセットします。本マクロ自身では
DownPort
からのリジューム信号を検知するとステートを
USBSuspend から USBResume へ変化させる。
00:USBReset 01:USBResume 10:USBOperational 11:USBSuspend
471
第 19 章 USB ホストインタフェース
ビット
名称
リセット
R/W
説明
8
IR
0B
R/W
InterruptRouting
このビットは割込みの経路を示す。
0:割込みは通常の機能 (INT) の経路
1:割込みは SMI の経路
9
RWC
0B
R
RemoteWakeupConnected
このビットはホストコントローラがremote wakeup signalをサポー
トするかどうかを示す。本マクロは remote wakeup signal をサポー
トしないので "0" にハードコーディドされている。
10
RWE
0B
R/W
RemoteWakeupEnable
このビットはホストコントローラが remote wakeup signal をサ
ポートする場合 , その動作をイネーブルする。本マクロは remote
wakeup signal をサポートしないのでこのビットは使用されない。
31
∼
11
―
0H
―
Reserved Read/Write 0’s
■ HcCommandStatus Register
HcCommandStatus レジスタは , ホストコントローラの状態を反映することだけでなく ,
ホストコントローラ・ドライバによって出された命令を受けるためにも使われます。
ビット
名称
リセット
R/W
説明
0
HCR
0B
R/W
HostControllerReset
このビットはソフトウェアリセットを始めるためにセットされ
る。
このビットはリセット動作完了後本マクロ自身によりクリアさ
れる。
1
CLF
0B
R/W
ControlListFilled
Control list にアクティブな ED があることを示すためにセットす
る。ソフトウェアまたは本マクロ自身がセットし , 本マクロ自身
が Control list の先頭を処理し始める度にクリアされる。
2
BLF
0B
R/W
BulkListFilled
Bulk list にアクティブなEDがあることを示すためにセットする。
ソフトウェアまたは本マクロ自身がセットし , 本マクロ自身が
Bulk list の先頭を処理し始める度にクリアされる。
3
OCR
0B
R/W
OwnershipChangeRequest
ソフトウェアによりセットされると ,
このビットにより
HcInterruptStatus レジスタの OwnershipChange がセットされる。こ
のビットはソフトウェアによりクリアされる。
15 ∼ 4
―
0H
―
Reserved Read/Write 0’s
17, 16
SOC
00B
31∼18
―
0H
472
SchedulingOverrunCount
この領域は HcInterruptStatus レジスタの ScheduleOverrunbit がセッ
トされる度にインクリメントされる。カウントは "11" の次ぎは
"00" となる。
―
Reserved Read/Write 0’s
第 19 章 USB ホストインタフェース
■ HcInterruptStatus Register
HcInterruptStatus レジスタは , ハードウェア割込みの要因となる状態を示します。ハー
ドウェア割込みを発生するには , HcInterruptEnable Register を設定して MIE ビットを
セットします。ホストコントローラが各ビットをセットしますが , クリアはしません。
ホストコントローラ・ドライバは , "1" を書き込むことで , そのビットをクリアできま
すが , セットすることはできません。
ビット
名称
リセット
R/W
説明
0
SO
0B
R/W
SchedulingOverrun
ListProcessorがScheduleOverrunを発生したと判断した時点でセッ
トする。
1
WDH
0B
R/W
WritebackDoneHead
本マクロが HccaDoneHead へ HcDoneHead を書き終えるとセット
する。
2
SF
0B
R/W
StartofFrame
Flame Managemanet ブロックが 'Start of Frame' のイベント
信号を発生させるとセットする。
3
RD
0B
R/W
ResumeDetected
本マクロがダウンポートでリジューム信号を検知するとセット
する。
4
UE
0B
R
UnrecoverableError
このイベントは本マクロではサポートしていない。
'0' にハードコーディドされている。書き込みは無効。
5
FNO
0B
R/W
FrameNumberOverflow
FrameNumber の 15bit が変化するとセットする。
6
RHSC
0B
R/W
RootHubStatusChange
HcRhStatus または HcRhPortStatus レジスタの内容が変化した場合
にセットされる。本ビットは HcRhStatus または HcRhPortStatus
レジスタの内容をクリアすることでクリアされます。
29∼7
―
0H
―
Reserved Read/Write 0’s
30
OC
0B
R/W
OwnershipChange
HcCommandStatus レジスタの OwnershipChangeRequest ビットが
セットされるとこのビットがセットされる。
31
―
0H
―
Reserved Read/Write 0’s
473
第 19 章 USB ホストインタフェース
■ HcInterruptEnable Register
HcInterruptEnable レジスタはハードウェア割込みの生成をコントロールします。割込み
要因の設定を有効にして , MIE をセットすることでハードウェア割込みが有効になり
ます。
ビット
名称
リセット
R/W
説明
0
SO
0B
R/W
A SchedulingOverrunEnable
0: 無効
1:Schedule Overrun による割込みをイネーブルとする。
1
WDH
0B
R/W
B WritebackDoneHeadEnable
0: 無効
1:Writeback Done Head による割込みをイネーブルとする。
2
SF
0B
R/W
C StartOfFrameEnable
0: 無効
1:Start Of Frame による割込みをイネーブルとする。
3
RD
0B
R/W
D ResumeDetectedEnable
0: 無効
1:Resume Detected による割込みをイネーブルとする。
4
UE
0B
R/W
E UnrecoverableErrorEnable
このビットはサポートしていない。このビットへの書込みは無
効。
5
FNO
0B
R/W
F FrameNumberOverflowEnable
0: 無効
1:Frame Number Overflow による割込みをイネーブルとする。
6
RHSC
0B
R/W
G RootHubStatusChangeEnable
0: 無効
1:Root Hub Status Change による割込みをイネーブルとする。
29∼7
―
0H
―
Reserved
30
OC
0B
R/W
H OwnershipChangeEnable
0: 無効
1:Ownership Change による割込みをイネーブルとする。
31
MIE
0B
R/W
I MasterInterruptEnable
このビットはグローバルな割り込みイネーブル。
"1" をライトすることで上記の各イネーブルビットを通して割
込みがイネーブルされる。
474
第 19 章 USB ホストインタフェース
■ HcInterruptDisable Register
HcInterruptDisable レジスタは HcInterruptEnable レジスタと組になっています。"1" を書
き込むと , HcInterruptEnable レジスタの対応するビットがクリアされます。"0" を書き
込んでもHcInterruptEnableレジスタの値は変わりません。リードでは, HcInterruptDisable
レジスタの値ではなく , HcInterruptEnable レジスタの値が読み出されます。
ビット
名称
リセット
R/W
説明
0
SO
0B
R/W
0: 無効
1:Schedule Overrun による割込みをディセーブルとする。
1
WDH
0B
R/W
0: 無効
1:Writeback Done Head による割込みをディセーブルとする。
2
SF
0B
R/W
0: 無効
1:Start Of Frame による割込みをディセーブルとする。
3
RD
0B
R/W
0: 無効
1:Resume Detected による割込みをディセーブルとする。
4
UE
0B
R/W
このビットはサポートしていない。このビットへの書込みは無
効。
5
FNO
0B
R/W
0: 無効
1:Frame Number Overflow による割込みをディセーブルとする。
6
RHSC
0B
R/W
0: 無効
1:Root Hub Status Change による割込みをディセーブルとする。
29 ∼ 7
―
0H
―
Reserved
30
OC
0B
R/W
0: 無効
1:Ownership Change による割込みをディセーブルとする。
31
ME
0B
R/W
このビットはグローバルな割込みディセーブル。
"1" をライトすることで全ての割込みがディセーブルされる。
475
第 19 章 USB ホストインタフェース
■ HcHCCA Register
HcHCCA レジスタは , ホストコントローラ・コミュニケーション・エリアの物理アド
レスを示します。アライメントの最小単位は 256bytes のため , 下位 7 ∼ 0 ビットは "0"
固定になっています。ホストコントローラ・コミュニケーション・エリアについては ,
OpenHCI 仕様書の Chapter 4 を参照してください。
名称
ビット
リセット
R/W
説明
7∼0
−
00H
R
Reserved
31 ∼ 8
HCCA
000000H
R/W
HCCA
HCCA ベースアドレスへのポインタ
■ HcPeriodCurrentED Register
HcPeriodCurrentED レジスタは , 現在の Isochronous または Interrupt エンドポイント・
ディスクリプタの物理アドレスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31∼4
PCED
0000000H
R/W
PeriodCurrentED
カレントの Periodic list ED へのポインタ
■ HcControlHeadED Register
HcControlHeadED レジスタは , コントロール・リストの最初のエンドポイント・ディス
クリプタの物理アドレスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31 ∼ 4
CHED
0H
R/W
ControlHeadED
Control List Head ED へのポインタ
■ HcControlCurrentED Register
HcControlCurrentED レジスタは , コントロール・リストの現在のエンドポイント・ディ
スクリプタの物理アドレスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31∼4
CCED
0000000H
R/W
ControlCurentED
カレントの Control list ED へのポインタ
476
第 19 章 USB ホストインタフェース
■ HcBulkHeadED Register
HcBulkHeadED レジスタは , バルク・リストの最初のエンドポイント・ディスクリプタ
の物理アドレスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31∼4
BHED
0000000H
R/W
HcBulkHeadED
Bulk List Head ED へのポインタ
■ HcBulkCurrentED Register
HcBulkCurrentED レジスタは , バルク・リストにある現在のエンドポイントの物理アド
レスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31 ∼ 4
BCED
0000000H
R/W
BulkCurrentED
カレントの Bulk list ED へのポインタ
■ HcDoneHead Register
HcDoneHead レジスタは , Done queue に加えられた , 最後に完了したトランスファー・
ディスクリプタの物理アドレスを示します。
ビット
名称
リセット
R/W
説明
3∼0
−
0H
−
Reserved Read/Write 0’s
31 ∼ 4
DH
0000000H
R/W
DoneHead
カレントの Done list Head ED へのポインタ
477
第 19 章 USB ホストインタフェース
■ HcFmInterval Register
HcFmInterval レジスタは , bit13 ∼ bit0 の値でフレームのビット・タイム・インターバ
ル ( 連続したフレームの SOF の間隔 ) を示します。bit30 ∼ bit16 の値は , フルスピー
ド・マキシマム・パケット・サイズを表します。
名称
ビット
リセット
R/W
説明
13 ∼ 0
FI
2EDFH
R/W
FrameInterval
この領域は ( ビット時間− 1) でフレームの長さを記述する。
例えば 1 フレーム 12000 ビット時間の場合 11, 999 が記述され
る。
15, 14
−
00B
−
Reserved Read/Write 0’s
30∼16
FSMPS
0H
FSLargestDataPacket
この領域には各フレームの最初に Largest Data Packet Counter
にロードされた値が記述される。
31
FIT
0H
FrameIntervalToggle
このビットはホストコントローラドライバが FrameInterval レ
ジスタへ新しい値をロードする度にホストコントローラドラ
イバによりトグルされる。
■ HcFmRemaining Register
HcFmRemaining レジスタは , 14 ビットの減算カウンタで , 現在のフレームの残り時間
を示します。
ビット
名称
リセット
R/W
説明
13 ∼ 0
FR
0H
R
FrameRemaining
本マクロが USBOprerational ステートにある時にこの 14 ビット
の領域が 12MHz のクロック周期でディクリメントされる。
カウント値が 0 となった時 ( つまりフレームの最後に来た時 )
FrameInterval の値がロードされる。
また本マクロが USBOprerational ステートへ遷移した場合にも
ロードされる。
30∼14
−
0H
−
Reserved Read/Write 0’s
31
FRT
0B
R
FrameRemainingToggle
FrameRemaining がロードされるときに FrameIntervalToggle が
ロードされる。
478
第 19 章 USB ホストインタフェース
■ HcFmNumber Register
HcFmNumber レジスタは , 16 ビットのカウンタで , ホストコントローラとホストコン
トローラ・ドライバのイベント発生間隔のタイミング・リファレンスを与えます。
ビット
名称
リセット
R/W
説明
15 ∼ 0
FN
0000H
R
FrameNumber
この 16 ビットのインクリメントカウンタ領域は
FrameRemaining がロードされると同時にインクリメントされ
る。
FFFFH の次ぎは 0000H へカウントされる。
31∼16
−
0000H
−
Reserved Read/Write 0’s
■ HcPeriodicStart Register
HcPeriodicStart レジスタは , 14 ビットの値で , ホストコントローラが周期的なリストの
処理を開始すべき最初の時間を与えます。
ビット
名称
リセット
R/W
説明
13 ∼ 0
PS
0H
R/W
PeriodicStart
このビットはリストプロセッサがフレーム中で周期的な転送
用の list の処理を始めることを決定するために使用する値を記
述する。
31∼14
−
0H
−
Reserved Read/Write 0’s
■ HcLSThreshold Register
HcLSThreshold レジスタは , 11 ビットの値で , ホストコントローラが EOF の前に 8bytes
の LS パケットを送信することをコミットするかどうかを決定するのに用います。
ビット
名称
リセット
R/W
説明
11 ∼ 0
LST
628H
R/W
LSThreshold
このビットはフレームマネージメントブロックがカレントフ
レーム中でロウスピードトランザクションをスタートさせる
かどうかを決定するために使用する値を記述する。
31∼12
−
0H
−
Reserved Read/Write 0’s
479
第 19 章 USB ホストインタフェース
■ HcRhDescriptorA Register
HcRhDescriptorA レジスタは , Root Hub の設定を記述する 2 つのレジスタの最初のひと
つです。
ビット
名称
リセット
R/W
説明
7∼0
NDP
02H
R
NumberDownstreamPorts
本マクロは 2 つのダウンポートをサポートする
8
PSM
0B
R/W
PowerSwitchingMode
本マクロは Global power switching mode をサポートする。
よって Write 0 が必要。
このビットは NoPowerSwitching がクリアされている場合のみ
有効
0:Global Switching
1:Individual Switching
9
NPS
0B
R/W
NoPowerSwitching
本マクロは Global power switching mode をサポートする。
よって外部の Port Powr Switching 装置のサポートを記述する
"0" である必要がある。
0: Port は power switch で制御される。
1: Port は常に ON
10
DT
0B
R
DeviceType
本マクロは compound デバイスである。
11
OCPM
0B
R/W
OverCurrentProtectionMode
本マクロは Global over-current report をサポートする。よって
Write 0 が必要。このビットは NoOverCurrentProtection がクリア
されている場合のみ
有効
0:Global over-current
1:Individual over-current
12
NOCP
0B
R/W
NoOverCurrentProtection
本マクロは Global over-current reporting をサポートする。よっ
て外部の Port over-current 装置のサポートを記述する "0" である
必要がある。
0: over-current Status は Report される。
1: over-current Status は Report されない。
23∼13
−
0H
−
Reserved Read/Write 0’s
31∼24
POTP
GT
01H
R/W
PowerOnToPowerGoodTime
電源投入より安定するまでの時間を 2ms 単位で記述する。
本マクロは [24:25] のみがリードライト可能。
480
第 19 章 USB ホストインタフェース
■ HcRhDescripterB Register
HcRhDescripterB レジスタは , Root Hub の設定を記述する 2 つ目のレジスタです。この
レジスタは , システム・インプリメンテーションに一致するように初期化の際に書き込
みます。
ビット
名称
リセット
R/W
説明
15 ∼ 0
DR
0000H
R/W
DeviceRemovable
本マクロのポートは取り外し可能がデフォルトである。
0: デバイスが取り外し不可能である。
1: デバイスが取り外し可能である。
ビットとポートの関係は
bit0:reserved
bit1:port1
bit2:port2
bit3 ∼ bit15 サポート無し。read/write '0'
31∼16
PPCM
0000H
R/W
PortPowerControlMask
Global Power Control コマンドの影響を受けるかどうか示す。
この領域は NoPowerSwitching がクリアされ ,
PowerSwitchingMode がセットされている場合に有効となる。
0:Global Power Control コマンドの影響を受ける。
1:Global Power Control コマンドの影響を受けない。
ビットとポートの関係は
bit16:reserved
bit17:port1
bit18:port2
ビット 9 ∼ 32 サポート無し。read/write 0
481
第 19 章 USB ホストインタフェース
■ HcRhStatus Register
HcRhStatus レジスタは , 2 つの部分に分けられます。下位 16 ビットはハブ・ステータ
ス・フィールドで , 上位 16 ビットはハブ・ステータス・チェンジ・フィールドです。
Reserved ビットには , 常に 0 を書き込まなければなりません。
ビット
名称
リセット
R/W
説明
0
LPS
0B
R/W
(read) LocalPowerStatus
サポート無
(write) ClearGlobalPower
1 書き込み : port に対する ClearGlobalPower コマンドの発行
0 書き込み : 無効。
1
OCI
―
R
OverCurrentIndicator
このビットは OVRCUR PIN の状態を反映する。
NoOverCurrentProtection と OverCurrentProtectionMode がクリア
されている場合に有効
0: Over Current 無
1: Over Current 条件
14 ∼ 2
−
0H
―
Reserved Read/Write 0’s
15
DRWE
0B
R/W
(read) DeviceRemoteWakeupEnable
このビットはリモートウェィクアップのイベントによるポー
トの ConnectStatusChange をイネーブルとする。
0: ディセーブル
1: イネーブル
(write) SetRemoteWakeupEnable
1 書き込み:SetRemoteWakeupEnable のセット
0 書き込み:無効
16
LPSC
0B
R/W
(read) LocalPowerStatusChange
未サポート常に "0" read
(write) SetGlobalPower
1 書き込み:SetGlobalPower コマンドの発行
0 書き込み:無効
17
OCIC
0B
R/W
OverCurrentIndicatorChange
本ビットは OverCurrentIndicator が変化するとセットされる。
1 書込み:このビットのクリア
0 書込み:無効
30∼18
―
0H
―
Reserved Read/Write 0’s
31
CRWE
0B
W
(write) ClearRemoteWakeupEnable
1 書込み:DeviceRemoteWakeupEnable のクリア
0 書込み:無効
482
第 19 章 USB ホストインタフェース
■ HcRhPortStatus Register
HcRhPortStatus レジスタは , 各ポートのコントロールと , ポートのイベントのレポート
に用います。HcRhPortStatus[1] はポート 1 用 , HcRhPortStatus[2] はポート 2 用です。下
位 16 ビットはポート・ステータスを反映し , 上位 16 ビットはステータス・チェンジ・
ビットを反映します。幾つかのステータス・ビットは特殊な書き込みの仕組みを持っ
ています。詳細は各ビットの説明を参照してください。もし , ポート・ステータスの書
き換え時にトランザクションが進行した場合には , トランザクションの完了まで延期
して , その結果のポート・ステータスの書き換えを行わなければなりません。
ビット
名称
リセット
R/W
説明
0
CCS
0B
R/W
(read) CurrentConnectStatus
0 : 現在このポートにデバイスが接続されていない。
1 : 現在このポートにデバイスが接続されている。
( 注意事項 ) DeviceRemoveable がセットされていると , このビッ
トは常に "1" である。
(write) ClearPortEnable
"1" を書き込むと PortEnableStatus をクリアする。
0 : 書込みは無効。
1
PES
0B
R/W
(read) PortEnableStatus
0 : ポートはディセーブルされている。
1 : ポートはイネーブルされている。
(write) SetPortEnable
"1" を書き込むと PortEnableStatus をセットする。
0 : 書込みは無効。
2
PSS
0B
R
(read) PortSuspendStatus
0 : ポートはサスペンドされていない
1 : ポートはサスペンドされている
(write) SetPortSuspend
"1" を書き込むと PortSuspendStatus をセットする。
0 : 書込みは無効。
3
POCI
0B
R/W
(read) PortOverCurrentIndicator
本マクロはポートごとの過電流条件を報告しない。
このビットは OVRCUR 端子の状態を反映する。
NonOverCurrentProtection がクリアされ
OverCurrentProtectionMode がセットされている場合のみ有効。
0 : このポートの電流は正常
1 : このポートに過電流状態が発生
(write) ClearSuspendStatus
1 : 書込みはポートにリジュームシーケンスを実行。
0 : 書込みは無効。
4
PRS
0B
R/W
(read) PortResetStatus
0 : リセット信号はアクティブでない。
1 : リセット信号はアクティブ
(write) SetPortReset
1 : 書込みは PortResetStatus をセットする。
0 : 書込みは無効。
7∼5
−
0H
−
Reserved Read/Write 0’s
483
第 19 章 USB ホストインタフェース
ビット
名称
リセット
R/W
説明
8
PPS
0B
R/W
(read)PortPowerStatus
このビットは power switching モードに関らずポートの電源状
態を示す。
0 : ポートの電源はオフ
1 : ポートの電源はオン
( 注意事項 ) NoPowerSwitching がセットされている場合この
ビットは常に "1" がリードされる。
(write)SetPortPower
1 : 書込みは PortPowerStatus をセットされる。
0 : 書込みは無効。
9
LSDA
0B
R/W
(read)LowSpeedDeviceAttached
このビットは接続されたデバイスのスピードを示す。
0 : Full Speed デバイス
1 : Low Speed デバイス
(write)ClearPortPower
1 : 書込みは PortPowerStatus をクリアする。
0 : 書込みは無効。
15∼10
−
0H
−
Reserved Read/Write 0’s
16
CSC
0B
R/W
ConnectStatusChange
このビットは接続または切断のイベントの検知を示す。
0 : 接続または切断のイベントなし。
1 : 接続または切断を検知
1 : 書込みによりクリアされる。
0 : 書込みは無効。
17
PESC
0B
R/W
PortEnableStatusChange
このビットはハードウェアにより (PortEnableStatus のクリア )
でポートがディセーブルされていることを示す。
0 : ポートはディセーブルされている。
1 : PortEnableStatus はクリアされた。
18
PSSC
0B
R/W
PortSuspendStatusChange
このビットはポートへのリジュームシーケンスの終了を示す。
0 : ポートはレジュームされていない。
1 : ポートのリジュームが終了した。
19
OCIC
0B
R/W
PortOverCurrentIndicatorChange
このビットは OverCurrentIndicator が変化するとセットされる。
"1" を書き込むことでクリアされる。
0 書込みは無効。
20
PRSC
0B
R/W
PortResetStatusChange
このビットはポートリセット信号の終了を示す。
0 : ポートリセットは完了していない。
1 : ポートリセットは完了。
31∼21
−
0H
−
Reserved Read/Write 0’s
484
第 20 章
OSDC
この章では , OSDC ( オンスクリーン・ディスプレ
イ・コントローラ ) の特長 , ブロックダイヤグラム ,
表示機能 , 制御機能 , および表示制御コマンドにつ
いて説明します。
20.1 特長
20.2 表示機能
20.3 制御機能
20.4 表示制御コマンド
485
第 20 章 OSDC
特長
20.1
OSDCM203 は , 表示画面構成は最大 42 桁× 16 行 , 1 文字の構成は最大 24 ドット
× 32 ドットの大容量 , 高精度表示可能なオンスクリーン・ディスプレイ・コント
ローラです。内蔵のパレット回路により 512 色中 16 色の色表示設定が可能です。
また , スプライト機能 , 画面背景文字機能 , グラフィック機能などにより , 多彩な表
示が可能となります。
■ 特長
OSDCM203 の特長を , 以下に示します。
● メイン画面表示容量
最大 42 桁× 16 行 ( 最大 672 文字 )
● 文字構成
L サイズ ( 横 )24 ドット× ( 縦 )2h ドット *
M サイズ ( 横 )18 ドット× ( 縦 )2h ドット *
S サイズ ( 横 )12 ドット× ( 縦 )2h ドット *
*:h=9 ∼ 16
• L, M, S サイズは文字単位に設定可能です。
• h の値は画面単位で 2 種類設定し , 行単位に 2 種類から選択できます。
● 文字種類
1792 文字種内蔵
( 注意事項 )
グラフィック文字は , 連続する 4 文字分を使用します。
● 表示モード
• 通常文字 / グラフィック文字 ( 文字単位設定 )
• ふちどり表示 ( 横ふちどり / パターン背景 )( 画面単位設定 )
• 文字背景 ( ベタ / 影付背景 )( 文字単位設定 )
• イタリック表示 ( 文字単位設定 )
• アンダライン表示 ( 文字単位設定 )
• 行背景 ( ベタ / 影付背景 )( 行単位設定 )
• 拡大 ( 標準 , 横 2 倍 , 縦 2 倍 , 縦 2 倍×横 2 倍 , 横 4 倍 , 縦 4 倍 , 縦 4 倍×横 4 倍等 )
( 行単位設定 )
• ブリンク
- ブリンク文字指定 ( 文字単位設定 )
486
第 20 章 OSDC
- ブリンクモード設定 ( 文字単位設定 )
- ブリンク周期 , デューティ比 ( 画面単位設定 )
● スプライト文字表示 ( グラフィック文字のみ使用可 )
メイン画面上に 1 ブロック ( 最大 , 横 2 文字×縦 2 文字構成 ) 表示が可能です。( 縦横
2 ドット単位の表示位置移動が可能 )
● 画面背景文字表示 ( グラフィック文字のみ使用可 )
メイン画面下に繰返しパターン ( 最大 , 横 2 文字×縦 2 文字構成 ) 表示が可能です。
● 表示色
• 文字色 / 文字背景色 :
各 512 色中 16 色 ( 文字単位設定 )
• 行背景色 / 文字ふちどり色 :
各 512 色中 16 色 ( 行単位設定 )
• 画面背景色 :
512 色中 16 色 ( 画面単位設定 )
• グラフィック文字ドット色 :
512 色中 16 色 ( ドット単位設定 )
• 影付背景枠色 ( ハイライト / シャドウ ):
各 512 色中 16 色 ( 画面単位設定 )
● 表示位置制御
• メイン画面水平表示位置 :
4 ドット単位に設定可能
• メイン画面垂直表示位置 :
4 ドット単位に設定可能
• スプライト画面水平表示位置 : 2 ドット単位に設定可能
• スプライト画面垂直表示位置 : 2 ドット単位に設定可能
• 行間隔制御 :
2 ドット単位に設定可能 ( 行単位設定 )
● 文字 / 色信号出力
• R[2:0], G[2:0], B[2:0]:
OSD 色デジタル出力信号
• ROUT, GOUT, BOUT:
OSD 色アナログ出力信号 *1
• VOB1:
OSD 表示期間信号 *2
• VOB2:
OSD 半透明表示期間信号 *2
*1: DAC 出力信号。DAC により R, G, B は各 8 レベル出力。
*2: VOB1, VOB2 はデジタル / アナログ共通です
● 割込み機能
• 行表示終了割込み
• 垂直同期信号検出割込み
• VRAM フィル終了割込み
● クロック周波数
最大周波数 :90MHz
487
第 20 章 OSDC
■ ブロックダイヤグラム
OSDCM203 に , OSDC 周辺のブロックダイヤグラムを示します。
図 20.1-1 ブロックダイヤグラム
割込み
CPU へ
Fontデータ
FLASH
Font I/F
DAC 制御信号
DAC
F-BUS
VRAM データ
VRAM I/F
RAM
OSDCM203
Digital 用RGB
表示期間信号
PLL 制御信号
OSDC レジスタ制御信号
488
PLL
VREF
VRO
VDDR
RCOMP
VSSR
VDDG
GCOMP
VSSG
VDDB
BCOMP
VSSB
ROUT
GOUT
BOUT
R[2:0]
G[2:0]
B[2:0]
VOB1
VOB2
DCKO
DOCKI
FH
VSYNC
HSYNC
CPO
VGS
VDDI(8:PLL 用)
第 20 章 OSDC
20.2
表示機能
この章では , OSDC の表示機能について説明します。
■ 表示機能
20.2.1 画面構成
20.2.2 画面表示形式
20.2.3 画面出力制御
20.2.4 画面表示位置制御
20.2.5 フォントメモリ構成
20.2.6 表示メモリ (VRAM) 構成
20.2.7 表示メモリ (VRAM) 書込み
20.2.8 パレット構成
20.2.9 文字表示
20.2.10 文字背景表示
20.2.11 行背景表示
20.2.12 画面背景表示
20.2.13 スプライト文字表示
489
第 20 章 OSDC
画面構成
20.2.1
表示画面は , 各画面要素を組み合わせて構成されます。
■ 画面構成
表示画面は , 表 20.2-1 に示す各画面要素を組み合わせて構成されます。
表 20.2-1 表示画面の画面要素
表示画面名
上位層
画面構成
表示位置制御
1 個 ( 最大 2 × 2 文字構成 )
水平 / 垂直 : 2 ドット
文字 ( +縁取り )
42 桁× 16 行
水平 / 垂直 : 4 ドット
文字背景
42 桁× 16 行
( 文字と同時制御 )
行背景
16 行
( 文字と同時制御 )
画面背景文字
1 種 ( 最大 2 × 2 文字構成 )
固定
画面背景
( 単色全画面表示 )
固定
スプライト文字
メイン画面
下位層
■ 画面構成図
図 20.2-1 に , 画面の構成図を示します。
図 20.2-1 画面構成図
同期元映像
画面背景(画面背景色)
画面背景文字 ×××××××××××××××××××
××××××××××××××××××××××××××
×
0 行 行背景(行背景色)
1 行 文字背景(文字背景色)
2行
3 行 文字+ふちどり
4行
5行
6行
7行
8行
17 行
10 行
← スプライト文字
11 行
12 行
13 行
14 行
15 行
×××
42 桁
行背景の影付背景影枠は,文字表示より優先表示されます。
(注意事項)
また,文字背景の影付背景影枠は,文字表示および行背景の
影付背景影枠より優先表示されます。
490
第 20 章 OSDC
画面表示形式
20.2.2
表 20.2-2 に , 各表示画面の要素について表示形式を示します。
■ 画面表示形式
表 20.2-2 画面表示形式
表示画面
名
表示形式
画面背景 非表示
表示
画面背景 非表示
文字
表示
( 注意事項 )
グラフィック文字のみ使用可
文字構成
1 文字構成
横 2 文字構成
縦 2 文字構成
縦 2 ×横 2 文字構成
メ
イ
ン
画
面
行
背
景
非表示
行間隔
ベタ背景表示
影付背景凹表示
影付背景
下行結合
影付背景凸表示
文
字
背
景
独立
結合
非表示
ベタ背景表示
影付背景凹表示
影付背景凸表示
文
字
0 ∼ 14 ドット
影付背景
右文字結合
独立
結合
影付背景
下行結合
独立
文字背景拡張
( 行間隔設定が "0" 以外のとき
有意 )
通常
通常
拡張
結合
グラフィック文字
通
常
文
字
非表示 ( 空白文字 )
表
示
ふちどり出力制御
非表示
ふちどり形 横ふちどり 1
式
文字背景無のみ表示
横ふちどり 2
ふちどり種
非表示
右ふちどり
影付背景以外で表示
パターン背景 1
左ふちどり
全表示
パターン背景 2
左右ふちどり
イタリック 出力制 非表示
御
イタリック表示
アン ダ ラ イン 出 非表示
力制御
アンダライン表示
スプライ 非表示
ト文字
表示
( 注意事項 )
グラフィック文字のみ使用可
文字構成 1 文字構成
横 2 文字構成
縦 2 文字構成
縦 2 ×横 2 文字構成
491
第 20 章 OSDC
20.2.3
画面出力制御
表 20.2-3 に , 画面出力制御の制御対象と制御ビットとの関係を示します。
■ 画面出力制御
表 20.2-3 画面出力制御
表示画面制御
制御対象
制御ビット名 ( 制御単位 )
文字 + ふちどり + 文字背景 + 行背景
DSP ( 画面単位 )
文字 + ふちどり + 文字背景
文字
M8 ∼ M0 ( 文字単位 )
文字ふちどり
文字背景
行背景
LDS ( 行単位 )
LFD ∼ LFA ( 行単位 )
MM1, MM0 ( 文字単位 ) MIT, MUL
LM1, LM0 ( 行単位 )
画面背景文字
PDS ( 画面単位 )
画面背景色
UDS ( 画面単位 )
スプライト文字
SDS ( 画面単位 )
492
第 20 章 OSDC
20.2.4
画面表示位置制御
OSDCM203 では , メイン画面・画面背景文字・画面背景色・スプライト文字の各表
示位置について , それぞれ独立に制御できます。
■ メイン画面の表示位置制御
文字 , 文字ふちどり , 文字背景 , 行背景の表示位置は同時に制御されます。
● 垂直表示位置 : 垂直表示位置制御 ( コマンド 5-2)Y8 ∼ Y0 ビット
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。
0 ∼ 2044 ドット , 4 ドット単位設定。
● 水平表示位置 : 水平表示位置制御 ( コマンド 5-3)X8 ∼ X0 ビット
水平同期信号 (HSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。
0 ∼ 2044 ドット , 4 ドット単位設定。
● 行間隔
: 行制御データ設定 1( コマンド 3)LW2 ∼ LW0 ビット
文字の上下の間隔領域をドット数で設定。
文字の上部と下部の 2 箇所それぞれに設定値分の間隔を確保します。
0 ∼ 14 ドット , 2 ドット単位 , 各行独立設定。
( 注意事項 )
行縦拡大指定時の行間隔は拡大表示されます。
図 20.2-2 に , メイン画面の表示位置を示します。
493
第 20 章 OSDC
図 20.2-2 メイン画面の表示位置
←VSYNC位置
・・・
HSYNC位置
↓
0行
行間隔
垂直表示位置*1
水平表示位置*2 文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・
行間隔
1行
2行
文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・
行背景(水平)
表示位置*3
・
・
・
494
文字 文字 文字 文字 文字 文字 文字 文字 文字 ・・・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
第 20 章 OSDC
● 垂直表示位置について ( 図 20.2-2 の *1 を参照 )
垂直表示位置の内部カウントは , 以下の図に示すように , 垂直同期信号 (VSYNC 端子入
力信号 ) 同期パルスの 1Hsync 周期後から開始します。
図 20.2-3 に , メイン画面垂直表示位置のカウントタイミングを示します。
図 20.2-3 メイン画面垂直表示位置のカウントタイミング
( 注意事項 )
VSYNC および HSYNC が図 20.2-3 の場合には , 入出力制御 2( コマンド 13-1) の垂直同期
検出 HSYNC エッジ選択制御 (VHE ビット ) 設定により表示開始位置は変わりません。
● 水平表示位置について ( 図 20.2-2 の *2 を参照 )
水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン
ド 13-1 HE ビットにより制御 ) から設定値 + 数ドットクロック後 (「20.2.4.1 画面表示
位置オフセット」参照 ) となります。
● 行背景表示位置について ( 図 20.2-2 の *3 を参照 )
行背景の水平表示位置は , 水平同期パルス有意エッジ ( コマンド 13-1 HE ビットにより
制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフセット」参照 ) の位置と
なります。
( 参考 )
行背景の垂直表示位置については , 垂直表示位置制御 ( コマンド 5-2)Y8 ∼ Y0 ビットに制
御され , メイン画面の文字と同時に表示位置を移動させることができます。
<注意事項>
垂直表示位置制御は , 同期制御 ( コマンド 11-0) のインタレース制御 (IN ビット ) 設定の内
容により異なります。( 詳細は , 「20.3.5 同期制御」を参照してください。)
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力
信号 ) 同期パルス入力後一定期間は , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF
状態となります。
495
第 20 章 OSDC
■ 画面背景文字の表示位置制御
図 20.2-4 に , 画面背景文字の表示位置を示します。
図 20.2-4 画面背景文字の表示位置
● 垂直表示位置について ( 図 20.2-4 の *1 を参照 )
垂直表示位置は , 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスの 1Hsync 周期後固
定です。図 20.2-3 と同様です。
● 水平表示位置について ( 図 20.2-2 の *2 を参照 )
水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン
ド 13-1 HE ビットにより制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフ
セット」参照 ) の位置となります。
<注意事項>
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力
信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状
態となります。
496
第 20 章 OSDC
■ 画面背景色の表示位置制御
図 20.2-5 に , 画面背景色の表示位置を示します。
図 20.2-5 画面背景色の表示位置
● 垂直表示位置について ( 図 20.2-5 の *1 を参照 )
垂直表示位置は , 垂直同期信号 (VSYNC 端子入力信号 ) 同期パルス後縁直後です。
図 20.2-6 に , 画面背景色垂直表示開始位置を示します。
図 20.2-6 画面背景色垂直表示開始位置
● 水平表示位置について ( 図 20.2-5 の *2 を参照 )
水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン
ド 13-1 HE ビットにより制御 ) から数ドットクロック後 (「20.2.4.1 画面表示位置オフ
セット」参照 ) の位置となります。
<注意事項>
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力
信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状
態となります。
497
第 20 章 OSDC
■ スプライト文字の表示位置制御
スプライト文字 , およびスプライト文字ふちどりの表示位置を制御します。
● スプライト文字垂直表示位置 : スプライト文字制御 4( コマンド 9-0)SY9 ∼ SY0 ビット
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。
0 ∼ 2046 ドット , 2 ドット単位設定。
● スプライト文字水平表示位置 : スプライト文字制御 5( コマンド 9-1)SX9 ∼ SX0 ビット
水平同期信号 (HSYNC 端子入力信号 ) 同期パルスを基準とした相対位置を設定します。
0 ∼ 2046 ドット , 2 ドット単位設定。
図 20.2-7 に , スプライト文字の表示位置を示します。
図 20.2-7 スプライト文字の表示位置
● 垂直表示位置について ( 図 20.2-7 の *1 を参照 )
垂直表示位置基準は , メイン画面と同じく , 垂直同期信号 (VSYNC 端子入力信号 ) 同期
パルス信号の 1H 後です。図 20.2-3 参照。
● 水平表示位置について ( 図 20.2-7 の *2 を参照 )
水平表示位置は , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルス有意エッジ ( コマン
ド 13-1 HE ビットにより制御 ) から , " 設定値 + 数ドットクロック後 (「20.2.4.1 画面
表示位置オフセット」参照 )" の位置となります。
<注意事項>
垂直同期信号 (VSYNC 端子入力信号 ) 同期パルスおよび水平同期信号 (HSYNC 端子入力
信号 ) 同期パルス入力後一定期間 , 表示信号出力 (RGB, VOB1, VOB2) は表示出力 OFF 状
態となります。
498
第 20 章 OSDC
20.2.4.1
画面表示位置オフセット
メイン画面・画面背景文字・画面背景色・スプライト文字の各表示位置について ,
それぞれ表示オフセットがあります。また , 画面背景文字・スプライト文字表示を
行わない場合はメイン画面表示のオフセット値を減少することが可能です。
■ 画面表示位置オフセット
表 20.2-4 , 表 20.2-5 , 表 20.2-6 に , 水平表示位置オフセット値を示します。
表示位置オフセットは , 水平同期信号 (HSYNC 端子入力信号 ) 同期パルスの有意エッ
ジ ( コマンド 13 ∼ 1 HE ビットにより制御 ) からのドットクロック数となります。
また , 画面背景文字動作制御停止 ( コマンド 7-1)PCUT ビットおよびスプライト文字動
作制御停止 ( コマンド 8-1)SCUT ビットにより , 各動作制御を停止することにより , メ
イン画面のオフセット値を減少することが可能となります。
● メイン画面 , スプライト文字および画面背景文字を同時に表示する場合のオフセット値は
以下のとおりです。
表 20.2-4 水平表示位置オフセット値 ( その 1)
表示画面
オフセット値
スプライト文字
120
メイン画面 ( 文字 )
150
メイン画面 (行背景)
50
画面背景文字
122
画面背景色
50
( 注意事項 ) オフセット値の単位は , ドットクロック数です。
● スプライト文字もしくは画面背景文字のどちらかを動作制御停止した場合のオフセット値
は以下のとおりです。
表 20.2-5 水平表示位置オフセット値 ( その 2)
表示画面
オフセット値 (PCUT=1)
オフセット値 (SCUT=1)
スプライト文字
72
-
メイン画面 ( 文字 )
102
102
メイン画面 ( 行背景 )
50
50
画面背景文字
-
74
画面背景色
50
50
( 注意事項 ) オフセット値の単位は , ドットクロック数です。
499
第 20 章 OSDC
<注意事項>
画面背景文字動作制御停止 (PCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の
PDS ビットを "0" とし , 画面背景文字表示を行わないでください。
スプライト文字動作制御停止 (SCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の
SDS ビットを "0" とし , スプライト文字表示を行わないでください。
● メイン画面のみの表示を行う場合のオフセット値は以下のとおりです。
表 20.2-6 水平表示位置オフセット値 ( その 3)
表示画面
オフセット値
スプライト文字
-
メイン画面 ( 文字 )
69
メイン画面 (行背景)
50
画面背景文字
-
画面背景色
50
( 注意事項 ) オフセット値の単位は , ドットクロック数です。
<注意事項>
画面背景文字動作制御停止 (PCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の
PDS ビットを "0" とし , 画面背景文字表示を行わないでください。
スプライト文字動作制御停止 (SCUT=1) する場合には , 画面出力制御 1( コマンド 5-00) の
SDS ビットを "0" とし , スプライト文字表示を行わないでください。
500
第 20 章 OSDC
20.2.5
フォントメモリ構成
フォントは , 1 文字を 24 ドット× 32 ドットで構成し , 全 1792 文字分の容量を持っ
ています。
• 1792 文字を任意にユーザが設定できます。
< 注意 事項 > 空白文字も予約設定されていません。必要な場合は , 任意の文字
コードに設定してください。
• 任意にグラフィック文字 / 通常文字の設定が可能です。
( ただし , グラフィック文字 1 文字は通常文字 4 文字分のデータを使用します。)
■ フォントメモリ構成
図 20.2-8 に , フォントメモリ構成を示します。
図 20.2-8 フォントメモリ構成
501
第 20 章 OSDC
20.2.6
表示メモリ (VRAM) 構成
表示メモリは , 文字単位の設定を行う文字 RAM と , 行単位の設定を行う行 RAM と
で構成されています。
• 文字 RAM: 水平 42 桁× 16 行 ( 全 672 文字 )
• 行 RAM :16 行
■ 表示メモリと表示画面
文字 RAM は , 表示文字に 1 対 1 に対応しています。行 RAM は , 表示行に 1 対 1 に対
応しています。
図 20.2-9 に , 表示メモリの構成を示します。
図 20.2-9 表示メモリ構成
502
第 20 章 OSDC
20.2.7
表示メモリ (VRAM) 書込み
表示メモリの書込みは , OSDC 制御アドレス "00H" ∼ "08H" に OSDC コマンドを設
定して行います。
• 文字 RAM 1 文字書込み
• 文字 RAM 複数文字一括書込み
• 行 RAM 書込み
■ 表示メモリ書込み
OSDC 制御アドレス "00H" ∼ "08H" に対して OSDC コマンドを発行することにより表
示メモリ書込みを行います。
■ 文字 RAM 1 文字書込み
任意の文字データを , 文字 RAM 内の任意のアドレスに書き込みます。
図 20.2-10 に , 文字 RAM の書込み手順を示します。
図 20.2-10 文字 RAM 書込み手順
*1: 前回の文字 RAM 書込みに継続して連続アドレスに書き込む場合は省略可能です。
*2: 文字データ設定 1 内容が , 前回の設定から変更されていない場合は省略可能です。
503
第 20 章 OSDC
■ 文字 RAM 複数文字一括書込み (VRAM フィル )
任意の文字データを , 文字 RAM 内の任意のアドレスから最終アドレスまで書込みま
す。
図 20.2-11 に , 複数文字一括書込み (VRAM フィル ) の , 文字 RAM 書込みの手順を示し
ます。
図 20.2-11 文字 RAM 複数文字一括書込み (VRAM フィル ) 手順
*: VRAM フィル終了時は , VRAM フィル終了割込み要因が設定されます。
VRAM フィル実行時間は , ドットクロック周波数に依存します。1 画面全体の設定
での目安値を示します。
ドットクロック
90MHz 時
約 0.1 ms
VRAM フィル実行中は , コマンド 1-4 の発行は禁止です。
VRAM フィル実行中にコマンド 0(FL=0) の発行が行われると , VRAM フィルは強制
終了します。
強制終了後 , VRAM 書込みアドレス設定には , コマンド 0 の再発行が必要です。
■ 行 RAM 書込み
任意の行データを , 行 RAM 内の任意のアドレスに書込みます。
図 20.2-12 に , 行 RAM の書込み手順を示します。
図 20.2-12 行 RAM 書込み手順
*1: 行 RAM フィル機能はありません ( フィル指定は禁止 )。
*2: 行データ設定 1 内容が , 前回の設定から変更されていない場合は省略可能です。
*3: 行 RAM 書込みによるアドレスインクリメントは行われません。
従って , 行単位に行アドレス設定を行う必要があります。
504
第 20 章 OSDC
20.2.8
パレット構成
パレットは , OSDC が出力する 4 ビットの色コードを 9 ビットの色コードに変換し
ます。
■ パレット RAM 構成
パレットにより , OSDC に設定する 4 ビットの色コードから RGB それぞれ 3 ビットの
色コードに変換します。
図 20.2-13 に , パレットの設定アドレスおよび OSDC 設定色コードとの対応構成を示し
ます。
図 20.2-13 パレット構成
505
第 20 章 OSDC
20.2.9
文字表示
表示文字のサイズは , 水平 , 垂直の設定が可能です。
フォント ROM/RAM 中の指定文字データの左上端ドットから指定サイズのデータを
切り出して表示します。
■ 文字水平サイズ制御 ( 文字単位設定 )
表 20.2-7 に , 文字データ設定 1( コマンド 1):MS1, MS0 ビットの , 文字水平サイズを示
します。
表 20.2-7 文字水平サイズ制御
MS1
MS0
文字水平サイズ
0
0
S サイズ:12 ドット
0
1
M サイズ:18 ドット
1
0
L サイズ:24 ドット
1
1
( 設定禁止 )
■ 行文字垂直サイズ種制御 ( 行単位設定 )
表 20.2-8 に , 行制御データ設定 1( コマンド 3):LHS ビットの , 行文字垂直サイズ種を示
します。
表 20.2-8 行文字垂直サイズ種制御
LHS
行文字垂直サイズ種
0
文字垂直サイズ A
1
文字垂直サイズ B
■ 文字垂直サイズ A/ 文字垂直サイズ B
表 20.2-9 に文字垂直サイズ制御 ( コマンド 6-0):HA2 ∼ HA0 ビット /HB2 ∼ HB0 ビッ
トの , 文字垂直サイズ A/B を示します。
表 20.2-9 文字垂直サイズ A/ 文字垂直サイズ B
506
HA2/HB2
HA1/HB1
HA0/ HB0
文字垂直サイズA/文字垂直サイズB
0
0
0
18 ドット
0
0
1
20 ドット
0
1
0
22 ドット
0
1
1
24 ドット
1
0
0
26 ドット
1
0
1
28 ドット
1
1
0
30 ドット
1
1
1
32 ドット
第 20 章 OSDC
■ 表示例
● フォント ROM/RAM 内容
図 20.2-14 に , フォント ROM/RAM 内容の表示例を示します。
図 20.2-14 フォント ROM 内容の表示例
● 表示例 1( 垂直文字サイズ =32 ドット )
図 20.2-15 に , 垂直文字サイズ =32 ドットの場合の表示例を示します。
図 20.2-15 垂直文字サイズ =32 ドットの場合の表示例
507
第 20 章 OSDC
● 表示例 2( 垂直文字サイズ =22 ドット )
図 20.2-16 に , 垂直文字サイズ =22 ドットの場合の表示例を示します。
図 20.2-16 垂直文字サイズ =22 ドットの場合の表示例
■ 応用表示例
● L サイズのみ使用時の表示例
図 20.2-17 に , L サイズのみ使用時の表示例を示します。
図 20.2-17 L サイズのみ使用時の表示例
● LMS サイズ混在使用による表示例
図 20.2-18 に , LMS サイズ混在使用による表示例を示します。
図 20.2-18 LMS サイズ混在使用による表示例
508
第 20 章 OSDC
● LMS サイズ , 垂直サイズ可変による表示例
図 20.2-19 に , LMS サイズ , 垂直サイズ可変による表示例を示します。
図 20.2-19 LMS サイズ , 垂直サイズ可変による表示例
509
第 20 章 OSDC
20.2.9.1
文字色
16 色の文字色を , 文字単位で設定できます。
■ 文字色 (16 色 , 文字単位設定 )
文字データ設定 1( コマンド 1)MC3 ∼ MC0 に , 色コードを設定することにより文字単
位に文字色の設定が可能です。
<注意事項>
OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。
DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの
読出しアドレスとなります。
510
第 20 章 OSDC
イタリック表示
20.2.9.2
イタリック表示は , 文字ドットを傾けて表示する機能です。文字単位の設定が可能
です。
■ イタリック表示制御
文字データ設定 1( コマンド 1)MIT ビットにより文字単位にイタリック属性の設定が可
能です。
表 20.2-10 イタリック文字制御 ( 文字単位設定 )
MIT
イタリック文字制御
0
通常文字
1
イタリック文字
■ イタリック表示ルール
イタリック指定文字の右側の文字が非イタリック指定文字の場合は , 非イタリック指
定文字もイタリック表示となります。( 図 20.2-20 - ① )
イタリック表示によりイタリック表示となった非イタリック表示文字から非イタリッ
ク表示文字へ , イタリック文字ドットがはみ出す場合は , ドットははみ出しません。
( 図 20.2-20 - ② )
イタリック表示によりはみ出したドット色は , はみ出した文字領域の色設定に依存し
ます。( 図 20.2-20 - ③ )
文字影付背景表示の右枠がある場合には , イタリック文字ドットがはみ出す場合は ,
ドットははみ出しません。( 図 20.2-20 - ④ )
イタリック表示は , 文字属性の文字色 , 文字背景色 , グラフィック文字 , アンダライン ,
文字影付背景に対して反映されません。
511
第 20 章 OSDC
■ 表示例
図 20.2-20 に , イタリック表示例を示します。
図 20.2-20 イタリック文字表示例
イタリック文字表示例
MIT=0
MIT=0
イタリック文字表示例
MIT=1
MIT=0
MM=10
MM=11
MR=1
MR=0
MIT=0
MIT=0
イタリック文字表示例
MIT=1
MIT=0
MIT=0
イタリック文字表示例
MIT=1
MIT=0
MIT=0
イタリック文字表示例
MIT=1
MIT=0
MM=10
MM=01
MR=0
MR=0
※MM:文字背景制御(コマンド1)
※MR:影付背景右文字結合制御(コマンド2)
512
MIT=1
第 20 章 OSDC
■ イタリック文字起点
イタリック文字の傾き起点は , 文字の高さに依存せず縦 32 ×横 24 ドットの左下となり
ます。
図 20.2-21 , 図 20.2-22 にイタリック状態について示します。
図 20.2-21 縦 32 ドット表示時のイタリック状態
図 20.2-22 縦 18 ドット表示時のイタリック状態
<注意事項>
イタリック文字表示の傾きの起点は , 文字の高さに依存せず縦 32 ×横 24 ドットの左下と
なります。
513
第 20 章 OSDC
アンダライン表示
20.2.9.3
アンダライン表示は , 文字下方に横線を表示する機能です。文字単位の設定が可能
です。
■ アンダライン表示制御
文字データ設定 1( コマンド 1)MUL 設定により文字単位にアンダライン属性の設定が
可能です。
表 20.2-11 アンダライン制御 ( 文字単位設定 )
MUL
アンダライン制御
0
通常文字
1
アンダライン表示
■ アンダライン表示ルール
アンダラインは , 文字の垂直サイズ制御に依存し , 最下位ドットから垂直上方向の 3, 4
ドット目に表示されます。
■ 表示例
図 20.2-23 に , アンダライン表示例を示します。
図 20.2-23 アンダライン表示例
514
第 20 章 OSDC
文字ふちどり
20.2.9.4
文字ふちどりは , 文字ドットの周囲にふちどりを表示する機能です。
■ ふちどり出力制御
文字背景種により , ふちどりの有無を制御できます。
4 種を行単位に設定できます。
表 20.2-12 に , 行制御データ設定 1( コマンド 3):LFD, LFC ビットの , ふちどり出力制御
を示します。
表 20.2-12 ふちどり出力制御 ( 行単位設定 )
ふちどり出力制御 ( 行単位設定 )
文字背景種 ( 文字単位設定 )
LFD
LFC
MM1
MM0
表示内容
0
0
0
0
非表示
×
0
1
ベタ背景
×
1
0
影付背景凹
×
1
1
影付背景凸
×
0
0
非表示
○
0
1
ベタ背景
×
1
0
影付背景凹
×
1
1
影付背景凸
×
0
0
非表示
○
0
1
ベタ背景
○
1
0
影付背景凹
×
1
1
影付背景凸
×
0
0
非表示
○
0
1
ベタ背景
○
1
0
影付背景凹
○
1
1
影付背景凸
○
0
1
1
1
0
1
ふちどり出力
×:非表示 ( パターン背景 1, 2 の時は , 「パターン背景なし」の表示になります。)
○:表示
515
第 20 章 OSDC
■ ふちどり形式制御
ふちどりは , 画面単位で設定を行う 4 種類の形式と , 行単位の設定で行う 4 種類の制御
の組合せで表示されます。
● ふちどり形式制御 ( 画面単位設定 )
画面単位でのふちどり形式制御により, 横ふちどりやパターン背景といった4種類の表
示形式を選択して使用できます。
パターン背景 1( および 2) は , 横ふちどり 1 ドット ( および 2 ドット ) では表現できな
い縦方向のふちどりの表現が可能です。但し , パターン背景 1( および 2) 形式用にフォ
ントデータをデザインする必要があり , またこのフォントデータを他の形式 ( ふちどり
1 ドット等 ) で表示すると , 表示形状が崩れる場合があります。
表 20.2-13 に , 画面出力制御 2( コマンド 5-1):FM1, FM0 ビットの , ふちどり形式制御を
示します。
表 20.2-13 ふちどり形式制御 ( 画面単位設定 )
ふちどり形式制御
ふちどり形式
FM1
FM0
0
0
横ふちどり 1 ドット
0
1
横ふちどり 2 ドット
1
0
パターン背景 1
1
1
パターン背景 2
• 横ふちどり 1 ドット文字ドット ( 原画データ ) の左右両端 * に , ふちどりを 1 ドット
付加して表示します。
• 横ふちどり 2 ドット文字ドット ( 原画データ ) の左右両端 * に , ふちどりを 2 ドット
付加して表示します。
• パターン背景 1 フォントデータの 1 が水平方向に 2 ビット以上連続している場合 ,
連続ビット数 -1 の数の文字ドット , およびその左右両端 * にパターン背景が 1 ドッ
ト表示されます。
• パターン背景 2 フォントデータの 1 が水平方向に 2 ビット以上連続している場合 ,
連続ビット数 -1 の数の文字ドット , およびその左右両端 * にパターン背景が 2 ドッ
ト表示されます。
*: LFB, LFA ビットの制御で , 非表示 , 左右何方かの表示が可能です。
516
第 20 章 OSDC
● ふちどり制御 ( 行単位設定 )
行単位でのふちどり制御により , 左右どちら ( または左右両方 ) にふちどりドット表示
させるか選択して使用できます。
表 20.2-14 に , 行制御データ設定 1( コマンド 3):LFB, LFA ビットの , ふちどり制御を示
します。
表 20.2-14 ふちどり制御 ( 行単位設定 )
ふちどり制御
ふちどり出力
LFB
LFA
0
0
非表示
0
1
右ふちどり
1
0
左ふちどり
1
1
左右ふちどり
517
第 20 章 OSDC
■ 表示例
● 横ふちどり 1 ドット (FM1, FM0=0, 0) 表示例
図 20.2-24 に , 横ふちどり 1 ドット (FM1, FM0=0, 0) の場合の表示例を示します。
図 20.2-24 横ふちどり 1 ドット (FM1, FM0=0, 0) 表示例
518
第 20 章 OSDC
● 横ふちどり 2 ドット (FM1, FM0=0, 1) 表示例
図 20.2-25 に , 横ふちどり 2 ドット (FM1, FM0=0, 1) の場合の表示例を示します。
図 20.2-25 横ふちどり 2 ドット (FM1, FM0=0, 1) 表示例
519
第 20 章 OSDC
● パターン背景 1(FM1, FM0=1, 0) の表示例
図 20.2-26 に , パターン背景 1(FM1, FM0=1, 0) の場合の表示例を示します。
図 20.2-26 パターン背景 1 (FM1, FM0=1, 0) の表示例
520
第 20 章 OSDC
● パターン背景 2(FM1, FM0=1, 1) の表示例
図 20.2-27 に , パターン背景 2(FM1, FM0=1, 1) の場合の表示例を示します。
図 20.2-27 パターン背景 2 (FM1, FM0=1, 1) の表示例
521
第 20 章 OSDC
■ ふちどり色
行制御データ設定 1( コマンド 3)LF3 ∼ LF0 に , 色コードを設定することにより行単位
にふちどり色を設定できます。
■ ふちどり表示ルール
• ふちどりドットの左右隣接文字領域への表示は , 自文字と隣接文字の文字背景種が
同一の場合にのみ可能となります。
• ふちどりドットの行左端または行右端の文字領域外への表示は , 行端文字の文字背
景種が文字背景なしの場合にのみ可能となります。
• 行拡大制御時 ( 行制御データ設定 2( コマンド 4) の LG1, LG0 ビット設定が "0, 0" 以
外の場合 ) は , ふちどりドットも拡大表示されます。
<注意事項>
OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。
DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの
読出しアドレスとなります。
522
第 20 章 OSDC
行拡大表示
20.2.9.5
行拡大表示は , 文字 / 文字背景 / 行背景 ( 行間隔部を含む ) の表示サイズを制御する
機能です。縦横方向に個別 , および同時設定が可能です。
影付背景の影枠部分 , およびふちどりドットも拡大制御されます。また , 行拡大表示
指定行以降の行は表示位置が下方に移動します。
■ 行拡大制御 ( 行単位設定 )
表 20.2-15 , 表 20.2-16 に , 行制御データ設定 2( コマンド 4):LGX1, LGX0, LGY1, LGY0
ビットの , 行拡大制御を示します。
表 20.2-15 行拡大制御 ( 行単位設定 )
LGY1
LGY0
表示サイズ
0
0
標準サイズ
0
1
縦 2 倍サイズ
1
0
設定禁止
1
1
縦 4 倍サイズ
表 20.2-16 行拡大制御 ( 行単位設定 )
LGX1
LGX0
表示サイズ
0
0
標準サイズ
0
1
横 2 倍サイズ
1
0
設定禁止
1
1
横 4 倍サイズ
523
第 20 章 OSDC
■ 行拡大表示例
図 20.2-28 に , 標準 , 横 2 倍 , 横 4 倍 , 縦 2 倍 , 縦 4 倍 , 縦横 2 倍 , 縦横 4 倍の各サイズ
の行拡大表示例を示します。
図 20.2-28 行拡大表示例
• 標準サイズ
• 横 2 倍サイズ
• 横 4 倍サイズ
524
第 20 章 OSDC
• 縦 2 倍サイズ
• 縦 4 倍サイズ
525
第 20 章 OSDC
• 縦横 2 倍サイズ
• 縦 2 倍横 4 倍サイズ
526
第 20 章 OSDC
グラフィック文字表示
20.2.9.6
グラフィック文字表示は , フォントメモリに設定してある 4 文字分のドットパター
ンをもとに , 24 ドット× 32 ドット× 16 色のグラフィックとして表示する機能で
す。1 ドット単位に 16 色の表示が可能です。
■ 文字 / グラフィック文字制御 ( 文字単位設定 )
グラフィック文字は , フォント RAM 内の連続する 4 文字使用します。グラフィック文
字表示を行う場合は文字コードの下位 2bit を 0 に設定してください。
表 20.2-17 に , 各文字コード設定をしめします。
表 20.2-17 グラフィック文字指定コード
表示層
文字コード
任意設定 bit
固定設定 bit "0" を設定してください。
メイン画面
M10 ∼ M2
M1. M0
画面背景文字
PM10 ∼ PM2
PM1, PM0
スプライト
SM10 ∼ SM2
SM1, SM0
<注意事項>
グラフィック文字は対応する OSDC パターンエディタ (PED/WIN) を使用して作成してく
ださい。
表 20.2-18 , および表 20.2-29 に , 文字データ設定 2( コマンド 2):MG ビットの , 文字 / グ
ラフィック文字制御を示します。
表 20.2-18 文字 / グラフィック文字制御 ( 文字単位設定 )
MG
文字 / グラ
フィック文
字制御
0
通常文字
1
グラフィッ
ク文字
527
第 20 章 OSDC
図 20.2-29 文字 / グラフィック文字制御 ( 文字単位設定 )
Graphic display example
(MG = 1)
(MM1 = 1, MM0 = 1)
(MM1 = 1, MM0 = 0)
( 注意事項 )
グラフィック表示時にも影付き背景表示が可能。
528
第 20 章 OSDC
■ グラフィック色ふちどり色置換制御 ( 画面単位設定 )
表 20.2-19 にグラフィック色制御 ( コマンド 6-3):GFC ビットの , グラフィック色ふちど
り色置換制御を示します。
この制御では , グラフィック文字内の任意色 (GF3 ∼ GF0 ビット指定色 ) を行制御デー
タ設定 1( コマンド 3) で設定したふちどり色 (LF3 ∼ LF0) 内容に置換します。
表 20.2-19 グラフィック色ふちどり色置換制御 ( 画面単位設定 )
GFC
グラフィック色ふちどり色置換制御
0
指定色の置換をしない。
1
指定色をふちどり色で置換する。
■ ふちどり色置換色コード ( 画面単位設定 )
図 20.2-30 に , グラフィック色制御 ( コマンド 6-3):GF3 ∼ GF0 ビットの置換例を示しま
す。
図 20.2-30 ふちどり色置換色コード ( 画面単位設定 ) の置換例
GF3 ~ GF0:
置換色指定
LF3 ~ LF0 (コマンド3):
ふちどり色
ふちどり色に置換
GF=1
GF=0
フォントRAMの色情報で表示
指定された色が置換されて表示
<注意事項>
グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透
明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色ふちどり色置
換色と透明色制御 ( コマンド 6-2) の透明色 (TC3 ∼ TC0) が同一設定の場合は , ふちどり
色置換が優先されます。
グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON( 透
明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換するふちどり色 ( 行制御
データ設定 1( コマンド 3) のふちどり色 (LF3 ∼ LF0)) と透明色制御 ( コマンド 6-2) の透
明色 (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表示されます。
グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふちどり
色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色 (GC3 ∼ GC0 ビット ) 設定内
容とふちどり色置換色 (GF3 ∼ GF0 ビット ) 設定内容は , 異なる色を設定してください。
529
第 20 章 OSDC
■ グラフィック色文字置換制御 ( 画面単位設定 )
表 20.2-20 に , グラフィック色制御 ( コマンド 6-3):GCC ビットの , グラフィック色文字
置換制御を示します。
この制御では , グラフィック文字内の任意色 (GC3 ∼ GC0 ビット指定色 ) を文字データ
設定 1( コマンド 1) で設定した文字色 (MC3 ∼ MC0) 内容に置換します。
表 20.2-20 グラフィック色文字置換制御 ( 画面単位設定 )
GCC
グラフィック色文字色置換制御
0
指定色の置換をしない。
1
指定色を文字色で置換する。
■ 文字色置換色 ( 画面単位設定 )
図 20.2-31 に , グラフィック色制御 ( コマンド 6-3):GC3 ∼ GC0 ビットの置換例を示し
ます。
図 20.2-31 文字色置換色コード ( 画面単位設定 ) の置換例
GC3~GC0:
置換色指定
MC3~MC0(コマンド1):
文字色
GC = 1
文字色に置換
GC = 0
フォントRAMの色情報で表示
指定された色が置換されて表示
<注意事項>
グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透明色
制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色文字色置換色と透
明色制御 ( コマンド 6-2) の透明色 (TC3 ∼ TC0) が同一設定の場合は , 文字色置換が優先
されます。
グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透明色
制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換する文字色 ( 文字データ設定
1( コマンド 1) の文字色 (MC3 ∼ MC0)) と透明色制御 ( コマンド 6-2) の透明色 (TC3 ∼
TC0) が同一設定の場合は , 透明色となり , 下位層色が表示されます。
グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふちどり
色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色 (GC3 ∼ GC0 ビット ) 設定内
容とふちどり色置換色 (GF3 ∼ GF0 ビット ) 設定内容は , 異なる色コードを設定してくだ
さい。
530
第 20 章 OSDC
ブリンク制御
20.2.9.7
OSDCM203 では , 文字単位にブリンク ( 点滅 ) 表示の設定が可能です。また , ブリ
ンク表示では , 周期の設定 , デューティ比の設定も可能です。
■ ブリンク制御 ( 文字単位設定 )
表 20.2-21 に , 文字データ設定 2( コマンド 2):MBL ビット , MBB ビットの , ブリンク制
御を示します。
表 20.2-21 ブリンク制御 ( 文字単位設定 )
MBL
MBB
ブリンク制御
0
0
ブリンク OFF ( 通常の表示 )
1
0
文字ブリンク ON
0
1
文字背景ブリンク ON
1
1
文字+文字背景ブリンク ON
■ 表示例
図 20.2-32 から図 20.2-37 に背景色の違いによる , ブリンク表示例を示します。
図 20.2-32 背景なし(MM1, MM0=0, 0)のブリンク表示例
531
第 20 章 OSDC
図 20.2-33 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 1
図 20.2-34 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 2
MBL=1
MBB=0
図 20.2-35 ベタ表示 (MM1, MM0=0, 1) のブリンク表示例 3
532
第 20 章 OSDC
図 20.2-36 影付表示 (MM1, MM0=1, 1) のブリンク表示例
図 20.2-37 背景なしグラフィック (MM1, MM0=0, 0) のブリンク表示例
MBL=1
MBB=0
■ ブリンク表示の周期
表 20.2-22 に , 画面出力制御 2( コマンド 5-1):BT1, BT0 ビットの , ブリンク表示の周期
を示します。
表 20.2-22 ブリンク周期制御 ( 画面単位設定 )
BT1
BT0
ブリンク周期
0
0
16 × VSYNC
0
1
32 × VSYNC
1
0
48 × VSYNC
1
1
64 × VSYNC
533
第 20 章 OSDC
■ デューティ比の設定
表 20.2-23 に , 画面出力制御 2( コマンド 5-1):BD1, BD0 ビットの , ブリンクデューティ
制御を示します。
表 20.2-23 ブリンクデューティ 制御 ( 画面単位設定 )
534
BD1
BD0
( 点:滅 ) ブリンクデューティ
0
0
1:0 ( 常に表示 )
0
1
1:1
1
0
1:3
1
1
3:1
第 20 章 OSDC
透明 / 半透明制御
20.2.9.8
任意の表示色を透明 / 半透明制御により , その下位層色を表示できます。また , 半透
明制御においては , 半透明表示期間を出力します。これにより , 外部で半透明処理を
行うことが可能です。
■ 透明制御 ( 画面単位設定 )
表 20.2-24 に , 透明 ( コマンド 6-2):TCC ビットの , 透明制御を示します。
表 20.2-24 透明制御 ( 画面単位設定 )
TCC
透明制御
0
透明色制御を行わない。
1
透明色制御を行う。
図 20.2-38 に , 透明制御 ( コマンド 6-2):TC3 ∼ TC0 ビットの , 透明色の設定例を示しま
す ( 図中の■部分を透明色に設定した場合 )。
図 20.2-38 透明色設定例
535
第 20 章 OSDC
■ 半透明制御 ( 画面単位設定 )
表 20.2-25 に , 半透明制御 ( コマンド 6-2):HCC ビットの , 透明制御を示します。
表 20.2-25 透明制御 ( 画面単位設定 ) 」 透明制御 ( 画面単位設定 )
HCC
透明制御
0
半透明色制御を行わない。
1
半透明色制御を行う。
図 20.2-39 に , 半透明制御 ( コマンド 6-2):HC3 ∼ HC0 ビットの , 透明色の設定例を示し
ます
図 20.2-39 半透明色設定例
[半透明指定色]
画面背景色(又は同期元映像)
画面背景文字
メイン画面文字
文字背景
スプライト文字
HC=1
HC3~HC0:□(半透明指定色) HC=0
このラスタでの
VOB2端子の出力例
(正論理出力指定時)
VOB2
536
第 20 章 OSDC
文字背景表示
20.2.10
文字背景は 4 種 , 文字背景色は 16 色 , それぞれ文字単位で設定可能です。
■ 文字背景制御 ( 文字単位設定 )
表 20.2-26 に , 文字データ設定 1( コマンド 1):MM1, MM0 ビットの , 文字背景制御を示
します。
表 20.2-26 文字背景制御 ( 文字単位設定 )
MM1
MM0
文字背景
0
0
背景なし ( 非表示 )
0
1
ベタ背景
1
0
影付背景凹
1
1
影付背景凸
■ 影付背景ハイライト色 (16 色 , 画面単位設定 )
影付背景枠色制御 ( コマンド 6-1)BH3 ∼ BH0 に , 色コードを設定することにより影付
背景ハイライト色を設定できます。
■ 影付背景シャドウ色 (16 色 , 画面単位設定 )
影付背景枠色制御 ( コマンド 6-1)BS3 ∼ BS0 に , 色コードを設定することにより影付背
景シャドウ色を設定できます。
■ 文字背景色 (16 色 , 文字単位設定 )
文字データ設定 1( コマンド 1)MB3 ∼ MB0 に , 色コードを設定することにより文字背
景色を設定できます。
<注意事項>
OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。
DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの
読出しアドレスとなります。
537
第 20 章 OSDC
■ 表示例
図 20.2-40 に各背景制御時の表示例を示します。
図 20.2-40 文字背景表示の表示例
( 注意事項 ) 影付背景枠は自文字領域内の周辺 2 ドットに表示されます。
538
第 20 章 OSDC
影付背景右文字結合表示
20.2.10.1
影付背景右文字結合表示は , 自文字の影枠の右辺と次 ( 右隣接 ) 文字の左辺を非表示
とする機能です。これにより , 水平方向の複数文字単位の影付背景表示が可能とな
ります。
■ 影付背景右文字結合制御 ( 文字単位設定 )
表 20.2-27 に , 文字データ設定 2( コマンド 2):MR ビットの , 影付背景右文字結合制御を
示します。
表 20.2-27 影付背景右文字結合制御 ( 文字単位設定 )
MR
影付背景右文字結合制御
0
OFF
1
ON
■ 表示例
● 影付背景独立
図 20.2-41 に , 影付背景独立の表示例を示します。
図 20.2-41 影付背景独立表示例
(
= OFF)
(
= OFF)
(
= OFF)
539
第 20 章 OSDC
● 影付背景結合表示例
図 20.2-42 に , 影付背景結合の表示例を示します。
図 20.2-42 影付背景結合表示例
(
540
= ON)
(
= ON)
(
= OFF)
第 20 章 OSDC
影付背景下行結合表示 ( 文字背景 )
20.2.10.2
影付背景下行結合表示 , および文字背景拡張表示を行うことにより , 自行の文字影枠
下辺と次 ( 直下 ) 行文字の影枠上辺を非表示とすることができます ( 自行に , 影付背
景下行結合表示 , および文字背景拡張表示を行い , 次行に文字背景拡張表示を行う必
要があります )。
これにより , 垂直方向の複数文字単位の影付背景表示が可能となります。
■ 影付背景下行結合制御 ( 行単位設定 )
表 20.2-28 に , 行制御データ設定 2( コマンド 4):LD ビットの , 影付背景下行結合制御を
示します。
表 20.2-28 影付背景下行結合制御 ( 行単位設定 )
LD
影付背景下行結合制御
0
OFF
1
ON
■ 表示例
図 20.2-43 に , 影付背景行結合の表示例を示します。
図 20.2-43 影付背景行結合表示例
541
第 20 章 OSDC
<注意事項>
文字背景拡張表示が指定されないときは , 文字背景に対する影付背景下行結合表示指定は
無効となります ( 影付背景下行結合表示指定は行背景に対しては有効です )。
542
第 20 章 OSDC
文字背景拡張表示
20.2.10.3
文字背景拡張表示は , 文字背景を行間隔部に拡張して表示する機能です。
また , 文字背景の影付背景下行結合表示を行う場合は , この設定は必要です。
■ 文字背景拡張制御 ( 行単位設定 )
表 20.2-29 に , 行制御データ設定 2( コマンド 4):LE ビットの , 文字背景拡張制御を示し
ます。
表 20.2-29 文字背景拡張制御 ( 行単位設定 )
LE
文字背景拡張制御
0
OFF ( 通常表示 )
1
ON ( 拡張表示 )
■ 表示例
● 文字背景拡張 =OFF
図 20.2-44 に文字背景拡張 =OFF の場合の表示例を示します。
図 20.2-44 文字背景拡張 =OFF 表示例
543
第 20 章 OSDC
● 文字背景拡張 =ON
図 20.2-45 に文字背景拡張 =ON の場合の表示例を示します。
図 20.2-45 文字背景拡張 =ON 表示例
544
第 20 章 OSDC
行背景表示
20.2.11
行背景は , 文字の行領域とその左右領域 , およびその上下の行間隔領域の表示を制御
する機能です。
■ 行背景制御 ( 行単位設定 )
表 20.2-30 に , 行制御データ設定 2( コマンド 4):LM1, LM0 ビットの , 行背景制御を示し
ます。
表 20.2-30 行背景制御 ( 行単位設定 )
LM1
LM0
行背景
0
0
背景なし ( 非表示 )
0
1
ベタ背景
1
0
影付背景凹 *1
1
1
影付背景凸 *2
*1: 影付背景凹表示は , 自行領域内の上辺 2 ドットにハイライト色を表示し , 下辺各 2
ドットにシャドウ色を表示するものです。
*2: 影付背景凸表示は , 自行領域内の上辺 2 ドットにシャドウ色を表示し , 下辺各 2 ドッ
トにハイライト色を表示するものです。
■ 行背景色 (16 色 , 行単位設定 )
行制御データ設定 2( コマンド 4)L3 ∼ L0 に , 色コードを設定することにより行単位に
行背景色を設定できます。
■ 影付背景ハイライト色 (16 色 , 画面単位設定 )
影付背景枠色制御 ( コマンド 6-1):BH3 ∼ BH0 ビット
( 注 ) 文字背景の影付背景表示と共用しています。
■ 影付背景シャドウ色 (16 色 , 画面単位設定 )
影付背景枠色制御 ( コマンド 6-1):BS3 ∼ BS0 ビット
( 注 ) 文字背景の影付背景表示と共用しています。
<注意事項>
OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。
DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの
読出しアドレスとなります。
545
第 20 章 OSDC
■ 表示例
図 20.2-46 に , 行背景の表示例を示します。
図 20.2-46 行背景表示例
546
第 20 章 OSDC
影付背景下行結合表示 ( 行背景 )
20.2.11.1
影付背景下行結合は , 行背景の影付背景結合表示を可能とする機能です。
自行の行背景影枠の下ラインと , 次行の行背景影枠の上ラインが非表示となります。
■ 影付背景下行結合制御 ( 行単位設定 )
表 20.2-31 に , 行制御データ設定 2( コマンド 4):LD ビットの , 影付背景下行結合制御を
示します。
表 20.2-31 影付背景下行結合制御 ( 行単位設定 )
LD
影付背景下行結合制御
0
OFF
1
ON
■ 表示例
図 20.2-47 に , 影付背景下行結合の表示例を示します。
図 20.2-47 影付背景下行結合表示例
<注意事項>
影付背景下行結合表示は , 文字背景と行背景に対して同時に結合制御を行います。
ただし , 文字背景拡張表示 OFF の場合 , 影付背景文字の結合制御は行われません。
図 20.2-48 から図 20.2-52 に , 文字影付背景表示と行影付背景表示の組合せによる表示
例を示します。
547
第 20 章 OSDC
図 20.2-48 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 1)
548
第 20 章 OSDC
図 20.2-49 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 2)
549
第 20 章 OSDC
図 20.2-50 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 3)
550
第 20 章 OSDC
図 20.2-51 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 4)
551
第 20 章 OSDC
図 20.2-52 文字影付背景表示と行影付背景表示の組合せによる表示例 ( その 5)
552
第 20 章 OSDC
20.2.12
画面背景表示
画面背景表示には , 画面背景文字表示と画面背景色表示の 2 つの機能があります。
■ 画面背景表示
● 画面背景文字表示
同一構成の文字ブロックを , 横 2 文字×縦 2 文字の 4 文字で繰返し表示することによっ
て , 画面全体にグラフィック文字を表示します。
● 画面背景色表示
最下層出力として , 画面全体に背景色を表示します。
553
第 20 章 OSDC
画面背景文字表示
20.2.12.1
画面背景文字表示は , 最大横 2 文字×縦 2 文字ブロックを , 画面全体に繰返し表示す
る機能です。画面背景文字表示はグラフィック文字のみ可能です。
■ 画面背景文字表示の構成
図 20.2-53 に , 画面背景文字の表示例を示します。
図 20.2-53 画面背景文字表示例
■ 画面背景文字表示の制御
● 画面背景文字出力制御
表 20.2-32 に , 画面出力制御 1( コマンド 5-0):PDS ビットの , 画面背景文字出力制御を示
します。
表 20.2-32 画面背景文字出力制御
PDS
画面背景文字出力
0
OFF
1
ON
● 画面背景文字コード
画面背景文字制御 1( コマンド 7-1):PM10 ∼ PM0 ビット
PM1=0, PM0=0 を設定してください。
<注意事項>
画面背景文字は , グラフィック文字の L サイズ表示のみ使用可能です。
554
第 20 章 OSDC
● 画面背景文字垂直サイズ制御
表 20.2-33 に , 画面背景文字制御 4( コマンド 7-3):PH2 ∼ PH0 ビットの , 画面背景文字
垂直サイズ制御を示します。
表 20.2-33 画面背景文字垂直サイズ制御
PH2
PH1
PH0
画面背景文字垂直サイズ
0
0
0
18 ドット
0
0
1
20 ドット
0
1
0
22 ドット
0
1
1
24 ドット
1
0
0
26 ドット
1
0
1
28 ドット
1
1
0
30 ドット
1
1
1
32 ドット
● 画面背景文字構成制御
表 20.2-34 に , 画面背景文字制御 1( コマンド 7-1):PD1, PD0 ビットの , 画面背景文字構
成を示します。
表 20.2-34 画面背景文字構成制御
PD1
PD0
画面背景文字構成
0
0
1 文字構成
0
1
横 2 文字構成
1
0
縦 2 文字構成
1
1
縦 2 文字×横 2 文字構成
図 20.2-54 に画面背景文字の構成例を示します。
555
第 20 章 OSDC
図 20.2-54 画面背景文字構成例
556
第 20 章 OSDC
画面背景色表示
20.2.12.2
画面背景色は , 表示画面の最下位層出力として , 画面全体に背景色を表示する機能で
す。
■ 画面背景出力制御
表 20.2-35 に , 画面出力制御 1( コマンド 5-0):UDS ビットの , 画面背景出力制御を示し
ます。
表 20.2-35 画面背景出力制御
UDS
画面背景色出力
0
OFF
1
ON
■ 画面背景色制御
画面背景文字制御 4( コマンド 7-3)U3 ∼ U0 に , 色コードを設定することにより画面背
景色を設定できます。
<注意事項>
OSDC 表示色出力制御 (DCX) が "0" 設定の場合は , 設定した色コードが使用されます。
DCX が "1" 設定の場合は , 設定した色コードは 0/1 ビット反転した色コードがパレットの
読出しアドレスとなります。
557
第 20 章 OSDC
スプライト文字表示
20.2.13
スプライト文字は , 表示画面の最上位層に文字を表示する機能です。スプライト表
示は , グラフィック文字のみ表示可能です。
■ スプライト文字の構成
図 20.2-55 に , スプライト文字の表示例を示します。
図 20.2-55 スプライト文字表示例
■ スプライト文字表示制御
● スプライト文字出力制御
表 20.2-36 に , 画面出力制御 1( コマンド 5-0):SDS ビットの , スプライト文字出力制御を
示します。
表 20.2-36 スプライト文字出力制御
SDS
スプライト文字出力
0
OFF
1
ON
● スプライト文字コード
スプライト文字制御 1( コマンド 8-1):SM10 ∼ SM0 ビット。
SM1=0, SM0=0 を設定してください。
<注意事項>
スプライト文字は , グラフィック文字の L サイズの表示となります。
558
第 20 章 OSDC
● スプライト文字垂直表示位置制御
スプライト文字制御 3( コマンド 9-0):SY9 ∼ SY0 ビット
0 ∼ 2046 ドット , 2 ドット単位設定。
● スプライト文字水平表示位置制御
スプライト文字制御 4( コマンド 9-1):SX9 ∼ SX0 ビット
0 ∼ 2046 ドット , 2 ドット単位設定。
● スプライト文字垂直サイズ制御
表 20.2-37 に , スプライト文字制御 3( コマンド 8-2):SH2 ∼ SH0 ビットの , スプライト
文字垂直サイズ制御を示します。
表 20.2-37 スプライト文字垂直サイズ制御
SH2
SH1
SH0
スプライト文字垂直サイズ
0
0
0
18 ドット
0
0
1
20 ドット
0
1
0
22 ドット
0
1
1
24 ドット
1
0
0
26 ドット
1
0
1
28 ドット
1
1
0
30 ドット
1
1
1
32 ドット
● スプライト文字構成制御
表 20.2-38 に , スプライト文字制御 2( コマンド 8-1):SD1, SD0 ビットの , スプライト文
字構成制御を示します。また , 図 20.2-56 に , スプライト文字の構成例を示します。
表 20.2-38 スプライト文字構成制御
SD1
SD0
スプライト文字構成
0
0
1 文字構成
0
1
横 2 文字構成
1
0
縦 2 文字構成
1
1
縦 2 文字×横 2 文字構成
559
第 20 章 OSDC
図 20.2-56 スプライト文字構成例
560
第 20 章 OSDC
20.3
制御機能
この章では , OSDC の制御機能について説明します。
■ 制御機能
20.3.1 ドットクロック制御
20.3.2 同期信号入力
20.3.3 表示信号出力
20.3.4 表示期間制御
20.3.5 同期制御
20.3.6 割込み制御
20.3.7 OSDC 動作制御
561
第 20 章 OSDC
20.3.1
ドットクロック制御
ドットクロック制御は , 外部ドットクロック入力 , または内部 VCO 生成ドットク
ロック入力を選択可能です。コマンド 11-1, 11-2, 11-3, 17-0 によりドットクロック
制御が可能です。
■ 入力ドットクロック選択制御
表 20.3-1 に , ドットクロック制御 1( コマンド 17 ∼ 1):DCK ビットのドットクロック選
択制御を示します。内部 VCO 生成ドットクロックを使用する場合には , コマンド 111, 11-2, 11-3 の VCO 関連制御を設定後に本コマンドにより , 入力ドットクロックの選
択を行ってください。
表 20.3-1 ドットクロック選択制御
DCK
ドットクロック制御
0
外部ドットクロック入力 ( 初期状態 )
1
内部 VCO 生成ドットクロック入力
■ 外部ドットクロック入力
外部発振によるクロックを入力します。
このクロックは入力される水平同期信号に同期していることが前提となります。
■ 内部 VCO 生成ドットクロック入力
● ドットクロック回路構成
IC 内部の VCO 発生クロックを内部プリスケーラ等の制御によりドットクロックとし
て使用します。
図 20.3-1 にドットクロックの回路構成概略図を示します。
図 20.3-1 ドットクロック回路構成概略図
DHRS設定
HSYNC *
位相比較器
FH *
カウンタ
CPO *
VSEL[2:0]設定
VC設定
プリスケーラ
DP[1:0]設定
内部
ドットクロック
セレクタ
VCO
DK[11:0]設定
DCO設定
DOCKI *
* : HSYNC,FH,DOCKI,DCKO,CPO端子は外部端子です。
562
DCKO *
第 20 章 OSDC
● ドットクロックプリスケーラ制御
表 20.3-2 に , ドットクロック制御 1( コマンド 11-1):DP1, DP0 ビットの , ドットクロッ
クプリスケーラ制御を示します。
表 20.3-2 ドットクロックプリスケーラ制御
DP1
DP0
ドットクロックプリスケーラ構成
0
0
VCO 発振クロック÷ 1
0
1
VCO 発振クロック÷ 2
1
0
VCO 発振クロック÷ 4
1
1
VCO 発振クロック÷ 8
● 位相比較エッジ選択制御
表 20.3-3 に , ドットクロック制御 1( コマンド 11-1):DHRS ビットの , 位相比較エッジ選
択制御を示します。
表 20.3-3 位相比較エッジ選択制御
DHRS
位相比較エッジ選択制御
0
HSYNC(______) 立上りエッジ
1
HSYNC(______) 立下りエッジ
( 注意事項 ) 入力が , 負論理の場合。
● ドットクロック制御
ドットクロック制御 2( コマンド 11-2):DK10 ∼ DK0 ビットに , 水平同期幅に必要なク
ロック数を設定することにより , 入力された水平同期信号に同期したドットクロック
を生成します。
● VCO 発振制御
ドットクロック制御 3( コマンド 11-3):VC ビットの , VCO 発振制御を示します。
表 20.3-4 VCO 発振制御
VC
VCO 発振制御
0
VCO 発振停止状態
1
VCO 発振状態
563
第 20 章 OSDC
● 発振 VCO 選択制御
表 20.3-5 に , ドットクロック制御 3( コマンド 11-3):VSL[2:0] ビットの , VCO 選択制御
を示します。
表 20.3-5 発振 VCO 選択制御
VSL2
VSL1
VSL0
VCO 選択構成
VCO 発振保証周波数帯域
0
0
0
VCO1
20MHz ∼ 40MHz
0
0
1
VCO2
39MHz ∼ 53MHz
0
1
0
VCO3
51MHz ∼ 70MHz
0
1
1
VCO4
65MHz ∼ 91MHz
1
0
0
VCO5
90MHz ∼ 125MHz
1
0
1
VCO6
124MHz ∼ 160MHz
1
1
0
-
設定禁止
1
1
1
-
設定禁止
( 注意事項 )VCO の発振保証帯域は OSDC の動作保証周波数とは異なります。
● VCO 位相比較器制御
表 20.3-6 に , ドットクロック制御 3( コマンド 11 ∼ 3):PDE ビットの , 位相比較制御を
示します。
表 20.3-6 位相比較器制御
PDE
位相比較器制御
0
停止
1
通常動作
● VCO チャージポンプ制御
表 20.3-7 に , ドットクロック制御 3( コマンド 11 ∼ 3):CPE ビットの , チャージポンプ
制御を示します。
表 20.3-7 チャージポンプ制御
564
CPE
チャージポンプ制御
0
停止
1
通常動作
第 20 章 OSDC
● VCO チャージポンプ BIAS 電流制御
表 20.3-8 に , ドットクロック制御 3( コマンド 11 ∼ 3):CHG[1:0] ビットの , チャージポ
ンプ BIAS 電流制御を示します。
表 20.3-8 チャージポンプ BIAS 電流制御
CHG1
CHG0
チャージポンプ BIAS 電流制御
0
0
約 100 µA
0
1
約 500 µA
1
0
約 1mA
1
1
設定禁止
■ 出力ドットクロック制御
DCKO 端子のドットクロック出力を制御します。
表 20.3-9 に , ドットクロック制御 1( コマンド 11 ∼ 1):DCO ビットの出力ドットクロッ
ク選択制御を示します。
表 20.3-9 出力ドットクロック制御
DCO
出力ドットクロック制御
0
ドットクロック出力 OFF
1
ドットクロック出力 ON
565
第 20 章 OSDC
20.3.2
同期信号入力
ここでは , 同期信号入力における , 垂直同期検出 , および水平同期動作について示し
ます。
■ 同期信号入力
● 垂直同期制御
水平同期パルスの前縁または後縁時に垂直同期信号のレベルを検知し , その変化を検
出します。
● 水平同期制御
水平同期動作には , 前縁動作および後縁動作があり , 選択可能です。
● フィールド制御
インタレース表示を行う際のフィールド状態を , 垂直同期信号の立下りを監視するこ
とでフィールド状態を検出します。
566
第 20 章 OSDC
垂直同期制御
20.3.2.1
垂直同期検出は , 水平同期パルスの前縁または後縁時に垂直同期信号のレベルを検
知し , その変化を検出する機能です。画面の垂直表示位置はこの検出位置に依存し
ます。
■ 垂直同期検出
垂直同期動作は , 入出力端子制御 2( コマンド 13 ∼ 1) の垂直同期検出 HSYNC エッジ
選択制御 , および垂直同期信号入力論理制御の設定が必要です。
垂直同期検出 HSYNC エッジ選択制御は入力する水平同期信号と垂直同期信号の位相
をを考慮して設定します。また , VSYNC 端子入力論理制御は , 入力垂直同期信号の論
理に合わせて設定します。
表 20.3-10 , 表 20.3-11 に , 各制御を示します。
表 20.3-10 垂直同期検出 HSYNC エッジ選択
VHE
垂直同期検出 HSYNC エッジ
0
HSYNC 前縁にて垂直同期を検出
1
HSYNC 後縁にて垂直同期を検出
表 20.3-11 垂直同期信号入力論理制御
IVX
垂直同期信号入力論理
0
VSYNC 端子は負論理信号入力
1
VSYNC 端子は正論理信号入力
■ 垂直同期検出動作例
図 20.3-2 , 図 20.3-3 に , 垂直同期検出の動作例を示します。
図 20.3-2 垂直同期信号を水平同期前縁にて検出動作 (VHE=0, IVX=0, IHX=0)
図 20.3-3 垂直同期信号を水平同期後縁にて検出動作 (VHE=1, IVX=0, IHX=0)
567
第 20 章 OSDC
<注意事項>
垂直同期検出 HSYNC エッジ選択 (VHE) および水平同期動作エッジ選択 (HE) に次の設定
を行った場合にメイン画面, スプライト画面, 画面背景文字表示に以下の制限があります。
• 設定条件
- 垂直同期検出 HSYNC エッジ選択 : VHE=1 ( 水平同期信号後縁にて垂直同期信号検
出)
- 水平同期動作エッジ選択 :
HE=1 ( 水平同期前縁にて水平同期制御動作 )
• 制限事項
- メイン画面表示 :
垂直表示位置制御 ( コマンド 5-2):Y8 ∼ Y0 ビット設定を
"000H" とした場合に , メイン画面は表示不可能となります。
設定値 "001H" 以上とすることにより表示可能となります。
- スプライト画面表示 : スプライト文字垂直表示位置制御 ( コマンド 9-0):SY9 ∼ SY0
ビット設定を "000H" とした場合に , スプライト画面は表示不
可能となります。
設定値 "001H" 以上とすることで表示可能となります。
- 画面背景文字表示 :
568
表示不可能となります。
第 20 章 OSDC
水平同期制御
20.3.2.2
水平同期動作では , 水平同期前縁動作または後縁動作を選択可能です。
■ 水平同期動作
水平同期動作は , 入出力端子制御 2( コマンド 13-1) の水平同期動作エッジ選択 , および
水平同期信号入力論理制御の設定が必要です。
表 20.3-12 , 表 20.3-13 に水平同期動作エッジ選択を示します。
表 20.3-12 水平同期動作エッジ選択
HE
水平同期動作エッジ
0
後縁動作
1
前縁動作
表 20.3-13 水平同期信号入力論理制御
IHX
水平同期信号入力論理
0
HSYNC 端子は負論理信号入力
1
HSYNC 端子は正論理信号入力
■ 水平同期動作例
図 20.3-4 , 図 20.3-5 に , 水平同期の動作例を示します。
図 20.3-4 水平同期後縁動作 (HE=0, IHX=0)
図 20.3-5 水平同期前縁動作 (HE=1, IHX=0)
569
第 20 章 OSDC
<注意事項>
垂直同期検出 HSYNC エッジ選択 (VHE) および水平同期動作エッジ選択 (HE) に次の設定
を行った場合にメイン画面, スプライト画面, 画面背景文字表示に以下の制限があります。
• 設定条件
- 垂直同期検出 HSYNC エッジ選択 : VHE=1 ( 水平同期信号後縁にて垂直同期信号検
出)
- 水平同期動作エッジ選択 :
HE=1 ( 水平同期前縁にて水平同期制御動作 )
• 制限事項
- メイン画面表示 :
垂直表示位置制御 ( コマンド 5-2):Y8 ∼ Y0 ビット設定を
"000H" とした場合に , メイン画面は表示不可能となります。
設定値 "001H" 以上とすることにより表示可能となります。
- スプライト画面表示 : スプライト文字垂直表示位置制御 ( コマンド 9-0):SY9 ∼ SY0
ビット設定を "000H" とした場合に , スプライト画面は表示不
可能となります。
設定値 "001H" 以上とすることで表示可能となります。
- 画面背景文字表示 :
570
表示不可能となります。
第 20 章 OSDC
20.3.2.3
フィールド制御
インタレース表示 ( 入力同期信号がインタレースタイミングの表示 ) を行う場合に ,
入力垂直同期信号と入力水平同期信号の位相タイミングからフィールド判別が可能
です。このフィールド判別結果により , フォントの表示ラスタ ( 偶数 / 奇数 ) を選択
出力制御します。
ドットクロック外部入力動作でインタレース表示を行う場合には , コマンド 112(DK[10:0] ビット ) に水平同期信号期間のクロック数を設定する必要があります
ノンインタレース表示を行う場合は , 制御の必要はありません。
■ フィールド検出制御
同期制御 ( コマンド 11-0):IN ビットのインタレース設定時に , 入力される水平同期信号
および垂直同期信号の位相状態から , インタレース表示を行うためのフィールドを検
出します。
• フィールド判別制御は , 水平同期信号の同期パルス前縁から前後の H/4 の位置にお
いて , 垂直同期信号のレベルを観測し , 垂直同期パルス前縁を検出して行います。こ
の検出位置近傍に垂直同期信号のレベル変化がありますと , フィールド判別が正し
くできない場合があります。また , 垂直同期信号の同期パルス近傍に水平同期信号
の周期変化がありますと , 正しくフィールド判別できないことがあります。このよ
うな場合は , 外部回路にて水平同期信号を安定させてから入力してください。
• フィールド検出タイミング "H/4" は , ドットクロック制御 2( コマンド 11-2):DK10 ∼
DK0 ビットに設定する , 水平同期周期のクロック数を 1H として算出します。
<注意事項>
インタレースを行う場合 , 各フィールドに表示されるフォントの表示ラスタについては
「 20.3.5 同期制御 」を参照ください。
571
第 20 章 OSDC
図 20.3-6 に , インタレース表示を行うための垂直同期信号 (VSYNC 端子入力信号 ) と
水平同期信号 (HSYNC 端子入力信号 ) の入力タイミングを示します。
図 20.3-6 フィールド検出タイミング
[
]
H/4
[
H/4
]
H/4
H/4
<注意事項>
インタレースを行う場合 , 各フィールドに表示されるフォントの表示ラスタについては ,
「 20.3.5 同期制御 」を参照ください。
572
第 20 章 OSDC
■ フィールド補正制御
● フィールド補正制御
フィールド補正制御は , フィールド検出制御により生成したフィールド状態において
表示されるフォントの偶数ラスタ表示フィールドと奇数ラスタ表示フィールドの表示
状態を変換する機能です。インタレース表示出力にて , 各フィールドへの表示出力が正
しく行われない ( 出力フィールドが異なる ) 場合に , 表示出力を補正します。
同期制御 ( コマンド 11-0):FC ビットのフィールド補正制御により , 各フィールド出力の
交換が可能です。
表 20.3-14 に , 同期制御 ( コマンド 11-0) のフィールド 0 補正制御 (FC) を示します。
表 20.3-14 フィールド補正
FC
フィールド補正
0
補正なし
1
補正あり
573
第 20 章 OSDC
表示信号出力
20.3.3
以下に表示信号の出力タイミングを示します。
■ 表示信号出力タイミング
表示信号出力
表示期間信号
:VOB1
表示色コード
:RGB
半透明表示期間信号 :VOB2
■ 表示信号出力例 1
図 20.3-7 に , 文字色表示 ON, 文字背景色表示 ON, ふちどり色表示 ON 時の出力例を示
します。
図 20.3-7 文字色表示 ON, 文字背景色表示 ON, ふちどり色表示 ON 時の出力例
0 1 2 3 4 5 6 7 8 9 A B
RGB
VOB1
0 1 2 3 4 5 6 7 8 9 A B
(
)
<注意事項>
VOB1 出力が非アクティブ期間は , OSDC マクロはパレットアドレス 0H の色コードが出
力されます。(DCX=0 の場合 )
574
第 20 章 OSDC
■ 表示信号出力例 2
水平同期信号 (HSYNC), 垂直同期信号 (VSYNC) の入力による , 表示不可期間を示しま
す。
図 20.3-8 , 図 20.3-9 に , 同期信号入力時の表示不可期間を示します。
図 20.3-8 HSYNC 入力信号による表示出力マスク動作例
図 20.3-9 VSYNC 入力信号による表示出力マスク動作例
575
第 20 章 OSDC
表示期間制御
20.3.4
表示期間制御には , 次の 2 つがあります。
• 垂直表示期間制御
• 水平表示期間制御
また , この機能により水平 , および垂直ブランキング制御が可能です。
■ 垂直表示期間制御
垂直表示期間制御は , 垂直表示期間を内部生成し , 表示信号出力制御を行うものです。
垂直表示期間では , 垂直方向の表示出力を行います。コマンド設定により表示期間の設
定が可能です。
図 20.3-10 に垂直表示期間制御動作を示します。
図 20.3-10 垂直表示期間制御動作
垂直表示期間の開始および終了タイミングは , 下記のとおり設定できます。
垂直表示開始タイミング表示期間制御 1( コマンド 14-0):
DYS10 ∼ 0 ビット 0 ∼ 2047 Hsync 数 , 1Hsync 単位の設定です。
垂直表示終了タイミング表示期間制御 2( コマンド 14-1):
DYE10 ∼ 0 ビット 0 ∼ 2047 Hsync 数 , 1Hsync 単位の設定です。
<注意事項>
次の設定を行った場合には , 表示終了タイミング設定は無効となり , 同期信号が入力され
るまで表示出力可能期間となります。
DYS[10:0]( 垂直表示開始タイミング ) ≧ DYE[1:0]( 垂直表示終了タイミング )
576
第 20 章 OSDC
■ 水平表示期間制御
水平表示期間制御は , 水平表示期間を内部生成し , 表示信号出力制御を行うものです。
水平表示期間では , 水平方向の表示出力を行います。コマンド設定により表示期間の設
定が可能です。
入出力端子制御 ( コマンド 13-0) の水平同期動作エッジ選択 (HE ビット )
制御により , 次の 2 種の動作を行います。
• 水平同期動作エッジ後縁 (HE ビット =0) 時動作
• 水平同期動作エッジ前縁 (HE ビット =1) 時動作
図 20.3-11 に , 水平表示期間制御動作を示します。
図 20.3-11 水平表示期間制御動作
• 水平同期動作エッジ後縁 (HE ビット =0) 時動作
• 水平同期動作エッジ前縁 (HE ビット =1) 時動作
水平表示期間の開始および終了タイミングは , 下記のとおり設定できます。
水平表示開始タイミング表示期間制御 3( コマンド 14-2):
DXS10∼0ビット0∼2047 ドットクロック数, 1ドットクロック単位の設定です。
水平表示終了タイミング表示期間制御 4( コマンド 14-3):
DXE10∼0ビット0∼2047 ドットクロック数, 1ドットクロック単位の設定です。
<注意事項>
次の設定を行った場合には , 表示終了タイミング設定は無効となり , 同期信号が入力され
るまで表示出力可能期間となります。
DXS[10:0]( 水平表示開始タイミング ) ≧ DXE[1:0]( 水平表示終了タイミング )
577
第 20 章 OSDC
同期制御
20.3.5
同期制御 ( コマンド 11-0) のインタレース / ノンインタレース制御 (IN ビット ) 設定
により , インタレースおよびノンインタレース表示が可能です。
■ 同期制御 ( 縦拡大制御 )
表 20.3-15 に , 同期制御を示します。
表 20.3-15 同期制御
IN
縦拡大制御
0
インタレース動作
1
ノンインタレース動作
■ 表示例
図 20.3-12 に , フォント原画データを示します。
図 20.3-12 フォント原画データ
24
32
No.
0
1
2
3
4
5
6
30
31
578
第 20 章 OSDC
インタレース表示例 (IN=0 設定 ) を図 20.3-13 に示します。
インタレース表示は ,「20.3.2.3 フィールド制御」により検出されるフィールド A およ
びフィールド B に , フォント原画データの異なるドットを表示することにより表示画
像を構成します。
図 20.3-13 インタレース表示例
No.
0
No.
n
n+1
2
n+2
4
n+3
6
n+15
30
No.
No.
n
1
n+1
3
n+2
5
n+3
n+15
30
(
)n
<注意事項>
インタレース表示において表示するフォントデータの表示ラスタが反転する場合には ,
フィールド補正制御 ( コマンド 11-0):FC ビットの制御により補正が可能です。
579
第 20 章 OSDC
ノンインタレース表示例 (IN=1 設定 ) を図 20.3-14 に示します。
ノンインタレース表示は , フォント原画データを順次出力することで画像を構成しま
す。
図 20.3-14 ノンインタレース表示例
No.
n
n+1
n+2
n+3
n+4
n+5
n+6
No.
0
1
2
3
4
5
6
n+30
n+31
30
31
(
580
)n
第 20 章 OSDC
20.3.6
割込み制御
OSDC 制御割込みには次の 3 種の要因があります。
• 行表示終了検出
• 垂直同期信号検出
• VRAM フィル終了検出
CPU への割込み要求は , 3 種の OR となります。
■ 割込み制御
割込み制御は , 内部動作状態により発生する割込みを制御するものです。
割込み制御 ( コマンド 15-0) の , 割込み要因フラグ , および割込み発生制御により割込
み制御を行います。
● 割込み要因フラグ
割込み要因フラグは , 要因が発生した場合 "1" が設定されます。
一度セットされたフラグをクリアするには , 要因フラグに "0" を書込みます。
割込み要因フラグには , 次の 3 種のフラグがあります。
• 行表示終了フラグ ( コマンド 15-0:LIF ビット )
• 垂直同期信号入力フラグ ( コマンド 15-0:VIF ビット )
• VRAM フィル終了フラグ ( コマンド 15-0:FIF ビット )
行表示終了フラグ
図 20.3-15 に示す , 各行の最終ラスタおよび先頭行開始直前ラスタ部分の行終了検
出ラインの表示終了が , 行表示終了要因となります。
581
第 20 章 OSDC
図 20.3-15 行表示終了検出動作
● 垂直同期信号入力フラグ
内部垂直同期信号の立下りを検出します。
図 20.3-16 に , 垂直同期信号検出ポイントが垂直同期信号入力要因となります。
図 20.3-16 垂直同期信号検出動作
● VRAM フィル終了フラグ
VRAM フィルコマンド ( コマンド 0-2) により起動した VRAM 設定が終了した場合に
VRAM フィル終了要因となります。
582
第 20 章 OSDC
● 割込み許可制御
割込み発生を制御します。
割込み発生制御には , 次の 3 種の割込みがあります。
・行表示終了割込み ( コマンド 15-0:LIE ビット )
表 20.3-16 に行表示割込み制御を示します。
表 20.3-16 行表示割込み制御
LIE
行表示終了割込み
0
割込みを禁止
1
割込みを許可
・垂直同期信号入力割込み ( コマンド 15-0:VIE ビット )
表 20.3-17 に垂直同期信号入力割込み制御を示します。
表 20.3-17 垂直同期信号入力割込み制御
VIE
垂直同期信号入力割込み
0
割込みを禁止
1
割込みを許可
・VRAM フィル終了割込み ( コマンド 15-0:FIE ビット )
表 20.3-18 に VRAM フィル終了割込み制御を示します。
表 20.3-18 VRAM フィル終了割込み制御
FIE
VRAM フィル終了割込み
0
割込みを禁止
1
割込みを許可
583
第 20 章 OSDC
20.3.7
OSDC 動作制御
OSDC の動作制御を行います。
■ OSDC 動作制御
OSDC の制御を行うには , 予め必要に合わせて入力ドットクロック選択設定 , DAC 設
定 , 出力端子設定を行い , OSDC をアクティブ状態にする必要があります。
● 入力ドットクロック選択制御
表 20.3-19 に , OSDC 動作制御 1( コマンド 17-0):DCK ビットの , 入力ドットクロック制
御を示します。
VCO 発振クロックを選択する場合には , クロック制御 1, クロック制御 2, クロック制御
3 の VCO 関連の設定を行ってから本ビットを有効にしてください。
表 20.3-19 入力ドットクロック選択制御
DCK
ドットクロック制御
0
外部ドットクロック入力
1
内部 VCO 生成ドットクロック入力
● DAC 制御
表 20.3-20 に , OSDC 動作制御 1( コマンド 17-0):DPD ビットの , DAC 制御を示します。
表 20.3-20 DAC 制御
584
DPD
DAC 制御
0
停止状態
1
動作状態
第 20 章 OSDC
● 出力端子制御
表 20.3-21 に , OSDC 動作制御 2( コマンド 17 ∼ 1):ANO, DGO, FHO ビットの , 出力端子
制御を示します。
表 20.3-21 出力端子制御
ANO
アナログ RGB 出力端子制御
0
アナログ RGB 出力 OFF
1
アナログ RGB 出力 ON
DGO
デジタル RGB 端子出力制御
0
デジタル RGB 出力 OFF
1
デジタル RGB 出力 ON
FHO
FH 端子出力制御
0
FH 端子出力 OFF
1
FH 端子出力 ON
● OSDC アクティブ制御
表 20.3-22 に , OSDC 動作制御 2( コマンド 17 ∼ 1):OSDEN ビットの , OSDC アクティブ
制御を示します。
表 20.3-22 OSDC アクティブ制御
OSDEN
OSDC アクティブ制御
0
OSDC 使用不可能状態
1
OSDC 使用可能状態
585
第 20 章 OSDC
20.4
表示制御コマンド
この章では , OSDC の表示制御コマンドについて説明します。
■ 表示制御コマンド
20.4.1 表示制御コマンド一覧
20.4.2 VRAM 書込みアドレス設定 ( コマンド 0)
20.4.3 文字データ設定 ( コマンド 1・コマンド 2)
20.4.4 行制御データ設定 ( コマンド 3・コマンド 4)
20.4.5 画面出力制御 ( コマンド 5-00・コマンド 5-1)
20.4.6 表示位置制御 ( コマンド 5-2・コマンド 5-3)
20.4.7 文字垂直サイズ制御 ( コマンド 6-0)
20.4.8 影付背景枠色制御 ( コマンド 6-1)
20.4.9 透明色制御 ( コマンド 6-2)
20.4.10 グラフィック色制御 ( コマンド 6-3)
20.4.11 画面背景文字制御 ( コマンド 7-1・コマンド 7-3)
20.4.12 スプライト文字制御 ( コマンド 8-1・コマンド 8-2・コマンド 9-0・コマンド 9-1)
20.4.13 同期制御 ( コマンド 11-0)
20.4.14 ドットクロック制御 ( コマンド 11-1, 11-2, 11-3)
20.4.15 入出力端子制御 ( コマンド 13-0・コマンド 13-1)
20.4.16 表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3)
20.4.17 割込み制御 ( コマンド 15-0)
20.4.18 パレット制御 ( コマンド 16-0 ∼コマンド 16-15)
20.4.19 OSDC 動作制御 ( コマンド 17-0, コマンド 17-1)
586
第 20 章 OSDC
表示制御コマンド一覧
20.4.1
表示制御コマンドを示します。表 20.4-1 に , 表示制御コマンドの一覧を示します。
■ 表示制御コマンド一覧
表 20.4-1 表示制御コマンド一覧
アドレス
下位 8bit
データ
OSDC
コマンド
No.
15
14
13
12
11
AY3
AY2
AY1
AY0
MBL
MBB
MS1
MS0
MM1
M10
M9
00
0
FL
02
1
MIT
MUL
04
2
MR
MG
06
3
LHS
08
4
LDS
LGY1
10
9
8
機能
7
6
5
4
3
2
AX5
MM0
MB3
MB2
MB1
M8
M7
M6
M5
M4
1
0
AX4
AX3
AX2
AX1
AX0
MB0
MC3
MC2
MC1
MC0
文字データ設定 1
M3
M2
M1
M0
文字データ設定 2
VRAM アドレス
LW2
LW1
LW0
LFD
LFC
LFB
LFA
LF3
LF2
LF1
LF0
行制御データ設定 1
LGY0
LGX1
LGX0
LD
LE
LM1
LM0
L3
L2
L1
L0
行制御データ設定 2
SDS
UDS
PDS
DSP
画面出力制御 1
FM1
FM0
BT1
BT0
BD1
BD0
画面出力制御 2
0A
5-00
0C
5-1
0E
5-2
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
垂直表示位置制御
10
5-3
X8
X7
X6
X5
X4
X3
X2
X1
X0
水平表示位置制御
12
6-0
HB2
HB1
HB0
HA2
HA1
HA0
文字垂直サイズ制御
14
6-1
BH3
BH2
BH1
BH0
BS3
BS2
BS1
BS0
影付背景色制御
16
6-2
TCC
HCC
TC3
TC2
TC1
TC0
HC3
HC2
HC1
HC0
透明 / 半透明色制御
18
6-3
GFC
GCC
GF3
GF2
GF1
GF0
GC3
GC2
GC1
GC0
グラフィック色制御
PM9
PM8
PM7
1A
7-1
1C
7-3
1E
8-1
20
8-2
PCUT
SCUT
PD1
SD1
PD0
PM10
SD0
SM10
SM9
SM8
SM7
SBL
PM6
PM5
PM4
PM3
PM2
PM1
PM0
画面背景文字制御 1
PH2
PH1
PH0
U3
U2
U1
U0
画面背景文字制御 2
SM3
SM2
SM1
SM0
SM6
SM5
SM4
SH2
SH1
SH0
スプライト文字制御 1
スプライト文字制御 2
22
9-0
SY9
SY8
SY7
SY6
SY5
SY4
SY3
SY2
SY1
SY0
スプライト文字制御 3
24
9-1
SX9
SX8
SX7
SX6
SX5
SX4
SX3
SX2
SX1
SX0
スプライト文字制御 4
26
11-0
28
11-1
DHRS
DCO
クロック制御 1
2A
11-2
クロック制御 2
2C
11-3
2E
13-0
30
13-1
32
14-0
IN
DK11
DK10
DYS10
DK9
DYS9
DK8
S 同期制御
FC
DR1
DR0
DP1
DP0
DK7
DK6
DK5
DK4
DK3
DK2
DK1
DK0
VC
VSL2
VSL1
VSL0
CHG1
CHG0
CPE
PDE
クロック制御 3
OHX
OBX
OCX
入出力端子制御 1
DYS0
表示期間制御 1
VHE
HE
DYS8
DYS7
DYS6
DYS5
DYS4
DYS3
IHX
IVX
DYS2
DYS1
入出力端子制御 2
34
14-1
DYE10
DYE9
DYE8
DYE7
DYE6
DYE5
DYE4
DYE3
DYE2
DYE1
DYE0
表示期間制御 2
36
14-2
DXE10
DXE9
DXE8
DXE7
DXE6
DXE5
DXE4
DXE3
DXE2
DXE1
DXE0
表示期間制御 3
DXE7
DXE6
DXE5
DXE4
DXE3
DXE2
DXE1
DXE0
表示期間制御 4
FIE
LIE
VIE
割込み制御
38
14-3
DXE10
DXE9
DXE8
3A
15-0
FIF
LIF
VIF
3C
16-0
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 0
3E
16-1
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 1
40
16-2
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 2
42
16-3
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 3
44
16-4
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 4
46
16-5
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 5
48
16-6
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 6
4A
16-7
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 7
4C
16-8
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 8
4E
16-9
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 9
50
16-10
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 10
52
16-11
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 11
54
16-12
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 12
56
16-13
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 13
58
16-14
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 14
5A
16-15
PLR2
PLR1
PLR0
PLG2
PLG1
PLG0
PLB2
PLB1
PLB0
Palette 15
5C
17-0
DCK
DOF
OSDC 動作制御 1
5E
17-1
OSDEN
ANO
OSDC 動作制御 2
FHO
DGO
587
第 20 章 OSDC
( 注意事項 )
リセット入力 (RESET 端子への High レベル信号入力 ) により , 画面出力制御 1A の SDS,
UDS, PDS, DSP 各ビット , および入出力端子制御 1 の OHX, OBX, OCX ビットは "0" に
初期化されます。その他のレジスタビット , および VRAM 内容は不定です。
リセット入力後は , すべてのレジスタビットおよび全 VRAM( 文字データおよび行制御
データ ) の設定を行ってください。
588
第 20 章 OSDC
VRAM 書込みアドレス設定 ( コマンド 0)
20.4.2
コマンド 0 は , VRAM の書込みアドレスの設定 , および VRAM フィルの指定をする
コマンドです。
■ コマンド 0(VRAM 書込みアドレス設定 )
● アドレス : 00H
● 形式
bit 15
14
13
12
11
10
FL
0
0
0
AY3
AY2
AY3~AY0: 行アドレス (0~17H)
AX5~AX0: 列アドレス (0~27H)
9
8
AY1 AY0
7
0
6
0
5
4
3
2
1
0
AX5 AX4 AX3 AX2 AX1 AX0
FL: VRAM フィル指定 (0: OFF, 1: ON)
● 機能
VRAM の書込みアドレスの設定 , および VRAM フィルの指定を行います。
文字データ設定 ( コマンド 1, 2 発行 ) 前の行 / 列アドレス設定と , 行制御データ設定 (
コマンド 3, 4 発行 ) 前の行アドレス設定を行います。
VRAM フィルは文字データ設定 2( コマンド 2) の実行により起動します。
● 補足説明
• 通常の書込み (1 文字データ , または 1 行制御データの書込み ) では , VRAM フィル
指定を OFF(FL=0) 設定としてください。
• 本コマンド発行により設定した VRAM 書込みアドレスは , 文字データ設定 2( コマ
ンド 2) の実行後に自動的にインクリメントされます ( 最終列の次は次行先頭列へ ,
最終行最終列の次は先頭行先頭列へインクリメントされます )。
• VRAM フィル機能とは , コマンド 0 で指定した行・列アドレスから , 最終行 (24 行 )・
最終列 (40 列 ) までの文字 VRAM に , 文字データ設定 1, 2( コマンド 1, 2) で指定し
た同一文字データを設定する機能です。VRAM フィルは , 文字データ設定 2( コマン
ド 2) の発行により起動します。実行終了後は VRAM フィル割込みの発生が可能で
す。VRAM フィル実行中は , コマンド 1-4 の発行を行わないでください。
( 注意事項 )
• 行制御データ設定 ( コマンド 3, 4 発行 ) 時は , 列アドレス (AX5 ∼ AX0) は無視されま
す。また , 行制御データ設定後に自動アドレスインクリメントは行いません。
• VRAM フィル指定は , 文字データ設定 ( コマンド 1, 2) 時にのみ有効です。
589
第 20 章 OSDC
文字データ設定 ( コマンド 1・コマンド 2)
20.4.3
コマンド 1 で文字データを設定し , コマンド 2 を実行することによって VRAM 設定
を行い , 画面上に反映します。
■ コマンド 1( 文字データ設定 1)
● アドレス : 02H
● 形式
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
MIT MUL MBL MBB MS1 MS0 MM1 MM0 MB3 MB2 MB1 MB0 MC3 MC2 MC1 MC0
MC3~MC0:
文字色
(16色)
MB3~MB0:
文字背景色
(16色)
MM1, MM0:
文字背景制御
(0, 0: OFF)
(0, 1: ベタ表示)
(1, 0: 影付き凹表示)
(1, 1: 影付き凸表示)
MBL, MBB:
Blinking control
(0, 0: ブリンクOFF)
(0, 1: ブリンクOFF)
(1, 0: 文字/緑取りドットブリンク)
(1, 1: 文字/緑取りドット/文字背景ブリンク)
MIT:
イタリック制御
(0: イタリックOFF)
(1: イタリックN)
MS1, MS0:
MUL:
文字水平サイズ制御
0, 0: 12ドット
0, 1: 18ドット
1, 0: 24ドット
1, 1: -
アンダライン制御
(0: アンダライン OFF)
(1: アンダライン ON)
● 機能
文字データを設定します。文字データ設定 2( コマンド 2) を実行することにより , VRAM
設定を行い , 画面上に反映します。
● 補足説明
• 文字色 , 文字背景色 , 文字背景種 , 文字水平サイズ , イタリック表示 , アンダライン
表示は , それぞれ文字単位に自由に組み合わせて設定を行うことができます。
• 影付背景表示は , 文字データ設定 2( コマンド 2) の MR ビット , および行制御データ
設定 2( コマンド 4) の LD, LE ビットの組合せにより , 上下左右の結合表示を行うこ
とが可能です。
• 影付背景の枠色の設定は , 影付背景枠色制御 ( コマンド 6-1) で行います。
• ブリンク制御を ON(MBL=1) 設定することにより , 画面出力制御 2( コマンド 5-1) の
BT1, BT0, BD1, BD0 ビットの設定内容に従って , ブリンク ( 点滅 ) 表示を行います。
590
第 20 章 OSDC
■ コマンド 2( 文字データ設定 2)
● アドレス : 04H
● 形式
bit 15
14
MR
MG
13
12
0
0
11
0
10
9
8
7
6
5
4
3
2
1
0
M10
M9
M8
M7
M6
M5
M4
M3
M2
M1
M0
影付き背景右文字結合制御
(0: 右結合しない)
(1: 右結合する)
MR:
MG: 文字/グラフィック文字制御
(0: 文字, 1: グラフィック文字)
M10~M0: 文字コード
(000H~6FFH: 1,792文字種)
● 機能
VRAM 書込みアドレス設定 ( コマンド 0) で指定した VRAM に , 文字データ設定 1( コ
マンド 1) で設定した文字データと共に本設定データを書き込みます。
本コマンド実行後に VRAM 書込みアドレスは自動インクリメントされます。
● 補足説明
影付背景右文字結合制御ビット (MR) は , 文字データ設定 1( コマンド 1) の影付背景指
定 (MM1=1 設定 ) を行った文字に対してのみ作用します。
( 注意事項 )
電源投入時には , VRAM 内容は不定となりますので , 必ず表示開始前に全 VRAM データの
設定を行ってください。
591
第 20 章 OSDC
行制御データ設定 ( コマンド 3・コマンド 4)
20.4.4
コマンド 3 で行制御データを設定し , コマンド 4 の実行によって行 VRAM 設定を行
い , 画面に反映します。
■ コマンド 3( 行制御データ設定 1)
● アドレス : 06H
● 形式
bit 15
0
14
13
12
11
0
0
LHS
0
10
9
8
LW2 LW1 LW0
LHS:
行文字垂直サイズ種制御
(0: 文字垂直サイズA)
(1: 文字垂直サイズB)
LW2~LW0:
行間隔制御
(0~14ドット, 2ドット単位)
LF3~LF0:
ふちどり色
(16色)
7
6
LFD
LFC
5
4
3
2
1
0
LFB
LFA
LF3
LF2
LF1
LF0
LFD, LFC:
縁取り出力制御
(0, 0: 全OFF)
(0, 1: 文字背景なし文字のみふちどりON)
(1, 0: 文字背景なし/ぺタ文字のみふちどりON)
(1, 1: ふちどり出力ON)
LFB, LFA:
ふちり制御
(0, 0: ふちどりOFF)
(0, 1: 右ふちどり)
(1, 0: 左ふちどり)
(1, 1: 左右ふちどり)
● 機能
行制御データを設定します。行制御データ設定 2( コマンド 4) の実行によって行 VRAM
設定を行い , 画面に反映します。
● 補足説明
行文字垂直サイズ種制御 (LHS ビット ) で選択する文字垂直サイズ A/B の内容の設定は ,
文字垂直サイズ制御 ( コマンド 6-0) にて行います。
ふちどり形式の設定は , 画面出力制御 2( コマンド 5-1) のふちどり形式制御 (FM1, FM0
ビット ) にて行います。
592
第 20 章 OSDC
■ コマンド 4( 行制御データ設定 2)
● アドレス : 08H
● 形式
bit 15
14
13
0
0
0
12
11
10
9
8
LDS LGY1 LGY0 LGX1 LGX0
7
6
5
4
3
2
1
0
LD
LE
LM1
LM0
L3
L2
L1
L0
行文字出力制御
(0: OFF, 1: ON)
LE:
文字背景拡張制御
(0: 通常, 1: 拡張)
LGY1, LGY0: 行縦拡大制御
(0, 0: 標準)
(0, 1: 縦2倍)
(1, 0: 設定禁止)
(1, 1: 縦4倍)
LD:
影付き背景下行結合制御
(0: 独立, 1: 下行結合)
(1: 画面背景文字表示動作停止)
LDS:
LGX1, LGX0:
行横拡大制御
(0, 0: 標準)
(0, 1: 縦2倍)
(1, 0: 設定禁止)
(1, 1: 縦4倍)
LM1, LM0: 行背景制御
(0, 0: OFF)
(0, 1: ベタ表示)
(1, 0: 影付き凹表示)
(1, 1: 影付き凸表示)
L3~L0:
行背景色
(16色)
● 機能
VRAM 書込みアドレス設定 ( コマンド 0) で指定した行アドレスの行 VRAM に , 行制御
データ設定 1( コマンド 3) で設定した行制御データと共にこの設定データを書き込みま
す。
● 補足説明
影付背景下行結合制御 (LD ビット ) は , 文字影付背景と行影付背景に対して作用しま
す。詳細は , 「20.2.11.1 影付背景下行結合表示 ( 行背景 )」を参照してください。
( 注意事項 )
• 電源投入時には , VRAM 内容は不定となりますので , 必ず表示開始前に全 VRAM デー
タの設定を行ってください。
• このコマンド発行による , VRAM 書込みアドレスの自動インクリメントは行われませ
ん。行制御データを設定する行ごとに , VRAM 書込みアドレス設定 ( コマンド 0) が必
要です。
593
第 20 章 OSDC
画面出力制御 ( コマンド 5-00・コマンド 5-1)
20.4.5
コマンド 5-00 およびコマンド 5-1 は , 画面表示出力を制御するコマンドです。
■ コマンド 5-00( 画面出力制御 1A)
● アドレス : 0AH
● 形式
bit 15
14
13
12
11
10
0
0
0
0
0
0
9
0
8
0
スプライト文字出力制御
(0: OFF, 1: ON)
SDS:
UDS: 画面背景出力制御
(0: OFF, 1: ON)
7
6
5
4
3
SDS UDS PDS DSP
2
0
1
0
0
0
0
PDS:
画面背景文字出力制御
(0: OFF, 1: ON)
DSP:
表示出力制御
(文字+ふちどり+文字背景+行背景の制御)
(0: OFF, 1: ON)
● 機能
画面表示出力の制御を行います。
■ コマンド 5-1( 画面出力制御 2)
● アドレス : 0CH
● 形式
bit 15
14
13
12
11
10
0
0
0
0
0
0
9
8
7
6
5
4
FM1 FM0 BT1 BT0 BD1 BD0
BT1, BT0: ブリンク周期制御
(0, 0 : 16V)
(0, 1 : 32V)
(1, 0 : 48V)
(1, 1 : 64V)
3
2
1
0
0
0
0
0
FM1, FM0: ふちどり形式制御
(0, 0: 横ふちどり1ドット)
(0, 1: 横ふちどり2ドット)
(1, 0: パターン背景1)
(1, 1: パターン背景2)
BD1, BD0: ブリンクデューティ制御
(0, 0: 点:滅 = 1:0, 常に表示)
(0, 1: 点:滅 = 1:1)
(1, 0: 点:滅 = 1:3)
(1, 1: 点:滅 = 3:1)
● 機能
画面表示出力の制御を行います。
● 補足説明
ブリンク周期制御およびブリンクデューティ制御は , 文字データ設定 2( コマンド 2) で
ブリンク制御指定 (MBL=1 設定 ) を行った文字 , およびスプライト文字制御 2( コマン
ド 8-2) でスプライト文字ブリンク制御指定 (SBL=1 設定 ) を行ったスプライト文字に対
して制御を行います。
594
第 20 章 OSDC
表示位置制御 ( コマンド 5-2・コマンド 5-3)
20.4.6
コマンド 5-2 は垂直 , コマンド 5-3 は水平の画面の表示位置を制御するコマンドで
す。
■ コマンド 5-2( 垂直表示位置制御 )
● アドレス : 0EH
● 形式
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
Y8
Y7
Y6
Y5
Y4
Y3
Y2
Y1
Y0
Y8~Y0: 垂直表示位置制御
(0~2044, 4ドット単位)
● 機能
メイン画面の垂直表示位置の制御を行います。
■ コマンド 5-3( 水平表示位置制御 )
● アドレス : 10H
● 形式
bit 15
0
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
X8
X7
X6
X5
X4
X3
X2
X1
X0
X8~X0: 水平表示位置制御
(0~2044, 4ドット単位)
● 機能
メイン画面の水平表示位置の制御を行います。
595
第 20 章 OSDC
文字垂直サイズ制御 ( コマンド 6-0)
20.4.7
コマンド 6-0 は , 文字の表示垂直サイズ A, B を制御するコマンドです。
■ コマンド 6-0( 文字垂直サイズ制御 )
● アドレス : 12H
● 形式
bit 15
0
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
HB2
HB1
HB0
0
2
HA2
1
0
HA1
HA0
HB2~HB0: 文字垂直サイズB制御
(18~32ドット, 2ドット単位)
HA2~HA0: 文字垂直サイズA制御
(18~32ドット, 2ドット単位)
● 機能
文字の表示垂直サイズ A, B を制御します。
● 補足説明
メイン画面は行単位に文字垂直サイズ A/B を選択して表示できます。行データ設定 1
( コマンド 3) の行文字垂直サイズ種制御 (LHS ビット ) で文字垂直サイズ種 A/B を選択
し , このコマンドで A/B それぞれの文字表示垂直ドット数を設定します。
596
第 20 章 OSDC
影付背景枠色制御 ( コマンド 6-1)
20.4.8
コマンド 6-1 は , 影付背景の枠色を制御するコマンドです。
■ コマンド 6-1( 影付背景枠色制御 )
● アドレス : 14H
● 形式
bit 15
0
14
13
12
11
10
9
8
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
BH3
BH2
BH1
BH0
BS3
BS2
BS1
BS0
BH3~BH0: 影付き背景枠ハイライト色
(16色)
BS3~BS0: 影付き背景枠シャドウ色
(16色)
● 機能
影付背景の枠色の制御を行います。
● 補足説明
• 文字データ設定 1( コマンド 1) で影付文字背景指定 (MM1=1 設定 ) した文字 , および
行制御データ設定 2( コマンド 4) で影付行背景指定 (LM1=1 設定 ) をした行について ,
影付背景の枠色を設定します。
• 表 20.4-2 に , 影付背景枠ハイライト色およびシャドウ色の表示部位を示します。
表 20.4-2 影付背景枠ハイライト色およびシャドウ色の表示部位
文字背景
行背景
影付背景凹表示
影付背景凸表示
影付背景凹表示
影付背景凸表示
影付背景枠ハイライト色
下辺 , 右辺
上辺 , 左辺
下辺
上辺
影付背景枠シャドウ色
上辺 , 左辺
下辺 , 右辺
上辺
下辺
597
第 20 章 OSDC
透明色制御 ( コマンド 6-2)
20.4.9
コマンド 6-2 は , 透明色を制御するコマンドです。
■ コマンド 6-2( 透明色制御 )
● アドレス : 16H
● 形式
bit 15
14
13
12
11
10
0
0
0
0
0
0
9
8
7
TCC HCC TC3
6
5
4
3
2
1
0
TC2
TC1
TC0
HC3
HC2
HC1
HC0
TCC: 透明色制御
(0: OFF, 1: ON)
TC3~TC0: 透明色コード
(16色)
HCC: 半透明色制御
(0: OFF, 1: ON)
HC3~HC0: 半透明色コード
(16色)
● 機能
透明色および半透明色の制御を行います。
● 補足説明
• 透明色コード (TC3 ∼ TC0) に任意色コードを設定し , かつ透明色制御 ON(TCC=1) 設
定を行うことにより , 任意の色表示部分を非表示とすることができます。その任意
色部分は下位層の表示出力を行います。
• 半透明色コード(HC3∼HC0)に任意色コードを設定し,かつ半透明色制御ON(HCC=1)
設定を行うことにより , 任意の色表示部分を非表示とし , 同時に非表示期間を VOB2
端子より出力できます。その任意色部分は下位層の表示出力を行います。
( 注意事項 )
VOB2 端子からの半透明期間信号は , メイン画面の文字・縁取り・グラフィック以外のエ
リアに対して行われます。
598
第 20 章 OSDC
20.4.10
グラフィック色制御 ( コマンド 6-3)
コマンド 6-3 は , グラフィック文字の任意指定色を文字色 , またはふちどり色に置換
表示するコマンドです。
■ コマンド 6-3( グラフィック色制御 )
● アドレス : 18H
● 形式
bit 15
0
14
13
12
11
10
0
0
0
0
0
9
8
7
6
5
4
3
GFC GCC GF3 GF2 GF1 GF0 GC3
2
1
0
GC2 GC1 GC0
GFC: グラフィック色ふちどり色置換制御
(0: OFF, 1: ON)
GF3~GF0: ふちどり色置換色コード
(16色)
GCC: グラフィック色文字色置換制御
(0: OFF, 1: ON)
GC3~GC0: 文字色置換色コード
(16色)
● 機能
グラフィック文字内の任意色を , 文字色 , またはふちどり色に置換表示します。
● 補足説明
• GFC=1 設定によりグラフィック文字内の任意色 (GF3 ∼ GF0 ビット指定色 ) を , 行
制御データ設定 1( コマンド 3) で設定したふちどり色 (LF3 ∼ LF0) 内容に置換します。
• GCC=1 設定によりグラフィック文字内の任意色 (GC3 ∼ GC0 ビット指定色 ) を , 文
字データ設定 1( コマンド 1) で設定した文字色 (MC3 ∼ MC0) 内容に置換します。
• グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON(
透明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色ふち
どり色置換色コードと透明色制御 ( コマンド 6-2) の透明色コード (TC3 ∼ TC0) が同
一設定の場合は , ふちどり色置換が優先されます。
• グラフィック色ふちどり色置換制御 ON(GFC ビット =1 設定 ) でかつ透明色制御 ON(
透明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換するふちどり色
コード ( 行制御データ設定 1( コマンド 3) のふちどり色 (LF3 ∼ LF0)) と透明色制御
( コマンド 6-2) の透明色コード (TC3 ∼ TC0) が同一設定の場合は , 透明色となり ,
下位層色が表示されます。
• グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透
明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらにグラフィック色文字色
置換色コードと透明色制御 ( コマンド 6-2) の透明色コード (TC3-TC0) が同一設定の
場合は , 文字色置換が優先されます。
• グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつ透明色制御 ON( 透
明色制御 ( コマンド 6-2) の TCC ビット =1 設定 ) で , さらに置換する文字色コード
( 文字データ設定 1( コマンド 1) の文字色 (MC3 ∼ MC0)) と透明色制御 ( コマンド 62) の透明色コード (TC3 ∼ TC0) が同一設定の場合は , 透明色となり , 下位層色が表
示されます。
599
第 20 章 OSDC
• グラフィック色文字色置換制御 ON(GCC ビット =1 設定 ) でかつグラフィック色ふ
ちどり色置換制御 ON(GFC ビット =1 設定 ) の場合 , 文字色置換色コード (GC3 ∼
GC0 ビット ) 設定内容とふちどり色置換色コード (GF3 ∼ GF0 ビット ) 設定内容は ,
異なる色コードを設定してください。
( 注意事項 )
このコマンド設定は , メイン画面のグラフィック文字の色表示にのみ適用されます。スプ
ライト文字および画面背景文字ドット色には影響を与えません。
600
第 20 章 OSDC
画面背景文字制御 ( コマンド 7-1・コマンド 7-3)
20.4.11
コマンド 7-1 およびコマンド 7-3 は , 画面背景文字 , および画面背景色を制御するコ
マンドです。
■ コマンド 7-1( 画面背景文字制御 1)
● アドレス : 1AH
● 形式
bit 15
14
13
12
11
0
PD1
PD0
0
PCUT
10
9
8
7
6
5
4
3
2
1
PM10 PM9 PM8 PM7 PM6 PM5 PM4 PM3 PM2 PM1
PD1, PD0: 画面背景文字構成制御
(0, 0: 1文字)
(0, 1: 横2文字)
(1, 0: 縦2文字)
(1, 1: 縦2×横2文字)
0
PM0
PM10~PM0: 画面背景文字コード
(000H~6FCH 448種)
PCUT:
画面背景文字動作制御
(0: 画面背景文字表示可能)
(1: 画面背景文字表示動作停止)
● 機能
画面背景文字の制御を行います。
● 補足説明
• 画面出力制御 1A( コマンド 5-00) の画面背景文字出力制御を ON(PDS=1) 設定するこ
とにより , 画面背景文字表示を行います。
• 画面背景文字制御 2( コマンド 7-3) の画面背景文字垂直サイズ制御 (PH2 ∼ PH0) 設
定により , 画面背景文字垂直サイズを制御できます。
• 画面背景文字動作制御を動作停止に設定 (PCUT=1) することにより , メイン画面等
の水平表示位置オフセット値を減少することが可能です。
( 注意事項 )
• 画面背景文字はグラフィック文字表示のみ可能です。
• 画面背景文字のグラフィック色については , グラフィック色制御 ( コマンド 6-3) のグ
ラフィック色ふちどり色置換制御 , およびグラフィック色文字色置換制御はできませ
ん。
• 画面背景文字動作制御により表示制御を停止する際には , 画面出力制御 1( コマンド 500) の画面背景文字出力制御を OFF に設定 (PDS=0) してください。
601
第 20 章 OSDC
■ コマンド 7-3( 画面背景文字制御 2)
● アドレス : 1CH
● 形式
bit 15
0
14
13
12
11
0
0
0
0
10
0
9
0
8
7
6
5
4
3
2
1
0
0
0
PH2
PH1
PH0
U3
U2
U1
U0
PH2~PH0: 画面背景文字垂直サイズ制御
(18~32ドット, 2ドット単位)
U3~U0: 画面背景色
(16色)
● 機能
画面背景文字および画面背景色の制御を行います。
● 補足説明
• 画面出力制御 1A( コマンド 5-00) の画面背景出力制御を ON(UDS=1) 設定することに
より , 画面背景色を表示します。
• 画面出力制御 1A( コマンド 5-00) の画面背景文字出力制御を ON(PDS=1) 設定するこ
とにより , 画面背景文字を表示します。
602
第 20 章 OSDC
スプライト文字制御 ( コマンド 8-1・コマンド 8-2・
コマンド 9-0・コマンド 9-1)
20.4.12
コマンド 8-1, コマンド 8-2, コマンド 9-0, およびコマンド 9-1 は , スプライト文字を
制御するコマンドです。
■ コマンド 8-1( スプライト文字制御 1)
● アドレス : 1EH
● 形式
bit 15
SCUT
14
0
13
12
SD1
SD0
11
0
10
9
8
7
6
5
4
SM10 SM9 SM8 SM7 SM6 SM5 SM4
SD1, SD0: スプライト文字構成制御
(0, 0: 1文字)
(0, 1: 横2文字)
(1, 0: 縦2文字)
(1, 1: 縦2 × 横2文字)
3
2
1
0
SM3 SM2 SM1 SM0
SM10~SM0: スプライト文字コード
(000H~6FCH : 448種)
SCUT:
スプライト動作制御
(0: スプライト表示可能)
(1: スプライト制御動作停止)
● 機能
スプライト文字の制御を行います。
● 補足説明
• 画面出力制御 1A( コマンド 5-00) のスプライト文字出力制御を ON(SDS=1) 設定する
ことにより , スプライト文字を表示します。
• スプライト文字の表示位置は , スプライト文字制御 3( コマンド 9-0) とスプライト文
字制御 4( コマンド 9-1) に設定します。
• スプライト文字制御 2( コマンド 8-2) のスプライト文字垂直サイズ制御 (SH2 ∼ SH0)
に表示垂直サイズを設定します。
• スプライト文字制御 2( コマンド 8-2) のスプライト文字ブリンク制御 (SBL ビット )
にてブリンク ON/OFF の制御を行います。
• スプライト文字のブリンク周期 , ブリンクデューティは , 画面出力制御 2( コマンド
5-1) の BT1, BT0, BD1, BD0 ビットの設定内容に制御されます。
• スプライト動作制御を動作停止に設定 (SCUT=1) することにより , メイン画面等の
水平表示位置オフセット値を減少することが可能です。
( 注意事項 )
• スプライト文字はグラフィック文字表示のみ可能です。
• スプライト文字のグラフィック色については , グラフィック色制御 ( コマンド 6-3) の
グラフィック色ふちどり色置換制御 , およびグラフィック色文字色置換制御はできま
せん。
• スプライト動作制御により表示制御を停止する際には , 画面出力制御 1( コマンド 5-00)
のスプライト文字出力制御を OFF に設定 (SDS=0) してください。
603
第 20 章 OSDC
■ コマンド 8-2( スプライト文字制御 2)
● アドレス : 20H
● 形式
bit 15
0
14
13
12
11
0
0
0
0
10
9
8
7
6
5
0
0
SBL
0
SH2
SH1
SBL: スプライト文字ブリンク制御
(0: OFF, 1: ON)
4
SH0
3
2
1
0
0
0
0
0
SH2~SH0: スプライト文字垂直サイズ制御
(18~32ドット, 2ドット単位)
● 機能
スプライト文字の制御を行います。
● 補足説明
スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。
■ コマンド 9-0( スプライト文字制御 3)
● アドレス : 22H
● 形式
bit 15
0
14
13
12
11
10
0
0
0
0
0
9
8
7
6
5
4
3
2
1
SY9 SY8 SY7 SY6 SY5 SY4 SY3 SY2
0
SY1 SY0
SY9~SY0: スプライト文字垂直表示位置制御
(0~2046, 2ドット単位)
● 機能
スプライト文字の垂直表示位置制御を行います。
● 補足説明
スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。
■ コマンド 9-1( スプライト文字制御 4)
● アドレス : 24H
● 形式
bit 15
0
14
13
12
11
10
0
0
0
0
0
9
8
7
6
5
4
3
2
0
SX9 SX8 SX7 SX6 SX5 SX4 SX3 SX2 SX1 SX0
SX9~SX0:
スプライト文字水平表示位置制御
(0~2046, 2ドット単位)
● 機能
スプライト文字の水平表示位置制御を行います。
● 補足説明
スプライト文字制御 1( コマンド 8-1) の補足説明を参照してください。
604
1
第 20 章 OSDC
同期制御 ( コマンド 11-0)
20.4.13
コマンド 11-0 は , 同期表示を制御するコマンドです。
■ コマンド 11-0( 同期制御 )
● アドレス : 26H
● 形式
bit 15
14
13
12
11
10
0
0
0
0
0
0
IN:
同期制御
(0: インタレース)
(1: ノンインタレース)
9
0
8
0
7
0
FC:
6
5
4
IN
0
FC
3
0
2
0
1
0
0
0
フィールド補正制御
(0: 補正なし, 1: 補正あり)
● 機能
インタレース / ノンインタレースの制御を行います。
● 補足説明
フィールド補正制御 (FC) は , インタレース表示 (IN=0) 時のみ有効となります。
605
第 20 章 OSDC
ドットクロック制御 ( コマンド 11-1, 11-2, 11-3)
20.4.14
コマンド 11-1, コマンド 11-2, およびコマンド 11-3 は , ドットクロックを制御する
コマンドです。
■ コマンド 11-1( ドットクロック制御 1)
● アドレス : 28H
● 形式
bit 15
14
13
12
11
0
0
0
0
0
10
9
0
8
0
7
0
DP1, DP0: ドットクロック分周制御
(0, 0 : 1/1)
(0, 1 : 1/2)
(1, 0 : 1/4)
(1, 1 : 1/8)
DHRS:
6
0
0
5
4
3
DP1 DP0
2
0
1
0
0 DHRS DCO
DCO : ドットクロック出力端子制御
(0: OFF, 1: ON)
位相比較エッジ選択
(0: 水平同期信号立上がりエッジ) *パックポーチ側エッジ
(1: 水平同期信号立下りエッジ)
*フロントポーチ側エッジ
● 機能
ドットクロック制御を行います。
■ コマンド 11-2( ドットクロック制御 2)
● アドレス : 2AH
● 形式
bit 15
0
14
13
12
0
0
0
11
10
9
8
DK11 DK10 DK9 DK8
7
DK7
6
5
DK6 DK5
4
3
DK4 DK3
2
DK2
1
0
DK1 DK0
DK11~DK0: ドットクロック分周数
(1ドット単位: Min = 129クロック, Max = 4096クロック)
● 機能
使用するドットクロックの周波数を調整します。
● 補足説明
プリスケーラ ( コマンド 11-1:DP1, DP0) で生成されたドットクロックを水平同期信号
周期まで分周する値 (1 ドット単位 ) を設定します。
606
第 20 章 OSDC
■ コマンド 11-3( ドットクロック制御 3)
● アドレス : 2CH
● 形式
bit 15
0
14
13
12
11
10
9
8
7
0
0
0
0
0
0
0
VC VSL2 VSL1 VSL0 CHG1 CHG0 CPE PDE
VSL2~VSL0: VCO選択制御
(0, 0, 0 : VCO1)
(0, 0, 1 : VCO2)
(0, 1, 0 : VCO3)
(0, 1, 1 : VCO4)
(1, 0, 0 : VCO5)
(1, 0, 1 : VCO6)
(その他設定禁止)
CPE:
チャージポンプ制御
(0: OFF, 1: ON)
6
5
4
3
2
1
VC:
VCO発信制御
(0: OFF, 1: ON)
PDE:
位相比較器制御
(0: OFF, 1: ON)
0
CHG1, CHG0: チャージポンプBIAS電流制御
(0, 0 : 約100 µA)
(0, 1 : 約500 µA)
(1, 0 : 約1 mA)
(1, 1 : 設定禁止)
● 機能
ドットクロックの発振制御をおこないます。
607
第 20 章 OSDC
入出力端子制御 ( コマンド 13-0・コマンド 13-1)
20.4.15
コマンド 13-0 およびコマンド 13-1 は , 入出力端子を制御するコマンドです。
■ コマンド 13-0( 入出力端子制御 1)
● アドレス : 2EH
● 形式
bit 15
0
14
13
12
11
10
9
8
7
6
5
4
3
0
0
0
0
0
0
0
0
0
0
0
0
OCX:
表示色信号出力論理制御
(0: 正論理, 1: 負論理)
OBX:
表示出力期間信号出力論理制御
(0: 正論理, 1: 負論理)
OHX:
半透明期間信号出力論理制御
(0: 正論理, 1: 負論理)
2
1
0
OHX OBX OCX
● 機能
入出力端子の制御を行います。
● 補足説明
• 垂直同期検出 HSYNC エッジ選択 (VHE) 設定により , 垂直同期信号と水平同期信号
の入力位相タイミングによる , 垂直方向ブレ現象の発生を回避できます。詳細は
「 20.3.2.1 垂直同期制御 」を参照してください。
• OSDC 表示色信号出力論理制御は , パレット入力前の色情報の論理を反転します。パ
レットにより変換される色情報についての制御は行いません。
■ コマンド 13-1( 入出力端子制御 2)
● アドレス : 30H
● 形式
bit 15
0
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
VHE
HE
0
0
0
0
IHX
IVX
0
VHE: 垂直同期検出HSYNCエッジ選択
(0: 前縁, 1: 後縁)
IHX:
水平同期信号入力論理制御
(0: 負論理, 1: 正論理)
水平同期動作エッジ選択
(0: 後縁, 1: 前縁)
IVX:
垂直同期信号入力論理制御
(0: 負論理, 1: 正論理)
HE:
● 機能
入出力端子の制御を行います。
608
第 20 章 OSDC
表示期間制御 ( コマンド 14-0, 14-1, 14-2, 14-3)
20.4.16
コマンド 14-0, コマンド 14-1, コマンド 14-2, およびコマンド 14-3 は , 表示期間を制
御するコマンドです。
■ コマンド 14-0( 表示期間制御 1)
● アドレス : 32H
● 形式
bit 15
0
14
13
12
11
0
0
0
0
10
9
8
7
6
5
4
3
2
1
0
DYS10 DYS9 DYS8 DYS7 DYS6 DYS5 DYS4 DYS3 DYS2 DYS1 DYS0
DYS10~DYS0: 垂直方向表示開始制御
(0~2047; 1ドット単位)
● 機能
垂直方向の表示開始タイミングを制御します。
■ コマンド 14-1( 表示期間制御 2)
● アドレス : 34H
● 形式
bit 15
14
13
12
11
0
0
0
0
0
10
9
8
7
6
5
4
3
2
1
0
DYE10 DYE9 DYE8 DYE7 DYE6 DYE5 DYE4 DYE3 DYE2 DYE1 DYE0
DYE10~DYE0: 垂直方向表示終了制御
(0~2047; 1ドット単位)
● 機能
垂直方向の表示終了タイミングを制御します。
609
第 20 章 OSDC
■ コマンド 14-2( 表示期間制御 3)
● アドレス : 36H
● 形式
bit 15
14
13
12
11
0
0
0
0
0
10
9
8
7
6
5
4
3
2
1
0
DXS10 DXS9 DXS8 DXS7 DXS6 DXS5 DXS4 DXS3 DXS2 DXS1 DXS0
DXS10~DXS0: 水平方向表示開始制御
(0~2047; 1ドット単位)
● 機能
水平方向の表示開始タイミングを制御します。
■ コマンド 14-3( 表示期間制御 4)
● アドレス : 38H
● 形式
bit 15
0
14
13
12
11
0
0
0
0
10
9
8
7
6
4
3
2
1
0
DXE10 DXE9 DXE8 DXE7 DXE6 DXE5 DXE4 DXE3 DXE2 DXE1 DXE0
DXE10~DXE0: 水平方向表示終了制御
(0~2047; 1ドット単位)
● 機能
水平方向の表示終了タイミングを制御します。
610
5
第 20 章 OSDC
20.4.17
割込み制御 ( コマンド 15-0)
コマンド 15-0 は割込みを制御するコマンドです。
■ コマンド 15-0( 割込み制御 )
● アドレス : 3AH
● 形式
bit 15
14
13
12
11
0
0
0
0
0
10
9
8
FIF
LIF
VIF
7
0
6
5
0
0
FIF:
VRAMフィル終了フラグ
(0: VRAMフィル終了なし, 1: VRAMフィル終了)
LIF:
行表示終了フラグ
(0: 行表示終了なし, 1: 行表示終了)
VIF:
VSYNC検出フラグ
(0: 正論理, 1: 負論理)
FIE:
VRAMフィル終了割込み制御
(0: 割込み禁止, 1: 割込み許可)
LIE:
行表示終了割込み制御
(0: 割込み禁止, 1: 割込み許可)
VIE:
VSYNC検出割込み制御
(0: 割込み禁止, 1: 割込み許可)
4
0
3
0
2
1
0
FIE
LIE
VIE
● 機能
割込み制御を行います。
FIF, LIF, VIF に一度セットされたフラグをクリアするには "0" を書き込みます。
611
第 20 章 OSDC
パレット制御 ( コマンド 16-0 ∼コマンド 16-15)
20.4.18
コマンド 16-0 ∼コマンド 16-15 は , パレット値を制御するコマンドです。
■ コマンド 16-0 ∼コマンド 16-15( パレット制御 )
● アドレス : 以下の表参照
● 形式
アドレス コマンド
( 下位
No.
15 ∼ 11
8bit)
データ
10
9
8
7
6
5
4
3
2
1
0
3C
16-0
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
3E
16-1
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
40
16-2
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
42
16-3
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
44
16-4
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
46
16-5
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
48
16-6
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
4A
16-7
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
4C
16-8
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
4E
16-9
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
50
16-10
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
52
16-11
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
54
16-12
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
56
16-13
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
58
16-14
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
5A
16-15
00000 PLR2 PLR1 PLR0
0
PLG2 PLG1 PLG0
0
PLB2 PLB1 PLB0
PLR2 ∼ PLR0: 赤色信号パレット値
PLG2 ∼ PLG0: 緑色信号パレット値
PLB2 ∼ PLB0: 青色信号パレット値
● 機能
パレット値を制御します。
● 補足説明
• OSDC の 4bit 色コード "0" ∼ "F" について " コマンド 16-0" ∼ " コマンド 16-15" に ,
パレット値を設定することにより , RGB の色設定をおこないます。
• 色コードには , 以下の種類があります。文字 (MC3 ∼ MC0) 文字背景色 (MB3 ∼ MB0)
縁取り色 (LF3 ∼ LF0) 行背景色 (L3 ∼ L0) 影付背景枠色 (BH3 ∼ BH0, BS3 ∼ BS0)
グラフィック色制御 (GF3 ∼ GF0, GC3 ∼ GC0) 画面背景色 (U3 ∼ U0) グラフィック色
612
第 20 章 OSDC
20.4.19
OSDC 動作制御 ( コマンド 17-0, コマンド 17-1)
コマンド 17-0, コマンド 17-1 は OSDC の初期動作制御を行います。
■ コマンド 17-0(OSDC 動作制御 1)
● アドレス : 5CH
● 形式
bit 15
0
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
0
0
DCK
0
0
0
DPD
DCK: 入力ドットクロック選択制御
(0: 外部ドットクロック入力, 1: 内部PLL生成ドットクロック入力)
DPD: DAC Enable
(0: OSDC DACアクセスOFF, 1: OSDC DACアクセスON)
● 機能
OSDC 関連リソースのアクセス制御を行います。
● 補足説明
各ENABLE制御は, コマンド17-1のOSDC ENABLEをONにした後に制御してください。
■ コマンド 17-1(OSDC 動作制御 2)
● アドレス : 5EH
● 形式
bit 15
0
14
13
12
11
10
0
0
0
0
0
9
0
8
7
0
0
DGO:
ANO:
Analog系出力制御
(0: 出力OFF, 1: 出力ON)
FHO:
FH出力制御
(0: 出力OFF, 1: 出力ON)
OSDEN:
OSDC Enable
(0: OSDC動作OFF, 1: OSDC動作ON)
6
5
0
0
4
3
OSDEN 0
2
1
0
FHO DGO ANO
Digital系出力制御
(0: 出力OFF, 1: 出力ON)
● 機能
OSDC の動作制御をおこないます。
613
第 20 章 OSDC
● 補足説明
• Analog 系出力および Digital 系出力のいずれかが出力 ON 状態では , 両系の出力に共
通である VOB1, VOB2 信号は出力されます。
• VOB1, VOB2 出力も OFF にするためには , Analog 系出力および Digital 系出力を出
力 OFF にする必要があります。
• OSDC ENABLE は , 外部より正常なクロック入力がある場合 , もしくは内蔵 PLL が
正常発振した状態で制御する必要があります。
614
第 21 章
FLASH メモリ
この章では , フラッシュメモリの概要 , レジスタの
構成 / 機能および動作について説明します。
21.1 フラッシュメモリの概要
21.2 フラッシュメモリのレジスタ
21.3 フラッシュメモリのアクセスモード
21.4 フラッシュメモリ自動アルゴリズム
21.5 自動アルゴリズム実行状態の確認
21.6 フラッシュメモリ書込み / 消去
21.7 制限および注意事項
615
第 21 章 FLASH メモリ
21.1
フラッシュメモリの概要
本製品は 512kbyte(4Mbit) の容量で , 3V 単一電源による全セクター一括消去 , およ
びセクタ単位での消去と FR-CPU によるハーフワード (16bit) 単位での書込みが可能
なフラッシュメモリを内蔵しています。
■ フラッシュメモリの概要
このフラッシュメモリは , 内蔵の 3V 動作 512KB フラッシュメモリです。このフラッ
シュメモリは , 当社製 4M ビットフラッシュメモリ MBM29LV400 と ( 一部セクタ構成
を除いて ) 同じものであり , ROM ライタによるデバイス外部からの書込みも可能です。
また , MBM29LV400 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合には ,
ワード (32bit) 単位の命令 / データ読出しが可能であり , デバイスの高速動作を実現でき
ます。
本書と併せて MBM29LV400 データシートもご参照ください。
本製品では, フラッシュメモリマクロとFR-CPUインタフェース回路の組み合わせによ
り , 以下の機能を実現します。
• CPU のプログラム / データ格納用メモリとして機能
- ROM として使用する際は 32bit バス幅でアクセス可能
- CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *1) が可能
• 単体フラッシュメモリ製品の MBM29LV400 相当の機能
- ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能
ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。
ROMライタから本フラッシュメモリを使用する場合の詳細につきましては, 別途ROM
ライタの取り扱い説明書を参照ください。
*: 自動プログラムアルゴリズム = Embedded Algorithm
616
第 21 章 FLASH メモリ
■ ブロックダイヤグラム
図 21.1-1 ブロックダイヤグラム
RDY/BUSYX
立上がりエッジ検出
フラッシュメモリ
8M bit
制御信号生成
RESETX
BYTEX
OEX
WEX
CE
RDY
WE
バス制御信号
FA18-0
アドレスバッファ
FA18-0
DI15- 0
DO31-0
データバッファ
FD31-0
FR-Fバス (命令/データ)
■ メモリマップ
FLASH メモリのアドレスマッピングは FLASH メモリモードと CPU モードでは異なり
ます。以下に各モードでのマッピングを示します。
617
第 21 章 FLASH メモリ
図 21.1-2 メモリマップ
Flash
CPU
0000_0000
I/O, etc
0008_0000
8 bit/16 bit
64 bit
FLASH/
Mask-ROM
512k Byte
0010_0000
0018_0000
FLASH
512k Byte
FFFF_FFFF
001F_FFFF
64Bit-Flash メモリ 1 つに対して CPU モードでは 64bit アクセスを行います。Flash モー
ドでは 8bit/16bit 幅になります。
■ セクタアドレス表
図 21.1-3 に , CPU モードのフラッシュのセクタ配置を示します。
618
第 21 章 FLASH メモリ
図 21.1-3 CPU モードのフラッシュのセクタ配置
7FFFFH
5FFFFH
SA43
(16K)
3FFFFH
SA40
(16K)
7C000H
7BFFFH
5C000H
5BFFFH
SA42
(8K) 7A000H
79FFFH
3BFFFH
59FFFH
SA31
(32K)
50000H
4FFFFH
60000H
CPU Bit
63
56,55
Flash Bit
15
8,7
0
15
SA19
(32K)
10000H
8,7
0
SA18
(64K)
20000H
32 31
15
24,23
8,7
000C_0000H
000B_FFFFH
0FFFFH
SA22
(64K)
40,39
000E_0000H
000D_FFFFH
30000H
40000H
48 47
SA32
(8K) 18000H
17FFFH
2FFFFH
SA26
(64K)
000E_8000H
000E_7FFFH
19FFFH
SA23
(32K)
000F_0000H
000E_FFFFH
SA33
(8K) 1A000H
SA35
(8K)38000H
37FFFH
70000H
SA30
(64K)
1BFFFH
39FFFH
SA27
(32K)
6FFFFH
1C000H
SA36
(8K)3A000H
SA38
(8K) 58000H
57FFFH
000F_FFFFH
SA34
(16K)
3C000H
SA39
(8K) 5A000H
SA41
(8K) 78000H
77FFFH
1FFFFH
SA37
(16K)
00000H
16 15
8,7
0
8,7
15
FLASH
(little endian)
+1/+0
+1/+0
+1/+0
+1/+0
CPU
(big endian)
+0/+1
+2/+3
+4/+5
+6/+7
0008_0000H
0
0
619
第 21 章 FLASH メモリ
21.2
フラッシュメモリのレジスタ
フラッシュメモリにはフラッシュコントロール / ステータスレジスタ (FLCR) とフ
ラッシュメモリウェイトレジスタ (FMWT) の 2 つのレジスタがあります。
■ FLCR: フラッシュコントロール / ステータスレジスタ (CPU モード )
FLASH メモリの動作状態を示すレジスタです。FLASH メモリへの書込み制御等を行
います。
CPU モードでのみアクセスすることが可能です。本レジスタは , リードモディファイ
ライト系命令ではアクセスしないでください。
bit7
bit6
bit5
bit4
00007000H
bit3
bit2
bit1
RDY
R/W
(0)
R/W
(1)
R/W
(1)
R
(0)
R
(1)
bit0
WE
R/W
(0)
R/W
(0)
R/W
(0)
[bit7] Reserve: 予約ビットです。
必ず "0" を設定してください。
[bit6, bit5] Reserve: 予約ビットです。
必ず "1" を設定してください。
[bit4] Reserve: 予約ビットです。
リセット時 :"0" に初期化されます。
[bit3] RDY:
自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。
本ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお
り , 新たな書込み , また消去コマンドを受け付けることはできません。また , FLASH
メモリアドレスからのデータ読出しはできません。
読出したデータは FLASH メモリのステータスを示します。
620
0
書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受付はでき
ません
1
データの読出しおよび書込み / 消去コマンドの受付が可能です。
•
リセット時 :"0" に初期化されます。
•
Read のみ可能です。Write は本ビット値に影響を与えません。
第 21 章 FLASH メモリ
[bit2] Reserve: 予約ビットです。
必ず "0" を設定してください。
[bit1] WE(Write Enable):
CPU モードにおける FLASH メモリへのデータおよびコマンドの書込みを制御しま
す。
本ビットが "0" の間は , FLASH メモリへのデータおよびコマンドの書込みはすべて
無効になります。
また, FLASHメモリからのデータ読出しが倍速化します(32bitアクセスを行います)。
本ビットが "1" の間は , FLASH メモリへのデータおよびコマンドの書込みが有効と
なり , 自動アルゴリズムの起動が可能となります。但し , FLASH メモリからのデー
タ読出しは低速になります (16bit アクセスを行います )。
本ビットの書き換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 )
が停止していることを確認してから行ってください。RDY ビットが "0" の間は , 本
ビットの値を書き換えることができません。
( 注意事項 )
• 本ビットの書換えは必ず RDY ビットにより自動アルゴリズムが停止していることを確
認してから行ってください。RDY ビットが "0" の間本ビットを書き換える事はできま
せん。
• WE=1 のときは命令アクセス要求には応答せず , データアクセス要求にのみ応答しま
す。
FLASHメモリモードにおいては, 本ビットの状態に関わらず書込み動作が有効とな
ります。
0
FLASH メモリへの書込み禁止 , および読出しの倍速化
1
FLASH メモリへの書込み許可 , および読出しの低速化
•
リセット時 :"0" に初期化されます。
•
Read/Write 可能です。
[bit0]Reserve: 予約ビットです。
必ず "0" を設定してください。
621
第 21 章 FLASH メモリ
■ FMWT: ウェイトレジスタ
CPU モードにおいて , FLASH メモリのウェイト制御を行います。
bit7
bit6
00007004H
R
(0)
bit5
bit4
FAC1
FAC0
R/W
(1)
R/W
(1)
R/W
(1)
bit3
bit2
bit1
bit0
WTC2 WTC1 WTC0
R/W
(0)
R/W
(0)
R/W
(1)
R/W
(0)
[bit7, bit6]Reserve: 予約ビットです。
必ず "01" を設定してください。
[bit5, bit4]FAC1, FAC0 :
ATDIN, EQIN の H 幅を指定します。
FAC1
FAC0
ATDIN
EQIN
0
0
0.5 clock
1.0 clock
0
1
1.0 clock
1.5 clock
1
0
1.5 clock
2.0 clock
1
1
0.5 clock
1.5 clock
備考
40MHz ( 初期値 )
[bit3]Reserve: 予約ビットです。
必ず "0" を設定してください。
[bit2 ∼ bit0]WTC2, WTC1, WTC0 : Wait Cycle bit
FLASH メモリのウェイト制御をします。
WTC2
WTC1
WTC0
Wait cycle
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
備考
40MHz ( 初期値 )
● FLASH アクセスタイミング
FLASHマクロのアクセスタイム・アクセスサイクル数は以下の組み合わせになります。
読出し
40M
Time
50ns
90ns
cycle
3(2)
4(3)
( ) 内は WTC レジスタ値
622
書込み
40M
第 21 章 FLASH メモリ
21.3
フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モード
ワード (32bit) 長データを一括で読み出すことができますが , 書込みはできませ
ん。
• プログラミングモード
ワード (32bit) 長アクセスは禁止されていますが , ハーフワード (16bit) 長での書
き込みが可能になります。
■ FR-CPU ROM モード (32bit, Read のみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32bit) 長データの一括読出し
が可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできません。
● モードの指定方法
• フラッシュメモリステータスレジスタの "WE" ビットが "0" のとき , 本モードとなり
ます。
• CPU 動作時でのリセット解除後は常に本モードになります。
• CPU 動作時以外では本モードにすることができません。
● 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32bit) 長データを一括で読み出
します。
● 制限事項
• ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
• 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。
623
第 21 章 FLASH メモリ
■ FR-CPU プログラミングモード (16bit, Read/Write)
データの消去 / 書込みが可能になるモードです。ワード (32bit) 長データの一括アクセ
スは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログラム
は実行が不可能となります。
● モードの指定方法
• フラッシュメモリステータスレジスタの "WE" ビットが "1" のとき本モードとなり
ます。
• CPU 動作時でのリセット解除後は "WE" ビットが "0" になっています。本モードに
するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセットの
発生により "WE" ビットが "0" になると ROM モードに戻ります。
• フラッシュメモリステータスレジスタの "RDY" ビットが "0" の期間は "WE" ビット
を書き換えることができません。"RDY" ビットが "1" になったことを確認してから
"WE" ビットを書き換えてください。
● 動作内容
• フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16bit) 長データを一括
で読み出します。
• フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動できます。
自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可能となりま
す。自動アルゴリズムの詳細については , 自動アルゴリズムの項を参照してくださ
い。
● 制限事項
• ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
• 本モードではワード (32bit) 長でデータを読みだすことを禁止します。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ
ディ/ ビジー信号 (RDY/BUSYX) により自動実行アルゴリズムの動作状態を知ることが
できます。このレディ / ビジー信号のレベルはフラッシュメモリステータスレジスタ
の "RDY" ビットとして読むことができます。
"RDY" ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われて
おり, 新たな書込み, または消去コマンドを受け付けることはできません。また, フラッ
シュメモリアドレスからのデータ読み出しはできません。
"RDY" ビットが "0" の期間に読みだしたデータは , フラッシュメモリのステータスを示
すハードウェアシーケンスフラグとなっています。
624
第 21 章 FLASH メモリ
21.4
フラッシュメモリ自動アルゴリズム
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停
止と再開の制御が可能です。
■ コマンドシーケンス
自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード
(16bit) データの連続書込みを実行します。これをコマンドとよびます。
不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん
だりすると , フラッシュメモリはリードモードにリセットされます。
表 21.4-1 にフラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示します。
( アドレスは CPU から見たアドレス )
表 21.4-1 コマンドシーケンス表
コマンド
シーケンス
バス
1st バスライト 2nd バスラ 3rdバスライト 4th バスライト 5th バスラ 6th バスライ
ライト
サイクル
イトサイク
サイクル
サイクル
イトサイク トサイクル
サイクル
ル
ル
FMA
DIN
F0F0H
FMA DIN
FMA
DIN
FMA
DIN
FMA DIN
----
---
---
---
---
FMA
DIN
---
---
---
読出し /
リセット
1
AXXXXH
読出し /
リセット
4
AAAAAH AAAAH A5555H 5555H AAAAAH FOFOH
RA
RD
---
---
---
---
書込み
4
AAAAAH AAAAH A5555H 5555H AAAAAH A0A0H
PA
PD
---
---
---
---
チップ消去
6
AAAAAH AAAAH A5555H 5555H AAAAAH
8080H
AAAAAH AAAAH A5555H 5555H AAAAAH 1010H
セクタ消去
6
AAAAAH AAAAH A5555H 5555H AAAAAH
8080H
AAAAAH AAAAH A5555H 5555H
---
---
SA
3030H
RA
:FLASH メモリ読出しアドレス
PA
:FLASH メモリ書込みアドレス
SA
:FLASH メモリ消去セクタアドレス(セクタ内の任意の 1アドレスを指定します )
RD
:FLASH メモリ読出しデータ
PD
:FLASH メモリ書込みデータ
FMA : アドレス
DIN
: 書込みデータ
625
第 21 章 FLASH メモリ
● リード ( 読出し ) / リセットコマンド
フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ
かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入
時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ
ンドは必要ありません。
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。
● プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
き込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック "
サイクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そ
して最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上
の外部よりの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適
切な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動
作は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータに
一致したとき終了し (「21.5 自動アルゴリズム実行状態の確認」参照 ), このときをもっ
て読出しモードに戻り , これ以上書込みアドレスは受け付けなくなります。この結果 ,
フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデータ
ポーリングは , メモリが書込み中であることを示します。
書込み中はフラッシュメモリにライトされたすべてのコマンドが無視されます。もし
書込み中にハードウェアリセットが起動されると書き込んでいるアドレスのデータは
保証されません。
書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。書込
みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ "1"
を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定されるか ,
あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし ,
リセット / 読出しモードでデータを読みだすとデータは "0" のままです。消去動作のみ
が "0" データを "1" データにすることができます。
● チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。まず最初に 2 つ
の " アンロック " サイクルがあり , 引き続き " セットアップ " コマンドがライトされま
す。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行中にはフラッシュメモリは自動的にすべてのセルを消
去する前に "0" のパターンに書き込んで検証します ( プリプログラム )。この動作中に
は , フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書き込みで開始され , bit7 が "1" になったときに終
了し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セク
タ消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。
626
第 21 章 FLASH メモリ
● セクタ消去
セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドをライトし , その後さらに 2 つの " アンロック " サイ
クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始
まります。最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次の
セクタ消去コマンドの受け付けが可能です。
複数のセクタ消去は前述したような 6 つのバスサイクルをライトすることで同時に受
け付け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ
消去コマンド (30H) を引き続きライトすることで行います。最後のセクタ消去コマンド
の書き込みから 50 µs のタイムアウト期間終了により , セクタ消去が開始されます。つ
まり , 複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50 µs 以内
に入力する必要があり , それ以降ではコマンドは受け付けられないことがあります。引
き続くセクタ消去コマンドが有効かどうかは bit3 にてモニタ可能です (「21.5 自動ア
ルゴリズム実行状態の確認」参照 )。
タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン
ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ
のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク
タアドレス入力は , セクタのどのような組み合わせや数 (0 から 6) からでも実行可能で
す。
セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い
ます ( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響
も受けません。これらの動作中はフラッシュメモリは外部からの制御は必要としませ
ん。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間
の後に開始され , bit7 のデータが "1" になったとき終了し , フラッシュメモリは読出し
モードに戻ります。ほかのコマンドは無視されます。データポーリングは消去された
セクタ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セ
クタ書込み時間 ( プリプログラム )) ×消去セクタ数」となります。
● 消去一時停止
消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ
ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも
のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書き込みの動作中は無
視されます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去
タイムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムア
ウト期間中に入力されるとただちにタイムアウトを終了し , 消去動作を中断します。消
去再開コマンドがライトされると消去動作が再開されます。消去一時停止 , 消去再開コ
マンドの入力の際のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去
動作を停止するのに最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止
モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ
ます。消去しているセクタのアドレスを入力し bit6 と bit7 の読出し値をモニタするこ
とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停
止コマンドのライトは無視されます。
627
第 21 章 FLASH メモリ
消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。
このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな
りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一
時停止したセクタからの連続的な読出しに対しては , bit2 はトグル動作をします。
消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスをライ
トすることによりフラッシュメモリに書込みができます。この書込みモードは , 消去一
時停止書込みモードとなります。このモードでの書込みは , データが消去一時停止して
いないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一
時停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対して
は , bit2 はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。
使用上の注意として , bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込
みアドレスに対して読み出しを行わなければなりません。
セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。
この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン
ドはフラッシュメモリが消去再開した後に入力できます。
628
第 21 章 FLASH メモリ
21.5
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了した事を知らせるハードウェアを持ちま
す。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵
フラッシュメモリの動作状態の確認ができます。
■ レディ / ビジー信号 (RDY/BUSYX)
フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と
して , ハードウェアシーケンスフラグの他に , レディ / ビジー信号を持っています。こ
のレディ/ ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッシュ
メモリステータスレジスタの "RDY" ビットとして読みだすことが可能です。また , こ
のレディ/ ビジー信号の立ち上がりにより , CPU に対して割込み要求を発生することも
可能です。
"RDY" ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作
中です。このときは書込みコマンドも消去コマンドも受け付けません。"RDY" ビット
の読出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの
状態です。
■ ハードウェアシーケンスフラグ
bit
15
(
(
8 7
0
bit 7
0
)
)
( 注意事項 )
ワード読出しは禁止。(FR-CPU プログラミングモードのみ使用してください。)
ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任
意のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして
得られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの
状態を示します。
ROM1 の自動アルゴリズム実行中は ROM1 の任意のアドレスを , ROM2 の自動アルゴ
リズム実行中は ROM2 の任意のアドレスを指定してください。
(half-word, byte
bit
)
7
DPOL
6
TOGG
5
TLOV
4
(
)
3
SETI
2
TOGG
1
(
0
)
(
)
なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず
FR-CPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくだ
さい。
629
第 21 章 FLASH メモリ
表 21.5-1 ハードウェアシーケンスフラグ状態一覧
DPOLL
状態
実行中
TOGGLE TLOVER SETIMR
TOGGL2
反転データ
トグル
0
0
1
自動消去動作
0
トグル
0
1
トグル
消去
消去一時停止読出し
一時停止 ( 消去一時停止して
モード
いるセクタ )
1
1
0
0
トグル *1
消去一時停止読出し
( 消去一時停止して
いないセクタ )
データ
データ
データ
データ
データ
消去一時停止読出し
( 消去一時停止して
いるセクタ )
反転データ
トグル *2
0
0
1*3
反転データ
トグル
1
0
1
0
トグル
1
1
*4
0
トグル
1
1
*4
自動書込み動作
タイム
自動書込み動作
リミット
自動消去動作
超過
消去一時停止時の書込み動作
*1: 消去一時停止セクタからの連続的な読出し時に , TOGGLE2 はトグル動作をします。
*2: どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。
*3: 消去一時停止書込み中 , その書込みされているアドレスの読出し時 , TOGGLE2 は "1" となります。
しかし , 消去一時停止しているセクタからの連続的な読出し時は , TOGGLE2 はトグル動作をし
ます。
*4: TLOVER が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対して ,
TOGGLE2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。
表中の各ビットは ,
[bit7]:DPOLL
データポーリング
[bit6]:TOGGLE トグルビット
[bit5]:TLOVER タイムリミット超過
[bit3]:SETIMR セクタ消去タイマ
[bit2]:TOGGL2 トグルビット 2
を示します。それぞれについては , 以下に簡単に説明します。
630
第 21 章 FLASH メモリ
[bit7]:DPOLL データポーリングフラグ
データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ
る事をデータポーリング機能によって知らせるためのフラグです。
書込み動作時
自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリ
はアドレスの指し示す番地によらず , 最後に書込まれたデータの bit7 の反転
データを出力します。自動書込みアルゴリズム終了時にリードアクセスする
と , フラッシュメモリはアドレスの指し示す番地の読出し値の bit7 を出力し
ます。
チップ / セクタ消去動作時
チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去し
ているセクタから, チップ消去時はアドレスの指し示す番地に関係なく, リー
ドアクセスするとフラッシュメモリは "0" を出力します。同様に終了時には
"1" を出力します。
セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレ
スの指し示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタ
でなければアドレスの指し示す番地の読出し値の bit7 を出力します。トグル
ビットフラグとともに参照することで, 現在セクタ一時停止状態であるか, ど
のセクタが消去中であるかの判定が可能です。
( 注意事項 )
自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ
の読出しは , データポーリングフラグの終了を受けて他のビットの出力が可能となりま
す。このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認
したリードアクセスの次に行うようにしてください。
[bit6]:TOGGLE トグルビットフラグ
トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実
行が進行中 , もしくは終了状態である事をトグルビット機能によって知らせるため
のフラグです。
書込み / チップ • セクタ消去時
自動書込みアルゴリズムおよびチップ•セクタ消去アルゴリズム実行中に, 連
続したリードアクセスを行うと , フラッシュメモリはアドレスの指し示す番
地によらず , リードごとに "1" と "0" を交互に出力するトグル状態を出力しま
す。自動書込みアルゴリズムおよびチップ / セクタ消去アルゴリズム終了時
に連続したリードアクセスを行うとフラッシュメモリは bit6 のトグル動作を
止め , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。
セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレ
スの指し示す番地が消去中のセクタに属するならば , "1" を出力します。消去
中のセクタに属さないのであれば , アドレスの指し示す番地の読出し値の
bit6(DATA:6) を出力します。
631
第 21 章 FLASH メモリ
( 参考 )
書込みの際 , 書込もうとしているセクタが書き換え保護されているセクタの場合は ,
約 2 µs のトグル動作をした後 , データを書き換える事なくトグル動作を終わります。消
去の際, 選択された全てのセクタが書き換え保護されている場合トグルビットは約100 µs
のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。
[bit5]:TLOVER タイミングリミット超過フラグ
タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内
部に規定された時間 ( 内部パルス回数 ) を越えてしまった事を知らせるフラグです。
書込み / チップ • セクタ消去時
書込みまたは, チップ•セクタ消去自動アルゴリズム起動後にリードアクセス
すると , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間
を越えてしまっている場合は "1" を出力します。これは , 自動アルゴリズム
が実行中か終了状態にあるか無関係ですので , 書込み / 消去が成功したか失
敗したかの判定が可能です。すなわち , このフラグが "1" を出力した時 , デー
タポーリング機能もしくはトグルビット機能により自動アルゴリズムがまだ
実行中であれば , 書込みが失敗していると判断することができます。例えば ,
"0" が書込まれているフラッシュメモリアドレスに "1" を書込もうとすると
フェイルが発生します。この場合フラッシュメモリはロックされ , 自動アル
ゴリズムは終了しません。したがって , データポーリングフラグから有効な
データが出力されません。またトグルビットフラグはトグル動作を止めず ,
タイムリミットを越え , タイミングリミット超過フラグは "1" を出力します。
この状態はフラッシュメモリが不良ではなく , 正しく使用されなかったとい
う事を表しています。この状態が発生した時は , リセットコマンドを実行し
てください。
[bit3]:SETIMR セクタ消去タイマフラグ
セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中
であるか否かを知らせるフラグです。
セクタ消去動作時
セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコ
マンドを発行したセクタのアドレス信号の指し示す番地によらず , セクタ消
去ウェイト期間中であれば "0" を , セクタ消去ウェイト期間を越えてしまっ
ている場合は "1" を出力します。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中
を示している場合, このフラグが"1"であれば内部で制御される消去が始まっ
ています。続けてのセクタ消去コードのライト , または消去一時停止以外の
コマンドは , 消去が終了されるまで無視されます。このフラグが "0" であれ
ばフラッシュメモリは, 追加のセクタ消去コードのライトを受け付けます。こ
の事を確認するために , 引き続くセクタ消去コードのライトに先立ちこのフ
ラグの状態をチェックすることを推奨します。もし 2 回目の状態チェックで
"1" であったなら追加セクタの消去コードは受け付けられてない可能性があ
632
第 21 章 FLASH メモリ
ります。
セクタ消去動作時
セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレ
スの指し示す番地が , 消去中のセクタに属するならば "1" を出力します。消
去中のセクタに属さないのであれば , アドレスの指し示す番地の読出し値の
bit3(DATA:3) を出力します。
[bit2]:TOGGL2 トグルビットフラグ 2
このトグルビットフラグは bit6 のトグルビットに加えて , フラッシュメモリが自動
消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知らせ
るためのフラグです。
書込み / チップ • セクタ消去時
トグルビット ( bit2 ) と同様のトグル動作をします。
セクタ消去一時停止時
フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止してい
るセクタから連続して読み出しを行うと bit2 はトグル動作をします。消去一
時停止書込みモードのときは , 消去一時停止していないセクタのアドレスか
ら連続して読み出すと bit2 は "1" が読み出されます。bit6 は bit2 と違い , 通常
の書込み, 消去, あるいは消去一時停止書込み動作中にのみトグル動作をしま
す。
( 参考 )
bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 同時に使われます ( bit2 は
トグル動作をするが bit6 はトグル動作をしない )。さらに bit2 は消去しているセクタの検
出にも使われます。フラッシュメモリが消去動作のときは , bit2 は消去しているセクタか
らの読み出しならばトグル動作をします。
633
第 21 章 FLASH メモリ
21.6
フラッシュメモリ書込み / 消去
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ
ぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去
フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , 消去再開の動作がコマンドシーケンスのバスへのライトサイクルを行う事
で自動アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクル
は必ず続けて行う必要があります。また , 自動アルゴリズムはデータ • ポーリング機能
などで終了時を知る事ができます。正常終了後は読出し / リセット状態に戻ります。
634
第 21 章 FLASH メモリ
21.6.1
読出し / リセット状態
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ 読出し / リセット状態
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表の読出し
/ リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行可能で
す。
読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 通りのコマンドシーケ
ンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。読出し / リセット状態では通常のリードアクセスでデー
タを読み出せます。マスク ROM と同様に CPU からのプログラムアクセスが可能です。
通常読出しでのデータ読出しにこのコマンドは必要ありません , 何らかの理由でコマ
ンドが正常に終了しなかった時など , 自動アルゴリズムを初期化する場合に主にこの
コマンドを使用します。
635
第 21 章 FLASH メモリ
21.6.2
データ書込み
書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説
明します。
■ データ書込み
フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行
可能です。4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動ア
ルゴリズムが起動され自動書込みが開始します。
● アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で
す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ
スへのハーフワードデータ単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが ,
1 回の書込みコマンドによって書き込まれるデータは 1 ハーフワードのみです。
● データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー
タ "1" を書き込むと , データポーリングアルゴリズムまたは , トグル動作が終了せず ,
フラッシュメモリ素子が不良と判定され , 書込み規定時間を越えタイミングリミット
超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書き込まれた様に見
えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読み出すと
データは "0" のままです。消去動作のみが "0" データを "1" にすることができます。自
動書込み実行中は全てのコマンドが無視されます。書込み中にハードウェアリセット
が起動されると , 書き込んでいるアドレスのデータは保証されませんので注意が必要
です。
● フラッシュメモリ書込み手順
図 21.6-1 にフラッシュメモリ書込みの手順の例を示します。ハードウェアシーケンス
フラグを用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能で
す。
ここでは , 書込み終了の確認にデータポーリングフラグ (DPOLL) を用いています。
フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込
みとなります。
データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同
時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても
データポーリングフラグビット (DPOLL) は再チェックする必要があります。
トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット
(TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ
(TOGGLE) を再チェックする必要があります。
636
第 21 章 FLASH メモリ
図 21.6-1 フラッシュメモリ書込み手順の例 ( ハーフワードアクセス )
書込み開始
FLCR: WE (bit5)
フラッシュメモリ書込み許可
書込みコマンドシーケンス
AAAAA AAAA
A5555 5555
AAAAA A0A0
書込みアドレス 書込みデータ
内部アドレスリード
次アドレス
データポーリング
(DPOLL)
Data
タイミングリミット
(TLOVER)
内部アドレスリード
Data
書込みエラー
データポーリング
(DPOLL)
最終アドレス
NO
YES
FLCR: WE (bit5)
フラッシュメモリ書込み禁止
ハードウェアシーケンスフラグによる確認
書込み完了
637
第 21 章 FLASH メモリ
21.6.3
データ消去 ( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい
て説明します。
■ データ消去 ( チップ消去 )
フラッシュメモリから全てのデータを消去するには , コマンドシーケンス表のチップ
消去コマンドを , フラッシュメモリ内の対象セクタに続けて送る事で実行可能です。
チップ消去コマンドは 6 回のバス動作で行われます , 6 サイクル目のライトが完了した
時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ
モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ
メモリは自動的に全てのセルを消去する前に "0" を書き込んで検証します。
638
第 21 章 FLASH メモリ
21.6.4
データ消去 ( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に
ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す
ることも可能です。
■ データ消去 ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセク
タ消去コマンドを, フラッシュメモリ内の対象セクタに続けて送る事で実行可能です。
● セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) をライトすること
により 50 µs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上
記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)をライトし
ます。
● 複数のセクタを指定する時の注意
最後のセクタ消去コードのライトから50 µsのセクタ消去ウェイト期間終了により消去
が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド
レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入力す
る必要があり , それ以降では受け付けられない事があります。引き続くセクタ消去コー
ドのライトが有効かどうかはセクタ消去タイマ ( ハードウェア • シーケンス • フラグ
SETIMR) によって調べる事ができます。なおこの時 , セクタ消去タイマをリードする
アドレスは , 消去しようとしているセクタを指すようにします。
● セクタ消去手順
ハードウェア • シーケンス • フラグを用いる事でフラッシュメモリ内部の自動アルゴリ
ズムの状態判定が可能です。図 21.6-2 にフラッシュメモリセクタ消去の手順の例を示
します。ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。
フラグチェックのために読込むデータは , 消去しようとしているセクタからの読込み
となりますので , 注意が必要です。
トグルビットフラグ (TOGGLE) は , タイミングリミット超過フラグ (TLOVER) が "1" に
変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ
(TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が
あります。
データポーリングフラグ (DPOLL) でも同様に , タイミングリミット超過フラグ
(TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする
必要があります。
639
第 21 章 FLASH メモリ
図 21.6-2 セクタ消去手順の例
消去開始
FLCR: WE (bit5)
フラッシュメモリ消去許可
セクタ消去タイマ
0
1
消去コマンドシーケンス
AAAA
AAAAA
5555
A5555
8080
AAAAA
5555
A5555
1010
AAAAA
消去セクタへコード入力 (30H)
YES
消去セクタが
他にあるか?
NO
内部アドレスリード1
内部アドレスリード
次セクタ
内部アドレスリード2
トグルビット(TOGGLE)
データ1 = データ2
Yes
No
ハードウェア
シーケンスフラグ
による確認
0
タイミングリミット
(TLOVER)
1
内部アドレスリード1
内部アドレスリード2
NO
トグルビット(TOGGLE)
データ1 = データ2
YES
消去エラー
最終セクタ
YES
FLCR: WE (bit5)
フラッシュメモリ消去禁止
消去完了
640
NO
第 21 章 FLASH メモリ
21.6.5
セクタ消去の一時停止
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから , データを読み出す事が可
能です。
■ セクタ消去の一時停止
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表のセクタ
消去一時停止コマンドを , フラッシュメモリ内に続けて送る事で実行可能です。
セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込
みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み動作中は無視されます。
消去一時停止コード (B0H) のライトを行う事で実施されますが , この時アドレスはフ
ラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の消
去一時停止コマンドは無視されます。
セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ
クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去
ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 15
µs の時間の後 , 消去一時停止状態に入ります。
641
第 21 章 FLASH メモリ
21.6.6
セクタ消去の再開
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ セクタ消去の再開
一時停止したセクタ消去を再開させるには , コマンドシーケンス表のセクタ消去再開
コマンドを , フラッシュメモリ内に続けて送る事で実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード
(30H) のライトを行う事で実施されますが , この時のアドレスはフラッシュメモリ領域
内の任意のアドレスを指すようにします。なお , セクタ消去中のセクタ消去再開コマ
ンドの発行は無視されます。
642
第 21 章 FLASH メモリ
21.7
制限および注意事項
ここでは FLASH メモリを使用する上で注意しなければならない事項について説明
します。
■ 制限および注意事項
• 以下の領域 (I-Bus) に対してのライトアクセスは行わないでください。
0000_0300H ∼ 0000_037FH
0000_03E4H ∼ 0000_03E7H
0000_8000H ∼ 0000_BFFFH
0001_0000H ∼ 0001_FFFFH
• FMCS レジスタの WE= 0 の状態で FLASH メモリへのライトアクセスを行わないで
ください。
• FMCS レジスタの WE= 1 の状態で FLASH メモリに対してのライト連続アクセスを
行わないでください。その場合 , 必ず "NOP"1 命令以上あけるようにしてください。
例 ) FLASH へのコマンドライト ( コマンドシーケンス ) ⇒ FLASH リード
ldi
#0xAAAA, r0
ldi
#0x5555, r1
ldi
#0xAAAAA, r6
ldi
#0xA5555, r7
ldi
#0xA0A0, r8
ldi
# PA, r2
ldi
# PD, r3
sth
r0, @r6
: 必ず "NOP"1 命令以上あけてください。
nop
sth
r1, @r7
: 必ず "NOP"1 命令以上あけてください。
nop
sth
r8, @r6
: 必ず "NOP"1 命令以上あけてください。
nop
sth
r3, @r2
nop
: 必ず "NOP"1 命令以上あけてください。
• CPU モード時 , FLASH メモリへのライトアクセスはハーフワードのみ可能です。バ
イトライトアクセスは行わないでください。
• FMCS レジスタの WE, FIXE, BIRE を書き換えた直後に FLASH メモリ領域への分岐
命令を実行しないでください。
FLASH 領域に分岐する際には , 下記プログラム例に従い , 一度 FMCS レジスタの値
を読み出してから分岐してください。
STB
R1, @R2
// WE=OFF
LDUB
@R2, R1
// FMCS 値ダミー Read
643
第 21 章 FLASH メモリ
BRA
_flash_address
//FLASH 領域への分岐
• セクタプロテクトは使用できません。
• FLASH 書込み直後のリードの値は保証できません。
書込み後読み出す場合は , 以下のように必ずダミーリードを入れてからリードして
ください。
644
STH
r0, @r1
// Flash 書込み
LDUH
@r2, r4
// ダミー読込み
LDUH
@r3, r4
// ポーリングデータ読込み
付録
付録では , I/O マップ , 割込みベクタ , ドットク
ロック生成用 PLL, USB クロック , 外部バスインタ
フェースの設定 , および命令一覧について , 本文に
記載できなかった細かいところや , プログラミング
するときに参照することがらを記載しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C ドットクロック生成用 PLL について
付録 D USB クロックについて
付録 E USB IO 低消費電力モードについて
付録 F 外部バスインタフェースの設定について
付録 G 端子状態一覧
付録 H 命令一覧
645
付録
付録 A
I/O マップ
I/O マップについて説明します。
■ I/O マップの見方
メモリ空間領域と周辺リソースの各レジスタの対応を示します。
図 A-1 表の見方
address
000000H
register
+1
+2
+3
block
PDR1[R/W]
PDR2[R/W]
PDR3[R/W]
T-unit
XXXXXXXX
XXXXXXXX Port Data Register
XXXXXXXX
+0
PDR0[R/W]
XXXXXXXX
リード/ライトアトリビュート
リセット後のレジスタ初期値
レジスタ名 (1コラムのレジスタが4n番地, 2コラムが4n+2番地...)
最左のレジスタ番地 (ワードでアクセスした際は,
1コラム目のレジスタがデータのMSB側となる。)
( 注意事項 )
レジスタのビット値は , 以下のように初期値を表します。
• "1" : 初期値 "1"
• "0" : 初期値 "0"
• "X" : 初期値 "X"
• "-" : その位置に物理的にレジスタがない
646
付録 A I/O マップ
表 A-1 I/O マップ (1 / 12)
Register
Address
Block
+0
+1
+2
+3
000000H
|
00000FH
-
-
-
-
000010H
PDR0[R/W]
XXXXXXXX
PDR1[R/W]
XXXXXXXX
PDR2[R/W]
--XXXXXX
PDR3[R/W]
-XXXXXX
000014H
PDR4[R/W]
XXXXXXXX
PDR5[R/W]
XXXXXXXX
PDR6[R/W]
--XXXXXX
PDR7[R/W]
---XXXXX
000018H
-
-
-
-
00001CH
-
-
-
-
000020H
ADCTH[R/W]
XXXXXX00
ADCTL[R/W]
00000X00
Reserved
R-bus
Port Data Register
ADCH[R/W]
00000000_00000000
000024H
ADAT0[R]
XXXXXX00_00000000
ADAT1[R]
XXXXXX00_00000000
000028H
ADAT2[R]
XXXXXX00_00000000
ADAT3[R]
XXXXXX00_00000000
00002CH
ADAT4[R]
XXXXXX00_00000000
ADAT5[R]
XXXXXX00_00000000
000030H
ADAT6[R]
XXXXXX00_00000000
ADAT7[R]
XXXXXX00_00000000
000034H
ADAT8[R]
XXXXXX00_00000000
ADAT9[R]
XXXXXX00_00000000
10bit A/D converter
000038H
-
-
-
-
00003CH
-
-
-
-
000040H
EIRR [R/W]
00000000
ENIR [R/W]
00000000
ELVR [R/W]
00000000
000044H
DICR [R/W]
-------0
HRCL [R/W]
0--11111
-
Reserved
TMRLR0 [W]
XXXXXXXX XXXXXXXX
TMR0 [R]
XXXXXXXX XXXXXXXX
00004CH
-
TMCSR0 [R/W]
----0000 00000000
000050H
TMRLR1 [W]
XXXXXXXX XXXXXXXX
TMR1 [R]
XXXXXXXX XXXXXXXX
-
TMCSR1 [R/W]
----0000 00000000
000048H
Ext int
DLYI/I-unit
Reload Timer 0
Reload Timer 1
000054H
647
付録
表 A-1 I/O マップ (2 / 12)
Register
Address
Block
+0
000058H
+1
+2
+3
TMRLR2 [W]
XXXXXXXX XXXXXXXX
TMR2 [R]
XXXXXXXX XXXXXXXX
-
TMCSR2 [R/W]
----0000 00000000
Reload Timer 2
00005CH
000060H
000064H
000068H
00006CH
000070H
000074H
000078H
00007CH
000080H
SSR [R/W]
00001-00
SIDR [R/W]
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W]
00001-00
SIDR [R/W]
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W]
00001-00
SIDR [R/W]
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W]
00001-00
SIDR [R/W]
XXXXXXXX
UTIM [R] (UTIMR [W])
00000000 00000000
SSR [R/W]
00001-00
SIDR [R/W]
XXXXXXXX
SCR [R/W]
00000100
SMR [R/W]
00--0-0-
DRCL [W]
--------
UTIMC [R/W]
0--00001
SCR [R/W]
00000100
SMR [R/W]
00--0-0-
DRCL [W]
--------
UTIMC [R/W]
0--00001
SCR [R/W]
00000100
SMR [R/W]
00--0-0-
DRCL [W]
--------
UTIMC [R/W]
0--00001
SCR [R/W]
00000100
SMR [R/W]
00--0-0-
DRCL [W]
--------
UTIMC [R/W]
0--00001
SCR [R/W]
00000100
SMR [R/W]
00--0-0-
DRCL [W]
--------
UTIMC [R/W]
0--00001
000084H
UTIM [R] (UTIMR [W])
00000000 00000000
000088H
--------
--------
00008CH
--------
--------
UART0
U-TIMER 0
UART1
U-TIMER 1
UART2
U-TIMER 2
UART3
U-TIMER 3
UART4
U-TIMER 4
Reserved
000090H
000094H
PWCCL[R/W]
0000--00
PWCCH[R/W]
00-00000
PWCD[R]
XXXXXXXX_XXXXXXXX
--------
--------
--------
-------PWC
000098H
00009CH
PWCC2[R/W]
000-----
Reserved
--------
--------
PWCUD[R]
XXXXXXXX_XXXXXXXX
--------
--------
0000A0H
--------
--------
--------
--------
0000A4H
--------
--------
--------
--------
Reserved
648
付録 A I/O マップ
表 A-1 I/O マップ (3 / 12)
Register
Address
Block
+0
+1
+2
+3
0000A8H
--------
--------
--------
--------
0000ACH
--------
--------
--------
--------
0000B0H
-
-
-
-
0000B4H
IBCR [R/W]
00000000
IBSR [R/W]
00000000
0000B8H
ITMK [R/W]
00----11 11111111
0000BCH
-
0000C0H
0000C4H
ITBA [R/W]
------00 00000000
ISMK [R/W]
01111111
ISBA [R/W]
00000000
IDAR [R/W]
00000000
ICCR [R/W]
0-011111
IDBL [R/W]
-------0
-
-
-
-
IBCR [R/W]
00000000
IBSR [R/W]
00000000
0000C8H
ITMK [R/W]
00----11 11111111
0000CCH
-
0000D0H
0000D4H
ISBA [R/W]
00000000
IDAR [R/W]
00000000
ICCR[R/W]
0-011111
IDBL [R/W]
-------0
-
-
-
-
IBCR [R/W]
00000000
IBSR [R/W]
00000000
ITMK [R/W]
00----11 11111111
0000DCH
-
0000E0H
0000E4H
ISBA [R/W]
00000000
IDAR [R/W]
00000000
ICCR [R/W]
0-011111
IDBL [R/W]
-------0
-
-
-
-
IBCR [R/W]
00000000
IBSR [R/W]
00000000
ITMK [R/W]
00----11 11111111
0000ECH
-
0000F0H
T0LPCR [R/W]
-----000
Reserved
I2C interface ch.1
Reserved
ITBA [R/W]
------00 00000000
ISMK [R/W]
01111111
0000E8H
I2C interface ch.0
ITBA [R/W]
------00 00000000
ISMK [R/W]
01111111
0000D8H
Reserved
I2C interface ch.2
Reserved
ITBA [R/W]
------00 00000000
ISMK [R/W]
01111111
ISBA [R/W]
00000000
IDAR [R/W]
00000000
ICCR [R/W]
0-011111
IDBL [R/W]
-------0
T0CCR [R/W]
0-010000
T0TCR [R/W]
00000000
T0R [R/W]
---00000
I2C interface ch.3
多機能タイマ
649
付録
表 A-1 I/O マップ (4 / 12)
Register
Address
Block
+0
0000F4H
0000F8H
0000FCH
000100H
000104H
000108H
00010CH
+1
T0DRR [R/W]
XXXXXXXX XXXXXXXX
T1LPCR [R/W]
-----000
T1CCR [R/W]
0-000000
T1DRR [R/W]
XXXXXXXX XXXXXXXX
T2LPCR [R/W]
-----000
T2CCR [R/W]
0-000000
T2DRR [R/W]
XXXXXXXX XXXXXXXX
T3LPCR [R/W]
-----000
T3CCR [R/W]
0-000000
T3DRR [R/W]
XXXXXXXX XXXXXXXX
000110H
-
000120H
PTMR0 [R]
11111111_11111111
000124H
PDUT0 [W]
XXXXXXXX_XXXXXXXX
000128H
PTMR1 [R]
11111111_11111111
00012CH
PDUT1 [W]
XXXXXXXX_XXXXXXXX
000130H
PTMR2 [R]
11111111_11111111
00134H
PDUT2 [W]
XXXXXXXX_XXXXXXXX
000138H
PTMR3 [R]
11111111_11111111
00013CH
PDUT3 [W]
XXXXXXXX_XXXXXXXX
-
+2
+3
T0CRR [R/W]
XXXXXXXX XXXXXXXX
T1TCR[R/W]
00000000
T1R [R/W]
---00000
T1CRR [R/W]
XXXXXXXX XXXXXXXX
T2TCR [R/W]
00000000
T2R [R/W]
---00000
多機能タイマ
T2CRR [R/W]
XXXXXXXX XXXXXXXX
T3TCR [R/W]
00000000
T3R [R/W]
---00000
T3CRR [R/W]
XXXXXXXX XXXXXXXX
-
-
Reserved
PCSR0 [W]
XXXXXXXX_XXXXXXXX
PPG0
PCNH0 [R/W]
00000000
PCNL0 [R/W]
00000000
PCSR1 [W]
XXXXXXXX_XXXXXXXX
PPG1
PCNH1 [R/W]
00000000
PCNL1 [R/W]
00000000
PCSR2 [W]
XXXXXXXX_XXXXXXXX
PPG2
PCNH2 [R/W]
00000000
PCNL2 [R/W]
00000000
PCSR3[W]
XXXXXXXX_XXXXXXXX
PPG3
000140H
|
0001FCH
650
-
-
PCNH3 [R/W]
00000000
PCNL3 [R/W]
00000000
-
-
Reserved
付録 A I/O マップ
表 A-1 I/O マップ (5 / 12)
Register
Address
Block
+0
+1
+2
+3
000200H
DMACA0 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
000204H
DMACB4 [R/W]
00000000 00000000 00000000 00000000
000208H
DMACA1 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
00020CH
DMACB4 [R/W]
00000000 00000000 00000000 00000000
000210H
DMACA2 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
000214H
DMACB4 [R/W]
00000000 00000000 00000000 00000000
000218H
DMACA3 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
00021CH
DMACB4 [R/W]
00000000 00000000 00000000 00000000
000220H
DMACA4 [R/W]
00000000 0000XXXX XXXXXXXX XXXXXXXX
000224H
DMACB4 [R/W]
00000000 00000000 00000000 00000000
000228H
-
00022CH
|
00023CH
-
000240H
DMACR [R/W]
0XX00000 XXXXXXXX XXXXXXXX XXXXXXXX
000244H
|
0002FCH
-
000300H
|
0003ECH
-
DMAC
Reserved
DMAC
651
付録
表 A-1 I/O マップ (6 / 12)
Register
Address
Block
+0
+1
+2
+3
0003F0H
BSD0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003F4H
BSD1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003F8H
BSDC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0003FCH
BSRR [R]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
Bit Search Module
000400H
DDR0 [R/W]
00000000
DDR1 [R/W]
00000000
DDR2 [R/W]
--000000
DDR3 [R/W]
-0000000
000404H
DDR4 [R/W]
00000000
DDR5 [R/W]
00000000
DDR6 [R/W]
--000000
DDR7 [R/W]
---00000
000408H
-
-
-
-
00040CH
-
-
-
-
000410H
PFR0 [R/W]
0--00000
PFR1 [R/W]
00000000
PFR2 [R/W]
000---00
PFR3 [R/W]
00000000
000414H
-
-
-
-
000418H
-
-
-
-
00041CH
-
-
-
-
000420H
|
00043CH
652
-
R-bus
Port Direction
Register
R-bus
Port Function
Register
Reserved
付録 A I/O マップ
表 A-1 I/O マップ (7 / 12)
Register
Address
Block
+0
+1
+2
+3
000440H
ICR00 [R/W]
---11111
ICR01 [R/W]
---11111
ICR02[R/W]
---11111
ICR03 [R/W]
---11111
000444H
ICR04 [R/W]
---11111
ICR05 [R/W]
---11111
ICR06 [R/W]
---11111
ICR07 [R/W]
---11111
000448H
ICR08 [R/W]
---11111
ICR09 [R/W]
---11111
ICR10 [R/W]
---11111
ICR11 [R/W]
---11111
00044CH
ICR12 [R/W]
---11111
ICR13 [R/W]
---11111
ICR14 [R/W]
---11111
ICR15 [R/W]
---11111
000450H
ICR16 [R/W]
---11111
ICR17 [R/W]
---11111
ICR18 [R/W]
---11111
ICR19 [R/W]
---11111
000454H
ICR20 [R/W]
---11111
ICR21 [R/W]
---11111
ICR22 [R/W]
---11111
ICR23 [R/W]
---11111
000458H
ICR24 [R/W]
---11111
ICR25 [R/W]
---11111
ICR26 [R/W]
---11111
ICR27 [R/W]
---11111
00045CH
ICR28 [R/W]
---11111
ICR29 [R/W]
---11111
ICR30 [R/W]
---11111
ICR31 [R/W]
---11111
000460H
ICR32 [R/W]
---11111
ICR33 [R/W]
---11111
ICR34 [R/W]
---11111
ICR35 [R/W]
---11111
000464H
ICR36 [R/W]
---11111
ICR37 [R/W]
---11111
ICR38 [R/W]
---11111
ICR39 [R/W]
---11111
000468H
ICR40 [R/W]
---11111
ICR41 [R/W]
---11111
ICR42 [R/W]
---11111
ICR43 [R/W]
---11111
00046CH
ICR44 [R/W]
---11111
ICR45 [R/W]
---11111
ICR46 [R/W]
---11111
ICR47 [R/W]
---11111
STCR [R/W]
00110011 (*2)
TBCR [R/W]
00XXXX00 (*1)
CTBR [W]
XXXXXXXX
-
DIVR0 [R/W]
00000011 (*1)
DIVR1[R/W]
00000000 (*1)
000470H
|
00047CH
Interrupt Control unit
-
000480H
RSRR [R/W]
10000000 (*2)
000484H
CLKR [R/W]
00000000 (*1)
Clock Control unit
OSCCR [R/W]
XXXXXXX0
000488H
00048CH
WPCR [R/W] B
00---000
時計タイマ
000490H
OSCR [R/W] B
00---000
メイン発振安定時
間待ちタイマ
653
付録
表 A-1 I/O マップ (8 / 12)
Register
Address
Block
+0
+1
000494H
|
0005FCH
+2
+3
-
Reserved
000600H
-
-
-
-
000604H
-
-
-
-
000608H
-
-
-
-
00060CH
-
-
-
-
000610H
-
-
-
-
000614H
-
-
-
-
000618H
-
-
-
-
00061CH
-
-
-
-
000620H
-
000624H
-
000628H
|
00063FH
-
654
T-unit
Port Direction
Register
T-unit
Port Function
Register
Reserved
付録 A I/O マップ
表 A-1 I/O マップ (9 / 12)
Register
Address
Block
+0
+1
+2
+3
000640H
ASR0 [R/W]
00000000 00000000 (*1)
ACR0 [R/W]
1111XX00 00000000 (*1)
000644H
ASR1 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR1 [R/W]
XXXXXXXX XXXXXXXX (*1)
000648H
ASR2 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR2 [R/W]
XXXXXXXX XXXXXXXX (*1)
00064CH
ASR3 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR3 [R/W]
XXXXXXXX XXXXXXXX (*1)
000650H
ASR4 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR4 [R/W]
XXXXXXXX XXXXXXXX (*1)
000654H
ASR5 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR5 [R/W]
XXXXXXXX XXXXXXXX (*1)
000658H
ASR6 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR6 [R/W]
XXXXXXXX XXXXXXXX (*1)
00065CH
ASR7 [R/W]
XXXXXXXX XXXXXXXX (*1)
ACR7 [R/W]
XXXXXXXX XXXXXXXX (*1)
000660H
AWR0 [R/W]
01111111 111111111 (*1)
AWR1 [R/W]
XXXXXXXX XXXXXXXX (*1)
000664H
AWR2 [R/W]
XXXXXXXX XXXXXXXX (*1)
AWR3 [R/W]
XXXXXXXX XXXXXXXX (*1)
000668H
AWR4 [R/W]
XXXXXXXX XXXXXXXX (*1)
AWR5 [R/W]
XXXXXXXX XXXXXXXX (*1)
00066CH
AWR6 [R/W]
XXXXXXXX XXXXXXXX (*1)
AWR7 [R/W]
XXXXXXXX XXXXXXXX (*1)
000670H
-
000674H
-
000678H
IOWR0 [R/W]
XXXXXXXX
IOWR1 [R/W]
XXXXXXXX
00067CH
000680H
-
-
TCR [R/W]
00000000
CSER [R/W]
00000001
CSHR [R/W]
11111111
000684H
-
000684H
|
0007F8H
-
0007FCH
IOWR2 [R/W]
XXXXXXXX
T-unit
-
MODR [W]
XXXXXXXX
Reserved
-
-
655
付録
表 A-1 I/O マップ (10 / 12)
Register
Address
Block
+0
+1
000800H
|
000AFCH
+2
+3
-
Reserved
000B00H
ESTS0 [R/W]
X0000000
ESTS1 [R/W]
XXXXXXXX
ESTS2 [R]
1XXXXXXX
-
000B04H
ECTL0 [R/W]
0X000000
ECTL1 [R/W]
00000000
ECTL2 [W]
000X0000
ECTL3 [R/W]
00X00X11
000B08H
ECNT0 [W]
XXXXXXXX
ECNT1 [W]
XXXXXXXX
EUSA [W]
XXX00000
EDTC [W]
0000XXXX
000B0CH
EWP1 [R]
00000000 00000000
-
000B10H
EDTR0 [W]
XXXXXXXX XXXXXXXX
EDTR1 [W]
XXXXXXXX XXXXXXXX
000B14H
|
000B1CH
-
000B20H
EIAC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B24H
EIA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B28H
EIA2 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B2CH
EIA3 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B30H
EIA4 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B34H
EIA5 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B38H
EIA6 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B3CH
EIA7 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B40H
EDTA [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B44H
EDTM [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B48H
EOAC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
656
DSU
付録 A I/O マップ
表 A-1 I/O マップ (11 / 12)
Register
Address
Block
+0
+1
+2
+3
000B4CH
EOA1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B50H
EPCR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B54H
EPSR [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B58H
EIAM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B5CH
EIAM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B60H
EOAM0/EODM0 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B64H
EOAM1/EODM1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B68H
EODC [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B6CH
EOD1 [W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000B70H
|
000FFCH
-
001000H
DMASA0 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001004H
DMADA0 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001008H
DMASA1 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
00100CH
DMADA1 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001010H
DMASA2 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001014H
DMADA2 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001018H
DMASA3 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
00101CH
DMADA3 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001020H
DMASA4 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
DSU
Reserved
DMAC
657
付録
表 A-1 I/O マップ (12 / 12)
Register
Address
Block
+0
+1
+2
+3
001024H
DMADA4 [R/W]
XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXX
001028H
|
006FFCH
-
007000H
FLCR [R/W]
0110_X000
007004H
FLWC [R/W]
0001_0011
DMAC
Reserved
Program FLASH I/F
007008H
|
00707CH
-
-
Reserved
007080H
|
0070FCH
Reserved
007100H
FNCR [R/W]
0110_X000
007104H
FNWC [R/W]
0001_0011
FONT FLASH I/F
-
*1:リセットレベルで初期値が異なるレジスタです。表示は , INIT レベルのものです。
*2:リセットレベルで初期値が異なるレジスタです。表示は , INIT 端子による INIT レベルのもので
す。
658
付録 A I/O マップ
表 A-2 I/O マップ (1 / 4)
Register
Address
Block
+0
+1
+2
00050000H
HR (HcRevision) [R]
00000000_00000000_00000001_00010000
00050004H
HC (HcControl) [R/W]
00000000_00000000_00000000_00000000
00050008H
HCS (HcCommandStatus) [R/W]
00000000_00000000_00000000_00000000
0005000CH
HIS (HcInterruptStatus) [R/W]
00000000_00000000_00000000_00000000
00050010H
HIE (HcInterruptEnable) [R/W]
00000000_00000000_00000000_00000000
00050014H
HID (HcInterruptDisable) [R/W]
00000000_00000000_00000000_00000000
00050018H
HHCCA (HcHCCA) [R/W]
00000000_00000000_00000000_00000000
0005000CH
HPCED (HcPeriodCurrentED) [R/W]
00000000_00000000_00000000_00000000
00050020H
HCHED (HcControlHeadED) [R/W]
00000000_00000000_00000000_00000000
00050024H
HCCED (HcControlCurrentED) [R/W]
00000000_00000000_00000000_00000000
00050028H
HBHED (HcBulkHeadED) [R/W]
00000000_00000000_00000000_00000000
0005002CH
HBCED (HcBulkCurrentED) [R/W]
00000000_00000000_00000000_00000000
00050030H
HDH (HcDoneHead) [R/W]
00000000_00000000_00000000_00000000
00050034H
HFI (HcFmInterval) [R/W]
00000000_00000000_00101110_11011111
00050038H
HFR (HcFmRemeining) [R]
00000000_00000000_00000000_00000000
0005003CH
HFN (HcFmNumber) [R]
00000000_00000000_00000000_00000000
00050040H
HPS (HcPeriodicStart) [R/W]
00000000_00000000_00000000_00000000
00050044H
HLST (HcLSThreshold) [R/W]
00000000_00000000_00000110_00101000
00050048H
HRDA (HcRhDescriptorA) [R/W]
00000001_00000000_00000000_00000010
+3
USB
Host
659
付録
表 A-2 I/O マップ (2 / 4)
Register
Address
Block
+0
+1
+2
+3
0005004CH
HRDB (HcRhDescriptorB) [R/W]
00000000_00000000_00000000_00000000
00050050H
HRS (HcRhStatus) [R/W]
00000000_00000000_00000000_000000X0
00050054H
HRPS1 (HcRhPortStatus[1]) [R/W]
00000000_00000000_00000000_00000X00
00050058H
HRPS2 (HcRhPortStatus[2]) [R/W]
00000000_00000000_00000000_00000X00
0005005CH
|
00057FFFH
RESERVED
00058000H
|
00059FFFH
SRAM 8KB
0005A000H
|
0005FFFFH
RESERVED
00060000H
FIFO0o [R]
XXXXXXXX_XXXXXXXX
FIFO0i [W]
XXXXXXXX_XXXXXXXX
00060004H
FIFO1 [R]
XXXXXXXX_XXXXXXXX
FIFO2 [W]
XXXXXXXX_XXXXXXXX
00060008H
FIFO3 [R]
XXXXXXXX_XXXXXXXX
-
0006000CH
|
0006001FH
-------RESERVED
00060020H
RESERVED
CONT1 [R/W]
000XX0XX_XXX00000
00060024H
CONT2 [R/W]
XXXXXXXX_XXX00000
CONT3 [R/W]
XXXXXXXX_XXX00000
00060028H
CONT4 [R/W]
XXXXXXXX_XXX00000
CONT5 [R/W]
XXXXXXXX_XXXX00XX
0006002CH
CONT6 [R/W]
XXXXXXXX_XXXX00XX
CONT7 [R/W]
XXXXXXXX_XXX00000
00060030H
CONT8 [R/W]
XXXXXXXX_XXX00000
CONT9 [R/W]
0XX0XXX_0XX0000
00060034H
CONT10 [R/W]
0XXX000X_X000000X
TTSIZE [R/W]
00010001_00010001
660
USB
Host
USB
Function
付録 A I/O マップ
表 A-2 I/O マップ (3 / 4)
Register
Address
Block
+0
00060038H
+1
+2
TRSIZE [R/W]
00010001_00010001
+3
RESERVED
-------RESERVED
0006003CH
00060040H
RSIZE0 [R]
XXXXXXXX_XXXX0000
RESERVED
00060044H
RSIZE1 [R]
XXXXXXXX_X0000000
RESERVED
00060048H
|
0006005FH
00060060H
-------RESERVED
RESERVED
ST1 [R/W]
XXXXXX00_00000000
-------RESERVED
00060064H
00060068H
ST2 [R]
XXXXXXXX_XXX00000
ST3 [R/W]
00XXXXXX_XXX00000
0006006CH
ST4 [R/W]
XXXXX000_00000000
ST5 [R/W]
0XX00XXX_XX000000
00060070H
|
0006FFFBH
0006FFFCH
00070000H
|
0007FFFFH
USB
Function
-------RESERVED
USBIO
--------
RESET
000-0---
-
-
-------RESERVED
RESERVED
00078000H
OSD_VADR [R/W]
XXXXXXXX_XXXXXXXX
OSD_CD1 [R/W]
XXXXXXXX_XXXXXXXX
00078004H
OSD_CD2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_RCD1 [R/W]
XXXXXXXX_XXXXXXXX
00078008H
OSD_RCD2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_SOC1 [R/W]
XXXXXXXX_0000XXXX
0007800CH
OSD_SOC2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_VDPC [R/W]
XXXXXXXX_XXXXXXXX
00078010H
OSD_HDPC [R/W]
XXXXXXXX_XXXXXXXX
OSD_CVSC [R/W]
XXXXXXXX_XXXXXXXX
00078014H
OSD_SBFCC [R/W]
XXXXXXXX_XXXXXXXX
OSD_THCC [R/W]
XXXXXXXX_XXXXXXXX
OSDC
661
付録
表 A-2 I/O マップ (4 / 4)
Register
Address
Block
+0
+1
+2
+3
00078018H
OSD_GFCC [R/W]
XXXXXXXX_XXXXXXXX
OSD_SBCC1 [R/W]
XXXXXXXX_XXXXXXXX
0007801CH
OSD_SBCC2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_SPCC1 [R/W]
XXXXXXXX_XXXXXXXX
00078020H
OSD_SPCC2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_SPCC3 [R/W]
XXXXXXXX_XXXXXXXX
00078024H
OSD_SPCC4 [R/W]
XXXXXXXX_XXXXXXXX
OSD_SYNCC [R/W]
XXXXXXXX_XXXXXXXX
00078028H
OSD_DCLKC1 [R/W]
XXXXXXXX_XXXXXXXX
OSD_DCLKC2 [R/W]
XXXXXXXX_XXXXXXXX
0007802CH
OSD_DCLKC3 [R/W]
XXXXXXXX_XXXXXXXX
OSD_IOC1 [R/W]
XXXXXXXX_XXXXXXXX
00078030H
OSD_IOC2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_DPC1 [R/W]
XXXXXXXX_XXXXXXXX
00078034H
OSD_DPC2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_DPC3 [R/W]
XXXXXXXX_XXXXXXXX
00078038H
OSD_DPC4 [R/W]
XXXXXXXX_XXXXXXXX
OSD_IRC [R/W]
XXXXXXXX_XXXXXXXX
0007803CH
OSD_PLT0 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT1 [R/W]
XXXXXXXX_XXXXXXXX
00078040H
OSD_PLT2 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT3 [R/W]
XXXXXXXX_XXXXXXXX
00078044H
OSD_PLT4 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT5 [R/W]
XXXXXXXX_XXXXXXXX
00078048H
OSD_PLT6 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT7 [R/W]
XXXXXXXX_XXXXXXXX
0007804CH
OSD_PLT8 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT9 [R/W]
XXXXXXXX_XXXXXXXX
00078050H
OSD_PLT10 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT11 [R/W]
XXXXXXXX_XXXXXXXX
00078054H
OSD_PLT12 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT13 [R/W]
XXXXXXXX_XXXXXXXX
00078058H
OSD_PLT14 [R/W]
XXXXXXXX_XXXXXXXX
OSD_PLT15 [R/W]
XXXXXXXX_XXXXXXXX
0007805CH
OSD_ACT1 [R/W]
XXXXXXXX_XXXXXXXX
OSD_ACT2 [R/W]
XXXXXXXX_XXXXXXXX
OSDC
00078060H
|
0007FFFFH
662
-------RESERVED
RESERVED
付録 B 割込みベクタ
付録 B
割込みベクタ
付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91310 の割込み要因と割込みベクタ / 割込み制御レジスタの割当てが記載されて
います。
■ 割込みベクタ
付表 B-1 割込みベクタテーブル (1 / 3)
割込み番号
オフセッ
ト
TBR デフォル
ト
のアドレス
RN
10 進
16 進
割込み
レベル
リセット
0
00
−
3FCH
000FFFFCH
−
モードベクタ
1
01
−
3F8H
000FFFF8H
−
システム予約
2
02
−
3F4H
000FFFF4H
−
システム予約
3
03
−
3F0H
000FFFF0H
−
システム予約
4
04
−
3ECH
000FFFECH
−
システム予約
5
05
−
3E8H
000FFFE8H
−
システム予約
6
06
−
3E4H
000FFFE4H
−
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
−
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
−
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
12
外部割込み 4 (USB-function)
20
14
ICR04
3ACH
000FFFACH
−
外部割込み 5 (USB-Host)
21
15
ICR05
3A8H
000FFFA8H
−
外部割込み 6 (OSDC)
22
16
ICR06
3A4H
000FFFA4H
−
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
−
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
8
割込み要因
663
付録
付表 B-1 割込みベクタテーブル (2 / 3)
割込み番号
オフセッ
ト
TBR デフォル
ト
のアドレス
RN
10 進
16 進
割込み
レベル
リロードタイマ 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
−
PPG0
39
27
ICR23
360H
000FFF60H
13
PPG1
40
28
ICR24
35CH
000FFF5CH
14
PPG2
41
29
ICR25
358H
000FFF58H
15
PPG3
42
2A
ICR26
354H
000FFF54H
−
PWC
43
2B
ICR27
350H
000FFF50H
−
システム予約
44
2C
ICR28
34CH
000FFF4CH
−
システム予約
45
2D
ICR29
348H
000FFF48H
−
メイン発振待ち
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフ
ロー
47
2F
ICR31
340H
000FFF40H
−
システム予約
48
30
ICR32
33CH
000FFF3CH
−
時計タイマ
49
31
ICR33
338H
000FFF38H
−
I2C ch.0
50
32
ICR34
334H
000FFF34H
−
I2C ch.1
51
33
ICR35
330H
000FFF30H
−
I2C
ch.2
52
34
ICR36
32CH
000FFF2CH
−
I C ch.3
53
35
ICR37
328H
000FFF28H
−
UART3 ( 受信完了 )
54
36
ICR38
324H
000FFF24H
−
UART4 ( 受信完了 )
55
37
ICR39
320H
000FFF20H
−
UART3 ( 送信完了 )
56
38
ICR40
31CH
000FFF1CH
−
割込み要因
2
664
付録 B 割込みベクタ
付表 B-1 割込みベクタテーブル (3 / 3)
割込み番号
オフセッ
ト
TBR デフォル
ト
のアドレス
RN
39
ICR41
318H
000FFF18H
−
多機能タイマ 0
58
3A
ICR42
314H
000FFF14H
−
多機能タイマ 1
59
3B
ICR43
310H
000FFF10H
−
多機能タイマ 2
60
3C
ICR44
30CH
000FFF0CH
−
多機能タイマ 3
61
3D
ICR45
308H
000FFF08H
−
システム予約
62
3E
ICR46
304H
000FFF04H
−
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
−
システム予約
(REALOS にて使用 )
64
40
−
2FCH
000FFEFCH
−
システム予約
(REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
−
システム予約
66
42
−
2F4H
000FFEF4H
−
システム予約
67
43
−
2F0H
000FFEF0H
−
システム予約
68
44
−
2ECH
000FFEECH
−
システム予約
69
45
−
2E8H
000FFEE8H
−
システム予約
70
46
−
2E4H
000FFEE4H
−
システム予約
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
50
2BCH
000FFEBCH
INT 命令で使用
255
FF
−
∼
57
∼
UART4 ( 受信完了 )
∼
16 進
∼
10 進
割込み
レベル
割込み要因
000H
000FFC00H
−
665
付録
付録 C
ドットクロック生成用 PLL について
ドットクロック生成用の内蔵 PLL には , 発振周波数に応じた 6 個の VCO がありま
す。
■ ドットクロック生成用 PLL
ドットクロック生成用の内蔵 PLL は , 下図のような LPF を CPO 端子に接続する必要が
あります。
図 C-1 CPO 端子接続
R
CPO
C2
C1
LPF の定数については , 発振周波数に依存しますので , 推奨値に関しては , お問い合わ
せください。下記に例を示します。
HSYNC
(kHz)
PLL
(MHz)
分周比
出力ク
ロック
(MHz)
VCO
n
m
15.75
1204
2
37.93
18.96
VCO1
31.5
1304
1
41.08
41.08
33.75
1320
1
44.55
45
1404
1
48
1428
1
CHG
[1:0]
外部 LPF
R (Ω)
C1 (µF)
C2 (pF)
10
915
0.22
None
VCO2
10
915
0.22
None
44.55
VCO2
10
915
0.22
None
63.18
63.18
VCO3
10
2K
0.068
2700
68.54
68.54
VCO3
10
2K
0.068
2700
● ドットクロックについて
OSDC マクロ未使用の場合は DCKO 端子に "0" レベルを入力してください 。
666
付録 D USB クロックについて
付録 D
USB クロックについて
USB クロックは 48MHz の外付け水晶発振子による発振 , または外部からの 48MHz
クロック入力によって供給されます。
■ RESET (USB クロック )
外付け水晶発振子の場合 , その発振の制御は CPU 用水晶発振子と同じ制御になります。
つまり , 以下のモードの時は USB クロックの水晶発振は停止します。
• メインクロックモードのストップモード時
• サブクロックモード時
上記モードへの遷移時と上記モードからの復帰時は USB クロック発振が安定していな
いため , USB ホストマクロが「CLOCK PULSE WIDTH ERROR」となる事があります。
この問題を回避するため , 上記状態遷移前に USB ホストマクロのソフトウェアリセッ
ト発生レジスタによって USB ホストをリセット状態にしておいてください。
また , USB マクロ未使用の場合は X0B 端子には "0" レベルを入力してください
図 D-1 USB クロックの構成
CS2X領域
bit
7
6
USB-F0x0006FFFE OVRCUR
RST
0
0
5
USB-HRST
0
4
−
3
OSDRST
0
2
1
0
−
−
−
初期値
OVRCUR:USB ホストの過電流検出ポートへ伝わります。
USB-F-RST:USB ファンクションのリセット信号です。"1" の書込みでリセット , "0" の
書込みでクリアします。
USB-H-RST:USB ホストのリセット信号です。"1" の書込みでリセット , "0" の書込みで
クリアします。
MS-RST: メモリスティックのリセット信号です。"1" の書込みでリセット , "0" の書き
込みでクリアします。
OSD-RST:OSDC のリセット信号です。"1" の書込みでリセット , "0" の書込みでクリア
します。
667
付録
( 注意事項 )
USB ホストと OSDC は , 対応するリセットビットを "1" に設定している時にレジスタア
クセスを行なうと , 応答が返らないため , CPU が停止してしまいます ( 外部インタフェー
スを RDY 許可で使用するため ) 。
また , USB ホスト・OSDC へのクロックが供給されていない状態でも同様に CPU が停止
してしまいます。
USB ホスト・OSDC へアクセスを行なう時は , 下記の状態で使用してください。
• 対応するリセットビットが "0" クリアされている状態
• 対応するクロックが供給されている状態
668
付録 E USB IO 低消費電力モードについて
付録 E
USB IO 低消費電力モードについて
MB91310 シリーズの USB IO には USB を使用しない場合のための低消費電力モー
ドが搭載されています。低消費電力モードは下記低消費電力モードレジスタを使用
して設定します。
■ USBIOLPW (USB IO 低消費電力モード設定レジスタ )
CS2X area
bit 7
0
0x0006FFFC
初期値
0x00 / Write Only
● 使用方法
0x0006FFFC 番地にデータ 0x55 をライトすることで USB IO を低消費電力モードに遷
移させることができます。本レジスタは初期値は 0x00 となっており , USB 動作時は
0x00 にする必要があります。低消費電力モードから復帰し USB 動作を開始する前に必
ず 0x0006FFFC 番地に 0x00 を書き込んでください。
669
付録
付録 F
外部バスインタフェースの設定について
本品種では , USB ホスト・USB ファンクション・OSDC がチップ内部で外部バスイ
ンタフェース経由で接続されています。
■ 外部バスインタフェースの設定について
これらのマクロへアクセスするために , 外部バスインタフェースの各種レジスタを設
定する必要があります。
以下に , 各レジスタの設定概要と , 推奨設定例を示します。
● CS0 領域 : デフォルト領域 ( 未使用 )
CS0 領域は , リセット解除後に 4GB の全領域を示すようになっていますので , 他のチッ
プセレクト領域と重ならない領域に設定します。
設定例では 0x0020_0000 以降の領域に設定しています。
● CS1 領域 :USB ホスト , USB ホスト用メモリが接続されています。
USB ホストは 32bit 幅のマクロで , リトルエンディアンで動作し , 外部レディが必要で
すので , DBW を 10(32bit), TYP を 0001( 外部レディあり ), LEND を "1"( リトルエンディ
アン ), 自動ウェイト (W15 ∼ W12) を 01(1 ウェイト ) としています。その他に , 非同期
ライトストローブ (W03), ライトリカバリサイクル (W05, W04), リードライトアイドル
サイクル (W07, W06) を設定しています。
アドレスは 0x0005_0000 からの最低領域サイズ 64KB を設定しています。
● CS2 領域 :USB ファンクションが接続されています。
USB ファンクションは 16bit 幅のマクロで , DBW を 01(16bit), TYP を 0000( 外部レディ
なし ), 自動ウェイトを 02(2 ウェイト ) としています。
アドレスは 0x0006_0000 からの最低領域サイズ 64KB を設定しています。
● CS3 領域 :OSDC が接続されています。
各マクロは 16bit 幅で , OSDC は外部レディが必要ですので , DBW を 01(16bit), TYP を
0001( 外部レディあり ), 自動ウェイトを 00(0 ウェイト ) としています。
アドレスは 0x0007_0000 からの最低領域サイズ 64KB を設定しています。
670
付録 F 外部バスインタフェースの設定について
■ 推奨設定例
// ** start initial header program
// CS0 : not use
ldi
#0x5400, r3
ldi
sth
ldi
ldi
#_ACR0, r4
r3, @r4
#_AWR0, r6
#0x0098, r5
sth
r5, @r6
ldi
#_ASR0, r7
ldi
#0x0020, r5
sth
r5, @r7
// CS1 : USB-Host(32bit)
ldi
#0x0831, r3
ldi
sth
ldi
ldi
sth
ldi
ldi
#_ACR1, r8
r3, @r8
#0x0005, r3
#_ASR1, r9
r3, @r9
#_AWR1, r4
#0x1098, r5
sth
r5, @r4
// CS2 : USB-Func(16bit)
ldi
#0x0420, r3
ldi
sth
ldi
ldi
sth
ldi
ldi
#_ACR2, r8
r3, @r8
#0x0006, r3
#_ASR2, r9
r3, @r9
#_AWR2, r4
#0x200D, r5
sth
r5, @r4
// CS3 : OSDC(16bit)
ldi
#0x0421, r3
ldi
sth
ldi
ldi
sth
ldi
ldi
#_ACR3, r8
r3, @r8
#0x0007, r3
#_ASR3, r9
r3, @r9
#_AWR3, r4
#0x0098, r5
sth
r5, @r4
ldi
ldi
stb
#_CSER, r0
#0x0f, r1
r1, @r0
// ASZ[3:0]=0101, DBW[1:0]=01, BST[1:0]=00,
// SREN=0, PFEN=0, WREN=0, LEND=0, TYP[3:0]=0000
// ACR0 for CS0 area access mode
// set bus-width & area size
// AWR0 for CS0 area access wait
// W02 = 0: CS delay = 0
// W01 = 1: RD delay = 1
// W05, 04=01: WR, WR delay = 0
// W07, 06=10: RD, WR delay = 2
// W15-12=0000: auto wait = 0
// set bus-wait
// ASR0 for CS0 area base address
// set CS0 0x0020_0000 - 0x003f_ffff
// ASZ[3:0]=0000, DBW[1:0]=10, BST[1:0]=00,
// SREN=0, PFEN=0, WREN=1, LEND=1, TYP[3:0]=0001
// CS1 0x0005_0000-0x0005_ffff
// AWR1 for CS1 area access wait
// W02 = 0: CS delay = 0
// W01 = 1: RD delay = 1
// W05, 04=01: WR, WR delay = 0
// W07, 06=10: RD, WR delay = 2
// W15-12=0001: auto wait = 1
// set bus-wait
// ASZ[3:0]=0000, DBW[1:0]=01, BST[1:0]=00,
// SREN=0, PFEN=0, WREN=1, LEND=0, TYP[3:0]=0000
// CS2 0x0006_0000-0x0006_ffff
// AWR2 for CS2 area access wait
// W02 = 0: CS delay = 0
// W01 = 1: RD delay = 1
// W05, 04=00: WR, WR delay = 0
// W07, 06=00: RD, WR delay = 0
// W15-12=0010: auto wait = 2
// set bus-wait
// ASZ[3:0]=0000, DBW[1:0]=01, BST[1:0]=00,
// SREN=0, PFEN=0, WREN=1, LEND=0, TYP[3:0]=0001
// CS3 0x0007_0000-0x0007_ffff
// AWR3 for CS3 area access wait
// W02 = 0: CS delay = 0
// W01 = 1: RD delay = 1
// W05, 04=01: WR, WR delay = 0
// W07, 06=10: RD, WR delay = 2
// W15-12=0000: auto wait = 0
// set bus-wait
//
// CS0, CS1, CS2, CS3 enable
671
付録
付録 G
端子状態一覧
表 G-1 に端子状態一覧表を示します。
■ 端子状態一覧
表 G-1 端子状態一覧 ( 1 / 2 )
Pin
name
指定機能名
機能名
1
DOCKI
−
2
FH
−
SLEEP
HZ=0
HZ=1
INTX=L 時
INTX=H 時
DOCKI
入力状態
入力状態
入力状態
入力状態
入力状態
FH
"L" 出力
"L" 出力
直前状態保持
直前状態保持
直前状態保持
入力状態
入力状態
入力状態
入力状態
入力状態
出力 Hi-Z
入力可
出力 Hi-Z
入力可
直前状態保持
直前状態保持
出力 Hi-Z
入力 0 固定
3
VSYNC
−
VSYNC
4
HSYNC
−
HSYNC
36
P00
SCL0
P00
37
P01
SDA0
P01
38
P02
SCL1
P02
39
P03
SDA1
P03
46
P04
SCL2
P04
47
P05
SDA2
P05
48
P06
SCL3
P06
49
P07
SCL4
P07
50
P10
SDA3
P10
51
P11
SDA4
P11
52
P12
SI0
P12
53
P13
SO0
P13
54
P14
SCK0
P14
55
P15
SI1
P15
56
P16
SO1
P16
57
P17
SCK1
P17
58
P20
SI2
P20
59
P21
SO2
P21
60
P22
SCK2
P22
61
P23
SI3
P23
62
P24
SO3
P24
63
P25
SCK3
P25
64
P30
SI4/TIN0
P30
65
P31
SO4/TIN1
P31
66
P32
SCK4/TIN2
P32
67
P33
TO0
P33
68
P34
TO1
P34
69
P35
TO2
P35
70
P36
RIN
P36
71
P40
TMO0
P40
72
P41
TMO1
P41
73
P42
TMO2
P42
672
STOP
初期値
備考
付録 G 端子状態一覧
表 G-1 端子状態一覧 ( 2 / 2 )
Pin
name
指定機能名
74
P43
TMO3
P43
80
P44
PPG0
P44
81
P45
PPG1
P45
82
P46
PPG2
P46
83
P47
PPG3
P47
88
P50
TMI0
P50
89
P51
TMI1
P51
90
P52
TMI2
P52
91
P53
TMI3
P53
92
P54
TRG0
P54
93
P55
TRG1
P55
94
P56
TRG2
P56
95
P57
TRG3
P57
96
P60
ATRG
P60
97
P61
-
P61
98
P62
INT0
P62
99
P63
INT1
P63
100
P64
INT2
P64
101
P65
INT3
P65
機能名
102
NMI
−
NMI
109
ICS0
−
ICS0
110
ICS1
−
ICS1
111
ICS2
−
ICS2
112
ICD0
−
ICD0
113
ICD1
−
ICD1
114
ICD2
−
ICD2
115
ICD3
−
ICD3
116
P70
−
P70
117
P71
−
P71
118
P72
−
P72
119
P73
−
P73
120
P74
−
P74
126
UDM
−
UDM
127
UDP
−
UDP
128
UHM
−
UHM
129
UHP
−
UHP
130
B0
−
B0
131
B1
−
B1
132
B2
−
B2
133
G0
−
G0
134
G1
−
G1
135
G2
−
G2
136
R0
−
R0
137
R1
−
R1
138
R2
−
R2
142
VOB2
−
VOB2
143
VOB1
−
VOB1
144
DCKO
−
DCKO
STOP
初期値
INTX=L 時
出力 Hi-Z
入力可
SLEEP
INTX=H 時
出力 Hi-Z
入力可
HZ=0
HZ=1
直前状態保持
出力 Hi-Z
入力 0 固定
直前状態保持
P: 直前状態保持
F: 入力可
入力状態
入力状態
備考
入力状態
入力状態
P: 出力 Hi-Z
F: 入力可
入力状態
MB91F312 ではオープン端
子です。
出力 Hi-Z
入力可
出力 Hi-Z
入力 0 固定
出力 Hi-Z
入力可
直前状態保持
直前状態保持
直前状態保持
"L" 出力
"L" 出力 "
673
付録
付録 H
命令一覧
FR ファミリの命令一覧表を示します。その前に , 命令一覧を理解するために次の事
項について説明します。
・命令一覧表の読み方
・アドレッシングモードの記号
・命令フォーマット
■ 命令一覧表の読み方
ニーモニック
OP
型
CYCLE
NZVC
動作
備考
ADD
Rj,
Rj
A
AG
1
CCCC
Ri+Rj → Rj
*ADD
#s5,
Rj
C
A4
1
CCCC
Ri+s5 → Ri
,
,
,
,
,
,
,
,
,
,
,
,
↓
3.
↓
4.
↓
5.
↓
6.
↓
7.
↓
1.
↓
2.
1. 命令名が示されています。
- *印は, CPU仕様にはなくアセンブラで命令を拡張または追加した拡張命令です。
2. オペランドに指定可能なアドレッシングモードを記号で示されています。
- 記号の意味は , 「■アドレッシングモードの記号」を参照してください。
3. 命令フォーマットが示されています。
4. 命令コードが 16 進数表示されています。
5. マシンサイクル数を表しています。
- a: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。
- b: メモリアクセスサイクルであり , Ready 機能により延びる可能性があります。た
だし, LD動作の対象となるレジスタを直後の命令が参照する場合にはインタロッ
クがかかり , 実行サイクル数が +1 増加します。
- c: 直後の命令が , R15, SSP または USP に対し , 読出しまたは書込みを行う命令で
あるときまたは命令フォーマット A の命令であるとき , インタロックがかかり ,
実行サイクル数は +1 増加して 2 となります。
- d: 直後の命令が MDH/MDL を参照する場合インタロックがかかり , 実行サイクル
数は増加して 2 となります。
- a, b, c, d とも最小は 1 サイクルです。
6. フラグ変化を表しています。
フラグ変化
フラグの意味
C: 変化する
- : 変化しない
0: クリア
1: セット
N : ネガティブフラグ
Z : ゼロフラグ
V : オーバフラグ
C: キャリフラグ
7. 命令動作が表記されています。
674
付録 H 命令一覧
■ アドレッシングモードの記号
表 H-1 アドレッシングモードの記号説明
記号
意味
Ri
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
Rj
レジスタ直接 (R0 ∼ R15, AC, FP, SP)
R13
レジスタ直接 (R13, AC)
Ps
レジスタ直接 ( プログラムステータスレジスタ )
Rs
レジスタ直接 (TBR, RP, SSP, USP, MDH, MDL)
CRi
レジスタ直接 (CR0 ∼ CR15)
CRj
レジスタ直接 (CR0 ∼ CR15)
#i8
符号なし 8 ビット即値 (-128 ∼ 255)
( 注意事項 ) -128 ∼ -1 は , 128 ∼ 255 として扱います。
#i20
符号なし 20 ビット即値 (-0X80000 ∼ 0XFFFFF)
( 注意事項 ) -0X7FFFF ∼ -1 は , 0X7FFFF ∼ 0XFFFFF として扱います。
#i32
符号なし 32 ビット即値 (-0X80000000 ∼ 0XFFFFFFFF)
( 注意事項 ) -0X80000000 ∼ -1 は , 0X80000000 ∼ 0XFFFFFFFF として扱います。
#s5
符号付き 5 ビット即値 (-16 ∼ 15)
#s10
符号付き 10 ビット即値 (-512 ∼ 508, 4 の倍数のみ )
#u4
符号なし 4 ビット即値 (0 ∼ 15)
#u5
符号なし 5 ビット即値 (0 ∼ 31)
#u8
符号なし 8 ビット即値 (0 ∼ 255)
#u10
符号なし 10 ビット即値 (0 ∼ 1020, 4 の倍数のみ )
@dir8
符号なし 8 ビット直接アドレス (0 ∼ 0XFF)
@dir9
符号なし 9 ビット直接アドレス (0 ∼ 0X1FE, 2 の倍数のみ )
@dir10
符号なし 10 ビット直接アドレス (0 ∼ 0X3FC, 4 の倍数のみ )
label9
符号付き 9 ビット分岐アドレス (-0X100 ∼ 0XFC, 2 の倍数のみ )
label12
符号付き 12 ビット分岐アドレス (-0X800 ∼ 0X7FC, 2 の倍数のみ )
label20
符号付き 20 ビット分岐アドレス (-0X80000 ∼ 0X7FFFF)
label32
符号付き 32 ビット分岐アドレス (-0X80000000 ∼ 0X7FFFFFFF)
@Ri
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@Rj
レジスタ間接 (R0 ∼ R15, AC, FP, SP)
@(R13, Rj)
レジスタ相対間接 (Rj:R0 ∼ R15, AC, FP, SP)
@(R14, disp10)
レジスタ相対間接 (disp10:-0X200 ∼ 0X1FC4 の倍数のみ )
@(R14, disp9)
レジスタ相対間接 (disp9:-0X100 ∼ 0XFE2 の倍数のみ )
@(R14, disp8)
レジスタ相対間接 (disp8:-0X80 ∼ 0X7F)
@(R15, udisp6)
レジスタ相対間接 (udisp6:0 ∼ 604 の倍数のみ )
@Ri+
ポストインクリメント付きレジスタ間接 (R0 ∼ R15, AC, FP, SP)
@R13+
ポストインクリメント付きレジスタ間接 (R13, AC)
@SP+
スタックポップ
@-SP
スタックプッシュ
(reglist)
レジスタリスト
675
付録
■ 命令フォーマット
表 H-2 命令フォーマット
型
命令フォーマット
A
B
C
C’
D
E
F
676
ADD, ADDN, CMP, LSL, LSR, ASR 命令のみ
付録 H 命令一覧
H.1
FR ファミリの命令一覧表
FR ファミリの命令一覧表を下記の命令順に記載します。
■ FR ファミリの命令一覧表
表 H.1-1 加減算命令
表 H.1-2 比較演算命令
表 H.1-3 論理演算命令
表 H.1-4 ビット操作命令
表 H.1-5 乗除算命令
表 H.1-6 シフト命令
表 H.1-7 即値セット /16 ビット /32 ビット即値転送命令
表 H.1-8 メモリロード命令
表 H.1-9 メモリストア命令
表 H.1-10 レジスタ間転送命令
表 H.1-11 通常分岐 ( 遅延なし ) 命令
表 H.1-12 遅延分岐命令
表 H.1-13 その他の命令
表 H.1-14 20 ビット通常分岐マクロ命令
表 H.1-15 20 ビット遅延分岐マクロ命令
表 H.1-16 32 ビット通常分岐マクロ命令
表 H.1-17 32 ビット遅延分岐マクロ命令
表 H.1-18 ダイレクトアドレッシング命令
表 H.1-19 リソース命令
表 H.1-20 コプロセッサ制御命令
677
付録
■ 加減算命令
表 H.1-1 加減算命令
ニーモニック
型
OP
CYCLE
NZVC
動作
ADD Rj, Ri
A
A6
1
CCCC
Ri+Rj → Ri
*ADD #s5, Ri
C'
A4
1
CCCC
Ri+s5 → Ri
アセンブラでは上位
1 ビットを符号と見る
ADD #u4, Ri
C
A4
1
CCCC
Ri+extu(i4) → Ri
ゼロ拡張
ADD2 #u4, Ri
C
A5
1
CCCC
Ri+extu(i4) → Ri
マイナス拡張
ADDCRj, Ri
A
A7
1
CCCC
Ri+Rj+c → Ri
キャリ付き加算
備考
ADDN Rj, Ri
A
A2
1
----
Ri+Rj → Ri
*ADDN #s5, Ri
C'
A0
1
----
Ri+s5 → Ri
アセンブラでは上位
1 ビットを符号と見る
ADDN #u4, Ri
C
A0
1
----
Ri+extu(i4) → Ri
ゼロ拡張
Ri+extu(i4) → Ri
マイナス拡張
ADDN2 #u4, Ri
C
A1
1
----
SUB Rj, Ri
A
AC
1
CCCC
RiRj → Ri
SUBC Rj, Ri
A
AD
1
CCCC
RiRj c → Ri
SUBN Rj, Ri
A
AE
1
----
Ri-Rj → Ri
キャリ付き減算
■ 比較演算命令
表 H.1-2 比較演算命令
ニーモニック
型
OP
CYCLE
NZVC
動作
CMP Rj, Ri
*CMP #s5, Ri
A
C'
AA
A8
1
1
CCCC
CCCC
Ri-Rj
Ri-s5
CMP #u4, Ri
C
A8
1
CCCC
Ri-extu(i4)
ゼロ拡張
CMP2 #u4, Ri
C
A9
1
CCCC
Ri-extu(i4)
マイナス拡張
備考
アセンブラでは上位
1 ビットを符号と見る
■ 論理演算命令
表 H.1-3 論理演算命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
AND Rj, Ri
A
82
1
CC--
Ri &=Rj
ワード
AND Rj, @Ri
A
84
1+2a
CC--
(Ri) &=Rj
ワード
ANDH Rj, @Ri
A
85
1+2a
CC--
(Ri) &=Rj
ハーフワード
ANDB Rj, @Ri
A
86
1+2a
CC--
(Ri) &=Rj
バイト
OR Rj, Ri
A
92
1
CC--
Ri | =Rj
ワード
OR Rj, @Ri
A
94
1+2a
CC--
(Ri) | =Rj
ワード
ORH Rj, @Ri
A
95
1+2a
CC--
(Ri) | =Rj
ハーフワード
ORB Rj, @Ri
A
96
1+2a
CC--
(Ri) | =Rj
バイト
EOR Rj, Ri
A
9A
1
CC--
Ri ^ =Rj
ワード
EOR Rj, @Ri
A
9C
1+2a
CC--
(Ri) ^ =Rj
ワード
EORH Rj, @Ri
A
9D
1+2a
CC--
(Ri) ^ =Rj
ハーフワード
EORB Rj, @Ri
A
9E
1+2a
CC--
(Ri) ^ =Rj
バイト
678
付録 H 命令一覧
■ ビット操作命令
表 H.1-4 ビット操作命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
BANDL #u4, @Ri
C
80
1+2a
----
(Ri) &=(0xF0+u4)
下位 4 ビットを操作
C
81
1+2a
----
(Ri) &=((u4< <4)+0x0F)
上位 4 ビットを操作
----
(Ri) &=u8
BANDH #u4, @Ri
*BAND #u8, @Ri
*1
BORL #u4, @Ri
C
90
1+2a
----
(Ri) | =u4
下位 4 ビットを操作
BORH #u4, @Ri
C
91
1+2a
----
(Ri) | =(u4< <4)
上位 4 ビットを操作
----
(Ri) | =u8
*BOR #u8, @Ri
*2
BEORL #u4, @Ri
BEORH #u4, @Ri
*BEOR #u8, @Ri
C
98
1+2a
----
(Ri) ^ =u4
下位 4 ビットを操作
C
99
1+2a
----
(Ri) ^ =(u4< <4)
上位 4 ビットを操作
----
(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 の両方を生成する場合もあります。
■ 乗除算命令
表 H.1-5 乗除算命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
MUL Rj, Ri
A
AF
5
CCC-
Ri*Rj → MDH, MDL
32bit*32bit=64bit
MULU Rj, Ri
A
AB
5
CCC-
Ri*Rj → MDH, MDL
符号なし
MULH Rj, Ri
A
BF
3
CC--
Ri*Rj → MDL
16bit*16bit=32bit
MULUH Rj, Ri
A
BB
3
CC--
Ri*Rj → MDL
符号なし
DIV0S Ri
E
97-4
1
----
ステップ演算
DIV0U Ri
E
97-5
1
----
32bit/32bit=32bit
DIV1 Ri
E
97-6
d
-C-C
DIV2 Ri
E
97-7
1
-C-C
DIV3
E
9F-6
1
----
DIV4S
E
9F-7
1
----
36
-C-C
*DIV Ri *1
MDL/Ri → MDL,
MDL%Ri → MDH
*DIVU Ri *2
-C-C
MDL/Ri → MDL,
MDL%Ri → MDH
*1:DIV0S, DIV1 × 32, DIV2, DIV3, DIV4S を生成します。命令コード長は , 72 バイトとなります。
*2:DIV0U, DIV1 × 32 を生成します。命令コード長は , 66 バイトとなります。
679
付録
■ シフト命令
表 H.1-6 シフト命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
LSL Rj, Ri
A
B6
1
CC-C
Ri < <Rj → Ri
論理シフト
*LSL #u5, Ri(u5:0 ∼ 31)
C'
B4
1
CC-C
Ri < <u5 → Ri
LSL #u4, Ri
C
B4
1
CC-C
Ri < <u4 → Ri
LSL2 #u4, Ri
C
B5
1
CC-C
Ri < <(u4+16)→Ri
LSR Rj, Ri
A
B2
1
CC-C
Ri > >Rj → Ri
*LSR #u5, Ri(u5:0 ∼ 31)
C'
B0
1
CC-C
Ri > >u5 → Ri
LSR #u4, Ri
C
B0
1
CC-C
Ri > >u4 → Ri
LSR2 #u4, Ri
C
B1
1
CC-C
Ri > >(u4+16)→Ri
ASR Rj, Ri
A
BA
1
CC-C
Ri > >Rj → Ri
*ASR #u5, Ri(u5:0 ∼ 31)
C'
B8
1
CC-C
Ri > >u5 → Ri
ASR #u4, Ri
C
B8
1
CC-C
Ri > >u4 → Ri
ASR2 #u4, Ri
C
B9
1
CC-C
Ri > >(u4+16)→Ri
論理シフト
算術シフト
■ 即値セット /16 ビット /32 ビット即値転送命令
表 H.1-7 即値セット /16 ビット /32 ビット即値転送命令
ニーモニック
型
OP
CYCLE
NZVC
動作
LDI:32 #i32, Ri
E
9F-8
3
----
i32 → Ri
LDI:20#i20, Ri
C
9B
2
----
i20 → Ri
上位 12 ビットはゼロ拡張
LDI:8#i8, Ri
B
C0
1
----
i8 → Ri
上位 24 ビットはゼロ拡張
*LDI#{i8 | i20 | i32}, Ri
*:
680
*
備考
{i8 | i20 | i32}→ Ri
即値が絶対値の場合は , i8, i20, i32 の選択はアセンブラが自動的に行います。
即値が , 相対値または外部参照シンボルを含む場合は , i32 が選択されます。
付録 H 命令一覧
■ メモリロード命令
表 H.1-8 メモリロード命令
ニーモニック
型
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
20
b
----
(R14+disp10) → Ri
LD @(R15, udisp6), Ri
C
03
b
----
(R15+udisp6) → Ri
LD @R15+, Ri
E
07-0
b
----
(R15) → Ri, R15+=4
LD @R15+, Rs
E
07-8
b
----
(R15) → Rs, R15+=4
LD @R15+, PS
E
07-9
1+a+b
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
40
b
----
(R14+disp9) → Ri
ゼロ拡張
LDUB @Rj, Ri
A
06
b
----
(Rj) → Ri
ゼロ拡張
LDUB @(R13, Rj), Ri
A
02
b
----
(R13+Rj) → Ri
ゼロ拡張
LDUB @(R14, disp8), Ri
B
60
b
----
(R14+disp8) → Ri
ゼロ拡張
備考
Rs: 特殊レジスタ *
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
- disp10/4 → o8, disp9/2 → o8, disp8 → o8 ; disp10, disp9, disp8 は符号付きです。
- udisp6/4 → o4 ; udisp6 は , 符号なしです。
681
付録
■ メモリストア命令
表 H.1-9 メモリストア命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
ST Ri, @Rj
A
14
a
----
Ri → (Rj)
ワード
ST Ri, @(R13, Rj)
A
10
a
----
Ri → (R13+Rj)
ワード
ST Ri, @(R14, disp10)
B
30
a
----
Ri → (R14+disp10)
ワード
ST Ri, @(R15, udisp6)
C
13
a
----
Ri → (R15+udisp6)
ST Ri, @-R15
E
17-0
a
----
R15-=4, Ri → (R15)
ST Rs, @-R15
E
17-8
a
----
R15-=4, Rs → (R15)
ST PS, @-R15
E
17-9
a
----
R15-=4, PS → (R15)
STH Ri, @Rj
A
15
a
----
Ri → (Rj)
ハーフワード
STH Ri, @(R13, Rj)
A
11
a
----
Ri → (R13+Rj)
ハーフワード
STH Ri, @(R14, disp9)
B
50
a
----
Ri → (R14+disp9)
ハーフワード
STB Ri, @Rj
A
16
a
----
Ri → (Rj)
バイト
STB Ri, @(R13, Rj)
A
12
a
----
Ri → (R13+Rj)
バイト
STB Ri, @(R14, disp8)
B
70
a
----
Ri → (R14+disp8)
バイト
Rs: 特殊レジスタ *
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
<注意事項>
ハード仕様の o8, o4 のフィールドには , 次のようにアセンブラが計算して値を設定しま
す。
- disp10/4 → o8, disp9/2 → o8, disp8 → o8 ; disp10, disp9, disp8 は符号付きです。
- udisp6/4 → o4 ; udisp6 は , 符号なしです。
■ レジスタ間転送命令
表 H.1-10 レジスタ間転送命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
MOV Rj, Ri
A
8B
1
----
Rj → Ri
汎用レジスタ間転送
MOV Rs, Ri
A
B7
1
----
Rs → Ri
Rs: 特殊レジスタ *
MOV Ri, Rs
E
B3
1
----
Ri → Rs
Rs: 特殊レジスタ *
MOV PS, Ri
E
17-1
1
----
PS → Ri
MOV Ri, PS
E
07-1
c
CCCC
Ri → PS
*: 特殊レジスタ Rs:TBR, RP, USP, SSP, MDH, MDL
682
付録 H 命令一覧
■ 通常分岐 ( 遅延なし ) 命令
表 H.1-11 通常分岐 ( 遅延なし ) 命令
ニーモニック
型
OP
CYCLE
NZVC
動作
JMP @Ri
E
97-0
2
----
Ri → PC
CALL label12
F
D0
2
----
PC+2 → RP,
CALL @Ri
E
97-1
2
----
PC+2 → RP, Ri → PC
RET
E
97-2
2
----
RP → PC
INT #u8
D
1F
3+3a
----
SSP-=4, PS → (SSP),
備考
PC+2+(label12-PC-2) →PC
リターン
SSP-=4, PC+2 → (SSP),
0→Iフラグ, 0→Sフラグ,
(TBR+0x3FC-u8×4)→PC
INTE
E
9F-3
3+3a
----
SSP-=4, PS → (SSP),
エミュレータ用
SSP-=4, PC+2 → (SSP),
0 → S フラグ ,
(TBR+0x3D8) → PC
RETI
E
97-3
2+2A
CCCC
BRA label9
D
E0
2
----
PC+2+(label9-PC-2) → PC
非分岐
if(Z==1)then
(R15) → PC, R15-=4,
(R15) → PS, R15-=4
BNO label9
D
E1
1
----
BEQ label9
D
E2
2/1
----
BNE label9
D
E3
2/1
----
↑ s/Z==0
BC label9
D
E4
2/1
----
↑ s/C==1
BNC label9
D
E5
2/1
----
↑ s/C==0
BN label9
D
E6
2/1
----
↑ s/N==1
BP label9
D
E7
2/1
----
↑ s/N==0
BV label9
D
E8
2/1
----
↑ s/V==1
BNV label9
D
E9
2/1
----
↑ s/V==0
PC+2+(label9-PC-2) → PC
BLT label9
D
EA
2/1
----
↑ s/VxorN==1
BGE label9
D
EB
2/1
----
↑ s/VxorN==0
BLE label9
D
EC
2/1
----
↑ s/(VxorN)orZ==1
BGT label9
D
ED
2/1
----
↑ s/(VxorN)orZ==0
BLS label9
D
EE
2/1
----
↑ s/CorZ==1
BHI label9
D
EF
2/1
----
↑ s/CorZ==0
<注意事項>
• CYCLE 数の「2/1」は , 分岐するとき 2, 分岐しないとき 1 であることを示します。
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8 ; label12, label9 は符号付きです。
• RETI 命令を実行するときは , S フラグが "0" であることが必要です。
683
付録
■ 遅延分岐命令
表 H.1-12 遅延分岐命令
ニーモニック
型
OP
CYCLE
NZVC
動作
JMP:D @Ri
E
9F-0
1
----
Ri → PC
CALL:D label12
F
D8
1
----
PC+4 → RP,
備考
PC+2+(label12-PC-2) → PC
CALL:D @Ri
E
9F-1
1
----
PC+4 → RP, Ri → PC
RET:D
E
9F-2
1
----
RP → PC
BRA:D label9
D
F0
1
----
PC+2+(label9-PC-2) → PC
BNO:D label9
D
F1
1
----
非分岐
BEQ:D label9
D
F2
1
----
if(Z==1)then
リターン
PC+2+(label9-PC-2) → PC
BNE:D label9
D
F3
1
----
↑ s/Z==0
BC:D label9
D
F4
1
----
↑ s/C==1
BNC:D label9
D
F5
1
----
↑ s/C==0
BN:D label9
D
F6
1
----
↑ s/N==1
BP:D label9
D
F7
1
----
↑ s/N==0
BV:D label9
D
F8
1
----
↑ s/V==1
BNV:D label9
D
F9
1
----
↑ s/V==0
BLT:D label9
D
FA
1
----
↑ s/VxorN==1
BGE:D label9
D
FB
1
----
↑ s/VxorN==0
BLE:D label9
D
FC
1
----
↑ s/(VxorN)orZ==1
BGT:D label9
D
FD
1
----
↑ s/(VxorN)orZ==0
BLS:D label9
D
FE
1
----
↑ s/CorZ==1
BHI:D label9
D
FF
1
----
↑ s/CorZ==0
<注意事項>
• ハード仕様の rel11, rel8 のフィールドには , 次のようにアセンブラが計算して値を設定
します。
(label12-PC-2)/2 → rel11, (label9-PC-2)/2 → rel8 ; label12, label9 は符号付きです。
• 遅延分岐は必ず次の命令 ( 遅延スロット ) を実行してから分岐します。
• 遅延スロットに置くことができる命令は , すべての 1 サイクル , a, b, c, d サイクル命令
です。複数サイクル命令は置けません。
684
付録 H 命令一覧
■ その他の命令
表 H.1-13 その他の命令
ニーモニック
型
OP
CYCLE
NZVC
動作
NOP
E
9F-A
1
----
何も変化しない
ANDCCR #u8
D
83
c
CCCC
CCR and u8 → CCR
ORCCR #u8
D
93
c
CCCC
CCRor u8 → CCR
STILM #u8
D
87
1
----
D
A3
1
----
i8 → ILM
R15+=s10
符号拡張 8 → 32bit
ADDSP #s10
EXTSB Ri
*1
E
97-8
1
----
EXTUB Ri
E
97-9
1
----
ゼロ拡張 8 → 32bit
EXTSH Ri
E
97-A
1
----
符号拡張 16 → 32bit
EXTUH Ri
E
97-B
1
----
ゼロ拡張 16 → 32bit
LDM0(reglist)
D
8C
----
(R15) → reglist,
LDM1(reglist)
D
8D
----
備考
ILM 即値セット
ADDSP 命令
ロードマルチ R0-R7
R15 インクリメント
(R15) → reglist,
ロードマルチ R8-R15
R15 インクリメント
*LDM (reglist)
----
*2
(R15) → reglist,
ロードマルチ R0-R15
R15 インクリメント
STM0(reglist)
D
8E
----
R15 ディクリメント ,
ストアマルチ R0-R7
reglist → (R15)
STM1(reglist)
D
8F
----
R15 ディクリメント ,
ストアマルチ R8-R15
reglist → (R15)
*STM (reglist) *3
----
R15 ディクリメント ,
----
R14 → (R15-4),
ストアマルチ R0-R15
reglist → (R15)
ENTER #u10
*4
D
0F
1+a
関数の入口処理
R15-4 → R14,
R15-u10 → R15
LEAVE
E
9F-9
b
----
XCHB @Rj, Ri
A
8A
2a
----
R14+4 → R15,
関数の出口処理
(R15-4) → R14
Ri → TEMP
セマフォ管理用
(Rj) → Ri
バイトデータ
TEMP → (Rj)
*1: s10 はアセンブラが , s10/4 を計算して s8 にして値を設定します。s10 は符号付きです。
*2: reglist で , R0-R7 のどちらかの指定があれば , LDM0 を生成し , R8-R15 のどちらかの指定があ
れば , LDM1 を生成します。LDM0, LDM1 の両方を生成する場合もあります。
*3: reglist で , R0-R7 のどちらかの指定があれば , STM0 を生成し , R8-R15 のどちらかの指定があ
れば , STM1 を生成します。STM1, STM0 の両方を生成する場合もあります。
*4: u10 はアセンブラが , u10/4 を計算して u8 にして値を設定します。u10 は符号なしです。
<注意事項>
• LDM0(reglist), LDM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*(n-1)+b+1 サイクルとなります。
• STM0(reglist), STM1(reglist) の実行サイクル数は , 指定されたレジスタ数が n のとき ,
a*n+1 サイクルとなります。
685
付録
■ 20 ビット通常分岐マクロ命令
表 H.1-14 20 ビット通常分岐マクロ命令
ニーモニック
動作
備考
*CALL20 label20, Ri
次の命令のアドレス→ RP,
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20 label20, Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20 label20, Ri
if(Z==1)thenlabel20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20 label20, Ri
↑ s/Z==0
↑
*BC20 label20, Ri
↑ s/C==1
↑
*BNC20 label20, Ri
↑ s/C==0
↑
*BN20 label20, Ri
↑ s/N==1
↑
*BP20 label20, Ri
↑ s/N==0
↑
*BV20 label20, Ri
↑ s/V==1
↑
*BNV20 label20, Ri
↑ s/V==0
↑
*BLT20 label20, Ri
↑ s/VxorN==1
↑
*BGE20 label20, Ri
↑ s/VxorN==0
↑
*BLE20 label20, Ri
↑ s/(VxorN)orZ==1
↑
*BGT20 label20, Ri
↑ s/(VxorN)orZ==0
↑
*BLS20 label20, Ri
↑ s/CorZ==1
↑
*BHI20 label20, Ri
↑ s/CorZ==0
↑
参考 :
• CALL20
-label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL label12
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:20 #label20, Ri
CALL @Ri
• BRA20
-label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA label9
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:20 #label20, Ri
JMP @Ri
• Bcc20
-label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc label9
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI:20 #label20, Ri
JMP @Ri
false:
686
付録 H 命令一覧
■ 20 ビット遅延分岐マクロ命令
表 H.1-15 20 ビット遅延分岐マクロ命令
ニーモニック
動作
備考
*CALL20:D label20, Ri
次の命令のアドレス +2 → RP,
Ri: テンポラリレジスタ ( 参考 1 参照 )
label20 → PC
*BRA20:D label20, Ri
label20 → PC
Ri: テンポラリレジスタ ( 参考 2 参照 )
*BEQ20:D label20, Ri
if(Z==1)thenlabel20 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE20:D label20, Ri
↑ s/Z==0
↑
*BC20:D label20, Ri
↑ s/C==1
↑
*BNC20:D label20, Ri
↑ s/C==0
↑
*BN20:D label20, Ri
↑ s/N==1
↑
*BP20:D label20, Ri
↑ s/N==0
↑
*BV20:D label20, Ri
↑ s/V==1
↑
*BNV20:D label20, Ri
↑ s/V==0
↑
*BLT20:D label20, Ri
↑ s/VxorN==1
↑
*BGE20:D label20, Ri
↑ s/VxorN==0
↑
*BLE20:D label20, Ri
↑ s/(VxorN)orZ==1
↑
*BGT20:D label20, Ri
↑ s/(VxorN)orZ==0
↑
*BLS20:D label20, Ri
↑ s/CorZ==1
↑
*BHI20:D label20, Ri
↑ s/CorZ==0
↑
参考 :
• CALL20:D
-label20-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:20 #label20, Ri
CALL:D @Ri
• BRA20:D
-label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:20 #label20, Ri
JMP:D @Ri
• Bcc20:D
-label20-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D label9
-label20-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI:20 #label20, Ri
JMP:D @Ri
false:
687
付録
■ 32 ビット通常分岐マクロ命令
表 H.1-16 32 ビット通常分岐マクロ命令
ニーモニック
動作
備考
*CALL32 label32, Ri
次の命令のアドレス→ RP,
Ri: テンポラリレジスタ ( 参考 1 参照 )
label32 → PC
*BRA32 label32, Ri
label32 → PC
*BEQ32 label32, Ri
if(Z==1)thenlabel32 → PC
Ri: テンポラリレジスタ ( 参考 3 参照 )
*BNE32 label32, Ri
↑ s/Z==0
↑
*BC32 label32, Ri
↑ s/C==1
↑
*BNC32 label32, Ri
↑ s/C==0
↑
*BN32 label32, Ri
↑ s/N==1
↑
*BP32 label32, Ri
↑ s/N==0
↑
*BV32 label32, Ri
↑ s/V==1
↑
*BNV32 label32, Ri
↑ s/V==0
↑
*BLT32 label32, Ri
↑ s/VxorN==1
↑
*BGE32 label32, Ri
↑ s/VxorN==0
↑
*BLE32 label32, Ri
↑ s/(VxorN)orZ==1
↑
*BGT32 label32, Ri
↑ s/(VxorN)orZ==0
↑
*BLS32 label32, Ri
↑ s/CorZ==1
↑
*BHI32 label32, Ri
↑ s/CorZ==0
↑
Ri: テンポラリレジスタ ( 参考 2 参照 )
参考 :
• CALL32
-label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL label12
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32, Ri
CALL @Ri
• BRA32
-label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA label9
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32, Ri
JMP @Ri
• Bcc32
-label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc label9
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI:32 #label32, Ri
JMP @Ri
false:
688
付録 H 命令一覧
■ 32 ビット遅延分岐マクロ命令
表 H.1-17 32 ビット遅延分岐マクロ命令
ニーモニック
動作
備考
*CALL32:D label32, Ri
次の命令のアドレス +2 → RP,
Ri:テンポラリレジスタ(参考1参照)
label32 → PC
*BRA32:D label32, Ri
label32 → PC
Ri:テンポラリレジスタ(参考2参照)
*BEQ32:D label32, Ri
if(Z==1)thenlabel32 → PC
Ri:テンポラリレジスタ(参考3参照)
*BNE32:D label32, Ri
↑ s/Z==0
↑
*BC32:D label32, Ri
↑ s/C==1
↑
*BNC32:D label32, Ri
↑ s/C==0
↑
*BN32:D label32, Ri
↑ s/N==1
↑
*BP32:D label32, Ri
↑ s/N==0
↑
*BV32:D label32, Ri
↑ s/V==1
↑
*BNV32:D label32, Ri
↑ s/V==0
↑
*BLT32:D label32, Ri
↑ s/VxorN==1
↑
*BGE32:D label32, Ri
↑ s/VxorN==0
↑
*BLE32:D label32, Ri
↑ s/(VxorN)orZ==1
↑
*BGT32:D label32, Ri
↑ s/(VxorN)orZ==0
↑
*BLS32:D label32, Ri
↑ s/CorZ==1
↑
*BHI32:D label32, Ri
↑ s/CorZ==0
↑
参考 :
• CALL32:D
-label32-PC-2 が , -0x800 ∼ +0x7fe の場合は , 次のように命令を生成します。
CALL:D label12
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32, Ri
CALL:D @Ri
• BRA32:D
-label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
BRA:D label9
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
LDI:32 #label32, Ri
JMP:D @Ri
• Bcc32:D
-label32-PC-2 が , -0x100 ∼ +0xfe の場合は , 次のように命令を生成します。
Bcc:D label9
-label32-PC-2 が , 1) の範囲外の場合および外部参照シンボルを含む場合は , 次のよう
に命令を生成します。
Bxcc false
xcc は , cc の背反条件
LDI:32 #label32, Ri
JMP:D @Ri
false:
689
付録
■ ダイレクトアドレッシング命令
表 H.1-18 ダイレクトアドレッシング命令
ニーモニック
型
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 は符号なしです。
■ リソース命令
表 H.1-19 リソース命令
ニーモニック
型
OP
CYCLE
NZVC
動作
備考
LDRES @Ri+, #u4
C
BC
a
----
(Ri)→u4のリソース
u4: チャンネル番号
Ri+=4
STRES #u4, @Ri+
C
BD
a
----
u4 のリソース→ (Ri)
u4: チャンネル番号
Ri+=4
<注意事項>
MB91340 シリーズでは, チャネル番号を持つリソースを搭載していないので , 使用できま
せん。
690
付録 H 命令一覧
■ コプロセッサ制御命令
表 H.1-20 コプロセッサ制御命令
ニーモニック
型
OP
CYCLE
NZVC
動作
COPOP #u4, #u8, CRj, CRi
E
9F-C
2+a
----
演算指示
COPLD #u4, #u8, Rj, CRi
E
9F-D
1+2a
----
Rj → CRi
COPST #u4, #u8, CRj, Ri
E
9F-E
1+2a
----
CRj → Ri
COPSV #u4, #u8, CRj, Ri
E
9F-F
1+2a
----
CRj → Ri
備考
エラートラップなし
<注意事項>
• {CRi|CRj}:= CR0|CR1|CR2|CR3|CR4|CR5|CR6|CR7|CR8|CR9|CR10|CR11|CR12|
CR13|CR14|CR15
- u4:= チャンネル指定
- u8:= コマンド指定
• MB91310 シリーズでは , コプロセッサを搭載していないため使用できません。
691
付録
692
索引
A
A/D コンバータ
10 ビット A/D コンバータの特長 .......................302
A/D コンバータ .........................................................4
A/D 変換結果レジスタ
A/D 変換結果レジスタ (0 ∼ 9ch) .......................306
A/D 変換部テストレジスタ
A/D 変換部テストレジスタ .................................306
ACR
ACR0 ∼ ACR7
(Area Configuration Register) ..........................131
ADCTH
A/DC 制御レジスタ (ADCTH,ADCTL) ..............304
ADCTL
A/DC 制御レジスタ (ADCTH,ADCTL) ..............304
ASR
ASR0 ∼ ASR7 (Area Select Register) ...................129
AWR
AWR0 ∼ AWR7 (Area Wait Register) .................138
B
BFOK
BFOK0o の設定の優先順位 .................................463
BFOK の設定 .........................................................462
BSD
0 検出用データレジスタ (BSD0) ........................296
1 検出用データレジスタ (BSD1) ........................296
BSDC
変化点検出用データレジスタ (BSDC) ..............297
BSRR
検出結果レジスタ (BSRR) ...................................297
BUSYX
レディ / ビジー信号 (RDY/BUSYX) ...................629
Byte アクセス
Byte アクセス ........................................................170
C
CHER
CHER (CacHe Enable Register) .............................148
CLKB
CPU クロック (CLKB) ............................................78
CLKP
周辺クロック (CLKP) .............................................78
CLKR
CLKR : クロックソース制御レジスタ .................90
CLKT
外部バスクロック (CLKT) ....................................79
CONT
CONT1 ....................................................................413
CONT10 ..................................................................420
CONT2 ....................................................................414
CONT3 ....................................................................415
CONT4 ....................................................................417
CONT5 ....................................................................417
CONT6 ....................................................................418
CONT7 ....................................................................418
CONT8 ....................................................................419
CONT9 ....................................................................419
CPU
CPU 制御 ................................................................ 385
FR CPU ....................................................................... 2
CPU アクセス
CPU アクセス受信時の制御例 ............................442
CPU アクセス送信時の制御例 ............................444
CSER
CSER (Chip Select Enable register) .......................147
CSX
CSX 遅延設定 (TYP[3:0]=0000B,AWR=000CH)
..........................................................................180
CSX → RD/WR セットアップ設定
(TYP[3:0]=0101B,AWR=100BH) .................... 188
CSX → RD/WR セットアップ・
RD/WR → CSX ホールド設定
(TYP[3:0]=0000B, AWR=000BH) ...................181
CTBR
CTBR : タイムベースカウンタクリアレジスタ
............................................................................90
D
D+ 終端抵抗制御
ボード上の D+ 終端抵抗制御 ............................. 455
DDR
Data Direction Register(DDR) ............................... 207
DICR
DICR(Delayed Interrupt Control Register) ............293
DIVR
DIVR0: 基本クロック分周設定レジスタ 0 ......... 94
DIVR1: 基本クロック分周設定レジスタ 1 ......... 96
DLYI
DICR の DLYI ビット .......................................... 294
DMAC
DMAC (DMA Controller) .......................................... 3
DMACA
DMAC-ch.0,1,2,3,4 コントロール / ステータス
レジスタ A[DMACA0 ∼ 4] ........................... 361
DMACB
DMAC-ch.0,1,2,3,4 コントロール / ステータス
レジスタ B [DMACB0 ∼ 4] .......................... 366
DMACR
DMAC-ch.0 ∼ ch.4 DMAC 全体制御レジスタ
[DMACR] .........................................................372
DMADA
DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定
レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4] ........................................................ 371
DMASA
DMAC-ch.0 ∼ ch.4 転送元 / 転送先アドレス設定
レジスタ [DMASA0 ∼ DMASA4/DMADA0 ∼
DMADA4] ........................................................ 371
693
DMA 受信時
DMA 受信時の制御例 ..........................................447
DMA 送信時
DMA 送信時の制御例 ..........................................448
DRCL
DRCL ......................................................................319
E
EIRR
外部割込み要因レジスタ (EIRR : External Interrupt
Request Register) ..............................................285
EIT
EIT 要因受理の優先度 ...........................................55
EIT( 例外・割込み・トラップ ) ............................46
EIT からの復帰 .......................................................46
EIT の動作 ...............................................................57
EIT ベクタテーブル ...............................................51
EIT 要因 ...................................................................46
ELVR
外部割込み要求レベル設定レジスタ
(ELVR : External LeVel Register) ...................286
ENDPOINT BUFFER
ENDPOINT BUFFER の設定 ................................439
ENIR
割込み許可レジスタ (ENIR : ENable Interrupt
request Register) ...............................................285
F
FIFO
FIFO0i .....................................................................403
FIFO0o ....................................................................403
FIFO1 ......................................................................404
FIFO2 ......................................................................404
FIFO3 ......................................................................405
FLCR
FLCR: フラッシュコントロール / ステータス
レジスタ (CPU モード ) .................................620
fly-by 転送
DMA fly-by 転送 (I/O →メモリ )
(TYP[3:0]=0000B,AWR=0008H,IOWR=41H)
..........................................................................193
DMA fly-by 転送 (I/O →メモリ
)(TYP[3:0]=0000B,AWR=0008H,IOWR=51H)
..........................................................................182
DMA fly-by 転送 ( メモリ→ I/O)
(TYP[3:0]=0000B,AWR=0008H,IOWR=41H)
..........................................................................195
DMA fly-by 転送 ( メモリ→ I/O)
(TYP[3:0]=0000B,AWR=0008H,IOWR=51H)
..........................................................................183
FMWT
FMWT: ウェイトレジスタ ..................................622
FR
FR-CPU プログラミングモード (16bit,Read/Write)
...........................................................................624
G
GET_DESCRIPTOR
GET_DESCRIPTOR コマンドでのデータステージ
の中断 .............................................................. 463
H
Half word アクセス
Half word アクセス ............................................... 168
HcBulkCurrentED Register
HcBulkCurrentED Register .................................... 477
HcBulkHeadED Register
HcBulkHeadED Register ........................................ 477
HcCommandStatus Register
HcCommandStatus Register ................................... 472
HcControl Register
HcControl Register ................................................. 471
HcControlCurrentED Register
HcControlCurrentED Register ................................476
HcControlHeadED Register
HcControlHeadED Register ................................... 476
HcDoneHead Register
HcDoneHead Register ............................................ 477
HcFmInterval Register
HcFmInterval Register ............................................ 478
HcFmNumber Register
HcFmNumber Register ...........................................479
HcFmRemaining Register
HcFmRemaining Register .......................................478
HcHCCA Register
HcHCCA Register ..................................................476
HcInterruptDisable Register
HcInterruptDisable Register ................................... 475
HcInterruptEnable Register
HcInterruptEnable Register .................................... 474
HcInterruptStatus Register
HcInterruptStatus Register ...................................... 473
HcLSThreshold Register
HcLSThreshold Register .........................................479
HcPeriodCurrentED Register
HcPeriodCurrentED Register ................................. 476
HcPeriodicStart Register
HcPeriodicStart Register .........................................479
HcRevision Register
HcRevision Register ............................................... 471
HcRhDescripterB Register
HcRhDescripterB Register .....................................481
HcRhDescriptorA Register
HcRhDescriptorA Register .....................................480
HcRhPortStatus Register
HcRhPortStatus Register ........................................ 483
HcRhStatus Register
HcRhStatus Register ............................................... 482
HRCL
HRCL(Hold Request Cancel Level register)
..........................................................................272
I
I/O
I/O ピン .................................................................. 127
694
I/O ポート
I/O ポート ..................................................................4
I/O ポートのモード ..............................................205
I/O マップ
I/O マップの見方 ..................................................646
I2C
I2C インタフェース ..................................................3
I2C インタフェースの特長 ..................................332
IBCR
IBCR( バスコントロールレジスタ ) ...................338
IBSR
IBSR( バスステータスレジスタ ) .......................335
ICCR
ICCR( クロックコントロールレジスタ ) ...........342
ICR
ICR(Interrupt Control Register) ..............................271
ICR ビット構成 .......................................................49
ICR マッピング .......................................................49
IDAR
データレジスタ (IDAR) .......................................349
IDBL
クロックディセーブルレジスタ (IDBL) ............349
ILM
ILM ...........................................................................48
INIT
INIT 端子入力 ( 設定初期化リセット端子 )
............................................................................66
設定初期化リセット (INIT) ...................................65
設定初期化リセット (INIT) 解除シーケンス
............................................................................68
INT
INT 命令の動作 .......................................................58
INTE
INTE 命令の動作 .....................................................58
IOWR
IOWR0 ∼ IOWR2 (I/O Wait Register for DMAC)
..........................................................................145
ISBA
7 ビットスレーブアドレスレジスタ (ISBA)
..........................................................................347
ISMK
7 ビットスレーブアドレスマスクレジスタ
(ISMK) ..............................................................348
ITBA
10 ビットスレーブアドレスレジスタ (ITBA)
..........................................................................344
ITMK
10 ビットスレーブアドレスマスクレジスタ
(ITMK) .............................................................345
I フラグ
I フラグ ....................................................................48
L
Little endian
Little endian 領域に対する制限事項 ...................162
LPF
LPF のサンプリング間隔について .....................264
M
MD
モード端子 (MD0 ∼ MD3) について ................... 22
N
NMI
NMI ......................................................................... 289
NMI(Non Maskable Interrupt) ................................277
ユーザ割込み・NMI の動作 ..................................57
割込み・NMI に対するレベルマスク .................. 48
O
OSCCR
OSCCR : 発振制御レジスタ ..................................97
OSDC
OSDC 機能 .................................................................4
OSDC 動作制御 ..................................................... 584
P
PCSR
PCSR(PPG 周期設定レジスタ ) ........................... 235
PDR
Port Data Register(PDR) ........................................ 206
PDUT
PDUT(PPG デューティ設定レジスタ ) ..............235
PFR
Port Function Register(PFR) ..................................208
Port Function Register(PFR) の初期値と機能
..........................................................................209
PLL
PLL 逓倍率 .............................................................. 75
PLL 動作許可 .......................................................... 74
PPG
PPG ............................................................................. 4
PPG 出力
PPG 出力オール 'L' または , オール 'H' の
出力方法例 ......................................................239
PPG タイマ
PPG タイマの注意事項 ........................................ 240
PTMR
PTMR(PPG タイマレジスタ ) ............................. 236
PWC
PWC ............................................................................4
PWCC2
PWC 制御レジスタ 2(PWCC2) ............................261
PWCCH
PWC 制御レジスタ (PWCCH) ............................. 259
PWCCL
PWC 制御レジスタ (PWCCL) ............................. 257
PWCD
PWC・データ・レジスタ (PWCD) .................... 260
PWCUD
PWC・上限値設定レジスタ (PWCUD) ..............262
PWM
PWM 動作 .............................................................. 237
695
R
T
RD
TBCR
TBCR : タイムベースカウンタ制御
レジスタ ............................................................ 87
TBR
TBR (Table Base Register) .......................................51
TCR
TCR (Terminal and timing Control Register)
........................................................................... 149
TMCSR
コントロールステータスレジスタ (TMCSR)
........................................................................... 220
TMR
16 ビットタイマレジスタ (TMR) .......................223
TMRLR
16 ビットリロードレジスタ (TMRLR) ..............223
TRSIZE
TRSIZE ................................................................... 422
TRST
ツールリセット端子 (TRST) について ................22
TTEST
TTEST ( テスト用レジスタ ) ............................... 251
TTSIZE
TTSIZE ................................................................... 421
TxCCR
TxCCR ( キャプチャ制御レジスタ ) .................. 245
TxCRR
TxCRR ( キャプチャデータレジスタ ) ..............250
TxDRR
TxDRR ( タイマコンペアデータレジスタ )
..........................................................................250
TxLPCR
TxLPCR
( ローパスフィルタ制御レジスタ ) ............. 244
TxR
TxR ( タイマ全体制御レジスタ ) ........................ 249
TxTCR
TxTCR ( タイマ設定レジスタ ) .......................... 247
CSX → RD/WR セットアップ設定
(TYP[3:0]=0101B,AWR=100BH) ....................188
RDY
レディ / ビジー信号 (RDY/BUSYX) ...................629
RESET
RESET ....................................................................422
RESET (USB クロック ) .......................................667
RETI
RETI 命令の動作 .....................................................60
ROM モード
FR-CPU ROM モード (32bit,Read のみ ) ............623
RSIZE
RSIZE0 ....................................................................411
RSIZE1 ....................................................................412
RSRR
RSRR : リセット要因レジスタ / ウォッチドッグ
タイマ制御レジスタ ........................................82
RST
動作初期化リセット (RST) ....................................65
動作初期化リセット (RST) 解除シーケンス
............................................................................68
S
SCR
SCR ( シリアルコントロールレジスタ ) ...........314
SIDR
SIDR ( シリアルインプットデータレジスタ )/
SODR ( シリアルアウトプットデータ
..........................................................................316
SMR
SMR ( シリアルモードレジスタ ) ......................313
SODR
SIDR ( シリアルインプットデータレジスタ )/
SODR ( シリアルアウトプットデータ
..........................................................................316
SRAM
SRAM 領域 ............................................................471
SSP
SSP(System Stack Pointer) .......................................50
SSR
SSR ( シリアルステータスレジスタ ) ................317
ST
ST1 ..........................................................................406
ST2 ..........................................................................407
ST3 ..........................................................................408
ST4 ..........................................................................409
ST5 ..........................................................................410
START
「START」条件 ......................................................350
STCR
STCR : スタンバイ制御レジスタ .........................84
STCR:SRST ビット書込み
( ソフトウェアリセット ) ................................66
STOP
「STOP」条件 .........................................................350
696
U
UART
UART ..........................................................................3
UART のクロック選択 ........................................ 320
UART の使用例 ..................................................... 327
UART の動作モード ............................................ 320
UART の特長 .........................................................310
UCLK48
UCLK48 の精度 ..................................................... 461
USB
SUSPEND 時の USB クロック制御例 ................ 459
USB BUS RESET 後のマクロの状態 .................. 465
USB インタフェースのレジスタ ........................ 402
USB コネクタの接続 / 未接続の検知 ................ 460
USB 標準要求コマンドに対するマクロの
自動応答内容 ..................................................456
USB ファンクション機能 ........................................ 4
USB ファンクションの概要 ................................400
USB ファンクションの動作 ................................424
USB ホスト マクロ内レジスタ ........................... 470
USB ホストインタフェース ................................468
USB ホスト機能 ........................................................4
デフォルト状態での USB マクロの動作 ...........458
USBIOLPW
USBIOLPW (USB IO 低消費電力モード設定レジ
スタ ) ................................................................669
UTIM
UTIM (U-TIMER) ..................................................213
UTIMC
UTIMC(U-TIMER Control register) ......................213
U-TIMER
U-TIMER の概要 ...................................................212
ボーレートと U-TIMER のリロード値の設定例
..........................................................................329
UTIMR
UTIMR(reload register) ..........................................213
V
VCO
内部 VCO 生成ドットクロック入力 ..................562
W
Word アクセス
Word アクセス .......................................................167
WR
CSX → RD/WR セットアップ設定
(TYP[3:0]=0101B,AWR=100BH) ....................188
WR+byte-control タイプ
WR+byte-control タイプ
(TYP[3:0]=0010B,AWR=0008H) .....................174
あ
アーキテクチャ
内部アーキテクチャ .............................................. 28
アービトレーション
アービトレーション ............................................ 352
アクノリッジ
アクノリッジ ........................................................ 353
アドレシングモード
アドレシングモード ............................................ 384
アドレッシングモード
アドレッシングモードの記号 ............................675
アンダライン
アンダライン表示制御 ........................................ 514
アンダライン表示ルール .................................... 514
い
イタリック
イタリック表示制御 ............................................ 511
イタリック表示ルール ........................................ 511
イタリック文字起点 ............................................ 513
一時停止
一時停止 ................................................................ 388
イベントカウント
イベントカウントモード .................................... 253
色置換色コード
ふちどり色置換色コード ( 画面単位設定 )
..........................................................................529
色置換制御
グラフィック色ふちどり色置換制御
( 画面単位設定 ) .............................................529
インターバルタイマ
インターバルタイマモード ................................252
う
ウォッチドッグ
ウォッチドッグリセット ...................................... 67
お
応用表示例
応用表示例 ............................................................ 508
か
外形寸法図
外形寸法図 ................................................................ 7
外部ウェイト
外部ウェイトあり
(TYP[3:0]=0101B,AWR=1008H) .....................187
外部ウェイトなし
(TYP[3:0]=0100B,AWR=0008H) .....................186
外部トリガ変換
外部トリガ変換による A/D 動作 .......................307
外部バス
外部バスアクセス ................................................157
外部バスインタフェース
外部バスインタフェースの設定について
..........................................................................670
697
概要
概要 .............................................64, 73, 117, 162, 228
カウンタ
16 ビットパルス幅カウンタ ................................256
カウントクロック
カウントクロックの選択 .....................................264
書込み
データ書込み .........................................................636
各状態遷移要求
各状態遷移要求の優先順位 .................................105
影付背景
影付背景下行結合制御 ( 行単位設定 )
..................................................................541, 547
影付背景シャドウ色 (16 色 , 画面単位設定 )
..................................................................537, 545
影付背景ハイライト色 (16 色 , 画面単位設定 )
..................................................................537, 545
影付背景右文字結合制御 ( 文字単位設定 )
..........................................................................539
加減算
加減算命令 .............................................................678
画面構成
画面構成 .................................................................490
画面構成図 .............................................................490
画面出力制御
画面出力制御 .........................................................492
画面背景
画面背景色制御 .....................................................557
画面背景出力制御 .................................................557
画面背景表示 .........................................................553
画面背景文字表示の構成 .....................................554
画面背景文字表示の制御 .....................................554
画面表示
画面表示オフセット .............................................499
画面表示形式 .........................................................491
き
機能
機能概要 .................................................................189
その他の機能 .........................................................373
キャプチャ
キャプチャモード .................................................253
行 RAM
行 RAM 書込み ......................................................504
行拡大制御
行拡大制御 ( 行単位設定 ) ...................................523
行拡大表示例
行拡大表示例 .........................................................524
行背景
行背景色 (16 色 , 行単位設定 ) ............................545
行背景制御 ( 行単位設定 ) ...................................545
く
グラフィック文字
文字 / グラフィック文字制御
( 文字単位設定 ) ..............................................527
クロック
クロック供給機能の動作 .............................115, 121
クロック分周 ...........................................................80
ソースクロックの選択 ...........................................73
698
クロック同期
クロック同期モード ............................................ 322
け
検出
0 検出 ..................................................................... 298
1 検出 ..................................................................... 298
変化点検出 ............................................................ 299
原振入力
電源投入時の原振入力について .......................... 23
こ
コプロセッサ
コプロセッサエラートラップ ..............................60
コプロセッサ不在トラップ ..................................60
コプロセッサ制御
コプロセッサ制御命令 ........................................ 691
コマンド
コマンド 0(VRAM 書込みアドレス設定 )
..........................................................................589
コマンド 1( 文字データ設定 1) ........................... 590
コマンド 11-0( 同期制御 ) ................................... 605
コマンド 11-1( ドットクロック制御 1) ............. 606
コマンド 11-2( ドットクロック制御 2) ............. 606
コマンド 11-3( ドットクロック制御 3) ............. 607
コマンド 13-0( 入出力端子制御 1) .....................608
コマンド 13-1( 入出力端子制御 2) .....................608
コマンド 14-0( 表示期間制御 1) .........................609
コマンド 14-1( 表示期間制御 2) .........................609
コマンド 14-2( 表示期間制御 3) .........................610
コマンド 14-3( 表示期間制御 4) .........................610
コマンド 15-0( 割込み制御 ) ............................... 611
コマンド 16-0 ∼コマンド 16-15 ( パレット制御 )
..........................................................................612
コマンド 17-0(OSDC 動作制御 1) .......................613
コマンド 17-1(OSDC 動作制御 2) .......................613
コマンド 2( 文字データ設定 2) ........................... 591
コマンド 3( 行制御データ設定 1) .......................592
コマンド 4( 行制御データ設定 2) .......................593
コマンド 5-00( 画面出力制御 1A) ...................... 594
コマンド 5-1( 画面出力制御 2) ........................... 594
コマンド 5-2( 垂直表示位置制御 ) .....................595
コマンド 5-3( 水平表示位置制御 ) .....................595
コマンド 6-0( 文字垂直サイズ制御 ) ................. 596
コマンド 6-1( 影付背景枠色制御 ) .....................597
コマンド 6-2( 透明色制御 ) ................................. 598
コマンド 6-3( グラフィック色制御 ) ................. 599
コマンド 7-1( 画面背景文字制御 1) ...................601
コマンド 7-3( 画面背景文字制御 2) ...................602
コマンド 8-1( スプライト文字制御 1) ............... 603
コマンド 8-2( スプライト文字制御 2) ............... 604
コマンド 9-0( スプライト文字制御 3) ............... 604
コマンド 9-1( スプライト文字制御 4) ............... 604
コマンドシーケンス
コマンドシーケンス ............................................ 625
さ
サイズ
文字垂直サイズ A/ 文字垂直サイズ B ...............506
サイズ種制御
行文字垂直サイズ種制御 ( 行単位設定 ) ...........506
サイズ制御
文字水平サイズ制御 ( 文字単位設定 ) ...............506
し
シーケンス
シーケンス .............................................................281
自動アルゴリズム
自動アルゴリズム実行状態 .................................624
シフト
シフト命令 .............................................................680
主要機能
主要機能 .........................................................268, 358
主要動作
主要動作 .................................................................374
消去
セクタ消去の一時停止 .........................................641
セクタ消去の再開 .................................................642
データ消去 ( セクタ消去 ) ...................................639
データ消去 ( チップ消去 ) ...................................638
乗除算
乗除算命令 .............................................................679
状態
RUN 状態 ( 通常動作 ) ..........................................103
ストップ状態 .........................................................103
スリープ状態 .........................................................103
設定初期化リセット (INIT) 状態 ........................104
デバイス状態と各遷移 .........................................102
動作初期化リセット (RST) 状態 .........................104
発振安定待ち RUN 状態 ......................................103
発振安定待ちリセット (RST) 状態 .....................104
す
推奨設定例
推奨設定例 .............................................................671
水晶発振回路
水晶発振回路について ...........................................22
垂直同期検出
垂直同期検出 .........................................................567
垂直同期検出動作例 .............................................567
垂直表示期間制御
垂直表示期間制御 .................................................576
水平同期動作
水平同期動作 .........................................................569
水平同期動作例
水平同期動作例 .....................................................569
水平表示期間制御
水平表示期間制御 .................................................577
スタンバイ
スタンバイからの復帰について .........................287
スタンバイモード ( ストップ / スリープ ) からの
復帰 ..................................................................279
ステップトレーストラップ
ステップトレーストラップの動作 .......................59
スプライト文字
スプライト文字の構成 ........................................ 558
スプライト文字表示制御 .................................... 558
スレーブアドレス
スレーブアドレス検出 ........................................ 351
スレーブアドレスマスク .................................... 352
せ
制御
制御機能 ................................................................ 561
制限
制限および注意事項 ............................................ 643
制限事項
制限事項 .................................................................. 23
セクタ
セクタアドレス表 ................................................618
接続例
外部との接続例 ............................................161, 165
設定
設定内容 ................................................................ 440
設定方法 ................................................................ 439
セットアップ
セットアップ制御例 ............................................ 441
そ
即値
即値セット /16 ビット /32 ビット即値転送命令
..........................................................................680
その他
その他 ....................................................................354
ソフトウェア要求
ソフトウェア要求 ................................................378
ソフト変換
ソフト変換による A/D 動作 ............................... 307
ソフト変換アナログ入力選択レジスタ
ソフト変換アナログ入力選択レジスタ ............305
た
退避
退避・復帰の処理 ................................................300
タイマ
インターバルタイマ機能の動作 ................114, 120
その他のインターバルタイマ ................................4
メイン発振安定待ちタイマ
( サブクロック選択時用 ) ............................. 101
メイン発振安定待ちタイマ使用時の
注意事項 .......................................................... 122
メイン発振安定待ちタイマの動作 .................... 121
タイミング
外部ウェイトタイミング
(TYP[3:0]=0001B,AWR=2008H) .....................178
基本タイミング ( アクセスが連続する場合 )
(TYP[3:0]=0000B,AWR=0008H) .....................173
自動ウェイトタイミング
(TYP[3:0]=0000B,AWR=2008H) .....................177
同期ライトイネーブル出力タイミング
(TYP[3:0]=0000B,AWR=0000H) .....................179
699
ライト → ライトタイミング
(TYP[3:0]=0000B,AWR=0018H) .....................176
リード → ライトタイミング
(TYP[3:0]=0000B,AWR=0048H) .....................175
タイムベースカウンタ
タイムベースカウンタ ...........................................98
ダイレクトアドレッシング
ダイレクトアドレッシング命令 .........................690
多機能タイマ
多機能タイマ .............................................................4
多機能タイマの概要 .............................................242
端子
端子機能一覧 .............................................................9
端子状態一覧 .........................................................672
未使用入力端子の処理について ...........................22
端子配列図
端子配列図 .................................................................8
ち
遅延スロット
遅延スロット付き動作 ...........................................42
遅延スロットなし動作 ...........................................44
遅延スロットの注意事項 .......................................60
遅延分岐
20 ビット遅延分岐マクロ命令 ............................687
32 ビット遅延分岐マクロ命令 ............................689
遅延分岐命令 .........................................................684
チップセレクト
チップセレクト領域 .............................................152
チャネル選択
チャネル選択と制御 .............................................390
注意
使用上の注意 .................................................202, 326
制限および注意事項 .............................................643
注意点 .....................................................................226
注意事項
注意事項 .................................................................281
調歩同期
非同期 ( 調歩同期 ) モード ..................................321
つ
通常分岐
20 ビット通常分岐マクロ命令 ............................686
32 ビット通常分岐マクロ命令 ............................688
通常分岐 ( 遅延なし ) 命令 ..................................683
通信エラー
エラーを発生しない通信エラー .........................353
て
停止
エラーによる停止 .................................................388
動作終了 / 停止 ......................................................388
低消費電力
低消費電力モード ...........................................24, 106
データ
データの種類等 .....................................................385
データフォーマット .............................................163
700
データアクセス
データアクセス ......................................................40
データバス
データバス幅 ................................................156, 164
データバス幅と制御信号との関係 .................... 154
データフォーマット
データフォーマット ............................................ 155
デューティ比
デューティ比の設定 ............................................ 534
電源
電源端子について ..................................................22
電源投入
電源投入 / 切断時の注意事項 ............................... 23
電源投入時
電源投入時について .............................................. 23
転送
Bulk IN 転送 (CPU WRITE/USB READ) タイミング
チャート .......................................................... 451
Bulk OUT 転送 (CPU READ/USB WRITE) タイミン
グチャート ......................................................453
CPU IN 転送 .......................................................... 431
CPU OUT 転送 ......................................................433
DMA IN 転送 .........................................................434
DMA OUT 転送 ..................................................... 435
DMA シングル転送 READ/WRITE Timing Chart
........................................................................... 436
DMA ブロック転送 READ/WRITE Timing Chart
........................................................................... 437
fly-by 転送時のデータの動き ..............................397
two-cycle 転送時のデータの動き ........................ 395
two-cycle 転送 ........................................................ 196
two-cycle 転送 (I/O →外部 )
(TYP[3:0]=0000B,AWR=0008H,IOWR=00H)
........................................................................... 198
two-cycle 転送 ( 外部→ I/O)
(TYP[3:0]=0000B,AWR=0008H,IOWR=00H)
..........................................................................197
外部転送要求端子 ................................................378
コントロール (DATA ステージ )/ バルク OUT
転送 ................................................................. 428
コントロール (DATA ステージ )/ バルク /
インタラプト IN 転送 .................................... 429
コントロール転送の SETUP ステージ
( 一部を除く標準コマンド ) .........................425
コントロール転送の SETUP ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME))
........................................................................... 426
コントロール転送の STATUS ステージ
( 一部を除く標準コマンド ) .........................427
コントロール転送の STATUS ステージ
( クラスコマンド・ベンダコマンド , および
一部の標準コマンド (GET_DESCRIPTOR /
SET_DESCRIPTOR / SYNCH_FRAME))
........................................................................... 427
ステップ / ブロック転送 two-cycle 転送 ........... 382
ステップ / ブロック転送 two-cycle 転送 fly-by
転送 .................................................................. 382
スリープ中の DMA 転送 .....................................390
デマンド転送 fly-by 転送 .....................................381
デマンド転送 two-cycle 転送 ............................... 381
転送アドレス ........................................................ 376
転送回数制御 .........................................................385
転送回数と転送終了 .............................................377
転送シーケンスの選択 .........................................379
転送タイプ .............................................................375
転送モード .............................................................374
転送要求の受付と転送 .........................................387
バースト fly-by 転送 .............................................380
バースト two-cycle 転送 .......................................379
と
同期信号入力
同期信号入力 .........................................................566
同期制御
同期制御 ( 縦拡大制御 ) .......................................578
動作
動作モード ...............................................................61
動作開始
動作開始 .................................................................387
動作終了
動作終了 / 停止 ......................................................388
動作説明
動作説明 .................................................................224
透明制御
透明制御 ( 画面単位設定 ) ...................................535
特長
その他の特長 .............................................................4
特長 .....................................................27, 46, 124, 486
時計タイマ
時計タイマ .....................................................100, 111
時計タイマ使用時の注意事項 .............................116
時計タイマの動作 .................................................116
ドットクロック
外部ドットクロック入力 .....................................562
出力ドットクロック制御 .....................................565
ドットクロック生成用 PLL ................................666
内部 VCO 生成ドットクロック入力 ..................562
入力ドットクロック選択制御 .............................562
な
内蔵 RAM
内蔵 RAM ...................................................................3
内蔵周辺要求
内蔵周辺要求 .........................................................378
に
入出力回路形式
入出力回路形式 .......................................................15
は
バーストアクセス
バーストアクセスの動作 .....................................184
ハードウェア
ハードウェア構成 .................................268, 280, 358
ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグ .........................629
バイトオーダリング
バイトオーダリング ...............................................39
バスアービトレーション
バスアービトレーション .................................... 199
バスインタフェース
バスインタフェース ................................................ 2
バスエラー
バスエラー ............................................................ 353
バスモード
バスモード .............................................................. 61
発振安定待ち
発振安定待ち時間の選択 ...................................... 69
発振安定待ち発生要因 .......................................... 69
パルス幅
パルス幅カウント動作 ........................................ 263
パレット RAM
パレット RAM 構成 .............................................505
半透明制御
半透明制御 ( 画面単位設定 ) ............................... 536
ひ
比較演算
比較演算命令 ........................................................ 678
ビットオーダリング
ビットオーダリング .............................................. 39
ビットサーチモジュール
ビットサーチモジュール (REALOS 使用 ) ........... 3
ビット操作
ビット操作命令 ....................................................679
非同期
非同期 ( 調歩同期 ) モード ..................................321
表示
表示機能 ................................................................ 489
表示メモリ書込み ................................................503
表示メモリと表示画面 ........................................ 502
表示位置制御
画面背景色の表示位置制御 ................................497
画面背景文字の表示位置制御 ............................496
スプライト文字の表示位置制御 ........................ 498
メイン画面の表示位置制御 ................................493
表示信号出力
表示信号出力タイミング .................................... 574
表示信号出力例
表示信号出力例 1 ................................................. 574
表示信号出力例 2 ................................................. 575
表示制御
表示制御コマンド ................................................586
表示制御コマンド一覧 ........................................ 587
表示例
表示例 ...........................507, 512, 514, 518, 531, 538,
539, 541, 543, 546, 547, 578
ふ
フィールド検出
フィールド検出制御 ............................................ 571
フィールド補正制御
フィールド補正制御 ............................................ 573
フォントメモリ
フォントメモリ構成 ............................................ 501
ふちどり
ふちどり色 ............................................................ 522
ふちどり形式制御 ................................................516
701
ふちどり出力制御 .................................................515
ふちどり表示ルール .............................................522
復帰
退避・復帰の処理 .................................................300
フラッシュメモリ
フラッシュメモリ書込み / 消去 .........................634
フラッシュメモリの概要 .....................................616
ブリンク制御
ブリンク制御 ( 文字単位設定 ) ...........................531
ブリンク表示
ブリンク表示の周期 .............................................533
フローチャート
動作フローチャート .............................................392
プログラミングモード
FR-CPU プログラミングモード (16bit,Read/Write)
..........................................................................624
プログラミングモデル
基本プログラミングモデル ...................................32
プログラムアクセス
プログラムアクセス ...............................................40
ブロックサイズ
ブロックサイズ .....................................................383
ブロック図
ブロック図 .............................................................111
ブロックダイヤグラム
ブロックダイヤグラム
.......................6, 81, 117, 126, 212, 219, 230, 243,
256, 270, 284, 292, 295, 303, 311,
334, 360, 401, 469, 488, 617
ほ
ポート
ポート基本ブロックダイヤグラム .....................204
ホールド
ホールド調停 .........................................................386
ホールドリクエスト
ホールドリクエスト取り下げ要求 (Hold Request
Cancel Request) ................................................278
ボーレート
ボーレートの計算 .................................................216
補足事項
補足事項 .................................................................450
ま
マスタアドレッシング
マスタアドレッシング .........................................352
待ち時間
PLL 逓倍率変更後の待ち時間 ..............................76
PLL 動作許可後の待ち時間 ..................................76
ストップモード復帰後の待ち時間 .......................77
設定初期化後の待ち時間 .......................................76
電源投入後の待ち時間 ...........................................76
め
命令
FR ファミリの命令一覧表 ...................................677
その他の命令 .........................................................685
未定義命令例外の動作 ...........................................59
702
命令概要 .................................................................. 30
命令フォーマット ................................................676
命令一覧表
命令一覧表の読み方 ............................................ 674
メインルーチン
メインルーチン ....................................................355
メモリ
メモリマップ ........................................................ 617
メモリストア
メモリストア命令 ................................................682
メモリマップ
メモリマップ .................................................... 26, 41
メモリロード
メモリロード命令 ................................................681
も
モード
モード設定 .............................................................. 62
文字 RAM
文字 RAM 1 文字書込み ...................................... 503
文字 RAM 複数文字一括書込み (VRAM フィル )
..........................................................................504
文字色
文字色 (16 色 , 文字単位設定 ) ............................510
文字色置換色
文字色置換色 ( 画面単位設定 ) ........................... 530
文字置換制御
グラフィック色文字置換制御 ( 画面単位設定 )
..........................................................................530
文字背景
文字背景色 (16 色 , 文字単位設定 ) .................... 537
文字背景拡張制御 ( 行単位設定 ) .......................543
文字背景制御 ( 文字単位設定 ) ........................... 537
ゆ
優先順位判定
優先順位判定 ........................................................ 273
よ
読出し
読出し / リセット状態 .........................................635
ら
ラストパケット送信
ラストパケット送信データの書き込み ............446
ラッチアップ
ラッチアップ防止のために ..................................22
り
リセット
通常リセット動作 ..................................................71
同期モードのソフトウェアリセットについて
............................................................................23
同期リセット動作 ..................................................71
読出し / リセット状態 .........................................635
リソース命令
リソース命令 .........................................................690
リロード
リロード動作 .........................................................383
リロードタイマ
16 ビットリロードタイマの概要 ........................218
リロードタイマ (REALOS 用 1ch 含む ) ................3
れ
レジスタ
コントロールステータス レジスタ ....................231
制御レジスタ .........................................................280
レジスタ ...................................................................33
レジスタ一覧
.................................128, 212, 218, 229, 242, 269,
284, 292, 295, 310, 332, 359
レジスタ構成 .................................................256, 302
レジスタ設定時の注意 .........................................361
レジスタ設定手順 .................................................201
レジスタ説明 .........................................112, 118, 214
レジスタ表記説明 .................................................402
レジスタマップ .....................................................423
レジスタ間転送
レジスタ間転送命令 .............................................682
ろ
ローパスフィルタ
ローパスフィルタについて .................................254
論理演算
論理演算命令 ........................................................ 678
わ
割込み
DMAC 割込み制御 ............................................... 389
DMA による周辺割込みクリア .......................... 387
外部割込みの動作手順について ........................ 287
外部割込みの動作について ................................287
外部割込み要求レベルについて ........................ 288
時計割込み ............................................................ 114
メイン発振安定待ち割込み ................................120
ユーザ割込み・NMI の動作 ..................................57
割込みコントローラ ................................................ 3
割込みスタック ......................................................50
割込み制御 ............................................................ 581
割込み発生およびフラグのセットタイミング
..........................................................................324
割込み要因一覧 ....................................................438
割込み要因とタイミングチャート .................... 239
割込み要求発生 ....................................................265
割込みルーチン ....................................................356
割込みレベル .......................................................... 47
割込み・NMI に対するレベルマスク .................. 48
割込み番号
割込み番号 ............................................................ 294
割込みベクタ
割込みベクタ ........................................................ 663
ワンショット
ワンショット動作 ................................................238
703
704
CM71-10119-2
富士通マイクロエレクトロニクス • CONTROLLER MANUAL
FR60
32 ビットマイクロコントローラ
MB91310 シリーズ
ハードウェアマニュアル
2008 年 4 月 第 2 版発行
発行
富士通マイクロエレクトロニクス株式会社
編集
マーケティング統括部 販売戦略部