10.1MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通半導体デバイス
CONTROLLER MANUAL
CM71-10128-2
FR60Lite
32 ビット・マイクロコントローラ
MB91270 Series
ハードウェアマニュアル
FR60Lite
32 ビット・マイクロコントローラ
MB91270 Series
ハードウェアマニュアル
開発における最新の注意事項に関しては , 必ず『Check Sheet』を参照してください。
『Check Sheet』は , 下記サポートページに掲載されています。
URL:http://jp.fujitsu.com/microelectronics/products/micom/support/index.html
『Check Sheet』は , システム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項
目をリストにしたものです。
富士通株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛顧を賜り厚くお礼申し上げます。
MB91270 シリーズは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理
が要求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , シングル
チップマイクロコントローラです。32 ビット CPU がアクセスする広大なアドレス空間
をサポートするために , 外部バスアクセスが基本となっていますが , CPU の命令実行を
高速化するために 24K バイトの RAM ( データ用 ) を内蔵しています。
カーオーディオやカーエアコンなど , 高性能な CPU 処理パワーを要求される組込み用
途に最適な仕様となっています。
MB91270 シリーズは , FR30/40 ファミリ CPU をベースにバスアクセスの強化を行い ,
より高速での使用に対応した FR60Lite ファミリです。
本書は , 実際に MB91270 シリーズを使用して製品を開発される技術者を対象に ,
MB91270 シリーズの機能や動作について解説したものです。本書をご一読ください。
なお , 各種命令の詳細については , 『インストラクションマニュアル』をご参照くださ
い。
FR は , FUJITSU RISC controller の略で , 富士通株式会社の製品です。
■ 商標
Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。
その他の記載されている社名および製品名などの固有名詞は,各社の商標または登録商
標です。
■ ライセンス
本製品には , お客様が Philips 社の定めた I2C 標準仕様書に従う I2C システムの中で使
用されることを条件に , Philips 社 I2C 特許がライセンスされております。
Purchase of Fujitsu I2C components conveys a license under the Philips I2C Patent Rights to
use, these components in an I2C system provided that the system conforms to the I2C Standard
Specification as defined by Philips.
i
■ 本書の全体構成
本書は , 以下に示す 27 の章 , および付録から構成されています。
第1章
概要
FR ファミリは 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理を要
求される組込み制御用に各種 I/O リソースやバス制御機構を内蔵した , 標準シング
ルチップマイクロコントローラです。MB91270 シリーズの特長 , ブロックダイヤグ
ラム , 機能概要など全体を知るための基本的なことについて説明します。
第2章
デバイス使用上の注意
MB91270 シリーズの取扱い上の注意について説明します。
第3章
CPU および制御部
FR ファミリの CPU コアの機能を知るために , アーキテクチャ, 仕様 , 命令などにつ
いて説明します。
第4章
リセット
リセットについて説明します。
第5章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内部バスと外部のメモリおよび I/O
デバイスとのインタフェースを制御します。外部バスインタフェースの各機能につ
いて説明します。
第6章
I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能について説明します。
第7章
割込みコントローラ
割込みコントローラの概要, レジスタの構成/機能, および動作について説明します。
第8章
外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能 , および動作について説明します。
第9章
REALOS 関連ハード
REALOS関連ハードは, リアルタイムOSにより使用されます。したがって, REALOS
を使用する場合にはユーザプログラムで使用することはできません。REALOS 関連
ハードの遅延割込みモジュールとビットサーチモジュールについて , 概要 , レジス
タの構成 / 機能 , および動作を説明します。
第 10 章 DMAC (DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能 , および DMAC の動作について説明します。
第 11 章 CAN コントローラ
CAN コントローラの機能と動作について示します。
第 12 章 LIN-UART
LIN 対応 UART の機能と動作について説明します。
第 13 章 I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能 , および動作について説明します。
第 14 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタの構成と機能およびタイマの動作について説
明します。
ii
第 15 章 16 ビットフリーランタイマ
16 ビットフリーランタイマの機能と動作について説明します。
第 16 章 インプットキャプチャ
インプットキャプチャの機能と動作について説明します。
第 17 章 アウトプットコンペア
アウトプットコンペアの機能と動作について説明します。
第 18 章 PPG タイマ
PPG タイマについて説明します。
第 19 章 アップダウンカウンタ
8 ビット /16 ビットアップダウンカウンタの機能と動作について説明します。
第 20 章 クロックモニタ
クロックモニタの機能と動作について説明します。
第 21 章 リアルタイムクロック
リアルタイムクロック ( 以降 RTC) のレジスタ構成とその機能 , RTC モジュールの
動作について説明します。
第 22 章 A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能 , および動作について説明します。
第 23 章 D/A コンバータ
D/A コンバータの概要を示し , レジスタの構造と機能 , および D/A コンバータの動
作について説明します。
第 24 章 クロックモジュレータ
クロックモジュレータのレジスタ構成と機能および動作について説明します。
第 25 章 クロックスーパバイザ
クロックスーパバイザの機能について説明します。
第 26 章 フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能 , および動作について説明します。
第 27 章 ハードウェア ウォッチドッグタイマ
ハードウェアウォッチドッグタイマの機能について説明します。
付録
I/O マップ , 割込みベクタ , CPU ステートでの端子状態 , について記載しています。
iii
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は当社営業担当部門にご確認
ください。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。従いまして , これらを使用するにあたって
はお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについては , 当
社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。従
いまして , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ) , ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に当社営業担当部門までご相談く
ださい。ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承
ください。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品が ,「外国為替および外国貿易法」に基づき規制されている貨物または技術に該
当する場合には , 本製品を輸出するに際して , 同法に基づく許可が必要となります。
Copyright ©2006-2007 FUJITSU LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
概要 ............................................................................................................ 1
特長 ........................................................................................................................................ 2
ブロックダイヤグラム............................................................................................................ 7
外形寸法図.............................................................................................................................. 8
端子配列図.............................................................................................................................. 9
メモリマップ ........................................................................................................................ 10
端子機能説明 ........................................................................................................................ 11
入出力回路形式 .................................................................................................................... 26
第2章
2.1
デバイス使用上の注意 ............................................................................. 31
デバイス使用上の注意.......................................................................................................... 32
第3章
CPU および制御部 ................................................................................... 35
3.1 メモリ空間............................................................................................................................ 36
3.2 内部アーキテクチャ ............................................................................................................. 37
3.2.1
内部アーキテクチャ ................................................................................................... 38
3.2.2
命令概要 ..................................................................................................................... 42
3.3 プログラミングモデル.......................................................................................................... 44
3.3.1
汎用レジスタ .............................................................................................................. 45
3.3.2
専用レジスタ .............................................................................................................. 46
3.4 データ構造............................................................................................................................ 53
3.5 メモリマップ ........................................................................................................................ 55
3.6 分岐命令 ............................................................................................................................... 56
3.6.1
遅延スロット付き動作 ............................................................................................... 57
3.6.2
遅延スロットなし動作 ............................................................................................... 59
3.7 EIT ( 例外・割込み・トラップ ) ........................................................................................... 60
3.7.1
EIT の割込みレベル.................................................................................................... 61
3.7.2
ICR (Interrupt Control Register).................................................................................. 63
3.7.3
SSP (System Stack Pointer)....................................................................................... 64
3.7.4
3.7.5
割込みスタック .......................................................................................................... 65
TBR (Table Base Register) ........................................................................................ 66
3.7.6
EIT ベクタテーブル.................................................................................................... 67
3.7.7
多重 EIT 処理.............................................................................................................. 70
3.7.8
動作 ............................................................................................................................ 72
3.8 動作モード............................................................................................................................ 76
3.8.1
バスモード ................................................................................................................. 77
3.8.2
モード設定 ................................................................................................................. 78
3.9 クロック生成制御 ................................................................................................................. 81
3.9.1
PLL 制御 ..................................................................................................................... 82
3.9.2
発振安定待ち・PLL ロック待ち時間.......................................................................... 84
3.9.3
クロック分配 .............................................................................................................. 86
3.9.4
クロック分周 .............................................................................................................. 88
3.9.5
クロック生成制御部のブロックダイヤグラム............................................................ 89
3.9.6
クロック生成制御部のレジスタ詳細説明................................................................... 90
3.9.7
クロック制御部が持つ周辺回路 ............................................................................... 107
v
3.10 デバイス状態制御 ............................................................................................................... 110
3.10.1
デバイス状態と各遷移 ............................................................................................. 111
3.10.2
低消費電力モード..................................................................................................... 114
3.11 メイン発振安定待ちタイマ................................................................................................. 118
第4章
4.1
4.2
4.3
4.4
4.5
4.6
4.7
第5章
リセット................................................................................................. 125
リセットの概要 .................................................................................................................. 126
リセット要因と発振安定待ち時間...................................................................................... 128
リセットレベル .................................................................................................................. 130
外部リセット端子 ............................................................................................................... 132
リセット動作 ...................................................................................................................... 133
リセット要因ビット ........................................................................................................... 134
リセットによる各端子の状態 ............................................................................................. 136
外部バスインタフェース........................................................................ 137
5.1 外部バスインタフェースの特長 ......................................................................................... 138
5.2 外部バスインタフェースのレジスタ .................................................................................. 141
5.2.1
Area Select Register (ASR0 ∼ ASR3) ..................................................................... 142
5.2.2
Area Configuration Register (ACR0 ∼ ACR3) ......................................................... 143
5.2.3
Area Wait Register (AWR0 ∼ AWR3)...................................................................... 147
5.2.4
Chip Select Enable Register (CSER) ....................................................................... 152
5.3 チップセレクト領域 ........................................................................................................... 153
5.4 エンディアンとバスアクセス ............................................................................................. 155
5.4.1
データバス幅と制御信号との関係............................................................................ 156
5.4.2
バスアクセス ............................................................................................................ 157
5.4.3
外部アクセス ............................................................................................................ 163
5.5 通常バスインタフェース .................................................................................................... 167
5.6 アドレス / データマルチプレクスインタフェース ............................................................. 175
5.7 DMA アクセス .................................................................................................................... 178
5.8
レジスタ設定手順 .............................................................................................................. 181
第6章
6.1
6.2
6.3
6.4
6.5
6.6
6.7
第7章
I/O ポート............................................................................................... 183
I/O ポートの概要 ................................................................................................................ 184
ポートデータレジスタ (PDR) データ方向レジスタ (DDR) ................................................ 186
ポートファンクションレジスタの設定............................................................................... 188
外部割込み入力の再配置 .................................................................................................... 204
端子入力レベルの選択........................................................................................................ 206
プルアップ・プルダウン制御レジスタ............................................................................... 208
入力データダイレクトリードレジスタ............................................................................... 211
割込みコントローラ............................................................................... 213
7.1 割込みコントローラの概要................................................................................................. 214
7.2 割込みコントローラのレジスタ ......................................................................................... 217
7.2.1
割込み制御レジスタ (ICR)........................................................................................ 218
7.2.2
HRCL ( ホールドリクエスト取下げ要求レジスタ ).................................................. 219
7.3 割込みコントローラの動作説明 ......................................................................................... 220
vi
第8章
外部割込み制御部 .................................................................................. 227
8.1 外部割込み制御部の概要 .................................................................................................... 228
8.2 外部割込み制御部のレジスタ ............................................................................................. 229
8.2.1
割込み許可レジスタ (ENIR) ..................................................................................... 230
8.2.2
外部割込み要因レジスタ (EIRR) .............................................................................. 231
8.2.3
外部割込み要求レベル設定レジスタ (ELVR) ........................................................... 232
8.3 外部割込み制御部の動作説明 ............................................................................................. 233
第9章
REALOS 関連ハード ............................................................................. 237
9.1 遅延割込みモジュール........................................................................................................ 238
9.1.1
遅延割込みモジュールの概要................................................................................... 239
9.1.2
遅延割込みモジュールのレジスタ............................................................................ 240
9.1.3
遅延割込みモジュールの動作説明............................................................................ 241
9.2 ビットサーチモジュール .................................................................................................... 242
9.2.1
ビットサーチモジュールの概要 ............................................................................... 243
9.2.2
ビットサーチモジュールのレジスタ ........................................................................ 244
9.2.3
ビットサーチモジュールの動作説明 ........................................................................ 246
第 10 章
DMAC (DMA コントローラ ) ................................................................. 249
10.1 概要 .................................................................................................................................... 250
10.2 レジスタ詳細説明 ............................................................................................................... 253
10.2.1
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A............... 254
10.2.2
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B............... 258
10.2.3
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ .............. 264
10.2.4
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ .................................. 266
10.3 動作説明 ............................................................................................................................. 268
10.3.1
動作概要 ................................................................................................................... 269
10.3.2
転送要求の設定 ........................................................................................................ 271
10.3.3
転送シーケンス ........................................................................................................ 272
10.3.4
DMA 転送全般 .......................................................................................................... 274
10.3.5
アドレッシングモード ............................................................................................. 275
10.3.6
データの種類 ............................................................................................................ 276
10.3.7
転送回数制御 ............................................................................................................ 277
10.3.8
CPU 制御.................................................................................................................. 278
10.3.9
動作開始 ................................................................................................................... 280
10.3.10
転送要求の受付けと転送 .......................................................................................... 281
10.3.11
DMA による周辺割込みクリア ................................................................................. 282
10.3.12
一時停止 ................................................................................................................... 283
10.3.13
動作終了 / 停止 ......................................................................................................... 284
10.3.14
エラーによる停止..................................................................................................... 285
10.3.15
DMAC 割込み制御 .................................................................................................... 286
10.3.16
スリープモード中の DMA 転送 ................................................................................ 287
10.3.17
チャネル選択と制御 ................................................................................................. 288
10.4 動作フロー.......................................................................................................................... 290
10.5 データパス.......................................................................................................................... 292
vii
第 11 章
CAN コントローラ ................................................................................. 295
11.1 CAN の特長 ........................................................................................................................ 296
11.2 CAN のブロックダイヤグラム............................................................................................ 297
11.3 CAN のレジスタ ................................................................................................................. 298
11.4 CAN レジスタ機能.............................................................................................................. 303
11.4.1
全体コントロールレジスタ ...................................................................................... 304
11.4.2
メッセージインタフェースレジスタ ........................................................................ 317
11.4.3
メッセージオブジェクト .......................................................................................... 330
11.4.4
メッセージハンドラレジスタ................................................................................... 336
11.4.5
CAN プリスケーラレジスタ (CANPRE)................................................................... 345
11.5 CAN 機能 ............................................................................................................................ 346
11.5.1
メッセージオブジェクト .......................................................................................... 347
11.5.2
メッセージ送信動作 ................................................................................................. 349
11.5.3
メッセージ受信動作 ................................................................................................. 351
11.5.4
FIFO バッファ機能................................................................................................... 355
11.5.5
割込み機能 ............................................................................................................... 357
11.5.6
ビットタイミング..................................................................................................... 358
11.5.7
テストモード ............................................................................................................ 361
11.5.8
ソフトウェア初期化 ................................................................................................. 366
11.5.9
CAN クロックプリスケーラ ..................................................................................... 367
第 12 章
LIN-UART .............................................................................................. 371
12.1 概要 .................................................................................................................................... 372
12.2 UART の構成 ...................................................................................................................... 375
12.3 UART のレジスタ ............................................................................................................... 380
12.3.1
シリアルコントロールレジスタ (SCR) .................................................................... 382
12.3.2
シリアルモードレジスタ (SMR)............................................................................... 385
12.3.3
シリアルステータスレジスタ (SSR) ........................................................................ 388
12.3.4
受信 / 送信データレジスタ (RDR/TDR).................................................................... 391
12.3.5
拡張ステータス / コントロールレジスタ (ESCR) .................................................... 393
12.3.6
拡張通信コントロールレジスタ (ECCR).................................................................. 396
12.3.7
ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 399
12.4 UART の割込み................................................................................................................... 400
12.4.1
受信割込み生成とフラグセットタイミング ............................................................. 403
12.4.2
送信割込み生成とフラグタイミング ........................................................................ 405
12.5 UART のボーレート ........................................................................................................... 407
12.5.1
ボーレートの設定..................................................................................................... 409
12.5.2
リロードカウンタの再起動 ...................................................................................... 412
12.6 UART の動作 ...................................................................................................................... 414
12.6.1
非同期モードでの動作 ( 動作モード 0, 1) ................................................................ 416
12.6.2
同期モードでの動作 ( 動作モード 2) ........................................................................ 419
12.6.3
LIN 機能での動作 ( 動作モード 3) ............................................................................ 422
12.6.4
シリアル端子への直接アクセス ............................................................................... 425
12.6.5
双方向通信機能 ( ノーマルモード ) .......................................................................... 426
12.6.6
マスタ−スレーブ通信機能 ( マルチプロセッサモード ).......................................... 427
12.6.7
LIN 通信機能............................................................................................................. 430
12.6.8
LIN 通信モード ( 動作モード 3) UART サンプルフローチャート............................. 431
12.7 UART 使用上の注意事項 .................................................................................................... 434
viii
第 13 章
I2C インタフェース ................................................................................ 437
13.1 I2C インタフェースの概要.................................................................................................. 438
13.2 I2C インタフェースのレジスタ .......................................................................................... 442
13.2.1
バスステータスレジスタ (IBSR0 ∼ IBSR2) ............................................................ 443
13.2.2
バスコントロールレジスタ (IBCR0 ∼ IBCR2) ........................................................ 446
13.2.3
クロックコントロールレジスタ (ICCR0 ∼ ICCR2)................................................. 453
13.2.4
10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2)
................................................................................................................................. 455
13.2.5
10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2)
................................................................................................................................. 456
13.2.6
7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) ........................................... 458
13.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) ............................... 459
13.2.8
データレジスタ (IDAR0 ∼ IDAR2) .......................................................................... 461
13.3 I2C インタフェースの動作説明 .......................................................................................... 462
13.4 動作フローチャート ........................................................................................................... 467
第 14 章
16 ビットリロードタイマ ...................................................................... 471
14.1 16 ビットリロードタイマの概要 ........................................................................................ 472
14.2 16 ビットリロードタイマのレジスタ................................................................................. 473
14.2.1
コントロールステータスレジスタ (TMCSR) ........................................................... 474
14.2.2
16 ビットタイマレジスタ (TMR) ............................................................................. 477
14.2.3
16 ビットリロードレジスタ (TMRLR) ..................................................................... 478
14.3 16 ビットリロードタイマの動作 ........................................................................................ 479
第 15 章
16 ビットフリーランタイマ................................................................... 483
15.1 16 ビットフリーランタイマの概要 .................................................................................... 484
15.2 16 ビットフリーランタイマのレジスタ ............................................................................. 485
15.2.1
タイマデータレジスタ (TCDT)................................................................................. 486
15.2.2
タイマコントロールステータスレジスタ (TCCS).................................................... 487
15.3 16 ビットフリーランタイマの動作 .................................................................................... 490
15.4 16 ビットフリーランタイマ使用時の注意事項 .................................................................. 492
第 16 章
インプットキャプチャ ........................................................................... 493
16.1 インプットキャプチャの概要 ............................................................................................. 494
16.2 インプットキャプチャのレジスタ...................................................................................... 495
16.2.1
インプットキャプチャレジスタ (IPCP) ................................................................... 496
16.2.2
インプットキャプチャコントロールレジスタ (ICS) ................................................ 497
16.3 インプットキャプチャの動作 ............................................................................................. 499
第 17 章
アウトプットコンペア ........................................................................... 501
17.1 アウトプットコンペアの概要 ............................................................................................. 502
17.2 アウトプットコンペアのレジスタ...................................................................................... 503
17.2.1
コンペアレジスタ (OCCP) ....................................................................................... 504
17.2.2
コントロールレジスタ (OCS) .................................................................................. 505
17.3 アウトプットコンペアの動作 ............................................................................................. 507
ix
第 18 章
PPG タイマ ............................................................................................ 511
18.1 概要 .................................................................................................................................... 512
18.2 ブロックダイヤグラム........................................................................................................ 513
18.3 PPG のレジスタ ................................................................................................................. 516
18.3.1
PPG 動作モード制御レジスタ (PPGC).................................................................... 517
18.3.2
リロードレジスタ (PRLL/PRLH).............................................................................. 519
18.3.3
PPG 起動レジスタ (TRG) ........................................................................................ 520
18.3.4
出力反転レジスタ (REVC) ....................................................................................... 521
18.4 動作説明 ............................................................................................................................. 522
第 19 章
アップダウンカウンタ ........................................................................... 529
19.1 アップダウンカウンタの概要 ............................................................................................. 530
19.2 アップダウンカウンタのレジスタ...................................................................................... 533
19.2.1
アップダウンカウントレジスタ (UDCR) ................................................................. 535
19.2.2
リロードコンペアレジスタ (RCR) ........................................................................... 536
19.2.3
カウンタステータスレジスタ (CSR)........................................................................ 537
19.2.4
カウンタコントロールレジスタ (CCR) .................................................................... 539
19.3 アップダウンカウンタの動作 ............................................................................................. 543
第 20 章
クロックモニタ ...................................................................................... 551
20.1 クロックモニタの概要........................................................................................................ 552
20.2 クロック出力許可レジスタ................................................................................................. 553
第 21 章
リアルタイムクロック ........................................................................... 555
21.1 レジスタ構成 ...................................................................................................................... 556
21.2 ブロックダイヤグラム........................................................................................................ 558
21.3 レジスタの詳細 .................................................................................................................. 559
21.4 クロック補正ユニット........................................................................................................ 564
21.5 クロック補正ユニットのレジスタ...................................................................................... 565
21.5.1
補正ユニット制御レジスタ (CUCR)......................................................................... 566
21.5.2
サブタイマデータレジスタ (CUTD) ......................................................................... 568
21.5.3
メインタイマデータレジスタ (CUTR) ..................................................................... 570
21.6 クロック補正ユニットの使用について............................................................................... 571
第 22 章
A/D コンバータ ...................................................................................... 573
22.1 A/D コンバータの概要 ........................................................................................................ 574
22.2 A/D コンバータのブロックダイヤグラム ........................................................................... 575
22.3 A/D コンバータのレジスタ................................................................................................. 576
22.3.1
アナログ入力許可レジスタ (ADER) ......................................................................... 578
22.3.2
A/D コントロールステータスレジスタ (ADCS) ....................................................... 579
22.3.3
データレジスタ (ADCR1, ADCR0)........................................................................... 585
22.3.4
変換時間設定レジスタ (ADCT) ................................................................................ 586
22.3.5
開始チャネル設定レジスタ (ADSCH) 終了チャネル設定レジスタ (ADECH) .......... 588
22.4 A/D コンバータの動作 ........................................................................................................ 590
第 23 章
D/A コンバータ ...................................................................................... 593
23.1 D/A コンバータの概要 ........................................................................................................ 594
23.2 D/A コンバータのレジスタ................................................................................................. 595
23.3 D/A コンバータの動作 ........................................................................................................ 599
x
第 24 章
クロックモジュレータ ........................................................................... 601
24.1 クロックモジュレータの概要 ............................................................................................. 602
24.2 クロックモジュレータのレジスタ...................................................................................... 603
24.2.1
クロックモジュレータパラメータレジスタ (CMPR) ............................................... 604
24.2.2
クロックモジュレータ制御レジスタ (CMCR).......................................................... 605
第 25 章
クロックスーパバイザ ........................................................................... 607
25.1 クロックスーパバイザの概要 ............................................................................................. 608
25.2 クロックスーパバイザ制御レジスタ (CSVCR) .................................................................. 609
25.3 クロックスーパバイザの動作 ............................................................................................. 612
第 26 章
フラッシュメモリ .................................................................................. 615
26.1 フラッシュメモリの概要 .................................................................................................... 616
26.2 フラッシュメモリのレジスタ ............................................................................................. 619
26.2.1
フラッシュコントロール / ステータスレジスタ (FLCR) .......................................... 620
26.2.2
ウェイトレジスタ (FLWC) ....................................................................................... 622
26.3 フラッシュメモリの動作説明 ............................................................................................. 624
26.4 フラッシュメモリ自動アルゴリズム .................................................................................. 626
26.4.1
コマンドシーケンス ................................................................................................. 627
26.4.2
自動アルゴリズム実行状態の確認............................................................................ 631
26.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 636
26.5.1
読出し / リセット状態 .............................................................................................. 637
26.5.2
データ書込み ............................................................................................................ 638
26.5.3
データ消去 ( チップ消去 ) ........................................................................................ 640
26.5.4
データ消去 ( セクタ消去 ) ........................................................................................ 641
26.5.5
セクタ消去一時停止 ................................................................................................. 643
26.5.6
セクタ消去再開 ........................................................................................................ 644
26.6 ワイルドレジスタ ............................................................................................................... 645
26.7 フラッシュメモリプログラミングの注意事項.................................................................... 646
第 27 章
27.1
27.2
27.3
27.4
27.5
ハードウェアウォッチドッグタイマの概要 ....................................................................... 648
ハードウェアウォッチドッグタイマの構成 ....................................................................... 649
ハードウェアウォッチドッグタイマのレジスタ ................................................................ 650
ハードウェアウォッチドッグタイマの機能 ....................................................................... 651
注意事項 ............................................................................................................................. 652
付録
付録 A
付録 B
付録 C
付録 D
付録 E
索引
ハードウェアウォッチドッグタイマ...................................................... 647
............................................................................................................... 653
I/O マップ ...................................................................................................................... 654
割込みベクタ ................................................................................................................. 668
各 CPU ステートにおける端子状態 .............................................................................. 672
シリアル書込み ( 非同期 ) 書込み例 .............................................................................. 685
シリアル書込み ( 同期 ) 書込み例.................................................................................. 688
................................................................................................................695
xi
xii
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。)
―
シリーズ名を変更
(MB91270/280 シリーズ → MB91270 シリーズ )
型格を削除
(MB91F272, MB91F272(S))
型格を追加
(MB91F273, MB91F273(S), MB91F278, MB91F278(S) )
端子名を変更
(INITX → INIT)
(CS0X ∼ CS3X → CS0 ∼ CS3)
(RDX → RD)
(ASX → AS)
(ATGX → ATG)
(WR0X, WR1X → WR0, WR1)
3
表 1.1-1 内蔵メモリの詳細を変更
4
■ I/O ポートを変更
(・最大 120 ポート → ・最大 128 ポート )
5
■ その他の特長を変更
(・クロック監視機能
メインクロックの停止を内部自励発振にて監視するものです。の記述を追加 )
(I2C ライセンスの記述を削除 )
6
表 1.1-2 機能比較を変更
7
図 1.2-1 MB91270 シリーズのブロックダイヤグラムを変更
( クロックスーパバイザの記述を追加 )
9
図 1.4-1 FPT-100P-M05 の端子配列を変更
10
図 1.5-1 MB91270 シリーズのメモリマップを変更
11 ∼ 24
表 1.6-1 端子機能説明を変更
30
表 1.7-3 入出力回路形式 (4 / 4) の分類 WA, WB の備考を変更
( 約 1MΩ → 約 10MΩ)
34
2.1 デバイス使用上の注意を変更
(■ 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ ) を追加 )
67
表 3.7-3 ベクタテーブル (1 / 3) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
81
■ 内部動作クロックの生成を変更
(φ はソースクロックを 2 分周または , PLL 発振させた基本クロックを指します。し
たがって , システムベースクロックは , 上記の内部ベースクロック発生のところで生
成されるクロックです。の記述を追加 )
87
<注意事項>を追加
xiii
ページ
変更内容(詳細は本文を参照してください。)
126
4.1 リセットの概要の要約を変更
( リセットには次の 4 つの要因があります。→ リセットには次の 5 つの要因がありま
す。)
(・発振動作不具合の記述を追加 )
表 4.1-1 リセット要因を変更
( クロックスーパバイザの記述を追加 )
127
● クロックスーパバイザリセットの項目を追加
128
4.2 リセット要因と発振安定待ち時間の要約を変更
(4 種類のリセット要因があり , → 5 種類のリセット要因があり ,)
表 4.2-1 リセット要因と発振安定待ち時間を変更
( クロックスーパバイザの記述を追加 )
130
■ 設定初期化リセット (INIT) を変更
( クロックスーパバイザリセットの記述を追加 )
133
図 4.5-1 リセット動作フローを変更
( クロックスーパバイザリセットの記述を追加 )
134
図 4.6-1 リセット要因ビットブロックを変更
( クロックスーパバイザの記述を追加 )
135
表 4.6-1 リセット要因ビットの内容とリセット要因の対応を変更
( クロックスーパバイザの記述を追加 )
143
■ ACR0 ∼ ACR3 (Area Configuration Register) のレジスタ構成の図を変更
(ACR1H の初期値 0xxx0x00B → xxxx0x00B)
(* :モードベクタの WTH ビットと同じ値に自動設定の記述を追加 )
185
<注意事項>を追加
199
■ ポート A の表のビット =PFRA0、値 =1 の機能を変更
(CAN0 の RX 入力専用 → CAN 使用時は , "1" に設定願います。)
<注意事項>を追加
221
表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
230
<注意事項>を追加
231
<注意事項>を追加
233
■ 外部割込みの動作手順を変更
234
■ 外部割込み要求レベルを変更
( 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま
す。また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込み
要因レジスタ (ENIR) をクリアしても , 割込みコントローラへの割込み要求は発生し
続けます。の記述を追加 )
235
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項を追加
236
■ STOP 状態からの復帰動作を追加
xiv
ページ
変更内容(詳細は本文を参照してください。)
254
■ DMACA0 ∼ DMACA4 のビット機能の図を変更
(DDN0[3:0] → reserved)
394
<注意事項>を追加
421
■ 通信を変更
( 受信するには SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へダ
ミーデータを書き込んでください。→ 受信のみ行う場合には SMR のシリアル出力許
可 (SOE) ビットで出力を停止し , TDR へダミーデータを書き込んでください。)
427
■ マスタ−スレーブ通信機能を変更
( 図 12.6-11 に , マルチプロセッサモード ( 動作モード 2) での UART の設定を示しま
す。→ 図 12.6-11 に , マルチプロセッサモード ( 動作モード 1) での UART の設定を示
します。)
図 12.6-11 動作モード 1 での UART の設定
( モード 0 → モード 1)
455
■ 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) の図
を変更
(ITBAH0 ∼ 2, ITBAL0 ∼ 2 → ITBAH0 ∼ ITBAH2 ( 上位バイト ))
(ITBA → ITBAL0 ∼ ITBAL2 ( 下位バイト ))
456
■ 10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼
ITMKL2) の図を変更
(ITMKH0 ∼ 2, ITMKL0 ∼ 2 → ITMKH0 ∼ ITMKH2 ( 上位バイト ))
(ITMK → ITMKL0 ∼ ITMKL2 ( 下位バイト ))
509
● コンペアレジスタライトタイミングの図を変更
(M → N)
(526)
■ デューティ変更を変更
(2. PWM タイマモードによる各レジスタ更新タイミングについての項目を削除 )
561
■ サブセカンドレジスタの図の WTBR2 のビットを変更
(7 6 5 4 3 2 1 0 → bit23 bit22 bit21 bit20 bit19 bit18 bit17 bit16)
582
<注意事項>を追加
586
[bit15 ∼ bit10] CT5 ∼ CT0 (A/D comparison time set) を変更
( 比較操作時間 (Compare Time) = CT 設定値 × CT 周期 × 10 + (4 × CLKP) → 比較操
作時間 (Compare Time) = CT 設定値 × CLKP 周期 × 10 + (4 × CLK 同期 ))
591
<注意事項>を追加
607 ∼ 614
第 25 章 クロックスーパバイザの章を追加
616
26.1 フラッシュメモリの概要の要約を変更
( 本シリーズには , 256K バイト (MB91F272) または 512K バイト (MB91F273) の
FLASH メモリが内蔵されています。→ 本シリーズには , 512K バイト (MB91F273(S)/
MB91F278(S)) のフラッシュメモリが内蔵されています。)
617
図 26.1-2 フラッシュメモリのメモリマップを変更
(618)
● フラッシュメモリのセクタマップ (256K バイト ) を削除
xv
ページ
650
変更内容(詳細は本文を参照してください。)
[bit0] : CPUF: CPU リセットフラグを変更
( クロックスーパバイザリセットの記述を追加 )
付表 A-1 I/O マップ (3 / 13) のアドレス 00015CH, 000160H のブロックを変更
657
660
( クロック補正 (MB91V280 およびサフィックス "W" 付き品種のみ ) → クロック補正
(MB91V280 およびサフィックス "S" 付き品種以外 ))
付表 A-1 I/O マップ (6 / 13) を変更
(000494H − 0004ACH → 000494H − 0004A8H)
(0004ACH クロックスーパバイザの行を追加 )
667
付表 A-1 I/O マップ (13 / 13) のブロックを変更
668
付表 B-1 割込みベクタテーブル (1 / 4) を変更
( 命令ブレーク例外 → システム予約 )
( オペランドブレークトラップ → システム予約 )
687
付図 D-3 各端子のタイミングチャートを変更
688
■ 基本構成を変更
( シングルチップモードで動作するプログラムあるいは内 ROM 外バスモードで動作
するプログラムのどちらかを選択して書き込むことができます。の記述を追加 )
変更箇所は , 本文中のページ左側の│によって示しています。
xvi
第1章
概要
FR ファミリは 32 ビット高性能 RISC CPU を使用
し , 高性能 / 高速な CPU 処理を要求される組込み
制御用に各種 I/O リソースやバス制御機構を内蔵し
た , 標準シングルチップマイクロコントローラで
す。
MB91270 シリーズの特長 , ブロックダイヤグラム ,
機能概要など全体を知るための基本的なことにつ
いて説明します。
1.1 特長
1.2 ブロックダイヤグラム
1.3 外形寸法図
1.4 端子配列図
1.5 メモリマップ
1.6 端子機能説明
1.7 入出力回路形式
1
第 1 章 概要
1.1
特長
MB91270 シリーズの特長を説明します。
■ FR CPU の特長
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 最大動作周波数 32MHz [PLL 使用:原発振 4MHz の場合 ]
• 16 ビット固定長命令 ( 基本命令 ), 1 命令 /1 サイクル
• メモリ−メモリ間転送 , ビット処理 , バレルシフトなどの命令
- 組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令
- 高級言語対応命令
• レジスタインターロック機能
- アセンブラ記述の容易化
• 乗算器の内蔵 / 命令レベルでのサポート
- 符号付 32 ビット乗算:5 サイクル
- 符号付 16 ビット乗算:3 サイクル
• 割込み (PC, PS の退避 ) :6 サイクル , 16 プライオリティレベル
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• FR ファミリとの命令互換
■ 外部バスインタフェース
• 最大動作周波数 16MHz
• 24 ビットアドレスフル出力可能 (16M バイト空間 )
• 8,16 ビットデータ出力
• 未使用データ / アドレス端子は汎用入出力ポートとして使用可能
• 最小 64K バイト単位で設定可能な完全独立な 4 領域の
チップセレクト出力が可能
• 各種メモリに対するインタフェースのサポート
SRAM, ROM/Flash
• 基本バスサイクル:2 サイクル
• 領域ごとに , プログラマブルでウェイト挿入可能な
自動ウェイトサイクル発生機構
• RDY 入力による外部ウェイトサイクル
2
第 1 章 概要
■ 内蔵メモリ
表 1.1-1 内蔵メモリの詳細を示します。
表 1.1-1 内蔵メモリの詳細
MB91V280
MB91F273(S)
MB91F278(S)
ROM/Flash
外部 SRAM
Flash
512K バイト
Flash
512K バイト
F-bus RAM
48K バイト
24K バイト
24K バイト
以下に周辺回路の概要を記載します。
各品種の搭載チャネル数については , 表 1.1-2 を確認してください。
■ DMAC (DMA Controller)
• 同時に最大 5 チャネルの動作が可能
• 2 つの転送要因 ( 内部ペリフェラル / ソフトウェア )
■ ビットサーチモジュール (REALOS 使用 )
• 1 ワード中の MSB から最初の "1"/"0" の変化ビット位置をサーチ
■ LIN 対応 UART:最大 7 チャネル
• 非同期 (Start-Stop 同期 ) 通信 , クロック同期通信
• Synch-Break 検出
• チャネルごとにボーレートジェネレータ搭載
• SPI 対応可能 ( モード 2:クロック同期通信モード )
■ CAN コントローラ:最大 3 チャネル
• 最高転送レート:1Mbps
• 32 メッセージバッファ (MB91V280 は 128 メッセージバッファ )
■ 各種タイマ
• 16 ビットリロードタイマ 3 チャネル (REALOS 用 1 チャネル含 )
内部クロックは 2/8/32 分周から選択可能
• 16 ビットフリーランタイマ:4 チャネル
• アウトプットコンペア:8 チャネル
インプットキャプチャ:8 チャネル
• 8/16 ビット PPG:8 ビット× 16 チャネル または 16 ビット× 8 チャネル
3
第 1 章 概要
■ 割込みコントローラ:最大 40 チャネル
• 内部ペリフェラルからの割込み
• 優先レベルをソフトウェアにより設定可能 (16 レベル )
■ D/A コンバータ:2 チャネル
• 8 ビット /10 ビット分解能 , R-2R 型
■ A/D コンバータ:24 チャネル (MB91V280 では+ 8 チャネルを独立モジュールとし
て提供 )
• 10 ビット分解能
• 逐次変換型
変換時間:3µs
• 変換モード ( 単発変換モード , 連続変換モード )
• 起動要因 ( ソフト / 外部トリガ / ペリフェラル割込み )
■ その他のインターバルタイマ / カウンタ
• 8/16 ビットアップダウンカウンタ:
8 ビット× 4 チャネル または 16 ビット× 2 チャネル
• 16 ビットタイムベースタイマ / ウォッチドッグタイマ
■ I2C インタフェース (400kbps 対応 ) :3 チャネル
• マスタ / スレーブ送受信
• アービトレーション機能 , クロック同期化機能
■ ハードウェアウォッチドッグ
• インターバル時間:569ms( 最小 ), 771ms( 最大 )
トリミング機能付き自励発振回路 (100kHz) を使用
■ I/O ポート
• 端子ごとにプルアップ , プルダウンの制御可能
• 端子ごとに CMOS シュミットトリガ , CMOS オートモーティブシュミットトリガを
入力レベルとして選択可能
• 端子レベルの直接読出し可能
• 最大 128 ポート
4
第 1 章 概要
■ その他の特長
• クロックソースとして発振回路内蔵し , PLL 逓倍も選択可能
• リセット端子として INITX を用意
• その他 , ウォッチドッグタイマリセット , ソフトウェアリセットあり
• 低消費電力モードとしてストップモード , スリープモード , リアルタイムクロック
モードをサポート
32kHz CPU 動作による低消費電力動作が可能 ( 型格 "S" なし品種のみ )
• ギア機能
• タイムベースタイマ内蔵
• ワイルドレジスタ
• クロック出力 ( クロックモニタ )
• クロックモジュレータ
• クロック監視機能
メインクロックの停止を内部自励発振にて監視するものです。
• パッケージ
LQFP-100
• CMOS テクノロジ (0.35µm)
• 電源電圧:3.5V ∼ 5.5V
内部回路は , 内蔵降圧回路により 3.3V が供給されます。
5
第 1 章 概要
■ 機能比較
表 1.1-2 に MB91270 シリーズの機能比較を示します。
表 1.1-2 機能比較
品種
項目
パッケージ
MB91V280
PGA-401
MB91F278(S)
LQFP-100
内蔵 ROM/Flash
外部 SRAM
Flash
512K バイト
Flash
512K バイト
RAM
48K バイト
24K バイト
24K バイト
外部バス
アドレス:
24 ビット
データ:
16 ビット
アドレス:24 ビット
データ:16 ビット
( マルチプレクスのみ )
外部割込み
40 チャネル
16 チャネル
DMA コントローラ
5 チャネル
クロックモジュレータ
クロック監視
あり
あり
なし
クロックモニタ
32kHz サブクロック
オプション
( 型格 "S" なし品種のみ )
あり
あり
3 チャネル
CAN コントローラ
あり
あり
リアルタイムクロック
(128 メッセージ
バッファ )
LIN 対応 UART
1 チャネル
(32 メッセージバッファ )
7 チャネル
2
I C インタフェース
3 チャネル
16 ビットリロードタイマ
3 チャネル
8/16 ビットアップダウンカウンタ
2 チャネル
16 ビットフリーランタイマ
4 チャネル
インプットキャプチャ
8 チャネル
アウトプットコンペア
8 チャネル
8 チャネル× 16 ビット
16 チャネル× 8 ビット
8/16 ビット PPG
6
MB91F273(S)
10 ビット A/D コンバータ
24 チャネル
+
8 チャネル
24 チャネル
8/10 ビット
D/A コンバータ
2 チャネル
なし
端子プルアップ / ダウン
全端子
「1.6 端子機能説明」参照
入力レベルセレクタ
全端子
「1.6 端子機能説明」参照
デバッグサポート
DSU4
ワイルドレジスタ
第 1 章 概要
1.2
ブロックダイヤグラム
MB91270 シリーズのブロックダイヤグラムを示します。
■ MB91270 シリーズのブロックダイヤグラム
図 1.2-1 MB91270 シリーズのブロックダイヤグラム
FR60 Lite
CPU コア
クロック
ジェネレータ
D-bus
デバッグ
サポート
32
DMA
コントローラ
電圧
レギュレータ
32
32
ビットサーチ
モジュール
ウォッチドッグ
タイマ
I-bus
フラッシュメモリ/
MASK ROM
ハーバードバス
コンバータ
F-bus
32
F-busRAM
32
外部バス
24ビットアドレス
16ビットデータ
CAN
外部バス
インタフェース
R-bus
アダプタ
16
クロック
スーパバイザ
D/Aコンバータ
ハードウェア
ウォッチドッグ
A/Dコンバータ
R-bus
LINUART0
リロード
タイマ
LINUART
ICU
16ビット
サブクロック
クロック
モニタ
フリーラン
タイマ
リアルタイム
クロック
OCU
16ビット
I2C
400kHz
外部割込み
アップダウンカウンタ
8/16ビット
PPG
8/16ビット
7
第 1 章 概要
外形寸法図
1.3
MB91270 シリーズの外形寸法図を示します。
■ LQFP 100 ピン
図 1.3-1 FPT-100P-M05 の外形寸法図
プラスチック・LQFP, 100 ピン
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
14.0× 14.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.65g
コード(参考)
(FPT-100P-M05)
プラスチック・LQFP, 100 ピン
(FPT-100P-M05)
P-LFQFP100-14×14-0.50
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
16.00±0.20(.630±.008)SQ
* 14.00±0.10(.551±.004)SQ
75
51
76
50
0.08(.003)
Details of "A" part
+0.20
100
26
1
25
C
0.20±0.05
(.008±.002)
0.08(.003)
M
0.145±0.055
(.0057±.0022)
2003 FUJITSU LIMITED F100007S-c-4-6
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
http://edevice.fujitsu.com/jp/datasheet/jf-ovpklv.html
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
8
0.10±0.10
(.004±.004)
(Stand off)
0°~8°
"A"
0.50(.020)
+.008
1.50 –0.10 .059 –.004
(Mounting height)
INDEX
第 1 章 概要
1.4
端子配列図
MB91270 シリーズの端子配列図を示します。
■ LQFP 100 ピン
P25/A21/IN1
P24/A20/IN0
P23/A19/PPGF
P22/A18/PPGD
P21/A17/PPGB
P20/A16/PPG9
P17/AD15/SCK4
P16/AD14/SOT4
P15/AD13/SIN4
X0
X1
VSS
VCC
P14/AD12/SCK3
P13/AD11/SOT3
P12/AD10/SIN3/INT11R
P11/AD09/TOT1
P10/AD08/TIN1
P07/AD07/INT15
P06/AD06/INT14
P05/AD05/SCK6/INT13
P04/AD04/SOT6/INT12
P03/AD03/SIN6/INT11
P02/AD02/SCK5/INT10
P01/AD01/SOT5/INT9
100
99
98
97
96
95
94
93
92
91
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
図 1.4-1 FPT-100P-M05 の端子配列
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
AVRL
AVSS
P60/AN0/PPG0
P61/AN1/PPG2
P62/AN2/PPG4
P63/AN3/PPG6
P64/AN4/PPG8
P65/AN5/PPGA
P66/AN6/PPGC
P67/AN7/PPGE
VSS
P70/AN16/INT0
P71/AN17/INT1
P72/AN18/INT2
P73/AN19/INT3
P74/AN20/INT4
P75/AN21/INT5
MD2
MD1
VCC
P87/SCK1
P86/SOT1
P85/SIN1
P84/SCK0/INT15R
P83/TOT2/SOT0
P82/TIN2/SIN0/INT14R
P81/TOT0/INT13R/CKOT
P80/TIN0/INT12R/ADTG
P77/AN23/INT7/SCL2
P76/AN22/INT6/SDA2
INIT
MD0
AVRH
63
62
61
60
59
58
57
56
55
54
53
52
51
30
13
14
15
16
17
18
19
20
21
22
23
24
25
AVCC
VCC
VSS
C
P42/IN6/RX1/INT9R
P43/IN7/TX1
P44/SDA0/FRCK0
P45/AIN2/SCL0/FRCK1
P46/BIN2/SDA1
P47/ZIN2/SCL1
P50/AN8/SIN2
P51/AN9/SOT2
P52/AN10/SCK2
P53/AN11/BIN1
29
PA0/RX0/INT8R
P97/OUT3
P96/OUT2/ZIN0
P95/OUT1/BIN0
P94/OUT0/AIN0
P93/PPG7/ZIN3/CS3
P92/PPG5/BIN3/CS2
P91/PPG3/AIN3/CS1
P90/PPG1/CS0
VSS
P57/AN15/DAO1
73
72
71
70
69
68
67
66
65
64
28
P32/WR0/RX2/INT10R
P33/WR1/TX2
P34/BRQ/OUT4
P35/BGRNT/OUT5
P36/RDY/OUT6
P37/SYSCLK/OUT7
P40/(X0A)
P41/(X1A)
3
4
5
6
7
8
9
10
11
12
P56/AN14/DAO0
P30/AS/IN4
P31/RD/IN5
27
P00/AD00/SIN5/INT8
PA1/TX0
26
75
74
P55/AN13/ZIN1
1
2
P54/AN12/AIN1
P26/A22/IN2
P27/A23/IN3
9
第 1 章 概要
1.5
メモリマップ
MB91270 シリーズのメモリマップを示します。
■ MB91270 シリーズのメモリマップ
図 1.5-1 MB91270 シリーズのメモリマップ
MB91V280
MB91F273 (S)
MB91F278 (S)
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
CAN
CAN
0000 0000H
ダイレクトアドレッシング領域
“ I/O マップ ” を参照してください。
0000 0400H
0001 0000H
0002 0000H
0002 0500H
アクセス禁止
0003 4000H
0003 A000H
0003 D800H
アクセス禁止
内蔵 RAM
48 K バイト
内蔵 RAM
24 K バイト
0004 0000H
アクセス禁止
アクセス禁止
エミュレー
ション
SRAM 領域
Flash
512 K バイト
外部領域
外部領域
0008 0000H
0010 0000H
FFFF FFFFH
<注意事項>
MB91V280 のエミュレーション SRAM 領域の初期値は 512K バイト (0x80000-0x100000)
です。SRAM 領域として最大 1024K バイト (0x50000-0x150000) までの領域をサポート
します。
10
第 1 章 概要
1.6
端子機能説明
端子機能説明を示します。
■ 端子機能説明
表 1.6-1 端子機能説明 (1 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
90
X1
X1
OB
発振子出力端子です。
91
X0
X0
OA
発振子入力端子です。
52
INIT
INIT
N
リセット入力端子 "L" アクティブです。
J
動作モード指定用入力端子 VCC または VSS に直結しま
す。
49 ∼ 51
MD2 ∼ MD0 MD2 ∼ MD0
説明
ポート 0
P00
75
P00/AD00/
SIN5/INT8
汎用入出力ポート シングルチップモードで有効です。
AD00
T
INT8
外部割込み要求 8 入力端子です。
SIN5
LIN-UART5 用シリアルデータ入力端子です。
P01
76
P01/AD01/
SOT5/INT9
汎用入出力ポート シングルチップモードで有効です。
AD01
T
77
外部割込み要求 9 入力端子です。
SOT5
LIN-UART5 用シリアルデータ出力端子です。
汎用入出力ポート シングルチップモードで有効です。
AD02
T
78
外部アドレス / データバス入出力端子 bit2 です。
外部バスが有効の場合にこの機能は有効です。
INT10
外部割込み要求 10 入力端子です。
SCK5
LIN-UART5 用クロック入出力端子です。
P03
P03/AD03/
SIN6/INT11
外部アドレス / データバス入出力端子 bit1 です。
外部バスが有効の場合にこの機能は有効です。
INT9
P02
P02/AD02/
SCK5/INT10
外部アドレス / データバス入出力端子 bit0 です。
外部バスが有効の場合にこの機能は有効です。
汎用入出力ポート シングルチップモードで有効です。
AD03
T
INT11
SIN6
外部アドレス / データバス入出力端子 bit3 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 11 入力端子です。
LIN-UART6 用シリアルデータ入力端子です。
11
第 1 章 概要
表 1.6-1 端子機能説明 (2 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
P04
79
P04/AD04/
SOT6/INT12
汎用入出力ポート シングルチップモードで有効です。
AD04
T
80
外部割込み要求 12 入力端子です。
SOT6
LIN-UART6 用シリアルデータ出力端子です。
汎用入出力ポート シングルチップモードで有効です。
AD05
T
P06/AD06/
INT14
外部割込み要求 13 入力端子です。
SCK6
LIN-UART6 用クロック入出力端子です。
AD06
汎用入出力ポート シングルチップモードで有効です。
T
INT14
P07AD07/
INT15
AD07
外部アドレス / データバス入出力端子 bit6 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 14 入力端子です。
P07
82
外部アドレス / データバス入出力端子 bit5 です。
外部バスが有効の場合にこの機能は有効です。
INT13
P06
81
外部アドレス / データバス入出力端子 bit4 です。
外部バスが有効の場合にこの機能は有効です。
INT12
P05
P05/AD05/
SCK6/INT13
説明
汎用入出力ポート シングルチップモードで有効です。
T
INT15
外部アドレス / データバス入出力端子 bit7 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 15 入力端子です。
ポート 1
P10
83
P10/AD08/
TIN1
AD08
汎用入出力ポート シングルチップモードで有効です。
T
TIN1
リロードタイマ 1 用イベント入力端子です。
P11
84
P11/AD09/
TOT1
AD09
汎用入出力ポート シングルチップモードで有効です。
T
TOT1
P12/AD10/
SIN3/INT11R
汎用入出力ポート シングルチップモードで有効です。
AD10
T
SIN3
外部割込み要求 11 入力端子 (EISSR で設定 ) です。
P13
P13/AD11/
SOT3
AD11
SOT3
12
外部アドレス / データバス入出力端子 bit10 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART3 用シリアルデータ入力端子です。
INT11R
86
外部アドレス / データバス入出力端子 bit9 です。
外部バスが有効の場合にこの機能は有効です。
リロードタイマ 1 用出力端子です。
P12
85
外部アドレス / データバス入出力端子 bit8 です。
外部バスが有効の場合にこの機能は有効です。
汎用入出力ポート シングルチップモードで有効です。
T
外部アドレス / データバス入出力端子 bit11 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART3 用シリアルデータ出力端子です。
第 1 章 概要
表 1.6-1 端子機能説明 (3 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
P14
87
P14/AD12/
SCK3
AD12
汎用入出力ポート シングルチップモードで有効です。
T
SCK3
P15/AD13/
SIN4
AD13
汎用入出力ポート シングルチップモードで有効です。
T
SIN4
P16/AD14/
SOT4
AD14
汎用入出力ポート シングルチップモードで有効です。
T
SOT4
P17/AD15/
SCK4
AD15
外部アドレス / データバス入出力端子 bit14 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART4 用シリアルデータ出力端子です。
P17
94
外部アドレス / データバス入出力端子 bit13 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART4 用シリアルデータ入力端子です。
P16
93
外部アドレス / データバス入出力端子 bit12 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART3 用クロック入出力端子です。
P15
92
説明
汎用入出力ポート シングルチップモードで有効です。
T
SCK4
外部アドレス / データバス入出力端子 bit15 です。
外部バスが有効の場合にこの機能は有効です。
LIN-UART4 用クロック入出力端子です。
ポート 2
P20
95
P20/A16/
PPG9
A16
汎用入出力ポート シングルチップモードで有効です。
A
PPG9
PPG9 用出力端子です。
P21
96
P21/A17/
PPGB
A17
汎用入出力ポート シングルチップモードで有効です。
A
PPGB
P22/A18/
PPGD
A18
汎用入出力ポート シングルチップモードで有効です。
A
PPGD
P23/A19/
PPGF
AD19
汎用入出力ポート シングルチップモードで有効です。
A
PPGF
P24/A20/IN0
∼
P27/A23/IN3
A20 ∼ A23
IN0 ∼ IN3
外部アドレスバス出力端子 bit19 です。
外部バスが有効の場合にこの機能は有効です。
PPGF 用出力端子です。
P24 ∼ P27
99, 100,
1, 2
外部アドレスバス出力端子 bit18 です。
外部バスが有効の場合にこの機能は有効です。
PPGD 用出力端子です。
P23
98
外部アドレスバス出力端子 bit17 です。
外部バスが有効の場合にこの機能は有効です。
PPGB 用出力端子です。
P22
97
外部アドレスバス出力端子 bit16 です。
外部バスが有効の場合にこの機能は有効です。
汎用入出力ポート シングルチップモードで有効です。
A
外部アドレスバス出力端子 bit20 ∼ bit23 です。
外部バスが有効の場合にこの機能は有効です。
インプットキャプチャ ICU0 ∼ ICU3 用データサンプル
入力端子です。
13
第 1 章 概要
表 1.6-1 端子機能説明 (4 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
説明
ポート 3
P30
3
P30/AS/IN4
AS
汎用入出力ポート シングルチップモードで有効です。
A
インプットキャプチャ ICU4 用データサンプル入力端子
IN4
です。
P31
4
P31/RD/IN5
RD
汎用入出力ポート シングルチップモードで有効です。
A
P32/WR0/
RX2/INT10R
です。
P32
汎用入出力ポート シングルチップモードで有効です。
WR0
外部データバスライトストローブ出力端子です。
外部バスが有効の場合に有効です。
WR0は16ビットアクセスでのデータの上位8ビットもし
くは 8 ビットアクセスでのデータのライトストローブ
として使用します。
A
RX2
CAN2 RX 入力端子 (MB91V280 のみ ) です。
INT10R
6
7
P33/WR1/
TX2
P34/BRQ/
OUT4
外部割込み要求 10 入力端子 (EISSR で設定 ) です。
P33
汎用入出力ポート シングルチップモードで有効です。
WR1
外部データバス下位 8 ビットのライトストローブ出力
端子です。
外部バス有効かつ外部バス 16 ビットモードが選択され
たときに有効です。
A
TX2
CAN2 TX 出力端子 (MB91V280 のみ ) です。
P34
汎用入出力ポート シングルチップモードで有効です。
BRQ
T
(A)
OUT4
P35/BGRNT/
OUT5
BGRNT
汎用入出力ポート シングルチップモードで有効です。
A
OUT5
P36/RDY/
OUT6
RDY
OUT6
14
外部バスアクノリッジ出力端子です。
外部バス有効かつバスリクエスト機能有効で有効
(MB91V280 のみ ) です。
アウトプットコンペア OCU5 用波形出力端子です。
P36
9
外部バスリクエスト入力端子です。
外部バス有効かつバスリクエスト機能有効で有効
(MB91V280 のみ ) です。
アウトプットコンペア OCU4 用波形出力端子です。
P35
8
外部リードストローブ出力端子です。
外部バスが有効の場合にこの機能は有効です。
インプットキャプチャ ICU5 用データサンプル入力端子
IN5
5
外部アドレスストローブ出力端子です。
外部バスが有効の場合にこの機能は有効です。
汎用入出力ポート シングルチップモードで有効です。
T
外部レディ入力端子です。
外部バス有効かつバスリクエスト機能有効で有効です。
アウトプットコンペア OCU6 用波形出力端子です。
第 1 章 概要
表 1.6-1 端子機能説明 (5 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
P37
10
P37/SYSCLK/
OUT7
SYSCLK
説明
汎用入出力ポート シングルチップモードで有効です。
外部クロック出力端子です。
外部バスが有効の場合にこの機能は有効です。
A
OUT7
アウトプットコンペア OCU7 用波形出力端子です。
ポート 4
11, 12
P40, P41
A
汎用入出力ポートです ( 型格サフィックス "S" あり品
種)。
X0A, X1A
WA
WB
サブクロック発振子入力端子です ( 型格サフィックス
"S" なし品種 )。
P40/(X0A),
P41/(X1A)
P42
16
P42/IN6/RX1/
INT9R
汎用入出力ポートです。
インプットキャプチャ ICU6 用データサンプル入力端子
IN6
A
RX1
CAN1 RX 入力端子です (MB91V280 のみ )。
INT9R
外部割込み要求 9 入力端子です (EISSR で設定 )。
P43
17
18
P43/IN7/TX1
P44/SDA0/
FRCK0
IN7
汎用入出力ポートです。
A
P44
汎用入出力ポートです。
SDA0
C
FRCK1
汎用入出力ポートです。
I2C0 用シリアルクロック入出力端子です。
C
P46
SDA1
汎用入出力ポートです。
C
P47
P47/ZIN2/
SCL1
SCL1
ZIN2
I2C1 用シリアルデータ入出力端子です。
アップダウンカウンタ 2/3 用 16/8 ビットダウンカウン
ト入力端子です。
BIN2
21
16 ビット入出力タイマ 1 用入力端子です。
アップダウンカウンタ 2/3 用 16/8 ビットアップカウン
ト入力端子です。
AIN2
P46/BIN2/
SDA1
I2C0 用シリアルデータ入出力端子です。
16 ビット入出力タイマ 0 用入力端子です。
SCL0
20
です。
CAN1 TX 出力端子です。(MB91V280 のみ )。
P45
19
インプットキャプチャ ICU7 用データサンプル入力端子
TX1
FRCK0
P45/AIN2/
SCL0/FRCK1
です。
汎用入出力ポートです。
C
I2C1 用シリアルクロック入出力端子です。
アップダウンカウンタ 2/3 用 16/8 ビットリセット入力
端子です。
15
第 1 章 概要
表 1.6-1 端子機能説明 (6 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
説明
ポート 5
P50
22
P50/AN8/
SIN2
AN8
汎用入出力ポートです。
D
SIN2
LIN-UART2 用シリアルデータ入力端子です。
P51
23
P51/AN9/
SOT2
AN9
汎用入出力ポートです。
D
SOT2
24
AN10
汎用入出力ポートです。
D
SCK2
P53/AN11/
BIN1
AN11
汎用入出力ポートです。
D
P54
P54/AN12/
AIN1
AN12
汎用入出力ポートです。
D
P55
P55/AN13/
ZIN1
AN13
汎用入出力ポートです。
D
P56
P56/AN14/
DAO0
AN14
汎用入出力ポートです。
E
P57
P57/AN15/
DAO1
AN15
DAO1
16
A/D コンバータ用アナログ入力端子です。
D/A コンバータ用アナログ出力端子 0 です (MB91V280
のみ ) 。
DAO0
29
A/D コンバータ用アナログ入力端子です。
16 ビットアップダウンカウンタ 1 用 8 ビットリセット
入力端子です。
ZIN1
28
A/D コンバータ用アナログ入力端子です。
16 ビットアップダウンカウンタ 1 用 8 ビットアップカ
ウント入力端子です。
AIN1
27
A/D コンバータ用アナログ入力端子です。
16 ビットアップダウンカウンタ 1 用 8 ビットダウンカ
ウント入力端子です。
BIN1
26
A/D コンバータ用アナログ入力端子です。
LIN-UART2 用クロック入出力端子です。
P53
25
A/D コンバータ用アナログ入力端子です。
LIN-UART2 用シリアルデータ出力端子です。
P52
P52/AN10/
SCK2
A/D コンバータ用アナログ入力端子です。
汎用入出力ポートです。
E
A/D コンバータ用アナログ入力端子です。
D/A コンバータ用アナログ出力端子 1 です (MB91V280
のみ ) 。
第 1 章 概要
表 1.6-1 端子機能説明 (7 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
説明
ポート 6
P60 ∼ P67
汎用入出力ポートです。
AN0 ∼ AN7
34
∼
41
P60/AN0/
PPG0
∼
P67/AN7/
PPGE
PPG0
PPG2
PPG4
PPG6
PPG8
PPGA
PPGC
PPGE
A/D コンバータ用アナログ入力端子です。
D
PPG 用出力端子です。
ポート 7
43
∼
48
P70/AN16/
INT0
∼
P75/AN21/
INT5
P70 ∼ P75
AN16 ∼
AN21
汎用入出力ポートです。
D
A/D コンバータ用アナログ入力端子です。
INT0 ∼ INT5
外部割込み要求 0 ∼ 5 入力端子です。
P76
53
P76/AN22/
INT6/SDA2
汎用入出力ポートです。
AN22
INT6
A/D コンバータ用アナログ入力端子です。
CA
外部割込み要求 6 入力端子です。
I2C2 用シリアルデータ入出力端子です。
SDA2
P77
54
P77/AN23/
INT7/SCL2
汎用入出力ポートです。
AN23
INT7
A/D コンバータ用アナログ入力です。
CA
外部割込み要求 7 入力端子です。
I2C2 用シリアルクロック入出力端子です。
SCL2
ポート 8
P80
55
P80/TIN0/
INT12R/
ADTG
汎用入出力ポートです。
TIN0
ADTG
A
A/D コンバータ用トリガ入力端子です。
INT12R
外部割込み要求 12 入力端子です (EISSR で設定 ) 。
P81
56
P81/TOT0/
INT13R/
CKOT
汎用入出力ポートです。
TOT0
CKOT
A
外部割込み要求 13 入力端子です (EISSR で設定 )。
P82
P82/TIN2/
SIN0/INT14R
汎用入出力ポートです。
SIN0
TIN2
INT14R
リロードタイマ 0 用出力端子です。
クロックモニタ用出力端子です。
INT13R
57
リロードタイマ 0 用イベント入力端子です。
A
LIN-UART0 用シリアルデータ入力端子です。
リロードタイマ 2 用イベント入力端子です。
外部割込み要求 14 入力端子です (EISSR で設定 )。
17
第 1 章 概要
表 1.6-1 端子機能説明 (8 / 14)
端子番号
端子名
58
P83/TOT2/
SOT0
機能名
入出力
回路形式 *
P83
SOT0
汎用入出力ポートです。
A
TOT2
59
SCK0
汎用入出力ポートです。
A
INT15R
P85/SIN1
SIN1
A
P86/SOT1
SOT1
A
P87/SCK1
SCK1
汎用入出力ポートです。
LIN-UART1 用シリアルデータ出力端子です。
P87
62
汎用入出力ポートです。
LIN-UART1 用シリアルデータ入力端子です。
P86
61
LIN-UART0 用クロック入出力端子です。
外部割込み要求 15 入力端子 です (EISSR で設定 )。
P85
60
LIN-UART0 用シリアルデータ出力端子です。
リロードタイマ 2 用出力端子です。
P84
P84/SCK0/
INT15R
説明
A
汎用入出力ポートです。
LIN-UART1 用クロック入出力端子です。
ポート 9
P90
65
66
67
68
P90/PPG1/
CS0
P91/PPG3/
AIN3/CS1
P92/PPG5/
BIN3/CS2
P93/PPG7/
ZIN3/CS3
CS0
A
外部チップセレクト 0 です。
外部バスが有効の場合にこの機能は有効です。
PPG1
PPG1 用出力端子です。
P91
汎用入出力ポートです。
CS1
外部チップセレクト 1 です。
外部バスが有効の場合にこの機能は有効です。
A
PPG3
PPG3 用出力端子です。
AIN3
アップダウンカウンタ 3 用 8 ビットアップカウント入
力端子です。
P92
汎用入出力ポートです。
CS2
外部チップセレクト 2 です。
外部バスが有効の場合にこの機能は有効です。
A
PPG5
PPG5 用出力端子です。
BIN3
アップダウンカウンタ 3 用 8 ビットダウンカウント入
力端子です。
P93
汎用入出力ポートです。
CS3
外部チップセレクト 3 です。
外部バスが有効の場合にこの機能は有効です。
A
PPG7
ZIN3
18
汎用入出力ポートです。
PPG7 用出力端子です。
アップダウンカウンタ 3 用 8 ビットリセット入力端子
です。
第 1 章 概要
表 1.6-1 端子機能説明 (9 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
P94
69
P94/OUT0/
AIN0
OUT0
汎用入出力ポートです。
A
P95
P95/OUT1/
BIN0
OUT1
汎用入出力ポートです。
A
P96
P96/OUT2/
ZIN0
OUT2
汎用入出力ポートです。
A
P97
P97/OUT3
OUT3
アウトプットコンペア OCU2 用波形出力端子です。
アップダウンカウンタ 0/1 用 16/8 ビットリセット入力
端子です。
ZIN0
72
アウトプットコンペア OCU1 用波形出力端子です。
アップダウンカウンタ 0/1 用 16/8 ビットダウンカウン
ト入力端子です。
BIN0
71
アウトプットコンペア OCU0 用波形出力端子です。
アップダウンカウンタ 0/1 用 16/8 ビットアップカウン
ト入力端子です。
AIN0
70
説明
A
汎用入出力ポートです。
アウトプットコンペア OCU3 用波形出力端子です。
ポート A
PA0
73
PA0/RX0/
INT8R
RX0
汎用入出力ポートです。
A
INT8R
外部割込み要求 8 入力端子です (EISSR で設定 )。
PA1
74
PA1/TX0
TX0
CAN0 用 RX 入力端子です。
A
汎用入出力ポートです。
CAN0 用 TX 出力です。
ポート B (MB91V280)
PB0
−
PB0
INT8-2
汎用入出力ポートです。
A
LIN-UART5 用シリアルデータ入力端子です (PFRB で
設定 ) 。
SIN5-2
PB1
−
PB1
INT9-2
汎用入出力ポートです。
A
SOT5-2
PB2
INT10-2
汎用入出力ポートです。
A
SCK5-2
PB3
INT11-2
SIN6-2
外部割込み要求 10 入力端子 です (EPFRB で設定 )。
LIN-UART5 用クロック入出力端子です (PFRB で設定 )。
PB3
−
外部割込み要求 9 入力端子です (EPFRB で設定 )。
LIN-UART5 用シリアルデータ出力端子です。
PB2
−
外部割込み要求 8 入力端子です (EPFRB で設定 ) 。
汎用入出力ポートです。
A
外部割込み要求 11 入力端子です (EPFEB で設定 )。
LIN-UART6 用シリアルデータ入力端子です (PFRB で
設定 ) 。
19
第 1 章 概要
表 1.6-1 端子機能説明 (10 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
PB4
−
PB4
INT12-2
汎用入出力ポートです。
A
SOT6-2
PB5
INT13-2
外部割込み要求 12 入力端子です (EPFRB で設定 )。
LIN-UART6 用シリアルデータ出力端子です。
PB5
−
説明
汎用入出力ポートです。
A
SCK6-2
外部割込み要求 13 入力端子 です (EPFRB で設定 ) 。
LIN-UART6 用クロック入出力端子です (PFRB で設定 )。
ポート C (MB91V280)
PC0
−
PC0
OUT4-2
汎用入出力ポートです。
A
INT0R
外部割込み要求 0 入力端子です (EISSR で設定 )。
PC1
−
PC1
OUT5-2
汎用入出力ポートです。
A
INT1R
PC2
SIN3-2
汎用入出力ポートです。
A
INT2R
PC3
SOT3-2
汎用入出力ポートです。
A
INT3R
PC4
SCK3-2
汎用入出力ポートです。
A
INT4R
PC5
SIN4-2
汎用入出力ポートです。
A
INT5R
PC6
SOT4-2
汎用入出力ポートです。
A
INT6R
PC7
SCK4-2
INT7R
20
LIN-UART4 用シリアルデータ出力端子です。
外部割込み要求 6 入力端子です (EISSR で設定 )。
PC7
−
LIN-UART4 用シリアルデータ入力端子です (PFRC で
設定 ) 。
外部割込み要求 5 入力端子です (EISSR で設定 )。
PC6
−
LIN-UART3 用クロック入出力端子です (PFRC で設定 )。
外部割込み要求 4 入力端子です (EISSR で設定 ) 。
PC5
−
LIN-UART3 用シリアルデータ出力端子です。
外部割込み要求 3 入力端子です (EISSR で設定 )。
PC4
−
LIN-UART3 用シリアルデータ入力端子です (PFRC で
設定 )。
外部割込み要求 2 入力端子です (EISSR で設定 )。
PC3
−
アウトプットコンペア OCU5 用出力端子です。
外部割込み要求 1 入力端子です (EISSR で設定 )。
PC2
−
アウトプットコンペア OCU4 用出力端子です。
汎用入出力ポートです。
A
LIN-UART4 用クロック入出力端子です (PFRC で設定 )。
外部割込み要求 7 入力端子です (EISSR で設定 )。
第 1 章 概要
表 1.6-1 端子機能説明 (11 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
説明
ポート D (MB91V280)
PD0
−
PD0
INT16
汎用入出力ポートです。
A
PPG9-2
PPG9(8) 用出力端子です。
PD1
−
PD1
INT17
汎用入出力ポートです。
A
PPGB-2
PD2
INT18
汎用入出力ポートです。
A
PPGD-2
PD3
INT19
汎用入出力ポートです。
A
PPGF-2
PD4
INT20
汎用入出力ポートです。
A
PD5
PD5
INT21
汎用入出力ポートです。
A
PD6
PD6
INT22
汎用入出力ポートです。
A
PD7
PD7
INT23
外部割込み要求 22 入力端子です。
インプットキャプチャ ICU2 用入力端子です (PFRD で
設定 )。
IN2-2
−
外部割込み要求 21 入力端子です。
インプットキャプチャ ICU1 用入力端子です (PFRD で
設定 ) 。
IN1-2
−
外部割込み要求 20 入力端子です。
インプットキャプチャ ICU0 用入力端子です (PFRD で
設定 )。
IN0-2
−
外部割込み要求 19 入力端子です。
PPGF(E) 用出力端子です。
PD4
−
外部割込み要求 18 入力端子です。
PPGD(C) 用出力端子です。
PD3
−
外部割込み要求 17 入力端子です。
PPGB(A) 用出力端子です。
PD2
−
外部割込み要求 16 入力端子です。
汎用入出力ポートです。
A
外部割込み要求 23 入力端子です。
インプットキャプチャ ICU3 用入力端子です。(PFRD
で設定 )。
IN3-2
ポート E (MB91V280)
PE0
−
PE0
A00
INT24
汎用入出力ポートです。
A
外部アドレスバス出力端子 bit0 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 24 入力端子です。
21
第 1 章 概要
表 1.6-1 端子機能説明 (12 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
PE1
−
PE1
A01
汎用入出力ポートです。
A
INT25
PE2
A02
汎用入出力ポートです。
A
INT26
PE3
A03
汎用入出力ポートです。
A
INT27
PE4
A04
汎用入出力ポートです。
A
INT28
PE5
A05
汎用入出力ポートです。
A
INT29
PE6
A06
汎用入出力ポートです。
A
INT30
PE7
A07
外部アドレスバス出力端子 bit6 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 30 入力端子です。
PE7
−
外部アドレスバス出力端子 bit5 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 29 入力端子です。
PE6
−
外部アドレスバス出力端子 bit4 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 28 入力端子です。
PE5
−
外部アドレスバス出力端子 bit3 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 27 入力端子です。
PE4
−
外部アドレスバス出力端子 bit2 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 26 入力端子です。
PE3
−
外部アドレスバス出力端子 bit1 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 25 入力端子です。
PE2
−
説明
汎用入出力ポートです。
A
INT31
外部アドレスバス出力端子 bit7 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 31 入力端子です。
ポート F (MB91V280)
PF0
−
PF0
A08
汎用入出力ポートです。
A
INT32
外部割込み要求 32 入力端子です。
PF1
−
PF1
A09
INT33
22
外部アドレスバス出力端子 bit8 です。
外部バスが有効の場合にこの機能は有効です。
汎用入出力ポートです。
A
外部アドレスバス出力端子 bit9 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 33 入力端子です。
第 1 章 概要
表 1.6-1 端子機能説明 (13 / 14)
端子番号
端子名
機能名
入出力
回路形式 *
PF2
−
PF2
A10
汎用入出力ポートです。
A
INT34
PF3
A11
汎用入出力ポートです。
A
INT35
PF4
A12
汎用入出力ポートです。
A
INT36
PF5
A13
汎用入出力ポートです。
A
INT37
PF6
A14
汎用入出力ポートです。
A
INT38
PF7
A15
外部アドレスバス出力端子 bit14 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 38 入力端子です。
PF7
−
外部アドレスバス出力端子 bit13 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 37 入力端子です。
PF6
−
外部アドレスバス出力端子 bit12 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 36 入力端子です。
PF5
−
外部アドレスバス出力端子 bit11 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 35 入力端子です。
PF4
−
外部アドレスバス出力端子 bit10 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 34 入力端子です。
PF3
−
説明
汎用入出力ポートです。
A
INT39
外部アドレスバス出力端子 bit15 です。
外部バスが有効の場合にこの機能は有効です。
外部割込み要求 39 入力端子です。
ポート G (MB91V280)
PG0
−
PG0
−
PG1
−
PG2
−
PG3
−
PG4
AN24
D
A/D コンバータ用アナログ入力端子です。
PG1
AN25
D
D
D
汎用入出力ポートです。
A/D コンバータ用アナログ入力端子です。
PG4
AN28
汎用入出力ポートです。
A/D コンバータ用アナログ入力端子です。
PG3
AN27
汎用入出力ポートです。
A/D コンバータ用アナログ入力端子です。
PG2
AN26
汎用入出力ポートです。
D
汎用入出力ポートです。
A/D コンバータ用アナログ入力端子です。
23
第 1 章 概要
表 1.6-1 端子機能説明 (14 / 14)
端子番号
端子名
−
PG5
−
PG6
−
PG7
機能名
入出力
回路形式 *
PG5
AN29
汎用入出力ポートです。
D
A/D コンバータ用アナログ入力端子です。
PG6
AN30
汎用入出力ポートです。
D
A/D コンバータ用アナログ入力端子です。
PG7
AN31
説明
汎用入出力ポートです。
D
A/D コンバータ用アナログ入力端子です。
電源端子
13, 63, 88
VCC
−
−
電源入力端子 (5V) です。
14, 42, 64,
89
VSS
−
−
電源入力端子 (0V) です。
15
C
−
−
電源安定化容量端子です。
30
AVCC
−
−
アナログ電源入力端子です。
31
AVRH
−
−
A/D コンバータ用基準電圧入力端子です。
この電源の投入 / 切断は必ず AVCC に AVRH 以上の電
位が印加されている状態で行ってください。
32
AVRL
−
−
A/D コンバータ用低基準電圧入力端子です。
33
AVSS
−
−
アナログ VSS 入力端子です。
*:入出力回路形式については ,「1.7 入出力回路形式」を参照してください。
24
第 1 章 概要
■ 入出力端子番号
表 1.6-2 入出力端子番号
パッケージ端子番号
端子名
LQFP100
X1
90
X0
91
INIT
52
P00 ∼ P07
75 ∼ 82
P10 ∼ P14
83 ∼ 87
P15 ∼ P17
92 ∼ 94
P20 ∼ P25
95 ∼ 100
P26, P27
1, 2
P30 ∼ P33
3∼6
P34, P35
7, 8
P36, P37
9, 10
P40, P41
11, 12
X0A, X1A
[11, 12]
P42 ∼ P47
16 ∼ 21
P50 ∼ P57
22 ∼ 29
P60 ∼ P67
34 ∼ 41
P70 ∼ P75
43 ∼ 48
P76, P77
53, 54
P80 ∼ P87
55 ∼ 62
P90 ∼ P93
65 ∼ 68
P94 ∼ P97
69 ∼ 72
PA0, PA1
73, 74
AVCC
30
AVRH
31
AVRL
32
AVSS
33
MD2 ∼ MD0
49 ∼ 51
VCC
13, 63, 88
VSS
14, 42, 64, 89
C
15
25
第 1 章 概要
入出力回路形式
1.7
入出力回路形式について示します。
■ I/O セル一覧
表 1.7-1 I/O セル一覧
入力
出力
ドライバ
コメント
入力停止
アナログ
ライン
CS/A スイッチ
停止
−
4mA
−
−
CS/A スイッチ
停止
−
4mA
−
C*
−
CS/A スイッチ
停止
−
3mA
I2C
CA *
−
CS/A スイッチ
停止
入力
3mA
I2C + ADC
D
Up/Down
スイッチ
CS/A スイッチ
停止
入力
4mA
ADC
E
−
CS/A スイッチ
停止
入出力
4mA
ADC + DAC
J
−
C
−
−
−
MD2 ∼ MD0
N
Up
CS(initx)
−
−
−
INITX
T
Up/Down
スイッチ
CS/A/TTL スイッチ
停止
−
4mA
TTL 入力あり
OA
OB
−
−
停止
−
−
4MHz
発振子
WA
WB
−
−
停止
−
−
32kHz
発振子
Pull Up/Down
(50kΩ)
CMOS(C)
CMOS Schmitt(CS)
Automotive(A)
A
Up/Down
スイッチ
B
Type
*:C および CA のポートが I2C インタフェース用に設定されている場合は , 出力は N-ch オープン
ドレインとなります。それ以外の場合では , CMOS 出力です。
■ 端子入力電圧
表 1.7-2 端子入力電圧
形式
VIL
種類
VIH
C
CMOS 入力
VSS + 0.3V
VCC − 0.3V
CS (initx)
CMOS シュミットトリガ入力 (INITX 端子用 )
0.2 × VCC
0.8 × VCC
CS
CMOS シュミットトリガ入力
0.3 × VCC
0.7 × VCC
A
CMOS オートモーティブシュミットトリガ入力
0.5 × VCC
0.8 × VCC
T
TTL 入力
0.8V
2.1V
26
第 1 章 概要
■ 入出力回路形式
表 1.7-3 入出力回路形式 ( 1 / 4 )
分類
回路
備考
プルアップ制御
P-ch
P-ch
Pout
N-ch
N-ch
Nout
A
• CMOS レベル出力
(IOL = 4mA, IOH = − 4mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
• プルアップ抵抗設定可能抵抗:
約 50kΩ
プルダウン制御
CMOS
ヒステリシス入力
Automotive入力
入力遮断用
スタンバイ制御
P-ch
Pout
N-ch
Nout
B
CMOS
ヒステリシス入力
• CMOS レベル出力
(IOL = 4mA, IOH = − 4mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
Automotive入力
入力遮断用
スタンバイ制御
C
P-ch
Pout
N-ch
Nout
CMOS
ヒステリシス入力
• CMOS レベル出力
(IOL = 3mA, IOH = − 3mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
Automotive入力
入力遮断用
スタンバイ制御
27
第 1 章 概要
表 1.7-3 入出力回路形式 ( 2 / 4 )
分類
回路
備考
P-ch
Pout
N-ch
Nout
CMOS
ヒステリシス入力
CA
• CMOS レベル出力
(IOL = 3mA, IOH = − 3mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
• A/D アナログ入力
Automotive入力
入力遮断用
スタンバイ制御
アナログ入力
プルアップ制御
D
P-ch
P-ch
Pout
N-ch
N-ch
Nout
プルダウン制御
CMOS
ヒステリシス入力
Automotive入力
入力遮断用
スタンバイ制御
アナログ入力
28
• CMOS レベル出力
(IOL = 4mA, IOH = − 4mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
• プルアップ抵抗設定可能抵抗:
約 50kΩ
• A/D アナログ入力
第 1 章 概要
表 1.7-3 入出力回路形式 ( 3 / 4 )
分類
回路
備考
P-ch
Pout
N-ch
Nout
CMOS
ヒステリシス入力
Automotive入力
E
• CMOS レベル出力
(IOL = 4mA, IOH = − 4mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
• A/D アナログ入力
• D/A アナログ出力
入力遮断用
スタンバイ制御
アナログ入力
アナログ出力
• CMOS ヒステリシス入力
J
N
CMOS
ヒステリシス入力
• CMOS ヒステリシス入力
• プルアップ抵抗値 : 約 50kΩ
プルアップ抵抗
CMOS
ヒステリシス入力
プルアップ制御
T
P-ch
P-ch
Pout
N-ch
N-ch
Nout
プルダウン制御
• CMOS レベル出力
(IOL = 4mA, IOH = − 4mA)
• CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
• Automotive 入力
( スタンバイ時入力遮断機能付き )
• TTL
( スタンバイ時入力遮断機能付き )
• プルアップ抵抗設定可能抵抗:
約 50kΩ
CMOS
ヒステリシス入力
Automotive入力
TTL入力
入力遮断用
スタンバイ制御
29
第 1 章 概要
表 1.7-3 入出力回路形式 ( 4 / 4 )
分類
回路
備考
発振回路
• 高速発振帰還抵抗 = 約 1MΩ
X1
OA
OB
X0
スタンバイ制御信号
X1A
WA
WB
Xout
X0A
スタンバイ制御信号
30
発振回路
• 低速発振帰還抵抗 = 約 10MΩ
第2章
デバイス使用上の注意
MB91270 シリーズの取扱い上の注意について説明
します。
2.1 デバイス使用上の注意
31
第 2 章 デバイス使用上の注意
2.1
デバイス使用上の注意
ラッチアップ防止 , 端子処理 , 回路の取扱い , および電源投入時の入力などについて
説明します。
■ ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC より高い電圧や VSS より低い電圧を印加した
場合 , または , VCC ∼ VSS 間に定格を超える電圧を印加した場合に , ラッチアップ現象
を生じることがあります。ラッチアップが生じると電源電流が激増し , 素子の熱破壊に
至ることがありますので使用に際しては最大定格を超えることのないよう十分に注意
してください。
■ 未使用入力端子の処理について
使用していない入力端子を開放のままにしておくと誤動作の原因となることがありま
すので , プルアップまたはプルダウンなどの処理をしてください。
■ 電源端子について
VCC・VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止するた
めにデバイス内部で同電位にすべきもの同士を接続してありますが , 不要輻射の低減・
グランドレベルの上昇によるストローブ信号の誤動作の防止・総出力電流規格を遵守
などのために , 必ずそれらすべてを外部で電源およびグランドに接続してください。ま
た , 電流供給源からできるかぎり低インピーダンスで本デバイスの VCC, VSS に接続す
るような配慮をお願いします。
さらに , 本デバイスの近くで , VCC と VSS の間に 0.1µF 程度のセラミックコンデンサを
バイパスコンデンサとして接続することをお勧めします。
本シリーズには , レギュレータが内蔵されています。本デバイスを 5 V 電源で使用す
る場合は , 5 V 電源を VCC 端子に供給し , レギュレータ用に必ず C 端子に 1 µF 程度の
バイパスコンデンサを接続してください。
■ 水晶発振回路について
X0, X1, X0A, X1A 端子の近辺のノイズは本デバイスの誤動作のもととなります。X0 と
X1, X0A と X1A および水晶発振子 ( あるいはセラミック発振子 ) さらにグランドへの
バイパスコンデンサはできるかぎり近くに配置するようにプリント板を設計してくだ
さい。
また , X0, X1, X0A, X1A 端子の回りをグランドで囲むようなプリント板アートワーク
は安定した動作を期待できますので , 強くお勧めします。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
32
第 2 章 デバイス使用上の注意
■ 外部クロック使用時の注意
外部クロックを使用する際には , 原則として X0 端子 , また X1 端子には X0 と逆相のク
ロックを同時に供給してください。ただし , この場合には STOP モード ( 発振停止モー
ド ) は使用しないでください。(STOP 時 X1 端子が "H" 出力で停止するため )
図 2.1-1 外部クロック使用例 ( 通常 )
X0
X1
<注意事項>
STOP モード ( 発振停止モード ) は使用できません。
■ サブクロックを使用しない場合の注意について
サブクロックを使用しない場合は , 1 系統品をご使用ください。2 系統品は必ず 100kHz
以下の振動子を接続してください。
■ NC, OPEN 端子の処理について
NC 端子 , OPEN 端子は , 必ず開放にして使用してください。
■ モード端子 (MD0 ∼ MD2) について
これらの端子は , VCC または VSS に直接つないで使用してください。ノイズにより誤っ
てテストモードに入ってしまうことを防ぐために , プリント板上の各モード端子と
VCC または VSS 間のパターン長をできるかぎり短くし , これらを低インピーダンスで
接続するようにしてください。
■ 電源投入時について
電源投入時は , INIT 端子を "L" レベルにしておくことが必要です。
■ 電源投入時の原振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間クロックを入力してください。
■ PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , クロック入力が
停止した場合には PLL 内部の自励発振回路の自走周波数で動作を継続し続ける場合が
あります。この動作は保証外の動作です。
■ 外バスの設定
本品種は , 外部バス 16 MHz の保証となっています。
DIVR1 ( 外部バス基本クロック分周設定レジスタ ) を初期値のまま , ベースクロックを 32
MHz に設定すると , 外バスも 32 MHz になります。ベースクロックを変更する際には , 外
部バスが 16 MHz を超えないように設定したのち , ベースクロックを変更してください。
■ プルアップコントロール
外部バス端子として使用する端子に対してプルアップ抵抗を付けると AC 規格を保証
できません。
33
第 2 章 デバイス使用上の注意
■ 同期モードのソフトウェアリセットについて ( 評価用品 MB91V280 のみ )
同期モードのソフトウェアリセットを使用するときは , STCR ( スタンバイ制御レジス
タ ) の SRST ビットに "0" を設定する前に , 以下 2 つの条件を必ず満たしてください。
• 割込み許可フラグ (I-Flag) を割込み禁止 (I-Flag=0) に設定する。
• NMI を使用しない。
34
第3章
CPU および制御部
FR ファミリの CPU コアの機能を知るために , アー
キテクチャ , 仕様 , 命令などについて説明します。
3.1 メモリ空間
3.2 内部アーキテクチャ
3.3 プログラミングモデル
3.4 データ構造
3.5 メモリマップ
3.6 分岐命令
3.7 EIT ( 例外・割込み・トラップ )
3.8 動作モード
3.9 クロック生成制御
3.10 デバイス状態制御
3.11 メイン発振安定待ちタイマ
35
第 3 章 CPU および制御部
メモリ空間
3.1
FR ファミリの論理アドレス空間は 4 G バイト (232 番地 ) あり , CPU はリニアにア
クセスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のように異なります。
• バイトデータアクセス:000H ∼ 0FFH
• ハーフワードアクセス:000H ∼ 1FFH
• ワードデータアクセス:000H ∼ 3FFH
■ メモリマップ
図 3.1-1 に , メモリ空間を示します。
図 3.1-1 メモリマップ
シングル
チップモード
内ROM
外バスモード
0000
0000H
0000
0400H
0001
0002
I/O
0000H
0000H アクセス禁止
0004
0005
0000H F-bus領域
0000H アクセス禁止
アクセス禁止
0010
0000H
I/O
ユーザ
ROM領域
外ROM
外バスモード
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
F-bus領域
ダイレクト
アドレッシング領域
I/Oマップ参照
F-bus領域
アクセス禁止
ユーザ
ROM領域
外部領域
アクセス禁止
外部領域
FFFF FFFFH
各モードの設定は , INIT ネゲート後のモードベクタフェッチにより決定します ( モー
ドの設定に関しては , 「3.8.2 モード設定」を参照してください ) 。
36
第 3 章 CPU および制御部
3.2
内部アーキテクチャ
ここでは , FR ファミリの内部アーキテクチャの構造および命令概要について説明し
ます。
■ 内部アーキテクチャの概要
FR ファミリ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用途に向けた
高機能命令を導入した , 高性能コアです。
37
第 3 章 CPU および制御部
3.2.1
内部アーキテクチャ
ここでは , 内部アーキテクチャの特長および構造について説明します。
■ 内部アーキテクチャの特長
• RISC アーキテクチャの採用
基本命令 1 命令 1 サイクル
• 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
• 4 G バイトのリニアなメモリ空間
• 乗算器の搭載
32 ビット× 32 ビット乗算 5 サイクル
16 ビット× 16 ビット乗算 3 サイクル
• 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
• I/O 操作用命令の強化
メモリ−メモリ転送命令
ビット処理命令
• 高いコード効率
基本命令語長 16 ビット
• 低消費電力
スリープモード / ストップモード
ギア機能
38
第 3 章 CPU および制御部
■ 内部アーキテクチャの構造
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット←→ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。
ハーバード←→プリンストン バスコンバータは I-bus, D-bus 双方に接続され , CPU とバ
スコントローラとのインタフェースを実現します。
図 3.2-1 に内部アーキテクチャの構造を示します。
図 3.2-1 内部アーキテクチャの構造
FR CPU
D-bus
I-bus
32
Iアドレス
ハーバード
32
外部アドレス
24
Iデータ
外部データ
Dアドレス
32
16
プリンストン
データ
RAM
バス
Dデータ
32
32ビット
Fアドレス
32
16ビット
Fデータ
32
コンバータ
バスコンバータ
16
F-bus
R-bus
周辺リソース
内部I/O
バスコンバータ
39
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。1 サイクルあたり 1 命令の実行を行うため , 5 段階の命令パイプライン方式を採
用しています。パイプラインは以下のステージから構成されています。
図 3.2-2 に , 命令パイプラインの構成を示します。
• 命令フェッチ (IF) …… 命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID) …… フェッチした命令をデコードします。レジスタの読出しも
行います。
• 実行 (EX) ……………… 演算を実行します。
• メモリアクセス (MA)… メモリに対するロードまたはストアのアクセスを行いま
す。
• ライトバック (WB)…… 演算結果 (またはロードされたメモリデータ) をレジスタに
書き込みます。
図 3.2-2 命令パイプライン
CLK
命令1
WB
命令2
MA
WB
命令3
EX
MA
WB
命令4
ID
EX
MA
WB
命令5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前にパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は , 原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモ
リウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイ
クル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い
場合も命令の実行速度が低下します。
■ 32 ビット←→ 16 ビットバスコンバータ
32 ビット←→ 16 ビットバスコンバータは , 32 ビット幅で高速アクセスされる F-bus と ,
16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU から内蔵周辺回
路へのデータアクセスを実現します。
CPU から R-bus に対し 32 ビット幅のアクセスがあった場合 , このバスコンバータがそ
れを 2 回の 16 ビット幅アクセスに変換してアクセスを行います。内蔵周辺回路の一部
にはアクセス幅に関して制限のあるものがあります。
40
第 3 章 CPU および制御部
■ ハーバード←→プリンストン バスコンバータ
ハーバード←→プリンストン バスコンバータは , CPU の命令アクセスとデータアクセ
スの整合をとり , 外部バスとのスムーズなインタフェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位を付
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
41
第 3 章 CPU および制御部
3.2.2
命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理
演算とビット操作およびダイレクトアドレッシング命令をサポートしています。
各命令は 16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効
率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
■ 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令と , 32 ビット÷ 32
ビットのステップ除算命令を持ちます。
また , レジスタに即値をセットする即値転送命令や , レジスタ間転送命令も備えていま
す。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
■ ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺回路 (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
■ 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては後述します。
42
第 3 章 CPU および制御部
■ 論理演算とビット操作
論理演算命令は汎用レジスタ間または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行うことが可能です。また , ビット操作命令はメモリ ( および
I/O) の内容を直接操作することができます。
メモリアドレッシングは一般的なレジスタ間接です。
■ ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタ間または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については
レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも
可能です。
■ その他の命令概要
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
43
第 3 章 CPU および制御部
3.3
プログラミングモデル
FR ファミリのプログラミングモデル , 汎用レジスタ , および専用レジスタについて
説明します。
■ 基本プログラミングモデル
図 3.3-1 に , FR ファミリの基本プログラミングモデルを示します。
図 3.3-1 基本プログラミングモデル
32ビット
〔初期値〕
R0
XXXX XXXXH
R1
汎用レジスタ
R12
R13
AC
R14
R15
プログラムカウンタ
PC
プログラムステータス
PS
テーブルベースレジスタ
TBR
リターンポインタ
RP
システムスタックポインタ SSP
44
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
MDL
XXXX XXXXH
FP
0000 0000H
SP
ILM
SCR
CCR
第 3 章 CPU および制御部
3.3.1
汎用レジスタ
レジスタ R0 ∼ R15 は汎用レジスタです。
各種演算におけるアキュムレータ , およびメモリアクセスのポインタとして使用さ
れます。
■ 汎用レジスタ
図 3.3-2 に , 汎用レジスタの構成を示します。
図 3.3-2 汎用レジスタの構成
32ビット
〔初期値〕
R0
R1
R12
R13
R14
R15
XXXX XXXXH
AC
FP
SP
XXXX XXXXH
0000 0000H
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
• R13:
仮想アキュムレータ
• R14:
フレームポインタ
• R15:
スタックポインタ
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , 00000000H (SSP の値 ) とな
ります。
45
第 3 章 CPU および制御部
3.3.2
専用レジスタ
専用レジスタは , 特定の目的のために使用します。
FR ファミリでは , 以下の専用レジスタが用意されています。
• PS (Program Status)
• CCR (Condition Code Register)
• SCR (System Condition code Register)
• ILM
• PC (Program Counter)
• TBR (Table Base Register)
• RP (Return Pointer)
• SSP (System Stack Pointer)
• USP (User Stack Pointer)
• 乗除算レジスタ (Multiply & Divide register)
■ PS (Program Status)
PS は , プログラムステータスを保持するレジスタで , ILM と SCR, CCR の 3 つのパー
トに分かれています。
未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
PS(Program Status) のレジスタ構成は , 以下のとおりです。
bit 31
16
20
ILM
46
10 8 7
SCR
0
CCR
第 3 章 CPU および制御部
■ CCR (Condition Code Register)
CCR(Condition Code Register) のレジスタ構成は , 以下のとおりです。
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
−
S
I
N
Z
V
C
[ 初期値 ]
--00XXXXB
[bit5] スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内 容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります。
( ただし , スタックに退避される値はクリアされる前の値です。)
1
USP が R15 として使用されます。
• リセットにより "0" にクリアされます。
• RETI 命令実行時は "0" に設定してください。
[bit4] 割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内 容
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です。)
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御され
ます。
• リセットにより "0" にクリアされます。
[bit3] ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内 容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
• リセットによる初期状態は不定です。
47
第 3 章 CPU および制御部
[bit2] ゼロフラグ
演算結果が 0 であったかどうかを示します。
値
内 容
0
演算結果が 0 以外の値であったことを示します。
1
演算結果が 0 であったことを示します。
• リセットによる初期状態は不定です。
[bit1] オーバフローフラグ
演算に用いたオペランドを 2 の補数で表現される整数であるとみなし , 演算の結果 ,
オーバフローが生じたかどうかを示します。
値
内 容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
• リセットによる初期状態は不定です。
[bit0] キャリフラグ
演算により , 最上位ビットからのキャリまたはボローが発生したかどうかを示しま
す。
値
内 容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
• リセットによる初期状態は不定です。
48
第 3 章 CPU および制御部
■ SCR (System Condition code Register)
SCR(System Condition code Register) のレジスタ構成は , 以下のとおりです。
bit10
bit9
bit8
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" に初期化されます。
• ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使
用時 , ユーザプログラム中で使用することはできません。
49
第 3 章 CPU および制御部
■ ILM
ILM のレジスタ構成は , 以下のとおりです。
bit20
bit19
bit18
bit17
bit16
ILM4
ILM3
ILM2
ILM1
ILM0
[ 初期値 ]
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。
• 元の値が 16 ∼ 31 の時:
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると ,
( 指定した値+ 16) という値が転送されます。
• 元の値が 0 ∼ 15 の時:
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15(01111B) に初期化されます。
■ PC (Program Counter)
PC(Program Counter) のレジスタ構成は , 以下のとおりです。
bit31
bit0
PC
[ 初期値 ]
XXXXXXXXH
[bit31 ∼ bit0]
プログラムカウンタで , 実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。bit0 が "1" になる可
能性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。
ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要が
あります。
リセットによる初期値は不定です。
■ TBR (Table Base Register)
TBR(Table Base Register) のレジスタ構成は , 以下のとおりです。
bit31
TBR
bit0
[ 初期値 ]
000FFC00H
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , 000FFC00H です。
50
第 3 章 CPU および制御部
■ RP (Return Pointer)
RP(Return Pointer) のレジスタ構成は , 以下のとおりです。
bit31
bit0
RP
[ 初期値 ]
XXXXXXXXH
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ SSP (System Stack Pointer)
SSP(System Stack Pointer) のレジスタ構成は , 以下のとおりです。
bit31
bit0
SSP
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。
SSP を明示的に指定することも可能です。
また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタとして
も使用されます。
リセットによる初期値は 00000000H です。
■ USP (User Stack Pointer)
USP(User Stack Pointer) のレジスタ構成は , 以下のとおりです。
bit31
bit0
USP
[ 初期値 ]
XXXXXXXXH
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
51
第 3 章 CPU および制御部
■ 乗除算レジスタ (Multiply & Divide register)
乗除算レジスタ (Multiply & Divide register) のレジスタ構成は , 以下のとおりです。
bit31
bit0
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……商
52
第 3 章 CPU および制御部
データ構造
3.4
FR ファミリのデータ構造について説明します。
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとして , リトルエンディアンを採用しています。
図 3.4-1 に , ビットオーダリングのデータ配置を示します。
図 3.4-1 ビットオーダリングのデータ配置
bit
31
29
30
27
28
25
23
26
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
7
8
5
6
MSB
3
4
1
2
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとして , ビッグエンディアンを採用しています。
図 3.4-2 に , バイトオーダリングのデータ配置を示します。
図 3.4-2 バイトオーダリングのデータ配置
メモリ
bit
MSB
31
LSB
23
15
7
0
10101010 11001100 11111111 00010001
bit
7
0
n番地
10101010
(n+1)番地
11001100
(n+2)番地
11111111
(n+3)番地
00010001
53
第 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
54
第 3 章 CPU および制御部
3.5
メモリマップ
FR ファミリのメモリマップについて説明します。
■ メモリマップ
アドレス空間は 32 ビットリニアです。
図 3.5-1 に , メモリマップを示します。
図 3.5-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を書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によってこのアドレスに配置されます。
55
第 3 章 CPU および制御部
3.6
分岐命令
FR ファミリの分岐命令について説明します。
■ 分岐命令の概要
FR ファミリでは , 分岐命令に遅延スロット付きの動作と遅延スロットなしの動作を指
定することができます。
56
第 3 章 CPU および制御部
3.6.1
遅延スロット付き動作
分岐命令に遅延スロット付き動作を指定した場合について説明します。
■ 遅延スロット付き動作の命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D @Ri
CALL:D label12
CALL:D @Ri
RET:D
BRA:D label9
BNO:D label9
BEQ:D label9
BNE:D label9
BC:D label9
BNC:D label9
BN:D label9
BP:D label9
BV:D label9
BNV:D label9
BLT:D label9
BGE:D label9
BLE:D label9
BGT:D label9
BLS:D label9
BHI:D label9
■ 遅延スロット付き動作の動作説明
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」とよびます ) に置かれた命令を実行した後に分岐します。
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置く必要があります。
[例]
; 命令の並び
ADD
R1, R2 ;
BRA:D LABEL ; 分岐命令
R2, R3; 遅延スロット……分岐の前に実行される
MOV
…
LABEL:ST
R3, @R4 ; 分岐先
条件分岐命令の場合 , 分岐条件が成立するかしないかに関わらず , 遅延スロットに置か
れた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) は , あくま
で記述された順番で実行されます。
以下に , 具体的な説明をします。
1. JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は , 遅延スロットの中の命令が Ri を更
新しても影響を受けません。
[例]
LDI:32 #Label, R0
JMP:D @R0
LDI:8 #0,
;Label に分岐
R0 ; 分岐先アドレスには影響を与えない
…
57
第 3 章 CPU および制御部
2. RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を受
けません。
[例]
; これより前に設定された RP の示すアドレスへ分岐
RET:D
MOV R8,
RP
; リターン動作には影響を与えない
…
3. Bcc:D rel 命令が参照するフラグも , 遅延スロットの命令の影響を受けません。
[例]
R0
; フラグ変化
ADD
#1,
BC:D
Overflow ; 上記の命令の実行結果により分岐
AND
CCR #0
; このフラグ更新は上記分岐命令では参照しない
…
4. CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更
新された内容が読み出されます。
[例]
CALL:D Label
;RP を更新して分岐
MOV
; 上記 CALL:D の実行結果の RP を転送
RP,
R0
…
■ 遅延スロット付き動作の制限事項
● 遅延スロットに置くことができる命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
• 1 サイクル命令
• 分岐命令ではないこと
• 順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」または「a」または「b」
または「c」または「d」と記載された命令です。
● ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
● 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理し
ません。
● 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このとき ,
未定義命令は NOP 命令として動作します。
58
第 3 章 CPU および制御部
3.6.2
遅延スロットなし動作
分岐命令に遅延スロットなし動作を指定した場合について説明します。
■ 遅延スロットなし動作の命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
JMP @Ri
CALL label12
CALL @Ri
RET
BRA label9
BNO label9
BEQ label9
BNE label9
BC label9
BNC label9
BN
BP
BV label9
BNV label9
BLT label9
BGE label9
BLE label9
BGT label9
BLS label9
BHI label9
label9
label9
■ 遅延スロットなし動作の動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。
直後の命令が分岐前に実行されることはありません。
[例]
; 命令の並び
ADD R1, R2 ;
BRA LABEL
; 分岐命令 ( 遅延スロットなし )
MOV R2, R3 ; 実行されない
…
LABEL: ST
R3, @R4 ; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットなしの分岐命令は , 遅延スロットに適当な命令を入れることができない
ために NOP を明記した遅延スロット付き分岐命令に比べて , 命令コード効率を上げる
ことができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させることが可能となります。
59
第 3 章 CPU および制御部
3.7
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生によりそのプログラムの実行を中断
してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
例外とは , 実行中のコンテキストに関連して発生する事象です。例外を起こした命
令から再実行します。
割込みとは , 実行中のコンテキストに無関係に発生する事象です。イベント要因は ,
ハードウェアです。
トラップとは , 実行中のコンテキストに関連して発生する事象です。システムコー
ルのようにプログラムで指示するものがあります。トラップを起こした命令の次の
命令から再実行します。
■ EIT の特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT ( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 以下のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
<注意事項>
分岐命令の遅延スロットには , EIT に関して制約があります。詳細は , 「3.6 分岐命令」を
参照してください。
■ EIT からの復帰
• EIT から復帰するためには RETI 命令を実行します。
60
第 3 章 CPU および制御部
3.7.1
EIT の割込みレベル
割込みレベルは 0 ∼ 31 で , 5 ビットで管理されます。
■ EIT の割込みレベル
表 3.7-1 に , 各レベルの割当てを示します。
表 3.7-1 割込みレベル
レベル
割込み要因
2 進数
10 進数
00000
0
( システム予約 )
…
…
…
…
…
…
00011
3
( システム予約 )
00100
4
INTE 命令
ステップトレースト
ラップ
00101
5
( システム予約 )
…
…
…
…
…
…
01110
14
( システム予約 )
01111
15
NMI ( ユーザ用 )
10000
16
割込み
10001
17
割込み
…
…
…
…
…
…
11110
30
割込み
11111
31
─
注意事項
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムにより
ILM に設定することはできません。
ILM 設定時 , ユーザ割込み禁止
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外, コプロセッサ不在トラップ, コプロセッサエラートラップ, そしてINT
命令は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
61
第 3 章 CPU および制御部
■ I フラグ
I フラグは , 割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 と
して設けられています。
値
内 容
0
割込み禁止
INT 命令実行時 "0" にクリアされます。
( ただし , スタック退避させる値はクリアする前の値です )
1
割込み許可
割込み要求のマスク処理は , ILM の保持する値により制御されます。
■ ILM
ILM は , 割込みレベルマスク値を保持する PS レジスタ (20 ∼ 16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指
定した値+ 16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。任意の値を設定するに
は ST ILM 命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.7-1) が
ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したときは
マスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
62
第 3 章 CPU および制御部
3.7.2
ICR (Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ ICR ビット構成
ICR のビット構成は , 以下のとおりです。
ICR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
初期値
---11111B
R/W :リード / ライト可能
R
:リードオンリ
[bit4] ICR4
ICR4 は , 常に "1" です。
[bit3 ∼ bit0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。読出しおよび書込みが可
能です。bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ ICR マッピング
表 3.7-2 に , 割込み要因と割込み制御レジスタ , 割込みベクタの割当てを示します。
表 3.7-2 割込み要因と割込み制御レジスタ , 割込みベクタ
割込み制御レジスタ
対応する割込みベクタ
番号
割込み要因
番号
アドレス
アドレス
16 進
10 進
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
ICR01
00000441H
11H
17
TBR + 3B8H
IRQ02
ICR02
00000442H
12H
18
TBR + 3B4H
…
…
…
…
…
…
…
…
…
…
…
…
IRQ45
ICR45
0000046DH
3DH
61
TBR + 308H
IRQ46
ICR46
0000046EH
3EH
62
TBR + 304H
IRQ47
ICR47
0000046FH
3FH
63
TBR + 300H
・TBR 初期値 :000FFC00H
・詳細は「割込みコントローラ」を参照してください。
63
第 3 章 CPU および制御部
3.7.3
SSP (System Stack Pointer)
SSP が , EIT の受理および復帰動作時のデータ退避・復活用スタックを示すポイン
タとして使用されます。
■ SSP (System Stack Pointer)
SSP のレジスタ構成は , 以下のとおりです。
bit31・・
・・bit0
SSP
[ 初期値 ]
00000000H
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
リセットによる初期値は 00000000H です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
64
第 3 章 CPU および制御部
3.7.4
割込みスタック
SSP により示される領域で , PC および PS の値が退避・復活されます。
割込み後は SSP の示すアドレスに PC, (SSP + 4) のアドレスに PS が格納されてい
ます。
■ 割込みスタック
図 3.7-1 に , 割込みスタックの例を示します。
図 3.7-1 割込みスタック
[割込み前]
SSP
80000000H
[割込み後]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
65
第 3 章 CPU および制御部
3.7.5
TBR (Table Base Register)
Table Base Register は , EIT 用ベクタテーブルの先頭アドレスを示すレジスタで
す。
■ TBR (Table Base Register)
TBR のレジスタ構成は , 以下のとおりです。
bit31・・
・・bit0
TBR
[ 初期値 ]
000FFC00H
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタアドレ
スとなります。
リセットによる初期値は 000FFC00H です。
66
第 3 章 CPU および制御部
3.7.6
EIT ベクタテーブル
TBR の示すアドレスから 1 K バイトの領域が , EIT 用ベクタ領域となっています。
■ EIT ベクタテーブル
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は以下のと
おりです。
vctadr =TBR + vctofs
=TBR + (3FCH − 4 × vct)
vctadr: ベクタアドレス
vctofs: ベクタオフセット
vct: ベクタ番号
加算結果の下位 2 ビットは常に "00B" として扱われます。
000FFC00H ∼ 000FFFFFH の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。
表 3.7-3 に , アーキテクチャ上のベクタテーブルを示します。
表 3.7-3 ベクタテーブル (1 / 3)
割込み要因
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
リセット *1
0
00
−
3FCH
000FFFFCH
モードベクタ *1
1
01
−
3F8H
000FFFF8H
システム予約
2
02
−
3F4H
000FFFF4H
システム予約
3
03
−
3F0H
000FFFF0H
システム予約
4
04
−
3ECH
000FFFECH
システム予約
5
05
−
3E8H
000FFFE8H
システム予約
6
06
−
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
コプロセッサエラー
トラップ
8
08
−
3DCH
000FFFDCH
INTE 命令
9
09
−
3D8H
000FFFD8H
システム予約
10
0A
−
3D4H
000FFFD4H
システム予約
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
未定義命令例外
14
0E
−
3C4H
000FFFC4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
67
第 3 章 CPU および制御部
表 3.7-3 ベクタテーブル (2 / 3)
割込み要因
68
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
マスク可能要因 *2
27
1B
ICR11
390H
000FFF90H
マスク可能要因 *2
28
1C
ICR12
38CH
000FFF8CH
マスク可能要因 *2
29
1D
ICR13
388H
000FFF88H
マスク可能要因 *2
30
1E
ICR14
384H
000FFF84H
マスク可能要因 *2
31
1F
ICR15
380H
000FFF80H
マスク可能要因 *2
32
20
ICR16
37CH
000FFF7CH
マスク可能要因 *2
33
21
ICR17
378H
000FFF78H
マスク可能要因 *2
34
22
ICR18
374H
000FFF74H
マスク可能要因 *2
35
23
ICR19
370H
000FFF70H
マスク可能要因 *2
36
24
ICR20
36CH
000FFF6CH
マスク可能要因 *2
37
25
ICR21
368H
000FFF68H
マスク可能要因 *2
38
26
ICR22
364H
000FFF64H
マスク可能要因 *2
39
27
ICR23
360H
000FFF60H
マスク可能要因 *2
40
28
ICR24
35CH
000FFF5CH
マスク可能要因 *2
41
29
ICR25
358H
000FFF58H
マスク可能要因 *2
42
2A
ICR26
354H
000FFF54H
マスク可能要因 *2
43
2B
ICR27
350H
000FFF50H
マスク可能要因 *2
44
2C
ICR28
34CH
000FFF4CH
マスク可能要因 *2
45
2D
ICR29
348H
000FFF48H
マスク可能要因 *2
46
2E
ICR30
344H
000FFF44H
タイムベースタイマ
オーバフロー
47
2F
ICR31
340H
000FFF40H
マスク可能要因 *2
48
30
ICR32
33CH
000FFF3CH
マスク可能要因 *2
49
31
ICR33
338H
000FFF38H
マスク可能要因 *2
50
32
ICR34
334H
000FFF34H
マスク可能要因 *2
51
33
ICR35
330H
000FFF30H
マスク可能要因 *2
52
34
ICR36
32CH
000FFF2CH
マスク可能要因 *2
53
35
ICR37
328H
000FFF28H
第 3 章 CPU および制御部
表 3.7-3 ベクタテーブル (3 / 3)
割込み要因
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト
のアドレス
*2
54
36
ICR38
324H
000FFF24H
マスク可能要因 *2
55
37
ICR39
320H
000FFF20H
マスク可能要因 *2
56
38
ICR40
31CH
000FFF1CH
マスク可能要因 *2
57
39
ICR41
318H
000FFF18H
マスク可能要因 *2
58
3A
ICR42
314H
000FFF14H
マスク可能要因 *2
59
3B
ICR43
310H
000FFF10H
マスク可能要因 *2
60
3C
ICR44
30CH
000FFF0CH
マスク可能要因 *2
61
3D
ICR45
308H
000FFF08H
マスク可能要因 *2
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約
(REALOS にて使用 )
64
40
−
2FCH
000FFEFCH
システム予約
(REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
システム予約
66
42
−
2F4H
000FFEF4H
システム予約
67
43
−
2F0H
000FFEF0H
システム予約
68
44
−
2ECH
000FFEECH
システム予約
69
45
−
2E8H
000FFEE8H
システム予約
70
46
−
2E4H
000FFEE4H
システム予約
71
47
−
2E0H
000FFEE0H
システム予約
72
48
−
2DCH
000FFEDCH
システム予約
73
49
−
2D8H
000FFED8H
システム予約
74
4A
−
2D4H
000FFED4H
システム予約
75
4B
−
2D0H
000FFED0H
システム予約
76
4C
−
2CCH
000FFECCH
システム予約
77
4D
−
2C8H
000FFEC8H
システム予約
78
4E
−
2C4H
000FFEC4H
システム予約
79
4F
−
2C0H
000FFEC0H
80
50
2BCH
000FFEBCH
|
|
|
|
255
FF
000H
000FFC00H
マスク可能要因
INT 命令で使用
−
*1: TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス
000FFFFCH, 000FFFF8H が使用されます。
*2: マスク可能要因は各品種により定義されます。本品種におけるベクタテーブルは
「付録 B 割込みベクタ」を参照してください。
69
第 3 章 CPU および制御部
3.7.7
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU はひとつの EIT 要因を選択して受理し ,
EIT シーケンスを実行した後 , 再び EIT 要因の検出を行う , という動作を繰り返しま
す。
EIT 要因検出の際に , 受理可能な EIT 要因がなくなったとき , 最後に受理した EIT 要
因のハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合の各要因のハンドラの実行順序は ,
次の 2 つの要素によって決まります。
• EIT 要因受理の優先順位
• 受理した場合にほかの要因をどのようにマスクするか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) 他の要
因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番です。
必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
表 3.7-4 に , EIT 要因受理の優先度を示します。
表 3.7-4 EIT 要因の受理の優先度とほかの要因へのマスク
受理の優先順位
要因
他の要因に対するマスク
1
リセット
他の要因は破棄されます。
2
未定義命令例外
取消し
3
INT 命令
I フラグ =0
4
コプロセッサ不在トラップ
コプロセッサエラートラップ
5
ユーザ割込み
ILM= 受理した要因のレベル
6
NMI ( ユーザ用 )
ILM=15
7
(INTE 命令 )
ILM=4 *
8
NMI ( エミュレータ用 )
ILM=4
9
ステップトレーストラップ
ILM=4
10
INTE 命令
ILM=4
―
*:INTE 命令とエミュレータ用 NMI が同時に発生したときのみ優先度が 6 になり
ます ( 本品種ではエミュレータ用 NMI をデータアクセスによるブレークに使用
しています ) 。
70
第 3 章 CPU および制御部
EIT 要因を受理した後のほかの要因に対するマスクの処理を加味すると , 同時に発生し
た EIT 要因の各ハンドラの実行順序は , 表 3.7-5 のようになります。
表 3.7-5 EIT ハンドラの実行順序
ハンドラの実行順序
要因
1
リセット *1
2
未定義命令例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*1:ほかの要因は破棄されます。
*2:INTE 命令をステップ実行した時はステップトレーストラップの EIT のみ発生
します。INTE による要因は無視されます。
図 3.7-2 に多重 EIT 処理の例を示します。
図 3.7-2 多重 EIT 処理
メインルーチン
NMIのハンドラ
INT命令
のハンドラ
優先度
(高)NMI発生
①最初に実行
(低)INT命令実行
②次に実行
71
第 3 章 CPU および制御部
3.7.8
動作
FR ファミリの各動作について説明します。
以降の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示すも
のとします。また , 「次の命令のアドレス」は , EIT を検出した命令によって以下の
ようになります。
• LDI:32 のとき……PC + 6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき……PC + 4
• そのほかの命令のとき……PC + 2
■ ユーザ割込み・NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
[ 割込み要求受理の可否判定 ]
1. 同時に発生した要求の割込みレベルを比較し , 最も強いレベル ( 最も小さい数値 ) を
保持するものが選択されます。
比較に使用されるレベルは , マスク可能割込みについては対応する ICR の保持する
値が , NMI についてあらかじめ定められた定数が使用されます。
2. 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号を持
つ割込み要求が選択されます。
3. 割込みレベル≧レベルマスク値のとき , 割込み要求はマスクされ受理されない。
割込みレベル<レベルマスク値のとき , 4 へ。
4. 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割込み
要求はマスクされ , 受理されません。I フラグが "1" ならば 5 へ。
選択された割込み要求が NMI であるとき , I フラグの値にかかわらず 5 へ。
5. 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。
( 注意 )〔動作〕における () はレジスタの指すアドレスを表します。
[ 動作 ]
1. SSP − 4 → SSP
2. PS → (SSP)
3. SSP − 4 → SSP
4. 次の命令のアドレス → (SSP)
5. 受理した要求の割込みレベル → ILM
6. "0" → S フラグ
7. (TBR +受理した割込み要求のベクタオフセット ) → PC
割込みシーケンス終了後ハンドラの先頭の命令を実行する前に , 新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
72
第 3 章 CPU および制御部
ユーザ割込み, または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" → ILM
6. "0" → S フラグ
7. (TBR + 3D8H) → PC
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。
また , ステップ実行中は INTE による EIT の発生はありません。
73
第 3 章 CPU および制御部
■ ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能をイネーブルに
しておくと , 1 命令実行ごとにトラップが発生し , ブレークします。
[ ステップトレーストラップ検出の条件 ]
1. T フラグ = 1
2. 遅延分岐命令ではないとき。
3. INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき。
4. 以上の条件が成立すると , 命令動作の切れ目でブレークします。
[ 動作 ]
1. SSP − 4 → SSP
2. PS → (SSP)
3. SSP − 4 → SSP
4. 次の命令のアドレス → (SSP)
5. "00100B" → ILM
6. "0" → S フラグ
7. (TBR + 3CCH) → PC
Tフラグをセットしてステップトレーストラップをイネーブルにしたとき, ユーザ用の
NMI とユーザ割込みは禁止状態となります。また , INTE 命令による EIT は発生しなく
なります。
FR ファミリでは , T フラグをセットした次の命令からトラップが発生します。
■ 未定義命令例外の動作
命令のデコード時に未定義命令であることを検出すると , 未定義命令例外が発生しま
す。
[ 未定義命令例外の検出条件 ]
1. 命令のデコード時に , 未定義命令であることを検出。
2. 遅延スロット外に置かれている ( 遅延分岐命令の直後ではない ) 。
3. 以上の条件が成立すると未定義命令例外が発生し , ブレークします。
[ 動作 ]
1. SSP − 4 → SSP
2. PS → (SSP)
3. SSP − 4 → SSP
4. PC → (SSP)
5. "0" → S フラグ
6. (TBR + 3C4H) → PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
74
第 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" の状態で実行する必要があります。
75
第 3 章 CPU および制御部
3.8
動作モード
FR ファミリの動作モードについて説明します。
■ 動作モードの概要
動作モードには , バスモードとアクセスモードがあります。
■ バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定しま
す。
■ アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードレジスタ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR3(Area Configuration Register) 内の DBW0 ビット
で指定します。
76
第 3 章 CPU および制御部
3.8.1
バスモード
FR ファミリには , 次に示す 3 つのバスモードがあります。
詳細は「3.1 メモリ空間」を参照してください。
■ バスモード 0 ( シングルチップモード )
内部 I/O, Fbus RAM, Fbus ROM が有効で , それ以外の領域へのアクセスは無効である
モードです。
外部端子はペリフェラル , または汎用ポートの機能を果たします。バス端子としては機
能しません。
■ バスモード 1 ( 内 ROM 外バスモード )
内部 I/O, Fbus RAM, Fbus ROM が有効で , 外部アクセスが可能な領域へのアクセスは外
部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として機能しま
す。
■ バスモード 2 ( 外 ROM 外バスモード )
内部 I/O, Fbus RAM が有効で , Fbus ROM へのアクセスを禁止にしてすべてのアクセス
が外部空間へのアクセスとなるモードです。外部端子の一部は , バス端子として機能し
ます。
77
第 3 章 CPU および制御部
モード設定
3.8.2
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードレジスタ (MODR) で動作
モードの設定を行います。
■ モード端子
MD2, MD1, MD0 の 3 端子で , モードベクタフェッチに関する指定を行います。
表 3.8-1 にモードベクタフェッチに関する指定を示します。
表 3.8-1 モードベクタフェッチに関する指定
モード端子
モード名
リセットベクタ
アクセス領域
備考
MD2
MD1
MD0
0
0
0
内 ROM モードベクタ
内部
−
0
0
1
外 ROM モードベクタ
外部
バス幅はモード
レジスタで設定
ただし , 表に示した設定以外は禁止とします。
<注意事項>
FR ファミリでは , マルチプレクスバスによる外部モードベクタフェッチはサポートして
いません。
78
第 3 章 CPU および制御部
■ モードレジスタ (MODR)
モードベクタフェッチによってモードレジスタに書き込むデータを , モードデータと
よびます。
モードレジスタ (MODR) に設定が行われた後 , 本レジスタの設定に従った動作モード
で動作します。
モードレジスタは , すべてのリセット要因で設定されます。また , ユーザプログラムか
らは書き込むことはできません。
<注意事項>
モードベクタに設定するモードデータは , 000FFFF8H にバイトデータとして配置する必
要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用し
ていますので , 下図のように , bit31 ∼ bit24 の最上位バイトに配置してください。
誤
bit
31
24 23
16 15
8 7
0
XXXXXXXX
XXXXXXXX
XXXXXXXX
モードデータ
bit
31
000FFFF8H
正
000FFFF8H
000FFFFCH
24 23
Mode Data
16 15
8 7
XXXXXXXX
XXXXXXXX
Reset Vector
0
XXXXXXXX
エミュレータモードでは , 書き換え可能です。この場合 , 8 ビット長のデータ転送命令
を使用してください。
16/32 ビット長の転送命令では書き込めません。
モードレジスタの詳細は以下のとおりです。
〔レジスタ詳細説明〕
MODR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
0007FCH
0
0
0
0
0
ROMA
WTH1
WTH0
初期値
XXXXXXXXB
動作モード設定ビット
X:不定
[bit7 ∼ bit3] 予約ビット
必ず "00000B" を設定してください。
"00000B" 以外の値を設定したときの動作は保証されません。
79
第 3 章 CPU および制御部
[bit2] ROMA ( 内部 ROM イネーブルビット )
内部 Fbus RAM, Fbus ROM 領域を有効にするかどうかを設定します。
ROMA
機 能
0
外 ROM モード
1
内 ROM モード
備 考
内蔵 Fbus RAM は有効 , 内部 ROM 領域 (50000H ∼
FFFFFH) が外部領域になります。
内蔵 Fbus RAM, Fbus ROM が有効になります。
[bit1, bit0] WTH1, WTH0 ( バス幅指定ビット )
外バスモード時のバス幅指定の設定を行います。
外バスモード時 , この値が ACR0 (CS0 領域 ) の DBW0 ビットに設定されます。
80
WTH1
WTH0
0
0
8 ビットバス幅
外バスモード
0
1
16 ビットバス幅
〃
1
0
―――――――
設定禁止
1
1
シングルチップモード
シングルチップモード
機 能
備 考
第 3 章 CPU および制御部
3.9
クロック生成制御
クロック生成制御について説明します。
■ 内部動作クロックの生成
本品種の内部動作クロックは , 以下のようにして生成されます。
• ソースクロックの選択:
クロックの供給源を選択します。
• ベースクロックの生成:
ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。
• 各内部クロックの生成:
ベースクロックを分周し , 各部に供給する 4 種類の動作クロックを生成します。
以降 , 各クロック生成とその制御について説明します。
各説明にあるレジスタ , フラグの詳細な説明は , 「3.9.5 クロック生成制御部のブロッ
クダイヤグラム」および「3.9.6 クロック生成制御部のレジスタ詳細説明」を参照して
ください。
φはソースクロックを 2分周または, PLL 発振させた基本クロックを指します。したがっ
て , システムベースクロックは , 上記の内部ベースクロック発生のところで生成される
クロックです。
■ ソースクロックの選択
ソースクロックの選択について説明します。
外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて生
成した原発振がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2種類を使用で
き , 動作中に任意に切り換えて使用することが可能です。
• メインクロック :X0/X1 端子入力から生成し , 高速クロックとして使用することを想
定したものです。
• サブクロック:X0A/X1A 端子入力から生成し , 低速クロックとして使用することを
想定したものです。
メインクロックは , 制御可能な内蔵メイン PLL を用いて逓倍されます。
内部ベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックをメイン PLL で逓倍したもの
• サブクロックそのもの
ソースクロックの選択制御は , CLKR ( クロックソース制御レジスタ ) の設定によって
行います。
81
第 3 章 CPU および制御部
3.9.1
PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することが可能です。
各制御は , CLKR ( クロックソース制御レジスタ ) の設定によって行います。
ここでは , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の
bit10:PLL1EN ビットの設定によって行います。
サブクロック発振動作の許可 / 停止は , CLKR ( クロックソース制御レジスタ ) の
bit11:PLL2EN ビットの設定によって行います。
PLL1EN, PLL2EN ビットとも , 設定初期化リセット (INIT) 後は "0" に初期化され , PLL
の発振動作は停止しています。停止中は , ソースクロックとして PLL 出力を選択する
ことはできません。
プログラム動作を開始したら , まずクロックソースとして使用する PLL の逓倍率を設
定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切り換え
てください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用する
ことをお奨めします。
ソースクロックとして PLL 出力を選択している間は , その PLL は動作停止させること
はできません ( レジスタへの書込みは無効となります ) 。ストップモードに移行する際
などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの 2 分
周したものに選択し直した後 , PLL を停止させてください。
なお , STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットや bit1:OSCD2 ビットに
より , ストップモード中の発振が停止するように設定してある場合 , 対応する PLL は
ストップモード遷移時に自動的に停止しますので , 動作停止を改めて設定する必要は
ありません。その後 , ストップモードから復帰する際 , PLL は自動的に発振動作を開始
します。ストップモード中の発振が停止しないように設定してある場合は , PLL は自
動では停止しません。この場合は , 必要であればストップモード移行前にあらかじめ動
作停止を設定してください。
82
第 3 章 CPU および制御部
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit14 ∼ bit12:PLL1S2,
PLL1S1, PLL1S0 ビットによって設定します。
どちらのビットも設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。
〔PLL 逓倍率設定〕
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース
クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ
マ割込みを使用することをお奨めします。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを該当 PLL 以外に
切り換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後
にソースクロックを切り換えてください。
PLL 逓倍率設定の変更を , PLL 使用中に変更することも可能ですが , この際は逓倍率設
定書換え後から自動的に発振安定待ち状態に遷移し , 設定された発振安定待ち時間が
経過するまでの間はプログラム動作が停止します。PLL 以外にクロックソースを切り
換えた場合は , プログラム動作は停止しません。
83
第 3 章 CPU および制御部
3.9.2
発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要となります 。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要となります。
ここでは , 各種ケースにおける待ち時間について説明します。
■ 電源投入後の待ち時間
電源投入後は , INIT 端子入力 ( リセット端子 ) へ "L" レベルを入力する必要がありま
す。この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間
はここでは考慮する必要がありません。
■ 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここで
は , 設定された発振安定待ち時間を内部的に発生します。
この状態においては , PLL はいずれも動作許可されていないため , ロック待ち時間はこ
こでは考慮する必要がありません。
■ PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経過
しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め
します。
■ PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待ち
時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間に , タイムベースタイマ割込みを使用できます。
■ ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラムにて
設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させる設定であった場合は , その発振回路の発振安定待ち時間と使用している PLL の
ロック待ち時間のうち長い方の時間が必要となります。ストップモードに遷移させる
前に , あらかじめその発振安定待ち時間を設定しておいてください。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停止
させない設定であった場合は , PLL は自動では動作停止しません。したがって , PLL を
停止させない限り発振安定待ち時間は必要となりません。ストップモードに遷移させ
る前に , あらかじめ発振安定待ち時間を最小値に設定しておくことをお奨めします。
84
第 3 章 CPU および制御部
■ サブクロックからメインクロック切換え後の待ち時間
サブクロックからメインクロックに切り換えた後に PLL を使用する場合 , CLKR ( ク
ロックソースレジスタ ) の bit2: PLL1EN の値にかかわらず , ロック待ち時間が経過し
ないとその PLL 出力を使用してはいけません。
ソースクロックとして該当する PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。
この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使用することをお奨め
します。
85
第 3 章 CPU および制御部
3.9.3
クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
ここでは , 各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• CPU
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I-bus, D-bus, X-bus, F-bus
• DMA コントローラ
• DSU
動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 周辺クロック (CLKP)
周辺回路およびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• 周辺 I/O ポート
• I/O ポートバス
• 外部割込み入力
• UART
• 16 ビットタイマ
• A/D コンバータ
• ICU
• フリーランタイマ
• リロードタイマ
• アップダウンカウンタ
• インプットキャプチャ
• アウトプットコンペア
• I2C インタフェース
86
第 3 章 CPU および制御部
• PPG
動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
■ 外部バスクロック (CLKT)
外部バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• 外部バスインタフェース
• 外部 CLK 出力 (SYSCLK)
動作可能な上限周波数は 16 MHz ですので , これを超える周波数になる逓倍率と分周比
の組合せは設定しないでください。
<注意事項>
CPU の処理能力はウェイトレジスタ (FLWC) の設定にも影響を受けます。必ず本レジス
タの設定を最適な値にしてご利用ください。「26.2.2 ウェイトレジスタ (FLWC)」もご参
照ください。
87
第 3 章 CPU および制御部
クロック分周
3.9.4
各内部動作クロックは , それぞれ独立に , ベースクロックからの分周比を設定するこ
とができます。この機能により , 各回路に最適な動作周波数を設定することができ
ます。
■ 分周比の設定
分周比は , DIVR0 ( 基本クロック分周設定レジスタ 0) および DIVR1 ( 基本クロック分
周設定レジスタ 1) にて設定します。
各レジスタには各クロックに対応する 4 ビットずつの設定ビットがあり , ( レジスタ設
定値+ 1) がそのクロックのベースクロックに対する分周比となります。分周比設定が
奇数であっても , 常にデューティは 50 となります。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
■ 分周比設定の初期化
分周比設定は , 動作初期化リセットの発生では初期化されず , リセット発生前の設定が
維持されます。設定初期化リセットの発生によってのみ初期化されます。初期状態で
は , 周辺クロック (CLKP) 以外はすべて分周比が "1" となりますので , ソースクロック
を高速なものに変更する前に必ず分周比の設定を行ってください。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注
意願います。
88
第 3 章 CPU および制御部
クロック生成制御部のブロックダイヤグラム
3.9.5
図 3.9-1 に , クロック生成制御部のブロックダイヤグラムを示します。
図中のレジスタの詳細な説明は , 「3.9.6 クロック生成制御部のレジスタ詳細説明」
を参照してください。
■ クロック生成制御部のブロックダイヤグラム
図 3.9-1 クロック生成制御部のブロックダイヤグラム
周辺停止制御レジスタ
R-bus
[クロック生成部]
DIVR0,DIVR1レジスタ
周辺クロック分周
セレ
クタ
外部バスクロック分周
メイン発振
安定待ちタイマ
(サブ選択時用)
メイン発振
PLL
1/2
X0A
X1A
各周辺クロック
各部バスクロック
セレクタ
発振回路
CPUクロック
CLKRレジスタ
X0
X1
セレ
クタ
周辺停止制御
セレ
クタ
停止制御
CPUクロック分周
サブ発振
発振回路
時計タイマ
[ストップ・スリープ制御部]
内部割込み
STCRレジスタ
内部リセット
ストップ状態
状態遷移
制御回路
SLEEP状態
リセット発生
F/F
リセット発生
F/F
内部リセット(RST)
内部リセット(INIT)
[リセット要因回路]
INIT端子
RSRR レジスタ
[ウォッチドッグ制御部]
ウォッチドッグF/F
WPRレジスタ
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
割込み許可
カウンタクロック
セレクタ
オーバフロー検出F/F
タイムベースタイマ
割込み要求
89
第 3 章 CPU および制御部
クロック生成制御部のレジスタ詳細説明
3.9.6
クロック生成制御部のレジスタについて説明します。
■ RSRR:リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
リセット要因レジスタおよびウォッチドッグタイマ制御レジスタのレジスタ構成は ,
以下のとおりです。
RSRR
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000480H
−
R
−
R
WDOG
R
ERST
R
SRST
R
−
R
WT1
R/W
WT0
R/W
R/W
R
*
X
初期値
X***X*00B
:リード / ライト可能
:リードオンリ
:要因により初期化されます。
:初期化されません。
直前に発生したリセットの要因の保持 , およびウォッチドッグタイマの周期設定およ
び起動制御を行うレジスタです。
本レジスタを読むと , 保持されたリセット要因は読出し後にクリアされます。読み出す
までの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複数の
フラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降は , リセッ
トが発生するまで , ウォッチドッグタイマは動作を続けます。
[bit15] Reserved:予約ビット
予約ビットです。
[bit14] Reserved:予約ビット
予約ビットです。
[bit13] WDOG:ウォッチドッグリセット発生フラグ
ウォッチドッグタイマによるリセットの発生の有無を示します。
値
内 容
0
ウォッチドッグタイマによるリセットは発生していません。
1
ウォッチドッグタイマによるリセットが発生しました。
• 電源投入時の INIT 端子入力によるリセット , または読出し直後に "0" にクリアさ
れます。
• 読出し可能で , 書込みはビット値に影響を与えません。
90
第 3 章 CPU および制御部
[bit12] ERST:外部リセット発生フラグ
INIT 端子入力によるリセットの発生の有無を示します。
値
内 容
0
INIT 端子入力によるリセットは発生していません。
1
INIT 端子入力によるリセットが発生しました。
• 読出し直後に "0" にクリアされます。
• 読出し可能で , 書込みはビット値に影響を与えません。
• 電源投入時には , 8ms ( 外部発振周波数が 4MHz の場合 ) 以上 INIT 端子へ "L" レ
ベルを印加してください。それ以下の場合ではフラグがセットされない場合があ
ります。
[bit11] SRST:ソフトウェアリセット発生フラグ
STCR レジスタの SRST ビット書込み ( ソフトウェアリセット ) によるリセットの発
生の有無を示します。
値
内 容
0
ソフトウェアリセットによる INIT は発生していません。
1
ソフトウェアリセットによる INIT が発生しました。
• 電源投入時の INIT 端子入力によるリセット , または読出し直後に "0" にクリアさ
れます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit10] Reserved:予約ビット
予約ビットです。
[bit9, bit8] WT1, WT0:ウォッチドッグタイマインターバル時間選択ビット
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の
うちから選択します。
WPR への最終 5AH 書込みか
ウォッチドッグリセットの発生
を抑止するために最低限必要な
WPR への書込み間隔
らウォッチドッグリセットが
発生するまでの時間
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
WT1
WT0
0
(φ はシステムベースクロックの周期 )
• リセットにより "00B" に初期化されます。
• 読出し可能です。書込みはリセット後 1 回のみ有効で , それ以降の書込みは無効
です。
91
第 3 章 CPU および制御部
■ STCR:スタンバイ制御レジスタ
スタンバイ制御レジスタのレジスタ構成は , 以下のとおりです。
STCR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
000481H
STOP
R/W
SLEEP
R/W
HIZ
R/W
SRST
R/W
OS1
R/W
OS0
R/W
bit1
bit0
OSCD2 OSCD1
R/W
R/W
初期値
00110011B
R/W :リード / ライト可能
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
<注意事項>
スタンバイモードに入れる場合は , 以下のシーケンスを必ず使用してください。
(LDI#value_of_standby,R0) ; value_of_standby は , STCR へのライトデータ
(LDI#_STCR,R12)
; _STCR は , STCR のアドレス (481H)
STB R0,@R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB @R12,R0
; 同期スタンバイのための STCR リード
LDUB @R12,R0
; もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
[bit7] STOP:STOP モードビット
ストップモードへの遷移を指示します。bit6:SLEEP ビットと本ビット両方に "1" を
書き込んだ場合は , 本ビットの方が優先となり , ストップモードへ遷移します。
値
内 容
0
ストップモードへの遷移は行いません。[ 初期値 ]
1
ストップモードへ遷移します。
• リセットおよびストップ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
92
第 3 章 CPU および制御部
[bit6] SLEEP:SLEEP モードビット
スリープモードへの遷移を指示します。bit7:STOP ビットと本ビット両方に "1" を書
き込んだ場合は, bit7:STOPビットの方が優先となり, ストップモードへ遷移します。
値
内 容
0
スリープモードへの遷移は行いません。[ 初期値 ]
1
スリープモードへ遷移します。
• リセットおよびスリープ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit5] HIZ:Hi-Z モードビット
ストップモード時の端子状態を制御します。
値
内 容
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。
[ 初期値 ]
• リセットにより "1" に初期化されます。
• 読出しおよび書込みが可能です。
[bit4] SRST:ソフトウェアリセットビット
ソフトウェアリセットの発行を指示します。
値
内 容
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行は行いません。[ 初期値 ]
• リセットにより "1" に初期化されます。
• 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
93
第 3 章 CPU および制御部
[bit3, bit2] OS1, OS0:発振安定待ち時間選択ビット
リセット後 , およびストップモード復帰後などにおける , 発振安定待ち時間を設定
します。
本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選
択します。
OS1
OS0
発振安定待ち時間
原発振 4 MHz の場合
サブ発振 32 kHz の場合
0
0
φ × 212
1.97ms
256ms
0
1
φ × 212
1.97ms
256ms
1
0
φ × 213
4.1ms
512ms
1
1
φ × 214
8.2ms
1024ms
φ はシステムベースクロックの周期 , この場合は原発振入力の 2 倍の周期
• 読出しおよび書込みが可能です。
[bit1] OSCD2:サブ発振停止ビット
ストップモード時での サブ発振の発振停止を制御します。
値
内 容
0
ストップモード中もサブ発振は停止しません。
1
ストップモード中はサブ発振を停止します。[ 初期値 ]
• リセットにより "1" に初期化されます。
• 読出しおよび書込みが可能です。
[bit0] OSCD1:メイン発振停止ビット
ストップモード時での メイン発振の発振停止を制御します。
値
内 容
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します。[ 初期値 ]
• リセットにより "1" に初期化されます。
• 読出しおよび書込みが可能です。
94
第 3 章 CPU および制御部
■ TBCR:タイムベースカウンタ制御レジスタ
タイムベースカウンタ制御レジスタのレジスタ構成は , 以下のとおりです。
TBCR
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000482H
TBIF
R/W
TBIE
R/W
TBC2
R/W
TBC1
R/W
TBC0
R/W
−
R/W
−
R
−
R
初期値
00XXXX11B
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行います。
[bit15] TBIF:タイムベースタイマ割込みフラグ
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11:TBC2 ∼ TBC0
ビットにて設定 ) を経過したことを示します。
bit14:TBIE ビットにより割込み発生が許可 (TBIE=1) されているときに , 本ビットが
"1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令により "0" を書込むとクリアされます。
セット要因
設定されたインターバル時間の経過によりセットされます。
( タイムベースカウンタ出力の立上りエッジを検出することで時
間の経過を判定します。)
• リセットにより "0" に初期化されます。
• 読出しおよび書込み可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込ん
でもビット値は変化しません。
• リードモディファイライト系命令での読出し値は , 常に "1" となります。
[bit14] TBIE:タイムベースタイマ割込み許可ビット
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。本ビットが "1" のときに , bit15:TBIF ビットが "1" になると , タイムベースタイ
マ割込み要求が発生します。
値
内 容
0
タイムベースタイマ割込み要求の出力を禁止します。[ 初期値 ]
1
タイムベースタイマ割込み要求の出力を許可します。
• リセットにより "0" に初期化されます。
• 読出しおよび書込みが可能です。
95
第 3 章 CPU および制御部
[bit13 ∼ bit11] TBC2, TBC1, TBC0:タイムベースタイマカウンタ選択ビット
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定
します。
本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選
択します。
原発振 4 MHz かつ
TBC2 TBC1 TBC0 タイマインターバル
時間
PLL が 8 逓倍の場合
サブクロック
32 kHz の場合
0
0
0
φ × 211
64µs
61.4ms
0
0
1
φ × 212
128µs
123ms
0
1
0
φ × 213
256µs
246ms
0
1
1
φ × 222
131ms
126s
1
0
0
φ × 223
262ms
256s
1
0
1
φ × 224
524ms
512s
1
1
0
φ × 225
1049ms
1024s
1
1
1
φ × 226
2097ms
2048s
φ はシステムベースクロックの周期
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• 読出しおよび書込みが可能です。
[bit10] Reserved:予約ビット
予約ビットです。読出し値は不定で , 書込みは動作に影響を与えません。
[bit9, bit8] Reserved:予約ビット
予約ビットです。
96
第 3 章 CPU および制御部
■ CTBR:タイムベースカウンタクリアレジスタ
タイムベースカウンタクリアレジスタのレジスタ構成は , 以下のとおりです。
CTBR
W
X
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000483H
D7
W
D6
W
D5
W
D4
W
D3
W
D2
W
D1
W
D0
W
初期値
XXXXXXXXB
:ライトオンリ
:不定
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間の時間
制限はありませんが , {A5H} 書込みの後に {5AH} 以外のデータを書き込むと , 再度
{A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち間隔 , ウォッ
チドッグタイマ周期 , およびタイムベースタイマの周期が一時的に変動します。
97
第 3 章 CPU および制御部
■ CLKR:クロックソース制御レジスタ
クロックソース制御レジスタのレジスタ構成は , 以下のとおりです。
CLKR
アドレス
bit15
000484H
−
R/W
bit14
bit13
bit12
bit11
bit10
bit9
bit8
PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
システムのベースクロックとするクロックソースの選択や PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを 3 種類のうちから選択します。また , メイン・サブ 2
系統の PLL それぞれの動作許可および逓倍率の選択を制御します。
[bit15] Reserved:予約ビット
予約ビットです。必ず "0" を設定してください。
[bit14 ∼ bit12] PLL1S2, PLL1S1, PLL1S0:PLL 逓倍率選択ビット
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を , 8 種類のうちから選択します。
本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えないで
ください。
動作可能な上限周波数は 32 MHz ですので , これを超える設定をしないでください。
メイン PLL
逓倍率
PLL1S2
PLL1S1
PLL1S0
0
0
0
× 1 ( 等倍 )
原発振 4MHz の場合 , φ = 250ns (4MHz)
0
0
1
× 2 (2 逓倍 )
原発振 4MHz の場合 , φ = 125ns (8MHz)
0
1
0
× 3 (3 逓倍 )
原発振 4MHz の場合 , φ = 83.3ns (12MHz)
0
1
1
× 4 (4 逓倍 )
原発振 4MHz の場合 , φ = 62.5ns (16MHz)
1
0
0
× 5 (5 逓倍 )
原発振 4MHz の場合 , φ = 50.0ns (20MHz)
1
0
1
× 6 (6 逓倍 )
原発振 4MHz の場合 , φ = 41.7ns (24MHz)
1
1
0
× 7 (7 逓倍 )
原発振 4MHz の場合 , φ = 35.7ns (28MHz)
1
1
1
× 8 (8 逓倍 )
原発振 4MHz の場合 , φ = 31.3ns (32MHz)
システムベースクロック周期
φ はシステムベースクロックの周期
• リセットにより "000B" に初期化されます。
• 読出しおよび書込みが可能です。
98
第 3 章 CPU および制御部
[bit11] PLL2EN:サブクロック選択許可ビット
サブクロックの選択許可ビットです。
本ビットは , クロックソースとしてサブクロックを選択している間は書き換えない
でください。
また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択しないでく
ださい (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。
STCR の bit1:OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって
もサブクロックは停止します。ストップモードからの復帰後は動作許可に戻りま
す。
値
内 容
0
サブクロック選択禁止 [ 初期値 ]
1
サブクロック選択許可
• リセットにより "0" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
サブ発振を持たない品種では, PLL2ENビットは"0"に固定されており, 書込みは無効です。
[bit10] PLL1EN:メイン PLL イネーブルビット
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメイン PLL を選択している間は書き換えないで
ください。
また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択しないでくだ
さい (bit9, bit8:CLKS1, CLKS0 ビットの設定による ) 。
STCR の bit0:OSCD1 が "1" であると , ストップモード中は本ビットが "1" であって
もメイン PLL は停止します。ストップモードからの復帰後は動作許可に戻ります。
値
内 容
0
メイン PLL 停止 [ 初期値 ]
1
メイン PLL 動作許可
• リセットにより "0" に初期化されます。
• 読出しおよび書込みが可能です。
99
第 3 章 CPU および制御部
[bit9, bit8] CLKS1, CLKS0:クロックソース選択ビット
使用するクロックソースを設定します。
本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択
します。
なお , bit9:CLKS1 が "1" の間は bit8:CLKS0 の値を変更することができません。
変更不可能な組合せ
変更可能な組合せ
"00B" → "11B"
"00B" → "01B" または "10B"
"01B" → "10B"
"01B" → "11B" または "00B"
"10B" → "01B" または "11B"
"10B" → "00B"
"11B" → "00B" または "10B"
"11B" → "01B"
このため , リセット後の状態からサブクロック選択に切り換える場合は , まず "01B"
を書き込んだ後に , "11B" を書き込んでください。
CLKS1
CLKS0
0
0
X0/X1 からの原発振入力の 2 分周 [ 初期値 ]
0
1
X0/X1 からの原発振入力の 2 分周
1
0
メイン PLL
1
1
サブクロック
クロックソース設定
• リセットにより "00B" に初期化されます。
• 読出しおよび書込みが可能です。
100
第 3 章 CPU および制御部
■ WPR:ウォッチドッグリセット発生延期レジスタ
ウォッチドッグリセット発生延期レジスタのレジスタ構成は , 以下のとおりです。
WPR
W
X
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000485H
D7
W
D6
W
D5
W
D4
W
D3
W
D2
W
D1
W
D0
W
初期値
XXXXXXXXB
:ライトオンリ
:不定
ウォッチドッグリセットの発生を延期するためのレジスタです。
本レジスタに連続して {A5H}, {5AH} を書き込むと , {5AH} 書込みの直後にウォッチ
ドッグタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。
{A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込みの後に
{5AH} 以外のデータを書き込んだ場合 , 再度 {A5H} を書き込まないと {5AH} を書き込
んでもクリア動作は行いません。
表 3.9-1 に , ウォッチドッグリセット発生に関する時間間隔と RSRR レジスタの値の関
係を示します。
この期間内に両データの書込みを終えないとウォッチドッグリセットを発生します。
ウォッチドッグリセット発生までの時間や発生抑止のために必要な書込み間隔は ,
RSRR レジスタの WT1 (bit9) , WT0 (bit8) の状態によって変化します。
表 3.9-1 ウォッチドッグリセット発生に関する時間間隔
WPR への最終 5AH 書込みか
WT1
WT0
RSRR のウォッチドッグリセッ
トの発生を抑止するために最低限
必要な WPR への書込み間隔
らウォッチドッグリセットが
発生するまでの時間
0
0
φ × 216 [ 初期値 ]
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ はシステムベースクロックの周期, WT1, WT0はRSRRのbit9, bit8でウォッチドッグ
タイマ周期設定
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
本レジスタの読出し値は不定です。
101
第 3 章 CPU および制御部
■ DIVR0:基本クロック分周設定レジスタ 0
基本クロック分周設定レジスタ 0 のレジスタ構成は , 以下のとおりです。
DIVR0
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000486H
B3
R/W
B2
R/W
B1
R/W
B0
R/W
P3
R/W
P2
R/W
P1
R/W
P0
R/W
初期値
00000011B
R/W :リード / ライト可能
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB), 周辺回路 , およびペリフェ
ラルバスクロック (CLKP) の分周比の設定を行います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特にソースクロック選択の変更設定との順序を間違えないようにご注意
ください。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[bit15 ∼ bit12] B3, B2, B1, B0:CLKB 分周選択ビット
CPU クロック (CLKB) クロック分周比設定ビットです。CPU と内部メモリおよび内
部バスのクロック (CLKB) のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに
対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる分周比は設
定しないでください。
B2
B1
B0
クロック分周比
0
0
0
0
φ
0
0
0
1
φ × 2 (2 分周 )
32.0 MHz [ 初期値 ]
16.0 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8.00 MHz
0
1
0
0
φ × 5 (5 分周 )
6.40 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33 MHz
0
1
1
0
φ × 7 (7 分周 )
4.57 MHz
0
1
1
1
φ × 8 (8 分周 )
4.00 MHz
…
1
…
1
…
1
…
1
…
φ × 16 (16 分周 )
…
2.00 MHz
φ はシステムベースクロックの周期
• リセットにより "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
102
クロック周波数 : 原発振 4MHz
および PLL8 逓倍の場合
B3
第 3 章 CPU および制御部
[bit11 ∼ bit8] P3, P2, P1, P0:CLKP 分周選択ビット
周辺クロック (CLKP) クロック分周比設定ビットです。
周辺回路およびペリフェラルバスのクロック (CLKP) のクロック分周比を設定しま
す。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスのクロックのベー
スクロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択
します。
動作可能な上限周波数は 32 MHz ですので , これを超える周波数になる分周比は設
定しないでください。
P3
P2
P1
P0
クロック分周比
クロック周波数 : 原発振 4 MHz
および PLL8 逓倍の場合
0
0
0
0
φ
32.0 MHz
0
0
0
1
φ × 2 (2 分周 )
16.0 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8.00 MHz [ 初期値 ]
0
1
0
0
φ × 5 (5 分周 )
6.40 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33 MHz
0
1
1
0
φ × 7 (7 分周 )
4.57 MHz
0
1
1
1
φ × 8 (8 分周 )
4.00 MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2.00 MHz
φ はシステムベースクロックの周期
• リセットにより "0011B" に初期化されます。
• 読出しおよび書込みが可能です。
103
第 3 章 CPU および制御部
■ DIVR1:基本クロック分周設定レジスタ 1
基本クロック分周設定レジスタ 1 のレジスタ構成は , 以下のとおりです。
DIVR1
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000487H
T3
R/W
T2
R/W
T1
R/W
T0
R/W
−
−
−
−
−
−
−
−
初期値
00000000B
R/W :リード / ライト可能
各内部クロックの , ベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部拡張バスインタフェースのクロック (CLKT) の分周比の設定を行
います。
<注意事項>
各クロックには動作可能な上限周波数が規定されています。ソースクロックの選択 , PLL
の逓倍率の設定 , 分周比の設定の組合せで , 上限周波数を超える設定をした場合 , 動作は
保証されません。特に , ソースクロック選択の変更設定との順序を間違えないようにご注
意ください。
本レジスタの設定の変更があった場合 , 設定後次のクロックレートから変更後の分周
比が有効となります。
[bit7 ∼ bit4] T3, T2, T1, T0:CLKT 分周選択ビット
外部バスクロック (CLKT) クロック分周比設定ビットです。
外部バスインタフェースのクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部バスインタフェースのクロックのベースクロッ
クに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 16 MHz ですので , これを超える周波数になる分周比は設
定しないでください。
104
第 3 章 CPU および制御部
T3
T2
T1
T0
クロック分周比
クロック周波数 : 原発振 4 [MHz]
および PLL8 逓倍の場合
0
0
0
0
φ
32.0MHz [ 初期値 ]
0
0
0
1
φ × 2 (2 分周 )
16.0MHz
0
0
1
0
φ × 3 (3 分周 )
10.7MHz
0
0
1
1
φ × 4 (4 分周 )
8.00MHz
0
1
0
0
φ × 5 (5 分周 )
6.40MHz
0
1
0
1
φ × 6 (6 分周 )
5.33MHz
0
1
1
0
φ × 7 (7 分周 )
4.57MHz
0
1
1
1
φ × 8 (8 分周 )
4.00MHz
…
…
…
…
…
…
1
1
1
1
φ × 16 (16 分周 )
2.00MHz
φ はシステムベースクロックの周期
• リセットにより "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit3 ∼ bit0] Reserved:予約ビット
予約ビットです。
105
第 3 章 CPU および制御部
■ OSCCR:発振制御レジスタ
発振制御レジスタのレジスタ構成は , 以下のとおりです。
OSCCR
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
00048AH
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
OSCDS1
初期値
XXXXXXX0B
R/W
R/W :リード / ライト可能
サブクロック動作時のメイン発振を制御するレジスタです。
[bit15 ∼ bit9] Reserved:予約ビット
予約ビットです。
[bit8] OSCDS1:メイン発振停止制御ビット ( サブランモード時 )
サブクロック選択中のメイン発振停止ビットです。
クロックソースとしてサブクロック選択中に , 本ビットに "1" を書き込むとメイン
発振を停止します。
本ビットは , メインクロックを選択中は "1" を書くことはできません。
本ビットが "1" の間はメインクロックを選択しないでください。本ビットを "0" に
してメイン発振の安定を待ってからメインクロックに切り換えてください。このと
き , メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。
また , 本ビットによってメイン発振を停止させた状態で , INIT によってクロック
ソースがメインクロックに切り替わった場合もメイン発振安定待ち時間が必要に
なります。このとき , STCR( スタンバイ制御レジスタ ) の bit3, bit2:OS1, OS0 の設定
がメイン発振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。
このような場合は , STCR:OS1, OS0 ビットはサブ発振安定待ち時間およびメイン発
振安定待ち時間両方を満たした値を設定してください。
発振安定待ちについては , 「3.9.2 発振安定待ち・PLL ロック待ち時間」も参照して
ください。
値
内 容
0
サブクロック実行中 , メイン発振を停止しません。[ 初期値 ]
1
サブクロック実行中 , メイン発振を停止します。
• リセットにより "0" に初期化されます。
• 読出しおよび書込みが可能です。
106
第 3 章 CPU および制御部
3.9.7
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には , 26 ビット長のタイムベースカウンタがあり , システムベースク
ロックで動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「4.2 リセット要因と発振安定待
ち時間」を参照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ:
システムの暴走検出用のウォッチドッグタイマを , タイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ:
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット要
求を発生します。
〔ウォッチドッグタイマの起動と周期設定〕
ウォッチドッグタイマは , リセット後の 1 回目の RSRR ( リセット要因レジスタ / ウォッ
チドッグタイマ制御レジスタ ) への書込み動作により起動します。
このとき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットによ
り設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみが有
効となり , それ以降の書込みはすべて無視されます。
〔ウォッチドッグリセットの発生延期〕
いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR ( ウォッチ
ドッグリセット発生延期レジスタ ) に対して {A5H}, {5AH} の順でデータを書き込む必
要があります。
この操作により , ウォッチドッグリセット発生用フラグが初期化されます。
〔ウォッチドッグリセットの発生〕
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカウ
ンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出時にフ
ラグがセットされていると , ウォッチドッグリセットとして設定初期化リセット要求
を発生します。
〔ウォッチドッグタイマの停止〕
いったんウォッチドッグタイマを起動すると , 動作初期化リセットが発生するまでは ,
ウォッチドッグタイマを停止することはできません。
動作初期化リセットの発生する以下の状態では, ウォッチドッグタイマは停止し, 再度プ
ログラム動作にて起動するまでは , 機能しません。
• 動作初期化リセット状態
107
第 3 章 CPU および制御部
• 設定初期化リセット状態
• 発振安定待ちリセット状態
〔ウォッチドッグタイマの一時停止 ( 自動発生延期 ) 〕
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合にはいったん
ウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発生を
延期します。プログラム動作の停止とは具体的には以下の動作を示します。
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• エミュレータデバッガ , モニタデバッガを使用時のブレーク中
• INTE 命令の実行から RETI 命令の実行までの期間
• ステップトレーストラップ
(PS レジスタの T フラグ =1 による 1 命令ごとのブレーク )
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発生用
フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
なお , システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセット
が発生しない可能性があります。その場合 , 外部 INIT 端子よりリセットをかけてくだ
さい。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最
大で { ベースクロック× 227} サイクルまでの , 比較的長時間の時間計測を行う用途に
適しています。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
〔タイムベースタイマの起動とインターバル設定〕
タイムベースタイマは , TBCR ( タイムベースカウンタ制御レジスタ ) の bit13 ∼
bit11:TBC2, TBC1, TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは常に
検出されているため, インターバル時間の設定後はまずbit15:TBIFビットをクリアして
から , bit14:TBIE ビットを "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめ bit14:TBIE ビットを "0" にして割込み要
求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていますの
で , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタイムベー
スカウンタをクリアしてください。そうでないと , 割込み許可直後に割込み要求が発生
することもあり得ます。
108
第 3 章 CPU および制御部
〔プログラムによるタイムベースカウンタのクリア〕
CTBR ( タイムベースカウンタクリアレジスタ ) に対して {A5H}, {5AH} の順でデータ
を書き込むと , {5AH} 書込みの直後に , タイムベースカウンタを全ビット "0" にクリア
します。{A5H} 書込みと {5AH} 書込みの間の時間制限はありませんが , {A5H} 書込み
の後に {5AH} 以外のデータを書き込むと , 再度 {A5H} を書き込まないと {5AH} を書き
込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリセッ
ト発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期されま
す。
〔デバイス状態によるタイムベースカウンタのクリア〕
タイムベースカウンタは , 以下のデバイス状態の遷移時に , 同時に全ビット "0" にクリ
アされます。
• ストップ状態
• 設定初期化リセット状態
特にストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウンタが
使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生してし
まう可能性があります。
そのため , ストップモードを設定する前には , タイムベースタイマ割込みを禁止し , タ
イムベースタイマを使用しないでください。
それ以外の状態については , 動作初期化リセットが発生するため , タイムベースタイマ
割込みは自動的に禁止されます。
● メイン発振安定待ちタイマ ( サブクロック選択時用 )
クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン
トアップする 26 ビットのタイマです。
サブクロック動作中のメイン発振安定待ち時間の計時に使用します。
サブクロックで動作中 , OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 にて , メイン発振
の制御が行えますが , メイン発振を停止させた後で再度発振開始させた際に , 本タイマ
を用いて発振安定待ち時間を計時します。
メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える
際は , 以下の手順で行います。
1. メイン発振安定待ちタイマをクリアします。
2. OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 を "0" にしてメイン発振を開始します。
3. メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。
4. メインクロック安定後, CLKR (クロックソースレジスタ) のbit9, bit8:CLKS1, CLKS0
にてサブクロックからメインクロックに切り換えます。
<注意事項>
安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の動
作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてください。
メイン発振安定待ちタイマの詳細については , 「3.11 メイン発振安定待ちタイマ」を参
照してください。
109
第 3 章 CPU および制御部
3.10
デバイス状態制御
本品種の各種状態とその制御について説明します。
■ デバイス状態制御の概要
本品種のデバイス状態には , 以下のものがあります。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 発振待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
以降 , 上記各種状態の詳細と , 低消費電力モードであるスリープモードおよびストップ
モードの詳細について説明します。
110
第 3 章 CPU および制御部
デバイス状態と各遷移
3.10.1
図 3.10-1 に , 本品種のデバイスの状態遷移を示します。
■ デバイス状態
図 3.10-1 デバイス状態
1
2
3
4
5
6
7
8
9
10
11
12
13
INIT端子=0(INIT)
INIT端子=1(INIT解除)
発振安定待ち終了
リセット(RST)解除
ソフトウェアリセット(INIT)
スリープ(命令書込み)
ストップ(命令書込み)
割込み
クロックを必要としない外部割込み
メイン→サブ切換え(命令書込み)
サブ→メイン切換え(命令書込み)
ウォッチドッグリセット(INIT)
サブスリープ(命令書込み)
最強
パワーオン
1
最弱
遷移要求の優先順位
設定初期化リセット(INIT)
発振安定待ち終了
動作初期化リセット(RST)
割込み要求
ストップ
設定初期化
(INIT)
2
メインクロックモード
1
メイン発振安定待ち
1
リセット
メインストップ
3
発振安定待ちRUN
プログラムリセット
(RST)
3
4
7
1
メインスリープ
1
5,12
メインRUN
8
1
10
サブクロックモード
1
サブスリープ
13
3
1
発振安定待ちRUN
1
11
8
5,12
サブRUN
7
1
4
プログラムリセット
(RST)
1
9
サブストップ
サブストップ
111
第 3 章 CPU および制御部
■ デバイスの動作状態
本品種の動作状態には以下のものがあります。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。
ただし , 16 ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間は
バスクロックのみ停止しています。
各状態遷移要求を受け付けます。
● スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ
および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。有効な割
込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。
● ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路および PLL
は設定により停止させることが可能です。また , 設定により外部端子を一律ハイイン
ピーダンスにすることが可能です ( 一部端子を除く ) 。
特定の ( クロックを必要としない ) 有効な割込みや , 発振動作中のメイン発振安定待ち
タイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。
設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。
● 発振安定待ち RUN 状態
デバイス停止状態です。ストップ状態からの復帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。
● 発振安定待ちリセット (RST) 状態
デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復
帰後に遷移します。
クロック発生制御部 (タイムベースカウンタおよびデバイス状態制御部) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていた PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し
ます。
設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。
112
第 3 章 CPU および制御部
● 動作初期化リセット (RST) 状態
プログラム初期化状態です。発振安定待ちリセット (RST) 状態の終了により遷移しま
す。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いた PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット要求の発生により , 設定初期化リセット (INIT) 状態へ遷移します。
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット要求の受付けにより遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , PLL は動作を停止します。すべて
の内部クロックは , 外部 INIT 端子への "L" レベル入力期間は停止しますが , それ以外
では動作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット要求の消失により , 本状態は解除され , 発振安定待ちリセット
(RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期化
リセットシーケンスを実行します。
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。
ただし , 一部要求は特定の状態でしか発生しませんので , その状態でしか有効になりま
せん。
【最強】設定初期化リセット (INIT) 要求
↓ 発振安定待ち時間の終了
( 発振安定待ちリセット状態および発振安定待ち RUN 状態のみ発生 )
↓ 動作初期化リセット (RST) 要求
↓ 有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓ ストップモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
【最弱】スリープモード要求 ( レジスタ書込み ) (RUN 状態のみ発生 )
113
第 3 章 CPU および制御部
3.10.2
低消費電力モード
本品種の状態のうち , 各低消費電力モードとその使用方法について説明します。
本品種の低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
■ スリープモード
STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットに "1" を書き込むと , スリープ
モードとなり , スリープ状態へ遷移します。
以降 , スリープ状態からの復帰要因が発生するまでは , スリープ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットと本ビット両方に "1" を書き込ん
だ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
スリープ状態については , 「3.10.1 デバイス状態と各遷移」の「● スリープ状態」も
参照してください。
〔スリープモードへの移行〕
スリープモードに入れる場合は , 以下のシーケンスを必ず使用してください。
(LDI#value_of_sleep,R0)
;value_of_sleep は , STCR へのライトデータ
(LDI#_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB R0,@R12
;スタンバイ制御レジスタ (STCR) への書込み
[email protected],R0
;同期スタンバイのための STCR リード
[email protected],R0
;もう一度 STCR をダミーリード
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
〔スリープ状態で停止する回路〕
• CPU のプログラム実行
• ビットサーチモジュール (DMA 転送が発生した場合は動作します。)
• 各種内蔵メモリ (DMA 転送が発生した場合は動作します。)
• 内部 / 外部バス (DMA 転送が発生した場合は動作します。)
114
第 3 章 CPU および制御部
〔スリープ状態で停止しない回路〕
• 発振回路
• 動作許可された PLL
• クロック発生制御部
• 割込みコントローラ
• 周辺回路
• DMA コントローラ
• DSU
• メイン発振安定待ちタイマ
〔スリープ状態からの復帰要因〕
• 有効な割込み要求の発生
割込み禁止(1FH)以外の割込みレベルを持つ割込み要求が発生すると, スリープモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生しても , スリープモードを解除したくない場合は , 該当する ICR
レジスタに割込みレベルとして割込み禁止 (1FH) を設定してください。
• 設定初期化リセット要求の発生
設定初期化リセット要求が発生すると , 無条件で設定初期化リセット状態へ遷移し
ます。
各要因の優先順位については , 「3.10.1 デバイス状態と各遷移」の「● 各状態遷移要
求の優先順位」を参照してください。
〔同期スタンバイ動作〕
SLEEP ビットへの書込みのみではスリープ状態へは遷移しません。
その後 , STCR レジスタを読み出すことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , 【スリープモードへの移行】にあるシーケンスを ,
必ず使用してください。
■ ストップモード
STCR ( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むと , ストップ
モードとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生
するまでは , ストップ状態を維持します。
STCR ( スタンバイ制御レジスタ ) の bit6:SLEEP ビットと本ビット両方に "1" を書き込
んだ場合は , bit7:STOP ビットの方が優先となり , ストップ状態へ遷移します。
ストップ状態については , 「3.10.1 デバイス状態と各遷移」の「● ストップ状態」も
参照してください。
〔ストップモードへの移行〕
ストップモードに入れる場合は , 以下のシーケンスを必ず使用してください。
(LDI#value_of_stop,R0)
;value_of_stop は , STCR へのライトデータ
(LDI#_STCR,R12)
;_STCR は , STCR のアドレス (481H)
STB R0,@R12
;スタンバイ制御レジスタ (STCR) への書込み
[email protected],R0
;同期スタンバイのための STCR リード
[email protected],R0
;もう一度 STCR をダミーリード
115
第 3 章 CPU および制御部
NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
NOP
〔ストップ状態で停止する回路〕
• 停止するよう設定された発振回路:
STCR ( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "1" が設定してあるとき ,
ストップ状態中のサブクロック用発振回路を停止状態にします。
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあるとき ,
ストップ状態中のメインクロック用発振回路を停止状態にします。このときメイン
発振安定待ちタイマも停止します。
• 動作許可されていないか , 停止するよう設定された発振回路に接続された PLL:
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "1" が設定してあるとき ,
CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあっ
ても , ストップ状態中のメインクロック用 PLL を停止状態にします。
• 〔ストップ状態で停止しない回路〕を除くすべての内部回路
〔ストップ状態で停止しない回路〕
• 停止するよう設定されていない発振回路:
STCR ( スタンバイ制御レジスタ ) の bit1:OSCD2 ビットに "0" が設定してあるとき ,
ストップ状態中のサブクロック用発振回路は停止しません。
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあるとき ,
ストップ状態中のメインクロック用発振回路は停止しません。このときメイン発振
安定待ちタイマも停止しません。
• 動作許可されていて,かつ停止するよう設定されていない発振回路に接続されたPLL:
STCR ( スタンバイ制御レジスタ ) の bit0:OSCD1 ビットに "0" が設定してあるとき ,
CLKR ( クロックソース制御レジスタ ) の bit10:PLL1EN ビットに "1" が設定してあ
ると , ストップ状態中のメインクロック用 PLL は停止しません。
〔ストップ状態での端子のハイインピーダンス制御〕
STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "1" が設定してあると , ストップ
状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる端子は「付
録 C 各 CPU ステートにおける端子状態」を参照してください。
STCR ( スタンバイ制御レジスタ ) の bit5:HIZ ビットに "0" が設定してあると , ストップ
状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は「付録 C 各
CPU ステートにおける端子状態」を参照してください。
〔ストップ状態からの復帰要因〕
• 特定の ( クロックを必要としない ) 有効な割込み要求の発生:
外部割込み入力端子 (INT0 ∼ INT15 端子 ) , メイン発振中のメイン発振安定待ちタイ
マ割込み , およびサブ発振中の時計割込みのみ有効です。
割込み禁止 (1FH) 以外の割込みレベルを持つ割込み要求が発生するとストップモー
ドは解除され , RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , 該当する ICR レ
ジスタに割込みレベルとして割込み禁止 (1FH) を設定してください。
116
第 3 章 CPU および制御部
• メイン発振安定待ちタイマ割込み:
サブクロック選択中で OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 ビットに "0" が
設定時もしくはメインクロック選択中において, STCR (スタンバイ制御レジスタ) の
bit0:OSCD1 ビットに "0" が設定してあるとき , メイン発振安定待ちタイマの割込み要
求が発生するとストップモードは解除され RUN 状態 ( 通常状態 ) へ遷移します。
割込み要求が発生してもストップモードを解除したくない場合は , メイン発振安定
待ちタイマを停止させるか , またはメイン発振安定待ちタイマの割込み許可ビット
を割込み禁止に設定してください。
• 設定初期化リセット要求の発生:
設定初期化リセット要求が発生すると , 無条件で設定初期化リセット (INIT) 状態へ
遷移します。
各要因の優先順位については , 「3.10.1 デバイス状態と各遷移」の「● 各状態遷移要
求の優先順位」を参照してください。
〔ストップモード時のクロックソース選択〕
ストップモードを設定する前に , メインクロックの 2 分周をソースクロックとするよう
あらかじめ選択しておいてください。詳細は , 「3.9 クロック生成制御」, および「3.9.1
PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は変わりません。
■ 同期スタンバイ動作
STOP ビットへの書込みのみではストップ状態へは遷移しません。その後 , STCR レジ
スタを読み出すことによってストップ状態へ遷移します。
実際に STOP ビットへの書込みが行われた後 , STCR レジスタの読出しが完了するまで
はストップ状態へ遷移しません。STCR レジスタの読出し値が CPU に格納されるまで
は , CPU がバスを使用しているためです。このため , CPU クロック (CLKB) と周辺ク
ロック (CLKP) の分周比の関係がいかなる設定においても , STOP ビットへの書込み命
令と STCR レジスタの読出し命令の後に , 2 命令のみ NOP 命令を配置するのみで , それ
以降の命令がストップ状態への遷移前に実行されることを防ぐことができます。
ストップモードを使用する場合は , 〔ストップモードへの移行〕にあるシーケンスを ,
必ず使用してください。
117
第 3 章 CPU および制御部
3.11
メイン発振安定待ちタイマ
メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23
ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ
イマ機能があります。
本タイマは , サブクロックで動作中に OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 に
よってメイン発振を一度止めて再度発振させた場合に , メインクロックを発振安定待ち
時間の確保に使用します。
■ メイン発振安定待ちタイマのインターバル時間
表 3.11-1 にインターバル時間の種類を示します。インターバル時間は次の 3 種類の中
から選択できます。
表 3.11-1 メイン発振安定待ちタイマのインターバル時間
メインクロック周期
インターバル時間
211/FCL(512 µs)
216/FCL(16.4 ms)
1/FCL( 約 250 ns)
223/FCL(2097 ms)
( 注意 ) FCL はメインクロック発振周波数
■ メイン発振安定待ちタイマのブロックダイヤグラム
図 3.11-1 に , メイン発振安定待ちタイマのブロックダイヤグラムを示します。
図 3.11-1 メイン発振安定待ちタイマのブロックダイヤグラム
メイン発振安定待ち
タイマ用カウンタ
FCL
0
1
2
1
2
3
2
2
2
3
2
4
4
5
6
7
8
10
5
6
7
8
9
11
2
2
2
2
インター
バル
タイマ
セレクタ
WIF
WIF
WEN
22
16
2
223
2
(16.4ms)
(2097ms)
リセット
(INIT)
メイン発振安定待ち
タイマ割込み
メイン発振安定待ちタイマ
制御レジスタ(OSCR)
2
15
WS1
カウンタ
クリア回路
WS0
WCL
FCL:メインクロック原発振
( )内の数字は、メインクロック原発振4MHzの場合の周期
118
第 3 章 CPU および制御部
● メイン発振安定待ちタイマ
メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。
● カウンタクリア回路
OSCR レジスタによる設定 (WCL=0) 以外に , リセット時にカウンタをクリアします。
● インターバルタイマセレクタ
メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ用
の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因になりま
す。
● メイン発振安定待ちレジスタ (OSCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを行い
ます。
■ メイン発振安定待ちタイマのレジスタ説明
メイン発振安定待ちタイマレジスタのレジスタ構成は , 以下のとおりです。
OSCR
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000490H
WIF
R/W
WIE
R/W
WEN
R/W
−
R/W
−
R/W
WS1
R/W
WS0
R/W
WCL
W
初期値
00000000B
R/W :リード / ライト可能
W :ライトオンリ
[bit15] WIF:タイマ割込みフラグ
メイン発振安定待ち割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットさ
れます。
このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出
力します。
値
内 容
0
メイン発振安定割込みの要求なし [ 初期値 ]
1
メイン発振安定割込みの要求あり
• リセットで "0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書き込
んでもビット値は変化しません。
• リードモディファイライト系命令での読出し値では常に "1" となります。
119
第 3 章 CPU および制御部
[bit14] WIE:タイマ割込み許可ビット
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振
安定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力しま
す。
値
内 容
0
メイン発振安定割込み要求出力を禁止します。[ 初期値 ]
1
メイン発振安定割込み要求出力を許可します。
• リセットで "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit13] WEN:タイマ動作許可ビット
タイマ動作許可ビットです。
本ビットが "1" のときタイマはカウント動作を行います。
値
内 容
0
タイマ動作を停止します。[ 初期値 ]
1
タイマはカウント動作を行います。
• リセットで "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit12, bit11] Reserved:予約ビット
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 ) 。
読出し値は不定です。
[bit10, bit9] WS1, WS0:タイマインターバル時間選択ビット
インターバルタイマの周期を選択します。
メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択し
ます。
WS1
WS0
0
0
設定禁止 [ 初期値 ]
0
1
211/FCL(512 µs)
1
0
216/FCL(16.4 ms)
1
1
223/FCL(2097 ms)
インターバルタイマ周期 (FCL=4 MHz 時 )
• リセットで "00B" に初期化されます。
• 読出しおよび書込みが可能です。
• メイン発振安定待ち時間タイマを使用する場合 , 本レジスタにデータの書込みを
行ってください。
120
第 3 章 CPU および制御部
[bit8] WCL:タイマクリアビット
"0" 書込みでメイン発振安定待ちタイマを 0 にクリアします。
書込みは "0" のみ可能で , "1" を書き込んでも動作に影響を与えません。
• 読出し値は常に "1" となります。
■ メイン発振安定待ち割込み
メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した
インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に
セットします。そのとき , 割込み要求許可ビットを許可 (WIE=1) していると CPU へ割
込み要求が発生します。ただし , メインクロックが発振停止しているとき ( 次項の「■
インターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン
発振安定待ち割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書込み , 割込み要求をクリアしてください。
なお , WIF ビットは , WIE ビットの値に関系なく , 指定した分周出力が立ち下がると
セットされます。
<注意事項>
リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS1:WS0 ビット変更時
は , 必ず WIF と WCL ビットを同時にクリア (WIF=WCL=0) してください。
<参考>
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込み
要求が発生します。
• カウンタクリア(WPCR:WCL=1)と選択したビットのオーバフローが同時に起こった場
合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま
すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま
す。
• WEN ビットが "0" のとき
• ストップモードでメイン発振が停止する設定 ( スタンバイ制御レジスタ STCR の
bit0:OSCD1=1) でストップモードに移行すると , ストップモード中 , カウント動作が
停止します。
本品種では , リセット時 OSCD1=1 に初期化しますので , ストップモード中もメイン
発振安定待ちタイマを動かしたい場合は, スタンバイ移行前にOSCD1=0を設定して
ください。
• サブクロックモードで OSCCR ( 発振制御レジスタ ) の bit0:OSCDS1 に "1" を設定時 ,
メイン発振が停止します。
タイマカウント動作も停止します。
121
第 3 章 CPU および制御部
カウンタをクリア (WCL=0) すると , "000000H" からカウント動作を行い , "7FFFFFH" に
達すると , "000000H" に戻ってカウントを継続します。カウントアップ中に選択された
インターバルタイマ用の分周出力に立下りエッジが発生すると , メイン発振安定待ち
割込み要求ビット (WIF) を "1" にセットします。すなわち , クリアされた時間を基準に
して , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発
生することになります。
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク
ロックで動作する本メイン発振安定待ちタイマを使用します。
サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを行う
には , 次の手順で行ってください。
1. メインクロックの発振安定に必要な時間を WT1, WT0 ビットに設定し , カウンタを
"0" にクリアします (WT1, WT0= 発振安定待ち時間 , WCL= 0 書込み )。
発振安定待ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行
います (WIF= 0, WIE= 0 書込み )。
2. メインクロックの発振を開始します (OSCCR レジスタ bit0:OSCDS1= 0 書込み )。
3. プログラムにて , WIF フラグが "1" になるまで待ちます。
4. WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF= 1 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。
サブクロックからメインクロックに切り換える場合も , 4) の WIF= 1 の確認を待って
から行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバイ
ス全体に不安定なクロックが供給され , その後の動作は保証されません ) 。
■ メイン発振安定待ちタイマの動作
図 3.11-2 に , メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウン
タ状態を示します。
図 3.11-2 メイン発振安定待ちタイマ起動時のメインクロックへの移行時のカウンタ状態
7FFFFFH
カウンタ値
メインクロック
発振安定待ち時間
・タイマクリア(WCL=1) 0以外の時
割込みルーチンで
・インターバル時間設定(WS1, WS0=11B) クリア
・メイン発振開始(OSCCR:OSCDS1=0)
WIF(割込み要求)
WIF(割込みマスク)
クロックモード
サブクロック
・サブ→メインクロック変更
122
メインクロック
第 3 章 CPU および制御部
■ メイン発振安定待ちタイマ使用時の注意事項
発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込みも
発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を停止し
ないでください。
WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラグ
セットが優先し , "0" クリアは無効となります。
123
第 3 章 CPU および制御部
124
第4章
リセット
リセットについて説明します。
4.1 リセットの概要
4.2 リセット要因と発振安定待ち時間
4.3 リセットレベル
4.4 外部リセット端子
4.5 リセット動作
4.6 リセット要因ビット
4.7 リセットによる各端子の状態
125
第 4 章 リセット
4.1
リセットの概要
リセットが発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解除待
ち状態となります。リセットの解除後は , リセットベクタで示されたアドレスから
処理を開始します。
リセットには次の 5 つの要因があります。
• 外部リセット端子 (INIT) からのリセット要求
• ソフトウェアリセット要求
• ウォッチドッグタイマのオーバフロー
• ハードウェアウォッチドッグタイマのオーバフロー
• 発振動作不具合
■ リセット要因
表 4.1-1 にリセットの要因について示します。
表 4.1-1 リセット要因
リセット
発生要因
内部発生 リセット
タイミング レベル
発振安定待ち
メイン
STOP 状態 左記以外
発振停止
外部リセット
INIT 端子への "L" 入力
同期
( 非同期 )
INIT
あり
あり
あり
ソフトウェア
リセット
スタンバイ制御レジス
タ (STCR) の SRST
ビットに "0" 書込み
同期
INIT
あり
―
なし
ウォッチドッグ ウォッチドッグタイマ
タイマ
オーバフロー
同期
INIT
あり
―
なし
ハードウェアウォッチ
ハードウェア
ドッグタイマのオーバ
ウォッチドッグ
フロー
同期
INIT
あり
―
あり
クロックスーパ
発振動作不具合
バイザ
同期
INIT
あり
―
あり
クロックスーパバイザリセットを除き , リセット要因発生時にはマシンクロックとし
て , メイン発振クロックの 2 分周クロックが使用されます。クロックスーパバイザリ
セットは内蔵 RC 発振により生成されます。
● 外部リセット
外部リセットは , 外部リセット (INIT) 端子に "L" レベルを入力することでリセットを
発生します。なお , 電源投入時は INIT 端子の入力レベルを "L" とし , 設定初期化リセッ
ト (INIT) をかけてください。また電源投入直後は , 発振回路の発振安定待ち時間と降
圧回路の安定待ち時間を確保するため , INIT 端子への "L" レベル入力を発振回路の要
求する安定待ち時間の間持続してください。
● ソフトウェアリセット
ソフトウェアリセットは , スタンバイ制御レジスタ (STCR) の SRST ビットに "0" を書
き込むことによって発生される内部リセットです。
126
第 4 章 リセット
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマの起動後定められた時間内に ,
ウォッチドッグリセット発生遅延レジスタ (WPR) に連続した A5H, 5AH の書込みがな
い場合に , ウォッチドッグタイマのオーバフローにより発生するリセットです。
● ハードウェアウォッチドッグリセット
ハードウェアウォッチドッグリセットは , 電源投入後 , 定められた時間内にハードウェ
アウォッチドッグタイマ制御レジスタ (HWDCS) の CL ビットに "0" の書込みがないと
き , ハードウェアウォッチドッグタイマのオーバフローによってリセットを発生しま
す。
● クロックスーパバイザリセット
クロックスーパバイザリセットは , メイン発振およびサブ発振を監視し , その出力に不
具合が生ずるとリセットを発生します。
<注意事項>
電源投入時 , 電圧低下発生時以外のリセット要因では , 書込み動作中 ( 転送系命令実行中 )
にリセット要因が発生した場合 , 命令の終了後にリセット解除待ち状態となります。その
ため , 書込み中にリセットが入力されても正常に書込みを終了します。
ただし , ロードマルチ (LDM) 系 , ストアマルチ (STM) 系命令は , 指定したレジスタ分の転
送が終了する前にリセットを受け付けますので , すべてのデータが転送されることを保障
しません。
127
第 4 章 リセット
リセット要因と発振安定待ち時間
4.2
5 種類のリセット要因があり , リセット時の発振安定待ち時間はリセット要因によっ
て異なります。
■ リセット要因と発振安定待ち時間
表 4.2-1 にリセット要因と発振安定待ち時間について示します。
表 4.2-1 リセット要因と発振安定待ち時間
発振安定待ち時間
リセット
発生要因
メイン
発振停止
STOP 状態
左記以外
外部端子
INIT 端子への "L" 入力
OS ビットが
"0" の時間
OS ビットが
"0" の時間
あり
ソフトウェア
リセット
スタンバイ制御レジスタ (STCR) の
SRST ビットに "0" 書込み
OS ビットの
設定値
―
なし
ウォッチドッグ
タイマ
ウォッチドッグタイマ
オーバフロー
OS ビットの
設定値
―
なし
ハードウェア
ウォッチドッグ
ハードウェアウォッチドッグタイマ
オーバフロー
OS ビットが
"0" の時間
―
あり
クロックスーパ
バイザ
発振動作不具合
OS ビットが
"0" の時間
―
あり
発振安定待ち時間の確保は , スタンバイ制御レジスタ (STCR) 内の OS ビットの設定に
より行います。
表 4.2-2 に OS1, OS0 の設定と発振安定待ち時間について示します。
表 4.2-2 スタンバイ制御レジスタ (STCR) の設定による発振安定待ち時間
OS1
OS0
0
0
φ × 212 ( 約 1.97ms) ※電源投入時
0
1
φ × 212 ( 約 1.97ms)
1
0
φ × 213 ( 約 4.1ms)
1
1
φ × 214 ( 約 5.2ms)
発振安定待ち時間 () 内は発振クロック発振周波数 4MHz 時
φ はシステムベースクロックの周期
<注意事項>
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで一般
に数ミリ秒から十数ミリ秒の発振安定待ち時間を必要とします。そのため , 使用する振動
子に合わせた値を設定してください。
128
第 4 章 リセット
■ 電源投入時の発振安定待ち時間について
電源投入時には INIT 端子の入力レベルを "L" としてください。電源投入後の "L" レベ
ル入力期間は降圧回路の安定時間 (8ms) 以上を確保してください。
図 4.2-1 外部リセットと内部動作の関係
Vcc
CLK
INIT
CPU動作
降圧回路の
安定待ち時間
発振安定
待ち時間
INIT の "L" レベル入力期間が 8ms に満たない場合 , 内部回路により降圧回路の安定待ち
時間が確保されます。
降圧回路の安定待ち経過後 , または INIT 端子の "L" レベル入力解除後に発振安定待ち
時間が確保されます。
■ INIT 端子による復帰について
表 4.2-3 にストップモード中または , サブラン中に , INIT 端子への "L" レベル入力が行
われた場合の発振安定待ち時間について示します。
メイン発振の動作状態により , 発振安定待ち時間が異なります。
表 4.2-3 INIT 端子によるリセット要因と発振安定待ち時間
発生要因
INIT 端子へ
の "L" 入力
状態
発振安定待ち時間
() 内は発振クロック発振周波数 4MHz 時
メイン発振許可
OS ビットが "00B" の時間+ 27/HCLK ( 約 32µs)
メイン発振停止
OS ビットが "00B" の時間+約 12µs
HCLK:発振クロック周波数
129
第 4 章 リセット
4.3
リセットレベル
FR60Lite デバイスのリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因
および初期化の内容が異なります。ここでは , 各リセットのレベルについて説明し
ます。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットです。
外部端子入力 , ウォッチドッグリセット , ソフトウェアリセット , ハードウェアウォッ
チドッグリセット , クロックスーパバイザリセットが , 設定初期化リセット (INIT) のリ
セットレベルを持ちます。設定初期化リセット (INIT) 発生時には , 同時に動作初期化
リセット (RST) も発生します。
設定初期化リセット (INIT) により初期化される内容は次のとおりです。
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• クロック生成 / 制御に関する設定
- クロックソース選択 (CLKS:メインクロック 2 分周 )
- クロック分周設定 ( 周辺:× 4, CPU:× 1, 外部バス:× 1)
- ウォッチドッグタイマ周期 (WT1, WT0:216/ ベースクロック周期 ) *1
- 発振安定待ち時間 (OS1, OS0:215/HCLK) *2
- ストップ時発振抑止 (OSCD1:ストップ中メインクロック発振を停止 )
- タイムベースタイマ割込み (TBIE:禁止 )
- メイン PLL 逓倍率 (PLL1S2 ∼ PLL1S0:× 1)
- PLL 動作許可 (PLL1EN:PLL 停止 )
• 外部バスの CS0 領域に関するすべての設定
- 領域選択レジスタ (ASR0:開始アドレス "0")
- 領域サイズ (ASZ1, ASZ0:512K バイト )
- データバス幅 ( モードデータの値が反映されます )
- アクセスタイプ (TYP3 ∼ TYP0:通常アクセス , WR0 ∼ WR1 端子をライトスト
ローブとして使用 , RDY 端子による WAIT 挿入無効 )
• 動作初期化リセット (RST) で初期化されるすべての設定
*1: 設定初期化リセット (INIT) 発生により , ウォッチドッグタイマは停止し , 再度プロ
グラム動作により起動するまでは機能しません。
*2: 電源投入時の外部 INIT 端子によって初期化されます。
130
第 4 章 リセット
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット(INIT)発生時には, 同時に動作初期化リセット(RST)も発生します。
動作初期化リセット (RST) により初期化される内容は以下のとおりです。
• プログラム動作
• CPU および内部バス
• クロック生成 / 制御に関する設定
- ウォッチドッグタイマ周期 (WT1, WT0:216/ ベースクロック周期 )
- タイムベースタイマ割込み (TBIE:禁止 )
• 周辺回路のレジスタ設定値
• I/O ポート設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
131
第 4 章 リセット
4.4
外部リセット端子
外部リセット端子 (INIT 端子 ) は , リセット入力専用端子で , "L" レベルの入力に
よって内部リセットを発生します。マシンクロックに同期してリセットがかかりま
すが , 外部端子は非同期でリセットがかかります。
■ 外部リセット端子のブロックダイヤグラム
図 4.4-1 内部リセットのブロックダイヤグラム
マシンクロック
(PLL逓倍回路, HCLKの2分周)
INIT
端子
P-ch
P-ch
同期化回路
N-ch
入力バッファ
クロック同期
内部リセット信号
<注意事項>
書込み動作中のリセットによるメモリ破壊を防ぐため , INIT 端子入力による内部回路の初
期化動作をメモリが破壊されないサイクルで行います。
また , 内部回路の初期化にはクロックが必要です。外部クロックで動作させる場合には ,
リセット入力時にクロック入力を供給してください。
■ 外部端子のリセットタイミング
外部リセット INIT 端子入力に対して , 各外部端子は非同期にリセットがかかります。
132
第 4 章 リセット
4.5
リセット動作
リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読
出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作
モードとリセット動作後の実行開始アドレスが決定されます。電源投入後 , ストッ
プからのリセットによる復帰では , 発振安定待ち時間が経過してからモードフェッ
チを行います。
■ リセット動作の概要
図 4.5-1 に , リセット動作フローを示します。
図 4.5-1 リセット動作フロー
電源投入時の外部リセット
リセット中
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
ハードウェアウォッチドッグリセット
クロックスーパバイザリセット
停止
メイン発振
発振安定待ちリセット状態
動作
モードデータ取込み
モードフェッチ
(リセット動作)
通常動作
(RUN状態)
リセットベクタ取込み
リセットベクタが示すアドレスから
命令コードを読み込み, 命令を実行
■ モード端子
モード端子 (MD0 ∼ MD2) は , リセットベクタとモードデータの取込み方法を指定しま
す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。
■ モードフェッチ
リセットが解除されると , CPU は , リセットベクタとモードデータを CPU コア内の該
当レジスタ内に取り込みます。リセットベクタとモードデータはそれぞれ , FFFFCH,
FFFF8H に割り当てられています。CPU は , リセット解除後直ちにこれらのアドレスを
内部バスに出力し , リセットベクタとモードデータを取り込みます。このモードフェッ
チで , CPU はリセットベクタが指すアドレスから処理を開始します。
133
第 4 章 リセット
4.6
リセット要因ビット
リセット発生要因は , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
(RSRR) を読み出すことで識別することができます。
■ リセット
図 4.6-1 に示すように , それぞれのリセット要因に対応したフリップフロップがありま
す。これらの内容は , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
(RSRR) を読み出すと得られます。リセット解除後にリセット発生要因を識別する必要
がある場合には , リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
の読出し値をソフトウェアで処理した上で , 適切なプログラムへ分岐するようにして
ください。
図 4.6-1 リセット要因ビットブロック
定期的なクリアなし 発振出力異常
ハードウェア
ウォッチドッグ
クロック
スーパバイザ
INIT端子
外部リセット
要求検出回路
ウォッチドッグ
タイマリセット
発生検出回路
定期的なクリアなし SRSTビットセット
ウォッチドッグ
タイマ制御
レジスタ
(RSRR)
システムベース
クロック
SRSTビット
書込み検出回路
内部リセット
D
CL
F/F
Q CK
D
CL
F/F
Q CK
D
CL
F/F
Q
CK
CL
F/F
D
CK
ウォッチドッグタイマ
制御レジスタ
(RSRR)読出し
内部データバス
134
Q
第 4 章 リセット
■ リセット要因ビットとリセット要因の対応
リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR) のリセット要因
ビットの構成を , 図 4.6-2 に , リセット要因ビットの内容とリセット要因の対応を 表
4.6-1 に示します。詳細は , 「3.9 クロック生成制御」を参照してください。
図 4.6-2 リセット要因ビットの構成 (RSRR)
RSRR
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000480H
−
R
−
R
WDOG
R
ERST
R
SRST
R
−
R
WT1
R/W
WT0
R/W
初期値
00010000B
R/W :リード / ライト可能
R
:リードオンリ
表 4.6-1 リセット要因ビットの内容とリセット要因の対応
ERST
WDOG
SRST
*
1
*
クロックスーパバイザによるリセット要求の発生* 1
ハードウェアウォッチドッグリセット要求の発生* 2
1
*
*
ソフトウェアリセット要求の発生
*
*
1
リセット要因
ウォッチドッグタイマオーバフローによる
リセット要求の発生
INIT 端子からの外部リセット要求
*:前の状態を保持
*1:クロックスーパバイザによるリセット要求の発生の場合は , クロックスーパバイ
ザ制御レジスタ (CSVCR) の MM ビットまたは MS ビットが "1" になります。
*2:ハードウェアウォッチドッグリセット要求の発生の場合は , ハードウェアウォッ
チドッグタイマ制御レジスタ (HWDCS) の CPUF ビットが "1" になります。
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , RSRR の対応するそれぞれのリセット要因ビット
が "1" にセットされます。例えば , INIT 端子からの外部リセット要求の発生とウォッ
チドッグタイマのオーバフローが同時に発生した場合 , ERST ビットと WDOG ビット
の両方が "1" になります。
● リセット要因ビットのクリア
リセット要因ビットは , RSRR を読み出したときのみクリアされます。それぞれのリ
セット要因に対応するビットに生じたフラグは , その後ほかの要因でリセットが発生
してもクリアされません ("1" のままです ) 。
135
第 4 章 リセット
4.7
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ∼ MD0= 00xB) の設定によって決定され
ます。
● 内部ベクタモード設定時 (M2, M1, M0 = 000B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
● 外部ベクタモード設定時 (M2, M1, M0 = 001B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は外部 ROM になります。
<注意事項>
MB91F273(S)/MB91F278(S) は内部ベクタモードのみをサポートします。
■ モードデータ読出し後の端子の状態
モードデータ読出し後の端子の状態は , モードデータによって決定されます。
● シングルチップモード選択時
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , リセットベクタの読出
し先は内部 ROM になります。
● 外バスモード選択時
I/O 端子 ( 周辺機能端子 ) は外バス兼用端子を除いてすべてハイインピーダンスになり ,
リセットベクタの読出し先は外部 ROM になります。
<注意事項>
リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器
が誤動作しないように配慮してください。
136
第5章
外部バスインタフェース
外部バスインタフェースコントローラは , LSI の内
部バスと外部のメモリおよび I/O デバイスとのイン
タフェースを制御します。
外部バスインタフェースの各機能について説明し
ます。
5.1 外部バスインタフェースの特長
5.2 外部バスインタフェースのレジスタ
5.3 チップセレクト領域
5.4 エンディアンとバスアクセス
5.5 通常バスインタフェース
5.6 アドレス / データマルチプレクスインタフェース
5.7 DMA アクセス
5.8 レジスタ設定手順
137
第 5 章 外部バスインタフェース
5.1
外部バスインタフェースの特長
外部バスインタフェースの特長について説明します。
■ 外部バスインタフェースの特長
• 最大 24 ビット長のアドレス出力
• 各種外部メモリ (8 ビット /16 ビット ) を直結できるほか , 複数のアクセスタイミン
グを混在制御可能
- 非同期 SRAM, 非同期 ROM/ フラッシュメモリ
( 複数ライトストローブ方式またはバイトイネーブル方式 )
- アドレス / データマルチプレクスバス (8 ビット /16 ビット幅のみ )
• 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
- CS0, CS1 は , 64K/128K/256K/512K バイト単位で , 003FFFFFH までの外部バス領域
に割り当てられた空間に設定可能
- CS2, CS3 は , 1M/2M/4M/8M バイト単位で , 00400000H ∼ 00FFFFFFH の空間に設
定可能
- 領域サイズによりバウンダリの制限あり
• チップセレクト領域ごとに以下の機能が独立に設定可能
- チップセレクト領域の許可・禁止
( 禁止された領域はアクセスを行いません )
- 各種メモリ対応などのアクセスタイミングタイプ設定
- 詳細アクセスタイミング設定
( ウェイトサイクルなどのアクセスタイプ個別設定 )
- データバス幅設定 (8 ビット /16 ビット )
• アクセスタイミングタイプごとに異なる詳細なタイミングが設定可能
- 同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 7 サイクルまで設定可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能
( 非同期 SRAM, ROM, Flash, I/O 領域 )
- 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能
• 外部インタフェースの未使用ピンは , 設定により汎用 I/O ポートとして使用可能
138
第 5 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 5.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 5.1-1 外部バスインタフェースのブロックダイヤグラム
内部
アドレスバス
32
内部
データバス
32
外部
データバス
MUX
ライトバッファ
スイッチ
リードバッファ
スイッチ
データブロック
アドレスブロック
+1 または +2
外部
アドレスバス
アドレスバッファ
ASR
CS0~CS3
ASZ
comparator
外部端子制御部
RD
WR0,WR1
全ブロック制御
レジスタ&制御
AS
RDY
139
第 5 章 外部バスインタフェース
■ I/O ピン
外部バスインタフェースの端子です。
〔通常バスインタフェース〕
A23 ∼ A00, D15 ∼ D00
CS0, CS1, CS2, CS3,
AS, SYSCLK,
RD,
WR0, WR1,
RDY
■ 外部バスインタフェースのレジスタ一覧
外部バスインタフェースのレジスタ構成は , 以下のとおりです。
アドレス bit 31
00000640H
00000644H
00000648H
0000064CH
00000660H
00000664H
00000680H
000007FCH
24 23
16 15
8 7
ASR0
ASR1
ASR2
ASR3
AWR0
AWR2
CSER
Reserved
0
ACR0
ACR1
ACR2
ACR3
AWR1
AWR3
Reserved
MODR
Reserved
Reserved
Reserved
Reserved
予約:予約レジスタです。書き換える場合には , 必ず "0" を設定してください。
MODR はユーザプログラムからはアクセスできません。
140
第 5 章 外部バスインタフェース
5.2
外部バスインタフェースのレジスタ
外部バスインタフェースのレジスタについて説明します。
■ 外部バスインタフェースのレジスタ概要
外部バスインタフェースには , 以下の 4 種類のレジスタがあります。
• Area Select Register (ASR0 ∼ ASR3)
• Area Configuration Register (ACR0 ∼ ACR3)
• Area Wait Register (AWR0 ∼ AWR3)
• Chip Select Enable Register (CSER)
141
第 5 章 外部バスインタフェース
5.2.1
Area Select Register (ASR0 ∼ ASR3)
Area Select Register の詳細を説明します。
■ ASR0 ∼ ASR3(Area Select Register) のレジスタ構成
ASR0 ∼ ASR3 のレジスタ構成は , 以下のとおりです。
ASR0
アドレス
bit15
---
bit8
bit7
bit6
---
bit1
bit0
000640H
R/W
-----
R/W
A23
R/W
A22
R/W
-----
A17
R/W
A16
R/W
アドレス
bit15
---
bit8
bit7
bit6
---
bit1
bit0
000644H
R/W
-----
R/W
A23
R/W
A22
R/W
-----
A17
R/W
A16
R/W
アドレス
bit15
---
bit8
bit7
bit6
---
bit1
bit0
000648H
R/W
-----
R/W
A23
R/W
A22
R/W
-----
A17
R/W
A16
R/W
アドレス
bit15
---
bit8
bit7
bit6
---
bit1
bit0
00064CH
R/W
-----
R/W
A23
R/W
A22
R/W
-----
A17
R/W
A16
R/W
初期値
0000H
ASR1
初期値
00XXH
ASR2
初期値
XXXXH
ASR3
初期値
00XXH
R/W :リード / ライト可能
X
:不定
[bit15 ∼ bit8] Reserved:予約ビット
必ず , "00H" を設定してください。
[bit7 ∼ bit0] A23 ∼ A16:領域開始アドレス
ASR0 ∼ ASR3 (Area Select Register 0 ∼ 3) は , CS0 ∼ CS3 の各チップセレクト領域
の開始アドレスを指定します。
開始アドレスは , A23 ∼ A16 の上位 8 ビットを設定できます。各チップセレクト領
域は , このレジスタに設定されたアドレスから始まり , ACR0 ∼ ACR3 レジスタの
ASZ1, ASZ0 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR3 レジスタの ASZ1, ASZ0 ビッ
トの設定に従います。例えば , ASZ1, ASZ0 ビットにより , 1 M バイトの領域を設定し
た場合は , ASR0 ∼ ASR3 レジスタの下位 4 ビットは無視され , A23 ∼ A20 ビットの
み意味を持ちます。
ASR0 レジスタは , リセットにより , "00H" に初期化されます。ASR1 ∼ ASR3 は , リ
セットによっては初期化されず , 不定となります。LSI の動作開始後 , CSER レジスタ
により各チップセレクト領域を有効にする前に , 必ず対応する ASR レジスタを設定
してください。
142
第 5 章 外部バスインタフェース
5.2.2
Area Configuration Register (ACR0 ∼ ACR3)
Area Configuration Register の詳細を説明します。
■ ACR0 ∼ ACR3 (Area Configuration Register) のレジスタ構成
ACR0 ∼ ACR3 のレジスタ構成は , 以下のとおりです。
ACR0H
bit14
bit13
bit12
bit11
bit10
−
R/W
−
R/W
ASZ1
R/W
ASZ0
R/W
−
R/W
DBW0
R/W
bit8
初期値
−
R/W
−
R/W
00110*00B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
−
R/W
−
R/W
WREN
R/W
0
R/W
初期値
TYP3
R/W
TYP2
R/W
TYP1
R/W
TYP0
R/W
00000000B
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000646H
−
R/W
−
R/W
ASZ1
R/W
ASZ0
R/W
−
R/W
DBW0
R/W
−
R/W
−
R/W
xxxx0x00B
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000647H
−
R/W
−
R/W
WREN
R/W
−
R/W
TYP3
R/W
TYP2
R/W
TYP1
R/W
TYP0
R/W
00x0xxxxB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
−
R/W
ASZ1
R/W
ASZ0
R/W
−
R/W
DBW0
R/W
−
R/W
−
R/W
xxxx0x00B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
−
R/W
WREN
R/W
−
R/W
TYP3
R/W
TYP2
R/W
TYP1
R/W
TYP0
R/W
00x0xxxxB
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00064EH
−
R/W
−
R/W
ASZ1
R/W
ASZ0
R/W
−
R/W
DBW0
R/W
−
R/W
−
R/W
01xx0x00B
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00064FH
−
R/W
−
R/W
WREN
R/W
−
R/W
TYP3
R/W
TYP2
R/W
TYP1
R/W
TYP0
R/W
00x0xxxxB
アドレス
000642H
bit15
bit9
ACR0L
アドレス
000643H
ACR1H
ACR1L
ACR2H
アドレス
00064AH
ACR2L
アドレス
00064BH
ACR3H
ACR3L
R/W :リード / ライト可能
*
:モードベクタの WTH ビットと同じ値に自動設定
143
第 5 章 外部バスインタフェース
ACR0 ∼ ACR3(Area Configuration Register 0 ∼ 3) は , 各チップセレクト領域の機能を設
定します。
<注意事項>
ASR と ACR は , ワードアクセスで同時設定してください。ASR, ACR をハーフワードで
アクセスする場合は , ASR 設定後 , ACR を設定してください。
[bit15, bit14] Reserved:予約ビット
必ず , "00B" を設定してください。
[bit13, bit12] ASZ1, ASZ0= Area Size ビット [1:0]
各チップセレクト領域のサイズを , 表 5.2-1 のように設定します。
表 5.2-1 Area Size ビットの各チップセレクト領域のサイズ
Register ASZ1 ASZ0
ASR0/
ASR1
ASR2/
ASR3
各チップセレクト領域のサイズ
設定
64 K バイト (00010000H バイト , ASR A[23:16] ビット指定が有効 )
0
0
0
1
1
0
128 K バイト (00020000H バイト , ASR A[23:17] ビット指定が有効 ) CS0, CS1
256 K バイト (00040000 バイト , ASR A[23:18] ビット指定が有効 ) のみ有効
1
1
512 K バイト (00080000H バイト , ASR A[23:19] ビット指定が有効 )
0
0
1 M バイト (00100000H バイト , ASR A[23:20] ビット指定が有効 )
0
1
1
0
2 M バイト (00200000H バイト , ASR A[23:21] ビット指定が有効 ) CS2, CS3
4 M バイト (00400000 バイト , ASR A[23:22] ビット指定が有効 ) のみ有効
1
1
8 M バイト (00800000H バイト , ASR A[23] ビット指定のみ有効 )
H
H
ASZ1, ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領
域のサイズを設定します。そのため ASR は比較されないビットが存在します。
ACR0 の ASZ1, ASZ0 ビットは , リセットにより "11B" に初期化されますが , この設
定にかかわらずリセット直後の CS0 領域は特別に 00000000H から 00FFFFFFH ( 全領
域 ) に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され ,
上記の表に従ったサイズに設定されます。
[bit11] Reserved:予約ビット
必ず , "0" を設定してください。
[bit10] DBW0 = Data Bus Width[0]
各チップセレクト領域のデータバス幅を , 以下のように設定します
DBW0
144
データバス幅
0
8 ビット ( バイトアクセス )
1
16 ビット ( ハーフワードアクセス )
第 5 章 外部バスインタフェース
<注意事項>
ACR0 の DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビットの値と同
じ値が自動的に書き込まれます。
[bit9, bit8] Reserved:予約ビット
必ず , "00B" を設定してください。
[bit7, bit6] Reserved:予約ビット
必ず , "00B" を設定してください。
[bit5] WREN=WRite ENable
各チップセレクト領域の書込みの許可・禁止を設定します。
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。
データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[bit4] Reserved:予約ビット
必ず , "0" を設定してください。
[bit3 ∼ bit0] TYP[3:0]= TYPe select
各チップセレクト領域のアクセスタイプを , 以下のように設定します。
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
1
WR0, WR1 端子をライトストローブとして使用
0
x
1
アクセスタイプ
0
0
0
0
1
1
1
1
1
0
0
1
x
x
0
1
0
1
0
1
0
1
1
1
設定禁止
設定禁止
設定禁止
設定禁止
設定禁止
設定禁止
設定禁止
設定禁止
マスク領域設定
( アクセスタイプは重複した領域のものになります ) *
各ビットは , 組み合わせて設定します。
*: CS 領域マスク設定機能
145
第 5 章 外部バスインタフェース
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更した
領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111B を設定し ,
マスク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定は
禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
- マスク設定領域に対応する CS はアサートされません。
- ベース設定領域に対応する CS がアサートされます。
- ACR の以下の設定はマスク設定領域側のものが有効になります。
bit10 DBW0: バス幅設定
bit5 WREN : 書込み許可設定 ( 注意:この設定のみ , ベース設定領域と異なる設定
は禁止します ) 。
- ACR の以下の設定はベース設定領域側のものが有効になります。
bit3 ∼ bit0 TYP3 ∼ TYP0: アクセスタイプ設定
- AWR の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設定で
きます。ベース設定領域がない領域に対して , マスク設定領域を設けてはいけませ
ん。また , マスク設定領域を複数重複させないでください。ASR および ACR:ASZ1,
ASZ0 ビットの設定には十分注意してください。
<注意事項>
bit3 ∼ bit0:TYP3 ∼ TYP0 についての制限事項は以下のとおりです。
• 書込み許可設定をマスクで実現することはできません。
• 書込み許可設定は , ベースとなる CS 領域と , マスク設定領域とで , 同じ設定としてく
ださい。
• マスク設定領域で書込み禁止を設定すると , その領域はマスクされずベース CS 領域と
して動作します。
• ベース CS 領域で書込み禁止を設定し , マスク設定領域で書込み許可を設定すると ,
ベース設定のない領域となり , 誤動作します。
146
第 5 章 外部バスインタフェース
5.2.3
Area Wait Register (AWR0 ∼ AWR3)
Area Wait Register の詳細を説明します。
■ AWR0 ∼ AWR3 (Area Wait Register) のレジスタ構成
AWR0 ∼ AWR3 のレジスタ構成は , 以下のとおりです。
AWR0H
アドレス
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
初期値
000660H
−
R/W
W14
R/W
W13
R/W
W12
R/W
−
R/W
−
R/W
−
R/W
−
R/W
01110000B
アドレス
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
初期値
000661H
−
R/W
W06
R/W
−
R/W
W04
R/W
−
R/W
W02
R/W
W01
R/W
W00
R/W
01011011B
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
W14
R/W
W13
R/W
W12
R/W
−
R/W
−
R/W
−
R/W
−
R/W
xxxx0000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
W06
W01
W00
xx0x1xxxB
R/W
−
R/W
W02
R/W
−
R/W
W04
R/W
R/W
R/W
アドレス
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
初期値
000664H
−
R/W
W14
W13
W12
R/W
R/W
−
R/W
−
R/W
−
R/W
−
R/W
0xxx0000B
R/W
アドレス
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
初期値
000665H
−
R/W
W06
R/W
−
R/W
W04
R/W
−
R/W
W02
R/W
W01
R/W
W00
R/W
xx0x1xxxB
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000666H
−
R/W
W14
R/W
W13
R/W
W12
R/W
−
R/W
−
R/W
−
R/W
−
R/W
0xxx0000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
W06
R/W
−
R/W
W04
R/W
−
R/W
W02
R/W
W01
R/W
W00
R/W
0x0x1xxxB
AWR0L
AWR1H
アドレス
000662H
AWR1L
アドレス
000663H
AWR2H
AWR2L
AWR3H
AWR3L
アドレス
000667H
R/W :リード / ライト可能
147
第 5 章 外部バスインタフェース
AWR0 ∼ AWR3 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) の設定により , 各
ビットの働きが変わります。
■ 通常アクセスおよびアドレス / データマルチプレクスアクセス
ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP3 ∼ TYP0 ビット ) に以下の設定を行っ
たチップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレクスアクセ
ス動作を行う領域となります。
TYP3
TYP2
TYP1
TYP0
0
0
x
x
通常アクセス ( 非同期 SRAM, I/O, ROM/Flash)
0
1
x
x
アドレスデータマルチプレクスアクセス
(8/16 ビットバス幅限定 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレクスアクセス領域に対しての , AWR0 ∼
AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定ですので , 各
領域を CSER レジスタによって有効にする前に , 設定を行ってください。
[bit15] Reserved:予約ビット
必ず , "0" を設定してください。
[bit14 ∼ bit12] W14 ∼ W12= ファーストアクセスウェイトサイクル
(First Access Wait Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設
定します。バーストアクセスサイクル以外は , このウェイト設定のみ使用されます。
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
W14
W13
W12
0
0
0
自動ウェイトサイクル 0
0
0
1
自動ウェイトサイクル 1
ファーストアクセスウェイトサイクル
…
1
1
…
1
自動ウェイトサイクル 7
[bit11 ∼ bit8] Reserved:予約ビット
必ず , "0000B" を設定してください。
[bit7] Reserved:予約ビット
必ず , "0" を設定してください。
148
第 5 章 外部バスインタフェース
[bit6] W06= リード → ライトアイドルサイクル (Read → Write Idle Cycle)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場
合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子
はハイインピーダンス状態を維持します。
読み込み後に書込みが続く場合 , もしくは , 読み込みの後に別のチップセレクト領
域へのアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。
W06
リード→ライトアイドルサイクル
0
0 サイクル
1
1 サイクル
[bit5] Reserved:予約ビット
必ず , "0" を設定してください。
[bit4] W04= ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ
クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルが挿入されます。
W04
ライトリカバリサイクル
0
0 サイクル
1
1 サイクル
[bit3] Reserved:予約ビット
必ず , "1" を設定してください。
[bit2] W02= アドレス → CS 遅延
(Address → CS Delay)
アドレス→ CS 遅延設定は , CS の立下りに対してアドレスなどが一定のセットアッ
プを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際にも
CS のエッジを必要とする場合などに設定します。
アドレスおよび AS 出力から , CS0 ∼ CS3 出力のディレイを設定します。
W02
アドレス → CS 遅延
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , AS のアサートと同じタイミングで CS0 ∼
CS3 がアサート開始されます。
このとき , 同じチップセレクト領域に連続したアクセ
149
第 5 章 外部バスインタフェース
スを実行した場合 , 両アクセスの間も CS0 ∼ CS3 はアサートを継続したまま変化し
ないことがあります。
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立
上りから CS0 ∼ CS3 がアサート開始されます。このとき , 同じチップセレクト領域
に連続したアクセスを実行した場合でも , 両アクセスの間に CS0 ∼ CS3 ネゲートタ
イミングが発生します。
CS 遅延ありを選択した場合は , 遅延させた CS のアサートから , リード / ライトスト
ローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します (W01
の CS → RD/WR セットアップ設定と同等の動作となります ) 。
[bit1] W01=CS → RD/WR セットアップ延長サイクル
(CS → RD/WR setup)
CS→ RD/WRセットアップ延長サイクルは, CSアサート後, リード/ライトストローブ
をアサートするまでの期間を延長する場合に設定します。CS アサート後 , リード / ラ
イトストローブをアサートする前に最低1サイクルのセットアップ延長サイクルを挿
入します。
W01
CS → RD/WR セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , 最速で , CS アサート直後の外部メモリ
クロック SYSCLK 出力の立上りから RD/WR0, WR1 が出力されます。WR0, WR1 は ,
内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定し , 1 サイクルを選択した場合は , RD/WR0, WR1 とも , 必ず 1 サイクル以
上遅れて出力されます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする場合 ,
このセットアップ延長サイクルは挿入されません。アドレス確定のセットアップ延
長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CS 遅延を挿入
することにより , 毎アクセス時に CS がいったんネゲートされるため , このセット
アップ延長サイクルが有効となります。
W02 の CS 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ
トアップサイクルが有効となります。
150
第 5 章 外部バスインタフェース
[bit0] W00=RD/WR → CS ホールド延長サイクル
(RD/WR → CS Hold Cycle)
RD/WR → CS ホールド延長サイクルは , リード / ライトストローブネゲート後 , CS ネ
ゲートまでの期間を延長する場合に設定します。リード / ライトストローブネゲー
ト後 , CS をネゲートする前に , 1 サイクルのホールド延長サイクルを挿入します。
W00
RD/WR → CS ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , RD/WR0, WR1 がネゲートされた後の外
部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延経過後に , CS0 ∼
CS3 がネゲートされます。
"1" を設定し , 1 サイクルを選択した場合は , CS0 ∼ CS3 は 1 サイクル遅れてネゲー
トされます。
同一チップセレクト領域内で , CS をネゲートしないまま連続してアクセスする
場合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長
サイクルが必須となる場合 , W02 ビットを有効にしてアドレス → CS 遅延を挿入す
ることにより , 毎アクセス時に CS がいったんネゲートされるため , このホールド延
長サイクルが有効となります。
151
第 5 章 外部バスインタフェース
5.2.4
Chip Select Enable Register (CSER)
Chip Select Enable Register の詳細を説明します。
■ CSER(Chip Select Enable Register) のレジスタ構成
CSER のレジスタ構成は , 以下のとおりです。
CSER
アドレス
bit31
bit30
bit29
bit28
bit27
bit26
bit25
bit24
00 0680H
−
R/W
−
R/W
−
R/W
−
R/W
CSE3
R/W
CSE2
R/W
CSE1
R/W
CSE0
R/W
初期値
00000001B
R/W :リード / ライト可能
各チップセレクト領域の許可 / 禁止を設定します。
[bit31 ∼ bit28] Reserved:予約ビット
必ず , "0000B" を設定してください。
[bit27 ∼ bit24] CSE3 ∼ CSE0= チップセレクト領域許可 (Chip select enable 0 ∼ 3)
CS0X ∼ CS3X の各チップセレクト領域許可ビットです。
初期値は , 0001B で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR3, ACR0 ∼ ACR3, AWR0 ∼ AWR3 の設定に
従い , 動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ
い。
CSE[3:0]
領域コントロール
0
禁止
1
許可
表 5.2-2 に , CSE のビットと対応する CS を示します。
表 5.2-2 CSE のビットと対応する CS
152
CSE のビット
対応する CS
bit24:CSE0
CS0
bit25:CSE1
CS1
bit26:CSE2
CS2
bit27:CSE3
CS3
第 5 章 外部バスインタフェース
5.3
チップセレクト領域
外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。
各領域のアドレス空間は ASR0 ∼ ASR3 (Area Select Register) と ACR0 ∼ ACR3
(Area Configuration Register) にて 16M バイトの空間の内 , CS0, CS1 は , 64K/
128K/256K/512K バイト単位で , 00000000H ∼ 003FFFFFH までの外部バス領域に割
り当てられた空間に , CS2, CS3 は , 1M/2M/4M/8M バイト単位で , 00400000H ∼
00FFFFFFH の空間に設定可能です。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス
サイクル中に対応するチップセレクト信号 CS0 ∼ CS3 がアクティブ ("L" 出力 ) に
なります。
■ ASR および ASZ1, ASZ0 の設定例
1. ASR1=0001H ACR1 → ASZ1, ASZ0=00B
チップセレクト領域 1 は , 00100000H から 0010FFFFH に割り当てられます。
2. ASR2=0040H ACR2 → ASZ1, ASZ0=00B
チップセレクト領域 2 は , 00400000H から 004FFFFFH に割り当てられます。
3. ASR3=0081H ACR3 → ASZ1, ASZ0=11B
チップセレクト領域 3 は , 00800000H から 00FFFFFFH に割り当てられます。
このとき , ACR → ASZ1, ASZ0 が 8M バイトの設定になっていますので , バウンダリは
8 M バイト単位となり , ASR3[22:16] は無視されます。
リセット後は , ACR0 に書込みが行われるまでの間 , 00000000H ∼ 00FFFFFFH がチップ
セレクト領域 0 に割り当てられます。
<注意事項>
チップセレクト領域は , お互いにオーバラップしないように設定してください。
153
第 5 章 外部バスインタフェース
図 5.3-1 にチップセレクト領域を示します。
図 5.3-1 チップセレクト領域
00000000H
00000000H
00100000H
領域1
00400000H
領域2
00800000H
領域3
64Kバイト
領域0
1Mバイト
8Mバイト
00FFFFFFH
154
00FFFFFFH
第 5 章 外部バスインタフェース
5.4
エンディアンとバスアクセス
エンディアンとバスアクセスについて説明します。
■ エンディアンの概要
FR60Lite ファミリは , バイトオーダリングとしてビッグエンディアンのみサポートし
ています。
155
第 5 章 外部バスインタフェース
5.4.1
データバス幅と制御信号との関係
WR1, WR0 の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に
1 対 1 に対応します。
下記にバスモード別に , 設定されたデータバス幅で使用されるデータバスのバイト
位置とそれに対応する制御信号をまとめます。
■ 通常バスインタフェースの制御信号
図 5.4-1 に , 通常バスインタフェースの 16 ビットバス幅および 8 ビット幅の制御信号
を示します。
図 5.4-1 通常バスインタフェースの制御信号
a)16ビットバス幅
データバス 制御記号
b)8ビットバス幅
データバス 制御記号
WR0
WR0
WR1
-
-
-
-
-
-
-
-
-
-
(D23~D16は未使用)
■ 時分割入出力インタフェースの制御信号
図 5.4-2 に , 時分割入出力インタフェースの 16 ビットバス幅および 8 ビット幅の制御
信号を示します。
図 5.4-2 時分割入出力インタフェースの制御信号
b)8ビットバス幅
a)16ビットバス幅
データバス 出力アドレス 制御記号
D15
A15~A8
WR0
A7~A0
D00
156
データバス 出力アドレス 制御記号
A7~A0
WR0
WR1
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
第 5 章 外部バスインタフェース
5.4.2
バスアクセス
FR60Lite ファミリは , ビッグエンディアンで外部バスアクセスを行います。
■ データフォーマット
図 5.4-3 に , ハーフワードアクセス (LDUH, STH 命令実行時 ) のデータフォーマットに
よる内部レジスタと外部データバスとの関係を示します。
図 5.4-3 ハーフワードアクセス (LDUH, STH 命令実行時 )
内部レジスタ
D31
D23
外部バス
D15
D15
AA
AA
D7
D7
BB
BB
D0
D0
図 5.4-4 に , バイトアクセス (LDUB, STB 命令実行時 ) のデータフォーマットによる内
部レジスタと外部データバスとの関係を示します。
図 5.4-4 バイトアクセス (LDUB, STB 命令実行時 )
a)出力アドレス下位"0"
内部レジスタ
D31
b)出力アドレス下位"1"
内部レジスタ
D31
D23
D23
外部バス
D15
AA
D7
D15
D7
外部バス
D15
D7
AA
D0
D15
D7
AA
D0
D0
AA
D0
157
第 5 章 外部バスインタフェース
■ データバス幅
図 5.4-5 に , 16 ビットバス幅のデータバス幅を示します。
図 5.4-5 16 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
"00" "10"
D31
AA
D23
リード/ライト
BB
D15
AA
CC
BB
DD
D15
D07
CC
D07
DD
図 5.4-6 に , 8 ビットバス幅のデータバス幅を示します。
図 5.4-6 8 ビットバス幅のデータバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
D23
D15
D07
158
AA
BB
CC
DD
リード/ライト
"00"
"01"
"10"
"11"
AA
BB
CC
DD
D15
第 5 章 外部バスインタフェース
■ 外部バスアクセス
外部バスアクセスを「16 ビット /8 ビットバス幅」
「ワード / ハーフワード / バイトアク
セス」の項目で , そのときの以下の項目をまとめます。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
PA1/PA0
:
プログラムで指定したアドレス下位 2 ビット
出力 A1/A0
:
出力するアドレスの下位 2 ビット
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
+
①∼④
FR ファミリは , ミスアラインエラーを検出しません。
したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット
が "00" "01" "10" "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" とな
り , ハーフワードアクセスの場合には "00" "01" のときには "00" に , "10" "11" のときに
は "10" になります。
159
第 5 章 外部バスインタフェース
● 16 ビットバス幅
図 5.4-7 に , 16 ビットバス幅の各アクセスを示します。
図 5.4-7 16 ビットバス幅の各アクセス
(A) ワードアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
②出力A1/A0=10
MSB
(b) PA1/PA0=01
→①出力A1/A0=00
②出力A1/A0=10
(c) PA1/PA0=10
→①出力A1/A0=00
②出力A1/A0=10
(d) PA1/PA0="11"
→①出力A1/A0=00
②出力A1/A0=10
LSB
①
00
01
①
②
10
11
②
00
01
①
00
01
①
00
01
10
11
②
10
11
②
10
11
16ビット
(B) ハーフワードアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
(b) PA1/PA0=01
→①出力A1/A0=00
(c) PA1/PA0=10
→①出力A1/A0=10
(d) PA1/PA0=11
→①出力A1/A0=10
00
01
00
01
00
01
00
01
10
11
10
11
10
11
10
11
(C) バイトアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
①
160
00
01
10
11
(b) PA1/PA0=01
→①出力A1/A0=01
①
00
01
10
11
(c) PA1/PA0=10
→①出力A1/A0=10
①
00
01
10
11
(d) PA1/PA0=11
→①出力A1/A0=11
①
00
01
10
11
第 5 章 外部バスインタフェース
● 8 ビットバス幅
図 5.4-8 に , 8 ビットバス幅の各アクセスを示します。
図 5.4-8 8 ビットバス幅の各アクセス
(A) ワードアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
MSB
(b) PA1/PA0=01
→①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
(c) PA1/PA0=10
→①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
(d) PA1/PA0=11
→①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8ビット
(B) ハーフワードアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
②出力A1/A0=01
(b) PA1/PA0=01
→①出力A1/A0=00
②出力A1/A0=01
①
00
①
00
②
01
②
01
(c) PA1/PA0=10
→①出力A1/A0=10
②出力A1/A0=11
(d) PA1/PA0=11
→①出力A1/A0=10
②出力A1/A0=11
00
00
01
01
10
10
①
10
①
10
11
11
②
11
②
11
(C) バイトアクセス
(a) PA1/PA0=00
→①出力A1/A0=00
①
(b) PA1/PA0=01
→①出力A1/A0=01
00
01
10
11
①
(c) PA1/PA0=10
→①出力A1/A0=10
(d) PA1/PA0=11
→①出力A1/A0=11
00
00
00
01
01
01
10
11
①
10
11
10
①
11
161
第 5 章 外部バスインタフェース
■ 外部との接続例
図 5.4-9 に LSI と外部装置との接続の例を示します。
図 5.4-9 外部装置との接続
本LSI
D15
D07
~
~
D08 WR0 D00 WR1
*:16ビット/8ビットデバイスの場合は,
本LSIのMSB側のデータバスを使用します。
0
1
D15 D08 D07 D00
16ビットデバイス*
0
D07 D00
8ビットデバイス*
("0"/"1"アドレス下位1ビット)
162
第 5 章 外部バスインタフェース
5.4.3
外部アクセス
バス幅による内部レジスタと外部データバスとの関係について説明します。
■ ワードアクセス
ワードアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
D31
外部端子
制御端子
アドレス: "0" "2"
D15
AA
AA CC
BB
D00
BB DD
WR0
WR1
CC
DD
D00
8 ビット
バス幅
内部レジスタ
外部端子
制御端子
アドレス: "0" "1" "2" "3"
D31
D15
AA
AA BB CC DD
WR0
D08
BB
CC
DD
D00
163
第 5 章 外部バスインタフェース
■ ハーフワードアクセス
ハーフワードアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
D31
外部端子
制御端子
アドレス: "0"
D15
AA
WR0
BB
WR1
D00
AA
BB
D00
内部レジスタ
D31
外部端子
制御端子
アドレス: "2"
D15
CC
WR0
DD
WR1
外部端子
制御端子
D00
CC
DD
D00
8 ビット
バス幅
内部レジスタ
D31
アドレス: "0" "1"
D15
AA BB
D08
WR0
AA
BB
D00
内部レジスタ
D31
アドレス: "2" "3"
D15
CC DD
D08
CC
DD
D00
164
外部端子
制御端子
WR0
第 5 章 外部バスインタフェース
■ バイトアクセス
バイトアクセスの場合は以下のとおりです。
ビッグエンディアンモード
16 ビット
バス幅
内部レジスタ
外部端子
制御端子
アドレス: "0"
D31
D15
AA
WR0
D00
AA
D00
内部レジスタ
D31
外部端子
制御端子
アドレス: "1"
D15
BB
WR1
D00
BB
D00
内部レジスタ
D31
外部端子
アドレス: "2"
D15
CC
制御端子
WR0
D00
CC
D00
内部レジスタ
D31
外部端子
制御端子
アドレス: "3"
D15
DD
WR1
D00
DD
D00
165
第 5 章 外部バスインタフェース
ビッグエンディアンモード
8 ビット
バス幅
内部レジスタ
外部端子
制御端子
アドレス: "0"
D31
D15
AA
WR0
D08
AA
D00
内部レジスタ
外部端子
アドレス: "1"
D31
D15
BB
D08
制御端子
WR0
BB
D00
内部レジスタ
外部端子
アドレス: "2"
D31
D15
CC
D08
制御端子
WR0
CC
D00
内部レジスタ
外部端子
アドレス: "3"
D31
D15
DD
D08
DD
D00
166
制御端子
WR0
第 5 章 外部バスインタフェース
5.5
通常バスインタフェース
通常バスインタフェースでは , リードアクセス / ライトアクセス共に 2 クロックサイ
クルが基本バスサイクルになります。
■ 基本タイミング ( アクセスが連続する場合 ) (TYP3 ∼ TYP0= 0000B, AWR=0008H)
図 5.5-1 に , アクセスが連続する場合の基本タイミングを示します。
図 5.5-1 アクセスが連続する場合の基本タイミング
SYSCLK
A23~A0
#2
#1
AS
CSn
RD
読出し
D15~D0
#1
#2
WRn
書込み
D15~D0
#1
#2
• AS は , バスアクセス開始サイクルに 1 サイクルアサートします。
• A23 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアドレス
をバスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
• CS0 ∼ CS3 は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , AS と同じ
タイミングでアサートし , 連続するアクセスがある場合 CS0 ∼ CS3 がネゲートしま
せん。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に CS0 ∼
CS3 をネゲートし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイクル後にネ
ゲートします。
• RD, WR0, WR1 は , バスアクセス第二サイクルからアサートします。AWR レジスタ
W14 ∼ W12 ビットのウェイトサイクルを挿入した後ネゲートします。RD, WR0,
WR1をアサートするタイミングはAWRレジスタW01ビットを"1"に設定することに
より 1 サイクル遅らせることができます。
• リードアクセスの場合, RDアサート後ウェイトサイクルが終了したサイクルのSYSCLK
の立上りで D15 ∼ D0 を取り込みます。
• ライトアクセスの場合 , WR0, WR1 をアサートしたタイミングから D15 ∼ D0 にデー
タを出力します。
167
第 5 章 外部バスインタフェース
■ WRn +バイト制御タイプ (TYP3 ∼ TYP0 = 0010B, AWR = 0008H)
表 5.2-2 に WRn +バイト制御タイプを示します。
図 5.5-2 WRn +バイト制御タイプ
SYSCLK
A23~A0
AS
CSn
RD
WR0
読出し
WR1
D15~D0
WR0
書込み
WR1
D15~D0
• AS, CSn, RD, A23 ∼ A0, D15 ∼ D0 は , (1) 基本タイミングと同様の動作を行います。
• RD, WR0, WR1 をアサートするタイミングは AWR レジスタ W01 ビットを "1" に設
定することにより 1 サイクル遅らせることができます。((1) 基本タイミングの WR0,
WR1 と同様の動作を行います。)
• WR0, WR1 は , バイトイネーブル信号としてアクセスするバイト位置を負論理で示
します。バスアクセス開始サイクルからバスサイクル終了までアサートします。ア
ドレスと同じタイミングで変化します。リード / ライトアクセス共にアクセスする
バイト位置を示します。
168
第 5 章 外部バスインタフェース
■ リード→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0048H)
図 5.5-3 に , リード→ライトタイミングを示します。
図 5.5-3 リード → ライトタイミング
リード
アイドル
ライト
SYSCLK
A23~A0
AS
CSn
RD
WRn
D15~D0
• AWR レジスタ W06 ビットの設定により , 0 または 1 サイクルのアイドルサイクル
挿入が可能です。
• 読出し側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセス , または別の領域へのアクセスで
ある場合このアイドルサイクルを挿入します。
169
第 5 章 外部バスインタフェース
■ ライト→ライトタイミング (TYP3 ∼ TYP0=0000B, AWR=0018H)
図 5.5-4 に , ライト→ライトタイミングを示します。
図 5.5-4 ライト → ライトタイミング
ライト
ライトリカバリ
ライト
SYSCLK
A23~A0
AS
CSn
WRn
D15~D0
• AWR レジスタ W04 ビットの設定により , 0 または 1 サイクルのライトリカバリサ
イクルを挿入可能です。
• すべてのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルは発生します。
170
第 5 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP3 ∼ TYP0=0000B, AWR=2008H)
図 5.5-5 に , 自動ウェイトタイミングを示します。
図 5.5-5 自動ウェイトタイミング
基本サイクル
ウェイトサイクル
SYSCLK
A23~A0
AS
CSn
RD
読出し
D15~D0
WRn
書込み
D15~D0
• AWR レジスタ W14 ∼ 12 ビット (first wait cycle) の設定により自動ウェイトサイク
ルを , 0 ∼ 7 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入し合計 4 サイクルのアクセスと
なっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル+
(first wait cycle) となります。書込みの場合は内部状態によりさらに長くなることが
あります。
171
第 5 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP3 ∼ TYP0=0001B, AWR=2008H)
図 5.5-6 に , 外部ウェイトタイミングを示します。
図 5.5-6 外部ウェイトタイミング
基本サイクル
自動ウェイト2サイクル
RDYによる
ウェイトサイクル
SYSCLK
A23~A0
AS
CSn
RD
読出し
D15~D0
WRn
書込み
D15~D0
RDY
解除
ウェイト
• ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることに
より外部ウェイトサイクルを挿入可能です。上図において , 自動ウェイトサイクル
によるウェイトが有効であるため , RDY 端子の斜線部分は無効になります。自動
ウェイトサイクルの最後のサイクル以降から , RDY 入力端子の値を判定します。ま
た , いったんウェイトサイクルを終了した後は , 次のアクセスサイクルの開始まで ,
RDY 入力端子の値は無効になります。
172
第 5 章 外部バスインタフェース
■ CS 遅延設定 (TYP3 ∼ TYP0=0000B, AWR=000CH)
図 5.5-7 に , CS 遅延設定を示します。
図 5.5-7 CS 遅延設定
SYSCLK
A23~A0
AS
CSn
RD
読出し
D15~D0
WRn
書込み
D15~D0
• W02 ビットが "1" のときは AS アサートの次のサイクルからアサートし , 連続する
アクセスがある場合ネゲート期間を挿入します。
173
第 5 章 外部バスインタフェース
■ CS → RD/WR セットアップ・RD/WR → CS ホールド設定 (TYP3 ∼ TYP0=0000B, AWR=000BH)
図 5.5-8 に , CS → RD/WR セットアップ・RD/WR → CS ホールド設定を示します。
図 5.5-8 CS → RD/WR セットアップ・RD/WR → CS ホールド設定
SYSCLK
A23~A0
AS
CSn
CS->RD/WR
RD/WR->CS
Delay
Delay
RD
読出し
D15~D0
WRn
書込み
D15~D0
• AWR レジスタ W01 ビットを "1" に設定することにより , CS → RD/WR セットアッ
プディレイを設定可能です。チップセレクトアサート後 , リード / ライトストロー
ブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RD/WR → CS ホールドディ
レイを設定可能です。
リード / ライトストローブネゲート後 , チップセレクトネゲー
トまでの期間を延長する場合に設定します。
• CS → RD/WR セットアップディレイ (W01 ビット ) と RD/WR → CS ホールドディレ
イ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CS → RD/WR セットアップディレイ , RD/WR → CS ホールドディ
レイ共に挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CS 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
174
第 5 章 外部バスインタフェース
5.6
アドレス / データマルチプレクスインタフェース
アドレス / データマルチプレクスインタフェースの設定について説明します。
■ 外部ウェイトなし (TYP3 ∼ TYP0=0100B, AWR=0008H)
図 5.6-1 に , 外部ウェイトがない場合のアドレス / データマルチプレクスインタフェー
ス設定を示します。
図 5.6-1 外部ウェイトがない場合のアドレス / データマルチプレクスインタフェース設定
SYSCLK
A23~A0
address[23:0]
AS
CSn
RD
読出し
D15~D0
address[15:0]
data[15:0]
WRn
書込み
D15~D0
address[15:0]
data[15:0]
• ACR レジスタ TYP3 ∼ TYP0=01xxB と設定することによりアドレス / データマルチ
プレクスインタフェース設定が可能です。
• アドレス / データマルチプレクスインタフェースに設定した場合 , データバス幅
(DBWO1 ∼ DBWO0 ビット ) の設定は 8 ビットもしくは 16 ビットに設定してくだ
さい。
• アドレス / データマルチプレクスインタフェースでは , アドレス出力サイクル 2 サ
イクル+データサイクル 1 サイクルの計 3 サイクルが基本アクセスサイクルとなり
ます。
• アドレス出力サイクルでは , 出力アドレスラッチイネーブル信号として AS をアサー
トしますが , CS → RD/WR セットアップ遅延 (AWR1) が "0" に設定してある場合 , 上
図のようにマルチプレクスアドレス出力サイクルが 1 サイクルのみとなり , アドレス
を AS の立上りエッジで直接ラッチすることは不可能となります。このため , AS に
"L" がアサートされているサイクルの SYSCLK の立上りエッジでアドレスを取り込
んでください。アドレスを AS の立上りエッジで直接ラッチする場合は , 「■ CS →
RD/WR セットアップ設定」を参照してください。
175
第 5 章 外部バスインタフェース
• A23 ∼ A0 には , 時分割バスサイクル中 , 通常インタフェースと同様にアクセスの先
頭を示すアドレスを出力しますので, アドレス/データマルチプレクスインタフェー
スで 8/16 ビット以上のアドレスを使用する場合に使用してください。
• 自動ウェイト (AWR14 ∼ AWR12), リード→ライトアイドルサイクル (AWR6), ライ
トリカバリ (AWR4), アドレス→ CS 遅延 (AWR2), CS → RD/WR セットアップ遅延
(AWR1), CS → RD/WR ホールド遅延 (AWR0) の設定は , 通常インタフェースと同様
に設定可能です。
■ 外部ウェイトあり (TYP3 ∼ TYP0=0101B, AWR=1008H)
図 5.6-2 に , 外部ウェイトがある場合のアドレス / データマルチプレクスインタフェー
ス設定を示します。
図 5.6-2 外部ウェイトがある場合のアドレス / データマルチプレクスインタフェース設定
SYSCLK
A23~A0
address[23:0]
AS
CSn
RD
読出し
D15~D0
address[15:0]
data[15:0]
WR
書込み
D15~D0
data[15:0]
address[15:0]
外部ウェイト
解除
RDY
• ACR レジスタ TYP3 ∼ TYP0=01x1B と設定することにより , アドレス / データマル
チプレクスインタフェースにおいて RDY 入力を有効とすることが可能です。
176
第 5 章 外部バスインタフェース
■ CS → RD/WR セットアップ設定 (TYP3 ∼ TYP0=0101B, AWR=100BH)
図 5.6-3 に , CS → RD/WR セットアップ設定を示します。
図 5.6-3 CS → RD/WR セットアップ設定
SYSCLK
A23~A0
address[23:0]
AS
CSn
RD
読出し
D15~D0
address[15:0]
data[15:0]
WR
書込み
D15~D0
address[15:0]
data[15:0]
• CS → RD/WR セットアップ遅延 (AWR[1]) を "1" に設定すると , 上図のようにマルチ
プレクスアドレス出力サイクルが 1 サイクル延長され , アドレスを AS の立上りエッ
ジで直接ラッチすることが可能となります。SYSCLK を使用せずに AS を ALE
(Address Latch Enable) ストローブにする場合にこの設定を使用してください。
177
第 5 章 外部バスインタフェース
5.7
DMA アクセス
DMA アクセスの設定について説明します。
■ 2サイクル転送 (内部RAM→外部I/O, RAM, 外部I/O, RAM→内部RAMもタイミング
は同じ ) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 5.7-1 に , 2 サイクル転送の設定を示します。
図 5.7-1 2 サイクル転送の設定 ( I/O 側のウェイト設定なしの場合 )
SYSCLK
A23~A0
I/O address
AS
CSn(I/O側)
WRn
D15~D0
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
178
第 5 章 外部バスインタフェース
■ 2 サイクル転送 ( 外部→ I/O) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 5.7-2 に , 2 サイクル転送 ( 外部→ I/O) の設定を示します。
図 5.7-2 2 サイクル転送 ( 外部→ I/O) の設定 ( メモリ , I/O のウェイト設定なしの場合 )
SYSCLK
A23~A0
memory address
idle
I/O address
AS
CSn
RD
CSn
WRn
D15~D0
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
179
第 5 章 外部バスインタフェース
■ 2 サイクル転送 (I/O →外部 ) (TYP3 ∼ TYP0=0000B, AWR=0008H)
図 5.7-3 に , 2 サイクル転送 (I/O →外部 ) の設定を示します。
図 5.7-3 2 サイクル転送 (I/O →外部 ) の設定 ( メモリ , I/O のウェイト設定なしの場合 )
SYSCLK
A23~A0
I/O address
idle
memory address
AS
CSn
WRn
CSn
RD
D15~D0
• バスアクセスは , DMAC 転送でない場合のインタフェースと同様です。
180
第 5 章 外部バスインタフェース
5.8
レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。
■ 外部バスインタフェースの設定手順
1. レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にして行ってください。"1" のまま設定を変更した場合 , その前後の
アクセスは保証されません。
2. レジスタの変更は以下の手順で行ってください。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハーフ
ワードでアクセスする場合には , ASR 設定後 , ACR を設定してください。
③ AWR を設定してください。
④ 該当領域に対する CSER のビットを設定してください。
3. CS0X領域はリセット解除後から有効になっており, プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記②∼③の設定を行ってください。そのあと , クロック
を高速クロックに切り換えてください。
181
第 5 章 外部バスインタフェース
182
第6章
I/O ポート
I/O ポートの概要 , レジスタの構成 , および機能に
ついて説明します。
6.1 I/O ポートの概要
6.2 ポートデータレジスタ (PDR) データ方向レジスタ (DDR)
6.3 ポートファンクションレジスタの設定
6.4 外部割込み入力の再配置
6.5 端子入力レベルの選択
6.6 プルアップ・プルダウン制御レジスタ
6.7 入力データダイレクトリードレジスタ
183
第 6 章 I/O ポート
6.1
I/O ポートの概要
ここでは , I/O ポートの概要について説明します。
■ ポート基本ブロックダイヤグラム
MB91270 シリーズの各端子は , 各端子に対応する外部バスインタフェースやペリフェ
ラルが入出力として端子を使用しない設定になっているとき , I/O ポートとして使用す
ることができます。
図 6.1-1 に , ポートの基本的な構成を示します。
図 6.1-1 ポート基本ブロックダイヤグラム
R-bus
TTL
1
外部バスインタフェース入力
PILR
0
PIDRリード
ペリフェラル入力
0
PPER
1
0
PIDR
CLKP
PDRリード
CMOS
シュミット
(インプット
サンプル)
1
オートモーティブ
P-ch
プルアップ/
プルダウン
PPCR
コントロール
出力
ドライバ
ペリフェラル出力
ペリフェラル出力
端子
アウトプット
MUX
PDR
N-ch
DDR
PFR
Port
Direction
コントロール
EPFR
184
第 6 章 I/O ポート
■ ポートの一般的な仕様
• ポートごとにポートデータレジスタ (PDR) があり , 出力データを格納します。リセッ
ト後 , PDR レジスタの内容は初期化されません。
• ポートごとにデータ方向レジスタ (DDR) があり , ポートの入出力方向を切り換えま
す。リセット後 , すべてのポートは入力となります。(DDR=00H)
•
•
•
•
•
•
•
- ポート入力モード (PFR=0 & DDR=0)
PDR 読出し : 対応する外部端子のレベルが読み出されます。
PDR 書込み : ポートデータレジスタに設定値が書き込まれます。
- ポート出力モード (PFR=0 & DDR=1)
PDR 読出し : ポートデータレジスタの値が読み出されます。
PDR 書込み : ポートデータレジスタに設定値が書き込まれ , 対応する外部端子へ
出力されます。
- ペリフェラル出力モード (PFR=1)
PDR 読出し : 対応するペリフェラル出力値が読み出されます。
PDR 書込み : ポートデータレジスタに設定値が書き込まれます。
- ポートの状態に関わらず , ポートデータレジスタへのリードモディファイライト
命令では , レジスタの設定値が読み出されます。
- ペリフェラルへの入力は特別な場合を除き常に端子に接続されています。通常は
ポート入力モードでペリフェラルへの入力を行ってください。
ポートごとに入力データダイレクトリードレジスタ (PIDR) があります。このレジス
タは読出し専用で , ポートが出力状態であっても入力値を直接読み出すために使用
されます。
ポートごとに端子入力レベルをソフトウェアで切り換えることのできる , ポート入
力レベルレジスタ (PILR) があります。入力レベルは CMOS シュミットトリガ , また
は CMOS オートモーティブシュミットトリガのいずれかを選択可能です。また外部
バスモード時に外部バスインタフェース入力として設定される端子はTTL入力レベ
ルを選択することも可能です。
ポートごとに ( 一部を除く ) プルアップ / ダウン許可レジスタ (PPER) とプルアップ /
ダウン制御レジスタがあり , 端子ごとに 50kΩ のプルアップ / ダウンを設定すること
ができます。
ポートにはポートファンクションレジスタ(PFR), 一部のポートにはさらに拡張ポー
トファンクションレジスタ (EPFR) があり , 主にペリフェラルの出力を制御していま
す。
外部バスモードで , 外部バスインタフェースに割り当てられている端子は , DDR,
PFR の設定を無効とし , バスインタフェースの機能が優先されます。外部バスモー
ドでこれらの端子を汎用ポート / ペリフェラル出力として使用する場合は , EPFR を
設定しバスインタフェースとしての機能を無効に設定してください。
STOP モード時に STCR レジスタの HIZ ビットが設定されると , 入力は "0" 固定とな
ります。ただし外部割込み入力は , 対応する割込みが有効な場合 (ENIR ビットの設
定と EISSR/EPFR による入力端子選択 ) は固定されず , 端子への入力は割込みとして
使用することができます。
ペリフェラルの双方向信号 (LIN-UART の SCK など ) は , PFR で有効となります。入
出力の切換えについては対応するペリフェラルの章を参照してください。
<注意事項>
汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。
外部端子から入力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。
ペリフェラル入力としてご使用の場合は , DDR で入力設定にし , 各ペリフェラルの入力信
号を有効にしてご使用ください。
185
第 6 章 I/O ポート
6.2
ポートデータレジスタ (PDR)
データ方向レジスタ (DDR)
ポートデータレジスタ (PDR) とデータ方向レジスタ (DDR) を示します。
■ ポートデータレジスタ (PDR)
アドレス
bit7
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PDR07 PDR06 PDR05 PDR04 PDR03 PDR02 PDR01 PDR00
XXXXXXXXB
PDR1 000001H
PDR17 PDR16 PDR15 PDR14 PDR13 PDR12 PDR11 PDR10
XXXXXXXXB
PDR2 000002H
PDR27 PDR26 PDR25 PDR24 PDR23 PDR22 PDR21 PDR20
XXXXXXXXB
PDR3 000003H
PDR37 PDR36 PDR35 PDR34 PDR33 PDR32 PDR31 PDR30
XXXXXXXXB
PDR4 000004H
PDR47 PDR46 PDR45 PDR44 PDR43 PDR42 PDR41 PDR40
XXXXXXXXB
PDR5 000005H
PDR57 PDR56 PDR55 PDR54 PDR53 PDR52 PDR51 PDR50
XXXXXXXXB
PDR6 000006H
PDR67 PDR66 PDR65 PDR64 PDR63 PDR62 PDR61 PDR60
XXXXXXXXB
PDR7 000007H
PDR77 PDR76 PDR75 PDR74 PDR73 PDR72 PDR71 PDR70
XXXXXXXXB
PDR8 000008H
PDR87 PDR86 PDR85 PDR84 PDR83 PDR82 PDR81 PDR80
XXXXXXXXB
PDR9 000009H
PDR97 PDR96 PDR95 PDR94 PDR93 PDR92 PDR91 PDR90
XXXXXXXXB
PDRA 00000AH
−
−
PDRB 00000BH
−
−
−
−
−
−
PDRA1 PDRA0
PDRB5 PDRB4 PDRB3 PDRB2 PDRB1 PDRB0
------XXB
--XXXXXXB
PDRC 00000CH
PDRC7 PDRC6 PDRC5 PDRC4 PDRC3 PDRC2 PDRC1 PDRC0 XXXXXXXXB
PDRD 00000DH
PDRD7 PDRD6 PDRD5 PDRD4 PDRD3 PDRD2 PDRD1 PDRD0 XXXXXXXXB
PDRE 00000EH
PDRE7 PDRE6 PDRE5 PDRE4 PDRE3 PDRE2 PDRE1 PDRE0 XXXXXXXXB
PDRF 00000FH
PDRF7 PDRF6 PDRF5 PDRF4 PDRF3 PDRF2 PDRF1 PDRF0
PDRG 000010H
PDRG7 PDRG6 PDRG5 PDRG4 PDRG3 PDRG2 PDRG1 PDRG0 XXXXXXXXB
R/W
R/W :リード / ライト可能
X
:不定
186
bit6
PDR0 000000H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
XXXXXXXXB
第 6 章 I/O ポート
■ データ方向レジスタ (DDR)
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DDR0 000400H
DDR07 DDR06 DDR05 DDR04 DDR03 DDR02 DDR01 DDR00
00000000B
DDR1 000401H
DDR17 DDR16 DDR15 DDR14 DDR13 DDR12 DDR11 DDR10
00000000B
DDR2 000402H
DDR27 DDR26 DDR25 DDR24 DDR23 DDR22 DDR21 DDR20
00000000B
DDR3 000403H
DDR37 DDR36 DDR35 DDR34 DDR33 DDR32 DDR31 DDR30
00000000B
DDR4 000404H
DDR47 DDR46 DDR45 DDR44 DDR43 DDR42 DDR41 DDR40
00000000B
DDR5 000405H
DDR57 DDR56 DDR55 DDR54 DDR53 DDR52 DDR51 DDR50
00000000B
DDR6 000406H
DDR67 DDR66 DDR65 DDR64 DDR63 DDR62 DDR61 DDR60
00000000B
DDR7 000407H
DDR77 DDR76 DDR75 DDR74 DDR73 DDR72 DDR71 DDR70
00000000B
DDR8 000408H
DDR87 DDR86 DDR85 DDR84 DDR83 DDR82 DDR81 DDR80
00000000B
DDR9 000409H
DDR97 DDR96 DDR95 DDR94 DDR93 DDR92 DDR91 DDR90
00000000B
DDRA 00040A0H
−
−
DDRB 00040BH
−
−
−
−
−
−
DDRA1 DDRA0
------00B
DDRB5 DDRB4 DDRB3 DDRB2 DDRB1 DDRB0
--000000B
DDRC 00040CH
DDRC7 DDRC6 DDRC5 DDRC4 DDRC3 DDRC2 DDRC1 DDRC0
00000000B
DDRD 00040DH
DDRD7 DDRD6 DDRD5 DDRD4 DDRD3 DDRD2 DDRD1 DDRD0
00000000B
DDRE 00040EH
DDRE7 DDRE6 DDRE5 DDRE4 DDRE3 DDRE2 DDRE1 DDRE0
00000000B
DDRF 00040FH
DDRF7 DDRF6 DDRF5 DDRF4 DDRF3 DDRF2 DDRF1 DDRF0
00000000B
DDRG 000410H
DDRG7 DDRG6 DDRG5 DDRG4 DDRG3 DDRG2 DDRG1 DDRG0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
187
第 6 章 I/O ポート
6.3
ポートファンクションレジスタの設定
ポートファンクションレジスタの機能について説明します。
■ ポート 0
ポート 0 は PFR0 で制御されます。
外部バスモードでは , ポート 0 はバスインタフェースの D7 ∼ D0 となります。それ以
外のモードでは , LIN-UART5, UART6 に割り当てられます。
外部割込み INT15 ∼ INT8 への入力信号 , LIN-UART への入力信号 (SIN5, SIN6) は常に
端子と接続されています。
アドレス
bit7
bit6
PFR0 000420H
-
-
R/W
R/W
bit5
bit4
PFR05 PFR04
R/W
R/W
bit3
R/W
bit2
bit1
PFR02 PFR01
R/W
R/W
bit0
初期値
-
--00-00-B
R/W
R/W :リード / ライト可能
ビット
値
0
汎用ポート
1
LIN-UART6 の SCK
SCK の入出力方向は LIN-UART6 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART6 の SOT 出力
0
汎用ポート
1
LIN-UART5 の SCK
SCK の入出力方向は LIN-UART5 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART6 の SOT 出力
PFR05
PFR04
PFR02
PFR01
188
機能
第 6 章 I/O ポート
■ ポート 1
ポート 1 は PFR1 および EPFR1 で制御されます。
外部バスモードでは , ポート 1 はバスインタフェースの D15 ∼ D8 となります。それ以
外のモードでは , LIN-UART5,6 およびリロードタイマ 1 に割り当てられます。
P12 の INT11R を外部割込み端子として有効にするためには , EISSR11 を設定してくだ
さい。
LIN-UART への入力信号 (SIN3, SIN4) は常に端子と接続されています。
bit7
アドレス
PFR1 000421H
bit6
PFR17 PFR16
EPFR1 000601H
bit5
-
bit4
bit3
PFR14 PFR13
bit2
bit1
bit0
初期値
-
-
-
00-00---B
------0-B
-
-
-
-
-
-
EPFR11
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
LIN-UART4 の SCK
SCK の入出力方向は LIN-UART4 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART4 の SOT 出力
0
汎用ポート
1
LIN-UART3 の SCK
SCK の入出力方向は LIN-UART3 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART3 の SOT 出力
0
汎用ポート
1
リロードタイマ 1 の TOT 出力
PFR17
PFR16
PFR14
PFR13
EPFR11
189
第 6 章 I/O ポート
■ ポート 2
ポート 2 は PFR2 および EPFR2 で制御されます。
外部バスモードでは , ポート 2 はバスインタフェースの A23 ∼ A16 となります。それ
以外のモードでは , インプットキャプチャ0 ∼ 3 および PPGF, PPGD, PPGB, PPG9 に割
り当てられます。
bit7
アドレス
PFR2 000422H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PFR27 PFR26 PFR25 PFR24 PFR23 PFR22 PFR21 PFR20
00000000B
EPFR2 000602H EPFR27 EPFR26 EPFR25 EPFR24 EPFR23 EPFR22 EPFR21 EPFR20
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
ICU3 には LIN-UART3 の LSYN 出力が接続
0
汎用ポート
1
ICU2 には LIN-UART2 の LSYN 出力が接続
0
汎用ポート
1
ICU1 には LIN-UART1 の LSYN 出力が接続
0
汎用ポート
1
ICU0 には LIN-UART0 の LSYN 出力が接続
0
汎用ポート
1
PPGF 出力
0
汎用ポート
1
PPGD 出力
0
汎用ポート
1
PPGB 出力
0
汎用ポート
1
PPG9 出力
PFR27
PFR26
PFR25
PFR24
PFR23
PFR22
PFR21
PFR20
外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ
とができます。
ビット
EPFR27 ∼
EPFR20
190
値
機能 ( 外部バスモード )
0
外部バスアドレス出力 A23 ∼ A16
1
PFR27 ∼ PFR20 により制御
第 6 章 I/O ポート
■ ポート 3
ポート 3 は PFR3 および EPFR3 で制御されます。
外部バスモードでは , ポート 3 はバスインタフェースの制御端子となります。それ以外
のモードでは , アウトプットコンペア 4 ∼ 7, CAN2 およびインプットキャプチャ4, 5 に
割り当てられます。
P32 の INT10R を外部割込み端子として有効にするためには , EISSR10 を設定してくだ
さい。
bit7
アドレス
PFR3 000423H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PFR31 PFR30
00000-00B
EPFR3 000603H EPFR37 EPFR36 EPFR35 EPFR34 EPFR33 EPFR32 EPFR31 EPFR30
00000000B
PFR37 PFR36 PFR35 PFR34 PFR33
R/W
R/W
R/W
R/W
R/W
−
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
OCU7 出力
0
汎用ポート
1
OCU6 出力
0
汎用ポート
1
OCU5 出力
0
汎用ポート
1
OCU4 出力
0
汎用ポート
1
CAN2 の TX 出力
0
汎用ポート
1
ICU5 には LIN-UART5 の LSYN 出力が接続
0
汎用ポート
1
ICU4 には LIN-UART4 の LSYN 出力が接続
PFR37
PFR36
PFR35
PFR34
PFR33
PFR31
PFR30
191
第 6 章 I/O ポート
外部バスモードであっても EPFR の設定により , 外部バス制御信号を無効とすることが
できます。MB91F273(S), MB91F278(S) の外部バスモードでは , EPFR35 と EPFR34 を必
ず "1" に設定してください。
ビット
機能 ( 外部バスモード )
値
0
SYSCLK 出力
1
PFR37 により制御
0
RDY 入力
1
PFR36 により制御
0
BGRNTX 出力 (MB91V280 のみ )
1
PFR35 により制御
0
BRQ 入力 (MB91V280 のみ )
1
PFR34 により制御
0
WR1 出力
1
PFR33 により制御
0
WR0 出力
1
PFR32 により制御
0
RD 出力
1
PFR31 により制御
0
AS 出力
1
PFR30 により制御
EPFR37
EPFR36
EPFR35
EPFR34
EPFR33
EPFR32
EPFR31
EPFR30
192
第 6 章 I/O ポート
■ ポート 4
ポート 4 は PFR4 および EPFR4 で制御されます。
アップダウンカウンタ 2/3 の入力信号 (ZIN2, BIN2, AIN2), およびフリーランタイマの
外部クロック入力 (FRCK0, FRCK1) は常に端子と接続されています。
P42 の INT9R を外部割込み端子として有効にするためには , EISSR9 を設定してくださ
い。
EPFR42, EPFR43 は予約ビットです。必ず "00B" を設定してください。
bit7
アドレス
PFR4 000424H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
-
-
000000--B
-
-
----00--B
R/W
R/W
PFR47 PFR46 PFR45 PFR44 PFR43 PFR42
EPFR4 000604H
-
-
-
-
R/W
R/W
R/W
R/W
EPFR43 EPFR42
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
I2C1 の SCL 入出力
出力は N-ch オープンドレイン
0
汎用ポート
1
I2C1 の SDA 入出力
出力は N-ch オープンドレイン
0
汎用ポート
1
I2C0 の SCL 入出力
出力は N-ch オープンドレイン
0
汎用ポート
1
I2C0 の SDA 入出力
出力は N-ch オープンドレイン
0
汎用ポート
1
CAN1 の TX 出力
ICU7 には LIN-UART6 の LSYN 出力が接続
0
汎用ポート
1
ICU6 には LIN-UART6 の LSYN 出力が接続
端子は CAN1 の RX 入力として使用可能
PFR47
PFR46
PFR45
PFR44
PFR43
PFR42
193
第 6 章 I/O ポート
■ ポート 5
ポート 5 は PFR5 および A/D コンバータ , D/A コンバータで制御されます。
アップダウンカウンタ 0/1 の入力信号 (ZIN1, BIN1, AIN1), および LIN-UART2 への入力
信号 (SIN2) は常に端子と接続されています。
ポート 5 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対
応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり
ます。この場合 , 端子への入力値はすべて "0" として扱われます。
P57 と P56 は D/A コンバータのアナログ出力とも兼用しており , D/A コンバータの出
力が許可された場合も上記と同様にアナログ出力となり , 入力値は "0" として扱われま
す。
アドレス
bit7
bit6
bit5
bit4
bit3
PFR5 000425H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
bit2
bit1
PFR52 PFR51
R/W
R/W
bit0
初期値
−
R/W
-----00-B
R/W :リード / ライト可能
ビット
値
0
汎用ポート
1
LIN-UART2 の SCK
SCK の入出力方向は LIN-UART2 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART2 の SOT 出力
PFR52
PFR51
194
機能
第 6 章 I/O ポート
■ ポート 6
ポート 6 は PFR6 および AD コンバータで制御されます。
ポート 6 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対
応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり
ます。この場合 , 端子への入力値はすべて "0" として扱われます。
bit7
アドレス
PFR6 000426H
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PFR67 PFR66 PFR65 PFR64 PFR63 PFR62 PFR61 PFR60
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
PPGE 出力
0
汎用ポート
1
PPGC 出力
0
汎用ポート
1
PPGA 出力
0
汎用ポート
1
PPG8 出力
0
汎用ポート
1
PPG6 出力
0
汎用ポート
1
PPG4 出力
0
汎用ポート
1
PPG2 出力
0
汎用ポート
1
PPG0 出力
PFR67
PFR66
PFR65
PFR64
PFR63
PFR62
PFR61
PFR60
195
第 6 章 I/O ポート
■ ポート 7
ポート 7 は PFR7 および AD コンバータで制御されます。
ポート 7 は全端子 AD コンバータのアナログ入力と兼用しており , ADER レジスタの対
応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子となり
ます。この場合 , 端子への入力値はすべて "0" として扱われます。
外部割込み INT7 ∼ INT0 への入力信号は , 上記のように AD コンバータのアナログ入
力である場合を除き , 常に端子と接続されています。
bit7
アドレス
PFR7 000427H
bit6
PFR77 PFR76
R/W
R/W
bit5
bit4
bit3
bit2
bit1
bit0
初期値
-
-
-
-
-
-
00------B
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
0
汎用ポート
1
I2C2 の SCL 入出力
出力はオープンドレイン
0
汎用ポート
1
I2C2 の SDA 入出力
出力はオープンドレイン
PFR77
PFR76
196
機能
第 6 章 I/O ポート
■ ポート 8
ポート 8 は PFR8 および EPFR8 で制御されます。
リロードタイマ 0/2 の入力信号 (TIN0, TIN2), LIN-UART0/UART1 の入力信号 (SIN0,
SIN1), および AD コンバータの外部トリガ入力 (ADTG) は常に端子と接続されていま
す。
P84 ∼ P80 の INT15R ∼ INT12R を外部割込み端子として有効にするためには , EISSR15 ∼
EISSR12 の対応するビットを設定してください。
bit7
アドレス
PFR8 000428H
EPFR8 000608H
bit6
bit5
PFR87 PFR86
−
R/W
−
R/W
−
bit4
bit3
PFR84 PFR83
−
R/W
−
R/W
EPFR83
R/W
bit2
bit1
bit0
初期値
−
PFR81
−
00-00-0-B
−
R/W
EPFR81
−
R/W
----0-0-B
R/W
R/W :リード / ライト可能
ビット
値
0
汎用ポート
1
LIN-UART1 の SCK
SCK の入出力方向は LIN-UART1 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART1 の SOT
0
汎用ポート
1
LIN-UART0 の SCK
SCK の入出力方向は LIN-UART0 の SCKE ビットで切換え
00
汎用ポート
10
LIN-UART0 の SOT
x1
リロードタイマ 2 の TOT 出力
00
汎用ポート
10
クロックモニタ出力 (CKOT)
x1
リロードタイマ 0 の TOT 出力
PFR87
PFR86
PFR84
PFR83
EPFR83
PFR81
EPFR81
機能
197
第 6 章 I/O ポート
■ ポート 9
ポート 9 は PFR9 および EPFR9 で制御されます。
外部バスモードでは , P93 ∼ P90 は CS3 ∼ CS0 となります。
それ以外のモードでは , PPG7,
PPG5, PPG3, PPG1 出力およびアップダウンカウンタ 2/3 の入力信号に割り当てられます。
bit7
アドレス
PFR9 000429H
EPFR9 000609H
bit6
bit5
bit4
bit3
bit2
bit1
PFR97 PFR96 PFR95 PFR94 PFR93 PFR92 PFR91 PFR90
−
R/W
−
R/W
−
R/W
−
R/W
EPFR93 EPFR92 EPFR91 EPFR90
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
OCU3 出力
0
汎用ポート
1
OCU2 出力
0
汎用ポート
1
OCU1 出力
0
汎用ポート
1
OCU0 出力
0
汎用ポート
1
PPG7 出力
0
汎用ポート
1
PPG5 出力
0
汎用ポート
1
PPG3 出力
0
汎用ポート
1
PPG1 出力
PFR97
PFR96
PFR95
PFR94
PFR93
PFR92
PFR91
PFR90
198
bit0
R/W
初期値
00000000B
----0000B
第 6 章 I/O ポート
外部バスモードであっても EPFR の設定により , 外部バス制御信号である CS を無効と
することができます。
ビット
機能 ( 外部バスモード )
値
0
CS3 出力
1
PFR93 により制御
0
CS2 出力
1
PFR92 により制御
0
CS1 出力
1
PFR91 により制御
0
CS0 出力
1
PFR90 により制御
EPFR93
EPFR92
EPFR91
EPFR90
■ ポート A
ポート A は PFRA で制御されます。
PA0 の INT8R を外部割込み端子として有効にするためには , EISSR[8] を設定してくだ
さい。
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
PFRA 00042AH
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
bit1
bit0
PFRA1 PFRA0
R/W
初期値
------00B
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
CAN0 の TX 出力
0
汎用ポート
1
CAN 使用時は , "1" に設定願います。
PFRA1
PFRA0
<注意事項>
CAN 使用時は , PFRA0/PFRA1 は , 必ず "1" に設定願います。
PFRA0/PFRA1 を "1" に設定した場合 , DDR レジスタを出力 ("1") 設定しても CAN 通信端
子 (TX, RX) には影響を与えません。
199
第 6 章 I/O ポート
■ ポート B
ポート B は PFRB および EPFRB で制御されます。
bit7
アドレス
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PFRB 00042BH
−
−
PFRB5 PFRB4 PFRB3 PFRB2 PFRB1 PFRB0
--000000B
EPFRB 00060BH
−
R/W
−
R/W
EPFRB5 EPFRB4 EPFRB3 EPFRB2 EPFRB1 EPFRB0
--000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
LIN-UART6 の SCK(SCK6-2)
SCK の入出力方向は LIN-UART6 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART6 の SOT(SOT6-2)
P04 の SOT6 と同時に出力可能
0
汎用ポート
1
LIN-UART6 の SIN 有効 (SIN6-2)
本来の入力である P03(SIN6) は LIN-UART6 から切断
0
汎用ポート
1
LIN-UART5 の SCK(SCK5-2)
SCK の入出力方向は LIN-UART5 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART5 の SOT(SOT5-2)
P01 の SOT5 と同時に出力可能
0
汎用ポート
1
LIN-UART5 の SIN 有効 (SIN5-2)
本来の入力である P00(SIN5) は LIN-UART5 から切断
PFRB5
PFRB4
PFRB3
PFRB2
PFRB1
PFRB0
EPFR は外部割込み入力端子の選択に使用されます。
200
ビット
値
機能
EPFRB5
∼
EPFRB0
0
P05 ∼ P00 の INT13 ∼ INT8 が外部割込み入力端子として有効
1
PB5 ∼ PB0 の INT13-2 ∼ INT8-2 が外部割込み端子入力として
有効
第 6 章 I/O ポート
■ ポート C
ポート C は PFRC で制御されます。
PC7 ∼ PC0 の INT7R ∼ INT0R を外部割込み端子として有効にするためには , EISSR7 ∼
EISSR0 の対応するビットを設定してください。
bit7
アドレス
PFRC 00042CH
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PFRC7 PFRC6 PFRC5 PFRC4 PFRC3 PFRC2 PFRC1 PFRC0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
ビット
値
機能
0
汎用ポート
1
LIN-UART4 の SCK(SCK4-2)
SCK の入出力方向は LIN-UART4 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART4 の SOT(SOT4-2)
P16 の SOT4 と同時に出力可能
0
汎用ポート
1
LIN-UART4 の SIN 有効 (SIN4-2)
本来の入力である P15(SIN4) は LIN-UART4 から切断
0
汎用ポート
1
LIN-UART3 の SCK(SCK3-2)
SCK の入出力方向は LIN-UART3 の SCKE ビットで切換え
0
汎用ポート
1
LIN-UART3 の SOT(SOT3-2)
P13 の SOT3 と同時に出力可能
0
汎用ポート
1
LIN-UART3 の SIN 有効 (SIN3-2)
本来の入力である P12(SIN3) は LIN-UART3 から切断
0
汎用ポート
1
OCU5 出力 (OUT5-2)
P35 の OUT5 と同時に出力可能
0
汎用ポート
1
OCU4 出力 (OUT4-2)
P34 の OUT4 と同時に出力可能
PFRC7
PFRC6
PFRC5
PFRC4
PFRC3
PFRC2
PFRC1
PFRC0
201
第 6 章 I/O ポート
■ ポート D
ポート D は PFRD で制御されます。
外部割込み INT23 ∼ INT16 への入力信号は常に端子と接続されています。
bit7
アドレス
PFRD 00042DH
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PFRD7 PFRD6 PFRD5 PFRD4 PFRD3 PFRD2 PFRD1 PFRD0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
ビット
値
0
汎用ポート
1
ICU3 の入力有効 (IN3-2)
本来の入力である P27(IN3) は ICU3 から切断
0
汎用ポート
1
ICU2 の入力有効 (IN2-2)
本来の入力である P26(IN2) は ICU2 から切断
0
汎用ポート
1
ICU1 の入力有効 (IN1-2)
本来の入力である P25(IN1) は ICU1 から切断
0
汎用ポート
1
ICU0 の入力有効 (IN0-2)
本来の入力である P24(IN0) は ICU0 から切断
0
汎用ポート
1
PPGF 出力 (PPGF-2)
P23 の PPGF と同時に出力可能
0
汎用ポート
1
PPGD 出力 (PPGD-2)
P22 の PPGD と同時に出力可能
0
汎用ポート
1
PPGB 出力 (PPGB-2)
P21 の PPGB と同時に出力可能
0
汎用ポート
1
PPGF 出力 (PPG9-2)
P21 の PPG9 と同時に出力可能
PFRD7
PFRD6
PFRD5
PFRD4
PFRD3
PFRD2
PFRD1
PFRD0
202
機能
初期値
00000000B
第 6 章 I/O ポート
■ ポート E
ポート E は EPFRE で制御されます。
外部バスモードでは , ポート E はバスインタフェースの A7 ∼ A0 となります。それ以
外のモードでは , 汎用ポートです。
外部割込み INT31 ∼ INT24 への入力信号は常に端子と接続されています。
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス
EPFRE 00060EH EPFRE7 EPFRE6 EPFRE5 EPFRE4 EPFRE3 EPFRE2 EPFRE1 EPFRE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ
とができます。
ビット
値
機能 ( 外部バスモード )
EPFRE7
∼
EPFRE0
0
外部バスアドレス出力 A7 ∼ A0
1
汎用ポート
■ ポート F
ポート F は EPFRF で制御されます。
外部バスモードでは , ポート E はバスインタフェースの A15 ∼ A8 となります。それ
以外のモードでは , 汎用ポートです。
外部割込み INT39 ∼ INT32 への入力信号は常に端子と接続されています。
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
EPFRF 00060FH EPFRF7 EPFRF6 EPFRF5 EPFRF4 EPFRF3 EPFRF2 EPFRF1 EPFRF0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
外部バスモードであっても EPFR の設定により , 外部バスアドレス出力を無効とするこ
とができます。
機能 ( 外部バスモード )
ビット
値
EPFRF7 ∼
EPFRF0
0
外部バスアドレス出力 A15 ∼ A8
1
汎用ポート
■ ポート G
ポート G には PFR は存在せず , A/D コンバータで制御されます。
ポート G は全端子 A/D コンバータのアナログ入力と兼用しており , ADER レジスタの
対応するビットがセットされると , ポートの設定は無効となり , アナログ入力端子とな
ります。この場合 , 端子への入力値はすべて "0" として扱われます。
上記以外の場合では , 常に汎用ポートです。
203
第 6 章 I/O ポート
6.4
外部割込み入力の再配置
MB91270 シリーズには最大 40 チャネルの外部割込み入力があります (INT0 ∼
INT39)。さらに INT0 ∼ INT15 は , 初期状態で割り当てられている端子から別の端子
へ再配置することができます。この再配置は , 外部割込み入力端子選択レジスタ
(EISSR) の設定により実現されます。
■ 外部割込み入力端子選択レジスタ (EISSR)
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
EISSRH 0001AAH EISSR15 EISSR14 EISSR13 EISSR12 EISSR11 EISSR10 EISSR9 EISSR8
00000000B
EISSRL 0001ABH EISSR7 EISSR6 EISSR5 EISSR4 EISSR3 EISSR2 EISSR1 EISSR0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
表 6.4-1 に外部割込み入力端子の再配置を示します。
P32, P42, PA0 は CAN の RX 入力と兼用しており , CAN ウェイクアップとしての使用が
可能です。
表 6.4-1 外部割込み入力端子の再配置
外部割込み入力端子
ビット
204
外部割込みチャネル
0 [ 初期値 ]
1
EISSR15
INT15
P07
P84
EISSR14
INT14
P06
P82
EISSR13
INT13
P05 (PB5)
P81
EISSR12
INT12
P04 (PB4)
P80
EISSR11
INT11
P03 (PB3)
P12
EISSR10
INT10
P02 (PB2)
P32
EISSR9
INT9
P01 (PB1)
P42
EISSR8
INT8
P00 (PB0)
PA0
EISSR7
INT7
P77
PC7
EISSR6
INT6
P76
PC6
EISSR5
INT5
P75
PC5
EISSR4
INT4
P74
PC4
EISSR3
INT3
P73
PC3
EISSR2
INT2
P72
PC2
EISSR1
INT1
P71
PC1
EISSR0
INT0
P70
PC0
第 6 章 I/O ポート
<参考>
INT13 ∼ INT8 は , ポート B の EPFRB で入力端子を PB5 ∼ PB0 との選択もできます。こ
の場合 , 対応する EISSR ビットの設定値は "0" としてください。
EISSR および EPFRB の設定により外部割込み入力端子を切り換える前に , 対応する
チャネルの ENIR レジスタビットを "0" ( 割込み禁止 ) に設定してください。"1" ( 割込
み許可 ) の時に切り換えると , 割込みが直ちに発生する場合があります。
205
第 6 章 I/O ポート
6.5
端子入力レベルの選択
端子の入力レベルは , CMOS シュミットトリガ , もしくは CMOS オートモーティブ
シュミットトリガのいずれかをソフトウェアで端子ごとに選択することができます。
外部バスモード時には , 外部バスインタフェースの入力信号は CMOS シュミットト
リガ , もしくは TTL のいずれかを選択することができます。
■ 端子入力レベル
表 6.5-1 に入力レベルを示します。
表 6.5-1 入力レベル
VIL
名称
VIH
CMOS シュミットトリガ
VIL = 0.3 × VCC
VIH = 0.7 × VCC
CMOS オートモーティブシュミット
トリガ
VIL = 0.5 × VCC
VIH = 0.8 × VCC
TTL
VIL = 0.8 V
VIH = 2.1 V
■ 端子入力レベルの選択
端子ごとの入力レベルの選択には , 端子入力レベル選択レジスタ (PILR) が使用されま
す。表 6.5-2 にレジスタの設定値を示します。
表 6.5-2 端子入力レベル選択レジスタの設定
端子入力レベル
ビット
PILRxy
206
入力信号
0 [ 初期値 ]
1
汎用ポート
ペリフェラル入力
CMOS シュミットトリガ
CMOS オートモーティブ
シュミットトリガ
外部バス入力
(D00 ∼ D15, RDY)
CMOS シュミットトリガ
TTL
第 6 章 I/O ポート
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PILR0 000540H
PILR07 PILR06 PILR05 PILR04 PILR03 PILR02 PILR01 PILR00
00000000B
PILR1 000541H
PILR17 PILR16 PILR15 PILR14 PILR13 PILR12 PILR11 PILR10
00000000B
PILR2 000542H
PILR27 PILR26 PILR25 PILR24 PILR23 PILR22 PILR21 PILR20
00000000B
PILR3 000543H
PILR37 PILR36 PILR35 PILR34 PILR33 PILR32 PILR31 PILR30
00000000B
PILR4 000544H
PILR47 PILR46 PILR45 PILR44 PILR43 PILR42 PILR41 PILR40
00000000B
PILR5 000545H
PILR57 PILR56 PILR55 PILR54 PILR53 PILR52 PILR51 PILR50
00000000B
PILR6 000546H
PILR67 PILR66 PILR65 PILR64 PILR63 PILR62 PILR61 PILR60
00000000B
PILR7 000547H
PILR77 PILR76 PILR75 PILR74 PILR73 PILR72 PILR71 PILR70
00000000B
PILR8 000548H
PILR87 PILR86 PILR85 PILR84 PILR83 PILR82 PILR81 PILR80
00000000B
PILR9 000549H
PILR97 PILR96 PILR95 PILR94 PILR93 PILR92 PILR91 PILR90
00000000B
PILRA 00054AH
-
-
PILRB 00054BH
-
-
PILRC 00054CH
PILRC7
PILRD 00054DH
PILRD7
-
-
-
-
PILRA1 PILRA0
------00B
PILRB5 PILRB4 PILRB3 PILRB2 PILRB1 PILRB0
--000000B
PILRC6
PILRC5
PILRC4
PILRC3
PILRC2
PILRC1
PILRC0
00000000B
PILRD6
PILRD5
PILRD4
PILRD3
PILRD2
PILRD1
PILRD0
00000000B
PILRE 00054EH
PILRE7 PILRE6 PILRE5 PILRE4 PILRE3 PILRE2 PILRE1 PILRE0
00000000B
PILRF 00054FH
PILRF7 PILRF6 PILRF5 PILRF4 PILRF3 PILRF2 PILRF1 PILRF0
00000000B
PILRG 000550H
PILRG7
PILRG6
PILRG5
00000000B
R/W
R/W
R/W
PILRG4 PILRG3
R/W
R/W
PILRG2
PILRG1
PILRG0
R/W
R/W
R/W
R/W :リード / ライト可能
207
第 6 章 I/O ポート
6.6
プルアップ・プルダウン制御レジスタ
端子には 50kΩ のプルアップ , もしくはプルダウンを付加する機能があります。こ
の機能はソフトウェアによりビット単位で制御可能です。
■ プルアップ・プルダウン制御
プルアップ・プルダウン機能は , ポートプルアップ・プルダウン許可レジスタ (PPER)
により有効とされ , ポートプルアップ・プルダウン制御レジスタ (PPCR) により , プル
アップもしくはプルダウンの制御が行われます。
以下の場合は , 端子のプルアップもしくはプルダウンは自動的に無効となります。
• ポートが出力状態
• STOP モード時
■ ポートプルアップ・プルダウン許可レジスタ
表 6.6-1 にポートプルアップ・プルダウン許可レジスタの設定を示します。
I2C インタフェースと兼用しているポート (P47 ∼ P44, P77, P76), および D/A コンバー
タの出力と兼用しているポート (P57, P56) を除き , すべてのポートに対応するビットが
存在します。
表 6.6-1 ポートプルアップ・プルダウン許可レジスタの設定
ポートプルアップ・プルダウン許可レジスタ
ビット
0 [ 初期値 ]
PPERxy
208
プルアップ・プルダウン無効
1
プルアップ・プルダウン有効
第 6 章 I/O ポート
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PPER0 000500H PPER07 PPER06 PPER05 PPER04 PPER03 PPER02 PPER01 PPER00
00000000 B
PPER1 000501H PPER17 PPER16 PPER15 PPER14 PPER13 PPER12 PPER11 PPER10
00000000 B
PPER2 000502H PPER27 PPER26 PPER25 PPER24 PPER23 PPER22 PPER21 PPER20
00000000 B
PPER3 000503H PPER37 PPER36 PPER35 PPER34 PPER33 PPER32 PPER31 PPER30
00000000 B
PPER4 000504H
−
−
PPER43 PPER42 PPER41 PPER40
----0000 B
PPER5 000505H
−
−
PPER55 PPER54 PPER53 PPER52 PPER51 PPER50
--000000 B
PPER6 000506H PPER67 PPER66 PPER65 PPER64 PPER63 PPER62 PPER61 PPER60
00000000 B
PPER7 000507H
PPER75 PPER74 PPER73 PPER72 PPER71 PPER70
--000000 B
PPER8 000508H PPER87 PPER86 PPER85 PPER84 PPER83 PPER82 PPER81 PPER80
00000000 B
PPER9 000509H PPER97 PPER96 PPER95 PPER94 PPER93 PPER92 PPER91 PPER90
00000000 B
−
−
PPERA 00050AH
−
−
PPERB 00050BH
−
−
−
−
−
−
−
−
PPERA1 PPERA0
------00 B
PPERB5 PPERB4 PPERB3 PPERB2 PPERB1 PPERB0
--000000 B
PPERC 00050CH PPERC7 PPERC6 PPERC5 PPERC4 PPERC3 PPERC2 PPERC1 PPERC0
00000000 B
PPERD 00050DH PPERD7 PPERD6 PPERD5 PPERD4 PPERD3 PPERD2 PPERD1 PPERD0
00000000 B
PPERE 00050EH PPERE7 PPERE6 PPERE5 PPERE4 PPERE3 PPERE2 PPERE1 PPERE0
00000000 B
PPERF 00050FH PPERF7 PPERF6 PPERF5 PPERF4 PPERF3 PPERF2 PPERF1 PPERF0
00000000 B
PPERG 000510H PPERG7 PPERG6 PPERG5 PPERG4 PPERG3 PPERG2 PPERG1 PPERG0
00000000 B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
209
第 6 章 I/O ポート
■ ポートプルアップ・プルダウン制御レジスタ
表 6.6-2 にポートプルアップ・プルダウン制御レジスタの設定を示します。各ビットの
設定値は対応する PPER が設定されているときのみ有効です。
I2C インタフェースと兼用しているポート (P47 ∼ P44, P77, P76), および D/A コンバー
タの出力と兼用しているポート (P57, P56) を除き , すべてのポートに対応するビットが
存在します。
表 6.6-2 ポートプルアップ・プルダウン制御レジスタの設定
ポートプルアップ・プルダウン制御レジスタ
ビット
0
PPCRxy
bit7
アドレス
1 ( 初期値 )
プルダウン
bit6
bit5
プルアップ
bit4
bit3
bit2
bit1
bit0
初期値
PPCR0 000520H PPCR07 PPCR06 PPCR05 PPCR04 PPCR03 PPCR02 PPCR01 PPCR00
11111111B
PPCR1 000521H PPCR17 PPCR16 PPCR15 PPCR14 PPCR13 PPCR12 PPCR11 PPCR10
11111111B
PPCR2 000522H PPCR27 PPCR26 PPCR25 PPCR24 PPCR23 PPCR22 PPCR21 PPCR20
11111111B
PPCR3 000523H PPCR37 PPCR36 PPCR35 PPCR34 PPCR33 PPCR32 PPCR31 PPCR30
11111111B
PPCR4 000524H
−
−
PPCR43 PPCR42 PPCR41 PPCR40
----1111B
PPCR5 000525H
−
−
PPCR55 PPCR54 PPCR53 PPCR52 PPCR51 PPCR50
--111111B
PPCR6 000526H PPCR67 PPCR66 PPCR65 PPCR64 PPCR63 PPCR62 PPCR61 PPCR60
11111111B
PPCR7 000527H
PPCR75 PPCR74 PPCR73 PPCR72 PPCR71 PPCR70
--111111B
PPCR8 000528H PPCR87 PPCR86 PPCR85 PPCR84 PPCR83 PPCR82 PPCR81 PPCR80
11111111B
PPCR9 000529H PPCR97 PPCR96 PPCR95 PPCR94 PPCR93 PPCR92 PPCR91 PPCR90
11111111B
−
−
PPCRA 00052AH
−
−
PPCRB 00052BH
−
−
−
−
−
−
−
−
PPCRA1 PPCRA0
------11B
PPCRB5 PPCRB4 PPCRB3 PPCRB2 PPCRB1 PPCRB0
--111111B
PPCRC 00052CH PPCRC7 PPCRC6 PPCRC5 PPCRC4 PPCRC3 PPCRC2 PPCRC1 PPCRC0
11111111B
PPCRD 00052DH PPCRD7 PPCRD6 PPCRD5 PPCRD4 PPCRD3 PPCRD2 PPCRD1 PPCRD0
11111111B
PPCRE 00052EH PPCRE7 PPCRE6 PPCRE5 PPCRE4 PPCRE3 PPCRE2 PPCRE1 PPCRE0
11111111B
PPCRF 00052FH PPCRF7 PPCRF6 PPCRF5 PPCRF4 PPCRF3 PPCRF2 PPCRF1 PPCRF0
11111111B
PPCRG 000530H PPCRG7 PPCRG6 PPCRG5 PPCRG4 PPCRG3 PPCRG2 PPCRG1 PPCRG0
11111111B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
<注意事項>
プルアップもしくはプルダウンが有効である期間 (PPER=1) は , PPCR への書込みアクセ
スは無効となり , レジスタ値は更新されません。
PPCR の設定値の変更は , 対応する PPER
が "0" の場合にのみ有効です。
210
第 6 章 I/O ポート
入力データダイレクトリードレジスタ
6.7
入力データダイレクトリードレジスタを読み出すと , ポートの状態に関わらず , 端子
のレベルを読み出すことができます。
■ 入力データダイレクトリードレジスタ (PIDR)
アドレス
bit7
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PIDR0 000620H
PIDR07
PIDR06
PIDR05
PIDR04
PIDR03
PIDR02
PIDR01
PIDR00
XXXXXXXXB
PIDR1 000621H
PIDR17
PIDR16
PIDR15
PIDR14
PIDR13
PIDR12
PIDR11
PIDR10
XXXXXXXXB
PIDR2 000622H
PIDR27
PIDR26
PIDR25
PIDR24
PIDR23
PIDR22
PIDR21
PIDR20
XXXXXXXXB
PIDR3 000623H
PIDR37
PIDR36
PIDR35
PIDR34
PIDR33
PIDR32
PIDR31
PIDR30
XXXXXXXXB
PIDR4 000624H
PIDR47
PIDR46
PIDR45
PIDR44
PIDR43
PIDR42
PIDR41
PIDR40
XXXXXXXXB
PIDR5 000625H
PIDR57
PIDR56
PIDR55
PIDR54
PIDR53
PIDR52
PIDR51
PIDR50
XXXXXXXXB
PIDR6 000626H
PIDR67
PIDR66
PIDR65
PIDR64
PIDR63
PIDR62
PIDR61
PIDR60
XXXXXXXXB
PIDR7 000627H
PIDR77
PIDR76
PIDR75
PIDR74
PIDR73
PIDR72
PIDR71
PIDR70
XXXXXXXXB
PIDR8 000628H
PIDR87
PIDR86
PIDR85
PIDR84
PIDR83
PIDR82
PIDR81
PIDR80
XXXXXXXXB
PIDR9 000629H
PIDR97
PIDR96
PIDR95
PIDR94
PIDR93
PIDR92
PIDR91
PIDR90
XXXXXXXXB
PIDRA 00062AH
−
−
−
−
−
−
PIDRB 00062BH
−
−
PIDRA1 PIDRA0
PIDRB5 PIDRB4 PIDRB3 PIDRB2 PIDRB1 PIDRB0
------XXB
--XXXXXXB
PIDRC 00062CH PIDRC7 PIDRC6 PIDRC5 PIDRC4 PIDRC3 PIDRC2 PIDRC1 PIDRC0
XXXXXXXXB
PIDRD 00062DH PIDRD7 PIDRD6 PIDRD5 PIDRD4 PIDRD3 PIDRD2 PIDRD1 PIDRD0
XXXXXXXXB
PIDRE 00062EH
PIDRE7 PIDRE6 PIDRE5 PIDRE4 PIDRE3 PIDRE2 PIDRE1 PIDRE0
XXXXXXXXB
PIDRF 00062FH
PIDRF7
PIDRF2 PIDRF1 PIDRF0
XXXXXXXXB
PIDRG 000010H
PIDRG7 PIDRG6 PIDRG5 PIDRG4 PIDRG3 PIDRG2 PIDRG1 PIDRG0
XXXXXXXXB
R
R
bit6
PIDRF6
R
PIDRF5
R
PIDRF4
R
PIDRF3
R
R
R
R
:リードオンリ
211
第 6 章 I/O ポート
212
第7章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
7.1 割込みコントローラの概要
7.2 割込みコントローラのレジスタ
7.3 割込みコントローラの動作説明
213
第 7 章 割込みコントローラ
7.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理を行います。
■ 割込みコントローラのハードウェア構成
本モジュールは , 以下のものより構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
• バスマスタへのホールドリクエスト取下げ要求発生
<注意事項>
本シリーズでは NMI はサポートされていません。
214
第 7 章 割込みコントローラ
■ 割込みコントローラのレジスタ一覧
図 7.1-1 に , 割込みコントローラのレジスタ一覧を示します。
図 7.1-1 割込みコントローラのレジスタ一覧
bit5
bit4
bit3
bit2
bit1
bit0
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
000442H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
000443H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
000444H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
000445H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
000446H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
000447H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス
bit7
000440H
−
000441H
bit6
000448H
−
−
−
ICR4
000449H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
00044AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
00044BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
00044CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
00044DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
00044EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
00044FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
ICR3
ICR2
ICR1
ICR0
ICR16
000450H
−
−
−
ICR4
000451H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
000452H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
000453H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
000454H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
000455H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
000456H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
000457H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
ICR3
ICR2
ICR1
ICR0
ICR24
000458H
−
−
−
ICR4
000459H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
00045AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
00045BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
00045CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
00045DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
00045EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
00045FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
R
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
( 続く )
215
第 7 章 割込みコントローラ
( 続き )
bit7
bit5
bit4
bit3
bit2
bit1
bit0
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR32
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
000462H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
000463H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
000464H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
000465H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
000466H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
000467H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
ICR3
ICR2
ICR1
ICR0
ICR40
000460H
−
000461H
bit6
000468H
−
−
−
ICR4
000469H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
00046AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
00046BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
00046CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
00046DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
00046EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
00046FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR47
R
R/W
R/W
R/W
R/W
LVL4
LVL3
LVL2
LVL1
LVL0
R
R/W
R/W
R/W
R/W
000045H
MHALTI
−
−
R/W
HRCL
R/W :リード / ライト可能
R
:リードオンリ
■ 割込みコントローラのブロックダイヤグラム
図 7.1-2 に割込みコントローラのブロックダイヤグラムを示します。
図 7.1-2 割込みコントローラのブロックダイヤグラム
UNMI
ウェイクアップ(レベル≠11111のとき"1")
優先度判定
NMI
処理
LVL4~LVL0
5
ホールド
リクエスト
取下げ
要求
レベル判定
ICR00
RI00
ベクタ
判定
ICR47
RI47
(DLYIRQ)
R-bus
216
6
レベル,
ベクタ
発生
MHALT1
VCT5~0
第 7 章 割込みコントローラ
7.2
割込みコントローラのレジスタ
割込みコントローラのレジスタ構成および機能について説明します。
■ 割込みコントローラのレジスタ詳細
割込みコントローラには , 以下の 2 種類のレジスタがあります。
• 割込み制御レジスタ (ICR)
• HRCL ( ホールドリクエスト取下げ要求レジスタ )
217
第 7 章 割込みコントローラ
7.2.1
割込み制御レジスタ (ICR)
ICR は , 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており ,
対応する割込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR) のビット構成
割込み制御レジスタ (ICR) のビット構成は以下のとおりです。
ICR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000440H
∼
00046FH
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
R/W
初期値
---11111B
R/W :リード / ライト可能
R
:リードオンリ
[bit4 ∼ bit0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定した ( された ) レ
ベルマスク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
表 7.2-1 に , 設定可能な割込みレベル設定ビットと割込みレベルの対応を示します。
表 7.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4 *
ICR3
ICR2
ICR1
ICR0
0
0
0
1
1
0
1
1
0
0
0
1
1
0
0
0
1
1
0
0
0
0
1
0
1
0
14
15
16
17
1
1
1
1
1
1
1
1
1
1
1
1
1
0
0
0
0
0
0
1
1
1
1
1
1
1
0
0
1
1
1
1
0
0
0
0
1
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
18
19
20
21
22
23
24
25
26
27
28
29
30
1
1
1
1
1
31
割込みレベル
*: ICR4 は "1" 固定で , "0" を書き込むことはできません。
218
システム予約
NMI
設定可能な最強レベル
(強)
(弱)
割込み禁止
第 7 章 割込みコントローラ
HRCL ( ホールドリクエスト取下げ要求レジスタ )
7.2.2
HRCL は , ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
■ ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成
ホールドリクエスト取下げ要求レジスタ (HRCL) のビット構成は , 以下のとおりです。
HRCL
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000045H
MHALTI
R/W
−
−
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
0--11111B
R/W :リード / ライト可能
R
:リードオンリ
[bit7] MHALTI
MHALTI は , NMI の要求による DMA 転送抑止ビットです。NMI 要求によって "1"
にセットされ ,"0" を書き込むことによってクリアされます。NMI ルーチンの最後で
通常の割込みルーチンと同様にクリアしてください。
<注意事項>
本シリーズでは NMI はサポートされていません。
[bit4 ∼ bit0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取下げ要求を出します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
219
第 7 章 割込みコントローラ
7.3
割込みコントローラの動作説明
割込みコントローラの動作について説明します。
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 以下のとおりです。
1. NMI
2. 以下の条件を満たす要因
- 割込みレベルの数値が 31 以外 (31 は割込み禁止 ) 。
- 割込みレベルの数値が最も小さい要因。
- その中で , 最も小さい割込み番号を持つ要因。
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31(11111B) を出力します。そのときの割込み番号は不定です。
表 7.3-1 に , 割込み要因と割込み番号 , 割込みレベルの関係を示します。
<注意事項>
本シリーズでは NMI はサポートされていません。
220
第 7 章 割込みコントローラ
表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (1 / 2)
割込み要因
割込み番号
10 進 16 進
リセット
モードベクタ
システム予約
システム予約
システム予約
システム予約
システム予約
コプロセッサ不在トラップ
コプロセッサエラートラップ
INTE 命令
システム予約
システム予約
ステップトレーストラップ
NMI 要求 (tool)
未定義命令例外
NMI 要求
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
外部割込み 0
外部割込み 1
外部割込み 2
外部割込み 3
外部割込み 4
外部割込み 5
外部割込み 6
外部割込み 7
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
LIN-UART0 ( 受信完了 )
LIN-UART0 ( 送信完了 )
LIN-UART1 ( 受信完了 )
LIN-UART1 ( 送信完了 )
LIN-UART2 ( 受信完了 )
LIN-UART2 ( 送信完了 )
CAN0
CAN1 /ICU6/ICU7
CAN2
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
10
11
12
13
14
15
16
17
18
19
1A
1B
1C
1D
1E
1F
20
21
22
23
24
25
26
27
28
LIN-UART3/UART5 ( 受信完了 )
LIN-UART3/UART5 ( 送信完了 )
LIN-UART4/UART6 ( 受信完了 )
LIN-UART4/UART6 ( 送信完了 )
I2C0
割込みレベル オフセット
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
15(FH) 固定
ICR00
ICR01
ICR02
ICR03
ICR04
ICR05
ICR06
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
ICR16
ICR17
ICR18
ICR19
ICR20
ICR21
ICR22
ICR23
ICR24
TBR デフォルト リソース
番号
のアドレス
3FCH
3F8H
3F4H
3F0H
3ECH
3E8H
3E4H
3E0H
3DCH
3D8H
3D4H
3D0H
3CCH
3C8H
3C4H
3C0H
000FFFFCH
000FFFF8H
000FFFF4H
000FFFF0H
000FFFECH
000FFFE8H
000FFFE4H
000FFFE0H
000FFFDCH
000FFFD8H
000FFFD4H
000FFFD0H
000FFFCCH
000FFFC8H
000FFFC4H
000FFFC0H
3BCH
3B8H
3B4H
3B0H
3ACH
3A8H
3A4H
3A0H
39CH
398H
394H
390H
38CH
388H
384H
380H
37CH
378H
374H
370H
36CH
368H
364H
360H
35CH
000FFFBCH
000FFFB8H
000FFFB4H
000FFFB0H
000FFFACH
000FFFA8H
000FFFA4H
000FFFA0H
000FFF9CH
000FFF98H
000FFF94H
000FFF90H
000FFF8CH
000FFF88H
000FFF84H
000FFF80H
000FFF7CH
000FFF78H
000FFF74H
000FFF70H
000FFF6CH
000FFF68H
000FFF64H
000FFF60H
000FFF5CH
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
6
7
11
−
−
−
−
−
8
9
10
0
1
2
3
4
5
−
−
−
−
−
−
−
−
221
第 7 章 割込みコントローラ
表 7.3-1 割込み要因と割込み番号 , 割込みレベルの関係 (2 / 2)
割込み要因
割込み番号
10 進 16 進
割込みレベル オフセット
TBR デフォルト リソース
番号
のアドレス
I C1 / アップダウンカウンタ 2
41
29
ICR25
358H
000FFF58H
−
I2C2
42
2A
ICR26
354H
000FFF54H
A/D コンバータ
リアルタイムクロック
アップダウンカウンタ 1
メイン発振安定待ちタイマ
TBT オーバフロー
PPG0/PPG1/PPG4/PPG5
PPG2/PPG3/PPG6/PPG7
PPG8/PPG9/PPGC/PPGD
PPGA/PPGB/PPGE/PPGF
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
2B
2C
2D
2E
2F
30
31
32
33
34
35
36
37
38
39
3A
3B
3C
3D
3E
3F
40
41
42
43
44
45
46
47
48
49
4A
4B
4C
4D
4E
4F
ICR27
ICR28
ICR29
ICR30
ICR31
ICR32
ICR33
ICR34
ICR35
ICR36
ICR37
ICR38
ICR39
ICR40
ICR41
ICR42
ICR43
ICR44
ICR45
ICR46
ICR47
50
|
FF
000FFF50H
000FFF4CH
000FFF48H
000FFF44H
000FFF40H
000FFF3CH
000FFF38H
000FFF34H
000FFF30H
000FFF2CH
000FFF28H
000FFF24H
000FFF20H
000FFF1CH
000FFF18H
000FFF14H
000FFF10H
000FFF0CH
000FFF08H
000FFF04H
000FFF00H
000FFEFCH
000FFEF8H
000FFEF4H
000FFEF0H
000FFEECH
000FFEE8H
000FFEE4H
000FFEE0H
000FFEDCH
000FFED8H
000FFED4H
000FFED0H
000FFECCH
000FFEC8H
000FFEC4H
000FFEC0H
000FFEBCH
|
000FFC00H
−
14
80
|
255
350H
34CH
348H
344H
340H
33CH
338H
334H
330H
32CH
328H
324H
320H
31CH
318H
314H
310H
30CH
308H
304H
300H
2FCH
2F8H
2F4H
2F0H
2ECH
2E8H
2E4H
2E0H
2DCH
2D8H
2D4H
2D0H
2CCH
2C8H
2C4H
2C0H
2BCH
|
000H
2
フリーランタイマ 0/1
フリーランタイマ 2/3
インプットキャプチャ 0/1/2/3
インプットキャプチャ 4/5
アウトプットコンペア 0/1/2/3 / UDC3
アウトプットコンペア 4/5/6/7
アップダウンカウンタ 0
外部割込み 8 ∼外部割込み 11
外部割込み 12 ∼外部割込み 39
ROM コレクション割込み
DMA
遅延割込み要因ビット
システム予約 (REALOS にて使用 )
システム予約 (REALOS にて使用 )
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
システム予約
INT 命令で使用
222
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
第 7 章 割込みコントローラ
■ 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" にクリアしてください。
<注意事項>
本シリーズでは NMI はサポートされていません。
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド
リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ
要求発生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル > 優先度判定後の割込みレベル
→取下げ要求発生
HRCL レジスタの割込みレベル ≦ 優先度判定後の割込みレベル
→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている
ため , 取下げ要求が有効になっています。
223
第 7 章 割込みコントローラ
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に 10000B から 11111B までです。
11111B に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
10000B に設定した場合は NMI でのみ取下げ要求を発生することになります。
表 7.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
表 7.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, 17
∼
NMI のみ
∼
16
31
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが 11111 以外 ) が 1 つでも発
生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。
<注意事項>
• NMI 要求においてもストップモードからの復帰を行います。ただし , ストップ時に有効
な入力を検出するように NMI の設定を行ってください。
• ストップおよびスリープからの復帰の要因としない割込み要因は , 対応する周辺の制
御レジスタにて割込みレベルを 11111B にしてください。
• 本シリーズでは NMI はサポートされていません。(5) 割込み要因の解除 割込みルー
チンにおける , 割込み要因解除のための命令と RETI 命令の間には制限があります。詳細
は , CPU の項を参照してください。
224
第 7 章 割込みコントローラ
■ ホールドリクエスト取下げ要求機能 (HRCR) の使用例
DMA 転送中に , CPU が優先度の高い処理を行うときは , DMA に対してホールドリク
エストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込みを
利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を実
現します。
● 制御レジスタ
1. HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 本モジュール:
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
2. ICR: 本モジュール:
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
● ハードウェア構成
図 7.3-1 に , ホールドリクエストの各信号の流れを示します。
図 7.3-1 ホールドリクエストの各信号の流れ
本モジュール
IRQ
バスアクセス要求
MHALTI
DHREQ
DMA
I-ユニット
(ICR)
(HRCL)
CPU
B-ユニット
DHREQ :Dバスホールドリクエスト
DHACK :Dバスホールドアクノリッジ
IRQ
:割込み要求
MHALTI:ホールドリクエスト取下げ要求
DHACK
● シーケンス
図 7.3-2 に , HRCL レジスタに設定したレベルより強い場合の INTC-2 割込みレベルを
示します。
図 7.3-2 割込みレベル HRCL < ICR (LEVEL)
RUN
バスホールド
割込み処理
バスホールド(DMA転送)
CPU
割込みルーチンの例
バスアクセス要求
①割込み要因クリア
DHREQ
DHACK
②RETI
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を下げ , CPU はホールド状態から復帰して割込み処理を行います。
225
第 7 章 割込みコントローラ
図 7.3-3 に , 多重割込みの場合の INTC-2 割込みレベルを示します。
図 7.3-3 INTC-3 割込みレベル HRCL < ICR( 割込みⅠ )< ICR( 割込みⅡ )
CPU
RUN
バスホールド 割込みI
割込み処理II
割込み処理I
バスホールド(DMA転送)
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
〔割込みルーチンの例〕
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生
した場合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ は下がっています。
<注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
226
第8章
外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能 ,
および動作について説明します。
8.1 外部割込み制御部の概要
8.2 外部割込み制御部のレジスタ
8.3 外部割込み制御部の動作説明
227
第 8 章 外部割込み制御部
外部割込み制御部の概要
8.1
外部割込み制御部は , INT 端子に入力される外部割込み要求の制御を行うブロックで
す。
検出する要求のレベルとして , 以下の 4 種類から選択できます。
• "H" レベル
• "L" レベル
• 立上りエッジ
• 立下りエッジ
■ 外部割込み制御部のレジスタ一覧
外部割込み制御部のレジスタ一覧は以下のとおりです。
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
外部割込み要因レジスタ
(EIRR)
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
要求レベル設定レジスタ
(ELVR)
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
外部割込み許可レジスタ
(ENIR)
■ 外部割込み制御部のブロックダイヤグラム
図 8.1-1 に , 外部割込み制御部のブロックダイヤグラムを示します。
図 8.1-1 外部割込み制御部のブロックダイヤグラム
R-bus
8
割込み
要求
割込み許可レジスタ
17
8
16
228
ゲート
要因F/F
割込み要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
17
INT15~INT0
第 8 章 外部割込み制御部
8.2
外部割込み制御部のレジスタ
外部割込み制御部のレジスタ構成および機能について説明します。
■ 外部割込み制御部のレジスタ詳細
外部割込み制御部のレジスタには , 以下の 3 種類があります。
• 割込み許可レジスタ (ENIR)
• 外部割込み要因レジスタ (EIRR)
• 外部割込み要求レベル設定レジスタ (ELVR)
229
第 8 章 外部割込み制御部
割込み許可レジスタ (ENIR)
8.2.1
ENIR は外部割込み要求出力のマスク制御を行います。
■ 割込み許可レジスタ (ENIR) のビット構成
割込み許可レジスタのビット構成は , 以下のとおりです。
ENIR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
EN7
R/W
EN6
R/W
EN5
R/W
EN4
R/W
EN3
R/W
EN2
R/W
EN1
R/W
EN0
R/W
00000000B
R/W :リード / ライト可能
このレジスタの "1" を書かれたビットに対応する割込み要求出力は許可され (INT0 の
許可を EN0 が制御 ) , 割込みコントローラに対して要求が出力されます。"0" が書かれ
たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して
は要求を発生しません。
外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要因ビット (EIRR:ER)
をクリアしてください。
ストップモードでは , 外部割込みが許可されているとき (ENIR:EN=1) に入力可能とな
ります。これ以外の設定の場合は , 入力がマスクされ , "L" レベルが内部に伝わります。
<注意事項>
外部割込みを許可 (ENIR:EN1) する直前に , 対応する外部割込み要因フラグビット
(EIRR:ER) をクリアしてください。
230
第 8 章 外部割込み制御部
外部割込み要因レジスタ (EIRR)
8.2.2
EIRR は読出し時には対応する外部割込み要求があることを示し , 書込み時にはこの
要求を示すフリップフロップ内容をクリアするレジスタです。
■ 外部割込み要因レジスタ (EIRR) のビット構成
外部割込み要因レジスタのビット構成は , 以下のとおりです。
EIRR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
この EIRR レジスタを読み出したとき , その値によって動作が以下のようになります。
"1" であった場合に , そのビットに対応する端子に外部割込み要求があることを示しま
す。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。
"1" の書込みは無効です。
リードモディファイライトの読出し時には "1" が読まれます。
• 外部割込み要因ビット(EIRR:ER)の値は, 対応する外部割込み許可ビット(ENIR: EN)
が "1" に設定されている時のみ有効です。外部割込みが許可されていない状態
(ENIR:EN=0) では , 外部割込み要因の有無に関わらず外部割込み要因ビットがセッ
トされる可能性があります。
• 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する外部割込み要因ビット (EIRR:
ER) をクリアしてください。
<注意事項>
• 外部割込み要因フラグビット (EIRR:ER) の値は , 対応する外部割込み要求許可ビット
(ENIR:EN) が "1" に設定されている時のみ有効です。外部割込みが許可されていない状
態 (ENIR: EN=0) では , 外部割込み要因の有無にかかわらず外部要求フラグビットが
セットされる可能性があります。
• 外部割込みを許可(ENIR:EN1)する直前に,対応する外部割込み要因フラグビット(EIRR:ER)
をクリアしてください。
231
第 8 章 外部割込み制御部
8.2.3
外部割込み要求レベル設定レジスタ (ELVR)
ELVR は要求検出の選択を行うレジスタです。
■ 外部割込み要求レベル設定レジスタ (ELVR) のビット構成
外部割込み要求レベル設定レジスタのビット構成は , 以下のとおりです。
ELVR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
各割込みチャネルに 2 ビットずつが割り当てられていて , 以下のような設定になりま
す。
要求入力がレベルの場合 , EIRR の各ビットをクリアしても入力がアクティブレベルな
らば該当するビットは再びセットされます。
表 8.2-1 に , ELVR 割当てを示します。
表 8.2-1 ELVR 割当て
動 作
LBx LAx
00
"L" レベルで要求あり [ 初期値 ]
01
"H" レベルで要求あり
10
立上りエッジで要求あり
11
立下りエッジで要求あり
ストップモードでの使用は , ストップモードで入力可能な端子でのみ使用可能です。ス
トップモード時に入力遮断される端子は , 入力がマスクされ , CMOS/Automotive 選択時
は "L" レベルが , TTL 選択時は "H" レベルが内部に伝わるため , 外部割込み設定レジス
タ (ELVR) の設定によっては外部割込み要因レジスタ EIRR の ERn ビットが外部から
の入力に関係なく "1" にセットされることがあります。
232
第 8 章 外部割込み制御部
8.3
外部割込み制御部の動作説明
ここでは , 外部割込み制御部の動作について説明します。
■ 外部割込みの動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本
リソースからの割込みが最も優先順位が高かったときに , 該当する割込みが発生しま
す。
図 8.3-1 に , 外部割込みの動作を示します。
図 8.3-1 外部割込みの動作
CPU
割込みコントローラ
外部割込み
リソース 要求
ELVR
ENIR
IL
ICR y y
EIRR
CMP
CMP
ICR X X
ILM
要因
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3. 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。
4. 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。
5. 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアにする。
6. 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。
ただし , 5. と 6. は 16 ビットデータによる同時書込みが可能です。
本モジュール内のレジスタを設定するときには必ず許可レジスタをディセーブル状態
に設定する必要があります。また , 許可レジスタをイネーブル状態にする前に必ず要因
レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許可状態
時に誤って割込み要因が起こってしまうことを避けるためです。
233
第 8 章 外部割込み制御部
■ 外部割込み要求レベル
要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス幅は
最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要とします。
また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込み要因レ
ジスタ (ENIR) をクリアしても , 割込みコントローラへの割込み要求は発生し続けます。
要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後取り下げられ
ても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアクティブ
のままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要があり
ます。
図 8.3-2 にレベル設定時の要因保持回路のクリアについて示します。
図 8.3-2 レベル設定時の要因保持回路のクリア
割込み入力
レベル検出
要因 F/F
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 8.3-3 に , 割込み許可時の割込み要因と割込みコントローラへの割込み要求を示しま
す。
図 8.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
要因 F/Fのクリアによってinactiveとなる
234
第 8 章 外部割込み制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない
期間が存在します ( 図 8.3-4 の b + c + d 期間 )。STOP 解除後の外部入力信号を内部ク
ロックに同期させるため , クロックが安定していない期間内は , その割込み要因を保持
できないためです。
STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に外部割込み
信号を入力してください。
図 8.3-4 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
12µs
"H"
"L"
Regulator
内部動作(RUN)
命令実行(run)
X0
内部クロック
割込みフラグクリア
INTR0
INTE0
"1"(STOPモードに遷移前にイネーブルへ設定)
INTR1
INTE1
“1”(STOPモードに遷移前にイネーブルへ設定)
(a)STOP
(b) レギュレータ安定待ち時間
(d) 発振安定待ち時間
(e)RUN
(c)振動子の発振時間
235
第 8 章 外部割込み制御部
■ STOP 状態からの復帰動作
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。
● STOP 遷移前の処理
外部割込み経路の設定
デバイスが STOP 状態に遷移する前に STOP 状態を解除するための外部割込み入力
経路を設定しておく必要があります。これは PFR レジスタ (Port Function Register)
で設定を行います。通常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態
ですので意識する必要はありません。しかし , STOP 状態では PFR レジスタ値によ
り入力パスが制御されています。
外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み信号が有効になると直ちに内部 STOP 信号を立ち下
げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力の同
期化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ
へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前
に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間
を確保しています。この期間はクロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発
振時間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定
待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安
定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が
開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可
能になります。
236
第9章
REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムで使用することはでき
ません。
REALOS 関連ハードの遅延割込みモジュールと
ビットサーチモジュールについて , 概要 , レジスタ
の構成 / 機能 , および動作を説明します。
9.1 遅延割込みモジュール
9.2 ビットサーチモジュール
237
第 9 章 REALOS 関連ハード
9.1
遅延割込みモジュール
遅延割込みモジュールの概要 , レジスタの構成 / 機能 , および動作について説明しま
す。
■ 遅延割込みモジュールの概要
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールです。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 / 取
消しを行うことができます。
238
第 9 章 REALOS 関連ハード
9.1.1
遅延割込みモジュールの概要
遅延割込みモジュールのレジスタ一覧 , 詳細 , および動作について説明します。
■ 遅延割込みモジュールのレジスタ一覧
遅延割込みモジュールのレジスタ一覧は , 以下のとおりです。
DICR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
000044H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DLYI
R/W
R/W :リード / ライト可能
■ 遅延割込みモジュールのブロックダイヤグラム
図 9.1-1 に , 遅延割込みモジュールのブロックダイヤグラムを示します。
図 9.1-1 遅延割込みモジュールのブロックダイヤグラム
R-bus
DLYI
割込み要求
239
第 9 章 REALOS 関連ハード
9.1.2
遅延割込みモジュールのレジスタ
遅延割込みモジュールのレジスタの構成および機能について説明します。
■ DICR ( 遅延割込みモジュールレジスタ )
DICR は , 遅延割込みを制御するレジスタです。
遅延割込みモジュールレジスタ (DICR) のビット構成は , 以下のとおりです。
DICR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000044H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DLYI
-------0B
R/W
R/W :リード / ライト可能
[bit0] DLYI
DLYI
説明
0
遅延割込み要因の解除・要求なし [ 初期値 ]
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
240
第 9 章 REALOS 関連ハード
9.1.3
遅延割込みモジュールの動作説明
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用するこ
とにより , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことがで
きます。
■ 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを , 割込み番号 63(3FH) に割り当てています。
■ DICR の DLYI ビット
このビットに "1" を書き込むことで , 遅延割込み要因が発生します。また , "0" を書き
込むことで , 遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 合わせてタスクの切換えを行うようにしてください。
241
第 9 章 REALOS 関連ハード
9.2
ビットサーチモジュール
ビットサーチモジュールの概要 , レジスタの構成 / 機能 , および動作について説明し
ます。
■ ビットサーチモジュールの概要
ビットサーチモジュールは , 入力レジスタに書き込まれたデータに対して , "0" または
"1" または変化点を検索し , 検出したビット位置を返します。
242
第 9 章 REALOS 関連ハード
9.2.1
ビットサーチモジュールの概要
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ ビットサーチモジュールのレジスタ一覧
ビットサーチモジュールのレジスタ一覧は , 以下のとおりです。
bit31
bit0
アドレス:0003F0H
BSD0
0 検出用データレジスタ
アドレス:0003F4H
BSD1
1 検出用データレジスタ
アドレス:0003F8H
BSDC
変化点検用データレジスタ
アドレス:0003FCH
BSRR
検出結果レジスタ
■ ビットサーチモジュールのブロックダイヤグラム
図 9.2-1 に , ビットサーチモジュールのブロックダイヤグラムを示します。
図 9.2-1 ビットサーチモジュールのブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
243
第 9 章 REALOS 関連ハード
9.2.2
ビットサーチモジュールのレジスタ
ビットサーチモジュールのレジスタの構成および機能について説明します。
■ 0 検出用データレジスタ (BSD0)
書き込んだ値に対して , 0 検出を行います。
0 検出用データレジスタ (BSD0) のレジスタ構成は , 以下のとおりです。
アドレス
bit31
bit0
0003F0H
リード / ライト → W
初期値
→不定
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
■ 1 検出用データレジスタ (BSD1)
1 検出用データレジスタ (BSD1) のレジスタ構成は , 以下のとおりです。
アドレス
bit31
bit0
0003F4H
リード / ライト → R/W
初期値
→不定
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
• 書込み時:
書き込んだ値に対して , "1" を検出します。
• 読出し時:
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避・復帰できます。
リセットによる初期値は不定です。
244
第 9 章 REALOS 関連ハード
■ 変化点検出用データレジスタ (BSDC)
書き込んだ値に対して , 変化点の検出を行います。
変化点検出用データレジスタ (BSDC) のレジスタ構成は , 以下のとおりです。
アドレス
bit31
bit0
0003F8H
リード / ライト → W
初期値
→不定
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください (8 ビット , 16 ビッ
ト長のデータ転送命令は , 使わないでください ) 。
■ 検出結果レジスタ (BSRR)
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
検出結果レジスタ (BSRR) のレジスタ構成は , 以下のとおりです。
アドレス
bit31
bit0
0003FCH
リード / ライト → R
初期値
→不定
245
第 9 章 REALOS 関連ハード
9.2.3
ビットサーチモジュールの動作説明
ビットサーチモジュールの動作について説明します。
■ 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と , 返す数
値の関係は , 表 9.2-1 を参照してください。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ) , 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H)
→ 20
11111000010010011110000010101010B (F849E0AAH)
→ 5
10000000000000101010101010101010B (8002AAAAH)
→ 1
11111111111111111111111111111111B (FFFFFFFFH)
→ 32
■ 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。検出した位置と返す値と
の関係は , 表 9.2-1 のとおりです。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ) , 32 という値をサーチ
結果として返します。
【実行例】
書込みデータ
246
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→ 2
00000001001000110100010101100111B (01234567H)
→ 7
00000000000000111111111111111111B (0003FFFFH)
→ 14
00000000000000000000000000000001B (00000001H)
→ 31
00000000000000000000000000000000B (00000000H)
→ 32
第 9 章 REALOS 関連ハード
■ 変化点検出
変化点検出用データレジスタに書き込まれたデータを , bit30 から LSB へスキャンし ,
MSB の値と比較します。
最初に MSB と異なる値を検出した位置を返します。検出結果は , 検出結果レジスタを
読み出すことで得られます。
検出した位置と返す値は , 表 9.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
表 9.2-1 に , ビット位置と返す値 (10 進 ) を示します。
表 9.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
247
第 9 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中で , ビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
1. 1 検出用データレジスタを読出し , この内容を保存 ( 退避 )
2. ビットサーチモジュールを使用
3. 1) で退避したデータを 1 検出用データレジスタに書込み ( 復帰 )
以上の操作により , 次に検出結果レジスタを読み出したときに得られる値は , 1) 以前に ,
ビットサーチモジュールに書き込まれた内容に応じたものとなります。
最後に書き込まれたデータレジスタが 0 検出用または変化点検出用であっても , 上記の
手順で正しく元に戻ります。
248
第 10 章
DMAC
(DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能 , および
DMAC の動作について説明します。
10.1 概要
10.2 レジスタ詳細説明
10.3 動作説明
10.4 動作フロー
10.5 データパス
249
第 10 章 DMAC (DMA コントローラ )
10.1
概要
本モジュールは , FR ファミリにて DMA(Direct Memory Access) 転送を実現するた
めのモジュールです。
本モジュールの制御による DMA 転送により , CPU を介さずに各種データ転送を高
速に行うことが可能となり , システムのパフォーマンスを増加させます。
■ DMAC のハードウェア構成
本モジュールは , 主に以下のものより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 20 ビットアドレスレジスタ ( リロード指定可 : ch.0 ∼ ch.3)
• 24 ビットアドレスレジスタ ( リロード指定可 : ch.4)
• 16 ビット転送回数レジスタ ( リロード指定可 : 各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 2 サイクル転送
■ DMAC の主要機能
本モジュールによるデータ転送には , 主に以下のような機能があります。
● 複数チャネルの独立したデータ転送が可能 (5 チャネル )
• 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
• ch.0, ch.1 間にて順位回転が可能
• DMAC 起動要因
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード:20 ビット (24 ビット ) アドレス指定
( 増加 / 減少 / 固定:アドレス増減幅は± 1, 2, 4 固定 )
- データの種類:バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
250
第 10 章 DMAC (DMA コントローラ )
■ DMAC のレジスタ概要
図 10.1-1 に , DMAC のレジスタ概要を示します。
図 10.1-1 DMAC のレジスタ概要
ch.0 コントロール / ステータス レジスタ A
RST 時 アドレス bit 31
DMACA0
000200H
ch.0 コントロール / ステータス レジスタ B
DMACB0
000204H
00000000
[R/W]
ch.1 コントロール / ステータス レジスタ A
DMACA1
000208H
00000000
[R/W]
ch.1 コントロール / ステータス レジスタ B
DMACB1
00020CH
00000000
[R/W]
ch.2 コントロール / ステータス レジスタ A
DMACA2
000210H
00000000
[R/W]
ch.2 コントロール / ステータス レジスタ B
DMACB2
000214H
00000000
[R/W]
ch.3 コントロール / ステータス レジスタ A
DMACA3
000218H
00000000
[R/W]
ch.3 コントロール / ステータス レジスタ B
DMACB3
00021CH
00000000
[R/W]
ch.4 コントロール / ステータス レジスタ A
DMACA4
000220H
00000000
[R/W]
ch.4 コントロール / ステータス レジスタ B
DMACB4
000224H
00000000
[R/W]
全体制御レジスタ A
DMACR
000240H
00000000
[R/W]
ch.0
DMASA0
001000H
00000000
転送元アドレスレジスタ
24 23
16 15
8 7
0
00000000
[R/W]
[R/W]
ch.0
転送元アドレスレジスタ
DMADA0
001004H
00000000
[R/W]
ch.1
転送元アドレスレジスタ
DMASA1
001008H
00000000
[R/W]
ch.1
転送元アドレスレジスタ
DMADA1
00100CH
00000000
[R/W]
ch.2
転送元アドレスレジスタ
DMASA2
001010H
00000000
[R/W]
ch.2
転送元アドレスレジスタ
DMADA2
001014H
00000000
[R/W]
ch.3
転送元アドレスレジスタ
DMASA3
001018H
00000000
[R/W]
ch.3
転送元アドレスレジスタ
DMADA3
00101CH
00000000
[R/W]
ch.4
転送元アドレスレジスタ
DMASA4
001020H
00000000
[R/W]
ch.4
転送元アドレスレジスタ
DMADA4
001024H
00000000
[R/W]
251
第 10 章 DMAC (DMA コントローラ )
■ DMAC のブロックダイヤグラム
図 10.1-2 に , DMAC のブロックダイヤグラムを示します。
図 10.1-2 DMAC のブロックダイヤグラム
セレクタ
ライトバック
カウンタ
バスコントローラヘ
DMA転送要求
DTC2段レジスタ
DTCR
バッファ
DMA起動要因
選択回路
&
要求受付け
制御
ペリフェラル起動要求/停止入力
カウンタ
DSS[3:0]
バッファ
Read
Write
リード/ライト
制御
優先度回路
割込みコントローラへ
IRQ[4:0]
周辺割込みクリア
MCLREQ
ERIR,EDIR
セレクタ
BLKレジスタ
TYPE.MOD,WS
252
DSAD2段レジスタ
SADM, SASZ[7:0] SADR
DDAD2段レジスタ
DADM,DASZ[7:0] DADR
ライトバック
ライトバック
X-bus
バス制御部
DMAコントロール
セレクタ
カウンタバッファ
DDN0レジスタ
セレクタ
アドレス
カウンタバッファ
アクセス
アドレスカウンタ
DDNO
バス制御部
バスコン
トローラ
ヘ
セレクタ
状態遷移回路
第 10 章 DMAC (DMA コントローラ )
10.2
レジスタ詳細説明
ここでは , DMAC の各レジスタの詳細について説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
* マークは DMA 転送中に設定すると動作に影響するビットです。このビットの書換え
は DMA 転送停止中 ( 起動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定が有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000 または DMACA:PAUS=1 のと
き ) で設定した場合は , 一時停止解除後に設定が有効になります。
253
第 10 章 DMAC (DMA コントローラ )
10.2.1
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4
コントロール / ステータスレジスタ A
DMACA0 ∼ DMACA4 は DMAC 各チャネルの動作制御を行うレジスタで , チャネル
ごとに独立して存在します。
■ DMACA0 ∼ DMACA4 のビット機能
DMACA0 ∼ DMACA4 の各ビット機能は , 以下に示すとおりです。
bit
31
30
29
28
27
DENB PAUS STRG
bit
15
14
13
26
25
24
23
IS[4:0]
11
11
10
22
21
20
19
reserved
9
8
7
6
5
18
17
16
BLK[3:0]
4
3
2
1
0
DTC[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
[bit31] DENB(Dma ENaBle):DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま
す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな
ります。
起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは "0" になり ,
転送は停止します。
本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [DMACA:bit30]
で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止
しないで強制停止した場合は DMA は停止しますが転送データは保証されません。
停止の確認は DSS2 ∼ DSS0 ビット (bit18 ∼ bit16:DMACB) で行ってください。
DENB
機 能
0
対応チャネル DMA 動作禁止 [ 初期値 ]
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合 :"0" に初期化されます。
• 読出しおよび書込みが可能です。
DMAC 全体制御レジスタ DMACR の bit31:DMAE ビットにより , 全チャネルの動作
が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維持しま
す。また , 本ビットにより動作が許可されている状態にて前記ビットにより動作が
禁止された場合 , 本ビットは "0" となり転送は中断します ( 強制停止 ) 。
254
第 10 章 DMAC (DMA コントローラ )
[bit30] PAUS(PAUSe):一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は , DMA 転送を行いません (DMA が停
止中は DSS ビットが "1xx" になります ) 。
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません (「10.3.10 転送要求の受付けと転
送」を参照 ) 。
PAUS
機 能
0
対応チャネル DMA 動作許可 [ 初期値 ]
1
対応チャネル DMA 一時停止
• リセット時 :"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit29] STRG(Software TRiGger):転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。
ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と
なります。
<参考>
DMAEビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合, 転送要求
は有効となり , 転送を開始します。
また , PAUS ビットへの "1" 書込みと同時である場合 , 転
送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。
STRG
機 能
0
無効 [ 初期値 ]
1
DMA 起動要求
• リセット時 :"0" に初期化されます。
• 読出し値は常に "0" となります。
• 書込み値は "1" のみ有効で ,"0" は動作に影響を与えません。
255
第 10 章 DMAC (DMA コントローラ )
[bit28 ∼ bit24] IS4 ∼ 0(Input Select):転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ
トウェア転送要求は本設定に関わらず有効となります。
IS
機 能
00000
ハードウェア
00001
↓
01111
設定禁止
↓
設定禁止
10000
LIN-UART0 ( 受信完了 )
10001
LIN-UART1 ( 受信完了 )
10010
LIN-UART2 ( 受信完了 )
10011
LIN-UART0 ( 送信完了 )
10100
LIN-UART1 ( 送信完了 )
10101
LIN-UART2 ( 送信完了 )
10110
外部割込み 0
10111
外部割込み 1
11000
リロードタイマ 0
11001
リロードタイマ 1
11010
リロードタイマ 2
11011
なし
11100
なし
11101
なし
11110
A/D コンバータ
11111
なし
• リセット時 :00000B に初期化されます。
• 読出しおよび書込みが可能です。
周辺機能の割込みによるDMA起動を設定した場合(IS=1xxxxB),選択した機能はICR
レジスタで割込みを禁止状態にしてください。
また , 周辺機能の割込みによる DMA 起動を設定した状態で , ソフトウェア転送要求
により DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行
います。このため , 本来の転送要求をクリアしてしまう可能性がありますので , 周
辺機能の割込みによる DMA 転送を設定した状態では , ソフトウェア転送要求によ
る起動を行わないでください。
256
第 10 章 DMAC (DMA コントローラ )
[bit23 ∼ bit20] (Reserved):未使用ビット
読出し値は "0000B" 固定です。書込みは無効となります。
[bit19 ∼ bit16] BLK3 ∼ BLK0(BLocK size):ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。本ビットに設
定した値が 1 回の転送単位におけるワード数 ( 正確には , データ幅設定の繰り返し
回数 ) となります。
ブロック転送を行わない場合は 01H ( サイズ 1) を設定してください。
BLK
XXXX
機 能
対応チャネルのブロックサイズ指定
• リセット時 :"0000B" に初期化されます。
• 読出しおよび書込みが可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit0] DTC(Dma Terminal Count register):転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC
XXXX
機 能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 ) 。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。そのため DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時 : "00000000_00000000B" に初期化されます。
• 読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長または
ワード長にてアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
257
第 10 章 DMAC (DMA コントローラ )
10.2.2
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4
コントロール / ステータスレジスタ B
DMACB0 ∼ DMACB4 は , DMAC 各チャネルの動作制御を行うレジスタで , チャネ
ルごとに独立して存在します。
■ DMACB0 ∼ DMACB4 のビット機能
DMACB0 ∼ DMACB4 の各ビット機能は , 以下に示すとおりです。
bit
bit
31
30
29
28
TYPE[1:0]
MOD[1:0]
15
13
14
11
27
26
WS[1:0]
11
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_00000000_00000000B)
[bit31, bit30] TYPE(TYPE):転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード:
転送元アドレス (DMASA) と転送先アドレス (DMADA) を設定して読出し動作と書
込み動作を転送回数分繰り返して転送するモード。
TYPE
機 能
00
2 サイクル 転送 [ 初期値 ]
01
設定禁止
10
設定禁止
11
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出しおよび書込みが可能です。
• 必ず "00B" に設定してください。
[bit29, bit28] MOD(MODe):転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機 能
00
ブロック / ステップ転送モード [ 初期値 ]
01
バースト転送モード
10
設定禁止
11
設定禁止
• リセット時 : "00B" 初期化されます。
• 読出しおよび書込みが可能です。
258
第 10 章 DMAC (DMA コントローラ )
[bit27, bit26] WS(Word Size):転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機 能
00
バイト単位で転送 [ 初期値 ]
01
ハーフワード単位で転送
10
ワード幅単位で転送
11
設定禁止
• リセット時 : "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit25] SADM(Source-ADdr, count-Mode select)
:転送元アドレスカウントモード指定
対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) にしたがって ,
1 転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMASA) に書き込まれます。
そのため , DMA 転送が終了されるまで転送元アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
機 能
0
転送元アドレスは増加します。[ 初期値 ]
1
転送元アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit24] DADM(Destination-ADdr, Count-Mode select)
:転送先アドレスカウントモード指定
対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
そのため , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
259
第 10 章 DMAC (DMA コントローラ )
DADM
機 能
0
転送先アドレスは増加します。[ 初期値 ]
1
転送先アドレスは減少します。
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit23] DTCR(DTC-reg, Reload):転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG または , IS 設定による起動要求 ) 待
ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません ) 。
DENB=0, または DMAE=0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 DENB ビットはクリアされます。
DTCR
機 能
0
転送回数レジスタリロードを禁止 [ 初期値 ]
1
転送回数レジスタリロードを許可
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit22] SADR(Source-ADdr.-reg, Reload)
:転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります ) 。
SADR
機 能
0
転送元アドレスレジスタリロード禁止 [ 初期値 ]
1
転送元アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
260
第 10 章 DMAC (DMA コントローラ )
[bit21] DADR(Dest.-ADdr.-reg, Reload)
:転送先アドレスレジスタリロード指定
対応するチャネルの転送先アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送先アドレス
レジスタ値を初期設定値に戻します。
その他 , 機能の詳細は bit22:SADR の内容と等価になります。
DADR
機 能
0
転送先アドレスレジスタリロード禁止 [ 初期値 ]
1
転送先アドレスレジスタリロード許可
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit20] ERIE(ERror Interrupt Enable):エラー割込み出力許可
エラー発生による終了時の割込み発生を制御します。発生したエラーの内容は DSS2 ∼
DSS0 にて示されます。すべての終了要因で本割込みが発生するのではなく , 特定の
終了要因の際のみ割込みが発生することに注意してください (DSS2 ∼ DSS0 ビット
の説明を参照してください ) 。
ERIE
機 能
0
エラー割込み要求出力禁止 [ 初期値 ]
1
エラー割込み要求出力許可
• リセット時 :"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit19] EDIE(EnD Interrupt Enable):終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機 能
0
終了割込み要求出力禁止 [ 初期値 ]
1
終了割込み要求出力許可
• リセット時 : "0" に初期化されます。
• 読出しおよび書込みが可能です。
261
第 10 章 DMAC (DMA コントローラ )
[bit18 ∼ bit16] DSS2 ∼ DSS0(Dma Stop Status):転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。
終了コードの内容は以下のとおりです。
DSS
機 能
割込み発生
000
初期値
なし
x01
―
なし
x10
転送停止要求
エラー
x11
正常終了
終了
1xx
DMA 一時停止中 (DMAH ビット , PAUS ビット , 割込み
など )
なし
転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。
なお「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 : "000B" に初期化されます。
• "000B" を書き込むことによりクリアされます。
• 読出しおよび書込みが可能ですが , 本ビットへの書込みは "000B" のみ有効となり
ます。
[bit15 ∼ bit8] SASZ(Source Addr count SiZe)
:転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
機 能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出しおよび書込みが可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
262
第 10 章 DMAC (DMA コントローラ )
[bit7 ∼ bit0] DASZ(Des Addr count SiZe): 転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が 1 回の転送単位におけるアドレス増減幅となります。アド
レスの増減幅は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
機 能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時 : "00000000B" に初期化されます。
• 読出しおよび書込みが可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
263
第 10 章 DMAC (DMA コントローラ )
10.2.3
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4
転送元 / 転送先アドレス設定レジスタ
DMASA0 ∼ DMASA4/DMADA0 ∼ DMASA4 は , DMAC 各チャネルの動作制御を行
うレジスタで , チャネルごとに独立して存在します。
■ DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4 のビット機能
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
DMASA[31:16]
bit
15
14
13
11
11
10
9
8
7
DMASA[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMADA[31:16]
bit
15
14
13
11
11
10
9
8
7
DMADA[15:0]
( 初期値:00000000_00000000_00000000_00000000B)
転送元 / 先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24
ビット長で構成されています。
[bit31 ∼ bit0] DMASA(DMA Source Addr):転送元アドレス設定
転送元アドレスの設定を行います。
[bit31 ∼ bit0] DMADA(DMA Destination Addr):転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに DMACA レジスタの設定に従いアドレスカウ
ントします。DMA の転送終了時にカウンタバッファの内容を本レジスタにライト
バックして DMA は終了します。そのため DMA 動作中のアドレスカウンタ値を読
み出すことはできません。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 先アドレ
スレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に自動
的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには影響
を与えません。
• リセット時 : "00000000_00000000_00000000_00000000B" に初期化されます。
• 読出しおよび書込みが可能です。本レジスタは , 必ず 32 ビットデータでアクセ
スしてください。
264
第 10 章 DMAC (DMA コントローラ )
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。そのため転送アドレス
をリアルタイムで読み出すことはできません。
• 存在しない上位ビットには , "0" を設定してください。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
265
第 10 章 DMAC (DMA コントローラ )
10.2.4
DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御
レジスタ
DMACR は , DMAC5 チャネル分全体の動作制御を行うレジスタです。本レジスタは
必ずバイト長でアクセスしてください。
■ DMACR のビット機能
DMACR の各ビット機能は , 以下に示すとおりです。
bit
bit
31
29
28
−
−
PMO1
15
14
13
11
11
10
9
−
−
−
−
−
−
−
DMAE
30
27
26
25
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" に初期化されます。
• 読出しおよび書込みが可能です。
266
第 10 章 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] DMAH(DMA Halt):DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと
なります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送
を開始します。
DMAH
0000
0000 以外
機 能
全チャネル DMA 動作許可 [ 初期値 ]
全チャネル DMA 一時停止
• リセット時 : "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit30, bit29, bit23 ∼ bit0] Reserved:未使用ビット
読出し値は不定です。
267
第 10 章 DMAC (DMA コントローラ )
10.3
動作説明
DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など
について説明します。
■ DMAC の概要
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー
タ転送を制御する多機能 DMA コントローラです。
268
第 10 章 DMAC (DMA コントローラ )
10.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 つの単位として動作を行い
ます。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへデー
タを書き込みます。
269
第 10 章 DMAC (DMA コントローラ )
■ 転送アドレス
アドレッシングには以下のようなものがあり , 各チャネル転送元 / 転送先ごとに独立に
設定します。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値を
アドレスとしてアクセスします。
転送要求を受け付けた後 , DMA はレジスタからアドレスを一時記憶バッファに格納し
て転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次回のアクセスアドレスを生成
( 加算 / 減算 / 固定選択可 ) して , 一時記憶バッファに戻します。この一時記憶バッファ
の内容は 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライトバック
されます。
そのためアドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにしか更
新されませんので転送中のアドレスをリアルタイムに知ることはできません。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント ( − 1) します。転送
回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して停止また
は再起動 (1) します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更新
されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可されて
いる場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には , 以下のようなものがあり , 終了時は終了コードとして要因が表示さ
れます (DMACB:DSS2 ∼ DSS0)。
• 指定転送回数の終了 (DMACA:BLK3 ∼ BLK0 × DMACA:DTC15 ∼ DTC0) →正常終了
• 周辺回路からの転送停止要求の発生→エラー
• アドレスエラーの発生→エラー
• リセットの発生→リセット
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込みを
発生可能です。
270
第 10 章 DMAC (DMA コントローラ )
転送要求の設定
10.3.2
DMA 転送を起動する転送要求は , 以下の 2 種類があります。
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが
できます。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS4 ∼ IS0=1xxxxB)。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ ) 。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより , 転送要求を発生します (DMACA:STRG)。
上記の転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントローラに
対し DMA 転送要求を出力し , 転送を開始します。
271
第 10 章 DMAC (DMA コントローラ )
10.3.3
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転
送モードを独立して設定することができます (DMACB:TYPE1, TYPE0, MOD1,
MOD0 の設定 ) 。
■ 転送シーケンスの選択
レジスタの設定により , 以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転
送元 / 転送先アドレスは 20 ビット領域 (ch.0 ∼ ch.3) または 24 ビット領域 (ch.4) 指定可
能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。
表 10.3-1 にバースト 2 サイクル転送の指定可能転送アドレスを示します。
表 10.3-1 バースト 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
20(24) ビット全領域指定可能
→
20(24) ビット全領域指定可能
〔バースト転送の特徴〕
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送を
行います。転送回数はブロックサイズ分×転送回数分になります (DMACA: BLK3 ∼
BLK0 × DMACA:DTC15 ∼ DTC0)。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合 , 転送終了後より次の転送要求
を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , ブロック転
送単位の境目でチャネルを切り換え , そのチャネルの転送要求がクリアされるまで
復帰しません。
272
第 10 章 DMAC (DMA コントローラ )
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは 20 ビット領域 (ch.0 ∼ ch.3) または 24 ビット領域 (ch.4)
指定可能です。
表 10.3-2にステップ/ブロック転送2サイクル転送の指定可能転送アドレスを示します。
表 10.3-2 ステップ / ブロック転送 2 サイクル転送の指定可能転送アドレス
転送元アドレス指定
方向
転送先アドレス指定
20(24) ビット全領域指定可能
→
20(24) ビット全領域指定可能
■ ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
〔ステップ転送の特徴〕
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転送を
停止します ( バスコントローラに対し DMA 転送要求を取り下げる ) 。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合 , 転送停止後
に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優先順
位は , 転送要求が同時に発生した場合のみ意味を持ちます。
■ ブロック転送
ブロックサイズを "1" 以外を設定すると , ブロック転送シーケンスとなります。
[ ブロック転送の特徴 ]
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ステッ
プ転送と全く同じ動作となります。
273
第 10 章 DMAC (DMA コントローラ )
10.3.4
DMA 転送全般
DMA の転送動作について説明します。
■ ブロックサイズ
転送データの 1 転送単位はブロックサイズ指定レジスタに設定した数 ( ×データ幅 ) の
データの集合となります。
1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転送
単位はブロックサイズ指定値分の転送サイクル数より構成されることになります。
転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時停止
要求が発生した場合において, ブロック転送時においても1転送単位の境界にならない
と停止しません。これにより分割・一時停止を希望しないデータブロックのデータ保
護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させる原因ともな
ります。
リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは保
証されません。
■ リロード動作
本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。
(1) 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して転送要
求待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が 0 のままと
なり , 以降の転送は行われません。
(2) 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま
す。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が
終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
(3) 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま
す。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
( 以下 (2) と同じ )
転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了後の
再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
〔動作モードとリロード動作の特殊な例〕
バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると
リロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を行い
ません。
274
第 10 章 DMAC (DMA コントローラ )
アドレッシングモード
10.3.5
各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。
ここでは , その指定方法について説明します。転送シーケンスによって設定してく
ださい。
■ アドレスレジスタ指定
2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アドレ
スを,転送先アドレス設定レジスタ(DMADA)には転送先アドレスを設定してください。
〔アドレスレジスタの特徴〕
• 20 ビット (ch.0 ∼ ch.3) または 24 ビット (ch.4) 長のレジスタです。
〔アドレスレジスタの機能〕
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ , 計算結果の
アドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に , 加算 / 減算の内より
選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ値によりま
す (DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最終
アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
<参考>
20 ビットまたは 24 ビット長アドレス計算の結果オーバフロー / アンダフローが発生した
場合 , アドレスエラーとして検出され , そのチャネルの転送を中止します ( 終了コードに
関する項目を参照してください ) 。
<注意事項>
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
• DMAC により DMAC 自身のレジスタへの転送は行わないでください。
275
第 10 章 DMAC (DMA コントローラ )
10.3.6
データの種類
1 回の転送で転送されるデータ長 ( データ幅 ) は , 以下から選択します。
• バイト
• ハーフワード
• ワード
■ アクセスアドレス
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と一致しないアドレスが設定された場合 , 異なる下位ビット
は無視されます。
• ワード:
実際のアクセスアドレスは下位 2 ビットが "00B" から始まる 4 バイトとなります。
• ハーフワード:
実際のアクセスアドレスは下位 1 ビットが "0" から始まる 2 バイトとなります。
• バイト:
実際のアクセスアドレスとアドレス指定が一致します。
転送元アドレスと転送先アドレスの下位ビットが一致しない場合 , 内部アドレスバス
上には設定そのままのアドレスが出力されますが , バス上の各転送対象において , 上記
の決まりに従ってアドレスが修正されてアクセスが行われます。
276
第 10 章 DMAC (DMA コントローラ )
10.3.7
転送回数制御
転送回数は , 最大で 16 ビット長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回
数指定値は転送回数レジスタ (DMACA:DTC) に設定します。
■ 転送回数レジスタとリロード動作
レジスタ値は転送開始時に一時記憶バッファへ格納され , 転送回数カウンタにより減
算されます。このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され ,
そのチャネルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
〔転送回数レジスタ群の特徴〕
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
〔リロード動作〕
• リロード機能をもつレジスタで , リロード機能が許可されている場合にのみ有効で
す。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると共に ,
リロードレジスタより初期値を読み出し , 回数レジスタに書き込みます。
277
第 10 章 DMAC (DMA コントローラ )
10.3.8
CPU 制御
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 要求を有効にします。
278
第 10 章 DMAC (DMA コントローラ )
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用することができません。
• DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
279
第 10 章 DMAC (DMA コントローラ )
10.3.9
動作開始
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動
作を許可しておく必要があります。
■ 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。
許可されていない状態で行った起動設定 , および発生した転送要求はすべて無効とな
ります。
■ 転送起動
チャネルごとの制御レジスタにある動作許可ビットで , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送
動作が開始されます。
■ 一時停止状態からの起動
チャネルごとまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転
送動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場
合は , 要求を受け付け , 保持します。
一時停止を解除した時点より転送を開始します。
280
第 10 章 DMAC (DMA コントローラ )
10.3.10
転送要求の受付けと転送
転送要求の受付けと転送の内容を説明します。
■ 転送要求の受付けと転送
起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を続け
ますが , クリアされると 1 転送単位で転送を停止します ( 周辺割込み起動 ) 。
周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで行
うようにしてください。
転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に受け
付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネルを決定
しています。
281
第 10 章 DMAC (DMA コントローラ )
10.3.11
DMA による周辺割込みクリア
本 DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に
周辺割込みを選択したときに機能します (IS4 ∼ IS0=1xxxxB のとき )。
周辺割込みのクリアは設定された起動要因にのみ行われます。すなわち IS4 ∼ IS0
で設定された周辺機能のみクリアされます。
■ DMA による割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います (「10.4 動作フロー」を参照 ) 。
〔ブロック / ステップ転送〕
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号は発生し
ます。
〔バースト転送〕
バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発生
します。
282
第 10 章 DMAC (DMA コントローラ )
10.3.12
一時停止
DMA 転送が一時停止する場合について説明します。
■ 制御レジスタへの書込みによる一時停止の設定
( 各チャネル独立または全チャネル同時に設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると , 転送を再開します。
■ NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求は , その
まま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
283
第 10 章 DMAC (DMA コントローラ )
10.3.13
動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止
することも可能です。
■ 転送終了
リロード動作が有効でない場合, 転送回数レジスタが0になると転送を停止し, 終了コー
ドにて「正常終了」を表示した後 , 以降の転送要求は無効となります (DMACA:DENB
ビットをクリアする ) 。
リロード動作が有効である場合, 転送回数レジスタが0になると初期値をリロードし, 終
了コードにて「正常終了」を表示した後 , 再度転送要求待ちとなります (DMACA:DENB
ビットをクリアしない ) 。
■ 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは
一切発生しません。
284
第 10 章 DMAC (DMA コントローラ )
10.3.14
エラーによる停止
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー
発生による停止および強制停止があります。
■ 周辺回路よりの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例 : 通信系周辺における受信 / 送信エラーなど ) 。
この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し
て対応するチャネルの転送を停止します。
■ アドレスエラーの発生
各アドレッシングモードにて , 不適切なアドレッシングが行われたとき , アドレスエ
ラーとして検出されます。
「不適切なアドレッシング」とは , 例えば「20 ビットアドレ
ス指定時に , アドレスカウンタにてオーバ / アンダフローが発生した場合」です。
アドレスエラーを検出すると , 終了コードにて「アドレスエラーの発生」を表示して対
応するチャネルの転送を停止します。
285
第 10 章 DMAC (DMA コントローラ )
10.3.15
DMAC 割込み制御
DMAC 割込み制御は , 転送要求となる周辺割込みとは独立して DMAC のチャネルご
とに割込みを出力することが可能です。
■ DMAC 割込み制御が出力できる割込み
• 転送終了割込み :
正常終了した場合のみ発生する。
• エラー割込み :
周辺回路よりの転送停止要求 ( 周辺に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これら割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACB の DSS2 ∼ DSS0 ( 終了コード ) に "000B" を書き込む
ことにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んで
クリアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 ) 。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求
• 正常終了
• アドレスエラー検出による停止
• チャネル選択と制御
286
第 10 章 DMAC (DMA コントローラ )
10.3.16
スリープモード中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。
ここでは , スリープ状態のときの DMA 転送について説明します。
■ スリープモード中の DMA 転送の注意
スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
1. CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定は完了させておいてください。
2. スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込みを
選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に DMAC 終了割込みでスリープモードを解除したくない場合は割込みを禁止にし
てください。
287
第 10 章 DMAC (DMA コントローラ )
10.3.17
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。
各チャネルは基本的に各機能を独立に設定することが可能です。
■ チャネル間優先順位
DMA 転送は同時に 1 チャネルのみ可能なため , 各チャネル間には優先順位が設定され
ます。順位設定には , 固定 / 回転の 2 モードがありチャネルグループ ( 後述 ) ごとに選
択します。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサイ
ズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で , 転送チャネルが高
優 先度側に切り替わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
図 10.3-1 に固定モード時の DMA 転送を示します。
図 10.3-1 固定モード時の DMA 転送
ch.0 転送要求
ch.1 転送要求
バス動作
CPU
SA
転送ch
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 転送単位ごとにチャネルが切り替わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
図 10.3-2 に回転モード時の DMA 転送を示します。
図 10.3-2 回転モード時の DMA 転送
ch.0 転送要求
ch.1 転送要求
バス動作
転送ch
ch.0 転送終了
ch.1 転送終了
288
CPU
SA
ch.1
DA
SA
ch.0
DA
SA
ch.1
DA
SA
ch.0
DA
CPU
第 10 章 DMAC (DMA コントローラ )
■ チャネルグループ
優先順位の選択は , 以下の単位で設定します。
表 10.3-3 に , DMA 優先順位選択の設定を示します。
表 10.3-3 DMA 優先順位選択の設定
モード
優先度
固定
ch.0 > ch.1
回転
ch.0 > ch.1
↑↓
ch.0 < ch.1
備 考
初期状態は上側の順位です。
上側が転送されると反転します。
289
第 10 章 DMAC (DMA コントローラ )
10.4
動作フロー
図 10.4-1, 図 10.4-2 に , DMA 転送の動作フローを示します。
■ ブロック転送の動作フロー
図 10.4-1 ブロック転送
DMA停止
DENB=>0
DENB=1
リロード許可
起動要求待機
起動要求
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み起動要因選択時のみ
アドレス,転送回数,
ブロック数,ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA転送終了
ブロック転送
・すべての起動要因で起動できる(選択)
・すべての領域へのアクセスができる
・ブロック数の設定可能
・ブロック数終了で割込みクリア発行
・指定転送回数終了でDMA割込みを発行
290
DMA割込み発生
第 10 章 DMAC (DMA コントローラ )
■ バースト転送の動作フロー
図 10.4-2 バースト転送
DMA停止
DENB=>0
DENB=1
起動要求待機
リロード許可
初期化
アドレス,転送回数,
ブロック数ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,
ブロック数,ライトバック
割込みクリア
DMA転送終了
周辺割込み起動要因選択時のみ
割込みクリア発生
DMA割込み発生
バースト転送
・すべての起動要因で起動できる(選択)
・すべての領域へのアクセスができる
・ブロック数の設定可能
・指定転送回数終了で割込みクリア,DMA割込みを発行
291
第 10 章 DMAC (DMA コントローラ )
10.5
データパス
各転送時のデータの動作を示します。
■ 2 サイクル転送時のデータの動作
図 10.5-1 から図 10.5-6 に 2 サイクル転送時のデータの動作を示します。
図 10.5-1 外部領域→外部領域転送
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
外部領域=>外部領域 転送
F-bus
I/O
RAM
I/O
図 10.5-2 外部領域→内部 RAM 領域転送
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
外部領域=>内部RAM領域 転送
F-bus
I/O
RAM
I/O
図 10.5-3 外部領域→内蔵 I/O 領域転送
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
292
I/O
RAM
I/0
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
外部領域=>内蔵I/0領域 転送
第 10 章 DMAC (DMA コントローラ )
図 10.5-4 内蔵 I/O 領域→内蔵 RAM 領域転送
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
D-bus
X-bus
バスコントローラ
F-bus
RAM
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
内部I/O領域=>内蔵RAM領域 転送
F-bus
I/0
RAM
I/O
図 10.5-5 内部 RAM 領域→外部領域転送
X-bus
バスコントローラ
D-bus
I-bus
データバッファ
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
内部RAM領域=>外部領域 転送
F-bus
RAM
I/O
I/0
図 10.5-6 内部 RAM 領域→内蔵 I/O 領域転送
CPU
バスコントローラ
D-bus
データバッファ
X-bus
I-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
I/O
外部バス I/F
X-bus
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
F-bus
RAM
I/0
293
第 10 章 DMAC (DMA コントローラ )
294
第 11 章
CAN コントローラ
CAN コントローラの機能と動作について示しま
す。
11.1 CAN の特長
11.2 CAN のブロックダイヤグラム
11.3 CAN のレジスタ
11.4 CAN レジスタ機能
11.5 CAN 機能
295
第 11 章 CAN コントローラ
11.1
CAN の特長
CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に準
拠しており , 自動車や FA などの工業分野に広く使用されています。
■ CAN の特長
CAN には以下の特長があります。
• CAN プロトコル ver2.0A/B をサポート
• 1 Mbps までのビットレートをサポート
• メッセージオブジェクトごとの識別マスク
• プログラマブル FIFO モードをサポート
• マスク可能な割込み
• 自己テスト動作用プログラマブルループバックモードをサポート
• インタフェースレジスタを使用してメッセージバッファへの読出し / 書込み
296
第 11 章 CAN コントローラ
11.2
CAN のブロックダイヤグラム
図 11.2-1 に , CAN のブロックダイヤグラムを示します。
図 11.2-1 CAN ブロックダイヤグラム
CAN_TX
CAN_RX
C_CAN
メッセージ RAM
レジスタ群
メッセージ ハンドラ
CANコントローラ
割込み
データOUT
データIN
アドレス[7:0]
コントロール
リセット
クロック
CPUインタフェース
■ CAN コントローラ
CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリア
ルレジスタを制御します。
■ メッセージ RAM
メッセージオブジェクトを格納します。
■ レジスタ群
CAN で使用されるすべてのレジスタです。
■ メッセージハンドラ
メッセージ RAM と CAN コントローラを制御します。
■ CPU インタフェース
FR 内部バスのインタフェースを制御します。
297
第 11 章 CAN コントローラ
11.3
CAN のレジスタ
CAN には , 以下のレジスタがあります。
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• BRP 拡張レジスタ (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 New Data レジスタ 1, 2(NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2(INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2(MSGVAL1, MSGVAL2)
• CAN クロックプリスケーラレジスタ (CANPRE)
■ 全体コントロールレジスタ一覧
表 11.3-1 全体コントロールレジスタ一覧 (1 / 2)
レジスタ
アドレス
コメント
+0
+1
CAN 制御レジスタ
Base-addr
+ 00H
初期値
初期値
298
+3
CAN ステータスレジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
予約
CTRLR
予約
STATR
00000000B
00000001B
00000000B
00000000B
CAN エラーカウンタ
Base-addr
+ 04H
+2
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
エラーカウンタ
は読出し専用で
す。
ビットタイミン
グレジスタは ,
CCE により書込
み可能となりま
す。
第 11 章 CAN コントローラ
表 11.3-1 全体コントロールレジスタ一覧 (2 / 2)
レジスタ
アドレス
コメント
+0
+1
CAN 割込みレジスタ
Base-addr
+ 08H
初期値
+2
CAN テストレジスタ
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
IntId15 ∼
IntId8
IntId7 ∼
IntId0
予約
TESTR
00000000B
00000000B
00000000B
00000000B
F0000000B
BRP 拡張レジスタ
Base-addr
+ 0CH
初期値
+3
割込みレジスタ
は読出し専用で
す。
テストレジスタ
は TSET により
使用できます。
TESTR の "r" は
CAN_RX 端子の
値を意味します。
予約
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
予約
BRP3 ∼ BRP0
予約
予約
00000000B
00000000B
00000000B
00000000B
BRP 拡張レジス
タは CCE により
書込み可能とな
ります。
299
第 11 章 CAN コントローラ
■ メッセージインタフェースレジスタ一覧
表 11.3-2 メッセージインタフェースレジスタ一覧 (1 / 2)
アドレス
Base-addr
+ 10H
初期値
レジスタ
+0
+1
IF1 コマンド要求レジスタ
bit15 ∼ bit8
BUSY
00000000B
初期値
bit15 ∼ bit8
MXtd. MDir,
Msk28 ∼ Msk24
11111111B
+3
コメント
IF1 コマンドマスクレジスタ
bit7 ∼ bit0
bit15 ∼ bit8
Mess.No.5 ∼ 0
00000001B
予約
00000000B
IF1 マスクレジスタ 2
Base-addr
+ 14H
+2
bit7 ∼ bit0
IF1CMSK
00000000B
IF1 マスクレジスタ 1
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
Msk23 ∼ Msk16
Msk15 ∼ Msk8
Msk7 ∼ Msk0
11111111B
11111111B
11111111B
IF1 アービトレーションレジスタ 2 IF1 アービトレーションレジスタ 1
Base-addr
+ 18H
初期値
Base-addr
+ 1CH
初期値
Base-addr
+ 20H
初期値
Base-addr
+ 24H
初期値
Base-addr
+ 30H
初期値
Base-addr
+ 34H
初期値
300
bit15 ∼ bit8
MsgVal, Xtd, Dir,
ID28 ∼ ID24
00000000B
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
ID23 ∼ ID16
ID15 ∼ ID8
ID7 ∼ ID0
00000000B
00000000B
00000000B
IF1 メッセージ制御レジスタ
bit15 ∼ bit8
IF1MCTR
00000000B
bit7 ∼ bit0
IF1MCTR
00000000B
IF1 データレジスタ A1
bit7 ∼ bit0
Data[0]
00000000B
bit15 ∼ bit8
Data[1]
00000000B
IF1 データレジスタ B1
bit7 ∼ bit0
Data[4]
00000000B
bit15 ∼ bit8
Data[5]
00000000B
IF1 データレジスタ A2
bit15 ∼ bit8
Data[3]
00000000B
bit7 ∼ bit0
Data[2]
00000000B
IF1 データレジスタ B2
bit15 ∼ bit8
Data[7]
00000000B
bit7 ∼ bit0
Data[6]
00000000B
予約
bit15 ∼ bit8
bit7 ∼ bit0
予約
00000000B
予約
00000000B
IF1 データレジスタ A2
bit7 ∼ bit0
Data[2]
00000000B
bit15 ∼ bit8
Data[3]
00000000B
ビッグ
エンディアン
バイト
IF1 データレジスタ B2
bit7 ∼ bit0
Data[6]
00000000B
bit15 ∼ bit8
Data[7]
00000000B
ビッグ
エンディアン
バイト
IF1 データレジスタ A1
bit15 ∼ bit8
Data[1]
00000000B
bit7 ∼ bit0
Data[0]
00000000B
リトル
エンディアン
バイト
IF1 データレジスタ B1
bit15 ∼ bit8
Data[5]
00000000B
bit7 ∼ bit0
Data[4]
00000000B
リトル
エンディアン
バイト
第 11 章 CAN コントローラ
表 11.3-2 メッセージインタフェースレジスタ一覧 (2 / 2)
アドレス
Base-addr
+ 40H
初期値
レジスタ
+0
+1
IF2 コマンド要求レジスタ
bit15 ∼ bit8
BUSY
00000000B
初期値
Base-addr
+ 48H
初期値
Base-addr
+ 4CH
初期値
Base-addr
+ 50H
初期値
Base-addr
+ 54H
初期値
Base-addr
+ 60H
初期値
Base-addr
+ 64H
初期値
bit15 ∼ bit8
MXtd. MDir,
Msk28 ∼ Msk24
11111111B
+3
コメント
IF2 コマンドマスクレジスタ
bit7 ∼ bit0
bit15 ∼ bit8
Mess.No.5 ∼ 0
00000001B
予約
00000000B
IF2 マスクレジスタ 2
Base-addr
+ 44H
+2
bit7 ∼ bit0
IF2CMSK
00000000B
IF2 マスクレジスタ 1
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
Msk23 ∼ Msk16
Msk15 ∼ Msk8
Msk7 ∼ Msk0
11111111B
11111111B
11111111B
IF2 アービトレーションレジスタ 2 IF2 アービトレーションレジスタ 1
bit15 ∼ bit8
IF2MCTR
00000000B
bit7 ∼ bit0
IF2MCTR
00000000B
bit15 ∼ bit8
bit7 ∼ bit0
予約
00000000B
予約
00000000B
IF2 メッセージ制御レジスタ
bit15 ∼ bit8
IF2MCTR
00000000B
bit7 ∼ bit0
IF2MCTR
00000000B
IF2 データレジスタ A1
bit7 ∼ bit0
Data[0]
00000000B
bit15 ∼ bit8
Data[1]
00000000B
IF2 データレジスタ B1
bit7 ∼ bit0
Data[4]
00000000B
bit15 ∼ 8
Data[5]
00000000B
IF2 データレジスタ A2
bit15 ∼ bit8
Data[3]
00000000B
bit7 ∼ bit0
Data[2]
00000000B
IF2 データレジスタ B2
bit15 ∼ bit8
Data[7]
00000000B
bit7 ∼ bit0
Data[6]
00000000B
予約
bit15 ∼ bit8
bit7 ∼ bit0
予約
00000000B
予約
00000000B
IF2 データレジスタ A2
bit7 ∼ bit0
Data[2]
00000000B
bit15 ∼ bit8
Data[3]
00000000B
ビッグ
エンディアン
バイト
IF2 データレジスタ B2
bit7 ∼ bit0
Data[6]
00000000B
bit15 ∼ bit8
Data[7]
00000000B
ビッグ
エンディアン
バイト
IF2 データレジスタ A1
bit15 ∼ bit8
Data[1]
00000000B
bit7 ∼ bit0
Data[0]
00000000B
リトル
エンディアン
バイト
IF2 データレジスタ B1
bit15 ∼ bit8
Data[5]
00000000B
bit7 ∼ bit0
Data[4]
00000000B
リトル
エンディアン
バイト
301
第 11 章 CAN コントローラ
■ メッセージハンドラレジスタ一覧
表 11.3-3 メッセージハンドラレジスタ一覧
アドレス
レジスタ
+0
+1
+2
CAN 送信要求レジスタ 2
Base-addr
+ 80H
初期値
Base-addr
+ 84H
CAN 送信要求レジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
TxRqst32 ∼
TxRqst25
00000000B
TxRqst24 ∼
TxRqst17
00000000B
TxRqst16 ∼
TxRqst9
00000000B
TxRqst8 ∼
TxRqst1
00000000B
初期値
Base-addr
+ 94H
送信要求レジ
スタはリード
オンリです。
予約 ( メッセージバッファ数が 33 以上の場合に使用 )
CAN 新データレジスタ 2
Base-addr
+ 90H
コメント
+3
CAN 新データレジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
NewDat32 ∼
NewData25
00000000B
NewDat24 ∼
NewData17
00000000B
NewData16 ∼
NewData9
00000000B
NewData8 ∼
NewData1
00000000B
新データレジ
スタはリード
オンリです。
予約 ( メッセージバッファ数が 33 以上の場合に使用 )
CAN 割込みペンディングレジスタ 2 CAN 割込みペンディングレジスタ 1
Base-addr
+ A0H
初期値
Base-addr
+ A4H
Base-addr
+ B0H
Base-addr
+ B4H
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
IntPnd32 ∼
IntPnd25
00000000B
IntPnd24 ∼
IntPnd17
00000000B
IntPnd16 ∼
IntPnd9
00000000B
割込みペン
ディングレジ
IntPnd8 ∼ IntPnd1 スタはリード
オンリです。
00000000B
bit7 ∼ bit0
予約 ( メッセージバッファ数が 33 以上の場合に使用 )
CAN メッセージ有効レジスタ 2
CAN メッセージ有効レジスタ 1
bit15 ∼ bit8
bit7 ∼ bit0
bit15 ∼ bit8
bit7 ∼ bit0
MsgVal32 ∼
MsgVal25
00000000B
MsgVal24 ∼
MsgVal17
00000000B
MsgVal16 ∼
MsgVal9
00000000B
MsgVal8 ∼
MsgVal1
00000000B
メッセージ有
効レジスタは
リードオンリ
です。
予約 ( メッセージバッファ数が 33 以上の場合に使用 )
■ クロックプリスケーラレジスタ
表 11.3-4 クロックプリスケーラレジスタ
アドレス
0001A8H
初期値
302
レジスタ
+0
CAN プリス
ケーラレジスタ
bit3 ∼ bit0
CANPRE[3:0]
00000000B
+1
+2
+3
−
−
−
−
−
−
−
−
−
−
−
−
コメント
CAN プリス
ケーラ
第 11 章 CAN コントローラ
11.4
CAN レジスタ機能
CAN レジスタは , 256 バイト (64 ワード ) のアドレス空間が割り当てられています。
メッセージ RAM への CPU のアクセスは , メッセージインタフェースレジスタを介
して行います。
本節では CAN レジスタを掲載し , それぞれのレジスタの詳細機能を記載します。
■ 全体コントロールレジスタ
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• BRP 拡張レジスタ (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)
303
第 11 章 CAN コントローラ
11.4.1
全体コントロールレジスタ
全体コントロールレジスタは , CAN プロトコル制御および動作モードを制御し , ス
テータス情報を提供します。
■ 全体コントロールレジスタ
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• BRP 拡張レジスタ (BRPER)
304
第 11 章 CAN コントローラ
11.4.1.1
CAN 制御レジスタ (CTRLR0, CTRLR1)
CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。
■ レジスタ構成
CAN 制御レジスタ ( 上位バイト )
アドレス
Base + 00H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
res
R
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
CAN 制御レジスタ ( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
Base + 01H
Test
R/W
CCE
R/W
DAR
R/W
res
R
EIE
R/W
SIE
R/W
IE
R/W
Init
R/W
00000001B
R/W :リード / ライト可能
R
:リードオンリ
■ レジスタ機能
[bit15 ∼ bit8] res:予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には , "00000000B" を設定してください。
[bit7] Test:テストモード許可ビット
Test
機能
0
通常動作 [ 初期値 ]
1
テストモード
[bit6] CCE:設定変更許可ビット
CCE
機能
0
CAN ビットタイミングレジスタおよび BRP 拡張レジスタへの書込
みを禁止します。[ 初期値 ]
1
CAN ビットタイミングレジスタおよび BRP 拡張レジスタへの書込
みを許可します。Init ビットが "1" の時に有効です。
305
第 11 章 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" を設定したモードでは , メッセージオブジェクト ( メッセージオブ
ジェクトについては「11.4.3 メッセージオブジェクト」を参照してください ) の TxRqst
ビットと NewDat ビットの動作が異なります。
• フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0" にリセット
されますが , NewDat ビットはセットされたままです。
• フレーム送信が正常終了すると NewDat は "0" にリセットされます。
• 送信が調停負けもしくはエラーを検出すると , NewDat はセットされたままです。送
信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。
[bit4] res:予約ビット
このビットからは , "0" が読み出されます。
書込みの場合には , "0" を設定してください。
[bit3] EIE:エラー割込みコード許可ビット
EIE
機能
0
CAN ステータスレジスタの BOff または EWarn ビットの変化に
より , CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの BOff または EWarn ビットの変化に
より , CAN 割込みレジスタへのステータス割込みコードの設定を許
可します。
[bit2] SIE:ステータス割込みコード許可ビット
SIE
306
機能
0
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化
により , CAN 割込みレジスタへの割込みコードの設定を禁止しま
す。[ 初期値 ]
1
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化
により , CAN 割込みレジスタへのステータス割込みコードの設定を
許可します。
CPU からの書込みによって発生した TxOk, RxOk, LEC ビットの変
化は CAN 割込みレジスタには設定されません。
第 11 章 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 インタフェースに供給するクロックの
分周比を変更する場合は , Init ビットに "1" を設定後に CAN プリスケーラレジス
タの変更を行ってください。
307
第 11 章 CAN コントローラ
11.4.1.2
CAN ステータスレジスタ (STATR)
CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表
示します。
■ レジスタ構成
CAN ステータスレジスタ ( 上位バイト )
アドレス
Base + 02H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
res
R
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
bit2
bit1
bit0
R/W
LEC
R/W
CAN ステータスレジスタ ( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
bit3
Base + 03H
BOff
R
EWarn
R
EPass
R
RxOk
R/W
TxOk
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
R
:リードオンリ
■ レジスタ機能
[bit15 ∼ bit8] res:予約ビット
これらのビットからは , "0" が読み出されます。
書込みの場合には , "0" を設定してください。
[bit7] BOff:バスオフビット
BOff
機能
0
CAN コントローラはバスオフ状態ではない ( バスアクティブ )
[ 初期値 ]
1
CAN コントローラはバスオフ状態
[bit6] EWarn:ウォーニングビット
EWarn
308
機能
0
送信 , 受信カウンタはいずれも 96 未満 [ 初期値 ]
1
送信または受信カウンタが 96 以上
第 11 章 CAN コントローラ
[bit5] EPass: エラーパッシブビット
EPass
機能
0
送信 , 受信カウンタはいずれも 128 未満
( エラーアクティブ状態 ) [ 初期値 ]
1
受信カウンタは RP ビット =1, 送信カウンタが 128 以上
( エラーパッシブ状態 )
[bit4] RxOk:メッセージ正常受信ビット
RxOk
機能
0
メッセージ受信は異常 , またはバスアイドル状態 [ 初期値 ]
1
メッセージ受信は正常
[bit3] TxOk:メッセージ正常送信ビット
TxOk
機能
0
メッセージ送信は異常 , またはバスアイドル状態 [ 初期値 ]
1
メッセージ送信は正常
<注意事項>
RxOk および TxOk ビットは , CPU によってのみリセットされます。
309
第 11 章 CAN コントローラ
[bit2 ∼ bit0] LEC:ラストエラーコードビット
LEC
状態
機能
0
正常
正常に送信または受信されたことを示します。[ 初期値 ]
1
Stuff エラー
メッセージ内において 6 ビット以上連続してドミナント
またはレセッシブを検出したことを示します。
2
Form エラー
受信フレームの固定フォーマット部が誤って受信された
ことを示します。
3
Ack エラー
送信メッセージに対し , ほかのノードからアクノリッジ
されなかったことを示します。
4
Bit1 エラー
調停フィールドを除くメッセージの送信データにおいて ,
レセッシブを送信したにもかかわらずドミナントを検出
したことを示します。
5
Bit0 エラー
メッセージの送信データにおいて , ドミナントを送信し
たにもかかわらずレセッシブを検出したことを示します。
バスリカバリ中には , 11 ビットのレセッシブを検出する
ごとにセットされます。このビットを読み出すことによ
りバスリカバリシーケンスを監視できます。
6
CRC エラー
受信したメッセージの CRC データと計算した CRC の結
果が一致しなかったことを示します。
未検出
CPU によって LEC ビットに "7" の書込みを行ってから ,
LEC ビットの読出し値が "7" の場合は , その期間には送
受信が行われなかったことを示します。
( バスアイドル状態 )
7
LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ
セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "0H" に設定されます。未検出
コード "7H" は , コード更新をチェックするために 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) はクリアされます。
310
第 11 章 CAN コントローラ
CAN エラーカウンタ (ERRCNT0 ∼ ERRCNT2)
11.4.1.3
CAN エラーカウンタ (ERRCNT0 ∼ ERRCNT2) は , 受信エラーパッシブ表示および
受信エラーカウンタ , 送信エラーカウンタを示します。
■ レジスタ構成
CAN エラーカウンタレジスタ ( 上位バイト )
アドレス
Base + 04H
bit15
bit14
bit13
bit12
RP
R
R
R
R
bit11
bit10
bit9
bit8
R
R
bit2
bit1
bit0
R
R
R
REC6 ∼ REC0
R
R
初期値
00000000B
CAN エラーカウンタレジスタ ( 下位バイト )
アドレス
bit7
bit6
bit5
R
R
R
Base + 05H
R
bit4
bit3
TEC7 ∼ TEC0
R
R
初期値
00000000B
:リードオンリ
■ レジスタ機能
[bit15] RP:受信エラーパッシブ表示
RP
機能
0
受信エラーカウンタは CAN 仕様でのエラーパッシブ状態ではない
[ 初期値 ]
1
受信エラーカウンタは CAN 仕様でのエラーパッシブ状態
[bit14 ∼ bit8] REC6 ∼ REC0:受信エラーカウンタ
受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。
[bit7 ∼ bit0] TEC7 ∼ TEC0:送信エラーカウンタ
送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。
311
第 11 章 CAN コントローラ
CAN ビットタイミングレジスタ (BTR0 ∼ BTR2)
11.4.1.4
CAN ビットタイミングレジスタ (BTR0 ∼ BTR2) は , プリスケーラおよびビットタ
イミングを設定します。
■ レジスタ構成
CAN ビットタイミングレジスタ ( 上位バイト )
bit15
アドレス
res
R
Base + 06H
bit14
bit13
R/W
TSeg2
R/W
bit12
bit11
bit10
bit9
bit8
TSeg1
R/W
R
初期値
00100011B
R
R
R
bit2
bit1
bit0
CAN ビットタイミングレジスタ ( 下位バイト )
bit7
アドレス
bit6
bit5
bit4
bit3
SJW
Base + 07H
R/W
BRP
R/W
R/W
R/W
R/W
初期値
00000001B
R/W
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
CAN ビットタイミングレジスタおよび BRP 拡張レジスタの設定は , CAN 制御レジス
タの CCE ビットと Init ビットが "1" にセットされているときに行ってください。
■ レジスタ機能
[bit15] res:予約ビット
このビットからは , "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 の値がボーレートプリスケーラになります。
システムクロック (fsys) を分周して , CAN コントローラの基本単位時間 (tq) を決定
します。
312
第 11 章 CAN コントローラ
CAN 割込みレジスタ (INTR0 ∼ INTR2)
11.4.1.5
CAN 割込みレジスタ (INTR0 ∼ INTR2) は , メッセージ割込みコードおよびステータ
ス割込みコードを表示します。
■ レジスタ構成
CAN 割込みレジスタ ( 上位バイト )
bit15
アドレス
bit14
bit13
Base + 08H
R
R
R
bit12
bit11
IntId15 ∼ IntId8
R
R
bit10
bit9
bit8
初期値
00000000B
R
R
R
bit2
bit1
bit0
CAN 割込みレジスタ ( 下位バイト )
bit7
アドレス
bit6
bit5
Base + 09H
R
R
R
R
bit4
bit3
IntId7 ∼ IntId0
R
R
初期値
00000000B
R
R
R
:リードオンリ
■ レジスタ機能
IntId
機能
0000H
割込みなし
0001H ∼ 0020H
メッセージ割込みコード
( 割込み要因はメッセージオブジェクトの番号 )
0021H ∼ 7FFFH
未使用
8000H
ステータス割込みコード
(CAN ステータスレジスタの変化による割込み )
8001H ∼ FFFFH
未使用
複数の割込みコードがペンディング中である場合 , CAN 割込みレジスタは優先度の高
い割込みコードを示します。割込みコードが CAN 割込みレジスタにセットされている
場合においても , 優先度の高い割込みコードが発生すると , CAN 割込みレジスタは優
先度の高い割込みコードに更新されます。
優先度の高い割込みコードは , ステータス割込みコード (8000H), メッセージ割込み
(0001H, 0002H, 0003H, ……, 0020H) の順になります。
IntId ビットが 0000H 以外のときに , CAN 制御レジスタの IE ビットが "1" にセットされ
ると , CPU への割込み信号がアクティブになります。IntId の値が 0000H になる ( 割込
み要因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットさ
れると , 割込み信号はインアクティブになります。
対象となるメッセージオブジェクト ( メッセージオブジェクトについては
「11.4.3 メッ
セージオブジェクト」を参照してください ) の IntPnd ビットを "0" にクリアすると ,
メッセージ割込みコードはクリアされます。
ステータス割込みコードは CAN ステータスレジスタを読み出すとクリアされます。
313
第 11 章 CAN コントローラ
CAN テストレジスタ (TESTR0 ∼ TESTR2)
11.4.1.6
CAN テストレジスタ (TESR0 ∼ TESR2) レジスタは , テストモードの設定および
RX 端子のモニタを行います。動作については , 「11.5.7 テストモード」を参照して
ください。
■ レジスタ構成
CAN テストレジスタ ( 上位バイト )
アドレス
Base + 0AH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
res
R
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
CAN テストレジスタ ( 下位バイト )
アドレス
bit7
bit6
Base + 0BH
Rx
Tx1
Tx0
LBack
Silent
Basic
res
res
R
R/W
R/W
R/W
R/W
R/W
R
R
R/W :リード / ライト可能
R
:リードオンリ
bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。
CAN テストレジスタ (TESTR) への書込みは , CAN 制御レジスタ (CTRLR) の Test ビッ
トを "1" にセットした後に行ってください。テストモードが有効となるのは , CAN 制
御レジスタの Test ビットが "1" の時です。テストモードの途中で CAN 制御レジスタの
Test ビットを "0" にするとテストモードから通常モードになります。
■ レジスタ機能
[bit15 ∼ bit8] res:予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合には , "00000000B" を設定してください。
[bit7] Rx:Rx 端子モニタビット
Rx
314
機能
0
CAN バスはドミナントであることを示します。
1
CAN バスはレセッシブであることを示します。
第 11 章 CAN コントローラ
[bit6, bit5] Tx1, Tx0:TX 端子コントロールビット
Tx1, Tx0
機能
00
通常動作 [ 初期値 ]
01
サンプリングポイントが TX 端子に出力されます。
10
TX 端子にドミナントを出力します。
11
TX 端子にレセッシブを出力します。
Txビットを "00B"以外に設定した場合は , メッセージを送信することはできません。
[bit4] LBack:ループバックモード
LBack
機能
0
ループバックモードを禁止します。[ 初期値 ]
1
ループバックモードを許可します。
[bit3] Silent:サイレントモード
Silent
機能
0
サイレントモードを禁止します。[ 初期値 ]
1
サイレントモードを許可します。
[bit2] Basic:ベーシックモード
Basic
機能
0
ベーシックモードを禁止します。[ 初期値 ]
1
ベーシックモードを許可します。
IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセージ
として使用されます。
[bit1, bit0] res:予約ビット
これらのビットからは , "00B" が読み出されます。
書込みの場合には , "00B" を設定してください。
315
第 11 章 CAN コントローラ
BRP 拡張レジスタ (BRPER0 ∼ BRPER2)
11.4.1.7
BRP 拡張レジスタ (BRPER0 ∼ BRPER2) は , CAN ビットタイミングで設定したプ
リスケーラと組み合わせることにより , CAN コントローラで使用するプリスケーラ
を拡張します。
■ レジスタ構成
CAN プリスケーラ拡張レジスタ ( 上位バイト )
アドレス
Base + 0CH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
res
R
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
bit3
bit2
bit1
bit0
初期値
R/W
R/W
CAN プリスケーラ拡張レジスタ ( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
Base + 0DH
res
res
res
res
R
R
R
R
BRPE
R/W
00000000B
R/W
R/W :リード / ライト可能
R
:リードオンリ
■ レジスタ機能
[bit15 ∼ bit4] res:予約ビット
これらのビットからは , "00000000_0000B" が読み出されます。
書込みの場合には , "00000000_0000B" を設定してください。
[bit3 ∼ bit0] BRPE:ボーレートプリスケーラ拡張ビット
CAN ビットタイミングレジスタの BRP と BRPE を組み合わせることにより , 1023
までボーレートプリスケーラを拡張できます。
{BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ
スケール値となります。
316
第 11 章 CAN コントローラ
11.4.2
メッセージインタフェースレジスタ
CPU からメッセージ RAM へのアクセスを制御するための 2 組のメッセージインタ
フェースレジスタがあります。
メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ
ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ
( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ
スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト
( メッセージオブジェクトについては , 「11.4.3 メッセージオブジェクト」を参照して
ください ) は , メッセージインタフェースレジスタとメッセージ RAM 間を一度に転送
します。
テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同
一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ
セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー
ジ RAM からの読出しに使用することも可能です。表 11.4-1 に 2 組のメッセージイン
タフェースレジスタを示します。
メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ
スクレジスタ ) と , このコマンドレジスタによって制御されるメッセージバッファレジ
スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成されま
す。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの部
分が転送されるのかを示します。コマンド要求レジスタは , メッセージ番号の選択と ,
コマンドマスクレジスタに設定された動作を行います。
表 11.4-1 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
317
第 11 章 CAN コントローラ
IFx コマンド要求レジスタ (IFxCREQ)
11.4.2.1
IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択
とメッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テス
トのベーシックモードでは , IF1 を送信制御用に IF2 を受信制御用として使用しま
す。
■ レジスタ構成
IFx コマンド要求レジスタ ( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
Base + 10H &
Base + 40H
res
R/W
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
bit4
bit3
bit2
bit1
bit0
IFx コマンド要求レジスタ ( 下位バイト )
アドレス
bit7
bit6
Base + 11H &
Base + 41H
res
R/W
res
R/W
bit5
R/W
R/W
Message Number
R/W
R/W
初期値
00000000B
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
■ レジスタ機能
IFx コマンド要求レジスタへメッセージ番号を書き込むとすぐにメッセージ RAM と
メッセージバッファレジスタ ( マスク , アービトレーション , メッセージ制御 , データ
レジスタ ) とのメッセージ転送が開始されます。この書込み動作で , BUSY ビットが
"1"にセットされ転送処理中であることを示します。その転送が終了すると, BUSYビッ
トが "0" にリセットされます。
BUSY ビットが "1" のときに , CPU からメッセージインタフェースレジスタへアクセス
が発生すると , BUSY ビットが "0" になるまで ( コマンド要求レジスタ書込み後 , クロッ
クで 3 ∼ 6 サイクル期間 ) , CPU をウェイトさせます。
テストベーシックモードでは , BUSY ビットの使用方法が異なります。IF1 コマンド要
求レジスタは , 送信メッセージとして使用され , BUSY ビットに "1" をセットすること
によりメッセージ送信開始を指示します。
メッセージ転送が正常終了すると, BUSYビッ
トは "0" にリセットされます。また , BUSY ビットを "0" にリセットすることにより , い
つでもメッセージ転送を中断させることが可能です。
IF2 コマンド要求レジスタは , 受信メッセージとして使用され , BUSY ビットを "1" に
セットすることにより , 受信したメッセージを IF2 メッセージインタフェースレジスタ
に格納します。
318
第 11 章 CAN コントローラ
[bit15] BUSY:ビジーフラグビット
• テストベーシックモード以外
BUSY
機能
0
メッセージインタフェースレジスタとメッセージ RAM 間でデータ
転送処理を行っていないことを示します。[ 初期値 ]
1
メッセージインタフェースレジスタとメッセージ RAM 間でデータ
転送処理中であることを示します。
• テストベーシックモード
- IF1 コマンド要求レジスタ
BUSY
機能
0
メッセージ送信を禁止します。
1
メッセージ送信を許可します。
- IF2 コマンド要求レジスタ
BUSY
機能
0
メッセージ受信を禁止します。
1
メッセージ受信を許可します。
BUSY ビットは , 読出しおよび書込みが可能です。テストのベーシックモード時以
外は , このビットに何を書いても動作に影響しません ( ベーシックモードについて
は , 「11.5.7 テストモード」を参照してください ) 。
[bit14 ∼ bit5] res:予約ビット
これらのビットからは , "0000000000B" が読み出されます。
書込みの場合 "0000000000B" を設定してください。
[bit4 ∼ bit0] Message Number:メッセージ番号 (32 メッセージバッファ CAN 用 )
Message Number
機能
00H
設定禁止です。
設定した場合 , 20H として解釈され , 20H が読み出されます。
01H ∼ 20H
処理を行うメッセージ番号を設定します。
21H ∼ 3FH
設定禁止です。
設定した場合 , 01H ∼ 1FH として解釈され , 解釈された値が
読み出されます。
319
第 11 章 CAN コントローラ
[bit4 ∼ bit0] Message Number:メッセージ番号 (128 メッセージバッファ CAN 用 )
Message Number
機能
00H
設定禁止です。
設定した場合 , 20H として解釈され , 20H が読み出されます。
01H ∼ 80H
処理を行うメッセージ番号を設定します。
81H ∼ FFH
設定禁止です。
設定した場合 , 01H ∼ 7FH として解釈され , 解釈された値が
読み出されます。
320
第 11 章 CAN コントローラ
IFx コマンドマスクレジスタ (IFxCMSK)
11.4.2.2
IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタと
メッセージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。ま
た , テストのベーシックモードでは本レジスタは無効となります。
■ レジスタ構成
IFx コマンドマスクレジスタ ( 上位バイト )
アドレス
Base + 12H &
Base + 42H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
res
R
res
R
res
R
res
R
res
R
res
R
res
R
res
R
00000000B
bit4
bit3
bit2
bit1
bit0
初期値
IFx コマンドマスクレジスタ ( 下位バイト )
bit7
アドレス
Base + 13H & WR/RD
Base + 43H
R/W
bit6
bit5
Mask
Arb
Control
CIP
TxRqst/
NewDat
R/W
R/W
R/W
R/W
R/W
Data A Data B
R/W
00000000B
R/W
R/W :リード / ライト可能
R
:リードオンリ
テストベーシックモードではこのレジスタの設定は無効となります。
■ レジスタ機能
[bit15 ∼ bit8] res:予約ビット
これらのビットからは , "00000000B" が読み出されます。
書込みの場合 "00000000B" を設定してください。
[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 ビット ) の設定に
より異なる意味を持ちます。
321
第 11 章 CAN コントローラ
● 転送方向がライトの場合 (WR/RD=1)
[bit6] Mask:マスクデータ更新ビット
Mask
機能
0
メッセージオブジェクト * のマスクデータ
(ID マスク+ MDir + MXtd) を更新しない [ 初期値 ]
1
メッセージオブジェクト * のマスクデータ
(ID マスク+ MDir + MXtd) を更新する
[bit5] Arb:アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * のアービトレーションデータ
(ID + Dir + Xtd + MsgVal) を更新しない [ 初期値 ]
1
メッセージオブジェクト * のアービトレーションデータ
(ID + Dir + Xtd + MsgVal) を更新する
[bit4] Control:制御データ更新ビット
Control
機能
0
メッセージオブジェクト * の制御データ (IFx メッセージ制御レジス
タ ) を更新しない [ 初期値 ]
1
メッセージオブジェクト * の制御データ (IFx メッセージ制御レジス
タ ) を更新する
[bit3] CIP:割込みクリアビット
本ビットに "0" または "1" を設定しても CAN コントローラへの動作に影響を与えま
せん。
[bit2] TxRqst/NewDat:メッセージ送信要求ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "0" を設定 [ 初期値 ]
1
メッセージオブジェクト * および CAN 送信要求レジスタの
TxRqst ビットに "1" を設定 ( 送信要求 )
IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFxメッ
セージ制御レジスタの TxRqst ビットの設定は無効となります。
322
第 11 章 CAN コントローラ
[bit1] Data A:データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * のデータ 0 ∼ 3 を更新しない [ 初期値 ]
1
メッセージオブジェクト * のデータ 0 ∼ 3 を更新する
[bit0] Data B:データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * のデータ 4 ∼ 7 を更新しない [ 初期値 ]
1
メッセージオブジェクト * のデータ 4 ∼ 7 を更新する
*:「11.4.3 メッセージオブジェクト」を参照してください。
323
第 11 章 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 ) を転送する
[bit5] Arb:アービトレーションデータ更新ビット
Arb
機能
0
メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ
(ID + Dir + Xtd + MsgVal) を転送しない [ 初期値 ]
1
メッセージオブジェクト * から IFx アービトレーション 1, 2 へデータ
(ID + Dir + Xtd + MsgVal) を転送する
[bit4] Control:制御データ更新ビット
Control
機能
0
メッセージオブジェクト * から IFx メッセージ制御レジスタへデー
タを転送しない [ 初期値 ]
1
メッセージオブジェクト * から IFx メッセージ制御レジスタへデー
タを転送する
[bit3] CIP:割込みクリアビット
CIP
324
機能
0
メッセージオブジェクト * および CAN 割込みペンディングレジス
タの IntPnd ビットを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN 割込みペンディングレジス
タの IntPnd ビットを "0" にクリア
第 11 章 CAN コントローラ
[bit2] TxRqst/NewDat:データ更新ビット
TxRqst/NewDat
機能
0
メッセージオブジェクト * および CAN データ更新レジスタ
の NewDat ビットを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データ更新レジスタ
の NewDat ビットを "0" にクリア
[bit1] Data A:データ 0 ∼ 3 更新ビット
Data A
機能
0
メッセージオブジェクト * および CAN データレジスタ A1, A2 の
データを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ A1, A2 の
データを更新
[bit0] Data B:データ 4 ∼ 7 更新ビット
Data B
機能
0
メッセージオブジェクト * および CAN データレジスタ B1, B2 の
データを保持 [ 初期値 ]
1
メッセージオブジェクト * および CAN データレジスタ B1, B2 の
データを更新
*:「11.4.3 メッセージオブジェクト」を参照してください。
325
第 11 章 CAN コントローラ
IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2)
11.4.2.3
IFx マスクレジスタ (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブ
ジェクトマスクデータを読出し / 書込みするために用いられます。また , テストの
ベーシックモードでは , 設定されているマスクデータは無効となります。
各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ
い。
■ レジスタ構成
IFx マスクレジスタ 2( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
bit11
Base + 14H &
Base + 44H
MXtd
MDir
Reserved
R/W
R/W
bit10
bit9
bit8
R
R/W
R/W
R/W
R/W
R/W
bit5
bit4
bit3
bit2
bit1
bit0
初期値
11111111B
Msk28 ∼ Msk24
IFx マスクレジスタ 2( 下位バイト )
bit7
アドレス
Base + 15H &
Base + 45H
bit6
11111111B
Msk23 ∼ Msk16
R/W
R/W
R/W
初期値
R/W
R/W
R/W
R/W
R/W
bit12
bit11
bit10
bit9
bit8
IFx マスクレジスタ 1( 上位バイト )
bit15
アドレス
Base + 16H &
Base + 46H
bit14
bit13
11111111B
Msk15 ∼ Msk8
R/W
R/W
R/W
初期値
R/W
R/W
R/W
R/W
R/W
bit4
bit3
bit2
bit1
bit0
IFx マスクレジスタ 1( 下位バイト )
bit7
アドレス
Base + 17H &
Base + 47H
bit6
bit5
R/W
R/W
R/W
R/W
R/W
初期値
11111111B
Msk7 ∼ Msk0
R/W
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
IFx マスクレジスタのビット説明については , 「11.4.3 メッセージオブジェクト」を参
照してください。
レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) からは "1" が読み出されます。書
込み時は , "1" を書き込んでください。
326
第 11 章 CAN コントローラ
IFx アービトレーションレジスタ 1, 2
(IFxARB1, IFxARB2)
11.4.2.4
IFx アービトレーションレジスタ (IFxARB1, IFxARB2) レジスタは , メッセージ
RAM のメッセージオブジェクトアービトレーションデータを読出し / 書込みするた
めに用いられます。また , テストのベーシックモードでは無効となります。
各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ
い。
■ レジスタ構成
IFx アービトレーションレジスタ 2( 上位バイト )
bit15
アドレス
Base + 18H & MsgVal
Base + 48H
R/W
bit14
bit13
Xtd
Dir
R/W
R/W
bit12
bit11
bit10
bit9
bit8
ID28 ∼ ID24
R/W
初期値
00000000B
R/W
R/W
R/W
R/W
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
bit11
bit10
bit9
bit8
IFx アービトレーションレジスタ 2( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
Base + 19H &
Base + 49H
R/W
R/W
R/W
R/W
初期値
00000000B
ID23 ∼ ID16
IFx アービトレーションレジスタ 1( 上位バイト )
bit15
アドレス
Base + 1AH &
Base + 4AH
bit14
bit13
bit12
00000000B
ID15 ∼ ID8
R/W
R/W
R/W
R/W
初期値
R/W
R/W
R/W
R/W
bit3
bit2
bit1
bit0
IFx アービトレーションレジスタ 1( 下位バイト )
bit7
アドレス
Base + 1BH &
Base + 4BH
bit6
bit5
bit4
00000000B
ID7 ∼ ID0
R/W
R/W
R/W
R/W
R/W
初期値
R/W
R/W
R/W
R/W :リード / ライト可能
IFx アービトレーションレジスタのビット説明については , 「11.4.3 メッセージオブ
ジェクト」を参照してください。
送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が
完了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセー
ジオブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされま
せん。メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアして
ください。
327
第 11 章 CAN コントローラ
IFx メッセージ制御レジスタ (IFxMCTR)
11.4.2.5
IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェ
クト制御データを読出し / 書込みするために用いられます。また , テストのベーシッ
クモードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御
レジスタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッ
セージの DLC を表示します。その他の制御ビットは無効 ("0") として動作します。
各ビットの機能については , 「11.4.3 メッセージオブジェクト」を参照してくださ
い。
■ レジスタ構成
IFx メッセージ制御レジスタ ( 上位バイト )
bit15
アドレス
bit14
Base + 1CH & NewDat MsgLst
Base + 4CH
R/W
R/W
bit13
bit12
bit11
bit10
IntPnd
UMask
TxIE
RxIE
bit9
bit8
R/W
R/W
R/W
R/W
R/W
R/W
bit3
bit2
bit1
bit0
RmtEn TxRqst
初期値
00000000B
IFx メッセージ制御レジスタ ( 下位バイト )
アドレス
bit7
Base + 1DH &
Base + 4DH
R/W
EoB
bit6
bit5
bit4
Reserved Reserved Reserved
R
R
R
00000000B
DLC3 ∼ DLC0
R/W
R/W
R/W
初期値
R/W
R/W :リード / ライト可能
R
:リードオンリ
IFx メッセージ制御レジスタのビット説明については , 「11.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 ビッ
トが格納されます。
328
第 11 章 CAN コントローラ
11.4.2.6
IFx データレジスタ A1, A2, B1, B2
(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
IFx データレジスタ (IFxDTA1, IFxDTA2, IFxDTAB1, IFxDTB2) は , メッセージ RAM
のメッセージオブジェクト送受信データを読出し / 書込みするために用いられます。
データフレームの送受信のみ使用され , リモートフレームの送受信には使用されま
せん。
■ レジスタ構成
IFx メッセージデータ A1 ( アドレス 20H & 50H)
addr + 0
addr + 1
Data(0)
Data(1)
IFx メッセージデータ A2 ( アドレス 22H & 52H)
Data(4)
IFx メッセージデータ B1 ( アドレス 24H & 54H)
Data(3)
Data(7)
Data(2)
Data(3)
Data(6)
Data(7)
Data(1)
Data(0)
Data(5)
Data(4)
Data(2)
IFx メッセージデータ A1 ( アドレス 32H & 62H)
IFx メッセージデータ B2 ( アドレス 34H & 64H)
addr + 3
Data(5)
IFx メッセージデータ B2 ( アドレス 26H & 56H)
IFx メッセージデータ A2 ( アドレス 30H & 60H)
addr + 2
Data(6)
IFx メッセージデータ B1 ( アドレス 36H & 66H)
IFx データレジスタ
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
Data
R/W
R/W
R/W
R/W
初期値
00000000B
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
■ レジスタ機能
● 送信メッセージデータの設定
設定したデータは , 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 バイトのうちある一部のデータだけを更新することはできません。
329
第 11 章 CAN コントローラ
メッセージオブジェクト
11.4.3
メッセージ RAM には , 32 ( 品種によって 128 まで ) のメッセージオブジェクトがあ
ります。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセス
の競合を回避するために , CPU はメッセージオブジェクトへの直接アクセスはでき
ません。これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行いま
す。
本節では , メッセージオブジェクトの構成と機能を説明します。
■ メッセージオブジェクトの構成
メッセージオブジェクト
UMask
MsgVal
Msk28 ∼
MXtd
Msk0
ID28 ∼
ID0
Xtd
MDir
Dir
EoB
New Dat
DLC3 ∼
Data0
DLC0
Data1
MsgLst
RxIE
TxIE
Data2
Data3
Data4
IntPnd RmtEn TxRqst
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 つ以上のメッセージオブジェ
クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は ,
「11.5.3 メッセージ受信動作」の受信メッセージのアクセプタンスフィルタを参照して
ください。)
330
第 11 章 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
ID
機能
ID28 ∼ ID0
29 ビット ID ( 拡張フレーム ) を指示
ID28 ∼ ID18
11 ビット ID ( 標準フレーム ) を指示
331
第 11 章 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
機能
0
受信方向を示します。
TxRqst が "1" にセットされると , リモートフレームの送信を行い ,
TxRqst が "0" のときは , アクセプタンスフィルタを通過したデータ
フレームを受信します。
1
送信方向を示します。
TxRqst が "1" にセットされると , データフレームを送信し , TxRqst
が "0" で RmtEn が "1" にセットされている場合 , アクセプタンス
フィルタを通過したリモートフレームの受信によって , CAN コント
ローラ自身が TxRqst を "1" にセットします。
MDir:メッセージ方向マスクビット
MDir
機能
0
アクセプタンスフィルタでのメッセージ方向ビット (Dir) のマスクあり
1
アクセプタンスフィルタでもメッセージ方向ビット (Dir) のマスクなし
<注意事項>
MDir ビットには常に "1" を設定してください。
332
第 11 章 CAN コントローラ
EoB:エンドオブバッファビット
( 詳細は , 「11.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" のとき ( 受信方向 ) のみ有効です。
RxIE:受信割込みフラグイネーブルビット
RxIE
機能
0
フレーム受信成功後 , IntPnd の変更なし
1
フレーム受信成功後 , IntPnd は "1" にセット
TxIE:送信割込みフラグイネーブルビット
TxIE
機能
0
フレーム送信成功後 , IntPnd の変更なし
1
フレーム送信成功後 , IntPnd は "1" にセット
333
第 11 章 CAN コントローラ
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 ビットはそのまま
保持され , リモートフレームを無視します。
TxRqst:送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもなく , 送信待ち状態でもない )
1
送信中または , 送信待ち状態
DLC3 ∼ DLC0:データ長コード
DLC3 ∼ DLC0
機能
0∼8
データフレーム長は 0 ∼ 8 バイト
9 ∼ 15
設定禁止
設定された場合は , 8 バイト長となります。
データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。
334
第 11 章 CAN コントローラ
Data 0 ∼ Data 7:データ 0 ∼ 7
機能
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 バイトのうちある一部のデータだけを更新することはできませ
ん。
335
第 11 章 CAN コントローラ
11.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)
336
第 11 章 CAN コントローラ
11.4.4.1
CAN 送信要求レジスタ (TREQR1, TREQR2)
CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの
TxRqst ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセー
ジオブジェクトの送信要求がペンディング中であるかチェックすることができます。
■ レジスタ構成
CAN 送信要求レジスタ 2( 上位バイト )
アドレス
bit15
bit14
bit13
Base + 80H
bit12
bit11
bit10
bit9
bit8
00000000B
TxRqst32 ∼ TxRqst25
R
R
R
初期値
R
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN 送信要求レジスタ 2( 下位バイト )
アドレス
bit7
bit6
bit5
Base + 81H
00000000B
TxRqst24 ∼ TxRqst17
R
R
R
初期値
R
R
R
R
R
bit12
bit11
bit10
bit9
bit8
CAN 送信要求レジスタ 1( 上位バイト )
アドレス
bit15
bit14
bit13
Base + 82H
R
R
R
初期値
00000000B
TxRqst16 ∼ TxRqst9
R
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN 送信要求レジスタ 1( 下位バイト )
アドレス
bit7
bit6
bit5
TxRqst8 ∼ TxRqst1
Base + 83H
R
R
R
R
R
R
初期値
00000000B
R
R
R
:リードオンリ
337
第 11 章 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" の場合 , アクセプタンスフィルタを通過し
たリモートフレームの受信によりリセットされます。
32 メッセージバッファ以上を搭載する CAN マクロにおける送信要求ビットについて
は以下の表を参照してください。
338
addr + 0
addr + 1
addr + 2
addr + 3
TREQR 4 &
TREQR3
TxRqst64 ∼
TxRqst33
( アドレス 84H)
TxRqst64 ∼
TxRqst57
TxRqst56 ∼
TxRqst49
TxRqst48 ∼
TxRqst41
TxRqst40 ∼
TxRqst33
TREQR 6 &
TREQR
TxRqst96 ∼
TxRqst65
( アドレス 88H)
TxRqst96 ∼
TxRqst89
TxRqst88 ∼
TxRqst81
TxRqst80 ∼
TxRqst73
TxRqst72 ∼
TxRqst65
TREQR 8 &
TREQR7
TxRqst128 ∼
TxRqst97
( アドレス 8CH)
TxRqst128 ∼
TxRqst121
TxRqst120 ∼
TxRqst113
TxRqst112 ∼
TxRqst105
TxRqst104 ∼
TxRqst97
第 11 章 CAN コントローラ
CAN 新データレジスタ (NEWDT1, NEWDT2)
11.4.4.2
CAN 新データレジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの
NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセー
ジオブジェクトのデータが更新されたかチェックすることができます。
■ レジスタ構成
CAN データ更新レジスタ 2( 上位バイト )
bit15
アドレス
bit14
bit13
Base + 90H
bit12
bit11
bit10
bit9
bit8
00000000B
NewDat32 ∼ NewDat25
R
R
R
初期値
R
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN データ更新レジスタ 2( 下位バイト )
bit7
アドレス
bit6
bit5
Base + 91H
00000000B
NewDat24 ∼ NewDat17
R
R
R
初期値
R
R
R
R
R
bit12
bit11
bit10
bit9
bit8
CAN データ更新レジスタ 1( 上位バイト )
bit15
アドレス
bit14
bit13
Base + 92H
R
R
R
初期値
00000000B
NewDat16 ∼ NewDat9
R
R
R
R
R
bit4
bit3
bit2
bit1
bit0
CAN データ更新レジスタ 2( 下位バイト )
bit7
アドレス
bit6
bit5
NewDat8 ∼ NewDat1
Base + 93H
R
R
R
R
R
R
初期値
00000000B
R
R
R
:リードオンリ
NewDat32 ∼ NewDat1:データ更新ビット
NewDat16 ∼ NewDat1
機能
0
新データなし
1
新データあり
339
第 11 章 CAN コントローラ
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 をリセットできます。
- 送信用シフトレジスタ ( 内部レジスタ ) へデータを転送終了後 , リセットされま
す。
32 メッセージバッファ以上を搭載する CAN マクロにおけるデータ更新ビットについ
ては以下の表を参照してください。
340
addr + 0
addr + 1
addr + 2
addr + 3
NEWDT 4 &
NEWDT 3
NewDat64 ∼
NewDat33
( アドレス 94H)
NewDat64 ∼
NewDat57
NewDat56 ∼
NewDat49
NewDat48 ∼
NewDat41
NewDat40 ∼
NewDat33
NEWDT 6 &
NEWDT 5
NewDat96 ∼
NewDat65
( アドレス 98H))
NewDat96 ∼
NewDat89
NewDat88 ∼
NewDat81
NewDat80 ∼
NewDat73
NewDat72 ∼
NewDat65
NEWDT 8 &
NEWDT 7
NewDat128 ∼
NewDat128 ∼
NewDat97
NewDat121
( アドレス 9CH))
NewDat120 ∼
NewDat113
NewDat112 ∼
NewDat105
NewDat104 ∼
NewDat97
第 11 章 CAN コントローラ
11.4.4.3
CAN 割込みペンディングレジスタ
(INTPND1, INTPND2)
CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェ
クトの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッ
セージオブジェクトが割込みペンディング中であるかチェックすることができます。
■ レジスタ構成
CAN 割込みペンディングレジスタ 2( 上位バイト )
アドレス
bit15
bit14
bit13
R
R
R
bit12
bit11
bit10
bit9
bit8
R
R
R
R
bit3
bit2
bit1
bit0
00000000B
IntPnd32 ∼ IntPnd25
Base + A0H
R
初期値
CAN 割込みペンディングレジスタ 2( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
00000000B
IntPnd24 ∼ IntPnd17
Base + A1H
R
R
R
R
初期値
R
R
R
R
bit11
bit10
bit9
bit8
CAN 割込みペンディングレジスタ 1( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
00000000B
IntPnd16 ∼ IntPnd9
Base + A2H
R
R
R
R
初期値
R
R
R
R
bit3
bit2
bit1
bit0
CAN 割込みペンディングレジスタ 1( 下位バイト )
アドレス
bit7
bit6
bit5
R
R
R
R
R
初期値
00000000B
IntPnd8 ∼ IntPnd1
Base + A3H
R
bit4
R
R
R
:リードオンリ
341
第 11 章 CAN コントローラ
■ レジスタ機能
IntPnd32 ∼ IntPnd1:割込みペンディングビット
IntPnd16 ∼ IntPnd1
機能
0
割込み要因なし
1
割込み要因あり
IntPnd ビットのセット / リセット条件を以下に示します。
• セット条件
- TxIE が "1" にセットされている場合 , フレームの正常送信完了によりセットされ
ます。
- RxIE が "1" にセットされている場合 , アクセプタンスフィルタを通過したフレー
ムの正常受信完了によりセットされます。
• リセット条件
- IFx コマンドマスクレジスタが WR/RD に "1", IntPnd に "1" を設定した場合 , IFx
コマンド要求レジスタの書込みにより特定オブジェクトの IntPndをリセットでき
ます。
32 メッセージバッファ以上を搭載する CAN マクロにおける割込みペンディングビッ
トについては以下の表を参照してください。
342
addr + 0
addr + 1
addr + 2
addr + 3
INTPND 4 &
INTPND3
IntPnd64 ∼
IntPnd33
( アドレス A4H)
IntPnd64 ∼
IntPnd57
IntPnd56 ∼
IntPnd49
IntPnd48 ∼
IntPnd41
IntPnd40 ∼
IntPnd33
INTPND 6 &
INTPND5
IntPnd96 ∼
IntPnd65
( アドレス A8H)
IntPnd96 ∼
IntPnd89
IntPnd88 ∼
IntPnd81
IntPnd80 ∼
IntPnd73
IntPnd72 ∼
IntPnd65
INTPND 8 &
INTPND7
IntPnd128 ∼
IntPnd97
( アドレス ACH)
IntPnd128 ∼
IntPnd121
IntPnd120 ∼
IntPnd113
IntPnd112 ∼
IntPnd105
IntPnd104 ∼
IntPnd97
第 11 章 CAN コントローラ
11.4.4.4
CAN メッセージ有効レジスタ
(MSGVAL1, MSGVAL2)
CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェク
トの MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッ
セージオブジェクトが有効であるかチェックすることができます。
■ レジスタ構成
CAN メッセージ有効レジスタ 2( 上位バイト )
アドレス
bit15
bit14
bit13
R
R
R
bit12
bit11
bit10
bit9
bit8
00000000B
MsgVal32 ∼ MsgVal25
Base + B0H
R
初期値
R
R
R
R
bit3
bit2
bit1
bit0
CAN メッセージ有効レジスタ 2( 下位バイト )
アドレス
bit7
bit6
bit5
bit4
00000000B
MsgVal24 ∼ MsgVal17
Base + B1H
R
R
R
R
初期値
R
R
R
R
bit11
bit10
bit9
bit8
CAN メッセージ有効レジスタ 1( 上位バイト )
アドレス
bit15
bit14
bit13
bit12
00000000B
MsgVal16 ∼ MsgVal9
Base + B2H
R
R
R
R
初期値
R
R
R
R
bit3
bit2
bit1
bit0
CAN メッセージ有効レジスタ 1( 下位バイト )
アドレス
bit7
bit6
bit5
R
R
R
R
R
初期値
00000000B
MsgVal8 ∼ MsgVal1
Base + B3H
R
bit4
R
R
R
:リードオンリ
343
第 11 章 CAN コントローラ
■ レジスタ機能
MsgVal32 ∼ MsgVal1:メッセージ有効ビット
MsgVal 16 ∼ MsgVal1
機能
0
メッセージオブジェクトは無効
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効
メッセージの送受信が可能となります。
MsgVal ビットのセット / リセット条件を以下に示します。
• セット条件
- IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求
レジスタへの書込みにより特定オブジェクトの MsgVal をセットできます。
• リセット条件
- IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求
レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。
32 メッセージバッファ以上を搭載する CAN マクロにおけるメッセージ有効ビットに
ついては以下の表を参照してください。
344
addr + 0
addr + 1
addr + 2
addr + 3
MSGVAL 4 ,
MSGVAL 3
MsgVal64 ∼
MsgVal33
( アドレス A4H)
MsgVal64 ∼
MsgVal57
MsgVal56 ∼
MsgVal49
MsgVal48 ∼
MsgVal41
MsgVal40 ∼
MsgVal33
MSGVAL 6 ,
MSGVAL 5
MsgVal96 ∼
MsgVal65
( アドレス A8H)
MsgVal96 ∼
MsgVal89
MsgVal88 ∼
MsgVal81
MsgVal80 ∼
MsgVal73
MsgVal72 ∼
MsgVal65
MSGVAL 8 ,
MSGVAL 7
MsgVal128 ∼
MsgVal97
( アドレス ACH)
MsgVal128 ∼
MsgVal121
MsgVal120 ∼
MsgVal113
MsgVal112 ∼
MsgVal105
MsgVal104 ∼
MsgVal97
第 11 章 CAN コントローラ
11.4.5
CAN プリスケーラレジスタ (CANPRE)
CAN プリスケーラレジスタ (CANPRE) は , CAN インタフェースに供給するクロッ
クの分周比を定義するものです。本レジスタの値を変更する場合は , CAN 制御レジ
スタ (CTRLR) の初期化ビット (Init) を "1" にセットし , すべてのバス動作を停止し
てください。
■ レジスタ構成
CAN プリスケーラレジスタ
アドレス
01A8H
bit15
bit14
bit13
bit12
−
R
−
R
−
R
−
R
bit11
bit10
bit9
bit8
CANPRE3 CANPRE2 CANPRE1 CANPRE0
R/W
R/W
R/W
初期値
00000000B
R/W
R/W :リード / ライト可能
R
:リードオンリ
■ レジスタ機能
[bit15 ∼ bit12] res:予約ビット
これらのビットからは "0000B" が読み出されます。
書込みはレジスタに反映されません。
[bit11 ∼ bit8] CAN プリスケーラ設定ビット
CANPRE[3:0]
機能
0000
CAN クロックとしてシステムクロックが選択 [ 初期値 ]
0001
CAN クロックとしてシステムクロックの 1/2 周期が選択
001x
CAN クロックとしてシステムクロックの 1/4 周期が選択
01xx
CAN クロックとしてシステムクロックの 1/8 周期が選択
1000
CAN クロックとしてシステムクロックの 2/3 周期が選択
クロックのデューティは 67% となります。
1001
CAN クロックとしてシステムクロックの 1/3 周期が選択
101x
CAN クロックとしてシステムクロックの 1/6 周期が選択
11xx
CAN クロックとしてシステムクロックの 1/12 周期が選択
• CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1"
にセットし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16 MHz 以
下としてください。
345
第 11 章 CAN コントローラ
11.5
CAN 機能
CAN コントローラの動作と機能について説明します。
以下の機能について説明します。
• メッセージオブジェクト
• メッセージ送信動作
• メッセージ受信動作
• FIFO バッファ機能
• 割込み機能
• ビットタイミング
• テストモード
• ソフトウェア初期化
• CAN クロックプリスケーラ
346
第 11 章 CAN コントローラ
11.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" にクリアされます ( 図 11.5-1 参照 ) 。
IFx コマンドマスクレジスタは , 1 つのメッセージオブジェクトの全データ転送 , ある
いはデータの部分転送のいずれかを設定します。メッセージ RAM の構造上 , メッセー
ジオブジェクトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッ
セージオブジェクトの全データをメッセージ RAM へ書込みます。したがって , メッ
セージインタフェースレジスタからメッセージ RAM へのデータ転送は , リードモディ
ファイライト実行サイクルを要しています。
347
第 11 章 CAN コントローラ
図 11.5-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送
スタート
NO
IFxコマンド要求レジスタ
への書込み
YES
BUSY = 1
Interrupt = 0
NO
YES
WR/RD = 1
メッセージRAMからメッセージインタフェースレジスタ
への読出し
メッセージRAMからメッセージインタフェースレジスタ
への読出し
メッセージインタフェースレジスタからメッセージRAM
への書込み
BUSY = 0
Interrupt = 1
348
第 11 章 CAN コントローラ
11.5.2
メッセージ送信動作
送信メッセージオブジェクトの設定方法および送信動作について説明します。
■ メッセージ送信
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 ,
CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ
トを評価します。送信要求を保留している中で , 最高優先度の有効メッセージオブジェ
クトが , 送信用のシフトレジスタへ転送が行われます。そのときメッセージオブジェク
トの NewDat ビットは "0" にリセットされます。
正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat=0)
場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" にセットされている場合
は , 送信成功後に IntPnd ビットが "1" にセットされます。CAN コントローラが CAN バス
上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイド
ルになると , 直ちにメッセージの再送信が行われます。
■ 送信優先度
メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32 ( または搭載し
ている最大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ
以上の送信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号
順に転送が行われます。
349
第 11 章 CAN コントローラ
■ 送信メッセージオブジェクトの設定
図 11.5-2 に送信オブジェクトの初期化方法を示します。
図 11.5-2 送信メッセージオブジェクトの初期化
MsgVal
1
Arb
Data
Mask
application application application
EoB
Dir
1
1
New Dat MsgLst RxIE
0
0
0
TxIE
Int Pnd
RmtEn
TxRqst
application
0
application
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 を持つリモートフレームを受信し , その後 , 送信を
許可 (TxRqst ビットに "1" をセット ) するために使用されます。詳細は「11.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" を設定してく
ださい。
350
第 11 章 CAN コントローラ
11.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" にリセットされます。これは , リモートフ
レーム送信処理中に , 要求データフレームを受信した場合 , 送信処理を防ぐために行わ
れます。
351
第 11 章 CAN コントローラ
■ リモートフレーム
リモートフレーム受信時の動作は , 下記の 3 つの処理があります。一致するメッセージ
オブジェクトの設定より , リモートフレーム受信時の処理が選択されます。
1) Dir=1 ( 送信方向 ) , RmtEn=1, UMask=1 または 0
一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst
ビットのみ "1" にセットされ , リモートフレームに対するデータフレームの自動返
信 ( 送信 ) を行います (TxRqst ビット以外のメッセージオブジェクトは変更されま
せん )。
2) Dir=1( 送信方向 ) , RmtEn=0, UMask=0
受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで
リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは
変更されません ) 。
3) Dir=1 ( 送信方向 ) , RmtEn=0, UMask=1
受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ
セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受
信データフレームのように処理されます。受信したアービトレーションフィールド
とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッ
セージオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが
"1" にセットされます。メッセージオブジェクトのデータフィールドは変更されま
せん。
352
第 11 章 CAN コントローラ
■ 受信メッセージオブジェクトの設定
図 11.5-3 に受信メッセージオブジェクトの初期化方法を示します。
図 11.5-3 受信メッセージオブジェクトの初期化
MsgVal
1
Arb
Data
Mask
application application application
EoB
Dir
1
0
New Dat MsgLst
0
0
RxIE
application
TxIE Int Pnd RmtEn TxRqst
0
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 を持つデータフレームの受信を許可するために
使用します。詳細は , 「11.5.3 メッセージ受信動作」のデータフレーム受信を参照して
ください。
<注意事項>
IFx マスクレジスタの Dir ビットのマスク設定は禁止です。
353
第 11 章 CAN コントローラ
■ 受信メッセージの処理
CPU は , メッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み
出すことが可能です。
通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ
ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に
よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー
ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設
定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす
ることが可能です。
受信メッセージの処理は , アクセプタンスフィルタにより一致した場合 , メッセージを
受信します。メッセージオブジェクトでアクセプタンスフィルタのマスクを使用して
いる場合は , マスク設定されたデータがアクセプタンスフィルタから除外され , メッ
セージを受信するか判断します。
NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ
セージが受信されたかを示します。
MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態
で次の受信データを受信したために前のデータを失ってしまったことを示します。
MsgLst ビットは自動的にリセットされません。
リモートフレーム送信処理中に , アクセプタンスフィルタにより一致するデータフ
レームが受信された場合には , TxRqst ビットは自動的に "0" にリセットされます。
354
第 11 章 CAN コントローラ
11.5.4
FIFO バッファ機能
受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成および
動作について説明します。
■ FIFO バッファの構成
FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ
セージオブジェクトの構成と同じです (「11.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" 書込み ( 書込み保護の解除 ) が行われないと次に受信された
メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて
しまいます。
355
第 11 章 CAN コントローラ
■ FIFO バッファからの読出し
CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ
へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ
に転送され読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/RD
を "0" ( 読出し ) および , TxRqst/NewDat=1, IntPnd=1 に設定し , NewDat ビットと IntPnd
ビットを "0" にリセットしてください。
FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト
は , 必ず最小のメッセージ番号から読み出してください。
図 11.5-4 に FIFO バッファで連結されるメッセージオブジェクトの CPU の処理方法を
示します。
図 11.5-4 FIFO バッファの CPU 処理
スタート
メッセージ割込み
CAN割り込みレジスタ
読出し
8000H
0000H
CAN割込みレジスタ値
8000H,0000H以外
状態割込み処理実行
メッセージ番号 = CAN割込みレジスタ値
IFxコマンド要求レジスタ
(メッセージ番号)書込み
メッセージインタフェースレジスタ
読出し
(リセット:NewDat=0, IntPnd=0)
IFxメッセージ制御レジスタ
読出し
NewDat = 1
NO
YES
IFxメッセージデータレジスタA,B
読出し
EoB = 1
YES
NO
メッセージ番号 = メッセージ番号 + 1
356
終了
(通常処理)
第 11 章 CAN コントローラ
11.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 割込みペンディ
ングレジスタで確認することができます (「11.4.4 メッセージハンドラレジスタ」参照 )。
メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すことは可能で
あり , CAN 割込みレジスタで示されているメッセージ割込みをクリアすると次に優先度
の高い割込みが CAN 割込みレジスタにセットされ , 次の割込み処理を待つことになりま
す。割込みがない場合には , CAN 割込みレジスタは 0000H を示します。
• ステータス割込み (IntId=8000H) は , CAN ステータスレジスタの読出しアクセスによ
り割込みクリアされます。
• CANステータスレジスタへの書込みアクセスによるステータス割込み(IntId=8000H)
は発生しません。
357
第 11 章 CAN コントローラ
11.5.6
ビットタイミング
ビットタイミングについての概要と CAN コントローラにおけるビットタイミングに
ついて説明します。
CAN ネットワークの各 CAN ノードは , それぞれクロック発振器 ( 通常は水晶発振器 )
を持っています。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成
できます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作
り出せます。
これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な
ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト
リームへ再同期化することで異なるビットレートを補償できます。
CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 11.5-5 参照 ) , 同期化部
(Sync_Seg), 伝送時間部 (Prop_Seg), フェーズバッファ部 1(Phase_Seg1), フェーズバッ
ファ部 2(Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量
( 表 11.5-1 参照 ) から成ります。ビットタイムの基本単位時間 (tq) は , CAN コントロー
ラのシステムクロック fsys とボーレートプリスケーラ (BRP) で定義されます:
tq = BRP / fsys
CAN のシステムクロック fsys は , クロック入力の周波数 ( 図 11.5-6 参照 ) になります。
同期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミングと
なります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を補償し
ます。フェーズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指定
します。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを補償するために再同期
化時のサンプリングポイントの移動幅を定義します。
図 11.5-5 ビットタイミング
1ビットタイム(BT)
Sync
_Seg
Prop_Seg
1 単位時間
(tq)
358
Phase_Seg1
Phase_Seg2
サンプリングポイント
第 11 章 CAN コントローラ
表 11.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 の定義
固定長 システムクロックへの同期化
次に CAN コントローラにおけるビットタイミングを示します。
図 11.5-6 CAN コントローラにおけるビットタイミング
1ビットタイム(BT)
Sync
_Seg
TEG1
TEG2
1 単位時間
(tq)
サンプリングポイント
表 11.5-2 CAN コントローラのパラメータ
パラメータ
レンジ
機能
BRPE, BRP
0 ∼ 1023
時間量の長さ tq の定義
ビットタイミングレジスタおよび BRP 拡張レジスタ
により最大 1024 までプリスケーラを拡張できます。
Sync_Seg
1 tq
TSEG1
1 ∼ 15 tq
サンプリングポイント前のタイムセグメントです。
Prop_Seg と Phase_Seg1 に相当します。
ビットタイミングレジスタにより制御可能です。
TSEG2
0 ∼ 7 tq
サンプリングポイント後のタイムセグメントです。
Phase_Seg2 に相当します。
ビットタイミングレジスタにより制御可能です。
SJW
0 ∼ 3 tq
再同期化ジャンプ幅です。
ビットタイミングレジスタにより制御可能です。
システムクロックへの同期化
固定長
359
第 11 章 CAN コントローラ
各パラメータの関係を以下に示します。
tq
= ([BRPE, BRP] + 1) / fsys
BT = SYNC_SEG + TEG1 + TEG2
= (1 + (TSEG1 + 1) + (TSEG2 + 1)) × tq
= (3 + TSEG1 + TSEG2) × tq
360
第 11 章 CAN コントローラ
11.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 バス上のトラフィック解析ができます。
図 11.5-7 にサイレントモードでの信号 CAN_TX と CAN_RX の CAN コントローラへの
接続を示します。
図 11.5-7 サイレントモードでの CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
= 1
Tx
Rx
CAN Core
361
第 11 章 CAN コントローラ
■ ループバックモード
CAN テストレジスタの LBack ビットを "1" にセットすることにより , CAN コントロー
ラをループバックモードに設定できます。
ループバックモードは , 自己診断機能に使用できます。
ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN
コントローラが送信したメッセージを , RX 側で受信したメッセージとして扱い , アク
セプタンスフィルタを通過したメッセージは , 受信バッファに格納します。
図 11.5-8 にループバックモードでの信号 CAN_TX と CAN_RX の CAN コントローラへ
の接続を示します。
図 11.5-8 ループバックモードの CAN コントローラ
CAN_TX
CAN_RX
Tx
Rx
CANコントローラ
CAN Core
外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのド
ミナントビットはサンプリングされません。そのため通常 , CAN コントローラはアク
ノリッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生しな
いようにしています。
362
第 11 章 CAN コントローラ
■ サイレントモードと結合したループバックモード
CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" にセットすることに
より , ループバックモードとサイレントモードを結合させ動作させることが可能です。
このモードは , ホットセルフテスト用に使用できます。ホットセルフテストとは , CAN
コントローラがループバックモードでテストしたときに , CAN_TX 端子にはレセッシ
ブの固定出力 , CAN_RX 端子からの入力は無効となりますので , CAN システムの動作
に影響がないことを意味しています。
図 11.5-9 にサイレントモードとループバックモードの結合したときの信号 CAN_TX と
CAN_RX の CAN コントローラへの接続を示します。
図 11.5-9 サイレントモードとループバックモードの結合された CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
= 1
Tx
Rx
CAN Core
363
第 11 章 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-0 は受信された DLC を示し , ほかの制御ビットは "0" として読み出され
ます。
364
第 11 章 CAN コントローラ
■ 端子 CAN_TX のソフトウェア制御
CAN 送信端子である CAN_TX は , 4 つの出力機能があります。
• シリアルデータ出力 ( 通常出力 )
• CANコントローラのビットタイミングをモニタするための, CANサンプリングポイ
ント信号出力
• ドミナント固定出力
• レセッシブ固定出力
ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと
もに , CAN バスの物理層のチェックに使用することができます。
CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可
能です。
CANメッセージ送信もしくはループバックモード, サイレントモード, ベーシックモー
ドを使用する際は , CAN_TX をシリアルデータ出力に設定する必要があります。
365
第 11 章 CAN コントローラ
11.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" にセットされると , ボーレート制
御用のビットタイミングレジスタと BRP 拡張レジスタへの設定が可能となります。
Init ビットを "0" にリセットすることによりソフトウェア初期化を終了します。また ,
Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。
Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ
スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ
の転送が行われます。
通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 ,
MsgVal を無効に設定してから変更してください。
366
第 11 章 CAN コントローラ
11.5.9
CAN クロックプリスケーラ
PLL 動作中の CAN クロック切換えについて説明します。
■ ブロックダイヤグラム
CAN クロックプリスケーラの概要について以下のブロックダイヤグラムに示します。
CANクロックプリスケーラレジスタのCANPREビットの設定に従いCANインタフェー
スに供給されるクロックの分周比が決定されます。
CANクロック4
PLL
CANクロック3
クロック
分周期
CANクロック2
X0
Div by
CANクロック1
CANPRE
CANクロック0
367
第 11 章 CAN コントローラ
■ クロック切換え手順
CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下に示す
手順を推奨します。
CAN クロック切換え:
OSCILLATOR -> PLL
CAN クロック切換え:
PLL -> OSCILLATOR
CAN制御レジスタ;
Initビットの設定
CAN制御レジスタ;
Initビットの設定
PLL 許可
プリスケーラ値設定
PLLロック時間待ち
PLL 禁止
プリスケーラ値設定
CAN制御レジスタ;
Initビットのリセット
368
CAN制御レジスタ;
Initビットのリセット
第 11 章 CAN コントローラ
■ CAN クロックプリスケーラ設定
CAN クロックプリスケーラに設定可能な値を示します。
CAN インタフェースに供給されるクロックは , システムクロックを CAN クロックプリ
スケーラの設定値に従い分周されたものとなります。
CANPRE[3:0]
機能
システムクロック
32 MHz 時
CAN クロックとしてシステムクロックが選択 [ 初期値 ]
32 MHz
( 設定禁止 )
0001
CAN クロックとしてシステムクロックの 1/2 周期が選択
16 MHz
001x
CAN クロックとしてシステムクロックの 1/4 周期が選択
8 MHz
01xx
CAN クロックとしてシステムクロックの 1/8 周期が選択
4 MHz
1000
CAN クロックとしてシステムクロックの 2/3 周期が選択
クロックのデューティは 67% となります。
21.33 MHz
( 設定禁止 )
1001
CAN クロックとしてシステムクロックの 1/3 周期が選択
10.67 MHz
101x
CAN クロックとしてシステムクロックの 1/6 周期が選択
5.33 MHz
11xx
CAN クロックとしてシステムクロックの 1/12 周期が選択
2.67 MHz
0000
• CAN プリスケーラ設定ビットの変更は , CAN 制御レジスタの初期化ビットを "1" に
セットし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16 MHz 以下と
してください。
369
第 11 章 CAN コントローラ
370
第 12 章
LIN-UART
LIN 対応 UART の機能と動作について説明します。
12.1 概要
12.2 UART の構成
12.3 UART のレジスタ
12.4 UART の割込み
12.5 UART のボーレート
12.6 UART の動作
12.7 UART 使用上の注意事項
371
第 12 章 LIN-UART
12.1
概要
LIN(Local Interconnect Network) 機能付き UART(Universal Asynchronous
Receiver and Transmitter) は , 外部デバイスとの非同期 / 同期通信を実現する , 汎
用のシリアルデータ通信インタフェースです。UART は双方向通信機能 ( ノーマル
モード ) , マスタ−スレーブ通信機能 ( マスタシステムにおけるマルチプロセッサ
モード ) , LIN バスシステム ( マスタ / スレーブ , 両方での動作 ) をサポートしていま
す。
■ 概要
UART は , 別の CPU あるいは周辺回路 , 特に LIN デバイスとのデータ送受信に使用さ
れる汎用のシリアルデータ通信インタフェースです。表 12.1-1 に UART の機能を示し
ます。
表 12.1-1 UART の機能 (1 / 2)
項目
372
機能
データバッファ
全二重バッファ
シリアル入力
非同期モードでは , 5 回のオーバサンプリングを実行し , 受
信値を決定
転送モード
・クロック同期
( スタート / ストップ同期 , スタート / ストップビット選択 )
・クロック非同期 ( スタート / ストップビット使用 )
転送レート
・専用の 15 ビットボーレートジェネレータ搭載
・外部クロック入力が使用でき , リロードカウンタで調整
データ長
・7 ビット ( 同期モード・LIN モードでは使用不可 )
・8 ビット
シグナルモード
NRZ
スタートビット
タイミング
非同期モードでは , スタートビットの立下りエッジとクロッ
ク同期化
受信エラー検出
・フレーミングエラー
・オーバランエラー
・パリティエラー
割込み要求
・受信割込み ( 受信完了・受信エラー検出 )
・送信割込み ( 送信完了 )
・バスアイドル割込み ( 受信割込みに属する )
・LIN-Synch-Break 割込み ( 受信割込みに属する )
マスタ−スレーブ通
信機能
( マルチプロセッサ
モード )
1 対複数 (1 マスタ , 複数スレーブ ) の通信が可能
( マスタ , スレーブのいずれのシステムでもサポート )
同期化モード
マスタあるいはスレーブ UART としての機能
第 12 章 LIN-UART
表 12.1-1 UART の機能 (2 / 2)
項目
機能
送受信線
直接アクセスが可能
LIN バス
オプション
・マスタデバイスとしての動作
・スレーブデバイスとしての動作
・LIN-Synch-Break の生成
・LIN-Synch-Break の検出
・LIN-Synch-Field のスタート / ストップエッジを ICU で検出
同期シリアル
クロック
同期シリアルクロックは , スタート / ストップビットを用い
た同期通信用に , SCK 端子より継続的に出力可能
クロック遅延
オプション
クロック遅延用の特殊同期クロックモード (SPI 用 )
■ UART の動作モード
UART には 4 つのモードがあり , シリアルモードレジスタ (SMR) の MD0, MD1 ビット
により設定されます。モード 0 とモード 2 は双方向シリアル通信に , モード 1 はマスタ /
スレーブ通信に使用されます。モード 3 は LIN マスタ / スレーブ通信用です。
表 12.1-2 UART の動作モード
データ長
動作モード
0
ノーマルモード
1
マルチプロセッサモード
2
ノーマルモード
3
LIN モード
パリティ
禁止
パリティ
許可
7 または 8
7 または
8 + 1 (*2)
−
8
8
−
同期モード
ストップ
ビット長
データビット
検出 (*1)
非同期
1 or 2
L/M
非同期
1 or 2
L/M
同期
0, 1 or 2
L/M
非同期
1
L
*1:LSB または MSB からの転送モードを意味します。
*2:" + 1" は , マルチプロセッサモードでパリティビットの代わりにアドレス / データの切り換わ
りを示すためです。
<注意事項>
モード 1 ( マルチプロセッサモード ) は , マスタ−スレーブシステムにおける UART のマ
スタ , スレーブどちらの動作でもサポートします。モード 3 では , UART の機能は 8N1
フォーマット , LSB ファーストに固定されます。
373
第 12 章 LIN-UART
モードを変更した場合は, UARTは送受信を停止して待機し, 新たな動作へ移行します。
表 12.1-3 に , シリアルモードレジスタ (SMR) の MD1, MD0 ビットによって設定される
動作モードを示します。
表 12.1-3 モードビットの設定
374
MD1
MD0
モード
0
0
0
非同期 ( ノーマルモード )
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
3
非同期 (LIN モード )
機能
第 12 章 LIN-UART
12.2
UART の構成
本節では , UART の構成について説明します。
■ UART のブロックダイヤグラム
UART は下記のブロックにより構成されています。
• リロードカウンタ
• 受信制御回路
• 受信シフトレジスタ
• 受信データレジスタ (RDR)
• 送信制御回路
• 送信シフトレジスタ
• 送信データレジスタ (TDR)
• エラー検出回路
• オーバサンプリングユニット
• 割込み生成回路
• LIN-Synch-Break および Sync-Field 検出回路
• バスアイドル検出回路
• シリアルモードレジスタ (SMR)
• シリアルコントロールレジスタ (SCR)
• シリアルステータスレジスタ (SSR)
• 拡張通信コントロールレジスタ (ECCR)
• 拡張通信ステータス / コントロールレジスタ (ESCR)
375
第 12 章 LIN-UART
■ UART のブロックダイヤグラム
図 12.2-1 UART のブロックダイヤグラム
PE
CLK
リロード
カウンタ
SCK
FRE
TIE
受信クロック
RIE
LBIE
受信制御回路
端子
送信制御回路
LBD
割込み発生回路
BIE
SIN
端子
ORE
送信クロック
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
リロードカウンタ
再スタート受信
RBI
TBI
受信IRQ
TDRE
送信IRQ
オーバ
サンプリング
ユニット
SOT
送信パリティ
カウンタ
受信パリティ
カウンタ
端子
RDRF
SOT
受信完了
SIN
SIN
ICU信号
受信シフト
レジスタ
LIN-Break
および
Synch-Field
検出回路
送信シフト
レジスタ
LINブレーク
発生回路
送信開始
エラー検出
RDR
バスアイドル
検出回路
TDR
LBR
LBL1
LBL0
STR
PE
ORE
FRE
RBI
TBI
LBD
内部データバス
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
376
SSR
レジスタ
MD1
MD0
(OTO)
(EXT)
(REST)
UPCL
SCKE
SOE
SMR
レジスタ
PEN
P
SBL
CL
AD
CRE
RXE
TXE
SCR
レジスタ
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
LBR
MS
ESCR
レジスタ
SSM
BIE
RBI
TBI
ECCR
レジスタ
第 12 章 LIN-UART
■ 各ブロックの説明
● リロードカウンタ
リロードカウンタは専用のボーレートジェネレータとして機能します。送受信クロッ
クは , 外部クロックまたは内部クロックから生成されます。リロードカウンタにはリ
ロード値として 15 ビットのレジスタがあります。送信リロードカウンタの実際のカウ
ント値は , BGR0/BGR1 の値から読み出すことができます。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン
タによって構成されます。
受信ビットカウンタは受信データをカウントします。指定されたデータ長の 1 データ
の受信が完了すると , 受信ビットカウンタは , 受信データレジスタフルフラグを設定し
ます。
スタートビット検出回路はシリアル入力信号からスタートビットを検出し , スタート
ビットの立下りエッジと同期してリロードカウンタへ信号を送出します。
受信パリティカウンタは受信データのパリティを計算します。
● 受信シフトレジスタ
受信シフトレジスタは, SIN端子から入力された受信データをビット単位でシフトして
取り込みます。受信が完了すると , 受信シフトレジスタは受信データを受信データレジ
スタ (RDR) へ転送します。
● 受信データレジスタ (RDR)
受信データレジスタでは受信データが保持されます。シリアル入力データは変換され ,
このレジスタへと格納されます。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信開始回路 , 送信パリティカウンタによって
構成されます。
送信ビットカウンタは送信データビットをカウントします。指定されたデータ長の 1
データの送信が完了すると , 送信ビットカウンタは , 送信データレジスタエンプティフ
ラグを設定します。
送信開始回路は , データが TDR に書き込まれると送信を開始します。
送信パリティカウンタは , パリティありの場合には送信データのパリティビットを生
成します。
● 送信シフトレジスタ
送信シフトレジスタは , 送信データレジスタ (TDR) へ書き込まれた送信データをシフ
トし , SOT 端子へデータをビット単位で出力します。
● 送信データレジスタ (TDR)
送信データレジスタに送信データを設定します。このレジスタに書き込まれたデータ
はシリアルデータへ変換され , 出力されます。
● エラー検出回路
エラー検出回路は , 最新の受信でのエラーの有無を確認します。エラーが発生すると ,
対応するエラーフラグをセットします。
377
第 12 章 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)
シリアルモードレジスタにより , 下記の動作が行われます。
- UART 動作モードの選択
- クロック入力の選択
- 外部クロックが 1 対 1 接続 , またはリロードカウンタ接続であるかの選択
- 専用リロードタイマの再起動
- UART のリセット ( レジスタの設定は保存 )
- シリアル出力端子 (SOT) の出力許可
- シリアルクロック端子 (SCK) の入出力切換え
● シリアルコントロールレジスタ (SCR)
シリアルコントロールレジスタにより , 下記の動作が行われます。
- パリティビットの有無
- パリティビットの選択
- ストップビット長の指定
- データ長の指定
- モード 1 におけるフレームデータフォーマットの指定
- エラーフラグのクリア
- 送信許可
- 受信許可
378
第 12 章 LIN-UART
● シリアルステータスレジスタ (SSR)
シリアルステータスレジスタで送信 / 受信状態およびエラー状態を確認します。また ,
送信 / 受信割込みの許可 , 転送方向 (LSB ファースト /MSB ファースト ) の設定も行い
ます。
● 拡張ステータス / コントロールレジスタ (ESCR)
拡張ステータス / コントロールレジスタでは LIN 機能を設定できます。SIN, SOT 端子
への直接アクセスと UART 同期クロックモードの設定ができます。
● 拡張通信コントロールレジスタ (ECCR)
拡張通信コントロールレジスタでは , バスアイドル検出割込みの設定 , 同期クロック設
定 , LIN-Break 生成ができます。
379
第 12 章 LIN-UART
12.3
UART のレジスタ
図 12.3-1 に , UART のレジスタを示します。
■ UART のレジスタ
図 12.3-1 UART のレジスタ
SCR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
PEN
R/W
P
R/W
SBL
R/W
CL
R/W
AD
R/W
CRE
R/W
RXE
R/W
TXE
R/W
00000000B
SMR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MD1
R/W
MD0
R/W
OTO
R/W
EXT
R/W
REST
W
UPCL
W
SCKE
R/W
SOE
R/W
00000000B
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
00001000B
R
R
R
R
R
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
D6
D5
D4
D3
D2
D1
D0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
LBIE
R/W
LBD
R/W
LBL1
R/W
LBL0
R/W
SOPE
R/W
SIOP
R/W
CCO
R/W
SCES
R/W
00000100B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
LBR
MS
SCDE
SSM
BIE
RBI
TBI
000000XXB
−
W
R/W
R/W
R/W
R/W
R
R
SSR
RDR / TDR
ESCR
ECCR
R/W :リード / ライト可能
R
:リードオンリ
W :ライトオンリ
( 続く )
380
第 12 章 LIN-UART
( 続き )
BGR1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
B14
B13
B12
B11
B10
B09
B08
00000000B
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
B07
B06
B05
B04
B03
B02
B01
B00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
BGR0
R/W :リード / ライト可能
381
第 12 章 LIN-UART
12.3.1
シリアルコントロールレジスタ (SCR)
シリアルコントロールレジスタ (SCR) では , パリティビットの指定 , ストップビッ
ト長とデータ長の選択 , モード 1 におけるフレームデータフォーマットの選択 , 受信
エラーフラグのクリア , 送信 / 受信の許可を設定します。
■ シリアルコントロールレジスタ (SCR)
図 12.3-2 シリアルコントロールレジスタ (SCR) のビット構成
SCR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
PEN
P
SBL
CL
AD
CRE
RXE
TXE
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
[bit15] PEN:パリティ許可ビット
PEN
パリティ許可
0
パリティなし [ 初期値 ]
1
パリティあり
このビットは , シリアル非同期モードでの送信データにパリティの付与を選択しま
す。受信中には , パリティの検出を行います。
パリティはモード 0 および , ECCR の SSM ビットが設定されている場合はモード 2 で
も追加されます。このビットはモード 3 (LIN モード ) では "0" 固定 ( パリティなし )
です。
[bit14] P:パリティ選択ビット
P
パリティ選択
0
偶数パリティ [ 初期値 ]
1
奇数パリティ
パリティが有効である場合は , このビットにより偶数パリティ (0), 奇数パリティ (1)
が選択されます。
[bit13] SBL:ストップビット長選択ビット
SBL
382
ストップビット長
0
1 ビット [ 初期値 ]
1
2 ビット
第 12 章 LIN-UART
このビットは , 非同期データフレームのストップビット長を選択します。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 ビットの使用については , 「12.7 UART 使用上の注意事項」を参照してください。
[bit10] CRE:受信エラーフラグクリアビット
受信エラークリア
CRE
書込み
0
影響なし [ 初期値 ]
1
すべての受信エラー
(PE, FRE, ORE) をクリア
読出し
読出し値は常に "0"
このビットにより , シリアルステータスレジスタ (SSR) の PE, FRE, ORE フラグがク
リアされます。このビットは受信エラー割込み要因もクリアします。
"1" 書込みによりエラーフラグはクリアされます。"0" 書込みは影響ありません。
読出しは常に "0" を返します。
383
第 12 章 LIN-UART
[bit9] RXE:受信許可ビット
RXE
受信許可
0
受信禁止 [ 初期値 ]
1
受信許可
このビットにより UART の受信が許可されます。このビットが "0" に設定されてい
る場合は , UART はデータフレームの受信を停止します。モード 0 およびモード 3
での LIN-Break 検出では無効のままです。
[bit8] TXE:送信許可ビット
TXE
送信許可
0
送信禁止 [ 初期値 ]
1
送信許可
このビットにより UART の送信が許可されます。このビットが "0" に設定されてい
る場合は , UART はデータフレームの送信を停止します。
384
第 12 章 LIN-UART
12.3.2
シリアルモードレジスタ (SMR)
シリアルモードレジスタ (SMR) は , 動作モードとボーレートクロックを選択します。
また , シリアルクロック (SCK) の入出力方向の指定 , シリアル出力許可設定を行い
ます。
■ シリアルモードレジスタ (SMR)
図 12.3-3 シリアルモードレジスタ (SMR) のビット構成
SMR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MD1
R/W
MD0
R/W
OTO
R/W
EXT
R/W
REST
W
UPCL
W
SCKE
R/W
SOE
R/W
00000000B
R/W :リード / ライト可能
W :ライトオンリ
[bit7, bit6] MD1, MD0:動作モード選択ビット
MD0
MD1
0
0
モード 0:非同期ノーマルモード [ 初期値 ]
1
0
モード 1:非同期マルチプロセッサモード
0
1
モード 2:同期モード
1
1
モード 3:非同期 LIN モード
動作モード設定
これらのビットにより , UART の動作モードが設定されます。
[bit5] OTO:1 to 1 外部クロック選択ビット
OTO
外部クロック選択
0
外部クロックを , ボーレートジェネレータ ( リロードカウンタ ) に
使用 [ 初期値 ]
1
外部クロックをシリアルクロックとして使用
このビットが設定されると , UART のシリアルクロックとして外部クロックが直接
使用されます。この機能は同期スレーブモード動作時に使用されます。
385
第 12 章 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" が書き込まれると , UART は直ちにリセットされますが , レジスタ
の設定値は保存されます。
受信 / 送信は中断されます。
エラーフラグはすべてクリアされ , 受信データレジスタ (RDR) は "00H" となります。
"0" 書込みは影響ありません。
読出しは常に "0" を返します。
386
第 12 章 LIN-UART
[bit1] SCKE:シリアルクロック出力許可
SCKE
シリアルクロック出力許可
0
外部クロック入力 [ 初期値 ]
1
内部クロック出力
このビットはシリアルクロック端子 (SCK) の入出力を制御します。
このビットが "0" の場合は , SCK 端子は汎用ポート / シリアルクロック入力端子と
して動作します。"1" の場合は , シリアルクロック出力端子となります。
<注意事項>
SCK 端子をシリアルクロック入力として使用する場合 (SCKE=0, ポートは入力ポートとし
て設定してください。シリアルクロック出力として使用する場合は , SCKE ビットの設定と
SCK 端子に対応するポートファンクションレジスタ (PFR) の設定が必要です。ポートファ
ンクションレジスタの設定についての詳細は , 「第 6 章 I/O ポート」を参照してください。
また , 外部クロック選択ビットを使用 (EXT=1) して外部クロックを選択してください。
[bit0] SOE:シリアルデータ出力許可ビット
SOE
シリアルデータ出力
0
SOT 出力禁止 [ 初期値 ]
1
SOT 出力許可
このビットにより , シリアル出力が許可されます。
このビットが 1 の場合は , シリアルデータ出力が許可されます。
<注意事項>
SOT 端子をシリアル出力として使用する場合は , SOE ビットの設定と , 対応するポート
ファンクションレジスタ (PFR) の設定が必要です。ポートファンクションレジスタの設定
についての詳細は , 「第 6 章 I/O ポート」を参照してください。
387
第 12 章 LIN-UART
12.3.3
シリアルステータスレジスタ (SSR)
シリアルステータスレジスタ (SSR) により , 送信 / 受信状態 , エラーの有無を確認で
きます。また , 送信 / 受信割込みの制御も行います。
■ シリアルステータスレジスタ (SSR)
図 12.3-4 シリアルステータスレジスタ (SSR) のビット構成
SSR
bit15
bit14
bit13
bit12
bit11
bit10
PE
ORE
FRE
RDRF
TDRE
BDS
R
R
R
R
R
R/W
bit9
bit8
初期値
RIE
TIE
00001000B
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
[bit15] PE:パリティエラーフラグビット
PE
パリティエラー
0
パリティエラーなし [ 初期値 ]
1
受信中にパリティエラー発生
受信中にパリティエラーが発生すると , このビットは "1" にセットされます。シリ
アルコントロールレジスタ (SCR) の CRE ビットに "1" が書き込まれると , このビッ
トはクリアされます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
このフラグがセットされた場合は, 受信データレジスタ(RDR)のデータは無効です。
[bit14] ORE:オーバランエラーフラグビット
ORE
オーバランエラー
0
オーバランエラーなし [ 初期値 ]
1
受信中にオーバランエラー発生
受信中にオーバランエラーが発生すると , このビットは "1" にセットされます。シ
リアルコントロールレジスタ (SCR) の CRE ビットに "1" が書き込まれると , この
ビットはクリアされます。
このビットと RIE ビットが "1" の場合は , 受信割込み要求が出力されます。
このフラグがセットされた場合は, 受信データレジスタ(RDR)のデータは無効です。
388
第 12 章 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" の場合は , 送信割込み要求が出力されます。
389
第 12 章 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" になると , 送信割込み要求が送出され
ます。
390
第 12 章 LIN-UART
12.3.4
受信 / 送信データレジスタ (RDR/TDR)
受信データレジスタ (RDR) は受信データを , 送信データレジスタは送信データを保
持します。RDR, TDR は同一のアドレスに配置されています。
■ 受信 / 送信データレジスタ (RDR/TDR)
図 12.3-5 受信 / 送信データレジスタ
RDR / TDR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
[bit7 ∼ bit0] D7 ∼ D0: データレジスタ
アクセス
データレジスタ
読出し
受信データレジスタからの読出し
書込み
送信データレジスタへの書込み
● 受信
RDR は受信データを格納するレジスタです。SIN 端子より転送されたシリアルデータ
信号は , シフトレジスタで変換され , このレジスタへ格納されます。データ長が 7 ビッ
トの場合は , MSB(D7) は "0" となります。受信が完了すると , データはこのレジスタへ
格納され , 受信データフルフラグビット (SSR の RDRF ビット ) が "1" にセットされま
す。このとき受信割込み要求が許可されていると , 受信割込みが発生します。
SSR の RDRF ビットが "1" のときに RDR を読み出してください。RDR が読み出され
ると , RDRF ビットは自動的に "0" にクリアされます。受信割込みが許可され , 受信エ
ラーが発生していない場合は , 受信割込みもクリアされます。
● 送信
送信データが送信許可状態で送信データレジスタへ書き込まれると , データは送信シ
フトレジスタへ転送後シリアルデータへと変換され, シリアルデータ出力端子(SOT)か
ら送信されます。データ長が 7 ビットの場合は , MSB(D7) は送信されません。
このレジスタへ送信データが書き込まれると , 送信データエンプティフラグビット
(SSR の TDRE ビット ) が "0" にクリアされます。送信シフトレジスタへの転送が完了
すると , TDRE ビットは "1" にセットされます。TDRE ビット "1" であれば , 次の送信
データをこのレジスタへ書き込むことができます。送信割込み要求が許可されている
場合は , 送信割込みが発生します。送信割込みの発生 , もしくは TDRE ビットが "1" で
あれば , 次のデータを書き込んでください。
391
第 12 章 LIN-UART
<注意事項>
TDR は書込み専用 , RDR は読出し専用のレジスタです。このレジスタは同一のアドレス
に配置されているため , 読出し値と書込み値は異なります。そのため , リードモディファ
イライト系命令ではアクセスしないでください。
392
第 12 章 LIN-UART
12.3.5
拡張ステータス / コントロールレジスタ (ESCR)
拡張ステータス / コントロールレジスタでは LIN 機能を設定できます。また , SIN,
SOT 端子への直接アクセスと UART 同期クロックモードの設定ができます。
■ 拡張ステータス / コントロールレジスタ (ESCR)
図 12.3-6 拡張ステータス / コントロールレジスタ (ESCR) のビット構成
ESCR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
00000100B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
[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 検出割込みが許可されている場合は , 割
込みもクリアします。
リードモディファイライト系命令では常に "1" が返されますが , この場合は LINBreak 検出を意味しません。
393
第 12 章 LIN-UART
[bit13, bit12] LBL1, LBL0:LIN-Break 長選択ビット
LBL1
LBL0
0
0
LIN-Break 長は 13 ビット [ 初期値 ]
0
1
LIN-Break 長は 14 ビット
1
0
LIN-Break 長は 15 ビット
1
1
LIN-Break 長は 16 ビット
LIN-Break 長
これらのビットにより , UART で生成される LIN-Break のシリアルビット長が定義
されます。LIN-Break の受信では , 常に 11 ビット固定です。
[bit11] SOPE:シリアル出力端子直接アクセス許可ビット
SOPE
シリアル出力端子直接アクセス
0
シリアル出力端子直接アクセス禁止 [ 初期値 ]
1
シリアル出力端子直接アクセス許可
このビットが "1" にセットされると , SOT 端子へ直接書込みを行うことが可能にな
ります。
詳細は , 表 12.3-1 を参照してください。
[bit10] SIOP:シリアル入出力端子直接アクセス許可ビット
シリアル入出力端子アクセス
SIOP
書込み (SOPE が "1" の場合 )
0
SOT は "0" 出力
1
SOT は "1" 出力 [ 初期値 ]
読出し
SIN の値を読出し
通常読出し命令では , SIN 端子の値を返します。書込みは SOT 端子の値を設定しま
す。リードモディファイライト系命令では , SOT の値を返します。
詳細は , 表 12.3-1 を参照してください。
表 12.3-1 SOPE と SIOP の機能
SOPE
SIOP
SIOP への書込み
0
R/W
SOT 端子への影響なし
書込み値は保持
SIN の値を読出し
1
R/W
SOT 端子へ書込み値出力
SIN の値を読出し
1
RMW*
SIOP からの読出し
SOT 端子の値を読出し , 書込み
*: リードモディファイライトの略
<注意事項>
本ビットの設定値は , シリアルコントロールレジスタ (SCR) の TXE ビットが "0" の場合
にのみ有効です。
394
第 12 章 LIN-UART
[bit9] CCO:連続クロック出力許可ビット
CCO
連続クロック出力 ( モード 2)
0
連続クロック出力禁止 [ 初期値 ]
1
連続クロック出力許可
UART がマスタモード 2 ( 同期モード ) で動作し , SCK 端子が出力として設定されて
いる場合に , このビットにより SCK 端子での連続シリアルクロック出力が許可され
ます。
[bit8] SCES:シリアルクロックエッジ選択ビット
SCES
シリアルクロックエッジ選択
0
クロックの立上りエッジでサンプリング ( 通常 ) [ 初期値 ]
1
クロックの立下りエッジでサンプリング ( 反転クロック )
このビットにより , モード 2 ( 同期モード ) での内部シリアルクロックを反転されま
す。UART がモード 2 マスタ ( 同期モード ) で動作し , SCK 端子が出力として設定
されている場合は , 出力クロックも反転されます。
モード 2 スレーブでは , サンプリングエッジが立上りエッジから立下りエッジへと
切り替わります。
395
第 12 章 LIN-UART
12.3.6
拡張通信コントロールレジスタ (ECCR)
拡張通信コントロールレジスタ (ECCR) では , バスアイドル検出割込みの設定 , 同期
クロック設定 , LIN-Break 生成ができます。
■ 拡張通信コントロールレジスタ (ECCR)
図 12.3-7 拡張通信コントロールレジスタ (ECCR) のビット構成
ECCR
bit7
bit6
bit5
bit4
bit3
−
−
bit2
bit1
bit0
初期値
LBR
MS
SCDE
W
R/W
R/W
SSM
BIE
RBI
TBI
000000XXB
R/W
R/W
R
R
R/W :リード / ライト可能
R
:リードオンリ
W :ライトオンリ
[bit7] Reserved:予約ビット
予約ビットです。必ず "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 における UART をマスタあるいはスレーブとして設定
します。マスタとして設定されると , UART は同期クロックを生成します。スレー
ブモードとして設定された場合は , 外部シリアルクロックを受信します。
396
第 12 章 LIN-UART
<注意事項>
スレーブモードとして設定される場合は , クロックソースを外部クロックとして , 1to1 外
部クロック入力に設定してください (SMR の SCKE=0, EXT=1, OTO=1) 。
[bit4] SCDE:シリアルクロック遅延許可ビット
SCDE
モード 2 でのシリアルクロック遅延許可
0
クロック遅延禁止 [ 初期値 ]
1
クロック遅延許可
UART がモード 2 で動作する場合 , このビットがセットされると , シリアル出力ク
ロックは 1 マシンサイクル遅延します。
[bit3] SSM:スタート / ストップビットモード許可
SSM
モード 2 での調歩同期
0
モード 2 でのスタート / ストップビットモード禁止 [ 初期値 ]
1
モード 2 でのスタート / ストップビットモード許可
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" のときは , このビットを使用しないでください。
397
第 12 章 LIN-UART
[bit0] TBI:送信バスアイドルフラグビット
TBI
送信バスアイドル
0
送信動作中
1
送信休止中
SOT 端子での送信がない場合に , このビットは "1" にセットされます。
モード 2 で SSM ビットが "0" のときは , このビットを使用しないでください。
<注意事項>
UART の動作モードをモード 2 に設定した場合に , SSM ビットが "0" のときは , BIE, RBI,
TBI ビットを使用しないでください。
398
第 12 章 LIN-UART
12.3.7
ボーレート / リロードカウンタレジスタ (BGR)
ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設
定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。
■ ボーレート / リロードカウンタレジスタ (BGR)
図 12.3-8 ボーレート / リロードカウンタレジスタ (BGR)
BGR1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
B14
R/W
B13
R/W
B12
R/W
B11
R/W
B10
R/W
B09
R/W
B08
R/W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
B07
R/W
B06
R/W
B05
R/W
B04
R/W
B03
R/W
B02
R/W
B01
R/W
B00
R/W
00000000B
BGR0
R/W :リード / ライト可能
[bit15] Reserved:予約ビット
予約ビットです。読出し値は常に "0" です。
[bit14 ∼ bit8] BGR1:ボーレートジェネレータレジスタ 1
BGR1
ボーレートジェネレータレジスタ 1
書込み
リロード値の bit14 ∼ bit8 をカウンタへ書込み
読出し
カウントビット 14 ∼ 8 の読出し
[bit7 ∼ bit0] BGR0:ボーレートジェネレータレジスタ 0
BGR0
ボーレートジェネレータレジスタ 0
書込み
リロード値の bit7 ∼ bit0 をカウンタへ書込み
読出し
カウントビット 7 ∼ 0 の読出し
■ ボーレート / リロードカウンタレジスタ
ボーレートリロードカウンタレジスタ (BGR) では , シリアルクロックの分周比を設定
します。
レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能
です。
399
第 12 章 LIN-UART
UART の割込み
12.4
UART には受信割込みと送信割込みがあります。下記のいずれかの場合において , 割
込み要求が生成されます。
• 受信データの受信データレジスタ (RDR) への格納 , もしくは受信エラーの発生
• 送信データの送信データレジスタ (TDR) から送信シフトレジスタへの転送
• LIN-Break 検出
• バスアイドル ( 送信 / 受信動作なし )
■ UART の割込み
表 12.4-1 に , 割込みコントロールビットと , 割込み要因を示します。
表 12.4-1 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
ESCR
○
○
△
○ バスアイドル
TDRE
SSR
○
○
○
○
ICP
ICS
○
×
×
LIN-Sync-Field
○ の最初の立下り ICS: ICP
エッジ
ICP の
一時禁止
ICP
ICS
○
×
×
LIN-Sync-Field
○ の 5 回目の立下 ICS: ICP
りエッジ
ICP の禁止
ICU
○:使用可能
△:ECCR の SSM ビットが "1" のときに使用可能
×:使用不可
400
割込み要因
送信レジスタ
エンプティ
ESCR の LBD
ESCR: LBIE ビットへの
"1" 書込み
ECCR: BIE
受信データ /
送信データ
SSR: TIE
送信データの
書込み
第 12 章 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 フラグは
リセットされます。
■ LIN-Synch-Break 割込み
UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能します。
シリアル入力バスが 11 ビットタイム以上 "0" ( ドミナント ) になると , 拡張ステータス /
コントロールレジスタ (ESCR) の LIN-Break 検出フラグビット (LBD) が "1" にセットさ
れます。この場合 , 受信エラーフラグは 9 ビットタイム後に "1" にセットされます。そ
のため , LIN-Sync-Break 検出のみが目的である場合は , RIE フラグあるいは RXE フラグ
を "0" に設定してください。そのほかの場合では , 受信エラー割込みが生成された後 ,
401
第 12 章 LIN-UART
割込み処理ルーチン内で LBD=1 を待ってください。
LBD フラグに "1" が書き込まれると , 割込みと LBD フラグはクリアされます。これに
より , 以下の LIN マスタへのシリアルクロックの調整手順のため , CPU は確実に LINSync-Break を検出します。
■ LIN-Synch-Field エッジ検出割込み
UART がモード 0 もしくはモード 3 で LIN スレーブとして動作する場合に機能します。
LIN-Break 検出後の受信バスの立下りエッジは 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" の場合は使用できません。
図 12.4-1 に , バスアイドル割込みの生成を示します。
図 12.4-1 バスアイドル割込み生成
送信データ
受信データ
TBI
RBI
受信IRQ
: スタートビット
402
: ストップビット
: データビット
第 12 章 LIN-UART
受信割込み生成とフラグセットタイミング
12.4.1
受信割込み要因 , 受信完了 (SSR の RDRF ビット ) と , 受信エラーの発生 (SSR の
PE, ORE, FRE ビット ) について説明します。
■ 受信割込み生成とフラグセットタイミング
シリアルステータスレジスタ (SSR) の受信割込み許可フラグビット (RIE) が "1" にセッ
トされ , データ受信が完了 (RDRF=1) すると , 割込みが生成されます。この割込みは ,
モード 0, モード 1, モード 2 (SSM が "1" の場合 ) , モード 3 でのストップビットの検出 ,
またはモード 2 (SSM が "0" の場合 ) で最終データビットが読まれると生成されます。
<注意事項>
受信エラーが発生した場合は , いずれのモードにおいても受信データレジスタの内容は無
効です。
図 12.4-2 受信動作とフラグセットタイミング
受信データ
(モード0/モード3)
ST
D0
D1
D2
D5
D6
D7/
P
SP
ST
受信データ
(モード1)
ST
D0
D1
D2
D6
D7
A/D
SP
ST
D0
D1
D2
D4
D5
D6
D7
D0
受信データ
(モード2)
PE(*1), FRE
RDRF
ORE(*2)
(RDRF= 1のとき)
受信割込み発生
*1: PEフラグはモード1,モード3では"0"のままです。
*2: 受信データがCPU(RDRF=1)で読み込まれた場合 OREが発生し, ほかのフレームが読み込まれます。
ST: スタートビット SP: ストップビット
A/D: モード1(マルチプロセッサ)アドレス/データ選択ビット
<注意事項>
図 12.4-2 にはモード 0 とモード 3 でのすべての受信オプションは示されていません。
ここでは , "7p1" と "8N1" です (p="E"[even], or "0"[odd]) 。
403
第 12 章 LIN-UART
図 12.4-3 ORE 設定タイミング
受信データ
RDRF
ORE
404
第 12 章 LIN-UART
送信割込み生成とフラグタイミング
12.4.2
送信割込みは , 次の送信データが送信データレジスタ (TDR) に書き込まれる用意が
できると生成されます。
■ 送信割込み生成とフラグタイミング
送信割込みは , 送信データが送信データレジスタ (TDR) に書き込まれる用意ができる
と生成されます。シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が
"1" に設定され , 送信割込みが許可されている場合に , TDR が空になると送信割込みが
生成されます。
SSR の送信レジスタエンプティ(TDRE) フラグビットは , TDR の空きを示します。TDRE
ビットは読出し専用です。フラグのクリアは TDR へのデータ書込みによってのみ行わ
れます。
UART の送信動作とフラグ設定タイミングを , 図 12.4-4 に示します。
図 12.4-4 送信動作とフラグ設定タイミング
送信割込み発生
送信割込み発生
モード0,1,3:
TDRへの書込み
TDRE
シリアル出力
モード2(SSM=0):
P
P
ST D0 D1 D2 D3 D4 D5 D6 D7
SP ST D0 D1 D2 D3 D4 D5 D6 D7
SP
AD
AD
送信割込み発生
送信割込み発生
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: ストップビット
<注意事項>
図 12.4-4 の例には , モード 0 の送信オプションのすべては示されていません。
ここでは , "8p1"(p="E"[even] or "O"[odd]) です。モード 3 とモード 2 で SSM ビットが "0"
の場合 , パリティは付与されません。
405
第 12 章 LIN-UART
■ 送信割込み要求生成タイミング
送信割込みが許可 (SSR の TIE ビットが "1") されている場合に TDRE フラグが "1" にな
ると , 送信割込み要求が生成されます。
<注意事項>
TDRE の初期値は "1" です。したがって , 送信割込みが許可 (TIE=1) されると , 送信完了
割込みが直ちにセットされます。TDRE は読出し専用です。送信データレジスタ (TDR) へ
の書込みによってのみ TDRE フラグはクリアされます。送信割込みを有効にするタイミ
ングには注意してください。
406
第 12 章 LIN-UART
12.5
UART のボーレート
UART のシリアルクロックとして下記のいずれかを選択できます。
• 専用ボーレートジェネレータ ( リロードカウンタ )
• 外部クロック (SCK 端子からのクロック入力 )
• 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用
■ UART のボーレート選択
図 12.5-1 にボーレート選択回路を示します。下記の 3 つからボーレートを選択可能で
す。
● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用
URATには送信/受信シリアルクロックそれぞれに独立したリロードカウンタがありま
す。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード値に
より設定されます。
リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを
分周します。
● 外部クロックの使用 (1to1 モード )
UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用され
ます。
● 専用ボーレートジェネレータに外部クロックを使用
外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この
モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。
407
第 12 章 LIN-UART
図 12.5-1 ボーレート選択回路 ( リロードカウンタ )
REST
スタートビット
立下りエッジ検出
リロード値: v
Rxc = 0?
セット
15ビット リロード リロード
カウンタ受信
FF
リセット
Rxc = v/2?
0
1
EXT
リロード値: v
Txc = 0?
CLK
SCK
(外部
クロック
入力)
0
1
セット
15ビット リロード
リロード
カウンタ送信
カウンタ値 : Txc
FF
リセット
Txc = v/2?
0
1
内部データバス
EXT
REST
OTO
408
SMR
レジスタ
BGR14
BGR13
BGR12
BGR11
BGR10
BGR09
BGR08
受信クロック
BGR1
レジスタ
BGR07
BGR06
BGR05
BGR04
BGR03
BGR02
BGR01
BGR00
BGR0
レジスタ
OTO
送信クロック
第 12 章 LIN-UART
ボーレートの設定
12.5.1
ボーレートの設定方法と , シリアルクロック周波数の算出結果を示します。
■ ボーレートの算出
ボーレートジェネレータレジスタ (BGR) により 15 ビットリロードカウンタは設定され
ます。
ボーレートの算出には以下の数式を使用してください。
v = [φ /b] − 1
ここで , "φ" はマシンクロック周波数を , "b" はボーレートを示します。
● 算出例
マシンクロックが 16 MHz で , 目的のボーレートが 19200 bps の場合 , リロード値 "v" は
以下のようにして算出できます。
v = [16 × 106 / 19200] − 1 = 832
正確なボーレートは , 以下のように再計算してください。
bexact = φ / (v + 1) = 16 × 106 / 833 = 19207.6831 bps
<注意事項>
リロード値を "0" に設定すると , リロードカウンタは停止します。したがって , 最小の分
周比は 2 分周となります。
409
第 12 章 LIN-UART
■ マシンクロック周波数ごとのボーレート設定例
表 12.5-1 に , マシンクロック周波数とボーレートの設定例を示します。
表 12.5-1 マシンクロックごとのボーレート設定例
8 MHz
16 MHz
20 MHz
24 MHz
32 MHz
ボーレート
value
dev.
value
dev.
value
dev.
value
dev.
value
dev.
4M
−
−
−
−
4
0
5
0
7
0
2M
−
−
7
0
9
0
11
0
15
0
1M
7
0
15
0
19
0
23
0
31
0
500000
15
0
31
0
39
0
47
0
63
0
460800
−
−
−
−
−
−
51
− 0.16
68
− 0.64
250000
31
0
63
0
79
0
95
0
127
0
230400
−
−
−
−
−
−
103
− 0.16
138
0.08
153600
51
− 0.16
103
− 0.16
129
− 0.16
155
− 0.16
207
− 0.16
125000
63
0
127
0
159
0
191
0
255
0
115200
68
− 0.64
138
0.08
173
0.22
207
− 0.16
277
0.08
76800
103
− 0.16
207
− 0.16
259
− 0.16
311
− 0.16
416
0.08
57600
138
0.08
277
0.08
346
− 0.06
416
0.08
555
0.08
38400
207
− 0.16
416
0.08
520
0.03
624
0
832
− 0.04
28800
277
0.08
554
− 0.01
693
− 0.06
832
− 0.03
1110
− 0.01
19200
416
0.08
832
− 0.03
1041
0.03
1249
0
1666
0.02
10417
767
0
1535
0
1919
0
2303
0
3071
0
9600
832
− 0.04
1666
0.02
2083
0.03
2499
0
3332
− 0.01
7200
1110
− 0.01
2221
− 0.01
2777
0.01
3332
− 0.01
4443
− 0.01
4800
1666
0.02
3332
− 0.01
4166
0.01
4999
0
6666
0
2400
3332
− 0.01
6666
0
8332
0
9999
0
13332
0
1200
6666
0
13332
0
16666
0
19999
0
26666
0
600
13332
0
26666
0
−
−
−
−
−
−
300
26666
0
−
−
−
−
−
−
−
−
<注意事項>
偏差の単位は "%" です。
最大同期ボーレートは , マシンクロックの 5 分周です。
410
第 12 章 LIN-UART
■ 外部クロックの使用
SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外
部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば 1.8432
MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択するために
リロードカウンタを使用するように設計されています。
"1to1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信号
が UART シリアルクロック入力へ直接接続されます。これは , UART 同期モード 2 で
スレーブデバイスとして動作させるために必要です。
<注意事項>
いずれの場合においても , クロック信号は UART 内部で MCU クロックと同期化されます。
これは分周できないクロック比は不安定な信号となることを意味します。
■ カウント例
図 12.5-2 に , 送信 / 受信リロードカウンタの動作例を示します。ここではリロード値を
832 としています。
図 12.5-2 リロードカウンタのカウント例
送受信クロック
リロードカウント
00 1
000
832
831
830
829
828
827
412
411
410
リロードカウント値
送受信クロック
リロードカウント
417
416
415
414
413
<注意事項>
シリアルクロック信号の立下りエッジは常に , |(v + 1) / 2| 後です。
411
第 12 章 LIN-UART
12.5.2
リロードカウンタの再起動
リロードカウンタは下記の要因で再起動を行うことができます。
• 送信 / 受信リロードカウンタ双方
・MCU リセット
・UART ソフトウェアクリア (SMR の UPCL ビット )
・UART ソフトウェア再起動 (SMR の REST ビット )
• 受信リロードカウンタのみ
・非同期モードでのスタートビットの立下りエッジ
■ ソフトウェア再起動
シリアルモードレジスタ (SMR) の REST ビットがセットされると , 次のクロックサイ
クルで送信 / 受信リロードカウンタはともに再起動されます。この機能は , 送信リロー
ドカウンタをタイマとして使用するためです。
図 12.5-3 に , この機能の使用法を示します。ここではリロード値を 100 としています。
図 12.5-3 リロードカウンタ再起動例
MCUクロック
リロードカウンタ
クロック出力
REST
リロード値
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" は読出しカウンタ値を意味します。
412
第 12 章 LIN-UART
<注意事項>
SMR の UPCL ビットにより UART がリセットされると , リロードカウンタも再起動され
ます。
■ 自動再起動
非同期 UART モードでは , スタートビットの立下りエッジが検出されると , 受信リロー
ドカウンタは再起動されます。これはシリアル入力シフトレジスタを入力シリアル
データと同期化させるためです。
413
第 12 章 LIN-UART
12.6
UART の動作
UART は動作モード 0 では , 通常双方向シリアル通信として動作します。モード 2
およびモード 3 ではマスタあるいはスレーブとして双方向通信を行います。モード
1 ではマスタあるいはスレーブとしてマルチプロセッサ通信を行います。
■ UART の動作
● 動作モード
UART にはモード 0 ∼ 3 の 4 つの動作モードがあります。表 12.6-1 に , CPU 間接続方
法とデータ転送に応じて選択可能な動作モードを示します。
表 12.6-1 UART の動作モード
データ長
動作モード
0
ノーマルモード
1
マルチプロセッサモード
2
ノーマルモード
3
LIN モード
パリティ
なし
パリティ
あり
7 or 8
7 or 8 + 1*2
−
8
8
−
同期化
ストップ
ビット長
データ
方向 *1
非同期
1 or 2
L/M
非同期
1 or 2
L/M
同期
0, 1 or 2
L/M
非同期
1
L
*1:転送データの形式を意味します。(LSB ファースト , MSB ファースト )
*2:マルチプロセッサモードで , " + 1" はパリティビットの代わりに付与されるアドレス / データ
部の表示ビットを意味します。
<注意事項>
モード 1 は , マスタ−スレーブ接続システムにおいて , UART のマスタ / スレーブいずれ
の動作もサポートします。モード 3 での UART の機能は , 8N1 フォーマット , LSB ファー
ストに固定されます。
モードが変更されると , UART はすべての送受信を停止し , 次の動作を開始します。
414
第 12 章 LIN-UART
■ CPU 間の接続方法
外部クロック "1to1" 接続 ( ノーマルモード ) とマスタ−スレーブ接続 ( マルチプロセッ
サモード ) が選択できます。いずれの接続においても , データ長 , パリティ有無 , 同期
化方法はすべての CPU で共通である必要があります。
下記に示すように動作モードを選択してください。
• "1to1" 接続では , 2 つの CPU を非同期転送モードの動作モード 0, または同期転送モー
ドの動作モード 2 に設定してください。同期モード 2 では , 必ず一方をマスタ , 他方
をスレーブとして設定してください。
• マスタ−スレーブ接続では動作モード 1 を選択し , マスタあるいはスレーブのいず
れかとして使用してください。
■ 同期化方法
非同期動作モードでは , UART 受信クロックは自動的に受信スタートビットの立下り
エッジと同期化されます。
同期動作モードでは , マスタデバイスのクロック信号 , マスタとして動作している場合
は UART 自身により同期化されます。
■ シグナルモード
UART はデータを NRZ 形式として扱います。
■ 動作許可ビット
UART は送信許可ビット (SCR の TXE ビット ) と受信許可ビット (SCR の RXE ビット )
を用いて送受信を制御します。動作が禁止された場合は , それぞれ以下のように停止し
ます。
• 受信 ( 受信シフトレジスタへのデータ入力 ) 中に受信動作が禁止されると , フレーム
受信が終了し , 受信データレジスタ (RDR) の受信データが読み出された後 , 受信動
作が停止します。
• 送信 ( 送信シフトレジスタからのデータ出力 ) 中に送信動作が禁止されると , 送信
データレジスタ (TDR) にデータがなくなるまで待ってから , 送信動作が停止します。
415
第 12 章 LIN-UART
非同期モードでの動作 ( 動作モード 0, 1)
12.6.1
動作モード 0 ( ノーマルモード ) あるいは動作モード 1 ( マルチプロセッサモード )
で UART が使用される場合は , 非同期転送モードが選択されます。
■ 転送データ形式
非同期動作モードでのデータ転送はスタートビット ("L" レベル ) で開始され , ストッ
プビット ( 最小 1 ビット , "H" レベル ) で終了します。ビットストリームの方向 (LSB,
MSB ファースト ) はシリアルステータスレジスタ (SSR) の BDS ビットにより設定され
ます。パリティビットがありと設定されている場合は , 最終データビットとストップ
ビットとの間に配置されます。
動作モード 0 でのデータフレーム長は , パリティビットの代わりとなるアドレス / デー
タ区切りビットを含め , 7 ビットもしくは 8 ビットです。ストップビットは 1 ビットも
しくは 2 ビットが選択可能です。
転送フレームのビット長の計算式は以下のようになります。
ビット長 = 1 + d + p + s
(d = データビット [7 or 8], p = パリティ [0 or 1], s = ストップビット [1 or 2])
図 12.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
A/D
SP
SP
*1: パリティなしかつデータ長が8ビットの場合, D7 (bit 7)
パリティありかつデータ長が7ビットの場合, P (パリティ)
*2: SCRのSBLビットが"1"の場合のみ
ST: スタートビット
SP: ストップビット
A/D: モード1(マルチプロセッサモード)でのアドレス/データ選択ビット
<注意事項>
シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定 (MSB ファースト ) され
ると , ビットストリームは , D7, D6, ••• , D1, D0, (P) として処理されます。
ストップビットは 2 ビットが選択されている場合は , 受信中にどちらも検出されますが ,
1 番目のストップビットで受信データフルフラグ (RDRF) は "1" になります。2 番目のス
トップビットの後 , 次のスタートビットが検出されないと , バスアイドルフラグ (ECCR
の RBI ビット ) が "1" となります (2 番目のストップビットはバス活性を意味します )。
416
第 12 章 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 では , オーバランエラー , フレーミングエラーが検出できます。このモードで
は , パリティはありません。
417
第 12 章 LIN-UART
■ パリティ
モード 0 ( およびモード 2 において , ECCR の SSM ビットが設定されている場合 ) では ,
シリアルコントロールレジスタ (SCR) のパリティ許可 (PEN) ビットにより , UART はパ
リティ計算 ( 送信時 ) , パリティ検出および確認 ( 受信時 ) を実行します。
SCR の P ビットにより , 奇数パリティ , 偶数パリティが設定されます。
418
第 12 章 LIN-UART
12.6.2
同期モードでの動作 ( 動作モード 2)
UART 動作モード 2 ( ノーマルモード ) では , クロック同期転送が使用されます。
■ 転送データ形式
同期モードでは , 拡張通信コントロールレジスタ (ECCR) の SSM ビットが "0" であれ
ば , スタート / ストップビットを持たずに 8 ビットデータが転送されます。モード 2 で
のデータ形式はクロック信号によります。
図 12.6-2 に , 同期動作モードでの送信時のデータ形式を示します。
図 12.6-2 転送データ形式 ( 動作モード 2)
送受信データ
(ECCR:SSM=0, SCR:PEN=0)
D0
D1
D2
D3
D4
D5
D6
D7
*
送受信データ
(ECCR:SSM=1, SCR:PEN=0)
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
*
送受信データ
(ECCR:SSM=1, SCR:PEN=1)
ST
D0
D1
D2
*: SCRのSBLビットが"1"の場合のみ
ST: スタートビット
SP: ストップビット
D3
D4
D5
D6
D7
P
SP
SP
P: パリティビット
■ モード 2 でのクロック反転とスタート / ストップビット
拡張ステータス / コントロールレジスタ (ESCR) の SCES ビット設定されている場合は ,
シリアルクロックは反転します。したがって, スレーブモードでは, 受信シリアルクロッ
クの立下りエッジでデータを取り込みます。マスタモードで SCES ビットが設定される
と , クロック信号のマークレベルが "0" となります。拡張通信コントロールレジスタ
(ECCR) の SSM ビットが設定されると , 非同期モードのようにデータフォーマットにス
タートビットとストップビットが付与されます。
図 12.6-3 クロック反転時の転送データ形式
マークレベル
送受信クロック
(SCES = 0, CCO = 0):
送受信クロック
(SCES = 1, CCO = 0):
データ(SSM = 1)
(パリティなし, 1 ストップビット)
マークレベル
ST
SP
データフレーム
419
第 12 章 LIN-UART
■ クロック供給
クロック同期モード ( ノーマルモード ) では , 送信ビット数および受信ビット数はク
ロックサイクルと等しくなります。調歩同期通信が設定されていると , クロックサイク
ル数はスタート / ストップビットを追加したものと一致します。
内部クロックが選択 ( 専用リロードタイマ ) されていると , クロック同期で受信してい
るデータは , データが送信されると自動的に生成されます。
外部クロックが選択されていると , 送信データレジスタにデータを格納し , 送出される
ビットごとのクロックサイクルは外部から供給 , 生成されます。SCES が "0" 場合 , マー
クレベル ("H") は , 送信開始以前および送信完了後保持されます。
クロックのどの立下りエッジでも送信データが有効かつ安定するように , ECCR の
SCDE ビットの設定により , 送信クロック信号は 1 マシンサイクル遅延されます ( 受信
デバイスがクロックの立上りあるいは立下りエッジでデータを取り込む場合に必要で
す )。この機能は , CCO が設定されていると停止します。
図 12.6-4 遅延送信クロック信号 (SCDE=1)
送信データ書込み
受信データサンプルエッジ (SCES = 0)
マークレベル
送受信クロック
(通常)
マークレベル
送信クロック
(SCDE = 1)
マークレベル
送受信データ
0
1
LSB
1
0
1
0
データ
0
1
MSB
ESCR のシリアルクロックエッジ選択(SCES) ビットが設定されていると , UART クロッ
クは反転し , クロックの立下りエッジで受信データを取り込みます。この場合は , ク
ロックの立下りエッジで必ず有効なシリアルデータとしてください。
マスタモードでは , 拡張ステータス / コントロールレジスタ (ESCR) の CCO ビットが設
定されると , SCK 端子からシリアルクロックは継続的に出力されます。このモードで
は , 受信側にデータフレームの開始と終了を明示するために , スタートビットとストッ
プビットを使用するようにしてください。図 12.6-5 に , これを示します。
図 12.6-5 モード 2 での継続クロック出力
送受信クロック
(SCES = 0, CCO = 1):
送受信クロック
(SCES = 1, CCO = 1):
データ(SSM = 1)
(パリティなし, 1 ストップビット)
ST
SP
データフレーム
420
第 12 章 LIN-UART
■ エラー検出
スタート / ストップビットを使用しない場合 (ECCR の SSM=0) は , オーバランエラー
のみが検出されます。
■ 通信
同期通信モードの初期化には , 以下の設定を行ってください。
• ボーレート / ジェネレータレジスタ (BGR)
専用ボーレート / リロードカウンタへのリロード値の設定
• シリアルモードレジスタ (SMR)
MD1, MD0
: "10B" ( モード 2)
SCKE
:"1" ( 専用ボーレートリロードカウンタ使用 )
"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" ( マスタモード , UART がシリアルクロックを生成 )
"1" ( スレーブモード , UART はシリアルクロックを外部から受信 )
通信を開始するには , 送信データレジスタ (TDR) へデータを書き込んでください。受
信のみ行う場合には SMR のシリアル出力許可 (SOE) ビットで出力を停止し , TDR へダ
ミーデータを書き込んでください。
<注意事項>
非同期モード時と同様に , 継続クロック , スタート / ストップビット , 双方向通信が可能
です。
421
第 12 章 LIN-UART
12.6.3
LIN 機能での動作 ( 動作モード 3)
UART は LIN マスタデバイス , LIN スレーブデバイスいずれとしても使用可能です。
LIN 機能にはモード 3 が割り当てられています。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 ビットで表 12.6-2 のように設定でき
ます。
表 12.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 後でスタートビット以前では割込み
は生成されません。
■ LIN スレーブとしての UART
LIN スレーブモードでは , UART はマスタのボーレートに同期します。受信が禁止
(RXE=0) され LIN-Break 割込みが許可 (LBIE=1) されている場合に , LIN マスタの SynchBreak が検出され ESCR の LBD フラグがそれを示すと , UART は受信割込みを生成し
ます。このビットに "0" を書き込むと割込みはクリアされます。
次に LIN マスタのボーレートの解析をします。Synch-Field の最初の立下りエッジが
UART で検出されます。UART は内部信号を経由してインプットキャプチャ (ICU) へ
伝え , 5 回目の立下りエッジで ICU への信号をリセットします。したがって , ICU を
LIN インプットキャプチャとして設定し , ICU の割込みを許可状態にする必要がありま
す。ICUへの信号が"1"である時間が, 8分周されたLINマスタの正確なボーレートです。
422
第 12 章 LIN-UART
ボーレート設定値は下記のようになります。
• タイマオーバフローなし:BGR 値 = (b − a) / 8
• タイマオーバフローあり:BGR 値 = (max + b − a) / 8
ここで , "max" はタイマの最大値 , "a" は最初の割込み後の ICU カウンタレジスタの値 ,
"b" は 2 回目の割込み後の ICU カウンタレジスタの値を意味します。
■ LIN-Synch-Break 検出割込みとフラグ
スレーブモードで LIN-Synch-Break が検出されると , ESCR の LIN-Break 検出 (LBD) フラ
グが "1" にセットされます。LIN-Break 割込み許可 (LBIE) ビットが設定されていると ,
これは割込み要因となります。
図 12.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の場合に受信割込み発生
図 12.6-6 に , LIN-Synch-Break 検出とフラグセットタイミングを示します。
受信許可状態 (RXE=1) で受信割込みが許可 (RIE=1) されている場合は , LIN-Break 割込
みより 2 ビットタイム ("8N1") 早く SSR の受信データフレーミングエラー (FRE) フラ
グビットが受信割込み要因となりますので , LIN-Break を使用する場合は , RXE を "0"
にしてください。
LBD は動作モード 0 および動作モード 3 で使用可能です。
図 12.6-7 LIN スレーブモードでの UART の動作
シリアルクロック
シリアル入力
(LINバス)
CPUによるLBRクリア
LBD
ICU入力
Synch-Break(14ビット設定の場合)
Synch-Field
423
第 12 章 LIN-UART
■ LIN バスタイミング
図 12.6-8 LIN バスタイミングと UART の信号
前回のシリアルクロック
クロックなし
(補正フレーム)
新たに補正されたシリアルクロック
ICUカウント
LINバス
(SIN)
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リード
424
第 12 章 LIN-UART
シリアル端子への直接アクセス
12.6.4
UART は送信端子 (SOT), 受信端子 (SIN) の値を直接アクセスすることができます。
■ UART 端子直接アクセス
UART にはシリアル入力端子 / シリアル出力端子の値を , ソフトウェアで直接アクセス
する機能があります。ESCR の SIOP ビットの読出しにより , シリアル入力データをモ
ニタできます。ESCR のシリアル出力端子直接アクセス許可 (SOPE) ビットが設定され
ると , ソフトウェアにて SOT 端子の出力値を固定できます。これは送信シフトレジス
タが空 , 例えば送信動作なし , のときにのみ可能です。
LIN モードでは , この機能は自身の送信データを読み戻すために用いられます。単ワイ
ヤ LIN バス上に物理的な不具合がある場合は , エラー処理にも使用されます。
<注意事項>
SIOP には最後に書き込まれた値が保持されます。不要なエッジ出力を防ぐために出力端
子へのアクセスを設定する前に , SIOP へ値を書き込んでください。
SIOP ビットへのリードモディファイライト系アクセスでは SOT 端子の値が返されます。
通常の読出し命令では , SIN 端子の値が返されます。
425
第 12 章 LIN-UART
12.6.5
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 では通常のシリアル双方向通信が可能です。非同期通信には動作
モード 0 を , 同期通信には動作モード 2 を選択してください。
■ 双方向通信機能
図 12.6-9 に , ノーマルモード ( 動作モード 0, 2) での UART の設定を示します。
図 12.6-9 動作モード 0, 2 での UART の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
SCR, SMR
PEN
P
SBL
CL
AD
bit8
bit7
bit6
0
0
0
モード 2
0
1
0
PE
bit4
bit3
bit2
bit1
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
モード 0
SSR,
TDR/RDR
bit5
ORE FRE RDRF TDRE BDS
RIE
TIE
0
0
0
0
0
0
1
転送データ設定 ( 書込み中 )
受信データ待ち ( 読込み中 )
モード 0
モード 2
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
LBR
MS SCDE SSM
モード 0
モード 2
: 使用ビット
: 未使用ビット
1 : "1" に設定
0 : "0" に設定
: SSM = 1 ( 同期スタート / ストップビットモード ) で使用されるビット
: 正しい値に自動的に設定されるビット
■ CPU 間の接続
図 12.6-10 に , UART モード 2 での 2CPU 間接続を示します。
図 12.6-10 UART 動作モード 2 双方向通信の接続例
SOT
SOT
SIN
SIN
SCK
CPU-1 (マスタ)
426
出力
入力
SCK
CPU-2 (スレーブ)
BIE
RBI
TBI
第 12 章 LIN-UART
12.6.6
マスタ−スレーブ通信機能
( マルチプロセッサモード )
マスタ−スレーブモードでは , マスタ / スレーブいずれのシステムにおいても複数の
CPU との UART 通信が可能です。
■ マスタ−スレーブ通信機能
図 12.6-11 に , マルチプロセッサモード ( 動作モード 1) での UART の設定を示します。
図 12.6-11 動作モード 1 での UART の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
SCR, SMR
PEN
P
SBL
CL
AD
0
モード 1
SSR,
TDR/RDR
bit8
PE
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
ORE FRE TDRE RDRF BDS
0
RIE
TIE
1
0
0
0
0
1
転送データ設定 ( 書込み中 )
受信データ待ち ( 読込み中 )
モード 1
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
LBR
MS SCDE SSM
BIE
RBI
TBI
モード 1
: 使用ビット
: 未使用ビット
1 : "1" に設定
0 : "0" に設定
: 正しい値に自動的に設定されるビット
427
第 12 章 LIN-UART
■ CPU 間の接続
図 12.6-12 に , 2 本の通信線で接続されたマスタ CPU と複数のスレーブ CPU からなる
通信システムを示します。UART はマスタとしてもスレーブとしても使用できます。
図 12.6-12 UART マスタ−スレーブ通信の接続例
SOT
SIN
マスタCPU
SOT
SIN
SOT
スレーブCPU #0
SIN
スレーブCPU #1
■ 機能部
マスタ−スレーブ通信用に , 表 12.6-3 のように動作モードとデータ転送モードを設定
してください。
表 12.6-3 マスタ−スレーブ通信機能の設定
動作モード
マスタ
CPU
アドレス
送受信
データ
送受信
モード 1
(AD ビッ
ト発行 )
スレーブ
CPU
モード 1
(AD ビッ
ト受信 )
データ
パリティ
同期方法
なし
非同期
AD=1 +
7- or 8-bit
address
AD=0 +
7- or 8-bit
data
ストップ
ビット
ビット方向
1 ビット or LSB or MSB
2 ビット
ファースト
■ 通信手順
マスタ CPU がアドレスデータを送信すると , 通信が開始されます。アドレスデータの
AD ビットは "1" に設定され , 通信対象の CPU が選択されます。それぞれのスレーブ
CPU はそのアドレスデータを確認します。アドレスデータがスレーブ CPU に割り当て
られたアドレスを示すと, そのスレーブCPUはマスタCPUと通信します (通常モード) 。
に , マスタ−スレーブ通信 ( マルチプロセッサモード ) のフローチャートを示します。
428
第 12 章 LIN-UART
図 12.6-13 マスタ−スレーブ通信のフローチャート
(マスタ CPU)
(スレーブ CPU)
スタート
スタート
動作モード 1に設定
動作モード 1に設定
SIN端子をシリアルデータ
入力に設定
SOT端子をシリアルデータ
出力に設定
SIN端子をシリアルデータ
入力に設定
SOT端子をシリアルデータ
出力に設定
7または 8データビット設定
1または 2ストップビット設定
7または 8データビット設定
1または 2ストップビット設定
TXE = 1, RXE = 1に設定
ADビットに"1"をセット
TXE = 1, RXE = 1に設定
受信バイト
スレーブへアドレスを送信
NO
ADビット = 1
ウェイト
YES
バスアイドル
割込み
スレーブアドレスが一致
NO
ADビットに"0"をセット
YES
スレーブ CPUと通信
通信終了 ?
マスタ CPUと通信
NO
YES
ほかのスレーブCPUと
通信
通信終了 ?
NO
YES
NO
YES
TXE = 0, RXE = 0に設定
エンド
429
第 12 章 LIN-UART
LIN 通信機能
12.6.7
LIN マスタ , LIN スレーブ , いずれのシステムにおいても , LIN デバイスとの UART
通信が可能です。
■ LIN マスタ−スレーブ通信機能
図 12.6-14 に , LIN 通信モード ( 動作モード 3) での UART の設定を示します。
図 12.6-14 動作モード 3(LIN) での UART の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
SCR, SMR
PEN
P
SBL
CL
AD
0
モード 3
SSR,
TDR/RDR
bit8
PE
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
ORE FRE RDRF TDRE BDS
1
RIE
TIE
1
0
0
0
0
1
転送データ設定 ( 書込み中 )
受信データ保持 ( 読込み中 )
モード 3
ESCR, ECCR LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
LBR
MS SCDE SSM
BIE
RBI
0
モード 3
: 使用ビット
: 未使用ビット
1 : "1" に設定
0 : "0" に設定
: 正しい値に自動的に設定されるビット
■ LIN デバイスの接続
図 12.6-15 に , LIN マスタデバイスと LIN スレーブデバイスの接続を示します。
URAT は LIN マスタ , LIN スレーブ , いずれとしても設定可能です。
図 12.6-15 LIN バスシステムの接続例
SOT
SOT
LINバス
SIN
LINマスタ
430
SIN
単ワイヤトランシーバ
単ワイヤトランシーバ
LINスレーブ
TBI
第 12 章 LIN-UART
12.6.8
LIN 通信モード ( 動作モード 3)
UART サンプルフローチャート
LIN 通信モードにおける UART のフローチャート例を示します。
■ マスタデバイスとしての UART
図 12.6-16 LIN マスタモードでの UART フローチャート
スタート
初期設定:
S動作モードを 3に設定
(8N1データフォーマット)
TIE = 0, RIE = 0
送信メッセージ ?
NO
YES
スリープモード送信
TDR = 0x80
TIE = 0
Sync-Break送信:
ECCRへの"1"書込み:
LBR, TIE = 1;
Synch-Field送信:
TDR = 0x55
CPUからの
ウェイクアップ?
NO
スリープモード送信?
ウェイクアップ信号送信
RIE = 0
TIE = 1
YES
TDR = 0x80
RIE = 1
YES
NO
Identify-Fieldセット :
TDR = lD
NO
0x00,0x80,0xC0受信?
YES
RIE = 0
TIE = 1
スレーブへの書込み?
YES
NO
TIE = 0
RIE = 1
スレーブからのデータリード
RIE = 0
スレーブへのデータ書込み
NO
エラー発生 ?
TIE = 0
YES
エラー処理
431
第 12 章 LIN-UART
■ スレーブデバイスとしての UART
図 12.6-17 LIN スレーブモードでの UART フローチャート
開始
A
B
初期化:
動作モードを3に設定
(8N1データフォーマット)
C
エラー発生?
RIE = 0; LBIE = 1;
RXE = 0
NO
スレーブ
アドレス一致?
NO
C
E
YES
YES
NO
マスタの
送信要求?
スレーブ
動作待ち
LBD = 1
LIN Break割込み
YES
LINマスタからの
メッセージ待ち
ESCR.LBDに"0"を書込み
割込みを禁止
ICU割込み許可
データ+チェック
サム受信
0x80受信?
(スリープモード)
NO
S
RIE = 0
TIE = 1
チェックサム
計算
データ送信
(次ページへ)
スレーブ
動作待ち
TIE = 0
YES
B
ICU割込み
ICUデータ読出し
ICU割込みフラグクリア
C
マスタの
送信要求?
NO
YES
スレーブ
動作待ち
C
ICU割込み
ICUデータ読出し
新ボーレート計算
ICU割込みフラグクリア
割込みクリア
スレーブ
動作待ち
バスアイドル
割込み
E
エラーハンドラ
C
ID受信
RIE = 1; RXE = 1
A
( 続く )
432
第 12 章 LIN-UART
( 続き )
S
CPUからの
ウェイクアップ?
NO
ウェイクアップ
コード送信
RIE = 0
TIE = 1
TDR = 0x80
YES
RIE = 1
NO
0x00, 0x80
または0xC0
受信?
TIE = 0
YES
RIE = 0
C
433
第 12 章 LIN-UART
12.7
UART 使用上の注意事項
UART 使用時における注意事項を示します。
■ 動作設定
UART のシリアルコントロールレジスタ (SCR) には , TXE ( 送信 ) , RXE ( 受信 ) 動作許
可ビットがあります。これらのビットの初期値は停止状態となっているので , 送信 / 受
信いずれの動作においても転送開始前にこれらのビットを設定してください。ビット
の設定を禁止状態とすることで , 転送を中断することができます。
ISO9141 (LIN バスシステム ) のような単一バスシステムにおいては , 単方向通信である
ため , これらの 2 ビットを同時には設定しないでください。受信は自動的に実行される
ので , UART により送信されたデータは UART 自身も受信します。
■ 通信モードの設定
通信モードの設定は , システムが非動作中に行ってください。送信 / 受信中に動作モー
ドが変更されると , 送信 / 受信は停止し , 転送データは失われます。
■ 送信割込み許可タイミング
送信データエンプティフラグビット (SSR の TDRE ビット ) の初期値は "1"( 送信データ
がなく , 送信データ書込み許可状態 ) です。送信割込み要求は , 送信割込み要求が許可
(SSR の TIE ビットが "1") されると直ちに生成されます。この割込みを発生させないた
めには, TDRレジスタへの送信データ書込み後にTIEフラグを"1"に設定してください。
■ 動作モード 3 における LIN の使用
LIN の機能はモード 0 でも使用可能です ( 送信 , 受信ブレーク ) が , 動作モードをモー
ド 3 に設定すると , UART のデータ形式が LIN の形式 (8N1, LSB ファースト ) に自動的
に設定されます。UART の LIN バスプロトコルへの適用は動作モードをモード 3 に設
定してください。ブレークの送信時間は変更可能ですが , 最低 11 シリアルビットタイ
ムが必要です。
■ 動作設定の変更
UART の動作設定を変更した場合は , 必ず UART をリセットしてください。特に同期
モード 2 でのスタート / ストップビットの有無に注意してください。
シリアルモードレジスタ (SMR) の設定を行う場合は , UART の再設定と UPCL ビット
を同時にはできません。この場合 UART が正常に動作しないことがあります。SMR の
ビットを設定してから , UPCL ビットをセットするようにしてください。
■ LIN スレーブの設定
LIN スレーブとして UART を初期化する場合は , 必ずボーレートを最初の LIN 同期ブ
レーク受信前に設定してください。これは最低 13 ビットタイムの LIN 同期ブレーク検
出を確実にするためです。
434
第 12 章 LIN-UART
■ ソフトウェア互換
この UART は従来の MCU に搭載されているものに類似していますが , ソフトウェアに
は互換性はありません。プログラミングモデルはほぼ同じですが , レジスタ構成は異な
ります。さらに , ボーレートは既定値から選択するのではなく , リロード値で設定する
ようになっています。
■ バスアイドル機能
同期モード 2 では , バスアイドル機能は使用できません。
■ シリアルコントロールレジスタ (SCR) の AD ビット
シリアルコントロールレジスタ (SCR) の AD ビット ( マルチプロセッサモードでのア
ドレス / データビット ) を使用する際には下記内容に注意してください。
読み出すと最後に受信した AD ビットを返しますが , 書込みは送信時の AD ビットを設
定します。したがって , AD ビットはコントロールビットでありフラグビットでもあり
ます。内部的には受信データと送信データはそれぞれ別のレジスタへ格納されますが ,
リードモディファイライト系命令では , 受信データが読み出され , データ操作後 , 送信
データとして書き込まれます。この種の命令で同じレジスタのビットがアクセスされ
ると , AD ビットに誤った値が設定されることがあります。
そのため , このビットへの書込みアクセスは送信前に行ってください。あるいは , バイ
トアクセスですべてのビットを一度に正しく設定してください。
また , AD ビットは送信データレジスタのようにはデータを保持しません。
送信動作中にこのビットを更新すると , 送信中のデータの AD ビットが変更されます。
435
第 12 章 LIN-UART
436
第 13 章
I2C インタフェース
I2C インタフェースの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
13.1 I2C インタフェースの概要
13.2 I2C インタフェースのレジスタ
13.3 I2C インタフェースの動作説明
13.4 動作フローチャート
437
第 13 章 I2C インタフェース
13.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル I/O ポートで , I2C バ
ス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの特長
I2C インタフェースの特長は , 以下のとおりです。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• 再起動条件発生および検出機能
• バスエラー検出機能
• 10 ビット /7 ビット スレーブアドレス
• マスタモード時スレーブアドレス受信アクノリッジ制御
• 複合スレーブアドレス対応
• 送信 , バスエラー時に割込み可能
• 標準モード ( 最大 100 kbps)/ 高速モード ( 最大 400 kbps) に対応
438
第 13 章 I2C インタフェース
■ I2C インタフェースのレジスタ一覧
I2C インタフェースのレジスタ一覧は , 以下のとおりです。
• バスコントロールレジスタ (IBCR)
IBCR0 ∼ IBCR2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
00000000B
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
W :ライトオンリ
• バスステータスレジスタ (IBSR)
IBSR0 ∼ IBSR2
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
00000000B
R
R
R
R
R
R
R
R
bit10
bit9
bit8
初期値
TA8
------00B
R/W
:リードオンリ
• 10 ビットスレーブアドレスレジスタ (ITBA)
ITBAH0 ∼ ITBAH2 ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
−
−
−
−
−
−
TA9
−
−
−
−
−
−
R/W
ITBAL0 ∼ ITBAL2 ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TA7
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
00000000B
bit10
bit9
bit8
初期値
−
−
TM9
R/W
TM8
R/W
00----11B
R/W :リード / ライト可能
• 10 ビットスレーブアドレスマスクレジスタ (ITMK)
ITMKH0 ∼ ITMKH2 ( 上位バイト )
bit15
bit14
ENTB
R/W
RAL
R
bit13
−
−
bit12
−
−
bit11
−
−
ITMKL0 ∼ ITMKL2 ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TM7
R/W
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
11111111B
R/W :リード / ライト可能
R
:リードオンリ
439
第 13 章 I2C インタフェース
• 7 ビットスレーブアドレスレジスタ (ISBA)
ISBA0 ∼ ISBA2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
SA6
SA5
SA4
SA3
SA2
SA1
SA0
-0000000B
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
• 7 ビットスレーブアドレスマスクレジスタ (ISMK)
ISMK0 ∼ ISMK2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ENSB
R/W
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
01111111B
R/W :リード / ライト可能
• データレジスタ (IDAR)
IDAR0 ∼ IDAR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
00000000B
R/W :リード / ライト可能
• クロックコントロールレジスタ (ICCR)
ICCR0 ∼ ICCR2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
NSF
R/W
EN
R/W
CS4
R/W
CS3
R/W
CS2
R/W
CS1
R/W
CS0
R/W
-0011111B
R/W :リード / ライト可能
440
第 13 章 I2C インタフェース
■ I2C インタフェースのブロックダイヤグラム
図 13.1-1 に , I2C インタフェースのブロックダイヤグラムを示します。
図 13.1-1 I2C インタフェースのブロックダイヤグラム
R-bus
ICCR
EN
IDBL
DBL
ICCR
CS4
CS3
CS2
CS1
CS0
IBSR
BB
RSC
LRB
TRX
2
I C動作許可
CLKP
クロック許可
クロック分周2
2 345
32
Sync
クロック選択2 (1/12)
シフトクロック
エッジ変化タイミング
バスビジー
リピート
スタート
スタート・ストップ
ラストビット
コンディション検出
送/受
エラー
ファーストバイト
ADT
AL
アービトレーションロスト検出
SCLI
SCLO
IBCR
BER
BEIE
IBCR
ACK
GCAA
IRQ
割込み要求
INTE
INT
SCC
MSS
シフトクロック発生
SDA
SDAO
終了
スタート
マスタ
スタート・ストップ
ACK許可
コンディション発生
GC-ACK許可
IDAR
IBSR
AAS
GCA
スレーブ
グローバル
コール
スレーブアドレス
比較
ISML
FNSB
ITMK
ENTB RAL
ITBA
ITMK
ISBA
ISMK
441
第 13 章 I2C インタフェース
13.2
I2C インタフェースのレジスタ
ここでは , I2C インタフェースで使用するレジスタの構成および機能について説明し
ます。
■ I2C インタフェースのレジスタ概要
I2C インタフェースには , 次の 8 種類のレジスタがあります。
• バスステータスレジスタ (IBSR0 ∼ IBSR2)
• バスコントロールレジスタ (IBCR0 ∼ IBCR2)
• クロックコントロールレジスタ (ICCR0 ∼ ICCR2)
• 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2)
• 10ビットスレーブアドレスマスクレジスタ (ITMKH0∼ITMKH2, ITMKL0∼ITMKL2)
• 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2)
• 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2)
• データレジスタ (IDAR0 ∼ IDAR2)
442
第 13 章 I2C インタフェース
13.2.1
バスステータスレジスタ (IBSR0 ∼ IBSR2)
バスステータスレジスタ (IBSR0 ∼ IBSR2) には , 以下の機能があります。
• バスビジー検出
• 再起動条件検出
• アービトレーションロスト検出
• アクノリッジ検出
• データ転送方向表示
• スレーブアドレッシング検出
• ゼネラルコールアドレス検出
• アドレスデータ転送検出
■ バスステータスレジスタ (IBSR0 ∼ IBSR2)
バスステータスレジスタ (IBSR0 ∼ IBSR2) のレジスタ構成は , 以下のとおりです。
IBSR0 ∼ IBSR2
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
00000000B
R
R
R
R
R
R
R
R
:リードオンリ
このレジスタは読出し専用です。レジスタのビットはすべてハードウェアにより自動
的に制御されます。I2C インタフェースが有効でない場合 (ICCR レジスタの EN ビット
が "0") は , このレジスタのビットはすべてクリア状態となります。
[bit7] BB:バスビジービット
I2C バスの状態を示すビットです。
値
内 容
0
停止条件を検出した [ 初期値 ]
1
起動条件を検出した ( バス使用中 )
[bit6] RSC:再起動条件ビット
再起動条件検出ビットです。
値
内 容
0
再起動条件は検出されていない [ 初期値 ]
1
再起動条件を検出した
このビットは , スレーブ・アドレス転送終了 (ADT=0), または停止条件の検出でクリ
アされます。
443
第 13 章 I2C インタフェース
[bit5] AL:アービトレーションロスト検出ビット
アービトレーションロスト検出ビットです。
値
内 容
0
アービトレーションロストが検出されていない [ 初期値 ]
1
マスタ送信中にアービトレーションロストが発生した
このビットは INT ビットへの "0" 書込み , または IBCR レジスタ中の MSS ビットに
"1" を書き込むことによってクリアされます。
〔アービトレーションロストが発生する例〕
• データ送信が SCL の立上りエッジで SDA ライン上のデータと一致しない
• データのファーストビットで , ほかのマスタによって , 再起動条件が発生した。
• I2C インタフェースが , ほかのスレーブデバイスによって SCL ラインが "L" にドラ
イブされているために , 起動条件 , または停止条件を生成できない。
[bit4] LRB:アクノリッジ格納ビット
アクノリッジ格納ビットです。受信側からのアクノリッジを格納します。
値
内 容
0
スレーブアクノリッジを検出した [ 初期値 ]
1
スレーブアクノリッジを検出していない
アクノリッジの検出 ( 受信 9 ビット ) により書き換わります。
起動条件または停止条件の検出でクリアされます。
[bit3] TRX:データ送信ビット
データ転送中に送信状態を示すビットです。
値
内 容
0
データ送信中でない [ 初期値 ]
1
データ送信中
"1" セット : マスタモードで起動条件が生成された
-スレーブモードでリードアクセス時 ( 送信 ) , 第一バイトの転送終了
-マスタモードで送信中
"0" セット : バスがアイドル状態 (BB=0 :IBCR)
-アービトレーションロス発生
-マスタ割込み中 (MSS=1, INT=1) に SCC に "1" が書き込まれた。
-マスタ割込み中 (MSS=1, INT=1) に MSS ビットがクリアされた。
-スレーブ時 , 転送の最後にアクノリッジが発生しなかった。
-スレーブモードでの受信中
-マスタモードでのスレーブからデータ受信中
444
第 13 章 I2C インタフェース
[bit2] AAS:スレーブアドレッシング検出ビット
スレーブ・アドレッシング検出ビットです。
値
内 容
0
スレーブに指定されていない [ 初期値 ]
1
スレーブに指定された
( 再 ) 起動または停止条件の検出でクリアされます。
7/10 ビットのスレーブアドレスを検出したときにセットされます。
[bit1] GCA:ゼネラルコールアドレス検出ビット
ゼネラルコールアドレス (00H) 検出ビットです。
値
内 容
0
ゼネラルコールアドレスを検出していない [ 初期値 ]
1
ゼネラルコールアドレスを検出した
( 再 ) 起動または停止条件の検出でクリアされます。
[bit0] ADT:アドレスデータ転送
スレーブ・アドレス受信検出ビットです。
値
内 容
0
受信データがスレーブ・アドレスでない ( またはバス開放中 )
[ 初期値 ]
1
受信データがスレーブ・アドレスである
起動の検出で "1" にセットされます。10 ビットライトアクセスでのスレーブ・アド
レスのヘッダが検出されると , 第二バイトのあとクリアされ , それ以外のときは , 第
一バイトのあとでクリアされます。
〔第一バイト / 第二バイトのあととは〕
• マスタ割込み (MSS=1, INT=1:IBCR) 中に MSS ビットに "0" が書き込まれた
• マスタ割込み (MSS=1, INT=1:IBCR) 中に SCC ビットに "1" が書き込まれた
• INT ビットがクリアされた
• マスタ , またはスレーブとして転送対象でなければ , すべての転送バイトの最初
445
第 13 章 I2C インタフェース
13.2.2
バスコントロールレジスタ (IBCR0 ∼ IBCR2)
バスコントロールレジスタ (IBCR0 ∼ IBCR2) には以下の機能があります。
• 割込み許可フラグ
• 割込み生成フラグ
• バスエラー検出フラグ
• 再起動条件生成
• マスタ / スレーブモード選択
• ゼネラルコールアクノリッジ生成許可
• データバイトアクノリッジ生成許可
■ バスコントロールレジスタ (IBCR0 ∼ IBCR2)
バスコントロールレジスタ (IBCR) のレジスタ構成は , 以下のとおりです。
IBCR0 ∼ IBCR2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
BER
R/W
BEIE
R/W
SCC
W
MSS
R/W
ACK
R/W
GCAA
R/W
INTE
R/W
INT
R/W
00000000B
R/W :リード / ライト可能
W :ライトオンリ
バスコントロールレジスタ (IBCR) への書込みアクセスは , INT ビットが "1" あるいは
転送が開始される場合に行ってください。ACK ビットもしくは GCAA ビットを変更す
るとバスエラーが検出される場合があるので , 転送動作中にはレジスタへの書込みア
クセスを行わないでください。I2C インタフェースが有効でない場合 (ICCR の EN ビッ
トが "0") は , BER ビットと BEIE ビットを除き , このレジスタのビットはクリア状態と
なります。
[bit15] BER:バスエラーフラグ
バスエラー割込み要求フラグビットです。このビットは , リードモディファイ系の
命令では , 常に "1" が読まれます。
( 書込み時 )
値
内 容
0
バスエラー割込み要求フラグをクリアする
1
意味をもちません
( 読出し時 )
値
446
内 容
0
バスエラーは検出されていない [ 初期値 ]
1
エラーコンディションを検出した
第 13 章 I2C インタフェース
このビットがセットされた場合 , ICCR レジスタの EN ビットはクリアされ , I2C イ
ンタフェースは停止状態になり , データ転送は中断されます。また , BER, BEIE を
除き IBSR と IBCR レジスタのすべてのビットはクリアされます。このビットは ,
I2C インタフェースを再度イネーブル (EN = 1) にする前にクリアしてください。
〔"1" がセットされる場合〕
1. 起動条件 , または停止条件が不正な場所で検出された ( スレーブ・アドレス転送中 ,
データ転送中 ) 。
2. 10 ビットリードアクセス時に , 第一バイトにて 10 ビットライトアクセスする前に ,
リードアクセスのスレーブ・アドレスヘッダが受信された。
3. マスタモードで転送中に起動条件が検出された。
1. , 2. の検出は , 転送実行中に I2C インタフェースが動作許可されていると , 不正バス
エラーレポートを抑止するために , 最初の停止条件の受信後フラグセットされます。
[bit14] BEIE:バスエラー割込み許可ビット
バスエラー割込み許可ビットです。
値
内 容
0
バスエラー割込み禁止 [ 初期値 ]
1
バスエラー割込み許可
このビットが "1" のとき , BER ビットに "1" がセットされると割込みを発生します。
[bit13] SCC:起動条件継続ビット
再起動条件発生ビットです。
( 書込み時 )
値
内 容
0
意味をもちません
1
マスタ転送時に再起動条件を発生させる
このビットの読出し値は常に "0" です。
マスタモード (MSS=1, INT=1) 中にこのビットに "1" を書き込むと , 再起動条件が発
生し , 自動的に INT ビットをクリアします。
[bit12] MSS:マスタ / スレーブ選択ビット
マスタ / スレーブの選択ビットです。
値
内 容
0
スレーブモードとなります [ 初期値 ]
1
マスタモードとなり起動条件を発生し , IDAR レジスタの値をスレー
ブアドレスとして送信します
• このビットは , マスタ送信中にアービトレーションロスが発生した場合クリアされ ,
スレーブモードになります。
447
第 13 章 I2C インタフェース
• マスタ割込みフラグセット中 (MSS=1, INT=1) に "0" を書き込むと INT ビットは自動
的にクリアされ , 停止条件が発生し転送が終了します。
注 ) MSS ビットは直接的なリセットとして機能します。停止条件の発生は , IBSR レ
ジスタの BB ビットを読み出すことによって確認できます。
• バスがアイドル中 (MSS=0, BB=0) に "1" を書き込むと起動条件が発生し , IDAR の値
が送信されます。
• バス使用中 (BB=1, TRX=0, MSS=0) に "1" を書き込むと I2C インタフェースはバスが
開放されるまで待ち , 送信を開始します。その間に I2C インタフェースはライトアク
セスを伴うスレーブとしてアドレス指定されると , 転送終了後にバスは開放されま
す。その間 , スレーブとして送信中の場合 (AAS=1, TRX=1:IBCR), バスが開放されて
もデータ送信しません。I2C インタフェースがスレーブ (AAS=1:IBSR) として指定さ
れたか , 次の割込み時にデータを送信が正常終了にした (MSS=1:IBCR) か , 不正終了
した (AL=1:IBSR) かどうか確認することが重要となります。
[bit11] ACK:アクノリッジビット
データを受信許可ビットに従いアクノリッジを発生するビットです。
値
内 容
0
データ受信に対しアクノリッジを発生しない [ 初期値 ]
1
データ受信に対しアクノリッジを発生する
• このビットは , スレーブ時のスレーブ・アドレス受信時には無効となります。I2C イ
ンタフェースが 7 ビット , または 10 ビットのスレーブ・アドレス指定を検出したと
き , 対応するイネーブルビット (ENTB:ITMK, ENSB:ISMK) がセットされていると ,
アクノリッジを返します。
• このビットへの書込みは ,
割込みフラグセット中 (INT=1),
またはバスが開放中
2
(BB=0:IBSR), I C インタフェースが停止中 (EN=0:ICCR) に行ってください。
[bit10] GCAA:ゼネラルコールアドレスアクノリッジビット
ゼネラルコールアドレスを検出した場合のアクノリッジ発生許可ビットです。
値
内 容
0
ゼネラルコールアドレスを検出時にアクノリッジ発生しない
[ 初期値 ]
1
ゼネラルコールアドレスを検出時にアクノリッジ発生する
このビットへの書込みは , 割込みフラグセット中 (INT=1), またはバスが開放中
(BB=0:IBSR), I2C インタフェースが停止中 (EN=0:ICCR) に行ってください。
• ゼネラルコールアドレス受信時には , このビットと ACK ビットをともに "1" にする
ことにより , アクノリッジ応答の発生が許可されます。
• ゼネラルコールアドレス送信時には , このビットを "1" にすることにより , アクノ
リッジ応答の発生が許可されます。
448
第 13 章 I2C インタフェース
• スレーブ受信 (マスタでゼネラルコールアドレスを送信した後に, アービトレーショ
ンロストが発生した場合を含む) でデータ受信時のアクノリッジビット出力は, ACK
ビットとこのビットがともに "1" のときに出力許可となります。
• バスステータスレジスタ (IBSR) の GCA ビットが "1" のときには , このビットの設
定値を変更しないでください。
[bit9] INTE:割込み許可ビット
割込み許可ビットです。
値
内 容
0
割込み禁止 [ 初期値 ]
1
割込み許可
このビットが "1" のときに , INT ビットが "1" になると割込みを発生します。
[bit8] INT:割込み要求フラグ
転送終了割込み要求フラグビットです。このビットは , リードモディファイ系の命
令では常に "1" が読み出されます。
( 書込み時 )
値
内 容
0
転送終了割込み要求フラグをクリアする [ 初期値 ]
1
意味をもちません
( 読出し時 )
値
内 容
0
転送が終了していない , または転送対象でない , バスが開放状態であ
る [ 初期値 ]
1
アクノリッジビットを含めた 1 バイト転送が終了したときに次の条
件に該当する場合セットされます。
・バスマスタである
・スレーブ・アドレスに指定された
・ゼネラルコールアドレスを受信した
・アービトレーションロストが起こった
スレーブアドレスに指定されているとき , アクノリッジを含むスレー
ブアドレス受信の最後にセットされます。
このビットが "1" のとき , SCL ラインは "L" レベルに保たれます。このビットへ "0"
を書込みによりクリアされ , SCL ラインを開放し , 次バイトの転送を行い , 再起動条
件 , または停止条件を生成します。
このビットは , SCC ビット , または MSS ビットに "1" が書き込まれると , クリアさ
れます。
449
第 13 章 I2C インタフェース
<注意事項>
SCC, MSS, INT ビットの競合について
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 再起動条件 , または停止条件
発生の競合が起こります。このときの優先度は次のようになります。
• 次のバイト転送と停止条件発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの書込みが優先され ,
停止条件が発生されます。
• 次のバイト転送と起動条件発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの書込みが優先され , 再
起動条件が発生し IDAR の値が送信されます。
• 再起動条件発生と停止条件発生
SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先されま
す。停止条件が発生し I2C インタフェースはスレーブモードになります。
図 13.2-1 と図 13.2-2 に示したタイミングで , 起動条件を発生させる命令を実行 (IBCR
の MSS=1) すると , アービトレーションロスト検出 (IBSR の AL=1) による割込み
(IBCR の INT=1) は発生しません。
● アービトレーションロスト検出による割込みが発生しない条件 (1)
起動条件未検出状態 (IBSR の BB=0) で , SDA 端子または SCL 端子レベルが "L" のと
きに , 起動条件を発生させる命令を実行 (IBCR の MSS=1) した場合。
図 13.2-1 アービトレーションロスト検出による割込みが発生しないタイミング
SCL端子またはSDA端子がLowレベル
SC端子
"L"
SDA端子
"L"
1
I2C動作許可状態(ENbit=1)
マスタモード設定(MSSbit=1)
アービトレーションロスト検出(AL bit=1)
450
バスビジー(BB bit)
0
割り込み(INT bit)
0
第 13 章 I2C インタフェース
● アービトレーションロスト検出による割込みが発生しない条件 (2)
ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (ICCR の EN=1) して
起動条件を発生させる命令を実行 (IBCR の MSS=1) した場合。
図 13.2-2 に示したとおり , I2C が動作禁止 (ICCR の EN=0) の状態で , I2C バスのほか
のマスタが通信を開始すると , 起動条件未検出 (IBSR の BB=0) で I2C バスが占有され
ている状態になるためです。
図 13.2-2 アービトレーションロスト検出による割込みが発生しないタイミング
9クロック目でINTbit割り込み
が発生しない
Start Condition
Stop Condition
SCL端子
SLAVE
SDA端子
ADDRESS
ACK
DAT
ACK
ENbit
MSSbit
ALbit
0
BBbit
0
INTbit
これらのような現象が発生する可能性がある場合には , 以下の手順でソフト処理を
行ってください。
1. 起動条件を発生させる命令を実行 (IBCR の MSS=1)
2. タイマ機能などを用いて , ICCR に設定されている I2C 転送周波数での 3 ビットデー
タ送信時間待機 *
例:
I2C 転送周波数が 100 kHz の場合
3 ビットデータ送信時間 = {1/(100 × 103)} × 3 = 30µs
*:アービトレーションロストが検出された場合 , MSS ビット設定後 I2C 転送周波
数での 3 ビットデータ送信時間後には確実に AL=1 となります。
3. IBSR の AL ビットと BB ビットを確認し , AL=1 かつ BB=0 の場合には , ICCR の EN
ビットを "0" にして I2C を初期化
AL ビットと BB ビットがその他の値である場合は , 通常処理
451
第 13 章 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 となり割込みが発生します。
図 13.2-3 アービトレーションロスト検出による割込みが発生するタイミング例
9クロック目で割り込み
Start Condition
SCL端子
SDA端子
SLAVE
ADDRESS
ACK
DAT
ENbit
MSSbit
ソフトでのALビットクリア
ALbit
BBbit
ソフトでのINTビットクリア
でSCL開放
INTbit
452
第 13 章 I2C インタフェース
13.2.3
クロックコントロールレジスタ (ICCR0 ∼ ICCR2)
クロックコントロールレジスタ (ICCR0 ∼ ICCR2) には , 以下の機能があります。
• ノイズフィルタ有効
• I2C インタフェース動作許可
• シリアルクロック周波数設定
■ クロックコントロールレジスタ (ICCR0 ∼ ICCR2)
クロックコントロールレジスタ (ICCR0 ∼ ICCR2) のレジスタ構成は以下のとおりです。
ICCR0 ∼ ICCR2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
NSF
EN
CS4
CS3
CS2
CS1
CS0
-0011111B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
−
R/W :リード / ライト可能
[bit15] Reserved:予約ビット
読出し値は常に "0" です。
[bit14] NSF:ノイズフィルタ有効ビット
SDA および SCL 端子に配置されたノイズフィルタを有効にするビットです。この
ノイズフィルタにより , これらの入力に発生するスパイク (CLKP1 ∼ 1.5 サイクル )
を抑制することができます。送信 / 受信レートが 100 kbps 以上の場合には , このビッ
トを "1" に設定してください。
[bit13] EN:動作許可ビット
I2C インタフェース動作許可ビットです。
値
内 容
0
動作禁止 [ 初期値 ]
1
動作許可
[bit12 ∼ bit8] CS4 ∼ CS0:クロック周期選択ビット
シリアルクロックの周波数を設定するビットです。
このビットは , I2C インタフェースを動作禁止 (EN=0) にするか , EN ビットがクリア
されたときにのみ書込み可能です。
シフトクロックの周波数 fsck は次式のように設定されます。
fsck =
φ
n × 12 + 16
N > 0 φ: マシンクロック (=CLKP)
453
第 13 章 I2C インタフェース
レジスタ設定
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
•••
•••
•••
•••
•••
•••
31
1
1
1
1
1
CS4 ∼ CS0 = 00000B は設定禁止です。
454
第 13 章 I2C インタフェース
13.2.4
10 ビットスレーブアドレスレジスタ
(ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2)
10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) は ,
10 ビットのスレーブアドレスを示します。
■ 10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2)
10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) のレジ
スタ構成は , 以下のとおりです。
ITBAH0 ∼ ITBAH2 ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
−
−
−
−
−
−
−
−
−
−
−
−
bit9
bit8
初期値
TA9
TA8
------00B
R/W
R/W
ITBAL0 ∼ ITBAL2 ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TA7
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
00000000B
R/W :リード / ライト可能
10 ビットスレーブアドレスレジスタ (ITBAH0 ∼ ITBAH2, ITBAL0 ∼ ITBAL2) への書
込みアクセスは , I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0") に
行ってください。
[bit15 ∼ bit10] Reserved:予約ビット
読出し時は常に "0" です。
[bit9 ∼ bit0] TA9 ∼ TA0:10 ビットスレーブアドレスビット (A9 ∼ A0)
10 ビットアドレスが有効 (ENTB=1:ITMK) のとき , スレーブモードでスレーブアド
レスを受信すると , 受信アドレスと ITBA と比較します。
アクノリッジは , 10 ビットライトアクセスのアドレスヘッダ受信後 , マスタに送信
されます。
第一 , 第二バイト受信データと TBAL レジスタと比較されます。一致が検出される
と , アクノリッジ信号が , マスタデバイスに送信し , AAS ビットがセットされます。
I2C インタフェースは , 再起動条件の後 , 10 ビットリードアクセスのアドレスヘッ
ダの受信に応答します。
スレーブアドレスの全ビットは , ITMK の設定によりマスクされます。受信スレー
ブアドレスは , ITBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
455
第 13 章 I2C インタフェース
13.2.5
10 ビットスレーブアドレスマスクレジスタ
(ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2)
10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼
ITMKL2) には , 10 ビットスレーブアドレスマスクと , 10 ビットスレーブアドレス許
可ビットがあります。
■ 10 ビットスレーブアドレスマスクレジスタ
(ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2)
10 ビットスレーブアドレスマスクレジスタ (ITMKH0 ∼ ITMKH2, ITMKL0 ∼ ITMKL2)
のレジスタ構成は , 以下のとおりです。
ITMKH0 ∼ ITMKH2 ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ENTB
RAL
−
−
−
−
TM9
TM8
00----11B
R/W
R
−
−
−
−
R/W
R/W
ITMKL0 ∼ ITMKL2 ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
11111111B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
[bit15] ENTB:10 ビットスレーブアドレス許可ビット
10 ビットスレーブアドレス動作許可ビットです。
値
内 容
0
10 ビットスレーブアドレス動作禁止 [ 初期値 ]
1
10 ビットスレーブアドレス動作許可
このビットへの書込みは , I2C インタフェースが停止状態 (EN=0:ICCR) で行ってく
ださい。
[bit14] RAL:受信スレーブアドレス長ビット
このビットは , スレーブアドレス長を示します。
値
456
内 容
0
7 ビットスレーブアドレス [ 初期値 ]
1
10 ビットスレーブアドレス
第 13 章 I2C インタフェース
このビットは , 10 ビット /7 ビットスレーブアドレスの動作許可ビットが両方許可
(ENTB=1 かつ ENSB=1) になっている場合に , 10 ビット , 7 ビットスレーブアドレス
動作のどちらの転送長が有効になるかの決定に使用できます。
このビットは AAS ビット (IBSR) が "1" のときに有効です。
このビットはインタフェースの動作を禁止 (EN=0:ICCR) したときにクリアされます。
このビットは読出しのみ可能です。
[bit13 ∼ bit10] Reserved:予約ビット
読出し時は常に "1" が読まれます。
[bit9 ∼ bit0] TM9 ∼ TM0:10 ビットスレーブアドレスマスクビット
このビットは10ビットスレーブアドレスレジスタ(ITBA)のビットをマスクします。
このレジスタへの書込みは, I2Cインタフェースが動作禁止(EN=0:ICCR)のとき行っ
てください。
値
内 容
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する [ 初期値 ]
このビットを設定することにより複合 10 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 10 ビットスレーブアド
レス比較に使用されるときに , このビットを "1" にセットしてください。受信した
スレーブアドレスは , ITBA に上書きされます。AAS = 1(IBSR) のとき ITBA レジス
タを読み出すことによって実際の指定されたスレーブアドレスを特定できます。
ITMK の TM9 ∼ TM0 の各ビットが ITBA のアドレスの各ビットに対応しており TM9 ∼
TM0の値が"1"のときはITBAのアドレスが有効になり"0"のときは無効になります。
例:ITBA アドレス 0010010111B
ITMK アドレス 1111111100B のとき
スレーブアドレスは 0010010100B ∼ 0010010111B の空間になります。
457
第 13 章 I2C インタフェース
13.2.6
7 ビットスレーブアドレスレジスタ (ISBA0 ∼
ISBA2)
7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) は , 7 ビットのスレーブアド
レスを示します。
■ 7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2)
7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) のレジスタ構成は , 以下のとおり
です。
ISBA0 ∼ ISBA2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
-0000000B
R/W :リード / ライト可能
7 ビットスレーブアドレスレジスタ (ISBA0 ∼ ISBA2) への書込みアクセスは , I2C イン
タフェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。
[bit7] Reserved:予約ビット
読出し値は "0" です。
[bit6 ∼ bit0] SA6 ∼ SA0:スレーブアドレスビット
スレーブモードでスレーブアドレスを受信したとき , 7 ビットスレーブアドレスが
許可 (ENSB=1:ISMK) されていると , 受信スレーブアドレスと ISBA の比較を行いま
す。スレーブアドレス一致が検出されると , マスタに対してアクノリッジを送信し ,
AAS ビットをセットします。
I2C インタフェースは , 再起動条件のあと 7 ビットリードアクセスのアドレスヘッ
ダの受信にアクノリッジを返します。
スレーブアドレスの全ビットは , ISMK の設定によりマスクされます。受信スレー
ブアドレスは , ISBA レジスタに上書きされます。このレジスタが有効なのは , AAS
(IBSR レジスタ ) が "1" のときのみです。
I2C インタフェースは , 10 ビットスレーブアドレス指定 , またはゼネラルコールが
受信されたとき , ISBA と受信スレーブ・アドレスとの比較を行いません。
458
第 13 章 I2C インタフェース
13.2.7
7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼
ISMK2)
7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) には , 7 ビットスレー
ブアドレスマスクと , 7 ビットスレーブアドレス許可ビットがあります。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2)
7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) のレジスタ構成は , 以下
のとおりです。
ISMK0 ∼ ISMK2
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ENSB
R/W
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
01111111B
R/W :リード / ライト可能
7 ビットスレーブアドレスマスクレジスタ (ISMK0 ∼ ISMK2) への書込みアクセスは ,
I2C インタフェースが有効でない場合 (ICCR の EN ビットが "0") に行ってください。
[bit15] ENSB:7 ビットスレーブアドレス許可ビット
7 ビットスレーブアドレス動作許可ビットです。
値
内 容
0
7 ビットスレーブアドレス動作禁止 [ 初期値 ]
1
7 ビットスレーブアドレス動作許可
[bit14 ∼ bit8] SM6 ∼ SM0:7 ビットスレーブアドレスマスクビット
このビットは 7 ビットスレーブアドレスレジスタ (ISBA) のビットをマスクします。
値
内 容
0
当該ビットをスレーブアドレス比較に使用しない
1
当該ビットをスレーブアドレス比較に使用する [ 初期値 ]
このビットを設定することにより複合 7 ビットスレーブアドレスに対してアクノ
リッジを送信することが可能になります。このレジスタを , 7 ビットスレーブアド
レス比較に使用するときは , このビットを "1" にセットしてください。受信したス
レーブアドレスは , ISBA に上書きされます。AAS = 1(IBSR) のとき ISBA レジスタ
を読み出すことによって実際の指定されたスレーブアドレスを特定できます。
I2C インタフェースが許可になった後 , スレーブアドレス (ISBA) は , 受信動作によっ
て書き換えられるため , ISMK を書き換えたときは , ISMK を再設定しないと期待ど
おりの動作をしないことがあります。
459
第 13 章 I2C インタフェース
ISMK の SM6 ∼ SM0 の各ビットが ISBA のアドレスの各ビットに対応しており SM6 ∼
SM0の値が"1"のときはISBAのアドレスが有効になり"0"のときは無効になります。
例:ISBA アドレス 0010111B
ISMK アドレス 1111100B のとき
スレーブアドレスは 0010100B ∼ 0010111B の空間になります。
460
第 13 章 I2C インタフェース
13.2.8
データレジスタ (IDAR0 ∼ IDAR2)
データレジスタ (IDAR0 ∼ IDAR2) について説明します。
■ データレジスタ (IDAR0 ∼ IDAR2)
データレジスタ (IDAR0 ∼ IDAR2) のレジスタ構成は , 以下のとおりです。
IDAR0 ∼ IDAR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
00000000B
R/W :リード / ライト可能
[bit7 ∼ bit0] D7 ∼ D0:データビット
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中(BB=1)であ
る場合 , 書込みデータはシリアル転送用のレジスタにロードされます。INT ビット
(IBCR) がクリアされるか , バスがアイドル状態 (BB=0:IBSR) のとき転送データは内
部転送レジスタにロードされます。
読出し時はシリアル転送用のレジスタを直接読み出すため , 本レジスタの受信デー
タは INT ビット (IBCR) がセットされている場合のみ有効です。
461
第 13 章 I2C インタフェース
13.3
I2C インタフェースの動作説明
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインにより転送が行われます。
I2C インタフェースはそれに対して 2 本のオープンドレイン入出力端子 (SDA, SCL)
を有し , ワイヤード論理を可能にします。
■ 起動条件
バスが開放されている状態 (BB=0, MSS=0) で MSS ビットに "1" を書き込むと , I2C イ
ンタフェースはマスタモードとなり , 起動条件を発生します。そのとき , スレーブアド
レスとして IDAR レジスタの値を送信します。
バスマスタモードで割込みフラグがセットされているとき (MSS=1, INT=1:IBCR), SCC
ビットに "1" を書き込むことで , 再起動条件が生成されます。
バス使用時 (BB=1, TRX=0: IBSR, MSS=0 または INT=0:IBCR) に , MSS ビットに "1" を
書き込むとバスが開放され , 送信が開始されます。
スレーブモード時ライト ( 受信 ) アクセスされると , 転送終了しバスが開放された後 ,
送信開始します。そのとき , インタフェースがデータ送信中であれば , バスが開放され
ても送信しません。
インタフェースは , 次のことをチェックする必要があります。
• スレーブとして指定された (MSS=0:IBCR, AAS=1:IBSR) かどうか
• 次の割込みで , データバイトを正常に送れた (AL=1:IBSR) かどうか
■ 停止条件
マスタモード (MSS=1, INT=1:IBCR) 時に , MSS ビットに "0" を書き込むと , 停止条件を
発生し , スレーブモードになります。ほかの条件での , MSS に "0" 書込みは , 無視され
ます。
MSS ビットがクリアされたあと , 停止条件を生成しようとします。停止条件を生成す
る前に , SCL ラインが "L" にドライブされているときは , 生成されません。次のバイト
が転送されたあと割込みが生成されます。
<注意事項>
MSS ビットに "0" を書き込んでから , 停止条件を発生するまでに時間を要します。起動条
件を発生前に I2C インタフェースを動作禁止 (DBL=1:IDAR または EN=0:ICCR) にすると ,
直ちに動作停止し SCL ラインに不正クロックが発生します。I2C インタフェースの動作を
禁止する際には , 起動条件の発生を確認 (BB=0:IBSR) したのち , 動作を禁止 (DBL=1:IDAR
または EN=1:ICCR) してください。
462
第 13 章 I2C インタフェース
■ スレーブアドレス検出
スレーブモードでは , 起動条件発生後 , BB=1 にセットされ , マスタからの送信データ
を IDAR レジスタへ受信します。
〔7 ビットスレーブアドレス動作許可の場合〕(ISMK レジスタの ENSB=1)
8 ビットデータ受信後 IDAR レジスタと ISBA レジスタとの比較が行われます。こ
のとき , ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合, AAS=1 にセットし, マスタに対してアクノリッジを送信します。
その後 , 受信データの bit0 ( 受信後の IDAR レジスタの bit0) を反転して TRX ビット
へ格納します。
〔10 ビットスレーブアドレス動作許可の場合〕(ITMK レジスタの ENTB=1)
10 ビットアドレスのヘッダ部 (11110, TA1, TA0, write) を検出すると , マスタに対し
てアクノリッジを送信し , 受信データの bit0 を反転して TRX ビットへ格納します。
このとき割込みは発生しません。
続いて , 次の転送データと ITBA レジスタの下位データとの比較が行われます。こ
のとき ISMK レジスタによりビットマスクされた値との比較になります。
一致している場合 , AAS に "1" をセットし , マスタに対してアクノリッジを送信し
ます。このとき割込みが発生します。
スレーブとしてアドレス指定され , 再起動条件を検出した場合 , 10 ビットアドレス
のヘッダ部 (11110, TA1, TA0, read) を受信後に AAS に "1" をセットし , 割込みを発
生します。
10 ビットスレーブアドレスレジスタ (ITBA) と 7 ビットスレーブアドレスレジスタ
(ISBA) を搭載しているので , 両方の動作許可 (ISMK レジスタの ENSB=1, ITMK レ
ジスタの ENTB=1) をすることにより , 10 ビットアドレス /7 ビットアドレスに対し
てアクノリッジを送信することができます。
スレーブモード時 (AAS=1) の受信スレーブアドレス長は , ITMK レジスタの RAL
ビットによって決定します。マスタモード時は , 両方の動作を禁止 (ENSB=0:ISMK,
ENTB=0:ITMK) することにより , I2C インタフェースにスレーブアドレスを生成し
ないことが可能です。
全スレーブアドレスは , ITMK, ISMK レジスタを設定することによりマスクできま
す。
■ スレーブアドレスマスク
スレーブアドレスマスクレジスタ (ITMK, ISMK) は , スレーブアドレスレジスタの各
ビットに対してマスクすることができます。マスクレジスタに "1" をセットされたビッ
トはアドレス比較を行いますが , "0" に設定されているビットは無視されます。スレー
ブモード (AAS=1:IBSR) 時 , 受信スレーブアドレスは , ITBA (10 ビットアドレス時 ) ,
ISBA (7 ビットアドレス時 ) レジスタから読み出せます。
ビットマスクがクリアされていると , 常にスレーブとしてアクセスされるので , バスの
モニタとして使用できます。
<注意事項>
ほかのスレーブデバイスがない場合でも , スレーブアドレスを受信するとアクノリッジを
返すので , この機能は , リアルバスモニタとはなりません。
463
第 13 章 I2C インタフェース
■ スレーブアドレッシング
マスタモードでは , 起動条件発生後 , BB=1, TRX=1 をセットし , IDAR レジスタの内容
を MSB から出力します。アドレスデータ送信後 , スレーブからアクノリッジを受信す
ると , 送信データの bit0 ( 送信後の IDAR レジスタの bit0) を反転して TRX ビットへ格
納します。この動作は , 再起動条件でも実行されます。
ライト 10 ビットスレーブアドレスのために , 2 バイト送信します。第一バイトは , 10
ビットシーケンスを示すヘッダ"1 1 1 1 0 A9 A8 0"であり, 続いて, 第二バイトでスレー
ブアドレスの下位 8 ビット (A7 ∼ A0) を送信します。
リード10ビットスレーブデバイスは上記のバイトを送信し, 再起動条件とともに, リー
ドアクセスを示すヘッダ "1 1 1 1 0 A9 A8 1" を生成します。
7 ビット
スレーブアクセス
10 ビット
スレーブアクセス
書込み
起動条件 -A6 A5 A4 A3 A2 A1 A0 0
読出し
起動条件 -A6 A5 A4 A3 A2 A1 A0 1
書込み
起動条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0
読出し
起動条件 -1 1 1 1 0 A9 A8 0-A7 A6 A5 A4 A3 A2 A1 A0
- 再起動条件 -1 1 1 1 0 A9 A8 1
■ アービトレーション
マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ
ンが起こります。自身の送信データが "1", SDA ライン上のデータが "L" レベルの場合 ,
自身はアービトレーションを失ったとみなし , AL=1 にセットします。
インタフェースがデータの最初のビットで , 不要な起動条件を検出されるか起動条件 ,
停止条件の生成が失敗した場合 , AL=1 がセットされます。
アービトレーションロストが発生すると , MSS=0, TRX=0 となり , スレーブ受信モード
となり , 自身のスレーブアドレスを受信するとアクノリッジを返します。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット
(IBCR) によって , 受信時にアクノリッジを送信するかどうかを選択することができま
す。
スレーブモード時のデータ送信 ( ほかのマスタからのリードアクセス ) に , マスタから
アクノリッジがなくても , TRX ビットは "0" にセットし , 受信モードになります。これ
により , マスタはスレーブが SCL ラインを開放したときに , 停止条件を発生すること
ができます。
マスタモード時 , LRB ビット (IBSR) を読み出すことにより , アクノリッジがあったか
どうかをチェックできます。
ゼネラルコールアドレスを送信した後に , アービトレーションロストが発生した場合 ,
データ ( 発生したデータを含む ) 受信時にアクノリッジ応答する場合は , ACK ビット
と GCAA ビットをともに "1" に設定してください。それ以外の設定では , アクノリッ
ジ応答しません。
464
第 13 章 I2C インタフェース
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビットを含む ) の I2C バスプロトコル違反の検出
• マスタ時の停止条件検出
• バスアイドル時の I2C バスプロトコル違反の検出
■ エラーを発生しない通信エラー
マスタモード送信時 , SCL ラインにノイズなどで不正クロックが発生すると , I2C イン
タフェースの送信ビットカウンタが早く進み , ACK サイクルでスレーブが SDA ライン
に "L" を出したまま , ハングアップすることがあります。このようなクロックの不正に
対し , エラー (AL=1, BER=1) が発生しません。
この場合次の方法でエラー処理をしてください。
1. MSS=1, TRX=1, INT=1 のとき , LRB=1 であれば , 通信エラーと判断します。
2. ここで , EN=0 とし , その後 EN=1 とすることにより , 疑似的に SCL が 1 クロック発
生します。
これにより , スレーブにバスを開放させます。
EN=0 から EN=1 の期間は , スレーブ側が , クロックと認識できる期間 ( 送信クロッ
クの "H" 期間と同じ程度 ) としてください。
3. EN=0 の時点で , IBSR, IBCR はクリアされますので , 起動条件から再送信処理をして
ください。このとき , BB=0 による停止条件は生成されません。
このとき , EN=1 から MSS=1 ( 起動条件 ) までに , "n × 7 × tCPP" 以上の時間を空け
てください。
例:高速モードの場合:6 × 7 × 40 ≒ 1.680 µs
標準モードの場合:27 × 7 × 40 ≒ 7.560 µs
(CLKP=25 MHz 時 )
<注意事項>
BER がセットされている場合は , EN=0 でクリアされません。クリア後 , 再送信してくだ
さい。
465
第 13 章 I2C インタフェース
■ その他
1. アービトレーションロストした後 , 自分がアドレッシングされている場合と , アド
レッシングされていなかった場合をソフトで判断する必要があります。
アービトレーションロストするとハード的にスレーブになりますが , 1 バイト転送
終了後 , クロックライン , データライン双方を "L" に引っ張ります。このため , アド
レッシングされていなければ , 即座にクロックライン , データラインを開放し , アド
レッシングされていた場合には , スレーブ送信または , スレーブ受信の準備をして
から , クロックライン , データラインを開放する必要があります ( すべてソフトウェ
アにて処理する必要があります ) 。
2. I2C バスには 1 つの割込みしかなく , 1 バイト転送終了した時点で , あるいは割込み
条件に該当していた場合 , 割込み要因が発生する仕様になっています。
1 つの割込みで , 複数の割込み条件を判断しなければならないため , 割込みルーチン
内で , 各フラグをチェックする必要があります。1 バイト転送終了時点での割込み
条件を下記に示します。
- バスマスタであった場合
- アドレスされたスレーブであった場合
- ゼネラルコールアドレスを受信した場合
- アービトレーションロストが生じた場合
3. アービトレーションロストを検出した場合 , 即座に割込み要因が発生するのではな
く , 1 バイト転送終了した時点で要因が発生します。
アービトレーションロストを検出すると自動的にスレーブになりますが , スレーブ
になっても , 割込み要因を発生させるために , トータル 9 クロック出力をします。そ
のため , 即座に割込み要因が発生しないので , アービトレーションロスト後に処理
を行うことはできません。
466
第 13 章 I2C インタフェース
13.4
動作フローチャート
スレーブアドレスとデータ転送および受信データを例に , 動作フローチャートを示
します。
■ スレーブアドレスとデータ転送の例
図 13.4-1 に , スレーブアドレスとデータ転送の例を示します。
図 13.4-1 スレーブアドレスとデータ転送例
7ビットスレーブアドレッシング
スタート
スタート
BERビットクリア(セット)
インタフェース動作許可EN=1
IDAR =S.アドレス<<1+R W
MSS=1
NO
INT=0
ライトアクセスの
スレーブアドレス
IDAR = バイトデータ
INT=0
INT=1?
NO
INT=1?
YES
YES
転送データ
YES
YES
BER=1?
バスエラー
BER=1?
NO
NO
YES
AL=1?
AASの検査
により再起動
転送
NO
ACK=?
(LRB=0?)
YES
AL=1?
AASの検査
により再起動
転送
NO
NO
YES
データ転送の準備
ACK=?
(LRB=0?)
NO
YES
最終バイト
の転送
YES
NO
転送終了
・スレーブがACKを発生しない,
もしくはマスタがACKを受信できない
・いったんEN=0にし, 再送信
転送終了
・反復
「START」条件,「STOP」
条件を発生する
・「STOP」条件発生(BB=0)
を確認し,EN=0
転送終了
送信時:
・スレーブがACKを発生
しない, もしくはマスタが
ACKを受信できない
・いったんEN=0にし, 再送信
受信時:
ACKなし, 反復「START」条件,
「STOP」条件を発生する
467
第 13 章 I2C インタフェース
■ 受信データの例
図 13.4-2 に , 受信データの例を示します。
図 13.4-2 受信データ例
スタート
リードアクセスの
スレーブアドレス
スレーブなら最終リード
データならACKビットを
クリアする。
INT=0
INT=1?
NO
YES
YES
BER=1?
バスエラー
再起動
NO
NO
最終バイト
の転送
YES
転送終了
反復「START」
条件,「STOP」
条件
を発生する
468
第 13 章 I2C インタフェース
■ 割込み処理
図 13.4-3 に , 割込み処理を示します。
図 13.4-3 割込み処理
スタート
NO
ほかのモジュール
INT=1?
からの受信割込み
YES
YES バスエラー
BER=1?
再起動
NO
GCA=1?
YES
スレーブ時にゼネラルコール
検出
NO
NO
転送の失敗
AAS=1?
YES
再トライを行う
YES
YES
AL=1?
AL=1?
アービトレーション
ロスト再転送
NO
YES
NO
LRB=1?
「STOP」
の条件,反復
YES
「START」
条件の作成
ADT=1
次の割込みで
新データ転送開始
必要であれば
ACKビットを変更
NO
NO
TRX=1?
スレーブのACKなし
TRX=1?
YES
YES
NO
NO
IDARから受信デー
タを読む。必要で
あればACKビット を
変更する
IDARに次の
送信データ
をライトす
る
IDARから受信デー
タを読む。必要で
あればACKビットを
変更する
IDARに次の送信
データをライト
またはMSSビット
のクリア
クリアINTビット
ISR終了
469
第 13 章 I2C インタフェース
470
第 14 章
16 ビットリロードタイマ
16 ビットリロードタイマのレジスタの構成と機能
およびタイマの動作について説明します。
14.1 16 ビットリロードタイマの概要
14.2 16 ビットリロードタイマのレジスタ
14.3 16 ビットリロードタイマの動作
471
第 14 章 16 ビットリロードタイマ
16 ビットリロードタイマの概要
14.1
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内
部カウント , クロック生成用プリスケーラ , コントロールレジスタで構成されていま
す。
■ 16 ビットリロードタイマの概要
16 ビットタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジスタ , 内部
カウント , クロック作成用プリスケーラ , コントロールレジスタで構成されています。
クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周 ), 外部イベ
ントから選択できます。
■ 16 ビットリロードタイマのブロックダイヤグラム
図 14.1-1 に 16 ビットリロードタイマのブロック図を示します。
図 14.1-1 16 ビットリロードタイマのブロック
16ビットリロードレジスタ
(TMRLR)
リロード
RELD
OUTL
INTE
UF
CNTE
TRG
R-bus
16ビットダウンカウンタ(TMR)
UF
OUT
CTL
カウント
イネーブル
クロック
セレクタ
プリスケーラ
472
外部タイマ
出力
CSL1
CSL0
EXCK
プリスケーラ
クリア
IRQ
IN CTL
CSL1
CSL0
PFR内ビット
外部トリガ
選択
外部トリガ入力
第 14 章 16 ビットリロードタイマ
16 ビットリロードタイマのレジスタ
14.2
16 ビットリロードタイマで使用されるレジスタの構成と機能について説明します。
■ 16 ビットリロードタイマのレジスタ一覧
図 14.2-1 16 ビットリロードタイマのレジスタ一覧
TMCSR 上位バイト
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CSL0
R/W
MOD2
R/W
MOD1
R/W
----0000B
−
−
−
−
−
−
−
−
CSL1
R/W
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
RELD
INTE
UF
CNTE
TRG
00000000B
R/W
−
R
OUTL
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
TMCSR 下位バイト
bit7
MOD0
TMR
初期値
XXXXH
R
R
R
R
R
R
R
R
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
W
W
W
W
W
W
W
W
TMRLR
初期値
XXXXH
R/W
R
W
X
:リード / ライト可能
:リードオンリ
:ライトオンリ
:不定
473
第 14 章 16 ビットリロードタイマ
14.2.1
コントロールステータスレジスタ (TMCSR)
コントロールステータスレジスタ (TMCSR) は 16 ビットリロードタイマの動作モー
ドと割込みを制御します。
■ コントロールステータスレジスタ (TMCSR) のビット構成
TMCSR 上位バイト
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
−
−
−
−
CSL0
R/W
MOD2
R/W
MOD1
R/W
----0000B
−
CSL1
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MOD0
−
R
OUTL
RELD
INTE
UF
CNTE
TRG
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
TMCSR 下位バイト
R/W
R/W :リード / ライト可能
R
:リードオンリ
[bit15 ∼ bit12] Reserved:予約ビット
予約ビットです。
読出し値は常に "0000B" となります。
[bit11, bit10] CSL1, CSL0:カウントソース選択ビット
カウントソースセレクトビットです。カウントソースは内部クロックと外部イベン
トを選択できます。選択可能なカウントソースは以下のとおりです。
カウントソース
(φ : マシンクロック )
φ =32MHz
φ =16MHz
φ /21 [ 初期値 ]
62.5ns
125ns
内部クロック
φ /23
250ns
500ns
0
内部クロック
φ /25
1.0µs
2.0µs
1
外部イベント
−
−
CSL1
CSL0
0
0
内部クロック
0
1
1
1
外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1,
MOD0 ビットにより設定されます。
外部クロックに必要な最小パルス幅は 2 × T (T:マシンクロックサイクル ) です。
474
第 14 章 16 ビットリロードタイマ
[bit9 ∼ bit7] MOD2, MOD1, MOD0:モードビット
動作モードを選択するビットです。カウントソースが「内部クロック」の場合と
「外部クロック」の場合で機能が変わります。
内部クロックモードのとき・・・・・リロードトリガ設定
外部クロックモードのとき・・・・・カウント有効エッジの設定
また , MOD2 は必ず "0" を設定してください。
【内部クロック選択時のリロードトリガ設定】
カウントソースとして , 内部クロックが選択されている場合は MOD2 ∼ MOD0 ビッ
トの設定により有効エッジが入力されるとリロードレジスタの内容をロードして
カウント動作を継続します。
MOD2
MOD1
MOD0
0
0
0
ソフトウェアトリガ [ 初期値 ]
0
0
1
外部トリガ ( 立上りエッジ )
0
1
0
外部トリガ ( 立下りエッジ )
0
1
1
外部トリガ ( 両エッジ )
1
X
X
設定禁止
有効エッジ
【外部クロック選択時の有効エッジ設定】
カウントソースとして , 外部クロックイベントが設定されている場合は MOD2 ∼
MOD0 ビットの設定により有効エッジが入力されるとイベントをカウントします。
MOD2
MOD1
MOD0
X
0
0
− [ 初期値 ]
X
0
1
外部トリガ ( 立上りエッジ )
X
1
0
外部トリガ ( 立下りエッジ )
X
1
1
外部トリガ ( 両エッジ )
有効エッジ
外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。
[bit6] Reserved:予約ビット
予約ビットです。
読出し値は常に "0" となります。
[bit5] OUTL:出力レベル
外部タイマ出力レベルを設定するビットです。本ビットが "0" の時と "1" の時では
出力レベルが逆になります。
475
第 14 章 16 ビットリロードタイマ
[bit4] RELD:リロード許可ビット
リロード許可ビットです。"1" の時リロードモードになり , カウンタの値が "0000H"
→ "FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロード
してカウント動作を続けます。
"0" の時ワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアンダ
フローによりカウント動作を停止します。
PFRxy
OUTL
RELD
0
X
X
出力禁止 [ 初期状態 ]
1
0
0
カウント中 "H" の矩形波
1
1
0
カウント中 "L" の矩形波
1
0
1
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
PFRxy は対応する端子の PFR レジスタ値を意味します。
[bit3] INTE:割込み許可ビット
割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を発生
します。"0" の時は割込み要求を発生しません。
[bit2] UF:アンダフロー割込みフラグ
タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ
ローにより "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" 書込みは意味がありません。
リードモディファイライト系命令における読出しでは , "1" が読み出されます。
[bit1] CNTE:カウント許可ビット
タイマのカウントイネーブルビットです。このビットに "1" を書き込むと , 起動ト
リガ待ち状態になります。"0" 書込みによりカウント動作は停止します。
[bit0] TRG:トリガビット
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込みは意味を持ちません。読出し値は常に "0" です。
本レジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 の
時には何も起こりません。
<注意事項>
UF, CNTE, TRG ビット以外の書き換えは , CNTE=0 の時に行うようにしてください。
476
第 14 章 16 ビットリロードタイマ
14.2.2
16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタ (TMR) は 16 ビットタイマのカウント値を読み出すために
使用されます。
■ 16 ビットタイマレジスタ (TMR) のビット構成
TMR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R
R
R
R
R
R
R
R
初期値
XXXXH
R
X
:リードオンリ
:不定
16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で
す。本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。
477
第 14 章 16 ビットリロードタイマ
14.2.3
16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタ (TMRLR) はカウンタの初期値を保持するためのレジス
タです。
■ 16 ビットリロードレジスタ (TMRLR) のビット構成
TMRLR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
W
W
W
W
W
W
W
W
初期値
XXXXH
W
X
:ライトオンリ
:不定
本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で
す。本レジスタの書込みは必ず 16 ビットデータ転送命令で行ってください。
478
第 14 章 16 ビットリロードタイマ
14.3
16 ビットリロードタイマの動作
16 ビットリロードタイマの下記の動作について説明します。
• 内部クロック動作
• アンダフロー動作
• 出力端子機能
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシ
ンクロックの 2・8・32 分周のクロックから選択することができます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態 (CNTE=1) のとき動作モードに関
わらず常に有効です。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに T ( 周辺系クロックマシンサイクル ) の時間がかかります。
図 14.3-1 カウンタの起動および動作
カウントクロック
リロードデータ
カウンタ
-1
-1
-1
データロード
CNTEビット
TRGビット
T
■ アンダフロー動作
カウンタの値が "0000H" から "FFFFH" になる時をアンダフローとしています。したがっ
て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生することになり
ます。
アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ
スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の
ときカウンタは , "FFFFH" で停止します。
479
第 14 章 16 ビットリロードタイマ
図 14.3-2 アンダフロー動作
[RELD=1]
カウントクロック
0000H
カウンタ
リロードデータ
-1
-1
-1
データロード
アンダフローセット
[RELD=0]
カウントクロック
0000H
カウンタ
FFFFH
アンダフローセット
■ 出力端子機能
TOT 出力端子は , リロードモード時はアンダフローにより反転するトグル出力として ,
ワンショットモード時はカウント中を示すパルス出力として機能します。出力極性は
レジスタの OUTL ビットにより設定できます。OUTL=0 のときトグル出力は , 初期値
が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1 にすると
出力波形は反転します。
図 14.3-3 出力端子機能 [RELD=1, OUTL=0]
カウント開始
アンダフロー
TOT0~3
OUTL=1の時は反転
汎用ポート
CNTE
起動トリガ
図 14.3-4 出力端子機能 [RELD=0, OUTL=0]
カウント開始
アンダフロー
TOT0~3
OUTL=1で反転
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
480
第 14 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は, コントロールレジスタのCNTEビットと内部信号のWAIT信号によっ
て決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ) ,
CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ) , CNTE=1, WAIT=0 の動作状態
(RUN 状態 ) があります。
図 14.3-5 カウンタ状態遷移
ハードウェアによる状態遷移
リセット
レジスタアクセスによる状態遷移
STOP CNTE=0,WAIT=1
カウンタ:停止時の値を保
持,リセット直後は不定
CNTE=1
TRG=0
CNTE=1
TRG=1
WAIT CNTE=1,WAIT=1
RUN
カウンタ:停止時の値を保
持,リセット直後ロードす
るまでは不定
RELD・UF
TRG=1
CNTE=1,WAIT=0
カウンタ:動作
TRG=1
LOAD CNTE=1,WAIT=0
リロードレジスタの内
容をカウンタへロード
RELD・UF
ロード終了
481
第 14 章 16 ビットリロードタイマ
■ 注意事項
1. 内部プリスケーラは , コントロールステータスレジスタの bit1 ( タイマ許可 : CNTE)
が "1" に設定されている状態でトリガ ( ソフトウェアトリガ , あるいは外部トリガ )
がかけられることにより動作可能になります。
2. 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ
グセットが優先し , クリア動作は無効になります。
3. 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった
場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされる
のは次のリロードのタイミングとなります。
4. 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には ,
ロード ( リロード ) 動作が優先されます。
482
第 15 章
16 ビットフリーランタイマ
16 ビットフリーランタイマの機能と動作について
説明します。
15.1 16 ビットフリーランタイマの概要
15.2 16 ビットフリーランタイマのレジスタ
15.3 16 ビットフリーランタイマの動作
15.4 16 ビットフリーランタイマ使用時の注意事項
483
第 15 章 16 ビットフリーランタイマ
15.1
16 ビットフリーランタイマの概要
16 ビットフリーランタイマは , 16 ビットのタイマ ( アップカウンタ ) と制御回路で
構成されています。16 ビットフリーランタイマはインプットキャプチャ , アウト
プットコンペアと組み合わせて使用することができます。
■ 16 ビットフリーランタイマの概要
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール • ステータス
レジスタより構成されています。本タイマのカウント値はアウトプットコンペア , イン
プットキャプチャの基本時間 ( ベースタイマ ) として使用されます。
• カウントクロックは 4 種類から選択可能
• カウンタオーバフローによる割込み発生
• モード設定により , アウトプットコンペアのコンペアレジスタの値との一致による
カウンタの初期化が可能
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 15.1-1 16 ビットフリーランタイマのブロックダイヤグラム
割込み
IVF
IVFE
STOP
MODE
CLR
CLK1
CLK0
R-bus
ECLK
分周期
FRCK
クロック選択
16bitフリーランタイマ
(TCDT)
クロック
内部回路へ
コンパレータ
484
(T15~T00)
第 15 章 16 ビットフリーランタイマ
15.2
16 ビットフリーランタイマのレジスタ
本節では , 16 ビットフリーランタイマのレジスタについて説明します。
■ 16 ビットフリーランタイマのレジスタ一覧
TCDT ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
T15
T14
T13
T12
T11
T10
T09
T08
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
T07
R/W
T06
R/W
T05
R/W
T04
R/W
T03
R/W
T02
R/W
T01
R/W
T00
R/W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ECLK
R/W
IVF
R/W
IVFE
R/W
STOP
R/W
MODE
R/W
CLR
R/W
CLK1
R/W
CLK0
R/W
0x000000B
TCDT ( 下位バイト )
TCCS
R/W :リード / ライト可能
X
:不定
485
第 15 章 16 ビットフリーランタイマ
タイマデータレジスタ (TCDT)
15.2.1
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出すこと
のできるレジスタです。
■ タイマデータレジスタ (TCDT)
TCDT ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
T15
R/W
T14
R/W
T13
R/W
T12
R/W
T11
R/W
T10
R/W
T09
R/W
T08
R/W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
T07
T06
T05
T04
T03
T02
T01
T00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TCDT ( 下位バイト )
R/W :リード / ライト可能
タイマデータレジスタのカウンタ値は , リセット時に "0000H" に初期化されます。この
レジスタへの書込みによりタイマ値を設定することができます。
このレジスタへの書込みは , 必ず 16 ビットフリーランタイマが停止 (TCCS レジスタの
STOP=1) 時に行ってください。
タイマの初期化は次の要因で行われます。
• リセットによる初期化
• タイマコントロールステータスレジスタの CLR ビットへの "1" 書込みによる初期化
• アウトプットコンペアのコンペアクリアレジスタ値とカウンタ値の一致による初
期化 ( モード設定が必要 )
<注意事項>
このレジスタへのアクセスは , ハーフワード (16 ビット ) で行ってください。
486
第 15 章 16 ビットフリーランタイマ
タイマコントロールステータスレジスタ (TCCS)
15.2.2
タイマコントロールステータスレジスタは , 16 ビットフリーランタイマのカウント
値を制御するために使用されます。
■ タイマコントロールステータスレジスタ (TCCS)
TCCS
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ECLK
R/W
IVF
R/W
IVFE
R/W
STOP
R/W
MODE
R/W
CLR
R/W
CLK1
R/W
CLK0
R/W
0x000000B
R/W :リード / ライト可能
X
:不定
[bit7] ECLK:クロック選択ビット
16 ビットフリーランタイマのカウントクロックソースとして , 内部クロックまたは
外部クロックを選択するビットです。クロックソースの選択は , アウトプットコン
ペア , インプットキャプチャが停止状態で行ってください。
ECLK
クロック選択
0
内部クロックソース (CLKP) を選択 [ 初期値 ]
1
外部端子 (FRCK) を選択
<注意事項>
内部クロックを選択した場合は , TCDT レジスタの bit1, bit0 (CLK1, CLK0) にカウントク
ロックの設定を行ってください。このカウントクロックがベースクロックとなります。ま
た , FRCK よりクロックを入力する場合は , 対応する端子の DDR ビットを "0" に設定 ( 入
力ポート ) してください。
外部クロックに必要な最低パルス幅は , 2 × T です。(T: 周辺系クロックサイクル )
外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割込み
は次のクロックサイクルで発生します。そのため , コンペア一致出力 , 割込みを発生させ
るためには , コンペア一致後 , 最低 1 クロックサイクルを入力する必要があります。
[bit6] IVF:割込み要求フラグ
16 ビットフリーランタイマの割込み要求フラグです。
16 ビットフリーランタイマがオーバフローを起こした場合 , またはモード設定によ
りコンペアレジスタとコンペアマッチした場合に本ビットは"1"にセットされます。
割込み要求許可ビット (IVFE) がセットされていると割込みが発生します。
本ビットは "0" 書込みによりクリアされます。リードモディファイライト系命令で
は常に "1" が読み出されます。
487
第 15 章 16 ビットフリーランタイマ
IVF ビットはリセットにより "0" に初期化されますが , フリーランタイマは動作状
態であるため , オーバフロー発生期間経過後は "1" にセットされます。
IVF
割込み要求フラグ
0
割込み要求なし [ 初期値 ]
1
割込み要求あり
[bit5] IVFE:割込み許可ビット
16 ビットフリーランタイマの割込み許可ビットです。
本ビットが"1"の時, 割込みフラグ(IVF)に"1"がセットされると割込みが発生します。
IVFE
割込み許可
0
割込み禁止 [ 初期値 ]
1
割込み許可
[bit4] STOP:停止ビット
16 ビットフリーランタイマのカウントを停止するためのビットです。
STOP
カウント動作
0
カウント許可 ( 動作 ) [ 初期値 ]
1
カウント禁止 ( 停止 )
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
[bit3] MODE:モード設定ビット
16 ビットフリーランタイマの初期化条件を設定します。
本ビットが "0" の時は , リセットとクリアビット (bit2:CLR) でカウンタ値を初期化
することができます。
"1" の時は , リセットとクリアビット (bit2:CLR) のほかにアウトプットコンペアの
コンペアレジスタ値との一致によりカウンタ値を初期化することができます。
MODE
488
タイマ初期化条件
0
リセット , クリアビット [ 初期値 ]
1
リセット , クリアビット , コンペアレジスタ
第 15 章 16 ビットフリーランタイマ
[bit2] CLR:タイマクリアビット
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
本ビットに "1" を書き込むことにより , タイマ値を "0000H" に初期化します。
本ビットの読出しは常に "1" となります。
<注意事項>
カウンタ値の初期化は , カウント値の変化点で行われます。CLR ビットへ "1" 書込み後 ,
カウンタがクリアされる前に "0" を書き込むとカウンタクリア要求は取り下げられます。
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。
[bit1, bit0] CLK1, CLK0:カウントクロック選択ビット
16 ビットフリーランタイマのカウントクロックを選択するビットです。
本ビットに書込みの後 , 直ちにカウントクロックは変更されます。本ビットの変更
は , アウトプットコンペア , インプットキャプチャが停止状態にて行ってください。
CLK1
CLK0
カウントクロック (φ)
φ =32 MHz
φ =16 MHz
0
0
φ /22
125 ns
250 ns
0
1
φ /24
500 ns
1.0 µs
1
0
φ /25
1.0 µs
2.0 µs
1
1
φ /26
2.0 µs
4.0 µs
φ : リソースクロック (CLKP)
489
第 15 章 16 ビットフリーランタイマ
15.3
16 ビットフリーランタイマの動作
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は次の条件でクリアされます。
• オーバフローの発生
• コンペアクリアレジスタ ( アウトプットコンペアのコンペアレジスタ ) 値とのコン
ペアマッチ ( モード設定が必要 )
• 動作中での TCCS レジスタの CLR ビットに "1" 書込み
• タイマ停止中での TCDT への "0000H" 書込み
• リセットの発生
割込みはオーバフローが発生したとき , コンペアクリアレジスタの値と , コンペアマッ
チしたときに発生します ( コンペアマッチ割込みは , モード設定が必要です )。
図 15.3-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
割込み
図 15.3-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ
割込み
490
BFFFH
第 15 章 16 ビットフリーランタイマ
■ 16 ビットフリーランタイマのクリアタイミング
カウンタクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行わ
れます。
リセットとソフトウェアでのカウンタクリアは , クリア発生と共に行われますが , コン
ペアクリアレジスタとの一致によるカウンタクリアはカウントタイミングに同期して
行われます。
図 15.3-3 16 ビットフリーランタイマのクリアタイミング
コンペアクリア
レジスタ値
N
カウンタクリア
カウンタ値
N
0000H
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ
ステムクロックで同期化したのち , 内部カウントクロックの立下りでカウントされま
す。
図 15.3-4 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
内部クロック入力
カウンタ値
N
N+1
491
第 15 章 16 ビットフリーランタイマ
15.4
16 ビットフリーランタイマ使用時の注意事項
16 ビットフリーランタイマの使用上の注意事項を説明します。
■ 16 ビットフリーランタイマ使用時の注意事項
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先しクリア動作は無効となります。
• コントロールステータスレジスタの bit2 ( カウンタ初期ビット:CLR) は "1" が書き
込まれると , 内部カウンタをクリアするタイミングまで値を保持し , そのタイミン
グで自身もクリアします。クリアタイミングと "1" の書込みが重複した場合には , 書
込みが優先しカウンタ初期化ビットは , 次のクリアタイミングまで "1" を保持し続
けます。
• カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有
効となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジ
スタに "0000H" を書き込むようにしてください。
492
第 16 章
インプットキャプチャ
インプットキャプチャの機能と動作について説明
します。
16.1 インプットキャプチャの概要
16.2 インプットキャプチャのレジスタ
16.3 インプットキャプチャの動作
493
第 16 章 インプットキャプチャ
16.1
インプットキャプチャの概要
インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま
たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保
持する機能を持っています。また , エッジ検出時に割込みを発生することができま
す。
インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジ
スタで構成されています。
■ インプットキャプチャの概要
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
• 外部入力の有効エッジを 3 種類から選択可能です。
- 立上りエッジ
- 立下りエッジ
- 両エッジ
• 外部入力有効エッジを検出したときに割込みを発生することができます。
■ インプットキャプチャのブロックダイヤグラム
図 16.1-1 インプットキャプチャのブロックダイヤグラム
16ビットタイマカウント値(T15~T00)
R-bus
IN0
入力端子
エッジ
検出
キャプチャデータレジスタ
ch.0
EG11
EG10
EG01
EG00
16ビットタイマカウント値(T15~T00)
キャプチャデータレジスタ
ch.1
ICP1
IN1
入力端子
エッジ
検出
ICP0
ICE1
ICE0
割込み
割込み
494
第 16 章 インプットキャプチャ
16.2
インプットキャプチャのレジスタ
インプットキャプチャには下記のレジスタがあります。
• インプットキャプチャレジスタ (IPCP0, IPCP1)
• インプットキャプチャコントロールレジスタ (ICS01)
これらのレジスタの詳細を説明します。
■ インプットキャプチャのレジスタ一覧
IPCP ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CP15
R
CP14
R
CP13
R
CP12
R
CP11
R
CP10
R
CP09
R
CP08
R
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CP07
R
CP06
R
CP05
R
CP04
R
CP03
R
CP02
R
CP01
R
CP00
R
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
IPCP ( 下位バイト )
ICS
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
495
第 16 章 インプットキャプチャ
16.2.1
インプットキャプチャレジスタ (IPCP)
インプットキャプチャレジスタ (IPCP) は , 対応した外部端子から入力される波形の
有効エッジを検出したとき , 16 ビットフリーランタイマ値を保持するレジスタです。
■ インプットキャプチャレジスタ (IPCP) のビット構成
IPCP ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
XXXXXXXXB
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
XXXXXXXXB
R
R
R
R
R
R
R
R
IPCP ( 下位バイト )
R
X
:リードオンリ
:不定
本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したとき , 16
ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。
このレジスタは 16 ビットデータまたは , 32 ビットデータでアクセスしてください。書
込みはできません。
496
第 16 章 インプットキャプチャ
16.2.2
インプットキャプチャコントロールレジスタ (ICS)
インプットキャプチャコントロールレジスタ (ICS) は , インプットキャプチャの割込
みやエッジ検出を制御するために使用されます。
■ インプットキャプチャコントロールレジスタ (ICS) のビット構成
ICS
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ICP1
R/W
ICP0
R/W
ICE1
R/W
ICE0
R/W
EG11
R/W
EG10
R/W
EG01
R/W
EG00
R/W
00000000B
R/W :リード / ライト可能
[bit7, bit6] ICP1, ICP0:割込みフラグ
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE1, ICE0) がセットされてい
ると , 有効エッジを検出することにより割込みを発生することができます。本ビッ
トは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモ
ディファイライト系の命令では "1" が読めます。
ICP0/ICP1
割込みフラグ
0
有効エッジ検出なし [ 初期値 ]
1
有効エッジ検出あり
[bit5, bit4] ICE1, ICE0:割込み許可ビット
インプットキャプチャ割込み許可ビットです。本ビットが "1" の時 , 割込みフラグ
(ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生します。
ICE0/ICE1
割込み許可
0
割込み禁止 [ 初期値 ]
1
割込み許可
497
第 16 章 インプットキャプチャ
[bit3 ∼ bit0] EG11, EG10, EG01, EG00:エッジ選択ビット
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作も兼
用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 ) [ 初期値 ]
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出 ↑ & ↓
エッジ極性検出
EGn1/EGn0: n の番号がインプットキャプチャのチャネル番号に対応します。
498
第 16 章 インプットキャプチャ
16.3
インプットキャプチャの動作
16 ビットインプットキャプチャは , 設定された有効エッジを検出すると , 16 ビット
フリーランタイマの値をキャプチャレジスタに取り込んで割込みを発生させること
ができます。
■ 16 ビットインプットキャプチャの動作
図 16.3-1 インプットキャプチャの取り込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
IN0
IN1
IN2
データレジスタ0
不定
3FFFH
データレジスタ1
データレジスタ2
BFFFH
不定
BFFFH
不定
7FFFH
キャプチャ0割込み
キャプチャ1割込み
キャプチャ2割込み
再度有効エッジにより割込み発生
キャプチャ0:立上りエッジ
キャプチャ1:立下りエッジ
キャプチャ2:両エッジ
ソフトウェアにより割込みクリア
■ 16 ビットインプットキャプチャの入力タイミング
カウンタ値
インプットキャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ値
N+1
割込み
499
第 16 章 インプットキャプチャ
500
第 17 章
アウトプットコンペア
アウトプットコンペアの機能と動作について説明
します。
17.1 アウトプットコンペアの概要
17.2 アウトプットコンペアのレジスタ
17.3 アウトプットコンペアの動作
501
第 17 章 アウトプットコンペア
アウトプットコンペアの概要
17.1
アウトプットコンペアモジュールは , ビットコンペアレジスタ , コンペア出力ラッチ ,
および制御レジスタで構成されています。
■ アウトプットコンペアの特長
• コンペアレジスタは独立に使用できます。
出力ピンと割込みフラグはコンペアレジスタに対応しています。
• 出力ピンはコンペアレジスタの対に基づいて制御できます。
出力ピンはコンペアレジスタを使用して反転させることができます。
• 出力ピンの初期値を設定できます。
• コンペア ( 比較 ) が一致したとき割込みを発生させることができます。
■ アウトプットコンペアのブロックダイヤグラム
図 17.1-1 アウトプットコンペアのブロックダイヤグラム
OTD1
OTD0
R-bus
コンペア
レジスタ
コンペア回路
コンペア
レジスタ
CMOD
コンペア
出力用ラッチ
PORT0
出力
コンペア
出力用ラッチ
PORT1
出力
コンペア回路
CST1
CST0
ICP1
16ビットフリーランタイマ
ICP0
ICE1
ICE0
割込み出力
割込み出力
502
第 17 章 アウトプットコンペア
17.2
アウトプットコンペアのレジスタ
アウトプットコンペアには , コンペアレジスタとコントロールレジスタがあります。
■ アウトプットコンペアのレジスタ
OCCP ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
C15
C14
C13
C12
C11
C10
C09
C08
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
C07
R/W
C06
R/W
C05
R/W
C04
R/W
C03
R/W
C02
R/W
C01
R/W
C00
R/W
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
−
−
−
CMOD
R/W
−
−
−
−
OTD1
R/W
OTD0
R/W
11101100B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ICP1
ICP0
ICE1
ICE0
−
−
CST1
CST0
00001100B
R/W
R/W
R/W
R/W
−
R/W
R/W
OCCP ( 下位バイト )
OCS ( 上位バイト )
OCS ( 下位バイト )
−
R/W :リード / ライト可能
X
:不定
503
第 17 章 アウトプットコンペア
17.2.1
コンペアレジスタ (OCCP)
コンペアレジスタ (OCCP) の詳細を説明します。
■ コンペアレジスタ (OCCP) のビット構成
OCCP ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
C15
R/W
C14
R/W
C13
R/W
C12
R/W
C11
R/W
C10
R/W
C09
R/W
C08
R/W
XXXXXXXXB
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
OCCP ( 下位バイト )
bit7
C07
C06
C05
C04
C03
C02
C01
C00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
X
:不定
■ コンペアレジスタ (OCCP) の機能
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス
タは , 初期値不定ですのでコンペア値を設定してから起動を許可してください。
本レジスタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16
ビットフリーランタイマ値が一致した場合 , コンペア信号が発生してアウトプットコ
ンペア割込みフラグをセットします。
また , ポートファンクションレジスタ (PFR) の対応するビットをセットし出力許可して
いる場合は , コンペアレジスタに対応した出力レベルを反転します。
504
第 17 章 アウトプットコンペア
17.2.2
コントロールレジスタ (OCS)
コントロールレジスタ (OCS) の詳細を説明します。
■ コントロールレジスタのビット構成
OCS ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
11101100B
−
−
−
CMOD
−
−
OTD1
OTD0
−
−
−
R/W
−
−
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ICP1
ICP0
ICE1
ICE0
−
−
CST1
CST0
00001100B
R/W
R/W
R/W
R/W
−
−
R/W
R/W
OCS ( 下位バイト )
R/W :リード / ライト可能
[bit15 ∼ bit13] Reserved:予約ビット
予約ビットです。読出しでは必ず "111B" が読み出されます。
[bit12] CMOD:モードビット
出力端子を許可した場合のコンペア一致における端子出力レベル反転動作を指定
します。
• CMOD=0 ( 初期値 ) の時 , コンペアレジスタに対応した端子の出力レベルを反転
します。
- OC0: コンペアレジスタ 0 の一致によりレベルを反転します。
- OC1: コンペアレジスタ 1 の一致によりレベルを反転します。
• CMOD=1 の時
- OC0: コンペアレジスタ 0 の一致によりレベルを反転します。
- OC1: コンペアレジスタ 0 と 1 の一致によりレベルを反転します。
[bit11, bit10] Reserved:予約ビット
予約ビットです。読出しでは必ず "11B" が読み出されます。
[bit9, bit8] OTD1, OTD0:コンペア端子出力レベル変更ビット
アウトプットコンペアレジスタの出力端子を許可した場合の端子出力レベルを指定
します。指定はコンペア動作を停止してから行ってください。読出し動作では , ア
ウトプットコンペア端子出力が読み出されます。
OTD1, OTD0
コンペア端子出力レベル
0
コンペア端子出力を "0" にします。[ 初期値 ]
1
コンペア端子出力を "1" にします。
505
第 17 章 アウトプットコンペア
[bit7, bit6] ICP1, ICP0:割込みフラグ
アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー
ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1,
ICE0) が許可されているときに本ビットが "1" にセットされると , アウトプットコン
ペア割込みが発生します。本ビットは "0" 書込みによりクリアされ , "1" 書込みは意
味を持ちません。リードモディファイライト系の命令では "1" が読み出されます。
ICP1, ICP0
割込みフラグ
0
アウトプットコンペア一致なし [ 初期値 ]
1
アウトプットコンペア一致あり
フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次
のクロックで発生します。そのため , コンペア一致出力および割込みを発生させる
ためには , フリーランタイマの外部クロックに , コンペア一致後 , 最低 1 クロックを
入力する必要があります。
[bit5, bit4] ICE1, ICE0:割込み許可ビット
アウトプットコンペアの割込みを許可するビットです。本ビットが "1" の時 , 割込
みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発生
します。
ICE1, ICE0
割込み許可
0
アウトプットコンペア割込み禁止 [ 初期値 ]
1
アウトプットコンペア割込み許可
[bit3, bit2] Reserved:予約ビット
予約ビットです。読出しでは必ず "11B" が読み出されます。
[bit1, bit0] CST1, CST0:一致動作許可ビット
16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許
可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値
を設定してください。
CST1, CST0
一致動作許可
0
コンペア動作禁止 [ 初期値 ]
1
コンペア動作許可
アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16
ビットフリーランタイマを停止させるとコンペア動作も停止します。
506
第 17 章 アウトプットコンペア
17.3
アウトプットコンペアの動作
16 ビットアウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフ
リーランタイマ値との値を比較し , 一致すれば割込みフラグをセットするとともに ,
出力レベルを反転することができます。
■ 16 ビットアウトプットコンペアの動作
• 1 チャネル独立でコンペア動作を行うことができます (CMOD=0 のとき )。
図 17.3-1 コンペアレジスタ 0, 1 を使用した場合の出力波形例 ( 出力の初期値は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
OP0出力
OP1出力
コンペア0割込み
コンペア1割込み
507
第 17 章 アウトプットコンペア
• 2 組のコンペアレジスタを使い出力レベルを変えることができます (CMOD=1 の時 )。
図 17.3-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
OP0出力
OP1出力
コンペア0割込み
コンペア1割込み
508
第 17 章 アウトプットコンペア
■ 16 ビットアウトプットコンペアの動作タイミング
2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD=1 のとき )。
アウトプットコンペアは , フリーランタイマと , 設定したコンペアレジスタの値が一致
したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する
ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ
ミングに同期して行われます。
● コンペアレジスタライトタイミング
コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。
N
カウンタ値
N+1
N+2
N+3
一致信号は発生しない
N+1
N
コンペアクリアレジスタ0値
コンペアレジスタ0ライト
L
コンペアクリアレジスタ1値
N+3
コンペアレジスタ1ライト
コンペア0停止
コンペア1停止
● コンペアマッチ , 割込みタイミング
カウントクロック
N
カウンタ値
コンペアレジスタ値
N+1
N+3
N+2
N
コンペアマッチ
端子出力
割込み
● 端子出力タイミング
カウンタ値
コンペアレジスタ値
N
N+1
N+1
N+1
N
コンペアマッチ
端子出力
509
第 17 章 アウトプットコンペア
510
第 18 章
PPG タイマ
PPG タイマについて説明します。
18.1 概要
18.2 ブロックダイヤグラム
18.3 PPG のレジスタ
18.4 動作説明
511
第 18 章 PPG タイマ
18.1
概要
PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制
御により , PPG 出力を行います。
ハードウェアとして , 8 ビットダウンカウンタ , 8 ビットリロードレジスタ , 制御レ
ジスタ , 外部パルス出力 , 割込み出力を有します。
■ PPG の機能
● 8 ビット PPG 出力独立動作モード
独立した PPG 出力動作が可能です。
● 16 ビット PPG 出力動作モード
16 ビットの PPG 出力動作が可能です。
● 8 + 8 ビット PPG 出力動作モード
チャネル (2n + 1) の出力をチャネル (2n) のクロック入力とすることにより , 任意周期
の 8 ビット PPG 出力動作が可能です。
● 16 + 16 ビット PPG 出力動作モード
チャネル (4n + 3) +チャネル (4n + 2) の 16 ビットプリスケーラ出力をチャネル
(4n + 1) +チャネル (4n) の 16 ビット PPG のクロック入力とするモードです。
● PPG 出力動作
任意周期・デューティ比のパルス波を出力します。
外付け回路により , D/A コンバータとしても使用可能です。
● 出力反転機能
PPG の出力値を反転させることが可能です。
512
第 18 章 PPG タイマ
18.2
ブロックダイヤグラム
PPG のブロックダイヤグラムを示します。
■ 8 ビット PPG ch.0, ch.2 のブロックダイヤグラム
ch.(n+1)のボロー
マシンクロックの64分周
ポートへ
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
PPG
出力ラッチ
反転
クリア
PEN(N+1)
カウントクロック
選択
S
R
PCNT(ダウンカウンタ)
Q
IRQn
リロード
H/Lセレクト
H/Lセレクタ
PIEn
PRLLn
PRLHn
PUFn
L側でデータバス
H側でデータバス
PPGCn TRG
n = 0.2
動作モード
(制御)
?
513
第 18 章 PPG タイマ
■ 8 ビット PPG ch.1 のブロックダイヤグラム
ch.(n+1)のボロー
マシンクロックの64分周
ポートへ
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
PPG
出力ラッチ
反転
クリア
PENn
S
カウントクロック
選択
R
Q
IRQn
PCNT(ダウンカウンタ)
リロード
ch(n-1)
のボロー
H/Lセレクト
H/Lセレクタ
PUFn
PRLLn
PIEn
PRLHn
L側でデータバス
H側でデータバス
n = 1
PPGCn TRG
動作モード
(制御)
514
第 18 章 PPG タイマ
■ 8 ビット PPG ch.3 のブロックダイヤグラム
ポートへ
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
PPG
出力ラッチ
反転
クリア
PENn
S
カウントクロック
選択
R
Q
PCNT(ダウンカウンタ)
ch.(n-1)
のボロー
リロード
H/Lセレクト
H/Lセレクタ
PUFn
PRLLn
PIEn
PRLHn
L側でデータバス
H側でデータバス
n = 3
PPGCn TRG
動作モード
(制御)
515
第 18 章 PPG タイマ
18.3
PPG のレジスタ
PPG のレジスタの詳細を説明します。
■ PPG のレジスタ一覧
PPGC
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PIE
R/W
PUF
R/W
INTM
R/W
PCS1
R/W
PCS0
R/W
MD1
R/W
MD0
R/W
−
−
0000000XB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
R/W
D14
R/W
D13
R/W
D12
R/W
D11
R/W
D10
R/W
D09
R/W
D08
R/W
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
PRLH
PRLL
D07
D06
D05
D04
D03
D02
D01
D00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
TRG1
PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
TRG0
PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
REVC1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00000000B
REVC0
REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
X
:不定
516
初期値
00000000B
第 18 章 PPG タイマ
18.3.1
PPG 動作モード制御レジスタ (PPGC)
PPG 動作モード制御レジスタ (PPGC) は , PPG の割込み , 動作クロック , 動作モー
ドを制御するレジスタです。
■ PPG 動作モード制御レジスタ (PPGC)
PPGC
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PIE
PUF
INTM
PCS1
PCS0
MD1
MD0
−
0000000XB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
−
R/W :リード / ライト可能
X
:不定
[bit7] PIE:PPG 割込み許可ビット
PPG の割込み許可を以下のように制御します。
PIE
PPG 割込み許可
0
割込み禁止 [ 初期値 ]
1
割込み許可
- 本ビットが "1" のとき , PUF が "1" になると割込み要求が発生します。
- 本ビットが "0" のときは , 割込み要求を発生しません。
- リセットにより , "0" に初期化されます。
- 読出しおよび書込みが可能です。
[bit6] PUF:PPG カウンタアンダフロービット
PPG カウンタアンダフロービットを以下のように制御します。
PUF
PPG カウンタアンダフロー
0
PPG のカウンタアンダフローを検出していません [ 初期値 ]
1
PPG のカウンタアンダフローを検出しました
- 8 ビット PPG 2 チャネルモードおよび 8 ビットプリスケーラ+ 8 ビット PPG モー
ド時には , ch.0 のカウント値が "00H" ∼ "FFH" へなったときのアンダフローによ
り "1" にセットされます。
- 16ビットPPG 1チャネルモード時には, ch.1/ch.0のカウント値が"0000H"∼"FFFFH"
へなったときのアンダフローにより "1" にセットされます。
- "0" 書込みにより , "0" になります。
- このビットへの "1" 書込みは意味がありません。
- リードモディファイライトへの読出し時は , "1" が読まれます。
- リセットにより , "0" に初期化されます。
- 読出しおよび書込みが可能です。
517
第 18 章 PPG タイマ
[bit5] INTM:割込みモードビット
PUF のビットの検出を PRLH からのアンダフロー時のみに限定することができます。
INTM
割込みモード
0
アンダフロー時 , PUF を "1" にする [ 初期値 ]
1
PRLH からのアンダフロー時のみ , PUF を "1" にする
- リセットにより , "0" に初期化されます。
- 読出しおよび書込みが可能です。
- 本ビットを "1" にすれば , PPG の波形の一周期出力時に割込みをかけることが可
能となります。
- 本ビットは , 割込み許可時に書き換えないでください
[bit4, bit3] PCS1, PCS0:カウントクロック選択ビット
ダウンカウンタの動作クロックを以下のように選択します。
PCS1
PCS0
0
0
マシンクロック [ 初期値 ]
0
1
マシンクロック /4
1
0
マシンクロック /16
1
1
マシンクロック /64
カウントクロック
- リセットにより , "00B" に初期化されます。
- 読出しおよび書込みが可能です。
[bit2, bit1] MD1, MD0:動作モード選択ビット
MD1
MD0
0
0
8 ビット PPG 2 チャネル [ 初期値 ]
0
1
8 ビットプリスケーラ+ 8 ビット PPG モード
1
0
16 ビット PPG モード
1
1
16 ビットプリスケーラ+ 16 ビット PPG モード
動作モード
- リセットにより , "00B" に初期化されます。
- 読出しおよび書込みが可能です。
- 本ビットは偶数チャネルのみに存在します。
[bit0] Reserved:予約ビット
予約ビットです。書込み時は "0" を書き込んでください。("1" 書込み禁止 )
読出し値は不定です。
518
第 18 章 PPG タイマ
リロードレジスタ (PRLL/PRLH)
18.3.2
リロードレジスタ (PRLL/PRLH) は , PPG のリロード値を保持するレジスタです。
■ リロードレジスタ (PRLL/PRLH)
PRLH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
R/W
D14
R/W
D13
R/W
D12
R/W
D11
R/W
D10
R/W
D09
R/W
D08
R/W
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D07
R/W
D06
R/W
D05
R/W
D04
R/W
D03
R/W
D02
R/W
D01
R/W
D00
R/W
XXXXXXXXB
PRLL
R/W :リード / ライト可能
X
:不定
リロードレジスタ (PRLL/PRLH) は , ダウンカウンタ PCNT へのリロード値を保持する
レジスタです。それぞれ , 以下に示す役割を持っています。
レジスタ名
機能
PRLL
"L" 側リロード値保持
PRLH
"H" 側リロード値保持
いずれのレジスタも , 読出しおよび書込みが可能です。
<注意事項>
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット
PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す
ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH
は , 同じ値に設定することを推奨します。
519
第 18 章 PPG タイマ
18.3.3
PPG 起動レジスタ (TRG)
PPG 起動レジスタ (TRG) は , PPG の動作許可を行うレジスタです。
■ PPG 起動レジスタ (TRG)
TRG1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
PEN15 PEN14 PEN13 PEN12 PEN11 PEN10 PEN09 PEN08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
TRG0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
[bit15 ∼ bit0] PEN15 ∼ PEN00:PPG 動作許可ビット
PPG の動作開始および動作モードを以下のように選択します。
PEN
動作状態
0
動作停止 ("L" レベル出力保持 ) [ 初期値 ]
1
PPG 動作許可
- リセットにより , "0" に初期化されます。
- 読出しおよび書込みが可能です。
- 16 ビット PPG で使用する場合は , 偶奇数両方の該当する PEN ビットを同じ設定
する必要があります。レジスタ設定時に偶奇数同時に許可 / 停止をしてください。
520
第 18 章 PPG タイマ
18.3.4
出力反転レジスタ (REVC)
出力反転レジスタ (REVC) は , PPG の出力値を反転させるレジスタです。
■ 出力反転レジスタ (REVC)
REVC1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
REV15 REV14 REV13 REV12 REV11 REV10 REV09 REV08
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
REVC0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
[bit7 ∼ bit0] REV07 ∼ REV00:出力反転ビット
PPG の出力値を初期レベルも含めて反転します。
REV
出力レベル
0
通常 [ 初期値 ]
1
反転
- リセットにより , "0" に初期化されます。
- 読出しおよび書込みが可能です。
- 単に PPG 出力を反転するだけですので , 初期レベルも反転します。
- リロードレジスタの "L", "H" の関係も逆になります。
- 16 ビット PPG で使う場合は , PPG(m) と PPG(m + 1) どちらの端子からも同じ波
形が出るので , 使用する端子の REVxx を設定すれば反転出力が得られます。また ,
両方の出力に同じ値を設定することもできます。
521
第 18 章 PPG タイマ
18.4
動作説明
PPG には , 8 ビット長の PPG ユニットがあり , 連結動作させることにより , 独立
モード以外に , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット PPG 1
チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動作
を行うことができます。
■ PPG の動作
8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが L 側と H 側
の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウンカ
ウンタ (PCNT) に L 側 /H 側交互にリロードされてカウントクロックごとにダウンカウ
ントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値を反転させ
ます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した L 幅 /H 幅を
持つパルス出力となります。
動作開始 / 再スタートは , レジスタのビット書込みによります。
リロード動作とパルス出力の関係を以下に示します。
リロード動作
端子出力変化
PRLH → PCNT
PPGn [0 → 1]
PRLL → PCNT
PPGn [1 → 0]
n:PPG チャネル番号
また , PPGC レジスタの bit7:PIE が "1" のとき , カウンタの "00H" ∼ "FFH" へのボロー
(16 ビット PPG モードの場合には , "0000H" ∼ "FFFFH" へのボロー ) によって割込み要
求が出力されます。
■ 動作モード
本ブロックは , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット
PPG 1 チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の動
作モードがあります。
• 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPGn 端子は ,
ch.n の PPG 出力が接続されます。
• 8 ビットプリスケーラ+ 8 ビット PPG モードは , 1 チャネルを 8 ビットプリスケー
ラとして動作させ , そのボロー出力でカウントすることにより , 任意周期の 8 ビッ
ト PPG 波形を出力できるようにする動作モードです。例えば , PPG1 端子は , ch.1 の
プリスケーラ出力が接続され , PPG0 端子は , ch.0 の PPG 出力が接続されます。
• 16 ビット PPG 1 チャネルモードは , 2 つのチャネルを連結させ , 16 ビット PPG とし
て動作させる動作モードです。例えば , ch.0 と ch.1 を連結させると , PPG0 端子と
PPG1 端子のいずれにも 16 ビット PPG 出力が接続されます。
522
第 18 章 PPG タイマ
■ PPG 出力動作
TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットすることに
よって PPG はカウントを開始します。動作を開始した後は , TRG レジスタの各チャネ
ルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 , パルス出
力は "L" レベルを保持します。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態
に設定しないでください。
16 ビット PPG モード時には , 各チャネルの TRG レジスタの PEN をそれぞれ , 同時に
開始 / 停止の制御を行ってください。
以下に PPG 出力動作について説明します。
PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ
ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する
と , 動作停止を設定するまで停止しません。
PENn
PENnにより
動作開始
(L側から)
出力端子
PPG
T×(L+1)
T×(H+1)
スタート
n=0~3
PPG出力動作
出力波形
■ リロード値とパルス幅の関係
リロードレジスタに書かれた値に " + 1" した値に , カウントクロックの周期を掛けた
値が , 出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジス
タ値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" の
ときは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくだ
さい。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントク
ロック 256 周期分のパルス幅を持つことになり , 16 ビット PPG 動作時のリロードレジ
スタ値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことに
なりますので注意してください。
パルス幅の計算式を以下に示します。
L :PRLL の値
Pl = Tx(L + 1)
H :PRLH の値
Ph = Tx(H + 1)
T :入力クロック周期
Ph:ハイパルス幅
Pl :ローパルス幅
523
第 18 章 PPG タイマ
■ カウントクロックの選択
本ブロックの動作に使用するカウントクロックは , 周辺クロックを使用しており , 4 種
類のカウントクロック入力が選択できます。
カウントクロックは以下のように動作します。
PPGC レジスタ
カウントクロック動作
PCS1
PCS0
0
0
周辺クロックごとに 1 カウント
0
1
周辺クロック 4 サイクルごとに 1 カウント
1
0
周辺クロック 16 サイクルごとに 1 カウント
1
1
周辺クロック 64 サイクルごとに 1 カウント
ただし , 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビット PPG モード , 16
ビットプリスケーラ+ 16 ビット PPG モード時には , 先頭の PPG 以外の PPG の PPGC
レジスタ中の bit4, bit3:PCS1, PCS0 の値は無効になります。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードで , プリスケーラ側が動作状態で , PPG 側が停止状態であるときに , PPG
側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ
さい。
■ パルスの端子出力の制御
本モジュールの動作によって生成されたパルス出力は , 外部端子 PPGn より出力させる
ことができます。
16 ビット PPG モードでは , PPG(m) と PPG(m + 1) は同じ波形が出力されるので , どち
らの外部端子出力を許可しても同じ出力を得ることができます。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードでは , プリスケーラ側は 8 ビットプリスケーラのトグル波形が出力され ,
PPG 側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を以
下に示します。
Ph
Pl
PPG1
PPG0
Ph
524
Pl0
第 18 章 PPG タイマ
■ 割込み
本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア
クティブになります。ただし , INTM ビットを "1" にしたときは , PRLH からのアンダ
フロー時 ( ボロー ) のみアクティブになります。つまり , "H" 幅パルス終了時に割込み
が発生します。
8 ビット PPG モードおよび 8 ビットプリスケーラ+ 8 ビット PPG モードのときには ,
それぞれのカウンタのボローにより, それぞれの割込み要求が行われますが, 16ビット
PPG モードおよび 16 ビットプリスケーラ+ 16 ビット PPG モードでは , 16 ビットカウ
ンタのボローにより , PUF(m) と PUF(m + 1) が同時にセットされます。このため , 割
込み要因を一本化するために , PIE(m) または PIE(m + 1) のどちらか一方のみを許可に
することを推奨します。また , 割込み要因のクリアも PUF(m) と PUF(m + 1) を同時に
行うことを推奨します。
■ 各ハードウェアの初期値
本ブロックの各ハードウェアは , リセット時に以下のように初期化されます。
<レジスタ>
PPGC
→ 0000000xB
<パルス出力>
PPG
→ "L"
<割込み要求>
IRQ
→ "L"
上記以外のハードウェアは , 初期化されません。
■ PPG の組合せ
ch.0:PPGC
ch.2:PPGC
MD1
MD0
MD1
MD0
0
0
0
0
0
0
ch.0
ch.1
ch.2
ch.3
0
8 ビット PPG
8 ビット PPG
8 ビット PPG
8 ビット PPG
0
1
8 ビット PPG
8 ビット PPG
8 ビット PPG
8 ビット
プリスケーラ
0
1
0
8 ビット PPG
8 ビット PPG
0
0
1
1
0
1
0
0
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
8 ビット PPG
0
1
0
1
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
8 ビット
プリスケーラ
0
1
1
0
8 ビット PPG
0
1
1
1
1
0
0
0
16 ビット PPG
8 ビット PPG
8 ビット PPG
1
0
0
1
16 ビット PPG
8 ビット PPG
8 ビット
プリスケーラ
1
0
1
0
16 ビット PPG
1
0
1
1
1
1
0
0
1
1
0
1
1
1
1
0
1
1
1
1
16 ビット PPG
設定禁止
8 ビット
プリスケーラ
設定禁止
16 ビット PPG
16 ビット PPG
設定禁止
16 ビット PPG
16 ビットプリスケーラ
525
第 18 章 PPG タイマ
■ デューティ変更
PPG の出力動作をさせながら , デューティ設定を変更する場合は , 変更した次のサイク
ルからデューティが変わるので , 注意が必要です。
1. PPG タイマの動作概要
8/16 ビット PPG タイマは , L 幅設定レジスタ (PRLL) と H 幅設定レジスタ (PRLH) に設
定された値をダウンカウンタのアンダフローごとに交互にダウンカウンタにリロード
します。
8ビットまたは16ビット
ダウンカウンタ
PPGn
PPG出力ラッチ
アンダフロー
H/Lセレクタ
PUF
割込み
PIE
PRLHn
PRLLn
バス
PPG タイマのタイマ機能は , 以下の機能があります。
- PWM タイマモード時:周期 =L 幅設定レジスタ+ H 幅設定レジスタ
- リロードタイマモード時:設定時間= L 幅設定レジスタ= H 幅設定レジスタ
2. PWM タイマモードを行う場合の注意点について
PPG タイマを使用して PWM 制御を行う場合 , カウンタのアンダフローごとに割込みを
発生することができますので , この割込みごとに更新対象に相当する L 幅設定レジス
タ /H 幅設定レジスタの値を更新することでデューティ制御が可能になります。
ただし , L 幅 /H 幅に設定された時間が短いと , 割込みから次の割込みまでの時間が短
く , 割込み処理内でレジスタ更新している間に次の割込みが発生し , 割込みフラグクリ
アのタイミングで割込みが無視される現象が発生します。よって , この割込み無視が発
生しない時間設定を行うか , 割込み無視が発生してもこれを配慮したソフト処理を行
う必要があります。
下記に更新タイミングと出力タイミングを示します。
割込み無視が発生
"H1"
"L1"
"L2"
"H2"
"L3"
" H3"
L4
H4更新
"L4" "H4"
"L5"
PPG
L2更新
起動
H2更新
割込み
L3/H3更新
割込み
割込み
L5
割込み
注意:L幅/H幅設定時間が短いと割込み無視が発生します。
更新タイミングとしてソフト的に考慮が必要です。
案1)必ず,割込み無視が発生しない設定時間を行う。
案2)割込み抜けが発生しても対処できるプログラムにする。
526
H5/L6更新
割込み
第 18 章 PPG タイマ
3. 割込み処理時間について
2 項に示した割込み処理に必要な処理時間を下記に示します。
なお , 時間については , 最短時間での必要なサイクル数で記述していますので , 下記時
間に十分余裕のある設定時間を検討いただけますようお願い致します。
① 割込み処理を起動するまでの時間
- 約 6 サイクル
② 割込み関数入り口での処理
STM(R0-R7)
STM(R8-R15)
ST MDH,@-R15
ST MDL,@-R15
ST RP,@-R15
ENTER
; 最大 9 サイクル
; 最大 9 サイクル
; 1 サイクル
; 1 サイクル
; 1 サイクル
; 2 サイクル
③ フラグクリアとリロードレジスタへの設定
LDI:20 #PPGCn,R0
BANDH #B,@R0
LDI:20 #0x0XXXX,R0
LDI:20 #PRLn,R12
STH R0,@R12
; 2 サイクル
; 3 サイクル
; 2 サイクル
; 2 サイクル
; 1 サイクル
割込み処理内での
プログラムです。
実際のプログラム内容の
サイクル計算が必要です。
計 65 サイクル+ α
( 割込み実行時の命令 )
④ 割込み関数出口での処理
LEAVE
LD @R15 + ,RP
LD @R15 + ,MDL
LD @R15 + ,MDH
LDM1(R8-R15)
LDM0(R0-R7)
RETI
; 1 サイクル
; 1 サイクル
; 1 サイクル
; 1 サイクル
; 9 サイクル
; 9 サイクル
; 9 サイクル
この時間には , 多重割込みによる処理が考慮されておりません。よって , 多重割込みを
使用されている場合は , PPG タイマの割込みより優先順位が高い割込み処理時間をプ
ラスする必要があります。
この時間を考慮した場合のデューティ比の例を示します。
条件 ) 周期:5000 サイクル , 多重割込みなし , 設定時間最小 =250 サイクル
PPG
4750サイクル
250
250
4750サイクル
デューティ比=4750:250~250:4750=5%~95%
周期が長いとデューティ比を広くできますが , 周期が短いとデューティ比も狭くなり
ます。
527
第 18 章 PPG タイマ
4. 割込み無視を考慮する処理方法について
Main
PPG割込み
Flag= 1
Flag判定
Flag= 0
"L"幅設定レジスタ更新
"H"幅設定レジスタ更新
割込みフラグクリア
PPGx= 0
割込みフラグクリア
PPGx= 1
端子判定
PPGx= 1
Flag反転処理
"H"幅設定レジスタ更新
RETI
1)PPGタイマ割込みが発生
2)"L"幅/"H"幅判定Flagをチェック
3)Flag=0なら"L"幅設定レジスタ更新/Flag=1なら"H"幅設定レジスタ更新
4)割込みフラグクリア
5)割込みフラグクリア後PPG出力端子状態判定
6)PPG端子状態が正ならFlag反転処理,負なら各設定レジスタを更新
7)RETIでメイン復帰
528
端子判定
PPGx= 0
"L"幅設定レジスタ更新
割込み無視対策プログラム
第 19 章
アップダウンカウンタ
8 ビット /16 ビットアップダウンカウンタの機能と
動作について説明します。
19.1 アップダウンカウンタの概要
19.2 アップダウンカウンタのレジスタ
19.3 アップダウンカウンタの動作
529
第 19 章 アップダウンカウンタ
19.1
アップダウンカウンタの概要
イベント入力端子 3 本 , 16 ビットアップ / ダウンカウンタ , 16 ビットリロード / コ
ンペアレジスタと , それらの制御回路から構成されるアップダウンカウンタ / タイマ
です。
設定により 8 ビットカウンタ× 2 チャネル , または 16 ビット× 1 チャネルのいずれ
かの動作モード切換えが可能です。
■ アップダウンカウンタの特長
• 16 ビットカウントレジスタにより , 0D ∼ 65535D の範囲でカウント可能
• カウントクロックの選択による 4 種のカウントモード
- タイマモード
- アップ / ダウンカウンタモード
- 位相差カウントモード (2 逓倍 )
- 位相差カウントモード (4 逓倍 )
• タイマモード時には , カウントクロックとして内部クロック 2 種類 , 内部回路から
の入力を選択可能
カウントクロック (32MHz 動作時 )
- 62.5ns (16MHz:2 分周 )
- 250ns (4MHz:8 分周 )
• アップ / ダウンカウントモード時には , 外部端子入力信号の検出エッジを選択可能
- 立下りエッジ検出
- 立上りエッジ検出
- 立上り / 立下りエッジ両エッジ検出
- エッジ検出禁止
• 位相差カウントモードは , モータなどのエンコーダのカウントに適し , エンコーダ
の A 相 , B 相 , Z 相出力をそれぞれ入力することで , 高精度で回転角度 , 回転数など
のカウントを容易に行うことが可能
• ZIN 端子は , 2 種の機能を選択可能 ( すべてのモードで有効 )
- カウンタクリア機能
- ゲート機能
530
第 19 章 アップダウンカウンタ
• コンペア機能およびリロード機能を有し , それぞれの機能のみで , また組み合わせ
ても使用可能で , 両機能を組み合わせて使用することで任意幅でのアップダウンカ
ウントを行うことが可能
- コンペア機能 ( コンペア時割込み要求出力 )
- コンペア機能 ( コンペア時割込み要求出力およびカウンタクリア )
- リロード機能 ( アンダフロー時割込み要求出力およびリロード )
- コンペア / リロード機能 ( コンペア時割込み要求出力およびカウンタクリア , ア
ンダフロー時割込み要求出力およびリロード )
- コンペア / リロード禁止
• カウント方向フラグにより , 直前のカウント方向を識別可能
• コンペア一致時 , リロード ( アンダフロー) 時またはオーバフロー時 , およびカウン
ト方向が変わった場合の割込みの発生を , それぞれ個別に制御可能
■ アップダウンカウンタのブロックダイヤグラム
図 19.1-1 アップダウンカウンタのブロックダイヤグラム
・8/16ビットアップダウンカウンタ/タイマ(ch.0)
データバス
CGE1
ZIN0
CGE0
CGSC
8bit
RCR0(リロード/
コンペアレジスタ0)
CTUT
リロード制御
UCRE
RLDE
M16E
Carry
エッジ/レベル検出
UDCC
CES1
CES0
CMS1
CMS0
カウンタ
クリア
8bit
UDCR0(アップ/
ダウンカウントレジスタ0)
CMPF
UDFF
AIN0
BIN0
ch.1へ
アップダウン
カウント
クロック
選択
カウント
クロック
CSTR
UDF1
OVFF
UDIE
UDF0
CDCF
ブリス
ケーラ
CITE
CLKS
CFIE
割込み出力
531
第 19 章 アップダウンカウンタ
・8/16ビットアップダウンカウンタ/タイマ(ch.1)
データバス
CGE1
ZIN1
CGE0
8bit
RCR1(リロード/
コンペアレジスタ1)
CGSC
CES1
CES0
CMS1
CMS0
Carry
BIN0
リロード制御
UCRE
RLDE
カウンタ
クリア
UDCC
AIN0
CTUT
エッジ/レベル検出
8bit
UDCR1(アップ/
ダウンカウントレジスタ1)
CMPF
M16E
カウント
アップダウン クロック
カウント
クロック
選択
UDFF
CSTR
UDIE
UDF1
UDF0
CDCF
プリス
ケーラ
CITE
CLKS
CFIE
割込み出力
532
OVFF
第 19 章 アップダウンカウンタ
19.2
アップダウンカウンタのレジスタ
アップダウンカウンタには , アップダウンカウントレジスタ (UDCR), リロードコン
ペアレジスタ (RCR), カウンタステータスレジスタ (CSR), カウンタコントロールレ
ジスタ (CCR) があります。
本節ではこれらのレジスタに関して説明します。
■ アップダウンカウンタのレジスタ一覧
UDCR1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
D14
D13
D12
D11
D10
D09
D08
00000000B
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D07
D06
D05
D04
D03
D02
D01
D00
00000000B
R
R
R
R
R
R
R
R
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
D14
D13
D12
D11
D10
D09
D08
00000000B
W
W
W
W
W
W
W
W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D07
W
D06
W
D05
W
D04
W
D03
W
D02
W
D01
W
D00
W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CSTR
R/W
CITE
R/W
UDIE
R/W
CMPF
R/W
OVFF
R/W
UDFF
R/W
UDF1
R
UDF0
R
00000000B
UDCR0
RCR1
RCR0
CSR
R/W :リード / ライト可能
R
:リードオンリ
W :ライトオンリ
( 続く )
533
第 19 章 アップダウンカウンタ
( 続き )
CCRH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
M16E
CDCF
CFIE
CLKS
CMS1
CMS0
CES1
CES0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
Res
R/W
CTUT
R/W
UCRE
R/W
RLDE
R/W
UDCC
R/W
CGSC
R/W
CGE1
R
CGE0
R
00000000B
CCRL
R/W :リード / ライト可能
R
:リードオンリ
534
第 19 章 アップダウンカウンタ
19.2.1
アップダウンカウントレジスタ (UDCR)
アップダウンカウントレジスタ (UDCR) は , 8 ビットカウントレジスタです。内部回
路からの入力 , 内部プリスケーラ , または AIN 端子 , BIN 端子の入力によってアップ /
ダウンカウントを行います。また , 16 ビットカウントモードでは , 16 ビットカウン
トレジスタとして動作します。
■ アップダウンカウントレジスタ (UDCR)
UDCR1
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000172H
D15
R
D14
R
D13
R
D12
R
D11
R
D10
R
D09
R
D08
R
00000000B
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000173H
D07
R
D06
R
D05
R
D04
R
D03
R
D02
R
D01
R
D00
R
00000000B
UDCR0
R
:リードオンリ
本レジスタは , 直接書込み動作を行うことができません。本レジスタに書込みを行う場
合は , RCR を介して行う必要があります。本レジスタに書き込みたい値をまず RCR に
書き込み , この後 CCRL レジスタの CTUT ビットに "1" を書き込むことで RCR から本
レジスタに転送されます ( ソフトウェアによるリロード ) 。
本レジスタは , 16 ビットモード起動時には 16 ビット一度に読み出してください。
535
第 19 章 アップダウンカウンタ
19.2.2
リロードコンペアレジスタ (RCR)
リロードコンペアレジスタ (RCR) は , 8 ビットリロード / コンペアレジスタです。本
レジスタにより , リロード値およびコンペア値を設定します。リロード値とコンペ
ア値は同一であり , リロード機能およびコンペア機能を起動することで 00H ∼本レ
ジスタ値の間 (16 ビット動作モード:0000H ∼本レジスタ値 ) でアップ / ダウンカウ
ントが可能になります。
■ リロードコンペアレジスタ (RCR)
RCR1
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000170H
D15
W
D14
W
D13
W
D12
W
D11
W
D10
W
D09
W
D08
W
00000000B
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000171H
D07
W
D06
W
D05
W
D04
W
D03
W
D02
W
D01
W
D00
W
00000000B
RCR0
W
:ライトオンリ
本レジスタは書込みのみ可能で , 読出しはできません。カウント停止中に CCR レジス
タの CTUT ビットに "1" を書き込むことで , 本レジスタの値を UDCR に転送すること
が可能です。
( ソフトウェアによるリロード )
16 ビットモード (M16E=1) の時は , 本レジスタに 16 ビットで一度に書き込んでくだ
さい。
536
第 19 章 アップダウンカウンタ
19.2.3
カウンタステータスレジスタ (CSR)
カウンタステータスレジスタ (CSR) により , アップダウンカウンタの状態の確認 ,
および割込みの制御を行うことができます。
■ カウンタステータスレジスタ (CSR) のビット構成
CSR
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000177H
CSTR
R/W
CITE
R/W
UDIE
R/W
CMPF
R/W
OVFF
R/W
UDFF
R/W
UDF1
R
UDF0
R
00000000B
00017BH
R/W :リード / ライト可能
R
:リードオンリ
[bit7] CSTR:カウント起動ビット
UDCR のカウント動作の起動 / 停止を制御するビットです。
CSTR
カウント起動
0
カウント動作停止 [ 初期値 ]
1
カウント動作起動
[bit6] CITE:コンペア割込み許可ビット
CMPF がセットされた ( コンペアが発生した ) 場合に , CPU への割込み出力を行う
かの許可 / 禁止を制御するビットです。
CITE
コンペア割込み許可
0
コンペア割込み禁止 [ 初期値 ]
1
コンペア割込み許可
[bit5] UDIE:オーバフロー / アンダフロー割込み許可ビット
OVFF/UDFF がセットされた ( オーバフロー/ アンダフローが発生した ) 場合に , CPU
への割込み出力を行うかの許可 / 禁止を制御するビットです。
UDIE
オーバフロー / アンダフロー割込み許可
0
オーバフロー / アンダフロー割込み禁止 [ 初期値 ]
1
オーバフロー / アンダフロー割込み許可
537
第 19 章 アップダウンカウンタ
[bit4] CMPF:コンペア検出フラグ
UDCR の値と RCR の値の比較結果が等しくなったことを示すフラグです。
"0" 書込みのみ可能で , "1" 書込みはできません。
CMPF
コンペア検出フラグ内容
0
比較結果が一致していない [ 初期値 ]
1
比較結果は一致
[bit3] OVFF:オーバフロー検出フラグ
オーバフローの発生を示すフラグです。
"0" 書込みのみ可能で , "1" 書込みはできません。
OVFF
オーバフロー検出フラグ内容
0
オーバフローなし [ 初期値 ]
1
オーバフローあり
[bit2] UDFF:アンダフロー検出フラグ
アンダフローの発生を示すフラグです。
"0" 書込みのみ可能で , "1" 書込みはできません。
UDFF
アンダフロー検出フラグ内容
0
アンダフローなし [ 初期値 ]
1
アンダフローあり
[bit1, bit0] UDF1, UDF0:アップダウンフラグ
直前のカウント動作 ( アップ / ダウン ) を示すビットです。
読出しのみ可能で , 書込みはできません。
538
UDF1
UDF0
0
0
入力なし [ 初期値 ]
0
1
ダウンカウント
1
0
アップカウント
1
1
アップ / ダウン同時発生
検出エッジ
第 19 章 アップダウンカウンタ
カウンタコントロールレジスタ (CCR)
19.2.4
カウンタコントロールレジスタ (CCR) は , アップダウンカウンタの動作モードを制
御するレジスタです。奇数チャネルと偶数チャネルでは bit15 (M16E) の機能が異な
ります。
■ カウンタコントロールレジスタ (CCR) のビット構成
CCRH
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
000174H
M16E
R/W
CDCF
R/W
CFIE
R/W
CLKS
R/W
CMS1
R/W
CMS0
R/W
CES1
R/W
CES0
R/W
00000000B
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000175H
Reserved
CTUT
UCRE
RLDE
UDCC
CGSC
CGE1
CGE0
00000000B
000179H
R/W
R/W
R/W
R/W
R/W
R/W
R
R
000178H
CCRL
R/W :リード / ライト可能
R
:リードオンリ
[bit15] M16E:16 ビットモード許可設定ビット
8 ビット× 2 チャネル /16 ビット× 1 チャネル動作モード選択 ( 切換え ) ビットです。
M16E
16 ビットモード許可設定
0
8 ビット× 2 チャネル動作モード [ 初期値 ]
1
16 ビット× 1 チャネル動作モード
<注意事項>
M16E ビットは偶数チャネルにのみ存在します。奇数チャネルでは必ず "0" を設定してく
ださい。
539
第 19 章 アップダウンカウンタ
[bit14] CDCF:カウント方向転換フラグ
カウント方向が変わった場合にセットされるフラグです。カウント起動中にカウン
ト方向がアップ→ダウン , またはダウン→アップに換わった場合に "1" にセットさ
れます。
"0" 書込みでクリアされます。
"1" 書込みは無視され , 本ビットの値は変化しません。
CDCF
方向転換検出
0
方向転換は行われていない [ 初期値 ]
1
方向転換が 1 回以上行われた
リセット直後のカウント方向はダウンカウント方向になっています。したがって ,
リセット直後のアップカウント時は CDCF に "1" がセットされます。
[bit13] CFIE:カウント方向転換割込み許可ビット
CDCF がセットされた場合の , CPU に対しての割込み出力を制御するビットです。
カウント起動中に一度でもカウント方向が変わった場合に割込みを発生します。
CFIE
方向転換割込み許可
0
方向転換割込み禁止 [ 初期値 ]
1
方向転換割込み許可
[bit12] CLKS:内蔵プリスケーラ選択ビット
タイマモード選択時に , 内蔵プリスケーラの周波数を選択するビットです。
タイマモードでのみ有効で , このときはダウンカウントのみとなります。
CLKS
内蔵プリスケーラ選択
0
2 マシンサイクル [ 初期値 ]
1
8 マシンサイクル
[bit11, bit10] CMS1, CMS0:カウントモード選択ビット
カウントモードを選択するビットです。
540
CMS1
CMS0
0
0
タイマモード ( ダウンカウント ) [ 初期値 ]
0
1
アップ / ダウンカウントモード
1
0
位相差カウントモード 2 逓倍
1
1
位相差カウントモード 4 逓倍
カウントモード
第 19 章 アップダウンカウンタ
[bit9, bit8] CES1, CES0:カウントクロックエッジ選択ビット
アップ / ダウンカウントモード時において , 内部回路の入力 , 外部端子 AIN および
BIN の検出エッジを選択するビットです。
アップ / ダウンカウントモード以外では , この設定は無効です。
CES1
CES0
0
0
エッジ検出禁止 [ 初期値 ]
0
1
立下りエッジ検出
1
0
立上りエッジ検出
1
1
立上り / 立下り両エッジ検出
選択エッジ
[bit7] Reserved:予約ビット
予約ビットです。必ず "0" を設定してください。
[bit6] CTUT:カウンタライトビット
RCR から UDCR へのデータ転送を行います。
このビットに "1" を書き込むと RCR から UDCR にデータが転送されます。
"0" 書込みは無効であり , 読出し値は常に "0" です。
カウント動作中 (CSR の CSTR ビットが "1" のとき ) に本ビットに "1" を書き込まな
いでください。
[bit5] UCRE:UDCR クリア許可ビット
コンペアによる UDCR のクリアを制御するビットです。
コンペア発生によるクリア以外の UDCR クリア機能 (ZIN 端子によるものなど ) に
は影響しません。
UCRE
コンペアによるカウンタのクリア
0
カウンタクリア禁止 [ 初期値 ]
1
カウンタクリア許可
[bit4] RLDE:リロード許可ビット
リロード機能の起動を制御するビットです。リロード機能起動時に UDCR がアンダ
フローを発生した場合に RCR の値を UDCR に転送します。
RLDE
リロード機能
0
リロード機能禁止 [ 初期値 ]
1
リロード機能許可
541
第 19 章 アップダウンカウンタ
[bit3] UDCC:UDCR クリアビット
UDCR をクリアするビットです。このビットに "0" を書き込むと UDCR が "0000H"
にクリアされます。
"1" 書込みは無効であり , 読出し値は常に "1" です。
[bit2] CGSC:カウンタクリア / ゲート選択ビット
外部端子 ZIN の機能を選択するビットです。
CGSC
ZIN 端子の機能
0
カウンタクリア機能 [ 初期値 ]
1
ゲート機能
[bit1, bit0] CGE1, CGE0:カウンタクリア / ゲートエッジ選択ビット
外部端子 ZIN の検出エッジ / レベルを選択するビットです。
542
CGE1
CGE0
0
0
エッジ検出禁止 [ 初期値 ]
レベル検出禁止 [ 初期値 ]
( カウントディセーブル )
0
1
立下りエッジ
"L" レベル
1
0
立上りエッジ
"H" レベル
1
1
設定禁止
設定禁止
カウンタクリア機能選択時
ゲート機能選択時
第 19 章 アップダウンカウンタ
19.3
アップダウンカウンタの動作
アップダウンカウンタの動作について説明します。
■ カウントモード選択
本タイマ / カウンタは , 4 種類のカウントモードを有します。これらのカウントモード
の選択は , CCR レジスタの CMS1, CMS0 ビットで制御します。
CMS1
CMS0
0
0
タイマモード ( ダウンカウント ) [ 初期値 ]
0
1
アップ / ダウンカウントモード
1
0
位相差カウントモード 2 逓倍
1
1
位相差カウントモード 4 逓倍
カウントモード
● タイマモード [ ダウンカウント ]
タイマモードでは , 内部プリスケーラの出力をダウンカウントします。内部プリスケー
ラについては , CCRH レジスタの CLKS ビットによって 2 マシンサイクル /8 マシンサ
イクルの選択が可能です。
● アップ / ダウンカウントモード
アップダウンカウントモードでは , 外部端子 AIN および BIN の入力をカウントするこ
とでアップダウンカウントを行います。AIN 端子の入力はアップカウントを , BIN 端子
の入力はダウンカウントをそれぞれ制御します。
AIN 端子 , BIN 端子の入力はエッジ検出され , CCRH レジスタの CES1, CES0 ビットに
よって検出エッジの選択が可能です。
CES1
CES0
0
0
エッジ検出禁止 [ 初期値 ]
0
1
立下りエッジ検出
1
0
立上りエッジ検出
1
1
立上り / 立下り両エッジ検出
選択エッジ
● 位相差カウントモード (2 逓倍 /4 逓倍 )
位相差カウントモードでは , エンコーダの出力信号 A 相 , B 相の位相差をカウントする
ため , AIN 端子の入力エッジ検出時に BIN 端子の入力レベルを検出し , カウントを行い
ます。
2 逓倍 /4 逓倍モードでは , AIN 端子入力と BIN 端子入力の位相差について , AIN の方
が早い場合にアップカウントを , BIN の方が早い場合にダウンカウントを行います。
2 逓倍モードでは , BIN 端子の立上り / 立下り両方のエッジのタイミングで AIN 端子の
値を検出することでカウントを行います。このとき次のように実行されます。
543
第 19 章 アップダウンカウンタ
BIN 端子のエッジ
AIN 端子のレベル
カウント
立上り ↑
"H" レベル
アップカウント
立上り ↑
"L" レベル
ダウンカウント
立下り ↓
"H" レベル
ダウンカウント
立下り ↓
"L" レベル
アップカウント
図 19.3-1 位相差カウントモード (2 逓倍 ) 動作概略
┌──┐
┌──┐
┌───────────┐
┌──┐
┌─
AIN端子
└──┘
─────┘
└──┘
└──┘
└──┘
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
↑
BIN端子
┌──┐
┌──┐
┌──┐
┌──┐
┌──┐
┌──┐
──────┘
└──┘
└──┘
└──┘
└──┘
└──┘
└
+1
+1
+1
-1
+1
-1
-1
-1 -1
-1
+1
+1
カウント値 0
1
2
3
4
5
4
5
4
3
2
1
0
4 逓倍モードでは , BIN 端子の立上り / 立下り両エッジのタイミングで AIN 端子の値を
検出し , また AIN 端子の立下り / 立上り両エッジのタイミングで BIN 端子の値を検出
することでカウントを行います。このとき , 以下のように実行されます。
エッジ入力
エッジ
レベル入力
レベル
カウント
"H" レベル
アップカウント
"L" レベル
ダウンカウント
立下り ↓
"H" レベル
ダウンカウント
立下り ↓
"L" レベル
アップカウント
立上り ↑
"H" レベル
ダウンカウント
"L" レベル
アップカウント
立下り ↓
"H" レベル
アップカウント
立下り ↓
"L" レベル
ダウンカウント
立上り ↑
立上り ↑
BIN
AIN
立上り ↑
AIN
BIN
図 19.3-2 位相差カウントモード (4 逓倍 ) 動作概略
AIN端子
BIN端子
カウント値 0
+1 +1 +1 +1 +1+1 + 1+1 +1+1
1 2 3 4 5 6 7 8 9 10
-1
9
+1
10
-1
9
-1 -1 -1 -1 -1 -1 -1 -1
8 7 6 5 4 3 2 1
エンコーダ出力のカウントの際には A 相を AIN 端子に , B 相を BIN 端子に , Z 相を ZIN
端子に入力することで , 高精度で回転角度や回転数のカウント , 回転方向の検出などが
可能です。
なお , このカウントモード選択時は , CES1, CES0 ビットによる検出エッジの選択は無
効です。
544
第 19 章 アップダウンカウンタ
■ リロード / コンペア機能
本カウンタでは , リロード機能およびコンペアによるクリア機能を有しています。この
2 つの機能は組み合わせて処理を行うことが可能です。以下に設定例を示します。
RLDE
UCRE
0
0
リロード / コンペアによるクリア禁止 [ 初期値 ]
0
1
コンペアによるクリア許可
1
0
リロード許可
1
1
リロード / コンペアによるクリア許可
リロード / コンペア機能
● リロード機能
リロード機能起動時には , アンダフロー発生の次のダウンカウントクロックのタイミ
ングで RCR の値を UDCR に転送します。この時 , UDFF ビットがセットされるととも
に割込み要求を発生します。
ダウンカウントを行わないモードでは , 本機能の起動は無効となります。
図 19.3-3 リロード機能動作概略
(0FFFFH)
FFH
リロード割込み発生 リロード割込み発生
RCR
00H
アンダフロー
アンダフロー
● コンペアによるクリア機能
コンペアによるクリア機能は , タイマモード以外のすべてのモードで使用可能です。コ
ンペア機能時は , RCR と UDCR の値が一致した場合に , CMPF ビットがセットされる
とともに割込み要求を発生します。また , コンペアクリア機能起動時は , その次のアッ
プカウントクロックのタイミングで UDCR をクリアします ( ダウンカウントではクリ
アされません ) 。
アップカウントを行わないモードでは , 本機能の起動は無効となります。
図 19.3-4 コンペア機能動作概略
(0FFFFH)
FFH
RCR
コンペア一致
コンペア一致
00H
カウンタクリア, カウンタクリア,
割込み発生
割込み発生
545
第 19 章 アップダウンカウンタ
■ リロード / コンペア機能同時起動
リロード / コンペア機能起動時は , 任意幅でのアップ / ダウンカウントが可能です。
リロード機能により , アンダフロー時に起動して RCR の値を UDCR に転送します。ま
た , コンペア機能により , RCR と UDCR の値が一致した場合に UDCR をクリアします。
この両機能を利用して , "0000H" ∼ RCR の間でアップ / ダウンカウントを行います。
図 19.3-5 リロード / コンペア機能同時起動時動作概略
FFH
RCR
コンペア一致
コンペア一致
リロード
リロード
リロード
コンペア一致
00H
カウンタクリア
アンダフロー
アンダフロー
カウンタクリア
カウンタクリア
アンダフロー
コンペア一致時またはリロード ( アンダフロー ) 時に CPU に割込みを発生することが
できます。また , これらの割込み出力のイネーブルは個別に制御可能です。
UDCR に対し , クリアを行う場合のタイミングについて , カウント起動中と停止中では
異なります。
カウント動作中のソフトウェアによるリロード (CTUT ビットへの "1" 書込み ) は禁止
です。
• カウント動作中にクリアのイベントが発生した場合は , すべてカウントクロックに
同期して行われます。
UDCR
クリアイベント
0065H
0066H
0000H
0001H
このクロックに同期する
カウントクロック
<参考>
カウント動作中のアンダフローによるリロードは , すべてカウントクロックに同期して行
われます。
546
第 19 章 アップダウンカウンタ
• カウント動作中にクリアのイベントが発生した場合で , カウントクロック同期待ち
(同期させるためのカウント入力を待っている状態) のままカウントを停止させた場
合は , 停止した時点でクリアが行われます。
UDCR
0065H
0066H
0000H
クリアイベント
カウントクロック
ディセーブル(カウント禁止)
カウントイネーブル
イネーブル(カウント許可)
• カウント中にリロードおよびクリアのイベントが発生した場合は , イベント発生時
点で処理が行われます。
UDCR
0065H
0080H
ロード/
クリアイベント
コンペアによるクリアについては , UDCR と RCR の値が一致し , さらにアップカウン
トが行われた時にクリアが行われます。UDCR と RCR の値が一致した場合においても ,
その後ダウンカウントやカウント停止になった場合はクリアは行われません。
クリア / ロードのタイミングについて , クリアはリセット入力以外のすべてのイベント
で , またリロードもすべてのイベントにおいて上記タイミングに従います。
クリアイベントとリロードイベントが同時に発生した場合はクリアイベントが優先と
なります。
■ UDCR へのデータの書込み
UDCR へデータバスから直接データを書き込むことはできません。UDCR に任意の値
を書き込む場合は , 以下のような手順で書き込む必要があります。
a. UDCR に書き込むデータを , まず RCR に書き込む (RCR のデータは失われるので注
意 )。
b. CCR の CTUT ビットに "1" を書き込むことにより , RCR から UDCR にデータが転送
される。
以上の動作は , カウント停止中 (CSR の CSTR ビットが "0" の時 ) に行ってください。
<参考>
誤ってカウント中に CTUT ビットに "1" を書き込むと , 書き込んだタイミングで RCR の
値が UDCR に転送されます。
カウンタのクリアについては , 上記以外の方法に以下の方法があります。
• リセット入力によるクリア
• ZIN 端子からのエッジ入力によるクリア
• CCR の UDCC ビットに "0" を書き込むことによるクリア
• コンペア機能によるクリア
これらの書込みは , カウント起動 / 停止にかかわらず行うことができます。
547
第 19 章 アップダウンカウンタ
■ カウントクリア / ゲート機能
ZIN 端子は CCR レジスタの CGSC ビットによって , カウントクリア機能またはゲート
機能を選択して使用可能です。
カウントクリア機能起動時は , ZIN 端子によりカウンタのクリアを行います。ZIN 端子
のどのエッジ入力でカウントを行うかを CCRL レジスタの CGE1, CGE0 ビットで制御
可能です。
ゲート機能起動時は, ZIN端子によりカウントのイネーブル/ディセーブルを行います。
ZIN 端子のどのレベル入力でイネーブルとするかを CCR レジスタの CGE1, CGE0 ビッ
トで制御可能です。
本機能はすべてのモードで有効です。
CGSC
ZIN 端子の機能
0
カウンタクリア機能 [ 初期値 ]
1
ゲート機能
CGE1
CGE0
0
0
エッジ検出禁止 [ 初期値 ]
レベル検出禁止 [ 初期値 ]
( カウントディセーブル )
0
1
立下りエッジ
"L" レベル
1
0
立上りエッジ
"H" レベル
1
1
設定禁止
設定禁止
カウンタクリア機能選択時
ゲート機能選択時
■ カウント方向フラグ
カウント方向フラグは (UDF1, UDF0) は , アップ / ダウンカウント時に , 直前のカウン
トがアップカウントであったかダウンカウントであったかを示します。AIN, BIN 両端
子の入力から生成されたカウントクロックから判断して , カウントのたびにフラグを
書き換えます。モータの制御などで , 現在の回転方向を知りたい場合はこのフラグを参
照することで判断することができます。
548
UDF1
UDF0
0
0
入力なし [ 初期値 ]
0
1
ダウンカウント
1
0
アップカウント
1
1
アップ / ダウン同時発生 ( カウントは行われない )
カウント方向
第 19 章 アップダウンカウンタ
■ カウント方向転換フラグ
カウント方向転換フラグ (CDCF) は , カウント方向がアップ / ダウンで変わった場合に
セットされます。また , このフラグがセットされると同時に CPU に対して割込み要求
を発生させることができます。この割込みとカウント方向フラグを参照することによ
り , カウント方向の変化の向きを判断することができます。
ただし , 方向転換の期間が短く , 連続して発生した場合などは , 方向転換後のフラグの
示す方向が元に戻り同一方向となる場合があるので注意が必要です。
CDCF
方向転換検出
0
方向転換は行われていない [ 初期値 ]
1
方向転換が 1 回以上行われた
■ コンペア検出フラグ
コンペア検出フラグ (CMPF) は , カウント動作中に UDCR の値と RCR の値が等しく
なった時にセットされます。カウントアップ / ダウン一致のほか , リロードイベント発
生による一致 , カウント起動時に既に一致している場合もセットされます。
■ 8 ビット× 2 チャネル /16 ビット× 1 チャネル動作
このモジュールは , 8 ビットアップダウンカウンタ× 2 チャネル , または 16 ビットアッ
プダウンカウンタ× 1 チャネルとして使用できます。CCR レジスタの M16E ビットに
"0" を書き込むことにより , 8 ビット× 2 チャネルモードとなり , "1" を書き込むことに
より , 16 ビット× 1 チャネルモードとなります。
16 ビット× 1 チャネルとして動作する場合 , CSR0, CCRL0, CCRH0 レジスタが有効と
なり , CSR1, CCRL1, CCRH1 レジスタは使用できません。また , 入力端子は AIN0, BIN0,
ZIN0 端子が有効となり , AIN1, BIN1, ZIN1 端子は使用されません。
549
第 19 章 アップダウンカウンタ
■ 割込み発生タイミング
割込みフラグ
フラグセット割込み
CDCF
( カウント方向
転換フラグ )
カウント方向が変
わったカウント時に ,
セットと同時に割込
み発生
CMPF
( コンペア検出
フラグ )
アップカウント /
ダウンカウント /
リロードカウント起
動時に , RCR と
UDCR が一致をする
と , フラグセットと
同時に割込み発生
リロード
RCR と UDCR の
一致を次のアップ
カウントタイミン
グで UDCR をク
リア ( ダウンカウ
ント時はクリアさ
れません )
カウント "FFFFH" の
OVFF
( オーバフロー
検出フラグ )
UDFF
( アンダフロー
検出フラグ )
クリア
カウント "FFFFH"
次のアップカウント
タイミングで , フラ
グセットと同時に割
込み発生
の次のカウントタ
イミングで UDCR
をクリア
カウント "0000H" の
カウント "0000H"
次のダウンカウント
タイミングで , フラ
グセットと同時に割
込み発生
の次のカウントタ
イミングで RCR
の値を UDCR に
転送
• 割込み発生時は , 割込みフラグがクリアされるまでカウントを停止します。
• RCR はリロード値とコンペア値を兼用しているため , リロードが実行されると , コ
ンペアフラグが必ずセットされます。
• クリア機能を有効にしたダウンカウント実行時 , コンペア一致が発生した後アップ
カウントが行われるとクリアが発生します。
■ 注意事項
カウントリセット直後のカウント方向はダウンカウント方向になっています。した
がって, リセット直後のアップカウントでは方向転換が行われたことを示すCDCRビッ
トに "1" がセットされます。
アップカウントレジスタ (UDCR) が FULL カウントになった場合 , キャリなしでカウン
トを続けます。見かけ上 , アップダウンカウントレジスタがクリアされカウントを続け
ることになります。
AIN, BIN, ZIN の最小パルス幅は , 2 × T (T:周辺系クロックマシンサイクル ) です。
550
第 20 章
クロックモニタ
クロックモニタの機能と動作について説明します。
20.1 クロックモニタの概要
20.2 クロック出力許可レジスタ
551
第 20 章 クロックモニタ
クロックモニタの概要
20.1
クロック出力許可レジスタの出力許可ビットを "1" に設定した場合に , クロックモ
ニタ端子 (CKOT) からクロックが出力されます。出力するクロックの周波数は , ク
ロック出力許可レジスタの出力周波数選択ビットで設定します。
■ クロックモニタの出力周波数
クロックモニタ機能で出力するクロックの周波数を表 20.1-1 に示します。
表 20.1-1 クロックモニタ機能の出力周波数
FRQ2 ∼ FRQ0
クロック
出力周波数
φ =32 MHz の場合
φ =16 MHz の場合
φ =8 MHz の場合
周期
周波数
周期
周波数
周期
周波数
000B
φ /21
62.5 ns
16 MHz
125 ns
8 MHz
250 ns
4 MHz
001B
φ /22
125 ns
8 MHz
250 ns
4 MHz
500 ns
2 MHz
010B
φ /23
250 ns
4 MHz
500 ns
2 MHz
1.0 µs
1 MHz
011B
φ /24
500 ns
2 MHz
1.0 µs
1 MHz
2.0 µs
500 kHz
100B
φ /25
1.0 µs
1 MHz
2.0 µs
500 kHz
4.0 µs
250 kHz
101B
φ /26
2.0 µs
500 kHz
4.0 µs
250 kHz
8.0 µs
125 kHz
110B
φ /27
4.0 µs
250 kHz
8.0 µs
125 kHz
16.0 µs
62.5 kHz
111B
φ /28
8.0 µs
125 kHz
16.0 µs
62.5 kHz
32.0 µs
31.3 kHz
φ : マシンクロック (CLKP) 周波数
■ クロックモニタのブロックダイヤグラム
内
部 デ
カウント
クロック
セレクタ
プリスケーラ
端子
ー
タ
バ ス
クロック出力許可
レジスタ(CMCLKR)
-
-:未定義ビット
552
出力許可
3
-
-
-
CKEN
FRQ2
FRQ1
FRQ0
CKOT
第 20 章 クロックモニタ
20.2
クロック出力許可レジスタ
クロック出力許可レジスタでは , クロック出力の設定を行います。
■ クロック出力許可レジスタのビット構成
CMCLKR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
CKEN
FRQ2
FRQ1
FRQ0
----0000B
−
R/W
R/W
R/W
R/W
−
−
−
R/W :リード / ライト可能
[bit7 ∼ bit4] Reserved:予約ビット
予約ビットです。読出しでは必ず "1111B" が読み出されます。
これらのビットへの書込みは無効です。
[bit3] CKEN: 出力許可ビット
クロックモニタ端子 (CKOT) の出力を許可します。
CKEN
クロック出力許可
0
クロック出力禁止 [ 初期値 ]
1
クロック出力許可
[bit2 ∼ bit0] FRQ2 ∼ FRQ0:出力周波数選択ビット
出力するクロックの周波数を設定します。
マシンクロック (CLKP) の分周比を 8 種類から選択して設定します。
FRQ2
FRQ1
FRQ0
0
0
0
2 分周
0
0
1
4 分周
0
1
0
8 分周
0
1
1
16 分周
1
0
0
32 分周
1
0
1
64 分周
1
1
0
128 分周
1
1
1
256 分周
分周比
[ 初期値 ]
553
第 20 章 クロックモニタ
554
第 21 章
リアルタイムクロック
リアルタイムクロック ( 以降 RTC) のレジスタ構成
とその機能 , RTC モジュールの動作について説明
します。
RTC には , タイマ制御レジスタ , サブセカンドレジ
スタ , 秒 / 分 / 時レジスタ , 1/2 分周器 , 21 ビット
プリスケーラ , 秒 / 分 / 時カウンタがあります。
RTC は実時間タイマとして動作し , 実時間情報を
与えます。
また RTC モジュールへ供給されるサブクロックの
補正ユニットに関しても説明します。
RTC モジュールへ供給するクロックとしてメイン
クロックを選択される場合は , メインクロック周波
数を 4 MHz としてください。
21.1 レジスタ構成
21.2 ブロックダイヤグラム
21.3 レジスタの詳細
21.4 クロック補正ユニット
21.5 クロック補正ユニットのレジスタ
21.6 クロック補正ユニットの使用について
555
第 21 章 リアルタイムクロック
21.1
レジスタ構成
リアルタイムクロックのレジスタ構成を示します。
■ リアルタイムクロックのレジスタ一覧
WTCRH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
INTE3
R/W
INT3
R/W
INTE2
R/W
INT2
R/W
INTE1
R/W
INT1
R/W
INTE0
R/W
INT0
R/W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
−
R/W
−
R/W
−
−
RUN
R/W
UPDT
R/W
−
−
ST
R/W
000-00-0B
bit23
bit22
bit21
bit20
bit19
bit18
bit17
bit16
初期値
−
−
−
D20
D19
D18
D17
D16
---XXXXXB
R/W
R/W
R/W
R/W
WTCRL
WTBR2
−
−
−
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
R/W
D14
R/W
D13
R/W
D12
R/W
D11
R/W
D10
R/W
D9
R/W
D8
R/W
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
H3
H2
H1
H0
---XXXXXB
WTBR1
WTBR0
WTHR
−
−
−
H4
−
−
−
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
M5
R/W
M4
R/W
M3
R/W
M2
R/W
M1
R/W
M0
R/W
--XXXXXXB
WTMR
−
−
R/W :リード / ライト可能
X
:不定
( 続く )
556
第 21 章 リアルタイムクロック
( 続き )
WTSR
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
S4
S3
S2
S1
S0
--XXXXXXB
−
−
S5
−
−
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DBL
------00B
R/W
WTDBL
−
−
−
−
−
−
WTCK
−
−
−
−
−
−
R/W
R/W :リード / ライト可能
X
:不定
557
第 21 章 リアルタイムクロック
21.2
ブロックダイヤグラム
リアルタイムクロックのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
発振
クロック
1/2クロック
分周器
21ビット
プリスケーラ
WOT
CO
EN
サブセカンド
レジスタ
UPDT
ST
秒カウンタ
CI
EN
LOAD
分カウンタ
CO
6ビット
INTE0
INT0
INTE1
時カウンタ
CO
6ビット
秒/分/レジスタ
INT1
INTE2
CO
5ビット
INT2
INTE3
INT3
IRQ
558
第 21 章 リアルタイムクロック
21.3
レジスタの詳細
リアルタイムクロックのレジスタ構成の詳細について説明します。
■ タイマ制御レジスタ (WTCR)
WTCRH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
INTE3
R/W
INT3
R/W
INTE2
R/W
INT2
R/W
INTE1
R/W
INT1
R/W
INTE0
R/W
INT0
R/W
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
−
R/W
−
R/W
−
−
RUN
R/W
UPDT
R/W
−
−
ST
R/W
000-00-0B
WTCRL
R/W :リード / ライト可能
[bit15 ∼ bit8] INT3 ∼ INT0, INTE3 ∼ INTE0:割込みフラグおよび割込み許可ビット
INT0 から INT3 までは , 割込みフラグです。このフラグは秒カウンタ , 分カウンタ ,
および時カウンタがそれぞれオーバフローした場合に設定されます。INT ビットの
設定を , 対応する INTE ビットが "1" の場合に行うと , 割込み信号を生成します。本
フラグは , 秒 / 分 / 時 / 日の単位で割込み信号を生成するように設計されています。
INT ビットに "0" を書き込むとフラグはクリアされ , "1" の書込みは無効です。INT
ビットで動作するリードモディファイライト系命令はすべて , "1" を読み出します。
割込み
要因
割込み許可ビット
割込みフラグ
秒割込み
プリスケーラオーバフロー
INTE0
INT0
分割込み
秒カウンタオーバフロー
INTE1
INT1
時割込み
分カウンタオーバフロー
INTE2
INT2
日割込み
時カウンタオーバフロー
INTE3
INT3
[bit7 ∼ bit5] Reserved:予約ビット
予約ビットです。
必ず , "000B" を設定してください。
[bit3] RUN:フラグ
本ビットは読出しのみ可能です。読出し値が "1" の場合 , RTC モジュールが動作中
であることを示しています。
[bit2] UPDT:更新ビット
UPDT ビットは , 秒 / 分 / 時カウンタ値の修正用です。
カウンタ値を修正するには , 秒 / 分 / 時レジスタに修正データを書き込みます。次に
UPDT ビットを "1" に設定します。レジスタ値は , 21 ビットプリスケーラからの CO
信号で ( 書き込んだ ) , 次のサイクルでカウンタにロードされます。UPDT ビットは ,
559
第 21 章 リアルタイムクロック
カウンタ値が更新されると , ハードウェアによりリセットされます。ただし , ソフト
ウェアによる設定動作とハードウェアによるリセット動作が同時に発生した場合 ,
UPDT ビットはリセットされません。
これは , ペリフェラルクロック (CLKP) が RTC クロック ( 発振クロック ) より高い周
波数の場合のみ発生します。
UPDT ビットへの "0" 書込みは無効です。リードモディファイライト系命令では , "0"
が読み出されます。
[bit0] ST:スタートビット
ST ビットを "1" に設定すると , ウォッチタイマはレジスタから 秒 / 分 / 時値をロー
ドし , 動作を開始します。"0" にリセットした場合 , カウンタおよびプリスケーラは
すべて "0" にリセットされ停止します。
本ビットは , カウンタ値の更新にも使用できます。ST ビットを "0" に設定し , RUN
ビットが "0" になるまで待ってからカウンタ値を更新し , ST ビットを "1" に設定し
ます。
560
第 21 章 リアルタイムクロック
■ サブセカンドレジスタ
WTBR2
bit23
bit22
bit21
bit20
bit19
bit18
−
−
−
D20
D19
D18
R/W
R/W
bit17
bit16
初期値
D17
D16
---XXXXXB
R/W
R/W
−
−
−
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D15
R/W
D14
R/W
D13
R/W
D12
R/W
D11
R/W
D10
R/W
D9
R/W
D8
R/W
XXXXXXXXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
WTBR1
WTBR0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
X
:不定
[bit20 ∼ bit0] D20 ∼ D0
サブセカンドレジスタは , 21 ビットプリスケーラのリロード値を格納します。この
値は , リロードカウンタが "0" になるとリロードされます。21 ビットプリスケーラ
は , 新旧のデータバイトを結合した値をロードしてしまう場合があるので , 3 バイト
すべてを修正する場合は , 書込み命令中にリロード動作が行われていないことを確
認してください。サブセカンドレジスタの更新は ST ビットが "0" の期間に実行す
るようにしてください。サブセカンドレジスタが "0" に設定されている期間は , 21
ビットプリスケーラの動作は停止します。
この 2 つのプリスケーラの組み合わせで , 正確に 1 秒のクロック信号を提供するこ
とができます。
以下にサブセカンドレジスタの設定値例を示します。
入力クロック周波数
WTBR 設定値 (10 進 )
WTBR 設定値 (16 進 )
4MHz
1999999
1E847F
100kHz
49999
00C34F
32kHz
15999
003E7F
<注意事項>
サブセカンドレジスタは21 ビットであるため, 1秒を生成できる周波数の上限は4.19MHz
となります。RTC モジュールへ供給するクロックとしてメインクロックを選択される場
合は , メインクロック周波数を 4MHz としてください。
561
第 21 章 リアルタイムクロック
■ 時 / 分 / 秒レジスタ
WTHR
bit15
bit14
bit13
bit12
bit11
bit10
−
−
−
H4
H3
H2
R/W
R/W
bit9
bit8
初期値
H1
H0
---XXXXXB
R/W
R/W
−
−
−
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
M5
R/W
M4
R/W
M3
R/W
M2
R/W
M1
R/W
M0
R/W
--XXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
−
S5
R/W
S4
R/W
S3
R/W
S2
R/W
S1
R/W
S0
R/W
--XXXXXXB
WTMR
WTSR
R/W :リード / ライト可能
X
:不定
時 / 分 / 秒レジスタは , 時間情報を格納します。時 / 分 / 秒の 2 進表記です。
本レジスタを読み出すと , カウンタ値のみを戻します。レジスタは書込み値と結合され ,
その書込みデータは , UPDT ビットを "1" に設定した後にカウンタにロードされます。
レジスタは 3 バイト存在するため , 出力値に矛盾がないことを確認してください。つま
り , 出力値「1 時間 , 59 分 , 59 秒」は「0 時間 , 59 分 , 59 秒」, または「2 時間 , 59 分 , 59
秒」である可能性があります。
カウンタのオーバフローが発生したときに読出しを行うと , 誤った値を読み出すこと
があります。このため , 読出しは RTC 割込みを使用するか , 以下の手順に従ってくだ
さい。
• RTC の割込みフラグ (INT) のクリア
• レジスタ読出し
• 読出し中にタイムオーバフローが発生し , フラグが読出し後に設定された場合は再
度読出しを行ってください。
562
第 21 章 リアルタイムクロック
■ クロック禁止レジスタ
WTDBL
bit7
bit6
bit5
bit4
bit3
bit2
bit1
−
−
−
−
−
−
−
−
−
−
−
−
bit0
初期値
WTCK
DBL
------00B
R/W
R/W
R/W :リード / ライト可能
[bit1] WTCK:クロック選択
本ビットにより , サブセカンドレジスタの入力クロックを選択することができま
す。初期値は "0" でメイン発振 がクロックソースとして選択されています。"1" を
設定するとサブ発振がクロックソースとして選択されます。
本ビットは読出しおよび書込み可能です。
<注意事項>
32kHz 発振がサポートされていない品種では , WTCK ビットは必ず "0" に設定してくださ
い。
メインクロック周波数が 4MHz より高速の場合は "1" を設定し , サブクロックを選択する
ようにしてください。
[bit0] DBL:クロック禁止
本ビットを "1" に設定すると , RTC モジュールのクロックは停止します。通常動作
時はこのビットを "0" に設定してください。本ビットは "0" に初期化されます。読出
し , および書込みが可能です。
563
第 21 章 リアルタイムクロック
21.4
クロック補正ユニット
クロック補正ユニットを使用することにより , メイン発振クロックを基準として ,
RTC モジュールへ供給されるサブ発振クロックを補正することができます。
■ クロック補正ユニット
クロック補正ユニットの使用により , サブ発振によって生成された信号をメイン発振
により , ソフトウェアでの測定が可能となります。
ソフトウェアによる処理とこのユニットの使用によって , サブ発振の精度をメイン発
振の精度並みに向上させることができます。クロック補正ユニットによる測定結果は
ソフトウェアにより処理でき , RTC モジュールに必要な設定を得ることができます。
このユニットにはサブクロックで動作するタイマとメインクロックで動作するタイマ
があり , サブタイマがメインタイマをトリガすることによってメインタイマの値がレジ
スタへ格納されます。レジスタに格納された値はソフトウェアで処理され , RTC モ
ジュールに必要な設定を算出することができます。
■ 測定処理タイミング
図 21.4-1 測定処理のタイミング
32 kHz
STRT(CLKP)
STRTS(32 kHz)
RUN(32 kHz)
RUWS(4 MHz)
32 kHzカウンタ
(16ビット)
CUTD
CUTD-1
2
1
4 MHzカウンタ
(24ビット) 旧CUTR
0
CUTD
新CUTR
READY(32 kHz)
READYPUSE(CLKP)
INT(CLKP)
■ クロック
クロック補正ユニットは , メインクロック OSC4, サブクロック OSC32, ペリフェラルク
ロック CLKP の 3 つのクロックにより動作します。それぞれのクロック領域は同期化
回路により同期されます。
これらのクロックは以下を満たすようにしてください。
• クロック比
TOSC32 > 2 × TOSC4 + 3 × TCLKP
TOSC4 < 1/2 × TOSC32 − 3/2 × TCLKP
TCLKP < 1/3 × TOSC32 − 2/3 × TOSC4
564
第 21 章 リアルタイムクロック
21.5
クロック補正ユニットのレジスタ
クロック補正ユニットのレジスタ一覧を示し , 各レジスタの機能を詳細に説明します。
■ クロック補正ユニットのレジスタ一覧
CUCR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R
−
R
−
R
STRT
R/W
−
R
−
R/W
INT
R/W
INTEN
R/W
00000000B
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
10000000B
CUTDH
TDD15 TDD14 TDD13 TDD12 TDD11 TDD10
TDD9
TDD8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TDD7
TDD6
TDD5
TDD4
TDD3
TDD2
TDD1
TDD0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00000000B
CUTDL
CUTR1H
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CUTR1L
TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16
R
R
R
R
R
R
R
R
初期値
00000000B
CUTR2H
bit15
bit14
bit13
bit12
bit11
bit10
TDR15 TDR14 TDR13 TDR12 TDR11 TDR10
bit9
bit8
初期値
TDR9
TDR8
00000000B
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TDR7
TDR6
TDR5
TDR4
TDR3
TDR2
TDR1
TDR0
00000000B
R
R
R
R
R
R
R
R
CUTR2L
R/W :リード / ライト可能
R
:リードオンリ
565
第 21 章 リアルタイムクロック
21.5.1
補正ユニット制御レジスタ (CUCR)
補正ユニット制御レジスタ (CUCR) には以下の機能があります。
• 補正測定の開始 / 停止
• 割込みの許可 / 禁止
• 補正測定終了表示
■ 補正ユニット制御レジスタ (CUCR)
CUCR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R
−
R
−
R
STRT
R/W
−
R
−
R/W
INT
R/W
INTEN
R/W
00000000B
R/W :リード / ライト可能
R
:リードオンリ
[bit7 ∼ bit5] Reserved:予約ビット
予約ビットです。
読出し値は常に "0" です。
[bit4] STRT:補正開始ビット
0
補正停止 , 補正ユニット停止 [ 初期値 ]
1
補正開始
STRT ビットがソフトウェアにより "1" に設定されると補正が開始されます。サブタ
イマはサブタイマデータレジスタに設定された値からカウントダウンを開始し , メイ
ンタイマは "0" からのカウントアップを開始します。
サブタイマが "0" に達すると , このビットは自動的に "0" にリセットされます。
補正処理中にソフトウェアによりこのビットに "0" が書き込まれると補正は直ちに
停止します。
ソフトウェアによる "0" 書込みと , ハードウェアによる "0" へのリセッ
トが同時に発生した場合は , ハードウェアの動作が優先されます。すなわち , 補正
が完了し , それを示す INT ビットが "1" に設定されます。補正中にこのビットへの
"1" 書込みは動作に影響を及ぼしません。
[bit3] Reserved:予約ビット
予約ビットです。
読出し値は常に "0" です。
[bit2] Reserved:予約ビット
予約ビットです。
必ず "0" を設定してください。
566
第 21 章 リアルタイムクロック
[bit1] INT:割込みフラグビット
0
補正中または補正ユニット停止 [ 初期値 ]
1
補正完了
このビットは補正の終了を示します。補正開始後 , サブタイマが "0" に達すると , メ
インタイマデータレジスタはメインタイマの最終値を格納し , INT ビットが "1" に設
定されます。
このビットに対してリードモディファイライト系命令を実行すると "1" が読み出さ
れます。"0" 書込みにより INT ビットはクリアされます。"1" 書込みは無効です。
割込みフラグ INT は , ハードウェアではリセットされないので , 補正を新たに開始
する場合はソフトウェアでリセットしてください。
[bit0] INTEN:割込み許可ビット
0
割込み禁止 [ 初期値 ]
1
割込み許可
このビットは割込み許可ビットです。このビットが "1" に設定され bit1 の INT ビッ
トが補正完了により設定されると , 補正ユニットは CPU へ割込み信号を送信しま
す。INT ビットは INTEN ビットの設定値によらず割込み禁止の場合 (INTEN=0) で
あっても補正が完了すると自動的にセットされます。
このビットは読出しおよび書込みが可能です。
567
第 21 章 リアルタイムクロック
21.5.2
サブタイマデータレジスタ (CUTD)
サブタイマデータレジスタ (CUTD) は , 補正期間 ( サブリロード値 ) を決定する値を
保持します。
■ サブタイマデータレジスタ (CUTD)
CUTDH
bit15
bit14
bit13
bit12
bit11
bit10
TDD15 TDD14 TDD13 TDD12 TDD11 TDD10
R/W
R/W
R/W
R/W
R/W
R/W
bit9
bit8
初期値
TDD9
R/W
TDD8
R/W
10000000B
CUTDL
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TDD7
R/W
TDD6
R/W
TDD5
R/W
TDD4
R/W
TDD3
R/W
TDD2
R/W
TDD1
R/W
TDD0
R/W
00000000B
R/W :リード / ライト可能
サブタイマデータレジスタの初期値は "8000H" となっており , 32.768kHz の場合での 1
秒の測定時間に対応しています。
このレジスタへの書込みは補正が停止中 (STRT=0) に行ってください。
サブタイマデータレジスタは補正時間に指定される値を格納します。補正が開始され
ると設定値がサブタイマにロードされ , タイマは "0" に達するまでカウントダウンを行
います。
サブタイマデータレジスタに "0000H" を設定するとアンダフローが発生し , 測定値は
(FFFFH + 1) × TOSC32 となります。
測定時間を 1 秒に設定するためには設定値を "8000H" としてください。測定結果の理
想値 (OSC32=32.768kHz, OSC4=4.00MHz の場合 ) を表 21.5-1 に示します。
表 21.5-1 理想測定結果
568
補正時間
CUTD 値
CUTR 値
2.00s
0000H
7A1200H
1.75s
E000H
6ACFC0H
1.50s
C000H
5B8D80H
1.25s
A000H
4C4B40H
1.00s
8000H
3D0900H
0.75s
6000H
2DC6C0H
0.50s
4000H
1E8480H
0.25s
2000H
0F4240H
第 21 章 リアルタイムクロック
STRT ビットへの "1" 書込みから補正完了によるハードウェアでの STRT のリセットま
での処理時間は実際の補正時間より長くなります。これは補正ユニットが複数のク
ロックを使用し , その同期化のためです。
• 処理時間 < (CUTD + 3) × TOSC32
• 補正時間 = CUTD × TOSC32
569
第 21 章 リアルタイムクロック
21.5.3
メインタイマデータレジスタ (CUTR)
メインタイマデータレジスタ (CUTR) は補正結果の値 (4MHz カウンタ ) を保持しま
す。
■ メインタイマデータレジスタ (CUTR)
補正の終了は CUCR レジスタの INT ビットと STRT ビットにより示されます。
補正終了により INT ビットが "1", STRT ビットが "0" に設定されると CUTR の値が有
効となります。
<参考>
補正中 (STRT=1) は CUTR レジスタの値も更新され続け , CUTR レジスタの読出し値も補
正中のデータとなります。
CUTR1H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
−
R
−
R
−
R
−
R
−
R
−
R
−
R
00000000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CUTR1L
TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16
00000000B
R
R
R
R
R
R
R
R
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00000000B
CUTR2H
TDR15 TDR14 TDR13 TDR12 TDR11 TDR10
TDR9
TDR8
R
R
R
R
R
R
R
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
TDR7
R
TDR6
R
TDR5
R
TDR4
R
TDR3
R
TDR2
R
TDR1
R
TDR0
R
00000000B
CUTR2L
R
:リードオンリ
メインタイマデータレジスタは補正結果を格納します。補正が開始されるとメインタ
イマは "0" からカウントアップを開始します。サブタイマが "0" に達するとメインタイ
マはカウントを停止し , ソフトウェアにより次の補正がトリガ (STRT=1) されるまでレ
ジスタは補正結果を保持します。
570
第 21 章 リアルタイムクロック
21.6
クロック補正ユニットの使用について
補正の精度 , 測定時間について説明します。
■ サブタイマデータレジスタの設定
サブタイマデータレジスタの設定は以下の方法で計算することができます。
ここではメイン発振周波数を 4MHz, サブ発振周波数を 32.768kHz とします。
補正時間を 1 秒とする場合は , サブタイマデータレジスタに "8000H"(=32768D) を設定
します。これはサブ発振クロックの 32768 周期を意味します。
この設定により補正結果としてメインタイマデータレジスタに約 "3D0900H" の値が格
納されます。これは 4MHz 発振の 4000000 周期を意味します。
■ 補正の精度
補正精度は , メインタイマの入力クロック周波数と補正時間に依存します。メインタイ
マの最大誤差は± 1 です。入力クロック周波数が 4MHz, 補正時間が 1 秒である場合で
の補正精度は以下の方法で計算されます。
0.25µs ( 入力クロック周期 ) /1s ( 補正時間 ) = 0.25ppm
571
第 21 章 リアルタイムクロック
572
第 22 章
A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能 , お
よび動作について説明します。
22.1 A/D コンバータの概要
22.2 A/D コンバータのブロックダイヤグラム
22.3 A/D コンバータのレジスタ
22.4 A/D コンバータの動作
573
第 22 章 A/D コンバータ
22.1
A/D コンバータの概要
A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。
ここでは , A/D コンバータの概要について説明します。
■ A/D コンバータの特長
A/D コンバータの特長は , 以下のとおりです。
• 変換時間:1 チャネルあたり最小 3.0µS
• サンプル & ホールド回路付き逐次比較変換方式を採用
• 10 ビットの分解能 (8/10 ビット切換え可能 )
• アナログ入力は 24 チャネルからソフトウェアで選択できます。
• 変換モード
- シングル変換モード: 1 チャネルを選択変換
- スキャン変換モード: 連続した複数のチャネルを変換。最大 24 チャネルプログ
ラム可能
- 連続変換モード:
指定チャネルを繰り返し変換
- 停止変換モード:
指定チャネルを変換後, 一時停止して次の起動が掛かるま
で待機 ( 変換開始の同期が可能 ) 。
• 割込み要求
- A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させること
ができます。
• 起動要因を選択可能
- 起動要因は , ソフト , 外部トリガ ( 立下りエッジ ) , またはタイマ ( 立上りエッジ )
があります。
■ 入力インピーダンス
A/D コンバータのサンプリング回路は次の等価回路で表されます。
図 22.1-1 入力インピーダンス
Rin
13.6kΩ(AVCC≧4.0V)
2.52kΩ(AVCC≧4.5V)
Rext
アナログ信号
ANx
アナログスイッチ
Cin:最大 10.7pF
ADC
最大サンプリング時間(Tsamp)を超えてRextを設定しないでください。.
Rext = Tsamp/(7*Cin) - Rin
574
第 22 章 A/D コンバータ
22.2
A/D コンバータのブロックダイヤグラム
図 22.2-1 に A/D コンバータのブロックダイヤグラムを示します。
■ A/D コンバータのブロックダイヤグラム
図 22.2-1 A/D コンバータのブロックダイヤグラム
AN0
AN1
AN2
AN3
MPX
AVCC
AVSS
D/Aコンバータ
AN4
AN5
AN6
AN7
AN8
比較器
内部データバス
サンプル&
ホールド回路
デコーダ
AN11
AN12
AN13
AN14
AN15
AN16
AN17
AN18
AN19
AN20
AN21
AN22
AN23
逐次比較レジスタ
入力回路
AN9
AN10
AVRH/L
データレジスタ
A/D制御レジスタ0
A/D制御レジスタ1
ADCS0/ADCS1
動作クロック
ATG端子
16ビット
リロードタイマ
CLKP
プリスケーラ
575
第 22 章 A/D コンバータ
22.3
A/D コンバータのレジスタ
A/D コンバータで使用するレジスタの構成および機能について説明します。
■ A/D コンバータのレジスタの概要
A/D コンバータのレジスタには , 以下の 6 種類があります。
• アナログ入力許可レジスタ (ADER)
• コントロールステータスレジスタ (ADCS)
• データレジスタ (ADCR)
• 変換時間設定レジスタ (ADCT)
• 開始チャネル設定レジスタ (ADSC)
• 終了チャネル設定レジスタ (ADEC)
■ レジスタ一覧
ADERH ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
ADERL ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
ADE15 ADE14 ADE13 ADE12 ADE11 ADE10
R/W
R/W
R/W
R/W
R/W
R/W
bit9
bit8
初期値
ADE9
R/W
ADE8
R/W
00000000B
ADERL ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
reserved
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MD1
R/W
MD0
R/W
S10
R/W
ACH4
R
ACH3
R
ACH2
R
ACH1
R
ACH0
R
00000000B
ADCS1
ADCS0
R/W :リード / ライト可能
R
:リードオンリ
( 続く )
576
第 22 章 A/D コンバータ
( 続き )
ADCR1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D8
R
------XXB
−
−
−
−
−
−
−
−
−
−
−
−
D9
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CT5
CT4
CT3
CT2
CT1
CT0
ST9
ST8
00010000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ST7
R/W
ST6
R/W
ST5
R/W
ST4
R/W
ST3
R/W
ST2
R/W
ST1
R/W
ST0
R/W
00101100B
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
ANS4
ANS3
ANS2
ANS1
ANS0
---00000B
R/W
R/W
R/W
R/W
ADCR0
ADCT1
ADCT0
ADSCH
−
−
−
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
−
ANE4
R/W
ANE3
R/W
ANE2
R/W
ANE1
R/W
ANE0
R/W
---00000B
ADECH
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
577
第 22 章 A/D コンバータ
22.3.1
アナログ入力許可レジスタ (ADER)
アナログ入力に使用される端子に対応する ADER ビットに常に "1" を書き込んでく
ださい。
■ A/D 許可レジスタ (ADER)
ADERH ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16
R/W
初期値
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00000000B
ADERL ( 上位バイト )
bit15
ADE15 ADE14 ADE13 ADE12 ADE11 ADE10
ADE9
ADE8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ADE7
R/W
ADE6
R/W
ADE5
R/W
ADE4
R/W
ADE3
R/W
ADE2
R/W
ADE1
R/W
ADE0
R/W
00000000B
R/W
ADERL ( 下位バイト )
R/W :リード / ライト可能
[ADE23 ∼ ADE0] : A/D 入力許可
ADE
機能
0
汎用ポート [ 初期値 ]
1
アナログ入力
リセット時は "00000000H" に初期化されます
開始チャネル , 終了チャネルのアナログ入力許可レジスタには必ず "1" を書き込ん
でください。
578
第 22 章 A/D コンバータ
A/D コントロールステータスレジスタ (ADCS)
22.3.2
A/D コントロールステータスレジスタ (ADCS) は , A/D コンバータの制御およびス
テータス表示を行います。A/D 変換中には ADCS レジスタの更新を行わないでくだ
さい。
■ A/D コントロールステータスレジスタ 1 (ADCS1)
ADCS1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
BUSY
R/W
INT
R/W
INTE
R/W
PAUS
R/W
STS1
R/W
STS0
R/W
STRT
R/W
reserved
00000000B
R/W
R/W :リード / ライト可能
[bit7] BUSY (busy flag and stop)
BUSY
機能
読出し
A/D コンバータ動作表示用のビットです。
A/D 変換起動でセットされ最終チャネルの変換終了でクリアされま
す。
書込み
A/D 動作中に本ビットに "0" を書き込むと強制的にクリアされます。
連続 , 停止モード時の強制終了に利用します。
動作表示用のビットに "1" を書き込むことはできません。
リードモディファイライト系命令では "1" が読まれます。
単発モードでは設定された最終チャネルの A/D 変換終了でクリアされます。
連続 , 停止モードでは "0" 書込みで停止するまでクリアされません。
リセット時にこのビットは "0" に初期化されます。
<注意事項>
強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。
[bit6] INT (interrupt)
変換データが ADCR に書き込まれるとセットされます。
bit5 (INTE) が "1" のときに本ビットがセットされると割込み要求が発生します。
クリアは "0" 書込みで行われます。
リセット時にこのビットは "0" に初期化されます。
DMA を使用した場合は DMA 転送終了時にこのビットはクリアされます。
579
第 22 章 A/D コンバータ
<注意事項>
INT ビットの "0" 書込みクリアは A/D 停止中に行ってください。
[bit5] INTE (interrupt enable)
このビットは変換終了による割込みの許可・不許可を指定します。
INTE
機能
0
割込み禁止 [ 初期値 ]
1
割込み許可
リセット時にこのビットは "0" に初期化されます。
[bit4] PAUS (A/D converter pause)
A/D 変換動作が一時的に停止した場合にセットされます。
A/D 変換結果を格納するレジスタが 1 つのため連続で変換した場合 , 変換結果を
DMA で転送しなければ前データが壊れてしまいます。
これを保護するためデータレジスタの内容を DMA で転送しなければ次の変換デー
タが格納されないようになっています。この間 A/D 変換動作は停止します。DMA
で転送を終了すると A/D は変換を再開します。
このビットは DMA を使用したときのみ有効です。
-このビットのクリアは "0" 書込みでのみ可能です。
(DMA 転送終了ではクリアされません。)
-ただし , DMA 転送待ち状態の時はクリアできません。
-変換データの保護機能に関しては「22.4 A/D コンバータの動作」を参照してく
ださい。
-リセット時にこのビットは "0" に初期化されます。
[bit3, bit2] STS1, STS0 (Start source select)
リセット時にこれらのビットは "00B" に初期化されます。
このビットの設定により A/D 起動要因を選択します。
STS1
STS0
0
0
ソフト起動 [ 初期値 ]
0
1
外部端子トリガでの起動とソフト起動
1
0
16 ビットリロードタイマでの起動とソフト起動
1
1
外部端子トリガ , 16 ビットリロードタイマでの起動とソフト起動
機能
2 つ以上の起動要因が許されているモードでは最初に生じた要因により A/D 変換が
起動されます。
起動要因の設定は書き換えられると直ちに変わりますので , A/D 変換中に書き換え
るときには注意してください。
580
第 22 章 A/D コンバータ
-外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" の
ときに本ビットを書き換えて外部端子トリガ起動に設定するとA/Dが起動する
場合があります。
-タイマ選択時は , 16 ビットリロードタイマ 2 が選択されます。
[bit1] STRT (Start)
このビットに "1" を書き込むことにより A/D を起動 ( ソフト起動 ) します。
再起動をかけるときは , 再び "1" を書き込んでください。
リセット時にこのビットは "0" に初期化されます。
連続モード時および停止モード時は動作機能上 , 再起動はかかりません。"1" を書き
込む前に BUSY ビットをチェックしてください。(BUSY ビットをクリアしてから起
動してください。)
強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。
[bit0] 予約ビット
このビットには必ず "0" を設定してください。
581
第 22 章 A/D コンバータ
■ A/D コントロールステータスレジスタ 0 (ADCS0)
ADCS0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MD1
R/W
MD0
R/W
S10
R/W
ACH4
R
ACH3
R
ACH2
R
ACH1
R
ACH0
R
00000000B
R/W :リード / ライト可能
R
:リードオンリ
[bit7, bit6] MD1, MD0 (A/D converter mode set)
MD1, MD0 ビットは , 動作モードを設定します。
リセット時にはこれらのビットは "00B" に初期化されます。
MD1
MD0
0
0
単発モード , 動作中の再起動は不可能 [ 初期値 ]
0
1
単発モード , 動作中の再起動は不可能
1
0
連続モード , 動作中の再起動は不可能
1
1
停止モード , 動作中の再起動は不可能
動作モード
• 単発モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変換
を連続して行いすべてのチャネルの変換が終了すると停止します。
• 連続モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変換
を繰り返し行います。
• 停止モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで 1 チャネ
ルごとに A/D 変換を行い一時停止します。変換再開は起動要因発生によって行
われます。
• 連続モード , 停止モードで A/D 変換を起動すると , BUSY ビットで強制終了する
まで変換動作を続けます。
• 強制終了は BUSY ビットに "0" を書き込むことにより行われます。
• 強制終了後の起動時は ANS4 ∼ ANS0 の設定チャネルから変換されます。
• 単発 , 連続 , 停止の各モードでの再起動不可能はタイマ , 外部トリガ , ソフトすべ
ての起動に適用されます。
<注意事項>
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動
ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再
起動は下記の手順で行ってください。
(1) INT ビットを "0" にクリアします。
(2) STRT ビットに "1" を , INT ビットに "0" を同時に書き込みます。
582
第 22 章 A/D コンバータ
[bit5] S10
このビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D 変
換が行われます。そのほかの場合には 8 ビットの A/D 変換が行われてその結果は
ADCR0 に記憶されます。
リセット時にこのビットは "0" に初期化されます。
[bit4 ∼ bit0] ACH4 ∼ ACH0 (Analog convert select channel)
これらのビットにより現在 A/D 変換中のチャネルを表します。
リセット時にこれらのビットは "00000B" に初期化されます。
ACH4
ACH3
ACH2
ACH1
ACH0
変換チャネル
0
0
0
0
0
AN0
0
0
0
0
1
AN1
0
0
0
1
0
AN2
0
0
0
1
1
AN3
0
0
1
0
0
AN4
0
0
1
0
1
AN5
0
0
1
1
0
AN6
0
0
1
1
1
AN7
0
1
0
0
0
AN8
0
1
0
0
1
AN9
0
1
0
1
0
AN10
0
1
0
1
1
AN11
0
1
1
0
0
AN12
0
1
1
0
1
AN13
0
1
1
1
0
AN14
0
1
1
1
1
AN15
1
0
0
0
0
AN16
1
0
0
0
1
AN17
1
0
0
1
0
AN18
1
0
0
1
1
AN19
1
0
1
0
0
AN20
1
0
1
0
1
AN21
1
0
1
1
0
AN22
1
0
1
1
1
AN23
583
第 22 章 A/D コンバータ
ACH
機能
読出し
A/D 変換 (BUSY ビット =1) の間 , 現在の変換チャネルを本ビット
群で表します。
強制終了 (BUSY ビット =0) により停止した場合は変換が停止され
たチャネルを表します。
書込み
これらのビットへの書込みは無効です。
<注意事項>
表中に記された設定値以外のレジスタへの書込みは禁止です。
584
第 22 章 A/D コンバータ
22.3.3
データレジスタ (ADCR1, ADCR0)
データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記
憶するために使用されるものです。ADCR0 は下位 8 ビットを記憶し , ADCR1 は変
換結果の最上位の 2 ビットを記憶します。これらのレジスタ値は変換が完了するた
びに書き換えられます。通常は最後の変換値がこのレジスタに記憶されます。
■ データレジスタ (ADCR1, ADCR0)
ADCR1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
−
−
−
D9
D8
------XXB
R
−
−
−
−
−
−
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
D7
R
D6
R
D5
R
D4
R
D3
R
D2
R
D1
R
D0
R
XXXXXXXXB
ADCR0
R
X
:リードオンリ
:不定
ADCR1 の bit15 ∼ bit10 からは常に "000000B" が読み込まれます。
変換データの保護機能を利用することができます。
「22.4 A/D コンバータの動作」を参
照してください。
585
第 22 章 A/D コンバータ
変換時間設定レジスタ (ADCT)
22.3.4
A/D 変換時間設定レジスタ (ADCT) はアナログ入力のサンプリング時間および比較
時間を制御します。ADCT レジスタの設定で A/D の変換時間を設定します。
ADCT レジスタは A/D 変換動作中に書換えないようにしてください。
■ 変換時間設定レジスタ
ADCT1
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CT5
R/W
CT4
R/W
CT3
R/W
CT2
R/W
CT1
R/W
CT0
R/W
ST9
R/W
ST8
R/W
00010000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00101100B
ADCT0
ST7
ST6
ST5
ST4
ST3
ST2
ST1
ST0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
[bit15 ∼ bit10] CT5 ∼ CT0 (A/D comparison time set)
これらのビットの設定により比較操作時間のクロック分周値を指定します。
CT5 ∼ CT0 の設定を "000001B" にすると分周なし =CLKP になります。
CT5 ∼ CT0 の設定を "000000B" には設定しないでください。
リセットによりこれらのビットは "000100B" に初期化されます。
比較操作時間 (Compare Time) = CT 設定値 × CLKP 周期 × 10 + (4 × CLK 同期 )
<注意事項>
比較操作時間は 500 µs を超えないように設定してください。最小時間は 1.375 µs です。
[bit9 ∼ bit0] ST9 ∼ ST0 (A/D input sampling time set)
これらのビットの設定によりアナログ入力のサンプリング時間を指定します。
リセットによりこれらのビットは "0000101100B" に初期化されます。
サンプリング時間 (Sampling Time) = ST 設定値 × CLKP 周期
必要サンプリング時間および ST 設定時間の算出は以下の計算で行ってください。
必要サンプリング時間 (Tsamp) = (Rext + Rin) × Cin × 7
ST9 ∼ ST0 設定値 = 必要サンプリング時間 (Tsamp) ÷ CLKP 周期
586
第 22 章 A/D コンバータ
ST の設定値は A/D のサンプリング時間が必要サンプリング時間以上になるように
設定してください。
例 . CLKP=32 MHz, AVCC ≧ 4.5V, Rext = 200 kΩ の場合
Tsamp = (200 × 103 + 2.52 × 103) × 10.7 × 10 − 12 × 7 = 15.17 µs
ST = 15.17 − 6 ÷ 31.25 − 9 = 485.44 → 486 ("0111100110B") 以上を設定してください。
<注意事項>
AVCC が 4.5 V 未満の時には , サンプリング時間を 1.2 µs 以下にしないでください。
Rext の値により必要サンプリング時間が決まりますので , 変換時間を考慮して Rext を決
定してください。
■ 推奨設定値
最適な変換時間を達成するために , 以下の設定値が推奨されます。
(AVCC ≧ 4.5 V, Rext ≦ 15 kΩ)
CLKP
(MHz)
比較操作時間
(CT5 ∼ CT0)
サンプリング時間
(ST9 ∼ ST0)
ADCT
設定値
変換時間 (µs)
16
000010B
0000010110B
0816H
1.375 + 1.500 = 2.875
24
000011B
0000100001B
0C21H
1.375 + 1.417 = 2.792
32
000100B
0000101100B
102CH
1.375 + 1.375 = 2.750
587
第 22 章 A/D コンバータ
22.3.5
開始チャネル設定レジスタ (ADSCH)
終了チャネル設定レジスタ (ADECH)
A/D 変換の開始チャネルと終了チャネルの設定レジスタです。
ADSCH, ADECH は A/D 変換中に書き換えないでください。
■ 開始チャネル設定レジスタ (ADSCH)・終了チャネル設定レジスタ (ADECH)
ADSCH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
−
−
−
−
−
ANS4
R/W
ANS3
R/W
ANS2
R/W
ANS1
R/W
ANS0
R/W
---00000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
---00000B
ADECH
−
−
−
ANE4
ANE3
ANE2
ANE1
ANE0
−
−
−
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
これらのビットにより A/D 変換の開始チャネルと終了チャネルを設定します。
同一のチャネルが ANS4 ∼ ANS0 および ANE4 ∼ ANE0 に書き込まれると , 変換は 1 つ
のチャネルに対してのみ行われます ( シングルチャネル変換 ) 。
連続モード , 停止モードを設定している場合はこれらのビットで設定されたチャネル
の変換が終わると ANS4 ∼ ANS0 で設定された開始チャネルに戻ります。
設定チャネルが ANS > ANE の場合は ANS から変換が始まり 23 チャネルまで変換する
と 0 チャネルに戻り ANE まで変換します。
リセットによりこれらのビットは ANS=00000B, ANE=00000B に初期化されます。
例として , チャネル設定 ANS=6 チャネル , ANE=3 チャネル で単発モード時 , 変換は次
の順序で行われます。
6 チャネル ⇒ 7 チャネル ⇒ 8 チャネル ⇒ ... ⇒ 22 チャネル ⇒ 23 チャネル ⇒
0 チャネル ⇒ 1 チャネル ⇒ 2 チャネル ⇒ 3 チャネル
588
第 22 章 A/D コンバータ
[bit12 ∼ bit8] ANS4 ∼ ANS0 (A/D start channel set)
[bit4 ∼ bit0] ANE4 ∼ ANE0 (A/D end channel set)
ANS4
ANE4
ANS3
ANE3
ANS2
ANE2
ANS1
ANE1
ANS0
ANE0
開始 / 終了チャネル
0
0
0
0
0
AN0
0
0
0
0
1
AN1
0
0
0
1
0
AN2
0
0
0
1
1
AN3
0
0
1
0
0
AN4
0
0
1
0
1
AN5
0
0
1
1
0
AN6
0
0
1
1
1
AN7
0
1
0
0
0
AN8
0
1
0
0
1
AN9
0
1
0
1
0
AN10
0
1
0
1
1
AN11
0
1
1
0
0
AN12
0
1
1
0
1
AN13
0
1
1
1
0
AN14
0
1
1
1
1
AN15
1
0
0
0
0
AN16
1
0
0
0
1
AN17
1
0
0
1
0
AN18
1
0
0
1
1
AN19
1
0
1
0
0
AN20
1
0
1
0
1
AN21
1
0
1
1
0
AN22
1
0
1
1
1
AN23
1
1
0
0
0
設定禁止
1
1
0
0
1
設定禁止
1
1
0
1
0
設定禁止
1
1
0
1
1
設定禁止
1
1
1
0
0
設定禁止
1
1
1
0
1
設定禁止
1
1
1
1
0
設定禁止
1
1
1
1
1
設定禁止
589
第 22 章 A/D コンバータ
22.4
A/D コンバータの動作
A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択
することができます。ここでは A/D コンバータの動作モードを説明します。
■ A/D 変換データ
A/D コンバータは変換結果記憶用のレジスタが 1 つ (16 ビット ) であるため , 変換デー
タレジスタ (ADCR0 および ADCR1) は変換が完了するたびに書き換えられます。この
ため , A/D コンバータ単独では連続変換処理には適しませんので DMA を使って変換
データをメモリに転送しながら変換することを推奨します。
■ 単発モード
単発モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き ANE ビットで設定された終了チャネルまで変換が終わると A/D は動作を停止しま
す。開始チャネルと終了チャネルが同じとき (ANS=ANE) は一方のチャネルのみの変
換動作になります。
【例】
• ANS=00000B, ANE=00011B
開始 ⇒ AN0 ⇒ AN1 ⇒ AN2 ⇒ AN3 ⇒ 終了
• ANS=00010B, ANE=00010B
開始 ⇒ AN2 ⇒ 終了
■ 連続モード
連続モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
き ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に
戻り変換動作を続けます。開始チャネルと終了チャネルが同じとき (ANS=ANE) は一
方のチャネルのみの変換を続けます。
【例】
• ANS=00000B, ANE=00011B
開始 ⇒ AN0 ⇒ AN1 ⇒ AN2 ⇒ AN3 ⇒ AN0 ⇒ AN1 ( 繰返し )
• ANS=00010B, ANE=00010B
開始 ⇒ AN2 ⇒ AN2 ⇒ AN2 ( 繰返し )
連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま
す (BUSY ビットに "0" を書き込む→強制終了 ) 。強制終了を行うと変換は途中で止まっ
てしまうため , 注意してください ( 強制終了した場合 , 変換レジスタは変換完了した前
データが格納されています ) 。
590
第 22 章 A/D コンバータ
■ 停止モード
停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
きますが 1 チャネル変換するたびに変換動作を一時停止します。一時停止を解除する
にはもう一度起動をかけることにより行われます。
ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻
り変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれば変
換は一方のチャネルに対してのみ実行されます。
【例】
• ANS=00000B, ANE=00011B
開始 ⇒ AN0 ⇒ 停止⇒起動 ⇒ AN1 ⇒ 停止⇒起動 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN3 ⇒
停止⇒起動 ⇒ AN0 ⇒ 停止⇒起動 ⇒ AN1 ( 繰返し )
• ANS=00010B, ANE=00010B
開始 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN2 ⇒ 停止⇒起動 ⇒ AN2 ( 繰返し )
このときの起動要因は STS1, STS0 で設定されたものとなります。
このモードを使用することにより変換開始の同期をかけることが可能です。
<注意事項>
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動
ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再
起動は下記の手順で行ってください。
(1) INT ビットを "0" にクリアします。
(2) STRT ビットに "1" を , INT ビットに "0" を同時に書き込みます。
591
第 22 章 A/D コンバータ
592
第 23 章
D/A コンバータ
D/A コンバータの概要を示し , レジスタの構造と機
能 , および D/A コンバータの動作について説明し
ます。
23.1 D/A コンバータの概要
23.2 D/A コンバータのレジスタ
23.3 D/A コンバータの動作
593
第 23 章 D/A コンバータ
23.1
D/A コンバータの概要
D/A コンバータの機能とブロックダイヤグラムを示します。
■ D/A コンバータの機能
このモジュールは , 10 ビットの分解能を持つ R-2R 形式の D/A コンバータです。
D/A コンバータには 2 つのチャネルがあります。
出力制御は , D/A 制御レジスタを使用して , 2 つのチャネルで個別に実行できます。
■ D/A コンバータのブロックダイヤグラム
図 23.1-1 に , D/A コンバータのブロックダイヤグラムを示します。
図 23.1-1 D/A コンバータのブロックダイヤグラム
R-bus
DA DA DA DA DA DA DA DA DA DA
19 18 17 16 15 14 13 12 11 10
DA DA DA DA DA DA DA DA DA DA
09 08 07 06 05 04 03 02 01 00
DAV C
DAV C
DA19
DA18
DA09
2R
R
2R
R
DA17
2R
DA10
2R
R
R
DAE1
スタンバイ制御
DA出力
ch.1
594
DA08
2R
R
2R
R
2R
R
2R
R
DA18
DA00
DAE0
スタンバイ制御
DA出力
ch.0
第 23 章 D/A コンバータ
23.2
D/A コンバータのレジスタ
D/A コンバータで使用するレジスタについて説明します。
■ D/A コンバータのレジスタ一覧
図 23.2-1 に , D/A コンバータのレジスタ一覧を示します。
図 23.2-1 D/A コンバータのレジスタ一覧
DACR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
−
−
−
−
−
MODE
R/W
DAE1
R/W
DAE0
R/W
-----000B
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA09
DA08
------XXB
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DA07
R/W
DA06
R/W
DA05
R/W
DA04
R/W
DA03
R/W
DA02
R/W
DA01
R/W
DA00
R/W
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA19
R/W
DA18
R/W
------XXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DA17
DA16
DA15
DA14
DA13
DA12
DA11
DA10
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
-------0B
DADR0
DADR0
DADR1
DADR1
DADBL
−
−
−
−
−
−
−
DBL
−
−
−
−
−
−
−
R/W
R/W :リード / ライト可能
X
:不定
595
第 23 章 D/A コンバータ
■ D/A 制御レジスタ (DACR)
図 23.2-2 に , D/A 制御レジスタ (DACR) のビット構成を示します。
図 23.2-2 D/A 制御レジスタ (DACR) のビット構成
DACR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
−
−
−
−
−
MODE
R/W
DAE1
R/W
DAE0
R/W
-----000B
R/W :リード / ライト可能
[bit2] MODE
このビットは , D/A コンバータのモード制御に使用します。
このビットに "1" を書き込むと , D/A コンバータは 8 ビットの分解能で動作します。
"0" を書き込むと , D/A コンバータは 10 ビットの分解能で動作します。
リセット時に"0"に初期化されます。このビットは, 読出しおよび書込みが可能です。
[bit1, bit0] DAE1, DAE0
これらのビットは , D/A コンバータ出力を許可または禁止するために使用します。
DAE1 ビットは ch.1 出力を制御し , DAE0 ビットは ch.0 出力を制御します。
これらのビットに "1" を書き込むと , D/A 出力は許可されます。"0" を書き込むと , D/A
出力は禁止になります。
リセット時に "0" に初期化されます。これらのビットは読出しおよび書込みが可能
です。
596
第 23 章 D/A コンバータ
■ D/A データレジスタ (DADR)
図 23.2-3 に , D/A データレジスタ (DADR) のビット構成を示します。
図 23.2-3 D/A データレジスタ (DADR) のビット構成
DADR0
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA09
R/W
DA08
R/W
------XXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DA07
R/W
DA06
R/W
DA05
R/W
DA04
R/W
DA03
R/W
DA02
R/W
DA01
R/W
DA00
R/W
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA19
R/W
DA18
R/W
------XXB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
DA17
DA16
DA15
DA14
DA13
DA12
DA11
DA10
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DADR0
DADR1
DADR1
R/W :リード / ライト可能
X
:不定
[bit9 ∼ bit0] DADR0 レジスタ DA09 ∼ DA00
これらのビットは , D/A コンバータチャネル 0 の出力電圧の設定に使用します。
リセット時に初期化はされません。これらのビットは読出しおよび書込みが可能で
す。
[bit9 ∼ bit0] DADR1 レジスタ DA19 ∼ DA10
これらのビットは , D/A コンバータチャネル 1 の出力電圧の設定に使用します。
リセット時に初期化はされません。これらのビットは読出しおよび書込みが可能で
す。
これらのレジスタを 8 ビット分解能モードで読み出すと , DAx7 ∼ DAx0 と書き込まれ
た値は , DAx9 ∼ DAx2 として表示されます。
597
第 23 章 D/A コンバータ
■ D/A クロック制御レジスタ (DADBL)
図 23.2-4 に , D/A クロック制御レジスタ (DADBL) のビット構成を示します。
図 23.2-4 D/A クロック制御レジスタ (DADBL) のビット構成
DADBL
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
−
−
−
−
−
−
−
−
−
−
−
−
−
DBL
R/W
-------0B
R/W :リード / ライト可能
[bit0] DBL
このビットは , D/A コンバータモジュールのクロック制御に使用します。
このビットに "1" を書き込むと , D/A コンバータモジュールのクロックは禁止にな
ります。"0" を設定すると , D/A コンバータモジュールにクロックが供給されます。
リセット時に "0" に初期化されます。このビットは読出しおよび書込みが可能です。
598
第 23 章 D/A コンバータ
23.3
D/A コンバータの動作
D/A コンバータの動作概要を説明します。
■ D/A コンバータの動作概要
D/A 出力は , D/A データレジスタ (DADR) に所望の D/A 出力値を書込み , D/A 制御レジ
スタ (DACR) 内の対応する D/A 出力チャネルの許可ビットに "1" を設定することによっ
て開始されます。
D/A 出力を禁止にすると , 各 D/A コンバータチャネルの出力に直列に挿入されているア
ナログスイッチがオフになります。さらに , D/A コンバータが "0" に内部クリアされ ,
直流電流の経路が遮断されます。これはストップモード時にも当てはまります。
■ D/A コンバータ出力電圧の理論値
表 23.3-1, および表 23.3-2 に , D/A コンバータ出力電圧の理論値を示します。
D/A コンバータ出力電圧は , 8 ビットモードで 0 V ∼ 255/256 × DVR, 10 ビットモード
で 0 V ∼ 1023/1024 × DVR です。出力電圧範囲は , DVR 電圧を外部から調整すること
によって変化します。
D/A コンバータ出力には , 内部バッファ増幅器はありません。アナログスイッチ (100 Ω)
は出力に直列に挿入されているので , 外部出力負荷を加えたときに , 十分な設定時間が
あります。
表 23.3-1 8 ビット分解能の D/A コンバータ出力電圧の理論値
DA07 ∼ DA00(DA17 ∼ DA10) の設定値
出力電圧の理論値
00H
DVRL + 0 × 1LSB
01H
DVRL + 1 × 1LSB
02H
DVRL + 2 × 1LSB
∼
∼
FDH
DVRL + 253 × 1LSB
FEH
DVRL + 254 × 1LSB
FFH
DVRL + 255 × 1LSB
1LSB = (DVRH − DVRL)/256
599
第 23 章 D/A コンバータ
表 23.3-2 10 ビット分解能の D/A コンバータ出力電圧の理論値
DA07 ∼ DA00(DA17 ∼ DA10) の設定値
出力電圧の理論値
000H
DVRL + 0 × 1LSB
001H
DVRL + 1 × 1LSB
002H
DVRL + 2 × 1LSB
∼
∼
3FDH
DVRL + 1021 × 1LSB
3FEH
DVRL + 1022 × 1LSB
3FFH
DVRL + 1023 × 1LSB
1LSB = (DVRH − DVRL)/1024
600
第 24 章
クロックモジュレータ
クロックモジュレータのレジスタ構成と機能およ
び動作について説明します。
24.1 クロックモジュレータの概要
24.2 クロックモジュレータのレジスタ
601
第 24 章 クロックモジュレータ
24.1
クロックモジュレータの概要
クロックモジュレータの概要を説明します。
■ クロックモジュレータの概要
クロックモジュレータはクロック信号のスペクトラムを広範囲に分散させることで周
囲への電磁ノイズの影響 (EMI) を低減させます。
602
第 24 章 クロックモジュレータ
24.2
クロックモジュレータのレジスタ
クロックモジュレータで使用するレジスタの構成および機能について説明します。
■ クロックモジュレータレジスタの概要
クロックモジュレータには , 以下のレジスタがあります。
• クロックモジュレータパラメータレジスタ (CMPR)
• クロックモジュレータ制御レジスタ (CMCR)
■ レジスタ一覧
CMPR ( 上位バイト )
bit15
−
R
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
MP13
R/W
MP12
R/W
MP11
R/W
MP10
R/W
MP9
R/W
MP8
R/W
00001000B
CMPR ( 下位バイト )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MP7
R/W
MP6
R/W
MP5
R/W
MP4
R/W
MP3
R/W
MP2
R/W
MP1
R/W
MP0
R/W
11111101B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
RUN
EN
PDX
00010000B
R/W
R/W
R/W
CMCR
PHSEL
R/W
−
R
−
R/W
−
R/W
R/W :リード / ライト可能
R
:リードオンリ
603
第 24 章 クロックモジュレータ
24.2.1
クロックモジュレータパラメータレジスタ
(CMPR)
クロックモジュレータパラメータレジスタ (CMPR) は , 周波数変調モードにおいて
の変調度を決定します。
■ クロックモジュレータパラメータレジスタ (CMPR)
CMPR ( 上位バイト )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
−
R
MP13
R/W
MP12
R/W
MP11
R/W
MP10
R/W
MP9
R/W
MP8
R/W
00001000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
MP7
MP6
MP5
MP4
MP3
MP2
MP1
MP0
11111101B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
−
R
CMPR ( 下位バイト )
R/W :リード / ライト可能
R
:リードオンリ
• 変調パラメータは変調クロックの変調度および最高・最低周波数を決定します。
• 変調パラメータの設定は , PLL クロック周波数によって変わります。PLL クロック
周波数とパラメータの設定には矛盾がないようにしてください。
• 変調パラメータは周波数変調モードでのみ有効です。
• 変調パラメータの変更は , モジュレータが停止中で , CMCR の RUN ビットが "0" の
ときに行ってください。
[bit15, bit14] Reserved
予約ビットです。読出し値は常に "00B" です。
[bit13 ∼ bit0] MP13 ∼ MP0:変調パラメータ
PLL 周波数により以下の変調パラメータ設定が可能です。
604
F0:
非変調入力クロック周波数 (PLL クロック周波数 )
T0:
非変調入力クロック周期 (PLL クロック周期 )
分解能:
変調クロックの周波数分解能 (1 ∼ 7)
Fmax:
変調クロックで発生する最高周波数
Fmin:
変調クロックで発生する最低周波数
第 24 章 クロックモジュレータ
24.2.2
クロックモジュレータ制御レジスタ (CMCR)
クロックモジュレータ制御レジスタ (CMCR) には , モジュレータパワーダウンモー
ドの設定 , モジュレータ動作・停止 , 位相変調・周波数変調モード選択 , モジュレー
タ状態表示の機能があります。
■ クロックモジュレータ制御レジスタ (CMCR)
CMCR
bit7
bit6
PHSEL
R/W
−
R
bit5
−
R/W
bit4
−
R/W
bit3
bit2
bit1
bit0
初期値
−
R/W
RUN
R/W
EN
R/W
PDX
R/W
00010000B
R/W :リード / ライト可能
R
:リードオンリ
クロックモジュレータには , 2 つの動作モードがあります。
• 位相変調
• 周波数変調
[bit7] PHSEL:位相変調モード選択ビット
PHSEL
位相変調モード選択
0
周波数変調モード [ 初期値 ]
1
位相変調モード
PHSEL の変更は必ずクロック変調停止中 (EN ビットが "0") に行ってください。ク
ロック変調動作中に変更すると誤動作を起こす場合があります。
[bit6 ∼ bit3] Reserved
予約ビットです。
これらのビットには , 必ず "0010B" を設定してください。
[bit2] RUN:モジュレータステータスビット
RUN
モジュレータステータス
0
CPU は非変調クロックで動作します。[ 初期値 ]
1
CPU は変調クロックで動作します。
• このビットは周波数変調モード (PHSEL=0) においてモジュレータ出力クロック
の状態を示します。出力クロック周波数が変調されている場合は "1" にセットさ
れます。変調されていない場合は "0" にセットされます。
• 位相変調モードでは , このビットは常に "0" です。
605
第 24 章 クロックモジュレータ
発振周波数 (F0)
補正時間
4 MHz
64.00 µs
5 MHz
51.20 µs
6 MHz
42.67 µs
補正時間 = 256/F0
• 通常動作時 , 補正が完了する非変調クロックへは切り替わりません。
• EN 信号の同期化と , 非変調クロックへの同期切換えのために , このビットが "0"
に変わる前に最低 9 × T0 ( 入力クロック周期 ) 経過します。モジュレータの動作
停止後 , クロックは非変調クロックへと切り替わります。
• このビットは読出し専用です。書込みは無効です。
[bit1] EN:クロック変調動作許可ビット
EN
クロック変調動作許可
0
クロック変調動作停止 [ 初期値 ]
1
クロック変調動作許可
• このビットを "1" に設定すると , モジュレータが動作許可されます。
• 変調動作の許可は , PLL が安定したクロックを供給するようになってから (PLL
ロックタイム経過後 ) 行ってください。
• 周波数変調モードで使用する PLL クロック周波数は , 15 MHz ∼ 25 MHz です。
• PLL クロック周波数の変更や PLL を停止させる前に , 必ずモジュレータを停止さ
せてください。
• EN ビットが "1" となり , 周波数変調モードに設定後は , モジュレータは補正され
ます。この間に出力されるクロックは非変調クロックです。したがって , 出力ク
ロックが変調クロックに切り替わり , RUN ビットが "1" にセットされるまで数
µ 秒の時間を要します。この補正時間は外部発振子の周波数に依存します。
[bit0] PDX:パワーダウンモードビット
PDX
パワーダウンモード
0
パワーダウンモード [ 初期値 ]
1
通常動作モード
• このビットは周波数変調器のパワーダウンモードビットです。
• 変調動作を開始させる前に , このビットを "1" に設定してパワーダウンモードか
ら通常動作モードへ切り換えてください。このとき起動時間として , 6µs の待ち
時間が必要です。
• パワーダウンモードに切り換える前に , 必ずモジュレータを停止してください。
606
第 25 章
クロックスーパバイザ
クロックスーパバイザの機能について説明します。
25.1 クロックスーパバイザの概要
25.2 クロックスーパバイザ制御レジスタ (CSVCR)
25.3 クロックスーパバイザの動作
607
第 25 章 クロックスーパバイザ
25.1
クロックスーパバイザの概要
クロックスーパバイザの機能概要について説明します。
■ クロックスーパバイザの概要
クロックスーパバイザには以下の機能があります。
• 内蔵 CR 発振クロックの 4 周期の間にメイン発振クロックの立ち上がりエッジが検
出されなければ , クロックスーパバイザは発振不具合を検出します。メイン発振周
期がこの期間より長い場合 (TRC(Typ) ≦ TMAIN/4) は , 発振不具合とみなされます。
MCU がサブクロックで動作しているときは , この期間は CR 発振クロックの 32 周
期となります。
• メイン発振 , サブ発振 , CR 発振は個別に発振を停止することができます。
• メイン発振動作時にサブクロックに不具合が検出された場合での MCU の初期化実
行は , コントロールビットの設定値に依存します。
• メイン発振監視機能 , サブ発振監視機能はともに , MCU からの発振制御信号により
自動的にその機能の動作 / 停止を切り換えます。
• STOPモード時に外部発振を停止させると, 内蔵CR発振は自動的に停止します。
MCU
を STOP モードから復帰させると , 発振を再開します。
608
第 25 章 クロックスーパバイザ
25.2
クロックスーパバイザ制御レジスタ (CSVCR)
クロックスーパバイザ制御レジスタ (CSVCR) ではクロックスーパバイザの動作モー
ドを設定します。
■ クロックスーパバイザ制御レジスタ (CSVCR)
CSVCR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
−
R/W
MM
R
SM
R
RCE
R/W
MSVE
R/W
SSVE
R/W
SRST
R/W
bit0
初期値
−
R/W
0001XX00B
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
[bit7] Reserved
予約ビットです。
必ず "0" を設定してください。
[bit6] MM:メイン発振ミス検出フラグ
MM
メイン発振ミス検出
0
メイン発振のミス検出なし [ 初期値 ]
1
メイン発振のミス検出あり
水晶発振子の故障などで , メイン発振監視機能がメイン発振の不具合を検出すると ,
このビットは "1" に設定されます。"0" は正常動作を意味します。
このビットは読出し専用で , 書込みは無効です。初期化は外部端子からのリセット
入力 (INIT=0) で行われます。MCU 内部のリセット要因 ( ソフトウェアリセット ,
ウォッチドッグリセット ) では初期化されません。
[bit5] SM:サブ発振ミス検出フラグ
SM
サブ発振ミス検出
0
サブ発振のミス検出なし [ 初期値 ]
1
サブ発振のミス検出あり
水晶発振子の故障などで , サブ発振監視機能がサブ発振の不具合を検出すると , こ
のビットは "1" に設定されます。"0" は正常動作を意味します。
このビットは読出し専用で , 書込みは無効です。初期化は外部端子からのリセット
入力 (INIT=0) で行われます。MCU 内部のリセット要因 ( ソフトウェアリセット ,
ウォッチドッグリセットなど ) では初期化されません。
609
第 25 章 クロックスーパバイザ
[bit4] RCE:CR 発振イネーブルビット
RCE
CR 発振動作許可
0
内蔵 CR 発振停止
1
内蔵 CR 発振動作 [ 初期値 ]
このビットを "1" に設定すると , 内蔵 CR 発振は動作します。メイン発振監視 , サブ
発振監視 , いずれかの一方でも動作中のときには , このビットを必ず "1" に設定して
ください。
このビットを "0" に設定する場合は , まず , メイン・サブ , いずれの監視機能も停止
させ , MM ビットと SM ビットがともに "0" であることを確認してください。
このビットは外部端子からのリセット入力 (INIT=0) で "1" に初期化されます。MCU
内部のリセット要因 ( ソフトウェアリセット , ウォッチドッグリセットなど ) では
初期化されません。
[bit3] MSVE:メイン発振監視イネーブルビット
MSVE
メイン発振監視動作
0
メイン発振監視停止
1
メイン発振監視動作
このビットを "1" に設定すると , メイン発振クロックの監視機能が有効となります。
"1" 書込みにより監視機能を有効とする前に , 必ず RCE ビットが "1" であることを
確認してください。RCE ビットが "0" の場合は , MSVE ビットが "0" のままで RCE
ビットを "1" に設定し , 内蔵 CR 発振の発振起動時間経過後 ( 最低 10µs) , MSVE ビッ
トに "1" を設定してください。
<注意事項>
MSVE ビットはいかなるリセット要因に対しても初期化はされません。メイン発振監視機
能の使用の有無に関わらず , 必ず "1" ( 有効 ) または "0" ( 無効 ) を設定してください。
[bit2] SSVE:サブ発振監視イネーブルビット
SSVE
サブ発振監視動作
0
サブ発振監視停止
1
サブ発振監視動作
このビットを "1" に設定すると , サブ発振クロックの監視機能が有効となります。
"1" 書込みにより監視機能を有効とする前に , 必ず RCE ビットが "1" であることを
確認してください。RCE ビットが "0" の場合は , SSVE ビットが "0" のままで RCE
ビットを "1" に設定し , 内蔵 CR 発振の発振起動時間経過後 ( 最低 10µs) , SSVE ビッ
トに "1" を設定してください。
610
第 25 章 クロックスーパバイザ
<注意事項>
SSVE ビットはいかなるリセット要因に対しても初期化はされません。サブ発振監視機能
の使用の有無に関わらず , 必ず "1" ( 有効 ) または "0" ( 無効 ) を設定してください。
[bit1] SRST:サブクロックモードリセットビット
予約ビットです。
必ず "0" を設定してください。
[bit0] Reserved
予約ビットです。
必ず "0" を設定してください。
611
第 25 章 クロックスーパバイザ
25.3
クロックスーパバイザの動作
クロックスーパバイザの動作について説明します。
■ 初期状態での動作
• 内蔵 CR 発振は動作状態です。
• メイン発振安定待ち時間経過後 , MSVE ビットが "1" であれば , メイン発振監視機能
が有効となります。発振安定待ち時間経過前に発振の不具合を検出した場合は , CR
発振クロックにより待ち時間を確保した後に , 機能が有効となります。電源投入時
から発振子に不具合がある場合はリセット信号を発行し続け , デバイスをリセット
状態に保ちます。
• サブ発振監視機能は , 内蔵 CR 発振クロックによる安定待ち時間経過後 , SSVE ビッ
トが "1" であれば , その機能が有効となります。
■ CR 発振とクロック監視機能の動作停止
• 内蔵 CR 発振は RCE ビット (CSVCR の bit4) を "0" に設定すると発振を停止します。
メイン / サブ発振監視機能のいずれかでも動作中の場合は CR 発振を停止させない
でください。CR 発振を停止させる場合は , まず発振監視機能を停止させ , MM ビッ
トと SM ビットがともに "0" であることを確認後に実行してください。いずれかの
ビットが "1" である場合は , CR 発振を停止させないでください。
• MSVE ビット (CSVCR の bit3) を "0" に設定すると , メイン発振監視機能は停止しま
す。
• SSVE ビット (CSVCR の bit2) を "0" に設定すると , サブ発振監視機能は停止します。
■ CR 発振とクロック監視機能の再起動
• CR 発振が動作停止中に RCE ビット (CSVCR の bit4) に "1" を設定すると , 発振動作
が再開されます。再起動後の発振安定待ち時間はソフトウェアで確保してくださ
い。
• メイン発振監視機能が動作停止中に MSVE ビット (CSVCR の bit3) に "1" を設定す
ると , 機能が有効となります。このビットへ "1" を設定する前に CR 発振動作開始か
ら発振安定待ち時間 (10µs) 以上経過している必要があります。
• サブ発振監視機能が動作停止中に MSVE ビット (CSVCR の bit2) に "1" を設定する
と , 機能が有効となります。このビットへ "1" を設定する前に CR 発振動作開始から
発振安定待ち時間 (10µs) 以上経過している必要があります。
■ サブクロックモード
サブクロックモードでは , メイン発振監視機能は動作停止状態となりますが , MSVE
ビット (CSVCR の bit3) の設定値は保持されます。このため , メインクロックモードへ
の遷移後 , メイン発振安定待ち時間を経過すれば監視機能は有効となります。
612
第 25 章 クロックスーパバイザ
■ STOP モード
STOP モードでは , CR 発振動作およびメイン / サブ発振監視機能は自動的に停止しま
す。CSVCR の対応する動作許可ビット (RCE, MSVE, SSVE) はその設定値を保持する
ため , デバイスが STOP モードから復帰すると動作を再開します。
この場合 CR 発振は , STOP モードからの復帰後直ちに動作を再開します。
メイン発振監視機能は , メイン発振安定待ち時間経過後 , 動作を再開します。STOP モー
ドからの復帰後にメイン発振が停止していると , CR 発振クロックへと置き換えられま
す。
サブ発振監視機能は , CR 発振クロックにより確保された待ち時間経過後 , 動作を再開
します。
CR 発振動作と発振監視機能に対応するビットが "0" に設定されている場合は , STOP
モードからの復帰後も動作停止のままです。
■ クロックスーパバイザリセットの確認
MCU のリセット要因がクロックスーパバイザリセットによるものかを確認するため
に , リセット要因レジスタ (RSRR) の INIT ビットと CSVCR の MM ビット , SM ビット
をソフトウェアで読み出してください。表 25.3-1 に各フラグの値とリセット要因を示
します。
表 25.3-1 MCU のリセット要因
レジスタ
RSRR
CSVCR
HWDCS
アドレス
000480H
0004ADH
0005FDH
ビット
INIT
MM
SM
CPUF
ビット位置
bit7
bit6
bit5
bit0
1
1
X
0
メイン発振停止
1
X
1
0
サブ発振停止
1
0
0
1
ハードウェア
ウォッチドッグ
1
0
0
0
外部 INIT 入力
リセット要因 *
*: ハードウェアウォッチドッグリセット , その他のリセット要因に関しては , それ
ぞれ対応する章を参照してください。
613
第 25 章 クロックスーパバイザ
614
第 26 章
フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能 ,
および動作について説明します。
26.1 フラッシュメモリの概要
26.2 フラッシュメモリのレジスタ
26.3 フラッシュメモリの動作説明
26.4 フラッシュメモリ自動アルゴリズム
26.5 フラッシュメモリ書込み / 消去の詳細説明
26.6 ワイルドレジスタ
26.7 フラッシュメモリプログラミングの注意事項
615
第 26 章 フラッシュメモリ
26.1
フラッシュメモリの概要
本シリーズには , 512K バイト (MB91F273(S)/MB91F278(S)) のフラッシュメモリが
内蔵されています。
内蔵フラッシュメモリは , 3.3 V 単一電源にて , FR-CPU によるセクタ単位での消去 ,
全セクタ一括消去 , およびハーフワード (16 ビット ) 単位での書込みが可能です。
■ フラッシュメモリの概要
内蔵の 3.3 V 動作フラッシュメモリです。このフラッシュメモリは , 当社フラッシュメ
モリ製品 MBM29LV400C と同等の機能を持ち ( ただし , 容量 , セクタ構成が異なりま
す ) , ROM ラ イ タ に よ る デ バ イ ス 外 部 か ら の 書 込 み も 可 能 で す。本 書 と 併 せ て
「MBM29LV400C データシート」もご参照ください。
また , MBM29LV400C 相当の機能に加え , FR-CPU の内蔵 ROM として使用する場合に
は , ワード (32 ビット ) 単位での命令 / データ読出しが可能であり , デバイスの高速動
作に寄与します。
本シリーズでは , 内蔵フラッシュメモリと FR-CPU インタフェース回路の組合せにより ,
以下の機能を実現します。
• CPU のプログラム / データ格納用メモリとして機能
( 以下 , CPU モードと表記 )
- ROM として使用する際は 32 ビットバス幅でアクセス可能
- CPU の命令動作による読出し / 書込み / 消去
( 自動プログラムアルゴリズム *)
• 単体フラッシュメモリ製品の MBM29LV400C 相当の機能
( 以下 , フラッシュモードと表記 )
- ROM ライタによる読出し / 書込み / 消去
( 自動プログラムアルゴリズム *)
ここでは , FR-CPU から本フラッシュメモリを使用する場合について記載しています。
ROM ライタから本フラッシュメモリを使用する場合の詳細については , 別途 ROM ラ
イタの取扱説明書を参照してください。
*: 自動プログラムアルゴリズム = Embedded AlgorithmTM
616
第 26 章 フラッシュメモリ
■ フラッシュメモリのブロックダイヤグラム
図 26.1-1 に , フラッシュメモリのブロックダイヤグラムを示します。
図 26.1-1 フラッシュメモリのブロックダイヤグラム
RDY/BUSYX
立上り検出
制御信号発生
RESETX
BYEX
OEX
フラッシュメモリ
WEX
RDY
WE
バス制御信号
CEX
FA18~FA0 DI15~DI0 DO15~DO0
アドレスバッファ
データバッファ
FA18~FA0
FD31~FD0
FR F-bus (命令/データ)
■ フラッシュメモリのメモリマップ
フラッシュメモリのアドレスマッピングはフラッシュモードと CPU モードでは異なり
ます。図 26.1-2 に , 各モードでのフラッシュメモリのメモリマップを示します。
図 26.1-2 フラッシュメモリのメモリマップ (MB91F273(S)/MB91F278(S))
Flash memory mode
CPUモード
0000_0000H
I/O など
0008_0000H
0008_0000H
32ビット
512Kバイト
Flash
0010_0000H
8ビット/16ビット
Flash
512Kバイト
000F_FFFFH
FFFF_FFFFH
617
第 26 章 フラッシュメモリ
■ フラッシュメモリのセクタアドレス表
● フラッシュメモリのセクタマップ (512K バイト )
• ハーフワード読出し / 書込みモード , バイト読出しモード
15
0
Flash
モード
BFFFFH
BC000H
CPU
モード
FFFFCH
F8000H
Sector 6
16 K バイト
Sector 5
8 K バイト
BBFFFH
BA000H
Sector 4
8 K バイト
Sector 3
15
0
Flash
モード
FFFFFH
FC000H
CPU
モード
FFFFEH
F8002H
Sector 13
16 K バイト
F7FFCH
F4000H
Sector 12
8 K バイト
FBFFFH
FA000H
F7FFEH
F4002H
B9FFFH
B8000H
F3FFCH
F0000H
Sector 11
8 K バイト
F9FFFH
F8000H
F3FFEH
F0002H
32 K バイト
B7FFFH
B0000H
EFFFCH
E0000H
Sector 10
32 K バイト
F7FFFH
F0000H
EFFFEH
E0002H
Sector 2
64 K バイト
AFFFFH
A0000H
DFFFCH
C0000H
Sector 9
64 K バイト
EFFFFH
E0000H
DFFFEH
C0002H
Sector 1
64 K バイト
9FFFFH
90000H
BFFFCH
A0000H
Sector 8
64 K バイト
DFFFFH
D0000H
BFFFEH
A0002H
Sector 0
64 K バイト
8FFFFH
80000H
9FFFCH
80000H
Sector 7
64 K バイト
CFFFFH
C0000H
9FFFEH
80002H
• ワード (32 ビット ) 読出しモード
31
618
16
15
0
CPU モード
Sector 6
16 K バイト
Sector 13
16 K バイト
FFFFFH
F8000H
Sector 5
8 K バイト
Sector 12
8 K バイト
F7FFFH
F4000H
Sector 4
8 K バイト
Sector 11
8 K バイト
F3FFFH
F0000H
Sector 3
32 K バイト
Sector 10
32 K バイト
EFFFFH
E0000H
Sector 2
64 K バイト
Sector 9
64 K バイト
DFFFFH
C0000H
Sector 1
64 K バイト
Sector 8
64 K バイト
BFFFFH
A0000H
Sector 0
64 K バイト
Sector 7
64 K バイト
9FFFFH
80000H
第 26 章 フラッシュメモリ
26.2
フラッシュメモリのレジスタ
フラッシュメモリで使用するレジスタの構成および機能について説明します。
■ フラッシュメモリのレジスタ概要
フラッシュメモリのレジスタには , 以下の 2 種類があります。
• FLCR:フラッシュコントロール / ステータスレジスタ (CPU モード )
• FLWC:ウェイトレジスタ
FLCR
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R/W
−
R/W
−
R/W
−
R
RDY
R
−
R/W
−
R/W
−
R/W
01X0X000B
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
−
R
−
R/W
FAC1
R/W
FAC0
R/W
−
R/W
WTC2
R/W
WTC1
R/W
WTC0
R/W
00000011B
FLWC
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
619
第 26 章 フラッシュメモリ
26.2.1
フラッシュコントロール / ステータスレジスタ (FLCR)
フラッシュメモリの動作状態を示すレジスタです。フラッシュメモリへの書込み制
御などを行います。CPU モードでのみアクセスすることが可能です。
本レジスタは , リードモディファイライト系命令ではアクセスしないでください。
■ フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成
フラッシュコントロール / ステータスレジスタ (FLCR) のビット構成は , 以下のとおり
です。
FLCR
bit7
−
R/W
bit6
−
R/W
bit5
−
R/W
bit4
bit3
−
R
RDY
R
bit2
−
R/W
bit1
−
R/W
bit0
初期値
−
R/W
01X0X000B
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
[bit7 ∼ bit5] Reserved:予約ビット
予約ビットです。
必ず "011B" を設定してください。
[bit4] Reserved:予約ビット
予約ビットです。
リセットで "0" に初期化されます。
[bit3] RDY:レディ
自動アルゴリズム ( 書込み / 消去 ) の動作状態を表示します。
本ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお
り, 新たな書込みまた消去コマンドを受け付けることはできません。
また, フラッシュ
メモリアドレスからのデータ読出しはできません。
読み出したデータはフラッシュメモリのステータスを示します。
RDY
機能
0
書込み / 消去動作中で , データの読出しや書込み / 消去コマンドの受
付けはできません。
1
データの読出しおよび書込み / 消去コマンドの受付けが可能です。
• リセット時に初期化されません ( その時点でのフラッシュメモリの状態に従いま
す)。
• 読出しのみ可能です。書込みは本ビット値に影響を与えません。
[bit2] Reserved:予約ビット
予約ビットです。
必ず "0" を設定してください。
620
第 26 章 フラッシュメモリ
[bit1] WE:書込み許可
CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込みを制御
します。
本ビットが "0" の間は , フラッシュメモリへのデータおよびコマンドの書込みはす
べて無効になります。
本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有
効となり , 自動アルゴリズムの起動が可能となります。
本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズム ( 書込み / 消去 ) が
停止していることを確認してから行ってください。
RDY ビットが "0" の間は , 本ビッ
トの値を書き換えることができません。
なお , フラッシュモードにおいては , 本ビットの状態にかかわらず書込み動作が有
効となります。
WE
機能
0
フラッシュメモリへの書込み禁止 [ 初期値 ]
1
フラッシュメモリへの書込み許可
• リセット時には "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit0] Reserved:予約ビット
予約ビットです。
必ず "0" を設定してください。
621
第 26 章 フラッシュメモリ
26.2.2
ウェイトレジスタ (FLWC)
ウェイトレジスタ (FLWC) は , CPU モードにおいてフラッシュメモリアクセスの
ウェイト制御を行います。
■ ウェイトレジスタ (FLWC) のビット構成
ウェイトレジスタ (FLWC) のビット構成は , 以下のとおりです。
FLWC
bit7
−
R
bit6
bit5
bit4
−
R/W
FAC1
R/W
FAC0
R/W
bit3
bit2
bit1
bit0
初期値
−
R/W
WTC2
R/W
WTC1
R/W
WTC0
R/W
00000011B
R/W :リード / ライト可能
R
:リードオンリ
[bit7, bit6] Reserved:予約ビット
予約ビットです。
必ず "00B" を設定してください。
[bit5, bit4] FAC1, FAC0:アクセス制御ビット
Flash 制御の内部パルス生成を制御するための設定ビットです。これらのビットの
設定により , ATDIN/EQIN パルスの幅を設定することができます。
FAC1
FAC0
ATDIN
0
0
0.5 clock
1.0 clock
0
1
1.0 clock
1.5 clock
1
0
1.5 clock
2.0 clock
1
1
2.0 clock
2.5 clock
[bit3] Reserved:予約ビット
予約ビットです。
必ず "0" を設定してください。
622
EQIN
[ 初期値 ]
第 26 章 フラッシュメモリ
[bit2 ∼ bit0] WTC2, WTC1, WTC0:ウェイトサイクルビット
WTC2 WTC1 WTC0
ウェイト
サイクル
読出し
書込み
0
0
0
-
設定禁止
設定禁止
0
0
1
1
32 MHz まで可能
設定禁止
0
1
0
2
32 MHz まで可能
設定禁止
0
1
1
3
32 MHz まで可能
32 MHz まで可能
1
0
0
4
設定禁止
設定禁止
1
0
1
5
設定禁止
設定禁止
1
1
0
6
設定禁止
設定禁止
1
1
1
7
設定禁止
設定禁止
[ 初期値 ]
• リセット時 , "011B" に初期化されます。
• FAC1, FAC0 ビットで設定されたサイクルを超えないように設定してください。
• 初期値は書込みアクセス用に設定されています。読出しのみの場合 (FLCR の WE
ビットが "0") は , 設定を高速のもの (WTC[2:0] =001B または 010B) にすることが
できます。
623
第 26 章 フラッシュメモリ
26.3
フラッシュメモリの動作説明
フラッシュメモリの動作について説明します。
■ フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モード:
ワード (32 ビット ) 長データを一括で読み出すことができますが , 書込みはできませ
ん。
• プログラミングモード:
ワード (32 ビット ) 長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長
での書込みが可能になります。
■ FR-CPU ROM モード (32 ビット , 読出しのみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括
読出しが可能となりますが , Flash への書込み , 自動アルゴリズムの起動はできません。
• モードの指定方法
- FLCR レジスタの WE ビットが "0" のとき , 本モードとなります。
- CPU 動作時でのリセット解除後は常に本モードになります。
- CPU 動作時以外では本モードにすることができません。
• 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で
読み出します。
• 制限事項
- ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
- 本モードでは , フラッシュメモリへのコマンド / データともに書込みはできませ
ん。
■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み可能 )
データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア
クセスは不可能ですので , 本モードで動作している間はフラッシュメモリ上のプログ
ラムは実行が不可能となります。
• モードの指定方法
- FLCR レジスタの WE ビットが "1" のとき本モードとなります。
- CPU 動作時でのリセット解除後は WE ビットが "0" になっています。本モードに
するためには "1" を書き込んでください。再度 "0" を書き込むか , またはリセッ
トの発生により WE ビットが "0" になると ROM モードに戻ります。
- FLCR レジスタの RDY ビットが "0" の期間は WE ビットを書き換えることができ
ません。RDY ビットが "1" になったことを確認してから WE ビットを書き換えて
ください。
624
第 26 章 フラッシュメモリ
• 動作内容
- フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長デー
タを一括で読み出します。
- フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動すること
ができます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込み
が可能となります。自動アルゴリズムの詳細については , 「26.4 フラッシュメモ
リ自動アルゴリズム」を参照してください。
• 制限事項
- ROM ライタ書込み時とはアドレスの与え方 , およびエンディアンが異なります。
- 本モードではワード (32 ビット ) 長でデータを読み出すことを禁止します。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動実行アルゴリズムを起動した場合には , 内部レ
ディ/ビジー信号 (RDY/BUSYX) により自動実行アルゴリズムの動作状態を知ることが
できます。このレディ / ビジー信号のレベルは FLCR レジスタの RDY ビットとして読
むことができます。
RDY ビットが "0" の期間は , 自動アルゴリズムによる書込み , または消去が行われてお
り , 新たな書込み , または消去コマンドを受け付けることはできません。また , フラッ
シュメモリアドレスからのデータ読出しはできません。
RDY ビットが "0" の期間に読み出したデータは , フラッシュメモリのステータスを示
すハードウェアシーケンスフラグとなっています。
625
第 26 章 フラッシュメモリ
26.4
フラッシュメモリ自動アルゴリズム
フラッシュメモリ自動アルゴリズムのコマンドシーケンス , 実行状態の確認方法 , お
よびフラッシュメモリ書込み / 消去の詳細を説明します。
■ フラッシュメモリ自動アルゴリズムの概要
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット , 書込
み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と再開の
制御が可能です。
626
第 26 章 フラッシュメモリ
コマンドシーケンス
26.4.1
自動アルゴリズムを起動するためのコマンドシーケンスについて説明します。
■ 自動アルゴリズムのコマンドシーケンス
自動アルゴリズムを起動するには , フラッシュメモリに対して 1 ∼ 6 回のハーフワード
(16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。
不正なアドレスとデータを書き込んだり , 誤った順番でアドレスとデータを書き込ん
だりすると , フラッシュメモリはリードモードにリセットされます。
表 26.4-1 に , フラッシュメモリの書込み / 消去に使用するコマンドの一覧を示します。
FR-CPU により書込みを行う場合 , 書込みデータは , ハーフワード (16 ビット ) データ
で行ってください ( アドレスは CPU モード時のアドレスを記載してあります ) 。
表 26.4-1 コマンドシーケンス表
バス
コマンド
ライト
シーケンス アクセス
1st バスライト
サイクル
2nd バスライト
サイクル
3rd バスライト
サイクル
4th バスライト
サイクル
アドレス
データ
アドレス
データ
アドレス
データ
アドレス
データ
5th バスライト
サイクル
6th バスライト
サイクル
アドレス データ アドレス データ
読出し /
リセット
1
XXXXH
F0H
−
−
−
−
−
−
−
−
−
−
読出し /
リセット
4
D5557H
AAH
CAAABH
55H
D5557H
F0H
RA
RD
−
−
−
−
書込み
プログラム
4
D5557H
AAH
CAAABH
55H
D5557H
A0H
PA
PD
−
−
−
−
チップ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
D5557H
AAH
CAAABH
55H
D5557H
10H
セクタ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
D5557H
AAH
CAAABH
55H
SA
30H
セクタ消去一時停止 アドレス "FXXXXXH" データ (XXB0H) の入力で , セクタ消去中の消去一時停止
セクタ消去再開
アドレス "FXXXXXH" データ (XX30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始
RA:読出しアドレス
PA:書込みアドレス
SA:セクタアドレス
RD:読出しデータ
■ リード ( 読出し ) / リセットコマンド
フラッシュメモリを読出し / リセットモードにセットします。フラッシュメモリは , ほ
かのコマンドが入力されるまで読出し状態を保ちます。フラッシュメモリは , 電源投入
時自動的に読出し / リセットモードにセットされます。この場合は , データ読出しコマ
ンドは必要ありません。
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。
627
第 26 章 フラッシュメモリ
■ プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ
イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし
て最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は , フラッシュメモリはそれ以上
の外部よりの制御を必要としません。
フラッシュメモリは , 自動的に内部で作られた適切な書込みパルスを発生し , 書き込ま
れたセルのマージンを検証します。自動書込み動作は , データポーリング機能により ,
bit7 のデータがこのビットに書き込んだデータと一致したとき終了し (「26.4.2 自動ア
ルゴリズム実行状態の確認」の「■ ハードウェアシーケンスフラグ」参照 ) , この時点
で読出しモードに戻ってこれ以上書込みアドレスは受け付けなくなります。この結果 ,
フラッシュメモリはこの時点で次の有効アドレスを要求します。このようにデータ
ポーリングは , メモリが書込み中であることを示します。
書込み中はフラッシュメモリに書き込まれたすべてのコマンドが無視されます。書込
み中にハードウェアリセットが起動された場合は , 書き込んでいるアドレスのデータ
は保証されません。
書込みはどのようなアドレスの順番でも , またセクタの境界を越えても可能です。
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデータ
"1" を書き込むと , データ・ポーリングアルゴリズムにより , 素子が不良と判定されるか ,
あるいは見かけ上データ "1" が書き込まれたように見えるかのどちらかです。しかし ,
リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみ
が "0" データを "1" データにすることができます。
■ チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に 2 つの
" アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行に際して , フラッシュメモリは自動的にすべてのセルを
消去する前に "0" のパターンに書き込んで検証します ( プリプログラム ) 。この動作中
には , フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書込みで開始され , bit7 が "1" になったときに終了
し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セクタ
消去時間×全セクタ数+チップ書込み時間 ( プリプログラム ) 」となります。
628
第 26 章 フラッシュメモリ
■ セクタ消去
セクタ消去は , 6 回のアクセスで行われます。2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドを書込み , その後さらに 2 つの " アンロック " サイク
ルが続いて 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始
まります。
最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間中 , 次のセクタ消去
コマンドの受付けが可能です。
複数のセクタ消去は, 前述したような6つのバスサイクルを書き込むことで同時に受付
け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去
コマンド (30H) を引き続き書き込むことで行います。
最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間終了により , セクタ
消去が開始されます。すなわち , 複数のセクタを同時に消去する場合には , 次の消去セ
クタをそれぞれ 50 µs 以内に入力する必要があり , それ以降ではコマンドが受け付けら
れないことがあります。引き続くセクタ消去コマンドが有効かどうかは bit3 にてモニ
タ可能です (「26.4.2 自動アルゴリズム実行状態の確認」の「■ ハードウェアシーケ
ンスフラグ」参照 ) 。
タイムアウト中のセクタ消去コマンド , あるいは消去一時停止以外のいかなるコマン
ドも読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そ
のセクタを再度消去することにより消去が完了します。セクタ消去バッファへのセク
タアドレス入力は , セクタのどのような組合せや数でも実行可能です。
セクタ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。フラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行い
ます ( プリプログラム ) 。また , セクタ消去中はほかの消去されないセクタは何の影響
も受けません。これらの動作中において , フラッシュメモリは外部からの制御は必要と
しません。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50 µs のタイムアウト期間
の後に開始され , bit7 のデータが "1" になったとき終了し , フラッシュメモリは読出し
モードに戻ります。ほかのコマンドは無視されます。
データポーリングは消去されたセクタ内のどのアドレスでも働きます。複数セクタ消
去時間は「 ( セクタ消去時間+セクタ書込み時間 ( プリプログラム ) ) ×消去セクタ数」
となります。
629
第 26 章 フラッシュメモリ
■ 消去一時停止
消去一時停止コマンドは , ユーザがセクタ消去中にフラッシュメモリの自動アルゴリ
ズムを一時停止して消去中でないセクタからのデータ読出しと書込みを可能にするも
のです。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視
されます。
消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイムアウト
期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト期間中に
入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開コマンド
が書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンドの入力時
のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると , フラッシュメモリが消去
動作を停止するのに最大 20 µs の時間がかかります。フラッシュメモリが消去一時停止
モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ
ます。消去しているセクタのアドレスを入力し bit6 と bit7 の読出し値をモニタするこ
とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停
止コマンドの書込みは無視されます。
消去動作が停止したとき , フラッシュメモリは消去一時停止読出しモードになります。
このモードでのデータの読出しはデータが消去一時停止していないセクタに有効とな
りますが , それ以外は標準的な読出しと同じです。消去一時停止読出し中 , その消去一
時停止したセクタからの連続的な読出しに対しては , bit2 はトグル動作をします。
消去一時停止読出しモードに入った後 , ユーザは書込みのコマンドシーケンスを書き
込むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時
停止書込みモードとなります。このモードでの書込みは , データが消去一時停止してい
ないセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時
停止書込みモード中 , その消去一時停止したセクタからの連続的な読出しに対しては ,
bit2 はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。
使用上の注意として , bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込
みアドレスに対して読出しを行わなければなりません。
セクタ消去動作を再開するためには , 再開コマンド (30H) を入力する必要があります。
この時点でさらに再開コマンドを入力しても無視されます。他方 , 消去一時停止コマン
ドはフラッシュメモリが消去再開した後に入力することができます。
630
第 26 章 フラッシュメモリ
自動アルゴリズム実行状態の確認
26.4.2
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち
ます。
この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内蔵フ
ラッシュメモリの動作状態の確認ができます。
■ レディ / ビジー信号 (RDY/BUSYX)
フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と
して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。
このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ
シュメモリステータスレジスタの RDY ビットとして読み出すことが可能です。
RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込み , あるいは消去動作中
です。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読
出し値が "1" のときフラッシュメモリは読出し / 書込み , あるいは消去動作待ちの状態
です。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは , 以下のとおりです。
bit
ハーフワード読出し時
15
8
(未定義)
0
ハードウェアシーケンスフラグ
bit
バイト読出し時
(奇数アドレスのみ)
7
7
0
ハードウェアシーケンスフラグ
(ハーフワードバイトアクセス) DPOLL TOGGLE TLOVER 未定義 SETIMR TOGGL2 未定義
未定義
<注意事項>
ワード読出しは禁止です。FR-CPU プログラミングモードのみ使用してください。
ハードウェアシーケンスフラグは , 自動アルゴリズム実行中にフラッシュメモリの任
意のアドレス (バイトアクセス時は奇数アドレス) を読み出すことによりデータとして
取得できます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズム
の状態を示します。
なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ
い。
631
第 26 章 フラッシュメモリ
表 26.4-2 に , ハードウェアシーケンスフラグ状態一覧を示します。
表 26.4-2 ハードウェアシーケンスフラグ状態一覧
状態
DPOLL
TOGGLE
TLOVER
SETIMR
TOGGL2
自動書込み動作
反転データ
0
トグル
0
0
1
トグル
0
1
トグル
消去一時停止
読出し
( 消去一時停
止しているセ
クタ )
1
1
0
0
トグル *1
消去一時停止
読出し
( 消去一時停
止していない
セクタ )
データ
データ
データ
データ
データ
消去一時停止
書込み
( 消去一時停
止しているセ
クタ )
反転データ
トグル *2
1
0
1 *3
反転データ
0
トグル
1
0
1
トグル
1
1
*4
0
トグル
1
1
*4
自動消去動作
実行中
タイム
リミット
超過
消去 /
一時停止
モード
自動消去動作
消去一時停止モード
消去一時停止時の
書込み動作
*1:消去一時停止セクタからの連続的な読出し時に TOGGLE2 はトグル動作をします。
*2:どんなアドレスからの連続的な読出し時でも , TOGGLE はトグル動作をします。
*3:消去一時停止書込み中 , その書込みされているアドレスの読出し時は , TOGGL2 は "1" となりま
す。しかし , 消去一時停止しているセクタからの連続的な読出し時は , TOGGL2 はトグル動作を
します。
*4:TLOVER が '1' のとき ( タイムリミット超過 ) , 書込み / 消去中セクタへの連続的な読み出しに対
して , TOGGL2 はトグル動作をし , 他のセクタへの読出しに対してはトグルしません。
表中の各ビットは , 以下の内容を示します。
632
[bit7] :DPOLL
:データポーリング
[bit6] :TOGGLE
:トグルビット
[bit5] :TLOVER
:タイムリミット超過
[bit3] :SETIMR
:セクタ消去タイマ
[bit2] :TOGGL2
:トグルビット 2
第 26 章 フラッシュメモリ
以下に , それぞれのビットについて簡単に説明します。
[bit7] DPOLL: データポーリングフラグ
データポーリングフラグは , 自動アルゴリズム実行が進行中もしくは終了状態であ
ることをデータポーリング機能によって知らせるためのフラグです。
• 書込み動作時:
自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはア
ドレスの指す番地にアクセスせず , 最後に書き込まれたデータの bit7 の反転デー
タを出力します。
自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア
ドレスの指す番地の読出し値の bit7 を出力します。
• チップ / セクタ消去動作時:
消去 / セクタ消去アルゴリズム実行中にリードアクセスすると , セクタ消去時は
現在消去しているセクタから , チップ消去時はアドレスの指す番地に関係なく ,
フラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。
• セクタ消去一時停止時:
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの
指す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければア
ドレスの指す番地の読出し値の bit7 を出力します。
トグルビットフラグと共に参照することで , 現在セクタ一時停止状態であるか ,
どのセクタが消去中であるかの判定が可能です。
<注意事項>
自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ
の読出しは , データポーリングフラグの終了を受けてほかのビットの出力が可能となりま
す。
このため自動アルゴリズム終了後のデータの読出しは , データポーリング終了を確認した
リードアクセスの次に行うようにしてください。
[bit6] TOGGLE: トグルビットフラグ
トグルビットフラグはデータポーリングフラグと同様に , 主に自動アルゴリズム実
行が進行中または終了状態であることを , トグルビット機能によって知らせるため
のフラグです。
• 書込み / チップ • セクタ消去時:
自動書込みアルゴリズムおよびチップ•セクタ消去アルゴリズム実行中に連続した
リードアクセスを行うと , フラッシュメモリはアドレスの指す番地にアクセスせ
ず , 読出しごとに "1" と "0" を交互に出力するトグル状態を出力します。
自動書込みアルゴリズムおよびチップ/セクタ消去アルゴリズム終了時に連続した
リードアクセスを行うと , フラッシュメモリは bit6 のトグル動作を中止し , アドレ
スの指す番地の読出し値の bit6 (DATA:6) を出力します。
• セクタ消去一時停止時:
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの
指す番地が消去中のセクタに属するならば , "1" を出力します。
消去中のセクタに属さないのであれば , アドレスの指す番地の読出し値の bit6
(DATA:6) を出力します。
633
第 26 章 フラッシュメモリ
<参考>
書込みの際, 書き込もうとしているセクタが書換え保護されているセクタの場合は, 約2 µs
のトグル動作をした後 , データを書き換えることなくトグル動作を終了します。消去の際 ,
選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約 100 µs のト
グル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。
[bit5] TLOVER: タイミングリミット超過フラグ
タイミングリミット超過フラグは , 自動アルゴリズムの実行がフラッシュメモリ内
部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラグで
す。
• 書込み / チップ • セクタ消去時:
書込みまたはチップ • セクタ消去自動アルゴリズム起動後にリードアクセスする
と , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えて
しまっている場合は "1" を出力します。
これは , 自動アルゴリズムが実行中か終了状態にあるかとは無関係ですので , 書
込み / 消去が成功したか失敗したかの判定が可能です。すなわち , このフラグが
"1" を出力したとき , データポーリング機能もしくはトグルビット機能により自
動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断することが
できます。
例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうと
するとフェイルが発生します。この場合フラッシュメモリはロックされ , 自動ア
ルゴリズムは終了しません。まれに "1" が書き込めたように , 正常終了する場合も
あります。したがって , データポーリングフラグから有効なデータが出力されま
せん。またトグルビットフラグはトグル動作を中止せず , タイムリミットを超え ,
タイミングリミット超過フラグは "1" を出力します。この状態はフラッシュメモ
リが不良ではなく , 正しく使用されなかったということを表しています。この状
態が発生したときは , リセットコマンドを実行してください。
634
第 26 章 フラッシュメモリ
[bit3] SETIMR: セクタ消去タイマフラグ
セクタ消去タイマフラグは , セクタ消去コマンド起動後セクタ消去ウェイト期間中
であるかどうかを知らせるフラグです。
• セクタ消去動作時:
セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマン
ドを発行したセクタのアドレス信号の指す番地にアクセスせず , セクタ消去ウェ
イト期間中であれば "0" を , セクタ消去ウェイト期間を超えてしまっている場合
は "1" を出力します。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示
している場合 , このフラグが "1" であれば内部で制御される消去が始まっていま
す。続けてのセクタ消去コードの書込み , または消去一時停止以外のコマンドは ,
消去が終了されるまで無視されます。
このフラグが "0" であればフラッシュメモリは , 追加のセクタ消去コードの書込
みを受け付けます。このことを確認するために , 続くセクタ消去コードの書込み
に先立ちこのフラグの状態をチェックすることをお奨めします。もし 2 回目の状
態チェックで "1" であったなら追加セクタの消去コードは受け付けられてない可
能性があります。
• セクタ消去動作時
セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの
指す番地が , 消去中のセクタに属するならば "1" を出力します。消去中のセクタ
に属さないのであれば , アドレスの指す番地の読出し値の bit3 (DATA:3) を出力
します。
[bit2] TOGGL2: トグルビットフラグ 2
このトグルビットフラグは bit6 のトグルビットに加えて , フラッシュメモリが自動
消去動作中であるか , 消去一時停止中であるかをトグルビット機能によって知らせ
るためのフラグです。
• 書込み / チップ • セクタ消去時:
トグルビット (bit2) と同様のトグル動作をします。
• セクタ消去一時停止時
フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止しているセ
クタから連続して読出しを行うと , bit2 はトグル動作をします。
消去一時停止書込みモードのときは , 消去一時停止していないセクタのアドレス
から連続して読出しを行うと , bit2 は "1" が読み出されます。
bit6 は bit2 と異なり , 通常の書込み , 消去 , または消去一時停止書込み動作中にの
みトグル動作をします。
<参考>
bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 同時に使われます (bit2 はト
グル動作をするが bit6 はトグル動作をしない ) 。さらに bit2 は消去しているセクタの検出
にも使われます。フラッシュメモリが消去動作のときは , bit2 は消去しているセクタから
の読出しならばトグル動作をします。
635
第 26 章 フラッシュメモリ
26.5
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , およびセクタ消去再開
のそれぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の概要
フラッシュメモリは , 以下の動作がコマンドシーケンスのパスへのライトサイクルを
行うことで自動アルゴリズムを実行することが可能です。
• 読出し / リセット
• 書込み
• チップ消去
• セクタ消去
• セクタ消去一時停止
• 消去再開
それぞれのパスへのライトサイクルは必ず続けて行う必要があります。
また , 自動アルゴリズムはデータポーリング機能などで終了時を確認できます。正常終
了時は読出し / リセット状態に戻ります。
636
第 26 章 フラッシュメモリ
26.5.1
読出し / リセット状態
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリの読出し / リセット方法
フラッシュメモリを読出し/リセット状態にするには, コマンドシーケンス表の読出し/
リセットコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能
です。
読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。
読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM
と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに
このコマンドは必要ありません。何らかの理由でコマンドが正常に終了しなかったと
きなど , 自動アルゴリズムを初期化する場合に , 主にこのコマンドを使用します。
637
第 26 章 フラッシュメモリ
26.5.2
データ書込み
書込みコマンドを発行し , フラッシュメモリにデータ書込みを行う手順について説
明します。
■ フラッシュメモリのデータ書込み方法
フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表の書込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実
行可能です。
4 サイクル目に目的のアドレスのデータ書込みが終了した時点で , 自動アルゴリズムが
起動され自動書込みが開始されます。
■ アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で
す。奇数アドレスを指定すると正しく書き込むことができません。すなわち , 偶数アド
レスへのハーフワード単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが ,
1 回の書込みコマンドによって書き込まれたデータは 1 ハーフワードのみです。
■ データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。
データ "0" にデータ "1" を書き込むと , データポーリングアルゴリズムまたはトグル動
作が終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミ
ングリミット超過フラグがエラーと判定するか , あるいは見かけ上データ "1" が書き込
まれたように見えるかのどちらかとなります。ただし , 読出し / リセット状態でデータ
を読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすることが
できます。
自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意
が必要です。
■ フラッシュメモリ書込み手順
図 26.5-1 に , フラッシュメモリ書込みの手順の例を示します。
ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ
ズムの状態判別が可能です。ここでは , 書込み終了の確認にデータポーリングフラグ
(DPOLL) を用いています。
フラグチェックのために読み込むデータは最後に書込みを行ったアドレスからの読込
みとなります。
データポーリングフラグ (DPOLL) は , タイミングリミット超過フラグ (TLOVER) と同
時に変わるので , たとえタイミングリミット超過フラグ (TLOVER) が "1" であっても
データポーリングフラグビット (DPOLL) は再チェックする必要があります。
トグルビットフラグ (TOGGLE) でも同様にタイミングリミット超過フラグビット
(TLOVER) が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ
(TOGGLE) を再チェックする必要があります。
638
第 26 章 フラッシュメモリ
図 26.5-1 フラッシュメモリ書込み手順の例
書込み開始
FLCR:WE(bit5)により
フラッシュ書込み許可
書込みコマンドシーケンス
AAH
D5557H
CAAABH
55H
D5557H
A0H
書込みアドレス
書込みデータ
内部アドレスリード
データポーリング
(DPOLL)
次アドレス
Data
Data
0
タイミングリミット
(TLOVER)
1
内部アドレスリード
Data
データポーリング
(DPOLL)
Data
書込みエラー
最終アドレス
NO
YES
FLCR:WE(bit5)により
フラッシュ書込み禁止
ハードウェアシーケンス
フラグによる確認
書込み完了
639
第 26 章 フラッシュメモリ
26.5.3
データ消去 ( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データ消去を行う手順につい
て説明します。
■ フラッシュメモリのデータ消去 ( チップ消去 ) 方法
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表のチッ
プ消去コマンドをフラッシュメモリ内の対象セクタに続けて送ることで実行可能で
す。
チップ消去コマンドは 6 回のバス動作で行われます。
6 サイクル目の書込みが完了した時点でチップ消去動作が開始します。チップ消去では ,
消去前にユーザがフラッシュメモリに書込みを行う必要はありません。自動消去アル
ゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消去する前に "0" を
書き込んで検証します。
640
第 26 章 フラッシュメモリ
26.5.4
データ消去 ( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のセクタ消去を行う手順に
ついて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定す
ることも可能です。
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表のセ
クタ消去コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可
能です。
■ セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに
より 50 µs のセクタ消去ウェイトが開始されます。
複数のセクタ消去を行う場合は , 上記の処理に引き続き消去する目的のセクタ内のア
ドレスに消去コード (30H) を書き込みます。
■ 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから50 µsのセクタ消去ウェイト期間終了により消去
が開始されます。すなわち , 複数のセクタを同時に消去する場合は , 次の消去セクタの
アドレスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50 µs 以内に入
力する必要があり , それ以降では受け付けられないことがあります。
続くセクタ消去コードの書込みが有効かどうかはセクタ消去タイマ ( ハードウェア
シーケンスフラグ SETIMR) によって調べることができます。このとき , セクタ消去コ
マンドを読出しするアドレスは , 消去しようとしているセクタを指すようにします。
■ セクタ消去手順
ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アルゴリ
ズムの状態判別が可能です。図 26.5-2 に , フラッシュメモリセクタ消去の手順の例を
示します。
ここでは , 消去終了の確認にトグルビットフラグ (TOGGLE) を用いています。
フラグチェックのために読み込むデータは , 消去しようとしているセクタからの読込
みとなりますので , 注意が必要です。
トグルビットフラグ (TOGGLE) は , タイミングリミット超過フラグ (TLOVER) が "1" に
変わるのと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ
(TLOVER) が "1" であってもトグルビットフラグ (TOGGLE) は再チェックする必要が
あります。
データポーリングフラグ (DPOLL) でも同様に , タイミングリミット超過フラグ
(TLOVER) と同時に変わるので , データポーリングフラグ (DPOLL) を再チェックする
必要があります。
641
第 26 章 フラッシュメモリ
図 26.5-2 セクタ消去手順の例
消去開始
FLCR: WE (bit5)
フラッシュメモリ消去許可
1
セクタ消去タイマ値
0
消去コマンドシーケンス
D5557H
CAAABH
D5557H
D5557H
CAAABH
AAH
55H
80H
AAH
55H
消去セクタへコード入力(30H)
YES
消去セクタがほかにあるか
NO
内部アドレスリード
内部アドレスリード 1
次セクタ
内部アドレスリード 2
トグルビット(TOGGLE)
データ1 = データ2 ?
YES
NO
0
タイミングリミット
(TLOVER)
1
内部アドレスリード 1
内部アドレスリード 2
NO
トグルビット(TOGGLE)
データ1 = データ2 ?
YES
消去完了
ハードウェアシーケンス
フラグによる確認
最終セクタの消去?
YES
FLCR: WE (bit5)
フラッシュメモリ消去禁止
消去完了
642
NO
第 26 章 フラッシュメモリ
26.5.5
セクタ消去一時停止
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから , データを読み出すことが
可能です。
■ フラッシュメモリのセクタ消去一時停止方法
フラッシュメモリのセクタ消去を一時停止するには , フラッシュメモリ内に表 26.4-1
のセクタ消去一時停止コマンドを送ることで実行可能です。
セクタ消去の一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセ
クタからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書
込みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み動作中は無視されます。
セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ
クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去
ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大
20µs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セク
タ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20 µs 以上後に行ってくださ
い。
643
第 26 章 フラッシュメモリ
26.5.6
セクタ消去再開
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリのセクタ消去再開方法
一時停止したセクタ消去を再開させるには , フラッシュメモリ内に表 26.4-1 のセクタ
消去再開コマンドを送ることで実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドです。このコマンドは消去再
開コード (30H) の書込みを行うことで実施されますが , このときのアドレスはフラッ
シュメモリ領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
644
第 26 章 フラッシュメモリ
26.6
ワイルドレジスタ
ワイルドレジスタ機能とは , 内蔵 ROM のデータを任意のデータに置換する機能で
す。
置換を行うアドレスとデータの組をチャネルとよびます。本シリーズでは 2 チャネ
ル分のデータ置換が可能です。置換データはワード単位 (4 バイト ) での設定となり
ます。
本機能の詳細につきましては , 弊社担当までお問い合わせください。
645
第 26 章 フラッシュメモリ
26.7
フラッシュメモリプログラミングの注意事項
フラッシュメモリへのプログラミングについての注意事項について説明します。
■ フラッシュメモリプログラミングの注意事項
プログラムを用いてフラッシュメモリを書き換える場合 , 下記の内容にご注意くださ
い。
• フラッシュメモリ書込み中にリセットが発生すると , リセット発生時に書き込んで
いる内容は保証されません。
• フラッシュメモリ書込みモード中 (FLCR レジスタの WE=1) には , フラッシュメモ
リ上のプログラムの実行を行わないでください。さらに , 同じ条件で , フラッシュ
メモリ上に割込みベクタテーブルがある場合は , 割込みを発生させないようにして
ください。いずれの場合も , 正常な値を Flash から取り出せずにプログラムが正しく
実行されなくなります。
• フラッシュメモリに対する書込み終了の確認は , RDYフラグだけではなく , TOGGLE
フラグもご確認ください。
フラッシュメモリが不良の場合 , 書込み終了を示す RDY フラグがセットされません
ので , このフラグだけを参照すると , プログラムが無限ループに陥ります。
• フラッシュメモリ書込みモード中 (FLCR レジスタの WE=1) にはサブランモードお
よび低消費電力モードには遷移しないようにしてください。
646
第 27 章
ハードウェア
ウォッチドッグタイマ
ハードウェアウォッチドッグタイマの機能につい
て説明します。
27.1 ハードウェアウォッチドッグタイマの概要
27.2 ハードウェアウォッチドッグタイマの構成
27.3 ハードウェアウォッチドッグタイマのレジスタ
27.4 ハードウェアウォッチドッグタイマの機能
27.5 注意事項
647
第 27 章 ハードウェア ウォッチドッグタイマ
27.1
ハードウェアウォッチドッグタイマの概要
ハードウェアウォッチドッグタイマは , 内部カウンタが一定期間クリアされない場
合にリセット信号 ( 設定初期化リセット ) を発行します。
■ ハードウェアウォッチドッグタイマ
ハードウェアウォッチドッグタイマは , CPU 動作監視用のモジュールです。このタイ
マは設定初期化リセット (INIT) 後 , 直ちにカウントアップを開始します。プログラム
実行を継続させるためには一定期間内に定期的にこのタイマをクリアする必要があり
ます。無限ループに陥った場合などでカウンタが一定期間以上クリアされない場合は ,
リセット信号が発行されます。このリセット信号の幅はシステムベースクロックの 63
周期です。
<注意事項>
CPU が下記のような動作を停止するモード ( スタンバイモード ) へ遷移した場合は , 本モ
ジュールの動作も停止します。
• SLEEP モード :CPU 停止 , 周辺回路動作
• STOP モード
:CPU および周辺回路停止
• RTC モード
:CPU および RTC モジュールを除く周辺回路停止 , 発振子動作
下記条件のいずれかを満たすことにより , ハードウェアウォッチドッグタイマはクリアさ
れます。
• HWDCS レジスタの CL ビットへの "0" 書込み
• リセット
• 発振停止
• SLEEP, STOP, RTC モード , いずれかへの遷移
648
第 27 章 ハードウェア ウォッチドッグタイマ
27.2
ハードウェアウォッチドッグタイマの構成
ハードウェアウォッチドッグタイマは , 以下の 2 つの回路で構成されます。
• ウォッチドッグタイマ
• ハードウェアウォッチドッグタイマ制御レジスタ
■ ハードウェアウォッチドッグタイマのブロックダイヤグラム
図 27.2-1 ハードウェアウォッチドッグタイマのブロックダイヤグラム
CR clock
カウンタ
リセット信号
FF
クリア
RESV0
RESV0
RESV0
RESV1
CL
RESV0
RESV0
CPUF
内部バス
● ウォッチドッグタイマ
CPU 動作を監視するためのタイマです。リセット解除後は定期的にクリアしてくださ
い。
● ハードウェアウォッチドッグタイマ制御レジスタ
このレジスタにはリセットフラグとタイマのクリアビットがあります。
● リセット発行
タイマがある一定期間以上クリアされない場合 , ハードウェアウォッチドッグタイマ
モジュールは設定初期化リセット (INIT) の要因を発行します。内部リセット信号の幅
はシステムベースクロックの 63 周期となります。リセットシーケンスについての詳細
は , デバイス状態の項を参照してください。
649
第 27 章 ハードウェア ウォッチドッグタイマ
27.3
ハードウェアウォッチドッグタイマのレジスタ
ハードウェアウォッチドッグタイマ制御レジスタには , リセットフラグとウォッチ
ドッグタイマクリアビットがあります。
■ ハードウェアウォッチドッグタイマ制御レジスタ
HWDCS
bit7
bit6
bit5
bit4
RESV0 RESV0 RESV0 RESV1
R/W
R/W
R/W
R/W
bit3
CL
W
bit2
bit1
RESV0 RESV0
R/W
R/W
bit0
初期値
CPUF
R/W
00011000B
R/W :リード / ライト可能
W :ライトオンリ
[bit7 ∼ bit5] RESV0: 予約ビット
これらのビットは予約ビットです。
必ず , "000B" を設定してください。
[bit4] RESV1: 予約ビット
このビットは予約ビットです。
必ず , "1" を設定してください。
[bit3] CL: タイマクリアビット
ウォッチドッグタイマクリアビットです。
このビットに "0" を書き込むことによって , ウォッチドッグタイマはクリアされま
す。
読出し値は常に "1" です。"1" 書込みは無効です。
[bit2, bit1] RESV0: 予約ビット
これらのビットは予約ビットです。
必ず , "00B" を設定してください。
[bit0] : CPUF: CPU リセットフラグ
ウォッチドッグタイマにオーバフローが発生すると , このビットは "1" に設定され
ます。
"0" 書込みによりこのビットはクリアされます。"1" 書込みは無効です。
外部リセット入力(INIT)およびクロックスーパバイザリセットにより初期化されま
すが , 内部リセット ( ソフトウェアリセットなど ) では初期化されません。
650
第 27 章 ハードウェア ウォッチドッグタイマ
27.4
ハードウェアウォッチドッグタイマの機能
一定期間以上ウォッチドッグタイマがクリアされない場合は , 設定初期化リセット
(INIT) が発行されます。この場合 CPU のレジスタ値は保障されません。
■ ハードウェアウォッチドッグタイマの機能
リセット解除後 , 安定時間を待たずにハードウェアウォッチドッグタイマは直ちにカ
ウントアップを開始します。一定期間タイマがクリアされない場合は設定初期化リ
セット (INIT) が発行されます。
■ ハードウェアウォッチドッグタイマの周期
ハードウェアウォッチドッグタイマのビット長は 16 ビットです。CR 発振子をタイマ
のクロックとして使用しているために , その周期にはばらつきがあります。
CR 発振周期 (µs)
ウォッチドッグ周期 (ms)
Min
Typ
Max
8.7
10
11.8
569.88
655.36
771.01
651
第 27 章 ハードウェア ウォッチドッグタイマ
27.5
注意事項
ハードウェアウォッチドッグタイマの注意事項について説明します。
■ ハードウェアウォッチドッグタイマの注意事項
● ソフトウェアでの停止不可
ウォッチドッグタイマはリセット解除後 , 直ちに動作を開始します。ソフトウェアでは
カウントを停止することはできません。
● リセット抑止
ハードウェアウォッチドッグリセットを抑止するにはタイマのクリアが必要です。
ハードウェアウォッチドッグタイマ制御レジスタの CL ビットに "0" が書き込まれると
タイマはいったんクリアされ , リセットの発行が抑止されます。
● タイマの停止とクリア
CPU が動作しないモード (SLEEP モード , STOP モード , RTC モード ) ではそれらのモー
ドへの遷移前にタイマはクリアされ , カウントは停止します。
● DMA 転送中の動作
D バスモジュールの DMA 転送中は , CL ビットへの "0" 書込みはできません。したがっ
て , DMA 転送時間がウォッチドッグ周期より長い場合はリセットが発行されます。
ウォッチドッグ周期についての詳細は , 「27.4 ハードウェアウォッチドッグタイマの
機能」を参照してください。
652
付録
I/O マップ , 割込みベクタ , CPU ステートでの端子
状態 , について記載しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C 各 CPU ステートにおける端子状態
付録 D シリアル書込み ( 非同期 ) 書込み例
付録 E シリアル書込み ( 同期 ) 書込み例
653
付録
付録 A
I/O マップ
本品種に内蔵された周辺機能の各レジスタは , 付表 A-1 に示すアドレスが割り当て
られています。
■ I/O マップ
[ 表の見方 ]
アドレス
000000H
レジスタ
+0
PDR0 [R/W]B
XXXXXXXX
+1
PDR1 [R/W]B
XXXXXXXX
+2
PDR2 [R/W]B
XXXXXXXX
+3
PDR3 [R/W]B
XXXXXXXX
ブロック
T-unit
ポートデータ
レジスタ
リード/ライトアトリビュート,アクセス単位
(B:バイト,H:ハーフワード,W:ワード)
リセット後のレジスタ初期値
レジスタ名(1コラムのレジスタが4n番地,2コラムが4n+1番地…)
最左のレジスタ番地(ワードでアクセスした際は、1コラム目」の
レジスタがデータのMSB側となる)
<注意事項>
レジスタのビット値は , 以下のように初期値を表します。
"1": 初期値 "1"
"0": 初期値 "0"
"X": 初期値 "X"
"-": その位置に物理的にレジスタがありません。
"Reserved" と記載されているアドレスへのアクセスは禁止です。
654
付録 A I/O マップ
■ メモリ空間領域と周辺リソースの各レジスタの対応
付表 A-1 I/O マップ (1 / 13)
アドレス
000000H
000004H
000008H
00000CH
000010H
000014H
|
00003CH
レジスタ
+1
PDR1 [R/W] B,H
XXXXXXXX
PDR5 [R/W] B,H
XXXXXXXX
PDR9 [R/W] B,H
XXXXXXXX
PDRD [R/W] B,H
XXXXXXXX
+2
PDR2 [R/W] B,H
XXXXXXXX
PDR6 [R/W] B,H
XXXXXXXX
PDRA [R/W] B,H
------XX
PDRE [R/W] B,H
XXXXXXXX
−
−
−
−
−
−
−
000048H
EIRR0 [R/W]
ENIR0 [R/W]
00000000
00000000
DICR [R/W]
HRCL [R,R/W]
-------0
0--11111
TMRLR0 [W]
XXXXXXXX XXXXXXXX
00004CH
−
000050H
TMRLR1 [W]
XXXXXXXX XXXXXXXX
000054H
−
000058H
TMRLR2 [W]
XXXXXXXX XXXXXXXX
000040H
000044H
00005CH
000060H
000064H
000068H
00006CH
000070H
000074H
000078H
|
0000ACH
0000B0H
0000B4H
0000B8H
0000BCH
ブロック
+3
PDR3 [R/W] B,H
XXXXXXXX
PDR7 [R/W] B,H
XXXXXXXX
ポートデータレジスタ
PDRB [R/W] B,H
(PDRB ∼ PDRG は
--XXXXXX
PDRF [R/W] B,H
MB91V280 のみ )
XXXXXXXX
+0
PDR0 [R/W] B,H
XXXXXXXX
PDR4 [R/W] B,H
XXXXXXXX
PDR8 [R/W] B,H
XXXXXXXX
PDRC [R/W] B,H
XXXXXXXX
PDRG [R/W] B,H
XXXXXXXX
ELVR0 [R/W]
00000000 00000000
−
−
TMR0 [R]
XXXXXXXX XXXXXXXX
TMCSR0 [R,RW]
00000000 00000000
TMR1 [R]
XXXXXXXX XXXXXXXX
TMCSR1 [R,RW]
00000000 00000000
TMR2 [R]
XXXXXXXX XXXXXXXX
TMCSR2 [R,RW]
00000000 00000000
SSR0 [R,R/W]
RDR0/TDR0 [R/W]
00001000
00000000
BGR10 [R/W]
BGR00 [R/W]
00000000
00000000
SSR5 [R,R/W]
RDR5/TDR5 [R/W]
00001000
00000000
BGR15 [R/W]
BGR05 [R/W]
00000000
00000000
SSR6 [R,R/W]
RDR6/TDR6 [R/W]
00001000
00000000
BGR16 [R/W]
BGR06 [R/W]
00000000
00000000
−
−
SCR0 [R,R/W]
00000000
ESCR0 [R/W]
00000100
SCR5 [R,R/W]
00000000
ESCR5 [R/W]
00000100
SCR6 [R,R/W]
00000000
ESCR6 [R/W]
00000100
SMR0 [W,R/W]
00000000
ECCR0 [R,W,R/W]
000000XX
SMR5 [W,R/W]
00000000
ECCR5 [R,W,R/W]
000000XX
SMR6 [W,R/W]
00000000
ECCR6 [R,W,R/W]
000000XX
−
−
−
−
SCR1 [R,R/W]
00000000
ESCR1 [R/W]
00000100
SCR2 [R,R/W]
00000000
ESCR2 [R/W]
00000100
SMR1 [W,R/W]
00000000
ECCR1 [R,W,R/W]
000000XX
SMR2 [W,R/W]
00000000
ECCR2 [R,W,R/W]
000000XX
SSR1 [R,R/W]
00001000
BGR11 [R/W]
00000000
SSR2 [R,R/W]
00001000
BGR12 [R/W]
00000000
RDR1/TDR1 [R/W]
00000000
BGR01 [R/W]
00000000
RDR2/TDR2 [R/W]
00000000
BGR02 [R/W]
00000000
予約
外部割込み
INT0 ∼ INT7
DLY / I-Unit
リロードタイマ 0
リロードタイマ 1
リロードタイマ 2
LIN-UART0
LIN-UART5
LIN-UART6
予約
LIN-UART1
LIN-UART2
655
付録
付表 A-1 I/O マップ (2 / 13)
アドレス
0000C0H
0000C4H
0000C8H
0000CCH
0000D0H
0000D4H
0000D8H
0000DCH
0000E0H
0000E4H
0000E8H
0000ECH
0000F0H
0000F4H
0000F8H
0000FCH
レジスタ
+0
SCR3 [R,R/W]
SMR3 [W,R/W]
00000000
00000000
ESCR3 [R/W]
ECCR3 [R,W,R/W]
00000100
000000XX
SCR4 [R,R/W]
SMR4 [W,R/W]
00000000
00000000
ESCR4 [R/W]
ECCR4 [R,W,R/W]
00000100
000000XX
EIRR1 [R/W]
ENIR1 [R/W]
00000000
00000000
TCTD0 [R/W] H
00000000 00000000
TCTD1 [R/W] H
00000000 00000000
TCTD2 [R/W] H
00000000 00000000
TCTD3 [R/W] H
00000000 00000000
IPCP1 [R]
XXXXXXXX XXXXXXXX
−
−
−
−
000114H
000118H
00011CH
−
IPCP7 [R]
XXXXXXXX XXXXXXXX
000104H
000110H
−
IPCP5 [R]
XXXXXXXX XXXXXXXX
−
00010CH
−
IPCP3 [R]
XXXXXXXX XXXXXXXX
000100H
000108H
+1
−
−
OCCP1 [R/W]
XXXXXXXX XXXXXXXX
OCCP3 [R/W]
XXXXXXXX XXXXXXXX
OCS23 [R/W]
11101100 00001100
OCCP5 [R/W]
XXXXXXXX XXXXXXXX
OCCP7 [R/W]
XXXXXXXX XXXXXXXX
OCS67 [R/W]
11101100 00001100
+2
+3
SSR3 [R,R/W]
RDR3/TDR3 [R/W]
00001000
00000000
BGR13 [R/W]
BGR03 [R/W]
00000000
00000000
SSR4 [R,R/W]
RDR4/TDR4 [R/W]
00001000
00000000
BGR14 [R/W]
BGR04 [R/W]
00000000
00000000
ELVR1 [R/W]
00000000 00000000
TCCS0 [R/W] B
−
00000000
TCCS1 [R/W] B
−
00000000
TCCS2 [R/W] B
−
00000000
TCCS3 [R/W] B
−
00000000
IPCP0 [R]
XXXXXXXX XXXXXXXX
ICS01 [R/W]
−
00000000
IPCP2 [R]
XXXXXXXX XXXXXXXX
ICS23 [R/W]
−
00000000
IPCP4 [R]
XXXXXXXX XXXXXXXX
ICS45 [R/W]
−
00000000
IPCP6 [R]
XXXXXXXX XXXXXXXX
ICS67 [R/W]
−
00000000
−
−
OCCP0 [R/W]
XXXXXXXX XXXXXXXX
OCCP2 [R/W]
XXXXXXXX XXXXXXXX
OCS01 [R/W]
11101100 00001100
OCCP4 [R/W]
XXXXXXXX XXXXXXXX
OCCP6 [R/W]
XXXXXXXX XXXXXXXX
OCS45 [R/W]
11101100 00001100
000120H
|
00012CH
−
−
000130H
EIRR2 [R/W]
00000000
ENIR2 [R/W]
00000000
ELVR2 [R/W]
00000000 00000000
000134H
EIRR3 [R/W]
00000000
ENIR3 [R/W]
00000000
ELVR3 [R/W]
00000000 00000000
656
−
−
ブロック
LIN-UART3
LIN-UART4
外部割込み
INT8 ∼ INT15
フリーランタイマ 0
フリーランタイマ 1
フリーランタイマ 2
フリーランタイマ 3
インプットキャプ
チャユニット 0, 1
インプットキャプ
チャユニット 2, 3
インプットキャプ
チャユニット 4, 5
インプットキャプ
チャユニット 6, 7
予約
OCU1/OCU0
OCU3/OCU2
OCU 3-0 Ctrl.
OCU5/OCU4
OCU7/OCU6
OCU 7-4 Ctrl.
予約
外部割込み
INT16 ∼ INT23
外部割込み
INT 24 ∼ INT31
(MB91V280 のみ )
付録 A I/O マップ
付表 A-1 I/O マップ (3 / 13)
アドレス
000138H
00013CH
000140H
000144H
000148H
00014CH
000150H
000154H
000158H
00015CH
000160H
000164H
|
00016CH
000170H
000174H
000178H
00017CH
000180H
000184H
000188H
00018CH
000190H
000194H
000198H
00019CH
0001A0H
0001A4H
レジスタ
+0
+1
EIRR4 [R/W]
00000000
ENIR4 [R/W]
00000000
+2
+3
ELVR4 [R/W]
00000000 00000000
DACR [R/W]
-----000
DADR1 [R/W]
------00 00000000
WTDBL [R/W] B
−
------00
DADR0 [R/W]
------00 00000000
DADBL [R/W]
−
-------0
WTCR [R/W] B,H
00000000 000-00-X
WTBR [R/W] B
−
---XXXXX XXXXXXXX XXXXXXXX
WTHR [R/W] B,H WTMR [R/W] B,H WTSR [R/W] B
−
XXXXXXXX
XXXXXXXX
--XXXXXXXX
ADERH [R/W]
ADERL [R/W]
00000000 00000000
00000000 00000000
ADCS1 [R/W]
ADCS0 [R,R/W]
ADCR1 [R]
ADCR0 [R]
00000000
00000000
------XX
XXXXXXXX
ADCT1 [R/W]
ADCT0 [R/W]
ADSCH [R/W]
ADECH [R/W]
00010000
00101100
---00000
---00000
CUCR [R/W] B,H,W
CUTD [R/W] B,H,W
-------- ---0 0
10000000 00000000
CUTR1 [R] B,H,W
CUTR2 [R] B,H,W
-------- 00000000
00000000 00000000
−
−
−
RCR1 [W] B,H
RCR0 [W] B,H
00000000
00000000
CCRH0 [R/W] B,H CCRL0 [R/W] B,H
00000000
-0000000
CCRH1 [R/W] B,H CCRL1 [R/W] B,H
-0000000
-0000000
−
−
RCR3 [W] B,H
RCR2 [W] B,H
00000000
00000000
CCRH2 [R/W] B,H CCRL2 [R/W] B,H
00000000
-0000000
CCRH3 [R/W] B,H CCRL3 [R/W] B,H
-0000000
-0000000
−
−
AD2ERH [R/W]
00000000 00000000
AD2CS1 [R/W]
AD2CS0 [R,R/W]
00000000
00000000
AD2CT1 [R/W]
AD2CT0 [R/W]
00010000
00101100
−
−
CMPR [R/W] B,H
--000010 11111101
CMT1 [R/W] B,H,W
00000000 10000000
ブロック
外部割込み
INT 32 ∼ INT39
(MB91V280 のみ )
DAC
(MB91V280 のみ )
リアルタイムクロック
ADC
クロック補正
(MB91V280 およびサ
フィックス "S" 付き
品種以外 )
−
−
予約
UDCR1 [R] B,H
00000000
アップダウン
カウンタ 0/1
−
UDCR0 [R] B,H
00000000
CSR0 [R/W] B
00000000
CSR1 [R/W] B
00000000
−
−
予約
UDCR3 [R] B,H
00000000
アップダウン
カウンタ 2/3
−
UDCR2 [R] B,H
00000000
CSR2 [R/W] B
00000000
CSR3 [R/W] B
00000000
−
−
予約
−
−
AD2ERL [R/W]
00000000 00000000
AD2CR1 [R]
AD2CR0 [R]
------XX
XXXXXXXX
AD2SCH [R/W]
AD2ECH [R/W]
---00000
---00000
−
−
ADC 2
(MB91V280 のみ )
予約
CMCR [R/W] B,H
-0010000
クロックモジュレータ
CMT2 [R/W] B,H,W
00000000 00000000
−
657
付録
付表 A-1 I/O マップ (4 / 13)
アドレス
レジスタ
+0
+1
0001A8H
CANPRE [R,R/W]
00000000
−
0001ACH
−
−
0001B0H
0001B4H
0001B8H
0001BCH
0001C0H
0001C4H
0001C8H
0001CCH
0001D0H
0001D4H
0001D8H
0001DCH
0001E0H
0001E4H