6.7MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM71-10136-2
FR60Lite
32 ビット・マイクロコントローラ
MB91245/S Series
ハードウェアマニュアル
FR60Lite
32 ビット・マイクロコントローラ
MB91245/S Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 「デザインレビューシート」を参照してください。
「デザインレビューシート」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思わ
れるチェック項目をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス半導体製品につきまして , 平素より格別のご愛顧を
賜り厚くお礼申し上げます。
FR ファミリは , 32 ビット高性能 RISC CPU を使用し , 高性能 / 高速な CPU 処理が要求
される組込み制御用に各種 I/O リソースを内蔵したマイクロコントローラです。
DVD プレーヤ , プリンタ , TV, PDP 制御用等 , 高性能な CPU 処理パワーを要求される
組込み用途に最適な仕様となっています。
本品種は , CPU として FR ファミリと互換性のある FR60 Lite を使用しています。
本書は , 実際に MB91245/S シリーズを使用して製品を開発される技術者を対象に ,
MB91245/S シリーズの機能や動作について解説したものです。本書をご一読ください。
FR は , FUJITSU RISC controller の略で , 富士通マイクロエレクトロニクス株式会社の製
品です。
■ 商標
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商
標です。
■ 本書の全体構成
本書は , 以下に示す 29 の章および付録から構成されています。
第 1 章 概要
MB91245/S シリーズの特長 , ブロックダイヤグラム , 機能概要など , 全体を知るた
めの内容について説明します。
第 2 章 デバイスの取扱いについて
MB91245/S シリーズの取扱い上の注意について説明します。
第 3 章 CPU および制御部
FR60Lite のアーキテクチャ , 仕様 , 命令など , 機能を知るための基本的な内容につ
いて説明します。
第 4 章 I/O ポート
I/O ポートの概要 , レジスタの構成および機能について説明します。
第 5 章 割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能 および動作について説明しま
す。
i
第 6 章 外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能および動作について説明します。
第 7 章 REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により使用されます。したがって ,
REALOS を使用する場合にはユーザプログラムで使用することはできません。遅
延割込みモジュールおよびビットサーチモジュールの概要 , レジスタ構成および
機能 , 動作について説明します。
第 8 章 16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 / 機能およびリロードタイマの動
作について説明します。
第 9 章 PPG
PPG の概要 , レジスタの構成 , 機能および PPG の動作について説明します。
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
PWC の概要 , レジスタの構成 , 機能および動作について説明します。
第 11 章 メイン発振安定待ちタイマ
メイン発振安定待ちタイマの概要 , レジスタの構成 , 機能および動作について説明
します。
第 12 章 16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 , レジスタの構成 / 機能および 16 ビットフリー
ランタイマの動作について説明します。
第 13 章 インプットキャプチャ
インプットキャプチャの概要 , レジスタの構成 , 機能および動作について説明しま
す。
第 14 章 アウトプットコンペア
アウトプットコンペアの概要 , レジスタの構成 , 機能および動作について説明しま
す。
第 15 章 U-Timer
U-Timer の概要 , レジスタの構成 , 機能および動作について説明します。
第 16 章 外部バスインタフェース
外部バスインタフェース , 内部バスと外部のメモリおよび I/O デバイスとのインタ
フェースを制御します。
第 17 章 DMAC (DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能および動作について説明します。
ii
第 18 章 ステッパモータコントローラ
ステッパモータコントローラの概要 , レジスタの構成 / 機能および動作について説
明します。
第 19 章 サウンドジェネレータ
サウンドジェネレータの概要 , レジスタの構成 / 機能および動作について説明しま
す。
第 20 章 リアルタイムクロック
リアルタイムクロックの概要 , レジスタの構成 / 機能および動作について説明しま
す。
第 21 章 UART
UART の概要 , レジスタの構成 / 機能および UART の動作について説明します。
第 22 章 LIN-UART
LIN-UART の概要 , レジスタの構成 / 機能および動作について説明します。
第 23 章 A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能および A/D コンバータの動作につい
て説明します。
第 24 章 C_CAN
C_CAN の機能と動作について説明します。
第 25 章 LCD コントローラ (LCDC)
LCD コントローラ / ドライバ (LCDC) の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
第 26 章 32kHz クロック 補正ユニット
32kHz クロック補正ユニットの概要およびレジスタの構成 / 機能について説明しま
す。
第 27 章 CPU 動作検出リセット回路
CPU 動作検出リセット回路の機能と動作について説明します。
第 28 章 フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能および動作について説明します。
第 29 章 シリアル書込み接続例
シリアル書込み基本構成 , シリアルオンボード書込みに使用する端子 , シリアル
書込み接続例 , およびフラッシュマイコンプログラマシステム構成について説明
します。
iii
付録
付録として , I/O マップ , 割込みベクタ , 端子状態一覧 , リトル・エンディアン領域
を利用する際の注意事項 , 命令一覧 , および使用上の注意事項について記載してい
ます。
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2006-2009 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
第2章
2.1
第3章
概要 ............................................................................................................ 1
MB91245/S シリーズの特長................................................................................................... 2
品種構成 ................................................................................................................................. 5
ブロックダイヤグラム............................................................................................................ 7
外形寸法図.............................................................................................................................. 8
端子配列図.............................................................................................................................. 9
端子機能説明 ........................................................................................................................ 10
入出力回路形式 .................................................................................................................... 18
デバイスの取扱いについて ...................................................................... 21
デバイス取扱い上の注意 ...................................................................................................... 22
CPU および制御部 ................................................................................... 25
3.1 メモリ空間............................................................................................................................ 26
3.2 メモリマップ ........................................................................................................................ 27
3.3 内部アーキテクチャ ............................................................................................................. 30
3.4 プログラミング・モデル ...................................................................................................... 35
3.4.1
レジスタ ..................................................................................................................... 36
3.5 データ構造............................................................................................................................ 43
3.6 ワードアライメント ............................................................................................................. 44
3.7 メモリマップ ........................................................................................................................ 45
3.8 分岐命令 ............................................................................................................................... 46
3.9 EIT ( 例外・割込み・トラップ ) ........................................................................................... 49
3.9.1
割込みレベル .............................................................................................................. 50
3.9.2
ICR (Interrupt Control Register).................................................................................. 52
3.9.3
SSP (System Stack Pointer)....................................................................................... 53
3.9.4
TBR (Table Base Register) ........................................................................................ 54
3.9.5
多重 EIT 処理.............................................................................................................. 58
3.9.6
EIT の動作 .................................................................................................................. 60
3.10 動作モード............................................................................................................................ 64
3.11 リセット ( デバイスの初期化 ) ............................................................................................. 67
3.11.1
リセット要因と発振安定待ち時間.............................................................................. 69
3.11.2
リセットレベル .......................................................................................................... 71
3.11.3
外部リセット端子....................................................................................................... 73
3.11.4
リセット動作 .............................................................................................................. 74
3.11.5
リセット要因ビット ................................................................................................... 76
3.11.6
発振安定待ち要因....................................................................................................... 79
3.12 クロック生成制御 ................................................................................................................. 80
3.12.1
ソースクロックの選択 ............................................................................................... 81
3.12.2
PLL 制御 ..................................................................................................................... 82
3.12.3
発振安定待ち・PLL ロック待ち時間.......................................................................... 84
3.12.4
クロック分配 .............................................................................................................. 85
3.12.5
クロック分周 .............................................................................................................. 86
3.12.6
クロック生成制御部のブロックダイヤグラム............................................................ 87
3.12.7
クロック生成制御部のレジスタ詳細説明................................................................... 88
v
3.12.8
クロック制御部が持つ周辺回路 ............................................................................... 106
3.13 デバイス状態制御 ............................................................................................................... 109
第4章
4.1
4.2
4.3
I/O ポート............................................................................................... 117
I/O ポートの概要 ............................................................................................................... 118
I/O ポートのレジスタ ......................................................................................................... 121
I/O 拡張機能....................................................................................................................... 131
第5章
割込みコントローラ............................................................................... 135
5.1 割込みコントローラの概要................................................................................................. 136
5.2 割込みコントローラのレジスタ一覧 .................................................................................. 137
5.2.1
割込み制御レジスタ ( ICR)....................................................................................... 139
5.3 割込みコントローラの動作................................................................................................. 141
第6章
外部割込み制御部 .................................................................................. 149
6.1 外部割込み制御部の概要 .................................................................................................... 150
6.2 外部割込み制御部のレジスタ ............................................................................................. 151
6.2.1
割込み許可レジスタ (ENIR : ENable Interrupt request Register)............................. 152
6.2.2
外部割込み要因レジスタ (EIRR : External Interrupt Request Register)................... 153
6.2.3
外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register) .................. 154
6.3 外部割込み制御の動作........................................................................................................ 155
第7章
7.1
7.2
REALOS 関連ハード ............................................................................. 159
遅延割込みモジュール........................................................................................................ 160
ビットサーチモジュール .................................................................................................... 162
第8章
8.1
8.2
8.3
8.4
16 ビットリロードタイマ ...................................................................... 169
16 ビットリロードタイマの概要 ........................................................................................ 170
ブロックダイヤグラム........................................................................................................ 171
16 ビットリロードタイマのレジスタ................................................................................. 172
リロードタイマの動作........................................................................................................ 176
第9章
9.1
9.2
9.3
9.4
PPG........................................................................................................ 179
PPG の概要 ........................................................................................................................ 180
PPG のブロックダイヤグラム............................................................................................ 184
PPG のレジスタ ................................................................................................................. 187
PPG の動作説明 ................................................................................................................. 192
第 10 章
PWC (Pulse Width Count:パルス幅測定 ) ......................................... 197
10.1 PWC の概要........................................................................................................................ 198
10.2 PWC のレジスタ ................................................................................................................ 200
10.3 PWC の動作説明 ................................................................................................................ 206
第 11 章
11.1
11.2
11.3
11.4
メイン発振安定待ちタイマ .................................................................... 219
メイン発振安定待ちタイマの概要...................................................................................... 220
メイン発振安定待ちタイマのブロックダイヤグラム ......................................................... 221
メイン発振安定待ちタイマのレジスタ............................................................................... 222
メイン発振待ち割込みの動作 ............................................................................................. 224
vi
第 12 章
16 ビットフリーランタイマ................................................................... 227
12.1 16 ビットフリーランタイマの概要 .................................................................................... 228
12.2 16 ビットフリーランタイマのレジスタ ............................................................................. 230
12.3 16 ビットフリーランタイマの動作 .................................................................................... 234
第 13 章
インプットキャプチャ ........................................................................... 237
13.1 インプットキャプチャの概要 ............................................................................................. 238
13.2 インプットキャプチャのレジスタ...................................................................................... 241
13.3 インプットキャプチャの動作 ............................................................................................. 243
第 14 章
アウトプットコンペア ........................................................................... 245
14.1 アウトプットコンペアの概要 ............................................................................................. 246
14.2 アウトプットコンペアのレジスタ...................................................................................... 248
14.3 アウトプットコンペアの動作 ............................................................................................. 251
第 15 章
U-Timer.................................................................................................. 255
15.1 U-Timer の概要 ................................................................................................................... 256
15.2 U-Timer のレジスタ............................................................................................................ 258
15.3 U-Timer の動作 ................................................................................................................... 261
第 16 章
16.1
16.2
16.3
16.4
16.5
16.6
外部バスインタフェース........................................................................ 263
外部バスインタフェースの概要 ......................................................................................... 264
外部バスインタフェースのレジスタ .................................................................................. 267
外部バスインタフェースのエンディアンとバスアクセス.................................................. 278
外部バスインタフェースの通常バスインタフェース ......................................................... 286
外部バスインタフェースのレジスタ設定手順.................................................................... 293
外部バスインタフェース使用上の注意............................................................................... 294
第 17 章
DMAC (DMA コントローラ ) ................................................................. 295
17.1 DMAC の概要 ..................................................................................................................... 296
17.2 DMAC のレジスタ詳細説明................................................................................................ 299
17.3 DMAC の動作説明 .............................................................................................................. 314
17.3.1
DMAC の動作 ........................................................................................................... 315
17.3.2
転送要求の設定 ........................................................................................................ 317
17.3.3
転送シーケンス ........................................................................................................ 318
17.3.4
DMA 転送全般 .......................................................................................................... 320
17.3.5
アドレッシングモード ............................................................................................. 322
17.3.6
データの種類 ............................................................................................................ 323
17.3.7
転送回数制御 ............................................................................................................ 324
17.3.8
CPU 制御.................................................................................................................. 325
17.3.9
動作 .......................................................................................................................... 326
17.3.10
転送要求の受付けと転送 .......................................................................................... 327
17.3.11
DMA による周辺割込みクリア ................................................................................. 328
17.3.12
一時停止 ................................................................................................................... 329
17.3.13
動作終了 / 停止 ......................................................................................................... 330
17.3.14
エラーによる停止..................................................................................................... 331
17.3.15
DMAC 割込み制御 .................................................................................................... 332
17.3.16
スリープ中の DMA 転送 ........................................................................................... 333
17.3.17
チャネル選択と制御 ................................................................................................. 334
vii
17.4 DMAC の動作フロー........................................................................................................... 336
17.5 DMAC のデータパス........................................................................................................... 338
第 18 章
ステッパモータコントローラ ................................................................ 341
18.1 ステッパモータコントローラの概要 .................................................................................. 342
18.2 ステッパモータコントローラのレジスタ ........................................................................... 343
18.2.1
PWM 制御レジスタ .................................................................................................. 344
18.2.2
PWM1, PWM2 コンペアレジスタ ............................................................................ 345
18.2.3
PWM1, PWM2 選択レジスタ ................................................................................... 347
18.3 ステッパモータコントローラの使用上の注意.................................................................... 349
第 19 章
サウンドジェネレータ ........................................................................... 351
19.1 サウンドジェネレータの概要 ............................................................................................. 352
19.2 サウンドジェネレータのレジスタ...................................................................................... 353
19.2.1
サウンドコントロールレジスタ ............................................................................... 354
19.2.2
振幅データレジスタ ................................................................................................. 356
19.2.3
周波数データレジスタ ............................................................................................. 357
19.2.4
トーンカウントレジスタ .......................................................................................... 358
19.2.5
デクリメントグレードレジスタ ............................................................................... 359
19.2.6
サウンド禁止レジスタ ............................................................................................. 360
第 20 章
リアルタイムクロック ........................................................................... 361
20.1 リアルタイムクロックの概要 ............................................................................................. 362
20.2 リアルタイムクロックのレジスタ...................................................................................... 363
20.3 リアルタイムクロックの動作説明...................................................................................... 368
第 21 章
UART ..................................................................................................... 369
21.1 UART の概要 ...................................................................................................................... 370
21.2 UART のレジスタ ............................................................................................................... 371
21.3 UART の動作 ...................................................................................................................... 378
21.3.1
非同期 ( 調歩同期 ) モード........................................................................................ 379
21.3.2
クロック同期モード ................................................................................................. 381
21.3.3
割込み発生およびフラグのセットタイミング.......................................................... 383
21.4 UART の応用例................................................................................................................... 386
第 22 章
LIN-UART .............................................................................................. 389
22.1 LIN-UART の概要 ............................................................................................................... 390
22.2 LIN-UART のレジスタ一覧 ................................................................................................. 392
22.2.1
ボーレート / リロードカウンタレジスタ (BGR) ...................................................... 399
22.3 インプットキャプチャによるボーレート検出.................................................................... 400
22.3.1
UART のボーレート ................................................................................................. 401
22.3.2
ボーレートの設定..................................................................................................... 402
22.4 LIN-UART の動作 ............................................................................................................... 405
22.4.1
非同期モード ( 動作モード 0 と 1) 時の動作 ............................................................ 406
22.4.2
同期 ( モード 2) モード時の動作 .............................................................................. 408
22.4.3
LIN 機能との操作 ( モード 3).................................................................................... 410
22.4.4
シリアル端子直接アクセス ...................................................................................... 412
22.4.5
データフォーマット設定 .......................................................................................... 413
22.4.6
レジスタ / フラグビット........................................................................................... 414
viii
22.5 UART 割込み ...................................................................................................................... 415
22.5.1
ソフトウェアリセット ............................................................................................. 418
22.6 LIN-UART のクロック同期 ................................................................................................. 419
22.7 フラグセットのタイミング................................................................................................. 420
22.8 LIN-UART の特別仕様 ........................................................................................................ 424
22.9 LIN 通信動作....................................................................................................................... 426
22.10 UART からの変更点 ........................................................................................................... 430
22.11 LIN-UART の制限事項 ........................................................................................................ 431
第 23 章
A/D コンバータ ...................................................................................... 433
23.1 A/D コンバータの概要 ........................................................................................................ 434
23.2 A/D コンバータのレジスタ................................................................................................. 437
23.3 A/D コンバータの動作 ........................................................................................................ 449
第 24 章
C_CAN................................................................................................... 451
24.1 C_CAN の特長.................................................................................................................... 452
24.2 C_CAN レジスタ機能 ......................................................................................................... 454
24.2.1
全体コントロールレジスタ ...................................................................................... 462
24.2.2
メッセージインタフェースレジスタ ........................................................................ 476
24.2.3
メッセージハンドラレジスタ................................................................................... 498
24.2.4
CAN プリスケーラレジスタ (CANPRE)................................................................... 506
24.3 C_CAN の機能.................................................................................................................... 507
第 25 章
LCD コントローラ (LCDC) .................................................................... 527
LCD コントローラの概要 .................................................................................................. 528
LCD コントローラのレジスタ ........................................................................................... 530
LCD コントローラの動作 .................................................................................................. 537
25.1
25.2
25.3
第 26 章
32kHz クロック補正ユニット ................................................................ 545
26.1 32kHz クロック補正ユニットの概要.................................................................................. 546
26.2 32kHz クロック補正ユニットのレジスタ........................................................................... 548
26.3 アプリケーションノート .................................................................................................... 553
第 27 章
27.1
27.2
27.3
27.4
CPU 動作検出リセット回路................................................................... 555
CPU 動作検出リセット回路の概要 .................................................................................... 556
CPU 動作検出リセット回路のレジスタ ............................................................................. 558
CPU 動作検出リセット回路の動作 .................................................................................... 560
CPU 動作検出リセット回路使用上の注意.......................................................................... 561
第 28 章
フラッシュメモリ .................................................................................. 563
28.1 フラッシュメモリの概要 .................................................................................................... 564
28.2 フラッシュメモリのレジスタ ............................................................................................. 574
28.3 フラッシュメモリのアクセスモード .................................................................................. 578
28.4 自動アルゴリズム起動方法................................................................................................. 581
28.5 自動アルゴリズム実行状態................................................................................................. 585
28.6 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 591
28.6.1
フラッシュメモリ使用上の注意 ............................................................................... 597
28.7 セクタプロテクトオペレーション...................................................................................... 598
ix
第 29 章
シリアル書込み接続例 ........................................................................... 603
29.1 MB91F24x/S シリアル書込み接続例 .................................................................................. 604
29.2 MB91F24x/S シリアル書込み ( 非同期 ) 接続例 ................................................................. 615
付録
付録 A
付録 B
付録 C
付録 D
付録 E
付録 F
索引
............................................................................................................... 619
I/O マップ ...................................................................................................................... 620
割込みベクタ ................................................................................................................. 633
リセットによる各端子状態 ........................................................................................... 636
リトル・エンディアン領域を利用する際の注意事項.................................................... 642
命令一覧表..................................................................................................................... 648
使用上の注意 ................................................................................................................. 663
............................................................................................................... 667
x
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。
-
-
品種を追加
(MB91F249/S)
-
-
端子名を変更
(MOD0 ∼ MOD2 → MD0 ∼ MD2)
-
-
全体を変更
( クロック 1 系統品 → S サフィックスがある製品 )
2
「■ 内蔵周辺機能」を変更
1 章 概要
1.1 MB91245/S シリーズの
特長
5, 6
1 章 概要
1.2 品種構成
表 1.2-1 を変更
7
1 章 概要
1.3 ブロックダイヤグラム
図 1.3-1 を変更
19
第 1 章 概要
1.7 入出力回路形式
22
2 章 デバイスの取扱いに
ついて
2.1 デバイス取扱い上の
注意
23
27 ∼
29
3 章 CPU および制御部
3.2 メモリマップ
「■ 入出力回路形式」の表 1.7-1 の分類 E を変更
(ADER ビット → ADE ビット )
図 2.1-1 を変更
「● 水晶発振回路について」を変更
(「各量産品において , ご使用される発振子メーカに発振評
価依頼をしてください。」を追加 )
図 3.2-1 を変更
70
第 3 章 CPU および制御部 「■ 電源投入時の発振安定待ち時間について」を変更
3.11.1 リセット要因と発振
「■ ストップモード中の外部割込みによる復帰について」を
安定待ち時間
削除
83
第 3 章 CPU および制御部
3.12.2 PLL 制御
87
3 章 CPU および制御部
3.12.6 クロック生成制御部
のブロックダイヤグラム
131
4 章 I/O ポート
4.3 I/O 拡張機能
171
第 8 章 16 ビットリロード
タイマ
8.2 ブロックダイヤグラム
「● PLL 逓倍率」を変更
(「PLL 逓倍率設定の変更を PLL 使用中に変更することも可
能ですが , ……… プログラム動作は停止しません。」を
削除 )
図 3.12-1 を変更
「■ 入力レベル選択レジスタ (PILR)」を変更
(PILRxy → PILRx)
図 8.2-1 を変更
(TOE0 ∼ TOE2 PFRK 内ビット → 該当 PFR ビット )
xi
ページ
変更内容(詳細は本文を参照してください。
174
第 8 章 16 ビットリロード 「■ コントロールステータスレジスタ (TMCSR)」の「[bit4]
RELD」を変更
タイマ
8.3 16 ビットリロード
((TOEx) → (PFR/EPFR)
タイマのレジスタ
(TOEx は PFR(Port Function Register) 中の TOE0 ∼ TOE2 を
示します。→
PFR/EPFR は , 該当する PFR/EPFR レジスタ内ビットの値
を示します。))
175
第 8 章 16 ビットリロード 「■ 16 ビットリロードレジス (TMRLR)」の図 8.3-3 を変更
(16 ビットタイマレジスタ (TMR) →
タイマ
8.3 16 ビットリロード
16 ビットリロードレジスタ (TMRLR))
タイマのレジスタ
213
10 章 PWC (Pulse Width
Count:パルス幅測定 )
10.3 PWC の動作説明
216
224
225
「● 最小入力パルス幅について」を変更
( パルス幅測定入力端子 (PWI1, PWI0) →
パルス幅測定入力端子 (PWC0))
「● レジスタ書換えに関する注意事項」を変更
([bit5, bit4] PIS1, PIS0 :入力信号選択ビット 削除 )
第 11 章 メイン発振安定待 「■ メイン発振安定待ち割込みの動作 」を変更
( カウンタクリア (WPCR:WCL=1) →
ちタイマ
11.4 メイン発振待ち割込
カウンタクリア (OSCR:WCL=1) )
みの動作
「■ クロック供給機能の動作」を変更
((WT1, WT0 → WS1, WS0)
(OSCCR bit0: OCSDS1=1 書込み ) →
(OSCCR bit0: OCSDS1=0 書込み ))
233
12 章 16 ビットフリーラン 「[bit1, bit0] CLK1, CLK0 」を変更
( φ → fccp
タイマ
12.2 16 ビットフリーラン
F → fccp
タイマのレジスタ
カウントクロック (φ) → カウントクロック
φ:リソースクロック → fccp:周辺系のクロック周波数 )
239
13 章 インプットキャプ
チャ
13.1 インプットキャプ
チャの概要
図 13.1-1 を変更
(ICS23 の図を追加 )
242
13 章 インプットキャプ
チャ
13.2 インプットキャプ
チャのレジスタ
図 13.2-2 を変更
( ICS23 の図を追加
[bit7, bit6] ICP1, ICP0 → [bit7, bit6] ICP3, ICP2 (ICP1, ICP0)
[bit5, bit4] ICE1, ICE0 → [bit5, bit4] ICE3, ICE2 (ICE1, ICE0)
[bit3 ∼ bit0] EG11, EG10, EG01, EG00 → [bit3 ∼ bit0] EG31,
EG30, EG21, EG20 (EG11, EG10, EG01, EG00))
253
14 章 アウトプットコンペ 「<コンペアマッチ , 割込みタイミング>」を変更
ア
14.3 アウトプットコンペ
アの動作
257
第 15 章 U-Timer
15.1 U-Timer の概要
「■ U-Timer のブロックダイヤグラム」の図 15.1-2 を変更
(UTIMER ( リロードレジスタ ) →
UTIMR ( リロードレジスタ ))
xii
ページ
267
271
変更内容(詳細は本文を参照してください。
16 章 外部バスインタ
フェース
16.2 外部バスインタ
フェースのレジスタ
「[bit7 ∼ bit0] A23 ∼ A16」を変更
(Reserved → A23 ∼ A16)
「[bit3 ∼ bit0] TYP3, TYP2, TYP1, TYP0 = TYPe select」を変更
(TYPE[3:0] → TYP[3:0])
343
18 章 ステッパモータ
コントローラ
18.2 ステッパモータ
コントローラのレジスタ
345
18 章 ステッパモータ
コントローラ
18.2.2 PWM1, PWM2
コンペアレジスタ
362
20 章 リアルタイムクロッ
ク
20.1 リアルタイムクロッ
クの概要
365
20 章 リアルタイムクロッ 「■ タイマ制御レジスタ (WTCR)」の <注意事項> を変更
ク
20.2 リアルタイムクロッ
クのレジスタ
393
第 22 章 LIN-UART
22.2 LIN-UART のレジス
タ一覧
399
「[bit14 ∼ bit8] B14 ∼ B08 : ボーレートジェネレータレジスタ
22 章 LIN-UART
22.2.1 ボーレート / リロー 1」を変更
ドカウンタレジスタ
(BGR1 → B14 ∼ B08)
(BGR)
「[bit7 ∼ bit0] B07 ∼ B00 : ボーレートジェネレータレジスタ
0」を変更
(BGR0 → B07 ∼ B00)
400
22 章 LIN-UART
22.3 インプットキャプ
チャによるボーレート
検出
「■ インプットキャプチャによるボーレート検出」の 図を
変更
430
第 22 章 LIN-UART
22.10 UART からの変更点
「■ UART からの変更点」を変更
((SIN, SOUT) → (SIN, SOT))
439
第 23 章 A/D コンバータ
23.2 A/D コンバータの
レジスタ
「■ アナログ入力許可レジスタ 」を変更
(ADER ビット → ADE ビット )
446
図 18.2-1 の PWS2 を変更
(「bit 7 6 5 4 3 2 1 0」→ 「bit 15 14 13 12 11 10 9 8」)
「■ PWM1, PWM2 コンペアレジスタの機能 」を変更
( デューティ 99.9% → デューティ 99.6%)
図 20.1-1 を変更
図 22.2-1 シリアル制御レジスタ (SCR) のビット構成 の *1 を
変更
(「受信動作を禁止せずに受信エラーフラグをクリアにする
と , ………… 信再開時に正常なデータを受信しない場合があ
ります。
」を追加 )
「[bit9 ∼ bit0]ST9 ∼ ST0 (Analog input sampling time set)」を
変更
(「・ST9 ∼ ST0 へ以下の値を設定することは禁止です。
3 以上の値を設定してください。"0000000010B"(02H),
"0000000001B"(01H), "0000000000B"(00H) 」を追加 )
xiii
ページ
変更内容(詳細は本文を参照してください。
455
24 章 C_CAN
24.2 C_CAN レジスタ機能
482
第 24 章 C_CAN
24.2.2 メッセージインタ
フェースレジスタ
503
「■ CAN 割込みペンディングレジスタ (INTPND1,
第 24 章 C_CAN
24.2.3 メッセージハンドラ INTPND2)」の「IntPnd32 ∼ IntPnd1: 割込みペンディング
ビット」を変更
レジスタ
507
第 24 章 C_CAN
24.3 C_CAN の機能
「■ メッセージオブジェクト」を変更
531
25 章 LCD コントローラ
(LCDC)
25.2 LCD コントローラの
レジスタ
「[bit11 ∼ bit8]COM3 ∼ COM0 : コモン端子イネーブルビッ
ト」を変更
534
547
26 章 32kHz クロック補正
ユニット
26.1 32kHz クロック補正
ユニットの概要
564
28 章 フラッシュメモリ
28.1 フラッシュメモリの
概要
565
表 24.2-1 を変更
(Int-Id → IntId)
「■ IFx コマンドマスクレジスタ (IFxCMSK) 」の「[bit2]
TxRqst/NewDat: メッセージ送信要求ビット 」を変更
「[bit7 ∼ bit0] SEG7 ∼ SEG0 セグメント端子イネーブルビッ
ト」を変更
(9BH → LCR1)
図 26.1-2 を変更
(RUM (32 kHz) → RUN (32 kHz)
RUMS (4 kHz) → RUNS (4 MHz))
「28.1 フラッシュメモリの概要 」の 要約 を変更
「■ フラッシュメモリの特長」を変更
「■ ROM ライタによる書込み」を変更
( 単体フラッシュメモリ製品の MBM29LV400C 相当 →
単体フラッシュメモリ製品の MBM29LV200TC/
MBM29LV400TC 相当 )
図 28.1-1 を変更
((MB91F248/S) を追加 )
566
図 28.1-2 を変更
((MB91F248/S) を追加 )
567
表 28.1-1 を変更
((MB91F248/S) を追加 )
568
図 28.1-3 を追加
図 28.1-4 を追加
569
表 28.1-2 を追加
570
図 28.1-5 を変更
((MB91F248/S) を追加 )
571
表 28.1-3 を変更
((MB91F248/S) を追加 )
572
図 28.1-6 を追加
573
表 28.1-4 を追加
xiv
ページ
変更内容(詳細は本文を参照してください。
577
28 章 フラッシュメモリ
28.2 フラッシュメモリの
レジスタ
「■ フラッシュウェイトレジスタ (FLWC)」の
[bit2 ∼ bit0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット
を変更
( 読出し時 → FLASH リード時
書込み時 → FLASH ライト時 )
579
28 章 フラッシュメモリ
28.3 フラッシュメモリの
アクセスモード
「■ フラッシュメモリモード」を変更
( 2M ビットフラッシュメモリ →
2M ビット /4M ビットフラッシュメモリ )
580
「■ MBM29LV200TC/MBM29LV400TC とのフラッシュメモ
リ制御信号の対応」を変更
597
28 章 フラッシュメモリ
28.6.1 フラッシュメモリ
使用上の注意
「28.6.1 フラッシュメモリ使用上の注意」の要約 を変更
( MB91F248 → MB91F248/MB91F249)
599
28 章 フラッシュメモリ
28.7 セクタプロテクト
オペレーション
「■ イネーブルセクタプロテクト」を変更
603
∼
618
第 29 章 シリアル書込み
接続例
「第 29 章」全体を変更
(MB91F248/S → MB91F24x/S)
618
「■ 各端子のタイミングチャート」を変更
第 29 章 シリアル書込み
接続例
29.2 MB91F24x/S シリアル
書込み ( 非同期 ) 接続例
621
∼
632
付録 A I/O マップ
631
表 A-1 を変更
表 A-1 に下記を追加
(「アドレス:000A0000H ∼ 000FFFFCH 」に「 User ROM
512 Kbytes(MB91F249/S)」)
636
付録 C リセットによる各
端子状態
■ リセット中の端子の状
態
■ リセット中の端子の状態 を変更
● 内部ベクタモード設定時
(M2, M1, M0=000B) → (MD2, MD1, MD0=000B)
● 外部ベクタモード設定時
(M2, M1, M0=001B) → (MD2, MD1, MD0=001B)
638
641
付録 C リセットによる各
端子状態
付表 C-1 を変更
(P60 ∼ P77/AN0 ∼ AN7 → P60 ∼ P67/AN0 ∼ AN7
PG0/(WOT)/PPG0 → PG0/PPG0)
付表 C-2 を変更
(PG0/(WOT)/PPG0 → PG0/PPG0)
変更箇所は , 本文中のページ左側の│によって示しています。
xv
xvi
第1章
概要
MB91245/S シリーズの特長 , ブロックダイヤグラ
ム , 機能概要など , 全体を知るための内容について
説明します。
1.1
MB91245/S シリーズの特長
1.2
品種構成
1.3
ブロックダイヤグラム
1.4
外形寸法図
1.5
端子配列図
1.6
端子機能説明
1.7
入出力回路形式
1
第 1 章 概要
1.1
MB91245/S シリーズの特長
MB91245/S シリーズは , 民生機器などの高速リアルタイム処理が要求される組込み
制御用途向けに設計された汎用の富士通 32 ビット RISC マイクロコントローラで
す。
CPU には , FR ファミリと互換の FR60Lite を使用しており , LCD コントローラ , ス
テッパモータコントローラを内蔵しています。
■ FR60Lite CPU
• 32 ビット RISC, ロード / ストアアーキテクチャ , パイプライン 5 段
• 最大動作周波数
:32MHz ( 原発振 /4MHz, 原発振 8 逓倍 (PLL クロック
逓倍方式 ) )
• 16 ビット固定長命令 ( 基本命令 )
• 命令実行速度
:1 命令 /1 サイクル
• メモリ−メモリ間転送命令 , ビット処理命令 , バレルシフト命令など
:組込み用途に適した命令
• 関数入口 / 出口命令 , レジスタ内容のマルチロードストア命令
:C 言語対応命令
• レジスタのインタロック機能:アセンブラ記述も容易に可能
• 乗算器の内蔵 / 命令レベルでのサポート
• 符号付き 32 ビット乗算 : 5 サイクル
• 符号付き 16 ビット乗算 : 3 サイクル
• 割込み (PC/PS 退避 )
:6 サイクル (16 プライオリティレベル )
• ハーバードアーキテクチャにより , プログラムアクセスとデータアクセスを同時に
実行可能
• FR ファミリとの命令互換
■ 内蔵周辺機能
• 内蔵 ROM 容量と ROM タイプ
マスク ROM
: 256K バイト (MB91248/S)
128K バイト (MB91247/S)
フラッシュメモリ
: 512K バイト (MB91F249/S)
256K バイト (MB91F248/S)
• 内蔵 RAM 容量
: 24K バイト (MB91F249/S)
16K バイト (MB91248/S,MB91F248/S)
8K バイト (MB91247/S)
32K バイト (MB91V245A)
• 汎用ポート
2
:最大 120 本 ( 内 4 本入力専用 )
第 1 章 概要
• A/D コンバータ ( 逐次比較型 )
10 ビット分解能
:32 チャネル /24 チャネル
変換時間
:3μs (16MHz/32MHz)
上記の変換時間を達成するために以下のようにPLLの逓倍率および周辺回路クロッ
クの分周比を設定してください。
32MHz
:原発振 (4MHz) の 8 逓倍の 1 分周
16MHz
:原発振の 8 逓倍の 2 分周
• 外部割込み入力
:8 チャネル
• ビットサーチモジュール (REALOS 使用 )
1 ワード中の MSB( 上位ビット ) から最初の "1" → "0" 変化ビット位置をサーチする
機能
•
UART ( 全二重ダブルバッファ方式 )
:1 チャネル
パリティあり / なし選択可能
非同期 ( 調歩同期 )/ クロック同期通信の選択可能
専用ボーレートタイマ (U-Timer) をチャネルごとに内蔵
外部クロックを転送クロックとして使用可能
パリティ , フレーム , オーバランエラー検出機能あり
• LIN-UART( 全二重ダブルバッファ方式 ) :3 チャネル
クロック同期 / 非同期の選択可能
Synch-break 検出
専用ボーレートジェネレータ内蔵
• ステッパモータコントローラ
:6 チャネル
8 ビット PWM 各チャネル大電流出力 4 本
• 8 / 16 ビット PPG タイマ
:8 / 4 チャネル
• 16 ビットリロードタイマ
:3 チャネル
• 16 ビットフリーランタイマ
:2 チャネル (ICU/OCU 連動 )
• 16 ビットパルス幅カウンタ
:1 チャネル
• インプットキャプチャ
:4 チャネル ( フリーランタイマ ch.0, ch.1
と連動 )ch.0 は PWC と連動
• アウトプットコンペア
:2 チャネル ( フリーランタイマ ch.0 と連
動)
• LCD コントローラ
:SEG0 ∼ SEG31/COM0 ∼ COM3( ポート
と兼用 )
• 16 ビットタイムベース / ウォッチドッグタイマ
• サウンドジェネレータ
• リアルタイムクロック
• 32kHzサブクロック(Sサフィックスがある製品はサブクロックをサポートしません)。
• C-CAN
:2 チャネル
• 低消費電力モード
:スリープ / ストップ / 時計モード機能
3
第 1 章 概要
• パッケージ
:LQFP-144 (FPT-144P-M08)
• CMOS 0.35μm テクノロジ
• 電源
4
:5V 電源 ( 降圧回路により内部回路 3.3V,
I/O 5.0V)
第 1 章 概要
1.2
品種構成
MB91245/S シリーズの品種構成表を表 1.2-1 に示します。掲載されていない内蔵周
辺機能は共通です。
■ 品種構成一覧
MB91245/S シリーズの品種構成を表 1.2-1 に示します。
表 1.2-1 MB91245/S シリーズ品種構成一覧 (1 / 2)
MB91V245A
MB91F249/S
MB91F248/S
MB91248/S
MB91247/S
ROM/Flash 容量
外付け SRAM
512K バイト
256K バイト
←
128K バイト
RAM 容量
32K バイト
24K バイト
16K バイト
←
8K バイト
外部割込み
8 チャネル
←
←
←
←
DMA
5 チャネル
←
←
←
←
A/D コンバータ
32 チャネル
←
←
←
←
UART
1 チャネル
←
←
←
←
LIN-UART
3 チャネル
←
←
←
←
ステッパモータ
コントローラ
6 チャネル
←
←
←
←
8 / 16 ビット
PPG タイマ
8 チャネル /
4 チャネル
←
←
←
←
16 ビット
リロードタイマ
3 チャネル
←
←
←
←
16 ビット
フリーランタイマ
2 チャネル
←
←
←
←
16 ビット
パルス幅カウンタ
1 チャネル
←
←
←
←
インプット
キャプチャ
4 チャネル
←
←
←
←
アウトプット
コンペア
2 チャネル
←
←
←
←
←
←
←
←
LCD コントローラ 4COM, 32SEG
サウンド
ジェネレータ
1 チャネル
←
←
←
←
リアルタイム
クロック
あり
←
←
←
←
32kHz サブクロック
あり
あり :
MB91F249
なし :
MB91F249S
あり :
MB91F248
なし :
MB91F248S
あり :
MB91248
なし :
MB91248S
あり :
MB91247
なし :
MB91247S
5
第 1 章 概要
表 1.2-1 MB91245/S シリーズ品種構成一覧 (2 / 2)
6
MB91V245A
MB91F249/S
MB91F248/S
MB91248/S
MB91247/S
外部バス
アドレス
16 ビット
データ
16 ビット
←
←
←
←
その他
評価用品
フラッシュ
メモリ品
←
マスク ROM 品
←
On Chip Debug
Support Unit
DSU4
なし
なし
なし
なし
C-CAN
2 チャネル
32 メッセージ
バッファ
←
←
←
←
第 1 章 概要
1.3
ブロックダイヤグラム
MB91245/S シリーズのブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.3-1 MB91245/S シリーズブロックダイヤグラム
FR 60Lite
CPU コア
32
DSU*
32
DMAC
5チャネル
ビットサーチ
ROM 256KB/128KB/
Flash 512KB/256KB
32
バス
コンバータ
RAM 24KB/16KB/8KB
X0,X1
X0A,X1A
MD0~MD2
INITX
32←→16
アダプタ
クロック
制御
16
割込み
コントローラ
INT0~INT7
SIN0
SOT0
SCK0
8チャネル
外部割込み
1チャネル
UART
1チャネルU-Timer
2チャネル
C-CAN
RX0, RX1
TX0, TX1
PORT
PORT I/F
3チャネル
リロードタイマ
TIN0~TIN2
TOT0~TOT2
1チャネル
PWCタイマ
PWC0
4チャネル(16ビット時)
8/16 PPGタイマ
PPG0~PPG7
ICU2
IN0~IN3
OUT0, OUT1
CK0, CK1
SGA
SGO
ATGX
AVCC/AVSS
AVRH
AN0~AN31
SIN3~SIN5
SOT3~SOT5
SCK3~SCK5
4チャネル ICU3
インプット ICU0
キャプチャ ICU1
2チャネル OCU
OCU0
リアルタイムクロック
CPU 動作検出リセット
PWM1P0 PWM1P3
PWM1M0 PWM1M3
PWM2P0 PWM2P3
PWM2M0 PWM2M3
PWM1P1 PWM1P4
PWM1M1 PWM1M4
PWM2P1 PWM2P4
PWM2M1 PWM2M4
PWM1P2 PWM1P5
PWM2P2 PWM2P5
PWM2M2 PWM2M5
PWM1M2 PWM1M5
アウトプット OCU1
コンペア
2チャネル
フリーラン
タイマ
FRT0
FRT1
サウンドジェネレータ
6チャネル
ステッパモータ
コントローラ
32チャネル入力
8/10ビット
A/Dコンバータ
3チャネル
LIN-UART
COM0~COM3
32seg×4COM
LCD コントローラ
SEG0~SEG31
* : Sサフィックスがない製品のみ
*:DSU は MB91V245A のみ搭載しています。
<注意事項>
S サフィックスがある製品はサブクロックをサポートしません。
7
第 1 章 概要
外形寸法図
1.4
図 1.4-1 にパッケージの外形寸法図を示します。
■ パッケージ外形寸法図
図 1.4-1 外形寸法図
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
プラスチック・LQFP, 144 ピン
(FPT-144P-M08)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
20.0 × 20.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
1.20g
コード(参考)
P-LFQFP144-20×20-0.50
注 1)* 印寸法はレジン残りを含まず。レジン残りは、片側 +0.25(.010)MAX
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
22.00±0.20(.866±.008)SQ
* 20.00±0.10(.787±.004)SQ
108
0.145±0.055
(.006±.002)
73
109
72
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
.059 –.004
0˚~8˚
INDEX
144
37
"A"
LEAD No.
1
36
0.50(.020)
0.22±0.05
(.009±.002)
0.08(.003)
2003 FUJITSU LIMITED F144019S-c-4-6
最新の外形寸法図については , 下記 URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
8
0.10±0.10
(.004±.004)
(Stand off)
0.25(.010)
M
©2003-2008 FUJITSU MICROELECTRONICS LIMITED F144019S-c-4-7
C
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
(Mounting height)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.5
端子配列図
MB91245/S シリーズの端子配列を示します。
■ 端子配列図
図 1.5-1 に , MB91245/S シリーズの端子配列図 (LQFP-144) を示します。
図 1.5-1 MB91245/S シリーズの LQFP-144 端子配列図
144
143
142
141
140
139
138
137
136
135
134
133
132
131
130
129
128
127
126
125
124
123
122
121
120
119
118
117
116
115
114
113
112
111
110
109
P23/SEG3/A03
P22/SEG2/A02
P21/SEG1/A01
P20/SEG0/A00
PD7/COM3/PPG7
PD6/COM2/PPG5
PD5/COM1/PPG3
PD4/COM0/PPG1
PD3/IN3
PD2/TIN2/IN2
PD1/TIN1/IN1
PD0/TIN0/IN0/PWC0
PG3/TOT2/PPG6
PG2/TOT1/PPG4
PG1/TOT0/PPG2
X0
X1
VSS
VCC
PG0/PPG0
P47/SGO/SYSCLK
P46/SGA/ASX
P57/OUT1/RDY
P56/OUT0/WR1X
P55/SCK5/WR0X
P54/SOT5/RDX
P53/SIN5/CK1/CS3X
P52/SCK4/CS2X
P51/SOT4/CS1X
P50/SIN4/CK0/CS0X
P45/SCK3
P44/SOT3
P43/SIN3
P42/SCK0
P41/SOT0
P40/SIN0
(TOP VIEW)
A04/SEG4/P24
A05/SEG5/P25
A06/SEG6/P26
A07/SEG7/P27
A08/SEG8/P30
A09/SEG9/P31
A10/SEG10/P32
A11/SEG11/P33
A12/SEG12/P34
A13/SEG13/P35
A14/SEG14/P36
A15/SEG15/P37
D08/SEG16/P10
D09/SEG17/P11
D10/SEG18/P12
X0A
X1A
VCC
VSS
VCC3C
D11/SEG19/P13
D12/SEG20/P14
D13/SEG21/P15
D14/SEG22/P16
D15/SEG23/P17
D00/INT0/SEG24/P00
D01/INT1/SEG25/P01
D02/INT2/SEG26/P02
D03/INT3/SEG27/P03
D04/INT4/SEG28/P04
D05/INT5/SEG29/P05
D06/SEG30/P06
D07/ATGX/SEG31/P07
RX0/INT6/P70
TX0/P71
RX1/INT7/P72
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
108 INITX
107 MD0
106 MD1
105 MD2
104 DVSS
103 DVCC
102 PE7/PWM2M5
101 PE6/PWM2P5
100 PE5/PWM1M5
99 PE4/PWM1P5
98 PE3/PWM2M4
97 PE2/PWM2P4
96 PE1/PWM1M4
95 PE0/PWM1P4
94 PA3/PWM2M3
93 PA2/PWM2P3
92 PA1/PWM1M3
91 PA0/PWM1P3
90 DVSS
89 DVCC
88 PF7/AN15
87 PF6/AN14
86 PF5/AN13
85 PF4/AN12
84 PF3/AN11
83 PF2/AN10
82 PF1/AN9
81 PF0/AN8
80 P67/AN7
79 P66/AN6
78 P65/AN5
77 P64/AN4
76 P63/AN3
75 P62/AN2
74 P61/AN1
73 P60/AN0
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
AVSS/AVRL
AVRH
AVCC
P80/AN16
P81/AN17
P82/AN18
P83/AN19
P84/AN20
P85/AN21
P86/AN22
P87/AN23
P90/AN24
P91/AN25
P92/AN26
P93/AN27
P94/AN28
P95/AN29
P96/AN30
P97/AN31
DVSS
DVCC
PC3/PWM2M2
PC2/PWM2P2
PC1/PWM1M2
PC0/PWM1P2
PB7/PWM2M1
PB6/PWM2P1
PB5/PWM1M1
PB4/PWM1P1
PB3/PWM2M0
PB2/PWM2P0
PB1/PWM1M0
PB0/PWM1P0
DVSS
DVCC
P73/TX1
(FPT-144P-M08)
9
第 1 章 概要
1.6
端子機能説明
MB91245/S シリーズの端子機能について説明します。
■ 端子機能説明
表 1.6-1 に , MB91F249/S, MB91F248/S, MB91248/S, MB91247/S の端子機能を示します。
表 1.6-1 端子機能一覧表 (1 / 8)
端子番号
端子名
入出力
回路形式
P20 ∼ P23
141 ∼ 144
1∼4
5 ∼ 12
13 ∼ 15
SEG0 ∼ SEG3
汎用入出力ポートです。
F
LCDC の SEG 出力です。
A00 ∼ A03
外部アドレスバスの bit0 ∼ bit3 です。
P24 ∼ P27
汎用入出力ポートです。
SEG4 ∼ SEG7
F
LCDC の SEG 出力です。
A04 ∼ A07
外部アドレスバスの bit4 ∼ bit7 です。
P30 ∼ P37
汎用入出力ポートです。
SEG8 ∼ SEG15
F
LCDC の SEG 出力です。
A08 ∼ A15
外部アドレスバスの bit8 ∼ bit15 です。
P10 ∼ P12
汎用入出力ポートです。
SEG16 ∼ SEG18
G
D08 ∼ D10
LCDC の SEG 出力です。
外部データバスの bit8 ∼ bit10 です。
16
X0A
B
クロック ( 発振 ) 入力です。サブクロック
17
X1A
B
クロック ( 発振 ) 出力です。サブクロック
P13 ∼ P17
21 ∼ 25
SEG19 ∼ SEG23
汎用入出力ポートです。
G
LCDC の SEG 出力です。
D11 ∼ D15
外部データバスの bit11 ∼ bit15 です。
P00 ∼ P05
汎用入出力ポートです。
SEG24 ∼ SEG29
LCDC の SEG 出力です。
G
26 ∼ 31
INT0 ∼ INT5
D00 ∼ D05
10
機能説明
外部割込み入力です。対応する外部割込みを許可している間
は , この入力を随時使用していますので意図的に行う以外は
ポートによる出力を停止させておく必要があります。
外部データバスの bit11 ∼ bit15 です。
第 1 章 概要
表 1.6-1 端子機能一覧表 (2 / 8)
端子番号
端子名
入出力
回路形式
P06
32
SEG30
汎用入出力ポートです。
G
外部データバスの bit6 です。
P07
汎用入出力ポートです。
SEG31
LCDC の SEG 出力です。
G
ATGX
A/D コンバータ使用時の外部トリガ入力です。
D07
外部データバスの bit7 です。
P70
汎用入出力ポートです。
INT6
I
RX0
外部割込み入力です。対応する外部割込みを許可している間
は , この入力を随時使用していますので意図的に行う以外は
ポートによる出力を停止させておく必要があります。
CAN0 の RX0 入力端子です。
P71
35
36
LCDC の SEG 出力です。
D06
33
34
機能説明
汎用入出力ポートです。
I
TX0
CAN0 の TX0 出力端子です。
P72
汎用入出力ポートです。
INT7
I
RX1
CAN1 の RX1 入力端子です。
P73
37
外部割込み入力です。対応する外部割込みを許可している間
は , この入力を随時使用していますので意図的に行う以外は
ポートによる出力を停止させておく必要があります。
汎用入出力ポートです。
I
TX1
CAN1 の TX1 出力端子です。
PB0
40
汎用入出力ポートです。
H
PWM1P0
ステッパモータコントローラの PWM 出力端子です。
PB1
41
汎用入出力ポートです。
H
PWM1M0
ステッパモータコントローラの PWM 出力端子です。
PB2
42
汎用入出力ポートです。
H
PWM2P0
ステッパモータコントローラの PWM 出力端子です。
PB3
43
汎用入出力ポートです。
H
PWM2M0
ステッパモータコントローラの PWM 出力端子です。
PB4
44
汎用入出力ポートです。
H
PWM1P1
ステッパモータコントローラの PWM 出力端子です。
11
第 1 章 概要
表 1.6-1 端子機能一覧表 (3 / 8)
端子番号
端子名
入出力
回路形式
PB5
45
汎用入出力ポートです。
H
PWM1M1
ステッパモータコントローラの PWM 出力端子です。
PB6
46
汎用入出力ポートです。
H
PWM2P1
ステッパモータコントローラの PWM 出力端子です。
PB7
47
汎用入出力ポートです。
H
PWM2M1
ステッパモータコントローラの PWM 出力端子です。
PC0
48
汎用入出力ポートです。
H
PWM1P2
ステッパモータコントローラの PWM 出力端子です。
PC1
49
汎用入出力ポートです。
H
PWM1M2
ステッパモータコントローラの PWM 出力端子です。
PC2
50
汎用入出力ポートです。
H
PWM2P2
ステッパモータコントローラの PWM 出力端子です。
PC3
51
汎用入出力ポートです。
H
PWM2M2
ステッパモータコントローラの PWM 出力端子です。
P97 ∼ P90
汎用入出力ポートです。この機能はアナログ入力指定が禁止
のときに有効になります。
E
54 ∼ 61
AN31 ∼ AN24
A/D コンバータのアナログ入力です。ADER レジスタの指定
がアナログ入力のとき有効となります。
P87 ∼ P80
汎用入出力ポートです。この機能はアナログ入力指定が禁止
のときに有効になります。
E
62 ∼ 69
AN23 ∼ AN16
A/D コンバータのアナログ入力です。ADER レジスタの指定
がアナログ入力のとき有効となります。
P60 ∼ P67
汎用入出力ポートです。この機能はアナログ入力指定が禁止
のときに有効になります。
E
73 ∼ 80
AN0 ∼ AN7
A/D コンバータのアナログ入力です。ADER レジスタの指定
がアナログ入力のとき有効となります。
PF0 ∼ PF7
汎用入出力ポートです。この機能はアナログ入力指定が禁止
のときに有効になります。
E
81 ∼ 88
A/D コンバータのアナログ入力です。ADER レジスタの指定
がアナログ入力のとき有効となります。
AN8 ∼ AN15
PA0
91
汎用入出力ポートです。
H
PWM1P3
ステッパモータコントローラの PWM 出力端子です。
PA1
92
汎用入出力ポートです。
H
PWM1M3
12
機能説明
ステッパモータコントローラの PWM 出力端子です。
第 1 章 概要
表 1.6-1 端子機能一覧表 (4 / 8)
端子番号
端子名
入出力
回路形式
PA2
93
機能説明
汎用入出力ポートです。
H
PWM2P3
ステッパモータコントローラの PWM 出力端子です。
PA3
94
汎用入出力ポートです。
H
PWM2M3
ステッパモータコントローラの PWM 出力端子です。
PE0
95
汎用入出力ポートです。
H
PWM1P4
ステッパモータコントローラの PWM 出力端子です。
PE1
96
汎用入出力ポートです。
H
PWM1M4
ステッパモータコントローラの PWM 出力端子です。
PE2
97
汎用入出力ポートです。
H
PWM2P4
ステッパモータコントローラの PWM 出力端子です。
PE3
98
汎用入出力ポートです。
H
PWM2M4
ステッパモータコントローラの PWM 出力端子です。
PE4
99
汎用入出力ポートです。
H
PWM1P5
ステッパモータコントローラの PWM 出力端子です。
PE5
100
汎用入出力ポートです。
H
PWM1M5
ステッパモータコントローラの PWM 出力端子です。
PE6
101
汎用入出力ポートです。
H
PWM2P5
ステッパモータコントローラの PWM 出力端子です。
PE7
102
汎用入出力ポートです。
H
PWM2M5
ステッパモータコントローラの PWM 出力端子です。
105
MD2
D
モード端子 2 です。この端子の設定により基本動作モードを
設定します。VCC または VSS に接続してください。
106
MD1
D
モード端子 1 です。この端子の設定により基本動作モードを
設定します。VCC または VSS に接続してください。
107
MD0
D
モード端子 0 です。この端子の設定により基本動作モードを
設定します。VCC または VSS に接続してください。
108
INITX
C
外部リセット入力です。
汎用入出力ポートです。UART0 のデータ入力指定が禁止の
ときに有効になります。
P40
109
I
SIN0
UART0 のデータ入力です。UART0 が入力動作をしている間
は , この入力を随時使用しますので意図的に行う以外はポー
トによる出力を停止させておく必要があります。
13
第 1 章 概要
表 1.6-1 端子機能一覧表 (5 / 8)
端子番号
端子名
入出力
回路形式
P41
110
I
UART0 のデータ出力です。この機能は UART0 のデータ出力
指定が許可のときに有効になります。
P42
汎用入出力ポートです。この機能は UART0 のクロック出力
指定が禁止のときに有効になります。
I
UART0 のクロック入出力です。この機能は UART0 のクロッ
ク出力指定が許可のときに有効になります。
SCK0
汎用入出力ポートです。LIN-UART0 のデータ入力指定が禁
止のときに有効になります。
P43
112
I
SIN3
LIN-UART0 のデータ入力です。LIN-UART0 が入力動作をし
ている間は , この入力を随時使用しますので意図的に行う以
外はポートによる出力を停止させておく必要があります。
P44
汎用入出力ポートです。LIN-UART0 のデータ出力指定が禁
止のときに有効になります。
113
I
LIN-UART0 のデータ出力です。この機能は LIN-UART0 の
データ出力指定が許可のときに有効になります。
SOT3
P45
114
I
P50
汎用入出力ポートです。
SIN4
LIN-UART1 のデータ入力です。LIN-UART1 が入力動作をし
ている間は , この入力を随時使用しますので意図的に行う以
外はポートによる出力を停止させておく必要があります。
115
I
CK0
フリーランタイマ 0 の外部クロック入力です。
CS0X
チップセレクト 0 の出力です。外バスモード時に有効になり
ます。
P51
SOT4
汎用入出力ポートです。
I
P52
SCK4
CS2X
LIN-UART1 のデータ出力です。この機能は LIN-UART1 の
データ出力指定が許可のときに有効になります。
チップセレクト 1 の出力です。この機能はチップセレクト 1
出力指定が許可のときに有効になります。
CS1X
14
汎用入出力ポートです。この機能は LIN-UART0 のクロック
出力指定が禁止のときに有効になります。
LIN-UART0 のクロック入出力です。この機能は LIN-UART0
のクロック出力指定が許可のときに有効になります。
SCK3
117
汎用入出力ポートです。UART0 のデータ出力指定が禁止の
ときに有効になります。
SOT0
111
116
機能説明
汎用入出力ポートです。
I
LIN-UART1 のクロック入出力です。この機能は LIN-UART1
のクロック出力指定が許可のときに有効になります。
チップセレクト 2 の出力です。この機能はチップセレクト 2
出力指定が許可のときに有効になります。
第 1 章 概要
表 1.6-1 端子機能一覧表 (6 / 8)
端子番号
端子名
入出力
回路形式
P53
汎用入出力ポートです。
SIN5
LIN-UART2 のデータ入力です。LIN-UART2 が入力動作をし
ている間はこの入力を随時使用しますので意図的に行う以外
はポートによる出力を停止させておく必要があります。
118
I
CK1
フリーランタイマ 1 の外部クロック入力です。
CS3X
チップセレクト 3 の出力です。この機能はチップセレクト 3
出力指定が許可のときに有効になります。
P54
119
120
SOT5
汎用入出力ポートです。
I
外バスリードストローブ出力です。外バスモード時に有効に
なります。
P55
汎用入出力ポートです。
SCK5
I
OUT0
汎用入出力ポートです。
I
P57
123
アウトプットコンペアの出力です。
外バスライトストローブ出力です。外バスモード時 WR1X の
出力を許可にすると有効になります。
WR1X
OUT1
LIN-UART2 のクロック入出力です。この機能は LIN-UART2
のクロック出力指定が許可のときに有効になります。
外バスライトストローブ出力です。外バスモード時 WR0X の
出力を許可にすると有効になります。
P56
122
LIN-UART2 のデータ出力です。この機能は LIN-UART2 の
データ出力指定が許可のときに有効になります。
RDX
WR0X
121
機能説明
汎用入出力ポートです。
J
アウトプットコンペアの出力です。
RDY
外部レディ入力です。この機能は外部レディ入力指定が許可
のときに有効になります。
P46
汎用入出力ポートです。
SGA
I
サウンドジェネレータ端子です。
ASX
アドレスストローブ出力です。この機能はアドレスストロー
ブ出力が許可のときに有効になります。
P47
汎用入出力ポートです。
SGO
124
サウンドジェネレータ端子です。
I
SYSCLK
システムクロック出力です。この機能はシステムクロック出
力指定が許可のときに有効になります。外バス動作周波数と
同じクロックを出力します (STOP 時に停止します )。
15
第 1 章 概要
表 1.6-1 端子機能一覧表 (7 / 8)
端子番号
端子名
入出力
回路形式
PG0
125
汎用入出力ポートです。
I
PPG タイマ 0 の出力です。この機能は PPG タイマ 0 の出力
指定が許可のときに有効になります。
PPG0
128
X1
A
メインクロック ( 発振 ) 出力です。メインクロック
129
X0
A
メインクロック ( 発振 ) 入力です。メインクロック
PG1
130
131
132
133
TOT0
汎用入出力ポートです。
I
リロードタイマ 0 の外部タイマ出力です。
PPG2
PPG タイマ 2 の出力です。この機能は PPG タイマ 2 の出力
指定が許可のときに有効になります。
PG2
汎用入出力ポートです。
TOT1
I
リロードタイマ 1 の外部タイマ出力です。
PPG4
PPG タイマ 4 の出力です。この機能は PPG タイマ 4 の出力
指定が許可のときに有効になります。
PG3
汎用入出力ポートです。
TOT2
I
リロードタイマ 2 の外部タイマ出力です。
PPG6
PPG タイマ 6 の出力です。この機能は PPG タイマ 6 の出力
指定が許可のときに有効になります。
PD0
汎用入力ポートです。
TIN0
リロードタイマ 0 の外部イベント入力端子です。
IN0
K
インプットキャプチャ 0 のトリガ入力です。インプットキャ
プチャトリガ入力を設定し , 入力ポートを設定した場合に入
力できます。インプットキャプチャ入力として選択した場合
は , この入力を随時使用しますので意図的に行う以外はポー
トによる出力を停止させておく必要があります。
PWC0 のパルス幅カウンタ 0 入力です。この機能は PWC0 の
パルス幅カウンタ 0 入力が許可のときに有効になります。
PWC0
PD1
汎用入力ポートです。
TIN1
リロードタイマ 1 の外部イベント入力端子です。
134
K
IN1
16
機能説明
インプットキャプチャ 1 のトリガ入力です。インプットキャ
プチャトリガ入力を設定し , 入力ポートを設定した場合に入
力できます。インプットキャプチャ入力として選択した場合
は , この入力を随時使用しますので意図的に行う以外はポー
トによる出力を停止させておく必要があります。
第 1 章 概要
表 1.6-1 端子機能一覧表 (8 / 8)
端子番号
入出力
回路形式
端子名
PD2
汎用入力ポートです。
TIN2
リロードタイマ 2 の外部イベント入力端子です。
IN2
インプットキャプチャ 2 のトリガ入力です。インプットキャ
プチャトリガ入力を設定し , 入力ポートを設定した場合に入
力できます。インプットキャプチャ入力として選択した場合
は , この入力を随時使用しますので意図的に行う以外はポー
トによる出力を停止させておく必要があります。
PD3
汎用入力ポートです。
IN3
インプットキャプチャ 3 のトリガ入力です。インプットキャ
プチャトリガ入力を設定し , 入力ポートを設定した場合に入
力できます。インプットキャプチャ入力として選択した場合
は , この入力を随時使用しますので意図的に行う以外はポー
トによる出力を停止させておく必要があります。
135
K
136
K
PD4 ∼ PD7
137 ∼ 140
機能説明
COM0 ∼ COM3
PPG1, PPG3,
PPG5, PPG7
汎用入出力ポートです。
F
LCDC の COM0 ∼ COM3 出力です。
PPG タイマ 1, 3, 5, 7 の出力です。この機能は PPG タイマ 1, 3,
5, 7 の出力指定が許可のときに有効になります。
[ 電源・GND 端子 ]
端子番号
端子名
機能説明
19, 127
VSS
GND 端子です。すべて同電位でお使いください。
18, 126
VCC
電源端子です。すべて同電位でお使いください。
70
AVCC
A/D コンバータ用のアナログ電源端子です。
71
AVRH
A/D コンバータ用のアナログ基準電源端子です。
72
AVSS/
AVRL
A/D コンバータ用のアナログ GND/ アナログ基準電源端子です。
20
VCC3C
内部レギュレータ用のコンデンサ結合端子です。
38, 52, 89, 103
DVCC
SMC 用の電源端子です。
39, 53, 90, 104
DVSS
SMC 用の GND 端子です。
17
第 1 章 概要
1.7
入出力回路形式
入出力回路形式を示します。
■ 入出力回路形式
表 1.7-1 入出力回路形式 (1 / 3)
分類
A
回路形式
備考
クロック入力
高速用 ( メインクロック原発振 )
発振帰還抵抗 約 1MΩ
クロック入力
低速用 ( サブクロック原発振 )
発振帰還抵抗 約 7MΩ
X1
X0
スタンバイ制御
B
X1A
X0A
スタンバイ制御
C
• ヒステリシス入力
P-ch
P-ch
• プルアップ抵抗付き
プルアップ抵抗値=約 50kΩ(Typ)
• スタンバイ制御なし
N-ch
R
デジタル入力
18
第 1 章 概要
表 1.7-1 入出力回路形式 (2 / 3)
分類
D
回路形式
備考
マスクROM品
ヒステリシス入力
フラッシュメモリ品
• マスク ROM 品
ヒステリシス入力
MD2, MD1 のみプルダウン付き
• フラッシュメモリ品
ヒステリシス入力
Flash テスト用の高電圧制御あり
制御
モード入力
拡散抵抗
E
• CMOS 出力 (4mA)
P-ch
デジタル出力
N-ch
デジタル出力
R
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
• アナログ入力
( 対応する ADE が "1" のときアナロ
グ入力が有効になります )
デジタル入力
スタンバイ制御
アナログ入力
F
P-ch
デジタル出力
• CMOS 出力 (4mA)
• LCDC 出力
N-ch
デジタル出力
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
R
LCDC出力
R
ヒステリシス入力
スタンバイ制御
G
P-ch
N-ch
デジタル出力
デジタル出力
LCDC出力
R
R
ヒステリシス入力
(Automotiveレベル)
• CMOS 出力 (4mA)
• LCDC 出力
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
• ヒステリシス (CMOS レベル ) 入力
( スタンバイ制御付き )
ヒステリシス入力
R
(CMOSレベル)
スタンバイ制御
19
第 1 章 概要
表 1.7-1 入出力回路形式 (3 / 3)
分類
H
回路形式
備考
P-ch
デジタル出力
N-ch
デジタル出力
• CMOS 出力
PWM 用大電流出力 (30mA)
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
R
デジタル入力
スタンバイ制御
I
• CMOS 出力 (4mA)
P-ch
デジタル出力
N-ch
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
デジタル出力
R
デジタル入力
スタンバイ制御
J
P-ch
N-ch
R
ヒステリシス入力
(AutoMotiveレベル)
R
ヒステリシス入力
(CMOS レベル)
• CMOS 出力 (4mA)
• ヒステリシス (Automotive レベル )
入力 ( スタンバイ制御付き )
• ヒステリシス (CMOS レベル ) 入力
( スタンバイ制御付き )
スタンバイ制御
K
• ヒステリシス入力
(Automotive レベル )
P-ch
• スタンバイ制御付き
N-ch
R
デジタル入力
スタンバイ制御
20
第2章
デバイスの取扱いについて
MB91245/S シリーズの取扱い上の注意について説
明します。
2.1 デバイス取扱い上の注意
21
第 2 章 デバイスの取扱いについて
2.1
デバイス取扱い上の注意
ラッチアップ防止および端子処理について説明します。
■ デバイス取扱い上の注意
● ラッチアップ防止のために
CMOS IC では入力端子や出力端子に VCC 端子より高い電圧や VSS 端子より低い電圧
を印加した場合 , または VCC 端子と VSS 端子との 間に定格を超える電圧を印加した
場合にラッチアップ現象を生じることがあります。ラッチアップが生じると電源電流
が激増し , 素子の熱破壊に至ることがありますので使用に際しては最大定格を超える
ことのないよう十分に注意してください。
● 未使用端子の処理について
使用していない入力端子を開放のままにしておくと誤動作およびラッチアップによる
永久破壊の原因になることがありますので , 2kΩ 以上の抵抗を介してプルアップまた
はプルダウンの処理をしてください。
また , 使用していない入出力端子については出力状態にして開放とするか , 入力状態の
場合は入力端子と同じ処理をしてください。
● 電源端子について
VCC 端子 , VSS 端子が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を
防止するためにデバイス内部で同電位にするべきものどうしを接続してありますが ,
不要輻射の低減・グランドレベルの上昇によるストローブ信号の誤動作の防止・総出
力電流規格の遵守などのため , 必ずそれらすべてを外部で電源およびグランドに接続
してください。
また , 電源供給源からできる限り低インピーダンスで本デバイスの VCC
端子または VSS 端子に接続するような配慮をお願いいたします。
本デバイスの近くで , VCC 端子と VSS 端子との間に 0.1μF 程度のセラミックコンデン
サをバイパスコンデンサとして接続することをお勧めいたします。
本デバイスはレギュレータを内蔵しております。本デバイスを 5V 電源で使用する場合
は , 5V 電源を VCC 端子に供給し , レギュレータ用に必ず VCC3C に 1μF 以上のコンデ
ンサを接続してください。
図 2.1-1 電源接続の例
5V
5V
5V
VCC
DVCC
AVCC
AVRH
AVSS
VSS
DVSS
VCC3C
1μF
GND
22
第 2 章 デバイスの取扱いについて
● 水晶発振回路について
X0 端子 , X1 端子 , X0A 端子 , X1A 端子の近辺のノイズの本デバイスの誤動作の原因と
なります。X0 端子と X1 端子 , X0A 端子と X1A 端子および水晶発振子 ( あるいはセラ
ミック発振子 ) さらにグランドへのバイパスコンデンサはできる限りデバイスの近く
に配置するようにプリント板を設計してください。X0 端子 , X1 端子からの信号を引き
回す場合は , ボード上でシールドしてお使いください。特に X0 端子に隣接する端子を
使用する場合には注意が必要です。
X0 端子 , X1 端子 , X0A 端子 , X1A 端子の周りをグランドで囲むようなプリント板アー
トワークは安定した動作を期待できますので , 強くお勧めいたします。また , 2 系統品
を 1 系統品としてお使いになる場合においてもサブクロックは必須です。
MB91F249S/F248S/248S/247S を使用する場合は , X0A 端子を GND へ接続し , X1A 端子
を開放にしてください。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
● モード端子 (MD0 ∼ MD2) について
これらの端子は , ノイズによる誤動作を防ぐために , VCC 端子用電源または VSS 端子
用電源との間のパターン長をできる限り短く , 低インピーダンスで接続するようにし
てください。
● 電源投入時について
電源投入直後は , 必ず INITX 端子にて設定初期化リセット (INIT) を行ってください。
また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するため , INITX 端子への
"L" レベル入力を発振回路の要求する安定待ち時間の間持続してください ( パワーオン
リセットによるリセットでは , 発振安定待ち時間の設定は最小値に初期化されていま
す)。
● 電源投入時の原発振入力について
電源投入時は , 必ず発振安定待ち解除されるまでの間 , クロックを入力してください。
● A/D コンバータの電源端子処理
A/D コンバータを使用しない場合においても , AVCC=AVRH=VCC, AVSS =VSS となる
ように接続してください。
● A/D コンバータの電源アナログ入力の投入順序
A/D コンバータの電源 (AVCC, AVRH) およびアナログ入力 (AN0 ∼ AN31) の印加は ,
必ずデジタル電源 (VCC) の投入後に行ってください。また , 電源切断時は A/D コンバー
タの電源およびアナログ入力切断の後で , デジタル電源 (VCC) の切断を行ってくださ
い。その際 , AVRH は AVCC を超えないように投入 , 切断を行ってください。アナロ
グ入力と兼用している端子を入力ポートとして使用する場合においても , 入力電圧は
AVCC を超えないようにしてください。
● 高電流出力バッファ端子用電源 (DVCC, DVSS) の取扱い
高電流出力バッファ端子用電源 (DVCC) の印加は , 必ずデジタル電源 (VCC) の投入後
に行ってください。また , 電源切断時は高電流出力バッファ端子用電源切断の後で , デ
ジタル電源 (VCC) の切断を行ってください。
23
第 2 章 デバイスの取扱いについて
高電流出力バッファ端子を汎用ポートとして使用する場合も , 高電流出力バッファ端
子用電源 (DVCC) の印加を行ってください。
高電流出力バッファ端子用の GND 端子 (DVSS) は必ずデジタル GND(VSS) と同電位で
使用してください。
● メインモードからサブモードおよびストップモード遷移時の注意
メインモードからサブモードもしくは , ストップモードへ遷移する場合は , 遷移後メイ
ンクロックを必ず止めてください。また , サブモードもしくは , ストップモードからメ
インモードへ戻る場合は , 発振安定待ち時間を確保してください。
● Flash 書込みについて
サブモードでの Flash 書込みはできませんので , ご注意ください。
● LCD 未使用時の端子処理について
COM0 ∼ COM3 端子と SEG0 ∼ SEG31 端子は , 開放としてください。
24
第3章
CPU および制御部
FR60Lite のアーキテクチャ , 仕様 , 命令など , 機能
を知るための基本的な内容について説明します。
3.1
メモリ空間
3.2
メモリマップ
3.3
内部アーキテクチャ
3.4
プログラミング・モデル
3.5
データ構造
3.6
ワードアライメント
3.7
メモリマップ
3.8
分岐命令
3.9
EIT ( 例外・割込み・トラップ )
3.10
動作モード
3.11
リセット ( デバイスの初期化 )
3.12
クロック生成制御
3.13
デバイス状態制御
25
第 3 章 CPU および制御部
3.1
メモリ空間
MB91245/S シリーズの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニ
アにアクセスを行います。
■ ダイレクトアドレッシング領域
アドレス空間の下記の領域は I/O 用に使用されます。
この領域をダイレクトアドレッシング領域とよび , 命令中で直接オペランドのアドレ
スを指定できます。
ダイレクト領域は , アクセスするデータのサイズにより , 以下のようになります。
26
• バイトデータアクセス
:000H ∼ 0FFH
• ハーフワードデータアクセス
:000H ∼ 1FFH
• ワードデータアクセス
:000H ∼ 3FFH
第 3 章 CPU および制御部
3.2
メモリマップ
本品種のメモリ空間を示します。
■ MB91245/S シリーズのメモリマップ
図 3.2-1 MB91245/S シリーズのメモリ空間
MB91V245A のメモリマップ
シングルチップモード
内ROM外バスモード
外ROM外バスモード
0000 0000H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
I/O(C-CAN)
I/O(C-CAN)
I/O(C-CAN)
アクセス禁止
アクセス禁止
アクセス禁止
ダイレクト
アドレッシング領域
0000 0400H
0001 0000H
0002 0000H
0002 01B4H
0003 8000H
0004 0000H
内蔵RAM32Kバイト
内蔵RAM32Kバイト
I/Oマップを参照
内蔵RAM32Kバイト
アクセス禁止
0005 0000H
アクセス禁止
アクセス禁止
0008 0000H
エミュレーション
SRAM領域
エミュレーション
SRAM領域
外部領域
0010 0000H
アクセス禁止
外部領域
FFFF FFFFH
MB91F249/S のメモリマップ
シングルチップモード
内ROM外バスモード
外ROM外バスモード
0000 0000H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
I/O(C-CAN)
I/O(C-CAN)
I/O(C-CAN)
アクセス禁止
アクセス禁止
アクセス禁止
ダイレクト
アドレッシング領域
0000 0400H
0001 0000H
0002 0000H
0002 01B4H
0003 A000 H
0004 0000H
内蔵RAM24Kバイト
内蔵RAM24Kバイト
I/Oマップを参照
内蔵RAM24Kバイト
アクセス禁止
0005 0000H
アクセス禁止
アクセス禁止
0008 0000 H
フラッシュメモリ
領域
512Kバイト
フラッシュメモリ
領域
512Kバイト
アクセス禁止
外部領域
外部領域
0010 0000H
FFFF FFFFH
各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します
( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。
(続く)
27
第 3 章 CPU および制御部
(続き)
MB91F248/S のメモリマップ
シングルチップモード
内ROM外バスモード
外ROM外バスモード
0000 0000H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
I/O(C-CAN)
I/O(C-CAN)
I/O(C-CAN)
アクセス禁止
アクセス禁止
アクセス禁止
ダイレクト
アドレッシング領域
0000 0400H
0001 0000H
0002 0000H
0002 01B4H
0003 C000H
0004 0000H
内蔵RAM16Kバイト
内蔵RAM16Kバイト
I/Oマップを参照
内蔵RAM16Kバイト
アクセス禁止
0005 0000H
アクセス禁止
アクセス禁止
000C 0000H
フラッシュメモリ
領域
256Kバイト
フラッシュメモリ
領域
256Kバイト
外部領域
0010 0000H
アクセス禁止
外部領域
FFFF FFFFH
MB91248/S のメモリマップ
シングルチップモード
内ROM外バスモード
外ROM外バスモード
0000 0000H
I/O
I/O
I/O
I/O
I/O
I/O
アクセス禁止
アクセス禁止
アクセス禁止
I/O(C-CAN)
I/O(C-CAN)
I/O(C-CAN)
アクセス禁止
アクセス禁止
アクセス禁止
ダイレクト
アドレッシング領域
0000 0400H
0001 0000H
0002 0000H
0002 01B4H
0003 C000H
0004 0000H
内蔵RAM16Kバイト
内蔵RAM16Kバイト
I/Oマップを参照
内蔵RAM16Kバイト
アクセス禁止
0005 0000H
アクセス禁止
アクセス禁止
マスクROM
領域
256Kバイト
マスクROM
領域
256Kバイト
アクセス禁止
外部領域
000C 0000H
外部領域
0010 0000H
FFFF FFFFH
各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します
( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。
(続く)
28
第 3 章 CPU および制御部
(続き)
MB91247/S のメモリマップ
シングルチップモード
内ROM外バスモード
外ROM外バスモード
0000 0000H
I/O
I/O
I/O
da
I/O
I/O
da
I/O
アクセス禁止
アクセス禁止
アクセス禁止
I/O(C-CAN)
I/O(C-CAN)
I/O(C-CAN)
アクセス禁止
アクセス禁止
アクセス禁止
内蔵RAM8Kバイト
内蔵RAM8Kバイト
内蔵RAM8Kバイト
アクセス禁止
アクセス禁止
マスクROM
領域
128Kバイト
マスクROM
領域
128Kバイト
アクセス禁止
外部領域
ダイレクト
アドレッシング領域
0000 0400H
0001 0000H
0002 0000H
0002 01B4H
0003 E000H
0004 0000H
I/Oマップを参照
アクセス禁止
0005 0000H
000E 0000H
外部領域
0010 0000H
FFFF FFFFH
各モードの設定は , INITX ネゲート後のモードベクタフェッチにより決定します
( モードの設定に関しては , 「3.10 動作モード」の「■モード設定」を参照 )。
29
第 3 章 CPU および制御部
3.3
内部アーキテクチャ
MB91245/S シリーズ CPU は , RISC アーキテクチャを採用すると同時に , 組込み用
途に向けた高機能命令を導入した高性能コアです。
■ 内部アーキテクチャの特長
● RISC アーキテクチャの採用
基本命令 1 命令 1 サイクル
● 32 ビットアーキテクチャ
汎用レジスタ 32 ビット× 16 本
● 4G バイトのリニアなメモリ空間
● 乗算器の搭載
32 ビット× 32 ビット乗算 5 サイクル
16 ビット× 16 ビット乗算 3 サイクル
● 割込み処理機能の強化
高速応答速度 (6 サイクル )
多重割込みのサポート
レベルマスク機能 (16 レベル )
● I/O 操作用命令の強化
メモリ−メモリ転送命令
ビット処理命令
● 高いコード効率
基本命令語長 16 ビット
● 低消費電力
スリープモード・ストップモード
● クロック分周比設定機能
30
第 3 章 CPU および制御部
■ 内部アーキテクチャ
FR ファミリの CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構
造を採用しています。
32 ビット ↔ 16 ビットバスコンバータは 32 ビットバス (F-bus) に接続され , CPU と周
辺リソースとのインタフェースを実現します。ハーバード ↔ プリンストンバスコン
バータは I-bus, D-bus 双方に接続され , CPU とバスコントローラとのインタフェースを
実現します。
図 3.3-1 内部アーキテクチャ
FR CPU
I-bus
内蔵RAM
内蔵ROM
D-bus
32
32
32
32
ハーバード↔プリンストン
バスコンバータ
F-bus
32
32
32
X-bus
32
外部バス
16
アドレス
32ビット ↔ 16ビット
バスコンバータ
バスコントローラ
データ
16
16
R-bus
周辺機器/ポート
( 注意事項 ) MB91245/S シリーズでは , 外部バスインタフェース使用時のアドレス幅は 16 ビットまで
です。
31
第 3 章 CPU および制御部
■ CPU
CPU は 32 ビット RISC の FR アーキテクチャをコンパクトにインプリメントしたもの
です。
1 サイクルあたり 1 命令を実行するため , 5 段階の命令パイプライン方式を採用してい
ます。パイプラインは以下のステージから構成されています。
• 命令フェッチ (IF)
…
命令アドレスを出力し , 命令をフェッチします。
• 命令デコード (ID)
… フェッチした命令をデコードします。レジスタの読出
しも行います。
• 実行 (EX)
… 演算を実行します。
• メモリアクセス (MA)
… メモリに対するロードまたはストアのアクセスを行い
ます。
• ライトバック (WB)
…
演算結果 ( またはロードされたメモリデータ ) をレジ
スタに書込みます。
図 3.3-2 命令パイプライン
クロック
命令1
WB
命令2
MA
WB
命令3
EX
MA
WB
命令4
ID
EX
MA
WB
命令5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令6
WB
命令は , 順不同で実行されることはありません。すなわち , 命令 A が命令 B の前のパ
イプラインに入ると , 命令 A は必ず命令 B の前にライトバックステージに達します。
命令の実行は原則として 1 サイクルあたり 1 命令の速度で行われます。ただし , メモリ
ウェイトを伴ったロード・ストア命令 , 遅延スロットを持たない分岐命令 , 複数サイク
ル命令では命令の実行に複数のサイクルが必要となります。また , 命令の供給が遅い場
合も命令の実行速度が低下します。
■ 32 ビット ←→ 16 ビット バスコンバータ
32 ビット幅で高速アクセスされる F-bus と 16 ビット幅でアクセスされる R-bus でイン
タフェースを行い , CPU から内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスがあった場合 , このバスコンバータがそれを 2 回の 16
ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路の一部に
はアクセス幅に関して制限のあるものがあります。
32
第 3 章 CPU および制御部
■ ハーバード ←→ プリンストン バスコンバータ
CPU の命令アクセスとデータアクセスの整合をとり , 外部バスとのスムーズなインタ
フェースを実現します。
CPU は命令バスとデータバスが独立したハーバードアーキテクチャ構造です。一方 ,
外部バスの制御を行うバスコントローラは単一バスのプリンストンアーキテクチャ構
造です。このバスコンバータは CPU の命令アクセスとデータアクセスに優先順位をつ
け , バスコントローラへのアクセスの制御を行います。この働きにより , 外部へのバス
アクセス順位が常に最適化されたものになります。
■ 命令概要
FR ファミリは , 一般的な RISC の命令体系に加え , 組込み用途に最適化された論理演算
とビット操作およびダイレクトアドレッシング命令をサポートしています。各命令は
16 ビット長 ( 一部命令は 32, 48 ビット長 ) ですので , 優れたメモリ使用効率を持ちます。
命令セットは以下の機能グループに分けることができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
標準の算術演算命令 ( 加算 , 減算 , 比較 ) およびシフト命令 ( 論理シフト , 算術演算シフ
ト ) があります。加算と減算については , 多ワード長演算で使用するキャリ付き演算や ,
アドレス計算に便利なフラグ値を変化させない演算も可能です。
さらに , 32 ビット× 32 ビット , 16 ビット× 16 ビットの乗算命令および 32 ビット÷ 32
ビットのステップ除算命令を持ちます。また , レジスタに即値をセットする即値転送命
令や , レジスタ間転送命令も備えています。
算術演算命令はすべて CPU 内の汎用レジスタおよび乗除算レジスタを用いて演算を行
います。
● ロードとストア
ロードとストアは外部メモリに対して読出しと書込みを行う命令です。また , チップ内
の周辺リソース (I/O) への読出しと書込みにも使用されます。
ロードとストアはバイト , ハーフワード , ワードの 3 種類のアクセス長を持ちます。ま
た一般的なレジスタ間接のメモリアドレッシングに加え , 一部の命令についてはディ
スプレースメント付きレジスタ間接やレジスタインクリメント・デクリメント付きレ
ジスタ間接のメモリアドレッシングも可能です。
● 分岐
分岐 , コール , 割込みおよび復帰の命令です。分岐命令は , 遅延スロットを持つものと
持たないものがあり , 用途に応じて最適化を行うことができます。分岐命令の詳細につ
いては「3.8 分岐命令」を参照してください。
33
第 3 章 CPU および制御部
● 論理演算とビット操作
論理演算命令は汎用レジスタ間 , または汎用レジスタとメモリ ( および I/O) 間で AND,
OR, EOR の論理演算を行うことが可能です。またビット操作命令はメモリ ( および I/O)
の内容を直接操作することができます。メモリアドレッシングは一般的なレジスタ間接
です。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は I/O と汎用レジスタ間 , または I/O とメモリ間のアク
セスに使用する命令です。I/O のアドレスをレジスタ間接ではなく命令中で直接指定す
ることにより , 高速 , 高効率なアクセスを行うことができます。一部の命令については
レジスタインクリメント・デクリメント付きレジスタ間接のメモリアドレッシングも
可能です。
● その他
PS レジスタ内のフラグ設定 , スタック操作 , 符号 / ゼロ拡張などを行う命令です。また ,
高級言語対応の関数入口 / 出口 , レジスタマルチロード / ストア命令も備えています。
<注意事項>
CPU の処理能力はフラッシュメモリウェイトレジスタ(FLWC)の設定にも影響を受け
ます。必ずレジスタの設定を最適な値にしてご利用ください。
「28.2 フラッシュメモリの
レジスタ」もご参照ください。
34
第 3 章 CPU および制御部
3.4
プログラミング・モデル
基本プログラミングモデルと各レジスタについて説明します。
■ 基本プログラミングモデル
図 3.4-1 基本プログラミングモデル
32 ビット
[ 初期値 ]
R0
XXXX XXXXH
R1
汎用レジスタ
R12
R13
AC
R14
FP
XXXX XXXXH
R15
SP
0000 0000H
プログラムカウンタ PC
プログラムステータス PS
ILM
SCR
CCR
テーブルベースレジスタ TBR
リターンポインタ
RP
システムスタックポインタ SSP
ユーザスタックポインタ USP
乗除算結果レジスタ
MDH
MDL
35
第 3 章 CPU および制御部
3.4.1
レジスタ
各レジスタについて説明します。
■ 汎用レジスタ
図 3.4-2 汎用レジスタ
32 ビット
[ 初期値 ]
XXXX XXXXH
......
......
R12
R13
R14
R15
...............
R0
R1
AC
FP
SP
XXXX XXXXH
0000 0000H
レジスタ R0 ∼ R15 は汎用レジスタです。各種演算におけるアキュムレータ , およびメ
モリアクセスのポインタとして使用されます。
16本のレジスタのうち, 以下に示すレジスタは特殊な用途を想定しており, そのために
一部の命令が強化されています。
R13:仮想アキュムレータ (AC)
R14:フレームポインタ (FP)
R15:スタックポインタ (SP)
リセットによる初期値は , R0 ∼ R14 は不定です。R15 は , "00000000H" (SSP の値 ) とな
ります。
■ PS (Program Status)
プログラムステータスを保持するレジスタで , ILM, SCR と CCR の 3 つのパートに分か
れています。
図中 , 未定義のビットはすべて予約ビットです。読出し時 , 常に "0" が読み出されます。
書込みは無効です。
bit
31
20
16
ILM
36
10
SCR
87
0
CCR
第 3 章 CPU および制御部
■ CCR (Condition Code Register)
bit
7
6
5
4
3
2
1
0
[ 初期値 ]
−
−
S
I
N
Z
V
C
--00XXXXB
[bit5] S:スタックフラグ
R15 として使用されるスタックポインタを指定します。
値
内容
0
SSP が R15 として使用されます。
EIT 発生時 , 自動的に "0" となります
( ただし , スタックに退避される値はクリアされる前の値です )。
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
RETI 命令実行時は "0" にしてください。
[bit4] I:割込み許可フラグ
ユーザ割込み要求の許可・禁止を制御します。
値
内容
0
ユーザ割込み禁止。
INT 命令実行時 , "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です )。
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御され
ます。
リセットにより "0" にクリアされます。
[bit3] N:ネガティブフラグ
演算結果を "2" の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセットによる初期状態は不定です。
37
第 3 章 CPU および制御部
[bit2] Z:ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセットによる初期状態は不定です。
[bit1] V:オーバフローフラグ
演算に用いたオペランドを "2" の補数で表現される整数であるとみなし , 演算の結
果 , オーバフローが生じたかどうかを示します。
値
内容
0
演算の結果 , オーバフローは生じていないことを示します。
1
演算の結果 , オーバフローが生じたことを示します。
リセットによる初期状態は不定です。
[bit0] C:キャリフラグ
演算により , 最上位ビットからのキャリ , またはボローが発生したかどうかを示し
ます。
値
内容
0
キャリもボローも発生していないことを示します。
1
キャリまたはボローが発生したことを示します。
リセットによる初期状態は不定です。
38
第 3 章 CPU および制御部
■ SCR (System Condition code Register)
bit
10
9
8
[ 初期値 ]
D1
D0
T
XX0B
[bit10, bit9] D1, D0:ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中に , 変更してはいけません。
ステップ除算実行途中にほかの処理を行う場合は , PS レジスタの値を退避・復帰す
ることによりステップ除算の再開が保証されます。
リセットによる初期状態は不定です。
DIV0S 命令の実行により被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[bit8] T:ステップトレーストラップフラグ
ステップトレーストラップを有効にするかどうかを指定するフラグです。
値
内容
0
ステップトレーストラップ無効
1
ステップトレーストラップ有効
このとき , ユーザ用 NMI とユーザ割込みがすべて割込み禁止となりま
す。
リセットにより "0" に初期化されます。
ステップトレーストラップの機能はエミュレータが使用します。エミュレータ使用
時 , ユーザプログラム中に使用することはできません。
39
第 3 章 CPU および制御部
■ ILM
bit
20
19
18
17
16
[ 初期値 ]
ILM4
ILM3
ILM2
ILM1
ILM0
01111B
割込みレベルマスク値を保持するレジスタで , この ILM の保持する値がレベルマスク
に使用されます。
CPU に入力される割込み要求の中で , 対応する割込みレベルが ILM で示されるレベル
よりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0(00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。
元の値が 16 ∼ 31 のとき
新たな値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると ,
( 指定した値 +16) という値が転送されます。
元の値が 0 ∼ 15 のとき
0 ∼ 31 の任意の値が設定可能です。
リセットにより , 15(01111B) に初期化されます。
■ PS レジスタに関する注意事項
一部の命令で PS レジスタを先行処理しているため , 下記の例外動作により , デバッガ
使用時に割込み処理ルーチンでブレークしたり , PS フラグの表示内容が更新されたり
する場合があります。いずれの場合も , EIT から復帰後以降に正しく再処理を行うよう
に設計されていますので , EIT 前後の動作は仕様どおりの処理を行います。
• DIV0U/DIV0S 命令の直前の命令で , (a) ユーザ割込みを受け付けた場合 , (b) ステッ
プ実行を行った場合 , (c) データイベントまたはエミュレータメニューにてブレーク
した場合 , 以下のような動作を行う場合があります。
(1) D0, D1 フラグが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み・NMI またはエミュレータ ) を実行します。
(3) EIT から復帰後 , DIV0U/DIV0S 命令が実行され , D0/D1 フラグが (1) と同じ値に
更新されます。
• ユーザ割込み要因が発生している状態で割込みを許可するために OR CCR, ST ILM,
MOV Ri, PS の各命令が実行されると , 以下のような動作を行います。
(1) PS レジスタが先行して更新されます。
(2) EIT 処理ルーチン ( ユーザ割込み ) を実行します。
(3) EITから復帰後, 上記命令が実行され, PSレジスタが(1)と同じ値に更新されます。
40
第 3 章 CPU および制御部
■ PC (Program Counter)
bit
31
0
[ 初期値 ]
XXXXXXXXH
PC
[bit31 ∼ bit0]
プログラムカウンタで実行している命令のアドレスを示しています。
命令の実行を伴う PC の更新時に bit0 は "0" に設定されます。bit0 が "1" になる可能
性があるのは , 分岐先アドレスとして奇数番地を指定した場合だけです。ただし , そ
の場合でも bit0 は無効であり , 命令は 2 の倍数のアドレスに置く必要があります。
リセットによる初期値は不定です。
■ TBR (Table Base Register)
bit
31
0
[ 初期値 ]
000FFC00H
TBR
テーブルベースレジスタで , EIT 処理の際に使用されるベクタテーブルの先頭アドレス
を保持します。
リセットによる初期値は , "000FFC00H" です。
■ RP (Return Pointer)
bit
31
0
[ 初期値 ]
XXXXXXXXH
RP
リターンポインタで , サブルーチンから復帰するアドレスを保持します。
CALL 命令実行時 , PC の値がこの RP に転送されます。
RET 命令実行時 , RP の内容が PC に転送されます。
リセットによる初期値は不定です。
■ SSP (System Stack Pointer)
bit
31
SSP
0
[ 初期値 ]
00000000H
SSP は , システムスタックポインタです。
S フラグが "0" のとき , R15 として機能します。SSP を明示的に指定することも可能で
す。また , EIT 発生時に , PS と PC を退避するスタックを指定するスタックポインタと
しても使用されます。
リセットによる初期値は "00000000H" です。
41
第 3 章 CPU および制御部
■ USP (User Stack Pointer)
bit
31
0
[ 初期値 ]
XXXXXXXXH
USP
USP は , ユーザスタックポインタです。
S フラグが "1" のとき , R15 として機能します。
USP を明示的に指定することも可能です。
リセットによる初期値は不定です。
RETI 命令で使用することはできません。
■ 乗除算レジスタ (Multiply & Divide register)
bit
31
0
MDH
MDL
乗除算用のレジスタで , 各々 32 ビット長です。
リセットによる初期値は不定です。
乗算実行時
32 ビット× 32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除
算結果格納レジスタに格納されます。
MDH …… 上位 32 ビット
MDL …… 下位 32 ビット
16 ビット× 16 ビットの乗算のときは , 以下のように結果が格納されます。
MDH …… 不定
MDL …… 結果 32 ビット
除算実行時
計算開始時 , 被除数を MDL に格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果
が MDL と MDH に格納されます。
MDH …… 剰余
MDL …… 商
42
第 3 章 CPU および制御部
3.5
データ構造
FR ファミリのデータ配置には , 次の 2 つがあります。
• ビットオーダリング
• バイトオーダリング
■ ビットオーダリング
FR ファミリでは , ビットオーダリングとしてリトルエンディアンを採用しています。
図 3.5-1 ビットオーダリングのビット構成
bit
31
29
30
27
28
25
26
23
24
21
22
19
20
17
18
15
16
13
14
11
12
9
10
7
8
MSB
5
6
3
4
1
2
0
LSB
■ バイトオーダリング
FR ファミリでは , バイトオーダリングとしてビッグエンディアンを採用しています。
図 3.5-2 バイトオーダリングのビット構成
メモリ
bit
7
n 番地
MSB
LSB
bit31
23
15
7
0
10101010B 11001100B 11111111B 00010001B
0
10101010B
(n + 1) 番地 11001100B
(n + 2) 番地 11111111B
(n + 3) 番地 00010001B
43
第 3 章 CPU および制御部
3.6
ワードアライメント
命令やデータはバイト単位でアクセスするため , 配置するアドレスは命令長やデー
タ幅で異なります。
■ プログラムアクセス
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
アドレス端子
00002224H
下位2ビット強制マスク
44
第 3 章 CPU および制御部
3.7
メモリマップ
MB91245/S シリーズのメモリマップについて説明します。
■ メモリマップ
図 3.7-1 にメモリマップを示します。
図 3.7-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を書き換えることにより任意のアドレ
スに配置可能ですが , リセットによる初期化によって , このアドレスに配置されます。
45
第 3 章 CPU および制御部
3.8
分岐命令
FR ファミリでは , 分岐命令によって遅延スロット付きの動作と遅延スロットなしの
動作を指定します。
■ 遅延スロット付き動作
● 命令
以下に示す表記をした命令が , 遅延スロット付きの分岐動作を行います。
JMP:D
@Ri
CALL:D label12
CALL:D @Ri
RET:D
BRA:D
label9
BNO:D
label9
BEQ:D
BNE:D
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
label9
label9
● 動作説明
遅延スロット付きの動作では , 分岐先の命令を実行する前に , 分岐命令の直後 (「遅延
スロット」とよびます ) に置かれた命令を実行した後に分岐します。
分岐動作の前に遅延スロットの命令を実行するため, 見かけ上の実行速度が1サイクル
となります。その代わり , 遅延スロットに有効な命令を入れることができないときは ,
NOP 命令を置かなくてはなりません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA:D
LABEL
; 分岐命令
MOV
R2, R3
; 遅延スロット……分岐の前に実行される
…
LABEL: ST
R3,@R4 ; 分岐先
条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置
かれた命令は実行されます。
遅延分岐命令では , 一部の命令の実行順序が反転するように見えますが , それは PC の
更新動作だけについてであり , その他の動作 ( レジスタの更新・参照など ) はあくまで
記述された順番で実行されます。
以下に , 具体的な説明をします。
• JMP:D @Ri / CALL:D @Ri 命令で参照する Ri は, 遅延スロットの中の命令が Riを更
新しても影響を受けません。
[例]
LDI:32
#Label,
JMP:D
@R0
LDI:8
#0,
R0
; Label に分岐
R0
; 分岐先アドレスには影響を与えない。
…
• RET:D 命令が参照する RP は , 遅延スロットの中の命令が RP を更新しても影響を
受けません。
46
第 3 章 CPU および制御部
[例]
; これより前に設定された RP の示すアドレスへ分岐
RET:D
MOV
R8,
RP
; リターン動作には影響を与えない。
…
• Bcc:D rel 命令が参照するフラグも遅延スロットの命令の影響を受けません。
[例]
R0
; フラグ変化
ADD
#1,
BC:D
Overflow
; 上記の命令の実行結果により分岐
AND
CCR#0
; このフラグ更新は上記分岐命令では参照しない。
…
• CALL:D 命令の遅延スロット中の命令で RP を参照すると , CALL:D 命令により更新
された内容が読み出されます。
[例]
; RP を更新して分岐
CALL:D Label
MOV
RP,
R0
; 上記 CALL:D の実行結果の RP を転送
…
● 制限事項
1. 遅延スロットにおける命令
遅延スロット内で実行できるのは , 以下の条件を満たす命令のみです。
•
1 サイクル命令
•
分岐命令ではないこと
•
順番が変化した場合でも動作に影響を与えない命令
「1 サイクル命令」とは , 命令一覧表中でサイクル数の欄が「1」, 「a」, 「b」, 「c」
または「d」と記載された命令です。
2. ステップトレーストラップ
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , ステップトレースト
ラップは発生しません。
3. 割込み・NMI
遅延スロットを持つ分岐命令の実行と遅延スロットの間では , 割込み・NMI を受理
しません。
4. 未定義命令例外
遅延スロットに未定義命令があった場合 , 未定義命令例外は発生しません。このと
き , 未定義命令は NOP 命令として動作します。
47
第 3 章 CPU および制御部
■ 遅延スロットなし動作
● 命令
以下に示す表記をした命令が , 遅延スロットなしの分岐動作を行います。
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
BHI
label9
label9
label9
label9
● 動作説明
遅延スロットなしの動作では , あくまで命令の並びの順に実行します。直後の命令が分
岐前に実行されることはありません。
[例]
;
命令の並び
ADD
R1, R2
;
BRA
LABEL
; 分岐命令 ( 遅延スロットなし )
MOV
R2, R3
; 実行されない
…
LABEL: ST
R3, @R4 ; 分岐先
遅延スロットなしの分岐命令の実行サイクル数は , 分岐するとき 2 サイクル , 分岐しな
いとき 1 サイクルとなります。
遅延スロットに適当な命令を入れることができないために NOP を明記した遅延スロッ
ト付き分岐命令に比べ , 命令コード効率を上げることができます。
遅延スロットに有効な命令を設置できるときは遅延スロット付きの動作を選択し , そ
うでないときは遅延スロットなしの動作を選択することで , 実行速度とコード効率を
両立させることが可能となります。
48
第 3 章 CPU および制御部
3.9
EIT ( 例外・割込み・トラップ )
EIT とは , 現プログラム実行時にイベントの発生により , そのプログラムの実行を中断
してほかのプログラムを実行することを指し , 例外 (Exception), 割込み (Interrupt),
トラップ (Trap) の総称です。
■ EIT ( 例外 , 割込み , トラップ )
例外とは実行中のコンテキストに関連して発生する事象です。例外を起こした命令か
ら再実行します。
割込みとは実行中のコンテキストとは無関係に発生する事象です。イベント要因は ,
ハードウェアです。
トラップとは実行中のコンテキストに関連して発生する事象です。システムコールの
ようにプログラムで指示するものがあります。トラップを起こした命令の次の命令か
ら再実行します。
■ EIT ( 例外・割込み・トラップ ) の特長
• 割込みに多重割込みをサポート
• 割込みにレベルマスク機能 (15 レベルをユーザが使用可能 )
• トラップ命令 (INT)
• エミュレータ起動用 EIT( ハードウェア / ソフトウェア )
■ EIT 要因
EIT 要因として , 次のものがあります。
• リセット
• ユーザ割込み ( 内部リソース , 外部割込み )
• NMI
• 遅延割込み
• 未定義命令例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
• コプロセッサ不在トラップ
• コプロセッサエラートラップ
■ EIT からの復帰
EIT からの復帰には , RETI 命令を使用します。
49
第 3 章 CPU および制御部
3.9.1
割込みレベル
割込みレベルは 0 ∼ 31 まであり , 5 ビットで管理されます。
■ EIT の割込みレベル
各レベルの割当ては以下のとおりです。
表 3.9-1 割込みレベル
レベル
2 進数
10 進数
00000B
0
割込み要因
注意事項
( システム予約 )
…
…
…
00011B
3
( システム予約 )
00100B
4
INTE 命令
ステップトレーストラップ
00101B
5
( システム予約 )
…
…
…
01110B
14
( システム予約 )
01111B
15
NMI( ユーザ用 )
10000B
16
割込み
10001B
17
割込み
…
…
…
11110B
30
割込み
11111B
31
─
ILM の元の値が 16 ∼ 31 のとき ,
この範囲の値をプログラムにより
ILM に設定することはできません。
─
ILM 設定時 , ユーザ割込み禁止
─
ICR 設定時 , 割込み禁止
操作が可能なのは , 16 ∼ 31 のレベルです。
未定義命令例外 , コプロセッサ不在トラップ , コプロセッサエラートラップ , INT 命令
は , 割込みレベルの影響を受けません。また , ILM を変化させることもありません。
■ I フラグ
割込みの許可・禁止を指定するフラグです。PS レジスタの CCR の bit4 として設けら
れています。
値
50
内容
0
割込み禁止
INT 命令実行時 "0" にクリアされます
( ただし , スタック退避させる値はクリアする前の値です )。
1
割込み許可
割込み要求のマスク処理は , ILM の保持する値により制御されます。
第 3 章 CPU および制御部
■ 割込みレベルマスク (ILM)
割込みレベルマスク値を保持する PS レジスタ (bit20 ∼ bit16) です。
CPU に入力される割込み要求の中で , 対応する割込みレベルが , この ILM で示される
レベルよりも強い場合にのみ割込み要求が受け付けられます。
レベル値は , 0 (00000B) が最強で , 31(11111B) が最弱です。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな値
として設定できるのは 16 ∼ 31 です。0 ∼ 15 の値を設定する命令を実行すると , ( 指定
した値 +16) という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。設定するには STILM
命令を使用します。
■ 割込み・NMI に対するレベルマスク
NMI および割込み要求が発生したときは , 割込み要因の持つ割込みレベル ( 表 3.9-1) が
ILM の保持するレベルマスク値と比較されます。そして , 次の条件が成立したときは
マスクされ , 要求は受理されません。
要因の持つ割込みレベル ≧ レベルマスク値
51
第 3 章 CPU および制御部
3.9.2
ICR (Interrupt Control Register)
割込みコントローラ内に設けられたレジスタで , 割込みの各要求に対するレベルを
設定します。ICR は割込み要求入力の各々に対応して用意されています。ICR は I/O
空間にマッピングされており , CPU からはバスを通してアクセスされます。
■ 割込み制御レジスタ (ICR)
図 3.9-1 に , 割込み制御レジスタ (ICR) のビット構成を示します。
図 3.9-1 割込み制御レジスタ (ICR) のビット構成
bit
7
6
5
4
3
2
1
0
初期値
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
---11111B
−
−
−
R
R/W
R/W
R/W
R/W
[bit4] ICR4
常に "1" です。
[bit3 ∼ bit0] ICR3 ∼ ICR0
対応する割込み要因の割込みレベルの下位 4 ビットです。読出しおよび書込みが可
能です。
bit4 と合わせて , ICR は 16 ∼ 31 の範囲で値を設定することができます。
■ 割込み制御レジスタ (ICR) のマッピング
表 3.9-2 割込み要因と割込み制御レジスタ , 割込みベクタ
対応する割込みベクタ
割込み要因
番号
割込み制御レジスタ
16 進
10 進
アドレス
IRQ00
ICR00
00000440H
10H
16
TBR + 3BCH
IRQ01
ICR01
00000441H
11H
17
TBR + 3B8H
IRQ02
ICR02
00000442H
12H
18
TBR + 3B4H
…
…
…
…
…
…
…
…
ICR45
…
3DH
…
IRQ45
…
0000046DH
61
…
TBR + 308H
IRQ46
ICR46
0000046EH
3EH
62
TBR + 304H
IRQ47
ICR47
0000046FH
3FH
63
TBR + 300H
TBR 初期値:"000F FC00H"
( 注意事項 ) 「第 5 章 割込みコントローラ」を参照してください。
52
第 3 章 CPU および制御部
3.9.3
SSP (System Stack Pointer)
SSP が , EIT の受理および復帰動作時のデータ退避・復帰用スタックを示すポイン
タとして使用されます。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP) は , 32 ビットから構成されています。
図 3.9-2 に , システムスタックポインタ (SSP) のビット構成を示します。
図 3.9-2 システムスタックポインタ (SSP) のビット構成
bit
31
0
[ 初期値 ]
00000000H
SSP
EIT 処理時に内容が 8 減ぜられ , RETI 命令の実行による EIT からの復帰動作時に 8 加
算されます。
リセットによる初期値は "00000000H" です。
SSP は , CCR 中の S フラグが "0" のとき , 汎用レジスタ R15 としても機能します。
■ 割込みスタック
SSP により示される領域で , PC および PS の値が退避・復帰されます。割込み後は SSP
の示すアドレスに PC, (SSP+4) のアドレスに PS が格納されています。
図 3.9-3 割込みスタック
[例]
[ 割込み前 ]
SSP
80000000H
[ 割込み後 ]
SSP
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
53
第 3 章 CPU および制御部
3.9.4
TBR (Table Base Register)
EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
■ テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR) は , 32 ビットから構成されています。
図 3.9-4 に , テーブルベースレジスタ (TBR) のビット構成を示します。
図 3.9-4 テーブルベースレジスタ (TBR) のビット構成
bit
31
0
[ 初期値 ]
000FFC00H
TBR
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスがベクタアドレス
となります。
リセットによる初期値は "000FFC00H" です。
■ EIT ベクタテーブル
TBR の示すアドレスから 1K バイトの領域が EIT 用ベクタ領域となっています。
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr = TBR + vctofs
= TBR + (3FCH - 4 × vct)
vctadr :ベクタアドレス
vctofs :ベクタオフセット
vct
:ベクタ番号
加算結果の下位 2 ビットは常に "00B" として扱われます。
"000FFC00H" ∼ "000FFFFFH" の領域がリセットによるベクタテーブルの初期領域です。
ベクタの一部には特殊な機能が割り当てられています。なお , アーキテクチャ上のベク
タテーブルを表 3.9-3 に示します。
54
第 3 章 CPU および制御部
表 3.9-3 ベクタテーブル (1 / 3)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
リセット *1
0
00
−
3FCH
000FFFFCH
モードベクタ *1
1
01
−
3F8H
000FFFF8H
システム予約
2
02
−
3F4H
000FFFF4H
システム予約
3
03
−
3F0H
000FFFF0H
システム予約
4
04
−
3ECH
000FFFECH
システム予約
5
05
−
3E8H
000FFFE8H
システム予約
6
06
−
3E4H
000FFFE4H
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
INTE 命令
9
09
−
3D8H
000FFFD8H
システム予約
10
0A
−
3D4H
000FFFD4H
システム予約
11
0B
−
3D0H
000FFFD0H
ステップトレーストラップ
12
0C
−
3CCH
000FFFCCH
NMI 要求 (tool)
13
0D
−
3C8H
000FFFC8H
未定義命令例外
14
0E
−
3C4H
000FFFC4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
外部割込み 7
23
17
ICR07
3A0H
000FFFA0H
リロードタイマ 0
24
18
ICR08
39CH
000FFF9CH
リロードタイマ 1
25
19
ICR09
398H
000FFF98H
リロードタイマ 2
26
1A
ICR10
394H
000FFF94H
UART0( 受信 )
27
1B
ICR11
390H
000FFF90H
UART0( 送信 )
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
55
第 3 章 CPU および制御部
表 3.9-3 ベクタテーブル (2 / 3)
割込み番号
割込み要因
割込みレベル オフセット
TBR デフォルト
のアドレス
10 進
16 進
マスク可能要因 *2
34
22
ICR18
374H
000FFF74H
マスク可能要因 *2
35
23
ICR19
370H
000FFF70H
マスク可能要因 *2
36
24
ICR20
36CH
000FFF6CH
マスク可能要因 *2
37
25
ICR21
368H
000FFF68H
マスク可能要因 *2
38
26
ICR22
364H
000FFF64H
マスク可能要因 *2
39
27
ICR23
360H
000FFF60H
マスク可能要因 *2
40
28
ICR24
35CH
000FFF5CH
マスク可能要因 *2
41
29
ICR25
358H
000FFF58H
マスク可能要因 *2
42
2A
ICR26
354H
000FFF54H
マスク可能要因 *2
43
2B
ICR27
350H
000FFF50H
マスク可能要因 *2
44
2C
ICR28
34CH
000FFF4CH
マスク可能要因 *2
45
2D
ICR29
348H
000FFF48H
マスク可能要因 *2
46
2E
ICR30
344H
000FFF44H
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
マスク可能要因 *2
48
30
ICR32
33CH
000FFF3CH
マスク可能要因 *2
49
31
ICR33
338H
000FFF38H
マスク可能要因 *2
50
32
ICR34
334H
000FFF34H
マスク可能要因 *2
51
33
ICR35
330H
000FFF30H
マスク可能要因 *2
52
34
ICR36
32CH
000FFF2CH
マスク可能要因 *2
53
35
ICR37
328H
000FFF28H
マスク可能要因 *2
54
36
ICR38
324H
000FFF24H
マスク可能要因 *2
55
37
ICR39
320H
000FFF20H
マスク可能要因 *2
56
38
ICR40
31CH
000FFF1CH
マスク可能要因 *2
57
39
ICR41
318H
000FFF18H
マスク可能要因 *2
58
3A
ICR42
314H
000FFF14H
マスク可能要因 *2
59
3B
ICR43
310H
000FFF10H
マスク可能要因 *2
60
3C
ICR44
30CH
000FFF0CH
マスク可能要因 *2
61
3D
ICR45
308H
000FFF08H
マスク可能要因 *2
62
3E
ICR46
304H
000FFF04H
遅延割込み要因ビット
63
3F
ICR47
300H
000FFF00H
システム予約 (REALOS にて使用 )
64
40
−
2FCH
000FFEFCH
システム予約 (REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
システム予約
66
42
−
2F4H
000FFEF4H
システム予約
67
43
−
2F0H
000FFEF0H
56
第 3 章 CPU および制御部
表 3.9-3 ベクタテーブル (3 / 3)
割込み番号
10 進
16 進
システム予約
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
−
∼
∼
TBR デフォルト
のアドレス
∼
割込みレベル オフセット
∼
割込み要因
255
FF
−
000H
000FFC00H
INT 命令で使用
*1
TBR の値を変更してもリセットベクタとモードベクタは常に固定アドレス "000FFFFCH", "000FFFF8H"
が使用されます。
*2
マスク可能要因は各品種により定義されます。
本品種におけるベクタテーブルは「付録 B 割込みベクタ」を参照してください。
57
第 3 章 CPU および制御部
3.9.5
多重 EIT 処理
複数の EIT 要因が同時に発生した場合 , CPU は 1 つの EIT 要因を受け付け , EIT
シーケンスを実行した後 , 次の EIT 要因の検出を行うという動作を繰り返します。
EIT 要因検出の際に , 受け付けられる EIT 要因がなくなると , CPU は , 最後に受け付
けた EIT 要因に対してハンドラの命令を実行します。
そのため , 複数の EIT 要因が同時に発生した場合 , 各要因のハンドラの実行順序は ,
次の 2 つの要素により決定されます。
• EIT 要因を受け付ける優先順位
• EIT 要因を受け付ける場合にほかの要因がどのようにマスクされるか
■ EIT 要因受理の優先度
EIT 要因受理の優先度とは , PS と PC を退避して PC を更新し ( 必要に応じて ) ほかの
要因のマスク処理を行うという , EIT シーケンスを実行する要因を選ぶときの順番で
す。必ずしも , 先に受理された要因のハンドラが先に実行されるわけではありません。
EIT 要因受理の優先度は , 表 3.9-4 のようになっています。
表 3.9-4 EIT 要因の受理の優先度とほかの要因へのマスク
EIT を受け付け
る優先順位
58
EIT 要因
ほかの要因に対するマスク
1
リセット
ほかの要因は破棄されます。
2
未定義命令例外
取り消されます。
3
INTE 命令
ILM = 4
ほかの要因は破棄されます。
4
INT 命令
I フラグ= 0
5
コプロセッサ不在トラップ
コプロセッサエラートラップ
6
ユーザ割込み
ILM =受け付けた要因のレベル
7
NMI( ユーザ用 )
ILM = 15
8
NMI( エミュレータ用 )
ILM = 4
9
ステップトレーストラップ
ILM = 4
―
第 3 章 CPU および制御部
EIT 要因を受け付けた後のほかの要因に対するマスクの処理を考慮すると , 同時に発生
した EIT 要因の各ハンドラの実行順序は , 表 3.9-5 のようになります。
表 3.9-5 EIT ハンドラの実行順序
EIT 要因
ハンドラの実行順序
1
リセット *
2
未定義命令例外
3
INTE 命令 *
4
ステップトレーストラップ
5
NMI ( ユーザ用 )
6
INT 命令
7
ユーザ割込み
8
コプロセッサ不在トラップ , コプロセッサエラートラップ
*: ほかの要因はクリアされます。
[例]
図 3.9-5 多重 EIT 処理
メインルーチン
NMI のハンドラ
INT 命令の
ハンドラ
優先度
( 高 ) NMI 発生
( 低 ) INT 命令実行
①最初に実行
②次に実行
59
第 3 章 CPU および制御部
3.9.6
EIT の動作
EIT の動作について説明します。
■ EIT の動作
以下の説明で , 転送元の「PC」とは各 EIT 要因を検出した命令のアドレスを示します。
また , 「次の命令のアドレス」とは , EIT を検出した命令により , 以下を意味します。
• LDI:32 のとき …… PC + 6
• LDI:20, COPOP, COPLD, COPST, COPSV のとき …… PC + 4
• その他の命令のとき …… PC + 2
● ユーザ割込み・NMI の動作
ユーザ割込みまたはユーザ用 NMI の割込み要求が発生すると , 以下の順序で要求受理
の可否が判定されます。
[ 割込み要求受理の可否判定 ]
(1) 同時に発生した要求の割込みレベルを比較し, 最も強いレベル(最も小さい数値)
を保持するものが選択されます。比較に使用されるレベルは , マスク可能割込み
については対応する ICR の保持する値が , NMI についてはあらかじめ定められ
た定数が使用されます。
(2) 同じレベルを持つ割込み要求が複数発生しているときは , 最も若い割込み番号
を持つ割込み要求が選択されます。
(3) 割込みレベル ≧ レベルマスク値のとき , 割込み要求はマスクされ受理されませ
ん。
割込みレベル < レベルマスク値のとき , (4) へ。
(4) 選択された割込み要求がマスク可能割込みであるとき , I フラグが "0" ならば割
込み要求はマスクされ , 受理されません。I フラグが "1" ならば (5) へ。選択され
た割込み要求が NMI であるとき , I フラグの値にかかわらず (5) へ。
(5) 上記の条件が成立したとき , 命令処理の切れ目で割込み要求が受理されます。
EIT 要求検出時にユーザ割込み・NMI の要求が受理されると , 受理された割込み要求に
対応した割込み番号を使用して , CPU は以下のように動作します。
なお , 下記において〔動作〕における ( ) はレジスタの指すアドレスを表します。 [ 動作 ]
(1) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) 次の命令のアドレス
→
(SSP)
(5) 受理した要求の割込みレベル
→
ILM
(6) "0"
→
S フラグ
(7) (TBR +受理した割込み要求のベクタオフセット ) →
60
PC
第 3 章 CPU および制御部
割込みシーケンス終了後 , ハンドラの先頭の命令を実行する前に新たな EIT の検出を
行います。この時点で受理可能な EIT が発生していると , CPU は EIT 処理シーケンス
に遷移します。
● INT 命令の動作
INT #u8
u8 で示されるベクタの割込みハンドラへ分岐します。
[ 動作 ]
(1) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) PC + 2
→
(SSP)
(5) "0"
→
I フラグ
(6) "0"
→
S フラグ
(7) (TBR + 3FCH − 4 × u8)
→
PC
● INTE 命令の動作
INTE
ベクタ番号 #9 のベクタの割込みハンドラへ分岐します。
[ 動作 ]
(1) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) PC + 2
→
(SSP)
(5) "00100B"
→
ILM
(6) "0"
→
S フラグ
(7) (TBR + 3D8H)
→
PC
INTE 命令 , およびステップトレーストラップの処理ルーチン中では , INTE 命令は使用
しないでください。また , ステップ実行中は INTE による EIT の発生はありません。
● ステップトレーストラップの動作
PS 中の SCR における T フラグをセットしてステップトレースの機能を許可にしてお
くと , 一命令実行ごとにトラップが発生し , ブレークします。
[ ステップトレーストラップ検出の条件 ]
(1) T フラグ = 1
(2) 遅延分岐命令ではないとき
(3) INTE 命令 , ステップトレーストラップの処理ルーチン以外を実行中であるとき
(4) 以上の条件が成立すると , 命令動作の切れ目でブレークします。
61
第 3 章 CPU および制御部
[ 動作 ]
(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) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) PC
→
(SSP)
(5) "0"
→
S フラグ
(6) (TBR + 3C4H)
→
PC
PC として退避されるのは , 未定義命令例外を検出した命令自身のアドレスです。
● コプロセッサ不在トラップ
実装していないコプロセッサを使用するコプロセッサ命令を実行すると , コプロセッ
サ不在トラップが発生します。
[ 動作 ]
62
(1) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) 次の命令のアドレス
→
(SSP)
(5) "0"
→
S フラグ
(6) (TBR + 3E0H)
→
PC
第 3 章 CPU および制御部
● コプロセッサエラートラップ
コプロセッサを使用しているときにエラーが発生した場合 , 次にそのコプロセッサを
操作するコプロセッサ命令を実行したとき , コプロセッサエラートラップが発生しま
す。
[ 動作 ]
(1) SSP − 4
→
SSP
(2) PS
→
(SSP)
(3) SSP − 4
→
SSP
(4) 次の命令のアドレス
→
(SSP)
(5) "0"
→
S フラグ
(6) (TBR + 3DCH)
→
PC
● RETI 命令の動作
RETI 命令は , EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
(1) (R15)
→
PC
(2) R15 + 4
→
R15
(3) (R15)
→
PS
(4) R15 + 4
→
R15
RETI 命令は , S フラグが "0" の状態で実行する必要があります。
■ 遅延スロットの注意事項
分岐命令の遅延スロットには , EIT に関して制約があります。
「第 3 章 CPU および制御部」の「3.8 分岐命令」を参照してください。
63
第 3 章 CPU および制御部
3.10 動作モード
MB91245/S シリーズの動作モードには , バスモードとアクセスモードがあります。
■ 動作モード
動作モードには , バスモードとアクセスモードがあります。
バスモード
アクセスモード
シングルチップ
内 ROM 外バス
外 ROM 外バス
16 ビットバス幅
8 ビットバス幅
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを指し ,
モード設定端子 (MD2, MD1, MD0) とモードデータ内の ROMA ビットの内容で指定しま
す。
● アクセスモード
アクセスモードとは , 外部データバス幅を制御するモードを示し , モードデータ内の
WTH1, WTH0 ビットと ACR0 ∼ ACR3(Area Configuration Register) 内の DBW1 ビット ,
DBW0 ビットで指定します。
■ バスモード
FR ファミリには , 次に示す 3 つのバスモードがあります。
詳細は 「3.2 メモリマップ」を参照してください。
● バスモード 0 ( シングルチップモード )
内部 I/O, 内蔵 RAM, 内蔵 ROM に対して有効です。それ以外の領域へのアクセスは無
効となります。外部端子は周辺リソース , または汎用ポートとして機能します。バス端
子としては機能しません。
● バスモード 1 ( 内 ROM 外バスモード )
内部 I/O, 内蔵 RAM, 内蔵 ROM に対して有効です。外部アクセスが可能な領域へのア
クセスは外部空間へのアクセスとなります。外部端子の一部はバス端子として機能し
ます。
● バスモード 2 ( 外 ROM 外バスモード )
内蔵 I/O, 内蔵 RAM が有効で , 内蔵 ROM へのアクセスを禁止にして , 外部アクセスが
可能な領域と内蔵 ROM 空間へのアクセスが外部空間へのアクセスとなるモードです。
外部端子の一部はバス端子として機能します。
64
第 3 章 CPU および制御部
■ モード設定
FR ファミリでは , モード端子 (MD2, MD1, MD0) とモードデータで動作モードの設定を
行います。
● モード端子
MD2, MD1, MD0 の 3 端子でモードベクタ , リセットベクタフェッチに関する指定を行
います。
表に示した設定以外は禁止です。
モード端子
MD2, MD1, MD0
リセットベクタ
アクセス領域
モード名
000B
内 ROM モードベクタ
内部
001B
外 ROM モードベクタ
外部
● モードデータ
モードベクタフェッチ (「3.11 リセット ( デバイスの初期化 )」の「3.11.4 リセット動
作」を参照 ) によって内部のモードレジスタ (MODR) に書き込むデータをモードデー
タとよびます。
モードレジスタに設定が行われた後 , 本レジスタの設定に従った動作モードで動作し
ます。
モードデータは , すべてのリセット要因で設定されます。また , ユーザプログラムから
は設定することはできません。
図 3.10-1 モードデータの詳細
bit
31
30
29
28
27
0
0
0
0
0
26
25
24
ROMA WTH1 WTH2
動作モード
設定ビット
[bit31 ∼ bit27] 予約ビット
必ず "00000B" を設定してください。
"00000B" 以外の値を設定したときの動作は保証できません。
[bit26] ROMA : 内部 ROM イネーブルビット
内蔵 ROM 領域を有効にするかどうかを設定します。
ROMA
機能
0
外 ROM モード
内蔵 F-bus RAM は有効 , 内部 ROM 領域
(80000H ∼ 100000H) が外部領域になります。
1
内 ROM モード
内蔵 ROM 領域が有効になります。
備考
65
第 3 章 CPU および制御部
[bit25, bit24] WTH1, WTH0( バス幅指定ビット )
外バスモード時のバス幅指定の設定を行います。
外バスモード時 , この値が ACR0(CS0 領域 ) の DBW1, DBW0 ビットに設定されます。
WTH1
WTH0
0
0
8 ビットバス幅
0
1
16 ビットバス幅
1
0
1
1
機能
−
シングルチップモード
<注意事項>
モードベクタに設定するモードデータは , "000FFFF8H" にバイトデータとして配置する
必要があります。FR ファミリは , バイトエンディアンとしてビッグエンディアンを採用
していますので , 図のように , bit31 ∼ bit24 の最上位バイトに配置してください。
図 3.10-2 モードデータの注意事項
bit 31
23
16
15
8
7
0
誤
000FFFF8H
XXXXXXXX
XXXXXXXX
XXXXXXXX
モードデータ
正
000FFFF8H
モードデータ
XXXXXXXX
XXXXXXXX
XXXXXXXX
000FFFFCH
66
24
リセットベクタ
第 3 章 CPU および制御部
3.11 リセット ( デバイスの初期化 )
リセットが発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解除待
ち状態となります。リセットの解除後は , リセットベクタで示されたアドレスから
処理を開始します。
リセットには次の 4 つの要因があります。
• ウォッチドッグタイマのオーバフロー
• CPU 動作検出機能カウンタのオーバフロー
• 外部リセット端子からのリセット要求
• ソフトウェアリセット要求
■ 概要
リセット要因が発生すると , デバイスはすべてのプログラムおよびハードウェア動作
を停止し , 状態を初期化します。この状態をリセット状態とよびます。
リセット要因の消失により , デバイスは初期状態からプログラムおよびハードウェア
動作を開始します。このリセット状態から動作開始に至る一連の動作をリセットシー
ケンスとよびます。
■ リセット要因
表 3.11-1 にリセットの要因を示します。
表 3.11-1 リセット要因
発振安定待ち
リセット
発生要因
内部発生 リセット
タイミング レベル
メイン
STOP 状態 左記以外
発振停止
外部端子
INITX 端子への "L" 入力
同期
INIT
あり
あり
なし
ソフトウェア
リセット
スタンバイ制御レジスタ
(STCR) の SRST ビット
に "0" 書込み
同期
INIT
あり
-
なし
同期
INIT
あり
-
なし
同期
INIT
あり
-
なし
ウォッチドッグ ウォッチドッグタイマ
タイマ
オーバフロー
CPU 動作検出
CPU 動作検出
カウンタのオーバフロー
リセット要因発生時にはマシンクロックとして発振クロックの 2 分周クロックが使用
されます。
● 外部リセット
外部リセットは , 外部リセット (INITX) 端子に "L" レベルを入力することでリセットを
発生します。
なお , 電源投入時は INITX 端子の入力レベルを "L" とし , 設定初期化リセット (INITX)
をかけてください。また , 電源投入直後は , 発振回路の発振安定待ち時間を確保するた
67
第 3 章 CPU および制御部
め , INITX 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続してく
ださい。
● ソフトウェアリセット
ソフトウェアリセットはスタンバイ制御レジスタ (STCR) の SRST ビットに "0" を書き
込むことによって , 内部リセットを発生します。
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマの起動後 , 定められた時間内に
ウォッチドッグリセット発生遅延レジスタ (WPR) へ連続した "A5H"," 5AH" の書込みが
ない場合に , ウォッチドッグタイマのオーバフローにより発生するリセットです。
● CPU 動作検出リセット
CPU 動作検出リセットは , 電源投入後 , 定められた時間内に低電圧 /CPU 動作検出リ
セット制御レジスタ (LVRC) の CL ビットに "0" の書込みがないとき , CPU 動作検出カ
ウンタのオーバフローによってリセットを発生します。
<注意事項>
電源投入時 , 電圧低下発生時以外のリセット要因では , 書込み動作中 ( 転送系命令実行中 )
にリセット要因が発生した場合 , 命令の終了後にリセット解除待ち状態となります。その
ため , 書込み中にリセットが入力されても正常に書込みを終了します。ただし , ロードマ
ルチ (LDM) 系 , ストアマルチ (STM) 系命令は , 指定したレジスタ分の転送が終了する前に
リセットを受け付けますので , すべてのデータが転送されることを保証できません。
68
第 3 章 CPU および制御部
3.11.1 リセット要因と発振安定待ち時間
4 種類のリセット要因があり , リセット時の発振安定待ち時間がリセット要因によっ
て異なります。
■ リセット要因と発振安定待ち時間
表 3.11-2 にリセット要因と発振安定待ち時間を示します。
表 3.11-2 リセット要因と発振安定待ち時間
発振安定待ち時間
リセット
発生要因
メイン発振停止
STOP 状態
左記以外
外部端子
INITX 端子への "L" 入力
OS ビットの設定値
OS ビットの設定値
なし
ソフトウェア
リセット
スタンバイ制御レジスタ
(STCR) の SRST ビットへ
の "0" 書込み
OS ビットの設定値
-
なし
ウォッチドッグ ウォッチドッグタイマ
タイマ
オーバフロー
OS ビットの設定値
-
なし
CPU 動作検出カウンタ
オーバフロー
OS ビットの設定値
-
なし
CPU 動作検出
発振安定待ち時間の確保は , スタンバイ制御レジスタ (STCR) 内の OS (Oscillation
Stabilization time select) ビットの設定により行います。
表 3.11-3 に OS1, OS0 の設定と発振安定待ち時間について示します。
表 3.11-3 スタンバイ制御レジスタ (STCR) の設定による発振安定待ち時間
メイン発振 4MHz 時
サブ発振 32.768kHz の場合
(φ/2 の周期 )
1μs
61μs
φ × 211
1.024ms
62.5ms
0
φ × 216
32.768ms
2s
1
φ × 214
8.192ms
0.5s
OS1
OS0
0
0
φ × 21 ( 初期値 )
0
1
1
1
発振安定待ち時間
φ:内部ベースクロックの周期で , メイン発振の 2 倍の周期
<注意事項>
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで一般
的に数 ms から十数 ms の発振安定待ち時間を必要とします。そのため , 使用する振動子
に合わせた値を設定してください。
S サフィックスがある製品はサブクロックをサポートしません。
69
第 3 章 CPU および制御部
■ 電源投入時の発振安定待ち時間について
電源投入時は INITX 端子の入力レベルを "L" としてください。電源投入時の "L" レベ
ル入力期間は(振動子の発振時間)+(10 ×ベースクロック)+12μs(内部降圧回路安
定待ち時間)以上を確保してください。以上の設定により , 内部回路に対しては , 自動
的にデバイスにパワーオン安定待ち時間 (217 ×ベースクロック ) が確保されます。そ
の後は , OS ビットに設定された値が , 発振安定待ち時間としてデバイスに確保されま
す。
図 3.11-1 外部リセットと内部動作の関係図(パワーオン待ち時間> INITX "L" 期間(推奨))
Vcc
CLK
INITX
a
b
CPU動作
a :振動子の発振時間
b :10xベースクロック+12μs
パワーオン安定
待ち時間
発振安定
待ち時間
図 3.11-2 外部リセットと内部動作の関係図(パワーオン待ち時間< INITX "L" 期間(推奨))
Vcc
CLK
INITX
a
b
CPU動作
a :振動子の発振時間
b :10xベースクロック+12μs
パワーオン安定
待ち時間
発振安定
待ち時間
■ ストップモード中の INITX 端子による復帰について
ストップモード中の INITX 端子による復帰は , INITX 端子への "L" レベル入力時間を
12μs 以上確保してください ( リセット解除後 , OS ビットの設定時間を待って復帰しま
す )。
70
第 3 章 CPU および制御部
3.11.2 リセットレベル
本品種のリセット動作は 2 種類のレベルに分けられ , それぞれ発生要因および初期
化の内容が異なります。以下 , 各リセットレベルについて説明します。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最強レベルのリセットです。
外部端子入力 , ウォッチドッグリセット , ソフトウェアリセット , CPU 動作検出による
リセットがこの設定初期化リセットに相当します。設定初期化リセット (INIT) 発生時
には , 同時に動作初期化リセット (RST) も発生します。
設定初期化リセット (INIT) により初期化される内容は次のとおりです。
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
• クロック生成 / 制御に関する設定
- クロックソース選択 (CLKS: メインクロック 2 分周 )
- クロック分周設定 ( 周辺 : × 4, CPU: × 1, 外部バス : × 1)
- ウォッチドッグタイマ周期 (WT1, WT0: 216 ×ベースクロック周期 ) *1
- 発振安定待ち時間 (OS1, OS0: 21 ×ベースクロック周期 ) *2
- ストップ時発振抑止 (OSCD1: ストップ中メインクロック発振を停止 )
- タイムベースタイマ割込み (TBIE: 禁止 )
- メイン PLL 逓倍率 (PLL1S: × 1)
- PLL 動作許可 (PLL1E:PLL 停止 )
• 外部バスの CS0 領域に関するすべての設定
- 領域選択レジスタ (ASR0: 開始アドレス "0")
- 領域サイズ (ASZ:512K バイト )
- データバス幅 ( モードデータの値が反映されます )
- 書込みイネーブル (WEN: ライトプロテクト )
- アクセスタイプ (TYP: 通常アクセス , WR0X, WR1X 端子をライトストローブとし
て使用 , WRX は "H" 固定 , RDY 端子による WAIT 挿入無効 )
• ストップ時端子状態制御ビットは , HIZ=1:Hi-Z 状態です。
• 動作初期化リセット (RST) で初期化されるすべての設定
*1: 設定初期化リセット (INIT) 発生により , ウォッチドッグタイマは停止し , 再度プロ
グラム動作により起動するまでは機能しません。
*2: パワーオン以外では初期化されません。
71
第 3 章 CPU および制御部
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常レベルのリセットを動作初期化リセット (RST) とよ
びます。
設定初期化リセット(INIT)発生時には, 同時に動作初期化リセット(RST)も発生します。
動作初期化リセット (RST) により初期化される内容は以下のとおりです。
• プログラム動作
• CPU および内部バス
• クロック生成 / 制御に関する設定
- ウォッチドッグタイマ周期 (WT1, WT0: 216 ×ベースクロック周期 )
- タイムベースタイマ割込み (TBIE: 禁止 )
• 周辺回路のレジスタ設定値
• I/O ポート設定
• デバイスの動作モード ( バスモードおよび外部バス幅の設定 )
72
第 3 章 CPU および制御部
3.11.3 外部リセット端子
外部リセット端子 ( INITX 端子 ) は , リセット入力専用端子で , "L" レベルの入力に
よって内部リセットを発生します。マシンクロックに同期してリセットされますが ,
外部端子は非同期でリセットされます。
■ 外部リセット端子のブロックダイヤグラム
図 3.11-3 内部リセットのブロックダイヤグラム
マシンクロック
(PLL逓倍回路, HCLKの2分周)
INITX
P-ch
端子
P-ch
同期化回路
N-ch
クロック同期
内部リセット信号
入力バッファ
書込み動作中のリセットによるメモリ破壊を防ぐため, INITX端子入力による内部回路
の初期化動作をメモリが破壊されないサイクルで行います。また , 内部回路の初期化に
はクロックが必要です。外部クロックで動作させる場合には , リセット入力時にクロッ
ク入力が必要です。
■ 外部端子のリセットタイミング
外部リセット INITX 端子入力に対して , 各外部端子は非同期にリセットされます。
73
第 3 章 CPU および制御部
3.11.4 リセット動作
リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読
出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作
モードとリセット動作後の実行開始アドレスが決定されます。電源投入後 , ストッ
プからのリセットによる復帰では , 発振安定待ち時間が経過してからモードフェッ
チを行います。
■ リセット動作の概要
図 3.11-4 に , リセット動作フローを示します。
図 3.11-4 リセット動作フロー
電源投入時の外部リセット
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
CPU動作検出リセット
リセット中
停止
メイン発振
発振安定待ちリセット状態
モードデータ取込み
モードフェッチ
(リセット動作)
通常動作
(RUN状態)
74
リセットベクタ取込み
リセットベクタが示すアドレスから
命令コードを読み出し, 命令を実行
動作
第 3 章 CPU および制御部
■ モード端子
モード端子 (MD0 ∼ MD2) は , リセットベクタとモードデータの取込み方法を指定しま
す。リセットベクタとモードデータの取込みはリセットシーケンスで行います。モー
ド端子の詳細は「■モード設定」を参照してください。
■ モードフェッチ
リセットが解除されると , CPU はリセットベクタとモードデータを CPU コア内の該当
レジスタ内に取り込みます。リセットベクタとモードデータはそれぞれ , "FFFFCH",
"FFFF8H" に割り当てられています。CPU は , リセット解除後 , 直ちにこれらのアドレ
スを内部バスに出力し , リセットベクタとモードデータを取り込みます。このモード
フェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。
75
第 3 章 CPU および制御部
3.11.5 リセット要因ビット
リセット発生要因は , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出して識
別することができます。
■ リセット
図 3.11-5 に示すように , それぞれのリセット要因に対応したフリップフロップがあり
ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出すと得ら
れます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッチ
ドッグタイマ制御レジスタ (RSRR) の読出し値をソフトウェアで処理したうえで , 適切
なプログラムへ分岐するようにしてください。
図 3.11-5 リセット要因ビットブロックダイヤグラム
定期的なクリアなし
CPU動作
検出リセット
要求検出回路
INITX端子
定期的なクリアなし RSTビットセット
外部リセット
要求検出回路
ウォッチドッグ
タイマ制御
レジスタ
(RSRR)
システムベース
クロック
D
Q
CL
F/F
CK
D
Q
CL
F/F
CK
ウォッチドッグ
タイマリセット
発生検出回路
D
Q
CL
F/F
CK
RSTビット
書込み検出
回路
Q
PR
パワーオン
リセット
F/F
D
CK
ウォッチドッグタイマ
制御レジスタ
(RSRR)読出し
内部データバス
76
第 3 章 CPU および制御部
■ リセット要因ビットとリセット要因の対応
ウォッチドッグタイマ制御レジスタ (RSRR) のリセット要因ビットの構成を , 図 3.11-6
に , リセット要因ビットの内容とリセット要因の対応を表 3.11-4 に示します。詳細は ,
「3.12 クロック生成制御」を参照してください。
図 3.11-6 リセット要因ビットの構成 ( スタンバイ制御レジスタ )
アドレス
bit15
bit14
0000480H
PON
−
R
R
bit13
bit12
bit11
bit10
bit9
bit8
初期値
WDOG ERST
SRST
−
WT1
WT0
10000000B
R
R
R
R
R
R
R :リードオンリ
− :未定義ビット
表 3.11-4 リセット要因ビットの内容とリセット要因の対応
リセット要因
PON
WDOG
ERST
SRST
パワーオンリセットによるリセット要因
1
*1
*1
*1
ウォッチドッグタイマオーバフローによ
るリセット要求の発生
*1
1
*1
*1
INITX 端子からの外部リセット要求 ,
CPU 動作検出リセット要求の発生 *2
*1
*1
1
*1
ソフトウェアリセット要求の発生
*1
*1
*1
1
*1 :前の状態を保持
*2 :CPU 動作検出リセット要求の発生の場合は , CPU 動作検出リセット制御レジスタ
(LVRC) の CPUF ビットが "1" になります。
77
第 3 章 CPU および制御部
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (RSRR) の対
応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , INITX 端子か
らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し
た場合 , ERST ビットと WDOG ビットの両方が "1" になります。
● リセット要因ビットのクリア
リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (RSRR) を読み出したとき
のみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは , そ
の後 , ほかの要因でリセットが発生してもクリアされません ("1" のままです )。
78
第 3 章 CPU および制御部
3.11.6 発振安定待ち要因
発振安定待ち要因について説明します。
■ リセット (INIT) の解除時
各種要因によるリセットが解除された直後に発振安定待ち状態へ遷移します。
パワーオン時の初期時は発振安定待ち時間は最小値に設定されるため, INITX端子の入
力幅にて安定待ち時間を確保してください。また , メインランおよびサブラン中にメイ
ン発振を停止しない場合のウォッチドッグリセットでは , 発振安定待ち時間を確保し
ません。ウォッチドッグリセットで発振安定待ち時間を確保するのは , 「■ サブ RUN
でメイン発振停止中のウォッチドッグリセット発生時」の場合のみです。
■ ストップモードからの復帰時
ストップモードが解除された直後に発振安定待ち状態へ遷移します。ただし , リセット
(INIT) 要求により解除された場合は , リセット (INIT) 状態に遷移し , リセット (INIT) が
解除された後 , 発振安定待ち状態へ遷移します。
発振安定待ち時間経過後は , ストップモードが解除された要因に対応した状態へと遷
移します。
有効な外部割込み要求入力および , メイン発振安定待ちタイマ割込みの発生による復
帰時 → 通常動作状態へ遷移します。
■ PLL 選択時の異常状態からの復帰時
PLL をソースクロックとして動作しているときに , PLL 制御に何らかの異常 * が発生
した場合 , PLL ロック待ち時間の確保のために , 発振安定待ち時間が必要です。ソフト
ウェアでの対応をお願いします。
発振安定待ち時間経過後は , 通常動作状態へ遷移します。
*: PLL 使用中の逓倍率変更 , PLL 動作許可ビット化け発生など
■ サブ RUN でメイン発振停止中のウォッチドッグリセット発生時
サブクロックをソースクロックとして動作しているときで, OSCCR(メイン発振制御レ
ジスタ ) の bit0 : OSCDS1 ビットによってメイン発振を停止中にウォッチドッグリセッ
トが発生した場合 , リセット (INIT) が解除された直後に発振安定待ち状態に遷移しま
す。発振安定待ち時間 * 経過後は , 通常の動作状態へ遷移します。
*: 発振安定待ち時間の設定は , 初期化されず , 設定していた値で行われます。
S サフィックスがある製品はサブクロックをサポートしません。
79
第 3 章 CPU および制御部
3.12 クロック生成制御
クロックの生成とその制御について説明します。
■ クロック生成制御
内部動作クロックは以下のようにして生成されます。
• ベースクロックの生成
ソースクロックを 2 分周または PLL 発振させ , 基本クロックを生成します。
• 各内部クロックの生成
ベースクロックを分周し , 各部に供給する動作クロックを生成します。
以下 , 各クロック生成とその制御について説明します。
各レジスタ , フラグの詳細な説明は ,「3.12.6 クロック生成制御部のブロックダイヤグ
ラム」および ,「3.12.7 クロック生成制御部のレジスタ詳細説明」を参照してください。
80
第 3 章 CPU および制御部
3.12.1 ソースクロックの選択
ソースクロックの選択について解説します。
■ ソースクロックの選択
外部発振端子である X0/X1, X0A/X1A 端子入力に発振子を接続し , 内蔵発振回路にて
生成した原発振がソースクロックとなります。
外部バスクロックを含むすべてのクロック供給源は , 本品種自身となります。
外部発振端子および内蔵発振回路は, メインクロックとサブクロックの2 種類を使用で
き , 動作中に任意に切り換えて使用することが可能です。
• メインクロック: X0/X1 端子入力から生成し , 高速クロックとして使用すること
を想定したものです。
• サブクロック : X0A/X1A 端子入力から生成し低速クロックとして使用すること
を想定したものです。
システムベースクロックは , 以下のソースクロックのうちから選択して生成します。
• メインクロックを 2 分周したもの
• メインクロックを PLL で逓倍したもの
• サブクロックそのもの
ソースクロックの選択制御は , CLKR( クロックソース制御レジスタ ) の設定によって
行います。
<注意事項>
S サフィックスがある製品はサブクロックをサポートしません。
81
第 3 章 CPU および制御部
3.12.2 PLL 制御
メインクロックに対応した PLL 発振回路について , 動作 ( 発振 ) 許可・禁止と逓倍
率設定を制御することが可能です。
各制御は , CLKR( クロックソース制御レジスタ ) の設定によって行います。
ここでは , 各制御内容について説明します。
■ PLL 動作許可
メイン PLL 発振動作の許可 / 停止は , CLKR( クロックソース制御レジスタ ) の bit10 :
PLL1EN ビットの設定によって行います。
● PLL 動作制御
PLL1EN ビットは , 設定初期化リセット (INIT) 後は "0" に初期化され , メイン PLL の発
振動作は停止しています。停止中は , ソースクロックとしてメイン PLL 出力を選択す
ることはできません。
プログラム動作を開始したら , まずクロックソースとして使用するメイン PLL の逓倍
率を設定し , かつ動作許可した後 , PLL のロック待ち時間経過後にソースクロックを切
り換えてください。この際の PLL ロック待ち時間は , タイムベースタイマ割込みを使
用することを推奨します。
ソースクロックとしてメイン PLL 出力を選択している間は , PLL は動作を停止させる
ことはできません。レジスタへの書込みは無効となります。ストップモードに移行す
る際などで PLL を停止させたい場合は , いったんソースクロックをメインクロックの
2 分周したものに選択し直した後 , PLL を停止させてください。
なお , STCR( スタンバイ制御レジスタ ) の bit0 : OSCD1 ビットにより , ストップモード
中の発振が停止するように設定してある場合 , PLL はストップモード遷移時に自動的
に停止しますので , 動作停止を改めて設定する必要はありません。その後 , ストップ
モードから復帰する際 , PLL は自動的に発振動作を開始します。
82
第 3 章 CPU および制御部
■ PLL 逓倍率
メイン PLL の逓倍率は , CLKR ( クロックソース制御レジスタ ) の bit14 ∼ bit12: PLL1S2 ∼
PLL1S0 ビットによって設定します。
● PLL 逓倍率
設定初期化リセット (INIT) 後は全ビット "0" に初期化されています。
PLL 逓倍率設定を初期値より変更する場合 , プログラム動作開始後 , PLL を動作許可す
る前または同時に設定してください。逓倍率変更後は , ロック待ち時間経過後にソース
クロックを切り換えてください。この際の PLL ロック待ち時間は , タイムベースタイ
マ割込みを使用することを推奨します。
動作中に PLL 逓倍率設定を変更する場合 , いったんソースクロックを PLL 以外に切り
換えてから変更してください。逓倍率変更後は , 上記同様にロック待ち時間経過後に
ソースクロックを切り換えてください。
83
第 3 章 CPU および制御部
3.12.3 発振安定待ち・PLL ロック待ち時間
ソースクロックとして選択するクロックが安定動作状態にない場合 , 発振安定待ち
時間が必要です ( 「3.11.6 発振安定待ち要因」を参照 )。
PLL については , 動作開始後 , 設定された周波数に出力が安定するまでにはロック待
ち時間が必要です。
■ 発振安定待ち・メイン PLL ロック待ち時間
以下 , 各種ケースにおける待ち時間について解説します。
● 電源投入後の待ち時間
電源投入後は , まずメインクロック用発振回路の発振安定待ち時間が必要となりま
す。発振安定待ち時間の設定は , 電源投入時に最大値に初期化されるため , メイン
クロック用発振回路の発振安定待ち時間が確保されます。
この状態においては , PLL は動作許可されていないため , ロック待ち時間はここで
は考慮する必要はありません。
● 設定初期化後の待ち時間
設定初期化リセット (INIT) が解除されると , 発振安定待ち状態へ遷移します。ここ
では , 設定された発振安定待ち時間を内部的に発生します。
この状態においては , PLL は動作許可されていないため , ロック待ち時間はここで
は考慮する必要がありません。
● PLL 動作許可後の待ち時間
プログラム動作開始後 , 停止状態の PLL を動作許可した場合 , ロック待ち時間が経
過しないとその PLL 出力を使用してはいけません。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ
割込みを使用することを推奨します。
● PLL 逓倍率変更後の待ち時間
プログラム動作開始後 , 動作状態の PLL の逓倍率設定を変更した場合も , ロック待
ち時間が経過しないとその PLL 出力を使用してはいけません。
ソースクロックとしてメイン PLL を選択していなければ , ロック待ち時間中もプロ
グラム動作は実行可能です。この際の PLL ロック待ち時間は , タイムベースタイマ
割込みを使用することを推奨します。
● ストップモード復帰後の待ち時間
プログラム動作開始後 , ストップモードに遷移した場合の解除時には , プログラム
にて設定された時間の発振安定待ち時間を内部的に発生します。
ストップモード中に , ソースクロックとして選択しているクロック用発振回路を停
止させる設定の場合, その発振回路の発振安定待ち時間と, 使用しているPLLのロッ
ク待ち時間のうち , 長い方の時間が必要となります。ストップモードに遷移させる
前に , あらかじめ長い方の発振安定待ち時間を設定しておいてください。
84
第 3 章 CPU および制御部
3.12.4 クロック分配
ソースクロックより生成されたベースクロックを元に , 各機能用の動作クロックを
それぞれ作成します。
内部動作クロックは , 全部で 3 種類あり , それぞれが独立に分周比を設定することが
できます。
各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU と内部メモリおよび内部バスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• CPU
• 内蔵 RAM, 内蔵 ROM
• ビットサーチモジュール
• I-bus, D-bus, F-bus, X-bus
• DMA コントローラ
• DSU (On chip Debug Support Unit)
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
■ 周辺クロック (CLKP)
周辺リソースおよびペリフェラルバスに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• ペリフェラル ( 周辺 ) バス
• クロック制御部 ( バスインタフェース部のみ )
• 割込みコントローラ
• I/O ポート
• 外部割込み入力 , UART, 16 ビットタイマなどの周辺リソース
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
■ 外部バスクロック (CLKT)
外部拡張バスインタフェースに使用されるクロックです。
本クロックを使用する回路には , 以下のようなものがあります。
• 外部拡張バスインタフェース
• 外部クロック出力
動作可能な上限周波数を超える周波数になる逓倍率と分周比の組合せは設定しないで
ください。
85
第 3 章 CPU および制御部
3.12.5 クロック分周
各内部動作クロックは , それぞれ独立にベースクロックからの分周比を設定できま
す。この機能により , 各回路に最適な動作周波数を設定します。
■ クロック分周
分周比は , DIVR0( 基本クロック分周設定レジスタ 0) および DIVR1( 基本クロック分周
設定レジスタ 1) にて設定します。各レジスタには各クロックに対応する 4 ビットずつ
の設定ビットがあり , ( レジスタ設定値+ 1) がそのクロックのベースクロックに対する
分周比となります。分周比設定が奇数であっても , 常にデューティ比は 50% となりま
す。
設定値の変更があった場合 , 設定後次のクロックの立上りから変更後の分周比が有効
となります。
分周比設定は , 動作初期化リセット (RST) の発生では初期化されず , リセット発生前の
設定が維持されます。設定初期化リセット (INIT) の発生によってのみ初期化されます。
初期状態からソースクロックを高速なものに変更する前に必ず分周比の設定を行って
ください。
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周
波数を超える設定をした場合 , 動作は保証されません ( ソースクロック選択の変更設定
との順序を間違えないように特に注意してください )。
86
第 3 章 CPU および制御部
3.12.6 クロック生成制御部のブロックダイヤグラム
クロック生成制御部のブロックダイヤグラムを示します。
■ クロック生成制御部のブロックダイヤグラム
図 3.12-1 にクロック生成制御部のブロックダイヤグラムを示します。図中のレジスタ
の詳細は , 「3.12.7 クロック生成制御部のレジスタ詳細説明」を参照してください。
図 3.12-1 クロック生成制御部のブロックダイヤグラム
R-bus
[クロック生成部]
メイン発振
安定待ちタイマ
(サブ選択時用)
X0A*
X1A*
CLKR
レジスタ
発振回路
PLL
メイン
発振
周辺クロック
外部バスクロック
セレクタ
X0
X1
外部バス
クロック分周
CPUクロック
停
止
制
御
セレクタ
周辺クロック分周
セレクタ
CPUクロック分周
セレ クタ
DIVR0,DIVR1
レジスタ
1/2
発振回路
サブ
発振
[ストップ・スリープ制御部]
内部割込み
ストップ状態
STGRレジスタ
内部リセット
状態遷移
制御回路
SLEEP状態
リセット発生
FF
リセット発生
FF
内部リセット(RST)
内部リセット(INIT)
[ リセット要因回路]
INITX端子
RSRRレジスタ
[ ウォッチドッグ制御部]
WPRレジスタ
CTBRレジスタ
ウォッチドッグ
FF
カウンタクロック
タイムベース
カウンタ
セレクタ
TBCRレジスタ
割込み許可
オーバフロー
検出FF
タイムベースタ
イマ割込み要求
* : Sサフィックスがない製品のみ
<注意事項>
S サフィックスがある製品はサブクロックをサポートしません。
87
第 3 章 CPU および制御部
3.12.7 クロック生成制御部のレジスタ詳細説明
クロック生成制御部で使用するレジスタの機能について説明します。
■ RSRR : リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ
図 3.12-2 リセット要因レジスタ / ウォッチドッグタイマ制御レジスタ (RSRR)
bit
アドレス : 00000480H
電源投入時
初期値 (INIT)
初期値 (RST)
15
14
13
12
11
10
9
8
PON
−
WDOG
ERST
SRST
−
WT1
WT0
R
1
*
×
R
0
*
×
R
0
*
×
R
0
×
*
R
0
×
*
R
0
*
×
R
0
0
0
R
0
0
0
R : リードオンリ
* : 要因により変化します。
× : 初期化されません。
直前に発生したリセットの要因の保持 , ウォッチドッグタイマの周期設定および起動
制御を行うレジスタです。
本レジスタを読み出すと , 保持されたリセット要因は読出し後にクリアされます。読み
出すまでの間に複数回のリセットが発生した場合 , リセット要因フラグは累積され , 複
数のフラグがセットされることになります。
本レジスタに書き込むと , ウォッチドッグタイマが起動されます。それ以降はリセット
(RST) が発生するまで , ウォッチドッグタイマは動作を続けます。
[bit15] PON(Power On Reset occurred)
パワーオンによるリセット (INIT) の発生の有無を示します。
0
パワーオンによる INIT は発生していません。
1
パワーオンによる INIT が発生しました。
• 電源投入時 , または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit14] (reserved bit)
このビットは予約ビットです。
88
第 3 章 CPU および制御部
[bit13] WDOG (WatchDOG reset occurred)
ウォッチドッグタイマによるリセット (INIT) の発生の有無を示します。
0
ウォッチドッグタイマによる INIT は発生していません。
1
ウォッチドッグタイマによる INIT が発生しました。
• 電源投入時または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit12] ERST (External ReSeT occurred)
INITX 端子入力 , CPU 動作検出によるリセット (INIT) の発生の有無を示します。
0
INITX 端子入力 , CPU 動作検出による INIT は発生していません。
1
INITX 端子入力 , CPU 動作検出による INIT が発生しました。
• 電源投入時または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit11] SRST (Software ReSeT occured)
STCRレジスタのSRSTビット書込み(ソフトウェアリセット)によるリセット(INIT)
の発生の有無を示します。
0
ソフトウェアリセットによる INIT は発生していません。
1
ソフトウェアリセットによる INIT が発生しました。
• 電源投入時または読出し直後に "0" に初期化されます。
• 読出し可能で , 書込みはビット値に影響を与えません。
[bit10] (reserved bit)
このビットは予約ビットです。
89
第 3 章 CPU および制御部
[bit9, bit8] WT1, WT0 (Watchdog interval Time select)
ウォッチドッグタイマの周期を設定します。
本ビットに書き込む値により , ウォッチドッグタイマの周期を下表に示す 4 種類の
うちから選択します。
ウォッチドッグリセットの発生を WPR への最終 5AH 書込みから
抑止するために最低限必要な
ウォッチドッグリセットが
WPR への書込み間隔
発生するまでの時間
WT1
WT0
0
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
φ : 内部ベースクロックの周期
• リセット (RST) により "00B" に初期化されます。
• 読出し可能で , 書込みはリセット (RST) 後 1 回のみ有効で , それ以降の書込みは
無効です。
90
第 3 章 CPU および制御部
■ STCR : スタンバイ制御レジスタ
図 3.12-3 スタンバイ制御レジスタ (STCR) のビット構成
bit
7
6
アドレス : 00000481H STOP SLEEP
5
4
3
2
HIZ
SRST
OS1
OS0
1
0
OSCD2 OSCD1
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
電源投入時
0
0
1
1
0
0
1
1
初期値 (INIT)
0
0
1
1
×
×
1
1
初期値 (RST)
0
0
×
1
×
×
×
×
R/W: リード / ライト可能
× : 初期化されません。
デバイスの動作モードを制御するレジスタです。
ストップ , スリープの 2 つのスタンバイモードへの遷移 , ストップモード中の端子およ
び発振停止制御を行うほか , 発振安定待ち時間の設定 , ソフトウェアリセットの発行を
行います。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8 : SYNCS bit にて設定します ) を使用したうえで , 以下のシーケンス
を必ず使用してください。
(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 × 5
NOP
NOP
NOP
NOP
NOP
以下に , スタンバイ制御レジスタ (STCR) の各ビットの機能を説明します。
[bit7] STOP (STOP mode)
ストップモードへの遷移を指示します。bit6 : SLEEP ビットと本ビット両方に "1" を
書き込んだ場合は , 本ビットの方が優先となりストップモードへ遷移します。
0
ストップモードへの遷移は行いません ( 初期値 )。
1
ストップモードへ遷移します。
• リセット (RST) およびストップ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
91
第 3 章 CPU および制御部
[bit6] SLEEP (SLEEP mode)
スリープモードへの遷移を指示します。bit7 : STOP ビットと本ビット両方に "1" を
書き込んだ場合は , bit7:STOP ビットの方が優先となりストップモードへ遷移しま
す。
0
スリープモードへの遷移は行いません ( 初期値 )。
1
スリープモードへ遷移します。
• リセット (RST) およびスリープ復帰要因により "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit5] HIZ (HIZ mode)
ストップモード時の端子状態を制御します。
0
ストップモード遷移前の端子状態を維持します。
1
ストップモード中は端子出力をハイインピーダンス状態にします。
( 初期値 )
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
[bit4] SRST (Software ReSeT)
ソフトウェアリセット (INIT) の発行を指示します。
0
ソフトウェアリセットを発行します。
1
ソフトウェアリセットの発行を行いません ( 初期値 )。
• リセット (RST) により "1" に初期化されます。
• 読出しおよび書込みが可能です。読出し値は , 常に "1" となります。
92
第 3 章 CPU および制御部
[bit3, bit2] OS1, OS0 (Oscillation Stabilization time select)
リセット(INIT)後およびストップモード復帰後などにおける発振安定待ち時間を設
定します。
本ビットに書き込む値により , 発振安定待ち時間を下表に示す 4 種類のうちから選
択します。
OS1
OS0
0
0
φ × 21 ( 初期値 )
1.0 μs
0
1
φ × 211
1.0 ms
1
0
φ × 216
32.7 ms
1
1
φ × 214
8.0 ms
発振安定待ち時間
メイン発振 4MHz の場合
(φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期 )
• INITX 端子入力によるリセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit1] OSCD2 (Oscillation Disable mode for XIN2)
サブ発振入力 (X0A, X1A) におけるストップモード時の発振停止を制御します。
0
ストップモード中もサブ発振は停止しません。
1
ストップモード中はサブ発振を停止します ( 初期値 )。
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
S サフィックスがある製品では本ビットへの書込みは無効です。読出しは常に "1" となり
ます。
[bit0] OSCD1 (Oscillation Disable mode for XIN1)
メイン発振入力 (X0, X1) におけるストップモード時の発振停止を制御します。
0
ストップモード中もメイン発振は停止しません。
1
ストップモード中はメイン発振を停止します ( 初期値 )。
• リセット (INIT) により "1" に初期化されます。
• 読出しおよび書込みが可能です。
93
第 3 章 CPU および制御部
■ TBCR : タイムベースカウンタ制御レジスタ
図 3.12-4 タイムベースタイマ制御レジスタ (TBCR) のビット構成
bit
15
14
TBIF
TBIE
R/W
R/W
R/W
R/W
初期値 (INIT)
0
0
×
初期値 (RST)
0
0
×
アドレス : 00000482H
13
12
11
10
9
8
-
-
-
R/W
R/W
R/W
R/W
×
×
×
1
1
×
×
×
×
×
TBC2 TBC1 TBC0
R/W: リード / ライト可能
× : 初期化されません。
タイムベースタイマ割込みなどを制御するレジスタです。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択を行うほか , リセッ
ト動作のオプション機能の設定を行います。
以下に , タイムベースカウンタ制御レジスタ (TBCR) の各ビットの機能を説明します。
[bit15] TBIF (TimeBasetimer Interrupt Flag)
タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間 (bit13 ∼ bit11 : TBC2 ∼ TBC0
ビットにて設定 ) の経過を示します。
bit14 : TBIE ビットにより割込み発生が許可 (TBIE = 1) されているときに本ビットが
"1" になると , タイムベースタイマ割込み要求が発生します。
クリア要因
命令による "0" の書込み
セット要因
設定されたインターバル時間の経過
( タイムベースカウンタ出力の立下りエッジ検出 )
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書込み
してもビット値は変化しません。また , リードモディファイライト (RMW) 系命
令での読出し値は , 常に "1" となります。
[bit14] TBIE (TimeBasetimer Interrupt Enable)
タイムベースタイマ割込み要求出力許可ビットです。
タイムベースカウンタのインターバル時間経過による割込み要求出力を制御しま
す。本ビットが "1" のときに , bit15:TBIF ビットが "1" になるとタイムベースタイマ
割込み要求が発生します。
0
タイムベースタイマ割込み要求出力禁止 ( 初期値 )
1
タイムベースタイマ割込み要求出力許可
• リセット (RST) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
94
第 3 章 CPU および制御部
[bit13 ∼ bit11] TBC2 ∼ TBC0 (TimeBasetimer Counting time select)
タイムベースタイマで使用するタイムベースカウンタのインターバル時間を設定
します。
本ビットに書き込む値により , インターバル時間を下表に示す 8 種類のうちから選
択します。
TBC2
TBC1
TBC0
タイマインターバル時間
原発振 4MHz かつ
PLL が 8 逓倍の場合
0
0
0
φ × 211
64 μs
0
0
1
φ × 212
128 μs
0
1
0
φ × 213
256 μs
0
1
1
φ × 222
131 ms
1
0
0
φ × 223
262 ms
1
0
1
φ × 224
524 ms
1
1
0
φ × 225
1048 ms
1
1
1
φ × 226
2097 ms
φ : 内部ベースクロックの周期で , メイン PLL の出力周期
• 初期値は不定です。割込みを許可する前に必ず値を設定してください。
• 読出しおよび書込みが可能です。
[bit10] (reserved bit)
予約ビットです。
読出し値は不定で , 書込みは動作に影響を与えません。
[bit9, bit8] (reserved bit)
予約ビットです。
読出し値は常に "1" で , 書込みは動作に影響を与えません。
95
第 3 章 CPU および制御部
■ CTBR : タイムベースカウンタクリアレジスタ
bit
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
初期値 (INIT)
×
×
×
×
×
×
×
×
初期値 (RST)
×
×
×
×
×
×
×
×
アドレス : 00000483H
W : ライトオンリ
× : 初期化されません。
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して"A5H", "5AH"を書き込むと, "5AH"書込みの直後にタイムベー
スカウンタを全ビット "0" にクリアします。"5AH" 書込みと "5AH" 書込みの間の時
間に制限はありませんが , "A5H" 書込みの後に "5AH" 以外のデータを書き込むと ,
再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア動作は行いません。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアすると , 発振安定待ち時間の間隔 ,
ウォッチドッグタイマ周期およびタイムベースタイマの周期が一時的に変動します。
96
第 3 章 CPU および制御部
■ CLKR : クロックソース制御レジスタ
bit
15
アドレス : 00000484H
−
14
13
12
11
10
9
8
PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INIT)
0
0
0
0
0
0
0
0
初期値 (RST)
×
×
×
×
×
×
×
×
R/W: リード / ライト可能
× : 初期化されません。
内部ベースクロックとなるクロックソースの選択やメイン PLL の制御を行うレジスタ
です。
本レジスタにてクロックソースを選択します。また , メイン PLL の動作許可および逓
倍率の選択を制御します。
[bit15] (reserved bit)
予約ビットです。本品種では , 本ビットへの書込みは常に "0 " を書き込んでくださ
い。
[bit14 ∼ bit12] PLL1S2 ∼ PLL1S0 (PLL1 ratio Select 2 ∼ 0)
メイン PLL の逓倍率選択ビットです。
メイン PLL の逓倍率を , 下記の組合せのうちから選択します。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。
動作可能な上限周波数を超える設定をしないでください。
PLL1S2 PLL1S1 PLL1S0
メイン PLL 逓倍率
メイン発振 4MHz の場合
0
0
0
× 1 ( 等倍 )
本品種では未サポート
0
0
1
× 2 (2 逓倍 )
本品種では未サポート
0
1
0
× 3 (3 逓倍 )
本品種では未サポート
0
1
1
× 4 (4 逓倍 )
本品種では未サポート
1
0
0
× 5 (5 逓倍 )
本品種では未サポート
1
0
1
× 6 (6 逓倍 )
本品種では未サポート
1
1
0
× 7 (7 逓倍 )
本品種では未サポート
1
1
1
× 8 (8 逓倍 )
φ = 31.25ns ( 32MHz 時 )
φ : 内部ベースクロックの周期
• リセット (INIT) により "000B" に初期化されます。
• 読出しおよび書込みが可能です。
97
第 3 章 CPU および制御部
[bit11] PLL2EN (PLL2 ENable)
サブクロックの選択許可ビットです。
本ビットは , クロックソースとしてサブクロックを選択している間は書換えを禁止
します。また , 本ビットが "0" の間はクロックソースとしてサブクロックを選択す
ることを禁止します (bit9, bit8: CLKS1, CLKS0 ビットの設定を参照 )。
STCR の bit1 : OSCD2 が "1" であると , ストップモード中は本ビットが "1" であって
もサブクロックは停止します。ストップモードよりの復帰後は動作許可に戻りま
す。
0
0 サブクロック選択禁止 [ 初期値 ]
1
1 サブクロック動作許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込み が可能です。
<注意事項>
S サフィックスがある製品では本ビットへの書込みは無効です。読出しは常に "0" となり
ます。
[bit10] PLL1EN (PLL1 ENable)
メイン PLL の動作許可ビットです。
本ビットは , クロックソースとしてメイン PLL を選択している間は書換えを禁止し
ます。また , 本ビットが "0" の間はクロックソースとしてメイン PLL を選択するこ
とを禁止します (bit9, bit8:CLKS1, CLKS0 ビットの設定を参照 )。
スタンバイ制御レジスタ (STCR) の bit0:OSCD1 が "1" であると , ストップモード中
は本ビットが "1" であってもメイン PLL は停止します。ストップモードよりの復帰
後は動作許可に戻ります。
0
メイン PLL 停止 ( 初期値 )
1
メイン PLL 動作許可
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
98
第 3 章 CPU および制御部
[bit9, bit8] CLKS1, CLKS0 (CLocK source Select)
使用するクロックソースを設定します。
本ビットに書き込む値により , クロックソースを下表に示す 3 種類のうちから選択
します。
CLKS1
CLKS0
0
0
X0/X1 よりの原発振入力の 2 分周 ( 初期値 )
0
1
X0/X1 よりの原発振入力の 2 分周
1
0
メイン PLL
1
1
サブクロック
クロックソース設定
• リセット (INIT) により "00B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
bit9:CLKS1 が "1" の間は bit8 : CLKS0 の値を変更することができません。
S サフィックスがある製品では bit8 : CLKS0 への書込みは無効です。読出しは常に "0" と
なります。
[ 変更不可能な組合せ ]
[ 変更可能な組合せ ]
"00B" → "11B"
"00B" → "01B" または "10B"
"01B" → "10B"
"01B" → "11B" または "00B"
"10B" → "01B" または "11B"
"10B" → "00B"
"11B" → "00B" または "10B"
"11B" → "01B"
ストップモードへ移行する際は , 必ずクロックソースを原発振入力の 2 分周に設定
してください。
99
第 3 章 CPU および制御部
■ WPR : ウォッチドッグリセット発生延期レジスタ
bit
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INIT)
×
×
×
×
×
×
×
×
初期値 (RST)
×
×
×
×
×
×
×
×
アドレス : 00000485H
W : ライトオンリ
× : 初期化されません。
ウォッチドッグリセットの発生を延期するためのレジスタです。
本レジスタに連続して "A5H", "5AH" を書き込むと , "5AH" 書込みの直後にウォッチドッ
グタイマの検出用 FF をクリアし , ウォッチドッグリセットの発生を延期します。"A5H"
書込みと "5AH" 書込みの間の時間は制限がありませんが , "A5H" 書込みの後に "5AH" 以
外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH" を書き込んでもクリア
動作は行いません。また , 下表の期間内に両データの書込みを終えないとウォッチドッ
グリセットを発生します。
本レジスタの読出し値は不定です。
RSRR レジスタの WT1(bit9) , WT0(bit8) の状態により下表のように変化します。
RSRR のウォッチドッグリセットの
発生を抑止するために最低限必要な
WPR への書込み間隔
WPR への最終 5AH 書込みから
0
φ × 216 ( 初期値 )
φ × 216 ∼ φ × 217
0
1
φ × 218
φ × 218 ∼ φ × 219
1
0
φ × 220
φ × 220 ∼ φ × 221
1
1
φ × 222
φ × 222 ∼ φ × 223
WT1
WT0
0
ウォッチドッグリセットが
発生するまでの時間
φ : システムベースクロックの周期 , WT1, WT0 は RSRR の bit9, bit8 でウォッチドッグタ
イマ周期設定
ストップ , スリープ , DMA 転送中など , CPU が動作していない間は自動的にクリアを
行いますので , これらの条件が発生すると , ウォッチドッグリセットは自動的に延期さ
れます。
100
第 3 章 CPU および制御部
■ DIVR0: 基本クロック分周設定レジスタ 0
bit
15
14
13
12
11
10
9
8
アドレス : 00000486H
B3
B2
B1
B0
P3
P2
P1
P0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INIT)
0
0
0
0
0
0
1
1
初期値 (RST)
×
×
×
×
×
×
×
×
R/W: リード / ライト可能
× : 初期化されません。
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , CPU および内部バスのクロック (CLKB) と周辺回路およびペリフェ
ラルバスクロック (CLKP) に対する分周比の設定を行います。
<注意事項>
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周波数
を超える設定をした場合, 動作は保証されませんので十分に注意してください。また, ソー
スクロック選択の変更設定順序を間違えないようにしてください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周比
が有効となります。
[bit15 ∼ bit12] B3 ∼ B0 (clkB divide select 3 ∼ 0)
CPU クロック (CLKB) クロック分周比設定ビットです。
CPUと内部メモリおよび内部バスのクロック(CLKB)のクロック分周比を設定します。
本ビットに書き込む値により , CPU および内部バスのクロックのベースクロックに
対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
B2
B1
B0
0
0
0
0
φ
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33MHz
0
1
1
0
φ × 7 (7 分周 )
4.57MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
…
…
…
クロック周波数:原発振 4MHz
およびメイン PLL8 逓倍の場合
B3
1
1
1
1
クロック分周比
32 MHz ( 初期値 )
…
…
φ × 16 (16 分周 )
2 MHz
101
第 3 章 CPU および制御部
φ : 内部ベースクロックの周期
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit11 ∼ bit8] P3 ∼ P0 (clkP divide select 3 ∼ 0)
周辺クロック (CLKP) のクロック分周比設定ビットです。
周辺回路およびペリフェラルバスクロック (CLKP) に対するクロック分周比を設定
します。
本ビットに書き込む値により , 周辺回路およびペリフェラルバスクロックのベース
クロックに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択し
ます。
動作可能な上限周波数を超える周波数になる分周比は設定しないでください。
P1
P0
0
0
0
0
φ
32 MHz
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz( 初期値 )
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33MHz
0
1
1
0
φ × 7 (7 分周 )
4.57MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
…
…
1
1
1
1
クロック分周比
…
φ × 16 (16 分周 )
φ : システムベースクロックの周期
• リセット (INIT) により "0011B" に初期化されます。
• 読出しおよび書込みが可能です。
102
…
P2
…
クロック周波数:原発振 4MHz
およびメイン PLL8 逓倍の場合
P3
2 MHz
第 3 章 CPU および制御部
■ DIVR1: 基本クロック分周設定レジスタ 1
bit
7
6
5
4
3
2
1
0
T3
T2
T1
T0
−
−
−
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
×
×
×
×
×
×
×
×
アドレス : 00000487H
初期値 (INIT)
初期値 (RST)
R/W: リード / ライト可能
× : 初期化されません。
各内部クロックのベースクロックに対する分周比を制御するレジスタです。
本レジスタでは , 外部バスインタフェースクロック (CLKT) の分周比の設定を行います。
<注意事項>
ソースクロックの選択 , メイン PLL の逓倍率の設定 , 分周比の設定の組合せで上限周波数
を超える設定をした場合, 動作は保証されませんので十分に注意してください。また, ソー
スクロック選択の変更設定順序を間違えないようにしてください。
本レジスタの設定の変更があった場合 , 設定後 , 次のクロックレートから変更後の分周比
が有効となります。
[bit7 ∼ bit4] T3 ∼ T0 (clkT divide select 3 ∼ 0)
外部バスクロック (CLKT) のクロック分周比設定ビットです。
外部バスインタフェースクロック (CLKT) のクロック分周比を設定します。
本ビットに書き込む値により , 外部拡張バスインタフェースのクロックのベースクロッ
クに対する分周比 ( クロック周波数 ) を下表に示す 16 種類のうちから選択します。
動作可能な上限周波数は 16MHz ですので , 16MHz を超える周波数になる分周比は
設定しないでください。
T2
T1
T0
0
0
0
0
φ
0
0
0
1
φ × 2 (2 分周 )
16 MHz
0
0
1
0
φ × 3 (3 分周 )
10.7 MHz
0
0
1
1
φ × 4 (4 分周 )
8 MHz
0
1
0
0
φ × 5 (5 分周 )
6.4 MHz
0
1
0
1
φ × 6 (6 分周 )
5.33MHz
0
1
1
0
φ × 7 (7 分周 )
4.57MHz
0
1
1
1
φ × 8 (8 分周 )
4 MHz
…
…
…
…
クロック周波数:
原発振 4MHz および
メイン PLL8 逓倍の場合
T3
1
1
1
1
クロック分周比
32 MHz ( 初期値 )
…
…
φ × 16 (16 分周 )
2 MHz
φ : システムベースクロックの周期
103
第 3 章 CPU および制御部
• リセット (INIT) により "0000B" に初期化されます。
• 読出しおよび書込みが可能です。
外部バスインタフェースを使用しない場合は , "1111B" (16 分周 ) に設定することを
推奨します。
[bit3 ∼ bit0] (reserved bit)
• リセット (INIT) により "0000B" に初期化されます。
• 本ビットへの書込みは , 常に "0000B" を書き込んでください。
■ OSCCR: 発振制御レジスタ
bit
7
6
5
4
3
2
1
0
アドレス : 0000048AH
−
−
−
RTCSRC
−
−
−
OSCDS1
−
R/W
R/W
R/W
−
−
−
R/W
初期値 (INIT)
×
0
0
0
×
×
×
0
初期値 (RST)
×
×
×
×
×
×
×
0
R/W: リード / ライト可能
× : 初期化されません。
サブクロック動作時のメイン発振を制御するレジスタです。
[bit7, bit6, bit5] :(reserved bit)
予約ビットです。
本品種では, 本ビットへの書込みは常に"0"を書き込んでください。
[bit4] RTCSRC: RTC Source Clock Select
RTC へのソースクロックを選択するビットです。
0
メインクロック (4MHz) ( 初期値 )
1
サブクロック (32kHz)
<注意事項>
• 一度 "1" を書き込むと INIT によるリセットでしか "0" に初期化されません。
• RTC 動作を期待する場合 , RTC に供給するクロックが停止していないことが条件とな
ります。
• S サフィックスがある製品では "1" を設定しないでください。
[bit3, bit2, bit1] :(reserved bit)
予約ビットです。
本品種では, 本ビットへの書込みは常に"0"を書き込んでください。
104
第 3 章 CPU および制御部
[bit0] OSCDS1 (OSCilattion Disable on Subclock for XIN1)
サブクロック選択中のメイン発振停止ビットです。
0
サブクロック実行中に , メイン発振を停止しません ( 初期値 )。
1
サブクロック実行中に , メイン発振を停止します。
• リセット (INIT) により "0" に初期化されます。
• 読出しおよび書込みが可能です。
クロックソースとしてサブクロック選択中に本ビットに "1" を書き込むと , メイン発振
を停止します。
本ビットは , メインクロックを選択中は "1" を書込むことはできません。
本ビットが "1" の間はメインクロックを選択することを禁止します。本ビットを "0" に
してメイン発振の安定を待ってからメインクロックに切り換えてください。このとき ,
メイン発振安定待ちタイマを用いて発振安定待ち時間を確保してください。また , 本
ビットによってメイン発振を停止させた状態で , INIT によってクロックソースがメイ
ンクロックに切り換わった場合もメイン発振安定待ち時間が必要になります。このと
き , STCR ( スタンバイ制御レジスタ ) の bit3, bit2 : OS1, OS0 ビットの設定がメイン発
振安定待ち時間を満たさない場合 , 復帰後の動作が保証されません。
このような場合は , STCR:OS1, OS0 ビットはメイン発振安定待ち時間も満たした値を
設定してください。
INITX 端子による INIT 時は , メイン発振が安定するまで INITX 端子に "L" を入力し続
ける必要があります。
発振安定待ちについては , 「3.12.3 発振安定待ち・PLL ロック待ち時間」も参照して
ください。
<注意事項>
S サフィックスがある製品では本ビットへの書込みは動作に影響を与えません。
105
第 3 章 CPU および制御部
3.12.8 クロック制御部が持つ周辺回路
クロック制御部内の周辺回路機能について説明します。
■ タイムベースカウンタ
クロック制御部には, 26ビット長のタイムベースカウンタがあり, 内部ベースクロック
として動作しています。
タイムベースカウンタは , 発振安定待ち時間の計測 (「3.11 リセット ( デバイスの初期
化 )」の「3.11.6 発振安定待ち要因」を参照 ) のほか , 以下の用途に使用されます。
• ウォッチドッグタイマ
システムの暴走検出用のウォッチドッグタイマをタイムベースカウンタのビット
出力を用いて計測します。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを発生します。
● ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムの暴走などで設定したインターバルの間にウォッチドッグリセットの発生
延期動作が行われなくなると , ウォッチドッグリセットとして設定初期化リセット
(INIT) 要求を発生します。
• ウォッチドッグタイマの起動と周期設定
ウォッチドッグタイマは , リセット (RST) 後の 1 回目の RSRR( リセット要因レジス
タ / ウォッチドッグタイマ制御レジスタ ) への書込み動作により起動します。この
とき , ウォッチドッグタイマのインターバル時間を bit9, bit8:WT1, WT0 ビットによ
り設定します。インターバル時間の設定は , この最初の書込みで設定した時間のみ
が有効となり , それ以降の書込みはすべて無視されます。
• ウォッチドッグリセットの発生延期
いったんウォッチドッグタイマを起動すると , プログラムで定期的に WPR( ウォッ
チドッグリセット発生延期レジスタ ) に対して "A5H", "5AH" の順でデータを書き込
む必要があります。この操作により , ウォッチドッグリセット発生用フラグが初期
化されます。
• ウォッチドッグリセットの発生
ウォッチドッグリセット発生用フラグは , 設定したインターバルのタイムベースカ
ウンタ出力の立下りエッジによってセットされます。2 度目の立下りエッジの検出
時にフラグがセットされていると , ウォッチドッグリセットとして設定初期化リ
セット (INIT) 要求を発生します。
• ウォッチドッグタイマの停止
いったんウォッチドッグタイマを起動すると , 動作初期化リセット (RST) が発生す
るまではウォッチドッグタイマを停止することができません。
動作初期化リセット (RST) が発生する以下の状態ではウォッチドッグタイマは停止
し , 再度プログラム動作にて起動するまでは機能しません。
- 動作初期化リセット (RST) 状態
106
第 3 章 CPU および制御部
- 設定初期化リセット (INIT) 状態
- 発振安定待ちリセット (RST) 状態
• ウォッチドッグタイマの一時停止 ( 自動発生延期 )
ウォッチドッグタイマは , CPU のプログラム動作が停止している場合には , いった
んウォッチドッグリセット発生用フラグを初期化し , ウォッチドッグリセットの発
生を延期します。プログラム動作の停止とは具体的には以下の動作を示します。
- スリープ状態
- ストップ状態
- 発振安定待ち RUN 状態
- D-bus( データバス ) に対する DMA 転送中
- エミュレータデバッガ使用によるブレーク中
また , タイムベースカウンタのクリアを行うと , 同時にウォッチドッグリセット発
生用フラグも初期化され , ウォッチドッグリセットの発生が延期されます。
● タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバル割込み発生
用タイマです。
メイン PLL のロック待ち時間やサブクロックなどの発振安定待ち時間など , 最大で
ベースクロック× 227 サイクルまでの , 比較的長時間の時間計測を行う用途に適してい
ます。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジを検出
すると , タイムベースタイマ割込み要求を発生します。
• タイムベースタイマの起動とインターバル設定
タイムベースタイマは , TBCR(タイムベースカウンタ制御レジスタ ) の bit13 ∼ bit11:
TBC2 ∼ TBC0 ビットにてインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタの出力の立下りエッジは
常に検出されているため , インターバル時間の設定後はまず bit15:TBIF ビットをク
リアしてから , bit14 : TBIE ビットを "1" にして割込み要求出力を許可してください。
インターバル時間を変更する際は , あらかじめ bit14 : TBIE ビットを "0" にして割込
み要求出力を禁止しておいてください。
タイムベースカウンタはこれら設定に影響されず常にカウント動作を行っていま
すので , 正確なインターバル割込み時間を得るためには , 割込みを許可する前にタ
イムベースカウンタをクリアしてください。クリアしないと , 割込み許可直後に割
込み要求が発生することがあります。
• プログラムによるタイムベースカウンタのクリア
CTBR( タイムベースカウンタクリアレジスタ ) に対して "A5H", "5AH" の順でデータ
を書き込むと , "5AH" 書込みの直後にタイムベースカウンタを全ビット "0" にクリ
アします。"A5H" 書込みと "5AH" 書込み間の時間は制限がありませんが , "A5H" 書
込みの後に "5AH" 以外のデータを書き込むと , 再度 "A5H" を書き込まないと "5AH"
を書き込んでもクリア動作は行いません。
このタイムベースカウンタのクリアを行うことにより , 同時にウォッチドッグリ
107
第 3 章 CPU および制御部
セット発生用フラグも初期化され , ウォッチドッグリセットの発生がいったん延期
されます。
• デバイス状態によるタイムベースカウンタのクリア
タイムベースカウンタは , 以下のデバイス状態の遷移時に同時に全ビット "0" にク
リアされます。
- ストップ状態
- 設定初期化リセット (INIT) 状態
特に , ストップ状態の場合 , 発振安定待ち時間の計測のためにタイムベースカウン
タが使用されるため , 意図せずにタイムベースタイマのインターバル割込みが発生
することがあります。そのため , ストップモードを設定する前にはタイムベースタ
イマ割込みを禁止し , タイムベースタイマを使用しないようにしてください。
それ以外の状態については, 動作初期化リセット(RST)が発生するため, タイムベー
スタイマ割込みは自動的に禁止されます。
● メイン発振安定待ちタイマ
クロックソースの選択や分周設定の影響を受けず , メインクロックに同期してカウン
トアップする 26 ビットのタイマです。
サブクロック動作中のメイン発振安定待ち時間の計測に使用します。
サブクロックで動作中 , OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 ビット にて , メ
イン発振の制御を行えますが , メイン発振を停止させた後で再度発振開始させた際に ,
本タイマを用いて発振安定待ち時間を計測します。
メインクロックを停止させたサブクロック動作状態からメインクロックに切り換える
際は , 下記の手順で行います。
• メイン発振安定待ちタイマをクリアします。
• OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 ビット を "0" にしてメイン発振を開始
します。
• メイン発振安定待ちタイマを用いてメインクロックが安定するまで待ちます。
• メインクロック安定後, CLKR(クロックソースレジスタ)のbit9, bit8: CLKS1, CLKS0
ビットにてサブクロックからメインクロックに切り換えます。
安定を待たずメインクロックに切り換えると , 不安定なクロックが供給され , その後の
動作は保証されませんので , 必ず安定を待った後にメインクロックに切り換えてくだ
さい。
メイン発振安定待ちタイマの詳細については , 「第 11 章 メイン発振安定待ちタイマ」
を参照してください。
<注意事項>
S サフィックスがある製品はサブクロックをサポートしません。
108
第 3 章 CPU および制御部
3.13 デバイス状態制御
MB91245/S シリーズの各種状態とその制御について説明します。
■ デバイス状態と各遷移
図 3.13-1 に MB91245/S シリーズの状態遷移を示します。
図 3.13-1 MB91245/S シリーズの状態遷移
1
2
3
4
5
6
7
8
9
10
11
12
13
遷移要求の優先順位
INTX端子=0(INIT)
INITX端子=1(INIT解除)
発振安定待ち終了
リセット(RST)解除
ソフトウェアリセット(RST)
スリープ(命令書込み)
ストップ(命令書込み)
割込み
クロックを必要としない外部割込み
メイン→サブ切換え(命令書込み)
サブ→メイン切換え(命令書込み)
ウォッチドッグリセット(INIT)
サブスリープ(命令書込み)
最強
↓
↓
↓
↓
最弱
パワーオン
1
設定初期化リセット(INIT)
発振安定待ち終了
動作初期化リセット(RST)
割込み要求
ストップ
スリープ
設定初期化
(INIT)
2
メインクロックモード
1
メイン発振安定待ち
リセット
メインストップ
9
1
3
1
プログラムリセット
(RST)
発振安定待ちRUN
3
7
1
6
メインスリープ
5
4
12
メインRUN
8
1
1
10
サブクロックモード
サブスリープ
発振安定待ちRUN
12
サブRUN
13
3
1
1
11
8
1
7
5
1
4
プログラムリセット
(RST)
1
9
サブストップ
(時計状態*2)
( 注意事項 )
•
メイン←→サブに切り換える場合は , RUN状態にて切換え後のクロックが安定供給されている状
態でクロックソースレジスタ (CLKR) の bit1:CLKS1, bit0:CLKS0 ビットを切り換えてください。
•
時計タイマ以外を停止 ( 時計状態 ) させるには , サブ RUN 状態にてスタンバイ制御レジスタ
(STCR) bit1:OSCD2 を "0", bit0:OSCD1 を "1" に設定した状態でストップモードに移行してくだ
さい ( 同時書込み可能 ) 。
•
S サフィックスがある製品はサブクロックモードをサポートしません。
109
第 3 章 CPU および制御部
本品種のデバイスの動作状態には以下のものがあります。
• RUN 状態 ( 通常動作 )
• スリープ状態
• ストップ状態
• 発振安定待ち RUN 状態
• 発振安定待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
以下 , 各動作状態について説明します。
● RUN 状態 ( 通常動作 )
プログラム実行状態です。
すべての内部クロックが供給され , すべての回路が動作可能な状態です。ただし , 16
ビット周辺 ( ペリフェラル ) バスのみは , アクセスが行われていない期間はバスクロッ
クのみ停止しています。
● スリープ状態
プログラム停止状態です。プログラム動作により遷移します。
CPU のプログラム実行のみ停止し , 周辺回路は動作可能な状態です。各種内蔵メモリ
および内部 / 外部バスは DMA コントローラが要求しない限り停止状態です。
有効な割込み要求の発生により , 本状態は解除され , RUN 状態 ( 通常動作 ) へ遷移し
ます。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 動作初期化リセット (RST) 状態へ遷移し
ます。
● ストップ状態
デバイス停止状態です。プログラム動作により遷移します。
すべての内部回路が停止します。内部クロックはすべて停止し , 発振回路およびメイン
PLL は設定により停止させることが可能です。また , 設定により外部端子を一律ハイ
インピーダンスにすることが可能です ( 一部端子を除く )。
特定の ( クロックを必要としない ) 有効な割込み要求の発生や , 発振動作中のメイン発
振安定待ちタイマ割込み要求の発生により , 発振安定待ち RUN 状態へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
● 発振安定待ち RUN 状態
デバイス停止状態です。ストップ状態よりの復帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていたメイン PLL は動作しています。
110
第 3 章 CPU および制御部
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
設定された発振安定待ち時間の経過により , RUN 状態 ( 通常動作 ) へ遷移します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
動作初期化リセット (RST) 要求の発生により , 発振安定待ちリセット (RST) 状態へ遷移
します。
● 発振安定待ちリセット (RST) 状態
デバイス停止状態です。ストップ状態または設定初期化リセット (INIT) 状態からの復
帰後に遷移します。
クロック発生制御部 ( タイムベースカウンタおよびデバイス状態制御部 ) を除くすべて
の内部回路が停止します。内部クロックはすべて停止しますが , 発振回路および動作許
可されていたメイン PLL は動作しています。
ストップ状態などでの外部端子のハイインピーダンス制御は解除されます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定された発振安定待ち時間の経過により, 発振安定待ちリセット(RST)状態へ遷移し
ます。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
● 動作初期化リセット (RST) 状態
プログラム初期化状態です。動作初期化リセット (RST) 要求の受付け , または発振安定
待ちリセット (RST) 状態の終了により遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。すべての内部クロックと発振回路および動作許可されて
いたメイン PLL は動作しています。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求の消失により , RUN 状態 ( 通常動作 ) へ遷移し , 動作初
期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰後
だった場合は , 設定初期化リセットシーケンスを実行します。
設定初期化リセット (INIT) 要求の発生により , 設定初期化リセット (INIT) 状態へ遷移
します。
● 設定初期化リセット (INIT) 状態
全設定初期化状態です。設定初期化リセット (INIT) 要求の受付けにより遷移します。
CPU のプログラム実行は停止し , プログラムカウンタは初期化されます。周辺回路は
すべて初期化されます。発振回路は動作しますが , メイン PLL は動作を停止します。
すべての内部クロックは , リセット要因の入力期間中は停止しますが , それ以外では動
作します。
内部回路に対し , 設定初期化リセット (INIT) および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求の消失により本状態は解除され , 発振安定待ちリセッ
ト (RST) 状態へ遷移します。その後 , 動作初期化リセット (RST) 状態を経て , 設定初期
化リセットシーケンスを実行します。
111
第 3 章 CPU および制御部
● 各状態遷移要求の優先順位
どの状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 一部要求
は特定の状態でしか発生しませんので , その状態でしか有効になりません。
[ 最強 ]
設定初期化リセット (INIT) 要求
↓
発振安定待ち時間の終了 ( 発振安定待ちリセット状態および発振安定待ち
RUN 状態のみ発生 )
↓
動作初期化リセット (RST) 要求
↓
有効な割込み要求 (RUN, スリープ , ストップ状態のみ発生 )
↓
ストップモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
[ 最弱 ]
スリープモード要求 ( レジスタ書込み )(RUN 状態のみ発生 )
■ 低消費電力モード
MB91245/S シリーズの状態のうち , スタンバイモード ( 各低消費電力モード ) とその使
用方法について説明します。
MB91245/S シリーズの低消費電力モードには , 以下のものがあります。
• スリープモード
レジスタ書込みにより , デバイスをスリープ状態へ遷移させます。
• ストップモード
レジスタ書込みにより , デバイスをストップ状態へ遷移させます。
以下 , 各モードについて説明します。
● スリープモード
STCR( スタンバイ制御レジスタ ) の bit6 : SLEEP ビットに "1" を書き込むとスリープ
モードとなり , スリープ状態へ遷移します。以降 , スリープ状態からの復帰要因が発生
するまでは , スリープ状態を維持します。
スリープ状態については , 「■ デバイス状態と各遷移」の「●スリープ状態」も参照
してください。
• スリープモードへの移行
スリープモードに入れる場合は , 以下のシーケンスを必ず使用してください。
(LDI
#value_of_sleep, R0)
; value_of_sleep は , 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
STCR( スタンバイ制御レジスタ ) の bit7 : STOP ビットと本ビット両方に "1" を書き
込んだ場合は , bit7 : STOP ビットの方が優先となり , ストップ状態へ遷移します。
112
第 3 章 CPU および制御部
• スリープ状態で停止する回路
- CPU のプログラム実行
以下は , DMA 転送が発生した場合は動作します。
- ビットサーチモジュール
- 各種内蔵メモリ
- 内部 / 外部バス
• スリープ状態で停止しない回路
- 発振回路
- 動作許可されたメイン PLL
- クロック発生制御部
- 割込みコントローラ
- 周辺回路
- メイン発振安定待ちタイマ
- 時計タイマ
- DMA コントローラ
- DSU (On chip Debug Support Unit)
• スリープ状態からの復帰要因
- 有効な割込み要求の発生
ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) 以外の場合 , 割込み要求
が発生するとスリープモードは解除され , RUN 状態 ( 通常動作 ) へ遷移します。
ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) の場合 , 割込み要求が発
生しても , スリープモードは解除されません。
- 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態 へ遷移します。
<注意事項>
各要因の優先順位については , 「■ デバイス状態と各遷移」の「●各状態遷移要求の優先
順位」を参照してください。
• 同期スタンバイ動作
SLEEP ビットへの書込みのみではスリープ状態へは遷移しません。その後 , STCR
( スタンバイ制御 ) レジスタを読み出すことによってスリープ状態へ遷移します。
スリープモードを使用する場合は , 「・スリープモードへの移行」にあるシーケンス
を 必ず使用してください。
113
第 3 章 CPU および制御部
● ストップモード
STCR( スタンバイ制御レジスタ ) の bit7:STOP ビットに "1" を書き込むとストップモー
ドとなり , ストップ状態へ遷移します。以降 , ストップ状態からの復帰要因が発生する
までは , ストップ状態を維持します。
なお , ストップモードでは , メイン発振は停止してください。
ストップ状態については , 「■ デバイス状態と各遷移」の「●ストップ状態」も参照
してください。
• ストップモードへの移行
ストップモードに入れる場合は , 以下のシーケンスを必ず使用してください。
(LDI
#value_of_stop, R0)
; value_of_stop は , STCR へのライトデータ
(LDI
#_STCR, R12)
; _STCR は , STCR のアドレス (481H)
STB
R0, @R12
; スタンバイ制御レジスタ (STCR) への書込み
LDUB
@R12, R0
; 同期スタンバイのための STCR リード
LDUB
@R12, R0 ; もう一度 STCR をダミーリード
NOP NOP
; タイミング調整用の NOP × 5
NOP
NOP
NOP
STCR( スタンバイ制御レジスタ ) の bit6 : SLEEP ビットと本ビット両方に "1" を書
き込んだ場合は , bit7 : STOP ビットの方が優先となり , ストップ状態へ遷移します。
• ストップ状態で停止する回路
- 発振回路は停止して使用すること
- STCR( スタンバイ制御レジスタ ) の bit0 : OSCD1 ビットを "1" に設定すること
• ストップ状態での端子のハイインピーダンス制御
STCR( スタンバイ制御レジスタ ) の bit5 : HIZ ビットに "1" が設定してあると , ス
トップ状態中の端子出力をハイインピーダンス状態にします。本制御の対象となる
端子は , 「付録 C リセットによる各端子状態」を参照してください。
STCR( スタンバイ制御レジスタ ) の bit5 : HIZ ビットに "0" が設定してあると , ス
トップ状態中の端子出力はストップ状態への遷移前の値を保持します。詳細は ,「付
録 C リセットによる各端子状態」を参照してください。
• ストップ状態からの復帰要因
- 特定の ( クロックを必要としない ) 有効な割込み要求の発生
一部の外部割込みのみが有効です。
ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) 以外の場合 , 割込み要求
が発生するとストップモードは解除され , 発振安定待ち RUN 状態へ遷移します。
ICR( 割込み制御 ) レジスタの設定が割込み禁止 (1111B) の場合 , 割込み要求が発
生してもストップモードは解除されません。
- 設定初期化リセット (INIT) 要求の発生
設定初期化リセット (INIT) 要求が発生すると , 無条件で設定初期化リセット
(INIT) 状態へ遷移します。
114
第 3 章 CPU および制御部
<注意事項>
各要因の優先順位については , 「■ デバイス状態と各遷移」の「●各状態遷移要求の優先
順位」を参照してください。
• ストップモード時のクロックソース選択
自励発振モードでは , ストップモードを設定する前に , メインクロックの 2 分周を
ソースクロックとするようあらかじめ選択しておいてください。詳細は , 「3.12.2
PLL 制御」を参照してください。
なお , 分周比の設定に関しては , 通常動作時と制限事項は同じです。
• 同期スタンバイ動作
STOP ビットへの書込みのみではストップ状態へは遷移しません。その後 , STCR
( スタンバイ制御 ) レジスタを読み出すことによってストップ状態へ遷移します。
ストップモードを使用する場合は , 「・ストップモードへの移行」にあるシーケンス
を必ず使用してください。
115
第 3 章 CPU および制御部
116
第4章
I/O ポート
I/O ポートの概要 , レジスタの構成および機能につ
いて説明します。
4.1
I/O ポートの概要
4.2
I/O ポートのレジスタ
4.3
I/O 拡張機能
117
第 4 章 I/O ポート
4.1
I/O ポートの概要
I/O ポートの構成を説明します。
■ ポート基本ブロックダイヤグラム
MB91245/S シリーズは , 各端子に対応するペリフェラル入出力として端子を使用しな
い設定になっているとき , I/O ポートとして使用することができます。
各ポートは以下のレジスタにより構成されます。
• PDR( ポートデータレジスタ /Port Data Register)
• DDR( ポート方向レジスタ /Port Direction Register)
• PFR( ポート機能レジスタ /Port Function Register)
I/O ポートの基本的な構成を下記に示します。
図 4.1-1 I/O ポートのブロックダイヤグラム
ペリフェラル入力
R-bus
PDRリード
*
0
1
ペリフェラル出力
PDR
PFR
1
0
ストップモード
P-ch
N-ch
DDR
*: PDRレジスタに対してリードモディファイライト (RMW)系命令を行った
場合のリード時は, 常に"1"側が選択されます。
DDR:Data Direction Register
PDR:Port Data Register
PFR:Port Function Register
118
端子
第 4 章 I/O ポート
図 4.1-2 アナログ入力兼用ポートブロックダイヤグラム
アナログ入力
ペリフェラル入力
R-bus
PDRリード
0
*
1
ストップモード
PDR
P-ch
端子
1
PFR
N-ch
0
DDR
*: PDRレジスタに対してリードモディファイライト (RMW)系命令を行った
場合のリード時は, 常に"1"側が選択されます。
DDR:Data Direction Register
PDR:Port Data Register
PFR:Port Function Register
図 4.1-3 アナログ出力兼用ポートブロックダイヤグラム
ペリフェラル入力
R-bus
PDRリード
*
0
1
ストップモード
PDR
P-ch
端子
1
N-ch
PFR
0
DDR
アナログ出力
*: PDRレジスタに対してリードモディファイライト(RMW)系命令を行った
場合のリード時は, 常に"1"側が選択されます。
DDR:Data Direction Register
PDR:Port Data Register
PFR:Port Function Register
119
第 4 章 I/O ポート
■ 動作モード
• ポート入力モード時 (PFR=0 & DDR=0)
- PDR リード: 対応する外部端子のレベルが読み出されます。
- PDR ライト: PDR に設定値が書き込まれます。ただし , PDR の値は対応する外
部端子に反映されません。
- リードモディファイライト (RMW) 系命令でのリード
:PDR の値が読み出されます。
• ポート出力モード時 (PFR=0 & DDR=1)
- PDR リード: PDR の値が読み出されます。
- PDR ライト: PDRに設定値が書き込まれ, PDRの値が対応する外部端子に出力さ
れます。
- リードモディファイライト (RMW) 系命令でのリード
:PDR の値が読み出されます。
• ペリフェラル出力モード時
- PDR リード: 対応する外部端子のレベルが読み出されます。
- PDR ライト: PDR に設定値が書き込まれます。ただし , PDR の値は対応する外
部端子に反映されません。
- リードモディファイライト (RMW) 系命令でのリード
:対応するペリフェラルの出力の値が読み出されます。
<注意事項>
• 端子をリソースの入力として使用する場合は , PFR = 0 かつ DDR = 0 ( ポート入力モー
ド ) としてください。
• 汎用ポート入力とペリフェラル入力を切り換えるレジスタはありません。外部端子か
ら入力された値は , 常に汎用ポートとペリフェラル回路へ伝播しています。
また , DDR で出力設定時も外部へ出力している値が常に汎用ポートとペリフェラル回
路へ伝播しています。
ペリフェラル入力としてご使用の場合は , DDR で入力にし , 各ペリフェラルの入力信
号を有効にしてご使用ください。
120
第 4 章 I/O ポート
4.2
I/O ポートのレジスタ
I/O ポートで使用するレジスタの構成および機能について説明します。
■ ポートデータレジスタ (PDR:PDR0 ∼ PDRG)
PDR0
bit
7
6
5
4
3
2
1
0
アドレス:00000000H
P07
P06
P05
P04
P03
P02
P01
P00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR1
bit
7
6
5
4
3
2
1
0
アドレス:00000001H
P17
P16
P15
P14
P13
P12
P11
P10
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR2
bit
7
6
5
4
3
2
1
0
アドレス:00000002H
P27
P26
P25
P24
P23
P22
P21
P20
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PDR3
bit
7
6
5
4
3
2
1
0
アドレス:00000003H
P37
P36
P35
P34
P33
P32
P31
P30
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(0)
(0)
(0)
(0)
初期値 (X)
PDR4
bit
7
6
5
4
3
2
1
0
アドレス:00000004H
P47
P46
P45
P44
P43
P42
P41
P40
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR5
bit
7
6
5
4
3
2
1
0
アドレス:00000005H
P57
P56
P55
P54
P53
P52
P51
P50
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR6
bit
7
6
5
4
3
2
1
0
アドレス:00000006H
P67
P66
P65
P64
P63
P62
P61
P60
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR7
bit
アドレス:00000007H
7
−
リード / ライト ( − )
初期値 ( − )
6
−
(−)
(−)
5
−
(−)
(−)
4
3
2
1
0
P73
P72
P71
P70
−
( − ) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(−)
( 続く )
121
第 4 章 I/O ポート
( 続き )
PDR8
bit
7
6
5
4
3
2
1
0
アドレス:00000008H
P87
P86
P85
P84
P83
P82
P81
P80
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDR9
bit
7
6
5
4
3
2
1
0
アドレス:00000009H
P97
P96
P95
P94
P93
P92
P91
P90
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDRA
bit
7
アドレス:0000000AH
−
リード / ライト ( − )
初期値 ( − )
PDRB
bit
7
6
5
−
(−)
(−)
−
(−)
(−)
6
5
4
3
2
1
0
PA3
PA2
PA1
PA0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(−)
4
3
2
1
0
アドレス:0000000BH
PB7 PB6 PB5 PB4 PB3 PB2 PB1 PB0
(R/W)
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値
PDRC
bit
7
アドレス:0000000CH
−
リード / ライト ( − )
初期値 ( − )
PDRD
bit
7
6
5
−
(−)
(−)
−
(−)
(−)
6
5
4
3
2
1
0
PC3 PC2 PC1 PC0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(−)
4
3
2
1
0
アドレス:0000000DH
PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(X)
(X)
(X)
(X)
初期値 (0)
PDRE
bit
7
6
5
4
3
2
1
0
アドレス:0000000EH
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDRF
bit
7
6
5
4
3
2
1
0
アドレス:0000000FH
PF7
PF6
PF5
PF4
PF3
PF2
PF1
PF0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
PDRG
bit
アドレス:00000010H
7
−
リード / ライト ( − )
初期値 ( − )
6
5
−
(−)
(−)
−
(−)
(−)
4
3
2
1
0
PG3 PG2 PG1 PG0
−
(R/W)
(R/W) (R/W) (R/W)
(−)
(X)
(X)
(X)
(X)
(−)
PDR0 ∼ PDRG は I/O ポートの入出力データレジスタです。
対応する DDR0 ∼ DDRG, PFR0 ∼ PFRG にて , 入出力制御が行われます。
122
第 4 章 I/O ポート
■ データ方向レジスタ (DDR:DDR0 ∼ DDRG)
図 4.2-1 データ方向レジスタ (DDR:Data Direction Register) の構成
DDR0
bit
7
6
5
4
3
2
1
0
アドレス:00000400H
P07
P06
P05
P04
P03
P02
P01
P00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDR1
bit
アドレス:00000401H
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDR2
bit
7
6
5
4
3
2
1
0
アドレス:00000402H
P27
P26
P25
P24
P23
P22
P21
P20
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
初期値 (1)
DDR3
bit
アドレス:00000403H
7
6
5
4
3
2
1
0
P37
P36
P35
P34
P33
P32
P31
P30
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(1)
(1)
(1)
(1)
初期値 (0)
DDR4
bit
7
6
5
4
3
2
1
0
アドレス:00000404H
P47
P46
P45
P44
P43
P42
P41
P40
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDR5
bit
7
6
5
4
3
2
1
0
アドレス:00000405H
P57
P56
P55
P54
P53
P52
P51
P50
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDR6
bit
7
6
5
4
3
2
1
0
アドレス:00000406H
P67
P66
P65
P64
P63
P62
P61
P60
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDR7
bit
7
6
5
−
(−)
(−)
−
(−)
(−)
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
アドレス:00000407H
−
リード / ライト ( − )
初期値 ( − )
DDR8
bit
アドレス:00000408H
4
3
2
1
0
P73
P72
P71
P70
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
( 続く )
123
第 4 章 I/O ポート
( 続き )
DDR9
bit
7
6
5
4
3
2
1
0
アドレス:00000409H
P97
P96
P95
P94
P93
P92
P91
P90
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDRA
bit
7
6
5
−
(−)
(−)
−
(−)
(−)
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
アドレス:0000040AH
−
リード / ライト ( − )
初期値 ( − )
DDRB
bit
アドレス:0000040BH
4
3
2
1
0
PA3
PA2
PA1
PA0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDRC
bit
7
アドレス:0000040CH
−
リード / ライト ( − )
初期値 ( − )
DDRD
bit
7
6
5
−
(−)
(−)
−
(−)
(−)
6
5
4
3
4
3
PD7 PD6 PD5 PD4
−
リード / ライト (R/W) (R/W) (R/W) (R/W) ( − )
(1)
(1)
(1)
(−)
初期値 (1)
bit
7
6
5
1
0
PC3 PC2 PC1 PC0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
アドレス:0000040DH
DDRE
2
4
3
2
1
0
−
(−)
(−)
−
(−)
(−)
−
(−)
(−)
2
1
0
アドレス:0000040EH
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDRF
bit
アドレス:0000040FH
7
6
5
4
3
2
1
0
PF7
PF6
PF5
PF4
PF3
PF2
PF1
PF0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
DDRG
bit
アドレス:00000410H
7
−
リード / ライト ( − )
初期値 ( − )
6
5
−
(−)
(−)
−
(−)
(−)
4
3
2
1
0
PG3 PG2 PG1 PG0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
DDR0 ∼ DDRG は , 対応する I/O ポートの入出力方向をビット単位で制御します。
PFR=0 のとき DDR=0:ポート入力ならびに , ペリフェラル入力となります。
DDR=1:ポート出力となります。
PFR=1 のとき DDR の設定によらず , ペリフェラル出力となります。
124
第 4 章 I/O ポート
■ ポート機能レジスタ (PFR, EPFR:Port Function Register)
PFR0 ∼ PFR5, PFR7, PFRA ∼ PFRE, PFRG および EPFR2 ∼ EPFR5, EPFRD, EPFRG は
対応するペリフェラルの出力をビット単位で制御します。
PFR および EPFR の未使用ビットには必ず "0" を書き込んでください。特に記載がない
場合には PFR=1 で端子はペリフェラル出力となります。
読出し時には , 前回書込みを行った値が読み出されます。
● PFR0 (P07 ∼ P00)
PFR0
bit
7
6
5
4
3
2
1
0
アドレス:00000420H
P07
P06
P05
P04
P03
P02
P01
P00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時 , 外バス 8 ビットモード使用時
ペリフェラル出力
P07
P06
P05
P04
P03
P02
P01
P00
SEG31
SEG30
SEG29
SEG28
SEG27
SEG26
SEG25
SEG24
D03
D02
D01
D00
外バス 16 ビットモード使用時 (PFR0 は影響しません )
D07
外部データバス
D06
D05
D04
STOP 状態から外部割込み (INT5 ∼ INT0) を使用して復帰を行う場合には外部割込みに
対応するポートの PFR ビットを "0" に設定してください。
なお , 外部バス 16 ビットモード時は , 入力が常に有効になりますので , 対応する外部割
込みの割込み許可レジスタで対応ビットをマスクしてください。
● PFR1 (P17 ∼ P10)
PFR1
bit
アドレス:00000421H
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時
ペリフェラル出力
P17
P16
P15
P14
P13
P12
P11
P10
SEG23
SEG22
SEG21
SEG20
SEG19
SEG18
SEG17
SEG16
D13
D12
D11
D10
D09
D08
外バス使用時 (PFR1 は影響しません )
外部データバス
D15
D14
125
第 4 章 I/O ポート
● PFR2 (P27 ∼ P20) / EPFR2 (P27 ∼ P20)
PFR2
bit
アドレス:00000422H
7
6
5
4
3
2
1
0
P27
P26
P25
P24
P23
P22
P21
P20
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
EPFR2
bit
7
6
5
4
3
2
1
0
アドレス:00000602H
P27
P26
P25
P24
P23
P22
P21
P20
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時 (EPFR2 は影響しません )
P27
P26
P25
P24
P23
P22
P21
P20
SEG7
SEG6
SEG5
SEG4
SEG3
SEG2
SEG1
SEG0
PFR2, EPFR2 = 00B
A07
A06
A05
A04
A03
A02
A01
A00
01B
禁止
禁止
禁止
禁止
禁止
禁止
禁止
禁止
10B
A07
A06
A05
A04
A03
A02
A01
A00
11B
禁止
禁止
禁止
禁止
禁止
禁止
禁止
禁止
ペリフェラル出力
外バス使用時
● PFR3 (P37 ∼ P30) / EPFR3 (P37 ∼ P30)
PFR3
bit
7
6
5
4
3
2
1
0
アドレス:00000423H
P37
P36
P35
P34
P33
P32
P31
P30
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
EPFR3
bit
アドレス:00000603H
7
6
5
4
3
2
1
0
P37
P36
P35
P34
P33
P32
P31
P30
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時 (EPFR3 は影響しません )
P37
P36
P35
P34
P33
P32
P31
P30
SEG15
SEG14
SEG13
SEG12
SEG11
SEG10
SEG9
SEG8
PFR3, EPFR3 = 00B
A15
A14
A13
A12
A11
A10
A09
A08
01B
禁止
禁止
禁止
禁止
禁止
禁止
禁止
禁止
10B
A15
A14
A13
A12
A11
A10
A09
A08
11B
禁止
禁止
禁止
禁止
禁止
禁止
禁止
禁止
ペリフェラル出力
外バス使用時
126
第 4 章 I/O ポート
● PFR4 (P47 ∼ P40) / EPFR4 (P47 ∼ P40)
PFR4
bit
7
6
5
4
3
2
1
0
アドレス:00000424H
P47
P46
P45
P44
P43
P42
P41
P40
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
EPFR4
bit
アドレス:00000604H
7
6
5
4
3
2
1
0
P47
P46
P45
P44
P43
P42
P41
P40
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時 (EPFR4 は影響しません )
ペリフェラル出力
P47
P46
P45
P44
P43
P42
P41
P40
SGO
SGA
SCK3
SOT3
−
SCK0
SOT0
−
外バス使用時
PFR4, EPFR4 = 00B
SYSCLK
ASX
−
−
−
−
−
−
01B
P47
P46
P45
P44
P43
P42
P41
P40
10B
SYSCLK
ASX
禁止
禁止
禁止
禁止
禁止
禁止
11B
SGO
SGA
SCK3
SOT3
−
SCK0
SOT0
−
● PFR5 (P57 ∼ P50) / EPFR5 (P57 ∼ P50)
PFR5
bit
7
6
5
4
3
2
1
0
アドレス:00000425H
P57
P56
P55
P54
P53
P52
P51
P50
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
EPFR5
bit
7
6
5
4
3
2
1
0
アドレス:00000605H
P57
P56
P55
P54
P53
P52
P51
P50
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
シングルチップモード時 (EPFR5 は影響しません )
ペリフェラル出力
P57
P56
P55
P54
P53
P52
P51
P50
OUT1
OUT0
SCK5
SOT5
−
SCK4
SOT4
−
外バス使用時
PFR5, EPFR5 = 00B
RDY
WRIX
WR0X
RDX
CS3X
CS2X
CS1X
CS0X
01B
P57
P56
P55
P54
P53
P52
P51
P50
10B
RDY
WRIX
WR0X
RDX
CS3X
CS2X
CS1X
CS0X
11B
OUT1
OUT0
SCK5
SOT5
−
SCK4
SOT4
−
127
第 4 章 I/O ポート
● PFR6 (P67 ∼ P60)
本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に
は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ
ンバータ」の項を参照してください )。
● PFR7 (P73 ∼ P70)
PFR7
bit
7
アドレス:00000427H
−
リード / ライト ( − )
初期値 ( − )
ペリフェラル出力
6
5
−
(−)
(−)
−
(−)
(−)
4
3
2
1
0
P73
P72
P71
P70
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
−
−
−
−
P73
P72
P71
P70
−
−
−
−
TX1
−
TX0
−
STOP 状態から外部割込み (INT7/INT6) を使用して復帰を行う場合には外部割込みに対
応するポートの PFR ビットを "1" に設定してください。
● PFR8 (P87 ∼ P80)
本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に
は ADER レジスタの対応するビットを必ず "0" に設定してください ( 第 23 章 A/D コン
バータの項を参照してください )。
● PFR9 (P97 ∼ P90)
本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に
は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ
ンバータ」の項を参照してください )。
● PFRA (PA3 ∼ PA0)
PFRA
bit
アドレス:0000042AH
7
−
リード / ライト ( − )
初期値 ( − )
ペリフェラル出力
128
6
5
−
(−)
(−)
−
(−)
(−)
−
−
−
−
−
−
−
−
4
3
2
1
0
PA3
PA2
PA1
PA0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
PA3
PA2
PA1
PA0
PWM2M3 PWM2P3 PWM1M3 PWM1P3
第 4 章 I/O ポート
● PFRB (PB7 ∼ PB0)
PFRB
bit
アドレス:0000042BH
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PB7
PB6
PB6
PB5
PB3
PB2
PB1
PB0
ペリフェラル PWM2M1 PWM2P1 PWM1M1 PWM1P1 PWM2M0 PWM2P0 PWM1M0 PWM1P0
出力
● PFRC (PC3 ∼ PC0)
PFRC
bit
7
アドレス:0000042CH
−
リード / ライト ( − )
初期値 ( − )
ペリフェラル出力
6
5
−
(−)
(−)
−
(−)
(−)
−
−
−
−
−
−
−
−
4
3
2
1
0
PC3 PC2 PC1 PC0
−
( − ) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(−)
PC3
PC2
PC1
PC0
PWM2M2 PWM2P2 PWM1M2 PWM1P2
● PFRD (D7 ∼ PD0) / EPFRD (PD7 ∼ PD0)
PFRD
bit
7
6
5
4
3
2
1
0
アドレス:0000042DH
PD7 PD6 PD5 PD4 PD3 PD2 PD1 PD0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
EPFRD
bit
アドレス:0000060DH
7
6
5
4
3
2
1
0
PD7
PD6
PD5
PD4
PD3
PD2
PD1
PD0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PFRD, EPFRD = 00B
PD7
PD6
PD5
PD4
01B
PPG7
PPG5
PPG3
PPG1
10B
禁止
禁止
禁止
禁止
11B
COM3
COM2
COM1
COM0
PD3
禁止
PD2*1
PD1*1
PD0*1
禁止
禁止
禁止
LIN2*2
LIN1*2
LIN0*2
禁止
禁止
禁止
*1:PD2/1/0 が ICU2/1/0 への入力になります。
*2:LIN2/1/0 が ICU2/1/0 への入力になります。
( 注意事項 ) EPFRD の bit3 ∼ bit0 に "1" を設定しないでください。
129
第 4 章 I/O ポート
● PFRE (PE7 ∼ PE0)
PFRE
bit
7
6
5
4
3
2
1
0
アドレス:0000042EH
PE7 PE6 PE5 PE4 PE3 PE2 PE1 PE0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PE7
PE6
PE5
PE4
PE3
PE2
PE1
PE0
ペリフェラル PWM2M5 PWM2P5 PWM1M5 PWM1P5 PWM2M4 PWM2P4 PWM1M4 PWM1P4
出力
● PFRF (PF6 ∼ PF0)
本ポートに対応する PFR レジスタは存在しません。汎用ポートとして使用する場合に
は ADER レジスタの対応するビットを必ず "0" に設定してください (「第 23 章 A/D コ
ンバータ」の項を参照してください )。
● PFRG (PG3 ∼ PG0) / EPFRG (PG3 ∼ PG0)
PFRG
bit
アドレス:00000430H
リード / ライト
初期値
EPFRG
bit
アドレス:00000610H
リード / ライト
初期値
7
6
5
4
3
2
1
0
−
(R/W)
(-)
−
(R/W)
(-)
−
(R/W)
(-)
−
(R/W)
(-)
PG3
(R/W)
(0)
PG2
(R/W)
(0)
PG1
(R/W)
(0)
PG0
(R/W)
(0)
7
6
5
4
3
2
1
0
−
(R/W)
(-)
PG3
PG2
PG1
PG0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
−
(R/W)
(-)
−
(R/W)
(-)
−
(R/W)
(-)
PFRG, EPFRG = 00B
−
−
−
−
PG3
PG2
PG1
PG0
01B
−
−
−
−
PPG6
PPG4
PPG2
PPG0
10B
−
−
−
−
禁止
禁止
禁止
禁止
11B
−
−
−
−
TOT2
TOT1
TOT0
禁止
130
第 4 章 I/O ポート
4.3
I/O 拡張機能
MB91245/S シリーズには I/O ポートの拡張機能として ,
入力レベル選択レジスタ :Port Input Level select Register (PILR)
状態制御レジスタ
:Port State Control Register (PSCR)
があります。
PILR の値の書換えは , PSCR への所定の書込みアクセス後のみ可能です。読出しは
常に可能です。本機能は , バイトアクセスのみでしか行えません。
■ 入力レベル選択レジスタ (PILR)
図 4.3-1 入力レベル選択レジスタ (PILR) のビット構成
PILR0
bit
7
6
5
4
3
2
1
0
アドレス:00000540H
P07
P06
P05
P04
P03
P02
P01
P00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PILR1
bit
アドレス:00000541H
7
6
5
4
3
2
1
0
P17
P16
P15
P14
P13
P12
P11
P10
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
PILR5
bit
7
6
アドレス:00000545H
P57
−
リード / ライト (R/W) ( − )
(−)
初期値 (0)
5
4
3
2
1
0
−
(−)
(−)
−
(−)
(−)
−
(−)
(−)
−
(−)
(−)
−
(−)
(−)
−
(−)
(−)
PILRは端子の入力レベル切換えレジスタです。本レジスタの設定により, 対応するビッ
トの入力レベルを CMOS Automotive シュミットトリガ (VIH/VIL = 0.8/0.5 Vcc), CMOS
シュミットトリガ (VIH/VIL = 0.7/0.3 Vcc) のいずれかに設定することができます。
PILRx
名称
VIH
VIL
0
CMOS Automotive シュミットトリガ
0.8 × Vcc
0.5 × Vcc
1
CMOS シュミットトリガ
0.7 × Vcc
0.3 × Vcc
本品種の端子は , 通常 CMOS Automotive シュミットトリガになっております。
131
第 4 章 I/O ポート
■ ポート状態制御レジスタ (PSCR)
図 4.3-2 ポート状態制御レジスタ (PSCR) のビット構成
PSCR
bit
アドレス:000004FCH
リード / ライト
初期値
7
6
5
4
3
2
1
0
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
−
(W)
(X)
PSCR は , PILR の書換えを制御するためのレジスタです。本レジスタはバイトライト
アクセスのみ可能です。読み出すことはできません。読出し時は不定値が読まれます。
詳細は 「●ポート拡張機能レジスタの書換え」を参照してください。
● ポート拡張機能レジスタの書換え
PPER, PPCR および PILR レジスタの値を書き換える前に , PSCR (000004FCH) に対して ,
"A5H" → "5AH" の順に書込みアクセスを実行してください。
以下にアセンブラコード例を示します。
ldi #0x000004fc, r0
// r0=PSCR address
ldi:8 #0xA5, r1
// r1=A5
ldi:8 #0x5A, r2
// r2=5A
stb r1, @r0
// write A5 to PSCR
stb r2, @r0
// write 5A to PSCR
ldub @r0, r0
// ダミーリード
PSCR レジスタは書込み専用です。したがって , レジスタの状態が不明の場合は , 書込
みアクセスの前に必ず一度は "A5H", "5AH" 以外のダミーライトを挿入してください。
PILR レジスタの書換えは上記ライトシーケンス後に各レジスタに一度だけ可能です。
レジスタ更新後に再び書換えを実行する場合には , 再びライトにシーケンスを実行す
る必要があります。
132
第 4 章 I/O ポート
図 4.3-3 PSCR レジスタへの書込みアクセス手順
書込み禁止
PSCRへの
書込みアクセス
A5H ?
NO
YES
PSCRへの
書込みアクセス
5AH ?
NO
YES
PSCRへの
読出しアクセス
書込み許可
PSCRへの
書込みアクセス
PSCRへの
読出しアクセス
● 使用上の注意
入力選択レジスタ PILR の値を変更するときは , 該当端子を入力としているリソースの
機能を無効にした状態で行ってください。
133
第 4 章 I/O ポート
134
第5章
割込みコントローラ
割込みコントローラの概要 , レジスタの構成 / 機能
および動作について説明します。
5.1
割込みコントローラの概要
5.2
割込みコントローラのレジスタ一覧
5.3
割込みコントローラの動作
135
第 5 章 割込みコントローラ
5.1
割込みコントローラの概要
割込みコントローラは , 割込み受付け / 調停処理を行います。
■ 割込みコントローラのハードウェア構成
割込みコントローラには , 以下のレジスタおよび回路により構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールドリクエスト取下げ要求発生部
■ 割込みコントローラの主要機能
割込みコントローラには , 以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベルおよび番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "11111B" 以外の割込み発生によるストップモードからの復帰
指示 (CPU へ )
<注意事項>
MB91245/S シリーズでは , NMI はサポートしていません。
136
第 5 章 割込みコントローラ
5.2
割込みコントローラのレジスタ一覧
割込みコントローラで使用するレジスタの構成および機能について説明します。
■ 割込みコントローラのレジスタ一覧
図 5.2-1 割込みコントローラのレジスタ一覧
bit
アドレス:00000440H
7
6
5
−
−
−
4
ICR4
3
ICR3
2
ICR2
1
ICR1
0
ICR0
ICR00
アドレス:00000441H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
ICR3
ICR2
ICR1
ICR0
ICR02
アドレス:00000442H
−
−
−
ICR4
アドレス:00000443H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
アドレス:00000444H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
ICR3
ICR2
ICR1
ICR0
ICR05
アドレス:00000445H
−
−
−
ICR4
アドレス:00000446H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
アドレス:00000447H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
アドレス:00000448H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
ICR3
ICR2
ICR1
ICR0
ICR09
アドレス:00000449H
−
−
−
ICR4
アドレス:0000044AH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス:0000044BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
ICR3
ICR2
ICR1
ICR0
ICR12
アドレス:0000044CH
−
−
−
ICR4
アドレス:0000044DH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
アドレス:0000044EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
アドレス:0000044FH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
ICR3
ICR2
ICR1
ICR0
ICR16
アドレス:00000450H
−
−
−
ICR4
アドレス:00000451H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
アドレス:00000452H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
ICR3
ICR2
ICR1
ICR0
ICR19
アドレス:00000453H
−
−
−
ICR4
アドレス:00000454H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR20
アドレス:00000455H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
アドレス:00000456H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
ICR3
ICR2
ICR1
ICR0
ICR23
アドレス:00000457H
−
−
−
ICR4
アドレス:00000458H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
アドレス:00000459H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
ICR3
ICR2
ICR1
ICR0
ICR26
アドレス:0000045AH
−
−
−
ICR4
アドレス:0000045BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
アドレス:0000045CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
ICR3
ICR2
ICR1
ICR0
ICR29
アドレス:0000045DH
−
−
−
ICR4
アドレス:0000045EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
アドレス:0000045FH
−
−
−
−
−
−
ICR4
R/W
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR31
( 続く )
137
第 5 章 割込みコントローラ
( 続き )
bit
アドレス:00000460H
7
6
5
−
−
−
4
ICR4
3
ICR3
2
ICR2
1
ICR1
0
ICR0
ICR32
アドレス:00000461H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
アドレス:00000462H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
ICR3
ICR2
ICR1
ICR0
ICR35
アドレス:00000463H
−
−
−
ICR4
アドレス:00000464H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
アドレス:00000465H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
ICR3
ICR2
ICR1
ICR0
ICR38
アドレス:00000466H
−
−
−
ICR4
アドレス:00000467H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
アドレス:00000468H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
アドレス:00000469H
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
ICR3
ICR2
ICR1
ICR0
ICR42
アドレス:0000046AH
−
−
−
ICR4
アドレス:0000046BH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
アドレス:0000046CH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
ICR3
ICR2
ICR1
ICR0
ICR45
アドレス:0000046DH
−
−
−
ICR4
アドレス:0000046EH
−
−
−
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
アドレス:0000046FH
−
−
−
−
−
−
−
−
−
ICR3
R/W
LVL3
R/W
ICR2
R/W
LVL2
R/W
ICR1
R/W
LVL1
R/W
ICR0
R/W
LVL0
R/W
ICR47
アドレス:00000045H
ICR4
R/W
LVL4
R/W
HRCL
■ 割込みコントローラのブロックダイヤグラム
図 5.2-2 割込みコントローラのブロックダイヤグラム
WAKEUP (LEVEL≠11111Bのとき"1")
UNMI
優先度判定
NMI
NMI
処理
LEVEL4~
LEVEL0
5
HLDREQ
取下げ
要求
LEVEL判定
RI00
・
・
・
RI47
(DLYIRQ)
ICR00
・
・
・
ICR47
VECTOR
判定
R-bus
138
6
LEVEL,
VECTOR
発生
MHALTI
VCT5~VCT0
第 5 章 割込みコントローラ
割込み制御レジスタ ( ICR)
5.2.1
割込み制御レジスタは , 各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
■ 割込み制御レジスタ (ICR) のビット構成
図 5.2-3 割込み制御レジスタ (ICR) のビット構成
アドレス :
bit
ch.00 000440H
7
6
5
−
−
−
∼
4
ICR4
R/W
3
ICR3
R/W
2
ICR2
R/W
1
ICR1
R/W
0
ICR0
R/W
初期値
---11111B
ch.47 00046FH
割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対応する割
込み要求の割込みレベルを設定します。
[bit4 ∼ bit0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
本レジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベルマ
スク値以上の場合は , CPU 側にて割込み要求はマスクされます。
リセットにより , "11111B" に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 5.2-1 に示します。
表 5.2-1 設定可能な割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
(強)
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
(弱)
1
1
1
1
1
31
割込み禁止
割込みレベル
システム予約
( 注意事項 )ICR4 は "1" 固定で , "0" を書き込むことはできません。
139
第 5 章 割込みコントローラ
■ HRCL(Hold Request Cancel Level register)
bit
アドレス :00000045H
7
6
5
─
─
─
4
LVL4
3
LVL3
2
LVL2
1
LVL1
0
LVL0
HRCL
R/W
R/W
R/W
R/W
R/W
0--11111B( 初期値 )
ホールドリクエスト取下げ要求発生のためのレベル設定レジスタです。
[bit7 ∼ bit5] 予約ビット
[bit4 ∼ bit0] LVL4 ∼ LVL0
バスマスタへのホールドリクエスト取下げ要求を出すための割込みレベルを設定
します。
本レジスタに設定した割込みレベルより強いレベルを持つ割込み要求が発生した
場合は , バスマスタに対してホールドリクエスト取下げ要求を発生します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
140
第 5 章 割込みコントローラ
5.3
割込みコントローラの動作
割込みコントローラの動作として , 以下の項目について説明します。
• 優先順位判定
• ホールドリクエストの取下げ要求
• スタンバイモード ( ストップ / スリープ ) からの復帰
■ 優先順位判定
割込みコントローラでは , 同時に発生している割込み要因の中で最も優先度の高い要
因を選択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 次のとおりです。
① NMI
②以下の条件を満たす要因
• 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
• 割込みレベルの数値が最も小さい要因 ( 要因 1)
• 要因 1 の条件下で , 最も小さい割込み番号を持つ要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31 (11111B) を出力します。そのときの割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係を表 5.3-1 に示します。
141
第 5 章 割込みコントローラ
表 5.3-1 ベクタテーブル (1 / 3)
割込み番号
割込み要因
DMA
TBR デフォルト
起動要因
のアドレス
リセット
0
00
−
3FCH
000FFFFCH
−
モードベクタ
1
01
−
3F8H
000FFFF8H
−
システム予約
2
02
−
3F4H
000FFFF4H
−
システム予約
3
03
−
3F0H
000FFFF0H
−
システム予約
4
04
−
3ECH
000FFFECH
−
システム予約
5
05
−
3E8H
000FFFE8H
−
−
3E4H
000FFFE4H
−
−
システム予約
6
06
コプロセッサ不在トラップ
7
07
−
3E0H
000FFFE0H
コプロセッサエラートラップ
8
08
−
3DCH
000FFFDCH
−
INTE 命令
9
09
−
3D8H
000FFFD8H
−
システム予約
10
0A
−
3D4H
000FFFD4H
−
システム予約
11
0B
−
3D0H
000FFFD0H
−
−
3CCH
000FFFCCH
−
000FFFC8H
−
ステップトレーストラップ
142
10 進 16 進
割込みレベル オフセット
12
0C
NMI 要求 (tool)
13
0D
−
3C8H
未定義命令例外
14
0E
−
3C4H
000FFFC4H
−
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
−
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
6
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
7
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
−
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
−
外部割込み 4
20
14
ICR04
3ACH
000FFFACH
−
外部割込み 5
21
15
ICR05
3A8H
000FFFA8H
−
外部割込み 6
22
16
ICR06
3A4H
000FFFA4H
−
000FFFA0H
−
外部割込み 7
23
17
ICR07
3A0H
リロードタイマ 0 アンダフロー
24
18
ICR08
39CH
000FFF9CH
8
リロードタイマ 1 アンダフロー
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2 アンダフロー
26
1A
ICR10
394H
000FFF94H
10
UART0( 受信完了 , 受信エラー )
27
1B
ICR11
390H
000FFF90H
0
UART0( 送信完了 )
28
1C
ICR12
38CH
000FFF8CH
3
LIN-UART0( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
29
1D
ICR13
388H
000FFF88H
1
LIN-UART0( 送信完了 )
30
1E
ICR14
384H
000FFF84H
4
LIN-UART1( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
31
1F
ICR15
380H
000FFF80H
2
LIN-UART1( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
5
LIN-UART2( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
33
21
ICR17
378H
000FFF78H
−
第 5 章 割込みコントローラ
表 5.3-1 ベクタテーブル (2 / 3)
割込み番号
割込み要因
10 進 16 進
割込みレベル オフセット
DMA
TBR デフォルト
起動要因
のアドレス
LIN-UART2( 送信完了 )
34
22
ICR18
374H
000FFF74H
−
CAN0 受信・送信完了 ,
ノードステータス遷移
35
23
ICR19
370H
000FFF70H
−
CAN1 受信・送信完了 ,
ノードステータス遷移
36
24
ICR20
36CH
000FFF6CH
−
システム予約
37
25
ICR21
368H
000FFF68H
−
システム予約
38
26
ICR22
364H
000FFF64H
−
システム予約
39
27
ICR23
360H
000FFF60H
−
PWC 測定終了
40
28
ICR24
35CH
000FFF5CH
−
PWC オーバフロー
41
29
ICR25
358H
000FFF58H
−
000FFF54H
-
DMAC 転送終了 , 転送エラー
42
2A
ICR26
354H
A/D コンバータ
43
2B
ICR27
350H
000FFF50H
14
リアルタイムクロック
時分秒オーバフロー , 補正終了
44
2C
ICR28
34CH
000FFF4CH
−
システム予約
45
2D
ICR29
348H
000FFF48H
−
メイン発振安定待ちタイマ
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
−
PPG0/1 アンダフロー
48
30
ICR32
33CH
000FFF3CH
−
PPG2/3 アンダフロー
49
31
ICR33
338H
000FFF38H
−
000FFF34H
−
PPG4/5 アンダフロー
50
32
ICR34
334H
PPG6/7 アンダフロー
51
33
ICR35
330H
000FFF30H
−
16 ビットフリーランタイマ 0 オーバフロー
および OCU0 コンペアマッチクリア
52
34
ICR36
32CH
000FFF2CH
−
16 ビットフリーランタイマ 1 オーバフロー
53
35
ICR37
328H
000FFF28H
−
ICU0( 取込み )
54
36
ICR38
324H
000FFF24H
−
ICU1( 取込み )
55
37
ICR39
320H
000FFF20H
−
ICU2( 取込み )
56
38
ICR40
31CH
000FFF1CH
−
000FFF18H
−
ICU3( 取込み )
57
39
ICR41
318H
OCU0( 一致 )
58
3A
ICR42
314H
000FFF14H
−
OCU1( 一致 )
59
3B
ICR43
310H
000FFF10H
−
システム予約
60
3C
ICR44
30CH
000FFF0CH
−
システム予約
61
3D
ICR45
308H
000FFF08H
−
サウンドジェネレータ指定カウント完了
62
3E
ICR46
304H
000FFF04H
−
000FFF00H
−
遅延割込み要因ビット
63
3F
ICR47
300H
システム予約 (REALOS にて使用 )
64
40
−
2FCH
000FFEFCH
−
システム予約 (REALOS にて使用 )
65
41
−
2F8H
000FFEF8H
−
システム予約
66
42
−
2F4H
000FFEF4H
−
システム予約
67
43
−
2F0H
000FFEF0H
−
システム予約
68
44
−
2ECH
000FFEECH
−
143
第 5 章 割込みコントローラ
表 5.3-1 ベクタテーブル (3 / 3)
割込み番号
割込み要因
10 進 16 進
割込みレベル オフセット
DMA
TBR デフォルト
起動要因
のアドレス
システム予約
69
45
−
2E8H
000FFEE8H
−
システム予約
70
46
−
2E4H
000FFEE4H
−
システム予約
71
47
−
2E0H
000FFEE0H
−
−
2DCH
000FFEDCH
−
000FFED8H
−
システム予約
72
48
システム予約
73
49
−
2D8H
システム予約
74
4A
−
2D4H
000FFED4H
−
システム予約
75
4B
−
2D0H
000FFED0H
−
システム予約
76
4C
−
2CCH
000FFECCH
−
システム予約
77
4D
−
2C8H
000FFEC8H
−
−
2C4H
000FFEC4H
−
000FFEC0H
−
システム予約
79
4F
−
2C0H
80
50
−
2BCH
000FFEBCH
∼
−
∼
∼
INT 命令で使用
4E
∼
システム予約
78
255
FF
−
000H
000FFC00H
−
( 注意事項 ) 本品種では , NMI はサポートしていません。
■ ホールドリクエスト取下げ要求 (Hold Request Cancel Request)
優先度の高い割込み処理を , CPU のホールド中 (DMA 転送中 ) に行う場合は , ホールド
リクエスト発生元においてリクエストを取り下げさせる必要があります。この取下げ
要求発生の基準となる割込みレベルを HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより強いレベルの割込み要因が発生した場合
は , ホールドリクエスト取下げ要求を発生します。
HRCL レジスタの割込みレベル>優先度判定後の割込みレベル
→取下げ要求発生
HRCL レジスタの割込みレベル ≤ 優先度判定後の割込みレベル
→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生することになります。
表 5.3-2 に , ホールドリクエスト取下げ要求発生となる割込みレベルの設定を示しま
す。
144
第 5 章 割込みコントローラ
表 5.3-2 ホールドリクエスト取下げ要求発生となる割込みレベルの設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
NMI のみ
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16 ∼ 17
∼
∼
31
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち , 割
込みが発生していると DMA 転送が行われませんので , HRCL レジスタの値を必要な値
に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。
NMI を含む周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つでも発生す
ると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 , CPU は命令を実行します。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。
<注意事項>
ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する周辺の制
御レジスタにて割込みレベルを "11111B" にしてください。
145
第 5 章 割込みコントローラ
■ ホールドリクエスト取下げ要求機能 (HRCL) の使用例
DMA 転送中に , CPU が優先度の高い処理を行うときは , DMA に対してホールドリク
エストを取り下げさせ , ホールド状態を解除する必要があります。ここでは , 割込みを
利用して DMA に対してホールドリクエストの取下げ , すなわち , CPU の優先動作を実
現します。
● 制御レジスタ
1. HRCL ( ホールドリクエストキャンセルレベル設定レジスタ ) : 割込みコントローラ
本レジスタに設定した割込みレベルより強いレベルの割込みが発生した場合に ,
DMA に対してホールドリクエスト取下げ要求を発生します。その基準となるレベ
ルを設定します。
2. ICR : 割込みコントローラ
使用する割込み要因に対応する ICR に , HRCL レジスタよりも強いレベルを設定し
ます。
● ハードウェア構成
図 5.3-1 に , ホールドリクエストの各信号の流れを示します。
図 5.3-1 ホールドリクエストの各信号の流れ
本モジュール
IRQ
バスアクセス要求
DHREQ:Dバスホールドリクエスト
DHREQ
MHALTI
DHACK:Dバスホールドアクノリッジ
I-ユニット
B-ユニット
DMA
CPU
(ICR)
:割込み要求
MHALTI:ホールドリクエスト
取下げ要求
DHACK
(HRCL)
IRQ
● シーケンス
図 5.3-2 に , HRCL レジスタに設定したレベルより強い場合の INTC-2 割込みレベルを
示します。
図 5.3-2 割込みレベル HRCL < ICR (LEVEL)
RUN
CPU
バスアクセス要求
DHREQ
バスホールド
バスホールド(DMA転送)
割込み処理
①
②
割込みルーチンの例
①割込み要因クリア
~
DHACK
②RETI
IRQ
LEVEL
MHALTI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行います。
146
第 5 章 割込みコントローラ
図 5.3-3 に , 多重割込みの場合の INTC-2 割込みレベルを示します。
図 5.3-3 INTC-3 割込みレベル HRCL < ICR ( 割込み I) < ( 割込み II)
RUN
バスホールド
割込みⅠ
CPU
④
バスホールド(DMA転送)
割込み処理Ⅰ
割込み処理Ⅱ
③
①
②
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
〔割込みルーチンの例〕
① , ③割込み要因クリア
∼
② , ④ RETI
上記の例では , 割込みルーチン I を実行中にそれよりも優先度の高い割込みが発生した
場合を示しています。
HRCL レジスタに設定した割込みレベルより高い割込みレベルが発生している間は ,
DHREQ は下がっています。
< 注意事項>
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してください。
147
第 5 章 割込みコントローラ
148
第6章
外部割込み制御部
外部割込み制御部の概要 , レジスタの構成 / 機能お
よび動作について説明します。
6.1
外部割込み制御部の概要
6.2
外部割込み制御部のレジスタ
6.3
外部割込み制御の動作
149
第 6 章 外部割込み制御部
6.1
外部割込み制御部の概要
外部割込み制御部は , INT0 ∼ INT7 に入力される外部割込み要求の制御を行うブ
ロックです。検出する要求のレベルとして , "H", "L", " 立上りエッジ ", " 立下り
エッジ " の 4 種類から選択できます。
■ 外部割込み制御部のレジスタ一覧
外部割込みのレジスタ一覧は以下のとおりです。
図 6.1-1 外部割込み制御部のレジスタ一覧
bit
EIRR0 アドレス:00000040H
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
初期値
00000000B
[R/W]
bit
ENIR0 アドレス:00000041H
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
初期値
00000000B
[R/W]
bit
ELVR0 アドレス:00000042H
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
初期値
00000000B
[R/W]
bit
ELVR0 アドレス:00000043H
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
初期値
00000000B
[R/W]
■ 外部割込み制御部のブロックダイヤグラム
図 6.1-2 に外部割込みのブロックダイヤグラムを示します。
図 6.1-2 外部割込み制御部のブロックダイヤグラム
R-bus
16
割込み要求
16
16
16
150
割込み許可レジスタ
ゲート
要因 F/F
割込み要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
8
INT0~
INT7
第 6 章 外部割込み制御部
6.2
外部割込み制御部のレジスタ
外部割込み制御部のレジスタ構成および機能について説明します。
■ 外部割込み制御部のレジスタ詳細
外部割込み制御部のレジスタには , 以下の 3 種類があります。
• 割込み許可レジスタ (ENIR : ENable Interrupt request Register)
• 外部割込み要因レジスタ (EIRR : External Interrupt Request Register)
• 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register)
151
第 6 章 外部割込み制御部
6.2.1
割込み許可レジスタ
(ENIR : ENable Interrupt request Register)
割込み許可レジスタ (ENIR) のビット構成と機能を説明します。
■ 外部割込み要因レジスタ (ENIR : ENable Interrupt request Register)
図 6.2-1 割込み許可レジスタ (ENIR) のビット構成
bit
ENIR0 アドレス:00000041H
7
6
5
4
3
2
1
0
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
初期値
00000000B
[R/W]
このレジスタの "1" が書かれたビットに対応する割込み要求出力は許可され (INT0 の
許可を EN0 が制御 ), 割込みコントローラに対して要求が出力されます。"0" が書かれ
たビットの対応する端子は割込み要因を保持しますが , 割込みコントローラに対して
は要求を発生しません。
152
第 6 章 外部割込み制御部
6.2.2
外部割込み要因レジスタ
(EIRR : External Interrupt Request Register)
外部割込み要因レジスタ (EIRR) のビット構成と機能を説明します。
■ 割込み許可レジスタ (EIRR : External Interrupt Request Register)
図 6.2-2 外部割込み要因レジスタ (EIRR) のビット構成
bit
EIRR0 アドレス:00000040H
15
14
13
12
11
10
9
8
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
初期値
00000000B
[R/W]
この EIRR レジスタを読み出したときに "1" であった場合 , そのビットに対応する端子
に外部割込み要求があることを示します。
また , このレジスタに "0" を書き込むと , 対応するビットの要求フリップフロップがク
リアされます。
"1" の書込みは無効です。
リードモディファイライト (RMW) 系命令の読出し時には "1" が読み出されます。
153
第 6 章 外部割込み制御部
外部割込み要求レベル設定レジスタ
(ELVR : External LeVel Register)
6.2.3
外部割込み要求レベル設定レジスタ (ELVR) のビット構成と機能を説明します。
■ 外部割込み要求レベル設定レジスタ (ELVR : External LeVel Register)
図 6.2-3 外部割込み要求レベル設定レジスタ (ELVR) のビット構成
bit
ELVR0 アドレス:00000042H
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
初期値
00000000B
[R/W]
bit
ELVR0 アドレス:00000043H
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
初期値
00000000B
[R/W]
INT0 ∼ INT7 に外部割込み要求レベルが 2 ビットずつ割り当てられていて , 表 6.2-1 の
ような設定になります。要求入力がレベル設定の場合 , EIRR の各ビットをクリアして
も入力がアクティブレベルならば該当するビットは再びセットされます。
ストップ状態からの復帰に使用する場合は , "H" レベルまたは "L" レベル要求に設定し
てください。
表 6.2-1 ELVR 割当て表
LBx
LAx
0
0
"L" レベルで要求あり
0
1
"H" レベルで要求あり
1
0
立上りエッジで要求あり
1
1
立下りエッジで要求あり
動 作
<注意事項>
外部割込み要求レベルを変更すると , 内部で割込み要因が発生する場合がありますので ,
外部割込み要求レベル変更後に外部割込み要因レジスタ (EIRR) をクリアしてください。
外部割込み要因レジスタをクリアする際は一度 , 外部割込み要求レベルレジスタを読み出
してからクリアの書込みを行ってください。
154
第 6 章 外部割込み制御部
6.3
外部割込み制御の動作
外部割込みの動作について説明します。
■ 外部割込みの動作
要求レベル , 許可レジスタの設定の後 , 対応する端子に ELVR レジスタで設定された要
求が入力されると本モジュールは , 割込みコントローラに対して割込み要求信号を発
生します。割込みコントローラ内で同時発生した割込みの優先順位を識別した結果 , 本
リソースからの割込みが最も優先順位が高かったときに該当する割込みが発生しま
す。
図 6.3-1 外部割込みの動作
外部割込み
割込みコントローラ
CPU
リソース 要求
ELVR
EIRR
ENIR
IL
ICR yy
CMP
ICR xx
CMP
ILM
要因
■ スタンバイからの復帰
クロック停止モードのスタンバイ状態からの復帰に外部割込みを使う場合は , 入力要
求を "H" レベルまたは "L" レベル要求に設定してください。
エッジ要求ではクロック停止モードのストップ状態からの復帰は行われません。
使用しないチャネルは , スタンバイに入る前に , 必ずディセーブル状態にしてくださ
い。
■ 外部割込みの動作手順
外部割込み部内に存在するレジスタの設定を行う際 , 次の手順で設定してください。
1) 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2) 割込み許可レジスタ (ENIR) の対象となるビットを禁止状態にする。
3) 外部割込み要求レベル設定レジスタ (ELVR) の対象となるビットを設定する。
4) 外部割込み要求レベル設定レジスタ (ELVR) を読み出す。
5) 外部割込み要因レジスタ (EIRR) の対象となるビットをクリアにする。
6) 割込み許可レジスタ (ENIR) の対象となるビットを許可状態にする。
ただし , 5) と 6) は 16 ビットデータによる同時書込みが可能です。
本モジュール内のレジスタを設定するときには必ず割込み許可レジスタを禁止状態に
設定しておかなくてはなりません。また , 割込み許可レジスタを禁止状態にする前に必
ず要因レジスタをクリアしておく必要があります。これは , レジスタ設定時や割込み許
可状態時に誤って割込み要因が起こってしまうことを避けるためです。
155
第 6 章 外部割込み制御部
■ 外部割込み要求レベル
• 要求レベルがエッジ要求のとき , エッジがあったことを検出するためには , パルス
幅は最小 3 マシンサイクル ( 周辺系クロックマシンサイクル ) 必要とします。
• 要求入力レベルがレベル設定の場合 , パルス幅は最小 3 マシンサイクル必要としま
す。また割込み入力端子がアクティブレベルを保持し続けている限りは , 外部割込
み要因レジスタをクリアしても , 割込みコントローラへの割込み要求は発生し続け
ます。
• 要求入力レベルがレベル設定のとき , 外部より要求入力が入ってその後 , 取り下げ
られても内部に要因保持回路が存在するので , 割込みコントローラへの要求はアク
ティブのままです。
割込みコントローラへの要求を取り下げるには要因レジスタをクリアする必要が
あります。
図 6.3-2 レベル設定時の要因保持回路のクリア
割込み入力
レベル検出
要因 F/F
(要因保持回路)
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける
図 6.3-3 割込み許可時の割込み要因と割込みコントローラへの割込み要求
"H"レベル
割込み入力
割込みコントローラ
への割込み要求
要因 F/Fのクリアによってインアクティブとなる
<注意事項>
• 割込み入力は , 最小 3 マシンサイクル必要です。
• STOP 時に外部端子を STCR スタンバイ制御レジスタ bit5 の HIZ ビットに "1" を設定
して端子出力をハイインピーダンスにしたとき , INT0 ∼ INT5 は PFR0 ポート機能レ
ジスタの bit5 ∼ bit0 に "0" を設定することで , また INT6, INT7 は PFR7 ポート機能レ
ジスタの bit0, bit2 に "1" を設定することで入力可能にできます。
156
第 6 章 外部割込み制御部
■ 外部割込みを使用した STOP 状態からの復帰時における注意事項
STOP 状態時に , INT 端子へ最初に入力された外部割込み信号は非同期で入力され ,
STOP 状態から復帰することが可能です。ただし , その STOP 解除から , 発振安定待ち
時間が経過するまでの期間においては , ほかの外部割込み信号の入力を認識できない
期間が存在します ( 図 6.3-4 の b+c+d 期間 )。STOP 解除後の外部入力信号を内部クロッ
クに同期させるため , クロックが安定していない期間内は , その割込み要因を保持でき
ないためです。
そのため , STOP 解除後の外部割込み入力を行う場合には , 発振安定待ち時間経過後に
外部割込み信号を入力してください。
図 6.3-4 STOP 状態からの外部割込みによる復帰動作のシーケンス
INT1
INT0
内部STOP
12μs
"H"
"L"
Regulator
内部動作(RUN)
命令実行(run)
X0
内部Clock
割込みフラグクリア
INTR0
INTE0
"1"(STOPモードに遷移前にイネーブルへ設定)
INTR1
INTE1
“1”(STOPモードに遷移前にイネーブルへ設定)
(a)STOP
(b) レギュレータ安定待ち時間
(d) 発振安定待ち時間
(e)RUN
(c)振動子の発振時間
157
第 6 章 外部割込み制御部
■ STOP 状態からの復帰動作
現行回路の外部割込みによる STOP 復帰動作は , 以下の動作によって行われます。
● STOP 遷移前の処理
外部割込みの設定
デバイスが STOP 状態に遷移する前に STOP 状態時の割込み入力パスを許可する必
要があります。これは PFR レジスタ (Port Function Register) で設定を行います。通
常状態 (STOP 以外の状態 ) では割込みの入力パスは許可状態ですので意識する必要
はありません。しかし ,STOP 状態では PFR レジスタ値により入力パスが制御され
ています。
端子名
外部割込みによる STOP 状態からの復帰時の設定
P70/(RX1)/INT7
PFR7 の bit2 を "1" としてください。
P72/(RX0)/INT6
PFR7 の bit0 を "1" としてください。
P05/SEG29/INT5/D05
PFR0 の bit5 を "0" としてください。
P04/SEG28/INT4/D04
PFR0 の bit4 を "0" としてください。
P03/SEG27/INT3/D03
PFR0 の bit3 を "0" としてください。
P02/SEG26/INT2/D02
PFR0 の bit2 を "0" としてください。
P01/SEG25/INT1/D01
PFR0 の bit1 を "0" としてください。
P00/SEG24/INT0/D00
PFR0 の bit0 を "0" としてください。
外部割込みの入力
STOP 状態から復帰させたいとき , 外部割込み信号は非同期で入力信号を伝える状
態となっています。この割込み入力がアサートされると直ちに内部 STOP 信号を立
ち下げる動作が行われます。同時に外部割込み回路では , ほかのレベル割込み入力
の同期化を行うように切り換わります。
● レギュレータ安定待ち時間
内部 STOP 信号が立ち下ると STOP 時のレギュレータから RUN 時のレギュレータ
へ切り換え動作が開始されます。RUN 時のレギュレータの電圧出力が安定する前
に内部動作が開始されると動作が不安定になるため , 内部出力電圧の安定待ち時間
として , 約 12μs のレギュレータの安定待ち時間を確保しています。この期間はク
ロックが停止しています。
● 振動子の発振時間
レギュレータ安定待ち時間の終了後 , クロックの発振が開始されます。振動子の発
振時間は使用される振動子により異なります。
● 発振安定待ち時間
振動子の発振時間後にデバイス内部で発振安定待ち時間が確保されます。発振安定
待ち時間はスタンバイ制御レジスタの OS1, OS0 ビットにより指定します。発振安
定待ち時間終了後 , 内部クロックが供給され , 外部割込みによる割込み命令動作が
開始されるとともに , STOP 状態からの復帰要因以外の外部割込み要因が受付け可
能になります。
158
第7章
REALOS 関連ハード
REALOS 関連ハードは , リアルタイム OS により
使用されます。したがって , REALOS を使用する
場合にはユーザプログラムで使用することはでき
ません。
遅延割込みモジュールおよびビットサーチモ
ジュールの概要 , レジスタ構成および機能 , 動作に
ついて説明します。
7.1
遅延割込みモジュール
7.2
ビットサーチモジュール
159
第 7 章 REALOS 関連ハード
遅延割込みモジュール
7.1
遅延割込みモジュールは , タスク切換え用の割込みを発生するためのモジュールで
す。
本モジュールを使用することで , ソフトウェアで CPU に対して割込み要求の発生 /
取消しを行うことができます。
■ レジスタ一覧
DICR
bit
アドレス: 00000044H
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DLYI
-------0B
[R/W]
■ ブロックダイヤグラム
図 7.1-1 ブロックダイヤグラム
R-bus
DLYI
割込み要求
160
第 7 章 REALOS 関連ハード
■ レジスタ詳細説明
● DICR(Delayed Interrupt Control Register)
bit
7
アドレス: 00000044H
−
6
−
5
−
4
−
3
−
2
−
1
0
−
DLYI
初期値
-------0B
[R/W]
遅延割込みを制御するレジスタです。
[bit0] DLYI
DLYI
説 明
0
遅延割込み要因の解除・要求なし〔初期値〕
1
遅延割込み要因の発生
本ビットにより , 該当する割込み要因の発生・解除を制御します。
■ 動作説明
遅延割込みは , タスク切換え用の割込みを発生するものです。本機能を使用することに
より , ソフトウェアで CPU に対して割込み要求の発生 , 取消しを行うことができます。
● 割込み番号
遅延割込みは , 最も大きな割込み番号に対応した割込み要因に割り当てられています。
本品種では , 遅延割込みを割込み番号 63(3FH) に割り当てています。
● DICR の DLYI ビット
このビットに "1" を書き込むことで遅延割込み要因が発生します。また , "0" を書き込
むことで遅延割込み要因を解除します。
本ビットは , 一般の割込みにおける割込み要因フラグと同じものであり , 割込みルーチ
ンの中で本ビットをクリアし , 併せてタスクの切換えを行うようにしてください。
161
第 7 章 REALOS 関連ハード
7.2
ビットサーチモジュール
入力レジスタに書き込まれたデータに対して "0", "1" または変化点を検索し , 検出
したビット位置を返します。
■ レジスタ一覧
bit 31
0
アドレス:000003F0H
BSD0
0 検出用データレジスタ
アドレス:000003F4H
BSD1
1 検出用データレジスタ
アドレス:000003F8H
BSDC
変化点検出用データレジスタ
アドレス:000003FCH
BSRR
検出結果レジスタ
■ ブロックダイヤグラム
図 7.2-1 ブロックダイヤグラム
D-bus
入力ラッチ
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
162
第 7 章 REALOS 関連ハード
■ レジスタ詳細説明
● 0 検出用データレジスタ (BSD0)
bit 31
0
000003F0H
リード / ライト→ ライトオンリ
初期値→ 不定
書き込んだ値に対して , 0 検出を行います。
リセットによる初期値は不定です。読出し値は不定です。
データ転送には , 32 ビット長のデータ転送命令を使用してください
(8 ビット /16 ビット長のデータ転送命令は使わないでください )。
● 1 検出用データレジスタ (BSD1)
bit 31
0
000003F4H
リード / ライト→ リード / ライト可能
初期値→ 不定
データ転送には 32 ビット長のデータ転送命令を使用してください
(8 ビット /16 ビット長のデータ転送命令は使わないでください )。
• 書込み時
書き込んだ値に対して , 1 検出します。
• 読出し時
ビットサーチモジュールの内部状態の退避用データが読み出されます。割込みハン
ドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避・復帰する
ときに使用します。
0 検出 , 変化点検出 , データレジスタにデータを書き込んだ場合でも , 1 検出用デー
タレジスタのみ操作することで退避・復帰できます。
リセットによる初期値は不定です。
163
第 7 章 REALOS 関連ハード
● 変化点検出用データレジスタ (BSDC)
bit 31
0
000003F8H
リード / ライト→ ライトオンリ
初期値→ 不定
書き込んだ値に対して , 変化点の検出を行います。
リセットによる初期値は不定です。
読出し値は不定です。
データ転送には 32 ビット長のデータ転送命令を使用してください
(8 ビット /16 ビット長のデータ転送命令は使わないでください )。
● 検出結果レジスタ (BSRR)
bit 31
0
000003FCH
リード / ライト→ リードオンリ
初期値→ 不定
0 検出 , 1 検出 , または変化点検出の結果が読み出されます。
どの検出結果が読み出されるかは , 最後に書き込んだデータレジスタによって決定さ
れます。
164
第 7 章 REALOS 関連ハード
■ 動作説明
● 0 検出
0 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"0" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
表 7.2-1 に検出した位置と返す数値の関係を示します。
"0" が存在しないとき ( すなわち FFFFFFFFH という数値のとき ), 32 という値をサーチ
結果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
11111111111111111111000000000000B (FFFFF000H)
→
20
11111000010010011110000010101010B (F849E0AAH)
→
5
10000000000000101010101010101010B (8002AAAAH)
→
1
11111111111111111111111111111111B (FFFFFFFFH)
→
32
● 1 検出
1 検出用データレジスタに書き込まれたデータを MSB から LSB へスキャンし , 最初の
"1" を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
表 7.2-1 に検出した位置と返す数値の関係を示します。
"1" が存在しないとき ( すなわち 00000000H という数値のとき ), 32 という値をサーチ
結果として返します。
[ 実行例 ]
書込みデータ
読出し値 (10 進 )
00100000000000000000000000000000B (20000000H)
→
2
00000001001000110100010101100111B (01234567H)
→
7
00000000000000111111111111111111B (0003FFFFH)
→
14
00000000000000000000000000000001B (00000001H)
→
31
00000000000000000000000000000000B (00000000H)
→
32
165
第 7 章 REALOS 関連ハード
● 変化点検出
変化点検出用データレジスタに書き込まれたデータを bit30 から LSB へスキャンし ,
MSB の値と比較します。最初に MSB と異なる値を検出した位置を返します。
検出結果は , 検出結果レジスタを読み出すことで得られます。
表 7.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
表 7.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
166
第 7 章 REALOS 関連ハード
■ 退避・復帰の処理
割込みハンドラ中でビットサーチモジュールを使う場合のように , ビットサーチモ
ジュールの内部状態を退避・復帰させる必要がある場合は , 以下の手順に従ってくださ
い。
① 1 検出用データレジスタを読み出し , この内容を保存する ( 退避 )
② ビットサーチモジュールを使用
③ ①で退避したデータを 1 検出用データレジスタに書き込む ( 復帰 )
以上の操作により, 次に検出結果レジスタを読み出したときに得られる値は, ①以前に
ビットサーチモジュールに書き込まれた内容に応じたものとなります。最後に書き込
まれたデータレジスタが0検出用または変化点検出用であっても, 上記手順で正しく元
に戻ります。
167
第 7 章 REALOS 関連ハード
168
第8章
16 ビットリロードタイマ
16 ビットリロードタイマの概要 , レジスタの構成 /
機能およびリロードタイマの動作について説明し
ます。
8.1
16 ビットリロードタイマの概要
8.2
ブロックダイヤグラム
8.3
16 ビットリロードタイマのレジスタ
8.4
リロードタイマの動作
169
第 8 章 16 ビットリロードタイマ
8.1
16 ビットリロードタイマの概要
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ
スタ , 内部カウントクロック作成用プリスケーラおよびコントロールレジスタで構
成されています。
クロックソースとして内部クロック 3 種類 ( マシンクロックの 2/8/32 分周を選択可
能 ) と 外部トリガから選択できます。
■ リロードタイマのレジスタ一覧
図 8.1-1 16 ビットリロードタイマのレジスタ一覧
コントロールステータス レジスタ (TMCSR)
bit
15
14
アドレス
ch.0 0000004EH
ch.1 00000056H
13
12
11
10
9
8
−
−
−
−
CSL1
CSL0
MOD2
MOD1
7
6
5
4
3
2
1
0
MOD0
−
OUTL
RELD
INTE
UF
CNTE
TRG
ch.2 0000005EH
bit
16 ビットタイマレジスタ (TMR)
bit
アドレス
ch.0 0000004AH
ch.1 00000052H
15
0
ch.2 0000005AH
16 ビットリロードレジスタ (TMRLR)
bit
15
アドレス
ch.0 00000048H
ch.1 00000050H
ch.2 00000058H
170
0
第 8 章 16 ビットリロードタイマ
ブロックダイヤグラム
8.2
リロードタイマのブロックダイヤグラムを示します。
図 8.2-1 リロードタイマのブロックダイヤグラム
16ビットリロードレジスタ
(TMRLR)
リロード
RELD
OUTL
INTE
UF
CNTE
TRG
16ビットタイマレジスタ(TMR)
R-bus
UF
OUT
CTL
カウント
イネーブル
クロック
セレクタ
CSL1
CSL0
EXCK
プリスケーラ
IRQ
外部タイマ
出力
IN CTL
プリスケーラ
クリア
CSL1
CSL0
該当PFRビット
外部トリガ
選択
外部トリガ入力
171
第 8 章 16 ビットリロードタイマ
8.3
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマのレジスタについて説明します。
■ コントロールステータスレジスタ (TMCSR)
図 8.3-1 コントロールステータスレジスタ (TMCSR)
コントロールステータス レジスタ (TMCSR)
bit
15
14
アドレス
ch.0 0000004EH
−
−
ch.1 00000056H
ch.2 0000005EH リード / ライト
13
12
11
10
9
8
−
−
CSL1
CSL0
MOD2
MOD1
−
0
−
0
−
0
R/W
R/W
R/W
R/W
初期値
−
0
0
0
0
0
bit
7
6
5
4
3
2
1
0
MOD0
−
OUTL
RELD
INTE
UF
CNTE
TRG
R/W
−
0
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
リード / ライト
初期値
0
R/W : リード / ライト可能
16 ビットタイマの動作モードおよび割込みの制御を行います。
UF, CNTE, TRG ビット以外の書換えは , CNTE=0 のときに行うようにしてください。
[bit15 ∼ bit12] 未使用ビット
常に "0" が読み出されます。
[bit11, bit10] CSL1, CSL0 (Count source select)
カウントソースセレクトビットです。カウントソースは内部クロックと外部イベン
トを選択できます。選択可能なカウントソースは以下のとおりです。
カウントソース
(φ: マシンクロック )
φ=32MHz
φ=16MHz
内部クロック φ/21 ( 初期値 )
62.5ns
125ns
1
内部クロック φ/23
250ns
0.5μs
1
0
内部クロック φ/25
1.0μs
2.0μs
1
1
外部イベント
−
−
CSL1
CSL0
0
0
0
表に記載されていない設定は禁止です。
外部イベントをカウントソースに設定した場合のカウント有効エッジは MOD1,
MOD0 ビットにより設定されます。
外部クロックに必要な最小パルス幅は 2 × T (T: マシンクロックサイクル ) です。
172
第 8 章 16 ビットリロードタイマ
[bit9 ∼ bit7] MOD2 ∼ MOD0 (Mode)
動作モードを選択するビットです。カウントソースが「内部クロック」の場合と
「外部クロック」の場合で機能が変わります。
•
内部クロックモードのとき:リロードトリガ設定
•
外部クロックモードのとき:カウント有効エッジの設定
また , MOD2 は必ず "0" に設定してください。
[ 内部クロック選択時のリロードトリガ設定 ]
カウントソースとして , 内部クロックが選択されている場合は MOD2 ∼ MOD0 ビッ
トの設定により有効エッジが入力されるとリロードレジスタの内容をロードして
カウント動作を継続します。
MOD2
MOD1
MOD0
0
0
0
ソフトウェアトリガ ( 初期値 )
0
0
1
外部トリガ ( 立上りエッジ )
0
1
0
外部トリガ ( 立下りエッジ )
0
1
1
外部トリガ ( 両エッジ )
1
X
X
設定禁止
有効エッジ
X : 不定
[ 外部クロック選択時の有効エッジ設定 ]
カウントソースとして , 外部クロックイベントが設定されている場合は MOD2 ∼
MOD0 ビットの設定により有効エッジが入力されるとイベントをカウントします。
MOD2
MOD1
MOD0
有効エッジ
X
0
0
−
X
0
1
外部トリガ ( 立上りエッジ )
X
1
0
外部トリガ ( 立下りエッジ )
X
1
1
外部トリガ ( 両エッジ )
X
X
X
設定禁止
X : 不定
外部イベント時のリロードは , アンダフローとソフトウェアトリガで発生します。
[bit6] 未使用ビット
常に "0" が読み出されます。
173
第 8 章 16 ビットリロードタイマ
[bit5] OUTL
外部タイマ出力レベルを設定するビットです。本ビットが "0" のときと "1" のとき
では出力レベルが逆になります。
[bit4] RELD
リロード許可ビットです。"1" のときリロードモードになり , カウンタの値が "0000H" →
"FFFFH" へのアンダフローと同時にリロードレジスタの内容をカウンタへロードしてカ
ウント動作を続けます。
"0" のときワンショットモードになり , カウンタの値が "0000H" → "FFFFH" へのアン
ダフローによりカウント動作を停止します。
PFR/EPFR
OUTL
RELD
0
X
X
出力禁止
1
0
0
カウント中 "H" の矩形波
1
1
0
カウント中 "L" の矩形波
1
0
1
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
X : 不定
PFR/EPFR は , 該当する PFR/EPFR レジスタ内ビットの値を示します。
[bit3] INTE
割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を発生
します。"0" のときは割込み要求を発生しません。
[bit2] UF
タイマ割込み要求フラグです。カウンタの値が "0000H" → "FFFFH" へのアンダフ
ローにより "1" にセットされます。"0" の書込みによってクリアされます。
このビットへの "1" 書込みは意味がありません。
リードモディファイライト(RMW)系命令における読出しでは, "1"が読み出されます。
[bit1] CNTE
タイマのカウントイネーブルビットです。このビットに "1" を書き込むと起動トリ
ガ待ち状態になります。"0" 書込みによりカウント動作は停止します。
[bit0] TRG
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。
"0" 書込みは意味を持ちません。読出し値は常に "0" です。
本レジスタによるトリガ入力は , CNTE=1 のときのみ有効となります。CNTE=0 の
ときには何も起こりません。
174
第 8 章 16 ビットリロードタイマ
■ 16 ビットタイマレジスタ (TMR)
図 8.3-2 16 ビットタイマレジスタ (TMR)
16 ビットタイマレジスタ (TMR)
bit
アドレス
ch.0 0000004AH
ch.1 00000052H
15
14
13
12
11
10
9
8
ch.2 0000005AH リード / ライト
R
R
R
R
R
R
R
R
初期値
X
X
X
X
X
X
X
X
bit
7
6
5
4
3
2
1
0
リード / ライト
R
R
R
R
R
R
R
R
初期値
X
X
X
X
X
X
X
X
R
X
: リードオンリ
: 不定
16 ビットタイマのカウント値を読み出すことができるレジスタです。初期値は不定で
す。
本レジスタの読出しは必ず 16 ビットデータ転送命令で行ってください。
■ 16 ビットリロードレジスタ (TMRLR)
図 8.3-3 16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタ(TMRLR)
bit
15
アドレス
ch.0 00000048H
ch.1 00000050H
14
13
12
11
10
9
8
ch.2 00000058H リード / ライト
W
W
W
W
W
W
W
W
初期値
X
X
X
X
X
X
X
X
bit
7
6
5
4
3
2
1
0
リード / ライト
W
W
W
W
W
W
W
W
初期値
X
X
X
X
X
X
X
X
W
X
: ライトオンリ
: 不定
本レジスタは , カウントの初期値を保持しておくためのレジスタです。初期値は不定で
す。
本レジスタの書込みは必ず 16 ビットデータ転送命令で行ってください。
175
第 8 章 16 ビットリロードタイマ
8.4
リロードタイマの動作
リロードタイマの以下の動作について説明します。
• 内部クロック動作
• アンダフロー動作
■ 内部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , カウントソースとしてマシ
ンクロックの 2・8・32 分周のクロックから選択することができます。
カウント許可と同時にカウント動作を開始したい場合は , コントロールステータスレ
ジスタの CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態 (CNTE = 1) のとき動作モードにか
かかわらず常に有効です。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに T( 周辺系クロックマシンサイクル ) の時間がかかります。
図 8.4-1 カウンタの起動および動作
カウントクロック
カウンタ
リロードデータ
-1
-1
-1
データロード
CNTE(レジスタ)
TRG(レジスタ)
T
■ アンダフロー動作
カウンタの値が "0000H" から "FFFFH" になるときをアンダフローとしています。
したがっ
て , 〔リロードレジスタの設定値+ 1〕カウントでアンダフローが発生します。
アンダフロー発生時コントロールレジスタの RELD ビットが "1" のときリロードレジ
スタの内容をカウンタへロードしてカウント動作を継続します。RELD ビットが "0" の
ときカウンタは , "FFFFH" で停止します。
図 8.4-2 アンダフロー動作
カウントクロック
カウンタ
0000H
リロードデータ
データロード
アンダフローセット
[RELD=1]
カウントクロック
カウンタ
0000H
アンダフローセット
[RELD=0]
176
FFFFH
-1
-1
-1
第 8 章 16 ビットリロードタイマ
■ 出力端子機能
TOT0 ∼ TOT2 出力端子は , リロードモード時はアンダフローにより反転するトグル出
力として , ワンショットモード時はカウント中を示すパルス出力として機能します。出
力極性はレジスタの OUTL ビットにより設定できます。OUTL=0 のとき , トグル出力
は初期値が "0" で , ワンショットパルス出力はカウント中 "1" を出力します。OUTL=1
にすると出力波形は反転します。
図 8.4-3 出力端子機能 [RELD=1, OUTL=0]
カウント開始
アンダフロー
OUTL=1のときは反転
TOT0~TOT2
汎用ポート
CNTE
起動トリガ
図 8.4-4 出力端子機能 [RELD=0, OUTL=0]
カウント開始
アンダフロー
TOT0~TOT2
OUTL=1で反転
汎用ポート
CNTE
起動トリガ
起動トリガ待ち状態
177
第 8 章 16 ビットリロードタイマ
■ カウンタの動作状態
カウンタの状態は , コントロールレジスタの CNTE ビットと内部信号の WAIT 信号に
よって決まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ),
CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1, WAIT=0 の動作状態
(RUN 状態 ) があります。
図 8.4-5 カウンタ状態遷移
ハードウェアによる状態遷移
リセット
レジスタアクセスによる状態遷移
STOP CNTE=0,WAIT=1
カウンタ:停止時の値を保持
リセット直後は不定
CNTE=1
TRG=1
CNTE=1
TRG=0
RUN CNTE=1,WAIT=0
W AIT CNTE=1,WAIT=1
カウンタ:停止時の値を保持
リセット直後ロードするま
では不定
RELD・UF
TRG=1
カウンタ:動作
TRG=1
LOAD CNTE=1,WAIT=0
リロードレジスタの内
容をカウンタへロード
RELD・UF
ロード終了
■ その他
リロードタイマの ch.2 の TOT2 出力は , LSI 内部で A/D コンバータに接続されていま
す。したがって , リロードレジスタに設定された周期で A/D 変換を起動することがで
きます。
■ 注意事項
• 内部プリスケーラは , コントロールステータスレジスタの bit1( タイマ許可 :CNTE) が
"1" に設定されている状態でトリガ ( ソフトウェアトリガあるいは外部トリガ ) がか
けられることにより動作可能になります。
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合にはフラ
グセットが優先し , クリア動作は無効になります。
• 16 ビットタイマリロードレジスタへの書込みと , リロードのタイミングが重なった
場合には , 旧データがカウンタにロードされ , 新データがカウンタにロードされる
のは次のリロードのタイミングとなります。
• 16 ビットタイマレジスタはロードとカウントのタイミングが重複した場合には , ロー
ド ( リロード ) 動作が優先されます。
178
第9章
PPG
PPG の概要 , レジスタの構成 , 機能および PPG の
動作について説明します。
9.1
PPG の概要
9.2
PPG のブロックダイヤグラム
9.3
PPG のレジスタ
9.4
PPG の動作説明
179
第 9 章 PPG
9.1
PPG の概要
PPG は , 8 ビットのリロードタイマモジュールで , タイマ動作に応じたパルス出力制
御により , PPG 出力を行います。
ハードウェアとして , 8 ビットダウンカウンタ 8 個 , 8 ビットリロードレジスタ 16
個 , 制御レジスタ , 外部パルス出力 8 本 , 割込み出力 4 本を有します。
MB91245/S シリーズは , 8 ビット PPG として 8 チャネル分 , 16 ビット PPG として
4 チャネル分搭載しています。
■ PPG の機能
•
8 ビット PPG 出力独立動作モード
8 チャネルの独立した PPG 出力動作が可能です。
( 注意事項 ) 本品種で LCDC を使用する場合は , 奇数チャネルの出力 (PPG1, PPG3,
PPG5, PPG7) は使用することができません。
•
16 ビット PPG 出力動作モード
4 チャネルの 16 ビットの PPG 出力動作が可能です。
•
8+8 ビット PPG 出力動作モード
ch.(n+1) の出力を ch.(n) のクロック入力とすることにより , 任意周期の 8 ビット PPG
出力動作が可能です (n=0, 2, 4, 6)。
• 16+16 ビット PPG 出力動作モード
ch.(n+3)+ch.(n+2) の 16 ビットプリスケーラ出力を ch.(n+1)+ch.(n) の 16 ビット PPG
のクロック入力とするモードです (n=0, 4)。
• PPG 出力動作
任意周期・デューティ比のパルス波を出力します。
外付け回路により , D/A コンバータとしても使用可能です。
• 出力反転機能
PPG の出力値を反転させることが可能です。
180
第 9 章 PPG
■ PPG のレジスタ一覧
図 9.1-1 PPG のレジスタ一覧
PPG 起動レジスタ (TRG)
bit
アドレス
0001B1H
7
6
5
4
2
1
0
PEN07 PEN06 PEN05 PEN04 PEN03 PEN02 PEN01 PEN00
リード /
ライト
初期値
出力反転レジスタ (REVC)
bit
アドレス
0001B3H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
REV07 REV06 REV05 REV04 REV03 REV02 REV01 REV00
リード /
ライト
初期値
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
3
2
1
0
PPG0 ∼ PPG7 動作モード制御レジスタ (PPGC0 ∼ PPGC7)
bit
7
6
5
4
アドレス
ch.0 0001BCH
ch.1 0001BDH
ch.2 0001BEH
ch.3 0001BFH
ch.4 0001C8H
ch.5 0001C9H
ch.6 0001CAH
ch.7 0001CBH
3
リード /
ライト
初期値
PIEn
PUFn
INTMn
PCS1
PCS0
MD1 *
MD0 *
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
-
0
0
0
0
0
0
0
X
n=0∼7
*:MD1, MD0 は , 偶数チャネルのみ存在し , 奇数チャネルには存在し
ません。奇数チャネルの初期値は不定です。書込みは意味があり
ません。
R/W : リード / ライト可能
X
: 不定
181
第 9 章 PPG
● リロードレジスタ : 8 ビット PPG モード
リロードレジスタ H (PRLH0 ∼ PRLH7)
bit
15
14
アドレス
ch.0 0001B4H
ch.1 0001B6H
リード /
R/W
R/W
ch.2 0001B8H
ライト
ch.3 0001BAH
X
X
初期値
ch.4 0001C0H
ch.5 0001C2H
ch.6 0001C4H
ch.7 0001C6H
リロードレジスタ L (PRLL0 ∼ PRLL7)
bit
7
6
アドレス
ch.0 0001B5H
ch.1 0001B7H
リード /
R/W
R/W
ch.2 0001B9H
ライト
ch.3 0001BBH
X
X
初期値
ch.4 0001C1H
ch.5 0001C3H
ch.6 0001C5H
ch.7 0001C7H
R/W : リード / ライト可能
X
: 不定
182
13
12
11
10
9
8
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
5
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
第 9 章 PPG
● リロードレジスタ : 16 ビット PPG モード
リロードレジスタ H (PRLH0, PRLH2, PRLH4, PRLH6)
bit
15
14
13
アドレス
ch.0 0001B4H
ch.2 0001B8H
リード /
R/W
R/W
R/W
ch.4 0001C0H
ライト
ch.6 0001C4H
X
X
X
初期値
bit
リード /
ライト
初期値
リード /
ライト
初期値
11
10
9
8
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
7
6
5
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
12
11
10
9
8
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
リロードレジスタ L (PRLL0, PRLL2, PRLL4, PRLL6)
bit
15
14
13
アドレス
ch.0 0001B6H
ch.2 0001BAH
リード /
R/W
R/W
R/W
ch.4 0001C2H
ライト
ch.6 0001C6H
X
X
X
初期値
bit
12
7
6
5
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
R/W : リード / ライト可能
X
: 不定
183
第 9 章 PPG
9.2
PPG のブロックダイヤグラム
PPG のブロックダイヤグラムを示します。
■ 8 ビット PPG ch.0, ch.2, ch.4, ch.6 のブロックダイヤグラム
図 9.2-1 8 ビット PPG ch.0, ch.2, ch.4, ch.6 のブロックダイヤグラム
ch.(n+1)のボロー
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
ポートへ
PPG
出力ラッチ
反転
クリア
PEN(n+1)
カウントクロック
選択
S
R Q
PCNT(ダウンカウンタ)
リロード
"H"/"L"セレクト
"H"/"L"セレクタ
PRLLn
PIEn
PRLHn
PUFn
"L"側データバス
"H"側データバス
PPGCn / TRG
n = 0,2,4,6
184
動作モード
(制御)
IRQn
第 9 章 PPG
■ 8 ビット PPG ch.1, ch.5 のブロックダイヤグラム
図 9.2-2 8 ビット PPG ch.1, ch.5 のブロックダイヤグラム
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"側データバス
PPGCn / TRG
n = 1,5
動作モード
(制御)
185
第 9 章 PPG
■ 8 ビット PPG ch.3, ch.7 のブロックダイヤグラム
ポートへ
マシンクロックの64分周
マシンクロックの16分周
マシンクロックの4分周
マシンクロック
PPG
出力ラッチ
反転
クリア
PENn
S
R Q
カウントクロック
選択
IRQn
PCNT(ダウンカウンタ)
ch.(n-1)
のボロー
リロード
"H"/"L"セレクト
"H"/"L"セレクタ
PUFn
PRLLn
PIEn
PRLHn
"L"側データバス
"H"側データバス
PPGCn / TRG
n = 3,7
186
動作モード
(制御)
第 9 章 PPG
9.3
PPG のレジスタ
PPG のレジスタの詳細を説明します。
■ PPGCn レジスタ (PPGn 動作モード制御レジスタ )
n=0, 1, 2, 3, 4, 5, 6, 7
PPG0 ∼ PPG7 動作モード制御レジスタ (PPGC0 ∼ PPGC7)
bit
7
6
5
4
アドレス
ch.0 0001BCH
PIEn
PUFn
INTMn
PCS1
ch.1 0001BDH
リード /
ch.2 0001BEH
R/W
R/W
R/W
R/W
ライト
ch.3 0001BFH
0
0
0
0
初期値
ch.4 0001C8H
3
2
1
0
PCS0
MD1 *
MD0 *
-
R/W
R/W
R/W
-
0
0
0
X
n=0∼7
ch.5 0001C9H
ch.6 0001CAH
ch.7 0001CBH
*:MD1, MD0 は , 偶数チャネルのみ存在し , 奇数チャネルには存在しませ
ん。奇数チャネルの初期値は不定です。書込みは意味がありません。
R/W : リード / ライト可能
X
: 不定
[bit7] PIEn(Ppg Interrupt Enable):PPG 割込み許可ビット
PPG の割込み許可を以下のように制御します。
0
割込み禁止
1
割込み許可
• 本ビットが "1" のとき , PUFn が "1" になると割込み要求が発生します。
• 本ビットが "0" のときは , 割込み要求を発生しません。
• リセットにより , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit6] PUFn(Ppg Underflow Flag):PPG カウンタアンダフロービット
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" になります。
187
第 9 章 PPG
•
このビットへの "1" 書込みは意味がありません。
• リードモディファイライト (RMW) 系命令での読出し時は , "1" が読まれます。
• リセットにより , "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit5] INTMn(Interrupt Mode):割込みモードビット
PUFn のビットの検出を PRLHn からのアンダフロー時のみに限定することができま
す。
0
アンダフロー時 , PUFn を "1" にする
1
PRLHn からのアンダフロー時のみ , PUFn を "1" にする
• リセットにより , "0" に初期化されます。
• 読出しおよび書込みが可能です。
• 本ビットを "1" にすると , PPG の波形の一周期出力時に割込みをかけることが可
能となります。
• 本ビットは , 割込み許可時に書き換えないでください。
[bit4, bit3] PCS1/PCS0(Ppg Count Select):カウントクロック選択ビット
ダウンカウンタの動作クロックを以下のように選択します。
PCS1
PCS0
0
0
マシンクロック
0
1
マシンクロック /4 (250ns マシンクロック 16MHz 時 )
1
0
マシンクロック /16 ( 1μs マシンクロック 16MHz 時 )
1
1
マシンクロック /64 ( 4μs マシンクロック 16MHz 時 )
動作モード
(62.5ns マシンクロック 16MHz 時 )
• リセットにより , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit2, bit1] MD1/MD0(ppg count MoDe):動作モード選択ビット
PPG タイマの動作モードを以下のように選択します。
MD1
MD0
0
0
8 ビット PPG 2 チャネル独立モード
0
1
8 ビットプリスケーラ+ 8 ビット PPG モード
1
0
16 ビット PPG モード
1
1
16 ビットプリスケーラ+ 16 ビット PPG モード
動作モード
• リセットにより , "00B" に初期化されます。
• 読出しおよび書込みが可能です。
•
188
本ビットは偶数チャネルのみに存在します。
第 9 章 PPG
[bit0] reserved bit
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。
読出し値は不定です。
■ PRLL/PRLH レジスタ ( リロードレジスタ : PRLL0 ∼ PRLL7/PRLH0 ∼ PRLH7) )
リロードレジスタ H (PRLH0 ∼ PRLH7)
bit
15
14
アドレス
ch.0 0001B4H
ch.1 0001B6H
リード /
R/W
R/W
ch.2 0001B8H
ライト
ch.3 0001BAH
X
X
初期値
ch.4 0001C0H
ch.5 0001C2H
ch.6 0001C4H
ch.7 0001C6H
リロードレジスタ L (PRLL0 ∼ PRLL7)
bit
7
6
アドレス
ch.0 0001B5H
ch.1 0001B7H
リード /
R/W
R/W
ch.2 0001B9H
ライト
ch.3 0001BBH
X
X
初期値
ch.4 0001C1H
ch.5 0001C3H
ch.6 0001C5H
ch.7 0001C7H
13
12
11
10
9
8
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
5
4
3
2
1
0
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
R/W : リード / ライト可能
X
: 不定
ダウンカウンタ PCNT へのリロード値を保持するレジスタです。それぞれ , 以下に示
す役割を持っています。
レジスタ名
機能
PRLL
"L" 側リロード値保持
PRLH
"H" 側リロード値保持
どのレジスタも , 読出しおよび書込みが可能です。
189
第 9 章 PPG
<注意事項>
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット
PPG モードで使用する場合には , プリスケーラ側の PRLL と PRLH に異なる値を設定す
ると, PPG波形がサイクルごとに異なる場合があるので, プリスケーラ側のPRLLとPRLH
は , 同じ値に設定することを推奨します。
16 ビット PPG で使われる場合は , 例えば , ch.0 + ch.1 の使用する場合のリロードアドレス
の "H" 側アドレスは , 1B4H + 1B5H, "L" 側アドレスは 1B6H + 1B7H になります。よって "H"
カウント値 = 1234H, "L" カウント値 = 5678H の場合は ,
1B4H: 00010010B
1B5H: 00110100B
1B6H: 01010110B
1B7H: 01111000B になります。
■ PPG 起動レジスタ (TRG)
PPG 起動レジスタ (TRG)
bit
アドレス
0001B1H
7
6
5
4
3
2
1
0
PEN07
PEN06
PEN05
PEN04
PEN03
PEN02
PEN01
PEN00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
リード /
ライト
初期値
R/W : リード / ライト可能
[bit7 ∼ bit0] PEN07 ∼ PEN00 (Ppg ENable):PPG 動作許可ビット
PPG の動作開始および動作モードを以下のように選択します。
PEN07 ∼ PEN00
動作状態
0
動作停止 ("L" レベル出力保持 )
1
PPG 動作許可
• リセットにより , "0" に初期化されます。
• 読出しおよび書込みが可能です。
• 16 ビット PPG で使用する場合は , 偶奇数両方の該当する PEN ビットを同じ設定
にする必要があります。レジスタ設定時に偶奇数同時に許可 / 停止をしてくださ
い。
190
第 9 章 PPG
■ 出力反転レジスタ (REVC)
出力反転レジスタ (REVC)
bit
アドレス
0001B3H
7
6
5
4
3
2
1
0
REV07
REV06
REV05
REV04
REV03
REV02
REV01
REV00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
0
0
リード /
ライト
初期値
R/W: リード / ライト可能
[bit7 ∼ bit0] REV07 ∼ REV00 :出力反転ビット
PPG の出力値を初期レベルも含めて反転します。
REV07 ∼ REV00
出力レベル
0
通常
1
反転
• リセットにより , "0" に初期化されます。
• 読出しおよび書込みが可能です。
• 単に , PPG 出力を反転するだけですので , 初期レベルも反転します。
また , リロードレジスタの "L", "H" の関係も逆になります。
• 16 ビット PPG で使う場合は , PPG(m) と PPG(m+1) どちらの端子からも同じ波形
が出るので , 使われる端子の REVXX を設定するだけで使用可能です。両方同じ
設定を行っても問題ありません。
191
第 9 章 PPG
9.4
PPG の動作説明
PPG には 8 ビット長の PPG ユニットが 8 チャネルあり , 独立モード以外に , 連結動
作させることにより , 8 ビットプリスケーラ+ 8 ビット PPG モードと 16 ビット
PPG 1 チャネルモード , 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類
の動作を行うことができます。
8 ビット長の PPG ユニットそれぞれには , " L" 側と "H" 側の 2 本の 8 ビット長のリロー
ドレジスタがあります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダ
ウンカウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとに
ダウンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力 (PPG) の値
を反転させます。この動作により , 端子出力 (PPG) はリロードレジスタ値に対応した
"L" 幅 /"H" 幅をもつパルス出力となります。
動作開始 / 再スタートは , レジスタのビット書込みによります。
リロード動作とパルス出力の関係を以下に示します。
リロード動作
端子出力変化
PRLH → PCNT
PPGn [0 → 1]
PRLL → PCNT
PPGn [1 → 0]
n=0∼7
また , PPGCn レジスタの bit7:PIEn が "1" のとき , カウンタの "00H" から "FFH" へのボ
ロー (16 ビット PPG モードの場合には , "0000H" から "FFFFH" へのボロー ) によって割
込み要求が出力されます。
● 動作モードについて
本ブロックは , 独立モード , 8 ビットプリスケーラ+ 8 ビット PPG モード , 16 ビット
PPG 1 チャネルモードと 16 ビットプリスケーラ+ 16 ビット PPG モードの計 4 種類の
動作モードがあります。
• 独立モードは , 8 ビット PPG として独立に動作させる動作モードです。PPG(n) 端子
は , ch.(n) の PPG 出力が接続されます (n=0 ∼ 7)。
• 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 出力が接続されます。
• 16 ビットプリスケーラ +16 ビット PPG モードは , 2 つのチャネルを連結させ , 16
ビット PPG とし , かつ残る 2 つのチャネルを連結させ , 16 ビットプリスケーラとし
て起動させる動作モードです。
192
第 9 章 PPG
● PPG 出力動作について
PPG は , TRG レジスタ (PPG 起動レジスタ ) の各チャネルのビットを "1" にセットする
ことによって起動され , カウントを開始します。動作を開始した後は , TRG レジスタの
各チャネルビットに "0" を書き込むことによってカウント動作を停止し , 停止した後 ,
パルス出力は "L" レベルを保持します。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モード時には , プリスケーラチャネルを停止状態で , PPG チャネルを動作状態
に設定しないでください。
16 ビット PPG モード時には , 各チャネルの TRG レジスタの PENn をそれぞれ同時に開
始 / 停止の制御を行ってください (n=0 ∼ 7)。
以下に PPG 出力動作について説明します。
PPG 動作時は , 任意周波数 / 任意デューティ比 ( パルス波の "H" レベル期間と "L" レベ
ル期間の比 ) のパルス波出力を連続して出力します。PPG はパルス波出力を開始する
と , 動作停止を設定するまで停止しません。
図 9.4-1 PPG 出力動作 出力波形
PENn
PENnにより
動作開始
("L"側から)
出力端子
PPG
T×(L+1)
T×(H+1)
スタート
L:PRLLの値
H:PRLHの値
T:マシンクロック
または
タイマベースカウンタからの入力
(PPGCのクロックセレクトによる)
n =0~15
● リロード値とパルス幅の関係について
リロードレジスタに書かれた値に "+1" した値に , カウントクロックの周期を掛けた値
が , 出力されるパルス幅となります。つまり , 8 ビット PPG 動作時のリロードレジスタ
値が "00H" のとき , および 16 ビット PPG 動作時のリロードレジスタ値が "0000H" のと
きは, カウントクロック1周期分のパルス幅をもつことになりますので注意してくださ
い。また , 8 ビット PPG 動作時のリロードレジスタ値が "FFH" のとき , カウントクロッ
ク 256 周期分のパルス幅をもつことになり , 16 ビット PPG 動作時のリロードレジスタ
値が "FFFFH" のときは , カウントクロック 65536 周期分のパルス幅をもつことになり
ますので注意してください。
パルス幅の計算式を以下に示します。
Pl = T × (L + 1)
Ph = T × (H + 1)
{
L : PRLL の値
H : PRLH の値
T : 入力クロック周期
Ph : "H" パルス幅
Pl : "L" パルス幅
193
第 9 章 PPG
● カウントクロックの選択について
本ブロックの動作に使用するカウントクロックは , 周辺クロックおよびタイムベース
カウンタの入力を使用しており 4 種類のカウントクロック入力が選択できます。
カウントクロックは以下のように動作します。
PPGC0 ∼ PPGC7
レジスタ
カウントクロック動作
PCS1
PCS0
0
0
カウントクロックは , 周辺クロックごとに 1 カウント
0
1
カウントクロックは , 周辺クロック 4 サイクルごとに 1 カウント
1
0
カウントクロックは , 周辺クロック 16 サイクルごとに 1 カウント
1
1
カウントクロックは , 周辺クロック 64 サイクルごとに 1 カウント
ただし , 8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+
16 ビット PPG モード時には , 先頭の PPG 以外の PPG の PPGC レジスタ中の bit4, bit3:
PCS1, PCS0 の値は無効になります。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビッ
ト PPG モードで , プリスケーラ側が動作状態で , PPG 側が停止状態であるときに , PPG
側の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意してくだ
さい。
194
第 9 章 PPG
● パルスの端子出力の制御について
本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG0 ∼ PPG7 より出
力させることができます。
16 ビット PPG モードでは , PPG(m) と PPG(m+1) は同じ波形が出力されるので , どちら
の外部端子出力を許可しても同じ出力を得ることができます (m = 0, 2, 4, 6)。
8 ビットプリスケーラ+ 8 ビット PPG モードおよび 16 ビットプリスケーラ+ 16 ビット
PPGモードでは, プリスケーラ側は8ビットプリスケーラのトグル波形が出力され, PPG
側は 8 ビット PPG の波形が出力されます。このモードのときの出力波形の例を以下に
示します。
図 9.4-2 8 ビットプリスケーラ+ 8 ビット PPG 出力動作出力波形
Ph1
Pl1
PPG1
PPG0
Ph0
Pl0
L1
Pl1 = T x (L1 + 1)
Ph1 = T x (L1 + 1)
Pl0 = T x (L1 + 1) x (L0 + 1)
Ph0 = T x (L1 + 1) x (H0 + 1)
L0
H0
T
Ph0
Pl0
Ph1
Pl1
:ch.1 の PRLL の値 および
ch.1 の PRLH の値
:ch.0 の PRLL の値
:ch.0 の PRLH の値
:入力クロック周期
:PPG0 の "H" パルス幅
:PPG0 の "L" パルス幅
:PPG1 の "H" パルス幅
:PPG1 の "L" パルス幅
( 注意事項 ) ch.1 の PRLL と ch.1 の PRLH は , 同じ値を設定することを推奨します。
● 割込みについて
本モジュールの割込みは , リロード値がカウントアウトし , ボローが発生したときにア
クティブになります。ただし , INTMn ビットを "1" にしたときは , PRLHn からのアン
ダフロー時 ( ボロー ) のみアクティブになります。つまり , "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) を同時に行う
ことを推奨します (m = 0, 2, 4, 6)。
● 各ハードウェアの初期値について
本ブロックの各ハードウェアは , リセット時に以下のように初期化されます。
< レジスタ >
PPGC(n) → 0000000XB
< パルス出力 >
PPG(n) → "L"
< 割込み要求 >
IRQ(n) → "L"
(n = 0 ∼ 7)
上記以外のハードウェアは初期化されません。
195
第 9 章 PPG
● 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
0
1
0
8 ビット PPG
8 ビット PPG
0
0
1
1
0
1
0
0
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
0
1
0
1
8 ビット PPG
8 ビット
プリスケーラ
8 ビット PPG
0
1
1
0
8 ビット PPG
8 ビット
プリスケーラ
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
8 ビット
プリスケーラ
16 ビット PPG
設定禁止
8 ビット PPG
8 ビット
プリスケーラ
16 ビット PPG
設定禁止
16 ビット PPG
設定禁止
16 ビット PPG
16 ビットプリスケーラ
ch.(4, 5, 6, 7) も , それぞれ , ch.(0, 1, 2, 3) と同じ動作組合せが可能です。
以下のように置き換えてください。
ch.0 = ch.4
{
196
ch.1 = ch.5
ch.2 = ch.6
ch.3 = ch.7
第 10 章
PWC (Pulse Width Count:
パルス幅測定 )
PWC の概要 , レジスタの構成 , 機能および動作に
ついて説明します。
10.1
PWC の概要
10.2
PWC のレジスタ
10.3
PWC の動作説明
197
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
PWC の概要
10.1
入力信号のパルス幅測定機能です。
■ PWC の機能
ハードウェアとして , 16 ビットアップカウンタ 1 個 , 入力パルス分周器 & 分周比制御
レジスタ 1 個 , 測定入力端子 1 本 , 16 ビット制御レジスタ 1 個を 1 チャネルとして , 合
計 1 チャネルを有し , これらによって以下の機能を実現します。
● パルス幅測定機能
外部からのパルス入力の任意イベント間の時間を測定します。
基準となる内部クロックは 3 種類の中から選択可能です。
( マシンクロックの 4/16/32 分周 )
"H" パルス幅 ( ↑∼↓ ) / "L" パルス幅 ( ↓∼↑ )
各種測定モード
立上り周期 ( ↑∼↑ ) / 立下り周期 ( ↓∼↓ )
エッジ間測定 ( ↑または↓∼↓または↑ )
8 ビット入力分周器で , 入力パルスを 2n 分周 (n=1, 2, 3, 4, 5, 6, 7, 8) して周期測定を行う
ことが可能です。
測定終了時に割込み要求を発生することが可能です。
1 回のみの測定か連続測定かを選択することが可能です。
■ PWC のレジスタ一覧
図 10.1-1 PWC のレジスタ一覧
アドレス
bit15 ∼ bit8
bit7 ∼ bit0
000139H
198
PDIVR0
000130H
000131H
PWCSR0
000132H
000133H
PWCR0
PWC 分周比制御レジスタ 0
PWC コントロール / ステータスレジスタ 0
PWC データバッファレジスタ 0
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ PWC のブロックダイヤグラム
図 10.1-2 PWC のブロックダイヤグラム
PWCR0リード
エラー検出
16
/
/
16
ERR
PWCR0
内部クロック
(マシンクロック/4)
/ 16
書込み許可
リロード
データ転送
/ 16
R-bus
オーバフロー
制御ビット出力
フラグセットなど
測定開始エッジ
測定終了エッジ
2 クロック
分周器
23
クリア
カウント許可
制御回路
開始エッジ
選択
2
クロック
16ビット アップカウンタ
終了エッジ
選択
CKS1/
CKS0
分周器クリア
分周
ON/OFF
エッジ
検出
PWC0
8ビット
分周器
測定終了割込み要求
ERR
CKS1/CKS0
オーバフロー割込み要求
15
/
分周比
選択
PWCSR0
2
/
PDIVR0
199
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
10.2
PWC のレジスタ
PWC のレジスタの詳細を説明します。
■ PWC コントロール / ステータスレジスタ (PWCSR)
図 10.2-1 PWCSR レジスタ (PWCSR) のビット構成
PWCSR0( 上位 )
アドレス:
ch.0: 000130H
bit
リード / ライト
初期値
15
14
13
12
11
10
9
8
STRT
R/W
(0)
STOP
R/W
(0)
EDIR
R
(0)
EDIE
R/W
(0)
OVIR
R/W
(0)
OVIE
R/W
(0)
ERR
R
(0)
−
−
(X)
7
6
5
4
3
2
1
0
CKS1
R/W
(0)
CKS0
R/W
(0)
−
−
(0)
−
−
(0)
SC
R/W
(0)
PWCSR0( 下位 )
アドレス:
ch.0: 000131H
bit
リード / ライト
初期値
MOD2 MOD1 MOD0
R/W
R/W
R/W
(0)
(0)
(0)
[bit15] STRT:カウンタスタートビット
[bit14] STOP:カウンタストップビット
16 ビットアップカウンタの起動 / 再起動 / 停止を行うビットで , 読出し時にはカウ
ンタの動作状態を表示します。以下にビット機能を示します。
・書込み時機能 ( 動作制御 )
STRT
STOP
0
0
機能なし / 動作に影響なし
0
1
カウンタ起動 / 再起動 ( カウント許可 )*
1
0
カウンタ動作強制停止 ( カウント禁止 )*
1
1
機能なし / 動作に影響なし
動作制御機能
*:クリアビット命令使用可能
・読出し時機能 ( 動作状態表示 )
STRT
STOP
0
0
カウンタ停止中(起動されていないかまたは測定終了)
[ 初期値 ]
1
1
カウント動作中 ( 測定中 )
動作状態表示
• リセット時:"00B" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込み時と読出し時では上記のように
意味が異なります。
• リードモディファイライト (RMW) 系命令における読出し値はビットにかかわら
ず "11B" です。
200
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
• カウンタの起動 / 停止のための STRT , STOP ビットへの書込みは , それぞれの
ビットに対応するビット処理命令 ( ビットクリアなど ) を用いることが可能です
が , 動作状態の読出しにはビット処理命令は使用できません ( 読むと必ず動作中
となりますので注意してください )。
[bit13] EDIR:測定終了割込み要求フラグ
パルス幅測定モード時 , 測定終了したことを示すフラグです。測定終了割込み要求
が許可されているとき (bit12:EDIE=1) に本ビットがセットされると , 測定終了割込
み要求が発生します。
セット要因
パルス幅測定が終了するとセット
(PWCR に測定結果が収納されている )
クリア要因
PWCR( 測定結果 ) をリードすることによりクリア
• リセット時:"0" に初期化されます。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
[bit12] EDIE:測定終了割込み要求許可ビット
パルス幅測定モード時の測定終了割込み要求を以下のように制御します。
0
測定終了割込み要求出力禁止
(EDIR がセットされても割込みは発生せず ) [ 初期値 ]
1
測定終了割込み要求出力許可
(EDIR がセットされると割込みが発生する )
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit11] OVIR:カウンタオーバフロー割込み要求フラグ
全モードにおいて , 16 ビットアップカウンタが "FFFFH" から "0000H" へオーバフ
ローしたことを示すフラグです。カウンタオーバフロー割込み要求が許可されてい
るとき (bit10:OVIE=1) に本ビットがセットされると , カウンタオーバフロー割込
み要求が発生します。
セット要因
カウンタオーバフローが発生するとセット
("FFFFH" から "0000H" へ )
クリア要因
"0" 書込みによりクリア
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能です。"1" を書
き込んでもビット値は変化しません。
• リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか
わらず "1" です。
201
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
[bit10] OVIE:カウンタオーバフロー割込み要求許可ビット
カウンタオーバフロー割込み要求を以下のように制御します。
0
オーバフロー割込み要求出力禁止
(OVIR がセットされても割込みは発生せず )[ 初期値 ]
1
オーバフロー割込み要求出力許可
(OVIR がセットされると割込みが発生する )
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit9] ERR:エラーフラグ
パルス幅測定モードの連続測定モード時において , PWCR 内の測定結果を読み出さ
ないうちに次の測定が終了してしまったことを示すフラグです。この際 , PWCR の
値は新しい測定結果に更新され , 1 つ前の測定結果は消失します。測定は , 本ビット
値に関係なく続行されます。
セット要因
読み出していない測定結果が次の結果により消失するとセット
クリア要因
PWCR( 測定結果 ) を読み出すことによりクリア
• リセット時:"0" に初期化されます。
• 読出しのみ可能です。書込みしてもビット値は変化しません。
[bit8] (Reserved bit)
本ビットは予約ビットです。読出し値は不定です。必ず "0" を書き込んでください。
[bit7, bit6] CKS1, CKS0:クロック選択ビット
内部カウントを以下のように選択します。
CKS1
CKS0
0
0
マシンクロックの 4 分周クロック
0
1
マシンクロックの 16 分周クロック
1
0
マシンクロックの 32 分周クロック
1
1
設定禁止
カウントクロック選択
[ 初期値 ]
• リセット時:"00B" に初期化されます。
• 読出しおよび書込みが可能です。ただし , "11B" を設定してはいけません。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
[bit5, bit4] (Reserved bit)
本ビットは予約ビットです。これらのビットに書込みを行う場合は , "00B" にしてく
ださい。
202
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
[bit3] SC:測定モード ( 単発 / 連続 ) 選択ビット
測定モードを以下のように選択します。
SC
測定モード選択
パルス幅測定モード時
0
単発測定モード [ 初期値 ]
1 回測定後停止
1
連続測定モード
連続測定:バッファレジスタ有効
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
( 注意事項 ) 起動後の書換えは禁止します。必ず起動前か停止後に書き込んでくだ
さい。
[bit2 ∼ bit0] MOD2 ∼ MOD0:動作モード / 測定エッジ選択ビット
動作モードおよび幅測定を行うエッジを以下のように選択します。
MOD2
MOD1
MOD0
0
0
0
全エッジ間パルス幅測定モード ( ↑ or ↓∼↓ or ↑ ) [ 初期値 ]
0
0
1
分周周期測定モード ( 入力分周器有効 )
0
1
0
立上りエッジ間周期測定モード ( ↑∼↑ )
0
1
1
"H" パルス幅測定モード ( ↑∼↓ )
1
0
0
"L" パルス幅測定モード ( ↓∼↑ )
1
0
1
立下りエッジ間周期測定モード ( ↓∼↓ )
1
1
0
1
1
1
動作モード / 測定エッジ選択
設定禁止
• リセット時:"000B" に初期化されます。
• 読出しおよび書込みが可能です。
( 注意事項 ) 起動後の書換えを禁止します。必ず起動前か停止後に書き込んでくだ
さい。
203
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ PWCR レジスタ (PWC データバッファレジスタ )
図 10.2-2 PWC データバッファレジスタ (PWCR) のビット構成
PWCR0( 上位 )
bit
15
14
13
12
11
10
9
8
リード / ライト
初期値
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
7
6
5
4
3
2
1
0
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
アドレス:
ch.0: 000132H
PWCR0( 下位 )
アドレス:
ch.0: 000133H
bit
リード / ライト
初期値
● パルス幅測定モード
連続測定モード時 (PWCSR bit3:SC = 1) は , 前回の測定結果を保持するバッファレ
ジスタとなります。この場合は読出しのみ可能で , 書込みしてもレジスタ値は変化
しません。
単発測定モード時 (PWCSR bit3:SC = 0) は , アップカウンタを直接アクセスできま
す。この場合も , 読出しのみ可能で , 書込みしてもレジスタ値は変化しません。読
出しは随時可能で , カウント中のカウント値が得られます。測定終了後は測定結果
を保持します。
<注意事項>
本レジスタのアクセスは , 必ずハーフワードもしくはワード転送命令で行ってください。
• リセット時:"0000H" に初期化されます。
• 読出しのみ可能
204
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ PDIVR ( 分周比制御レジスタ )
図 10.2-3 分周比制御レジスタ (PDIVR) のビット構成
PDIVR0
アドレス:
ch.0: 000139H
7
6
5
4
3
2
1
0
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
−
−
(−)
DIV2
R/W
(0)
DIV1
R/W
(0)
DIV0
R/W
(0)
bit
リード / ライト→
初期値→
分周周期測定モード (PWCSR bit2 ∼ bit0:MOD2 ∼ MOD0 = 001B ) のときに使用する
レジスタで , ほかのモードでは意味を持ちません。
分周周期測定モード時には , 測定端子に入力されたパルスを PDIVR に設定された分周
比により分周し , 分周後の 1 周期幅を測定します。分周比は以下のように選択します。
DIV2
DIV1
DIV0
0
0
0
21=2 分周
0
0
1
22=4 分周
0
1
0
23=8 分周
0
1
1
24=16 分周
1
0
0
25=32 分周
1
0
1
26=64 分周
1
1
0
27=128 分周
1
1
1
28=256 分周
分周比選択
[ 初期値 ]
• リセット時:"000B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
起動後の書換えを禁止します。必ず起動前か停止後に書き込んでください。
205
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
PWC の動作説明
10.3
測定入力端子と 8 ビット入力分周などを組み込んでいます。PWC は , パルス幅測定
機能があり , 3 種類のカウントクロックを選択可能です。以下に , パルス幅測定機能
における基本機能 / 動作について示します。
■ パルス幅測定機能
入力パルスの任意イベント間の時間・周期をカウンタで測定できます。
起動後 , 設定した測定開始エッジが入力されるまでカウントは行われません。開始エッ
ジを検出するカウンタを "0000H" にクリア後 , カウントアップを開始し , 停止エッジを
検出するとカウントを停止します。この間のカウント値がパルス幅としてレジスタに
保存されます。
測定終了時およびオーバフロー発生時に割込み要求を発生できます。
測定終了後は測定モードに応じて以下のように動作します。
• 単発測定モード時 : 動作を停止します。
• 連続測定モード時 : カウンタ値をバッファレジスタに転送後 , 再度測定開始エッジ
が入力されるまでカウントを停止します。
図 10.3-1 パルス幅測定動作(単発測定モード / "H" 幅測定)
(実線はカウント値)
PWC入力
被測定パルス
カウント値
FFFFH
カウントクリア
0000H
測定開始
カウントスタート
カウントストップ
時間
EDIRフラグセット(測定終了)
図 10.3-2 パルス幅測定動作(連続測定モード / "H" 幅測定)
(実線はカウント値)
PWC入力
被測定パルス
カウント値
FFFFH
オーバフロー
PWCRへ
データ転送
PWCRへ
データ転送
0000H
カウントクリア
測定開始
カウントクリア
カウントスタート カウントストップ
カウントスタート
OVIRフラグセット
カウントストップ
時間
EDIRフラグセット(測定終了)
206
EDIRフラグセット間
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ カウントクロックの選択
カウンタのカウントクロックは , PWCSR レジスタの bit7, bit6:CKS1, CKS0 ビットの
設定によって , 内部クロックソースより 3 種類を選択できます。
選択できるカウントクロックは以下のとおりです。
PWCSR
選択される内部カウントクロック
CKS1, CKS0
00B
マシンクロックの 4 分周
01B
マシンクロックの 16 分周
10B
マシンクロックの 32 分周
[ 初期値 ]
リセット後の初期値では , マシンクロックの 4 分周クロックが選択されています。
<注意事項>
カウントクロックの選択は , 必ずカウンタ起動前に行ってください。
207
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ 動作モードの選択
各動作モード / 測定モードの選択は , PWCSR の設定により行います。
• 動作モードの設定 : PWCSR bit2 ∼ bit0:MOD2, MOD1, MOD0
( パルス幅測定モードの選択 , 測定エッジの決定など )
• 測定モードの設定 : PWCSR bit3:SC
( 単発測定 / 連続測定の選択 )
モード設定ビットの組合せによる動作モードの選択の一覧を以下に示します。
SC
動作モード
↑または↓∼↑または↓
全エッジ間測定
分周周期測定
(1 ∼ 256 分周 )
↑∼↑ 立上り間周期測定
パルス幅測定
↑∼↓ "H" パルス幅測定
↓∼↑ "L" パルス幅測定
↓∼↓ 立下り間周期測定
設定禁止
MOD2 MOD1 MOD0
単発測定:バッファ無効
0
0
0
0
連続測定:バッファ有効
1
0
0
0
単発測定:バッファ無効
0
0
0
1
連続測定:バッファ有効
1
0
0
1
単発測定:バッファ無効
0
0
1
0
連続測定:バッファ有効
1
0
1
0
単発測定:バッファ無効
0
0
1
1
連続測定:バッファ有効
1
0
1
1
単発測定:バッファ無効
0
1
0
0
連続測定:バッファ有効
1
1
0
0
単発測定:バッファ無効
0
1
0
1
連続測定:バッファ有効
1
1
0
1
0
1
1
0
1
1
1
0
0
1
1
1
1
1
1
1
リセット後の初期値では , 全エッジ間測定−単発測定モードが選択されています。
<注意事項>
起動モードの選択は , 必ずカウンタ起動前に行ってください。
208
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ パルス幅測定の起動と停止
各動作の起動 / 再起動 / 強制停止は , PWCSR の bit15, bit14:STRT, STOP ビットにより
行います。
パルス幅測定の起動 / 再起動は STRT ビット , 強制停止は STOP ビットと機能が分かれ
ており , それぞれ "0" を書き込むことにより機能しますが , このとき , 両ビットに書き
込む値が排他でないと機能しません。ビット操作命令以外の命令にて ( バイト単位以
上にて ) 書き込む際は , 必ず以下に示す組合せを書き込んでください。
機能
STRT
STOP
パルス幅測定の起動 / 再起動
0
1
パルス幅測定の強制停止
1
0
ビット操作命令 ( ビットクリア命令 ) を用いる場合 , ハードウェアにより自動的に上記
の組合せにて書き込まれるため , 特に意識する必要がありません。
● 起動後の動作
パルス幅測定モードの起動後は , 測定開始エッジが入力されるまでカウントは行われ
ません。測定開始エッジ検出後 , 16 ビットアップカウンタを "0000H" にクリアし , カウ
ントを開始します。
● 再起動について
パルス幅測定起動後 , 動作中に起動する (STRT ビットに "0" を書き込む ) ことを再起動
とよびます。再起動すると , 以下のような動作が行われます。
• 測定開始エッジ待ち状態の場合:動作に影響はありません。
• 測定中の場合
:カウントを停止し , 再度測定開始エッジ待ち状態
となります。この際測定終了エッジ検出と再起動
が同時になると , 測定終了フラグ(EDIR) がセット
され , 連続測定モード時の場合は測定結果が
PWCR に転送されます。
● 停止について
単発測定モードでは , カウンタのオーバフローまたは測定終了により , 自動的にカウン
ト動作を停止しますので , 特に意識する必要はありません。それ以外のモードや自動停
止する前に停止させたい場合は , 強制停止させる必要があります。
209
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
● 動作状態の確認
前述 STRT, STOP ビットは読出し時には動作状態表示ビットとして機能します。表示
される値は以下の内容を示します。
STRT
STOP
0
0
カウンタ停止中 ( 測定開始エッジ待ち状態を除く )
起動されていないか , または測定が終了したことを示します。
1
1
カウント動作中または測定開始エッジ待ち状態を示します。
動作状態
<注意事項>
STRT, STOP のどちらのビットを読み出しても同じ値となります。ただし , リードモディ
ファイライト (RMW) 系命令 ( ビット処理命令など ) にて本ビットを読み出すと常に "11B"
になるため , これらの命令を使用して読み出さないでください。
■ カウンタのクリア
16 ビットアップカウンタは , 以下に示す場合に "0000H" にクリアされます。
• リセット時
• パルス幅測定モードにて , 測定開始エッジを検出しカウントを開始する場合
210
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ パルス幅測定動作詳細
● 単発測定と連続測定
パルス幅測定には , 1 回のみの測定を行うモードと連続して測定を行うモードがありま
す。各モードは PWCSR の SC ビットによって選択します (「■ 動作モードの選択」を
参照 )。両モードにおける相違点は以下のとおりです。
• 単発測定モード: 1 回目の測定終了エッジが入力されるとカウンタのカウントは停
止し , PWCSR 中の測定終了フラグ (EDIR) がセットされ , 以降の
測定は行われません。ただし , 同時に再起動がかかった場合は測
定開始待ち状態となります。
• 連続測定モード: 測定終了エッジが入力されるとカウンタのカウントは停止し ,
PWCSR 中の測定終了フラグ(EDIR)がセットされ, 再度測定開始
エッジが入力されるまでカウントを停止します。再度 , 測定開始
エッジが入力されるとカウンタを "0000H" にクリアした後 , 測定
を開始します。測定終了時 , カウンタの測定結果は PWCR に転
送されます。
<注意事項>
測定モードの選択 / 変更は , 必ずカウンタ停止中に行ってください。
● 測定結果データ
単発測定モードと連続測定モードでは , 測定結果とカウンタ値の扱い , PWCR の機能に
違いがあります。両モードにおける測定結果の相違点は以下のとおりです。
• 単発測定モード: PWCRを動作中に読み出すと測定中のカウント値が得られます。
PWCRを測定終了後に読み出すと測定結果データが得られます。
• 連続測定モード: 測定終了時 , カウンタ内の測定結果は PWCR に転送されます。
PWCRを読み出すと直前の測定結果が得られ, 測定動作中も前回
の測定結果を保持しています。測定中のカウント値は読み出せ
ません。
連続測定モードにて測定結果を読み出さないうちに次の測定が終了してしまった場合,
前回の測定結果は新しい測定結果に消されてしまいます。この際 , PWCSR 中のエラー
フラグ (ERR) がセットされます。エラーフラグ (ERR) は , PWCR を読み出すと自動的
にクリアされます。
211
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
● 測定モードとカウント動作
入力されたパルスのどこを測定するかによって, 測定モードを5種類のうちから選択す
ることができます。さらに , 高い周波数のパルスの幅を精度よく測定できるように , 入
力されたパルスを任意分周して周期を測定するモードも用意されています。以下に , そ
れらについて説明します。
測定モード
MOD2
MOD1
MOD0
測定内容 (W:測定するパルス幅 )
W
全エッジ間パルス
幅測定
↑カウント
スタート
0
0
0
0
0
1
↓カウント
スタート
(4 周分の例 )
↑カウント
スタート
0
1
W
↑カウントストップ
↑スタート
W
↓
ストップ
分周比設定レジスタ PDIVR で選択した分周比だ
け入力パルスを分周してその周期を測定します。
カウント ( 測定 ) 開始:起動直後の 立上りエッジ
検出時
カウント ( 測定 ) 終了:分周後の 1 周期終了時
W
立上りエッジ間
周期測定
W
W
↑カウントストップ
↑スタート
↑ストップ
↑スタート
0
0
1
1
↑カウント
スタート
W
↓カウント
ストップ
↑
スタート
↓
ストップ
"H" 期間の幅を測定します。
カウント ( 測定 ) 開始:立上りエッジ検出時
カウント ( 測定 ) 終了:立下りエッジ検出時
W
W
↓カウント
スタート
"L" パルス幅測定
1
0
0
212
↓カウント
スタート
1
0
1
↑カウント
ストップ
↓
スタート
↑
ストップ
"L" 期間の幅を測定します。
カウント ( 測定 ) 開始:立下りエッジ検出時
カウント ( 測定 ) 終了:立上りエッジ検出時
W
立下りエッジ間
周期測定
↑
ストップ
立上りエッジ間の周期を測定します。
カウント ( 測定 ) 開始:立上りエッジ検出時
カウント ( 測定 ) 終了:立上りエッジ検出時
W
"H" パルス幅測定
↓
ストップ
連続して入力されるエッジ間の幅を測定します。
カウント ( 測定 ) 開始:エッジ検出時
カウント ( 測定 ) 終了:エッジ検出時
W
分周周期測定
W
W
↓カウントストップ
↓スタート
↑ストップ
↑スタート
W
W
↓カウントストップ
↓スタート
↓ストップ
↓スタート
↓
ストップ
立下りエッジ間の周期を測定します。
カウント ( 測定 ) 開始:立下りエッジ検出時
カウント ( 測定 ) 終了:立下りエッジ検出時
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
どのモードでも , 測定起動後 , 測定開始エッジが入力されるまではカウンタはカウント
動作を行いません。測定開始エッジが入力されると , カウンタは "0000H" にクリアされ
た後 , 測定終了エッジが入力されるまでの間 , カウントクロックごとにアップカウント
を続けます。
測定終了エッジが入力されると , 以下の動作が行われます。
• PWCSR 中の測定終了フラグ (EDIR) がセットされます。
• カウンタのカウント動作が停止します ( 再起動と同時であった場合を除く )。
• 連続測定モード時:カウンタの値 (= 測定結果 ) が PWCR に転送され , 次の測定開始
エッジが入力されるまでカウントを停止して待ちます。
• 単発測定モード時:測定を終了します ( 再起動と同時であった場合を除く )。
連続測定モードの場合で , 全エッジ間パルス幅測定や周期測定などを行った場合 , 終了
エッジが次の測定開始エッジとなります。
● 最小入力パルス幅について
パルス幅測定入力端子 (PWC0) に入力できるパルスには以下の制限があります。
最小入力幅:マシンサイクル× 4 以上
(16MHz のマシンクロックの場合は , 0.25μs 以上とする )
上記パルスより小さい幅のパルスを入力した場合の動作は保証できません。
● パルス幅 / 周期算出方法
測定終了後 , PWCR に得られた測定結果データから , 被測定パルス幅 / 周期算出方法は
以下のように求められます。
TW : 被測定パルス幅 / 周期 [μs]
TW = n × t ÷ DIV [μs]
n : PWCR 内の測定結果データ
t
: カウントクロックの周期 [μs]
DIV : 分周比レジスタ PDIVR で選択した分周比
( 分周周期測定モード以外は "1" を代入 )
213
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
● パルス幅 / 周期測定レンジ
カウントクロックおよび入力分周器の分周比の選択の組合せにより , 測定可能なパル
ス幅 / 周期のレンジが変化します。
一例として , マシンクロック ( 以下 φ とする )=16MHz 時の測定レンジの一覧表を以下
に示します。
分周比
DIV2, DIV1, DIV0
CKS1, CKS0=
00B(φ /4) 時
CKS1, CKS0=
01B(φ /16) 時
CKS1, CKS0=
10B(φ /32) 時
分周
なし
−
0.25μs ∼ 16.4ms
[250ns]
0.25μs ∼ 65.5ms
[1.0μs]
0.25μs ∼ 131ms
[2.0μs]
2 分周
000B
0.25μs ∼ 8.19ms
[125ns]
0.25μs ∼ 32.8ms
[0.5μs]
0.25μs ∼ 65.5ms
[1.0μs]
4 分周
001B
0.25μs ∼ 4.10ms
[62.5ns]
0.25μs ∼ 16.4ms
[250ns]
0.25μs ∼ 32.8ms
[0.5μs]
8 分周
010B
0.25μs ∼ 2.05ms
[31.25ns]
0.25μs ∼ 8.19ms
[125ns]
0.25μs ∼ 16.4ms
[250ns]
16 分周
011B
0.25μs ∼ 1.02ms
[15.6ns]
0.25μs ∼ 4.10ms
[62.5ns]
0.25μs ∼ 8.19ms
[125ns]
64 分周
100B
0.25μs ∼ 256μs
[3.91ns]
0.25μs ∼ 1.024ms
[15.6ns]
0.25μs ∼ 2.05ms
[31.25ns]
256 分周
101B
0.25μs ∼ 64.0μs
[0.98ns]
0.25μs ∼ 256μs
[3.91ns]
0.25μs ∼ 512μs
[7.81ns]
−
その他
設定禁止
マシンクロック φ = 16MHz 時
[ ] 内は 1 ビットあたりの分解能を示します。
● 割込み要求発生
パルス幅測定モードにおいては , 以下の 2 つの割込み要求を発生することが可能です。
• カウンタのオーバフローによる割込み要求
測定中 , カウントアップによりオーバフローが発生するとオーバフローフラグが
セットされ , オーバフロー割込み要求が許可されていると割込み要求が発生しま
す。
• 測定終了による割込み要求
測定終了エッジを検出すると , PWCSR 中の測定終了フラグ (EDIR) がセットされ ,
測定終了割込み要求が許可されていると割込み要求が発生します。
測定終了フラグ (EDIR) は , 測定結果 PWCR を読み出すと自動的にクリアされます。
214
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
● パルス幅測定動作フロー
各種設定
再起動
連続測定モード
測定開始エッジ検出
カウントクロック選択
動作/測定モード選択
割込みフラグクリア
割込み許可
測定入力端子選択
STRTビットにより起動
単発測定モード
測定開始エッジ検出
カウンタをクリア
カウンタをクリア
カウント開始
カウント開始
アップカウント
アップカウント
オーバフローの発生
→ OVIRフラグセット
オーバフローの発生
→ OVIRフラグセット
測定終了エッジ検出
→ EDIRフラグセット
測定終了エッジ検出
→ EDIRフラグセット
カウント停止
カウント停止
カウント値をPWCRに転送
動作停止
215
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
■ 注意事項
● レジスタ書換えに関する注意事項
PWCSR レジスタの以下に示すビットは動作中に書き換えることを禁止します。書換え
は必ず起動前か停止後に行ってください。
[bit7, bit6] CKS1, CKS0
:クロック選択ビット
[bit3] SC
:測定モード ( 単発 / 連続 ) 選択ビット
[bit2 ∼ bit0] MOD2 ∼ MOD0
:動作モード / 測定エッジ選択ビット
PDIVR レジスタは動作中に書き換えることを禁止します。書換えは必ず起動前か停止
後に行ってください。
● PWCSR レジスタの STRT, STOP ビットについて
両ビットともに , 書込み時と読出し時では , 意味が異なるので注意してください
(「■ PWC コントロール / ステータスレジスタ (PWCSR) 」を参照 )。
また , リードモディファイライト (RMW) 系命令における読出し値は , ビット値にかか
わらず , "11B" です。このため , 動作状態の読出しには , ビット処理命令は使用できま
せん ( 読むと必ず動作中となります ) ので注意してください。
カウンタの起動 / 停止のための STRT, STOP ビットへの書込みは , それぞれのビットに
対するビット処理命令 ( ビットクリア命令など ) を用いることが可能です。
● カウンタのクリアについて
パルス幅測定モードの場合 , 測定開始エッジでカウンタがクリアされますので , 起動前
にカウンタ中にあったデータは無効になります。
● 最小入力パルス幅について
パルス幅測定入力端子に入力できるパルスには , 以下の制限があります。
• 最小入力幅
:マシンサイクル× 4 ( マシンサイクルが 62.5ns 時 , ≧ 250ns)
• 最大入力周波数:マシンクロックの 4 分周 ( マシンサイクルが 16MHz 時 , ≦ 4MHz)
上記パルスより小さい幅 , 高い周波数のパルスを入力した場合の動作は保証できませ
ん。入力信号にそのようなノイズがのる可能性がある場合は , チップ外部でフィルタな
どを通して除去してから入力してください。
● 分周周期測定モードについて
パルス幅測定モードのうちの分周周期測定モードでは , 入力パルスを分周するため , 測
定結果より算出して得られるパルス幅は平均値となりますので注意してください。
● クロック選択ビットについて
PWCSR レジスタの [bit7, bit6]CKS1, CKS0:クロック選択ビットにおいて "11B" は設定
禁止です。
● 予約ビットについて
PWCSR レジスタの bit8, bit5, bit4 は予約ビットになっています。このビットに書込み
を行う場合は "0" にしてください。
216
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
● 動作中の再起動について
カウント動作を開始した後に再起動を行う場合は , そのタイミングによっては以下に
示すようなことが起こり得ます。
• パルス幅単発測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされます。
• パルス幅連続測定モード時 , 測定終了エッジと同時であった場合
再起動を行い , 測定開始エッジ待ち状態となりますが , 測定終了フラグ (EDIR) は
セットされ , その時点での測定結果は PWCR に転送されます。
以上のように , 動作中の再起動時には , フラグの動作に注意して割込み制御などを行う
ようにしてください。
217
第 10 章 PWC (Pulse Width Count:パルス幅測定 )
218
第 11 章
メイン発振安定待ちタイマ
メイン発振安定待ちタイマの概要 , レジスタの構
成 , 機能および動作について説明します。
11.1
メイン発振安定待ちタイマの概要
11.2
メイン発振安定待ちタイマのブロックダイヤグラム
11.3
メイン発振安定待ちタイマのレジスタ
11.4
メイン発振待ち割込みの動作
219
第 11 章 メイン発振安定待ちタイマ
11.1
メイン発振安定待ちタイマの概要
メイン発振安定待ちタイマは , メインクロックに同期してカウントアップする 23
ビットのカウンタで , 一定の時間間隔で繰り返し割込みを発生するインターバルタ
イマ機能があります。
■ メイン発振安定待ちタイマの概要
本タイマは , サブクロックで動作中に OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 に
よってメイン発振を一度止めて再度発振させた場合に , 発振安定待ち時間を確保する
ためにメインクロックを使用します。
インターバル時間は次の 3 種類の中から選択できます。
メインクロック周期
φ
( 注意事項 )
φ は内部ベースクロックの周期で ,
メイン発振の 2 倍の周期です。
220
インターバル時間 ( メイン発振 4MHz 時 )
φ × 211 (1.0ms)
φ × 216 (32.7ms)
φ × 214 (8.0ms)
第 11 章 メイン発振安定待ちタイマ
11.2
メイン発振安定待ちタイマのブロックダイヤグラム
メイン発振安定待ちタイマのブロックダイヤグラムを示します。
■ メイン発振安定待ちタイマのブロックダイヤグラム
図 11.2-1 メイン発振安定待ちタイマのブロックダイヤグラム
メイン発振安定待ち
タイマ用カウンタ
6
10
13
15
21 22 23 24 25 26 27
211
214
216
0
1
2
3
4
5
22
インターバル
タイマセレクタ
リセット
(INIT)
カウンタクリア回路
メイン発振安定待ち
タイマ割込み
メイン発振安定待ちタイマ
制御レジスタ(OSCR)
WIF
WIE
WEN
-
-
WS1
WS0
WCL
: 内部ベースクロックの周期
メイン発振安定待ちタイマ
メインクロック原発振をカウントクロックとする 23 ビットのアップカウンタです。
カウンタクリア回路
OSCR レジスタによる設定 (WCL=0) 以外に , リセット (INIT) 時にカウンタをクリア
します。
インターバルタイマセレクタ
メイン発振安定待ちタイマ用カウンタの 3 種類の分周出力からインターバルタイマ
用の 1 種類を選択する回路で , 選択した分周出力の立下りエッジが割込み要因にな
ります。
メイン発振安定待ちレジスタ (OSCR)
インターバル時間の選択 , カウンタのクリア , 割込み制御および状態の確認などを
行います。
221
第 11 章 メイン発振安定待ちタイマ
11.3
メイン発振安定待ちタイマのレジスタ
メイン発振安定待ちタイマのレジスタの詳細を説明します。
■ メイン発振安定待ちタイマレジスタ (OSCR)
図 11.3-1 メイン発振安定待ちタイマ制御レジスタ
OSCR
bit
15
14
WIF
WIE
アドレス:
00000490H
R/W
R/W
R/W: リード / ライト可能
W : ライトオンリ
13
WEN
R/W
12
11
−
−
10
WS1
R/W
9
WS0
R/W
8
WCL
W
初期値
INIT 時 RST 時 アクセス
00H
xxH
R/W
[bit15] WIF (timer Interrupt Flag)
メイン発振安定待ち割込み要求フラグです。
選択されたインターバルタイマ用分周出力の立下りエッジによって "1" にセットさ
れます。
このビットと割込み要求許可ビットが "1" のとき , メイン発振安定割込み要求を出
力します。
0
メイン発振安定割込みの要求なし ( 初期値 )
1
メイン発振安定割込みの要求あり
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。ただし , 書込みは "0" のみ可能で , "1" を書込み
してもビット値は変化しません。
また , リードモディファイライト (RMW) 系命令での読出し値では常に "1" とな
ります。
[bit14] WIE (timer Interrupt Enable)
CPU への割込み要求出力の許可 / 禁止を行うビットです。このビットとメイン発振
安定割込み要求フラグビットが "1" のとき , メイン発振安定割込み要求を出力しま
す。
0
メイン発振安定割込み要求出力禁止 ( 初期値 )
1
メイン発振安定割込み要求出力許可
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。
222
第 11 章 メイン発振安定待ちタイマ
[bit13] WEN (timer enable)
タイマ動作許可ビットです。
本ビットが "1" のときタイマはカウント動作を行います。
0
タイマ動作停止 ( 初期値 )
1
タイマ動作
• リセット (INIT) で "0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit12, bit11] (reserved bit)
予約ビットです。書込み時は "0" を書き込んでください ("1" 書込み禁止 )。
読出し値は不定です。
[bit10, bit9] WS1, WS0 (timer interval Select 1, 0)
インターバルタイマの周期を選択します。
メイン発振安定待ちタイマ用カウンタの出力ビットの下記 3 種類のうちから選択し
ます。
WS1
WS0
0
0
φ × 21 (1.0μs) ( 初期値 )
0
1
φ × 211 (1.0ms)
1
0
φ × 216 (32.7ms)
1
1
φ × 214 (8.0ms)
インターバルタイマ周期 ( メイン発振 4MHz 時 )
(φ は内部ベースクロックの周期で , メイン発振の 2 倍の周期です。)
• リセット (INIT) で "00B" に初期化されます。
• このタイマを使用する場合 , WS1, WS0 ビットに適切な値を書込んで使用してく
ださい。
• 読出しおよび書込みが可能です。
[bit8] WCL (timer CLear)
• "0" 書込みでメイン発振安定待ちタイマを "0" にクリアします。
• 書込みは "0" のみ可能で , "1" を書込みしても動作に影響を与えません。
• 読出し値は常に "1" となります。
223
第 11 章 メイン発振安定待ちタイマ
11.4
メイン発振待ち割込みの動作
メイン発振待ち割込みの動作について説明します。
■ メイン発振安定待ち割込みの動作
メイン発振安定待ちタイマ用カウンタは , メインクロックでカウント動作し , 設定した
インターバル時間が経過すると , メイン発振安定待ち割込み要求フラグ (WIF) を "1" に
セットします。そのとき , 割込み要求許可ビットを許可 (WIE=1) していると CPU へ割
込み要求が発生します。ただし , メインクロックが発振停止しているとき (「■ イン
ターバルタイマ機能の動作」を参照 ) ではカウント動作も停止しますので , メイン発振
安定待ち割込みは発生しません。
割込み処理ルーチンで WIF フラグに "0" を書き込み , 割込み要求をクリアしてくださ
い。なお , WIF ビットは , WIE ビットの値に関係なく , 指定した分周出力が立ち下ると
セットされます。
リセット解除後に割込み要求出力を許可 (WIE=1) する場合および WS[1:0] ビット変更
時は , 必ず WIF ビットと WCL ビットを同時にクリア (WIF=WCL=0) してください。
• WIF ビットが "1" のとき , WIE ビットを禁止から許可 (0 → 1) にすると , 直ちに割込
み要求が発生します。
• カウンタクリア(OSCR:WCL=1)と選択したビットのオーバフローが同時に起こった
場合は , WIF ビットのセットは行われません。
■ インターバルタイマ機能の動作
メイン発振安定待ちタイマ用カウンタはメインクロックにてカウントアップを行いま
すが , 以下の状態ではメインクロック発振が停止するため , カウント動作も停止しま
す。
• WEN ビットが "0" のとき
• ストップモードにおいて , メイン発振が停止する設定 ( スタンバイ制御レジスタ
STCR の bit0 : OSCD1=1) でストップモードに移行すると , ストップモード中 , カウ
ント動作が停止します。本品種では , リセット (INIT) 時 OSCD1=1 に初期化します
ので , ストップモード中もメイン発振安定待ちタイマを動かしたい場合は , スタン
バイ移行前に OSCD2=0 を設定してください。
• サブクロックモードで OSCCR( 発振制御レジスタ ) の bit0 : OSCDS1 に "1" を設定した
ときは , メイン発振が停止しますのでタイマカウント動作も停止します。
カウンタをクリア (WCL=0) すると , "000000H" からカウント動作を行い , "7FFFFFH" に
達すると "000000H" に戻ってカウントを継続します。カウントアップ中に選択された
インターバルタイマ用の分周出力に立下りエッジが発生すると , メイン発振安定待ち
割込み要求ビット (WIF) を "1" にセットします。つまり , クリアされた時間を基準にし
て , 選択されたインターバル時間ごとにメイン発振安定待ちタイマ割込み要求を発生
します。
224
第 11 章 メイン発振安定待ちタイマ
■ クロック供給機能の動作
本品種では , INIT やストップモード後の発振安定待ち時間の確保にタイムベースカウ
ンタが使用されますが , クロックソースとしてサブクロックを選択中にメインクロッ
クの発振安定待ち時間を確保するには , クロックソース選択とは無関係にメインク
ロックで動作する本メイン発振安定待ちタイマを使用します。
サブクロック動作にてメイン発振停止状態からメインクロックの発振安定待ちを確保
するためには , 次の手順で行ってください。
(1) メインクロックの発振安定に必要な時間を WS1, WS0 ビットに設定し , カウンタを
"0" にクリアします (WS1, WS0= 発振安定待ち時間 , WCL=0 書込み )。発振安定待
ち完了後の処理を割込みで行いたい場合は , 割込みフラグの初期化も行います
(WIF=0, WIE=0 書込み )。
(2) メインクロックの発振を開始します (OSCCR bit0: OCSDS1=0 書込み )。
(3) プログラムにて , WIF フラグが "1" になるまで待ちます。
(4) WIF フラグが "1" になったのを確認し , 発振安定待ち完了後の処理を行います。ま
た , 割込みを許可した場合は , WIF=1 時に割込みが発生しますので , 割込みルーチ
ンで発振安定待ち完了後の処理を行ってください。
サブクロックからメインクロックに切り換える場合も , (4) の WIF=1 の確認を待ってか
ら行ってください ( 発振安定を待たずにメインクロックへ切り換えると , デバイス全体
に不安定なクロックが供給され , その後の動作は保証されません )。
■ メイン発振安定待ちタイマ起動時のメインクロック移行時カウンタ状態
メイン発振安定待ちタイマを起動したとき , メインクロックへの移行時のカウンタ状
態を以下に示します。
図 11.4-1 メイン発振安定待ちタイマ起動時のメインクロック移行時カウンタ状態
7FFFFF H
カウンタ値
メインクロック
発振安定待ち時間
・タイマクリア(WCL=1) :0以外のとき
・インターバル時間設定(WS1, WS0=11B)
・メイン発振開始(OSCCR:OSCDS1=0)
割込みルーチンで
クリア
WIF(割込み要求)
WIE(割込みマスク)
クロックモード
サブクロック
メインクロック
サブ→メインクロック変更
225
第 11 章 メイン発振安定待ちタイマ
■ メイン発振安定待ちタイマ使用時の注意事項
• 発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安値となります。
• メインクロックが発振停止中はカウンタも停止しますので , メイン発振安定割込み
も発生しません。メイン発振安定割込みを使った処理を行う場合は , メイン発振を
停止しないでください。
• WIF フラグセット要求と CPU からの "0" クリアタイミングが重なった場合は , フラ
グセットが優先し , "0" クリアは無効となります。
■ メインクロック ↔ サブクロック切換え例
メインクロック ↔ サブクロック切換え例を下記に示します。
図 11.4-2 メインクロック ↔ サブクロックの切換え例
メインラン
サブラン
4MHz発振起動
RTC 32kHzの起動
PLL ON
RTC割込み
終了
NO
メイン発振安定待ち
タイマ起動
YES
メインクロック切換え
2分周→PLL
メイン発振安定 ON
INT
PLL OFF
YES
ソースクロックの切換え
4MHz→32kHz
ソースクロックの切換え
32kHz →4MHz
メインクロック切換え
2分周→PLL
4MHzの発振停止
サブラン
226
メインラン
NO
第 12 章
16 ビットフリーランタイマ
16 ビットフリーランタイマの概要 , レジスタの構
成 / 機能および 16 ビットフリーランタイマの動作
について説明します。
12.1
16 ビットフリーランタイマの概要
12.2
16 ビットフリーランタイマのレジスタ
12.3
16 ビットフリーランタイマの動作
227
第 12 章 16 ビットフリーランタイマ
12.1
16 ビットフリーランタイマの概要
16 ビットフリーランタイマの概要とブロックダイヤグラムを示します。
■ 16 ビットフリーランタイマの特長
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロール・ステータス
レジスタより構成されています。本タイマのカウント値はアウトプットコンペア , イン
プットキャプチャの基本時間 ( ベースタイマ ) として使用されます。
MB91245/S シリーズは , 16 ビットフリーランタイマを 2 つ搭載しており , 16 ビットフ
リーランタイマ 0 がアウトプットコンペア 0, 1 およびインプットキャプチャ 0, 1 とし
て利用されます。また , 16 ビットフリーランタイマ 1 がインプットキャプチャ 2, 3 の
ベースタイマとして利用されます。
• カウントクロックは 4 種類から選択可能です。
• カウンタオーバフローにより割込みを発生することができます。
• モード設定により , アウトプットコンペアのコンペアレジスタ 0 (OCCP0) の値との
一致による 16 ビットフリーランタイマ 0 のカウンタの初期化が可能です。
■ 16 ビットフリーランタイマのレジスタ一覧
図 12.1-1 16 ビットフリーランタイマのレジスタ一覧
TCDT0,TCDT1( 上位バイト )
bit
アドレス:
ch.0 0000D4H
ch.1 0000D8H
15
14
13
12
11
10
9
8
T15
T14
T13
T12
T11
T10
T9
T8
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
7
6
5
4
3
2
1
0
T7
T6
T5
T4
T3
T2
T1
T0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
4
3
リード / ライト (R/W)
(0)
初期値
TCDT0,TCDT1( 下位バイト )
bit
アドレス:
ch.0 0000D5H
ch.1 0000D9H
リード / ライト (R/W)
(0)
初期値
TCCS0, TCCS1
bit
アドレス:
ch.0 0000D7H
ch.1 0000DBH
7
6
5
ECLK
IVF
IVFE
STOP MODE
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
リード / ライト (R/W)
(0)
初期値
228
(R/W)
(0)
2
1
0
CLR
CLK1
CLK0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
第 12 章 16 ビットフリーランタイマ
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 12.1-2 16 ビットフリーランタイマのブロックダイヤグラム
割込み
IVF
IVFE
STOP
MODE CLR
CLK1 CLK0
R-bus
ECLK
分周期
φ
CK0
クロック選択
CK1
16ビットフリーランタイマ
タイマデータレジスタ(TCDT) クロック
内部回路へ(T15~T00)
コンパレータ0
(フリーランタイマ0の場合)
229
第 12 章 16 ビットフリーランタイマ
12.2
16 ビットフリーランタイマのレジスタ
16 ビットフリーランタイマで使用するレジスタの構成と機能について説明します。
■ タイマデータレジスタ (TCDT)
図 12.2-1 タイマデータレジスタ (TCDT) のビット構成
TCDT0, TCDT1( 上位バイト ) bit
15
14
13
12
11
10
9
8
アドレス:
ch.0 0000D4H
ch.1 0000D8H
T15
T14
T13
T12
T11
T10
T9
T8
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
リード / ライト (R/W)
(0)
初期値
TCDT0, TCDT1( 下位バイト ) bit
7
6
5
4
3
2
1
0
アドレス:
ch.0 0000D5H
ch.1 0000D9H
T7
T6
T5
T4
T3
T2
T1
T0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
リード / ライト (R/W)
(0)
初期値
16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ
ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ
イマ値を設定できます。
書込みは必ず停止状態 (STOP =1) で行ってください。アクセスはワード単位で行って
ください。
タイマの初期化は次の要因で行われます。
• リセットによる初期化
• コントロール・ステータスレジスタのクリア (CLR) による初期化
• アウトプットコンペアのコンペアレジスタ 0(OCCP0) 値とタイマカウンタ値の一致
による 16 ビットフリーランタイマ 0 のカウンタの初期化 ( モード設定が必要です )
230
第 12 章 16 ビットフリーランタイマ
■ タイマコントロールレジスタ (TCCS)
図 12.2-2 タイマコントロールレジスタ (TCCS) のビット構成
TCCS0, TCCS1
bit
アドレス:
ch.0 0000D7H
ch.1 0000DBH
7
ECLK
リード / ライト (R/W)
(0)
初期値
6
IVF
5
IVFE
4
3
STOP MODE
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
2
CLR
1
CLK1
0
CLK0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
[bit7] ECLK
16 ビットフリーランタイマのカウントクロックソースとして , 内部クロックまたは
外部クロックを選択するビットです。クロックソースの選択は , アウトプットコン
ペア , インプットキャプチャが停止状態で行ってください。
ECLK
クロック選択
0
内部クロックソースを選択 [ 初期値 ]
1
外部端子 (CK0, CK1) を選択
<注意事項>
内部クロックを選択した場合は , TCDT レジスタの bit1, bit0 (CLK1, CLK0) にカウントク
ロックの設定を行ってください。このカウントクロックがベースクロックとなります。ま
た , FRCK よりクロックを入力する場合は , 対応する DDR ビットを "0" に設定してくださ
い。
外部クロックに必要な最低パルス幅は , 2T です (T:周辺系クロックサイクル )。
外部クロックを指定しアウトプットコンペアを使用した場合 , コンペア一致および割込み
は次のクロックサイクルで発生します。そのため , コンペア一致出力 , 割込みを発生させ
るためには , コンペア一致後 , 最低 "1 クロックサイクル " を入力する必要があります。
[bit6] IVF
16 ビットフリーランタイマの割込み要求フラグです。
16 ビットフリーランタイマがオーバフローを起こした場合 , またはモード設定によ
りアウトプットコンペアのコンペアレジスタ 0(OCCP0) とコンペアマッチして 16
ビットフリーランタイマ 0 のカウンタがクリアされた場合に本ビットは "1" にセッ
トされます。
割込み要求許可ビット (IVFE) がセットされていると割込みが発生します。
本ビットは "0" 書込みによりクリアされます。リードモディファイライト (RMW)
系命令では常に "1" が読み出されます。
IVF
割込み要求フラグ
0
割込み要求なし [ 初期値 ]
1
割込み要求あり
231
第 12 章 16 ビットフリーランタイマ
[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) のほかにアウトプットコンペア
のコンペアレジスタ値との一致によりカウンタ値を初期化することができます。こ
のとき 16 ビットフリーランタイマ ch.0 はアウトプットコンペアのコンペアレジス
タ 0(OCCP0) との一致により初期化が行われます。
MODE
232
タイマの初期化条件
0
リセット , クリアビットによる初期化 [ 初期値 ]
1
リセット , クリアビット , コンペアレジスタによる初期化
第 12 章 16 ビットフリーランタイマ
[bit2] CLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
本ビットに "1" を書き込むことにより , タイマ値を "0000H" に初期化します。読出
し値は常に "0" です。CLR は "0" 書込みでリセットされます。
<注意事項>
カウンタ値の初期化は , カウント値の変化点で行われます。本ビットに "1" 書込み後 , カ
ウント値が変化する前に "0" を書き込んだ場合には , タイマ値は初期化されません。
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。タ
イマ停止中の CLR によるタイマクリアを禁止します。
[bit1, bit0] CLK1, CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。
本ビットに書込みの後 , 直ちにカウントクロックは変更されます。本ビットの変更
は , アウトプットコンペア , インプットキャプチャが停止状態で行ってください。
CLK1
CLK0
カウントクロック
fccp=32MHz
fccp=16MHz
0
0
fccp/22
125ns
250ns
0
1
fccp/24
0.5μs
1μs
1
0
fccp/25
1μs
2μs
1
1
fccp/26
2μs
4μs
fccp:周辺系のクロック周波数
233
第 12 章 16 ビットフリーランタイマ
12.3
16 ビットフリーランタイマの動作
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。このカウンタ値が , 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は次の条件でクリアされます。
• オーバフローが発生したとき
• アウトプットコンペアのコンペアレジスタ 0 (OCCP0) 値とコンペアマッチしたとき
( モード設定が必要 )
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• タイマ停止中に TCDT に "0000H" を書き込んだとき
• リセットをかけたとき
割込みは , オーバフローが発生したとき , アウトプットコンペアのコンペアレジスタ
0(OCCP0) 値とコンペアマッチしてカウンタがクリアされたときに発生します ( コンペ
アマッチ割込みはモード設定が必要です )。
図 12.3-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
割込み
234
第 12 章 16 ビットフリーランタイマ
図 12.3-2 コンペアクリアレジスタ値とコンペアマッチしたときのカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
コンペアレジスタ
BFFFH
割込み
■ 16 ビットフリーランタイマのクリアタイミング
カウンタクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行わ
れます。
リセットとソフトウェアでのカウンタクリアは , クリア発生と同時に行われますが , コ
ンペアクリアレジスタ 0 との一致によるカウンタクリアはカウントタイミングに同期
して行われます。
図 12.3-3 16 ビットフリーランタイマのクリアタイミング
コンペアクリアレジスタ値
N
カウンタクリア
カウンタ値
N
0000H
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 外部クロックの立下りエッジ↓をシ
ステムクロックで同期化した後 , 内部カウントクロックの立下りでカウントされます。
図 12.3-4 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
内部クロック入力
カウンタ値
N
N+1
235
第 12 章 16 ビットフリーランタイマ
■ 16 ビットフリーランタイマの注意事項
• 割込み要求フラグセットタイミングとクリアタイミングが重複した場合には , フラ
グセットが優先し , クリア動作は無効となります。
• コントロールレジスタの bit2 ( カウンタ初期ビット : CLR ) は , "1" が書き込まれた
後 , カウンタ値の初期化は , カウント値の変化点で行われます。本ビットに "1" を書
き込んだ後 , カウント値が変化する前に "0" を書き込んだ場合には , タイマ値は初期
化されません。
• カウンタクリア動作は , 内部カウンタが動作中 ( 内部プリスケーラも動作中 ) のみ有
効となります。停止中にカウンタをクリアする場合は , タイマカウントデータレジ
スタに "0000H" を書き込むようにしてください。
236
第 13 章
インプットキャプチャ
インプットキャプチャの概要 , レジスタの構成 , 機
能および動作について説明します。
13.1
インプットキャプチャの概要
13.2
インプットキャプチャのレジスタ
13.3
インプットキャプチャの動作
237
第 13 章 インプットキャプチャ
13.1
インプットキャプチャの概要
インプットキャプチャの特長とブロックダイヤグラムを示します。
■ インプットキャプチャの特長
本モジュールは外部から入力された信号の立上りエッジ , 立下りエッジまたは両エッ
ジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保持する機能を
持っています。また , エッジ検出時に割込みを発生することができます。
インプットキャプチャは , インプットキャプチャデータレジスタ , コントロールレジス
タで構成されています。
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
• 外部入力の有効エッジを 3 種類から選択可能です。
- 立上りエッジ
- 立下りエッジ
- 両エッジ
• 外部入力有効エッジを検出したときに割込みを発生することができます。
238
第 13 章 インプットキャプチャ
■ インプットキャプチャのレジスタ一覧
インプットキャプチャのレジスタ一覧は , 以下のとおりです。
図 13.1-1 インプットキャプチャのレジスタ一覧
IPCP( 上位バイト )
14
13
12
11
10
アドレス:
bit 15
0000ECH(IPCP3)
CP15 CP14 CP13 CP12 CP11 CP10
0000EEH(IPCP2)
0000E4H(IPCP1)
0000E6H(IPCP0)
リード / ライト
初期値
9
8
CP9
CP8
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
7
6
5
4
3
2
1
0
CP7
CP6
CP5
CP4
CP3
CP2
CP1
CP0
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
7
6
5
4
3
2
1
0
IPCP( 下位バイト )
アドレス:
bit
0000EDH(IPCP3)
0000EFH(IPCP2)
0000E5H(IPCP1)
0000E7H(IPCP0)
リード / ライト
初期値
ICS23
アドレス:
bit
0000F3H
ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20
(R/W)
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
リード / ライト
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値
ICS01
アドレス:
bit
7
6
5
4
3
2
1
0
0000EBH
ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
239
第 13 章 インプットキャプチャ
■ インプットキャプチャのブロックダイヤグラム
図 13.1-2 にインプットキャプチャのブロックダイヤグラムを示します。
図 13.1-2 インプットキャプチャのブロックダイヤグラム
16ビット タイマ(ch.0)カウント値
EG11
R-bus
IN0
入力端子
エッジ
検出
キャプチャデータレジスタ
ch.0
EG10
EG11
EG00
16ビット タイマ(ch.0)カウント値
ICP1
IN1
入力端子
エッジ
検出
キャプチャデータレジスタ
ch.1
ICP0
ICE1
ICE0
割込み
割込み
(注意事項)インプットキャプチャ 0, 1 の場合
240
第 13 章 インプットキャプチャ
13.2
インプットキャプチャのレジスタ
インプットキャプチャで使用するレジスタの構成および機能について説明します。
■ インプットキャプチャレジスタ (IPCP)
図 13.2-1 インプットキャプチャレジスタ (IPCP) のビット構成
IPCP( 上位バイト )
14
13
12
11
10
アドレス:
bit 15
0000ECH(IPCP3)
CP15 CP14 CP13 CP12 CP11 CP10
0000EEH(IPCP2)
0000E4H(IPCP1)
0000E6H(IPCP0)
9
8
CP9
CP8
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
7
6
5
4
3
2
1
0
CP7
CP6
CP5
CP4
CP3
CP2
CP1
CP0
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
(R)
(X)
リード / ライト
初期値
IPCP( 下位バイト )
アドレス:
bit
0000EDH(IPCP3)
0000EFH(IPCP2)
0000E5H(IPCP1)
0000E7H(IPCP0)
リード / ライト
初期値
本レジスタは , 対応した外部端子から入力される波形の有効エッジを検出したときに ,
16 ビットフリーランタイマ値を保持するレジスタです。リセット時は不定です。
このレジスタは 16 ビットデータまたは 32 ビットデータでアクセスしてください。書
込みはできません。
241
第 13 章 インプットキャプチャ
■ インプットキャプチャコントロールレジスタ (ICS)
図 13.2-2 インプットキャプチャコントロールレジスタ (ICS) のビット構成
ICS23
アドレス:
7
bit
6
5
4
3
2
1
0
0000F3H
ICP3 ICP2 ICE3 ICE2 EG31 EG30 EG21 EG20
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
ICS01
アドレス:
7
bit
6
5
4
3
2
1
0
0000EBH
ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
[bit7, bit6] ICP3, ICP2 (ICP1, ICP0)
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
本ビットを "1" にセットします。割込み許可ビット (ICE3 ∼ ICE0) がセットされて
いると , 有効エッジを検出することにより割込みを発生することができます。本
ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リー
ドモディファイライト (RMW) 系命令では "1" が読み出されます。
0:有効エッジ検出なし ( 初期値 )
1:有効エッジ検出あり
ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。
[bit5, bit4] ICE3, ICE2 (ICE1, ICE0)
インプットキャプチャ割込み許可ビットです。本ビットが "1" のとき , 割込みフラ
グ(ICP3∼ICP0)が"1"にセットされるとインプットキャプチャ割込みが発生します。
0:割込み禁止 ( 初期値 )
1:割込み許可
ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。
[bit3 ∼ bit0] EG31, EG30, EG21, EG20 (EG11, EG10, EG01, EG00)
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作も兼
用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 ) ( 初期値 )
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出 ↑ & ↓
エッジ検出極性
EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。
242
第 13 章 インプットキャプチャ
13.3
インプットキャプチャの動作
インプットキャプチャの動作について説明します。
■ インプットキャプチャの取込みタイミング
インプットキャプチャは, 設定された有効エッジを検出すると, 16ビットフリーランタ
イマの値をキャプチャレジスタに取り込んで割込みを発生させることができます。
図 13.3-1 インプットキャプチャの取り込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
時間
0000H
リセット
IN0
IN1
IN2
データレジスタ0
不定
3FFFH
不定
データレジスタ1
データレジスタ2
不定
BFFFH
BFFFH
7FFFH
キャプチャ0割込み
キャプチャ1割込み
キャプチャ2割込み
キャプチャ0: 立上りエッジ
キャプチャ1: 立下りエッジ
キャプチャ2: 両エッジ
再度有効エッジにより割込み発生
ソフトウェアにより割込みクリア
■ 16 ビットインプットキャプチャの入力タイミング
図 13.3-2 に 16 ビットインプットキャプチャの入力タイミングの例を示します。
図 13.3-2 16 ビットインプットキャプチャの入力タイミング
φ
カウンタ値
インプットキャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ値
N+1
割込み
243
第 13 章 インプットキャプチャ
244
第 14 章
アウトプットコンペア
アウトプットコンペアの概要 , レジスタの構成 , 機
能および動作について説明します。
14.1
アウトプットコンペアの概要
14.2
アウトプットコンペアのレジスタ
14.3
アウトプットコンペアの動作
245
第 14 章 アウトプットコンペア
14.1
アウトプットコンペアの概要
アウトプットコンペアの特長とブロックダイヤグラムを示します。
■ アウトプットコンペアの特長
アウトプットコンペアモジュールは , ビットコンペアレジスタ , コンペア出力ラッチお
よび制御レジスタで構成されています。
16 ビットフリーランタイマ値がコンペアレジスタ値と一致すると , 出力レベルが反転
し , 割込みが発行されます。
• 2 つのコンペアレジスタは独立に使用できます。
出力端子と割込みフラグはコンペアレジスタに対応しています。
• 出力端子は 2 つのコンペアレジスタの対に基づいて制御できます。
出力端子は 2 つのコンペアレジスタを使用して反転させることができます。
• 出力端子の初期値を設定できます。
• コンペア ( 比較 ) が一致したとき割込みを発生させることができます。
■ アウトプットコンペアのレジスタ一覧
図 14.1-1 アウトプットコンペアのレジスタ一覧
OCCP( 上位バイト )
アドレス:
bit
000108H(OCCP1)
00010AH(OCCP0)
15
14
13
12
11
10
9
8
C15
C14
C13
C12
C11
C10
C9
C8
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
OCCP( 下位バイト )
アドレス:
bit
000109H(OCCP1)
00010BH(OCCP0)
7
6
5
4
3
2
1
0
C7
C6
C5
C4
C3
C2
C1
C0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
OCS01( 上位バイト )
bit
15
14
13
12
11
10
9
8
アドレス:000112H
OTD1 OTD0
−
−
− CMOD −
−
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(1)
(0)
(1)
(1)
(0)
(0)
初期値 (1)
OCS01( 下位バイト )
bit
アドレス:000113H
7
6
5
4
3
2
1
0
ICP1 ICP0 ICE1 ICE0
CST1 CST0
−
−
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
リード / ライト
(0)
(0)
(0)
(0)
(1)
(1)
(0)
(0)
初期値
246
第 14 章 アウトプットコンペア
■ アウトプットコンペアのブロックダイヤグラム
図 14.1-2 に , アウトプットコンペアのブロックダイヤグラムを示します。
図 14.1-2 アウトプットコンペアのブロックダイヤグラム
OTD1
OTD0
コンペアレジスタ
コンペア
出力用ラッチ
コンペア回路
OTE0
出力(ch.0)
R-bus
コンペアレジスタ
CMOD
コンペア
出力用ラッチ
コンペア回路
CST1
出力(ch.1)
CST0
ICP1
16ビット
フリーランタイマ(0)
OTE1
ICP0
ICE1
ICE0
割込み出力
割込み出力
247
第 14 章 アウトプットコンペア
14.2
アウトプットコンペアのレジスタ
アウトプットコンペアで使用するレジスタの構成および機能について説明します。
■ コンペアレジスタ (OCCP)
図 14.2-1 コンペアレジスタ (OCCP) のビット構成
OCCP( 上位バイト )
アドレス:
bit
000108H(OCCP1)
00010AH(OCCP0)
15
14
13
12
11
10
9
8
C15
C14
C13
C12
C11
C10
C9
C8
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
OCCP( 下位バイト )
アドレス:
bit
000109H(OCCP1)
00010BH(OCCP0)
7
6
5
4
3
2
1
0
C7
C6
C5
C4
C3
C2
C1
C0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。本レジス
タは , 初期値不定ですのでコンペア値を設定してから起動を許可してください。本レジ
スタは 16 ビットまたは 32 ビットでアクセスしてください。本レジスタ値と 16 ビット
フリーランタイマ値が一致した場合 , コンペア信号が発生してアウトプットコンペア
割込みフラグをセットします。また , ポートファンクションレジスタ (PFR) の対応する
OTE をセットし出力許可している場合は , コンペアレジスタに対応した出力レベルを
反転します。
248
第 14 章 アウトプットコンペア
■ アウトプットコントロールレジスタ (OCS)
図 14.2-2 アウトプットコントロールレジスタ (OCS) のビット構成
OCS01( 上位バイト )
bit
15
14
13
アドレス:000112H
12
11
10
CMOD
9
8
OTD1 OTD0
−
−
−
−
−
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(1)
(0)
(1)
(1)
(0)
(0)
初期値 (1)
OCS01( 下位バイト )
bit
7
6
5
4
3
2
1
0
アドレス:000113H
ICP1 ICP0 ICE1 ICE0
CST1 CST0
−
−
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(1)
(1)
(0)
(0)
初期値 (0)
[bit15 ∼ bit13] 未使用ビット
読出しでは必ず "1" が読み出されます。
[bit12] CMOD
出力端子を許可した場合のコンペア一致における端子出力レベル反転動作を指定
します。
CMOD = 0 ( 初期値 ) のとき , コンペアレジスタに対応した端子の出力レベルを反転
します。
OC0:コンペアレジスタ 0 の一致によりレベルを反転します。
OC1:コンペアレジスタ 1 の一致によりレベルを反転します。
CMOD = 1 のとき
OC0:コンペアレジスタ 0 の一致によりレベルを反転します。
OC1:コンペアレジスタ 0 と 1 の一致によりレベルを反転します。
[bit9, bit8] OTD1, OTD0
アウトプットコンペアレジスタの出力端子を許可した場合の端子出力レベルを指
定します。指定はコンペア動作を停止してから行ってください。読出し動作では ,
アウトプットコンペア端子出力が読み出されます。
0:コンペア端子出力を "0" にします ( 初期値 )。
1:コンペア端子出力を "1" にします。
249
第 14 章 アウトプットコンペア
[bit7, bit6] ICP1, ICP0
アウトプットコンペアの割込みフラグです。コンペアレジスタと 16 ビットフリー
ランタイマ値が一致した場合に "1" にセットされます。割込み要求ビット (ICE1,
ICE0) が許可されているときに本ビットが "1" にセットされると , アウトプットコン
ペア割込みが発生します。本ビットは "0" 書込みによりクリアされ , "1" 書込みは意
味を持ちません。リードモディファイライト (RMW) 系命令では "1" が読み出され
ます。
0:アウトプットコンペア一致なし ( 初期値 )
1:アウトプットコンペア一致あり
フリーランタイマに外部クロックを指定した場合 , コンペア一致および割込みは次
のクロックで発生します。そのため , コンペア一致出力および割込みを発生させる
ためには , コンペア一致後 , フリーランタイマの外部クロックに最低 "1 クロック "
を入力する必要があります。
[bit5, bit4] ICE1, ICE0
アウトプットコンペアの割込みを許可するビットです。本ビットが "1" のとき , 割
込みフラグ (ICP1, ICP0) が "1" にセットされるとアウトプットコンペア割込みが発
生します。
0:アウトプットコンペア割込み禁止 ( 初期値 )
1:アウトプットコンペア割込み許可
[bit3, bit2] 未使用ビット
読出しでは必ず "1" が読み出されます。
[bit1, bit0] CST1, CST0
16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許
可する前に必ずコンペアレジスタ値およびアウトプットコントロールレジスタ値
を設定してください。
0:コンペア動作禁止 ( 初期値 )
1:コンペア動作許可
アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16
ビットフリーランタイマを停止させるとコンペア動作も停止します。
250
第 14 章 アウトプットコンペア
14.3
アウトプットコンペアの動作
アウトプットコンペアの動作について説明します。
■ アウトプットコンペアの動作
アウトプットコンペアは , 設定されたコンペアレジスタ値と 16 ビットフリーランタイ
マ値とを比較して , 一致したら割込みフラグをセットするとともに , 出力レベルを反転
することができます。
図 14.3-1 に , 1 チャネル独立でコンペア動作を行った場合 (CMOD =0 のとき ) の出力波
形例を示します。
図 14.3-1 コンペアレジスタ 0, 1 を使用した場合の出力波形例 ( 出力の初期値は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
OP0出力
OP1出力
コンペア0割込み
コンペア1割込み
251
第 14 章 アウトプットコンペア
図 14.3-2 に , 2 組のコンペアレジスタを使い , 出力レベルを変えた場合 (CMOD = 1 のと
き ) の出力波形例を示します。
図 14.3-2 コンペアレジスタ 0, 1 を使用したときの出力波形例 ( 出力の初期値は "1")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
コンペアレジスタ0値
BFFFH
コンペアレジスタ1値
7FFFH
OP0出力
OP1出力
コンペア0割込み
コンペア1割込み
252
第 14 章 アウトプットコンペア
■ 16 ビットアウトプットコンペアの動作タイミング
2 組のコンペアレジスタを使い , 出力レベルを変えることができます (CMOD = 1 のと
き )。
アウトプットコンペアは , フリーランタイマと , 設定したコンペアレジスタの値が一致
したときにコンペアマッチ信号が発生して出力を反転するとともに割込みを発生する
ことができます。コンペアマッチ時の出力反転タイミングは , カウンタのカウントタイ
ミングに同期して行われます。
<コンペアレジスタライトタイミング>
コンペアレジスタ書換え時には , カウンタ値とはコンペアしません。
カウンタ値
N
N+1
N+2
N+3
一致信号は発生しない
コンペアクリアレジスタ0値
M
N+1
コンペアレジスタ0ライト
コンペアクリアレジスタ1値
L
N+3
コンペアレジスタ1ライト
コンペア0停止
コンペア1停止
<コンペアマッチ , 割込みタイミング>
カウントクロック
カウンタ値
コンペアレジスタ値
N
N+1
N+3
N+2
N
コンペアマッチ
端子出力
割込み
<端子出力タイミング>
カウンタ値
コンペアレジスタ値
N
N+1
N+1
N+1
N
コンペアマッチ
端子出力
253
第 14 章 アウトプットコンペア
254
第 15 章
U-Timer
U-Timer の概要 , レジスタの構成 , 機能および動作
について説明します。
15.1
U-Timer の概要
15.2
U-Timer のレジスタ
15.3
U-Timer の動作
255
第 15 章 U-Timer
15.1
U-Timer の概要
U-Timer (16 bit timer for UART baud rate generation) の概要とブロックダイヤグ
ラムを示します。
■ U-Timer の特長
U-Timer は , UART のボーレートを発生するための 16 ビットタイマです。チップの動
作周波数と U-Timer のリロード値の組合せで任意のボーレートを設定できます。
■ U-Timer のレジスタ一覧
U-TIMER のレジスタ一覧は , 以下のとおりです。
図 15.1-1 U-Timer のレジスタ一覧
UTIM( 上位タイマ )
bit
15
B15
(R)
(0)
14
B14
(R)
(0)
13
B13
(R)
(0)
12
B12
(R)
(0)
11
B11
(R)
(0)
10
B10
(R)
(0)
9
B9
(R)
(0)
8
B8
(R)
(0)
bit
7
B7
6
B6
5
B5
4
B4
3
B3
2
B2
1
B1
0
B0
リード / ライト
初期値
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
15
B15
(W)
(0)
14
B14
(W)
(0)
13
B13
(W)
(0)
12
B12
(W)
(0)
11
B11
(W)
(0)
10
B10
(W)
(0)
9
B9
(W)
(0)
8
B8
(W)
(0)
bit
7
B7
6
B6
5
B5
4
B4
3
B3
2
B2
1
B1
0
B0
リード / ライト
初期値
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
(W)
(0)
アドレス :000064H
リード / ライト
初期値
UTIM( 下位タイマ )
アドレス :000065H
UTIMR( 上位タイマ )
bit
アドレス :000064H
リード / ライト
初期値
UTIMR( 下位タイマ )
アドレス :000065H
UTIMC
bit
7
6
UCC1 −
リード / ライト (R/W) ( − )
(−)
初期値 (0)
アドレス :000067H
5
4
3
2
1
0
UTIE UNDR CLKS UTST UTCR
−
( − ) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(1)
(−)
DRCL
bit
アドレス :000066H
7
−
リード / ライト (W)
初期値 ( − )
256
6
5
4
3
2
1
0
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
第 15 章 U-Timer
■ U-Timer のブロックダイヤグラム
図 15.1-2 に , U-Timer のブロックダイヤグラムを示します。
図 15.1-2 U-Timer のブロックダイヤグラム
15
0
UTIMR (リロードレジスタ)
UTIM (U-Timer)
制御
アンダフロー
(周辺系クロック)
F/F
UARTへ
257
第 15 章 U-Timer
15.2
U-Timer のレジスタ
U-Timer で使用するレジスタの構成および機能を説明します。
■ U-Timer(UTIM)
UTIM( 上位タイマ )
bit
15
B15
(R)
(0)
14
B14
(R)
(0)
13
B13
(R)
(0)
12
B12
(R)
(0)
11
B11
(R)
(0)
10
B10
(R)
(0)
9
B9
(R)
(0)
8
B8
(R)
(0)
bit
7
B7
6
B6
5
B5
4
B4
3
B3
2
B2
1
B1
0
B0
リード / ライト
初期値
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
アドレス :000064H
リード / ライト
初期値
UTIM( 下位タイマ )
アドレス :000065H
UTIM はタイマの値を示します。
16 ビット転送命令でアクセスしてください。
<注意事項>
UART のモード 2 ( クロック同期モード ) で U-TIMER をボーレートとして使用する場合 ,
リロードレジスタ (UTIMR) に 0 を設定することは禁止です。
■ リロードレジスタ (UTIMR)
UTIMR( 上位タイマ )
bit
アドレス :000064H
リード / ライト
初期値
15
B15
(W)
(0)
14
B14
(W)
(0)
13
B13
(W)
(0)
12
B12
(W)
(0)
11
B11
(W)
(0)
10
B10
(W)
(0)
9
B9
(W)
(0)
8
B8
(W)
(0)
7
B7
(W)
(0)
6
B6
(W)
(0)
5
B5
(W)
(0)
4
B4
(W)
(0)
3
B3
(W)
(0)
2
B2
(W)
(0)
1
B1
(W)
(0)
0
B0
(W)
(0)
UTIMR( 下位タイマ )
bit
アドレス :000065H
リード / ライト
初期値
UTIMR は UTIM がアンダフローしたときに , UTIM にリロードされる値を格納するレ
ジスタです。
16 ビット転送命令でアクセスしてください。
258
第 15 章 U-Timer
■ U-Timer 制御レジスタ (UTIMC)
UTIMC は U-Timer の動作を制御します。
UTIMC
bit
7
6
UCC1 −
リード / ライト (R/W) ( − )
(−)
初期値 (0)
アドレス :000067H
5
4
3
2
1
0
UTIE UNDR CLKS UTST SUCR
−
( − ) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(1)
(−)
[bit7] UCC1 (U-timer Count Control)
UCC1 ビットは , U-Timer のカウントの方法を制御します。
UCC1
動作
0
通常動作。 α=2n+2
1
+1 モード
α=2n+3
n :UTIM の設定値
α :UART に対する出力クロックの周期
UTIMC は , UART に対して通常の 2(n+1) の周期のクロックのほかに , 奇数分周を設
定できます。UCC1 を "1" に設定すると 2n+3 の周期を発生します。
設定例: • UTIM = 5, UCC1 = 0 → 発生周期 = 2n+2 = 12 サイクル
• UTIM = 25, UCC1 = 1 → 発生周期 = 2n+3 = 53 サイクル
• UTIM = 60, UCC1 = 0 → 発生周期 = 2n+2 = 122 サイクル
[bit6, bit5] (Reserved bit)
[bit4] UTIE (Reserved bit)
常に "0" を書き込んでください。
[bit3] UNDR (Underflow Flag)
UNDR は , アンダフローが発生したことを示すフラグです。UNDR はリセット また
は "0" 書込みによりクリアされます。
リードモディファイライト (RMW) 系命令の読出し時は , 常に "1" が読み出されま
す。また , UNDR に対する "1" 書込みは無効です。
[bit2] CLKS (Reserved bit)
常に "0" を書き込んでください。
259
第 15 章 U-Timer
[bit1] UTST (U-Timer Start)
UTIM のスタートビットです。
0:停止。動作中でも "0" を書き込むことにより停止します。[ 初期値 ]
1:動作。動作中に "1" を書き込んでも動作は続行されます。
[bit0] UTCR (U-Timer Clear)
UTCR に "0" を書き込むと UTIM は "0000H" にクリアされます (FF も "0" にクリア )。
読出しでは常に "1" が読み出されます。
<注意事項>
• ストップ状態からスタートビット UTST を有効に ( スタート ) すると自動的にリロード
します。
• ストップ状態からクリアビット UTCR とスタートビット UTST を同時に有効にする
と , カウンタを "0" クリアして , 直後のカウントダウンでアンダフローが発生します。
• 動作中にクリアビット UTCR を有効にするとカウンタも "0" クリアされます。このた
め , 出力波形にハザードが出力される場合があり , 上位側の U-Timer が誤動作する場合
があります。出力クロックを使用している場合には , 動作中にクリアビットによる初期
化を行わないでください。
• U-Timer コントロールレジスタの bit1(U-Timer スタートビット:UTST) および , bit0
(U-Timer のクリアビット:UTCR) をタイマ停止状態で同時に有効にすると , クリアし
た後のカウンタロードのタイミングで同レジスタの bit3( アンダフローフラグ:UNDR)
がセットされます。また , 内部ボーレートクロックは同タイミングで "H" レベルになり
ます。
• UNDRビットのセットタイミングとクリアタイミングが重複した場合には,フラグセッ
トが優先されクリア動作は無効となります。
• U-Timer リロードレジスタへの書込みとリロードのタイミングが重複した場合には旧
データがカウンタにロードされ , 新データがカウンタにロードされるのは次のリロー
ドのタイミングとなります。
• タイマクリアとタイマカウント / リロードのタイミングが重複した場合には , タイマク
リアが最優先されます。
■ DMA 割込みクリアレジスタ (DRCL)
DMA 割込みクリアレジスタ (DRCL) は , DMA 転送を準備するために利用します。
DRCL
bit
アドレス :000066H
7
−
リード / ライト (W)
初期値 ( − )
6
5
4
3
2
1
0
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
−
(W)
(−)
初めて DMA を利用する際は , このレジスタに一度書込みを行ってから利用してくださ
い。
260
第 15 章 U-Timer
15.3
U-Timer の動作
U-Timer のボーレートの計算を示します。
■ ボーレートの計算
UART は対応する U-Timer のアンダフローフリップフロップ ( 図中 F/F) をボーレート
用クロックソースとして使用します。
● 非同期 ( 調歩同期 ) モード
UART は , U-Timer の出力を 16 分周して使用します。
n … U-Timer( リロード値 )
φ… 周辺系マシンクロック周波数 ( ギアにより変動 )
bps = φ / {(2n + 2) × 16} :UCC1 = 0
bps = φ / {(2n + 3) × 16} :UCC1 = 1
● クロック同期モード
n … U-Timer( リロード値 )
φ… 周辺系マシンクロック周波数 ( ギアにより変動 )
bps = φ / (2n + 2)
:UCC1 = 0
bps = φ / (2n + 3)
:UCC1 = 1
<注意事項>
UART のモード 2 ( クロック同期モード ) で U-Timer をボーレートとして使用する場合 ,
リロードレジスタ (UTIMR) に 0 を設定することは禁止です。
261
第 15 章 U-Timer
262
第 16 章
外部バスインタフェース
外部バスインタフェース , 内部バスと外部のメモリ
および I/O デバイスとのインタフェースを制御しま
す。
16.1
外部バスインタフェースの概要
16.2
外部バスインタフェースのレジスタ
16.3
外部バスインタフェースのエンディアンとバスアクセ
ス
16.4
外部バスインタフェースの通常バスインタフェース
16.5
外部バスインタフェースのレジスタ設定手順
16.6
外部バスインタフェース使用上の注意
263
第 16 章 外部バスインタフェース
16.1
外部バスインタフェースの概要
外部バスインタフェースの特長とブロックダイヤグラムを説明します。
■ 外部バスインタフェースの特長
• 16 ビット長のアドレス出力
• データバス幅 , 8 ビット /16 ビット
• 各種外部メモリ (8 ビット /16 ビット品 ) を直結できるほか , 複数のアクセスタイミ
ングを混在制御可能
非同期 SRAM, 非同期 ROM/ フラッシュメモリ ( 複数ライトストローブ方式またはバ
イトイネーブル方式 )
• 独立した 4 個のバンク ( チップセレクト領域 ) を設定でき , それぞれに対応したチッ
プセレクト出力が可能
CS0X, CS1X は , 64K/128K/256K/512K バイト単位で , "003FFFFFH" までの外部バス
領域に割り当てられた空間に設定可能
CS2X, CS3X は , 1M/2M/4M/8M バイト単位で , "00400000H" ∼ "00FFFFFFH" の空間
に設定可能
領域サイズによりバウンダリの制限あり
<注意事項>
本品種では領域サイズを大きく指定しても , 64K バイトのイメージとなります。
• チップセレクト領域ごとに以下の機能を独立に設定可能
チップセレクト領域の許可・禁止 ( 禁止された領域はアクセスを行いません )
各種メモリ対応などのアクセスタイミングタイプ設定
詳細アクセスタイミング設定 ( ウェイトサイクルなどのアクセスタイプ個別設定 )
データバス幅設定 (8 ビット /16 ビット )
- アクセスタイミングタイプごとに異なる詳細なタイミングを設定可能
同一タイプでもチップセレクト領域ごとに異なる設定が混在可能
- オートウェイトは , 最大 7 サイクルまで設定可能 ( 非同期 SRAM, ROM, Flash, I/O
領域 )
- 外部 RDY 入力によるバスサイクルの延長が可能 ( 非同期 SRAM, ROM, Flash, I/O
領域 )
- 各種アイドル・リカバリサイクル , セットアップ遅延などの挿入が可能
• 外部インタフェースの未使用端子は , 設定により汎用 I/O ポートとして使用可能
264
第 16 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 16.1-1 に , 外部バスインタフェースのブロックダイヤグラムを示します。
図 16.1-1 外部バスインタフェースのブロックダイヤグラム
内部アドレスバス
32
内部データバス
32
外部データバス
ライトバッファ
スイッチ
リードバッファ
スイッチ
データブロック
アドレスブロック
+1 または +2
外部アドレスバス
アドレスバッファ
ASR
CS0X-CS3X
ASZ
コンパレータ
外部端子制御部
RDX
WR0X, WR1X,
ASX
全ブロック制御
レジスタ制御部
RDY
SYSCLK
265
第 16 章 外部バスインタフェース
■ I/O 端子
外部バスインタフェースの端子です。
<通常バスインタフェース>
A15 ∼ A00, D15 ∼ D0
CS0X, CS1X, CS2X, CS3X
ASX, SYSCLK
RDX
WR0X, WR1X
RDY
■ 外部バスインタフェースのレジスタ一覧
外部バスインタフェースのレジスタ構成は , 以下のとおりです。
図 16.1-2 外部バスインタフェースのレジスタ一覧
アドレス
bit 31
24 23
16 15
8 7
00000640H
ASR0
ACR0
00000644H
ASR1
ACR1
00000648H
ASR2
ACR2
0000064CH
ASR3
ACR3
00000650H
予約
予約
00000654H
予約
予約
00000658H
予約
予約
0000065CH
予約
予約
00000660H
AWR0
AWR1
00000664H
AWR2
AWR3
00000668H
予約
予約
0000066CH
予約
予約
00000670H
−
−
−
−
00000674H
−
−
−
−
00000678H
−
−
−
−
0000067CH
−
−
−
−
00000680H
CSER
−
−
−
00000684H
−
−
−
−
00000688H
−
−
−
−
0000068CH
−
−
−
−
…
…
…
…
…
000007F8H
−
−
−
−
000007FCH
−
MODR
−
−
予約:予約レジスタです。書き込む場合は , 必ず "0" を設定してください。
266
0
第 16 章 外部バスインタフェース
16.2
外部バスインタフェースのレジスタ
外部バスインタフェースのレジスタについて説明します。
■ 外部バスインタフェースのレジスタ概要
外部バスインタフェースには , 以下の 6 種類のレジスタがあります。
• ASR0 ∼ ASR3(Area Select Register)
• ACR0 ∼ ACR3(Area Configuration Register)
• AWR0 ∼ AWR3(Area Wait Register)
• IOWR0 ∼ IOWR3(I/O Wait Register for DMAC)
• CSER(Chip Select Enable register)
■ ASR0 ∼ ASR3 (Area Select Register)
図 16.2-1 ASR0 ∼ ASR3 (Area Select Register) のビット構成
ASR0
bit
15
アドレス:
0000 0640H
−
ASR1
bit
15
アドレス:
0000 0644H
−
ASR2
bit
15
アドレス:
0000 0648H
−
ASR3
bit
15
アドレス:
0000 064CH
−
8
…
…
−
…
…
…
−
8
…
…
…
−
…
…
…
−
8
8
7
A23
6
A22
…
…
1
A17
0
A16
初期値
0000H
アクセス
R/W
7
A23
6
A22
…
1
A17
0
A16
XXXXH
R/W
7
A23
6
A22
…
1
A17
0
A16
XXXXH
R/W
7
A23
6
A22
…
1
A17
0
A16
XXXXH
R/W
[bit15 ∼ bit8] (Reserved bit)
必ず , "0000H" を設定してください。
[bit7 ∼ bit0] A23 ∼ A16
ASR0 ∼ ASR3(Area Select Register 0 ∼ 3) は , CS0X ∼ CS3X の各チップセレクト領
域の開始アドレスを指定します。
開始アドレスは , A[23:16] の上位 12 ビットを設定できます。各チップセレクト領域
は, このレジスタに設定されたアドレスから始まり, ACR0∼ACR3レジスタのASZ1,
ASZ0 ビットで設定された範囲をとります。
各チップセレクト領域のバウンダリは , ACR0 ∼ ACR3 レジスタの ASZ1, ASZ0 ビッ
トの設定に従います。例えば , ASZ1, ASZ0 ビットにより , 1 M バイトの領域を設定し
た場合は , ASR0 ∼ ASR3 レジスタの下位 4 ビットは無視され , A[23:20] ビットのみ
意味を持ちます。
267
第 16 章 外部バスインタフェース
ASR0 レジスタは , INIT および RST により "00H" に初期化されます。ASR1 ∼ ASR3
は , INIT および RST によっては初期化されず不定となります。LSI の動作開始後 ,
CSER レジスタにより各チップセレクト領域を有効にする前に , 必ず対応する ASR
レジスタを設定してください。
<注意事項>
ASR と ACR はワードアクセスで同時設定してください。
ASR, ACRをハーフワードでアクセスする場合にはASR設定後ACRを設定してください。
■ ACR0 ∼ ACR3 (Area Configuration Register)
図 16.2-2 ACR0 ∼ ACR3 (Area Configuration Register) のビット構成
ACR0H
bit
15
14
アドレス:
0000 0642H
−
−
ACR0L
bit
7
6
アドレス:
0000 0643H
−
−
ACR1H
bit
15
14
アドレス:
0000 0646H
−
−
ACR1L
bit
7
6
アドレス:
0000 0647H
−
−
ACR2H
bit
15
14
アドレス:
0000 064AH
−
−
ACR2L
bit
7
6
アドレス:
0000 064BH
−
−
ACR3H
bit
15
14
アドレス:
0000 064EH
−
−
ACR3L
bit
7
6
アドレス:
0000 064FH
−
−
13
ASZ1
12
ASZ0
11
10
DBW0
9
8
−
−
−
5
WREN
4
−
3
TYP3
2
TYP2
1
TYP1
0
TYP0
13
ASZ1
12
ASZ0
11
10
DBW0
9
8
−
−
5
WREN
4
−
3
TYP3
2
TYP2
1
TYP1
13
ASZ1
12
ASZ0
11
10
DBW0
9
8
−
−
5
WREN
4
−
3
TYP3
2
TYP2
13
ASZ1
12
ASZ0
11
−
10
DBW0
5
WREN
4
−
3
TYP3
2
TYP2
初期値
アクセス
xx110*00B
R/W
00000000B
R/W
−
0xxx0x00B
R/W
0
TYP0
00x0xxxxB
R/W
−
xxxx0x00B
R/W
1
TYP1
0
TYP0
00x0xxxxB
R/W
9
8
−
−
01xx0x00B
R/W
1
TYP1
0
TYP0
00x0xxxxB
R/W
*: モードベクタの WTH ビットと同じ値に自動設定
ACR0 ∼ ACR3(Area Configuration Register 0 ∼ 3) は , 各チップセレクト領域の機能を設
定します。
[bit15, bit14] (Reserved bit)
必ず , "00B" を設定してください。
268
第 16 章 外部バスインタフェース
[bit13, bit12] ASZ1, ASZ0 = Area Size bit [1:0]
各チップセレクト領域のサイズを以下のとおり設定します。
ASZ1 ASZ0
レジスタ
各チップセレクト領域のサイズ
0
0
64K バイト
0
1
128K バイト (00020000H バイト , ASR A[23:17] ビット指定が有効 )
1
0
256K バイト (00040000H バイト , ASR A[23:18] ビット指定が有効 )
1
1
512K バイト (00080000H バイト , ASR A[23:19] ビット指定が有効 )
0
0
1M バイト
(00100000H バイト , ASR A[23:20] ビット指定が有効 )
0
1
2M バイト
(00200000H バイト , ASR A[23:21] ビット指定が有効 )
1
0
4M バイト
(00400000H バイト , ASR A[23:22] ビット指定が有効 )
1
1
8M バイト
(00800000H バイト , ASR A[23] ビット指定のみ有効 )
設定
(00010000H バイト , ASR A[23:16] ビット指定が有効 )
ASR0/ASR1
ASR2/ASR3
CS0X,
CS1X
のみ
有効
CS2X,
CS3X
のみ
有効
ASZ1, ASZ0 では , ASR とのアドレス比較のビット数を変更させることにより , 各領
域のサイズを設定します。そのため , ASR には比較されないビットが存在します。
ACR0 の ASZ1, ASZ0 ビットは , RST により "11B" に初期化されますが , この設定に
かかわらず RST 直後の CS0 領域は特別に "00000000H" から "00FFFFFFH" ( 全領域 )
に設定されています。ACR0 への最初の書込み後より , 全領域設定が解除され , 上記
の表に従ったサイズに設定されます。
<注意事項>
本品種では領域サイズを大きく指定しても , 64K バイトのイメージとなります。
[bit11] (Reserved bit)
必ず , "0" を設定してください。
[bit10] DBW0 = Data Bus Width[0]
各チップセレクト領域のデータバス幅を以下のとおり設定します。
DBW0
データバス幅
0
8 ビット
1
16 ビット ( ハーフワードアクセス )
( バイトアクセス )
ACR0 の DBW0 ビットは , リセットシーケンス中にモードベクタの WTH ビットの
値と同じ値が自動的に書き込まれます。
[bit9, bit8] (Reserved bit)
必ず , "00B" を設定してください。
269
第 16 章 外部バスインタフェース
[bit7] (Reserved bit)
必ず , "0" を設定してください。
[bit6] (Reserved bit)
必ず , "0" を設定してください。
[bit5] WREN = WRite ENable
各チップセレクト領域の書込みの許可・禁止を設定します。
WREN
書込み許可・禁止
0
書込み禁止
1
書込み許可
書込みが禁止された領域に対する書込みアクセスが内部バスから発生しても , その
アクセスは無視され , 外部アクセスを一切行いません。
データ領域など , 書込みが必要な領域は , WREN ビットに "1" を設定してください。
[bit4] (Reserved bit)
必ず , "0" を設定してください。
[bit3 ∼ bit0] TYP3, TYP2, TYP1, TYP0 = TYPe select
各チップセレクト領域のアクセスタイプの設定を以下に示します。
TYP3 TYP2 TYP1 TYP0
アクセスタイプ
0
X
X
通常アクセス ( 非同期 SRAM, I/O, single ROM/Flash)
1
X
X
設定禁止
X
0
RDY 端子による WAIT 挿入無効
X
1
RDY 端子による WAIT 挿入有効
0
X
WR0X, WR1X 端子をライトストローブとして使用
1
X
設定禁止
0
設定禁止
1
設定禁止
0
X
0
1
0
0
1
0
設定禁止
0
1
1
設定禁止
1
0
0
設定禁止
1
0
1
設定禁止
1
1
0
設定禁止
1
1
1
マスク領域設定 ( アクセスタイプは重複した領域のも
のになります )*
各ビットは , 組み合せて設定します。
270
第 16 章 外部バスインタフェース
*:CS 領域マスク設定機能
ある CS 領域 ( 以降 , ベース設定領域とよびます ) の中に , 一部動作設定を変更
した領域を定義したい場合 , 別の CS 領域の設定にて , ACR:TYP[3:0]=1111B を
設定し , マスク設定領域として機能させることができます。
マスク設定機能を使用しない場合 , 複数の CS 領域でオーバラップする領域設定
は禁止します。
マスク設定領域へのアクセスは , 以下のような動作を行います。
- マスク設定領域に対応する CSX は有効とされません。
- ベース設定領域に対応する CSX が有効とされます。
- ACR の以下の設定はマスク設定領域側のものが有効になります。
bit10: DBW0:バス幅設定
bit5: WREN:ライト許可設定
( 注意事項 ) この設定のみ , ベース設定領域と異なる設定は禁止します。
- ACR の以下の設定はベース設定領域側のものが有効になります。
bit[3:0] TYP[3:0]:アクセスタイプ設定
- AWR の設定はマスク設定領域側のものが有効になります。
マスク設定領域は , ほかの CS 領域 ( ベース設定領域 ) 内の一部の領域にのみ設
定できます。ベース設定領域がない領域に対して , マスク設定領域を設けては
いけません。また , マスク設定領域を複数重複させてはいけません。ASR およ
び ACR:ASZ[1:0] ビットの設定には十分注意してください。
<注意事項>
ライト許可設定をマスクで実現することはできません。
ライト許可設定は , ベースとなる CS 領域とマスク設定領域とで , 同じ設定にしてくださ
い。
マスク設定領域でライト禁止を設定すると , その領域はマスクされずベース CS 領域とし
て動作します。
ベース CS 領域でライト禁止を設定し , マスク設定領域でライト許可を設定すると , ベー
ス設定のない領域となり誤動作します。
271
第 16 章 外部バスインタフェース
■ AWR0 ∼ AWR3 (Area Wait Register)
AWR0 ∼ AWR3 のレジスタ構成を以下に示します。
図 16.2-3 AWR0 ∼ AWR3 (Area Wait Register) のビット構成
AWR0H
bit
15
アドレス:
0000 0660H
−
AWR0L
bit
7
アドレス:
0000 0661H
−
AWR1H
bit
15
アドレス:
0000 0662H
−
AWR1L
bit
7
アドレス:
0000 0663H
−
AWR2H
bit
15
アドレス:
0000 0664H
−
AWR2L
bit
7
アドレス:
0000 0665H
−
AWR3H
bit
15
アドレス:
0000 0666H
−
AWR3L
bit
7
アドレス:
0000 0667H
−
14
W14
13
W13
12
W12
11
10
9
8
−
−
−
−
6
W06
5
3
−
4
W04
−
2
W02
1
W01
0
W00
14
W14
13
W13
12
W12
11
10
9
8
−
−
−
6
W06
5
3
−
4
W04
−
2
W02
14
W14
13
W13
12
W12
11
6
W06
5
−
4
W04
14
W14
13
W13
12
W12
6
W06
5
−
4
W04
初期値
アクセス
01110000B
R/W
01011011B
R/W
−
xxxx0000B
R/W
1
W01
0
W00
xx0x1xxxB
R/W
10
9
8
−
−
−
−
0xxx0000B
R/W
3
−
2
W02
1
W01
0
W00
xx0x1xxxB
R/W
11
10
9
8
−
−
−
−
0xxx0000B
R/W
3
2
W02
1
W01
0
W00
0x0x1xxxB
R/W
−
AWR0 ∼ AWR3 は , 各チップセレクト領域の各種ウェイトタイミングを指定します。
ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP[3:0] ビット ) の設定により , 各ビット
の動作が変わります。
[bit15] (Reserved bit)
必ず , "0" を設定してください。
[bit14 ∼ bit12] W14 ∼ W12 =
ファーストアクセスウェイトサイクル
(First Access Wait Cycle)
各サイクルの最初のアクセスサイクルに挿入するオートウェイトサイクル数を設
定します。
272
第 16 章 外部バスインタフェース
CS0 領域は , 初期値 7 ウェイトに設定されます。その他の領域は初期値不定です。
W14
W13
W12
0
0
0
自動ウェイトサイクル 0
0
0
1
自動ウェイトサイクル 1
ファーストアクセスウェイトサイクル
…
…
1
1
0
自動ウェイトサイクル 6
1
1
1
自動ウェイトサイクル 7
[bit11 ∼ bit7] (Reserved bit)
必ず , "00000B" を設定してください。
[bit6] W06 = リード→ライトアイドルサイクル (Read → Write Idle Cycle)
リード→ライトアイドルサイクルは , リードサイクル後にライトサイクルが続く場
合に , リードデータとライトデータのデータバス上での衝突を防ぐために設定しま
す。アイドルサイクル中はすべてのチップセレクト信号をネゲートし , データ端子
はハイインピーダンス状態を維持します。
リード後にライトが続く場合 , もしくは , リードの後に別のチップセレクト領域へ
のアクセスが発生した場合に , 指定したアイドルサイクルを挿入します。
W06
リード→ライトアイドルサイクル
0
0 サイクル
1
1 サイクル
[bit5] (Reserved bit)
必ず "0" を設定してください。
[bit4] W04 = ライトリカバリサイクル (Write Recovery Cycle)
ライトリカバリサイクルは , ライトアクセス後に続けてアクセスする際の間隔に制
限のあるデバイスへのアクセスを制御する場合に設定します。ライトリカバリサイ
クル中はすべてのチップセレクト信号をネゲートし , データ端子はハイインピーダ
ンスを維持します。
ライトリカバリサイクルを "1" 以上に設定した場合は , ライトアクセスの後には必
ずライトリカバリサイクルが挿入されます。
W04
ライトリカバリサイクル
0
0 サイクル
1
1 サイクル
273
第 16 章 外部バスインタフェース
[bit3] (Reserved bit)
必ず "1" を設定してください。
[bit2] W02 = アドレス→ CSX 遅延 (Address → CSX Delay)
アドレス→ CSX 遅延設定は , CSX の立下りに対してアドレスなどが一定のセット
アップを必要とする場合や , 連続して同一のチップセレクト領域にアクセスする際
にも CSX のエッジを必要とする場合などに設定します。
アドレスおよび ASX 出力から , CS0X ∼ CS3X 出力のディレイを設定します。
W02
アドレス→ CSX 遅延
0
遅延なし
1
遅延あり
"0" を設定し , 遅延なしを選択した場合は , ASX のアサートと同じタイミングで
CS0X ∼ CS3X がアサート開始されます。このとき , 同じチップセレクト領域に連
続したアクセスを実行した場合 , 両アクセスの間も CS0X ∼ CS3X はアサートを継
続したまま変化しないことがあります。
"1" を設定し , 遅延ありを選択した場合は , 外部メモリクロック SYSCLK 出力の立
上りから CS0X ∼ CS3X がアサート開始されます。このとき , 同じチップセレクト
領域に連続したアクセスを実行した場合でも , 両アクセスの間に CS0X ∼ CS3X ネ
ゲートタイミングが発生します。
CSX 遅延ありを選択した場合は , 遅延させた CSX のアサートからリード / ライトス
トローブをアサートする前に , 1 サイクルのセットアップサイクルを挿入します
(W01 の CSX → RDX/WRX セットアップ設定と同等の動作となります )。
[bit1] W01 = CSX → RDX/WRX セットアップ延長サイクル (CSX → RDX/WRX setup)
CSX → RDX/WRX セットアップ延長サイクルは , CSX アサート後 , リード / ライト
ストローブをアサートするまでの期間を延長する場合に設定します。CSX アサート
後 , リード / ライトストローブをアサートする前に最低 1 サイクルのセットアップ
延長サイクルを挿入します。
W01
CSX → RDX/WRX セットアップ延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , 最速で , CSX アサート直後の外部メ
モリクロック SYSCLK 出力の立上りから RDX/WR0X, WR1X が出力されます。
WR0X, WR1X は , 内部バスの状態により , 1 サイクル以上遅れることもあります。
"1" を設定し , 1 サイクルを選択した場合は , RDX/WR0X, WR1X とも , 必ず 1 サイ
クル以上遅れて出力されます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このセットアップ延長サイクルは挿入されません。アドレス確定のセットアッ
プ延長サイクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延
を挿入することにより , 毎アクセス時に CSX がいったんネゲートされるため , この
274
第 16 章 外部バスインタフェース
セットアップ延長サイクルが有効となります。
W02 の CSX 遅延設定を挿入してある場合 , W01 ビットの設定によらず常にこのセッ
トアップサイクルが有効となります。
[bit0] W00 = RDX/WRX → CSX ホールド延長サイクル (RDX/WRX → CSX Hold Cycle)
RDX/WRX → CSX ホールド延長サイクルは , リード / ライトストローブネゲート後 ,
CSX ネゲートまでの期間を延長する場合に設定します。リード / ライトストローブ
ネゲート後 , CSX をネゲートする前に 1 サイクルのホールド延長サイクルを挿入し
ます。
W00
RDX/WRX → CSX ホールド延長サイクル
0
0 サイクル
1
1 サイクル
"0" を設定し , 0 サイクルを選択した場合は , RDX/WR0X, WR1X がネゲートされた後
の外部メモリクロック SYSCLK 出力の立上りエッジよりホールド遅延経過後に ,
CS0X ∼ CS3X がネゲートされます。
"1" を設定し , 1 サイクルを選択した場合は , CS0X ∼ CS3X は 1 サイクル遅れてネ
ゲートされます。
同一チップセレクト領域内で , CSX をネゲートしないまま連続してアクセスする場
合 , このホールド延長サイクルは挿入されません。アドレス確定のホールド延長サ
イクルが必須となる場合 , W02 ビットを有効にしてアドレス→ CSX 遅延を挿入す
ることにより , 毎アクセス時に CSX がいったんネゲートされるため , このホールド
延長サイクルが有効となります。
● 通常アクセスおよびアドレス / データマルチプレックスアクセス
ACR0 ∼ ACR3 レジスタのアクセスタイプ (TYP[3:0] ビット ) に以下の設定を行った
チップセレクト領域は , 通常アクセスまたはアドレス / データマルチプレックスアクセ
ス動作を行う領域となります。
TYP3
TYP2
TYP1
TYP0
0
0
x
x
通常アクセス
( 非同期 SRAM, I/O, single ROM/Flash)
0
1
x
x
アドレスデータマルチプレックスアクセス
(8/16 ビットバス幅限定 )
( 設定禁止 )
アクセスタイプ
通常アクセスまたはアドレス / データマルチプレックスアクセス領域に対しての ,
AWR0 ∼ AWR3 の各ビットの機能を以下に示します。AWR0 以外は初期値が不定です
ので , 各領域を CSER レジスタによって有効にする前に設定を行ってください。
<注意事項>
MB91245/S シリーズでは , アドレス / データマルチプレックスアクセス動作設定はできませ
ん。
275
第 16 章 外部バスインタフェース
■ CSER (Chip Select Enable register )
bit
31
30
29
28
アドレス:
0000 0680H
−
−
−
−
27
CSE3
26
CSE2
25
CSE1
24
CSE0
初期値
アクセス
00000001B
R/W
各チップセレクト領域の許可 / 禁止を設定します。
[bit31 ∼ bit28] (Reserved bit)
必ず , "0000B" を設定してください。
[bit27 ∼ bit24] CSE3 ∼ CSE0 = チップセレクト領域許可 (Chip select enable 0-3)
CS0X ∼ CS3X の各チップセレクト領域許可ビットです。
初期値は , "0001B" で CS0 領域のみ許可されています。
"1" を書き込むことにより ASR0 ∼ ASR3, ACR0 ∼ ACR3, AWR0 ∼ AWR3 の設定に
従い動作します。
許可にする前に , 必ず対応するチップセレクト領域のすべての設定を行ってくださ
い。
CSE3 ∼ CSE0
領域コントロール
0
禁止
1
許可
CSE のビット
対応する CSX
bit24 : CSE0
CS0X
bit25 : CSE1
CS1X
bit26 : CSE2
CS2X
bit27 : CSE3
CS3X
● チップセレクト領域
外部バスインタフェースは全 4 領域分のチップセレクト領域が設定できます。
各領域のアドレス空間は ASR0 ∼ ASR3 (Area Select Register) と ACR0 ∼ ACR3 (Area
Configuration Register) にて 16M バイトの空間のうち , CS0X, CS1X は , 64K/128K/256K/
512K バイト単位で , "00000000H" ∼ "003FFFFFH" までの外部バス領域に割り当てられ
た空間に , CS2X, CS3X は , 1M/2M/4M/8M バイト単位で , "00400000H" ∼ "00FFFFFFH"
の空間に設定可能です。
これらのレジスタによって指定された領域に対してバスアクセスを行うと , アクセス
サイクル中に対応するチップセレクト信号 CS0X ∼ CS3X がアクティブ ("L" 出力 ) に
なります。
276
第 16 章 外部バスインタフェース
ASR および ASZ[1:0] の設定例
・ASR1=0010H ACR1 → ASZ[1:0]=00B
チップセレクト領域 1 は , "00100000H" ∼ "0010FFFFH" に割り当てられます。
・ASR2=0040H ACR2 → ASZ[1:0]=00B
チップセレクト領域 2 は ," 00400000H" ∼ "004FFFFFH" に割り当てられます。
・ASR3=0081H ACR3 → ASZ[1:0]=11B
チップセレクト領域 3 は , "00800000H" ∼ "00FFFFFFH" に割り当てられます。
このとき , ACR → ASZ[1:0] が 8M バイトの設定になっていますので , バウンダリは 8M
バイト単位となり , ASR3[22:16] は無視されます。
リセット後は , ACR0 に書込みが行われるまでの間 , "00000000H"∼ "00FFFFFFH" がチッ
プセレクト領域 0 に割り当てられます。
<注意事項>
チップセレクト領域は , お互いにオーバラップしないように設定してください。
図 16.2-4 領域サイズによるバウンダリについて
(初期値)
(例)
00000000H
00000000H
00100000H
領域1
64Kバイト
00400000H
領域2
1Mバイト
領域0
領域3
00800000H
8Mバイト
00FFFFFFH
00FFFFFFH
277
第 16 章 外部バスインタフェース
16.3
外部バスインタフェースのエンディアンとバスアクセス
エンディアンとバスアクセスについて説明します。
■ エンディアンの概要
FR ファミリは特定の領域を除いて , チップセレクトごとにビッグエンディアンとリト
ルエンディアンを切り換えて使用することができます。
■ データバス幅と制御信号との関係
WRX[1:0] の制御信号は , データバス幅に関係なくデータバスのバイト位置に常に 1 対
1 に対応します。
バスモード別に設定されたデータバス幅で使用されるデータバスのバイト位置とそれ
に対応する制御信号を下記に示します。
• 通常バスインタフェース
a) 16ビットバス幅
データバス
制御信号
D15
b) 8ビットバス幅
データバス
制御信号
WR0X
WR1X
D00
WR0X
-
-
-
-
-
-
-
-
-
-
• 時分割入出力インタフェース
a) 16ビットバス幅
データバス 出力アドレス
b) 8ビットバス幅
制御信号
データバス 出力アドレス
制御信号
D15
A15~A8
WR0X
A7~A0
WR1X
D00
278
A7~A0
WR0X
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
第 16 章 外部バスインタフェース
■ バスアクセス
本品種は , ビッグエンディアンで外部バスアクセスを行います。
● データバス幅
• 16 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
AA
D23
BB
D15
CC
D07
DD
リード/ライト
"00B"
"10B"
AA
CC
D15
BB
DD
D07
• 8 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
AA
D23
BB
D15
CC
D07
DD
リード/ライト
"00B"
"01B"
"10B"
"11B"
AA
BB
CC
DD
D07
● 外部バスアクセス
外部バスアクセス (16 ビット /8 ビットバス幅 ) をワード / ハーフワード / バイトアクセ
ス別に以下示します。また , 下記の項目についてもあわせて示します。
• アクセスバイト位置
• プログラムアドレスと出力アドレス
• バスアクセス回数
をまとめます。
PA1/PA0
:
プログラムで指定したアドレス下位 2 ビット
出力 A1/A0
:
出力するアドレスの下位 2 ビット
:
出力するアドレスの先頭バイト位置
:
アクセスするデータバイト位置
:
バスアクセス回数
+
①∼④
FR ファミリは , ミスアラインエラーを検出しません。
したがってワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビットが
"00B", "01B", "10B", "11B" であっても , 出力するアドレスの下位 2 ビットはすべて "00B" と
なり , ハーフワードアクセスの場合には "00B", "01B" のときには "00B" に , "00B", "01B"
のときには "10B" になります。
279
第 16 章 外部バスインタフェース
• 16 ビットバス幅
(A) ワードアクセス
(a) PA1/PA0=00B
(b) PA1/PA0=01B
→①出力A1/A0=00B
②出力A1/A0=10B
MSB
→①出力A1/A0=00B
②出力A1/A0=10B
(c)PA1/PA0=10B
→①出力A1/A0=00B
②出力A1/A0=10B
(d)PA1/PA0=11B
→①出力A1/A0=00B
②出力A1/A0=10B
LSB
①
00
01
①
00
01
①
00
01
①
00
01
②
10
11
②
10
11
②
10
11
②
10
11
16ビット
(B) ハーフワードアクセス
(a) PA1/PA0=00B
(b) PA1/PA0=01B
→①出力A1/A0=00B
①
00
01
10
11
→①出力A1/A0=00B
①
00
01
10
11
(c)PA1/PA0=10B
→①出力A1/A0=10B
①
00
01
10
11
(d)PA1/PA0=11B
→①出力A1/A0=10B
①
00
01
10
11
(C) バイトアクセス
(a) PA1/PA0=00B
(b) PA1/PA0=01B
→①出力A1/A0=00B
①
280
00
01
10
11
→①出力A1/A0=01B
①
00
01
10
11
(c)PA1/PA0=10B
→①出力A1/A0=10B
①
00
01
10
11
(d)PA1/PA0=11B
→①出力A1/A0=11B
①
00
01
10
11
第 16 章 外部バスインタフェース
• 8 ビットバス幅
(A) ワードアクセス
(a) PA1/PA0=00B
→①出力A1/A0=00B
② 出力A1/A0=01B
③出力A1/A0=10B
④出力A1/A0=11B
MSB
(b) PA1/PA0=01B
→①出力A1/A0=00B
② 出力A1/A0=01B
③出力A1/A0=10B
④出力A1/A0=11B
(c)PA1/PA0=10B
→①出力A1/A0=00B
②出力A1/A0=01B
③出力A1/A0=10B
④出力A1/A0=11B
(d)PA1/PA0=11B
→①出力A1/A0=00B
② 出力A1/A0=01B
③出力A1/A0=10B
④出力A1/A0=11B
LSB
①
00
①
00
①
00
①
00
②
01
②
01
②
01
②
01
③
10
③
10
③
10
③
10
④
11
④
11
④
11
④
11
8ビット
(B) ハーフワードアクセス
(a) PA1/PA0=00B
(b) PA1/PA0=01B
→①出力A1/A0=00B
②出力A1/A0=01B
→①出力A1/A0=00B
②出力A1/A0=01B
(c)PA1/PA0=10B
→①出力A1/A0=10B
②出力A1/A0=11B
(d)PA1/PA0=11B
→①出力A1/A0=10B
②出力A1/A0=11B
①
00
①
00
00
00
②
01
②
01
01
01
10
10
①
10
①
10
11
11
②
11
②
11
(C) バイトアクセス
(a) PA1/PA0=00B
(b) PA1/PA0=01B
→①出力A1/A0=00B
①
→①出力A1/A0=01B
00
01
①
(c)PA1/PA0=10B
→①出力A1/A0=10B
(d)PA1/PA0=11B
→①出力A1/A0=11B
00
00
00
01
01
01
10
10
10
10
11
11
①
11
①
11
281
第 16 章 外部バスインタフェース
● 外部との接続例
図 16.3-1 に MB91245/S シリーズと外部装置との接続の例を示します。
図 16.3-1 外部との接続例
MB91245/Sシリーズ
D08
WR0X
D00
WR1X
~
D07
~
D15
*:8ビットデバイスの場合は、MB91245/S
シリーズのMSB側のデータバスを使用します。
0
1
0
D15 D08D07 D00
16ビットデバイス*
D07 D00
8ビットデバイス*
("0"/"1" アドレス下位1ビット)
■ 外部アクセス
(a) ワード (32 ビット ) アクセス
ビッグエンディアンモード
内部レジスタ 外部端子
アドレス: "0"
D31
"2"
D15
AA
16 ビット
バス幅
制御端子
BB
AA CC
WR0X
BB DD
WR1X
D00
CC
-
-
-
DD
-
-
-
①
②
D00
内部レジスタ
外部端子
アドレス: "0"
"1"
制御端子
"2"
"3"
D15
D31
AA BB CC DD
WR0X
BB
- - - -
-
CC
- - - -
-
DD
- - - -
-
AA
D00
8 ビット
バス幅
D00
①
282
②
③
④
第 16 章 外部バスインタフェース
(b) ハーフワード (16 ビット ) アクセス
ビッグエンディアンモード
内部レジスタ 外部端子
制御端子
アドレス: "0"
D31
D15
AA
WR0X
BB
WR1X
D00
AA
-
-
BB
-
-
D00
16 ビット
バス幅
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"2"
D15
D00
CC
WR0X
DD
WR1X
CC
-
-
DD
-
-
D00
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"0" "1"
D15
AA BB
WR0X
D08
-
-
-
AA
-
-
-
BB
-
-
-
①
②
D00
8 ビット
バス幅
内部レジスタ 外部端子
アドレス:
D31
制御端子
"2" "3"
D15
CC DD
WR0X
D08
-
-
-
CC
-
-
-
DD
-
-
-
①
②
D00
283
第 16 章 外部バスインタフェース
(c) バイト (8 ビット ) アクセス
ビッグエンディアンモード
内部レジスタ 外部端子
制御端子
アドレス: "0"
D31
D15
AA
WR0X
-
D00
-
-
AA
D00
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"1"
D15
-
BB
WR1X
D00
-
-
BB
D00
16 ビット
バス幅
①
内部レジスタ 外部端子
制御端子
アドレス: "2"
D31
D15
CC
WR0X
-
D00
-
-
CC
D00
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"3"
D15
-
DD
WR1X
D00
-
-
DD
D00
①
284
第 16 章 外部バスインタフェース
ビッグエンディアンモード
内部レジスタ 外部端子
制御端子
アドレス: "0"
D31
D15
AA
WR0X
D08
-
-
-
AA
D00
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"1"
D15
BB
WR0X
D08
-
-
-
BB
D00
8 ビット
バス幅
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"2"
D15
CC
WR0X
D08
-
-
-
CC
D00
①
内部レジスタ 外部端子
アドレス:
D31
制御端子
"3"
D15
DD
WR0X
D08
-
-
-
DD
D00
①
285
第 16 章 外部バスインタフェース
16.4
外部バスインタフェースの通常バスインタフェース
通常バスインタフェースでは , リードアクセス / ライトアクセスともに 2 クロックサ
イクルが基本バスサイクルになります。
■ 通常バスインタフェース
通常バスインタフェースにおける以下の動作について , タイミングチャートを示して
説明します。
• 基本タイミング ( アクセスが連続する場合 )
• WRnX +バイト制御タイプ
• リード→ライトタイミング
• ライト→ライトタイミング
• 自動ウェイトタイミング
• 外部ウェイトタイミング
• CSnX 遅延設定
• CSnX → RDX/WRX セットアップ , RDX/WRnX → CSnX ホールド設定
■ 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H)
図 16.4-1 基本タイミング ( アクセスが連続する場合 ) (TYP[3:0] = 0000B, AWR = 0008H)
SYSCLK
A[15:0]
#2
#1
ASX
CSnX
RDX
リード
D[15:0]
#2
#1
WRnX
ライト
D[15:0]
#1
#2
• ASX は , バスアクセス開始サイクルに 1 サイクル有効にします。
• A[15:0] は , ワード / ハーフワード / バイト アクセスの先頭バイト位置のアドレスを
バスアクセス開始サイクルからバスアクセス終了サイクルまで出力します。
286
第 16 章 外部バスインタフェース
• CS0X ∼ CS3X は , AWR0 ∼ AWR3 レジスタの W02 ビットが "0" のときは , ASX と
同じタイミングで有効にし , 連続するアクセスがあるときは , CS0X ∼ CS3X を無効
にしません。AWR レジスタの W00 ビットが "0" の場合はバスサイクル終了後に
CS0X ∼ CS3X を無効にし , W00 ビットが "1" の場合はバスアクセス終了の 1 サイク
ル後に無効にします。
• RDX, WR0X, WR1X は , バスアクセス第 2 サイクルから有効にします。AWR レジス
タ W14 ∼ W12 ビットのウェイトサイクルを挿入した後に無効にします。RDX,
WR0X, WR1X を有効にするタイミングは AWR レジスタ W01 ビットを "1" に設定
することにより 1 サイクル遅らせることができます。ただし , WR0X, WR1X は内部
状態により W01 ビットを "0" に設定した場合も第二サイクルより遅れることがあり
ます。
• リードアクセスの場合 , RDX 有効後 , ウェイトサイクルが終了したサイクルの
SYSCLK の立上りで D[15:0] を取り込みます。
• ライトアクセスの場合 , WR0X, WR1X を有効にしたタイミングから D[15:0] にデー
タを出力します。
■ リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H)
図 16.4-2 リード → ライトタイミング (TYP[3:0]=0000B, AWR=0048H)
リード
アイドル
ライト
SYSCLK
A[23:0]
ASX
CSnX
RDX
WRnX
D[31:16]
• AWR レジスタ W06 ビットの設定により , 0 から 1 サイクルまでのアイドルサイク
ル挿入が可能です。
• リード側の CS 領域の設定が有効になります。
• リードアクセスの次のアクセスがライトアクセスまたは別の領域へのアクセスで
ある場合 , このアイドルサイクルを挿入します。
287
第 16 章 外部バスインタフェース
■ ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H)
図 16.4-3 ライト → ライトタイミング (TYP[3:0]=0000B, AWR=0018H)
ライト
ライトリカバリ
ライト
SYSCLK
A[23:0]
ASX
CSnX
WRnX
D[31:16]
• AWR レジスタ W04 ビットの設定により , 0 から 1 サイクルまでのライトリカバリ
サイクルを挿入可能です。
• すべてのライトサイクル後に , リカバリサイクルが発生します。
• 設定したバス幅以上のアクセスによってライトアクセスが分割された場合もライ
トリカバリサイクルは発生します。
288
第 16 章 外部バスインタフェース
■ 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H)
図 16.4-4 自動ウェイトタイミング (TYP[3:0]=0000B, AWR=2008H)
基本サイクル
ウェイトサイクル
SYSCLK
A[23:0]
ASX
CSnX
RDX
リード
D[31:16]
WRnX
ライト
D[31:16]
• AWR レジスタ W14 ∼ W12 ビット ( ファーストウェイトサイクル ) の設定により自
動ウェイトサイクルを 0 ∼ 7 まで設定可能です。
• 上図では , 自動ウェイトサイクルを 2 サイクル挿入し , 合計 4 サイクルのアクセス
となっています。自動ウェイトを設定した場合 , バスサイクルは最小で 2 サイクル
+( ファーストウェイトサイクル ) となります。ライトの場合は内部状態によりさら
に長くなることがあります。
289
第 16 章 外部バスインタフェース
■ 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H)
図 16.4-5 外部ウェイトタイミング (TYP[3:0]=0001B, AWR=2008H)
基本サイクル
自動ウェイト2サイクル
RDYによる
ウェイトサイクル
SYSCLK
A[23:0]
ASX
CSnX
RDX
リード
D[31:16]
WRnX
ライト
D[31:16]
RDY
解除
ウェイト
ACR レジスタ TYP0 ビットを "1" に設定し , 外部 RDY 入力端子を有効にすることによ
り外部ウェイトサイクルを挿入可能です。
上図において , 自動ウェイトサイクルによるウェイトが有効であるため , RDY 端子の
斜線部分は無効になります。自動ウェイトサイクルの最後のサイクル以降から , RDY
入力端子の値を判定します。また , いったんウェイトサイクルを終了した後は , 次のア
クセスサイクルの開始まで , RDY 入力端子の値は無効になります。
290
第 16 章 外部バスインタフェース
■ CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH)
図 16.4-6 CSX 遅延設定 (TYP[3:0]=0000B, AWR=000CH)
アクセスサイクル
アクセスサイクル
SYSCLK
A[23:0]
ASX
CSnX
RDX
リード
D[31:16]
WRnX
ライト
D[31:16]
W02 ビットが "1" のときは ASX アサートの次のサイクルからアサートし , 連続するア
クセスがある場合ネゲート期間を挿入します。
291
第 16 章 外部バスインタフェース
■ CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定
(TYP[3:0]=0000B, AWR=000BH)
図 16.4-7 CSX → RDX/WRX セットアップ・RDX/WRnX → CSX ホールド設定
(TYP[3:0]=0000B, AWR=000BH)
アクセスサイクル
SYSCLK
A[23:0]
ASX
CSnX
CSX->RDX/WRX
Delay
RDX/WRX->CSX
Delay
RDX
リード
D[31:16]
WRnX
ライト
D[31:16]
• AWR レジスタ W01 ビットを "1" に設定することにより , CSX → RDX/WRnX セッ
トアップディレイを設定可能です。チップセレクトアサート後 , リード / ライトス
トローブまでの期間を延長する場合に設定します。
• AWR レジスタ W00 ビットを "1" に設定することにより , RDX/WRnX → CSX ホー
ルドディレイを設定可能です。リード / ライトストローブネゲート後 , チップセレ
クトネゲートまでの期間を延長する場合に設定します。
• CSX → RDX/WRnX セットアップディレイ (W01 ビット ) と RDX/WRnX → CSX ホー
ルドディレイ (W00 ビット ) は独立に設定可能です。
• 同一チップセレクト領域内で , チップセレクトをネゲートしないまま連続してアク
セスする場合は , CSX → RDX/WRnX セットアップディレイ , RDX/WRnX → CSX
ホールドディレイともに挿入されません。
• アドレス確定からのセットアップサイクルおよびアドレス確定のホールドサイク
ルが必要な場合は , アドレス→ CSX 遅延設定 (AWR レジスタ W02 ビット ) を "1" に
設定してください。
292
第 16 章 外部バスインタフェース
16.5
外部バスインタフェースのレジスタ設定手順
外部バスインタフェースのレジスタの設定手順を説明します。
■ レジスタ設定手順
外部バスインタフェースに関する設定手順は , 以下の原則に従ってください。
• レジスタの内容を書き換える場合は , 必ず CSER レジスタの対応する領域を使用し
ない設定 ("0") にして行ってください。
"1" のまま設定を変更した場合 , その前後のアクセスは保証されません。
• レジスタの変更は以下の手順で行ってください。
① 該当領域に対応する CSER のビットを "0" に設定してください。
② ASR と ACR をワードアクセスで同時に設定してください。ASR, ACR をハーフ
ワードでアクセスする場合には ASR 設定後 ACR を設定してください。
③ AWR を設定してください。
④ 該当領域に対する CSER のビットを設定してください。
• CS0X領域はリセット解除後から有効になっており, プログラム領域として使用して
いる場合は CSER を "1" のままで書き換える必要がありますが , この場合は内部ク
ロックが低い初期状態で上記② , ③の設定を行ってください。その後 , クロックを
高速クロックに切り換えてください。
293
第 16 章 外部バスインタフェース
16.6
外部バスインタフェース使用上の注意
外部バスインタフェースの使用上の注意を説明します。
■ 使用上の注意
WR0X, WR1X をライトストローブとして使用する領域 (TYP[3:0] = 0X0XB) と WRX を
ライトストローブとして使用する領域 (TYP[3:0] = 0X1XB) とを混在させる設定にした
場合 , 使用するすべての領域にて , 必ず以下の設定を行ってください。
・ リード→ライトアイドルサイクルを最低 1 サイクル以上設定してください
(AWR W06 = 1)。
・ ライトリカバリサイクルを最低 1 サイクル以上設定してください
(AWR W04 = 1)。
ただし ,WR0X,WR1X をライトストローブとして使用する領域 (TYP[3:0]= 0X0XB)
で WR0X, WR1X が無効な (ROM のみ接続されている ) 場合は , 上記制限はありま
せん。また , WRX をライトストローブとして使用する領域 (TYP[3:0] = 0X1XB) の
設定でアドレス→ RDX/WRX セットアップサイクル (W01 = 1), RDX/WRX →アド
レスホールドサイクル(W00 = 1)をともに設定している場合も上記制限はありませ
ん。
<制限理由>
TYPE[3:0] = 0X1XB と設定して WRX をライトストローブとして使用する領域では ,
WR0X/WR1X 端子が , バイトイネーブル (UBX/LBX) 出力となります。この場合 , バ
イトイネーブル出力はアドレスおよび CSX 出力と同一のタイミングで , 各バイト位
置のイネーブル信号を出力します。
このため , WR0X/WR1X 端子を非同期ライトストローブとして使用している領域へ
のアクセスが前後にあった場合 , そちらの領域において , CSX と WR0X/WR1X 間の
交流規格を満足できなくなり , 誤書込みが発生する可能性があります。
リード→ライトアイドルサイクル, およびライトリカバリサイクルを設定した場合,
これらのサイクルでは , CSX はアサートされません ("H" レベルを維持 ) ので , 上記
交流規格を満足することができます。
WR0X/WR1X 端子を非同期ライトストローブとして使用している領域にて , CSX と
WR0X/WR1X 間の交流規格 ( セットアップおよびホールド ) に対し余裕がある場合
は , 本制限は必要ありません。
294
第 17 章
DMAC
(DMA コントローラ )
DMAC の概要 , レジスタの構成 / 機能および動作に
ついて説明します。
17.1
DMAC の概要
17.2
DMAC のレジスタ詳細説明
17.3
DMAC の動作説明
17.4
DMAC の動作フロー
17.5
DMAC のデータパス
295
第 17 章 DMAC (DMA コントローラ )
17.1
DMAC の概要
DMAC は , DMA(Direct Memory Access) 転送を実現するためのモジュールです。
DMA 転送により , CPU を介さずに各種データ転送を高速に行うことが可能となり ,
システムのパフォーマンスを増加させます。
■ ハードウェア構成
本モジュールは , 主に以下の回路およびレジスタより構成されます。
• 独立した DMA チャネル× 5 チャネル
• 5 チャネル独立アクセス制御回路
• 20 ビット アドレスレジスタ ( リロード指定可能:ch.0 ∼ ch.3)
• 24 ビットアドレスレジスタ ( リロード指定可能:ch.4)
• 16 ビット 転送回数レジスタ ( リロード指定可能:各チャネル 1 本 )
• 4 ビットブロック回数レジスタ ( 各チャネル 1 本 )
• 2 サイクル転送
■ 主要機能
本モジュールによるデータ転送には以下の機能があります。
複数チャネルの独立したデータ転送が可能 (5 チャネル )
• 優先順位 (ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
• ch.0 - ch.1 間にて順位回転が可能
• DMAC 起動要因
- 内蔵周辺要求 ( 割込み要求を共用 --- 外部割込みを含む )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- バースト転送 / ステップ転送 / ブロック転送
- アドレッシングモード 20 ビット (24 ビット ) アドレス指定 ( 増加 / 減少 / 固定 )
( アドレス増減幅は± 1, 2, 4 固定 )
- データの種類バイト / ハーフワード / ワード長
- シングルショット / リロード選択可能
296
第 17 章 DMAC (DMA コントローラ )
■ DMAC のレジスタ概要
図 17.1-1 DMAC のレジスタ概要
ch.0 コントロール / ステータスレジスタ A
bit 31
DMACA0 00000200H
ch.0 コントロール / ステータスレジスタ B
DMACB0 00000204H
ch.1 コントロール / ステータスレジスタ A
DMACA1 00000208H
ch.1 コントロール / ステータスレジスタ B
DMACB1 0000020CH
ch.2 コントロール / ステータスレジスタ A
DMACA2 00000210H
ch.2 コントロール / ステータスレジスタ B
DMACB2 00000214H
ch.3 コントロール / ステータスレジスタ A
DMACA3 00000218H
ch.3 コントロール / ステータスレジスタ B
DMACB3 0000021CH
ch.4 コントロール / ステータスレジスタ A
DMACA4 00000220H
ch.4 コントロール / ステータスレジスタ B
DMACB4 00000224H
全体制御レジスタ
DMACR
ch.0 転送元アドレスレジスタ
bit 31
DMASA0 00001000H
ch.0 転送先アドレスレジスタ
DMADA0 00001004H
ch.1 転送元アドレスレジスタ
DMASA1 00001008H
ch.1 転送先アドレスレジスタ
DMADA1 0000100CH
ch.2 転送元アドレスレジスタ
DMASA2 00001010H
ch.2 転送先アドレスレジスタ
DMADA2 00001014H
ch.3 転送元アドレスレジスタ
DMASA3 00001018H
ch.3 転送先アドレスレジスタ
DMADA3 0000101CH
ch.4 転送元アドレスレジスタ
bit 31
DMASA4 00001020H
ch.4 転送先アドレスレジスタ
DMADA4 00001024H
24
23
16
15
8
7
0
00000240H
20 19
24 23
0
0
297
第 17 章 DMAC (DMA コントローラ )
■ DMAC のブロックダイヤグラム
図 17.1-2 DMAC のブロックダイヤグラム
カウンタ
バスコントローラへ
DMA転送要求
バッファ
ライトパック
セレクタ
DMA起動
要因選択回路
&
要求受付け制御
DTC 2段レジスタ
ペリフェラル起動要求/停止入力
DTCR
カウンタ
DSS[2:0]
バッファ
リード
ライト
リード/ライト制御
優先度回路
割込みコントローラへ
周辺割込みクリア
BLK レジスタ
TYPE.MOD,WS
セレクタ
セレクタ
ライトバック
298
DMASA 2段レジスタ
SADM,SASZ[7:0] SADR
DMADA 2段レジスタ
DADM,DASZ[7:0] DADR
X-bus
バス制御部
カウンタバッファ
DMAコントロール
ライトバック
カウンタバッファ
アクセス
アドレス
アドレスカウンタ
バス制御部
状態遷移回路
バスコント
ローラへ
IRQ[4:0]
ERIR,EDIR
セレクタ
MCLREQ
第 17 章 DMAC (DMA コントローラ )
17.2
DMAC のレジスタ詳細説明
DMA コントローラで使用するレジスタの設定時の注意事項とレジスタの詳細につい
て説明します。
■ レジスタ設定時の注意
本 DMAC の設定をする場合 , DMA が停止しているときに行う必要があるビットがあ
ります。動作中 ( 転送中 ) に設定した場合には正常な動作は保証されません。
ビット名の後ろに *(アスタリスクマーク)が記述されているビットは , DMAC 転送中
に設定すると動作に影響を与えます。このビットの書換えは , DMAC 転送停止中 ( 起
動禁止状態または一時停止状態 ) に行ってください。
DMA 転送の起動禁止状態 (DMACR:DMAE=0 または DMACA:DENB=0 のとき ) で設定
した場合は , 起動許可後に設定は有効になります。
DMA 転送の一時停止状態 (DMACR:DMAH[3:0] ≠ 0000B または DMACA:PAUS = 1 の
とき ) で設定した場合は , 一時停止解除後に設定は有効になります。
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ A
[DMACA0 ∼ DMACA4]
DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
bit 31
30
29
28
27
26
25
24
23
IS[4:0]
アドレス: DENB PAUS STRG
ch.0 000200H
ch.1 000208H
ch.2 000210H
ch.3 000218H
ch.4 000220H
22
21
20
19
18
Reserved
17
16
BLK[3:0]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 15
14
13
11
11
10
9
8
7
6
5
4
3
2
1
0
DTC[15:0]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:00000000 0000XXXX XXXXXXXX XXXXXXXXB)
[bit31] DENB (Dma ENaBle) :DMA 動作許可ビット
各転送チャネルに対応し , DMA 転送の起動許可 / 禁止を行います。
起動されたチャネルは , 転送要求が発生し受け付けられると DMA 転送を開始しま
す。起動許可されていないチャネルに対して発生した転送要求は , すべて無効とな
ります。起動されたチャネルの転送が指定回数分すべて終了した場合 , 本ビットは
"0" になり , 転送は停止します。
本ビットに "0" を書き込むと強制停止しますが , 必ず PAUS ビット [bit30:DMACA]
で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) してください。一時停止
299
第 17 章 DMAC (DMA コントローラ )
しないで強制停止した場合は DMA は停止しますが転送データは保証されません。
停止の確認は DSS[2:0] ビット (bit18 ∼ bit16:DMACB) で行ってください。
DENB
機能
0
対応チャネル DMA 動作禁止 ( 初期値 )
1
対応チャネル DMA 動作許可
• リセット時 , 停止要求が受け付けられた場合:"0" に初期化されます。
• 読出しおよび書込みが可能です。
• DMAC 全体制御レジスタ DMACR の bit15:DMAE ビットにより , 全チャネルの動
作が禁止されている場合 , 本ビットへの "1" 書込みは無効となり , 停止状態を維
持します。また , 本ビットにより動作が許可されている状態にて前記ビットによ
り動作が禁止された場合 , 本ビットは "0" となり , 転送は中断します ( 強制停止 )。
[bit30] PAUS (PAUSe):一時停止指示
対応するチャネルの DMA 転送の一時停止制御を行います。本ビットがセットされ
ると , 再び本ビットがクリアされるまでの間は DMA 転送を行いません (DMA が停
止中は DSS ビットが "1XXB" になります )。
起動前に本ビットをセットしてから起動した場合 , 一時停止状態のままとなりま
す。
本ビットがセットされている間に新たに発生した転送要求は受け付けられますが ,
本ビットをクリアしないと転送は開始しません (「17.3.2 転送要求の設定」を参照 )。
PAUS
機能
0
対応チャネル DMA 動作許可 ( 初期値 )
1
対応チャネル DMA 動作一時停止
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit29] STRG (Software TRiGger) :転送要求
対応するチャネルの DMA 転送要求を生成します。本ビットに "1" を書き込むと , レ
ジスタへの書込みが終了した時点より転送要求が発生し , 対応チャネルの転送を開
始します。
ただし , 対応するチャネルが起動されていない場合は , 本ビットへの操作は無効と
なります。
300
第 17 章 DMAC (DMA コントローラ )
<注意事項>
DMAE ビットの書込みによる起動と同時に本ビットによる転送要求が同時の場合 , 転送要
求は有効となり転送を開始します。 また , PAUS ビットへの "1" 書込みと同時である場合 ,
転送要求は有効となりますが , PAUS ビットを "0" に戻すまで DMA 転送は開始しません。
STRG
機能
0
無効
1
DMA 起動要求
• リセット時:"0" に初期化されます。
• 読出し値は常に "0" となります。
• 書込み値は "1" のみ有効で , "0" は動作に影響を与えません。
301
第 17 章 DMAC (DMA コントローラ )
[bit28 ∼ bit24] IS4 ∼ IS0 (Input Select) *:転送要因選択
転送要求の要因を以下のように選択します。ただし , STRG ビット機能によるソフ
トウェア転送要求は本設定にかかわらず有効となります。
IS
機能
00000B
ソフトウェア転送要求のみ
00001B
↓
01111B
設定禁止
10000B
UART0( 受信完了 )
10001B
LIN-UART0( 受信完了 )
10010B
LIN-UART1( 受信完了 )
10011B
UART0( 送信完了 )
10100B
LIN-UART0( 送信完了 )
10101B
LIN-UART1( 送信完了 )
10110B
外部割込み 0
10111B
外部割込み 1
11000B
リロードタイマ 0
11001B
リロードタイマ 1
11010B
リロードタイマ 2
なし
−
11100B
−
11101B
−
11111B
あり
なし
11011B
11110B
転送停止要求
A/D コンバータ
−
• リセット時:"00000B" に初期化されます。
• 読出しおよび書込みが可能です。
<注意事項>
周辺機能の割込みによる DMA 起動を設定した場合 (IS=1XXXXB), 選択した機能は , ICR レ
ジスタで割込みを禁止状態にしてください。
また , 周辺機能の割込みによる DMA 起動を設定した状態で , ソフトウェア転送要求によ
り DMA 転送を起動すると , 転送終了後 , 該当する周辺に対して要因クリアを行います。こ
のため , 本来の転送要求をクリアしてしまう可能性がありますので , 周辺機能の割込みに
よる DMA 起動を設定した状態では , ソフトウェア転送要求による起動を行わないでくだ
さい。
302
第 17 章 DMAC (DMA コントローラ )
[bit23 ∼ bit20] 未使用ビット
読出し値は "0000B" 固定です。書込みは無効となります。
[bit19 ∼ bit16] BLK3 ∼ BLK0 (BLocK size) :ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。 本ビットに
設定した値が一回の転送単位におけるワード数 ( 正確には , データ幅設定の繰返し
回数 ) となります。ブロック転送を行わない場合は "01H" ( サイズ 1) を設定してく
ださい。
BLK
XXXXB
機能
対応チャネルのブロックサイズ指定
• リセット時:初期化されません。
• 読出しおよび書込みが可能です。
• 全ビット "0" を指定した場合 , ブロックサイズは 16 ワードとなります。
• 読出し時は , 常にブロックサイズ ( リロード値 ) が読み出されます。
[bit15 ∼ bit0] DTC15 ∼ DTC0 (Dma Terminal Count register) *:転送回数レジスタ
転送回数を格納するレジスタです。各レジスタは 16 ビット長で構成されています。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送回数レジスタ
のリロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設
定値をレジスタに戻します。
DTC
XXXXH
機能
対応チャネルの転送回数指定
DMA 転送が起動すると , 本レジスタのデータを DMA 専用転送回数カウンタのカウ
ンタバッファに格納して 1 転送単位ごとに− 1 カウントします ( 減算 )。DMA の転
送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は終了
します。よって , DMA 動作中の転送回数指定値を読み出すことはできません。
• リセット時:初期化されません。
• 読出しおよび書込みが可能です。DTC のアクセスは , 必ずハーフワード長または
ワード長にてアクセスしてください。
• 読出し時の値は , カウント値となります。リロード値の読出しはできません。
303
第 17 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 コントロール / ステータスレジスタ B [DMACB0 ∼ DMACB4]
DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
bit 31
アドレス:
ch.0 000202H
ch.1 00020CH
ch.2 000214H
ch.3 00021CH
ch.4 000224H
30
29
TYPE[1:0]
28
MOD[1:0]
27
26
WS[1:0]
25
24
23
22
21
20
19
18
SADM DADM DTCR SADR DADR ERIE EDIE
17
16
DSS[2:0]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 15
14
13
11
11
10
9
8
7
6
5
SASZ[7:0]
4
3
2
1
0
DASZ[7:0]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:00000000 00000000 XXXXXXXX XXXXXXXXB)
[bit31, bit30] TYPE (TYPE) *:転送タイプ設定
対応チャネルの動作タイプを以下のように設定します。
2 サイクル転送モード:転送元アドレス (DMASA) と転送先アドレス (DMADA) を
設定して読出し動作と書込み動作を転送回数分繰り返して
転送するモードです。
TYPE
機能
00B
2 サイクル転送 ( 初期値 )
01B
設定禁止
10B
設定禁止
11B
設定禁止
• リセット時:"00B" に初期化されます。
• 読出しおよび書込みが可能です。
• 必ず "00B" に設定してください。
[bit29, bit28] MOD1, MOD0 (MODe) * :転送モード設定
対応チャネルの動作モードを以下のように設定します。
MOD
機能
00B
ブロック / ステップ転送モード ( 初期値 )
01B
バースト転送モード
10B
設定禁止
11B
設定禁止
• リセット時:"00B" に初期化されます。
• 読出しおよび書込みが可能です。
304
第 17 章 DMAC (DMA コントローラ )
[bit27, bit26] WS1, WS0 (Word Size) :転送データ幅選択
対応チャネルの転送データ幅を選択します。本レジスタに設定したデータ幅単位で
指定回数分の転送を行います。
WS
機能
00B
バイト単位で転送 ( 初期値 )
01B
ハーフワード単位で転送
10B
ワード幅単位で転送
11B
設定禁止
• リセット時:"00B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit25] SADM (Source-ADdr. count-Mode select) *:転送元アドレスカウント
モード指定
対応するチャネルの転送元アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送元アドレスカウント幅 (SASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMASA) に書き込まれます。
したがって , DMA 転送が終了されるまで転送元アドレスレジスタは更新されませ
ん。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
SADM
機能
0
転送元アドレスは増加します。( 初期値 )
1
転送元アドレスは減少します。
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
305
第 17 章 DMAC (DMA コントローラ )
[bit24] DADM (Destination-ADdr. Count-Mode select) *:転送先アドレスカウント
モード指定
対応するチャネルの転送先アドレスの 1 転送ごとのアドレス処理を指定します。
アドレス増加 / 減少は , 設定された転送先アドレスカウント幅 (DASZ) に従って , 1
転送後に加算 / 減算され転送終了時に次回アクセス用アドレスが対応するアドレス
レジスタ (DMADA) に書き込まれます。
よって , DMA 転送が終了されるまで転送先アドレスレジスタは更新されません。
アドレス固定にする場合は , 本ビットを "0" または "1" に指定してアドレスカウン
ト幅 (SASZ, DASZ) を "0" としてください。
DADM
機能
0
転送先アドレスは増加します。( 初期値 )
1
転送先アドレスは減少します。
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit23] DTCR (DTC-reg. Reload)*:転送回数レジスタリロード指定
対応するチャネルの転送回数レジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に回数レジスタ値
を初期設定値に戻して停止し , 転送要求 (STRG または IS 設定による起動要求 ) 待
ち状態になります ( 本ビットが "1" の場合 , DENB ビットはクリアされません )。
DENB = 0, または DMAE = 0 を設定すると強制停止します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , DENB ビットはクリアされます。
DTCR
機能
0
転送回数レジスタリロードを禁止 ( 初期値 )
1
転送回数レジスタリロードを許可
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
306
第 17 章 DMAC (DMA コントローラ )
[bit22] SADR (Source-ADdr.-reg. Reload) *:転送元アドレスレジスタリロード指定
対応するチャネルの転送元アドレスレジスタのリロード機能を制御します。
本ビットによりリロード動作が許可されている場合 , 転送終了後に転送元アドレス
レジスタ値を初期設定値に戻します。
回数カウンタのリロード動作を禁止している場合は , アドレスレジスタにリロード
指定をしていても , 転送終了にて停止するシングルショット動作となります。この
場合 , アドレスレジスタ値は初期設定値がリロードされた状態で停止します。
本ビットによりリロード動作が禁止されている場合は , 転送終了時のアドレスレジ
スタ値は最終アドレスの次のアクセスアドレスとなります ( アドレス増加を指定し
ている場合は , 増加したアドレスとなります )。
SADR
機能
0
転送元アドレスレジスタリロードを禁止 ( 初期値 )
1
転送元アドレスレジスタリロードを許可
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[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" に初期化されます。
• 読出しおよび書込みが可能です。
307
第 17 章 DMAC (DMA コントローラ )
[bit19] EDIE (EnD Interrupt Enable) *:終了割込み出力許可
正常終了時の割込み発生を制御します。
EDIE
機能
0
終了割込み要求出力禁止 ( 初期値 )
1
終了割込み要求出力許可
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit18 ∼ bit16] DSS2 ∼ DSS0 (Dma Stop Status)*:転送停止要因表示
対応するチャネルの DMA 転送停止 / 終了の要因を示す 3 ビットのコード ( 終了コー
ド ) を表示します。終了コードの内容は以下のとおりです。
DSS2
機能
割込み発生
0
初期値
なし
1
DMA 一時停止中
(DMAH, PAUS ビット , 割込みなど )
なし
DSS1, DSS0
00B
機能
初期値
01B
なし
−
10B
転送停止要求
11B
正常終了
割込み発生
なし
エラー
終了
転送停止要求は , 周辺回路からの要求を使用した場合のみセットされます。
( 注意事項 )「割込み発生」欄は , 発生可能な割込み要求の種類を示します。
• リセット時:"000B" に初期化されます。
• "000B" を書き込むことにより , クリアされます。
• 読出しおよび書込みが可能ですが , 本ビットへの書込みは "000B" のみ有効とな
ります。
308
第 17 章 DMAC (DMA コントローラ )
[bit15 ∼ bit8] SASZ7 ∼ SASZ0 (Source Addr count SiZe) *:転送元アドレスカウント
サイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減幅を指定します。
本ビットに設定した値が一回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送元アドレスカウントモード (SADM) の指定に従います。
SASZ
機能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時:初期化されません。
• 読出しおよび書込みが可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
[bit7 ∼ bit0] DASZ7 ∼ DASZ0 (Des Addr count SiZe) *:転送先アドレスカウント
サイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA) の増減幅を指定します。
本ビットに設定した値が一回の転送単位におけるアドレス増減幅となります。アド
レスの増減は転送先アドレスカウントモード (DADM) の指定に従います。
DASZ
機能
00H
アドレス固定
01H
バイト単位で転送
02H
ハーフワード単位で転送
04H
ワード単位で転送
上記以外
設定禁止
• リセット時:初期化されません。
• 読出しおよび書込みが可能です。
• アドレス固定以外に設定する場合 , 転送データ幅 (WS) と同じ転送単位を設定し
てください。
309
第 17 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 転送元 / 転送先アドレス設定レジスタ
[DMASA0 ∼ DMASA4/DMADA0 ∼ DMADA4]
DMAC各チャネルの動作制御を行うレジスタで, チャネルごとに独立して存在します。
各ビット機能は以下に示すとおりです。
● ch.0 ∼ ch.3
bit 31
30
29
28
27
26
25
24
23
22
21
20
アドレス:
ch.0 001000H
ch.1 001008H
ch.2 001010H
ch.3 001018H
19
18
17
16
DMASA0 ∼ DMASA3
[19:16]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 15 14 13 11 11 10
9
8
7
6
5
4
3
2
1
0
リード / ライト
DMASA0 ∼ DMASA3 [15:0]
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB)
bit 31
30
29
28
27
26
25
24
23
22
21
20
アドレス:
ch.0 001004H
ch.1 00100CH
ch.2 001014H
ch.3 00101CH
18
17
16
DMADA0 ∼ DMADA3
[19:16]
bit 15
リード / ライト
19
14
13
11
11
10
9
8
7
6
5
4
3
2
1
0
DMADA0 ∼ DMADA3 [15:0]
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB)
● ch.4
bit 31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
DMASA4 [23:16]
アドレス:
ch.4 001020H
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 15 14 13 11 11 10
9
8
7
6
5
4
3
2
1
0
リード / ライト
DMASA4 [15:0]
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB)
bit 31
30
29
28
27
26
25
24
23
22
20
19
18
17
16
1
0
DMADA4 [23:16]
アドレス:
ch.4 001024H
bit 15
リード / ライト
21
14
13
11
11
10
9
8
7
6
5
4
3
2
DMADA4 [15:0]
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXXB)
310
第 17 章 DMAC (DMA コントローラ )
転送元 / 転送先アドレスを格納するレジスタ群です。ch.0 ∼ ch.3 は 20 ビット長 , ch.4
は 24 ビット長で構成されています。
[bit31 ∼ bit0] DMASA (DMA Source Addr) *:転送元アドレス設定
転送元アドレスの設定を行います。
[bit31 ∼ bit0] DMADA (DMA Destination Addr) *:転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が起動すると , 本レジスタのデータを DMA 専用アドレスカウンタのカウ
ンタバッファに格納して 1 転送ごとに設定に従いアドレスカウントします。DMA
の転送終了時にカウンタバッファの内容を本レジスタにライトバックして DMA は
終了します。よって , DMA 動作中のアドレスカウンタ値を読み出すことはできませ
ん。
すべてのレジスタは , 専用のリロードレジスタを持っています。転送元 / 転送先ア
ドレスレジスタのリロードを許可しているチャネルに使用した場合 , 転送終了時に
自動的に初期設定値をレジスタに戻します。この際 , ほかのアドレスレジスタには
影響を与えません。
• リセット時:初期化されません。
• 読出しおよび書込みが可能です。本レジスタは , 必ず 32 ビットデータでアクセ
スしてください。
• 読出し時の値は , 転送中は転送前のアドレス値 , 転送終了時には次のアクセスア
ドレス値となります。リロード値の読出しはできません。したがって , 転送アド
レスをリアルタイムで読出しすることはできません。
• 存在しない上位ビットには , "0" を設定してください。
<注意事項>
本レジスタにて DMAC 自身のレジスタを設定しないでください。DMAC 自身のレジスタ
に DMA 転送を行うことはできません。
311
第 17 章 DMAC (DMA コントローラ )
■ DMAC-ch.0, ch.1, ch.2, ch.3, ch.4 DMAC 全体制御レジスタ [DMACR]
DMAC5チャネル分全体の動作制御を行うレジスタです。本レジスタは必ずバイト長で
アクセスしてください。
各ビット機能は以下に示すとおりです。
bit 31
アドレス:
000240H
DMAE
30
29
28
-
-
PM01
27
26
25
24
23
22
21
20
19
18
17
16
-
-
-
-
-
-
-
-
DMAH[3:0]
リード / ライト R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 15 14 13 11 11 10
9
8
7
6
5
4
3
2
1
0
リード / ライト
R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
( 初期値:0XX00000 XXXXXXXX XXXXXXXX XXXXXXXXB)
[bit31] DMAE (DMA Enable) :DMA 動作許可
DMA 全チャネルの動作制御を行います。
本ビットにより DMA 動作が禁止されている場合 , 各チャネルの起動 / 停止の設定
や動作状態にかかわらず , 全チャネルの転送動作が禁止されます。
転送中であったチャネルは要求を取り下げ , ブロック境界にて転送を停止します。
禁止状態にて , 各チャネルに対して行われる起動操作は , すべて無効となります。
本ビットにより DMA 動作が許可されている場合 , チャネルごとに起動 / 停止操作
が有効となります。本ビットで DMA 動作許可を行ったのみでは , 各チャネルに対
する起動は行われません。
本 ビ ッ ト に "0" を 書 込 み す る と 強 制 停 止 し ま す が , 必 ず DMAH[3:0] ビ ッ ト
(DMACR:bit27 ∼ bit24) で DMA を一時停止状態にしてから強制停止 ("0" 書込み ) し
てください。一時停止しないで強制停止した場合は DMA は停止しますが転送デー
タは保証されません。停止の確認は DSS[2:0] ビット (DMACB:bit18 ∼ bit16) で行っ
てください。
DMAE
機能
0
全チャネル DMA 動作禁止 ( 初期値 )
1
全チャネル DMA 動作許可
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
312
第 17 章 DMAC (DMA コントローラ )
[bit28] PM01 (Priority Mode ch.0, ch.1 robin) :チャネル優先度回転
ch.0, ch.1 の優先度を転送ごとに順位を回転させるときに設定します。
PM01
機能
0
優先順位固定 (ch.0 > ch.1)( 初期値 )
1
優先順位回転 (ch.1 > ch.0)
• リセット時:"0" に初期化されます。
• 読出しおよび書込みが可能です。
[bit27 ∼ bit24] DMAH3 ∼ DMAH0 (DMA Halt) :DMA 一時停止
DMA 全チャネルの一時停止制御を行います。本ビットがセットされると , 再び本
ビットがクリアされるまでの間は , 全チャネルの DMA 転送を行いません。
起動前に本ビットをセットしてから起動した場合 , 全チャネルが一時停止のままと
なります。
本ビットがセットされている間に DMA 転送が許可 (DENB=1) されているチャネル
に発生した転送要求は , すべて有効となり , 本ビットをクリアすることにより転送
を開始します。
DMAH3 ∼ DMAH0
0000B
0000B 以外
機能
全チャネル DMA 動作許可 ( 初期値 )
全チャネル DMA 一時停止
• リセット時:"0000B" に初期化されます。
• 読出しおよび書込みが可能です。
[bit30, bit29, bit23 ∼ bit0] 未使用ビット
読出し値は不定です。
313
第 17 章 DMAC (DMA コントローラ )
17.3
DMAC の動作説明
DMAC の動作概要 , 転送要求設定や転送シーケンスなどの詳細 , 動作中の詳細など
について説明します。
■ DMAC の概要
本ブロックは , FR ファミリに内蔵され , CPU の命令動作を介することなく高速にデー
タ転送を制御する多機能 DMA コントローラです。
314
第 17 章 DMAC (DMA コントローラ )
17.3.1
DMAC の動作
DMAC の動作について説明します。
■ DMAC の主要動作
• 各転送チャネルは , 独立に各種機能を設定します。
• 各チャネルは起動許可後 , 設定した転送要求を検出するまでは転送動作を行いませ
ん。
• 転送要求検出により , バスコントローラに対し DMA 転送要求を出力し , バスコント
ローラの制御によりバス権を取得して転送を開始します。
• 転送はチャネルごとに独立に設定されたモード設定に従ったシーケンスで行われ
ます。
■ 転送モード
DMA の各チャネルは , それぞれの DMACB レジスタの MOD[1:0] ビットで設定された
転送モードに従って転送動作を行います。
● ブロック / ステップ転送
1 回の転送要求で 1 ブロック転送単位のみ転送を行い , その後次の転送要求が受け
付けられるまでは DMA はバスコントローラに対し転送要求を停止します。
1 ブロック転送単位:設定されたブロックサイズ分 (DMACA:BLK[3:0])
● バースト転送
1 回の転送要求で指定転送回数終了まで連続して転送を行います。
指定転送回数:ブロックサイズ分×転送回数分 (DMACA:BLK[3:0] × DMACA:DTC[15:0])
■ 転送タイプ
● 2 サイクル転送 ( 通常転送 )
DMA コントローラの動作は , 読出し動作と書込み動作を 1 つの単位として動作を行
います。
転送元レジスタのアドレスからデータを読み出して転送先レジスタのアドレスへ
データを書込みします。
315
第 17 章 DMAC (DMA コントローラ )
■ 転送アドレス
アドレッシングは , 各チャネル転送元 / 転送先ごとに独立に設定します。
● 2 サイクル転送でのアドレスの指定
あらかじめアドレスを設定してあるレジスタ (DMASA, DMADA) から読み出した値
をアドレスとしてアクセスします。
転送要求を受け付けたら DMA はレジスタからアドレスを一時記憶バッファに格納
して転送を開始します。
1 回の転送 ( アクセス ) ごとに , アドレスカウンタにて次回アクセスアドレスを生成
( 加算 / 減算 / 固定選択可能 ) して , 一時記憶バッファに戻します。この一時記憶バッ
ファの内容は , 1 ブロック転送単位終了ごとにレジスタ (DMASA, DMADA) へライ
トバックされます。
そのため , アドレスレジスタ (DMASA, DMADA) 値は , 1 ブロック転送単位ごとにし
か更新されませんので , 転送中のアドレスをリアルタイムに知ることはできませ
ん。
■ 転送回数と転送終了
● 転送回数
1 ブロック転送単位終了ごとに , 転送回数レジスタをデクリメント (-1) します。
転送回数レジスタが "0" になると指定転送回数終了となり , 終了コードを表示して
停止または再起動します。
転送回数レジスタ値はアドレスレジスタと同様に 1 ブロック転送単位ごとにしか更
新されません。
転送回数レジスタリロード禁止に設定している場合は転送を終了します。許可され
ている場合はレジスタ値を初期化して転送待ち状態になります (DMACB:DTCR)。
● 転送終了
転送終了要因には以下のようなものがあり , 転送終了時は終了コードとして要因が
表示されます (DMACB:DSS[2:0])。
• 指定転送回数の終了 (DMACA:BLK[3:0] × DMACA:DTC[15:0]) →正常終了
• 周辺回路からの転送停止要求の発生 →エラー
• リセットの発生→初期値
各終了要因に対応して , 転送停止要因表示 (DSS) され転送終了割込み / エラー割込
みを発生可能です。
316
第 17 章 DMAC (DMA コントローラ )
転送要求の設定
17.3.2
DMA 転送を起動する転送要求は , 以下の 2 種類があります。
• 内蔵周辺要求
• ソフトウェア要求
ソフトウェア要求については , ほかの要求の設定にかかわらず常に使用することが
できます。
■ 内蔵周辺要求
内蔵周辺回路の割込み発生により , 転送要求を発生します。
チャネルごとに , どの周辺の割込みにより転送要求を発生するかを設定します
(DMACA:IS[4:0]=1XXXXB)。
<注意事項>
転送要求に使用した割込み要求は, CPUへの割込み要求としても見えますので割込みコン
トローラの設定を割込み禁止に設定してください (ICR レジスタ )。
■ ソフトウェア要求
レジスタのトリガビットへの書込みにより転送要求を発生します (DMACA:STRG)。
内蔵周辺要求の転送要求とは独立で , 常に使用することができます。
起動 ( 転送許可 ) と同時にソフトウェア要求を行った場合 , 直後にバスコントロー
ラに対し DMA 転送要求を出力し転送を開始します。
<注意事項>
内蔵周辺要求を設定したチャネルに対してソフトウェア要求を行うと , 転送終了後 , 該当
する周辺に対して要因クリアを行います。このため , 本来の転送要求をクリアしてしまう
可能性がありますので , ソフトウェア要求を行わないでください。
317
第 17 章 DMAC (DMA コントローラ )
17.3.3
転送シーケンス
チャネルごとに , DMA 転送起動後の動作シーケンスなどを決定する転送タイプと転送
モードを独立して設定することができます (DMACB:TYPE[1:0], MOD[1:0] の設定 ) 。
■ 転送シーケンスの選択
レジスタの設定により以下のシーケンスが選択可能です。
• バースト 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
■ バースト 2 サイクル転送
1 回の転送要因にて指定転送回数の転送を続けて行います。2 サイクル転送の場合は転
送元 / 転送先アドレスは ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可能です。
転送要因は , 周辺転送要求 / ソフトウェア転送要求を選択できます。
[ バースト転送の特長 ]
• 転送要求を 1 回受け付けると , 転送回数レジスタが "0" になるまで連続して転送
を行います。
• 転送回数はブロックサイズ分×転送回数分になります
(DMACA:BLK[3:0] × DMACA:DTC[15:0])。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送回数レジスタのリロード機能が有効である場合, 転送終了後より次の転送要
求を受け付けます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合, ブロック
転送単位の境目でチャネルを切り換え, そのチャネルの転送要求がクリアされる
まで復帰しません。
周辺転送要求
バス動作
CPU
転送回数
SA
DA
4
SA
DA
3
SA
DA
2
SA
DA
1
転送終了(内部)
(周辺転送要求,ブロック数=1,転送回数=4のときのバースト転送例)
318
CPU
0
第 17 章 DMAC (DMA コントローラ )
■ ステップ / ブロック転送 2 サイクル転送
ステップ / ブロック転送 (1 転送要求ごとに指定ブロック回数分のみ転送を行う ) の場
合は転送元 / 転送先アドレスは , ch.0 ∼ ch.3 では 20 ビット , ch.4 では 24 ビット指定可
能です。
■ ステップ転送
ブロックサイズに "1" を設定すると , ステップ転送シーケンスとなります。
〔ステップ転送の特長〕
• 転送要求を 1 回受け付けると , 1 回の転送を行った後 , 転送要求をクリアして転
送を停止します ( バスコントローラに対し DMA 転送要求を取り下げる )。
• 転送中に再度要求が発生した場合 , 要求は無視されます。
• 転送中により高い優先順位の他チャネルの転送要求を受け付けた場合, 転送停止
後に , チャネルを切り換えて続けて転送を開始します。ステップ転送における優
先順位は , 転送要求が同時に発生した場合のみ意味を持ちます。
■ ブロック転送
ブロックサイズに "1" 以外を設定すると , ブロック転送シーケンスとなります。
[ ブロック転送の特長 ]
1 転送単位が複数回 ( ブロック数 ) の転送サイクルから構成されること以外は , ス
テップ転送と全く同じ動作となります。
周辺転送要求
バス動作
CPU
ブロック数
転送回数
SA
DA
SA
2
DA
1
2
CPU
0
SA
DA
SA
2
DA
1
1
転送終了(内部)
(周辺転送要求,ブロック数=2,転送回数=2のときのブロック転送例)
319
第 17 章 DMAC (DMA コントローラ )
17.3.4
DMA 転送全般
DMA 転送のブロックサイズとリロード動作について説明します。
■ ブロックサイズ
• 転送データの 1 転送単位は , ブロックサイズ指定レジスタに設定した数 ( ×データ
幅 ) のデータの集合となります。
• 1 転送サイクルにて転送されるデータは , データ幅指定の値に固定されるため , 1 転
送単位はブロックサイズ指定値分の転送サイクル数より構成されることになりま
す。
• 転送中により高位の優先順位の転送要求が受け付けられた場合または転送の一時
停止要求が発生した場合において , ブロック転送時においても 1 転送単位の境界に
ならないと停止しません。これにより分割・一時停止を希望しないデータブロック
のデータ保護が可能ですが , ブロックサイズが大きい場合はレスポンスを低下させ
る原因ともなります。
• リセット発生の場合のみ即時に停止しますが , 転送中であったデータの内容などは
保証されません。
■ リロード動作
本モジュールでは , チャネルごとに , 以下の 3 種類のリロード機能の設定が可能です。
• 転送回数レジスタリロード機能
指定回数の転送が終了した後 , 転送回数レジスタに初期設定値を再設定して起動受
付け待ちします。
全転送シーケンスを繰り返し行う際に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は回数レジスタ値が "0" のまま
となり , 以降の転送は行われません。
• 転送元アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送元アドレスレジスタに初期設定値を再設定しま
す。
転送元アドレス領域内で固定領域から繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が
終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
• 転送先アドレスレジスタリロード機能
指定回数の転送が終了した後 , 転送先アドレスレジスタに初期設定値を再設定しま
す。
転送先アドレス領域内で固定領域へ繰り返し転送する場合に設定します。
リロード指定をしない場合 , 指定回数の転送終了後は転送元アドレスレジスタ値が
終了時の次のアドレスとなります。アドレス領域を固定しない場合に使用します。
転送元 / 転送先レジスタのリロード機能を有効にしたのみでは , 指定回数転送終了
後の再起動は行われず , 各アドレスレジスタ値が再設定されるのみとなります。
320
第 17 章 DMAC (DMA コントローラ )
<注意事項>
動作モードとリロード動作の特殊な例
• 転送終了にていったん停止し , 再度入力検出から行いたい場合は , リロード指定を行わ
ないようにしてください。
• バースト / ブロック / ステップ転送モードで転送している場合では , 転送終了となると
リロード後いったん転送を中断し , 改めて転送要求入力が検出されるまで転送を行い
ません。
321
第 17 章 DMAC (DMA コントローラ )
アドレッシングモード
17.3.5
各転送チャネルの転送先および転送元アドレスは , それぞれ独立して指定します。
転送シーケンスによって設定してください。
ここでは , その指定方法について説明します。
■ アドレスレジスタ指定
• 2 サイクル転送モードでは , 転送元アドレス設定レジスタ (DMASA) には転送元アド
レスを , 転送先アドレス設定レジスタ (DMADA) には転送先アドレスを設定してく
ださい。
〔アドレスレジスタの特長〕
• ch.0 ∼ ch.3 は 20 ビット長 , ch.4 は 24 ビット長のレジスタです。
〔アドレスレジスタの機能〕
• 毎アクセス時に読み出され , アドレスバスへ放出されます。
• 同時にアドレスカウンタにて次回アクセス時のアドレス計算が行われ, 計算結果
のアドレスにてアドレスレジスタを更新します。
• アドレス計算は , 各チャネル / 転送先 / 転送元それぞれ独立に固定 / 加算 / 減算の
うちより選択します。アドレスの増減幅はアドレスカウントサイズ指定レジスタ
値によります (DMACB:SASZ, DASZ)。
• 転送終了時のアドレスレジスタには , リロード機能を有効にしていない場合 , 最
終アドレスにアドレス計算をした結果のアドレスが残されます。
• リロード機能を有効にしている場合 , アドレスの初期値がリロードされます。
< 注意事項 >
• 20 ビットまたは 24 ビット長フルアドレス計算の結果 , オーバフロー / アンダフローが
発生した場合でも , そのチャネルの転送は継続されます。オーバフロー / アンダフロー
が発生しないよう各チャネルを設定してください。
• アドレスレジスタに DMAC 自身のレジスタのアドレスを設定しないでください。
322
第 17 章 DMAC (DMA コントローラ )
17.3.6
データの種類
1 回の転送で転送されるデータ長 ( データ幅 ) を 以下に示します。
• バイト
• ハーフワード
• ワード
■ アクセスアドレス
バイト ・ハーフワード ・ワード
DMA 転送においても , ワードバウンダリ仕様が守られるため , 転送先 / 転送元アドレ
ス指定においてデータ長と食い違うアドレスが設定された場合 , 異なる下位ビットは
無視されます。
• バイト
:実際のアクセスアドレスとアドレス指定が一致します。
• ハーフワード :実際のアクセスアドレスは下位 1 ビット が "0" から始まる 2 バイ
トとなります。
• ワード
:実際のアクセスアドレスは下位 2 ビット が "00B" から始まる 4 バ
イトとなります。
転送元アドレスと転送先アドレスの下位ビットが食い違っている場合 , 内部アドレス
バス上には設定そのままのアドレスが出力されますが , バス上の各転送対象において ,
上記の決まりに従ってアドレスが修正されてアクセスが行われます。
323
第 17 章 DMAC (DMA コントローラ )
17.3.7
転送回数制御
転送回数は , 最大で 16 ビット 長の範囲内 (1 回∼ 65536 回 ) で指定します。転送回
数指定値は転送回数レジスタ (DMACA:DTC) に設定します。
■ 転送回数レジスタとリロード動作
レジスタ値は , 転送開始時に一時記憶バッファに格納され , 転送回数カウンタにより減
算されます。
このカウンタ値が "0" となったとき , 指定回数の転送終了として検出され , そのチャネ
ルの転送停止または再起動受付け待ち ( リロード指定時 ) が行われます。
〔転送回数レジスタ群の特長〕
• 各レジスタ 16 ビット長です。
• すべてのレジスタはそれぞれ専用リロードレジスタを持ちます。
• レジスタ値が "0" 時に起動すると , 65536 回の転送を行います。
〔リロード動作〕
• リロード機能をもつレジスタで, リロード機能が許可されている場合にのみ有効
です。
• 転送起動時に , 回数レジスタの初期値をリロードレジスタに退避します。
• 転送回数カウンタにてカウントを行った際 "0" になると , 転送終了を通知すると
ともに, リロードレジスタより初期値を読み出し, 回数レジスタに書き込みます。
324
第 17 章 DMAC (DMA コントローラ )
CPU 制御
17.3.8
DMA 転送要求が受け付けられると , DMA はバスコントローラに対し転送要求を発
行します。バスコントローラはバス動作の切れ目にて内部バス使用権を DMA に明け
渡し , DMA 転送が開始されます。
■ DMA 転送と割込み
DMA 転送中に , NMI 要求 , または割込みコントローラの HRCL レジスタにて設定され
たホールド抑止レベルより高いレベルの割込み要求が発生した場合には , DMAC は転
送単位 (1 ブロック ) の境界にてバスコントローラへの転送要求を一次取り下げ , 割込
み要求がクリアされるまでは転送を一時停止状態にします。この間転送要求は内部で
保持されます。割込み要求がクリアされた後に再度 DMAC はバスコントローラは転送
要求を発行してバス使用権を取得し , DMA 転送を再開します。
割込みのレベルが HRCL レジスタに設定されたレベルより低い場合は , DMA 転送終了
まで割込みは受け付けられません。また , HRCL の設定値より低いレベルの割込み処理
動作中に DMA 転送要求があった場合は , 転送要求は受け付けられ , 転送終了まで割込
み処理動作は停止します。
デフォルトでは DMA 転送要求レベルは最弱です。すべての割込み要求に対して転送
を停止し , 割込み処理を優先させます。
■ DMA 抑止
FR ファミリは DMA 転送中に , より優先度の高い割込み要因が発生すると DMA 転送
を中断して該当割込みルーチンへ分岐します。この機能は割込み要求がある限り有効
ですが , 割込み要因をクリアすると抑止機能が働かなくなり , 割込み処理ルーチン内で
DMA 転送を再開します。このため , DMA 転送を中断するレベルの割込み要因の処理
ルーチン内で , 割込み要因クリア後の DMA 再転送開始を抑止したいときは , DMA 抑
止機能を使用します。DMA 抑止機能は , DMA 全体制御レジスタの DMAH[3:0] ビット
に "0" 以外の値を書き込むことで起動し , "0" を書き込むことで停止します。
本機能は主として割込み処理ルーチン内で使用します。割込み処理ルーチンで割込み
要因をクリアする前に DMA 抑止レジスタの内容を 1 つ増加させます。このようにす
ると , 以降 , DMA 転送は行いません。割込み処理への対応を行った後 , 復帰する前に
DMAH[3:0] ビットの内容を 1 つ減少させます。もし , 多重割込みであれば DMAH[3:0]
ビットの内容は , まだ "0" にならないため , 引き続いて DMA 転送は抑止されます。ま
た , 多重割込みでなければ , DMAH[3:0] ビットの内容は "0" になるため , その後すぐに
DMA 要求を有効にします。
<注意事項>
• レジスタのビット数は 4 ビットですので , 15 レベルを超える多重割込みで本機能を使
用することができません。
• DMA タスクの優先順位は必ずほかの割込みレベルより 15 レベルは上に置いてくださ
い。
325
第 17 章 DMAC (DMA コントローラ )
17.3.9
動作
DMA 転送の動作について説明します。
■
動作開始
DMA 転送の開始は , チャネルごとに独立に制御しますが , その前に全チャネルの動作
を許可しておく必要があります。
● 全チャネル動作許可
DMAC 各チャネルに起動を行う前に , DMA 動作許可ビット (DMACR:DMAE) にてあら
かじめ全チャネルの動作を許可する必要があります。許可されていない状態にて行っ
た起動設定および発生した転送要求はすべて無効となります。
● 転送起動
各チャネルの制御レジスタにある動作許可ビットにて , 転送動作を起動します。起動さ
れたチャネルに対する転送要求が受け付けられると , 設定されたモードにて DMA 転送
動作が開始されます。
● 一時停止状態からの起動
各チャネルまたは全チャネル制御にて , 起動前に一時停止状態にしてあった場合 , 転送
動作を起動しても一時停止状態を維持しています。この間に転送要求が発生した場合
は , 要求を受け付けて保持します。一時停止を解除した時点より転送を開始します。
326
第 17 章 DMAC (DMA コントローラ )
17.3.10
転送要求の受付けと転送
転送要求の受付けと転送の内容を説明します。
■ 転送要求の受付けと転送
• 起動後より , 各チャネルに対し設定した転送要求のサンプリングが開始されます。
• 周辺割込み起動を選択した場合は , 転送要求がクリアされるまで DMAC は転送を続
けますがクリアされたら 1 転送単位で転送を停止します ( 周辺割込み起動 )。
周辺割込みはレベル検出扱いとなりますので割込みは DMA による割込みクリアで
行うようにしてください。
• 転送要求は , 他チャネルの要求が受け付けられて転送が行われている間でも , 常に
受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送するチャネル
を決定しています。
327
第 17 章 DMAC (DMA コントローラ )
17.3.11
DMA による周辺割込みクリア
DMA には周辺割込みをクリアする機能があります。この機能は DMA 起動要因に周
辺割込みを選択したときに機能します (IS [4:0]=1XXXXB のとき )。
周辺割込みのクリアは設定された起動要因にのみに行われます。すなわち IS [4:0]
で設定された周辺機能のみクリアされます。
■ 割込みクリアの発生タイミング
転送モードにより発生するタイミングが違います (「17.4 DMAC の動作フロー」を参
照 )。
[ ブロック / ステップ転送 ]
ブロック転送を選択した場合 , 1 ブロック ( ステップ ) 転送ごとにクリア信号が発生
します。
[ バースト転送 ]
バースト転送を選択した場合は , 指定転送回数がすべて終了するとクリア信号が発
生します。
328
第 17 章 DMAC (DMA コントローラ )
17.3.12
一時停止
DMA 転送が , 一時停止する場合について説明します。
■ 制御レジスタへの書込みによる一時停止の設定 (各チャネル独立または全チャネル
同時に設定 )
一時停止ビットにより一時停止を設定すると , 一時停止解除設定を再度設定するまで
の間 , 対応するチャネルの転送は停止します。一時停止の確認は DSS ビットで行って
ください。
一時停止を解除すると , 転送を再開します。
■ NMI/ ホールド抑止レベル割込み処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 , 転
送中のチャネルはすべて転送単位の境界にて一時停止し , バス権を開放して NMI/ 割込
み処理を優先させます。また , NMI/ 割込み処理中に受け付けられた転送要求はそのま
ま保持され , NMI 処理の終了を待ちます。
要求が保持されたチャネルは , NMI/ 割込み処理が終了した後に転送を再開します。
329
第 17 章 DMAC (DMA コントローラ )
17.3.13
動作終了 / 停止
DMA 転送の終了は , チャネルごとに独立に制御しますが , 全チャネルの動作を禁止
することも可能です。
■ 転送終了
リロード動作が有効でない場合 , 転送回数レジスタが "0" になると転送を停止し , 終了
コードにて「正常終了」を表示した後 , 以降の転送要求は無効となります
(DMACA:DENB ビットをクリアする )。
リロード動作が有効である場合 , 転送回数レジスタが "0" になると初期値をリロード
し , 終了コードにて『正常終了』を表示した後 , 再度転送要求待ちとなります
(DMACA:DENB ビットをクリアしない )。
■ 全チャネル動作禁止
DMA 動作許可ビット DMAE にて全チャネルの動作を禁止すると , 動作中であったチャ
ネルも含め DMAC のすべての動作が停止します。以降 , 再度全チャネル DMA 動作を
許可しても , チャネルごとに再起動しないと転送は行われません。この場合 , 割込みは
一切発生しません。
330
第 17 章 DMAC (DMA コントローラ )
エラーによる停止
17.3.14
指定回数の転送終了による正常終了以外の要因で停止する場合として , 各種エラー
発生による停止および強制停止があります。
■ 周辺回路からの転送停止要求の発生
転送要求を出力する周辺回路によっては , 異常を検出した際などに転送停止要求を発
生するものがあります ( 例:通信系周辺における受信 / 送信エラーなど )。
この転送停止要求を受け取った DMAC は , 終了コードにて「転送停止要求」を表示し
て対応するチャネルの転送を停止します。
<注意事項>
• 周辺回路の転送停止要求の有無については , DMACA レジスタの bit28 ∼ bit24(IS4 ∼
IS0) 転送要因選択ビットの説明を参照してください。
• 各転送停止要求の発生条件についての詳細は , 各周辺回路の仕様を参照してください。
331
第 17 章 DMAC (DMA コントローラ )
17.3.15
DMAC 割込み制御
DMAC 割込み制御は , 転送要求となる周辺割込みとは独立に , チャネルごとに以下
の割込みを出力することが可能です。
■ DMAC 割込み制御が出力できる割込み
• 転送終了割込み : 正常終了した場合のみ発生
• エラー割込み
: 周辺回路からの転送停止要求 ( 周辺に起因するエラー )
これらの割込みはすべて終了コードの内容に従って出力されます。
割込み要求のクリアは , DMACS の DSS2 ∼ DSS0( 終了コード ) に "000B" を書き込むこ
とにより行います。なお , 終了コードは再起動する際には必ず "000B" を書き込んでク
リアしてください。
リロード動作が有効である場合は自動的に再起動しますが , この際には終了コードは
クリアされず , 次の転送終了による新しい終了コードの書込み時まで保持されます。
終了コードにて表示できる終了要因は1種類のみですので, 複数の要因が同時に発生し
た場合は優先判断を行った結果を表示します。この際に発生する割込みは , 表示されて
いる終了コードに従います。
終了コードの表示の優先順位を以下に示します ( 上から , 優先度の高い順 )。
• リセット
• "000B" 書込みによるクリア
• 周辺停止要求
• 正常終了
• チャネル選択と制御
332
第 17 章 DMAC (DMA コントローラ )
17.3.16
スリープ中の DMA 転送
DMAC は , スリープモード中でも動作させることができます。ここでは , スリープ
状態のときの DMA 転送について説明します。
■ スリープモード中の DMA 転送の注意
スリープモードでの動作を期待する場合 , 次のことに注意する必要があります。
- CPU は停止状態なので DMAC のレジスタを書き換えることはできません。スリー
プモードに入る前に設定を済ませておいてください。
- スリープモードは , 割込みで解除されますので DMAC 起動要因で周辺での割込み
を選択した場合は , 割込みコントローラで割込みを禁止する必要があります。
同様に, DMAC終了割込みでスリープモードを解除しない場合は, 割込みを禁止にして
ください。
333
第 17 章 DMAC (DMA コントローラ )
17.3.17
チャネル選択と制御
転送チャネルの数は 5 チャネルまで同時設定が可能です。各チャネルは基本的に各
機能を独立に設定することが可能です。
■ チャネル間優先順位
同時に DMA 転送ができるのは 1 チャネルのみとなっているため , 各チャネル間には優
先順位が設定されます。
順位設定には , 固定 /回転の 2モードがありチャネルグループ (後述)ごとに選択します。
● 固定モード
チャネル番号の小さい順に固定されます。
(ch.0 > ch.1 > ch.2 > ch.3 > ch.4)
転送中により高い優先度の転送要求が受け付けられた場合 , 1 転送単位 ( ブロックサ
イズ指定レジスタに設定した数×データ幅 ) の転送が終了した時点で転送チャネル
が高優先度側に切り換わります。
高優先度側の転送が終了すると , 元のチャネルの転送を再開します。
ch.0転送要求
ch.1転送要求
バス動作
CPU
SA
転送チャネル
DA
SA
ch.1
DA
ch.0
SA
DA
ch.0
SA
DA
CPU
ch.1
ch.0転送終了
ch.1転送終了
● 回転モード (ch.0 - ch.1 間のみ )
動作許可後の初期状態は固定モードと同じ順位に設定されますが , 1 転送終了ごと
にそのチャネルの優先度は逆転します。よって , 同時に転送要求が出力されている
場合 , 1 転送単位ごとにチャネルが切り換わります。
連続 / バースト転送を設定した場合に効果のあるモードです。
ch.0転送要求
ch.1転送要求
バス動作
転送チャネル
ch.0転送終了
ch.1転送終了
334
CPU
SA
DA
ch.1
SA
DA
ch.0
SA
DA
ch.1
SA
DA
ch.0
CPU
第 17 章 DMAC (DMA コントローラ )
■ チャネルグループ
優先順位の選択は , 以下の単位で設定します。
モード
優先度
備 考
固定
ch.0 > ch.1
−
回転
ch.0 > ch.1
↑ ↓
ch.0 < ch.1
初期状態は上側の順位です
上側が転送されると反転します。
335
第 17 章 DMAC (DMA コントローラ )
17.4
DMAC の動作フロー
次の各転送モードにおける動作フローチャートを示します。
・ブロック転送
・バースト転送
■ ブロック転送
図 17.4-1 ブロック転送の動作フロー
DMA停止
DENB→0
DENB=1
起動要求待機
リロード許可
起動要求
初期化
アドレス,転送回数,ブロック数
ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
周辺割込み起動要因選択時のみ
アドレス,転送回数,ブロック数
ライトバック
割込みクリア
割込みクリア発生
DTC=0
DMA転送終了
( 特長 )
• すべての起動要因で起動可能 ( 選択 )
• すべての領域へのアクセス可能
• ブロック数の設定可能
• ブロック数終了で割込みクリア発行
• 指定転送回数終了で DMA 割込みを発行
336
DMA割込み発生
第 17 章 DMAC (DMA コントローラ )
■ バースト転送
図 17.4-2 バースト転送の動作フロー
DMA停止
DENB→0
DENB=1
起動要求待機
リロード許可
初期化
アドレス,転送回数,ブロック数
ロード
転送元アドレスアクセス
アドレス演算
転送先アドレスアクセス
アドレス演算
ブロック数-1
BLK=0
転送回数-1
DTC=0
アドレス,転送回数,ブロック数
ライトバック
周辺割込み起動要因選択時のみ
割込みクリア
DMA転送終了
割込みクリア発生
DMA割込み発生
( 特長 )
• すべての起動要因で起動可能 ( 選択 )
• すべての領域へのアクセス可能
• ブロック数の設定可能
• 指定転送回数終了で割込みクリア , DMA 割込みを発行
337
第 17 章 DMAC (DMA コントローラ )
DMAC のデータパス
17.5
2 サイクル転送時のデータの動きを示します。
■ 2 サイクル 転送時のデータの動作
6 種類の転送例を示します ( ほかの組合せは省略 )。
DMAC
X-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
I-bus
CPU
CPU
I-bus
外部バスI/F
DMAC
リードサイクル
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
外部バス I/F
外部領域=>外部領域 転送
I/O
RAM
I/O
外部領域=>内部RAM領域 転送
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
CPU
CPU
I-bus
ライトサイクル
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バスI/F
DMAC
外部バスI/F
DMAC
リードサイクル
F-bus
I/O
RAM
I/O
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
I/O
外部バス I/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
外部領域=>内蔵I/O領域 転送
F-bus
RAM
I/O
( 続く )
338
第 17 章 DMAC (DMA コントローラ )
(続き)
X-bus
バスコントローラ
D-bus
データバッファ
I-bus
X-bus
バスコントローラ
D-bus
F-bus
RAM
外部バスI/F
CPU
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
内蔵I/O領域=>内蔵RAM領域 転送
F-bus
RAM
I/O
I/O
DMAC
X-bus
バスコントローラ
D-bus
データバッファ
ライトサイクル
I-bus
CPU
CPU
I-bus
外部バスI/F
DMAC
リードサイクル
X-bus
バスコントローラ
D-bus
データバッファ
F-bus
RAM
外部バス I/F
内部RAM領域=>外部領域 転送
F-bus
RAM
I/O
I/O
CPU
バスコントローラ
D-bus
データバッファ
X-bus
I-bus
バスコントローラ
D-bus
データバッファ
F-bus
F-bus
RAM
I/O
外部バス I/F
X-bus
I-bus
DMAC
ライトサイクル
CPU
DMAC
リードサイクル
外部バス I/F
内部RAM領域=>内蔵I/O領域 転送
RAM
I/O
339
第 17 章 DMAC (DMA コントローラ )
340
第 18 章
ステッパモータコントローラ
ステッパモータコントローラの概要 , レジスタの構
成 / 機能および動作について説明します。
18.1
ステッパモータコントローラの概要
18.2
ステッパモータコントローラのレジスタ
18.3
ステッパモータコントローラの使用上の注意
341
第 18 章 ステッパモータコントローラ
18.1
ステッパモータコントローラの概要
ステッパモータコントローラの概要とブロックダイヤグラムを示します。
■ ステッパモータコントローラの概要
ステッパモータコントローラは , 2 個の PWM パルス発生器 , 4 個のモータドライバ , セ
レクタロジックにより構成されています。
4 種類のモータドライバには高出力ドライブ機能があり , 2 個のモータコイルの終端 4
箇所に直接接続できます。PWM パルス発生器およびセレクタロジックを組み合せるこ
とによって , モータの回転を制御するよう設計されています。
同期のメカニズムは , 2 個の PWM の同期動作を保証します。
■ ステッパモータコントローラのブロックダイヤグラム
図 18.1-1 に , ステッパモータコントローラのブロックダイヤグラムを示します。
図 18.1-1 ステッパモータコントローラのブロックダイヤグラム
(ステッパモータコントローラ ch.0 の場合)
マシンクロック
CK
プリスケーラ
PWM1 パルス発生器
EN
P2
P1
PWM1P0
セレクタ
PWM1M0
PWM
P0
PWM1 比較レジスタ
PWM1 選択レジスタ
CK
PWM2 パルス発生器
CE
EN
セレクタ
PWM2M0
PWM
ロード
PWM2 比較レジスタ
342
PWM2P0
BS PWM2 選択レジスタ
第 18 章 ステッパモータコントローラ
ステッパモータコントローラのレジスタ
18.2
ステッパモータコントローラのレジスタの機能について説明します。
■ ステッパモータコントローラのレジスタ一覧
図 18.2-1 に , ステッパモータコントローラのレジスタ一覧を示します。
図 18.2-1 ステッパモータコントローラのレジスタ一覧
PWC
アドレス
bit
ch.0: 000169H
ch.1: 000171H
ch.2: 000179H
ch.3: 000181H
ch.4: 000189H
ch.5: 000191H
7
6
5
4
3
2
1
0
−
P2
P1
P0
CE
−
−
TST
(−)
(−)
(−)
(R/W) (R/W) (R/W) (R/W)
(R/W) リード / ライト
(−)
(0)
(0)
(0)
(0)
(−)
(−)
(0)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
初期値
PWC2
アドレス
bit
ch.0: 000164H
ch.1: 00016CH
ch.2: 000174H
ch.3: 00017CH
ch.4: 000184H
ch.5: 00018CH
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
初期値
PWC1
アドレス
bit
ch.0: 000165H
ch.1: 00016DH
ch.2: 000175H
ch.3: 00017DH
ch.4: 000185H
ch.5: 00018DH
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
15
14
13
12
11
10
9
8
BS
P2
P1
P0
M2
M1
M0
初期値
PWS2
アドレス
bit
ch.0: 00016AH
ch.1: 000172H
ch.2: 00017AH
ch.3: 000182H
ch.4: 00018AH
ch.5: 000192H
−
(−)
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(−)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
−
−
P2
P1
P0
M2
M1
M0
(−)
(−)
(−)
(−)
初期値
PWS1
アドレス
bit
ch.0: 00016BH
ch.1: 000173H
ch.2: 00017BH
ch.3: 000183H
ch.4: 00018BH
ch.5: 000193H
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(0)
(0)
(0)
(0)
(0)
(0)
初期値
343
第 18 章 ステッパモータコントローラ
18.2.1
PWM 制御レジスタ
PWM 制御レジスタの機能について説明します。
■ PWM 制御レジスタのビット構成
図 18.2-2 に , PWM 制御レジスタのビット構成を示します。
図 18.2-2 PWM 制御レジスタのビット構成
PWC
アドレス
7
bit
ch.0: 000169H
ch.1: 000171H
ch.2: 000179H
ch.3: 000181H
ch.4: 000189H
ch.5: 000191H
−
(−)
(−)
6
5
4
3
2
1
P2
P1
P0
CE
−
−
(R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
0
TST
(−)
(−)
(−)
(−)
(R/W) リード / ライト
(0)
初期値
[bit6 ∼ bit4] P2 ∼ P0 : 動作クロック選択ビット
このビットは , PWM パルス発生器のクロック入力信号を指定します。
表 18.2-1 に , PWM パルス発生器のクロック入力信号の設定内容を示します。
表 18.2-1 PWM パルス発生器のクロック入力信号
P2
P1
P0
クロック入力
0
0
0
マシンクロック (CLKP)
0
0
1
1/2 マシンクロック
0
1
0
1/4 マシンクロック
0
1
1
1/8 マシンクロック
1
0
0
予約
1
0
1
1/5 マシンクロック
1
1
0
1/6 マシンクロック
1
1
1
予約
[bit3] CE : カウント有効ビット
このビットは , PWM パルス発生器の動作を有効にします。"1" に設定すると , PWM
パルス発生器は動作を開始します。PWM1 パルス発生器の開始から 1 マシンクロッ
クサイクル後に PWM2 パルス発生器が動作を開始することに注意してください。こ
れによって , 出力ドライバからのスイッチングノイズが減少します。
[bit0] TST : テストビット
このビットは , デバイステスト用です。ユーザアプリケーションにおいては , 常に
"0" に設定しなければなりません。
344
第 18 章 ステッパモータコントローラ
18.2.2
PWM1, PWM2 コンペアレジスタ
PWM1, PWM2 の 2 つの 8 ビットコンペアレジスタの内容は , PWM パルスの幅を決
定するものです。記憶された "00H" の値は PWM のデューティが 0% であることを
表し , "FFH" は 99.6%のデューティを表します。
■ PWM1, PWM2 コンペアレジスタの機能
図 18.2-3 に , PWM1, PWM2 コンペアレジスタのビット構成を示します。
図 18.2-3 PWM1, PWM2 コンペアレジスタのビット構成
PWC2
アドレス
bit
ch.0: 000164H
ch.1: 00016CH
ch.2: 000174H
ch.3: 00017CH
ch.4: 000184H
ch.5: 00018CH
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
初期値
PWC1
アドレス
bit
ch.0: 000165H
ch.1: 00016DH
ch.2: 000175H
ch.3: 00017DH
ch.4: 000185H
ch.5: 00018DH
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値
2 個の 8 ビットコンペアレジスタの内容は , PWM パルス幅を決定します。
格納された値が "00H" なら PWM デューティ 0% を表し , "FFH" はデューティ 99.6% を
表します。
図 18.2-4 に , コンペアレジスタの設定値と PWM パルス幅の関係を示します。
345
第 18 章 ステッパモータコントローラ
図 18.2-4 コンペアレジスタの設定値と PWM パルス幅の関係
1PWMサイクル
256 入力クロックサイクル
レジスタ値
00H
80H
128入力クロックサイクル
FFH
256入力クロックサイクル
このレジスタは常時アクセス可能ですが , 修正値は PWM2 選択レジスタの BS ビット
が "1" に設定された後で , 現行の PWM サイクル終了時にパルス幅に反映されます。
346
第 18 章 ステッパモータコントローラ
18.2.3
PWM1, PWM2 選択レジスタ
PWM1, PWM2 選択レジスタの機能について説明します。
■ PWM1, PWM2 選択レジスタの機能
図 18.2-5 に , PWM1, PWM2 選択レジスタのビット構成を示します。
図 18.2-5 PWM1, PWM2 選択レジスタのビット構成
PWS2
アドレス
bit
ch.0: 00016AH
ch.1: 000172H
ch.2: 00017AH
ch.3: 000182H
ch.4: 00018AH
ch.5: 000192H
15
−
(−)
14
13
12
11
10
9
8
BS
P2
P1
P0
M2
M1
M0
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(−)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
−
−
P2
P1
P0
M2
M1
M0
(−)
(−)
(−)
(−)
初期値
PWS1
アドレス
bit
ch.0: 00016BH
ch.1: 000173H
ch.2: 00017BH
ch.3: 000183H
ch.4: 00018BH
ch.5: 000193H
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) リード / ライト
(0)
(0)
(0)
(0)
(0)
(0)
初期値
[bit14] BS : 更新ビット
このビットは , PWM 出力設定の同期調整用です。このビットが設定されるまでは ,
両比較レジスタおよび両選択レジスタの修正はすべて出力信号に反映されません。
このビットが "1" に設定されると , PWM パルス発生器およびセレクタは , 現行の
PWM サイクル終了時にレジスタの内容をロードします。
BS ビットは , 直後の PWM
サイクル開始時に自動的に "0" にリセットされます。自動リセットと同時にソフト
ウェアが BS ビットに "1" を設定すると , BS ビットは "1" に設定され ( そのまま変
わらず ), 自動リセットはキャンセルされます。
[bit13 ∼ bit11] P2 ∼ P0 : 出力選択ビット
これらのビットは , PWM2P0 における出力信号を選択します。
[bit10 ∼ bit8] M2 ∼ M0 : 出力選択ビット
これらのビットは , PWM2M0 における出力信号を選択します。
347
第 18 章 ステッパモータコントローラ
[bit5 ∼ bit3] P2 ∼ P0 : 出力選択ビット
これらのビットは , PWM1P0 における出力信号を選択します。
表 18.2-2 に , 出力レベルと選択ビットの関係を示します。
[bit2 ∼ bit0] M2 ∼ M0 : 出力選択ビット
これらのビットは , PWM1M0 における出力信号を選択します。
表 18.2-2 に , 出力レベルと選択ビットの関係を示します。
表 18.2-2 出力レベルと選択ビットの関係
348
P2
P1
P0
PWMnP0
M2
M1
M0
PWMnM0
0
0
0
"L"
0
0
0
"L"
0
0
1
"H"
0
0
1
"H"
0
1
X
PWM パルス
0
1
X
PWM パルス
1
X
X
ハイインピーダンス
1
X
X
ハイインピーダンス
第 18 章 ステッパモータコントローラ
18.3
ステッパモータコントローラの使用上の注意
ステッパモータコントローラを使用するにあたっての注意点を示します。
■ PWM 設定値変更時の注意
PWM コンペアレジスタ 1 (PWC1n), PWM コンペアレジスタ 2 (PWC2n), PWM 選択レジ
スタ 1 (PWS1n) および PWM 選択レジスタ 2 (PWS2n) は常時アクセス可能ですが , PWM
の "H" 幅設定を変更するまたは PWM 出力を変更するためには , これらのレジスタに設
定値を書き込んだ後 ( または同時に ), PWM 選択レジスタ 2 の BS ビットに "1" を書き
込む必要があります。
BS ビットが "1" にセットされると , 現在の PWM サイクルの終了時に新しい設定値が
有効になり , BS ビットは自動的にクリアされます。
また , BS ビットへの "1" 書込みと , PWM サイクル終了時の BS ビットのリセットが同
時に行われた場合は, "1"書込みが優先され, BSビットリセットはキャンセルされます。
349
第 18 章 ステッパモータコントローラ
350
第 19 章
サウンドジェネレータ
サウンドジェネレータの概要 , レジスタの構成 / 機
能および動作について説明します。
19.1
サウンドジェネレータの概要
19.2
サウンドジェネレータのレジスタ
351
第 19 章 サウンドジェネレータ
19.1
サウンドジェネレータの概要
サウンドジェネレータの概要とブロックダイヤグラムを示します。
■ サウンドジェネレータの構成
サウンドジェネレータは , 以下のレジスタおよびカウンタで構成されています。
• サウンドコントロールレジスタ
• 周波数データレジスタ
• 振幅データレジスタ
• デクリメントグレードレジスタ
• トーンカウントレジスタ
• サウンド禁止レジスタ
• PWM パルス生成器
• 周波数カウンタ
• 減分カウンタ
• トーンパルスカウンタ
■ サウンドジェネレータのブロックダイヤグラム
図 19.1-1 に , サウンドジェネレータのブロックダイヤグラムを示します。
図 19.1-1 サウンドジェネレータのブロックダイヤグラム
クロック入力
プリスケーラ
S2
8ビットPWM
パルス生成器 CO
CI
EN
PWM
S1
トグル
フリップ
フロップ
D
Q
EN
周波数
カウンタ
CO
EN
リロード
リロード
1/d
周波数データ
レジスタ
振幅データ
レジスタ
DEC
DEC
減分カウンタ
CI
CO
EN
SGA
デクリメント
グレードレジスタ
混合
トーンパルス
カウンタ
CI
CO
EN
トーンカウント
レジスタ
SGO
TONE
INTE
INT
ST
IRQ
352
第 19 章 サウンドジェネレータ
19.2
サウンドジェネレータのレジスタ
サウンドジェネレータのレジスタの機能について説明します。
■ サウンドジェネレータのレジスタ一覧
図 19.2-1 に , サウンドジェネレータのレジスタ一覧を示します。
図 19.2-1 サウンドジェネレータのレジスタ一覧
SGCR( 上位バイト ) bit
アドレス :000092H
15
14
13
12
11
10
9
TST
−
−
−
−
−
BUSY
DEC
(R/W)
リード / ライト (R/W)
初期値
SGCR( 下位バイト ) bit
アドレス :000093H
(−)
(−)
(−)
(−)
(−)
(R)
(0)
(−)
(−)
(−)
(−)
(−)
(0)
(0)
7
6
5
4
3
2
1
0
S1
S0
TONE
−
−
INTE
INT
ST
リード / ライト (R/W) (R/W) (R/W)
(−)
(−)
(0)
(−)
(−)
初期値
SGAR
bit
アドレス :000094H
8
(0)
(0)
(R/W) (R/W) (R/W)
(0)
(0)
(0)
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
SGFR
bit
アドレス :000095H
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
bit
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
SGTR
アドレス :000096H
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
SGDR
bit
アドレス :000097H
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
リード / ライト
(−)
(−)
(−)
(−)
(−)
(−)
(−)
(R/W)
初期値
(−)
(−)
(−)
(−)
(−)
(−)
(−)
(0)
初期値
SGDBL
bit
アドレス :000091H
353
第 19 章 サウンドジェネレータ
19.2.1
サウンドコントロールレジスタ
サウンドコントロールレジスタの機能について説明します。
■ サウンドコントロールレジスタのビット構成
図 19.2-2 に , サウンドコントロールレジスタのビット構成を示します。
図 19.2-2 サウンドコントロールレジスタのビット構成
SGCR( 上位バイト ) bit
アドレス :000092H
15
14
13
12
11
10
9
TST
−
−
−
−
−
BUSY
DEC
(R/W)
リード / ライト (R/W)
初期値
SGCR( 下位バイト ) bit
アドレス :000093H
(−)
(−)
(−)
(−)
(−)
(R)
(0)
(−)
(−)
(−)
(−)
(−)
(0)
(0)
7
6
5
4
3
2
1
0
S1
S0
TONE
−
−
INTE
INT
ST
リード / ライト (R/W) (R/W) (R/W)
(−)
(−)
(0)
(−)
(−)
初期値
8
(0)
(0)
(R/W) (R/W) (R/W)
(0)
(0)
(0)
以下に , サウンドコントロールレジスタの各ビットの機能を説明します。
[bit15] TST : テストビット
このビットは , デバイステスト用です。いずれのユーザアプリケーションにおいて
も "0" に設定します。
[bit9] BUSY : ビジービット
このビットは , サウンドジェネレータが動作中であるかどうかを示します。ST ビッ
トを "1" に設定すると , このビットも "1" に設定されます。ST ビットを "0" にリセッ
トし , 1 トーンサイクル終了時に動作が完了すると , このビットは "0" にリセットさ
れます。このビットに対して出されるすべての書込み命令は無効となります。
[bit8] DEC : 自動デクリメント許可ビット
DEC ビットは , デクリメントグレードレジスタとともに , サウンドの自動デクリメ
ント用に設計されています。このビットを "1" に設定すると , デクリメントグレー
ドレジスタが指定したトグルフリップフロップからのトーンパルス数を減分カウ
ンタがカウントするごとに , 振幅データレジスタに記憶されている値は 1 つずつデ
クリメントされます。
354
第 19 章 サウンドジェネレータ
[bit7, bit6] S1, S0 : 動作クロック選択ビット
これらのビットは , サウンドジェネレータ用のクロック入力信号を指定します。表
19.2-1 に , クロック入力信号の設定内容を示します。
表 19.2-1 クロック入力信号の設定内容
S1
S0
0
0
マシンクロック
0
1
1/2 マシンクロック
1
0
1/4 マシンクロック
1
1
1/8 マシンクロック
クロック入力
[bit5] TONE : トーン出力ビット
このビットを "1" に設定すると , SGO 信号はトグルフリップフロップからの単純方
形波形 ( トーンパルス ) になります。"1" 以外を設定した場合は , トーンパルスと
PWM パルスの混合 ( 論理和 ) 信号になります。
[bit2] INTE : 割込み許可ビット
このビットは , サウンドジェネレータの割込み信号を許可します。このビットが "1"
で , INT ビットも "1" に設定されると , サウンドジェネレータは割込み信号を出力し
ます。
[bit1] INT : 割込みビット
トーンパルスカウンタが , トーンカウントレジスタおよびデクリメントグレードレ
ジスタに指定したトーンパルス数をカウントすると , このビットは "1" に設定され
ます。
このビットは , "0" を書き込むと "0" にリセットされます。"1" を書き込んでも無効
となります。リードモディファイライト (RMW) 系命令では , 常に "1" を読み出しま
す。
[bit0] ST : スタートビット
このビットは , サウンドジェネレータの動作開始用です。このビットが "1" である
間は , サウンドジェネレータは動作しています。
このビットを "0" にリセットすると , サウンドジェネレータは現行のトーンサイク
ル終了時に動作を停止します。BUSY ビットは , サウンドジェネレータが完全に停
止したかどうかを示します。
355
第 19 章 サウンドジェネレータ
19.2.2
振幅データレジスタ
振幅データレジスタの機能について説明します。
■ 振幅データレジスタのビット構成
図 19.2-3 に , 振幅データレジスタのビット構成を示します。
図 19.2-3 振幅データレジスタのビット構成
SGAR
bit
アドレス :000094H
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
振幅データレジスタは , PWM パルスジェネレータのリロード値を記憶します。
レジスタ値はサウンドの振幅を表し , 各トーンサイクル終了時 , PWM パルスジェネ
レータにリロードされます。
SGCR レジスタの DEC ビットが "1" で , 減分カウンタがリロード値に達すると , このレ
ジスタ値は 1 つずつデクリメントされます。レジスタ値が "00H" になると , それ以上の
デクリメントはしません。ただし , サウンドジェネレータは , ST ビットがクリアされ
るまで動作し続けます。図 19.2-4 に , レジスタ値と PWM パルスの関係を示します。
図 19.2-4 レジスタ値と PWM パルスの関係
1 PWMサイクル
256入力クロックサイクル
レジスタ値
00H
1 入力クロックサイクル
B0H
128 入力クロックサイクル
FEH
256 入力クロックサイクル
FFH
256 入力クロックサイクル
(注意事項)レジスタ値が"FFH"に設定されると, PWM信号は常に"1"となります。
356
第 19 章 サウンドジェネレータ
周波数データレジスタ
19.2.3
周波数データレジスタの機能について説明します。
■ 周波数データレジスタのビット構成
図 19.2-5 に , 周波数データレジスタのビット構成を示します。
図 19.2-5 周波数データレジスタのビット構成
SGFR
bit
アドレス :000095H
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
周波数データレジスタは , 周波数カウンタのリロード値を格納します。
格納された値は , サウンド ( またはトグルフリップフロップからのトーン信号 ) の周波
数を表します。レジスタ値は , トグル信号が遷移するたびにカウンタにリロードされま
す。
図 19.2-6 に , トーン信号とレジスタ値の関係を示します。
図 19.2-6 トーン信号とレジスタの関係
1 トーンサイクル
トーン信号
(レジスタ値+1)× (レジスタ値+1)×
1 PWMサイクル
1 PWMサイクル
<注意事項>
動作中にレジスタ値を修正すると, 修正のタイミングによってデューティサイクルの50%
が変更されることもありますので , 注意してください。
357
第 19 章 サウンドジェネレータ
19.2.4
トーンカウントレジスタ
トーンカウントレジスタの機能について説明します。
■ トーンカウントレジスタのビット構成
図 19.2-7 に , トーンカウントレジスタのビット構成を示します。
図 19.2-7 トーンカウントレジスタのビット構成
SGTR
bit
アドレス :000096H
15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
トーンカウントレジスタは , トーンパルスカウンタのリロード値を格納します。トーン
パルスカウンタにはトーンパルス数 ( またはデクリメント動作数 ) が累積され , リロー
ド値になると SGCR レジスタの INT ビットを設定します。これらは , 割込みの頻度を
減少させるよう設計されています。
トーンパルスカウンタのカウント入力は , 減分カウンタからのキャリアウト信号と接
続されています。トーンカウントレジスタに "00H" が設定されると , トーンパルスカウ
ンタは , 減分カウンタからのキャリアウト信号ごとに SGCR レジスタの INT ビットを
設定します。累積トーンパルス数は次式で表されます。
(( デクリメントグレードレジスタ値 )+1) × (( トーンカウントレジスタ値 )+1)
すなわち , 両レジスタが "00H" に設定されると , トーンサイクルごとに SGCR レジスタ
の INT ビットが設定されます。
358
第 19 章 サウンドジェネレータ
19.2.5
デクリメントグレードレジスタ
デクリメントグレードレジスタの機能について説明します。
■ デクリメントグレードレジスタの機能
図 19.2-8 に , デクリメントグレードレジスタのビット構成を示します。
図 19.2-8 デクリメントグレードレジスタのビット構成
SGDR
bit
アドレス :000097H
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
初期値
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
デクリメントグレードレジスタは , 減分カウンタのリロード値を格納します。
この機能は , 振幅データレジスタに記憶した値を自動的にデクリメントするよう設計
されています。
SGCR レジスタの DEC ビットが "1" で , 減分カウンタがトーンパルス数をリロード値
までカウントすると , 振幅データレジスタに記憶された値は , トーンサイクル終了時に
1 つずつデクリメントされます。
この動作によって , より少ない CPU 介入でサウンドの自動デクリメントができるよう
になります。
このレジスタが指定したトーンパルス数は , 「レジスタ値 +1」であることに注意して
ください。デクリメントグレードレジスタが "00H" に設定されると , デクリメント動作
はトーンサイクルごとに行われます。
359
第 19 章 サウンドジェネレータ
19.2.6
サウンド禁止レジスタ
サウンド禁止レジスタのビット構成を示します。
■ サウンド禁止レジスタの機能
図 19.2-9 に , サウンド禁止レジスタのビット構成を示します。
図 19.2-9 サウンド禁止レジスタのビット構成
SGDBL
bit
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
リード / ライト
(−)
(−)
(−)
(−)
(−)
(−)
(−)
(R/W)
初期値
(−)
(−)
(−)
(−)
(−)
(−)
(−)
(0)
アドレス :000091H
このビットは , サウンドジェネレータのクロックを制御するために使用します。
このビットに "1" を書き込むと , サウンドジェネレータモジュールのクロックは使用不
可となります。"0" を設定すると , クロックがサウンドジェネレータモジュールに供給
されます。
このビットは , リセット時に "0" に初期化されます。読出しおよび書込みが可能です。
360
第 20 章
リアルタイムクロック
リアルタイムクロックの概要 , レジスタの構成 / 機
能および動作について説明します。
20.1
リアルタイムクロックの概要
20.2
リアルタイムクロックのレジスタ
20.3
リアルタイムクロックの動作説明
361
第 20 章 リアルタイムクロック
20.1
リアルタイムクロックの概要
リアルタイムクロックの概要とブロックダイヤグラムを示します。
■ リアルタイムクロックの概要
リアルタイムクロック ( ウォッチタイマ ) は , 以下のレジスタおよびカウンタなどで構
成されています。
• タイマ制御レジスタ
• サブセカンドレジスタ
• 秒 / 分 / 時間レジスタ
• 1/2 クロック分周器
• 21 ビットプリスケーラ
• 秒 / 分 / 時間カウンタ
リアルタイムクロックの動作はリアルワールドタイマの動作と同じであり , リアル
ワールドタイマ情報を提供します。
■ リアルタイムクロックのブロックダイヤグラム
図 20.1-1 リアルタイムクロックのブロックダイヤグラム
発振
クロック
21ビット
プリスケーラ
1/2クロック
分周器
CO
EN
サブセカンド
レジスタ
UPDT
ST
秒カウンタ
CI
EN
LOAD
CO
分カウンタ
時間カウンタ
CO
6ビット
6ビット
CO
5ビット
秒/分/時間レジスタ
INTE0 INT0
INTE1 INT1
INTE2 INT2
INTE3 INT3
IRQ
発振クロックは , OSCCR レジスタの RTCSRC ビットにより RTC へのソースクロック
としてメインクロック (4MHz) またはサブクロック (32kHz) を選択することが可能で
す。詳細は「3.12.7 クロック生成制御部のレジスタ詳細説明 ■ OSCCR: 発振制御レジ
スタ」を参照してください。
362
第 20 章 リアルタイムクロック
20.2
リアルタイムクロックのレジスタ
リアルタイムクロックのレジスタの機能について説明します。
■ リアルタイムクロックのレジスタ一覧
図 20.2-1 に , リアルタイムクロックのレジスタ一覧を示します。
図 20.2-1 リアルタイムクロックのレジスタ一覧
クロック禁止レジスタ (WTDBL)
bit
7
6
アドレス :00000145H
−
−
−
−
5
4
3
2
1
−
−
−
−
−
−
−
−
−
−
0
DBL
R/W
タイマ制御レジスタ (WTCR)
bit 15
14
13
12
11
10
9
8
アドレス :00000146H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0
R/W R/W R/W R/W R/W R/W R/W R/W
bit
アドレス :00000147H
7
6
5
TST2 TST1 TST0
R/W R/W R/W
サブセカンドレジスタ (WTBR)
bit 23
アドレス :00000149H
−
22
21
−
−
bit 15
アドレス :0000014AH D15
R/W
bit
アドレス :0000014BH
4
−
−
3
2
RUN UPDT
R
R/W
1
初期値
-------0B
初期値
00000000B
−
−
0
ST
R/W
初期値
000-00-XB
−
−
20
D20
R/W
19
D19
R/W
18
D18
R/W
17
D17
R/W
16
D16
R/W
初期値
---XXXXXB
14
D14
R/W
13
D13
R/W
12
D12
R/W
11
D11
R/W
10
D10
R/W
9
D9
R/W
8
D8
R/W
初期値
XXXXXXXXB
7
D7
R/W
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
初期値
XXXXXXXXB
15
14
−
−
−
−
13
S5
R/W
12
S4
R/W
11
S3
R/W
10
S2
R/W
9
S1
R/W
8
S0
R/W
初期値
--XXXXXXB
7
6
−
−
−
−
5
M5
R/W
4
M4
R/W
3
M3
R/W
2
M2
R/W
1
M1
R/W
0
M0
R/W
初期値
--XXXXXXB
15
14
13
−
−
−
−
−
−
12
H4
R/W
11
H3
R/W
10
H2
R/W
9
H1
R/W
8
H0
R/W
初期値
---XXXXXB
−
秒レジスタ (WTSR)
bit
アドレス :0000014EH
分レジスタ (WTMR)
bit
アドレス :0000014DH
時間レジスタ (WTHR)
bit
アドレス :0000014CH
363
第 20 章 リアルタイムクロック
■ クロック禁止レジスタ (WTDBL)
図 20.2-2 クロック禁止レジスタ (WTDBL) のビット構成
bit
アドレス :00000145H
7
6
5
4
3
2
1
−
−
−
−
−
−
−
−
−
−
−
−
−
−
0
DBL
R/W
初期値
-------0B
[bit0] DBL : クロック禁止
本ビットを "1" に設定すると , RTC モジュールのクロックは禁止されます。通常の
動作のためには , このビットを "0" に設定してください。本ビットは "0" に初期化
されます。読出しおよび書込みが可能です。
■ タイマ制御レジスタ (WTCR)
図 20.2-3 タイマ制御レジスタ (WTCR) のビット構成
bit 15
14
13
12
11
10
9
8
アドレス :00000146H INTE3 INT3 INTE2 INT2 INTE1 INT1 INTE0 INT0
R/W R/W R/W R/W R/W R/W R/W R/W
初期値
00000000B
bit
7
6
5
アドレス :00000147H TST2 TST1 TST0
R/W R/W R/W
初期値
000-00-XB
4
−
−
3
2
RUN UPDT
R
R/W
1
−
−
0
ST
R/W
[bit15 ∼ bit8] INT3 ∼ INT0, INTE3 ∼ INTE0 : 割込みフラグおよび割込み許可フラグ
INT0 から INT3 までは割込みフラグです。
このフラグは , 秒カウンタ , 分カウンタおよび時間カウンタがそれぞれオーバフロー
した場合に設定されます。対応する INTE ビットが "1" の場合に INT ビットの設定
を行うと , ウォッチタイマは割込み信号を出します。本フラグは , 秒 / 分 / 時間の単
位で割込み信号を出すように設計されています。INT ビットに "0" を書き込むとフ
ラグはクリアされ , "1" の書込みは無効です。INT ビットで動作するリードモディ
ファイライト (RMW) 系命令はすべて "1" を読み出します。
[bit7 ∼ bit5] TST2 ∼ TST0 : テストビット
本ビットは , デバイステスト用です。すべてのユーザアプリケーションにおいて ,
"000B" に設定しなければなりません。
[bit3] RUN : フラグ
本ビットは読出しのみ可能です。読出し値が "1" の場合 , RTC モジュールが動作中
であることを示しています。
364
第 20 章 リアルタイムクロック
[bit2] UPDT : 更新ビット
UPDT ビットは , 秒 / 分 / 時間カウンタ値の修正用です。
カウンタ値を修正するには , 秒 / 分 / 時間レジスタに修正データを書き込みます。次
に UPDT ビットを "1" に設定します。レジスタ値は , 21 ビットプリスケーラからの
CO 信号で ( 書き込んだ ), 次のサイクルでカウンタにロードされます。UPDT ビッ
トは , カウンタ値が更新されるとハードウェアによりリセットされます。ただし ,
ソフトウェアによる設定動作とハードウェアによるリセット動作が同時に発生し
た場合 , UPDT ビットはリセットされません。
UPDT ビットへの "0" の書込みは無効です。リードモディファイライト (RMW) 系命
令では , "0" は読出し値です。
[bit0] ST : スタートビット
ST ビットを "1" に設定すると , ウォッチタイマはレジスタから秒 / 分 / 時間値をロー
ドし , 動作を開始します。"0" にリセットした場合 , カウンタおよびプリスケーラは
すべて "0" にリセットされ停止します。
本ビットは , カウンタ値の更新にも使用できます。ST ビットを "0" に設定し , RUN
が "0" になるまで待ってからカウンタ値を更新して , ST ビットを "1" に設定します。
<注意事項>
初期設定の方法については 「20.3 リアルタイムクロックの動作説明」を参照してくださ
い。
カウンタ値の変更を行う場合には ST ビットを使用することをお勧めします。
UPDT ビットによるカウンタ値の変更後 , クロック禁止レジスタ (WTDBL) によるクロッ
クの停止を行う際には , 時間・分・秒レジスタの読出しを行い , 設定が反映されているこ
とを確認した後にクロックの停止を行ってください。
365
第 20 章 リアルタイムクロック
■ サブセカンドレジスタ (WTBR)
図 20.2-4 サブセカンドレジスタ (WTBR) のビット構成
bit
アドレス :00000149H
23
22
21
−
−
−
−
−
−
20
D20
R/W
19
D19
R/W
18
D18
R/W
17
D17
R/W
16
D16
R/W
初期値
---XXXXXB
bit 15
アドレス :0000014AH D15
R/W
14
D14
R/W
13
D13
R/W
12
D12
R/W
11
D11
R/W
10
D10
R/W
9
D9
R/W
8
D8
R/W
初期値
XXXXXXXXB
bit
アドレス :0000014BH
6
D6
R/W
5
D5
R/W
4
D4
R/W
3
D3
R/W
2
D2
R/W
1
D1
R/W
0
D0
R/W
初期値
XXXXXXXXB
7
D7
R/W
[bit20 ∼ bit0] D20 ∼ D0 : リロードデータ
サブセカンドレジスタは , 21 ビットプリスケーラのリロード値を格納します。この
値は , リロードカウンタが "0" になるとリロードされます。3 バイトすべてを修正す
る場合は , 書込み命令間にリロード動作が行われていないことを確認してくださ
い。そうしないと , 21 ビットプリスケーラは , 新旧のデータバイトを結合した正し
くない値をロードしてしまいます。一般的には , サブセカンドレジスタは , ST ビッ
トが "0" の間に更新することが推奨されています。サブセカンドレジスタを "0" に
設定した場合 , 21 ビットプリスケーラは一切動作しません。
表 20.2-1 サブセカンドレジスタ設定表
WTBR レジスタ値
時間
366
f =4MHz
f= 32kHz
0.5μs
0
−
1μs
1
−
10μs
19
−
100μs
199
−
1ms
1999
15
10ms
19999
159
100ms
199999
1599
500ms
999999
7999
1s
1999999
15999
1.04s
2097151
16776.2
10s
−
159999
50s
−
799999
65.5s
−
1047999
第 20 章 リアルタイムクロック
■ 秒レジスタ (WTSR)
図 20.2-5 秒レジスタ (WTSR) のビット構成
bit
アドレス :0000014EH
15
14
−
−
−
−
13
S5
R/W
12
S4
R/W
11
S3
R/W
10
S2
R/W
9
S1
R/W
8
S0
R/W
初期値
--XXXXXXB
詳細説明は「■時間レジスタ (WTHR)」を参照してください。
■ 分レジスタ (WTMR)
図 20.2-6 分レジスタ (WTMR) のビット構成
bit
アドレス :0000014DH
7
6
−
−
−
−
5
M5
R/W
4
M4
R/W
3
M3
R/W
2
M2
R/W
1
M1
R/W
0
M0
R/W
初期値
--XXXXXXB
詳細説明は「■時間レジスタ (WTHR)」を参照してください。
■ 時間レジスタ (WTHR)
図 20.2-7 時間レジスタ (WTHR) のビット構成
bit
アドレス :0000014CH
15
14
13
−
−
−
−
−
−
12
H4
R/W
11
H3
R/W
10
H2
R/W
9
H1
R/W
8
H0
R/W
初期値
---XXXXXB
秒 / 分 / 時間レジスタは , 時間情報を格納します。
時間情報は , 秒 , 分 , および時間の 2 進表記です。
本レジスタを読み出すと , カウンタ値だけを戻します。レジスタは書込み値と結合でき
ますが , その書込みデータは UPDT ビットを "1" に設定した後に , カウンタにロードさ
れます。
バイトレジスタは3つあるので, レジスタから出力された値に矛盾がないことを確認し
てください。すなわち , 出力値「1 時間 , 59 分 , 59 秒」は , 「0 時間 , 59 分 , 59 秒」,
「1 時間 , 0 分 , 0 秒」, または「2 時間 , 0 分 , 0 秒」である可能性があります。
また , MCU の動作クロックが発振クロックの半分の場合 (PLL が停止している場合 ), 本
レジスタからの読出し値は破損していることがあります。これは , 読出し動作とカウン
ト動作の同期調整のために起こります。したがって , 読出し命令のトリガには , 秒割込
みを使用することを推奨します。
<注意事項>
このモジュールでは, 発振器に直結されたRTCクロックに比べて, R-basクロック
(CLKP)
が遅くないことを想定しています。該当しない場合は , レジスタにアクセスすると , 未定
義の値が読み出されます。
367
第 20 章 リアルタイムクロック
20.3
リアルタイムクロックの動作説明
リアルタイムクロックの動作を説明します。
■ リアルタイムクロックの動作説明
RTC 起動の際には , 以下の設定を行う必要があります。
1) WTDBL bit0 に "0" を書き込みます。
2) WTCR bit0, ST(Start)ビットに"1"を書き込み, その後STビットに"0"を書き込みます。
3) WTBR に初期値 ( 任意の値 ) を書き込みます。
4) WTHR, WTMR, WTSR の各レジスタに初期値 ( 任意の値 ) を書き込みます。
5) WTCR レジスタ内 INT0 ∼ INT3 ビットに "0" を書き込み , 割込みフラグを初期化し
てください。
6) WTCR レジスタ内 , INTE0 ∼ INTE3 の設定を行ってください。
割込み通知を有効にする場合は , 本設定を行ってください。
7) WTCR ST ビットに "1" を書き込み ,RTC の動作を開始してください。
<注意事項>
RTC の内部レジスタへのアクセスが必要な場合には , WTDBL bit0 に "0" を書き込んだ後
にアクセスを行ってください。WTDBL bit0 が "1" の状態でアクセスを行うと , 読出し時
には不定な値が読み出され , 書込み時には書き込んだ値がレジスタに反映されません。
RTC を停止することにより , 内部レジスタの設定が初期化されます。そのため , 再起動を
行う際には必要となるレジスタ設定を行った後に , WTCR:ST ビットを "1" に設定してく
ださい。
RTC のカウンタは , 通常 INITX/ ソフトウェアリセットでクリアされますが , 時分秒のレジ
スタはクリアされず , 値が保持されます。
動作開始時にレジスタ値をクリアする場合は , 書
込みにて初期値を設定してください。
メインクロック RTC 動作をご使用の場合は , ストップモードへ遷移させる前にクロッ
クソースを原発振入力の 1/2 に設定し , PLL を停止させ , さらに基本クロック分周レジ
スタ 0, 1(DIVR0, DIVR1) により , CPU クロック (CLKB), 周辺クロック (CLKP), 外部イ
ンタフェースクロック (CLKT) の各クロックを 8 分周以上の分周比に設定してから , ス
トップモードへ遷移させてください。
368
第 21 章
UART
UART の概要 , レジスタの構成 / 機能および UART
の動作について説明します。
21.1
UART の概要
21.2
UART のレジスタ
21.3
UART の動作
21.4
UART の応用例
369
第 21 章 UART
21.1
UART の概要
UART は , 非同期 ( 調歩同期 ) 通信 , またはクロック同期通信を行うためのシリアル
I/O ポートです。
■ UART の特長
• 全二重ダブルバッファ
• 非同期 ( 調歩同期 ), クロック同期通信が可能
• マルチプロセッサモードのサポート
• 完全プログラマブルボーレート : 内蔵タイマにより任意のボーレートを設定可能
(「第 15 章 U-Timer」参照 )。
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• 転送信号は NRZ 符号
■ UART のブロックダイヤグラム
図 21.1-1 UART のブロックダイヤグラム
制御信号
U-Timer
受信割込み
(CPUへ)
SC(クロック)
送信クロック
外部クロック クロック
SC
選択回路
送信割込み
(CPUへ)
受信クロック
受信制御回路
SI(受信データ)
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
検出回路
受信ビット
カウンタ
受信パリティ
カウンタ
受信パリティ
カウンタ
SO(送信データ)
受信状態判定回路
受信用シフタ
DMA用
受信エラー発生信号
(DMACへ)
受信終了
SIDR
送信用シフタ
送信開始
SODR
R-bus
SMR
レジスタ
MD1
MD0
CS0
SCKE
370
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
制御信号
第 21 章 UART
21.2
UART のレジスタ
UART で使用するレジスタの構成および機能について説明します。
■ UART のレジスタ一覧
図 21.2-1 に , UART のレジスタ一覧を示します。
図 21.2-1 UART のレジスタ構成
SMR
bit
アドレス :000063H
7
MD1
6
MD0
5
−
リード / ライト (R/W) (R/W) ( − )
(0)
(−)
初期値 (0)
4
−
(−)
(−)
3
CS0
(W)
(0)
2
1
0
− SCKE −
( − ) (R/W) ( − )
(0)
(−)
(−)
SCR
bit
15
14
13
12
11
10
9
8
PEN
P
SBL
CL
A/D REC RXE TXE
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(1)
(0)
(0)
初期値 (0)
アドレス :000062H
SIDR/SODR
bit
アドレス :000061H
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
初期値 (X)
SSR
bit
アドレス :000060H
リード / ライト
初期値
15
PE
(R)
(0)
14
ORE
(R)
(0)
13
12
11
10
9
8
FRE RDRF TDRE BDS RIE
TIE
(R)
(R)
(R) (R/W) (R/W) (R/W)
(0)
(0)
(1)
(0)
(0)
(0)
■ シリアルモードレジスタ (SMR) のビット構成
図 21.2-2 シリアルモードレジスタ (SMR) のビット構成
SMR
bit
7
6
5
MD1 MD0
−
リード / ライト (R/W) (R/W) ( − )
(0)
(−)
初期値 (0)
アドレス :000063H
4
−
(−)
(−)
3
CS0
(W)
(0)
2
1
0
SCKE
−
−
( − ) (R/W) ( − )
(0)
(−)
(−)
SMR は UART の動作モードを指定します。動作モードの設定は動作停止中に行い , 動
作中にこのレジスタへの書込みは行わないでください。
371
第 21 章 UART
[bit7, bit6] MD1, MD0 (Mode Select)
UART の動作モードを選択します。
モード
MD1
MD0
0
0
0
非同期 ( 調歩同期 ) ノーマルモード [ 初期値 ]
1
0
1
非同期 ( 調歩同期 ) マルチプロセッサモード
2
1
0
クロック同期モード
−
1
1
設定禁止
動作モード
( 注意事項 )
モード 1 のクロック非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU
に数台のスレーブ CPU が接続される使用方法です。本リソースでは , 受信デー
タのデータ形式を判別できません。したがって , マルチプロセッサモードのマス
タのみをサポートします。また , パリティチェック機能は使用できませんので
SCR レジスタの PEN は "0" に設定してください。
[bit5, bit4] (Reserved bit)
常に "1" を書き込んでください。
[bit3] CS0 (Clock Select)
UART の動作クロックを選択します。
0:内蔵タイマ (U-Timer)[ 初期値 ]
1:外部クロック
( 注意事項 )
シリアルモードレジスタの bit3 による内 / 外ボーレートクロックの切換えは書込
み後 , 直ちに反映されるので , UART が停止状態のときに行ってください。
[bit2] (Reserved bit)
常に "0" を書き込んでください。
[bit1] SCKE (SCLK Enable)
クロック同期モード ( モード 2) で通信を行う場合 , SCK 端子をクロック入力にする
か , クロック出力端子として使用するかを指定します。
クロック非同期モード時または外部クロックモード時では"0"に設定してください。
0:クロック入力端子として機能します。[ 初期値 ]
1:クロック出力端子として機能します。
( 注意事項 )
クロック入力端子として使うには , CS0 ビットを "1" にして外部クロックを選択
しておく必要があります。
[bit0] (Reserved bit)
常に "0" を書き込んでください。
372
第 21 章 UART
■ シリアルコントロールレジスタ (SCR) のビット構成
図 21.2-3 シリアルコントロールレジスタ (SCR) のビット構成
SCR
bit
15
14
13
12
11
10
9
8
アドレス :000062H
PEN
P
SBL
CL
A/D REC RXE TXE
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(1)
(0)
(0)
初期値 (0)
SCR はシリアル通信を行う場合の転送プロトコルを制御します。
[bit15] PEN (Parity Enable)
シリアル通信において , パリティを付加してデータ通信を行うかどうかを指定しま
す。
0:パリティなし [ 初期値 ]
1:パリティあり
( 注意事項 )
パリティを付加できるのは , 非同期 ( 調歩同期 ) 通信モードのノーマルモード
( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期
通信 ( モード 2) では , パリティを付加することはできません。
[bit14] P (Parity)
パリティを付加してデータ通信を行うとき , 奇数 / 偶数パリティを指定します。
0:偶数パリティ [ 初期値 ]
1:奇数パリティ
[bit13] SBL (Stop bit Length)
非同期 ( 調歩同期 ) 通信を行うときのフレームエンドマークであるストップビット
のビット長を指定します。
0:1 ストップビット [ 初期値 ]
1:2 ストップビット
[bit12] CL (Character Length)
送受信する 1 フレームのデータ長を指定します。
0:7 ビットデータ [ 初期値 ]
1:8 ビットデータ
( 注意事項 )
7 ビットデータを扱えるのは , 非同期 ( 調歩同期 ) 通信のうちのノーマルモード
( モード 0) のみです。マルチプロセッサモード ( モード 1) およびクロック同期
通信 ( モード 2) では 8 ビットデータとしてください。
373
第 21 章 UART
[bit11] A/D (Address/Data)
非同期 ( 調歩同期 ) 通信のマルチプロセッサモード ( モード 1) において , 送受信す
るフレームのデータ形式を指定します。
0:データフレーム [ 初期値 ]
1:アドレスフレーム
[bit10] REC (Receiver Error Clear)
"0"を書き込むことで, SSRレジスタのエラーフラグ(PE, ORE, FRE)をクリアします。
"1" の書込みは無効であり , 読出しは常に "1" になります。
[bit9] RXE (Receiver Enable)
UART の受信動作を制御します。
0:受信動作を禁止します。[ 初期値 ]
1:受信動作を許可します。
( 注意事項 )
受信中 ( 受信シフトレジスタにデータが入力されているとき ) に受信動作を禁止
した場合には , そのフレームの受信を完了し受信データバッファ SIDR レジスタ
に受信データを格納したところで受信動作を停止します。
[bit8] TXE (Transmitter Enable)
UART の送信動作を制御します。
0:送信動作を禁止します。[ 初期値 ]
1:送信動作を許可します。
<注意事項>
送信中 ( 送信レジスタからデータが出力されているとき ) に送信動作を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなった後に送信動作を停止しま
す。
374
第 21 章 UART
■ シリアルインプットデータレジスタ (SIDR) / シリアルアウトプットデータレジス
タ (SODR)
図 21.2-4 シリアルインプットデータレジスタ (SIDR) /
シリアルアウトプットデータレジスタ (SODR) のビット構成
SIDR
bit
7
D7
(R)
(X)
6
D6
(R)
(X)
5
D5
(R)
(X)
4
D4
(R)
(X)
3
D3
(R)
(X)
2
D2
(R)
(X)
1
D1
(R)
(X)
0
D0
(R)
(X)
bit
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
リード / ライト
初期値
(W)
(X)
(W)
(X)
(W)
(X)
(W)
(X)
(W)
(X)
(W)
(X)
(W)
(X)
(W)
(X)
アドレス :000061H
リード / ライト
初期値
SODR
アドレス :000061H
受信 / 送信用のデータバッファレジスタです。
データ長が 7 ビットの場合 , bit7(D7) は無効データとなります。SODR レジスタへの書
込みは , SSR レジスタの TDRE が "1" のときに行ってください。
<注意事項>
本レジスタへの書込み動作は , SODR レジスタへの書込みを意味します。また , 読出し動
作は SIDR レジスタからの読出しを意味します。
375
第 21 章 UART
■ シリアルステータスレジスタ (SSR) のビット構成
図 21.2-5 シリアルステータスレジスタ (SSR) のビット構成
SSR
bit
アドレス :000060H
リード / ライト
初期値
15
PE
(R)
(0)
14
ORE
(R)
(0)
13
12
11
10
9
8
FRE RDRF TDRE BDS RIE
TIE
(R)
(R)
(R) (R/W) (R/W) (R/W)
(0)
(0)
(1)
(0)
(0)
(0)
[bit15] PE (Parity Error)
受信時にパリティエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0:パリティエラーなし [ 初期値 ]
1:パリティエラー発生
[bit14] ORE (Over Run Error)
受信時にオーバランエラーが発生したときにセットされる割込み要求フラグです。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0:オーバランエラーなし [ 初期値 ]
1:オーバランエラー発生
[bit13] FRE (Framing Error)
受信時にフレーミングエラーが発生したときにセットされる割込み要求フラグで
す。
一度セットされたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書
き込みます。
本ビットがセットされた場合には , SIDR のデータは無効データとなります。
0:フレーミングエラーなし [ 初期値 ]
1:フレーミングエラー発生
[bit12] RDRF (Receiver Data Register Full)
SIDR レジスタに受信データがあることを示す割込み要求フラグです。
SIDR レジスタに受信データがロードされるとセットされ , SIDR レジスタを読み出
すと自動的にクリアされます。
0:受信データなし [ 初期値 ]
1:受信データあり
376
第 21 章 UART
[bit11] TDRE (Transmitter Data Register Empty)
SODR に送信データを書込み可能であることを示す割込み要求フラグです。
SODR レジスタに送信データを書き込むとクリアされます。書き込んだデータが送
信用シフタにロードされて転送が開始されると再びセットされ , 次の送信データを
書き込めることを表します。
0:送信データの書込み禁止
1:送信データの書込み許可 [ 初期値 ]
[bit10] BDS (Bit Direction Select)
転送方向選択ビットです。
0:最下位ビット (LSB) 側から転送を開始します。[ 初期値 ]
1:最上位ビット (MSB) 側から転送を開始します。
( 注意事項 )
SIDR/SODR の更新後に本ビットの変更を行うと , そのデータは無効となります。
[bit9] RIE (Receiver Interrupt Enable)
受信割込みを制御します。
0:割込みを禁止します。[ 初期値 ]
1:割込みを許可します。
( 注意事項 )
受信割込み要因は , PE, ORE, FRE によるエラー発生のほか , RDRF による正常受
信があります。
[bit8] TIE (Transmitter Interrupt Enable)
送信割込みを制御します。
0:割込みを禁止します。[ 初期値 ]
1:割込みを許可します。
( 注意事項 )
送信割込み要因は , TDRE による送信要求があります。
377
第 21 章 UART
21.3
UART の動作
UART には , 非同期 ( 調歩同期 ) モードとクロック同期モードの 2 種類の動作モード
があります。非同期 ( 調歩同期 ) モードには , ノーマルモードとマルチプロセッサ
モードがあります。以下に , 各動作モードにおける動作について説明します。
■ UART の動作モード
UART は , 以下に示す動作モードを持ち , SMR レジスタ , SCR レジスタに値を設定する
ことによりモードを切り換えることができます。
モード
パリティ
データ長
動作モード
あり / なし
7 ビット
あり / なし
8 ビット
非同期 ( 調歩同期 )
ノーマルモード
1
なし
8+1 ビット
非同期 ( 調歩同期 )
マルチプロセッサモード
2
なし
8 ビット
クロック同期モード
0
ストップビット長
1 ビットまたは
2 ビット
なし
ただし , 非同期 ( 調歩同期 ) モードでのストップビット長については送信動作のみ指定
が可能です。受信動作については常に 1 ビット長となります。上記モード以外では動
作しませんので設定しないでください。
■ UART のクロック選択
● 内部タイマ
CS0 を "0" に設定して U-Timer を選択した場合は , U-Timer に設定したリロード値で
ボーレートが決まります。このときのボーレートの算出式は以下のとおりです。
非同期 ( 調歩同期 )
φ/(16 × β)
クロック同期
φ/β
φ:周辺系マシンクロック周波数
β:U-Timer で設定した周期 (2n+2 または 2n+3, n はリロード値 )
非同期 ( 調歩同期 ) モードのボーレートは , 設定したボーレートの -1% から +1% まで
の範囲で転送が可能です。
● 外部クロック
CS0 を "1" に設定して外部クロックを選択した場合のボーレートは , 外部クロックの周
波数を f とすると以下のようになります。
非同期 ( 調歩同期 )
f/16
クロック同期
f
ただし , f は最大 3.125MHz までです。
378
第 21 章 UART
非同期 ( 調歩同期 ) モード
21.3.1
UART を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用するとき , 転送方式は非同期となります。
■ 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。
以下に転送データフォーマットを示します。
図 21.3-1 転送データフォーマット
S1,S0
0
1
Start LSB
0
1
1
0
0
1
0
1
1
MSB Stop
---- (モード0)
A/D Stop ---- (モード1)
転送されたデータは 01001101B
図に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始まり ,
LSB ファーストで指定されたデータビット長の転送が行われ , ストップビット ("H" レ
ベルデータ ) で終了します。
外部クロックを選択している場合は , 常にクロックを入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビットまたは 8 ビットに設定することが
できますが , マルチプロセッサモード ( モード 1) では 8 ビットでなければなりません。
また , マルチプロセッサモードではパリティを付加することができません。その代わり
A/D ビットが必ず付加されます。
■ 受信動作
SCR レジスタの RXE ビット (bit1) が "1" ならば , 常に受信動作が行われています。
受信ラインにスタートビットが現れると , SCR レジスタで決められたデータフォー
マットに従い 1 フレームデータの受信が行われます。1 フレームの受信が終わると , エ
ラーが発生した場合にはエラーフラグのセットが行われた後 , RDRF フラグ (SSR レジ
スタ bit4) がセットされます。このとき同じ SSR レジスタの RIE ビット (bit1) が "1" に
セットされていれば CPU に対して受信割込みが発生します。SSR レジスタの各フラグ
を調べ , 正常受信であれば SIDR レジスタを読み出して , エラーが発生していれば必要
な処理を行うようにしてください。
RDRF フラグは , SIDR レジスタを読み出すとクリアされます。
379
第 21 章 UART
■ 送信動作
SSR レジスタの TDRE フラグ (bit3) が "1" のとき , SODR レジスタに送信データを書き
込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" ならば送信が行われます。
SODR レジスタにセットしたデータが送信用シフトレジスタにロードされて送信が開
始されると TDRE フラグが再びセットされ , 次の送信データをセットできるようにな
ります。このとき同じ SSR レジスタの TIE ビット (bit0) が "1" にセットされていれば
CPU に対して送信割込みが発生して , SODR レジスタに送信データをセットするよう
に要求されます。
TDRE フラグは , SODR レジスタにデータをセットするといったんクリアされます。
380
第 21 章 UART
21.3.2
クロック同期モード
UART を動作モード 2 で使用するとき , 転送方法はクロック同期となります。
■ 転送データフォーマット
UART は , NRZ(Non Return to Zero) 形式のデータのみを扱います。以下に送受信クロッ
クとデータフォーマットとの関係を示します。
図 21.3-2 転送データフォーマット
SODR書込み
マーク
SC
RXE, TXE
S1, S0
1
LSB
0
1
1
0
0
1
0
MSB
- - - -(モード2)
転送されたデータは 01001101B
内部クロック (U-Timer) を選択している場合は , データを送信するとデータ受信用同期
クロックが自動的に生成されます。
外部クロックを選択している場合は , 送信側 UART かの送信用データバッファ SODR
レジスタにデータがあることを (TDRE フラグが "0") を確かめた後 , 正確に 1 バイト分
のクロックを供給する必要があります。送信開始前と終了後は , 必ずマークレベルにし
てください。
データ長は 8 ビットのみとなり , パリティを付加することはできません。また , スター
ト / ストップビットがないのでオーバランエラー以外のエラーの検出は行われません。
381
第 21 章 UART
■ 初期化
クロック同期モードを使用する場合の各制御レジスタの設定値を示します。
• SMR レジスタ
MD1, MD0
:"10B"
CS0
:クロック入力を指定
SCKE
:内部タイマの場合 "1", 外部クロックの場合 "0"
SOE
:送信を行う場合 "1", 受信のみの場合 "0"
• SCR レジスタ
PEN
:"0"
P, SBL, A/D
:これらのビットは意味を持ちません
CL
:"1"
REC
:"0"( 初期化のため )
RXE, TXE
:少なくとも , どちらか一方を "1"
• SSR レジスタ
RIE
:割込みを使用する場合 "1", 使用しない場合 "0"
TIE
:"0"
■ 送信開始
SODR レジスタへの書込みによって通信を開始します。受信のみの場合でも必ず仮の
送信データを SODR レジスタに書き込む必要があります。
■ 送信終了
SSR レジスタの RDRF フラグが "1" に変化したことにより確認できます。SSR レジス
タの ORE ビットによって , 通信が正常に行われたことを確認してください。
382
第 21 章 UART
21.3.3
割込み発生およびフラグのセットタイミング
UART の割込み発生およびフラグのセットタイミングを説明します。
UART は , 5 つのフラグと 2 つの割込み要因を持ちます。
フラグは , PE, ORE, FRE, RDRF, TDRE です。各フラグの意味は「22.2 LIN-UART のレ
ジスタ一覧 ■シリアルステータスレジスタ (SSR)」を参照してください。
PE, ORE, FRE は , 受信時にエラーが発生したときセットされ , SCR レジスタの REC に
"0" を書き込むとクリアされます。
RDRF は受信データが SIDR レジスタにロードされるとセットされ , SIDR レジスタを
読み出すことでクリアされます。ただし , モード 1 ではパリティ検出機能 , モード 2 で
はパリティ検出機能とフレーミングエラー検出機能はありません。TDRE は , SODR レ
ジスタが空になり書込み可能な状態になるとセットされ, SODRレジスタへ書込みを行
うとクリアされます。
割込み要因は , 送信用と受信用のものです。受信時は PE/ORE/FRE/RDRF により割込み
を要求します。送信時は TDRE により割込みを要求します。各動作モードによる割込
みフラグのセットタイミングを以下に示します。
● モード 0 の受信動作時
PE, ORE, FRE, RDRF は受信動作が終了し最後のストップビットを検出するときにフラ
グがセットされ , CPU への割込み要求が発生します。PE, ORE, FRE がアクティブのと
きは , SIDR のデータは無効データとなります。
図 21.3-3 ORE, FRE, RDRF のセットタイミング ( モード 0)
データ
D6
D7
ストップ
PE, ORE, FRE
RDRF
受信割込み
● モード 1 の受信動作時
ORE, FRE, RDRF は受信転送が終了し , 最後のストップビットを検出するときにフラグ
がセットされ , CPU への割込み要求が発生します。受信可能なデータ長は 8 ビットの
ため最後の 9 ビット目のアドレス / データを示すデータは無効となります。ORE, FRE
がアクティブのときは SIDR のデータは無効データとなります。
383
第 21 章 UART
図 21.3-4 ORE, FRE, RDRF のセットタイミング ( モード 1)
データ
D7
アドレス/データ
ストップ
ORE, FRE
RDRF
受信割込み
● モード 2 の受信動作時
ORE, RDRF は受信動作が終了し , 最後のデータ (D7) を検出するときにフラグがセット
され , CPU への割込み要求が発生します。ORE がアクティブのときは , SIDR のデータ
は無効データとなります。
図 21.3-5 ORE, RDRF のセットタイミング
データ
D5
D6
D7
ORE
RDRF
受信割込み
● モード 0, モード 1, モード 2 の送信動作時
TDRE は SODR レジスタへ書込みが行われるとクリアされ , 内部のシフトレジスタに
転送された後 , 次のデータ書込みが可能な状態になるとセットされ , CPU への割込み要
求が発生します。送信動作中に SCR レジスタの TXE に "0"( モード 2 のときは RXE も
含む ) を書き込むと , SSR レジスタの TDRE が "1" となり , 送信用のシフタが停止して
から UART の送信動作を禁止します。送信動作中に SCR レジスタの TXE に "0"( モー
ド 2 のときは RXE も含む ) を書き込んだ後 , 送信が停止する前に SODR レジスタへ書
き込まれたデータは送信されます。
図 21.3-6 TDRE のセットタイミング ( モード 0, 1)
SODR書込み
TDRE
CPUへ割込み要求をする
SO割込み
SO出力
ST D0 D1 D2 D3 D4 D5 D6 D7 SP SP ST D0 D1 D2 D3
A/D
ST:スタートビット
D7~D0:データビット
SP:ストップビット
A/D:アドレス/データマルチプレクサ
384
第 21 章 UART
図 21.3-7 TDRE のセットタイミングモード ( モード 2)
SODR書込み
TDRE
CPUへ割込み要求をする
SO割込み
SO出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
D7~D0:データビット
■ 使用上の注意
通信モードの設定は動作停止中に行ってください。
モード設定中に送受信したデータは保証されません。
385
第 21 章 UART
21.4
UART の応用例
UART のモード 1 における応用例について説明します。
モード 1 は , 1 台のホスト CPU に数台のスレーブ CPU が接続されるような場合に
使用されます。このリソースでは , ホスト側の通信インタフェースのみサポートし
ます。
■ UART の応用例
図 21.4-1 モード 1 を使用したシステム構築例
SO
SI
ホストCPU
SO SI
スレーブCPU#0
SO
SI
スレーブCPU#1
通信はホスト CPU がアドレスデータを転送することによって始まります。アドレス
データとは , SCR レジスタの A/D が "1" のときのデータで , これにより通信先となるス
レーブ CPU が選択され , ホスト CPU との通信が可能となります。通常データは , SCR
レジスタの A/D が "0" のときのデータです。以下に , そのフローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので SCR レジスタの
PEN ビットは "0" としてください。
386
第 21 章 UART
図 21.4-2 モード 1 使用時のフローチャート
(ホストCPU)
START
転送モードを"1"とする
D0~D7にスレーブCPU
を選択するデータをセッ
トし, A/Dに "1"をセッ
トして1バイト転送
A/Dに "0"をセット
受信動作許可
スレーブCPUと通信
NO
通信終了?
YES
NO
通信終了?
YES
受信動作禁止
END
387
第 21 章 UART
388
第 22 章
LIN-UART
LIN-UART の概要 , レジスタの構成 / 機能および動
作について説明します。
22.1
LIN-UART の概要
22.2
LIN-UART のレジスタ一覧
22.3
インプットキャプチャによるボーレート検出
22.4
LIN-UART の動作
22.5
UART 割込み
22.6
LIN-UART のクロック同期
22.7
フラグセットのタイミング
22.8
LIN-UART の特別仕様
22.9
LIN 通信動作
22.10 UART からの変更点
22.11 LIN-UART の制限事項
389
第 22 章 LIN-UART
LIN-UART の概要
22.1
LIN-UART の概要およびブロックダイヤグラムを説明します。
■ LIN-UART の概要
LIN(Local Interconnect Network)-UART は , 外部装置と非同期通信 , 同期通信をするため
の汎用シリアルデータ通信インタフェースです。双方向通信機能 ( ノーマルモード ),
マスタ / スレーブ型通信機能 ( マルチプロセッサモード ), LIN バスシステム ( マスタ /
スレーブ動作 ) があります。
LIN-UART は通常の UART と類似していますが , ソフトウェアの互換性はありません。
表 22.1-1 UART の機能
項目
機能
データバッファ
全二重バッファ
シリアル入力
5 回オーバサンプリング ( 非同期モードのみ )
転送モード
• クロック同期通信 ( スタート / ストップ同期 , スタートストップビット選択 )
• クロック非同期 ( スタート , ストップビット使用 )
ボーレート
• 専用ボーレートジェネレータ (15 ビットリロードカウンタにより構成 )
• 外部クロック入力可能。また , リロードカウンタで調節可能
データ長
• 7 ビット ( 同期または LIN モード以外 )
• 8 ビット
信号
NRZ(Non Return to Zero), RZ(Return to Zero) 方式
スタートビット
タイミング
非同期モード時は , スタートビット立下りエッジに同期
受信エラー検出
• フレーミングエラー
• オーバランエラー
• パリティエラー
割込み要求
•
•
•
•
マスタ / スレーブ型
通信機能 ( マルチ
プロセッサモード )
1( マスタ ) 対 N( スレーブ ) 間の通信可能
( マスタ / スレーブシステムの両方をサポート )
同期モード
マスタまたはスレーブ機能
端子アクセス
シリアル入出力端子の状態を直接読出し可能
LIN バス
オプション
•
•
•
•
•
同期シリアル
クロック
スタート / ストップビットで同期通信するために , SCK 端子に連続出力可能
390
受信割込み ( 受信完了 , 受信エラー検出 )
送信割込み ( 送信完了 )
バスアイドル割込み
LIN synch field 検出割込み
マスタデバイス動作
スレーブデバイス動作
LIN Synch break 生成
LIN Synch break 検出
キャプチャに接続している LIN Synch field のスタート / ストップエッジ検出
第 22 章 LIN-UART
■ LIN-UART のブロックダイヤグラム
図 22.1-1 LIN-UART のブロックダイヤグラム
(OTO,
EXT,
REST)
CLK
PE
ORE FRE
TIE
RIE
LBIE
LBD
BIE
RBI
TBI
送信クロックTRCK
リロード
カウンタ
受信クロックRSCK
割込み
発生回路
送信制御
送信制御
SCK
端子
スタート
ビット検知
SIN
端子
送信開始回路
受信IRQ
SEDGE
IN
(from ECCR)
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
TDRE
送信IRQ
SOUT
オーバ
サンプリング
ユニット
端子
INV
RDRF
受信完了
SCU
SIN
LSYN
(to ICU)
LINブレーク,
Synch Field
検知回路
SIN
受信シフト
レジスタ
送信シフト
レジスタ
LINブレーク
発生
送信開始
バス
アイドル
検知回路
エラー
検知
STR
(to El2OS)
RE
ORE
FRE
RDR
LBR
LBL1
LBLD
TDR
RBI
LB
TBI
内部データバス
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
SSR
レジスタ
MD1
MD0
OTO
EXT
REST
UPCL
SCKE
SOE
SMR
レジスタ
PEN
P
SBL
CL
A/D
CRW
RXE
TXE
SCR
レジスタ
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
ESCR
レジスタ
INV
LBR
MS
予約ビット
SSM
BIE
RBI
TBI
ECCR
レジスタ
391
第 22 章 LIN-UART
22.2
LIN-UART のレジスタ一覧
LIN-UART のレジスタの機能について説明します。
■ LIN-UART のレジスタ一覧
MB91245/S シリーズは , "LIN-UART0", "LIN-UART1" および "LIN-UART2" の 3 つの
LIN-UART から構成されており , LIN-UART0 は SIN3, SCK3, SOT3 端子 , LIN-UART1 は
SIN4, SCK4, SOT4 端子 , LIN-UART2 は SIN5, SCK5, SOT5 端子に接続されています。
LIN-UART は , 以下のレジスタで構成されています。
LIN-UART0
アドレス
+0
+1
0000B0H
SCR3 ( シリアル制御レジスタ )
SMR3( シリアルモードレジスタ )
0000B2H
SSR3 ( シリアルステータスレジスタ )
RDR3/TDR3
( 受信データ / 送信データレジスタ )
0000B4H
ESCR3( 拡張ステータス制御レジスタ )
ECCR3( 拡張通信制御レジスタ )
0000B6H
BGR13
( ボーレートジェネレータレジスタ 1)
BGR03
( ボーレートジェネレータレジスタ 0)
+0
+1
0000B8H
SCR4 ( シリアル制御レジスタ )
SMR4( シリアルモードレジスタ )
0000BAH
SSR4 ( シリアルステータスレジスタ )
RDR4/TDR4
( 受信データ / 送信データレジスタ )
0000BCH
ESCR4( 拡張ステータス制御レジスタ )
ECCR4( 拡張通信制御レジスタ )
0000BEH
BGR14
( ボーレートジェネレータレジスタ 1)
BGR04
( ボーレートジェネレータレジスタ 0)
+0
+1
0000C0H
SCR5 ( シリアル制御レジスタ )
SMR5( シリアルモードレジスタ )
0000C2H
SSR5 ( シリアルステータスレジスタ )
RDR5/TDR5
( 受信データ / 送信データレジスタ )
0000C4H
ESCR5( 拡張ステータス制御レジスタ )
ECCR5( 拡張通信制御レジスタ )
0000C6H
BGR15
( ボーレートジェネレータレジスタ 1)
BGR05
( ボーレートジェネレータレジスタ 0)
LIN-UART1
アドレス
LIN-UART2
アドレス
392
第 22 章 LIN-UART
■ シリアル制御レジスタ (SCR)
図 22.2-1 シリアル制御レジスタ (SCR) のビット構成
初期値
アドレス: bit 15 14 13 12 11 10 9
8
ch.3 0000B0H
ch.4 0000B8H
ch.5 0000C0H
R/W R/W R/W R/W R/W R/W R/W R/W
00000000B
bit8
TXE
0
1
送信不可
送信可
bit9
RXE
0
1
受信不可
受信可
送信許可
受信許可
bit10
CRW* 1
0
1
受信エラーフラグビットのクリア
書込み
読出し
無効
すべてのエラーフラグの
クリア(PE, FRE, OE)
常に”0”
bit11
A/D
アドレス/データ選択
読出し
書込み
RMW読出し
0
受信データ
ビット
送信データ
送信データ
ビットの書込み ビットの読出し
1
受信アドレス 送信アドレス 送信アドレス
ビット
ビットの書込み ビットの読出し
bit12
データ長選択(データフレーム)
CL*2
7ビット
0
8ビット
1
bit13
ストップビット長選択
SBL*3
1ストップビット
0
1
2ストップビット
bit14
パリティ選択
P
0
偶数パリティ選択
1
奇数パリティ選択
R/W
:
リード/ライト可能
:
初期値
bit15
パリティ許可
PEN*4
パリティ無効
0
パリティ有効
1
*1: 受信エラーフラグをクリアすると , 受信限定のステートマシンがリセットされるので新しいスター
トビット ( モード 2 の場合 , 新しいデータフレーム ) を検出する準備ができます。受信動作を禁止
せずに受信エラーフラグをクリアにすると , そのタイミングで受信をいったん中断し , その後再開
します。このため , 受信再開時に正常なデータを受信しない場合があります。
*2: モード 2 とモード 3(LIN モード ) では , データ長 8 ビットに固定されますので , これらのモード時
に "0" を書き込んでも動作に影響を与えません。
*3: モード 3(LIN モード ) では , ストップビット長 1 ビットに固定されますので , このモード時に "1"
を書き込んでも動作に影響を与えません。
*4: パリティビットは , モード 0 または拡張通信制御レジスタ (ECCR) のスタート / ストップ許可ビッ
ト (SSM) が有効でモード 2 のときに付加されます。その他の設定の場合 , 本ビットに "1" を設定
しても動作に影響を与えません。
393
第 22 章 LIN-UART
■ シリアルモードレジスタ (SMR)
図 22.2-2 シリアルモードレジスタ (SMR) のビット構成
アドレス:
bit
ch.3 0000B1H
ch.4 0000B9H
ch.5 0000C1H
7
6
5
4
3
2
1
初期値
0
00000000 B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
SOE
0
1
シリアルデータ出力許可
SOT3端子無効 (Hi-Z)
SOT3端子有効(Txデータ)
bit1
シリアルクロック出力許可
SCKE
外部シリアルクロック入力
0
内部シリアルクロック出力
1
bit2
UPCL
0
1
UARTプログラムクリア(ソフトウェアリセット)
書込み
読出し
無効
常に”0”
UARTをリセット
bit3
通信再開リロードカウンタ
書込み
読出し
REST
0
1
bit4
EXT
0
1
R/W
394
:
リード/ライト可能
:
初期値
無効
カウンタ再スタート
常に”0”
外部シリアルクロック選択
内部ボーレート発生器の使用(リロードカウンタ)
外部シリアルクロックの使用
bit5
OTO
0
1
外部クロックの使用
bit6
MD0
0
1
0
1
bit7
MD1
0
0
1
1
直接外部クロック選択
ボーレート発生器と共に外部クロックの使用(リロードカウンタ)
動作モード選択
モード0 : 非同期通常モード
モード1 : 非同期マルチプロセッサモード
モード2 : 同期モード
モード3 : 非同期LINモード
第 22 章 LIN-UART
■ シリアルステータスレジスタ (SSR)
図 22.2-3 シリアルステータスレジスタ (SSR) のビット構成
アドレス: bit 15
ch.3 0000B2H
ch.4 0000BAH
ch.5 0000C2H
R
*:
14 13 12
11 10
9
初期値
8
00001000 B
R
R
R
R R/W R/W R/W
R/W
:
リード/ライト可能
R
:
リードオンリ
:
初期値
bit8
TIE
0
1
送信割込み要求許可
送信割込み要求無効
送信割込み要求有効
bit9
RIE
0
1
受信割込み要求許可
受信割込み要求無効
受信割込み要求有効
bit10
BDS*
0
1
転送方向選択
LSBからデータ転送
MSBからデータ転送
bit11
TDRE
0
1
送信データエンプティ
送信データレジスタがフル
送信データレジスタが空
bit12
RDRF
0
1
受信データフル
受信データレジスタが空
受信データレジスタがフル
bit13
FRE
0
1
フレーミング・エラーなし
受信中にフレーミング・エラー発生
bit14
ORE
0
1
オーバラン・エラーなし
受信中にオーバラン・エラー発生
bit15
PE
0
1
フレーミング・エラー
オーバラン・エラー
パリティ・エラー
パリティ・エラーなし
受信中にパリティ・エラー発生
モード 3 (LIN モード ) では , BDS ビットは "0" に固定されるので , このモードで "1" を書き込んで
も動作に影響を与えません。
395
第 22 章 LIN-UART
■ 受信データレジスタ (RDR) と送信データレジスタ (TDR)
図 22.2-4 受信データレジスタ (RDR) と送信データレジスタ (TDR) のビット構成
アドレス: bit
ch.3 0000B3H
ch.4 0000BBH
ch.5 0000C3H
7
6
5
4
3
2
1
初期値
0
RDR: 00000000 B
TDR : 11111111 B
R/W R/W R/W R/W R/W R/W R/W R/W
R/W
リード
ライト
R/W
396
:
リード/ライト可能
データレジスタ
受信データレジスタからの読出し
受信データレジスタへの書込み
第 22 章 LIN-UART
■ 拡張ステータス制御レジスタ (ESCR)
図 22.2-5 拡張ステータス制御レジスタ (ESCR) のビット構成
初期値
アドレス: bit 15 14 13 12 11 10 9 8
ch.3 0000B4H
ch.4 0000BCH
ch.5 0000C4H
R/W R/W R/W R/W R/W R/W R/W R/W
00000X00 B
bit8
SCES サンプリングクロックエッジ選択 (モード2)
立上りクロックエッジでサンプリング (通常)
0
立下りクロックエッジでサンプリング (変換クロック)
1
bit9
連続クロック出力許可 (モード2)
CCO
連続クロック出力無効
0
連続クロック出力有効
1
bit10
SIOP
0
1
シリアル入力/出力端子への直接アクセス
読出し時
"0"をSOT3に設定
SIN3端子の実際の
値を返す
"1"をSOT3に設定
書込み時 (SOPE= 1のとき)
bit11
SOPE シリアル出力端子への直接アクセスの許可
シリアル出力端子への直接アクセス無効
0
シリアル出力端子への直接アクセス有効
1
bit12
LBL0
0
1
0
1
bit13
LBL1
0
0
1
1
LINブレーク長
LINブレーク長13 ビットタイマ
LINブレーク長14 ビットタイマ
LINブレーク長15 ビットタイマ
LINブレーク長16 ビットタイマ
bit14
LBD
1
0
LINブレーク検出
書込み時
読出し時
無視
LINブレーク検出
LINブレーク検出
LINブレーク検出なし
フラグのクリア
bit15
LINブレーク検出割込み許可
LBIE
LINブレーク割込み無効
0
LINブレーク割込み有効
1
R/W
X
:
:
:
リード/ライト可能
不定値
初期値
表 22.2-1 SOPE と SIOP の相互作用の説明
SOPE
SIOP
0
R
1
R/W
SIOP への書込み
SIOP からの読出し
影響なし
SIN の値を返す
SOUT へ "0" または "1" 書込み
SIN の値を返す
SOPE が "1" のとき , SIOP の初期値は "1" です。
リードモディファイライト (RMW) サイクル有効時 , SIOP はリードサイクルでシリア
ル出力端子 (SOUT) の値を返します。
397
第 22 章 LIN-UART
■ 拡張通信制御レジスタ (ECCR)
図 22.2-6 拡張通信制御レジスタ (ECCR) のビット構成
アドレス:
bit 7
ch.3 0000B5H
ch.4 0000BDH
ch.5 0000C5H
-
6
5
4
3
2
1
初期値
0
000000XX B
W R/W R/W R/W R/W R
R
bit0
TBI
0
1
送信中
送信動作なし
bit1
RBI
0
1
受信中
受信動作なし
bit2
BIE
0
1
バスアイドル割込み無効
バスアイドル割込み有効
bit3
SSM
0
1
送信バスアイドル
受信バスアイドル
バスアイドル割込み
同期データ形式での開始/停止ビット指定(モード2)
同期モード2で開始/停止ビット無効
同期モード2で開始/停止ビット有効
bit4
予約ビット : 本ビットは"0"に固定されます
bit5
MS
0
1
マスタ/スレーブ選択(モード2)
マスタモード (シリアルクロックの生成)
スレーブモード (外部シリアルクロック受信)
bit6
LBR
0
1
R/W
R
W
X
398
:
:
:
:
:
リード/ライト可能
リードオンリ
ライトオンリ
不定値
初期値
bit7
INV
0
1
LINブレークビットの設定
書込み時
読出し時
無視
LINブレークの生成
常に"0"を返す
反転シリアルデータ
非反転シリアルデータ( NRZフォーマット)
反転シリアルデータ(RZフォーマット)
第 22 章 LIN-UART
22.2.1
ボーレート / リロードカウンタレジスタ (BGR)
ボーレート / リロードカウンタレジスタ (BGR) は , シリアルクロックの分周比を設
定します。また , 送信リロードカウンタの正確な値を読み出すことも可能です。
■ ボーレート / リロードカウンタレジスタ (BGR)
レジスタはバイトアクセスもしくはハーフワードアクセスでの読出し / 書込みが可能
です。
図 22.2-7 ボーレート / リロードカウンタレジスタ
BGR1
bit
アドレス : 0000B6H
0000BEH
0000C6H
15
−
14
B14
13
B13
12
B12
11
B11
10
B10
9
B09
8
B08
リード / ライト ( − ) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
BGR0
bit
アドレス : 0000B7H
0000BFH
0000C7H
7
B07
6
B06
5
B05
4
B04
3
B03
2
B02
1
B01
0
B00
リード / ライト (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 (0)
[bit15] (Reserved bit)
予約ビットです。読出し値は常に "0" です。
[bit14 ∼ bit8] B14 ∼ B08 : ボーレートジェネレータレジスタ 1
BGR1
ボーレートジェネレータレジスタ 1
書込み
リロード値のビット 14 ∼ 8 をカウンタへ書込み
読出し
カウントビット 14 ∼ 8 の読出し
[bit7 ∼ bit0] B07 ∼ B00 : ボーレートジェネレータレジスタ 0
BGR0
ボーレートジェネレータレジスタ 0
書込み
リロード値のビット 7 ∼ 0 をカウンタへ書込み
読出し
カウントビット 7 ∼ 0 の読出し
399
第 22 章 LIN-UART
22.3
インプットキャプチャによるボーレート検出
インプットキャプチャによるボーレート検出について説明します。
■ インプットキャプチャによるボーレート検出
LIN-UART は LSYN 信号をもっており , ICU( インプットキャプチャ ) に接続されてい
ます。ICU で , LSYN のパルス長を測定することにより , ボーレートを調整することが
できます。ICU との LSYN 信号の接続はポート D ファンクションレジスタ PFRD ( ア
ドレス 0000042DH ビット PFRD[2:0]) で制御されます。
IN0端子
0
1
LIN-UART0
LSYN
IN
ICU0
S
フリーランタイマ0
PFRD[0]
IN1端子
0
1
LIN-UART1
LSYN
IN
ICU1
S
フリーランタイマ0
PFRD[1]
0
IN2端子
1
LIN-UART2
LSYN
IN
ICU2
S
フリーランタイマ1
PFRD[2]
PRF ビットを設定すると , ICU は入力端子 IN に接続されます。
PFR ビットをクリアすると , IN 端子はポートモード (Port D[2:0]) になり , LIN-UART は
ICU に接続されます。
400
第 22 章 LIN-UART
22.3.1
UART のボーレート
UART のシリアルクロックとして下記のいずれかを選択できます。
• 専用ボーレートジェネレータ ( リロードカウンタ )
• 外部クロック (SCK 端子からのクロック入力 )
• 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用
■ UART のボーレート選択
図 22.3-1 にボーレート選択回路を示します。下記の 3 つからボーレートを選択可能で
す。
● 専用ボーレートジェネレータ ( リロードカウンタ ) の使用
UART には送信/受信シリアルクロックそれぞれに独立したリロードカウンタがあり
ます。ボーレートは , ボーレートジェネレータレジスタ (BGR) の 15 ビットリロード値
により設定されます。
リロードカウンタは , ボーレートジェネレータレジスタの設定値でマシンクロックを
分周します。
● 外部クロック (SCK 端子からのクロック入力 )
UART クロック入力端子 (SCK) からのクロック入力が直接ボーレートとして使用され
ます。
● 外部クロックをボーレートジェネレータ ( リロードカウンタ ) に使用
外部クロックをデバイス内部でリロードカウンタと接続させることも可能です。この
モードでは , 外部クロックは内部のマシンクロックの代わりに使用されます。
図 22.3-1 ボーレート選択回路 ( リロードカウンタ )
REST
スタートビット
立下りエッジ検出
リロード値: v
Rxc = 0?
受信15ビット
リロードカウンタ
セット
リロード
Rxc = v/2?
F/F
リセット
0
1
リロード値: v
CLK
SCK
(外部
クロック
入力)
EXT
Txc = 0?
0
1
受信クロック
セット
送信15ビット
リロードカウンタ
カウント値: Txc
リロード
OTO
F/F
Txc = v/2?
0
1
リセット
送信クロック
内部データバス
EXT
REST
OTO
SMR
レジスタ
BGR14
BGR13
BGR12
BGR11
BGR10
BGR9
BGR8
BGR1
レジスタ
BGR7
BGR6
BGR5
BGR4
BGR3
BGR2
BGR1
BGR0
BGR0
レジスタ
401
第 22 章 LIN-UART
ボーレートの設定
22.3.2
ボーレートの設定方法と , シリアルクロック周波数の算出結果を示します。
■ ボーレートの算出
ボーレートジェネレータレジスタ (BGR)により 15ビットリロードカウンタは設定され
ます。
ボーレートの算出には以下の数式を使用してください。
v= [φ/b] - 1
ここで , "φ" はマシンクロック周波数を , "b" はボーレートを示します。
● 算出例
マシンクロックが 16MHz で , 目的のボーレートが 19200bps の場合 , リロード値 "v" は
以下のようにして算出できます。
v= [16 × 106 / 19200] - 1 = 832
正確なボーレートは , 以下のように再計算してください。
bexact=φ/(v+1)=16 × 106 / 833= 19207.6831 bps
<注意事項>
リロード値を "0" に設定すると , リロードカウンタは停止します。したがって , 最小の分
周比は 2 分周となります。
402
第 22 章 LIN-UART
■ マシンクロック周波数ごとのボーレート設定例
表 22.3-1 に , マシンクロック周波数とボーレートの設定例を示します。
表 22.3-1 マシンクロックごとのボーレート設定例
8MHz
ボーレート
(bps)
16MHz
20MHz
24MHz
32MHz
リロード
値
dev.
リロード
値
dev.
リロード
値
dev.
リロード
値
dev.
リロード
値
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.011
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
-
-
-
-
-
-
-
-
<注意事項>
dev. : deviation unit ( 信号 )
偏差の単位は "%" です。
最大同期ボーレートは , マシンクロックの 5 分周です。
403
第 22 章 LIN-UART
■ 外部クロックの使用
SMR の EXT ビットが設定されると , 外部端子 SCK がクロックとして選択されます。外
部クロック信号は内部 MCU クロックと同様に扱われます。SCK 端子に , 例えば
1.8432MHz の水晶発振子を接続し , PC-16550-UART のすべてのボーレートを選択する
ためにリロードカウンタを使用するように設計されています。
"1 対 1" 外部クロック入力モード (SMR の OTO ビット ) が選択されていると , SCK 信
号が UART シリアルクロック入力へ直接接続されます。これは , UART 同期モード 2
でスレーブデバイスとして動作させるために必要です。
<注意事項>
いずれの場合においても , クロック信号は UART 内部で MCU クロックと同期化されます。
これは分周できないクロック比は不安定な信号となることを意味します。
■ カウント例
図 22.3-2 に , 送信/受信リロードカウンタの動作例を示します。ここではリロード値
を 832 としています。
図 22.3-2 リロードカウンタのカウント例
送信/受信クロック
リロードカウンタ
001
000
832
831
830
829
828
827
412
411
410
リードカウント値
送信/受信クロック
リロードカウンタ
417
416
415
414
413
<注意事項>
シリアルクロック信号の立下りエッジは常に , [ (v + 1)/2 ] 後です。
404
第 22 章 LIN-UART
22.4
LIN-UART の動作
LIN-UART の動作について説明します。
■ LIN-UART の動作モード
LIN-UART は下記に示す 4 つの異なった動作モードをもっており , シリアルモードレジ
スタ (SMR) の MD0, MD1 ビットにより決定されます。モード 0 と 2 は , 双方向シリア
ル通信 , モード 1 は , マスタ / スレーブ型通信 , モード 3 は , LIN マスタ / スレーブ
型通信に利用されます。
データ長
動作モード
パリティなし
0
ノーマルモード
1
マルチプロセッサ
2
ノーマルモード
3
LIN モード
ストップ
ビット長
データ
ビット方向 *1
非同期
1 ビットまたは
2 ビット
L/M
非同期
1 ビットまたは
2 ビット
L/M
同期
0 ビット ,
1 ビットまたは
2 ビット
L/M
非同期
1 ビット
L
パリティあり
7 ビットか 8 ビット
7 ビットまたは
8 ビット + 1*2
-
8 ビット
8 ビット
同期方式
-
*1: データビット転送方向 :LSB ファーストまたは MSB ファースト
*2: "+1" は , 通信制御用に使用されるアドレス / データ形式選択ビット (A/D) を意味します。
<注意事項>
モード 1 動作は , マスタ / スレーブ CPU を複数接続して通信することができます。
モード 3 では , UART 機能は , 通信フォーマットが固定されます。
送受信時にモードを切り換えたときは , 送受信データは保証できません。
以下の表に示されるように , シリアルモードレジスタ (SMR) の MD1 と MD0 ビットの
設定により , UART の動作モードを決定します。
MD1
MD0
モード
0
0
0
非同期 ( ノーマルモード )
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
3
非同期 (LIN モード )
記述
405
第 22 章 LIN-UART
非同期モード ( 動作モード 0 と 1) 時の動作
22.4.1
非同期モード ( 動作モード 0 と 1) 時の動作を説明します。
■ 送受信データフォーマット
送受信データは , スタートビット ("L" レベル ) から始まり , ストップビット ("H" レベ
ル ) で終了します。ビット転送方向 (LSB ファーストまたは MSB ファースト ) は , シリ
アルステータスレジスタ (SSR) の転送方向選択ビット (BDS) で , 決定します。パリティ
ありの場合 , パリティビットは , 常に最終データビットと最初のストップビットの間に
置かれます。
動作モード 0 では , データ長 7 ビットまたは 8 ビット , パリティの有無 , ストップビッ
ト長 1 ビットまたは 2 ビットの選択ができます。
動作モード 1 では , データ長 7 ビットまたは 8 ビットに設定できます。本モードではパ
リティを付加されませんが , アドレス / データ形式選択ビットが付加されます。ストッ
プビット長 1 ビットまたは 2 ビットを選択することができます。
移動フレームのビット長計算式は以下のとおりです。
長さ =1+d+p+s
(d = データビット数 [7 or 8], p = パリティ [0 or 1], s = ストップビット数 [1 or 2])
*1
*2
動作モード0
ST D0 D1 D2 D3 D4 D5 D6 D7/P SP SP
動作モード1
ST D0 D1 D2 D3 D4 D5 D6 D7 A/D SP
*1 : D7(bit 7)パリティなし,データ長が8ビットの場合
P(パリティ)パリティあり,データ長7ビットの場合
*2 : SCRのSBLビットが"1"にセットされている場合のみ
ST :スタートビット
SP :ストップビット
A/D :モード1(マルチプロセッサモード)のアドレスデータ選択ビット
<注意事項>
シリアルステータスレジスタ (SSR) の BDS ビットが "1" に設定されている場合 , データ
は D7, D6…D1, D0, (P) の順で処理されます。
2 ストップビットに設定すると , 受信中 , 両方のストップビットを検出します。しかし , 受
信データフルフラグビット (RDRF) は , 最初のストップビットで "1" に設定されますが , 受
信動作がないと拡張通信制御レジスタ (ECCR) の受信バスアイドル検出フラグビット
(RBI) は , 2 番目のストップビットの後に "1" に設定します。
2 番目のストップビットはマークレベルですが , バスのためにあります。
406
第 22 章 LIN-UART
■ 送信動作
シリアルステータスレジスタ (SSR) の送信データレジスタエンプティビット (TDRE) が
"1" のとき , 送信データレジスタ (TDR) へ送信データを書き込みます。データが書き込
まれると TDRE フラグが "0" になります。シリアルステータスレジスタ (SCR) の送信
許可ビット (TXE) を "1"で許可すると , そのデータは送信用シフトレジスタに転送され ,
スタートビットから送信が始まります。その結果 , TDRE フラグは "1" に設定され , TDR
レジスタに新しいデータを書き込むことができます。
送信割込み可能 ( シリアルステータスレジスタ (SSR) の送信割込み許可ビット (TIE) が
"1") の場合 , 割込みは TDRE フラグによって発生します。TDRE フラグの初期値が "1"
のため , TIE フラグが "1" に設定されると割込みが発生しますので注意してください。
■ 受信動作
シリアルコントロールレジスタ (SCR) の受信許可ビット (RXE) が "1" であれば , 受信
動作を行います。
スタートビットを検出するとシリアル制御レジスタ (SCR) で設定したデータフォー
マットに従い, 1フレームデータ受信が行われます。エラー発生により, 対応するエラー
フラグ (PE, ORE, FRE) がセットされます。1 フレームの受信完了後 , データはシリアル
シフトレジスタから受信データレジスタ (RDR) に転送され , シリアルステータスレジス
タ (SSR) の受信データレジスタフルフラグビット (RDRF) が "1" に設定されます。受信
データ読出しによって , RDRF フラグはクリアされます。
受信割込み許可 ( シリアルステータスレジスタ (SSR) の受信割込み許可ビット (RIE) が
"1") の場合 , 割込みは RDRF によって発生します。
<注意事項>
RDRF フラグが "1" に設定されるときだけ , 受信データレジスタ (RDR) データは有効にな
ります。
■ ストップビット , エラー検出およびパリティ
送信時には , 1 ビットまたは 2 ビットのストップビットを選択することができます。ス
トップビットを 2 ビット選択したとき , 両方のストップビットが受信時に検出されま
す。2 番目のストップビット後に , 拡張通信制御レジスタ (ECCR) の受信バスアイドル
検出フラグビット (RBI) を設定します。
モード 0 で , パリティエラー , オーバランエラー , フレームエラー検出ができます。
モード 1 で , オーバランエラー , フレームエラー検出ができ , パリティエラー検出はで
きません。
モード 0 ( もしくはモード 2 で , ECCR レジスタのスタート / ストップ許可ビット (SSM)
を "1" に設定 ) 時にシリアルコントロールレジスタ (SCR) のパリティ許可ビット (PEN)
を設定することにより , UART はパリティ計算 ( 送信時 ), パリティ検出 , およびチェッ
ク ( 受信時 ) を行います。
SCR レジスタのパリティ選択ビット (P) がクリア ("0") されると偶数パリティ設定とな
り , フラグが "1" にされると , 奇数パリティに設定されます。
407
第 22 章 LIN-UART
同期 ( モード 2) モード時の動作
22.4.2
同期 ( モード 2) モード時の動作を説明します。
■ 送受信データフォーマット
同期モードでは , 8 ビットのデータは拡張通信制御レジスタ (ECCR) のスタート / ストッ
プ許可ビット (SSM) が "0" ならば , スタート / ストップビットなしで転送されます。
同期動作モードのデータフォーマットを示します。
送信データ書込み
マークレベル
シリアルクロック(ノーマル)
(CCO=0)
送信データ
マークレベル
0
1
1
0
1
0
0
1
立上りサンプルエッジ(SCES=0),LSBファーストのとき
■ クロック供給
クロック同期 (I/O 拡張シリアル ) モードでは , 送受信ビット数に等しい数のクロックの
供給が必要です。注意点として , スタート / ストップビットありの通信時は , クロック
サイクル数とスタート / ストップビットが付加された数とが一致していなければなり
ません。
内部クロック ( 専用リロードカウンタ ) を選択しているときには , データ送信すると ,
データ受信用同期クロックが自動的に発生します。
外部クロックを選択しているときは , 送信データレジスタに送信データがあることを
確認した後 , 送信分のクロックを外部から発生 , 供給しなければなりません。また , 送
信開始前と終了後はマークレベル ("H") にしなければなりません。
拡張ステータス制御レジスタ (ESCR) のサンプリングクロックエッジ選択 (SCES) を "1"
に設定すると UART のクロックが反転し , その結果 , クロックの立下りエッジで受信
データを抽出します。この場合 , シリアルデータが立下りエッジで有効であるか確認し
てください。
■ エラー検出
スタート / ストップビットなし ( 拡張通信制御レジスタ (ECCR) の スタート / ストップ
許可ビット (SSM を "0" に設定 ) を選択すると , オーバランエラーのみ検出可能です。
408
第 22 章 LIN-UART
■ 通信方法
同期モードを利用するときは , 下記の設定に初期化する必要があります。
ボーレートジェネレータレジスタ (BGR0/BGR1):
専用ボーレートリロードカウンタに必要なリロード値を設定
シリアルモードレジスタ (SMR):
MD1, MD0
: "10B" ( モード 2)
SCKE
: "1"
"0"
SOE
専用ボーレートリロードカウンタ
外部クロック
: "1"
送信
"0"
受信
シリアル制御レジスタ (SCR):
RXE, TXE
:
少なくともどちらかが "1"
SSM=0( デフォルト ) のとき
PEN, P
:
パリティなしのため , このビットは意味を持ちません。
SSM=1 のとき
PEN
: "1" パリティあり , "0" パリティなし
P
: "0" パリティ偶数 , "1" パリティ奇数
SBL, A/D
: パリティ, ストップビット , アドレス / データ選択なしのため , この
ビットは意味を持ちません。
CL
: 自動的に 8 ビットに設定されるので , このビットは意味を持ちませ
ん。
CRW
: "1" ( エラーフラグは初期化でクリアして送受信を中断します )。
シリアルステータスレジスタ (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 にダミーデータを書き込んでください。
<注意事項>
SCK 端子はクロック入出力兼用のために , 同時に送受信はできません。
409
第 22 章 LIN-UART
22.4.3
LIN 機能との操作 ( モード 3)
LIN-UART は , LIN マスタ / スレーブ機能が動作します。この LIN 機能のために ,
モード 3 が提供されています。データフォーマットが固定され , 8 ビットデータを送
受信し , 1 スタート / ストップビットが付加され LSB ファーストになります。
■ LIN マスタ動作
LIN マスタモードは , マスタですべてのボーレートを決定します。スレーブは , マスタ
に同期しなければなりません。よって , スレーブ側では , ボーレートを設定する必要は
ありません。
拡張通信制御レジスタ (ECCR) の LIN ブレーク生成ビット (LBR) に "1" を書き込むと ,
LIN ブレーク信号が SOUT 端子から 13 ビット∼ 16 ビット分 "L" レベルが出力されま
す。この信号により LIN 通信を開始します。
その結果 , シリアルステータスレジスタ (SSR) の送信データエンプティフラグビット
(TDRE) は "0" になり , LIN ブレーク後 "1" にセットされて送信割込み (SSR レジスタの
送信割込み許可ビット (TIE) が "1" のとき ) を発生させます。
LIN ブレークは , 拡張ステータス制御レジスタ (ESCR) の LIN ブレーク長ビット (LBL1/
LBL0) によって決められます。設定は以下のとおりです。
LBL1
LBL0
ブレークの長さ
0
0
13 ビットタイム
0
1
14 ビットタイム
1
0
15 ビットタイム
1
1
16 ビットタイム
LIN ブレーク後に , 同期フィールド (55H) を送信します。受信割込みを防ぐために ,
ECCR レジスタの LBR フラグの "1" に書込みにより , TDRE フラグが "0" となりますが ,
送信データレジスタ (TDR) に "55H" を書き込むことができます。内部の送信シフタは ,
LIN ブレークが終わり , TDR レジスタ値が移動するまで待っています。これにより ,
LIN ブレーク後 , スタートビット前の間 , 送信割込みは行いません。
410
第 22 章 LIN-UART
■ LIN スレーブ動作
LIN スレーブモードは , マスタボーレートに同期させます。受信が無効 ( シリアル制御
レジスタ (SCR) の受信許可ビット (RXE) が "0"), LIN synch 割込みが有効 ( 拡張ステー
タスレジスタ (ESCR) の LIN ブレーク検出割込み許可ビット (LBIE) が "1") であれば ,
UART は受信割込みを発生します。LIN ブレークが検出されると , ESCR レジスタの
LIN ブレーク検出ビット (LBD) がセットされ , このビットの "0" 書込みにより割込みは
クリアされます。
次に , LIN ブレーク検出後 , LIN マスタのボーレートを分析します。キャプチャ内部信
号は LIN 同期フィールドの 1 回目の立下りエッジで "1" にセットされ , 5 回目の立下り
エッジ後に "0" にセットされます。両方のエッジ検出時に , キャプチャ割込みが許可さ
れていると割込みが発生します。
LIN 同期フィールド検出時の内部信号は , マスタのシリアルクロック 8 ビット分に相当
します。
以下の図に LIN メッセージフレームの形式と LIN-UART の動作を示します。
シリアル
クロック
シリアル
入力
(LINバス)
LBD
キャプチャ
内部信号
LINブレーク
同期フィールド
411
第 22 章 LIN-UART
シリアル端子直接アクセス
22.4.4
シリアル端子直接アクセスについて説明します。
■ シリアル端子直接アクセス
LIN-UART はプログラマが , シリアル入出力端子に直接アクセスすることができます。
ソフトウェアにて , 拡張ステータスレジスタ (ESCR) のシリアル入出力端子アクセス設
定ビット (SIOP) を読み出すことにより , シリアル入力端子 (SIN) の状況をいつでもモ
ニタすることができます。また , ESCR レジスタのシリアル出力端子アクセス許可ビッ
ト (SOPE) を設定すると , ソフトウェアによりシリアル出力端子 (SOUT) の値を任意に
設定することができます。注意事項として , 送信用シフトレジスタデータなし ( 送信未
動作時 ) の場合にだけアクセス可能です。
LIN モードにおいて , 送信したデータの読出しまたは物理的に LIN バス線信号が間違っ
ていたときのエラー処理に使用できます。
<注意事項>
出力端子にアクセスする前に , SIOP ビットに値を書き込んでください。
412
第 22 章 LIN-UART
データフォーマット設定
22.4.5
データフォーマットの設定について説明します。
■ データフォーマット設定
拡張通信制御レジスタ (ECCR) のシリアルデータ反転選択ビット (INV) を "1" に設定す
ると , シリアルデータを反転させます。これは , 信号モードが "Return To Zero"(RZ) で
あることを意味します。設定しなければ , SIN と SOT の信号モードは "Non Return To
Zero"(NRZ 初期値 ) になります。
以下の図で 2 つの設定の違いを説明します。
SIN (NRZ)
INV = 0
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SIN (RZ)
INV = 1
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SOT (NRZ)
INV = 0
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
SOT (RZ)
INV = 1
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
<注意事項>
LIN モード 3 を含むすべての操作モードで INV ビットを設定することができます。
413
第 22 章 LIN-UART
22.4.6
レジスタ / フラグビット
レジスタ / フラグビットについて説明します。
■ レジスタ / フラグビット
LIN-UART (FL84) では , 送受信動作は設定しているモードに依存します。各モードに
おいて , 無意味なフラグに設定 ( 例えば , LIN モード 3 でパリティを可能にする ) して
も LIN-UART の動作は影響されません。また , これらのビットを読み出しても正しい
値を返します。
以下の表は各 UART モードの可能な設定について説明します。
ストップ
ビット長
ビット長
-
1 ビット
または
2 ビット
7 ビット
または
8 ビット
-
-
2 (SSM=1)
なし , 奇数
または偶数
1 ビット
または
2 ビット
3 (LIN)
-
1 ビット
モード
パリティ
0
なし , 奇数
または偶数
1
2 (SSM=0)
414
A/D
ビット
○
-
8 ビット
ビット
方向
LSB
ファースト
または
MSB
ファースト
-
-
LSB
ファースト
SCES
SSM
-
-
-
-
○
0
INV
○
○
1
-
-
第 22 章 LIN-UART
22.5
UART 割込み
UART の割込みについて説明します。
■ UART 割込み要因
UART は送受信の両方で割込みを使用します。
以下の原因において割込みは発生します。
• 受信データが受信データレジスタ (RDR) にセットされた場合 , または受信エラー発
生時
• 送信データが送信データレジスタ (TDR) から送信シフトレジスタに転送されたとき
• LIN ブレーク検出
• バス動作していない場合
以下に割込みコントロールビットと割込み要因を示します。
割込み要
動作モード
送信 / 受信 /
フラグ
求フラグ
レジスタ 0 1 2 3
キャプチャ
ビット
割込み要因
割込み要因 割込み要求
イネーブル フラグビット
ビット
のクリア
受信データの
RDR 書込み
受信データの
読出し
RDRF
SSR
○ ○ ○ ○
ORE
SSR
○ ○ ○ ○ オーバランエラー
FRE
SSR
○ ○ △ ○ フレーミングエラー
PE
SSR
○ × △ × パリティエラー
LBR
ESCR
○ × × ○ LIN synch break 検出
ESCR /
LBIE
(ESCR:LBD) へ
の "0" 書込み
TBI, RBI
ECCR
○ ○ △ ○ バス動作なし
ECCR / BIE
データ受信 /
データ送信
送信
TDRE
SSR
○ ○ ○ ○ 送信レジスタが空
SSR /TIE
送信データの
書込み
8/16 ビット
キャプチャ・
タイマ /
カウンタ 1
ICP0
ICS01
○ × × ○
LIN synch field の
ICS01 /
1 回目の立下りエッジ ICE0
ICE0 一時無効
ICP0
ICS01
○ × × ○
ICS01 /
LIN synch field の
5 回目の立下りエッジ ICE0
ICE0 無効
受信
SSR / RIE
受信エラー
フラグクリア
ビット
(SCR:CRE) へ
の "1" の書込み
○:利用ビット
△:ECCR(SSM=1) のみ使用可能
×:未利用
415
第 22 章 LIN-UART
■ 受信割込み
以下に示す動作が受信モードで発生すると , シリアルステータスレジスタ (SSR) の各フ
ラグビットは "1" に設定されます。
• データ受信完了
( 例 ) 受信データのシリアル入力シフトレジスタから受信データレジスタ (RDR) へ
の移動 :RDRF( 受信データフルフラグビット )
• オーバランエラー
( 例 ) RDRF=1, RDR の読出しエラー :ORE( オーバランエラーフラグビット )
• フレーミングエラー
( 例 ) ストップビット受信エラー :FRE( フレーミングエラーフラグビット )
• パリティエラー
( 例 ) パリティ検出エラー :PE( パリティエラーフラグビット )
上記のフラグビットのいずれかが "1" のとき , 受信割込みが許可 (SSR レジスタの受信
割込み許可ビット (RIE) が "1") されていると , 受信割込み要求が発生します。
RDRF フラグは , 受信データレジスタ (RDR) を読み出すと , 自動的に "0" にクリアされ
ます。
<注意事項>
• RDRF フラグのリセットは上記の方法により行ってください。
エラーフラグはシリアル制御レジスタ (SCR) の受信エラーフラグクリアビット (CRE)
に "1" を書き込むと , すべて "0" にクリアされます。
• RDRF フラグが "1" で , どんな誤りビットも設定されていない場合 , RDR レジスタは有
効なデータであることを示します。
• CRE フラグは書込み専用で , "1" 書込みのとき 1 クロックサイクル間 "1" を保持します。
■ 送信割込み
送信データが送信データレジスタ (TDR) から送信シフトレジスタに転送される ( 送信
シフトレジスタが空で送信データがあるとき ) と , シリアルステータスレジスタ (SSR)
の送信データレジスタエンプティフラグビット (TDRE) が "1" にセットされます。この
場合 , 送信割込みが許可 (SSR レジスタの送信割込み許可ビット (TIE) が "1") されてい
ると , 送信割込み要求が発生します。
<注意事項>
ハードウェア , ソフトウェアリセットの後の初期値は , "0" にクリアされるので , TIE フラ
グが "1" ならば即 , 割込みが発生します。また , RDR にデータを書き込むことにより TDRE
をリセットできます。
416
第 22 章 LIN-UART
■ LIN ブレーク割込み
モード 0, 3 で , LIN スレーブ動作をする場合に機能します。
バス ( シリアル入力 ) が 13 ビットタイム以上 "0" になると , 拡張ステータス制御レジス
タ (ESCR) の LIN ブレーク検出フラグビット (LBD) は "1" にセットされます。
<注意事項>
LIN ブレーク検出を行う際には , 受信禁止 ( シリアル制御レジスタ (SCR) の受信許可ビッ
ト (RXE) を "0") または受信割込み禁止 ( シリアルステータスレジスタ (SSR) の受信割込
み許可ビット (RIE) を "0") にしてください。この設定が許可になっていると , 9 ビットタ
イム後受信にエラー割込みが発生しますので注意してください。その他の場合では , 受信
エラー割込みが最初に発生します。割込みハンドルルーチンは LBD =1 を待たなければな
りません。
LIN ブレーク割込みと LBD フラグは , LBD フラグの "0" 書込みでクリアされます。こ
れにより CPU は , 次に LIN マスタにシングルクロックを調整するため , LIN ブレーク
の検出を確認します。
■ LIN 同期フィールドエッジ検出割込み
モード 0, 3 で , LIN スレーブ動作をする場合に機能します。LIN ブレーク検出後 , 内部
信号 LSYN(ICU に接続 ) は LIN 同期フィールドの 1 回目の立下りエッジで "1" にセッ
トされ , 5 回目の立下りエッジ後に "0" にセットされます。両方のエッジ検出時に , キャ
プチャは割込みを発生させます。各インプットキャプチャカウンタの差は , マスタのシ
リアルクロック 8 ビット分に相当します。その値を 8 で分割した値を専用リロードカ
ウンタに設定します。スタートビットの立下りエッジを検出すると , リロードカウンタ
は自動的に再スタートします。
■ バスアイドル 割込み
SIN 端子に受信動作がなければ拡張通信制御レジスタ (ECCR) の受信バスアイドル検出
フラグビット (RBI) は "1" になり , SOUT 端子に送信動作がなければ ECCR レジスタの
送信バスアイドル検出フラグビット (TBI) は "1" になります。このとき , ECCR のバス
アイドル割込みが許可 (ECCR レジスタのバスアイドル割込み許可ビット (BIE) が "1")
され , バスアイドルフラグ両方 (TBI=RBI=1) のとき , 割込みが発生します。
<注意事項>
シリアル出力端子直接アクセスが可能 (ESCR レジスタのシリアル出力端子直接アクセス
許可ビット (SOPE) が "1" のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリア
ル入出力端子アクセス設定ビット (SIOP) が "0") すると , 送信動作 (ECCR レジスタの TBI
フラグが "1") がなくても TBI フラグは "0" にセットされます。
417
第 22 章 LIN-UART
ソフトウェアリセット
22.5.1
LIN-UART のソフトウェアリセットについて説明します。
■ ソフトウェアリセット
LIN-UART が正常に動作しない場合 , MCU をリセットする代わりに LIN-UART のみを
リセットしたい場合があります。シリアルモードレジスタ (SMR) のプログラマブルク
リアビット (UPCL) はそのような機能を提供します。このビットに "1" を書き込むと , 直
ちに , UART をリセットします。このビットを再び "0" にセットする必要はありません。
<注意事項>
シリアル出力端子直接アクセスが可能 (ESCR レジスタのシリアル出力端子直接アクセス
許可ビット (SOPE) が "1") のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリ
アル入出力端子アクセス設定ビット (SIOP) が "0") すると , 送信動作 (ECCR レジスタの
TBI フラグが "1") がなくても TBI フラグは "0" にセットされます。リセットの際 , 送受信
状態のものは切断されます。レジスタの設定は維持されますが , 専用リロードカウンタ
(FL85) は再スタートします。
本機能を利用の際には , データ消去を防ぐために , LIN-UART の SMR レジスタにいかな
るコマンドを書き込むときには , "FBH" でマスクをかけることをお薦めします。
リロードカウンタ (FL85) リセットなしで , LIN-UART をリセットする代替手段は , 一
時的に受信 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) を "0") または , 送
信 (SCR レジスタの送信許可ビット (TXE) を "0") 機能を無効にすることです。これに
より , 受信 / 送信制御回路は内部的にリセットされます。また , 一時的に LIN-UART の
操作モードを変えることでも同じ効果があります。
受信限定のステートマシンのリセットは , 単にシリアル制御レジスタ (SCR) の受信エ
ラーフラグクリアビット (CRE) に "1" を書き込むことにより行います。
418
第 22 章 LIN-UART
22.6
LIN-UART のクロック同期
LIN-UART のクロック同期について説明します。
■ クロック同期
非同期モードで UART は , スタートビットの立下りエッジを検出して , ボーレートリ
ロードカウンタ (FL85) を再開するために信号 (SEDGE) を発生させます。これにより ,
ビットタイム中でシリアルデータが抽出されます。
CLKP
SIN
(オーバサンプル)
スタートビット
データビット
SIN
受信用シフタへ
データサンプルタイム
SEDGE
(内部信号)
リロードカウンタのリスタート
RSCL
(受信クロック)
クロックフェーズ
カットオフ
ビットタイム
419
第 22 章 LIN-UART
22.7
フラグセットのタイミング
割込み発生とフラグセットのタイミングを説明します。
■ 受信割込み発生とフラグセットのタイミング
受信完了時 ( シリアルステータスレジスタ (SSR) の受信データフルフラグビット
(RDRF)), または受信エラー発生時 (SSR レジスタのパリティエラーフラグビット (PE),
オーバランフラグビット (ORE), フレーミングエラービット (FRE)) に各フラグがセット
されます。そのとき , 受信割込みが許可 (SSR レジスタの受信割込み許可ビット (RIE)
が "1") されていると受信割込みが発生します。これらの割込みは , モード 0, 1 ( パリ
ティエラーを除く ) の場合 , 最初のストップビットの検出 , モード 2 の場合 , 最終デー
タビットが読み出されると発生します。
<注意事項>
受信エラーが発生したとき , 受信データレジスタ (RDR) のデータは無効となります。
受信データ
(mode 0/3)
ST
D0
D1
D2
…
D5
D6
D7/P
SP
ST
受信データ
(mode 1)
ST
D0
D1
D2
…
D5
D6
A/D
SP
ST
受信データ
(mode 2)
ST
D0
D1
D2
…
D4
D5
D6
D7
D0
PE*1, FRE
RDRF
ORE*2
(if RDRF = 1)
受信割込み発生
*1 : mode 1 または mode3では, PEフラグは使用できません。
ST : スタートビット SP : ストップビット
A/D : Mode 1 (マルチプロセッサ) アドレス/データ選択
*2 : 受信データが読み出される前に(RPRF=1)に次のデータが転送されるとオーバラン(ORE)が発生します。
<注意事項>
上記一例のモード 0 および 3 はすべての設定可能な受信オプションを示していません。
送信割込み発生とフラグセットのタイミング受信データが読み出される前に(RDRF=1)に
次のデータが転送されるとオーバランエラー (ORE) が発生します。
Receive
data
RDRF
ORE
420
第 22 章 LIN-UART
■ 送信割込み発生とフラグセットのタイミング
送信データレジスタ (TDR) に次のデータ書込みが可能な状態になると割込みが発生し
ます。すなわち , 送信データレジスタ (TDR) データなしで , シリアルステータスレジ
スタ(SSR)の送信割込み許可ビット(TIE)を"1"に設定すると, 送信割込みが発生します。
SSR レジスタの送信データエンプティフラグビット (TDRE) は , TDR レジスタの状態
を示します。TDRE ビットは「リードオンリ」のため , TDR レジスタにデータを書き
込むことによりクリアされます。
以下に, LIN-UARTの各モード設定時の送信動作とフラグセットのタイミングについて
一例を示します。
送信割込み発生
送信割込み発生
Mode 0, 1 or 3 :
TDRに書込み
TDRE
シリアルアウトプット
ST D0 D1 D2 D3 D4 D5 D6 D7 P SP ST D0 D1 D2 D3 D4 D5 D6 D7 P SP
A/D
A/D
送信割込み発生
送信割込み発生
Mode 2 :
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 : データビット
A/D : アドレス/データ選択ビット (mode1)
P : パリティ SP: ストップビット
<注意事項>
上記一例のモード 0 はすべての設定可能な送信オプションを示していません。
421
第 22 章 LIN-UART
■ LIN ブレーク検出割込みとフラグ
スレーブモードで LIN ブレークが検出されると , 拡張ステータス制御レジスタ (ESCR)
の LIN ブレーク検出ビット (LBD) は "1" にセットされ , 同じく ESCR レジスタの LIN
ブレーク検出割込み許可ビット (LBIE) が設定されていると割込みが発生します。
以下に , LIN ブレーク検出割込みとフラグのセットタイミングを示します。
シリアルクロック
サイクル # 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
受信
データ
FRE
(RXE=1)
LBD
(RXE=0)
RXE=1なら受信割込み発生
RXE=0なら受信割込み発生
<注意事項>
受信可能 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) が "1") かつ受信割込み
可能 ( シリアルステータスレジスタ (SSR) の受信割込み許可ビット (RIE) が "1") の場合 ,
SSR レジスタのフレーミングエラーフラグビット (FRE) は , LIN ブレーク割込みよりク
ロックが 2 ビット分早くセットされるので , LIN ブレーク割込みを期待する場合は , RXE
ビットを "0" にすることをお勧めします。
LBD ビットはモード 0, 3 のみサポートされます。
■ LIN フィールドエッジ検出割込み
LIN ブレーク検出後 , シリアル入力 (SIN 端子 ) の 1 回目の立下りエッジで LSYN 信号
(内部でインプットキャプチャ(ICU)に接続)をセットし, 5番目の立下りエッジでLSYN
信号をリセットします。したがって , ICU は両方のエッジ検出で動作します。最初の割
込み時の ICU カウンタレジスタ値は保持され , 2 回目の ICU カウンタレジスタ値から
最初の ICU カウンタレジスタ値を引いた値は , マスタのシリアルクロック 8 ビット分
に相当します。
シンクブレーク
シンクフィールド
受信データ
LSYN
(ICUへ)
IRQ from
ICU
CPUによる割込みクリア
422
識別
第 22 章 LIN-UART
■ バスアイドル割込みとフラグ
シリアル入力シフトレジスタとシリアル出力レジスタの値がなく , 拡張通信制御レジ
スタ (ECCR) のバスアイドル割込み許可ビット (BIE) が設定されている場合 , バスアイ
ドル割込みを発生します。以下の図はバスアイドル割込みとフラグセットタイミング
の関係を示します。
送信データ
受信データ
TBI
RBI
IRQ
: スタートビット
: ストップビット
: データビット
<注意事項>
受信中に , 受信動作を禁止 ( シリアル制御レジスタ (SCR) の受信許可ビット (RXE) を "0") に
した場合 , 拡張通信制御レジスタ (ECCR) の受信バスアイドル検出フラグ (RBI) は "1" になり
ます。
シリアル出力可能 (ESCR レジスタのシリアル出力端子直接アクセス許可ビット (SOPE)
が "1") のとき , SOUT 端子を "0" 固定に設定 (ESCR レジスタのシリアル入出力端子アクセス
設定ビット (SIOP) が "0") すると , 送信動作がなくても , TBI フラグが "0" になります。
423
第 22 章 LIN-UART
22.8
LIN-UART の特別仕様
LIN-UART の特別仕様を説明します。
■ サンプリングクロックエッジ
拡張ステータス制御レジスタ(ESCR)のサンプリングクロックエッジ選択ビット(SCES)
で, モード2のときに受信ビットが受信シフトレジスタに抽出されるサンプルエッジを
決定します。また , LIN-UART がマスタモード 2 であれば , このビットは発生している
クロック信号を反転します。
シリアルクロック信号
(SCES=0)
シリアルクロック信号
(SCES=1)
データビット
(LSBファーストの場合)
または
D0
D1
D2
D3
D4
D5
D6
D7
:サンプルクロックエッジ
■ 同期スタート / ストップビットモード
モード 2 の同期モードで拡張通信制御レジスタ (ECCR) のスタート / ストップ許可ビッ
ト (SSM) を設定すると , モード 0 のようにスタート / ストップビットをデータストリー
ムに追加します。したがって , すべての追加ビットもクロック出力されます。
受信/送信クロック
マークレベル
(SCES= 0, CCO=0):
受信/送信クロック
マークレベル
(SCES= 1, CCO=0):
データストリーム(SSM=1)
ST
(パリティなし, 1ストップビットの場合)
SP
データフレーム
424
第 22 章 LIN-UART
■ 連続シリアルクロックアウトプット出力
モード 2 で拡張ステータス制御レジスタ (ESCR) の連続クロック出力許可ビット (CCO)
を設定すると , シリアルクロックを直接 SCK 端子に出力した後 , シフトクロックに同
期します。同期モードでスタートストップビットを使用するときに役立ちます。
受信/送信クロック
(SCES=0, CCO=1):
受信/送信クロック
(SCES=1, CCO=1):
データストリーム(SSM=1)
(パリティなし, 1ストップビットの場合)
ST
SP
データフレーム
425
第 22 章 LIN-UART
22.9
LIN 通信動作
LIN-UART がマスタデバイスとして機能するときの動作を以下のフローチャートに
示します。
■ LIN マスタ・スレーブ通信機能
UART を LIN 通信モード ( 動作モード 3) で動作させるには , 下図の設定が必要です。
図 22.9-1 UART の設定
SCR5, SMR5
bit 15
PEN
モード 3 ×
14
P
×
SSR5, TDR5/RDR5
bit 15
14
PE
モード 3
×
13
SBL
+
12
CL
+
11
10
9
8
7
6
5
4
3
2
1
0
A/D CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SPE
0
1
1
0
0
0
1
×
◎
◎
×
◎
13
12
11
10
9
ORE FRE RDRF TDRE BDS RIE
◎
◎
◎
◎
+
◎
8
7
TIE
6
5
4
3
2
1
送信データのセット(書込み中)
受信データの保持(読出し中)
0
◎
ESCR5, ECCR5
bit 15
14
13
12
11
10
9
8
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SECS
モード 3 ◎
◎
◎
◎
×
×
×
×
◎ : 使用ビット
× : 未使用ビット
0/1 : ビットに "0" または "1" をセット
+ : 正しい値に自動的に設定
7
-
6
LBR
◎
5
4
3
MS SCDE SSM
×
×
×
2
1
BIE
RBI
×
×
0
TBI
×
■ LIN デバイス接続
下図は 1 台の LIN マスタ・デバイスと , もう 1 台の LIN スレーブデバイスの間の通信
システムを示しています。UART は LIN マスタとしても LIN スレーブとしても動作し
ます。
図 22.9-2 小規模 LIN バスシステムの接続例
LINバス
SOT
SOT
SIN
LIN-マスタ
426
SIN
単線式
トランシーバ
単線式
トランシーバ
LIN-スレーブ
第 22 章 LIN-UART
■ LIN UART マスタ
開始
初期化
モード3を設定
(8N1データ形式)
TIE = 0, RIE = 0
メッセージを送信
?
NO
YES
スリープモードの送信
TDR = 80H
TIE = 0
ブレークを送信
ECCRに"1" を書込み
LBR; TIE = 1;
フィールドの送信
TDR = 55H
ウェイクアップ信号の送信
CPUからの
ウェイクアップ ?
YES
TDRE = 1
Transm. Interrupt
RIE = 0
TIE = 1
TDR = 80H
NO
RIE = 1
スリープモード
を送信?
YES
NO
NO
00H, 80H, C0H
を受信?
YES
RIE = 0
Send Identify Field:
TDR = Id
スレーブへの
書込み?
NO
TIE = 0
RIE = 1
YES
TIE = 1
スレーブへの書込み
TIE = 0
エラー発生?
NO
YES
エラー処理
スレーブからのデータ読出し
RIE = 0
427
第 22 章 LIN-UART
■ LIN-UART スレーブ
LIN-UART がスレーブデバイスとして機能するときの動作を以下のフローチャートに
示します。
開始
A
B
初期化:
モード3を設定
(8N1データ形式)
スレーブ
アドレス一致?
エラー発生?
C
RIE = 0; LBIE = 1; RXE = 0
YES
E
NO
C
YES
NO
マスタが
データ送信を要求?
待機
(スレーブ
動作)
NO
YES
LBD = 1
LINブレーク割込み
LIN増す宝の
メッセージ待ち
割込みクリアのため
にLBDへ"0"書込み
ICU割込み許可
(両エッジ)
受信データ
+checksum
80H 受信?
(スリープモード)
YES
RIE = 0
TIE = 1
checksum計算
データ送信
S
(次ページへ)
待機
(スレーブ
動作)
ICU
割込み
TIE = 0
NO
C
B
ICU値の読出しと
保存
割込みクリア
エラー発生?
YES
NO
待機
(スレーブ
動作)
C
ICU
割込み
ICU値の読出し
新ボーレートの計算
計算値をリロード
カウンタ(FL85)へ
設定
割込みクリア
E
エラーハンドラ
Receive identifier
RIE = 1; RXE = 1
C
A
( 続く )
428
第 22 章 LIN-UART
( 続き )
S
CPUからの
ウェイクアップ?
YES
ウェイクアップ信号の送信
RIE = 0
TIE = 1
TDR = 80H
NO
TIE = 0
RIE = 1
NO
00H, 80H, C0H
を受信?
YES
RIE = 0
C
429
第 22 章 LIN-UART
22.10
UART からの変更点
LIN-UART の UART からの変更点を説明します。
■ UART からの変更点
• 拡張ステータス制御レジスタ (ESCR) には次の機能があります。
- LIN 割込み発生機能
- シリアル入力 / 出力端子への直接アクセス (SIN, SOT)
- サンプリングクロックエッジ選択ビット (SCES)( クロック反転 )
- モード 2( スタート / ストップビットあり ) 時 , 連続シリアルクロック出力
• 拡張通信制御レジスタ (ECCR) には次の機能があります。
- 同期モード時におけるスタート / ストップ許可 (SSM)
- 同期モード時におけるマスタとスレーブ通信 (MS)
- 送信アイドルと受信アイドルフラグによるバスアイドル割込み発生
• シリアルモードレジスタ (SMR) の変更
- LIN スレーブ機能とデータ形式固定のためのモード 3 を追加します。
- リロードカウンタ搭載のため , クロックセレクトビットを削除し , コントロール
ビットに変更します。
• 通信プリスケーラ制御レジスタ (CPCR) を削除し , リロードカウンタに必要な 2 つの
レジスタ (BGR1, BGR0) を追加します。
• モード 1 ( マルチプロセッサモード ) にて , マスタ / スレーブ機能を追加します。
• 送信 / 受信データフォーマットに関するフラグビットは , いつも「正しい」値を返し
ます。例えば , プログラマがモード 3(LIN モード ) 時に , パリティ設定しようとして
も PEN ビットは "0" を返します。
• 受信時 , シリアル制御レジスタ (SCR) のストップビット長選択ビット (SBL) が "1"
のとき , 2 番目のストップビットがチェックされます。
• 非同期モード時 , 5 回サンプリング機能を追加します。
• 専用ボーレートジェネレータのために入力データと受信クロックを同期させるた
め , SEDGE( スタートビット立下り検出 ) 信号が発生します。
• バージョン 2.0 対応のため , NRZ と RZ シグナルモードを追加します。
• ビット操作命令で , A/D ビットのリードモディファイライト (RMW) が 可能です。
LIN-UART は通常の UART と類似していますが , ソフトウェアの互換性はありません。
430
第 22 章 LIN-UART
22.11
LIN-UART の制限事項
LIN-UART の制限事項を説明します。
■ 制限事項
• バスアイドル割込み許可ビット ECCR:BIE はリザーブビットとして常に "0" を書
き込むか , LIN で使用する場合はマスタと
して使用してください。
• MODE2 スレーブ送信時に TXE=1 の状態で UART リセットを行わないでください。
必ず EXT=0 の状態で UART をリセットしてください。
• LIN-UART のデータ転送において CPU によるプログラム転送の後に DMA 転送を行
うと余分な転送が発生しますので, DMA転送を開始する前にシリアルステータスレ
ジスタ (SSR) の送信イネーブルビット (TIE) および受信イネーブルビット (RIE) を
いったんディセーブル ("0" 書込み ) してから使用してください。
431
第 22 章 LIN-UART
432
第 23 章
A/D コンバータ
A/D コンバータの概要 , レジスタの構成 / 機能およ
び A/D コンバータの動作について説明します。
23.1
A/D コンバータの概要
23.2
A/D コンバータのレジスタ
23.3
A/D コンバータの動作
433
第 23 章 A/D コンバータ
23.1
A/D コンバータの概要
A/D コンバータの特長およびブロックダイヤグラムを説明します。
■ A/D コンバータの概要
A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10 ビットもしくは 8
ビットのデジタル値に変換する機能があります。入力信号は , 各アナログ入力端子から
選択し , 変換起動はソフトウェア , 内部クロック , 外部端子トリガの 3 種類から選択で
きます。
■ A/D コンバータの特長
A/D コンバータは , アナログ入力電圧をデジタル値に変換します。
A/D コンバータの特長は次のとおりです。
• 変換時間
1 チャネルあたり最小 3μs (16/32MHz のマシンクロック )
• サンプル & ホールド回路付き RC 型逐次比較変換方式を採用
• 10 ビットまたは 8 ビットの分解能
• アナログ入力は 32 チャネルからプログラムで選択
- シングル変換モード :1 チャネルを選択変換
- スキャン変換モード :連続した複数のチャネルを変換。最大 32 チャネルプログ
ラム可能
- 連続変換モード
:指定チャネルを繰り返し変換
- 停止変換モード
:指定チャネルを変換したら一時停止して次の起動がかか
るまで待機 ( 変換開始の同期が可能 )
• 割込み要求
A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが
できます。
• 起動要因を選択可能
起動要因には , ソフト , 外部トリガ ( 立下りエッジ ) またはタイマ ( 立上りエッジ ) が
あります。
434
第 23 章 A/D コンバータ
■ A/D コンバータのブロックダイヤグラム
図 23.1-1 に , A/D コンバータのブロックダイヤグラムを示します。
図 23.1-1 A/D コンバータのブロックダイヤグラム
MPX
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
AN8
AN9
AN10
AN11
AN12
AN13
AN14
AN15
AN16
AN17
AN18
AN19
AN20
AN21
AN22
AN23
AN24
AN25
AN26
AN27
AN28
AN29
AN30
AN31
AVCC
AVRH/AVRL
AVSS
D/Aコンバータ
逐次比較レジスタ
比較器
サンプル&
ホールド回路
内
部
デ
タ
バ
ス
入
力
回
路
デ
コ
ダ
データレジスタ
A/D制御レジスタ0
A/D制御レジスタ1
動作クロック
ATGX 端子
16ビット
リロードタイマ
CLKP
プリスケーラ
435
第 23 章 A/D コンバータ
■ 入力インピーダンス
A/D コンバータのサンプリング回路は次の等価回路で表されます。
図 23.1-2 入力インピーダンス
Rin
13.6kΩ (AVCC≧4.0V)
2.52kΩ (AVCC≧4.5V)
Rext
アナログ信号
ソース
ANx
アナログスイッチ
Cin:最大10.7pF
ADC
Rext はサンプリング時間(Tsamp)の最大時間を超えない値にしてください。
Rext = Tsamp/(7*Cin) - Rin
436
第 23 章 A/D コンバータ
23.2
A/D コンバータのレジスタ
A/D コンバータのレジスタを説明します。
■ A/D コンバータのレジスタ一覧
A/D コンバータには次のレジスタがあります。
• A/D コントロールステータスレジスタ
• データレジスタ
• サンプリングタイマ設定レジスタ
• 開始 / 終了チャネル設定レジスタ
図 23.2-1 A/D コンバータのレジスタ配置
bit
15
8
7
0
ADCS1
ADCS0
ADCR1
ADCR0
ADCT1
ADCT0
ADSCH
ADECH
8 ビット
8 ビット
図 23.2-2 A/D コンバータのレジスタ
A/D コントロールステータスレジスタ上位
アドレス:
000154H
15
14
13
12
11
10
9
8
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
予約
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
bit
リード / ライト→
初期値→
ADCS1
A/D コントロールステータスレジスタ下位
アドレス:
000155H
7
6
5
4
3
2
1
0
MD1
MD0
S10
ACH4
ACH3
ACH2
ACH1
ACH0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
15
14
13
12
11
10
9
8
bit
リード / ライト→
初期値→
ADCS0
データレジスタ ( 上位 )
アドレス:
000156H
bit
−
−
−
−
−
−
D9
D8
リード / ライト→
(−)
(−)
(−)
(−)
(−)
(−)
(R)
(R)
初期値→
(−)
(−)
(−)
(−)
(−)
(−)
(X)
(X)
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
ADCR1
データレジスタ ( 下位 )
アドレス:
000157H
bit
ADCR0
( 続く )
437
第 23 章 A/D コンバータ
( 続き )
A/D 変換時間設定レジスタ上位
アドレス:
000158H
bit
リード / ライト→
初期値→
15
14
13
12
11
10
9
8
CT5
CT4
CT3
CT2
CT1
CT0
ST9
ST8
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(1)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
ST7
ST6
ST5
ST4
ST3
ST2
ST1
ST0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(1)
(0)
(1)
(1)
(0)
(0)
14
13
12
11
10
9
8
ADCT1
A/D 変換時間設定レジスタ下位
アドレス:
000159H
bit
リード / ライト→
初期値→
ADCT0
A/D 開始チャネル設定レジスタ
アドレス:
00015AH
bit
15
−
−
−
ANS4
ANS3
ANS2
ANS1
ANS0
リード / ライト→
(−)
(−)
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(−)
(−)
(−)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
−
−
−
ANE4
ANE3
ANE2
ANE1
ANE0
リード / ライト→
(−)
(−)
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(−)
(−)
(−)
(0)
(0)
(0)
(0)
(0)
ADSCH
A/D 終了チャネル設定レジスタ
アドレス:
00015BH
438
bit
ADECH
第 23 章 A/D コンバータ
■ アナログ入力許可レジスタ
図 23.2-3 アナログ入力許可レジスタ
アナログ入力許可レジスタ
ADERH
bit
15
14
13
12
11
10
9
8
アドレス:000150H ADE31 ADE30 ADE29 ADE28 ADE27 ADE26 ADE25 ADE24
リード / ライト→
初期値→
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
アドレス:000151H ADE23 ADE22 ADE21 ADE20 ADE19 ADE18 ADE17 ADE16
リード / ライト→
初期値→
ADERL
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
15
14
13
12
11
10
アドレス:000152H ADE15 ADE14 ADE13 ADE12 ADE11 ADE10
9
8
ADE9
ADE8
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
アドレス:000153H
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
リード / ライト→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
リード / ライト→
初期値→
bit
初期値→
アナログ入力に使用される端子に対応する ADE ビットに常に "1" を書き込んでくださ
い。
アナログ入力に使用する端子は次のようにしてください。
• 0:ポート入力 / 出力モード
• 1:アナログ入力モード
• リセット時は "0" に初期化されます。
• 開始チャネル , 終了チャネルのアナログ入力許可レジスタには必ず "1" を書き込ん
でください。
439
第 23 章 A/D コンバータ
■ A/D コントロールステータスレジスタ (ADCS1)
図 23.2-4 A/D コントロールステータスレジスタ (ADCS1)
A/D コントロールステータスレジスタ上位
15
14
13
12
11
10
9
000154H
BUSY
INT
INTE
PAUS
STS1
STS0
STRT
予約
リード / ライト→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス:bit
初期値→
8
A/D コントロールステータスレジスタ(ADCS1) は , A/Dコンバータの制御およびステー
タス表示を行います。
[bit15]BUSY (busy flag and stop)
• 読出し時: A/D コンバータ動作表示用のビットです。
A/D 変換起動でセットされ最終チャネルの変換終了でクリアされま
す。
• 書込み時: A/D 動作中に本ビットに "0" を書き込むと強制的に動作を停止しま
す。連続 , 停止モード時の強制終了に利用します。
動作表示用のビットに "1" を書き込むことはできません。リードモディファイライ
ト (RMW) 系命令では "1" が読み出されます。単発モードでは設定された最終チャ
ネルの A/D 変換終了でクリアされます。
連続 , 停止モードでは "0" 書込みで停止するまでクリアされません。
リセット時に本ビットは "0" に初期化されます。
強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。
[bit14]INT (interrupt)
変換データが ADCR に書き込まれるとセットされます。
bit13 (INTE) が "1" のときに本ビットがセットされると割込み要求が発生します。
クリアは "0" 書込みで行われます。
( 注意事項 )
本ビットの "0" 書込みクリアは A/D 停止中に行ってください。
リセット時に本ビットは "0" に初期化されます。
DMA を使用した場合は DMA 転送終了時に本ビットがクリアされます。
[bit13]INTE (Interrupt enable)
本ビットは変換終了による割込みの許可・禁止を指定します。
• 0:割込みの禁止
• 1:割込みの許可
リセット時に本ビットは "0" に初期化されます。
[bit12]PAUS (A/D converter pause)
A/D 変換動作が一時的に停止した場合にセットされます。
A/D 変換結果を格納するレジスタが 1 つのため , 連続で変換した場合 , 変換結果を
440
第 23 章 A/D コンバータ
DMA で転送しなければ前データが壊れてしまいます。
これを保護するためにデータレジスタの内容を DMA で転送しなければ , 次の変換
データが格納されないようになっています。この間 A/D 変換動作は停止します。
DMA で転送を終了すると A/D は変換を再開します。
このビットは DMA を使用したときのみ有効です。
• 本ビットのクリアは "0" 書込みでのみ可能です (DMA 転送終了ではクリアされま
せん )。ただし , DMA 転送待ち状態のときはクリアできません。
• 変換データの保護機能に関しては「23.3 A/D コンバータの動作」を参照してく
ださい。
• リセット時に本ビットは "0" に初期化されます。
[bit11, bit10]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 変換中に書き換える
ときには注意してください。
• 外部端子トリガは立下りエッジを検出します。外部トリガ入力レベルが "L" のと
きに本ビットを書き換えて外部端子トリガ起動に設定すると A/D が起動する場
合があります。
• タイマ選択時は , 16 ビットリロードタイマ 2 が選択されます。
[bit9]STRT (Start)
本ビットに "1" を書き込むことにより A/D を起動 ( ソフト起動 ) します。
再起動をかけるときは , 再び "1" を書き込んでください。
リセット時に本ビットは "0" に初期化されます。
連続モード時および停止モード時は動作機能上 , 再起動はかかりません。"1" を書き
込む前に BUSY ビットをチェックしてください (BUSY ビットをクリアしてから起
動してください )。
強制終了とソフト起動を同時に行わないでください (BUSY=0, STRT=1)。
[bit8] (Reserved bit)
本ビットには常に "0" を書き込んでください。
441
第 23 章 A/D コンバータ
■ A/D コントロールステータスレジスタ (ADCS0)
図 23.2-5 A/D コントロールステータスレジスタ (ADCS0)
A/D コントロールステータスレジスタ下位
7
6
5
4
3
2
1
0
000155H
MD1
MD0
S10
ACH4
ACH3
ACH2
ACH1
ACH0
リード / ライト→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス:bit
初期値→
A/D コントロールステータスレジスタ(ADCS0) は , A/Dコンバータの制御およびステー
タス表示を行います。ADCS0 は A/D 変換動作中に書き換えないようにしてください。
[bit7, bit6]MD1, MD0 (A/D converter mode set)
MD1, MD0 ビットは , 動作モードを設定します。
MD1
MD0
0
0
単発モード : 動作中の再起動はすべて可能
0
1
単発モード : 動作中の再起動不可能
1
0
連続モード : 動作中の再起動不可能
1
1
停止モード : 動作中の再起動不可能
動作モード
( 注意事項 )
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中
の再起動ができます。このモードではソフトウェア起動 (STS1, STS0)=00B) のみ
設定可能です。再起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む
• 単発モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変
換を連続して行いすべてのチャネルの変換が終了したら停止します。
• 連続モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで A/D 変
換を繰り返し行います。
• 停止モード
ANS4 ∼ ANS0 の設定チャネルから ANE4 ∼ ANE0 の設定チャネルまで 1 チャネ
ルごとに A/D 変換を行い一時停止します。変換再開は起動要因発生によって行
われます。
リセット時には本ビット群は "00B" に初期化されます。
• 連続モード , 停止モードで A/D 変換を起動すると , BUSY ビットで強制終了する
まで変換動作を続けます。
• 強制終了は BUSY ビットに "0" を書き込むことにより行われます。
• 強制終了後の起動時は ANS4 ∼ ANS0 の設定チャネルから変換されます。
442
第 23 章 A/D コンバータ
• 単発 , 連続 , 停止の各モードでの再起動不可能はタイマ , 外部トリガ , ソフトすべ
ての起動に適用されます。
[bit5]S10
• 本ビットは変換の分解能を指定します。"0" にセットされると 10 ビットの A/D
変換が行われます。そのほかの場合には 8 ビットの A/D 変換が行われてその結
果は ADCR0 に記憶されます。
• リセット時に本ビットは "0" に初期化されます。
[bit4 ∼ bit0]ACH4 ∼ ACH0 (Analog convert select channel)
本ビット群より現在 A/D 変換中のチャネルを表します。
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
1
1
0
0
0
AN24
1
1
0
0
1
AN25
1
1
0
1
0
AN26
1
1
0
1
1
AN27
1
1
1
0
0
AN28
1
1
1
0
1
AN29
443
第 23 章 A/D コンバータ
ACH4
ACH3
ACH2
ACH1
ACH0
変換チャネル
1
1
1
1
0
AN30
1
1
1
1
1
AN31
• 読出し時
A/D 変換 (BUSY ビット= 1) の間 , 現在の変換チャネルを本ビット群で表します。
強制終了 (BUSY ビット= 0) により停止した場合は変換が停止されたチャネルを
表します。
• 書込み時
本ビット群への書込みは無効です。
• リセット時に本ビット群は "00000B" に初期化されます。
■ データレジスタ (ADCR0, ADCR1)
図 23.2-6 データレジスタ (ADCR0, ADCR1)
データレジスタ ( 上位 )
アドレス:bit
000156H
15
14
13
12
11
10
9
−
−
−
−
−
−
D9
D8
(R)
(X)
リード / ライト→
(−)
(−)
(−)
(−)
(−)
(−)
(R)
初期値→
(−)
(−)
(−)
(−)
(−)
(−)
(X)
8
データレジスタ ( 下位 )
アドレス:bit
000157H
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
リード / ライト→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
データレジスタ (ADCR0, ADCR1) は , 変換の結果として生成されたデジタル値を記憶
するために使用されるものです。
ADCR0 は下位 8 ビットを記憶し , ADCR1 は変換結果の最上位の 2 ビットを記憶しま
す。これらのレジスタ値は変換が完了するたびに書き換えられます。通常は最後の変
換値が本ビット群に記憶されます。
ADCR1 の bit10 ∼ bit15 からは常に "0" が読み出されます。
変換データの保護機能を利用できます (「23.3 A/D コンバータの動作」を参照 )。
444
第 23 章 A/D コンバータ
■ A/D 変換時間設定レジスタ (ADCT0, ADCT1)
図 23.2-7 A/D 変換時間設定レジスタ (ADCT0, ADCT1)
A/D 変換時間設定レジスタ上位
15
14
13
12
11
10
9
8
000158H
CT5
CT4
CT3
CT2
CT1
CT0
ST9
ST8
リード / ライト→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(1)
(0)
(0)
(0)
(0)
アドレス:bit
初期値→
A/D 変換時間設定レジスタ下位
アドレス:bit
000159H
リード / ライト→
初期値→
7
6
5
4
3
2
1
0
ST7
ST6
ST5
ST4
ST3
ST2
ST1
ST0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(1)
(0)
(1)
(1)
(0)
(0)
A/D 変換時間設定レジスタ (ADCT0, ADCT1) はアナログ入力のサンプリング時間およ
び比較時間を制御します。本レジスタの設定で A/D の変換時間を設定します。
ADCT0, ADCT1 は A/D 変換動作中に書き換えないでください。
[bit15 ∼ bit10]CT5 ∼ CT0 (A/D compare time set)
• 本ビット群の設定により比較操作時間のクロック分周値を指定します。
• CT5 ∼ CT0 の設定を "000001B"(01H) にすると分周なし (=CLKP) になります。
• CT5 ∼ CT0 の設定を "000000B"(00H) にしないでください。
• リセットにより本ビット群は "000100B"(04H) に初期化されます。
比較操作時間 (Compare Time) = CT 設定値× CLKP 周期× 10 + 4CLKP
( 注意事項 )
比較操作時間が 500μs を超えないように設定してください。
[bit9 ∼ bit0]ST9 ∼ ST0 (Analog input sampling time set)
• 本ビット群の設定によりアナログ入力のサンプリング時間を指定します。
• リセットにより本ビット群は "0000101100B"(02CH) に初期化されます。
サンプリング時間 (Sampling Time) = ST 設定値× CLKP 周期
• ST9 ∼ ST0 へ以下の値を設定することは禁止です。
"0000000010"(02H), "0000000001"(01H), "0000000000"(00H)
3 以上の値を設定してください。
( 注意事項 )
サンプリング時間を 1.375μs 以下にしないでください。
• 必要サンプリング時間および ST 設定時間の算出は以下の計算で行ってください。
必要サンプリング時間 (Tsamp) = (Rext + Rin) × Cin × 7
ST9 ∼ ST0 設定値=必要サンプリング時間 (Tsamp) ÷ CLKP 周期
445
第 23 章 A/D コンバータ
• ST の設定値は A/D のサンプリング時間が必要サンプリング時間以上になるよう
に設定してください。
例 : クロック 32MHz, AVCC = 4.5V 以上 , Rext = 200kΩ の場合
Tsamp = (200 × 103 + 2.52 × 103) × 10.7 × 10-12 × 7 = 約 15.17μs
= 15.17-6 ÷ 31.25-9 = 485.44
ST
= 486(1E6H) 以上を設定してください。
• Rextの値により必要サンプリング時間が決まりますので変換時間を考慮してRext
を決定してください。
• ST9∼ST0へ以下の値を設定することは禁止です。
3以上の値を設定してください。
"0000000010B"(02H), "0000000001B"(01H), "0000000000B"(00H)
■ 推奨設定値
最適な変換時間を達成するために , 以下の設定を推奨します。
(AVCC ≧ 4.5V, Rext ≦ 15kΩ)
CLKP (MHz)
比較操作時間
(CT5 ∼ CT0)
サンプリング時間
(ST9 ∼ ST0)
変換時間 (ms)
16
000010B(02H)
0000010110B(016H)
1.375 + 1.500 = 2.875
32
000100B(04H)
0000101100B(02CH)
1.375 + 1.375 = 2.750
■ A/D 開始 / 終了チャネル設定レジスタ (ADSCH, ADECH)
図 23.2-8 A/D 開始 / 終了チャネル設定レジスタ (ADSCH, ADECH)
A/D 開始チャネル設定レジスタ
15
14
13
12
11
10
9
8
−
−
−
ANS4
ANS3
ANS2
ANS1
ANS0
リード / ライト→
(−)
(−)
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(−)
(−)
(−)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
アドレス:bit
00015AH
A/D 終了チャネル設定レジスタ
アドレス:bit
00015BH
7
6
−
−
−
ANE4
ANE3
ANE2
ANE1
ANE0
リード / ライト→
(−)
(−)
(−)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(−)
(−)
(−)
(0)
(0)
(0)
(0)
(0)
A/D 変換の開始チャネルと終了チャネルの設定レジスタです。
ADCSH, ADCEH は A/D 変換中に書き換えないでください。
• 本ビット群より A/D 変換の開始チャネルと終了チャネルを設定します。
• 同一のチャネルが ANS4 ∼ ANS0 および ANE4 ∼ ANE0 に書き込まれると , 変換は
1 つのチャネルに対してのみ行われます ( シングル変換 )。
446
第 23 章 A/D コンバータ
• 連続モード , 停止モードを設定している場合は本ビット群で設定されたチャネルの
変換が終わると ANS4 ∼ ANS0 で設定された開始チャネルに戻ります。
• 設定チャネルが ANS > ANE の場合は ANS から変換が始まり 31 チャネルまで変換
したら 0 チャネルに戻り ANE まで変換します。
• リセットにより本ビット群は ANS=00000B, ANE=00000B に初期化されます。
例:チャネル設定 ANS=6 チャネル , ANE=3 チャネルで単発モードのとき変換は次
の順序で行われます。
6 チャネル → 7 チャネル → 8 チャネル → ••• → 31 チャネル → 0 チャネル →
1 チャネル → 2 チャネル → 3 チャネル
[bit12 ∼ bit8]ANS4 ∼ ANS0 ( アナログ変換開始チャネル )
[bit4 ∼ bit0] ANE4 ∼ ANE0 ( アナログ変換終了チャネル )
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
447
第 23 章 A/D コンバータ
448
ANS4
ANE4
ANS3
ANE3
ANS2
ANE2
ANS1
ANE1
ANS0
ANE0
開始 / 終了チャネル
1
0
1
1
1
AN23
1
1
0
0
0
AN24
1
1
0
0
1
AN25
1
1
0
1
0
AN26
1
1
0
1
1
AN27
1
1
1
0
0
AN28
1
1
1
0
1
AN29
1
1
1
1
0
AN30
1
1
1
1
1
AN31
第 23 章 A/D コンバータ
23.3
A/D コンバータの動作
A/D コンバータには単発モード , 連続モード , 停止モードの 3 種類のモードがありま
す。
A/D コンバータの動作を説明します。
■ A/D コンバータの動作
A/D コンバータは逐次比較方式で作動し , 分解能は 10 ビットまたは 8 ビットを選択す
ることができます。
この 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 −−→ 繰返し
• ANS = 010B, ANE = 010B
開始 → AN2 → AN2 → AN2 −−→ 繰返し
連続モードで変換させると BUSY ビットに "0" を書き込むまで変換を繰り返し続けま
す (BUSY ビットに "0" を書き込む→強制終了 )。強制終了を行うと変換中のものは途
中で止まってしまうため , 注意してください ( 強制終了した場合は変換レジスタは変換
完了した前データが格納されています )。
449
第 23 章 A/D コンバータ
■ 停止モード
停止モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順に変換してい
きますが 1 チャネル変換するたびに変換動作を一時停止します。一時停止を解除する
にはもう一度起動を行ってください。
ANE ビットで設定された終了チャネルまで変換が終わると ANS のアナログ入力に戻
り変換動作を続けます。開始チャネルと終了チャネルが同じ (ANS=ANE) であれば変
換は一方のチャネルに対してのみ実行されます。
[例]
• ANS = 00000B, ANE = 00011B
開始 → AN0 → 停止 → 起動 → AN1 → 停止 → 起動 → AN2 → 停止
→ 起動 → AN3 → 停止 → 起動 → AN0 −−→繰返し
• ANS = 010B, ANE = 010B
開始 → AN2 → 停止 → 起動 → AN2 → 停止 → 起動 → AN2 −−→
→ 繰返し
このときの起動要因は STS1, STS0 で設定されたものだけです。
このモードを使用することにより変換開始の同期をかけることが可能です。
<注意事項>
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再起動
ができます。このモードではソフトウェア起動 (STS1, STS0=00B) のみ設定可能です。再
起動は下記の手順で行ってください。
1. INT ビットを "0" にクリアする
2. STRT ビットに "1" を , INT ビットに "0" を同時に書き込む
450
第 24 章
C_CAN
C_CAN の機能と動作について説明します。
24.1
C_CAN の特長
24.2
C_CAN レジスタ機能
24.3
C_CAN の機能
451
第 24 章 C_CAN
24.1
C_CAN の特長
C_CAN は , シリアル通信用の標準プロトコルである CAN プロトコル ver2.0A/B に
準拠しており , 自動車や FA などの工業分野に広く使用されています。
■ C_CAN の特長
C_CAN には以下の特長があります。
• CAN プロトコル ver2.0A/B をサポート
• 1Mbps までのビットレートをサポート
• メッセージオブジェクトごとの識別マスク
• プログラマブル FIFO モードをサポート
• マスク可能な割込み
• 自己テスト動作用プログラマブルループバックモードをサポート
• インタフェースレジスタを使用してメッセージバッファへのリード / ライト
■ C_CAN のブロックダイヤグラム
図 24.1-1 に , C_CAN のブロックダイヤグラムを示します。
図 24.1-1 C_CAN ブロックダイヤグラム
CAN_TX CAN_RX
CANコントローラ
メッセージ RAM
メッセージ ハンドラ
C_CAN
レジスタ群
452
割込み
データOUT
データIN
アドレス[7:0]
コントロール
リセット
クロック
CPUインタフェース
第 24 章 C_CAN
CAN コントローラ
CAN プロトコルと送受信メッセージ転送のためのシリアル / パラレル変換用のシリ
アルレジスタを制御します。
メッセージ RAM
メッセージオブジェクトを格納します。
レジスタ群
C_CAN で使用されるすべてのレジスタです。
メッセージハンドラ
メッセージ RAM と CAN コントローラを制御します。
CPU インタフェース
FR ファミリの内部バスインタフェースを制御します。
453
第 24 章 C_CAN
24.2
C_CAN レジスタ機能
CAN レジスタは , 256 バイト (64 ワード ) のアドレス空間が割り当てられ , バイトも
しくはワードのアクセスが可能です。メッセージ RAM への CPU のアクセスは ,
メッセージインタフェースレジスタを介して行います。
以下に , CAN レジスタおよびレジスタの機能を説明します。
■ CAN レジスタの種類
● 全体コントロールレジスタ
• CAN 制御レジスタ (CTRLR)
• CAN ステータスレジスタ (STATR)
• CAN エラーカウンタ (ERRCNT)
• CAN ビットタイミングレジスタ (BTR)
• CAN 割込みレジスタ (INTR)
• CAN テストレジスタ (TESTR)
• CAN プリスケーラ拡張レジスタ (BRPER)
● メッセージインタフェースレジスタ
• IFx コマンド要求レジスタ (IFxCREQ)
• IFx コマンドマスクレジスタ (IFxCMSK)
• IFx マスクレジスタ 1, 2(IFxMSK1, IFxMSK2)
• IFx アービトレーションレジスタ 1, 2(IFxARB1, IFxARB2)
• IFx メッセージ制御レジスタ (IFxMCTR)
• IFx データレジスタ A1, A2, B1, B2(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
● メッセージハンドラレジスタ
• CAN 送信要求レジスタ 1, 2(TREQR1, TREQR2)
• CAN データ更新レジスタ 1, 2(NEWDT1, NEWDT2)
• CAN 割込みペンディングレジスタ 1, 2(INTPND1, INTPND2)
• CAN メッセージ有効レジスタ 1, 2(MSGVAL1, MSGVAL2)
● プリスケーラレジスタ
CAN クロックプリスケーラレジスタ (CANPRE)
454
第 24 章 C_CAN
■ 全体コントロールレジスタ一覧
表 24.2-1 全体コントロールレジスタ一覧
レジスタ
アドレス
備考
+0
+1
CAN 制御レジスタ
(CTRLR)
ベースアドレス
020000H
bit[15:8]
bit[7:0]
CAN ステータスレジスタ
(STATR)
bit[7:0]
予約ビット
■ CAN ステー
タスレジスタ
(STATR) を
参照
予約ビット
■ CAN ステー
タスレジスタ
(STATR) を
参照
リセット値 :
00H
リセット値 :
01H
リセット値 :
00H
リセット値 :
00H
CAN ビットタイミング
レジスタ (BTR)
bit[15:8]
bit[7:0]
bit[15:8]
RP, REC[6:0]
TEC[7:0]
TSeg2[2:0],
TSeg1[3:0]
リセット値 :
00H
リセット値 :
00H
リセット値 :
23H
CAN 割込みレジスタ
(INTR)
bit[15:8]
ベースアドレス
020008H
bit[7:0]
bit[7:0]
STAR:
BOff, EWarn, EPass=
リードオンリ
RxOk, TxOk, LEC=
リード / ライト
ERRCNT:
リードオンリ
BTR:
Init(CTLR)=CCE
(CTRLR)=1 時 ,
リセット値 : 書込み可能
01H
SJW[1:0],
BRP[5:0]
CAN テストレジスタ
(TESTR)
bit[15:8]
bit[7:0]
■ CAN テスト
レジスタ
(TESTR) を
参照
IntId[15:8]
IntId[7:0]
予約ビット
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
CAN プリスケーラ拡張
レジスタ (BRPER)
ベースアドレス
02000CH
+3
bit[15:8]
CAN エラーカウンタ
(ERRCNT)
ベースアドレス
020004H
+2
INTR: リードオンリ
TESTR:
Test(CTRLR)=1 時 ,
書込み可能
"Rx" は CAN_RX 端
子のレベル値を示し
リセット値 : ます。
00H &
0br0000000H
予約ビット
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
予約ビット
BRP[3:0]
-
-
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
BRP:
CCE(CTLR)=1 時 ,
書込み可能
455
第 24 章 C_CAN
■ メッセージインタフェースレジスタ一覧
表 24.2-2 メッセージインタフェースレジスタ一覧 (1 / 2)
レジスタ
アドレス
備考
+0
+1
IF 1 コマンド要求レジスタ
(IF1CREQ)
bit[15:8]
ベースアドレス
020010H
bit[7:0]
ベースアドレス
020018H
IF1 コマンドマスクレジスタ
(IF1CMSK)
bit[15:8]
bit[7:0]
Busy
Mess. No. [5:0]
予約ビット
リセット値 :
00H
リセット値 :
01H
リセット値 :
00H
リセット値 :
00H
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MXtd. MDir,
Msk[28:24]
Msk[23:16]
Msk[15:8]
Msk[7:0]
リセット値 :
FFH
リセット値 :
FFH
リセット値 :
FFH
リセット値 :
FFH
-
IF1 アービトレーション
レジスタ 2(IF1ARB2)
IF1 アービトレーション
レジスタ 1(IF1ARB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal, Xtd,
Dir, ID[28:24]
ID[23:16]
ID[15:8]
ID[7:0]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
bit[15:8]
-
bit[7:0]
■ IFx メッ
■ IFx メッ
ベースアドレス セージ制御レ セージ制御レ
02001CH
ジスタ
ジスタ
(IFxMCTR) を (IFxMCTR) を
参照
参照
リセット値 :
00H
-
IF1 マスクレジスタ 1
(IF1CMSK1)
IF1 メッセージ制御レジスタ
(IF1MCTR)
456
+3
■ IFx コマン
ドマスクレジ
スタ
(IFxCMSK) を
参照
IF1 マスクレジスタ 2
(IF1CMSK2)
ベースアドレス
020014H
+2
リセット値 :
00H
予約ビット
bit[15:8]
bit[7:0]
-
-
リセット値 :
00H
リセット値 :
00H
-
第 24 章 C_CAN
表 24.2-2 メッセージインタフェースレジスタ一覧 (2 / 2)
レジスタ
アドレス
備考
+0
+1
IF1 データ A レジスタ 1
(IF1DTA1)
ベースアドレス
020020H
ベースアドレス
020024H
ベースアドレス
020030H
ベースアドレス
020034H
+2
+3
IF1 データ A レジスタ 2
(IF1DTA2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[0]
Data[1]
Data[2]
Data[3]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF1 データ B レジスタ 1
(IF1DTB1)
IF1 データ B レジスタ 2
(IF1DTB2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[4]
Data[5]
Data[6]
Data[7]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF1 データ A レジスタ 2
(IF1DTA2)
IF1 データ A レジスタ 1
(IF1DTA1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[3]
Data[2]
Data[1]
Data[0]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF1 データ B レジスタ 2
(IF1DTB2)
IF1 データ B レジスタ 1
(IF1DTB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[7]
Data[6]
Data[5]
Data[4]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
バイト配列順序 :
ビッグエンディアン
バイト配列順序 :
ビッグエンディアン
バイト配列順序 :
リトルエンディアン
バイト配列順序 :
リトルエンディアン
457
第 24 章 C_CAN
■ メッセージインタフェースレジスタ一覧
表 24.2-3 メッセージインタフェースレジスタ一覧 (1 / 2)
レジスタ
アドレス
備考
+0
+1
IF2 コマンド要求レジスタ
(IF2CREQ)
bit[15:8]
ベースアドレス
020040H
bit[7:0]
ベースアドレス
020048H
IF2 コマンドマスクレジスタ
(IF2CMSK)
bit[15:8]
bit[7:0]
Busy
Mess. No. [5:0]
予約ビット
リセット値 :
00H
リセット値 :
01H
リセット値 :
00H
リセット値 :
00H
458
-
IF2 マスクレジスタ 1
(IF2CMSK1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MXtd. MDir,
Msk[28:24]
Msk[23:16]
Msk[15:8]
Msk[7:0]
リセット値 :
FFH
リセット値 :
FFH
リセット値 :
FFH
リセット値 :
FFH
-
IF2 アービトレーション
レジスタ 2(IF2ARB2)
IF2 アービトレーション
レジスタ 1(IF2ARB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal, Xtd,
Dir, ID[28:24]
ID[23:16]
ID[15:8]
ID[7:0]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
-
IF2 メッセージ制御レジスタ
(IF2MCTR)
ベースアドレス
02004CH
+3
■ IFx コマン
ドマスクレジ
スタ
(IFxCMSK) 参
照
IF2 マスクレジスタ 2
(IF2CMSK2)
ベースアドレス
020044H
+2
予約ビット
bit[15:8]
bit[7:0]
bit[7:0]
bit[15:8]
■ IFx メッ
セージ制御レ
ジスタ
(IFxMCTR) 参
照
■ IFx メッ
セージ制御レ
ジスタ
(IFxMCTR) 参
照
-
-
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
-
第 24 章 C_CAN
表 24.2-3 メッセージインタフェースレジスタ一覧 (2 / 2)
レジスタ
アドレス
備考
+0
ベースアドレス
020050H
ベースアドレス
020154H
ベースアドレス
020160H
ベースアドレス
020164H
+1
+2
+3
IF2 データ A レジスタ 1
(IF2DTA1)
IF2 データ A レジスタ 2
(IF2DTA2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[0]
Data[1]
Data[2]
Data[3]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF2 データ B レジスタ 1
(IF2DTB1)
IF2 データ B レジスタ 2
(IF2DTB2)
bit[7:0]
bit[15:8]
bit[7:0]
bit[15:8]
Data[4]
Data[5]
Data[6]
Data[7]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF2 データ A レジスタ 2
(IF2DTA2)
IF2 データ A レジスタ 1
(IF2DTA1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[3]
Data[2]
Data[1]
Data[0]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
IF2 データ B レジスタ 2
(IF2DTB2)
IF2 データ B レジスタ 1
(IF2DTB1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
Data[7]
Data[6]
Data[5]
Data[4]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
バイト配列順序 :
ビッグエンディ
アン
バイト配列順序 :
ビッグエンディ
アン
バイト配列順序 :
リトルエンディ
アン
バイト配列順序 :
リトルエンディ
アン
459
第 24 章 C_CAN
■ メッセージハンドラレジスタ一覧
表 24.2-4 メッセージハンドラレジスタ一覧
レジスタ
アドレス
備考
+0
ベースアドレス
020180H
ベースアドレス
020184H
+1
ベースアドレス
020194H
ベースアドレス
0201A0H
ベースアドレス
0201A4H
CAN 送信要求レジスタ 1
(TREQR1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
TxRqst[32-25]
TxRqst[24-17]
TxRqst[16-9]
TxRqst[8-1]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
32 メッセージバッファ以上をサポートするための予約領域
( ■ CAN 送信要求レジスタ (TREQR1, TREQR2) 参照 )
ベースアドレス
0201B4
460
INTR1, 2:
リードオンリ
-
CAN データ更新レジスタ 1
(NEWDT1)
bit[15:8]
bit[7:0]
bit[15:8]
NewDat[3225]
NewDat[2417]
NewData[169]
NewData[8-1]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
bit[7:0]
32 メッセージバッファ以上をサポートするための予約領域
( ■ CAN データ更新レジスタ (NEWDT1, NEWDT2) 参照 )
CAN 割込みペンディング
レジスタ 2(INTPND2)
CAN 割込みペンディング
レジスタ 1(INTPND1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
IntPnd[32-25]
IntPnd[24-17]
IntPnd[16-9]
IntPnd[8-1]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
32 メッセージバッファ以上をサポートするための予約領域
( ■ CAN 割込みペンディングレジスタ (INTPND1, INTPND2) 参照 )
CAN メッセージ有効
レジスタ 2(MSGVAL2)
ベースアドレス
0201B0
+3
CAN 送信要求レジスタ 2
(TREQR2)
CAN データ更新レジスタ 2
(NEWDT2)
ベースアドレス
020190H
+2
NEWDT1, 2:
リードオンリ
-
INTPND1, 2:
リードオンリ
-
CAN メッセージ有効
レジスタ 1(MSGVAL1)
bit[15:8]
bit[7:0]
bit[15:8]
bit[7:0]
MsgVal[32-25]
MsgVal[24-17]
MsgVal[16-9]
MsgVal[8-1]
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
リセット値 :
00H
32 メッセージバッファ以上をサポートするための予約領域
( ■ CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) 参照 )
MSGVAL1, 2:
リードオンリ
-
第 24 章 C_CAN
■ クロックプリスケーラレジスタ
表 24.2-5 クロックプリスケーラレジスタ
レジスタ
アドレス
0001A8H
備考
+0
+1
+2
+3
CANPRE
-
-
-
bit[3:0]
-
-
-
CANPRE[3:0]
-
-
-
リセット値 :
00H
-
-
-
CAN
プリスケーラ
461
第 24 章 C_CAN
24.2.1
全体コントロールレジスタ
全体コントロールレジスタは , CAN プロトコル制御および動作モードを制御し , ス
テータス情報を提供します。
■ CAN 制御レジスタ (CTRLR)
図 24.2-1 CAN 制御レジスタ (CTRLR) のビット構成
CAN 制御レジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
Test
CCE
DAR
−
EIE
SIE
IE
Init
(R/W)
(R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(1)
アドレス :
ch.0 020000H
ch.1 020100H
CAN 制御レジスタ ( 下位バイト )
bit
アドレス :
ch.0 020001H
ch.1 020101H
リード / ライト (R/W)
初期値
(0)
CAN 制御レジスタ (CTRLR) は , CAN コントローラの動作モードを制御します。
[bit15 ∼ bit8] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] Test: テストモード許可ビット
Test
462
機能
0
通常動作
1
テストモード
[ 初期値 ]
第 24 章 C_CAN
[bit6] CCE: ビットタイミングレジスタ書込み許可ビット
CCE
機能
0
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ
スタへの書込みを禁止します。 [ 初期値 ]
1
CAN ビットタイミングレジスタおよび CAN プリスケーラ拡張レジ
スタへの書込みを許可します。Init ビットが "1" のときに有効です。
[bit5] DAR: 自動再送禁止ビット
DAR
機能
0
調停負けまたはエラー検出時のメッセージの自動再送を許可します。
[ 初期値 ]
1
自動再送を禁止します。
CAN 仕様 (「ISO11898, 6.3.3 リカバリ処理」を参照 ) より , CAN コントローラは調
停負けあるいは転送中のエラー検出によりフレームの自動再送を行います。自動再
送する場合は , DAR ビットを "0" にリセットします。CAN を Time Triggered
CAN(TTCAN, 「ISO11898-1」を参照 ) 環境で動作させるためには , DAR ビットに
"1" を設定する必要があります。
( 注意事項 )
DAR ビットに "1" を設定したモードでは , メッセージオブジェクト ( メッセージ
オブジェクトについては「24.2.2 メッセージインタフェースレジスタ ■メッ
セージオブジェクト」を参照 ) の TxRqst ビットと NewDat ビットの動作が異な
ります。
•
フレーム送信を開始したとき , メッセージオブジェクトの TxRqst が "0"
にリセットされますが , NewDat ビットはセットされたままです。
•
フレーム送信が正常終了すると NewDat は "0" にリセットされます。
送信が調停負けもしくはエラー検出すると , NewDat はセットされたままです。
送信を再開するためには , CPU により TxRqst に "1" を設定する必要があります。
[bit4] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
463
第 24 章 C_CAN
[bit3] EIE: エラー割込みコード許可ビット
EIE
機能
0
CAN ステータスレジスタの Boff または EWarn ビットの変化により ,
CAN 割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの Boff または EWarn ビットの変化により ,
CAN 割込みレジスタへのステータス割込みコードの設定を許可しま
す。
[bit2] SIE: ステータス割込みコード許可ビット
SIE
機能
0
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に
より, CAN割込みレジスタへの割込みコードの設定を禁止します。
[ 初期値 ]
1
CAN ステータスレジスタの TxOk, RxOk または LEC ビットの変化に
より , CAN 割込みレジスタへのステータス割込みコードの設定を許
可します。CPU からの書込みによって発生した TxOk, RxOk, LEC
ビットの変化は CAN 割込みレジスタには設定されません。
[bit1] IE: 割込み許可ビット
IE
機能
0
割込みの発生を禁止します。[ 初期値 ]
1
割込みの発生を許可します。
[bit0] Init: 初期化ビット
Init
464
機能
0
CAN コントローラ動作可能
1
初期化
[ 初期値 ]
第 24 章 C_CAN
<注意事項>
• バスオフリカバリシーケンス (「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 プリスケーラレジスタの変更を
行ってください。
465
第 24 章 C_CAN
■ CAN ステータスレジスタ (STATR)
図 24.2-2 CAN ステータスレジスタ (STATR) のビット構成
CAN ステータスレジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
RxOk
TxOk
アドレス :
ch.0 020002H
ch.1 020102H
CAN ステータスレジスタ ( 下位バイト )
bit
アドレス :
ch.0 020003H
ch.1 020103H
7
BOff
6
EWarn EPass
LEC
リード / ライト
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(1)
CAN ステータスレジスタ (STATR) は , CAN ステータスおよび CAN バス状態を表示し
ます。
[bit15 ∼ bit8] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] BOff: バスオフビット
BOff
機能
0
CAN コントローラはバスオフ状態でないことを示します。
[ 初期値 ]
1
CAN コントローラはバスオフ状態であることを示します。
[bit6] EWarn: ワーニングビット
EWarn
466
機能
0
送信と受信カウンタがともに 96 未満であることを示します。
[ 初期値 ]
1
送信または受信カウンタが 96 以上であることを示します。
第 24 章 C_CAN
[bit5] EPass: エラーパッシブビット
EPass
機能
0
送信と受信カウンタがともに 128 未満 ( エラーアクティブ状態 ) で
あることを示します。 [ 初期値 ]
1
受信カウンタは RP ビット =1, 送信カウンタが 128 以上 ( エラー
パッシブ状態 ) であることを示します。
[bit4] RxOk: メッセージ正常受信ビット
RxOk
機能
0
CAN バス上で正常なメッセージ通信が行われていない , またはバス
アイドル状態であることを示します。 [ 初期値 ]
1
CAN バス上で正常なメッセージ通信が行われたことを示します。
[bit3] TxOk: メッセージ正常送信ビット
TxOk
機能
0
バスアイドル状態もしくは正常なメッセージ送信が行われていない
ことを示します。 [ 初期値 ]
1
正常なメッセージ送信が行われたことを示します。
<注意事項>
RxOk および TxOk ビットは , CPU によってのみリセットされます。
467
第 24 章 C_CAN
[bit2 ∼ bit0] LEC: ラストエラーコードビット
LEC
状態
0
正常
1
Stuff エラー
メッセージ内において 6 ビット以上連続してドミナン
トまたはレセッシブを検出したことを示します。
2
Form エラー
受信されたフレームの固定フォーマット部が間違って
検出したことを示します。
3
Ack エラー
送信メッセージに対し , ほかのノードからアクノリッ
ジされなかったことを示します。
4
bit1 エラー
調停フィールドを除くメッセージの送信データにおい
て , レセッシブを送信したにもかかわらずドミナント
を検出したことを示します。
5
bit0 エラー
メッセージの送信データにおいて , ドミナントを送信
したにもかかわらずレセッシブを検出したことを示し
ます。バスリカバリ中には , 11 ビットのレセッシブを
検出するごとにセットされます。このビットを読み出
すことによりバスリカバリシーケンスを監視できます。
6
CRC エラー
受信したメッセージの CRC データと計算した CRC の
結果が一致しなかったことを示します。
7
未検出
CPU によって LEC ビットに "7" の書込みを行ってから ,
LEC 値が "7" を読み出した場合 , その期間は送受信しな
かったことを示します ( バスアイドル状態 )。
機能
正常に送信または受信されたことを示します。
[ 初期値 ]
LEC ビットは CAN バス上で発生した最後のエラーを示すコードを保持します。メッ
セージがエラーなしで転送 ( 受信 / 送信 ) 完了すると "0" にクリアされます。未検出
コード 7 は , コード更新をチェックするために CPU によって設定されます。
<注意事項>
• ステータス割込みコード (8000H) は , EIE ビットが "1" のときに BOff または EWarn ビッ
トが変化した場合 , もしくは SIE ビットが "1" のときに RxOk, TxOk または LEC ビッ
トが変化した場合 , CAN 割込みレジスタに設定されます。
• RxOk, TxOk ビットは CPU の書込みによって更新されますので , CAN コントローラに
よってセットされた RxOk, TxOk ビットが消えてしまいます。もし , RxOk, TxOk ビッ
トを使用する場合には , RxOk または TxOk ビットが "1" にセットされてから (45 × BT)
時間以内にクリアしてください。BT は 1 ビットタイムを示します。
• SIE ビットが "1" のとき , LEC ビットの変化による割込みが発生した場合には CAN ス
テータスレジスタに書き込まないでください。
• EPass ビットの変化あるいは RxOk, TxOk および LEC ビットへの CPU 書込み動作で
は発生しません。
• BOff ビットまたは EPass ビットが "1" になっても EWarn ビットは "1" にセットされて
います。
• 本レジスタを読み出すことにより , CAN 割込みレジスタのステータス割込み (8000H)
はクリアされます。
468
第 24 章 C_CAN
■ CAN エラーカウンタ (ERRCNT)
図 24.2-3 CAN エラーカウンタ (ERRCNT) のビット構成
CAN エラーカウンタレジスタ ( 上位バイト )
bit
15
14
13
12
RP
アドレス :
ch.0 020004H
ch.1 020104H
11
10
9
8
REC6 ∼ REC0
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
CAN エラーカウンタレジスタ ( 下位バイト )
bit
7
6
5
TEC7 ∼ TEC0
アドレス :
ch.0 020005H
ch.1 020105H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN エラーカウンタ (ERRCNT) は , 受信エラーパッシブ表示および受信エラーカウン
タ , 送信エラーカウンタを示します。
[bit15] RP: 受信エラーパッシブ表示
RP
機能
0
受信エラーカウンタはエラーパッシブ状態でないことを示します。
[ 初期値 ]
1
受信エラーカウンタは CAN 仕様で定義されているエラーパッシブ
状態に到達したことを示します。
[bit14 ∼ bit8] REC6 ∼ REC0: 受信エラーカウンタ
受信エラーカウンタ値。受信エラーカウンタ値の範囲は 0 ∼ 127 です。
[bit7 ∼ bit0] TEC7 ∼ TEC0: 送信エラーカウンタ
送信エラーカウンタ値。送信エラーカウンタ値の範囲は 0 ∼ 255 です。
469
第 24 章 C_CAN
■ CAN ビットタイミングレジスタ (BTR)
図 24.2-4 CAN ビットタイミングレジスタ (BTR) のビット構成
CAN ビットタイミングレジスタ ( 上位バイト )
bit
アドレス :
ch.0 020006H
ch.1 020106H
15
14
13
12
11
10
TSeg2
−
9
8
TSeg1
リード / ライト
(R)
(R/W)
(R/W)
(R/W)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(1)
(0)
(0)
(0)
(1)
(1)
4
3
2
1
0
CAN ビットタイミングレジスタ ( 下位バイト )
bit
7
6
SJW
アドレス :
ch.0 020007H
ch.1 020107H
リード / ライト (R/W)
初期値
5
(0)
BRP
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(1)
CAN ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングを設
定します。
[bit15] (Reserved bit)
予約ビットは , "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) を決定
します。
470
第 24 章 C_CAN
<注意事項>
CAN 制御レジスタの CCE ビットと Init ビットが "1" にセットされているときに , CAN ビッ
トタイミングレジスタおよび CAN プリスケーラ拡張レジスタを設定してください。
■ CAN 割込みレジスタ (INTR)
図 24.2-5 CAN 割込みレジスタ (INTR) のビット構成
CAN 割込みレジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
IntId15 ∼ IntId8
アドレス :
ch.0 020008H
ch.1 020108H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
CAN 割込みレジスタ ( 下位バイト )
bit
7
6
IntId7 ∼ IntId0
アドレス :
ch.0 020009H
ch.1 020109H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN 割込みレジスタ (INTR) は , メッセージ割込みコードおよびステータス割込みコー
ドを表示します。
[bit15 ∼ bit0] IntId15 ∼ IntId0
IntId
機能
0000H
割込みなし
0001H ∼ 0020H
割込み要因はメッセージオブジェクトの番号を示します。
( メッセージ割込みコード )
0021H ∼ 7FFFH
未使用
8000H
8001H ∼ FFFFH
CAN ステータスレジスタの変化による割込みを示します。
( ステータス割込みコード )
未使用
複数の割込みコードが保留中である場合 , CAN 割込みレジスタは優先度の高い割込み
コードを示します。割込みコードが CAN 割込みレジスタにセットされていても優先度
の高い割込みコードが発生した場合には , CAN 割込みレジスタは優先度の高い割込み
コードに更新されます。
471
第 24 章 C_CAN
優先度の高い割込みコードは , ステータス割込みコード (8000H), メッセージ割込み
(0001H, 0002H, 0003H, ……, 0020H) の順になります。
IntId ビットが "0000H" 以外で , CAN 制御レジスタの IE ビットが "1" にセットされると ,
CPU への割込み信号がアクティブになります。IntId の値が "0000H" になる ( 割込み要
因がリセットされる ) もしくは CAN 制御レジスタの IE ビットが "0" にリセットされる
と , 割込み信号はインアクティブになります。
対象となるメッセージオブジェクト ( メッセージオブジェクトについては「■メッセー
ジオブジェクト」を参照 ) の IntPnd ビットを "0" にクリアすることでメッセージ割込
みコードはクリアされます。
ステータス割込みコードは CAN ステータスレジスタを読み出すことでクリアされま
す。
472
第 24 章 C_CAN
■ CAN テストレジスタ (TESTR)
図 24.2-6 CAN テストレジスタ (TESTR) のビット構成
CAN テストレジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス :
ch.0 02000AH
ch.1 02010AH
CAN テストレジスタ ( 下位バイト )
bit
7
6
5
4
3
2
1
0
Rx
Tx1
Tx0
LBack
Silent
Basic
−
−
リード / ライト
(R)
(R/W)
(R/W)
(R)
(R/W)
(R/W)
(R)
(R)
初期値
(r)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス :
ch.0 02000BH
ch.1 02010BH
CAN テストレジスタ (TESTR) は , テストモードの設定および RX 端子のモニタを行い
ます。
動作については , 「24.3 C_CAN の機能 ■テストモード」を参照してください。
[bit15 ∼ bit8] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit7] Rx: Rx 端子モニタビット
bit7 の Rx の初期値 (r) は , CAN バス上のレベルが表示されます。
Rx
機能
0
CAN バスはドミナントであることを示します。
1
CAN バスはレセッシブであることを示します。
[bit6, bit5] Tx1, Tx0: TX 端子コントロールビット
Tx1, Tx0
機能
00B
通常動作 [ 初期値 ]
01B
サンプリングポイントが TX 端子に出力されます。
10B
TX 端子にドミナントを出力します。
11B
TX 端子にレセッシブを出力します。
473
第 24 章 C_CAN
[bit4] LBack: ループバックモード
LBack
機能
0
ループバックモードを禁止します。 [ 初期値 ]
1
ループバックモードを許可します。
[bit3] Silent: サイレントモード
Silent
機能
0
サイレントモードを禁止します。 [ 初期値 ]
1
サイレントモードを許可します。
[bit2] Basic: ベーシックモード
Basic
機能
0
ベーシックモードを禁止します。[ 初期値 ]
1
ベーシックモードを許可します。
IF1 レジスタは送信メッセージとして , IF2 レジスタは受信メッセー
ジとして使用されます。
[bit1, bit0] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
<注意事項>
• CAN 制御レジスタの Test ビットを "1" にセットした後 , 本レジスタへ書き込んでくだ
さい。テストモードが有効となるのは , CAN 制御レジスタの Test ビットが "1" のとき
です。途中で CAN 制御レジスタの Test ビットを "0" にするとテストモードから通常
モードになります。
• Tx ビットを "00B" 以外に設定した場合 , メッセージを送信することができません。
474
第 24 章 C_CAN
■ CAN プリスケーラ拡張レジスタ (BRPER)
図 24.2-7 CAN プリスケーラ拡張レジスタ (BRPER) のビット構成
CAN プリスケーラ拡張レジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
アドレス :
ch.0 02000CH
ch.1 02010CH
CAN プリスケーラ拡張レジスタ ( 下位バイト )
bit
7
6
5
BRPE
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
アドレス :
ch.0 02000DH
ch.1 02010DH
CAN プリスケーラ拡張レジスタ (BRPER) は , CAN ビットタイミングで設定したプリ
スケーラと組み合せることにより , CAN コントローラで使用するプリスケーラを拡張
します。
[bit15 ∼ bit4] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit3 ∼ bit0] BRPE: ボーレートプリスケーラ拡張ビット
CAN ビットタイミングレジスタの BRP と BRPE を組み合せることにより , 1023 ま
でボーレートプリスケーラを拡張できます。
{BRPE(MSB:4 ビット ), BRP(LSB:6 ビット )} + 1 の値が CAN コントローラのプリ
スケーラとなります。
475
第 24 章 C_CAN
24.2.2
メッセージインタフェースレジスタ
メッセージインタフェースレジスタは , 2 組あり ,CPU からメッセージ RAM へのア
クセスを制御するためのレジスタです。
■ メッセージインタフェースレジスタの概要
メッセージ RAM への CPU アクセスを制御するために使用される 2 組のメッセージイ
ンタフェースレジスタがあります。この 2 組のレジスタは , 転送された ( する ) データ
( メッセージオブジェクト ) をバッファすることで , メッセージ RAM への CPU アクセ
スと CAN コントローラからのアクセスの競合を回避します。メッセージオブジェクト
( メッセージオブジェクトについては ,「■メッセージオブジェクト」を参照 ) は , メッ
セージインタフェースレジスタとメッセージ RAM 間を一度に転送します。
テストベーシックモードを除き , 2 組のメッセージインタフェースレジスタの機能は同
一で , 独立して動作可能です。例えば , IF1 のメッセージインタフェースレジスタをメッ
セージRAMへの書込み動作中に, IF2のメッセージインタフェースレジスタをメッセー
ジ RAM からの読出しに使用することも可能です。表 24.2-6 に 2 組のメッセージイン
タフェースレジスタを示します。
メッセージインタフェースレジスタは , コマンドレジスタ ( コマンド要求 , コマンドマ
スクレジスタ ) と , このコマンドレジスタによって制御されるメッセージバッファレジ
スタ ( マスク , アービトレーション , メッセージ制御 , データレジスタ ) から構成されま
す。コマンドマスクレジスタは , データ転送の方向とメッセージオブジェクトのどの部
分が転送されるのかを示します。コマンド要求レジスタは , メッセージ番号の選択と ,
コマンドマスクレジスタに設定された動作を行います。
表 24.2-6 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
476
第 24 章 C_CAN
■ IFx コマンド要求レジスタ (IFxCREQ)
図 24.2-8 IFx コマンド要求レジスタ (IFxCREQ) のビット構成
IFx コマンド要求レジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
BUSY
−
−
−
−
−
−
−
リード / ライト (R/W)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
アドレス :
ch.0 020010H
ch.1 020110H
初期値
(0)
IFx コマンド要求レジスタ ( 下位バイト )
bit
アドレス :
ch.0 020011H
ch.1 020111H
7
6
−
−
リード / ライト (R/W)
初期値
(0)
Message Number
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IFx コマンド要求レジスタ (IFxCREQ) は , メッセージ RAM のメッセージ番号の選択と
メッセージ RAM とメッセージバッファレジスタ間の転送を行います。また , テストの
ベーシックモードでは , IF1 を送信制御用に IF2 を受信制御用として使用します。
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 メッセージインタフェースレジスタ
に格納します。
477
第 24 章 C_CAN
[bit15] BUSY: ビジーフラグビット
• テストベーシックモード以外
BUSY
機能
0
メッセージインタフェースレジスタとメッセージ RAM 間でデー
タ転送処理を行っていないことを示します。 [ 初期値 ]
1
メッセージインタフェースレジスタとメッセージ RAM 間でデー
タ転送処理中であることを示します。
• テストベーシックモード
- IF1 コマンド要求レジスタ
BUSY
機能
0
メッセージ送信を禁止します。
1
メッセージ送信を許可します。
- IF2 コマンド要求レジスタ
BUSY
機能
0
メッセージ受信を禁止します。
1
メッセージ受信を許可します。
[bit14 ∼ bit5] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[bit4 ∼ bit0] Message Number: メッセージ番号 (32 message buffer CAN 用 )
Message
Number
00H
01H ∼ 20H
21H ∼ 3FH
478
機能
設定禁止です。設定した場合 , 20H として解釈され , 20H が読
み出されます。
処理を行うメッセージ番号を設定します。
設定禁止です。設定した場合 , 01H ∼ 1FH として解釈され ,
解釈された値が読み出されます。
第 24 章 C_CAN
[bit4 ∼ bit0] Message Number: メッセージ番号 (128 message buffer CAN 用 )
Message
Number
00H
01H ∼ 80H
81H ∼ FFH
機能
設定禁止です。設定した場合 , 20H として解釈され , 20H が読
み出されます。
処理を行うメッセージ番号を設定します。
設定禁止です。設定した場合 , 01H ∼ 7FH として解釈され ,
解釈された値が読み出されます。
<注意事項>
BUSY ビットは , 読出しと書込みが可能です。テストのベーシックモード時以外は , この
ビットに何を書き込んでも動作に影響しません ( ベーシックモードについては , 「24.3
C_CAN の機能 ■テストモード」を参照 )。
479
第 24 章 C_CAN
■ IFx コマンドマスクレジスタ (IFxCMSK)
図 24.2-9 IFx コマンドマスクレジスタ (IFxCMSK) のビット構成
IFx コマンドマスクレジスタ ( 上位バイト )
bit
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
Data A Data B
アドレス :
ch.0 020012H
ch.1 020112H
IFx コマンドマスクレジスタ ( 下位バイト )
bit
アドレス :
ch.0 020013H
ch.1 020113H
7
6
Arb
Control
CIP
TxRqst/
NewDat
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
WR/RD Mask
リード / ライト (R/W)
初期値
(0)
IFx コマンドマスクレジスタ (IFxCMSK) は , メッセージインタフェースレジスタとメッ
セージ RAM 間の転送方向を制御し , どのデータを更新するかを設定します。また , テ
ストのベーシックモードでは本レジスタは無効となります。
[bit15 ∼ bit8] (Reserved bit)
予約ビットは , "0" が読み出され , 書込みの場合 "0" を設定してください。
[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 ビット ) の設定に
より違った意味になります。
480
第 24 章 C_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 コントローラの動作に影響を与えませ
ん。
481
第 24 章 C_CAN
[bit2] TxRqst/NewDat: メッセージ送信要求ビット
TxRqst/
NewDat
機能
0
メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst
ビットを変更しないことを示します。 [ 初期値 ]
1
メッセージオブジェクト * および CAN 送信要求レジスタの TxRqst
ビットに "1" を設定 ( 送信要求 ) することを示します。
*:
「■メッセージオブジェクト」を参照してください。
[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 を更新することを示しま
す。
*:
「■メッセージオブジェクト」を参照してください。
<注意事項>
• IFx コマンドマスクレジスタの TxRqst/NewDat ビットが "1" に設定されると , IFx メッ
セージ制御レジスタの TxRqst ビットの設定は無効となります。
• テストのベーシックモードでは本レジスタは無効となります。
482
第 24 章 C_CAN
● 転送方向がリードの場合 (WR/RD=0)
[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
機能
0
メッセージオブジェクト * および CAN 割込みペンディングレジス
タの IntPnd ビットを保持することを示します。[ 初期値 ]
1
メッセージオブジェクト * および CAN 割込みペンディングレジス
タの IntPnd ビットを "0" にクリアすることを示します。
*:「■メッセージオブジェクト」を参照してください。
483
第 24 章 C_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 の
データを更新することを示します。
*:「■メッセージオブジェクト 」を参照してください。
<注意事項>
• メッセージオブジェクトへの読出しアクセスにより , IntPnd および NewDat ビットを
"0" にリセットすることが可能です。ただし , IFx メッセージ制御レジスタの IntPnd お
よび NewDat ビットには , 読出しアクセスによりリセットされる前の IntPnd, NewDat
ビットが格納されます。
• テストのベーシックモードでは無効となります。
484
第 24 章 C_CAN
■ IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2)
図 24.2-10 IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) のビット構成
IFx マスクレジスタ 2( 上位バイト )
bit
15
14
13
MXtd
MDir
res
リード / ライト (R/W)
(R/W)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
6
5
4
3
2
1
0
アドレス :
ch.0 020014H
ch.1 020114H
初期値
(1)
12
11
10
9
8
Msk28 ∼ Msk24
IFx マスクレジスタ 2( 下位バイト )
bit
7
Msk23 ∼ Msk16
アドレス :
ch.0 020015H
ch.1 020115H
リード / ライト (R/W)
初期値
(1)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
14
13
12
11
10
9
8
IFx マスクレジスタ 1( 上位バイト )
bit
15
アドレス :
ch.0 020016H
ch.1 020116H
Msk15 ∼ Msk8
リード / ライト (R/W)
初期値
(1)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
6
5
4
3
2
1
0
IFx マスクレジスタ 1( 下位バイト )
bit
7
Msk7 ∼ Msk0
アドレス :
ch.0 020017H
ch.1 020117H
リード / ライト (R/W)
初期値
(1)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
IFx マスクレジスタ 1, 2 (IFxMSK1, IFxMSK2) は , メッセージ RAM のメッセージオブ
ジェクトマスクデータをライト / リードするために用いられます。また , テストのベー
シックモードでは , 設定されているマスクデータは無効となります。
各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。
本レジスタの予約ビット (IFx マスクレジスタ 2 の bit13) は "1" が読み出され , 書込み時
は "1" を書き込んでください。
485
第 24 章 C_CAN
■ IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2)
図 24.2-11 IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) のビット構成
IFx アービトレーションレジスタ 2( 上位バイト )
bit
アドレス :
ch.0 020018H
ch.1 020118H
15
14
13
MsgVal
Xtd
Dir
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
4
リード / ライト (R/W)
初期値
(0)
12
11
10
9
8
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
3
2
1
0
ID28 ∼ ID24
IFx アービトレーションレジスタ 2( 下位バイト )
bit
7
6
5
ID23 ∼ ID16
アドレス :
ch.0 020019H
ch.1 020119H
リード / ライト (R/W)
初期値
(0)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
12
11
10
9
8
IFx アービトレーションレジスタ 1( 上位バイト )
bit
15
14
13
ID15 ∼ ID8
アドレス :
ch.0 02001AH
ch.1 02011AH
リード / ライト (R/W)
初期値
(0)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
IFx アービトレーションレジスタ 1( 下位バイト )
bit
7
6
5
アドレス :
ch.0 02001BH
ch.1 02011BH
ID7 ∼ ID0
リード / ライト (R/W)
初期値
(0)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IFx アービトレーションレジスタ 1, 2 (IFxARB1, IFxARB2) は , メッセージ RAM のメッ
セージオブジェクトアービトレーションデータをライト / リードするために用いられ
ます。また , テストのベーシックモードでは無効となります。
各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。
<注意事項>
送信途中でメッセージオブジェクトの MsgVal ビットを "0" にクリアした場合 , 送信が完
了した時点で CAN ステータスレジスタの TxOk ビットは "1" になりますが , メッセージオ
ブジェクトおよび CAN 送信要求レジスタの TxRqst ビットは "0" にクリアされませんので
メッセージインタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。
486
第 24 章 C_CAN
■ IFx メッセージ制御レジスタ (IFxMCTR)
図 24.2-12 IFx メッセージ制御レジスタ (IFxMCTR) のビット構成
IFx メッセージ制御レジスタ ( 上位バイト )
bit
15
14
13
12
NewDat MsgLst IntPnd UMask
アドレス :
ch.0 02001CH
ch.1 02011CH
リード / ライト (R/W)
初期値
(0)
11
10
TxIE
RxIE
RmtEn TxRqst
9
8
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
3
2
1
0
IFx メッセージ制御レジスタ ( 下位バイト )
bit
アドレス :
ch.0 02001DH
ch.1 02011DH
7
6
5
4
EoB
−
−
−
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
リード / ライト (R/W)
初期値
(0)
ID3 ∼ ID0
IFx メッセージ制御レジスタ (IFxMCTR) は , メッセージ RAM のメッセージオブジェク
ト制御データをライト / リードするために用いられます。また , テストのベーシック
モードでは , IF1 メッセージ制御レジスタは無効となります。IF2 メッセージ制御レジ
スタの NewDat と MsgLst は通常の動作を行い , DLC ビットは受信したメッセージの
DLC を表示します。そのほかの制御ビットは無効 ("0") として動作します。
各ビットの機能については , 「 ■メッセージオブジェクト」に記述されています。
<注意事項>
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 ビット
が格納されます。
487
第 24 章 C_CAN
■ IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2)
addr+0
addr+1
addr+2
addr+3
IFx Message Data A1 ( アドレス 20H & 50H)
Data(0)
Data(1)
-
-
IFx Message Data A2 ( アドレス 22H & 52H)
-
-
Data(2)
Data(3)
IFx Message Data B1 ( アドレス 24H & 54H)
Data(4)
Data(5)
-
-
IFx Message Data B2 ( アドレス 26H & 56H)
-
-
Data(6)
Data(7)
IFx Message Data A2 ( アドレス 30H & 60H)
Data(3)
Data(2)
-
-
IFx Message Data A1 ( アドレス 32H & 62H)
-
-
Data(1)
Data(0)
IFx Message Data B2 ( アドレス 34H & 64H)
Data(7)
Data(6)
-
-
IFx Message Data B1 ( アドレス 36H & 66H)
-
-
Data(5)
Data(4)
図 24.2-13 IFx データレジスタ A1, A2, B1, B2
(IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) のビット構成
IFx データレジスタ
IF1DTA1( 上位 )
bit
15
14
13
11
10
9
8
Data15 ∼ Data8
アドレス :
ch.0 020020H
ch.1 020120H
リード / ライト (R/W)
初期値
IF1DTA1( 下位 )
12
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
Data7 ∼ Data0
アドレス :
ch.0 020021H
ch.1 020121H
リード / ライト (R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
bit
15
14
13
12
11
10
9
8
IF1DTA2( 上位 )
Data15 ∼ Data8
アドレス :
ch.0 020022H
ch.1 020122H
リード / ライト (R/W)
初期値
IF1DTA2( 下位 )
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
Data7 ∼ Data0
アドレス :
ch.0 020023H
ch.1 020123H
リード / ライト (R/W)
初期値
(0)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
( 続く )
488
第 24 章 C_CAN
( 続き )
IFx データレジスタ
IF1DTB1( 上位 )
bit
15
14
13
11
10
9
8
Data15 ∼ Data8
アドレス :
ch.0 020024H
ch.1 020124H
リード / ライト (R/W)
初期値
IF1DTB1( 下位 )
12
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
Data7 ∼ Data0
アドレス :
ch.0 020025H
ch.1 020125H
リード / ライト (R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
bit
15
14
13
12
11
10
9
8
IF1DTB2( 上位 )
アドレス :
ch.0 020026H
ch.1 020126H
Data15 ∼ Data8
リード / ライト (R/W)
初期値
IF1DTB2( 下位 )
bit
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
7
6
5
4
3
2
1
0
アドレス :
ch.0 020027H
ch.1 020127H
Data7 ∼ Data0
リード / ライト (R/W)
初期値
(0)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IFx データレジスタ A1, A2, B1, B2 (IFxDTA1, IFxDTA2, IFxDTB1, IFxDTB2) は , メッ
セージ RAM のメッセージオブジェクト送受信データをライト / リードするために用い
られます。データフレームの送受信のみ使用され , リモートフレームの送受信には使用
されません。
● 送信メッセージデータの設定
設定したデータは , MSB(bit7, bit15) より開始して Data(0), Data(1), … Data(15) の順で送
信されます。
● 受信メッセージデータ
受信メッセージデータは , MSB(bit7, bit15) より開始して Data(0), Data(1), … Data(15) の
順で格納されます。
489
第 24 章 C_CAN
<注意事項>
• 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに
は不定データが書き込まれます。
• メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ
ますので , 4 バイトのうち , ある一部のデータだけを更新することはできません。
490
第 24 章 C_CAN
■ メッセージオブジェクト
メッセージ RAM には , 32( 品種によって 128 まで ) のメッセージオブジェクトがあり
ます。メッセージ RAM への CPU アクセスと CAN コントローラからのアクセスの競
合を回避するために , CPU はメッセージオブジェクトへ直接 , アクセスできません。
これらのアクセスは , IFx メッセージインタフェースレジスタ経由で行います。
以下に , メッセージオブジェクトの構成と機能を説明します。
● メッセージオブジェクトの構成
メッセージオブジェクト
UMask
MsgVal
Msk28 ∼
MXtd
Msk0
ID28 ∼
ID0
MDir
EoB
Dir
DLC3
∼
DLC0
Xtd
New Dat
Data0
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 つ以上のメッセージオブジェ
クトと一致した場合は , 一致した最小のメッセージ番号に格納されます。詳細は ,
「■メッセージオブジェクト 」の受信メッセージのアクセプタンスフィルタを参照して
ください。
MsgVal: 有効メッセージビット
MsgVal
機能
0
メッセージオブジェクトは無効です。
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効です。
メッセージの送受信が可能となります。
491
第 24 章 C_CAN
<注意事項>
• CAN 制御レジスタ (CTRLR) の Init ビットを "0" にリセットする前と , ID28 ∼ ID0, Xtd,
Dir, DLC3 ∼ DLC0 を変更する前には , メッセージオブジェクトの MsgVal ビットを必
ず初期化してください。
• 送信中に MsgVal ビットを "0" にすると送信が完了した時点で CAN ステータスレジス
タ (STATR) の TxOk ビットは "1" になりますが , メッセージオブジェクトおよび CAN
送信要求レジスタ (TREQR) の TxRqst ビットは "0" にクリアされませんのでメッセー
ジインタフェースレジスタによって TxRqst ビットを "0" にクリアしてください。
UMask: アクセプタンスマスク許可ビット
UMask
機能
0
Msk28 ∼ Msk0, MXtd, MDir を使用しません。
1
Msk28 ∼ Msk0, MXtd, MDir を使用します。
<注意事項>
• CAN 制御レジスタの Init ビットが "1" のとき , あるいは MsgVal ビットが "0" のときに
UMask ビットを変更してください。
• Dirビットが"1"かつ RmtEnビットが"0"のとき, UMaskの設定により動作が異なります。
- UMask が "1" の場合は , アクセプタンスフィルタを通過しリモートフレームを受信
したとき , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR,
DLC はメッセージオブジェクトに格納し , NewDat ビットは "1" にセットされ , デー
タは変更されません ( データフレームのように取り扱います )。
- UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま保
持し , リモートフレームを無視します。
ID28 ∼ ID0: メッセージ ID
ID28 ∼ ID0
機能
0
29 ビット ID( 拡張フレーム ) を指示します。
1
11 ビット ID( 標準フレーム ) を指示します。
Msk28 ∼ Msk0: ID マスク
Msk28
∼ Msk0
492
機能
0
メッセージオブジェクトの ID と対応するビットをマスクします。
1
メッセージオブジェクトの ID と対応するビットをマスクしません。
第 24 章 C_CAN
Xtd: 拡張 ID 許可ビット
Xtd
機能
0
メッセージオブジェクトは 11 ビット ID( 標準フレーム ) が使用され
ます。
1
メッセージオブジェクトは 29 ビット ID( 拡張フレーム ) が使用され
ます。
MXtd: 拡張 ID マスクビット
MXtd
機能
0
アクセプタンスフィルタで拡張 ID ビット (IDE) をマスクします。
1
アクセプタンスフィルタで拡張 ID ビット (IDE) をマスクしません。
<注意事項>
11 ビット ID( 標準フレーム ) がメッセージオブジェクトに設定されると , 受信したデータ
フレームの ID は , ID28 ∼ ID18 へ書き込まれます。ID マスクは , Msk28 ∼ Msk18 が使用
されます。
Dir: メッセージ方向ビット
Dir
機能
0
受信方向を示します。
TxRqst が "1" にセットされるとリモートフレームの送信を行い , TxRqst
が "0" のときはアクセプタンスフィルタを通過したデータフレームを
受信します。
1
送信方向を示します。
TxRqst が "1" にセットされるとデータフレームを送信し , TxRqst が "0"
で RmtEn が "1" にセットされている場合 , アクセプタンスフィルタを
通過したリモートフレームの受信によって , CAN コントローラ自身が
TxRqst を "1" にセットします。
MDir: メッセージ方向マスクビット
MDir
機能
0
アクセプタンスフィルタでメッセージ方向ビット (Dir) をマスクし
ます。
1
アクセプタンスフィルタでメッセージ方向ビット (Dir) をマスクし
ません。
493
第 24 章 C_CAN
<注意事項>
MDir ビットは常に "1" を設定してください。
EoB: エンドオブバッファビット ( 詳細は , 「24.3 C_CAN の機能 ■ FIFO バッファ機
能」を参照 )
EoB
機能
0
メッセージオブジェクトは FIFO バッファとして使用され , 最終メッ
セージでないことを示します。
1
単一メッセージオブジェクトまたは FIFO バッファの最終メッセー
ジオブジェクトを示します。
<注意事項>
• EoB ビットは , 2 ∼ 32 メッセージの FIFO バッファを構成するために使用します。
• 単一メッセージオブジェクト (FIFO を使用しない場合 ) は , 必ず EoB ビットに "1" を設
定してください。
NewDat: データ更新ビット
NewDat
機能
0
有効なデータがないことを示します。
1
有効なデータがあることを示します。
MsgLst: メッセージロスト
MsgLst
機能
0
メッセージロストは発生していません。
1
メッセージロストが発生しています。
<注意事項>
MsgLst ビットは Dir ビットが "0" のとき ( 受信方向 ) のみ有効です。
494
第 24 章 C_CAN
RxIE: 受信割込みフラグイネーブルビット
RxIE
機能
0
フレーム受信成功後 , IntPnd は変更されません。
1
フレーム受信成功後 , IntPnd が "1" にセットされます。
TxIE: 送信割込みフラグイネーブルビット
TxIE
機能
0
フレーム送信成功後 , IntPnd は変更されません。
1
フレーム送信成功後 , IntPnd が "1" にセットされます。
IntPnd: 割込みペンディングビット
IntPnd
機能
0
割込み要因がありません。
1
割込み要因があります。
ほかに優先度の高い割込みがない場合は , CAN 割込みレジスタの
IntId ビットはこのメッセージオブジェクトを示します。
RmtEn: リモートイネーブル
RmtEn
機能
0
リモートフレームの受信で , TxRqst は変更されません。
1
Dir ビットが "1" でリモートフレームを受信すると , TxRqst が "1" に
セットされます。
<注意事項>
Dir ビットが "1" かつ RmtEn ビットが "0" のとき , UMask の設定により動作が異なります。
- UMask が "1" の場合はアクセプタンスフィルタを通過し , リモートフレームを受信
したとき , TxRqst ビットを "0" にリセットします。そのとき , 受信した ID, IDE, RTR,
DLC をメッセージオブジェクトに格納し , NewDat ビットは "1" にセットされ , デー
タは変更されません ( データフレームのように取り扱います )。
- UMask が "0" の場合は , リモートフレーム受信に対し , TxRqst ビットはそのまま保
持し , リモートフレームを無視します。
495
第 24 章 C_CAN
TxRqst: 送信要求ビット
TxRqst
機能
0
送信アイドル状態 ( 送信中でもないし , 送信待ち状態でもない ) を示
します。
1
送信中または , 送信待ちであることを示します。
DLC3 ∼ DLC0: データ長コード
DLC3 ∼ DLC0
機能
0∼8
データフレーム長は 0 ∼ 8 バイトです。
9 ∼ 15
設定禁止です。
設定された場合は , 8 バイト長となります。
<注意事項>
データフレームを受信すると DLC ビットには , 受信した DLC が格納されます。
Data 0 ∼ Data7: データ 0 ∼ 7
データ 0
∼
データ 7
496
機能
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 番目のデータバイト
第 24 章 C_CAN
<注意事項>
• CAN バスへのシリアル出力は , MSB(bit7 もしくは bit15) より出力します。
• 受信メッセージデータが 8 バイトより少ない場合は , データレジスタの残りのバイトに
は不定が書き込まれます。
• メッセージオブジェクトへの転送は , Data A もしくは Data B の 4 バイト単位で行われ
ますので , 4 バイトのうち , ある一部のデータだけを更新することはできません。
497
第 24 章 C_CAN
24.2.3
メッセージハンドラレジスタ
メッセージハンドラレジスタは , すべて読出し専用です。
メッセージオブジェクトの TxRqst, NewDat, IntPnd, MsgVal ビットと IntId ビット
は , ステータスを表示します。
■ CAN 送信要求レジスタ (TREQR1, TREQR2)
図 24.2-14 CAN 送信要求レジスタ (TREQR1, TREQR2) のビット構成
CAN 送信要求レジスタ 2( 上位バイト )
bit
15
14
13
アドレス :
ch.0 020080H
ch.1 020180H
12
11
10
9
8
TxRqst32 ∼ TxRqst25
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
CAN 送信要求レジスタ 2( 下位バイト )
bit
7
6
TxRqst24 ∼ TxRqst17
アドレス :
ch.0 020081H
ch.1 020181H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
13
12
11
10
9
8
CAN 送信要求レジスタ 1( 上位バイト )
bit
15
14
アドレス :
ch.0 020082H
ch.1 020182H
TxRqst16 ∼ TxRqst9
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
CAN 送信要求レジスタ 1( 下位バイト )
bit
7
6
TxRqst8 ∼ TxRqst1
アドレス :
ch.0 020083H
ch.1 020183H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN 送信要求レジスタ (TREQR1, TREQR2) は , 全メッセージオブジェクトの TxRqst
ビットを表示します。TxRqst ビットを読み出すことにより , どのメッセージオブジェ
クトの送信要求がペンディング中であるかチェックすることができます。
498
第 24 章 C_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 マクロにおける送信要求ビットの確認
については以下の表を参照してください。
レジスタ
ビット
addr + 0
addr + 1
addr + 2
addr + 3
TREQR4,
TREQR3
TxRqst 64 ∼
TxRqst33
( アドレス 84H)
TxRqst64 ∼
TxRqst57
TxRqst56 ∼
TxRqst49
TxRqst48 ∼
TxRqst41
TxRqst40 ∼
TxRqst33
TREQR6,
TREQR5
TxRqst 96 ∼
TxRqst65
( アドレス 88H)
TxRqst96 ∼
TxRqst89
TxRqst88 ∼
TxRqst81
TxRqst80 ∼
TxRqst73
TxRqst72 ∼
TxRqst65
TREQ8,
TREQR7
TxRqst 128 ∼
TxRqst97
( アドレス 8CH)
TxRqst128 ∼
TxRqst121
TxRqst120 ∼
TxRqst113
TxRqst112 ∼
TxRqst105
TxRqst104 ∼
TxRqst97
499
第 24 章 C_CAN
■ CAN データ更新レジスタ (NEWDT1, NEWDT2)
図 24.2-15 CAN データ更新レジスタ (NEWDT1, NEWDT2) のビット構成
CAN データ更新レジスタ 2( 上位バイト )
bit
15
14
13
12
11
10
9
8
NewDat32 ∼ NewDat25
アドレス :
ch.0 020090H
ch.1 020190H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
CAN データ更新レジスタ 2( 下位バイト )
bit
7
6
NewDat24 ∼ NewDat17
アドレス :
ch.0 020091H
ch.1 020191H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
13
12
11
10
9
8
CAN データ更新レジスタ 1( 上位バイト )
bit
15
14
NewDat16 ∼ NewDat9
アドレス :
ch.0 020092H
ch.1 020192H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
5
4
3
2
1
0
CAN データ更新レジスタ 1( 下位バイト )
bit
7
6
NewDat8 ∼ NewDat1
アドレス :
ch.0 020093H
ch.1 020193H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN データ更新レジスタ (NEWDT1, NEWDT2) は , 全メッセージオブジェクトの
NewDat ビットを表示します。NewDat ビットを読み出すことにより , どのメッセージ
オブジェクトのデータが更新されたかチェックすることができます。
NewDat32 ∼ NewDat1: データ更新ビット
NewDat32 ∼ NewDat1
500
機能
0
有効なデータがないことを示します。
1
有効なデータがあることを示します。
第 24 章 C_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 マクロにおけるデータ更新ビットの確
認については以下の表を参照してください。
レジスタ
ビット
addr + 0
addr + 1
addr + 2
addr + 3
NEWDT4,
NEWDT3
NewDat 64 ∼
NewDat33
( アドレス 94H)
NewDat64 ∼
NewDat57
NewDat56 ∼
NewDat49
NewDat48 ∼
NewDat41
NewDat40 ∼
NewDat33
NEWDT6,
NEWDT5
NewDat 96 ∼
NewDat65
( アドレス 98H)
NewDat96 ∼
NewDat89
NewDat88 ∼
NewDat81
NewDat80 ∼
NewDat73
NewDat72 ∼
NewDat65
NEWDT8,
NEWDT7
NewDat 128 ∼
NewDat97
( アドレス 9CH)
NewDat128 ∼
NewDat121
NewDat120 ∼
NewDat113
NewDat112 ∼
NewDat105
NewDat104 ∼
NewDat97
501
第 24 章 C_CAN
■ CAN 割込みペンディングレジスタ (INTPND1, INTPND2)
図 24.2-16 CAN 割込みペンディングレジスタ (INTPND1, INTPND2) のビット構成
CAN 割込みペンディングレジスタ 2( 上位バイト )
bit
15
14
13
アドレス :
ch.0 0200A0H
ch.1 0201A0H
12
11
10
9
8
IntPnd32 ∼ IntPnd25
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
CAN 割込みペンディングレジスタ 2( 下位バイト )
bit
7
6
5
IntPnd24 ∼ IntPnd17
アドレス :
ch.0 0200A1H
ch.1 0201A1H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
12
11
10
9
8
CAN 割込みペンディングレジスタ 1( 上位バイト )
bit
15
14
13
IntPnd16 ∼ IntPnd9
アドレス :
ch.0 0200A2H
ch.1 0201A2H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
CAN 割込みペンディングレジスタ 1( 下位バイト )
bit
7
6
5
IntPnd8 ∼ IntPnd1
アドレス :
ch.0 0200A3H
ch.1 0201A3H
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN 割込みペンディングレジスタ (INTPND1, INTPND2) は , 全メッセージオブジェク
トの IntPnd ビットを表示します。IntPnd ビットを読み出すことにより , どのメッセー
ジオブジェクトが割込みペンディング中であるかチェックすることができます。
IntPnd32 ∼ IntPnd1: 割込みペンディングビット
IntPnd32 ∼ IntPnd1
502
機能
0
割込み要因がありません。
1
割込み要因があります。
第 24 章 C_CAN
IntPnd ビットのセット / リセット条件を以下に示します。
• セット条件
- TxIE が "1" にセットされている場合 , フレームの正常送信完了によりセットさ
れます。
- RxIE が "1" にセットされている場合 , アクセプタンスフィルタを通過したフ
レームの正常受信完了によりセットされます。
- IFx コマンドマスクレジスタの WR/RD に "1", Control に "1", IFx メッセージ制
御レジスタの IntPnd に "1" を設定して , IFx コマンド要求レジスタ の書込みに
より 特定オブジェクトの IntPnd にセットできます。
• リセット条件
- IFx コマンドマスクレジスタの WR/RD に "0", CIP に "1" を設定した場合 ,
IFx コマンド要求レジスタの書込みにより特定オブジェクトの IntPnd をリセッ
トできます。
- IFx コマンドマスクレジスタの WR/RD に "1", Control に "1", IFx メッセージ制
御レジスタの IntPnd に "0" を設定して , IFx コマンド要求レジスタの書込みに
より 特定オブジェクトの IntPnd をリセットできます。
32 メッセージバッファ以上を搭載する CAN マクロにおける割込みペンディング
ビットの確認については以下の表を参照してください。
レジスタ
ビット
addr + 0
addr + 1
addr + 2
addr + 3
INTPND4,
INTPND3
IntPnd 64 ∼
IntPnd33
( アドレス A4H)
IntPnd64 ∼
IntPnd57
IntPnd56 ∼
IntPnd49
IntPnd48 ∼
IntPnd41
IntPnd40 ∼
IntPnd33
INTPND6,
INTPND5
IntPnd 96 ∼
IntPnd65
( アドレス A8H)
IntPnd96 ∼
IntPnd89
IntPnd88 ∼
IntPnd81
IntPnd80 ∼
IntPnd73
IntPnd72 ∼
IntPnd65
INTPND8,
INTPND7
IntPnd 128 ∼
IntPnd97
( アドレス ACH)
IntPnd128 ∼
IntPnd121
IntPnd120 ∼
IntPnd113
IntPnd112 ∼
IntPnd105
IntPnd104 ∼
IntPnd97
503
第 24 章 C_CAN
■ CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2)
図 24.2-17 CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) のビット構成
CAN メッセージ有効レジスタ 2( 上位バイト )
bit
15
14
13
アドレス :
ch.0 0200B0H
ch.1 0201B0H
12
11
10
9
8
MsgVal32 ∼ MsgVal25
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
CAN メッセージ有効レジスタ 2( 下位バイト )
bit
7
6
5
アドレス :
ch.0 0200B1H
ch.1 0201B1H
MsgVal24 ∼ MsgVal17
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
12
11
10
9
8
CAN メッセージ有効レジスタ 1( 上位バイト )
bit
15
14
13
アドレス :
ch.0 0200B2H
ch.1 0201B2H
MsgVal16 ∼ MsgVal9
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
4
3
2
1
0
CAN メッセージ有効レジスタ 1( 下位バイト )
bit
7
6
5
アドレス :
ch.0 0200B3H
ch.1 0201B3H
MsgVal8 ∼ MsgVal1
リード / ライト
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
CAN メッセージ有効レジスタ (MSGVAL1, MSGVAL2) は , 全メッセージオブジェクト
の MsgVal ビットを表示します。MsgVal ビットを読み出すことにより , どのメッセー
ジオブジェクトが有効であるかチェックすることができます。
504
第 24 章 C_CAN
MsgVal32 ∼ MsgVal1: メッセージ有効ビット
MsgVal32 ∼
MsgVal1
機能
0
メッセージオブジェクトは無効です。
メッセージの送受信は行いません。
1
メッセージオブジェクトは有効です。
メッセージの送受信が可能となります。
MsgVal ビットのセット / リセット条件を以下に示します。
• セット条件
IFx アービトレーションレジスタ 2 の MsgVal に "1" を設定し , IFx コマンド要求
レジスタへの書込みにより特定オブジェクトの MsgVal をセットできます。
• リセット条件
IFx アービトレーションレジスタ 2 の MsgVal に "0" を設定し , IFx コマンド要求
レジスタの書込みにより特定オブジェクトの MsgVal をリセットできます。
32 メッセージバッファ以上を搭載する CAN マクロにおけるメッセージ有効ビット
の確認については以下の表を参照してください。
レジスタ
ビット
addr + 0
addr + 1
addr + 2
addr + 3
MSGVAL4,
MSGVAL3
MsgVal 64 ∼
MsgVal33
( アドレス A4H)
MsgVal64 ∼
MsgVal57
MsgVal56 ∼
MsgVal49
MsgVal48 ∼
MsgVal41
MsgVal40 ∼
MsgVal33
MSGVAL6,
MSGVAL5
MsgVal 96 ∼
MsgVal65
( アドレス A8H)
MsgVal96 ∼
MsgVal89
MsgVal88 ∼
MsgVal81
MsgVal80 ∼
MsgVal73
MsgVal72 ∼
MsgVal65
MSGVAL8,
MSGVAL7
MsgVal 128 ∼
MsgVal97
( アドレス ACH)
MsgVal128 ∼
MsgVal121
MsgVal120 ∼
MsgVal113
MsgVal112 ∼
MsgVal105
MsgVal104 ∼
MsgVal97
505
第 24 章 C_CAN
CAN プリスケーラレジスタ (CANPRE)
24.2.4
CAN プリスケーラレジスタは , CAN インタフェースに供給するクロックの分周比を
定義するものです。本レジスタの値を変更する場合は , CAN 制御レジスタ (CTRLR)
の初期化ビット (Init) を "1" にセットし , すべてのバス動作を停止してください。
■ CAN プリスケーラレジスタ (CANPRE)
図 24.2-18 CAN プリスケーラレジスタ (CANPRE) のビット構成
CAN プリスケーラレジスタ
bit
アドレス :
0001A8H
15
14
13
12
-
-
-
-
11
10
9
8
CANPRE CANPRE CANPRE CANPRE
3
2
1
0
リード / ライト
(R)
(R)
(R)
(R)
(R/W)
(R/W)
(R/W)
(R/W)
初期値
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
[bit15 ∼ bit12] (Reserved bit)
本ビットは "0" が読み出され , 書込みはレジスタに反映されません。
[bit11 ∼ bit8] CANPRE3 ∼ CANPRE0: CAN プリスケーラ設定ビット
CANPRE3
∼
CANPRE0
機能
0000B
設定禁止
0001B
CAN クロックとしてシステムクロックの 1/2 周期が選択されます。
001XB
CAN クロックとしてシステムクロックの 1/4 周期が選択されます。
01XXB
CAN クロックとしてシステムクロックの 1/8 周期が選択されます。
1000B
CAN クロックとしてシステムクロックの 2/3 周期が選択されます。
クロックのデューティ比は 67% となります。
1001B
CAN クロックとしてシステムクロックの 1/3 周期が選択されます。
101XB
CAN クロックとしてシステムクロックの 1/6 周期が選択されます。
11XXB
CAN クロックとしてシステムクロックの 1/12 周期が選択されます。
<注意事項>
• CANプリスケーラ設定ビットの変更は, CAN制御レジスタの初期化ビットを"1"にセッ
トし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし
てください。
506
第 24 章 C_CAN
24.3
C_CAN の機能
CAN コントローラの動作と機能について説明します。
■ メッセージオブジェクト
メッセージ RAM のメッセージオブジェクト設定 (MsgVal, NewDat, IntPnd, TxRqst ビッ
トを除く ) は , ハードウェアリセットによって初期化されません。そのため , メッセー
ジオブジェクトを CPU で初期化するか , MsgVal ビットを無効 (MsgVal=0) に設定して
ください。また , CAN ビットタイミングレジスタ (BTR) と CAN プリスケーラ拡張レ
ジスタ (BRPER) の設定は , CAN 制御レジスタの Init ビットが "1" , CCE ビットが "1" の
とき行ってください。
メッセージオブジェクトの設定は , メッセージインタフェースレジスタ (IFx マスクレ
ジスタ , IFx アービトレーションレジスタ , IFx メッセージ制御レジスタ , IFx データレ
ジスタ ) に設定した後 , IFx コマンド要求レジスタへのメッセージ番号の書込みにより ,
そのインタフェースレジスタのデータが指定されたメッセージオブジェクトへ転送さ
れます。
CAN 制御レジスタの Init ビットが "0" にクリアされると CAN コントローラは動作を開
始します。アクセプタンスフィルタを通過した受信メッセージは , メッセージ RAM へ
格納されます。送信要求が保留されているメッセージは , メッセージ RAM から CAN
コントローラのシフトレジスタへ転送され , CAN バスへの送信が行われます。
CPU は , メッセージインタフェースレジスタ経由で受信メッセージの読出しおよび送
信メッセージの更新を行います。また , CAN 制御レジスタおよび IFx メッセージ制御
レジスタ ( メッセージオブジェクト ) の設定に応じて , CPU への割込みが行われます。
● メッセージ RAM とのデータ送受信
メッセージインタフェースレジスタとメッセージ RAM とのデータ転送を開始すると ,
IFx コマンド要求レジスタの BUSY ビットを "1" にセットします。転送完了後 , BUSY
ビットは "0" にクリアされます ( 図 24.3-1 を参照 )。
IFx コマンドマスクレジスタは, 1つのメッセージオブジェクトの全データ転送か , デー
タの部分転送を行うかを設定します。メッセージ RAM の構造上 , メッセージオブジェ
クトの単一ビット / バイトの書込みは不可能となっており , 常に 1 つのメッセージオブ
ジェクトの全データをメッセージ RAM へ書き込みます。したがって , メッセージイン
タフェースレジスタからメッセージ RAM へのデータ転送は , リードモディファイライ
ト (RMW) サイクルを実行しています。
507
第 24 章 C_CAN
図 24.3-1 メッセージインタフェースレジスタとメッセージ RAM のデータ転送
スタート
NO
IFxコマンド要求レジスタへ
書込み
YES
BUSY = 1
割込み = 0
NO
YES
WR/RD = 1
メッセージRAMからメッセージインタフェース
レジスタへ読出し
メッセージRAMからメッセージインタフェース
レジスタへ読出し
メッセージインタフェースレジスタからメッセージ
RAMへの書込み
BUSY = 0
割込み = 1
■ メッセージ送信動作
● メッセージ送信
メッセージインタフェースレジスタとメッセージ RAM 間でデータ転送がない場合 ,
CAN メッセージ有効レジスタの MsgVal ビットと CAN 送信要求レジスタの TxRqst ビッ
トを比較します。送信要求を保留している中で , 最高優先度の有効であるメッセージオ
ブジェクトが送信用のシフトレジスタへ転送されます。そのときメッセージオブジェ
クトの NewDat ビットは "0" にリセットされます。
正常に送信が完了したとき , メッセージオブジェクトに新たなデータがない (NewDat=0)
場合は , TxRqst ビットは "0" にリセットされます。TxIE が "1" にセットされている場合
は , 送信成功後に IntPnd ビットが "1" にセットされます。CAN コントローラが CAN バ
ス上で調停に負けた場合 , あるいは転送中にエラーが発生した場合は , CAN バスがアイ
ドルになり次第 , 直ちにメッセージの再送信が行われます。
● 送信優先度
メッセージオブジェクトの送信優先度は , メッセージ番号によって決定します。メッ
セージオブジェクト 1 が最高の優先度で , メッセージオブジェクト 32( 搭載している最
大メッセージオブジェクト番号 ) が最低優先度となります。したがって , 2 つ以上の送
信要求が保留されていると , 対応するメッセージオブジェクトの小さい番号順に転送
が行われます。
508
第 24 章 C_CAN
● 送信メッセージオブジェクトの設定
図 24.3-2 に送信メッセージオブジェクトの初期化を示します。
図 24.3-2 送信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
1
New Dat MsgLst
0
0
RxIE
TxIE
0
appl.
Int Pnd RmtEn
0
TxRqst
appl.
0
IFx アービトレーションレジスタ (ID28 ∼ ID0 と Xtd ビット ) は , アプリケーションで
与えられ , 送信メッセージの ID およびメッセージの種類を定義します。
標準フレーム (11 ビット ID) を設定した場合は ID28 ∼ ID18 を使用し , ID17 ∼ ID0 は
無効となります。拡張フレーム (29 ビット ID) を設定した場合は , ID28 ∼ ID0 を使用
します。
TxIE ビットに "1" をセットすると , メッセージオブジェクトの送信成功後に IntPnd ビッ
トが "1" にセットされます。
RmtEn ビットに "1" をセットすると , 一致するリモートフレームを受信後 , TxRqst ビッ
トに "1" をセットし , データフレームを自動的に送信します。
データレジスタ (DLC3 ∼ DLC0, Data0 ∼ Data7) の設定は , アプリケーションで与えら
れます。
UMask=1 のとき , IFx マスクレジスタ (Msk28 ∼ Msk0, UMask, MXtd, MDir ビット ) は , マ
スク設定によりグループ化された ID を持つリモートフレームを受信し , その後 , 送信を
許可 (TxRqst ビットに "1" をセット ) するために使用されます。詳細は , 「■メッセージ
受信動作」のリモートフレームを参照してください。
<注意事項>
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" にリセットされます。
509
第 24 章 C_CAN
<注意事項>
• データを更新する場合は , IFx データレジスタ A もしくは IFx データレジスタ B の 4 バ
イト単位で行ってください。
• データのみを更新する場合は , NewDat ビットと TxRqst ビットに "1" を設定してくだ
さい。
■ メッセージ受信動作
● 受信メッセージのアクセプタンスフィルタ
メッセージのアービトレーション / コントロールフィールド (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" にリセットされます。これは , リモートフ
レーム送信処理中に要求データフレームを受信した場合 , 送信処理を防ぐために行わ
れます。
510
第 24 章 C_CAN
● リモートフレーム
リモートフレーム受信時の動作には下記の 3 つの処理があります。一致するメッセー
ジオブジェクトの設定より , リモートフレーム受信時の処理が選択されます。
• Dir=1( 送信方向 ), RmtEn=1, UMask=1 または 0
一致したリモートフレームの受信を行い , このメッセージオブジェクトの TxRqst
ビットのみ "1" にセットされ , リモートフレームに対するデータフレームの自動返
信 ( 送信 ) を行います (TxRqst ビット以外のメッセージオブジェクトは変更されま
せん )。
• Dir=1( 送信方向 ), RmtEn=0, UMask=0
受信したリモートフレームがメッセージオブジェクトと一致しても受信しないで
リモートフレームを無効にします ( このメッセージオブジェクトの TxRqst ビットは
変更されません )。
• Dir=1( 送信方向 ), RmtEn=0, UMask=1
受信したリモートフレームがメッセージオブジェクトと一致した場合 , このメッ
セージオブジェクトの TxRqst ビットは "0" にリセットされ , リモートフレームは受
信データフレームのように処理されます。受信したアービトレーションフィールド
とコントロールフィールド (ID + IDE + RTR + DLC) は , メッセージ RAM のメッセー
ジオブジェクトへ格納され , このメッセージオブジェクトの NewDat ビットが "1" に
セットされます。メッセージオブジェクトのデータフィールドは変更されません。
● 受信メッセージオブジェクトの設定
図 24.3-3 に受信メッセージオブジェクトの初期化を示します。
図 24.3-3 受信メッセージオブジェクトの初期化
MsgVal
Arb
Data
Mask
EoB
Dir
1
appl.
appl.
appl.
1
0
New Dat MsgLst
0
0
RxIE
TxIE
appl.
0
Int Pnd RmtEn
0
0
TxRqst
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 を持つデータフレームの受信を許可するために
使用します。詳細は , 「■メッセージ受信動作」のデータフレーム受信を参照してくだ
さい。
511
第 24 章 C_CAN
<注意事項>
IFx マスクレジスタの Dir ビットのマスク設定は禁止です。
● 受信メッセージの処理
CPU はメッセージインタフェースレジスタを介して , 受信メッセージをいつでも読み
出すことが可能です。
通常 , IFx コマンドマスクレジスタに "007FH" を書き込みます。次にメッセージオブ
ジェクトのメッセージ番号を IFx コマンド要求レジスタに書き込みます。この手順に
よって , 指定されたメッセージ番号の受信メッセージをメッセージ RAM からメッセー
ジインタフェースレジスタに転送します。このとき , IFx コマンドマスクレジスタの設
定により , メッセージオブジェクトの NewDat ビットと IntPnd ビットを "0" にクリアす
ることが可能です。
受信メッセージの処理は , アクセプタンスフィルタにより調停ビットが一致した場合 ,
メッセージを受信します。メッセージオブジェクトでアクセプタンスフィルタのマス
クを使用している場合は , マスク設定されたデータがアクセプタンスフィルタから除
外され , メッセージを受信するか判断します。
NewDat ビットは , メッセージオブジェクトが最後に読み出されてから , 新しいメッ
セージが受信されたかを示します。
MsgLst ビットは , 受信したデータがメッセージオブジェクトから読み出されない状態
で次の受信データを受信したために前のデータを失ってしまったことを示します。
MsgLst ビットは自動的にリセットされません。
リモートフレーム送信処理中に , アクセプタンスフィルタにより一致するデータフ
レームが受信された場合には , TxRqst ビットは自動的に "0" にリセットされます。
■ FIFO バッファ機能
受信メッセージ処理におけるメッセージオブジェクトの FIFO バッファの構成およ
び動作について説明します。
● FIFO バッファの構成
FIFOバッファの受信メッセージオブジェクトの構成は, EoBビットを除いて, 受信メッ
セージオブジェクトの構成と同じです (「■メッセージ受信動作の ●受信メッセージ
オブジェクトの設定」を参照 )。
FIFO バッファは , 2 つ以上の受信メッセージオブジェクトを連結して使用します。こ
の FIFO バッファへ受信メッセージを格納するためには , 受信メッセージオブジェクト
のIDおよびマスクを使用する場合には, それらの設定を一致させなければなりません。
FIFO バッファの最初の受信メッセージオブジェクトは , 優先順位の高いメッセージ番
号の小さい番号となります。FIFO バッファの最後の受信メッセージオブジェクトは ,
EoB ビットに "1" をセットし , FIFO バッファブロックの終わりを示す必要があります
(FIFO バッファ構成を使用するメッセージオブジェクトの最終メッセージオブジェク
ト以外は , EoB ビットに "0" を設定してください )。
512
第 24 章 C_CAN
<注意事項>
• FIFO バッファで使用するメッセージオブジェクトの ID とマスク設定は必ず同じ設定
にしてください。
• FIFO バッファを使用しない場合は , 必ず EoB ビットに "1" を設定してください。
● FIFO バッファによるメッセージ受信
受信メッセージが FIFO バッファの ID と受信メッセージの識別が一致した場合は , 最
小メッセージ番号の FIFO バッファの受信メッセージオブジェクトへ格納されます。
FIFO バッファの受信メッセージオブジェクトへメッセージが格納されると , この受信
メッセージオブジェクトの NewDat ビットが "1" にセットされます。EoB ビットが "0"
の受信メッセージオブジェクトへ NewDat ビットをセットすると , CAN コントローラ
による FIFO バッファ書込みは最後の受信メッセージオブジェクト (EoB ビット =1) に
到達するまで受信メッセージオブジェクトを保護し , 書込みは行われません。
最終FIFOバッファまで有効なデータが格納された状態で受信メッセージオブジェクト
の NewDat ビットに "0" 書込み ( 書込み保護の解除 ) が行われないと , 次に受信された
メッセージが最終メッセージオブジェクトへ書き込まれ , メッセージは上書きされて
しまいます。
● FIFO バッファからの読出し
CPU が受信メッセージオブジェクトの内容を読み出すには , IFx コマンド要求レジスタ
へ受信メッセージ番号を書き込むことによって , メッセージインタフェースレジスタ
に転送され読み出すことができます。このとき , IFx コマンドマスクレジスタの WR/RD
を "0"( リード ) および TxRqst/NewDat=1, ClrIntPnd=1 に設定し , NewDat ビットと IntPnd
ビットを "0" にリセットしてください。
FIFO バッファの機能を保証するために , FIFO バッファの受信メッセージオブジェクト
は , 必ず最小のメッセージ番号から読み出してください。
図 24.3-4 に FIFO バッファで連結されるメッセージオブジェクトの CPU の処理を示し
ます。
513
第 24 章 C_CAN
図 24.3-4 FIFO バッファの CPU 処理
スタート
メッセージ割込み
CAN割込みレジスタ
読出し
8000 H
0000 H
CAN割込みレジスタ値
8000 H , 0000 H以外
状態割込み処理実行
終了
(通常処理)
メッセージ番号 = CAN割込みレジスタ値
IFxコマンド要求レジスタ(メッセージ番号) 書込み
メッセージインタフェースレジスタ読出し:
(リセット NewDat=0, IntPnd=0)
IFxメッセージ制御レジスタ読出し
NewDat = 1
NO
YES
IFxメッセージデータレジスタA,B 読出し
YES
EoB = 1
NO
メッセージ番号 = メッセージ番号+1
■ 割込み機能
複数の割込みが保留中である場合 , CAN 割込みレジスタは , 保留中の最高優先度の割
込みコードを示します。割込みコードが設定された時間順は無視され , 常に優先順位の
高い割込みコードが表示されます。CPU がクリアするまで割込みコードは保持されま
す。
ステータス割込み (IntId ビットの 8000H) は , 最高優先度となります。
メッセージ割込みの優先度は , メッセージ番号の小さいメッセージが高く , 大きいメッ
セージが低くなります。
メッセージ割込みは , メッセージオブジェクトの IntPnd ビットのクリアによってクリア
されます。ステータス割込みは , CAN ステータスレジスタの読出しでクリアされます。
514
第 24 章 C_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 割込みペンディ
ングレジスタで確認することができます (「24.2.3 メッセージハンドラレジスタ」を参
照 )。メッセージ割込みをクリアする場合 , 同時にメッセージデータを読み出すことは
可能であり , CAN 割込みレジスタで示されているメッセージ割込みをクリアすると次
に優先度の高い割込みが CAN 割込みレジスタにセットされ , 次の割込み処理を待つこ
とになります。割込みがない場合には , CAN 割込みレジスタは 0000H を示します。
<注意事項>
• ステータス割込み (IntId=8000H) は , CAN ステータスレジスタの読出しアクセスにより
割込みがクリアされます。
• CANステータスレジスタの書込みアクセスによるステータス割込み (IntId=8000H) は発
生しません。
■ ビットタイミング
CAN ネットワークの各 CAN ノードは , それぞれクロック発振器 ( 通常は水晶発振器 )
を持っています。ビットタイムのタイムパラメータは , CAN ノードごとに個別に構成
できます。CAN ノードの発振周期 (fosc) が異なっていても , 共通のビットレートを作
り出せます。
これらの発振器の周波数は , 温度や電圧の変化 , コンポーネントの悪化により少し異な
ります。その変動が発振器の許容範囲 (df) 内である限りは , CAN ノードはビットスト
リームへ再同期化することで異なるビットレートを保証できます。
CAN 仕様に応じて , ビットタイムは 4 つの区分に分けられ ( 図 24.3-5 を参照 ), 同期化
部 (Sync_Seg), 伝送時間部 (Prop_Seg), フェーズバッファ部 1 (Phase_Seg1), フェーズバッ
515
第 24 章 C_CAN
ファ部 2(Phase_Seg2) で構成されます。それぞれの区分は , プログラマブルな時間量
( 表 24.3-1 参照 ) からなります。ビットタイムの基本単位時間 (tq) は , CAN コントロー
ラのシステムクロック fsys とボーレートプリスケーラ (BRP) で定義されます。
tq = BRP / fsys
CAN のシステムクロック fsys は , クロック入力の周波数 ( 図 24.1-1 を参照 ) になりま
す。同期化部の Sync_Seg は , CAN バスのエッジを期待するビットタイム内のタイミン
グとなります。伝送時間部の Prop_Seg は , CAN ネットワーク内の物理的遅延時間を保
証します。フェーズバッファ部の Phase_Seg1, Phase_Seg2 は , サンプリングポイントを指
定します。再同期化ジャンプ幅 (SJW) は , エッジフェーズエラーを保証するために再
同期化時のサンプリングポイントの移動幅を定義します。
図 24.3-5 ビットタイミング
1ビットタイム(BT)
Sync
_Seg
Prop_Seg
Phase_Seg1
1 単位時間
(tq)
Phase_Seg2
サンプリングポイント
表 24.3-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
再同期化ジャンプ幅
どちらかのフェーズバッファ部より長くなることはありません。
516
機能
時間量の長さ tq の定義
固定長 システムクロックへの同期化
第 24 章 C_CAN
図 24.3-6 に CAN コントローラにおけるビットタイミングを示します。
図 24.3-6 CAN コントローラにおけるビットタイミング
1ビットタイム(BT)
Sync
_Seg
TEG1
1 単位時間
(tq)
TEG2
サンプリングポイント
表 24.3-2 CAN コントローラのパラメータ
パラメータ
レンジ
機能
BRPE, BRP
[0 ∼ 1023]
Sync_Seg
1 tq
TSEG1
[1 ∼ 15] tq
サンプリングポイント前のタイムセグメントです。
Prop_Seg と Phase_Seg1 に相当します。
ビットタイミングレジスタにより制御可能です。
TSEG2
[0 ∼ 7] tq
サンプリングポイント後のタイムセグメントです。
Phase_Seg2 に相当します。
ビットタイミングレジスタにより制御可能です。
SJW
[0 ∼ 3] tq
再同期化ジャンプ幅です。
ビットタイミングレジスタにより制御可能です。
時間量の長さ tq の定義
ビットタイミングレジスタおよびプリスケーラ拡張レジスタにより
最大 1024 までプリスケーラを拡張できます。
システムクロックへの同期化
固定長
各パラメータの関係を以下に示します。
tq
= ([BRPE, BRP] + 1) / fsys
BT = Sync_Seg + TEG1 + TEG2
= (1+ (TSEG1 + 1) + (TSEG2 + 1)) × tq
= (3 + TSEG1 + TSEG2) × tq
517
第 24 章 C_CAN
■ テストモード
テストモードの設定方法および動作について説明します。
● テストモード設定
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 バス上のトラフィック解析ができます。
図 24.3-7 にサイレントモードでの信号 CAN_TX と CAN_RX の CAN コントローラへの
接続を示します。
図 24.3-7 サイレントモードでの CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
Silentビット = 1
Tx
Rx
CAN Core
● ループバックモード
CAN テストレジスタの LBack ビットを "1" にセットすることにより , CAN コントロー
ラをループバックモードに設定できます。
ループバックモードは , 自己診断機能に使用できます。
ループバックモードでは , CAN コントローラ内部で TX 側と RX 側が接続され , CAN
コントローラが送信したメッセージを RX 側で受信したメッセージとして扱い , アクセ
518
第 24 章 C_CAN
プタンスフィルタを通過したメッセージを受信バッファに格納します。
図 24.3-8 にループバックモードでの信号 CAN_TX と CAN_RX の CAN コントローラへ
の接続を示します。
図 24.3-8 ループバックモードの CAN コントローラ
CAN_TX
CAN_RX
Tx
Rx
CANコントローラ
CAN Core
<注意事項>
外部信号から独立するため , データ / リモートフレームのアクノリッジスロットでのドミ
ナントビットはサンプリングされません。そのため , 通常 , CAN コントローラはアクノ
リッジエラーを発生しますが , 本テストモードではアクノリッジエラーを発生しないよう
にしています。
● サイレントモードとループバックモードの結合
CAN テストレジスタの LBack ビットと Silent ビットを同時に "1" にセットすることに
より , ループバックモードとサイレントモードを結合させ動作することが可能です。
このモードは , 「ホットセルフテスト」用に使用できます。「ホットセルフテスト」と
は , CAN コントローラがループバックモードでテストしたときに , CAN_TX 端子には
レセッシブの固定出力および CAN_RX 端子からの入力は無効となりますので CAN シ
ステムの動作に影響がないことを意味しています。
図 24.3-9 にサイレントモードとループバックモードを結合したときの信号 CAN_TX と
CAN_RX の CAN コントローラへの接続を示します。
519
第 24 章 C_CAN
図 24.3-9 サイレントモードとループバックモードの結合された CAN コントローラ
CAN_TX
CAN_RX
CANコントローラ
LBackビットとSilentビット = 1
Tx
CAN Core
520
Rx
第 24 章 C_CAN
● ベーシックモード
CAN テストレジスタの Basic ビットを "1" にセットすることにより , CAN コントロー
ラをベーシックモードに設定できます。
ベーシックモードでは , CAN コントローラはメッセージ RAM を使用せずに動作しま
す。
IF1 メッセージインタフェースレジスタは , 送信制御用として使用されます。
メッセージ送信を行う場合 , まず , IF1 メッセージインタフェースレジスタに送信する
内容を設定します。次に , IF1 コマンド要求レジスタの BUSY ビットに "1" をセットす
ることで送信要求します。BUSY ビットが "1" にセットされている間 , IF1 メッセージ
インタフェースレジスタをロックしている , または送信が保留されていることを示し
ます。
BUSY ビットに "1" がセットされると CAN コントローラは以下の動作を行います。
CAN バスがバスアイドルになると , すぐに IF1 メッセージインタフェースレジスタの
内容を送信用シフトレジスタへロードし , 送信を開始します。正常に送信完了すると ,
BUSY ビットが "0" にリセットされ , ロックされていた IF1 メッセージインタフェース
レジスタを開放します。
送信が保留されているときに , IF1 コマンド要求レジスタの BUSY ビットを "0" にリ
セットすることでいつでも中断できます。また , 送信中に BUSY ビットを "0" にリセッ
トすると , 調停負けやエラーなどの場合に行われる再送信を停止します。
IF2 メッセージインタフェースレジスタは , 受信制御用として使用されます。
メッセージの受信は , アクセプタンスフィルタを使用せずにすべて受信します。IF2 コ
マンド要求レジスタの BUSY ビットを "1" にセットすることにより , 受信したメッセー
ジの内容を読み出すことが可能となります。
BUSY ビットに "1" がセットされると CAN コントローラは以下の動作を行います。
受信したメッセージ ( 受信用のシフトレジスタの内容 ) をアクセプタンスフィルタなし
で IF2 メッセージインタフェースレジスタへ格納します。
新しいメッセージが IF2 メッセージインタフェースレジスタに格納された場合 , CAN
コントローラが NewDat ビットを "1" にセットします。また , NewDat ビットが "1" の
ときに , さらに新しいメッセージを受信した場合は , CAN コントローラが MsgLst を "1"
にセットします。
<注意事項>
• ベーシックモードでは , 制御 / 状態ビットに関係するすべてのメッセージオブジェクト
と IFx コマンドマスクレジスタの制御モード設定は無効となります。
• コマンド要求レジスタのメッセージ番号は無効です。
• IF2 メッセージ制御レジスタの NewDat ビットと MsgLst ビットは通常時と同様に動作
し , DLC3 ∼ DLC0 は受信された DLC を示し , ほかの制御ビットは "0" として読み出さ
れます。
521
第 24 章 C_CAN
● 端子 CAN_TX のソフトフェア制御
CAN 送信端子である CAN_TX には , 4 つの出力機能があります。
• シリアルデータ出力 ( 通常出力 )
• CAN コントローラのビットタイミングをモニタするための CAN サンプリングポイ
ント信号出力
• ドミナント固定出力
• レセッシブ固定出力
ドミナントおよびレセッシブの固定出力は , CAN 受信端子の CAN_RX モニタ機能とと
もに , CAN バスの物理層のチェックに使用することができます。
CAN_TX 端子の出力モードは , CAN テストレジスタの Tx1 と Tx0 ビットにより制御可
能です。
<注意事項>
CAN メッセージ送信もしくはループバックモード , サイレントモード , ベーシックモード
を使用する際は CAN_TX をシリアルデータ出力に設定する必要があります。
■ ソフトウェア初期化
ソフトウェアでの初期化要因を以下に示します。
• ハードウェアリセット
• CAN 制御レジスタの Init ビットの設定
• バスオフ状態への遷移
ハードウェアによるリセットは, メッセージRAM (MsgVal, NewDat, IntPnd, TxRqstビッ
トを除く ) 以外すべて初期化されます。メッセージ RAM はハードウェアによるリセッ
ト後 , CPU によって初期化するかメッセージ RAM の MsgVal を "0" にしてください。
また , ビットタイミングレジスタを設定する場合には , CAN 制御レジスタの Init ビット
を "0" にクリアする前に設定してください。
CAN 制御レジスタの Init ビットは , 以下の条件で "1" にセットされます。
• CPU からの "1" 書込み
• ハードウェアリセット
• バスオフ
Init ビットが "1" にセットされると , CAN バスの全メッセージ送受信は停止され , CAN
バス出力のCAN_TX端子はレセッシブ出力となります(CAN_TXテストモードは除く)。
Init ビットに "1" をセットすると , エラーカウンタは変化しませんし , レジスタも変更
されません。
CAN 制御レジスタの Init ビットと CCE ビットが "1" にセットされると , ボーレート制
御用のビットタイミングレジスタとプリスケーラ拡張レジスタへの設定が可能となり
ます。
Init ビットを "0" にリセットすることによりソフトウェア初期化を終了します。また ,
Init ビットを "0" にすることは , CPU からのアクセスでしか実行できません。
522
第 24 章 C_CAN
Init ビットが "0" にリセットされてから , 連続した 11 ビットのレセッシブの発生 ( =バ
スアイドル ) を待つことにより , CAN バス上のデータ転送と同期化した後 , メッセージ
の転送が行われます。
通常動作中にメッセージオブジェクトのマスク , ID, XTD, EoB, RmtEn を変更する場合 ,
MsgVal を無効に設定してから変更してください。
■ CAN クロックプリスケーラ
PLL 動作中の CAN クロック切換えについて説明します。
● ブロックダイヤグラム
CAN クロックプリスケーラの概要について以下のブロックダイヤグラムに示します。
CAN クロックプリスケーラレジスタの CANPRE ビットの設定に従い , CAN インタ
フェースに供給されるクロックの分周比が決定されます。
図 24.3-10 CAN クロックプリスケーラのブロックダイヤグラム
PLL
CANクロック1
クロック
分周器
CANクロック0
X0
Div by
CANPRE
523
第 24 章 C_CAN
● クロック切り換え手順
CAN クロックプリスケーラを使用したクロックの切換え方法については , 以下の手順
を推奨します。
図 24.3-11 CAN クロックプリスケーラを使用したクロックの切換え手順
CAN クロックの切換え
発振器 -> PLL
CAN クロックの切換え
PLL -> 発振器
CAN 制御レジスタの
Init ビットをセット
CAN 制御レジスタの
Init ビットをセット
PLL を有効にする
プリスケーラ値をセット
PLL ロック時間を確保
PLL を無効にする
プリスケーラ値をセット
CAN 制御レジスタの
Init ビットを初期化
CAN 制御レジスタの
Init ビットを初期化
524
第 24 章 C_CAN
● CAN クロックプリスケーラ設定
CAN クロックプリスケーラに設定可能な値を示します。
CAN インタフェースに供給されるクロックは , システムクロックを CAN クロックプリ
スケーラの設定値に従い分周されたものとなります。
CANPRE[3:0]
機能
システムクロック:
32MHz 時
0000B
設定禁止
0001B
CAN クロックとしてシステムクロックの 1/2 周期が選択さ
れます。
16MHz
001XB
CAN クロックとしてシステムクロックの 1/4 周期が選択さ
れます。
8MHz
01XXB
CAN クロックとしてシステムクロックの 1/8 周期が選択さ
れます。
4MHz
1000B
CAN クロックとしてシステムクロックの 2/3 周期が選択さ
れます。
クロックのデューティ比は 67% となります。
21.33MHz
( 設定禁止 )
1001B
CAN クロックとしてシステムクロックの 1/3 周期が選択さ
れます。
10.67MHz
101XB
CAN クロックとしてシステムクロックの 1/6 周期が選択さ
れます。
5.33MHz
11XXB
CAN クロックとしてシステムクロックの 1/12 周期が選択
されます。
2.67MHz
設定禁止
<注意事項>
• CANプリスケーラ設定ビットの変更は, CAN制御レジスタの初期化ビットを"1"にセッ
トし , すべてのバス動作を停止させた後に行ってください。
• 本レジスタの設定により CAN インタフェースに供給するクロックは 16MHz 以下とし
てください。
525
第 24 章 C_CAN
526
第 25 章
LCD コントローラ (LCDC)
LCD コントローラ / ドライバ (LCDC) の概要 , レジ
スタの構成 / 機能および動作について説明します。
25.1
LCD コントローラの概要
25.2
LCD コントローラのレジスタ
25.3
LCD コントローラの動作
527
第 25 章 LCD コントローラ (LCDC)
25.1
LCD コントローラの概要
LCD コントローラ / ドライバの特長とブロックダイヤグラムについて説明します。
■ LCD コントローラの特長
LCD コントローラは , 表示用データメモリの内容をコモン出力とセグメント出力に
よって LCD に直接表示します。
• LCD 駆動電源の分割抵抗を内蔵しています。
• 最大で 4 本のコモン出力 (COM0 ∼ COM3 端子 ) と 32 本のセグメント出力 (SEG0 ∼
SEG31 端子 ) が使用できます。
• 16 バイトの表示用データメモリを内蔵しています。
• デューティは , 1/2, 1/3, 1/4 から選択します。バイアスは 1/3 バイアス固定です。
• 駆動クロックには, 発振クロック(HCLK)またはサブクロック(SCLK)を使用します。
• LCD を直接駆動できます。
• COM0 ∼ COM3 端子 , SEG0 ∼ SEG31 端子は , 汎用入出力ポートとして使用できま
す(コモン端子切換え レジスタ (LCDMR)とLCDコントローラ制御レジスタ1(LCR1)
で切換え )。使用できるバイアス , デューティと使用するコモン出力は表 25.1-1 のと
おりです。
表 25.1-1 バイアス , デューティ , コモン出力の組合せ
バイアス
1/2 デューティ
出力モード
1/3 デューティ
出力モード
1/4 デューティ
出力モード
○
○
○
COM1 出力 , COM0 出力
COM2 出力∼ COM0 出力
COM3 出力∼ COM0 出力
1/3 バイアス
528
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラのブロックダイヤグラム
図 25.1-1 LCD コントローラのブロックダイヤグラム
コモン端子切換えレジスタ(LCDCMR)
-
-
-
-
COM3 COM2 COM1 COM0
4
LCD制御
レジスタ0
(LCR0)
内部分割抵抗
CSS REV VSEL BK MS1 MS0 FP1 FP0
内部データバス
発振
クロック
サブ
クロック
2
2
プリス
ケーラ
タイミング
コントローラ
表示用データメモリ
(16バイト)
交
流
化
回
路
端子 COM2
端子 SEG0
端子 SEG1
セ
グ
メ
ン
ト
ド
ラ
イ
バ
端子 SEG2
・・・
コントローラ部
端子 COM1
・・・
SEG7 SEG6 SEG5 SEG4 SEG3 SEG2 SEG1 SEG0
端子 COM0
端子 COM3
32
6
LCDC制御レジスタ1 (LCR1)
コ
モ
ン
ド
ラ
イ
バ
端子 SEG29
端子 SEG30
-:未定義ビット
端子 SEG31
ドライバ部
529
第 25 章 LCD コントローラ (LCDC)
25.2
LCD コントローラのレジスタ
LCD コントローラ / ドライバのレジスタの機能について説明します。
■ LCD コントローラのレジスタ一覧
LCDCMR
アドレス : 000098H
bit
−
(R/W)
リード / ライト→
(0)
初期値→
LCR0
アドレス : 00009AH
bit
15
CSS
リード / ライト→ (R/W)
(0)
初期値→
LCR1
アドレス : 00009BH
15
bit
7
SEG7
リード / ライト→ (R/W)
(0)
初期値→
VRAMn (n=0, 2, 4, 6, 8, 10, 12, 14) bit
15
D15
アドレス :
00009CH(VRAM0)
リード / ライト→ (R/W)
(X)
00009EH(VRAM2)
初期値→
0000A0H(VRAM4)
0000A2H(VRAM6)
0000A4H(VRAM8)
0000A6H(VRAM10)
0000A8H(VRAM12)
0000AAH(VRAM14)
VRAMn (n=1, 3, 5, 7, 9, 11, 13, 15)
bit
7
D07
アドレス :
00009DH(VRAM1)
リード / ライト→ (R/W)
(X)
00009FH(VRAM3)
初期値→
0000A1H(VRAM5)
0000A3H(VRAM7)
0000A5H(VRAM9)
0000A7H(VRAM11)
0000A9H(VRAM13)
0000ABH(VRAM15)
530
14
13
−
(R/W)
(0)
−
(R/W)
(0)
12
11
10
9
8
COM3 COM2 COM1 COM0
−
(R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
14
13
12
11
10
9
8
−
(R/W)
(0)
VSEL
(R/W)
(0)
BK
(R/W)
(1)
MS1
(R/W)
(0)
MS0
(R/W)
(0)
FP1
(R/W)
(0)
FP0
(R/W)
(0)
6
5
4
3
2
1
0
SEG6
(R/W)
(0)
SEG5
(R/W)
(0)
SEG4
(R/W)
(0)
SEG3
(R/W)
(0)
SEG2
(R/W)
(0)
SEG1
(R/W)
(0)
SEG0
(R/W)
(0)
14
D14
(R/W)
(X)
13
D13
(R/W)
(X)
12
D12
(R/W)
(X)
11
D11
(R/W)
(X)
10
D10
(R/W)
(X)
9
D09
(R/W)
(X)
8
D08
(R/W)
(X)
6
5
4
3
2
1
0
D06
(R/W)
(X)
D05
(R/W)
(X)
D04
(R/W)
(X)
D03
(R/W)
(X)
D02
(R/W)
(X)
D01
(R/W)
(X)
D00
(R/W)
(X)
第 25 章 LCD コントローラ (LCDC)
■ コモン端子切換えレジスタ (LCDCMR)
図 25.2-1 コモン端子切換えレジスタ (LCDCMR) のビット構成
LCDCMR
bit
アドレス : 000098H
15
−
リード / ライト→ (R/W)
(0)
初期値→
14
13
12
−
(R/W)
(0)
−
(R/W)
(0)
11
10
9
8
COM3 COM2 COM1 COM0
−
(R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
[bit15 ∼ bit12] (Reserved bit)
"0" 以外 , 書き込まないでください。
[bit11 ∼ bit8]COM3 ∼ COM0 : コモン端子イネーブルビット
COM3
COM2
COM1
COM0
コモン出力
0
0
0
0
コモン出力不可 ( 初期値 )
1
1
1
1
コモン出力可能
上記以外の設定
設定不可
上記の設定により , コモン出力を可能にするか選択します。本品種で LCD を利用す
る際は , 必ず LCDCMR = 00001111B の設定を行ってください。
(注意事項)
なお , 上記の設定のほかに , 対応する Port Function Register(PFR, EPER) の設定が
必要となります。詳細は , 「第 4 章 I/O ポート」を参照してください。
531
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラ制御レジスタ 0(LCR0)
LCDコントローラ制御レジスタ0(LCR0)は, フレーム周期とフレーム周期発生用クロッ
クの選択 , 表示モードと表示 / 非表示の選択 , または駆動電源の制御を行います。
図 25.2-2 LCD コントローラ制御レジスタ 0(LCR0) のビット構成
LCR0
bit
アドレス : 00009AH
15
14
13
CSS
−
(R/W)
(0)
VSEL
BK
MS1
MS0
FP1
FP0
(R/W)
(0)
(R/W)
(1)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
リード / ライト→ (R/W)
(0)
初期値→
12
11
10
9
8
[bit15]CSS:フレーム周期発生用クロック選択ビット
LCD 表示のフレーム周期を発生するためのクロックを選択します。
CSS
動作
0
LCD コントローラドライバは 発振クロックで動作します。[ 初期値 ]
1
LCD コントローラドライバはサブクロックで動作します。
( 注意事項 )
• サブクロックモードでは , 発振クロックの発振が停止するため , 発振クロックの
設定では動作しません。
• S サフィックスがある製品 ( 品種名に "S" がついている ) では "1" を設定しない
でください。
[bit14] (Reserved bit)
"0" 以外 , 書き込まないでください。
[bit13]VSEL:LCD 駆動電源制御ビット
内部分割抵抗の接続または切断を選択します。使用前に必ず "1" にセットしてくだ
さい。
VSEL
動作
0
内部分割抵抗を切断します。[ 初期値 ]
1
内部分割抵抗を接続します。
[bit12]BK:ブランキング選択ビット
LCD の表示 / 非表示を選択します。セグメント出力が非選択波形 ( 表示条件となら
ない波形 ) となり , 非表示になります。
BK
532
動作
0
表示
1
非表示 [ 初期値 ]
第 25 章 LCD コントローラ (LCDC)
[bit10, bit11]MS1, MS0:表示モード選択ビット
出力波形のデューティを 3 種類の中から選択して設定します。
設定したデューティ出力モードに対応して , 使用するコモン端子が決まります。
"00B" に設定した場合 , LCD コントローラドライバは表示動作を停止し , コモン / セ
グメント端子は "L" レベルを出力します。
MS1
MS0
0
0
LCD 動作停止
0
1
1/2 デューティ出力モード ( 時分割数 =2)
1
0
1/3 デューティ出力モード ( 時分割数 =3)
1
1
1/4 デューティ出力モード ( 時分割数 =4)
動作
[bit8, bit9]FP1, FP0:フレーム周期選択ビット
LCD 表示のフレーム周期を 4 種類の中から選択して設定します。
フレーム周波数 [Hz]
FP1
FP0
0
メインクロック選択時
(CSS=0)
サブクロック選択時
(CSS=1)
0
HCLK/(213 × N)
SCLK/(23 × N)
0
1
HCLK/(214 × N)
SCLK/(24 × N)
1
0
HCLK/(215 × N)
SCLK/(25 × N)
1
1
HCLK/(216 × N)
SCLK/(26 × N)
HCLK : メインクロック利用時における周辺クロック周波数
SCLK : サブクロック入力周波数
N
: 時分割数 ( 表示モード選択ビットの設定による )
( 注意事項 )
使用する LCD パネルのフレーム周波数に対応した最適なフレーム周期の設定を
行ってください。
533
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラ制御レジスタ 1(LCR1)
図 25.2-3 LCD コントローラ制御レジスタ 1(LCR1) のビット構成
LCR1
bit
7
6
5
4
3
2
1
0
SEG7
SEG6
SEG5
SEG4
SEG3
SEG2
SEG1
SEG0
リード / ライト→ (R/W)
(0)
初期値→
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
アドレス : 00009BH
[bit7 ∼ bit0] SEG7 ∼ SEG0 セグメント端子イネーブルビット
SEG7
SEG6
SEG5
SEG4
SEG3
SEG2
SEG1
SEG0
セグメント出力
0
0
0
0
0
0
0
0
セグメント出力不可 ( 初期値 )
0
0
0
0
0
0
0
1
SEG00 ∼ SEG03 出力可能
0
0
0
0
0
0
1
1
SEG00 ∼ SEG07 出力可能
0
0
0
0
0
1
1
1
SEG00 ∼ SEG11 出力可能
0
0
0
0
1
1
1
1
SEG00 ∼ SEG15 出力可能
0
0
0
1
1
1
1
1
SEG00 ∼ SEG19 出力可能
0
0
1
1
1
1
1
1
SEG00 ∼ SEG23 出力可能
0
1
1
1
1
1
1
1
SEG00 ∼ SEG27 出力可能
1
1
1
1
1
1
1
1
SEG00 ∼ SEG31 出力可能
上記の設定により , 各セグメント出力を可能にするかを選択します。本品種で , LCD
を利用する際には , 必ず , LCR1 = 11111111B の設定を行ってください。
なお , 上記の設定のほかに , 対応する Port Function Register(PFR, EPER) の設定が必
要となります。詳細は , 「第 4 章 I/O ポート」を参照してください。
534
第 25 章 LCD コントローラ (LCDC)
■ 表示用データメモリ (VRAM)
表示用データメモリは , 16 バイトのデータ RAM です。表示用データの設定に使用し
ます。
図 25.2-4 表示用データメモリ (VRAM) のビット構成
VRAMn (n=0, 2, 4, 6, 8, 10, 12, 14) bit
アドレス :
00009CH(VRAM0)
00009EH(VRAM2)
0000A0H(VRAM4)
0000A2H(VRAM6)
0000A4H(VRAM8)
0000A6H(VRAM10)
0000A8H(VRAM12)
0000AAH(VRAM14)
15
D15
リード / ライト→ (R/W)
(X)
初期値→
VRAMn (n=1, 3, 5, 7, 9, 11, 13, 15) bit
7
D07
アドレス :
00009DH(VRAM1)
リード / ライト→ (R/W)
(X)
00009FH(VRAM3)
初期値→
0000A1H(VRAM5)
0000A3H(VRAM7)
0000A5H(VRAM9)
0000A7H(VRAM11)
0000A9H(VRAM13)
0000ABH(VRAM15)
14
D14
(R/W)
(X)
13
D13
(R/W)
(X)
12
D12
(R/W)
(X)
11
D11
(R/W)
(X)
10
D10
(R/W)
(X)
9
D09
(R/W)
(X)
8
D08
(R/W)
(X)
6
5
4
3
2
1
0
D06
(R/W)
(X)
D05
(R/W)
(X)
D04
(R/W)
(X)
D03
(R/W)
(X)
D02
(R/W)
(X)
D01
(R/W)
(X)
D00
(R/W)
(X)
VRAMの内容は, コモン信号のタイミングに同期して自動的に読み出され, セグメント
出力端子より出力されます。
VRAM の内容は , 表示用データメモリ (VRAM) への書換えと同時にセグメント出力端
子より出力されます。
コモン出力とセグメント出力に対応したビットを "1" に設定した場合は , セグメント出
力端子より選択波形が出力されます。"0" に設定した場合は , セグメント出力端子より
選択波形が出力されます。
VRAM のアクセスは , LCD コントローラの動作に関係なく , 任意のタイミングでリー
ド / ライトできます。
次に , VRAM とコモン端子 , セグメント端子の対応表を示します。
535
第 25 章 LCD コントローラ (LCDC)
図 25.2-5 VRAM とコモン端子・セグメント端子の対応
VRAM0
VRAM1
VRAM2
VRAM3
VRAM4
VRAM5
VRAM6
VRAM7
VRAM8
VRAM9
VRAM10
VRAM11
VRAM12
VRAM13
VRAM14
VRAM15
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
bit11
bit15
bit3
bit7
COM3
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
bit10
bit14
bit2
bit6
COM2
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
bit9
bit13
bit1
bit5
COM1
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
bit8
bit12
bit0
bit4
COM0
SEG0
SEG1
SEG2
SEG3
SEG4
SEG5
SEG6
SEG7
SEG8
SEG9
SEG10
SEG11
SEG12
SEG13
SEG14
SEG15
SEG16
SEG17
SEG18
SEG19
SEG20
SEG21
SEG22
SEG23
SEG24
SEG25
SEG26
SEG27
SEG28
SEG29
SEG30
SEG31
1/2 デューティ出力モードの場合に使用
される RAM 領域とコモン端子
1/3 デューティ出力モードの場合に使用
される RAM 領域とコモン端子
1/4 デューティ出力モードの場合に使用
される RAM 領域とコモン端子
536
第 25 章 LCD コントローラ (LCDC)
25.3
LCD コントローラの動作
LCD コントローラ / ドライバ (LCDC) の動作について説明します。
■ LCD コントローラの動作
各レジスタに必要な設定を書き込んだ後にフレーム周期発生用クロックが発振してい
る場合は, 表示用データメモリにあらかじめ設定された内容に従って, LCDを駆動する
波形がコモン / セグメント出力端子 (COM0 ∼ COM3, SEG0 ∼ SEG31) に出力されます。
LCD は , LCD コントローラ制御レジスタ 0 でのデューティの設定に従って (LCR0:MS1,
MS0), 2 フレーム交流化波形により駆動されます。
表示モードが 1/2 デューティの場合の COM2, COM3 端子と , 1/3 デューティの場合の
COM3 端子からは , 非選択レベルの波形が出力されます。
LCD の表示動作を停止した場合 (LCR0:MS1, MS0 = 00B) は , コモン / セグメント出力
端子はともに "L" レベルになります。
■ フレーム周期発生用クロックの切換え
LCD の表示動作中の場合でも , フレーム周期発生用クロックは切り換えることができ
ます (LCR0:CSS)。ただし , LCD の表示可能なフレーム周期に切り換えた場合でも , 切
換えにより表示がちらつく可能性があります。
切換えによる表示のちらつきを防ぐため , LCD コントローラ制御レジスタ 0 のブラン
キング選択ビットを "1" に設定し (LCR0:BK = 1), 非表示の状態にしてから , フレーム
周期発生用クロックを切り換えてください。
また , MS ビットを切り換える場合においても , 同様で , MS ビット切換え中は , 動作を
保証できませんので , LCD コントローラを停止してから切換えを行ってください。
■ LCD の駆動波形
LCD パネルは , 直流で駆動すると素子が劣化するため , 2 フレーム交流化波形で駆動し
ます。出力波形は , LCD 制御レジスタ 0 の表示モード選択ビットで (LCR0:MS1, MS0),
次の 3 種類から選択します。
1/2 デューティ出力モード ( 時分割定数 = 2)
1/3 デューティ出力モード ( 時分割定数 = 3)
1/4 デューティ出力モード ( 時分割定数 = 4)
■ ストップモードについて
ストップモード動作モード時 , 動作を停止します ( コモン出力 , セグメント出力 )。
537
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラドライバ動作時の出力波形 (1/2 デューティ出力モード )
1/2 デューティ出力モードの場合 , LCD の表示に使用されるのは , COM0 出力と COM1
出力のみです。COM2 出力 , COM3 出力は使用されません。
● 1/3 バイアス・1/2 デューティ出力波形例
LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま
す。
表示用データメモリの内容が表 25.3-1 の場合は , 出力波形が図 25.3-1 のようになりま
す。
表 25.3-1 表示用データメモリの内容例
表示用データメモリの内容
セグメント
538
COM3 出力
COM2 出力
COM1 出力
COM0 出力
SEG n 出力
−
−
0
0
SEG n+1 出力
−
−
1
1
第 25 章 LCD コントローラ (LCDC)
図 25.3-1 1/3 バイアス・1/2 デューティ出力波形例
COM0出力
COM1出力
COM2出力
COM3出力
SEG n 出力
SEG n+1 出力
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
ON
SEG n, COM0出力に対応する
液晶表示素子
OFF
ON
SEG n, COM1出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM0出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM1出力に対応する
液晶表示素子
OFF
539
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラドライバ動作時の出力波形 (1/3 デューティ出力モード )
1/3 デューティ出力モードの場合 , LCD の表示に使用されるのは , COM0 出力 , COM1
出力 , COM2 出力です。COM3 出力は使用されません。
● 1/3 バイアス・1/3 デューティ出力波形例
LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま
す。
表示用データメモリの内容が表 25.3-2 の場合は , 出力波形が図 25.3-2 のようになりま
す。
表 25.3-2 表示用データメモリの内容例
表示用データメモリの内容
セグメント
540
COM3 出力
COM2 出力
COM1 出力
COM0 出力
SEG n 出力
−
1
0
0
SEG n+1 出力
−
1
0
1
第 25 章 LCD コントローラ (LCDC)
図 25.3-2 1/3 バイアス・1/3 デューティ出力波形例
COM0出力
COM1出力
COM2出力
COM3出力
SEG n 出力
SEG n+1 出力
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
ON
SEG n, COM0出力に対応する
液晶表示素子
OFF
ON
SEG n, COM1出力に対応する
液晶表示素子
OFF
ON
SEG n, COM2出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM0出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM1出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM2出力に対応する
液晶表示素子
OFF
541
第 25 章 LCD コントローラ (LCDC)
■ LCD コントローラ・ドライバ動作時の出力波形 (1/4 デューティ出力モード )
1/4 デューティ出力モードの場合は LCD の表示用に , COM0 出力 , COM1 出力 , COM2
出力 , COM3 出力のすべてが使用されます。
● 1/3 バイアス・1/4 デューティ出力波形例
LCD では , コモン出力とセグメント出力の電位差が最大となった液晶素子が点灯しま
す。
表示用データメモリの内容が表 25.3-3 の場合は , 出力波形が図 25.3-3 のようになりま
す。
表 25.3-3 表示用データメモリの内容例
表示用データメモリの内容
セグメント
542
COM3 出力
COM2 出力
COM1 出力
COM0 出力
SEG n 出力
0
1
0
0
SEG n+1 出力
0
1
0
1
第 25 章 LCD コントローラ (LCDC)
図 25.3-3 1/3 バイアス・1/4 デューティ出力波形例
COM0出力
COM1出力
COM2出力
COM3出力
SEG n 出力
SEG n+1 出力
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
V3
V2
V1
V0
ON
SEG n, COM0出力に対応する
液晶表示素子
OFF
ON
SEG n, COM1出力に対応する
液晶表示素子
OFF
ON
SEG n, COM2出力に対応する
液晶表示素子
OFF
ON
SEG n, COM3出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM0出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM1出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM2出力に対応する
液晶表示素子
OFF
ON
SEG n+1,COM3出力に対応する
液晶表示素子
OFF
543
第 25 章 LCD コントローラ (LCDC)
544
第 26 章
32kHz クロック
補正ユニット
32kHz クロック補正ユニットの概要およびレジス
タの構成 / 機能について説明します。
26.1
32kHz クロック補正ユニットの概要
26.2
32kHz クロック補正ユニットのレジスタ
26.3
アプリケーションノート
545
第 26 章 32kHz クロック 補正ユニット
26.1
32kHz クロック補正ユニットの概要
32kHz クロック補正モジュールは , 4MHz 発振クロックを基準にして 32kHz 発振ク
ロックを補正できます。
■ 補正ユニットの特長
このモジュールを使用すると , ソフトウェアによって , 32kHz クロックによって生成さ
れた時間を 4MHz クロックによって測定できます。
ソフトウェアによる処理と , このモジュールの利用によって , 32kHz クロックの正確さ
を 4MHz クロックの正確さに近づけることができます。32kHz クロック補正モジュー
ルによる測定結果は , ソフトウェアにより処理できます。また , リアルタイムクロック
モジュールに必要な設定を得ることができます。
このモジュールは , 32kHz クロックで動作するタイマと 4MHz クロックで動作するタイ
マの 2 つのタイマから構成されています。32kHz タイマが 4MHz タイマをトリガし ,
4MHz タイマの値がレジスタに格納されます。レジスタに格納された値はソフトウェ
アで処理され , 必要なリアルタイムクロックモジュールの設定が計算されます。
■ 32kHz クロック補正ユニットのブロックダイヤグラム
図 26.1-1 32kHz クロック補正ユニットのブロックダイヤグラム
UC18CLK
OSC4
CLK4G = OSC4 |~STRT |(READY & ~RUNS);
gate
CLK4G
STRT
READY
RUNS
OSC32
gate
STRT
CLKP
CLKPG
gate
32kHz
タイマ
CLK32G
RSLEEPB
CLKPG2
gate
CUTD
4MHz
タイマ
RUN
カウンタ(16ビット)
STR TS
RSLEEPB
STRT
UC18TRD
RUN
同期
32->4
非同期
RST
R UNS
CUTR(24ビット)
CUTR
UC18TRR
CLKPG2 = CLKP |(~STRT & RSLEEPB);
READY
READY
STR T
同期
CLKP->32
非同期
RST
STRT
STRT
RB
STRT
リセット
READ Y
設定/リセット
R UNSS1
R UNSS
INTEN
RBB
RB
設定/リセット
RSLEEPB
RSLEEP
INT
RMWB
RMW
設定
リセット
UC18BUS
READY PULSE
CUCR(3ビット)
INT_I
INT
同期
4->CLKP
INT_INT
CUTR(24ビット)
*_RDB
*_RD
*_WRB
*_WR
RSTB
RST
UC18IO
CUTD(16ビット)
CUTD
UC18RBI
FC18
546
第 26 章 32kHz クロック 補正ユニット
■ 32kHz クロック補正ユニットのタイミング
図 26.1-2 測定処理のタイミング
32 kHz
STRT(CLKP)
STRTS(32 kHz)
RUN (32 kHz)
RUNS (4 MHz)
32 kHzカウンタ(16ビット)
2
CUTD CUTD-1
1
0
新CUTR
旧CUTR
4 MHzカウンタ(24ビット)
CUTD
READY (32 kHz)
READYPULSE (CLKP)
INT (CLKP)
■ 32kHz クロック補正ユニットのクロック
モジュールは , 4MHz クロック OSC4, 32kHz クロック OSC32, R-bus クロック CLKP の
3 つの異なるクロックにより動作します。それぞれのドメインは同期回路によって適合
されます。
3 つのクロックはすべてゲート制御されます。STRT が "0" の場合は , 32kHz と 4MHz
のクロックのスイッチは OFF になります。CLKPG の制御信号は RSLEEPB であり ,
CLKPG2 の制御信号は RSLEEP と STRT の 2 ビットです。これらはハードウェアによっ
て設定またはリセットされます。
クロック周波数は以下の要件を満足する必要があります。
クロック比
TOSC32 > 2 × TOSC4 + 3 × TCLKP
TOSC4 < 1/2 × TOSC32 - 3/2 × TCLKP
TCLKP < 1/3 × TOSC32 - 2/3 × TOSC4
表 26.1-1 有効クロック比の例
OSC32
通常動作
32kHz
31.25μs
OSC4
4MHz
CLKP
250ns
2MHz 以上
500ns 以下
547
第 26 章 32kHz クロック 補正ユニット
26.2
32kHz クロック補正ユニットのレジスタ
補正ユニットのレジスタ一覧および各レジスタの機能を説明します。
■ 補正ユニットのレジスタ一覧
● 補正ユニット制御レジスタ (CUCR)
図 26.2-1 補正ユニット制御レジスタ (CUCR) のビット構成
bit
アドレス : 00015DH
リード / ライト→
初期値→
15
−
(R)
(−)
14
−
(R)
(−)
13
12
−
(R)
(−)
STRT
(R/W)
(0)
11
−
(R)
(−)
10
−
(R)
(−)
9
8
INT INTEN
(R/W) (R/W)
(0)
(0)
● 32kHz タイマデータレジスタ (CUTD)
図 26.2-2 32kHz タイマデータレジスタ (CUTD) のビット構成
bit
548
15
14
13
12
11
10
9
TDD15
TDD14
TDD13
TDD12
TDD11
TDD10
TDD9
アドレス : 00015EH
リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
8
TDD8
(R/W)
(0)
bit
7
TDD7
アドレス : 00015FH
リード / ライト→ (R/W)
(0)
初期値→
0
TDD0
(R/W)
(0)
6
TDD6
(R/W)
(0)
5
TDD5
(R/W)
(0)
4
TDD4
(R/W)
(0)
3
TDD3
(R/W)
(0)
2
TDD2
(R/W)
(0)
1
TDD1
(R/W)
(0)
第 26 章 32kHz クロック 補正ユニット
● 4MHz タイマデータレジスタ (CUTR)
図 26.2-3 4MHz タイマデータレジスタ (CUTR) のビット構成
CUTR1
bit
アドレス : 000160H
リード / ライト→
初期値→
bit
15
14
13
12
11
10
9
8
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
7
6
5
4
3
2
1
0
TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16
アドレス : 000161H
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
リード / ライト→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
CUTR2
bit
15
14
13
12
11
10
9
TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 TDR9
アドレス : 000162H
(R)
(R)
(R)
(R)
(R)
(R)
(R)
リード / ライト→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
bit
7
TDR7
アドレス : 000163H
(R)
リード / ライト→
(0)
初期値→
8
TDR8
(R)
(0)
6
5
4
3
2
1
0
TDR6
(R)
(0)
TDR5
(R)
(0)
TDR4
(R)
(0)
TDR3
(R)
(0)
TDR2
(R)
(0)
TDR1
(R)
(0)
TDR0
(R)
(0)
■ 補正ユニット制御レジスタ (CUCR)
図 26.2-4 補正ユニット制御レジスタ (CUCR) のビット構成
bit
アドレス : 00015DH
リード / ライト→
初期値→
15
14
13
12
11
10
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
STRT
(R/W)
(0)
−
(R)
(−)
−
(R)
(−)
9
8
INT INTEN
(R/W) (R/W)
(0)
(0)
制御レジスタ (CUCR) には , 次の機能があります。
• 補正測定の開始 / 停止
• 割込みの許可 / 禁止
• 補正測定の終了を示す
[bit12] STRT: 補正開始
STRT
機能
0
補正停止 , モジュールスイッチオフ ( 初期値 )
1
補正開始
STRT ビットがソフトウェアにより "1" に設定されると補正が開始します。
32kHz タ
イマは , 32kHz タイマデータレジスタに格納された値からのカウントダウンを開始
し , 4MHz タイマは "0" からのカウントアップを開始します。
32kHz タイマが "0" に達すると , このビットはハードウェアにより "0" にリセットさ
れます。
549
第 26 章 32kHz クロック 補正ユニット
補正処理中にソフトウェアによってこのビットに "0" が書き込まれると , 補正は直
ちに停止します。ソフトウェアによる "0" の書込みとハードウェアによる "0" への
リセットが同時に発生した場合は , ハードウェアの動作がソフトウェアの動作に優
先します。
すなわち , 補正は適切に完了し , INT ビットは "1" に設定されます。補正中にこの
ビットへ "1" を書き込んでも影響はありません。
[bit9] INT: 割込み
INT
機能
0
補正中 / モジュールインアクティブ ( 初期値 )
1
補正完了
このビットは補正の終了を示します。
補正開始後 , 32kHz タイマが "0" に達すると , 4MHz タイマデータレジスタは最後の
4MHz タイマ値を格納し , INT ビットは "1" に設定されます。
このビットに対してリードモディファイライト (RMW) 系命令を行うと "1" が読み
出され , このビットに "0" を書き込むとフラグがクリアされます (INT=0)。このビッ
トに "1" を書き込んでも影響はありません。
割込みフラグ INT は , ハードウェアではリセットされません。そのため , 新たな補
正を開始する前にソフトウェアによりリセットする必要があります。リセットしな
い場合の補正処理の終了は , STRT ビット (INT フラグは補正中も "1" のままです )
によってのみ知ることが可能です。
[bit8] INTEN: 割込み許可
INTEN
機能
0
割込み禁止 ( 初期値 )
1
割込み許可
これは INT ビットに対応する割込み許可ビットです。
このビットが "1" に設定され , INT ビットがハードウェアにより設定されると , 補正
モジュールは CPU への割込み信号を送信します。INT ビット自体は INTEN ビット
の影響を受けず , 割込み禁止の場合 (INTEN=0) でもハードウェアにより設定されま
す。
550
第 26 章 32kHz クロック 補正ユニット
■ 32kHz タイマデータレジスタ (16 ビット ) (CUTD)
図 26.2-5 32kHz タイマデータレジスタ (16 ビット ) (CUTD) のビット構成
bit
15
14
13
12
11
10
9
TDD15 TDD14 TDD13 TDD12 TDD11 TDD10 TDD9
アドレス : 00015EH
リード / ライト→ (R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(1)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
bit
7
TDD7
アドレス : 00015FH
リード / ライト→ (R/W)
(0)
初期値→
6
TDD6
(R/W)
(0)
5
TDD5
(R/W)
(0)
4
TDD4
(R/W)
(0)
3
TDD3
(R/W)
(0)
2
TDD2
(R/W)
(0)
1
TDD1
(R/W)
(0)
8
TDD8
(R/W)
(0)
0
TDD0
(R/W)
(0)
32kHz タイマデータレジスタ (CUTD) は , 補正期間 (32kHz リロード値 ) を決定する値
を保持します。
32.768kHz の水晶が使用される場合のデフォルト値は "8000H" であり , 1 秒の測定持続
時間に対応します。
このレジスタには , 補正がインアクティブ (STRT=0) になっている場合以外は書き込ん
ではいけません。
32kHz タイマレジスタは補正の持続時間を指定する値を格納します。補正を開始する
と , 格納された値が 32kHz タイマにロードされ , タイマは "0" に達するまでのカウント
ダウンを開始します。
CUTD を "0000H" に初期化すると , アンダフローが発生し , 測定値は (FFFFH+1) ×
TOSC32 となります。
32kHz タイマは , 32kHz 発振クロックで動作します。
1 秒間の測定持続時間を達成するには , CUTD レジスタに "8000H"=32768(10 進 ) をロー
ドする必要があります。この数値は水晶の正確な発振周波数 , FOSC=32768Hz から得ら
れます。測定結果 (4.00MHz の水晶を使用する場合 ) の理想値を次の表に示します。
表 26.2-1 測定持続時間による理想的な測定結果
補正時間 (s)
CUTD 値
CUTR 値
2
0000H
7A1200H
1.75
E000H
6ACFC0H
1.5
C000H
5B8D80H
1.25
A000H
4C4B40H
1
8000H
3D0900H
0.75
6000H
2DC6C0H
0.5
4000H
1E8480H
0.25
2000H
0F4240H
STRT ビットへの "1" の書込みからハードウェアによる STRT のリセットまでにかかる
全処理時間は , 異なるクロックドメイン間の同期のために実際の補正測定時間より長
くなります。
処理時間は , (CUTD + 3) × TOSC32 となります。
正確な補正測定時間は , CUTD × TOSC32 となります。
551
第 26 章 32kHz クロック 補正ユニット
■ 4MHz タイマデータレジスタ (24 ビット ) (CUTR)
図 26.2-6 4MHz タイマデータレジスタ (24 ビット ) (CUTR) のビット構成
bit
アドレス : 000160H
リード / ライト→
初期値→
bit
15
14
13
12
11
10
9
8
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
−
(R)
(−)
7
6
5
4
3
2
1
0
TDR23 TDR22 TDR21 TDR20 TDR19 TDR18 TDR17 TDR16
アドレス : 000161H
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
リード / ライト→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
bit
15
14
13
12
11
10
9
TDR15 TDR14 TDR13 TDR12 TDR11 TDR10 TDR9
アドレス : 000162H
(R)
(R)
(R)
(R)
(R)
(R)
(R)
リード / ライト→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
bit
7
TDR7
アドレス : 000163H
(R)
リード / ライト→
(0)
初期値→
6
TDR6
(R)
(0)
5
TDR5
(R)
(0)
4
TDR4
(R)
(0)
3
TDR3
(R)
(0)
2
TDR2
(R)
(0)
1
TDR1
(R)
(0)
8
TDR8
(R)
(0)
0
TDR0
(R)
(0)
タイマデータレジスタ (CUTR) は補正結果の値 (4MHz カウンタ ) を保持します。
補正の終了は , CUCR レジスタの INT ビットと STRT ビットにより示されます。
INT を "0" から "1" に変更し , STRT を "1" から "0" に変更すると , CUTR の値が有効に
なります。
4MHz タイマデータレジスタは補正の結果を格納します。補正が開始されると , 4MHz
タイマは "0" からのカウントアップを開始します。32kHz タイマが "0" に達すると ,
4MHz タイマはカウントを停止し , ソフトウェアにより次の補正がトリガされるまでレ
ジスタは補正結果を保持します。
補正中にこのレジスタを読み出して , 得られる値はランダムです。
ソフトウェアによりこのレジスタに書き込んでも影響はありません。
4MHz タイマは , 4MHz 発振クロックで動作します。
<注意事項>
補正中にこのレジスタを読み出すと , 得られる値はランダムです。
552
第 26 章 32kHz クロック 補正ユニット
26.3
アプリケーションノート
補正の正確さ , 電力消費 , 測定時間に関するアプリケーションノートを示します。
■ 32kHz タイマデータレジスタの設定
32kHz タイマデータレジスタの設定は , 以下の方法で計算できます。
補正に 1s の持続時間が必要な場合は , "8000H"=32768Dec を 32kHz タイマデータレジス
タに設定する必要があります。これは , 32.768kHz 発振クロックの 32,768 パルスを表し
ます。
この設定により , 4MHz タイマデータレジスタ内に約 "3D0900H" の値が格納されます。
この値は , 4MHz 発振器の 4,000,000 パルスを表します。
表 26.3-1 32.768kHz 発振器と 4.0MHz 発振器による理想的な測定結果 (CUTR)
補正時間 (s)
CUTD 値
CUTR 値
2
0000H
7A1200H
1.75
E000H
6ACFC0H
1.5
C000H
5B8D80H
1.25
A000H
4C4B40H
1
8000H
3D0900H
0.75
6000H
2DC6C0H
0.5
4000H
1E8480H
0.25
2000H
0F4240H
補正モジュールを使用する場合は , 補正の精度とともに電力消費が重要です。
553
第 26 章 32kHz クロック 補正ユニット
554
第 27 章
CPU 動作検出リセット回路
CPU 動作検出リセット回路の機能と動作について
説明します。
27.1
CPU 動作検出リセット回路の概要
27.2
CPU 動作検出リセット回路のレジスタ
27.3
CPU 動作検出リセット回路の動作
27.4
CPU 動作検出リセット回路使用上の注意
555
第 27 章 CPU 動作検出リセット回路
27.1
CPU 動作検出リセット回路の概要
CPU 動作検出リセット回路は , 原発振をカウントクロックとする 20 ビットのカウン
タで , 起動後一定時間内にクリアされない場合 , 設定初期化リセットを発生します。
■ CPU 動作検出リセット回路の特長
CPU 動作検出リセット回路は , プログラム暴走対策用のカウンタです。リセット後 , 自
動で起動します。起動後は , 一定時間内で定期的にクリアし続ける必要があります。プ
ログラムが無限ループに陥るなどして , 一定時間以上クリアされない場合は内部リ
セットを発生します。
表 27.1-1 CPU 動作検出リセット回路のインターバル時間
インターバル時間
発振クロックサイクル数
約 262ms
220 サイクル
発振クロック 4MHz 動作時の値
<注意事項>
CPU が動作を停止するモードでは , 本回路は停止します。
本回路のカウンタのクリア条件を以下に示します。
• LVRC レジスタの CL ビットへの "0" 書込み
• 内部リセット
• メイン発振クロック停止 ( サブクロック使用時は必須 )
• スリープモードへの遷移
• RTC モードへの遷移
• STOP モードへの遷移
■ CPU 動作検出リセット回路のブロックダイヤグラム
CPU 動作検出リセット回路は , 次の 2 つのブロックで構成されています。
• CPU 動作検出回路
• CPU 動作検出リセット制御レジスタ (LVRC)
556
第 27 章 CPU 動作検出リセット回路
図 27.1-1 CPU 動作検出リセット回路のブロックダイヤグラム
CPU動作検出回路
カウンタ
OF
内部 リ セ ッ ト
発振クロック
F/F
クリア
RESV0 RESV0 RESV0 RESV1
CL
RESV0 RESV0 CPUF
CPU検出リセット制御レジスタ (LVRC)
内部データバス
● CPU 動作検出回路
プログラム暴走対策用のカウンタです。起動後は , 一定時間内に定期的にクリアし続け
る必要があります。
● CPU 動作検出リセット制御レジスタ (LVRC)
CPU 動作検出リセットフラグ , CPU 動作検出機能のカウンタクリアを行います。
● CPU 動作検出リセット回路のリセット要因
CPU 動作検出回路のカウンタが , 一定時間以内にクリアされなかった場合に設定初期
化リセットを発生します。
CPU 動作検出リセット回路は , メイン発振のみで使用してください。サブ発振では使
用できません。
557
第 27 章 CPU 動作検出リセット回路
CPU 動作検出リセット回路のレジスタ
27.2
CPU 動作検出リセット制御レジスタ (LVRC) は , CPU 動作検出リセットフラグ ,
CPU 動作検出回路のカウンタクリアなどを行うレジスタです。
■ CPU 動作検出リセット制御レジスタ (LVRC)
図 27.2-1 CPU 動作検出リセット制御レジスタ (LVRC)
アドレス
bit7
bit6
bit5
bit4
00057D H RESV0 RESV0 RESV0 RESV1
R/W
R/W
R/W
R/W
bit3
CL
bit2
R/W
0
1
RESV0
CL
0
1
558
:リード/ライト可能
:不定値
:初期値
bit0
RESV0 RESV0 CPUF
CPUF
R/W
X
bit1
R/W
R/W
初期値
00011000 B
R/W
CPU動作検出フラグビット
読出し時
書込み時
オーバフローしていない このビットのクリア
オーバフローした
変化なし, ほかへの影響なし
予約ビット
このビットへは必ず"0"を書き込んでください
CPU動作検出回路クリアビット
カウンタのクリア
変化なし, ほかへの影響なし
RESV1
予約ビット
このビットへは必ず"1"を書き込んでください
RESV0
予約ビット
このビットへは必ず"0"を書き込んでください
第 27 章 CPU 動作検出リセット回路
表 27.2-1 CPU 動作検出リセット制御レジスタ , 各ビット機能説明
ビット名
機能
RESV0:
予約ビット
( 注意事項 )
RESV0 ビットへは必ず "0" を書き込んでください。
RESV1:
予約ビット
( 注意事項 )
RESV1 ビットへは必ず "1" を書き込んでください。
CL:
CPU 動作検出
クリアビット
CPU 動作検出回路のカウンタクリアをするビットです。
CL ビットに "0" を書き込むと , CPU 動作検出回路のカウンタがクリアされ
ます。
リード時は常に "1" となります。
bit2
RESV0:
予約ビット
( 注意事項 )
RESV0 ビットへは必ず "0" を書き込んでください。
bit1
RESV0:
予約ビット
( 注意事項 )
RESV0 ビットへは必ず "0" を書き込んでください。
CPUF:
CPU 動作検出
フラグビット
CPU 動作検出機能のカウンタがオーバフローすると , CPUF ビットが "1"
にセットされます。
書込み時は "0" でクリアされ , "1" では CPUF ビットに影響を与えず変化し
ません。
内部リセットでは初期化されず , 外部リセット入力で初期化されます。
bit7
∼
bit5
bit4
bit3
bit0
559
第 27 章 CPU 動作検出リセット回路
27.3
CPU 動作検出リセット回路の動作
CPU 動作検出機能は , 一定間隔でカウンタをクリアしなければ内部リセットを発生
します。CPU の暴走を検出して内部リセットが発生した場合 , レジスタの内容は保
証できません。リセット解除後は動作安定待ち時間経過後 , リセットシーケンスを
実行した後にリセットベクタで指定されたアドレスからプログラムが再スタートし
ます。
■ CPU 動作検出リセット回路の動作
CPU 動作検出リセット回路は , リセット解除後 , 動作安定待ち時間を確保せずに CPU
動作検出を開始します。
560
第 27 章 CPU 動作検出リセット回路
27.4
CPU 動作検出リセット回路使用上の注意
CPU 動作検出リセット回路を使用するための注意点を示します。
■ CPU 動作検出リセット回路使用上の注意
● プログラムでの動作停止不可
CPU 動作検出リセット回路は , 電源投入後 , 連続で動作します。ソフトウェアでの動作
停止はできません。
● CPU 動作検出機能のリセット発生抑止
CPU 動作検出機能によるリセット発生を抑止するためには , 一定時間ごとにカウンタ
をクリアする必要があります。LVRC レジスタの CL ビットに "0" を書き込むことによ
りカウンタをクリアし , リセット発生を抑止することができます。
● カウンタのクリアと動作停止
CPU 動作検出機能は , CPU が動作を停止するモードでは , カウンタをクリアし , 動作を
停止します。
● DMA 転送時の CPU 動作検出リセット
D-bus 内に接続されているモジュール間の DMA 転送時は , CL ビットへの "0" 書込み不
可のため , 転送時間が連続して 262ms ( 原発振 4MHz 時 ) を超えると CPU 動作検出リ
セットを発生します。
● サブ動作モード移行時の注意
サブ動作モードに移行する場合 , メインクロックを停止するとともに , CPU 検出リセッ
ト回路をクリアしてください。
● CPU 動作検出動作モードの動作条件
• 本機能はメイン発振中でのみ使用できます。
• STOP/SLEEP/RTC モードでは本機能を使用できません。CPU 検出リセット回路をク
リアしてから移行してください。
561
第 27 章 CPU 動作検出リセット回路
562
第 28 章
フラッシュメモリ
フラッシュメモリの概要 , レジスタの構成 / 機能お
よび動作について説明します。
28.1
フラッシュメモリの概要
28.2
フラッシュメモリのレジスタ
28.3
フラッシュメモリのアクセスモード
28.4
自動アルゴリズム起動方法
28.5
自動アルゴリズム実行状態
28.6
フラッシュメモリ書込み / 消去の詳細説明
28.7
セクタプロテクトオペレーション
563
第 28 章 フラッシュメモリ
28.1
フラッシュメモリの概要
MB91F248/S には 256K バイト (2M ビット ), MB91F249/S には 512K バイト (4M
ビット ) の容量で , +3.3V 単一電源による全セクタ一括消去およびセクタ単位での消
去が可能で , FR-CPU によるハーフワード (16 ビット ) 単位での書込みが可能なフ
ラッシュメモリを内蔵しています。
■ フラッシュメモリの特長
このフラッシュメモリは , 内蔵の 3.3V 動作 256K バイト (MB91F248/S)/512K バイト
(MB91F249/S) フラッシュメモリです。当社製 2M ビット (256K × 8/128K × 16/64K ×
32) /4Mビット(512K×8/256K×16)フラッシュメモリMBM29LV200TC/MBM29LV400TC
と同じもので ( 容量 , 一部セクタ構成を除いて ) あり , ROM ライタによるデバイス外部
からの書込みも可能です。また , MBM29LV200TC/MBM29LV400TC 相当の機能に加え ,
FR-CPU の内蔵 ROM として使用する場合には , ワード (32 ビット ) 単位での命令 / デー
タ読出しが可能であり , デバイスの高速動作を実現できます。
シングルチップモードで動作するプログラムあるいは内 ROM 外バスモードで動作す
るプログラムのどちらかを選択して書き込むことができます。
本書と併せて MBM29LV200TC/MBM29LV400TC データシートを参照してください。
フラッシュメモリマクロと FR-CPU インタフェース回路の組合せにより , 以下の機能を
実現します。
• CPU のプログラム / データ格納用メモリとして機能
- ROM として使用する際は 32 ビットバス幅でアクセス可能
- CPU による読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能
• 単体フラッシュメモリ製品の MBM29LV200TC/MBM29LV400TC 相当の機能
ROM ライタによる読出し / 書込み / 消去 ( 自動プログラムアルゴリズム *) が可能
*: 自動プログラムアルゴリズム = Embedded Algorithm
本書では , FR-CPU からこのフラッシュメモリを使用する場合について解説しています。
ROM ライタからこのフラッシュメモリを使用する場合の詳細については , 別途「ROM
ライタの取扱説明書」を参照してください。
■ 自動アルゴリズム実行状態
CPU プログラミングモードにて自動アルゴリズムを起動した場合には , 内部レディ信
号 (RDY) により自動アルゴリズムの動作状態を知ることができます。このレディ信号
のレベルは , フラッシュメモリステータスレジスタの "RDY" ビットとして読み込むこ
とができます。
"RDY" ビットが "0" の期間は , 自動アルゴリズムによる書込みまたは消去が行われてお
り , 新たな書込みまたは消去コマンドを受け付けることはできません。また , フラッ
シュメモリアドレスからのデータ読出しはできません。"RDY" ビットが "0" の期間に
読み出したデータはフラッシュメモリのステータスを示すハードウェアシーケンスフ
ラグとなっています (「28.4 自動アルゴリズム起動方法」を参照 )。
564
第 28 章 フラッシュメモリ
■ ROM ライタによる書込み
このフラッシュメモリは , ROM ライタを用いてデバイス外部より書込みを行うことが
できます。この状態では , 単体フラッシュメモリ製品の MBM29LV200TC/MBM29LV
400TC 相当の端子機能がデバイス外部端子に割り当てられ , FR-CPU は動作を停止しま
す。CPU モードとはアドレス線の接続が変更され , メモリ領域内のマッピングが変化
します。詳細については「対応 ROM ライタの仕様書」を参照してください。
■ フラッシュメモリのブロックダイヤグラム
図 28.1-1 フラッシュメモリのブロックダイヤグラム (MB91F248/S)
CPU
フラッシュインタフェース
フラッシュメモリ
制御信号
制御信号
A0~A17
A-1/A0~A17
アドレス
DQ0~DQ15
DQ0~DQ15
制御信号
CPUコア
データ
制御信号 フラッシュ
ライタとの
インタ
アドレス フェース
(フラッ
シュモード
時)
データ
565
第 28 章 フラッシュメモリ
■ フラッシュメモリのセクタ構成
フラッシュメモリのアドレスマッピングは , FR-CPU からのアクセス時と ROM ライタ
でのアクセス時とでは異なります。図 28.1-2 と表 28.1-1 に FR-CPU からのアクセス時
におけるマッピングを , 図 28.1-5 に ROM ライタからのアクセス時におけるマッピング
を示します。
● FR-CPU からのアクセス時におけるマッピング
図 28.1-2 FR-CPU からのアクセス時におけるマッピング (MB91F248/S)
000F FFFFH
FFFF FFFFH
SA4(16K バイト )
SA9(16K バイト )
SA3(8K バイト )
SA8(8K バイト )
SA2(8K バイト )
SA7(8K バイト )
SA1(32K バイト )
SA6(32K バイト )
SA0(64K バイト )
SA5(64K バイト )
000F 8000H
000F 7FFFH
000F 4000H
0010 0000H
000F 3FFFH
000F FFFFH
000F 0000H
000C 0000H
フラッシュ
メモリ
256 K バイト
000E FFFFH
000E 0000H
000D FFFFH
0000 0000H
000C 0000H
bit 31
CPU モードでアクセス
する場合のバイト位置
566
16 15
0
1
0
2
3
第 28 章 フラッシュメモリ
表 28.1-1 セクタアドレス一覧 (FR-CPU からのアクセス時 ) (MB91F248/S)
セクタ
アドレス
アドレス範囲
対応ビット位置
セクタ容量
SA9
000F FFFFH ∼ 000F 8000H
bit15 ∼ bit0
16K バイト
SA8
000F 7FFFH ∼ 000F 4000H
bit15 ∼ bit0
8K バイト
SA7
000F 3FFFH ∼ 000F 0000H
bit15 ∼ bit0
8K バイト
SA6
000E FFFFH ∼ 000E 0000H
bit15 ∼ bit0
32K バイト
SA5
000D FFFFH ∼ 000C 0000H
bit15 ∼ bit0
64K バイト
SA4
000F FFFFH ∼ 000F 8000H
bit31 ∼ bit16
16K バイト
SA3
000F 7FFFH ∼ 000F 4000H
bit31 ∼ bit16
8K バイト
SA2
000F 3FFFH ∼ 000F 0000H
bit31 ∼ bit16
8K バイト
SA1
000E FFFFH ∼ 000 E 0000H
bit31 ∼ bit16
32K バイト
SA0
000D FFFFH ∼ 000C 0000H
bit31 ∼ bit16
64K バイト
567
第 28 章 フラッシュメモリ
図 28.1-3 フラッシュメモリのブロックダイヤグラム (MB91F249/S)
CPU
フラッシュインタフェース
フラッシュメモリ
制御信号
制御信号
A0~A18
A0~A18
制御信号
CPUコア
アドレス
DQ0~DQ15
DQ0~DQ15
データ
制御信号 フラッシュ
ライタとの
インタ
アドレス フェース
(フラッ
シュモード
時)
データ
図 28.1-4 FR-CPU からのアクセス時におけるマッピング (MB91F249/S)
000F FFFFH
FFFF FFFFH
000F 8000H
000F 7FFFH
000F 4000H
000F 3FFFH
0010 0000H
000F 0000H
000F FFFFH
0008 0000H
フラッシュ
メモリ
512 K バイト
000E FFFFH
000E 0000H
000D FFFFH
000C 0000H
0000 0000H
000B FFFFH
000A 0000H
0009 FFFFH
0008 0000H
SA6(16K バイト ) SA13(16K バイト )
SA5(8K バイト )
SA12(8K バイト )
SA4(8K バイト )
SA11(8K バイト )
SA3(32K バイト ) SA10(32K バイト )
SA2(64K バイト )
SA9(64K バイト )
SA1(64K バイト )
SA8(64K バイト )
SA0(64K バイト )
SA7(64K バイト )
bit 31
CPU モードでアクセス
する場合のバイト位置
568
16 15
0
1
0
2
3
第 28 章 フラッシュメモリ
表 28.1-2 セクタアドレス一覧 (FR-CPU からのアクセス時 ) (MB91F249/S)
セクタ
アドレス
アドレス範囲
対応ビット位置
セクタ容量
SA13
000F FFFFH ∼ 000F 8000H
bit15 ∼ bit0
16K バイト
SA12
000F 7FFFH ∼ 000F 4000H
bit15 ∼ bit0
8K バイト
SA11
000F 3FFFH ∼ 000F 0000H
bit15 ∼ bit0
8K バイト
SA10
000E FFFEH ∼ 000E 0000H
bit15 ∼ bit0
32K バイト
SA9
000D FFFEH ∼ 000C 0000H
bit15 ∼ bit0
64K バイト
SA8
000B FFFEH ∼ 000A 0000H
bit15 ∼ bit0
64K バイト
SA7
0009 FFFEH ∼ 0008 0000H
bit15 ∼ bit0
64K バイト
SA6
000F FFFCH ∼ 000F 8000H
bit31 ∼ bit15
16K バイト
SA5
000F 7FFCH ∼ 000F 4000H
bit31 ∼ bit15
8K バイト
SA4
000F 3FFCH ∼ 000F 0000H
bit31 ∼ bit15
8K バイト
SA3
000E FFFCH ∼ 000E 0000H
bit31 ∼ bit15
32K バイト
SA2
000D FFFCH ∼ 000C 0000H
bit31 ∼ bit15
64K バイト
SA1
000B FFFCH ∼ 000A 0000H
bit31 ∼ bit15
64K バイト
SA0
0009 FFFCH ∼ 0008 0000H
bit31 ∼ bit15
64K バイト
569
第 28 章 フラッシュメモリ
● ROM ライタからのアクセス時におけるマッピング
図 28.1-5 ROM ライタからのアクセス時におけるアドレスマッピング (MB91F248/S)
F_FFFFH
8 ビット× 2
000F FFFFH
000F C000H
SA9(16K バイト )
000F BFFFH
000F A000H
SA8(8K バイト )
000F 9FFFH
000F 8000H
SA7(8K バイト )
000F 7FFFH
000F 0000H
SA6(32K バイト )
000E FFFFH
000E 0000H
SA5(64K バイト )
000D FFFFH
000D C000H
SA4(16K バイト )
000D BFFFH
000D A000H
SA3(8K バイト )
000D 9FFFH
000D 8000H
SA2(8K バイト )
000D 7FFFH
000D 0000H
SA1(32K バイト )
000C FFFFH
000C 0000H
SA0(64K バイト )
bit15
570
bit0
1
0
バイト位置 ( ライタで書く場合 )
0
1
CPU がリードする場合
第 28 章 フラッシュメモリ
表 28.1-3 セクタアドレス一覧 (ROM ライタからのアクセス時 ) (MB91F248/S)
アドレス範囲
セクタアドレス
対応ビット位置
セクタ容量
F_FFFFH
8 ビット× 2
bit15 ∼ bit0
-
SA9(16K バイト )
000F FFFFH ∼ 000F C000H
bit15 ∼ bit0
16K バイト
SA8(8K バイト )
000F BFFFH ∼ 000F A000H
bit15 ∼ bit0
8K バイト
SA7(8K バイト )
000F 9FFFH ∼ 000F 8000H
bit15 ∼ bit0
8K バイト
SA6(32K バイト )
000F 7FFFH ∼ 000F 0000H
bit15 ∼ bit0
32K バイト
SA5(64K バイト )
000E FFFFH ∼ 000E 0000H
bit15 ∼ bit0
64K バイト
SA4(16K バイト )
000D FFFFH ∼ 000D C000H
bit15 ∼ bit0
16K バイト
SA3(8K バイト )
000D BFFFH ∼ 000D A000H
bit15 ∼ bit0
8K バイト
SA2(8K バイト )
000D 9FFFH ∼ 000D 8000H
bit15 ∼ bit0
8K バイト
SA1(32K バイト )
000D 7FFFH ∼ 000D 0000H
bit15 ∼ bit0
32K バイト
SA0(64K バイト )
000C FFFFH ∼ 000C 0000H
bit15 ∼ bit0
64K バイト
571
第 28 章 フラッシュメモリ
図 28.1-6 ROM ライタからのアクセス時におけるアドレスマッピング (MB91F249/S)
000F FFFFH
000F C000H
SA13(16K バイト )
000F BFFFH
000F A000H
SA12(8K バイト )
000F 9FFFH
000F 8000H
SA11(8K バイト )
000F 7FFFH
000F 0000H
SA10(32K バイト )
000E FFFFH
000E 0000H
SA9(64K バイト )
000D FFFFH
000D 0000H
SA8(64K バイト )
000C FFFFH
000C 0000H
SA7(64K バイト )
000B FFFFH
000B C000H
SA6(16K バイト )
000B BFFFH
000B A000H
SA5(8K バイト )
000B 9FFFH
000B 8000H
SA4(8K バイト )
000B 7FFFH
000B 0000H
SA3(32K バイト )
000A FFFFH
000A 0000H
SA2(64K バイト )
0009 FFFFH
0009 0000H
SA1(64K バイト )
0008 FFFFH
0008 0000H
SA0(64K バイト )
bit15
572
bit0
1
0
バイト位置 ( ライタで書く場合 )
0
1
CPU がリードする場合
第 28 章 フラッシュメモリ
表 28.1-4 セクタアドレス一覧 (ROM ライタからのアクセス時 ) (MB91F249/S)
アドレス範囲
セクタアドレス
対応ビット位置
セクタ容量
SA13(16K バイト )
000F FFFFH ∼ 000F C000H
bit15 ∼ bit0
16K バイト
SA12(8K バイト )
000F BFFFH ∼ 000F A000H
bit15 ∼ bit0
8K バイト
SA11(8K バイト )
000F 9FFFH ∼ 000F 8000H
bit15 ∼ bit0
8K バイト
SA10(32K バイト )
000F 7FFFH ∼ 000F 0000H
bit15 ∼ bit0
32K バイト
SA9(64K バイト )
000E FFFFH ∼ 000E 0000H
bit15 ∼ bit0
64K バイト
SA8(64K バイト )
000D FFFFH ∼ 000D 0000H
bit15 ∼ bit0
64K バイト
SA7(64K バイト )
000C FFFFH ∼ 000D 0000H
bit15 ∼ bit0
64K バイト
SA6(16K バイト )
000B FFFFH ∼ 000B C000H
bit15 ∼ bit0
16K バイト
SA5(8K バイト )
000B BFFFH ∼ 000B A000H
bit15 ∼ bit0
8K バイト
SA4(8K バイト )
000B 9FFFH ∼ 000B 8000H
bit15 ∼ bit0
8K バイト
SA3(32K バイト )
000B 7FFFH ∼ 000B 0000H
bit15 ∼ bit0
32K バイト
SA2(64K バイト )
000A FFFFH ∼ 000A 0000H
bit15 ∼ bit0
64K バイト
SA1(64K バイト )
0009 FFFFH ∼ 0009 0000H
bit15 ∼ bit0
64K バイト
SA0(64K バイト )
0008 FFFFH ∼ 0008 0000H
bit15 ∼ bit0
64K バイト
573
第 28 章 フラッシュメモリ
28.2
フラッシュメモリのレジスタ
フラッシュメモリにはフラッシュメモリステータスレジスタ (FLCR) とフラッシュ
メモリウェイトレジスタ (FLWC) の 2 つのレジスタがあります。
■ フラッシュメモリのレジスタ一覧
図 28.2-1 に , フラッシュメモリのレジスタ一覧を示します。
図 28.2-1 フラッシュメモリのレジスタ一覧
bit7
0
フラッシュメモリウェイトレジスタ (FLWC)
bit7
0
フラッシュメモリステータスレジスタ (FLCR)
表 28.2-1 アドレスマップ
レジスタ
アドレス
ブロック
+0
+1
+2
+3
007000H
FLCR[R/W] B
01XX1000
-
-
-
フラッシュ
インタフェース
007004H
FLWC[R/W] B
00000011
-
-
-
フラッシュ
インタフェース
574
第 28 章 フラッシュメモリ
■ フラッシュメモリステータスレジスタ (FLCR)
図 28.2-2 フラッシュメモリステータスレジスタ (FLCR) のビット構成
7
アドレス bit
007000H
リード / ライト
初期値
6
5
4
3
2
1
0
−
−
BIRE
−
RDY
−
WE
−
R/W
R/W
R/W
R
R
R/W
R/W
R/W
0
1
X
X
1
0
0
0
フラッシュメモリステータスレジスタ (FLCR) は , CPU に対する割込みの制御やフラッ
シュメモリへの書込みの制御を行います。CPU でのみアクセスすることが可能です。
ライタ搭載時はアクセスできません。
このレジスタは , リードモディファイライト (RMW) 系命令ではアクセスしないでくだ
さい。
以下に,フラッシュメモリステータスレジスタ(FLCR)の各ビットの機能を説明します。
[bit7] (Reserved bit)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
[bit6] (Reserved bit)
このビットは予約ビットです。このビットは常に "1" を書き込んでください。
[bit5] BIRE: Burn In ROM Enable
Burn In ROM モードにおいてフラッシュメモリと領域の重なる Burn In ROM へのア
クセスを制御します。
BIRE
機能
0
Burn In ROM へのアクセスができません
1
Burn In ROM へアクセス可能です
本ビットの設定は , BIRM (Burn In ROM) 入力が "1" のときにのみ有効です。
[bit4] (Reserved bit)
このビットは予約ビットです。このビットはリードオンリで書込みは動作に影響を
与えません。
[bit3] RDY : 自動アルゴリズムの動作状態を表示します。
RDY
機能
0
書込み / 読出し動作中で , データの書込み , 読出し , 消去コマンドの
受付けはできません
1
データの書込み , 読出し , 消去コマンドの受付けが可能です
RDY 信号は , フラッシュROM への書込みを行ってから動作状態を示すまでに 90ns
必要です。
575
第 28 章 フラッシュメモリ
フラッシュROM が書込み / 読出しを受付け可能かをチェックする信号ですので , 書
込み終了判定には使わないでください。書込み終了判定は , データポーリングで
行ってください。
[bit2] (Reserved bit)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
[bit1] WE : CPU モードにおけるフラッシュメモリへのデータおよびコマンドの書込み
を制御します。
本ビットが "0" の間は, フラッシュメモリへのデータおよびコマンドの書込みは, す
べて無効になります。また , フラッシュメモリからのデータ読出しは , 32 ビットア
クセスで行われます。
本ビットが "1" の間は , フラッシュメモリへのデータおよびコマンドの書込みが有
効となり , 自動アルゴリズムの起動が可能となります。
ただし , フラッシュメモリからのデータの読出しおよび書込みは 16 ビットアクセス
になります。フラッシュメモリへのアクセスは 16 ビットアクセスのみを使用して
ください。32 ビットおよび 8 ビットのアクセスは禁止します。
本ビットの書換えは , 必ず RDY ビットにより自動アルゴリズムが停止しているこ
とを確認してから行ってください。
RDY ビットが "0" の間 , 本ビットを書き換えることはできません。
WE
機能
0
フラッシュメモリへの書込み禁止 , および 32 ビット読出しモード
1
フラッシュメモリへの書込み許可 , および 16 ビット読出しモード
[bit0] (Reserved bit)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
■ フラッシュウェイトレジスタ (FLWC)
図 28.2-3 フラッシュウェイトレジスタ (FLWC) のビット構成
アドレス bit
007004H
リード / ライト
初期値
7
6
5
4
3
2
1
0
-
-
FAC1
FAC0
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
0
0
0
0
0
0
1
1
WTC2 WTC1 WTC0
フラッシュウェイトレジスタ(FLWC)は , CPUモードにおいてフラッシュメモリのウェ
イト制御を行います。
以下に , フラッシュウェイトレジスタ (FLWC) の各ビットの機能を説明します。
[bit7, bit6] (Reserved bit)
これらのビットは予約ビットです。これらのビットは常に "0" を書き込んでくださ
い。
576
第 28 章 フラッシュメモリ
[bit5, bit4] FAC1, FAC0 : 内部書込み信号のパルス幅制御ビット
FAC1
FAC0
ATDIN
EQIN
0
0
0.5 clock
1 clock( デフォルト )
0
1
1 clock
1.5 clock
1
0
1.5 clock
2 clock
1
1
2 clock
2.5 clock
( 注意事項 )
ATDIN, EQIN は内部書込み信号です。通常はデフォルト設定で使用してください。
[bit3] (Reserved bit)
このビットは予約ビットです。このビットは常に "0" を書き込んでください。
[bit2 ∼ bit0] WTC2 ∼ WTC0 : ウェイトサイクル制御ビット
本ビットはフラッシュアクセス時のウェイトサイクル数を制御します。
WTC2
WTC1
WTC0
ウェイト
サイクル
FLASH リード時
FLASH ライト時
0
0
0
-
設定禁止
設定禁止
0
0
1
1
33MHz まで動作可能
設定禁止
0
1
0
2
33MHz まで動作可能
設定禁止
0
1
1
3
33MHz まで動作可能 33MHz まで動作可能 ( デフォルト )
1
0
0
4
設定禁止
設定禁止
1
0
1
5
設定禁止
設定禁止
1
1
0
6
設定禁止
設定禁止
1
1
1
7
設定禁止
設定禁止
( 注意事項 )
• FAC1, FAC0 で設定したサイクル以上になるように設定してください。
• 初期値は書込み用の設定になっています。読出しのみを行う場合 (FLCR WE=0
設定の場合 )
ウェイトサイクル 1 (WTC2, WTC1,WTC 0 = 001B) と設定することで最高速で読
出しが可能になります。
577
第 28 章 フラッシュメモリ
28.3
フラッシュメモリのアクセスモード
FR-CPU によりアクセスする場合 , 以下の 2 種類のアクセスモードが存在します。
• ROM モード
32 ビット長データを一括で読み出すことができますが , 書込みはできません。
• プログラミングモード
32 ビット長アクセスは禁止されていますが , ハーフワード (16 ビット ) 長での書
込みが可能になります。
■ FR-CPU ROM モード (32/16/8 ビット , 読出しのみ )
FR-CPU の内蔵 ROM として機能するモードです。ワード (32 ビット ) 長データの一括
読出しが可能となりますが , フラッシュへの書込み , 自動アルゴリズムの起動はできま
せん。
● モードの指定方法
• フラッシュメモリステータスレジスタの WE ビットが "0" のとき , このモードとな
ります。
• CPU 動作時でのリセット解除後は常にこのモードになります。
• CPU 動作時以外ではこのモードにすることができません。
● 動作内容
フラッシュメモリ領域の読出し時 , メモリよりワード (32 ビット ) 長データを一括で読
み出します。
読出しにかかるサイクル数は 2 サイクル /1 ワード (1 ウェイト ) です。これにより FRCPU に対し , ウェイトなしで命令を供給することができます。
● 制限事項
ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。この
モードでは , フラッシュメモリへのコマンド / データともに書込みはできません。
■ FR-CPU プログラミングモード (16 ビット , 読出し / 書込み )
データの消去 / 書込みが可能になるモードです。ワード (32 ビット ) 長データの一括ア
クセスは不可能ですので,このモードで動作している間はフラッシュメモリ上のプログ
ラムは実行が不可能となります。
● モード指定の方法
• フラッシュメモリステータスレジスタ (FLCR) の WE ビットが "1" のときに , この
モードとなります。
• CPU 動作時でのリセット解除後は WE ビットが "0" になっています。このモードに
するためには "1" を書き込んでください。再度 "0" を書き込むかリセットの発生に
より WE ビットが "0" になると ROM モードに戻ります。
• フラッシュメモリステータスレジスタ (FLCR) の RDY ビットが "0" の期間は WE
ビットを書き換えることができません。RDY ビットが "1" になったことを確認して
から WE ビットを書き換えてください。
578
第 28 章 フラッシュメモリ
● 動作内容
• フラッシュメモリ領域の読出し時 , メモリよりハーフワード (16 ビット ) 長データを
一括で読み出します。
読出しにかかるサイクル数は 4 サイクル / ハーフワード (3 ウェイト ) です。
• フラッシュメモリへのコマンド書込みにより , 自動アルゴリズムを起動することが
できます。自動アルゴリズムの起動により , フラッシュメモリの消去 / 書込みが可
能となります。自動アルゴリズムの詳細については , 次ページ以降を参照してくだ
さい。
● 制限事項
• ROM ライタ書込み時とはアドレスの与え方およびエンディアンが異なります。こ
のモードではワード (32 ビット ) 長でデータを読み出すことを禁止します。
• 本モードではワード (32 ビット ) 長データを読み出すことを禁止します。
• プログラミングアクセスモード切換えで , WE ビットを書き換える際には「■フラッ
シュメモリステータスレジスタ (FLCR)」の制限事項に従って書き換えてください。
■ フラッシュメモリモード
MD2 ∼ MD0 端子を "111B" に設定してリセットをかけると , CPU は機能を停止します。
このときフラッシュメモリインタフェース回路の機能により , ポート 2 ∼ポート B の
一部の信号がフラッシュメモリ本体の制御信号と直結状態になり,外部端子からフラッ
シュメモリ本体への直接制御が可能になります。イメージとしてフラッシュメモリが
単体として外部端子に現れてくるモードであり,主にフラッシュメモリライタを用いた
書込み / 消去を行う際に設定します。このモードでは , 2M ビット /4M ビットフラッ
シュメモリの自動アルゴリズムの持つすべてのオペレーションが使用可能です。
579
第 28 章 フラッシュメモリ
■ MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応
表 28.3-1 に , MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応
を示します。
表 28.3-1 MBM29LV200TC/MBM29LV400TC とのフラッシュメモリ制御信号の対応
MB91F248/S, MB91F249/S 外部制御端子
MBM29LV200TC/
MBM29LV400TC
外部端子
フラッシュメモリモード
FR-CPU モード
通常オペレーション
VID 印加端子
RESET
RSTX
RSTX
MD1
RY/BY
なし
RY/BY
-
BYTE
内部 "H" 固定
BYTEX
-
WEX
-
OEX
MD2
CE
CEX
-
A17 ∼ A10*1
A18 ∼ A11
-
A16 ∼ A10*2
A17 ∼ A11
-
A10
MD0
A8 ∼ A0
A9 ∼ A1
-
A-1
A0
-
なし
-
D7 ∼ D0
-
WE
OE
A9
内部制御信号
+I/F 回路による制御
内部アドレスバス
DQ15 ∼ DQ8
内部データバス
DQ7 ∼ DQ0
*1:MB91F249/S
*2:MB91F248/S
580
第 28 章 フラッシュメモリ
自動アルゴリズム起動方法
28.4
フラッシュメモリに対する書込み / 消去は , フラッシュメモリ自身が持つ自動アルゴ
リズムを起動することで行います。
■ コマンドオペレーション
自動アルゴリズムを起動するには , フラッシュメモリに対し , 1 ∼ 6 回のハーフワード
(16 ビット ) データの連続書込みを実行します。これをコマンドとよびます。不正なア
ドレスとデータを書き込んだり,誤った順番でアドレスとデータを書き込んだりすると
フラッシュメモリは読出しモードにリセットされます。
表 28.4-1 に , コマンドの一覧を示します。
表 28.4-1 コマンド一覧
アク
コマンド
セス
シーケンス
回数
読出し /
リセット
読出し /
リセット
プログラム
第 1 書込み
サイクル
第 2 書込み
サイクル
第 3 書込み
サイクル
第 4 書込み /
読出しサイクル
第 5 書込み
サイクル
第 6 書込み
サイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
1
XXXXH
F0H
-
-
-
-
-
-
-
-
-
-
4
D5557H
AAH
CAAABH
55H
D5557H
F0H
RA
RD
-
-
-
-
4
D5557H
AAH
CAAABH
55H
D5557H
A0H
チップ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
PA
D5557H
PD
AAH
CAAABH
55H
D5557H
10H
セクタ消去
6
D5557H
AAH
CAAABH
55H
D5557H
80H
D5557H
AAH
CAAABH
55H
SA
30H
セクタ消去一時停止
アドレス =XXXXH, データ =B0H の入力でセクタ消去中の消去一時停止
セクタ消去再開
アドレス =XXXXH, データ =30H の入力でセクタ消去一時停止後 , 消去再開
連続モード
3
D5557H
AAH
CAAABH
55H
D5557H
20H
-
-
-
-
-
-
連続書込み
2
XXXXH
A0H
PA
-
-
-
-
-
-
-
-
連続モード
リセット
2
XXXXH
90H
XXXXH
PD
F0H or
00H
-
-
-
-
-
-
-
-
ワードモード / バイトモードともにコマンドは同じで , 表記されていないビットのデータは任意
RA:読出しアドレス
PA:書込みアドレス
SA:セクタアドレス ( セクタ内の任意の 1 アドレスを指定。表 28.1-1 を参照 )
RD:読出しデータ
PD:書込みデータ
● リード ( 読出し )/ リセットコマンド
タイミングリミット超過から読出しモードへ復帰するには , 読出し / リセットコマンド
シーケンスを発行することで行います。読出しサイクルでフラッシュメモリからデー
タを読み出します。フラッシュメモリは , ほかのコマンドが入力されるまで読出し状態
を保ちます。
フラッシュメモリは , 電源投入時 , 自動的に読出し / リセットにセットされます。この
場合は , データ読出しにコマンドは必要ありません。
581
第 28 章 フラッシュメモリ
● プログラム ( 書込み )
CPU プログラミングモードでは , ハーフワード単位を基本として書込みを行います。書
込みは 4 回のバス動作で行われます。コマンドシーケンスには 2 つの " アンロック " サ
イクルがあり , 書込みセットアップコマンドと書込みデータサイクルが続きます。そし
て , 最後の書込みサイクルでメモリへの書込みが開始されます。
自動書込みアルゴリズムコマンドシーケンス実行後は,フラッシュメモリはそれ以上の
外部からの制御を必要としません。フラッシュメモリは , 自動的に内部で作られた適切
な書込みパルスを発生し , 書き込まれたセルのマージンを検証します。自動書込み動作
は , データポーリング機能により , bit7 のデータがこのビットに書き込んだデータに一
致したとき終了し (「28.5 自動アルゴリズム実行状態 ■ハードウェアシーケンスフ
ラグ」を参照 ), このときをもって読出しモードに戻り , これ以上書込みアドレスを受
付けなくなります。この結果 , フラッシュメモリはこの時点で次の有効アドレスを要求
します。このようにデータポーリングは , メモリが書込み中であることを示します。
書込み中はフラッシュメモリに書込みされたすべてのコマンドが無視されます。もし
書込み中にハードウェアリセットが起動されると , 書き込んでいるアドレスのデータ
は保証されません。書込みはどのようなアドレスの順番でも , また , セクタの境界を越
えても可能です。書込みによって , データ 0 をデータ 1 に戻すことはできません。デー
タ 0 にデータ 1 を書き込むと , データポーリングアルゴリズムにより , 素子が不良と判
定されるか見かけ上データ 1 が書き込まれたように見えるかのどちらかです。しかし ,
リセット / 読出しモードでデータを読み出すとデータは "0" のままです。消去動作のみ
がデータ 0 をデータ 1 にすることができます。図 28.4-1 に , 書込みコマンドを使った
書込み手順を示します。
図 28.4-1 書込みコマンドを使った書込み手順
書込み開始
書込みコマンドシーケンス
デバイスのデータポーリング
次アドレス
NO
最終
アドレス?
YES
書込み完了
582
第 28 章 フラッシュメモリ
● チップ消去
チップ消去 ( 全セクタの一括消去 ) は , 6 回のアクセスで行われます。最初に , 2 つの
" アンロック " サイクルがあり , 引き続き " セットアップ " コマンドが書き込まれます。
チップ消去コマンドまでに , さらに 2 つの " アンロック " サイクルが続けられます。
チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありませ
ん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセルを消
去する前に "0" データに書き込んで検証します ( プリプログラム )。この動作中には ,
フラッシュメモリは外部からの制御は必要としません。
自動消去はコマンドシーケンス中の書込みで開始され , bit7 が "1" になったときに終了
し , このときフラッシュメモリは読出しモードに戻ります。チップ消去時間は「セクタ
消去時間×全セクタ数 + チップ書込み時間 ( プリプログラム )」となります。
図 28.4-2 に , チップ消去コマンドを使ったチップ消去手順を示します。
● セクタ消去
セクタ消去は , 6 回のアクセスで行われます。
2 つの " アンロック " サイクルがあり , 引
き続き " セットアップ " コマンドを書き込み , その後さらに 2 つの " アンロック " サイ
クルが続き , 6 サイクル目にセクタ消去コマンドを入力することによりセクタ消去が始
まります。最後のセクタ消去コマンドの書込みから 50μs のタイムアウト期間中 , 次の
セクタ消去コマンドの受付けが可能です。
複数のセクタ消去は前述したような 6 つのバスサイクルを書き込むことで同時に受付
け可能となります。このシーケンスは同時に消去するセクタのアドレスにセクタ消去
コマンド (30H) を引き続き書き込むことで行います。最後のセクタ消去コマンドの書込
みから 50μs のタイムアウト期間終了により , セクタ消去が開始されます。すなわち ,
複数のセクタを同時に消去する場合には , 次の消去セクタをそれぞれ 50μs 以内に入力
する必要があり , それ以降ではコマンドは受け付けられないことがあります。引き続く
セクタ消去コマンドが有効かどうかは bit3 にてモニタ可能です (「28.5 自動アルゴリ
ズム実行状態 ■ハードウェアシーケンスフラグ」を参照 )。
タイムアウト中のセクタ消去コマンドまたは消去一時停止以外のいかなるコマンドも
読出しにリセットし , その前のコマンドシーケンスは無視します。この場合は , そのセ
クタを再度消去することにより消去が完了します。セクタ消去バッファへのセクタア
ドレス入力は , セクタのどのような組合せや数 (0 ∼ 6) からでも実行可能です。セクタ
消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありません。フ
ラッシュメモリは自動的に消去されるセクタ内のすべてのセルに書込みを行います
( プリプログラム )。また , セクタ消去中はほかの消去されないセクタは何の影響も受
けません。これらの動作中は , フラッシュメモリは外部からの制御は必要としません。
自動セクタ消去は , 最後のセクタ消去コマンドの書込みから 50μs のタイムアウト期間
の後に開始され , bit7 のデータが "1" になったとき (「28.5 自動アルゴリズム実行状態
■ハードウェアシーケンスフラグ」を参照 ) 終了し , フラッシュメモリは読出しモー
ドに戻ります。ほかのコマンドは無視されます。データポーリングは消去されたセク
タ内のどのアドレスでも働きます。複数セクタ消去時間は「( セクタ消去時間 + セクタ
書込み時間 ( プリプログラム )) ×消去セクタ数」となります。
図 28.4-2 に , チップ消去コマンドを使ったチップ消去手順を示します。
583
第 28 章 フラッシュメモリ
図 28.4-2 チップ消去コマンドを使ったチップ消去手順
消去開始
チップ消去/セクタ消去
コマンドシーケンス
デバイスのデータポーリング
またはトグルビットの完了
書込み完了
● 消去一時停止
消去一時停止コマンドは,ユーザがセクタ消去中にフラッシュメモリの自動アルゴリズ
ムを一時停止して,消去中でないセクタからのデータ読出しと書込みを可能にするもの
です。このコマンドはセクタ消去中のみ有効で , チップ消去や書込みの動作中は無視さ
れます。消去一時停止コマンド (B0H) はセクタ消去コマンド (30H) 後のセクタ消去タイ
ムアウト期間を含むセクタ消去動作中にのみ有効です。このコマンドがタイムアウト
期間中に入力されると直ちにタイムアウトを終了し , 消去動作を中断します。消去再開
コマンドが書き込まれると消去動作が再開されます。消去一時停止 , 消去再開コマンド
の入力の際のアドレスは任意であってかまいません。
セクタ消去動作中に消去一時停止コマンドが入力されると,フラッシュメモリが消去動
作を停止するために最大 20μs の時間がかかります。フラッシュメモリが消去一時停止
モードに入ると , レディ / ビジー出力と bit7 が "1" を出力し , bit6 がトグル動作をやめ
ます。消去しているセクタのアドレスを入力し , bit6 と bit7 の読出し値をモニタするこ
とによって , 消去動作を停止しているかどうかを確かめられます。さらに , 消去一時停
止コマンドの書込みは無視されます。消去動作が停止したとき , フラッシュメモリは消
去一時停止読出しモードになります。このモードでのデータの読出しはデータが消去
一時停止していないセクタに有効となりますが , それ以外は標準的な読出しと同じで
す。消去一時停止読出し中 , その消去一時停止したセクタからの連続的な読出しに対し
ては , bit2 はトグル動作をします (「28.5 自動アルゴリズム実行状態 ■ハードウェア
シーケンスフラグ」を参照 )。
消去一時停止読出しモードに入った後,ユーザは書込みのコマンドシーケンスを書き込
むことによりフラッシュメモリに書込みができます。この書込みモードは , 消去一時停
止書込みモードとなります。このモードでの書込みは , データが消去一時停止していな
いセクタに有効となりますが , それ以外は通常のバイト書込みと同じです。消去一時停
止書込みモード中,その消去一時停止したセクタからの連続的な読出しに対しては,bit2
はトグル動作をします。消去一時停止ビット (bit6) によって検出できます。
( 注意事項 )
bit6 はどんなアドレスに対しても読出し可能ですが , bit7 は書込みアドレスに対し
て読出しを行わなければなりません。セクタ消去動作を再開するためには , 再開コ
マンド (30H) を入力する必要があります。この時点でさらに再開コマンドを入力し
ても無視されます。他方 , 消去一時停止コマンドはフラッシュメモリが消去再開し
た後に入力することができます。
584
第 28 章 フラッシュメモリ
28.5
自動アルゴリズム実行状態
このフラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため ,
フラッシュメモリ内部の動作状態や動作完了したことをフラッシュメモリ外部に知
らせるハードウェアを持ちます。1 つはレディ / ビジー信号 , もう 1 つはハードウェ
アシーケンスフラグです
■ レディ / ビジー信号 (RDY/BUSYX)
フラッシュメモリは内部の自動アルゴリズムが実行中か終了したかを知らせる手段と
して , ハードウェアシーケンスフラグのほかに , レディ / ビジー信号を持っています。
このレディ / ビジー信号はフラッシュメモリインタフェース回路に接続され , フラッ
シュメモリステータスレジスタの RDY ビットとして読み出すことが可能です。また ,
このレディ/ ビジー信号の立上りにより , CPU に対して割込み要求を発生することも可
能です (「28.1 フラッシュメモリの概要」を参照 )。
RDY ビットの読出し値が "0" のとき , フラッシュメモリは書込みまたは消去動作中で
す。このときは書込みコマンドも消去コマンドも受け付けません。RDY ビットの読出
し値が "1" のときフラッシュメモリは読出し / 書込みまたは消去動作待ちの状態です。
■ ハードウェアシーケンスフラグ
ハードウェアシーケンスフラグは,自動アルゴリズム実行中にフラッシュメモリの任意
のアドレス ( バイトアクセス時は奇数アドレス ) を読み出すことによりデータとして得
られます。データのうち , 有効ビットは 5 ビットで , それぞれが自動アルゴリズムの状
態を示します。図 28.5-1 に , ハードウェアシーケンスフラグの構成を示します。
図 28.5-1 ハードウェアシーケンスフラグの構成
ハードウェア読出し時
bit 15
8 7
( 不定 )
0
ハードウェアシーケンスフラグ
bit 7
バイト読出し時 ( 奇数アドレスのみ )
0
ハードウェアシーケンスフラグ
ハーフワード , バイトアクセス時
bit
7
6
5
4
3
2
1
0
DPOLL
TOGGLE
TLOVER
不定
SETIMR
TOGGL2
不定
不定
なお , これらのフラグについては FR-CPU ROM モード時に意味を持ちません。必ず FRCPU プログラミングモードのみで , ハーフワードまたはバイト読出しを行ってくださ
い。
585
第 28 章 フラッシュメモリ
表 28.5-1 に , ハードウェアシーケンスフラグ状態一覧を示します。
表 28.5-1 ハードウェアシーケンスフラグ状態一覧
状
自動書込み動作
自動消去時の書込み / 消去動作
実行中
消去
一時
停止
タイム
リミット
超過
DPOLL
(bit7)
TOGGLE
(bit6)
TLOVER
(bit5)
SETIMR
(bit3)
TOGGL2
(bit2)
反転データ
0
トグル
0
0
1
トグル
態
1
1
トグル
1
0
読出し ( 消去中のセクタ )
0
0
トグル
読出し ( 消去していないセクタ )
データ
データ
データ
データ
データ
トグル
0
0
自動書込み動作
反転データ
トグル
1
0
1*1
1
自動消去時の書込み / 消去動作
0
トグル
1
1
*2
書込み ( 消去していないセクタ ) 反転データ
*1: 消去一時停止書込み中 , その書込みされているアドレスの読出しに対し , bit2 は論理 "1" を出力
します。しかし , 消去一時停止しているセクタからの連続的な読出しに対し bit2 はトグル動作を
します。
*2: bit5 が "1" のとき ( タイムリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対しては
bit2 はトグル動作をし , ほかのセクタへの読出しに対してはトグル動作しません。
以下に , 各ビットの説明をします。
[bit7]DPOLL: データポーリング
• 自動書込み動作中
自動書込みアルゴリズム実行中に読出しを行うと , フラッシュメモリは bit7 に最
後に書き込まれたデータの反転データを出力します。自動書込みアルゴリズム終
了時に読出しアクセスを行うと , フラッシュメモリはアドレス信号の指し示す番
地の読出しデータの bit7 を出力します。
• 自動消去動作中
自動消去アルゴリズム実行中に読出しを行うと , フラッシュメモリはアドレス信
号の指し示す番地によらず "0" を出力します。同様に終了時には "1" を出力しま
す。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと,フラッシュメモリはアドレス信号の指し
示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属
さないのであれば , アドレス信号の指し示す番地の読出し値の bit7 を出力します。
後述の bit6 のトグルビットとともに参照することで , 現在セクタ消去一時停止状態
にあるか否か , どのセクタが消去中であるかの判定が可能です。
( 注意事項 )
自動アルゴリズムの動作が終了に近づくと , bit7( データポーリング ) は読出し動作
中 , 非同期的に変化します。これはフラッシュメモリが動作状態の情報を bit7 に送
り出し , そして確定したデータをその次に送り出すことを意味します。フラッシュ
メモリが自動アルゴリズムを終了したとき , また , bit7 が確定データを出力している
ときでも , ほかのビットはまだ不確定です。ほかのビットの確定データは , 連続し
た読出しの実行によって読み出されます。
586
第 28 章 フラッシュメモリ
[bit6]TOGGLE: トグルビット
• 自動書込み / 消去動作中
自動書込みまたは消去アルゴリズム実行中に連続した読出しを行うと , フラッ
シュメモリは "1" と "0" をトグルする結果を bit6 に出力します。自動書込みまた
は消去アルゴリズムが終了すると , 連続した読出しに対して bit6 のトグル動作を
やめ , 有効なデータを出力します。
トグルビットは各コマンドシーケンスの差以後の書込みサイクルの後から有効
になります。
なお , 書込みの際 , 書き込もうとしたセクタが書換え保証されているセクタの場
合は , 約 2μs の間トグル動作した後 , データに書き換えることなくトグル動作を
終わります。消去の際 , もし選択されたすべてのセクタが書込み保証されている
場合には , トグルビットは約 100μs トグル動作をし , その後データを書き換えな
いで読出しモードに戻ります。
• セクタ消去一時停止中
セクタ消去一時停止中に読出しを行うと , フラッシュメモリはアドレス信号の指
し示す番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタ
に属さないのであれば , アドレス信号の指し示す番地の読出し値の bit6 を出力し
ます。
[bit5]TLOVER: タイミングリミット超過
自動書込み / 消去動作中
bit5 は自動アルゴリズムの実行がフラッシュメモリ内部に規定された時間
( 内部パルス回数 ) を超えてしまったことを示します。この状態において bit5 は
"1" を出力します。すなわち , 自動アルゴリズムが動作中で , このフラグが "1" を
出力した場合は , 書込みまたは消去が失敗したことを示します。
bit5 は , 消去することなく非ブランクの部分に書き込もうとすると , フェイルと
なります。この場合 , bit7( データポーリング ) から確定データを読むことができ
ず , bit6( トグルビット ) はトグリングしたままとなります。この状態でタイムリ
ミットを超えると , bit5 に "1" が出力されます。この場合は , フラッシュメモリ
が不良なのではなく , 正しく使用されなかったということを表していることに注
意してください。もし , この状態が発生したときには , リセットコマンドを実行
してください。
587
第 28 章 フラッシュメモリ
[bit3]SETIMR: セクタ消去タイマ
セクタ消去動作中
最初のセクタ消去コマンドシーケンス実行後 , セクタ消去ウェイト期間中になりま
す。bit3 は , この期間中 "0" を , セクタ消去ウェイト期間を超えてしまっている場合
は "1" を出力します。データポーリングとトグルビットは最初のセクタ消去コマン
ドシーケンスの実行後から有効となります。
データポーリング機能やトグルビット機能により,消去アルゴリズムが実行中を示し
ている場合にこのフラグが "1" であれば , 内部で制御される消去が始まっており , 続
けてのコマンドライトはデータポーリングかトグルビットが消去の終了を示すまで
無視されます ( 消去一時停止コードの入力のみ受付けます )。このフラグが "0" の場
合 , フラッシュメモリは追加のセクタ消去コードの書込みを受付けます。このことを
確認するために,引き続くセクタ消去コードの書込みに先立ってソフトウェアでこの
フラグの状態をチェックすることを推奨します。もし , 2 回目の状態チェックで "1"
であったなら , 追加セクタ消去コードは受け付けられていない可能性があります。セ
クタ消去一時停止中に読出しを行うと,フラッシュメモリはアドレス信号の指し示す
番地が消去中のセクタに属するならば "1" を出力します。消去中のセクタに属さない
のであれば , アドレス信号の指し示す番地の読出し値の bit3 を出力します。
[bit2]TOGGL2: トグルビット 2
セクタ消去動作中
このトグルビットは , bit6 のトグルビットに加えて , フラッシュメモリが自動消
去動作中であるか , 消去一時停止中であるかを検出することに使われます。自動
消去中に消去しているセクタから連続して読出しを行うとbit2がトグル動作をし
ます。フラッシュメモリが消去一時停止読出しモードならば , 消去一時停止して
いるセクタから連続して読出しを行うと bit2 はトグル動作をします。
フラッシュメモリが消去一時停止書込みモードのときは , 消去一時停止していな
いセクタからアドレスを連続して読み出すと bit2 は "1" が読み出されます。bit6
は bit2 と違い , 通常の書込み , 消去または消去一時停止書込み動作中にのみトグ
ル動作をします。
例えば , bit2 と bit6 は , 消去一時停止読出しモードを検出するために , 一緒に使わ
れます (bit2 はトグル動作をするが , bit6 はトグル動作をしない )。さらに bit2 は
消去しているセクタの検出にも使われます。フラッシュメモリが消去動作のとき
は , bit2 は消去しているセクタからの読出しならばトグル動作をします。
588
第 28 章 フラッシュメモリ
■ ハードウェアシーケンスフラグの使用例
先に述べたハードウェアシーケンスフラグを用いることで,フラッシュメモリ内部の自
動アルゴリズムの状態判定が可能です。例として図 28.5-2, 図 28.5-3 に , 書込み / 消去
判定のフローチャートを , それぞれデータポーリング機能を用いた場合と , トグルビッ
ト機能を用いた場合について示します。
図 28.5-2 データポーリング機能を用いた書込み / 消去判定のフローチャート
書込み/消去開始
VA = 書込みアドレス
読出し(D0~D7)
アドレス=VA
YES
D7=Data ?
= セクタ消去動作に消去されてい
るセクタのアドレス
= チップ消去動作中に保護されて
いないセクタアドレス
* : D7はD5と同時に変わるので
D5=1であっても D7は再チェック
する必要が あります。
NO
NO
D5=1 ?
YES
読出し(D0~D7)
アドレス=VA
D7=Data ?
*
YES
NO
書込み/消去
失敗
書込み/消去
完了
589
第 28 章 フラッシュメモリ
図 28.5-3 トグルビット機能を用いた書込み / 消去判定のフローチャート
書込み/消去開始
読出し(D0~D7)
アドレス= "H" または "L"
D6=トグル ?
NO
YES
NO
D5=1 ?
YES
読出し(D0~D7)
アドレス= "H" または "L"
D6=トグル
?
NO
YES
書込み/消去
失敗
書込み/消去
完了
D5 が "1" に変わるのと同時に D6 はトグル動作をやめるので ,
D5=1 であっても , D6 は再チェックする必要があります。
590
第 28 章 フラッシュメモリ
28.6
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ
ぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の手順
フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , 消去再開の動作がコマンドシーケンス ( 表 28.4-1 を参照 ) のバスへのライト
サイクルを行うことで自動アルゴリズムを実行することが可能です。それぞれのバス
へのライトサイクルは必ず続けて行う必要があります。また , 自動アルゴリズムはデー
タポーリング機能などで終了時を知ることができます。正常終了後は読出し / リセッ
ト状態に戻ります。
各動作について , 下記の順に示します。
1. 読出し / リセット状態にする
2. データを書き込む
3. 全データを消去する ( チップ全消去 )
4. 任意のデータを消去する ( セクタ消去 )
5. セクタ消去を一時停止する
6. セクタ消去を再開する
■ フラッシュメモリの読出し / リセット状態
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 28.41 を参照 ) の読出し / リセットコマンドを , フラッシュメモリ内の対象セクタに続けて
送ることで実行可能です。
読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態はほかのコ
マンドの入力待ち状態です。
読出し/リセット状態では通常のリードアクセスでデータを読み出せます。マスクROM
と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに
このコマンドは必要ありません , 何らかの理由でコマンドが正常に終了しなかったと
きなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。
■ フラッシュメモリのデータ書込み
フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス ( 表 28.4-1 を参照 ) の書込みコマンドをフラッシュメモリ内の対象セクタに続けて
送ることで実行可能です。4 サイクル目に目的のアドレスへのデータライトが終了した
時点で , 自動アルゴリズムが起動され自動書込みが開始します。
591
第 28 章 フラッシュメモリ
● アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で
す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ
スへのワードデータ単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも , また , セクタの境界を越えても可能ですが ,
1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。
● データ書込み上の注意
書込みによって , データ "0" をデータ "1" に戻すことはできません。データ "0" にデー
タ "1" を書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が
終了せず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミング
リミット超過フラグ (DQ6) がエラーと判定するか , あるいは見かけ上データ "1" が書き
込まれたように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデー
タを読み出すとデータは "0" のままです。消去動作のみが "0" データを "1" にすること
ができます。
自動書込み実行中はすべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書き込んでいるアドレスのデータは保証されませんので注意
が必要です。
● フラッシュメモリ書込み手順
図 28.6-1 にフラッシュメモリ書込みの手順の例を示します。
ハードウェアシーケンスフラグ (「28.5 自動アルゴリズム実行状態」を参照 ) を用いる
ことでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書
込み終了の確認にデータポーリングフラグ (DQ7) を用いています。
フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出
しとなります。
データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変
わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ
ングフラグビット (DQ7) は再チェックする必要があります。
トグルビットフラグ (DQ6) でも同様にタイミングリミット超過フラグビット (DQ5) が
"1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再
チェックする必要があります。
592
第 28 章 フラッシュメモリ
図 28.6-1 フラッシュメモリ書込み手順の例
書込み開始
FLCR:WE(bit1)
フラッシュメモリ書込み
許可
書込みコマンドシーケンス
①D5557H←AA H
②CAAABH←55 H
③D5557H←A0 H
④書込みアドレス←書込みデータ
内部アドレスリード
データポーリング
(DQ7)
次アドレス
Data
Data
0
タイミングリミット
(DQ5)
1
内部アドレスリード
Data
データポーリング
(DQ7)
Data
書込みエラー
最終アドレス
FLCR:WE(bit1)
フラッシュメモリ書込み禁止
ハードウェアシーケンス
書込み完了
フラグによる確認
■ フラッシュメモリのデータを消去する ( チップ消去 )
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「28.4
自動アルゴリズム起動方法」を参照 ) のチップ消去コマンドを , フラッシュメモリ内の
対象セクタに続けて送ることで実行可能です。
チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目の書込みが完了した
時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ
モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ
メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。
593
第 28 章 フラッシュメモリ
■ フラッシュメモリの任意データ消去 ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス (「28.5 自
動アルゴリズム実行状態」を参照 ) のセクタ消去コマンドを , フラッシュメモリ内の対
象セクタに続けて送ることで実行可能です。
● セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書込みすること
により 50μs のセクタ消去ウェイトが開始します。複数のセクタ消去を行う場合は , 上
記の処理に引き続き消去する目的のセクタ内のアドレスに消去コード(30H)を書込みし
ます。
● 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから 50μs のセクタ消去ウェイト期間終了により消去
が開始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアド
レスと消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力す
る必要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去
コードのライトが有効かどうかはセクタ消去タイマ ( ハードウェアシーケンスフラグ
DQ3) によって調べることができます。
なお , このときセクタ消去タイマをリードするアドレスは , 消去しようとしているセク
タを指すようにします。
● フラッシュメモリのセクタ消去手順
ハードウェアシーケンスフラグ (「28.5 自動アルゴリズム実行状態」を参照 ) を用いる
ことでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図 28.6-2 に
フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の確認にトグ
ルビットフラグ (DQ6) を用いています。
フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出
しとなりますので注意が必要です。
トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる
のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が
"1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。
データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と
同時に変わるので , データポーリングフラグを再チェックする必要があります。
594
第 28 章 フラッシュメモリ
図 28.6-2 フラッシュメモリのセクタ消去手順の例
消去開始
FLCR:WE(bit1)
フラッシュメモリ消去許可
消去コマンドシーケンス
①D5557H ←AA H
②CAAABH←55 H
③D5557H ←80 H
④D5557H ←AA H
⑤CAAABH←55 H
1
セクタ消去タイマ(DQ3)
0
⑥消去セクタへコード入力(30H)
内部アドレスリード
YES
消去セクタがほかにあるか
NO
内部アドレスリード
1
内部アドレスリード
2
トグルビット(DQ6)
データ1(DQ6)=データ
2(DQ6)
次セクタ
YES
NO
0
タイミングリミット
(DQ5)
1
NO
内部アドレスリード
1
内部アドレスリード
2
トグルビット(DQ6)
データ1(DQ6)=データ2(DQ6)
YES
消去エラー
最終セクタ
NO
YES
FLCR:WE(bit1)
フラッシュメモリ消去禁止
ハードウェアシーケンス
フラグによる確認
消去完了
595
第 28 章 フラッシュメモリ
■ フラッシュメモリセクタ消去の一時停止
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス (「28.4 自動
アルゴリズム起動方法」を参照 ) のセクタ消去一時停止コマンドをフラッシュメモリ
内に送ることで実行可能です。
セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込
みはできません。このコマンドは消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み動作中は無視されます。
消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレスは
フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の
消去一時停止コマンドは無視されます。
セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセ
クタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去
ウェイト期間後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大
20μs の時間の後 , 消去一時停止状態に入ります。セクタ消去一時停止コマンドは , セク
タ消去コマンドあるいはセクタ消去再開コマンド発行後 , 20μs 以上後に行ってくださ
い。
■ フラッシュメモリセクタ消去の再開
一時停止したセクタ消去を再開させるには , コマンドシーケンス (「28.4 自動アルゴリ
ズム起動方法」を参照 ) のセクタ消去再開コマンドをフラッシュメモリ内に送ること
で実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態からセクタ消去を再開するためのコマンドです。このコマンドは消去再開コード
(30H) の書込みを行うことで実施されますが , このときのアドレスはフラッシュメモリ
領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
596
第 28 章 フラッシュメモリ
28.6.1
フラッシュメモリ使用上の注意
MB91F248/MB91F249 のフラッシュメモリに関する注意を以下に示します。
■ フラッシュメモリ使用上の注意
● リセット (INITX) の入力
読出し中で自動アルゴリズムが起動していないときにリセットを入力するには , "L" レ
ベル幅として最低 500ns を確保する必要があります。この場合 , リセット起動後フラッ
シュメモリからデータを読み出すまでに , 最低 500ns が必要となります。同様に , 書込
み / 消去中で自動アルゴリズムが起動しているときにリセットを入力するには , "L" レ
ベル幅として最低 500ns を確保する必要があります。この場合 , フラッシュメモリを初
期化するために実行中の動作を停止した後 , データを読み出すまでに 20μs が必要とな
ります。
書込み中にリセットすると , 書き込まれているデータは不定となります。消去中のハー
ドウェアリセットや電源切断により , 消去されているセクタは使用不可となる可能性
があります。
● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し
CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ
状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。これは , リ
セット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリズムが
続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリユニッ
トが読出し状態になることが妨げられる可能性があるためです。これらのリセット条
件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。
● フラッシュメモリへのプログラムアクセス
自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。
CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム
領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。
この場合 , 割込みベクタを含むセクタ (SA6) が消去されると , 書込み / 消去割込み処理
を実行できません。
同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込
みソースは無効となります。
● ホールド機能
CPU がホールド要求を受け付けたとき , フラッシュメモリユニットの書込み信号 WE
は歪曲され , 不正な書込みによる不正な書込み / 消去が可能になります。ホールド要求
の受付けが許可されたとき , コントロールステータスレジスタ (FLCR) の WE ビットが
必ず "0" になっているようにしてください。
● VID の適用
セクタプロテクト動作に必要な VID の印加は , 電源が ON のとき開始し , 終了する必要
があります。
597
第 28 章 フラッシュメモリ
28.7
セクタプロテクトオペレーション
このフラッシュメモリには不正な書込み / 消去に対し , セクタ単位でこれを無効にす
るセクタ保護機能があります。一度保護設定されたセクタはデバイスが破壊しない
限り , その設定を持ち続けますが , 一時的であれば保護を解除し , 書込み / 消去を行
うことも可能です。これらの操作はセクタプロテクトオペレーションを通して行わ
れます。
セクタプロテクトオペレーションには書込み / 消去のような自動アルゴリズムはあり
ません。また , 通常モードには対応せず , フラッシュメモリモードでのみ実行可能で
す。
このため , 主にフラッシュメモリライタを用いた外部端子制御で行われるべきもの
です。
■ セクタプロテクトオペレーション一覧
セクタプロテクトオペレーションには , 以下の 3 種類があります。
• イネーブルセクタプロテクト
• ベリファイセクタプロテクト
• セクタプロテクト一時解除
表 28.7-1 に , それぞれの端子設定を示します。
表 28.7-1 端子設定
オペレーション
CEX
OEX
WEX
A1
イネーブル
セクタプロテクト
"L"
"H"
"L"
"L" "H" "L"
セクタ
アドレス
-
ベリファイ
セクタプロテクト
"L"
"L"
"H"
"L" "H" "L"
セクタ
アドレス
セクタプロテクト
一時解除
-
-
-
-
-
A2
-
A7
-
A17 ∼ A13 D0 ∼ D15 RSTX
MD2
MD1
MD0
"H"
VID
"H"
VID
コード
出力 *
"H"
"H"
"H"
VID
-
"H"
"H"
VID
"H"
*:セクタプロテクト時は "01H", セクタアンプロテクト時は "00H" を出力
598
第 28 章 フラッシュメモリ
■ イネーブルセクタプロテクト
イネーブルセクタプロテクトでは,フラッシュメモリ内部の保護回路への書込みを行い
ます。
このオペレーションにより 10 個のセクタのどのセクタの組合せでも書込みも消去も無
効にすることができます。
なお , MB91F248/MB91F249 ではすべてのセクタが保護解除された状態で出荷されま
す。このオペレーションでは , まずアドレス信号に保護すべきセクタのセクタアドレス
(MB91F248: A17, A16, A15, A14, A13, MB91F249: A18, A17, A16, A15, A14, A13) の設定
が必要となります。セクタとセクタアドレスの対応は , 表 28.1-1 を参照してください。
保護回路の書込みは , MD2 と MD0 に VID(=12V) を印加し , CEX=0 にした後 , WEX パ
ルスの立下りで開始され , 立上りで終了します。
なお , セクタアドレスは WEX パルスの間中一定に保たなければなりません。セクタ保
護は一度設定されると , 取り消すことができません。また , 保護されたセクタへは , こ
れ以降書込み / 消去は不可能となります。
■ ベリファイセクタプロテクト
ベリファイセクタプロテクトでは,フラッシュメモリ内部の保護回路の書込みに対する
検証 ( ベリファイ ) を行います。このオペレーションでは , まず CEX と OEX を "0" に
し , WEX を "1" にしたまま MD0 に VID を印加 ( マージンモード ) します。(A7, A2,
A1)=(0, 1, 0) の条件で , アドレス信号をあるセクタアドレスにして読み出すと , 保護さ
れたセクタでは出力 DQ0 に "1" が出力されます。保護されていないセクタでは ,
"00H" が読み出されます。図 28.7-1 に , イネーブルセクタプロテクト , ベリファイセク
タプロテクトを用いたセクタ保護のアルゴリズムを示します。
599
第 28 章 フラッシュメモリ
図 28.7-1 イネーブルセクタプロテクトおよびベリファイセクタプロテクトを用いたセクタ保護
アルゴリズム
開始
セクタアドレスのセットアップ
A17~A13
PLSCNT=1
MD2=MD0=VID, MD1="H"
A1=CEX=WEX="L"
OEX=RSTX="H"
WEXパルス印加
WEX=MD2="H "
CEX=OEX="L"
(MD0はVIDのまま)
セクタアドレスSAの読出し
(アドレス=SA、A1="L"
A2="H",A7="L")
NO
NO
データ=01H ?
YES
PLSCNT=50 ?
YES
ほかにセクタ保護?
MD0のVIDを解除
リセットコマンドの書込み
NO
MD0のVIDを解除
リセットコマンドの書込み
Fail
セクタ保護完了
600
YES
第 28 章 フラッシュメモリ
■ セクタプロテクト一時解除
イネーブルセクタプロテクトにより保護されたセクタはデバイスが破壊しない限り,書
込み / 消去ができませんが , セクタプロテクト一時解除のオペレーションでは , 以前に
設定されたセクタ保護情報の一時的解除を可能にします。このオペレーションは , MD1
に VID を印加し続けることで設定されます。この間 , 以前に設定されたセクタ保護情
報は無視され , すべてのセクタに書込み / 消去が可能となります。MD1 を "1" (=3.3V)
に戻すと , このオペレーションは解除され , 以前に保護されたすべてのセクタが再び保
護されます。図 28.7-2 に , セクタプロテクト一時解除のアルゴリズムを示します。
図 28.7-2 セクタプロテクト一時解除のアルゴリズム
開始
MD1=VID*1
消去または書込み動作実行
MD1="H"
セクタ保護解除終了*2
*1:すべての保護されたセクタの保護を解除します。
*2:前に保護されていたセクタが再びセクタ保護されます。
601
第 28 章 フラッシュメモリ
602
第 29 章
シリアル書込み接続例
シリアル書込み基本構成 , シリアルオンボード書込
みに使用する端子 , シリアル書込み接続例 , および
フラッシュマイコンプログラマシステム構成につ
いて説明します。
29.1
MB91F24x/S シリアル書込み接続例
29.2
MB91F24x/S シリアル書込み ( 非同期 ) 接続例
603
第 29 章 シリアル書込み接続例
29.1
MB91F24x/S シリアル書込み接続例
MB91F24x/S ではフラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ
ポートしています。
■ MB91F24x/S シリアル書込み基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220/
AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。
図 29.1-1 MB91F24x/S シリアル書込み接続の基本構成
ホストインタフェースケーブル (AZ201)
汎用共通ケーブル (AZ210)
RS232C
AF200
フラッシュマイ
コンプログラマ
+
メモリカード
CLK 同期シリアル
MB91F24x/S
ユーザシステム
スタンドアロンで動作可能
<注意事項>
AF200 フラッシュマイコンプログラマの機能・操作方法および接続用汎用共通ケーブル
(AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株式会社にお問い合わ
せください。
604
第 29 章 シリアル書込み接続例
■ 富士通標準シリアルオンボード書込みに使用する端子
表 29.1-1 富士通標準シリアルオンボード書込みに使用する端子の機能
端 子
機 能
MD2, MD1,
MD0
補足説明
フラッシュマイコンプログラマから書込みモードに
制御します。
フラッシュシリアル書込みモード:MOD2, MOD1,
MOD0=100B
モード端子
( 参考 ) シングルチップモード:MOD2, MOD1,
MOD0=000B
X0, X1
発振用端子
書込みモード時に , CPU 内部動作クロックは PLL ク
ロック 1 逓倍となっています。したがって , 発振ク
ロック周波数が , 内部動作クロックとなりますので ,
シリアル書換え時に使用する発振子は 1MHz ∼ 16MHz
となります。
P10, P11
書込みプログラム起動端子
P10 に "L" レベル , P11 に "H" レベルを入力してくだ
さい。
INITX
リセット端子
SIN0
シリアルデータ入力端子
SOT0
シリアルデータ出力端子
SCK0
シリアルクロック入力端子
−
UART をクロック同期モードとして使用します。
VCC
電源電圧供給端子
書込み電圧をユーザシステムから供給する場合には
フラッシュマイコンプログラマとの接続は必要あり
ません。
接続時にはユーザ側の電源と短絡しないようにして
ください。
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にし
ます。
<注意事項>
P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御
回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書
込み中はユーザ回路を切り離すことができます。接続例を参照 )。
AF200
書込み制御端子
MB91F24x/S
書込み制御端子
AF200
/TICS端子
ユーザ回路
605
第 29 章 シリアル書込み接続例
■ シリアル書込み接続例 ( ユーザ電源使用時 )
ユーザ電源使用時におけるシリアル書込み接続例を下記に示します。
なお , モード端子 MOD2, MOD0 にはフラッシュマイコンプログラマ (AF200) の TAUX3,
TMODE より MOD2 = 1, MOD0 = 0 が入力されます ( シリアル書換えモード:MOD2,
MOD1, MOD0 = 100B)。
図 29.1-2 MB91F24x/S 内部ベクタモード時 シリアル書込み接続例 ( ユーザ電源使用時 )
AF200
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10 -28S
(19)
10k
MB91F24x/S
MOD2
MOD1
10k
TMODE
MOD0
(12)
10k
X0
4MHz
X1
TAUX
(23)
P10
10k
/TICS
(10)
ユーザ回路
10k
/TRES
(5)
INITX
10k
ユーザ回路
TTXD
(13)
SIN
TRXD
(27)
SOT0
TCK
(6)
SCK0
TVcc
GND
(2)
(7,8,
14,15,
21,22,
1,28)
3,4,9,11,16,17,18,
20,24,25,26ピン
は開放
VCC
ユーザ電源
VSS
14ピン
1ピン
DX10-28S
28ピン
DX10-28S:ライトアングルタイプ
606
P11
15ピン
コネクタ(ヒロセ電機製)のピン配列
第 29 章 シリアル書込み接続例
<注意事項>
• P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制
御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア
ル書込み中はユーザ回路を切り離すことができます )。
AF200
書込み制御端子
MB91F24x/S
書込み制御端子
AF200
/TICS端子
ユーザ回路
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
607
第 29 章 シリアル書込み接続例
■ シリアル書込み接続例 ( フラッシュマイコンプログラマから電源供給時 )
フラッシュマイコンプログラマ (AF200) からの電源使用時におけるシリアル書込み接
続例を下記に示します。
なお , モード端子 MOD2, MOD0 にはフラッシュマイコンプログラマ (AF200) の TAUX3,
TMODE より MOD2 = 1, MOD0 = 0 が入力されます ( シリアル書換えモード:MOD2,
MOD1, MOD0 =100B)。
図 29.1-3 MB91F24x/S 内部ベクタモード時 シリアル書込み接続例 ( ライタから電源供給時 )
AF200
フラッシュマイコン
プログラマ
ユーザシステム
コネクタ
DX10-28S
MB91F24x/S
10k
MOD2
MOD1
(19)
TAUX3
10k
TMODE
(12)
MOD0
10k
X0
4M Hz
X1
(23)
TAUX
P10
10k
(10)
/TICS
ユーザ回路
/TRES
10k
INITX
(5)
10k
P11
ユーザ回路
TTXD
(13)
SIN0
TRXD
(27)
SOT0
TCK
(6)
SCK0
Vcc
(3)
GND
(7,8,
14,15,
21,22,
1,28)
VCC
ユーザ電源
VSS
14ピン
電源レギュレータ
AZ264
2,4,9,11,16,17,18,
20,24,25,26ピン
は開放
DX10-28S:ライトアングルタイプ
608
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)の ピン配列
第 29 章 シリアル書込み接続例
<注意事項>
• P10, P11, SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制
御回路が必要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリア
ル書込み中はユーザ回路を切り離すことができます )。
AF200
書込み制御端子
MB91F24x/S
書込み制御端子
AF200
/TICS端子
ユーザ回路
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
• 書込み電源を AF200 から供給するときはユーザ電源と短絡しないでください。
609
第 29 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
ユーザ電源使用時におけるフラッシュマイコンプログラマ (AF200) との最小限の接続
例を下記に示します。
フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MOD2,
MOD1, MOD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要ありません
( シリアル書換えモード:MOD2, MOD1, MOD0 = 100B)。
図 29.1-4 ユーザ電源使用時
AF200
フラッシュマイコン
プログラマ
ユーザシステム
MB91F24x/S
シリアル書換え時1
MOD2
シリアル書換え時0
MOD1
MOD0
シリアル書換え時0
X0
4MHz
X1
シリアル書換え時0
P10
10kΩ
ユーザ回路
P11
シリアル書換え時1
ユーザ回路
コネクタ
DX10-28S
/TRES
(5)
INITX
TTXD
(13)
SIN0
TRXD
(27)
SOT0
(6)
SCK0
(2)
VCC
TCK
TVcc
GND
(7,8,
14,15
,21,2
2,1,2
ユーザ電源
14 ピン
3,4,9,10,11,12,16,17,
18,19,20,23,24,25,26
ピンは開放
610
1 ピン
DX 10-28S
28 ピン
DX10-28S:ライトアングルタイプ
VSS
15 ピン
コネクタ(ヒロセ電機製)の ピ ン 配 列
第 29 章 シリアル書込み接続例
<注意事項>
• SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御回路が必
要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中
はユーザ回路を切り離すことができます )。
AF200
書込み制御端子
MB91F24x/S
書込み制御端子
AF200
/TICS端子
ユーザ回路
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
611
第 29 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )
フラッシュマイコンプログラマ (AF200) からの電源供給時におけるフラッシュマイコ
ンプログラマ (AF200) との最小限の接続例を下記に示します。
フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MOD2,
MOD1, MOD0, P10, P11 とフラッシュマイコンプログラマとの接続は必要ありません。
( シリアル書換えモード:MD2, MD1, MD0 = 100B)
図 29.1-5 フラッシュマイコンプログラマから電源供給時
AF200
フラッシュマイコン
プログラマ
ユーザシステム
MB91F24x/S
シリアル書換え時 1
MOD2
シリアル
書換え時 0
MOD1
MOD0
シリアル書換え時 0
X0
4MHz
X1
P10
シリアル
書換え時 0
ユーザ回路
P11
シリアル書換え時 1
ユーザ回路
コネクタ
DX10-28S
(5)
(13)
(27)
(6)
/TRES
TTXD
TRXD
TCK
Vcc
(3)
GND
(7,8,
14,15,
21,22,
1,28)
電源レギュレータ
AZ264
INITX
SIN0
SOT0
SCK0
VCC
ユーザ電源
14ピン
VSS
1ピン
2,4,9,10,11,12
DX10-28S
16,17,18,19,20
23,24,25,26ピン
28ピン
15ピン
は開放
DX10-28S:ライトアングルタイプコネクタ(ヒロセ電機製)のピン配列
612
第 29 章 シリアル書込み接続例
<注意事項>
• SIN0, SOT0, SCK0 端子をユーザシステムでも使用する場合には , 下図の制御回路が必
要となります ( フラッシュマイコンプログラマの /TICS 信号により , シリアル書込み中
はユーザ回路を切り離すことができます )。
AF200
書込み制御端子
MB91F24x/S
書込み制御端子
AF200
/TICS端子
ユーザ回路
• AF200 との接続はユーザ電源が OFF の状態で行ってください。
• 書込み電源を AF200 から供給するときはユーザ電源と短絡しないでください。
613
第 29 章 シリアル書込み接続例
■ AF200 フラッシュマイコンプログラ マシステム構成
( 横河ディジタルコンピュータ株式会社製 )
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマ ( 横河ディジタルコン
ピュータ株式会社製 ) のシステム構成を示します。
型格
本
体
機能
AF220
/AC4P
イーサネットインタフェースモデル
/100V ∼ 220V 電源アダプタ
AF210
/AC4P
スタンダードモデル
/100V ∼ 220V 電源アダプタ
AF120
/AC4P
単キーイーサネットインタフェースモデル
/100V ∼ 220V 電源アダプタ
AF110
/AC4P
単キーモデル
/100V ∼ 220V 電源アダプタ
AZ221
ライタ専用 PC-AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ:1m
FF003
富士通製 FR フラッシュマイコン用コントロールモジュール
AZ290
リモートコントローラ
/P2
2M バイト PC Card ( オプション ) フラッシュメモリ容量 128K バイトまで
/P4
4M バイト PC Card ( オプション ) フラッシュメモリ容量 512K バイトまで
お問い合わせ先:横河ディジタルコンピュータ株式会社
電話:042-333-6224
■ 原発振クロック周波数について
フラッシュメモリ書込み時に使用可能な原発振クロックは 4.0MHz です。
■ その他の注意事項
シリアルライタを用いてフラッシュメモリ書込み時のポート状態は , 書込みに使用し
ている端子を除きリセット状態と同じです。
614
第 29 章 シリアル書込み接続例
29.2
MB91F24x/S シリアル書込み ( 非同期 ) 接続例
MB91F24x/S のシリアル書込み ( 非同期 ) の接続例を示します。
■ MB91F24x/S シリアル書込み ( 非同期 ) 基本構成
図 29.2-1 MB91F24x/S シリアル書込み ( 非同期 ) 接続の基本構成
ユーザシステム
RS232Cドライバ
RS232C
UARTによる通信
MB91F24x/S
パソコンから RS232C を使いユーザシステムに実装されているフラッシュ内蔵マイコ
ンのフラッシュメモリの書換えを行うことができます。
なお , ユーザシステム上に RS232C ドライバがあり , マイコンの UART と通信できるこ
とが条件となります。
615
第 29 章 シリアル書込み接続例
■ プログラマによるオンボード書換え接続例
ユーザシステム
MB91F24x/S
シリアル
書換え時 1
1
MD2
0
シリアル
1
書換え時 0
0
10
シリアル
書換え時 0
MD1
10
1
MD0
0
1
0
1
P10
シリアル書換え時 0
ユーザ回路
0
シリアル書換え時 0
P11
ユーザ回路
X0
4MHz
X1
RS232C
ドライバ
INITX
SIN
SOT
UARTによる通信
RS232C
MD2, MD1, MD0 端子 , P10, P11 端子は PC 側からは制御できませんので , ユーザシステ
ム上で設定してください。また , シリアル書換え中は MD2, MD1, MD0 端子 , P10, P11
端子の設定後 , INITX を "L" から "H" にすることによりシリアル書換えモードとなりま
すので , PC からシリアル書換え可能となります。
シリアル書換え終了後 , MD2, MD1, MD0 端子は通常使われるモードに , P10, P11 端子
はユーザ回路側に切り換え , INITX を "L" から "H" にすることによりユーザプログラム
を実行します。
<注意事項>
将来的に , 横河ディジタルコンピュータ製シリアルプログラマを用いた量産書込みを行う
場合には , 各品種のハードウェアマニュアルに記載のシリアル書込み接続例を参考に , シ
リアルクロック端子のパターンを基板上に引いておくことをお勧めします。
616
第 29 章 シリアル書込み接続例
■ 本プログラマがオンボード書換えに使用する端子
表 29.2-1 MB91F24x/S 用設定
端 子
機 能
補足説明
MD2, MD1,
MD0
モード端子
フラッシュ書換え時に制御してください。
MD2="H", MD1=MD0="L" に設定することによりフ
ラッシュ書換えモードになります。
P10, P11
書込みプログラム起動端子
フラッシュ書換えモード時に P10=P11="L" に設定しま
す。
INITX
リセット端子
MD2, MD1, MD0 端子 , P10, P11 端子をフラッシュ書換
えモードに設定してからリセットを解除してください。
SIN0
シリアルデータ入力端子
UART を使用します。
SOT0
シリアルデータ出力端子
UART を使用します。
X0, X1
発振用端子
書込みモード時に , CPU 内部動作クロックは PLL ク
ロック 1 逓倍となっております。したがって , 発振ク
ロック周波数が , 内部動作クロックとなりますので , シ
リアル書換え時に使用する発振子は 1MHz ∼ 16MHz
となります。
VCC
電源電圧
-
VSS
GND 端子
-
617
第 29 章 シリアル書込み接続例
■ 各端子のタイミングチャート
マイコンの各端子には , INITX 端子の入力を基準にし , 下記のようなタイミングで入力
を行ってください。
INITX の立上りに対する各信号のセットアップ時間とホールド時間の最小値である
P10, P11 は書込みプログラム起動端子を , SIN0 はシリアルデータ入力端子を示してい
ます。
"H"
INITX
5tcp
"L"
MD0
"H"
tcp
"L"
"H"
MD1
tcp
"L"
"H"
MD2
tcp
"L"
"H"
P10,P11
tcp
tcp×250
"L"
"H"
SIN0
"L"
618
tcp ×3500(Min)
データ
付録
付録として , I/O マップ , 割込みベクタ , 端子状態
一覧 , リトル・エンディアン領域を利用する際の注
意事項 , 命令一覧 , および使用上の注意事項につい
て記載しています。
付録 A I/O マップ
付録 B 割込みベクタ
付録 C リセットによる各端子状態
付録 D リトル・エンディアン領域を利用する際の注意事項
付録 E 命令一覧表
付録 F 使用上の注意
619
付録
付録 A
I/O マップ
メモリ空間領域と周辺リソースの各レジスタの対応を示します。
■ I/O マップ
[ 表の見方 ]
アドレス
00000H
+0
PDR0 [R/W] B
XXXXXXXX
レジスタ
+1
+2
PDR1 [R/W]B
PDR2 [R/W]B
XXXXXXXX
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"
"-" :その位置に物理的にレジスタがない
記述されていないデータアクセス属性によるアクセスは禁止です。
620
付録 A I/O マップ
表 A-1 I/O マップ (1 / 12)
レジスタ
アドレス
+0
+1
+2
+3
00000000H
PDR0[R/W] B,H
XXXXXXXX
PDR1[R/W] B,H
XXXXXXXX
PDR2[R/W] B,H
00000000
PDR3[R/W] B,H
XXXX0000
00000004H
PDR4[R/W] B,H
XXXXXXXX
PDR5[R/W] B,H
XXXXXXXX
PDR6[R/W] B,H
XXXXXXXX
PDR7[R/W] B,H
----XXXX
00000008H
PDR8[R/W] B,H
XXXXXXXX
PDR9[R/W] B,H
XXXXXXXX
PDRA[R/W] B,H
----XXXX
PDRB[R/W] B,H
XXXXXXXX
0000000CH
PDRC[R/W] B,H
----XXXX
PDRD[R/W] B,H
0000XXXX
PDRE[R/W] B,H
XXXXXXXX
PDRF[R/W] B,H
XXXXXXXX
00000010H
PDRG[R/W] B,H
----XXXX
−
−
−
ブロック
ポートデータ
レジスタ
00000014H
∼
0000003CH
−
00000040H
EIRR0 [R/W] B,H,W ENIR0 [R/W] B,H,W
00000000
00000000
00000044H
DICR [R/W] B,H,W
-------0
00000048H
0000004CH
予約
ELVR0 [R/W] B,H,W
00000000 00000000
外部割込み
(INT0 ∼ INT7)
−
遅延割込み /
割込み
コントローラ
HRCL[R/W] B
0--11111
TMRLR0[W] H,W
XXXXXXXX XXXXXXXX
−
TMR0[R] H,W
XXXXXXXX XXXXXXXX
TMCSR0[R/W] B,H,W
----0000 00000000
予約
TMRLR1[W] H,W
XXXXXXXX XXXXXXXX
TMR1[R] H,W
XXXXXXXX XXXXXXXX
00000054H
−
TMCSR1[R/W] B,H,W
----0000 00000000
00000058H
TMRLR2[W] H,W
XXXXXXXX XXXXXXXX
TMR2[R] H,W
XXXXXXXX XXXXXXXX
−
TMCSR2[R/W] B,H,W
----0000 00000000
00000050H
0000005CH
00000060H
00000064H
SSR[R/W] B,H,W
00001000
SIDR[R/W] B,H,W
XXXXXXXX
SCR[R/W,W] B,H,W SMR[R/W, W] B,H,W
00000100
00--0-0-
UTIM[R] H (UTIMR[W] H)
00000000 00000000
DRCL[W] B
--------
UTIMC[R/W] B
0--00001
リロード
タイマ 0
リロード
タイマ 1
リロード
タイマ 2
UART0
U-Timer0
00000068H
∼
0000008CH
−
00000090H
−
SGDBL[R/W] B
-------0
00000094H
SGAR[R/W] B,H,W
00000000
SGFR[R/W] B,H,W
XXXXXXXX
予約
SGCR[R/W, R] B,H,W
0------00 000--000
SGTR[R/W] B,H,W
XXXXXXXX
SGDR[R/W] B,H,W
XXXXXXXX
サウンド
ジェネレータ
621
付録
表 A-1 I/O マップ (2 / 12)
レジスタ
アドレス
00000098H
+0
+1
+2
+3
LCDCMR[R/W]
B,H,W
00000000
−
LCR0 [R/W] B,H,W
00010000
LCR1 [R/W] B,H,W
00000000
0000009CH
VRAM0 [R/W] B,H,W VRAM1[R/W] B,H,W VRAM2 [R/W] B,H,W VRAM3 [R/W] B,H,W
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
000000A0H
VRAM4 [R/W] B,H,W VRAM5 [R/W] B,H,W VRAM6 [R/W] B,H,W VRAM7 [R/W] B,H,W
XXXXXXXX
XXXXXXXX
XXXXXXXX
XXXXXXXX
000000A4H
VRAM8 [R/W] B,H,W VRAM9 [R/W] B,H,W VRAM10[R/W]B,H,W
XXXXXXXX
XXXXXXXX
XXXXXXXX
000000A8H
VRAM12[R/W]
B,H,W
XXXXXXXX
VRAM13[R/W]
B,H,W
XXXXXXXX
VRAM14[R/W]B,H,W
XXXXXXXX
ブロック
LCD
コントローラ
VRAM11[R/W]
B,H,W
XXXXXXXX
VRAM15[R/W]
B,H,W
XXXXXXXX
000000ACH
∼
000000AFH
000000B0H
−
SCR3 [R/W] B,H,W
00000000
ESCR3[R/W] B,H,W
000000B4H
00000X00
000000B8H
SCR4 [R/W] B,H,W
00000000
ESCR4[R/W] B,H,W
000000BCH
00000X00
000000C0H
SCR5 [R/W] B,H,W
00000000
ESCR5[R/W] B,H,W
000000C4H
00000X00
予約
SMR3 [R/W] B,H,W SSR3 [R/W, R] B,H,W
00000000
00001000
ECCR3[R/W, R, W]
B,H,W
000000XX
RDR4/TDR4 [R/W]
B,H,W
−
LIN-UART1
BGR14[R/W] B,H,W BGR04[R/W] B,H,W
00000000
00000000
SMR5 [R/W] B,H,W SSR5 [R/W, R] B,H,W
00000000
00001000
ECCR5[R/W, R, W]
B,H,W
000000XX
LIN-UART0
BGR13[R/W] B,H,W BGR03[R/W] B,H,W
00000000
00000000
SMR4 [R/W] B,H,W SSR4 [R/W, R] B,H,W
00000000
00001000
ECCR4[R/W, R, W]
B,H,W
000000XX
RDR3/TDR3 [R/W]
B,H,W
−
RDR5/TDR5 [R/W]
B,H,W
−
LIN-UART2
BGR15[R/W] B,H,W BGR05 [R/W] B,H,W
00000000
00000000
000000C8H
∼
000000D0H
−
予約
000000D4H
TCDT0 [R/W] H,W
00000000 00000000
−
TCCS0 [R/W] B,H,W 16 ビットフリー
00000000
ランタイマ 0
000000D8H
TCDT1 [R/W] H,W
00000000 00000000
−
TCCS1 [R/W] B,H,W 16 ビットフリー
00000000
ランタイマ 1
000000DCH
∼
000000E0H
000000E4H
000000E8H
622
−
IPCP1 [R] H,W
XXXXXXXX XXXXXXXX
−
−
予約
IPCP0 [R] H,W
XXXXXXXX XXXXXXXX
−
ICS01 [R/W] B,H,W
00000000
16 ビット
インプット
キャプチャ 0, 1
付録 A I/O マップ
表 A-1 I/O マップ (3 / 12)
レジスタ
アドレス
000000ECH
000000F0H
+0
+1
+2
IPCP3 [R] H,W
XXXXXXXX XXXXXXXX
−
+3
IPCP2 [R] H,W
XXXXXXXX XXXXXXXX
−
ICS23 [R/W] B,H,W
00000000
−
ブロック
16 ビット
インプット
キャプチャ 2, 3
000000F4H
∼
00000104H
00000108H
−
OCCP1 [R/W] H,W
XXXXXXXX XXXXXXXX
0000010CH
−
00000110H
−
予約
OCCP0 [R/W] H,W
XXXXXXXX XXXXXXXX
−
−
−
OCS01 [R/W] B,H,W
11101100 00001100
16 ビット
アウトプット
コンペア
00000114H
∼
0000012CH
−
予約
00000130H
PWCSR0[R/W] B,H,W
0000000X 00000000
PWCR0[R] H,W
00000000 00000000
00000134H
−
−
00000138H
PDIVR0[R/W] B,H,W
-----000
−
PWC タイマ
−
−
0000013CH
∼
00000140H
−
WTDBL [R/W] B
------0
00000144H
−
00000148H
−
0000014CH
WTHR [R/W] B,H
---XXXXX
予約
WTCR [R/W, R] B,H
00000000 000-00-X
WTBR [R/W] B
---XXXXX XXXXXXX XXXXXXXX
WTMR [R/W] B,H
--XXXXXX
WTSR [R/W] B
--XXXXXX
リアルタイム
クロック
−
00000150H
ADERH[R/W] B,H,W
00000000 00000000
ADERL[R/W] B,H,W
00000000 00000000
00000154H
ADCS1[R/W] B,H,W ADCS0[R/W] B,H,W
00000000
00000000
00000158H
ADCT1[R/W] B,H,W ADCT0[R/W] B,H,W ADSCH[R/W] B,H,W ADECH[R/W] B,H,W
00010000
00101100
---00000
---00000
ADCR1[R] B,H,W
------XX
ADCR0[R] B,H,W
XXXXXXXX
0000015CH
CUCR[R/W, R] B,H,W
-------- ---0--00
CUTD[R/W] B,H,W
10000000 00000000
00000160H
CUTR1[R] B,H,W
-------- 00000000
CUTR2[R] B,H,W
00000000 00000000
A/D コンバータ
クロック
補正ユニット
623
付録
表 A-1 I/O マップ (4 / 12)
レジスタ
アドレス
00000164H
00000168H
0000016CH
00000170H
00000174H
+0
+1
PWC20[R/W] B,H,W PWC10[R/W] B,H,W
XXXXXXXX
XXXXXXXX
−
PWC0[R/W] B
-0000--0
+2
+3
−
予約
PWS20[R/W] B,H,W PWS10[R/W] B,H,W
-0000000
--000000
PWC21[R/W] B,H,W PWC11[R/W] B,H,W
XXXXXXXX
XXXXXXXX
−
PWC1[R/W] B
-0000--0
−
PWS21[R/W] B,H,W PWS11[R/W] B,H,W
-0000000
--000000
PWC22[R/W] B,H,W PWC12[R/W] B,H,W
XXXXXXXX
XXXXXXXX
00000178H
−
PWC2[R/W] B
-0000--0
00000180H
−
PWC3[R/W] B
-0000--0
ブロック
−
PWS22[R/W] B,H,W PWS12[R/W] B,H,W
-0000000
--000000
ステッパモータ
コントローラ
PWC23[R/W] B,H,W PWC13[R/W] B,H,W
0000017CH
−
XXXXXXXX
XXXXXXXX
00000184H
00000188H
0000018CH
00000190H
PWS23[R/W] B,H,W PWS13[R/W] B,H,W
-0000000
--000000
PWC24[R/W] B,H,W PWC14[R/W] B,H,W
XXXXXXXX
XXXXXXXX
−
PWC4[R/W] B
-0000--0
−
PWS24[R/W] B,H,W PWS14[R/W] B,H,W
-0000000
--000000
PWC25[R/W] B,H,W PWC15[R/W] B,H,W
XXXXXXXX
XXXXXXXX
−
PWC5[R/W] B
-0000--0
−
PWS25[R/W] B,H,W PWS15[R/W] B,H,W
-0000000
--000000
00000194H
∼
000001A4H
000001A8H
−
CANPRE[R/W]B,H,W
00000000
予約
00000000
000001ACH
予約
−
−
−
CAN
プリスケーラ
予約
000001B0H
−
TRG[R/W] B,H,W
00000000
−
REVC[R/W] B,H,W
00000000
000001B4H
PRLH0[R/W]B,H,W
XXXXXXXX
PRLL0[R/W]B,H,W
XXXXXXXX
PRLH1[R/W]B,H,W
XXXXXXXX
PRLL1[R/W]B,H,W
XXXXXXXX
000001B8H
PRLH2[R/W]B,H,W
XXXXXXXX
PRLL2[R/W]B,H,W
XXXXXXXX
PRLH3[R/W]B,H,W
XXXXXXXX
PRLL3[R/W]B,H,W
XXXXXXXX
000001BCH
PPGC0[R/W]B,H,W
0000000X
PPGC1[R/W]B,H,W
0000000X
PPGC2[R/W]B,H,W
0000000X
PPGC3[R/W]B,H,W
0000000X
000001C0H
PRLH4[R/W]B,H,W
XXXXXXXX
PRLL4[R/W]B,H,W
XXXXXXXX
PRLH5[R/W]B,H,W
XXXXXXXX
PRLL5[R/W]B,H,W
XXXXXXXX
000001C4H
PRLH6[R/W]B,H,W
XXXXXXXX
PRLL6[R/W]B,H,W
XXXXXXXX
PRLH7[R/W]B,H,W
XXXXXXXX
PRLL7[R/W]B,H,W
XXXXXXXX
000001C8H
PPGC4[R/W]B,H,W
0000000X
PPGC5[R/W]B,H,W
0000000X
PPGC6[R/W]B,H,W
0000000X
PPGC7[R/W]B,H,W
0000000X
PPG0
000001CCH
∼
000001FCH
624
−
予約
付録 A I/O マップ
表 A-1 I/O マップ (5 / 12)
レジスタ
アドレス
+0
+1
+2
+3
00000200H
DMACA0[R/W] B,H,W *1
00000000_0000XXXX_ XXXXXXXX_XXXXXXXX
00000204H
DMACB0[R/W] B,H,W
00000000_00000000_XXXXXXXX_XXXXXXXX
00000208H
DMACA1[R/W] B,H,W *1
00000000_0000XXXX_ XXXXXXXX_XXXXXXXX
0000020CH
DMACB1[R/W] B,H,W
00000000_00000000_XXXXXXXX_XXXXXXXX
00000210H
DMACA2[R/W] B,H,W *1
00000000_0000XXXX_ XXXXXXXX_XXXXXXXX
00000214H
DMACB2[R/W] B,H,W
00000000_00000000_XXXXXXXX_XXXXXXXX
00000218H
DMACA3[R/W] B,H,W *1
00000000_0000XXXX_ XXXXXXXX_XXXXXXXX
0000021CH
DMACB3[R/W] B,H,W
00000000_00000000_XXXXXXXX_XXXXXXXX
00000220H
DMACA4[R/W] B,H,W *1
00000000_0000XXXX_ XXXXXXXX_XXXXXXXX
00000224H
DMACB4[R/W] B,H,W
00000000_00000000_XXXXXXXX_XXXXXXXX
ブロック
DMA
コントローラ
00000228H
∼
0000023CH
00000240H
予約
DMACR[R/W] B
0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXX
00000244H
∼
000003ECH
−
予約
000003F0H
BSD0 [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000003F4H
BSD1 [R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000003F8H
BSDC [W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
000003FCH
BSRR [R] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
ビットサーチ
00000400H
DDR0[R/W] B,H,W
00000000
DDR1[R/W] B,H,W
00000000
DDR2[R/W] B,H,W
11111111
DDR3[R/W] B,H,W
00001111
00000404H
DDR4[R/W] B,H,W
00000000
DDR5[R/W] B,H,W
00000000
DDR6[R/W] B,H,W
00000000
DDR7[R/W] B,H,W
----0000
00000408H
DDR8[R/W] B,H,W
00000000
DDR9[R/W] B,H,W
00000000
DDRA[R/W] B,H,W
----0000
DDRB[R/W] B,H,W
00000000
0000040CH
DDRC[R/W] B,H,W
----0000
DDRD[R/W] B,H,W
1111----
DDRE[R/W] B,H,W
00000000
DDRF[R/W] B,H,W
00000000
00000410H
DDRG[R/W] B,H,W
----0000
−
−
−
データ方向
レジスタ
625
付録
表 A-1 I/O マップ (6 / 12)
レジスタ
アドレス
+0
+1
+2
+3
ブロック
00000414H
∼
0000041CH
−
予約
00000420H
PFR0[R/W] B,H,W
00000000
PFR1[R/W] B,H,W
00000000
PFR2[R/W] B,H,W
00000000
PFR3[R/W] B,H,W
00000000
00000424H
PFR4[R/W] B,H,W
00000000
PFR5[R/W] B,H,W
00000000
−
PFR7[R/W] B,H,W
----0000
00000428H
−
−
PFRA[R/W] B,H,W
----0000
PFRB[R/W] B,H,W
00000000
0000042CH
PFRC[R/W] B,H,W
----0000
PFRD[R/W] B,H,W
00000000
PFRE[R/W] B,H,W
00000000
−
00000430H
PFRG[R/W] B,H,W
----0000
−
−
−
ポート
ファンクション
レジスタ
00000434H
∼
0000043CH
−
予約
00000440H
ICR00[R/W] B,H,W
---11111
ICR01[R/W] B,H,W
---11111
ICR02[R/W] B,H,W
---11111
ICR03[R/W] B,H,W
---11111
00000444H
ICR04[R/W] B,H,W
---11111
ICR05[R/W] B,H,W
---11111
ICR06[R/W] B,H,W
---11111
ICR07[R/W] B,H,W
---11111
00000448H
ICR08[R/W] B,H,W
---11111
ICR09[R/W] B,H,W
---11111
ICR10[R/W] B,H,W
---11111
ICR11[R/W] B,H,W
---11111
0000044CH
ICR12[R/W] B,H,W
---11111
ICR13[R/W] B,H,W
---11111
ICR14[R/W] B,H,W
---11111
ICR15[R/W] B,H,W
---11111
00000450H
ICR16[R/W] B,H,W
---11111
ICR17[R/W] B,H,W
---11111
ICR18[R/W] B,H,W
---11111
ICR19[R/W] B,H,W
---11111
00000454H
ICR20[R/W] B,H,W
---11111
ICR21[R/W] B,H,W
---11111
ICR22[R/W] B,H,W
---11111
ICR23[R/W] B,H,W
---11111
00000458H
ICR24[R/W] B,H,W
---11111
ICR25[R/W] B,H,W
---11111
ICR26[R/W] B,H,W
---11111
ICR27[R/W] B,H,W
---11111
0000045CH
ICR28[R/W] B,H,W
---11111
ICR29[R/W] B,H,W
---11111
ICR30[R/W] B,H,W
---11111
ICR31[R/W] B,H,W
---11111
00000460H
ICR32[R/W] B,H,W
---11111
ICR33[R/W] B,H,W
---11111
ICR34[R/W] B,H,W
---11111
ICR35[R/W] B,H,W
---11111
00000464H
ICR36[R/W] B,H,W
---11111
ICR37[R/W] B,H,W
---11111
ICR38[R/W] B,H,W
---11111
ICR39[R/W] B,H,W
---11111
00000468H
ICR40[R/W] B,H,W
---11111
ICR41[R/W] B,H,W
---11111
ICR42[R/W] B,H,W
---11111
ICR43[R/W] B,H,W
---11111
0000046CH
ICR44[R/W] B,H,W
---11111
ICR45[R/W] B,H,W
---11111
ICR46[R/W] B,H,W
---11111
ICR47[R/W] B,H,W
---11111
割込み
コントローラ
00000470H
∼
0000047CH
−
予約
00000480H
RSRR [R/W] B,H,W
10000000
STCR [R/W] B,H,W
00110011
TBCR [R/W] B,H,W
00XXXX11
00000484H
CLKR [W] B,H,W
00000000
WPR [R/W] B,H,W
XXXXXXXX
DIVR0 [R/W] B,H,W DIVR1 [R/W] B,H,W
00000011
00000000
626
CTBR [W] B,H,W
XXXXXXXX
クロック
コントロール
ユニット
付録 A I/O マップ
表 A-1 I/O マップ (7 / 12)
レジスタ
アドレス
00000488H
+0
+1
+2
+3
−
−
OSCCR [R/W] B
X000XXX0
−
0000048CH
00000490H
−
OSCR [R/W] B
000--001
−
ブロック
クロック
コントロール
ユニット
予約
−
−
メイン発振安定
待ちタイマ
00000494H
∼
000004F8H
000004FCH
−
PSCR[W] B
XXXXXXXX
−
予約
−
−
ポート入力レベ
ル選択レジスタ
00000500H
∼
0000053CH
−
予約
00000540H
PILR0[R/W] B,H,W
00000000
PILR1[R/W] B,H,W
00000000
−
−
00000544H
−
PILR5[R/W] B,H,W
0-------
−
−
00000548H
−
−
−
−
0000054CH
−
予約
−
−
00000550H
予約
−
−
−
ポート入力レベ
ル選択
レジスタ
00000554H
∼
00000578H
0000057CH
−
予約
LVRC[R/W] B,H,W
00011000
予約
予約
予約
CPU 動作検出
00000580H
∼
000005FCH
−
予約
00000600H
−
−
EPFR2[R/W] B,H,W
00000000
EPFR3[R/W] B,H,W
00000000
00000604H
EPFR4[R/W] B,H,W
00000000
EPFR5[R/W] B,H,W
00000000
−
−
00000608H
−
−
−
−
0000060CH
−
EPFRD[R/W] B,H,W
00000000
−
−
00000610H
EPFRG[R/W] B,H,W
----0000
−
−
−
拡張ポート
ファンクション
レジスタ
00000614H
∼
0000063CH
−
予約
627
付録
表 A-1 I/O マップ (8 / 12)
レジスタ
アドレス
+0
+1
+2
+3
00000640H
ASR0 [R/W] B,H,W
00000000 00000000
ACR0 [R/W] B,H,W
1111XX00 00000000
00000644H
ASR1 [R/W] B,H,W
XXXXXXXX XXXXXXXX
ACR1 [R/W] B,H,W
0XXX0X00 00X0XXXX
00000648H
ASR2 [R/W] B,H,W
XXXXXXXX XXXXXXXX
ACR2 [R/W] B,H,W
XXXX0X00 00X0XXXX
0000064CH
ASR3 [R/W] B,H,W
XXXXXXXX XXXXXXXX
ACR3 [R/W] B,H,W
01XX0X00 00X0XXXX
00000650H
∼
0000065CH
ブロック
外部バスインタ
フェース
予約
00000660H
AWR0 [R/W] B,H,W
01110000 01011011
AWR1 [R/W] B,H,W
XXXX0000 XX0X1XXX
00000664H
AWR2 [R/W] B,H,W
0XXX0000 XX0X1XXX
AWR3 [R/W] B,H,W
0XXX0000 0X0X1XXX
00000668H
∼
0000067CH
00000680H
−
CSER[R/W] B,H,W
00000001
−
予約
−
−
外部バスインタ
フェース
00000684H
∼
000007F8H
000007FCH
−
予約
−
MODR *2
−
−
−
−
−
−
00000800H
∼
00000FFCH
00001000H
DMASA0[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001004H
DMADA0[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001008H
DMASA1[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0000100CH
DMADA1[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001010H
DMASA2[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001014H
DMADA2[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001018H
DMASA3[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
0000101CH
DMADA3[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001020H
DMASA4[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
00001024H
DMADA4[R/W] W
XXXXXXXX XXXXXXXX XXXXXXXX XXXXXXXX
628
予約
DMA
コントローラ
付録 A I/O マップ
表 A-1 I/O マップ (9 / 12)
レジスタ
アドレス
+0
+1
+2
+3
ブロック
00001028H
∼
00006FFCH
−
予約
00007000H
FLCR[R/W]
01XX1000
−
−
−
00007004H
FLWC[R/W]
00000011
−
−
−
フラッシュ
メモリインタ
フェース
( 量産品のみ )
00007008H
∼
0000FFFCH
−
予約
00020000H
CTRLR0
STATR0
00020004H
ERRCNT0
BTR0
00020008H
INTR0
TESTR0
0002000CH
BRPER0
−
00020010H
IF1CREQ0
IF1CMSK0
00020014H
IF1MSK20
IF1MSK10
00020018H
IF1ARB20
IF1ARB10
0002001CH
IF1MCTR0
−
00020020H
IF1DTA10
IF1DTA20
00020024H
IF1DTB10
IF1DTB20
00020028H
∼
0002002CH
−
00020030H
予約 (IF1 data mirror, little endian byte ordering)
00020034H
∼
0002003CH
−
CAN0
00020040H
IF2CREQ0
IF2CMSK0
00020044H
IF2MSK20
IF2MSK10
00020048H
IF2ARB20
IF2ARB10
0002004CH
IF2MCTR0
−
00020050H
IF2DTA10
IF2DTA20
00020054H
IF2DTB10
IF2DTB20
00020058H
∼
0002005CH
−
00020060H
予約 (IF2 data mirror, little endian byte ordering)
00020064H
−
∼
0002007CH
00020080H
00020084H
TREQR20
TREQR10
予約 (32..128 Message buffer)
629
付録
表 A-1 I/O マップ (10 / 12)
レジスタ
アドレス
+0
+1
+2
+3
ブロック
00020088H
−
∼
0002008CH
00020090H
NEWDT20
00020094H
NEWDT10
予約 (32..128 Message buffer)
00020098H
−
∼
0002009CH
000200A0H
CAN0
INIPND20
000200A4H
INIPND10
予約 (32..128 Message buffer)
000200A8H
∼
000200ACH
000200B0H
−
MESVAL20
000200B4H
MESVAL10
予約 (32..128 Message buffer)
00020100H
CTRLR1
STATR1
00020104H
ERRCNT1
BTR1
00020108H
INTR1
TESTR1
0002010CH
BRPER1
−
00020110H
IF1CREQ1
IF1CMSK1
00020114H
IF1MSK21
IF1MSK11
00020118H
IF1ARB21
IF1ARB11
0002011CH
IF1MCTR1
−
00020120H
IF1DTA11
IF1DTA21
00020124H
IF1DTB11
IF1DTB21
00020128H
∼
0002012CH
−
00020130H
予約 (IF1 data mirror, little endian byte ordering)
CAN1
00020134H
∼
0002013CH
−
00020140H
IF2CREQ1
IF2CMSK1
00020144H
IF2MSK21
IF2MSK11
00020148H
IF2ARB21
IF2ARB11
0002014CH
IF2MCTR1
−
00020150H
IF2DTA11
IF2DTA21
00020154H
IF2DTB11
IF2DTB21
00020158H
∼
0002015CH
630
−
付録 A I/O マップ
表 A-1 I/O マップ (11 / 12)
レジスタ
アドレス
00020160H
+0
+1
+2
+3
ブロック
予約 (IF2 data mirror, little endian byte ordering)
00020164H
−
∼
0002017CH
00020180H
TREQR21
00020184H
TREQR11
予約 (32..128 Message buffer)
00020188H
∼
0002018CH
00020190H
−
NEWDT21
00020194H
NEWDT11
CAN1
予約 (32..128 Message buffer)
00020198H
−
∼
0002019CH
000201A0H
INTPND21
000201A4H
INTPND11
予約 (32..128 Message buffer)
000201A8H
−
∼
000201ACH
000201B0H
000201B4H
MESVAL21
MESVAL11
予約 (32..128 Message buffer)
00380000H
∼
003FFFFCH
−
F-bus RAM 32KB
−
F-bus RAM 24KB
−
F-bus RAM 16KB
−
F-bus RAM 8KB
−
User ROM 512
Kbytes
(MB91F249/S)
−
User ROM
256KB
(MB91F248/S,
MB91248/S)
−
User ROM
128KB
(MB91247/S)
003A0000H
∼
003FFFFCH
003C0000H
∼
003FFFFCH
003E0000H
∼
003FFFFCH
000A0000H
∼
000FFFFCH
000C0000H
∼
000FFFFCH
000E0000H
∼
000FFFFCH
631
付録
表 A-1 I/O マップ (12 / 12)
レジスタ
アドレス
+0
+1
+2
000A0000H
∼
000FFFFCH
−
+3
ブロック
User ROM
512KB
(MB91F249/S)
*1:DMACA0 ∼ DMACA4 の下位 16 ビット (DTC[15:0]) は , バイトでのアクセスはできません。
*2:このレジスタは , モードベクタフェッチにより設定されます。ユーザからはアクセスできません。
<注意事項>
• ライトオンリビットのあるレジスタに対してリードモディファイライト (RMW) 系
の命令を行わないでください。
•
632
予約または ( − ) の領域のデータは不定です。
付録 B 割込みベクタ
付録 B
割込みベクタ
付表 B-1 に , 割込みベクタテーブルを示します。割込みベクタテーブルには ,
MB91245/S シリーズの割込み要因と割込みベクタ / 割込み制御レジスタの割当てが
記載されています。
■ ベクタテーブル
ICR: 割込みコントローラ内に設けられたレジスタで割込みの各要求に対する割込み
レベルを設定します。ICR は割込み要求の各々に対応して用意されています。
TBR: EIT 用ベクタテーブルの先頭アドレスを示すレジスタです。
TBR と EIT 要因ごとに決められたオフセット値を加算したアドレスが , ベクタ
アドレスとなります。
TBR の示すアドレスから 1K バイトの領域が , EIT 用ベクタ領域となっています。
1 ベクタあたりの大きさは 4 バイトで , ベクタ番号とベクタアドレスの関係は下記のよ
うに表されます。
vctadr
= TBR + vctofs
= TBR + (3FCH − 4 × vct)
vctadr:
ベクタアドレス
vctofs:
ベクタオフセット
vct:
ベクタ番号
633
付録
付表 B-1 ベクタテーブル (1 / 2)
割込み番号
割込み要因
10 進 16 進
割込みレベル
DMA
オフ TBR デフォルト
起動
セット
のアドレス
要因
リセット
0
0
−
3FCH
000FFFFCH
−
モードベクタ
1
1
−
3F8H
000FFFF8H
−
システム予約
2
2
−
3F4H
000FFFF4H
−
システム予約
3
3
−
3F0H
000FFFF0H
−
システム予約
4
4
−
3ECH
000FFFECH
−
システム予約
5
5
−
3E8H
000FFFE8H
−
システム予約
6
6
−
3E4H
000FFFE4H
−
コプロセッサ不在トラップ
7
7
−
3E0H
000FFFE0H
−
コプロセッサエラートラップ
8
8
−
3DCH
000FFFDCH
−
INTE 命令
9
9
−
3D8H
000FFFD8H
−
システム予約
10
0A
−
3D4H
000FFFD4H
−
システム予約
11
0B
−
3D0H
000FFFD0H
−
−
3CCHH
000FFFCCH
−
−
3C8H
000FFFC8H
−
000FFFC4H
−
ステップトレーストラップ
NMI 要求 (tool)
12
13
0C
0D
未定義命令例外
14
0E
−
3C4H
NMI 要求
15
0F
15(FH) 固定
3C0H
000FFFC0H
−
外部割込み 0
16
10
ICR00
3BCH
000FFFBCH
6
外部割込み 1
17
11
ICR01
3B8H
000FFFB8H
7
外部割込み 2
18
12
ICR02
3B4H
000FFFB4H
−
外部割込み 3
19
13
ICR03
3B0H
000FFFB0H
−
ICR04
3ACH
000FFFACH
−
ICR05
3A8H
000FFFA8H
−
ICR06
3A4H
000FFFA4H
−
ICR07
3A0H
000FFFA0H
000FFF9CH
−
8
外部割込み 4
外部割込み 5
外部割込み 6
外部割込み 7
20
21
22
23
14
15
16
17
リロードタイマ 0 アンダフロー
24
18
ICR08
39CH
リロードタイマ 1 アンダフロー
25
19
ICR09
398H
000FFF98H
9
リロードタイマ 2 アンダフロー
26
1A
ICR10
394H
000FFF94H
10
UART0( 受信完了 , 受信エラー )
27
1B
ICR11
390H
000FFF90H
0
UART0( 送信完了 )
28
1C
ICR12
38CH
000FFF8CH
3
LIN-UART0( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
29
1D
ICR13
388H
000FFF88H
1
LIN-UART0( 送信完了 )
30
1E
ICR14
384H
000FFF84H
4
LIN-UART1( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
31
1F
ICR15
380H
000FFF80H
2
LIN-UART1( 送信完了 )
32
20
ICR16
37CH
000FFF7CH
5
LIN-UART2( 受信完了 , 受信エラー ,
LIN Synch break, バスアイドル )
33
21
ICR17
378H
000FFF78H
−
CAN0 受信・送信完了 ,
ノードステータス遷移
35
23
ICR19
370H
000FFF70H
−
634
付録 B 割込みベクタ
付表 B-1 ベクタテーブル (2 / 2)
割込み番号
割込み要因
10 進 16 進
割込みレベル
DMA
オフ TBR デフォルト
起動
セット
のアドレス
要因
CAN1 受信・送信完了 ,
ノードステータス遷移
36
24
ICR20
36CH
000FFF6CH
−
システム予約
37
25
ICR21
368H
000FFF68H
−
システム予約
38
26
ICR22
364H
000FFF64H
−
システム予約
39
27
ICR23
360H
000FFF60H
−
PWC( 測定終了 )
40
28
ICR24
35CH
000FFF5CH
−
PWC( オーバフロー )
41
29
ICR25
358H
000FFF58H
−
DMAC 転送終了 , 転送エラー
42
2A
ICR26
354H
000FFF54H
A/D コンバータ
43
2B
ICR27
350H
000FFF50H
−
14
リアルタイムクロック
時分秒オーバフロー , 補正終了
44
2C
ICR28
34CH
000FFF4CH
−
システム予約
45
2D
ICR29
348H
000FFF48H
−
メイン発振安定待ちタイマ
46
2E
ICR30
344H
000FFF44H
−
タイムベースタイマオーバフロー
47
2F
ICR31
340H
000FFF40H
−
PPG0/1 アンダフロー
48
30
ICR32
33CH
000FFF3CH
−
PPG2/3 アンダフロー
49
31
ICR33
338H
000FFF38H
−
PPG4/5 アンダフロー
50
32
ICR34
334H
000FFF34H
−
PPG6/7 アンダフロー
51
33
ICR35
330H
000FFF30H
−
16 ビットフリーランタイマ 0 オーバフロー
および OCU0 コンペアマッチクリア
52
34
ICR36
32CH
000FFF2CH
−
16 ビットフリーランタイマ 1 オーバフロー
53
35
ICR37
328H
000FFF28H
−
ICU0( 取込み )
54
36
ICR38
324H
000FFF24H
−
ICU1( 取込み )
55
37
ICR39
320H
000FFF20H
−
ICU2( 取込み )
56
38
ICR40
31CH
000FFF1CH
−
ICU3( 取込み )
57
39
ICR41
318H
000FFF18H
−
OCU0( 一致 )
58
3A
ICR42
314H
000FFF14H
−
ICR43
310H
000FFF10H
−
ICR44
30CH
000FFF0CH
−
ICR45
308H
000FFF08H
−
ICR46
304H
000FFF04H
−
ICR47
300H
000FFF00H
−
−
2FCH
000FFEFCH
−
−
2F8H
000FFEF8H
−
2F4H
000FFEF4H
∼
2C0H
∼
000FFEC0H
2BCH
000FFEBCH
∼
000H
∼
000FFC00H
OCU1( 一致 )
システム予約
システム予約
サウンドジェネレータ指定カウント完了
59
60
61
62
3B
3C
3D
3E
遅延割込み要因ビット
63
3F
システム予約 (REALOS にて使用 )
64
40
システム予約 (REALOS にて使用 )
65
41
システム予約
66
∼
79
42
∼
4F
−
INT 命令で使用
80
∼
255
50
∼
FF
−
−
−
635
付録
付録 C
リセットによる各端子状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ∼ MD0=00XB) の設定によって決定され
ます。
● 内部ベクタモード設定時 (MD2, MD1, MD0 = 000B)
I/O端子(周辺機能端子)はハイインピーダンス(MB91245シリーズでは, SEG0∼SEG11/
COM0 ∼ COM3 は , "L" 出力 ) になり , モードデータの読出し先は内部 ROM になります。
● 外部ベクタモード設定時 (MD2, MD1, MD0 = 001B)
I/O端子(周辺機能端子)はハイインピーダンス(MB91245シリーズでは, SEG0∼SEG11/
COM0 ∼ COM3 は , "L" 出力 ) になり , モードデータの読出し先は外部 ROM になります。
<注意事項>
リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器
が誤動作しないように配慮してください。
内部ベクタモードでは , モードデータは内部 (Flash)ROM 領域に格納してください。
外バスモードにおいてアドレスデータマルチプレックスのみをサポートします。外部バス
使用時には , アクセスタイプをアドレスデータマルチプレックスに設定してください。
リセット中の各端子の状態は , 付表 C-1 を参照してください。
636
付録 C リセットによる各端子状態
付表 C-1 モード別端子状態表 (1 / 2)
シングルチップモード
STOP
初期値
端子名
機能名
SLEEP
INITX="L" 時 INITX="H" 時
HIZ=0
HIZ=1
INITX
INITX
入力可
入力可
X0
X0
Hi-Z or 入力可
Hi-Z or 入力可
X1
X1
X0A
X0A
X1A
X1A
MD0
MD0
MD1
MD1
MD2
MD2
P00
P00/SEG24/INT0/D00
P01
P01/SEG25/INT1/D01
P02
P02/SEG26/INT2/D02
P03
P03/SEG27/INT3/D03
P04
P04/SEG28/INT4/D04
P05
P05/SEG29/INT5/D05
P06
P06/SEG30/D06
P07
P07/SEG31/ATGX/D07
P10 ∼
P17
P10 ∼ P17/SEG16 ∼ SEG23/
D08 ∼ D15
P20 ∼
P27
P20 ∼ P27/SEG0 ∼ SEG7/A00
∼ A07
P30 ∼
P33
P30 ∼ P33/SEG8 ∼ SEG11/A08
∼ A11
P34 ∼
P37
P34 ∼ P37/SEG12 ∼ SEG15/
A12 ∼ A15
P40
P40/SIN0
P41
P41/SOT0
P42
P42/SCK0
P43
P43/SIN3
P44
P44/SOT3
P45
P45/SCK3
P46
P46/SGA/ASX
P47
P47/SGO/SYSCLK
P50
P50/SIN4/CK0/CS0X
P51
P51/SOT4/CS1X
"H" 出力 or 入力 "H" 出力 or 入力
可
可
入力可
入力可
入力可
Hi-Z or 入力可
Hi-Z or 入力可
"H" 出力 or 入力 "H" 出力 or 入力
可
可
入力可
出力 Hi-Z
入力可
出力 Hi-Z
入力可
"L" 出力
"L" 出力
出力 Hi-Z
入力可
出力 Hi-Z
入力可
入力可
P: 直前状態保持 LCDC 出力時 動
作 or 出力保持 ,
その他
F: LCDC 出力時
出力Hi-Z/
動作 or 出力保
持 , PFR0 レジス PFR0 レジスタ
タ =0 時 INT0-5 =0 時 INT0-5 入
力可
入力可
P: 直前状態
LCDC 出力時 動
保持,
作 or 出力保持 ,
F:LCDC 出力時
その他
出力 Hi-Z/
動作
or
出力保持
P: 直前状態
入力 0 固定
その他 Hi-Z
保持
F: 通常動作
P: 直前状態保持
F: 出力保持 or
Hi-Z
出力 Hi-Z/
入力 0 固定
637
付録
付表 C-1 モード別端子状態表 (2 / 2)
シングルチップモード
機能名
P52
P52/SCK4/CS2X
P53
P53/SIN5/CK1/CS3X
P54
P54/SOT5/RDX
P55
P55/SCK5/WR0X
P56
P56/OUT0/WR1X
P57
P57/OUT1/RDY
P60 ∼
P67
P60 ∼ P67/AN0 ∼ AN7
P70
P70/RX0/INT6
P71
P71/TX0
P72
P72/RX1/INT7
P73
P73/TX0
P80 ∼
P87
P80 ∼ P87/AN16 ∼ AN23
P90 ∼
P97
P90 ∼ P97/AN24 ∼ AN31
PA0 ∼
PA3
PA0 ∼ PA3/ PWMxxx ∼
PWMxxx
PB0 ∼
PB7
PB0 ∼ PB7/ PWMxxx ∼
PWMxxx
PC0 ∼
PC3
PC0 ∼ PC3/ PWMxxx ∼
PWMxxx
PD0
PD0/TIN0/IN0/PWC0
PD1
PD1/TIN1
PD2
PD2/TIN2
PD3
PD3/IN3
PD4
PD4/COM0/PPG1
PD5
PD5/COM1/PPG3
PD6
PD6/COM2/PPG5
PD7
PD7/COM3/PPG7
PE0-PE7
PE0-PE7/ PWMxxx-PWMxxx
PF0-PF7
PF0-PF7/AN8-AN15
PG0
PG0/PPG0
PG1
PG1/TOT0/PPG2
PG2
PG2/TOT1/PPG4
PG3
PG3/TOT2/PPG6
SLEEP
INITX="L" 時 INITX="H" 時
HIZ=0
HIZ=1
P: 直前状態保持
F: 出力保持 or
Hi-Z
出力 Hi-Z/
入力 0 固定
P: 直前状態保持 出力 Hi-Z/ PFR7
F: 出力保持 ,
レジスタ=1時
INT6 入力可
INT6 入力可
出力 Hi-Z
入力可
638
STOP
初期値
端子名
出力 Hi-Z
入力可
出力 Hi-Z/
P: 直前状態保持 ,
P: 直前状態
F:Hi-Z
入力 0 固定
保持
P: 直前状態保持 出力 Hi-Z/ PFR7
F: 通常動作
F: 出力保持 ,
レジスタ=1 時
INT7 入力可
INT7 入力可
P: 直前状態保持
F: 出力保持
or Hi-Z
入力可
入力可
入力可
出力 Hi-Z/
入力 0 固定
Hi-Z
入力 0 固定
"L" 出力
P: 直前状態保持
LCDC: 出力 or
保持
PPG: 出力保持
"L" 出力
P: 直前状態
保持
F: 通常動作
出力 Hi-Z
入力可
出力 Hi-Z
入力可
P:直前状態
保持
F: 出力保持
or Hi-Z
出力 Hi-Z/
入力 0 固定
付録 C リセットによる各端子状態
付表 C-2 モード別端子状態表 (1 / 3)
外部バスモード
STOP
初期値
8 ビット
INITX
INITX="L" INITX="H"
時
時
入力可
入力可
SLEEP
入力可
X0
X1
X0A
X1A
MD0
HIZ=0
HIZ=1
入力可
入力可
MD2
P00/SEG24/
INT0
P01/SEG25/
INT1
P02/SEG26/
INT2
P03/SEG27/
INT3
P04/SEG28/
INT4
P05/SEG29/
INT5
P06/SEG30
←
Hi-Z or 入 Hi-Z or 入
力可
力可
"H" 出力 "H" 出力
or 入力可 or 入力可
←
入力可
入力可
出力 Hi-Z 出力 Hi-Z
入力可
入力可
P: 直前状 P: 直前状
態保持
態保持
F: 通常動作 F:LC DC
出力時動
作 or 出力
保持 , PF
R0 レジス
タ =0 時
INT0-5 入
力可
Hi-Z
D0 ∼ D15
"L" 出力
A08 ∼ A11
出力 Hi-Z
入力可
"H" 出力
出力 Hi-Z
入力可
F: アドレ
ス出 力
P: 直前状
態保持 ,
F:LC DC
出力時動
作 or 出力
保持その
他 Hi-Z
Hi-Z
LCDC 出
力時動作
or 出力保
持
その他出
力 Hi-Z/
PFR0 レジ
スタ =0 時
INT0-5 入
力可
LCDC 出
力時 動作
or 出力保
持 , その他
出力 Hi-Z /
入力 0 固定
出力 Hi-Z/
F: アドレ 入力 0 固定
ス出力
F: 通常動 P: 直前状
態保持
作
P: 直前状 F: 出力保
持 or Hi-Z
態保持
P: 直前状
態保持 ,
ASX:"H"
出力 ,
F: 通常動作
P: 直前状
態保持 ,
ASX:"H"
出力 ,
F: 出力保持
CLK 出力 P: 直前状
態保持
CLK:CL K
出力
F: 通常動作
P: 直前状
態保持
CLK:"H"
or "L" 出力
F: 通常動作
"H" 出力
P47/SGO/
SYSCLK
入力可
入力可
入力可
HIZ=0
HIZ=1
入力可
入力可
Hi-Z or 入 Hi-Z or 入
力可
力可
"H" 出力 "H" 出力
or 入力可 or 入力可
←
Hi-Z or 入 Hi-Z or 入
力可
力可
"H" 出力 "H" 出力
or 入力可 or 入力可
←
←
入力可
入力可
←
D00
出力 Hi-Z 出力 Hi-Z
入力可
入力可
Hi-Z
Hi-Z
出力 Hi-Z/
入力 0 固定
F: アドレ
ス出力
F: アドレ
ス出力
D01
D02
D03
D04
D05
A00 ∼ A07
P46/SGA/ASX
INITX="L" INITX="H"
時
時
SLEEP
←
P07/SEG31/
ATGX
A12 ∼ A15
P40/SIN0
P41/SOT0
P42/SCK0
P43/SIN3
P44/SOT3
P45/SCK3
←
Hi-Z or 入 Hi-Z or 入
力可
力可
"H" 出力 "H" 出力
or 入力可 or 入力可
MD1
STOP
初期値 (8bit と同じ )
16 ビット
D06
D07
D08 ∼ D15
A00 ∼ A07
"L" 出力
"H" 出力
A08 ∼ A11
A12 ∼ A15 出力 Hi-Z
入力可
P40/SIN0
出力 Hi-Z
入力可
P41/SOT0
P42/SCK0
P43/SIN3
P44/SOT3
P45/SCK3
P46/SGA/ASX
"H" 出力
P47/SGO/
SYSCLK
F: 通常動 P: 直前状
態保持
作
P: 直前状 F: 出力保
持 or Hi-Z
態保持
P: 直前状 P: 直前状
態保持
態保持
ASX:"H" ASX:"H"
出力 ,
出力 ,
F: 通常動作 F: 出力保持
CLK 出力 P: 直前状
態保持 ,
CLK:CL K
出力
F: 通常動作
P: 直前状
態保持 ,
CLK:"H"
or "L" 出力
F: 通常動作
639
付録
付表 C-2 モード別端子状態表 (2 / 3)
外部バスモード
STOP
初期値
8 ビット
P50/SIN4/
CK0/CS0X
P51/SOT4/
CS1X
P52/SCK4/
CS2X
P53/SIN5/
CK1/CS3X
P54/SOT5/
RDX
P55/SCK5/
WR0X
P56/OUT0
P57/OUT1/
RDY
640
INITX="L" INITX="H"
時
時
出力 Hi-Z
入力可
"H" 出力
SLEEP
HIZ=0
バスコン
トロール :
"H" 出力
P: 直前状
態保持
F: 通常動作
P: 直前状
態保持
F: 通常動
作 , EPFR
=0 時 :"H"
出力
RDY 入力 P: 直前状
態保持
F: 通常状態
RDY 入力
HIZ=1
INITX="L" INITX="H"
時
時
バスコン 出力 Hi-Z/ P50/SIN4/CK0/ 出力 Hi-Z
CS0X
トロール : 入力 0 固
入力可
"H" 出力
P51/SOT4/
定
CS1X
P: 直前状
態保持
P52/SCK4/
F: 出力保
CS2X
持 or Hi-Z
P53/SIN5/CK1/
CS3X
P54/SOT5/RDX
P: 直前状
態保持
F: 出力保
持 , EPFR
=0 時 :"H"
出力
P: 直前状
態保持
F: 出力保持
RDY 入力
STOP
初期値 (8bit と同じ )
16 ビット
"H" 出力
SLEEP
HIZ=0
バスコン
トロール :
"H" 出力
P: 直前状
態 保持
F: 通常動作
バスコン 出力 Hi-Z/
トロール : 入力 0 固定
"H" 出力
P: 直前状
態 保持
F: 出力保
持 or Hi-Z
P55/SCK5/
WR0X
P56/OUT0/
WR1X
P57/OUT1/
RDY
HIZ=1
RDY 入力 P: 直前状 P: 直前状
態保持
態保持
F: 通常状態 F: 出力保持
RDY 入力 RDY 入力
付録 C リセットによる各端子状態
付表 C-2 モード別端子状態表 (3 / 3)
外部バスモード
STOP
初期値
8 ビット
INITX="L" INITX="H"
時
時
16 ビット
HIZ=0
STOP
初期値 (8bit と同じ )
SLEEP
HIZ=1
INITX="L" INITX="H"
時
時
SLEEP
HIZ=0
HIZ=1
P60 ∼ P77/
AN0 ∼ AN7
P70/RX0/INT6
P71/TX0
P72/RX1/INT7
P80 ∼ P87/
AN16 ∼
AN23
P90 ∼ P97/
AN24 ∼
AN31
PA0 ∼ PA3/
PWMxxxPWMxxx
PB0 ∼ PB7/
PWMxxx ∼
PWMxxx
PC0 ∼ PC3/
PWMxxx ∼
PWMxxx
PD0/TIN0/
IN0/PWC0
PD1/TIN1
PD2/TIN2
PD3/IN3
PD4/COM0/
PPG1
PD5/COM1/
PPG3
PD6/COM2/
PPG5
PD7/COM3/
PPG7
シングルチップモードと同じ
PE0 ∼ PE7/
PWMxxx ∼
PWMxxx
PF0 ∼ PF7/
AN8 ∼ AN15
PG0/PPG0
PG1/TOT0/
PPG2
PG2/TOT1/
PPG4
PG3/TOT2/
PPG6
641
付録
付録 D
リトル・エンディアン領域を利用する際の注意事項
リトルエンディアン領域を利用する際の注意事項を以下の項目ごとに説明します。
• C コンパイラ
• アセンブラ
• リンカ
• デバッガ
■ C コンパイラ (fcc911)
C言語でプログラミングをするにあたって, リトルエンディアン領域に対して次のよう
な操作を行ったときは , 動作が保証できませんのでご注意ください。
- 初期値付き変数の配置
- 構造体代入
- 文字列操作関数を使った文字型配列以外の操作
- 文字列操作関数使用時の -K lib オプションの指定
- double 型 , long double 型の利用
- スタックのリトルエンディアン領域への配置
● 初期値付き変数の配置
リトルエンディアン領域に , 初期値付きの変数を配置することはできません。
コンパイラは , リトルエンディアンの初期値を生成する機能を持っていません。リトル
エンディアン領域に変数を配置することはできますが , 初期値を設定することはでき
ません。
プログラムの先頭で , 初期値を設定する処理を行ってください。
[ 例 ] リトルエンディアン領域の変数 little_data に初期値を設定する場合
extern int little_data;
void little_init(void) {
little_data = 初期値 ;
}
void main(void) {
little_init();
...
}
642
付録 D リトル・エンディアン領域を利用する際の注意事項
● 構造体代入
構造体どうしの代入を行うとき , コンパイラは最適な転送方法を選択してバイト , ハー
フワード , ワードごとの転送を行います。このため , 通常の領域に割り当てられた構造
体変数とリトルエンディアンの領域に割り当てられた構造体変数の間で構造体代入を
行うと , 正しい結果が得られません。
構造体のメンバをそれぞれ代入してください。
[ 例 ] リトルエンディアン領域の構造体変数 little_st に構造体代入する場合
struct tag { char c; int i; } normal_st;
extern struct tag little_st;
#define STRMOVE(DEST,SRC) DEST.c=SRC.c;DEST.i=SRC.i;
void main(void) {
STRMOVE(little_st,normal_st);
}
また , 構造体のメンバの配置はコンパイラごとに違うので , ほかのコンパイラでコンパ
イルされた構造体とは , メンバの配置が違っていることが考えられます。このようなと
きには , 前述の方法においても正しい結果が得られません。
構造体のメンバの配置が一致しないときは , リトルエンディアン領域に構造体変数を
配置しないでください。
● 文字列操作関数を使った文字型配列以外の操作
標準ライブラリとして用意されている文字列操作関数はバイト単位での処理を行いま
す。このためリトルエンディアン領域に配置された char, unsigned char, signed char 型以
外の型を持つ領域に対し , 文字列操作関数を使った処理を行うと , 正しい結果が得られ
ません。
このような処理は行わないでください。
[ 不具合例 ] memcpy でのワードデータの転送
int big = 0x01020304;
/* ビッグエンディアン領域 */
extern int little;
/* リトルエンディアン領域 */
memcpy(&little,&big, 4);
/* memcpy による転送
*/
上記の実行結果は
(ビッグエンディアン領域)
01 02
03
04
(リトルエンディアン領域)
→ memcpy →
01
02
03
04
03 02
01
となり , ワードデータの転送結果としては誤りになります。
(正しい結果)
04
643
付録
● 文字列操作関数使用時の -K lib オプションの指定
-K lib オプションを指定すると , コンパイラはいくつかの文字列操作関数に対し , イン
ライン展開を行います。このとき , 最適な処理を選択するためハーフワードまたはワー
ドごとの処理に変更される場合があります。
このためリトルエンディアン領域に対する処理が正しく実行されません。
リトルエンディアン領域に対し文字列操作関数を使った処理を行っているときは ,
-K lib オプションを指定しないでください。
-K lib オプションを包含する -O 4 オプションや -K speed オプションも同様に指定しな
いでください。
● double 型 , long double 型の利用
double 型および long double 型へのアクセスは , 上位 1 ワード , 下位 1 ワードをそれぞれ
アクセスする方法で行われます。このため , リトルエンディアン領域に配置された
double 型 , long double 型変数に対するアクセスは , 正しい結果が得られません。
リトルエンディアン領域に割り当てられた同一型の変数どうしの代入は可能ですが ,
最適化の結果これらの代入が定数の代入に置き換えられるときもあります。
double 型および long double 型変数をリトルエンディアン領域に配置しないでください。
[ 不具合例 ] double 型データの転送
double big = 1.0;
/* ビッグエンディアン領域 */
extern int little;
/* リトルエンディアン領域 */
little = big;
/* double 型データの転送
*/
上記の実行結果は
(ビッグエンディアン領域)
3f
f0
00
00
00
00
00
(リトルエンディアン領域)
00
→
00
00
f0
3f
00
00
00
00
00
00
f0
3f
となり , double 型データの転送結果としては誤りになります。
(正しい結果)
00
00
00
00
● スタックのリトルエンディアン領域への配置
リトルエンディアン領域にスタックの一部あるいは全部が配置された場合 , 動作を保
証しません。
644
付録 D リトル・エンディアン領域を利用する際の注意事項
■ アセンブラ (fasm911)
FR のアセンブラ言語でプログラミングをするにあたって , リトルエンディアン領域に
関して注意して頂きたい項目を以下に示します。
● セクションについて
リトルエンディアン領域は , 主にリトルエンディアン系 CPU とデータ交換を行うこと
を目的としています。そのため , リトルエンディアン領域は初期値のないデータセク
ションとして定義してください。
もし , リトルエンディアン領域にコードやスタック , 初期値付きデータセクションなど
の指定をした場合には , MB91245/S シリーズでのアクセス動作は保証できなくなりま
す。
[例]
/* 正しいリトルエンディアン領域のセクション定義 */
.SECTION Little_Area, DATA, ALIGN=4
Little_Word:
.RES.W 1
Little_Half:
.RES.H 1
Little_Byte:
.RES.B 1
● データのアクセスについて
リトルエンディアン領域へのデータのアクセスを行う場合 , そのデータの値は , エン
ディアンを意識せずにコーディングできます。ただし , リトルエンディアン領域のデー
タへのアクセスは , 必ずデータサイズと同じサイズでアクセスしてください。
[例]
LDI
#0x01020304, r0
LDI
#Little_Word, r1
LDI
#0x0102, r2
LDI
#Little_Half, r3
LDI
#0x01, r4
LDI
#Little_Byte, r5
/* 32 ビットデータは , ST 命令 ( や LD 命令など ) でアクセスします。*/
ST
r0, @r1
/* 16 ビットデータは , STH 命令 ( や LDH 命令など ) でアクセスします。*/
STH
r2, @r3
645
付録
/* 8 ビットデータは , STB 命令 ( や LDB 命令など ) でアクセスします。*/
STB
r4, @r5
本品種でデータサイズと異なるサイズでアクセスした場合には , その値の保証はでき
ません。例えば , 連続する 2 つの 16 ビットデータを , 32 ビットアクセス命令を使って
一度にアクセスした場合にはデータの値の保証はできません。
■ リンカ (flnk911)
リトルエンディアン領域を使用するプログラムの作成において , リンク時のセクショ
ン配置で注意して頂きたい項目を以下に示します。
● セクション種別の制限
リトルエンディアン領域には , 初期値なしデータセクションのみ配置することができ
ます。
リトルエンディアン領域に初期値付きデータセクション , スタックセクション , および
コードセクションを配置した場合 , リンカの内部では , ビッグエンディアンでアドレス
解決などの演算処理を行っていますので , プログラム動作は保証できなくなります。
● エラーの未検出
リンカは , リトルエンディアン領域の認識をしていませんので , 上記制限事項に違反し
た配置が行われても , エラーメッセージを通知することはありません。リトルエンディ
アン領域に配置したセクションの内容を十分にご確認のうえ使用してください。
646
付録 D リトル・エンディ