8.2MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10133-1
FR ファミリ
32 ビット・マイクロコントローラ
MB91461
MB91F467R
ハードウェアマニュアル
FR ファミリ
32 ビット・マイクロコントローラ
MB91461
MB91F467R
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目を
リストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
MB91461/MB91F467RA/MB91F467RB は民生機器等の高速リアルタイム処理が要求さ
れる組込み制御用途向けに設計された , 汎用の富士通 32 ビット RISC マイクロコント
ローラです。CPU には , FR ファミリと互換の FR60 を使用しています。
本製品は LIN-UART および CAN コントローラを内蔵しています。低消費電力モード
の 1 つとしてシャットダウンモードをもち , 低消費電流を実現しています。
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.
■ 本書の全体構成
本書は , 以下に示す 28 の章 , および付録から構成されています。
第 1 章 概要
MB91461/F467RA/F467RB の特長 , ブロックダイヤグラム , 機能概要など全体を知る
ための基本的なことについて説明します。
第 2 章 デバイスの取扱いについて
FR ファミリの取扱い上の注意について説明します。
第 3 章 CPU および制御部
FR ファミリの CPU コアの機能を知るために , アーキテクチャ, 仕様 , 命令などの基
本的なことについて説明します。
第 4 章 低消費電力モード
低消費電力モードの機能と動作について説明します。
第 5 章 クロックモジュレータ
ク ロ ッ ク モ ジ ュ レー タ の 概 要 と そ の 機 能に つ い て 説 明 し ま す。( こ の 機 能 は
MB91461 には搭載されていません )
i
第 6 章 サブ発振安定待ちタイマ
サブ発振安定待ちタイマの概要とその機能について説明します
( この機能は MB91461 には搭載されていません )。
第 7 章 ハードウェアウォッチドッグタイマ
ハードウェアウォッチドッグタイマの機能について説明します。
第 8 章 メモリコントローラ
MB91F467RA, MB91F467RB に搭載されている内蔵フラッシュメモリの制御に関し
て説明します。フラッシュメモリでの命令読み出し速度に寄与するダイレクトマッ
プキャッシュに関する説明もあります。
第 9 章 外部バスインタフェース
外部バスインタフェースの各機能について説明します。
第 10 章 I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第 11 章 割込みコントローラ
割込みコントローラの概要, レジスタの構成/機能, および動作について説明します。
第 12 章 外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。
第 13 章 MPU / EDSU
メモリ保護機能およびエンベデッド・デバッグサポート機能について説明します。
第 14 章 REALOS 関連ハード
REALOS の概要 , レジスタの構成 / 機能 , および動作について説明します。
第 15 章 DMAC (DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。
第 16 章 CAN コントローラ
CAN コントローラの機能と動作について示します。
第 17 章 LIN-UART
LIN 対応 UART の機能と動作について説明します。
第 18 章 I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。
ii
第 19 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタの構成と機能およびタイマの動作について説
明します。
第 20 章 16 ビットフリーランタイマ
16 ビットフリーランタイマの機能と動作について説明します。
第 21 章 インプットキャプチャ
インプットキャプチャの機能と動作について説明します。
第 22 章 アウトプットコンペアユニット
アウトプットコンペアユニットの機能と動作について説明します。
第 23 章 PPG ( プログラマブルパルスジェネレータ )
PPG のレジスタ , 機能と動作について説明します。
第 24 章 リアルタイムクロック
リアルタイムクロック ( 以降 RTC) のレジスタ構成とその機能 , RTC モジュールの
動作について説明します。
第 25 章 A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説明します。
第 26 章 サブクロックキャリブレーションユニット
MB91F467RA, MB91F467RB に搭載されているサブクロックキャリブレーションユ
ニットについて説明します。
第 27 章 フラッシュメモリ
内蔵フラッシュメモリの使用について説明します。
第 28 章 フラッシュセキュリティ
MB91F467RA, MB91F467RB に搭載されている内蔵フラッシュメモリのセキュリ
ティ機能について説明します。
付録
各 CPU ステートにおける端子状態 , リトル・エンディアン領域を利用する際の注意
事項 , FR ファミリの命令一覧 , および MB91461, MB91F467RA, MB91F467RB を使
用する際の注意事項について説明します。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright ©2007 FUJITSU LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
第2章
2.1
2.2
第3章
概要 ............................................................................................................ 1
概要 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 5
外形寸法図.............................................................................................................................. 6
端子配列図.............................................................................................................................. 7
端子機能一覧表 .................................................................................................................... 10
入出力回路形式 .................................................................................................................... 23
デバイスの取扱いについて ...................................................................... 27
デバイス取扱い上の注意 ...................................................................................................... 28
使用上の注意 ........................................................................................................................ 32
CPU および制御部 ................................................................................... 37
3.1 メモリ空間............................................................................................................................ 38
3.2 内部アーキテクチャ ............................................................................................................. 39
3.2.1
命令概要 ..................................................................................................................... 43
3.3 命令キャッシュ (MB91461 に搭載 ) ..................................................................................... 45
3.3.1
制御レジスタ .............................................................................................................. 48
3.3.2
命令キャッシュの状態と設定..................................................................................... 51
3.3.3
命令キャッシュを使用するときの設定方法 ............................................................... 53
3.4 プログラミングモデル.......................................................................................................... 55
3.4.1
汎用レジスタ .............................................................................................................. 56
3.4.2
専用レジスタ .............................................................................................................. 57
3.5 データ構造............................................................................................................................ 64
3.6 メモリマップ ........................................................................................................................ 66
3.7 分岐命令 ............................................................................................................................... 67
3.7.1
遅延スロット付き動作 ............................................................................................... 68
3.7.2
遅延スロットなし動作 ............................................................................................... 70
3.8 EIT ( 例外・割込み・トラップ ) ........................................................................................... 71
3.8.1
EIT の割込みレベル.................................................................................................... 72
3.8.2
割込み制御レジスタ (ICR).......................................................................................... 74
3.8.3
システムスタックポインタ (SSP).............................................................................. 75
3.8.4
テーブルベースレジスタ (TBR) ................................................................................. 76
3.8.5
多重 EIT 処理.............................................................................................................. 77
3.8.6
EIT の動作 .................................................................................................................. 79
3.9 動作モード............................................................................................................................ 83
3.9.1
バスモード ................................................................................................................. 84
3.9.2
モード設定 ................................................................................................................. 85
3.10 リセット ( デバイス初期化 ) ................................................................................................. 88
3.10.1
リセットレベル .......................................................................................................... 89
3.10.2
リセット要因 .............................................................................................................. 90
3.10.3
リセットシーケンス ................................................................................................... 92
3.10.4
発振安定待ち時間....................................................................................................... 93
3.10.5
リセット動作モード ................................................................................................... 95
3.11 クロック生成制御 ................................................................................................................. 97
v
3.11.1
PLL 制御 ..................................................................................................................... 98
3.11.2
発振安定待ち・PLL ロック待ち時間.......................................................................... 99
3.11.3
クロック分配 ............................................................................................................ 101
3.11.4
クロック分周 ............................................................................................................ 103
3.11.5
クロック生成制御部のブロックダイヤグラム.......................................................... 104
3.11.6
クロック生成制御部のレジスタ詳細説明................................................................. 105
3.11.7
クロック制御部の周辺回路 ...................................................................................... 125
3.12 PLL インタフェース ........................................................................................................... 129
3.12.1
PLL インタフェースのレジスタ詳細説明................................................................. 130
3.12.2
PLL 逓倍率設定例..................................................................................................... 137
3.13 デバイス状態制御 ............................................................................................................... 141
3.13.1
デバイス状態と各遷移 ............................................................................................. 142
3.14 インターバルタイマ ........................................................................................................... 146
第4章
4.1
4.2
4.3
4.4
第5章
5.1
5.2
5.3
第6章
低消費電力モード .................................................................................. 153
低消費電力モードの概要 .................................................................................................... 154
スリープモード .................................................................................................................. 155
ストップモード .................................................................................................................. 157
シャットダウンモード........................................................................................................ 159
クロックモジュレータ ........................................................................... 165
クロックモジュレータの概要 ............................................................................................. 166
クロックモジュレータレジスタ ......................................................................................... 167
アプリケーションノート .................................................................................................... 177
サブ発振安定待ちタイマ........................................................................ 179
6.1 サブ発振安定待ちタイマの概要 ......................................................................................... 180
6.2 サブ発振安定待ちタイマの構成 ......................................................................................... 181
6.3 サブ発振安定待ちタイマのレジスタ .................................................................................. 182
6.3.1
WPCRH : サブ発振安定待ちタイマ制御レジスタ.................................................... 183
6.4 サブ発振安定待ちタイマの動作説明 .................................................................................. 185
6.5 アプリケーションノート .................................................................................................... 188
6.6 サブ発振安定待ちタイマの使用上の注意 ........................................................................... 191
第7章
7.1
7.2
7.3
7.4
7.5
第8章
8.1
8.2
8.3
8.4
ハードウェアウォッチドッグタイマ...................................................... 193
ハードウェアウォッチドッグタイマの概要 ....................................................................... 194
ハードウェアウォッチドッグタイマの構成 ....................................................................... 195
ハードウェアウォッチドッグタイマのレジスタ ................................................................ 196
ハードウェアウォッチドッグタイマの機能 ....................................................................... 198
ハードウェアウォッチドッグタイマ使用上の注意............................................................. 201
メモリコントローラ............................................................................... 203
メモリコントローラの概要................................................................................................. 204
レジスタ ............................................................................................................................. 205
レジスタの説明 .................................................................................................................. 206
FLASH アクセスタイミング設定........................................................................................ 219
vi
第9章
外部バスインタフェース........................................................................ 221
9.1 外部バスインタフェースの特長 ......................................................................................... 222
9.2 外部バスインタフェースのレジスタ .................................................................................. 225
9.2.1
領域選択レジスタ (ASR0 ∼ ASR4) ......................................................................... 226
9.2.2
領域構成レジスタ (ACR0 ∼ ACR4)......................................................................... 227
9.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR4) ................................................................ 233
9.2.4
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)............................................... 239
9.2.5
チップセレクト領域許可レジスタ (CSER) .............................................................. 242
9.2.6
キャッシュイネーブルレジスタ (CHER).................................................................. 243
9.2.7
端子 / タイミングコントロールレジスタ (TCR)....................................................... 244
9.3 チップセレクト領域 ........................................................................................................... 246
9.4 エンディアンとバスアクセス ............................................................................................. 248
9.4.1
ビッグエンディアンのバスアクセス ........................................................................ 249
9.4.2
リトルエンディアンのバスアクセス ........................................................................ 254
9.4.3
ビッグエンディアンとリトルエンディアンの外部アクセスの比較 ......................... 258
9.5 通常バスインタフェース .................................................................................................... 262
9.6 アドレス / データマルチプレックスインタフェース.......................................................... 270
9.7 DMA アクセス .................................................................................................................... 274
9.8 レジスタ設定手順 ............................................................................................................... 277
第 10 章
10.1
10.2
10.3
10.4
10.5
10.6
I/O ポート............................................................................................... 279
I/O ポートの概要 ................................................................................................................ 280
ポート入力許可 .................................................................................................................. 284
I/O ポートのレジスタ ......................................................................................................... 285
ポートファンクションレジスタの設定............................................................................... 288
端子入力レベルの選択........................................................................................................ 312
プルアップ・プルダウン制御レジスタ............................................................................... 315
第 11 章
割込みコントローラ............................................................................... 319
11.1 割込みコントローラの概要................................................................................................. 320
11.2 割込みコントローラのレジスタ ......................................................................................... 324
11.2.1
割込み制御レジスタ (ICR)........................................................................................ 325
11.2.2
ホールドリクエスト取下げ要求レジスタ (HRCL).................................................... 326
11.3 割込みコントローラの動作説明 ......................................................................................... 327
第 12 章
外部割込み制御部 .................................................................................. 337
12.1 外部割込み制御部の概要 .................................................................................................... 338
12.2 外部割込み制御部のレジスタ ............................................................................................. 339
12.2.1
割込み許可レジスタ (ENIR) ..................................................................................... 340
12.2.2
外部割込み要因レジスタ (EIRR) .............................................................................. 341
12.2.3
外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 342
12.3 外部割込み制御部の動作説明 ............................................................................................. 344
第 13 章
MPU / EDSU .......................................................................................... 349
13.1 概要 .................................................................................................................................... 350
13.2 ブレーク機能 ...................................................................................................................... 351
13.2.1
命令アドレスブレーク ............................................................................................. 352
13.2.2
オペランドアドレスブレーク................................................................................... 354
13.2.3
データ値ブレーク..................................................................................................... 357
vii
13.2.4
データブレークでのオペランドの使用 .................................................................... 359
13.2.5
メモリ保護 ............................................................................................................... 360
13.2.6
ブレーク要因 ............................................................................................................ 362
13.3 EDSU レジスタ .................................................................................................................. 363
13.3.1
EDSU 制御レジスタ (BCTRL).................................................................................. 366
13.3.2
EDSU 状態レジスタ (BSTAT) .................................................................................. 371
13.3.3
EDSU ブレーク検出割込み要求レジスタ (BIRQ) .................................................... 375
13.3.4
EDSU チャネル構成レジスタ (BCR0 ∼ BCR7)....................................................... 377
13.4 クイックリファレンス........................................................................................................ 389
第 14 章
REALOS 関連ハード ............................................................................. 393
14.1 遅延割込みモジュール........................................................................................................ 394
14.1.1
遅延割込みモジュールの概要................................................................................... 395
14.1.2
遅延割込みモジュールのレジスタ............................................................................ 396
14.1.3
遅延割込みモジュールの動作説明............................................................................ 397
14.2 ビットサーチモジュール .................................................................................................... 398
14.2.1
ビットサーチモジュールの概要 ............................................................................... 399
14.2.2
ビットサーチモジュールのレジスタ ........................................................................ 400
14.2.3
ビットサーチモジュールの動作説明 ........................................................................ 402
第 15 章
DMAC (DMA コントローラ ) ................................................................. 405
15.1 DMAC (DMA コントローラ ) の概要................................................................................... 406
15.2 DMAC (DMA コントローラ ) のレジスタ詳細説明 ............................................................. 409
15.2.1
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータスレジスタ A ............................. 410
15.2.2
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータスレジスタ B ............................. 414
15.2.3
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ .............. 420
15.2.4
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ .................................. 422
15.3 DMAC (DMA コントローラ ) の動作説明 ........................................................................... 424
15.3.1
動作概要 ................................................................................................................... 425
15.3.2
転送要求の設定 ........................................................................................................ 427
15.3.3
転送シーケンス ........................................................................................................ 428
15.3.4
DMA 転送全般 .......................................................................................................... 430
15.3.5
アドレッシングモード ............................................................................................. 432
15.3.6
データの種類 ............................................................................................................ 433
15.3.7
転送回数制御 ............................................................................................................ 434
15.3.8
CPU 制御.................................................................................................................. 435
15.3.9
動作開始 ................................................................................................................... 436
15.3.10
転送要求の受付けと転送 .......................................................................................... 437
15.3.11
DMA による周辺割込みクリア ................................................................................. 438
15.3.12
一時停止 ................................................................................................................... 439
15.3.13
動作終了 / 停止 ......................................................................................................... 440
15.3.14
エラーによる停止..................................................................................................... 441
15.3.15
DMAC 割込み制御 .................................................................................................... 442
15.3.16
スリープ中の DMA 転送 ........................................................................................... 443
15.3.17
チャネル選択と制御 ................................................................................................. 444
15.4 DMAC (DMA コントローラ ) の動作フロー........................................................................ 446
15.5 データバス.......................................................................................................................... 448
viii
第 16 章
CAN コントローラ ................................................................................. 451
16.1 CAN の特長 ........................................................................................................................ 452
16.2 CAN のブロックダイヤグラム............................................................................................ 453
16.3 CAN のレジスタ ................................................................................................................. 454
16.4 CAN レジスタ機能.............................................................................................................. 461
16.4.1
全体制御レジスタ..................................................................................................... 462
16.4.2
メッセージインタフェースレジスタ ........................................................................ 477
16.4.3
メッセージオブジェクト .......................................................................................... 490
16.4.4
メッセージハンドラレジスタ................................................................................... 496
16.4.5
CAN プリスケーラレジスタ (CANPRE)................................................................... 505
16.5 CAN 機能 ............................................................................................................................ 507
16.5.1
メッセージオブジェクト .......................................................................................... 508
16.5.2
メッセージ送信動作 ................................................................................................. 510
16.5.3
メッセージ受信動作 ................................................................................................. 512
16.5.4
FIFO バッファ機能................................................................................................... 516
16.5.5
割込み機能 ............................................................................................................... 518
16.5.6
ビットタイミング..................................................................................................... 520
16.5.7
テストモード ............................................................................................................ 523
16.5.8
ソフトウェア初期化 ................................................................................................. 528
16.5.9
CAN クロックプリスケーラ ..................................................................................... 529
第 17 章
LIN-UART .............................................................................................. 533
17.1 LIN-UART の概要 ............................................................................................................... 534
17.2 LIN-UART の構成 ............................................................................................................... 537
17.3 LIN-UART のレジスタ ........................................................................................................ 542
17.3.1
シリアル制御レジスタ (SCR)................................................................................... 544
17.3.2
シリアルモードレジスタ (SMR)............................................................................... 547
17.3.3
シリアルステータスレジスタ (SSR) ........................................................................ 550
17.3.4
受信 / 送信データレジスタ (RDR/TDR).................................................................... 553
17.3.5
拡張ステータス・制御レジスタ (ESCR).................................................................. 555
17.3.6
拡張通信制御レジスタ (ECCR) ................................................................................ 558
17.3.7
ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 561
17.4 LIN-UART の割込み............................................................................................................ 563
17.4.1
受信割込み生成とフラグセットタイミング ............................................................. 567
17.4.2
送信割込み生成とフラグセットタイミング ............................................................. 569
17.5 LIN-UART のボーレート..................................................................................................... 571
17.5.1
ボーレートの設定..................................................................................................... 573
17.5.2
リロードカウンタの再起動 ...................................................................................... 576
17.6 LIN-UART の動作 ............................................................................................................... 578
17.6.1
非同期モードでの動作 ( 動作モード 0, 1) ............................................................... 580
17.6.2
同期モードでの動作 ( 動作モード 2) ....................................................................... 583
17.6.3
LIN 機能での動作 ( 動作モード 3) ........................................................................... 586
17.6.4
シリアル端子への直接アクセス ............................................................................... 590
17.6.5
双方向通信機能 ( ノーマルモード ) ......................................................................... 591
17.6.6
マスタ / スレーブ通信機能 ( マルチプロセッサモード ) ......................................... 592
17.6.7
LIN 通信機能............................................................................................................. 595
17.6.8
LIN 通信モード ( 動作モード 3) UART サンプルフローチャート............................. 596
17.7 LIN-UART 使用上の注意事項 ............................................................................................. 599
ix
第 18 章
I2C インタフェース ................................................................................ 601
18.1 I2C インタフェースの概要.................................................................................................. 602
18.2 I2C インタフェースのレジスタ .......................................................................................... 606
18.2.1
バスステータスレジスタ (IBSR) .............................................................................. 607
18.2.2
バス制御レジスタ (IBCR)......................................................................................... 611
18.2.3
クロック制御レジスタ (ICCR) ................................................................................. 619
18.2.4
10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 621
18.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)................................................ 622
18.2.6
7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 624
18.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 625
18.2.8
データレジスタ (IDAR) ............................................................................................ 626
18.3 I2C インタフェースの動作説明 .......................................................................................... 627
18.4 動作フローチャート ........................................................................................................... 632
第 19 章
16 ビットリロードタイマ ...................................................................... 635
19.1 16 ビットリロードタイマの概要 ........................................................................................ 636
19.2 16 ビットリロードタイマのレジスタ................................................................................. 637
19.2.1
制御ステータスレジスタ (TMCSR).......................................................................... 638
19.2.2
16 ビットタイマレジスタ (TMR) ............................................................................. 642
19.2.3
16 ビットリロードレジスタ (TMRLR) ..................................................................... 643
19.3 16 ビットリロードタイマの動作 ........................................................................................ 644
第 20 章
16 ビットフリーランタイマ................................................................... 649
20.1 16 ビットフリーランタイマの概要 .................................................................................... 650
20.2 16 ビットフリーランタイマのレジスタ ............................................................................. 652
20.2.1
タイマデータレジスタ (TCDT)................................................................................. 653
20.2.2
タイマ制御ステータスレジスタ ............................................................................... 654
20.3 16 ビットフリーランタイマの動作 .................................................................................... 657
20.4 16 ビットフリーランタイマ使用上の注意.......................................................................... 659
第 21 章
インプットキャプチャ ........................................................................... 661
21.1 インプットキャプチャの概要 ............................................................................................. 662
21.2 インプットキャプチャのレジスタ...................................................................................... 663
21.2.1
インプットキャプチャレジスタ (IPCP0 ∼ IPCP3).................................................. 664
21.2.2
インプットキャプチャ制御レジスタ (ICS01,ICS23)................................................ 665
21.3 インプットキャプチャの動作 ............................................................................................. 667
第 22 章
アウトプットコンペアユニット ............................................................. 669
22.1 アウトプットコンペアユニットの概要............................................................................... 670
22.2 アウトプットコンペアユニットのレジスタ ....................................................................... 671
22.2.1
コンペアレジスタ (OCCP0 ∼ OCCP3) ................................................................... 672
22.2.2
制御レジスタ (OCS01,OCS23) ................................................................................ 673
22.3 アウトプットコンペアユニットの動作............................................................................... 676
第 23 章
PPG ( プログラマブルパルスジェネレータ )......................................... 679
23.1 PPG の概要 ........................................................................................................................ 680
23.2 PPG のレジスタ ................................................................................................................. 683
23.2.1
制御ステータスレジスタ (PCNH, PCNL)................................................................. 686
23.2.2
PPG 周期設定レジスタ (PCSR) ............................................................................... 690
x
23.2.3
PPG デューティ設定レジスタ (PDUT) .................................................................... 691
23.2.4
PPG タイマレジスタ (PTMR) .................................................................................. 692
23.2.5
ゼネラル制御レジスタ 10 (GCN10) ......................................................................... 693
23.2.6
ゼネラル制御レジスタ 11 (GCN11) ......................................................................... 696
23.2.7
ゼネラル制御レジスタ 2 (GCN20,GCN21) .............................................................. 699
23.3 PPG の動作 ........................................................................................................................ 700
23.3.1
PWM 動作................................................................................................................. 701
23.3.2
ワンショット動作..................................................................................................... 703
23.3.3
割込み....................................................................................................................... 705
23.3.4
PPG 出力オール "L" あるいはオール "H" の出力方法............................................... 706
23.3.5
複数チャネルの起動 ................................................................................................. 707
第 24 章
リアルタイムクロック ........................................................................... 709
24.1 リアルタイムクロックのレジスタ構成............................................................................... 710
24.2 リアルタイムクロックのブロックダイヤグラム ................................................................ 712
24.3 リアルタイムクロックのレジスタの詳細 ........................................................................... 713
第 25 章
A/D コンバータ ...................................................................................... 719
25.1 A/D コンバータの概要 ........................................................................................................ 720
25.2 A/D コンバータのブロックダイヤグラム ........................................................................... 721
25.3 A/D コンバータのレジスタ................................................................................................. 722
25.3.1
アナログ入力許可レジスタ (ADER) ......................................................................... 724
25.3.2
A/D 制御ステータスレジスタ (ADCS)...................................................................... 725
25.3.3
データレジスタ (ADCR1, ADCR0)........................................................................... 730
25.3.4
変換時間設定レジスタ (ADCT) ................................................................................ 731
25.3.5
開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) .......... 733
25.4 A/D コンバータの動作 ........................................................................................................ 735
第 26 章
サブクロックキャリブレーションユニット ........................................... 737
26.1 概要 .................................................................................................................................... 738
26.2 クロック ............................................................................................................................. 741
26.3 レジスタの説明 .................................................................................................................. 742
26.3.1
キャリブレーションユニット制御レジスタ (CUCR) ............................................... 744
26.3.2
32kHz/100kHz タイマデータレジスタ (16 ビット ) (CUTD).................................... 746
26.3.3
4MHz タイマデータレジスタ (24 ビット ) (CUTR).................................................. 748
26.4 利用上の注意 ...................................................................................................................... 749
第 27 章
フラッシュメモリ .................................................................................. 751
27.1 概要 .................................................................................................................................... 752
27.2 アクセスモード .................................................................................................................. 759
27.2.1
FR-CPU からのアクセス.......................................................................................... 760
27.2.2
フラッシュメモリモード .......................................................................................... 762
27.3 自動アルゴリズム ............................................................................................................... 763
27.3.1
自動アルゴリズムのコマンド.................................................................................. 765
27.3.2
ハードウェアシーケンスフラグ ............................................................................... 768
27.3.3
FLCR : フラッシュ制御レジスタ.............................................................................. 770
27.3.4
ハードウェアシーケンスフラグの使用例................................................................. 773
27.4 注意事項 ............................................................................................................................. 775
xi
第 28 章
フラッシュセキュリティ........................................................................ 777
28.1 概要 .................................................................................................................................... 778
28.2 フラッシュセキュリティベクタ ......................................................................................... 779
28.3 フラッシュセキュリティ制御レジスタ............................................................................... 783
付録
付録 A
付録 B
付録 C
付録 D
............................................................................................................... 789
I/O マップ ...................................................................................................................... 790
割込みベクタ ................................................................................................................. 831
DMA 転送要求要因 ........................................................................................................ 841
シリアル書込み時の端子状態........................................................................................ 842
索引 ........................................................................................................................ 849
xii
本版での主な変更内容
ページ
-
変更内容(詳細は本文を参照してください。)
本ハードウェアマニュアルが初版となります。
xiii
xiv
第1章
概要
MB91461/F467RA/F467RB の特長 , ブロックダイ
ヤグラム , 機能概要など全体を知るための基本的な
ことについて説明します。
1.1 概要
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 端子機能一覧表
1.6 入出力回路形式
1
第 1 章 概要
概要
1.1
MB91461/MB91F467RA/MB91F467RB は民生機器などの高速リアルタイム処理が
要求される組込み制御用途向けに設計された汎用の富士通 32 ビット RISC マイクロ
コントローラです。CPU には , FR ファミリと互換の FR60 を使用しています。
本製品は LIN-UART および CAN コントローラを内蔵しています。
■ 特長
● FR60 CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 最大動作周波数 : 80MHz ( 原発振 20MHz/4MHz, 4/20 逓倍 ((PLL クロック逓倍方式 )
• 16 ビット固定長命令 ( 基本命令 )
• 命令実行速度 : 1 命令 /1 サイクル
• メモリ - メモリ間転送命令 , ビット処理命令 , バレルシフト命令など
組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令 : C 言語対応命令
• レジスタのインターロック機能 : アセンブラ記述も容易に可能
• 乗算器の内蔵 / 命令レベルでのサポート
1. 符号付き 32 ビット乗算……5 サイクル
2. 符号付き 16 ビット乗算…… 3 サイクル
• 割込み (PC/PS 退避 ) : 6 サイクル (16 レベル )
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• FR ファミリとの命令互換
● 内蔵周辺機能
• 内蔵 RAM 容量
MB91461:命令キャッシュ 4K バイト
F-bus RAM ( 命令 / データ共通 ) 64K バイト
MB91F467RA/MB91F467RB:
ダイレクトマップキャッシュ ( フラッシュ用キャッシュ ) 8K バイト
D-bus RAM ( データ専用 ) 48K バイト
F-bus RAM ( 命令 / データ共通 ) 16K バイト
• 汎用ポート : 最大 138 本 (MB91F467RA/MB91F467RB), 72 本 (MB91461)
• DMAC (DMA Controller)
同時に最大 5 チャネルの動作が可能 ( 外部→外部は 1 チャネル )
3 つの転送要因 ( 外部端子 / 内部ペリフェラル / ソフトウェア )
起動要因はソフトウェアにて選択可能
アドレッシングモード 32 ビットフルアドレス指定 ( 増加 / 減少 / 固定 )
転送モード ( デマンド転送 / バースト転送 / ステップ転送 / ブロック転送 )
フライバイ転送サポート ( 外部 I/O とメモリ間 )
2
第 1 章 概要
転送データサイズは 8/16/32 ビットから選択可能
多バイト転送可能 ( ソフトにて決定 )
DMAC ディスクリプタは I/O 領域 ("200H" ∼ "240H", "1000H" ∼ "1024H")
• A/D コンバータ ( 逐次比較型 )
10 ビット分解能 : 13 チャネル (MB91461)
16 チャネル (MB91F467RA/MB91F467RB)
変換時間 :
1 µs ( 周辺マクロ動作クロック 16.67MHz 時 ): MB91461
3 µs ( 周辺マクロ動作クロック 16.67MHz 時 ): MB91F467RA, RB
• 外部割込み入力 : 16 チャネル
CAN0, CAN1 の RX 端子と兼用
• ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチする
機能
• LIN-UART( 全二重ダブルバッファ方式 ) : 7 チャネル
クロック同期 / 非同期の選択可能
Sync-break 検出
専用ボーレートジェネレータ内蔵
• I2C バスインタフェース (400kbps 対応 ) : 3 チャネル
3 チャネル マスタ / スレーブ送受信
アービトレーション機能 , クロック同期化機能
• CAN コントローラ (C-CAN) : 2 チャネル
転送速度 最大 1Mbps
32 送受信メッセージバッファ (MB91461)
32 送受信メッセージバッファ
• 16 ビット PPG タイマ : 8 チャネル
• 16 ビットリロードタイマ : 5 チャネル
• 16 ビットフリーランタイマ : 4 チャネル (ICU 用 , OCU 用各 1 チャネル )
• インプットキャプチャ : 4 チャネル ( フリーランタイマと連動 )
• アウトプットコンペア : 4 チャネル ( フリーランタイマと連動 )
• ウォッチドッグタイマ
ウォッチドッグリセット出力端子あり
• リアルタイムクロック
• 低消費電力モード : スリープ / ストップ / シャットダウンモード機能
● パッケージ : LQFP-176 (FPT-176P-M07)
● CMOS 0.18 µm テクノロジ
● 3.3V/5V 電源 [ 降圧回路により内部 Logic 1.8V, I/O 一部 5.0V 耐圧 ]
● 動作温度 : − 40 ℃ ∼ + 85 ℃
( 注意事項 ) MB91F467RB は MB91F467RA に対してダイレクトマップキャッシュの改
善 , 入力しきい値の修正を加えた製品です。これ以降このマニュアルでは ,
MB91F467RA と MB91F467RB を総称して MB91F467R と記述します。
3
第 1 章 概要
■ 品種構成
表 1.1-1 に , MB91461/F467RA/RB 品種構成一覧を示します。掲載されていない内蔵周
辺機能は共通です。
表 1.1-1 MB91461, MB91F467RA/RB 構成一覧
項目
MB91461
MB91F467RA/RB
搭載チャネル
ROM/Flash 容量
−
−
1088K バイト
−
命令キャッシュ
4K バイト
−
−
−
−
−
8K バイト *
−
−
−
16K バイト
(0wait)
32K バイト
(1wait)
−
F-bus RAM
( 容量命令 / データ兼用 )
64K バイト
−
16K バイト
−
外部割込み
16 チャネル
INT0 ∼
INT15
16 チャネル
INT0 ∼
INT15
DMAC
5 チャネル
ch.0 ∼ ch.4
5 チャネル
ch.0 ∼ ch.4
A/D コンバータ
13 チャネル
ch.0 ∼ ch.12
16 チャネル
ch.0 ∼ ch.15
LIN-UART
7 チャネル
ch.0 ∼ ch.6
7 チャネル
ch.0 ∼ ch.6
I2C
3 チャネル
ch.0 ∼ ch.2
3 チャネル
ch.0 ∼ ch.2
CAN
2 チャネル
(32msg)
ch.0, ch.1
2 チャネル
(64msg + 32msg)
ch.0(32msg)
ch.1(64msg)
16 ビット PPG
8 チャネル
ch.0 ∼ ch.7
8 チャネル
ch.0 ∼ ch.7
16 ビットリロードタイマ
5 チャネル
ch.0 ∼ ch.3,
ch.7
5 チャネル
ch.0 ∼ ch.3,
ch.7
16 ビットフリーランタイマ
4 チャネル
ch.0 ∼ ch.3
4 チャネル
ch.0 ∼ ch.3
インプットキャプチャ
4 チャネル
ch.0 ∼ ch.3
4 チャネル
ch.0 ∼ ch.3
アウトプットコンペア
4 チャネル
ch.0 ∼ ch.3
4 チャネル
ch.0 ∼ ch.3
リアルタイムクロック
あり
−
あり
−
−
−
選択可
アドレス 24bit
データ 16bit
−
アドレス 24bit
データ 16bit
−
ROM なし品
−
FLASH 品
−
DSU4
−
−
−
ダイレクトマップキャッシュ
D-bus RAM 容量 ( データ専用 )
32kHz サブクロック
外部バス
その他
デバッグサポートユニット
* : MB91F467RA では使用上制限があります。
4
搭載チャネル
第 1 章 概要
ブロックダイヤグラム
1.2
MB91461/F467R のブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.2-1 ブロックダイヤグラム MB91461/MB91F467R
TRSTX
BREAK
ICS0~ICS2
ICD0~ICD3
DSU
FR60 CPU
コア
(デバッグ
サポート)
ビットサーチ
I-cache
CAN
(2チャネル)
I-bus
32
D-bus
32
RX0, RX1
TX0, TX1
32←→16
バスアダプタ
ダイレクト
マップキャッシュ
SYSCLK
ASX
RDX
WR0X
WR1X
RAM
FLASH
外部バス
インタ
フェース
バスコンバータ
BRQ
BGRNTX
CS0X~CS4X
A23~A00
D31~D16
DREQ0
DACK0X
DEOP0
IOWRX
IORDX
DMAC(5チャネル)
MB91461の場合
クロック
制御
MB91F467Rの場合
TRG0~TRG3
PPG0~PPG7
TIN0~TIN3
TOT0~TOT3
FRCK0~FRCK3
PPG
(8チャネル)
リロードタイマ
(5チャネル)
フリーラン
タイマ
(4チャネル)
ICU0~ICU3
インプット
コンペア
(4チャネル)
OCU0~OCU3
アウトプット
コンペア
(4チャネル)
*1: 16チャネル (MB91F467Rの場合)
*2: AN0~AN15 (MB91F467Rの場合)
R-bus
16
割込み
コントローラ
外部割込み
16チャネル
PORT
インタフェース
NMIX
INT0~INT15
PORT
LIN-UART
(7チャネル)
(BRGを含む)
SIN0~SIN6
SOT0~SOT6
SCK0~SCK6
I2C
(3チャネル)
SDA0~SDA2
SCL0~SCL2
RTC
A/Dコンバータ
(13チャネル*1)
AN0~AN12*2
ATGX
5
第 1 章 概要
外形寸法図
1.3
MB91461/F467R の外形寸法図を示します。
■ LQFP-176 ピン
図 1.3-1 FPT-176P-M07 外形寸法図
プラスチック・LQFP, 176 ピン
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
24.0 × 24.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
コード(参考)
P-LQFP-0176-2424-0.50
(FPT-176P-M07)
プラスチック・LQFP, 176 ピン
(FPT-176P-M07)
注 1)* 印寸法はレジン残りを含まず。レジン残りは片側 +0.25(.010)MAX
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
26.00±0.20(1.024±.008)SQ
*24.00±0.10(.945±.004)SQ
0.145±0.055
(.006±.002)
132
89
133
88
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
0.10±0.10
(.004±.004)
(Stand off)
0˚~8˚
INDEX
176
45
"A"
LEAD No.
1
44
0.50(.020)
C
0.22±0.05
(.009±.002)
0.08(.003)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.25(.010)
M
2004 FUJITSU LIMITED F176013S-c-1-1
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html
6
第 1 章 概要
1.4
端子配列図
MB91461/F467R の端子配列図を示します。
■ 端子配列図
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
VCC5
P17_3 PPG3
P17_2/ PPG2
P17_1/ PPG1
P17_0/ PPG0
P14_3/ ICU3/TTN3/TRG3
P14_2/ ICU2/TIN2/TRG2
P14_1/ ICU1/TIN1/TRG1
P14_0/ ICU0/TIN0/TRG0
P22_3
P22_2/ INT13
P22_0/ INT12
P23_6/ INT11
P23_4/ INT10
VCC5
VSS
P15_3/ OCU3/TOT3
P15_2/ OCU2/TOT2
P15_1/ OCU1/TOT1
P15_0/ OCU0/TOT0
P18_2/ SCK6
P18_1/ SOT6
P18_0/ SIN6
P19_6/ SCK5
P19_5/ SOT5
P19_4/ SIN5
P19_2/ SCK4
P19_1/ SOT4
P19_0/ SIN4
VCC5
VSS
P20_6/ SCK3/FRCK3
P20_5/ SOT3
P20_4/ SIN3
P20_2/ SCK2/FRCK2
P20_1/ SOT2
P20_0/ SIN2
P21_6/ SCK1/FRCK1
P21_5/ SOT1
P21_4/ SIN1
P21_2/ SCK0/FRCK0
P21_1/ SOT0
P21_0/ SIN0
VCC5
図 1.4-1 MB91461 の端子配列図
VSS
INT2 / P24_2
lNT3 / P24_3
SDA1/lNT15 / P22_6
SCL1 /P22_7
SDA2/INT4 / P24_4
SCL2/lNT5 / P24_5
DREQ0
DACK0X
DEOP0
VCC3
VCC3
VSS
C_1
CS4X
CS3X
CS2X
CS1X
CS0X
IORDX
IOWRX
RDY
BRQ
BGRNTX
RDX
WR0X
WR1X
SYSCLK
ASX
VCC3
C_2
VSS
X0
X1
VSS
D16
D17
D18
D19
D20
D21
D22
D23
VCC3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
①
②
③
TOP View
MB91461端子配列
(LQFP-176)
2電源品
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
VSS
INITX
TRSTX
MD0
MD1
MD2
MD3
P23_3 / TX1
P23_2 / RX1/INT9
P23_1 / TX0
P23_0 / RX0/lNT8
P24_7 / INT7
P24_6 / INT6
P22_5 / SCL0
P22_4 / SDA0/INT14
P24_1 / lNT1
P24_0 / INT0
AVRH
AVCC3
AVSS/AVRL
P28_4 / AN12
P28_3 / AN11
P28_2 / AN10
P28_1 / AN9
P28_0 / AN8
P29_7 / AN7
P29_6 / AN6
P29_5 / AN5
P29_4 / AN4
P29_3 / AN3
P29_2 / AN2
P29_1 / AN1
P29_0 / AN0
WDRESETX
BREAK
ICLK
ICS2
ICS1
lCS0
ICD3
lCD2
lCD1
lCD0
VCC3
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
VSS
P17_7 / PPG7
P17_6 / PPG6
P17_5 / PPG5
P17_4 / PPG4
P16_7 / ATGX
NMIX
A23
A22
A21
A20
A19
A18
A17
VSS
VCC3
A16
A15
A14
A13
A12
A11
A10
A09
A08
A07
A06
A05
A04
A03
VSS
VCC3
A02
A01
A00
D31
D30
D29
D28
D27
D26
D25
D24
VSS
7
第 1 章 概要
<注意事項>
3 つの I/O ブロック ( ①∼③ ) は , それぞれ 176 ピン , 162 ピン , 133 ピン (147 ピン ) にて ,
各端子への供給電源レベル (3.3V/5V) が設定できます。ただし , 各ブロックとも , 1 本でも
5V 動作する端子がある場合は , 5V 電源の供給を行ってください。
①の I2C 用端子は電源に 5V を供給する場合のみ , 5V 振幅の入力が可能になります。また ,
I2C の入力しきい値は電源電圧に関係なく 3.3V を基準とした値になります。
①または③を 5V 端子を使用した場合 , INITX 端子へ 5V 入力が必要になりますので , ③には
5V 供給を行ってください。
8
第 1 章 概要
図 1.4-2 に MB91F467R の端子配列図を示します。
SCK3/FRCK3
SOT3
SIN3
SCK2/FRCK2
SOT2
SIN2
SCK1/FRCK1
SOT1
SIN1
SCK0/FRCK0
SOT0
SIN0
OCU3/TOT3
OCU2/TOT2
OCU1/TOT1
OCU0/TOT0
SCK6
SOT6
SIN6
SCK5
SOT5
SIN5
SCK4
SOT4
SIN4
INT13
INT12
INT11
INT10
176
175
174
173
172
171
170
169
168
167
166
165
164
163
162
161
160
159
158
157
156
155
154
153
152
151
150
149
148
147
146
145
144
143
142
141
140
139
138
137
136
135
134
133
VCC5
P17_3
P17_2/
P17_1/
P17_0/
P14_3/
P14_2/
P14_1/
P14_0/
P22_3
P22_2/
P22_0/
P23_6/
P23_4/
VCC5
VSS
P15_3/
P15_2/
P15_1/
P15_0/
P18_2/
P18_1/
P18_0/
P19_6/
P19_5/
P19_4/
P19_2/
P19_1/
P19_0/
VCC5
VSS
P20_6/
P20_5/
P20_4/
P20_2/
P20_1/
P20_0/
P21_6/
P21_5/
P21_4/
P21_2/
P21_1/
P21_0/
VCC5
PPG2
PPG1
PPG0
ICU3/TIN3/TRG3
ICU2/TIN2/TRG2
ICU1/TIN1/TRG1
ICU0/TIN0/TRG0
図 1.4-2 MB91F467R の端子配列図
VSS
INT2/P24_2
INT3/P24_3
SDA1/INT15/P22_6
SCL1/P22_7
SDA2/INT4/P24_4
SCL2/INT5/P24_5
DREQ0/P13_0
DACK0X/P13_1
DEOP0/P13_2
VCC3
VCC3
VSS
C_1
CS4X/P09_4
CS3X/P09_3
CS2X/P09_2
CS1X/P09_1
CS0X/P09_0
IORDX/P11_0
IOWRX/P11_1
RDY/P08_7
BRQ/P08_6
BGRNTX /P08_5
RDX/P08_4
WR1X/P08_1
WR0X/P08_0
NMIX
MCLKE/P10_6
MCLKI/P10_5
MCLKO/P10_4
WEX/P10_3
BAAX /P10_2
ASX/P10_1
SYSCLK/P10_0
VCC3
C_2
VSS
X0
X1
VSS
X0A
X1A
VCC3
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
⑤
①
②
④
③
MB91F467R端子配列
(LQFP-176)
2電源品
④
④
入出力電圧レベルは3.3Vです
⑤
入出力電圧レベルは、対応するVCC5に加えられる電圧によります。
④
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
108
107
106
105
104
103
102
101
100
99
98
97
96
95
94
93
92
91
90
89
VSS
INITX
MD0
MD1
MD2
MD3
P23_3 / TX1
P23_2 / RX1/INT9
P23_1 / TX0
P23_0 / RX0/INT8
P24_7 / INT7
P24_6 / INT6
P24_1 / INT1
P24_0 / INT0
P22_5 / SCL0
P22_4 / SDA0/INT14
AVRH
AVCC3
AVSS/AVRL
P28_7 / AN15
P28_6 / AN14
P28_5 / AN13
P28_4 / AN12
P28_3 / AN11
P28_2 / AN10
P28_1 / AN9
P28_0 / AN8
P29_7 / AN7
P29_6 / AN6
P29_5 / AN5
P29_4 / AN4
P29_3 / AN3
P29_2 / AN2
P29_1 AN1
P29_0 / AN0
WDRESETX
P17_7 / PPG7
P17_6 / PPG6
P17_5 / PPG5
P17_4 / PPG4
P16_7 / ATGX
P05_7 / A23
P05_6 / A22
VCC3
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
VSS
P05_5/
P05_4/
P05_3/
P05_2/
P05_1/
P05_0/
P06_7/
P06_6/
P06_5/
P06_4/
P06_3/
P06_2/
P06_1/
VSS
VCC3
P06_0/
P07_7/
P07_6/
P07_5/
P07_4/
P07_3/
P07_2/
P07_1/
P07_0/
P00_7/
P00_6/
P00_5/
P00_4/
P00_3/
VSS
VCC3
P00_2/
P00_1/
P00_0/
P01_7/
P01_6/
P01_5/
P01_4/
P01_3/
P01_2/
P01_1/
P01_0/
VSS
A21
A20
A19
A18
A17
A16
A15
A14
A13
A12
A11
A10
A09
A08
A07
A06
A05
A04
A03
A02
A01
A00
D31
D30
D29
D28
D27
D26
D25
D24
D23
D22
D21
D20
D19
D18
D17
D16
9
第 1 章 概要
端子機能一覧表
1.5
MB91461/F467R の端子機能の一覧を示します。
■ 端子機能一覧表
表 1.5-1 MB91461/F467R の端子機能一覧表 (1 / 5)
端子番号
2
3
端子名
P24_2
INT2
P24_3
INT3
P22_6
4
SDA1
INT15
P22_7
5
SCL1
P24_4
6
SDA2
INT4
P24_5
入出力
入出力
回路形式
I/O
D
I/O
D
汎用入出力ポートです。
外部割込み入力端子です。
汎用入出力ポートです。
外部割込み入力端子です。
汎用入出力ポートです。
I/O
オープン
ドレイン
C
I/O
オープン
ドレイン
C
I/O
オープン
ドレイン
機能
I2C バスデータ入出力端子です。
外部割込み入力端子です。
汎用入出力ポートです。
I2C バスクロック入出力端子です。
汎用入出力ポートです。
C
I2C バスデータ入出力端子です。
外部割込み入力端子です。
汎用入出力ポートです。
C
INT5
I/O
オープン
ドレイン
8
DREQ0
I
H
DMA 外部転送要求入力です。
9
DACK0X
O
H
DMA 外部転送アクノリッジ出力です。
10
DEOP0
O
H
DMA 外部転送 EOP (End of Process) 出力です。
15 ∼ 19
CS4X ∼
CS0X
O
H
チップセレクト出力です。
20
IORDX
O
H
DMA フライバイ転送時のリードストローブ出力です。
21
IOWRX
O
H
DMA フライバイ転送時のライトストローブ出力です。
22
RDY
I
H
外部レディ入力です。
23
BRQ
I
H
外部バス開放要求入力です。
24
BGRNTX
O
H
外部バス開放受付け出力です。
25
RDX
O
H
外部リードストローブ出力です。
26
WR0X
O
H
外部ライトストローブ出力です。
27
WR1X
O
H
外部ライトストローブ出力です。
28
SYSCLK
O
H
システムクロック出力です。
29
ASX
O
H
アドレスストローブ出力です。
33
X0
−
H
クロック ( 発振 ) 入力です。
7
10
SCL2
I2C バスクロック入出力端子です。
外部割込み入力端子です。
第 1 章 概要
表 1.5-1 MB91461/F467R の端子機能一覧表 (2 / 5)
端子番号
端子名
入出力
入出力
回路形式
34
X1
−
H
クロック ( 発振 ) 出力です。
36 ∼ 43
46 ∼ 53
D16 ∼ D31
I/O
H
外部データバス信号です。
54 ∼ 56
59 ∼ 72
75 ∼ 81
A00 ∼ A23
O
H
外部アドレスバス信号です。
82
NMIX
I
H
NMI (Non Maskable Interrupt) 入力です。
H
汎用入出力ポートです。
H
A/D コンバータ外部トリガ入力です。
H
汎用入出力ポートです。
H
PPG タイマ出力端子です。
83
84 ∼ 87
P16_7
ATGX
P17_4 ∼
P17_7
I/O
機能
I/O
PPG4 ∼
PPG7
90 ∼ 93
ICD0 ∼
ICD3
I/O
H
開発ツール用データ入出力端子です。
94 ∼ 96
ICS0 ∼
ICS2
O
H
開発ツール用ステータス出力端子です。
97
ICLK
O
I
開発ツール用クロック出力端子です。
98
BREAK
I
H
開発ツール用ブレーク入力端子です。
99
WDRESETX
O
J
ウォッチドッグリセット出力端子です。
100 ∼ 107
P29_0 ∼
P29_7
I/O
F
AN0 ∼ AN7
108 ∼ 112
116, 117
P28_0 ∼
P28_4
A/D コンバータ用アナログ入力端子です。
汎用入出力ポートです。
I/O
AN8 ∼
AN12
P24_0,
P24_1
F
A/D コンバータ用アナログ入力端子です。
汎用入出力ポートです。
I/O
D
INT0, INT1
P22_4
118
SDA0
INT14
P22_5
119
SCL0
P24_6
120
INT6
汎用入出力ポートです。
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
汎用入出力ポートです。
I/O
オープン
ドレイン
C
I/O
オープン
ドレイン
C
I/O
オープン
ドレイン
D
I2C バスデータ入出力端子です。
外部割込み入力端子です。
汎用入出力ポートです。
I2C バスクロック入出力端子です。
汎用入出力ポートです。
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
11
第 1 章 概要
表 1.5-1 MB91461/F467R の端子機能一覧表 (3 / 5)
端子番号
端子名
入出力
入出力
回路形式
I/O
D
P24_7
121
INT7
汎用入出力ポートです。
P23_0
122
RX0
P23_1
TX0
I/O
D
RX1
I/O
D
P23_3
TX1
CAN0 の TX 出力端子です
I/O
D
CAN1 の RX 入力端子です。
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
I/O
D
汎用入出力ポートです。
CAN0 の TX 出力端子です。
126
MD3
I
A
127
MD2
I
A
128
MD1
I
A
129
MD0
I
B
130
TRSTX
I
E
開発ツール用リセット入力端子です。
131
INITX
I
B
外部リセット入力です。
I/O
D
I/O
D
134
135
P21_0
SIN0
P21_1
SOT0
P21_2
136
SCK0
137
138
P21_4
SIN1
P21_5
SOT1
I/O
D
SCK1
I/O
D
I/O
D
141
P20_0
SIN2
P20_1
SOT2
UART0 のデータ入力端子です。
汎用入出力ポートです。
UART0 のデータ出力端子です。
UART0 のクロック入出力端子です。
汎用入出力ポートです。
UART1 のデータ入力端子です。
汎用入出力ポートです。
UART1 のデータ出力端子です。
汎用入出力ポートです。
I/O
D
FRCK1
140
汎用入出力ポートです。
フリーランタイマ 0 の外部クロック入力端子です。
P21_6
139
モード設定端子です。
MD3 は "0" 固定にしてください。
汎用入出力ポートです。
FRCK0
12
汎用入出力ポートです。
汎用入出力ポートです。
INT9
125
CAN0 の RX 入力端子です。
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
P23_2
124
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
汎用入出力ポートです。
INT8
123
機能
UART1 のクロック入出力端子です。
フリーランタイマ 1 の外部クロック入力端子です。
I/O
D
I/O
D
汎用入出力ポートです。
UART2 のデータ入力端子です。
汎用入出力ポートです。
UART2 のデータ出力端子です。
第 1 章 概要
表 1.5-1 MB91461/F467R の端子機能一覧表 (4 / 5)
端子番号
端子名
入出力
入出力
回路形式
P20_2
142
SCK2
汎用入出力ポートです。
I/O
D
FRCK2
143
144
P20_4
SIN3
P20_5
SOT3
SCK3
I/O
D
I/O
D
149
150
151
152
153
154
155
156
P19_0
SIN4
P19_1
SOT4
P19_2
SCK4
P19_4
SIN5
P19_5
SOT5
P19_6
SCK5
P18_0
SIN6
P18_1
SOT6
P18_2
SCK6
I/O
D
OCU0 ∼
OCU3
I/O
D
I/O
D
I/O
D
I/O
D
I/O
D
I/O
D
I/O
D
I/O
D
I/O
D
164
P23_4
INT10
P23_6
INT11
汎用入出力ポートです。
UART3 のデータ出力端子です。
UART3 のクロック入出力端子です。
汎用入出力ポートです。
UART4 のデータ入力端子です。
汎用入出力ポートです。
UART4 のデータ出力端子です。
汎用入出力ポートです。
UART4 のクロック入出力端子です。
汎用入出力ポートです。
UART5 のデータ入力端子です。
汎用入出力ポートです。
UART5 のデータ出力端子です。
汎用入出力ポートです。
UART5 のクロック入出力端子です。
汎用入出力ポートです。
UART6 のデータ入力端子です。
汎用入出力ポートです。
UART6 のデータ出力端子です。
汎用入出力ポートです。
UART6 のクロック入出力端子です。
汎用入出力ポートです。
I/O
D
TOT0 ∼
TOT3
163
UART3 のデータ入力端子です。
フリーランタイマ 3 の外部クロック入力端子です。
P15_0 ∼
P15_3
157 ∼ 160
汎用入出力ポートです。
汎用入出力ポートです。
FRCK3
148
UART2 のクロック入出力端子です。
フリーランタイマ 2 の外部クロック入力端子です。
P20_6
145
機能
アウトプットコンペア出力端子です。
リロードタイマ出力端子です。
I/O
D
I/O
D
汎用入出力ポートです。
外部割込み入力端子です。
汎用入出力ポートです。
外部割込み入力端子です。
13
第 1 章 概要
表 1.5-1 MB91461/F467R の端子機能一覧表 (5 / 5)
端子番号
165
166
167
端子名
P22_0
INT12
P22_2
INT13
P22_3
入出力
入出力
回路形式
I/O
D
I/O
D
I/O
D
P14_0 ∼
P14_3
168 ∼ 171
ICU0 ∼
ICU3
TIN0 ∼
TIN3
172 ∼ 175
14
PPG0 ∼
PPG3
汎用入出力ポートです。
外部割込み入力端子です。
汎用入出力ポートです。
外部割込み入力端子です。
汎用入出力ポートです。
汎用入出力ポートです。
インプットキャプチャ入力端子です。
I/O
D
リロードタイマの外部トリガ入力端子です。
TRG0 ∼
TRG3
P17_0 ∼
P17_3
機能
PPG の外部トリガ入力端子です。
汎用入出力ポートです。
I/O
D
PPG タイマ出力端子です。
第 1 章 概要
表 1.5-2 MB91461 端子機能一覧表【電源・GND 端子】
端子番号
端子名
I/O 回路形式
端子機能
1, 13, 32, 35
45, 58, 74,
88, 132, 146,
161
VSS
(VSS)
11, 12, 30,
44, 57, 73,
89
VCC3
(VCC3)
3.3V 電源端子です。
GND 端子です。
133
147
VCC5
(VCC5)
5V 電源端子です。116 ∼ 145 ピンに対応した I/O 電源で
あり , 3.3V を供給することにより I/O が 3.3V 動作になり
ます。ほかの I/O 電源ブロックで 5V を使用する場合には
本端子に属する I/O も 5V に設定する必要があります。
162
VCC5
(VCC5)
5V 電源端子です。148 ∼ 160 ピンに対応した I/O 電源で
あり , 3.3V を供給することにより I/O が 3.3V 動作になり
ます。
176
VCC5
(VCC5)
5V 電源端子です。2 ∼ 7, 163 ∼ 175 ピンに対応した I/O
電源であり , 5V 動作端子が 1 本以上ある場合には 5V を
供給してください。
113
AVSS/AVRL
(AVSS)
A/D コンバータ用アナログ GND 端子です。
114
AVCC3
(AVCC3)
A/D コンバータ用 3.3V 電源端子です。
115
AVRH
(AVRH)
A/D コンバータ用基準電源端子です。
14
C_1
−
内部レギュレータ用のコンデンサ接続端子です。1µF を接
続してください。
31
C_2
−
内部レギュレータ用のコンデンサ接続端子です。1µF を接
続してください。
15
第 1 章 概要
■ MB91F467R 端子機能一覧表
表 1.5-3 に MB91F467R の端子機能一覧表を示します。
表 1.5-3 MB91F467R 端子機能一覧表 (1 / 7)
端子番号
端子名
入出力
入出力
回路形式
I/O
D
P24_2
2
INT2
I/O
D
INT3
P22_6
4
SDA1
INT15
P22_7
5
SCL1
P24_4
6
SDA2
INT4
P24_5
7
SCL2
INT5
I/O
オープ
ンドレ
イン
I/O
オープ
ンドレ
イン
I/O
オープ
ンドレ
イン
汎用入出力ポートです。
C
汎用入出力ポートです。
C
C
汎用入出力ポートです。
C
I/O
H
H
H
DEOP0
汎用入出力ポートです。
DMA 外部転送 EOP(End of Process) 出力です。
P09_4 ∼
P09_0
汎用入出力ポートです。
I/O
H
CS4X ∼
CS0X
チップセレクト出力です。
P11_0
I/O
H
IORDX
汎用入出力ポートです。
DMA フライバイ転送時のリードストローブ出力です。
P11_1
16
汎用入出力ポートです。
DMA 外部転送アクノリッジ出力です。
I/O
I/O
IOWRX
汎用入出力ポートです。
DMA 外部転送要求入力です。
P13_2
21
I2C バス クロック入出力端子です。
外部割込み入力端子です。
DACK0
20
I2C バス データ入出力端子です。
外部割込み入力端子です。
I/O
オープ
ンドレ
イン
I/O
15 ∼ 19
I2C バス クロック入出力端子です。
汎用入出力ポートです。
P13_1
10
I2C バス データ入出力端子です。
外部割込み入力端子です。
DREQ0
9
汎用入出力ポートです。
外部割込み入力端子です。
P13_0
8
汎用入出力ポートです。
外部割込み入力端子です。
P24_3
3
端子機能
H
汎用入出力ポートです。
DMA フライバイ転送時のライトストローブ出力です。
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (2 / 7)
端子番号
端子名
入出力
入出力
回路形式
I/O
H
P08_7
22
RDY
I/O
H
BRQ
I/O
H
BGRNTX
I/O
H
汎用入出力ポートです。
RDX
外部リードストローブ出力です。
P08_1
汎用入出力ポートです。
26
I/O
H
WR1X
外部ライトストローブ出力です。(SDRAM 使用時は
DQML 信号 )
P08_0
汎用入出力ポートです。
27
I/O
H
外部ライトストローブ出力です。(SDRAM 使用時は
DQMU 信号 )
I
H
マスク不可割込み入力です。
I/O
H
WR0X
28
汎用入出力ポートです。
外部バス開放受付出力です。
P08_4
25
汎用入出力ポートです。
外部バス開放要求入力です。
P08_5
24
汎用入出力ポートです。
外部レディ入力です。
P08_6
23
端子機能
NMIX
P10_6
29
MCLKE
SDRAM 用クロックイネーブル出力信号です。
P10_5
30
I/O
H
MCLKI
I/O
H
MCLKO
汎用入出力ポートです。
SDRAM 用クロック出力です。
P10_3
32
汎用入出力ポートです。
SDRAM 用クロック入力です。
P10_4
31
汎用入出力ポートです。
I/O
H
汎用入出力ポートです。
WEX
外部ライトイネーブル信号です。
P10_2
汎用入出力ポートです。
33
I/O
H
I/O
H
BAAX
P10_1
34
ASX
汎用入出力ポートです。
アドレスストローブ出力です。
P10_0
35
バーストモード FLASH メモリ用アドレスアドバンス出力
です。
I/O
H
SYSCLK
汎用入出力ポートです。
システムクロック出力です。
39
X0
--
G
クロック ( 発振 ) 入力です。
40
X1
--
G
クロック ( 発振 ) 出力です。
17
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (3 / 7)
端子番号
端子名
入出力
入出力
回路形式
42
X0A
--
G
サブクロック ( 発振 ) 入力です。
43
X1A
--
G
サブクロック ( 発振 ) 出力です。
46 ∼ 53
P01_0 ∼
P01_7
汎用入出力ポートです。
I/O
H
D16 ∼ D23
54 ∼ 56
59 ∼ 63
P00_0 ∼
P00_7
外部データバス信号です。
汎用入出力ポートです。
I/O
H
D24 ∼ D31
64 ∼ 71
P07_0 ∼
P07_7
外部データバス信号です。
汎用入出力ポートです。
I/O
H
A00 ∼ A07
72
75 ∼ 81
P06_0 ∼
P06_7
外部アドレスバス信号です。
汎用入出力ポートです。
I/O
H
A08 ∼ A15
82 ∼ 87
91, 91
P05_0 ∼
P05_7
外部アドレスバス信号です。
汎用入出力ポートです。
I/O
H
A16 ∼ A23
外部アドレスバス信号です。
P16_7
92
I/O
H
ATGX
汎用入出力ポートです。
I/O
H
PPG4 ∼
PPG7
97
WDRESETX
98 ∼ 105
P29_0 ∼
P29_7
PPG タイマ出力です。
O
J
I/O
F
A/D コンバータ用アナログ入力端子です。
P28_0 ∼
P28_7
汎用入出力ポートです。
I/O
F
AN8 ∼
AN15
P22_4
117
SDA0
INT14
18
ウォッチドッグリセット出力です。
汎用入出力ポートです。
AN0 ∼ AN7
106 ∼ 113
汎用入出力ポートです。
A/D コンバータ外部トリガ入力です。
P17_4 ∼
P17_7
93 ∼ 96
端子機能
A/D コンバータ用アナログ入力端子です。
I/O
オープ
ンドレ
イン
汎用入出力ポートです。
C
I2C バス データ DATA 入出力端子です。
外部割込み入力端子です。
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (4 / 7)
端子番号
端子名
入出力
P22_5
I/O
オープ
ンドレ
イン
118
SCL0
入出力
回路形式
汎用入出力ポートです。
C
P24_0 ∼
P24_1
D
INT0 ∼
INT1
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
P24_6
121
汎用入出力ポートです。
I/O
D
I/O
D
INT6
P24_7
122
123
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
汎用入出力ポートです。
INT7
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
P23_0
汎用入出力ポートです。
RX0
I/O
D
P23_1
124
I/O
D
TX0
汎用入出力ポートです。
I/O
D
P23_3
I/O
D
TX1
MD3
I
A
128
MD2
I
K
129
MD1
I
K
130
MD0
I
K
131
INITX
I
B
I/O
D
P21_0
SIN0
I/O
SOT0
モード設定端子です。
MD3 は "0" 固定にしてください。
外部リセット入力です。
汎用入出力ポートです。
UART0 のデータ入力端子です。
P21_1
135
汎用入出力ポートです。
CAN0 の TX 出力端子です。
127
134
CAN1 の RX 入力端子です
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
INT9
126
汎用入出力ポートです。
CAN0 の TX 出力端子です
P23_2
RX1
CAN0 の RX 入力端子です。
外部割込み入力端子です。
シャットダウンからの復帰要因として使用可能です。
INT8
125
I2C バス クロック入出力端子です。
汎用入出力ポートです。
I/O
119 ∼ 120
端子機能
D
汎用入出力ポートです。
UART0 のデータ出力端子です。
19
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (5 / 7)
端子番号
端子名
入出力
入出力
回路形式
P21_2
136
SCK0
汎用入出力ポートです。
I/O
D
FRCK0
I/O
D
SIN1
139
I/O
D
UART1 のデータ出力端子です。
P21_6
汎用入出力ポートです。
SCK1
I/O
D
I/O
D
SIN2
I/O
D
汎用入出力ポートです。
SOT2
UART2 のデータ出力端子です。
P20_2
汎用入出力ポートです。
SCK2
I/O
D
FRCK2
I/O
D
SIN3
汎用入出力ポートです。
UART3 のデータ入力端子です。
P20_5
144
UART2 のクロック入出力端子です。
フリーランタイマ 2 の外部クロック入力端子です。
P20_4
143
I/O
D
汎用入出力ポートです。
SOT3
UART3 のデータ出力端子です。
P20_6
汎用入出力ポートです。
SCK3
I/O
D
FRCK3
I/O
D
SIN4
I/O
D
SOT4
I/O
SCK4
汎用入出力ポートです。
UART4 のデータ出力端子です。
P19_2
150
汎用入出力ポートです。
UART4 のデータ入力端子です。
P19_1
149
UART3 のクロック入出力端子です。
フリーランタイマ 3 の外部クロック入力端子です。
P19_0
148
20
汎用入出力ポートです。
UART2 のデータ入力端子です。
P20_1
141
UART1 のクロック入出力端子です。
フリーランタイマ 1 の外部クロック入力端子です。
P20_0
140
145
汎用入出力ポートです。
SOT1
FRCK1
142
汎用入出力ポートです。
UART1 のデータ入力端子です。
P21_5
138
UART0 のクロック入出力端子です。
フリーランタイマ 0 の外部クロック入力端子です。
P21_4
137
端子機能
D
汎用入出力ポートです。
UART4 のクロック入出力端子です。
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (6 / 7)
端子番号
端子名
入出力
入出力
回路形式
I/O
D
P19_4
151
SIN5
I/O
D
SOT5
I/O
D
SCK5
I/O
D
SIN6
I/O
D
SOT6
I/O
D
SCK6
OCU0 ∼
OCU3
汎用入出力ポートです。
I/O
D
TOT0 ∼
TOT3
I/O
D
INT10
I/O
D
INT11
I/O
D
INT12
I/O
D
INT13
167
P22_3
汎用入出力ポートです。
外部割込み入力端子です。
P22_2
166
汎用入出力ポートです。
外部割込み入力端子です。
P22_0
165
汎用入出力ポートです。
外部割込み入力端子です。
P23_6
164
アウトプットコンペア出力端子です。
リロードタイマ出力端子です。
P23_4
163
汎用入出力ポートです。
UART6 のクロック入出力端子です。
P15_0 ∼
P15_3
157 ∼ 160
汎用入出力ポートです。
UART6 のデータ出力端子です。
P18_2
156
汎用入出力ポートです。
UART6 のデータ入力端子です。
P18_1
155
汎用入出力ポートです。
UART5 のクロック入出力端子です。
P18_0
154
汎用入出力ポートです。
UART5 のデータ出力端子です。
P19_6
153
汎用入出力ポートです。
UART5 のデータ入力端子です。
P19_5
152
端子機能
汎用入出力ポートです。
外部割込み入力端子です。
I/O
D
汎用入出力ポートです。
21
第 1 章 概要
表 1.5-3 MB91F467R 端子機能一覧表 (7 / 7)
端子番号
端子名
入出力
入出力
回路形式
端子機能
P14_0 ∼
P14_3
汎用入出力ポートです。
ICU0 ∼
ICU3
インプットキャプチャ入力端子です。
I/O
168 ∼ 171
D
TIN0 ∼
TIN3
リロードタイマの外部トリガ入力端子です。
TRG0 ∼
TRG3
PPG の外部トリガ入力端子です。
P17_0 ∼
P17_3
汎用入出力ポートです。
I/O
172 ∼ 175
D
PPG0 ∼
PPG3
PPG タイマ出力端子です。
表 1.5-4 MB91F467R 端子機能一覧表【電源・GND 端子】
端子番号
端子名
入出力
端子機能
1, 13, 38,41,
45, 58, 74,
88, 132, 146, VSS
161
(VSS)
GND 端子です。
11, 12, 36,44,
VCC3
57, 73, 89
(VCC3)
3.3V 電源端子です。
133,
147
VCC5
(VCC5)
5V 電源端子です。117 ∼ 145 ピンに対応した I/O 電源で
あり , 3.3V を供給することにより I/O が 3.3V 動作になり
ます。ほかの I/O 電源ブロックで 5V を使用する場合には
本端子に属する I/O も 5V に設定する必要があります。
162
VCC5
(VCC5)
5V 電源端子です。148 ∼ 160 ピンに対応した I/O 電源で
あり , 3.3V を供給することにより I/O が 3.3V 動作になり
ます。
176
VCC5
(VCC5)
5V 電源端子です。2 ∼ 7, 163 ∼ 175 ピンに対応した I/O 電
源であり , 5V 動作端子が 1 本以上ある場合には 5V を供給
してください。
114
AVSS/AVRL
(AVSS)
A/D コンバータ用アナログ GND 端子です。
115
AVCC3
(AVCC3)
A/D コンバータ用 3.3V 電源端子です。
116
AVRH
(AVRH)
A/D コンバータ用基準電源端子です。
14
C_1
--
内部レギュレータ用のコンデンサ接続端子です。4.7 µF を
接続してください。
37
C_2
--
内部レギュレータ用のコンデンサ接続端子です。4.7 µF を
接続してください。
22
第 1 章 概要
1.6
入出力回路形式
表 1.6-1 に , 入出力回路形式を示します。
■ 入出力回路形式
表 1.6-1 入出力回路形式 (1 / 3)
分類
回路形式
備考
5V CMOS レベルヒステリシス入力
プルダウン付き
5Vレベル
入力
A
プルダウン
N-ch
5V CMOS レベルヒステリシス入力
プルアップ付き
プルアップ
P-ch
B
入力
5Vレベル
I2C 用入出力端子
IOL = 3 mA
N-ch
出力駆動 N-ch
5V 耐圧
( スタンバイ制御付き )
C
入力
スタンバイ制御
23
第 1 章 概要
表 1.6-1 入出力回路形式 (2 / 3)
分類
回路形式
備考
5V CMOS レベル入力
IOL = 4 mA
プルアップ制御
P-ch
5Vレベル
P-ch
出力駆動 P-ch
N-ch
出力駆動 N-ch
5V CMOS レベル入力
5V CMOS レベルヒステリシス入力
プルアップ / プルダウン制御付き
( スタンバイ制御付き )
D
プルダウン制御
N-ch
入力
スタンバイ制御
入力
スタンバイ制御
3.3V CMOS レベルヒステリシス入力
5V 耐圧
( スタンバイ制御付き )
3.3Vレベル
E
入力
3.3V CMOS レベル入力
IOL = 4 mA
3.3Vレベル
P-ch
出力駆動 P-ch
N-ch
出力駆動 N-ch
F
入力
スタンバイ制御
入力
スタンバイ制御
アナログ入力
24
3.3V CMOS レベル入力
3.3V CMOS レベルヒステリシス入力
アナログ入力
( スタンバイ制御付き )
第 1 章 概要
表 1.6-1 入出力回路形式 (3 / 3)
分類
回路形式
備考
3.3Vレベル
入力
3.3V 発振セル
( 帰還抵抗 1MΩ)
G
スタンバイ制御
3.3V CMOS レベル出力
IOL = 4 mA
プルアップ制御
P-ch
3.3Vレベル
P-ch
出力駆動 P-ch
N-ch
出力駆動 N-ch
3.3V CMOS レベル入力
3.3V CMOS レベルヒステリシス入力
プルアップ / プルダウン制御付き
( スタンバイ制御付き )
H
プルダウン制御
N-ch
入力
スタンバイ制御
入力
スタンバイ制御
3.3V CMOS レベル出力
I : IOL = 8 mA
3.3Vレベル
P-ch
出力駆動 P-ch
N-ch
出力駆動 N-ch
J : IOL = 4 mA
I, J
5V CMOS レベルヒステリシス入力
5Vレベル
K
入力
25
第 1 章 概要
26
第2章
デバイスの取扱いについて
FR ファミリの取扱い上の注意について説明しま
す。
2.1 デバイス取扱い上の注意
2.2 使用上の注意
27
第 2 章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて
説明します。
■ ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加し
た場合, またはVCC端子とVSS端子との間に定格を超える電圧を印加した場合に, ラッ
チアップ現象を生じることがあります。ラッチアップが生じると電源電流が激増し , 素
子の熱破壊に至ることがありますので使用に際しては最大定格を超えることのないよ
う十分に注意してください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンの処理をしてください。
■ 電源端子について
VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する
ためにデバイス内部で同電位にすべきものどうしを接続してありますが , 不要輻射の
低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格
を遵守などのために , 必ずそれらすべてを外部で電源およびグランドに接続してくだ
さい。また , 電流供給源からできる限り低インピーダンスで本デバイスの VCC, VSS に
接続するような配慮をお願いします。
さらに , 本デバイスの近くで , VCC と VSS の間に 0.1 µF 程度のセラミックコンデンサ
をバイパスコンデンサとして接続することをお勧めします。
MB91461/F467R には , 降圧レギュレータが内蔵されています。レギュレータ用に必ず
C_1, C_2 端子に 4.7 µF のバイパスコンデンサを接続してください。
■ 水晶発振回路について
X0, X1 (X0A, X1A) 端子の近辺のノイズは本デバイスの誤動作の原因となります。X0
(X0A) と X1 (X1A) および水晶発振子さらにグランドへのバイパスコンデンサはできる
限り近くに配置するようにプリント板を設計してください。また , X0, X1 端子の回り
をグランドで囲むようなプリント板アートワークは安定した動作を期待できますので,
強くお勧めします。
各量産品において , 使用される発振子メーカに発振評価依頼をしてください。
28
第 2 章 デバイスの取扱いについて
■ 外部クロック使用時の注意
外部クロックを使用する際には , 原則として X0 (X0A) 端子 , また , X1 (X1A) 端子には
X0 (X0A) と逆相のクロックを同時に供給してください。ただし , この場合には STOP
モード ( 発振停止モード ) は使用しないでください (STOP 時 , X1 (X1A) 端子が "H" 出
力で停止するため )。
図 2.1-1 外部クロック使用例 ( 通常 )
X0 (X0A)
X1 (X1A)
( 注意事項 ) STOP モード ( 発振停止モード ) は使用できません。
■ モード端子 (MD0 ∼ MD3) について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより
誤ってテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子
と VCC または VSS 間のパターン長をできる限り短くし , これらを低インピーダンスで
接続するようにしてください。
■ 3.3V 系および 5V 系の電源投入順序について
• 電源投入直後は発振回路の発振安定待ち時間を確保するため , INITX 端子への "L"
レベル入力を発振安定待ち時間 (8ms) の間持続してください。
• 電源投入順序はありません。
• リセット解除 (INITX 端子を "L" レベル→ "H" レベル ) を行う場合は , 3.3V 系および
5V 系電源が安定している状態で行ってください。
■ PLL クロックモード動作中の注意について
MB91461/F467R で PLL クロックを選択しているときに発振子が外れたり , クロック入
力が停止した場合 , PLL 内部の自励発振回路の自走周波数で動作を続ける場合があり
ます。この動作は保証外の動作です。
■ 外部バスの設定
MB91461/F467R は , 外部バスクロック SYSCLK は最大 40MHz の保証となっています。
DIVR1 ( 外部バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを
40MHz に設定すると , 外部バスも 80MHz になります。ベースクロックを変更する際に
は , SYSCLK が 40MHz を超えないように設定した後 , ベースクロックを変更してくだ
さい。
■ プルアップコントロール
外部バス端子として使用する端子に対してプルアップ抵抗をつけると交流規格を保証
できません。
29
第 2 章 デバイスの取扱いについて
■ PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
使用時に割込み処理ルーチンでブレークしたり , PS レジスタ内のフラグの表示内容が
更新されたりする場合があります。いずれの場合も , EIT から復帰後以降に , 正しく再
処理を行うように設計されていますので , EIT 前後の動作は仕様どおりの処理を行いま
す。
1) DIV0U/DIV0S 命令の直前の命令では , ユーザ割込み・NMI を受け付けた場合 , ス
テップ実行を行った場合 , データイベントまたはエミュレータメニューにてブ
レークした場合 , 以下の動作を行う場合があります。
- D0, D1 フラグが先行して更新されます。
- EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
- EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0, D1 フラグが 1) と同じ値
に更新されます。
2) ユーザ割込み・NMI 要因が発生している状態で , 割込みを許可するために
OR CCR/ST ILM/MOV Ri,PS の各命令が実行されると , 以下のような動作
を行います。
- PS レジスタが先行して更新されます。
- EIT 処理ルーチン ( ユーザ割込み・NMI, またはエミュレータ ) を実行します。
- EIT から復帰後 , 上記命令が実行され , PS レジスタが 1) と同じ値に更新され
ます。
■ 同期モードのソフトウェアリセットについて
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス
タ ) の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I/Flag = 0) に設定する。
• NMI を使用しない。
30
第 2 章 デバイスの取扱いについて
■ デバッガ関連の注意事項
● RETI 命令のステップ実行
ステップ実行する際 , 割込みが頻繁に発生する環境下では , 該当する割込み処理ルーチ
ンだけを繰り返して実行します。その結果 , メインルーチンや割込みレベルの低いプロ
グラムの実行が行われなくなります ( 例えば, タイムベースタイマの割込みを許可して
いた場合 , RETI をステップ実行すると , 必ずタイムベースのルーチンの先頭でブレー
クします ) 。
該当割込み処理ルーチンのデバッグが不要になった段階で , 該当する割込みを禁止し
てください。
● ブレーク機能
ハードウェアブレーク (イベントブレークを含む) の対象アドレスが現在のシステムス
タックポインタのアドレスや , スタックポインタを含む領域に設定されていると , ユー
ザプログラムに実際のデータアクセス命令がないにもかかわらず , 1 命令実行後にブ
レークしてしまいます。
ブレーク回避するために , システムスタックポインタのアドレスを含む領域に対する (
ワード ) アクセスをハードウェアブレーク ( イベントブレーク含む ) の対象に設定しな
いでください。
● 内蔵 ROM ( フラッシュメモリ , マスク ROM)
エバチップ使用時の注意事項
内蔵 ROM 領域を DMAC 転送先に設定しないでください。
内蔵 ROM 領域を DMAC 転送先に設定した場合 , DMAC 転送中にブレークが発生する
と , 内蔵 ROM 領域が書き換えられるおそれがあります。ただし , 内蔵 ROM 領域を
DMAC 転送元とすることは可能です。
● オペランドブレークについて
DSU のオペランドブレークとして設定している領域にスタックポインタがあると誤動
作の原因となります。システムスタックポインタのアドレスを含む領域に対するアク
セスをデータイベントブレークの対象にしないでください。
31
第 2 章 デバイスの取扱いについて
2.2
使用上の注意
DSU4 (ICE) 専用接続端子の使用上の注意について示します。
■ DSU4 (ICE) 専用接続端子について
下記に MB91461 の DSU4 (ICE) 接続端子を示します。
表 2.2-1 MB91461 の DSU4 (ICE) 接続端子
端子番号
端子名
機能
93 ∼ 90
ICD3 ∼ ICD0
開発ツール用データ入出力端子です。
96 ∼ 94
ICS2 ∼ ICS0
開発ツール用ステータス出力端子です。
97
ICLK
開発ツール用クロック端子です。
98
BREAK
開発ツール用ブレーク端子です。
130
TRSTX
開発ツール用リセット端子です。
(3V/5V 対応入力端子 )
● ユーザターゲット側コネクタと MB91461 の接続について
下記にユーザターゲット側の推奨コネクタを示します。
メーカ : 山一電機株式会社
型格 : FAP-20-08#*
* : 一桁の数字で端子形状を示します。
・1 : ライトアングル / ラッピング
・2 : ライトアングル / はんだディップ
・4 : ストレート / はんだディップ
図 2.2-1 ユーザターゲット側コネクタの接続例
32
19ピン
1ピン
20ピン
2ピン
第 2 章 デバイスの取扱いについて
表 2.2-2 ターゲット側コネクタの端子機能一覧表
コネクタ
端子 No.
信号線名
入出力
1
EVCC2
入力
開放
2
EVCC3
入力
開放
3
DSUIO
入出力
開放
4
UVCC
出力
ユーザ Vcc 出力
6
XRSTIN
出力
ユーザ回路の INITX 信号に接続
8
PLVL
入力
開放
5
XTRST
入力
TRSTX(130 ピン ) に接続
7
XINIT
入力
INITX(131 ピン ) に接続
9
GND
−
10
BREAK
入力
11
ICD[3]
12
ICD[2]
13
ICD[1]
端子処理
VSS に接続
ブレーク (98 ピン ) に接続
ICD3 (93 ピン ) に接続
ICD2 (92 ピン ) に接続
入出力
ICD1 (91 ピン ) に接続
MB91461
14
ICD[0]
15
GND
16
ICS[2]
17
ICS[1]
18
ICS[0]
19
GND
−
20
ICLK
出力
ICD0 (90 ピン ) に接続
−
VSS に接続
ICS2 (96 ピン ) に接続
出力
ICS1 (95 ピン ) に接続
ICS0 (94 ピン ) に接続
VSS に接続
ICLK(97 ピン ) に接続
33
第 2 章 デバイスの取扱いについて
● 量産時の DSU4 (ICE) 専用端子の処理について
表 2.2-3 量産時の DSU4 (ICE) 専用端子処理
端子番号
端子名
端子処理
93 ∼ 90
ICD3 ∼ ICD0
開放
96 ∼ 94
ICS2 ∼ ICS0
開放
97
ICLK
開放
98
BREAK
開放
130
TRSTX
INITX(131 ピン : 外部リセット入力端子 ) に接続
図 2.2-2 量産時の開発ツール (DSU) 用リセット端子 (TRSTX) の接続処理
リセット入力
INITX
TRSTX
開発ツール用リセット端子 (TRSTX) は 3.3V/5V 対応入力端子になっておりますので ,
INITX 端子と直接接続が可能です。
■ シリアル書込みモード時の端子状態
MB91F467RA の非同期シリアル書込みモード時の端子状態
(FUJISTU FLASH MCU Programmer 使用時 )
• 動作モード設定 ( モード端子固定の場合 )
MD0
MD1
MD2
MD3
P15_2
P15_3
L
L
H
L
L
L
P21_2: リセット後 H 出力
制御プログラムダウンロード後 Hi-Z
シリアル書込み時における , ほかの未使用 I/O は Hi-Z 状態
通常 , シリアル書込み中におけるモード端子レベルは , 固定で使用することを推奨しま
す。MD2 端子を以下のように変更する場合は , 出力状態になる端子がありますので注
意してください。
34
第 2 章 デバイスの取扱いについて
• 動作モード設定 ( 途中でモード端子が変わる場合 )
MD0
MD1
MD2
MD3
P15_2
P15_3
"L"
"L"
"H" → "L"
"L"
"L"
"L"
P21_2: リセット後 "H" 出力
制御プログラムダウンロード後 Hi-Z
P23_0: "H" 出力
P23_1: リセット後 "L" 出力
ダウンロード後 "H" 出力
P23_2:メインクロック周波数のパルス出力
シリアル書込み時における未使用 I/O は Hi-Z 状態
35
第 2 章 デバイスの取扱いについて
36
第3章
CPU および制御部
FR ファミリの CPU コアの機能を知るために ,
アーキテクチャ , 仕様 , 命令などの基本的なことに
ついて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 命令キャッシュ (MB91461 に搭載 )
3.4 プログラミングモデル
3.5 データ構造
3.6 メモリマップ
3.7 分岐命令
3.8 EIT ( 例外・割込み・トラップ )
3.9 動作モード
3.10 リセット ( デバイス初期化 )
3.11 クロック生成制御
3.12 PLL インタフェース
3.13 デバイス状態制御
3.14 インターバルタイマ
37
第 3 章 CPU および制御部
3.1
メモリ空間
FR ファミリの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアにアク
セスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
バイトデータアクセス : 000H ∼ 0FFH
ハーフワードアクセス : 000H ∼ 1FFH
ワードデータアクセス : 000H ∼ 3FFH
■ メモリマップ
図 3.1-1 に , MB91461/F467R のメモリマップを示します。
図 3.1-1 MB91461/F467R のメモリマップ
外ROM
外バスモード
0000 0000H
0000 0400H
I/O
0000 0400H
I/O
0000 1000H
0000 1000H
0000 8000H
0000 BFFFH
0001 0000H
0002 0000H
0003 0000H
0004 0000H
0002 4000H
BI-ROM
0002 C000H
0003 0000 H
I-cache
I/O
D-bus RAM
(1wait)
D-bus RAM
(0wait)
ダイレクト
アドレッシング領域
I/Oマップを参照
I/O
0000 0400H
0000 1000H
0002 4000H
0002 C000H
0003 0000 H
ダイレクト
アドレッシング領域
I/Oマップを参照
I/O
D-bus RAM
(1wait)
D-bus RAM
(0wait)
F-bus RAM
F-bus RAM
0003 4000 H
0003 4000 H
F-bus RAM
外部領域
0010 0000H
0000 0000H
0000 0000H
ダイレクト
アドレッシング領域
I/Oマップを参照
I/O
MB91F467Rの外ROM
外バスモード
MB91F467Rの内ROM
外バスモード
MB91461
リセット・
モードベクタ
0010 4000 H
0015 0000 H
外部領域
外部領域
リセット・
モードベクタ
内蔵FLASH
リセット・
モードベクタ
0010 4000 H
外部領域
外部領域
FFFF FFFFH
FFFF FFFFH
内蔵FLASH
FFFF FFFFH
各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します ( モー
ドの設定に関しては , 「3.9.2 モード設定」を参照 ) 。
<注意事項>
MB91V460 に搭載されている RAM はすべて 0 ウェイトです。
38
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向け
た高機能命令を導入した高性能コアです。
■ 内部アーキテクチャの特長
• RISC アーキテクチャの採用
基本命令 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4G バイトのリニアなメモリ空間
• 乗算器の搭載
32 ビット× 32 ビット乗算 5 サイクル
16 ビット× 16 ビット乗算 3 サイクル
• 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
メモリ - メモリ転送命令
ビット処理命令
• 高いコード効率
基本命令語長 16 ビット
• 低消費電力
スリープモード / ストップモード / シャットダウンモード
39
第 3 章 CPU および制御部
■ 内部アーキテクチャの構造
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット←→ 16 ビットバスアダプタは 32 ビットバス (D-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。
ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ
スコントローラとのインタフェースを実現します。
図 3.2-1 に , 内部アーキテクチャの構造を示します。
図 3.2-1 内部アーキテクチャの構造
DSU
FR60CPU
コア
(デバッグサポート)
D-bus
I-bus
ビットサーチ
I-cache
RAM
32
CAN (2チャネル)
32
ダイレクト
マップキャッシュ
FLASH
32←→16
バスアダプタ
RAM
バス
コンバータ
R-bus
MB91461の場合
MB91F467Rの場合
16
DMAC
5チャネル
周辺
リソース
40
外部バス
インタ
フェース
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採
用しています。パイプラインは以下のステージから構成されています。
図 3.2-2 に , 命令パイプラインを示します。
命令フェッチ (IF)
…命令アドレスを出力し , 命令をフェッチします。
命令デコード (ID)
…フェッチした命令をデコードします。レジスタの読出しも
行います。
実行 (EX)
…演算を実行します。
メモリアクセス (MA) …メモリに対するロードまたはストアのアクセスを行いま
す。
ライトバック (WB)
…演算結果 ( またはロードされたメモリデータ ) をレジスタ
に書き込みます。
図 3.2-2 命令パイプライン
CLK
命令 1
WB
命令 2
MA
WB
命令 3
EX
MA
WB
命令 4
ID
EX
MA
WB
命令 5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令 6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード・ストア命令 , 遅延スロットがない分岐命令 , 複数サイクル
命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い場合
も命令の実行速度が低下します。
■ 命令キャッシュ
オンチップの命令キャッシュにより , 外部高速メモリとそれに関連する制御ロジック
のコストを発生することなく高性能なシステムを構築することができます。外部バス
の速度が遅い場合にも , CPU への命令供給を高速に行うことができます。
命令キャッシュの詳細については「3.3 命令キャッシュ (MB91461 に搭載 )」を参照し
てください。
41
第 3 章 CPU および制御部
■ 32 ビット←→ 16 ビットバスコンバータ
32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と ,
16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回
路へのデータアクセスを実現します。
CPU から R-bus に対して 32 ビット幅のアクセスがあった場合 , このバスコンバータが
2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部には
アクセス幅に関して制限のあるものがあります。
■ ハーバード←→プリンストン バスコンバータ
ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ
スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。
CPU は命令バスとデータバスが独立したはハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
42
第 3 章 CPU および制御部
3.2.1
命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理
演算とビット操作およびダイレクトアドレッシング命令をサポートしています。
各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効
率があります。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
■ 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令があります。また , レジスタに即値をセットする即値転送命
令やレジスタ間転送命令も備えています。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
■ ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアにはバイト , ハーフワード , ワードの 3 種類のアクセス長があります。
また , 一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令については
ディスプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付
きレジスタ間接のメモリアドレッシングも可能です。
■ 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットがあるものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては , 「3.7 分岐命令」を参照してください。
43
第 3 章 CPU および制御部
■ 論理演算とビット操作
論理演算命令は汎用レジスタ間, または汎用レジスタとメモリ (およびI/O) 間でAND, OR,
EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および I/O) の
内容を直接操作することができます。
メモリアドレッシングは一般的なレジスタ間接です。
■ ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間 , または I/O とメモリ間のア
クセスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定
することにより , 高速 , 高効率なアクセスを行うことができます。一部の命令について
は , レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシング
も可能です。
■ その他の命令概要
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
44
第 3 章 CPU および制御部
命令キャッシュ (MB91461 に搭載 )
3.3
命令キャッシュについて説明します。
■ 概要
命令キャッシュは , 一時記憶メモリです。命令コードを外部の低速メモリからアクセスする場
合 , 一度アクセスしたコードを内部に保持する役目を果たし , 2 回目以降のアクセス速度を速
めるために使用します。
命令キャッシュデータ RAM, タグ RAM は , RAM モードに設定することにより , ソフトウェア
で直接リード・ライトアクセスができるようになります。ここで説明する命令キャッシュは
MB91461 に搭載されています。MB91F467R には搭載されていません。
■ 本体構成
• FR の基本命令長
: 2 バイト
• ブロックの配置方式
: 2 ウェイセットアソシアティブ方式
• ブロック
: 1 ウェイは 128 ブロック構成
1 ブロックは 16 バイト ( = 4 サブブロック )
1 サブブロックは 4 バイト ( = 1 バスアクセス単位 )
図 3.3-1 命令キャッシュ構成
4バイト
ウェイ1
4バイト
4バイト
4バイト
4バイト
I1
I0
サブブロック1
サブブロック0
ブロック0
キャッシュタグ
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック127
キャッシュタグ
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック0
サブブロック3
サブブロック2
サブブロック1
サブブロック0
ブロック127
・・
128ブロック
・・
I2
サブブロック2
・・
I3
サブブロック3
キャッシュタグ
キャッシュタグ
・・
・・
128ブロック
・・
ウェイ2
45
第 3 章 CPU および制御部
図 3.3-2 命令キャッシュタグ
ウェイ1
bit31
9
8
空き
3
TAGV
2
空き
アドレスタグ
7
SBV3
6
SBV2
5
SBV1
4
SBV0
サブブロックバリッド
LRU
エントリロック
0
ETLK
1
0
ETLK
TAGバリッド
ウェイ2
bit31
9
8
空き
3
TAGV
2
アドレスタグ
7
SBV3
1
LRU
6
SBV2
5
SBV1
4
SBV0
サブブロックバリッド
空き
TAGバリッド
エントリロック
[bit31 ∼ bit9] アドレスタグ
対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット
がストアされています。
ブロック i のサブブロック k に格納されている命令データのメモリアドレス IA は ,
IA =アドレスタグ× 211 + i × 24 + k × 22 となります。
CPU からアクセス要求された命令アドレスの一致を検査するために使用します。タ
グ検査の結果に従い , 以下のような動作をします。
• 要求された命令データがキャッシュ内に存在するとき (ヒット) , キャッシュから
CPU へサイクル内にデータを転送します。
• 要求された命令データがキャッシュ内に存在しないとき (ミス) , 外部アクセスで
取得されたデータを CPU とキャッシュが同時に取得します。
[bit7 ∼ bit4] SBV3 ∼ SBV0 : サブブロックバリッド
サブブロックバリッドを "1" に設定したとき , 対応するサブブロックにタグで示さ
れたアドレスの現行命令データがエントリされています。サブブロックには , 通常
2 命令が格納されます ( 即値転送命令を除く ) 。
[bit3] TAGV : TAG バリッド
アドレスタグの値が有効がどうかを示します。このビットが "0" のときはサブバリッ
ドビットとは無関係に, このブロックはインバリッド状態になります (フラッシュ時) 。
46
第 3 章 CPU および制御部
[bit1] LRU ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にアクセスしたエントリがウェイ 1・ウェイ 2 のどちらであるかを示します。
LRU = 1 のときはウェイ 1 の , LRU = 0 のときはウェイ 2 のセットのエントリが最
後にアクセスしたことを示します。
[bit0] ETLK : エントリロック
タグに相当するブロック内の全エントリをキャッシュにロックします。ETLK = 1
のときにロック状態で , キャッシュミス時にエントリは更新されません。ただし ,
無効なサブブロックは更新されます。ウェイ 1, ウェイ 2 ともにエントリロックされ
ているときにキャッシュミスした場合は , キャッシュミス判定の 1 サイクルをロス
した後 , 外部メモリにアクセスします。
47
第 3 章 CPU および制御部
3.3.1
制御レジスタ
制御レジスタには , キャッシュサイズレジスタ (ISIZE) と命令キャッシュ制御レジス
タ (ICHCR) があります。これらのレジスタ機能について説明します。
■ キャッシュサイズレジスタ (ISIZE)
図 3.3-3 キャッシュサイズレジスタ (ISIZE)
ISIZE (8 ビット )
bit
7
6
5
4
3
2
−
−
−
−
R/W :リード / ライト可能
−
:未定義
−
−
−
−
−
−
−
−
000003C7H
1
0
SIZE1 SIZE0
R/W
R/W
初期値
------10B
[bit1, bit0] SIZE1, SIZE0
キャッシュ容量を設定するビットです。設定によりキャッシュサイズと IRAM 容量 ,
RAM モード時のアドレスマップが図 3.3-5 のように変化します。キャッシュ容量
を変更した場合は , 必ずフラッシュおよびエントリロックの解除を行ってから
キャッシュ ON にしてください。
表 3.3-1 キャッシュサイズレジスタ
SIZE1
SIZE0
0
0
1K バイト
0
1
2K バイト
1
0
4K バイト ( 初期値 )
1
1
設定禁止
容量
■ 命令キャッシュ制御レジスタ (ICHCR)
命令キャッシュ制御レジスタ (ICHCR) は , 命令キャッシュの動作を制御します。
ICHCR への書込みは , 以降 3 サイクル以内にフェッチされる命令のキャッシュ動作に
影響を与えません。
図 3.3-4 命令キャッシュ制御レジスタ (ICHCR)
ICHCR (8 ビット )
bit
000003E7H
7
6
5
4
3
2
1
0
初期値
RAM
GBLK
ALFL
EOLK
ELKR
FLSH
ENAB
0-000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
−
−
R/W :リード / ライト可能
−
:未定義
48
第 3 章 CPU および制御部
[bit7] RAM: RAM モード
"1" で RAM モードとして動作します。RAM モードにすることによって , ENAB が
"1" でキャッシュオンとなっている場合はキャッシュ RAM が図 3.3-5 のとおりに
マッピングされます。
[bit5] GBLK: グローバルロック
すべてのカレントエントリをキャッシュにロックします。GBLK = 1 のとき , キャッ
シュ内の有効なエントリはミス時に更新されません。ただし , 無効なサブブロック
は更新されます。その際の命令データフェッチ動作は , ロックしていないときと同
様です。
[bit4] ALFL: オートロックフェイル
すでにロックしているエントリをさらにロックしようとすると ALFL = 1 に設定さ
れます。エントリオートロック中のエントリの更新がすでにロックされているエン
トリに対して行われようとしたとき , 新たなエントリはキャッシュ中にロックされ
ません。このようなプログラムのデバッグのために参照します。"0" 書込みでクリ
アされます。
[bit3] EOLK: エントリオートロック
命令キャッシュ内の各エントリに対して , オートロッキングの有効・無効を切り換
えます。EOLK = 1 のときにアクセス ( ミス時のみ ) されたエントリは , キャッシュ
タグ内のエントリロックビットがハードウェアで"1"に設定されることにより, ロッ
クされます。ロックされたエントリは以後 , キャッシュミス時の更新の対象になり
ません。ただし , 無効なサブブロックは更新されます。確実にロックするためには
一度消去した後 , このビットを設定してください。
[bit2] ELKR: エントリロック解除
すべてのキャッシュタグ中のエントリロックビットのクリアを指定します。
ELKR=1に設定された次のサイクルで, すべてのキャッシュタグ中のエントリロッ
クビットが "0" にクリアされます。ただし , 本ビットの内容が保持されるのは 1 ク
ロックサイクルのみであり , 2 クロックサイクル以降は "0" にクリアされます。
[bit1] FLSH: フラッシュ
命令キャッシュの消去を指定します。FLSH = 1 のとき , キャッシュの内容が消去
されます。ただし , 本ビットの内容が保持されるのは 1 クロックサイクルのみであ
り , 2 クロックサイクル以降は "0" にクリアされます。
[bit0] ENAB: イネーブル
命令キャッシュの許可・禁止を切り換えます。ENAB = 0 のときは禁止状態で , CPU
からの命令アクセスは , キャッシュを介さず外部に対して直接行われます。禁止状
態では , キャッシュの内容は保存されます。
49
第 3 章 CPU および制御部
図 3.3-5 RAM のアドレスマップ
アドレス
00010000H
00010200H
00010400H
00010600H
00010800H
キャッシュ
OFF
キャッシュ
OFF
RAM OFF
RAM ON
キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON キャッシュ ON
4K バイト
4K バイト
2K バイト
2K バイト
1K バイト
1K バイト
RAM OFF
RAM ON
TAG
TAG
( ウェイ 1)
( ウェイ 1)
RAM OFF
RAM ON
RAM OFF
RAM ON
TAG
TAG( ウェイ 1)
( ウェイ 1)
[TAG ウェイ 1]
[TAG ウェイ 1]
[TAG ウェイ 1]
[TAG ウェイ 1]
[TAG ウェイ 1]
[TAG ウェイ 1]
[TAG ウェイ 1]
…
…
…
…
[TAG ウェイ 1]
…
[TAG ウェイ 1]
00014000H
00014200H
00014400H
00014600H
00014800H
TAG
TAG
TAG
TAG( ウェイ 2)
( ウェイ 2)
( ウェイ 2)
( ウェイ 2)
[TAG ウェイ 2]
[TAG ウェイ 2]
[TAG ウェイ 2]
[TAG ウェイ 2]
[TAG ウェイ 2]
[TAG ウェイ 2]
[TAG ウェイ 2]
…
…
…
[TAG ウェイ 2]
…
[TAG ウェイ 2]
00018000H
00018200H
00018400H
00018600H
00018800H
[IRAM ウェイ 1]
[$RAM ウェイ 1]
[$RAM ウェイ 1]
[IRAM ウェイ 1]*2
…
…
…
…
…
IRAM
$RAM(IRAM)
( ウェイ 2)
( ウェイ 2)
IRAM
$RAM(IRAM)
$RAM
$RAM
( ウェイ 1)
( ウェイ 1)
( ウェイ 1)
( ウェイ 1)
IRAM
IRAM
IRAM
( ウェイ 1)
( ウェイ 1)
*1
IRAM
( ウェイ 1)
$RAM( ウェイ 1)
( ウェイ 1)
[ $/I ウェイ 1 ] [IRAM ウェイ ] [ $/I ウェイ 1 ]
…
…
…
$RAM
$RAM
( ウェイ 2)
−
IRAM
$RAM( ウェイ 2)
( ウェイ 2)
IRAM
( ウェイ 2)
( ウェイ 2)
0001C000H
0001C200H
0001C400H
0001C600H
0001C800H
( ウェイ 2)
( ウェイ 2)
[IRAM ウェイ 2]
[$RAM ウェイ 2]
[$RAM ウェイ 2]
[IRAM ウェイ 2]*2
[ $/I ウェイ 2 ]
[IRAM ウェイ 2]
[ $/I ウェイ 2 ]
…
…
…
…
…
…
…
…
*1
IRAM
IRAM
00020000H
[
] はミラーとなる領域
*1 ISIZE レジスタの値に従い , キャッシュ ON 時と同様のマップになります。
*2 ミラー領域は 4K バイトごとの上位 2K バイトに発生します。
( 注意事項 ) $ の記号はキャッシュを意味します。
TAGRAM
$RAM
00010004H
<- 00x 番地のエントリ 00018000H
00018004H
<- 00x のミラー
00010008H
00018008H
008 番地の命令 (SBV2)
0001000CH
0001800CH
00C 番地の命令 (SBV3)
00010010H
<- 01x 番地のエントリ 00018010H
00018014H
<- 01x のミラー
000 番地の命令 (SBV0)
00010014H
00010018H
00018018H
008 番地の命令 (SBV2)
0001001CH
00010020H
0001801CH
00018020H
00C 番地の命令 (SBV3)
00010000H
000 番地の命令 (SBV0)
004 番地の命令 (SBV1)
004 番地の命令 (SBV1)
図 3.3-6 各キャッシュ容量時のメモリの割り当て
アドレス
000H
200H
400H
600H
…
000H
200H
400H
600H
キャッシュ
4K バイト
$RAM
( ウェイ 1)
キャッシュ
2K バイト
$RAM
IRAM
…
$RAM
( ウェイ 2)
$RAM
IRAM
( 注意事項 ) $ の記号はキャッシュを意味します。
50
キャッシュ
1K バイト
キャッシュ OFF
$RAM
IRAM
IRAM
…
$RAM
IRAM
IRAM
第 3 章 CPU および制御部
3.3.2
命令キャッシュの状態と設定
命令キャッシュの各動作モードにおける状態と , 命令キャッシュの設定方法について
説明します。
■ 動作モード時のキャッシュの状態
ディセーブル / フラッシュはビット操作命令などでそのビットだけを変化させた場合
の状態を示しています。
表 3.3-2 動作モード時のキャッシュの状態
ディセーブル (ENAB = 0)
フラッシュ
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
サブブロック
内容は不定
バリッドビット
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
LRU
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
エントリロック
ビット
内容は不定
直前の状態を保持
ディセーブル中書換え不可能
直前の状態を保持
( 要エントリロック解除 )
リセット直後
キャッシュメモリ
アドレスタグ
タ
グ
TAG
内容は不定
バリッドビット
通常モード
直前の状態を保持
直前の状態を保持
ディセーブル中フラッシュ可能
グローバル
ロック
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
オートロック
フェイル
フェイルなし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
エントリ
オートロック
アンロック
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
エントリロック
解除
解除なし
直前の状態を保持
ディセーブル中書換え可能
直前の状態を保持
イネーブル
ディセーブル
ディセーブル
直前の状態を保持
フラッシュ
フラッシュ
しない
直前の状態を保持
ディセーブル中書換え可能
メモリアクセス直後の
サイクルでフラッシュ。
以後 "0" に戻る。
RAM
制
御
レ
ジ
ス
タ
直前の状態を保持
すべてのエントリが
ディセーブル中フラッシュ可能 インバリッド
51
第 3 章 CPU および制御部
■ キャッシュのエントリ更新
キャッシュのエントリ更新は , 以下の表のように行います。
表 3.3-3 キャッシュのエントリ更新
アンロック
ヒット 更新しない。
ミス
メモリをロードし , キャッシュの
エントリの内容を更新する。
ロック
更新しない。
タグミスの場合は更新しない。
サブブロックインバリッドの場合は更新する。
■ 命令キャッシュのキャッシュ可能領域
• 命令キャッシュは , 外バス空間のみをキャッシュ可能とします。
• DMA 転送で外部メモリの内容が更新されたとしてもキャッシュの内容とのコヒー
レンシはとりません。
このような場合はキャッシュをフラッシュすることで , コヒーレンシを保ってくだ
さい。
• 各チップセレクトの領域ごとに非キャッシュ領域に設定することができます。この
場合でもキャッシュオフに比べて 1 サイクルのペナルティを受けます 「
( 9.3 チップ
セレクト領域」を参照 ) 。
52
第 3 章 CPU および制御部
3.3.3
命令キャッシュを使用するときの設定方法
命令キャッシュを使用する場合の設定方法を説明します。
■ 設定手順
命令キャッシュを使用する場合の設定は , 以下の要領で行います。
● 初期化
命令キャッシュを使い始める一番最初はキャッシュの中身をクリアしておく必要があ
ります。
レジスタの Flash ビットと ELKR ビットを "1" にして , 過去のデータを消去します。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000110,r1
// に "1" をセット FLSH ビット (bit1)
// に "1" をセット ELKR ビット (bit2)
stb
r1,@r0
// レジスタへ書込み
これで , キャッシュが初期化されます。
● キャッシュを有効 (ON) 化
命令キャッシュを有効にするには ENAB ビットを "1" にします。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000001,r1
// に "1" をセット ENAB ビット (bit0)
stb
r1,@r0
// レジスタへ書込み
これ以降の命令アクセスがキャッシュに取り込まれて行きます。
キャッシュの有効化は , キャッシュの初期化と同時に行うこともできます。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000111,r1
// に "1" をセット ENAB ビット (bit0)
// に "1" をセット FLSH ビット (bit1)
// に "1" をセット ELKR ビット (bit2)
stb
r1,@r0
// レジスタへ書込み
● キャッシュを無効 (OFF) 化
命令キャッシュを無効にするには ENAB ビットを "0" にします。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000000,r1
// に "0" をセット ENAB ビット (bit0)
stb
r1,@r0
// レジスタへ書込み
この状態 ( リセット後の状態と同じ ) では , キャッシュはないのと同じで何もしません。
キャッシュのオーバヘッドが気になる処理のときに , OFF にすると処理性能が向上すること
があります。
53
第 3 章 CPU および制御部
● キャッシュの内容をすべてロック
現在命令キャッシュに入っている命令がキャッシュから追い出されないようにロック
します。
レジスタの GBLK ビットを "1" にします。
ENAB ビットも "1" にしておかないと , キャッ
シュが OFF になってしまい , キャッシュ内のロックした命令が使われません。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00100001,r1
// に "1" をセット ENAB ビット (bit0)
// に "1" をセット GBLK ビット (bit5)
stb
r1,@r0
// レジスタへ書込み
● 特定の命令をキャッシュにロック
特定の命令群 ( サブルーチンなど ) をキャッシュにロックするには , それらの命令を実
行する前に EOLK ビットを "1" にします。
ロックした命令は高速な内部 ROM のようにアクセスされます。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00001001,r1
// に "1" をセット ENAB ビット (bit0)
// に "1" をセット EOLK ビット (bit3)
stb
r1,@r0
// レジスタへ書込み
メモリのウェイト数に依りますが , stb 命令の次以降の命令から有効になります。
ロックしたい命令群が終わった所で EOLK ビットを "0" にします。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000001,r1
// に "1" をセット ENAB ビット (bit0)
// に "0" をセット EOLK ビット (bit3)
stb
r1,@r0
// レジスタへ書込み
● キャッシュのロック解除
上記 (5) でロックした命令のロック情報を解除します。
ldi
#0x000003e7,r0
// 命令キャッシュ制御レジスタのアドレス
ldi
#0B00000000,r1
// キャッシュディスエーブル
stb
r1,@r0
// レジスタへ書込み
ldi
#0B00000100,r1
// に "1" をセット ELKR ビット (bit2)
stb
r1,@r0
// レジスタへ書込み
ロック情報だけ解除されるので , ロックされていた命令は LRU ビットの状態に応じて
順次新しい命令に置き換わります。
54
第 3 章 CPU および制御部
3.4
プログラミングモデル
FR ファミリのプログラミングモデル , 汎用レジスタおよび専用レジスタについて説
明します。
■ 基本プログラミングモデル
図 3.4-1 に , 基本プログラミングモデルを示します。
図 3.4-1 基本プログラミングモデル
32ビット
〔初期値〕
XXXX XXXXH
R0
…
R1
… … 汎用レジスタ
…
…
…
…
…
AC
…
R12
R13
R14
R15
プログラムカウンタ
PC プログラムステータス
PS -
テーブルベースレジスタ
TBR
リターンポインタ
RP システムスタックポインタ
SSP
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
MDL
ILM
FP
XXXX XXXXH
SP
0000 0000H
- SCR
CCR
55
第 3 章 CPU および制御部
3.4.1
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。
各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ
れます。
■ 汎用レジスタ
図 3.4-2 に , 汎用レジスタの構成を示します。
図 3.4-2 汎用レジスタの構成
32ビット
[初期値]
R0
XXXX XXXX H
R1
R12
R13
R14
AC
FP
XXXX XXXX H
R15
SP
0000 0000 H
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
R13: 仮想アキュムレータ (AC)
R14: フレームポインタ (FP)
R15: スタックポインタ (SP)
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
56
第 3 章 CPU および制御部
3.4.2
専用レジスタ
専用レジスタは , 特定の目的のために使用します。
FR ファミリでは , 以下の専用レジスタが用意されています。
• プログラムステータス (PS)
• コンディションコードレジスタ (CCR)
• システムコンディションコードレジスタ (SCR)
• 割込みレベルマスクレジスタ (ILM)
• プログラムカウンタ (PC)
• テーブルベースレジスタ (TBR)
• リターンポインタ (RP)
• システムスタックポインタ (SSP)
• ユーザスタックポインタ (USP)
• 乗除算レジスタ (Multiply & Divide register)
■ プログラムステータス (PS)
プログラムステータス (PS) は , プログラム状態を保持するレジスタで , ILM, SCR およ
び CCR の 3 つのパートに分かれています。
未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
図 3.4-3 に , プログラムステータス (PS) のレジスタ構成を示します。
図 3.4-3 プログラムステータス (PS) のレジスタ構成
bit 31
20
16
ILM
10 8 7
SCR
0
CCR
57
第 3 章 CPU および制御部
■ コンディションコードレジスタ (CCR)
図 3.4-4 に , コンディションコードレジスタ (CCR) のレジスタ構成を示します。
図 3.4-4 コンディションコードレジスタ (CCR) のレジスタ構成
bit
7
−
6
5
4
3
2
1
0
−
S
I
N
Z
V
C
初期値
--00XXXXB
[bit5] S : スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内 容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります
( ただし , スタックに退避される値はクリアされる前の値です ) 。
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令実行時は "0" に設定してください。
[bit4] I : 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内 容
0
ユーザ割込み禁止です。INT 命令実行時 , "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です ) 。
1
ユーザ割込み許可です。ユーザ割込み要求のマスク処理は , ILM の保
持する値により制御されます。
リセットにより "0" にクリアされます。
[bit3] N : ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内 容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
58
第 3 章 CPU および制御部
[bit2] Z : ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内 容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
[bit1] V : オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内 容
0
演算の結果 , オーバフローは発生していないことを示します。
1
演算の結果 , オーバフローが発生したことを示します。
リセットによる初期状態は不定です。
[bit0] C : キャリフラグ
演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示し
ます。
値
内 容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
59
第 3 章 CPU および制御部
■ システムコンディションコードレジスタ (SCR)
図 3.4-5 に, システムコンディションコードレジスタ(SCR)のレジスタ構成を示します。
図 3.4-5 システムコンディションコードレジスタ (SCR) のレジスタ構成
bit
10
9
8
[ 初期値 ]
D1
D0
T
XX0B
[bit10, bit9] ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中には変更しないでください。ステップ除算実行途中にほかの処
理を行う場合は , PS レジスタの値を退避・復帰することによりステップ除算の再開
が保証されます。
リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
DIV0S/DIV0U 命令とユーザ割込み , NMI 同時受付け EIT 処理ルーチン内で , EIT 分
岐前の PS レジスタの D0/D1 ビットを期待した処理を行わないでください。
DIV0S/DIV0U 命令の直前に , ブレーク , ステップなどで停止させた場合 , PS レジス
タの D0/D1 ビットの表示は正しい値とならないことがあります。ただし , 復帰後の
演算結果は正しいものになります。
[bit8] ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内 容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま
す。
リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中で使用することはできません。
60
第 3 章 CPU および制御部
■ 割込みレベルマスクレジスタ (ILM)
図 3.4-6 に , 割込みレベルマスクレジスタ (ILM) のレジスタ構成を示します。
図 3.4-6 割込みレベルマスクレジスタ (ILM) のレジスタ構成
bit
20
19
18
17
16
[ 初期値 ]
ILM4
ILM3
ILM2
ILM1
ILM0
01111B
割込みレベルマスク値を保持するレジスタで , この割込みレベルマスクレジスタ (ILM)
の保持する値がレベルマスクに使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この割込みレベルマス
クレジスタ (ILM) で示されるレベルよりも強い場合にのみ割込み要求が受け付けられ
ます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。
元の値が 16 ∼ 31 のとき :
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると ,
( 指定した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のとき :
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15 (01111B) に初期化されます。
■ プログラムカウンタ (PC)
図 3.4-7 に , プログラムカウンタ (PC) のレジスタ構成を示します。
図 3.4-7 プログラムカウンタ (PC) のレジスタ構成
bit 31
PC
0
[ 初期値 ]
XXXXXXXXH
[bit31 ∼ bit0]
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可
能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし ,
その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があります。
リセットによる初期値は不定です。
61
第 3 章 CPU および制御部
■ テーブルベースレジスタ (TBR)
図 3.4-8 に , テーブルベースレジスタ (TBR) のレジスタ構成を示します。
図 3.4-8 テーブルベースレジスタ (TBR) のレジスタ構成
bit 31
0
[ 初期値 ]
000FFC00H
TBR
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , "000FFC00H" です。
■ リターンポインタ (RP)
図 3.4-9 に , リターンポインタ (RP) のレジスタ構成を示します。
図 3.4-9 リターンポインタ (RP) のレジスタ構成
bit 31
0
RP
[ 初期値 ]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ システムスタックポインタ (SSP)
図 3.4-10 に , システムスタックポインタ (SSP) のレジスタ構成を示します。
図 3.4-10 システムスタックポインタ (SSP) のレジスタ構成
bit 31
SSP
0
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。また , EIT 発生時に , PS と PC を退避するス
タックを指定するスタックポインタとしても使用されます。
リセットによる初期値は "00000000H" です。
62
第 3 章 CPU および制御部
■ ユーザスタックポインタ (USP)
図 3.4-11 に , ユーザスタックポインタ (USP) のレジスタ構成を示します。
図 3.4-11 ユーザスタックポインタ (USP) のレジスタ構成
bit 31
0
USP
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
■ 乗除算レジスタ (Multiply & Divide register)
図 3.4-12 に , 乗除算レジスタ (Multiply & Divide register) のレジスタ構成を示します。
図 3.4-12 乗除算レジスタ (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……商
63
第 3 章 CPU および制御部
データ構造
3.5
FR ファミリのデータ構造について説明します。
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.5-1 に , ビットオーダリングのデータ配置を示します。
図 3.5-1 ビットオーダリングのデータ配置
bit
31
29
30
27
28
25
26
23
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
7
8
5
6
3
4
1
2
MSB
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.5-2 に , バイトオーダリングのデータ配置を示します。
図 3.5-2 バイトオーダリングのデータ配置
メモリ
MSB
bit 31
23
15
7
LSB
0
10101010B 11001100B 11111111B 00010001B
ビット
0
7
n番地 10101010B
(n+1)番地 11001100B
(n+2)番地 11111111B
(n+3)番地 00010001B
64
第 3 章 CPU および制御部
■ ワードアライメント
● プログラムアクセス
FR ファミリのプログラムは , 2 の倍数のアドレスに配置する必要があります。
PC の bit0 は , 命令の実行に伴う PC の更新時に "0" に設定されます。
"1" になる可能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけで
す。ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
奇数アドレス例外はありません。
● データアクセス
FR ファミリでは , データアクセスを行う際 , その幅により以下のように強制的なアラ
イメントがアドレスに対して施されます。
ワードアクセス
: アドレスは , 4 の倍数 ( 最下位 2 ビットは強制的に "00B")
ハーフワードアクセス : アドレスは , 2 の倍数 ( 最下位ビットは強制的に "0")
バイトアクセス
: ──
ワードおよびハーフワードデータアクセス時に , 一部のビットが強制的に "0" にされる
のは , 実効アドレスの計算結果に対してです。
例えば , @(R13, Ri) のアドレッシングモードの場合 , 加算前のレジスタは ( たとえ最下
位ビットが "1" であっても ) そのまま計算に使用され , 加算結果の下位ビットがマスク
されます。計算前のレジスタがマスクされるわけではありません。
【例】LD @ (R13,R2),R0
R13
00002222H
R2
00000003H
+)
加算結果
アドレス端子
00002225H
下位2ビット強制マスク
00002224H
65
第 3 章 CPU および制御部
3.6
メモリマップ
FR ファミリのメモリマップについて説明します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.6-1 に , メモリマップを示します。
図 3.6-1 メモリマップ
0000 0000H
バイトデータ
0000 0100H
ハーフワードデータ
0000 0200H
ダイレクト
アドレッシング領域
ワードデータ
0000 0400H
000F FC00H
ベクタテーブル
初期領域
000F FFFFH
FFFF FFFFH
ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用の領域です。この領域は , ダイレクトアドレッ
シングにより , 命令中で直接オペランドアドレスを指定することができます。
ダイレクトアドレス指定可能なアドレス領域の大きさは, データ長ごとに異なります。
バイトデータ (8 ビット )
……000H ∼ 0FFH
ハーフワードデータ (16 ビット )
……000H ∼ 1FFH
ワードデータ (32 ビット )
……000H ∼ 3FFH
ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は EIT ベクタテーブル初期領域です。
EIT 処理時に使用されるベクタテーブルは , TBR を書き換えることにより任意のア
ドレスに配置可能ですが , リセットによる初期化によってこのアドレスに配置され
ます。
66
第 3 章 CPU および制御部
3.7
分岐命令
FR ファミリの分岐命令について説明します。
■ 分岐命令の概要
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指
定することができます。
67
第 3 章 CPU および制御部
3.7.1
遅延スロット付き動作
分岐命令に遅延スロット付き動作を指定した場合について説明します。
■ 遅延スロット付き動作の命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D
@Ri
CALL:D
label12
CALL:D
@Ri
RET:D
BRA:D
label9
BNO:D
label9
BEQ:D
label9
BNE:D label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D label9
label9
■ 遅延スロット付き動作の動作説明
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」とよびます ) に置かれた命令を実行した後に分岐します。
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置く必要があります。
[例]
;
命令の並び
ADD
R1, R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2, R3; 遅延スロット……分岐の前に実行される
…
LABEL : ST
R3, @R4 ; 分岐先
条件分岐命令の場合 , 分岐条件が成立するかしないかにかかわらず , 遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体的な説明をします。
1) JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri
を更新しても影響を受けません。
[例]
LDI:32 #Label, R0
JMP:D
@R0
LDI:8
#0,
…
68
;Label に分岐
R0
; 分岐先アドレスには影響を与えない
第 3 章 CPU および制御部
2) RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響
を受けません。
[例]
RET:D
MOV
; これより前に設定された RP の示すアドレスへ分岐
R8,
RP
; リターン動作には影響を与えない
…
3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
ADD
#1,
R0
BC:D
Overflow
AND CCR #0
; フラグ変化
; 上記の命令の実行結果により分岐
; このフラグ更新は上記分岐命令では参照しない
…
4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令によ
り更新された内容が読み出されます。
[例]
CALL:D Label
MOV
RP,
;RP を更新して分岐
R0
; 上記 CALL:D の実行結果の RP を転送
…
■ 遅延スロット付き動作の制限事項
遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
1 サイクル命令
分岐命令ではないこと
順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」
または「d」と記載された命令です。
ステップトレーストラップ
遅延スロットがある分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
割込み・NMI
遅延スロットがある分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理
しません。
未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと
き , 未定義命令は NOP 命令として動作します。
69
第 3 章 CPU および制御部
3.7.2
遅延スロットなし動作
分岐命令に遅延スロットなし動作を指定した場合について説明します。
■ 遅延スロットなし動作の命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
JMP
@Ri
CALL
label12
CALL
@Ri
RET
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
■ 遅延スロットなし動作の動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。
直後の命令が分岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2, R3
; 実行されない
R3, @R4
; 分岐先
…
LABEL:
ST
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない
ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる
ことができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させることが可能となります。
70
第 3 章 CPU および制御部
3.8
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命
令から再実行します。
割込みとは , 実行中のコンテキストとは無関係に発生する事象です。イベント要因
はハードウェアです。
トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー
ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の
命令から再実行します。
■ EIT の特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
<注意事項>
分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.7 分岐命令」を
参照してください。
■ EIT からの復帰
EIT から復帰するためには , RETI 命令を実行します。
71
第 3 章 CPU および制御部
EIT の割込みレベル
3.8.1
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
表 3.8-1 に , 割込みレベルを示します。
表 3.8-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000B
0
( システム予約 )
…
…
…
…
…
…
00011B
3
( システム予約 )
00100B
4
00101B
5
( システム予約 )
…
…
…
…
…
…
01110B
14
( システム予約 )
01111B
15
NMI ( ユーザ用 )
10000B
16
割込み
10001B
17
割込み
…
…
…
…
…
…
11110B
30
割込み
11111B
31
─
{
注意事項
ILM の元の値が 16 ∼ 31 のとき , この
範囲の値をプログラムにより ILM に設
定することはできません。
INTE 命令
ステップトレーストラップ
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
72
第 3 章 CPU および制御部
■ I フラグ
I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 と
して設けられています。
表 3.8-2 I フラグ
値
内 容
0
割込み禁止
INT 命令実行時 "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です ) 。
1
割込み許可
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ ILM
ILM は , 割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31 (11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値を設定可能です。任意の値を設定するに
は ST ILM 命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の割込みレベル ( 表 3.8-1 を参照 )
が ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したとき
はマスクされ , 要求は受理されません。
要因の割込みレベル ≧ レベルマスク値
73
第 3 章 CPU および制御部
3.8.2
割込み制御レジスタ (ICR)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。割込み制御レジスタ (ICR) は割込み要求入力の各々に対応して用意さ
れています。割込み制御レジスタ (ICR) は I/O 空間にマッピングされており , CPU
からはバスを通してアクセスされます。
■ 割込み制御レジスタ (ICR) ビット構成
図 3.8-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。
図 3.8-1 割込み制御レジスタ (ICR) のビット構成
bit
7
6
5
4
3
2
1
0
−
−
−
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
初期値
---111111B
[bit4] ICR4
このビットは , 常に "1" です。
[bit3 ∼ bit0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。読出し / 書込み可能です。
bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ ICR マッピング
表 3.8-3 に , 割込み要因と割込み制御レジスタ , 割込みベクタを示します。
表 3.8-3 割込み要因と割込み制御レジスタ , 割込みベクタ
割込み制御レジスタ
対応する割込みベクタ
番号
割込み要因
番号
アドレス
ICR00
00000440H
IRQ00
IRQ01
IRQ02
ICR01
IRQ03
…
…
00000441H
…
…
ICR63
0000047FH
IRQ126
IRQ127
10 進
10H
16
TBR + 3BCH
11H
17
TBR + 3B8H
12H
18
TBR + 3B4H
13H
19
TBR + 3B0H
…
…
…
…
…
…
3DH
142
TBR + 1C4H
8FH
143
TBR + 1C0H
・TBR 初期値 : "000FFC00H"
・詳細は「第 11 章 割込みコントローラ」を参照してください。
74
アドレス
16 進
第 3 章 CPU および制御部
3.8.3
システムスタックポインタ (SSP)
システムスタックポインタ (SSP) が , EIT の受理および復帰動作時のデータ退避・復
帰用スタックを示すポインタとして使用されます。
■ システムスタックポインタ (SSP)
図 3.8-2 に , システムスタックポインタ (SSP) のレジスタ構成を示します。
図 3.8-2 システムスタックポインタ (SSP) のレジスタ構成
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-3 に , 割込みスタックを示します。
図 3.8-3 割込みスタック
[割込み前]
SSP
80000000H
[割込み後]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
75
第 3 章 CPU および制御部
3.8.4
テーブルベースレジスタ (TBR)
EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
■ テーブルベースレジスタ (TBR)
図 3.8-4 に , テーブルベースレジスタ (TBR) のレジスタ構成を示します。
図 3.8-4 テーブルベースレジスタ (TBR) のレジスタ構成
bit 31
0
TBR
初期値
000FFC00H
テーブルベースレジスタ (TBR) と EIT 要因ごとに決められたオフセット値を加算した
アドレスがベクタアドレスとなります。
リセットによる初期値は "000FFC00H" です。
■ EIT ベクタテーブル
テーブルベースレジスタ (TBR) の示すアドレスから 1K バイトの領域が EIT 用ベクタ
領域となっています。
1 ベクタ当たりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと
おりです。
vctadr =TBR + vctofs
=TBR + (3FCH − 4 × vct)
vctadr: ベクタアドレス
vctofs: ベクタオフセット
vct: ベクタ番号
加算結果の下位 2 ビットは常に "00B" として扱われます。
"000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。リセットベクタとモードベク
タは TBR の値を変更しても常に固定アドレス "000FFFFCH", "000FFFF8H" が使用され
ます。
マスク可能要因は各品種により定義されます。MB91461/F467R におけるベクタテーブ
ルは付表 B-1 / 付表 B-2 を参照してください。
76
第 3 章 CPU および制御部
3.8.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を選択して受理
し , EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返
します。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は ,
次の 2 つの要素によって決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ), ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
表 3.8-4 に , EIT 要因の受理の優先度とほかの要因へのマスクを示します。
表 3.8-4 EIT 要因の受理の優先度とほかの要因へのマスク
受理の優先順位
要因
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
命令ブレーク
ほかの要因はキャンセル (ILM = 4)
3
INTE 命令
ほかの要因はキャンセル (ILM = 4)
4
未定義命令例外
ほかの要因はキャンセル
(I フラグ= 0)
5
INT 命令 / コプロセッサ例外 I フラグ= 0
6
ユーザ割込み
ILM =受理した要因のレベル
7
NMI ( ユーザ用 )
ILM = 15
8
NMI ( エミュレータ用 )
ほかの要因はキャンセル (ILM = 4)
9
ステップトレーストラップ
ほかの要因はキャンセル (ILM = 4)
10
オペランドブレーク
ほかの要因はキャンセル (ILM = 4)
77
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.8-5 のようになります。
表 3.8-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット
2
未定義命令例外
3
命令ブレーク
4
INTE 命令
5
NMI ( エミュレータ用 )
6
ステップトレーストラップ
7
オペランドブレーク
8
NMI ( ユーザ用 )
9
INT 命令 / コプロセッサ例外
10
ユーザ割込み
図 3.8-5 に多重 EIT 処理を示します。
図 3.8-5 多重 EIT 処理
メインルーチン
NMIのハンドラ
INT命令
のハンドラ
優先度
(高) NMI発生
①最初に実行
(低) INT命令実行
②次に実行
78
第 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 は以下のように動作します。
( 注意事項 )
〔動作〕における ( ) はレジスタの指すアドレスを表します。
[ 動作 ]
1) SSP − 4
→ SSP
2) PS
→ (SSP)
3) SSP − 4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) 受理した要求の割込みレベル
→ ILM
79
第 3 章 CPU および制御部
→ S フラグ
6) "0"
7) (TBR +受理した割込み要求のベクタオフセット ) → PC
割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
ユーザ割込み , または NMI 要因が発生している状態で割込みを許可するために OR
CCR, ST ILM, および MOV Ri,PS の各命令が実行されると , 割込みハンドラの前後で上
記命令が 2 回実行される場合があります。ただし , CPU 内のレジスタに対して , 同じ値
を 2 度設定するだけですので , 動作的に問題ありません。
EIT 処理ルーチン内では EIT 分岐前の PS レジスタの内容を期待した処理を行わないで
ください。
■ INT 命令の動作
INT #u8 命令は , 以下のように動作します。
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP − 4
→ SSP
2) PS
→ (SSP)
3) SSP − 4
→ SSP
4) PC + 2
→ (SSP)
5) "0"
→ I フラグ
6) "0"
→ S フラグ
7) (TBR + 3FCH − 4 × u8)
→ PC
■ INTE 命令の動作
INTE 命令は , 以下のように動作します。
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
1) SSP − 4
→ SSP
2) PS
→ (SSP)
3) SSP − 4
→ SSP
4) PC + 2
→ (SSP)
5) "00100B"
6) "0"
→ ILM
7) (TBR + 3D8H)
→ PC
→ S フラグ
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。また , ステップ実行中は INTE による EIT の発生はありません。
80
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能を許可にしてお
くと , 1 命令実行ごとにトラップが発生してブレークします。
[ ステップトレーストラップ検出の条件 ]
•
T フラグ= 1
•
遅延分岐命令ではないとき
•
INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1) SSP − 4
→ SSP
2) PS
→ (SSP)
3) SSP − 4
→ SSP
4) 次の命令のアドレス
→ (SSP)
5) "00100B"
6) "0"
→ ILM
7) (TBR + 3CCH)
→ PC
→ S フラグ
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 として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
81
第 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" の状態で実行する必要があります。
82
第 3 章 CPU および制御部
3.9
動作モード
FR ファミリの動作モードについて説明します。
■ 動作モードの概要
動作モードには , バスモードとアクセスモードがあります。
■ バスモード
バスモードとは, 内部ROMの動作と外部アクセス機能の動作を制御するモードを指し,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定し
ます。
■ アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR3 (Area Configuration Register) 内の DBW0 ビット
で指定します。
83
第 3 章 CPU および制御部
3.9.1
バスモード
FR ファミリには , 次に示す 3 つのバスモードがあります。
詳細は「3.1 メモリ空間」を参照してください。
■ バスモード 0 ( シングルチップモード )
内部 I/O, F-bus RAM, F-bus ROM (FLASH) が有効で , それ以外の領域へのアクセスは無
効であるモードです。
外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機
能しません。
( 注意事項 ) MB91461 では使用できません。
■ バスモード 1 ( 内 ROM 外バスモード )
内部 I/O, F-bus RAM, F-bus ROM (FLASH) が有効で , 外部アクセスが可能な領域へのア
クセスは外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として
機能します。
( 注意事項 ) MB91461 では使用できません。
■ バスモード 2 ( 外 ROM 外バスモード )
内部 I/O, F-bus RAM が有効で , F-bus ROM (FLASH) へのアクセスを禁止にしてすべて
のアクセスが外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子と
して機能します。
84
第 3 章 CPU および制御部
モード設定
3.9.2
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作
モードの設定を行います。
■ モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。
表 3.9-1 にモードベクタフェッチに関する指定を示します。
表 3.9-1 モードベクタフェッチに関する指定
モード端子
モード名
リセットベク
タアクセス領
域
備考
MD2
MD1
MD0
0
0
0
内 ROM モードベクタ
内部
MB91461 では設定禁止です *。
0
0
1
外 ROM モードベクタ
外部
バス幅はモードレジスタで設定
*: MD3 は常に "0" に設定してください。ただし , 表に示した設定以外は禁止とします。
<注意事項>
FR ファミリでは , マルチプレックスバスによる外部モードベクタフェッチはサポートし
ていません。
■ モードレジスタ (MODR)
モードベクタフェッチによってモードレジスタに書き込むデータをモードデータとよ
びます。モードベクタフェッチについては , 「3.10.3 リセットシーケンス」を参照して
ください。
モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード
で動作します。
モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか
らは書き込むことはできません。
<参考>
従来の FR ファミリで使用していたモードレジスタのアドレス ("000007FFH") には何も存
在しません。
エミュレータモードでは , 書換え可能です。この場合 , 8 ビット長のデータ転送命令を
使用してください。
16/32 ビット長の転送命令では書き込めません。
図 3.9-1 に , モードレジスタ (MODR) を示します。
85
第 3 章 CPU および制御部
〔レジスタ詳細説明〕
図 3.9-1 モードレジスタ (MODR)
MODR
bit
7
6
5
4
3
アドレス:000FFFF8H
0
0
0
0
0
2
1
0
ROMA WTH1 WTH0
初期値
XXXXXXXXB
動作モード設定ビット
[bit7 ∼ bit3] 予約ビット
必ず "00000B" を設定してください。
"00000B" 以外の値を設定したときの動作は保証できません。
[bit2] ROMA : 内部 ROM イネーブルビット
内部 F-bus RAM, F-bus ROM (FLASH) 領域を有効にするかどうかを設定します。
ROMA
機 能
0
外 ROM
モード
1
内 ROM
モード
備 考
内蔵 F-bus RAM は有効 , 内部 ROM 領域 ("40000H" ∼
"FFFFFH") が外部領域になります。
内蔵 F-bus RAM, F-bus ROM (FLASH) が有効になります。
( 注意事項 )MB91461 では "0" に設定してください。
[bit1, bit0] WTH1, WTH0 : バス幅指定ビット
外バスモード時のバス幅指定の設定を行います。
外バスモード時 , この値が AMD0 (CS0 領域 ) の BW1, BW0 ビットに設定されます。
WTH1
WTH0
0
0
8 ビットバス幅
外バスモード
0
1
16 ビットバス幅
〃
1
0
1
1
機 能
―
シングルチップモード
備 考
設定禁止
シングルチップモード
( 注意事項 )MB91461 ではシングルチップモードは使用できません。
86
第 3 章 CPU および制御部
<注意事項>
モードベクタに設定するモードデータは , 000FFFF8H にバイトデータとして配置する必
要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用し
ていますので , 図 3.9-2 のように bit31 ∼ bit24 の最上位バイトに配置してください。
図 3.9-2 モードデータの注意事項
bit 31
誤 000FFFF8H
24 23
XXXXXXXXB
bit 31
正 000FFFF8H
000FFFFCH
XXXXXXXXB
24 23
MODR
16 15
XXXXXXXXB
16 15
XXXXXXXXB
8 7
XXXXXXXXB
0
MODR
8 7
0
XXXXXXXXB
Reset Vector
87
第 3 章 CPU および制御部
3.10
リセット ( デバイス初期化 )
MB91461/F467R を初期化するリセット動作について説明します。
■ リセット ( デバイス初期化 ) の概要
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止して状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始にいたる一連の動作をリセット
シーケンスとよびます。
88
第 3 章 CPU および制御部
3.10.1
リセットレベル
MB91461/F467R のリセット動作は , 2 種類のレベルに分かれており , それぞれ発生
要因および初期化の内容が異なります。
ここでは , 各リセットレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットを設定初期化リセット (INIT) とよび
ます。
設定初期化リセット (INIT) により初期化される主な内容は , 以下のとおりです。
〔設定初期化リセット (INIT) による初期化内容〕
デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
内部クロックに関するすべての設定 ( クロックソース選択 , PLL 制御 , 分周比設定 )
外部バスの CS0 領域に関するすべての設定
その他端子状態に関するすべての設定
動作初期化リセット (RST) で初期化されるすべての内容
詳細はそれぞれの機能の説明を参照してください。
なお , 電源投入後は必ず INITX 端子にて設定初期化リセット (INIT) をかけてください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット (INIT) 時には , 同時に動作初期化リセット (RST) も発生します。
動作初期化リセット (RST) により初期化される主な内容は , 以下のとおりです。
〔動作初期化リセット (RST) による初期化内容〕
プログラム動作
CPU および内部バス
周辺回路のレジスタ設定値
I/O ポート設定
外部バスの CS0 領域に関するすべての設定
詳細はそれぞれの機能の説明を参照してください。
89
第 3 章 CPU および制御部
3.10.2
リセット要因
MB91461/F467R における各リセット発生要因と発生するリセットレベルについて
説明します。
過去に発生したリセット要因は , RSRR ( リセット要因レジスタ ) を読み出すことで
確認できます ( 各説明にあるレジスタ , フラグの詳細な説明は , 「3.11.5 クロック
生成制御部のブロックダイヤグラム」および「3.11.6 クロック生成制御部のレジス
タ詳細説明」を参照 ) 。
■ INITX 端子入力 ( 設定初期化リセット端子 )
外部端子の INITX 端子は , 設定初期化リセット端子として機能します。
本端子へ"L"レベル入力を行っている間, 設定初期化リセット(INIT)要求が発生します。
本端子へ "H" レベルを入力することにより , 設定初期化リセット (INIT) 要求は解除さ
れます。
本端子要求による設定初期化リセット (INIT) が発生した場合 , RSRR ( リセット要因レ
ジスタ ) 中の bit15:INIT ビットが設定されます。本端子要求による設定初期化リセット
(INIT) は , すべてのリセット要因中で最強のものであり , すべての入力・動作・状態よ
りも優先されます。
なお , 電源投入直後は必ず INITX 端子にて設定初期化リセット (INIT) をかけてくださ
い。また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INITX 端子
への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してください (INITX
端子による INIT では , 発振安定待ち時間の設定は最小値に初期化されています ) 。
発生要因
: 外部 INITX 端子への "L" レベル入力
解除要因
: 外部 INITX 端子への "H" レベル入力
発生レベル : 設定初期化リセット (INIT)
対応フラグ : bit15:INIT
■ STCR:SRST ビット書込み ( ソフトウェアリセット )
STCR ( スタンバイ制御レジスタ ) 中の bit4:SRST ビットに "0" が書き込まれると , ソフ
トウェアリセット要求が発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
要求が受け付けられて動作初期化リセット (RST) が発生するとソフトウェアリセット
要求は解除されます。
ソフトウェアリセット要求による動作初期化リセット (RST) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit11:SRST ビットが設定されます。
ソフトウェアリセット要求による動作初期化リセット (RST) は , TBCR ( タイムベース
カウンタ制御レジスタ ) 中の bit7:SYNCR ビットが設定されている場合 ( 同期リセット
モード ) , すべてのバスアクセスが停止してからでないと発生しません。
このため, バスの使用状況によっては動作初期化リセット (RST)が発生するまでに長時
間を要する場合があります。
90
第 3 章 CPU および制御部
発生要因
: STCR (スタンバイ制御レジスタ ) 中のbit4:SRSTビットへの "0"書込み
解除要因
: 動作初期化リセット (RST) の発生
発生レベル : 動作初期化リセット (RST)
対応フラグ : bit11:SRST
■ ウォッチドッグリセット
RSRR ( ウォッチドッグタイマ制御レジスタ ) に対して書込みを行うと , ウォッチドッ
グタイマが起動します。その後 , RSRR 中の bit9, bit8:WT1, WT0 ビットにて設定した周
期内に WPR ( ウォッチドッグリセット発生延期レジスタ ) への "A5H"/"5AH" 書込みが
行われないとウォッチドッグリセット要求が発生します。
ウォッチドッグリセット要求は , 設定初期化リセット (INIT) 要求です。要求が受け付
けられて設定初期化リセット (INIT) が発生するか , 動作初期化リセット (RST) が発生
するとウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合 , RSRR
( リセット要因レジスタ ) 中の bit13:WDOG ビットが設定されます。
なお , ウォッチドッグリセット要求による設定初期化リセット (INIT) が発生した場合
では , 発振安定待ち時間の設定は初期化されません。
発生要因
: ウォッチドッグタイマの設定周期経過
解除要因
: 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
発生レベル : 設定初期化リセット (INIT)
対応フラグ : bit13:WDOG
■ ハードウェアウォッチドッグリセット
INITX 解除後 , ハードウェアウォッチドッグタイマは直ちに動作を開始します。一定期
間タイマがクリアされず , カウンタがオーバフローすると設定初期化リセットが発行
されます。
発生要因
: ハードウェアウォッチドッグタイマの設定周期経過
解除要因
: 設定初期化リセット (INIT) または動作初期化リセット (RST) の発生
発生レベル : 設定初期化リセット (INIT)
対応フラグ : bit10:HWDCS
91
第 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 ( プログラムカウンタ ) の示す番地よりプログラム動作開始
<注意事項>
STOP およびシャットダウン中以外で発生したリセットについては , これにより RAM の
内容が破壊される場合があります。
92
第 3 章 CPU および制御部
3.10.4
発振安定待ち時間
デバイスの原発振が停止していたか , その可能性がある状態から復帰したとき , 自動
的に発振安定待ち状態に遷移します。
本機能により発振開始後の安定していない発振器出力を使用しないようにします。
発振安定待ち時間中は , 内部および外部へのクロック供給は停止し , 内蔵タイムベー
スカウンタのみが動作して , STCR ( スタンバイ制御レジスタ ) にて設定された安定
待ち時間の経過を待ちます。
発振安定待ち動作の詳細について説明します。
■ 発振安定待ち発生要因
発振安定待ち発生要因を以下に示します。
● 設定初期化リセット (INIT) の解除時
各種要因による設定初期化リセット (INIT) が解除された直後に発振安定待ち状態へ遷
移します。
発振安定待ち時間経過後は , 動作初期化リセット (RST) 状態へ遷移します。
● ストップモードからの復帰時
ストップモードが解除された直後に発振安定待ち状態へ遷移します。ただし , 設定初期
化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状態に遷
移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷移します。
発振安定待ち時間の経過後は , ストップモードが解除された要因に対応した状態へと
遷移します。
有効な外部割込み要求入力 (NMI を含む ) による復帰時 : 通常動作状態へ遷移します。
設定初期化リセット (INIT) 要求による復帰時 : 動作初期化リセット (RST) 状態へ遷移
します。
● PLL 選択時の異常状態の発生からの復帰時
PLL をソースクロックとして動作しているときに PLL 制御に何らかの異常 * が発生し
た場合 , PLL ロックタイムの確保のために自動的に発振安定待ち時間に遷移します。
発振安定待ち時間の経過後は , 通常動作状態へ遷移します。
* : PLL 使用中の逓倍率変更や PLL 動作許可ビット化けの発生など。
● ハードウェアウォッチドッグリセット発生時
ハードウェアウォッチドッグリセットが発生した場合 , 原発振クロックの 1024 サイク
ルの間 , 内部リセットが発行されます。このリセットにより , STCR レジスタの OS1,
OS0 ビットが "0" ( 初期値 ) になるため , 発振安定待ちは行いません。
93
第 3 章 CPU および制御部
● シャットダウンモードからの復帰時
シャットダウンモードが解除された直後に発振安定待ち状態へ遷移します。ただし , 設
定初期化リセット (INIT) 要求により解除された場合は , 設定初期化リセット (INIT) 状
態に遷移し , 設定初期化リセット (INIT) が解除された後 , 発振安定待ち状態へ遷移しま
す。
発振安定待ち時間は , 外部発振器または内蔵発振回路からの信号を 218 分周した時間が
適用されます。
■ 発振安定待ち時間の選択
発振安定待ち時間は , 内蔵タイムベースカウンタを用いて計測されます。
発振安定待ち発生要因が発生し , 発振安定待ち状態へ遷移すると , 内蔵タイムベースカ
ウンタはいったん初期化された後 , 発振安定待ち時間の計測を開始します。
STCR ( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 ビットにより , 発振安定待ち時
間を 4 種類のうちから選択して設定することができます。
いったん選択した設定は , 外部 INITX 端子による設定初期化リセット (INIT), シャット
ダウンモードからの復帰 , ハードウェアウォッチドッグリセットで初期化されます。そ
れ以外のウォッチドッグリセットによる設定初期化リセット (INIT) や動作初期化リ
セット (RST) では , リセット発生以前に設定した発振安定待ち時間が保持されます。
94
第 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) は直ち
に有効となります ) 。
バスアクセスが停止しない要因には以下のものがあげられます。
95
第 3 章 CPU および制御部
<参考>
• DMA コントローラについては , 各要求の受付けにより転送停止を行いますので , 各状
態への遷移を遅延させることはありません。
• TBCR ( タイムベースカウンタ制御レジスタ ) 中の bit9:SYNCR ビットが "1" のとき , 同
期リセットモードとなります。
• 同期モードのソフトウェアリセットの使用に関してはTBCR (タイムベースカウンタ制
御レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。
設定初期化リセット (INIT) の発生後の初期値は , 通常リセットモードに戻ります。
96
第 3 章 CPU および制御部
3.11
クロック生成制御
クロック生成制御について説明します。
■ 内部動作クロックの生成
MB91461/F467R の内部動作クロックは , 以下のようにして生成されます。
ソースクロック :
X0/X1 端子または内蔵発振回路からの信号を 2 分周したクロックです。
ベースクロックの生成 :
ソースクロックの 2 分周クロックまたは PLL 発振クロックのいずれかを選択し
て基本クロックを生成します。
各内部クロックの生成 :
ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。
以降 , 各クロック生成とその制御について説明します。
各説明にあるレジスタ , フラグの詳細な説明は ,「3.11.5 クロック生成制御部のブロッ
クダイヤグラム」および「3.11.6 クロック生成制御部のレジスタ詳細説明」を参照し
てください。
■ クロックの選択
ソースクロックの選択について説明します。
外部発振端子である X0/X1 端子入力に発振子を接続し , 内蔵発振回路にて発振し , これ
を 2 分周した信号がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , MB91461/F467R 自身となります。
内部ベースクロックは , 以下のクロックのうちから選択して生成します。
• ソースクロックを 2 分周したもの
• 内蔵発振回路または X0/X1 端子から直接入力されたクロックを PLL で逓倍したもの
クロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行いま
す。
97
第 3 章 CPU および制御部
3.11.1
PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することが可能です。
各制御は , CLKR ( クロックソース制御レジスタ ) , PLLDIVM, PLLDIVN( 逓倍率設定
レジスタ ) の設定によって行います。以下に , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の bit10:
PLL1EN ビットの設定によって行います。
PLL1EN は , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL の発振動作は停止
しています。停止中は , クロックソースとして PLL 出力を選択することはできません。
プログラム動作を開始したら , まず , クロックソースとして使用する PLL の逓倍率を
設定しかつ動作許可した後 , PLL のロック待ち時間の経過後にクロックを切り換えて
ください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用するこ
とをお奨めします。
ベースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際
などで PLL を停止させたい場合は , いったんベースクロックをソースクロックの 2 分
周したものに選択し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットに
より , ストップモード中の発振が停止するように設定してある場合 , PLL はストップ
モード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要はありませ
ん。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始します。
ストップモード中の発振が停止しないように設定してある場合は , PLL は自動では停
止しません。この場合は , 必要であればストップモード移行前にあらかじめ動作停止を
設定してください。
■ PLL 逓倍率
PLL の逓倍率は , PLLDIVM/PLLDIVN レジスタによって設定します。
どちらのレジスタも設定初期化リセット(INIT)後は全ビット"0"に初期化されています。
〔PLL 逓倍率設定〕
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許
可する前に設定してください。逓倍率変更後は , ロック待ち時間の経過後にクロッ
クを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイマ割
込みを使用することをお奨めします。
動作中に PLL 逓倍率設定を変更する場合 , いったんクロックを該当 PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間の経過
後にクロックを切り換えてください。
98
第 3 章 CPU および制御部
3.11.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります (「3.10.4 発振安定待ち時間」を参照 ) 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
各種ケースにおける待ち時間について説明します。
■ 電源投入後の待ち時間
電源投入後は , INITX 端子入力 ( 設定初期化リセット端子 ) へ "L" レベルを入力する必
要があります。この状態においては , PLL は動作許可されていないため , ロック待ち時
間はここでは考慮する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
この状態において , PLL は動作許可されていないため , ロック待ち時間はここでは考慮
する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。
クロックソースとして PLL を選択していなければ , ロック待ち時間中もプログラム動
作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用してください。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
クロックソースとして PLL を選択していなければ , ロック待ち時間中もプログラム動
作は実行可能です。
この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。
99
第 3 章 CPU および制御部
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , クロックソースのクロック用発振回路を停止させる設定であっ
た場合は , その発振回路の発振安定待ち時間と PLL のロック待ち時間のうち長い方の
時間が必要となります。ストップモードに遷移させる前に , あらかじめその発振安定待
ち時間を設定しておいてください。
ストップモード中に , クロックソースのクロック用発振回路を停止させない設定で
あった場合は , PLL は自動で動作を停止しません。したがって , PLL を停止させない限
り発振安定待ち時間は必要となりません。ストップモードに遷移させる前に , あらかじ
め発振安定待ち時間を最小値に設定してください。
100
第 3 章 CPU および制御部
3.11.3
クロック分配
選択されたクロックから生成されたベースクロックを元に , 各機能用の動作クロッ
クをそれぞれ作成します。
内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• CPU
• 内蔵 RAM
• ビットサーチモジュール
• I-bus, D-bus, X-bus, F-bus
• DMA コントローラ
• DSU
動作可能な上限周波数は 80MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• フリーランタイマ
• リロードタイマ
• アップダウンカウンタ
• インプットキャプチャ
• アウトプットコンペア
• I2C インタフェース
• PPG
101
第 3 章 CPU および制御部
動作可能な上限周波数は 20MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• 外部拡張バスインタフェース
• 外部クロック出力
動作可能な上限周波数は 40MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
102
第 3 章 CPU および制御部
クロック分周
3.11.4
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定するこ
とができます。この機能により , 各回路に最適な動作周波数を設定することができ
ます。
■ 分周比の設定
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) にて設定します。
各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設
定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が
奇数であっても , 常にデューティ比は 50% となります。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
■ 分周比設定の初期化
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態では , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , クロッ
クソースを高速なものに変更する前に必ず分周比の設定を行ってください。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。クロックソースの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , クロックソース選択の変更設定との順序を間違えないように注意
してください。
103
第 3 章 CPU および制御部
クロック生成制御部のブロックダイヤグラム
3.11.5
図 3.11-1 に , クロック生成制御部のブロックダイヤグラムを示します。
図中のレジスタの詳細な説明は , 「3.11.6 クロック生成制御部のレジスタ詳細説明」
を参照してください。
■ クロック生成制御部のブロックダイヤグラム
図 3.11-1 クロック生成制御部のブロックダイヤグラム
外部バスクロック分周
CPUクロック
周辺クロック
外部バスクロック
CLKRレジスタ
発振回路
セレクタ
X0
X1
セレクタ
周辺クロック分周
停止制御
CPUクロック分周
セレクタ
DIVR0,DIVR1レジスタ
セレクタ
R-bus
[クロック生成部]
1/2
ソースクロック
セレクタ
1/2
PLL
ベースクロック
ハードウェア
ウォッチドッグ
X0A
X1A
発振回路
CR発振回路
[ストップ・スリープ制御部]
内部割込み
ストップ状態
STGRレジスタ
内部リセット
状態遷移
制御回路
スリープ状態
リセット発生
F/F
リセット発生
F/F
内部リセット(RST)
内部リセット(INIT)
[リセット要因回路]
INITX端子
RSRRレジスタ
MB91461の場合
MB91F467Rの場合
[ ウォッチドッグ制御部]
WPRレジスタ
ウォッチドッグF/F
タイムベースカウンタ
カウンタクロック
CTBRレジスタ
セレクタ
TBCRレジスタ
割込み許可
104
オーバフロー検出F/F
タイムベースタイマ
割込み要求
第 3 章 CPU および制御部
クロック生成制御部のレジスタ詳細説明
3.11.6
クロック生成制御部のレジスタについて説明します。
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
図 3.11-2 に , リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジ
スタ構成を示します。
図 3.11-2 リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成
RSRR
bit
アドレス : 000480H
リード / ライト
初期値 (INITX 端子 )
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
INIT
(R)
1
*
X
予約
(R)
X
X
X
WDOG
(R)
0
*
X
予約
(R)
X
X
X
SRST
(R)
0
X
*
予約
(R)
X
X
X
WT1
(R/W)
0
0
0
WT0
(R/W)
0
0
0
*: 要因により初期化されます。
X: 初期化されません。
直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定
および起動制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の
フラグが設定されることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
ト (RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[bit15] INIT : 外部リセット発生フラグ
INITX 端子入力によるリセット (INIT) の発生の有無を示します。
値
内 容
0
INITX 端子入力による INIT は発生していません。
1
INITX 端子入力による INIT が発生しました。
読出し直後に "0" にクリアされます。
読出し可能で , 書込みはビット値に影響を与えません。
電源投入時には , 8ms 以上 INITX 端子へ "L" レベルを印加してください。それ以下
の場合ではフラグが設定されない場合があります。
[bit14] 予約 : 予約ビット
予約ビットです。
105
第 3 章 CPU および制御部
[bit13] WDOG : ウォッチドッグリセット発生フラグ
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
値
内 容
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
電源投入時の INITX 端子入力によるリセット (INIT), または読出し直後に "0" にク
リアされます。
読出し可能で , 書込みはビット値に影響を与えません。
[bit12] 予約 : 予約ビット
予約ビットです。
[bit11] SRST : ソフトウェアリセット発生フラグ
STCRレジスタのSRSTビット書込み (ソフトウェアリセット) によるリセット(RST)
の発生の有無を示します。
値
内 容
0
ソフトウェアリセットによる RST は発生していません。
1
ソフトウェアリセットによる RST が発生しました。
電源投入時の INITX 端子入力によるリセット (INIT), または読出し直後に "0" にク
リアされます。
読出し可能で , 書込みはビット値に影響を与えません。
[bit10] 予約 : 予約ビット
予約ビットです。
106
第 3 章 CPU および制御部
[bit9, bit8] WT1, WT0 : ウォッチドッグタイマインターバル時間選択ビット
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の
うちから選択します。
ウォッチドッグリセットの
発生を抑止するために最低限
必要な WPR への書込み間隔
WPR への最終 5AH 書込みか
らウォッチドッグリセットが
発生するまでの時間
WT1
WT0
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
(φ はベースクロックの周期 )
リセット (RST) により "00B" に初期化されます。
読出し可能です。書込みはリセット (RST) 後 1 回のみ有効で , それ以降の書込みは
無効です。
107
第 3 章 CPU および制御部
■ STCR : スタンバイ制御レジスタ
図 3.11-3 に , スタンバイ制御レジスタのレジスタ構成を示します。
図 3.11-3 スタンバイ制御レジスタのレジスタ構成
STCR
bit
アドレス : 000481H
7
6
5
4
3
2
1
0
HIZ
SRST
OS1
OS0
予約
OSCD1
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
STOP SLEEP
リード / ライト (R/W)
初期値 (INITX 端子 )
0
0
1
1
0
0
1
1
初期値 (INIT)
0
0
1
1
X
X
1
1
初期値 (RST)
0
0
X
1
X
X
X
X
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8: SYNCS ビットにて設定します ) を使用した上で , 以下のシーケンス
を必ず使用してください。
(LDI#value_of_standby,R0)
;value_of_standby は , STCR へのライトデータ
(LDI#_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB
;スタンバイ制御レジスタ (STCR) への書込み
R0,@R12
LDUB @R12,R0
;同期スタンバイのための STCR リード
LDUB @R12,R0
;もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
[bit7] STOP : STOP モードビット
ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を
書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
値
内 容
0
ストップモードへの遷移は行いません。[ 初期値 ]
1
ストップモードへ遷移します。
リセット (RST) およびストップ復帰要因により "0" に初期化されます。
読出しおよび書込みが可能です。
108
第 3 章 CPU および制御部
[bit6] SLEEP : SLEEP モードビット
スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書
き込んだ場合は, bit7:STOPビットの方が優先となり, ストップモードへ遷移します。
値
内 容
0
スリープモードへの遷移は行いません。[ 初期値 ]
1
スリープモードへ遷移します。
リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
読出しおよび書込みが可能です。
[bit5] HIZ : Hi-Z モードビット
ストップモード時の端子状態を制御します。
値
内 容
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。
[ 初期値 ]
リセット (INIT) により "1" に初期化されます。
読出しおよび書込みが可能です。
[bit4] SRST : ソフトウェアリセットビット
ソフトウェアリセット (RST) の発行を指示します。
値
内 容
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません。[ 初期値 ]
リセット (RST) により "1" に初期化されます。
読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
<注意事項>
同期モードのソフトウェアリセットの使用に関しては TBCR ( タイムベースカウンタ制御
レジスタ ) の bit9:SYNCR ビットの注意事項を参照してください。
109
第 3 章 CPU および制御部
[bit3, bit2] OS1, OS0 : 発振安定待ち時間選択ビット
リセット (INIT) 後 , およびストップモード復帰後などにおける , 発振安定待ち時間
を設定します。
本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選
択します。
MB91461
OS1
OS0
発振安定
待ち時間
0
0
0
MB91F467R
原発振 18MHz
の場合
原発振 4MHz
の場合
原発振
32.768kHz
の場合
φ × 21 [ 初期値 ]
0.44 µs
1µs
61µs
1
φ × 211
0.46 ms
1ms
62.5µs
1
0
φ × 216
14.6 ms
32ms
2s
1
1
φ × 222
0.93 s
2s
128s
φ はベースクロックの周期
INITX 端子入力によるリセット (INIT) により "00B" に初期化されます。
読出しおよび書込みが可能です。
[bit1] 予約 : 予約ビット
予約ビットです。
[bit0] OSCD1 : 発振停止ビット
ストップモード時での発振回路の発振停止を制御します。
値
内 容
0
ストップモード中も発振は停止しません。
1
ストップモード中は発振を停止します。[ 初期値 ]
リセット (INIT) により "1" に初期化されます。
読出しおよび書込みが可能です。
110
第 3 章 CPU および制御部
■ TBCR : タイムベースカウンタ制御レジスタ
図 3.11-4 に , タイムベースカウンタ制御レジスタのレジスタ構成を示します。
図 3.11-4 タイムベースカウンタ制御レジスタのレジスタ構成
TBCR
bit
アドレス : 000482H
リード / ライト
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
TBIF
R/W
TBIE
R/W
TBC2
R/W
TBC1
R/W
TBC0
R/W
10
9
8
予約
R/W
0
0
X
X
X
X
0
0
0
0
X
X
X
X
X
X
SYNCR SYNCS
R/W
R/W
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行います。
[bit15] TBIF : タイムベースタイマ割込みフラグ
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0
ビットにて設定 ) を経過したことを示します。
bit14:TBIE ビットにより割込み発生が許可 (TBIE = 1) されているときに , 本ビット
が "1" になるとタイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過
( タイムベースカウンタ出力の立下りエッジ検出 )
リセット (RST) により "0" に初期化されます。
読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込んで
もビット値は変化しません。
リードモディファイライト (RMW) 系命令での読出し値は , 常に "1" となります。
[bit14] TBIE : タイムベースタイマ割込み許可ビット
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間の経過による割込み要求出力を制御し
ます。本ビットが "1" のときに , bit15:TBIF ビットが "1" になるとタイムベースタイ
マ割込み要求が発生します。
値
内 容
0
タイムベースタイマ割込み要求出力禁止 [ 初期値 ]
1
タイムベースタイマ割込み要求出力許可
リセット (RST) により "0" に初期化されます。
読出しおよび書込みが可能です。
111
第 3 章 CPU および制御部
[bit13 ∼ bit11] TBC2, TBC1, TBC0 : タイムベースタイマカウンタ選択ビット
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定
します。
本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選
択します。
TBC2
TBC1
TBC0
タイマインターバル時間
原発振 18MHz かつ
PLL が 4 逓倍の場合
0
0
0
φ × 211
28.4 µs
0
0
1
φ × 212
56.9 µs
0
1
0
φ × 213
114 µs
0
1
1
φ × 222
58.3 ms
1
0
0
φ × 223
117 ms
1
0
1
φ × 224
233 ms
1
1
0
φ × 225
466 ms
1
1
1
φ × 226
932 ms
φ はベースクロックの周期
初期値は不定です。割込みを許可する前に必ず値を設定してください。
読出しおよび書込みが可能です。
[bit10] 予約 : 予約ビット
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
[bit9] SYNCR : 同期リセットイネーブルビット
同期リセット動作許可ビットです。
動作初期化リセット (RST) 要求が発生した際に , 直ちにリセット (RST) を行う通常
リセット動作を行うか , すべてのバスアクセスが停止してから動作初期化リセット
(RST) を行う同期リセット動作を行うかを選択します。
値
内 容
0
通常リセット動作 [ 初期値 ]
1
同期リセット動作
リセット (INIT) により "0" に初期化されます。
読出しおよび書込みが可能です。MB91461/F467R では同期リセットのみをサポート
しているため, このレジスタに書き込む場合はこのビットに"1"を設定してください。
112
第 3 章 CPU および制御部
<注意事項>
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジスタ )
の SRST ビットに "0" を設定する前に , 以下の 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I/Flag = 0) に設定する。
• NMI を使用しない。
[bit8] SYNCS : 同期スタンバイ許可ビット
同期スタンバイ動作許可ビットです。
スタンバイ要求 ( スリープモード要求またはストップモード要求 ) を発生する際 ,
STCR レジスタの制御ビットへの書込みのみでスタンバイ遷移を行う通常スタンバ
イ動作を行うか , STCR レジスタの制御ビットへの書込み後に STCR レジスタを読
み出すことによってスタンバイ遷移を行う同期スタンバイ動作を行うかを選択し
ます。
値
内 容
0
通常スタンバイ動作 [ 初期値 ]
1
同期スタンバイ動作
リセット (INIT) により "0" に初期化されます。
<注意事項>
スタンバイモードに遷移する際には , 必ず "1" を設定し , 同期スタンバイ動作としてくだ
さい。
113
第 3 章 CPU および制御部
■ CTBR : タイムベースカウンタクリアレジスタ
図 3.11-5 に , タイムベースカウンタクリアレジスタのレジスタ構成を示します。
図 3.11-5 タイムベースカウンタクリアレジスタのレジスタ構成
CTBR
bit
アドレス : 000483H
リード / ライト
初期値
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。"A5H" 書込みと "5AH" 書込みの間の時間
制限はありませんが, "A5H"書込みの後に"5AH"以外のデータを書き込むと, 再度"A5H"
を書き込まないと "5AH" を書き込んでもクリア動作を行いません。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。
114
第 3 章 CPU および制御部
■ CLKR : クロックソース制御レジスタ
図 3.11-6 に , クロックソース制御レジスタのレジスタ構成を示します。
図 3.11-6 クロックソース制御レジスタのレジスタ構成
CLKR
bit
アドレス : 000484H
15
予約
(R/W)
リード / ライト
0
初期値 (INIT)
X
初期値 (RST)
14
13
予約
(R/W)
0
X
予約
(R/W)
0
X
12
11
10
9
8
予約 SCKEN PLL1EN CLKS1 CLKS0
(R/W) (R/W) (R/W) (R/W) (R/W)
0
0
0
0
0
X
X
X
X
X
システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ
です。本レジスタにてクロックソースを 2 種類のうちから選択します。
[bit15 ∼ bit12] 予約 : 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit11] SCKEN : サブクロック選択許可ビット
サブクロックの選択を許可するビットです。サブクロックがクロックソースとして
選択されている (CLKS1, CLKS0 = 11B) 間にサブクロック選択許可ビット (SCKEN)
を変更することは , 禁止されています ( 結果は保証されません ) 。メインクロック
が選択されている場合以外は , 設定を変更しないでください。( クロックソースの変
更方法については , クロックソース選択ビット (CLKS1, CLKS0) の説明を参照して
ください。) このビットは MB91461 には搭載されていません。MB91461 の場合は
予約ビットとなります。
値
内 容
0
サブクロック選択禁止 [ 初期値 ]
1
サブクロック選択許可
[bit10] PLL1EN : PLL 許可ビット
PLL の動作許可ビットです。本ビットは , クロックソースとして PLL を選択してい
る間は書換えをしないでください。また , 本ビットが "0" の間はクロックソースと
して PLL を選択しないでください (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。
STCR の bit0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって
も PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
値
内 容
0
PLL 停止 [ 初期値 ]
1
PLL 動作許可
リセット (INIT) により "0" に初期化されます。読出しおよび書込みが可能です。
115
第 3 章 CPU および制御部
[bit9, bit8] CLKS1, CLKS0 : クロックソース選択ビット
使用するクロックソースを設定します。
本ビットに書き込む値により , クロックソースを下表に示す 2 種類のうちから選択
します。
なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更することができません。
変更可能な組合せ
変更不可能な組合せ
00B → 01B または 10B
00B → 11B
01B → 11B または 00B
01B → 10B
10B → 00B
10B → 01B または 11B
11B → 01B
11B → 00B または 10B
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 4 分周 [ 初期値 ](MB91461 の場合 )
X0/X1 からの原発振入力の 2 分周 [ 初期値 ](MB91F467R の場合 )
0
1
X0/X1 からの原発振入力の 4 分周 (MB91461 の場合 )
X0/X1 からの原発振入力の 2 分周 (MB91F467R の場合 )
1
0
PLL( メインクロック )
1
1
サブクロック (MB91461 では設定禁止 )
クロックソース設定
リセット (INIT) により "00B" に初期化されます。
読出しおよび書込みが可能です。
116
第 3 章 CPU および制御部
■ WPR : ウォッチドッグリセット発生延期レジスタ
図 3.11-7 に , ウォッチドッグリセット発生延期レジスタのレジスタ構成を示します。
図 3.11-7 ウォッチドッグリセット発生延期レジスタのレジスタ構成
WPR
bit
アドレス : 000485H
リード / ライト
初期値
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
(W)
X
ウォッチドッグリセットの発生を延期するためのレジスタです。
本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にウォッチドッ
グタイマの検出用 F/F をクリアし , ウォッチドッグリセットの発生を延期します。
"A5H"書込みと"5AH"書込みの間の時間制限はありませんが, "A5H"書込みの後に"5AH"
以外のデータを書き込んだ場合 , 再度 "A5H" を書き込まないと "5AH" を書き込んでも
クリア動作を行いません。
以下に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の関係
を示します。
この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。
ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は ,
RSRR レジスタの WT1 (bit9) , WT0 (bit8) の状態によって変化します。
RSRR のウォッチドッグリセッ
トの発生を抑止するために最低
限必要な WPR への書込み間隔
WPR への最終 "5AH" 書込みから
WT1
WT0
0
0
φ × 216 [ 初期値 ]
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
ウォッチドッグリセットが
発生するまでの時間
φはベースクロックの周期, WT1, WT0はRSRRのbit9, bit8でウォッチドッグタイマ周
期設定。
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッ
チドッグリセットは延期されませんので , 長期間外部バスをホールドする場合はス
リープモードにしてからホールド要求 (BRQ) を入力してください。
本レジスタの読出し値は不定です。
117
第 3 章 CPU および制御部
■ DIVR0 : 基本クロック分周設定レジスタ 0
図 3.11-8 に , 基本クロック分周設定レジスタ 0 のレジスタ構成を示します。
図 3.11-8 基本クロック分周設定レジスタ 0 のレジスタ構成
DIVR0
bit
15
アドレス : 000486H
B3
リード / ライト (R/W)
0
初期値 (INIT)
X
初期値 (RST)
14
13
12
11
10
9
8
B2
(R/W)
0
X
B1
(R/W)
0
X
B0
(R/W)
0
X
P3
(R/W)
0
X
P2
(R/W)
0
X
P1
(R/W)
1
X
P0
(R/W)
1
X
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB), 周辺回路 , およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。クロックソースの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特にクロックソース選択の変更設定との順序を間違えないように注意し
てください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
118
第 3 章 CPU および制御部
[bit15 ∼ bit12] B3, B2, B1, B0 : CLKB 分周選択ビット
CPU クロック (CLKB) のクロック分周比設定ビットです。CPU と内部メモリおよび
内部バスのクロック (CLKB) のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに
対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 80 MHz ですので , これを超える周波数になる分周比は設
定しないでください。
クロック周波数 : 原発振 18 MHz
および PLL4 逓倍の場合
B3
B2
B1
B0
0
0
0
0
φ
72.0 MHz [ 初期値 ]
0
0
0
1
φ × 2 (2 分周 )
36.0 MHz
0
0
1
0
φ × 3 (3 分周 )
24.0 MHz
0
0
1
1
φ × 4 (4 分周 )
18.0 MHz
0
1
0
0
φ × 5 (5 分周 )
14.4 MHz
0
1
0
1
φ × 6 (6 分周 )
12.0 MHz
0
1
1
0
φ × 7 (7 分周 )
10.3 MHz
0
1
1
1
φ × 8 (8 分周 )
9.0 MHz
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
クロック分周比
…
4.5 MHz
φ はベースクロックの周期
リセット (INIT) により "0000B" に初期化されます。
読出しおよび書込みが可能です。
119
第 3 章 CPU および制御部
[bit11 ∼ bit8] P3, P2, P1, P0 : CLKP 分周選択ビット
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま
す。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー
スクロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択
します。
動作可能な上限周波数は 20MHzですので , これを超える周波数になる分周比は設定
しないでください。
クロック周波数 : 原発振 18 MHz
および PLL4 逓倍の場合
P3
P2
P1
P0
0
0
0
0
φ
72.0 MHz
0
0
0
1
φ × 2 (2 分周 )
36.0 MHz
0
0
1
0
φ × 3 (3 分周 )
24.0 MHz
0
0
1
1
φ × 4 (4 分周 )
18.0 MHz [ 初期値 ]
0
1
0
0
φ × 5 (5 分周 )
14.4 MHz
0
1
0
1
φ × 6 (6 分周 )
12.0 MHz
0
1
1
0
φ × 7 (7 分周 )
10.3 MHz
0
1
1
1
φ × 8 (8 分周 )
9.0 MHz
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
クロック分周比
φ はベースクロックの周期
リセット (INIT) により "0011B" に初期化されます。
読出しおよび書込みが可能です。
120
…
4.5 MHz
第 3 章 CPU および制御部
■ DIVR1 : 基本クロック分周設定レジスタ 1
図 3.11-9 に , 基本クロック分周設定レジスタ 1 のレジスタ構成を示します。
図 3.11-9 基本クロック分周設定レジスタ 1 のレジスタ構成
DIVR1
bit
7
アドレス : 000487H
T3
リード / ライト (R/W)
0
初期値 (INIT)
X
初期値 (RST)
6
5
4
3
2
1
0
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
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , クロックソース選択の変更設定との順序を間違えないように注意
してください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周
比が有効となります。
121
第 3 章 CPU および制御部
[bit7 ∼ bit4] T3, T2, T1, T0 : CLKT 分周選択ビット
外部バスクロック (CLKT) のクロック分周比設定ビットです。
外部拡張バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースク
ロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択しま
す。
動作可能な上限周波数は 40MHz ですので , これを超える周波数になる分周比は設定
しないでください。
クロック周波数 : 原発振 18 MHz
および PLL4 逓倍の場合
T3
T2
T1
T0
0
0
0
0
φ
72.0 MHz [ 初期値 ]
0
0
0
1
φ × 2 (2 分周 )
36.0 MHz
0
0
1
0
φ × 3 (3 分周 )
24.0 MHz
0
0
1
1
φ × 4 (4 分周 )
18.0 MHz
0
1
0
0
φ × 5 (5 分周 )
14.4 MHz
0
1
0
1
φ × 6 (6 分周 )
12.0 MHz
0
1
1
0
φ × 7 (7 分周 )
10.3 MHz
0
1
1
1
φ × 8 (8 分周 )
9.0 MHz
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
クロック分周比
φ はベースクロックの周期
リセット (INIT) により "0000B" に初期化されます。
読出しおよび書込みが可能です。
[bit3 ∼ bit0] 予約 : 予約ビット
予約ビットです。
122
…
4.5 MHz
第 3 章 CPU および制御部
■ CSCFG : クロックソース構成レジスタ
このレジスタは , サブクロックモードのメインクロック発振を制御します。
このレジスタは MB91461 には搭載されていません。
図 3.11-10 クロックソース構成レジスタ
CSCFG
bit
アドレス : 0004AEH
リード / ライト
初期値 (INIT)
初期値 (RST)
7
6
EDSUEN PLLLOCK
(R/W)
(R)
0
X
X
X
5
4
3
2
1
0
RCSEL
(R/W)
0
X
予約
(R/W)
0
X
CSC3
(R/W)
0
X
CSC2
(R/W)
0
X
CSC1
(R/W)
0
X
CSC0
(R/W)
0
X
[bit10] PLL1EN : PLL 許可ビット
PLL の動作許可ビットです。本ビットは , クロックソースとして PLL を選択してい
る間は書換えをしないでください。また , 本ビットが "0" の間はクロックソースと
して PLL を選択しないでください (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。
[bit7] EDSUEN : EDSU/MPU 許可
EDSUEN
機能
0
EDSU/MPU は ( クロック ) 禁止 [ 初期値 ]
1
EDSU/MPU は ( クロック ) 許可
[bit6] PLLLOCK : PLL ロック
PLLLOCK
機能
0
PLL がロックされていない状態
1
PLL がロックされた状態
[bit5] RCSEL : CR 発振器セレクタ
RCSEL
機能
0
CR 発振は 100kHz に設定 [ 初期値 ]
1
CR 発振は 2MHz に設定
選択した発振周波数は , クロック制御ユニット , フラッシュセキュリティユニット
(CRC 生成の速度を上げる場合は発振を 2MHz に変更 ) , およびリアルタイムクロッ
クに適用されます。ハードウェアウォッチドッグ (CR ベースのウォッチドッグ ) に
は , この設定にかかわらず , 常に 100kHz が適用されます。
[bit4] 予約 : 予約ビット
このビットは予約ビットです。
123
第 3 章 CPU および制御部
[bit3 ∼ bit0] CSC3 ∼ CSC0 : クロックソース選択
124
CSC3 ∼ CSC0
機能
--00B
リアルタイムクロックのソースはメイン発振
--01B
リアルタイムクロックのソースはサブ発振
--10B
リアルタイムクロックのソースは CR 発振
--11B
設定禁止
-0--B
サブクロックキャリブレーションのソースはサブ発振
-1--B
サブクロックキャリブレーションのソースは CR 発振
第 3 章 CPU および制御部
3.11.7
クロック制御部の周辺回路
クロック制御部の周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には, 26ビット長のタイムベースカウンタがあり, ベースクロックで動
作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.10.4 発振安定待ち時間」を参
照 ) のほか , 以下の用途に使用されます。
ウォッチドッグタイマ :
システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビッ
ト出力を用いて計測します。
タイムベースタイマ :
タイムベースカウンタ出力を用いてインターバル割込みを発生します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマで
す。プログラムの暴走などで設定したインターバルの間にウォッチドッグリセット
の発生延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。ここで説明するウォッチドッグタイマは「第 7 章
ハードウェアウォッチドッグタイマ」とは異なるもので , リセット直後は停止状態
です。
〔ウォッチドッグタイマの起動〕
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR ( リセット要因レジ
スタ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。
このとき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビット
により設定します。インターバル時間の設定は , この最初の書込みで設定した時間
のみが有効となり , それ以降の書込みはすべて無視されます。
〔ウォッチドッグリセットの発生延期〕
いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッ
チドッグリセット発生延期レジスタ ) に対して "A5H", "5AH" の順でデータを書き込
む必要があります。
この操作により , ウォッチドッグリセット発生用フラグが初期化されます。
〔ウォッチドッグリセットの発生〕
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグが設定されていると , ウォッチドッグリセットとして設定初期化リセッ
ト (INIT) 要求を発生します。
125
第 3 章 CPU および制御部
〔ウォッチドッグタイマの停止〕
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す
るまでは , ウォッチドッグタイマを停止することはできません。
動作初期化リセット (RST) の発生する以下の状態では , ウォッチドッグタイマは停
止し , 再度プログラム動作にて起動するまでは機能しません。
- 動作初期化リセット (RST) 状態
- 設定初期化リセット (INIT) 状態
- 発振安定待ちリセット (RST) 状態
〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合いったん
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生
を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
- スリープ状態
- ストップ状態
- 発振安定待ち RUN 状態
- エミュレータデバッガ , モニタデバッガを使用時のブレーク中
- INTE 命令の実行から RETI 命令の実行までの期間
- ステップトレーストラップ
(PS レジスタの T フラグ= 1 による 1 命令ごとのブレーク )
- 命令キャッシュ制御レジスタ (ISIZE, ICHCR),
RAM モード時のキャッシュメモリへのデータ
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発
生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリ
セットが発生しない可能性があります。その場合 , 外部 INITX 端子よりリセット
(INIT) をかけてください。
126
第 3 章 CPU および制御部
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発
生用タイマです。PLL のロック待ち時間など , 最大で { ベースクロック× 226} サイ
クルまでの比較的長時間の時間計測を行う用途に適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを
検出すると , タイムベースタイマ割込み要求を発生します。
〔タイムベースタイマの起動とインターバル設定〕
タイムベースタイマは , 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"
を書き込んでもクリア動作を行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期
されます。
〔デバイス状態によるタイムベースカウンタのクリア〕
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にク
リアされます。
- ストップ状態
- 設定初期化リセット (INIT) 状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタ
が使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生し
てしまう可能性があります。
そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し ,
タイムベースタイマを使用しないでください。
それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー
スタイマ割込みは自動的に禁止されます。
127
第 3 章 CPU および制御部
インターバルタイマ
クロックソースの選択や分周設定の影響を受けず , ソースクロックに同期してカウ
ントアップする 23 ビットのタイマです。
128
第 3 章 CPU および制御部
3.12
PLL インタフェース
PLL の逓倍設定について説明します。
図 3.12-1 に , PLL 周辺のブロックダイヤグラムを示します。
図 3.12-1 PLL 周辺のブロックダイヤグラム
クロック
ユニット
XIN1
PLL
PLLIN
インタフェース
PLL
水晶
または
クロック入力
X
1/G
1/M
CK
位相補正
M
U
X
FB
1/N
クロックツリー
CLKB
CLKP
CLKT
M
U
X
FB1 遅延
■ 特長
1 ∼ 64 まで設定可能な 2 つのデバイダによって逓倍率を決定
電圧降下および電圧サージを防ぐためのクロック自動ギアのアップダウン機能
129
第 3 章 CPU および制御部
3.12.1
PLL インタフェースのレジスタ詳細説明
PLL インタフェースのレジスタの詳細について説明します。
■ PLLDIVM:PLL デバイダ M
図 3.12-2 に , PLL デバイダ M の構成を示します。
図 3.12-2 PLL デバイダ M の構成
PLLDIVM
bit
アドレス : 00048CH
7
予約
リード / ライト (R/W)
初期値
6
5
4
3
2
1
0
予約
DVM5
DVM4
DVM3
DVM2
DVM1
DVM0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
−
0
0
0
0
0
0
−
PLLDIVM は PLL フィードバックループの中に入るデバイダの 1 つで , PLLDIVN とと
もに PLL の逓倍率を決定します。また , PLL 発振出力を分周して , 以降のクロックユ
ニットに与えるクロックを生成する分周器としても使用されます。
[bit7, bit6] 予約 : 予約ビット
予約ビットです。読出し値は "0" です。
[bit5 ∼ bit0] DVM5 ∼ DVM0 : PLLDIVM 分周設定値
DVM5 ∼ DVM0 に設定する値によって分周数は以下のようになります。
130
DVM5 ∼ DVM0
分周数
000000B
1 ( 分周なし )
000001B
2
000010B
3
000011B
4
000100B
5
000101B
6
000110B
7
000111B
8
・・・・・
・・・・・
111111B
64
第 3 章 CPU および制御部
<注意事項>
• 分周設定としては "1" ( 分周なし ) も設定できますが , "2" 以上に設定することを推奨し
ます。また , PLL 出力のデューティ比を 50 % にするために , 設定値としては偶数の分
周数を設定してください。
• クロックソースとして PLL が選択されている場合は (CLKS1, CLKS0 = 10B),
PLLDIVM の値を変更することはできません。
131
第 3 章 CPU および制御部
■ PLLDIVN:PLL デバイダ N
PLL デバイダ N の構成は以下のとおりです。
図 3.12-3 PLL デバイダ N の構成
PLLDIVN
bit
7
6
5
4
3
2
1
0
予約
予約
DVN5
DVN4
DVN3
DVN2
DVN1
DVN0
リード / ライト (R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
0
0
0
0
0
0
0
アドレス : 00048DH
0
PLLDIVN は PLL フィードバックループの中に入るデバイダの 1 つで , PLLDIVM とと
もに PLL の逓倍率を決定します。
[bit7, bit6] 予約 : 予約ビット
予約ビットです。読出し値は "0" です。
[bit5 ∼ bit0] DVN5 ∼ DVN0 : PLLDIVN 分周設定値
以下に PLLDIVN 分周設定値を示します。
DVN5 ∼ DVN0
分周数
000000B
1 ( 分周なし )
000001B
2
000010B
3
000011B
4
000100B
5
000101B
6
000110B
7
000111B
8
・・・・・
・・・・・
111111B
64
<注意事項>
クロックソースとして PLL が選択されている場合は (CLKS1, CLKS0 = 10B), PLLDIVN の
値を変更することはできません。
132
第 3 章 CPU および制御部
■ PLLDIVG
PLLDIVG
bit
アドレス : 00048EH
7
6
5
4
3
2
1
0
DVG2
R/W
DVG1
R/W
DVG0
R/W
予約
R/W
予約
R/W
予約
R/W
予約
R/W
DVG3
R/W
初期値 (INITX 端子入力 ,
ウォッチドッグリセット )
0
0
0
0
0
0
0
0
初期値
(ソフトウェアリセット)
0
0
0
0
X
X
X
X
[bit7 ∼ bit4] 予約:予約ビット
これらのビットには常に "0" を書き込みます。
[bit3 ∼ bit0] DVG0 ∼ DVG3:PLL 自動ギアの開始 / 終了 G 分周選択
DVG3 ∼ DVG0
PLL 出力 G 分周の開始 / 終了周波数 ( 生成 φ: ベースクロック )
0000B
自動ギア禁止 ( 初期値 )
0001B
ソース (FCL-PLL) : 2 (2 分周 )
0010B
ソース (FCL-PLL) : 3 (3 分周 )
0011B
ソース (FCL-PLL) : 4 (4 分周 )
0100B
ソース (FCL-PLL) : 5 (5 分周 )
0101B
ソース (FCL-PLL) : 6 (6 分周 )
0110B
ソース (FCL-PLL) : 7 (7 分周 )
0111B
ソース (FCL-PLL) : 8 (8 分周 )
......
.....
1111B
ソース (FCL-PLL) : 16 (16 分周 )
< 注意事項 >
• G 分周カウンタに対して奇数の分周比 (3, 5, 7 など ) を選択できますが , これは推奨値
ではありません。常に偶数の分周比を選択してください (2, 4, 6 など ) 。
• クロックソースとして PLL を選択すると , レジスタ値は変更できません。 (CLKS1,
CLKS0 = 10B) 。
• 自動ギア機能を使用しない場合は 0000B ( 初期値 ) としてください。
133
第 3 章 CPU および制御部
■ PLLMULG
PLLMULG
bit
7
6
5
4
3
2
1
0
MLG7
R/W
MLG6
R/W
MLG5
R/W
MLG4
R/W
MLG3
R/W
MLG2
R/W
MLG1
R/W
MLG0
R/W
初期値 (INITX 端子入力 ,
ウォッチドッグリセット )
0
X
0
0
0
0
0
0
初期値
(ソフトウェアリセット)
X
X
X
X
X
X
X
X
アドレス : 00048FH
[bit5 ∼ bit0] : MLG7 ∼ MLG0:PLL 自動ギア G 分周のステップ逓倍率選択
MLG7 ∼ MLG0
G 分周のステップ逓倍率
00000000B
G 分周ステップ× 1 (1 で乗算 )
00000001B
G 分周ステップ× 2 (2 で乗算 )
00000010B
G 分周ステップ× 3 (3 で乗算 )
00000011B
G 分周ステップ× 4 (4 で乗算 )
00000100B
G 分周ステップ× 5 (5 で乗算 )
00000101B
G 分周ステップ× 6 (6 で乗算 )
00000110B
G 分周ステップ× 7 (7 で乗算 )
00000111B
G 分周ステップ× 8 (8 で乗算 )
......
.....
11111111B
G 分周ステップ× 256 (256 で乗算 )
< 注意事項 >
• クロックソースとして PLL を選択すると , レジスタ値は変更できません
(CLKS1, CLKS0 = 10B) 。
• 自動ギア機能を使用しない場合は , このレジスタは使用されません。
134
第 3 章 CPU および制御部
■ PLLCTRL
PLLCTRL
bit
7
アドレス : 000490H
6
5
4
3
2
1
0
GRDN
R/W
IEUP
R/W
GRUP
R/W
予約
R/W
予約
R/W
予約
R/W
予約
R/W
IEDN
R/W
初期値 (INITX 端子入力 ,
ウォッチドッグリセット )
0
X
0
0
0
0
0
0
初期値
(ソフトウェアリセット)
0
0
0
0
X
X
X
X
[bit7 ∼ bit4] 予約 : 予約ビット
読出し値は常に "0" です。
[bit3] : 割込み許可ギアダウン
IEDN
機能
0
ギアダウン割込み禁止 ( 初期値 )
1
ギアダウン割込み許可
[bit2] : 割込みフラグギアダウン
GRDN
機能
0
ギアダウン割込み非アクティブ ( 初期値 )
1
ギアダウン割込みアクティブ
• G 分周カウンタがプログラムされた終了値に達すると , クロックソース PLL から
クロックソース発振に切り換わるときにこのフラグが設定されます。
• リードモディファイライト命令では , このビットは "1" と読まれます。"1" を書き
込んでも影響はありません。
[bit1] : 割込み許可ギアアップ
IEUP
機能
0
ギアアップ割込み禁止 ( 初期値 )
1
ギアアップ割込み許可
135
第 3 章 CPU および制御部
[bit0] : 割込みフラグギアアップ
GRUP
機能
0
ギアアップ割込み非アクティブ ( 初期値 )
1
ギアアップ割込みアクティブ
• G 分周カウンタが M 分周カウンタで定義されている終了値に達すると , クロック
ソース発振からクロックソース PLL に切り換わるときにこのフラグが設定され
ます。
• リードモディファイライト (RMW) 命令では , このビットは "1" と読まれます。
"1"
を書き込んでも影響はありません。
136
第 3 章 CPU および制御部
PLL 逓倍率設定例
3.12.2
PLL 設定例について説明します。
以下の表に PLLDIVM, PLLDIVN の設定例を示します。
PLL 発振器出力が 80Mz ∼ 170MHz の範囲になるように設定してください。
表 3.12-1 PLL 逓倍率設定例 (1 / 2)
PLL 入力クロック
[MHz]
PLLDIVM 設定 PLLDIVN 設定
PLL 発振器出力
[MHz]
PLL 出力 ( クロック
ユニットへの出力 )[MHz]
4
20
2
160
8
4
14
3
168
12
4
10
4
160
16
4
8
5
160
20
4
8
6
192
24
4
6
7
168
28
4
6
8
192
32
4
6
9
192
36
4
4
10
160
40
4
4
11
176
44
4
4
12
192
48
4
2
19
152
76
4
2
20
160
80
10
2
8
160
80
10
3
5
150
50
10
3
6
180
60
10
4
4
160
40
10
4
5
200
50
10
5
3
150
30
10
5
4
200
40
10
6
3
180
30
10
8
2
160
20
10
9
2
180
20
10
10
2
200
20
12
3
5
180
60
12
4
4
192
48
12
5
3
180
36
12
7
2
168
24
12
8
2
192
24
14
3
4
168
56
14
4
3
168
42
137
第 3 章 CPU および制御部
表 3.12-1 PLL 逓倍率設定例 (2 / 2)
PLL 入力クロック
[MHz]
138
PLLDIVM 設定 PLLDIVN 設定
PLL 発振器出力
[MHz]
PLL 出力 ( クロック
ユニットへの出力 )[MHz]
14
6
2
168
28
14
7
2
196
28
16
2
5
160
80
16
3
4
192
64
16
4
3
192
48
16
5
2
160
32
16
6
2
192
32
18
3
3
162
54
18
5
2
180
36
20
2
4
160
80
20
3
3
180
60
20
4
2
160
40
20
5
2
200
40
第 3 章 CPU および制御部
■ クロック自動ギアのアップダウン
クロックソースを発振から高周波数 PLL 出力 ( またはその逆 ) に切り換えるときに電圧
の降下やサージを回避するために , PLL インタフェースにはクロックをスムーズにギア
アップおよびギアダウンする回路が実装されています。
主な機能は , 2 つの分周カウンタ (M 分周カウンタと G 分周カウンタ ) を使用して実装
されています。M 分周カウンタでは , PLL フィードバックにターゲットの周波数が指定
されます。もう一方の G 分周カウンタでは , G 分周設定 (DIVG) で指定されているプロ
グラマブルな分周から , M 分周設定 (DIVM) で指定されているターゲットの周波数に上
昇し , M 分周設定 (DIVM) からプログラマブルな終了周波数 (DIVG) まで周波数が低下
します。
システムクロックを低周波数から高周波数に変えたり ( ギアアップ ) , 高周波数から低
周波数に変える ( ギアダウン ) 場合は , DIVG > DIVM 設定のみが , 有効なクロックギア
仕様になります。
周波数ステップは , 以下のように PLL 出力周波数の逓倍で実行されます。
発振器= 4 MHz,
M = 2, N = 20 ( つまり , PLL 出力= 160 MHz, C ユニットへの周波数出力= 80 MHz と
すると , M × N = 40 という周波数逓倍になります ) 。
ギアデバイダは , 任意の偶数デバイダに設定できます。この例では G = 20 であり , 発
振から PLL に切り換わるときに以下のギアアップが行われます。
1. ステップ : 1 サイクルの 8.0 MHz (8.0 MHz は , 20 サイクルの PLL 出力になります )
2. ステップ : 2 サイクルの 8.4 MHz (8.4 MHz は , 19 サイクルの PLL 出力になります )
3. ステップ : 3 サイクルの 8.8 MHz (8.8 MHz は , 18 サイクルの PLL 出力になります )
:
17. ステップ : 17 サイクルの 40.0 MHz (40.0 MHz は , 4 サイクルの PLL 出力になります )
18. ステップ : 18 サイクルの 53.3 MHz (53.3 MHz は , 3 サイクルの PLL 出力になります )
19. ステップ : 19 サイクルの 80.0 MHz (80.0 MHz は , 2 サイクルの PLL 出力になります )
→最終ステップへの遷移で到達したターゲットの周波数 ( ここでは 18. から 19.)
ギア逓倍率レジスタ内で逓倍値を設定すると , 各ステップが逓倍されます。開始周波数
を生成してからターゲットの周波数に達するまでの時間は , 以下の式で計算できます。
i
⎛ i
⎞
⎜
duration = mul Þ t Þ ⎜ ∑ k Þ ( i – k + 1 ) – ∑ k Þ ( i – k + 1 )⎟⎟
⎝k = 1
⎠
k = j+1
この式は, 以下の式と同じです (最初の和の項の有限の算術級数は, 以下に帰着します) 。
i
⎛
⎞
i
Þ
(
i
+
1
)
Þ
(
i
+
2
)
⎜
duration = mul Þ t Þ ---------------------------------------------- – ∑ k Þ ( i – k + 1 )⎟
⎜
⎟
6
⎝
⎠
k = j+1
i = G, j = G − M, mul = MULG, t = 1/f(pllout)
上記の設定では , 開始周波数からターゲット周波数までの時間が 9262500ps ( 約 9.3 ms)
である 1483PLL 出力クロックサイクルと同じになります。
139
第 3 章 CPU および制御部
< 注意事項 >
クロック自動ギア機能を使用する場合は , ギアアップおよびギアダウンのフラグ
(PLLCTRL.GRUP, PLLCTRL.GRDN) を使用して , この機能の現在の状態を評価すること
をお勧めします。これにより , 完了前の設定変更によって発生するクロックシステム内で
の誤動作を防ぐことができます。
手順例 :
1. 選択した周波数とギア時間に従って PLL インタフェースレジスタ (PLLDIVN,
PLLDIVM, PLLDIVG, PLLMULG) を設定します。
2. PLL を ON にします (CLKR.PLL1EN = 1) 。
3. ギアをアップまたはダウンに切り換えた後に割込みを受信した場合は , 対応する割
込み許可も許可します (PLLCTRL.IEUP, PLLCTRL.IEDN) 。
4. PLL 安定待ち時間まで待機します。
5. ベースクロック分周レジスタを設定します (DIV0, DIV1) 。
6. クロックソースを PLL に切り換えます (CLKR.CLKS "00B" → "10B") 。
7. クロックソースを発振に戻す前に PLLCTRL.GRUP ギアアップフラグ ( ポーリング
または割込み ) まで待機するか , または CLKR レジスタ内のビットを変更する前に
PLLCTRL.GRUP = 1 の設定を確定します。
8. クロックソースを発振に切り換えます (CLKR.CLKS "10B" → "00B") 。
9. クロックソースを PLL に戻す前に PLLCTRL.GRDN ギアダウンフラグ ( ポーリング
または割込み ) まで待機するか , または CLKR レジスタ内のビットを変更する前に
PLLCTRL.GRDN = 1 の設定を確定します。
10.PLL を OFF にします (CLKR.PLL1EN = 0) 。
140
第 3 章 CPU および制御部
3.13
デバイス状態制御
MB19461/F467R の各種状態とその制御について説明します。
■ デバイス状態制御の概要
MB91461/F467R のデバイス状態には , 以下のものがあります。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• シャットダウン状態
• 発振安定待ち RUN 状態
• 発振待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ
モードの詳細について説明します。
141
第 3 章 CPU および制御部
デバイス状態と各遷移
3.13.1
図 3.13-1 に , MB91461/F467R のデバイスの状態遷移を示します。
■ デバイス状態
図 3.13-1 デバイス状態
遷移要求の優先順位
1 INITX端子=0(INIT)
2 INITX端子=1(INIT解除)
3 発振安定待ち終了
4 リセット(RST)解除
5 ソフトウェアリセット(RST)
6 スリープ(命令書込み)
7 ストップ (命令書込み)
8 シャットダウン (命令書込み)
9 割込み
10 クロックを必要としない外部割込み
11 ウォッチドックリセット(INIT)
(ハードウェアウォッチドッグを含む)
最強
↓
↓
↓
↓
最弱
パワーオン
1
設定初期化
(INIT)
2
1
シャットダウン
10
1
発振安定待ち
リセット
ストップ
1
8
10
1
3
プログラムリセット
(RST)
発振安定待ちRUN
3
7
5
1
6
スリープ
9
142
RUN
1
4
11
1
設定初期化リセット(INIT)
発振安定待ち終了
動作初期化リセット(RST)
割込み要求
ストップ(シャットダウン)
スリープ
第 3 章 CPU および制御部
■ デバイスの動作状態
MB91461/F467R のデバイスの動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
この状態は , プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし ,
16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバス
クロックのみ停止しています。
各状態遷移要求を受け付けますが , 同期リセットモードを選択している場合 , 通常
リセットモードの場合と一部要求に対する状態遷移動作が異なります。
詳細は , 「3.10.5 リセット動作モード」の「■ 同期リセット動作」を参照してくだ
さい。
● スリープ状態
この状態は , プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモ
リおよび内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有
効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移し
ます。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷
移します。
● ストップ状態
この状態は , デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し, 発振回路およびPLL
は設定により停止させることが可能です。また , 設定により , 外部端子を一律ハイ
インピーダンスにすることが可能です ( 一部端子を除く ) 。
特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中のインターバルタ
イマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
● シャットダウン状態
この状態は, RAM以外のデバイス停止状態です。プログラム動作により遷移します。
RAM (MB91461 では 64K バイト , MB91F467R では 32K バイト ) およびその周辺回路以
外は電源供給が遮断されます。これにより , シャットダウン状態でのリーク電流を大
幅に低減することができます。外部バスのコントロール信号を出力保持する以外は ,
すべての出力をハイインピーダンス状態にします。
特定の ( クロックを必要としない ) 有効な割込みにより , 発振安定待ち RUN 状態へ
遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
143
第 3 章 CPU および制御部
● 発振安定待ち RUN 状態
この状態は , デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くす
べての内部回路が停止します。内部クロックはすべて停止しますが , 発振回路およ
び動作許可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ
遷移します。
● 発振安定待ちリセット (RST) 状態
この状態は , デバイス停止状態です。ストップ状態または設定初期化リセット (INIT)
状態からの復帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くす
べての内部回路が停止します。内部クロックはすべて停止しますが , 発振回路およ
び動作許可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により , 発振安定待ちリセット (RST) 状態へ遷
移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
● 動作初期化リセット (RST) 状態
この状態は , プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け ,
または発振安定待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路
は一部を除き初期化されます。すべての内部クロックと発振回路および動作許可さ
れていた PLL は動作しています。
内部回路に対して動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動
作初期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの
復帰後だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷
移します。
144
第 3 章 CPU および制御部
● 設定初期化リセット (INIT) 状態
この状態は , 全設定初期化状態です。設定初期化リセット (INIT) 要求の受付け , ま
たはハードウェアスタンバイ状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路
はすべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。す
べての内部クロックは , 外部 INITX 端子への "L" レベル入力期間は停止しますが ,
それ以外では動作します。
内部回路に対して設定初期化リセット (INIT) および動作初期化リセット (RST) を出
力します。
設定初期化リセット (INIT) 要求の消失により , 本状態は解除され , 発振安定待ちリ
セット (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て ,
設定初期化リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部
要求は特定の状態でしか発生しませんので , その状態でしか有効になりません。
【最強】 設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了
( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求
(RUN, スリープ , ストップ , シャットダウン状態のみ発生 )
↓
ストップモード要求 ( シャットダウン )
( レジスタ書込み ) (RUN 状態のみ発生 )
【最弱】 スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
145
第 3 章 CPU および制御部
3.14
インターバルタイマ
インターバルタイマは , ソースクロックに同期してカウントアップする 23 ビットの
カウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタイマ機能
があります。
■ インターバルタイマのインターバル時間
表 3.14-1 に , インターバルタイマのインターバル時間を示します。インターバル時間
は次の 3 種類の中から選択できます。
表 3.14-1 インターバルタイマのインターバル時間
MB91461
メインクロック周期
1/FXTL
MB91F467R
214/FXTL
212/FXTL
219/FXTL
217/FXTL
225/FXTL
223/FXTL
( 注意事項 ) FXTL は X0/X1 端子または発振回路からのクロック
■ インターバルタイマのブロックダイヤグラム
図 3.14-1 に , インターバルタイマのブロックダイヤグラムを示します。
図 3.14-1 インターバルタイマのブロックダイヤグラム
インターバル
タイマ用カウンタ
FXTL
22
0
1
2
3
4
5
6
7
8
23 24 25 26 27 28 29 210 211
11
16
22
214
219
225
ソース
クロック
インターバル
タイマ
セレクタ
カウンタ
クリア回路
リセット
(INIT)
インターバル
タイマ割込み
インターバルタイマ
制御レジスタ(OSCR) WIF
WIE
WEN
予約
予約
WS1
WS0
FXTL:X0/X1端子または発振回路からのクロック
MB91461の場合, 分周回路があります
MB91F467Rの場合, 分周回路はありません
146
WCL
第 3 章 CPU および制御部
● インターバルタイマ
X0/X1 または発振回路からのクロックの 4 分周クロックをカウントクロックとする
23 ビットのアップカウンタです。
● カウンタクリア回路
OSCR レジスタによる設定 (WCL = 0) 以外に , リセット (INIT) 時にカウンタをクリ
アします。
● インターバルタイマセレクタ
インターバルタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用の 1 種
類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になります。
● インターバルレジスタ (OSCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを
行います。
147
第 3 章 CPU および制御部
■ インターバルタイマのレジスタ説明
図 3.14-2 に , インターバルタイマレジスタのレジスタ構成を示します。
図 3.14-2 インターバルタイマレジスタのレジスタ構成
OSCR
bit
15
アドレス : 0004C8H
WIF
リード / ライト (R/W)
0
初期値 (INIT)
X
初期値 (RST)
14
13
12
11
10
9
8
WIE
(R/W)
0
X
WEN
(R/W)
0
X
予約
(R/W)
予約
(R/W)
―
X
―
X
WS1
(R/W)
0
X
WS0
(R/W)
0
X
WCL
(R/W)
0
X
[bit15] WIF : タイマ割込みフラグ
インターバル割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立下りエッジによって "1" に設定され
ます。
このビットと割込み要求許可ビットが "1" のとき , インターバルタイマ割込み要求
を出力します。
値
内 容
0
インターバルタイマ割込みの要求なし [ 初期値 ]
1
インターバルタイマ割込みの要求あり
リセット (INIT) で "0" に初期化されます。
読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん
でもビット値は変化しません。
リードモディファイライト (RMW) 系命令での読出し値では常に "1" となります。
[bit14] WIE : タイマ割込み許可ビット
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとインターバ
ルタイマ割込み要求フラグビットが "1" のとき , インターバルタイマ割込み要求を
出力します。
値
内 容
0
インターバルタイマ割込み要求出力禁止 [ 初期値 ]
1
インターバルタイマ割込み要求出力許可
リセット (INIT) で "1" に初期化されます。
読出しおよび書込みが可能です。
148
第 3 章 CPU および制御部
[bit13] WEN : タイマ動作許可ビット
タイマ動作許可ビットです。
本ビットが "1" のときにタイマはカウント動作を行います。
値
内 容
0
タイマ動作停止 [ 初期値 ]
1
タイマ動作
リセット (INIT) で "0" に初期化されます。
読出しおよび書込みが可能です。
[bit12, bit11] 予約 : 予約ビット
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 ) 。
読出し値は不定です。
[bit10, bit9] WS1, WS0 : タイマインターバル時間選択ビット
インターバルタイマの周期を選択します。
インターバルタイマ用カウンタの出力ビットを下記 3 種類のうちから選択します。
WS1
インターバルタイマ周期
WS0
MB91461
MB91F467R
0
0
設定禁止 [ 初期値 ]
設定禁止 [ 初期値 ]
0
1
214/FXTL
212/FXTL
1
0
219/FXTL
217/FXTL
1
1
225/FXTL
223/FXTL
FXTL は X0/X1 または発振回路からのクロックです。
リセット (INIT) で "00B" に初期化されます。
読出しおよび書込みが可能です。
インターバル時間タイマを使用する場合 , 本レジスタにデータの書込みを行ってく
ださい。
[bit8] WCL : タイマクリアビット
"0" 書込みでインターバルタイマを "0" にクリアします。
書込みは "0" のみ可能で , "1" を書き込んでも動作に影響を与えません。
読出し値は常に "1" となります。
149
第 3 章 CPU および制御部
■ インターバル割込み
インターバルタイマ用カウンタは , X0/X1 端子または発振回路からのクロックの 2 分周
のクロック ( ソースクロック ) でカウント動作し , 設定したインターバル時間が経過す
ると , インターバル割込み要求フラグ (WIF) を "1" に設定します。そのとき , 割込み要
求許可ビットを許可 (WIE = 1) していると CPU へ割込み要求が発生します。ただし ,
発振回路が発振停止しているとき (「■インターバルタイマ機能の動作」を参照 ) では
カウント動作も停止しますので , インターバル割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下ると
設定されます。
<注意事項>
• リセット解除後に割込み要求出力を許可 (WIE = 1) する場合および WS1, WS0 ビット
変更時は , 必ず WIF と WCL ビットを同時にクリア (WIF = WCL = 0) してください。
このタイマは発振回路の安定待ち時間を自動で確保する目的には使えません。
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み
要求が発生します。
• カウンタクリア (OSCR:WCL = 1) と選択したビットのオーバフローが同時に起こった
場合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
インターバルタイマ用カウンタはソースクロックにてカウントアップを行いますが ,
以下の状態では発振回路の発振が停止するため , カウント動作も停止します。
WEN ビットが "0" のとき
ストップモードで発振回路が停止する設定 ( スタンバイ制御レジスタ STCR の
bit0:OSCD1 = 1) でストップモードに移行すると , ストップモード中 , カウント動作
が停止。MB91461/F467R では , リセット (INIT) 時 , OSCD1 = 1 に初期化しますの
で , ストップモード中もインターバルタイマを動かしたい場合は , スタンバイ移行
前に OSCD2 = 0 を設定してください。
カウンタをクリア (WCL = 0) すると , "000000H" からカウント動作を行い , "7FFFFFH"
に達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択され
たインターバルタイマ用の分周出力に立下りエッジが発生すると , インターバル割込
み要求ビット (WIF) を "1" に設定します。すなわち , クリアされた時間を基準にして ,
選択されたインターバル時間ごとにインターバルタイマ割込み要求を発生します。
150
第 3 章 CPU および制御部
■ インターバルタイマの動作
図 3.14-3 に , インターバルタイマ起動時のカウンタ状態を示します。
図 3.14-3 インターバルタイマ起動時のカウンタ状態
7FFFFFH
カウンタ値
時間
設定時間
・タイマクリア(WCL=1) * "0"以外のとき
・インターバル時間設定(WS1,WS0=11B)
割込みルーチンでクリア
WIF(割込み要求)
WIE(割込みマスク)
■ インターバルタイマ使用時の注意事項
発振開始直後は発振周期が不安定なため , 設定時間は目安値となります。
発振回路が発振停止中はカウンタも停止しますので , インターバルタイマ割込みも発
生しません。インターバルタイマ割込みを使った処理を行う場合は , 発振回路を停止し
ないでください。
WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラグ
セットが優先して "0" クリアは無効となります。
151
第 3 章 CPU および制御部
152
第4章
低消費電力モード
低消費電力モードの機能と動作について説明しま
す。
4.1 低消費電力モードの概要
4.2 スリープモード
4.3 ストップモード
4.4 シャットダウンモード
153
第 4 章 低消費電力モード
4.1
低消費電力モードの概要
MB91461/F467R でサポートする 3 つの低消費電力モードについて説明します。
■ 低消費電力モード
● スリープモード ( プログラム停止状態 )
CPU コア部のクロック供給を停止します。周辺機能は動作を継続します。レジスタ書
込みにより , デバイスがスリープ状態へ遷移します。
● ストップモード ( デバイス停止状態 )
CPU コアと周辺機能へのクロック供給を停止します。オプションとして , メイン発振
を停止するか継続するかを選択できます。
● シャットダウンモード ( 電源遮断状態 )
RAM と一部の制御ロジック以外への電源供給をデバイス内部で遮断します。発振は停
止し , クロック供給も停止します。
154
第 4 章 低消費電力モード
4.2
スリープモード
スリープモードとは , CPU コア部に供給するクロックのみを停止するモードで ,
CPU は停止し , 周辺機能は動作を続けます。
● スリープモードの概要
プログラム停止状態です。ソフトウェアでレジスタを設定することにより遷移します。
CPU のプログラム実行のみを停止し , 周辺回路は動作可能な状態です。各所内蔵メモ
リおよび内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有効な
割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移します。
● スリープモードへの移行
STCR (スタンバイ制御レジスタ) のbit6:SLEEPビットに"1"を書き込むとスリープモー
ドとなり , スリープ状態へ遷移します。
以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん
だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
スリープモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8:SYNCS ビットにて設定します ) を使用した上で , 以下のシーケン
スを必ず使用してください。
(LDI #value_of_sleep,R0);value_of_sleep は , STCR へのライトデータ
(LDI #_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB
;スタンバイ制御レジスタ (STCR) への書込み
R0,@R12
LDUB @R12,R0
;同期スタンバイのための STCR リード
LDUB @R12,R0
;もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
〔スリープ状態で停止する回路〕
• CPU のプログラム実行
• ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
• 各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
• 内部 / 外部バス (DMA 転送が発生した場合は動作します。)
155
第 4 章 低消費電力モード
〔スリープ状態で停止しない回路〕
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
• DSU
• インターバルタイマ
〔スリープ状態からの復帰要因〕
• 有効な割込み要求の発生
割込み禁止 ("1FH") 以外の割込みレベルの割込み要求が発生すると , スリープ
モードは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する
ICR に割込みレベルとして割込み禁止 ("1FH") を設定してください。
• 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態へ遷移します。
• 動作初期化リセット (RST) 要求の発生
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット
(RST) 状態へ遷移します。
各要因の優先順位については , 「3.13.1 デバイス状態と各遷移」を参照してくださ
い。
〔同期スタンバイ動作〕
タイムベースカウンタ制御レジスタ (TBCR) の bit8:SYNCS ビットに "1" が設定して
ある場合 , 同期スタンバイ動作が許可されます。この場合 , SLEEP ビットへの書込
みのみではスリープ状態へは遷移しません。その後 , STCR レジスタを読み出すこ
とによってスリープ状態へ遷移します。
156
第 4 章 低消費電力モード
4.3
ストップモード
ストップモードとは , CPU コア部と周辺機能に供給するクロックを停止するモード
です。
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むとストップモー
ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する
まではストップ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビットの両方に "1" を書き
込んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
〔ストップ状態で停止する回路〕
停止するように設定された発振回路 :
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあると
き , ストップ状態中のメインクロック用発振回路を停止状態にします。このとき ,
インターバルタイマも停止します。
動作許可されていないか , 停止するように設定された発振回路に接続された PLL :
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあると
き , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定
してあっても , ストップ状態中のメインクロック用 PLL を停止状態にします。
〔ストップ状態で停止しない回路〕を除くすべての内部回路
〔ストップ状態で停止しない回路〕
停止するように設定されていない発振回路 :
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると
き , ストップ状態中のメインクロック用発振回路は停止しません。このときイン
ターバルタイマも停止しません。
動作許可されていて , かつ停止するように設定されていない発振回路に接続された
PLL :
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると
き , CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定
してあると , ストップ状態中のメインクロック用 PLL は停止しません。
〔ストップ状態での端子のハイインピーダンス制御〕
STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストッ
プ状態中の端子出力をハイインピーダンス状態にします。
STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストッ
プ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「3.11.6
クロック生成制御部のレジスタ詳細説明」を参照してください。
157
第 4 章 低消費電力モード
〔ストップ状態での周辺リソースへの入力 ]
ストップ状態では , 各周辺リソースへの入力は "0" になります。また , 外部割込み
(INTn) および CAN の受信 (RXn) 端子については , 対応する PFR を "0" とすると , 各
リソースの入力は "0" になりますが , PFR = 1 とすることにより , 端子からの信号が
リソースにつながります。
〔ストップ状態からの復帰要因〕
特定の ( クロックを必要としない ) 有効な割込み要求の発生 :
外部割込み入力端子 (INTn 端子 ) , メイン発振中のインターバルタイマ割込みの
み有効です。
割込み禁止 ("1FH") 以外の割込みレベルの割込み要求が発生するとストップモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR
に割込みレベルとして割込み禁止 ("1FH") を設定してください。割込み要求レベ
ル (ELVR レジスタ ) にエッジ検出は設定しないでください。
インターバルタイマ割込み :
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあると
き , インターバルタイマの割込み要求が発生するとストップモードは解除され ,
RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , インターバ
ルタイマを停止させるか , インターバルタイマの割込み許可ビットを割込み禁
止に設定してください。
設定初期化リセット (INIT) 要求の発生 :
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態へ遷移します。
動作初期化リセット (RST) 要求の発生 :
動作初期化リセット (RST) 要求が発生すると , 無条件で動作初期化リセット
(RST) 状態へ遷移します。
〔ストップモード時のクロックソース選択〕
ストップモードを設定する前に , PLL の出力を選択しないようにあらかじめ設定し
ておいてください。分周比の設定に関しては , 通常動作時と制限事項は変わりませ
ん。
158
第 4 章 低消費電力モード
4.4
シャットダウンモード
シャットダウンモードとは , RAM と一部の制御ロジック以外の電源供給を停止する
モードで , スタンバイ時のリーク電流を大幅に低減できます。
シャットダウンモードでは内蔵 RAM* およびシャットダウン復帰要因フラグ以外のレ
ジスタの設定は保持されません。必要な情報は RAM に残した上でシャットダウンモー
ドへ移行する必要があります。外部バスのコントロール信号を出力保持する以外はす
べての出力をハイインピーダンスの状態にします。本モードからの復帰は , あらかじめ
指定された外部割込み信号のアサートあるいは INITX( 外部リセット端子 ) のアサート
により行います。NMI 入力での復帰はできません。
* MB91461 は命令 / データ兼用 RAM(F-bus RAM)64K バイト (0x30000 ∼ 0x3FFFF),
MB91F467R はデータ専用 RAM(D-busRAM)32K バイト (0x24000 ∼ 0x2BFFF) となり
ます。
● SHDE: シャットダウン制御レジスタ
図 4.4-1 シャットダウン制御レジスタ
アドレス : 0004D4H
bit
リード / ライト
初期値
7
6
5
4
3
2
1
0
SDENB
―
(―)
(X)
―
(―)
(X)
―
(―)
(X)
―
(―)
(X)
―
(―)
(X)
―
(―)
(X)
―
(―)
(X)
(X)
(X)
(X)
(X)
R/W
(0)
(INITX 端子 , シャットダウンモードからのリセット )
初期値
( 保持 )
(X)
(X)
(X)
( ソフトウェアリセット , ウォッチドッグリセット )
シャットダウンモードを有効にするためのレジスタです。
SDENB (bit7): シャットダウンイネーブル
1: シャットダウンモード有効
2: シャットダウンモード無効
159
第 4 章 低消費電力モード
● EXTE: 外部割込みイネーブルレジスタ
図 4.4-2 外部割込みイネーブルレジスタ
アドレス : 0004D6H
bit
リード / ライト
7
6
5
4
3
2
1
0
RX1
RX0
INT7
INT6
INT3
INT2
INT1
INT0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
( 保持 )
( 保持 )
( 保持 )
( 保持 )
初期値
(INITX 端子 , シャットダウンモードからのリセット )
( 保持 )
初期値
( 保持 )
( 保持 )
( 保持 )
( ソフトウェアリセット , ウォッチドッグリセット )
シャットダウンモードからの復帰要因を選択するためのレジスタです。
復帰要因として有効にするには , 割込みあるいは CAN の受信信号 (RX) に対応する本
レジスタのビットに "1" を設定してください。シャットダウンモードからの復帰 ( リス
タート ) で本レジスタの各ビットはクリアされるので , シャットダウンモードに入る前
に毎回設定する必要があります。
● EXTF: 外部割込み要因フラグ
図 4.4-3 外部割込み要因フラグ
アドレス : 0004D7H
bit
リード / ライト
初期値
7
6
5
4
3
2
1
0
RX1
RX0
INT7
INT6
INT3
INT2
INT1
INT0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
( 保持 )
( 保持 )
( 保持 )
( 保持 )
( 保持 )
( 保持 )
( 保持 )
( 保持 )
(INITX 端子 )
初期値
( ソフトウェアリセット , シャットダウンモードからのリセット , ウォッチドッグリセット )
シャットダウンモードからの復帰要因を示すレジスタです。
復帰要因として有効な入力があった場合に対応するフラグに "1" が設定されます。本
レジスタは "0" 書込みのみ可能です。これらのフラグのクリアは , CPU 命令により "0"
を設定する , もしくは INITX 端子によるリセットで行います。
シャットダウン後に一番初めの要因が受け付けられると , その情報はフラグに保持さ
れ , 直ち ( 約 100µs 後 ) に復帰のためのリセットシーケンスを始めます。これにより ,
複数の復帰要因がある場合であっても , 時間差がある場合には後続の要因は受け付け
られず , フラグも保持されません。
160
第 4 章 低消費電力モード
● EXTLV1: 外部割込みレベルレジスタ
図 4.4-4 外部割込みレベルレジスタ
アドレス : 0004D8H
bit
リード / ライト
7
6
5
4
3
2
1
0
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
( 保持 )
( 保持 )
( 保持 )
( 保持 )
初期値
(INITX 端子 , シャットダウンモードからのリセット )
( 保持 )
初期値
( 保持 )
( 保持 )
( 保持 )
( ソフトウェアリセット , ウォッチドッグリセット )
● EXTLV2: 外部割込みレベルレジスタ
図 4.4-5 外部割込みレベルレジスタ
アドレス : 0004D9H
bit
リード / ライト
初期値
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
( 保持 )
( 保持 )
( 保持 )
( 保持 )
(INITX 端子 , シャットダウンモードからのリセット )
( 保持 )
初期値
( 保持 )
( 保持 )
( 保持 )
( ソフトウェアリセット , ウォッチドッグリセット )
シャットダウンモードからの復帰要因の割込みレベルを指定するためのレジスタで
す。
表 4.4-1 外部割込みレベルレジスタ
LBx
LAx
0
0
"L" レベル ( 初期値 )
0
1
"H" レベル
1
0
設定禁止
1
1
設定禁止
割込みレベル
<注意事項>
シャットダウンモードからの割込みレベルに対しては , "L" レベルまたは "H" レベルのみ
設定可能です。
161
第 4 章 低消費電力モード
● シャットダウンモードへの移行
シャットダウンモードに遷移するには , 以下の手順が必要です。
1) MB91F467R では , 内 ROM モードの外部バス使用状態からシャットダウンモード
に移行する際には , 外部バス制御端子から不必要なパルスを出力することを防ぐ
た め , CS0X, CS1X, CS2X, CS3X, CS4X, BGRNTX, WR0X, WR1X, RDX, ASX,
WEX, BAAX, IORDX, IOWRX に対応する以下のポート制御レジスタに①∼③の
順で値を設定してください。
① ポートデータレジスタ(PDR08/PDR09/PDR10/PDR11)に"1"を設定してください。
② データ方向レジスタ (DDR08/DDR09/DDR10/DDR11) に "0" を設定してください。
③ ポートファンクションレジスタ (PFR08/PFR09/PFR10/PFR11) に "0" を設定して
ください。
2) EXTLV1, EXTLV2 ( 外部割込みレベルレジスタ ) でシャットダウンモードからの
復帰に使用する割込みの信号レベルを設定してください。
3) SHDE ( シャットダウン制御レジスタ ) の SDENB ビットに "1" を設定し , シャッ
トダウンモードを有効にしてください。
4) EXTE( 外部割込みイネーブルレジスタ ) で復帰に使用する外部割込みチャネル
を設定してください。あらかじめ , SHDE ビットに "1" が設定されていないと ,
復帰チャネルを "1" に設定できません。
5) ストップモードへ移行する場合と同様の命令列を実行してください。1) ∼ 3) を
実行しておくことにより , 次の命令シーケンスの実行後 , シャットダウンモード
に移行します。
(LDI
#value_of_stop, R0) ; value_of_stop は STCR へのライトデータ
(LDI
#_STCR, R12)
; _STCR は STCR のアドレス (481H)
STB
R0, @R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB
@R12, R0
; 同期スタンバイのための STCR リード
LDUB
@R12, R0
; もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
シャットダウンモード中は , 外部バスの制御信号はシャットダウンに移行する直前の
値を保持しますが , それ以外のすべての出力は Hi-Z 状態になります。シャットダウン
からの復帰用端子の入力はその復帰要因を受け付けるまでの間 , 入力しきい値とプル
アップ / プルダウンの設定を保持します。また , 本モードの間 , 水晶発振は発振を停止
し , 内部ロジックへの電源供給も RAM* およびシャットダウン制御ロジックを除いて
停止します。
*: MB91461 は命令 / データ兼用 RAM(F-bus RAM)64K バイト , MB91F467R はデータ専
用 RAM(D-busRAM)32K バイト となります。
162
第 4 章 低消費電力モード
[ シャットダウンモード中の端子状態 ]
表 4.4-2 シャットダウンモード中の端子状態
端子名
端子状態
WDRESETX
ASX
CS0X, CS1X, CS2X, CS3X,
CS4X
IORDX
IOWRX
RDX
WR0X, WR1X
BGRNTX
シャットダウンモード移行直前の状態を保持します。
INT0, INT1, INT2, INT3,
INT6, INT7,
RX0/INT8, RX1/INT9
シャットダウン中は入力しきい値の設定およびプル
アップ / プルダウンの設定を継続します。
最初の復帰要因を受け付けた後 , リセットへ移行す
る際に初期値に戻されます。
SYSCLK
Hi-Z 状態になります。
その他の端子
Hi-Z 状態になります。
プルアップ / プルダウンの設定は初期値になります。
● シャットダウンモードからの復帰
外部割込みイネーブルレジスタで設定した外部割込み端子に有効なレベルが入力され
ると , リセットがかかります。その後 , 内部ロジックへの電源供給開始 , 発振安定待ち
を経て復帰します。その際 , シャットダウンからの復帰要因は , 外部割込み要因フラグ
レジスタ (EXTF) に保持されます。このフラグレジスタの値を初期設定ルーチン内で判
定することにより , 初期電源投入時の処理とシャットダウンモード復帰時の処理とを
ソフトウェアで判定することが可能です。最初の復帰要因が入力され , 復帰処理を行っ
ている最中に入力された割込みについては要因を保持しません。
[ 割込み端子による復帰 ]
シャットダウンモードでの復帰要因は , 初めの要因が受け付けられるとフラグに保
持され , リセットシーケンスが走り始めます。複数の復帰要因が入力された場合で
も , 時間差がある場合 , 後続の要因が受け付けられず , フラグにも保持されません。
シャットダウンの復帰要因を受け付けると , すべての端子はリセット状態に戻され
ます。すなわち , 復帰用端子の入力しきい値設定 , プルアップ / プルダウン設定も初
期状態に戻されます。
復帰要因を受け付けた後は以下の手順を経て起動します。
1) 内部降圧レギュレータからの電源供給再開
2) 発振安定待ち
3) リセット解除 , モードベクタフェッチ , リセットベクタフェッチ
シャットダウン中 , 復帰用端子の入力しきい値は , シャットダウン前の設定値が継
続されます。
163
第 4 章 低消費電力モード
割込みからの復帰を行う場合 , 割込み要求レベル設定レジスタ (ELVR) でエッジ検
出は使用できません。
[INITX 端子による復帰 ]
INITX 端子に "L" レベルを入力することによりリセットがかかります。この場合は ,
すべての割込み要因フラグはクリアされます。
割込み端子による復帰と異なり , INITX 端子で復帰する場合には発振安定待ち時間
は確保されません。INITX を 8ms 以上入力し , 発振安定待ち時間を確保してくださ
い。
<注意事項>
シャットダウンモードからの復帰として NMI を使用することはできません。
シャットダウン中は RTC も動作を停止します。
164
第5章
クロックモジュレータ
クロックモジュレータの概要とその機能について説
明します。( この機能は MB91461 には搭載されて
いません )
5.1 クロックモジュレータの概要
5.2 クロックモジュレータレジスタ
5.3 アプリケーションノート
165
第 5 章 クロックモジュレータ
5.1
クロックモジュレータの概要
MB91F467R に搭載されたクロックモジュレータについて説明します。
クロックモジュレータは , クロック信号のスペクトラムを広範囲の周波数に拡散する
ことにより , 電磁波障害 (EMI) を低減します。
このモジュールには , PLL 回路から提供される周波数 F0 の標準クロック ( 無変調 ) が
供給されます。この標準クロックの周波数は , ランダム信号によって変調されます。
被変調クロックの平均周波数は , 標準クロックの周波数 F0 です。
図 5.1-1 被変調クロックの周波数スペクトラム ( 基本波のみ )
変調範囲
周波数
Fmin
F0
Fmax
■ 周波数変調モードでの変調度および周波数分解能
被変調クロックの最大周波数および最小周波数 (Fmax および Fmin) は , 変調度パラメー
タによって定義されます。また , 変調範囲の分解能は , low (1) ∼ high (7) の 7 段階から
選択できます。高い分解能では , 被変調クロックスペクトラムの拡散周波数の粒度が細
かくなりますが , 利用できる変調度が制限されます。
通常 , 設定可能な最大周波数分解能と最大変調度の組合せによって , 最大の EMI 低減
効果が得られます。ただし , 変調度が低いほうが良好な EMI 動作が得られる場合もあ
ります。表 5.2-4 の使用可能な設定の表を参照してください。
166
第 5 章 クロックモジュレータ
5.2
クロックモジュレータレジスタ
クロックモジュレータレジスタを一覧表示し , 各レジスタの機能について詳しく説明
します。
■ クロックモジュレータレジスタ
図 5.2-1 クロックモジュレータレジスタ
アドレス: bit 7
6
5
4
3
2
1
0
CMPRL (下位)
初期値
11111101B
0004B9H
R/W R/W R/W R/W R/W R/W R/W R/W
bit 15
0004B8H
-
-
-
-
bit 7
0004BB H
14
-
6
予約
13
12
11
10
9
8
R/W R/W R/W R/W R/W R/W
5
予約
4
3
FMOD
予約
RUN
R/W R/W R/W
R
2
1
0
-
FMOD PDX
-
R/W R/W
CMPRH (上位)
初期値
XX000010B
CMCR
初期値
X0010X00B
167
第 5 章 クロックモジュレータ
■ クロックモジュレータ制御レジスタ (CMCR)
制御レジスタ (CMCR) には , 以下の機能があります。
• モジュレータを電源切断モードに設定
• 周波数変調モードでのモジュレータ許可 / 禁止
• モジュレータのステータス表示
図 5.2-2 クロックモジュレータ制御レジスタ (CMCR) の構成
アドレス
bit 7
-
0004BBH
-
6
予約
5
4
3
FMOD
予約 予約
RUN
R/W R/W R/W R
2
1
0
-
FMOD PDX
-
R/W R/W
CMCR
初期値
X0010X00B
bit0
電源切断ビット
PDX
0
電源切断モード
1
電源投入
bit1
FMOD
周波数変調許可ビット
0
周波数変調モード禁止
1
周波数変調モード許可
bit3
FMOD
RUN
周波数変調モードでのモジュレータステータスビット
0
クロック周波数非変調
1
クロック周波数変調
bit4~bit6
予約
R/W
R
X
-
:
:
:
:
リード/ライト可能
リードオンリ
不定値
未定義
:
初期値
ビット4
このビットには常に"1"が書き込まれます。
ビット5、6
このビットには常に"0"が書き込まれます。
ビット FMODRUN, FMOD, PDX は , 周波数変調モードのステータスを制御または示し
ます。周波数変調モードでは, いくつかの追加構成が必要になります (CMPRレジスタ) 。
168
第 5 章 クロックモジュレータ
■ クロックモジュレータ制御レジスタの内容
表 5.2-1 クロックモジュレータ制御レジスタの各ビットの機能 (1 / 2)
ビット名
bit7
機能
未定義
未定義です。初期値は不定となります。
bit6, bit5
予約
このビットには , 常に "0" が書き込まれます。
bit4
予約
このビットには , 常に "1" が書き込まれます。
FMOD
RUN :
周波数変
調モード
でのモ
ジュレー
タステー
タスビッ
ト
"0" : MCU は無変調クロックを使用して動作しています。
"1" : MCU は周波数変調されたクロックを使用して動作しています。
FMODRUN は , 周波数変調モード (FMOD = 1) でのモジュレータ出力ク
ロックのステータスを示します。出力クロックが周波数変調されたク
ロックの場合 , MODRUN は "1" に設定されます。それ以外の場合 ,
MODRUN は "0" に設定されます。
FMOD を "1" に設定して周波数変調モードを許可した後 , モジュレータ
がキャリブレートされます。この時間クロックは無変調クロックにな
ります。このため , 出力クロックが変調されたクロックに切り換わり ,
FMODRUN ビットが "1" に設定されるまでに数 µs かかります。キャ
リブレーション時間は , 発振器の周波数によって異なります。発振器
(Fc) が 4MHz の場合 , キャリブレーション時間は 64.00 µs ( キャリブ
レーション時間= 256/Fc) になります。
通常動作中は , キャリブレーションの完了後に , クロックが再び無変
調クロックに切り換わることはありません。
FMOD 信号の同期化および無変調クロックへの同期切換えのため ,
FMODRUN が "0" に変更され , モジュレータの禁止後にクロックが無
変調クロックに切り換わるまでに , 9 × T0 ( 入力クロック周期 ) 未満
かかります。
FMODRUN ビットは読出し専用です。FMODRUN に書き込んでも影
響はありません。
パラメータレジスタ CMPR を変更する前に , モジュレータを禁止して
おく必要があります (FMOD = 0 および FMODRUN = 0) 。
未定義
未定義です。初期値は不定となります。
bit3
bit2
169
第 5 章 クロックモジュレータ
表 5.2-1 クロックモジュレータ制御レジスタの各ビットの機能 (2 / 2)
ビット名
FMOD :
周波数変
調許可
ビット
"0" : 周波数変調禁止
"1" : 周波数変調許可
周波数変調モードでモジュレータを許可するには , FMOD を "1" に設
定する必要があります。
PLL からの標準クロック信号が安定した後 (PLL ロック時間の経過後 )
でないと , モジュレータは許可できません。
周波数変調モードに指定されている PLL 周波数範囲は , 15MHz ∼
25MHz です。
各 PLL 出力周波数には , 使用可能なモジュレーションパラメータの
セットがあります。選択された設定 (CMPR レジスタ ) と PLL 周波数
が一致している必要があります。
CMPR レジスタの説明を参照してください。
PLL 出力周波数が変更されたか , または ( 電源切断モードなどで ) PLL
が OFF になった場合は , FMOD = 0 および FMODRUN = 0 に変更す
る前に , モジュレータを禁止する必要があります。
モジュレータを許可するには , PDX を "1" に設定することにより , モ
ジュレータを電源切断モードからアクティブモードに切り換えておく
必要があります。また , 起動時間として 6 µs 待つ必要があります。
推奨の起動順序の説明は , アプリケーションノートを参照してくださ
い。
周波数変調モードでモジュレータを許可するには , パラメータレジス
タ CMPR を使用して適切な設定を選択しておく必要があります。
FMOD を "1" に設定して周波数変調モードを許可した後 , モジュレー
タがキャリブレートされます。この時間クロックは無変調クロックに
なります。このため , 出力クロックはすぐに変調クロックに切り換わ
りません。クロックのステータス ( 周波数変調 / 無変調 ) は , FMODRUN
ステータスビットで示されます。FMODRUN ビットの説明を参照して
ください。
FMOD 信号の同期化および無変調クロックへの同期切換えのため , モ
ジュレータの禁止後にクロックが無変調クロックに切り換わるまでに ,
9 × T0 ( 入力クロック周期 ) 未満かかります。モジュレータは , いつで
も禁止できます。
パラメータレジスタ CMPR を変更する前に , モジュレータを禁止して
おく必要があります (FMOD = 0 および FMODRUN = 0) 。
PDX :
電源切断
ビット
"0" : 電源切断モード
"1" : 電源投入
PDX はモジュレータの電源切断信号です。周波数変調モードを許可す
るには , あらかじめこのビットを 1 に設定し , 起動時間として 6 µs 待つ
必要があります。推奨の起動順序の説明は , アプリケーションノート
を参照してください。
電源切断モード (PDX = 0) に切り換える前に , モジュレータを禁止し
ておく必要があります (FMOD = 0 および FMODRUN = 0) 。
bit1
bit0
170
機能
第 5 章 クロックモジュレータ
以下の表に , モジュレータの状態の要約を示します。
表 5.2-2 モジュレータの状態
FMOD
PDX
FMODRUN
( 読出し専用 )
モジュレータ禁止
0
0
0
モジュレータ電源投入 ,
モジュレータ起動時間待ち (> 6 µs)
0
1
0
周波数変調モードでモジュレータ許可 ,
モジュレータはキャリブレート中 , 変調はアクティブで
ない
1
1
0
周波数変調モードでモジュレータが動作中 ,
変調はアクティブ
1
1
1
モジュレータの状態
設定禁止
上記以外の設定
171
第 5 章 クロックモジュレータ
■ クロック変調パラメータレジスタ (CMPR)
変調パラメータレジスタ (CMPR) は , 周波数変調モードでの変調度を決定します。
図 5.2-3 変調パラメータレジスタ
アドレス: bit 7
6
5
4
3
2
1
0
CMPRL (下位)
初期値
11111101B
0004B9H
R/W R/W R/W R/W R/W R/W R/W R/W
bit 15
14
13
12
11
10
9
8
0004B8H
R/W R/W R/W R/W R/W R/W
R/W
X
CMPRH (上位)
初期値
XX0000010B
: リード/ライト可能
: 不定値
: 未定義
変調パラメータは, 変調度, 変調されたクロックでの実際の最小周波数および最大周波数
を決定します。最適な設定を選択する方法については , アプリケーションノートを参照
してください。
使用可能な変調パラメータの各セットは , それぞれ特定の PLL 周波数を参照します。
PLL
周波数と , 選択されたパラメータは一致している必要があります。以下の使用可能な設
定の表を参照してください。
変調パラメータは , 周波数変調モードのみに影響を与えます。
<注意事項 >
変調パラメータの変更は , モジュレータが禁止されており , RUN フラグが "0" になってい
る場合 (FMOD = 0, FMODRUN = 0) にのみ行ってください。
172
第 5 章 クロックモジュレータ
■ 変調パラメータレジスタの内容
表 5.2-3 変調パラメータレジスタ (CMPR) の各ビットの機能
ビット名
機能
bit15, bit14
未定義
未定義です。初期値は不定となります。
bit13 ∼ bit0
MP13 ∼ MP0:
変調パラメー
タビット
PLL 周波数に応じて , 以下の変調パラメータ設定が使用可能です。
対応する CMPR レジスタ値は , 表 5.2-4 に示されます。
F0 :
入力クロックの周波数 (PLL 周波数 )
T0 :
入力クロックの周期 (PLL クロック周期 )
分解能 :
被変調クロックの周波数の分解能。低 (1) ∼高 (7)
Fmin :
周波数変調されたクロックでの実際の最小周波数
Fmax :
周波数変調されたクロックでの実際の最大周波数
位相スキュー :
無変調標準クロックに対する被変調クロックの最大位相シフト ( 無変調
クロックのクロック周期 )
例 : 位相スキュー= 1.44
最悪の場合 , 被変調クロックの n 周期のシーケンスが , 無変調標準クロッ
クの n 周期よりも 1.44 × T0 短くなるか , または 1.44 × T0 長くなること
があります。
n は >50 周期の数値です。
位相スキュー50
:
n<= 50 周期でのシーケンスの位相スキュー
CMPR :
CMPR レジスタのレジスタ設定
n 周期
標準クロック
+ 位相スキュー
n 周期
変調クロック
n 周期
173
第 5 章 クロックモジュレータ
<注意事項>
Fmax は 90MHz を超えないように設定してください。
以下の表に , 複数の MCU クロックおよび変調パラメータの推奨設定を示します。
表 5.2-4 変調パラメータ設定 (1 / 3)
+/- 位相
スキュー
min/max
[ 周期 ]
CMPR
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax (MHz)
+/- 位相
スキュー
50
[ 周期 ]
16
1
1
15.00
17.14
0.27
0.72
027FH
16
1
2
14.58
17.73
0.53
1.44
047EH
16
1
3
14.17
18.37
0.8
2.16
067DH
16
1
4
13.79
19.05
1.06
2.88
087CH
16
1
5
13.43
19.79
1.33
3.59
0A7BH
16
1
6
13.09
20.58
1.59
4.31
0C7AH
16
1
7
12.76
21.45
1.86
5.03
0E79H
16
1
8
12.45
22.38
2.13
5.75
1078H
16
1
9
12.15
23.41
2.39
6.47
1277H
16
1
10
11.87
24.53
2.66
7.19
1476H
16
1
11
11.60
25.76
2.92
7.91
1675H
16
1
12
11.35
27.13
3.19
8.63
1874H
16
1
13
11.10
28.65
3.45
9.34
1A73H
16
1
14
10.86
30.34
3.72
10.06
1C72H
16
1
15
10.64
32.25
3.98
10.78
1E71H
16
2
1
14.58
17.73
0.39
1.02
02BEH
16
2
2
13.79
19.05
0.78
2.03
04BCH
16
2
3
13.09
20.58
1.17
3.05
06BAH
16
2
4
12.45
22.38
1.56
4.06
08B8H
16
2
5
11.87
24.53
1.95
5.08
0AB6H
16
2
6
11.35
27.13
2.34
6.09
0CB4H
16
2
7
10.86
30.34
2.73
7.11
0EB2H
16
3
1
14.17
18.37
0.78
1.86
02FDH
16
3
2
13.09
20.58
1.56
3.72
04FAH
16
3
3
12.15
23.41
2.34
5.58
06F7H
174
第 5 章 クロックモジュレータ
表 5.2-4 変調パラメータ設定 (2 / 3)
+/- 位相
スキュー
min/max
[ 周期 ]
CMPR
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax (MHz)
+/- 位相
スキュー
50
[ 周期 ]
16
3
4
11.35
27.13
3.13
7.44
08F4H
16
3
5
10.64
32.25
3.91
9.3
0AF1H
16
4
1
13.79
19.05
0.75
2
033CH
16
4
2
12.45
22.38
1.5
4
0538H
16
4
3
11.35
27.13
2.25
6
0734H
16
5
1
13.43
19.79
1.13
3.94
037BH
16
5
2
11.87
24.53
2.25
7.88
0576H
16
5
3
10.64
32.25
3.38
11.81
0771H
16
6
1
13.09
20.58
1.5
2.67
03BAH
16
6
2
11.35
27.13
3
5.34
05B4H
16
7
1
12.76
21.45
1.81
3.95
03F9H
16
7
2
10.86
30.34
3.63
7.91
05F2H
20
1
1
18.60
21.63
0.27
0.72
027FH
20
1
2
18.08
22.38
0.53
1.44
047EH
20
1
3
17.58
23.20
0.8
2.16
067DH
20
1
4
17.11
24.07
1.06
2.88
087CH
20
1
5
16.66
25.01
1.33
3.59
0A7BH
20
1
6
16.24
26.02
1.59
4.31
0C7AH
20
1
7
15.84
27.13
1.86
5.03
0E79H
20
1
8
15.46
28.33
2.13
5.75
1078H
20
1
9
15.09
29.64
2.39
6.47
1277H
20
1
10
14.74
31.08
2.66
7.19
1476H
20
1
11
14.41
32.67
2.92
7.91
1675H
20
2
1
18.08
22.38
0.39
1.02
02BEH
20
2
2
17.11
24.07
0.78
2.03
04BCH
20
2
3
16.24
26.02
1.17
3.05
06BAH
20
2
4
15.46
28.33
1.56
4.06
08B8H
20
2
5
14.74
31.08
1.95
5.08
0AB6H
20
3
1
17.58
23.20
0.78
1.86
02FDH
20
3
2
16.24
26.02
1.56
3.72
04FAH
175
第 5 章 クロックモジュレータ
表 5.2-4 変調パラメータ設定 (3 / 3)
+/- 位相
スキュー
min/max
[ 周期 ]
CMPR
F0 (MHz)
分解能
変調度
Fmin (MHz)
Fmax (MHz)
+/- 位相
スキュー
50
[ 周期 ]
20
3
3
15.09
29.64
2.34
5.58
06F7H
20
4
1
17.11
24.07
0.75
2
033CH
20
4
2
15.46
28.33
1.5
4
0538H
20
4
3
14.09
34.42
2.25
6
0734H
20
5
1
16.66
25.01
1.13
3.94
037BH
20
5
2
14.74
31.08
2.25
7.88
0576H
20
6
1
16.24
26.02
1.5
2.67
03BAH
20
7
1
15.84
27.13
1.81
3.95
2BF5H
24
1
1
22.14
26.20
0.27
0.72
027FH
24
1
2
21.52
27.13
0.53
1.44
047EH
24
1
3
20.93
28.12
0.8
2.16
067DH
24
1
4
20.38
29.19
1.06
2.88
087CH
24
1
5
19.85
30.34
1.33
3.59
0A7BH
24
1
6
19.35
31.59
1.59
4.31
0C7AH
24
1
7
18.87
32.95
1.86
5.03
0E79H
24
2
1
21.52
27.13
0.39
1.02
02BEH
24
2
2
20.38
29.19
0.78
2.03
04BCH
24
2
3
19.35
31.59
1.17
3.05
06BAH
24
3
1
20.93
28.12
0.78
1.86
02FDH
24
3
2
19.35
31.59
1.56
3.72
04FAH
24
3
3
17.99
36.04
2.34
5.58
06F7H
24
4
1
20.38
29.19
0.75
2
033CH
24
5
1
19.85
30.34
1.13
3.94
037BH
24
6
1
19.35
31.59
1.5
2.67
03BAH
24
7
1
18.87
32.95
1.81
3.95
03F9H
176
第 5 章 クロックモジュレータ
5.3
アプリケーションノート
周波数変調モードの起動 / 停止順序と変調パラメータについて説明します。
■ 周波数変調モードの推奨の起動 / 停止順序
[ 起動順序 ]
[ 停止順序 ]
1.
モジュレータを電源切断モードから電源投入モードに切り換えます (PDX = 1) 。
2.
PLL を ON に切り換えます。
3.
PLL ロック時間を待機します。同時に , モジュレータが起動されます。
4.
CMPR レジスタを適切な値に設定します。
5.
周波数変調モードを許可します (FMOD = 1) 。
キャリブレーション完了後 , クロックが無変調クロックから変調クロックに切
り換わり , FMODRUN フラグが 1 に変更されます。
1.
モジュレータを禁止します (FMOD = 0) 。
2.
FMODRUN が 0 に変更されるまで待ちます。
3.
電源切断モードに切り換えます (PDX = 0) 。
4.
PLL の禁止 , 電源切断モードへの切換えなどを行います。
<注意事項>
PLL ロック時間の経過前にモジュレータを許可しないでください。モジュレータの動作中は
PLL を禁止しないでください。
177
第 5 章 クロックモジュレータ
■ 周波数変調モードの変調パラメータ
特定の EMI 低減効果を得るため変調パラメータ設定は一定値ではありません。最適な設
定は , 実際の用途 , システム全体 , 要件によって異なります。
周波数変調モードでの最適な変調パラメータを調べるには , 以下の方法をお勧めしま
す。
1
性能のニーズに基づいて , 必要な PLL 周波数を定義しま
す。
例 : 16MHz
2
許容される MCU の最大クロック周波数を決定します。
例 : 32MHz
3
最大分解能および最大変調度での設定を選択します。最
大周波数は , 許容される MCU の最大クロック周波数未満
にします。
例 : 分解能 : 7, 変調度 : 2,
CMPR = 05F2H (Fmax = 30.34MHz)
4
EMI 測定を実行します。
5
EMI 測定が要件を満たさなかった場合は , 以下のいずれ
かを実行します。
6
同じ周波数分解能で変調度を下げます。
( これにより , >100MHz の上位周波数帯域の低下は改善さ
れる可能性がありますが , <100MHz の基本帯域の低下は
悪化します。)
例 : 分解能 : 7, 変調度 : 1,
CMPR = 03F9H
または
周波数分解能を下げて変調度を上げます。
( これにより , <100MHz の基本帯域の低下は改善される
可能性がありますが , >100MHz の上位周波数帯域の低
下は悪化します。)
または
例 : 分解能 : 5, 変調度 : 3,
CMPR = 0771H
新しい設定を用いて 3) ∼ 5) の操作を繰り返し , 最良の
設定が得られるまで続けてください。
■ 推奨設定
次の表に , PLL クロックおよび許容される最大 MCU クロック周波数の条件の例 , および
推奨クロックモジュレータ設定を示します。
表 5.3-1 PLL クロックの条件の例
F0
PLL クロック
周波数
許容される最大
MCU クロック周
波数
分解能
変調度
Fmax
CMPR
16MHz
20MHz
5
1
19.79MHz
037BH
16MHz
25MHz
7
1
21.45MHz
03F9H
16MHz
32MHz
7
2
30.34MHz
05F2H
20MHz
25MHz
4
1
24.07MHz
033CH
20MHz
32MHz
7
1
27.13MHz
2BF5H
24MHz
32MHz
6
1
31.59MHz
03BAH
178
クロックモジュレータ設定
第6章
サブ発振安定待ちタイマ
サブ発振安定待ちタイマの概要とその機能につい
て説明します ( この機能は MB91461 には搭載され
ていません )。
6.1 サブ発振安定待ちタイマの概要
6.2 サブ発振安定待ちタイマの構成
6.3 サブ発振安定待ちタイマのレジスタ
6.4 サブ発振安定待ちタイマの動作説明
6.5 アプリケーションノート
6.6 サブ発振安定待ちタイマの使用上の注意
179
第 6 章 サブ発振安定待ちタイマ
6.1
サブ発振安定待ちタイマの概要
サブ発振安定待ちタイマの機能と特長について説明します。
■ サブ発振安定待ちタイマ機能
サブ発振安定待ちタイマは , サブクロックとともにカウントアップする 15 ビットカウ
ンタです。このタイマは , MCU 動作クロックの選択 / 分周設定に影響を与えません。
主にメインクロックの動作中にサブクロック発振が停止した場合 , サブクロック発振
が再開されると , このタイマを使用してサブクロック発振安定待ち時間が取得されま
す。
■ 特長
• タイプ
:15 ビットフリーランカウンタ
• チャネル数
: 1 チャネル
• クロックソース
:サブクロック (原発振) --- 周期=1/FCL-SUB =1/32.768kHz
• インターバル時間
周期=
210/F
CL-SUB,
:4 タイプ
213/F
CL-SUB,
214/FCL-SUB, 215/FCL-SUB,
(31.25ms, 0.25s, 0.50s, 1.00s)
180
• タイマクリア要因
: ( ソフトウェア , オーバフロー , リセット (INIT) )
• 割込み
: クロック割込み ( インターバル割込み )
• カウント値
: 読み書き不可 ( クリアのみ )
第 6 章 サブ発振安定待ちタイマ
6.2
サブ発振安定待ちタイマの構成
サブ発振安定待ちタイマのブロックダイヤグラムを図 6.2-1 に示します。
図 6.2-1 サブ発振安定待ちタイマのブロックダイヤグラム
インターバル時間
WS1 WS0
0
0
1
0
1
0
1
1
サブクロック
(原発振)
0
1
2
3
4 5
6 7
210 / FCL-SUB
213 / FCL-SUB
214 / FCL-SUB
215 / FCL-SUB
エッジ検出
セレクタ
クロックタイマ
(14ビットフリーランタイマ)
WPCR:ビット2-1
WIE
WPCR:ビット6
割込み禁止
割込み許可
0
1
0
WIF
WPCR:ビット7
0
1
割込み要求なし
割込み要求あり
WRITE; 0: フラグクリア
クロックタイマ
1
割込み (#49)
8 9 10 11 12 13 14
21 22 23 24 25 26 27 28 29 210 211 212 213 214 215
32.768 kHz
タイマクリア
WCL
0
1
WPCR:ビット2
タイマクリア
動作への影響はありません
181
第 6 章 サブ発振安定待ちタイマ
6.3
サブ発振安定待ちタイマのレジスタ
サブ発振安定待ちタイマの設定に使用するレジスタを説明します。
■ サブ発振安定待ちタイマのレジスタ一覧
図 6.3-1 サブ発振安定待ちタイマのレジスタ構成
WPCRH
bit
アドレス : 0004CAH
リード / ライト
182
7
6
5
4
3
2
1
0
WIF
WIE
WEN
WCL
R/W
予約
R/W
WS0
R/W
予約
R/W
WS1
R/W
R/W
R/W
R/W
初期値
000XX001B
第 6 章 サブ発振安定待ちタイマ
WPCRH : サブ発振安定待ちタイマ制御レジスタ
6.3.1
このレジスタは , インターバル時間の選択 , タイマのクリア , 割込みの制御 , タイマ
ストップなどの制御 , 状態の確認を行う場合に使用します。
■ WPCRH
WPCRH
bit
アドレス : 0004CAH
リード / ライト
7
6
5
WIF
R/W
WIE
R/W
WEN
R/W
4
予約
R/W
3
2
1
0
予約
R/W
WS1
R/W
WS0
R/W
WCL
R/W
初期値
000XX001B
[bit7] WIF : サブ発振安定タイマ割込み要求フラグ
WIF
読出し動作
書込み動作
0
割込み要求なし
割込み要求フラグのクリア
1
割込み要求あり
書込みによる動作への影響なし
サブ発振安定タイマ割込み要求フラグビットは , 選択したインターバル周期出力の
立下りエッジで "1" に設定されます。
[bit6] WIE : 割込み要求許可
WIE
動作
0
割込み要求禁止
1
割込み要求許可
• 割込み要求許可ビットが "1" に設定されている場合 , 割込み要求は許可されます。
• サブ発振安定タイマ割込み要求フラグが (WIF = 1) であり , 割込み要求許可ビット
(WIE) が "1" に設定されている場合は , 割込み要求が直ちに生成されます。
[bit5] WEN : タイマ動作許可
WEN
動作
0
タイマ動作停止
1
タイマ動作許可
bit4, bit3 : 予約ビット。
"0" と書き込むようにしてください。読出し値は "0" です。
183
第 6 章 サブ発振安定待ちタイマ
[bit2, bit1] WS1, WS0 : インターバル周期の選択
WS1
WS0
0
0
210/FCL-SUB (31.25ms)
0
1
213/FCL-SUB (0.25s)
1
0
214/FCL-SUB (0.50s)
1
1
215/FCL-SUB (1.00s)
インターバル周期 (FCL-SUB = 32.768kHz)
[bit0] WCL : タイマクリア
WCL
動作
0
サブ発振安定タイマクリア
1
書込みによる Write 動作への影響なし
タイマは , INITX 端子入力およびウォッチドッグリセットによってもクリアされま
す。
<注意事項>
• 初期値は , 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) 設定を使用して
設定できますが , 動作初期化リセット ( ソフトウェアリセット ) では , 初期化する代わ
りに現在値が保持されます。
• リセットを解除した後, 割込み要求許可 (WIE=1) およびインターバル周期選択 (WS1,
WS0) を設定する場合は , 同時にタイマ割込み要求フラグ (WIF) およびタイマクリア
(WCL) を "0" に設定するようにしてください。
184
第 6 章 サブ発振安定待ちタイマ
6.4
サブ発振安定待ちタイマの動作説明
サブ発振安定待ちタイマの動作について説明します。
■ サブクロック発振安定待ち割込み
図 6.4-1 サブクロック発振安定待ち割込みのタイミングチャート
(7)
(5)
サブクロック
発振例
クロックタイマ
カウント
(8)
0400H
(6)
0000H
時間
(1) 210
(bit9)
(8)
サブクロックストップビット
WCL
(4)
(2)
WIF
(3)
WIE
(3)
動作クロックモード
(9)
(11)
(11)
サブクロック
メインクロック
(10)
(1) インターバルを選択します (WS1, WS0) 。( この例では , 210/FCL-SUB が選択されています。)
(2) ソフトウェアによりクリアされるようタイマを設定します (WCL = 0) 。
(3) ソフトウェアによるフラグクリア (WIF = 0) および割込み要求許可 (WIE = 1) を設定します。
(4) ソフトウェアによるサブクロック動作中のサブクロックストップ解除 (OSCCR.OSCDS1 = 0) を設
定します。
(5) サブクロック発振が開始されます。
(6) サブクロック ( 原発振 ) とともにカウントアップします。
(7) サブクロック発振を安定にします。
(8) インターバル時間を選択時間にします (210 分周の立下りを検出 )。
(9) フラグ (WIF) が "1" になった場合 , サブクロック発振安定待ち割込み要求が生成されます。
(10) 割込みによる処理要因 ( ソフトウェア ) : 動作クロックの切換え ( サブ RUN => メイン RUN)
(11) 割込み要求禁止 (WIE = 0) および割込み要求クリア (WIF = 0)
185
第 6 章 サブ発振安定待ちタイマ
■ インターバル割込み ( クロック割込み )
図 6.4-2 インターバル割込み ( クロック割込み ) のタイミングチャート
クロックタイマ
カウント
(4)
4000H
(4)
2000H
0000H
(3)
(2)
時間
13
(1) 2 (bit12)
WCL
(3)
(4)
(4)
(2)
WIF
(2)
WIE
(2)
(5)
(6)
(5)
(6)
(1) インターバル時間を選択します (WS1, WS0) 。( この例では , 213/FCL-SUB が選択されています。)
(2) ソフトウェアによるタイマクリア (WCL = 0) , フラグクリア (WIF = 0) , および割込み要求許可
(WIE = 1) を設定します。
(3) タイマがサブクロック ( 原発振 ) とともにカウントアップします。
(4) インターバル時間を選択時間にします (213 分周の立下りを検出 )。
(5) フラグ (WIF) が "1" に設定されている場合 , インターバル割込み要求 ( クロック割込み要求 ) が生
成されます。
(6) 割込みによって生じる処理 ( ソフトウェア ) : 割込み要求クリア (WIF = 0)
( クロックカウントなどの任意処理 )
(7) 項目 (3) ∼ (6) を繰り返します。
186
第 6 章 サブ発振安定待ちタイマ
■ インターバル動作によるストップモードからのリターン ( クロック割込み )
図 6.4-3 インターバル動作によるストップモードからのリターン ( クロック割込み ) の
タイミングチャート
クロックタイマ
カウント
7FFFH
4000H
(2)
0000H
(3) 2 14 (bit13)
(7)
インターバル時間
WCL
(1)
(10)
(8)
WIF
(4)
WIE
(5)
MCUの状態
メイン
RUN
サブ
RUN
(6)
(9)
ストップ
サブ
RUN
ストップ
サブ
RUN
ストップ
サブ
RUN
ストップ
サブ
RUN
ストップ
サブ
RUN
発振安定待ち時間
(1) サブ発振安定タイマがソフトウェアによりクリアされます (WCL に "0" が書き込まれます )。
(2) サブ発振安定タイマをサブクロックとともにカウントアップします。
(3) インターバル時間を選択します。( この例では , 0.5 秒 : WS1, WS0 = 10B を選択します )
(4) ソフトウェアによるフラグクリア (WIF = 0) およびサブ発振安定タイマ割込み許可 (WIE = 1) を
設定します。
(5) MCU 動作をメイン RUN からサブ RUN に切り換えます。
(6) ストップモードに切り換えます。
(7) インターバル時間を選択時間にします (0.5 秒 )。
(8) 割込み要求フラグ (WIF) が "1" に設定されます。
(9) 割込み要求が許可されると (WIE = 1) , ストップモードからサブ RUN に戻ります。
(10) ソフトウェアにより割込み要求フラグがクリアされます (WIF に "0" が書き込まれます )。
(11) 項目 (6) ∼ (10) を繰り返します。
187
第 6 章 サブ発振安定待ちタイマ
6.5
アプリケーションノート
サブ発振安定待ちタイマの設定方法など , アプリケーション使用時の操作方法を説
明します。
● サブ発振安定待ちタイマの設定
表 6.5-1 サブ発振安定タイマに必要な設定
設定
設定レジスタ
インターバル時間の設定
サブ発振安定待ちタイマ制御レジス
タ (WPCRH)
カウントクリア
表 6.5-2 サブ発振安定タイマ割込みの許可に必要な項目
設定
設定レジスタ
サブ発振安定タイマの割込みベクタおよび
フリーランタイマレベルの設定
「第 11 章 割込みコントローラ」を参
照してください。
サブ発振安定タイマ割込みの設定
割込み要求のクリア
割込み要求の許可
サブ発振安定待ちタイマ制御レジス
タ (WPCRH)
● インターバル時間 ( 待ち時間 ) の種類と選択方法
インターバル時間には 4 種類あり , インターバル選択ビット (WPCRH.WS1, WS0) を使
用して設定します。
インターバル選択ビット
188
インターバル時間設定
インターバル ( 待ち時間 ) の例
FCL-SUB = 32.768kHz のとき
WS1
WS0
0
0
210/FCL-SUB
31.25ms
0
1
213/FCL-SUB
0.25s
1
0
214/FCL-SUB
0.50s
1
1
215/FCL-SUB
1.00s
第 6 章 サブ発振安定待ちタイマ
● サブ発振安定タイマのクリア方法
サブ発振安定タイマのクリア方法を以下に示します。
• クリアビット (WPCRH.WCL) を設定します。
動作
クリアビット (WCL)
サブ発振安定タイマのクリア
"1" を書き込みます。
• リセットを行います。
初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) で 15 ビットフリーラ
ンタイマをクリアします。
<注意事項>
動作初期化リセット ( ソフトウェアリセット ) によって , 15 ビットフリーランタイマのカ
ウントが保持されます。
• サブ発振安定タイマのオーバフロー ("FFFFH" の次のカウントアップ ) によって , カ
ウント値が "0000H" にリセットされます。
● 割込み関連レジスタ
以下の表に , 割込みレベルとベクタの関係を示します。
割込みレベルおよび割込みベクタについては ,「第 11 章 割込みコントローラ」を参照
してください。
割込みベクタ ( デフォルト )
#143
アドレス : 0FFDC0H
割込みレベル設定ビット (ICR4 ∼ ICR0)
割込みレベルレジスタ (ICR63)
アドレス : 047FH
割込み要求フラグ (WPCRH.WIF) は自動的にはクリアされないため , ソフトウェアに
よる割込み処理から戻る前にクリアしてください。(WIF ビットに "0" が書き込まれま
す。)
189
第 6 章 サブ発振安定待ちタイマ
● 割込みの許可方法
割込み許可は , 割込み要求許可ビット (WPCRH.WIE) を使用して設定されます。
割込み要求許可ビット (WIE)
割込み禁止
値を "0" に設定します
割込み許可
値を "1" に設定します
割込み要求は , 割込み要求ビット (WPCRH.WIF) を使用してクリアされます。
割込み要求ビット (WIF)
割込み要求クリア
"0" を書き込みます。
● サブ発振安定タイマカウントの停止方法
タイマ動作許可ビット (WPCRH.WEN) を使用して設定します。
「6.3 サブ発振安定待ち
タイマのレジスタ」を参照してください。
また , メインクロック動作中に MCU によってサブクロックが停止された場合は , サブ
クロック発振安定待ちタイマもカウントを停止します。
190
第 6 章 サブ発振安定待ちタイマ
6.6
サブ発振安定待ちタイマの使用上の注意
サブ発振安定待ちタイマを使用するときは , 次の点に注意してください。
[ タイマ割込み要求フラグ (WIF) の注意 ]
• タイマ割込み要求フラグの要求 (WIF = 1) , およびソフトウェアによって "0" がフラグ
に書き込まれる書込みタイミングを同時に設定する場合 , フラグは "1" に設定されま
す。
• リセットが無効になった後に割込み要求が許可された (WIE = 1) 場合 , およびイン
ターバル時間が変更された場合 , 同時に割込み要求許可フラグ (WIF) とクリアビッ
ト (WCL) に "0" を設定するようにしてください。
• リードモディファイライト (RMW) 系命令では "1" が読み出されます。
[ 初期化リセットの注意 ]
• 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) を設定すると , タイマ
割込み要求ビット (WIF) , タイマ割込み要求許可ビット (WIE) , タイマ許可ビット
(WEN) , およびタイマクリアビット (WCL) が "0" に初期化されますが , インターバ
ル周期選択ビット (WS1, WS0) は初期化できません。ソフトウェアにより設定して
ください。
• 初期化リセット (INITX 端子入力 , ウォッチドッグリセット ) を使用してサブ発振安
定タイマ制御レジスタの初期値を設定できますが , 動作初期化リセット ( ソフト
ウェアリセット ) では , サブ発振安定タイマ制御レジスタの値が初期化される代わ
りに , 現在の値が保持されます。
[ 発振開始直後の注意 ]
発振開始直後にはメインクロック発振およびサブクロックの発振周期が不安定な
ため , 発振安定待ち時間の値は見積もり値になります。
[ その他の注意 ]
不安定なクロックはデバイス全体に供給される可能性があり , サブクロック停止状
態からサブクロックの発振が開始されるようになっていたり , サブクロック発振が
安定するまで待機せずに MCU 動作モードがメイン RUN からサブ RUN モードに切
り換えられた場合は , 通常動作が保証されません。サブ発振安定タイマなどを使用
して , サブクロック発振安定待ち時間を取得するようにしてください ( メインク
ロックがクロックソースとして選択されている場合は , サブクロックの発振安定待
ち時間は取得されないことがあります ) 。
191
第 6 章 サブ発振安定待ちタイマ
• サブクロックの発振が停止しているときはサブ発振安定タイマが停止するため , ク
ロック割込み ( インターバル割込み ) も生成されません。クロック割込み ( インター
バル割込み ) を使用した処理が実行される場合は , サブクロック発振を許可してく
ださい ( サブクロック発振を停止しないでください ) 。
• サブ発振安定タイマは , サブクロックとともにカウントアップします。これにより ,
以下のような場合にはサブクロック発振が停止するため , タイマはカウントを停止
します。
- ストップモードで停止するようサブクロックが設定されており
( サブ発振許可
ビット= 1) , モードがストップモードに切り換えられている場合 , ストップモー
ド時にサブ発振安定タイマがカウントを停止します。
- サブ発振安定タイマがストップモード時にもカウントを継続するようにするに
は , サブクロック発振許可ビットを "0" に設定してから , モードをストップモード
に切り換えるようにしてください。
- サブクロックにおいてサブクロックストップビット= 1 の場合 , およびサブク
ロックが動作中に発振を停止するよう指定されている場合は , サブクロック動作
中にサブ発振安定タイマも停止します。
192
第7章
ハードウェアウォッチ
ドッグタイマ
ハードウェアウォッチドッグタイマの機能につい
て説明します。
7.1 ハードウェアウォッチドッグタイマの概要
7.2 ハードウェアウォッチドッグタイマの構成
7.3 ハードウェアウォッチドッグタイマのレジスタ
7.4 ハードウェアウォッチドッグタイマの機能
7.5 ハードウェアウォッチドッグタイマ使用上の注意
193
第 7 章 ハードウェアウォッチドッグタイマ
7.1
ハードウェアウォッチドッグタイマの概要
ハードウェアウォッチドッグタイマは , 内部カウンタが一定期間クリアされない場
合にリセット信号 ( 設定初期化リセット ) を発行します。
■ ハードウェアウォッチドッグタイマ
ハードウェアウォッチドッグタイマは , CPU 動作監視用のモジュールです。このタイ
マは設定初期化リセット (INIT) 後 , 直ちにカウントアップを開始します。プログラム
実行を継続させるには一定期間内に定期的にこのタイマをクリアする必要がありま
す。無限ループに陥った場合などでカウンタが一定期間以上クリアされない場合はリ
セット信号が発行されます。
外部端子 WDRESETX に出力される "L" パルス幅は原発振クロックの 128 サイクル分 ,
内部リセットは 1024 サイクル分の幅となります。
<注意事項>
CPU が下記のような動作を停止するモード ( スタンバイモード ) へ遷移した場合は , 本モ
ジュールの動作も停止します。
• スリープモード
: CPU 停止 , 周辺回路動作
• ストップモード
: CPU および周辺回路停止
• シャットダウンモード : CPU および周辺回路停止
• RTC モード
: CPU および RTC モジュールを除く周辺回路停止 , 発振子動作
• デバッグモード
: DSU ( デバッグサポートユニット ) によりブレークが発生し ,
デバッグルーチンが走行しているとき。
下記条件のいずれかを満たすことにより , ハードウェアウォッチドッグタイマはクリアさ
れます。
• HWDCS レジスタの CL ビットへの "0" 書込み
• リセット
• 発振停止
• スリープ / ストップ / シャットダウンモード , RTC モード , デバッグモードのいずれか
へ遷移
194
第 7 章 ハードウェアウォッチドッグタイマ
7.2
ハードウェアウォッチドッグタイマの構成
ハードウェアウォッチドッグタイマは , 以下の 2 つの回路で構成されます。
• ウォッチドッグタイマ
• ハードウェアウォッチドッグタイマ制御レジスタ
■ ハードウェアウォッチドッグタイマのブロックダイヤグラム
図 7.2-1 ハードウェアウォッチドッグタイマのブロックダイヤグラム
MB91461の場合
MB91F467Rの場合
CR発振
X0入力
(水晶発振回路)
FF
カウンタ
1/2
リセット信号
クリア
予約
予約
予約
予約
CL
予約
予約
CPUF
内部バス
● ウォッチドッグタイマ
CPU 動作を監視するためのタイマです。リセット解除後は定期的にクリアしてくださ
い。
● ハードウェアウォッチドッグタイマ制御レジスタ
このレジスタにはリセットフラグとタイマのクリアビットがあります。
● リセット発行
タイマがある一定期間以上クリアされない場合 , ハードウェアウォッチドッグタイマ
モジュールは設定初期化リセット (INIT) を発行します。内部リセット信号の幅は原発
振クロックの 1024 周期分となります。
● ウォッチドッグタイマの動作クロック
ウォッチドッグタイマの動作クロックは ,
MB91461 では X0 からのクロック ( 外部入力あるいは水晶発振 ) ,
MB91F467R では内蔵 CR 発振からのクロック ,
となります。
195
第 7 章 ハードウェアウォッチドッグタイマ
7.3
ハードウェアウォッチドッグタイマのレジスタ
ハードウェアウォッチドッグタイマ制御レジスタには , リセットフラグとウォッチ
ドッグタイマクリアビットがあります。
■ ハードウェアウォッチドッグタイマ制御レジスタ
図 7.3-1 ハードウェアウォッチドッグタイマ制御レジスタ
HWDCS
bit
アドレス : 0004C7H
7
予約
リード / ライト (R/W)
0
初期値
6
5
4
3
2
1
0
予約
(R/W)
0
予約
(R/W)
0
予約
(R/W)
1
CL
予約
(R/W)
0
予約
(R/W)
0
CPUF
(W)
1
(R/W)
0
[bit7 ∼ bit4] 予約 : 予約ビット
これらのビットは予約ビットです。
必ず , "0001B" を設定してください。
[bit3] CL: タイマクリアビット
ウォッチドッグタイマクリアビットです。
このビットに "0" を書き込むことによって , ウォッチドッグタイマはクリアされま
す。
読出し値は常に "1" です。"1" 書込みは無効です。
[bit2, bit1] 予約 : 予約ビット
これらのビットは予約ビットです。
必ず , "00B" を設定してください。
[bit0] CPUF: CPU リセットフラグ
ウォッチドッグタイマにオーバフローが発生すると , このビットは "1" に設定され
ます。
"0" 書込みによりこのビットはクリアされます。"1" 書込みは無効です。
外部リセット入力 (INITX) により初期化されますが , 内部リセット ( ソフトウェア
リセット ) では初期化されません。
196
第 7 章 ハードウェアウォッチドッグタイマ
■ ハードウェアウォッチドッグタイマ期間レジスタ
図 7.3-2 ハードウェアウォッチドッグタイマ期間レジスタ
HWWDE
bit
アドレス : 0004C7H
リード / ライト
初期値
7
6
5
4
3
2
1
0
予約
予約
予約
予約
予約
予約
ED1
ED0
−
−
R/W
0
R/W
0
−
−
−
−
−
−
−
−
−
−
[bit7 ∼ bit2] 予約 : 予約ビット
これらのビットは予約ビットです。
[bit1, bit0] ED : ウォッチドッグ期間設定
このビットによりウォッチドッグ期間を設定します。
ED1
ED0
機能
0
0
ウォッチドッグ周期を 216 × CR クロックサイクルとする ( 初期値 )
0
1
ウォッチドッグ周期を 217 × CR クロックサイクルとする
1
0
ウォッチドッグ周期を 218 × CR クロックサイクルとする
1
1
ウォッチドッグ周期を 219 × CR クロックサイクルとする
(注意事項)この機能は MB91461 では使用できません。
<注意事項>
• この機能は MB91461 では使用できません。
• MB91V460 では CR 発振により動作しますが , 周期は初期値から変更できません
(216 × CR から変更できません )。
197
第 7 章 ハードウェアウォッチドッグタイマ
7.4
ハードウェアウォッチドッグタイマの機能
一定期間以上ウォッチドッグタイマがクリアされない場合は , 設定初期化リセット
(INIT) が発行されます。この場合 , CPU のレジスタ値は保証されません。
■ ハードウェアウォッチドッグタイマの機能
リセット解除後 , 安定時間を待たずにハードウェアウォッチドッグタイマはカウント
アップを開始します。一定期間タイマがクリアされず , カウンタがオーバフローすると
設定初期化リセット (INIT) が発行されます。
■ ハードウェアウォッチドッグタイマの周期
MB91461 の場合 , ハードウェアウォッチドッグタイマのビット長は 23 ビットで , オー
バフロー周期は 932.1ms ( 原発振 18MHz 時 ) です。
表 7.4-1 MB91461 のハードウェアウォッチドッグタイマの周期
9MHz
18MHz
0.22µs
0.11µs
ウォッチドッグタイマ周期
1864.1ms
932.1ms
WDRESETX 出力パルス幅
14.22µs
7.11µs
WDRESETX アサート後 , 外部バスサイクル
の開始まで
113.78µs
56.89µs
ウォッチドッグタイマ
動作クロック周期
MB91F467R の場合 , ハードウェアウォッチドッグタイマのクロックソースとして
CR発振器が使用されるため, タイマの周期はCR発振器の精度に応じて変化します。
表 7.4-2 MB91F467R のハードウェアウォッチドッグタイマの周期
ED1-0
最小
通常
最大
−
5µs
10µs
20µs
00
327.68ms
655.36ms
1310.72ms
01
655.36ms
1310.72ms
2621.44ms
10
1310.72ms
2621.44ms
5242.88ms
11
2621.44ms
5242.88ms
10485.76ms
WDRESETX 出力パルス幅
−
5µs
10µs
20µs
WDRESETX アサート後 , 内蔵
FLASH へのアクセス開始まで
−
−
740µs
−
CR 発振サイクル
ウォッチドッグ
タイマ周期
198
第 7 章 ハードウェアウォッチドッグタイマ
■ ウォッチドッグタイマオーバフロー時のリセットタイミング
図 7.4-1 ウォッチドッグタイマオーバフロー時のリセットタイミング
MB91461の場合(18MHz発振時)
7.11µs
WDRESETX
内部リセット
56.89µs
MB91F467Rの場合
10µs
WDRESETX
内部リセット
およびセキュリティ
処理待ち時間
740µs
199
第 7 章 ハードウェアウォッチドッグタイマ
■ WDRESETX の端子出力について
WDRESETX 端子にはハードウェアウォッチドッグタイマのオーバフロー時の "L" パル
スが出力されるほか , 外部リセット入力 (INITX)によっても "L"レベルが出力されます。
WDRESETX 端子と外付けのフラッシュメモリの RESET 端子と接続することにより ,
ウォッチドッグリセットが発生した場合にフラッシュメモリが書込み / 消去モードに
ある場合でも読出しモードへ復帰します。
WDRESETX 端子には CPU コア部内蔵のソフトウェア起動のウォッチドッグタイマに
よるリセットとソフトウェアリセットではパルスは出力されません。したがって , フ
ラッシュメモリの書込み / 消去モードからの復帰にはこれらのリセット要因は使用で
きません。
<注意事項>
MB91V460 に WDRESETX 出 力 は あ り ま せ ん。ICE を 使 用 し て 動 作 さ せ る 場 合 は
WDRESETX 出力が使用できませんので注意してください。
200
第 7 章 ハードウェアウォッチドッグタイマ
7.5
ハードウェアウォッチドッグタイマ使用上の注意
ハードウェアウォッチドッグタイマ使用上の注意について説明します。
■ ハードウェアウォッチドッグタイマ使用上の注意
● ソフトウェアでの停止不可
ウォッチドッグタイマはリセット解除後 , 直ちに動作を開始します。ソフトウェアでは
カウントを停止することはできません。
● リセット抑止
ハードウェアウォッチドッグリセットを抑止するにはタイマのクリアが必要です。
ハードウェアウォッチドッグタイマ制御レジスタの CL ビットに "0" が書き込まれると
タイマはいったんクリアされ , リセットの発行が抑止されます。
● タイマの停止とクリア
CPU が動作しないモード ( スリープモード , ストップモード , シャットダウンモード ,
RTC モード ) の場合 , 遷移前にタイマはクリアされてカウントは停止します。また ,
DSU 経由でデバッグルーチンが走行する場合 , ウォッチドッグタイマはクリアされて
カウントは停止します。
● DMA 転送中の動作
内部の D-bus に接続された周辺リソースへの DMA 転送中は DMAC がバスを占有して
しまうため CL ビットへの "0" 書込みはできません。したがって , DMA 転送時間が
ウォッチドッグ周期より長い場合はリセットが発行されます。
201
第 7 章 ハードウェアウォッチドッグタイマ
202
第8章
メモリコントローラ
MB91F467RA, MB91F467RB に搭載されている内
蔵フラッシュメモリの制御に関して説明します。
フラッシュメモリでの命令読み出し速度に寄与す
るダイレクトマップキャッシュに関する説明もあ
ります。
8.1 メモリコントローラの概要
8.2 レジスタ
8.3 レジスタの説明
8.4 FLASH アクセスタイミング設定
203
第 8 章 メモリコントローラ
8.1
メモリコントローラの概要
メモリコントローラの概要について説明します。
メモリコントローラは , フラッシュメモリ , 汎用 RAM (I/D-RAM ともよばれる ) を制御
します。これらのメモリは , コード記憶域およびデータ記憶域になることができます。
一般に FR コアで F-bus を経由するコードフェッチが可能ですが , パフォーマンス上の
理由から , 本製品では直接 I-bus に接続しています。
フラッシュメモリアクセスの場合 , インタフェースには FLASH 命令キャッシュとデー
タ読出しバッファが含まれます。プリフェッチメカニズムにより , リニアコードの CPU
内部コードフェッチの遅延がなくなります。フラッシュメモリは MB91F467R にのみ
搭載されています。
● FLASH インタフェース
• ウェイトタイミング
• 同期アクセスでの FLASH 制御信号 ATDIN および EQIN の生成
( このバージョンでは , ADTIN, EQIN, ウェイトのタイミングをそれぞれ独立して構
成できます。)
• CEX, WEX, OEX の生成
• プログラミングでの 32 または 64 ビット読出しモードおよび 16 または 32 ビット読
出し / 書込みモードの処理
• タイミング透過度が 1:1 ( 同じウェイトサイクル ) のエミュレーションデバイスに対
する外部 SRAM のサポート
• FLASH マクロテストの手段およびパラレルプログラミングのサポート
● 汎用 RAM
共有コード / データメモリへのゼロのウェイトサイクルアクセス (I/D-RAM とも呼ばれ
る)
● FLASH 命令キャッシュとデータバッファ
8K バイトの FLASH 命令キャッシュ ( ダイレクトマップキャッシュ , プリフェッチ
ミスオプション )
● プリフェッチ
• キャッシュバッファへの連続命令ワードアドレスのプリフェッチ
• プリフェッチミス ( 分岐またはデータアクセス ) が発生した場合 , プリフェッチは解
除されるため , プリフェッチはプリフェッチミスのペナルティなしで機能します。
• FLASH マクロは , どの時点でも FLASH アクセスサイクル解除をサポートしている
必要があります。つまり , 次の完全アクセスサイクルのタイミングに影響を与えな
い ( 以前のアクセス解除から必要な特別のリカバリ条件がない ) ということです。
204
第 8 章 メモリコントローラ
8.2
レジスタ
FLASH インタフェースの一覧を示します。
■ FLASH インタフェースレジスタの一覧
表 8.2-1 FLASH インタフェースレジスタの要約
レジスタ
アドレス
ブロック
7000H
+0
+1
FMCS [R/W]
00001000
FMCR [R/W]
----0000
FMWT [R/W]
11111111 01111111*1
11111111 01011101*2
7004H
+2
+3
FCHCR [R/W]
------00 1000011
FMWT2[R/W]
-101----
7008H
FMAC [R]
00000000 00000000 00000000 00000000
700CH
FCHA0
-------- -0000000 00000000 00000000
7010H
FCHA1
-------- -0000000 00000000 00000000
FLASH_IF
FMPS [R/W]
-----000
*1:MB91461 の初期値
*2:MB91F467R の初期値
<注意事項>
• すべてのレジスタに対する読出し / 書込みアクセスは , バイト , ハーフワード , および
ワードになります。
• MB91461 では , FMCR および FMWT2 レジスタは使用できません。
• フラッシュの搭載されていないデバイス MB91461 と , フラッシュメモリ内蔵のデバイ
スでは , ウェイトサイクル設定レジスタ FMWT の初期値が異なります。
205
第 8 章 メモリコントローラ
8.3
レジスタの説明
FLASH インタフェースレジスタのビット構成など , 詳細機能について説明します。
■ FLASH インタフェース制御レジスタ
制御レジスタバイト 0
bit
アドレス : 7000H
31
30
ASYNC
予約
29
BIRE RDYEG
読出し / 書込み → (R/W) (R/W) (R/W)
(0)
(0)
(0)
初期値 →
bit
制御レジスタバイト 1
アドレス : 7001H
読出し / 書込み →
初期値 →
制御レジスタバイト 2
bit
アドレス : 7002H
読出し / 書込み →
初期値 →
bit
制御レジスタバイト 3
アドレス : 7003
読出し / 書込み →
初期値 →
28
(R)
(0)
27
26
25
24
RDY
RDYI
RW16
LPM
(R)
(1)
(R/W) (R/W) (R/W)
(0)
(0)
(0)
23
22
21
20
−
−
−
−
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
15
14
13
12
11
10
9
8
−
−
−
−
−
−
REN
(TAGE)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
7
6
5
4
3
2
LOCK
ENAB
FLSH (DBEN) PFEN PFMC
19
FMCS
18
LOCK PHASE
17
16
PF2I
RD64
FMCR
(R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
FCHCR
(R/W) (R/W)
(0)
(0)
1
0
SIZE1 SIZE0
FCHCR
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(0)
(0)
(0)
(0)
(0)
(1)
(1)
● FLASH メモリ制御ステータスレジスタ (FMCS)
[bit31] ASYNC : 非同期アクセス許可
0
同期 FLASH アクセス ( 初期値 )
1
非同期 FLASH アクセス
ASYNC ビットはリセット時にクリアされ , デフォルトで高速同期 FLASH アクセス
モードが許可されます。非同期モードに切り換えるには , このビットを設定します
( ただし , 読出しアクセスと書込みアクセスのいずれにおいても , このビットを設定
することは基本的にお勧めできません ) 。
[bit30] 予約 : 予約ビット
206
第 8 章 メモリコントローラ
[bit29] BIRE : Burn-In ROM 許可
0
Burn-In ROM アドレスにおける Burn-In ROM を禁止し , FLASH アクセス
を許可します ( 初期値 ) 。
1
Burn-In ROM へのアクセスを許可します。
[bit28] RDYEG : RDY ステータス保留 / 終了レジスタ
0
自動アルゴリズムが開始されていないか , または開始されたが完了してい
ません ( 初期値 ) 。
1
最後のレジスタ読出しアクセス以降 , FLASH 自動アルゴリズムは完了し
ています。
RDYEG ビットはリセット後にクリアされます。
このビットは , FMCS_RDY が "0" から "1" に遷移した後に設定されます。このビット
は , FLASH の RDY 信号がアクティブであるか , またはアクティブであった ( 自動ア
ルゴリズムが完了した ) ことを示します。RDYEG ビットは , アドレス 7000H に対す
る読出しアクセス時に自動的にクリアされます。
RDYEG ビットは , 読出し専用のステータス情報です。
[bit27] RDY : 自動アルゴリズムの FLASH RDY ステータス
このビットは , FLASH マクロの RDY 行のステータスを示します。RDY は , ( 例え
ば , セクタ消去 , チップ消去などで ) 自動アルゴリズムが開始された場合に FLASH
マクロの状態を通知するために使用されます。RDY が "1" に戻った場合 , 自動アル
ゴリズムは完了しています。
RDY ビットは , 読出し専用のステータス情報です。
[bit26] RDYI : RDY 出力強制
0
非アクティブ ( 初期値 )
1
RDY 出力を "1" に強制
このビットは , FLASH テスト用に予約されています。このビットは設定しないでく
ださい。
[bit25] RW16 : FLASH に対する 16 ビット読出し / 書込み許可
0
FLASH に対する 32 ビット読出し / 書込みが許可されています ( 初期値 ) 。
1
FLASH に対する 16 ビット読出し / 書込みが許可されています。
このビットはリセット後にクリアされます。初期値は , フラッシュメモリに対する
32 ビット読出し / 書込みアクセスが許可されています。
RW16 ビットを設定すると , 32 ビットモードから 16 ビットモードに切り換わりま
207
第 8 章 メモリコントローラ
す。フラッシュメモリにデータを書き込む場合 ( またはチップ消去やセクタ消去の
間 ) , フラッシュメモリからのコードフェッチはサポートされません。
<注意事項>
• データの整合性を保つため , フラッシュメモリへの書込み中は命令キャッシュを禁止
し , フラッシュメモリへの書込み手順完了後に命令キャッシュをフラッシュする
(FLUSH) ことを強くお勧めします。
• フラッシュメモリからの命令またはデータの読出し中に 16 ビットモード , 32 ビット
モード , および 64 ビットモードを切り換えることはできません。
• MB91V460 では RW16 ビットはありません ( 切換え動作はできません )。
[bit24] LPM : 低消費電力モード
0
低消費電力モード OFF ( 初期値 )
1
低消費電力モード許可
このビットはリセット後にクリアされます。初期値は , 低消費電力モードの設定が
OFF になります。
LPM = 0 の場合 , CEX は恒久的に "0" ( アクティブ ) にアサートされます。これに
より , 最速の FLASH アクセスタイミングが可能になります。
このビットを "1" に設定すると , 低消費電力モードが許可されます。CEX は , FLASH
アクセスの場合にのみ低消費電力にアサートされます。その間 , FLASH マクロはス
タンバイモードになります。
<注意事項>
フラッシュメモリでサポートされている " 自動スリープモード " によって , フラッシュメ
モリがアクセスされていない間 , 自動的に低消費電力状態になるため , この設定を使用す
る必要はありません。
● FLASH メモリ制御レジスタ (FMCR)
FMCR レジスタは , MB91461 では使用できません。
[bit19] LOCK : ALEH 自動更新ロック
0
ALEH 設定自動更新が許可されています ( 初期値 ) 。
1
ALEH 設定自動更新は禁止されています。
MB91F467R に内蔵のフラッシュメモリの場合 , ATDIN 立下りエッジと EQIN 立上
りエッジの間に特定のタイミングが必要となります。このタイミングは tALEH と
よばれ , 通常は ATDIN 対象期間と同じ長さです。
ATDIN 長の設定を FMWT:ATD2 ∼ ATD0 ビットに書き込むことにより ,
FMWT2:ALEH2 ∼ ALEH0 ビットは自動的にそれと同じ設定に更新されます。この
208
第 8 章 メモリコントローラ
自動更新が行われないようにするために , LOCK ビットを設定できます。
また , FMWT2:ALEH2 ∼ ALEH0 ビットに対して別の設定を適用する場合は , 最初
の設定を FMWT:ATD2 ∼ ATD0 ビットに書き込んでから , 2 番目の設定を
FMWT2:ALEH2 ∼ ALEH0 ビットに書き込みます。
[bit18] PHASE : ATDIN/EQIN クロックフェーズ
0
ATDIN/EQIN 生成は , コアのクロックと同調して行われます ( 初期値 ) 。
1
ATDIN/EQIN 生成は , コアのクロックに反転されます。
コアのクロックの周波数が低いときは , ATDIN/EQIN 生成をコアのクロックと同調
させるよりも , コアのクロックに反転されるようにこれらの信号生成を変更して
ウェイトサイクルを短縮したほうが効果的です。
弊社から提供された各製品の ATDIN, EQIN, ウェイトサイクルの設定要件を常時参照
することをお勧めします (「8.4 FLASH アクセスタイミング設定」も参照 ) 。
(PHASE 設定は , MB91F467R では使用できません。)
[bit17] PF2I : 32 ビット (2 命令 ) のみプリフェッチ
0
64 ビットをプリフェッチ ( 初期値 )
1
32 ビットのみをプリフェッチ
64 ビット読出しモード (RD64 = 1) で切り換えると , 命令アドレス IA + 8 ( 現在の
アクセスが IA + 0 でアラインされている場合 ) および命令アドレス IA + 4 ( 現在
のアクセスが IA + 4 でアラインされている場合 ) でプリフェッチが実行されます。
ただし , 64 ビット読出しモードで PF2I = 1 を設定すると , 次の命令アドレス IA +
4 でのみプリフェッチが実行されます ( 現在のアクセスアラインメント IA + 0 また
は IA + 4 に依存しない ) 。
通常 , 32 ビットのみのプリフェッチよりも 64 ビットのプリフェッチのほうが優れ
ていますが , キャッシュエントリの置換によってコード断片化の度合が強くなり ,
パフォーマンスが低下することがあります。このような場合は , 32 ビットのプリ
フェッチのみに切り換えることをお勧めします。
[bit16] RD64 : 64 ビット読出しモード許可
0
64 ビット読出しモードは禁止されています ( 初期値 ) 。
1
64 ビット読出しモードが許可されています。
一部の内蔵フラッシュメモリでは , 64 ビット読出しモードを切り換えてアクセスパ
フォーマンスを向上させることができます。ご使用の製品でこの機能が使用可能か
どうかは , 弊社にお問い合わせください。
このビットはリセット後にクリアされます。初期値は , フラッシュメモリに対する
32 ビット読出し / 書込みアクセスが許可されています。
209
第 8 章 メモリコントローラ
RD64 ビットを設定すると , 32 ビットモードから 64 ビットモードに切り換わりま
す。フラッシュメモリへのデータの書込みは , 64 ビット読出し専用モードではサ
ポートされていません。
<注意事項>
• フラッシュメモリからの命令またはデータの読出し中に 16 ビットモード , 32 ビット
モード , および 64 ビットモードを切り換えることはできません。
• MB91V460 では RD64 ビットはありません。
● FLASH キャッシュ制御レジスタ (FCHCR)
[bit9] REN : 非キャッシュ領域の範囲を許可
0
FCHA1 をアドレスマスク ( 初期値 ) の定義とします。
1
FCHA1 を FCHA0, FCHA1 の非キャッシュアドレス範囲の 2 つ目のポイン
トの定義とします。
ビットはリセット後にクリアされます。
FCHA0で定義されているアドレスはFCHA1
で定義されているビットマスクと結合されて , 非キャッシュ領域を定義します。
REN ビットを設定した場合 , 非キャッシュ領域は 2 つのポイントによって定義され
ます。非キャッシュ領域は , アドレス FCHA0 から FCHA1 までの範囲です。
[bit8] TAGE : TAG RAM アクセス許可
0
メモリマッピングされた TAG RAM アクセスは禁止されています
( 初期値 ) 。
1
メモリマッピングされた TAG RAM アクセスが許可されています。
リセット後 , ビットは "0" に設定されます。
(TAG RAM アクセスは , MB91F467R では使用できません。)
[bit7] FLUSH : 命令キャッシュエントリのフラッシュ
0
命令キャッシュエントリのフラッシュは完了しています。
1
実際に命令キャッシュエントリをフラッシュしています。
このビットはリセット後に設定されます。
FLUSHビットを設定した場合, 命令キャッシュのエントリは順次フラッシュされま
す。この初期化中 , キャッシュは禁止されます。初期化が実行される期間は , キャッ
シュエントリあたり 1 クロックサイクルです。有効なエントリの数は , 構成されて
いるキャッシュ容量によって異なります。
完了後 ( すべてのエントリがフラッシュされた後 ) , FLUSH ビットはハードウェア
によってクリアされます。
210
第 8 章 メモリコントローラ
このビットに "1" を書き込むと , キャッシュエントリのフラッシュがトリガされま
す。
<注意事項>
キャッシュ容量構成 (FCHCR:SZ1, SZ0) およびFLUSH を同時に設定することはできませ
ん ( 同じ書込みアクセス ) 。必ず , 最初に容量構成を設定してからキャッシュをフラッシュ
してください。MB91F467R の場合 , キャッシュ容量は 8K バイトです。
[bit6] DBEN : データバッファ許可
0
読出しデータのバッファは禁止されています ( 初期値 ) 。
1
読出しデータのバッファが許可されています。
このビットはリセット後にクリアされます。初期値は , 読出しデータバッファは禁
止されています。
DBEN ビットを設定すると , データ読出しバッファが許可されます。これにより , 8
ビットまたは 16 ビットのオペランドのデータ構造の読出しの速度が上がります。1
ワードのデータバッファが実装されています。同じ 32 ビットまたは 64 ビットワー
ドアドレスが続けてアクセスされると , データはバッファから読み出されます。
( データバッファは , MB91F467R では使用できません。)
[bit5] PFEN : プリフェッチ許可
0
命令のプリフェッチは禁止されています ( 初期値 ) 。
1
命令のプリフェッチが許可されています。
このビットはリセット後にクリアされます。初期値は , 命令のプリフェッチが禁止
されています。
PFENビットを設定すると, 命令アドレスIA+4の次のワードからコードプリフェッ
チが許可されます。プリフェッチにより , リニアコードの FLASH メモリへの MCU
のコードフェッチパス内の遅延がなくなります。
64 ビット読出しモード (RD64 = 1) で切り換えると , 命令アドレス IA + 8 ( 現在の
アクセスが IA + 0 でアラインされている場合 ) および命令アドレス IA + 4 ( 現在
のアクセスが IA + 4 でアラインされている場合 ) でプリフェッチが実行されます。
ただし , 64 ビット読出しモードで PF2I = 1 を設定すると , 次の命令アドレス IA +
4 でのみプリフェッチが実行されます ( 現在のアクセスアラインメント IA + 0 また
は IA + 4 に依存しない ) 。
実行中のプリフェッチサイクルは , 一致する命令アクセスから直接引き継ぐことが
できます。命令アクセスが存在しない場合 , プリフェッチされた命令ワードが
キャッシュメモリに格納されます。プリフェッチアドレスとは異なるアドレスに対
する FLASH アクセス ( コードまたはデータ ) が存在する場合 , プリフェッチサイクル
は即時に解除されます。
211
第 8 章 メモリコントローラ
[bit4] PFMC : プリフェッチミスキャッシュ許可
0
標準的なキャッシュアルゴリズム ( 初期値 ) 。
1
プリフェッチミスはキャッシュされるのみです。
このビットはリセット後にクリアされます。初期値は , プリフェッチミスキャッ
シュは禁止されています。命令キャッシュは , アクセスされたフラッシュメモリか
らの命令ワードごとにキャッシュエントリを書き込む標準的なアルゴリズムを使
用します。
PFMC ビットを設定すると , キャッシュエントリの 2 番目の書込みアルゴリズムに
切り換わります。このアルゴリズムでは , この命令ワードはキャッシュに書き込ま
れるのみです。これにより , プリフェッチミス状況が発生します。
FR CPU は , 2 クロックサイクルで約 1 つの命令ワード (16 ビット命令コード 2 つが
含まれる ) を要求します。FLASH データのスループット (2 サイクルで 1 ワード ) が
CPUのニーズを満たしていれば, ほとんどの場合でPFMCオプションが役立ちます。
FLASH アクセス時間が 2 クロックサイクルのとき , 連続したアドレスから次の命令
ワードが要求されてプリフェッチが許可された場合 , 通常は待機状態は発生しませ
ん。このようにすでに最適化されているため , プリフェッチと併せてこのようなリ
ニアコードセグメントをキャッシュしても , コードフェッチのパフォーマンスはそ
れ以上向上しないことがあります。このようにするより , プリフェッチでアクセス
遅延を取り除くことのできない , コード内の分岐の状況を改善するほうが効果的で
す。FPMC を "1" に設定した場合は , キャッシュアルゴリズムにより , プリフェッチ
ミス状況 ( 予測アドレスが一致しない ) が原因で待機状況を引き起こしていたこれ
らの FLASH アクセスのみが格納されます。
このアルゴリズムにより , 限られた量のキャッシュエントリをより効率的に利用す
ることができます。通常は , 半分のキャッシュ容量で同じパフォーマンスを達成で
きます。つまり , キャッシュの効率は , キャッシュ容量を 2 倍にした場合と同じに
なります。
PFMC アルゴリズムの効率は , アプリケーションの構造によって異なります。
[bit3] LOCK : キャッシュエントリのグローバルロック
0
キャッシュエントリの書込みが許可されています ( 初期値 ) 。
1
キャッシュエントリの書込みは禁止されており , キャッシュの内容はロッ
クされています。
このビットはリセット中にクリアされます。初期値は , キャッシュエントリが書込
み可能です。
LOCK ビットを設定した場合 , 新しいエントリをキャッシュメモリに書き込むこと
はできません。キャッシュエントリの古い内容はメモリ内に保持されます。すべて
のキャッシュエントリに対して 1 つのグローバルロック機能しかありません。
212
第 8 章 メモリコントローラ
[bit2] ENAB : 命令キャッシュ許可
0
命令キャッシュは禁止されています ( 初期値 ) 。
1
命令キャッシュを許可します。
このビットはリセット後にクリアされます。初期値は , 命令キャッシュが禁止され
ています。
ENAB ビットを設定した場合 , 命令キャッシュは ON になります。命令キャッシュ
は , FLASH アクセス専用です。
キャッシュは , プリフェッチバッファと同様に , プリフェッチアルゴリズムで使用
されます。このため , キャッシュが禁止になっていても , バッファのない形式でプ
リフェッチを使用できます。
FLASH アクセスは , キャッシュヒットやキャッシュミスの評価とは関係なく , パラ
レルで開始されます。
( キャッシュが禁止になっている場合 , マッピングされたアクセス先メモリが
キャッシュエントリおよび TAG RAM 内容になることがあります。この機能は , こ
のバージョンのインタフェースでは無効になっています。TAGE ビットの説明を参
照してください。)
[bit1, bit0] SZ1, SZ0 : キャッシュ容量構成
00
0K バイト - キャッシュ禁止
01
4K バイト (1024 エントリ )
10
8K バイト (2048 エントリ )
11
16K バイト (4096 エントリ ) ( 初期値 )
リセット後 , キャッシュ容量は "11B" に設定されます。
<注意事項>
• キャッシュエントリの数によって , デバイス起動時の TAG 初期化時間が決まります。
上記の FLUSH ビットの説明を参照してください。
• FLASH キャッシュを使用前に , 容量構成を 8K バイトに設定してください。
• キャッシュ容量構成 (FCHCR.SZ1, SZ0) および FLUSH を同時に設定することはでき
ません ( 同じ書込みアクセス ) 。必ず , 最初に容量構成を設定してからキャッシュをフ
ラッシュしてください。
• MB91F467R には 8K バイトのキャッシュが内蔵されていますので , FCHCR レジスタ
に 0x02 を設定後 , 0xA6 を設定してください。
213
第 8 章 メモリコントローラ
■ FLASH メモリウェイトタイミングレジスタ (FMWT)
待ちタイミングレジスタバイト 0 bit 31
アドレス : 7004H
30
29
28
27
26
WTP1 WTP0 WEXH1 WEXH0 WTC3 WTC2
25
24
WTC1
WTC0
FMWT
読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
デフォルト値 →
22
待ちタイミングレジスタバイト 1 bit 23
アドレス : 7005H
(FRAM) ATD2
読出し / 書込み →
デフォルト値 →
読出し / 書込み →
デフォルト値 →
待ちタイミングレジスタバイト 3 bit
アドレス : 7007H
読出し / 書込み →
デフォルト値 →
20
19
18
17
16
ATD1
ATD0
EQ3
EQ2
EQ1
EQ0
FMWT1
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(1) (1/0) (1)
(1)
(1)
(1/0) (1)
待ちタイミングレジスタバイト 2 bit 15
アドレス : 7006H
21
11
10
9
8
−
ALEH2 ALEH1 ALEH0
14
13
12
−
−
−
−
(-)
(-)
(R/W) (R/W) (R/W)
(1)
(0)
(1)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
7
6
5
4
3
2
1
0
−
−
−
−
−
PS2
PS1
PS0
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
FMWT2
FMPS
(R/W) (R/W) (R/W)
(0)
(0)
(0)
<注意事項>
• ATD2 ∼ ATD0 設定は , MB91461 では 7H, MB91F467R では 5H です。
• EQ3 ∼ EQ0 設定は , MB91461 では FH, MB91F467R では DH です。
• FMWT2 は , MB91461 では使用できません。
[bit31, bit30] WTP1, WTP0 : ページアクセスでの FLASH のウェイトサイクル
リセット後 , WTP は "11B" に設定されます。
WTP は , ページモード FLASH でページヒットが発生した場合の FLASH アクセス
の待ちタイミングを制御します。WTP 構成は , クロックサイクル単位となります。
WTP の値は , FLASH メモリのページ内アクセス時間 ( サイクルタイム ) ( クロック
サイクル単位 ) から 1 を引いた値に設定してください。
ページサイズ PS2 ∼ PS0 が 0 以外の値に設定されている場合は , この設定が使用さ
れます。
[bit29, bit28] WEXH1, WEXH0 : 最小 WEX ハイタイミング要件
リセット後 , WEXH は "11B" に設定されます。初期値では , WEX の最小ハイタイム
対象期間は 5 サイクルです。
これ以外の値を設定すると , WEX ハイタイムは 2 固定サイクル+ WEXH に短縮さ
れます。
214
第 8 章 メモリコントローラ
[bit27 ∼ bit24] WTC3 ∼ WTC0 : FLASH メモリアクセスのウェイトサイクル
リセット後 , WTC は "1111B" に設定されます。
WTC は , FLASH アクセスの待ちタイミングを制御します。WTC 構成は , クロック
サイクル単位となります。WTC の値は , FLASH メモリのアクセス時間 ( サイクル
タイム ) ( クロックサイクル単位 ) から 1 を引いた値に設定してください。
[bit23] FRAM : F-bus 汎用 RAM メモリアクセスのウェイトサイクル
リセット後 , FRAM は "0" に設定されます。
これは予約ビットです。F-bus RAM に対する設定はできません。F-bus RAM へのア
クセスは 0 wait です。
[bit22 ∼ bit20] ATD2 ∼ ATD0 : FLASH メモリアクセスの ATDIN 信号の対象期間
MB91461: リセット後 , ATD は "111B" に設定されます。ATD の初期値は 4 クロック
サイクルです。
ATD の初期値は 3 クロッ
MB91F467R: リセット後 , ATD は "101B" に設定されます。
クサイクルです。
ATD は , FLASH アクセスの ATDIN 信号のタイミングを制御します。ATD 構成は ,
半クロックサイクル単位となります。効率的な ATDIN の高対象期間は , tATDIN =
(ATD + 1) × 0.5 クロックサイクルです。
[bit19 ∼ bit16] EQ3 ∼ EQ0 : FLASH メモリアクセスの EQIN 信号の対象期間
MB91461: リセット後 , EQ は "1111B" に設定されます。EQ の初期値は 8 クロックサ
イクルです。
MB91F467R: リセット後 , EQ は "1101B" に設定されます。EQ の初期値は 7 クロッ
クサイクルです。
EQ は , FLASH アクセスの EQIN 信号のタイミングを制御します。EQ 構成は , 半ク
ロックサイクル単位となります。効率的な EQIN の高対象期間は , tEQIN = (EQ + 1) ×
0.5 クロックサイクルです。
[bit14 ∼ bit12] ALEH2 ∼ ALEH0 : FLASH メモリアクセスの ALEH 時間の対象期間
MB91461
: 使用不可
MB91F467R
: リセット後 , ALEH は "101B" に設定されます。ALEH の初
期値は 3 クロックサイクルです。
ALEH は , FLASH アクセスでの EQIN 立上りエッジに対する ATDIN 立下りエッジ
のタイミングを制御します。
EQ 構成は , 半クロックサイクル単位となります。効率的な ALEH の対象期間は ,
tALEH = (ALEH + 1) × 0.5 クロックサイクルです。
215
第 8 章 メモリコントローラ
<注意事項>
ATD2 ∼ ATD0 に書き込むと , ALEH2 ∼ ALEH0 は自動的に ATD2 ∼ ATD0 と同じ値に更
新されます。通常 , ALEH 時間は ATD 時間と同じであるため , 特に ALEH2 ∼ ALEH0 を
更新する理由はありません。
ただし , 以下の方法で ATD2 ∼ ATD0 とは異なる値で ALEH2 ∼ ALEH0 をプログラミン
グすることも可能です。
• ATD2 ∼ ATD0 に書き込んだ後で ALEH2 ∼ ALEH0 に別の値を書き込む。または ,
• FMCR:LOCK ビットを設定して自動更新を禁止する。
● FLASH アクセスサイクル波形
図 8.3-1 FLASH アクセスサイクルのタイミング
flash_start
FMA
ATDIN
EQIN
flash_wait
DO
tATD
tALEH
tEQ
tWTC
tRC
図 8.3-1 に , FLASH アクセスサイクルの例を示します。FMWT レジスタでは , FLASH
タイミング tATD, tALEH, tEQ, tWTC の 3 つの部分をそれぞれ個別に構成できます。以
下の表に , この例の構成値を示します。
216
シンボル
長さ
設定
tATD
1.5 サイクル
ATD = 010B
tALEH
1.5 サイクル
ALEH = 010B
tEQ
3 サイクル
EQ = 0101B
tWTC
6 サイクル
WTC = 0110B
第 8 章 メモリコントローラ
この結果 , FLASH アクセスサイクル (tRC) 時間は 7 サイクル (WTC + 1) となります。
[bit2 ∼ bit0] PS2 ∼ PS0 : ページモード FLASH のページサイズ定義
リセット後 , PS は "000B" に設定されます。初期値は , ページモード FLASH が禁止
されています。
この設定により , ページサイズは 2PS ( バイト ) に定義されます。
(MB91F467R に内蔵のフラッシュメモリでは , ページモードはサポートされていま
せん。)
■ FLASH メモリアドレスチェックレジスタ (FMAC)
FMAC
[R]
アドレス
+0
+1
+2
+3
7008H
--------
-0000000
00000000
00000000
このレジスタは , テスト用として FLASH アクセスサイクルの先頭のアドレスをキャプ
チャします。
このレジスタは読出し専用です。
■ 非キャッシュ領域定義
非キャッシュ領域定義レジスタのFCHA0およびFCHA1は, キャッシュされないFLASH
領域を定義します。未使用のビットは , "0" として読み出されます。以下の表に , レジ
スタの初期値を定義します。FCHA0 = 0 により定義されたポイントおよびマスクビッ
ト OFF は FLASH 領域の外部に置かれるため , 最初は FLASH 領域全体がキャッシュさ
れます。
FCHA0
[R/W]
アドレス
+0
+1
+2
+3
700CH
--------
-0000000
00000000
00000000
FCHA1
[R/W]
アドレス
+0
+1
+2
+3
7010H
--------
-0000000
00000000
00000000
FCHCR_REN ビットがクリアされた場合 , アドレス範囲は FCHA0 で指定されたアドレ
スで定義され , FCHA1 で "1" に設定されているビットでマスクされます。
217
第 8 章 メモリコントローラ
例 1 ( ポイントおよびマスクの範囲定義 ) :
- FCHCR_REN = 0
- FCHA0 = 000F:A300
- FCHA1 = 0000:FFFF
非キャッシュ領域は , 000F:0000H ∼ 000F:FFFFH の範囲で定義されます。
例 2 ( ポイントツーポイントの範囲定義 )
- FCHCR_REN = 1
- FCHA0 = 000F:A300
- FCHA1 = 000F:F7FF
非キャッシュ領域は , 000F:A300H ∼ 000F:F7FFH の範囲で定義されます。
218
第 8 章 メモリコントローラ
8.4
FLASH アクセスタイミング設定
フラッシュメモリの読出し / 書込みのタイミング設定について説明します。
以下に示す設定は , 現時点ではシミュレーション結果のみに基づいたものであり , デバ
イス評価後に変更される可能性があります。ご使用の製品についてこれらの設定が妥当
かどうか調べるには , 富士通にお問い合わせください。
■ 読出しタイミング設定
表 8.4-1 フラッシュメモリの読出しタイミング設定
ATD
ALEH
EQ
WEXH
WTC
2MHz
000B
000B
0000B
−
0001B
32MHz, 48MHz
000B
000B
0001B
−
0010B
64MHz, 80MHz, 96MHz, 100MHz
001B
001B
0011B
−
0100B
コアのクロック CLKB
<注意事項>
• これらの設定は , フラッシュメモリ同期読出しモード用です (FMCS:ASYNC = 0) 。
• ALEH 設定は ATD 設定と同じなので , FMWT:ATD2 ∼ ATD0 レジスタに新しい設定値
が適用されると ALEH 設定も自動的に更新されます。
219
第 8 章 メモリコントローラ
■ 書込みタイミング設定
表 8.4-2 フラッシュメモリの書込みタイミング設定
ATD
EQ
ALEH
WEXH
WTC
2MHz
000B
−
−
00B
0011B
32MHz
001B
−
−
00B
0100B
48MHz
001B
−
−
00B
0101B
64MHz
001B
−
−
00B
0110B
80MHz, 96MHz
001B
−
−
00B
0111B
100MHz
001B
−
−
01B
1000B
コアのクロック CLKB
<注意事項>
• これらの設定は , フラッシュメモリ同期書込みモード用です (FMCS:ASYNC = 0) 。
• フラッシュメモリ同期書込みモードでは , 3 ウェイトサイクル未満に設定しないでくだ
さい。
• フラッシュメモリへの書込みは , 16 ビットアクセスモード (FMCS:RW16 = 1 および
FMCR:RD64 = 0) または 32 ビットアクセスモード (FMCS:RW16 = 0 および
FMCR:RD64 = 0) でのみ可能です。
220
第9章
外部バスインタフェース
外部バスインタフェースの各機能について説明し
ます。
9.1 外部バスインタフェースの特長
9.2 外部バスインタフェースのレジスタ
9.3 チップセレクト領域
9.4 エンディアンとバスアクセス
9.5 通常バスインタフェース
9.6 アドレス / データマルチプレックスインタフェース
9.7 DMA アクセス
9.8 レジスタ設定手順
221
第 9 章 外部バスインタフェース
9.1
外部バスインタフェースの特長
外部バスインタフェースの特長について説明します。
■ 外部バスインタフェースの特長
• 最大 24 ビット長のアドレス出力
• 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン
グを混在制御可能
- 非同期 SRAM, 非同期 ROM/ フラッシュメモリ
( 複数ライトストローブ方式 )
- アドレス / データマルチプレックスバス (8 ビット /16 ビット幅のみ )
• 独立した 5 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
- CS0 ∼ CS4 は , 64K バイト∼ 2048M バイト単位で , "00040000H" ∼ "00FFFFFFH"
の空間に設定可能
- 領域サイズによりバウンダリの制限あり
• チップセレクト領域ごとに以下の機能を独立に設定可能
- チップセレクト領域の許可・禁止
( 禁止された領域はアクセスを行いません )
- 各種メモリ対応などのアクセスタイミングタイプ設定
- 詳細アクセスタイミング設定
( ウェイトサイクルなどのアクセスタイプ個別設定 )
- データバス幅設定 (8 ビット /16 ビット )
• アクセスタイミングタイプごとに異なる詳細なタイミングを設定可能
- 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 7 サイクルまで設定可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能
222
第 9 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 9.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 9.1-1 外部バスインタフェースのブロックダイヤグラム
内部
内部
アドレスバス データバス
32
32
/
/
A-OUT
MUX
ライト
バッファ
スイッチ
リード
バッファ
スイッチ
外部
データバス
データブロック
アドレスブロック
+1または+2
外部
アドレスバス
アドレス
バッファ
コンパ
レータ
ASR
ASZ
外部端子制御部
全ブロック制御
レジスタ
&
制御
CS0X~CS4X
ASX, RDX
WR0X, WR1X
BRQ
BGRNTX
RDY
SYSCLK
223
第 9 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です。
〔通常バスインタフェース〕
A23 ∼ A00, D31 ∼ D16 (AD15 ∼ AD00)
CS0X, CS1X, CS2X, CS3X, CS4X
ASX, SYSCLK, RDX, WR0X, WR1X, WEX
RDY, BRQ, BGRNTX, MCLKE, MCLKI, MCLKO, BAAX
<注意事項>
MB91F467R で外部バスを使用する場合で SDRAM を使用しない場合は , FPR10_5 を "0"
に設定してください。これを "1" に設定した場合は , MCLKI と MCLKO を接続する必要が
あります。MB91461 ではこの必要はありません。また , MB91461 には MCLKE, MCLKI,
MCLKO, BAAX はありません。
■ 外部バスインタフェースのレジスタ一覧
図 9.1-2 に , 外部バスインタフェースのレジスタ構成を示します。
図 9.1-2 外部バスインタフェースのレジスタ構成
アドレス
bit 31
24 23
16 15
8 7
000640H
ASR0
ACR0
000644H
ASR1
ACR1
000648H
ASR2
ACR2
00064CH
ASR3
ACR3
000650H
ASR4
ACR4
000660H
AWR0
AWR1
000664H
AWR2
AWR3
000668H
AWR4
予約
0
000678H
IOWR0
IOWR1
IOWR2
予約
000680H
CSER
CHER
予約
TCR
0007FCH
予約
MODR*
予約
予約
予約 : 予約レジスタです。書き換える場合には , 必ず "0" を設定してください。
* : MODR はユーザプログラムからはアクセスできません。
224
第 9 章 外部バスインタフェース
9.2
外部バスインタフェースのレジスタ
外部バスインタフェースのレジスタについて説明します。
■ 外部バスインタフェースのレジスタ概要
外部バスインタフェースには , 以下の 7 種類のレジスタがあります。
• 領域選択レジスタ (ASR0 ∼ ASR4)
• 領域構成レジスタ (ACR0 ∼ ACR4)
• 領域ウェイトレジスタ (AWR0 ∼ AWR4)
• DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
• チップセレクト領域許可レジスタ (CSER)
• キャッシュイネーブルレジスタ (CHER)
• 端子 / タイミングコントロールレジスタ (TCR)
225
第 9 章 外部バスインタフェース
9.2.1
領域選択レジスタ (ASR0 ∼ ASR4)
領域選択レジスタの詳細を説明します。
■ 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成
図 9.2-1 に , 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成を示します。
図 9.2-1 領域選択レジスタ (ASR0 ∼ ASR4) のレジスタ構成
ASR0
000640H
bit15
A31
...
...
8
A24
7
A23
6
A22
...
...
1
A17
0
A16
初期値
INIT 時 RST 時
0000H
0000H
アクセス
ASR1
000644H
bit15
A31
...
...
8
A24
7
A23
6
A22
...
1
A17
0
A16
XXXXH
00XXH
R/W
ASR2
000648H
bit15
A31
...
...
8
A24
7
A23
6
A22
...
1
A17
0
A16
XXXXH
XXXXH
R/W
ASR3
00064CH
bit15
A31
...
...
8
A24
7
A23
6
A22
...
1
A17
0
A16
XXXXH
00XXH
R/W
ASR4
000650H
bit15
A31
...
...
8
A24
7
A23
6
A22
...
1
A17
0
A16
XXXXH
00XXH
R/W
R/W
[bit15 ∼ bit0] A31 ∼ A16 : 領域開始アドレス
ASR0 ∼ ASR4 ( 領域選択レジスタ 0 ∼ 4) は , CS0X ∼ CS4X の各チップセレクト領
域の開始アドレスを指定します。
開始アドレスは , A31 ∼ A16 の上位 16 ビットを設定できます。各チップセレクト
領域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR4 レジスタ
の ASZ3 ∼ ASZ0 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR4 レジスタの ASZ3 ∼ ASZ0
ビットの設定に従います。例えば , ASZ3 ∼ ASZ0 ビットにより , 1M バイトの領域
を設定した場合は , ASR0 ∼ ASR4 レジスタの下位 4 ビットは無視され , A23 ∼ A20
ビットのみ意味があります。
ASR0 レジスタは , INIT および RST により , "0000H" に初期化されます。ASR1 ∼
ASR4 は , INIT および RST によっては初期化されずに不定となります。LSI の動作
開始後 , CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応す
る ASR レジスタを設定してください。
226
第 9 章 外部バスインタフェース
9.2.2
領域構成レジスタ (ACR0 ∼ ACR4)
領域構成レジスタの詳細を説明します。
■ 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成
図 9.2-2 に , 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成を示します。
図 9.2-2 領域構成レジスタ (ACR0 ∼ ACR3) のレジスタ構成
14
13
12
11
10
9
8
ACR0 上位 bit15
000642H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0
初期値
INIT 時
RST 時
1111**00B
1111**00B
6
5
ACR0 下位 bit7
000643H SREN PFEN WREN
00000000B
4
0
3
2
1
0
TYP3 TYP2 TYP1 TYP0
00000000B
アクセス
R/W
R/W
14
13
12
11
10
9
8
ACR1 上位 bit15
000646H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
6
5
4
3
2
1
0
ACR1 下位 bit7
000647H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
14
13
12
11
10
9
8
ACR2 上位 bit15
00064AH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
6
5
4
3
2
1
0
ACR2 下位 bit7
00064BH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
14
13
12
11
10
9
8
ACR3 上位 bit15
00064EH ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
6
5
4
3
2
1
0
ACR3 下位 bit7
00064FH SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
14
13
12
11
10
9
8
ACR4 上位 bit15
000652H ASZ3 ASZ2 ASZ1 ASZ0 DBW1 DBW0 BST1 BST0 XXXXXXXXB XXXXXXXXB
R/W
6
5
4
3
2
1
0
ACR4 下位 bit7
000653H SREN PFEN WREN LEND TYP3 TYP2 TYP1 TYP0 XXXXXXXXB XXXXXXXXB
R/W
ACR0 ∼ ACR4 (Area Configuration Register 0 ∼ 4) は , 各チップセレクト領域の機能を設
定します。
ACR0 の DBW1, DBW0 ビットの初期値はモードベクタの WTH ビットの値が書き込ま
れます。
227
第 9 章 外部バスインタフェース
[bit15 ∼ bit12] ASZ3 ∼ ASZ0 : Area SiZe ビット 3 ∼ 0
表 9.2-1 に , Area Size ビットの各チップセレクト領域のサイズを示します。
表 9.2-1 Area Size ビットの各チップセレクト領域のサイズ
ASZ3 ASZ2 ASZ1 ASZ0
各チップセレクト領域のサイズ
0
0
0
0
64K バイト (00010000H バイト , ASR A31 ∼ A16 ビット指定が有効 )
0
0
0
1
128K バイト (00020000H バイト , ASR A31 ∼ A17 ビット指定が有効 )
0
0
1
0
256K バイト (00040000H バイト , ASR A31 ∼ A18 ビット指定が有効 )
0
0
1
1
512K バイト (00080000H バイト , ASR A31 ∼ A19 ビット指定が有効 )
0
1
0
0
1M バイト (00100000H バイト , ASR A31 ∼ A20 ビット指定が有効 )
0
1
0
1
2M バイト (00200000H バイト , ASR A31 ∼ A21 ビット指定が有効 )
0
1
1
0
4M バイト (00400000H バイト , ASR A31 ∼ A22 ビット指定が有効 )
0
1
1
1
8M バイト (00800000H バイト , ASR A31 ∼ A23 ビット指定が有効 )
1
0
0
0
16M バイト (01000000H バイト , ASR A31 ∼ A24 ビット指定が有効 )
1
0
0
1
32M バイト (02000000H バイト , ASR A31 ∼ A25 ビット指定が有効 )
1
0
1
0
64M バイト (04000000H バイト , ASR A31 ∼ A26 ビット指定が有効 )
1
0
1
1
128M バイト (08000000H バイト , ASR A31 ∼ A27 ビット指定が有効 )
1
1
0
0
256M バイト (10000000H バイト , ASR A31 ∼ A28 ビット指定が有効 )
1
1
0
1
512M バイト (20000000H バイト , ASR A31 ∼ A29 ビット指定が有効 )
1
1
1
0
1024M バイト (40000000H バイト , ASR A31 ∼ A30 ビット指定が有効 )
1
1
1
1
2048M バイト (80000000H バイト , ASR A31 ビット指定が有効 )
ASZ3 ∼ ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各
領域のサイズを設定します。そのため , ASR には比較されないビットが存在します。
ACR0 の ASZ3 ∼ ASZ0 ビットは RST により "1111B" に初期化されますが , この設
定にかかわらず RST 直後の CS0 領域は特別に "00000000H" から "FFFFFFFFH" ( 全
領域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除さ
れて上記の表に従ったサイズに設定されます。
228
第 9 章 外部バスインタフェース
[bit11, bit10] DBW1, DBW0 : Data Bus Width1, 0
表 9.2-2 に , DBW ビットの各チップセレクト領域のデータバス幅を示します。
表 9.2-2 DBW ビットの各チップセレクト領域のデータバス幅
DBW1
DBW0
0
0
8 ビット ( バイトアクセス )
0
1
16 ビット ( ハーフワードアクセス )
1
0
予約 設定禁止
1
1
予約 設定禁止
データバス幅
ACR0 の DBW1, DBW0 ビットは , リセットシーケンス中にモードベクタの WTH
ビットの値と同じ値が自動的に書き込まれます。
[bit9, bit8] BST1, BST0 : BurST Size 1, 0
表 9.2-3 に , BST ビットの各チップセレクト領域のバースト長を示します。
表 9.2-3 BST ビットの各チップセレクト領域のバースト長
BST1
BST0
0
0
1 ( シングルアクセス )
0
1
2 バースト
1
0
4 バースト
1
1
8 バースト
最大バースト長
シングルアクセス以外のバースト長が設定された領域は , プリフェッチアクセスま
たはバス幅を超えるサイズのデータの読出しを行った場合のみ , バースト長から決
まるアドレス境界内で連続したバーストアクセスを行います。
バス幅 16 ビット領域の最大バースト長は 2 バースト以下を推奨します。
[bit7] SREN : ShaRed ENable
表 9.2-4 に , SREN ビットの各チップセレクト領域の BRQ/BGRNTX による共有の
許可・禁止を示します。
表 9.2-4 SREN ビットの各チップセレクト領域の BRQ/BGRNTX による共有の
許可・禁止
SREN
共有の許可・禁止
0
BRQ/BGRNTX による共有を禁止 (CSnX は Hi-Z になりません )
1
BRQ/BGRNTX による共有を許可 (CSnX は Hi-Z になります )
共有が許可された領域は , バス開放中 (BGRNTX = "L" 出力中 ) は CSnX が Hi-Z に
なります。共有が禁止された領域は , バス開放中 (BGRNTX = "L" 出力中 ) も CSnX
が Hi-Z になりません。CSER により許可されたすべての領域の共有が許可されてい
る場合のみ , アクセスストローブ出力 (RDX, WR1X, WR0X) は Hi-Z になります。
229
第 9 章 外部バスインタフェース
[bit6] PFEN : PreFetch ENable
表 9.2-5 に , PFEN ビットの各チップセレクト領域のプリフェッチの許可・禁止を示
します。
表 9.2-5 PFEN ビットの各チップセレクト領域のプリフェッチの許可・禁止
PFEN
プリフェッチ許可・禁止
0
プリフェッチ禁止
1
プリフェッチ許可
プリフェッチが許可された領域に対しての読出しを行うと , それに続くアドレスに
対して先読みを行い , 内蔵プリフェッチバッファに蓄積します。蓄積されたアドレ
スに対して内部バスからのアクセスがあると , 外部アクセスを行わずにプリフェッ
チバッファに先読みされたデータを返します。
[bit5] WREN : WRite ENable
表 9.2-6 に , WREN ビットの各チップセレクト領域の書込みの許可・禁止を示します。
表 9.2-6 WREN ビットの各チップセレクト領域の書込みの許可・禁止
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。
データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[bit4] LEND : Little ENDian select
表 9.2-7 に, LENDビットの各チップセレクト領域のバイトオーダリングを示します。
表 9.2-7 LEND ビットの各チップセレクト領域のバイトオーダリング
LEND
バイトオーダリング
0
ビッグエンディアン
1
リトルエンディアン
ACR0のLENDビットには必ず"0"が設定され, 常にビッグエンディアンとなります。
230
第 9 章 外部バスインタフェース
[bit3 ∼ bit0] TYP3 ∼ TYP0 : TYPe select
表 9.2-8 に , TYP ビットの各チップセレクト領域のアクセスタイプを示します。
表 9.2-8 TYP ビットの各チップセレクト領域のアクセスタイプ
TYP3
TYP2
TYP1
TYP0
0
X
X
通常アクセス ( 非同期 SRAM, I/O, ROM/Flash)
1
X
X
アドレスデータマルチプレックスアクセス
(8/16 ビットバス幅限定 )
X
0
RDY 端子による WAIT 挿入無効
X
1
RDY 端子による WAIT 挿入有効
0
X
WR0X, WR1X 端子をライトストローブとして使用
1
X
設定禁止
0
設定禁止
1
設定禁止
0
X
0
1
0
アクセスタイプ
0
1
0
設定禁止
0
1
1
設定禁止
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
マスク領域設定
( アクセスタイプは重複した領域のものになります ) *
各ビットは , 組み合せて設定します。
* : CS 領域マスク設定機能
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した
領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP3 ∼ TYP0 = 1111B を設
定し , マスク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定を
禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
- マスク設定領域に対応する CSX はアサートされません。
- ベース設定領域に対応する CSX がアサートされます。
- ACR の以下の設定はマスク設定領域側のものが有効になります。
bit11, bit10 (DBW1, DBW0) : バス幅設定
bit9, bit8 (BST1, BST0)
: バースト長設定
bit7 (SREN)
: 共有許可設定
bit6 (PFEN)
: プリフェッチ許可設定
bit5 (WREN)
: ライト許可設定 ( この設定のみ , ベース設定領域と
異なる設定を禁止します。)
bit4 (LEND)
: リトルエンディアン設定
231
第 9 章 外部バスインタフェース
- ACR の以下の設定はベース設定領域側のものが有効になります。
bit3, bit0 (TYP3, TYP0) : アクセスタイプ設定
- AWR の設定はマスク設定領域側のものが有効になります。
- CHER の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定
できます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけ
ません。また , マスク設定領域を複数重複させないでください。ASR および
ACR:ASZ1, ASZ0 ビットの設定には十分注意してください。
<注意事項>
[bit3 ∼ bit0] TYP3 ∼ TYP0 についての制限事項は以下のとおりです。
• ライト許可設定をマスクで実現することはできません。
• ライト許可設定は , ベースとなる CS 領域とマスク設定領域とで同じ設定としてくださ
い。
• マスク設定領域でライト禁止を設定するとその領域はマスクされずにベースCS領域と
して動作します。
• ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると ,
ベース設定のない領域となり誤動作します。
232
第 9 章 外部バスインタフェース
9.2.3
領域ウェイトレジスタ (AWR0 ∼ AWR4)
領域ウェイトレジスタの詳細を説明します。
■ 領域ウェイトレジスタ (AWR0 ∼ AWR4) のレジスタ構成
図 9.2-3 に , AWR0 ∼ AWR3 のレジスタ構成を示します。
図 9.2-3 AWR0 ∼ AWR3 のレジスタ構成
AWR0 上位 bit31
000660H
W15
AWR0 下位 bit23
000661H
W07
AWR1 上位 bit15
30
29
28
27
26
25
24
W14
W13
W12
W11
W10
W09
W08
22
21
20
19
18
17
16
W06
W05
W04
W03
W02
W01
W00
14
13
12
11
10
9
8
000662H
W15
W14
W13
W12
W11
W10
W09
AWR1 下位
bit7
6
5
4
3
2
1
000663H
W07
W06
W05
W04
W03
W02
W01
30
29
28
27
26
25
W14
W13
W12
W11
W10
W09
22
21
20
19
18
17
W06
W05
W04
W03
W02
W01
14
13
12
11
10
9
AWR2 上位 bit31
000664H
W15
AWR2 下位 bit23
000665H
W07
AWR3 上位 bit15
000666H
W15
W14
W13
W12
W11
W10
W09
AWR3 下位
bit7
6
5
4
3
2
1
000667H
W07
W06
W05
W04
W03
W02
W01
14
13
12
11
10
9
AWR4 上位 bit15
000668H
W15
W14
W13
W12
W11
W10
W09
AWR4 下位
bit7
6
5
4
3
2
1
000669H
W07
W06
W05
W04
W03
W02
W01
初期値
INIT 時
RST 時
アクセス
01111111B
01111111B
R/W
11111011B
11111011B
R/W
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
24
W08 XXXXXXXXB XXXXXXXXB
R/W
16
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
8
W08 XXXXXXXXB XXXXXXXXB
R/W
0
W00 XXXXXXXXB XXXXXXXXB
R/W
AWR0 ∼ AWR4 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR4 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各
ビットの働きが変わります。
233
第 9 章 外部バスインタフェース
■ 通常アクセスおよびアドレス / データマルチプレックスアクセス
ACR0 ∼ ACR4 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアク
セス動作を行う領域となります。
表 9.2-9 通常アクセスおよびアドレス / データマルチプレックスアクセス
TYP3
TYP2
TYP1
TYP0
0
0
X
X
通常アクセス ( 非同期 SRAM, I/O, ROM/Flash)
0
1
X
X
アドレスデータマルチプレックスアクセス
(8/16 ビットバス幅限定 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての AWR0 ∼
AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各領域
を CSER レジスタによって有効にする前に設定を行ってください。
[bit15 ∼ bit12] W15 ∼ W12 : ファーストアクセスウェイトサイクル
(First Access Wait Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設
定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
表 9.2-10 各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイク
ル数
W15
W14
W13
W12
0
0
0
0
自動ウェイトサイクル 0
0
0
0
1
自動ウェイトサイクル 1
…
1
234
1
ファーストアクセスウェイトサイクル
…
1
1
自動ウェイトサイクル 15
第 9 章 外部バスインタフェース
[bit11 ∼ bit8] W11 ∼ W08 : ページ内アクセスウェイトサイクル
(Inpage Access Wait Cycle)
バーストアクセス時 , ページ内アクセスのオートウェイトサイクル数を設定しま
す。バーストアクセスサイクル以外では意味がありません。
表 9.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)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場
合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子
は Hi-Z 状態を維持します。
リード後にライトが続く場合 , もしくはリードの後に別のチップセレクト領域への
アクセスが発生した場合に , 指定したアイドルサイクルを挿入します。
W07
W06
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
リード→ライトアイドルサイクル
235
第 9 章 外部バスインタフェース
[bit5, bit4] W05, W04 : ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ
クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルが挿入されます。
W05
W04
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
ライトリカバリサイクル
[bit3] W03 : WR1X, WR0X 出力タイミング選択
WR1X, WR0X 出力タイミング設定は , ライトストローブ出力を , 非同期ストローブ
として使用するか , 同期ライトイネーブルとして使用するかを選択します。非同期
ストローブとすることにより通常メモリ I/O に対応し , 同期イネーブルとすること
によりクロック同期のメモリ I/O (ASIC 内蔵メモリなど ) に対応します。
W03
WR1X, WR0X 出力タイミング選択
0
SYSCLK 同期ライトイネーブル出力 (ASX = "L" から有効 )
1
非同期ライトストローブ出力 ( 通常動作 )
同期ライトイネーブルとした場合 (AWR:W03 ビットが "0") , 以下のような動作とな
ります。
• 同期ライトイネーブル出力のタイミングは , 外部メモリアクセスクロックの
SYSCLK 出力の立上りエッジで取り込まれることを前提としたタイミング
になります。非同期ストローブ出力とはタイミングが異なります。
• WR1X, WR0X 端子出力は , ASX 端子出力がアサートされているタイミングから
同期ライトイネーブル出力をアサートします。外部バスへのライトが行われる場
合 , 同期ライトイネーブル出力は "L" を出力します。外部バスからのリードが行
われる場合 , 同期ライトイネーブル出力は "H" を出力します。
• 同期ライトイネーブル出力をアサートした次のクロックサイクルにて, 外部デー
タ出力端子よりライトデータを出力します。
• リードストローブ出力 (RDX) は , WR1X, WR0X 出力タイミング設定の内容にか
かわらず , 非同期リードストローブとして機能します。データの入出力方向制御
にそのまま用いてください。
• 同期ライトイネーブル出力を使用する場合 , 以下の制限があります。
• 以下の追加ウェイト設定はしないでください。
- CSX → RDX/WR1X, WR0X セットアップ設定 (AWR:W01 ビットは常に "0" を
236
第 9 章 外部バスインタフェース
書いてください )
- ファーストアクセスウェイトサイクル設定 (AWR:W15 ∼ W12 ビットには
常に "0000 B " を書いてください )
• 以下のアクセスタイプ設定 (ACR レジスタ中の TYP3 ∼ TYP0 ビット (bit3 ∼ bit0) )
は設定しないでください。
- WR1X, WR0X をライトストローブとして使用する設定 (ACR:TYP1 ビットには
常に "0" を書いてください )
- アドレス / データマルチプレックスバス設定 (ACR:TYP2 ビットには常に "0" を
書いてください )
- RDY 入力有効設定 (ACR:TYP0 ビットには常に "0" を書いてください )
• 同期ライトイネーブル出力の場合 , バースト長には常に "1" (ACR:BST1, BST0
ビットに "00B") を設定してください。
[bit2] W02 : アドレス → CSX 遅延 (Address → CSX Delay)
アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット
アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際
にも CSX のエッジを必要とする場合などに設定します。
アドレスおよび ASX 出力から CS0X ∼ CS4X 出力の遅延を設定します。
W02
アドレス → CSX 遅延
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , ASX のアサートと同じタイミングで CS0X ∼
CS4X がアサート開始されます。このとき , 同じチップセレクト領域に連続したアクセス
を実行した場合 , 両アクセスの間も CS0X ∼ CS4X はアサートを継続したまま変化しない
ことがあります。
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立
上りから CS0X ∼ CS4X がアサート開始されます。このとき , 同じチップセレクト
領域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0X ∼ CS4X ネ
ゲートタイミングが発生します。
CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートからリード / ライトス
トローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します
(W01 の CSX → RDX/WR1X, WR0X セットアップ設定と同等の動作となります ) 。
237
第 9 章 外部バスインタフェース
[bit1] W01 : CSX → RDX/WR1X, WR0X セットアップ延長サイクル (CSX → RDX/
WR1X, WR0X setup)
CSX → RDX/WR1X, WR0X セットアップ延長サイクルは , CSX アサート後 , リード /
ライトストローブをアサートするまでの期間を延長する場合に設定します。CSX ア
サート後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセット
アップ延長サイクルを挿入します。
W01
CSX → RDX/WR1X, WR0X セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定して 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メモ
リクロック SYSCLK 出力の立上りから RDX/WR0X, WR1X が出力されます。WR0X,
WR1X は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定して 1 サイクルを選択した場合は , RDX/WR0X, WR1X とも , 必ず 1 サイ
クル以上遅れて出力されます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ
プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CSX 遅延
を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この
セットアップ延長サイクルが有効となります。
W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず , 常にこの
セットアップサイクルが有効となります。
[bit0] W00 : RDX/WR1X, WR0X → CSX ホールド延長サイクル (RDX/WR1X, WR0X →
CSX Hold Cycle)
RDX/WR1X, WR0X → CSX ホールド延長サイクルは , リード / ライトストローブネ
ゲート後 , CSX ネゲートまでの期間を延長する場合に設定します。リード / ライト
ストローブネゲート後 , CSX をネゲートする前に , 1 サイクルのホールド延長サイ
クルを挿入します。
W00
RDX/WR1X, WR0X → CSX ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定して 0 サイクルを選択した場合は , RDX/WR0X, WR1X がネゲートされた後
の外部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延の経過後に
CS0X ∼ CS3X がネゲートされます。
"1" を設定して 1 サイクルを選択した場合は , CS0X ∼ CS4X は 1 サイクル遅れてネ
ゲートされます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ
イクルが必須となる場合 , W02 ビットを有効にしてアドレス → CSX 遅延を挿入す
ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド
延長サイクルが有効となります。
238
第 9 章 外部バスインタフェース
9.2.4
DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2)
DMAC 用 I/O ウェイトレジスタの詳細を説明します。
■ DMAC 用 I/O ウェイトレジスタ (IOWR0 ∼ IOWR2) のレジスタ構成
図 9.2-4 に , IOWR0 ∼ IOWR2 のレジスタ構成を示します。
図 9.2-4 IOWR0 ∼ IOWR2 のレジスタ構成
IOWR0 bit
000678H
IOWR1 bit
000679H
IOWR2 bit
00067AH
31
30
29
28
27
RYE0 HLD0 WR01 WR00 IW03
23
22
21
20
14
13
12
25
IW02
IW01
18
17
IW12
IW11
10
9
IW22
IW21
19
RYE1 HLD1 WR11 WR10 IW13
15
26
11
RYE2 HLD2 WR21 WR20 IW23
24
INIT 時
初期値
RST 時
アクセス
IW00 XXXXXXXXB XXXXXXXXB
R/W
16
IW10 XXXXXXXXB XXXXXXXXB
R/W
8
IW20 XXXXXXXXB XXXXXXXXB
R/W
[bit31, bit23, bit15] RYE0, RYE1, RYE2 : RDY 機能設定 (ReadY Enable0, 1, 2)
DMA フライバイアクセス時の ch.0 ∼ ch.2 のチャネルごとの RDYI によるウェイト
制御の設定を行います。
RYEn
RDY 機能設定
0
I/O アクセスに対する RDY 入力は無効となります。
1
I/O アクセスに対する RDY 入力が有効になります。
"1" を設定することにより , 該当するチャネルのフライバイ転送時 , RDYI 端子によ
るウェイト挿入が可能となります。IOWRX, IORDX は RDYI 端子がイネーブルにな
るまで延長されます。また , メモリ側の RDX/WR0X, WR1X もそれに同期して延長
されます。
フライバイ転送相手のチップセレクト領域が ACR レジスタにより RDY 有効に設定
されていると , IOWRX 側の RYEn ビットとは関係なく , RDYI 端子によるウェイト
挿入が可能となります。また , フライバイ転送相手のチップセレクト領域で ACR レ
ジスタにより RDY 無効にされている場合でも , IOWRX 側の RYEn ビットにより
RDY 有効に設定されていると , フライバイアクセス時のみ , RDYI 端子によるウェ
イト挿入が可能となります。
SDRAM へのフライバイライトアクセスで RDY を有効にした場合 , 必ず HLD ビッ
トを有効にしてホールドウェイト設定を行ってください。
239
第 9 章 外部バスインタフェース
[bit30, bit22, bit14] HLD0, HLD1, HLD2 : ホールドウェイト設定 (HoLD wait control)
DMA フライバイアクセス時の転送元アクセス側のリードストローブ信号のホール
ドサイクルを制御します。
HLDn
ホールドウェイト設定
0
ホールド延長サイクルを挿入しません。
1
ホールド延長サイクルを挿入し , リードサイクルを 1 サイクル延長し
ます。
"0" 設定時は , 転送元アクセス側のリードストローブ信号 ( メモリ→ I/O の場合は
RDXO, I/O →メモリの場合は IORDX) とライトストローブ信号 ( メモリ→ I/O の場
合は IOWRX, I/O →メモリの場合は , WRXO3 ∼ WRXO0 および WEX) は同じタイ
ミングで出力されます。
"1"設定時は, 転送元アクセス側データの転送先に対するホールドタイムを確保する
ため , ライトストローブ信号に対してリードストローブ信号を "1" サイクル長く出
力します。
SDRAM へのフライバイライトアクセスで RDY を有効にした場合 , 必ず HLD ビッ
トを有効にしてホールドウェイト設定を行ってください。
[bit29, bit28, bit21, bit20, bit13, bit12] WR01, WR00, WR11, WR10, WR21, WR20 :
I/O アイドルサイクル設定 (I/O Idle Cycle)
DMA フライバイアクセス時に , 連続した I/O アクセスに対するアイドルサイクルを
設定します。
WRn1
WRn0
0
0
0 サイクル
0
1
1 サイクル
1
0
2 サイクル
1
1
3 サイクル
I/O アイドルサイクル設定
アイドルサイクルを 1 サイクル以上設定した場合 , DMA フライバイアクセス時に ,
I/O アクセスの後に設定したサイクル数のアイドルサイクルを挿入します。アイド
ルサイクル中は , すべての CSX およびストローブ出力はネゲートされ , データ端子
はハイインピーダンスとなります。
240
第 9 章 外部バスインタフェース
[bit27 ∼ bit24, bit19 ∼ bit16, bit11 ∼ bit8] IW03 ∼ IW00, IW13 ∼ IW10, IW23 ∼ IW20:
I/O ウェイトサイクル (I/O Wait Cycle)
DMA フライバイアクセス時の I/O アクセスの自動ウェイトサイクルを指定します。
IWn3
IWn2
IWn1
IWn0
0
0
0
0
0 サイクル
0
0
0
1
1 サイクル
I/O ウェイトサイクル
…
1
1
…
1
1
15 サイクル
ウェイトサイクルの挿入数は , 転送元と転送先とのデータ同期のため , IWnn ビット
による I/O 側の設定とフライバイ転送相手 ( メモリなど ) のウェイト設定のうち , 大
きいほうを使用します。そのため , IWnn ビットに設定したサイクル数より多いウェ
イトが挿入される場合があります。
241
第 9 章 外部バスインタフェース
9.2.5
チップセレクト領域許可レジスタ (CSER)
チップセレクト領域許可レジスタの詳細を説明します。
■ チップセレクト領域許可レジスタ (CSER) のレジスタ構成
図 9.2-5 に , CSER のレジスタ構成を示します。
図 9.2-5 CSER のレジスタ構成
アドレス
bit31
30
29
000680H
予約
予約
予約
28
27
26
25
24
初期値
INIT 時
RST 時
CSE4 CSE3 CSE2 CSE1 CSE0 00000001B 00000001B
アクセス
R/W
各チップセレクト領域の許可 / 禁止を設定します。
[bit31 ∼ bit29] 予約 : 予約ビット
必ず , "000B" を設定してください。
[bit28 ∼ bit24] CSE4 ∼ CSE0 : チップセレクト領域許可 (Chip select enable 0 ∼ 4)
CS0X ∼ CS4X の各チップセレクト領域許可ビットです。
初期値は , "00001B" で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR4, ACR0 ∼ ACR4, AWR0 ∼ AWR4 の設定に
従って動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ
い。
CSE4 ∼ CSE0
領域コントロール
0
禁止
1
許可
以下に CSE のビットと対応する CSX を示します。
CSE のビット
242
対応する CSX
bit24 : CSE0
CS0X
bit25 : CSE1
CS1X
bit26 : CSE2
CS2X
bit27 : CSE3
CS3X
bit28 : CSE4
CS4X
第 9 章 外部バスインタフェース
9.2.6
キャッシュイネーブルレジスタ (CHER)
キャッシュイネーブルレジスタの詳細を説明します。
■ キャッシュイネーブルレジスタ (CHER) のレジスタ構成
図 9.2-6 に , CHER のレジスタ構成を示します。
図 9.2-6 CHER のレジスタ構成
アドレス
bit23
22
21
000681H
予約
予約
予約
20
19
18
17
16
初期値
INIT 時
RST 時
CHE4 CHE3 CHE2 CHE1 CHE0 11111111B 11111111B
アクセス
R/W
CHER は各チップセレクト領域から読み込んだデータの内蔵キャッシュへの取込みを
制御します。
[bit20 ∼ bit16] CHE4 ∼ CHE0 : キャッシュ領域設定 (CacHe Enable 4 ∼ 0)
各チップセレクト領域ごとに , キャッシュへの取込みの許可・禁止を指定します。
CHE4 ∼ CHE4
キャッシュ領域設定
0
非キャッシュ領域
( 該当する領域より読み出したデータをキャッシュに保存し
ません )
1
キャッシュ領域
( 該当する領域より読み出したデータをキャッシュに保存し
ます )
243
第 9 章 外部バスインタフェース
9.2.7
端子 / タイミングコントロールレジスタ (TCR)
端子 / タイミングコントロールレジスタ (TCR) の詳細を説明します。
■ 端子 / タイミングコントロールレジスタ (TCR) のレジスタ構成
図 9.2-7 TCR のレジスタ構成
アドレス
000683H
bit23
22
21
BREN PSUS PCLR
20
19
予約
予約
18
17
16
初期値
INIT 時
RST 時
予約 RDW1 RDW0 00000000B 0000XXXXB
アクセス
R/W
TCR は , 能設定やタイミング制御など , 外部バスインタフェースコントローラ全般にか
かわる機能を制御します。
[bit7] BREN : BRQ 入力許可設定 (BRQ ENable)
BRQ 端子入力を許可し , 外部バス共有を可能にします。
BREN
BRQ 入力許可設定
0
BRQ/BGRNTX によるバス共有をしません。BRQ 入力は無効となり
ます。
1
BRQ/BGRNTX によるバス共有を行います。BRQ 入力は有効となり
ます。
初期状態 ("0") のときは , BRQ の入力を無視します。
"1" を設定すると , BRQ 入力が "H" になった後 , バス開放が可能になった時点で , バ
スを開放 ( ハイインピーダンス制御 ) して BGRNTX をアクティブ ("L" 出力 ) にし
ます。
[bit6] PSUS : プリフェッチ抑止 (Prefetch SUSpend)
すべての領域に対するプリフェッチの一時停止を制御します。
PSUS
プリフェッチ制御
0
プリフェッチ許可
1
プリフェッチ抑止
"1" を設定すると "0" を書き込むまでの間 , 新規のプリフェッチ動作を行いません。
この間 , プリフェッチバッファへのミスが発生しない限りはプリフェッチバッファ
の内容は消去されませんので , プリフェッチを再開する前に bit5:PCLR ビット機能
によりプリフェッチバッファのクリアを行ってください。
244
第 9 章 外部バスインタフェース
[bit5] PCLR : プリフェッチバッファ全クリア (Prefetch buffer CLeaR)
プリフェッチバッファのすべての内容をクリアします。
PCLR
プリフェッチバッファ制御
0
通常状態
1
プリフェッチバッファクリア
"1" を書き込むと 1 度だけプリフェッチバッファをすべてクリアします。バッファ
クリアが完了すると自動的にビット値は "0" に戻ります。
PSUS ビットでプリフェッ
チを中断 ("1" に設定 ) しておいてからバッファのクリアを行ってください (PSUS と
PCLR の両ビットに同時に "11B" を書き込んで結構です ) 。
[bit4 ∼ bit2] 予約 : 予約ビット
予約ビットです。必ず "0" を設定してください。
[bit1, bit0] RDW1, RDW0 : ウェイトサイクル短縮 (ReDuce Wait cycle)
すべてのチップセレクト領域およびフライバイ用 I/O チャネルに対し , 自動アクセ
スサイクルウェイトの設定値を AWR レジスタの設定値はそのままで自動ウェイト
サイクルのみ一律に削減します。アイドルサイクルやリカバリサイクル , セット
アップやホールドサイクルの設定には影響しません。
RDW1
RDW0
0
0
通常ウェイト (AWR0 ∼ AWR4 の設定値 )
0
1
AWR0 ∼ AWR4 の設定値の 1/2 (1 ビット右シフト )
1
0
AWR0 ∼ AWR4 の設定値の 1/4 (2 ビット右シフト )
1
1
AWR0 ∼ AWR4 の設定値の 1/8 (3 ビット右シフト )
ウェイトサイクル短縮
この機能は , ベースクロックを低速にしている間や外部バスクロックの分周比設定
を大きくしている間など , 低速クロックで動作している間に過剰なアクセスサイク
ルウェイトがかかることを防ぐためのものです。
通常 , このような場合にウェイトサイクルを設定し直すには , すべての AWR をそれ
ぞれ書き換えなければなりませんが , RDW1, RDW0 ビットの機能を使うと , すべて
の AWR の設定は高速クロックのときの設定のままで , アクセスサイクルウェイト
のみ一度に削減することができます。
クロックを高速に戻す前に , 必ず RDW1, RDW0 ビットは "00B" に設定し直してくだ
さい。
245
第 9 章 外部バスインタフェース
9.3
チップセレクト領域
外部バスインタフェースは全 5 領域分のチップセレクト領域を設定できます。
各領域のアドレス空間は ASR0 ∼ ASR4 ( 領域選択レジスタ ) と ACR0 ∼ ACR4
( 領域構成レジスタ ) にて 4G バイトの空間の内 , CS0X ∼ CS4X は 64K ∼ 2048M
バイト単位で "00040000H" ∼ "FFFFFFFFH" の空間に設定可能です。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス
サイクル中に対応するチップセレクト信号 CS0X ∼ CS4X がアクティブ ("L" 出力 )
になります。
■ ASR および ASZ1, ASZ0 の設定例
1. ASR1 = 0001H ACR1 → ASZ3 ∼ ASZ0 = 0000B
チップセレクト領域 1 は , "00100000H" から "0010FFFFH" に割り当てられます。
2. ASR2 = 0040H ACR2 → ASZ3 ∼ ASZ0 = 0100B
チップセレクト領域 2 は , "00400000H" から "004FFFFFH" に割り当てられます。
3. ASR3 = 0081H ACR3 → ASZ3 ∼ ASZ0 = 0111B
チップセレクト領域 3 は , "00800000H" から "00FFFFFFH" に割り当てられます。
このとき , ACR → ASZ3 ∼ ASZ0 が 8M バイトの設定になっていますので , バウンダリ
は 8M バイト単位となり , ASR3[22:16] は無視されます。
リセット後は , ACR0 に書込みが行われるまでの間 , "00000000H" ∼ "FFFFFFFFH" が
チップセレクト領域 0 に割り当てられます。
<注意事項>
チップセレクト領域は , お互いにオーバラップしないように設定してください。
246
第 9 章 外部バスインタフェース
図 9.3-1 にチップセレクト領域を示します。
図 9.3-1 チップセレクト領域
00000000H
00000000H
00100000H
領域 1
64K バイト
00400000H
領域 2
1M バイト
領域 0
00800000H
8M バイト
領域 3
00FFFFFFH
FFFFFFFFH
FFFFFFFFH
247
第 9 章 外部バスインタフェース
9.4
エンディアンとバスアクセス
WR1X, WR0X の制御信号は , データバス幅に関係なくデータバスのバイト位置に常
に 1 対 1 に対応します。
下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト
位置とそれに対応する制御信号をまとめます。
■ データバス幅と制御信号との関係
● 通常バスインタフェースの制御信号
図 9.4-1 に , 通常バスインタフェースの制御信号を示します。
図 9.4-1 通常バスインタフェースの制御信号
a)16ビットバス幅
データバス 制御記号
D31
WR0X
D24
WR1X
D16
b)8ビットバス幅
データバス 制御記号
WR0X
-
-
● 時分割入出力インタフェースの制御信号
図 9.4-2 に , 時分割入出力インタフェースの制御信号を示します。
図 9.4-2 時分割入出力インタフェースの制御信号
a)16ビットバス幅
b) 8ビットバス幅
データバス 出力アドレス 制御記号
データバス 出力アドレス 制御記号
D31
D16
248
A15~A08
WR0X
A07~A00
WR1X
A07~A00
-
-
WR0X
-
第 9 章 外部バスインタフェース
9.4.1
ビッグエンディアンのバスアクセス
MB91461/F467R は CS0 領域を除いて , 各チップセレクトごとにビッグエンディア
ン / リトルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビット
を "1" に設定した場合は , その領域をリトルエンディアンとして扱います。
通常 , MB91461/F467R はビッグエンディアンで外部バスアクセスを行います。
■ ビッグエンディアンのデータフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
● ワードアクセス (LD, ST 命令実行時 )
図 9.4-3 ワードアクセス (LD, ST 命令実行時 )
内部レジスタ
D31
AA
D23
BB
D15
CC
D7
DD
D0
外部バス
D31
AA
D23
BB
D15
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 9.4-4 ハーフワードアクセス (LDUH, STH 命令実行時 )
a)出力アドレス下位"00"
内部レジスタ
D31
D23
D15
b)出力アドレス下位"10"
外部バス
D31
AA
D23
BB
D15
内部レジスタ
D31
D23
D15
AA
外部バス
D31
AA
D23
BB
D15
AA
D7
D7
BB
BB
D0
D0
● バイトアクセス (LDUB, STB 命令実行時 )
図 9.4-5 バイトアクセス (LDUB, STB 命令実行時 )
a) 出力アドレス下位"00"
b) 出力アドレス下位"01"
c) 出力アドレス下位"10"
d) 出力アドレス下位"11"
内部レジスタ
D31
内部レジスタ
D31
内部レジスタ 外部バス
D31
D31
AA
D23
D23
内部レジスタ 外部バス
D31
D31
D23
外部バス
D31
AA
D23
外部バス
D31
D23
D23
D23
D23
AA
D15
D15
D7
D15
D0
D15
D7
AA
AA
D15
D7
AA
D0
D15
D15
D7
AA
D0
D15
AA
D0
249
第 9 章 外部バスインタフェース
■ データバス幅
● 16 ビットバス幅
図 9.4-6 16 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D23
D15
D07
読出し/書込み
AA
BB
AA
CC
BB
DD
D31
D23
CC
DD
● 8 ビットバス幅
図 9.4-7 8 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
AA
読出し/書込み
"00"
"01"
"10"
"11"
AA
BB
CC
DD
D31
BB
CC
DD
■ 外部バスアクセス
外部バスアクセス (16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バイトアクセ
ス別に図 9.4-8 , 図 9.4-9 および図 9.4-10 に示します。また , 以下の項目も合わせて図
9.4-11 , 図 9.4-12 および図 9.4-13 に示します。
• アクセスバイト位置
• プログラムアドレス
• 出力アドレスバスアクセス回数
PA1/PA0
:
プログラムで指定したアドレス下位2ビット
出力 A1/A0
:
出力するアドレスの下位 2 ビット
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
+
①∼④
MB91461/F467R では , ミスアラインエラーを検出しません。
したがってワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビットが
"00B" "01B" "10B" "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" と
なり , ハーフワードアクセスの場合には "00B" "01B" のときには "00B" に , "00B" "01B" の
ときには "10B" になります。
250
第 9 章 外部バスインタフェース
● 16 ビットバス幅
• ワードアクセス
図 9.4-8 ワードアクセス
(a) PA1/PA0 = 00B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 10B
MSB
(b) PA1/PA0 = 01B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 10B
(c) PA1/PA0 = 10B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 10B
(d) PA1/PA0 = 11B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 10B
LSB
①⇒ 00
01
①⇒ 00
01
①⇒ 00
01
①⇒ 00
01
②⇒ 10
11
②⇒ 10
11
②⇒ 10
11
②⇒ 10
11
16 ビット
• ハーフワードアクセス
図 9.4-9 ハーフワードアクセス
(a) PA1/PA0 = 00B
→①出力 A1/A0 = 00B
(b) PA1/PA0 = 01B
→①出力 A1/A0 = 00B
(c) PA1/PA0 = 10B
→①出力 A1/A0 = 10B
(d) PA1/PA0 = 11B
→①出力 A1/A0 = 10B
①⇒ 00
01
①⇒ 00
01
00
01
00
01
10
11
10
11
①⇒ 10
11
①⇒ 10
11
• バイトアクセス
図 9.4-10 バイトアクセス
(a) PA1/PA0 = 00B
→①出力 A1/A0 = 00B
(b) PA1/PA0 = 01B
(c) PA1/PA0 = 10B
(d) PA1/PA0 = 11B
→①出力 A1/A0 = 01B
→①出力 A1/A0 = 10B
→①出力 A1/A0 = 11B
①⇒ 00
01
①⇒ 00
01
00
01
00
01
10
11
10
11
①⇒ 10
11
①⇒ 10
11
251
第 9 章 外部バスインタフェース
● 8 ビットバス幅
• ワードアクセス
図 9.4-11 ワードアクセス
(a) PA1/PA0 = 00B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
③出力 A1/A0 = 10B
④出力 A1/A0 = 11B
MSB
(b) PA1/PA0 = 01B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
③出力 A1/A0 = 10B
④出力 A1/A0 = 11B
(c) PA1/PA0 = 10B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
③出力 A1/A0 = 10B
④出力 A1/A0 = 11B
(d) PA1/PA0 = 11B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
③出力 A1/A0 = 10B
④出力 A1/A0 = 11B
LSB
①⇒
00
①⇒
00
①⇒ 00
①⇒ 00
②⇒
01
②⇒
01
②⇒ 01
②⇒ 01
③⇒
10
③⇒
10
③⇒ 10
③⇒ 10
④⇒
11
④⇒
11
④⇒ 11
④⇒ 11
8 ビット
• ハーフワードアクセス
図 9.4-12 ハーフワードアクセス
(a) PA1/PA0 = 00B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
252
(b) PA1/PA0 = 01B
→ ①出力 A1/A0 = 00B
②出力 A1/A0 = 01B
(c) PA1/PA0 = 10B
→ ①出力 A1/A0 = 10B
②出力 A1/A0 = 11B
(d) PA1/PA0 = 11B
→ ①出力 A1/A0 = 10B
②出力 A1/A0 = 11B
①⇒ 00
①⇒ 00
00
00
②⇒ 01
②⇒ 01
01
01
10
10
①⇒ 10
①⇒ 10
11
11
②⇒ 11
②⇒ 11
第 9 章 外部バスインタフェース
• バイトアクセス
図 9.4-13 バイトアクセス
(a) PA1/PA0 = 00B
→①出力 A1/A0 = 00B
(b) PA1/PA0 = 01B
→①出力 A1/A0 = 01B
(c) PA1/PA0 = 10B
→①出力 A1/A0 = 10B
(d) PA1/PA0 = 11B
→①出力 A1/A0 = 11B
①⇒ 00
00
00
00
01
①⇒ 01
01
01
10
10
①⇒ 10
10
11
11
11
①⇒ 11
■ 外部との接続例
図 9.4-14
外部との接続例
FRコア
D31 WR0X D23 WR1X
~
~
D24
D16
0
D31
A23~ A23~
A01 A00
1
D24 D23
A23
~
A00
D16
16ビットデバイス*
0
D31
D24
8ビットデバイス*
("0"/"1"アドレス下位1ビット)
*:8ビットデバイスの場合は,MSB側のデータバスを使用します。
253
第 9 章 外部バスインタフェース
9.4.2
リトルエンディアンのバスアクセス
MB91461/F467R は CS0 領域を除いて , 各チップセレクトごとにビッグエンディア
ン / リトルエンディアンを切り換えて使用可能です。ACR レジスタの LEND ビット
を "1" に設定した場合は , その領域はリトルエンディアンとして扱います。
MB91461/F467R のリトルエンディアンバスアクセスは , ビッグエンディアン時のバ
スアクセス動作を利用し , 基本的にはビッグエンディアン時の出力アドレスの順番
と制御信号の出力は同じで , データバスのバイト位置をバス幅に応じてスワップす
ることにより実現しています。
接続時には , ビッグエンディアン領域とリトルエンディアン領域を物理的に分ける
必要がありますので , 十分注意が必要です。
■ リトルエンディアンとビッグエンディアンの相違点
リトルエンディアンとビッグエンディアンの相違点を以下に説明します。
• 出力するアドレスの順番はビッグエンディアン / リトルエンディアンで変わりませ
ん。
• ワードアクセス
: ビッグエンディアンのアドレス A01, A00 = 00B に対応する
MSB 側のバイトデータが , リトルエンディアンでは LSB 側
のバイトデータになります。
ワードアクセスの場合は , ワード内の 4 バイトのすべてのバ
イト位置が反転します。
• ハーフワードアクセス: ビッグエンディアンのアドレス A00 に対応する MSB 側のバ
イトデータが, リトルエンディアンではLSB側のバイトデー
タになります。
ハーフワードアクセスの場合は , ハーフワード内の 2 バイト
のバイト位置が反転します。
• バイトアクセス
: ビッグエンディアン / リトルエンディアンとも同じです。
■ リトルエンディアン領域に対する制限事項
• リトルエンディアン領域に対してプリフェッチを許可している場合は , その領域に
対するアクセスは必ずワードアクセスにて行ってください。プリフェッチバッファ
に読み出されたデータをワード長以外でアクセスすると , 正しくエンディアン変換
が行われず , 誤ったデータを読み出してしまいます。これは , エンディアン変換機
構のハードウェア的な制限によるものです。
• リトルエンディアン領域には , 命令コードを配置しないでください。
254
第 9 章 外部バスインタフェース
■ データフォーマット
内部レジスタと外部データバスとの関係は以下のようになります。
● ワードアクセス (LD, ST 命令実行時 )
図 9.4-15 ワードアクセス (LD, ST 命令実行時 )
内部レジスタ
D31
AA
D23
BB
D15
CC
D7
DD
D0
外部バス
D31
BB
DD
D23
AA
CC
D15
● ハーフワードアクセス (LDUH, STH 命令実行時 )
図 9.4-16 ハーフワードアクセス (LDUH, STH 命令実行時 )
a)出力アドレス下位"00"
内部レジスタ
D31
D23
D15
b)出力アドレス下位"10"
外部バス
D31
BB
D23
AA
D15
内部レジスタ
D31
D23
D15
外部バス
D31
BB
D23
AA
D15
AA
AA
D7
D7
BB
BB
D0
D0
● バイトアクセス (LDUB, STB 命令実行時 )
図 9.4-17 バイトアクセス (LDUB, STB 命令実行時 )
a) 出力アドレス下位"00"
b) 出力アドレス下位"01"
c) 出力アドレス下位"10"
d) 出力アドレス下位"11"
内部レジスタ
D31
内部レジスタ
D31
内部レジスタ 外部バス
D31
D31
AA
D23
D23
内部レジスタ 外部バス
D31
D31
D23
外部バス
D31
AA
D23
外部バス
D31
D23
D23
D23
D23
AA
D15
D15
D7
D15
D0
D15
D7
AA
AA
D15
D7
AA
D0
D15
D15
D7
AA
D0
D15
AA
D0
255
第 9 章 外部バスインタフェース
■ データバス幅
● 16 ビットバス幅
図 9.4-18 16 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
D23
D15
D07
AA
読出し/書込み
BB
DD
BB
CC
AA
D31
D23
CC
DD
● 8 ビットバス幅
図 9.4-19 8 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
256
AA
BB
CC
DD
読出し/書込み
"00"
DD
"01"
CC
"10"
BB
"11"
AA
D31
第 9 章 外部バスインタフェース
■ 外部デバイスとの接続例
● 16 ビットバス幅
図 9.4-20 16 ビットバス幅
FRコア
D31 WR0X D23 WR1X
~
~
D24
D16
0
D31
A31
~
A01
1
1
D24 D23
D16
D31
ビッグエンディアン領域
0
D24 D23
D16
リトルエンディアン領域
● 8 ビットバス幅
図 9.4-21 8 ビットバス幅
FRコア
D31 WR0X
~
D24
D31
D24
ビッグエンディアン領域
A31
~
A00
D31
D24
リトルエンディアン領域
257
第 9 章 外部バスインタフェース
9.4.3
ビッグエンディアンとリトルエンディアンの外部
アクセスの比較
バス幅に対するワードアクセス , ハーフワードアクセスおよびバイトアクセスについ
て , ビッグエンディアンとリトルエンディアンの外部アクセスの比較を示します。
これらの図は , ビッグエンディアン領域とリトルエンディアン領域とを分け 「
, 9.4.1
ビッグエンディアンのバスアクセス」および「9.4.2 リトルエンディアンのバスアク
セス」で示した外部デバイスとの接続例に従ってデータバスを準続した場合に , すべ
てのアクセスについて内部レジスタがビッグエンディアンになることを示していま
す。
■ ワードアクセス
表 9.4-1 ワードアクセス (1 / 2)
バス幅
ビッグエンディアンモード
内部レジスタ
外部端子 制御端子
アドレス: "0"
D31
D31
AA
WR0X
BB
D16
AA
BB
D00
リトルエンディアンモード
内部レジスタ
外部端子
アドレス: "0"
D31
D31
BB
AA
WR1X
-
-
-
-
D16
AA
BB
D00
①
16 ビットバス幅
内部レジスタ
外部端子
アドレス: "2"
D31
D31
CC
DD
D16
CC
DD
D00
258
WR0X
WR1X
-
-
-
-
①
制御端子
WR0X
内部レジスタ
外部端子
アドレス: "2"
D31
D31
DD
CC
WR1X
-
-
-
-
D16
CC
DD
D00
①
制御端子
制御端子
WR0X
WR1X
-
-
-
-
①
第 9 章 外部バスインタフェース
表 9.4-1 ワードアクセス (2 / 2)
バス幅
ビッグエンディアンモード
内部レジスタ
外部端子 制御端子
アドレス: "0" "1"
D31
D31
AA BB
WR0X
D24
AA
BB
D00
- -
-
- -
-
- -
-
D00
①
リトルエンディアンモード
内部レジスタ
外部端子
アドレス: "0" "1"
D31
D31
BB AA
制御端子
D24
- - AA
BB
D00
D00
-
- - -
- - -
①
②
WR0X
②
8 ビットバス幅
内部レジスタ
外部端子
アドレス: "2" "3"
D31
D31
CC DD
D24
CC
DD
D00
D00
制御端子
WR0X
-
-
-
-
-
-
-
-
-
①
②
内部レジスタ
外部端子
アドレス: "2" "3"
D31
D31
DD CC
D24
CC
DD
D00
D00
制御端子
WR0X
-
-
-
-
-
-
-
-
-
①
②
259
第 9 章 外部バスインタフェース
■ バイトアクセス
表 9.4-2 バイトアクセス (1 / 2)
バス幅
ビッグエンディアンモード
外部端子
内部レジスタ
アドレス: "0"
D31
D31
AA
制御端子
WR0X
リトルエンディアンモード
外部端子
内部レジスタ
アドレス: "0"
D31
D31
AA
-
D16
AA
-
AA
-
-
D00
①
①
内部レジスタ
外部端子
アドレス: "1"
D31
D31
WR0X
-
D16
-
D00
制御端子
制御端子
内部レジスタ
外部端子
アドレス: "1"
D31
D31
制御端子
-
-
BB
D16
BB
WR1X
D16
WR1X
-
-
BB
-
D00
BB
-
D00
①
①
16 ビットバス幅
外部端子
内部レジスタ
アドレス: "2"
D31
D31
CC
制御端子
WR0X
外部端子
内部レジスタ
アドレス: "2"
D31
D31
CC
-
D16
制御端子
WR0X
-
D16
-
CC
-
D00
-
CC
-
D00
①
内部レジスタ
外部端子
アドレス: "3"
D31
D31
①
制御端子
内部レジスタ
外部端子
アドレス: "3"
D31
D31
-
DD
D16
-
DD
WR1X
D16
-
DD
260
DD
-
D00
①
WR1X
-
-
D00
制御端子
①
第 9 章 外部バスインタフェース
表 9.4-2 バイトアクセス (2 / 2)
バス幅
ビッグエンディアンモード
外部端子
内部レジスタ
アドレス: "0"
D31
D31
AA
D24
AA
制御端子
WR0X
リトルエンディアンモード
内部レジスタ
外部端子
アドレス: "0"
D31
D31
AA
D24
制御端子
WR0X
-
-
-
-
AA
-
-
D00
D00
①
①
外部端子
内部レジスタ
アドレス: "1"
D31
D31
BB
D24
BB
制御端子
WR0X
外部端子
内部レジスタ
アドレス: "1"
D31
D31
BB
D24
制御端子
WR0X
-
-
-
-
BB
-
D00
-
D00
①
①
8 ビットバス幅
内部レジスタ
外部端子
アドレス: "2"
D31
D31
CC
D24
CC
制御端子
WR0X
内部レジスタ
外部端子
アドレス: "2"
D31
D31
CC
D24
制御端子
WR0X
-
-
-
-
CC
-
D00
-
D00
①
内部レジスタ
外部端子
アドレス: "3"
D31
D31
DD
D24
DD
①
制御端子
WR0X
内部レジスタ
外部端子
アドレス: "3"
D31
D31
DD
D24
WR0X
-
-
-
-
DD
-
D00
制御端子
-
D00
①
①
261
第 9 章 外部バスインタフェース
通常バスインタフェース
9.5
通常バスインタフェースでは , リードアクセス / ライトアクセスともに 2 クロックサ
イクルが基本バスサイクルになります。
■ 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0= 0000B, AWR=0008H)
図 9.5-1 に , アクセスが連続する場合の基本タイミングを示します。
図 9.5-1 アクセスが連続する場合の基本タイミング
SYSCLK
A23~A00
#2
#1
ASX
CS4X~CS0X
RDX
読出し
D31~D16
#1
#2
WR1X, WR0X
書込み
D31~D16
262
#1
#2
第 9 章 外部バスインタフェース
• ASX は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A23 ∼ A00 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレ
スをバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0X ∼ CS3X は , AWR0 ∼ AWR4 レジスタの W02 ビットが "0" のときは , ASX と
同じタイミングでアサートし , 連続するアクセスがある場合には CS0X ∼ CS4X は
ネゲートしません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了
後に CS0X ∼ CS4X をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の
1 サイクル後にネゲートします。
• RDX, WR0X, WR1X は , バスアクセス第 2 サイクルからアサートになります。AWR
レジスタ W15 ∼ W12 ビットのウェイトサイクルを挿入した後 , ネゲートになりま
す。RDX, WR0X, WR1X をアサートするタイミングは AWR レジスタ W01 ビットを
"1" に設定することにより 1 サイクル遅らせることができます。
• リードアクセスの場合 , RDX アサートになった後 , ウェイトサイクルが終了したサ
イクルの SYSCLK の立上りで D31 ∼ D16 を取り込みます。
• ライトアクセスの場合 , WR0X, WR1X をアサートになったタイミングから D31 ∼
D16 にデータを出力します。
263
第 9 章 外部バスインタフェース
■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H)
図 9.5-2 に , リード→ライトタイミングを示します。
図 9.5-2 リード → ライトタイミング
リード
アイドル
ライト
SYSCLK
A23~A00
ASX
CS4X~CS0X
RDX
WR1X, WR0X
D31~D16
• AWR レジスタ W06 ビットの設定により , 0 または 1 サイクルのアイドルサイクル
挿入が可能です。
• リード側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで
ある場合にこのアイドルサイクルを挿入します。
264
第 9 章 外部バスインタフェース
■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H)
図 9.5-3 に , ライト→ライトタイミングを示します。
図 9.5-3 ライト → ライトタイミング
ライト
ライト
リカバリ
ライト
SYSCLK
A23~A00
ASX
CS4X~CS0X
WR1X, WR0X
D31~D16
• AWR レジスタの W04 ビットの設定により , 0 または 1 サイクルのライトリカバリ
サイクルを挿入可能です。
• すべてのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルを発生します。
265
第 9 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H)
図 9.5-4 に , 自動ウェイトタイミングを示します。
図 9.5-4 自動ウェイトタイミング
基本サイクル
ウェイトサイクル
SYSCLK
A23~A00
ASX
CS4X~CS0X
RDX
読出し
D31~D16
WR1X, WR0X
書込み
D31~D16
• AWR レジスタ W15 ∼ W12 ビット (first wait cycle) の設定により自動ウェイトサイ
クルを 0 ∼ 15 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入して合計 4 サイクルのアクセスと
なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル+
(first wait cycle) となります。ライトの場合は内部状態によりさらに長くなることがあ
ります。
266
第 9 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H)
図 9.5-5 に , 外部ウェイトタイミングを示します。
図 9.5-5 外部ウェイトタイミング
基本サイクル
自動ウェイト
2サイクル
RDYによる
ウェイト
サイクル
SYSCLK
A23~A00
ASX
CS4X~CS0X
RDX
読出し
D31~D16
WR1X, WR0X
書込み
D31~D16
RDY
解除
ウェイト
ACR レジスタの TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに
より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクルによ
るウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動ウェイト
サイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。また , いった
んウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで , RDY 入力端
子の値は無効になります。
267
第 9 章 外部バスインタフェース
■ CSX 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH)
図 9.5-6 に , CSX 遅延設定を示します。
図 9.5-6 CSX 遅延設定
SYSCLK
A23~A00
ASX
CS4X~CS0X
RDX
読出し
D31~D16
WR1X, WR0X
書込み
D31~D16
268
第 9 章 外部バスインタフェース
■ CSX→ RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホールド設定
(TYP3 ∼ TYP0=0000B, AWR=000BH)
図 9.5-7 に , CSX → RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホー
ルド設定を示します。
図 9.5-7 CSX → RDX/WR1X, WR0X セットアップ・RDX/WR1X, WR0X → CSX ホールド設定
SYSCLK
A23~A00
ASX
CS4X~CS0X
CSX->RDX/WR1X, WR0X
RDX/WR1X, WR0X->CSX
遅延
遅延
RDX
読出し
D31~D16
WR1X, WR0X
書込み
D31~D16
• AWRレジスタのW01ビットを"1"に設定することにより, CSX→RDX/WR1X, WR0X
セットアップディレイを設定可能です。チップセレクトアサート後 , リード / ライト
ストローブまでの期間を延長する場合に設定します。
• AWR レジスタの W00 ビットを "1" に設定することにより , RDX/WR1X, WR0X →
CSX ホールドディレイを設定可能です。リード / ライトストローブネゲート後 , チッ
プセレクトネゲートまでの期間を延長する場合に設定します。
• CSX → RDX/WR1X, WR0X セットアップディレイ (W01 ビット ) と RDX/WR1X,
WR0X → CSX ホールドディレイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSX → RDX/WR1X, WR0X セットアップディレイ , RDX/WR1X,
WR0X → CSX ホールドディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタの W02 ビット ) を "1"
に設定してください。
269
第 9 章 外部バスインタフェース
アドレス / データマルチプレックスインタフェース
9.6
アドレス / データマルチプレックスインタフェースの設定について説明します。
■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H)
図 9.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 9.6-1 外部ウェイトがない場合のアドレス / データマルチプレックスインタフェース設定
SYSCLK
アドレス[23:0]
A23~A00
ASX
CS4X~CS0X
RDX
読出し
D31~D16
アドレス[15:0]
データ
[15:0]
WR1X, WR0X
書込み
D31~D16
270
アドレス[15:0]
データ[15:0]
第 9 章 外部バスインタフェース
• ACR レジスタの TYP3 ∼ TYP0 = 01XXB と設定することによりアドレス / データマ
ルチプレックスインタフェース設定が可能です。
• アドレス / データマルチプレックスインタフェースに設定した場合 , データバス幅
(DBW1, DBW0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してください。
32 ビット幅はサポートしていません。
• アドレス / データマルチプレックスインタフェースでは , アドレス出力サイクル 2 サ
イクル+データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
• アドレス出力サイクルでは , 出力アドレスラッチイネーブル信号として ASX をア
サートしますが , CSX → RDX/WR1X, WR0X セットアップ遅延 (AWR:W01) が "0" に
設定してある場合 , 上図のようにマルチプレックスアドレス出力サイクルが 1 サイ
クルのみとなり , アドレスを ASX の立上りエッジで直接ラッチすることは不可能と
なります。このため , ASX に "L" がアサートされているサイクルの SYSCLK の立上
りエッジでアドレスを取り込んでください。アドレスを ASX の立上りエッジで直
接ラッチする場合は , 「■ CSX → RDX/WR1X, WR0X セットアップ設定 (TYP3 ∼
TYP0 = 0101B, AWR = 100BH)」を参照してください。
• A23 ∼ A00 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの
先頭を示すアドレスを出力します。アドレス / データマルチプレックスインタ
フェースで 8/16 ビット以上のアドレスを使用したい場合に利用してください。
• 自動ウェイト(AWR:W14∼AWR:W12),リード→ライトアイドルサイクル(AWR:W06),
ライトリカバリ(AWR:W04), アドレス→ CSX遅延 (AWR2), CSX→RDX/WR1X, WR0X
セットアップ遅延 (AWR:W01), RDX /WR1X, WR0X → CSX ホールド遅延 (AWR0) の
設定は , 通常インタフェースと同様に設定可能です。
271
第 9 章 外部バスインタフェース
■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H)
図 9.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレックスインタ
フェース設定を示します。
図 9.6-2 外部ウェイトがある場合のアドレス / データマルチプレックスインタフェース設定
SYSCLK
アドレス[23:0]
A23~A00
ASX
CS4X~CS0X
RDX
読出し
D31~D16
データ
[15:0]
アドレス[15:0]
WR1X, WR0X
書込み
D31~D16
アドレス[15:0]
データ[15:0]
RDY
ACR レジスタの TYP3 ∼ TYP0 = 01X1B と設定することにより , アドレス / データマ
ルチプレックスインタフェースにおいて RDY 入力を有効とすることが可能です。
272
第 9 章 外部バスインタフェース
■ CSX→RDX/WR1X, WR0Xセットアップ設定 (TYP3∼TYP0=0101B, AWR=100BH)
図 9.6-3 に , CSX → RDX/WR1X, WR0X セットアップ設定を示します。
図 9.6-3 CSX → RDX/WR1X, WR0X セットアップ設定
SYSCLK
A23~A00
アドレス[23:0]
ASX
CS4X~CS0X
RDX
読出し
D31~D16
アドレス[15:0]
データ
[15:0]
アドレス[15:0]
データ[15:0]
WR1X, WR0X
書込み
D31~D16
CSX → RDX/WR1X, WR0X セットアップ遅延 (AWR:W01) を "1" に設定すると , 上図の
ようにマルチプレックスアドレス出力サイクルが1サイクル延長され, アドレスをASX
の立上りエッジで直接ラッチすることが可能となります。SYSCLK を使用せずに ASX
を ALE(Address Latch Enable) ストローブとして使用したい場合にこの設定を使用して
ください。
273
第 9 章 外部バスインタフェース
9.7
DMA アクセス
DMA アクセスの設定について説明します。
■ 2サイクル転送 (内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング
は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 9.7-1 に , 2 サイクル転送の設定を示します。
図 9.7-1 2 サイクル転送の設定 (I/O 側のウェイト設定なしの場合 )
SYSCLK
A23~A00
I/O アドレス
ASX
CS4X~CS0X(I/O側)
WR1X, WR0X
D31~D16
バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
274
第 9 章 外部バスインタフェース
■ 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 9.7-2 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。
図 9.7-2 2 サイクル転送 ( 外部→ I/O) の設定 ( メモリ , I/O のウェイト設定なしの場合 )
SYSCLK
メモリアドレス
A23~A00
アイドル
I/Oアドレス
ASX
CS4X~CS0X
RDX
CS4X~CS0X
WR1X, WR0X
D31~D16
バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
275
第 9 章 外部バスインタフェース
■ 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 9.7-3 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。
図 9.7-3 2 サイクル転送 (I/O →外部 ) の設定 ( メモリ , I/O のウェイト設定なしの場合 )
SYSCLK
I/Oアドレス
A23~A00
アイドル
メモリアドレス
ASX
CS4X~CS0X
WR1X, WR0X
CS4X~CS0X
RDX
D31~D16
バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
276
第 9 章 外部バスインタフェース
9.8
レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。
■ 外部バスインタフェースの設定手順
1) レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用
しない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前
後のアクセスは保証されません。
2) レジスタの変更は以下の手順で行ってください。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハー
フワードでアクセスする場合には , ASR 設定後に ACR を設定してください。
③ AWR を設定してください。
④ 該当領域に対する CSER のビットを設定してください。
3) CS0X 領域はリセット解除後から有効になっており , プログラム領域として使用
している場合は CSER を "1" のままで書き換える必要がありますが , この場合は
内部クロックが低い初期状態で上記② , ③の設定を行ってください。その後 , ク
ロックを高速クロックに切り換えてください。
277
第 9 章 外部バスインタフェース
278
第 10 章
I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能に
ついて説明します。
10.1 I/O ポートの概要
10.2 ポート入力許可
10.3 I/O ポートのレジスタ
10.4 ポートファンクションレジスタの設定
10.5 端子入力レベルの選択
10.6 プルアップ・プルダウン制御レジスタ
279
第 10 章 I/O ポート
10.1
I/O ポートの概要
I/O ポートの概要について説明します。
■ ポート基本ブロックダイヤグラム
MB91461/F467Rは, 各端子に対応する外部バスインタフェースやペリフェラルが入出力
として端子を使用しない設定になっているときに I/O ポートとして使用することができ
ます。
図 10.1-1 に , ポート基本ブロックダイヤグラムを示します。
280
第 10 章 I/O ポート
図 10.1-1 ポート基本ブロックダイヤグラム
ポートバス
PILR
EPILR
外部バスインタフェース入力
周辺入力
CMOS
PDRD リード
&
Automotive
&
PDRD
0
CLKP
CMOS
ヒステリシス
&
1
STOP または
GPORTEN
PDR リード
PPER
PPCR
出力ドライバ
1. 周辺出力
2. 周辺出力
P-ch
プルアップ /
ダウン
制御
端子
アウトプット
MUX
PDR
N-ch
DDR
PFR
ポート
方向
制御
EPFR
PODR
PDR:
PDRD:
DDR:
PFR:
EPFR:
PILR:
EPILR:
PPER:
PPCR:
ポートデータレジスタ
ポートデータダイレクトリードレジスタ
データ方向レジスタ
ポート機能レジスタ
エクストラ PFR ポート機能レジスタ
ポート入力レベル選択レジスタ
ポート入力レベル選択レジスタ
ポートプルアップ / ダウン許可レジスタ
ポートプルアップ / ダウン制御レジスタ
アドレス 000H + #port ( ポート00: 000H, ポート01: 001H など )
アドレス= PDR + D00H
アドレス= PDR + D40H
アドレス= PDR + D80H
アドレス= PDR + DC0H
アドレス= PDR + E40H
アドレス= PDR + E80H
アドレス= PDR + EC0H
アドレス= PDR + F00H
281
第 10 章 I/O ポート
■ ポートの一般的な仕様
すべてのポートに対して , 次の規則が有効です。
• ソフトウェアによるポート設定の前に , 貫通電流が発生するのを防ぐため , ポート
入力はすべて , 初期値が設定されています。各ポート端子をその機能に応じて設定し
た後 , グローバルポート許可 (PORTEN.GPORTEN) でポート入力を許可する必要があ
ります。
「10.2 ポート入力許可 」を参照してください。(MB91461 にはこのレジスタは
ありません )
• ポートごとに , CLKP で端子データをサンプリングするポートデータダイレクト
リードレジスタ (PDRD) があります。このレジスタはリードオンリです。
• ポートごとに , ポートの入力 / 出力方向を切り換えるデータ方向レジスタ (DDR) が
あります。リセット後 , すべてのポートは入力になります (DDR = 00H)。
- ポート入力モード (PFR = 0 および DDR = 0)
PDRD リード: サンプリングされた端子データが読み出されます。
PDR リード: サンプリングされた端子データが読み出されます。
PDR ライト:PDR 設定値が書き込まれますが , 端子値に何も影響しません。
- ポート出力モード (PFR = 0 および DDR = 1)
PDRD リード: サンプリングされた端子データが読み出されます。
PDR リード:PDR レジスタ値が読み出されます。
PDR ライト:PDR 設定値が対応する外部端子に書き込まれます。
• リードモディファイライト命令 ( ビット演算 ) では , データ方向レジスタ (DDR) の
設定にかかわらず , PDR レジスタは常にリードになります。
• 特定のポートに , ポート機能レジスタ (PFR) およびエクストラポート機能レジスタ
(EPFR) があります。EPFR = 1 により決定される機能を有効にするには , PFR = 1
も "1" に設定する必要があります。
MB91V460 上では , EPFR = 1 および PFR = 0 設
定の動作は , ポート入力 / 出力モード ( 将来の利用に予約 ) と同じです。
• ポートごとに, 入力レベル (CMOS ヒステリシス / Automotive [/ TTL]) をビット単位
で入力するポート入力レベルレジスタ (PILR) があります。デフォルト値は , ポート
の機能によって異なります。
入力レベルは , どのデバイスモードでも設定できます。
表 10.5-2 を参照してください。
• 特定のポートには , 自身のプルアップ / プルダウン許可レジスタ (PPER) およびプル
アップ / プルダウン制御レジスタ (PPCR) によりビット単位で許可されるプルアッ
プ / プルダウン (50 kW) があります。「10.6 プルアップ・プルダウン制御レジス
タ 」を参照してください。
• ポートごとに , 1 つまたは 2 つのポート機能レジスタ , PFR およびエクストラ PFR
(EPFR) ( 必要に応じて ) があります。合わせて , 端子当たり最大 3 リソース I/O の役
割を果たします。「10.4 ポートファンクションレジスタの設定 」を参照してくださ
い。
• MD2 ∼ MD0 端子およびモードレジスタ MODR で制御されるポート設定は , ポート
レジスタ内の設定を上書きします。例えば , 外部バスモードはポートレジスタの設
定を上書きします。外部バス信号出力は , 端子の PFR をポートモード (PFR = 0) に
設定すると , 無効にできます。
• リソース入力ラインは , 通常 , 端子に接続され , リソース内の適切な機能を設定する
282
第 10 章 I/O ポート
と有効になります。「10.4 ポートファンクションレジスタの設定 」に示す例外があ
ります。
• 外部割込み入力ラインは , 常に端子に接続され , 外部割込みユニットで有効になり
ます。
• (STCR:STOP が設定され , STCR:HIZ が設定されない ) STOP モードでは , すべての
端子が現在の状態 (STOP モードになる前の設定により入力または出力 ) を維持し , 入
力段階およびラインは横断電流を避けるために内部で固定されます。対応する端子
が PFR = 1 で設定され , 対応する外部割込みが ENIR0, ENIR1 レジスタで許可されて
いる場合 , 外部割込み入力端子は , 固定されません。
プルアップ およびプルダウンは許
可されます。
• (STCR:STOP および STCR:HIZ が設定される ) STOP-HIZ モードでは , すべての端子
が入力 ( ハイインピーダンス状態 ) に切り換えられ , すべての入力段階およびライン
は変動を避けるために内部で固定されます。対応する端子が PFR = 1 で設定され ,
対応する外部割込みが ENIR0, ENIR1 レジスタで許可されている場合 , 外部割込み
入力端子は , 固定されません。プルアップ およびプルダウンは禁止されます。
• リソース出力ラインは, ポート内の対応する PFR / EPFR ビットを設定することによ
り有効になります。詳細は , 「10.4 ポートファンクションレジスタの設定 」を参照
してください。さらに , UART 制御内の SOE ビットを設定して , UART 出力 (SOT)
も有効にする必要があります。
• リソース双方向信号 (UART の SCK など ) は , ポート内の対応する PFR / EPFR ビット
を設定することにより有効になります。信号方向は , 出力許可ビットなど , リソース
の設定により制御されます。詳細は ,「10.4 ポートファンクションレジスタの設定 」
を参照してください。
<注意事項>
汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。外部端子から入
力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。
また , DDR で出力設定時も外部へ出力している値が常に汎用ポートとペリフェラル回路
へ伝播しています。
ペリフェラル入力としてご使用の場合は , DDR で入力設定し , 各ペリフェラルの入力信号
を有効にして使用してください。
283
第 10 章 I/O ポート
10.2
ポート入力許可
ポート入力許可機能について説明します。
■ PORTEN: ポート入力許可
PORTEN
アドレス :
bit7
6
5
4
3
2
1
0
initial
0498H
−
−
−
−
−
−
CPORTEN
GPORTEN
---- --00B
-
-
-
-
-
-
R/W
R/W
I/O 入力段階およびそれに続く論理での横断電流の変動を避けるために, ポート入力はす
べて , 初期値で無効になっています。機能仕様 ( 入力レベル , 出力ドライブ , プルアップ
またはプルダウン抵抗など ) に従ってすべてのポートを設定した後で , ポート入力許可
ビットを設定して入力を全体的に許可する必要があります。
このレジスタは MB91461 にはありません。MB91461 ではリセット後 , 各ポートは入力
可能状態となっています。MB91V460 でもこのレジスタはありません。
このレジスタは MB91F467R のみが持っています。MB91F467R でポート入力機能を使
用する場合は , GPORTEN および CPORTEN に "1" を設定してください。
284
GPORTEN
"0" - すべてのポートの入力が無効です。
"1" - すべてのポートの入力が有効です。
CPORTEN
"0" - ブートローダ通信ポートの入力が無効です。
"1" - ブートローダ通信ポートの入力が有効です。
第 10 章 I/O ポート
10.3
I/O ポートのレジスタ
ポートデータレジスタ (PDR) とポート方向レジスタ (DDR), ポートデータダイレク
トリードレジスタ (PDRD) を示します。
■ ポートデータレジスタ (PDR)
ポートごとの出力データを格納するレジスタです。
図 10.3-1 ポートデータレジスタ (PDR)
PDR00
PDR01
PDR05
PDR06
PDR07
PDR08
PDR09
PDR10
PDR11
PDR13
PDR14
PDR15
PDR16
PDR17
PDR18
PDR19
PDR20
PDR21
PDR22
PDR23
PDR24
PDR28
PDR29
アドレス
000000H
000001H
000005H
000006H
000007H
000008H
000009H
00000AH
00000BH
00000DH
00000EH
00000FH
000010H
000011H
000012H
000013H
000014H
000015H
000016H
000017H
000018H
00001CH
00001DH
bit7
6
5
4
3
2
1
0
初期値
PDR00_7 PDR00_6 PDR00_5 PDR00_4 PDR00_3 PDR00_2 PDR00_1 PDR00_0 XXXXXXXXB
PDR01_7 PDR01_6 PDR01_5 PDR01_4 PDR01_3 PDR01_2 PDR01_1 PDR01_0 XXXXXXXXB
PDR05_7 PDR05_6 PDR05_5 PDR05_4 PDR05_3 PDR05_2 PDR05_1 PDR05_0 XXXXXXXXB
PDR06_7 PDR06_6 PDR06_5 PDR06_4 PDR06_3 PDR06_2 PDR06_1 PDR06_0 XXXXXXXXB
PDR07_7 PDR07_6 PDR07_5 PDR07_4 PDR07_3 PDR07_2 PDR07_1 PDR07_0 XXXXXXXXB
PDR08_7 PDR08_6 PDR08_5 PDR08_4
−
−
−
−
−
PDR08_1 PDR08_0 XXXX--XXB
PDR09_4 PDR09_3 PDR09_2 PDR09_1 PDR09_0 ---XXXXXB
PDR10_6 PDR10_5 PDR10_4 PDR10_3 PDR10_2 PDR10_1 PDR10_0 -XXXXXXXB
−
−
−
−
−
−
−
−
PDR11_1 PDR11_0
PDR13_2 PDR13_1 PDR13_0
−
−
−
−
−
−
−
−
PDR14_3 PDR14_2 PDR14_1 PDR14_0
−
−
−
-
PDR15_3 PDR15_2 PDR15_1 PDR15_0
PDR16_7
−
−
−
−
−
−
−
PDR17_7 PDR17_6 PDR17_5 PDR17_4 PDR17_3 PDR17_2 PDR17_1 PDR17_0
−
PDR18_2 PDR18_1 PDR18_0
−
PDR19_6 PDR19_5 PDR19_4
−
PDR19_2 PDR19_1 PDR19_0
−
PDR20_6 PDR20_5 PDR20_4
−
PDR20_2 PDR20_1 PDR20_0
−
PDR21_6 PDR21_5 PDR21_4
−
PDR21_2 PDR21_1 PDR21_0
−
−
−
−
PDR22_7 PDR22_6 PDR22_5 PDR22_4 PDR22_3 PDR22_2
−
PDR23_6
−
−
PDR22_0
PDR23_4 PDR23_3 PDR23_2 PDR23_1 PDR23_0
PDR24_7 PDR24_6 PDR24_5 PDR24_4 PDR24_3 PDR24_2 PDR24_1 PDR24_0
PDR28_7 PDR28_6 PDR28_5 PDR28_4 PDR28_3 PDR28_2 PDR28_1 PDR28_0
PDR29_7 PDR29_6 PDR29_5 PDR29_4 PDR29_3 PDR29_2 PDR29_1 PDR29_0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
------XXB
-----XXXB
----XXXXB
----XXXXB
X-------B
XXXXXXXXB
-----XXXB
-XXX-XXXB
-XXX-XXXB
-XXX-XXXB
XXXXXX-XB
-X-XXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
R/W
PDR00 ∼ PDR13 および PDR28_7 ∼ PDR28_5 は MB91461 にはありません。
285
第 10 章 I/O ポート
■ データ方向レジスタ (DDR)
ポートごとに入出力の方向を設定するレジスタです。リセット後 , すべてのポートは入
力となります。
図 10.3-2 データ方向レジスタ (DDR)
DDR00
DDR01
DDR05
DDR06
DDR07
DDR08
DDR09
DDR10
DDR11
DDR13
DDR14
DDR15
DDR16
DDR17
DDR18
DDR19
DDR20
DDR21
DDR22
DDR23
DDR24
DDR28
DDR29
アドレス
000D40H
000D41H
000D45H
000D46H
000D47H
000D48H
000D49H
000D4AH
000D4BH
000D4DH
000D4EH
000D4FH
000D50H
000D51H
000D52H
000D53H
000D54H
000D55H
000D56H
000D57H
000D58H
000D5CH
000D5DH
bit7
6
5
4
3
2
1
初期値
DDR01_7 DDR01_6 DDR01_5 DDR01_4 DDR01_3 DDR01_2 DDR01_1 DDR01_0 00000000B
DDR05_7 DDR05_6 DDR05_5 DDR05_4 DDR05_3 DDR05_2 DDR05_1 DDR05_0 00000000B
DDR06_7 DDR06_6 DDR06_5 DDR06_4 DDR06_3 DDR06_2 DDR06_1 DDR06_0 00000000B
DDR07_7 DDR07_6 DDR07_5 DDR07_4 DDR07_3 DDR07_2 DDR07_1 DDR07_0 00000000B
DDR08_7 DDR08_6 DDR08_5 DDR08_4
−
−
−
−
−
−
−
DDR08_1 DDR08_0 0000--00B
DDR09_4 DDR09_3 DDR09_2 DDR09_1 DDR09_0
DDR10_6 DDR10_5 DDR10_4 DDR10_3 DDR10_2 DDR10_1 DDR10_0
−
−
−
−
−
−
DDR11_1 DDR11_0
DDR13_2 DDR13_1 DDR13_0
−
−
−
−
−
−
−
−
DDR14_3 DDR14_2 DDR14_1 DDR14_0
−
−
−
−
DDR15_3 DDR15_2 DDR15_1 DDR15_0
DDR16_7
−
−
−
−
−
−
−
DDR17_7 DDR17_6 DDR17_5 DDR17_4 DDR17_3 DDR17_2 DDR17_1 DDR17_0
−
DDR18_2 DDR18_1 DDR18_0
−
DDR19_6 DDR19_5 DDR19_4
−
DDR19_2 DDR19_1 DDR19_0
−
DDR20_6 DDR20_5 DDR20_4
−
DDR20_2 DDR20_1 DDR20_0
−
DDR21_6 DDR21_5 DDR21_4
−
DDR21_2 DDR21_1 DDR21_0
−
−
−
−
DDR22_7 DDR22_6 DDR22_5 DDR22_4 DDR22_3 DDR22_2
−
DDR23_6
−
−
DDR22_0
DDR23_4 DDR23_3 DDR23_2 DDR23_1 DDR23_0
DDR24_7 DDR24_6 DDR24_5 DDR24_4 DDR24_3 DDR24_2 DDR24_1 DDR24_0
DDR28_7 DDR28_6 DDR28_5 DDR28_4 DDR28_3 DDR28_2 DDR28_1 DDR28_0
DDR29_7 DDR29_6 DDR29_5 DDR29_4 DDR29_3 DDR29_2 DDR29_1 DDR29_0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DDR00 ∼ DDR13 および DDR28_7 ∼ DDR28_5 は MB91461 にはありません。
286
0
DDR00_7 DDR00_6 DDR00_5 DDR00_4 DDR00_3 DDR00_2 DDR00_1 DDR00_0 00000000B
R/W
---00000B
-0000000B
------00B
-----000B
----0000B
----0000B
0-------B
00000000B
-----000B
-000-000B
-000-000B
-000-000B
000000-0B
-0-00000B
00000000B
00000000B
00000000B
第 10 章 I/O ポート
■ ポートデータダイレクトリードレジスタ (PDRD)
これらのレジスタは読出し専用レジスタで , ポートが出力状態であっても入力値を直
接読み出すために使用されます。
図 10.3-3 ポートデータダイレクトリードレジスタ (PDRD)
PDRD00
PDRD01
PDRD05
PDRD06
PDRD07
PDRD08
PDRD09
PDRD10
PDRD11
PDRD13
PDRD14
PDRD15
PDRD16
PDRD17
PDRD18
PDRD19
PDRD20
PDRD21
PDRD22
PDRD23
PDRD24
PDRD28
PDRD29
アドレス
000D00H
000D01H
000D05H
000D06H
000D07H
000D08H
000D09H
000D0AH
000D0BH
000D0DH
000D0EH
000D0FH
000D10H
000D11H
000D12H
000D13H
000D14H
000D15H
000D16H
000D17H
000D18H
000D1CH
000D1DH
bit7
6
5
4
3
2
1
0
初期値
XXXXXXXXB
PDRD01_4 PDRD01_3 PDRD01_2 PDRD01_1 PDRD01_0 XXXXXXXXB
PDRD05_4 PDRD05_3 PDRD05_2 PDRD05_1 PDRD05_0 XXXXXXXXB
PDRD06_4 PDRD06_3 PDRD06_2 PDRD06_1 PDRD06_0 XXXXXXXXB
PDRD07_4 PDRD07_3 PDRD07_2 PDRD07_1 PDRD07_0 XXXXXXXXB
PDRD08_1 PDRD08_0 XXXX--XXB
PDRD08_4
−
−
PDRD09_4 PDRD09_3 PDRD09_2 PDRD09_1 PDRD09_0 ---XXXXXB
PDRD10_4 PDRD10_3 PDRD10_2 PDRD10_1 PDRD10_0 -XXXXXXXB
------XXB
PDRD11_1 PDRD11_0
−
−
−
PDRD13_2 PDRD13_1 PDRD13_0 -----XXXB
−
−
PDRD14_3 PDRD14_2 PDRD14_1 PDRD14_0 ----XXXXB
−
PDRD15_3 PDRD15_2 PDRD15_1 PDRD15_0 ----XXXXB
−
X-------B
−
−
−
−
−
PDRD17_4 PDRD17_3 PDRD17_2 PDRD17_1 PDRD17_0 XXXXXXXXB
PDRD18_2 PDRD18_1 PDRD18_0 -----XXXB
−
−
PDRD19_4
PDRD19_2 PDRD19_1 PDRD19_0 -XXX-XXXB
−
PDRD20_4
PDRD20_2 PDRD20_1 PDRD20_0 -XXX-XXXB
−
PDRD21_4
PDRD21_2 PDRD21_1 PDRD21_0 -XXX-XXXB
−
PDRD22_4 PDRD22_3 PDRD22_2
PDRD22_0 XXXXXX-XB
−
PDRD23_4 PDRD23_3 PDRD23_2 PDRD23_1 PDRD23_0 -X-XXXXXB
PDRD24_4 PDRD24_3 PDRD24_2 PDRD24_1 PDRD24_0 XXXXXXXXB
PDRD28_4 PDRD28_3 PDRD28_2 PDRD28_1 PDRD28_0 XXXXXXXXB
PDRD29_4 PDRD29_3 PDRD29_2 PDRD29_1 PDRD29_0 XXXXXXXXB
R
R
R
R
R
PDRD00_7 PDRD00_6 PDRD00_5 PDRD00_4 PDRD00_3 PDRD00_2 PDRD00_1 PDRD00_0
PDRD01_7 PDRD01_6 PDRD01_5
PDRD05_7 PDRD05_6 PDRD05_5
PDRD06_7 PDRD06_6 PDRD06_5
PDRD07_7 PDRD07_6 PDRD07_5
PDRD08_7 PDRD08_6 PDRD08_5
−
−
−
−
PDRD10_6 PDRD10_5
−
−
−
−
−
−
−
−
−
−
−
−
PDRD16_7
−
−
PDRD17_7 PDRD17_6 PDRD17_5
−
−
−
−
PDRD19_6 PDRD19_5
−
PDRD20_6 PDRD20_5
−
PDRD21_6 PDRD21_5
PDRD22_7 PDRD22_6 PDRD22_5
−
PDRD23_6
−
PDRD24_7 PDRD24_6 PDRD24_5
PDRD28_7 PDRD28_6 PDRD28_5
PDRD29_7 PDRD29_6 PDRD29_5
R
R
R
PDRD00 ∼ PDRD13 および PDRD28_7 ∼ PDRD28_5 は MB91461 にはありません。
287
第 10 章 I/O ポート
10.4
ポートファンクションレジスタの設定
ポートファンクションレジスタの機能について説明します。
■ ポート 00
ポート 00 は PFR00 で制御されます。
PFR00 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-1 ポート 00 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
PFR00 000D80H PFR00_7 PFR00_6 PFR00_5 PFR00_4 PFR00_3 PFR00_2 PFR00_1 PFR00_0 11111111B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-1 ポート 00 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P00_7) として使用されます。
1B
外部端子が外部バス端子 (D31) として使用されます。
0B
外部端子が汎用ポート (P00_6) として使用されます。
1B
外部端子が外部バス端子 (D30) として使用されます。
0B
外部端子が汎用ポート (P00_5) として使用されます。
1B
外部端子が外部バス端子 (D29) として使用されます。
0B
外部端子が汎用ポート (P00_4) として使用されます。
1B
外部端子が外部バス端子 (D28) として使用されます。
0B
外部端子が汎用ポート (P00_3) として使用されます。
1B
外部端子が外部バス端子 (D27) として使用されます。
0B
外部端子が汎用ポート (P00_2) として使用されます。
1B
外部端子が外部バス端子 (D26) として使用されます。
0B
外部端子が汎用ポート (P00_1) として使用されます。
1B
外部端子が外部バス端子 (D25) として使用されます。
0B
外部端子が汎用ポート (P00_0) として使用されます。
1B
外部端子が外部バス端子 (D24) として使用されます。
PFR00_7
PFR00_6
PFR00_5
PFR00_4
PFR00_3
PFR00_2
PFR00_1
PFR00_0
288
第 10 章 I/O ポート
■ ポート 01
ポート 01 は PFR01 で制御されます。
PFR01 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-2 ポート 01 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D81
11111111B
PFR01_7
PFR01_6
PFR01_5
PFR01_4
PFR01_3
PFR01_2
PFR01_1
PFR01_0
PFR01
H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-2 ポート 01 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P01_7) として使用されます。
1B
外部端子が外部バス端子 (D23) として使用されます。
0B
外部端子が汎用ポート (P01_6) として使用されます。
1B
外部端子が外部バス端子 (D22) として使用されます。
0B
外部端子が汎用ポート (P01_5) として使用されます。
1B
外部端子が外部バス端子 (D21) として使用されます。
0B
外部端子が汎用ポート (P01_4) として使用されます。
1B
外部端子が外部バス端子 (D20) として使用されます。
0B
外部端子が汎用ポート (P01_3) として使用されます。
1B
外部端子が外部バス端子 (D19) として使用されます。
0B
外部端子が汎用ポート (P01_2) として使用されます。
1B
外部端子が外部バス端子 (D18) として使用されます。
0B
外部端子が汎用ポート (P01_1) として使用されます。
1B
外部端子が外部バス端子 (D17) として使用されます。
0B
外部端子が汎用ポート (P01_0) として使用されます。
1B
外部端子が外部バス端子 (D16) として使用されます。
PFR01_7
PFR01_6
PFR01_5
PFR01_4
PFR01_3
PFR01_2
PFR01_1
PFR01_0
289
第 10 章 I/O ポート
■ ポート 05
ポート 05 は PFR05 で制御されます。
PFR05 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-3 ポート 05 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D85
11111111B
PFR05_7
PFR05_6
PFR05_5
PFR05_4
PFR05_3
PFR05_2
PFR05_1
PFR05_0
PFR05
H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-3 ポート 05 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P05_7) として使用されます。
1B
外部端子が外部バス端子 (A23) として使用されます。
0B
外部端子が汎用ポート (P05_6) として使用されます。
1B
外部端子が外部バス端子 (A22) として使用されます。
0B
外部端子が汎用ポート (P05_5) として使用されます。
1B
外部端子が外部バス端子 (A21) として使用されます。
0B
外部端子が汎用ポート (P05_4) として使用されます。
1B
外部端子が外部バス端子 (A20) として使用されます。
0B
外部端子が汎用ポート (P05_3) として使用されます。
1B
外部端子が外部バス端子 (A19) として使用されます。
0B
外部端子が汎用ポート (P05_2) として使用されます。
1B
外部端子が外部バス端子 (A18) として使用されます。
0B
外部端子が汎用ポート (P05_1) として使用されます。
1B
外部端子が外部バス端子 (A17) として使用されます。
0B
外部端子が汎用ポート (P05_0) として使用されます。
1B
外部端子が外部バス端子 (A16) として使用されます。
PFR05_7
PFR05_6
PFR05_5
PFR05_4
PFR05_3
PFR05_2
PFR05_1
PFR05_0
290
第 10 章 I/O ポート
■ ポート 06
ポート 06 は PFR06 で制御されます。
PFR06 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-4 ポート 06 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D86
11111111B
PFR06_7
PFR06_6
PFR06_5
PFR06_4
PFR06_3
PFR06_2
PFR06_1
PFR06_0
PFR06
H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-4 ポート 06 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P06_7) として使用されます。
1B
外部端子が外部バス端子 (A15) として使用されます。
0B
外部端子が汎用ポート (P06_6) として使用されます。
1B
外部端子が外部バス端子 (A14) として使用されます。
0B
外部端子が汎用ポート (P06_5) として使用されます。
1B
外部端子が外部バス端子 (A13) として使用されます。
0B
外部端子が汎用ポート (P06_4) として使用されます。
1B
外部端子が外部バス端子 (A12) として使用されます。
0B
外部端子が汎用ポート (P06_3) として使用されます。
1B
外部端子が外部バス端子 (A11) として使用されます。
0B
外部端子が汎用ポート (P06_2) として使用されます。
1B
外部端子が外部バス端子 (A10) として使用されます。
0B
外部端子が汎用ポート (P06_1) として使用されます。
1B
外部端子が外部バス端子 (A9) として使用されます。
0B
外部端子が汎用ポート (P06_0) として使用されます。
1B
外部端子が外部バス端子 (A8) として使用されます。
PFR06_7
PFR06_6
PFR06_5
PFR06_4
PFR06_3
PFR06_2
PFR06_1
PFR06_0
291
第 10 章 I/O ポート
■ ポート 07
ポート 07 は PFR07 で制御されます。
PFR07 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-5 ポート 07 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D87
11111111B
PFR07_7
PFR07_6
PFR07_5
PFR07_4
PFR07_3
PFR07_2
PFR07_1
PFR07_0
PFR07
H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-5 ポート 07 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P07_7) として使用されます。
1B
外部端子が外部バス端子 (A7) として使用されます。
0B
外部端子が汎用ポート (P07_6) として使用されます。
1B
外部端子が外部バス端子 (A6) として使用されます。
0B
外部端子が汎用ポート (P07_5) として使用されます。
1B
外部端子が外部バス端子 (A5) として使用されます。
0B
外部端子が汎用ポート (P07_4) として使用されます。
1B
外部端子が外部バス端子 (A4) として使用されます。
0B
外部端子が汎用ポート (P07_3) として使用されます。
1B
外部端子が外部バス端子 (A3) として使用されます。
0B
外部端子が汎用ポート (P07_2) として使用されます。
1B
外部端子が外部バス端子 (A2) として使用されます。
0B
外部端子が汎用ポート (P07_1) として使用されます。
1B
外部端子が外部バス端子 (A1) として使用されます。
0B
外部端子が汎用ポート (P07_0) として使用されます。
1B
外部端子が外部バス端子 (A0) として使用されます。
PFR07_7
PFR07_6
PFR07_5
PFR07_4
PFR07_3
PFR07_2
PFR07_1
PFR07_0
292
第 10 章 I/O ポート
■ ポート 08
ポート 08 は PFR08 で制御されます。
PFR08 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-6 ポート 08 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D88
11111111B
PFR08_7
PFR08_6
PFR08_5
PFR08_4
PFR08_3
PFR08_2
PFR08_1
PFR08_0
PFR08
H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-6 ポート 08 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P08_7) として使用されます。
1B
外部端子が外部バス端子 (RDY) として使用されます。
0B
外部端子が汎用ポート (P08_6) として使用されます。
1B
外部端子が外部バス端子 (BRQ) として使用されます。
0B
外部端子が汎用ポート (P08_5) として使用されます。
1B
外部端子が外部バス端子 (BGRNTX) として使用されます。
0B
外部端子が汎用ポート (P08_4) として使用されます。
1B
外部端子が外部バス端子 (RDX) として使用されます。
0B
外部端子が汎用ポート (P08_1) として使用されます。
1B
外部端子が外部バス端子 (WR1X) として使用されます。
0B
外部端子が汎用ポート (P08_0) として使用されます。
1B
外部端子が外部バス端子 (WR0X) として使用されます。
PFR08_7
PFR08_6
PFR08_5
PFR08_4
PFR08_1
PFR08_0
293
第 10 章 I/O ポート
■ ポート 09
ポート 09 は PFR09 で制御されます。
PFR09 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-7 ポート 09 の制御レジスタ構成
アドレス
PFR09 000D89H
bit7
6
5
−
−
−
-
-
-
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
表 10.4-7 ポート 09 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P09_4) として使用されます。
1B
外部端子が外部バス端子 (CS4X) として使用されます。
0B
外部端子が汎用ポート (P09_3) として使用されます。
1B
外部端子が外部バス端子 (CS3X) として使用されます。
0B
外部端子が汎用ポート (P09_2) として使用されます。
1B
外部端子が外部バス端子 (CS2X) として使用されます。
0B
外部端子が汎用ポート (P09_1) として使用されます。
1B
外部端子が外部バス端子 (CS1X) として使用されます。
0B
外部端子が汎用ポート (P09_0) として使用されます。
1B
外部端子が外部バス端子 (CS0X) として使用されます。
PFR09_4
PFR09_3
PFR09_2
PFR09_1
PFR09_0
294
初期値
PFR09_4 PFR09_3 PFR09_2 PFR09_1 PFR09_0 ---111111B
第 10 章 I/O ポート
■ ポート 10
ポート 10 は PFR10 で制御されます。
PFR10 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-8 ポート 10 の制御レジスタ構成
bit7
アドレス
PFR10 000D8AH
EPFR10 000DCAH
−
6
5
4
3
2
1
0
初期値
PFR10_6 PFR10_5 PFR10_4 PFR10_3 PFR10_2 PFR10_1 PFR10_0 -1111111B
−
−
-
R/W
EPFR10_5 EPFR10_4
R/W
R/W
−
−
−
EPFR10_0
R/W
R/W
R/W
R/W
--00---0B
表 10.4-8 ポート 10 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P10_6) として使用されます。
1B
外部端子が外部バス端子 (MCLKE) として使用されます。
PFR10_6
00B
PFR10_5/
EPFR10_5(*)
01B
外部端子が汎用ポート (P10_5) として使用されます。
10B
外部端子が外部バス端子 (MCLKI) として使用されます。
11B
外部端子が外部バス端子 (MCLKI の反転入力 ) として使用されます。
00B
PFR10_4/
EPFR10_4(*)
01B
外部端子が汎用ポート (P10_4) として使用されます。
10B
外部端子が外部バス端子 (MCLKO) として使用されます。
11B
外部端子が外部バス端子 (MCLKO の反転入力 ) として使用されます。
0B
外部端子が汎用ポート (P10_3) として使用されます。
1B
外部端子が外部バス端子 (WEX) として使用されます。
0B
外部端子が汎用ポート (P10_2) として使用されます。
1B
外部端子が外部バス端子 (BAAX) として使用されます。
0B
外部端子が汎用ポート (P10_1) として使用されます。
1B
外部端子が外部バス端子 (ASX) として使用されます。
PFR10_3
PFR10_2
PFR10_1
00B
PFR10_0/
EPFR10_0
01B
外部端子が汎用ポート (P10_0) として使用されます。
10B
外部端子が外部バス端子 (STSCLK) として使用されます。
11B
外部端子が外部バス端子 (STSCLK の反転入力 ) として使用されます。
(*) MB91F467R で SDRAM を使用しない場合は PFR10_5 を "0" にしてください。(推奨)
295
第 10 章 I/O ポート
■ ポート 11
ポート 11 は PFR11 で制御されます。
PFR11 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-9 ポート 11 の制御レジスタ構成
アドレス
PFR11 000D8BH
bit7
6
5
4
3
2
−
−
−
−
−
−
-
-
-
-
-
-
1
0
PFR11_1 PFR11_0
R/W
R/W
表 10.4-9 ポート 11 の制御レジスタの機能説明
ビット名
値
機能
0B
外部端子が汎用ポート (P11_1) として使用されます。
1B
外部端子が DMA 制御端子 (IOWRX) として使用されます。
0B
外部端子が汎用ポート (P11_0) として使用されます。
1B
外部端子が DMA 制御端子 (IORDX) として使用されます。
PFR11_1
PFR11_0
296
初期値
------00B
第 10 章 I/O ポート
■ ポート 13
ポート 13 は PFR13 で制御されます。
PFR13 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部バス端子 ( データ端子 ) となります。
図 10.4-10 ポート 13 の制御レジスタ構成
アドレス
PFR13 000D8DH
EPFR13 000DCDH
bit7
6
5
4
3
2
1
0
−
−
−
−
−
PFR13_2 PFR13_1 PFR13_0
−
−
−
−
−
EPFR13_2
−
−
-
-
-
-
-
R/W
R/W
R/W
初期値
-----000B
-----0--B
表 10.4-10 ポート 13 の制御レジスタの機能説明
ビット名
値
機能
00B
PFR13_2/
EPFR13_2
01B
外部端子が汎用ポート (P13_2) として使用されます。
10B
外部端子が DMA 制御端子 (DEOTX0 入力 ) として使用されます。
11B
外部端子が DMA 制御端子 (DEOP0 出力 ) として使用されます。
0B
外部端子が汎用ポート (P13_1) として使用されます。
1B
外部端子が DMA 制御端子 (DACK0X0 出力 ) として使用されます。
0B
外部端子が汎用ポート (P13_0) として使用されます。
1B
外部端子が DMA 制御端子 (DREQ0 入力 ) として使用されます。
PFR13_1
PFR13_0
297
第 10 章 I/O ポート
■ ポート 14
ポート 14 は PFR14 および EPFR14 で制御されます。
PFR14 の対応するビットが "0" のとき , 端子は汎用ポートとして使用され , "1" の場合
は外部端子はペリフェラルへの入力となります。ICU ( インプットキャプチャユニット )
への入力選択は PFR と EPFR の組合せで決まります。
図 10.4-11 ポート 14 の制御レジスタ構成
アドレス
PFR14 000D8EH
EPFR14 000DCEH
bit7
6
5
4
−
−
−
−
PFR14_3 PFR14_2 PFR14_1 PFR14_0 ----0000B
3
−
−
−
−
EPFR14_3 EPFR14_2 EPFR14_1 EPFR14_0
−
−
−
−
R/W
2
R/W
1
R/W
0
初期値
----0000B
R/W
表 10.4-11 ポート 14 の制御レジスタの機能説明 (1 / 2)
ビット名
値
00B
01B
PFR14_3/EPFR14_3
10B
11B
外部端子から次の 2 つへ入力されます。
・リロードタイマ 3 の外部トリガ入力
・PPG3 の外部トリガ入力
内部の ICU3 の入力には LIN-UART3 の LSYN 出力が接続されます。
01B
298
外部端子が汎用ポート (P14_3) として使用されます。*
ICU3 の入力には LIN-UART3 の LSYN 出力が接続されます。LIN
通信時の LSYN パルス幅を計測して LIN スレーブ動作時のボー
レートを検出するために使用できます。
外部端子から次の 3 つへ入力されます。
・ICU3 の入力
・リロードタイマ 3 の外部トリガ入力
・PPG3 の外部トリガ入力
00B
PFR14_2/EPFR14_2
機能
外部端子が汎用ポート (P14_2) として使用されます。*
ICU2 の入力には LIN-UART2 の LSYN 出力が接続されます。
10B
外部端子から次の 3 つへ入力されます。
・ICU2 の入力
・リロードタイマ 2 の外部トリガ入力
・PPG2 の外部トリガ入力
11B
外部端子から次の 2 つへ入力されます。
・リロードタイマ 2 の外部トリガ入力
・PPG2 の外部トリガ入力
ICU2 の入力には LIN-UART2 の LSYN 出力が接続されます。
第 10 章 I/O ポート
表 10.4-11 ポート 14 の制御レジスタの機能説明 (2 / 2)
ビット名
値
00B
01B
PFR14_1/EPFR14_1
外部端子が汎用ポート (P14_1) として使用されます。*
ICU1 の入力には LIN-UART1 の LSYN 出力が接続されます。
10B
外部端子から次の 3 つへ入力されます。
・ICU1 の入力
・リロードタイマ 1 の外部トリガ入力
・PPG1 の外部トリガ入力
11B
外部端子から次の 2 つへ入力されます。
・リロードタイマ 1 の外部トリガ入力
・PPG1 の外部トリガ入力
ICU1 の入力には LIN-UART1 の LSYN 出力が接続されます。
00B
01B
PFR14_0/EPFR14_0
機能
外部端子が汎用ポート (P14_0) として使用されます。
ICU0 の入力には LIN-UART0 の LSYN 出力が接続されます。
10B
外部端子から次の 3 つへ入力されます。
・ICU0 の入力
・リロードタイマ 0 の外部トリガ入力
・PPG0 の外部トリガ入力
11B
外部端子から次の 2 つへ入力されます。
・リロードタイマ 0 の外部トリガ入力
・PPG0 の外部トリガ入力
ICU0 の入力には LIN-UART0 の LSYN 出力が接続されます。
* : ポートを選択している場合でもリロードタイマのトリガ入力 , PPG のトリガ入力は可能です。
299
第 10 章 I/O ポート
■ ポート 15
ポート 15 は PFR15 および EPFR15 で制御されます。
PFR が "0" のときは汎用ポートとなり , "1" のときには周辺マクロ (OCU あるいはリロー
ドタイマ ) からの出力端子となります。
図 10.4-12 ポート 15 の制御レジスタ構成
アドレス
PFR15 000D8FH
EPFR15 000DCFH
bit7
6
5
4
−
−
−
−
PFR15_3 PFR15_2 PFR15_1 PFR15_0 ----0000B
3
−
−
−
−
EPFR15_3 EPFR15_2 EPFR15_1 EPFR15_0
−
−
−
−
R/W
2
R/W
1
R/W
0
初期値
----0000B
R/W
表 10.4-12 ポート 15 の制御レジスタの機能説明
ビット名
PFR15_3/EPFR15_3
PFR15_2/EPFR15_2
PFR15_1/EPFR15_1
PFR15_0/EPFR15_0
300
値
機能
0XB
P15_3 : 外部端子が汎用ポート (P15_3) として使用されます。
10B
OCU3 : 外部端子が OCU3 の出力として使用されます。
11B
TOT3 : 外部端子がリロードタイマ 3 の出力として使用されます。
0XB
P15_2 : 外部端子が汎用ポート (P15_2) として使用されます。
10B
OCU2 : 外部端子が OCU2 の出力として使用されます。
11B
TOT2 : 外部端子がリロードタイマ 2 の出力として使用されます。
0XB
P15_1 : 外部端子が汎用ポート (P15_1) として使用されます。
10B
OCU1 : 外部端子が OCU1 出力として使用されます。
11B
TOT1 : 外部端子がリロードタイマ 1 の出力として使用されます。
0XB
P15_0 : 外部端子が汎用ポート (P15_0) として使用されます。
10B
OCU0 : 外部端子が OCU0 の出力として使用されます。
11B
TOT0 : 外部端子がリロードタイマ 0 の出力として使用されます。
第 10 章 I/O ポート
■ ポート 16
ポート 16 は PFR16 および EPFR16 で制御されます。
図 10.4-13 ポート 16 の制御レジスタ構成
アドレス
PFR16 000D90H
EPFR16 000DD0H
bit7
6
5
4
3
2
1
0
PFR16_7
−
−
−
−
−
−
−
EPFR16_7
−
−
−
−
−
−
−
R/W
−
−
−
−
−
−
−
初期値
0-------B
0-------B
表 10.4-13 ポート 16 の制御レジスタの機能説明
ビット名
値
PFR16_7/EPFR16_7
機能
0XB
P16_7 : 外部端子が汎用ポート (P16_7) として使用されます。
10B
設定禁止
1XB
ATGX : 外部端子が ATGX 入力として使用されます。*
* : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。
■ ポート 17
ポート 17 は PFR17 で制御されます。
図 10.4-14 ポート 17 の制御レジスタ構成
PFR17
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D91H PFR17_7 PFR17_6 PFR17_5 PFR17_4 PFR17_3 PFR17_2 PFR17_1 PFR17_0 00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-14 ポート 17 の制御レジスタの機能説明 (1 / 2)
ビット名
値
機能
0
P17_7 : 外部端子が汎用ポート (P17_7) として使用されます。
1
PPG7 : PPG 出力 (PPG7) として使用されます。
0
P17_6 : 外部端子が汎用ポート (P17_6) として使用されます。
1
PPG6 : PPG 出力 (PPG6) として使用されます。
0
P17_5 : 外部端子が汎用ポート (P17_5) として使用されます。
1
PPG5 : PPG 出力 (PPG5) として使用されます。
0
P17_4 : 外部端子が汎用ポート (P17_4) として使用されます。
1
PPG4 : PPG 出力 (PPG4) として使用されます。
0
P17_3 : 外部端子が汎用ポート (P17_3) として使用されます。
1
PPG3 : PPG 出力 (PPG3) として使用されます。
PFR17_7
PFR17_6
PFR17_5
PFR17_4
PFR17_3
301
第 10 章 I/O ポート
表 10.4-14 ポート 17 の制御レジスタの機能説明 (2 / 2)
ビット名
値
機能
0
P17_2 : 外部端子が汎用ポート (P17_2) として使用されます。
1
PPG2 : PPG 出力 (PPG2) として使用されます。
0
P17_1 : 外部端子が汎用ポート (P17_1) として使用されます。
1
PPG1 : PPG 出力 (PPG1) として使用されます。
0
P17_0 : 外部端子が汎用ポート (P17_0) として使用されます。
1
PPG0 : PPG 出力 (PPG0) として使用されます。
PFR17_2
PFR17_1
PFR17_0
■ ポート 18
ポート 18 は PFR18 で制御されます。
図 10.4-15 ポート 18 の制御レジスタ構成
アドレス
PFR18 000D92H
EPFR18 000DD2H
bit7
6
5
4
3
−
−
−
−
−
PFR18_2 PFR18_1 PFR18_0
−
−
−
−
−
EPFR18_2
−
−
−
R/W
R/W
R/W
−
−
−
−
2
1
0
初期値
-----000B
-----0--B
表 10.4-15 ポート 18 の制御レジスタの機能説明
ビット名
PFR18_2/EPFR18_2
値
機能
0XB
P18_2 : 外部端子が汎用ポート (P18_2) として使用されます。
10B
SCK6 : LIN-UART6 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシ
リアルモードレジスタの SCKE ビットで行います。*
11B
設定禁止です。
0B
P18_1 : 外部端子が汎用ポート (P18_1) として使用されます。
1B
SOT6 : LIN-UART6 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモー
ドレジスタの SOE ビットに "1" を設定してください。
0B
P18_0 : 外部端子が汎用ポート (P18_0) として使用されます。
1B
SIN6 : LIN-UART6 の SIN として使用されます。*
PFR18_1
PFR18_0
* : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。
302
第 10 章 I/O ポート
■ ポート 19
ポート 19 は PFR19 で制御されます。
図 10.4-16 ポート 19 の制御レジスタ構成
アドレス
PFR19 000D93H
EPFR19 000DD3H
bit7
6
5
4
3
2
1
0
−
PFR19_6 PFR19_5 PFR19_4
−
PFR19_2 PFR19_1 PFR19_0
−
EPFR19_6
−
−
−
EPFR19_2
−
−
−
R/W
R/W
R/W
−
R/W
R/W
R/W
初期値
-000-000B
-0---0--B
表 10.4-16 ポート 19 の制御レジスタの機能説明
ビット名
PFR19_6/EPFR19_6
PFR19_5
PFR19_4
PFR19_2/EPFR19_2
値
0XB
P19_6 : 外部端子が汎用ポート (P19_6) として使用されます。
10B
SCK5 : LIN-UART5 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシリ
アルモードレジスタの SCKE ビットで行います。*
11B
設定禁止です。
0B
P19_5 : 外部端子が汎用ポート (P19_5) として使用されます。
1B
SOT5 : LIN-UART5 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモード
レジスタの SOE ビットに "1" を設定してください。
0B
P19_4 : 外部端子が汎用ポート (P19_4) として使用されます。
1B
SIN5 : LIN-UART5 の SIN として使用されます。*
0XB
P19_2 : 外部端子が汎用ポート (P19_2) として使用されます。
10B
SCK4 : LIN-UART4 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシリ
アルモードレジスタの SCKE ビットで行います。*
11B
設定禁止です。
0B
P19_1 : 外部端子が汎用ポート (P19_1) として使用されます。
1B
SOT4 : LIN-UART4 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモード
レジスタの SOE ビットに "1" を設定してください。
0B
P19_0 : 外部端子が汎用ポート (P19_0) として使用されます。
1B
SIN4 : LIN-UART4 の SIN として使用されます。*
PFR19_1
PFR19_0
機能
* : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。
303
第 10 章 I/O ポート
■ ポート 20
ポート 20 は PFR20 および EPFR20 で制御されます。
図 10.4-17 ポート 20 の制御レジスタ構成
アドレス
PFR20 000D94H
EPFR20 000DD4H
bit7
6
5
4
3
2
1
0
−
PFR20_6 PFR20_5 PFR20_4
−
PFR20_2 PFR20_1 PFR20_0
−
EPFR20_6 EPFR20_5 EPFR20_4
−
EPFR20_2 EPFR20_1 EPFR20_0
R/W
−
R/W
R/W
−
R/W
R/W
初期値
-000-000B
-000-000B
R/W
表 10.4-17 ポート 20 の制御レジスタの機能説明
ビット名
PFR20_6/EPFR20_6
PFR20_5/EPFR20_5
PFR20_4/EPFR20_4
PFR20_2/EPFR20_2
PFR20_1/EPFR20_1
PFR20_0/EPFR20_0
値
機能
0XB
P20_6 : 外部端子が汎用ポートとして使用されます。
10B
SCK3 : LIN-UART3 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシ
リアルモードレジスタの SCKE ビットで行います。*1
11B
FRCK3 : フリーランタイマ 3 の CK として使用されます。*2
0XB
P20_5 : 外部端子が汎用ポートとして使用されます。
10B
SOT3 : LIN-UART3 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモー
ドレジスタの SOE ビットに "1" を設定してください。
11B
設定禁止です。
0XB
P20_4 : 外部端子が汎用ポートとして使用されます。
10B
SIN3 : LIN-UART3 の SIN として使用されます。 *1
11B
設定禁止です。
0XB
P20_2 : 外部端子が汎用ポートとして使用されます。
10B
SCK2 : LIN-UART2 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシ
リアルモードレジスタの SCKE ビットで行います。*1
11B
FRCK3 : フリーランタイマ 3 の CK として使用されます。*2
0XB
P20_1 : 外部端子が汎用ポートとして使用されます。
10B
SOT2 : LIN-UART2 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモー
ドレジスタの SOE ビットに "1" を設定してください。
11B
設定禁止です。
0XB
P20_0 : 外部端子が汎用ポートとして使用されます。
10B
SIN2 : LIN-UART2 の SIN として使用されます。 *1
11B
設定禁止です。
*1 : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。
*2 : フリーランタイマの入力クロック (FRCKx) は PFR と EPFR の設定とは関係なく常に入力されます。
304
第 10 章 I/O ポート
■ ポート 21
ポート 21 は PFR21 および EPFR21 で制御されます。
図 10.4-18 ポート 21 の制御レジスタ構成
アドレス
PFR21 000D95H
EPFR21 000DD5H
bit7
6
5
4
3
2
1
0
−
PFR21_6 PFR21_5 PFR21_4
−
PFR21_2 PFR21_1 PFR21_0
−
EPFR21_6 EPFR21_5 EPFR21_4
−
EPFR21_2 EPFR21_1 EPFR21_0
R/W
−
R/W
R/W
−
R/W
R/W
初期値
-000-000B
-000-000B
R/W
表 10.4-18 ポート 21 の制御レジスタの機能説明
ビット名
PFR21_6/EPFR21_6
PFR21_5/EPFR21_5
PFR21_4/EPFR21_4
PFR21_2/EPFR21_2
PFR21_1/EPFR21_1
PFR21_0/EPFR21_0
値
機能
0XB
P21_6 : 外部端子が汎用ポートとして使用されます。
10B
SCK1 : LIN-UART1 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシ
リアルモードレジスタの SCKE ビットで行います。*1
11B
FRCK1 : フリーランタイマ 1 の CK として使用されます。 *2
0XB
P21_5 : 外部端子が汎用ポートとして使用されます。
10B
SOT1 : LIN-UART1 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモー
ドレジスタの SOE ビットに "1" を設定してください。
11B
設定禁止です。
0XB
P21_4 : 外部端子が汎用ポートとして使用されます。
10B
SIN1 : LIN-UART1 の SIN として使用されます。
11B
設定禁止です。
0XB
P21_2 : 外部端子が汎用ポートとして使用されます。
10B
SCK0 : LIN-UART0 の SCK として使用されます。
SCK として使用する場合の入出力の設定は LIN-UART のシ
リアルモードレジスタの SCKE ビットで行います。*1
11B
FRCK0 : フリーランタイマ 0 の CK として使用されます。 *2
0XB
P21_1 : 外部端子が汎用ポートとして使用されます。
10B
SOT0 : LIN-UART0 の SOT として使用されます。
SOT 出力として使用する場合は LIN-UART のシリアルモー
ドレジスタの SOE ビットに "1" を設定してください。
11B
設定禁止です。
0XB
P21_0 : 外部端子が汎用ポートとして使用されます。
10B
SIN0 : LIN-UART0 の SIN として使用されます。
11B
設定禁止です。
*1
*1
*1 : ペリフェラルを入力として使用する場合は汎用ポートを選択していても入力されます。
*2 : フリーランタイマの入力クロック (FRCKx) は PFR と EPFR の設定とは関係なく常に入力されます。
305
第 10 章 I/O ポート
■ ポート 22
ポート 22 は PFR22 で制御されます。
通常動作時は , 割込み入力 (INT15, INT14, INT13, INT12) は PFR の設定とは関係なく入
力されますが , STOP モード時は内部 INT 入力への入力は以下のようになります。
• PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。
• PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。
このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前
に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない
割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う
か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。
図 10.4-19 ポート 22 の制御レジスタ構成
PFR22
bit7
6
5
4
3
2
アドレス
000D96H PFR22_7 PFR22_6 PFR22_5 PFR22_4 PFR22_3 PFR22_2
R/W
R/W
R/W
R/W
R/W
R/W
1
−
−
0
初期値
PFR22_0 000000-0B
R/W
表 10.4-19 ポート 22 の制御レジスタの機能説明
ビット名
PFR22_7
値
0
P22_7 : 外部端子が汎用ポートとして使用されます。
1
SCL1 : I2C_1 の SCL 入出力として使用されます。
0
P22_6 : 外部端子が汎用ポートとして使用されます。
INT15 : INT15 へ入力されます。
1
SDA1 : I2C_1 の SDA 入出力として使用されます。
INT15 : INT15 へ入力されます。
INT15 を STOP モード解除用として使用する場合は "1" にしてください。
0
P22_5 : 外部端子が汎用ポートとして使用されます。
1
SCL0 : I2C_0 の SCL 入出力として使用されます。
0
P22_4 : 外部端子が汎用ポートとして使用されます。
INT14 : INT14 へ入力されます。
1
SDA0 : I2C_0 の SDA 入出力として使用されます。
INT14 : INT14 へ入力されます。
INT14 を STOP モード解除用として使用する場合は "1" にしてください。
0
P22_3 : 外部端子が汎用ポートとして使用されます。
1
設定禁止です。
0
P22_2 : 外部端子が汎用ポートとして使用されます。
INT13 : INT13 へ入力されます。
1
INT13 : INT13 へ入力されます。
INT13 を STOP モード解除用として使用する場合は "1" にしてください。
0
P22_0 : 外部端子が汎用ポートとして使用されます。
INT12 : INT12 へ入力されます。
1
INT12 : INT12 へ入力されます。
INT12 を STOP モード解除用として使用する場合は "1" にしてください。
PFR22_6
PFR22_5
PFR22_4
PFR22_3
PFR22_2
PFR22_0
306
機能
第 10 章 I/O ポート
■ ポート 23
ポート 23 は PFR23 で制御されます。
通常動作時は , 割込み入力 (INT11, INT10, INT9, INT8) は PFR の設定とは関係なく入力
されますが , STOP モード時は内部 INT 入力への入力は以下のようになります。
• PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。
• PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。
このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前
に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない
割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う
か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。
図 10.4-20 ポート 23 の制御レジスタ構成
PFR23
アドレス
000D97H
bit7
6
5
−
PFR23_6
−
−
R/W
−
4
3
2
1
0
初期値
PFR23_4 PFR23_3 PFR23_2 PFR23_1 PFR23_0 -0-00000B
R/W
R/W
R/W
R/W
R/W
表 10.4-20 ポート 23 の制御レジスタの機能説明
ビット名
値
0
P23_6 : 外部端子が汎用ポートとして使用されます。
INT11 : INT11 へ入力されます。
1
INT11 : INT11 へ入力されます。
INT11 を STOP モード解除用として使用する場合は "1" にしてください。
0
P23_4 : 外部端子が汎用ポートとして使用されます。
INT10 : INT10 へ入力されます。
1
INT10 : INT10 へ入力されます 。
INT10 を STOP モード解除用として使用する場合は "1" にしてください。
0
P23_3 : 外部端子が汎用ポートとして使用されます。
1
TX1 : CAN1 の TX として使用されます。
0
P23_2 : 外部端子が汎用ポートとして使用されます。
RX1 : CAN1 の RX へ入力されます。
INT9 : INT9 へ入力されます。
1
RX1 : CAN1 の RX へ入力されます。
INT9 : INT9 へ入力されます。
INT9 を STOP モード解除用として使用する場合は "1" にしてください。
0
P23_1 : 外部端子が汎用ポートとして使用されます。
1
TX0 : CAN0 の TX として使用されます。
0
P23_0 : 外部端子が汎用ポートとして使用されます。
RX0 : CAN0 の RX へ入力されます。
INT8 : INT8 へ入力されます。
1
RX0 : CAN0 の RX へ入力されます。
INT8 : INT8 へ入力されます。
INT8 を STOP モード解除用として使用する場合は "1" にしてください。
PFR23_6
PFR23_4
PFR23_3
PFR23_2
PFR23_1
機能
PFR23_0
307
第 10 章 I/O ポート
■ ポート 24
ポート 24 は PFR24 で制御されます。
通常動作時は , 割込み入力 (INT7, INT6, INT5, INT4, INT3, INT2, INT1, INT0) は PFR の
設定とは関係なく入力されますが , STOP モード時は内部 INT 入力への入力は以下のよ
うになります。
• PFR = 0 のとき…内部 STOP モード信号により , 内部 INT 入力に "0" が入力される。
• PFR = 1 のとき…外部端子の値がそのまま内部 INT 入力に入力される。
このため , STOP モード解除用として使用する割込みに対しては , STOP モード実行前
に PFR を "1" に設定することが必要です。また , STOP モード解除用として使用しない
割込みに対しては , 外部割込みレジスタにてインアクティブにするための設定を行う
か , PFR を "1" に設定して外部端子で処理するなどの注意が必要です。
図 10.4-21 ポート 24 の制御レジスタ構成
PFR24
bit7
6
5
4
3
2
1
0
アドレス
初期値
000D98H PFR24_7 PFR24_6 PFR24_5 PFR24_4 PFR24_3 PFR24_2 PFR24_1 PFR24_0 00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
表 10.4-21 ポート 24 の制御レジスタの機能説明 (1 / 2)
ビット名
値
機能
0
P24_7 : 外部端子が汎用ポートとして使用されます。
INT7 : INT7 へ入力されます。
1
INT7 : INT7 へ入力されます。
INT7 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_6 : 外部端子が汎用ポートとして使用されます。
INT6 : INT6 へ入力されます。
1
INT6 : INT6 へ入力されます。
INT6 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_5 : 外部端子が汎用ポートとして使用されます。
INT5 : INT5 へ入力されます。
1
SCL2 : I2C_2 の SCL として使用されます。
INT5 : INT5 へ入力されます。
INT5 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_4 : 外部端子が汎用ポートとして使用されます。
INT4 : INT4 へ入力されます。
1
SDA2 : I2C_2 の SDA として使用されます。
INT4 : INT4 へ入力されます。
INT4 を STOP モード解除用として使用する場合は "1" にしてください。
PFR24_7
PFR24_6
PFR24_5
PFR24_4
308
第 10 章 I/O ポート
表 10.4-21 ポート 24 の制御レジスタの機能説明 (2 / 2)
ビット名
値
機能
0
P24_3 : 外部端子が汎用ポートとして使用されます。
INT3 : INT3 へ入力されます。
1
INT3 : INT3 へ入力されます。
INT3 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_2 : 外部端子が汎用ポートとして使用されます。
INT2 : INT2 へ入力されます。
1
INT2 : INT2 へ入力されます。
INT2 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_1 : 外部端子が汎用ポートとして使用されます。
INT1 : INT1 へ入力されます。
1
INT1 : INT1 へ入力されます。
INT1 を STOP モード解除用として使用する場合は "1" にしてください。
0
P24_0 : 外部端子が汎用ポートとして使用されます。
INT0 : INT0 へ入力されます。
1
INT0 : INT0 へ入力されます。
INT0 を STOP モード解除用として使用する場合は "1" にしてください。
PFR24_3
PFR24_2
PFR24_1
PFR24_0
309
第 10 章 I/O ポート
■ ポート 28
ポート 28 は A/D コンバータの入力と兼用しており , 汎用ポートとして使用するために
は PFR28 の対応するビットを "0" に設定するだけでなく , ADER( アナログ入力許可レ
ジスタ ) の対応するビットには "0" を設定してください。
図 10.4-22 ポート 28 の制御レジスタ構成
MB91461
アドレス
PFR28 000D9CH
ADERL 0001A2H
上位バイト
bit7
−
−
−
6
−
−
−
5
−
−
−
4
3
2
1
0
初期値
PFR28_4 PFR28_3 PFR28_2 PFR28_1 PFR28_0 00000000B
ADE12 ADE11 ADE10
R/W
R/W
R/W
ADE9
R/W
ADE8
R/W
00000000B
MB91F467R
bit7
6
5
4
3
2
1
0
アドレス
初期値
PFR28 000D9CH PFR28_7 PFR28_6 PFR28_5 PFR28_4 PFR28_3 PFR28_2 PFR28_1 PFR28_0 00000000B
ADERL 0001A2H ADE15 ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8 00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
上位バイト
表 10.4-22 ポート 28 の制御レジスタの機能説明
ビット名
PFR28_7/ ADE15*
PFR28_6 / ADE14*
PFR28_5 / ADE13*
PFR28_4 / ADE12
PFR28_3 / ADE11
PFR28_2 / ADE10
PFR28_1 / ADE9
PFR28_0 / ADE8
値
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
00B
01B, 10B
11B
機能
P28_7 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN15 : A/D コンバータのアナログ入力として使用されます。
P28_6 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN14 : A/D コンバータのアナログ入力として使用されます。
P28_5 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN13 : A/D コンバータのアナログ入力として使用されます。
P28_4 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN12 : A/D コンバータのアナログ入力として使用されます。
P28_3 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN11 : A/D コンバータのアナログ入力として使用されます。
P28_2 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN10 : A/D コンバータのアナログ入力として使用されます。
P28_1 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN9 : A/D コンバータのアナログ入力として使用されます。
P28_0 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
AN8 : A/D コンバータのアナログ入力として使用されます。
*: これらは MB91F467R にのみ適用されます。
310
第 10 章 I/O ポート
■ ポート 29
ポート 29 は A/D コンバータの入力と兼用しており , 汎用ポートとして使用するために
は PFR29 の対応するビットを "0" に設定するだけでなく , ADER( アナログ入力許可レ
ジスタ ) の対応するビットには "0" を設定してください。
図 10.4-23 ポート 29 の制御レジスタ構成
bit7
6
5
4
3
2
1
0
アドレス
初期値
PFR29 000D9DH PFR29_7 PFR29_6 PFR29_5 PFR29_4 PFR29_3 PFR29_2 PFR29_1 PFR29_0 00000000B
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1 ADE0 00000000B
ADERL 0001A3H ADE7
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
下位バイト
表 10.4-23 ポート 29 の制御レジスタの機能説明
ビット名
値
00B
PFR29_7 / ADE7
PFR29_6 / ADE6
PFR29_5 / ADE5
PFR29_4 / ADE4
PFR29_3 / ADE3
PFR29_2 / ADE2
PFR29_1 / ADE1
PFR29_0 / ADE0
01B, 10B
機能
P29_7 : 外部端子が汎用ポートとして使用されます。
設定禁止です。
11B
AN7 : A/D コンバータのアナログ入力として使用されます。
00B
P29_6 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN6 : A/D コンバータのアナログ入力として使用されます。
00B
P29_5 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN5 : A/D コンバータのアナログ入力として使用されます。
00B
P29_4 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN4 : A/D コンバータのアナログ入力として使用されます。
00B
P29_3 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN3 : A/D コンバータのアナログ入力として使用されます。
00B
P29_2 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN2: A/D コンバータのアナログ入力として使用されます。
00B
P29_1 : 外部端子が汎用ポートとして使用されます。
01B, 10B
設定禁止です。
11B
AN1 : A/D コンバータのアナログ入力として使用されます。
00B
P29_0 : 外部端子が汎用ポートとして使用されます。
01B, 10B
11B
設定禁止です。
AN0 : A/D コンバータのアナログ入力として使用されます。
311
第 10 章 I/O ポート
10.5
端子入力レベルの選択
端子の入力レベルは , レジスタ設定により選択することができます。
■ 端子入力レベル
表 10.5-1 に , 入力レベルを示します。
表 10.5-1 入力レベル
VIL
名称
VIH
CMOS
VIL = 0.3 × VDD
VIH = 0.7 × VDD
CMOS シュミットトリガ 1
VIL = 0.3 × VDD
VIH = 0.7 × VDD
CMOS シュミットトリガ 2
VIL = 0.2 × VDD
VIH = 0.8 × VDD
Automotive
VIL = 0.5 × VDD
VIH = 0.8 × VDD
■ 端子入力レベルの選択
端子ごとの入力レベルの選択には , 端子入力レベル選択レジスタ (PILR, EPIRL) が使用
されます。表 10.5-2 , 表 10.5-3 , 表 10.5-4 , 表 10.5-5 , 表 10.5-6 に 端子入力レベル選択レ
ジスタの設定を示します
表 10.5-2 MB91461 の端子入力レベル選択レジスタの設定
PILRxy
端子入力レベル
0 [ 初期値 ]
1
CMOS シュミットトリガ 1
CMOS シュミットトリガ 2
表 10.5-3 MB91F467RA の端子入力レベル選択レジスタの設定 (5V 端子 )
PILRxy
EPILRxy
0 [ 初期値 ]
0 [ 初期値 ]
CMOS シュミットトリガ 1
0
1
Automotive
1
0
CMOS シュミットトリガ 2
1
1
設定禁止
端子入力レベル
適用される端子は5V耐圧端子(2, 3, 119∼126, 134∼145, 148∼160, 163∼175ピン )です。
表 10.5-4 MB91F467RB の端子入力レベル選択レジスタの設定 (5V 端子 )
PILRxy
EPILRxy
0 [ 初期値 ]
0 [ 初期値 ]
CMOS シュミットトリガ 1
0
1
設定禁止
1
0
Automotive
1
1
CMOS シュミットトリガ 2
端子入力レベル
適用される端子は5V耐圧端子(2, 3, 119∼126, 134∼145, 148∼160, 163∼175ピン )です。
312
第 10 章 I/O ポート
表 10.5-5 MB91F467R の端子入力レベル選択レジスタ設定 (I2C 端子 )
PILRxy
端子入力レベル
0 [ 初期値 ]
CMOS
1
CMOS シュミットトリガ 1
適用される端子は , 4 ∼ 7, 117, 118 ピンです。
表 10.5-6 MB91F467R の端子入力レベル選択レジスタ設定 (3.3V 端子 )
PILRxy
端子入力レベル
0 [ 初期値 ]
CMOS
1
CMOS シュミットトリガ 2
適用される端子は , 8 ∼ 10, 15 ∼ 35, 46 ∼ 56, 59 ∼ 72, 75 ∼ 87, 90 ∼ 113 ピンです。
<注意事項>
MB91V460 では PILR の値によらず CMOS シュミットトリガ入力となります。
(VIL = 0.3 × VDD/VIH = 0.7 × VDD)
313
第 10 章 I/O ポート
図 10.5-1 端子入力レベル選択レジスタ
アドレス
PILR00
PILR01
PILR05
PILR06
PILR07
PILR08
PILR09
PILR10
PILR11
PILR13
PILR14
PILR15
PILR16
PILR17
PILR18
PILR19
PILR20
PILR21
PILR22
PILR23
PILR24
PILR28
PILR29
bit
7
6
000E40H PILR00_7 PILR00_6
000E41H PILR01_7 PILR01_6
000E45H PILR05_7 PILR05_6
000E46H PILR06_7 PILR06_6
000E47H PILR07_7 PILR07_6
000E48H PILR08_7 PILR08_6
000E49H
−
−
000E4AH
PILR10_6
−
000E4BH
−
−
000E4DH
−
−
000E4EH
−
−
000E4FH
−
−
000E50H PILR16_7
−
000E51H PILR17_7 PILR17_6
000E52H
−
−
000E53H
PILR19_6
−
000E54H
PILR20_6
−
000E55H
PILR21_6
−
000E56H PILR22_7 PILR22_6
000E57H
PILR23_6
−
000E58H PILR24_7 PILR24_6
000E5CH PILR28_7 PILR28_6
000E5DH PILR29_7 PILR29_6
R/W
R/W
5
4
3
2
1
0
初期値
PILR00_5 PILR00_4 PILR00_3 PILR00_2 PILR00_1 PILR00_0 00000000B
PILR01_5 PILR01_4 PILR01_3 PILR01_2 PILR01_1 PILR01_0 00000000B
PILR05_5 PILR05_4 PILR05_3 PILR05_2 PILR05_1 PILR05_0 00000000B
PILR06_5 PILR06_4 PILR06_3 PILR06_2 PILR06_1 PILR06_0 00000000B
PILR07_5 PILR07_4 PILR07_3 PILR07_2 PILR07_1 PILR07_0 00000000B
PILR08_1 PILR08_0 0000--00B
−
−
PILR09_4
PILR09_3
PILR09_2
PILR09_1
PILR09_0 ---00000B
−
PILR10_5 PILR10_4 PILR10_3 PILR10_2 PILR10_1 PILR10_0 -0000000B
PILR08_5 PILR08_4
−
−
−
−
−
PILR11_1 PILR11_0
PILR13_2 PILR13_1 PILR13_0
−
−
−
−
PILR14_3 PILR14_2 PILR14_1 PILR14_0
−
−
PILR15_3 PILR15_2 PILR15_1 PILR15_0
−
−
−
−
−
−
PILR17_5 PILR17_4 PILR17_3 PILR17_2 PILR17_1 PILR17_0
−
PILR18_2 PILR18_1 PILR18_0
PILR19_5 PILR19_4
−
PILR19_2 PILR19_1 PILR19_0
PILR20_5 PILR20_4
−
PILR20_2 PILR20_1 PILR20_0
PILR21_5 PILR21_4
−
PILR21_2 PILR21_1 PILR21_0
−
−
PILR22_5 PILR22_4 PILR22_3 PILR22_2
−
−
PILR22_0
PILR23_4 PILR23_3 PILR23_2 PILR23_1 PILR23_0
PILR24_5 PILR24_4 PILR24_3 PILR24_2 PILR24_1 PILR24_0
PILR28_5 PILR28_4 PILR28_3 PILR28_2 PILR28_1 PILR28_0
PILR29_5 PILR29_4 PILR29_3 PILR29_2 PILR29_1 PILR29_0
R/W
R/W
R/W
R/W
R/W
------00B
-----000B
----0000B
----0000B
0-------B
00000000B
-----000B
-000-000B
-000-000B
-000-000B
----00-0B
-0-00000B
00--0000B
00000000B
00000000B
R/W
PILR00 ∼ PILR13 および PILR28_7 ∼ PILR28_5 は MB91461 にはありません。
図 10.5-2 拡張端子入力レベル選択レジスタ
bit
7
6
5
アドレス
EPILR14 000E8EH
−
−
−
EPILR15 000E8FH
−
−
−
EPILR17 000E91H
−
−
−
000E92
EPILR18
−
−
−
H
EPILR19_6 EPILR19_5
EPILR19 000E93H
−
EPILR20_6 EPILR20_5
EPILR20 000E94H
−
EPILR21_6 EPILR21_5
EPILR21 000E95H
−
EPILR22 000E96H
−
−
−
EPILR23_6
EPILR23 000E97H
−
−
EPILR24 000E98H EPILR24_7 EPILR24_6
−
R/W
R/W
R/W
MB91461 には EPILR レジスタはありません。
314
4
3
2
1
0
−
EPILR14_3 EPILR14_2 EPILR14_1 EPILR14_0
−
EPILR15_3 EPILR15_2 EPILR15_1 EPILR15_0
−
EPILR17_3 EPILR17_2 EPILR17_1 EPILR17_0
−
−
EPILR18_2 EPILR18_1 EPILR18_0
EPILR19_4
−
EPILR19_2 EPILR19_1 EPILR19_0
EPILR20_4
−
EPILR20_2 EPILR20_1 EPILR20_0
EPILR21_4
−
EPILR21_2 EPILR21_1 EPILR21_0
−
EPILR22_3 EPILR22_2
−
EPILR22_0
EPILR23_4 EPILR23_3 EPILR23_2 EPILR23_1 EPILR23_0
−
R/W
EPILR24_3 EPILR24_2 EPILR24_1 EPILR24_0
R/W
R/W
R/W
R/W
初期値
----0000B
----0000B
00000000B
-----000B
-000-000B
-000-000B
-000-000B
----00-0B
-0-00000B
00--0000B
第 10 章 I/O ポート
10.6
プルアップ・プルダウン制御レジスタ
端子には 50kΩ のプルアップ , もしくはプルダウンを付加する機能があります。こ
の機能はソフトウェアによりビット単位で制御可能です。
■ プルアップ・プルダウン制御
プルアップ・プルダウン機能は , ポートプルアップ・プルダウン許可レジスタ (PPER)
により有効とされ , ポートプルアップ・プルダウン制御レジスタ (PPCR) により , プル
アップもしくはプルダウンの制御が行われます。
以下の場合は , 端子のプルアップもしくはプルダウンは自動的に無効となります。
• ポートが出力状態
• STOP モード時
■ ポートプルアップ・プルダウン許可レジスタ
表 10.6-1 に , ポートプルアップ・プルダウン許可レジスタを示します。
I2C インタフェースと兼用しているポート , および A/D コンバータの入力と兼用してい
るポートにはプルアップ・プルダウン制御はありません。
表 10.6-1 ポートプルアップ・プルダウン許可レジスタの設定
ポートプルアップ・プルダウン許可レジスタ
ビット
PPERxy
0 [ 初期値 ]
1
プルアップ・プルダウン無効
プルアップ・プルダウン有効
315
第 10 章 I/O ポート
図 10.6-1 ポートプルアップ・プルダウン許可レジスタ
アドレス
PPER00
PPER01
PPER05
PPER06
PPER07
PPER08
PPER09
PPER10
PPER11
PPER13
PPER14
PPER15
PPER16
PPER17
PPER18
PPER19
PPER20
PPER21
PPER22
PPER23
PPER24
PPER28
PPER29
bit
000EC0H
000EC1H
000EC5H
000EC6H
000EC7H
000EC8H
000EC9H
000ECAH
000ECBH
000ECDH
000ECEH
000ECFH
000ED0H
000ED1H
000ED2H
000ED3H
000ED4H
000ED5H
000ED6H
000ED7H
000ED8H
000EDCH
000EDDH
7
6
5
4
3
2
1
0
初期値
00000000B
PPER01_2 PPER01_1 PPER01_0 00000000B
PPER05_2 PPER05_1 PPER05_0 00000000B
PPER06_2 PPER06_1 PPER06_0 00000000B
PPER07_2 PPER07_1 PPER07_0 00000000B
PPER08_1 PPER08_0 0000--00B
−
PPER09_2 PPER09_1 PPER09_0 ---00000B
PPER10_2 PPER10_1 PPER10_0 -0000000B
PPER11_1 PPER11_0 ------00B
−
PPER13_2 PPER13_1 PPER13_0 -----000B
PPER14_2 PPER14_1 PPER14_0 ----0000B
PPER15_2 PPER15_1 PPER15_0 ----0000B
0-------B
−
−
−
00000000
PPER17_2 PPER17_1 PPER17_0
B
PPER18_2 PPER18_1 PPER18_0 -----000B
PPER19_2 PPER19_1 PPER19_0 -000-000B
PPER20_2 PPER20_1 PPER20_0 -000-000B
PPER21_2 PPER21_1 PPER21_0 -000-000B
PPER22_2
PPER22_0 ----00-0B
−
PPER23_2 PPER23_1 PPER23_0 -0-00000B
PPER24_2 PPER24_1 PPER24_0 00--0000B
PPER28_2 PPER28_1 PPER28_0 00000000B
PPER29_2 PPER29_1 PPER29_0 00000000B
R/W
R/W
R/W
PPER00_7 PPER00_6 PPER00_5 PPER00_4 PPER00_3 PPER00_2 PPER00_1 PPER00_0
PPER01_7 PPER01_6 PPER01_5 PPER01_4 PPER01_3
PPER05_7 PPER05_6 PPER05_5 PPER05_4 PPER05_3
PPER06_7 PPER06_6 PPER06_5 PPER06_4 PPER06_3
PPER07_7 PPER07_6 PPER07_5 PPER07_4 PPER07_3
PPER08_7 PPER08_6 PPER08_5 PPER08_4
−
−
−
−
−
PPER09_4 PPER09_3
−
PPER10_6 PPER10_5 PPER10_4 PPER10_3
−
−
−
−
−
−
−
−
−
−
−
−
−
PPER14_3
−
−
−
−
PPER15_3
PPER16_7
−
−
−
−
PPER17_7 PPER17_6 PPER17_5 PPER17_4 PPER17_3
−
−
−
−
−
−
PPER19_6 PPER19_5 PPER19_4
−
−
PPER20_6 PPER20_5 PPER20_4
−
−
PPER21_6 PPER21_5 PPER21_4
−
−
−
−
PPER23_6
−
PPER24_7 PPER24_6
−
−
−
PPER22_3
PPER23_4 PPER23_3
−
PPER24_3
PPER28_7 PPER28_6 PPER28_5 PPER28_4 PPER28_3
PPER29_7 PPER29_6 PPER29_5 PPER29_4 PPER29_3
R/W
R/W
R/W
R/W
R/W
■ ポートプルアップ・プルダウン制御レジスタ
表 10.6-2 に , ポートプルアップ・プルダウン制御レジスタの設定を示します。各ビッ
トの設定値は対応する PPER が設定されているときのみ有効です。
I2C インタフェースと兼用しているポート , および A/D コンバータの入力と兼用してい
るポートにはプルアップ・プルダウン制御はありません。
表 10.6-2 ポートプルアップ・プルダウン制御レジスタの設定
ポートプルアップ・プルダウン制御レジスタ
ビット
PPCRxy
316
0
1 ( 初期値 )
プルダウン
プルアップ
第 10 章 I/O ポート
図 10.6-2 ポートプルアップ・プルダウン制御レジスタ
アドレス
PPCR00
PPCR01
PPCR05
PPCR06
PPCR07
PPCR08
PPCR09
PPCR10
PPCR11
PPCR13
PPCR14
PPCR15
PPCR16
PPCR17
PPCR18
PPCR19
PPCR20
PPCR21
PPCR22
PPCR23
PPCR24
PPCR28
PPCR29
bit
000F00H
000F01H
000F05H
000F06H
000F07H
000F08H
000F09H
000F0AH
000F0BH
000F0DH
000F0EH
000F0FH
000F10H
000F11H
000F12H
000F13H
000F14H
000F15H
000F16H
000F17H
000F18H
000F1CH
000F1DH
7
6
5
4
3
2
1
0
初期値
11111111B
PPCR01_4 PPCR01_3 PPCR01_2 PPCR01_1 PPCR01_0 11111111B
PPCR05_4 PPCR05_3 PPCR05_2 PPCR05_1 PPCR05_0 11111111B
PPCR06_4 PPCR06_3 PPCR06_2 PPCR06_1 PPCR06_0 11111111B
PPCR07_4 PPCR07_3 PPCR07_2 PPCR07_1 PPCR07_0 11111111B
PPCR08_1 PPCR08_0 1111--11B
PPCR08_4
−
−
PPCR09_4 PPCR09_3 PPCR09_2 PPCR09_1 PPCR09_0 ---11111B
PPCR10_4 PPCR10_3 PPCR10_2 PPCR10_1 PPCR10_0 -1111111B
PPCR11_1 PPCR11_0 ------11B
−
−
−
PPCR13_2
PPCR13_1 PPCR13_0 -----111B
−
−
PPCR14_3 PPCR14_2 PPCR14_1 PPCR14_0 ----1111B
−
PPCR15_3 PPCR15_2 PPCR15_1 PPCR15_0 ----1111B
−
1-------B
−
−
−
−
−
11111111
PPCR17_4 PPCR17_3 PPCR17_2 PPCR17_1 PPCR17_0
B
PPCR18_2 PPCR18_1 PPCR18_0 -----111B
−
−
PPCR19_4
PPCR19_2 PPCR19_1 PPCR19_0 -111-111B
−
PPCR20_4
PPCR20_2 PPCR20_1 PPCR20_0 -111-111B
−
PPCR21_4
PPCR21_2 PPCR21_1 PPCR21_0 -111-111B
−
PPCR22_3 PPCR22_2
PPCR22_0 ----11-1B
−
−
PPCR23_4 PPCR23_3 PPCR23_2 PPCR23_1 PPCR23_0 -1-11111B
PPCR24_3 PPCR24_2 PPCR24_1 PPCR24_0 11--1111B
−
PPCR28_4 PPCR28_3 PPCR28_2 PPCR28_1 PPCR28_0 11111111B
PPCR29_4 PPCR29_3 PPCR29_2 PPCR29_1 PPCR29_0 11111111B
R/W
R/W
R/W
R/W
R/W
PPCR00_7 PPCR00_6 PPCR00_5 PPCR00_4 PPCR00_3 PPCR00_2 PPCR00_1 PPCR00_0
PPCR01_7 PPCR01_6 PPCR01_5
PPCR05_7 PPCR05_6 PPCR05_5
PPCR06_7 PPCR06_6 PPCR06_5
PPCR07_7 PPCR07_6 PPCR07_5
PPCR08_7 PPCR08_6 PPCR08_5
−
−
−
−
−
PPCR10_6 PPCR10_5
−
−
−
−
−
−
−
−
−
−
−
PPCR16_7
−
−
PPCR17_7 PPCR17_6 PPCR17_5
−
−
−
−
PPCR19_6 PPCR19_5
−
PPCR20_6 PPCR20_5
−
PPCR21_6 PPCR21_5
−
−
−
−
PPCR23_6
−
PPCR24_7 PPCR24_6
−
PPCR28_7 PPCR28_6 PPCR28_5
PPCR29_7 PPCR29_6 PPCR29_5
R/W
R/W
R/W
<注意事項>
プルアップもしくはプルダウンが有効である期間 (PPER = 1) は , PPCR への書込みアク
セスは無効となり , レジスタ値は更新されません。PPCR の設定値の変更は , 対応する
PPER が "0" の場合にのみ有効です。
317
第 10 章 I/O ポート
318
第 11 章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
11.1 割込みコントローラの概要
11.2 割込みコントローラのレジスタ
11.3 割込みコントローラの動作説明
319
第 11 章 割込みコントローラ
11.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理を行います。
■ 割込みコントローラのハードウェア構成
本モジュールは , 以下のものより構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
320
第 11 章 割込みコントローラ
■ 割込みコントローラのレジスタ一覧
図 11.1-1 に , 割込みコントローラのレジスタ一覧を示します。
図 11.1-1 割込みコントローラのレジスタ一覧
レジスタ
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICR00
000440H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
000441H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
000442H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
000443H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
000444H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
000445H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
000446H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
000447H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
000448H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
000449H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
00044AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
00044BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
00044CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
00044DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
00044EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
00044FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
000450H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
000451H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
000452H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
000453H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR20
000454H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
000455H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
000456H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
000457H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
(ICR24)
000458H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
000459H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
00045AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
00045BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
00045CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
00045DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
00045EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
00045FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
000460H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
000461H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
000464H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
( 続く )
321
第 11 章 割込みコントローラ
( 続き )
レジスタ
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICR34
000462H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
000463H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
000465H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
000466H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
000467H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
000468H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
000469H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
00046AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
00046BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
00046CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
00046DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
00046EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR47
00046FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR48
000470H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR49
000471H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR50
000472H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR51
000473H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR52
000474H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR53
000475H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR54
000476H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR55
000477H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR56
000478H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR57
000479H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR58
00047AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR59
00047BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR60
00047CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR61
00047DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR62
00047EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR63
00047FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
R
R/W
R/W
R/W
R/W
レジスタ
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
HRCL
000045H
MHALTI
−
−
LVL4
LVL3
LVL2
LVL1
LVL0
R
R/W
R/W
R/W
R/W
R/W
322
第 11 章 割込みコントローラ
■ 割込みコントローラのブロックダイヤグラム
図 11.1-2 に , 割込みコントローラのブロックダイヤグラムを示します。
図 11.1-2 割込みコントローラのブロックダイヤグラム
UNMI
ウェイクアップ (レベル≠11111Bのとき"1")
優先度判定
NMI
処理
レベル4~
レベル0
5
/
レベル,
ベクタ
発生
レベル判定
RI00
・
・
・
RI63
( DLYIRQ)
ICR00
・
・
・
ICR63
ベクタ
判定
6
/
ホールド
リクエスト
取下げ要求
MHALTI
VCT5~VCT0
R-bus
323
第 11 章 割込みコントローラ
11.2
割込みコントローラのレジスタ
割込みコントローラのレジスタ構成および機能について説明します。
■ 割込みコントローラのレジスタ詳細
割込みコントローラには , 以下の 2 種類のレジスタがあります。
• 割込み制御レジスタ (ICR)
• ホールドリクエスト取下げ要求レジスタ (HRCL)
324
第 11 章 割込みコントローラ
11.2.1
割込み制御レジスタ (ICR)
ICR は , 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており ,
対応する割込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR) のビット構成
図 11.2-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。
図 11.2-1 割込み制御レジスタ (ICR) のビット構成
7
アドレス :
bit
ch.00 000440H
−
6
−
5
4
3
2
1
0
初期値
−
ICR4
ICR3
ICR2
ICR1
ICR0
---11111B
R
R/W
R/W
R/W
R/W
∼
ch.63 00047FH
[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" を書き込むことはできません。
325
第 11 章 割込みコントローラ
11.2.2
ホールドリクエスト取下げ要求レジスタ (HRCL)
HRCL は , ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成
ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。
図 11.2-2 ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成
HRCL
bit
アドレス :000039H
7
MHALTI
6
−
R/W
5
4
3
2
1
0
初期値
−
LVL4
LVL3
LVL2
LVL1
LVL0
0--11111B
R
R/W
R/W
R/W
R/W
[bit7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ , "0" を書き込むことによってクリアされます。NMI ルーチンの最後
で通常の割込みルーチンと同様にクリアしてください。
[bit4 ∼ bit0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルの割込み要求が発生した場合
は , バスマスタに対してホールドリクエスト取下げ要求を発生します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
326
第 11 章 割込みコントローラ
割込みコントローラの動作説明
11.3
割込みコントローラの動作について説明します。
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 以下のとおりです。
1)NMI
2) 以下の条件を満たす要因
- 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
- 割込みレベルの数値が最も小さい要因
- その中で , 最も小さい割込み番号の要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31 ("11111B") を出力します。そのときの割込み番号は不定です。
表 11.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 6)
割込み番号
割込み要因
10 進 16 進
割込みレベル
設定
レジスタ
レジスタ アドレス
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
リセット
0
00H
−
−
3FCH
000FFFFCH
−
モードベクタ
1
01H
−
−
3F8H
000FFFF8H
−
システム予約
2
02H
−
−
3F4H
000FFFF4H
−
システム予約
3
03H
−
−
3F0H
000FFFF0H
−
システム予約
4
04H
−
−
3ECH
000FFFECH
−
システム予約 (UDSU)
5
05H
−
−
3E8H
000FFFE8H
−
システム予約 (UDSU)
6
06H
−
−
3E4H
000FFFE4H
−
コプロセッサ不在トラップ
7
07H
−
−
3E0H
000FFFE0H
−
コプロセッサエラートラップ
8
08H
−
−
3DCH
000FFFDCH
−
INTE 命令
9
09H
−
−
3D8H
000FFFD8H
−
システム予約
10
0AH
−
−
3D4H
000FFFD4H
−
システム予約
11
0BH
−
−
3D0H
000FFFD0H
−
ステップトレーストラップ
12
0CH
−
−
3CCH
000FFFCCH
−
MNI 要求 (tool)
13
0DH
−
−
3C8H
000FFFC8H
−
327
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 6)
割込み番号
割込み要因
10 進 16 進
割込みレベル
設定
レジスタ
レジスタ アドレス
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
未定義命令例外
14
0EH
−
−
3C4H
000FFFC4H
−
NMI 要求
15
0FH
15 (F)
固定
15 (F)
固定
3C0H
000FFFC0H
−
外部割込み 0
16
10H
000FFFBCH
0
440H
3BCH
ICR00
3B8H
000FFFB8H
1
3B4H
000FFFB4H
2
3B0H
000FFFB0H
3
3ACH
000FFFACH
−
3A8H
000FFFA8H
−
3A4H
000FFFA4H
−
3A0H
000FFFA0H
−
39CH
000FFF9CH
−
398H
000FFF98H
−
394H
000FFF94H
−
390H
000FFF90H
−
38CH
000FFF8CH
−
388H
000FFF88H
−
384H
000FFF84H
−
380H
000FFF80H
−
37CH
000FFF7CH
4
378H
000FFF78H
5
374H
000FFF74H
−
370H
000FFF70H
−
36CH
000FFF6CH
−
368H
000FFF68H
−
364H
000FFF64H
−
360H
000FFF60H
−
外部割込み 1
17
11H
外部割込み 2
18
12H
ICR01
外部割込み 3
19
13H
外部割込み 4
20
14H
ICR02
外部割込み 5
21
15H
外部割込み 6
22
16H
ICR03
外部割込み 7
23
17H
外部割込み 8
24
18H
ICR04
外部割込み 9
25
19H
外部割込み 10
26
1AH
ICR05
外部割込み 11
27
1BH
外部割込み 12
28
1CH
ICR06
外部割込み 13
29
1DH
外部割込み 14
30
1EH
ICR07
外部割込み 15
31
1FH
リロードタイマ 0
32
20H
ICR08
リロードタイマ 1
33
21H
リロードタイマ 2
34
22H
ICR09
リロードタイマ 3
35
23H
システム予約
36
24H
ICR10
システム予約
37
25H
システム予約
38
26H
ICR11
リロードタイマ 7
328
39
27H
441H
442H
443H
444H
445H
446H
447H
448H
449H
44AH
44BH
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (3 / 6)
割込み番号
割込み要因
10 進 16 進
フリーランタイマ 0
40
割込みレベル
設定
レジスタ
レジスタ アドレス
28H
ICR12
フリーランタイマ 1
41
29H
フリーランタイマ 2
42
2AH
ICR13
フリーランタイマ 3
43
2BH
システム予約
44
2CH
ICR14
システム予約
45
2DH
システム予約
46
2EH
ICR15
システム予約
47
2FH
CAN 0
48
30H
ICR16
CAN 1
49
31H
システム予約
50
32H
ICR17
システム予約
51
33H
システム予約
52
34H
ICR18
システム予約
53
35H
LIN-UART 0 RX
54
36H
ICR19
LIN-UART 0 TX
55
37H
LIN-UART 1 RX
56
38H
ICR20
LIN-UART 1 TX
57
39H
LIN-UART 2 RX
58
3AH
ICR21
LIN-UART 2 TX
59
3BH
LIN-UART 3 RX
60
3CH
ICR22
LIN-UART 3 TX
61
3DH
システム予約
62
3EH
ICR23
遅延割込み
63
3FH
システム予約
64
40H
(ICR24)
システム予約
65
41H
LIN-UART 4 RX
66
42H
ICR25
LIN-UART 4 TX
67
43H
44CH
44DH
44EH
44FH
450H
451H
452H
453H
454H
455H
456H
457H
458H
459H
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
35CH
000FFF5CH
−
358H
000FFF58H
−
354H
000FFF54H
−
350H
000FFF50H
−
34CH
000FFF4CH
−
348H
000FFF48H
−
344H
000FFF44H
−
340H
000FFF40H
−
33CH
000FFF3CH
−
338H
000FFF38H
−
334H
000FFF34H
−
330H
000FFF30H
−
32CH
000FFF2CH
−
328H
000FFF28H
−
324H
000FFF24H
6
320H
000FFF20H
7
31CH
000FFF1CH
8
318H
000FFF18H
9
314H
000FFF14H
−
310H
000FFF10H
−
30CH
000FFF0CH
−
308H
000FFF08H
−
304H
000FFF04H
−
300H
000FFF00H
−
2FCH
000FFEFCH
−
2F8H
000FFEF8H
−
2F4H
000FFEF4H
10
2F0H
000FFEF0H
11
329
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (4 / 6)
割込み番号
割込み要因
10 進 16 進
LIN-UART 5 RX
68
割込みレベル
設定
レジスタ
レジスタ アドレス
44H
ICR26
LIN-UART 5 TX
69
45H
LIN-UART 6 RX
70
46H
ICR27
LIN-UART 6 TX
71
47H
システム予約
72
48H
ICR28
システム予約
73
49H
I2C0 / I2C2
74
4AH
ICR29
I2C1 / I2C3
75
4BH
システム予約
76
4CH
ICR30
システム予約
77
4DH
システム予約
78
4EH
ICR31
システム予約
79
4FH
システム予約
80
50H
ICR32
システム予約
81
51H
システム予約
82
52H
ICR33
システム予約
83
53H
システム予約
84
54H
ICR34
システム予約
85
55H
システム予約
86
56H
ICR35
システム予約
87
57H
システム予約
88
58H
ICR36
システム予約
89
59H
システム予約
90
5AH
ICR37
システム予約
91
5BH
インプットキャプチャ 0
92
5CH
ICR38
インプットキャプチャ 1
93
5DH
インプットキャプチャ 2
94
5EH
ICR39
インプットキャプチャ 3
330
95
5FH
45AH
45BH
45CH
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
2ECH
000FFEECH
12
2E8H
000FFEE8H
13
2E4H
000FFEE4H
−
2E0H
000FFEE0H
−
2DCH
000FFEDCH
−
2D8H
000FFED8H
−
2D4H
000FFED4H
−
2D0H
000FFED0H
−
2CCH
000FFECCH
−
2C8H
000FFEC8H
−
2C4H
000FFEC4H
−
2C0H
000FFEC0H
−
2BCH
000FFEBCH
−
2B8H
000FFEB8H
−
2B4H
000FFEB4H
−
2B0H
000FFEB0H
−
2ACH
000FFEACH
−
2A8H
000FFEA8H
−
2A4H
000FFEA4H
−
2A0H
000FFEA0H
−
29CH
000FFE9CH
−
298H
000FFE98H
−
294H
000FFE94H
−
290H
000FFE90H
−
28CH
000FFE8CH
−
288H
000FFE88H
−
284H
000FFE84H
−
280H
000FFE80H
−
45DH
45EH
45FH
460H
461H
462H
463H
464H
465H
566H
467H
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (5 / 6)
割込み番号
割込み要因
10 進 16 進
システム予約
96
割込みレベル
設定
レジスタ
レジスタ アドレス
60H
ICR40
システム予約
97
61H
システム予約
98
62H
ICR41
システム予約
99
63H
アウトプットキャプチャ 0
100
64H
ICR42
アウトプットキャプチャ 1
101
65H
アウトプットキャプチャ 2
102
66H
ICR43
アウトプットキャプチャ 3
103
67H
システム予約
104
68H
ICR44
システム予約
105
69H
システム予約
106
6AH
ICR45
システム予約
107
6BH
システム予約
108
6CH
ICR46
システム予約
109
6DH
システム予約
110
6EH
ICR47
システム予約
111
6FH
PPG0
112
70H
ICR48
PPG1
113
71H
PPG2
114
72H
ICR49
PPG3
115
73H
PPG4
116
74H
ICR50
PPG5
117
75H
PPG6
118
76H
ICR51
PPG7
119
77H
システム予約
120
78H
ICR52
システム予約
121
79H
システム予約
122
7AH
ICR53
システム予約
123
7BH
468H
469H
46AH
46BH
46CH
46DH
46EH
46FH
470H
471H
472H
473H
474H
475H
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
27CH
000FFE7CH
−
278H
000FFE78H
−
274H
000FFE74H
−
270H
000FFE70H
−
26CH
000FFE6CH
−
268H
000FFE68H
−
264H
000FFE64H
−
260H
000FFE60H
−
25CH
000FFE5CH
−
258H
000FFE58H
−
254H
000FFE54H
−
250H
000FFE50H
−
24CH
000FFE4CH
−
248H
000FFE48H
−
244H
000FFE44H
−
240H
000FFE40H
−
23CH
000FFE3CH
15
238H
000FFE38H
−
234H
000FFE34H
−
230H
000FFE30H
−
22CH
000FFE2CH
−
228H
000FFE28H
−
224H
000FFE24H
−
220H
000FFE20H
−
21CH
000FFE1CH
−
218H
000FFE18H
−
214H
000FFE14H
−
210H
000FFE10H
−
331
第 11 章 割込みコントローラ
表 11.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (6 / 6)
割込み番号
割込み要因
10 進 16 進
システム予約
124
割込みレベル
設定
レジスタ
レジスタ アドレス
7CH
ICR54
システム予約
125
7DH
システム予約
126
7EH
ICR55
システム予約
127
7FH
システム予約
128
80H
ICR56
システム予約
129
81H
システム予約
130
82H
ICR57
システム予約
131
83H
リアルタイムクロック
132
84H
ICR58
Clock Calibration *
133
85H
A/D コンバータ 0
134
85H
ICR59
システム予約
135
87H
システム予約
136
88H
ICR60
システム予約
137
89H
システム予約
138
8AH
ICR61
システム予約
139
8BH
タイムベースオーバフロー
140
8CH
ICR62
PLL クロックギア
141
8DH
DMA コントローラ
142
8EH
ICR63
メイン / サブ発振安定待ち
143
8FH
システム予約
144
90H
INT 命令で使用
145
:
255
91H
:
FFH
−
−
*: Clock Calibration は , MB91461 では使用できません。
332
オフ
セット
TBR
リソース
デフォルトの
番号 *1
アドレス
20CH
000FFE0CH
−
208H
000FFE08H
−
204H
000FFE04H
−
200H
000FFE00H
−
1FCH
000FFDFCH
−
1F8H
000FFDF8H
−
1F4H
000FFDF4H
−
1F0H
000FFDF0H
−
1ECH
000FFDECH
−
1E8H
000FFDE8H
−
1E4H
000FFDE4H
14
1E0H
000FFDE0H
−
1DCH
000FFDDCH
−
1D8H
000FFDD8H
−
1D4H
000FFDD4H
−
1D0H
000FFDD0H
−
1CCH
000FFDCCH
−
1C8H
000FFDC8H
−
1C4H
000FFDC4H
−
1C0H
000FFDC0H
−
−
1BCH
000FFDBCH
−
−
1B8H
:
000H
000FFDB8H
:
000FFC00H
−
476H
477H
478H
479H
47AH
47BH
47CH
47DH
47EH
47FH
第 11 章 割込みコントローラ
■ NMI (Non Maskable Interrupt)
NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま
す。
そのため , ほかの割込み要因と同時発生の場合は常に NMI が選択されます。
● NMI 発生
NMI が発生すると , CPU に対して次の情報を伝えます。
• 割込みレベル
: 15 ("01111B")
• 割込み番号
: 15 ("0001111B")
● NMI 検出
NMI の設定および検出は , 外部割込み /NMI モジュールで行います。本モジュールでは
NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成のみを行います。
● NMI による DMA 転送の抑止
NMI 要求が発生すると , HRCL レジスタの MHALTI ビットが "1" になり , DMA 転送が
抑止されます。DMA 転送の抑止を解除したい場合は , NMI ルーチンの最後にて
MHALTI ビットを "0" にクリアしてください。
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド
リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ
要求発生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル
→取下げ要求発生
HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル
→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。また , NMI を使用したときは , HRCL レジスタの
MHALTI ビットが "1" となっているため , 取下げ要求が有効になっています。
333
第 11 章 割込みコントローラ
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B " から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生します。
表 11.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
表 11.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
∼
NMI のみ
∼
16
31
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送は行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つで
も発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後にクロックが供給されてから動作を再開しますので ,
優先度判定部の結果が出るまでの間 , CPU は命令を実行します。
スリープ状態からの復帰においても同様に動作します。また , スリープ中であっても ,
本モジュール内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求でシャットダウンモードからの復帰はできません。
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI の設定を行ってください。
• ストップおよびスリープからの復帰の要因としない割込み要因は , 対応する周辺の制
御レジスタにて割込みレベルを "11111B" にしてください。
334
第 11 章 割込みコントローラ
■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例
DMA 転送中に CPU が優先度の高い処理を行いたいときは , DMA に対してホールドリ
クエストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込み
を利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を
実現します。
● 制御レジスタ
① HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール :
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
② ICR: 本モジュール :
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
● ハードウェア構成
図 11.3-1 に , ホールドリクエストの各信号の流れを示します。
図 11.3-1 ホールドリクエストの各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
I-ユニット
DHREQ
DMA
DHREQ:D-busホールドリクエスト
CPU
B-ユニット
(ICR)
DHACK:D-busホールドアクノリッジ
IRQ :割込み要求
(HRCL)
DHACK
MHALTI:ホールドリクエスト
取下げ要求
● シーケンス
図 11.3-2 に , 割込みレベル HRCL < ICR (LEVEL) を示します。
図 11.3-2 割込みレベル HRCL < ICR (LEVEL)
RUN
CPU
バスアクセス要求
DHREQ
DHACK
バスホールド
割込み処理
① ②
バスホールド(DMA転送)
割込みルーチンの例
①割込み要因クリア
~
②RETI
IRQ
LEVEL
MHALTI
335
第 11 章 割込みコントローラ
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI を "H" レベルにします。これによって , DMA
はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行います。
図 11.3-3 に , 割込みレベル HRCL < ICR ( 割込みⅠ ) < ICR ( 割込みⅡ ) を示します。
図 11.3-3 INTC-3 割込みレベル HRCL < ICR ( 割込みⅠ ) < ICR ( 割込みⅡ )
RUN
バスホールド 割込み I
割込み処理II
③
CPU
④
割込み処理I バスホールド(DMA転送)
①
②
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
〔割込みルーチンの例〕
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では割込みルーチン I を実行中に , それよりも優先度の高い割込みが発生した
場合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ はさがっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には十分注意してください。
336
第 12 章
外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能 ,
および動作について説明します。
12.1 外部割込み制御部の概要
12.2 外部割込み制御部のレジスタ
12.3 外部割込み制御部の動作説明
337
第 12 章 外部割込み制御部
外部割込み制御部の概要
12.1
外部割込み制御部は , INT 端子に入力される外部割込み要求の制御を行うブロックで
す。検出する要求のレベル / エッジとして , 以下の 4 種類から選択できます。
• "H" レベル
• "L" レベル
• 立上りエッジ
• 立下りエッジ
■ 外部割込み制御部のレジスタ一覧
図 12.1-1 に , 外部割込み制御部のレジスタ一覧を示します。
図 12.1-1 外部割込み制御部のレジスタ一覧
bit
bit
bit
bit
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
外部割込み許可レジスタ
(ENIR)
外部割込み要因レジスタ
(EIRR)
要求レベル設定レジスタ
(ELVR)
■ 外部割込み制御部のブロックダイヤグラム
図 12.1-2 に , 外部割込み制御部のブロックダイヤグラムを示します。
図 12.1-2 外部割込み制御部のブロックダイヤグラム
R-bus
8
割込み
要求
17
割込み許可レジスタ
ゲート
要因F/F
8
割込み要因レジスタ
16
338
要求レベル設定レジスタ
エッジ検出回路
17
INT0~INT15
NMI
第 12 章 外部割込み制御部
12.2
外部割込み制御部のレジスタ
外部割込み制御部のレジスタ構成および機能について説明します。
■ 外部割込み制御部のレジスタ詳細
外部割込み制御部のレジスタには , 以下の 3 種類があります。
• 割込み許可レジスタ (ENIR)
• 外部割込み要因レジスタ (EIRR)
• 外部割込み要求レベル設定レジスタ (ELVR)
339
第 12 章 外部割込み制御部
12.2.1
割込み許可レジスタ (ENIR)
ENIR は外部割込み要求出力のマスク制御を行います。
■ 割込み許可レジスタ (ENIR) のビット構成
図 12.2-1 に , 割込み許可レジスタのビット構成を示します。
図 12.2-1 割込み許可レジスタのビット構成
bit
7
6
5
4
3
2
1
0
ENIR0 アドレス : 000031H EN7 EN6 EN5 EN4 EN3 EN2 EN1 EN0
初期値
00000000B
[R/W]
bit
7
6
5
4
3
2
1
0
ENIR1 アドレス : 000035H EN15 EN14 EN13 EN12 EN11 EN10 EN9 EN8
初期値
00000000B
[R/W]
このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の
許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ
たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して
は要求を発生しません。
340
第 12 章 外部割込み制御部
12.2.2
外部割込み要因レジスタ (EIRR)
EIRR は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの
要求を示すフリップフロップ内容をクリアするレジスタです。
■ 外部割込み要因レジスタ (EIRR) のビット構成
図 12.2-2 に , 外部割込み要因レジスタのビット構成を示します。
図 12.2-2 外部割込み要因レジスタのビット構成
bit
EIRR0 アドレス : 000030H
15
14
13
12
11
10
9
8
ER7 ER6 ER5 ER4 ER3 ER2 ER1 ER0
初期値
00000000B
[R/W]
bit
15
14
13
12
11
10
9
8
EIRR1 アドレス : 000034H ER15 ER14 ER13 ER12 ER11 ER10 ER9 ER8
初期値
00000000B
[R/W]
この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。
"1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま
す。また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップ
がクリアされます。
"1" の書込みは無効です。
リードモディファイライト (RMW) 系命令の読出し時には "1" が読み出されます。
341
第 12 章 外部割込み制御部
12.2.3
外部割込み要求レベル設定レジスタ (ELVR)
ELVR は要求検出の選択を行うレジスタです。
■ 外部割込み要求レベル設定レジスタ (ELVR) のビット構成
図 12.2-3 に , 外部割込み要求レベル設定レジスタのビット構成を示します。
図 12.2-3 外部割込み要求レベル設定レジスタのビット構成
bit
15
14
13
12
11
10
9
8
ELVR0 アドレス : 000032H LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
bit 7
000033H LB3
6
5
4
3
2
1
0
LA3
LB2
LA2
LB1
LA1
LB0
LA0
初期値
00000000B
初期値
00000000B
[R/W]
bit
15
14
13
12
11
10
9
8
ELVR1 アドレス : 000036H LB15 LA15 LB14 LA14 LB13 LA13 LB12 LA12
初期値
00000000B
bit 7
6
5
4
3
000037H LB11 LA11 LB10 LA10 LB9
初期値
00000000B
2
1
0
LA9
LB8
LA8
[R/W]
各割込みチャネルに 2 ビットずつが割り当てられていて , 以下のような設定になりま
す。
要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな
らば該当するビットは再び設定されます。
表 12.2-1 に , ELVR 割当てを示します。
表 12.2-1 ELVR 割当て
LBx, LAx
342
動 作
00B
"L" レベルで要求あり [ 初期値 ]
01B
"H" レベルで要求あり
10B
立上りエッジで要求あり
11B
立下りエッジで要求あり
第 12 章 外部割込み制御部
<注意事項>
• STOPモードおよびシャットダウンモードからの復帰要因となる割込みに対して, エッ
ジ検出の設定をすることはできません。
• 外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますの
で , 外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてくだ
さい。外部割込み要因レジスタをクリアする際は一度 , 外部割込み要求レベルレジスタ
を読み出してからクリアの書込みを行ってください。
343
第 12 章 外部割込み制御部
12.3
外部割込み制御部の動作説明
外部割込み制御部の動作について説明します。
■ 外部割込みの動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると , 本モジュールは割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時に発生した割込みの優先順位を識別した結果 ,
本リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生し
ます。
図 12.3-1 に , 外部割込みの動作を示します。
図 12.3-1 外部割込みの動作
外部割込み
リソース要求
ELVR
割込みコントローラ
ICR y y
EIRR
ENIR
CPU
IL
CMP
ICR X X
CMP
ILM
要因
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。
4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。
5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアする。
6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。
ただし , 5. と 6. は 16 ビットデータによる同時書込みが可能です。
本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態
に設定する必要があります。また , 許可レジスタをイネーブル状態にする前に必ず要因
レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態
時に誤って割込み要因が起こってしまうことを避けるためです。
344
第 12 章 外部割込み制御部
■ 外部割込み要求レベル
要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定のとき , 外部より要求入力が入って , その後 , 取り下げら
れても内部に要因保持回路が存在するので , 割込みコントローラへの要求は有効のま
まです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり
ます。
図 12.3-2 に , レベル設定時の要因保持回路のクリアを示します。
図 12.3-2 レベル設定時の要因保持回路のクリア
割込み入力
レベル検出
要因 F/F
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 12.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示し
ます。
図 12.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み入力
"H"レベル
割込みコントローラ
への割込み要求
要因F/Fのクリアによって無効となる
345
第 12 章 外部割込み制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない
期間が存在します ( 図 12.3-4 の b + c + d 期間 )。STOP 解除後の外部入力信号を内部
クロックに同期させるため , クロックが安定していない期間内は , その割込み要因を保
持できないためです。
STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み
信号を入力してください。
図 12.3-4 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
12µs
"H"
"L"
Regulator
内部動作(RUN)
命令実行(run)
X0
内部Clock
割込みフラグクリア
INTR0
INTE0
"1"(STOPモードに遷移前にイネーブルへ設定)
INTR1
INTE1
“1”(STOPモードに遷移前にイネーブルへ設定)
(a)STOP
(b) レギュレータ安定待ち時間
(d) 発振安定待ち時間
(c)振動子の発振時間
346
(e)RUN
第 12 章 外部割込み制御部
■ STOP 状態からの復帰動作
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。
● STOP 遷移前の処理
外部割込みの設定
デバイスが STOP 状態に遷移する前に STOP 状態を解除するための外部割込み入力
経路を設定しておく必要があります。これは PFR レジスタ (Port Function Register)
で設定を行います。通常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態
ですので意識する必要はありません。しかし ,STOP 状態では PFR レジスタ値によ
り入力パスが制御されています。
外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み入力が有効になると直ちに内部 STOP 信号を立ち下
げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力の同
期化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ
へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前
に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間
を確保しています。この期間はクロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発
振時間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定
待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安
定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が
開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可
能になります。
<注意事項>
INT0 ∼ INT15 に対して , 外部で "H" 入力にしている状態から ,
① PFR で割込み端子設定。
② 割込み検出レベルを "L" レベルに設定
③ 割込み許可
と操作した場合 , 外部から "L" を入れていない場合でも要求フラグ EIRR がセットされま
す。これを回避するためには , ②と③の間で EIRR のクリア処理を行ってください。
347
第 12 章 外部割込み制御部
348
第 13 章
MPU / EDSU
メモリ保護機能およびエンベデッド・デバッグサ
ポート機能について説明します。
13.1 概要
13.2 ブレーク機能
13.3 EDSU レジスタ
13.4 クイックリファレンス
349
第 13 章 MPU / EDSU
13.1
概要
MB91F467R にはメモリ保護ユニット (MPU) および内蔵デバッグサポートユニット
(EDSU) が搭載されています。MB91461 には搭載されていません。
<注意事項>
MPU/EDSU モジュールには , クロック無効化機能があります。MPU/EDSU モジュールを
有効にするには , CSCFG レジスタの EDSUEN ビットを設定する必要があります。
MPU/EDSU は , " コンパレータグループ " 単位で拡張可能です。このグループは最大 8
個まで定義できます。コンパレータグループの特長を以下に示します。
• 合計 4 つのブレークポイントは , 以下のようにプログラムできます。
- 命令アドレスブレークポイント × 4
- オペランドアドレスブレークポイント × 4 ( データサイズおよびアクセスタイプ
でプログラム可能 )
- オペランドアドレスブレークポイント × 2 および命令アドレスブレークポイント × 2
- オペランドアドレスブレークポイント × 2 およびデータ値ブレークポイント × 2
• 割当て可能なマスク × 2 ( ブレークポイントの数を減らします )
• 範囲機能 × 2
• リソース割込みでプログラム可能なブレークトリガ
• MPU 機能
- ユーザおよびスーパバイザの読出し / 書込み / 実行の許可
- MCU アドレス範囲全体に対するデフォルトの許可
- コンパレータグループごとの 2 つのアドレス範囲の許可定義
(8 グループは 16 MPU チャネルになります )
- D-bus およびリソースアドレス領域で DMA アクセスを検出できます
- レジスタセットはユーザモードでロックされます
- 動的構成可能な , INT #5 による特権構成は割込み不可です
- 許可違反によって MPUPV トラップが発生します
• 命令アドレスおよびオペランドアドレスのキャプチャレジスタ (MPU およびオペラ
ンドブレーク用 )
• MPU チャネルインデックス , DMA フラグ , オペランドサイズ , アクセスタイプの
キャプチャ情報
350
第 13 章 MPU / EDSU
ブレーク機能
13.2
各ブレークポイントとメモリ保護の特長について説明します。
コンパレータグループ 1 つにつき最大 4 つのブレークポイントがあります。1 つのグ
ループは 2 つの範囲コンパレータで構成され , 2 つのポイントレジスタをマスク情報と
して使用するオプションがあります。
以下の特長を部分的に組み合せることができます。
■ 特長
● 命令アドレスブレークポイント
最大 4 つの命令アドレスブレークポイントが定義できます。
2 つの命令ブレークポイントをマスクし , ほかの 2 つのレジスタはマスクレジスタとして
動作します。2 つのポイントおよび 1 つのマスクレジスタで構成されているブレークア
ドレス範囲もマスク可能です。
命令ブレークポイントの 2 つの絶対アドレス範囲は , 4 つの命令ブレークポイントレジ
スタのうち 2 つまたは 4 つが割り当てられている場合に定義できます。
● オペランドアドレスブレークポイント
最大 4 つのオペランドアドレスブレークポイントが定義できます。
2 つのオペランドブレークポイントをマスクし , ほかの 2 つのレジスタはマスクレジス
タとして動作します。2 つのポイントおよび 1 つのマスクレジスタで構成されているブ
レークアドレス範囲もマスク可能です。
オペランドブレークポイントの 2 つの絶対アドレス範囲は , 4 つのオペランドブレーク
ポイントレジスタのうち 2 つまたは 4 つが割り当てられている場合に定義できます。
オペランドブレークは , アクセスタイプ ( 読出し , 読出し / 変更 / 書込み , 書込み ) の
データサイズ ( バイト , ハーフワード , ワード ) に対して選択できます。
● オペランドデータ値ブレークポイント
最大 2 つのオペランドデータ値ブレークポイントが定義できます。
1 つのデータ値範囲の定義が可能です。
1 つのデータ値ブレークポイントをマスクレジスタとして定義することによって , もう 1
つのポイントをマスクできます。
オペランドアドレスおよびデータ値ブレークポイントを , トリガ条件の組合せに切り
換えることができます。
● メモリ保護
メモリ保護モードで動作するように , 2 つのチャネル / 範囲を定義できます。
2 つのオペランドアドレス範囲 , 2 つの命令アドレス範囲 , または 1 つのオペランドア
ドレス範囲と 1 つの命令アドレス範囲の組合せの保護が可能です。
通常のユーザモードおよびスーパバイザモードの両方について , 読出し / 書込みまたは
実行許可をチャネルごとに定義できます。
351
第 13 章 MPU / EDSU
13.2.1
命令アドレスブレーク
命令アドレスブレークは最大 4 つのブレークポイントが定義できます。命令アドレ
スブレークの設定について説明します。
命令アドレスブレークは最も基本的なブレークであり , ブレークアドレスデータレジ
スタ BAD3 ∼ BAD0 によって指定されたアドレスで命令がフェッチされたときに発生
します。制御レジスタ BCR0 の CTC1, CTC0 ビットを "00B" に設定すると , このモード
になります。BCR0 のビット EP3 ∼ EP0 では , ブレークポイントが許可されています。
ch.0 ∼ ch.3 の最大 4 つの命令ブレークポイントを設定できます。すべての命令ブレーク
イベントは , CPU への命令ブレーク例外要求に OR されます。
■ マスクレジスタの設定
ブレークアドレスデータレジスタのうち 2 つは , フェッチされている命令アドレスをマ
スクするためのマスクレジスタ (BAD0, BAD2) として動作できます。マスクレジスタ
BAD0 は BAD1 ( 同じチャネル ) または BAD2/BAD3 ( 反対のチャネル ) に割り当てるこ
とができ , マスクレジスタ BAD2 は BAD3 または BAD0/BAD1 に割り当てることができ
ます。
通常, 命令ブレークアドレスとマスク情報は同じチャネルにあります。このため, BAD3
には命令ブレークアドレスと BAD2 アドレスマスク情報が含まれます。チャネルは EP3
で有効化されます。チャネル BAD1 ( アドレス ) , BAD0 ( マスク ) , EP1 ( 有効化 ) につい
ても同様です。
BAD2 は命令アドレス情報を保持し , アドレスマスクを運ぶことはできません。この場
合 , ポイント 2 (EP2) または範囲機能 (ER1) を有効化することで , マスク情報は BAD0
レジスタから取得されます。EP0 および ER0 についても同様で , マスク情報は BAD2
レジスタから取得されます。
例:
CTC00 タイプ : 命令アドレスブレーク
EP11
: ブレークポイントアドレス BAD1 を許可します。
EM01
: ブレークアドレス BAD1 のマスク BAD0 を設定します。
BAD1
: 12345678H ブレークアドレスを設定します。
BAD0
: 00000FFFH ブレークマスクを設定します。
12345000H ∼ 12345FFFH でブレークが発生します。
BAD3 ∼ BAD0 のブレークでは , ブレーク割込み要求レジスタ BIRQ の各フラグ BD3 ∼
BD0 が "1" に設定されます。
これらのフラグは , 命令ブレークルーチンのソフトウェアでリセットする必要があり
ます。
352
第 13 章 MPU / EDSU
■ アドレス範囲一致機能の設定
制御レジスタ BCR0 の ER0 ビットを "1" に設定すると , ch.0 および ch.1 (BAD0, BAD1)
は , アドレス範囲一致として機能します。アドレス比較では , BAD0 が下位アドレスで ,
BAD1 が上位アドレスです。EM0 = 1 によってマスク機能が許可されている場合 , マス
クレジスタ BAD2 が ch.0 および ch.1 をマスクします。
また , 制御レジスタ BCR0 の ER1 ビットを "1" に設定すると , ch.2 および ch.3 (BAD2,
BAD3) をアドレス範囲一致として機能します。アドレス比較では , BAD2 が下位アド
レスで , BAD3 が上位アドレスです。EM1 = 1 によってマスク機能が許可されている
場合 , マスクレジスタ BAD0 が ch.2 および ch.3 をマスクします。
例:
CTC00:タイプ : 命令アドレスブレーク
EP01:ブレークポイントアドレス BAD0 を許可します。
EP11:ブレークポイントアドレス BAD1 を許可します。
ER01:BAD0, BAD1 でのアドレス範囲機能を許可します。
EM01:ブレークアドレス BAD1 のマスク BAD0 を設定します。
BAD0:12345200H 下位ブレークアドレスを設定します。
BAD1:12345300H 上位ブレークアドレスを設定します。
BAD2:F0000000H ブレークマスクを設定します。
02345200H ∼02345300H, または12345200H ∼12345300H, または 22345200H ∼22345300H
などでブレークが発生します。
BD1, BD0 状態ビットの結果設定は , ブレークが発生した各領域を示しています。
表 13.2-1 命令ブレーク検出状態ビット (BD)
BD1
BD0
0
1
1
0
1
1
ブレーク検出アドレス
始点ポイントで一致 ( 命令アドレス = 12345200H または命令アドレス =
22345200H など )
終点ポイントで一致 ( 命令アドレス = 12345300H または命令アドレス =
22345300H など )
範囲で一致 (12345200H < 命令アドレス < 12345300H または 22345200H < 命令ア
ドレス < 22345300H など )
命令アドレスブレークモードでは , 以下の重要事項を考慮する必要があります。
ブレークが発生する命令アドレスを正確に判別するには , 命令ブレーク割込みサービス
ルーチンへのエントリ中にスタックに保存された PC 値を使用します。
353
第 13 章 MPU / EDSU
13.2.2
オペランドアドレスブレーク
オペランドアドレスブレークポイントは最大 4 つのブレークポイントが定義できま
す。オペランドアドレスブレークの設定について説明します。
オペランドアドレスブレークは , オペランドアドレスブレークレジスタ BAD3 ∼ BAD0
によって指定できるデータアクセスアドレスに対してブレークが発生します。制御レ
ジスタ BCR0 の CTC1, CTC0 ビットを "01" に設定すると , このモードになります。BCR0
のビット EP3 ∼ EP0 では , ブレークポイントが許可されています。
ch.0 ∼ ch.3 の最大 4 つのブレークポイントを設定できます。すべてのオペランドブレーク
イベントは , CPU へのオペランドブレーク例外割込み要求に OR されます。
命令アドレスブレークについて「13.2.1 命令アドレスブレーク」に記述されているこ
とは , アドレスマスク機能についても同様です。
例:
CTC 01 タイプ : オペランドアドレスブレーク
EP11
: ブレークポイントアドレス BAD1 を許可します。
EM01
: ブレークアドレス BAD1 のマスク BAD0 を設定します。
BAD1 12345678H
: ブレークアドレスを設定します。
BAD0 00000FFFH
: ブレークマスクを設定します。
12345000H ∼ 12345FFFH でブレークが発生します。
BAD3 ∼ BAD0 のブレークでは , ブレーク割込み要求レジスタ BIRQ の各フラグ BD3 ∼
BD0 が "1" に設定されます。これらのフラグは , オペランドブレーク例外ルーチンのソ
フトウェアでリセットする必要があります。
■ アドレス範囲の一致機能の設定
制御レジスタ BCR0 の ER0 ビットを "1" に設定すると , ch.0 および ch.1 (BAD0, BAD1)
は , アドレス範囲一致として機能します。アドレス比較では , BAD0 が下位アドレスで ,
BAD1 が上位アドレスです。EM0 = 1 によってマスク機能が許可されている場合 , マス
クレジスタ BAD2 が ch.0 および ch.1 をマスクします。
また , 制御レジスタ BCR0 の ER1 ビットを "1" に設定すると , ch.2 および ch.3 (BAD2,
BAD3) をアドレス範囲一致として機能します。アドレス比較では , BAD2 が下位アドレ
スで , BAD3 が上位アドレスです。EM1 = 1 によってマスク機能が許可されている場合 ,
マスクレジスタ BAD0 が ch.2 および ch.3 をマスクします。
例:
CTC01:タイプ : オペランドアドレスブレーク
EP01 :ブレークポイントアドレス BAD0 を許可します。
EP11 :ブレークポイントアドレス BAD1 を許可します。
354
第 13 章 MPU / EDSU
ER01 :BAD0, BAD1 でのアドレス範囲機能を許可します。
EM01:BAD0, BAD1 でのアドレスマスク機能を許可します。
BAD0:12345200H 下位ブレークアドレスを設定します。
BAD1:12345300H 上位ブレークアドレスを設定します。
BAD2:F0000000H ブレークマスクを設定します。
02345200H ∼ 02345300H, または 12345200H ∼ 12345300H, または 22345200H ∼ 22345300H
などでブレークが発生します。
BD1, BD0 状態ビットの結果設定は , ブレークが発生した各領域を示しています。
表 13.2-2 オペランドブレーク検出状態ビット (BD)
BD1
BD0
0
1
始点ポイントで一致 ( オペランドアドレス = 12345200H またはオペランドアド
レス = 22345200H など )
1
0
終点ポイントで一致 ( オペランドアドレス = 12345300H またはオペランドアド
レス = 22345300H など )
1
1
範囲で一致 (12345200H < オペランドアドレス < 12345300H または 22345200H <
オペランドアドレス < 22345300H など )
ブレーク検出アドレス
制御レジスタ BCR0 のビット OBS1, OBS0 および OBT1, OBT0 によって , アクセスデータ
長および読出し / 書込みブレーク属性を指定することもできます。EM1 = EM0 = 0 ( す
べてのビットが有効 ) を設定することによってマスク機能が無効になっている場合 , ブ
レークポイント設定とアクセスアドレスによるブレークとの関係を以下に示します。
表 13.2-3 オペランドサイズとオペランドアドレスの関係
アクセス
データ長
アクセス
アドレス
BOA0, BOA1 に設定されるアドレス
4n + 0
4n + 1
4n + 2
4n + 3
4n + 0
ヒット
−
−
−
4n + 1
−
ヒット
−
−
4n + 2
−
−
ヒット
−
4n + 3
−
−
−
ヒット
4n + 0
ヒット
ヒット
−
−
4n + 1
ヒット
ヒット
−
−
4n + 2
−
−
ヒット
ヒット
4n + 3
−
−
ヒット
ヒット
4n + 0
ヒット
ヒット
ヒット
ヒット
4n + 1
ヒット
ヒット
ヒット
ヒット
4n + 2
ヒット
ヒット
ヒット
ヒット
4n + 3
ヒット
ヒット
ヒット
ヒット
8 ビット
16 ビット
32 ビット
355
第 13 章 MPU / EDSU
オペランドアドレスブレークモードでは , ブレークを発生させたオペランドアドレス
は BOAC レジスタに取り込まれます。追加の BIAC は , ブレークによるデータ処理の
1 サイクル前に実行された命令の命令アドレスを保持します。これは通常 , データ転送
の原因となった命令です。
オペランドアドレスブレークでは , 以下の重要事項を考慮する必要があります。
1. FRファミリアーキテクチャでは, データアクセスがミスアラインメントで実行された
場合 , 下位アドレス bit0 はハーフワードで無視され , 下位アドレス bit0 および bit1 は
ワードアクセスで無視されます。それに応じてマスクレジスタをプログラムできま
す。
2. EDSU オペランドブレークは , ブレークイベントを発生させる命令の実行完了直後
に常に発生するわけではありません。
3.「13.2.4 データブレークでのオペランドの使用」も参照してください。
356
第 13 章 MPU / EDSU
13.2.3
データ値ブレーク
データ値ブレークポイントは最大 2 つのポイントが定義できます。データ値ブレー
クポイントの設定について説明します。
CPU によって指定されたアドレスへのデータアクセスで , 指定されたデータが読み出
されるか , または書き込まれた場合 , データ値ブレークによってブレークが発生しま
す。データは , データ値ブレークレジスタ BAD0 および BAD1 によって指定できます。
制御レジスタ BCR0 の CTC1, CTC0 ビットを "11B" に設定すると , このモードになりま
す。BCR0 のビット EP0 および EP1 によって , ブレーク条件が有効になります。
ch.0, ch.1 の最大 2 つのブレークポイントを設定でき , すべてのデータ値ブレークイベン
トは , CPU へのオペランドブレーク例外に OR されます。
1 マスクレジスタ (BAD0) を (BAD1 に格納されている ) データ値のマスクに使用でき , 1 マス
クレジスタ (BAD2) をアクセスされているオペランドアドレス (BAD3) のマスクに使用で
きます。
マスクレジスタBAD2およびBAD0は, EM1およびEM0によって有効化できます。
ブレークが実行されるデータは , バス上のデータマスクによってマスクされている必
要があります。アドレスおよびデータ長を考慮すると , 32 ビット設定が必要です。( 表
13.2-4 参照 ) 。これは , オペランドのバイト位置がオペランドアドレスから依存してい
るためです。制御レジスタ BCR0:OBS1, OBS0 のデータ長の設定は , すべて無視に構成
できます。データ長は , 暗黙的に BAD0 レジスタに設定するマスクによって制御可能
です。
BAD1, BAD0のブレークでは, ブレーク割込み要求レジスタBIRQの各フラグBD1, BD0
が "1" に設定されます。これらのフラグは , オペランドブレーク例外ルーチンのソフト
ウェアでリセットする必要があります。
オペランドデータ値ブレークでは , ブレークを発生させたオペランドアドレスが
BOAC レジスタに取り込まれます。追加の BIAC は , ブレークによるデータ処理の 1 サ
イクル前に実行された命令のアドレスを保持します。これは通常 , データ転送の原因と
なった命令です。
データ値ブレークモードでは , 以下の重要事項を考慮する必要があります。
1. データ値ブレークは , DMA 転送のマッチングに対しても実行されます。これは , 並
列処理のために予期しない動作につながる場合があります。専用の調査のために
フィルタビット FDMA および FCPU を設定できます。
2. EDSU データブレークは , ブレークイベントを発生させる命令の実行完了直後に常
に発生するわけではありません。
3.「13.2.4 データブレークでのオペランドの使用」も参照してください。
357
第 13 章 MPU / EDSU
表 13.2-4 BAD レジスタとマスクの関係
BAD0 に設定される
MASK
BAD1/BAD0 の有
効なデータの位置
(* で示す )
4n + 0
00FFFFFFH
**-- ----
4n + 1
FF00FFFFH
--** ----
4n + 2
FFFF00FFH
---- **--
4n + 3
FFFFFF00H
---- --**
4n + 0
0000FFFFH
**** ----
4n + 1
0000FFFFH
**** ----
4n + 2
FFFF0000H
---- ****
4n + 3
FFFF0000H
---- ****
4n + 0
00000000H
**** ****
4n + 1
00000000H
**** ****
4n + 2
00000000H
**** ****
4n + 3
00000000H
**** ****
BAD3/BAD2
に設定される
アドレス
アクセス
データ長
8 ビット
16 ビット
32 ビット
備考
アドレス bit0 に対して
BAD3 のアドレスマスクを
使用する可能性がありま
す。
アドレス bit1 および bit0
に対して BAD3 のアドレ
スマスクを使用する可能
性があります。
データマスクは必要なく ,
2 つのチャネルが使用でき
ます。
<注意事項>
1. 表内の BAD0 レジスタのマスク値は , ビットの最小セットです。より多くのマスクビッ
トを設定すると , 不要なマスクビットは転送データと比較されます。
2. "BAD1, BAD0 の有効なデータの位置 " は , 左側の MSB および右側の LSB の 8 ビット
16 進イメージを示します。BAD1, BAD0 レジスタ内の * で示されるビット位置のデー
タは , アクセスデータ長およびアクセスアドレスに従って , データバス上のデータと比
較されます。
358
第 13 章 MPU / EDSU
13.2.4
データブレークでのオペランドの使用
データ値ブレークとオペランドアドレスブレークを併用するときの設定について説
明します。
EP3 と EP1 の組合せ , または EP2 と EP0 の組合せ , あるいはその両方を設定し , CTC =
11B, COMB = 1 に設定することで , データ値ブレークとオペランドアドレスブレーク
を一緒に使用することができます。
つまり , BAD2 のオペランドアドレスの一致と BAD0 のデータ値の一致で , ch.0 でのブ
レークが発生します。また ,BAD3 のオペランドアドレスでの一致と BAD1 のデータ値
での一致で , ch.1 でのブレークが発生します。逆の場合は発生しません。
ブレークで , BD0 と BD2 の両方 , それぞれの BD1 および BD3 が設定されます。これ
らのフラグは , オペランドブレーク例外ルーチンのソフトウェアでリセットする必要
があります。
表 13.2-5 オペランドアドレスブレークとデータ値ブレークの組合せ
EP3/EP2
EP1/EP0
COMB
0
0
0
ブレーク検出なし
0
1
0
独立したデータブレーク
( 任意のオペランドアドレスでの値の一致 )
1
0
0
独立したオペランドブレーク ( オペランドアドレスの一致 )
1
1
0
独立したデータブレークおよびオペランドブレーク
0
0
1
ブレーク検出なし
0
1
1
ブレーク検出なし
1
0
1
ブレーク検出なし
1
1
1
データ値ブレーク ( オペランドアドレスと値の両方の一致 )
機能
359
第 13 章 MPU / EDSU
メモリ保護
13.2.5
メモリ保護について説明します。
オペランドアドレスと命令アドレスのアドレス範囲コンパレータを利用するために ,
メモリ保護ユニット (MPU) と同じコンパレータハードウェアを使用する必要があり
ます。
以下の表に , メモリ保護に使用できるタイプ構成を示します。ブレークポイントおよび
MPU チャネルの数は , 8 つのコンパレータグループに実装できます。
表 13.2-6 コンパレータタイプ構成
最大ブレークポイント
(MPE = 0)
CTC
CMP1
入力
CMP0
入力
00
IA
IA
命令ブレーク × 32
実行許可がある範囲 × 16
01
OA
OA
オペランドブレーク × 32
読出し / 書込み許可がある範囲 × 16
10
OA
IA
16 + 16 IA/OA ブレーク
読出し / 書込みおよび実行許可がある範囲 × 8
または 8 + 8 独立範囲
11
OA
DT
データ値ブレーク × 16
最大 MPU チャネル (MPE = 1)
−
既存の機能に加え , リードモディファイライト (RMW) 系命令を含むオペランドブレー
クサイズや OBS/OBT のタイプに対応するバスをユーザで読出し / 書込み / 許可を設定
できるよう拡張しています。
シンボルインデックスの指定によって , コンパレータチャネル CMP1 および CMP0 に個
別に許可を設定できます。
表 13.2-7 許可構成ビットの意味
シンボル
データモード (OA)
SRX1, SRX0
スーパバイザ読出し許可
SW1, SW0
スーパバイザ書込み許可
URX1, URX0
ユーザ読出し許可
UW1, UW0
ユーザ書込み許可
命令モード (IA)
スーパバイザ実行許可
−
ユーザ実行許可
−
命令の実行またはオペランドへのアクセスが行われるたびに , 実際の有効な許可が決
まります。この設定は , オペランドアクセス (OA ベース ) とコード実行 (IA ベース ) に
分けられます。
部分ごとに , 優先順位の最も高い領域ヒットが検索されます。最も大きいチャネル番号
の優先順位が最も高くなります。チャネルヒットが見つかった場合 , このチャネルに対
して定義されている許可が適用されます。チャネルヒットが検出されなかった場合 , デ
フォルトの許可が適用されます。
360
第 13 章 MPU / EDSU
許可が設定された後 ( もしデータアクセスがある場合 , 実際の命令に対して有効 ) , アク
セスの確認が行われます。実行許可が設定されていない場合 , または読出しまたは書込
み許可が実際のアクセスの種類と合わない場合 , 保護違反が示されます。これにより , メ
モリ保護違反 MPUPV 処理ルーチンへの CPU トラップが発生します。この場合 , CPU
はスーパバイザモードに直接切り換わります。
EDSUの構成レジスタ空間は, ユーザモードでのランダムアクセスに対して保護されま
す。スーパバイザモードまたはエミュレーションモードでのみ , レジスタファイルは書
込みアクセスを許可します。この割込みは , システム割込み INT #5 が定義されます。
これは , スーパバイザモードで切換えを行います (INT #5-ISR の実行中 , SV ビットは設
定されたままです ) 。エミュレータおよび NMI によるデバッガ割込みを除き , スーパ
バイザ ISR は割込み不可です。
メモリ保護およびデバッグ用のブレークユニットによって発生する例外は , 分離され
ています。このため , メモリ保護機能自体をデバッグできます。
361
第 13 章 MPU / EDSU
13.2.6
ブレーク要因
ブレーク要因と割込みベクタの関係について説明します。
内部ブレーク要因および実行されるイベントの概要 :
命令アドレスでのブレーク
→
命令ブレークが発生します。
オペランドアドレスでのブレーク →
オペランドブレークが発生します。
データ値でのブレーク
→
オペランドブレークが発生します。
リソース割込み (BREAK)
→
ツール NMI が発生します。
ステップトレーストラップ
→
ステップトレーストラップが発生します。
INTE 命令の実行
→
INTE が発生します。
INT #5 の実行
→
CPU スーパバイザモード
メモリ保護例外
→
MPUPV トラップが発生します。
表 13.2-8 に , ブレーク要因の割込み番号および割込みベクタを示します。
表 13.2-8 ブレーク要因の割込み番号および割込みベクタ
割込み番号
割込み
割込みレベル
割込みベクタ
10 進
16 進
設定
レジスタ
CPU スーパバイザ
モード
(INT #5 命令 )
5
05
−
−
3E8H
000FFFE8H
メモリ保護例外
6
06
−
−
3E4H
000FFFE4H
INTE 命令
9
09
−
−
3D8H
000FFFD8H
命令ブレーク
例外
10
0A
−
−
3D4H
000FFFD4H
オペランドブレーク
例外
11
0B
−
−
3D0H
000FFFD0H
ステップトレース
トラップ
12
0C
−
−
3CCH
000FFFCCH
NMI 割込み
( ツール )
13
0D
−
−
3C8H
000FFFC8H
362
レジスタ
デフォルトベクタ
オフセット
アドレス
アドレス
第 13 章 MPU / EDSU
13.3
EDSU レジスタ
EDSU レジスタのビット構成や機能について説明します。
表 13.3-1 EDSU レジスタの概要 (1 / 3)
レジスタ
アドレス
ブロック
+0
+1
+2
F000H
BCTRL [R/W]
-------- -------- 11111100 00000000
F004H
BSTAT [R/W0]*
-------- -----000 00000000 10--0000
F008H
BIAC [R]
00000000 00000000 00000000 00000000
F00CH
BOAC [R]
00000000 00000000 00000000 00000000
F010H
BIRQ [R/W]
00000000 00000000 00000000 00000000
F014H ∼ F01FH
reserved
-
F020H
BCR0 [R/W]
-------- 00000000 00000000 00000000
F024H
BCR1 [R/W]
-------- 00000000 00000000 00000000
F028H
BCR2 [R/W]
-------- 00000000 00000000 00000000
F02CH
BCR3 [R/W]
-------- 00000000 00000000 00000000
F030H
BCR4 [R/W]
-------- 00000000 00000000 00000000
F034H
BCR5 [R/W]
-------- 00000000 00000000 00000000
F038H
BCR6 [R/W]
-------- 00000000 00000000 00000000
F03CH
BCR7 [R/W]
-------- 00000000 00000000 00000000
F040H ∼ F07FH
+3
EDSU
reserved
-
363
第 13 章 MPU / EDSU
表 13.3-1 EDSU レジスタの概要 (2 / 3)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
F080H
BAD0 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F084H
BAD1 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F088H
BAD2 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F08CH
BAD3 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F090H
BAD4 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F094H
BAD5 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F098H
BAD6 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F09CH
BAD7 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0A0H
BAD8 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0A4H
BAD9 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0A8H
BAD10 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0ACH
BAD11 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0B0H
BAD12 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0B4H
BAD13 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0B8H
BAD14 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0BCH
BAD15 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDSU
364
第 13 章 MPU / EDSU
表 13.3-1 EDSU レジスタの概要 (3 / 3)
レジスタ
アドレス
ブロック
+0
+1
+2
+3
F0C0H
BAD16 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0C4H
BAD17 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0C8H
BAD18 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0CCH
BAD19 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0D0H
BAD20 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0D4H
BAD21 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0D8H
BAD22 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0DCH
BAD23 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0E0H
BAD24 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0E4H
BAD25 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0E8H
BAD26 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0ECH
BAD27 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0F0H
BAD28 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0F4H
BAD29 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0F8H
BAD30 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
F0FCH
BAD31 [R/W]
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
EDSU
*: 読出しによって "1" が返されます。書込みの場合 , "0" ( クリア ) のみ有効です。
<注意事項>
すべてのレジスタに対する読出し / 書込みアクセスは , バイト , ハーフワード , およびワー
ドになります。
365
第 13 章 MPU / EDSU
13.3.1
EDSU 制御レジスタ (BCTRL)
EDSU 制御レジスタ (BCTRL) のビット構成や機能について説明します。
図 13.3-1 EDSU 制御レジスタ (BCTRL) のビット構成
EDSU 制御レジスタバイト 2
bit
アドレス : F002H
15
14
13
12
11
10
9
8
SR
SW
SX
UR
UW
UX
FCPU
FDMA
読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(0)
(0)
初期値 →
bit
EDSU 制御レジスタバイト 3
アドレス : F003H
読出し / 書込み →
初期値 →
7
6
EEMM
PFD
5
4
SINT1 SINT0
3
2
−
EINT0
1
0
EINTT EINTR
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
EDSU 制御レジスタ (BCTRL) は , MCU のメモリ全体および I/O アドレス範囲の最低優
先順位のアクセス許可が定義されます。最低優先順位とは , MPU モードの動作で , 専
用チャネル構成の対象ではないすべてのアドレス領域についてアクセスが有効となる
ことを意味します。スーパバイザモード (SV = 1) および通常のユーザモード (SV = 0)
について , 初期値の読出し , 書込み , 実行許可を定義できます。スーパバイザモード
(SV) は , CPU のプログラムステータスワード内の CCR の bit6 によって示されます。
INIT 条件の後で , すべての許可が設定されます ( 許可されたアクセス ) 。
[bit15] SR : スーパバイザ初期値読出し許可レジスタ
0
スーパバイザはデータの読出しを許可されません。
1
スーパバイザはデータの読出しを許可されます ( 初期値 ) 。
[bit14] SW : スーパバイザ初期値書込み許可レジスタ
0
スーパバイザはデータの書込みを許可されません。
1
スーパバイザはデータの書込みを許可されます ( 初期値 ) 。
[bit13] SX : スーパバイザ初期値実行許可レジスタ
366
0
スーパバイザはコードの実行を許可されません。
1
スーパバイザはコードの実行を許可されます ( 初期値 ) 。
第 13 章 MPU / EDSU
[bit12] UR : ユーザ初期値読出し許可レジスタ
0
ユーザはデータの読出しを許可されません。
1
ユーザはデータの読出しを許可されます ( 初期値 ) 。
[bit11] UW : ユーザ初期値書込み許可レジスタ
0
ユーザはデータの書込みを許可されません。
1
ユーザはデータの書込みを許可されます ( 初期値 ) 。
[bit10] UX : ユーザ初期値実行許可レジスタ
0
ユーザはコードの実行を許可されません。
1
ユーザはコードの実行を許可されます ( 初期値
CPU および DMA フィルタオプションレジスタ
[bit9] FCPU : フィルタ CPU アクセス
0
CPU アクセスでトリガします ( 初期値 ) 。
1
CPU アクセスでトリガしません。
FCPU は , オペランドコンペアチャネル ( オペランドアドレスブレーク , データ値ブ
レーク , メモリデータ保護 ) によってトリガされた CPU アクセスのフィルタ動作を
制御します。
FCPU が "1" に設定された場合 , すべての CPU アクセスはマスクアウトされます。
"0" に設定された場合 , CPU アクセスによってブレーク機能を発生させることがで
きます。
[bit8] FDMA : フィルタ DMA アクセス
0
DMA アクセスでトリガします ( 初期値 ) 。
1
DMA アクセスでトリガしません。
FDMA は , オペランドコンペアチャネル ( オペランドアドレスブレーク , データ値ブ
レーク , メモリデータ保護 ) によってトリガされた DMA アクセスのフィルタ動作を
制御します。
FDMA が "1" に設定された場合 , すべての DMA アクセスはマスクアウトされます。
"0" に設定された場合 , DMA アクセスによってブレーク機能を発生させることがで
きます。
367
第 13 章 MPU / EDSU
<注意事項>
D-bus 上の DMA アクセスのみが検出されます。DMA トリガ条件のオペランドが , D-bus
アドレス領域に配置されている必要があります 。配置されていない場合は , DMA 転送は
EDSU によって認識されません。この機能は , 主に DMA アクセスでのトリガを無効にする
(DMA によるオペランド変更条件をフィルタアウトする ) ためにあります。
[bit7] EEMM : エミュレーションモードの許可
0
エミュレーションモードを禁止します ( 初期値 ) 。
1
エミュレーションモードを許可します。
EEMM が "1" に設定されている場合 , ステップトレースモードおよび EDSU 例外命
令ブレーク , オペランドブレーク , ツール NMI 中にエミュレーションモードに入り
ます。エミュレーションモード中は , ウォッチドッグタイマ (WDT) は無効になりま
す。EDSU でトリガされたエミュレーションモードは , RETI 命令によって残されま
す。
"0" を設定すると , エミュレーションモード機能は禁止されます。ステップトレース
または EDSU 例外で WDT は停止されません。
[bit6] PFD : ファントムフィルタ禁止
0
命令ブレーク検出によってファントムフィルタが使用されます ( 初期値 ) 。
1
ファントムフィルタは禁止されます。
初期値 (PFD = 0) は , 見かけの割込みや間違ったビットが発生したときにフィルタ
アウトするために使用します。
• RETI の実行後にフェッチされた命令は , 通常は , ブレークポイントが設定された命
令です。フェッチは , ブレークポイント ISR の処理後 , ブレークポイント命令の実
行前に繰り返されます。フィルタによって , ブレーク条件のトリガの繰返しが回避
されます。
• 認められていない命令ブレーク例外はタイムオーバーになります。
- プリフェッチされたが , 実行されていないコマンド
- 遅延スロット命令後のコマンド
• プリフェッチされた連続ブレーク条件は , フラグの設定が許可されません。ブレー
ク条件が初めて発生した命令のみ , それに応じた状態ビットを設定できます。
• ネストされた命令ブレークは許可されません ( ブレーク処理 ISR 内のブレーク ) 。
368
第 13 章 MPU / EDSU
[bit5, bit4] SINT1, SINT0 : リソース割込みソースの選択
SINT1,
SINT0
MB91461
リソース
00
選択したソース 0 での割込みによるツール
NMI ( デフォルト )
UART0 RX / UART0 TX
01
選択したソース 1 での割込みによるツール
NMI
UART1 RX / UART1 TX
10
選択したソース 2 での割込みによるツール
NMI
UART08 RX / TX
11
選択したソース 3 での割込みによるツール
NMI
CAN0 / CAN1
SINT1,
SINT0
MB91F467R
リソース
00
選択したソース 0 での割込みによるツール
NMI ( デフォルト )
UART00 RX / TX
01
選択したソース 1 での割込みによるツール
NMI
UART01 RX / TX
10
選択したソース 2 での割込みによるツール
NMI
UART02 RX / TX
11
選択したソース 3 での割込みによるツール
NMI
CAN0 / CAN1
SINT1 および SINT0 では , アクティブなリソース割込みソースが選択されます。
[bit3] EINT1 : 拡張割込み 1 の許可
[bit2] EINT0 : 拡張割込み 0 の許可
0
拡張割込みソース 0 の禁止 ( 初期値 )
1
拡張割込みソース 0 の許可
EINT0 を "1" に設定した場合 , ソースチャネル 0 での拡張割込みイベントでツール
NMI が生成されます。"0" に設定すると , この機能は禁止されます。
<注意事項>
EINT1 および EINT0 は , ブレーク機能を生成するための信号線イベントを示すことに使
用できます。これらの割込みソースは , MCU 内に物理的に組み込まれています。例えば ,
外部割込みポート , 汎用 I/O ポート端子 , その他のリソースなどです。これは , 装置の仕様
に定義する必要があります。
369
第 13 章 MPU / EDSU
[bit1] EINTT : 送信での割込み許可
0
送信割込みソースチャネル 0 ∼ 3 を禁止します ( 初期値 ) 。
1
送信割込みソースチャネル 0 ∼ 3 を許可します。
EINTT を "1" に設定した場合 , TXINT1, TXINT0 によって設定されるソースチャネ
ル 0 ∼ 3 での送信割込みイベントでツール NMI が生成されます。EINTT を "0" に
設定すると , この機能は禁止されます。
<注意事項>
SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを許可し
ます (CAN には受信および送信に対する割込み要求が 1 つあります ) 。
[bit0] EINTR : 受信での割込み許可
0
受信割込みソースチャネル 0 ∼ 3 を禁止します ( 初期値 ) 。
1
受信割込みソースチャネル 0 ∼ 3 を許可します。
EINTR を "1" に設定した場合 , RXINT1, RXINT0 によって設定されるソースチャネ
ル 0 ∼ 3 での受信割込みイベントでツール NMI が生成されます。EINTR を "0" に
設定すると , この機能は禁止されます。
<注意事項>
SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.0 の割込みを許可し
ます (CAN には受信および送信に対する割込み要求が 1 つあります ) 。
370
第 13 章 MPU / EDSU
13.3.2
EDSU 状態レジスタ (BSTAT)
EDSU 状態レジスタ (BSTAT) のビット構成や機能について説明します。
図 13.3-2 EDSU 状態レジスタ (BSTAT) のビット構成
EDSU 状態レジスタバイト 2
アドレス : F006H
読出し / 書込み →
初期値 →
EDSU 状態レジスタバイト 3
アドレス : F007H
読出し / 書込み →
初期値 →
bit15
14
13
12
11
10
9
8
IDX4
IDX3
IDX2
IDX1
IDX0
CDMA
CSZ1
CSZ0
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
bit7
6
5
4
3
2
1
0
PV
RST
INT1
INT0
INTT
INTR
(R)
(0)
(R)
(0)
CRW1 CRW0
(R)
(0)
(R )
(0)
(R/W) (R/W) (R/W) (R/W)
(0)
(1)
(0)
(0)
[bit15 ∼ bit11] IDX4 ∼ IDX0 : MPUPV トリガのチャネルインデックス指示
メモリ保護違反 (MPUPV) をトリガする場合, トリガを発生させたチャネルペア0∼
15 のインデックスは IDX レジスタに保存されます。チャネルペアは通常 , 範囲コン
パレータとして使用されます。
MPUチャネルによってそのアドレス範囲でヒットが検出されなかった場合, デフォ
ルトの許可が適用されます。デフォルトの許可に違反した場合 , IDX は値 16 ( オーバ
ラン ) に設定されます。一致した MPU チャネルの許可に違反した場合 , IDX によっ
て該当するブレーク検出ビット BIRQ_BD[31:0] のインデックスが示されます。
このコンパレータに属するブレーク検出ビットは , BD[2 × IDX] および BD[2 × IDX +
1] です。
範囲ヒットかトリガ条件またはその両方が複数ある場合 , 優先順位が最も高いトリガ
条件のチャネルが IDX4 ∼ IDX0 によって示されます。優先順位はチャネルインデッ
クスによって上がります。
IDX
0XXXXB
10000B
意味
最後の保護違反のチャネル番号を示します。
最後の保護違反は , デフォルトの許可の違反によって発生しました。
チャネルインデックス指示レジスタは読出し専用です。
[bit10] CDMA : キャプチャ DMA 指示
0
オペランドアクセスは CPU によって実行されました。
1
オペランドアクセスは DMA コントローラによって実行されました。
371
第 13 章 MPU / EDSU
[bit9, bit8] CSZ1, CSZ0 : キャプチャオペランドサイズ
00
オペランドのビットサイズは 8 です。
01
オペランドのビットサイズは 16 です。
10
オペランドのビットサイズは 32 です。
11
予約
[bit7, bit6] CRW1, CRW0 : キャプチャオペランドアクセスタイプ
00
オペランドは読み出されました。
01
オペランドは , リードモディファイライト (RMW) 系命令によって読み出さ
れました。
10
オペランドは書き込まれました。
11
オペランドアクセスはありません。
[bit5] PV : 保護違反検出
0
読出し , 書込み , 実行許可の保護違反はありませんでした。
1
保護違反 (MPUPV) が発生しました。
保護違反が発生し , PV に "1" が設定されると , MPUPV トラップが CPU に示されま
す。保護違反とは , 定義されたアドレス領域に対して許可されていない読出しまた
は書込みアクセスがあったか , このアドレス領域に許可なしで命令が実行されたこ
とを意味します。この結果 , CPU はスーパバイザモード (SV = 1) に切り換わり , 割
込み番号 #6 の処理ルーチンを呼び出します ( 表 13.2-8 を参照 ) 。
このビットは , MPUPV トラップ処理ルーチンで "0" を書き込んでクリアする必要が
あります。
[bit4] RST : 動作初期化リセット (RST) 検出
リセット動作は , 設定初期化リセット (INIT) と動作初期化リセット (RST) という 2 つの
レベルに分けられます。INIT が発生すると , RST が同時に発生します。
0
動作リセットは , 最後の BSTAT 読出しまたはクリア以降トリガされません
でした。
1
動作リセットは , 最後の BSTAT 読出しまたはクリア以降トリガされました。
RST ビットは読出し専用であり , このビットへの書込みアクセスは無視されます。
RST は , BSTAT が読み出された後 (32 ビットワード内の任意のバイトアドレスから
の読出し) クリアされます。RSTは, 読出しおよびリードモディファイライト(RMW)
系命令アクセスについても同じ動作をします。
RST ビットは , リセット検出に使用できます。動作初期化リセットがトリガされた場
合に設定されます。デバッグ監視ソフトウェアでは , これを使用して , 動作リセット
372
第 13 章 MPU / EDSU
後にデバッガのフロントエンドへの通信デバイスを再構成する必要があるかどう
かを検出できます。これは , ブート手順およびソフトリセット処理のデバッグに重
要です。EDSU ステータスワードの読出し後 , RST ビットは自動的にクリアされま
す。
[bit3] INT1 : 拡張ソース 1 の割込み
0
拡張ソースチャネル 1 での割込み検出なし ( 初期値 )
1
拡張ソースチャネル 1 での割込み検出あり
INT1 は , 拡張割込みソースチャネル 1 の状態を反映します。拡張割込み信号線で "H"
レベルが発生した場合 , "1" に設定されます。この設定は , ソフトウェアでクリアさ
れるまで保持します。
"0" を書き込むと , INT1 ビットは "0" にリセットされます。このビットに "1" を書
き込んでも無視されます。リードモディファイライト (RMW) 系命令で , INT1 は "1"
として読み出されます。
[bit2] INT0 : 拡張ソース 0 の割込み
0
拡張ソースチャネル 0 での割込み検出なし ( 初期値 )
1
拡張ソースチャネル 0 での割込み検出あり
INT0 は , 拡張割込みソースチャネル 0 の状態を反映します。拡張割込み信号線で "H"
レベルが発生した場合 , "1" に設定されます。この設定は , ソフトウェアでクリアさ
れるまで保持します。
"0" を書き込むと , INT0 ビットは "0" にリセットされます。このビットに "1" を書
き込んでも無視されます。リードモディファイライト (RMW) 系命令で , INT0 は "1"
として読み出されます。
[bit1] INTT : 送信ソースの割込み
0
送信ソースでの割込み検出なし ( 初期値 )
1
送信ソースチャネルでの割込み検出あり
INTT は , 送信割込みソースチャネル 0 ∼ 3 (TXINT1, TXINT0 によって選択可能 ) の
状態を反映します。送信割込み信号線で "H" レベルが発生した場合に "1" に設定さ
れ , 信号線で "L" レベルが発生した場合に "0" に設定されます。
このビットは読出し専用です。選択したリソースの適切な割込みビットをクリアす
ると , "0" に設定できます。
373
第 13 章 MPU / EDSU
<注意事項>
SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを示しま
す (CAN には受信および送信に対する割込み要求が 1 つあります ) 。
[bit0] INTR : 受信ソースの割込み
0
受信ソースでの割込み検出なし ( デフォルト )
1
受信ソースチャネルでの割込み検出あり
INTR は , 受信割込みソースチャネル 0 ∼ 3 (RXINT1, RXINT0 によって選択可能 ) の
状態を反映します。受信割込み信号線で "H" レベルが発生した場合に "1" に設定さ
れ , 信号線で "L" レベルが発生した場合に "0" に設定されます。
このビットは読出し専用です。選択したリソースの適切な割込みビットをクリアす
ると , "0" に設定できます。
<注意事項>
SINT1, SINT0 が "11B" に設定されている場合 , このビットは CAN ch.1 の割込みを示しま
す (CAN には受信および送信に対する割込み要求が 1 つあります ) 。
374
第 13 章 MPU / EDSU
13.3.3
EDSU ブレーク検出割込み要求レジスタ (BIRQ)
EDSU ブレーク検出割込み要求レジスタ (BIRQ) のビット構成や機能について説明し
ます。
このレジスタは , 各チャネルのタイプ構成に関係なく , すべてのチャネルのすべてのブ
レーク検出ビットを収集します。チャネルの 8 つのグループ , つまり全体として 32 シ
ングルポイントチャネルで構成されます。
チャネルの各グループは, 4チャネルおよびBIRQレジスタ内のブレーク検出用の4ビッ
トで構成されます。各グループには , 2 つのコンパレータペアがあります。各ペアは ,
範囲許可ビットを設定することによって範囲コンパレータを構成できる 2 つのポイン
トコンパレータで構成されます。このような範囲コンパレータペアは , コンパレータタ
イプ構成によって選択された , 命令アドレス , オペランドアドレス , またはデータ値情
報に接続されます。
オペランドアドレスとデータ値ブレークの組合せを検出するために , このようなコン
パレータペアが 2 つ組み合されます。両方の条件が同時に一致した場合にのみ , ブレー
ク検出 (BD) ビットが設定されます。
[bit31 ∼ bit0] BD31 ∼ BD0 : ブレーク検出レジスタ
0
ブレーク要因の検出なし ( 初期値 )
1
bit 位置 31 ∼ 0 に応じたチャネルでブレーク要因の検出あり
BD31 ∼ BD0 は , ブレーク検出の状態を反映します。BAD31 ∼ BAD0 との一致でそ
れぞれ "1" に設定されます ( マスク条件が満たされた場合 , EM1/EM0 によって許可
された場合 ) 。2 つのポイントを使用する範囲機能が ER1/ER0 によって許可されてい
る場合に , ビットペア [31:30], [29:28], ..., [1:0] について範囲一致が適用されます。
ブレーク要因は以下のとおりです。
• 命令アドレスブレーク
• オペランドアドレスブレーク
• データ値ブレーク
• オペランドアドレスブレークとデータ値ブレークの組合せ
• メモリ保護違反
"0" を書き込むと , BD31 ∼ BD0 ビットは "0" にリセットされます。これらのビットに
"1" を書き込んでも無視されます。リードモディファイライト (RMW) 系命令で , す
べての BD ビットは "1" として読み出されます。
許可されたアドレス範囲機能での BD1/BD0 設定 ( 隣接する BD ビットのほかのペア
についても有効 ) :
EP1 および EP0 を許可するポイント以外に ER0 でオペランドアドレス範囲機能が
許可されている場合 , BD1 および BD0 検出ビットは以下のように設定されます。
375
第 13 章 MPU / EDSU
表 13.3-2 スタート / エンドポイントまたは範囲での一致に関する BD コーディング
376
BD1
BD0
0
0
一致なし ( 初期値 )
0
1
ポイントで一致 ( コンペア値= BAD0)
1
0
ポイントで一致 ( コンペア値= BAD1)
1
1
範囲で一致 (BAD0 < コンペア値 < BAD1)
コンペア値 : 命令 , オペランドアドレス , データ値
第 13 章 MPU / EDSU
13.3.4
EDSU チャネル構成レジスタ (BCR0 ∼ BCR7)
EDSU チャネル構成レジスタ (BCR0 ∼ BCR7) のビット構成や機能について説明し
ます。
図 13.3-3 EDSU チャネル構成レジスタ (BCR0 ∼ BCR7) のビット構成
EDSU チャンネル構成レジスタ 0, バイト 0 bit31
アドレス : F020H
−
読出し / 書込み →
初期値 →
(-)
(X)
EDSU チャンネル構成レジスタ 0, バイト 1 bit23
アドレス : F021H
読出し / 書込み →
初期値 →
SRX1
30
29
28
27
26
25
24
−
−
−
−
−
−
−
(-)
(X)
(-)
(X)
(-)
(X)
(-)
(X)
(-)
(X)
(-)
(X)
(-)
(X)
22
21
20
19
18
17
16
SW1
SRX0
SW0
URX1
UW1
URX0
UW0
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
EDSU チャンネル構成レジスタ 0, バイト 2 bit15
アドレス : F022H
MPE
14
13
12
11
10
9
8
COMB
CTC1
CTC0
OBS1
OBS0
OBT1
OBT0
読出し / 書込み → (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 →
EDSU チャンネル構成レジスタ 0, バイト 3 bit7
アドレス : F023H
読出し / 書込み →
初期値 →
EP3
6
5
4
3
2
1
0
EP2
EP1
EP0
EM1
EM0
ER1
ER0
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4 つのチャネルのグループごとに , チャネル構成レジスタ (BCR0 ∼ BCR7) が実装され
ます。以下の表に , どのチャネル構成 , ブレークポイントアドレス / データレジスタ ,
ブレーク検出ビットが一緒になっているかを示します。
表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (1 / 3)
グループ
構成
アドレス /
データ
BADx の使用
ポイント
ポイント 0, マス
ク0
EP0
BAD1
ポイント 1
EP1
BAD2
ポイント 2, マス
ク1
EP2
ポイント 3
EP3
BAD0
マスク
EM0
組合せ
範囲 0
ER0
BIRQ
OA0
BD0
OA1
BD1
DT0
BD2
DT1
BD3
BCR0
BAD3
EM1
範囲 1
ER1
377
第 13 章 MPU / EDSU
表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (2 / 3)
グループ
構成
アドレス /
データ
BADx の使用
ポイント
ポイント 0, マス
ク0
EP0
BAD5
ポイント 1
EP1
BAD6
ポイント 2, マス
ク1
EP2
BAD7
ポイント 3
EP3
BAD8
ポイント 0, マス
ク0
EP0
BAD9
ポイント 1
EP1
BAD10
ポイント 2, マス
ク1
EP2
BAD11
ポイント 3
EP3
BAD12
ポイント 0, マス
ク0
EP0
BAD13
ポイント 1
EP1
BAD14
ポイント 2, マス
ク1
EP2
BAD15
ポイント 3
EP3
BAD16
ポイント 0, マス
ク0
EP0
BAD17
ポイント 1
EP1
BAD18
ポイント 2, マス
ク1
EP2
BAD19
ポイント 3
EP3
BAD20
ポイント 0, マス
ク0
EP0
BAD21
ポイント 1
EP1
BAD22
ポイント 2, マス
ク1
EP2
ポイント 3
EP3
BAD4
マスク
EM0
組合せ
範囲 0
ER0
BIRQ
OA0
BD4
OA1
BD5
DT0
BD6
DT1
BD7
OA0
BD8
OA1
BD9
DT0
BD10
DT1
BD11
OA0
BD12
OA1
BD13
DT0
BD14
DT1
BD15
OA0
BD16
OA1
BD17
DT0
BD18
DT1
BD19
OA0
BD20
OA1
BD21
DT0
BD22
DT1
BD23
BCR1
EM1
EM0
範囲 1
ER1
範囲 0
ER0
BCR2
EM1
EM0
範囲 1
ER1
範囲 0
ER0
BCR3
EM1
EM0
範囲 1
ER1
範囲 0
ER0
BCR4
EM1
EM0
範囲 1
ER1
範囲 0
ER0
BCR5
BAD23
378
EM1
範囲 1
ER1
第 13 章 MPU / EDSU
表 13.3-3 BCR, BAD, BIRQ レジスタの関係 (3 / 3)
グループ
構成
アドレス /
データ
BADx の使用
ポイント
ポイント 0, マス
ク0
EP0
BAD25
ポイント 1
EP1
BAD26
ポイント 2, マス
ク1
EP2
BAD27
ポイント 3
EP3
BAD28
ポイント 0, マス
ク0
EP0
BAD29
ポイント 1
EP1
BAD30
ポイント 2, マス
ク1
EP2
ポイント 3
EP3
BAD24
マスク
EM0
組合せ
範囲 0
ER0
BIRQ
OA0
BD24
OA1
BD25
DT0
BD26
DT1
BD27
OA0
BD28
OA1
BD29
DT0
BD30
DT1
BD31
BCR6
EM1
EM0
範囲 1
ER1
範囲 0
ER0
BCR7
BAD31
EM1
範囲 1
ER1
許可定義レジスタは, MPUモードで動作しているチャネルのグループにのみ有効です。
これは , MPE が "1" に設定されている場合に該当します。グループが MPU モードで動
作していない場合 , 許可構成は必要ありません ( 無視されます ) 。
通常 , MPU チャネルはアドレス定義の範囲モードで動作します。
設定できる許可のタイプは , 各コンパレータペアのコンパレータタイプ構成 (CTC) に
よって異なります。MPU チャネルは , 命令アドレス (IA) またはオペランドアドレス
(OA) を確認するために構成できます。IA 範囲は , 実行許可を定義するために使用でき
ます。OA 範囲は , 読出しおよび書込み許可を定義するために使用できます。
MPU 使用のコンパレータタイプは , 以下のように設定できます。
• CTC = 0 : 両方の IA 範囲によって実行許可が定義されます。
• CTC = 1 : 両方の OA 範囲によって読出し / 書込み許可が定義されます。
• CTC = 2 : IA 範囲 0 によって実行許可が定義され , OA 範囲 1 によって読出し / 書込
み許可が定義されます。
CTC=3を設定することによるデータ値 (DT) 検出は, MPUモードでは使用できません。
スーパバイザモードおよびユーザモードという 2 つの CPU モードの読出し , 書込み ,
実行許可について , 許可構成が存在します。スーパバイザ許可は SV = 1 に有効であり ,
ユーザ許可は SV = 0 で設定します。
379
第 13 章 MPU / EDSU
[bit23] SRX1 : スーパバイザのアドレス範囲 1 での読出し / 実行許可レジスタ
CTC = 0 の有効な設定 ( 命令アドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 1 での実行許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 1 での実行許可があります。
CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 1 での読出し許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 1 での読出し許可があります。
[bit22] SW1 : スーパバイザのアドレス範囲 1 での書込み許可レジスタ
CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 1 での書込み許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 1 での書込み許可があります。
[bit21] SRX0 : スーパバイザのアドレス範囲 0 での読出し / 実行許可レジスタ
CTC = 0 または CTC = 2 の有効な設定 ( 命令アドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 0 での実行許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 0 での実行許可があります。
CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 0 での読出し許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 0 での読出し許可があります。
[bit20] SW1 : スーパバイザのアドレス範囲 0 での書込み許可レジスタ
CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
スーパバイザには , アドレス範囲 0 での書込み許可がありません ( 初期値 ) 。
1
スーパバイザには , アドレス範囲 0 での書込み許可があります。
[bit19] URX1 : ユーザのアドレス範囲 1 での読出し / 実行許可レジスタ
CTC = 0 の有効な設定 ( 命令アドレス範囲コンパレータ ) :
380
0
ユーザには , アドレス範囲 1 での実行許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 1 での実行許可があります。
第 13 章 MPU / EDSU
CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
ユーザには , アドレス範囲 1 での読出し許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 1 での読出し許可があります。
[bit18] UW1 : ユーザのアドレス範囲 1 での書込み許可レジスタ
CTC = 1 または CTC = 2 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
ユーザには , アドレス範囲 1 での書込み許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 1 での書込み許可があります。
[bit17] URX0 : ユーザのアドレス範囲 0 での読出し / 実行許可レジスタ
CTC = 0 または CTC = 2 の有効な設定 ( 命令アドレス範囲コンパレータ ) :
0
ユーザには , アドレス範囲 0 での実行許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 0 での実行許可があります。
CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
ユーザには , アドレス範囲 0 での読出し許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 0 での読出し許可があります。
[bit16] UW1 : ユーザのアドレス範囲 0 での書込み許可レジスタ
CTC = 1 の有効な設定 ( オペランドアドレス範囲コンパレータ ) :
0
ユーザには , アドレス範囲 0 での書込み許可がありません ( 初期値 ) 。
1
ユーザには , アドレス範囲 0 での書込み許可があります。
チャネルのグループ , モード構成レジスタ
[bit15] MPE : メモリ保護許可
0
チャネルのグループはデバッグインタフェースとして動作し , ブレークポイ
ントを定義します ( 初期値 ) 。
1
チャネルのグループは , メモリ保護モードで動作します。
MPE ビットの設定でいくつかの制限が適用されます。
MPE=0 (ブレークユニット) : 許可レジスタは「無視する」です (BCRx bit23 ∼ bit16) 。
381
第 13 章 MPU / EDSU
MPE=1 ( メモリ保護ユニット ) : OBS および OBT を "11B" に設定する必要がありま
す (BCRx bit11∼bit8, 任意のサイズおよび任意のタ
イプ ) 。
CTC を "11B" に設定してはいけません (BCRx bit13,
bit12 このモードではデータ値確認はサポートされ
ません ) 。
[bit14] COMB : チャネル組合せ許可
0
チャネル間の組合せなし ( 初期値 )
1
チャネル間の組合せは有効です。
MPE 構成ビットに応じて , COMB 機能には異なる意味があります。
(A) COMB = 1 および MPE = 0 ( ブレークユニット , オペランドアドレスブレーク
とデータ値ブレークの組合せ )
BIRQ_BDビットの設定およびオペランドブレーク条件の通知の前に, ブレーク
検出条件が組み合されます。COMB ビットの設定は , 特定のオペランドアドレス
でデータ値ブレークを定義するために必要です。COMB ビットが "1" に設定され
た場合 , オペランドアドレス (OA) の一致とデータ値 (DT) の一致の両方の条件
が真 (true) であることが必要です。COMB ビットの設定は , CTC = 11B で定義
される OA/DT モードでのみ意味を持ちます。
AND の組合せは , ch.3 (OA1) と ch.1 (DT1) の間および ch.2 (OA0) と ch.0 (DT0) の
間でのみ有効です。範囲動作は定義されていない (ER1 = ER0 = 0) と想定され
ます。
BIRQ_BD3 = BIRQ_BD1 = BD3 && BD1;
BIRQ_BD2 = BIRQ_BD0 = BD2 && BD0;
ER1 = 1 を設定することによって ch.3 および ch.2 がオペランドアドレス範囲
(OA1:OA0) を定義するか , ER0 = 1 を設定することによって ch.1 および ch.0 が
データ値範囲 (DT1:DT0) を定義する場合 , またはその両方の場合 , 各チャネル
のブレーク検出ビットは反対の範囲コンパレータブレーク検出出力の OR され
たチャネルと AND で組み合されます。
BIRQ_BD3 = BD3 && (BD1 || BD0);
BIRQ_BD2 = BD2 && (BD1 || BD0);
BIRQ_BD1 = BD1 && (BD3 || BD2);
BIRQ_BD0 = BD0 && (BD3 || BD2);
これは , BIRQ ブレーク抽出ビット ( スタートポイント , 範囲 , またはエンドポ
イントでの一致のコーディングについては表 13.3-2 を参照 ) について , COMB =
0 での範囲検出の場合と同じ解釈を提供します。BD3 および BD2 はオペランドア
ドレス (OA) 一致のコーディングを保持し , BD1 および BD0 はデータ値 (DT) 一致
のコーディングを保持します。COMB ビットを "1" に設定すると , 最終的に適
切な BD ビットを設定するには両方の条件 (OA 一致および DT 一致 ) が真 (true)
であることが必要です。
382
第 13 章 MPU / EDSU
COMB ビットが "0" に設定された場合 , すべてのブレーク検出ビットは元々の形
式で BIRQ レジスタに渡されます。コンパレータチャネル一致条件は , 互いに独
立しています。
(B) COMB=1 および MPE=1 ( メモリ保護ユニット , 1 つの範囲での読出し / 書込み /
実行許可の組合せ )
メモリ保護モードでは , COMB ビットは , 同じアドレス範囲に設定された , デー
タ読出し / 書込みおよびコード実行許可の組合せという意味を持ちます。設定は ,
モード CTC = 2 で , ch.3 および ch.2 のオペランドアドレス (OA) コンパレータと
ch.1 および ch.2 の命令アドレス (IA) コンパレータの組合せについてのみ意味を
持ちます。
COMB ビットが "1" に設定された場合 , IA コンパレータ CMP0 によって OA コ
ンパレータ CMP1 と同じ BADx ポイント定義が使用されます。ポイント 3 およ
びポイント 2 によって , コンパレータ CMP0 および CMP1 両方のアドレス範囲
が定義されます。これには , ポイント 0/ マスク 0 のエントリがポイント設定に対
して割り当てられず , 一方または両方のコンパレータのマスクに使用できると
いう効果があります。この場合 , ポイント 1 エントリは使用できません。
COMB ビットが "0" に設定された場合 , 両方のコンパレータは独立したアドレ
ス構成を持ちます。コンパレータによって , データ保護の読出し / 書込み許可を
定義するか , またはコード保護の実行許可を定義できます。各コンパレータで
は , 2 つのポイントの間の範囲によって (ER = 1) , またはマスクを持つ 1 つのポ
イントによって (EM = 1) , アドレス領域を定義できます。
[bit13, bit12] CTC1, CTC0 : コンパレータタイプ構成
CTC
CMP1
CMP0
00B
IA
IA
命令ブレークポイント× 4
コード保護の 2 領域 ( 実行許可 )
01B
OA
OA
オペランドブレークポイント× 4
データ保護の 2 領域 ( 読出し / 書
込み許可 )
IA
命令ブレークポイント× 2 +
オペランドブレークポイント× 2
コード保護の 1 領域 ( 実行許可 )
および
データ保護の 1 領域 ( 読出し / 書
込み許可 ) または
コード保護とデータ保護の組合せ
の 1 領域
( 読出し / 書込み / 実行許可 )
DT
オペランドブレークポイント× 2
+
データ値ブレーク× 2,
通常は組合せ
該当なし
10B
11B
OA
OA
MPU 機能
ブレーク機能
各チャネルには , 2 つの範囲コンパレータブロックが含まれています。各コンパレータ
ブロックによって, 2つのポイント間の範囲ヒットまたは2つの独立したポイントヒッ
トを検出できます。ポイント構成は , 各チャネル専用の BADx レジスタに格納され
ます ( チャネルのグループごとに 4 つの BADx レジスタ ) 。
コンパレータタイプ構成 (CTC) によって , 2 つの範囲コンパレータブロック CMP1
および CMP0 それぞれのコンペア値の入力マルチプレクスが制御されます。
CMP1 に
383
第 13 章 MPU / EDSU
よってブレーク検出 ch.3 と ch.2 が組み合されます。CMP1 のコンペア値は , 命令ア
ドレス (IA) またはオペランドアドレス (OA) に割り当てることができます。CMP0
によってブレーク検出 ch.1 と ch.0 が組み合されます。CMP0 のコンペア値は , 命令
アドレス (IA) , オペランドアドレス (OA) , またはデータ値 (DT) に割り当てることが
できます。上記の表は , CTC 設定に応じて , CMP1 および CMP0 の入力コンペア値を
定義したものです。
さらに , 各コンパレータブロックのマスクを定義できます。この場合は , BADx レジ
スタにマスク情報が含まれ , ポイント構成には使用できません。したがって , マスク
機能の使用によってポイントまたはチャネルの数は制限されます。
[bit11 ∼ bit8] OBS1, OBS0, OBT1, OBT0 : オペランドブレークサイズ/オペランドブ
レークタイプレジスタ 1
OBS1
OBS0
OBT1
OBT0
0
0
バイト ( 初期値 )
0
0
読出し ( 初期値 )
0
1
ハーフワード
0
1
リードモディファイライト
(RMW) 系命令
1
0
ワード
1
0
書込み
1
1
すべて ( バイト , ハーフワー
ド , ワード )
1
1
すべて ( 読出し , 読出し / 変
更 / 書込み , 書込み )
データサイズ
アクセスタイプ
チャネルがオペランドアドレスブレークまたはデータ値ブレーク検出で構成され
ている場合 , オペランドブレークサイズレジスタ OBS によってデータサイズが構成
され , オペランドブレークタイプレジスタ OBT によってアクセスタイプが構成され
ます。
データサイズを "11B" に設定すると , バイト , ハーフワード , ワードデータサイズの
検出が行われます。アクセスタイプを "11B" に設定すると , リードモディファイラ
イト (RMW) 系命令 , 書込みアクセスタイプの検出が行われます。
[bit7] EP3 : ブレークポイント 3 レジスタの許可
0
ブレークポイント 3 レジスタは無効です ( 初期値 ) 。
1
ブレークポイント 3 レジスタは有効です。
EP3 が有効な場合 , CMP1 の入力値はポイント 3 レジスタの内容と比較されます
(BAD インデックス= 3 +グループオフセット , グループ 0 ch.3 の場合 BAD3, グルー
プ 1 ch.3 の場合 BAD7, ...) 。
EM1 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ
れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク
例外の種類を CTC および MPE 制御します。
384
第 13 章 MPU / EDSU
[bit6] EP2 : ブレークポイント 2 レジスタの許可
0
ブレークポイント 2 レジスタは無効です ( 初期値 ) 。
1
ブレークポイント 2 レジスタは有効です。
EP2 が有効な場合 , CMP1 の入力値はポイント 2 レジスタの内容と比較されます
(BAD インデックス= 2 +グループオフセット , グループ 0 ch.2 の場合 BAD2, グルー
プ 1 ch.2 の場合 BAD6, ...) 。
EM1 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ
れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク
例外の種類を CTC および MPE 制御します。
EP2 によって , ポイント 2 を有効にして割り当てる以外に , マスクレジスタの選択が
制御されます。ポイント 2 は , CMP1 マスク値を格納する初期設定アドレスでもあり
ます。ただし , ポイント 2 が有効な場合 , マスクをそこに格納できず , CMP1 のマス
ク入力はポイント 0 ( 反対のコンパレータ ) に切り換わります。
[bit5] EP1 : ブレークポイント 1 レジスタの許可
0
ブレークポイント 1 レジスタは無効です ( 初期値 ) 。
1
ブレークポイント 1 レジスタは有効です。
EP1 が有効な場合 , CMP0 の入力値はポイント 1 レジスタの内容と比較されます
(BAD インデックス= 1 +グループオフセット , グループ 0 ch.1 の場合 BAD1, グルー
プ 1 ch.1 の場合 BAD5, ...) 。
EM0 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ
れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク
例外の種類を CTC および MPE 制御します。
[bit4] EP0 : ブレークポイント 0 レジスタの許可
0
ブレークポイント 0 レジスタは無効です ( 初期値 ) 。
1
ブレークポイント 0 レジスタは有効です。
EP0 が有効な場合 , CMP0 の入力値はポイント 0 レジスタの内容と比較されます
(BAD インデックス= 0 +グループオフセット , グループ 0 ch.0 の場合 BAD0, グルー
プ 1 ch.0 の場合 BAD4, ...) 。
EM0 でマスク機能が有効になっている場合は , 入力値およびポイント値がマスクさ
れます。コンペア一致で , ブレーク例外が実行されます。入力値の選択とブレーク
例外の種類を CTC および MPE 制御します。
EP0 によって , ポイント 0 を有効にして割り当てる以外に , マスクレジスタの選択が
制御されます。ポイント 0 は , CMP0 マスク値を格納する初期設定アドレスでもあり
ます。ただし , ポイント 0 が有効な場合 , マスクをそこに格納できず , CMP0 のマス
ク入力はポイント 2 ( 反対のコンパレータ ) に切り換わります。
385
第 13 章 MPU / EDSU
組合せビットセット (COMB = 1) とともにメモリ保護が有効な場合 (MPE = 1) , ア
ドレス範囲はポイント 3 およびポイント 2 によって定義され , コンパレータ COMB1
および COMB0 の両方に対して有効です。このため , ポイント 1 および 0 は CMP0
の範囲定義には必要なく , ポイントから独立して EP0 および EP1 を有効にします。こ
の場合 , これらは通常設定されます。したがって , ポイント 0 はコンパレータ CMP1
および CMP0 両方のマスク値を格納するために使用でき , 上記で説明した例外はこ
の場合には適用されません。
● マスクおよび範囲レジスタの許可
[bit3] EM1 : CMP1 のマスクの許可
0
CMP1 のマスク機能は無効です ( 初期値 ) 。
1
CMP1 のマスク機能は有効です。
EM1 が有効な場合 , コンパレータ CMP1 はこれらのビット位置のみと一致します。こ
れらは "0" に設定されており , マスクレジスタによってマスクされていません。ポイ
ントのすべての入力およびコンペア値自体は , マスクレジスタの値と OR で組み合
されます。コンペア動作ポイント一致または範囲検出は , これらの OR でマスクさ
れた値に基づいて派生します。
マスク値の適切な BADx レジスタ ( ポイント 2 または 0) の選択は , EP2 および ER1 に
よって異なります。両方のビットの少なくとも 1 つが有効な場合 , ポイント 2 の割
当てが原因でマスク使用はポイント 0 に切り換わります。そうではない場合は , ポ
イント 2 に格納されているデフォルトのマスクが CMP1 に適用されます。
[bit2] EM0 : CMP0 のマスクの許可
0
CMP0 のマスク機能は無効です ( 初期値 ) 。
1
CMP0 のマスク機能は有効です。
EM0 が有効な場合 , コンパレータ CMP0 はこれらのビット位置のみと一致します。こ
れらは "0" に設定されており , マスクレジスタによってマスクされていません。ポイ
ントのすべての入力およびコンペア値自体は , マスクレジスタの値と OR で組み合
されます。コンペア動作ポイント一致または範囲検出は , これらの OR でマスクされ
た値に基づいて派生します。
マスク値の適切な BADx レジスタ ( ポイント 0 または 2) の選択は , EP0 および ER0 に
よって異なります。両方のビットの少なくとも 1 つが有効な場合 , ポイント 0 の割
当てが原因でマスク使用はポイント 2 に切り換わります。そうではない場合は , ポ
イント 0 に格納されているデフォルトのマスクが CMP0 に適用されます。MPE = 1
および COMB = 1 の場合 , EP0 および ER0 の設定に関係なく , マスクはポイント 0
から取得されます。
386
第 13 章 MPU / EDSU
[bit1] ER1 : CMP1 の範囲の許可
0
範囲検出 CMP1 (ch.2, ch.3) は無効です ( 初期値 ) 。
1
範囲検出 CMP1 (ch.2, ch.3) は有効です。
ER1 が有効な場合 , レジスタ BADx, ポイント 3, ポイント 2 が以下のように範囲の
比較に使用されます。
ポイント 2 <= コンペア値 <= ポイント 3
EM1 によってマスクが設定されている場合 , 両方のポイントレジスタはマスクレジ
スタの内容によってマスクされます。
ポイント 3 およびポイント 2 は BAD[x + 3] および BAD[x + 2] から取得され , マス
クはポイント 0, BAD[x + 0] に格納されます。
"x" はグループオフセットで , グループインデックスに 4 を掛けて計算します。
[bit0] ER0 : CMP0 の範囲の許可
0
範囲検出 CMP0 (ch.0, ch.1) は無効です ( 初期値 ) 。
1
範囲検出 CMP0 (ch.0, ch.1) は有効です。
ER0 が有効な場合 , レジスタ BADx, ポイント 1, ポイント 0 が以下のように範囲の
比較に使用されます。
ポイント 0 <= コンペア値 <= ポイント 1
EM0 によってマスクが設定されている場合 , 両方のポイントレジスタはマスクレジ
スタの内容によってマスクされます。
MPE = 1 かつ COMB = 1 という特殊な場合 , ポイント 1 およびポイント 0 は反対
のチャネル BAD[x + 3] および BAD[x + 2] から取得され , マスクはポイント 0,
BAD[x + 0] に格納されます。それ以外の場合は , ポイント 1 およびポイント 0 は
BAD[x + 1] および BAD[x + 0] から取得され , マスクはポイント 2, BAD[x + 2] に
格納されます。
"x" はグループオフセットで , グループインデックスに 4 を掛けて計算します。
387
第 13 章 MPU / EDSU
13.3.4.1
ブレークアドレス / データレジスタ
(BAD0 ∼ BAD31)
ブレークアドレス / データレジスタ (BAD0 ∼ BAD31) のビット構成や機能について
説明します。
BADx レジスタによって , チャネルの 8 つのグループに対して 32 個のブレークポイント
アドレス , データ値 , またはマスク情報が定義されます。チャネルのグループごとに , 4
つの専用 BAD レジスタがあります。BAD0, BAD1, BAD2, BAD3 はグループ 0 に属し ,
BAD4, BAD5, BAD6, BAD7 はグループ 1 に属します。以降も同様です。グループ 0 の
レジスタについて以下で説明する機能は , ほかのすべてのグループについても当てはま
ります。BADx レジスタのインデックスは , 次のグループのインデックスについてはそ
れぞれ 4 を加算する必要があります。
● BADn (n = 0, 4, 8, 12, 16, 20, 24, 28)
このレジスタでは , CMP0 のブレークポイント 0 の 32 ビット比較値を設定します。(ER0
で設定される ) 範囲モードでは , BAD0 のレジスタ値は下位アドレス制限として機能し
ます。また , BAD0 はマスクレジスタとして使用することもできます。
MPE = 1 かつ COMB = 1 という特殊な場合 , BAD0 はポイント定義に使用されません。
この場合 , CMP0 はポイント構成を BAD2 から取得します。
● BADn (n = 1, 5, 9, 13, 17, 21, 25, 29)
このレジスタでは , CMP0 のブレークポイント 1 の 32 ビット比較値を設定します。(ER0
で設定される ) 範囲モードでは , BAD1 のレジスタ値は上位アドレス制限として機能し
ます。
MPE = 1 かつ COMB = 1 という特殊な場合 , BAD1 はポイント定義に使用されません。
この場合 , CMP0 はポイント構成を BAD3 から取得します。
● BADn (n = 2, 6, 10, 14, 18, 22, 30)
このレジスタでは , CMP1 のブレークポイント 2 の 32 ビット比較値を設定します。(ER1
で設定される ) 範囲モードでは , BAD2 のレジスタ値は下位アドレス制限として機能し
ます。また , BAD2 はマスクレジスタとして使用することもできます。
● BADn (n = 3, 7, 11, 15, 19, 23, 27, 31)
このレジスタでは , CMP1 のブレークポイント 3 の 32 ビット比較値を設定します。(ER1
で設定される ) 範囲モードでは , BAD3 のレジスタ値は上位アドレス制限として機能し
ます。
388
第 13 章 MPU / EDSU
13.4
クイックリファレンス
EDSU レジスタのクイックリファレンスとコンパレータの構成を示します。
389
390
F0FCH
BAD31
F0F8H
BAD30
F0F4H
BAD29
F0F0H
BAD28
...
F08CH
BAD3
F088H
BAD2
F084H
BAD1
F080H
BAD0
F03CH
BCR7
...
F020H
BCR0
F010H
BIRQ
F00CH
BOAC
F008H
BIAC
16
IDX3
ro
ro
SW
IDX4
SR
15
ro
IDX2
SX
ro
IDX1
UR
UW
point 3
point 2 / mask 1
point 1
point 0 / mask 0
point 3
point 2 / mask 1
point 1
point 0 / mask 0
SRX1 SW1
SRX1 SW1
SRX0 SW0 URX1 UW1 URX0 UW0
SRX0 SW0 URX1 UW1 URX0 UW0
7
ro
ro
0
BD8
ro
MPE COMB CTC1 CTC0 OBS1 OBS0 OBT1 OBT0
CMP1: IA, OA, OA, OA8, 16, 32, alll r, rmw, w, all
CMP0: IA, OA, IA, DT
MPE COMB CTC1 CTC0 OBS1 OBS0 OBT1 OBT0
BD9
ro
EP3
EP3
BD7
ro
EP2
EP2
BD6
ro
EP1
EP1
BD5
PV
EP0
EP0
BD4
ro/ac
RST
EM1
EM1
BD3
INT1
Uart0, 1, 2, CAN
EM0
EM0
BD2
INT0
Device select (Rst) (Breakx)
ER1
ER1
BD1
ro
INTT
ER0
ER0
BD0
ro
INTR
FCPU FDMA EEMM PFD SINT1 SINT0 EINT1 EINT0 EINTT EINTR
8
IDX0 CDMA CSZ1 CSZ0 CRW1 CRW0
UW
BD31 BD30 BD29 BD28 BD27 BD26 BD25 BD24 BD23 BD22 BD21 BD20 BD19 BD18 BD17 BD16 BD15 BD14 BD13 BD12 BD11 BD10
ro
ro: read only
23
ac: auto clear
24
F004H
ro
31
BSTAT
F000H
BCTRL
第 13 章 MPU / EDSU
図 13.4-1 レジスタのクイックリファレンス
第 13 章 MPU / EDSU
図 13.4-2 コンパレータグループの構成 (2 つのグループについて説明 )
BCR1
BCR1
OBS1
OBS一致
BAD7
ポイント3
BAD6
ポイント2
IA/OA
BD3
BD7
マスク1
CMP1
BD2
BD6
CTC
IA
OA
値
コンパレータグループ1
BAD5
ポイント1
BAD4
ポイント0
IA/OA/DT
BD1
BD5
マスク0
CMP0
BD0
BD4
値
BCR0
BCR0
OBS0
OBS一致
BAD3
ポイント3
BAD2
ポイント2
IA/OA
BD3
BD3
マスク1
CMP1
BD2
BD2
CTC
IA
OA
ブレーク検出評価
CTC
IA
OA
DT
値
コンパレータグループ0
ポイント1
BAD0
ポイント0
IA/OA/DT
BD1
BD1
マスク0
CMP0
BD0
BD0
CTC
IA
OA
DT
BAD1
値
391
第 13 章 MPU / EDSU
392
第 14 章
REALOS 関連ハード
REALOS の概要 , レジスタの構成 / 機能 , および動
作について説明します。
14.1 遅延割込みモジュール
14.2 ビットサーチモジュール
393
第 14 章 REALOS 関連ハード
14.1
遅延割込みモジュール
遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま
す。
■ 遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取
消しを行うことができます。
394
第 14 章 REALOS 関連ハード
14.1.1
遅延割込みモジュールの概要
遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。
■ 遅延割込みモジュールのレジスタ一覧
遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。
図 14.1-1 遅延割込みモジュールのレジスタ一覧
bit
アドレス : 000038H
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DLYI
[R/W]
DICR
■ 遅延割込みモジュールのブロックダイヤグラム
図 14.1-2 に , 遅延割込みモジュールのブロックダイヤグラムを示します。
図 14.1-2 遅延割込みモジュールのブロックダイヤグラム
R-bus
割込み要求
DLYI
395
第 14 章 REALOS 関連ハード
14.1.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールのレジスタの構成および機能について説明します。
■ DICR ( 遅延割込みモジュールレジスタ )
DICR は , 遅延割込みを制御するレジスタです。
図 14.1-3 に , 遅延割込みモジュールレジスタ (DICR) のビット構成を示します。
図 14.1-3 遅延割込みモジュールレジスタ (DICR) のビット構成
bit
7
6
5
4
3
2
1
0
アドレス : 000038H
−
−
−
−
−
−
−
DLYI
[R/W]
-------0B ( 初期値 )
[bit0] DLYI
表 14.1-1 DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし [ 初期値 ]
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
396
第 14 章 REALOS 関連ハード
14.1.3
遅延割込みモジュールの動作説明
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ
とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで
きます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
MB91461/F467R では , 遅延割込みを割込み番号 63 (3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアして併せてタスクの切換えを行うようにしてください。
397
第 14 章 REALOS 関連ハード
14.2
ビットサーチモジュール
ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
■ ビットサーチモジュールの概要
ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0", "1" ま
たは変化点を検索して検出したビット位置を返します。
398
第 14 章 REALOS 関連ハード
14.2.1
ビットサーチモジュールの概要
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ ビットサーチモジュールのレジスタ一覧
図 14.2-1 に , ビットサーチモジュールのレジスタ一覧を示します。
図 14.2-1 ビットサーチモジュールのレジスタ一覧
bit 31
0
アドレス : 0003F0H
BSD0
0 検出用データレジスタ
アドレス : 0003F4H
BSD1
1 検出用データレジスタ
アドレス : 0003F8H
BSDC
変化点検出用データレジスタ
アドレス : 0003FCH
BSRR
検出結果レジスタ
■ ビットサーチモジュールのブロックダイヤグラム
図 14.2-2 に , ビットサーチモジュールのブロックダイヤグラムを示します。
図 14.2-2 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
399
第 14 章 REALOS 関連ハード
14.2.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ 0 検出用データレジスタ (BSD0)
書き込んだ値に対して , 0 検出を行います。
図 14.2-3 に , 0 検出用データレジスタ (BSD0) のレジスタ構成を示します。
図 14.2-3 0 検出用データレジスタ (BSD0) のレジスタ構成
bit 31
0
000003F0H
→ライトオンリ
→不定
R/W
初期値
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください ) 。
■ 1 検出用データレジスタ (BSD1)
図 14.2-4 に , 1 検出用データレジスタ (BSD1) のレジスタ構成を示します。
図 14.2-4 1 検出用データレジスタ (BSD1) のレジスタ構成
bit 31
0
000003F4H
R/W
初期値
→リード / ライト可能
→不定
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください ) 。
• 書込み時 :
書き込んだ値に対して , "1" を検出します。
• 読出し時 :
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避・復帰できます。
リセットによる初期値は不定です。
400
第 14 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
書き込んだ値に対して , 変化点の検出を行います。
図 14.2-5 に , 変化点検出用データレジスタ (BSDC) のレジスタ構成を示します。
図 14.2-5 変化点検出用データレジスタ (BSDC) のレジスタ構成
bit 31
0
000003F8H
→ライトオンリ
→不定
R/W
初期値
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は使わないでください ) 。
■ 検出結果レジスタ (BSRR)
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
図 14.2-6 に , 検出結果レジスタ (BSRR) のレジスタ構成を示します。
図 14.2-6 検出結果レジスタ (BSRR) のレジスタ構成
bit 31
0
000003FCH
R/W
初期値
→リードオンリ
→不定
401
第 14 章 REALOS 関連ハード
14.2.3
ビットサーチモジュールの動作説明
ビットサーチモジュールの動作について説明します。
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数
値の関係は , 表 14.2-1 を参照してください。
"0" が存在しないとき ( すなわち "FFFFFFFFH" という数値のとき ) , 32 という値をサー
チ結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B ("FFFFF000H") →
20
11111000010010011110000010101010B ("F849E0AAH") →
5
10000000000000101010101010101010B ("8002AAAAH") →
1
11111111111111111111111111111111B ("FFFFFFFFH") →
32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と
の関係は , 表 14.2-1 のとおりです。
"1" が存在しないとき ( すなわち "00000000H" という数値のとき ) , 32 という値をサー
チ結果として返します。
【実行例】
書込みデータ
402
読出し値 (10 進 )
00100000000000000000000000000000B ("20000000H")
→
2
00000001001000110100010101100111B ("01234567H")
→
7
00000000000000111111111111111111B ("0003FFFFH")
→
14
00000000000000000000000000000001B ("00000001H")
→
31
00000000000000000000000000000000B ("00000000H")
→
32
第 14 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを bit30 から LSB へスキャンし ,
MSB の値と比較します。
最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを
読み出すことで得られます。
検出した位置と返す値は , 表 14.2-1 の示すとおりです。
変化点が存在しないときは , 32 を返します。変化点検出では , 結果として "0" を返すこ
とはありません。
【実行例】
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B ("20000000H")
→
2
00000001001000110100010101100111B ("01234567H")
→
7
00000000000000111111111111111111B ("0003FFFFH")
→
14
00000000000000000000000000000001B ("00000001H")
→
31
00000000000000000000000000000000B ("00000000H")
→
32
11111111111111111111000000000000B ("FFFFF000H") →
20
11111000010010011110000010101010B ("F849E0AAH") →
5
10000000000000101010101010101010B ("8002AAAAH") →
1
11111111111111111111111111111111B ("FFFFFFFFH") →
32
表 14.2-1 に , ビット位置と返す値 (10 進 ) を示します。
表 14.2-1 ビット位置と返す値 (10 進 )
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
検出した
ビット位置
返す値
31
0
23
8
15
16
7
24
30
1
22
9
14
17
6
25
29
2
21
10
13
18
5
26
28
3
20
11
12
19
4
27
27
4
19
12
11
20
3
28
26
5
18
13
10
21
2
29
25
6
17
14
9
22
1
30
24
7
16
15
8
23
0
31
存在しない
32
403
第 14 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1) 1 検出用データレジスタを読み出し , この内容を保存 ( 退避 )
2) ビットサーチモジュールを使用
3) 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 )
以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, 1)以前に,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが0検出用または変化点検出用であっても, 上記の
手順で正しく元に戻ります。
404
第 15 章
DMAC (DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能 , および
DMAC の動作について説明します。
15.1 DMAC (DMA コントローラ ) の概要
15.2 DMAC (DMA コントローラ ) のレジスタ詳細説明
15.3 DMAC (DMA コントローラ ) の動作説明
15.4 DMAC (DMA コントローラ ) の動作フロー
15.5 データバス
405
第 15 章 DMAC (DMA コントローラ )
15.1
DMAC (DMA コントローラ ) の概要
DMAC (DMA コントローラ ) は , FR ファミリデバイスにて DMA(Direct Memory
Access) 転送を実現するためのモジュールです。
DMAC (DMA コントローラ ) の制御による DMA 転送により , CPU を介さずに各種
データ転送を高速に行うことが可能となり , システムのパフォーマンスを増加させ
ます。
■ DMAC のハードウェア構成
DMAC (DMA コントローラ ) は , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 32 ビットアドレスレジスタ ( リロード指定可能 :ch.0 ∼ ch.4)
• 16 ビット転送回数レジスタ ( リロード指定可能 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 2 サイクル転送
■ DMAC の主要機能
DMAC (DMAコントローラ)によるデータ転送には, 主に以下のような機能があります。
● 複数チャネルの独立したデータ転送が可能 (5 チャネル )
• 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
• ch.0 ∼ ch.1 間にて順位回転が可能
• DMAC 起動要因
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード : 32 ビットアドレス指定
( 増加 / 減少 / 固定 : アドレス増減幅は± 1, 2, 4 固定 )
- データの種類 : バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
406
第 15 章 DMAC (DMA コントローラ )
■ DMAC のレジスタ概要
図 15.1-1 に , DMAC のレジスタ概要を示します。
図 15.1-1 DMAC のレジスタ概要
ch.0 制御 / ステータスレジスタ A
DMACA0
bit 31
000200H
ch.0 制御 / ステータスレジスタ B
DMACB0
000204H
ch.1 制御 / ステータスレジスタ A
DMACA1
000208H
ch.1 制御 / ステータスレジスタ B
DMACB1
00020CH
ch.2 制御 / ステータスレジスタ A
DMACA2
000210H
ch.2 制御 / ステータスレジスタ B
DMACB2
000214H
ch.3 制御 / ステータスレジスタ A
DMACA3
000218H
ch.3 制御 / ステータスレジスタ B
DMACB3
00021CH
ch.4 制御 / ステータスレジスタ A
DMACA4
000220H
ch.4 制御 / ステータスレジスタ B
DMACB4
000224H
全体制御レジスタ
DMACR
000240H
ch.0 転送元アドレス設定レジスタ
DMASA0
001000H
ch.0 転送先アドレス設定レジスタ
DMADA0
001004H
ch.1 転送元アドレス設定レジスタ
DMASA1
001008H
ch.1 転送先アドレス設定レジスタ
DMADA1
00100CH
ch.2 転送元アドレス設定レジスタ
DMASA2
001010H
ch.2 転送先アドレス設定レジスタ
DMADA2
001014H
ch.3 転送元アドレス設定レジスタ
DMASA3
001018H
ch.3 転送先アドレス設定レジスタ
DMADA3
00101CH
ch.4 転送元アドレス設定レジスタ
DMASA4
001020H
ch.4 転送先アドレス設定レジスタ
DMADA4
001024H
24
23
16
15
8
7
0
407
第 15 章 DMAC (DMA コントローラ )
■ DMAC のブロックダイヤグラム
図 15.1-2 に , DMAC のブロックダイヤグラムを示します。
カウンタ
バスコントローラへ
DMA転送要求
バッファ
セレクタ
ライトバック
図 15.1-2 DMAC のブロックダイヤグラム
DTC2段レジスタ DTCR
DMA起動要因
選択回路
&
要求受付け
制御
ペリフェラル起動要求/停止入力
外部端子起動要求/停止入力
カウンタ
DSS[3:0]
バッファ
読出し
書込み
優先度回路
割込みコントローラへ
IRQ[4:0]
周辺割込みクリア
MCLREQ
ERIE,EDIE
セレクタ
読出し/書込み
制御
BLKレジスタ
408
セレクタ
DMAコントローラ
DSAD2段レジスタ
SADM,SASZ[7:0] SADR
DDAD2段レジスタ
DADM,DASZ[7:0] DADR
ライトバック
ライトバック
バス制御部
セレクタ
DDNレジスタ
セレクタ
アドレス
カウンタバッファ
アクセス
カウンタバッファ
DDN
アドレスカウンタ
バスコン
トローラ
へ
バス制御部
状態遷移回路
X-bus
TYPE.MOD,WS
第 15 章 DMAC (DMA コントローラ )
15.2
DMAC (DMA コントローラ ) のレジスタ詳細説明
DMAC の各レジスタの詳細について説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
* マークは DMAC 転送中に設定すると動作に影響するビットです。このビットの書換
えは DMAC 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE = 0 または DMACA:DENB = 0 のとき ) で
設定した場合は , 起動許可後に設定は有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH3 ∼ DMAH0 ≠ 0000B または DMACA:PAUS
= 1 のとき ) で設定した場合は , 一時停止解除後に設定は有効になります。
409
第 15 章 DMAC (DMA コントローラ )
15.2.1
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータス
レジスタ A
DMACA0 ∼ DMACA4 は DMAC 各チャネルの動作制御を行うレジスタで , 各チャネ
ルごとに独立して存在します。
■ DMACA0 ∼ DMACA4 のビット機能
図 15.2-1 に , DMACA0 ∼ DMACA4 の各ビット機能を示します。
図 15.2-1 DMACA0 ∼ DMACA4 の各ビット機能
bit
31
30
29
28
27
DENB PAUS STRG
bit
15
14
13
26
25
24
23
22
IS [4 : 0]
12
11
10
21
20
19
8
7
6
17
16
BLK [3 : 0]
予約
9
18
5
4
3
2
1
0
DTC [15 : 0]
( 初期値 : 00000000H)
[bit31] DENB(Dma ENaBle) : DMA 動作許可ビット
各転送チャネルに対応して DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生して受け付けられると DMA 転送を開始し
ます。起動許可されていないチャネルに対して発生した転送要求は , すべて無効と
なります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" にな
り , 転送は停止します。
本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [bit30:DMACA]
で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止
しないで強制停止した場合は DMA は停止しますが転送データは保証されません。
停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で行ってください。
DENB
機 能
0
対応チャネル DMA 動作禁止 [ 初期値 ]
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。
• 読出し / 書込み可能です。
DMAC 全体制御レジスタ DMACR の bit31:DMAE ビットにより , 全チャネルの動作
が禁止されている場合 , 本ビットへの "1" 書込みは無効となり停止状態を維持しま
す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が
禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。
410
第 15 章 DMAC (DMA コントローラ )
[bit30] PAUS(PAUSe) : 一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットが設定される
と , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停止
中は DSS ビットが "1XXB" になります ) 。
起動前に本ビットを設定してから起動した場合 , 一時停止状態のままとなります。
本ビットが設定されている間に新たに発生した転送要求は受け付けられますが , 本
ビットをクリアしないと転送は開始しません (「15.3.10 転送要求の受付けと転送」
を参照 ) 。
PAUS
機 能
0
対応チャネル DMA 動作許可 [ 初期値 ]
1
対応チャネル DMA 一時停止
• リセット時 :"0" に初期化されます。
• 読出し / 書込み可能です。
[bit29] STRG(Software TRiGger) : 転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操
作は無効となります。
STRG
機 能
0
無効 [ 初期値 ]
1
DMA 起動要求
• リセット時 :"0" に初期化されます。
• 読出し値は常に "0" となります。
• 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。
<注意事項>
DMAE ビットの書込みによる起動と本ビットによる転送要求が同時に発生する場合 , 転送
要求は有効となり , 転送を開始します。また , PAUS ビットへの "1" 書込みと同時に発生
する場合 , 転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始
しません。
411
第 15 章 DMAC (DMA コントローラ )
[bit28 ∼ bit24] IS4 ∼ IS0 (Input Select)* : 転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ
トウェア転送要求は本設定にかかわらず有効となります。
表 15.2-1 転送要求の要因
IS
(Input Source)
機能
転送停止要求
00000B
ソフトウェア転送要求のみ
00001B
∼
01101B
設定禁止
01110B
外部端子 (DREQ) "H" レベルまたは↑エッジ
01111B
外部端子 (DREQ) "L" レベルまたは↓エッジ
10000B
外部割込み 0
−
10001B
外部割込み 1
−
10010B
外部割込み 2
−
10011B
外部割込み 3
−
10100B
リロードタイマ 0
−
10101B
リロードタイマ 1
−
10110B
LIN-UART0 RX ( 受信完了 )
あり
10111B
LIN-UART0 TX ( 送信完了 )
−
11000B
LIN-UART1 RX ( 受信完了 )
あり
11001B
LIN-UART1 TX ( 送信完了 )
−
11010B
LIN-UART4 RX ( 受信完了 )
あり
11011B
LIN-UART4 TX ( 送信完了 )
−
11100B
LIN-UART5 RX ( 受信完了 )
あり
11101B
LIN-UART5 TX ( 送信完了 )
−
11110B
A/D コンバータ
−
11111B
PPG0
−
−
• リセット時 : "00000B" に初期化されます。
• 読出し / 書込み可能です。
周辺機能の割込みによる DMA 起動を設定した場合 (IS = 1XXXXB), 選択した機能
は ICR レジスタで割込みを禁止状態にしてください。また , 周辺機能の割込みによ
る DMA 起動を設定した状態で , ソフトウェア転送要求により DMA 転送を起動する
と , 転送終了後 , 該当する周辺に対して要因クリアを行います。このため , 本来の転
送要求をクリアしてしまう可能性がありますので , 周辺機能の割込みによる DMA
転送を設定した状態では , ソフトウェア転送要求による起動を行わないでくださ
い。
412
第 15 章 DMAC (DMA コントローラ )
[bit23 ∼ bit20] 予約 : 未使用ビット
読出し値は "0000B" 固定です。書込みは無効となります。
[bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) : ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設
定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し回
数 ) となります。
ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してください。
表 15.2-2 対応するチャネルのブロック転送時のブロックサイズ
BLK
XXXXB
機 能
対応チャネルのブロックサイズ指定
• リセット時 :"0000B" に初期化されます。
• 読出し / 書込み可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit0] DTC15 ∼ DTC0 (Dma Terminal Count register)* : 転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタには , 専用のリロードレジスタがあります。転送回数レジスタの
リロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定
値をレジスタに戻します。
DTC
XXXXH
機 能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。そのため , DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時 : "0000H" に初期化されます。
• 読出し / 書込み可能です。DTC のアクセスは , 必ずハーフワード長またはワード
長にてアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
413
第 15 章 DMAC (DMA コントローラ )
15.2.2
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 制御 / ステータス
レジスタ B
DMACB0 ∼ DMACB4 は , DMAC 各チャネルの動作制御を行うレジスタで , 各チャ
ネルごとに独立して存在します。
■ DMACB0 ∼ DMACB4 のビット機能
図 15.2-2 に , DMACB0 ∼ DMACB4 の各ビット機能を示します。
図 15.2-2 DMACB0 ∼ DMACB4 の各ビット機能
bit
31
30
TYPE [1 : 0]
bit
15
14
29
28
27
26
MOD [1 : 0]
WS [1 : 0]
13
11
12
10
25
24
23
22
21
20
19
18
SADM DADM DTCR SADR DADR ERIE EDIE
9
8
7
6
5
SASZ [7 : 0]
4
3
17
16
DSS [2 : 0]
2
1
0
DASZ [7 : 0]
( 初期値 : 00000000_00000000_XXXXXXXX_XXXXXXXXB)
[bit31, bit30] TYPE1, TYPE0 (TYPE)* : 転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード :
転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定して読出し動作と書
込み動作を転送回数分繰り返して転送するモードです。
表 15.2-3 対応チャネルの動作タイプ
TYPE
機 能
00B
2 サイクル 転送 [ 初期値 ]
01B
設定禁止
10B
設定禁止
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
• 必ず "00B" に設定してください。
414
第 15 章 DMAC (DMA コントローラ )
[bit29, bit28] MOD1, MOD0 (MODe)* : 転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機 能
00B
ブロック / ステップ転送モード [ 初期値 ]
01B
バースト転送モード
10B
設定禁止
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
[bit27, bit26] WS1, WS0 (Word Size) : 転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機 能
00B
バイト単位で転送 [ 初期値 ]
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出し / 書込み可能です。
[bit25] SADM(Source-ADdr, count-Mode select)* : 転送元アドレスカウントモード指定
対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送後に加算 / 減算されて転送終了時に次回アクセス用アドレスが対応するアドレ
スレジスタ (DMASA) に書き込まれます。
そのため , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
機 能
0
転送元アドレスは増加します。[ 初期値 ]
1
転送元アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
415
第 15 章 DMAC (DMA コントローラ )
[bit24] DADM(Destination-ADdr, Count-Mode select)* :
転送先アドレスカウントモード指定
対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って ,
1 転送後に加算 / 減算されて転送終了時に次回アクセス用アドレスが対応するアド
レスレジスタ (DMADA) に書き込まれます。
そのため , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (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" に初期化されます。
• 読出し / 書込み可能です。
416
第 15 章 DMAC (DMA コントローラ )
[bit22] SADR(Source-ADdr.-reg, Reload)* : 転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります ) 。
SADR
機 能
0
転送元アドレスレジスタリロード禁止 [ 初期値 ]
1
転送元アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[bit21] DADR(Dest.-ADdr.-reg, Reload)* : 転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit22:SADR の内容と等価になります。
DADR
機 能
0
転送先アドレスレジスタリロード禁止 [ 初期値 ]
1
転送先アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
417
第 15 章 DMAC (DMA コントローラ )
[bit20] ERIE (ERror Interrupt Enable)* : エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は DSS2 ∼
DSS0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の
終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット
の説明を参照 ) 。
ERIE
機 能
0
エラー割込み要求出力禁止 [ 初期値 ]
1
エラー割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[bit19] EDIE(EnD Interrupt Enable)* : 終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機 能
0
終了割込み要求出力禁止 [ 初期値 ]
1
終了割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status)* : 転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。
終了コードの内容は以下のとおりです。
表 15.2-4 転送停止要因表示
DSS
機 能
割込み発生
000B
初期値
なし
X01B
―
なし
X10B
転送停止要求
X11B
正常終了
終了
1XXB
DMA 一時停止中 (DMAH, PAUS ビット , 割込みなど )
なし
エラー
転送停止要求は , 周辺回路からの要求を使用した場合のみ設定されます。
なお , 「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 : "000B" に初期化されます。
• "000B" を書き込むことによりクリアされます。
• 読出し / 書込み可能ですが , 本ビットへの書込みは "000B" のみ有効となります。
418
第 15 章 DMAC (DMA コントローラ )
[bit15 ∼ bit8] SASZ7 ∼ SASZ0 (Source Addr count SiZe)* :
転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
機 能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出し / 書込み可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
[bit7 ∼ bit0] DASZ7 ∼ DASZ0 (Des Addr count SiZe)*: 転送先アドレスカウントサイズ
指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
機 能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出し / 書込み可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
419
第 15 章 DMAC (DMA コントローラ )
15.2.3
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先ア
ドレス設定レジスタ
DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 は , DMAC 各チャネルの動作制御を行
うレジスタで , 各チャネルごとに独立して存在します。
■ DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 のビット機能
DMASA0∼DMASA4/DMADA0∼DMADA4の各ビット機能は, 以下に示すとおりです。
図 15.2-3 DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 の各ビット機能
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMASA [31 : 16]
bit
15
14
13
12
11
10
9
8
7
DMASA [15 : 0]
( 初期値 : XXXXXXXXH)
bit
31
30
29
28
27
26
25
24
23
DMADA [31 : 16]
bit
15
14
13
12
11
10
9
8
7
DMADA [15 : 0]
( 初期値 : XXXXXXXXH)
転送元 / 転送先アドレスを格納するレジスタ群です。32 ビット長で構成されています。
[bit31 ∼ bit0] DMASA31 ∼ DMASA0 (DMA Source Addr)* : 転送元アドレス設定
転送元アドレスの設定を行います。
420
第 15 章 DMAC (DMA コントローラ )
[bit31 ∼ bit0] DMADA31 ∼ DMADA0 (DMA Destination Addr)* : 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに設定に従ってアドレスカウントします。DMA
の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は
終了します。そのため , DMA 動作中のアドレスカウンタ値を読み出すことはできま
せん。
すべてのレジスタには , 専用のリロードレジスタがあります。転送元 / 転送先アド
レスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自
動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影
響を与えません。
• リセット時 : "00000000H" に初期化されます。
• 読出し / 書込み可能です。本レジスタは , 必ず 32 ビットデータでアクセスしてく
ださい。
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。そのため , 転送アドレ
スをリアルタイムで読出しすることはできません。
• 存在しない上位ビットには , "0" を設定してください。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
421
第 15 章 DMAC (DMA コントローラ )
15.2.4
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御
レジスタ
DMACR は , DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは
必ずバイト長でアクセスしてください。
■ DMACR のビット機能
図 15.2-4 に , DMACR の各ビット機能を示します。
図 15.2-4 DMACR の各ビット機能
bit
bit
31
30
29
28
27
26
25
DMAE
−
−
PM01
15
14
13
12
11
10
9
−
−
−
−
−
−
−
24
23
22
21
20
19
18
17
16
−
−
−
−
−
−
−
−
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
DMAH [3 : 0]
( 初期値 : 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
[bit31] DMAE(DMA Enable) : DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , 各チャネルごとの起動 / 停止の設
定や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。転送中であった
チャネルは要求を取り下げ , ブロック境界にて転送を停止します。禁止状態にて , 各
チャネルに対して行われる起動操作はすべて無効となります。
本ビットにより DMA 動作が許可されている場合 , 各チャネルごとに起動 / 停止操
作が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに
対する起動は行われません。
本ビットに "0" を書き込むと強制停止しますが , 必ず DMAH3 ∼ DMAH0 ビット
(bit27 ∼ bit24:DMACR) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) し
てください。一時停止しないで強制停止した場合は DMA は停止しますが転送デー
タは保証されません。停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で
行ってください。
DMAE
機 能
0
全チャネル DMA 動作禁止 [ 初期値 ]
1
全チャネル DMA 動作許可
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
422
第 15 章 DMAC (DMA コントローラ )
[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" に初期化されます。
• 読出し / 書込み可能です。
[bit27 ∼ bit24] DMAH3 ∼ DMAH0 (DMA Halt) : DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットが設定されると , 再び本ビッ
トがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットを設定してから起動した場合 , 全チャネルが一時停止のままとな
ります。
本ビットが設定されている間に DMA 転送が許可 (DENB = 1) されているチャネル
に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送
を開始します。
DMAH
0000B
0000B 以外
機能
全チャネル DMA 動作許可 [ 初期値 ]
全チャネル DMA 一時停止
• リセット時 : "0" に初期化されます。
• 読出し / 書込み可能です。
[bit30, bit29, bit23 ∼ bit0] 予約 : 予約ビット
読出し値は不定です。
423
第 15 章 DMAC (DMA コントローラ )
15.3
DMAC (DMA コントローラ ) の動作説明
DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など
について説明します。
■ DMAC の概要
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー
タ転送を制御する多機能 DMA コントローラです。
424
第 15 章 DMAC (DMA コントローラ )
15.3.1
動作概要
DMAC の動作概要を説明します。
■ DMAC の主要動作
各転送チャネルは , 独立に各種機能を設定します。
各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いません。
転送要求検出により , バスコントローラに対して DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。転送は各チャネルごとに独
立に設定されたモード設定に従ったシーケンスで行われます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD1, MOD0 ビットで設定さ
れた転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求にて 1 ブロック転送単位のみ転送を行い , その後 , 次の転送要求が受け
付けられるまでは DMA はバスコントローラに対して転送要求を停止します。
1 ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK3 ∼ BLK0)
● バースト転送
1 回の転送要求にて指定転送回数終了まで連続して転送を行います。
指定転送回数 : ブロックサイズ分×転送回数分
(DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー
タを書き込みます。
■ 転送アドレス
アドレッシングには以下のようなものがあり , 各チャネル転送元 / 転送先ごとに独立に
設定します。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けたら , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回アクセスアドレスを生成 ( 加
425
第 15 章 DMAC (DMA コントローラ )
算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック
されます。
そのため , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか
更新されませんので転送中のアドレスをリアルタイムに知ることはできません。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタを減数 ( − 1) します。転送回数レジ
スタが "0" になると指定転送回数終了となり , 終了コードを表示して停止または再起動
します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ
れます (DMACB:DSS2 ∼ DSS0)。
• 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) →正常終了
• 周辺回路からの転送停止要求の発生→エラー
• アドレスエラーの発生→エラー
• リセットの発生→リセット
各終了要因に対応して , 転送停止要因が表示 (DSS) されて転送終了割込み / エラー割込
みを発生可能です。
426
第 15 章 DMAC (DMA コントローラ )
転送要求の設定
15.3.2
DMA 転送を起動する転送要求には , 以下の 2 種類があります。
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが
できます。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
各チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS4 ∼ IS0 = 1XXXXB)。
外部転送要求とは同時に使用することができません。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ ) 。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。
上記の転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対して DMA 転送要求を出力して転送を開始します。
427
第 15 章 DMAC (DMA コントローラ )
15.3.3
転送シーケンス
各チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転
送モードを独立して設定することができます (DMACB:TYPE1, TYPE0, MOD1, MOD0
の設定 ) 。
■ 転送シーケンスの選択
レジスタの設定により , 以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転
送元 / 転送先アドレスは 32 ビット領域指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。
表 15.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。
表 15.3-1 バースト 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
〔バースト転送の特長〕
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送
を 行 い ま す。転 送 回 数 は ブ ロ ッ ク サ イ ズ 分 × 転 送 回 数 分 に な り ま す
(DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0)。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合, 転送終了後より次の転送要
求を受け付けます。
• 転送中に , より高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロッ
ク転送単位の境目でチャネルを切り換えてそのチャネルの転送要求がクリアさ
れるまで復帰しません。
図 15.3-1 に , バースト転送例を示します。
図 15.3-1 バースト転送例
転送要求↑(エッジ)
バス動作
転送回数
CPU
SA
DA
4
SA
DA
3
SA
DA
2
SA
DA
1
転送終了
(外部端子立上りエッジ起動,ブロック数=1, 転送回数=4のときのバースト転送例)
428
CPU
0
第 15 章 DMAC (DMA コントローラ )
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは 32 ビット領域指定可能です。
表 15.3-2 にステップ / ブロック転送 2 サイクル転送の指定可能転送アドレスを示します。
表 15.3-2 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
■ ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
〔ステップ転送の特長〕
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対して DMA 転送要求を取り下げる ) 。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により , 高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止
後に , チャネルを切り換えて転送を開始します。ステップ転送における優先順位は ,
転送要求が同時に発生した場合のみ意味があります。
■ ブロック転送
ブロックサイズを "1" 以外に設定すると , ブロック転送シーケンスとなります。
[ ブロック転送の特長 ]
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ
プ転送と全く同じ動作となります。図 15.3-2 にブロック転送例を示します。
図 15.3-2 ブロック転送例
転送要求(↑エッジ)
バス動作
ブロック数
転送回数
CPU
SA
DA
SA
2
DA
1
2
CPU
0
SA
DA
SA
2
DA
1
1
転送終了
(外部端子立上りエッジ起動,ブロック数=2, 転送回数=2のときのブロック転送例)
429
第 15 章 DMAC (DMA コントローラ )
15.3.4
DMA 転送全般
DMA の転送動作について説明します。
■ ブロックサイズ
転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の
データの集合となります。
1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送
単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。
転送中に , より高い優先順位の転送要求が受け付けられた場合または転送の一時停止
要求が発生した場合 , ブロック転送時でも 1 転送単位の境界にならないと停止しませ
ん。これにより , 分割・一時停止を希望しないデータブロックのデータ保護が可能とな
りますが , ブロックサイズが大きい場合はレスポンスを低下させる原因になります。
リセット発生の場合のみ直ちに停止しますが , 転送中であったデータの内容などは保
証されません。
■ リロード動作
本モジュールでは, 各チャネルごとに, 以下の3種類のリロード機能の設定が可能です。
(1) 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起
動受付け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のま
まとなり , 以降の転送は行われません。
(2) 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定
します。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ
値が終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用
します。
(3) 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定
します。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
( 以下 (2) と同じ )
転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の
再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
430
第 15 章 DMAC (DMA コントローラ )
〔動作モードとリロード動作の特殊な例〕
外部端子入力レベル検出による連続転送モードで転送している場合 , 転送回数レジ
スタのリロード機能を使用すると , 入力が連続している間に転送終了となってもそ
のままリロードして転送を継続します。この場合も終了コードは設定されます。
転送終了後いったん停止して , 再度入力検出から行いたい場合は , リロード指定を
行わないようにしてください。
バースト / ブロック / ステップ転送モードで転送している場合 , 転送が終了し , リ
ロードすると , いったん転送を中断し , 改めて転送要求入力が検出されるまで転送
を行いません。
431
第 15 章 DMAC (DMA コントローラ )
アドレッシングモード
15.3.5
各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。
その指定方法について説明します。転送シーケンスによって設定してください。
■ アドレスレジスタ指定
2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) に転送元アドレス
を , 転送先アドレス設定レジスタ (DMADA) に転送先アドレスを設定してください。
〔アドレスレジスタの特長〕
32 ビット長のレジスタです。
〔アドレスレジスタの機能〕
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタで次回アクセス時のアドレス計算が行われ, 計算結果の
アドレスでアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算のどち
らかを選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値
によります (DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最
終アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<参考>
32 ビット長アドレス計算の結果 , オーバフロー / アンダフローが発生した場合 , アドレス
エラーとして検出され , そのチャネルの転送を中止します ( 表 15.2-4 を参照 ) 。
<注意事項>
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• DMAC により DMAC 自身のレジスタへの転送は行わないでください。
432
第 15 章 DMAC (DMA コントローラ )
15.3.6
データの種類
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。
• バイト
• ハーフワード
• ワード
■ アクセスアドレス
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット
は無視されます。
• ワード :
実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。
• ハーフワード :
実際のアクセスアドレスは下位 1 ビットが "0B" から始まる 2 バイトとなります。
• バイト :
実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス
上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記
の決まりに従ってアドレスが修正されてアクセスが行われます。
433
第 15 章 DMAC (DMA コントローラ )
15.3.7
転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回
数指定値は転送回数レジスタ (DMACA:DTC) にて設定します。
■ 転送回数レジスタとリロード動作
レジスタ値は転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減算
されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
〔転送回数レジスタ群の特長〕
• 各レジスタ 16 ビット長です。
• すべてのレジスタにはそれぞれ専用リロードレジスタがあります。
• レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
〔リロード動作〕
• リロード機能があるレジスタで, リロード機能が許可されている場合にのみ有効
です。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 , "0" になると転送終了を通知すると
ともにリロードレジスタから初期値を読み出して回数レジスタに書き込みます。
434
第 15 章 DMAC (DMA コントローラ )
CPU 制御
15.3.8
DMA 転送要求が受け付けられると , DMA はバスコントローラに対して転送要求を
発生します。
バスコントローラはバス動作の切れ目で内部バス使用権を DMA に明け渡し , DMA
転送を開始します。
■ DMA 転送と割込み
DMA 転送中に , NMI 要求 , または割込みコントローラの HRCL レジスタにて設定され
たホールド抑止レベルより高いレベルの割込み要求が発生した場合には , DMAC は転
送単位 (1 ブロック ) の境界にてバスコントローラへの転送要求を一時取り下げ , 割込
み要求がクリアされるまでは転送を一時停止状態にします。この間 , 転送要求は内部で
保持されます。割込み要求がクリアされた後に再度 , DMAC はバスコントローラへ転
送要求を発行してバス使用権を取得し , DMA 転送を再開します。
割込みのレベルが HRCL レジスタに設定されたレベルより低い場合は , DMA 転送終了
まで割込みは受け付けられません。また , HRCL の設定値より低いレベルの割込み処理
動作中に DMA 転送要求があった場合は , 転送要求は受け付けられ , 転送終了まで割込
み処理動作は停止します。
デフォルトでは DMA 転送要求レベルは最弱です。すべての割込み要求に対して転送
を停止し , 割込み処理を優先させます。
■ DMA 抑止
FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送
を中断して該当割込みルーチンへ分岐します。この機能は割込み要求がある限り有効
ですが , 割込み要因をクリアすると抑止機能が働かなくなり , 割込み処理ルーチン内で
DMA 転送を再開します。
このため , DMA 転送を中断するレベルの割込み要因の処理ルーチン内で , 割込み要因
クリア後の DMA 再転送開始を抑止したいときは , DMA 抑止機能を使用します。
DMA 抑止機能は , DMA 全体制御レジスタの DMAH3 ∼ DMAH0 ビットに "0" 以外の
値を書くことで起動し , "0" を書くことで停止します。
本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み
要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす
ると , 以降 , DMA 転送を行いません。
割込み処理への対応を行った後 , 復帰する前に DMAH3 ∼ DMAH0 ビットの内容を 1 つ
減少させます。
もし , 多重割込みであれば DMAH3 ∼ DMAH0 ビットの内容は , まだ "0" にならないた
め , 引き続いて DMA 転送は抑止されます。また , 多重割込みでなければ , DMAH3 ∼
DMAH0 ビットの内容は "0" になるため , その後 , すぐに DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用することができません。
• DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてください。
435
第 15 章 DMAC (DMA コントローラ )
15.3.9
動作開始
DMA 転送の開始は , 各チャネルごとに独立に制御しますが , その前に全チャネルの
動作を許可しておく必要があります。
■ 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。
許可されていない状態で行った起動設定 , および発生した転送要求はすべて無効とな
ります。
■ 転送起動
各チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動
されたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転
送動作が開始されます。
■ 一時停止状態からの起動
各チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にした場合 , 転送動
作を起動しても一時停止状態を維持します。この間に転送要求が発生した場合は , 要求
を受け付けて保持します。
一時停止を解除した時点から転送を開始します。
436
第 15 章 DMAC (DMA コントローラ )
15.3.10
転送要求の受付けと転送
転送要求の受付けと転送の内容を説明します。
■ 転送要求の受付けと転送
起動後から , 各チャネルに対して設定した転送要求のサンプリングが開始されます。
周辺割込み起動を選択した場合 , 転送要求がクリアされるまで DMAC は転送を続けま
すが , クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。
周辺割込みはレベル検出扱いとなりますので , 割込みは DMA による割込みクリアで行
うようにしてください。
転送要求は他チャネルの要求が受け付けられて転送が行われている間でも常に受け付
けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定し
ています。
437
第 15 章 DMAC (DMA コントローラ )
15.3.11
DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に
周辺割込みを選択したときに機能します (IS4 ∼ IS0 = 1XXXXB のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち , IS4 ∼ IS0
で設定された周辺機能のみクリアされます。
■ DMA による割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います (「15.4 DMAC (DMA コントロー
ラ ) の動作フロー」を参照 ) 。
〔ブロック / ステップ転送〕
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号が発生
します。
〔バースト転送〕
バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発
生します。
438
第 15 章 DMAC (DMA コントローラ )
15.3.12
一時停止
DMA 転送が一時停止する場合について説明します。
■ 制御レジスタへの書込みによる一時停止の設定
( 各チャネル独立または全チャネル同時に設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると転送を再開します。
■ NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
439
第 15 章 DMAC (DMA コントローラ )
15.3.13
動作終了 / 停止
DMA 転送の終了は , 各チャネルごとに独立に制御し , 全チャネルの動作を禁止する
ことが可能です。
■ 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:
DENB ビットをクリアする ) 。
リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロードし ,
終了コードにて「正常終了」を表示した後 , 再度 , 転送要求待ちとなります (DMACA:
DENB ビットをクリアしない ) 。
■ 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含めて DMAC のすべての動作が停止します。以降 , 再度 , 全チャネル DMA 動
作を許可しても , 各チャネルごとに再起動しないと転送は行われません。この場合 , 割
込みは一切発生しません。
440
第 15 章 DMAC (DMA コントローラ )
15.3.14
エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー
発生による停止および強制停止があります。
■ 周辺回路からの転送停止要求の発生
転送要求を出力する周辺回路には , 異常を検出した際などに転送停止要求を発生する
ものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。
この転送停止要求を受け取った DMAC は , 終了コードで「転送停止要求」を表示して
対応するチャネルの転送を停止します。
■ アドレスエラーの発生
各アドレッシングモードにて不適切なアドレッシングが行われたとき , アドレスエ
ラーとして検出されます。
「不適切なアドレッシング」とは , 例えば「32 ビットアドレ
ス指定時に , アドレスカウンタでオーバフロー / アンダフローが発生した場合」です。
アドレスエラーを検出すると , 終了コードで「アドレスエラーの発生」を表示して対応
するチャネルの転送を停止します。
441
第 15 章 DMAC (DMA コントローラ )
15.3.15
DMAC 割込み制御
DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に DMAC 各チャネルごと
に割込みを出力することが可能です。
■ DMAC 割込み制御が出力できる割込み
• 転送終了割込み :
正常終了した場合のみ発生する。
• エラー割込み :
周辺回路からの転送停止要求 ( 周辺に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これらの割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む
ことにより行います。
なお , 終了コードは再起動する際には必ず "000B" を書き込んでクリアしてください。
リロード動作が有効である場合 , 自動的に再起動しますが , この時終了コードはクリア
されず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードで表示できる終了要因は1種類のみですので, 複数の要因が同時に発生した
場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されてい
る終了コードに従います。
終了コードの表示の優先順位を優先度の高い順に以下に示します。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求
• 正常終了
• アドレスエラー検出による停止
• チャネル選択と制御
442
第 15 章 DMAC (DMA コントローラ )
15.3.16
スリープ中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。
スリープ状態のときの DMA 転送について説明します。
■ スリープモード中の DMA 転送の注意
スリープモードで DMA 転送する場合 , 次のことに注意する必要があります。
• CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定を済ませておいてください。
• スリープモードは , 割込みで解除されますので , DMAC 起動要因で周辺割込みを選
択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし
てください。
443
第 15 章 DMAC (DMA コントローラ )
15.3.17
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時に設定が可能です。
各チャネルは基本的に各機能を独立に設定することが可能です。
■ チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。順位設定には , 固定 / 回転の 2 モードがあり , チャネルグループ (「■チャネル
グループ」を参照 ) ごとに選択します。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
図 15.3-3 に , 固定モード時の DMA 転送を示します。
図 15.3-3 固定モード時の DMA 転送
ch.0転送要求
ch.1転送要求
バス動作
CPU
SA
転送チャネル
DA
SA
ch.1
DA
SA
ch.0
DA
SA
ch.0
DA
CPU
ch.1
ch.0転送終了
ch.1転送終了
● 回転モード (ch.0 − ch.1 間のみ )
動作許可後の初期状態は固定モードと同じ順位に設定されますが , 一転送終了ごとに
そのチャネルの優先度は逆転します。そのため, 同時に転送要求が出力されている場合,
1 転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 15.3-4 に回転モード時の DMA 転送を示します。
図 15.3-4 回転モード時の DMA 転送
ch.0転送要求
ch.1転送要求
バス動作
転送チャネル
ch.0転送終了
ch.1転送終了
444
CPU
SA
DA
ch.1
SA
DA
ch.0
SA
DA
ch.1
SA
DA
ch.0
CPU
第 15 章 DMAC (DMA コントローラ )
■ チャネルグループ
優先順位の選択は , 以下の単位で設定します。
表 15.3-3 に , DMA 優先順位選択の設定を示します。
表 15.3-3 DMA 優先順位選択の設定
モード
優先度
備考
固定
ch.0 > ch.1
−
回転
ch.0 > ch.1
↑↓
ch.0 < ch.1
初期状態は上位側の順位です。
上位側が転送されると反転します。
445
第 15 章 DMAC (DMA コントローラ )
15.4
DMAC (DMA コントローラ ) の動作フロー
図 15.4-1 および 図 15.4-2 に , DMA 転送の動作フローを示します。
■ ブロック転送の動作フロー
図 15.4-1 ブロック転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み起動要因選択時のみ
アドレス,転送回数,
ブロック数,ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA転送終了
ブロック転送
• すべての起動要因で起動可能(選択)
• すべての領域へのアクセス可能
• ブロック数の設定可能
• ブロック数終了で割込みクリア発行
• 指定転送回数終了で DMA 割込みを発行
446
DMA割込み発生
第 15 章 DMAC (DMA コントローラ )
■ バースト転送の動作フロー
図 15.4-2 バースト転送
DMA停止
DENB=>0
DENB=1
起動要求待機
リロード許可
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
フライバイ時は1回のアクセス
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,
ブロック数,ライトバック
割込みクリア
周辺割込み起動要因選択時のみ
割込みクリア発生
DMA転送終了
DMA割込み発生
バースト転送
• すべての起動要因で起動可能(選択)
• すべての領域へのアクセス可能
• ブロック数の設定可能
• 指定転送回数終了で割込みクリア,DMA 割込みを発行
447
第 15 章 DMAC (DMA コントローラ )
15.5
データバス
各転送時のデータの動作を示します。
■ 2 サイクル転送時のデータの動作
図 15.5-1 から図 15.5-6 に 2 サイクル転送時のデータの動作を示します。
図 15.5-1 外部領域→外部領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
外部領域=>外部領域 転送
F-bus
I/O
RAM
I/O
図 15.5-2 外部領域→内部 RAM 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
448
F-bus
I/O
RAM
I/O
外部バス I/F
外部領域=>内部RAM領域 転送
第 15 章 DMAC (DMA コントローラ )
図 15.5-3 外部領域→内蔵 I/O 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
データバッファ
F-bus
RAM
外部バス I/F
外部領域=>内蔵I/O領域 転送
F-bus
RAM
I/O
I/O
図 15.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
F-bus
RAM
外部バス I/F
内蔵I/O領域=>内蔵RAM領域 転送
F-bus
RAM
I/O
I/O
図 15.5-5 内部 RAM 領域→外部領域転送
MB91xxx
リードサイクル
CPU
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
I/O
外部バス I/F
内部RAM領域=>外部領域 転送
F-bus
RAM
I/O
449
第 15 章 DMAC (DMA コントローラ )
図 15.5-6 内部 RAM 領域→内蔵 I/O 領域転送
MB91xxx
リードサイクル
X-bus
CPU
I-bus
バスコントローラ
D-bus
データバッファ
DMAC
ライトサイクル
X-bus
I-bus
CPU
DMAC
外部バス I/F
MB91xxx
バスコントローラ
D-bus
データバッファ
F-bus
RAM
450
I/O
F-bus
RAM
I/O
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
第 16 章
CAN コントローラ
CAN コントローラの機能と動作について示しま
す。
16.1 CAN の特長
16.2 CAN のブロックダイヤグラム
16.3 CAN のレジスタ
16.4 CAN レジスタ機能
16.5 CAN 機能
451
第 16 章 CAN コントローラ
16.1
CAN の特長
CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に準
拠しており , 自動車や FA などの工業分野に広く使用されています。
■ CAN の特長
CAN には以下の特長があります。
• CAN プロトコル ver2.0A/B をサポート
• 1Mbps までのビットレートをサポート
• メッセージオブジェクトごとの識別マスク
• プログラマブル FIFO モードをサポート
• マスク可能な割込み
• 自己テスト動作用プログラマブルループバックモードをサポート
• インタフェースレジスタを使用してメッセージバッファへの読出し / 書込み
452
第 16 章 CAN コントローラ
16.2
CAN のブロックダイヤグラム
図 16.2-1 に , CAN ブロックダイヤグラムを示します。
図 16.2-1 CAN ブロックダイヤグラム
CAN_TX CAN_RX
CANコントローラ
メッセージ RAM
メッセージ ハンドラ
C_CAN
レジスタ群
割込み
データ出力
データ入力
アドレス[7:0]
制御
リセット
クロック
CPUインタフェース
■ CAN コントローラ
CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリア
ルレジスタを制御します。
■ メッセージ RAM
メッセージオブジェクトを格納します。
■ レジスタ群
CAN で使用されるすべてのレジスタです。
■ メッセージハンドラ
メッセージ RAM と CAN コントローラを制御します。
■ CPU インタフェース
FR ファミリ内部バスのインタフェースを制御します。
453
第 16 章 CAN コントローラ
16.3
CAN のレジスタ
CAN には , 以下のレジスタがあります。
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• CAN プリスケーラ拡張レジスタ (BRPE)
• IFx コマンド要求レジスタ (IFxCREQ)
• IFx コマンドマスクレジスタ (IFxCMSK)
• IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2)
• IFx アービトレーション 1, 2 (IFxARB1, IFxARB2)
• IFx メッセージ制御レジスタ (IFxMCTR)
• IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
• CAN 送信要求レジスタ 1, 2 (TREQR1, TREQR2)
• CAN New Data レジスタ 1, 2 (NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2 (INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2 (MSGVAL1, MSGVAL2)
• CAN クロックプリスケーラレジスタ (CANPRE)
454
第 16 章 CAN コントローラ
■ 全体制御レジスタ一覧
表 16.3-1 全体制御レジスタ一覧
レジスタ
アドレス
+0
+1
CAN 制御レジスタ
ベースアドレス
+ 00H
初期値
初期値
bit15 ∼ bit8
bit7 ∼ bit0
予約
00000000B
CTRLR
予約
00000000B
STATR
00000001B
初期値
初期値
−
00000000B
CAN ビットタイミングレジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
RP, REC[6:0]
TEC[7:0]
TSeg2[2:0],
TSeg1[3:0]
SJW[1:0],
BRP[5:0]
00000000B
00000000B
00100011B
00000001B
CAN テストレジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IntId15 ∼
IntId8
IntId7 ∼
IntId0
予約
TESTR
00000000B
00000000B
00000000B
00000000B
r0000000B
CAN プリスケーラ拡張レジスタ
ベースアドレス
+ 0CH
コメント
CAN ステータスレジスタ
bit7 ∼ bit0
CAN 割込みレジスタ
ベースアドレス
+ 08H
+3
bit15 ∼ bit8
CAN エラーカウンタ
ベースアドレス
+ 04H
+2
予約
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
予約
BRP3 ∼ BRP0
予約
予約
00000000B
00000000B
00000000B
00000000B
エラーカウンタは
読出し専用です。
ビットタイミング
レジスタは , CCE
により書込み可能
となります。
割込みレジスタは
読出し専用です。
テストレジスタは
TSET により使用
できます。
TESTR の "r" は
CAN_RX 端子の
値を意味します。
プリスケーラ拡張
レジスタは CCE
により書込み可能
となります。
455
第 16 章 CAN コントローラ
■ メッセージインタフェースレジスタ一覧
表 16.3-2 メッセージインタフェースレジスタ一覧 (1 / 2)
アドレス
ベースアドレス
+ 10H
初期値
レジスタ
+0
+1
IF1 コマンド要求レジスタ
初期値
+3
コメント
IF1 コマンドマスクレジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
BUSY
Mess.No.5 ∼ 0
IF1CMSK
00000000B
00000001B
予約
00000000B
IF1 マスクレジスタ 2
ベースアドレス
+ 14H
+2
−
00000000B
IF1 マスクレジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
MXtd. MDir,
Msk28 ∼
Msk24
Msk23 ∼
Msk16
Msk15 ∼ Msk8
Msk7 ∼ Msk0
11111111B
11111111B
11111111B
11111111B
−
IF1 アービトレーションレジスタ 2 IF1 アービトレーションレジスタ 1
ベースアドレス
+ 18H
初期値
ベースアドレス
+ 1CH
初期値
ベースアドレス
+ 20H
初期値
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
MsgVal, Xtd,
Dir,
ID28 ∼ ID24
ID23 ∼ ID16
ID15 ∼ ID8
ID7 ∼ ID0
00000000B
00000000B
00000000B
00000000B
IF1 メッセージ制御レジスタ
予約
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IF1MCTR
IF1MCTR
00000000B
00000000B
予約
00000000B
予約
00000000B
IF1 データレジスタ A1
IF1 データレジスタ A2
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
Data[0]
Data[1]
Data[2]
Data[3]
00000000B
00000000B
00000000B
00000000B
IF1 データレジスタ B1
IF1 データレジスタ B2
ベースアドレス
+ 24H
bit15 ∼ bit8
Data[4]
Data[5]
Data[6]
Data[7]
初期値
00000000B
00000000B
00000000B
00000000B
bit7 ∼ bit0
IF1 データレジスタ A2
bit15 ∼ bit8
bit7 ∼ bit0
IF1 データレジスタ A1
ベースアドレス
+ 30H
bit15 ∼ bit8
Data[3]
Data[2]
Data[1]
Data[0]
初期値
00000000B
00000000B
00000000B
00000000B
bit7 ∼ bit0
IF1 データレジスタ B2
bit15 ∼ bit8
bit7 ∼ bit0
IF1 データレジスタ B1
ベースアドレス
+ 34H
bit15 ∼ bit8
Data[7]
Data[6]
Data[5]
Data[4]
初期値
00000000B
00000000B
00000000B
00000000B
456
bit7 ∼ bit0
−
bit15 ∼ bit8
bit7 ∼ bit0
−
ビッグ
エンディアン
バイト
ビッグ
エンディアン
バイト
リトル
エンディアン
バイト
リトル
エンディアン
バイト
第 16 章 CAN コントローラ
表 16.3-2 メッセージインタフェースレジスタ一覧 (2 / 2)
アドレス
ベースアドレス
+ 40H
初期値
レジスタ
+0
+1
IF2 コマンド要求レジスタ
初期値
ベースアドレス
+ 48H
初期値
ベースアドレス
+ 4CH
初期値
+3
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
BUSY
Mess.No.5 ∼ 0
IF2CMSK
00000000B
00000001B
予約
00000000B
IF2 マスクレジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
MXtd. MDir,
Msk28 ∼
Msk24
Msk23 ∼
Msk16
Msk15 ∼ Msk8
Msk7 ∼ Msk0
11111111B
11111111B
11111111B
11111111B
−
IF2 アービトレーションレジスタ 2 IF2 アービトレーションレジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IF2MCTR
IF2MCTR
00000000B
00000000B
予約
00000000B
予約
00000000B
IF2 メッセージ制御レジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IF2MCTR
IF2MCTR
00000000B
00000000B
予約
00000000B
予約
00000000B
IF2 データレジスタ A1
IF2 データレジスタ A2
Data[0]
Data[1]
Data[2]
Data[3]
初期値
00000000B
00000000B
00000000B
00000000B
bit15 ∼ bit8
IF2 データレジスタ B1
bit7 ∼ bit0
bit15 ∼ bit8
IF2 データレジスタ B2
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
Data[4]
Data[5]
Data[6]
Data[7]
00000000B
00000000B
00000000B
00000000B
IF2 データレジスタ A2
IF2 データレジスタ A1
ベースアドレス
+ 60H
bit15 ∼ bit8
Data[3]
Data[2]
Data[1]
Data[0]
初期値
00000000B
00000000B
00000000B
00000000B
bit7 ∼ bit0
IF2 データレジスタ B2
bit15 ∼ bit8
bit7 ∼ bit0
IF2 データレジスタ B1
ベースアドレス
+ 64H
bit15 ∼ bit8
Data[7]
Data[6]
Data[5]
Data[4]
初期値
00000000B
00000000B
00000000B
00000000B
bit7 ∼ bit0
−
予約
bit7 ∼ bit0
初期値
−
00000000B
ベースアドレス
+ 50H
ベースアドレス
+ 54H
コメント
IF2 コマンドマスクレジスタ
bit15 ∼ bit8
IF2 マスクレジスタ 2
ベースアドレス
+ 44H
+2
bit15 ∼ bit8
bit7 ∼ bit0
−
ビッグ
エンディアン
バイト
ビッグ
エンディアン
バイト
リトル
エンディアン
バイト
リトル
エンディアン
バイト
457
第 16 章 CAN コントローラ
■ メッセージハンドラレジスタ一覧
表 16.3-3 メッセージハンドラレジスタ一覧 (1 / 2)
レジスタ
アドレス
コメント
+0
+1
CAN 送信要求レジスタ 2
ベースアドレス
+ 80H
初期値
初期値
ベースアドレス
+ 88H
ベースアドレス
+ 90H
初期値
ベースアドレス
+ 94H
初期値
ベースアドレス
+ 98H
+3
CAN 送信要求レジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
TxRqst32 ∼
TxRqst25
TxRqst24 ∼
TxRqst17
TxRqst16 ∼
TxRqst9
TxRqst8 ∼
TxRqst1
00000000B
00000000B
00000000B
00000000B
CAN 送信要求レジスタ 4
ベースアドレス
+ 84H
+2
CAN 送信要求レジスタ 3
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
TxRqst64 ∼
TxRqst57
TxRqst56 ∼
TxRqst49
TxRqst48 ∼
TxRqst41
TxRqst40 ∼
TxRqs33
00000000B
00000000B
00000000B
00000000B
予約 ( メッセージバッファ数が 65 以上の場合に使用 )
CAN データ更新レジスタ 2
CAN データ更新レジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
NewDat32 ∼
NewDat25
NewDat24 ∼
NewDat17
NewData16 ∼
NewDat9
NewData8 ∼
NewDat1
00000000B
00000000B
00000000B
00000000B
CAN データ更新レジスタ 4
CAN データ更新レジスタ 3
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
NewDat64 ∼
NewDat57
NewDat56 ∼
NewDat49
NewData48 ∼
NewDat41
00000000B
00000000B
00000000B
送信要求レジスタ
はリードオンリで
す。
送信要求レジスタ
はリードオンリで
す。(MB91F467R
の ch.1)
−
データ更新レジス
タはリードオンリ
です。
データ更新レジス
タはリードオンリ
bit7 ∼ bit0
です。
(MB91F467R の
NewData40 ∼
ch.1)
NewDat33
00000000B
予約 ( メッセージバッファ数が 65 以上の場合に使用 )
−
CAN 割込みペンディングレジスタ 2 CAN 割込みペンディングレジスタ 1 割込みペンディン
ベースアドレス
+ A0H
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IntPnd32 ∼
IntPnd25
IntPnd24 ∼
IntPnd17
IntPnd16 ∼
IntPnd9
IntPnd8 ∼
IntPnd1
初期値
00000000B
00000000B
00000000B
00000000B
458
グレジスタはリー
ドオンリです。
第 16 章 CAN コントローラ
表 16.3-3 メッセージハンドラレジスタ一覧 (2 / 2)
レジスタ
アドレス
コメント
+0
+1
+2
+3
CAN 割込みペンディングレジスタ 4 CAN 割込みペンディングレジスタ 3 割込みペンディン
ベースアドレス
+ A4H
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IntPnd64 ∼
IntPnd57
IntPnd56 ∼
IntPnd49
IntPnd48 ∼
IntPnd41
IntPnd40 ∼
IntPnd33
初期値
00000000B
00000000B
00000000B
00000000B
ベースアドレス
+ A8H
ベースアドレス
+ B0H
予約 ( メッセージバッファ数が 65 以上の場合に使用 )
グレジスタはリー
ドオンリです。
(MB91F467R の
ch.1)
−
CAN メッセージ有効レジスタ 2 CAN メッセージ有効レジスタ 1 メッセージ有効レ
ジスタはリードオ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
ンリです。
MsgVal32 ∼
MsgVal25
MsgVal24 ∼
MsgVal17
MsgVal16 ∼
MsgVal9
MsgVal8 ∼
MsgVal1
00000000B
00000000B
00000000B
00000000B
CAN メッセージ有効レジスタ 4 CAN メッセージ有効レジスタ 3 メッセージ有効レ
ジスタはリードオ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
ンリです。
ベースアドレス
(MB91F467R の
MsgVal64 ∼
MsgVal56 ∼
MsgVal48 ∼
MsgVal40 ∼
+ B4H
ch.1)
MsgVal57
MsgVal49
MsgVal41
MsgVa33
00000000B
ベースアドレス
+ B8H
00000000B
00000000B
00000000B
予約 ( メッセージバッファ数が 65 以上の場合に使用 )
−
459
第 16 章 CAN コントローラ
■ クロックプリスケーラレジスタ
表 16.3-4 クロックプリスケーラレジスタ
レジスタ
アドレス
0004C0H
初期値
460
+0
+1
+2
+3
CAN プリス
ケーラレジスタ
−
−
−
bit3 ∼ bit0
−
−
−
CANPRE[3:0]
−
−
−
00000000B
−
−
−
コメント
CAN
プリスケーラ
第 16 章 CAN コントローラ
16.4
CAN レジスタ機能
CAN レジスタには , 256 バイト (64 ワード ) のアドレス空間が割り当てられていま
す。メッセージ RAM への CPU のアクセスは , メッセージインタフェースレジスタ
を介して行います。
以下に , CAN レジスタを掲載し , それぞれのレジスタの詳細機能を記載します。
■ 全体制御レジスタ
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• CAN プリスケーラ拡張レジスタ (BRPER)
■ メッセージインタフェースレジスタ
• IFx コマンド要求レジスタ (IFxCREQ)
• IFx コマンドマスクレジスタ (IFxCMSK)
• IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2)
• IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2)
• IFx メッセージ制御レジスタ (IFxMCTR)
• IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
■ メッセージハンドラレジスタ
• CAN 送信要求レジスタ 1, 2 (TREQR1, TREQR2)
• CAN データ更新レジスタ 1, 2 (NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2 (INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2 (MSGVAL1, MSGVAL2)
■ プリスケーラレジスタ
CAN クロックプリスケーラレジスタ (CANPRE)
461
第 16 章 CAN コントローラ
16.4.1
全体制御レジスタ
全体制御レジスタは , CAN プロトコル制御および動作モードを制御し , ステータス
情報を提供します。
■ 全体制御レジスタ
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• CAN プリスケーラ拡張レジスタ (BRPER)
462
第 16 章 CAN コントローラ
16.4.1.1
CAN 制御レジスタ (CTRLR)
CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。
■ レジスタ構成
図 16.4-1 CAN 制御レジスタ (CTRLR) のレジスタ構成
CAN 制御レジスタ ( 上位バイト )
bit
アドレス : Base + 00H
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
6
5
4
3
2
1
0
CCE
(R/W)
(0)
DAR
(R/W)
(0)
予約
(R)
(0)
EIE
(R/W)
(0)
SIE
(R/W)
(0)
IE
(R/W)
(0)
Init
(R/W)
(0)
CAN 制御レジスタ ( 下位バイト )
bit
アドレス : Base + 01H
7
Test
(R/W)
リード / ライト→
(0)
初期値→
■ レジスタ機能
[bit15 ∼ bit8] 予約 : 予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には , "00000000B" を設定してください。
[bit7] Test : テストモード許可ビット
Test
機能
0
通常動作 [ 初期値 ]
1
テストモード
[bit6] CCE : ビットタイミングレジスタ書込み許可ビット
CCE
機能
0
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ
スタへの書込みを禁止します。[ 初期値 ]
1
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ
スタへの書込みを許可します。Init ビットが "1" のときに有効です。
463
第 16 章 CAN コントローラ
[bit5] DAR : 自動再送禁止ビット
DAR
機能
0
調停負けまたはエラー検出時のメッセージの自動再送を許可しま
す。[ 初期値 ]
1
自動再送を禁止します。
CAN 仕様 (「ISO11898, 6.3.3 リカバリ処理」を参照 ) より , CAN コントローラは調
停負けあるいは転送中のエラー検出によりフレームの自動再送を行います。自動再
送する場合は , DAR ビットを "0" にリセットします。CAN を Time Triggered CAN
(「TTCAN, ISO11898-1」を参照 ) 環境で動作させるためには , DAR ビットに "1" を
設定する必要があります。
DAR ビットに "1" を設定したモードでは , メッセージオブジェクト ( メッセージオ
ブジェクトについては「16.4.3 メッセージオブジェクト」を参照 ) の TxRqst ビット
と NewDat ビットの動作が異なります。
• フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセッ
トされますが , NewDat ビットは設定されたままです。
• フレーム送信が正常終了すると NewDat は "0" にリセットされます。
• 送信が調停負けもしくはエラーを検出すると , NewDat は設定されたままです。
送信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。
[bit4] 予約 : 予約ビット
このビットからは , "0" が読み出されます。
書込みの場合には , "0" を設定してください。
[bit3] EIE : エラー割込みコード許可ビット
464
EIE
機能
0
CAN ステータスレジスタの BOff または EWarn ビットの変化により ,
CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの BOff または EWarn ビットの変化により ,
CAN 割込みレジスタへのステータス割込みコードの設定を許可しま
す。
第 16 章 CAN コントローラ
[bit2] SIE : ステータス割込みコード許可ビット
SIE
機能
0
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に
より , CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に
より , CAN 割込みレジスタへのステータス割込みコードの設定を許
可します。
CPU からの書込みによって発生した TxOk, RxOk, LEC ビットの変化
は CAN 割込みレジスタには設定されません。
[bit1] IE : 割込み許可ビット
IE
機能
0
割込みの発生を禁止します。[ 初期値 ]
1
割込みの発生を許可します。
[bit0] Init : 初期化ビット
Init
機能
0
CAN コントローラ動作可能
1
初期化 [ 初期値 ]
• バスオフリカバリシーケンス (「CAN 仕様 Rev. 2.0」を参照 ) を , Init ビットの設
定/解除によって短縮することはできません。デバイスがバスオフになると, CAN
コントローラ自身が Init ビットを "1" に設定し , すべてのバス動作を停止させま
す。バスオフ状態から Init ビットを "0" にクリアすると , バスアイドルが連続的
に 129 回 (11 ビットのレセッシブを 1 回とする ) 発生するまでバス動作を停止状
態にします。バスオフリカバリシーケンス実行後 , エラーカウンタはリセットさ
れます。
• CAN ビットタイミングレジスタへの書込みは , Init および CCE ビットに "1" を設
定してから行ってください。
• 低消費電力モード ( 停止モード , クロックモード ) を使用する場合は , 低消費電
力モードへ遷移する前に INIT ビットに "1" を書き込んで CAN コントローラの初
期化を行ってください。
• CAN プリスケーラレジスタにより , CAN インタフェースに供給するクロック
(CAN クロック ) の分周比を変更する場合は , INIT ビットに "1" を設定した後に
CAN プリスケーラレジスタの変更を行ってください。
465
第 16 章 CAN コントローラ
16.4.1.2
CAN ステータスレジスタ (STATR)
CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表
示します。
■ レジスタ構成
図 16.4-2 CAN ステータスレジスタ (STATR) のレジスタ構成
CAN ステータスレジスタ ( 上位バイト )
bit
アドレス : Base + 02H
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
5
4
3
2
1
0
(R/W)
(0)
LEC
(R/W)
(0)
(R/W)
(0)
CAN ステータスレジスタ ( 下位バイト )
bit
アドレス : Base + 03H
リード / ライト→
初期値→
7
6
BOff
(R)
(0)
EWarn
(R)
(0)
EPass RxOk
(R)
(R/W)
(0)
(0)
TxOk
(R/W)
(0)
■ レジスタ機能
[bit15 ∼ bit8] 予約 : 予約ビット
これらのビットからは , "0" が読み出されます。
書込みの場合には , "0" を設定してください。
[bit7] BOff : バスオフビット
BOff
機能
0
CAN コントローラはバスオフ状態ではない ( バスアクティブ )
[ 初期値 ]
1
CAN コントローラはバスオフ状態
[bit6] EWarn : ウォーニングビット
EWarn
466
機能
0
送信 , 受信カウンタはいずれも 96 未満 [ 初期値 ]
1
送信または受信カウンタが 96 以上
第 16 章 CAN コントローラ
[bit5] EPass: エラーパッシブビット
EPass
機能
0
送信 , 受信カウンタはいずれも 128 未満
( エラーアクティブ状態 ) [ 初期値 ]
1
受信カウンタは RP ビット= 1, 送信カウンタが 128 以上
( エラーパッシブ状態 )
[bit4] RxOk : メッセージ正常受信ビット
RxOk
機能
0
メッセージ受信は異常 , またはバスアイドル状態 [ 初期値 ]
1
メッセージ受信は正常
[bit3] TxOk : メッセージ正常送信ビット
TxOk
機能
0
メッセージ送信は異常 , またはバスアイドル状態 [ 初期値 ]
1
メッセージ送信は正常
<注意事項>
RxOk および TxOk ビットは , CPU によってのみリセットされます。
467
第 16 章 CAN コントローラ
[bit2 ∼ bit0] LEC : ラストエラーコードビット
LEC
状態
機能
000B
正常
正常に送信または受信されたことを示します。
[ 初期値 ]
001B
Stuff エラー
メッセージ内において 6 ビット以上連続してドミナン
トまたはレセッシブを検出したことを示します。
010B
Form エラー
受信フレームの固定フォーマット部が誤って受信され
たことを示します。
011B
Ack エラー
送信メッセージに対し , 他のノードからアクノリッジ
されなかったことを示します。
100B
bit1 エラー
調停フィールドを除くメッセージの送信データにおい
て , レセッシブを送信したにもかかわらずドミナント
を検出したことを示します。
101B
bit0 エラー
メッセージの送信データにおいて , ドミナントを送信
したにもかかわらずレセッシブを検出したことを示し
ます。バスリカバリ中には , 11 ビットのレセッシブを
検出するごとにセットされます。このビットを読み出
すことによりバスリカバリシーケンスを監視できます。
110B
CRC エラー
受信したメッセージの CRC データと計算した CRC の
結果が一致しなかったことを示します。
CPU によって LEC ビットに "111B" の書込みを行って
111B
未検出
から , LEC ビットの読出し値が "111B" の場合は , その
期間には送受信が行われなかったことを示します ( バ
スアイドル状態 ) 。
LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ
セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "000B" に設定されます。未検
出コード "111B" は , コード更新をチェックするために CPU で設定してください。
• ステータス割込みコード ("8000H") は , EIE ビットが "1" のときに BOff または
EWarn ビットが変化した場合 , あるいは SIE ビットが "1" のときに RxOk, TxOk,
LEC ビットのいずれかが変化した場合 , CAN 割込みレジスタに設定されます。
• RxOk, TxOk ビットは CPU の書込みによって更新されますので , CAN コントロー
ラによってセットされた RxOk, TxOk ビットは保持されません。RxOk, TxOk ビット
を使用する場合には , RxOk または TxOk ビットが "1" に設定されてから (45 × BT)
時間以内にクリアしてください。BT は 1 ビットタイムを示します。
• SIE ビットが "1" のとき , LEC ビットの変化による割込みが発生した場合には ,
CAN ステータスレジスタには書き込まないでください。
• EPass ビットの変化 , あるいは RxOk, TxOk, LEC ビットへの CPU 書込み動作では
発生しません。
• BOff ビットまたは EPass ビットが "1" になっても EWarn ビットは "1" に設定さ
れています。
• このレジスタを読み出すことにより , CAN 割込みレジスタのステータス割込み
("8000H") はクリアされます。
468
第 16 章 CAN コントローラ
16.4.1.3
CAN エラーカウンタ (ERRCNT)
CAN エラーカウンタ (ERRCNT) は , 受信エラーパッシブ表示および受信エラーカウ
ンタ , 送信エラーカウンタを示します。
■ レジスタ構成
図 16.4-3 CAN エラーカウンタ (ERRCNT) のレジスタ構成
CAN エラーカウンタレジスタ ( 上位バイト )
bit
アドレス : Base + 04H
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
RP
(R)
(0)
(R)
(0)
(R)
(0)
REC6 ∼ REC0
(R)
(R)
(R)
(0)
(0)
(0)
(R)
(0)
(R)
(0)
2
1
0
(R)
(0)
(R)
(0)
(R)
(0)
CAN エラーカウンタレジスタ ( 下位バイト )
bit
7
6
5
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + 05H
リード / ライト→
初期値→
4
3
TEC7 ∼ TEC0
(R)
(R)
(0)
(0)
■ レジスタ機能
[bit15] RP : 受信エラーパッシブ表示
RP
機能
0
受信エラーカウンタは CAN 仕様でのエラーパッシブ状態ではない
[ 初期値 ]
1
受信エラーカウンタは CAN 仕様でのエラーパッシブ状態
[bit14 ∼ bit8] REC6 ∼ REC0 : 受信エラーカウンタ
受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。
[bit7 ∼ bit0] TEC7 ∼ TEC0 : 送信エラーカウンタ
送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。
469
第 16 章 CAN コントローラ
16.4.1.4
CAN ビットタイミングレジスタ (BTR)
CAN ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングを
設定します。
■ レジスタ構成
図 16.4-4 CAN ビットタイミングレジスタ (BTR) のレジスタ構成
CAN ビットタイミングレジスタ ( 上位バイト )
bit
アドレス : Base + 06H
リード / ライト→
初期値→
15
14
予約
(R)
(0)
(R/W)
(0)
13
12
TSeg2
(R/W) (R/W)
(1)
(0)
11
10
9
(R)
(0)
TSeg1
(R)
(R)
(0)
(1)
8
(R)
(1)
CAN ビットタイミングレジスタ ( 下位バイト )
bit
7
6
5
4
アドレス : Base + 07H
SJW
(R/W)
(R/W)
リード / ライト→
(0)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
3
2
BRP
(R/W) (R/W)
(0)
(0)
1
0
(R/W)
(0)
(R/W)
(1)
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジスタの設定は , CAN
制御レジスタのCCEビットとInitビットが"1"に設定されているときに行ってください。
470
第 16 章 CAN コントローラ
■ レジスタ機能
[bit15] 予約 : 予約ビット
このビットからは , "0" が読み出されます。
書込みの場合には , "0" を設定してください。
[bit14 ∼ bit12] TSeg2 : タイムセグメント 2 設定ビット
有効設定値は 0 ∼ 7 です。TSeg2 + 1 の値がタイムセグメント 2 になります。
タイムセグメント 2 は , CAN 仕様のフェーズバッファセグメント (PHASE_SEG2) に
相当します。
[bit11 ∼ bit8] TSeg1 : タイムセグメント 1 設定ビット
有効設定値は 1 ∼ 15 です。"0" の設定は禁止です。TSeg1 + 1 の値がタイムセグメ
ント 1 になります。
タイムセグメント 1 は , CAN 仕様のプロパゲーションセグメント (PROP_SEG) +
フェーズバッファセグメント 1 (PHASE_SEG1) に相当します。
[bit7, bit6] SJW : 再同期化ジャンプ幅設定ビット
有効設定値は 0 ∼ 3 です。SJW + 1 の値が再同期ジャンプ幅となります。
[bit5 ∼ bit0] BRP : ボーレートプリスケーラ設定ビット
有効設定値は 0 ∼ 63 です。BRP + 1 の値がボーレートプリスケーラになります。
CAN クロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定しま
す。
471
第 16 章 CAN コントローラ
16.4.1.5
CAN 割込みレジスタ (INTR)
CAN 割込みレジスタ (INTR) は , メッセージ割込みコードおよびステータス割込み
コードを表示します。
■ レジスタ構成
図 16.4-5 CAN 割込みレジスタ (INTR) のレジスタ構成
CAN 割込みレジスタ ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
(R)
(0)
6
5
アドレス : Base + 08H
リード / ライト→
初期値→
12
11
IntId15 ∼ Intld8
(R)
(R)
(0)
(0)
10
9
8
(R)
(0)
(R)
(0)
(R)
(0)
2
1
0
(R)
(0)
(R)
(0)
(R)
(0)
CAN 割込みレジスタ ( 下位バイト )
bit
7
アドレス : Base + 09H
リード / ライト→
初期値→
472
(R)
(0)
(R)
(0)
(R)
(0)
4
3
IntId7 ∼ Intld0
(R)
(R)
(0)
(0)
第 16 章 CAN コントローラ
■ レジスタ機能
表 16.4-1 CAN 割込みレジスタ (INTR) のレジスタ機能
IntId
機能
0000H
割込みなし
0001H ∼ 0040H
メッセージ割込みコード
( 割込み要因はメッセージオブジェクトの番号 )
(0021H ∼ 0040H は MB91F467R の ch.1 のみ。)
0041H ∼ 7FFFH
未使用
8000H
ステータス割込みコード
(CAN ステータスレジスタの変化による割込み )
8001H ∼ FFFFH
未使用
複数の割込みコードが保留中である場合 , CAN 割込みレジスタは優先度の高い割込み
コードを示します。割込みコードが CAN 割込みレジスタに設定されている場合におい
ても , 優先度の高い割込みコードが発生すると , CAN 割込みレジスタは優先度の高い
割込みコードに更新されます。
優先度の高い割込みコードは , ステータス割込みコード ("8000H"), メッセージ割込み
("0001H", "0002H", "0003H", ……, "0040H") の順になります。
IntId ビットが "0000H" 以外のときに , CAN 制御レジスタの IE ビットが "1" に設定され
ると , CPU への割込み信号が有効になります。IntId の値が "0000H" になる ( 割込み要
因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットされる
と , 割込み信号は無効になります。
対象となるメッセージオブジェクト ( メッセージオブジェクトについては
「16.4.3 メッ
セージオブジェクト」を参照 ) の IntPnd ビットを "0" にクリアすると , メッセージ割込
みコードはクリアされます。
ステータス割込みコードは CAN ステータスレジスタを読み出すとクリアされます。
473
第 16 章 CAN コントローラ
16.4.1.6
CAN テストレジスタ (TESTR)
CAN テストレジスタ (TESR) レジスタは , テストモードの設定および RX 端子のモ
ニタを行います。動作については , 「16.5.7 テストモード」を参照してください。
■ レジスタ構成
図 16.4-6 CAN テストレジスタ (TESTR) のレジスタ構成
CAN テストレジスタ ( 上位バイト )
bit
アドレス : Base + 0AH
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
7
6
5
4
3
2
1
0
Rx
(R)
(r)
Tx1
(R/W)
(0)
Tx0
(R/W)
(0)
LBack
(R/W)
(0)
Silent
(R/W)
(0)
Basic
(R/W)
(0)
予約
(R)
(0)
予約
(R)
(0)
CAN テストレジスタ ( 下位バイト )
bit
アドレス : Base + 0BH
リード / ライト→
初期値→
bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。
CAN テストレジスタ (TESTR) への書込みは , CAN 制御レジスタ (CTRLR) の Test ビッ
トを "1" に設定した後に行ってください。テストモードが有効となるのは , CAN 制御
レジスタの Test ビットが "1" のときです。テストモードの途中で CAN 制御レジスタの
Test ビットを "0" にするとテストモードから通常モードになります。
■ レジスタ機能
[bit15 ∼ bit8] 予約 : 予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には , "00000000B" を設定してください。
[bit7] Rx : Rx 端子モニタビット
Rx
474
機能
0
CAN バスはドミナントであることを示します。
1
CAN バスはレセッシブであることを示します。
第 16 章 CAN コントローラ
[bit6, bit5] Tx1, Tx0 : TX 端子制御ビット
Tx1, Tx0
機能
00B
通常動作 [ 初期値 ]
01B
サンプリングポイントが Tx 端子に出力されます。
10B
TX 端子にドミナントを出力します。
11B
TX 端子にレセッシブを出力します。
Txビットを "00B"以外に設定した場合は , メッセージを送信することはできません。
[bit4] LBack : ループバックモード
LBack
機能
0
ループバックモードを禁止します。[ 初期値 ]
1
ループバックモードを許可します。
[bit3] Silent : サイレントモード
Silent
機能
0
サイレントモードを禁止します。[ 初期値 ]
1
サイレントモードを許可します。
[bit2] Basic : ベーシックモード
Basic
機能
0
ベーシックモードを禁止します。[ 初期値 ]
1
ベーシックモードを許可します。
IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセージ
として使用されます。
[bit1, bit0] 予約 : 予約ビット
これらのビットからは , "00B" が読み出されます。
書込みの場合には , "00B" を設定してください。
475
第 16 章 CAN コントローラ
16.4.1.7
CAN プリスケーラ拡張レジスタ (BRPER)
CAN プリスケーラ拡張レジスタ (BRPER) は , CAN ビットタイミングで設定したプ
リスケーラと組み合せることにより , CAN コントローラで使用するプリスケーラを
拡張します。
■ レジスタ構成
図 16.4-7 CAN プリスケーラ拡張レジスタ (BRPER) のレジスタ構成
CAN プリスケーラ拡張レジスタ ( 上位バイト )
bit
アドレス : Base + 0CH
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
2
1
0
CAN プリスケーラ拡張レジスタ ( 下位バイト )
bit
アドレス : Base + 0DH
リード / ライト→
初期値→
7
6
5
4
3
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
(R/W)
(0)
BRPE
(R/W) (R/W)
(0)
(0)
(R/W)
(0)
■ レジスタ機能
[bit15 ∼ bit4] 予約 : 予約ビット
これらのビットからは , "000000000000B" が読み出されます。
書込みの場合には , "000000000000B" を設定してください。
[bit3 ∼ bit0] BRPE : ボーレートプリスケーラ拡張ビット
CAN ビットタイミングレジスタの BRP と BRPE を組み合せることにより , 1023 ま
でボーレートプリスケーラを拡張できます。
{BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ
スケール値となります。
476
第 16 章 CAN コントローラ
16.4.2
メッセージインタフェースレジスタ
CPU からメッセージ RAM へのアクセスを制御するための 2 組のメッセージインタ
フェースレジスタがあります。
メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ
ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ
( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ
スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト
( メッセージオブジェクトについては , 「16.4.3 メッセージオブジェクト」を参照 ) は ,
メッセージインタフェースレジスタとメッセージ RAM 間を一度に転送します。
テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同
一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ
セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー
ジ RAM からの読出しに使用することも可能です。表 16.4-2 に 2 組のメッセージイン
タフェースレジスタを示します。
メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ
スクレジスタ ) と, このコマンドレジスタによって制御されるメッセージバッファレジ
スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成され
ます。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの
部分が転送されるのかを示します。コマンド要求レジスタは, メッセージ番号の選択と,
コマンドマスクレジスタに設定された動作を行います。
表 16.4-2 IF1, IF2 メッセージインタフェースレジスタ
アドレス
IF1 レジスタセット
アドレス
IF2 レジスタセット
Base + 10H IF1 コマンド要求
Base + 40H
IF2 コマンド要求
Base + 12H IF1 コマンドマスク
Base + 42H
IF2 コマンドマスク
Base + 14H IF1 マスク 2
Base + 44H
IF2 マスク 2
Base + 16H IF1 マスク 1
Base + 46H
IF2 マスク 1
Base + 18H IF1 アービトレーション 2
Base + 48H
IF2 アービトレーション 2
Base + 1AH IF1 アービトレーション 1
Base + 4AH
IF2 アービトレーション 1
Base + 1CH IF1 メッセージ制御
Base + 4CH
IF2 メッセージ制御
Base + 20H IF1 データ A1
Base + 50H
IF2 データ A1
Base + 22H IF1 データ A2
Base + 52H
IF2 データ A2
Base + 24H IF1 データ B1
Base + 54H
IF2 データ B1
Base + 26H IF1 データ B2
Base + 56H
IF2 データ B2
477
第 16 章 CAN コントローラ
16.4.2.1
IFx コマンド要求レジスタ (IFxCREQ)
IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択
とメッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テス
トのベーシックモードでは , IF1 を送信制御用に , IF2 を受信制御用として使用します。
■ レジスタ構成
図 16.4-8 IFx コマンド要求レジスタ (IFxCREQ) のレジスタ構成
IFx コマンド要求レジスタ ( 上位バイト )
bit
15
アドレス : Base + 10H Base + 40H
BUSY
リード / ライト→ (R/W)
(0)
初期値→
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
6
5
4
3
2
1
0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
IFx コマンド要求レジスタ ( 下位バイト )
bit
7
アドレス : Base + 11H Base + 41H
予約
リード / ライト→ (R/W)
(0)
初期値→
Message Number
(R/W) (R/W) (R/W)
(0)
(0)
(0)
■ レジスタ機能
IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と
メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ
レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが
"1" に設定されて転送処理中であることを示します。その転送が終了すると, BUSYビッ
トが "0" にリセットされます。
BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス
が発生すると , BUSY ビットが "0" になるまで ( コマンド要求レジスタ書込み後 , Clock
で 3 ∼ 6 サイクル期間 ) , CPU をウェイトさせます。
テストのベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド
要求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" を設定すること
によりメッセージ送信開始を指示します。メッセージ転送が正常に終了すると , BUSY
ビットは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることによ
り , いつでもメッセージ転送を中断させることが可能です。
IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に
設定することにより , 受信したメッセージを IF2 メッセージインタフェースレジスタに
格納します。
478
第 16 章 CAN コントローラ
[bit15] BUSY : ビジーフラグビット
• テストベーシックモード以外
BUSY
機能
0
メッセージインタフェースレジスタとメッセージ RAM 間でデー
タ転送処理を行っていないことを示します。[ 初期値 ]
1
メッセージインタフェースレジスタとメッセージ RAM 間でデー
タ転送処理中であることを示します。
• テストベーシックモード
- IF1 コマンド要求レジスタ
BUSY
機能
0
メッセージ送信を禁止します。
1
メッセージ送信を許可します。
- IF2 コマンド要求レジスタ
BUSY
機能
0
メッセージ受信を禁止します。
1
メッセージ受信を許可します。
BUSY ビットは , 読出し / 書込みが可能です。テストのベーシックモード時以外は ,
このビットに何を書いても動作に影響しません ( ベーシックモードについては ,
「16.5.7 テストモード」を参照 ) 。
[bit14 ∼ bit7] 予約 : 予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には "00000000B" を設定してください。
479
第 16 章 CAN コントローラ
[bit5 ∼ bit0] Message Number : メッセージ番号 (MB91461, MB91F467R の ch.0)
Message
Number
機能
00H
設定禁止です。
設定した場合 , "20H" として解釈され , "20H" が読み出されます。
01H ∼ 20H
処理を行うメッセージ番号を設定します。
21H ∼ 3FH
設定禁止です。
設定した場合 , "01H ∼ 1FH" として解釈され , 解釈された値が
読み出されます。
[bit6 ∼ bit0] Message Number : メッセージ番号 (MB91F467R の ch.1)
Message
Number
機能
00H
設定禁止です。
設定した場合 , "20H" として解釈され , "20H" が読み出されます。
01H ∼ 40H
処理を行うメッセージ番号を設定します。
41H ∼ 7FH
設定禁止です。
設定した場合 , "01H ∼ 3FH" として解釈され , 解釈された値が
読み出されます。
480
第 16 章 CAN コントローラ
16.4.2.2
IFx コマンドマスクレジスタ (IFxCMSK)
IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタと
メッセージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。ま
た , テストのベーシックモードでは本レジスタは無効となります。
■ レジスタ構成
図 16.4-9 IFx コマンドマスクレジスタ (IFxCMSK) のレジスタ構成
IFx コマンドマスクレジスタ ( 上位バイト )
bit
アドレス : Base + 12H Base + 42H
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
6
5
4
3
2
1
0
Data A Data B
(R/W)
(0)
IFx コマンドマスクレジスタ ( 下位バイト )
bit
アドレス : Base + 13H Base + 43H
7
WR/RD Mask
リード / ライト→ (R/W)
(0)
初期値→
(R/W)
(0)
Arb
Control
CIP
TxRqst/
NewDat
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
テストのベーシックモードではこのレジスタの設定は無効となります。
■ レジスタ機能
[bit15 ∼ bit8] 予約 : 予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には "00000000B" を設定してください。
481
第 16 章 CAN コントローラ
[bit7] WR/RD : ライト / リード制御ビット
WR/RD
機能
0
メッセージ RAM からデータを読み出すことを示します。メッセー
ジ RAM からの読出しは IFx コマンド要求レジスタへの書込みに
よって実行されます。メッセージ RAM から読み出すデータは ,
Mask, Arb, Control, CIP, TxRqst/NewDat, Data A, Data B ビットの設定に
依存します。[ 初期値 ]
1
メッセージ RAM へデータを書き込むことを示します。メッセージ
RAM への書込みは IFx コマンド要求レジスタへの書込みによって実
行されます。メッセージ RAM への書込みデータは , Mask, Arb,
Control, CIP, TxRqst/NewDat, Data A, Data B ビットの設定に依存しま
す。
リセット後 , メッセージ RAM のデータは不定です。メッセージ RAM のデータが不
定状態でメッセージ RAM のデータを読み出すことは禁止です。
IFx コマンドマスクレジスタの bit6 ∼ bit0 は , 転送方向 (WR/RD ビット ) の設定に
より異なる意味があります。
● 転送方向がライトの場合 (WR/RD = 1)
[bit6] Mask : マスクデータ更新ビット
Mask
機能
0
メッセージオブジェクト * のマスクデータ
(ID マスク+ MDir + MXtd) を更新しない [ 初期値 ]
1
メッセージオブジェクト * のマスクデータ
(ID マスク+ MDir + MXtd) を更新する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit5] Arb : アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * のアービトレーションデータ
(ID + Dir + Xtd + MsgVal) を更新しない [ 初期値 ]
1
メッセージオブジェクト * のアービトレーションデータ
(ID + Dir + Xtd + MsgVal) を更新する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
482
第 16 章 CAN コントローラ
[bit4] Control : 制御データ更新ビット
Control
機能
0
メッセージオブジェクト * の制御データ
(IFx メッセージ制御レジスタ ) を更新しない [ 初期値 ]
1
メッセージオブジェクト * の制御データ
(IFx メッセージ制御レジスタ ) を更新する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit3] CIP : 割込みクリアビット
本ビットに "0" または "1" を設定しても CAN コントローラへの動作に影響を与えま
せん。
[bit2] TxRqst/NewDat : メッセージ送信要求ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "0" を設定 [ 初期値 ]
1
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "1" を設定 ( 送信要求 )
* : 「16.4.3 メッセージオブジェクト」を参照してください。
IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFx
メッセージ制御レジスタの TxRqst ビットの設定は無効となります。
[bit1] Data A : データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * のデータ 0 ∼ 3 を更新しない [ 初期値 ]
1
メッセージオブジェクト * のデータ 0 ∼ 3 を更新する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit0] Data B : データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * のデータ 4 ∼ 7 を更新しない [ 初期値 ]
1
メッセージオブジェクト * のデータ 4 ∼ 7 を更新する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
483
第 16 章 CAN コントローラ
● 転送方向がリードの場合 (WR/RD = 0)
メッセージオブジェクトへの読出しアクセスにより , IntPnd および NewDat ビットは
"0" にリセットすることが可能です。ただし , IFx メッセージ制御レジスタの IntPnd お
よび NewDat ビットには , 読出しアクセスによりリセットされる前の IntPnd, NewDat
ビットが格納されます。
テストのベーシックモードでは無効となります。
[bit6] Mask : マスクデータ更新ビット
Mask
機能
0
メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ
(ID マスク+ MDir + MXtd ) を転送しない [ 初期値 ]
1
メッセージオブジェクト * から IFx マスクレジスタ 1, 2 へデータ
(ID マスク+ MDir + MXtd ) を転送する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit5] Arb : アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ
(ID + Dir + Xtd + MsgVal) を転送しない [ 初期値 ]
1
メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ
(ID + Dir + Xtd + MsgVal) を転送する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit4] Control : 制御データ更新ビット
Control
機能
0
メッセージオブジェクト * から IFx メッセージ制御レジスタへデー
タを転送しない [ 初期値 ]
1
メッセージオブジェクト * から IFx メッセージ制御レジスタへデー
タを転送する
* : 「16.4.3 メッセージオブジェクト」を参照してください。
484
第 16 章 CAN コントローラ
[bit3] CIP : 割込みクリアビット
CIP
機能
0
メッセージオブジェクト * および CAN 割込みペンディングレジスタ
の IntPnd ビットを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN 割込みペンディングレジスタ
の IntPnd ビットを "0" にクリア
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit2] TxRqst/NewDat : データ更新ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN データ更新レジスタ
の NewDat ビットを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データ更新レジスタ
の NewDat ビットを "0" にクリア
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit1] Data A : データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * および CAN データレジスタ A1, A2 の
データを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ A1, A2 の
データを更新
* : 「16.4.3 メッセージオブジェクト」を参照してください。
[bit0] Data B : データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * および CAN データレジスタ B1, B2 の
データを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ B1, B2 の
データを更新
* : 「16.4.3 メッセージオブジェクト」を参照してください。
485
第 16 章 CAN コントローラ
16.4.2.3
IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2)
IFx マスクレジスタ (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブジェ
クトマスクデータを書込み / 読出しするために用いられます。また , テストのベーシッ
クモードでは , 設定されているマスクデータは無効となります。
各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。
■ レジスタ構成
図 16.4-10 IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) のレジスタ構成
IFx マスクレジスタ 2 ( 上位バイト )
bit
15
アドレス : Base + 14H Base + 44H
MXtd
リード / ライト→ (R/W)
(1)
初期値→
14
13
12
MDir
(R/W)
(1)
予約
(R)
(1)
(R/W)
(1)
6
5
4
(R/W)
(1)
(R/W)
(1)
14
13
(R/W)
(1)
(R/W)
(1)
6
5
11
10
9
Msk28 ∼ Msk24
(R/W) (R/W) (R/W)
(1)
(1)
(1)
8
(R/W)
(1)
IFx マスクレジスタ 2 ( 下位バイト )
bit
7
アドレス : Base + 15H Base + 45H
リード / ライト→ (R/W)
(1)
初期値→
3
2
1
0
(R/W)
(1)
(R/W)
(1)
9
8
(R/W)
(1)
(R/W)
(1)
2
1
0
(R/W)
(1)
(R/W)
(1)
(R/W)
(1)
Msk23 ∼ Msk16
(R/W) (R/W) (R/W)
(1)
(1)
(1)
IFx マスクレジスタ 1 ( 上位バイト )
bit
15
アドレス : Base + 16H Base + 46H
リード / ライト→ (R/W)
(1)
初期値→
12
11
10
Msk15 ∼ Msk8
(R/W) (R/W) (R/W)
(1)
(1)
(1)
IFx マスクレジスタ 1 ( 下位バイト )
bit
7
アドレス : Base + 17H Base + 47H
リード / ライト→ (R/W)
(1)
初期値→
(R/W)
(1)
(R/W)
(1)
4
3
Msk7 ∼ Msk0
(R/W) (R/W)
(1)
(1)
IFx マスクレジスタのビット説明については , 「16.4.3 メッセージオブジェクト」を参
照してください。
レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) からは "1" が読み出されます。書
込み時は , "1" を書き込んでください。
486
第 16 章 CAN コントローラ
16.4.2.4
IFx アービトレーションレジスタ 1, 2
(IFxARB1, IFxARB2)
IFx アービトレーションレジスタ (IFxARB1, IFxARB2) は , メッセージ RAM のメッ
セージオブジェクトアービトレーションデータを書込み / 読出しするために用いられ
ます。また , テストのベーシックモードでは無効となります。
各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。
■ レジスタ構成
図 16.4-11 IFx アービトレーションレジスタ (IFxARB1, IFxARB2) のレジスタ構成
IFx アービトレーションレジスタ 2 ( 上位バイト )
bit
アドレス : Base + 18H Base + 48H
15
14
13
12
MsgVal
Xtd
(R/W)
(0)
Dir
(R/W)
(0)
(R/W)
(0)
6
5
4
(R/W)
(0)
(R/W)
(0)
リード / ライト→ (R/W)
(0)
初期値→
11
10
9
ID28 ∼ ID24
(R/W) (R/W) (R/W)
(0)
(0)
(0)
8
(R/W)
(0)
IFx アービトレーションレジスタ 2 ( 下位バイト )
bit
7
アドレス : Base + 19H Base + 49H
リード / ライト→ (R/W)
(0)
初期値→
3
ID23 ∼ ID16
(R/W) (R/W)
(0)
(0)
2
1
0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
10
9
8
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
2
1
0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
IFx アービトレーションレジスタ 1 ( 上位バイト )
bit
15
14
13
(R/W)
(0)
(R/W)
(0)
アドレス : Base + 1AH Base + 4AH
リード / ライト→ (R/W)
(0)
初期値→
12
11
ID15 ∼ ID8
(R/W) (R/W)
(0)
(0)
IFx アービトレーションレジスタ 1 ( 下位バイト )
bit
7
6
5
(R/W)
(0)
(R/W)
(0)
アドレス : Base + 1BH Base + 4BH
リード / ライト→ (R/W)
(0)
初期値→
4
3
ID7 ∼ ID0
(R/W) (R/W)
(0)
(0)
IFx アービトレーションレジスタのビット説明については , 「16.4.3 メッセージオブ
ジェクト」を参照してください。
送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が
完了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセー
ジオブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされま
せん。メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアして
ください。
487
第 16 章 CAN コントローラ
16.4.2.5
IFx メッセージ制御レジスタ (IFxMCTR)
IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェ
クト制御データを書込み / 読出しするために用いられます。また , テストのベーシック
モードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御レジ
スタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッセージの
DLC を表示します。その他の制御ビットは無効 ("0") として動作します。
各ビットの機能については , 「16.4.3 メッセージオブジェクト」を参照してください。
■ レジスタ構成
図 16.4-12 IFx メッセージ制御レジスタ (IFxMCTR) のレジスタ構成
IFx メッセージ制御レジスタ ( 上位バイト )
bit
アドレス : Base + 1CH Base + 4CH
15
14
13
12
NewDat MsgLst IntPnd UMask
リード / ライト→ (R/W)
(0)
初期値→
11
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
TxIE
(R/W)
(0)
6
5
4
3
予約
(R)
(0)
予約
(R)
(0)
予約
(R)
(0)
(R/W)
(0)
10
9
8
RxIE RmtEn TxRqst
(R/W) (R/W) (R/W)
(0)
(0)
(0)
IFx メッセージ制御レジスタ ( 下位バイト )
bit
7
アドレス : Base + 1DH Base + 4DH
EoB
(R/W)
リード / ライト→
(0)
初期値→
2
1
0
DLC3 ∼ DLC0
(R/W) (R/W) (R/W)
(0)
(0)
(0)
IFx メッセージ制御レジスタのビット説明については , 「16.4.3 メッセージオブジェク
ト」を参照してください。
TxRqst, NewDat および IntPnd ビットは , IFx コマンドマスクレジスタの WR/RD ビット
の設定によって以下のような動作になります。
● 転送方向が書込みの場合 (IFx コマンドマスクレジスタ : WR/RD = 1)
IFx コマンドマスクレジスタの TxRqst/NewDat が "0" に設定されている場合のみ , 本レ
ジスタの TxRqst ビットが有効となります。
● 転送方向が読出しの場合 (IFx コマンドマスクレジスタ : WR/RD = 0)
IFx コマンドマスクレジスタの CIP ビットを "1" に設定し , IFx コマンド要求レジスタ
への書込みによりメッセージオブジェクトおよびCAN割込みペンディングレジスタの
IntPnd ビットをリセットした場合 , 本レジスタにはリセットされる前の IntPnd ビット
が格納されます。
IFx コマンドマスクレジスタの TxRqst/NewDat ビットを "1" に設定し , IFx コマンド要
求レジスタへの書込みによりメッセージオブジェクトおよびCANデータ更新レジスタ
の NewDat ビットをリセットした場合 , 本レジスタにはリセットする前の NewDat ビッ
トが格納されます。
488
第 16 章 CAN コントローラ
16.4.2.6
IFx データレジスタ A1, A2, B1, B2
(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2) は , メッセージ
RAM のメッセージオブジェクト送受信データを書込み / 読出しするために用いられ
ます。データフレームの送受信のみ使用され , リモートフレームの送受信には使用
されません。
■ レジスタ構成
表 16.4-3 IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2) のレジスタ構成
addr + 0
addr + 1
addr + 2
addr + 3
IFx メッセージデータ A1 ( アドレス 20H および 50H)
Data(0)
Data(1)
−
−
IFx メッセージデータ A2 ( アドレス 22H および 52H)
−
−
Data(2)
Data(3)
IFx メッセージデータ B1 ( アドレス 24H および 54H)
Data(4)
Data(5)
−
−
IFx メッセージデータ B2 ( アドレス 26H および 56H)
−
−
Data(6)
Data(7)
IFx メッセージデータ A2 ( アドレス 30H および 60H)
Data(3)
Data(2)
−
−
IFx メッセージデータ A1 ( アドレス 32H および 62H)
−
−
Data(1)
Data(0)
IFx メッセージデータ B2 ( アドレス 34H および 64H)
Data(7)
Data(6)
−
−
IFx メッセージデータ B1 ( アドレス 36H および 66H)
−
−
Data(5)
Data(4)
図 16.4-13 IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFXDTB2)
IFx データレジスタ
bit
15
7
リード / ライト→ (R/W)
(0)
初期値→
14
6
13
5
(R/W)
(0)
(R/W)
(0)
12
4
11
3
Data
(R/W) (R/W)
(0)
(0)
10
2
9
1
8
0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
■ レジスタ機能
● 送信メッセージデータの設定
設定したデータは , MSB (bit7, bit15) より開始して Data (0), Data (1), ..., Data (7) の順で
送信されます。
● 受信メッセージデータ
受信メッセージデータは, MSB (bit7, bit15) より開始してData (0), Data (1), ..., Data (7)の
順で格納されます。
受信メッセージデータが8バイトより少ない場合は, データレジスタの残りのバイトは
不定です。
メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ
ますので , 4 バイトのうち , ある一部のデータだけを更新することはできません。
489
第 16 章 CAN コントローラ
メッセージオブジェクト
16.4.3
メッセージ RAM には , 32 ( 品種によって 128 まで ) のメッセージオブジェクトがあ
ります。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセス
の競合を回避するために , CPU はメッセージオブジェクトへの直接アクセスができ
ません。これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行いま
す。
以下では , メッセージオブジェクトの構成と機能を説明します。
■ メッセージオブジェクトの構成
表 16.4-4 メッセージオブジェクトの構成
メッセージオブジェクト
UMask Msk28 ∼ Msk0 MXtd MDir
MsgVal
ID28 ∼ ID0
Xtd
EoB
NewDat
MsgLst RxIE TxIE IntPnd RmtEn TxRqst
Dir DLC3 ∼ DLC0 Data0 Data1 Data2 Data3 Data4 Data5 Data6 Data7
<注意事項>
メッセージオブジェクトは , CAN 制御レジスタの Init ビットやハードウェアリセットでは
初期化されません。ハードウェアリセットの場合 , リセット解除後 , CPU によってメッ
セージ RAM を初期化するかメッセージ RAM の MsgVal を "0" にしてください。
■ メッセージオブジェクトの機能
ID28 ∼ ID0, Xtd, Dir ビットは , メッセージを送信する場合 , ID とメッセージの種類に
使用されます。メッセージを受信する場合 , Msk28 ∼ Msk0, MXtd, MDir ビットととも
にアクセプタンスフィルタで使用されます。
アクセプタンスフィルタを通過したデータフレームもしくはリモートフレームは ,
メッセージオブジェクトに格納されます。Xtdは拡張フレームか標準フレームかを示し,
Xtd が "1" の場合は 29 ビット ID ( 拡張フレーム ) を , Xtd が "0" の場合は 11 ビット ID
( 標準フレーム ) を受信します。
受信したデータフレームもしくはリモートフレームが 1 つ以上のメッセージオブジェ
クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は ,
「16.5.3 メッセージ受信動作」の受信メッセージのアクセプタンスフィルタを参照して
ください。
490
第 16 章 CAN コントローラ
MsgVal : 有効メッセージビット
MsgVal
機能
0
メッセージオブジェクトは無効です。
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効です。
メッセージの送受信が可能となります。
• CAN 制御レジスタの Init ビットを "0" にリセットする前の初期化中に , すべての
未使用メッセージオブジェクトの MsgVal ビットを CPU でリセットしてくださ
い。
• ID28 ∼ ID0, Xtd, Dir, DLC3 ∼ DLC0 を変更する前 , もしくはメッセージオブジェ
クトが必要ない場合は , MsgVal ビットを必ず "0" にリセットしてください。
• 送信中に MsgVal ビットを "0" にすると送信が完了した時点で CAN ステータス
レジスタの TxOk ビットは "1" になりますが , メッセージオブジェクトおよび
CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされません。メッセージ
インタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。
UMask : アクセプタンスマスク許可ビット
UMask
機能
0
Msk28 ∼ Msk0, MXtd, MDir を使用しません。
1
Msk28 ∼ Msk0, MXtd, MDir を使用します。
• CAN 制御レジスタの Init ビットが "1" のとき , あるいは MsgVal ビットが "0" の
ときに UMask ビットを変更してください。
• Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異
なります。
- UMask が "1" の場合は , アクセプタンスフィルタを通過してリモートフレーム
を受信すると , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID,
IDE, RTR, DLC はメッセージオブジェクトに格納され , NewDat ビットは "1" に
設定されてデータは変更されません ( データフレームのように取り扱います )。
- UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのま
ま保持され , リモートフレームを無視します。
ID28 ∼ ID0 : メッセージ ID
ID28 ∼ ID0
機能
ID28 ∼ ID0
29 ビット ID ( 拡張フレーム ) を指示
ID28 ∼ ID18
11 ビット ID ( 標準フレーム ) を指示
491
第 16 章 CAN コントローラ
Msk28 ∼ Msk0 : ID マスク
Msk
機能
0
メッセージオブジェクトの ID と対応するビットのマスクあり
1
メッセージオブジェクトの ID と対応するビットのマスクなし
11 ビット ID ( 標準フレーム ) がメッセージオブジェクトに設定されると , 受信した
データフレームの ID は , ID28 ∼ ID18 へ書き込まれます。ID マスクには , Msk28 ∼
Msk18 が使用されます。
Xtd : 拡張 ID 許可ビット
Xtd
機能
0
メッセージオブジェクトは 11 ビット ID ( 標準フレーム )
1
メッセージオブジェクトは 29 ビット ID ( 拡張フレーム )
MXtd : 拡張 ID マスクビット
MXtd
機能
0
アクセプタンスフィルタでの拡張 ID ビット (IDE) のマスクあり
1
アクセプタンスフィルタでの拡張 ID ビット (IDE) のマスクなし
Dir : メッセージ方向ビット
Dir
492
機能
0
受信方向を示します。
TxRqst が "1" に設定されると , リモートフレームの送信を行い ,
TxRqst が "0" のときは , 受容フィルタを通過したデータフレームを
受信します。
1
送信方向を示します。
TxRqst が "1" に設定されると , データフレームを送信し , TxRqst が
"0" で RmtEn が "1" に設定されている場合 , 受容フィルタを通過した
リモートフレームの受信によって , CAN コントローラ自身が TxRqst
を "1" に設定します。
第 16 章 CAN コントローラ
MDir : メッセージ方向マスクビット
MDir
機能
0
アクセプタンスフィルタでのメッセージ方向ビット (Dir) のマスクあり
1
アクセプタンスフィルタでもメッセージ方向ビット (Dir) のマスクなし
<注意事項>
MDir ビットには常に "1" を設定してください。
EoB : エンドオブバッファビット ( 詳細は , 「16.5.4 FIFO バッファ機能」を参照 )
EoB
機能
0
メッセージオブジェクトは FIFO バッファとして使用され , 最終メッ
セージでない
1
単一メッセージオブジェクト , または FIFO バッファの最終メッセー
ジオブジェクト
EoB ビットは , 2 ∼ 32 メッセージの FIFO バッファを構成するために使用します。
単一メッセージオブジェクト (FIFO を使用しない場合 ) は , 必ず EoB ビットに "1"
を設定してください。
NewDat: データ更新ビット
NewDat
機能
0
有効データなし
1
有効データあり
MsgLst: メッセージロスト
MsgLst
機能
0
メッセージロストの発生なし
1
メッセージロスト発生
MsgLst ビットは Dir ビットが "0" のとき ( 受信方向 ) のみ有効です。
493
第 16 章 CAN コントローラ
RxIE : 受信割込みフラグイネーブルビット
RxIE
機能
0
フレーム受信成功後 , IntPnd の変更なし
1
フレーム受信成功後 , IntPnd は "1" に設定
TxIE : 送信割込みフラグイネーブルビット
TxIE
機能
0
フレーム送信成功後 , IntPnd の変更なし
1
フレーム送信成功後 , IntPnd は "1" に設定
IntPnd : 割込みペンディングビット
IntPnd
機能
0
割込み要因なし
1
割込み要因あり
ほかに優先度の高い割込みがない場合は , CAN 割込みレジスタの
IntId ビットはこのメッセージオブジェクトを示します。
RmtEn : リモートイネーブル
RmtEn
機能
0
リモートフレームの受信による TxRqst の変更なし
1
Dir ビットが "1" でリモートフレームを受信すると , TxRqst は "1" に
設定される
Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異な
ります。
• UMask が "1" の場合は , アクセプタンスフィルタを通過してリモートフレームを
受信したとき , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID,
IDE, RTR, DLC はメッセージオブジェクトに格納され , NewDat ビットは "1" に設
定されてデータは変更されません ( データフレームのように取り扱われます ) 。
• UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま
保持され , リモートフレームを無視します。
494
第 16 章 CAN コントローラ
TxRqst : 送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない )
1
送信中 , または送信待ち状態
DLC3 ∼ DLC0 : データ長コード
DLC3 ∼ DLC0
機能
0∼8
データフレーム長は 0 ∼ 8 バイト
9 ∼ 15
設定禁止
設定した場合は , 8 バイト長となります。
データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。
Data0 ∼ Data7 : データ 0 ∼ 7
Data0 ∼ Data7
機能
Data 0
CAN データフレームの最初のデータバイト
Data 1
CAN データフレームの 2 番目のデータバイト
Data 2
CAN データフレームの 3 番目のデータバイト
Data 3
CAN データフレームの 4 番目のデータバイト
Data 4
CAN データフレームの 5 番目のデータバイト
Data 5
CAN データフレームの 6 番目のデータバイト
Data 6
CAN データフレームの 7 番目のデータバイト
Data 7
CAN データフレームの 8 番目のデータバイト
• CAN バスへのシリアル出力は , MSB (bit7 もしくは bit15) より出力されます。
• 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバ
イトデータは不定です。
• メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で
行われますので , 4 バイトのうち , ある一部のデータだけを更新することはでき
ません。
495
第 16 章 CAN コントローラ
16.4.4
メッセージハンドラレジスタ
メッセージハンドラレジスタは , すべて読出し専用です。メッセージオブジェクト
の TxRqst, NewDat, IntPnd, MsgVal, IntId ビットは , ステータスを表示します。
■ メッセージハンドラレジスタ
• CAN 送信要求レジスタ 1, 2 (TREQR1, TREQR2)
• CAN データ更新レジスタ 1, 2 (NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2 (INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2 (MSGVAL1, MSGVAL2)
496
第 16 章 CAN コントローラ
16.4.4.1
CAN 送信要求レジスタ (TREQR1, TREQR2)
CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの
TxRqst ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセー
ジオブジェクトの送信要求がペンディング中であるかチェックすることができます。
■ レジスタ構成
図 16.4-14 CAN 送信要求レジスタ (TREQR1, TREQR2) のレジスタ構成
CAN 送信要求レジスタ 2 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
TxRqst32 ∼ TxRqst25
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
アドレス : Base + 80H
リード / ライト→
初期値→
12
11
10
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
CAN 送信要求レジスタ 2 ( 下位バイト )
bit
7
6
(R)
(0)
(R)
(0)
アドレス : Base + 81H
リード / ライト→
初期値→
5
4
3
2
TxRqst24 ∼ TxRqst17
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
CAN 送信要求レジスタ 1 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + 82H
リード / ライト→
初期値→
12
11
10
TxRqst16 ∼ TxRqst9
(R)
(R)
(R)
(0)
(0)
(0)
CAN 送信要求レジスタ 1 ( 下位バイト )
bit
7
6
5
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + 83H
リード / ライト→
初期値→
4
3
2
TxRqst8 ∼ TxRqst1
(R)
(R)
(R)
(0)
(0)
(0)
497
第 16 章 CAN コントローラ
■ レジスタ機能
TxRqst32 ∼ TxRqst1 : 送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない )
1
送信中 , または送信待ち状態
TxRqst ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "1" を設定し , IFx コマ
ンド要求レジスタへの書込みにより特定オブジェクトの TxRqst に設定できま
す。
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制
御レジスタの TxRqst に "1" を設定した場合 , IFx コマンド要求レジスタへの書
込みにより特定オブジェクトの TxRqst に設定できます。
- Dir ビットに "1", RmtEn ビットに "1" を設定し , アクセプタンスフィルタを通
過したリモートフレームの受信により設定されます。
• リセット条件
- IFx コマンドマスクレジスタの WR/RD に "1", TxRqst に "0", IFx メッセージ制
御レジスタの TxRqst に "0" を設定した場合 , IFx コマンド要求レジスタへの書
込みにより特定オブジェクトの TxRqst をリセットできます。
- フレームの送信が正常終了すると , リセットされます。
- Dir が "1", RmtEn が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過
したリモートフレームの受信によりリセットされます。
MB91F467R の ch.1 では以下のレジスタがあります。
表 16.4-5 ch.1 の送信要求ビット (MB91F467R のみ )
レジスタ名
構成ビット
addr + 0
addr + 1
addr + 2
addr + 3
TREQR4,
TREQR3
TxRqst64 ∼
TxRqst33
(アドレス 84H)
TxRqst64 ∼
TxRqst57
TxRqst56 ∼
TxRqst49
TxRqst48 ∼
TxRqst41
TxRqst40 ∼
TxRqst33
498
第 16 章 CAN コントローラ
16.4.4.2
CAN データ更新レジスタ (NEWDT1, NEWDT2)
CAN データ更新レジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの
NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセー
ジオブジェクトのデータが更新されたかをチェックすることができます。
■ レジスタ構成
図 16.4-15 CAN データ更新レジスタ (NEWDT1, NEWDT2) のレジスタ構成
CAN データ更新レジスタ 2 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
NewDat32 ∼ NewDat25
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
アドレス : Base + 90H
リード / ライト→
初期値→
12
11
10
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
CAN データ更新レジスタ 2 ( 下位バイト )
bit
7
6
(R)
(0)
(R)
(0)
アドレス : Base + 91H
リード / ライト→
初期値→
5
4
3
2
NewDat24 ∼ NewDat17
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
CAN データ更新レジスタ 1 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
NewDat16 ∼ NewDat9
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
アドレス : Base + 92H
リード / ライト→
初期値→
12
11
10
CAN データ更新レジスタ 1 ( 下位バイト )
bit
7
6
5
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + 93H
リード / ライト→
初期値→
4
3
2
NewDat8 ∼ NewDat1
(R)
(R)
(R)
(0)
(0)
(0)
499
第 16 章 CAN コントローラ
■ レジスタ機能
NewDat32 ∼ NewDat1 : データ更新ビット
NewDat32 ∼ NewDat1
機能
0
有効データなし
1
有効データあり
NewDat ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの
NewDat に "1" を設定して , IFx コマンド要求レジスタの書込みにより特定オブ
ジェクトに設定できます。
- 受容フィルタを通過したデータフレームの受信により設定されます。
- Dir が "1", RmtEn が "0", UMask が "1" の場合 , アクセプタンスフィルタを通過
したリモートフレームの受信により設定されます。
• リセット条件
- IFx コマンドマスクレジスタの WR/RD に "0", NewDat に "1" を設定した場合 ,
IFx コマンド要求レジスタの書込みにより特定オブジェクトの NewDat をリ
セットできます。
- IFx コマンドマスクレジスタの WR/RD に "1", IFx メッセージ制御レジスタの
NewDat を "0" に設定した場合 , IFx コマンド要求レジスタの書込みにより特定
オブジェクトの NewDat をリセットできます。
- 送信用シフトレジスタ ( 内部レジスタ ) へデータを転送終了後 , リセットされ
ます。
MB91F467R の ch.1 では以下のレジスタがあります。
表 16.4-6 ch.1 のデータ更新ビット (MB91F467R のみ )
レジスタ名
構成ビット
addr + 0
addr + 1
addr + 2
addr + 3
NEWDT4 ,
NEWDT3
NewDat64 ∼
NewDat33
( アドレス 94H)
NewDat64 ∼
NewDat57
NewDat56 ∼
NewDat49
NewDat48 ∼
NewDat41
NewDat40 ∼
NewDat33
500
第 16 章 CAN コントローラ
16.4.4.3
CAN 割込みペンディングレジスタ
(INTPND1, INTPND2)
CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェ
クトの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッ
セージオブジェクトが割込みペンディング中であるかをチェックすることができます。
■ レジスタ構成
図 16.4-16 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) のレジスタ構成
CAN 割込みペンディングレジスタ 2 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + A0H
リード / ライト→
初期値→
12
11
10
IntPnd32 ∼ IntPnd25
(R)
(R)
(R)
(0)
(0)
(0)
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
CAN 割込みペンディングレジスタ 2 ( 下位バイト )
bit
7
6
アドレス : Base + A1H
リード / ライト→
初期値→
(R)
(0)
(R)
(0)
5
4
3
2
IntPnd24 ∼ IntPnd17
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
CAN 割込みペンディングレジスタ 1 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + A2H
リード / ライト→
初期値→
12
11
10
IntPnd16 ∼ IntPnd9
(R)
(R)
(R)
(0)
(0)
(0)
CAN 割込みペンディングレジスタ 1 ( 下位バイト )
bit
7
6
5
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + A3H
リード / ライト→
初期値→
4
3
2
IntPnd8 ∼ IntPnd1
(R)
(R)
(R)
(0)
(0)
(0)
501
第 16 章 CAN コントローラ
■ レジスタ機能
IntPnd32 ∼ IntPnd1 : 割込みペンディングビット
IntPnd32 ∼ IntPnd1
機能
0
割込み要因なし
1
割込み要因あり
IntPnd ビットのセット / リセット条件を以下に示します。
• セット条件
- TxIE が "1" に設定されている場合 , フレームの正常送信完了により設定されま
す。
- RxIE が "1" に設定されている場合 , アクセプタンスフィルタを通過したフレー
ムの正常受信完了により設定されます。
• リセット条件
IFx コマンドマスクレジスタが WR/RD に "1", IntPnd に "1" を設定した場合 ,
IFx コマンド要求レジスタの書込みにより特定オブジェクトの IntPnd をリセット
できます。
MB91F467R の ch.1 では以下のレジスタがあります。
表 16.4-7 ch.1 の割込みペンディングビット (MB91F467R のみ )
レジスタ名
構成ビット
addr + 0
addr + 1
addr + 2
addr + 3
INTPND4,
INTPND3
IntPnd64 ∼
IntPnd33
( アドレス A4H)
IntPnd64 ∼
IntPnd57
IntPnd56 ∼
IntPnd49
IntPnd48 ∼
IntPnd41
IntPnd40 ∼
IntPnd33
502
第 16 章 CAN コントローラ
16.4.4.4
CAN メッセージ有効レジスタ
(MSGVAL1, MSGVAL2)
CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェク
トの MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッ
セージオブジェクトが有効であるかをチェックすることができます。
■ レジスタ構成
図 16.4-17 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) のレジスタ構成
CAN メッセージ有効レジスタ 2 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
MsgVal32 ∼ MsgVal25
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
アドレス : Base + B0H
リード / ライト→
初期値→
12
11
10
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
9
8
(R)
(0)
(R)
(0)
1
0
(R)
(0)
(R)
(0)
CAN メッセージ有効レジスタ 2 ( 下位バイト )
bit
7
6
アドレス : Base + B1H
リード / ライト→
初期値→
(R)
(0)
(R)
(0)
5
4
3
2
MsgVal24 ∼ MsgVal17
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
CAN メッセージ有効レジスタ 1 ( 上位バイト )
bit
15
14
13
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + B2H
リード / ライト→
初期値→
12
11
10
MsgVal16 ∼ MsgVal9
(R)
(R)
(R)
(0)
(0)
(0)
CAN メッセージ有効レジスタ 1 ( 下位バイト )
bit
7
6
5
(R)
(0)
(R)
(0)
(R)
(0)
アドレス : Base + B3H
リード / ライト→
初期値→
4
3
2
MsgVal8 ∼ MsgVal1
(R)
(R)
(R)
(0)
(0)
(0)
503
第 16 章 CAN コントローラ
■ レジスタ機能
MsgVal32 ∼ MsgVal1 : メッセージ有効ビット
MsgVal32 ∼ MsgVal1
機能
0
メッセージオブジェクトは無効
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効
メッセージの送受信が可能となります。
MsgVal ビットのセット / リセット条件を以下に示します。
• セット条件
IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求
レジスタへの書込みにより特定オブジェクトの MsgVal を設定できます。
• リセット条件
IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求
レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。
MB91F467R の ch.1 では以下のレジスタがあります。
表 16.4-8 ch.1 のメッセージ有効ビット (MB91F467R のみ )
レジスタ名
構成ビット
addr + 0
addr + 1
addr + 2
addr + 3
MSGVAL4,
MSGVAL3
MsgVal64 ∼
MsgVal33
( アドレス A4H)
MsgVal64 ∼
MsgVal57
MsgVal56 ∼
MsgVal49
MsgVal48 ∼
MsgVal41
MsgVal40 ∼
MsgVal33
504
第 16 章 CAN コントローラ
16.4.5
CAN プリスケーラレジスタ (CANPRE)
CAN プリスケーラレジスタ (CANPRE) は , CAN プリスケーラのクロックソースの
選択と , CAN インタフェースに供給する CAN クロックの分周比を定義するもので
す。本レジスタの値を変更する場合は , CAN 制御レジスタ (CTRLR) の初期化ビット
(Init) を "1" にセットし , すべてのバス動作を停止してください。
■ レジスタ構成
図 16.4-18 CAN 制御レジスタ (CTRLR) のレジスタ構成
CAN プリスケーラレジスタ
bit
アドレス : ch.0 00C000H
ch.1 00C100H
リード / ライト→
初期値→
15
14
予約
予約
(R)
(0)
(R)
(0)
13
12
CPCKS1 CPCKS0
(R/W)
(0)
(R/W)
(0)
11
10
9
8
DVC3
DVC2
DVC1
DVC0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
■ レジスタ機能
[bit15, bit14] 予約 : 予約ビット
これらのビットからは "00B" が読み出されます。
書込みはレジスタに反映されません。
[bit13, bit12] CPCKS1, CPCKS0 : CAN プリスケーラクロックソース選択ビット
表 16.4-9 CAN プリスケーラクロックソース選択ビット
CPCKS1, CPCKS0
CAN プリスケーラクロックソース
00B
CPU クロック ( 最大 80MHz) [ 初期値 ]
01B
PLL 出力 ( 最大 200MHz)
10B
設定禁止
11B
原発振クロック ( 最大 20MHz)
505
第 16 章 CAN コントローラ
[bit11 ∼ bit8] DVC3 ∼ DVC0 : CAN クロック設定ビット
表 16.4-10 CAN クロック設定ビット
DVC3 ∼ DVC0
CAN クロック
0000B
プリスケーラクロックソースの 1/1 周期を選択 [ 初期値 ]
0001B
プリスケーラクロックソースの 1/2 周期を選択
0010B
プリスケーラクロックソースの 1/3 周期を選択
:
:
1110B
プリスケーラクロックソースの 1/15 周期を選択
1111B
プリスケーラクロックソースの 1/16 周期を選択
• CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1"
に設定し , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定によりCANインタフェースに供給するCANクロックは20MHz
以下としてください。
506
第 16 章 CAN コントローラ
16.5
CAN 機能
CAN コントローラの動作と機能について説明します。
以下の機能について説明します。
• メッセージオブジェクト
• メッセージ送信動作
• メッセージ受信動作
• FIFO バッファ機能
• 割込み機能
• ビットタイミング
• テストモード
• ソフトウェア初期化
• CAN クロックプリスケーラ
507
第 16 章 CAN コントローラ
16.5.1
メッセージオブジェクト
メッセージ RAM のメッセージオブジェクトとインタフェースについて説明します。
■ メッセージオブジェクト
メッセージ RAM のメッセージオブジェクト設定 (MsgVal, NewDat, IntPnd, TxRqst ビッ
トを除く ) は , ハードウェアリセットによって初期化されません。そのため , メッセー
ジオブジェクトの CPU での初期化 , または MsgVal ビットを無効 (MsgVal = 0) に設定
してください。また , CAN ビットタイミングレジスタの設定は CAN 制御レジスタの
Init ビットが "0" のときに行ってください。
メッセージオブジェクトの設定は , メッセージインタフェースレジスタ (IFx マスクレ
ジスタ , IFx アービトレーションレジスタ , IFx メッセージ制御レジスタ , IFx データレ
ジスタ ) に設定した後 , IFx コマンド要求レジスタへのメッセージ番号の書込みにより ,
そのインタフェースレジスタのデータが指定されたメッセージオブジェクトへ転送さ
れます。
CAN 制御レジスタの Init ビットが "0" にクリアされると CAN コントローラは動作を開
始します。アクセプタンスフィルタを通過した受信メッセージは , メッセージ RAM へ
格納されます。送信要求が保留されているメッセージは , メッセージ RAM から CAN
コントローラのシフトレジスタへ転送され , CAN バスへの送信が行われます。
CPU は , メッセージインタフェースレジスタ経由で受信メッセージの読出し , および送
信メッセージの更新を行います。また , CAN 制御レジスタおよび IFx メッセージ制御
レジスタ ( メッセージオブジェクト ) の設定に応じて , CPU への割込みが行われます。
■ メッセージ RAM とのデータ送受信
メッセージインタフェースレジスタとメッセージ RAM とのデータ転送を開始すると ,
IFx コマンド要求レジスタの BUSY ビットは "1" に設定されます。転送完了後 , BUSY
ビットは "0" にクリアされます。( 図 16.5-1 を参照 )
IFx コマンドマスクレジスタは , 1 つのメッセージオブジェクトの全データ転送 , ある
いはデータの部分転送のいずれかを設定します。メッセージ RAM の構造上 , メッセー
ジオブジェクトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッ
セージオブジェクトの全データをメッセージ RAM へ書き込みます。したがって , メッ
セージインタフェースレジスタからメッセージ RAM へのデータ転送は , リードモディ
ファイライト (RMW) 系命令の実行サイクルを要しています。
508
第 16 章 CAN コントローラ
図 16.5-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送
スタート
NO
IFxコマンド要求レジスタ
への書き込み
YES
BUSY = 1
Interrupt = 0
NO
YES
WR/RD = 1
メッセージRAMからメッセージインタフェース
レジスタへの読出し
メッセージRAMからメッセージインタフェース
レジスタへの読出し
メッセージインタフェースレジスタから
メッセージRAMへの書込み
BUSY = 0
Interrupt = 1
509
第 16 章 CAN コントローラ
16.5.2
メッセージ送信動作
送信メッセージオブジェクトの設定方法および送信動作について説明します。
■ メッセージ送信
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 ,
CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ
トを評価します。送信要求を保留している中で , 最高優先度の有効メッセージオブジェ
クトが送信用のシフトレジスタへ転送されます。そのとき , メッセージオブジェクトの
NewDat ビットは "0" にリセットされます。
正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat = 0)
場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" に設定されている場合
は , 送信成功後に IntPnd ビットが "1" に設定されます。CAN コントローラが CAN バス
上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイ
ドルになると , 直ちにメッセージの再送信が行われます。
■ 送信優先度
メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し
ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ
以上の送信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号
順に転送が行われます。
■ 送信メッセージオブジェクトの設定
図 16.5-2 に , 送信オブジェクトの初期化を示します。
図 16.5-2 送信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
1
NewDat MsgLst RxIE
0
0
0
TxIE
appl.
IntPnd RmtEn TxRqst
0
appl.
0
IFx アービトレーションレジスタ (ID28 ∼ ID0 と Xtd ビット ) は , アプリケーションで
与えられ , 送信メッセージの ID およびメッセージの種類を定義します。
標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は
無効となります。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用
します。
TxIE ビットに "1" を設定すると , メッセージオブジェクトの送信成功後に IntPnd ビッ
トが "1" に設定されます。
RmtEn ビットに "1" を設定すると , 一致するリモートフレームを受信後 , TxRqst ビット
に "1" を設定し , データフレームを自動的に送信します。
データレジスタ (DLC3 ∼ DLC0, Data0 ∼ Data7) の設定は , アプリケーションで与えら
れます。
UMask = 1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は ,
マスク設定によりグループ化された ID を持つリモートフレームを受信し , その後 , 送
510
第 16 章 CAN コントローラ
信を許可 (TxRqst ビットに "1" を設定 ) するために使用されます。詳細は「16.5.3 メッ
セージ受信動作」のリモートフレームを参照してください。
<注意事項>
IFx マスクレジスタの Dir ビットをマスク許可に設定することは禁止です。
■ 送信メッセージオブジェクトの更新
CPU は , 送信メッセージオブジェクトのデータをメッセージインタフェースレジスタ
経由で更新することができます。
送信メッセージオブジェクトのデータは , 対応する IFx データレジスタの 4 バイト単位
(IFx データレジスタ A, IFx データレジスタ B 単位 ) でデータ書込みが行われます。そ
のため , 1 バイトだけ送信メッセージオブジェクトを変更することはできません。
8 バイトのデータのみを更新するときは , まず IFx コマンドマスクレジスタへ "0087H"
の書込みを行います。そして , IFx コマンド要求レジスタへメッセージ番号を書き込む
ことにより, 送信メッセージオブジェクトのデータ更新 (8バイトデータ) とTxRqstビッ
トへの "1" 書込みが同時に行われます。
送信中のメッセージ番号に連続して送信させたい場合 , TxRqst ビットと NewDat に "1"
を設定してください。TxRqst ビットは "0" にリセットされずに連続送信が可能となり
ます。
NewDat ビットが "1", TxRqst ビットがともに "1" の場合 , 送信を開始すると NewDat ビッ
トは "0" にリセットされます。
• データを更新する場合は , IFx データレジスタ A もしくは IFx データレジスタ B の
4 バイト単位で行ってください。
• データのみを更新する場合は , NewDat ビットと TxRqst ビットに "1" を設定してく
ださい。
511
第 16 章 CAN コントローラ
16.5.3
メッセージ受信動作
受信メッセージオブジェクトの設定方法および受信動作について説明します。
■ 受信メッセージの受容フィルタ
メッセージのアービトレーション / コントロールフィールド (ID + IDE + RTR + DLC)
が CAN コントローラ受信用シフトレジスタへ完全にシフトされると , 有効メッセージ
オブジェクトとの一致比較のためにメッセージ RAM のスキャンを開始します。
このとき , メッセージ RAM のメッセージオブジェクトから調停フィールドとマスク
データ (MsgVal, UMask, NewDat, EoB を含む ) がロードされ , メッセージオブジェクト
とシフトレジスタの調停フィールドがマスクデータを含んで比較されます。
この動作は , メッセージオブジェクトとシフトレジスタの調停フィールドが一致検出
されるまで , またはメッセージ RAM の最終ワードに到達するまで繰り返して実行しま
す。一致が検出されると , メッセージ RAM のスキャンは停止され , 受信フレームのタ
イプ ( データフレームまたはリモートフレーム ) により , CAN コントローラは処理を
行います。
■ 受信優先度
メッセージオブジェクトの受信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し
ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , アク
セプタンスフィルタで 2 つ以上一致した場合は , メッセージ番号の小さい番号が受信
メッセージオブジェクトとなります。
■ データフレーム受信
CAN コントローラは , アクセプタンスフィルタで一致したメッセージオブジェクトの
メッセージ RAM へ , シフトレジスタから受信メッセージを転送して格納します。この
格納するデータは , データバイトだけではなく , すべてのアービトレーションフィール
ドおよびデータ長コードも格納します。これは , IFx マスクレジスタがマスク設定され
ている場合でも実行されます (ID とデータバイトを保持するために格納されます ) 。
NewDat ビットは , 新たなデータが受信されると "1" に設定されます。CPU がメッセー
ジオブジェクトを読み出したときには , NewDat ビットを "0" にリセットしてください。
メッセージ受信時に , 既に NewDat ビットが "1" に設定されている場合は , その前のデー
タが失われたことになり , MsgLst が "1" に設定されます。
RxIE ビットが "1" に設定されている場合 , メッセージバッファを受信すると CAN 割込
みペンディングレジスタの IntPnd ビットに "1" を設定します。そのとき , そのメッセー
ジオブジェクトの TxRqst ビットは "0" にリセットされます。これは , リモートフレー
ム送信処理中に , 要求データフレームを受信した場合 , 送信処理を防ぐために行われま
す。
512
第 16 章 CAN コントローラ
■ リモートフレーム
リモートフレーム受信時の動作は , 下記の 3 つの処理があります。一致するメッセージ
オブジェクトの設定によりリモートフレーム受信時の処理が選択されます。
• Dir = 1 ( 送信方向 ) , RmtEn = 1, UMask = 1 または 0
一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst
ビットのみ "1" に設定され , リモートフレームに対するデータフレームの自動返信
(送信) を行います (TxRqstビット以外のメッセージオブジェクトは変更されません) 。
• Dir = 1 ( 送信方向 ) , RmtEn = 0, UMask = 0
受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで
リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは
変更されません ) 。
• Dir = 1 ( 送信方向 ) , RmtEn = 0, UMask = 1
受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ
セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受
信データフレームのように処理されます。受信したアービトレーションフィールド
とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッ
セージオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが
"1" に設定されます。メッセージオブジェクトのデータフィールドは変更されませ
ん。
513
第 16 章 CAN コントローラ
■ 受信メッセージオブジェクトの設定
図 16.5-3 に受信メッセージオブジェクトの初期化を示します。
図 16.5-3 受信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
0
NewDat MsgLst RxIE
0
0
appl.
TxIE
0
IntPnd RmtEn TxRqst
0
0
0
IFx アービトレーションレジスタ (ID28 ∼ ID0, Xtd ビット ) は , アプリケーションによっ
て与えられ , アクセプタンスフィルタに用いられる受信メッセージ ID とメッセージの
種類を定義します。
標準フレーム (11 ビット ID) を設定した場合は , ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は
無効となります。また , 標準フレームが受信されると , ID17 ∼ ID0 は "0" にリセットさ
れます。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用します。
RxIE ビットが "1" に設定された場合 , 受信データフレームがメッセージオブジェクト
へ格納されると IntPnd ビットが "1" に設定されます。
データ長コード (DLC3 ∼ DLC0) は , アプリケーションによって与えられます。CAN コ
ントローラが受信データフレームをメッセージオブジェクトへ格納するとき , 受信
データ長コードと 8 バイトのデータを格納します。データ長コードが 8 未満の場合は ,
メッセージオブジェクトの残りのデータには不定データが書き込まれます。
UMask = 1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は ,
マスク設定によりグループ化された ID があるデータフレームの受信を許可するために
使用します。詳細は , 「16.5.3 メッセージ受信動作」のデータフレーム受信を参照して
ください。
<注意事項>
IFx マスクレジスタの Dir ビットのマスク設定は禁止です。
514
第 16 章 CAN コントローラ
■ 受信メッセージの処理
CPU は , メッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み
出すことが可能です。
通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ
ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に
よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー
ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設
定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす
ることが可能です。
受信メッセージの処理は , 受容フィルタにより一致した場合 , メッセージを受信しま
す。メッセージオブジェクトで受容フィルタのマスクを使用している場合は , マスク設
定されたデータが受容フィルタから除外され , メッセージを受信するか判断します。
NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ
セージが受信されたかを示します。
MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態
で次の受信データを受信したために前のデータを失ってしまったことを示します。
MsgLst ビットは自動的にはリセットされません。
リモートフレーム送信処理中に , 受容フィルタにより一致するデータフレームが受信
された場合には , TxRqst ビットは自動的に "0" にリセットされます。
515
第 16 章 CAN コントローラ
16.5.4
FIFO バッファ機能
受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成および
動作について説明します。
■ FIFO バッファの構成
FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ
セージオブジェクトの構成と同じです (「16.5.3 メッセージ受信動作」の受信メッセー
ジオブジェクトの設定を参照 ) 。
FIFO バッファは , 2 つ以上の受信メッセージオブジェクトを連結して使用します。こ
の FIFO バッファへ受信メッセージを格納するためには , 受信メッセージオブジェクト
の ID とマスクを使用する場合はそれらの設定を一致させる必要があります。
FIFO バッファの最初の受信メッセージオブジェクトは , 優先順位の高いメッセージ番
号の小さい番号となります。FIFO バッファの最後の受信メッセージオブジェクトは ,
EoB ビットに "1" を設定し , FIFO バッファブロックの終わりを示す必要があります
(FIFO バッファ構成を使用するメッセージオブジェクトの最終メッセージオブジェク
ト以外は , EoB ビットに "0" を設定してください ) 。
• FIFO バッファで使用するメッセージオブジェクトの ID とマスク設定は必ず同じ設
定にしてください。
• FIFO バッファを使用しない場合は , 必ず EoB ビットに "1" を設定してください。
■ FIFO バッファによるメッセージ受信
受信メッセージが FIFO バッファの ID と一致した場合は , 最小メッセージ番号の FIFO
バッファの受信メッセージオブジェクトへ格納されます。
FIFO バッファの受信メッセージオブジェクトへメッセージが格納されると , この受信
メッセージオブジェクトの NewDat ビットが "1" に設定されます。EoB ビットが "0" の
受信メッセージオブジェクトへ NewDat ビットを設定すると , CAN コントローラによ
る FIFO バッファ書込みは , 最後の受信メッセージオブジェクト (EoB ビット= 1) に到
達するまで受信メッセージオブジェクトは保護されて書込みは行われません。
最終FIFOバッファまで有効なデータが格納された状態で受信メッセージオブジェクト
の NewDat ビットに "0" 書込み ( 書込み保護の解除 ) が行われないと次に受信された
メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて
しまいます。
516
第 16 章 CAN コントローラ
■ FIFO バッファからの読出し
CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ
へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ
に転送されて読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/
RD を "0" ( 読出し ), および TxRqst/NewDat = 1, IntPnd = 1 に設定し , NewDat ビットと
IntPnd ビットを "0" にリセットしてください。
FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト
は , 必ず最小のメッセージ番号から読み出してください。
図 16.5-4 に , FIFO バッファの CPU の処理を示します。
図 16.5-4 FIFO バッファの CPU 処理
スタート
メッセージ割込み
CAN割込みレジスタ
読出し
8000H
0000H
CAN割込みレジスタ値
8000H, 0000H以外
状態割込み処理実行
終了
(通常処理)
メッセージ番号 =
CAN割込みレジスタ値
IFxコマンド要求レジスタ
(メッセージ番号)書込み
メッセージインタフェースレジスタ
読出し
(リセット:NewDat=0, IntPnd=0)
IFxメッセージ制御レジスタ
読出し
NO
NewDat = 1
YES
IFxメッセージデータレジスタA,B
読出し
YES
EoB = 1
NO
メッセージ番号 = メッセージ番号
+1
517
第 16 章 CAN コントローラ
16.5.5
割込み機能
ステータス割込み (IntId = 8000H) およびメッセージ割込み (IntId メッセージ番号 )
による割込み処理について説明します。
複数の割込みがペンディング中である場合 , CAN 割込みレジスタはペンディング中の
最高優先度の割込みコードを示します。割込みコードの設定された時間順は無視され ,
常に優先順位の高い割込みコードが表示されます。CPU がクリアするまで割込みコー
ドは保持されます。
ステータス割込み (IntId ビット= 8000H) は , 最高優先度となります。
メッセージ割込みの優先度は , メッセージ番号の小さいメッセージが高く , 大きいメッ
セージが低くなります。
メッセージ割込みは , メッセージオブジェクトの IntPnd ビットのクリアによってクリ
アされます。ステータス割込みは , CAN ステータスレジスタの読出しでクリアされま
す。
CAN 割込みペンディングレジスタの IntPnd ビットは , 割込みの有無を示します。ペン
ディング中の割込みがないときは , IntPnd ビットは "0" を示します。
CAN 制御レジスタの IE ビット , および IFx メッセージ制御レジスタの TxIE ビット ,
RxIE ビットに "1" を設定している状態で , IntPnd ビットが "1" になると CPU への割込
み信号がアクティブになります。割込み信号は , CAN 割込みペンディングレジスタが
"0" にクリアされる ( 割込み要因リセット ) か , CAN 制御レジスタの IE ビットが "0" に
リセットされるまでアクティブ状態を保持します。
CAN 割込みレジスタが "8000H" であることは , CAN コントローラによって CAN ステー
タスレジスタが更新を示し , この割込みが最高優先度となります。CAN ステータスレ
ジスタの更新による割込みは , CAN 制御レジスタの EIE ビットと SIE ビットにより
CAN 割込みレジスタへの設定許可 , または禁止の制御ができます。また , CPU への割
込み信号の制御は , CAN 制御レジスタの IE ビットで行うことができます。
CAN ステータスレジスタの RxOk ビット , TxOk ビット , LEC ビットは , CPU からの書
込みにより更新 ( リセット ) することができますが , その書込みにより割込みの設定ま
たはリセットを行うことはできません。
CAN 割込みレジスタが "8000H", "0000H" 以外の場合は , メッセージ割込みがペンディ
ング中であることを示し , 優先度の高い保留中のメッセージ割込みを示します。
CAN 割込みレジスタは , IE がリセットされた場合でも更新されます。
CPU へのメッセージ割込みの要因は , CAN 割込みレジスタ , または CAN 割込みペン
ディングレジスタで確認することができます (「 16.4.4 メッセージハンドラレジスタ」
を参照 ) 。メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すこ
とは可能であり , CAN 割込みレジスタで示されているメッセージ割込みをクリアする
と次に優先度の高い割込みが CAN 割込みレジスタに設定され , 次の割込み処理を待つ
ことになります。割込みがない場合には , CAN 割込みレジスタは "0000H" を示します。
518
第 16 章 CAN コントローラ
• ステータス割込み (IntId = 8000H) は , CAN ステータスレジスタの読出しアクセスに
より割込みクリアされます。
• CAN ステータスレジスタへの書込みアクセスによるステータス割込み (IntId =
8000H) は発生しません。
519
第 16 章 CAN コントローラ
16.5.6
ビットタイミング
ビットタイミングについての概要と CAN コントローラにおけるビットタイミングに
ついて説明します。
CAN ネットワークの各 CAN ノードには , それぞれクロック発振器 ( 通常は水晶発振器 )
があります。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成でき
ます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作り出
せます。
これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な
ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト
リームへ再同期化することで異なるビットレートを補償できます。
CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 16.5-5 を参照 ) , 同期化
部 (Sync_Seg), 伝送時間部 (Prop_Seg), フェイズバッファ部 1 (Phase_Seg1), フェイズバッ
ファ部 2 (Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量
( 表 16.5-1 を参照 ) から成ります。ビットタイムの基本単位時間 (tq) は , CAN クロック
(fsys) とボーレートプリスケーラ (BRP) で定義されます :
tq = BRP / fsys
CAN クロック (fsys) は , CAN プリスケーラにより生成されたクロックになります。同
期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミングとな
ります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を補償しま
す。フェイズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指定し
ます。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを補償するために再同期
化時のサンプリングポイントの移動幅を定義します。
図 16.5-5 ビットタイミング
1ビットタイム(BT)
Sync
_Seg
Prop_Seg
1単位時間
(tq)
520
Phase_Seg1
Phase_Seg2
サンプリングポイント
第 16 章 CAN コントローラ
表 16.5-1 CAN ビットタイムのパラメータ
パラメータ
レンジ
機能
BRP
[1 ∼ 32]
Sync_Seg
1 tq
Prop_Seg
[1 ∼ 8] tq
物理遅延時間の補償
Phase_Seg1
[1 ∼ 8] tq
サンプルポイント前のエッジフェーズエラー保証
同期化により一時的に長くされる可能性があります。
Phase_Seg2
[1 ∼ 8] tq
サンプルポイント後のエッジフェーズエラー保証
同期化により一時的に短くされる可能性があります。
SJW
[1 ∼ 4] tq
再同期化ジャンプ幅
どちらかのフェイズバッファ部より長くなることはない。
時間量の長さ tq の定義
固定長 システムクロックへの同期化
図 16.5-6 に , CAN コントローラにおけるビットタイミングを示します。
図 16.5-6 CAN コントローラにおけるビットタイミング
1ビットタイム(BT)
Sync
_Seg
TEG1
1単位時間
(tq)
TEG2
サンプリングポイント
521
第 16 章 CAN コントローラ
表 16.5-2 CAN コントローラのパラメータ
パラメータ
BRPE, BRP
Sync_Seg
レンジ
機能
時間量の長さ tq の定義
[0 ∼ 1023] ビットタイミングレジスタおよびプリスケーラ拡張レジ
スタにより最大 1024 までプリスケーラを拡張できます。
1 tq
CAN クロックへの同期化
固定長
TSEG1
サンプリングポイント前のタイムセグメントです。
[1 ∼ 15] tq Prop_Seg と Phase_Seg1 に相当します。
ビットタイミングレジスタにより制御可能です。
TSEG2
[0 ∼ 7] tq
サンプリングポイント後のタイムセグメントです。
Phase_Seg2 に相当します。
ビットタイミングレジスタにより制御可能です。
SJW
[0 ∼ 3] tq
再同期化ジャンプ幅です。
ビットタイミングレジスタにより制御可能です。
各パラメータの関係を以下に示します。
tq = ([BRPE, BRP] + 1) / fsys
BT = SYNC_SEG + TEG1 + TEG2
= (1 + (TSEG1 + 1) + (TSEG2 + 1)) × tq
= (3 + TSEG1 + TSEG2) × tq
522
第 16 章 CAN コントローラ
16.5.7
テストモード
テストモードの設定方法および動作について説明します。
■ テストモード設定
CAN 制御レジスタの Test ビットに "1" をセットすることでテストモードになります。
テストモードに設定すると, CANテストレジスタのビットTx1, Tx0, LBack, Silent, Basic
ビットが有効となります。
CAN 制御レジスタの Test ビットを "0" にリセットすることにより , すべてのテストレ
ジスタ機能を無効にします。
■ サイレントモード
CAN テストレジスタの Silent ビットを "1" に設定することにより , CAN コントローラ
をサイレントモードに設定できます。
サイレントモードでは, データフレームとリモートフレームを受信可能であるが, CAN
バス上にはレセッシブのみ出力し , メッセージおよび ACK の送信を行いません。
CAN コントローラがドミナントビット (ACK ビット , オーバロードフラグ , アクティ
ブエラーフラグ ) の送信を要求された場合 , CAN コントローラ内部の折返し回路で RX
側に送信されます。この動作では , CAN バス上においてレセッシブ状態であっても ,
受信側ではCANコントローラ内部で折り返し送信されたドミナントビットを受信しま
す。
サイレントモードでは , ドミナントビット (ACK ビット , エラーフラグ ) 送信による影
響がない状態で , CAN バス上のトラフィック解析ができます。
図 16.5-7 にサイレントモードでのコントローラを示します。
図 16.5-7 サイレントモードでの CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
Silent ビット= 1
Tx
Rx
CANコア
523
第 16 章 CAN コントローラ
■ ループバックモード
CAN テストレジスタの LBack ビットを "1" に設定することにより , CAN コントローラ
をループバックモードに設定できます。
ループバックモードは , 自己診断機能に使用できます。
ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN
コントローラが送信したメッセージを RX 側で受信したメッセージとして扱い , 受容
フィルタを通過したメッセージは , 受信バッファに格納します。
図 16.5-8 に , ループバックモードの CAN コントローラを示します。
図 16.5-8 ループバックモードの CAN コントローラ
CAN_TX
CAN_RX
Tx
Rx
CANコントローラ
CANコア
外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのド
ミナントビットはサンプリングされません。そのため , 通常 , CAN コントローラはア
クノリッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生し
ないようにしています。
524
第 16 章 CAN コントローラ
■ サイレントモードとループバックモードの結合
CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" に設定することによ
り , ループバックモードとサイレントモードを結合させて動作することが可能です。
このモードは , ホットセルフテスト用に使用できます。ホットセルフテストとは , CAN
コントローラがループバックモードでテストしたときに , CAN_TX 端子にはレセッシ
ブの固定出力 , CAN_RX 端子からの入力は無効となりますので , CAN システムの動作
に影響がないことを意味しています。
図 16.5-9 に , サイレントモードとループバックモードが結合された CAN コントローラ
を示します。
図 16.5-9 サイレントモードとループバックモードが結合された CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
LBack ビット,Silent ビット= 1
Tx
Rx
CANコア
525
第 16 章 CAN コントローラ
■ ベーシックモード
CAN テストレジスタの Basic ビットを "1" に設定することにより , CAN コントローラ
をベーシックモードに設定できます。
ベーシックモードでは , CAN コントローラはメッセージ RAM を使用せずに動作しま
す。
IF1 メッセージインタフェースレジスタは , 送信制御用として使用されます。
メッセージ送信を行う場合 , まず , IF1 メッセージインタフェースレジスタに送信する
内容を設定します。次に , IF1 コマンド要求レジスタの BUSY ビットに "1" を設定する
ことで送信要求します。BUSY ビットが "1" に設定されている間 , IF1 メッセージイン
タフェースレジスタをロックしている , または送信が保留されていることを示します。
BUSY ビットに "1" が設定されると CAN コントローラは以下の動作を行います。
CANバスがバスアイドルになるとすぐに, IF1メッセージインタフェースレジスタの内
容を送信用シフトレジスタへロードして送信を開始します。正常に送信を完了すると ,
BUSY ビットが "0" にリセットされ , ロックされていた IF1 メッセージインタフェース
レジスタを開放します。
送信が保留されているときに , IF1 コマンド要求レジスタの BUSY ビットを "0" にリ
セットすることでいつでも中断できます。また , 送信中に BUSY ビットを "0" にリセッ
トすると , 調停負けやエラーなどの場合に行われる再送信を停止します。
IF2 メッセージインタフェースレジスタは , 受信制御用として使用されます。
メッセージの受信は , 受容フィルタを使用せずにすべて受信します。IF2 コマンド要求
レジスタの BUSY ビットを "1" に設定することにより , 受信したメッセージの内容を読
み出すことが可能となります。
BUSY ビットに "1" が設定されると , CAN コントローラは受信したメッセージ ( 受信用
のシフトレジスタの内容 ) を受容フィルタなしで IF2 メッセージインタフェースレジス
タへ格納します。
新しいメッセージが IF2 メッセージインタフェースレジスタに格納された場合 , CAN
コントローラが NewDat ビットを "1" に設定します。また , NewDat ビットが "1" のと
きに , さらに新しいメッセージを受信した場合は , CAN コントローラが MsgLst を "1"
に設定します。
• ベーシックモードでは , 制御 / 状態ビットに関係するすべてのメッセージオブジェ
クトと IFx コマンドマスクレジスタの制御モード設定は無効となります。
• コマンド要求レジスタのメッセージ番号は無効です。
• IF2 メッセージ制御レジスタの NewDat ビットと MsgLst ビットは通常時と同様に動
作し , DLC3 ∼ DLC0 は受信された DLC を示し , ほかの制御ビットは "0" として読
み出されます。
526
第 16 章 CAN コントローラ
■ 端子 CAN_TX のソフトウェア制御
CAN 送信端子である CAN_TX には , 4 つの出力機能があります。
• シリアルデータ出力 ( 通常出力 )
• CAN コントローラのビットタイミングをモニタするための CAN サンプリングポイ
ント信号出力
• ドミナント固定出力
• レセッシブ固定出力
ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと
もに , CAN バスの物理層のチェックに使用することができます。
CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可
能です。
CANメッセージ送信もしくはループバックモード, サイレントモード, ベーシックモー
ドを使用する際は , CAN_TX をシリアルデータ出力に設定する必要があります。
527
第 16 章 CAN コントローラ
16.5.8
ソフトウェア初期化
ソフトウェアによる初期化について説明します。
ソフトウェアでの初期化要因を以下に示します。
• ハードウェアリセット
• CAN 制御レジスタの Init ビットの設定
• バスオフ状態への遷移
ハードウェアによるリセットは, メッセージRAM (MsgVal, NewDat, IntPnd, TxRqstビッ
トを除く ) 以外すべて初期化されます。メッセージ RAM はハードウェアによるリセッ
ト後 , CPU によって初期化するか , メッセージ RAM の MsgVal を "0" にしてください。
また , ビットタイミングレジスタを設定する場合には , CAN 制御レジスタの Init ビット
を "0" にクリアする前に設定してください。
CAN 制御レジスタの Init ビットは , 以下の条件で "1" に設定されます。
• CPU からの "1" 書込み
• ハードウェアリセット
• バスオフ
Init ビットが "1" に設定されると , CAN バスの全メッセージ送受信は停止され , CAN バ
ス出力の CAN_TX 端子はレセッシブ出力となります (CAN_TX テストモードは除く ) 。
Init ビットに "1" を設定すると , エラーカウンタは変化しませんし , レジスタも変更さ
れません。
CAN 制御レジスタの Init ビットと CCE ビットが "1" に設定されると , ボーレート制御
用のビットタイミングレジスタとプリスケーラ拡張レジスタへの設定が可能となりま
す。
Init ビットを "0" にリセットすることにより , ソフトウェア初期化を終了します。また ,
Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。
Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ
スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ
の転送が行われます。
通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 ,
MsgVal を無効に設定してから変更してください。
528
第 16 章 CAN コントローラ
16.5.9
CAN クロックプリスケーラ
PLL 動作中の CAN クロック切換えについて説明します。
■ ブロック図
図 16.5-10 に , CAN クロックプリスケーラブロックダイヤグラムを示します。
CAN クロックプリスケーラレジスタ (CANPRE) の設定に従い , CAN に供給されるク
ロックが決定されます。
図 16.5-10 CAN クロックプリスケーラブロックダイヤグラム
CPUクロック
CAN
インタフェース
クロック
ユニット
クロック
デバイダ
CAN
コントローラ
X0
PLL
CPCK[1:0]
DVC[3:0]
CANPRE
529
第 16 章 CAN コントローラ
■ クロック切換え手順
CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下に示す
手順を推奨します。
図 16.5-11 クロック切換え手順
CANクロックの発振器出力
からPLLへの切換え
CANクロックのPLLから
発振器出力への切換え
CANコントロール
レジスタのInitビットを
設定
CANコントロール
レジスタのInitビットを
設定
PLL許可
プリスケーラ設定
PLL安定時間待ち
PLL停止
プリスケーラ設定
CANコントロール
レジスタのInitビットを
リセット
CANコントロール
レジスタのInitビットを
リセット
530
第 16 章 CAN コントローラ
■ CAN クロック周波数
CANPRE の CPCKS1, CPCKS0 と DVC3 ∼ DVC0 の設定により生成される CAN クロッ
ク周波数を以下に示します (18MHz の水晶振動子を接続した場合の値です )。
CPCKS1, CPCKS0 = 00B
CPCKS1, CPCKS0 = 01B
DVC3 ∼
DVC0 (CPU クロック 72MHz 選択時 ) (PLL 出力 144MHz 選択時 )
CPCKS1, CPCKS0 = 11B
( 原発振クロック 18MHz
選択時 )
0000B
72.00MHz ( 設定禁止 )
144.00MHz ( 設定禁止 )
18.00MHz
0001B
36.00MHz ( 設定禁止 )
72.00MHz ( 設定禁止 )
9.00MHz
0010B
24.00MHz ( 設定禁止 )
48.00MHz ( 設定禁止 )
6.00MHz
0011B
18.00MHz
36.00MHz ( 設定禁止 )
4.50MHz
0100B
14.40MHz
28.80MHz ( 設定禁止 )
3.60MHz
0101B
12.00MHz
24.00MHz ( 設定禁止 )
3.00MHz
0110B
10.29MHz
20.57MHz ( 設定禁止 )
2.57MHz
0111B
9.00MHz
18.00MHz
2.25MHz
1000B
8.00MHz
16.00MHz
2.00MHz
1001B
7.20MHz
14.40MHz
1.80MHz
1010B
6.55MHz
13.09MHz
1.64MHz
1011B
6.00MHz
12.00MHz
1.50MHz
1100B
5.54MHz
11.08MHz
1.38MHz
1101B
5.14MHz
10.29MHz
1.29MHz
1110B
4.80MHz
9.60MHz
1.33MHz
1111B
4.50MHz
9.00MHz
1.25MHz
• CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" に
設定し , すべてのバス動作を停止させた後に行ってください。
• CAN クロックは 20MHz 以下としてください。
531
第 16 章 CAN コントローラ
532
第 17 章
LIN-UART
LIN 対応 UART の機能と動作について説明します。
17.1 LIN-UART の概要
17.2 LIN-UART の構成
17.3 LIN-UART のレジスタ
17.4 LIN-UART の割込み
17.5 LIN-UART のボーレート
17.6 LIN-UART の動作
17.7 LIN-UART 使用上の注意事項
533
第 17 章 LIN-UART
17.1
LIN-UART の概要
LIN(Local Interconnect Network) 対応 UART(Universal Asynchronous Receiver
and Transmitter) は , 外部デバイスとの非同期 / 同期通信を実現する汎用のシリアル
データ通信インタフェースです。LIN-UART は双方向通信機能 ( ノーマルモード ) ,
マスタ / スレーブ通信機能 ( マスタシステムにおけるマルチプロセッサモード ) , LIN
バスシステム ( マスタ / スレーブ , 両方での動作 ) をサポートしています。
■ 概要
LIN-UART は , 別の CPU あるいは周辺回路 , 特に LIN デバイスとのデータ送受信に使
用される汎用のシリアルデータ通信インタフェースです。表 17.1-1 に LIN-UART の機
能を示します。
表 17.1-1 LIN-UART の機能 (1 / 2)
項目
機能
データバッファ
全二重バッファ
シリアル入力
非同期モードでは , 5 回のオーバサンプリングを実行し , 受信値を決定
転送モード
• クロック同期
( スタート / ストップ同期 , スタート / ストップビット選択 )
• クロック非同期 ( スタート / ストップビット使用 )
• 専用の 15 ビットボーレートジェネレータ搭載
転送レート
• 外部クロック入力を使用でき , リロードカウンタで調整
• 7 ビット ( 同期モード・LIN モードでは使用不可 )
データ長
• 8 ビット
シグナルモード
NRZ (Non Return to Zero) 形式
スタートビットタイミング
非同期モードでは , スタートビットの立下りエッジとクロック同期化
• フレーミングエラー
受信エラー検出
• オーバランエラー
• パリティエラー
• 受信割込み ( 受信完了・受信エラー検出 )
• 送信割込み ( 送信完了 )
割込み要求
• バスアイドル割込み ( 受信割込みに属する )
• LIN-Synch-Break 割込み ( 受信割込みに属する )
マスタ / スレーブ通信機能 1 対複数 (1 マスタ , 複数スレーブ ) の通信が可能
( マルチプロセッサモード ) ( マスタ , スレーブのいずれのシステムでもサポート )
同期化モード
534
マスタあるいはスレーブ UART としての機能
第 17 章 LIN-UART
表 17.1-1 LIN-UART の機能 (2 / 2)
項目
送受信線
機能
直接アクセスが可能
• マスタデバイスとしての動作
• スレーブデバイスとしての動作
LIN バスオプション
• LIN-Synch-Break の生成
• LIN-Synch-Break の検出
• LIN-Synch-Field のスタート / ストップエッジを ICU で検出
同期シリアルクロック
同期シリアルクロックは , スタート / ストップビットを用いた同期通信
用に , SCK 端子より継続的に出力可能
クロック遅延オプション
クロック遅延用の特殊同期クロックモード (SPI 用 )
■ LIN-UART の動作モード
LIN-UART には 4 つのモードがあり , シリアルモードレジスタ (SMR) の MD0, MD1 ビッ
トにより設定されます。
モード0とモード2は双方向シリアル通信に, モード1はマスタ/
スレーブ通信に使用されます。モード 3 は LIN マスタ / スレーブ通信用です。
表 17.1-2 LIN-UART の動作モード
データ長
動作モード
0
パリティ
禁止
パリティ
許可
同期モード
ストップ
ビット長
データビット
検出 *1
ノーマルモード
7 ビットまたは 8 ビット
非同期
1 or 2
L/M
1
マルチプロセッサモード
7 ビットま
たは
8 ビット+ 1
ビット *2
非同期
1 or 2
L/M
2
ノーマルモード
同期
0, 1 or 2
L/M
3
LIN モード
非同期
1
L
−
8 ビット
8 ビット
−
*1:
LSB ファーストまたは MSB ファーストからの転送モードを意味します。
*2 :
" + 1" は , マルチプロセッサモードでパリティビットの代わりにアドレス / データの切り換わり
を示すためです。
<注意事項>
モード 1 ( マルチプロセッサモード ) は , マスタ / スレーブシステムにおける LIN-UART の
マスタ , スレーブどちらの動作でもサポートします。モード 3 では , LIN-UART の機能は
8N1 フォーマット , LSB ファーストに固定されます。
535
第 17 章 LIN-UART
モードを変更した場合は , LIN-UART は送受信を停止して待機し , 新たな動作へ移行し
ます。
表 17.1-3 に , モードビットの設定を示します。
表 17.1-3 モードビットの設定
536
MD1
MD0
モード
0
0
0
非同期 ( ノーマルモード )
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
3
非同期 (LIN モード )
機能
第 17 章 LIN-UART
17.2
LIN-UART の構成
LIN-UART の構成について説明します。
■ LIN-UART のブロックダイヤグラム
LIN-UART は下記のブロックにより構成されています。
• リロードカウンタ
• 受信制御回路
• 受信シフトレジスタ
• 受信データレジスタ (RDR)
• 送信制御回路
• 送信シフトレジスタ
• 送信データレジスタ (TDR)
• エラー検出回路
• オーバサンプリングユニット
• 割込み生成回路
• LIN-Synch-Break および Sync-Field 検出回路
• バスアイドル検出回路
• シリアルモードレジスタ (SMR)
• シリアル制御レジスタ (SCR)
• シリアルステータスレジスタ (SSR)
• 拡張通信制御レジスタ (ECCR)
• 拡張通信ステータス / 制御レジスタ (ESCR)
537
第 17 章 LIN-UART
■ LIN-UART のブロックダイヤグラム
図 17.2-1 LIN-UART のブロックダイヤグラム
PE
送信クロック
CLK
FRE
TIE
受信クロック
リロード
カウンタ
SCK
受信制御回路
RIE
送信制御回路
LBIE
割込み発生回路
Pin
受信再開リロード
カウンタ
LBD
送信スタート
回路
スタート
ビット検出
SIN
Pin
ORE
送信ビット
カウンタ
受信ビット
カウンタ
BIE
RBI
TBI
受信IRQ
TDRE
送信IRQ
オーバサン
プリング
ユニット
SOT
送信パリティ
カウンタ
受信パリティ
カウンタ
Pin
RDRF
受信完了
SOT
SIN
ICUへの
シグナル
受信シフト
レジスタ
LIN-SynchBreak,
SIN
送信シフト
レジスタ
Synch-Field
検出回路
LIN-Break
発生
送信スタート
エラー検出
RDR
バスアイドル
検出
TDR
STR
PE
ORE
FRE
RBI
TBI
LBD
内部データバス
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
538
MD1
MD0
(OTO)
(EXT)
SSR
レジスタ (REST)
UPCL
SCKE
SOE
SMR
レジスタ
PEN
P
SBL
CL
AD
CRE
RXE
TXE
SCR
レジスタ
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
ESCR
レジスタ
LBR
MS
SPI
SSM
BIE
RBI
TBI
ECCR
レジスタ
LBR
LBL1
LBL0
第 17 章 LIN-UART
■ 各ブロックの説明
● リロードカウンタ
リロードカウンタは専用のボーレートジェネレータとして機能します。送受信クロッ
クは , 外部クロックまたは内部クロックから生成されます。リロードカウンタにはリ
ロード値として 15 ビットのレジスタがあります。送信リロードカウンタの実際のカウ
ント値は , BGR0/BGR1 の値から読み出すことができます。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン
タによって構成されます。
受信ビットカウンタは受信データをカウントします。指定されたデータ長の 1 データ
の受信が完了すると , 受信ビットカウンタは受信データレジスタフルフラグを設定し
ます。
スタートビット検出回路はシリアル入力信号からスタートビットを検出し , スタート
ビットの立下りエッジと同期してリロードカウンタへ信号を送出します。
受信パリティカウンタは受信データのパリティを計算します。
● 受信シフトレジスタ
受信シフトレジスタは, SIN端子から入力された受信データをビット単位でシフトして
取り込みます。受信が完了すると , 受信シフトレジスタは受信データを受信データレジ
スタ (RDR) へ転送します。
● 受信データレジスタ (RDR)
受信データレジスタでは受信データが保持されます。シリアル入力データは変換され ,
このレジスタへと格納されます。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信開始回路 , 送信パリティカウンタによって
構成されます。
送信ビットカウンタは送信データビットをカウントします。指定されたデータ長の 1
データの送信が完了すると , 送信ビットカウンタは送信データレジスタエンプティフ
ラグを設定します。
送信開始回路は , データが TDR に書き込まれると送信を開始します。
送信パリティカウンタは , パリティありの場合には送信データのパリティビットを生
成します。
● 送信シフトレジスタ
送信シフトレジスタは , 送信データレジスタ (TDR) へ書き込まれた送信データをシフ
トし , SOT 端子へデータをビット単位で出力します。
● 送信データレジスタ (TDR)
送信データレジスタに送信データを設定します。このレジスタに書き込まれたデータ
はシリアルデータへ変換されて出力されます。
● エラー検出回路
エラー検出回路は , 最新の受信でのエラーの有無を確認します。エラーが発生すると ,
対応するエラーフラグを設定します。
539
第 17 章 LIN-UART
● オーバサンプリングユニット
オーバサンプリングユニットは , SIN 端子からの入力データを 5 回オーバサンプリング
します。同期動作モードでは , このユニットは動作しません。
● 割込み生成回路
割込み生成回路は , すべての割込みを管理します。割込みが許可され , それに対応する
割込み要因が発生すると , 直ちに割込みを生成します。
● LIN-Break および Sync-Field 検出回路
LIN-Break および LIN-Sync-Break 検出回路は , LIN マスタノードがメッセージハンドラ
を送出していると , LIN-Break を検出します。LIN-Break が検出されると , LBD フラグ
ビットが生成されます。Sync-Field の 1 回目と 5 回目の立下りエッジは , この回路に
よって検出され , 送信マスタノードの正確なシリアルクロックサイクルを測定するた
めにインプットキャプチャへ内部信号を送出します。
● LIN-Break 生成回路
LIN-Break 生成回路は , 定められた長さの LIN-Synch-Break を生成します。
● バスアイドル検出回路
バスアイドル検出回路は , 受信 / 送信のどちらも実行されていない ( バスアイドル ) こ
とを検出します。この場合 , この回路はフラグビット TBI および RBI を生成します。
● シリアルモードレジスタ (SMR)
シリアルモードレジスタにより , 下記の動作が行われます。
• LIN-UART 動作モードの選択
• クロック入力の選択
• 外部クロックが 1 対 1 接続 , またはリロードカウンタ接続であるかの選択
• 専用リロードタイマの再起動
• LIN-UART のリセット ( レジスタの設定は保存 )
• シリアル出力端子 (SOT) の出力許可
• シリアルクロック端子 (SCK) の入出力切換え
● シリアル制御レジスタ (SCR)
シリアル制御レジスタにより , 下記の動作が行われます。
• パリティビットの有無
• パリティビットの選択
• ストップビット長の指定
• データ長の指定
• モード 1 におけるフレームデータフォーマットの指定
• エラーフラグのクリア
• 送信許可
• 受信許可
540
第 17 章 LIN-UART
● シリアルステータスレジスタ (SSR)
シリアルステータスレジスタで送信 / 受信状態およびエラー状態を確認します。また ,
送信 / 受信割込みの許可 , 転送方向 (LSB ファースト /MSB ファースト ) の設定も行い
ます。
● 拡張ステータス・制御レジスタ (ESCR)
拡張ステータス・制御レジスタでは LIN 機能を設定できます。SIN, SOT 端子への直接
アクセスと LIN-UART 同期クロックモードの設定ができます。
● 拡張通信制御レジスタ (ECCR)
拡張通信制御レジスタでは , バスアイドル検出割込みの設定 , 同期クロック設定 , LINBreak 生成ができます。
541
第 17 章 LIN-UART
LIN-UART のレジスタ
17.3
図 17.3-1 に , LIN-UART のレジスタを示します。
■ LIN-UART のレジスタ
図 17.3-1 LIN-UART のレジスタ
SCR
アドレス : 000040H, 000048H, bit 15
000050H, 000058H,
000060H, 000068H, PEN
000070H
リード / ライト (R/W)
初期値
(0)
14
13
12
11
10
9
8
P
SBL
CL
AD
CRE
RXE
TXE
(R/W)
(R/W)
(R/W)
(R/W)
(W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
SMR
アドレス : 000041H, 000049H, bit 7
000051H, 000059H,
000061H, 000069H, MD1
000071H
6
5
4
3
2
1
0
MD0
OTO
EXT
REST
UPCL
SCKE
SOE
リード / ライト (R/W)
(R/W)
(R/W)
(R/W)
(W)
(W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス : 000042H, 00004AH, bit 15
000052H, 00005AH,
000062H, 00006AH, PE
000072H
14
13
12
11
10
9
8
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
初期値
SSR
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(1)
(0)
(0)
(0)
6
5
4
3
2
1
0
D6
D5
D4
D3
D2
D1
D0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
14
13
12
11
10
9
8
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(x)
(0)
(0)
RDR/TDR
アドレス : 000043H, 00004BH, bit 7
000053H, 00005BH,
000063H, 00006BH, D7
000073H
リード / ライト (R/W)
初期値
(0)
ESCR
アドレス : 000044H, 00004CH, bit 15
000054H, 00005CH,
000064H, 00006CH, LBIE
000074H
リード / ライト (R/W)
初期値
(0)
( 続く )
542
第 17 章 LIN-UART
( 続き )
ECCR
アドレス : 000045H, 00004DH, bit 7
000055H, 00005DH,
000065H, 00006DH, 予約
000075H
6
5
4
3
2
1
0
LBR
MS
SCDE
SSM
BIE
RBI
TBI
リード / ライト ( − )
(W)
(R/W)
(R/W)
(R/W)
(R/W)
(R)
(R)
(0)
(0)
(0)
(0)
(0)
(X)
(X)
14
13
12
11
10
9
8
B14
B13
B12
B11
B10
B09
B08
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
6
5
4
3
2
1
0
B06
B05
B04
B03
B02
B01
B00
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値
(0)
BGR1
アドレス : 000080H, 000082H, bit 15
000084H, 000086H,
000088H, 00008AH, 予約
00008CH
リード / ライト ( − )
初期値
(0)
BGR0
アドレス : 000081H, 000083H, bit 7
000085H, 000087H,
000089H, 00008BH, B07
00008DH
リード / ライト (R/W)
初期値
(0)
543
第 17 章 LIN-UART
17.3.1
シリアル制御レジスタ (SCR)
シリアル制御レジスタ (SCR) では , パリティビットの指定 , ストップビット長と
データ長の選択 , モード 1 におけるフレームデータフォーマットの選択 , 受信エラー
フラグのクリア , 送信 / 受信の許可を設定します。
■ シリアル制御レジスタ (SCR)
図 17.3-2 シリアル制御レジスタ (SCR) のビット構成
SCR
アドレス : 000040H, 000048H, bit 15
000050H, 000058H,
000060H, 000068H, PEN
000070H
リード / ライト (R/W)
初期値
14
13
12
11
10
9
8
P
SBL
CL
AD
CRE
RXE
TXE
(R/W)
(R/W)
(R/W)
(R/W)
(W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
[bit15] PEN : パリティ許可ビット
PEN
パリティ許可
0
パリティなし [ 初期値 ]
1
パリティあり
このビットは , シリアル非同期モードでの送信データにパリティの付与を選択しま
す。受信中には , パリティの検出を行います。
パリティはモード 0, および ECCR の SSM ビットが設定されている場合はモード 2
でも追加されます。このビットはモード 3 (LIN モード ) では "0" 固定 ( パリティな
し ) です。
[bit14] P : パリティ選択ビット
P
パリティ選択
0
偶数パリティ [ 初期値 ]
1
奇数パリティ
パリティが有効である場合は , このビットにより偶数パリティ (0), 奇数パリティ (1)
が選択されます。
544
第 17 章 LIN-UART
[bit13] SBL : ストップビット長選択ビット
SBL
ストップビット長
0
1 ビット [ 初期値 ]
1
2 ビット
このビットは , 非同期データフレームのストップビット長を選択します。ECCR の
SSM ビットが設定されている場合は , 同期データフレームでも選択されます。この
ビットはモード 3 (LIN モード ) では "0" 固定 (1 ビット ) です。
[bit12] CL : データ長選択ビット
CL
データ 長
0
7 ビット [ 初期値 ]
1
8 ビット
このビットは , 送信 / 受信データ長を指定します。モード 2 およびモード 3 では , こ
のビットは "1" (8 ビット ) に固定されます。
[bit11] AD : アドレス / データ選択ビット
AD
アドレス / データビット
0
データビット [ 初期値 ]
1
アドレスビット
このビットはマルチプロセッサモード 1 でのデータ形式を指定します。このビット
への書込みはマスタ CPU 用であり , 読出しはスレーブ CPU 用です。"1" はアドレス
フレームを , "0" はデータフレームを示します。
<注意事項>
AD ビットの使用については ,「17.7 LIN-UART 使用上の注意事項」を参照してください。
545
第 17 章 LIN-UART
[bit10] CRE : 受信エラーフラグクリアビット
受信エラークリア
CRE
書込み
0
無効 [ 初期値 ]
1
すべての受信エラー
(PE, FRE, ORE) をクリア
読出し
読出し値は常に "0"
このビットにより , シリアルステータスレジスタ (SSR) の PE, FRE, ORE フラグがク
リアされます。このビットは受信エラー割込み要因もクリアします。
"1" 書込みによりエラーフラグはクリアされます。"0" 書込みは無効です。
読出しは常に "0" を返します。
[bit9] RXE : 受信許可ビット
RXE
受信許可
0
受信禁止 [ 初期値 ]
1
受信許可
このビットにより LIN-UART の受信が許可されます。このビットが "0" に設定され
ている場合は , LIN-UART はデータフレームの受信を停止します。モード 0 および
モード 3 での LIN-Break 検出では無効のままです。
[bit8] TXE : 送信許可ビット
TXE
送信許可
0
送信禁止 [ 初期値 ]
1
送信許可
このビットにより LIN-UART の送信が許可されます。このビットが "0" に設定され
ている場合は , LIN-UART はデータフレームの送信を停止します。
546
第 17 章 LIN-UART
17.3.2
シリアルモードレジスタ (SMR)
シリアルモードレジスタ (SMR) は , 動作モードとボーレートクロックを選択します。
また , シリアルクロック (SCK) の入出力方向の指定 , シリアル出力許可の設定を行
います。
■ シリアルモードレジスタ (SMR)
図 17.3-3 シリアルモードレジスタ (SMR) のビット構成
SMR
アドレス : 000041H, 000049H, bit 7
000051H, 000059H,
000061H, 000069H, MD1
000071H
6
5
4
3
2
1
0
MD0
OTO
EXT
REST
UPCL
SCKE
SOE
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(W)
(W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
[bit7, bit6] MD1, MD0 : 動作モード選択ビット
MD0
MD1
0
0
モード 0 : 非同期ノーマルモード [ 初期値 ]
1
0
モード 1 : 非同期マルチプロセッサモード
0
1
モード 2 : 同期モード
1
1
モード 3 : 非同期 LIN モード
動作モード設定
これらのビットにより , LIN-UART の動作モードが設定されます。
[bit5] OTO : 1 to 1 外部クロック選択ビット
OTO
外部クロック選択
0
外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使
用 [ 初期値 ]
1
外部クロックをシリアルクロックとして使用
このビットが設定されると , LIN-UART のシリアルクロックとして外部クロックが
直接使用されます。この機能は同期スレーブモード動作時に使用されます。
547
第 17 章 LIN-UART
[bit4] EXT : 外部クロック選択ビット
EXT
外部シリアルクロック許可
0
内蔵ボーレートジェネレータ ( リロードカウンタ ) を使用
[ 初期値 ]
1
外部クロックをシリアルクロックとして使用
このビットにより , リロードカウンタ用のクロックを選択できます。
[bit3] REST : 送信リロードカウンタ再起動ビット
送信リロードカウンタ再起動
REST
書込み
0
無効 [ 初期値 ]
1
カウンタ再起動
読出し
読出し値は常に "0"
このビットに "1" が書き込まれると , リロードカウンタは再起動されます。"0" 書込
みは無効です。
読出しは常に "0" を返します。
[bit2] UPCL : UART クリアビット ( ソフトウェアリセット )
UART クリア ( ソフトウェアリセット )
UPCL
書込み
0
無効 [ 初期値 ]
1
UART リセット
読出し
読出し値は常に "0"
このビットに "1" が書き込まれると , LIN-UART は直ちにリセットされますが , レジ
スタの設定値は保存されます。
受信 / 送信は中断されます。
エラーフラグはすべてクリアされ , 受信データレジスタ (RDR) は "00H" となります。
"0" 書込みは無効です。
読出しは常に "0" を返します。
548
第 17 章 LIN-UART
[bit1] SCKE : シリアルクロック出力許可
SCKE
シリアルクロック出力許可
0
外部クロック入力 [ 初期値 ]
1
シリアルクロック出力
このビットはシリアルクロック端子 (SCK) の入出力を制御します。
このビットが "0" の場合は , SCK 端子は汎用ポート / シリアルクロック入力端子と
して動作します。"1" の場合は , シリアルクロック出力端子となります。
<注意事項>
SCK 端子をシリアルクロック入力として使用する場合 (SCKE = 0), ポートは入力ポート
として設定してください。シリアルクロック出力として使用する場合は , SCKE ビットの
設定と SCK 端子に対応するポートファンクションレジスタ (PFR) の設定が必要です。ポー
トファンクションレジスタの設定についての詳細は , 「第 10 章 I/O ポート」を参照して
ください。また , 外部クロック選択ビットを使用 (EXT = 1) して外部クロックを選択して
ください。
[bit0] SOE : シリアルデータ出力許可ビット
SOE
シリアルデータ出力許可
0
SOT 出力禁止 [ 初期値 ]
1
SOT 出力許可
このビットにより , シリアル出力が許可されます。
このビットが "1" の場合は , シリアルデータ出力が許可されます。
<注意事項>
SOT 端子をシリアル出力として使用する場合は , SOE ビットの設定と , 対応するポート
ファンクションレジスタ (PFR) の設定が必要です。ポートファンクションレジスタの設定
についての詳細は , 「第 10 章 I/O ポート」を参照してください。
549
第 17 章 LIN-UART
17.3.3
シリアルステータスレジスタ (SSR)
シリアルステータスレジスタ (SSR) により , 送信 / 受信状態 , エラーの有無を確認で
きます。また , 送信 / 受信割込みの制御も行います。
■ シリアルステータスレジスタ (SSR)
図 17.3-4 シリアルステータスレジスタ (SSR) のビット構成
SSR
アドレス : 000042H, 00004AH, bit 15
000052H, 00005AH,
PE
000062H, 00006AH,
000072H
14
13
12
11
10
9
8
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(1)
(0)
(0)
(0)
[bit15] PE : パリティエラーフラグビット
PE
パリティエラー
0
パリティエラーなし [ 初期値 ]
1
受信中にパリティエラー発生
受信中にパリティエラーが発生すると , このビットは "1" に設定されます。シリア
ル制御レジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビットはクリア
されます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
このフラグが設定された場合は , 受信データレジスタ (RDR) のデータは無効です。
[bit14] ORE : オーバランエラーフラグビット
ORE
オーバランエラー
0
オーバランエラーなし [ 初期値 ]
1
受信中にオーバランエラー発生
受信中にオーバランエラーが発生すると , このビットは "1" に設定されます。シリ
アル制御レジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビットはクリ
アされます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
このフラグが設定された場合は , 受信データレジスタ (RDR) のデータは無効です。
550
第 17 章 LIN-UART
[bit13] FRE : フレーミングエラーフラグビット
FRE
フレーミングエラー
0
フレーミングエラーなし [ 初期値 ]
1
受信中にフレーミングエラー発生
受信中にフレーミングエラーが発生すると , このビットは "1" に設定されます。シ
リアル制御レジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビットはク
リアされます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
このフラグが設定された場合は , 受信データレジスタ (RDR) のデータは無効です。
[bit12] RDRF : 受信データフルフラグビット
RDRF
受信データレジスタフル
0
受信データレジスタにデータなし [ 初期値 ]
1
受信データレジスタにデータあり
このフラグは , 受信データレジスタ (RDR) の状態を示します。
受信データが RDR へ格納されるとこのビットは "1" に設定されます。RDR が読み
出されることによってのみ , "0" にクリアされます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
[bit11] TDRE : 送信データエンプティフラグビット
TDRE
送信データレジスタエンプティ
0
送信データレジスタにデータあり
1
送信データレジスタにデータなし [ 初期値 ]
このフラグは , 送信データレジスタ (TDR) の状態を示します。
送信データが TDR へ書き込まれると , このビットは "0" にクリアされます。データ
が送信シフトレジスタへ格納されて送信が開始されると , "1" に設定されます。
このビットと TIE ビットが "1" の場合は , 送信割込み要求が出力されます。
551
第 17 章 LIN-UART
[bit10] BDS : 転送方向選択ビット
BDS
転送方向設定
0
送信 / 受信は LSB ファースト [ 初期値 ]
1
送信 / 受信は MSB ファースト
このビットにより , シリアル転送データの転送を LSB ファースト (BDS = 0) または
MSB ファースト (BDS = 1) のいずれかに選択できます。
このビットは , モード 3 (LIN モード ) では "0" に固定されます。
<注意事項>
シリアルデータレジスタの読出し / 書込み中に , シリアルデータの上位側と下位側は入れ
替えられます。データが RDR に書き込まれた後 , このビットの値が変更されると , デー
タは無効となります。
[bit9] RIE : 受信割込み要求許可ビット
RIE
受信割込み要求許可
0
受信割込み禁止 [ 初期値 ]
1
受信割込み許可
このビットにより , CPU への受信割込み要求が制御されます。
このビットが設定され , 受信データフラグビット (RDRF) が "1", もしくはエラーフ
ラグ (PE, ORE, FRE) が設定されると , 受信割込み要求を送出します。
[bit8] TIE : 送信割込み要求許可ビット
TIE
送信割込み要求許可
0
送信割込み禁止 [ 初期値 ]
1
送信割込み許可
このビットにより , CPU への送信割込み要求が制御されます。
このビットが設定されて TDRE ビットが "1" になると , 送信割込み要求が送出され
ます。
552
第 17 章 LIN-UART
17.3.4
受信 / 送信データレジスタ (RDR/TDR)
受信データレジスタ (RDR) は受信データを , 送信データレジスタは送信データを保
持します。RDR, TDR は同一のアドレスに配置されています。
■ 受信 / 送信データレジスタ (RDR/TDR)
図 17.3-5 受信 / 送信データレジスタ
RDR/TDR
アドレス : 000043H, 00004BH, bit 7
000053H, 00005BH,
D7
000063H, 00006BH,
000073H
6
5
4
3
2
1
0
D6
D5
D4
D3
D2
D1
D0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
[bit7 ∼ bit0] D7 ∼ D0 : データレジスタ
アクセス
データレジスタ
読出し
受信データレジスタからの読出し
書込み
送信データレジスタへの書込み
● 受信
RDR は受信データを格納するレジスタです。SIN 端子より転送されたシリアルデータ
信号はシフトレジスタで変換され , このレジスタへ格納されます。データ長が 7 ビット
の場合は , 最上位ビット (D7) は "0" となります。受信が完了すると , データはこのレジ
スタへ格納され , 受信データフルフラグビット (SSR の RDRF ビット ) が "1" に設定さ
れます。このとき , 受信割込み要求が許可されていると , 受信割込みが発生します。
SSR の RDRF ビットが "1" のときに RDR を読み出してください。RDR が読み出され
ると , RDRF ビットは自動的に "0" にクリアされます。受信割込みが許可されて受信エ
ラーが発生していない場合は , 受信割込みもクリアされます。
553
第 17 章 LIN-UART
● 送信
送信データが送信許可状態で送信データレジスタへ書き込まれると , データは送信シ
フトレジスタへ転送後 , シリアルデータへと変換されてシリアルデータ出力端子 (SOT)
から送信されます。データ長が7ビットの場合は, 最上位ビット(D7)は送信されません。
このレジスタへ送信データが書き込まれると , 送信データエンプティフラグビット
(SSR の TDRE ビット ) が "0" にクリアされます。送信シフトレジスタへの転送が完了
すると , TDRE ビットは "1" に設定されます。TDRE ビットが "1" であれば , 次の送信
データをこのレジスタへ書き込むことができます。送信割込み要求が許可されている
場合は , 送信割込みが発生します。送信割込みの発生 , もしくは TDRE ビットが "1" で
あれば , 次のデータを書き込んでください。
<注意事項>
TDR は書込み専用 , RDR は読出し専用のレジスタです。このレジスタは同一のアドレス
に配置されているため , 読出し値と書込み値は異なります。そのため , リードモディファ
イライト (RMW) 系命令ではアクセスしないでください。
554
第 17 章 LIN-UART
17.3.5
拡張ステータス・制御レジスタ (ESCR)
拡張ステータス・制御レジスタでは LIN 機能を設定できます。また , SIN, SOT 端子
への直接アクセスと LIN-UART 同期クロックモードの設定ができます。
■ 拡張ステータス・制御レジスタ (ESCR)
図 17.3-6 拡張ステータス・制御レジスタ (ESCR) のビット構成
ESCR
アドレス : 000044H, 00004CH, bit 15
000054H, 00005CH,
LBIE
000064H, 00006CH,
000074H
14
13
12
11
10
9
8
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(x)
(0)
(0)
[bit15] LBIE : LIN-Break 検出割込み許可ビット
LBIE
LIN-Break 検出割込み許可
0
LIN-Break 割込み禁止 [ 初期値 ]
1
LIN-Break 割込み許可
このビットは , LIN-Break が検出されると生成される割込みを許可します。
[bit14] LBD: LIN-Break 検出フラグビット
LIN-Break 検出
LBD
書込み
読出し
0
LIN-Break 検出フラグのクリア
LIN-Break の検出なし [ 初期値 ]
1
無効
LIN-Break が検出された
LIN-Break が検出されると , このビットは "1" に設定されます。"0" 書込みによりこ
のフラグビットはクリアされ , LIN-Break 検出割込みが許可されている場合は , 割込
みもクリアします。
リードモディファイライト (RMW) 系命令では常に "1" が返されますが , この場合は
LIN-Break 検出を意味しません。
555
第 17 章 LIN-UART
[bit13, bit12] LBL1, LBL0 : LIN-Break 長選択ビット
LBL0
LBL1
0
0
LIN-Break 長は 13 ビット [ 初期値 ]
1
0
LIN-Break 長は 14 ビット
0
1
LIN-Break 長は 15 ビット
1
1
LIN-Break 長は 16 ビット
LIN-Break 長
これらのビットにより , LIN-UART で生成される LIN-Break のシリアルビット長が
定義されます。LIN-Break の受信では , 常に 11 ビット固定です。
[bit11] SOPE : シリアル出力端子直接アクセス許可ビット
SOPE
シリアル出力端子直接アクセス
0
シリアル出力端子直接アクセス禁止 [ 初期値 ]
1
シリアル出力端子直接アクセス許可
このビットが "1" に設定されると , SOT 端子へ直接書込みを行うことが可能になり
ます。
詳細は , 表 17.3-2 を参照してください。
[bit10] SIOP : シリアル入出力端子直接アクセス許可ビット
シリアル入出力端子直接アクセス許可
SIOP
書込み (SOPE が "1" の場合 )
0
SOT は "0" 出力
1
SOT は "1" 出力 [ 初期値 ]
読出し
SIN の値を読み出します
通常読出し命令では , SIN 端子の値を返します。書込みは SOT 端子の値を設定しま
す。リードモディファイライト (RMW) 系命令では , SOT の値を返します。
詳細は , 表 17.3-2 を参照してください。
556
第 17 章 LIN-UART
表 17.3-1 SOPE と SIOP の機能
SOPE
SIOP
SIOP への書込み
SIOP からの読出し
0
R/W
SOT 端子への影響なし
書込み値は保持
SIN の値を読み出します
1
R/W
SOT 端子へ書込み値出力
SIN の値を読み出します
1
RMW
SOT 端子の値を読み出し , 書込み
<注意事項>
本ビットの設定値は , シリアル制御レジスタ (SCR) の TXE ビットが "0" の場合のみ有効
です。
[bit9] CCO : 連続クロック出力許可ビット
CCO
連続クロック出力 ( モード 2)
0
連続クロック出力禁止 [ 初期値 ]
1
連続クロック出力許可
LIN-UART がマスタモード 2 ( 同期モード ) で動作し , SCK 端子が出力として設定さ
れている場合に , このビットにより SCK での連続シリアルクロック出力が許可され
ます。
[bit8] SCES : シリアルクロックエッジ選択ビット
SCES
シリアルクロックエッジ選択
0
クロックの立上りエッジでサンプリング ( 通常 ) [ 初期値 ]
1
クロックの立下りエッジでサンプリング ( 反転クロック )
このビットにより , モード 2 ( 同期モード ) での内部シリアルクロックが反転されま
す。LIN-UART がモード 2 マスタ ( 同期モード ) で動作し , SCK 端子が出力として
設定されている場合は , 出力クロックも反転します。
モード 2 スレーブでは , サンプリングエッジが立上りエッジから立下りエッジへと
切り換わります。
557
第 17 章 LIN-UART
17.3.6
拡張通信制御レジスタ (ECCR)
拡張通信制御レジスタ (ECCR) では , バスアイドル検出割込みの設定 , 同期クロック
設定 , LIN-Break 生成ができます。
■ 拡張通信制御レジスタ (ECCR)
図 17.3-7 拡張通信制御レジスタのビット構成
ECCR
アドレス : 000045H, 00004DH, bit 7
000055H, 00005DH,
000065H, 00006DH, 予約
000075H
6
5
4
3
2
1
0
LBR
MS
SCDE
SSM
BIE
RBI
TBI
リード / ライト
(-)
(W)
(R/W)
(R/W)
(R/W)
(R/W)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(x)
(x)
[bit7] 予約 : 予約ビット
予約ビットです。必ず "0" を書き込んでください。
[bit6] LBR : LIN-Break 設定ビット
LIN-Break 設定
LBR
書込み
0
無効 [ 初期値 ]
1
LIN-Break 生成
読出し
読出し値は常に "0"
動作モードがモード 0 もしくはモード 3 の場合に , このビットに "1" が書き込まれ
ると , ESCR の LBL1, LBL0 で設定した長さの LIN-Break が生成されます。
[bit5] MS : マスタ / スレーブモード選択ビット
MS
モード 2 でのマスタ / スレーブ機能
0
マスタモード ( シリアルクロック生成 ) [ 初期値 ]
1
スレーブモード ( 外部シリアルクロック受信 )
このビットは , 同期モード 2 における LIN-UART をマスタあるいはスレーブとして
設定します。マスタとして設定されると , LIN-UART は同期クロックを生成します。
スレーブモードとして設定された場合は , 外部シリアルクロックを受信します。
558
第 17 章 LIN-UART
<注意事項>
スレーブモードとして設定される場合は , クロックソースを外部クロックとして , 1 対 1
外部クロック入力に設定してください (SMR の SCKE = 0, EXT = 1, OTO = 1) 。
[bit4] SCDE : シリアルクロック遅延許可ビット
SCDE
モード 2 でのシリアルクロック遅延許可
0
クロック遅延禁止 [ 初期値 ]
1
クロック遅延許可
LIN-UART がモード 2 で動作する場合 , このビットが設定されると , シリアル出力
クロックは 1 マシンサイクル遅延します。
[bit3] SSM : スタート / ストップビットモード許可
SSM
モード 2 での調歩同期
0
モード 2 でのスタート / ストップビットモード禁止 [ 初期値 ]
1
モード 2 でのスタート / ストップビットモード許可
LIN-UART がモード 2 で動作する場合 , このビットにより同期化用にスタートビッ
トとストップビットが追加されます。ほかのモード ( モード 0, モード 1, モード 3)
ではこのビットは "0" に固定されます。
[bit2] BIE : バスアイドル割込み許可
BIE
バスアイドル割込み許可
0
バスアイドル割込み禁止 [ 初期値 ]
1
バスアイドル割込み許可
受信 / 送信のどちらも実行されていない場合 (RBI = 1, TBI = 1) に , このビットは
受信割込みを許可します。
モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。
[bit1] RBI: 受信バスアイドルフラグビット
RBI
受信バスアイドル
0
受信動作中
1
受信休止中
SIN 端子での受信がない場合に , このビットは "1" に設定されます。
モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。
559
第 17 章 LIN-UART
[bit0] TBI : 送信バスアイドルフラグビット
TBI
送信バスアイドル
0
送信動作中
1
送信休止中
SOT 端子での送信がない場合に , このビットは "1" に設定されます。
モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。
<注意事項>
LIN-UART の動作モードをモード 2 に設定した場合に , SSM ビットが "0" のときは , BIE,
RBI, TBI ビットを使用しないでください。
560
第 17 章 LIN-UART
17.3.7
ボーレート / リロードカウンタレジスタ (BGR)
ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設
定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。
■ ボーレート / リロードカウンタレジスタ (BGR)
図 17.3-8 ボーレート / リロードカウンタレジスタ
BGR1
アドレス : 000080H, 000082H, bit 15
000084H, 000086H,
予約
000088H, 00008AH,
00008CH
14
13
12
11
10
9
8
B14
B13
B12
B11
B10
B09
B08
リード / ライト
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
6
5
4
3
2
1
0
B06
B05
B04
B03
B02
B01
B00
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
BGR0
アドレス : 000081H, 000083H, bit 7
000085H, 000087H, B07
000089H, 00008BH,
00008DH
リード / ライト (R/W)
初期値
(0)
[bit15] 予約 : 予約ビット
予約ビットです。読出し値は常に "0" です。
[bit14 ∼ bit8] B14 ∼ B08 : BGR1 : ボーレートジェネレータレジスタ 1
B14 ∼ B08
ボーレートジェネレータレジスタ 1
書込み
リロード値の bit14 ∼ bit8 をカウンタへ書込み
読出し
カウント bit14 ∼ bit8 の読出し
[bit7 ∼ bit0] B07 ∼ B00 : BGR0 : ボーレートジェネレータレジスタ 0
表 17.3-2 ボーレートジェネレータレジスタ 0
B07 ∼ B00
ボーレートジェネレータレジスタ 0
書込み
リロード値の bit7 ∼ bit0 をカウンタへ書込み
読出し
カウント bit7 ∼ bit0 の読出し
561
第 17 章 LIN-UART
■ ボーレート / リロードカウンタレジスタ
ボーレートリロードカウンタレジスタ (BGR) では , シリアルクロックの分周比を設定
します。
レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能
です。
562
第 17 章 LIN-UART
LIN-UART の割込み
17.4
LIN-UART には受信割込みと送信割込みがあります。下記のいずれかの場合におい
て , 割込み要求が生成されます。
• 受信データの受信データレジスタ (RDR) への格納 , もしくは受信エラーの発生
• 送信データの送信データレジスタ (TDR) から送信シフトレジスタへの転送
• LIN-Break 検出
• バスアイドル ( 送信 / 受信動作なし )
■ LIN-UART の割込み
表 17.4-1 に , LIN-UART の割込みコントロールビットと割込み要因を示します。
表 17.4-1 LIN-UART の割込みコントロールビットと割込み要因
受信 /
送信 /
ICU
受信
送信
動作モード
割込み要求
フラグ
フラグビット レジスタ
割込み要因
割込み要因 割込み要求の
許可ビット クリア方法
0
1
2
3
RDRF
SSR
○
○
○
○
RDR への受信
データ書込み
受信データの
読出し
ORE
SSR
○
○
○
○
オーバラン
エラー
SSR: RIE
受信エラー
クリアビット
(SSR: CRE) へ
の "1" 書込み
FRE
SSR
○
○
△
フレーミング
○
エラー
PE
SSR
○
×
△
×
パリティ
エラー
LBD
ESCR
○
×
×
○
LIN-Sync-Break
検出
TBI & RBI
ECCR
○
○
△
○ バスアイドル
TDRE
SSR
○
○
○
○
ICP
ICS
○
×
×
LIN-Sync-Field
○ の最初の立下り ICS: ICP
エッジ
ICP の
一時禁止
ICP
ICS
○
×
×
LIN-Sync-Field
○ の 5 回目の立下 ICS: ICP
りエッジ
ICP の禁止
ICU
送信レジスタ
エンプティ
ESCR:
LBIE
ESCR の LBD
ビットへの
"1" 書込み
ECCR: BIE
受信データ /
送信データ
SSR: TIE
送信データの
書込み
○ : 使用可能
△ : ECCR の SSM ビットが "1" のときに使用可能
× : 使用不可
563
第 17 章 LIN-UART
■ 受信割込み
受信モード時に下記の 1 つが発生すると , シリアルステータスレジスタ (SSR) の対応す
るフラグビットが "1" に設定されます。
• データ受信完了 : RDRF
受信データがシリアル入力シフトレジスタから受信データレジスタ (RDR) へ転送さ
れて読出しが可能となった。
• オーバランエラー : ORE
RDRF = 1 かつ RDR が CPU より読み出されなかった。
• フレーミングエラー : FRE
ストップビット受信時に , "0" が受信された。
• パリティエラー : PE
誤ったパリティビットが検出された。
受信割込みが許可 (SSR の RIE = 1) されているときに , 上記のフラグが 1 つでも "1" と
なると , 受信割込みが生成されます。
受信データレジスタ (RDR) が読み出されると , RDRF フラグは自動的に "0" にクリアさ
れます。RDRF フラグのクリアはこの方法のみです。
シリアル制御レジスタ (SCR) の受信エラーフラグクリアビット (CRE) に "1" が書き込
まれると , エラーフラグはすべて "0" にクリアされます。
<注意事項>
CRE ビットは書込み専用で , "1" を書き込むと 1 マシンサイクルの期間 "1" を保持します。
■ 送信割込み
送信データが送信データレジスタ (TDR) から送信シフトレジスタへ転送されると ( シ
フトレジスタが空で , 送信データが存在している場合に発生します ) , シリアルステー
タスレジスタ (SSR) の送信データレジスタエンプティフラグビット (TDRE) が "1" に設
定されます。この場合 , SSR の送信割込み許可ビット (TIE) が設定されていると , 割込
み要求が生成されます。
<注意事項>
TDRE の初期値は "1" です。したがって , TIE フラグが "1" に設定されると直ちに送信割込
みが生成されます。送信データレジスタ (TDR) への書込みによってのみ TDRE フラグは
リセットされます。
564
第 17 章 LIN-UART
■ LIN-Synch-Break 割込み
LIN-UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能し
ます。
シリアル入力バスが 11 ビットタイム以上 "0" ( ドミナント ) になると , 拡張ステータス・
制御レジスタ (ESCR) の LIN-Break 検出フラグビット (LBD) が "1" に設定されます。この
場合 , 受信エラーフラグは 9 ビットタイム後に "1" に設定されます。そのため , LIN-SyncBreak 検出のみが目的である場合は , RIE フラグあるいは RXE フラグを "0" に設定してく
ださい。その他の場合では , まず受信エラー割込みが生成され , 割込み処理ルーチンによ
り LBD = 1 を待ってください。
LBD フラグに "1" が書き込まれると , 割込みと LBD フラグはクリアされます。これに
より , 以下の LIN マスタへのシリアルクロックの調整手順のため , CPU は確実に LINSync-Break を検出します。
■ LIN-Synch-Field エッジ検出割込み
LIN-UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能し
ます。
LIN-Break 検出後の受信バスの立下りエッジは LIN-UART により示されます。同時に ,
ICU へと接続されている割込み信号は "1" に設定されます。この信号は LIN-Synch-Field
の 5 回目の立下りエッジでリセットされます。どちらの場合においても両エッジ検出
と ICU 割込みが許可されていれば , ICU は割込みを生成します。ICU で検出されたカ
ウンタ値の差は , シリアルクロックの 8 倍です。この結果を用いると , 専用リロードカ
ウンタ用のボーレートを計算することができます。
スタートビットの立下りが検出されるとリロードカウンタは自動的にリセットされる
ので , 再起動を行う必要はありません。
■ バスアイドル割込み
SIN 端子に受信動作がない場合は , ECCR の RBI フラグビットが "1" に設定されます。
同様に , SOT 端子に送信動作がない場合は , TBI フラグビットが "1" に設定されます。
ECCR のバスアイドル許可ビット (BIE) が設定され , バスアイドルフラグ (TBI, RBI) が
どちらも "1" であれば , 割込みが生成されます。
<注意事項>
SOPE ビットが "1" のときに SIOP ビットに "0" が書き込まれると , バス動作がない場合
でも TBI フラグは "0" になります。TBI ビットと RBI ビットは , 同期モード 2 において
ECCR レジスタの SSM ビットが "0" の場合は使用できません。
565
第 17 章 LIN-UART
図 17.4-1 に , バスアイドル割込みの生成を示します。
図 17.4-1 バスアイドル割込み生成
送信データ
受信データ
TBI
RBI
受信IRQ
: スタートビット
566
: ストップビット
: データビット
第 17 章 LIN-UART
受信割込み生成とフラグセットタイミング
17.4.1
受信割込み要因 , 受信完了 (SSR の RDRF ビット ) と , 受信エラーの発生 (SSR の
PE, ORE, FRE ビット ) について説明します。
■ 受信割込み生成とフラグセットタイミング
シリアルステータスレジスタ (SSR) の受信割込み許可フラグビット (RIE) が "1" に設定
され , データ受信が完了 (RDRF = 1) すると割込みが生成されます。この割込みは , モー
ド 0, モード 1, モード 2 (SSM が "1" の場合 ) , モード 3 でのストップビットの検出 , ま
たはモード 2 (SSM が "0" の場合 ) で最終データビットが読まれると生成されます。
<注意事項>
受信エラーが発生した場合は , いずれのモードにおいても受信データレジスタの内容は無
効です。
図 17.4-2 受信動作とフラグセットタイミング
受信データ
モード0/モード3
ST
D0
D1
D2
D5
D6
D7/
P
SP
ST
受信データ
モード1
ST
D0
D1
D2
D6
D7
AD
SP
ST
D0
D1
D2
D4
D5
D6
D7
D0
受信データ
モード2
PE*1, FRE
RDRF
ORE*2
(RDRF=1の場合)
受信割込み発生
*1: モード1, モード3ではPEフラグは常に"0"です。
*2: OREは受信データがCPUによって読まれず, かつ別のデータを受信した場合に発生します。
ST: スタートビット
SP: ストップビット
AD: モード1 (マルチプロセッサ)アドレス/データ選択ビット
<注意事項>
図 17.4-2 にはモード 0 とモード 3 でのすべての受信オプションは示されていません。
ここでは , "7p1" と "8N1" です (p = "E"[even] または "0"[odd]) 。
567
第 17 章 LIN-UART
図 17.4-3 ORE 設定タイミング
受信データ
RDRF
ORE
568
第 17 章 LIN-UART
送信割込み生成とフラグセットタイミング
17.4.2
送信割込みは , 次の送信データが送信データレジスタ (TDR) に書き込まれる用意が
できると生成されます。
■ 送信割込み生成とフラグセットタイミング
送信割込みは , 送信データが送信データレジスタ (TDR) に書き込まれる用意ができる
と生成されます。シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が
"1" に設定され , 送信割込みが許可されている場合に , TDR が空になると送信割込みが
生成されます。
SSR の送信レジスタエンプティ(TDRE) フラグビットは , TDR の空きを示します。TDRE
ビットは読出し専用です。フラグのクリアは TDR へのデータ書込みによってのみ行わ
れます。
図 17.4-4 に , 送信動作とフラグ設定タイミングを示します。
図 17.4-4 送信動作とフラグ設定タイミング
送信割込み発生
送信割込み発生
モード0, 1または3:
TDRへの書込み
TDRE
シリアル出力
ST D0 D1 D2 D3 D4 D5 D6 D7
P
AD
SP ST D0 D1 D2 D3 D4 D5 D6 D7
送信割込み発生
P
AD
SP
送信割込み発生
モード2 (SSM = 0):
TDRへの書込み
TDRE
シリアル出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4
ST: スタートビット D0~D7: データビット
AD: アドレス/データ選択ビット (モード1)
P: パリティ
SP: ストップビット
<注意事項>
図 17.4-4 の例には , モード 0 の送信オプションのすべては示されていません。
ここでは , "8p1"(p = "E"[even] または "O"[odd]) です。モード 3 とモード 2 で SSM ビッ
トが "0" の場合 , パリティは付加されません。
569
第 17 章 LIN-UART
■ 送信割込み要求生成タイミング
送信割込みが許可 (SSR の TIE ビットが "1") されている場合に TDRE フラグが "1" にな
ると , 送信割込み要求が生成されます。
<注意事項>
TDRE の初期値は "1" です。したがって , 送信割込みが許可 (TIE = 1) されると , 送信完了
割込みが直ちに設定されます。TDRE は読出し専用です。送信データレジスタ (TDR) へ
の書込みによってのみ TDRE フラグはクリアされます。送信割込みを有効にするタイミ
ングには注意してください。
570
第 17 章 LIN-UART
17.5
LIN-UART のボーレート
LIN-UART のシリアルクロックとして下記のいずれかを選択できます。
• 専用ボーレートジェネレータ ( リロードカウンタ )
• 外部クロック (SCK 端子からのクロック入力 )
• 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用
■ LIN-UART のボーレート選択
図 17.5-1 に , ボーレート選択回路 ( リロードカウンタ ) を示します。下記の 3 つから
ボーレートを選択可能です。
● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用
LIN-UARTには送信/受信シリアルクロックそれぞれに独立したリロードカウンタがあ
ります。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード
値により設定されます。
リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを
分周します。
● 外部クロックの使用 (1 対 1 モード )
LIN-UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用
されます。
● 専用ボーレートジェネレータに外部クロックを使用
外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この
モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。
571
第 17 章 LIN-UART
図 17.5-1 ボーレート選択回路 ( リロードカウンタ )
リセット
スタートビット
立下りエッジ検出
リロード値 : v
Rxc = 0?
セット
受信
リロード
15 ビットリロードカウンタ
Rxc = v/2?
F/F
リセット
0
1
リロード値 : v
EXT
Txc = 0?
CLK
SCK
( 外部
クロック
入力 )
0
セット
送信
15 ビットリロードカウンタ リロード
1
カウンタ値 : TXC
Txc = v/2?
F/F
リセット
0
1
内部データバス
EXT
REST
OTO
572
SMR
レジスタ
受信クロック
B14
B13
B12
B11
B10
B09
B08
BGR1
レジスタ
B07
B06
B05
B04
B03
B02
B01
B00
BGR0
レジスタ
OTO
送信クロック
第 17 章 LIN-UART
ボーレートの設定
17.5.1
ボーレートの設定方法とシリアルクロック周波数の算出結果を示します。
■ ボーレートの算出
ボーレートジェネレータレジスタ (BGR) により 15 ビットリロードカウンタは設定され
ます。
ボーレートの算出には以下の数式を使用してください。
v = [φ/b] − 1
ここで , "φ" はマシンクロック周波数を , "b" はボーレートを示します。
● 算出例
マシンクロックが 16MHz で , 目的のボーレートが 19200bps の場合 , リロード値 "v" は
以下のようにして算出できます。
v = [16 × 106 / 19200] − 1 = 832
正確なボーレートは , 以下のように再計算してください。
bexact = φ/ (v + 1) = 16 × 106 / 833 = 19207.6831 bps
<注意事項>
リロード値を "0" に設定すると , リロードカウンタは停止します。したがって , 最小の分
周比は 2 分周となります。
573
第 17 章 LIN-UART
■ マシンクロック周波数ごとのボーレート設定例
表 17.5-1 に , マシンクロックごとのボーレート設定例を示します。
表 17.5-1 マシンクロックごとのボーレート設定例
9MHz
10MHz
18MHz
value
dev.
value
dev.
value
dev.
value
dev.
4M
−
−
−
−
−
−
4
0
2M
4
10.00
4
0.00
8
0.00
9
0
1M
8
0.00
9
0.00
17
0.00
19
0
500000
17
0.00
19
0.00
35
0.00
39
0
460800
−
−
−
−
38
−0.16
−
−
250000
35
0.00
39
0.00
71
0.00
79
0
230400
38
−0.16
−
−
77
−0.16
−
−
153600
58
0.69
64
−0.16
116
−0.16
129
−0.16
125000
71
0.00
79
0.00
143
0.00
159
0
115200
77
−0.16
86
0.22
155
−0.16
173
0.22
76800
116
−0.16
129
−0.16
233
−0.16
259
−0.16
57600
155
−0.16
173
0.22
312
0.16
346
−0.06
38400
233
−0.16
259
−0.16
468
0.05
520
0.03
28800
312
0.16
346
−0.06
624
0.00
693
−0.06
19200
468
0.05
520
0.03
937
0.05
1041
0.03
10417
863
0.00
959
0.00
1727
0.00
1919
0
9600
937
0.05
1041
0.03
1874
0.00
2083
0.03
7200
1249
0.00
1388
0.01
2499
0.00
2777
0.01
4800
1874
0.00
2082
−0.02
3749
0.00
4166
0.01
2400
3749
0.00
4166
0.01
7499
0.00
8332
0
1200
7499
0.00
8332
0.00
14999
0.00
16666
0
600
14999
0.00
16666
0.00
29999
0.00
−
−
300
29999
0.00
−
−
−
−
−
−
<注意事項>
偏差 (dev.) の単位は % です。
最大同期ボーレートは , マシンクロックの 5 分周です。
574
20MHz
ボー
レート
(bps)
第 17 章 LIN-UART
■ 外部クロックの使用
SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外
部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば
1.8432MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択する
ためにリロードカウンタを使用するように設計されています。
"1 対 1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信
号が LIN-UART シリアルクロック入力へ直接接続されます。これは , LIN-UART 同期
モード 2 でスレーブデバイスとして動作させるために必要です。
<注意事項>
いずれの場合においても , クロック信号は LIN-UART 内部で MCU クロックと同期化され
ます。これは分周できないクロック比は不安定な信号となることを意味します。
■ カウント例
図 17.5-2 に , リロードカウンタのカウント例を示します。ここではリロード値を 832 と
しています。
図 17.5-2 リロードカウンタのカウント例
送受信クロック
リロード
カウント
001
000
832
831
830
829
828
827
412
411
410
リロードカウント値
送受信クロック
リロード
カウント
417
416
415
414
413
<注意事項>
シリアルクロック信号の立下りエッジは常に , |(v + 1) / 2| 後です。
575
第 17 章 LIN-UART
17.5.2
リロードカウンタの再起動
リロードカウンタは下記の要因で再起動を行うことができます。
( 送信 / 受信リロードカウンタ双方 )
• MCU リセット
• LIN-UART ソフトウェアクリア (SMR の UPCL ビット )
• LIN-UART ソフトウェア再起動 (SMR の REST ビット )
( 受信リロードカウンタのみ )
• 非同期モードでのスタートビットの立下りエッジ
■ ソフトウェア再起動
シリアルモードレジスタ (SMR) の REST ビットが設定されると , 次のクロックサイク
ルで送信 / 受信リロードカウンタはともに再起動されます。この機能は , 送信リロード
カウンタをタイマとして使用するためです。
図 17.5-3 に , リロードカウンタ再起動例を示します。ここではリロード値を 100 とし
ています。
図 17.5-3 リロードカウンタ再起動例
動作クロック
リロードカウンタ
クロック出力
リセット
リロード値
37
36 35 100 99
98
97
96
95
94
93
92
91
90
89 88
87
BGR0/BGR1読出し
データバス
90
: 無効データ
この例では , REST 後の MCU クロックサイクル数 (cyc) は以下のようになります。
cyc = v − c + 1 = 100 − 90 + 1 = 11
ここで , "v" はリロード値を , "c" は読出しカウンタ値を意味します。
576
第 17 章 LIN-UART
<注意事項>
SMR の UPCL ビットにより LIN-UART がリセットされると , リロードカウンタも再起動
されます。
■ 自動再起動
非同期 LIN-UART モードでは , スタートビットの立下りエッジが検出されると , 受信リ
ロードカウンタは再起動されます。これはシリアル入力シフトレジスタを入力シリア
ルデータと同期化させるためです。
577
第 17 章 LIN-UART
17.6
LIN-UART の動作
LIN-UART は動作モード 0 では , 通常双方向シリアル通信として動作します。モード
2 およびモード 3 ではマスタあるいはスレーブとして双方向通信を行います。モー
ド 1 ではマスタあるいはスレーブとしてマルチプロセッサ通信を行います。
■ LIN-UART の動作
● 動作モード
LIN-UART にはモード 0 ∼モード 3 の 4 つの動作モードがあります。表 17.6-1 に , CPU
間接続方法とデータ転送に応じて選択可能な動作モードを示します。
表 17.6-1 LIN-UART の動作モード
データ長
動作モード
0 ノーマルモード
1 マルチプロセッサ
モード
2 ノーマルモード
3 LIN モード
パリティ
なし
パリティ
あり
7 ビット or 8 ビット
7 ビット or
8 ビット+
1 ビット *2
−
8 ビット
8 ビット
−
同期化
ストップ
ビット長
データ方向
*1
非同期
1 または 2 L/M
非同期
1 または 2 L/M
同期
0, 1 また
は2
L/M
非同期
1
L
*1 : 転送データの形式を意味します (LSB ファースト , MSB ファースト ) 。
*2 : " + 1" はマルチプロセッサモードで , パリティビットの代わりに付加されるアド
レス / データ部の表示ビットを意味します。
<注意事項>
モード 1 は , マスタ / スレーブ接続システムにおいて , LIN-UART のマスタ / スレーブいず
れの動作もサポートします。モード 3 での LIN-UART の機能は , 8N1 フォーマット , LSB
ファーストに固定されます。
モードが変更されると , LIN-UART はすべての送受信を停止し , 次の動作を開始します。
578
第 17 章 LIN-UART
■ CPU 間の接続方法
外部クロック "1 対 1" 接続 ( ノーマルモード ) とマスタ / スレーブ接続 ( マルチプロセッ
サモード ) を選択できます。いずれの接続においても , データ長 , パリティ有無 , 同期
化方法はすべての CPU で共通である必要があります。
下記に示すように動作モードを選択してください。
• "1 対 1" 接続では , 2 つの CPU を非同期転送モードの動作モード 0, または同期転送
モードの動作モード 2 に設定してください。同期モード 2 では , 必ず一方をマスタ ,
他方をスレーブとして設定してください。
• マスタ / スレーブ接続では動作モード 1 を選択し , マスタあるいはスレーブのいず
れかとして使用してください。
■ 同期化方法
非同期動作モードでは, LIN-UART受信クロックは自動的に受信スタートビットの立下
りエッジと同期化されます。
同期動作モードでは , マスタデバイスのクロック信号 , マスタとして動作している場合
は LIN-UART 自身により同期化されます。
■ シングルモード
LIN-UART はデータを NRZ (Non Return to Zero) 形式として扱います。
■ 動作許可ビット
LIN-UART は送信許可ビット (SCR の TXE ビット ) と受信許可ビット (SCR の RXE ビッ
ト ) を用いて送受信を制御します。動作が禁止された場合は , それぞれ以下のように停
止します。
• 受信 ( 受信シフトレジスタへのデータ入力 ) 中に受信動作が禁止されると , フレーム
受信が終了し , 受信データレジスタ (RDR) の受信データが読み出された後 , 受信動
作が停止します。
• 送信 ( 送信シフトレジスタからのデータ出力 ) 中に送信動作が禁止されると , 送信
データレジスタ (TDR) にデータが無くなるまで待ってから送信動作を停止します。
579
第 17 章 LIN-UART
非同期モードでの動作 ( 動作モード 0, 1)
17.6.1
動作モード 0 ( ノーマルモード ) あるいは動作モード 1 ( マルチプロセッサモード )
で LIN-UART が使用される場合は , 非同期転送モードが選択されます。
■ 転送データ形式
非同期動作モードでのデータ転送はスタートビット ("L" レベル ) で開始され , ストッ
プビット ( 最小 1 ビット , "H" レベル ) で終了します。ビットストリームの方向 (LSB
ファースト , MSB ファースト ) はシリアルステータスレジスタ (SSR) の BDS ビットに
より設定されます。パリティビットがありと設定されている場合は , 最終データビット
とストップビットとの間に配置されます。
動作モード 0 でのデータフレーム長は , パリティビットの代わりとなるアドレス / デー
タ区切りビットを含め , 7 ビットもしくは 8 ビットです。ストップビットは 1 ビットも
しくは 2 ビットを選択可能です。
転送フレームのビット長の計算式は以下のようになります。
ビット長= 1 + d + p + s
(d =データビット [7 ビットまたは 8 ビット ], p =パリティ [0 ビットまたは
1 ビット ], s =ストップビット [1 ビットまたは 2 ビット ])
図 17.6-1 転送データ形式 ( 動作モード 0, 1)
*1
動作モード0
ST
D0
D1
D2
D3
D4
D5
D6
D7/P
動作モード1
ST
D0
D1
D2
D3
D4
D5
D6
D7
*2
SP
AD
SP
SP
*1: D7 (bit 7) :パリティなしでデータ長が8ビットの場合
P (bit 7) :パリティありでデータ長が8ビットの場合
*2: SCRのSBLビットが"1"の場合
ST: スタートビット
SP: ストップビット
AD: アドレス/データ選択ビット(モード1)
<注意事項>
シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定 (MSB ファースト ) され
ると , ビットストリームは , D7, D6, … , D1, D0, (P) として処理されます。
ストップビットは2ビットが選択されている場合は, 受信中にどちらも検出されますが,
1 番目のストップビットで受信データフルフラグ (RDRF) は "1" になります。2 番目の
ストップビットの後 , 次のスタートビットが検出されないと , バスアイドルフラグ
(ECCR の RBI ビット ) が "1" となります。
580
第 17 章 LIN-UART
■ 送信動作
シリアルステータスレジスタ (SSR) の送信データレジスタエンプティフラグ (TDRE)
ビットが "1" に設定されると , 送信データレジスタ (TDR) へのデータ書込みが許可され
ます。データが TDR へ書き込まれると , TDRE フラグは "0" になります。シリアル制
御レジスタ (SCR) の TXE ビットにより送信動作が許可されると , 送信シフトレジスタ
へデータが書き込まれ , 次のシリアルクロックサイクルでスタートビットを始めとし
て送信が開始されます。それにより , TDRE フラグは "1" となり , TDR へ次のデータを
書くことができるようになります。
送信割込みが許可されている場合 (TIE = 1 は , TDRE フラグにより割込みが生成され
ます。TDRE フラグの初期値は "1" ですので , TIE ビットが "1" に設定されると割込み
が直ちに発生します。
ビット長が 7 ビットに設定されている場合 (CL = 0) は , BDS ビットによるビット方向
の設定 (LSB ファースト , MSB ファースト ) によらず , TDR の最上位ビット (MSB) が
未使用ビットとなります。
■ 受信動作
SCR の RXE フラグビットにより受信動作が許可されると受信動作が実行されます。ス
タートビットが検出されると , SCR で指定した形式に応じてデータフレームが受信さ
れます。エラーが発生すると , 対応するエラーフラグ (PE, ORE, FRE) が設定されます。
データフレーム受信後は , データはシリアルシフトレジスタから受信データレジスタ
(RDR) へ転送され , SSR の受信データレジスタフルフラグ (RDRF) ビットが設定されま
す。RDRF フラグをクリアするために , 必ず CPU から RDR を読み出してください。受
信割込みが許可されている場合 (RIE = 1) は , RDRF により割込みが生成されます。
データ長が 7 ビットに設定されている場合 (CL = 0) は , BDS ビットによるビット方向
の設定 (LSB ファースト , MSB ファースト ) によらず , RDR の最上位ビット (MSB) が
未使用ビットとなります。
<注意事項>
RDRF フラグがセットされてもエラーが発生していなければ , 受信データレジスタ (RDR)
のデータは有効です。
受信バスレベルが "H" の期間は , 受信許可フラグ (RXE) を "1" に設定してください。
■ ストップビット
送信時には , ストップビットを 1 ビットあるいは 2 ビット選択可能です。受信時に 2
ビットが設定されていると , 2 ビットとも検出されます。これは 2 番目のストップビッ
トの後で , ECCR の受信バスアイドル (RBI) フラグを適切に設定するためです。
■ エラー検出
モード 0 では , パリティエラー , オーバランエラー , フレーミングエラーを検出できま
す。
モード 1 では , オーバランエラー , フレーミングエラーを検出できます。このモードで
は , パリティはありません。
581
第 17 章 LIN-UART
■ パリティ
モード 0 ( およびモード 2 において , ECCR の SSM ビットが設定されている場合 ) では ,
シリアル制御レジスタ (SCR) のパリティ許可 (PEN) ビットにより , LIN-UART はパリ
ティ計算 ( 送信時 ) , パリティ検出および確認 ( 受信時 ) を実行します。
SCR の P ビットにより , 奇数パリティ , 偶数パリティが設定されます。
582
第 17 章 LIN-UART
17.6.2
同期モードでの動作 ( 動作モード 2)
LIN-UART 動作モード 2 ( ノーマルモード ) では , クロック同期転送が使用されます。
■ 転送データ形式
同期モードでは , 拡張通信制御レジスタ (ECCR) の SSM ビットが "0" であれば , スター
ト / ストップビットなしで 8 ビットデータが転送されます。モード 2 でのデータ形式
はクロック信号に依ります。
図 17.6-2 に , 転送データ形式 ( 動作モード 2) を示します。
図 17.6-2 転送データ形式 ( 動作モード 2)
送受信データ
(ECCR:SSM=0, SCR:PEN=0)
送受信データ
(ECCR:SSM=1, SCR:PEN=0)
送受信データ
(ECCR:SSM=1, SCR:PEN=1)
D0
ST
ST
D1
D0
D0
D2
D1
D1
D3
D2
D2
D4
D3
D3
D5
D4
D4
D6
D5
D5
D7
D6
D6
D7
D7
SP
P
*
SP
SP
*
SP
*: 2ストップビットに設定した場合(SCR: SBLビット =1)
ST: スタートビット
SP: ストップビット
P: パリティビット
■ モード 2 でのクロック反転とスタート / ストップビット
拡張ステータス・制御レジスタ (ESCR) の SCES ビットが設定されている場合は , シリ
アルクロックは反転します。したがって , スレーブモードでは , 受信シリアルクロック
の立下りエッジでデータを取り込みます。マスタモードで SCES ビットが設定される
と , クロック信号のマークレベルが "0" となります。拡張通信制御レジスタ (ECCR) の
SSM ビットが設定されると , 非同期モードのようにデータフォーマットにスタート
ビットとストップビットが付加されます。
図 17.6-3 クロック反転時の転送データ形式
マーク
レベル
送受信クロック
(SCES = 0, CCO = 0):
送受信クロック
(SCES = 1, CCO = 0):
送受信データ (SSM = 1)
(パリティなし, 1 ストップビット)
マーク
レベル
ST
SP
データフレーム
583
第 17 章 LIN-UART
■ クロック供給
クロック同期モード ( ノーマルモード ) では , 送信ビット数および受信ビット数はク
ロックサイクルと等しくなります。調歩同期通信が設定されていると , クロックサイク
ル数はスタート / ストップビットを追加したものと一致します。
内部クロックが選択 ( 専用リロードタイマ ) されていると , クロック同期で受信してい
るデータは , データが送信されると自動的に生成されます。
外部クロックが選択されていると , 送信データレジスタにデータを格納し , 送信される
ビットごとのクロックサイクルは外部から供給 , 生成されます。SCES が "0" の場合 ,
マークレベル ("H") は , 送信開始以前および送信完了後に保持されます。
クロックのどの立下りエッジでも送信データが有効かつ安定するように , ECCR の
SCDE ビットの設定により , 送信クロック信号は 1 マシンサイクル遅延されます ( 受信
デバイスがクロックの立上りあるいは立下りエッジでデータを取り込む場合に必要で
す )。この機能は , CCO が設定されていると停止します。
図 17.6-4 遅延送信クロック信号 (SCDE = 1)
送信データ書込み
受信データサンプリングポイント(SCES = 0)
マークレベル
送受信クロック(通常)
マークレベル
送信クロック
(SCDE = 1)
マークレベル
送受信データ
0
1
1
0
LSB
1
0
0
データ
1
MSB
ESCR のシリアルクロックエッジ選択 (SCES) ビットが設定されていると , LIN-UART ク
ロックは反転し , クロックの立下りエッジで受信データを取り込みます。この場合は ,
クロックの立下りエッジで必ず有効なシリアルデータとしてください。
マスタモードでは , 拡張ステータス・制御レジスタ (ESCR) の CCO ビットが設定され
ると , SCK 端子からシリアルクロックは継続的に出力されます。このモードでは , 受信
側にデータフレームの開始と終了を明示するために , スタートビットとストップビッ
トを使用するようにしてください。図 17.6-5 に , モード 2 での継続クロック出力を示
します。
図 17.6-5 モード 2 での継続クロック出力
送受信クロック
(SCES = 0, CCO = 1):
送受信クロック
(SCES =1, CCO = 1):
送受信データ (SSM=1)
(パリティなし, 1 ストップビット)
ST
SP
データフレーム
584
第 17 章 LIN-UART
■ エラー検出
スタート / ストップビットを使用しない場合 (ECCR の SSM = 0) は , オーバランエラー
のみが検出されます。
■ 通信
同期通信モードの初期化には , 以下の設定を行ってください。
• ボーレートジェネレータレジスタ (BGR)
専用ボーレートリロードカウンタへのリロード値の設定
• シリアルモードレジスタ (SMR)
MD1, MD0 : "10B" ( モード 2)
:"1" ( 専用ボーレートリロードカウンタ使用 )
SCKE
"0" ( 外部クロック入力 )
• シリアル制御レジスタ (SCR)
RXE, TXE
: フラグビットを "1" に設定
SBL, AD
: ストップビットなし , アドレス / データ区切りなし , 値は無効
CL
: 自動的に 8 ビット固定 , 値は無効
CRE
: "1" (初期化のためエラーフラグはクリアされ, 送信/受信は停止)
SSM = 0 の場合 : パリティなし , PEN, P の設定値は無効
SSM = 1 の場合 : PEN, P の設定値は有効
• シリアルステータスレジスタ (SSR)
BDS
: "0" (LSB ファースト ) , "1" (MSB ファースト )
RIE
: "1" ( 割込み許可 ) , "0" ( 割込み禁止 )
TIE
: "1" ( 割込み許可 ) , "0" ( 割込み禁止 )
• 拡張通信制御レジスタ (ECCR)
SSM :"0" ( スタート / ストップビットなし , 通常 )
"1" ( スタート / ストップビットあり , 特殊 )
MS :"0" ( マスタモード , LIN-UART がシリアルクロックを生成 )
"1" ( スレーブモード , LIN-UART はシリアルクロックを外部から受信 )
通信を開始するには , 送信データレジスタ (TDR) へデータを書き込んでください。受
信のみを行う場合には SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へ
ダミーデータを書き込んでください。
<注意事項>
非同期モード時と同様に , 継続クロック , スタート / ストップビット , 双方向通信が可能
です。
585
第 17 章 LIN-UART
17.6.3
LIN 機能での動作 ( 動作モード 3)
LIN-UART は LIN マスタデバイス , LIN スレーブデバイスいずれとしても使用可能で
す。LIN 機能にはモード 3 が割り当てられています。LIN-UART をモード 3 に設定
すると , データ形式は 8N1, LSB ファーストとなります。
■ LIN マスタとしての UART
LIN マスタモードでは , マスタがバス全体のボーレートを決めるため , スレーブデバイ
スはマスタと同期されます。したがって , 初期化後のマスタ動作で設定されたボーレー
トは保持されます。
拡張通信制御レジスタ (ECCR) の LBR ビットへ "1" を書き込むと , SOT 端子へ 13 ∼ 16
ビットタイムの "L" レベルを出力します。これは LIN-Sync-Break と LIN メッセージの
開始です。
これにより , シリアルステータスレジスタ (SSR) の TDRE フラグは "0" となり , ブレー
ク後"1"に初期化され, SSRのTIEビットが"1"の場合はCPUへ送信割込みを出力します。
出力される Sync-Break 長は , ESCR の LBL1, LBL0 ビットで表 17.6-2 のように設定でき
ます。
表 17.6-2 LIN-Break 長
LBL1
LBL0
0
0
13 ビットタイム
0
1
14 ビットタイム
1
0
15 ビットタイム
1
1
16 ビットタイム
Break 長
Synch-Field は , LIN-Break 後に 1 バイト "55H" として送信できます。送信割込みを
避けるために , TDRE フラグが "0" であっても LBR への "1" を書き込むと , TDR へ
"55H" を書き込むことができます。送信シフトレジスタは LIN-Break が終了するま
で待った後 , TDR 値のシフトを行います。この場合 , LIN-Break 後でスタートビッ
ト以前では割込みは生成されません。
586
第 17 章 LIN-UART
■ LIN スレーブとしての UART
LIN スレーブモードでは , LIN-UART はマスタのボーレートに同期します。受信が禁止
(RXE = 0) されて LIN-Break 割込みが許可 (LBIE = 1) されている場合に , LIN マスタ
の Synch-Break が検出されて ESCR の LBD フラグがそれを示すと , LIN-UART は受信
割込みを生成します。このビットに "0" を書き込むと割込みはクリアされます。
次に LIN マスタのボーレートの解析をします。Synch-Field の最初の立下りエッジが
LIN-UART で検出されます。LIN-UART は内部信号を経由してインプットキャプチャ
(ICU) へ伝え , 5 回目の立下りエッジで ICU への信号をリセットします。したがって ,
ICU を LIN インプットキャプチャとして設定し , ICU の割込みを許可状態にする必要
があります。ICU への信号が "1" である時間が , 8 分周された LIN マスタの正確なボー
レートです。
ボーレート設定値は下記のようになります。
タイマオーバフローなし : BGR 値= (b − a) / 8
タイマオーバフローあり : BGR 値= (Max + b − a) / 8
ここで , "Max" はタイマの最大値 , "a" は最初の割込み後の ICU カウンタレジスタの値 ,
"b" は 2 回目の割込み後の ICU カウンタレジスタの値を意味します。
587
第 17 章 LIN-UART
■ LIN-Synch-Break 検出割込みとフラグ
スレーブモードで LIN-Synch-Break が検出されると , ESCR の LIN-Break 検出 (LBD) フ
ラグが "1" に設定されます。LIN-Break 割込み許可 (LBIE) ビットが設定されていると ,
これは割込み要因となります。
図 17.6-6 に , LIN-Synch-Break 検出とフラグセットタイミングを示します。
図 17.6-6 LIN-Synch-Break 検出とフラグセットタイミング
シリアル
クロック番号
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
シリアル
クロック
シリアル
入力
(LINバス)
FRE
(RXE=1)
LBD
(RXE=0)
RXE=1の場合に受信割込みを発生
RXE=0の場合に受信割込みを発生
受信許可状態 (RXE = 1) で受信割込みが許可 (RIE = 1) されている場合は , LIN-Break
割込みより 2 ビットタイム ("8N1") 早く SSR の受信データフレーミングエラー (FRE)
フラグビットが受信割込み要因となりますので , LIN-Break を使用する場合は , RXE を
"0" にしてください。
LBD は動作モード 0 および動作モード 3 で使用可能です。
図 17.6-7 LIN スレーブモードでの UART の動作
シリアル
クロック
シリアル入力
(LINバス)
CPUによる
LBRクリア
LBD
ICU入力
Synch-Break (14ビット設定の場合)
588
Synch-Ffield
第 17 章 LIN-UART
■ LIN バスタイミング
図 17.6-8 LIN バスタイミングと UART の信号
前回のシリアルクロック
クロックなし
( 計算フレーム )
新たに計算された
シリアルクロック
ICU カウント
LIN バス
(LSYN)
RXE
LBD
(IRQ0)
LBIE
ICU 入力
IRQ (ICU)
RDRF
(IRQ0)
RIE
CPU による
RDR 読出し
受信割込み許可
LIN break 開始
LIN break 検出 , 割込み発生
CPU による IRQ クリア (LBD->0)
IRQ (ICU)
IRQ クリア : ICU スタート
IRQ (ICU)
IRQ クリア : ボーレートを計算して設定
LBIE ディセーブル
受信イネーブル
スタートビットの立下りエッジ
受信データ 1 バイト RDR に保存
CPU による RDR 読出し
589
第 17 章 LIN-UART
シリアル端子への直接アクセス
17.6.4
LIN-UART は送信端子 (SOT), 受信端子 (SIN) の値を直接アクセスすることができま
す。
■ LIN-UART 端子直接アクセス
LIN-UARTにはシリアル入力端子/シリアル出力端子の値をソフトウェアで直接アクセ
スする機能があります。ESCR の SIOP ビットの読出しにより , シリアル入力データを
モニタできます。ESCR のシリアル出力端子直接アクセス許可 (SOPE) ビットが設定さ
れると , ソフトウェアにて SOT 端子の出力値を固定できます。これは送信シフトレジ
スタが空 , 例えば送信動作なしのときにのみ可能です。
LIN モードでは , この機能は自身の送信データを読み戻すために用いられます。単ワイ
ヤ LIN バス上に物理的な不具合がある場合は , エラー処理にも使用されます。
<注意事項>
SIOP には最後に書き込まれた値が保持されます。不要なエッジ出力を防ぐために出力端
子へのアクセスを設定する前に SIOP へ値を書き込んでください。
SIOP ビットへのリードモディファイライト (RMW) 系命令では SOT 端子の値が返されま
す。通常の読出し命令では , SIN の値が返されます。
590
第 17 章 LIN-UART
17.6.5
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 では通常のシリアル双方向通信が可能です。非同期通信には動作
モード 0 を , 同期通信には動作モード 2 を選択してください。
■ 双方向通信機能
図 17.6-9 に , 動作モード 0, 2 での LIN-UART の設定を示します。
図 17.6-9 動作モード 0, 2 での LIN-UART の設定
bit 15
SCR, SMR
PEN
モード 0 → ◎
14
13
12
11
10
P
SBL
CL
AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
◎
◎
◎
×
0
モード 2 → □
□
□
+
×
0
bit 15
14
13
12
11
10
SSR,
TDR/RDR
9
8
7
6
◎
0
0
◎
◎
1
0
9
8
7
6
◎
PE ORE FRE RDRF TDRE BDS RIE
◎
◎
◎
◎
◎
◎
◎
モード 2 → □
◎
□
◎
◎
◎
◎
◎
bit 15
14
13
12
11
10
9
8
0
4
3
2
1
0
0
0
0
1
◎
◎
◎
0
0
◎
◎
5
4
3
2
1
0
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
TIE
モード 0 → ◎
5
7
6
5
4
3
2
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE
1
0
RBI
TBI
モード 0 → ◎
◎
◎
◎
◎
◎
×
×
◎
×
×
×
◎
◎
◎
モード 2 → ×
×
×
×
◎
◎
◎
◎
×
◎
◎
◎
□
□
□
◎ : 使用ビット
× : 未使用ビット
1: "1" を設定
0: "0" を設定
□ : SSM = 1 の場合に使用 ( 同期スタート / ストップビット )
+ : 自動的に正しく設定されるビット
■ CPU 間の接続
図 17.6-10 に , LIN-UART 動作モード 2 双方向通信の接続例を示します。
図 17.6-10 LIN-UART 動作モード 2 双方向通信の接続例
SOT
SOT
SIN
SIN
SCK
CPU-1 (マスタ)
出力
入力
SCK
CPU-2 (スレーブ)
591
第 17 章 LIN-UART
17.6.6
マスタ / スレーブ通信機能 ( マルチプロセッサモード )
マスタ / スレーブモードでは , マスタ / スレーブいずれのシステムにおいても複数の
CPU との LIN-UART 通信が可能です。
■ マスタ / スレーブ通信機能
図 17.6-11 に , 動作モード 1 での LIN-UART の設定を示します。
図 17.6-11 動作モード 1 での LIN-UART の設定
bit 15
14
13
12
11
P
SBL
CL
AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
モード 1 → +
×
◎
◎
◎
0
◎
◎
0
1
0
0
0
0
1
◎
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SCR, SMR
SSR,
TDR/RDR
PEN
10
9
PE ORE FRE RDRF TDRE BDS RIE
8
7
◎
◎
◎
◎
◎
◎
◎
bit 15
14
13
12
11
10
9
8
5
4
3
2
7
6
5
4
3
2
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE
モード 1 → ×
×
×
×
◎
◎
×
1
0
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
TIE
モード 1 → ×
6
×
×
×
×
×
◎
1
0
RBI
TBI
◎
◎
◎ : 使用ビット
× : 未使用ビット
1: "1" を設定
0: "0" を設定
+ : 自動的に正しく設定されるビット
■ CPU 間の接続
図 17.6-12 に , LIN-UART マスタ / スレーブ通信の接続例を示します。LIN-UART はマ
スタとしてもスレーブとしても使用できます。
図 17.6-12 LIN-UART マスタ / スレーブ通信の接続例
SOT
SIN
マスタCPU
SOT
SIN
スレーブCPU #0
592
SOT
SIN
スレーブCPU #1
第 17 章 LIN-UART
■ 機能部
マスタ / スレーブ通信用に , 以下のように動作モードとデータ転送モードを設定してく
ださい。
表 17.6-3 マスタ / スレーブ通信機能の設定
動作モード
マスタ
CPU
アドレス
送受信
データ
送受信
スレーブ
CPU
データ
AD = 1 + 7
ビットまたは
8 ビットアド
モード 1
モード 1
レス
(AD ビット (AD ビット
送受信 ) AD = 0 + 7
送受信 )
ビットまたは
8 ビットデー
タ
パリティ 同期方法
なし
非同期
ストップ
ビット
ビット方向
1 ビット LSB ファースト
または
または
2 ビット MSB ファースト
■ 通信手順
マスタ CPU がアドレスデータを送信すると , 通信が開始されます。アドレスデータの
AD ビットは "1" に設定され , 通信対象の CPU が選択されます。それぞれのスレーブ
CPU はそのアドレスデータを確認します。アドレスデータがスレーブ CPU に割り当て
られたアドレスを示すと, そのスレーブCPUはマスタCPUと通信します (通常モード) 。
以下に , マスタ / スレーブ通信 ( マルチプロセッサモード ) のフローチャートを示しま
す。
593
第 17 章 LIN-UART
図 17.6-13 マスタ / スレーブ通信のフローチャート
( マスタ CPU)
( スレーブ CPU)
開始
開始
動作モード 1 に設定
動作モード 1 に設定
SIN 端子をシリアルデータ
入力に設定
SOT 端子をシリアルデータ
出力に設定
SIN 端子をシリアルデータ
入力に設定
SOT 端子をシリアルデータ
出力に設定
7 または 8 データビット長に設定
1 または 2 ストップビット長に設定
7 または 8 データビット長に設定
1 または 2 ストップビット長に設定
AD ビットに "1" を設定
送受信動作許可
送受信動作許可
受信バイト
スレーブへアドレスを送信
AD ビット= 1?
待機
NO
YES
バスアイドル
割込み
スレーブアドレス
は一致 ?
AD ビットに "0" を設定
NO
YES
マスタ CPU と通信
スレーブ CPU と通信
通信終了 ?
NO
YES
ほかのスレーブ
CPU と通信 ?
YES
NO
YES
送受信動作禁止
終了
594
通信終了 ?
NO
第 17 章 LIN-UART
LIN 通信機能
17.6.7
LIN マスタ , LIN スレーブ , いずれのシステムにおいても , LIN デバイスとの LINUART 通信が可能です。
■ LIN マスタ / スレーブ通信機能
図 17.6-14 に , 動作モード 3 (LIN) での LIN-UART の設定を示します。
図 17.6-14 動作モード 3 (LIN) での LIN-UART の設定
bit 15
14
13
12
11
P
SBL
CL
AD CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
モード 3 → +
×
+
+
×
0
◎
◎
1
1
0
0
0
0
1
◎
bit 15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
SCR, SMR
PEN
SSR,
TDR/RDR
10
9
PE ORE FRE RDRF TDRE BDS RIE
8
7
◎
◎
◎
◎
+
◎
◎
bit 15
14
13
12
11
10
9
8
5
4
3
2
7
6
5
4
3
2
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS 予約 LBR MS SCDE SSM BIE
モード 3 → ◎
◎
◎
◎
◎
◎
×
0
1
0
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
TIE
モード 3 → ×
6
◎
×
×
×
◎
1
0
RBI
TBI
◎
◎
◎ : 使用ビット
× : 未使用ビット
1: "1" を設定
0: "0" を設定
+ : 自動的に正しく設定されるビット
■ LIN デバイスの接続
図 17.6-15 に , LIN バスシステムの接続例を示します。
LIN-UART は LIN マスタ , LIN スレーブ , いずれとしても設定可能です。
図 17.6-15 LIN バスシステムの接続例
SOT
SOT
LINバス
SIN
LINマスタ
SIN
シングルワイヤ
トランシーバ
シングルワイヤ
トランシーバ
LINスレーブ
595
第 17 章 LIN-UART
17.6.8
LIN 通信モード ( 動作モード 3)
UART サンプルフローチャート
LIN 通信モードにおける LIN-UART のフローチャート例を示します。
■ マスタデバイスとしての LIN-UART
図 17.6-16 LIN マスタモードでの LIN-UART フローチャート
開始
初期化:動作モードを3に設定
(データ長8ビット,パリティなし,
1ストップビット)
TIE = 0, RIE = 0
メッセージ送信?
NO
YES
スリープモード送信
TDR = 80H
TIE = 0
Synch Break送信:
ECCRに"1"書込み:
LBR, TIE = 1;
Synch Field送信:
TDR = 55H
CPUからの
ウェイクアップ?
スリープ
モード送信?
NO
ウェイクアップコード送信
RIE = 0
YES TIE = 1
TDR = 80H
RIE = 1
YES
NO
ID Field送信: TDR = Id
スレーブへ
の書込み?
NO
YES
NO
TIE = 0
RIE = 1
スレーブからデータ読出し
RIE = 0
596
00H, 80H
または C0H 受信 ?
TIE = 1
スレーブへのデータ
書込み
TIE = 0
YES
RIE = 0
エラー発生?
YES
エラーハンドラ
NO
第 17 章 LIN-UART
■ スレーブデバイスとしての LIN-UART
図 17.6-17 LIN スレーブモードでの LIN-UART フローチャート
開始
A
B
初期化:
動作モードを3に設定
(8N1データフォーマット)
C
エラー発生?
RIE = 0; LBIE = 1;
RXE = 0
NO
スレーブ
アドレス一致?
NO
C
E
YES
YES
マスタの
送信要求?
スレーブ
動作待ち
LBD = 1
LIN Break割込み
NO
YES
LINマスタからの
メッセージ待ち
LIN Break割り込み要因
(ESCR.LBDに“0”書き込み)
ICU割込み許可(両エッジ)
データ+チェック
サム受信
80H受信?
(スリープモード)
NO
S
RIE = 0
TIE = 1
チェックサム
計算
データ送信
(次ページへ)
スレーブ
動作待ち
TIE = 0
YES
B
ICU割込み
ICUデータ読出し
ICU割込みフラグクリア
スレーブ
動作待ち
C
マスタの
送信要求?
NO
YES
C
ICU割込み
ICUデータ読出し
新ボーレート計算
リロードカウンタに設定
割込みクリア
スレーブ
動作待ち
バスアイドル
割込み
E
エラーハンドラ
C
ID受信
RIE = 1; RXE = 1
A
( 続く )
597
第 17 章 LIN-UART
( 続き )
S
CPUからの
ウェイクアップ?
NO
ウェイクアップ
コード送信
RIE = 0
TIE = 1
TDR = 80H
YES
RIE = 1
NO
598
00H, 80H
またはC0H
受信?
TIE = 0
YES
RIE = 0
C
第 17 章 LIN-UART
17.7
LIN-UART 使用上の注意事項
LIN-UART 使用時における注意事項を示します。
■ 動作設定
LIN-UART のシリアル制御レジスタ (SCR) には , TXE ( 送信 ) , RXE ( 受信 ) 動作許可
ビットがあります。これらのビットの初期値は停止状態となっているので , 送信 / 受信
いずれの動作においても転送開始前にこれらのビットを設定してください。ビットの
設定を禁止状態とすることで , 転送を中断することができます。
ISO9141 (LIN バスシステム ) のような単一バスシステムにおいては , 単方向通信である
ため , これらの 2 ビットを同時には設定しないでください。受信は自動的に実行される
ので , LIN-UART により送信されたデータは LIN-UART 自身も受信します。
■ 通信モードの設定
通信モードの設定は , システムが非動作中に行ってください。送信 / 受信中に動作モー
ドが変更されると , 送信 / 受信は停止し , 転送データは失われます。
■ 送信割込み許可タイミング
送信データエンプティフラグビット (SSR の TDRE ビット ) の初期値は "1" ( 送信デー
タがなく , 送信データ書込み許可状態 ) です。送信割込み要求は , 送信割込み要求が許
可 (SSR の TIE ビットが "1") されると直ちに生成されます。この割込みを発生させな
いためには , TDR レジスタへの送信データ書込み後に TIE フラグを "1" に設定してく
ださい。
■ 動作モード 3 における LIN の使用
LIN の機能はモード 0 でも使用可能です ( 送信 , 受信ブレーク ) が , 動作モードをモー
ド 3 に設定すると , LIN-UART のデータ形式が LIN の形式 (8N1, LSB ファースト ) に自
動的に設定されます。LIN-UART の LIN バスプロトコルへの適用は動作モードをモー
ド 3 に設定してください。ブレークの送信時間は変更可能ですが , 最低 11 シリアルビッ
トタイムが必要です。
■ 動作設定の変更
LIN-UART の動作設定を変更した場合は , 必ず LIN-UART をリセットしてください。特
に同期モード 2 でのスタート / ストップビットの有無に注意してください。
シリアルモードレジスタ (SMR) の設定を行う場合は , LIN-UART の再設定と UPCL ビッ
トの設定を同時にはできません。この場合 , LIN-UART が正常に動作しないことがあり
ます。SMR のビットを設定してから , UPCL ビットをセットするようにしてください。
■ LIN スレーブの設定
LIN スレーブとして LIN-UART を初期化する場合は , 必ずボーレートを最初の LIN 同
期ブレーク受信前に設定してください。これは最低 13 ビットタイムの LIN 同期ブレー
ク検出を確実にするためです。
599
第 17 章 LIN-UART
■ ソフトウェア互換
この LIN-UART は従来の MCU に搭載されているものに類似していますが , ソフトウェ
アには互換性はありません。プログラミングモデルはほぼ同じですが , レジスタ構成は
異なります。さらにボーレートは既定値から選択するのではなく , リロード値で設定す
るようになっています。
■ バスアイドル機能
同期モード 2 では , バスアイドル機能は使用できません。
■ シリアル制御レジスタ (SCR) の AD ビット
シリアル制御レジスタ (SCR) の AD ビット ( マルチプロセッサモードでのアドレス /
データビット ) を使用する際には下記のことに注意してください。
読み出すと最後に受信した AD ビットを返しますが , 書込みは送信時の AD ビットを設
定します。したがって , AD ビットは制御ビットでありフラグビットでもあります。内
部的には受信データと送信データはそれぞれ別のレジスタへ格納されますが , リード
モディファイライト (RMW) 系命令では , 受信データが読み出され , データ操作後 , 送
信データとして書き込まれます。この種の命令で同じレジスタのビットがアクセスさ
れると , AD ビットに誤った値が設定されることがあります。
そのため , このビットへの書込みアクセスは送信前に行ってください。あるいは , バイ
トアクセスですべてのビットを一度に正しく設定してください。また , AD ビットは送
信データレジスタのようにはデータを保持しません。
送信動作中にこのビットを更新すると , 送信中のデータの AD ビットが変更されます。
600
第 18 章
I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
18.1 I2C インタフェースの概要
18.2 I2C インタフェースのレジスタ
18.3 I2C インタフェースの動作説明
18.4 動作フローチャート
601
第 18 章 I2C インタフェース
18.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ
ス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの特長
I2C インタフェースの特長は , 以下のとおりです。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• 再起動条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード ( 最大 100kbps)/ 高速モード ( 最大 400kbps) に対応
602
第 18 章 I2C インタフェース
■ I2C インタフェースのレジスタ一覧
I2C インタフェースのレジスタ一覧は , 以下のとおりです。
• バスステータスレジスタ (IBSR)
図 18.1-1 バスステータスレジスタ (IBSR) のビット構成
IBSR
アドレス : 0000D1H, 0000DDH bit 7
6
5
4
3
2
1
0
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
000369H
• バス制御レジスタ (IBCR)
図 18.1-2 バス制御レジスタ (IBCR) のビット構成
IBCR
アドレス : 0000D0H, 0000DCH bit 15
14
13
12
11
10
9
8
000368H BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
リード / ライト
(R/W)
(R/W)
(W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
• クロック制御レジスタ (ICCR)
図 18.1-3 クロック制御レジスタ (ICCR) のビット構成
ICCR
アドレス : 0000DAH, 0000E6H bit 15
14
13
12
11
10
9
8
予約
NSF
EN
CS4
CS3
CS2
CS1
CS0
リード / ライト
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(−)
(0)
(0)
(1)
(1)
(1)
(1)
(1)
000372H
• 10 ビットスレーブアドレスレジスタ (ITBA)
図 18.1-4 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成
ITBAH
アドレス : 0000D2H, 0000DEH bit 15
14
13
12
11
10
9
8
予約
予約
予約
予約
予約
予約
TA9
TA8
リード / ライト
(−)
(−)
(−)
(−)
(−)
(−)
(R/W)
(R/W)
初期値
(−)
(−)
(−)
(−)
(−)
(−)
(0)
(0)
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
00036AH
ITBAL
アドレス : 0000D3H, 0000DFH bit 7
00036BH
603
第 18 章 I2C インタフェース
• 10 ビットスレーブアドレスマスクレジスタ (ITMK)
図 18.1-5 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成
ITMKH
アドレス : 0000D4H, 0000E0H bit 15
14
13
12
11
10
9
8
00036CH ENTB
RAL
予約
予約
予約
予約
TM9
TM8
リード / ライト
(R/W)
(R)
(−)
(−)
(−)
(−)
(R/W)
(R/W)
初期値
(0)
(0)
(−)
(−)
(−)
(−)
(1)
(1)
6
5
4
3
2
1
0
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
ITMKL
アドレス : 0000D5H, 0000E1H bit 7
00036DH
• 7 ビットスレーブアドレスレジスタ (ISBA)
図 18.1-6 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成
ISBA
アドレス : 0000D7H, 0000E3H bit 7
6
5
4
3
2
1
0
予約
SA6
SA5
SA4
SA3
SA2
SA1
SA0
リード / ライト
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(−)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
00036FH
• 7 ビットスレーブアドレスマスクレジスタ (ISMK)
図 18.1-7 7 ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成
ISMK
アドレス : 0000D6H, 0000E2H bit 15
14
13
12
11
10
9
8
00036EH 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)
• データレジスタ (IDAR)
図 18.1-8 データレジスタ (IDAR) のビット構成
IDAR
アドレス : 0000D9H, 0000E5H bit 7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
000371H
604
第 18 章 I2C インタフェース
■ I2C インタフェースのブロックダイヤグラム
図 18.1-9 に , I2C インタフェースのブロックダイヤグラムを示します。
図 18.1-9 I2C インタフェースのブロックダイヤグラム
ICCR
EN
I2C 動作許可
ICCR
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
クロック分周2
2345
32
R-bus
シフトクロック発生
クロック選択2(1/12)
シフトクロック
エッジ変化タイミング
バスビジー
リピート
スタート
ラストビット
LRB
TRX
Sync
スタート・ストップ
コンディション検出
エラー
送信/受信
ファーストバイト
ADT
アービトレーションロスト検出
AL
IBCR
SCLI
SCLO
BER
BEIE
割込み要求
IRQ
INTE
SDA
SDAO
INT
IBCR
SCC
MSS
ACK
終了
スタート
マスタ
ACK許可
スタート・ストップ
コンディション発生
GC-ACK許可
GCAA
IDAR
IBSR
スレーブ
AAS
グローバル
コール
GCA
スレーブ
アドレス
比較
ISMK
ENSB
ITMK
ENTB
RAL
ITBA
ITMK
ISBA
ISMK
605
第 18 章 I2C インタフェース
18.2
I2C インタフェースのレジスタ
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ I2C インタフェースのレジスタ概要
I2C インタフェースには , 次の 8 種類のレジスタがあります。
• バスステータスレジスタ (IBSR)
• バス制御レジスタ (IBCR)
• クロック制御レジスタ (ICCR)
• 10 ビットスレーブアドレスレジスタ (ITBA)
• 10 ビットスレーブアドレスマスクレジスタ (ITMK)
• 7 ビットスレーブアドレスレジスタ (ISBA)
• 7 ビットスレーブアドレスマスクレジスタ (ISMK)
• データレジスタ (IDAR)
606
第 18 章 I2C インタフェース
18.2.1
バスステータスレジスタ (IBSR)
バスステータスレジスタ (IBSR) には , 以下の機能があります。
• バスビジー検出
• 再起動条件検出
• アービトレーションロスト検出
• アクノリッジ検出
• データ転送方向表示
• スレーブアドレッシング検出
• ゼネラルコールアドレス検出
• アドレスデータ転送検出
■ バスステータスレジスタ (IBSR)
図 18.2-1 に , バスステータスレジスタ (IBSR) のレジスタ構成を示します。
図 18.2-1 バスステータスレジスタ (IBSR) のレジスタ構成
IBSR
アドレス : 0000D1H, 0000DDH bit 7
6
5
4
3
2
1
0
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
000369H
このレジスタは読出し専用です。レジスタのビットはすべてハードウェアにより自動
的に制御されます。I2C インタフェースが有効でない場合 (ICCR レジスタの EN ビット
が "0") は , このレジスタのビットはすべてクリア状態となります。
[bit7] BB : バスビジービット
I2C バスの状態を示すビットです。
BB
内 容
0
停止条件を検出した [ 初期値 ]
1
起動条件を検出した ( バス使用中 )
607
第 18 章 I2C インタフェース
[bit6] RSC : 再起動条件ビット
再起動条件検出ビットです。
RSC
内 容
0
再起動条件は検出されていない [ 初期値 ]
1
再起動条件を検出した
このビットは , スレーブアドレス転送終了 (ADT = 0), または停止条件の検出でクリ
アされます。
[bit5] AL : アービトレーションロスト検出ビット
アービトレーションロスト検出ビットです。
AL
内 容
0
アービトレーションロストが検出されていない [ 初期値 ]
1
マスタ送信中にアービトレーションロストが発生した
このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに
"1" を書き込むことによってクリアされます。
〔アービトレーションロストが発生する例〕
• データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない
• データのファーストビットで , ほかのマスタによって , 再起動条件が発生した
• I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にド
ライブされているために , 起動条件または停止条件を生成できない
[bit4] LRB : アクノリッジ格納ビット
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
LRB
内 容
0
スレーブアクノリッジを検出した [ 初期値 ]
1
スレーブアクノリッジを検出していない
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
起動条件または停止条件の検出でクリアされます。
608
第 18 章 I2C インタフェース
[bit3] TRX : データ送信ビット
データ転送中に送信状態を示すビットです。
TRX
内 容
0
データ送信中でない [ 初期値 ]
1
データ送信中
• "1" をセット : マスタモードで起動条件が生成された
- スレーブモードでリードアクセス時 ( 送信 ) , 第 1 バイトの転送終了
- マスタモードで送信中
• "0" をセット : バスがアイドル状態 (BB = 0:IBCR)
- アービトレーションロスト発生
- マスタ割込み中 (MSS = 1, INT = 1) に SCC に "1" が書き込まれた
- マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた
- スレーブ時 , 転送の最後にアクノリッジが発生しなかった
- スレーブモードでの受信中
- マスタモードでのスレーブからデータ受信中
[bit2] AAS : スレーブアドレッシング検出ビット
スレーブアドレッシング検出ビットです。
AAS
内 容
0
スレーブに指定されていない [ 初期値 ]
1
スレーブに指定された
( 再 ) 起動または停止条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出したときに設定されます。
[bit1] GCA : ゼネラルコールアドレス検出ビット
ゼネラルコールアドレス (00H) 検出ビットです。
GCA
内 容
0
ゼネラルコールアドレスを検出していない [ 初期値 ]
1
ゼネラルコールアドレスを検出した
( 再 ) 起動または停止条件の検出でクリアされます。
609
第 18 章 I2C インタフェース
[bit0] ADT : アドレスデータ転送
スレーブアドレス受信検出ビットです。
ADT
内 容
0
受信データがスレーブアドレスでない ( またはバス開放中 )
[ 初期値 ]
1
受信データがスレーブアドレスである
起動の検出で "1" に設定されます。10 ビットライトアクセスでのスレーブアドレス
のヘッダが検出されると , 第 2 バイトの後にクリアされ , それ以外のときは第 1 バ
イトの後でクリアされます。
〔第 1 バイト / 第 2 バイトの後とは〕
• マスタ割込み (MSS = 1, INT = 1:IBCR) 中に MSS ビットに "0" が書き込まれた
• マスタ割込み (MSS = 1, INT = 1:IBCR) 中に SCC ビットに "1" が書き込まれた
• INT ビットがクリアされた
• マスタまたはスレーブとして転送対象でなければ , すべての転送バイトの最初
610
第 18 章 I2C インタフェース
18.2.2
バス制御レジスタ (IBCR)
バス制御レジスタ (IBCR) には以下の機能があります。
• 割込み許可フラグ
• 割込み生成フラグ
• バスエラー検出フラグ
• 再起動条件生成
• マスタ / スレーブモード選択
• ゼネラルコールアクノリッジ生成許可
• データバイトアクノリッジ生成許可
■ バス制御レジスタ (IBCR)
図 18.2-2 に , バス制御レジスタ (IBCR) のレジスタ構成を示します。
図 18.2-2 バス制御レジスタ (IBCR) のレジスタ構成
IBCR
アドレス : 0000D0H, 0000DCH bit 15
14
13
12
11
10
9
8
000368H BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
リード / ライト
(R/W)
(R/W)
(W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
バス制御レジスタ (IBCR) への書込みアクセスは , INT ビットが "1" あるいは転送が開
始される場合に行ってください。ACK ビットもしくは GCAA ビットを変更するとバス
エラーが検出される場合があるので , 転送動作中にはレジスタへの書込みアクセスを
行わないでください。I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0")
は , BER ビットと BEIE ビットを除き , このレジスタのビットはクリア状態となります。
611
第 18 章 I2C インタフェース
[bit15] BER : バスエラーフラグ
バスエラー割込み要求フラグビットです。このビットは , リードモディファイライ
ト (RMW) 系命令では , 常に "1" が読まれます。
( 書込み時 )
BER
内 容
0
バスエラー割込み要求フラグをクリアする
1
意味を持ちません
( 読出し時 )
BER
内 容
0
バスエラーは検出されていない [ 初期値 ]
1
エラーコンディションを検出した
このビットが設定された場合 , CCR レジスタの EN ビットはクリアされ , I2C インタ
フェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を除き
IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは , I2C イ
ンタフェースを再度許可 (EN = 1) にする前にクリアしてください。
〔"1" が設定される場合〕
1) 起動条件または停止条件が不正な場所で検出された ( スレーブアドレス転送中 ,
データ転送中 ) 。
2) 10 ビットリードアクセス時に , 第 1 バイトにて 10 ビットライトアクセスする前
に , リードアクセスのスレーブアドレスヘッダが受信された。
3) マスタモードで転送中に起動条件が検出された。
1), 2) の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正
バスエラーレポートを抑止するために , 最初の停止条件の受信後にフラグセッ
トされます。
[bit14] BEIE : バスエラー割込み許可ビット
バスエラー割込み許可ビットです。
BEIE
内 容
0
バスエラー割込み禁止 [ 初期値 ]
1
バスエラー割込み許可
このビットが "1" のとき , BER ビットが "1" が設定されると割込みを発生します。
612
第 18 章 I2C インタフェース
[bit13] SCC : 起動条件継続ビット
再起動条件継続ビットです。
( 書込み時 )
SCC
内 容
0
意味を持ちません
1
マスタ転送時に再起動条件を発生させる
このビットの読出し値は常に "0" です。
マスタモード (MSS = 1, INT = 1) 中にこのビットに "1" を書き込むと , 再起動条件
が発生し , 自動的に INT ビットをクリアします。
[bit12] MSS : マスタ / スレーブ選択ビット
マスタ / スレーブの選択ビットです。
MSS
内 容
0
スレーブモードとなります [ 初期値 ]
1
マスタモードとなり起動条件を発生し , IDAR レジスタの値をスレー
ブアドレスとして送信します
• このビットは, マスタ送信中にアービトレーションロストが発生した場合クリア
されてスレーブモードになります。
• マスタ割込みフラグセット中 (MSS = 1, INT = 1) に "0" を書き込むと INT ビッ
トは自動的にクリアされ , 停止条件が発生して転送が終了します。
( 注意事項 ) MSS ビットは直接的なリセットとして機能します。停止条件の発生
は , IBSR レジスタの BB ビットを読み出すことによって確認できま
す。
• バスがアイドル中 (MSS = 0, BB = 0) に "1" を書き込むと起動条件が発生して
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) かどうかを確認する
ことが重要となります。
613
第 18 章 I2C インタフェース
<注意事項>
下記条件で使用する場合 , スレーブとして受信できませんのでゼネラルコールアドレスの
送信は禁止です。
MB91461/F467R のほかにマスタモードとなるほかの LSI がバスに存在し , MB91461/
F467R がマスタとしてゼネラルコールアドレスを送信し , 第 2 バイト目以降でアービト
レーションロストが発生する場合
[bit11] ACK : アクノリッジビット
データを受信許可ビットに従ってアクノリッジを発生するビットです。
ACK
内 容
0
データ受信に対してアクノリッジを発生しない [ 初期値 ]
1
データ受信に対してアクノリッジを発生する
• このビットは , スレーブ時のスレーブアドレス受信時には無効となります。I2C
インタフェースが 7 ビット , または 10 ビットのスレーブアドレス指定を検出し
たとき , 対応するイネーブルビット (ITMK:ENTB, ISMK:ENSB) が設定されてい
ると , アクノリッジを返します。
• このビットへの書込みは , 割込みフラグセット中 (INT = 1), バスが開放中 (IBSR:
BB = 0) または I2C インタフェースが停止中 (ICCR:EN = 0) に行ってください。
[bit10] GCAA : ゼネラルコールアドレスアクノリッジビット
ゼネラルコールアドレスを検出した場合のアクノリッジ発生許可ビットです。
GCAA
内 容
0
ゼネラルコールアドレスを検出時にアクノリッジを発生しない
[ 初期値 ]
1
ゼネラルコールアドレスを検出時にアクノリッジを発生する
このビットへの書込みは , 割込みフラグセット中 (INT = 1), バスが開放中 (IBSR:
BB = 0) または I2C インタフェースが停止中 (ICCR:EN = 0) に行ってください。
• ゼネラルコールアドレス受信時には , このビットと ACK ビットをともに "1" に
することにより , アクノリッジ応答の発生が許可されます。
• ゼネラルコールアドレス送信時には , このビットを "1" にすることにより , アク
ノリッジ応答の発生が許可されます。
• スレーブ受信 ( マスタでゼネラルコールアドレスを送信した後に , アービトレー
ションロストが発生した場合を含む ) でデータ受信時のアクノリッジビット出
力は , ACK ビットとこのビットがともに "1" のときに出力許可となります。
• バスステータスレジスタ (IBSR) の GCA ビットが "1" のときには , このビットの
設定値を変更しないでください。
614
第 18 章 I2C インタフェース
[bit9] INTE : 割込み許可ビット
割込み許可ビットです。
INTE
内 容
0
割込み禁止 [ 初期値 ]
1
割込み許可
このビットが "1" のときに , INT ビットが "1" になると割込みを発生します。
[bit8] INT : 割込み要求フラグ
転送終了割込み要求フラグビットです。このビットは , リードモディファイライト
(RMW) 系命令では常に "1" が読み出されます。
( 書込み時 )
INT
内 容
0
転送終了割込み要求フラグをクリアする [ 初期値 ]
1
動作に影響を与えません
( 読出し時 )
INT
内 容
0
転送が終了していない , 転送対象でないまたはバスが開放状態である
[ 初期値 ]
1
アクノリッジビットを含めた 1 バイト転送が終了したときに次の条
件に該当する場合設定されます。
・バスマスタである
・スレーブアドレスに指定された
・ゼネラルコールアドレスを受信した
・アービトレーションロストが起こった
スレーブアドレスに指定されているとき , アクノリッジを含むスレー
ブアドレス受信の最後に設定されます。
このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0"
を書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行って 再起動
条件または停止条件を生成します。
このビットは , SCC ビットまたは MSS ビットに "1" が書き込まれるとクリアされま
す。
615
第 18 章 I2C インタフェース
<注意事項>
SCC, MSS, INT ビットの競合について
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 再起動条件 , または停止条件
発生の競合が起こります。このときの優先度は次のようになります。
• 次のバイト転送と停止条件発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先されて
停止条件が発生します。
• 次のバイト転送と起動条件発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先されて
再起動条件が発生し , IDAR の値が送信されます。
• 再起動条件発生と停止条件発生
SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま
す。停止条件が発生して I2C インタフェースはスレーブモードになります。
図 18.2-3 と図 18.2-4 に示したタイミングで , 起動条件を発生させる命令を実行 (IBCR の
MSS = 1) すると , アービトレーションロスト検出 (IBSR の AL = 1) による割込み (IBCR
の INT = 1) は発生しません。
• アービトレーションロスト検出による割込みが発生しない条件 (1)
起動条件未検出状態 (IBSR の BB = 0) で , SDA 端子または SCL 端子レベルが "L" のと
きに , 起動条件を発生させる命令を実行 (IBCR の MSS = 1) した場合。
図 18.2-3 アービトレーションロスト検出による割込みが発生しないタイミング図
SCL端子またはSDA端子が"L"レベル
SCL端子
"L"
SDA端子
I2C動作許可状態(ENビット=1)
"L"
1
マスタモード設定(MSSビット=1)
アービトレーションロスト検出(ALビット=1)
バスビジー(BBビット)
0
割込み(INTビット)
0
616
第 18 章 I2C インタフェース
• アービトレーションロスト検出による割込みが発生しない条件 (2)
ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (ICCR の EN = 1) し
て起動条件を発生させる命令を実行 (IBCR の MSS = 1) した場合。
図 18.2-4 に示したとおり , I2C が動作禁止 (ICCR の EN = 0) の状態で , I2C バスのほ
かのマスタが通信を開始すると , 起動条件未検出 (IBSR の BB = 0) で I2C バスが占有
されている状態になるためです。
図 18.2-4 アービトレーションロスト検出による割込みが発生しないタイミング図
スタートコンディション
9クロック目でINTビット
割込みが発生しない
ストップコンディション
SCL端子
SDA端子
スレーブアドレス
ACK
データ
ACK
ENビット
MSSビット
ALビット
BBビット
0
INTビット
0
これらのような現象が発生する可能性がある場合には , 以下の手順でソフト処理を
行ってください。
1) 起動条件を発生させる命令を実行 (IBCR の MSS = 1)
2) タイマ機能などを用いて , ICCR に設定されている I2C 転送周波数での 3 ビットデー
タ送信時間待機 *
例:
I2C 転送周波数が 100kHz の場合
3 ビットデータ送信時間= {1/(100 × 103)} × 3 = 30 µs
* : アービトレーションロストが検出された場合 , MSS ビット設定後 , I2C 転送周波
数での 3 ビットデータ送信時間後には確実に AL = 1 となります。
3) BSR の AL ビットと BB ビットを確認し , AL = 1 かつ BB = 0 の場合には , ICCR の
EN ビットを "0" にして I2C を初期化
AL ビットと BB ビットがその他の値である場合は , 通常処理
617
第 18 章 I2C インタフェース
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) の MSS ビットに "1" を設定
クロック制御レジスタ (ICCR) に設定されている
I2C 転送周波数での 3 ビットデータ送信時間待機
NO
BB = 0 かつ AL = 1
YES
EN ビット設定し , I2C の初期化
通常処理
• アービトレーションロスト検出による割込みが発生する例
バスビジー検出 (IBSR の BB = 1) されている状態で , 起動条件を発生させる命令を実
行 (IBCR の MSS ビットを "1" に設定 ) し , アービトレーションロストした場合には ,
AL = 1 検出時に INT = 1 となり割込みが発生します。
図 18.2-5 アービトレーションロスト検出による割込みが発生するタイミング例
9クロック目で割込み
スタートコンディション
SCL端子
SDA端子
スレーブアドレス
ACK
データ
ENビット
MSSビット
ALビット
ソフトでのALビットクリア
BBビット
ソフトでのINTビット
クリアでSCL開放
INTビット
618
第 18 章 I2C インタフェース
クロック制御レジスタ (ICCR)
18.2.3
クロック制御レジスタ (ICCR) には , 以下の機能があります。
• ノイズフィルタ有効
• I2C インタフェース動作許可
• シリアルクロック周波数設定
■ クロック制御レジスタ (ICCR)
図 18.2-6 に , クロック制御レジスタ (ICCR) のレジスタ構成を示します。
図 18.2-6 クロック制御レジスタ (ICCR) のレジスタ構成
ICCR
アドレス : 0000DAH, 0000E6H bit 15
14
13
12
11
10
9
8
予約
NSF
EN
CS4
CS3
CS2
CS1
CS0
リード / ライト
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(−)
(0)
(0)
(1)
(1)
(1)
(1)
(1)
000372H
[bit15] 予約 : 予約ビット
読出し値は常に "0" です。
[bit14] NSF : ノイズフィルタ有効ビット
SDA および SCL 端子に配置されたノイズフィルタを有効にするビットです。この
ノイズフィルタにより , これらの入力に発生するスパイク (CLKP1 ∼ CLKP1.5 サイ
クル ) を抑制することができます。送信 / 受信レートが 100kbps 以上の場合には , こ
のビットを "1" に設定してください。
[bit13] EN : 動作許可ビット
I2C インタフェース動作許可ビットです。
値
内 容
0
動作禁止 [ 初期値 ]
1
動作許可
<注意事項>
• I2C インタフェースの動作が禁止されると , 送受信は直ちに停止されます。
• MSS ビットに "0" を書き込んでストップコンディションを発生させたあとに I2C インタ
フェースの動作を禁止する場合は , ストップコンディションの発生を確認 (IBSR:BB = 0)
した後 , 動作を禁止 (ICCR:EN = 0) してください。
619
第 18 章 I2C インタフェース
[bit12 ∼ bit8] CS4 ∼ CS0 : クロック周期選択ビット
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN = 0) にするか , EN ビットがクリ
アされたときにのみ書込み可能です。
シフトクロックの周波数 (fsck) は次式のように設定されます。
《ノイズフィルタ無効の場合》
fsck =
φ
n × 12 + 18
N > 0, φ: 周辺クロック ( = CLKP)
《ノイズフィルタ有効の場合》
fsck =
φ
N > 0, φ: 周辺クロック ( = CLKP)
( + 1) はノイズフィルタによる不確定要素
n × 12 + 19 ( + 1)
表 18.2-1 レジスタ設定
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 = 00000B は設定禁止です。
620
第 18 章 I2C インタフェース
18.2.4
10 ビットスレーブアドレスレジスタ (ITBA)
10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成 , および機能について説
明します。
■ 10 ビットスレーブアドレスレジスタ (ITBA)
図 18.2-7 に , 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成を示します。
図 18.2-7 10 ビットスレーブアドレスレジスタ (ITBA) のレジスタ構成
ITBAH
アドレス : 0000D2H, 0000DEH bit 15
14
13
12
11
10
9
8
予約
予約
予約
予約
予約
予約
TA9
TA8
リード / ライト
(−)
(−)
(−)
(−)
(−)
(−)
(R/W)
(R/W)
初期値
(−)
(−)
(−)
(−)
(−)
(−)
(0)
(0)
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
00036AH
ITBAL
アドレス : 0000D3H, 0000DFH bit 7
00036BH
10 ビットスレーブアドレスレジスタ (ITBA) への書込みアクセスは , I2C インタフェー
スが有効でない場合 (ICCR の EN ビットが "0") に行ってください。
[bit15 ∼ bit10] 予約 : 予約ビット
読出し時は常に "0" です。
[bit9 ∼ bit0] TA9 ∼ TA0 : 10 ビットスレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効 (ITMK:ENTB = 1) のとき , スレーブモードでスレーブア
ドレスを受信すると , 受信アドレスとを ITBA と比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第 1, 第 2 バイト受信データと ITBAL レジスタを比較します。一致が検出されると ,
アクノリッジ信号をマスタデバイスに送信し , AAS ビットが設定されます。
I2C インタフェースは , 再起動条件の後 , 10 ビットリードアクセスのアドレスヘッ
ダの受信に応答します。
スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
621
第 18 章 I2C インタフェース
18.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMK)
10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成 , および機能につ
いて説明します。
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK)
図 18.2-8 に , 10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成を示
します。
図 18.2-8 10 ビットスレーブアドレスマスクレジスタ (ITMK) のレジスタ構成
ITMKH
アドレス : 0000D4H, 0000E0H bit 15
14
13
12
11
10
9
8
00036CH ENTB
RAL
予約
予約
予約
予約
TM9
TM8
リード / ライト
(R/W)
(R)
(−)
(−)
(−)
(−)
(R/W)
(R/W)
初期値
(0)
(0)
(−)
(−)
(−)
(−)
(1)
(1)
6
5
4
3
2
1
0
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
ITMKL
アドレス : 0000D5H, 0000E1H bit 7
00036DH
[bit15] ENTB : 10 ビットスレーブアドレス許可ビット
10 ビットスレーブアドレス動作許可ビットです。
このビットへの書込みは , I2C インタフェースが停止状態 (ICCR:EN = 0) で行って
ください。
[bit14] RAL : 受信スレーブアドレス長ビット
このビットは , スレーブアドレス長を示します。
このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB = 1 かつ ENSB = 1) になっている場合に , 10 ビット , 7 ビットスレーブアド
レス動作のどちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (ICCR:EN = 0) したときにクリアされま
す。
このビットは読出しのみ可能です。
[bit13 ∼ bit10] 予約 : 予約ビット
読出し時は常に "1" が読まれます。
622
第 18 章 I2C インタフェース
[bit9 ∼ bit0] TM9 ∼ TM0 : 10 ビットスレーブアドレスマスクビット
このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。
このレジスタへの書込みは , I2C インタフェースが動作禁止 (ICCR:EN = 0) のとき
行ってください。
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを 10 ビットスレーブアド
レス比較に使用するときに , このビットを "1" に設定してください。受信したスレー
ブアドレスは , ITBA に上書きされます。ASS = 1(IBSR) のときに ITBA レジスタを
読み出すことによって実際の指定されたスレーブアドレスを特定できます。
ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており ,
TM9 ∼ TM0 の値が "1" のときは ITBA のアドレスが有効になり , "0" のときは無効
になります。
例 : ITBA アドレス "0010010111B"
ITMK アドレス " 1111111100B" のとき
スレーブアドレスは "0010010100B" ∼ "0010010111B" の領域になります。
623
第 18 章 I2C インタフェース
18.2.6
7 ビットスレーブアドレスレジスタ (ISBA)
7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成 , および機能について説
明します。
■ 7 ビットスレーブアドレスレジスタ (ISBA)
図 18.2-9 に , 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成を示します。
図 18.2-9 7 ビットスレーブアドレスレジスタ (ISBA) のレジスタ構成
ISBA
アドレス : 0000D7H, 0000E3H bit 7
6
5
4
3
2
1
0
予約
SA6
SA5
SA4
SA3
SA2
SA1
SA0
リード / ライト
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(−)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
00036FH
7 ビットスレーブアドレスレジスタ (ISBA) への書込みアクセスは , I2C インタフェース
が有効でない場合 (ICCR の EN ビットが "0") に行ってください。
[bit7] 予約 : 予約ビット
読出し値は "0" です。
[bit6 ∼ bit0] SA6 ∼ SA0 : スレーブアドレスビット
スレーブモードでスレーブアドレスを受信したとき , 7 ビットスレーブアドレスが
許可 (ENSB = 1:ISMK) されていると , 受信スレーブアドレスと ISBA の比較を行い
ます。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信
して AAS ビットを設定します。
I2C インタフェースは , 再起動条件の後に 7 ビットリードアクセスのアドレスヘッ
ダの受信にアクノリッジを返します。
スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが
受信されたとき , ISBA と受信スレーブアドレスとの比較を行いません。
624
第 18 章 I2C インタフェース
18.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK)
7 ビットスレーブアドレスマスクレジスタ (ISMK) には , 7 ビットスレーブアドレス
マスクと 7 ビットスレーブアドレス許可ビットがあります。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK)
図 18.2-10 に , 7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成を示し
ます。
図 18.2-10 7 ビットスレーブアドレスマスクレジスタ (ISMK) のレジスタ構成
ISMK
アドレス : 0000D6H, 0000E2H bit 15
14
13
12
11
10
9
8
00036EH ENSB
SM6
SM5
SM4
SM3
SM2
SM1
SM0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
7 ビットスレーブアドレスマスクレジスタ (ISMK) への書込みアクセスは , I2C インタ
フェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。
[bit15] ENSB : 7 ビットスレーブアドレス許可ビット
7 ビットスレーブアドレス動作許可ビットです。
[bit14 ∼ bit8] SM6 ∼ SM0 : 7 ビットスレーブアドレスマスクビット
このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。
このビットを設定することにより , 複合 7 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。ISMK レジスタを 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" の領域になります。
625
第 18 章 I2C インタフェース
18.2.8
データレジスタ (IDAR)
データレジスタ (IDAR) について説明します。
■ データレジスタ (IDAR)
図 18.2-11 に , データレジスタ (IDAR) のレジスタ構成を示します。
図 18.2-11 データレジスタ (IDAR) のレジスタ構成
IDAR
アドレス : 0000D9H, 0000E5H bit 7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
000371H
[bit7 ∼ bit0] D7 ∼ D0 : データビット
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジ