11.4MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM71-10104-8
FR50
32 ビット・マイクロコントローラ
MB91360 Series
ハードウェアマニュアル
FR50
32 ビット・マイクロコントローラ
MB91360 Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
MB91360 シリーズは , FR50 ファミリの 32 ビットシングルチップマイクロコントロー
ラの一種として開発されました。MB91360 シリーズは RISC アーキテクチャ CPU コア
を含み , 高い CPU 処理能力を要する埋込みアプリケーションに適しています。
本マニュアルでは , MB91360 シリーズの機能および動作を説明しており , MB91360 シ
リーズ製品を使用して実際に製品を開発するエンジニアを対象としています。本書を
ご一読ください。MB91360 シリーズの命令セットの詳細については , 「FR Family
Instruction Manual」を参照してください。
■ 商標
FR ファミリは FUJITSU RISC コントローラの略であり , 富士通マイクロエレクトロニ
クス株式会社 の製品です。
本書に記載されている社名および製品名などの固有名詞は , 各所の商標または登録商
標です。
■ 本マニュアルの構成
本マニュアルは以下に示す 33 の章および付録から構成されています。
第 1 章 MB91360 シリーズの概要
MB91360 シリーズの概要を示し , 特長 , ブロックダイヤグラム , 機能などの重要な
情報について説明します。
第 2 章 CPU
FR50 ファミリ CPU コアのアーキテクチャ , 仕様と命令などの機能に関する重要な
情報について説明します。
第 3 章 命令キャッシュ
MB91360 シリーズのメンバである命令キャッシュメモリと , その動作について説明
します。
第 4 章 ブート ROM/ 構成レジスタ
シングルチップモードで使用される , 埋込み式ブート ROM の機能について説明し
ます。
第 5 章 クロック生成とデバイス状態
MB91360 シリーズの制御に使用するクロックの生成 , および制御について , 詳細に
説明します。さらに , デバイス状態 , および低電力モードについて解説します。こ
こでは , サブクロックなしの動作を想定しています。サブクロックの動作について
の説明は , 対応する章を参照してください。
第 6 章 クロック変調器
クロックモジュレータとその機能の概要について解説します。レジスタ構成および
クロックモジュレータの動作について , 解説します。
i
第 7 章 I/O ポート
I/O ポートの概要とレジスタの一覧を示し , 外部端子を I/O ポートとして使用するた
めの条件について説明します。
第 8 章 外部バスインタフェース
外部バスインタフェース , レジスタの構造と機能 , バス動作の基本 , バスの動作タイ
ミングについて説明します。
第 9 章 割込みコントローラ
割込みコントローラの概要を示し , レジスタの構造と機能 , および割込みコント
ローラの動作について説明します。
第 10 章 外部割込み / NMI コントローラ
外部割込み /NMI コントローラの概要を示し , レジスタの構成と機能 , および外部割
込み /NMI コントローラの動作について説明します。NMIX 端子が存在する型格は
2つです。
第 11 章 DMA コントローラ (DMAC)
DMA コントローラ (DMAC) の概要を示し , レジスタの構成と機能 , および DMA コ
ントローラの動作について説明します。
第 12 章 OS サポートモジュール
遅延割込みとビットサーチモジュールの概要を示し , レジスタの構成と機能 , 動作 ,
およびビットサーチモジュールの退避復帰処理について説明します。
第 13 章 PPG タイマ
PPG タイマの概要 , レジスタ構成と機能 , PPG タイマの動作について説明します。
第 14 章 A/D コンバータ
A/D コンバータの概要を示し , レジスタの構成と機能 , および A/D コンバータの動
作について説明します。
第 15 章 16 ビットリロードタイマ
16 ビットリロードタイマの概要を示し , レジスタの構成と機能 , および 16 ビットリ
ロードタイマの動作について説明します。
第 16 章 CAN コントローラ
CAN インタフェースの概要を示し , レジスタの構造と機能 , および CAN インタ
フェースの動作について説明します。
第 17 章 D/A コンバータ
D/A コンバータの概要を示し , レジスタの構造と機能 , および D/A コンバータの動
作について説明します。
第 18 章 I2C インタフェース (400 kHz)
高速 I2C インタフェースの機能と動作について説明します。
第 19 章 16 ビット I/O タイマ
MB91360 シリーズには , 2 つの 16 ビットフリーランタイマモジュール , 2 つのアウ
トプットコンペアモジュール , および 2 つのインプットキャプチャモジュールが含
まれ , 4 つの入力チャネルと 4 つの出力チャネルをサポートしています。ここでは ,
16 ビットフリーランタイマ , アウトプット 0/1, およびインプットキャプチャ 0/1 に
ついてのみ説明します。これら以外のモジュールは同一の機能を持ち , そのレジス
タアドレスは I/O マップにあります。
第 20 章 アラーム比較器
アラーム比較器 ( 不足 / 過電圧検出器 ) の概要を示し , レジスタの構造と機能 , およ
びアラーム比較器の動作について説明します。
ii
第 21 章 パワーダウンリセット
パワーダウンリセットの概要を示し , レジスタの構成と機能 , およびパワーダウン
リセットモジュールの動作について説明します。
第 22 章 シリアル I/O インタフェース (SIO)
シリアル I/O インタフェース (SIO) の概要を示し , レジスタの構成と機能 , およ
び SIO の動作について説明します。
第 23 章 サウンド生成器
サウンド生成器の概要を示し , レジスタの構成と機能について説明します。
第 24 章 ステッパモータ コントローラ
ステッパモータコントローラの概要を示し , レジスタの構成と機能について説明し
ます。
第 25 章 U- タイマ
U- タイマ (U-TIMER) は , UART のボーレートを発生するために使用する 16 ビット
タイマです。ここでは , U- タイマの概要を示し , レジスタの構造とその機能 , およ
び U- タイマの動作について説明します。
第 26 章 UART
UART は , 非同期 ( 開始ビット同期 ) 通信を行うためのシリアル I/O ポートです。こ
こでは , UART の概要を示し , レジスタの構造と機能 , および UART の動作につい
て説明します。
第 27 章 LIN 機能搭載 USART
USART の機能および動作について解説します。LIN (Local Interconnect Network) 機
能を搭載した USART は , 外部デバイスとの同期または非同期通信に使用する汎用
シリアルデータ通信インタフェースです。
第 28 章 リアルタイムクロック
リアルタイムクロック ( ウォッチタイマともよばれる ) のレジスタ構成とその機能 ,
RTC モジュールの動作について説明します。リアルタイムクロック ( ウォッチタイ
マ ) には , タイマ制御レジスタ , サブセカンドレジスタ , 秒 / 分 / 時レジスタ , 1/2 分
周器 , 21 ビットプリスケーラ , 秒 / 分 / 時カウンタがあります。リアルタイムクロッ
クは , 実時間タイマとして動作し , 実時間情報を与えます。
第 29 章 サブクロック
サブクロックの機能と動作について説明します。
第 30 章 32 kHz クロック補正ユニット
32 kHz クロック補正モジュールを使用すると , 4 MHz 発振クロックを基準にして
32 kHz 発振クロックを補正できます。ここでは , 補正ユニットの概要 , レジスタの
説明 , アプリケーションノートを示します。
第 31 章 フラッシュメモリ
MB91360 シリーズデバイスは , 256KB, 512KB または 768KB の内蔵フラッシュメモ
リを特長とします。MB91360 シリーズデバイス上では F- バスに接続されます。
第 32 章 EDSU
内蔵デバッグ・サポート・ユニット (EDSU) は , シングル・チップ FLASH MCU デ
バイスでの回路デバッグ・サポート機能の基本操作を可能にするモジュールです。
iii
第 33 章 MB91360( 代表マイコン : MB91F362GB) シリアル 書込み接続
シリアル書込みについて説明します。
付録
本付録には , 本文に含まれなかった詳細事項やプログラミングのための参考情報が
含まれています。「I/O マップ」, 「割込みベクタ」, 「各 CPU 状態における端子状
態」, および「命令」について説明します。
iv
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2001-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
v
vi
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
第2章
MB91360 シリーズの概要.......................................................................... 1
MB91360 シリーズの特長 ...................................................................................................... 2
MB91360 シリーズの製品ラインナップ................................................................................. 4
外形寸法図.............................................................................................................................. 8
MB91360 シリーズのブロック構成...................................................................................... 12
端子配列 ............................................................................................................................... 19
端子機能説明 ........................................................................................................................ 28
入出力回路の種類 ................................................................................................................. 63
メモリ空間............................................................................................................................ 69
デバイスの取扱いについて................................................................................................... 70
CPU.......................................................................................................... 73
2.1 CPU アーキテクチャ ............................................................................................................ 74
2.2 CPU ハードウェア構造 ........................................................................................................ 76
2.3 FR50 の内部アーキテクチャ ................................................................................................ 78
2.4 プログラミングモデル.......................................................................................................... 81
2.4.1
汎用レジスタ .............................................................................................................. 82
2.4.2
専用レジスタ .............................................................................................................. 83
2.4.3
プログラムステータスレジスタ (PS) ......................................................................... 85
2.5 データ構造............................................................................................................................ 89
2.5.1
ワードアラインメント ............................................................................................... 90
2.6 メモリマップ ........................................................................................................................ 91
2.7 命令 ...................................................................................................................................... 93
2.7.1
命令と基本命令の概要 ............................................................................................... 94
2.7.2
分岐命令 ................................................................................................................... 100
2.8 EIT( 例外 , 割込み , トラップ )............................................................................................ 103
2.8.1
多重 EIT 処理............................................................................................................ 110
2.8.2
EIT の動作 ................................................................................................................ 112
2.9 リセット ( デバイスの初期化 ) ........................................................................................... 115
2.9.1
リセットレベル ........................................................................................................ 116
2.9.2
リセットソース ........................................................................................................ 117
2.9.3
リセットシーケンス ................................................................................................. 120
2.9.4
発振安定待ち時間..................................................................................................... 121
2.9.5
リセットモード ........................................................................................................ 123
2.10 動作モード.......................................................................................................................... 125
2.10.1
バスモード ............................................................................................................... 126
2.10.2
モード設定 ............................................................................................................... 127
2.10.3
フィックスベクタ..................................................................................................... 129
第3章
3.1
3.2
3.3
3.4
3.5
命令キャッシュ ...................................................................................... 131
概要 .................................................................................................................................... 132
本体の構成.......................................................................................................................... 133
各動作モードの状態 ........................................................................................................... 139
命令キャッシュのキャッシュ可能領域............................................................................... 141
FR50 の I-Cache を使用する場合の設定方法..................................................................... 142
vii
第4章
4.1
4.2
第5章
ブート ROM/ 構成レジスタ.................................................................... 145
ブート ROM........................................................................................................................ 146
構成レジスタ (F362GB モードレジスタ F362MD)............................................................. 150
クロック生成とデバイス状態 ................................................................ 153
5.1 クロック生成の概要 ........................................................................................................... 154
5.2 ベースクロックの生成........................................................................................................ 155
5.3 PLL 制御 ............................................................................................................................. 156
5.4 待ち時間 ............................................................................................................................. 157
5.5 クロック分配 ...................................................................................................................... 159
5.6 クロックパルス分周 ........................................................................................................... 161
5.7 クロック生成制御 ............................................................................................................... 162
5.8 クロック生成制御ブロックのレジスタ............................................................................... 163
5.8.1
RSRR: リセット要因レジスタ , ウォッチドッグタイマ制御レジスタ..................... 164
5.8.2
STCR: スタンバイ制御レジスタ .............................................................................. 167
5.8.3
TBCR: タイムベースカウンタ制御レジスタ ............................................................ 170
5.8.4
CTBR: タイムベースカウンタクリアレジスタ......................................................... 173
5.8.5
CLKR: クロックソース制御レジスタ ....................................................................... 174
5.8.6
DIVR0: ベースクロック分周設定レジスタ 0 ............................................................ 177
5.8.7
DIVR1: ベースクロック分周設定レジスタ 1 ............................................................ 180
5.8.8
CMCR: CAN モジュールのクロック制御 ................................................................. 182
5.8.9
MONCLK 端子 .......................................................................................................... 183
5.9 クロックソース PLL との切換え ........................................................................................ 184
5.9.1
概要 .......................................................................................................................... 185
5.9.2
内部電圧変化の抑制 ................................................................................................. 186
5.9.3
クロック変調器 ........................................................................................................ 187
5.9.4
手続き....................................................................................................................... 188
5.10 クロック制御部が持つ周辺回路 ......................................................................................... 190
5.10.1
タイムベースカウンタ ............................................................................................. 191
5.11 デバイス状態の制御 ........................................................................................................... 194
5.11.1
デバイスの状態と遷移 ............................................................................................. 195
5.11.2
各状態遷移要求の優先順位 ...................................................................................... 198
5.12 低消費電力モード ............................................................................................................... 199
5.12.1
スリープモード ........................................................................................................ 200
5.12.2
停止モード /RTC モード........................................................................................... 202
5.12.3
ハードウェアスタンバイモード ............................................................................... 205
5.12.4
4 MHz RTC モードから実行モードへの移行 ........................................................... 208
第6章
クロック変調器 ...................................................................................... 209
6.1 クロック変調器の概要........................................................................................................ 210
6.2 レジスタ動作 ...................................................................................................................... 211
6.2.1
制御レジスタ (CMCR).............................................................................................. 212
6.2.2
変調パラメータレジスタ (CMPR) ............................................................................ 217
6.2.3
周波数解像度設定レジスタ (CMLS0 ∼ CMLS3)...................................................... 218
6.2.4
乱数ジェネレータおよび監視レジスタ (CMLT0 ∼ CMLT3) .................................... 219
6.2.5
自動キャリブレーション・リロード・タイマ値 (CMAC) ........................................ 221
6.2.6
ステータスレジスタ (CMTS).................................................................................... 222
6.3 その他の設定 ...................................................................................................................... 223
6.3.1
変調パラメータの選択 ............................................................................................. 224
viii
6.3.2
6.3.3
6.3.4
第7章
7.1
7.2
構成フローチャート ................................................................................................. 225
プログラム例 ............................................................................................................ 226
可能な設定 ............................................................................................................... 228
I/O ポート............................................................................................... 231
I/O ポートとレジスタ構成 .................................................................................................. 232
ポート機能レジスタ (PFR) の設定 ..................................................................................... 237
第8章
外部バスインタフェース........................................................................ 245
8.1 外部バスインタフェースの概要 ......................................................................................... 246
8.2 外部バスインタフェースのレジスタ .................................................................................. 249
8.3 外部バスの仕様 .................................................................................................................. 263
8.4 外部バスアクセス ............................................................................................................... 270
8.5 バス信号 ............................................................................................................................. 276
8.6 バスの動作タイミング........................................................................................................ 277
8.7 バスインタフェースを汎用入出力 ポートとして使用する方法.......................................... 289
8.7.1
注意事項 ................................................................................................................... 290
8.7.2
使用レジスタ ............................................................................................................ 291
8.7.3
CAN を使用しないソフトウェア操作....................................................................... 292
8.7.4
CAN を使用したソフトウェア操作 .......................................................................... 294
第9章
9.1
9.2
9.3
割込みコントローラ............................................................................... 297
割込みコントローラの概要................................................................................................. 298
割込みコントローラのレジスタ ......................................................................................... 299
割込みコントローラの動作................................................................................................. 303
第 10 章
外部割込み /NMI コントローラ .............................................................. 307
10.1 外部割込みコントローラの概要 ......................................................................................... 308
10.2 外部割込みコントローラのレジスタ .................................................................................. 309
10.3 外部割込みコントローラの動作 ......................................................................................... 311
第 11 章
11.1
11.2
11.3
11.4
11.5
11.6
11.7
DMA コントローラ (DMAC) .................................................................. 313
DMA コントローラ (DMAC) の概要.................................................................................... 314
DMA コントローラ (DMAC) のレジスタ ............................................................................ 316
DMA コントローラ (DMAC) の動作.................................................................................... 330
DMA コントローラ (DMAC) の動作フロー......................................................................... 351
データバスの転送例 ........................................................................................................... 354
外部 DMA 信号.................................................................................................................... 357
DMA 転送例 ........................................................................................................................ 358
第 12 章
OS サポートモジュール......................................................................... 365
12.1 遅延割込み.......................................................................................................................... 366
12.2 ビットサーチモジュール .................................................................................................... 367
12.2.1
ビットサーチモジュールのレジスタ ........................................................................ 368
12.2.2
ビットサーチモジュールの動作と退避復帰の処理 .................................................. 370
第 13 章
PPG タイマ ............................................................................................ 373
13.1 PPG タイマの概要.............................................................................................................. 374
ix
13.2 PPG タイマのレジスタ ...................................................................................................... 377
13.2.1
制御ステータスレジスタ (PCNH, PCNL)................................................................. 379
13.2.2
PPG 周期設定レジスタ (PCSR) ............................................................................... 383
13.2.3
PPG デューティ設定レジスタ (PDUT) .................................................................... 384
13.2.4
PPG タイマレジスタ (PTMR) .................................................................................. 385
13.2.5
汎用制御レジスタ 1(GCN10, GCN11) ..................................................................... 386
13.2.6
禁止 / 汎用制御レジスタ 2(GCN20, GCN21) ........................................................... 391
13.3 PPG タイマの動作.............................................................................................................. 392
13.3.1
PPG 動作.................................................................................................................. 393
13.3.2
ワンショット動作モード .......................................................................................... 395
13.3.3
割込み....................................................................................................................... 397
13.3.4
オール "L" とオール "H" の PPG 出力....................................................................... 398
13.3.5
複数の PPG タイマチャネルの起動 ......................................................................... 399
第 14 章
A/D コンバータ ...................................................................................... 401
14.1 A/D コンバータの概要 ........................................................................................................ 402
14.2 A/D コンバータのレジスタ................................................................................................. 404
14.2.1
A/D チャネル設定レジスタ (ADCH) ......................................................................... 405
14.2.2
A/D モードレジスタ (ADMD).................................................................................... 408
14.2.3
A/D 制御ステータスレジスタ (ADCS)...................................................................... 410
14.2.4
A/D データレジスタ (ADCD) .................................................................................... 412
14.2.5
A/D 禁止レジスタ (ADBL) ........................................................................................ 413
14.3 A/D コンバータの動作 ........................................................................................................ 414
第 15 章
16 ビットリロードタイマ ...................................................................... 417
15.1 16 ビットリロードタイマの概要 ........................................................................................ 418
15.2 16 ビットリロードタイマのレジスタ構成.......................................................................... 419
15.2.1
制御ステータスレジスタ (TMCSR).......................................................................... 420
15.2.2
16 ビットタイマレジスタ (TMR).............................................................................. 422
15.2.3
16 ビットリロードレジスタ (TMRLR) ..................................................................... 423
15.3 16 ビットリロードタイマの動作 ........................................................................................ 424
15.3.1
内部クロック動作..................................................................................................... 425
15.3.2
アンダフロー動作..................................................................................................... 426
15.3.3
カウンタの動作状態 ................................................................................................. 427
15.3.4
その他の動作 ............................................................................................................ 428
第 16 章
CAN コントローラ ................................................................................ 429
16.1 CAN コントローラの概要................................................................................................... 430
16.2 レジスタ ............................................................................................................................. 432
16.2.1
オーバオール制御レジスタ ...................................................................................... 439
16.2.2
送信 , および受信エラーカウンタ (RTEC) ............................................................... 444
16.2.3
ビットタイミングレジスタ (BTR)............................................................................ 445
16.2.4
メッセージバッファ制御レジスタ............................................................................ 447
16.2.5
メッセージバッファ ................................................................................................. 458
16.2.6
インタフェース制御レジスタ (CREG) ..................................................................... 463
16.3 CAN コントローラの動作................................................................................................... 465
16.4 使用手順 ............................................................................................................................. 470
x
第 17 章
D/A コンバータ ...................................................................................... 475
17.1 D/A コンバータの概要 ........................................................................................................ 476
17.2 D/A コンバータのレジスタ................................................................................................. 477
17.3 D/A コンバータの動作 ........................................................................................................ 480
第 18 章
I2C インタフェース (400 kHz) .............................................................. 483
18.1 I2C インタフェース (400 kHz) の概要 ................................................................................ 484
18.2 I2C インタフェース (400 kHz) のレジスタ ......................................................................... 486
18.2.1
バス制御レジスタ (IBCR2)....................................................................................... 488
18.2.2
バスステータスレジスタ (IBSR2) ............................................................................ 492
18.2.3
10 ビットスレーブアドレスレジスタ (ITBA) ........................................................... 495
18.2.4
10 ビットスレーブアドレスマスクレジスタ (ITMK) ................................................ 496
18.2.5
7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 498
18.2.6
7 ビットスレーブアドレスマスクレジスタ (ISMK).................................................. 499
18.2.7
データレジスタ (IDARH, IDAR2) ............................................................................. 501
18.2.8
クロック制御レジスタ (ICCR2) ............................................................................... 502
18.2.9
クロック禁止レジスタ (IDBL2) ................................................................................ 505
2
18.3 I C インタフェースの動作.................................................................................................. 506
18.4 プログラミングフローチャート ......................................................................................... 509
第 19 章
16 ビット I/O タイマ .............................................................................. 513
19.1 16 ビット I/O タイマの概要................................................................................................ 514
19.2 16 ビット I/O タイマのレジスタ......................................................................................... 516
19.2.1
16 ビットフリーランタイマ ..................................................................................... 518
19.2.2
アウトプットコンペアモジュール............................................................................ 522
19.2.3
インプットキャプチャモジュール............................................................................ 526
19.3 16 ビット I/O タイマの動作................................................................................................ 529
19.4 動作タイミング .................................................................................................................. 533
第 20 章
アラーム比較器 ...................................................................................... 537
20.1 アラーム比較器のブロックダイヤグラム ........................................................................... 538
20.2 アラーム比較器のレジスタ................................................................................................. 539
20.3 アラーム比較器の動作モード ............................................................................................. 541
第 21 章
パワーダウンリセット ........................................................................... 543
21.1 パワーダウンリセットの概要 ............................................................................................. 544
21.2 パワーダウンリセットのレジスタ...................................................................................... 545
21.3 パワーダウンリセットの動作モード .................................................................................. 546
第 22 章
シリアル I/O インタフェース (SIO)........................................................ 547
22.1 シリアル I/O インタフェース (SIO) の概要 ........................................................................ 548
22.2 シリアル I/O インタフェース (SIO) のレジスタ ................................................................. 550
22.2.1
シリアルモード制御ステータスレジスタ (SMCS) ................................................... 551
22.2.2
シリアルシフトデータレジスタ (SDR) .................................................................... 555
22.2.3
SIO エッジ選択 / クロック禁止レジスタ (SES) ....................................................... 556
22.2.4
シリアル I/O プリスケーラ (CDCR) ......................................................................... 557
22.3 シリアル I/O インタフェース (SIO) の動作 ........................................................................ 559
xi
第 23 章
サウンド生成器 ...................................................................................... 565
23.1 サウンド生成器の概要........................................................................................................ 566
23.2 サウンド生成器のレジスタ................................................................................................. 567
23.2.1
サウンドコントロールレジスタ ............................................................................... 568
23.2.2
周波数データレジスタ (SGFR) ................................................................................ 570
23.2.3
振幅データレジスタ (SGAR).................................................................................... 571
23.2.4
デクリメントグレードレジスタ (SGDR) ................................................................. 572
23.2.5
トーンカウントレジスタ (SGTR)............................................................................. 573
23.2.6
サウンド禁止レジスタ (SGDBL) .............................................................................. 574
第 24 章
ステッパモータコントローラ ................................................................ 575
24.1 ステッパモータコントローラの概要 .................................................................................. 576
24.2 ステッパモータコントローラのレジスタ ........................................................................... 578
24.2.1
ゼロ検知 0 レジスタ (ZPD0) .................................................................................... 579
24.2.2
PWM 制御 0 レジスタ (PWC0)................................................................................. 581
24.2.3
PWM1, PWM2 比較レジスタ (PWC10, PWC20) ..................................................... 582
24.2.4
PWM1, PWM2 選択レジスタ (PWS10, PWS20)...................................................... 583
24.2.5
PWM クロック禁止レジスタ (SMDBL) .................................................................... 585
第 25 章
U- タイマ................................................................................................ 587
25.1 U- タイマ (U-TIMER) の概要 .............................................................................................. 588
25.2 U- タイマ (U-TIMER) のレジスタ ....................................................................................... 589
25.3 U- タイマ (U-TIMER) の動作 .............................................................................................. 593
第 26 章
UART ..................................................................................................... 595
26.1 UART の概要 ...................................................................................................................... 596
26.2 UART のレジスタ ............................................................................................................... 598
26.2.1
シリアルモードレジスタ (SMR)............................................................................... 599
26.2.2
シリアル制御レジスタ (SCR)................................................................................... 601
26.2.3
シリアル入力レジスタ (SIDR), シリアル出力レジスタ (SODR) .............................. 603
26.2.4
シリアル状態レジスタ (SSR)................................................................................... 604
26.2.5
UART レベル選択レジスタ (ULS) ............................................................................ 606
26.3 UART の動作 ...................................................................................................................... 607
26.3.1
非同期 ( 開始ビット同期 ) モード............................................................................. 608
26.3.2
割込み発生 , およびフラグの設定タイミング .......................................................... 610
26.3.3
その他の項目 ............................................................................................................ 613
第 27 章
LIN 機能搭載 USART............................................................................. 617
27.1 USART の概要.................................................................................................................... 618
27.2 USART の構成.................................................................................................................... 621
27.3 USART の端子.................................................................................................................... 625
27.4 USART のレジスタ............................................................................................................. 627
27.4.1
シリアルコントロールレジスタ (SCR5) .................................................................. 628
27.4.2
シリアルモードレジスタ (SMR5)............................................................................. 631
27.4.3
シリアルステータスレジスタ (SSR5) ...................................................................... 633
27.4.4
受信および送信データレジスタ (RDR5/TDR5)........................................................ 636
27.4.5
拡張ステータス制御レジスタ (ESCR5) ................................................................... 638
27.4.6
拡張通信制御レジスタ (ECCR5) .............................................................................. 640
27.4.7
ボーレート / リロードカウンタレジスタ 0 および 1 (BGR0/BGR1)........................ 642
xii
27.5 USART の割込み ................................................................................................................ 643
27.5.1
受信割込みの発生とフラグの設定タイミング.......................................................... 646
27.5.2
送信割込みの発生とフラグの設定タイミング.......................................................... 647
27.6 USART ボーレート............................................................................................................. 648
27.6.1
ボーレートの設定..................................................................................................... 650
27.6.2
リロードカウンタの再スタート ............................................................................... 652
27.7 USART の動作.................................................................................................................... 653
27.7.1
非同期モードでの動作 ( モード 0, モード 1) ............................................................ 655
27.7.2
同期モードでの動作 ( 動作モード 2) ........................................................................ 657
27.7.3
LIN 機能を用いた操作 ( モード 3) ............................................................................ 661
27.7.4
シリアル端子への直接アクセス ............................................................................... 663
27.7.5
双方向通信機能 ( ノーマルモード ) .......................................................................... 664
27.7.6
マスタ - スレーブ通信機能 ( マルチプロセッサモード ) .......................................... 665
27.7.7
LIN 通信機能............................................................................................................. 668
27.7.8
LIN 通信における USART フローチャート例 ( 運用モード 3) ................................. 669
27.8 USART の使用上の注意 ..................................................................................................... 672
第 28 章
28.1
28.2
28.3
28.4
ブロックダイヤグラム........................................................................................................ 676
レジスタ構成 ...................................................................................................................... 677
レジスタの詳細 .................................................................................................................. 679
更新ビット (UPDT) の使用................................................................................................. 683
第 29 章
29.1
29.2
29.3
29.4
リアルタイムクロック ........................................................................... 675
サブクロック.......................................................................................... 685
サブクロックシステムの概要 ............................................................................................. 686
サブクロックの動作 (SELCLK = 0) .................................................................................... 687
4 MHz リアルタイムクロックの構成 (SELCLK = 1) .......................................................... 688
リアルタイムクロックモジュールの使用方法.................................................................... 689
第 30 章
32 kHz クロック補正ユニット ............................................................... 691
30.1 概要 .................................................................................................................................... 692
30.2 レジスタの説明 .................................................................................................................. 696
30.2.1
補正ユニット制御レジスタ (CUCR)......................................................................... 698
30.2.2
32 kHz タイマデータレジスタ (16 ビット )(CUTD) ................................................. 700
30.2.3
4 MHz タイマデータレジスタ (24 ビット )(CUTR) .................................................. 702
30.3 アプリケーションノート .................................................................................................... 703
第 31 章
フラッシュメモリ .................................................................................. 705
31.1 フラッシュメモリの概要 .................................................................................................... 706
31.2 フラッシュメモリのブロックダイヤグラム ....................................................................... 707
31.3 書込み / 消去モード ............................................................................................................ 713
31.4 フラッシュ制御ステータスレジスタ (FMCS)..................................................................... 720
31.5 読出し / 書込みアクセス ..................................................................................................... 722
31.6 自動書込み / 消去................................................................................................................ 728
31.6.1
フラッシュコマンド ................................................................................................. 729
31.6.2
自動アルゴリズムの実行状態................................................................................... 736
31.7 セクタ保護動作 .................................................................................................................. 741
31.8 外部コマンド ...................................................................................................................... 744
31.9 フラッシュメモリへの接続................................................................................................. 746
xiii
31.10 フラッシュメモリ使用上の注意 ......................................................................................... 747
31.11 フラッシュメモリモードのタイミング図 ........................................................................... 748
31.12 フラッシュメモリモードでの AC 特性 ............................................................................... 755
第 32 章
EDSU ..................................................................................................... 759
32.1 EDSU の概要 ...................................................................................................................... 760
32.1.1
EDSU アプリケーションシステム ........................................................................... 761
32.1.2
デバッグシステム..................................................................................................... 762
32.1.3
EDSU メイン機能..................................................................................................... 763
32.1.4
EDSU の詳細............................................................................................................ 764
第 33 章
33.1
33.2
33.3
33.4
33.5
付録
付録 A
A.1
付録 B
付録 C
付録 D
D.1
D.2
索引
MB91360( 代表マイコン : MB91F362GB) シリアル書込み接続 ........... 765
MB91360( 代表マイコン : MB91F362GB) 書込み基本構成................................................ 766
富士通標準シリアルオンボード書込みに使用する端子 ..................................................... 767
シリアル書込み接続例........................................................................................................ 769
フラッシュマイコンプログラマシステム構成.................................................................... 777
その他の注意事項 ............................................................................................................... 778
............................................................................................................... 779
I/O マップ ..................................................................................................................... 780
MB91F376G 特殊 I/O マップ ...................................................................................... 809
割込みベクタ ................................................................................................................. 816
CPU の各状態における端子の状態 ............................................................................... 820
命令 ............................................................................................................................... 825
命令一覧...................................................................................................................... 826
FR50 ファミリの命令 ................................................................................................. 830
............................................................................................................... 845
xiv
本版での主な変更内容
ページ
変更内容(詳細は本文を参照してください。
)
-
-
品種を変更
(MB91FV360 → MB91FV360GA)
(MB91F362GA → MB91F362GB)
-
-
端子名を変更
(AVSS → AVSS/AVRL)
-
-
レジスタ名を変更
(GNC20 → GCN20)
(GNC21 → GCN21)
-
-
レジスタ名を変更
( 受け入れマスクレジスタ 0,1(AMR0,AMR1) →
受入れマスクレジスタ 00, 10(AMR00, AMR10))
-
-
用語を統一
(・変調原理 → ブロックダイヤグラム
・クォーツ → 水晶
・ボー → bps
・オシレータ → 発振
・実装 → 搭載
・デフォルト → 初期値
・サブクロック校正 → サブクロック補正
・ステッパモータ制御 → ステッピングモータ制御 )
-
-
5.8.6 WPR: ウォッチドッグリセット生成延期レジスタ を削除
16
1.4 MB91360 シリーズ
のブロック構成
表 1.4-2 を変更
(MB91FV360GA と MB91F362GA で利用可能です。→
MB91FV360GA と MB91F362GB で利用可能です。)
23
第 1 章 MB91360
シリーズの概要
1.5 端子配列
図 1.5-5 を変更
(PWM2M2 → PWM2M3)
28 ∼
44
第 1 章 MB91360
シリーズの概要
1.6 端子機能説明
表 1.6-1 を変更
表 1.6-2 を変更
118
第 2 章 CPU
2.9.2 リセットソース
■ ウォッチドッグリセット を変更
( ウォッチドッグリセットの発生遅延レジスタ (WPR) →
タイムベースカウンタクリアレジスタ (CTBR))
148
第 4 章 ブート ROM/
構成レジスタ
4.1 ブート ROM
表 4.1-2 を変更
(Adr → Addr)
54 ∼
57
表 1.6-5 を変更
xv
ページ
変更内容(詳細は本文を参照してください。)
149
第 4 章 ブート ROM/
構成レジスタ
4.1 ブート ROM
表 4.1-3 に注意事項を追加
( 注 ) RSRR のリセット要因ビットは読み出し動作によってクリ
アされます。読み出し値は R4 を確認してください。)
162
第 5 章 クロック生成
とデバイス状態
5.7 クロック生成制御
図 5.7-1 を変更
166
第 5 章 クロック生成
とデバイス状態
5.8.1 RSRR: リセット
要因レジスタ , ウォッ
チドッグタイマ制御
レジスタ
表 5.8-1 を変更
(WPR → CTBR)
167,
168
第 5 章 クロック生成
とデバイス状態
5.8.2 STCR: スタンバ
イ制御レジスタ
■ スタンバイ制御レジスタ に <注意事項> を追加
173
第 5 章 クロック生成
とデバイス状態
5.8.4 CTBR: タイム
ベースカウンタクリ
アレジスタ
■ タイムベースカウンタクリアレジスタ を変更
177
第 5 章 クロック生成
とデバイス状態
5.8.6 DIVR0: ベースク
ロック分周設定
レジスタ 0
■ ベースクロック分周設定レジスタ 0 のビットを変更
(bit 7 6 5 4 3 2 1 0 → bit 15 14 13 12 11 10 9 8 )
189
第 5 章 クロック生成
とデバイス状態
5.9.4 手続き
図 5.9-1 を変更
(・TCB → TBC
・MFWT → FMWT)
191
第 5 章 クロック生成
とデバイス状態
5.10.1 タイムベース
カウンタ
■ ウォッチドッグタイマ を変更
(WPR( ウォッチドッグリセット発生遅延レジスタ ) →
CTBR( タイムベースカウンタクリアレジスタ ))
202
第 5 章 クロック生成
とデバイス状態
5.12.2 停止モード /
RTC モード
■ 停止モード /RTC モード を変更
233
第 7 章 I/O ポート
7.1 I/O ポートと
レジスタ構成
図 7.1-2 のビット名を変更
(PK7 PK6 PJK PK4 PK3 PK2 PJK PK0 →
PK7 PK6 PK5 PK4 PK3 PK2 PK1 PK0)
243
第 7 章 I/O ポート
7.2 ポート機能レジス
タ (PFR) の設定
表 7.2-1 の PFRT レジスタのビット欄を追加
xvi
ページ
変更内容(詳細は本文を参照してください。)
276
第 8 章 外部バスイン
タフェース
8.5 バス信号
表 8.5-1 を変更
(Z → Hi-Z)
286
第 8 章 外部バスイン
タフェース
8.6 バスの動作タイミ
ング
■ アイドルサイクルでの動作 を変更
(CKLT → CLKT)
315
第 11 章 DMA コント
ローラ (DMAC)
11.1 DMA コントロー
ラ (DMAC) の概要
図 11.1-1 を変更
(DSS[3:0] → DSS[2:0])
320
第 11 章 DMA コント
ローラ (DMAC)
11.2 DMA コントロー
ラ (DMAC) のレジス
タ
■ DMAC- チャネル 0, 1, 2, 3, 4 制御 / 状態レジスタ A(DMACA0 ∼
DMACA4) の [bit28 ∼ bit24] IS4 ∼ IS0(Input Select)*: 転送要因の
選択 を変更
( ハードウェア → ソフトウェア転送要求のみ )
322
■ DMAC- チャネル 0, 1, 2, 3, 4 コントロール / ステータスレジス
タ B(DMACB0 ∼ DMACB4) の図を変更
(MD[1:0] → MOD[1:0])
323
[bit29, bit28] MOD(Mode)*: 転送モード設定 を変更
(MODE(Mode) → MOD(Mode))
325
[bit21] DADR(Dest.-Addr.-Reg.Reload)*: 転送先アドレスレジスタ
リロード指定 を変更
( ビット 17 の DRLD → bit22 の SADR)
第 11 章 DMA コント
ローラ (DMAC)
11.3 DMA コントロー
ラ (DMAC) の動作
■ エラーによる停止 を変更
391
第 13 章 PPG タイマ
13.2.6 禁止 / 汎用制御
レジスタ 2(GCN20,
GCN21)
図 13.2-9 のビット構成 のビットを変更
(bit7 6 5 4 3 2 1 0 → bit15 14 13 12 11 10 9 8)
431
第 16 章 CAN コント
ローラ
16.1 CAN コントロー
ラの概要
図 16.1-1 を変更
495
第 18 章 I2C インタ
フェース (400 kHz)
18.2.3 10 ビットスレー
ブアドレスレジスタ
(ITBA)
[bit9 ∼ bit0] TBA(Ten Bit slave Address : 10 ビットスレーブアドレス
(TA9 ∼ TA0) を変更
(TBAL レジスタ → ITBA レジスタ )
529
第 19 章 16 ビット I/O
タイマ
19.3 16 ビット I/O
タイマの動作
(・停止中に , TCDC レジスタに "0000H" が書き込まれたとき
343
346 ∼
348
■ 外部端子 , および内部動作のタイミング を変更
→ ・停止中に , TCDT レジスタに "0000H" が書き込まれたとき )
xvii
ページ
変更内容(詳細は本文を参照してください。)
571
第 23 章 サウンド生成
器
23.2.3 振幅データ
レジスタ (SGAR)
23.2.3 のタイトルを変更
(23.2.3 振幅データレジスタ (SAGR) →
23.2.3 振幅データレジスタ (SGAR))
629
第 27 章 LIN 機能搭載
USART
27.4.1 シリアルコント
ロールレジスタ
(SCR5)
表 27.4-1 の各ビットの機能 を変更
634
第 27 章 LIN 機能搭載
USART
27.4.3 シリアルステー
タスレジスタ (SSR5)
表 27.4-4 の各ビットの機能 を変更
( シリアル・モード・レジスタ (SMR5) →
シリアルコントロールレジスタ (SCR5))
789
付録 A I/O マップ
付録 A I/O マップ
アドレス 000484H 列を変更
(WPR[W] XXXXXXXX → - )
変更箇所は , 本文中のページ左側の│によって示しています。
xviii
第1章
MB91360 シリーズの概要
MB91360 シリーズの概要を示し , 特長 , ブロック
ダイヤグラム , 機能などの重要な情報について説明
します。
1.1 MB91360 シリーズの特長
1.2 MB91360 シリーズの製品ラインナップ
1.3 外形寸法図
1.4 MB91360 シリーズのブロック構成
1.5 端子配列
1.6 端子機能説明
1.7 入出力回路の種類
1.8 メモリ空間
1.9 デバイスの取扱いについて
1
第 1 章 MB91360 シリーズの概要
1.1
MB91360 シリーズの特長
MB91360 シリーズは , 一連の入出力周辺回路 , およびバス制御機能を搭載する標準
的なマイクロコントローラです。32 ビット RISC CPU(FR50 ファミリ ) コアの採用
により , 高性能 , および高速 CPU 処理を必要とする埋込み制御のアプリケーション
に適しています。また , 内部メモリを搭載することにより , CPU の実行速度を向上
させています。
■ MB91360 シリーズの特長
● 実行時間 : 最短 15.6ns(64 MHz) - デバイスに依存します。
● FR50 ファミリ CPU: RISC アーキテクチャ
本 CPU は , 数値実装を強化した汎用レジスタアーキテクチャを持ち , その広範囲な遅
延分岐命令によって , パイプラインブレークによる実行時間のロスを軽減します。
ビット操作命令 , およびメモリアクセス命令の強化により , 制御実装のコード効率 , お
よび実行速度が向上しています。
• 5 段階のパイプライン構成による高速処理 (1 サイクルあたり 1 命令 )
• 32 ビット線形アドレス空間 : 4G バイト
• l6 ビット固定長命令 ( 基本命令 )
• 高速の乗算 , およびステップ除算
• 高速割込み処理 (6 サイクル )
• 汎用レジスタ : l6×32 ビット
● 多彩な機能を持つ外部バスインタフェースユニット
MB91360 シリーズは , 外部メモリ空間を最大 8 領域に分割します。領域ごとに , チッ
プ選択信号の設定 , データバスの幅の選択 (8, l6, 32 ビット ), および領域サイズの指定
が可能です。
• 最大 32 ビット幅のアドレスバス
• プログラマブル自動待機機能
● DMAC
MB91360 シリーズは , ダイレクトメモリアクセス (DMA) により , CPU を経由せずに ,
さまざまな形式のデータ転送を実行できます。これにより , システムパフォーマンスが
向上します。
• 8 チャネル ( 最大 3 個の外部チャネルを含む )
• 4 個の転送モードをサポート :
シングル / ブロック , バースト , 連続転送 , および
フライバイ
2
第 1 章 MB91360 シリーズの概要
● 電力消費制御メカニズム
本 CPU は , 電力消費を抑えるために , 動作クロックを制御する機能を搭載しています。
• ソフトウェア制御 : スリープ機能 , および停止機能 / リアルタイムクロック機能
• ハードウェア制御 : ハードウェアスタンバイ機能
• ギア ( 分割 ) 機能 : CPU, および周辺回路のクロック周波数を個別に設定できます。
● 周辺機能
• UART, U- タイマ
• リアルタイムクロック ( オプションのサブクロック動作 , およびサブクロック補正
モジュール付 )
• ステップモータ制御
• サウンド生成器
• シリアル IO(SIO), SIO プリスケーラ
• パワーダウンリセット
• アラーム比較器
• IO タイマ
• I2C インタフェース
• 10 ビット D/A コンバータ
• CAN インタフェース
• 10 ビット A/D コンバータ
• l6 ビットリロードタイマ
• l6 ビット PPG タイマ
• ウォッチドッグタイマ
• ビットサーチモジュール
• 割込みコントローラ
• 外部割込み入力
• I/O ポート機能
● 割込みレベル
l6 のマスク可能割込みレベル
● 電源電圧
5V 電源を使用。内部レギュレータが内部電圧 3.3V を発生します。
● パッケージ
• MB91FV360GA: PGA401 パッケージ
• MB91F362GB : QFP208 パッケージ
• MB91F369GA : QFP160 パッケージ
• MB91F364G, MB91F365GB, MB91F366GB, MB91F367GB, MB91F368GB, MB91F376G,
MB91366GA
: QFP120 パッケージ
(「1.3 外形寸法図」も参照してください )。
3
第 1 章 MB91360 シリーズの概要
1.2
MB91360 シリーズの製品ラインナップ
MB91360 シリーズの製品を紹介し , それらの機能 , およびメモリサイズを表 1.2-1 ,
表 1.2-2 に示します。
■ MB91360 シリーズの製品ラインナップ
表 1.2-1 MB91360 シリーズの製品ラインナップ (MB91FV360GA, MB91F362GB, MB91F364G,
MB91F369GA) (1 / 2)
4
機能
MB91FV360GA
MB91F362GB
MB91F364G
MB91F369GA
キャッシュ / 命令 RAM
4 KB / 4 KB
- / 4 KB
-/-
- / 4 KB
D- バス RAM
16 KB
12 KB
12KB
16 KB
F- バス RAM
16 KB
4 KB
4KB
16 KB
フラッシュ /ROM
(F- バス )
512 KB
高速フラッシュ
512 KB
通常フラッシュ
256 KB
高速フラッシュ
512 KB
高速フラッシュ
ブート ROM
2 KB
2 KB
2 KB
2 KB
EDSU
なし
なし
1
なし
CAN
4 ch
3 ch
1 ch
2 ch
ステップモータ制御
4 ch
4 ch
なし
なし
サウンド生成器
1 ch
1 ch
なし
1 ch
PPG
8 ch
8 ch
4 ch
4 ch
インプットキャプチャ
4 ch
4 ch
4 ch
なし
アウトプットコンペア
4 ch
4 ch
4 ch
なし
フリーランタイマ
2 ch
2 ch
2 ch
なし
D/A コンバータ
2 ch
2 ch
2 ch
なし
A/D コンバータ
16 ch
16 ch
12 ch
10 ch
I2C 400 kHz
1 ch
1 ch
1 ch
1 ch
アラーム比較器
1 ch
1 ch
なし
1 ch
SIO/SIO プリスケーラ
2 ch
2 ch
1 ch
2 ch
UART/U- タイマ
3 ch
3 ch
1 ch
1 ch
LIN 機能付き USART
なし
なし
2 ch
なし
16 ビットリロードタイマ
6 ch
6 ch
3 ch
6 ch
外部割込み
8 ch
8 ch
8 ch
8 ch
NMI
1
なし
1
なし
第 1 章 MB91360 シリーズの概要
表 1.2-1 MB91360 シリーズの製品ラインナップ (MB91FV360GA, MB91F362GB, MB91F364G,
MB91F369GA) (2 / 2)
機能
MB91FV360GA
MB91F362GB
MB91F364G
MB91F369GA
リアルタイムクロック
1
1
1
1
RTC 用 32 kHz
サブクロックオプション
あり
なし
あり
なし
サブクロック補正
あり
なし
あり
なし
LED ポート
8 ビット
8 ビット
8 ビット
なし
パワーダウンリセット
1
1
なし
1
ビットサーチモジュール
1
1
1
1
ウォッチドッグタイマ
1
1
1
1
外部アドレスバス
32 ビット
21 ビット
なし
最大 24 ビット
外部データバス
32 ビット
32 ビット
なし
32 ビット
外部 DMA
3 ch
1 ch
なし
1 ch
最大動作周波数
( デバイス固有の仕様につい
てはデータシートを参照 )
64 MHz
64 MHz
64 MHz
64 MHz
5
第 1 章 MB91360 シリーズの概要
表 1.2-2 MB91360 シリーズの製品ラインナップ (MB91F365GB, MB91F366GB, MB91366GA,
MB91F367GB, MB91F368GB, MB91F376G) (1 / 2)
6
機能
MB91F365GB
MB91F366GB
MB91366GA
MB91F367GB
MB91F368GB
MB91F376G
キャッシュ / 命令 RAM
-/4 KB
-/4 KB
-/4 KB
-/4 KB
-/4 KB
D- バス RAM
16 KB
16 KB
16 KB
16 KB
16 KB
F- バス RAM
16 KB
16 KB
16 KB
16 KB
16 KB
フラッシュ /ROM
(F- バス )
512 KB
高速
フラッシュ
512 KB
通常
フラッシュ
512 KB
高速
フラッシュ
512 KB
高速
フラッシュ
768 KB
高速
フラッシュ
ブート ROM
2 KB
2 KB
2 KB
2 KB
2 KB
EDSU
なし
なし
なし
なし
なし
CAN
2 ch
2 ch
2 ch
2 ch
2 ch
ステップモータ制御
4 ch
4 ch
なし
なし
4 ch
サウンド生成器
1 ch
1 ch
なし
なし
1 ch
PPG
8 ch
8 ch
4 ch
4 ch
8 ch
インプットキャプチャ
4 ch
4 ch
4 ch
4 ch
4 ch
アウトプットコンペア
2 ch
2 ch
2 ch
2 ch
2 ch
フリーランタイマ
2 ch
2 ch
2 ch
2 ch
2 ch
D/A コンバータ
2 ch
なし
なし
なし
なし
A/D コンバータ
8 ch
8 ch
8 ch
8 ch
8 ch
I2C 400 kHz
1 ch
1 ch
1 ch
1 ch
1 ch
アラーム比較器
1 ch
1 ch
1 ch
1 ch
1 ch
SIO/SIO プリスケーラ
2 ch
2 ch
2 ch
2 ch
2 ch
UART/U- タイマ
2 ch
2 ch
1 ch
1 ch
2 ch
LIN 機能付き USART
なし
なし
なし
なし
なし
16 ビットリロードタイマ
6 ch
6 ch
3 ch
3 ch
6 ch
外部割込み
8 ch
8 ch
8 ch
8 ch
8 ch
NMI
なし
なし
なし
なし
なし
リアルタイムクロック
1
1
1
1
1
RTC 用 32 kHz
サブクロックオプション
なし
あり
なし
あり
あり
サブクロック補正
なし
あり
なし
あり
あり
LED ポート
なし
なし
なし
なし
なし
第 1 章 MB91360 シリーズの概要
表 1.2-2 MB91360 シリーズの製品ラインナップ (MB91F365GB, MB91F366GB, MB91366GA,
MB91F367GB, MB91F368GB, MB91F376G) (2 / 2)
機能
MB91F365GB
MB91F366GB
MB91366GA
MB91F367GB
MB91F368GB
MB91F376G
パワーダウンリセット
1
1
1
1
1
ビットサーチモジュール
1
1
1
1
1
ウォッチドッグタイマ
1
1
1
1
1
外部アドレスバス
なし
なし
なし
なし
なし
外部データバス
なし
なし
なし
なし
なし
外部 DMA
なし
なし
なし
なし
なし
最大動作周波数
( デバイス固有の仕様につい
てはデータシートを参照 )
64 MHz
64 MHz
64 MHz
64 MHz
64 MHz
7
第 1 章 MB91360 シリーズの概要
1.3
外形寸法図
MB91360 シリーズで使用する各パッケージの外形寸法図を示します。
■ パッケージ外形寸法図
図 1.3-1 MB91FV360GA (PGA-401C-A02)
セラミック・PGA, 401 ピン
リードピッチ
2.54 インタースティシャル
ピンマトリックス
37
封止方法
メタルシール
(PGA-401C-A02)
セラミック・PGA, 401 ピン
(PGA-401C-A02)
48.26 ± 0.55 SQ
(1.900 ± .022)
2.54 (.100) TYP
0.40 ± 0.10
DIA
(.016 ± .004)
1.00 (.039) DIA TYP
(4 PLCS)
45.72 (1.800)
REF
INDEX AREA
1.02 (.040) C TYP
(4 PLCS)
1.20 ± 0.25
(.047 ± .010)
EXTRA INDEX PIN
3.40 ± 0.40
(.134 ± .016)
5.27 (.207)
MAX
C
1994-2008 FUJITSU MICROELECTRONICS LIMITED R401002SC-2-3
最新の外形寸法図については , 下記 URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
8
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 MB91360 シリーズの概要
図 1.3-2 MB91F362GB (FPT-208P-M04)
プラスチック・QFP, 208 ピン
(FPT-208P-M04)
プラスチック・QFP, 208 ピン
(FPT-208P-M04)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
28.0 × 28.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
3.95mm MAX
質量
5.71g
特徴
低熱抵抗タイプ
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
30.60±0.20(1.205±.008)SQ
* 28.00±0.10(1.102±.004)SQ
+0.03
0.17 –0.08
156
+.001
.007 –.003
105
157
104
0.08(.003)
Details of "A" part
+0.20
3.75 –0.30
+.008
.148 –.012
(Mounting height)
+0.10
0.40 –0.15
+.004
INDEX
0˚~8˚
208
LEAD No.
53
1
"A"
52
0.50(.020)
0.22±0.05
(.009±.002)
0.08(.003)
0.50±0.20
(.020±.008)
0.60±0.15
(.024±.006)
0.25(.010)
M
©2003-2008 FUJITSU MICROELECTRONICS LIMITED F208020S-c-3-5
C
.016 –.006
(Stand off)
2003 FUJITSU LIMITED F208020S-c-3-4
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
9
第 1 章 MB91360 シリーズの概要
図 1.3-3 MB91F369GA (FPT-160P-M15)
プラスチック・QFP, 160 ピン
(FPT-160P-M15)
プラスチック・QFP, 160 ピン
(FPT-160P-M15)
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
28 × 28mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
4.10mm MAX
特徴
低熱抵抗タイプ
コード(参考)
P-QFP160-28×28-0.65
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
32.00±0.20(1.260±.008)SQ
+0.05
* 28.00±0.10(1.102±.004)SQ
0.17 –0.03
+.002
.007 –.001
81
120
80
121
0.10(.004)
Details of "A" part
+0.35
3.75 –0.20
+.014
.148 –.008
(Mounting height)
0.25(.010)
INDEX
0~8°
160
41
1
0.65(.026)
+0.08
0.32 –0.07
+.0031
.013 –.0028
C
"A"
40
0.13(.005)
最新の外形寸法図については , 下記の URL にてご確認ください。
10
+0.10
0.40 –0.15
+.004
.016 –.006
(Stand off)
M
2003-2008 FUJITSU MICROELECTRONICS LIMITED F160037S-c-3-4
http://edevice.fujitsu.com/package/jp-search/
0.80±0.20
(.031±.008)
0.88±0.15
(.035±.006)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 MB91360 シリーズの概要
図 1.3-4 MB91F364G, MB91F365GB, MB91F366GB, MB91F367GB,
MB91F368GB, MB91366GA および MB91F376G (FPT-120P-M21)
プラスチック・LQFP, 120ピン
(FPT-120P-M21)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
16.0 × 16.0mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.88g
コード(参考)
P-LFQFP120-16×16-0.50
プラスチック・LQFP, 120ピン
(FPT-120P-M21)
注 1)* 印寸法はレジン残りを含む。
レンジ残りは、片側+0.25(.010)MAX。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
18.00±0.20(.709±.008)SQ
+0.40
* 16.00 –0.10 .630 +.016
–.004 SQ
90
61
60
91
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
(Mounting height)
.059 –.004
INDEX
0~8˚
120
LEAD No.
"A"
31
1
30
0.50(.020)
0.22±0.05
(.009±.002)
+0.05
0.08(.003)
M
0.145 –0.03
+.002
.006 –.001
©2002-2008 FUJITSU MICROELECTRONICS LIMITED F120033S-c-4-5
C
2002 FUJITSU LIMITED F120033S-c-4-4
0.60±0.15
(.024±.006)
0.10±0.05
(.004±.002)
(Stand off)
0.25(.010)
単位:mm (inches)
注意:括弧内の値は参考値です。
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
11
第 1 章 MB91360 シリーズの概要
1.4
MB91360 シリーズのブロック構成
MB91360 シリーズのブロックダイヤグラム , およびブロック機能の特長について示
します。
■ MB91360 シリーズデバイスの全体ブロックダイヤグラム
図 1.4-1 に , MB91360 シリーズデバイスの全体ブロックダイヤグラムを示します。
図 1.4-1 MB91360 シリーズデバイスの全体ブロックダイヤグラム
クロック生成
FR50コア
ユーザ RAM
Dバス
32
ウォッチ ドッグ
タイマ
命令キャッシュ/
RAM
32
ビットサーチ
モジュール
FバスRAM
32
DMAコントローラ
ブート ROM
2KB
32
バス
コンバータ
32
フラッシュ メモリ
外部バスインタ
フェース
R-bus アダプタ
CAN
外部バス
16
SIOプリス ケーラ/
SIO
ADC
DAC
外部 割込み
サブクロック
補正
U-TIMER/
UART
2
IIC
パワーダウン
リセット
リロード
タイマ
ICU
アラーム
コンパレータ
フリーラン
タイマ
リアルタイム
クロック
OCU
電圧
レギュレータ
LED
12
サウンド
生成器
ステッピング
モータ制御
プログラム
パルス発生器
第 1 章 MB91360 シリーズの概要
■ MB91360 シリーズのブロック機能
表 1.4-1 , および表 1.4-2 に , MB91360 シリーズのブロック機能の一覧を示します。
表 1.4-1 MB91360 シリーズのブロック機能〈1〉(1 / 2)
機能
特長
備考
FR50 コア
32 ビット富士通 RISC コア
FR30 とソフトウェア互換
クロックモジュール
( クロック制御 ,
クロック分周 , PLL)
CPU, および周辺回路の周波数を設定しま
す。
低消費電力モード :
RTC モード : リアルタイムクロック ,
および発振器だけがアク
ティブになります。
STOP モード : すべての内部回路 , および
発振回路を停止します。
モード MD[2:0] = 000 での発
振安定時間初期値は , 4 MHz
発振クロックで 32ms です。
時間は , INITX 解放後の時間
です。
サブクロック / 補正
32 kHz
リアルタイムクロックモジュールのクロッ
クは 32 kHz ∼ 4 MHz の水晶が使用でき
ます。動的スイッチは利用できません。
また , 32 kHz で動作するリアルタイムク
ロックタイマを , より正確な 4 MHz ク
ロックタイミングに基づき補正すること
が可能です。
利用可能。
ウォッチドッグ
ウォッチドッグタイマの間隔を調整でき
ます (220 ∼ 226 システムクロックサイク
ル )。
キャッシュまたは
命令 RAM
最大 4 KB
キャッシュモード (RAM モード ), ロック
機能は特定のプログラムセクションの
キャッシュを常駐させます。
*1, *2
ユーザ RAM
最大 16 KB
ユーザデータ用 RAM
*1, *2
F- バス RAM
最大 16 KB
データ , およびコード用 RAM
*1, *2
フラッシュメモリ
512 KB
セクタアーキテクチャ
セクタ 0: 64 KB
セクタ 7: 64 KB
セクタ 1: 64 KB
セクタ 8: 64 KB
セクタ 2: 64 KB
セクタ 9: 64 KB
セクタ 3: 32 KB
セクタ 10: 32 KB
セクタ 4: 8 KB
セクタ 11: 8 KB
セクタ 5: 8 KB
セクタ 12: 8 KB
セクタ 6: 16 KB
セクタ 13: 16 KB
↓
↓
16 ビット
16 ビット
最低 10000 プログラム /
イレースサイクル
最低 10 年間データ保持
位置は F- バス
MB91F376G については ,
データシートを参照してく
ださい。
書込みは 16 ビット幅,読出しは
16 ビットまたは 32 ビット幅
13
第 1 章 MB91360 シリーズの概要
表 1.4-1 MB91360 シリーズのブロック機能〈1〉(2 / 2)
機能
特長
備考
ブート ROM
2 KB
チップ初期化 , ブート状態のチェック ,
ブートストラップローダなどの機能があ
ります。
DMA
5 チャネル ( 最大 3 個の外部チャネルを含
みます )
最大 16 の DMA ソースが使用可能です。
転送モード : シングル / ブロック ,
バースト , 連続
MB91F362GB の DMA0 端子
位置は , 次のモードレジスタ
(F362MD) で制御される外部
バスの電力分離領域にマッ
プできます。
DREQ0<==>BRQ
DACK0<==>BGRNTX
DEOP0<==>AS
DSU
トレース機能を持つデバッグサポート
ユニット
( 内部 FIFO で 128 ステップ。オプション
の外部トレースメモリで , 128 を超えるス
テップ数も可能です。)
MB91FV360GA のみ
EDSU
埋込み型デバッグサポートユニット
4 命令アドレスブレークポイント
2 オペランドアドレスブレークポイント
2 オペランドデータブレークポイント
ブレークポイントはマスク機能および範
囲機能付き
MB91F364G のみ
32 ビットデマルチ
プレックス外部バス
インタフェース
27 ビットのアドレスまでの 32 ビットの
データ , 7 つの CS, CLK
ソフトウェアにより , Hi-Z に
設定できます (「モードレジ
スタ」機能を参照 )。
MB91F362GB および
MB91F369GA は 3.3V で動作
可能。
割込みコントローラ
8 つの外部割込みチャネル , 38 の内部割
込み , 16 のプログラマブル優先レベル
ビットサーチ
モジュール
1 ワードの MSB から見て最初の "l" と "0"
へ変化したビットを探します。これは , 1
サイクルで実行されます。
固定リセットベクタ
ハードワイヤードリセット , および
モードベクタ
電圧レギュレータ
コードは 0F:4000H から始ま
ります。
内部電圧 3.3V を発生します。
*1: MB91360 シリーズのクロックモジュールは , 多数のクロック周波数の発生が可能です。それら
すべての周波数において , そのリソースが , 指定されたすべての出力ボーレート , および出力周
波数を生成することは保証できません。
*2: リセット信号の同期化を有効にするには , TBCR の bit9(SYNCR) を "1" に設定します。すべて
のバスアクセスが完了した後以外には , リセットは発生しません。これによって リセット中に ,
間違ったデータが RAM に書き込まれるのを防止します。
14
第 1 章 MB91360 シリーズの概要
表 1.4-2 MB91360 シリーズのブロック機能 〈2〉 (1 / 4)
機能
調光用 PPG
特長
備考
16 ビット PWM タイマ
16 ビットダウンカウンタ , サイクル , および
デューティの設定レジスタ
トリガ時割込み , サイクル , およびデューティ
の一致
ソフトウェアまたはリロードタイマによる
トリガ可能
PWM 動作 , およびワンショット動作
クロック停止機能
内部プリスケーラにより , カウンタクロック
として , fRES/1, fRES/4, fRES/16, fRES/64 が可能
ADC
逐次比較形 , 内部サンプリング & ホールド回
路
分解能 10 ビット , 5V 動作
( 変換時間 : CLKP の 178 サイクル )
プログラムで選択できるアナログ入力チャネ
ル : シングル変換モード
連続変換モード
変換中止モード
変換の終わりに割込みをかけることによって ,
DMA 転送をアクティブにできます。
ソフトウェア , 外部トリガまたはリロード
タイマからの起動が選択できます。
プリスケーリングは内部で行われます。
クロック停止機能
基本
インターバル
タイマ
16 ビットリロードタイマ
クロックプリスケーラ (fRES/21, fRES/23,
CAN
CAN 仕様 version 2.0A, および B に準拠
エラー時の 0-TQ ビットタイミング自動再転
送仕様
自動転送によるリモートフレームへの応答
優先順の 16 のメッセージバッファ
( データ , および ID 用 )
複数メッセージをサポート
フィルタリング受渡しの柔軟な構成 :
フルビット比較 / フルビットマスク /2 個の
部分ビットマスク
最大 1Mbps をサポート
クロック停止機能
DAC
R-2R D/A コンバータ
分解能 10 ビット , 5V 動作
クロック停止機能
必要な周波数は 90 ∼ 300Hz
fRES/25) を内蔵
MB91FV360GA と MB91F362GB
で利用可能です。
15
第 1 章 MB91360 シリーズの概要
表 1.4-2 MB91360 シリーズのブロック機能 〈2〉 (2 / 4)
機能
特長
外部割込み
チャネルごとの「割込みマスク」ビット , お
よび「ペンディング要求」ビットを , エッジ
検出にするかレベル検出にするかをプログラ
ムできます。
モードレジスタ
(F362MD)
特別モードレジスタは , 次の項目を制御しま
す。
• I2C モジュール選択
• DMA 端子マッピング
• 外部バス無効モード
• 非対称 CLKT 生成
• アドレス /CSX のスワップ
I2C-2
標準モード ,
および
高速モード用
マスタまたはスレーブ転送アービトレーショ
ン機能
クロック同期化機能
スレーブアドレス , および一般呼出しアドレ
ス検出機能
転送方向検出機能
起動条件の繰返し発生機能 , および検出機能
バスエラー検出機能
備考
アドレス : 0001FEH
bit8: 新規 I2C 選択
bit9: DMA マッピング有効
bit10 ∼ bit13:
外部バスの
HiZ 制御
bit14: 非対称 CLKT
bit15: アドレススワップ
「4.2 構成レジスタ (F362GB モー
ドレジスタ F362MD)」を参照し
てください。
I2C-1 または I2C-2 のみ使用でき
ます。並行使用はできません。
F362MD の bit0 は , どのモジュー
ルを SCL パッド , および SDA
パッドに接続するかを判断する
ために使用します。デフォルト
は I2C-1 です。
SCL 回線と SDA 回線には , オプ
I2C 標準 , および高速モード仕様と互換
(400 kHz, 10 ビットアドレッシングまでの動作 ) ションのノイズフィルタが含ま
れます。ノイズフィルタは ,
クロック分周機能を含みます。
CLKP の 1 ∼ 1.5 サイクルの範囲
クロック停止機能
のスパイクを抑制できます。
MB91360 シリーズデバイスのス
イッチをオフにしている場合は ,
I2C バス上で他の接続デバイスと
通信することはできません。
16 ビット
インプットキャプ
チャモジュール
(ICU)
立上りエッジ検出 , 立下りエッジ検出または
両エッジ検出
2 個の 16 ビット捕獲レジスタ
外部イベント時の割込みを通知します。
クロック停止機能
MB91FV360GA と MB91F362GB
で利用可能です。
16 ビット
アウトプットコン
ペアモジュール
(OCU)
対応するフリーランタイマのタイマ値と一致
した場合に割込みを通知します。
出力信号を生成できます。
クロック停止機能
MB91FV360GA と MB91F362GB
で利用可能です。
フリーラン
タイマ
16 ビットフリーランタイマ。オーバフローま MB91FV360GA と MB91F362GB
たは比較レジスタ _0 と一致した場合に , 割込 で利用可能です。
みを通知します。プリスケーラ (fRES/22, fRES/24,
fRES/26) は内蔵されています。タイマデータレ
ジスタに R/W アクセスができます。
クロック停止機能
16
第 1 章 MB91360 シリーズの概要
表 1.4-2 MB91360 シリーズのブロック機能 〈2〉 (3 / 4)
機能
LED ポート
特長
備考
ソース電流 14mA(VDD-0.8V), およびシンク電
これら 8 チャネルすべての IOL 電
流 24mA(Vss+0.8V) が可能
流の合計は , 120mA を超えてはい
けません。これらのチャネルす
べての IOH 電流の合計は , 120mA
を超えてはいけません。
MB91FV360GA, MB91F362GB で
利用可能です。
アラーム比較器
(OV/UV 検出 )
外部電圧をモニタし , 電圧が , 定義されたしき 4:1 の外部電圧分割回路を使用し
い値より低くなったり高くなったりした場合 ます。
に割込みを発生します。
ステータスの読取りが可能 , 割込みは個別マ
スクが可能
クロック停止機能
パワーダウン
リセット
VDD をモニタリングし , VDD が定義されたし RTC モードまたは STOP モード
きい値電圧より低くなった場合にリセットを 時に無効にできます。
発生します。
シリアル IO
SIO
同期シリアルイ
ンタフェース +
SIO プリスケーラ
シリアル入出力
MSB または LSB から転送を開始できます。
内部クロック同期転送 , および外部クロック
同期転送をサポートします。
クロックの立上りエッジ , および
立下りエッジによる同期化をサ
ポートします。
シフトクロック用プリスケーラは次の周波数
が可能です。
fRES/3, fRES/4, fRES/5, fRES/6, fRES/7, fRES/8
クロック停止機能
サウンド生成器
( ブザー )
8 ビット PWM 信号は , 8 ビットリロードカウ
ンタからのトーン周波数と混合されます。
内部プリスケーラによる PWM クロック :
fRES/1, fRES/2, fRES/4, fRES/5, fRES/8
ターゲット周波数は , 300Hz ∼
5 kHz の範囲でプログラム可能で
す。fRES/1 とリロード値 5 では ,
fRES=16 MHz で 5.2 kHz になりま
トーン周波数 : PWM 周波数 /2/( リロード値 +1) す。
クロック停止機能
fRES/4 とリロード値 25 では ,
fRES=16 MHz で 300.48 Hz になり
ます。
ステッパモータ
制御
各チャネルでの 4 個の高電流出力
各チャネルに 2 個の同期化 8 ビット PWM
PMW クロック用内部プリスケーリング :
fRES, fRES/2, fRES/4, fRES/5, fRES/6, fRES/8
MB91FV360GA, MB91F362GB で
利用可能です。
ターゲット周波数 : 16 kHz
ゼロ検出回路を内蔵しています。
クロック停止機能
MB91360 シリーズデバイスには ,
スルーレート代表値 40ns の出力
ドライバが含まれています。
17
第 1 章 MB91360 シリーズの概要
表 1.4-2 MB91360 シリーズのブロック機能 〈2〉 (4 / 4)
機能
UART
特長
非同期 ( 調歩式同期 ) 通信を実行するための
シリアル I/O ポート
全二重 , ダブルバッファ
マルチプロセッサモードをサポートします。
可変データ長 (7/8 ビット )
1 個または 2 個のストップビット
エラー検出機能
( パリティ , フレーミング , オーバラン )
割込み機能
NRZ 型転送形式
U- タイマでボーレートを発生
U- タイマ
(UART ごとに 1
個)
必要な UART クロックを 16 ビットタイマで発
生 :fRES/25, ..., fRES/221 ( 非同期モード )
LIN 機能搭載
USART
非同期 ( 調歩式同期 ) 通信を実行するための
シリアルポート
全二重 , ダブルバッファ
マルチプロセッサモードをサポートします。
LIN-bus システムのための特別な機能
可変データ長 (7/8 ビット )
1 個または 2 個のストップビット
エラー検出機能
( パリティ , フレーミング , オーバラン )
割込み機能
NRZ 型転送形式
ボーレートジェネレータでボーレートを発生
必要とする UART クロック (fCLKP/21, ...,
備考
送受信用ポート信号の極性は
プログラム可能
クロック停止機能
USART with LIN option は新しい
マクロなので MB91FV360GA で
エミュレートすることはできま
せん。
送受信用ポート用信号の極性は
プログラム可能
fCLKP/215) を発生させる 15 ビットタイマ
クロック停止機能
リアルタイムク
発振周波数偏差修正機能
ロック (RTC)
読出し / 書込みのアクセスが可能な秒 / 分 / 時
( ウォッチタイマ ) レジスタ
毎秒 / 分 / 時 / 日の割込み通知が可能
内部クロック分周とプリスケーラにより
4 MHz 入力を基準とし , 正確な 1 秒クロック
が可能。
クロック停止機能
クロック変調器
18
16 タップ変調回路
最大入力周波数 48 MHz
最大出力周波数 64 MHz
4 MHz 用プリスケーラの値は
1E847FH です。
32 kHz 用プリスケーラの値は
04000FH です。
第 1 章 MB91360 シリーズの概要
1.5
端子配列
MB91FV360GA, MB91F362GB, および MB91F369GA の端子図を示します。
■ MB91FV360GA の端子図
図 1.5-1 に , MB91FV360GA の端子図を示します。
図 1.5-1 MB91FV360GA 端子図
23
24
69
119
174
230
173
118
68
22
172
117
67
21
20
115
65
19
114
64
18
113
63
17
112
62
16
166
111
61
15
110
60
14
109
59
13
108
58
12
107
57
106
383
339
384
291
340
385
239
292
341
386
184
240
293
342
387
185
241
294
343
388
80
130
242
295
344
389
131
186
296
345
390
346
348
349
377
394
350
376
395
PGA-401C-A02
351
底面図
375
396
352
374
397
353
373
398
354
372
399
355
371
400
356
370
401
357
369
368
321
270
320
269
214
158
105
367
56
213
312
48
204
95
203
94
39
87
139
40
88
140
41
89
141
42
90
142
43
91
143
44
92
144
201
202
146
93
138
200
257
258
147
46
2
310
38
86
199
256
309
259
148
47
3
311
205
96
358
260
149
150
4
359
261
206
97
49
5
313
207
98
360
262
151
50
6
314
208
99
361
263
152
51
7
315
209
100
362
264
153
52
8
316
210
101
363
265
154
53
9
317
211
102
364
266
155
54
10
318
212
103
365
267
156
55
11
319
268
157
104
366
137
198
255
308
37
85
197
254
307
136
196
253
306
36
84
195
252
305
135
194
251
304
35
83
193
250
303
134
192
249
302
34
82
191
248
301
81
133
190
247
300
132
189
246
299
393
188
245
298
392
378
244
297
391
379
215
159
187
243
347
322
271
216
382
338
290
238
183
129
323
272
217
160
337
289
237
182
128
79
324
273
218
161
381
288
236
181
127
33
78
325
274
219
162
380
336
235
180
126
32
77
326
275
220
163
335
287
179
125
31
76
327
276
221
164
286
234
124
30
75
328
277
222
165
233
178
329
278
223
177
123
29
74
330
279
224
167
285
122
28
73
331
280
225
168
176
27
72
332
281
226
169
121
232
26
71
333
282
227
170
175
334
283
228
171
116
66
284
229
120
231
25
70
145
INDEX
45
1
19
第 1 章 MB91360 シリーズの概要
■ MB91F362GB の端子図
図 1.5-2 に , MB91F362GB の端子図を示します。
図 1.5-2 MB91F362GB 端子図
156
CAN
PPG
SIO
I 2C Sound
XTAL+PLL
Mode
OCU
SIN2
SOT1
SIN1
SOT0
SIN0
RX2
TX2
RX1
TX1
RX0
TX0
VSS
VDD
OCPA7
OCPA6
OCPA5
OCPA4
OCPA3
OCPA2
OCPA1
OCPA0
SCK3
SOT3
SIN3
SCK4
SIN4
SOT4
SCL
SDA
SGA
SGO
VCI
CPO
VSS
X1A
X0A
X1
X0
VDD
SELCLK
MONCLK
INITX
HSTX
MD2
MD1
MD0
VSS
OUT3
OUT2
OUT1
OUT0
IN3
UART
105
104
157
PN[5:0]
PM[3:0]
PL[7:0]
PR[7:0]
PS[7:0]
PJ[7:0]
MB91F362GB
PI[6:0]
QFP
PB[2:0]
P1[7:0]
PH[7:0]
P0[7:0]
FPT-208P-M04
P2[7:0]
PG[7:0]
INDEX
P3[7:0]
1
20
PO[7:0]
208-pin plastic
208
ext. BusData
PP[5:0]
PK[7:0]
PQ[5:0]
P4[7:0]
P5[7:0]
P6[4:0] P7[4:6]
P8[7:0]
P9[7:0]
D24
D25
D26
D27
D28
D29
D30
D31
A0
A1
A2
A3
A4
A5
A6
A7
A8
A9
A10
A11
A12
A13
A14
A15
VDD
VSS
A16
A17
A18
A19
A20
CS4X
CS5X
CS6X
RDY
BGRNTX
BRQ
RDX
WR0X
WR1X
WR2X
WR3X
AS
ALE
CLK
AH/BOOT
CS0X
CS1X
CS2X
CS3X
VDD
VSS
SMC
SOT2
VSS
VCC3C
VDD int.
HVSS
PWM1P0
PWM1M0
PWM2P0
PWM2M0
HVDD
PWM1P1
PWM1M1
PWM2P1
PWM2M1
HVSS
PWM1P2
PWM1M2
PWM2P2
PWM2M2
HVDD
PWM1P3
PWM1M3
PWM2P3
PWM2M3
HVSS
VDD
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
VDD
VSS
D15
D16
D17
D18
D19
D20
D21
D22
D23
ext. Bus Address
Chip
Select
ext.Bus Control
Chip
Select
IN2
ICU
IN1
IN0
INT7
INT6
INT5
INT4
ext.
INT3
Int.
INT2
INT1
INT0
VSS
VDD
LED7
LED6
LED5
LED4
LED
LED3
LED2
LED1
LED0
LTESTX
CPUTESTX
TESTX
ATGX
VDD
VSS
ALARM
DA1
DAC
DA0
AVSS
AN7
AN6
AN5
AN4
AN3
ADC
AN2
AN1
AN0
AVRH
AVCC
DEOP0
DACK0 DMA
DREQ0
AN15
AN14
AN13
AN12
ADC
AN11
AN10
AN9
AN8
53
52
第 1 章 MB91360 シリーズの概要
■ MB91F364G の端子図
図 1.5-3 に , MB91F364G の端子図を示します。
図 1.5-3 MB91F364G 端子図
SIO
CAN
PPG
MD1
Port R
PR4
PR5
MD0
ATGX
CPUTESTX
TESTX
PR6
PR7
VSS
VDD
VSS
VDD
OUT3
OUT2
Port L
MB91F364G
LED0
LED1
VSS
LED4
120-pin package
FPT-120P-M21
Port J
LED2
LED3
IN1
IN0
VSS
VDD
LED7
VSS
VDD
PO6
PO7
Port K
INT7
INT6
Port O
PO4
PO5
OUT0
IN3
IN2
top view
LED5
LED6
OUT1
INT5
INT4
INT3
INT2
INT1
INT0
DA0
DA1
VSS
VSS
VDD
X0
PQ
VDD
X1A
X0A
VDD
MONCLK
VSS
X1
SELCLK
SDA
SCL
SOT0
SIN0
HSTX
NMIX
VSS
VDD
AN6
AN7
AVSS,AVRL
AVRH
AVCC
AN2
AN3
AN4
AN5
PM
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
AN0
1
AN8
AN9
AN10
AN11
PG
Port H
60
59
58
57
56
55
54
53
52
51
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
ICU
MD2
PR1
PR2
PR3
外部割込み
INITX
4 MHz
P.P
Port O
PR0
OCU
VCC3C
VDD
VSS
VCC3C
VDDI
VDDI
VSS
VDD
BREAKX
VDDI
TX0
RX0
OCPA0
OCPA3
OCPA2
OCPA1
SCK5
SIN5
VSS
SOT6
SOT5
SIN6
SCK6
SIN3
VSS
VDD
Port T
Port N
VDD
2 AN1
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
11 0
111
11 2
11 3
11 4
11 5
11 6
11 7
11 8
11 9
120
SCK3
SOT3
LTESTX
VSS
90
89
88
87
86
85
84
83
82
81
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
USART
ADC
I2C UART
32 kHz
21
第 1 章 MB91360 シリーズの概要
■ MB91F369GA の端子図
図 1.5-4 に , MB91F369GA の端子図を示します。
図 1.5-4 MB91F369GA 端子図
PPG
UART CAN
126
75
127
74
128
73
129
72
130
71
131
70
132
69
76
133
68
MB91F369GA
134
135
67
66
136
65
137
64
138
63
139
62
61
140
160-pin package
FPT-160P-M15
141
142
143
144
145
60
59
58
57
56
146
55
147
54
148
53
149
52
150
51
40
39
38
37
36
35
33
34
32
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
15
14
A4
A5
A6
A7
A8
A9
A10
A11
VDD35
CLK
VSS
A12
A13
A14
A15
A16
A17
A18
A19
A20
VDD35
VSS
CS4X
CS5X
CS6X
RDX
BGRNTX
BRQ
AS
ALE
AH
CS0X
CS1X
CS2X
CS3X
DREQ0
DACX0
DEOP
VSS
VDD35
13
41
12
42
160
11
43
159
10
44
158
9
45
157
8
46
156
7
47
155
6
48
154
5
153
4
49
3
50
152
2
151
Ext. bus Address
22
SIO
77
Chip
Select
Ext.Bus
Control
Chip
Select
DMA
SOT4
SCL
SDA
SGA
SGO
INT7
INT6
INT5
INT4
INT3
INT2
INT1
INT0
VSS
VDD
LTESTX
CPUTESTX
TESTX
INITX
HSTX
MD2
MD1
MD0
ATGX
VDD
VSS
ALARM
AN9
AN8
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
AVSS
AVCC
AVRH
Ext.Interrupt
124
125
78
Mode
80
79
I 2C
Sound
Gen.
81
82
84
83
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
112
110
111
114
113
115
116
117
118
119
120
121
122
123
1
Ext.Bus Data
D0
D1
D2
D3
D4
D5
D6
D7
D8
D9
D10
D11
D12
D13
D14
D15
VDD35
VSS
D16
D17
D18
D19
D20
D21
D22
D23
D24
D25
D26
D27
D28
D29
D30
D31
VDD35
VSS
A0
A1
A2
A3
ADC
Osci.
VSS
VDD35
RDY
WR0X
WR1X
WR2X
WR3X
VSS
VDD35
VSS
MONCLK
VDD
VSS
X1
X0
VDD
OCPA3
OCPA2
OCPA1
OCPA0
VSS
VDD
SOT0
SIN0
RX1
TX1
RX0
TX0
VSS
VCC3C
VDDI
VDDI
VDDI
VDDI
VSS
SCK3
SOT3
SIN3
SCK4
SIN4
Ext. Bus Control
第 1 章 MB91360 シリーズの概要
■ MB91F365GB の端子図
図 1.5-5 に , MB91F365GB の端子図を示します。
図 1.5-5 MB91F365GB 端子図
VSS
VDD
SIN3
66
61
SOT3
67
SOT4
VSS
SCK3
63
OCPA0
69
68
62
OCPA1
70
SCK4
OCPA2
72
71
SIN4
OCPA4
OCPA3
74
64
OCPA5
75
73
OCPA7
OCPA6
77
76
RX0
TX0
79
78
RX1
VDD
TX1
VSS
82
80
SIN0
83
81
SOT0
85
84
86
PG0
SOT1
SIN1
88
87
PG2
PG1
90
SIO
PPG
65
CAN
UART
89
Digital I/O-Ports
INITX
PG3
91
60
PG4
92
59
MD2
PG5
93
58
MD1
VDD
94
57
MD0
HVSS
95
56
VDD
PWM1P0
96
55
OUT1
PWM1M0
97
54
OUT0
PWM2P0
PWM2M0
98
53
IN3
99
52
IN2
HVDD
100
51
PWM1P1
101
50
IN1
IN0
49
VSS
48
VCC3C
PWM1M1
102
PWM2P1
103
PWM2M1
104
HVSS
105
PWM1P2
106
PWM1M2
107
MB91F365GB
120-Pin plastic
QFP
47
VDD
46
INT7
45
INT5
43
INT4
109
42
INT3
110
41
INT2
INT1
108
PWM2M2
HVDD
PWM1P3
111
40
PWM1M3
112
39
INT0
PWM2P3
113
38
MONCLK
PWM2M3
114
37
VSS
VSS
115
36
X1
VDD
116
35
X0
24
26
27
28
29
30
AN7
DA0
DA1
ALARM
VSS
23
AN4
25
22
AN3
AN6
21
AN2
ADC
AN5
19
20
AN1
18
AVSS/AVRL
AN0
16
17
15
VSS
AVRH
14
VDD
2
I C
AVCC
12
13
SCL
11
Sound
SDA
10
8
VDD
VSS
SGA
7
PI3
9
6
PJ7
SGO
5
PJ6
BOOT
4
31
3
120
PJ5
TESTX
PJ3
PJ4
CPUTESTX
PJ2
32
2
VDD
33
119
1
34
118
VSS
117
PJ1
VDD
PJ0
Digital IO-Ports
ICU
INT6
44
PWM2P2
OCU
ext. Int.
4MHz Osc.
DAC
23
第 1 章 MB91360 シリーズの概要
■ MB91F366GB/MB91F376G の端子図
図 1.5-6 に , MB91F366GB/MB91F376G の端子図を示します。
図 1.5-6 MB91F366GB/MB91F376G 端子図
VSS
VDD
61
SIN3
66
SOT4
SOT3
67
63
VSS
SCK3
62
OCPA0
69
68
SCK4
OCPA1
70
SIN4
OCPA2
72
71
64
OCPA4
OCPA3
74
65
OCPA5
75
73
OCPA7
OCPA6
77
76
RX0
TX0
79
78
RX1
VDD
TX1
VSS
82
80
SIN0
83
81
SOT0
85
84
86
PG0
SOT1
SIN1
88
87
PG2
PG1
90
SIO
PPG
INITX
PG3
91
60
PG4
92
59
MD2
PG5
93
58
MD1
VDD
94
57
MD0
HVSS
95
56
VDD
PWM1P0
96
55
OUT1
PWM1M0
97
54
OUT0
PWM2P0
PWM2M0
98
53
IN3
99
52
IN2
HVDD
100
51
PWM1P1
101
50
IN1
IN0
49
VSS
48
VCC3C
PWM1M1
102
PWM2P1
103
PWM2M1
104
HVSS
105
PWM1P2
106
PWM1M2
107
MB91F366GB/F376G
120-Pin plastic
QFP
47
VDD
46
INT7
45
INT5
43
INT4
109
42
INT3
110
41
INT2
108
PWM2M2
HVDD
PWM1P3
111
40
INT1
PWM1M3
112
39
INT0
PWM2P3
113
38
MONCLK
PWM2M3
114
37
VSS
VSS
115
36
X1
VDD
116
35
X0
27
28
29
30
X1A
ALARM
VSS
26
AN7
X0A
24
23
AN4
25
22
AN3
AN6
21
AN2
ADC
AN5
19
20
AN1
18
AVSS/AVRL
AN0
16
17
15
VSS
AVRH
14
VDD
2
I C
AVCC
12
13
SCL
11
SDA
10
8
VDD
VSS
SGA
7
PI3
SGO
6
PJ7
9
5
PJ6
BOOT
4
31
3
120
PJ5
TESTX
PJ3
PJ4
CPUTESTX
PJ2
32
2
VDD
33
119
1
34
118
VSS
117
PJ1
VDD
PJ0
Sound
32KHz Osc.
OCU
ICU
INT6
44
PWM2P2
Digital IO-Ports
24
CAN
UART
89
Digital I/O-Ports
ext. Int.
4MHz Osc.
第 1 章 MB91360 シリーズの概要
■ MB91F367GB の端子図
図 1.5-7 に , MB91F367GB の端子図を示します。
図 1.5-7 MB91F367GB 端子図
VSS
VDD
61
SOT4
63
SIN3
66
62
SOT3
67
SCK4
VSS
SCK3
69
68
SIN4
OCPA0
70
64
OCPA1
72
71
65
OCPA2
74
73
PO5
PO4
OCPA3
75
PO7
PO6
77
76
RX0
TX0
79
78
RX1
VDD
TX1
VSS
82
80
SIN0
83
81
SOT0
85
84
86
PG0
PQ3
PQ2
88
87
PG2
PG1
90
89
SIO
INITX
PG3
91
60
PG4
92
59
MD2
PG5
93
58
MD1
VDD
94
57
MD0
VSS
95
56
VDD
PR0
96
55
OUT1
PR1
97
54
OUT0
PR2
98
53
IN3
PR3
99
52
IN2
HVDD
100
PR4
101
51
50
IN1
IN0
49
VSS
48
VCC3C
PR5
102
PR6
103
PR7
104
VSS
105
PS0
106
PS1
107
PS2
PS3
MB91F367GB
120-Pin plastic QFP
FPT-120P-M21
47
VDD
46
INT7
45
INT6
44
INT5
108
43
INT4
109
42
INT3
HVDD
110
41
INT2
PS4
111
40
INT1
PS5
112
39
INT0
PS6
113
38
MONCLK
PS7
114
37
VSS
VSS
115
36
X1
VDD
116
35
X0
PJ0
117
34
VDD
CPUTESTX
26
27
28
29
30
NC
NC
ALARM
VSS
23
AN7
22
AN3
AN4
24
21
AN2
25
20
AN1
AN6
18
19
AVSS
AN0
AN5
16
17
AVCC
15
I2C
AVRH
14
11
PM1
VSS
10
PM0
VDD
9
12
8
VDD
VSS
13
7
PI3
SCL
6
Digital
IO-Ports
SDA
5
PJ6
PJ7
BOOT
4
31
3
120
PJ4
TESTX
PJ3
PJ5
32
2
33
119
1
118
VSS
PJ1
PJ2
Digital IO-Ports
OCU
ICU
ext. Int.
VDD
Digital I/O-Ports
PPG
Digital I/O-Ports
CAN
UART
Digital I/O-Ports
4MHz Osc.
ADC
25
第 1 章 MB91360 シリーズの概要
■ MB91F368GB の端子図
図 1.5-8 に , MB91F368GB の端子図を示します。
図 1.5-8 MB91F368GB 端子図
VSS
VDD
61
SOT4
63
SIN3
66
62
SOT3
67
SCK4
VSS
SCK3
69
68
SIN4
OCPA0
70
64
OCPA1
72
71
65
OCPA2
74
73
PO5
PO4
OCPA3
75
PO7
PO6
77
76
RX0
TX0
79
78
RX1
VDD
TX1
VSS
82
80
SIN0
83
81
SOT0
85
84
86
PG0
PQ3
PQ2
88
87
PG2
PG1
90
89
SIO
INITX
PG3
91
60
PG4
92
59
MD2
PG5
93
58
MD1
VDD
94
57
MD0
VSS
95
56
VDD
PR0
96
55
OUT1
PR1
97
54
OUT0
PR2
98
53
IN3
PR3
99
52
IN2
HVDD
100
PR4
101
51
50
IN1
IN0
49
VSS
48
VCC3C
PR5
102
PR6
103
PR7
104
VSS
105
PS0
106
PS1
107
PS2
MB91F368GB
120-Pin plastic
QFP
47
VDD
46
INT7
45
INT6
44
INT5
108
43
INT4
PS3
109
42
INT3
HVDD
110
41
INT2
PS4
111
40
INT1
PS5
112
39
INT0
PS6
113
38
MONCLK
PS7
114
37
VSS
OCU
ICU
ext. Int.
VSS
115
36
X1
VDD
116
35
X0
PJ0
117
34
VDD
CPUTESTX
Digital
I/O-Ports
28
29
30
X1A
ALARM
VSS
27
X0A
26
23
AN4
AN7
22
AN3
24
21
AN2
25
20
AN1
AN6
18
19
AVSS/AVRL
AN0
ADC
AN5
16
VSS
17
15
VDD
AVCC
14
SCL
I2C
AVRH
12
13
SDA
11
8
VDD
VSS
10
7
PI3
PM1
6
9
5
PJ6
PJ7
PM0
4
BOOT
3
31
PJ4
120
PJ5
TESTX
PJ3
2
32
1
33
119
VSS
118
VDD
PJ1
PJ2
Digital IO-Ports
26
PPG
Digital I/O-Ports
CAN
UART
Digital I/O-Ports
32KHz
Osc.
4MHz Osc.
第 1 章 MB91360 シリーズの概要
■ MB91366GA の端子図
図 1.5-9 に , MB91366GA の端子図を示します。
図 1.5-9 MB91366GA 端子図
SOT4
VSS
VDD
SIN3
66
63
SOT3
67
62
VSS
SCK3
69
68
SCK4
OCPA0
70
SIN4
OCPA1
72
71
64
OCPA2
74
65
OCPA5
OCPA4
OCPA3
75
OCPA7
OCPA6
77
76
RX0
TX0
79
78
82
RX1
VDD
83
TX1
VSS
84
80
SIN0
85
81
SIN1
SOT0
86
PG0
SOT1
88
87
PG1
PG2
90
89
61
INITX
PG3
91
60
PG4
92
59
MD2
PG5
93
58
MD1
VDD
94
57
MD0
HVSS
95
56
VDD
PWM1P0
96
55
OUT1
PWM1M0
97
54
OUT0
PWM2P0
98
53
IN3
OCU
99
52
IN2
HVDD
100
PWM1P1
101
51
50
IN1
IN0
49
VSS
48
VCC3C
PWM2M0
PWM1M1
102
PWM2P1
103
PWM2M1
104
HVSS
105
PWM1P2
106
PWM1M2
107
PWM2P2
108
PWM2M2
109
MB91366GA
120-Pin plastic
QFP
47
VDD
46
INT7
45
INT6
44
INT5
43
INT4
42
INT3
HVDD
110
41
PWM1P3
111
40
INT2
INT1
PWM1M3
112
39
INT0
PWM2P3
113
38
MONCLK
PWM2M3
114
37
HVSS
115
36
VSS
X1
VDD
116
35
X0
Digital IO-Ports
26
27
28
29
30
X0A
X1A
ALARM
VSS
23
AN4
AN7
22
AN3
24
21
AN2
25
20
AN1
AN6
18
19
AVSS/AVRL
AN0
ADC
AN5
16
17
15
VSS
AVCC
14
VDD
I 2C
AVRH
12
13
SCL
SGA
Sound
SDA
10
11
SGO
9
7
8
PI3
6
VDD
VSS
5
PJ7
BOOT
PJ6
TESTX
31
4
32
120
3
119
PJ3
PJ5
PJ2
PJ4
VDD
CPUTESTX
2
34
33
1
117
118
VSS
PJ0
PJ1
VDD
SMC
SIO
PPG
CAN
73
UART
Digital IO-Ports
ICU
ext. Int.
4MHz Osc.
32KHz Osc.
27
第 1 章 MB91360 シリーズの概要
1.6
端子機能説明
MB91FV360GA, MB91F362GB, および MB91F369GA の端子配列の一覧および各回
路の種類の説明を示します。
■ MB91FV360GA の入出力端子とその機能
表 1.6-1 に , MB91FV360GA の入出力端子とその機能を示します。
表 1.6-1 MB91FV360GA の入出力端子とその機能 (1 / 11)
汎用 I/O
ポート
端子番号
端子名
I/O
1
D18
I/O
Q
外部バスデータビット 18
2
D11
I/O
Q
外部バスデータビット 11
3
D2
I/O
Q
外部バスデータビット 2
4
28
回路の種類
機能
接続しない
5
HVSS
6
HVDD5B
7
PWM2M1
I/O
PR7
M
SMC 1
8
PWM1M1
I/O
PR5
K
SMC 1
9
PWM1P0
I/O
PR0
K
SMC 0
10
VDD5R
11
VDD5P
12
SCK4
I/O
PN2
A
SIO クロック
13
VDD5J
14
EXRAM
I
P
トレース制御
15
TWRX
O
X
トレース制御
16
TAD9
O
X
トレースアドレス
17
TAD5
O
X
トレースアドレス
18
TAD3
O
X
トレースアドレス
19
TDT68
I/O
W
トレースデータ
20
TDT63
I/O
W
トレースデータ
21
TDT57
I/O
W
トレースデータ
22
TDT49
I/O
W
トレースデータ
23
TDT23
I/O
W
トレースデータ
24
TDT16
I/O
W
トレースデータ
25
TDT7
I/O
W
トレースデータ
26
TDT2
I/O
W
トレースデータ
27
ICD0
I/O
N
ICE データ
28
ICLK
IO
L
ICE クロック
29
X0
H
4 MHz 発振用端子
30
INITX
U
初期化端子
I
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (2 / 11)
端子番号
端子名
I/O
31
MD1
I
32
IN3
I/O
33
INT3
34
汎用 I/O
ポート
回路の種類
機能
T
モード端子 1
PL3
A
ICU 入力 3
I/O
PK3
A
外部割込み 3
AN3
I/O
PH3
B
ADC 入力 3
35
DACK2
I/O
PB6
A
DMA 要求受付出力 2
36
AN13
I/O
PG5
B
ADC 入力 13
37
AN8
I/O
PG0
B
ADC 入力 8
38
ALE
I/O
P91
A
外部バス制御
39
WR1X
I/O
P85
S
外部バス制御
40
RDX
I/O
P83
S
外部バス制御
41
CS7X
I/O
A
チップセレクト 7(CAN)
42
A26
I/O
Q
外部バスアドレスビット 26
43
A20
I/O
Q
外部バスアドレスビット 20
44
A12
I/O
Q
外部バスアドレスビット 12
45
D21
I/O
Q
外部バスデータビット 21
46
D16
I/O
Q
外部バスデータビット 16
47
D13
I/O
Q
外部バスデータビット 13
48
D7
I/O
Q
外部バスデータビット 7
49
D3
I/O
Q
外部バスデータビット 3
50
VSS
51
PWM2P2
I/O
PS2
K
SMC 2
52
PWM2P1
I/O
PR6
K
SMC 1
53
PWM1P1
I/O
PR4
K
SMC 1
54
接続しない
55
SIN1
I/O
PQ2
A
UART 1 入力
56
TX3
I/O
PP6
Q
CAN 3 TX
57
SOT3
I/O
PN4
A
SIO 出力
58
SOT4
I/O
PN0
A
SIO 出力
59
接続しない
60
接続しない
61
SGO
I/O
62
TOEX
63
PM0
A
サウンド生成器 SGO
O
X
トレース制御
TAD8
O
X
トレースアドレス
64
TAD2
O
X
トレースアドレス
65
TDT67
I/O
W
トレースデータ
66
TDT60
I/O
W
トレースデータ
67
TDT54
I/O
W
トレースデータ
68
TDT48
I/O
W
トレースデータ
69
TDT26
I/O
W
トレースデータ
29
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (3 / 11)
30
汎用 I/O
ポート
端子番号
端子名
I/O
70
TDT21
I/O
W
トレースデータ
71
TDT18
I/O
W
トレースデータ
72
TDT12
I/O
W
トレースデータ
73
TDT8
I/O
W
トレースデータ
74
TDT3
I/O
W
トレースデータ
75
ICS2
O
G
ICE ステータス
76
VDD5F
77
RSTX
I
E
リセット端子
78
OUT2
I/O
PL6
A
OCU 出力 2
79
IN0
I/O
PL0
A
ICU 入力 0
80
INT2
I/O
PK2
A
外部割込み 2
81
AN6
I/O
PH6
B
ADC 入力 6
82
AN1
I/O
PH1
B
ADC 入力 1
83
AVCC
84
DEOP0
I/O
PB2
A
DMA 出力終了 0
85
AN14
I/O
PG6
B
ADC 入力 14
86
AN9
I/O
PG1
B
ADC 入力 9
87
AS
I/O
P90
A
外部バス制御
88
BRQ
I/O
P82
A
外部バス制御
89
CS6X
I/O
P76
A
チップセレクト 6
90
A23
I/O
Q
外部バスアドレスビット 23
91
A17
I/O
Q
外部バスアドレスビット 17
92
A11
I/O
Q
外部バスアドレスビット 11
93
D27
I/O
Q
外部バスデータビット 27
94
D22
I/O
Q
外部バスデータビット 22
95
D17
I/O
Q
外部バスデータビット 17
96
D6
I/O
Q
外部バスデータビット 6
97
VDD5S
98
PWM1M3
I/O
PS5
K
SMC 3
99
PWM2M3
I/O
PS7
M
SMC 3
100
HVDD5A
101
PWM2P0
I/O
PR2
K
SMC 0
102
VCC3C
C
バイパスコンデンサ端子
103
SOT1
I/O
PQ3
A
UART 1 出力
104
SIN0
I/O
PQ0
A
UART 0 入力
105
TX1
I/O
PP2
Q
CAN 1 TX
106
OCPA2
I/O
PO2
A
PPG 出力
107
SCK3
I/O
PN5
A
SIO クロック
回路の種類
機能
アナログ VCC
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (4 / 11)
端子番号
端子名
I/O
汎用 I/O
ポート
回路の種類
108
SIN4
I/O
PN1
A
SIO 入力
109
SCL
I/O
PM3
Y
I2C SCL
110
TCLK
I/O
W
トレース制御
111
TAD12
O
X
トレースアドレス
112
TAD15
O
X
トレースアドレス
113
TAD1
O
X
トレースアドレス
114
TDT65
I/O
W
トレースデータ
115
TDT59
I/O
W
トレースデータ
116
TDT55
I/O
W
トレースデータ
117
TDT51
I/O
W
トレースデータ
118
TDT42
I/O
W
トレースデータ
119
TDT32
I/O
W
トレースデータ
120
TDT27
I/O
W
トレースデータ
121
TDT22
I/O
W
トレースデータ
122
TDT11
I/O
W
トレースデータ
123
TDT4
I/O
W
トレースデータ
124
ICD3
I/O
N
ICE データ
125
TDT1
I/O
W
トレースデータ
126
SELCLK
I
F
クロック選択
127
NMIX
I
E
マスク不可割込み
128
OUT1
I/O
PL5
A
OCU 出力 1
129
IN1
I/O
PL1
A
ICU 入力 1
130
INT5
I/O
PK5
A
外部割込み 5
131
LED4
I/O
PJ4
J
LED ポート 4
132
ALARM
I
D
アラーム比較器入力
133
AN7
I/O
PH7
B
ADC 入力 7
134
AN2
I/O
PH2
B
ADC 入力 2
135
DACK0
I/O
PB1
A
DMA 要求受付出力 0
136
AN10
I/O
PG2
B
ADC 入力 10
137
CS0X
I/O
P94
A
チップセレクト 0
138
CS3X
I/O
P97
A
チップセレクト 2
139
BGRNTX
I/O
P81
A
外部バス制御
140
CS4X
I/O
P74
A
チップセレクト 4
141
A22
I/O
Q
外部バスアドレスビット 22
142
A18
I/O
Q
外部バスアドレスビット 18
143
A14
I/O
Q
外部バスアドレスビット 14
144
A5
I/O
Q
外部バスアドレスビット 5
145
INDEX
-
-
インデックス端子
-
機能
31
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (5 / 11)
32
汎用 I/O
ポート
端子番号
端子名
I/O
146
D30
I/O
Q
外部バスデータビット 30
147
D26
I/O
Q
外部バスデータビット 26
148
D19
I/O
Q
外部バスデータビット 19
149
D10
I/O
Q
外部バスデータビット 10
150
D9
I/O
Q
外部バスデータビット 9
151
D5
I/O
Q
外部バスデータビット 5
152
PWM2M2
I/O
PS3
M
SMC 2
153
PWM1P3
I/O
PS4
K
SMC 3
154
PWM2M0
I/O
PR3
M
SMC 0
155
VSS
156
SOT2
I/O
PQ5
A
UART 2 出力
157
SOT0
I/O
PQ1
A
UART 0 出力
158
VDD5O
159
OCPA7
I/O
PO7
A
PPG 出力
160
OCPA5
I/O
PO5
A
PPG 出力
161
OCPA1
I/O
PO1
A
PPG 出力
162
VDD5K
163
X1A
O
I
32 kHz 発振用端子
164
X0A
I
I
32 kHz 発振用端子
165
SDA
I/O
Y
I2C SDA
166
TAD10
O
X
トレースアドレス
167
TAD11
O
X
トレースアドレス
168
TDT66
I/O
W
トレースデータ
169
TDT61
I/O
W
トレースデータ
170
TDT58
I/O
W
トレースデータ
171
TDT52
I/O
W
トレースデータ
172
TDT45
I/O
W
トレースデータ
173
TDT39
I/O
W
トレースデータ
174
TDT35
I/O
W
トレースデータ
175
TDT31
I/O
W
トレースデータ
176
TDT24
I/O
W
トレースデータ
177
TDT15
I/O
W
トレースデータ
178
TDT14
I/O
W
トレースデータ
179
TDT10
I/O
W
トレースデータ
180
ICD1
I/O
N
ICE データ
181
ICD2
I/O
N
ICE データ
182
HSTX
I
E
ハードウェアスタンバイ
183
OUT3
I/O
PL7
A
OCU 出力 3
184
OUT0
I/O
PL4
A
OCU 出力 0
PM2
回路の種類
機能
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (6 / 11)
端子番号
端子名
I/O
汎用 I/O
ポート
回路の種類
185
INT6
I/O
PK6
A
外部割込み 6
186
LED7
I/O
PJ7
J
LED ポート 7
187
LED1
I/O
PJ1
J
LED ポート 1
188
CPUTESTX
I
E
テスト入力
189
DA1
O
C
DAC 出力
190
AN4
I/O
PH4
B
ADC 入力 4
191
DEOP1
I/O
PB5
A
DMA 出力終了 1
192
DACK1
I/O
PB4
A
DMA 確認応答 1
193
DREQ0
I/O
PB0
A
DMA リクエスト 0
194
CLK
I/O
P92
A
外部バスクロック
195
AH/BOOT
I/O
P93
A
外部バス制御 / ブートシングル
196
CS5X
I/O
P75
A
チップセレクト 5
197
A24
I/O
Q
外部バスアドレスビット 24
198
A21
I/O
Q
外部バスアドレスビット 21
199
A15
I/O
Q
外部バスアドレスビット 15
200
A8
I/O
Q
外部バスアドレスビット 8
201
A2
I/O
Q
外部バスアドレスビット 2
202
A0
I/O
Q
外部バスアドレスビット 0
203
D29
I/O
Q
外部バスデータビット 29
204
D25
I/O
Q
外部バスデータビット 25
205
D20
I/O
Q
外部バスデータビット 20
206
D15
I/O
Q
外部バスデータビット 15
207
D4
I/O
Q
外部バスデータビット 4
208
HVDD5C
209
PWM1M2
I/O
PS1
K
SMC 2
210
PWM1P2
I/O
PS0
K
SMC 2
211
PWM1M0
I/O
PR1
K
SMC 0
212
SIN2
I/O
PQ4
A
UART 2 入力
213
RX3
I/O
PP7
Q
CAN 3 RX
214
VSS
215
RX0
I/O
PP1
Q
CAN 0 RX
216
VDD5N
217
OCPA4
I/O
PO4
A
PPG 出力
218
OCPA0
I/O
PO0
A
PPG 出力
219
SIN3
I/O
PN3
A
SIO 入力
220
VSS
221
SGA
I/O
PM1
A
サウンド生成器 SGA
222
TAD13
O
X
トレースアドレス
機能
33
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (7 / 11)
汎用 I/O
ポート
端子番号
端子名
I/O
223
TAD7
O
X
トレースアドレス
224
TAD6
O
X
トレースアドレス
225
TDT64
I/O
W
トレースデータ
226
TDT56
I/O
W
トレースデータ
227
TDT50
I/O
W
トレースデータ
228
TDT44
I/O
W
トレースデータ
229
TDT41
I/O
W
トレースデータ
230
TDT37
I/O
W
トレースデータ
231
TDT34
I/O
W
トレースデータ
232
TDT30
I/O
W
トレースデータ
233
TDT25
I/O
W
トレースデータ
234
TDT20
I/O
W
トレースデータ
235
TDT9
I/O
W
トレースデータ
236
BREAK
I
O
ICE ブレーク
237
ICS1
O
G
ICE ステータス
238
ICS0
O
G
ICE ステータス
239
MD2
I
T
モード端子 2
240
IN2
I/O
PL2
A
ICU 入力 2
241
INT4
I/O
PK4
A
外部割込み 4
242
LED6
I/O
PJ6
J
LED ポート 6
243
LED3
I/O
PJ3
J
LED ポート 3
244
34
回路の種類
機能
接続しない
245
TESTX
I
E
テスト入力
246
DA0
O
C
DAC 出力 0
247
AN5
I/O
PH5
B
ADC 入力 5
248
AN0
I/O
PH0
B
ADC 入力 0
249
AN15
I/O
PG7
B
ADC 入力 15
250
CS1X
I/O
P95
A
チップセレクト 1
251
WR3X
I/O
P87
S
外部バス制御
252
WR2X
I/O
P86
S
外部バス制御
253
DREQ2
I/O
P73
A
DMA リクエスト 2
254
A19
I/O
Q
外部バスアドレスビット 19
255
A13
I/O
Q
外部バスアドレスビット 13
256
A7
I/O
Q
外部バスアドレスビット 7
257
A4
I/O
Q
外部バスアドレスビット 4
258
D31
I/O
Q
外部バスデータビット 31
259
D28
I/O
Q
外部バスデータビット 28
260
D23
I/O
Q
外部バスデータビット 23
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (8 / 11)
汎用 I/O
ポート
端子番号
端子名
I/O
261
D14
I/O
Q
外部バスデータビット 14
262
D8
I/O
Q
外部バスデータビット 8
263
D1
I/O
Q
外部バスデータビット 1
264
D0
I/O
Q
外部バスデータビット 0
265
266
回路の種類
機能
接続しない
HVSS
267
接続しない
268
VSS
269
RX2
I/O
PP5
Q
CAN 2 RX
270
RX1
I/O
PP3
Q
CAN 1 RX
271
VSS
272
OCPA3
I/O
PO3
A
PPG 出力
273
VSS
274
接続しない
275
VDD5I
276
TADSCX
O
X
トレース制御
277
TCE1X
O
X
トレース制御
278
TAD4
O
X
トレースアドレス
279
TAD0
O
X
トレースアドレス
280
TDT62
I/O
W
トレースデータ
281
TDT53
I/O
W
トレースデータ
282
TDT47
I/O
W
トレースデータ
283
TDT43
I/O
W
トレースデータ
284
TDT36
I/O
W
トレースデータ
285
TDT33
I/O
W
トレースデータ
286
TDT28
I/O
W
トレースデータ
287
TDT19
I/O
W
トレースデータ
288
TDT13
I/O
W
トレースデータ
289
TDT6
I/O
W
トレースデータ
290
TDT5
I/O
W
トレースデータ
291
X1
H
4 MHz 発振用端子
292
MONCLK
O
G
テスト用クロック出力
293
MD0
I
T
モード端子 0
294
INT7
I/O
PK7
A
外部割込み 7
295
INT1
I/O
PK1
A
外部割込み 1
296
LED5
I/O
PJ5
J
LED ポート 5
297
LTESTX
I
E
テスト入力
298
ATGX
I/O
A
ADC トリガ
299
AVRLR
R
アナログ基準電圧 "L"
PI3
35
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (9 / 11)
I/O
端子番号
端子名
300
AVRH
301
DREQ1
I/O
302
AN12
303
汎用 I/O
ポート
機能
R
アナログ基準電圧 "H"
PB3
A
DMA リクエスト 1
I/O
PG4
B
ADC 入力 12
AN11
I/O
PG3
B
ADC 入力 11
304
WR0X
I/O
P84
S
外部バス制御
305
RDY
I/O
S
外部バス制御
306
A25
I/O
Q
外部バスアドレスビット 25
307
A16
I/O
Q
外部バスアドレスビット 16
308
A10
I/O
Q
外部バスアドレスビット 10
309
A6
I/O
Q
外部バスアドレスビット 6
310
A1
I/O
Q
外部バスアドレスビット 1
312
D24
I/O
Q
外部バスデータビット 24
313
D12
I/O
Q
外部バスデータビット 12
311
接続しない
314
接続しない
315
PWM2P3
316
HVSS
317
HVSS
I/O
PS6
318
K
SMC 3
接続しない
319
VDD5Q
320
TX2
I/O
PP4
Q
CAN 2 TX
321
TX0
I/O
PP0
Q
CAN 0 TX
322
OCPA6
I/O
PO6
A
PPG 出力
323
VDD5M
324
VDD5L
325
接続しない
326
VDD5H
327
TAD14
328
VSS3
329
VSS3
O
330
36
回路の種類
X
トレースアドレス
接続しない
331
VDD3C
332
TDT46
I/O
W
トレースデータ
333
TDT40
I/O
W
トレースデータ
334
TDT38
I/O
W
トレースデータ
335
VDD3B
336
TDT29
I/O
W
トレースデータ
337
TDT17
I/O
W
トレースデータ
338
VDD3A
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (10 / 11)
端子番号
端子名
I/O
339
TDT0
I/O
340
VSS
341
VSS
汎用 I/O
ポート
回路の種類
W
342
機能
トレースデータ
接続しない
343
VDD5E
344
INT0
I/O
PK0
A
外部割込み 0
345
LED2
I/O
PJ2
J
LED ポート 2
346
LED0
I/O
PJ0
J
LED ポート 0
347
VDD5D
348
AVSS
349
DEOP2
350
VDD5C
351
CS2X
352
VSS
353
VSS
354
VDD5B
アナログ VSS
I/O
PB7
A
DMA 出力終了 2
I/O
P96
A
チップセレクト 2
355
接続しない
356
A9
I/O
Q
外部バスアドレスビット 9
357
A3
I/O
Q
外部バスアドレスビット 3
358
VSS
359
VSS
360
VDD5T
361
VSS
362
VSS
363
VSS
364
接続しない
365
HVSS
366
VSS
367
VSS
368
接続しない
369
VSS
370
VSS
371
接続しない
372
VSS
373
VSS
374
VSS
375
VDD3D
376
VSS3
377
VSS3
37
第 1 章 MB91360 シリーズの概要
表 1.6-1 MB91FV360GA の入出力端子とその機能 (11 / 11)
端子番号
端子名
378
VSS3
379
汎用 I/O
ポート
回路の種類
接続しない
380
VSS3
381
VSS3
382
接続しない
383
VSS3
384
VSS3
385
VSS3
386
VDD5G
387
VSS
388
VSS
389
VSS
390
接続しない
391
VSS
392
VSS
393
接続しない
394
VSS
395
VSS
396
VSS
397
38
I/O
接続しない
398
VSS
399
VSS
400
VSS
401
VDD5A
機能
第 1 章 MB91360 シリーズの概要
■ MB91F362GB の入出力端子とその機能
表 1.6-2 に , MB91F362GB の入出力端子とその機能を示します。
表 1.6-2 MB91F362GB の入出力端子とその機能 (1 / 6)
汎用 I/O
ポート
端子番号
端子名
I/O
1
D24
I/O
Q
外部バスデータビット 24
2
D25
I/O
Q
外部バスデータビット 25
3
D26
I/O
Q
外部バスデータビット 26
4
D27
I/O
Q
外部バスデータビット 27
5
D28
I/O
Q
外部バスデータビット 28
6
D29
I/O
Q
外部バスデータビット 29
7
D30
I/O
Q
外部バスデータビット 30
8
D31
I/O
Q
外部バスデータビット 31
9
A0
I/O
Q
外部バスアドレスビット 0
10
A1
I/O
Q
外部バスアドレスビット 1
11
A2
I/O
Q
外部バスアドレスビット 2
12
A3
I/O
Q
外部バスアドレスビット 3
13
A4
I/O
Q
外部バスアドレスビット 4
14
A5
I/O
Q
外部バスアドレスビット 5
15
A6
I/O
Q
外部バスアドレスビット 6
16
A7
I/O
Q
外部バスアドレスビット 7
17
A8
I/O
Q
外部バスアドレスビット 8
18
A9
I/O
Q
外部バスアドレスビット 9
19
A10
I/O
Q
外部バスアドレスビット 10
20
A11
I/O
Q
外部バスアドレスビット 11
21
A12
I/O
Q
外部バスアドレスビット 12
22
A13
I/O
Q
外部バスアドレスビット 13
23
A14
I/O
Q
外部バスアドレスビット 14
24
A15
I/O
Q
外部バスアドレスビット 15
25
VDD35*
26
VSS
27
A16
I/O
Q
外部バスアドレスビット 16
28
A17
I/O
Q
外部バスアドレスビット 17
29
A18
I/O
Q
外部バスアドレスビット 18
30
A19
I/O
Q
外部バスアドレスビット 19
31
A20
I/O
Q
外部バスアドレスビット 20
32
CS4X
I/O
P74
A
チップセレクト 4
33
CS5X
I/O
P75
A
チップセレクト 5
34
CS6X
I/O
P76
A
チップセレクト 6
35
RDY
I/O
S
外部バス制御
回路の種類
機能
分離された外部バス用 VDD (3.3V または 5.0V)
39
第 1 章 MB91360 シリーズの概要
表 1.6-2 MB91F362GB の入出力端子とその機能 (2 / 6)
40
端子番号
端子名
I/O
汎用 I/O
ポート
回路の種類
36
BGRNTX
I/O
P81
A
外部バス制御
37
BRQ
I/O
P82
A
外部バス制御
38
RDX
I/O
S
外部バス制御
39
WR0X
I/O
S
外部バス制御
40
WR1X
I/O
S
外部バス制御
41
WR2X
I/O
S
外部バス制御
42
WR3X
I/O
S
外部バス制御
43
AS
I/O
P90
A
外部バス制御
44
ALE
I/O
P91
A
外部バス制御
45
CLK
I/O
A
外部バスクロック
46
AH
I/O
P93
A
外部バス制御信号
47
CS0X
I/O
P94
A
チップセレクト 0
48
CS1X
I/O
P95
A
チップセレクト 1
49
CS2X
I/O
P96
A
チップセレクト 2
50
CS3X
I/O
P97
A
チップセレクト 3
51
VDD35*
52
VSS
53
AN8
I/O
PG0
B
ADC 入力 8
54
AN9
I/O
PG1
B
ADC 入力 9
55
AN10
I/O
PG2
B
ADC 入力 10
56
AN11
I/O
PG3
B
ADC 入力 11
57
AN12
I/O
PG4
B
ADC 入力 12
58
AN13
I/O
PG5
B
ADC 入力 13
59
AN14
I/O
PG6
B
ADC 入力 14
60
AN15
I/O
PG7
B
ADC 入力 15
61
DREQ0
I/O
PB0
A
DMA 要求 0
62
DACK0
I/O
PB1
A
DMA 要求受付出力 0
63
DEOP0
I/O
PB2
A
DMA EOP 0
64
AVCC
65
AVRH
66
AN0
I/O
67
AN1
68
機能
分離された外部バス用 VDD (3.3V または 5.0V)
アナログ VCC
R
アナログ基準電圧 "H"
PH0
B
ADC 入力 0
I/O
PH1
B
ADC 入力 1
AN2
I/O
PH2
B
ADC 入力 2
69
AN3
I/O
PH3
B
ADC 入力 3
70
AN4
I/O
PH4
B
ADC 入力 4
71
AN5
I/O
PH5
B
ADC 入力 5
72
AN6
I/O
PH6
B
ADC 入力 6
73
AN7
I/O
PH7
B
ADC 入力 7
第 1 章 MB91360 シリーズの概要
表 1.6-2 MB91F362GB の入出力端子とその機能 (3 / 6)
I/O
汎用 I/O
ポート
端子番号
端子名
回路の種類
機能
74
AVSS, AVRL
75
DA0
O
C
DAC 出力 0
76
DA1
O
C
DAC 出力 1
77
ALARM
I
D
アラームコンパレータ入力
78
VSS
79
VDD
80
ATGX
I/O
A
ADC トリガ入力
81
TESTX
I
E
テスト入力 (VDD に接続してください )
82
CPUTESTX
I
E
テスト入力 (VDD に接続してください )
83
LTESTX
I
E
テスト入力 (VDD に接続してください )
84
LED0
I/O
PJ0
J
LED ポート 0
85
LED1
I/O
PJ1
J
LED ポート 1
86
LED2
I/O
PJ2
J
LED ポート 2
87
LED3
I/O
PJ3
J
LED ポート 3
88
LED4
I/O
PJ4
J
LED ポート 4
89
LED5
I/O
PJ5
J
LED ポート 5
90
LED6
I/O
PJ6
J
LED ポート 6
91
LED7
I/O
PJ7
J
LED ポート 7
92
VDD
93
VSS
94
INT0
I/O
PK0
A
外部割込み 0
95
INT1
I/O
PK1
A
外部割込み 1
96
INT2
I/O
PK2
A
外部割込み 2
97
INT3
I/O
PK3
A
外部割込み 3
98
INT4
I/O
PK4
A
外部割込み 4
99
INT5
I/O
PK5
A
外部割込み 5
100
INT6
I/O
PK6
A
外部割込み 6
101
INT7
I/O
PK7
A
外部割込み 7
102
IN0
I/O
PL0
A
ICU 入力 0
103
IN1
I/O
PL1
A
ICU 入力 1
104
IN2
I/O
PL2
A
ICU 入力 2
105
IN3
I/O
PL3
A
ICU 入力 3
106
OUT0
I/O
PL4
A
OCU 出力 0
107
OUT1
I/O
PL5
A
OCU 出力 1
108
OUT2
I/O
PL6
A
OCU 出力 2
109
OUT3
I/O
PL7
A
OCU 出力 3
110
VSS
111
MD0
T
モード端子 0
アナログ VSS, アナログ基準電圧 "L"
I
PI3
41
第 1 章 MB91360 シリーズの概要
表 1.6-2 MB91F362GB の入出力端子とその機能 (4 / 6)
42
汎用 I/O
ポート
端子番号
端子名
I/O
112
MD1
I
T
モード端子 1
113
MD2
I
T
モード端子 2
114
HSTX
I
E
ハードウェアスタンバイ
115
INITX
I
U
初期化端子
116
MONCLK
O
G
評価用システムクロック出力
117
SELCLK
I
F
クロック選択 , 必ず VDD に接続してください。
118
VDD
119
X0
H
4 MHz 発振用端子
120
X1
H
4 MHz 発振用端子
121
X0A
I
I
使用禁止 , 必ず VSS に接続してください。
122
X1A
O
I
使用禁止 , オープンにしてください
123
VSS
124
CPO
C
使用禁止 , オープンにしてください
125
VCI
D
使用禁止 , 必ず VSS に接続してください。
126
SGO
I/O
PM0
A
サウンド生成器 SGO
127
SGA
I/O
PM1
A
サウンド生成器 SGA
128
SDA
I/O
PM2
Y
I2C SDA
129
SCL
I/O
PM3
Y
I2C SCL
130
SOT4
I/O
PN0
A
SIO 出力
131
SIN4
I/O
PN1
A
SIO 入力
132
SCK4
I/O
PN2
A
SIO クロック
133
SIN3
I/O
PN3
A
SIO 入力
134
SOT3
I/O
PN4
A
SIO 出力
135
SCK3
I/O
PN5
A
SIO クロック
136
OCPA0
I/O
PO0
A
PPG 出力 0
137
OCPA1
I/O
PO1
A
PPG 出力 1
138
OCPA2
I/O
PO2
A
PPG 出力 2
139
OCPA3
I/O
PO3
A
PPG 出力 3
140
OCPA4
I/O
PO4
A
PPG 出力 4
141
OCPA5
I/O
PO5
A
PPG 出力 5
142
OCPA6
I/O
PO6
A
PPG 出力 6
143
OCPA7
I/O
PO7
A
PPG 出力 7
144
VDD
145
VSS
146
TX0
I/O
PP0
Q
CAN 0 TX
147
RX0
I/O
PP1
Q
CAN 0 RX
148
TX1
I/O
PP2
Q
CAN 1 TX
149
RX1
I/O
PP3
Q
CAN 1 RX
回路の種類
機能
第 1 章 MB91360 シリーズの概要
表 1.6-2 MB91F362GB の入出力端子とその機能 (5 / 6)
端子番号
端子名
I/O
汎用 I/O
ポート
回路の種類
150
TX2
I/O
PP4
Q
CAN 2 TX
151
RX2
I/O
PP5
Q
CAN 2 RX
152
SIN0
I/O
PQ0
A
UART 0 入力
153
SOT0
I/O
PQ1
A
UART 0 出力
154
SIN1
I/O
PQ2
A
UART 1 入力
155
SOT1
I/O
PQ3
A
UART 1 出力
156
SIN2
I/O
PQ4
A
UART 2 入力
157
SOT2
I/O
PQ5
A
UART 2 出力
158
VSS
C
バイパスキャパシタ端子
機能
159
VCC3C
160
VDD
161
HVSS
162
PWM1P0
I/O
PR0
K
SMC 0
163
PWM1M0
I/O
PR1
K
SMC 0
164
PWM2P0
I/O
PR2
K
SMC 0
165
PWM2M0
I/O
PR3
M
SMC 0
166
HVDD
167
PWM1P1
I/O
PR4
K
SMC 1
168
PWM1M1
I/O
PR5
K
SMC 1
169
PWM2P1
I/O
PR6
K
SMC 1
170
PWM2M1
I/O
PR7
M
SMC 1
171
HVSS
172
PWM1P2
I/O
PS0
K
SMC 2
173
PWM1M2
I/O
PS1
K
SMC 2
174
PWM2P2
I/O
PS2
K
SMC 2
175
PWM2M2
I/O
PS3
M
SMC 2
176
HVDD
177
PWM1P3
I/O
PS4
K
SMC 3
178
PWM1M3
I/O
PS5
K
SMC 3
179
PWM2P3
I/O
PS6
K
SMC 3
180
PWM2M3
I/O
PS7
M
SMC 3
181
HVSS
182
VDD35*
183
D0
I/O
Q
外部バスデータビット 0
184
D1
I/O
Q
外部バスデータビット 1
185
D2
I/O
Q
外部バスデータビット 2
186
D3
I/O
Q
外部バスデータビット 3
187
D4
I/O
Q
外部バスデータビット 4
188
D5
I/O
Q
外部バスデータビット 5
43
第 1 章 MB91360 シリーズの概要
表 1.6-2 MB91F362GB の入出力端子とその機能 (6 / 6)
汎用 I/O
ポート
端子番号
端子名
I/O
189
D6
I/O
Q
外部バスデータビット 6
190
D7
I/O
Q
外部バスデータビット 7
191
D8
I/O
Q
外部バスデータビット 8
192
D9
I/O
Q
外部バスデータビット 9
193
D10
I/O
Q
外部バスデータビット 10
194
D11
I/O
Q
外部バスデータビット 11
195
D12
I/O
Q
外部バスデータビット 12
196
D13
I/O
Q
外部バスデータビット 13
197
D14
I/O
Q
外部バスデータビット 14
198
VDD35*
199
VSS
200
D15
I/O
Q
外部バスデータビット 15
201
D16
I/O
Q
外部バスデータビット 16
202
D17
I/O
Q
外部バスデータビット 17
203
D18
I/O
Q
外部バスデータビット 18
204
D19
I/O
Q
外部バスデータビット 19
205
D20
I/O
Q
外部バスデータビット 20
206
D21
I/O
Q
外部バスデータビット 21
207
D22
I/O
Q
外部バスデータビット 22
208
D23
I/O
Q
外部バスデータビット 23
回路の種類
機能
分離された外部バス用 VDD (3.3V または 5.0V)
* : VDD35 端子 (25, 51, 182, 198) を 3.3V 電源に接続した場合 , 外部バスインタフェース ( 端子 1 ∼ 52, 182 ∼ 208) は
3.3V で動作します。
44
第 1 章 MB91360 シリーズの概要
■ MB91F364G の入出力端子とその機能
表 1.6-3 に , MB91F364G の入出力端子とその機能を示します。
表 1.6-3 MB91F364G の入出力端子とその機能 (1 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
1
AN0
I/O
PH0
B
ADC 入力 0
2
AN1
I/O
PH1
B
ADC 入力 1
3
AN2
I/O
PH2
B
ADC 入力 2
4
AN3
I/O
PH3
B
ADC 入力 3
5
AN4
I/O
PH4
B
ADC 入力 4
6
AN5
I/O
PH5
B
ADC 入力 5
7
AVSS, AVRL
8
AVRH
9
AVCC
10
AN6
I/O
PH6
B
ADC 入力 6
11
AN7
I/O
PH7
B
ADC 入力 7
12
AN8
I/O
PG0
B
ADC 入力 8
13
AN9
I/O
PG1
B
ADC 入力 9
14
AN10
I/O
PG2
B
ADC 入力 10
15
AN11
I/O
PG3
B
ADC 入力 11
16
VSS
17
VDD
18
SDA
I/O
PM2
YA
I2C SDA
19
SCL
I/O
PM3
YA
I2C SCL
20
SOT0
I/O
PQ1
A
UART0 SOT
21
SIN0
I/O
PQ0
A
UART0 SIN
22
HSTX
I
F
ハードウェアスタンバイ
23
NMIX
I
E
NMI
24
SELCLK
I
F
RTC クロック選択
25
VDD
26
MONCLK
O
Q1
変調クロック出力
27
VSS
28
X1A
O
I
32 kHz 発振用端子
29
X0A
I
I
32 kHz 発振用端子
30
VDD
31
X1
O
H
4 MHz 発振用端子
32
X0
I
H
4 MHz 発振用端子
33
VSS
34
INT0
I/O
PK0
B
外部割込み 0
35
INT1
I/O
PK1
B
外部割込み 1
36
INT2
I/O
PK2
B
外部割込み 2
機能
AVSS, アナログ基準電圧 "L"
R
アナログ基準電圧 "H"
AVCC
45
第 1 章 MB91360 シリーズの概要
表 1.6-3 MB91F364G の入出力端子とその機能 (2 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
37
INT3
I/O
PK3
B
外部割込み 3
38
INT4
I/O
PK4
B
外部割込み 4
39
INT5
I/O
PK5
B
外部割込み 5
40
INT6
I/O
PK6
B
外部割込み 6
41
INT7
I/O
PK7
B
外部割込み 7
42
VDD
43
VSS
44
IN0
I/O
PL0
B
ICU 入力 0 *1
45
IN1
I/O
PL1
B
ICU 入力 1 *1
46
IN2
I/O
PL2
B
ICU 入力 2 *1
47
IN3
I/O
PL3
B
ICU 入力 3 *1
48
OUT0
I/O
PL4
B
OCU 出力 0
49
OUT1
I/O
PL5
B
OCU 出力 1
50
OUT2
I/O
PL6
B
OCU 出力 2
51
OUT3
I/O
PL7
B
OCU 出力 3
52
VDD
53
VSS
54
TESTX
I
E
テスト入力
55
CPUTESTX
I
E
テスト入力
56
ATGX
I/O
A
ADC トリガ
57
MD0
I
T
モード端子 0
58
MD1
I
T
モード端子 1
59
MD2
I
T
モード端子 2
60
INITX
I
U
初期化端子
61
VDD
62
VCC3C
63
VCC3C
64
VSS
65
VDDI
66
VDDI
67
VDDI
68
BREAKX
69
VDD
70
VSS
71
46
PI3
機能
電源用コンデンサまたはコア電圧の外部電源用端
子
分離したコア電源
I
BREAKX
E
EDSU ブレークポイント端子
RX0
I/O
PP1
Q
CAN RX
72
TX0
I/O
PP0
Q
CAN TX
73
OCPA0
I/O
PO0
A
PPG 出力 0
74
OCPA1
I/O
PO1
A
PPG 出力 1
75
OCPA2
I/O
PO2
A
PPG 出力 2
第 1 章 MB91360 シリーズの概要
表 1.6-3 MB91F364G の入出力端子とその機能 (3 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
76
OCPA3
I/O
PO3
A
PPG 出力 3
77
VSS
78
SIN5
I/O
PT0
A
USART5 SIN
79
SCK5
I/O
PT1
A
USART5 SCK
80
SOT5
I/O
PT2
A
USART5 SOT
81
SOT6
I/O
PT3
A
USART6 SOT
82
SCK6
I/O
PT4
A
USART6 SCK
83
SIN6
I/O
PT5
A
USART6 SIN
84
VDD
85
VSS
86
SIN3
I/O
PN3
A
SIO SIN
87
SOT3
I/O
PN4
A
SIO SOT
88
SCK3
I/O
PN5
A
SIO SCK
89
VSS
90
LTESTX
I
LTESTX
E
テスト端子
91
VDD
92
PR0
I/O
PR0
A
ポート R 0
93
PR1
I/O
PR1
A
ポート R 1
94
PR2
I/O
PR2
A
ポート R 2
95
PR3
I/O
PR3
A
ポート R 3
96
PR4
I/O
PR4
A
ポート R 4
97
PR5
I/O
PR5
A
ポート R 5
98
PR6
I/O
PR6
A
ポート R 6
99
PR7
I/O
PR7
A
ポート R 7
100
VSS
101
VDD
102
LED0
I/O
PJ0
J
LED ポート 0
103
LED1
I/O
PJ1
J
LED ポート 1
104
LED2
I/O
PJ2
J
LED ポート 2
105
LED3
I/O
PJ3
J
LED ポート 3
106
VSS
107
LED4
I/O
PJ4
J
LED ポート 4
108
LED5
I/O
PJ5
J
LED ポート 5
109
LED6
I/O
PJ6
J
LED ポート 6
110
LED7
I/O
PJ7
J
LED ポート 7
111
VSS
112
VDD
113
PO4
I/O
PO4
A
ポート O 4
114
PO5
I/O
PO5
A
ポート O 5
機能
47
第 1 章 MB91360 シリーズの概要
表 1.6-3 MB91F364G の入出力端子とその機能 (4 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
115
PO6
I/O
PO6
A
ポート O 6
116
PO7
I/O
PO7
A
ポート O 7
117
DA0
O
C
*2
118
DA1
O
C
*2
119
VSS
120
VDD
機能
*1: ポート L の機能レジスタ・ビットがクリアされると , ICU 入力回線が LIN-USART の LSYNC 出
力に接続されます。
*2: デジタル・テスト機能には , DA1 および DA0 端子も使用されます。正常なシステム機能を実現
するため , ポート P のデータ方向レジスタ DDRP[3:2] およびポート P の機能レジスタ PFRP[3:2]
は , 常に "0" に設定してください。
48
第 1 章 MB91360 シリーズの概要
■ MB91F369GA の入出力端子とその機能
表 1.6-4 に , MB91F369GA の入出力端子とその機能を示します。
表 1.6-4 MB91F369GA の入出力端子とその機能 (1 / 5)
端子番号
端子名
I/O
1
A4
I/O
Q
外部バスアドレスビット 4
2
A5
I/O
Q
外部バスアドレスビット 5
3
A6
I/O
Q
外部バスアドレスビット 6
4
A7
I/O
Q
外部バスアドレスビット 7
5
A8
I/O
Q
外部バスアドレスビット 8
6
A9
I/O
Q
外部バスアドレスビット 9
7
A10
I/O
Q
外部バスアドレスビット 10
8
A11
I/O
Q
外部バスアドレスビット 11
9
VDD35*
10
CLK
11
VSS
12
汎用 I/O ポート
回路の種類
機能
分離された外バス用 VDD (3.3V または 5.0V)
I/O
A
外部バスクロック
A12
I/O
Q
外部バスアドレスビット 12
13
A13
I/O
Q
外部バスアドレスビット 13
14
A14
I/O
Q
外部バスアドレスビット 14
15
A15
I/O
Q
外部バスアドレスビット 15
16
A16
I/O
Q
外部バスアドレスビット 16
17
A17
I/O
Q
外部バスアドレスビット 17
18
A18
I/O
Q
外部バスアドレスビット 18
19
A19
I/O
Q
外部バスアドレスビット 19
20
A20
I/O
Q
外部バスアドレスビット 20
21
VDD35*
22
VSS
23
CS4X
I/O
P74
A
チップセレクト 4
24
CS5X
I/O
P75
A
チップセレクト 5
25
CS6X
I/O
P76
A
チップセレクト 6
26
RDX
I/O
S
外部バス制御
27
BGRNTX
I/O
P81
A
外部バス制御
28
BRQ
I/O
P82
A
外部バス制御
29
AS
I/O
P90
A
外部バス制御
30
ALE
I/O
P91
A
外部バス制御
31
AH
I/O
P93
A
外部バス制御信号
32
CS0X
I/O
P94
A
チップセレクト 0
33
CS1X
I/O
P95
A
チップセレクト 1
34
CS2X
I/O
P96
A
チップセレクト 2
35
CS3X
I/O
P97
A
チップセレクト 3
36
DREQ0
I/O
PB0
A
DMA 要求 0
分離された外部バス用 VDD (3.3V または 5.0V)
49
第 1 章 MB91360 シリーズの概要
表 1.6-4 MB91F369GA の入出力端子とその機能 (2 / 5)
50
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
37
DACK0
I/O
PB1
A
DMA 要求受付出力 0
38
DEOP0
I/O
PB2
A
DMA EOP 0
39
VSS
40
VDD35*
41
AVRH
42
AVCC
43
AVSS, AVRL
44
AN0
I/O
PH0
B
ADC 入力 0
45
AN1
I/O
PH1
B
ADC 入力 1
46
AN2
I/O
PH2
B
ADC 入力 2
47
AN3
I/O
PH3
B
ADC 入力 3
48
AN4
I/O
PH4
B
ADC 入力 4
49
AN5
I/O
PH5
B
ADC 入力 5
50
AN6
I/O
PH6
B
ADC 入力 6
51
AN7
I/O
PH7
B
ADC 入力 7
52
AN8
I/O
PG0
B
ADC 入力 8
53
AN9
I/O
PG1
B
ADC 入力 9
54
ALARM
I
D
アラームコンパレータ入力
55
VSS
56
VDD
57
ATGX
I/O
A
ADC トリガ入力
58
MD0
I
T
モード端子 0
59
MD1
I
T
モード端子 1
60
MD2
I
T
モード端子 2
61
HSTX
I
E
ハードウェアスタンバイ
62
INITX
I
U
初期化端子
63
TESTX
I
E
テスト入力 (VDD に接続してください )
64
CPUTESTX
I
E
テスト入力 (VDD に接続してください )
65
LTESTX
I
E
テスト入力 (VDD に接続してください )
66
VDD
67
VSS
68
INT0
I/O
PK0
A
外部割込み 0
69
INT1
I/O
PK1
A
外部割込み 1
70
INT2
I/O
PK2
A
外部割込み 2
71
INT3
I/O
PK3
A
外部割込み 3
72
INT4
I/O
PK4
A
外部割込み 4
73
INT5
I/O
PK5
A
外部割込み 5
74
INT6
I/O
PK6
A
外部割込み 6
75
INT7
I/O
PK7
A
外部割込み 7
機能
分離された外部バス用 VDD (3.3V または 5.0V)
R
アナログ基準電圧 "H"
アナログ VCC
アナログ VSS アナログ基準電圧 "L"
PI3
第 1 章 MB91360 シリーズの概要
表 1.6-4 MB91F369GA の入出力端子とその機能 (3 / 5)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
76
SGO
I/O
PM0
A
サウンド生成器 SGO
77
SGA
I/O
PM1
A
サウンド生成器 SGA
78
SDA
I/O
PM2
Y
I2C SDA
79
SCL
I/O
PM3
Y
I2C SCL
80
SOT4
I/O
PN0
A
SIO 出力
81
SIN4
I/O
PN1
A
SIO 入力
82
SCK4
I/O
PN2
A
SIO クロック
83
SIN3
I/O
PN3
A
SIO 入力
84
SOT3
I/O
PN4
A
SIO 出力
85
SCK3
I/O
PN5
A
SIO クロック
86
VSS
87
VDDI
内部レギュレータ用電源
88
VDDI
内部レギュレータ用電源
89
VDDI
内部レギュレータ用電源
90
VDDI
内部レギュレータ用電源
91
VDD3C
92
VSS
93
TX0
I/O
PP0
Q
CAN 0 TX
94
RX0
I/O
PP1
Q
CAN 0 RX
95
TX1
I/O
PP2
Q
CAN 1 TX
96
RX1
I/O
PP3
Q
CAN 1 RX
97
SIN0
I/O
PQ0
A
UART 0 入力
98
SOT0
I/O
PQ1
A
UART 0 出力
99
VDD
100
VSS
101
OCPA0
I/O
PO0
A
PPG 出力
102
OCPA1
I/O
PO1
A
PPG 出力
103
OCPA2
I/O
PO2
A
PPG 出力
104
OCPA3
I/O
PO3
A
PPG 出力
105
VDD
106
X0
I
H
4 MHz 発振用端子
107
X1
O
H
4 MHz 発振用端子
108
VSS
109
VDD
110
MONCLK
O
Q1
システムクロック出力
111
VSS
112
VDD35*
113
VSS
114
WR3X
機能
内部レギュレータ用キャパシタ端子
分離された外部バス用 VDD (3.3V または 5.0V)
I/O
S
外部バス制御
51
第 1 章 MB91360 シリーズの概要
表 1.6-4 MB91F369GA の入出力端子とその機能 (4 / 5)
52
端子番号
端子名
I/O
115
WR2X
I/O
S
外部バス制御
116
WR1X
I/O
S
外部バス制御
117
WR0X
I/O
S
外部バス制御
118
RDY
I/O
S
外部バス制御
119
VDD35*
120
VSS
121
D0
I/O
Q
外部バスデータビット 0
122
D1
I/O
Q
外部バスデータビット 1
123
D2
I/O
Q
外部バスデータビット 2
124
D3
I/O
Q
外部バスデータビット 3
125
D4
I/O
Q
外部バスデータビット 4
126
D5
I/O
Q
外部バスデータビット 5
127
D6
I/O
Q
外部バスデータビット 6
128
D7
I/O
Q
外部バスデータビット 7
129
D8
I/O
Q
外部バスデータビット 8
130
D9
I/O
Q
外部バスデータビット 9
131
D10
I/O
Q
外部バスデータビット 10
132
D11
I/O
Q
外部バスデータビット 11
133
D12
I/O
Q
外部バスデータビット 12
134
D13
I/O
Q
外部バスデータビット 13
135
D14
I/O
Q
外部バスデータビット 14
136
D15
I/O
Q
外部バスデータビット 15
137
VDD35*
138
VSS
139
D16
I/O
Q
外部バスデータビット 16
140
D17
I/O
Q
外部バスデータビット 17
141
D18
I/O
Q
外部バスデータビット 18
142
D19
I/O
Q
外部バスデータビット 19
143
D20
I/O
Q
外部バスデータビット 20
144
D21
I/O
Q
外部バスデータビット 21
145
D22
I/O
Q
外部バスデータビット 22
146
D23
I/O
Q
外部バスデータビット 23
147
D24
I/O
Q
外部バスデータビット 24
148
D25
I/O
Q
外部バスデータビット 25
149
D26
I/O
Q
外部バスデータビット 26
150
D27
I/O
Q
外部バスデータビット 27
151
D28
I/O
Q
外部バスデータビット 28
152
D29
I/O
Q
外部バスデータビット 29
汎用 I/O ポート
回路の種類
機能
分離された外部バス用 VDD (3.3V または 5.0V)
分離された外部バス用 VDD (3.3V または 5.0V)
第 1 章 MB91360 シリーズの概要
表 1.6-4 MB91F369GA の入出力端子とその機能 (5 / 5)
端子番号
端子名
I/O
153
D30
I/O
Q
外部バスデータビット 30
154
D31
I/O
Q
外部バスデータビット 31
155
VDD35 *
156
VSS
157
A0
I/O
Q
外部バスアドレスビット 0
158
A1
I/O
Q
外部バスアドレスビット 1
159
A2
I/O
Q
外部バスアドレスビット 2
160
A3
I/O
Q
外部バスアドレスビット 3
汎用 I/O ポート
回路の種類
機能
分離された外部バス用 VDD (3.3V または 5.0V)
*: VDD35 (9, 21, 40, 112, 119, 137, 155) ピンを 3.3 V に接続した場合 , 外部バスインタフェース (1-40, 112-160) は 3.3 V で
動作できます。
53
第 1 章 MB91360 シリーズの概要
■ MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能
表 1.6-5 に , MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能を示し
ます。
表 1.6-5 MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能 (1 / 4)
I/O
汎用 I/O ポート
回路の種類
(FLASH 品 )
回路の種類
(ROM 品 )
PJ4
I/O
PJ4
A
A
ポート J4
4
PJ5
I/O
PJ5
A
A
ポート J5
5
PJ6
I/O
PJ6
A
A
ポート J6
6
PJ7
I/O
PJ7
A
A
ポート J7
7
PI3
I/O
PI3
A
A
ポート I3
8
VDD
9
VSS
10
SGO
I/O
PM0
A
A
サウンド生成器 SGO
11
SGA
I/O
PM1
A
A
サウンド生成器 SGA
12
SDA
I/O
PM2
Y
Y
I2C SDA ( 内部 pull-up なし )
13
SCL
I/O
PM3
Y
Y
I2C SCL ( 内部 pull-up なし )
14
VDD
15
VSS
16
AVRH
R
R
アナログ基準電圧 "H"
17
AVCC
18
AVSS, AVRL
19
AN0
I/O
PH0
B
B
ADC0 入力
20
AN1
I/O
PH1
B
B
ADC1 入力
21
AN2
I/O
PH2
B
B
ADC2 入力
22
AN3
I/O
PH3
B
B
ADC3 入力
23
AN4
I/O
PH4
B
B
ADC4 入力
24
AN5
I/O
PH5
B
B
ADC5 入力
25
AN6
I/O
PH6
B
B
ADC6 入力
26
AN7
I/O
PH7
B
B
ADC7 入力
DA0
O
C
C
DAC 出力 (MB91F365GB)
I
I
I
32 kHz 発振用端子 (MB91F366GB/
366GA/MB91F376G)
O
C
C
DAC 出力 (MB91F365GB)
O
I
I
32 kHz 発振用端子 (MB91F366GB/
366GA/MB91F376G)
I
D
D
アラームコンパレータ入力
A
A
ブート端子 ( 注意事項参照 )
端子番号
端子名
1
VDD
2
VSS
3
27
X0A
DA1
28
X1A
54
29
ALARM
30
VSS
31
BOOT
機能
アナログ VCC
アナログ基準電圧 "L"/ アナログ VSS
I/O
P93
第 1 章 MB91360 シリーズの概要
表 1.6-5 MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能 (2 / 4)
回路の種類
(FLASH 品 )
回路の種類
(ROM 品 )
I
E
E
テストモード端子
I
E
E
テストモード端子
X0
I
H
H
4 MHz 発振用端子
36
X1
O
H
H
4 MHz 発振用端子
37
VSS
38
MONCLK
O
G
G
クロック出力
39
INT0
I/O
PK0
A
A
外部割込み 0
40
INT1
I/O
PK1
A
A
外部割込み 1
41
INT2
I/O
PK2
A
A
外部割込み 2
42
INT3
I/O
PK3
A
A
外部割込み 3
43
INT4
I/O
PK4
A
A
外部割込み 4
44
INT5
I/O
PK5
A
A
外部割込み 5
45
INT6
I/O
PK6
A
A
外部割込み 6
46
INT7
I/O
PK7
A
A
外部割込み 7
47
VDD
48
VCC3C
49
VSS
50
IN0
I/O
PL0
A
A
ICU 入力 0
51
IN1
I/O
PL1
A
A
ICU 入力 1
52
IN2
I/O
PL2
A
A
ICU 入力 2
53
IN3
I/O
PL3
A
A
ICU 入力 3
54
OUT0
I/O
PL4
A
A
OCU 出力 0
55
OUT1
I/O
PL5
A
A
OCU 出力 1
56
VDD
57
MD0
I
T
F
モード端子 0
58
MD1
I
T
F
モード端子 1
59
MD2
I
T
F
モード端子 2
60
INITX
I
U
U
初期化端子
61
VDD
62
VSS
63
SOT4
I/O
PN0
A
A
SIO4 出力
64
SIN4
I/O
PN1
A
A
SIO4 入力
65
SCK4
I/O
PN2
A
A
SIO4 クロック
66
SIN3
I/O
PN3
A
A
SIO3 入力
67
SOT3
I/O
PN4
A
A
SIO3 出力
68
SCK3
I/O
PN5
A
A
SIO3 クロック
69
VSS
端子番号
端子名
I/O
32
TESTX
33
CPUTESTX
34
VDD
35
汎用 I/O ポート
機能
内部電源電圧端子
内部電源用コンデンサ端子
内部電源電圧端子
内部電源電圧端子
55
第 1 章 MB91360 シリーズの概要
表 1.6-5 MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能 (3 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
(FLASH 品 )
回路の種類
(ROM 品 )
70
OCPA0
I/O
PO0
A
A
PPG0 出力
71
OCPA1
I/O
PO1
A
A
PPG1 出力
72
OCPA2
I/O
PO2
A
A
PPG2 出力
73
OCPA3
I/O
PO3
A
A
PPG3 出力
74
OCPA4
I/O
PO4
A
A
PPG4 出力
75
OCPA5
I/O
PO5
A
A
PPG5 出力
76
OCPA6
I/O
PO6
A
A
PPG6 出力
77
OCPA7
I/O
PO7
A
A
PPG7 出力
78
TX0
I/O
PP0
Q
Q
CAN0 TX 出力
79
RX0
I/O
PP1
Q
Q
CAN0 RX 出力
80
TX1
I/O
PP2
Q
Q
CAN1 TX 出力
81
RX1
I/O
PP3
Q
Q
CAN1 RX 出力
82
VDD
83
VSS
84
SIN0
I/O
PQ0
A
A
UART0 入力
85
SOT0
I/O
PQ1
A
A
UART0 出力
86
SIN1
I/O
PQ2
A
A
UART1 入力
87
SOT1
I/O
PQ3
A
A
UART1 出力
88
PG0
I/O
PG0
A
A
ポート G0
89
PG1
I/O
PG1
A
A
ポート G1
90
PG2
I/O
PG2
A
A
ポート G2
91
PG3
I/O
PG3
A
A
ポート G3
92
PG4
I/O
PG4
A
A
ポート G4
93
PG5
I/O
PG5
A
A
ポート G5
94
VDD
95
HVSS
96
PWM1P0
I/O
PR0
K
K
SMC0
97
PWM1M0
I/O
PR1
K
K
SMC0
98
PWM2P0
I/O
PR2
K
K
SMC0
99
PWM2M0
I/O
PR3
M
M
SMC0
100
HVDD
101
PWM1P1
I/O
PR4
K
K
SMC1
102
PWM1M1
I/O
PR5
K
K
SMC1
103
PWM2P1
I/O
PR6
K
K
SMC1
104
PWM2M1
I/O
PR7
M
M
SMC1
105
HVSS
106
PWM1P2
I/O
PS0
K
K
SMC2
107
PWM1M2
I/O
PS1
K
K
SMC2
56
機能
SMC VSS
SMC VDD
SMC VSS
第 1 章 MB91360 シリーズの概要
表 1.6-5 MB91F365GB/F366GB/F376G, MB91366GA の入出力端子とその機能 (4 / 4)
端子番号
端子名
I/O
汎用 I/O ポート
回路の種類
(FLASH 品 )
回路の種類
(ROM 品 )
108
PWM2P2
I/O
PS2
K
K
SMC2
109
PWM2M2
I/O
PS3
M
M
SMC2
110
HVDD
111
PWM1P3
I/O
PS4
K
K
SMC3
112
PWM1M3
I/O
PS5
K
K
SMC3
113
PWM2P3
I/O
PS6
K
K
SMC3
114
PWM2M3
I/O
PS7
M
M
SMC3
115
HVSS
116
VDD
117
PJ0
I/O
PJ0
A
A
ポート J0
118
PJ1
I/O
PJ1
A
A
ポート J1
119
PJ2
I/O
PJ2
A
A
ポート J2
120
PJ3
I/O
PJ3
A
A
ポート J3
( 注意事項 )
機能
SMC VDD
端子 31 (BOOT) は , デフォルトで "L" になっていなければなりません ( プルダウン抵抗 ) 。リセット / ブート
時のディスターバンスを回避するため , いかなる用途においても , この端子は出力としてのみ使用することを
推奨します。
57
第 1 章 MB91360 シリーズの概要
■ MB91F367GB/F368GB の入出力端子とその機能
表 1.6-6 に , MB91F367GB/F368GB の入出力端子とその機能を示します。
表 1.6-6 MB91F367GB/F368GB の入出力端子とその機能 (1 / 4)
I/O
汎用 I/O
ポート
回路の種類
PJ4
I/O
PJ4
A
ポート J4
4
PJ5
I/O
PJ5
A
ポート J5
5
PJ6
I/O
PJ6
A
ポート J6
6
PJ7
I/O
PJ7
A
ポート J7
7
PI3
I/O
PI3
A
ポート I3
8
VDD
9
VSS
10
PM0
I/O
PM0
A
ポート M0
11
PM1
I/O
PM1
A
ポート M1
12
SDA
I/O
PM2
Y
I2C SDA ( 内部 pull-up なし )
13
SCL
I/O
PM3
Y
I2C SCL ( 内部 pull-up なし )
14
VDD
15
VSS
16
AVRH
R
アナログ基準電圧 "H"
17
AVCC
18
AVSS/AVRL
19
AN0
I/O
PH0
B
ADC0 入力
20
AN1
I/O
PH1
B
ADC1 入力
21
AN2
I/O
PH2
B
ADC2 入力
22
AN3
I/O
PH3
B
ADC3 入力
23
AN4
I/O
PH4
B
ADC4 入力
24
AN5
I/O
PH5
B
ADC5 入力
25
AN6
I/O
PH6
B
ADC6 入力
26
AN7
I/O
PH7
B
ADC7 入力
27
X0A
I
I
32 kHz 発振用端子 (MB91F368GB)
端子番号
端子名
1
VDD
2
VSS
3
アナログ VCC
アナログ基準電圧 "L"/ アナログ VSS
N.C.
28
X1A
未接続 (MB91F367GB)
O
I
N.C.
58
機能
32 kHz 発振用端子 (MB91F368GB)
未接続 (MB91F367GB)
29
ALARM
I
D
30
VSS
アラーム比較器入力
31
BOOT
I/O
A
ブート端子 ( 注意事項参照 )
32
TESTX
I
E
テストモード端子
33
CPUTESTX
I
E
テストモード端子
P93
第 1 章 MB91360 シリーズの概要
表 1.6-6 MB91F367GB/F368GB の入出力端子とその機能 (2 / 4)
I/O
汎用 I/O
ポート
端子番号
端子名
回路の種類
機能
34
VDD
35
X0
I
H
4 MHz 発振用端子
36
X1
O
H
4 MHz 発振用端子
37
VSS
38
MONCLK
O
G
クロック出力
39
INT0
I/O
PK0
A
外部割込み 0
40
INT1
I/O
PK1
A
外部割込み 1
41
INT2
I/O
PK2
A
外部割込み 2
42
INT3
I/O
PK3
A
外部割込み 3
43
INT4
I/O
PK4
A
外部割込み 4
44
INT5
I/O
PK5
A
外部割込み 5
45
INT6
I/O
PK6
A
外部割込み 6
46
INT7
I/O
PK7
A
外部割込み 7
47
VDD
48
VCC3C
49
VSS
50
IN0
I/O
PL0
A
ICU0 入力
51
IN1
I/O
PL1
A
ICU1 入力
52
IN2
I/O
PL2
A
ICU2 入力
53
IN3
I/O
PL3
A
ICU3 入力
54
OUT0
I/O
PL4
A
OCU 出力 0
55
OUT1
I/O
PL5
A
OCU 出力 1
56
VDD
57
MD0
I
T
モード端子 0
58
MD1
I
T
モード端子 1
59
MD2
I
T
モード端子 2
60
INITX
I
U
初期化端子
61
VDD
62
VSS
63
SOT4
I/O
PN0
A
SIO4 出力
64
SIN4
I/O
PN1
A
SIO4 入力
65
SCK4
I/O
PN2
A
SIO4 クロック
66
SIN3
I/O
PN3
A
SIO3 入力
67
SOT3
I/O
PN4
A
SIO3 出力
68
SCK3
I/O
PN5
A
SIO3 クロック
69
VSS
70
OCPA0
I/O
PO0
A
PPG 出力 0
71
OCPA1
I/O
PO1
A
PPG 出力 1
内部電源電圧端子
内部電源用コンデンサ端子
内部電源電圧端子
内部電源電圧端子
59
第 1 章 MB91360 シリーズの概要
表 1.6-6 MB91F367GB/F368GB の入出力端子とその機能 (3 / 4)
60
端子番号
端子名
I/O
汎用 I/O
ポート
回路の種類
72
OCPA2
I/O
PO2
A
PPG 出力 2
73
OCPA3
I/O
PO3
A
PPG 出力 3
74
PO4
I/O
PO4
A
ポート O4
75
PO5
I/O
PO5
A
ポート O5
76
PO6
I/O
PO6
A
ポート O6
77
PO7
I/O
PO7
A
ポート O5
78
TX0
I/O
PP0
Q
CAN0 TX 出力
79
RX0
I/O
PP1
Q
CAN0 RX 出力
80
TX1
I/O
PP2
Q
CAN1 TX 出力
81
RX1
I/O
PP3
Q
CAN1 RX 出力
82
VDD
83
VSS
84
SIN0
I/O
PQ0
A
UART0 入力
85
SOT0
I/O
PQ1
A
UART0 出力
86
PQ2
I/O
PQ2
A
ポート Q2
87
PQ3
I/O
PQ3
A
ポート Q3
88
PG0
I/O
PG0
A
ポート G0
89
PG1
I/O
PG1
A
ポート G1
90
PG2
I/O
PG2
A
ポート G2
91
PG3
I/O
PG3
A
ポート G3
92
PG4
I/O
PG4
A
ポート G4
93
PG5
I/O
PG5
A
ポート G5
94
VDD
95
VSS
96
PR0
I/O
PR0
K
ポート R0
97
PR1
I/O
PR1
K
ポート R1
98
PR2
I/O
PR2
K
ポート R2
99
PR3
I/O
PR3
M
ポート R3
100
HVDD
101
PR4
I/O
PR4
K
ポート R4
102
PR5
I/O
PR5
K
ポート R5
103
PR6
I/O
PR6
K
ポート R6
104
PR7
I/O
PR7
M
ポート R7
105
VSS
106
PS0
I/O
PS0
K
ポート S0
107
PS1
I/O
PS1
K
ポート S1
108
PS2
I/O
PS2
K
ポート S2
109
PS3
I/O
PS3
M
ポート S3
機能
ポート R, ポート S 用 VDD
第 1 章 MB91360 シリーズの概要
表 1.6-6 MB91F367GB/F368GB の入出力端子とその機能 (4 / 4)
I/O
汎用 I/O
ポート
端子番号
端子名
110
HVDD
111
PS4
I/O
PS4
K
ポート S4
112
PS5
I/O
PS5
K
ポート S5
113
PS6
I/O
PS6
K
ポート S6
114
PS7
I/O
PS7
M
ポート S7
115
VSS
116
VDD
117
PJ0
I/O
PJ0
A
ポート J0
118
PJ1
I/O
PJ1
A
ポート J1
119
PJ2
I/O
PJ2
A
ポート J2
120
PJ3
I/O
PJ3
A
ポート J3
( 注意事項 )
回路の種類
機能
ポート R, ポート S 用 VDD
端子 31 (BOOT) は , デフォルトで "L" になっていなければなりません ( プルダウン抵抗 ) 。
リセット / ブート時のディスターバンスを回避するため , いかなる用途においても , この
端子は出力としてのみ使用することを推奨します。
61
第 1 章 MB91360 シリーズの概要
■ 回路の種類
表 1.6-7 に , 回路の種類とその説明を示します。
表 1.6-7 回路の種類
回路の種類
A
入出力 , IOH=-4mA/IOL=4mA, CMOS オートモーティブシュミットトリガ入力 ,
B
入出力 , IOH=-4mA/IOL=4mA, CMOS オートモーティブシュミットトリガ入力 ,
STOP 制御
アナログ入力 , STOP 制御
C
アナログ出力
D
アナログ入力
E
CMOS シュミットトリガ入力 , 50kΩ プルアップ抵抗
F
CMOS シュミットトリガ入力
G
トライステート出力 , IOH=-4mA/IOL=4mA
H
4 MHz Oscillator Pin
I
32 kHz Oscillator Pin
J
入出力 , IOH=-14mA/IOL=24mA, CMOS オートモーティブシュミットトリガ入力 ,
STOP 制御 (LED)
K
入出力 , IOH=-30mA/IOL=30mA, CMOS オートモーティブシュミットトリガ入力 ,
L
入出力 , IOH=-4mA/IOL=4mA, CMOS 入力 (5V または 3V 入力 )
M
入出力 , IOH=-30mA/IOL=30mA, CMOS オートモーティブシュミットトリガ入力 ,
N
入出力 , IOH=-4mA/IOL=4mA, CMOS 入力 , 50kΩ プルダウン抵抗 (5V または 3V 入力 )
O
CMOS 入力 , 50kΩ プルダウン抵抗 (5V または 3V 入力 )
P
CMOS 入力 ; 3V 入力
Q
入出力 , IOH=-4mA/IOL=4mA, CMOS 入力 , STOP 制御
Q1
入出力 , IOH=-8mA/IOL=8mA, CMOS 入力 , STOP 制御
R
AVRL/AVRH 入力
S
入出力 , IOH=-4mA/IOL=4mA, CMOS 入力 , STOP 制御 , 10kΩ プルアップ抵抗
T
CMOS 入力 , フラッシュプログラミングに対して高耐圧入力
U
CMOS オートモーティブシュミットトリガ入力 , 50kΩ プルアップ抵抗 , コアへの
3.3V, および 5V 入力
W
入出力 , IOH=-4mA/IOL=4mA, CMOS 入力 , 3V 入力
X
トライステート出力 , IOH=-4mA/IOL=4mA, 3V
Y
入出力 , IOH=-3mA/IOL=3mA(I2C), CMOS 入力 , STOP 制御
YA
62
説明
STOP 制御 , EMC 用に改良されたスルーレート (SMC)
アナログ入力 , STOP 制御 , EMC 用に改良されたスルーレート (SMC)
入出力 , IOH=-3mA/IOL=3mA(I2C), CMOS シュミットトリガ入力 , STOP 制御
第 1 章 MB91360 シリーズの概要
1.7
入出力回路の種類
表 1.7-1 に , 表 1.6-7 で示した入出力回路の詳細を示します。
■ 入出力回路の種類
表 1.7-1 入出力回路の種類 (1 / 6)
形式
回路の種類
備考
A
P
デジタル出力
N
デジタル出力
R
• 入出力 , CMOS オートモーティブ
シュミットトリガ入力 , STOP 制御 ,
IOH=-4mA, IOL=4mA
V SS
デジタル入力
ストップ制御
B
アナログ入力
R
P
デジタル出力
N
デジタル出力
R
• 入出力 , CMOS オートモーティブ
シュミットトリガ入力 , アナログ入力 ,
STOP 制御 , IOH=-4mA, IOL=4mA
V SS
デジタル入力
ストップ制御
C
• アナログ出力
V CC
P
N
V SS
アナログ出力
63
第 1 章 MB91360 シリーズの概要
表 1.7-1 入出力回路の種類 (2 / 6)
形式
回路の種類
備考
D
• アナログ入力
VCC
P
N
R
VSS
アナログ入力
E
V CC
VCC
P
• CMOS シュミットトリガ入力 ,
50kΩ プルアップ
P
N
R
VSS
VSS
デジタル入力
F
• CMOS シュミットトリガ入力
V CC
P
N
R
VSS
デジタル入力
G
• トライステート出力 , IOH=-4mA,
IOL=4mA
VCC
P
デジタル出力
N
デジタル出力
V SS
H
• 4 MHz 発振器端子
X1
クロック入力
X0
ストップ制御
64
第 1 章 MB91360 シリーズの概要
表 1.7-1 入出力回路の種類 (3 / 6)
形式
回路の種類
備考
I
• 32 kHz 発振器端子
X1A
クロック入力
X0A
ストップ制御
J
P
R
デジタル出力
N
• 入出力 , CMOS シュミットトリガ入力 ,
STOP 制御 (LED), IOH=-12mA,
IOL=24mA
デジタル出力
V SS
デジタル入力
ストップ制御
K
R
P
デジタル出力
N
デジタル出力
• 入出力 , CMOS シュミットトリガ入力 ,
STOP 制御 (SMC), IOH=-30mA,
IOL=30mA
• 代表的スルーレート 40ns
V SS
デジタル入力
ストップ制御
L
V CC
R
P
デジタル出力
N
デジタル出力
• 入出力 , CMOS 入力 (5V または 3V 入
力 ), IOH=-4mA, IOL=4mA
V SS
デジタル入力
65
第 1 章 MB91360 シリーズの概要
表 1.7-1 入出力回路の種類 (4 / 6)
形式
回路の種類
備考
M
アナログ入力
R
P
デジタル出力
• 入出力 , CMOS オートモーティブ
シュミットトリガ入力 , アナログ入力 ,
STOP 制御 (SMC), IOH=-30mA,
IOL=30mA
• 代表的スルーレート 40ns
N
R
デジタル出力
V SS
デジタル入力
ストップ制御
N
デジタル入力
V CC
R
N
P
デジタル出力
N
デジタル出力
• 入出力 , CMOS 入力 , 50kΩ プルダウン
抵抗 (5V または 3V 入力 ), IOH=-4mA,
IOL=4mA
V SS
O
デジタル入力
V CC
V CC
R
P
N
N
V SS
V SS
P
• CMOS 入力 (3V 入力 )
V CC
P
N
R
V SS
デジタル入力
66
• CMOS 入力 , 50kΩ プルダウン抵抗
(5V または 3V 入力 )
第 1 章 MB91360 シリーズの概要
表 1.7-1 入出力回路の種類 (5 / 6)
形式
回路の種類
備考
Q/Q1
P
デジタル出力
N
デジタル出力
R
• Q : 入出力 , CMOS 入力 , STOP 制御 ,
IOH=-4mA, IOL=4mA
• Q1: 入出力 , CMOS 入力 , STOP 制御 ,
IOH=-8mA, IOL=8mA
VSS
デジタル入力
ストップ制御
S
Vcc
P
R
P
デジタル出力
N
デジタル出力
• 入出力 , CMOS 入力 , STOP 制御 , 10kΩ
プルアップ抵抗 , IOH=-4mA, IOL=4mA
Vss
デジタル入力
ストップ制御
T
• CMOS 入力
• フラッシュプログラミングに対して
高耐圧入力
制御信号
MD入力
R
U
V CC
V CC
P
P
• CMOS シュミットトリガ入力 , 50kΩ
プルアップ抵抗 , コアへの 3.3V, および
5V 入力
N
R
V SS
VSS
デジタル入力
67
第 1 章 MB91360 シリーズの概要
表 1.7-1 入出力回路の種類 (6 / 6)
形式
回路の種類
備考
W
• 入出力 , CMOS 入力 (3V 入力 )
3V
P
デジタル出力
N
デジタル出力
R
VSS
デジタル入力
X
• トライステート出力 (3V)
3V
P
デジタル出力
N
デジタル出力
VSS
Y
P
デジタル出力
N
デジタル出力
R
• I2C モードでは , オープンドレイン
出力として動作する入出力 , CMOS
入力 , STOP 制御 , IOH=-3mA, IOL=3mA
V SS
デジタル入力
ストップ制御
YA
R
P
デジタル出力
N
デジタル出力
• I2C モードでは , オープンドレイン
出力として動作する入出力 , CMOS
シュミットトリガ入力 , STOP 制御 ,
IOH=-3mA, IOL=3mA
V SS
デジタル入力
ストップ制御
( 注意事項 )
68
回路の種類に使用するシンボル ( 全回路図に共通 )
P: P チャネルトランジスタ
N: N チャネルトランジスタ
R: 拡散抵抗
第 1 章 MB91360 シリーズの概要
1.8
メモリ空間
FR50 シリーズの論理アドレス空間は 4G バイト (232 番地 ) あり , CPU はリニアに
アクセスできます。
■ MB91360 シリーズのメモリマップ
図 1.8-1 に , MB91360 シリーズのメモリ空間を示します。
図 1.8-1 MB91360 シリーズのメモリマップ
0000 0000 H
バイトデータ I/O
0000 0100 H
ハーフワードデータ I/O
ダイレクトアドレッシング領域
0000 0200 H
ワードデータ I/O
0000 0400 H
その他のI/O
0000 0800 H
~
~
000F FC00 H
初期ベクタテーブル領域
000F FFFF H
~
~
FFFF FFFFH
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , I/O 用に使用されるダイレクトアドレッシング領域で
す。これらの領域内のアドレスは , 命令中で直接オペランドのアドレスを指定できま
す。
ダイレクト領域は , アクセスするデータのサイズによって , 次のように異なります。
• バイトデータのアクセス : 000H ∼ 0FFH
• ハーフワードデータのアクセス : 000H ∼ 1FFH
• ワードデータのアクセス : 000H ∼ 3FFH
69
第 1 章 MB91360 シリーズの概要
1.9
デバイスの取扱いについて
本デバイスの使用時に守るべきいくつかの注意点について説明します。
■ デバイス取扱い上の注意事項
● ラッチアップの防止
CMOS IC でラッチアップが発生するのは , 以下のいずれかの場合です。
• VDD より高い , あるいは VSS より低い電圧が , 入力端子または出力端子に印加され
た場合
• VDD と VSS の間に定格を超える電圧を印加した場合
ラッチアップが発生すると , 電源電流が急激に増加して , 回路素子の熱破壊に至ること
があります。したがって , 最大定格を超えて回路が動作することがないように注意して
ください。
● 未使用端子の接続
未使用の入力端子を未接続のままにしておくと , 誤作動またはラッチアップ , およびデ
バイスの致命的な損傷が発生する場合があります。未使用の端子は抵抗を通して VDD
またはVSSに接続する必要があります。この場合の抵抗は, 2kΩを超えるものとします。
未使用の双方向端子は , 出力状態に設定すれば未接続のままにしておくことができま
す。入力状態に設定する場合は , 上述のように接続します。
2kΩ を超える抵抗は , 保護ダイオードを通って流れる電流を制限するために使用しま
す。未使用端子の電圧が VSS -0.3V 以下または VDD +0.3V 以上を超える場合は , ラッ
チアップの原因となる電流が保護ダイオードを通じて流れます。
● 外部リセット入力
INITX 端子に "L" レベルを入力する場合は , 発振回路の発振が安定するまで , この "L"
レベルを INITX 端子で保持してください。INITX は , 4 MHz の発振クロックで最低 8
サイクルの間 , "L" レベルで保持する必要があります。また Flash 品の場合は , 500ns 以
上の "L" パルス幅を入力してください。
● 電源端子
すべての VDD 端子は同じ電位に接続するものとします ( 例外として , MB91F362GB お
よび MB91F369GA における外部バスインタフェースがあります )。アナログ供給電圧
(AVCC) は , デジタル供給電圧より先にオンにしないでください。外部バスインタ
フェースが 3.3V で供給される場合は , 5V デジタル電圧のスイッチをオンにする前にこ
の電圧をオンにしないでください。外部バスインタフェースへの供給電圧のスイッチ
をオフにする場合は ( トライステートではなくプルダウン ), 関連するすべての信号が ,
このプルダウン供給以下の電圧であることを確認してください。
VDD 端子または VSS 端子が複数ある場合は , すべての VDD 端子 , および VSS 端子を ,
必ず電源またはグランドに , 外部接続してください。ラッチアップのような誤作動を防
止するため, 同電位の端子はデバイス内部で互いに接続する設計になっていますが, すべ
ての VDD 端子 , および VSS 端子を外部接続することによって , 好ましくない放射を最小
70
第 1 章 MB91360 シリーズの概要
限に抑え, グランドレベルの上昇によるストローブ信号の誤作動を防止し, 総出力電流を
定格内に保つことができます。
また, VDD, およびVSSはできるだけ低インピーダンスで電流源に接続するようにして
ください。
デバイスに近い VDD と VSS の間に約 0.1µF のセラミックバイパスコンデンサを接続
することをお勧めします。
MB91360 シリーズは , レギュレータを内蔵しています。本デバイスを 5V 電源で使用
する場合は , 5V 電源を VDD 端子に供給し , レギュレータ用に , 必ず , VCC3C 端子の
10nF と並行に 10µF のバイパスコンデンサを接続してください。
図 1.9-1 に , 電源接続の例を示します。
図 1.9-1 電源接続の例
[5V電源での使用]
5V
V DD
5V
AV CC
VCC3C
AVRH
10 nF
10µF
AV SS
V SS
GND
● 水晶発振回路
X0 端子 , およびX1端子の近辺のノイズはデバイスの誤作動の原因になります。X0, X1,
水晶発振子 ( またはセラミック発振子 ), およびグランドへのバイパスコンデンサが , で
きるだけデバイスに近くなるように , 回路基板を設計してください。
X0 端子と X1 端子をグランドで囲むようにプリント回路板を設計すると動作が安定し
ます。この設計を強く推奨します。
● 外部クロックの使用
外部クロックを使用するには , X0 端子のみを駆動し , X1 端子を開放します。
次のダイヤグラムは , 外部クロックの使用方法を示しています。
図 1.9-2 外部クロックの使用方法
MB91360 シリーズ
X0
X1
71
第 1 章 MB91360 シリーズの概要
● モード端子
モード端子 (MD0 ∼ MD2) は直接 VDD または VSS に接続してください。
ノイズの影響でデバイスが誤ってテストモードに入るのを防止するために , プリント
回路板のレイアウトは , モード端子と VDD または VSS との接続パターン長が最短にな
るように , かつ , 低インピーダンス接続となるようにしてください。
● 電源投入時
電源投入の直後には , 常に INITX 端子で INIT を実行してください (INITX 端子で "L"
レベルで起動 )。INITX 端子の低レベルの解放後 , また組込み待ち時間の経過後 , 発振
回路の発振が安定するまで , この低レベルを INITX 端子で保持してください。
アナログ供給電圧 (AVCC) は , デジタル供給電圧より先にオンにしないでください。外
部バスインタフェースが 3.3V で供給される場合は , 5V デジタル電圧のスイッチをオン
にする前にこの電圧をオンにしないでください。
● 電源投入時の状態
電源投入時 , 最小動作電圧まで到達していない場合 , 出力端子のレベルは保証されませ
ん。
● PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているとき , 発振子が外れたり , あるいはクロッ
ク入力が停止したりした場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で
動作を継続し続ける場合があります。この動作は保証外の動作です。
● ウォッチドッグタイマ機能について
本品種が備えているウォッチドッグ機能は , プログラムが一定時間内にリセット延期動
作を行うことを監視し , プログラムの暴走によりリセット延期動作が行われなかった
ときに , CPU をリセットするための機能です。そのため , いったんウォッチドッグタイ
マ機能を有効にすると , リセットを行うまで動作を続けます。
例外として , CPU のプログラム実行が停止する条件では自動的にリセット延期を行い
ます。この例外にあてはまる条件については , ウォッチドッグタイマの機能説明の項を
参照してください。
なお , システムの暴走により上記の状態となってしまった場合 , ウォッチドッグリセッ
トが発生しない可能性があります。その場合 , 外部 INITX 端子よりリセット (INIT) を
行ってください。
72
第2章
CPU
FR50 ファミリ CPU コアのアーキテクチャ , 仕様
と命令などの機能に関する重要な情報について説
明します。
2.1 CPU アーキテクチャ
2.2 CPU ハードウェア構造
2.3 FR50 の内部アーキテクチャ
2.4 プログラミングモデル
2.5 データ構造
2.6 メモリマップ
2.7 命令
2.8 EIT( 例外 , 割込み , トラップ )
2.9 リセット ( デバイスの初期化 )
2.10 動作モード
73
第 2 章 CPU
CPU アーキテクチャ
2.1
FR50 CPU は , RISC アーキテクチャを有する高性能 CPU コアです。この CPU は埋
込みアプリケーションに対して適切な , より高レベルな命令を特長としています。
■ 特長
● RISC アーキテクチャ
基本命令は 1 命令 / サイクルで実行されます (5 段階パイプラインを使用した高速処理 )。
● 32 ビットアーキテクチャ
汎用レジスタ : 16×32 ビット
● 4G バイトのリニアなメモリ空間
● 乗算器の搭載
32 ビット ×32 ビット乗算 : 5 サイクル
16 ビット ×16 ビット乗算 : 3 サイクル
● 割込処理機能の強化
高速応答速度 (6 サイクル )
多重割込みをサポート
レベルマスク機能 (16 レベル )
● I/O 操作用命令の強化
メモリ間転送命令
ビット操作命令
● 高いコーディング効率
基本命令ワード長 : 16 ビット
● 低電力消費
スリープモードと停止モード
74
第 2 章 CPU
■ FR50 CPU 仕様
表 2.1-1 に , FR50 CPU の仕様を示します。
表 2.1-1 FR50 CPU 仕様
パラメータ
クロック
仕様
64 MHz まで ( 装置に依存 )
最短命令実行時間
1 クロック
パイプライン段階
5 段階
インターロック制御
内部ハードウェアによる自動パイプラインインターロック制御
内部バス
Harvard バス , 命令 / データ : 16 ビット /32 ビット
データ長
4 ビット , 8 ビット , 16 ビット , 32 ビット
メモリ空間
4G バイト (232)
レジスタ数
汎用レジスタ
R0 ∼ R15: 16×32 ビット
専用レジスタ
PC : 32 ビット プログラムカウンタ
PS : 32 ビット プログラムステータス
TBR : 32 ビット 割込みベクタテーブル
RP : 32 ビット 戻りアドレスを記憶
SSP : 32 ビット システムスタック (R15 と共有 )
USP : 32 ビット ユーザスタック (R15 と共有 )
MDH : 32 ビット 乗算 , および除算データ
MDL : 32 ビット 乗算 , および除算データ
命令数
165 命令
命令長
16 ビット ( 固定 )( 即値命令を除く )
特殊命令
例外
割込みレベル
割込み応答時間
プロセス
電源
乗算命令 :
32 ビット ×32 ビット= 64 ビット , 5 サイクル , 符号付きまたは符号なし
16 ビット ×16 ビット= 32 ビット , 3 サイクル , 符号付きまたは符号なし
除算命令 :
32 ビット /32 ビット= 32 ビット , 段階的演算
バレルシフト命令 :
指定されたビット数を 1 クロック内でシフト可能
ビット操作命令 :
メモリ上で論理演算を実施して結果をメモリに転送します。
遅延分岐命令 :
コンパイラにより自動的に選択されます。
マルチレジスタ保持 , および復帰命令
動的変数の保持 , および解除の命令
セマフォ制御に対するバイトデータスワップ命令
メモリ間転送命令
高レベル内部周辺回路アクセス命令
リセット , INT 命令 , 予備命令の例外 , マスク可能割込み , NMI
16 レベル ( マスク可能割込み )
6 クロック
0.35µm
5V/ 内部電圧レギュレータが 3.3V の内部電源を発生します。
75
第 2 章 CPU
2.2
CPU ハードウェア構造
ここでは , FR50 CPU のブロックダイヤグラムと , CPU 機能の概略を示します。
■ CPU ブロックダイヤグラム
図 2.2-1 に , FR50 CPU のブロックダイヤグラムを示します。
図 2.2-1 CPU ブロックダイヤグラム
32 ビット
データバス
PC
*2
*1
乗算器
ALU
バレル
シフタ
PS
R0
R1
TBR
MDH
MDL
RP
SSP
USP
専用レジスタ
*1: 32 ビット×3 2 ビット:5 クロックサイクル
1 6 ビット×1 6 ビット:3 クロックサイクル
*2: バレルシフトは 1 サイクルが必要です。
R15
汎用レジスタ
PC :プログラムカウンタ
PS :プログラムステータス
TBR :テーブルベースレジスタ
RP :リターンポインタ
SSP :システムスタックポインタ
USP :ユーザスタックポインタ
MDH/MDL :乗除算結果レジスタ
■ CPU 機能説明
● 内部バス構造
内部データバスの幅は 32 ビットです。32 ビット演算は 1 クロックサイクルで実行する
ことができます。
命令アドレス (32 ビット ) と命令データ (16 ビット ), データアドレス (32 ビット ) とデー
タ (32 ビット ) バスは , Harvard バスインタフェース構造になっています。
76
第 2 章 CPU
● レジスタ
汎用レジスタは , R0 ∼ R15(16×32 ビットレジスタ ) で構成されています。
専用レジスタは , プログラムカウンタ (PC), プログラムステータス (PS), テーブルベー
スレジスタ (TBR), リターンポインタ (RP), システムスタックポインタ (SSP), および
ユーザスタックポインタ (USP) で構成されています。専用レジスタはすべて 32 ビット
です。
乗除算結果レジスタ MDH(32 ビット ) と MDL(32 ビット ) も提供されています。これ
らのレジスタは , 64 ビット乗算結果 , 除算結果除数と , 結果の余りと商を記憶します。
汎用レジスタ R13 は仮想アキュムレータとして , R14 は特殊命令のフレームポインタ
として使用されます。R15 はプログラム内で SSP または USP として機能するように選
択することができます。
● バレルシフタ
バレルシフタは , 32 ビットデータ上で指定された数のビットシフトを 1 クロックサイ
クルで実行することが可能です。
バレルシフタは 2 の累乗の定数を含む乗算 , 除算 , 平均と , 同様の計算で使用されます。
● ALU
ALU は , 32 ビット演算 , 論理演算と乗算と除算などの演算に使用されます。
● 乗算器
本 CPU の乗算器は , 32 ビット ×32 ビット整数乗算器回路です。64 ビット結果は MDH
と MDL に記憶されます。
● 書込みバッファ
本 CPU は , 2 段階データ記憶バッファを含んでいます。
● 遅延分岐
本 CPU のコンパイラは , 自動的に遅延分岐命令を選択します。
● 割込み制御
本 CPU のプログラムは , 6 クロックサイクルで割込みベクタアドレスに分岐できます。
77
第 2 章 CPU
2.3
FR50 の内部アーキテクチャ
FR50 CPU は , データと命令バスが独立しているという Harvard アーキテクチャを
有しています。
オンチップ命令キャッシュは , 命令バス (I- バス ) に接続されています。データバス
(D- バス ) はデータ RAM に接続しています。Harvard バス /Princeton バスコンバー
タは I- バスと D- バスの両方に接続され , CPU, バスコントローラと 32 ビット−
16 ビットバスコンバータ間のインタフェースとして動作します。
■ MB91360 シリーズの内部アーキテクチャ
図 2.3-1 に , MB91360 シリーズの内部アーキテクチャを示します。
図 2.3-1 FR50 の内部アーキテクチャ
FR50 CPU
Dバス
Iアドレス
命令
キャッシュ Iデータ
データRAM
Iバス
32
32
Dアドレス
32
Dデータ
32
アドレス
32
データ
32
32-ビット
16-ビット
バス
コンバータ
Harvard
Princeton
バス
コンバータ
16
Rバス
バスコントローラ
周辺回路
78
第 2 章 CPU
■ CPU パイプライン演算
本 CPU は , 32 ビット RISC の FR50 アーキテクチャをコンパクトに実現しています。
1 命令 / サイクルを実行するために , 5 段階のパイプライン方式を採用しています。パ
イプラインは以下のステップから構成されています。
● 命令フェッチ (IF):
命令アドレスを出力して命令をフェッチします。
● 命令デコード (ID):
フェッチした命令をデコードします。レジスタの読出しも行います。
● 実行 (EX):
演算を実行します。
● メモリアクセス (MA):
メモリロードまたはストアのアクセスを実行します。
● ライトバック (WB):
演算結果 ( またはロードされたメモリデータ ) をレジスタに書き込みます。
図 2.3-2 に , 命令パイプラインの構造を示します。
図 2.3-2 命令パイプライン
CLK
命令 1
WB
命令 2
MA
WB
命令 3
EX
MA
WB
命令 4
ID
EX
MA
WB
命令 5
IF
ID
EX
MA
WB
IF
ID
EX
MA
命令 6
WB
命令は順序どおりにしか実行されません。したがって , 命令 A が命令 B より先にパイ
プラインに入れば , 命令 A は常に命令 B より先にライトバックステージに到達します。
原則として命令の実行速度は 1 命令 / サイクルです。ただし , メモリウェイトを伴った
ロードストア命令 , 遅延スロットのない分岐命令 , およびマルチサイクル命令は , 実行
するのに2サイクル以上必要です。命令実行速度も, 命令の供給が遅ければ低下します。
■ 命令キャッシュ
オンチップ命令キャッシュにより , 外部高速メモリとその関連制御ロジックを付加せ
ずに , 高性能なシステムを実現できます。外部バス速度が遅い場合にも , CPU への命令
供給を高速に行うことができます。
命令キャッシュの詳細については , 「第 3 章 命令キャッシュ」を参照してください。
79
第 2 章 CPU
■ 32 ビット←→ 16 ビットバスコンバータ
CPU コアと , 16 ビット幅でアクセスされる R-bus とのインタフェースを行い , CPU か
ら内蔵周辺回路へのデータアクセスを実現します。
CPU から 32 ビット幅のアクセスが発生した場合 , このバスコンバータがそれを 2 回の
16 ビット幅アクセスに変換して R-bus へのアクセスを行います。内蔵周辺回路によっ
てはアクセス幅に関して制限があるものがあります。
■ Harvard ←→ Princeton バスコンバータ
Harvard ←→ Princeton バスコンバータは , CPU 命令とデータバスのアクセスの整合を
とり , 外部バスに対して円滑なインタフェースを提供します。
CPU は , 命令バスとデータバスが独立した Harvard アーキテクチャ構造です。
一方 , 外部バスを制御するバスコントローラは , 単一バスの Princeton アーキテクチャ
構造です。バスコンバータは , CPU の命令アクセスとデータアクセスして優先順位を
付け , バスコントローラへのアクセスの制御を行います。この機能により外部バスのア
クセス順序が常に最適化されたものとなります。
CPU がバス上で待機する時間をなくすため , 命令フェッチに , 2 ワード書込みバッファ
と 1 ワードプリフェッチバッファが提供されます。
80
第 2 章 CPU
2.4
プログラミングモデル
プログラミングで使用される主要 CPU レジスタを説明します。
CPU には次の 2 つのタイプのレジスタがあります。
• 汎用レジスタ ( 図 2.4-1 )
• 専用レジスタ ( 図 2.4-2 )
■ 汎用レジスタ
図 2.4-1 汎用レジスタ
32 ビット
R0
.....
.........
R1
R12
R13
AC
R14
FP
R15
SP
■ 専用レジスタ
図 2.4-2 専用レジスタ
32 ビット
プログラムカウンタ
PC
プログラムステータス
PS
テーブルベースレジスタ
TBR
リターンポインタ
RP
システムスタックポインタ
SSP
ユーザスタックポインタ
USP
乗除算結果レジスタ
MDH
−
ILM
− SCR
CCR
MDL
81
第 2 章 CPU
2.4.1
汎用レジスタ
汎用レジスタは R0 ∼ R15 で構成される CPU レジスタです。レジスタは , 演算に対
するアキュムレータ , およびメモリアクセスに対するポインタ ( アドレスを示す
フィールド ) として使用されます。ユーザは汎用レジスタの使用目的を指定するこ
とができます。
■ 汎用レジスタの構造
図 2.4-3 に , 汎用レジスタの構造を示します。
図 2.4-3 汎用レジスタの構造
32 ビット
初期値
.....
.........
R1
R12
•••••••••
XXXX XXXXH
R0
R13
AC ( アキュムレータ )
R14
FP ( フレームポインタ )
XXXX XXXXH
R15
SP ( スタックポインタ )
0000 0000H
16 ある汎用レジスタの中でも次のレジスタは特殊な目的を想定しており , そのために
一部の命令が強化されています。
• R13: 仮想アキュムレータ (AC)
• R14: フレームポインタ (FP)
• R15: スタックポインタ (SP)
リセット後の R0 ∼ R14 の初期値は不定です。R15 の初期値は 00000000H(SSP 値 ) です。
82
第 2 章 CPU
2.4.2
専用レジスタ
専用レジスタは , それぞれ特別の用途に使用されるレジスタです。専用レジスタに
は , 以下の 7 種のレジスタがあります。
• プログラムカウンタ (PC)
• プログラムステータス (PS)
• テーブルベースレジスタ (TBR)
• リターンポインタ (RP)
• システムスタックポインタ (SSP)
• ユーザスタックポインタ (USP)
• 乗除算結果レジスタ (MDH/MDL)
■ 専用レジスタの構造
図 2.4-4 に , 専用レジスタの構造を示します。
図 2.4-4 専用レジスタの構造
32 ビット
初期値
プログラムカウンタ
PC
プログラムステータス
PS
XXXX XXXXH
テーブルベースレジスタ
TBR
000F FC00H
リターンポインタ
RP
XXXX XXXXH
システムスタックポインタ
SSP
0000 0000H
ユーザスタックポインタ
USP
XXXX XXXXH
乗除算結果レジスタ
MDH
XXXX XXXXH
MDL
XXXX XXXXH
■ 専用レジスタの種類
● プログラムカウンタ (PC)
プログラムカウンタ (PC) は , 現在実行されている命令のアドレスを示しています。
命令の実行を伴う PC の更新時に , bit0 は "0" に設定されます。分岐指定アドレスとし
て奇数番号アドレスが指定された場合のみ bit0 の値は "1" になります。
ただし , その場合でも bit0 は無効であり , 命令は 2 の倍数であるアドレスに置く必要が
あります。
リセット後の初期値は不定です。
83
第 2 章 CPU
● プログラムステータス (PS)
プログラムステータスを保持するレジスタで , CCR, SCR, および ILM の 3 つのパート
から構成されています。詳細は , 「2.4.3 プログラムステータスレジスタ (PS)」を参照
してください。
未定義のビットはすべて予約ビットであり , 常に "0" が読み出されます。書込みは無効
です。
● テーブルベースレジスタ (TBR)
テーブルベースレジスタ (TBR) は , EIT 処理に使用されるベクタテーブルのトップアド
レスを保持します。
リセットにより 000FFC00H に初期化されます。
● リターンポインタ (RP)
リターンポインタ (RP) は , サブルーチンからの復帰するアドレスを保持します。
CALL 命令を実行すると PC の値が RP に転送されます。
RET 命令を実行すると RP の内容が PC に転送されます。
リセット後の初期値は不定です。
● システムスタックポインタ (SSP)
システムスタックポインタ (SSP) は , S フラグが "0" の場合に R15 として機能します。
SSP を明示的に指定することも可能です。
また , EIT が発生した場合に PS と PC を退避するスタックとして指定するスタックポ
インタとして使用することもできます。
リセットにより 00000000H に初期化されます。
● ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP) は , S フラグが "1" の場合にスタックポインタ (R15) と
して機能します。
USP を明示的に指定することも可能です。
リセット後の初期値は不定です。
● MDH/MDL: 乗除算結果レジスタ
これらのレジスタは乗算と除算に使用されます。両レジスタとも 32 ビット長です。リ
セット後の初期値は不定です。
乗算実行時
32 ビット ×32 ビットの乗算のとき , 64 ビット長の演算結果は , 以下の配置で乗除算
結果格納レジスタに格納されます。
MDH: 上位 32 ビット
MDL: 下位 32 ビット
16 ビット ×16 ビットの乗算のときは , 以下のように結果が格納されます。
MDH: 不定
MDL: 結果 32 ビット
除算実行時
計算開始時 MDL に被除数を格納します。
DIV0S/DIV0U, DIV1, DIV2, DIV3, DIV4S 命令の実行により除算を計算すると , 結果
が MDH と MDL に格納されます。
MDH: 剰余
MDL: 商
84
第 2 章 CPU
プログラムステータスレジスタ (PS)
2.4.3
PS はプログラムステータスを保持するレジスタで , CCR, SCR, および ILM の 3 つ
のパートから構成されています。定義されていないビットはすべて予約ビットであ
り , 常に "0" が読み出されます。書込みは無効です。
■ プログラムステータスレジスタ (PS) の構造
図 2.4-5 に , プログラムステータスレジスタ (PS) の構造を示します。
図 2.4-5 プログラムステータスレジスタ (PS) の構造
bit
31
20
16
10
ILM
8 7
0
SCR
CCR
CCR:コンディションコードレジスタ
SCR:システムコンディションコードレジスタ
ILM:割込みレベルマスク
■ コンディションコードレジスタ (CCR)
● CCR 構造
図 2.4-6 に , 状態コードレジスタの構造を示します。
図 2.4-6 状態コードレジスタの構造
bit
7
6
−
−
5
S
4
I
3
N
2
Z
1
V
0
C
初期値
--00XXXXB
● CCR ビットの機能
[bit5] S: スタックフラグ
R15 として使用されるスタックポイントを指定します。
値
内容
0
SSP が R15 として使用されます。
EIT 発生時自動的に "0" となります。
ただし , スタックに退避される値はクリアされる前の値です。
1
USP が R15 として使用されます。
リセットにより "0" にクリアされます。
85
第 2 章 CPU
[bit4] I: 割込み許可フラグ
ユーザ割込み要求の許可と禁止を制御します。
値
内容
0
ユーザ割込み禁止。
INT 命令実行時 "0" にクリアされます。
ただし , スタックに退避させる値はクリアされる前の値です。
1
ユーザ割込み許可。
ユーザ割込み要求のマスク処理は , ILM の保持する値により制御され
ます。
リセットにより "0" にクリアされます。
[bit3] N: ネガティブフラグ
演算結果を 2 の補数で表現された整数とみなしたときの符号を示します。
値
内容
0
演算結果が正の値であったことを示します。
1
演算結果が負の値であったことを示します。
リセット後の初期値は不定です。
[bit2] Z: ゼロフラグ
演算結果が "0" であったかどうかを示します。
値
内容
0
演算結果が "0" 以外の値であったことを示します。
1
演算結果が "0" であったことを示します。
リセット後の初期値は不定です。
[bit1] V: オーバフローフラグ
演算結果にオーバフローが発生したかどうかを示します ( 演算で用いたオペランド
を 2 の補数整数とで表現されるとみなした場合 )。
値
内容
0
演算結果でオーバフローが発生しなかったことを示します。
1
演算結果でオーバフローが発生したことを示します。
リセット後の初期値は不定です。
86
第 2 章 CPU
[bit0] C: キャリーフラグ
演算により MSB からのキャリーまたはボローが発生したかどうかを示します。
値
内容
0
キャリーまたはボローのいずれも発生しなかったことを示します。
1
キャリーまたはボローが発生したことを示します。
リセット後の初期値は不定です。
■ システムコンディションコードレジスタ (SCR)
● SCR 構造
図 2.4-7 に , システムコンディションコードレジスタの構造を示します。
図 2.4-7 システムコンディションコードレジスタの構造
bit
10
D1
9
D0
8
T
初期値
XX0B
● SCR ビットの機能
[bit10, bit9] D1, D0: ステップ除算用フラグ
ステップ除算実行時の中間データを保持します。
除算処理の実行途中は , これらのビットを変更しないでください。
ステップ除算実行途中に他の処理を行う場合は , PS レジスタの値を退避・復帰する
ことによりステップ除算の再開が保証されます。
リセット後の初期値は不定です。
DIV0S 命令の実行により , 被除数と除数を参照して設定されます。
DIV0U 命令の実行により , 強制的にクリアされます。
[bit8] T: ステップトレーストラップフラグ
このフラグはステップトレーストラップを有効にするかどうかを指定します。
値
内容
0
ステップトレーストラップ無効。
1
ステップトレーストラップ有効。
これによりユーザ NMI とすべてのユーザ割込みが禁止となります。
リセットにより "0" に初期化されます。
ステップトレーストラップ機能はエミュレータが使用します。エミュレータ使用時 ,
ユーザプログラム中で使用することはできません。
87
第 2 章 CPU
■ 割込みレベルマスクレジスタ (ILM)
● ILM 構造
図 2.4-8 に , 割込みレベルマスクレジスタの構造を示します。
図 2.4-8 割込みレベルマスクレジスタの構造
bit
20
ILM4
19
ILM3
18
ILM2
17
ILM1
16
ILM0
初期値
01111B
● ILM ビットの機能
ILM レジスタは , 割込みレベルマスクの値を保持するレジスタで , ILM の保持する値が
レベルマスクに使用されます。
CPU に入力される割込要求の中で対応する割込レベルが , この ILM で示されるレベル
よりも強い場合にのみ割り込み要求が受け付けされます。
レベル 0(00000B) が最強で , レベル 31(11111B) が最弱です。
プログラムにより設定可能な値には制限があります。元の値が 16 ∼ 31 のとき , 新たな
値として設定できるのは 16 ∼ 31 です。0 ∼ 15 を設定する命令を実行すると , (" 指定
値+ 16") という値が転送されます。
元の値が 0 ∼ 15 のときは , 0 ∼ 31 の任意の値が設定可能です。
リセットにより 15(01111B) に初期化されます。
88
第 2 章 CPU
2.5
データ構造
データは次のように FR50 で割り当てられます。
• ビットオーダリング : Little endian
• バイトオーダリング : Big endian
■ ビットオーダリング
FR50 では , ビットオーダリングとして , リトルエンディアンを採用しています。
ビットオーダリングにおいては , bit0 は最低位置に置かれ , bit1, bit2 などは順番に高い
位置に置かれます。
図 2.5-1 に , ビットオーダリングを示します。
図 2.5-1 ビットオーダリング
bit 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
MSB
( 最上位ビット )
LSB
( 最下位ビット )
■ バイトオーダリング
FR50 では , バイトオーダリングとして , ビッグエンディアンを採用しています。
32 ビットデータに関し , バイトオーダリングはバイト 0 を最高位置に置き , バイト 3 を
最低位置に置きます。バイト 0 は最低アドレスに置かれ , バイト 1 はバイト 0 のアドレ
ス+ 1 のようになります。
図 2.5-2 に , バイトオーダリングを示します。
図 2.5-2 バイトオーダリング
メモリ
アドレス
アドレス
アドレス
アドレス
n
(n+1)
(n+2)
(n+3)
bit
7
0
10101010
11001100
11111111
00010001
bit
MSB
31
バイト 0
10101010
23
バイト 1
11001100
15
バイト 2
11111111
LSB
7
0
バイト 3
00010001
89
第 2 章 CPU
2.5.1
ワードアラインメント
命令とデータはバイトとしてアクセスされます。したがって , 命令またはデータが
配置されるアドレスは , 命令またはデータのサイズに依存します。ここでは , プログ
ラムアクセスとデータアクセスに対するアドレス割当てについて述べます。
■ プログラムアクセス
FR50 は 16 ビット命令 ( 固定長 ) を使用しますので , プログラムは "2" の倍数であるア
ドレスに配置しなければなりません。
命令実行の一部としてプログラムカウンタ (PC) を更新する場合 , PC の bit0 は "0" に設
定されます。分岐指定アドレスとして奇数アドレスが指定された場合のみ , bit0 は "1"
の値を持つことができます。ただし , bit0 が "1" であっても , bit0 の値は無視されるの
で , 命令は 2 の倍数であるアドレスに配置しなければなりません。奇数アドレスの例外
はありません。
■ データアクセス
FR50 におけるデータアクセスのアドレスはデータアクセスサイズに依存して , 次のよ
うに強制的にアライメントされます。
•
ワードアクセス : アドレスは 4 の倍数です ( 最下位の 2 ビットは強制的に "00")。
•
ハーフワードアクセス : アドレスは 2 の倍数です ( 最下位ビットは強制的に "0")。
•
バイトアクセス : ( 任意のアドレスが使用されます )
ワード , およびハーフワードのアクセス時に , 一部のビットが "0" に強制的に設定され
るのは , 実効アドレスの計算結果に対してです。例えば , @(R13, Ri) アドレッシング
モードでは , 加算前のレジスタ値は (LSB が "1" であったとしても ) そのまま計算に使
用され , 加算結果の LSB がマスクされます。計算で使用されたレジスタの値はマスク
されません。
[ 例 ] LD @(R13, R2), R0
+)
加算の結果
R13
00002222H
R2
00000003H
00002225H
最下位 2 ビットは, 強制的にマスク
されます
アドレス端子
90
00002224H
第 2 章 CPU
メモリマップ
2.6
MB91360 シリーズメモリマップと FR50 ファミリの共通メモリマップを示します。
■ MB91360 シリーズメモリマップ
図 2.6-1 に , MB91360 シリーズのメモリマップを示します。
図 2.6-1 MB91360 シリーズメモリマップ
00:0000
ダイレクト
00:03FF
ダイレクト(ショート)アドレス:
0~0FF: バイトアクセス
0~1FF: ハーフワードアクセス(16 bit)
0~3FF: ワードアクセス(32 bit)
I/O領域
内部メモリ領域
00:07FF
00:1000
00:1024
DMA
01:1000
01:1FFF
I-RAM
03:C000
DバスRAM
03:FFFF
04:0000
04:3FFF
05:0000
05:07FF
08:0000
0F:4000
0F:FFFF
10:0000
10:07FF
F364Gでは不可
128K
128K
128K
64K
16K
16K
32K
03:D000 ~ 03:FFFF(F362GB,F364G)
FバスRAM
04:0000 ~ 04:0FFF(F362GB,F364G)
ブート ROM
04:4000 ~ 04:47FF(F376G)
フラッシュメモリ
04:4800 ~ 0F:FFFF(F376G)
0C:0000 ~ 0F:FFFF(F364G)
ブートセクタ
固定リセットベクタ
CAN
20:0000 ~ 20:03FF(F376G)
外部バスのCANのアドレスは,それぞれ
CS7,およびCS1のチップ選択領域の設
定に依存します。
ここに示すアドレスは,ブートROMでの
CS1とCS7の設定に対して有効です。
91
第 2 章 CPU
■ FR50 ファミリ共通メモリマップ
図 2.6-2 に , FR50 共通のメモリマップを示します。
アドレス空間は , 4G バイト (232 番地 ) の領域を持つ , 32 ビット線形ロジック空間です。
図 2.6-2 FR50 ファミリ共通メモリマップ
0000 0000H
バイトデータ I/O
0000 0100H
ハーフワードデータ I/O
ダイレクトアドレス領域
0000 0200H
ワードデータ I/O
0000 0400H
その他の I/O
0000 0800H
~
~
000F FC00H
ベクタテーブル初期領域
000F FFFFH
~
~
FFFF FFFFH
● ダイレクトアドレッシング領域
アドレス空間の下記の領域は , ダイレクトアドレッシングでアクセスできる I/O 領域で
す。オペランドアドレスは , 命令で直接指定することができます。
ダイレクトアドレス指定可能なアドレス領域のサイズは , アクセスされているデータ
長に依存します。
• バイトデータ (8 ビット )
: 0 ∼ 0FFH
• ハーフワードデータ (16 ビット ) : 0 ∼ 1FFH
• ワードデータ (32 ビット )
: 0 ∼ 3FFH
● ベクタテーブル初期領域
000FFC00H ∼ 000FFFFFH の領域は , EIT ベクタテーブル初期領域です。
EIT 処理で使用されるベクタテーブルは , テーブルベースレジスタ (TBR) を書き換える
ことにより , ユーザ指定アドレスに設定することができます。ただし , リセットによる
初期化によってこのアドレスに配置されます。
内部ブート ROM 内のコード実行後 , TBR は 000FFC00H に設定されます。
92
第 2 章 CPU
命令
2.7
FR50 の命令セットは , これまでの RISC プロセッサ命令セットに対して容易に制御
できる CISC 型命令を追加します。この命令セットは , 埋込みアプリケーションに適
しており , 高級言語をサポートします。
ここでは , 命令セットの特長を記述し , 基本命令を列挙し , パイプライン演算のフ
ローに大きな影響を持つ , 分岐命令 ( 遅延分岐命令 ) を説明します。
命令セットの詳しい説明については , 「付録 D 命令」と『FR ファミリ命令マニュ
アル』を参照してください。
■ 特長
● 固定された 16 ビット命令長 ( 即値転送命令を除く )
高いレベルの RISC プロセッサに比べて改良された命令コード効率
● 命令数 : 165
● 高速乗算命令とステップ除算命令
32 ビット ×32 ビット : 5 クロックサイクル
16 ビット ×16 ビット : 3 クロックサイクル
32 ビット /32 ビット : 33 クロックサイクル , 36 クロックサイクル ( 符号付き )
● バレルシフト命令
● 埋込み制御用に最適化された I/O 制御命令
ビット操作
: 即値とメモリ間の演算
論理演算
: 汎用レジスタとメモリ間の演算
メモリ間転送 : メモリ間のデータ転送
● コンパイラとリアルタイムオペレーティングシステム用に最適化された命令
ファンクションコールとリターン処理命令
複数の連続した汎用レジスタ保存 , および復帰命令
遅延分岐命令
● 周辺回路アクセラレータ命令
93
第 2 章 CPU
2.7.1
命令と基本命令の概要
FR50 では , 標準的な RISC 命令に加え , FR50 は埋込みアプリケーションに対して
最適化された論理演算 , ビット操作命令とダイレクトアドレッシング命令を提供し
ます。各命令が 16 ビット ( 命令によっては 32 ビットと 48 ビット ) であるため ,
FR50 は卓越したメモリ活用を提供します。
■ 命令の概要
命令セットは , 次の 6 つの機能グループに分割することができます。
• 算術演算
• ロードとストア
• 分岐
• 論理演算とビット操作
• ダイレクトアドレッシング
• その他
● 算術演算
算術演算命令では , 標準的な算術演算命令 ( 加算 , 減算 , 比較 ) とシフト命令 ( 論理シフ
ト , 算術演算シフト ) が提供されます。加算と減算は , マルチワード演算で使用される
キャリーとの演算と , フラグ ( アドレス計算に対して適切なもの ) を変化させない演算
を含みます。
32 ビット ×32 ビット乗算 , 16 ビット ×16 ビット乗算 , および 32 ビット /32 ビットス
テップ除算命令が提供されます。即値転送命令 ( 即値をレジスタに設定するもの ) とレ
ジスタ間転送命令も提供されます。
算術演算命令は , すべて , CPU の汎用レジスタと乗算 , および除算レジスタを使用して
演算を行います。
● ロードとストア
ロードとストア命令は , 外部メモリとの間でデータを読み書きします。これらの命令は
内蔵周辺回路 (I/O) との間で , 読み書きを行うためにも使用されます。
ロードとストア命令は , バイト (8 ビット ), ハーフワード (16 ビット ), およびワード長
(32 ビット ) のアクセスに対して提供されています。標準的なレジスタの間接メモリア
ドレッシングに加え , 命令によっては , ディスプレースメントによるレジスタ間接メモ
リアドレッシングと , レジスタインクリメント , およびデクリメントによるレジスタ間
接メモリアドレッシングをサポートしています。
● 分岐
分岐命令には , 分岐 , CALL, 割込み , およびリターン命令が含まれます。
分岐命令は , 遅延スロットを持つものと持たないものに分類されます。これにより , 用
途に合わせた最適化が行えます。分岐命令の詳しい情報に関しては ,「2.7.2 分岐命令」
を参照してください。
94
第 2 章 CPU
● 論理演算とビット操作
論理演算命令は , 汎用レジスタ間または汎用レジスタとメモリ ( または I/O) との間で ,
AND, OR または EOR 論理演算を実行できます。ビット操作命令は , メモリ ( または
I/O) の内容を直接的に操作できます。これらの命令は , 一般的なレジスタ間接のメモリ
アドレッシングを使用します。
● ダイレクトアドレッシング
ダイレクトアドレッシング命令は , I/O と汎用レジスタとの間 , および I/O とメモリと
の間のアドレスに対して使用される命令です。レジスタ間接のアドレッシングによっ
てではなく , 命令によって直接的に I/O アドレスを指定することにより , 高速かつ効率
的なアクセスが提供されます。レジスタのインクリメントまたはデクリメントによる
レジスタ間接のメモリアドレッシングをサポートしている命令もあります。
● その他
その他には , PS レジスタのフラグを設定する命令 , スタック演算を行う命令 , および ,
符号拡張またはゼロ拡張の命令があります。また , 高級言語に対する関数エントリとエ
グジット処理命令 , マルチレジスタでのロード , およびストアの命令があります。
■ 基本命令
表 2.7-1 に , 基本命令の一覧を示します。
表 2.7-1 基本命令 (1 / 5)
加算と減算命令
比較演算命令
ADD
Rj,
Ri
*ADD
#s5,
Ri
ADDC
Rj,
Ri
ADDN
Rj,
Ri
*ADDN
#s5,
Ri
SUB
Rj,
Ri
SUBC
Rj,
Ri
SUBN
Rj,
Ri
ADD
#u4,
Ri
ADD2
#u4,
Ri
ADDN
#u4,
Ri
ADDN2
#u4
Ri
CMP
Rj,
Ri
*CMP
#s5,
Ri
CMP
#u4,
Ri
CMP2
#u4,
Ri
95
第 2 章 CPU
表 2.7-1 基本命令 (2 / 5)
シフト命令
レジスタ間転送命令
メモリロード命令
96
LSL
Rj,
Ri
*LSL
#u5,
Ri
LSR
Rj,
Ri
*LSR
#u5,
Ri
ASR
Rj,
Ri
*ASR
#u5,
Ri
LSL
#u4,
Ri
LSL2
#u4,
Ri
LSR
#u4,
Ri
LSR2
#u4,
Ri
ASR
#u4,
Ri
ASR2
#u4,
Ri
MOV
Rj,
Ri
MOV
Rs,
Ri
MOV
Ri,
Rs
MOV
PS,
Ri
MOV
Ri,
PS
LD
@Rj,
Ri
LD
@(R13,Rj),
Ri
LD
@(R14,disp10),
Ri
LD
@(R15,udisp6),
Ri
LD
@R15+,
Ri
LD
@R15+,
Rs
LD
@R15+,
PS
LDUH
@Rj,
Ri
LDUH
@(R13,Rj),
Ri
LDUH
@(R14,disp9),
Ri
LDUB
@Rj,
Ri
LDUB
@(R13,Rj),
Ri
LDUB
@(R14,disp8),
Ri
第 2 章 CPU
表 2.7-1 基本命令 (3 / 5)
メモリストア命令
即値転送命令
標準的分岐命令 *1
ST
Ri,
@Rj
ST
Ri,
@(R13,Rj)
ST
Ri,
@(R14,disp10)
ST
Ri,
@(R15,udisp6)
ST
Ri,
@-R15
ST
Rs,
@-R15
ST
PS,
@-R15
STH
Ri,
@Rj
STH
Ri,
@(R13,Rj)
STH
Ri,
@(R14,disp9)
STB
Ri,
@Rj
STB
Ri,
@(R13,Rj)
STB
Ri,
@(R14,disp8)
*LDI # {i8 | i20 | i32},
Ri
LDI:32
#i32,
Ri
LDI:20
#i20,
Ri
LDI:8
#i8.
Ri
JMP
@Ri
CALL
label12
CALL
@Ri
RET
INT
#u8
INTE
RETI
BRA
label9
BNO
label9
BEQ
label9
BNE
label9
BC
label9
BNC
label9
BN
label9
BP
label9
BV
label9
BNV
label9
BLT
label9
BGE
label9
BLE
label9
BGT
label9
BLS
label9
BHI
label9
97
第 2 章 CPU
表 2.7-1 基本命令 (4 / 5)
遅延分岐命令 *2
JMP:D
@Ri
CALL:D
label12
CALL:D
@Ri
RET:D
他の命令
BRA:D
label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
NOP
ANDCCR
#u8
ORCCR
#u8
STILM
#u8
ADDSP
#u10
EXTSB
Ri
EXTUB
Ri
EXTSH
Ri
EXTUH
Ri
*LDM
(reglist)
LDM0
(reglist)
LDM1
(reglist)
*STM
(reglist)
STM0
(reglist)
STM1
(reglist)
ENTER
#u10
LEAVE
XCHB
98
@Rj,
Ri
第 2 章 CPU
表 2.7-1 基本命令 (5 / 5)
ダイレクトアドレッシン
グ命令
周辺回路命令
DMOV
@dir10,
R13
DMOV
R13,
@dir10
DMOV
@dir10,
@R13+
DMOV
@R13+,
@dir10
DMOV
@dir10,
@-R15
DMOV
@-R15,
@dir10
DMOVH
@dir9,
R13
DMOVH
R13,
@dir9
DMOVH
@dir9,
@R13+
DMOVH
@R13+,
@dir9
DMOVB
@dir8,
R13
DMOVB
R13,
@dir8
DMOVB
@dir8,
@R13+
DMOVB
@R13+,
@dir8
LDRES
@Ri+,
#u4
STRES
#u4,
@Ri+
*1: 遅延スロットなし
*2: 遅延スロットあり
( 注意事項 ) ニーモニックの左上のアスタリスク (*) は , アセンブラにより命令
を拡張 , または追加した拡張命令です。
99
第 2 章 CPU
分岐命令
2.7.2
FR50 では , 分岐命令が遅延スロットにより動作するかどうかを指定することができ
ます。遅延スロットによる演算とは , 分岐命令の後に置かれた命令が実行されるこ
とを意味します。
■ 遅延スロットによる分岐命令
以下に並べられた表記を持つ命令は , 遅延スロットによる分岐動作を行います。
JMP:D
@Ri
CALL:D
label12
CALL:D
@Ri
RET:D
BRA:D
label9
BNO:D
label9
BEQ:D
label9
BNE:D
label9
BC:D
label9
BNC:D
label9
BN:D
label9
BP:D
label9
BV:D
label9
BNV:D
label9
BLT:D
label9
BGE:D
label9
BLE:D
label9
BGT:D
label9
BLS:D
label9
BHI:D
label9
● 動作
遅延スロットによる分岐とは , 分岐命令のすぐ後ろに置かれた命令を実行した後に ( 遅
延スロットと称されるように ), 分岐が発生することを意味します。
遅延スロットの命令は分岐の前に実行されるので , 見かけの実行速度は 1 サイクルで
す。ただし , 遅延スロットに有効な命令を置くことができない場合には , 代わりに NOP
命令を置く必要があります。
[例]
;
命令順序
ADD
R1, R2
;
BRA:D
LABEL
;
分岐命令
MOV
:
R2, R3
:
遅延スロット : 分岐の前に実行されます。
LABEL:ST
R3, @R4 ;
分岐先
条件分岐命令の場合 , 分岐条件が成立する場合も成立しない場合も遅延スロットに置
かれた命令は実行されます。
遅延分岐命令は , 命令によっては実行順序を逆転するように見えますが , プログラムカ
ウンタ (PC) の更新に対してのみ当てはまります。レジスタの更新または参照などの他
の演算は , プログラム中の順序に従って実行されます。
次に , いくつかの具体例を説明します。
(1) JMP:D @Ri または CALL:D @Ri 命令で参照する Ri の値は , 遅延スロット内の命令
が Ri を更新しても , 影響を受けません。
[例]
100
LDI:32
#Label, R0
JMP:D
@R0
; Label へ分岐。
第 2 章 CPU
LDI:8
:
#0,
; 分岐先アドレスには影響を与えない。
R0
(2) RET:D 命令が参照する RP の値は , 遅延スロットの中の命令が RP を更新しても影響
を受けません。
[例]
; RP に設定されているアドレスへ分岐。
RET:D
MOV
:
R8,
RP
; リターン動作には影響を与えません。
(3) Bcc:D rel 命令が参照するフラグも , 遅延スロットの中の命令の影響を受けません。
[例]
R0
; フラグ変化
ADD
#1,
BC:D
Overflow
; 前の命令の結果により分岐。
ANDCCR
:
#0
; このフラグ更新は上記分岐命令を参照しません。
(4) CALL:D 命令の遅延スロットの中の命令で RP を参照すると , CALL:D 命令により更
新された内容が読み出されます。
[例]
CALL:D
Label
MOV
:
RP,
;RP を更新して分岐。
R0
; 上記 CALL:D の実行から帰着する RP 値を転送します。
● 制約事項
(1) 遅延スロット内に置くことのできる命令
以下の基準を満足する命令のみ , 遅延スロット内で実行できます。
• 1 サイクル命令であること
• 分岐命令ではないこと
• 順番が変化した場合でも影響を受けない命令であること
"1 サイクル命令 " とは , 命令リストにおけるサイクル数の欄に , "1", "a", "b", "c" または
"d" と記載された命令です。
(2) ステップトレーストラップ
ステップトレーストラップは , 遅延スロットによる分岐命令の実行と遅延スロット
との間には発生しません。
(3) 割込み /NMI
割込みと NMI は , 遅延スロットによる分岐命令の実行と遅延スロットの間では , 受
け付けられません。
(4) 未定義命令の例外
遅延スロットが未定義命令を含んでいても , 未定義命令の例外は発生しません。こ
の場合 , 未定義命令は NOP 命令として実行されます。
101
第 2 章 CPU
● 遅延スロットのない分岐命令
以下に並べられた表記を有する命令は , 遅延スロットのない分岐動作を行います。
JMP
@Ri
CALL
Label12
CALL
@Ri
RET
BRA
label9
BNO
Label9
BEQ
label9
BNE
label9
BC
label9
BNC
Label9
BN
label9
BP
label9
BV
label9
BNV
Label9
BLT
label9
BGE
label9
BLE
label9
BGT
Label9
BLS
label9
BHI
label9
● 動作の説明
遅延スロットのない分岐とは , 命令が , 常にプログラム中に現れる順序で実行されるこ
とを意味します。分岐命令に続く命令が , 分岐の前に実行されることはありません。
[例]
;
命令順序
ADD
R1, R2
;
BRA
LABEL
; ( 遅延スロットのない ) 分岐命令
MOV
:
R2, R3
: 実行されません。
LABEL:ST
R3, @R4 ; 分岐先
遅延スロットのない分岐命令を実行するのに必要なサイクル数は , 分岐が発生すれば 2
サイクルであり , 分岐が発生しなければ 1 サイクルです。
遅延スロットのない分岐命令では遅延スロットに命令を置けないので , NOP 命令を含
む遅延スロットによる分岐命令に比べて , 命令コード効率は高まります。
遅延スロットに便利な命令を置く場合に遅延スロットを使用し , それ以外では遅延ス
ロットを使用しないでください。これにより , 実行速度とコード効率を両立させること
が可能となります。
102
第 2 章 CPU
2.8
EIT( 例外 , 割込み , トラップ )
EIT(Exceptions, Interrupt, Trap) は , 例外 , 割込み , およびトラップの一般名です。
EIT は , イベントが発生した場合に , 現在のプログラムの実行を中断し , 制御を別の
プログラムに移します。
• 例外は , 実行の内容に基づいて発生されます。実行は , 例外を引き起こした命令か
ら再開します。
• 割込みは , 実行内容に関係なく発生され , ハードウェアイベントによりトリガされ
ます。
• トラップは , 実行内容に基づいて発生されます。これには , システムコールなどプ
ログラムの演算により発生するトラップが含まれます。実行は , トラップを引き
起こした命令に続く命令から再開します。
命令を実行する場合 , コンテキストは , CPU の状態を完全に定義するのに必要な情
報を参照します。
■ 特長
• 多重割込みをサポート
• 割込みに対するレベルマスク機能 ( ユーザに対して 15 レベルが利用可能 )
• トラップ命令 (INT)
• エミュレータ ( ハードウェア / ソフトウェア ) を起動する EIT
■ EIT トリガ
次の項目は , EIT を発生できます。
• リセット
• ユーザ割込み ( 内部周辺回路 , 外部割込み )
• NMI( マスク不可割込み )
• 遅延割込み
• 定義されていない命令の例外
• トラップ命令 (INT)
• トラップ命令 (INTE)
• ステップトレーストラップ
■ EIT からのリターン
EIT から戻ると , RETI 標準分岐命令を使用します。
103
第 2 章 CPU
■ 割込みレベル
割込みレベルは 0 ∼ 31 の範囲で , 5 ビット値として管理されます。
表 2.8-1 に , 各レベルの割込みレベルの割当て一覧を示します。
表 2.8-1 割込みレベル
レベル
EIT の種類
注意
0
:
:
:
3
( システム予備 )
:
:
:
( システム予備 )
ILM の元の値が 16 ∼ 31 である場合 ,
この範囲の値をプログラムにより ILM
に設定することはできません。
00100
4
INTE 命令
ステップトレーストラップ
00101
:
:
:
01110
5
:
:
:
14
( システム予備 )
:
:
:
( システム予備 )
01111
15
NMI( ユーザ )
10000
16
割込み
10001
:
:
:
11110
17
:
:
:
30
割込み
:
:
:
割込み
11111
31
-
2 進数
10 進数
00000
:
:
:
00011
ILM に設定されると , ユーザ割込みは
禁止されます。
ICR に設定されると , 割込みは禁止さ
れます。
レベル 16 ∼ 31 はユーザが利用できます。
定義されていない命令の例外と INT 命令は , 割込みレベルによる影響を受けません。同
様に , ILM を変化もさせません。
■ I フラグ
このフラグは割込みを許可または禁止します。フラグは PS 内の状態コードレジスタ
(CCR) の bit4 に置かれます。
値
104
内容
0
割込み禁止
INT 命令により "0" にクリアされます。
ただし , スタック退避させる値は , ビットがクリアされる
前の値です。
1
割込み許可
割込み要求のマスクは , ILM 内の値により制御されます。
第 2 章 CPU
■ ILM( 割込みレベルマスクレジスタ )
ILM レジスタは PS 内に配置され , 割込みレベルマスクの値を記憶します。
CPU に入力される割込要求の中で , 対応する割込レベルが , この ILM で示されるレベ
ルよりも強い場合のみ割込要求が受け付けられます。
レベル 0(00000B) の優先順位が最も高く , レベル 31(11111B) の優先順位が最も低くなっ
ています。
プログラムから設定可能な値には制限があります。元の値が 16 ∼ 31 の間の値であれ
ば , 16 ∼ 31 の間で新たな値が設定できます。0 ∼ 15 の間の値を設定する命令を実行す
ると , " 指定値+ 16" という値が転送されます。
元の値が 0 ∼ 15 の間の値であれば , 0 ∼ 31 の間にある任意の値を設定することができ
ます。
SETILM 命令は , ILM レジスタ内の値を設定するのに使用されます。
■ 割込み /NMI に対するレベルマスク
NMI または割込み要求が発生した場合 , 割込みの優先順位レベル ( 表 2.8-1 ) が , ILM の
レベルマスク値と比較されます。
次の条件が満足された場合 , 割込みはマスクされて要求は受け付けられません。
割込み要求の割込みレベル≧レベルマスク値
■ ICR( 割込み制御レジスタ )
割込みコントローラ内に配置されたレジスタで , 各割込み要求に対するレベルを設定
します。各割込み入力に対して , ICR レジスタが用意されます。ICR レジスタは , I/O
メモリ空間内にマップされ , バスを介して CPU からアクセスされます。
● ICR 構造
図 2.8-1 に , 割込み制御レジスタの構造を示します。
図 2.8-1 割込み制御レジスタの構造
bit
7
6
5
4
3
2
1
0
−
−
−
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
初期値
---11111B
←アクセス
R: リードオンリ , R/W: リード / ライト可能
105
第 2 章 CPU
● ICR ビットの機能
表 2.8-2 に , 割込み制御レジスタビットの機能を示します。
表 2.8-2 割込み制御レジスタビットの機能
ビット
機能
番号
名称
4
ICR4
常に "1"
3
ICR3
2
ICR2
割込みに対する , 割込みレベルの下位 4 ビット
読出し / 書込み可能
bit4 を含め , ICR は 16 ∼ 31 の範囲の値を持つことができます。
1
ICR1
0
ICR0
● ICR マッピング
表 2.8-3 に , 各割込みに対する割込み制御レジスタと割込みベクタを示します。
表 2.8-3 各割込みに対する割込み制御レジスタと割込みベクタ
割込み制御レジスタ
対応割込みベクタ
番号
割込み
番号
アドレス
アドレス
16 進数
10 進数
IRQ00
ICR00
00000400H
10H
16
TBR+3BCH
IRQ01
ICR01
00000401H
11H
17
TBR+3B8H
IRQ02
ICR02
00000402H
12H
18
TBR+3B4H
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
IRQ47
ICR47
0000042FH
3FH
63
TBR+300H
( 注意事項 ) 詳細については , 「第 9 章 割込みコントローラ」を参照してください。
106
第 2 章 CPU
● SSP( システムスタックポインタ )
図 2.8-2 に , システムスタックポインタレジスタの構造を示します。
図 2.8-2 システムスタックポインタレジスタの構造
bit 31・・
・・0
SSP
初期値
00000000H
SSP は , EIT 受理および復帰動作時のデータ退避 , 復活用スタックを示すポインタとし
て使用されます。
SSP の値は , EIT 処理により "8" だけデクリメントされ , RETI 命令により EIT から戻っ
た場合に , "8" だけインクリメントされます。
リセットにより 00000000H に初期化されます。
内部ブート ROM コードの実行中に有効なブート条件が検出された場合は , SSP は
0003D3F8H に設定されます。
● 割込みスタック
SSP により示される領域で , PC および PS の値が退避 • 復帰されます。割込みが発生し
た後 , SSP の示すアドレスに PC, "SSP+4" のアドレスに PS が格納されます。
図 2.8-3 に , 割込みスタック操作の例を示します。
図 2.8-3 割込みスタック操作の例
SSP
割込み前
80000000H
SSP
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
割込み後
7FFFFFF8H
メモリ
80000000H
7FFFFFFCH
7FFFFFF8H
PS
PC
● TBR( テーブルベースレジスタ )
このレジスタは , EIT ベクタテーブルのトップアドレスを示します。
各 EIT に対するベクタアドレスは , その EIT に対するオフセット値を TBR に加算する
ことにより得られます。
リセットにより 000FFC00H に初期化されます。
107
第 2 章 CPU
● EIT ベクタテーブル
TBR の示すアドレスから始まる 1K バイトの領域が , EIT ベクタ領域です。
各ベクタは , 4 バイトで構成されます。次の式は , ベクタ番号とベクタアドレスの間の
関係を示します。
vctadr = TBR + vctofs
= TBR + (3FCH -4 × vct)
vctadr : ベクタアドレス
vctofs : ベクタオフセット
vct
: ベクタ番号
加算結果の下位 2 ビットは常に "00" として処理されます。
リセット後の初期ベクタテーブル領域は 000FFC00H と 000FFFFFH の間の領域です。
ベクタによっては , 特殊な機能が割り当てられます。表 2.8-4 に , ベクタテーブルの詳
細を示します。
表 2.8-4 ベクタテーブル (1 / 2)
108
ベクタ番号
ベクタオフセット
(16 進数 )
16 進数
10 進数
3FC
00
0
リセット (*)
3F8
01
1
システム予備
3F4
02
2
システム予備
3F0
03
3
システム予備
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
3E0
07
7
システム予約
3DC
08
8
システム予約
3D8
09
9
INTE 命令
3D4
0A
10
システム予約
3D0
0B
11
システム予約
3CC
0C
12
ステップトレーストラップ
3C8
0D
13
システム予約
3C4
0E
14
定義されていない命令の例外
3C0
0F
15
NMI( ユーザ )
3BC
10
16
マスク可能割込み #0
3B8
11
17
マスク可能割込み #1( 注意事項 )
説明
第 2 章 CPU
表 2.8-4 ベクタテーブル (2 / 2)
ベクタ番号
ベクタオフセット
(16 進数 )
16 進数
10 進数
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
300
3F
63
マスク可能割込み /INT 命令
2FC
40
64
システム予約
(REALOS により使用されます )
2F8
41
65
システム予約
(REALOS により使用されます )
2F4
42
66
マスク可能割込み /INT 命令
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
・
000
FF
255
説明
*: TBR 値が変更されても , リセットベクタは常に固定アドレス 000FFFFCH に配置されます。
( 注意事項 )
MB91360 シリーズベクタテーブルに関しては , 「付録 B 割込みベクタ」を参照して
ください。
109
第 2 章 CPU
多重 EIT 処理
2.8.1
複数の EIT が同時に発生した場合 , CPU は次の操作を繰返し実行します。
1. 1 つの EIT を受け付けて , EIT シーケンスを実行
2. その後 , 次の EIT を検出
EIT 検出において , 受け付けられる EIT が存在しなくなると , CPU は , 最後に受け付
けた EIT に対してハンドラ命令を実行します。
したがって , 同時に発生した多重 EIT に対するハンドラを実行するシーケンスは , 次
の 2 つの要因により決定されます。
• EIT を受け付ける優先順位
• EIT を受け付ける場合に , 他の EIT はどのようにマスクされるか
■ 多重 EIT 処理
EIT 受付優先順位とは , PS と PC を退避して PC を更新し ( 必要に応じて ) 他の EIT の
マスク処理を行うという , EIT ワークレスを実行する要因を選ぶときの順番です。
したがって , 先に受理された EIT のハンドラを , 必ずしも最初に実行されるわけではあ
りません。
表 2.8-5 は , EIT を受け付ける優先順序の一覧です。
表 2.8-5 EIT を受け付けて , 他の EIT をマスクする優先順序
EIT を受け付
ける優先順位
EIT
他の EIT のマスキング
1
リセット
他の EIT はクリアされます。
2
定義されていない命令の例外
キャンセルされます。
3
INT 命令
I フラグ= 0
4
ユーザ割込み
ILM =受け付けた割込みのレベル
5
NMI( ユーザ )
ILM = 15
6
(INTE 命令 )
ILM = 4 *
7
NMI( エミュレータ )
ILM = 4
8
ステップトレーストラップ
ILM = 4
*: エミュレータ NMI が INTE 命令と同時に発生した場合にのみ , 優先順位は "6" となります。
(MB91360 シリーズはデータアクセスによる中断に対して , エミュレータ NMI を使用します。)
110
第 2 章 CPU
1 つの EIT を受け付けて他の EIT をマスキングした後 , 同時に発生する EIT のハンドラ
を実行するための優先順位は , 表 2.8-6 のとおりです。
表 2.8-6 EIT ハンドラに対する実行優先順位
EIT
ハンドラ実行優先順位
1
リセット *1
2
定義されていない命令の例外
3
ステップトレーストラップ *2
4
INTE 命令 *2
5
NMI( ユーザ )
6
INT 命令
7
ユーザ割込み
*1: 他の EIT はクリアされます。
*2: INTE 命令がステップ実行されるのであれば , ステップトレーストラップ EIT の
みが発生されます。INTE による EIT は無視されます。
これらの優先順位による多重 EIT 処理の例を , 図 2.8-4 に示します。
図 2.8-4 多重 EIT 処理の例
メインルーチン
INT 命令ハンドラ
NMI ハンドラ
優先順位
(高い)NMI 発生
(低い)INT 命令実行
(1 )最初に実行
(2 )次に実行
111
第 2 章 CPU
2.8.2
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. 割込み要求の割込みレベルを, ILMにより設定されたレベルマスク値と比較します。
割込みレベル≧レベルマスク値の場合は , 割込み要求はマスクされ , 受け付けられ
ません。割込みレベル<レベルマスク値の場合は , ステップ 4) に進みます。
4. 選択した割込み要求がマスク可能な割込みであり , I フラグが "0" である場合 , 割込
み要求はマスクされ受け付けられません。I フラグが "1" であれば , ステップ 5) に進
みます。
選択した割込み要求が NMI である場合には , I フラグの値に関係なくステッ
プ 5) に進みます。
5. 上記条件が満足されると , 現時点における命令処理の最後で , 割込み要求が受け付
けられます。
EIT 要求が検出された場合にユーザ割込み , または NMI 要求が受け付けられると , CPU
は受け付けた割込み要求に対応する割込み番号を使用して , 次のように動作します。
( ) はレジスタの指すアドレスを表します。
[ 動作 ]
1. SSP-4 → SSP
2. PS → (SSP)
3. SSP-4 → SSP
4. 次の命令のアドレス → (SSP)
5. 受け付けられた要求の割込みレベル → ILM
6. "0" → S フラグ
7. (TBR +受け取った割込み要求のベクタオフセット ) → PC
割込みシーケンスの完了後 , システムは , ハンドラの最初の命令を実行する前に , 新た
な EIT が存在するかどうかをチェックします。受付け可能な EIT が存在すれば , CPU
は EIT 処理シーケンスに入ります。
112
第 2 章 CPU
■ 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. 上記条件が満たされると , 現在の命令の終わりで中断します。
[ 動作 ]
1. SSP-4 → SSP
2. PS → (SSP)
3. SSP-4 → SSP
4. 次の命令のアドレス → (SSP)
5. "00100B" → ILM
6. "0" → S フラグ
7. (TBR + 3CCH) → PC
113
第 2 章 CPU
T フラグによりステップトレーストラップが許可されると , ユーザ NMI とユーザ割込
みは禁止されます。
同様に , INTE 命令による EIT を発生しません。
■ 未定義命令の例外の動作
命令のデコード時に未定義命令が検出されると , 未定義命令の例外が発生します。
[ 定未定義命令の例外を検出する条件 ]
1. 命令デコード時に未定義命令が検出される。
2. 命令が遅延スロット内ではない ( 遅延分岐命令のすぐ後ろに配置されていない )。
3. 上記条件が満足されると , 未定義命令の例外が発生し , 実行が中断されます。
[ 動作 ]
1. SSP-4 → SSP
2. PS → (SSP)
3. SSP-4 → SSP
4. PC → (SSP)
5. "0" → S フラグ
6. (TBR + 3C4H) → PC
PC として退避されるのは , 命令の例外を検出した命令自身のアドレスです。
■ RETI 命令の動作
RETI 命令は EIT 処理ルーチンから復帰する命令です。
[ 動作 ]
1. (R15) → PC
2. R15+4 → R15
3. (R15) → PS
4. R15+4 → R15
PS と PC を復帰するのに使用されたスタックポインタは , S フラグの内容に基づいて選
択されることに注意してください。割込みハンドラ内の R15( スタックポインタ ) で動
作する命令を実行するのであれば , S フラグを "1" に設定し , USP を R15 として設定す
ることをお勧めします。この場合 , RETI 命令の前に S フラグを "0" に戻してください。
■ 注意事項
● 遅延スロット
分岐命令の遅延スロット内の EIT に対しては制約が適用されます。詳細は「2.7.2 分岐
命令」を参照してください。
114
第 2 章 CPU
2.9
リセット ( デバイスの初期化 )
ここでは , FR50 のデバイスを初期化するリセット動作を説明します。
■ リセット
リセット要因が発生すると , FR50 のデバイスは , すべてのプログラムとハードウェア
動作を停止して初期化します。
この状態はリセット状態とよばれます。
リセット要因が解除されると , デバイスは初期状態からプログラムとハードウェア動
作を開始します。
このリセット状態から動作開始までの一連の動作は , リセットシーケンスとよばれま
す。
115
第 2 章 CPU
2.9.1
リセットレベル
FR50 のデバイスにおけるリセットの動作は , 以下の 2 つのレベルに分類されます。
• 設定初期化リセット (INIT)
• 動作初期化リセット (RST)
各リセットレベルの発生要因と初期化タイプは異なります。
■ 設定初期化リセット (INIT)
すべての設定を初期化する最も強力なリセットレベルは設定初期化リセット (INIT) と
よばれます。INIT は次の設定値を初期化します。
[INIT により初期化される設定値 ]
• デバイス動作モード ( バスモードと外部バス幅の設定値 )
• 内部クロック(クロックソース選択, PLL制御, 分周比設定)に関するすべての設定値
• 外部バス拡張インタフェースのすべての設定値
• 他の端子状態に関するすべて設定値
• 動作初期化リセット (RST) により初期化されるすべての設定値
詳細については , 各機能説明を参照してください。
電源投入後は必ず INITX 端子で INIT を実行してください。
■ 動作初期化リセット (RST)
プログラム動作を初期化する通常リセットレベルは, 動作初期化リセット(RST)とよば
れます。
INIT が発生した場合には , RST も同時に発生します。
RST は , 次の設定値を初期化します。
[RST により初期化される設定 ]
• プログラム動作
• CPU と内部バス
• リソースのレジスタ設定値
• I/O ポート設定
• 外部バスの CS0 領域に関するすべての設定値
詳細については各機能説明を参照してください。
116
第 2 章 CPU
2.9.2
リセットソース
ここでは , FR50 のデバイスにおける , 各リセットソースとリセットレベルについて
説明します。過去のリセット要因は , リセット要因レジスタ (RSRR) を読み出すこ
とにより得られます。各説明に出てくるレジスタとフラグの詳細については , 「5.8
クロック生成制御ブロックのレジスタ」を参照してください。
■ INITX 端子 ( 設定初期化リセット端子 ) への入力
INITX 端子 ( 外部端子 ) は , 設定初期化リセット端子として機能します。
設定初期化リセット (INIT) 要求は , INITX 端子に "L" レベルが入力された場合に発生
します。
この要求は , INITX 端子に High レベル信号を入力することにより解除されます。
INIT 要求に従って設定初期化リセット (INIT) が実行されると , リセット要因レジスタ
(RSRR) 内の INIT ビット (bit15) がセットされます。
この要求により実行される INIT は , すべてのリセット要因の中で最も強力なリセット
です。すべての入力 , 操作 , 状態に優先します。電源を入れたらすぐに , INITX 端子で
INIT を実行してください。また , 電源投入直後は , 発振回路の発振安定待ち時間を確保
するため , INITX 端子への "L" レベル入力を発振回路の要求する安定待ち時間の間持続
してください。
発生要因 : 外部 INITX 端子への "L" レベル入力
解除要因 : 外部 INITX 端子への "H" レベル入力
発生レベル : 設定初期化リセット (INIT)
対応フラグ : INIT ビット (bit15)
■ RSTX 端子 ( 動作初期化リセット端子 ) への入力 (MB91FV360GA のみ )
RSTX 端子 ( 外部端子 ) は , 動作初期化リセット端子として機能します。
動作初期化リセット (RST) 要求は , RSTX 端子に "L" レベルが入力された場合に発生し
ます。
この要求は RSTX 端子への "H" レベルの入力により解除されます。
RSTX 要求に従って動作初期化リセット (RST) が実行されると , リセット要因レジスタ
(RSRR) 内の ERST ビット (bit12) がセットされます。
タイムベースカウンタ制御レジスタ (TBCR) 内の SYNCR ビット (bit9) が設定されると
すべてのバスアクセスが停止した後にのみ , この要求に従って RST が実行されます。
このため , バスの使用状況によっては , RST の発生まで時間がかかることもあります。
発生要因 : 外部 RSTX 端子への "L" レベル入力
解除要因 : 外部 RSTX 端子への "H" レベル入力
発生レベル : 動作初期化リセット (RST)
対応フラグ : ERST ビット (bit12)
■ 内部パワーダウンリセット (「第 21 章 パワーダウンリセット」参照 )
RSTX 端子への "L" レベル同様 , 内部パワーダウンリセットにより動作初期化リセット
(RST) が実行されます。
117
第 2 章 CPU
■ STCR: SRST ビットへの書込み ( ソフトウェアリセット )
ソフトウェアリセット要求は , スタンバイ制御レジスタ (STCR) 内の SRST ビット (bit4)
に "0" が書き込まれた場合に発生します。
ソフトウェアリセット要求は , 動作初期化リセット (RST) 要求です。
RST が発生した場合 , 受け付けられたソフトウェアリセット要求は解除されます。
ソフトウェアリセット要求に従って動作初期化リセット(RST)が実行されると, リセッ
ト要因レジスタ (RSRR) 内の SRST ビット (bit11) がセットされます。
タイムベースカウンタ制御レジスタ (TBCR) 内の SYNCR ビット (bit9) が設定されると
すべてのバスアクセスが停止した後にのみ , この要求に従って RST が実行されます。
このため , バスの使用状況によっては , RST の発生まで時間がかかることもあります。
発生要因 : STCR 内の SRST ビット (bit4) への "0" 書込み
解除要因 : 動作初期化リセット (RST) の実行
発生レベル : 動作初期化リセット (RST)
対応フラグ : SRST ビット (bit11)
■ ウォッチドッグリセット
ウォッチドッグタイマ制御レジスタ (RSRR) にデータを書き込むと , ウォッチドッグタ
イマが起動します。RSRR 内の WT1 ビットと WT0 ビット (bit9, bit8) により設定された
サイクル以内にタイムベースカウンタクリアレジスタ (CTBR) へ A5H/5AH 書込みが行
われないと , ウォッチドッグリセット要求が発生します。ウォッチドッグリセット要求
は , 設定初期化リセット (INIT) 要求です。要求が受け付けられ INIT または RST が発生
すると , ウォッチドッグリセット要求は解除されます。
ウォッチドッグリセット要求に従って INIT が実行されると , リセット要因レジスタ
(RSRR) 内の WDOG ビット (bit13) がセットされます。ウォッチドッグリセット要求に
従って INIT が実行されても , 設定されている , 発振安定待ち時間は初期化されません。
発生要因 : 設定されたウォッチドッグタイマサイクルの経過
解除要因 : 設定初期化リセット (INIT) または動作初期化リセット (RST) の実行
発生レベル : 設定初期化リセット (INIT)
対応フラグ : WDOG ビット (bit13)
■ HSTX 端子 ( ハードウェアスタンバイ端子 ) への入力
HSTX 端子 ( 外部端子 ) は , ハードウェアスタンバイ端子として機能します。ハード
ウェアスタンバイ要求は , HSTX 端子へ "L" レベルが入力された場合に発生します。
ハードウェアスタンバイ要求が受け付けられ , デバイスがハードウェアスタンバイ状
態に切り換わると , 同時に設定初期化リセット (INIT) が発生します。
HSTX 端子に "H" レベルが入力されると , ハードウェアスタンバイ要求は解除されま
す。設定初期化リセット (INIT) もまた解除されます。
デバイスがハードウェアスタンバイ状態である場合 , 外部 INITX 端子に INIT 要求が生
じるとハードウェアスタンバイ要求は解除されますが , INIT は要求が発生したままの
状態になります。
デバイスでハードウェアスタンバイ状態による INIT が発生すると , リセット要因レジ
スタ (RSRR) 内の HSTB ビット (bit14) がセットされます。
電源を入れた直後にハードウェアスタンバイ要求が発生した場合は, INITX端子におけ
る設定初期化リセット (INIT) が他のリセットより優先されます。ただし , INITX 端子
における INIT が解除され , デバイスがハードウェアスタンバイ状態に切り換わると ,
設定されている , 発振待ち時間は最小値に初期化され , ハードウェアスタンバイ要求が
解除された後 , 発振安定待ち時間は最小値に設定されます。
発生要因 :
118
外部 HSTX 端子への "L" レベル入力
第 2 章 CPU
解除要因 :
外部 HSTX 端子への "H" レベル入力または INITX 端子における設定初
期化リセット (INIT)
発生レベル : 設定初期化リセット (INIT)
対応フラグ : HSTB ビット (bit14)
119
第 2 章 CPU
2.9.3
リセットシーケンス
リセット要因が解除されると , デバイスはリセットシーケンスの実行を開始します。
リセットシーケンス動作はリセットレベルによって異なります。ここでは , 各リ
セットレベルについて説明します。
■ 設定初期化リセット (INIT) 解除シーケンス
設定初期化リセット (INIT) 要求が解除されると , デバイスは次の動作を順に実行しま
す。
1. INIT を解除して , 発振安定待ちに切り換わります。
2. 発振安定待ち (STCR 内の bit3, bit2(OS1, OS0)) の間 , 動作初期化リセット (RST) 状
態を保持して内部クロックを停止します。
3. 動作初期化リセット (RST) を設定して , 内部クロックの動作を開始します。
4. RST を解除して , 通常の動作状態に切り換わります。
5. アドレス 000FFFF8H から , モードベクタを読み出します。
6. アドレス 000007FDH のモードレジスタ (MODR) に , モードベクタを書き込みます。
7. アドレス 000FFFFCH から , リセットベクタを読み出します。
8. プログラムカウンタ (PC) にリセットベクタを書き込みます。
9. PC により示されたアドレスでプログラムの動作を開始しますが , シングルチップ
モードの場合は , 内部ブート ROM の最初のアドレスから開始します 「第
(
4 章 ブー
ト ROM/ 構成レジスタ」を参照してください )。
■ 動作初期化リセット (RST) 解除シーケンス
動作初期化リセット (RST) 要求が解除されると , デバイスは次の動作を順に実行しま
す。
1. RST を解除して , 通常の動作状態に切り換わります。
2. アドレス 000FFFFCH から , リセットベクタを読み出します。
3. プログラムカウンタ (PC) に , リセットベクタを書き込みます。
4. PC により示されたアドレスで , プログラム動作を開始します。
■ ハードウェアスタンバイ解除シーケンス
ハードウェアスタンバイ要求または低電圧検出スタンバイ要求が解除されると , デバ
イスは次の動作を順に実行します。
1. 設定初期化リセット(INIT)を設定し, 内部クロック動作を開始し, 端子ハイインピー
ダンス処理を解除します。
2. INIT を解除して , 発振安定待ち状態に切り換わります。
3. 発振安定待ち (STCR 内の bit3, bit2(OS1, OS0)) の間 , 動作初期化リセット (RST) 状態
を保持し , 内部クロックを停止します。
4. 動作初期化リセット (RST) が設定され , 内部クロックの動作を開始します。
5. RST を解除して , 通常の動作状態に切り換わります。
6. アドレス 000FFFF8H から , モードベクタを読み出します。
7. アドレス 000007FDH のモードレジスタ (MODR) に , モードベクタを書き込みます。
8. アドレス 000FFFFCH から , リセットベクタを読み出します。
9. プログラムカウンタ (PC) に , リセットベクタを書き込みます。
10.PC により示されたアドレスで , プログラムの動作を開始します。
120
第 2 章 CPU
2.9.4
発振安定待ち時間
デバイスは , 元の発振が停止した状態 , あるいは停止した可能性のある状態から戻っ
た場合に , 発振安定待ちの状態に自動的に切り換わります。
この機能は , 発振が開始した後の不安定な発振器出力を使用できないようにするも
のです。
発振安定待ち時間の間 , 内部クロックと外部クロックの供給は停止し , 内蔵タイム
ベースカウンタのみが動作します。デバイスは , スタンバイ制御レジスタ (STCR) に
より設定された , 安定までの待機時間が経過するのを待ちます。
発振安定待ちの動作を以下に示します。
■ 発振安定待ちの発生要因
発振安定待ちの発生要因は以下のとおりです。
1) 設定初期化リセット (INIT) の解除
INIT が解除された直後 , デバイスは発振安定待ちの状態に切り換わります。
発振安定待ち時間が経過すると , デバイスは動作初期化リセット (RST) 状態に切り
換わります。
2) 停止モードからの復帰時
停止モードが解除された直後 , デバイスは , 発振安定待ちの状態に切り換わります。
ただし , 停止モードが設定初期化リセット (INIT) 要求により解除された場合には ,
デバイスは INIT 状態に切り換わります。INIT が解除されてから , 発振安定待ちの
状態に切り換わります。
発振安定待ち時間が経過すると , デバイスは停止モード解除要因に対応する状態に
切り換わります。
• (NMI を含む ) 有効な外部割込み要求の入力による復帰時
→デバイスは通常の動作状態に切り換わります。
• INIT 要求による復帰時
→デバイスは RST 状態に切り換わります。
• RST 要求による復帰時
→デバイスは RST 状態に切り換わります。
3) エラー状態発生による復帰時 (PLL が選択されている場合に有効 )
PLL がソースクロックとして動作している場合に PLL 制御に何らかの異常 * が発生
すると , PLL ロックタイム確保のために , 自動的に発振安定待ち時間に切り換わり
ます。
発振安定待ち時間が経過すると , デバイスは通常の動作状態に切り換わります。
*: PLL 使用中の逓倍率の変更や , PLL 動作許可ビット化けの発生など
121
第 2 章 CPU
■ 発振が安定するまでの待機時間の選択
内蔵タイムベースカウンタは , 発振安定待ち時間をカウントするのに使用されます。
発振安定待ち要因の発生により , 発振安定待ちの状態にデバイスが切り換わった場合 ,
内蔵タイムベースカウンタは , 一度初期化した後に , 発振安定待ち時間のカウントを開
始します。
スタンバイ制御レジスタ (STCR) 内の OS1 ビットと OS0 ビット (bit3, bit2) は , 発振安定
待ち時間を 4 種類から 1 つ選択 , 設定するのに使用できます。
発振安定待ち時間の設定は , INITX 端子 ( 外部端子 ) における設定初期化リセット (INIT)
でのみ初期化できます。他のリセット ( ウォッチドッグリセット , ハードウェアスタン
バイ , 低電圧検出スタンバイによる設定初期化リセット (INIT), 動作初期化リセット
(RST) など ) を行うときには , リセットする前に設定されていた発振安定待ち時間が保
持されます。
発振安定待ち時間 4 種類では , 以下の用途を想定しています。
• OS1, OS0 = 11
発振が安定するまでの待機時間なし ( 停止モードにおいて PLL と発振器が停止しな
かった場合 )
• OS1, OS0 = 01
発振安定待ち時間 ( ミドル )( セラミック発振器などの高速安定発振器を使用した場
合)
• OS1, OS0 = 00, 10
発振安定待ち時間 ( ロング )( 通常の水晶発振器などを使用した場合 )
電源を入れたらすぐに , INITX 端子で INIT を実行してください。また , INITX 端子へ
の "L" レベル入力を保持し , 発振回路により要求された , 発振回路の発振安定待ち時間
を守ってください。
(INITX 端子で INIT を実行すると , 発振安定待ち時間の設定が最小値に初期化されま
す。)
電源を入れた直後にハードウェアスタンバイ要求が発生した場合は, INITX端子におけ
る設定初期化リセット (INIT) が他のリセットより優先されます。ただし , INITX 端子
における INIT が解除され , デバイスがハードウェアスタンバイ状態に切り換わると ,
発振安定待ち時間の設定は最大値に初期化され , ハードウェアスタンバイ要求が解除
された後の発振安定待ち時間は最大値に設定されます。
122
第 2 章 CPU
2.9.5
リセットモード
動作初期化リセット (RST) は , 通常 , 以下の 2 つのモードをサポートします。
• 通常 ( 非同期 ) リセットモード
• 同期リセットモード
モードを選択するには , タイムベースカウンタ制御レジスタの SYNCR ビット (bit9)
を使用します。
設定リセットモードは , 初期化リセット (INIT) を設定することによってのみ , 初期化
できます。
INIT は常に非同期で実行されます。
通常 ( 非同期 ) リセットと同期リセットについて , 以下に説明します。
■ 通常 ( 非同期 ) リセット
RST またはハードウェアスタンバイ要求が発生した場合 , 即座に RST 状態またはハー
ドウェアスタンバイ状態への遷移を行う動作を , 通常 ( 非同期 ) リセットとよばれます。
通常 ( 非同期 ) リセットモードにおいて , RST またはハードウェアスタンバイ要求が受
け付けられると , デバイスは , 内部バスアクセス状態を参照することなく , すぐに RST
またはハードウェアスタンバイ状態に切り換わります。
このモードでは,各状態へ遷移する時点で行われていたバスアクセスの結果は保証され
ません。しかし , それら要求を確実に受け付けることが可能です。
TBCR の SYNCR ビット (bit9) が "0" である場合 , デバイスは通常 ( 非同期 ) リセット
モードで動作します。
INIT が発生した後の初期値は通常リセットモードです。
■ 同期リセット
RST またはハードウェアスタンバイ要求が発生した場合に , すべてのバスアクセスが
停止した後で , RST またはハードウェアスタンバイ状態に切り換わることを , 同期リ
セットとよびます。
同期リセットモードにおいて RST またはハードウェアスタンバイ要求が受け付けられ
ても , 内部バスがアクセスされていれば , デバイスは , RST またはハードウェアスタン
バイ状態には切り換わりません。
上記要求が受け付けられた場合 , 内部バスにはスリープ要求が発せられます。各バスが
動作を停止してスリープ状態に切り換わると , デバイスは RST またはハードウェアス
タンバイ状態に切り換わります。本モードでは , 各状態へ遷移する時点ですべてのバス
アクセスが停止しているため , すべてのバスアクセスの結果は保証されます。
ただし , バスアクセスが何らかの理由により停止しない場合には , 各要求は受け付けら
れません ( この場合においても , INIT は直ちに有効になります )。次の場合 , バスアク
セスは停止しません。
• 外部拡張バスインタフェースに対し BRQ( バス解放要求 ) が入力され続け , BGRNTX
( バス解放アクノリッジ ) が有効となっている場合で , 内部バスが新たなバスアクセ
ス要求を発する場合。
• RDY(ready 要求 ) が外部拡張バスインタフェースに連続的に入力され , バスウェイ
123
第 2 章 CPU
トが有効となっている場合。このバスアクセスが終了後 , デバイスは最終的に RST
またはハードウェアスタンバイ状態に切り換わります。ただし , この切換えには時
間がかかります。
<注意事項>
124
DMA コントローラは , デバイスが各状態に切り換わるのを遅らせることはありま
せん。コントローラは , 要求を受け取ると転送を停止するからです。
TBCR 内の SYNCR ビット (bit9) が "1" である場合 , それは同期リセットモードで
あることを表しています。
INIT が発生すると , 初期値は通常 ( 非同期 ) リセットモードに戻ります。
第 2 章 CPU
2.10
動作モード
本 CPU には , 以下の 2 つの動作モードがあります。
• バスモード
• アクセスモード
各モードの詳細について , 以下に示します。
■ 動作モード
バスモード
アクセスモード
シングルチップ
内部 ROM 外部バス
32 ビットバス幅
→
外部 ROM 外部バス
16 ビットバス幅
8 ビットバス幅
1) バスモード
バスモードでは , 内部 ROM 動作と外部アクセスの機能が制御されます。これは ,
モード端子 (MD2, MD1, MD0) と , モードデータの ROMA ビット値により定義され
ます。
2) アクセスモード
アクセスモードでは , 外部データバス幅が制御されます。これは , モードレジスタ
の WTH1 ビットと WTH0 ビット , AMD0 ∼ AMD7( 領域モードレジスタ ) の BW1
ビットと BW0 ビットにより定義されます。
125
第 2 章 CPU
2.10.1
バスモード
FR50 には , 以下の 3 種類のバスモードがあります。
• バスモード 0( シングルチップモード )
• バスモード 1( 内部 ROM 外部バスモード )
• バスモード 2( 外部 ROM 外部バスモード )
モード設定の詳細については , 「2.10.2 モード設定」を参照してください。
■ バスモード 0( シングルチップモード )
このモードは内部 I/O, I- バス RAM, D- バス RAM に加え , F- バス RAM に対して有効
です。他の領域に対するアクセスは無効です。
<注意事項>
このモードは , 本品種ではサポートしていません。
■ バスモード 1( 内部 ROM 外部バスモード )
このモードは , 内部 I/O, I- バス RAM, D- バス RAM に加え , F- バス RAM( 内部 ROM な
ど ) に対して有効です。
他の領域に対するアクセスは外部空間に対するアクセスです。外部端子の一部はバス
端子として機能します。
■ バスモード 2( 外部 ROM 外部バスモード )
このモードは内部 I/O, I- バス RAM, D- バス RAM に対して有効です。
これは F- バス RAM に対するアクセスを禁止します。すべてのアクセスは外部空間に
対するものです。外部端子の一部はバス端子として機能します。
126
第 2 章 CPU
モード設定
2.10.2
FR50 のデバイスは , モード端子 (MD2 ∼ MD0) とモードレジスタ (MODR) を使用し
て動作モードを設定します。
■ モード端子
モードベクタフェッチに関する指定および試験モードを設定するのに , 表 2.10-1 に示
す 3 つのモード端子 (MD2 ∼ MD0) が使用されます。
表 2.10-1 モード端子
モード端子
リセットベクタ
アクセス領域
モード名
MD2
MD1
MD0
0
0
0
内部 ROM モード
ベクタ
0
0
1
外部 ROM モード
ベクタ
備考
内部
MB91F362GB および
MB91F364G はなし
外部
モードレジスタはバス幅
を設定するのに使用され
ます。
残りの設定
予備
フラッシュメモリモード
については「第 31 章
フラッシュメモリ」を参
照してください。
■ モードレジスタ (MODR)
モードベクタフェッチによって 0000_07FDH に書き込まれるデータは , モードデータと
よばれます。
MODR は 0000_07FDH に配置されます。動作モードを MODR に設定すると , デバイス
はこの動作モードで動作します。MODR は , リセット要因 (INIT レベル ) が発生した場
合のみ設定されます。ユーザプログラムは , MODR に対してデータを書き込むことは
できません。
<モードレジスタ (MODR) >
MODR
7
6
5
4
3
アドレス
0000 07FDH
0
0
0
0
0
2
1
0
ROMA WTH1 WTH0
初期値
XXXXXXXXB
動作モード設定ビット
[bit7 ∼ bit3] ( 予備ビット )
bit7 ∼ bit3 は常に "00000" に設定します。ほかの値を設定した場合の動作は保証さ
れません。
127
第 2 章 CPU
[bit2] ROMA( 内部 ROM 許可ビット )
ROMA ビットは内部 ROM 領域 (F- バスメモリ領域 ) を有効にするかどうかの設定
に使用します。
ROMA
機能
0
外部 ROM モード
1
内部 ROM モード
備考
F- バス領域へのアクセスは外部です。
[bit1, bit0] WTH1, WTH0( バス幅 / シングルチップモード指定ビット )
WTH1 ビットと WTH0 ビットは , バス幅 ( 動作モードが外部バスモードの場合に有
効 ) とシングルチップモードを設定するのに使用されます。動作モードが外部バス
モードである場合 , この値は AMD0(CS0 領域 ) の BW1 ビットと BW0 ビットに設定
されます。
WTH1
WTH0
機能
備考
0
0
8 ビットバス幅
外部バスモード
0
1
16 ビットバス幅
外部バスモード
1
0
32 ビットバス幅
外部バスモード
1
1
シングルチップモード
設定禁止
( 注意事項 ) "11" には設定しないでください。
128
第 2 章 CPU
2.10.3
フィックスベクタ
MB91360 シリーズデバイスの動作モードにおけるフィックスベクタについて説明し
ます。
■ フィックスベクタ
MB91360 シリーズデバイスをモード MD[2:0]=000 で起動した場合は , 内部フィックス
モードベクタ (FMV=0x06) , およびフィックスリセットベクタが使用されます。フィッ
クスリセットベクタは内部ブート ROM の開始アドレスをポイントします。
これにより , F- バス領域 , 内部 CAN モジュール , および内部フラッシュメモリにアク
セスできます。
詳細については , 「第 4 章 ブート ROM/ 構成レジスタ」を参照してください。
129
第 2 章 CPU
130
第3章
命令キャッシュ
MB91360 シリーズのメンバである命令キャッシュ
メモリと , その動作について説明します。
3.1 概要
3.2 本体の構成
3.3 各動作モードの状態
3.4 命令キャッシュのキャッシュ可能領域
3.5 FR50 の I-Cache を使用する場合の設定方法
131
第 3 章 命令キャッシュ
3.1
概要
命令キャッシュは , 一時記憶メモリです。
■ 命令キャッシュの概要
命令キャッシュは , 命令コードを外部の低速メモリからアクセスする場合に , 一度アク
セスしたコードを内部に保持する役目を果たし , 2 回目以降のアクセス速度を速めるた
めに使用します。命令キャッシュデータ RAM, タグ RAM は , このメモリを RAM モー
ドに設定することによりソフトウェアで直接読出し / 書込みアクセスできるようにな
ります。
<注意事項>
132
命令キャッシュを 1 度オンしてからオフにする場合には , 必ず「3.5 FR50 の
I-Cache を使用する場合の設定方法」に記載されているサブルーチンをご使用
ください。
第 3 章 命令キャッシュ
本体の構成
3.2
命令キャッシュメモリの本体の構成について説明します。
■ 命令キャッシュメモリ本体の構成
• FR の基本命令長
: 2 バイト
• ブロックの配置方式 : 2 ウェイセットアソシアティブ
• ブロック : 1 ウェイは 128 ブロック構成
1 ブロックは 16 バイト (= 4 サブブロック )
1 サブブロックは 4 バイト (= 1 バスアクセス単位 )
■ キャッシュ構成
図 3.2-1 にキャッシュ 1 の命令キャッシュ構成 , 図 3.2-2 にキャッシュ 2 の命令キャッ
シュタグ , 図 3.2-3 にキャッシュ 3 の RAM のアドレスマップ , 図 3.2-4 にキャッシュ 4
の各キャッシュサイズ時のメモリの割当て , 図 3.2-5 にキャッシュ 5 のキャッシュ領域
を示します。
図 3.2-1 キャッシュ 1 の命令キャッシュ構成
4 bytes
13
12
11
10
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 127
キャッシュタグ
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 0
…
キャッシュタグ
…
…
キャッシュタグ
ウェイ 2
128 Blocks
4 bytes
…
128 Blocks
…
キャッシュタグ
4 bytes
…
ウェイ 1
4 bytes
…
4 bytes
サブブロック 3 サブブロック 2 サブブロック 1 サブブロック 0 ブロック 127
133
第 3 章 命令キャッシュ
図 3.2-2 キャッシュ 2 の 命令キャッシュタグ
ウェイ 1
9
31
8
アドレスタグ
予約
7
6
5
4
3
2
1
0
SBV3
SBV2
SBV1
SBV0
TAGV
予約
LRU
ETLK
有効 TAG
サブブロックバリッド
LRU
エントリロック
ウェイ 2
9
31
8
アドレスタグ
予約
7
6
5
4
3
SBV3
SBV2
SBV1
SBV0
TAGV
サブブロックバリッド
2
予約
1
0
ETLK
有効 TAG
エントリロック
[bit31 ∼ bit9] アドレスタグ
対応するブロックにキャッシュされている命令のメモリアドレスの上位 23 ビット
が格納されています。ブロック i のサブブロック k に格納されている命令データの
メモリアドレス IA は , 次のようになります。
IA= アドレスタグ × 211 + i × 24 + k × 22
CPU からアクセス要求された命令アドレスが , 一致するかどうかを確認します。タ
グ検査の結果に従い , 以下のように動作します。
1) 要求された命令データがキャッシュ内に存在する場合 ( ヒット ), キャッシュから
CPU へサイクル内にデータを転送します。
2) 要求された命令データがキャッシュ内に存在しない場合 ( ミス ), 外部アクセスで
取得された , データ (1 サブブロック ) を CPU とキャッシュが同時に取得します。
[bit7 ∼ bit4] SBV3 ∼ SBV0: サブブロックビットバリッド
サブブロックビットバリッド (SBV3 ∼ SBV0) に "1" を設定した場合 , 関連したサブ
ブロックには , タグで示されたアドレスの現行命令データがエントリされていま
す。サブブロックには , 通常 2 つの命令が格納されます ( 即値転送命令を除く )。
[bit3] TAGV: TAG バリッドビット
アドレスタグの値が有効かどうかを示します。このビットが "0" の場合は , サブバ
リットビットと無関係に, このブロックはインバリッド状態になります(フラッシュ
状態 )。
134
第 3 章 命令キャッシュ
[bit1] LRU ビット ( ウェイ 1 のみ )
ウェイ 1 の命令キャッシュタグにのみ存在します。選択されたセットについて , 最
後にキャッシュがアクセスしたエントリがウェイ 1 とウェイ 2 のどちらであるかを
示します。LRU=1 の場合は , ウェイ 1 の , LRU=0 の場合はウェイ 2 のセットのエン
トリが最後にアクセスしたことを示します。
[bit0] ETLK: エントリロックビット
タグに相当するブロック内の全エントリをキャッシュにロックします。
ETLK=1 の場合は , ロック状態であることを示します。キャッシュミスの場合 , エ
ントリは更新されません。ただし , 無効なサブブロックは更新されます。ウェイ 1,
2 ともにエントリロックされている場合にキャッシュミスした場合は ,「キャッシュ
ミス」判定の 1 サイクル後に , 外部メモリをアクセスします。
■ 制御レジスタ構成
IRBS (32 ビット )
bit31
30
29
28
27
26
25
24
初期値
0000 0300H
0
0
0
0
0
0
0
0
0000 0000B
R
R
R
R
R
R
R
R
bit23
22
21
20
19
18
17
16
0
0
0
0
0
0
0
1
R
R
R
R
R
R
R
R
(0000 0302H)
初期値
0000 0001B
bit15
14
13
12
11
10
9
8
IRBS
IRBS
IRBS
IRBS
−
−
−
−
R/W
R/W
R/W
R/W
−
−
−
−
bit7
6
5
4
3
2
1
0
初期値
---- ----B
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
−
初期値
0010 ----B
[bit15 ∼ bit12] IRBS
RAM モードでアクセスする場合に , キャッシュRAM のベースアドレスを設定しま
す。キャッシュ RAM は 4K バイト単位でアラインしてください。これらのビット
は INIT で初期化されます。初期値はアドレス 00012000H です。
ISIZE (8 ビット )
bit7
6
5
4
3
2
1
0
初期値
0000 0307H
-
-
-
-
-
-
SIZE1
SIZE0
---- --11B
-
-
-
-
-
-
R/W
R/W
135
第 3 章 命令キャッシュ
[bit1, bit0] SIZE1, SIZE0
キャッシュサイズを設定するビットです。これらのビットの設定により , キャッ
シュサイズ , IRAM 容量 , および RAM モード時のアドレスマップが , 図 3.2-3 のよ
うに変化します。キャッシュサイズを変更した場合は , 必ずフラッシュ , およびエ
ントリロックの解除を行ってから , キャッシュをオンにしてください。
表 3.2-1 に , SIZE1, および SIZE0 のキャッシュサイズのレジスタを示します。
表 3.2-1 キャッシュサイズレジスタ
SIZE1
SIZE0
サイズ
0
0
1K バイト
0
1
2K バイト
1
0
設定禁止
1
1
4K バイト ( 初期値 )
図 3.2-3 RAM のアドレスマップ
アドレス
(IRBS)
初期値
00010000
00010200
00010400
00010600
00010800
00010A00
00010C00
00010E00
00011000
00011200
00011400
00011600
00011800
00011A00
00011C00
00011E00
00012000
00012200
00012400
00012600
00012800
00012A00
00012C00
00012E00
00013000
Cache off Cache off Cache 4K Cache 4K
RAM on
RAM off
RAM off RAM on
TAG
TAG
(ウェイ0)
(ウェイ0)
TAG
(ウェイ1)
IRAM
Cache 2K Cache 2K
RAM off RAM on
TAG
TAG(ウェイ0)
TAG
TAG(ウェイ1)
(ウェイ1)
IRAM
IRAM
TAG
(ウェイ0)
(ウェイ1)
(ウェイ0) (ウェイ0)
Cache 1K Cache 1K
RAM off RAM on
IRAM
IRAM
(ウェイ0) (ウェイ0)
(ウェイ0) (ウェイ0)
IRAM
IRAM
IRAM
IRAM
IRAM
(ウェイ1) (ウェイ1) (ウェイ1) (ウェイ1)
IRAM
IRAM
(ウェイ1) (ウェイ1)
SRAM
(ウェイ0)
SRAM
(ウェイ0)
SRAM(ウェイ0)
SRAM(ウェイ1)
SRAM
(ウェイ1)
SRAM
(ウェイ1)
IRBSの設定値が,ほかのメモリ領域と重なる場合は,IRBSメモリ(SRAM)が優先されます。
はミラーとなる領域。
136
第 3 章 命令キャッシュ
図 3.2-4 各キャッシュサイズ時のメモリの割当て
TAG RAM
SRAM
00010000
00010004
00010008
0001000C
00010010
00010014
00x番地のエントリ
00xのミラー
01x番地のエントリ
01xのミラー
00010020
000番地の命令(SBV0)
004番地の命令(SBV1)
008番地の命令(SBV2)
00C番地の命令(SBV3)
010番地の命令(SBV0)
014番地の命令(SBV1)
018番地の命令(SBV2)
01C番地の命令(SBV3)
00012000
00012004
00012008
0001200C
00012010
00012014
00012018
0001201C
図 3.2-5 キャッシュ領域
アドレス
000
200
400
600
800
A00
C00
E00
Cache 4K Cache 2K Cache 1K Cache off
SRAM
IRAM
IRAM
SRAM
未使用
SRAM
IRAM
IRAM
IRAM
(ウェイ0)
SRAM
IRAM
(ウェイ1)
SRAM
ROMAB=0
ROMなし
未使用
SRAM
ROMAB=1
ROMあり
00000000 Direct area Direct area
00010000 ダイレクト領域 ダイレクト領域
00020000
D-bus RAM領域の場合でも,CACHEとしてはIバスに
00030000
のればキャッシュされます。
00040000 キャッシュ 内部ROM
領域
キャッシュ チップセレクトの領域ごとに,非キャッシュ領域と
領域
して設定することができます。
00100000
FFFFFFFF
■ I-CacHe 制御レジスタ
ICHCR(I-CacHe 制御レジスタ ) は , 命令キャッシュの動作を制御します。
ICHCR への書込みは , 続く 3 サイクル中に取り込んだ命令のキャッシュの動作には影
響を与えません。
ICHCR (8 ビット )
bit7
6
5
4
3
2
1
0
初期値
0000 03E7H
RAM
-
GBLK
ALFL
EOLK
ELKR
FLSH
ENAB
0-00 0000B
R/W
-
R/W
R/W
R/W
R/W
R/W
R/W
内部ブート ROM 内のコードを実行中に , 有効なブート条件が検出されると , このレジ
スタは "0x81" に設定されます。
[bit7] RAM: RAM モード
RAM ビットを 1 に設定すると , 命令キャッシュは RAM モードで動作します。RAM
モードにすることによって , ENAB ビットが "1"( キャッシュオン ) となっている場
合 , キャッシュ RAM は IRBS によって指定された領域にマッピングされます。
137
第 3 章 命令キャッシュ
[bit5] GBLK: グローバルロックビット
すべてのカレントエントリをキャッシュにロックします。
GBLK = 1 の場合 , キャッ
シュ内の有効なエントリは , 「キャッシュミス」の場合には更新されません。ただ
し , 無効なサブブロックは更新されます。その際の命令データ取込み動作は , ロッ
クされていないエントリの場合と同じです。
[bit4] ALFL: オートロックフェイル
すでにロックしているエントリをさらにロックしようとすると , ALFL は "1" にセッ
トされます。エントリオートロック中のエントリの更新が , すでにロックされてい
るエントリに対して行われた場合 , ユーザの意図に反して , 新しいエントリは
キャッシュ中でロックされません。このようなプログラムのデバッグのために参照
します。"0" を書き込むとビットはクリアされます。
[bit3] EOLK: エントリオートロックビット
命令キャッシュ内の各エントリに対して , オートロッキングの有効 / 無効を指定し
ます。EOLK = 1 の場合にアクセス ( ミス時のみ ) されたエントリは , キャッシュタ
グ内のエントリロックビットがハードウェアで "1" に設定されることにより , ロッ
クされます。ロックされたエントリは , その後のキャッシュミスでは更新されませ
ん。ただし , 無効なサブブロックは更新されます。
確実にロックするためには , 一度フラッシュしてからこのビットを設定してくださ
い。
[bit2] ELKR: エントリロック解除ビット
すべてのキャッシュタグにあるエントリロックビットのクリアを指定します。
ELKR = 1 に設定すると , 次のサイクルで , すべてのキャッシュタグ中のエントリ
ロックビットが "0" にクリアされます。
<注意事項>
本ビットの値が保持されるのは , 1 クロックサイクルだけです。2 クロックサ
イクル以降は "0" にクリアされます。
[bit1] FLSH: フラッシュビット
命令キャッシュのフラッシュを指定します。FLSH=1 の場合 , キャッシュデータは
フラッシュされます。
<注意事項>
本ビットの値が保持されるのは 1 クロックサイクルだけです。2 クロックサイ
クル以降は "0" にクリアされます。
[bit0] ENAB: イネーブル
命令キャッシュの許可 / 禁止を切り換えます。ENAB=0 の場合は禁止状態で , CPU
からの命令アクセスは , キャッシュを介さず外部に対して直接行われます。禁止状
態では , キャッシュの内容は保存されます。
138
第 3 章 命令キャッシュ
各動作モードの状態
3.3
各動作モード時におけるキャッシュの状態 , およびキャッシュのエントリ更新につ
いて説明します。
■ 各動作モード時のキャッシュの状態
表 3.3-1 に , ディセーブル / フラッシュはビット操作命令などでそのビットだけ変化さ
せた場合の状態を示しています。
表 3.3-1 各動作モード時のキャッシュの状態 (1 / 2)
リセット直後
ディセーブル
フラッシュ
キャッシュメモリ
内容は不定
直前の状態を保持 ,
ディセーブル状態で
の書換え不可
直前の状態を保持
タグ
アドレスタグ
内容は不定
直前の状態を保持 ,
ディセーブル状態で
の書換え不可
直前の状態を保持
サブブロック
バリッドビット
内容は不定
直前の状態を保持 ,
ディセーブル状態で
の書換え不可
直前の状態を保持
LRU
内容は不定
直前の状態を保持 ,
ディセーブル状態で
の書換え不可
直前の状態を保持
エントリロック
ビット
内容は不定
直前の状態を保持 ,
ディセーブル状態で
の書換え不可
直前の状態を保持
( エントリロックの
解除が必要 )
TAG バリッド
ビット
内容は不定
直前の状態を保持 ,
ディセーブル状態で
のフラッシュ可能
すべてのエントリが
インバリッド
直前の状態を保持 ,
ディセーブル状態で
のフラッシュ可能
直前の状態を保持
RAM
139
第 3 章 命令キャッシュ
表 3.3-1 各動作モード時のキャッシュの状態 (2 / 2)
リセット直後
制御
レジスタ
ディセーブル
フラッシュ
グローバル
ロック
アンロック
直前の状態を保持 ,
ディセーブル禁止状
態での書換え可能
直前の状態を保持
オートロック
フェイル
フェイルなし
直前の状態を保持 ,
ディセーブル状態で
の書換え可能
直前の状態を保持
エントリオート
ロック
アンロック
直前の状態を保持 ,
ディセーブル状態で
の書換え可能
直前の状態を保持
エントリロック
解除
解除なし
直前の状態を保持 ,
ディセーブル状態で
の書換え可能
直前の状態を保持
イネーブル
ディセーブル
ディセーブル
直前の状態を保持
フラッシュ
フラッシュし
ない
直前の状態を保持 ,
ディセーブル状態で
の書換え可能
メモリアクセス直後
のサイクルでフラッ
シュ。以後 "0" に戻
る。
■ キャッシュのエントリ更新
表 3.3-2 に , キャッシュのエントリ更新の状態を示します。
表 3.3-2 キャッシュのエントリ更新の状態
アンロック
ヒット
ミス
140
ロック
更新しない。
更新しない。
メモリデータをロードし , キャッシュ
のエントリデータを更新する。
タグミスの場合は更新しない。サブブロック
がインバリッドの場合は更新する。
第 3 章 命令キャッシュ
3.4
命令キャッシュのキャッシュ可能領域
命令キャッシュのキャッシュ可能領域について説明します。
■ 命令キャッシュのキャッシュ可能領域
• 命令キャッシュは , 外部バス空間のみキャッシュ可能です。
• DMA転送で外部メモリデータが更新されても, キャッシュされた命令とのコヒーレ
ンスはとりません。コヒーレンスを保持するには , キャッシュをフラッシュしてく
ださい。
• 命令キャッシュは , チップ選択領域ごとに , 非キャッシュ領域として設定できます。
この場合でも , キャッシュオンの場合は 1 サイクルのペナルティを受けますが ,
キャッシュオフはペナルティ対象とはなりません。
141
第 3 章 命令キャッシュ
3.5
FR50 の I-Cache を使用する場合の設定方法
I-Cache を使用する場合の設定方法について説明します。命令キャッシュを一度オ
ンしてからオフにする場合には必ず以下の方法に従ってください。
■ I-Cache を使用する場合の設定方法
1) 初期化
I-Cache を使うには , まずキャッシュの内容をクリアします。レジスタの FLSH ビッ
トと ELKR ビットを "1" にして , 過去のデータを消去します。
ldi #0x000003e7,r0
//
I-Cache 制御レジスタのアドレス
ldi #0B00000110,r1
//
FLSH ビット (bit1)
stb
r1,@r0
//
ELKR ビット (bit2)
//
レジスタに書込み
これで , キャッシュが初期化されました。
2) キャッシュを有効 ( オン ) にする
I-Cache を有効にするには , ENAB ビットを "1" に設定します。
I-Cache 制御レジスタのアドレス
ldi
#0x000003e7,r0 //
ldi
#0B00000001,r1 //
ENAB ビット (bit0)
stb
r1,@r0
レジスタに書込み
//
これ以降の命令アクセスがキャッシュされます。
キャッシュは , 初期化と有効化を同時に行うこともできます。
ldi
#0x000003e7,r0 //
ldi
#0B00000111,r1 //
stb
r1,@r0
I-Cache 制御レジスタのアドレス
ENAB ビット (bit0)
//
FLSH ビット (bit1)
//
ELKR ビット (bit2)
//
レジスタに書込み
3) キャッシュを無効 ( オフ ) にする
I-Cache を無効にするには , ENAB ビットを "0" に設定します。
ldi
#0x000003e7,r0
//
I-Cache 制御レジスタのアドレス
ldi
#0B00000000,r1
//
ENAB ビット (bit0)
stb
r1,@r0
//
レジスタに書込み
この状態 ( リセット後の状態と同じ ) では , キャッシュがないのと同じです。
キャッシュのオーバヘッドが処理上の問題となる場合は , キャッシュをオフにして
もかまいません。
4) キャッシュされた命令をすべてロックする。
現在 I-Cache に入っている命令をロックするには , レジスタの GBLK ビットを "1" に
設定します。ENAB ビットも "1" に設定します。そうしないと , キャッシュがオフ
になってしまい , キャッシュ内のロックした命令が使えません。
142
第 3 章 命令キャッシュ
ldi
#0x000003e7,r0
//
I-Cache 制御レジスタのアドレス
ldi
#0B00100001,r1
//
ENAB ビット (bit0)
stb
r1,@r0
//
GBLK ビット (bit5)
//
レジスタに書込み
5) キャッシュされた特定の命令をロックする。
特定の命令グループ ( サブルーチンなど ) をキャッシュにロックするには , それら
の命令を実行する前に EOLK ビットを "1" に設定します。このようにしてロックし
た命令は , 高速内部 ROM を使っているかのようにアクセスされます。
ldi
#0x000003e7,r0
//
I-Cache 制御レジスタのアドレス
ldi
#0B00001001,r1
//
ENAB ビット (bit0)
stb
r1,@r0
//
EOLK ビット (bit3)
//
レジスタに書込み
メモリのウェイトカウントによりますが , stb 命令以降の命令が有効になります。
ロックしたい命令グループが終ったところで , EOLK ビットを "0" に設定します。
ldi
#0x000003e7,r0
//
ldi
#0B00001001,r1
//
stb
r1,@r0
I-Cache 制御レジスタのアドレス
ENAB ビット (bit0)
//
EOLK ビット (bit3)
//
レジスタに書込み
6) キャッシュされた命令のロックを解除する
ロックを解除するには , 次のようにします。
ldi
#0x000003e7,r0
//
I-Cache 制御レジスタのアドレス
ldi
#0B00000000,r1
//
キャッシュディセーブル
stb
r1,@r0
//
レジスタに書込み
ldi
#0B00000100,r1
//
ELKR ビット (bit2)
stb
r1,@r0
//
レジスタに書込み
ロック情報だけが解除されるので , ロックされていた命令は , LRU ビットの状態に
応じて順次新しい命令に置き換わります。
143
第 3 章 命令キャッシュ
144
第4章
ブート ROM/ 構成レジスタ
シングルチップモードで使用される , 埋込み式ブー
ト ROM の機能について説明します。
4.1 ブート ROM
4.2 構成レジスタ (F362GB モードレジスタ F362MD)
145
第 4 章 ブート ROM/ 構成レジスタ
4.1
ブート ROM
ブート ROM は , FF000( リセットエントリ ) にある固定の起動ルーチンです。した
がって , RST または INIT が実行されるたびに実行されます。この ROM の目的は ,
リセット後にデバイスを構成し , 埋込みフラッシュメモリをプログラミングするた
めの簡単なシリアルブートローダを提供することです。
ブート ROM には , 以下の 3 つの論理部があります。
• チップ初期化
• ブート状態のチェック
• ブートストラップローダ
■ チップ初期化
各リセットの直後に , 次の設定が実行されます。
CS0:200000...2FFFFF, 32 ビットバス , 1 ウェイトステート ( デフォルトの外部アクセス )
CS7:100000...10FFFF, 16 ビットバス , 1 ウェイトステート (CAN)
さらに , テーブルベースレジスタが 1FFC00 に初期化され , 同期リセット「5.8.3
(
TBCR:
タイムベースカウンタ制御レジスタ」参照 ) が許可されます。
■ ブート状態のチェック
チップの初期化後 , 「セキュリティベクタ」がチェックされます ( ベクタ #66)。
表 4.1-1 に , セキュリティベクタのチェック値を示します。
表 4.1-1 セキュリティベクタのチェック値
品種
MB91F362GB
チェック値
セキュリティベクタは FFFF FFFFH
MB91F376G
セキュリティベクタは FFFF FFFFH
または , 外部の 04: 4800H ∼ 13: FFFFH
その他の MB91360 シリーズ
セキュリティベクタは FFFF FFFFH
または , 外部の 08: 0000H ∼ 0F: FFFFH
この機能の目的は , セキュリティ上の理由によりブートストラップローダを無効にす
ることで , 上記の表に当てはまるときのみにブートストラップローダは有効になりま
す。
RSRR( リセット要因レジスタ ) が読み出され保存されます。電源投入時のリセット ( 外
部 INITX 入力 , RSRR=0x80) が示されない場合は , ユーザアプリケーションへの分岐が
起動されます。
INITX が検出され , 「セキュリティベクタ」チェックが OK である場合 , ブートスト
ラップローダを起動するには , 次の条件が満たされなければなりません。
所定の時間内に , UART0(9600, 8N1) により起動文字 "V" が受信されること。
タイムアウトは 200ms に設定されます。MB91FV360GA では , 外部ブート端子 (Boot/
P93) がハイ状態のときにブートストラップローダが起動されます。
146
第 4 章 ブート ROM/ 構成レジスタ
■ ブートストラップローダ
ブート条件が満たされると , UART0 により応答文字 "F" が送信され , ブートローダが
コマンドを受け入れる状態になったことを示します。次の 4 種類のコマンドがありま
す。
• 受信して , 指定されたメモリブロックに書き込む
• 指定されたメモリブロックの内容をダンプする
• 特定のロケーションへの「コール」を起動する
• 検証のために計算したチェックサムを再ダンプする
図 4.1-1 に , ブートストラップローダのフローを示します。
図 4.1-1 ブートストラップローダのフロー
RST
INIT
クロックを2MHz
に設定,UART0
を初期化
チップ初期化
RSRR
リセット要因を
リセットし保存
"V"受信
NO
セキュリティ
ベクタ
=FFFFFFFF
YES
NO
NO
YES
タイムアウト
?
YES
リセット要因 Yes
=INITX
NO
Jump
@(SccVcc)
<注意事項>
Jump
アプリケーション起動
ブートローダ
起動
RSRR レジスタは , 1 回のみ読み出せます。RSRR レジスタを読み出すと , その内
容は一時的に RAM(3D500) に保存され , アプリケーション起動またはセキュリ
ティベクタによって指定されるアドレスに分岐した後 , R4( パラメータの C コン
パイラ記法 ) に存在します。
ブート ROM はチップを初期化し , いくつかのレジスタの設定値を変更します ( 表
4.1-3 参照 )。
ユーザプログラムの標準の起動アドレスは ( セキュリティベクタがほかのアドレ
スを指定しない限り ), F4000 です。
147
第 4 章 ブート ROM/ 構成レジスタ
■ ブートストラップローダの説明
有効なブート条件が検出されると , データはシリアルプロトコルを使用して , MPU と
読み書きされます。さらに , 専用アドレスへのコールやチェックサム (16 ビット長 , デー
タの送受信中に計算される ) の再ダンプが可能です。通信チャネルは UART0(9600 ボー ,
8 データビット , パリティなし , 1 ストップビット , ハンドシェイクなし , バイナリ伝送 ) です。
<注意事項>
このプロトコルを使用してデータを伝送するソフトウェアは , 富士通マイクロエレ
クトロニクスで提供しています。
表 4.1-2 にシリアル通信のプロトコル , 表 4.1-3 にブート ROM によって修正されるレジ
スタの説明を示します。
表 4.1-2 シリアル通信プロトコル
コマンド
PC から MCU
MCU から PC
備考
241 (0xF1)
1
130 (0x82)
2
Read (2)
Lo, MidLo, MidHi, Hi
Lo, Hi
Addr (4 バイト )
Size (2 バイト )
バイナリダンプ
CS (2 バイト )
直接読出しとダンプ
ブートローダは 16 ビットの
チェックサムを送信
241 (0xF1)
1
131 (0x83)
3
Write (3)
Addr (4 バイト )
Lo, Hi
Size (2 バイト )
受信と格納
バイナリダンプ
1
Call (4)
Lo, MidLo, MidHi, Hi
CS (2 バイト )
ブートローダは 16 ビットの
チェックサムを送信
241 (0xF1)
指定されたアドレスをコール
し , リターンを待つ。R4 に
返ったパラメータは PC にエ
コーされる。
132 (0x84)
4
Addr (4 バイト )
ret. Parameter
Get
Checksum (5)
1
241 (0xF1)
5
133 (0x85)
CS (2 バイト )
148
MCU は , 最後の読み書き操
作時に計算された 16 ビット
のチェックサム (Lo, Hi) を再
ダンプする。
第 4 章 ブート ROM/ 構成レジスタ
表 4.1-3 ブート ROM によって修正されるレジスタ
レジスタ
値
アドレス
説明
ASR0
0x20
0x640
領域選択レジスタ 0
AMR0
0x0F
0x642
領域マスクレジスタ 0
AMD0
0x11
0x660
領域モードレジスタ 0
ASR7
0x10
0x65C
領域選択レジスタ 7
AMR7
0x00
0x65E
領域マスクレジスタ 7
AMD7
0x29
0x667
領域モードレジスタ 7
CSE
0x81
0x668
CS 選択許可レジスタ
CMCR
0x0180
0x0164
CAN クロックイネーブル
TBR
0x0FFC00
-
テーブルベースレジスタ
TBCR
0x03
0x482
タイムベースカウンタ制御 / 同期リセットレジスタ
RSRR
0 ( 注参照 )
0x480
リセットソースレジスタ (R4 で可視 )
SP*
0x3D3F8
-
CLKR*
0x0(4 MHz)
0x36(32 kHz)
0x484
クロックソース制御レジスタ
DIVR0*
0x0(4 MHz)
0x77(32 kHz)
0x486
クロック分周レジスタ 0(CPU, および R- バス )
DIVR1*
0x0(4 MHz)
0x70(32 kHz)
0x487
クロック分周レジスタ 1( 外部バス )
PFRQ*
0x03
0x41A
ポートファンクションレジスタポート Q(UART0)
SMR0*
0x31
0x63
UART0 モードレジスタ
SCR0*
0x13
0x62
UART0 制御レジスタ
UTIMR0*
0x05
0x68
U-Timer0 リロード
UTIMC0*
0x82
0x6B
U-Timer0 制御
FMWT
0×3
0x00007004
フラッシュ待機制御レジスタ
FMCS
0x60
0x00007000
フラッシュ制御ステータスレジスタ
スタックポインタ
*: 有効なブート状態のチェックが実行された場合のみ , レジスタは修正されます。
注 ) RSRR のリセット要因ビットは読出し動作によってクリアされます。読出し値は R4 を確認し
てください。
149
第 4 章 ブート ROM/ 構成レジスタ
構成レジスタ (F362GB モードレジスタ F362MD)
4.2
構成レジスタは , 外部バスインタフェースのどの端子がアクティブで , 外部 DMA
チャネル用の端子がどこに配置され , どの I2C モジュールを使用するかを制御するた
めに使用するレジスタです。
■ 構成レジスタ
アドレス
00001FEH
bit15
14
ADRSWAP ASYMCLKT
13
HTZ_D_A
12
11
10
9
HIZ_ECLK HIZ_D_23_16 HIZ_D_15_0 DMASWP
8
IICSEL
アクセス
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] ADRSWAP (MB91F369GA でのみ有効 )
0: Pin23= CS4X, Pin24= CS5X, Pin25= CS6X
1: Pin23= A21, Pin24= A22, Pin25= A23
このビットは , 対応する PFR が CSX 出力またはアドレス信号にそれぞれ設定され
ている場合に有効です。
[bit14] ASYMCLKT (MB91F364G では不可 )
0: CLKT 用デューティサイクルは 1:1 です。
1: CLKB と CLKT の間の奇数比 (1:3, 1:5 など ) に対する CLKT のハイパルスは ,
CLKB の 1 ハイパルスの長さによって短縮されます。
CLKB:CLKT = 1:3 の例
CLKB
CLKT
(ASYMCLKT = 0)
CLKT
(ASYMCLKT = 1)
[bit13] HIZ_D_A ( 外部インタフェースを持つデバイスでのみ使用可能 )
0: D[31:24], A[20:0], RDX, WR3X, WR2X, WR1X, WR0X の出力は有効です。
1: D[31:24], A[20:0], RDX, WR3X, WR2X, WR1X, WR0X の出力は Hi-Z です。
[bit12] HIZ_ECLK ( 外部インタフェースを持つデバイスでのみ使用可能 )
0: CLK の出力は有効です。
1: CLK の出力は Hi-Z です。
[bit11] HIZ_D_23_16 ( 外部インタフェースを持つデバイスでのみ使用可能 )
0: D[23:16] の出力は有効です。
1: D[23:16] の出力は Hi-Z です。
150
第 4 章 ブート ROM/ 構成レジスタ
[bit10] HIZ_D_15_0 ( 外部インタフェースを持つデバイスでのみ使用可能 )
0: D[15:0] の出力は有効です。
1: D[15:0] の出力は Hi-Z です。
[bit9] DMASWP (MB91F362GB と MB91FV360GA のみ使用可能 )
0: 外部 DMA チャネル 0 のスワップは無効です。
1: 外部 DMA チャネル 0 のスワップは有効です ( 端子の位置については , 表 4.2-1 を
参照してください )。
表 4.2-1 端子の位置
DMA ピンスワップ
MB91F362GB
MB91FV360GA
DREQ0 ←→ BRQ
端子 61 ←→ 端子 37
端子 193 ←→ 端子 88
DACK0 ←→ BRGNTX
端子 62 ←→ 端子 36
端子 135 ←→ 端子 139
DEOP0 ←→ AS
端子 63 ←→ 端子 43
端子 84 ←→ 端子 87
[bit8] IICSEL
(100 kHz および 400 kHz I2C インタフェースを持つデバイスでのみ使用可能 )
0: 100 kHz I2C インタフェース (I2C-1) の選択
1: 400 kHz I2C インタフェース (I2C-2) の選択
<注意事項>
IICSEL は必ず "1" を設定してください。
151
第 4 章 ブート ROM/ 構成レジスタ
152
第5章
クロック生成とデバイス状態
MB91360 シリーズの制御に使用するクロックの生
成 , および制御について , 詳細に説明します。さら
に , デバイス状態 , および低電力モードについて解
説します。ここでは , サブクロックなしの動作を想
定しています。サブクロックの動作についての説
明は , 対応する章を参照してください。
5.1 クロック生成の概要
5.2 ベースクロックの生成
5.3 PLL 制御
5.4 待ち時間
5.5 クロック分配
5.6 クロックパルス分周
5.7 クロック生成制御
5.8 クロック生成制御ブロックのレジスタ
5.9 クロックソース PLL との切換え
5.10 クロック制御部が持つ周辺回路
5.11 デバイス状態の制御
5.12 低消費電力モード
153
第 5 章 クロック生成とデバイス状態
5.1
クロック生成の概要
内部動作クロックの生成の概要について説明します。
■ クロック生成の概要
MB91360 シリーズは , 以下のように内部動作クロックを生成します。
• ベースクロックの生成 : デバイスは , ソースクロック (X クロック ) を 2 分周 , また
は PLL 発振させて , 基本クロック (PLL クロック ) を生成
します。
• 各内部クロックの生成 : デバイスは , ベースクロックを分周し , 各ブロックに供給
するクロックを生成します。
以降に , 各クロックの生成 , および制御について説明します。
レジスタ , およびフラグの詳細については , 「5.7 クロック生成制御」と「5.8 クロッ
ク生成制御ブロックのレジスタ」を参照してください。
32 kHz サブクロックを使用して RTC モジュールの動作が可能なデバイスもあります。
詳細については「第 29 章 サブクロック」を参照してください。
154
第 5 章 クロック生成とデバイス状態
5.2
ベースクロックの生成
内部動作クロック生成のうち , ベースクロックについて説明します。
■ ベースクロックの生成
4 MHz 発振子 , およびキャパシタンスを , X0 端子 , および X1 端子に接続する必要があ
ります。
外部バスクロックを含め , クロックはすべてデバイス自身で生成します。
内蔵 PLL(「5.7 クロック生成制御」を参照 ) は , メインクロックを使用して逓倍率を定
めます。
内部ベースクロックは , 以下のソースクロックから 1 つを選択して生成します。
• メインクロック入力の 2 分周を基準として生成したソースクロック
(X クロック =2 MHz)
• PLL でメインクロックを逓倍して生成したソースクロック (PLL クロック )
ソースクロックの選択は , クロックソース制御レジスタ (CLKR) を設定して制御しま
す。
155
第 5 章 クロック生成とデバイス状態
5.3
PLL 制御
発振の許可 / 禁止 , および逓倍率は , クロックソース制御レジスタ (CLKR) の設定に
より制御されます。
■ PLL 発振の許可 / 禁止
PLL の発振許可 / 禁止は , CLKR の PLL1EN ビット (bit10) の設定に従って制御します。
設定初期化リセット (INIT) 後 , CLKR の PLL1EN ビット (bit10) は "0" に初期化され ,
PLL の発振動作は停止しています。PLL 発振停止中は , PLL クロックはソースクロッ
クとして選択できません。
プログラムの動作開始時に , まず PLL の逓倍率を設定し , PLL 発振を許可します。次
に , PLL ロックの待ち時間が経過してから , ソースクロックを PLL クロックに切り換
えます。この際 , PLL ロック待ち時間の完了は , タイムベースタイマ割込みを使用する
と良いでしょう。
PLL クロックをソースクロックとして選択している間は , PLL の動作は停止できませ
ん ( 対応するレジスタビットに対する書込み動作は , 無効になります )。デバイスを停
止モードへ切り換える場合に PLL を停止させたい場合は , ソースクロックとして X ク
ロックを選択し直してから PLL を停止させます。
停止モードで発振が停止するようにスタンバイ制御レジスタ (STCR) の OSCD1 ビット
(bit0) を設定した場合 , デバイスが停止モードへ切り換わると , PLL も自動的に停止し
ます。
その後デバイスが停止モードから復帰する際に , PLL は自動的に発振を開始します。
■ PLL 逓倍率
クロックソース制御レジスタ (CLKR) の PLL1S2, PLL1S1, および PLL1S0 ビット (bit14 ∼
bit12) を使用して , PLL の逓倍率を設定します。
これらのビットは , 初期化リセット (INIT) の設定が実行されると , すべて "0" に初期化
されます。
● PLL 逓倍率設定
PLL 逓倍率設定を初期値より変更する場合 , プログラムの動作開始後 , PLL の動作を許
可する前または許可時に , 逓倍率を設定します。PLL 逓倍率の変更後 , ロック待ち時間
が経過した後 , ソースクロックを PLL クロックに切り換えます。このとき , PLL ロッ
ク待ち時間の完了は , タイムベースタイマ割込みを使用すると良いでしょう。
動作中に PLL 逓倍率の設定を変更する場合は , ソースクロックを X クロックに切り換
えてから設定を変更します。上記同様 , PLL 逓倍率の変更後は , ロック待ち時間が経過
したらソースクロックを PLL クロックに復帰させます。
PLL 逓倍率の設定は , PLL の使用中でも変更できます。ただしこの場合は , 逓倍率設定
の変更後 , デバイスは自動的に発振安定待ち状態に切り換わります。
プログラムの動作は , 発振安定待ち時間が経過するまで停止します。クロックソースを
X クロックに切り換えた場合は , プログラムの動作は停止しません。
156
第 5 章 クロック生成とデバイス状態
5.4
待ち時間
発振器の許可後 , 発振器から安定クロック信号が発振されるまで , しばらく時間がか
かります。この時間を , 発振安定待ち時間とよびます。(「5.10 クロック制御部が持
つ周辺回路」参照 )
■ 待ち時間
PLL の動作開始後 , 設定した PLL 出力周波数が安定するまで , さらに一定の時間を必
要とします。この時間を , PLL ロック待ち時間とよびます。
待ち時間が必要な場合について , 以下に詳細を説明します。
● 電源投入後の待ち時間
電源投入後 , メインクロック用発振器回路の発振安定待ち時間が経過するまで , 動作を
待たなければなりません。
発振安定待ち時間は , INITX 端子に "L" レベルを入力することにより , 初期値に初期化
されます。詳細については , 「5.8.2 STCR: スタンバイ制御レジスタ」を参照してくだ
さい。
初期状態では , PLL の動作は許可されていないため , ロック待ち時間を考慮する必要は
ありません。
● 初期化リセット後の待ち時間
初期化リセット (INIT) が解除されると , デバイスは発振安定待ち状態に切り換わりま
す。この状態では , 発振安定待ち時間を内部的に生成します。
電源投入時 , INITX 端子への "L" レベル入力により発振安定待ち状態になると , 時間は
初期値に初期化されます。
ただし , この状態において "L" レベルが HSTX 端子 ( ハードウェアスタンバイ端子 ) に
入力されると , デバイスはハードウェアスタンバイ状態に切り換わり , 発振器回路が停
止します。このため , 発振安定待ち時間は , 安全のため最大値に初期化されます。
プログラムの動作開始後 , INITX 端子への信号入力以外の要因により INIT された場合 ,
INIT を解除すると , プログラムが設定した発振安定待ち時間が使用されます。
これらの状態では , PLL の動作が許可されていないため , ロック待ち時間を考慮する必
要はありません。
● PLL の動作許可後の待ち時間
プログラムの動作が始まり , 停止状態の PLL の動作を許可した場合 , ロック待ち時間
が経過するまでは PLL 出力を使用できません。
ソースクロックとして PLL を選択していない場合は , ロック待ち時間中であってもプ
ログラムの動作は実行可能です。
この際 , PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ
う。
157
第 5 章 クロック生成とデバイス状態
● PLL 逓倍率変更後の待ち時間
プログラムの動作が始まり , 動作中の PLL の逓倍率設定を変更した場合 , ロック待ち
時間が経過するまでは PLL 出力を使用できません。
ソースクロックとして PLL を選択していない場合は , ロック待ち時間中であってもプ
ログラムの動作は実行可能です。
この際 , PLL ロック待ち時間は , タイムベースタイマ割込みを使用すると良いでしょ
う。
● 停止モード復帰後の待ち時間
プログラムの動作が始まり , デバイスが停止モードに切り換わった場合 , 停止モードか
らの復帰時に , プログラムが設定した発振安定待ち時間が使用されます。
停止モードで発振器回路が停止するよう設定した場合は , 発振器回路の発振安定待ち
時間または使用している PLL のロック待ち時間のうち , どちらか長い方が必要となり
ます。あらかじめ発振安定待ち時間を設定してから , デバイスを停止モードに切り換え
てください。
発振器回路が停止モードで停止しないよう設定した場合は , デバイスが停止モードに
切り換える前に , 発振安定待ち時間を最小値に設定します。
<注意事項>
158
ただし , 発振回路が停止後停止モードでハードウェアスタンバイ要求を入力した場
合は , 復帰後に発振安定停止時間が必要となります。発振安定待ち時間を最小値に
設定した場合は , この待ち時間を確保できず , 復帰後の動作は保証されません。こ
の場合は前もって発振器回路用の発振安定待ち時間を設定しておいてください。
第 5 章 クロック生成とデバイス状態
5.5
クロック分配
ソースクロックから生成されたベースクロックをもとに , 各機能の動作クロックを
作成します。デバイスには , 以下の 3 種類のメイン内部動作クロックがあります。
• CPU クロック (CLKB)
• リソースクロック (CLKP)
• 外部バスクロック (CLKT)
また,上記 3 種類のクロックのほかに次の 2 つのクロックがあります。
• CAN モジュール用クロック (CANCLK)
• RTC 用クロック ( リアルタイムクロックモジュール )
それぞれのクロックの分周比は , 個別に設定できます。
ここでは , 各内部動作クロックについて説明します。
■ CPU クロック (CLKB)
CPU クロックは , CPU, 内部メモリ , および内部バスで使用します。
CPU クロックは , 以下の回路で使用します。
• CPU
• 命令キャッシュ
• 内蔵 RAM, 内蔵フラッシュメモリ , 内蔵 ROM
( 関連するウェイトサイクルの設定は「第 31 章 フラッシュメモリ」を参照してく
ださい。)
• ビットサーチモジュール
• I バス , D バス , X バス , F バス
• DMA コントローラ
• DSU
周波数の上限はデバイスにより異なります。
「第 1 章 MB91360 シリーズの概要」の表
1.4-1 を参照してください。この周波数の上限を超える逓倍率と分周比の組合せは設定
できません。
■ リソースクロック (CLKP)
リソースクロックは , リソース , および周辺回路バスで使用します。
リソースクロックは , 以下の回路で使用します。
• 周辺回路バス
• クロック制御ブロック ( バスインタフェースブロックのみ )
• 割込みコントローラ , 外部割込み入力
• I/O ポートバス , リソース I/O ポート
• ステッパモータコントローラ
• UART モジュール , U- タイマ
• SIO, SIO プリスケーラ
159
第 5 章 クロック生成とデバイス状態
• 16 ビットリロードタイマ
• A/D コンバータ , D/A コンバータ
• I/O タイマ
• サウンド生成器
• PWM タイマ
• I2C インタフェース
• アラーム比較器 , パワーダウンリセット
動作可能な周波数の上限は 32 MHz です。この周波数の上限を超える逓倍率と分周比
の組合せは設定できません。
■ 外部バスクロック (CLKT)
外部バスクロックは , 外部拡張バスインタフェースで使用します。
外部バスクロックは , 以下の回路で使用します。
• 外部拡張バスインタフェース
• 外部 CLK 出力
• バスインタフェース I/O ポート
動作可能な周波数の上限は 32 MHz です。この周波数の上限を超える逓倍率と分周比
の組合せは設定できません。
■ その他のクロック
上記 3 種類のクロックのほかに , 次の 2 つのクロックがあります。
● CAN モジュール用クロック (CANCLK)
本クロックは , PLL の出力から直接生成します。本クロックの比率は , 8 ビット長プロ
グラマブルプリスケーラ ( レジスタ CMCR) が制御しています。CANCLK の値は , PLL
クロック /( プリスケーラ値 +1) です。
● RTC 用クロック ( リアルタイムクロックモジュール )
本クロックは , デバイス , および SELCLK 端子の設定に従って , 4 MHz または 32 kHz
の発振器回路出力から直接生成します。
160
第 5 章 クロック生成とデバイス状態
5.6
クロックパルス分周
各内部動作クロックの分周比は , ベースクロックから個別に設定できます。この機
能により , 各回路の最適な動作周波数が設定できます。
■ クロックパルス分周
分周比は , DIVR0( 基本クロック分周設定レジスタ 0) および DIVR1( 基本クロック分周
設定レジスタ 1) にて設定します。DIVR0, および DIVR1 には , それぞれ , 各クロックに
対応する 4 ビットの設定ビットがあります。レジスタ設定値 +1 がそのクロックのベー
スクロックに対する分周比です。設定した分周比が奇数であっても , デューティは常に
"50" です。
レジスタ設定値を変更すると , 次のクロックの立上りエッジから , 新しい分周比が有効
になります。
動作初期化リセット (RST) が生成した場合 , 分周比設定は初期化されず , RST 生成前の
分周比設定が保持されます。設定初期化リセット (INIT) が生成した場合のみ , 分周比
設定は初期化されます。初期状態では , リソースクロック (CLKP) 以外は , すべてのク
ロックの分周比が "1" になります。
このため , 必ず分周比を設定してから , ソースクロックを高速なもの (PLL クロック )
に変更します。
<注意事項>
動作可能な周波数の上限は , クロックごとに指定されています。ソースクロックの
選択 , PLL 逓倍率の設定 , および分周比の設定の組合せによって , 動作可能な周波
数の上限を超えた場合 , その動作は保証されません。
ソースクロック選択の変更設定シーケンスを間違えないように注意してください。
161
第 5 章 クロック生成とデバイス状態
5.7
クロック生成制御
ここでは , クロック生成制御ブロックのブロックダイヤグラムを示します。
■ クロック生成制御ブロックのブロックダイヤグラム
図 5.7-1 に , クロック生成制御ブロックのブロックダイヤグラムを示します。レジスタ
の詳細については ,「5.8 クロック生成制御ブロックのレジスタ」を参照してください。
Rバス
図 5.7-1 クロック生成制御ブロックのブロックダイヤグラム
[クロック発生ブロック]
DIVR0および
DIVR1レジスタ
CPUクロック分周
分周器
1~16
リソースクロック分周
分周器
1~16
外部バスクロック分周
停
止
制
御
分周器
1~16
CLKRレジスタ
SELCLK
X0
X1
PLL
1
クロック
変調器
X1A
発振器
回路
32 kHz
外部バスクロック
CLKT
MONCLK
1/2
RTCのクロック
RTCCLK
0
X0A
リソースクロック
CLKP
CANのクロック
CANCLK
プリスケーラ
発振器
回路
4 MHz
CPUクロック
CLKB
[停止/スリープ制御ブロック]
STCRレジスタ
内部割込み
停止状態
状態遷移
制御回路
スリープ状態
内部リセット
リセット発生
F/F
HSTX
リセット発生
F/F
内部リセット(RST)
内部リセット(INIT)
[リセットソース回路]
RSTX
INITX
RSRRレジスタ
ウォッチドッグF/F
タイムベースカウンタ
CTBRレジスタ
TBCRレジスタ
オーバフロー検出F/F
タイムベースタイマ
割込み要求
割込み許可
[ウォッチドッグ制御ブロック]
162
第 5 章 クロック生成とデバイス状態
5.8
クロック生成制御ブロックのレジスタ
クロック生成制御ブロックのレジスタの詳細について説明します。
■ クロック生成制御ブロックのレジスタ
クロック生成制御ブロックのレジスタには , 以下のものがあります。
• リセット要因レジスタ , ウォッチドッグタイマ制御レジスタ (RSRR)
直前のリセット要因を保持し , ウォッチドッグタイマの起動を制御するレジスタで
す。
• スタンバイ制御レジスタ (STCR)
デバイスの動作モードを制御するレジスタです。
• タイムベースカウンタ制御レジスタ (TBCR)
タイムベースタイマ割込みなどを制御するレジスタです。
• タイムベースカウンタクリアレジスタ (CTBR)
タイムベースカウンタを初期化するレジスタです。
• クロックソース制御レジスタ (CLKR)
システムのベースクロックとして使用するクロックソースを選択するとともに ,
PLL を制御するレジスタです。
• ベースクロック分周設定レジスタ 0 (DIVR0)
各内部クロックのベースクロックの分周比を制御するレジスタです。
• ベースクロック分周設定レジスタ 1 (DIVR1)
各内部クロックのベースクロックの分周比を制御するレジスタです。
• CAN モジュールのクロック制御 (CMCR)
CAN モジュールの専用クロックである CANCLK を起動するために使用するレジス
タです。
以降に , 各レジスタの詳細を説明します。
163
第 5 章 クロック生成とデバイス状態
5.8.1
RSRR: リセット要因レジスタ , ウォッチドッグタイ
マ制御レジスタ
リセット要因レジスタ , ウォッチドッグタイマ制御レジスタは , 直前のリセット要因
を保持し , ウォッチドッグタイマの起動を制御するレジスタです。
■ リセット要因レジスタ , ウォッチドッグタイマ制御レジスタ (RSRR)
リセット要因レジスタ , ウォッチドッグタイマ制御レジスタのレジスタ構成を , 以下に
示します。
bit
15
14
13
12
11
10
9
8
アドレス : 0000 0480H
INIT
HSTB
WDOG
ERST
SRST
-
WT1
WT0
アクセス
R
R
R
R
R
-
R/W
R/W
初期値 (INITX)
1
0
0
0
0
-
0
0
初期値 (INIT)
*
*
*
x
x
-
0
0
初期値 (RST)
x
x
x
*
*
-
0
0
ROM のブート後 **
0
0
0
0
0
-
0
0
* : リセット要因により変化します。
x : 初期化されません。
** : 内部ブート ROM でプログラムを実行後 , リセット要因の値を R4 に転送します。
RSRR を使用して直前のリセット要因を保持し , ウォッチドッグタイマの開始を制御し
ます。また , ウォッチドッグタイマの周期も設定します。本レジスタを読み出す場合 ,
保持されていたリセット要因はクリアされます。本レジスタの読出し前に複数回リ
セットが生成した場合 , リセット要因フラグは累積 ( 設定 ) されます。
本レジスタに書込みを行うと , ウォッチドッグタイマが起動します。RST が生成する
まで , ウォッチドッグタイマは動作を続けます。
[bit15] INIT (INITialize reset occurred)
本ビットは , INITX 端子入力によるリセット (INIT) の発生の有無を示します。
0
INITX 端子入力による INIT は生成していません
1
INITX 端子入力による INIT が生成しました
• 本ビットは , 読出し直後に "0" に設定されます。
• 本ビットは読出し専用です。書込みによって , ほかのビット値に影響を与えること
はありません。
164
第 5 章 クロック生成とデバイス状態
[bit14] HSTB (Hardware STandBy reset occurred)
本ビットは , HSTX 端子入力によるリセット (INIT) の発生の有無を示します。
0
HSTX 端子入力による INIT は生成していません
1
HSTX 端子入力による INIT が生成しました
• 本ビットは , INITX 端子入力によるリセット (INIT) が生成した場合 , または読出し
を行った直後に , "0" に初期化されます。
• 本ビットは読出し専用です。書込みによって , ほかのビット値に影響を与えること
はありません。
[bit13] WDOG (WatchDOG reset occurred)
本ビットは, ウォッチドッグタイマによるリセット(INIT)の発生の有無を示します。
0
ウォッチドッグタイマによる INIT は生成していません
1
ウォッチドッグタイマによる INIT が生成しました
• 本ビットは , INITX 端子入力によるリセット (INIT) が生成した場合または読出しを
行った直後に , "0" に初期化されます。
• 本ビットは読出し専用です。書込みによって , ほかのビット値に影響を与えること
はありません。
[bit12] ERST (External ReSeT occurred)
本ビットは , RSTX 端子入力によるリセット (RST) の発生の有無を示します。
0
RSTX 端子入力による RST は生成していません
1
RSTX 端子入力による RST が生成しました
• 本ビットは , INITX 端子入力によるリセット (INIT) が生成した場合または読出しを
行った直後に , "0" に初期化されます。
• 本ビットは読出し専用です。書込みによって , ほかのビット値に影響を与えること
はありません。
[bit11] SRST (Software ReSeT occurred)
本ビットは , STCR レジスタの SRST 端子へのデータ書込み ( ソフトウェアリセット )
による , リセット (RST) の発生の有無を示します。
0
ソフトウェアリセットによる RST は生成していません
1
ソフトウェアリセットによる RST が生成しました
• 本ビットは , INITX 端子入力によるリセット (INIT) 生成時または読出し直後に , "0"
に初期化されます。
• 本ビットは読出し専用です。書込みによって , ほかのビット値に影響を与えること
はありません。
165
第 5 章 クロック生成とデバイス状態
[bit9, bit8] WT1, WT0 (Watchdog interval Time select)
本ビットを使用して , ウォッチドッグタイマの周期を設定します。
本ビットに値を書き込むことにより, 表 5.8-1 に示す4種類のウォッチドッグタイマ
周期から 1 つを選択します。
表 5.8-1 ウォッチドッグタイマ周期
WT0
ウォッチドッグリセットの生成を
抑止するのに最小限必要な CTBR
への書込み間隔
CTBR への最終 5AH 書込みから
WT1
0
0
φ × 220 ( 初期値 )
φ × 220 ∼ φ × 221
0
1
φ × 222
φ × 222 ∼ φ × 223
1
0
φ × 224
φ × 224 ∼ φ × 225
1
1
φ × 226
φ × 226 ∼ φ × 227
ウォッチドッグリセット生成ま
での時間
( 注意事項 ) φ はシステムベースクロックの周期です。
• 本ビットは , リセット (RST) により "00" に初期化されます。
• 本ビットは読出し専用です。リセット (RST) 後 , 最初の書込みだけが有効です。そ
れ以降の書込みは無効となります。
166
第 5 章 クロック生成とデバイス状態
STCR: スタンバイ制御レジスタ
5.8.2
本レジスタは , デバイスの動作モードを制御するレジスタです。
■ スタンバイ制御レジスタ
スタンバイ制御レジスタのレジスタ構成を , 以下に示します。
bit
7
6
5
4
3
2
1
0
アドレス : 0000 0481H
STOP
SLEEP
HIZ
SRST
OS1
OS0
アクセス
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INITX)
0
0
1
1
0
0
1
1
初期値 (HSTX)*
0
0
1
1
1
1
1
1
初期値 (INIT)
0
0
1
1
x
x
1
1
初期値 (RST)
0
0
x
1
x
x
x
x
OSCD2 OSCD1
* : INITX による初期化と同時に , 本初期化が行われた場合のみ有効です。その他については , INIT
と同様です。
本レジスタを使用して , デバイスの動作モードを制御します。
デバイスの停止モードとスリープモードの2つのスタンバイモードに切り換えたり, 停
止モード中の端子や発振停止の制御を行います。また , 発振安定待ち時間の設定 , ソフ
トウェアリセット命令の発行を行います。
<注意事項>
スタンバイモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウン
タ制御レジスタの bit8:SYNCS ビットにて設定します ) を使用したうえで , 以下のシー
ケンスを必ず使用してください。
/*STCR ライト */
ldi
#_STCR,R0
;STCR レジスタ (0481H)
ldi
#_Val_of_Stdy,ri
;Val_of_Stdy は ,STCR へのライトデータ
std
rl,@r0
;STCR へのライト
/*STBR ライト */
ldi
#_CTBR,r2
;CTBR レジスタ (0483H)
ldi
#0xA5,rl
; クリアコマンド (1)
stb
rl,@r2
;CTBR への A5 ライト
ldi
#0xA5,rl
; クリアコマンド (2)
stb
rl,@r2
;CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0,rl
;STCR リード
/* 同期スタンバイ遷移開始 */
ldub
@r0,rl
;STCR ダミーリード
167
第 5 章 クロック生成とデバイス状態
; タイミング調整用の NOP × 5
nop
nop
nop
nop
nop
[bit7] STOP (STOP mode)
本ビットを使用して , デバイスに対し停止モードへの切換えを指示します。bit6:
SLEEP ビットと本ビット両方に "1" を書き込んだ場合は , 本ビットの方が優先とな
り , 停止モードに切り換わります。
0
デバイスは , 停止モードに切り換わりません ( 初期値 )
1
デバイスは , 停止モードに切り換わります
• 本ビットは , リセット (RST) 時または停止復帰要因により , "0" に初期化されます。
• 本ビットは読出し , および書込みが可能です。
同期スタンバイについては ,「5.11.2 各状態遷移要求の優先順位」を参照してください。
[bit6] SLEEP (SLEEP mode)
本ビットを使用して , デバイスにスリープモードに切り換わるよう指示します。bit7
(STOP ビット ) が , 本ビットより優先されます。つまり , 両ビットが "1" の場合 , デ
バイスは停止モードに切り換わります。
0
デバイスは , スリープモードに切り換わりません ( 初期値 )
1
デバイスは , スリープモードに切り換わります
• 本ビットは , リセット (RST) 時またはスリープ復帰要因により , "0" に初期化されま
す。
• 本ビットは読出し , および書込みが可能です。
同期スタンバイについては , 「5.11.1 デバイスの状態と遷移」を参照してください。
[bit5] HIZ (HIZ mode)
本ビットを使用して , デバイスの停止モード時に , 端子状態を制御します。
0
デバイスが停止モードに切り換わる前の端子状態が保持されます
1
デバイスが停止モードの時は , 端子出力はハイインピーダンス状態になります ( 初期値 )
• 本ビットは , リセット (INIT) 生成時に "1" に初期化されます。
• 本ビットは読出し , および書込みが可能です。
[bit4] SRST (Software ReSeT)
本ビットを使用して , ソフトウェアリセット (RST) 命令を発行します。
0
ソフトウェアリセット (RST) 命令が発行されました
1
ソフトウェアリセット (RST) 命令は発行されません ( 初期値 )
• 本ビットは , リセット (RST) 生成時に "1" に初期化されます。
• 本ビットは読出し , および書込みが可能です。常に "1" が読み出されます。
168
第 5 章 クロック生成とデバイス状態
[bit3, bit2] OS1, OS0 (Oscillation Stabilization time select)
本ビットは , リセット (INIT) 後または停止モード復帰後等における発振安定待ち時
間を設定します。
表 5.8-2 で示しているのは , 本ビットへの書込み値と , それぞれに対応する 4 種類の
発振安定待ち時間の組合せです。
表 5.8-2 発振安定待ち時間との組合せ
OS1
OS0
発振安定待ち時間
4 MHz 発振時
0
0
φ × 216 ( 初期値 )
32 [ms]
0
1
φ × 211
1 [ms]
1
0
φ × 216
32 [ms]
1
1
φ × 21
1 [µs]
( 注意事項 )φ は , システムベースクロックの周期です。この場合 , 原発振の 2 倍の
周期です。
• 本ビットは, INITX端子入力によるリセット(INIT)生成時に, "00"に初期化されます。
ただし , INITX 端子入力によるリセット (INIT) と , HSTX 端子入力によるリセット
(INIT) が同時に有効であった場合は , 本ビットは "11" に初期化されます。
• 本ビットは読出し , および書込みが可能です。
[bit1] OSCD2 (OSCillation Disable mode for subclock oscillator)
設定については , サブクロックの動作についての章を参照してください。
[bit0] OSCD1 (OSCillation Disable mode for subclock oscillator)
本ビットは , メイン発振入力 (XIN1) における停止モードの発振停止を制御します。
0
発振は , 停止モード中も停止しません
1
発振は , 停止モードで停止します ( 初期値 )
• 本ビットは , リセット (INIT) 生成時に "1" に初期化されます。
• 本ビットは読出し , および書込みが可能です。
169
第 5 章 クロック生成とデバイス状態
5.8.3
TBCR: タイムベースカウンタ制御レジスタ
本レジスタは , タイムベースタイマ割込みなどを制御するレジスタです。
■ タイムベースカウンタ制御レジスタ
タイムベースカウンタ制御レジスタのレジスタ構成を , 以下に示します。
bit
15
14
13
12
11
10
9
8
アドレス : 0000 0482H
TBIF
TBIE
TBC2
TBC1
TBC0
−
初期値 (INIT)
0
0
x
x
x
x
0
0
初期値 (RST)
0
0
x
x
x
x
x
x
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
SYNCR SYNCS
内部ブート ROM のコードを実行後 , このレジスタの値は "0x03" となります。
本レジスタは , タイムベースタイマ割込みなどを制御します。
タイムベースタイマ割込みの許可 , 割込みインターバル時間の選択 , およびリセット動
作のオプション機能の設定を行います。
[bit15] TBIF (Time-Base timer Interrupt Flag)
本ビットは , タイムベースタイマ割込みフラグです。
タイムベースカウンタが設定されたインターバル時間が経過したことを示し
ます (bit13 ∼ bit11(TBC2 ∼ TBC0 ビット ) で設定したインターバル時間 )。
bit14(TBIE ビット ) による割込み許可時 (TBIE=1), bit15 に "1" を設定すると , タイム
ベースタイマ割込み要求が生成されます。
クリア要因
命令による "0" の書込み
設定要因
設定 ( 指定 ) したインターバル時間の経過 ( タイムベースカウンタ
出力の立下りエッジの検出 )
• 本ビットは , リセット (RST) 生成時に "0" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
ただし , 書込みは "0" のみ有効です。"1" を書き込んでもビット値は変更されません。
リードモディファイライト系命令による読出し値は , 常に "1" となります。
[bit14] TBIE (Time-Base timer Interrupt Enable)
本ビットは , タイムベースタイマ割込み要求の出力を許可します。
タイムベースカウンタが設定されたインターバル時間を経過したことによって生
成する , 割込み要求出力を制御します。
本ビットを "1" に設定した場合 , bit15(TBIF ビット ) を "1" に設定すると , タイムベー
スタイマ割込み要求が生成されます。
170
第 5 章 クロック生成とデバイス状態
0
タイムベースタイマ割込み要求の出力を禁止します ( 初期値 )
1
タイムベースタイマ割込み要求の出力を許可します
• 本ビットは , リセット (RST) 生成時に "1" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
[bit13 ∼ bit11] TBC2, TBC1, TBC0 (Time-Base timer Counting time select)
本ビットは , タイムベースタイマで使用するタイムベースカウンタのインターバル
時間を設定します。
表 5.8-3 に示しているのは , 本ビットの書込み値と , それぞれに対応する 8 種類のイ
ンターバル時間の組合せです。
表 5.8-3 インターバル時間との組合せ
TBC2
TBC1
TBC0
タイマ
インターバル時間
クロック周波数を 48 MHz に設定した場合
0
0
0
φ × 211
42.6 [µs]
0
0
1
φ × 212
85.3 [µs]
0
1
0
φ × 213
170.6 [µs]
0
1
1
φ × 222
87.3 [ms]
1
0
0
φ × 223
174.7 [ms]
1
0
1
φ × 224
349.5 [ms]
1
1
0
φ × 225
699 [ms]
1
1
1
φ × 226
1.4 [s]
( 注意事項 ) φ は , システムベースクロックの周期です。
• 本ビットの初期値は不定です。必ず値を設定してから割込みを許可してください。
• 本ビットは , 読出し , および書込みが可能です。
[bit10] ( 予約ビット )
本ビットは , 予備のビットです。
読出し値は不定で , 書込みは無効です。
[bit9] SYNCR (SYNChronous Reset enable)
本ビットは , 同期リセット動作許可ビットです。
動作初期化リセット(RST)要求またはハードウェアスタンバイ要求が生成した場合,
即座にリセット (RST) またはハードウェアスタンバイ遷移を行う通常リセット動作
を行うか , すべてのバスアクセスが停止してから動作初期化リセット (RST) または
ハードウェアスタンバイ遷移を行う同期リセット動作を行うかを選択します。
171
第 5 章 クロック生成とデバイス状態
0
通常リセットを行います
1
同期リセットを行います
• 本ビットは , リセット (INIT) 時に "0" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
[bit8] SYNCS (SYNChronousb Standby enable)
本ビットは , 同期スタンバイ動作許可ビットです。
スタンバイ要求 ( スリープモード要求または停止モード要求 ) が発生する際 , STCR
レジスタの制御ビットへの書込みによってのみスタンバイ状態に遷移を行う通常
スタンバイ動作を行うか STCR レジスタの制御ビットへの書込み後に STCR レジス
タの読出しによってスタンバイ状態に遷移を行う同期スタンバイ動作を行うかを
選択します。
0
通常スタンバイ動作を行います
1
同期スタンバイ動作を行います
• 本ビットは , リセット (INIT) 時に "0" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
172
第 5 章 クロック生成とデバイス状態
CTBR: タイムベースカウンタクリアレジスタ
5.8.4
本レジスタは , タイムベースカウンタを初期化するレジスタです。
■ タイムベースカウンタクリアレジスタ
タイムベースカウンタクリアレジスタのレジスタ構成を , 以下に示します。
bit
7
6
5
4
3
2
1
0
アドレス : 0000 0483H
D7
D6
D5
D4
D3
D2
D1
D0
初期値 (INIT)
x
x
x
x
x
x
x
x
初期値 (RST)
x
x
x
x
x
x
x
x
W
W
W
W
W
W
W
W
タイムベースカウンタを初期化するためのレジスタです。
本レジスタに連続して {A5H} と {5AH} を書き込むと , {5AH} の書込み直後にタイム
ベースカウンタを全ビット "0" にクリアします。{A5H} 書込みと {5AH} 書込みの間に
時間制限はありませんが , {A5H} の書込み後に {5AH} 以外のデータを書き込むと , 再度
{A5H} を書き込まないと {5AH} を書き込んでもクリア動作は行いません。
ストップ , スリープ ,DMA 転送中など ,CPU が動作してない間は自動的にクリアを行い
ますので , これらの条件が発生するとウォッチドッグリセットは自動的に延期されま
す。ただし , 外部バスのホールド要求 (BRQ) が受け付けられている場合ではウォッチ
ドッグリセットは延期されませんので,長時間外部バスをホールドする場合はスリープ
モードにしてからホールド要求 (BRQ) を入力してください。
本レジスタの読出し値は不定です。
<注意事項>
本レジスタを使用してタイムベースカウンタをクリアした場合 , 発振安定待ち間隔 ,
ウォッチドッグタイマ周期 , およびタイムベースタイマ周期は , 一時的に変動しま
す。
173
第 5 章 クロック生成とデバイス状態
5.8.5
CLKR: クロックソース制御レジスタ
本レジスタは , システムのベースクロックとして使用するクロックソースを選択す
るとともに , PLL を制御するレジスタです。
■ クロックソース制御レジスタ
クロックソース制御レジスタのレジスタ構成を , 以下に示します。
bit
15
14
13
12
11
10
9
8
アドレス : 0000 0484H PLL2S0 PLL1S2 PLL1S1 PLL1S0 PLL2EN PLL1EN CLKS1 CLKS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INIT)
0
0
1
1
0
0
0
0
初期値 (RST)
x
x
x
x
x
x
x
x
内部ブート ROM のコードを実行中 , ブート条件が有効になると , 本レジスタは ,
"0x00"(4 MHz モード ) または "0x36"(32 kHz モード ) のいずれかに設定されます。
本レジスタは , システムのベースクロックとして使用するクロックソースを選択する
とともに , PLL を制御します。
本レジスタでは , 3 種類のクロックソース (2 種類が本製品で利用可能 ) のうち 1 つを選
択します。また , メインシステム , およびサブシステムそれぞれの PLL 動作ならびに
逓倍率を許可します。
[bit15] PLL2S0 (PLL2 ratio Select 0)
本ビットは , この製品では使用しません。
[bit14 ∼ bit12] PLL1S2, PLL1S1, PLL1S0 (PLL1 ratio Select 2-0)
本ビットは , PLL の逓倍率を選択します。
8 種類の逓倍率のうち , 1 つを PLL 用に選択します (6 種類の逓倍率が本製品で利用
可能 )。
PLL をクロックソースとして選択している間は , 本ビットの書換えは禁止されてい
ます。
表 5.8-4 に示しているのは , 本ビットの書込み値と , それぞれに対応する PLL の逓
倍率の組合せです。
174
第 5 章 クロック生成とデバイス状態
表 5.8-4 PLL の逓倍率との組合せ
システムベースクロックの周期 φ
PLL1S2
PLL1S1
PLL1S0
PLL の逓倍率
0
0
0
予約
設定禁止
0
0
1
予約
設定禁止
0
1
0
(6 で逓倍 )
φ=41.7 [ns] (24 [MHz])
0
1
1
(4 で逓倍 )
φ=62.5 [ns] (16 [MHz])
1
0
0
(8 で逓倍 )
φ=31.3 [ns] (32 [MHz])
1
0
1
(10 で逓倍 )
φ=25.0 [ns] (40 [MHz])
1
1
0
(12 で逓倍 )
φ=20.8 [ns] (48 [MHz])
1
1
1
(16 で逓倍 )
φ=15.6 [ns] (64 [MHz])
( 注意事項 ) φ は , システムベースクロックの周期です。
• 本ビットは , リセット (INIT) 時に "000" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
[bit11] PLL2EN (PLL2 ENable)
設定については , サブクロックの動作についての章を参照してください。
[bit10] PLL1EN (PLL1 ENable)
本ビットは , PLL の動作を許可します。
PLL をクロックソースとして選択している間は , 本ビットの書換えは禁止されてい
ます。
また , 本ビットが "0" のとき , PLL をクロックソースとして選択することは禁止され
ています ( クロックソースは , bit9, bit8 (CLKS1, CLKS0) の設定によります )。
STCR の bit0 (OSCD1) が "1" の場合 , bit10 が "1" であっても , PLL は停止モードにおい
て停止します。PLL の動作は , 停止モードから復帰した後許可されます。
0
PLL を停止します ( 初期値 )
1
PLL の動作を許可します
• 本ビットは , リセット (INIT) 時に "0" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
• PLL をクロックソースとして選択するためには , CLKS1, CLKS0 の変更前に , 本ビッ
トを "1" に設定してください。
• 必ずほかのクロック設定がすべて済んでから , 本ビットを "1" に設定してください
( ただし , DIVR0 の説明の注意事項も参照してください )。
175
第 5 章 クロック生成とデバイス状態
[bit9, bit8] CLKS1, CLKS0 (ClocK source Select)
本ビットは , FR50 コアのクロックソースを設定します。
表 5.8-5 は , 本ビットに書き込む値と , それぞれに対応するクロックソースの組合せ
です (2 種類のクロックソースが本製品で利用可能です )。
bit9 (CLKS1) が "1" の場合 , bit8 (CLKS0) の値は変更できません。
表 5.8-5 クロックソースとの組合せ
[ 変更不可 ]
[ 変更可能 ]
"00" → "11"
"00" → "01" または "10"
"01" → "10"
"01" → "11" または "00"
"10" → "01" または "11"
"10" → "00"
"11" → "00" または "10"
"11" → "01"
CLKS1
CLKS0
クロックソース設定
0
0
発振入力 "X クロック " の 2 分周 ( 初期値 )
0
1
発振入力 "X クロック " の 2 分周
1
0
PLL クロック
1
1
予約
• 本ビットは , リセット (INIT) 時に "00" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
• 前もって PLL が許可されている場合 (PLL1EN = 1) のみ , 本ビットを "10" に設定で
きます。
176
第 5 章 クロック生成とデバイス状態
DIVR0: ベースクロック分周設定レジスタ 0
5.8.6
本レジスタは , 各内部クロックのベースクロックの分周比を制御するレジスタです。
■ ベースクロック分周設定レジスタ 0
ベースクロック分周設定レジスタ 0 のレジスタ構成を , 以下に示します。
bit
15
14
13
12
11
10
9
8
アドレス : 0000 0486H
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)
x
x
x
x
x
x
x
x
内部ブート ROM のコードを実行中 , ブート条件が有効になると , 本レジスタは "0x00"
に設定されます。
本レジスタは , 各内部クロックのベースクロックに対する分周比を制御します。
CPU, および内部バス (CLKB) のクロックと , リソース , および周辺回路バス (CLKP) の
クロックの分周比を設定します。
動作周波数の上限は , クロックごとに定義されています。ソースクロックの選択 , PLL
逓倍率の設定 , および分周比の設定の組合せによって , 周波数の上限を超えた場合 , 動
作は保証されないことに注意してください ( ソースクロック選択の変更設定との順序
を間違えないよう注意してください )。
本レジスタ設定を変更すると , 次のクロックレートから新しい分周比が有効になりま
す。
[bit15 ∼ bit12] B3, B2, B1, B0 (clkB divide select 3 to 0)
本ビットは , CPU クロック (CLKB), 内部メモリ , および内部バスの分周比を設定し
ます。
本ビットに書き込む値により , CPU クロック , および内部バスのベースクロックに
対する分周比 ( クロック周波数 ) を , 表 5.8-6 に示す 16 種類の中から 1 つ選択します。
周波数の上限は 64 MHz です。この上限を超える周波数になる分周比は設定しない
でください。
<注意事項>
CLKB を分周する際 , CLKB と CLKT の比率に関していくつかの注意が必要です。
CLKB を分周する必要がある場合は , 以下の手引きに従ってください。
1. 両クロックの比率を "1" に設定して開始します。
2. PLL を許可します。
3. PLL がロックされるまで待ちます。
4. クロックソースを PLL に設定します。
5. 両クロックの分周比を同時に設定します。DIVR0 と DIVR1 に同時に書き込みま
す ( ハーフワードアクセス )。必ず , CLKB の周波数が CLKT の周波数以上で ,
CLKB の周波数が CLKT の周波数の整数倍になるように , 比率を選択します。設
定値については , 表 5.8-6 を参照してください。
6. 停止モードにする前に CLKB の分周比を "1" に戻し , PLL をクロックソースから
解除した後 , 停止モードにします。
177
第 5 章 クロック生成とデバイス状態
表 5.8-6 CPU クロック , および内部バスのベースクロックに対する分周比 ( クロック周波数 )
B3
B2
B1
B0
クロック分周比
クロック周波数 : ベースクロックが
48 MHz の場合
0
0
0
0
φ
48 [MHz] ( 初期値 )
0
0
0
1
φ × 2 ( 分周比 2)
24 [MHz]
0
0
1
0
φ × 3 ( 分周比 3)
16 [MHz]
0
0
1
1
φ × 4 ( 分周比 4)
12 [MHz]
0
1
0
0
φ × 5 ( 分周比 5)
9.6 [MHz]
0
1
0
1
φ × 6 ( 分周比 6)
8 [MHz]
0
1
1
0
φ × 7 ( 分周比 7)
6.8 [MHz]
0
1
1
1
φ × 8 ( 分周比 8)
6 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 ( 分周比 16)
3 [MHz]
( 注意事項 ) φ は , システムベースクロックの周期です。
• 本ビットは , リセット (INIT) 時に "0000" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
[bit11 ∼ bit8] P3, P2, P1, P0 (clkP divide select 3 to 0)
本ビットは, 周辺回路クロック, および周辺回路バス(CLKP)の分周比を設定します。
本ビットに書き込む値により , 周辺回路 , およびバスのベースクロックに対する分
周比 ( クロック周波数 ) を , 表 5.8-7 に示す 16 種類の中から 1 つ選択します。
周波数の上限は 32 MHz です。この上限を超える周波数になる分周比は設定しない
でください。
表 5.8-7 周辺回路 , およびバスのベースクロックに対する分周比 ( クロック周波数 )
P3
P2
P1
P0
クロック分周比
クロック周波数 : ベースクロックが
48 MHz の場合
0
0
0
0
φ
設定禁止
0
0
0
1
φ × 2 ( 分周比 2)
24 [MHz]
0
0
1
0
φ × 3 ( 分周比 3)
16 [MHz]
0
0
1
1
φ × 4 ( 分周比 4)
12 [MHz] ( 初期値 )
0
1
0
0
φ × 5 ( 分周比 5)
9.6 [MHz]
0
1
0
1
φ × 6 ( 分周比 6)
8 [MHz]
0
1
1
0
φ × 7 ( 分周比 7)
6.8 [MHz]
0
1
1
1
φ × 8 ( 分周比 8)
6 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 ( 分周比 16)
3 [MHz]
( 注意事項 )
φ は , システムベースクロックの周期です。
• 本ビットは , リセット (INIT) 時に "0011" に初期化されます。
178
第 5 章 クロック生成とデバイス状態
• 本ビットは , 読出し , および書込みが可能です。
表 5.8-8 に , DIVR0(B3 ∼ B0), DIVR1(T3 ∼ T0) のレジスタの組合せを示します。
表 5.8-8 DIVR0(B3 ∼ B0), DIVR1(T3 ∼ T0) のレジスタの組合せ
DIVR0
(B3 ∼ B0)
DIVR1
(T3 ∼ T0)
分周
CLKB:CLKT
DIVR0
(B3 ∼ B0)
DIVR1
(T3 ∼ T0)
分周
CLKB:CLKT
0000
XXXX *
1:(XXXXH)*
0001
0000
2:1
設定不可
0101
0000
6:1
設定不可
0001
0001
2:2
設定可
0101
0001
6:2
設定不可
設定不可
設定可
0001
0010
2:3
設定不可
0101
0010
6:3
0001
0011
2:4
設定可
0101
0011
6:4
設定不可
0001
0100
2:5
設定不可
0101
0100
6:5
設定不可
0001
0101
2:6
設定可
0101
0101
6:6
設定可
設定不可
0001
0110
2:7
設定不可
0101
0110
6:7
0001
0111
2:8
設定可
0101
0111
6:8
設定不可
0001
1111
2:16
設定可
0101
1111
6:16
設定不可
0010
0000
3:1
設定不可
0110
0000
7:1
設定不可
設定不可
0010
0001
3:2
設定不可
0110
0001
7:2
0010
0010
3:3
設定可
0110
0010
7:3
設定不可
0010
0011
3:4
設定不可
0110
0011
7:4
設定不可
0010
0100
3:5
設定不可
0110
0100
7:5
設定不可
設定不可
0010
0101
3:6
設定可
0110
0101
7:6
0010
0110
3:7
設定不可
0110
0110
7:7
設定可
0010
0111
3:8
設定不可
0110
0111
7:8
設定不可
0010
1111
3:16
設定不可
0110
1111
7:16
設定不可
設定不可
0011
0000
4:1
設定不可
0111
0000
8:1
0011
0001
4:2
設定不可
0111
0001
8:2
設定不可
0011
0010
4:3
設定不可
0111
0010
8:3
設定不可
0011
0011
4:4
設定可
0111
0011
8:4
設定不可
0011
0100
4:5
設定不可
0111
0100
8:5
設定不可
0011
0101
4:6
設定不可
0111
0101
8:6
設定不可
0011
0110
4:7
設定不可
0111
0110
8:7
設定不可
0011
0111
4:8
設定可
0111
0111
8:8
設定可
設定可
0011
1111
4:16
設定可
0111
1111
8:16
0100
0000
5:1
設定不可
1111
0000
16:1
設定不可
0100
0001
5:2
設定不可
1111
0001
16:2
設定不可
0100
0010
5:3
設定不可
1111
0010
16:3
設定不可
設定不可
0100
0011
5:4
設定不可
1111
0011
16:4
0100
0100
5:5
設定可
1111
0100
16:5
設定不可
0100
0101
5:6
設定不可
1111
0101
16:6
設定不可
0100
0110
5:7
設定不可
1111
0110
16:7
設定不可
設定不可
1111
0111
16:8
設定不可
設定不可
1111
1111
16:16
設定可
0100
0111
5:8
0100
1111
5:16
* : X: 1 または 0
179
第 5 章 クロック生成とデバイス状態
5.8.7
DIVR1: ベースクロック分周設定レジスタ 1
本レジスタは , 各内部クロックのベースクロックの分周比を制御するレジスタです。
■ ベースクロック分周設定レジスタ 1
ベースクロック分周設定レジスタ 1 のレジスタ構成を , 以下に示します。
bit
7
6
5
4
3
2
1
0
アドレス : 0000 0487H
T3
T2
T1
T0
S3
S2
S1
S0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値 (INIT)
0
0
0
0
0
0
0
0
初期値 (RST)
x
x
x
x
x
x
x
x
内部ブート ROM のコードを実行中 , ブート条件が有効になると , 本レジスタは ,
"0x00"(4 MHz モード ) または "0x70"(32 kHz モード ) のいずれかに設定されます。
本レジスタは , 各内部クロックのベースクロックに対する分周比を制御します。
外部拡張バスインタフェース (CLKT) の分周比を設定します。
周波数の上限は , クロックごとに定義されています。ソースクロックの選択 , PLL 逓倍
率の設定 , および分周比の設定の組合せによって , 周波数の上限を超えた場合 , 動作は
保証されないことに注意してください ( ソースクロック選択の変更設定との順序を間
違えないよう注意してください )。
本レジスタ設定を変更すると , 次のクロックレートから新しい分周比が有効になりま
す。
[bit7 ∼ bit4] T3, T2, T1, T0 (clkT divide select 3 to 0)
本ビットは , 外部バス (CLKT) のクロックの分周比を設定します。本ビットに書込
み値により, 外部拡張バスインタフェースのベースクロックに対する分周比(クロッ
ク周波数 ) を , 表 5.8-9 に示す 16 種類の中から 1 つ選択します。
周波数の上限は 32 MHz です。この上限を超える周波数になる分周比は設定しない
でください。
180
第 5 章 クロック生成とデバイス状態
表 5.8-9 外部拡張バスインタフェースのベースクロックに対する分周比 ( クロック周波数 )
T3
T2
T1
T0
クロック分周比
クロック周波数 : ベースクロックが
48 MHz の場合
0
0
0
0
φ
設定禁止
0
0
0
1
φ × 2 ( 分周比 2)
24 [MHz]
0
0
1
0
φ × 3 ( 分周比 3)
16 [MHz]
0
0
1
1
φ × 4 ( 分周比 4)
12 [MHz]
0
1
0
0
φ × 5 ( 分周比 5)
9.6 [MHz]
0
1
0
1
φ × 6 ( 分周比 6)
8 [MHz]
0
1
1
0
φ × 7 ( 分周比 7)
6.8 [MHz]
0
1
1
1
φ × 8 ( 分周比 8)
6 [MHz]
…
…
…
…
…
…
1
1
1
1
φ × 16 ( 分周比 16)
3 [MHz]
( 注意事項 ) φ は , システムベースクロックの周期です。
• 本ビットは , リセット (INIT) 時に "0000" に初期化されます。
• 本ビットは , 読出し , および書込みが可能です。
[bit3 ∼ bit0] S3, S2, S1, S0 (clkS divide select 3 to 0)
本ビットは , この製品では使用しません。
181
第 5 章 クロック生成とデバイス状態
5.8.8
CMCR: CAN モジュールのクロック制御
本レジスタは , CAN モジュールの専用クロックである CANCLK を起動するために
使用するレジスタです。
■ CAN モジュールのクロック制御
CAN モジュールのクロック制御のレジスタ構成を , 以下に示します。
アドレス
0000 0164H
アドレス
0000 0165H
bit15
14
13
12
11
10
9
8
PRE7
PRE6
PRE5
PRE4
PRE3
PRE2
PRE1
PRE0
bit7
6
5
4
3
2
1
0
CAL
MSEL
MTST
SCLK
MSRT
PRES CDSBLE IRNG
初期値
11111111B
初期値
00000000B
内部ブート ROM で当該コードを実行後 , 本レジスタは "0x0180" に設定されます。
MB91360 シリーズでは , 外部バスクロック (CLKT) の代わりに , CAN モジュール専用
クロックを使用できます。CLKT は他の要求事項に制約される可能性があり , 常に CAN
ビットタイミングを正しく生成させるのに適しているとは限りません。CMCR レジス
タは , CAN モジュールの専用クロックである CANCLK を起動するために使用します。
またこのようにクロックを分けることで , CPU クロックと外部バスクロックをスケー
ルダウンしても , 例えば 16 MHz のままで CAN を動作させることができます。
詳細については , 「6.2.1 制御レジスタ (CMCR)」を参照してください。
182
第 5 章 クロック生成とデバイス状態
5.8.9
MONCLK 端子
MONCLK 端子は , 外部端子から内部クロック信号をモニタすることを可能にしてい
ます。
デバイスにより , PLL クロック , 発振信号 , CAN クロックから選択することが可能です。
2 つのレジスタは , MONCLK 端子の機能を制御します。制御レジスタ CMCR は ,
MONCLK 端子を有効または無効にします。選択レジスタ CMLT1 は , MONCLK 端子
でどの信号をモニタするかを決定します。
詳細については , 「6.2.1 制御レジスタ (CMCR)」および「6.2.4 乱数ジェネレータおよ
び監視レジスタ (CMLT0 ∼ CMLT3)」を参照してください。
183
第 5 章 クロック生成とデバイス状態
5.9
クロックソース PLL との切換え
ここでは , クロックソース PLL との切換えについて説明します。
184
第 5 章 クロック生成とデバイス状態
5.9.1
概要
本デバイスは , 動作中に低いクロック周波数の動作から高いクロック周波数の動作に
切り換えることができます。電源を入れた後 , リセット後に , あるいは低電力モード
(STOP モードと RTC モード ) から戻った後など , クロックソースが発振器入力から PLL
に変更される場合が発生します。
また , PLL を基本とした動作から低周波数の動作に切り換わるという逆の状況におい
て , STOP モードまたは RTC モードに切り換える前に , クロックソースを発振器入力に
設定する必要があります。
表 5.9-1 に示すように , CLKR レジスタの bit8 と bit9 に適切な値を書き込むと , クロッ
クソースが選択されます。
表 5.9-1 クロックソース設定
CLKR( アドレス 0x484 のクロックソースレジスタ )
クロックソース設定
CLKS1(CLKR の bit9)
CLKS0(CLKR の bit8)
0
任意
発振器入力の 2 分周
1
0
PLL クロック
1
1
予備設定
どちらの動作周波数変化についても , 内部電圧レギュレータにより生成される供給電
圧に一時的な変化が観測されます。高い周波数に切り換わると電圧が降下し , 低い周波
数に切り換わると内部電圧が上昇します。降下または上昇の幅は , 使用する動作周波数
に依存します。
デバイスの仕様外の動作または動作障害を回避するには , 以降の章で述べる事項を考
慮する必要があります。特に 48 MHz 以上での動作に対して , 失敗のない動作を保証す
るために対応策が必要です。最高周囲温度と最低動作電圧に関係した 64 MHz 制限を
適用する必要があります。
スリープモードとの遷移については対応策は必要ありません。この遷移ではわずかな
電圧降下と電圧上昇しか観測されません。
185
第 5 章 クロック生成とデバイス状態
5.9.2
内部電圧変化の抑制
内部電圧降下または電圧サージを抑制するために , 追加を推奨するものについて説
明します。
■ VCC3C 端子におけるより大きなキャパシタンス
VCC3C 端子における 10µF のキャパシタンスと平行して , 10µF のキャパシタンスを接
続すると , 内部電圧変化が大幅に抑制されます。キャパシタンスを追加するだけで ,
48 MHz の PLL 周波数までの動作が可能です。
電圧降下または電圧サージを減少させるために追加する外部キャパシタは , 以下の手
続きを使用することで省略できます。
■ クロックの滑らかな起動と停止
すべてのクロック(CLKB, CLKT, CLKP)を, 低周波数から直接目標とする周波数に切り
換えるのではなく , いくつかの段階的に切り換えることができます。
低周波数動作から戻すときも , またいくつかの段階的に切り換えることができます。
低速クロック動作と高速クロック動作との遷移間に , スリープモードは , 電流消費を減
らすために利用されます。
■ 不調を避ける推奨対策
表 5.9-2 に不調を避ける推奨対策を示します。
表 5.9-2 不調を避ける推奨対策
PLL 周波数設定
64 MHz
( さらにデータシートに記述された実行モード
の消費電流 / 電力の制限を参照してください )
186
推奨対策
最大周辺温度 : 70 ℃
最小動作電圧 : 4.75V
10µF のキャパシタンスとスタートアップ /
シャットダウンルーチンの追加
48 MHz
10µF のキャパシタンス , またはスタートアップ /
シャットダウンルーチンの追加
32 MHz
10µF のキャパシタンス , またはシャットダウン
ルーチンの追加
24 MHz
10µF のキャパシタンス , またはスタートアップ /
シャットダウンルーチンの追加
16 MHz
10µF のキャパシタンス , またはスタートアップ /
シャットダウンルーチンの追加
第 5 章 クロック生成とデバイス状態
5.9.3
クロック変調器
キャリブレーションエラーを避けるために , クロック変調器は , 上記の動作周波数の変
更記述による電圧降下の間は開始できません。目標値のクロック周波数を設定するオ
ペレーションとクロック変調器の活性化の間に , 10µs の待ち時間を挿入することを推
奨します。
クロック変調については「第 6 章 クロック変調器」を参照してください。
187
第 5 章 クロック生成とデバイス状態
5.9.4
手続き
推奨するスムーズなスタートとストップの手続きを実行する方法は , 以下を参照して
ください。
PLL を切り換える機能は , 以下のコマンドシーケンスで実行可能です。
・外部バスとリソースバスの周波数を低くします。
・タイムベースカウンタ (TBC) の起動と割込みを初期化して有効にします。
・スリープモードに切り換え , 直ちにクロックソースとして発振器を選択し , PLL をオ
フにします。
・タイムベースカウンタ割込みによって , スリープモードから復帰させます。
・タイムベースタイマ割込みを無効にします。
・タイムベースカウンタ (TBC) の起動と割込みを初期化して有効にします。
・PLL の要因を増加させます。
・スリープモードへの切換えと , クロックソースとして PLL を選択します。
・タイムベースカウンタ割込みによって , スリープモードから復帰させます。
・タイムベースタイマ割込みを無効にします。
・外部バスとリソースバスの周波数を高くします。
PLL が有効になり , PLL がクロックソースとして選択されたとき , コントローラはス
リープモードに入ります。タイムベースタイマの完了後にランモードに復帰します。
図 5.9-1 も参照してください。
188
第 5 章 クロック生成とデバイス状態
図 5.9-1 PLL 切換え処理の流れ
PLL設定の変更
*
*
*
*
内容をセーブする
割込みレベルを下げる
クロックモジュレータを電源オフにする
バス周波数を下げる
NO
PLLクロックソースか?
YES
*
*
*
*
TBCを有効にする
クロックソースを発振器に切り換える
クロックソースとしてPLLを無効にする
スリープモードに切り換える
TBC割込み
スリープ
* PLL オフに切り換える
* FMWTを 1(待ち状態)に設定する
NO
PLLをオンにするか?
YES
*
*
*
*
TBCを有効にする
FMWTレジスタを設定する
PLL周波数を設定する
PLLをオンにする
ロックタイム
タイムアップしたか?
NO
YES
* クロックソースとしてPLLを有効にする
* スリープモードに切り換える
TBC割込み
スリープ
* DIVR0レジスタを設定する
* 割込みレベルをリストアする
* 内容をリストアする
アプリケーションへ復帰
189
第 5 章 クロック生成とデバイス状態
5.10
クロック制御部が持つ周辺回路
クロック制御部が持つ周辺回路機能について説明します。
■ クロック制御部が持つ周辺回路
クロック制御部には, 26ビット長タイムベースカウンタがあり, システムベースクロッ
クで動作しています。タイムベースカウンタは , 発振安定待ち時間をカウントするとと
もに , 以下の用途にも使用します。
• ウォッチドッグタイマ
ウォッチドッグタイマは , 一定の時間が経過すると , 初期化リセット (INIT) 設定の
要求を生成することにより , ソフトウェアまたはハードウェアの異常動作を検出し
ます。
• タイムベースタイマ
タイムベースカウンタ出力を用いて , インターバル割込みを生成させます。
以降に , これらの機能について説明します。
190
第 5 章 クロック生成とデバイス状態
5.10.1
タイムベースカウンタ
タイムベースカウンタの以下の機能について説明します。
• ウォッチドッグタイマ
• タイムベースタイマ
■ ウォッチドッグタイマ
ウォッチドッグタイマは , タイムベースカウンタ出力を用いた暴走検出用タイマです。
プログラムまたはハードウェアの暴走などが原因となり , 設定 ( 指定 ) したインターバ
ルの間にウォッチドッグリセット生成遅延が行われなくなると , ウォッチドッグタイ
マは , 設定初期化リセット (INIT) 要求をウォッチドッグリセットとして生成させます。
[ ウォッチドッグタイマの起動と設定周期 ]
ウォッチドッグタイマは , リセット (RST) 後 , 最初の RSRR( リセット要因レジスタ /
ウォッチドッグタイマ制御レジスタ ) への書込みにより起動します。このとき , ウォッ
チドッグタイマのインターバル時間を , bit9, bit8 (WT1, WT0 ビット ) を使用して設定し
ます。最初の書込みで設定したインターバル時間だけが有効です。以降の書込みで設
定したインターバル時間はすべて無効になります。
[ ウォッチドッグリセットの生成遅延 ]
ウォッチドッグタイマの起動後は , 当該プログラムにおいて , 定期的に {A5H} , {5AH}
の順で CTBR( タイムベースカウンタクリアレジスタ ) へのデータ書込みを行う必要が
あります。このデータ書込み時に , ウォッチドッグリセット生成フラグは初期化されま
す。
[ ウォッチドッグリセットの生成 ]
ウォッチドッグリセット生成フラグは , 設定したインターバル時間のタイムベースカ
ウンタ出力の立下りエッジにより設定されます。
2 度目の立下りエッジ検出時に本フラグが設定されたままである場合 , ウォッチドッグ
タイマは , 設定初期化リセット (INIT) 要求をウォッチドッグリセットとして生成させ
ます。
[ ウォッチドッグタイマの停止 ]
ウォッチドッグタイマの起動後は , 動作初期化リセット(RST)が生成するまでは停止で
きません。
RST が生成する以下の条件においては , プログラムによって再起動されるまで , ウォッ
チドッグタイマは停止しています。
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
• 発振安定待ちリセット (RST) 状態
• ハードウェアスタンバイ状態
[ ウォッチドッグタイマの一時停止 ( 自動生成の遅延 )]
CPU プログラムの動作が停止すると , ウォッチドッグタイマは , ウォッチドッグリセッ
ト生成フラグを初期化して , ウォッチドッグリセットの生成を遅延させます。プログラ
ムの動作が停止しているときは , プログラムが以下の状態のいずれかになっています。
191
第 5 章 クロック生成とデバイス状態
• スリープ状態
• 停止状態
• 発振安定待ち実行状態
• I- バス ( 命令バス ) または D- バス ( データバス ) への DMA の転送
(MB91FV360GA, MB91F365GB/F366GB/F367GB/F368GB, MB91366GA, MB91F369G
のみ )
• I- バス領域へのデータアクセス (IRAM モードでの I - RAM または I キャッシュ )
(MB91FV360GA, MB91F365GB/F366GB/F367GB/F368GB, MB91366GA, MB91F369G
のみ )
• D- バス RAM からの命令の獲得
(MB91FV360GA, MB91F365GB/F366GB/F367GB/F368GB, MB91366GA, MB91F369G
のみ )
• エミュレータデバッガを用いたプログラムのブレーク (MB91FV360GA のみ )
• モニタデバッガを用いたプログラムのブレーク (MB91FV360GA のみ )
• INTE 命令の実行から RETI 命令の実行までの時間 (MB91FV360GA のみ )
• ステップトレーストラップモード (PS レジスタの T フラグ = 1) で 1 命令ごとにブ
レーク (MB91FV360GA のみ )
• EDSU を用いたプログラムのブレーク (MB91F364G, MB91F376G のみ )
• エミュレーションモード
タイムベースカウンタをクリアすると , ウォッチドッグリセット生成フラグも初期化
され , ウォッチドッグリセットの生成が遅延されます。
システムの暴走により上記状態となってしまった場合 , ウォッチドッグリセットが発
生しない可能性があります。その場合 , 外部 INITX 端子よりリセット (INITX) をかけ
てください。
■ タイムベースタイマ
タイムベースタイマは , タイムベースカウンタ出力を用いたインターバルの割込み生
成用タイマです。本タイマは , PLL ロック待ち時間 , およびサブクロック発振安定待ち
時間など , 最大で { ベースクロック × 227} サイクルの比較的長時間をカウントするの
に適しています。
設定したインターバルのタイムベースカウンタ出力の立下りエッジを検出すると , タ
イムベースタイマは , タイムベースタイマ割込み要求を生成させます。
[ タイムベースタイマの起動とインターバル設定 ]
タイムベースタイマは , TBCR( タイムベースカウンタ制御レジスタ ) の bit13 ∼
bit11(TBC2, TBC1, TBC0 ビット ) を使用してインターバル時間を設定します。
設定したインターバルに対応するタイムベースカウンタ出力の立下りエッジは常に検出
されていますので , インターバル時間を設定したら , bit15(TBIF ビット ) をクリアし ,
bit14(TBIE ビット ) を "1" に設定して , 割込み要求出力を許可してください。
インターバル時間を変更する場合は , あらかじめ bit14(TBIE ビット ) を "0" に設定し ,
割込み要求出力を禁止してください。
タイムベースカウンタは常にカウントを行っており , これらの設定値に影響されます。
正確なインターバル割込み時間を得るためには , タイムベースカウンタをクリアして
192
第 5 章 クロック生成とデバイス状態
から割込みを許可してください。そうしない場合 , 割込みを許可した直後に割込み要求
が生成されることがあります。
[ プログラムによるタイムベースカウンタのクリア ]
CTBR にデータを {A5H}, {5AH} の順序で書き込むと , {5AH} の書込み直後に , タイム
ベースカウンタのビットはすべて "0" にクリアされます。{A5H} の書込みと {5AH} の
書込みの間に時間の制限はありません。
ただし , {A5H} の書込み後 , {5AH} 以外のデータを書き込むと , {A5H} を再度書き込ま
ない限り , {5AH} を書き込んでもタイムベースカウンタはクリアされません。
タイムベースカウンタをクリアすると , ウォッチドッグリセット生成フラグが初期化
され , ウォッチドッグリセットの生成が遅延されます。
[ デバイス状態遷移時のタイムベースカウンタのクリア ]
以下のデバイス状態の遷移時には , タイムベースカウンタのビットはすべて同時に "0"
にクリアされます。
• 停止状態
• 設定初期化リセット (INIT) 状態
• ハードウェアスタンバイ状態
特に停止状態では , タイムベースカウンタが発振安定待ち時間のカウントに使用され
るため , 意図しないタイムベースタイマのインターバル割込みが生成することがあり
ます。そのため , 停止モードを設定する前には , タイムベースタイマ割込みを禁止し ,
タイムベースタイマを使用しないでください。
ほかの状態においては , 動作初期化リセット (RST) が生成されるため , タイムベースタ
イマ割込みは自動的に禁止されます。
193
第 5 章 クロック生成とデバイス状態
5.11
デバイス状態の制御
FR50 のデバイスの状態 , およびその制御について説明します。
■ デバイスの状態
FR50 のデバイスには , 以下の動作状態があります。
• 実行状態 ( 通常動作 )
• スリープ状態
• 停止状態
• ハードウェアスタンバイ状態
• 発振安定待ち実行状態
• 発振安定待ちリセット (RST) 状態
• 動作初期化リセット (RST) 状態
• 設定初期化リセット (INIT) 状態
各状態の詳細 , および遷移については , 以降に説明します。
194
第 5 章 クロック生成とデバイス状態
5.11.1
デバイスの状態と遷移
FR50 ファミリのデバイスには , 以下の動作状態があります。
■ 実行状態 ( 通常動作 )
プログラム実行状態です。すべての内部クロックが供給され , すべての回路が動作可能
な状態です。
ただし, 16ビット周辺回路バスのバスクロックは, 周辺回路バスのアクセスがない場合
は停止しています。
各状態の遷移要求を受け付けますが , 同期リセットモードの場合 , 通常のリセットモー
ドの場合とでは , 要求に対する状態遷移の応答が一部異なります。詳細については ,
「2.9.5 リセットモード」を参照してください。
■ スリープ状態
プログラム停止状態です。プログラムの動作により , 状態が遷移します。
スリープ状態では , CPU プログラムの実行のみが停止し , リソースは動作可能な状態で
す。命令キャッシュは停止し , DMA コントローラからの要求がない限り , 各種内部メ
モリと , 内部バス , および外部バスは停止状態です。
有効な割込み要求が生成されると , スリープ状態はクリアされ , 実行状態 ( 通常動作 )
に遷移します。
設定初期化リセット (INIT) 要求が生成されると , 設定初期化リセット (INIT) 状態に遷
移します。
動作初期化リセット (RST) 要求が生成されると , 動作初期化リセット (RST) 状態に遷移
します。
ハードウェアスタンバイ要求が生成されると , ハードウェアスタンバイ状態に遷移し
ます。
■ 停止状態
デバイスは停止状態です。プログラムの動作により , 状態が遷移します。
停止状態では , 内部回路も内部クロックもすべて停止し , 発振回路と PLL も適切な設
定により停止させることができます。
また設定により , 外部端子 ( 除外される外部端子もあります ) をハイインピーダンス状
態にすることもできます。
特定の有効な割込み要求 ( クロックを使用しない ) が生成されると , 発振安定待ち実行
状態に遷移します。
設定初期化リセット (INIT) 要求が生成されると , 設定初期化リセット (INIT) 状態に遷
移します。
動作初期化リセット (RST) 要求が生成されると , 発振安定待ちリセット (RST) 状態に遷
移します。
ハードウェアスタンバイ要求が生成されると , ハードウェアスタンバイ状態に遷移し
ます。
195
第 5 章 クロック生成とデバイス状態
■ ハードウェアスタンバイ状態
デバイスは停止状態です。外部 HSTX 端子への "L" レベル入力 ( ハードウェアスタン
バイ要求 ) により , ハードウェアスタンバイ状態に遷移します。
ハードウェアスタンバイ状態では , 内部回路も内部クロックもすべて停止します。また ,
発振回路 , および PLL も停止します。
内部回路には設定初期化リセット (INIT) が供給されます。
外部端子 ( 除外される外部端子もあります ) は , 一律にハイインピーダンス状態になり
ます。
外部 HSTX 端子への "H" レベル入力または外部 INITX 端子への "L" レベル入力により ,
設定初期化リセット (INIT) 状態に遷移します。
■ 発振安定待ち実行状態
デバイスは停止状態です。停止状態からの復帰後 , 本状態に遷移します。
クロック生成制御部 ( タイムベースカウンタとデバイス状態の制御部 ) 以外の内部回路
はすべて停止します。内部クロックもすべて停止しますが , 発振回路 , および動作許可
されていた PLL は動作します。
停止状態などにおける外部端子のハイインピーダンス制御はクリアされます。
設定 ( 指定 ) した発振安定待ち時間の経過後 , 実行状態 ( 通常動作 ) に遷移します。
設定初期化リセット (INIT) 要求が生成すると , 設定初期化リセット (INIT) 状態に遷移
します。
動作初期化リセット (RST) 要求が生成すると , 発振安定待ちリセット (RST) 状態に遷移
します。
ハードウェアスタンバイ要求が生成すると , ハードウェアスタンバイ状態に遷移しま
す。
■ 発振安定待ちリセット (RST) 状態
デバイスは停止状態です。停止状態または設定初期化リセット (INIT) 状態からの復帰
後 , 本状態に遷移します。
クロック生成制御部 ( タイムベースカウンタとデバイス状態の制御部 ) 以外の内部回路
はすべて停止します。内部クロックもすべて停止しますが , 発振回路 , および動作許可
されていた PLL は動作します。
停止状態などにおける外部端子のハイインピーダンス制御はクリアされます。
内部回路に対し , 動作初期化リセット (RST) を出力します。
設定した発振安定待ち時間の経過後 , 発振安定待ちリセット (RST) 状態に遷移します。
設定初期化リセット (INIT) 要求が生成すると , 設定初期化リセット (INIT) 状態に遷移
します。
ハードウェアスタンバイ要求が生成すると , ハードウェアスタンバイ状態に遷移しま
す。
196
第 5 章 クロック生成とデバイス状態
■ 動作初期化リセット (RST) 状態
プログラムは初期化状態です。本状態に遷移するのは , 動作初期化リセット (RST) 要求
が受け付けられた場合 , もしくは発振安定待ちリセット (RST) 状態が完了した場合で
す。
CPU プログラムの実行は停止し , プログラムカウンタは初期化されます。周辺回路は
一部を除き初期化されます。
すべての内部クロックと発振回路 , および動作許可されていた PLL は動作します。
内部回路に対し , 動作初期化リセット (RST) を出力します。
動作初期化リセット (RST) 要求が解除されると , 実行状態 ( 通常動作 ) に遷移し , 動作
初期化リセットシーケンスを実行します。設定初期化リセット (INIT) 状態からの復帰
後だった場合は , 設定初期化リセットシーケンスが実行されます。
設定初期化リセット (INIT) 要求が生成すると , 設定初期化リセット (INIT) 状態に遷移
します。
ハードウェアスタンバイ要求が生成すると , ハードウェアスタンバイ状態に遷移しま
す。
■ 設定初期化リセット (INIT) 状態
全設定初期化状態です。本状態に遷移するのは , 設定初期化リセット (INIT) 要求が受
け付けられた場合またはハードウェアスタンバイ状態が終了した場合です。
CPU プログラムの実行は停止し , プログラムカウンタは初期化されます。リソースは
すべて初期化されます。発振回路は動作しますが , PLL は停止します。外部 INITX 端
子に "L" レベル入力が行われている間はすべての内部クロックが停止しますが , それ以
外では動作します。
内部回路に対し , 設定初期化リセット (INIT), および動作初期化リセット (RST) を出力
します。
設定初期化リセット (INIT) 要求が解除されると , 本状態はクリアされ , 発振安定待ちリ
セット (RST) 状態に遷移します。その後 , 動作初期化リセット (RST) 状態に遷移し , 設
定初期化リセットシーケンスを実行します。
197
第 5 章 クロック生成とデバイス状態
5.11.2
各状態遷移要求の優先順位
いかなる状態においても , 各状態遷移要求は以下の優先順位に従います。ただし , 特
殊な状態でしか生成しない要求もあり , そういうものについては該当する状態でし
か有効になりません。
■ 各状態遷移要求の優先順位
以下に各状態遷移要求の優先順位を示します。
優先順位は , 1) の優先度が最も高く , 7) にいくほど優先度が低くなります。
1. 設定初期化リセット (INIT) 要求
2. ハードウェアスタンバイ要求
3. 発振安定待ち時間の終了 ( 発振安定待ちリセット状態 , および発振安定待ち実行状
態のみ生成 )
4. 動作初期化リセット (RST) 要求
5. 有効な割込み要求 ( 実行 , スリープ , および停止状態のみ生成 )
6. 停止モード要求 ( レジスタに書込み )( 実行状態のみ生成 )
7. スリープモード要求 ( レジスタに書込み )( 実行状態のみ生成 )
198
第 5 章 クロック生成とデバイス状態
5.12
低消費電力モード
FR50 のデバイスの各低消費電力モード , およびその使用法について説明します。
■ 低消費電力モード
FR50 のデバイスの低消費電力モードには , 以下の 3 つがあります。
• スリープモード
レジスタへの書込みにより , デバイスをスリープ状態にします。
• 停止モード
レジスタへの書込みにより , デバイスを停止状態にします。
• ハードウェアスタンバイモード
外部 HSTX 端子への "L" レベル入力により , デバイスをハードウェアスタンバイ状
態にします。
以降に , 各モードの詳細を示します。
199
第 5 章 クロック生成とデバイス状態
5.12.1
スリープモード
ここでは , 低消費電力モードのうち , スリープモードについて説明します。
■ スリープモード
STCR( スタンバイ制御レジスタ ) の bit6(SLEEP ビット ) に "1" を書き込むと , スリープ
モードとなり , スリープ状態へ遷移します。スリープ状態から復帰する要因が生成する
までは , スリープ状態を維持します。
STCR( スタンバイ制御レジスタ ) の bit7(STOP ビット ) と bit6(SLEEP ビット ) の両方に
"1" を書き込むと , bit7(STOP ビット ) が bit6(SLEEP ビット ) より優先されて , 停止状態
に遷移します。
スリープ状態については , 「5.10.1 タイムベースカウンタ」を参照してください。
[ スリープ状態で停止する回路 ]
• CPU プログラム実行
• 命令キャッシュ
• データキャッシュ
• ビットサーチモジュール (DMA 転送が生成すると動作します。)
• 各種内部メモリ (DMA 転送が発生すると動作します。)
• 内部 / 外部バス (DMA 転送が発生すると動作します。)
[ スリープ状態で動作する回路 ]
• 発振回路
• 動作許可された PLL
• クロック生成制御部
• 割込みコントローラ
• リソース
• DMA コントローラ
• DSU
[ スリープ状態からの復帰要因 ]
• 有効な割込み要求
CPU の ILM にて設定したレベルを超える割込み要求が生成された場合 , スリープ
モードはクリアされ , 実行状態 ( 通常動作 ) に遷移します。
CPU の ILM にて設定したレベル以下の割込み要求が生成された場合 , スリープモー
ドはクリアされません。
• 設定初期化リセット (INIT) 要求
設定初期化リセット (INIT) 要求が生成された場合 , 設定初期化リセット (INIT) 状態
に遷移します。
• ハードウェアスタンバイ要求
ハードウェアスタンバイ要求が生成された場合 , ハードウェアスタンバイ状態に遷
移します。
200
第 5 章 クロック生成とデバイス状態
• 動作初期化リセット (RST) 要求
動作初期化リセット (RST) 要求が生成した場合 , 動作初期化リセット (RST) 状態に
遷移します。
<注意事項>
各要因の優先順位については , 「5.11.2 各状態遷移要求の優先順位」を参照してく
ださい。
[ 通常スタンバイ動作 , および同期スタンバイ動作 ]
TBCR( タイムベースカウンタ制御レジスタ ) の bit8(SYNCS ビット ) を "1" に設定する
と , 同期スタンバイ動作が許可されます。本状態において SLEEP ビットに書き込むだ
けでは , スリープ状態には遷移しません。SLEEP ビットへの書込み後 , STCR レジスタ
の読出しがあれば , スリープ状態に遷移します。
SYNCS ビットを "0" に設定すると , 通常スタンバイ動作となり , SLEEP ビットへの書
込みのみで , スリープ状態に遷移します。
通常スタンバイ動作の許可時 , 周辺回路クロック (CLKP) の分周比が CPU クロック
(CLKB) に比べて大きい場合 , 実際に SLEEP ビットへの書込みが行われるまでに , 多く
の命令が実行されます。
このため , SLEEP ビットへの書込み命令後 , {5 + (CPU クロック分周比 )/( 周辺回路ク
ロック分周比 )} 命令以上の NOP 命令を配置しないと , 後続の命令がスリープ状態に遷
移する前に実行されてしまいます。
同期スタンバイ動作時 , 実際の SLEEP ビットへの書込み後 , STCR レジスタの読出しが
完了するまでは , スリープ状態に遷移しません。CPU に STCR レジスタの読出し値が
格納されるまでは , CPU がバスを使用しているからです。
このため , CPU クロック (CLKB), および周辺回路クロック (CLKP) の分周比の設定にか
かわりなく , SLEEP ビットへの書込み命令と STCR レジスタへの読出し命令の後に ,
NOP 命令を 2 つ配置すれば , スリープ状態に遷移する前の後続命令の実行を防ぐこと
ができます。
201
第 5 章 クロック生成とデバイス状態
5.12.2
停止モード /RTC モード
ここでは , 低消費電力モードのうち , 停止モード /RTC モードについて説明します。
■ 停止モード /RTC モード
STCR( スタンバイ制御レジスタ ) の bit7(STOP ビット ) に "1" を書き込むと , 停止モー
ドが許可されます。停止状態から復帰する要因が生成されるまで , 停止状態を維持しま
す。
STCR( スタンバイ制御レジスタ ) の bit7(STOP ビット ) と bit6(SLEEP ビット ) の両方に
"1" を書き込むと , bit7(STOP ビット ) が bit6(SLEEP ビット ) より優先されて , 停止状態
に遷移します。
停止状態については , 「5.10.1 タイムベースカウンタ」を参照してください。
[ ストップモードへの移行 ]
ストップモードに入れる場合は , 同期スタンバイモード (TBCR: タイムベースカウンタ
制御レジスタの bit8:SYNCS ビットにて設定します ) を使用したうえで , 以下のシーケ
ンスを必ず使用してください。
/*STCR ライト */
ldi
#_STCR,R0
;STCR レジスタ (0481H)
ldi
#_Val_of_Stdy,ri
;Val_of_Stdy は ,STCR へのライトデータ
std
rl,@r0
;STCR へのライト
/*STBR ライト */
ldi
#_CTBR,r2
;CTBR レジスタ (0483H)
ldi
#0xA5,rl
; クリアコマンド (1)
stb
rl,@r2
;CTBR への A5 ライト
ldi
#0xA5,rl
; クリアコマンド (2)
stb
rl,@r2
;CTBR への A5 ライト
/* ここでタイムベースカウンタクリア */
ldub
@r0,rl
;STCR リード
/* 同期スタンバイ遷移開始 */
ldub
nop
nop
nop
nop
nop
202
@r0,rl
;STCR ダミーリード
; タイミング調整用の NOP × 5
第 5 章 クロック生成とデバイス状態
[ 停止状態で停止する回路 ]
• 停止するように設定した発振回路
STCR( スタンバイ制御レジスタ ) の bit0(OSCD1 ビット ) を "1" に設定してあるとき ,
停止状態中のメインクロック用発振回路を停止状態にします。
• 動作許可されていない PLL または停止するように設定した発振回路に接続された
PLL
STCR( スタンバイ制御レジスタ ) の bit0(OSCD1 ビット ) を "1" に設定してあるとき ,
CLKR( クロックソース制御レジスタ ) の bit10(PLL1EN ビット ) に "1" が設定して
あっても停止状態中のメインクロック用 PLL を停止状態にします。
• 下記以外のすべての内部回路 :
[ 停止状態で停止しない回路 ]
• 停止しないように設定した発振回路
STCR( スタンバイ制御レジスタ ) の bit1(OSCD1 ビット ) を "0" に設定してあるとき ,
発振回路は停止状態において停止しません。本モードは , RTC モードともよびます。
• 動作許可した PLL または停止しないように設定した発振回路に接続された PLL
STCR( スタンバイ制御レジスタ ) の bit0(OSCD1 ビット ) を "0" に設定してあるとき ,
CLKR( クロックソース制御レジスタ ) の bit10(PLL1EN ビット ) に "1" が設定してあ
ると , 停止状態中のメインクロック用 PLL は停止しません。
[ 停止状態における端子のハイインピーダンス制御 ]
STCR( スタンバイ制御レジスタ ) の bit5(HIZ ビット ) を "1" に設定すると , 停止状態に
おける端子出力が , ハイインピーダンス状態になります。ハイインピーダンス制御の対
象となる端子については , 「付録 C CPU の各状態における端子の状態」を参照してく
ださい。
STCR( スタンバイ制御レジスタ ) の bit5(HIZ ビット ) を "0" に設定すると , 停止状態に
おける端子出力は , 停止状態になる前の値を保持します。詳細については , 「付録 C
CPU の各状態における端子の状態」を参照してください。
203
第 5 章 クロック生成とデバイス状態
[ 停止モードからの復帰要因 ]
• クロックを必要としない有効な割込み要求の生成
要求のタイプを "H" に設定した外部割込み入力端子 (INT0 ∼ INT7) のみが有効です。
CPU の ILM にて設定したレベルを超える割込み要求が生成した場合 , 停止モードは
クリアされ , 実行状態 ( 通常動作 ) に遷移します。
CPU の ILM にて設定したレベル以下の割込み要求が生成した場合 , 停止モードはク
リアされません。
• 設定初期化リセット (INIT) 要求
設定初期化リセット (INIT) 要求が生成した場合 , 設定初期化リセット (INIT) 状態に
遷移します。
• ハードウェアスタンバイ要求
ハードウェアスタンバイ要求が生成した場合 , ハードウェアスタンバイ状態に遷移
します。
• 動作初期化リセット (RST) 要求
動作初期化リセット (RST) 要求が生成した場合 , 動作初期化リセット (RST) 状態に
遷移します。
<注意事項>
各要因の優先順位については , 「5.11.2 各状態遷移要求の優先順位」を参照してく
ださい。
[ 停止モードでのクロックソース選択 ]
メインクロック (X クロック ) の 2 分周をソースクロックとして選択してから , 停止モー
ドを設定してください。詳細については ,「5.3 PLL 制御」を参照してください。
分周比設定の制限事項については , 通常動作の場合と同様です。
[ 通常スタンバイ動作 , および同期スタンバイ動作 ]
TBCR( タイムベースカウンタ制御レジスタ ) の bit8(SYNCS ビット ) を "1" に設定して
ある場合 , 同期スタンバイ動作が許可されます。本状態において , STOP ビットへの書
込みのみでは , スリープ状態には遷移しません。STOP ビットに書込み後 , STCR レジ
スタの読み出すことにより , 停止状態に遷移します。
SYNCS ビットを "0" に設定すると , 通常スタンバイ動作が許可されます。本状態にお
いて , STOP ビットに書込みを行うと , 停止状態に遷移します。
通常スタンバイ動作時 , 周辺回路クロック (CLKP) の分周比が CPU クロック (CLKB) に
比べて大きい場合 , 実際に STOP ビットに書込みが行われるまでに , 多くの命令が実行
されます。
このため , STOP ビットへの書込み命令後 , {5 + (CPU クロック分周比 )/( 周辺回路ク
ロック分周比 )} 命令以上の NOP 命令を配置しないと , 後続の命令が停止状態への遷移
前に実行されてしまいます。
同期スタンバイ動作時は , 実際の STOP ビットへの書込み後 , STCR レジスタの読出し
が完了するまでは , 停止状態に遷移しません。STCR レジスタの読出し値が CPU に格
納されるまでは , CPU がバスを使用しているからです。
このため , CPU クロック (CLKB), および周辺回路クロック (CLKP) の分周比の設定にか
かわりなく , STOP ビットへの書込み命令と STCR レジスタへの読出し命令の後に NOP
命令を2つ配置すれば, 停止状態に遷移する前の後続命令の実行を防ぐことができます。
204
第 5 章 クロック生成とデバイス状態
5.12.3
ハードウェアスタンバイモード
ここでは , 低消費電力モードのうち , ハードウェアスタンバイモードについて説明し
ます。
■ ハードウェアスタンバイモード
外部 HSTX 端子への "L" レベル入力時 , ハードウェアスタンバイ要求が生成し , ハード
ウェアスタンバイ状態に遷移します。その後 "L" レベルの入力が行われている間は ,
ハードウェアスタンバイ状態を保持します。
ハードウェアスタンバイ状態については ,「5.10.1 タイムベースカウンタ」を参照して
ください。
[ ハードウェアスタンバイ状態で停止する回路 ]
• すべての発振回路
• すべての PLL
• すべての内部回路
[ ハードウェアスタンバイ状態で停止しない回路 ]
• なし
[ ハードウェアスタンバイ状態における端子のハイインピーダンス制御 ]
ハードウェアスタンバイ状態では , 端子からの出力はハイインピーダンス状態になり
ます。ハイインピーダンス制御の対象となる端子については , 「付録 C CPU の各状態
における端子の状態」を参照してください。
[ ハードウェアスタンバイモードからの復帰要因 ]
• 外部 HSTX 端子への "H" レベル入力
ハードウェアスタンバイ要求が解除されると , 設定初期化リセット (INIT) 状態に遷
移します。
• 外部 INITX 端子への "L" レベル入力による設定初期化リセット (INIT)
設定初期化リセット (INIT) 要求が外部 INITX 端子により生成した場合 , 設定初期化
リセット (INIT) 状態に遷移します。ハードウェアスタンバイ状態においては , 他の
設定初期化リセット (INIT) 要求は生成しません。
<注意事項>
各要因の優先順位については , 「5.11.2 各状態遷移要求の優先順位」を参照してく
ださい。
[ 通常リセット , および同期リセット ]
TBCR( タイムベースカウンタ制御レジスタ ) の bit9(SYNCR ビット ) を "1" に設定して
ある場合 , 同期リセットが許可されます。この場合 , ハードウェアスタンバイ要求が受
け付けられても , 内部バスがアクセスされている間は , ハードウェアスタンバイ状態に
遷移しません。
詳細については , 「2.9.5 リセットモード」を参照してください。
SYNCR ビットを "0" に設定してある場合 , 通常リセットが許可されます。この場合 ,
ハードウェアスタンバイ要求が受け付けられると , 内部バスアクセスの動作状態にか
205
第 5 章 クロック生成とデバイス状態
かわりなく , ハードウェアスタンバイ状態に遷移します。
詳細については , 「2.9.5 リセットモード」を参照してください。
■ スタンバイモードでの動作
表 5.12-1 に , スタンバイモードでの動作を示します。
表 5.12-1 スタンバイモードでの動作
内部クロック
モード
遷移状態
発振器
PLL
実行
-
○
スリープ
STCR の
SLEEP=1
RTC
リソース
端子
解除方法
○
○
動作中
-
×
○
○
動作中
割込み要求
RST, INIT
*2
×
×
×
*1
割込み要求
RST, INIT
×
×
×
×
×
*1
割込み要求
RST, INIT
HSTX=0
×
×
×
×
×
Hi-Z
HSTX=1
リセット
(RST)
RST
○
○
レジスタにリセット (RST) を適用
Hi-Z
リセット
(INIT)
INIT
○
×
レジスタにリセット (INIT) を適用
Hi-Z
CPU/
内部バス
DMA/
周辺回路
○
○
○
○
STCR の
STOP=1,
OSCD1=0
○
停止
STCR の
STOP=1,
OSCD1=1
ハードウェア
スタンバイ
○ : 動作中 , × : 停止中 , Hi-Z: ハイインピーダンス
RST: 外部リセット端子 (RSTX)=0, ソフトウェアリセット (STCR レジスタの SRST ビット =0), パ
ワーダウンリセット
INIT:外部リセット端子 (INITX)=0, ハードウェアスタンバイからの復帰 , ウォッチドッグリセット
*1: STCR の HIZ が "0" である場合は , 以前の状態を保持します。HIZ が "1" である場合は , Hi-Z
となります。
*2: RTC 状態に入る前に PLL のスイッチをオフにする必要があります。
206
第 5 章 クロック生成とデバイス状態
■ スタンバイモードの状態遷移図
図 5.12-1 に , スタンバイモードの状態遷移図を示します。
図 5.12-1 スタンバイモードの状態遷移図
電源オン
(10)
(8)
(7)
ハードウェア
スタンバイモード
(7)
(7)
発振安定待ち
リセット状態
(3)
(9)
設定初期化
リセット
(INIT)状態
(10)
(1)
(7)
(7)
(10)
動作初期化
リセット
(RST)状態
発振安定待ち
実行状態
(1)
(3)
(10)
(2)
(5)
(3)
(3)
(10)
停止モード
RTCモード
(6)
(7)
(4)
(7)
(10)
実行モード
(5)
スリープモード
(3)
(10)
(2) リセット解除
(6) STCRレジスタのSTOP= 1
OSCD1= 0 の場合は,RTCモードへ遷移
OSCD1= 1 の場合は,STOPモードへ遷移
(3) リセット(RST)
(7) ハードウェアスタンバイ入力
(4) STCRレジスタのSLEEP= 1
(8) ハードウェアスタンバイ解除
(5) 割込み入力
(9) INITXの解除
(1) 発振安定遅延時間完了
(10) リセット(INIT)
207
第 5 章 クロック生成とデバイス状態
5.12.4
4 MHz RTC モードから実行モードへの移行
低消費電力モードのうち , ハードウェアスタンバイモードについて説明します。
■ ハードウェアスタンバイモード
MB91360 シリーズは , 2 つの電源を持っています。1 つは , ストップモードと RTC モー
ドで使用され , 他の 1 つは , 実行モードで使用されます。
ストップモード /RTC モードから実行モードへ移るとき , 実行モード用電源はスイッチ
オンとなり , 通常 12µs 後 , 他方の電源はスイッチオフとなります。
ストップモードから実行モード , または 32 kHz RTC モードから実行モードへの移行が
あった場合 , 4 MHz 発振器を起動する必要があり , また特定の発振安定時間を適用する
必要があります。これらの場合 , 実行モード用電源がスイッチオンされた後 , 内部ク
ロックが開始することに注意してください。
このことは , 4 MHz RTC モードから実行モードへ移行した場合は異なります。この場
合は 4MHz 発振器が既に動作しています。
4 MHz RTC モードから実行モードへ以下の条件で移行した場合 , 誤動作をする恐れが
あります。
• 電源電圧が 4.75V 未満
• VCC3C 端子に接続されたコンデンサが 4.7µF 未満
• 最小発振安定時間である 1µs に設定
この設定では , 実行モード用電源が完全にスイッチオンされる前に , 内部クロックが動
作し始めることになります。電圧降下が VCC3C 端子で確認できます。
この問題は,上記に示した条件のすべてを満たしていないことを確認することで回避で
きます。すなわち
• 4.75V 以上の電源電圧を使用すること。
• VCC3C 端子に 4.7µF 以上のコンデンサを接続すること。
また , 実行モードで PLL を有効にする際での問題を回避するために , より大きな容
量のコンデンサの使用を推奨します。
• STCR レジスタの OS1 ビットと OS0 ビットに 1ms の発振安定時間を意味する "01"
を設定するなどして , より大きい発振安定時間を選択すること。
208
第6章
クロック変調器
クロックモジュレータとその機能の概要について
解説します。レジスタ構成およびクロックモジュ
レータの動作について , 解説します。
6.1 クロック変調器の概要
6.2 レジスタ動作
6.3 その他の設定
209
第 6 章 クロック変調器
6.1
クロック変調器の概要
クロックモジュレータは , クロック信号のスペクトラムを広範囲の周波数に拡散す
ることにより , 電磁波障害 (EMI) を低減します。
このモジュールには , PLL 回路から提供される , 周波数 F0 の標準クロック ( 非変調 ) が適
用されます。標準クロックの周波数は , ランダム信号によって変調します。すなわち , 変
調クロックの各クロック・パルス幅は , ランダムに決定されます。
図 6.1-1 変調クロックの周波数スペクトラム ( 基本波のみ )
変調範囲
F min
F0
F max
周波数
■ 変調度および周波数解像度
変調クロックの最大および最小周波数 (Fmax および Fmin) は , 変調度パラメータに
よって適格に定義されます。さらに , 変調範囲の解像度は , Low ∼ High の 3 段階から
選択できます。高い解像度では , 変調クロック・スペクトラムの拡散周波数の粒度が細
かくなりますが , 利用できる変調度が制限されます。
通常 , 設定可能な最大周波数解像度と最大変調度の組み合わせによって , 最大の EMI
低減効果が得られます。ただし , 解像度が低い場合 , 変調度の高低を調整することに
よって , より良い EMI 低減効果が得られる場合があります。付録の利用可能な設定表
を参照してください。
変調クロックの平均周波数は , 標準クロックの周波数 F0 です。
■ キャリブレーション・ユニット
モジュレータは , 16 MHz ∼ 48 MHz の入力周波数に対応します。このため , モジュー
ルには , キャリブレーション・ユニットが内蔵されています。キャリブレーション処理
は, ソフトウェアによって開始することも, ハードウェアによって自動的に開始 (推奨)
することもできます。
モジュレータが有効になっている場合は , ソフトウェアからキャリブレーション処理
を開始しなければなりません。通常の運用時は , 自動キャリブレーション機能によっ
て , キャリブレート済みのモジュレータが調整されます。自動キャリブレーション・イ
ベントの頻度は , 自動キャリブレーション・リロード・タイマの値で設定できます。
■ CAN プリスケーラ
CAN モジュールには非変調の動作クロックが必要なため , モジュレータによって , 変
調クロックの他にも非変調クロックが供給されます。
この CAN クロックは , CAN クロック・プリスケーラを介して , 拡張可能です。
■ オブザーバ
外部 MONCLK 端子で , 一部の内部クロック信号を監視できます。モジュレータ・モ
ジュールは , 目的の信号を選択するためのマルチプレクサを提供します。
この CAN クロックは , CAN クロック・プリスケーラを介して , 拡張可能です。
詳細については , 富士通マイクロエレクトロニクスにお問い合わせください。
210
第 6 章 クロック変調器
6.2
レジスタ動作
クロック・モジュレータ・レジスタを一覧表示し , 各レジスタの機能について解説
します。
アドレス
レジスタ
+0
+1
+2
+3
000164H
CMCR [R/W]
11111111 00000000
CMPR [R/W]
----1001 1---0001
000168H
CMLS0 [R/W]
01110111 11111111
CMLS1 [R/W]
01110111 11111111
00016CH
CMLS2 [R/W]
01110111 11111111
CMLS3 [R/W]
01110111 11111111
000170H
CMLT0 [R/W]
-----100 00000010
CMLT1 [R/W]
11110100 00000010
000174H
CMLT2 [R/W]
-----100 00000010
CMLT3 [R/W]
-----100 00000010
000178H
CMAC [R/W]
11111111 1111111
CMTS [R]
--000001 01111111
ブロック
クロック変調
211
第 6 章 クロック変調器
6.2.1
制御レジスタ (CMCR)
コントロールレジスタ (CMCR) には , 以下の機能があります。
・モジュレータ許可 / 禁止
・MONCLK 端子許可
・出力クロックの選択 ( テスト専用 )
・キャリブレーションの開始
・乱数ジェネレータの初期化
・R-bus レジスタ許可 / 禁止
・CAN プリスケーラの有効化 / 無効化
・CAN プリスケーラ値
<注意事項>
プリスケーラが無効になっている場合は , プリスケーラ値 PRE (CMCRH レジスタ )
のみを書き込みます。
bit
アドレス : 000165H
アクセス
初期値
7
6
5
4
3
2
1
0
PRES CDSBLE IRNG CAL MSEL MTST SCLK MSRT
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
R/W
0
[bit7] PRES : CAN プリスケーラの有効化 / 無効化
0
CAN プリスケーラ禁止 ( 初期値 )
1
CAN プリスケーラ許可
CAN プリスケーラのスケーリング・ファクタは , CMCRH の PRE ビットによって設
定されます。
プリスケーラが無効になっている場合, CANCLK の出力極性は"1"に設定されます。
[bit6] CDSBLE : R- バス・レジスタの有効化 / 無効化
0
すべての R- バス・レジスタを有効にします ( 初期値 ) 。
1
CMCR レジスタの CDSBLE ビットを除くすべての R- バス・レジスタを無効
にします。
CDSBLE ビットは , レジスタへの予期せぬ書込みアクセスを回避するための安全機
能です。
レジスタが無効になっている場合は , 読出しアクセスのみが可能です。すなわち ,
レジスタは書込み保護されています。
212
第 6 章 クロック変調器
<注意事項>
• R- バス・レジスタがロックされている場合 , ソフトウェア・キャリブレーション
要求は実行できません。
• モジュレータの起動時は , 常にソフトウェア・キャリブレーション要求を実行す
る必要があります (CAL ビットの解説を参照 ) 。モジュレータの起動時に
CDSBLE ビットが設定されている場合は , キャリブレーションが要求され , キャ
リブレーションが完了しても , ハードウェアによって CAL ビットを "0 " にリセッ
トすることはできません。CAL は " 1" のままになります。
この結果 , 自動 ( ハードウェア ) キャリブレーションが開始できなくなるため , モ
ジュレータのキャリブレーションは実行されません。
この結果 , 自動 ( ハードウェア ) キャリブレーションが開始できなくなるため , モ
ジュレータのキャリブレーションは実行されません。ソフトウェアによって開始
されたキャリブレーションが完了した後は , 自動キャリブレーションが有効に
なっている場合でも , レジスタ・ロックを設定できます。
[bit5] IRNG : 乱数ジェネレータの初期化
IRNG は乱数ジェネレータを初期化します。
0
乱数ジェネレータは初期化されています。
1
乱数ジェネレータが初期化されます。
このビットは , ソフトウェアによってのみ設定できます。初期化が完了すると , ハー
ドウェアによってビットがクリアされます。
乱数ジェネレータを初期化するには , モジュレータの起動時 (MSRT ビット ) , IRNG
を設定する必要があります。
ソフトウェアによって設定された "0" は無視されます。リードモディファイライト
(RMW)系命令の読出しサイクルでは " 0" が返されます。
[bit4] CAL : キャリブレーションの開始
このビットは , モジュレータのキャリブレーション ( ソフトウェアによるキャリブ
レーション要求 ) を開始し , キャリブレーションの完了を表示します。
0
遅延チェーンがキャリブレートされます ( 初期値 ) 。
1
キャリブレーションの開始
CAL はソフトウェアによってのみ設定できます。キャリブレーションが完了する
と , ハードウェアによって CAL がクリアされます。
調整開始時にキャリブレーション処理を開始するには , モジュレータの起動時
(MSRT ビット ) に CAL を設定する必要があります。
ソフトウェアによって設定された "0 " は無視されます。リードモディファイライト
(RMW)系命令の読出しサイクルでは "0" が返されます。
CDSBLE ビットによって R- バス・レジスタがロックされている場合は , SW キャリ
ブレーション要求を実行できません。
213
第 6 章 クロック変調器
<注意事項>
ソフトウェアから開始した (CAL ビット ) キャリブレーション処理の実行中は , モ
ジュレータを OFF にしないでください。
CAL ビットは , ソフトウェアによって開始されたキャリブレーション処理が実行中
であることを示します。ハードウェアによって自動開始されたキャリブレーション
処理の状態は , CAL ビットの設定では示されません。
キャリブレーション中 , 出力は非変調クロックに自動設定されます。
キャリブレーションに要する時間は , 44 × T0 です。
(T0 = 入力クロック期間 , F0 = 入力クロック周波数 )
F0 [MHz]
T0 [ns]
キャリブレーションに要する時間
16
62.5
2.75 µs
32
31.25
1.375 µs
48
20.83
0.916 µs
[bit3] MSEL : テストクロック選択
<注意事項>
0
テスト端子への信号は変調クロックです ( 初期値 ) 。
1
テスト端子への信号は , CMLT1 レジスタの OBS ビットで選択します。
MSEL 信号は同期していません。したがって , 切換え中に TESTCLK 端子で障害が
発生する可能性があります。
[bit2] MTST : Testclk 端子 MONCLK 許可
0
MONCLK 端子は無効です ( 初期値 ) 。
1
MONCLK 端子は許可。
TESTCLK 端子へのテスト信号は , CMLT1 レジスタの MSEL ビットおよび OBS
ビットで選択できます。
[bit1] SCLK : クロック選択
このビットは , 出力クロックを選択します。
0
出力 = 非変調クロック ( 初期値 )
1
出力 = 変調クロック
このビットはテスト用 ( すなわち , コアのクロックが非変調である場合に , モジュ
レータを起動する際に使用 ) です。
モジュレータの動作中にこのビットを変更しても , ソフトウェアまたはハードウェ
アによるキャリブレーションの次回実行時まで , 変更は反映されません。
214
第 6 章 クロック変調器
通常の運用時は , モジュレータ起動用の MSRT と同時に , SCLK を設定するか , モ
ジュレータの起動時には SCLK が既に設定されていなければなりません。
このビットの設定にかかわらず , モジュレータを OFF にすると , 出力クロックは自
動的に非変調クロックに変更されます。
[bit0] MSRT : モジュレータの起動
このビットは , モジュレータを有効 / 無効にします。
0
モジュレータを有効にします ( 初期値 )。
1
モジュレータを無効にします。
モ ジ ュ レ ー タ の 起 動 に 先 立 ち , す べ て の 構 成 レ ジ ス タ (CMPR, CMLT, CMLS,
CMAC) を設定する必要があります。
モジュレータの起動時 , キャリブレーション処理を開始し , 乱数ジェネレータを初
期化するには , CAL ビットおよび IRNG ビットを設定する必要があります。
出力クロックを変調クロックに設定するには , SCLK ビットを "1" に設定します。
SCLK が "0" の場合は , モジュレータの起動後も出力クロックは非変調クロックの
ままです。
<注意事項>
ソフトウェアから開始した (CAL ビット ) キャリブレーション処理の実行中は , モ
ジュレータを OFF にしないでください。
ソフトウェアから開始したキャリブレーション処理が完了すると , CAL ビットがク
リアされます。ソフトウェアから開始したキャリブレーション処理の完了後は , モ
ジュレータを OFF にできます。
<注意事項>
以下の操作を実行する前は , 必ずクロックモジュレータを OFF にしてください。
・PLL 周波数の変更
・PLL の OFF ( 省電力モード時など )
PLL からのクロック信号が安定した後 (PLL ロック後 ) , モジュレータを ON にでき
ます。
bit
アドレス : 000164H
アクセス
初期値
15
14
13
12
11
10
9
8
PRE7 PRE6 PRE5 PRE4 PRE3 PRE2 PRE1 PRE0
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
R/W
1
215
第 6 章 クロック変調器
[bit15 ∼ bit8] PRE7 ∼ PRE0 (CAN Prescaler Value) : CAN プリスケーラ値
CAN プリスケーラ用の値。CAN モジュールのクロックは , 次の方程式によって決
定されます。
CANCLK * =
F0
PRE+1
F0= 非変調入力クロック (PLL の出力または X0 発振器 )
初期値 : PRE=255, CANCLK=F0/256
*: CANCLK は CAN モジュール内で 2 で割られます。
<注意事項>
プリスケーラが無効になっている場合は , プリスケーラ値 PRE (CMCRH レジスタ )
のみを書込みます。
CANCLK は , CMCRL の PRES ビットによって有効化されます。
プリスケーラが無効になっている場合 , CANCLK の出力極性は "1" に設定されます。
CLK
CANCLK
PRE=0
CANCLK
PRE=1
CANCLK
PRE=2
SCANPREEN
(同期CLK)
CANCLK の立下りエッジは , CLK の立下りエッジによってのみ設定されます。
CLK で立上りまたは立下りエッジが設定されると , CANCLK で立上りエッジが設
定されます。
CANCLK は常に立下りエッジで開始されます。
SCANPREEN: CMCR レジスタ の内部同期されている PRES ビット (bit7)
CAN プリスケーラ許可
CLK: 非変調入力クロック (PLL の出力または X0 発振器 )
216
第 6 章 クロック変調器
6.2.2
変調パラメータレジスタ (CMPR)
変調パラメータレジスタ (CMPR) は変調度を決定します。
<注意事項>
モジュレータが OFF になっている場合は , このレジスタの書込みだけを実行しま
す。すなわち , まずモジュレータの構成を行い , その後 , CMCR:MRST ビットでモ
ジュレータを有効化します。
入力周波数および周波数解像度に応じて , 複数の変調度を選択できます。可能なレジス
タ設定については , 付録を参照してください。通常 , 設定可能な最大周波数解像度と最
大変調度の組み合わせによって , 最大の EMI 低減効果が得られます。ただし , 解像度
を低くし , 変調度を高く設定することによって , より良い EMI 低減効果が得られる場
合があります。
レジスタ
アドレス
初期値
プログラミング値
CMPR
000166H
0xF9F1
「6.3.4 可能な設定」参照
217
第 6 章 クロック変調器
6.2.3
周波数解像度設定レジスタ (CMLS0 ∼ CMLS3)
CMLS レジスタは , 変調範囲の周波数解像度を決定します。
<注意事項>
モジュレータが OFF になっている場合は , このレジスタの書込みだけを実行しま
す。すなわち , まずモジュレータの構成を行い , その後 , CMCR:MRST ビットでモ
ジュレータを有効化します。
変調範囲内の周波数解像度は , Low ∼ High の 3 段階に設定できます。高い解像度では ,
変調クロック・スペクトラムの拡散周波数の粒度が細かくなりますが , 利用できる変調
度が制限されます。通常 , 設定可能な最大周波数解像度と最大変調度の組合せによって ,
最大の EMI 低減効果が得られます。ただし , 解像度が低い場合 , 変調度の高低を調整
することによって , より良い EMI 低減効果が得られる場合があります。
常に , CMLS0 は 0xF800, CMLS1 は 0xFF04 に設定します。CMLS2 および CMLS3 の値
は , 目的の周波数解像度によって異なります。
「6.3.4 可能な設定」の利用可能な設定表
を参照してください。
218
レジスタ
アドレス
初期値
プログラミング値
CMLS0
000168H
0x77FF
0xF800
CMLS1
00016AH
0x77FF
0xFF04
CMLS2
00016CH
0x77FF
「6.3.4 可能な設定」参
照
CMLS3
00016EH
0x77FF
「6.3.4 可能な設定」参
照
第 6 章 クロック変調器
6.2.4
乱数ジェネレータおよび監視レジスタ
(CMLT0 ∼ CMLT3)
乱数ジェネレータは CMLT0 ∼ CMLT3 によって設定されます。CMLT1 には , 監視
コントロールレジスタも含まれます。
<注意事項>
モジュレータが OFF になっている場合は , このレジスタの書込みだけを実行しま
す。すなわち , まずモジュレータの構成を行い , その後 , CMCR:MRST ビットでモ
ジュレータを有効化します。
次の表のレジスタ値を用いて , 乱数ジェネレータの構成を行う必要があります。
レジスタ
アドレス
初期値
プログラミング値
CMLT0
000170H
0xFC02
0xF602
CMLT1
000172H
0xF402
0xS602
CMLT2
000174H
0xFC02
0xF602
CMLT3
000176H
0xFC02
0xF602
OBS[3:0] → 後述のコントロールレジスタ
監視コントロールレジスタは CMLT1 にあります。
bit
アドレス : 0000 0172H
アクセス
初期値
bit
アドレス : 0000 0173H
アクセス
初期値
15
OBS3
R/W
1
14
OBS2
R/W
1
13
OBS1
R/W
1
12
OBS0
R/W
1
11
LT11
R/W
0
10
LT10
R/W
1
9
LT9
R/W
0
8
LT8
R/W
0
7
LT7
R/W
0
6
LT6
R/W
0
5
LT5
R/W
0
4
LT4
R/W
0
3
LT3
R/W
0
2
LT2
R/W
0
1
LT1
R/W
1
0
LT0
R/W
0
CMLT1H
CMLT1L
[bit15 ∼ bit12] OBS : 監視
これらのビットは CMLT1 レジスタに設定されます。初期値は 1111B です。
OBS[3:0] によって , MONCLK 端子の出力が選択されます。MONCLK 端子で内部信
号を監視するには , CMCR レジスタの MTST ビットによって , これを有効にする必
要があります。
監視可能な信号を OBS ビットで決定するには , CMCR の MSEL を"1"に設定する必
要があります。それ以外の場合は , MONCLK で変調クロックが監視されます。
<注意事項>
OBS 信号は同期していません。したがって , 切換え中に MONCLK 端子で障害が発
生する可能性があります。
MONCLK 端子は端子ドライバで駆動します。したがって , この端子で測定された周
波数スペクトラムは , 内部クロック信号のスペクトラムを反映していません。
219
第 6 章 クロック変調器
以下の内部信号を監視できます。
OBS[3:0]
CMCR:
MSEL
2 進数
0
dddd
1
0000
1
16 進数
MB91F362GB,
MB91F369GA
監視可能な信号
MB91FV360GA,
MB91F364G,
MB91F366GB,
MB91F368GB
MB91F365GB,
MB91F367GB
変調クロック
変調クロック
変調クロック
0
非変調クロック (PLL)
非変調クロック (PLL)
非変調クロック (PLL)
0001
1
リザーブ
4 MHz 発振器
4 MHz 発振器
1
0010
2
4 MHz 発振器
32 kHz 発振器
"L" レベル
1
0011
3
CAN クロック
CAN クロック
CAN クロック
1
else
4-14
リザーブ
リザーブ
リザーブ
1
1111
15
自動キャリブレー
ション・タイマ・
パルス
自動キャリブレー
ション・タイマ・
パルス
自動キャリブレー
ション・タイマ・
パルス
レジェンド : d = 任意の値
220
第 6 章 クロック変調器
6.2.5
自動キャリブレーション・リロード・タイマ値
(CMAC)
このレジスタには , 自動キャリブレーション・リロード・タイマのリロード値が含
まれています。
<注意事項>
モジュレータが OFF になっている場合は , このレジスタの書込みだけを実行しま
す。すなわち , まずモジュレータの構成を行い , その後 , CMCR:MRST ビットでモ
ジュレータを有効化します。
bit
アドレス : 0000 0178H
アクセス
初期値
bit
アドレス : 0000 0179H
アクセス
初期値
15
RELF
R/W
1
14
RELE
R/W
1
13
RELD
R/W
1
12
RELC
R/W
1
11
RELB
R/W
1
10
RELA
R/W
1
9
REL9
R/W
1
8
REL8
R/W
1
7
REL7
R/W
1
6
REL6
R/W
1
5
REL5
R/W
1
4
REL4
R/W
1
3
REL3
R/W
1
2
REL2
R/W
1
1
REL1
R/W
1
0
REL0
R/W
1
CMACH
CMACL
自動キャリブレーション・リロード・タイマは , tCAL ( 時間 ) の間隔で , モジュレータ
の新規キャリブレーションを開始します。tCAL の計算には , 次の方程式を使用します。
2047 ×リロード値
tCAL=
F0
次の表は , 異なる入力周波数で可能な最大キャリブレーション間隔 ( リロード値 =
0xFFFF) を示したものです。キャリブレーション中はモジュレータが非変調クロック
に変更されるため , キャリブレーション間隔 tCAL は 1 秒以上に設定しなければなりま
せん。
F0( 入力クロック )
tCAL 最大値
キャリブレーションに要する時間
16 MHz
8.39 s
3µs
32 MHz
4.19 s
1.5µs
48 MHz
2.8 s
1µs
221
第 6 章 クロック変調器
6.2.6
ステータスレジスタ (CMTS)
ステータスレジスタには , キャリブレーション・ユニットの エラーフラグ ELF およ
び EHF が含まれています。
<注意事項>
ほかのすべてのビットは予備であり , 読出し専用です。
bit
アドレス : 0000 017AH
アクセス
初期値
bit
アドレス : 0000 017BH
アクセス
初期値
15
14
−
R
1
−
R
1
13
ELF
R
0
12
EHF
R
0
11
10
9
8
−
R
0
−
R
0
−
R
0
−
R
1
7
6
5
4
3
2
1
0
−
R
0
−
R
1
−
R
1
−
R
1
−
R
1
−
R
1
−
R
1
−
R
1
CMTSH
CMTSL
[bit13] ELF : 低入力周波数エラーフラグ
入力周波数が低すぎるためにモジュレータのキャリブレーションが実行できない
場合 , ELF エラーフラグが設定されます。クロックモジュレータの誤動作を回避す
るには , 入力周波数を上げます。
キャリブレーション処理の最後に , 状態が確認されます。フラグは , 新規キャリブ
レーション処理が開始されるたびにクリアされます。エラーフラグは読出し専用で
す。
0
キャリブレーション中にエラーなし
1
キャリブレーション中にエラー発生 - 入力周波数が低すぎる
[bit12] EHF : 高入力周波数エラーフラグ
入力周波数が高すぎるためにモジュレータのキャリブレーションが実行できない
場合 , EHF エラーフラグが設定されます。クロックモジュレータの誤動作を回避す
るには , 入力周波数を下げます。
キャリブレーション処理の最後に , 状態が確認されます。フラグは , 新規キャリブ
レーション処理が開始されるたびにクリアされます。エラーフラグは読出し専用で
す。
222
0
キャリブレーション中にエラーなし
1
キャリブレーション中にエラー発生 - 入力周波数が高すぎる
第 6 章 クロック変調器
6.3
その他の設定
適用例および可能なレジスタ設定については , 「6.3.4 可能な設定」を参照してくだ
さい。
223
第 6 章 クロック変調器
6.3.1
変調パラメータの選択
特定の EMI 低減効果を得るための特定の変調パラメータ設定はありません。最適な設
定は , 実際の用途 , システム全体および要件によって異なります。
変調パラメータの設定を最適化するには , 以下の推奨事項を参照してください。
(1) 必要な性能に応じて , 必要な PLL 周波数を定義します。
例えば 32 MHz
(2) 最大解像度および最大変調度を用いて設定します。
例えば 解像度 : 中 , 変調度 : 2
(3) EMI 測定を実行します。
(4) EMI 測定が要件を満たさなかった場合 , 同じ周波数解像度で変調度を下げるか , 周
波数解像度を下げて変調度を上げます。
例えば解像度 : 中 , 変調度 : 1 または解像度 : 低 , 変調度 :5
(5) 新しい設定を用いて (3) を繰り返し , 最良の設定が得られるまで続けます。
224
第 6 章 クロック変調器
6.3.2
構成フローチャート
PLL クロックの安定
NO
YES
乱数ジェネレータコントロールレジスタの設定
(CMLT レジスタ )
周波数解像度の設定
(CMLS レジスタ )
変調パラメータの設定
(CMPR レジスタ )
自動キャリブレーション リロード値の設定
(CMAC レジスタ )
CAN プリスケーラの設定
(CMCR レジスタ )
変調器 起動
変調器 稼動中
変調器 停止
(CMCR レジスタ )
PLL 不可
225
第 6 章 クロック変調器
6.3.3
プログラム例
次のアセンブラ・プログラム例に , クロックモジュレータの設定方法および起動方法
を示します。最初にモジュレータの設定を実行し , 最後にモジュレータを起動します。
・ まず , CMLT コントロールレジスタを必要な値に設定します。監視セレクタは , 初
期値 0xF のままにしておきます。
・ 周波数解像度を中 に設定します。
・変調度の設定は , 選択した周波数解像度に応じて , 16 MHz 入力クロック用に 3 種
類 , 24 MHz 用に 2 種類 , 32 MHz 用に 2 種類 , 40 MHz 用に 1 種類あります ( 可
能な設定については「6.3.4 可能な設定」) 。入力クロックが 32MHz の場合は ,
変調度 2 を選択します ( 周波数域 23.273 MHz ∼ 51.2 MHz) 。
・ 自動キャリブレーション・タイマ・リロード値を 0xFFFF に設定します (32 MHz
入力クロックでのキャリブレーション間隔 4.192 s に対応 ) 。
・ 最後に , クロックモジュレータを起動します。同時に , CAN プリスケーラを 3
(CANCLK=input_clock/4) に設定します。MONCLK 端子は無効のままにしておき
ます。モジュレータが起動されると同時に , キャリブレーションが開始され (CAL
ビット ) , 乱数ジェネレータが初期化されます (IRNG ビット ) 。
// control register CMLT
ldi
#0xF802,r0
ldi
#CMLT0,r1
ldi
#CMLT1,r2
ldi
#CMLT2,r3
ldi
#CMLT3,r4
sth
r0,@r1
sth
r0,@r2
sth
r0,@r3
sth
r0,@r4
// frequency resolution register CMLS
ldi
#0xF800,r0
ldi
#0xFF04,r1
ldi
#0xF813,r2
ldi
#0x0000,r3
ldi
#CMLS0,r4
ldi
#CMLS1,r5
ldi
#CMLS2,r6
ldi
#CMLS3,r7
sth
r0,@r4
sth
r1,@r5
sth
r2,@r6
sth
r3,@r7
// modulation parameter register CMPR
ldi
#0x0A82,r0
ldi
#CMPR,r1
sth
r0,@r1
// calibration reload timer CMAC = 0xFFFF
ldi
#0xFFFF,r0
ldi
#CMAC,r1
sth
r0,@r1
226
第 6 章 クロック変調器
// control register CMCR
// set CAN-prescaler = 3 (CANCLK=input_CLK/4), enable CAN clock
// disable MONCLK pin
// start clock modulator
ldi
#0x03B3,r0
ldi
#CMCR,r1
sth
r0,@r1
.
.
.
// stop clock modulator
// CAN clock remains enabled
ldi
#0x0380,r0
ldi
#CMCR,r1
sth
r0,@r1
227
第 6 章 クロック変調器
可能な設定
6.3.4
F0 = 入力周波数
Fmax = 変調範囲の上限
Fmin = 変調範囲の下限
<注意事項>
変調クロックの実際の最大周波数は , 表示されている周波数の Fmax より高い場合
があります。同様に , 実際の最小周波数は , Fmin より低い場合があります。変調ク
ロックの絶対最大周波数は 64 MHz 未満です。
228
F0
[MHz]
周波数解像度
変調度
Fmin
[MHz]
Fmax
[MHz]
CMLS2
CMLS3
CMPR
16
低
1
15.059
17.067
0x0000
0x0000
0x0F81
16
低
2
14.222
18.286
0x0000
0x0000
0x0E82
16
低
3
13.474
19.692
0x0000
0x0000
0x0D83
16
低
4
12.800
21.333
0x0000
0x0000
0x0C84
16
低
5
12.190
23.273
0x0000
0x0000
0x0B85
16
低
6
11.636
25.600
0x0000
0x0000
0x0A86
16
低
7
11.130
28.444
0x0000
0x0000
0x0987
16
低
8
10.667
32.000
0x0000
0x0000
0x0888
16
低
9
10.240
36.571
0x0000
0x0000
0x0789
16
低
10
9.846
42.667
0x0000
0x0000
0x068A
16
中
1
13.474
19.692
0xF813
0x0000
0x0D81
16
中
2
11.636
25.600
0xF813
0x0000
0x0A82
16
中
3
10.240
36.571
0xF813
0x0000
0x0783
16
高
1
11.130
28.444
0xF813
0xFF84
0xF9F1
24
低
1
22.588
25.600
0x0000
0x0000
0x0F81
24
低
2
21.333
27.429
0x0000
0x0000
0x0E82
24
低
3
20.211
29.538
0x0000
0x0000
0x0D83
24
低
4
19.200
32.000
0x0000
0x0000
0x0C84
24
低
5
18.286
34.909
0x0000
0x0000
0x0B85
24
低
6
17.455
38.400
0x0000
0x0000
0x0A86
24
低
7
16.696
42.667
0x0000
0x0000
0x0987
24
低
8
16.000
48.000
0x0000
0x0000
0x0888
24
中
1
20.211
29.538
0xF813
0x0000
0x0D81
24
中
2
17.455
38.400
0xF813
0x0000
0x0A82
24
高
1
16.696
42.667
0xF813
0xFF84
0xF9F1
32
低
1
30.118
34.133
0x0000
0x0000
0x0F81
32
低
2
28.444
36.571
0x0000
0x0000
0x0E82
第 6 章 クロック変調器
F0
[MHz]
周波数解像度
変調度
Fmin
[MHz]
Fmax
[MHz]
CMLS2
CMLS3
CMPR
32
低
3
26.947
39.385
0x0000
0x0000
0x0D83
32
低
4
25.600
42.667
0x0000
0x0000
0x0C84
32
低
5
24.381
46.545
0x0000
0x0000
0x0B85
32
低
6
23.273
51.200
0x0000
0x0000
0x0A86
32
中
1
26.947
39.385
0xF813
0x0000
0x0D81
32
中
2
23.273
51.200
0xF813
0x0000
0x0A82
40
低
1
37.647
42.667
0x0000
0x0000
0x0F81
40
低
2
35.556
45.714
0x0000
0x0000
0x0E82
40
低
3
33.684
49.231
0x0000
0x0000
0x0D83
40
中
1
33.684
49.231
0xF813
0x0000
0x0D81
48
低
1
45.176
51.200
0x0000
0x0000
0x0F81
低
2
42.667
54.857
0x0000
0x0000
0x0E82
48
229
第 6 章 クロック変調器
230
第7章
I/O ポート
I/O ポートの概要とレジスタの一覧を示し , 外部端
子を I/O ポートとして使用するための条件について
説明します。
7.1 I/O ポートとレジスタ構成
7.2 ポート機能レジスタ (PFR) の設定
231
第 7 章 I/O ポート
7.1
I/O ポートとレジスタ構成
MB91360 シリーズでは , 周辺回路が使用していない端子を I/O ポートとして使用す
ることができます。本項では , I/O ポートの基本ブロックダイヤグラム ( 構造図 ) と
レジスタ構成の一覧を示します。
■ ポート基本ブロックダイヤグラム
MB91360 シリーズには , 以下の 3 種類の I/O ポートレジスタがあります。
• ポートデータレジスタ (PDR)
• ポート機能レジスタ (PFR)
• データ方向レジスタ (DDR)
図 7.1-1 に I/O ポートの基本ブロックダイヤグラムを示します。
図 7.1-1 I/O ポートの基本ブロックダイヤグラム
ポートバス
周辺回路入力
PDR 読出し
0
周辺回路出力
PDR
1
1
端子
0
PFR
DDR
PDR:ポートデータレジスタ
DDR:データ方向レジスタ
PFR:ポート機能レジスタ
■ レジスタの構成と機能
I/O ポートレジスタは , ポートデータレジスタ (PDR), データ方向レジスタ (DDR), およ
びポート機能レジスタ (PFR) から構成されています。
PDR のビットは , DDR と PFR のビットに対応しています。同様に , レジスタビットは
ポート端子に対応しています。
ポートデータレジスタにはポート I/O データが含まれており , データ方向レジスタは ,
対応するビット ( 端子 ) が入力であるのか , 出力であるのかを指定します。"0" に設定
されたビットは入力であり , "1" に設定されたビットは出力です。ポート機能レジスタ
は , ポートが周辺回路ポートとして使用されるのか , I/O ポートとして使用されるのか
を指定します。通常 , "0" に設定されたビットは I/O ポートを意味し , "1" に設定された
ビットは機能ポートを意味します。
● 入力モード (DDR=0)
• PDR リード : 対応する外部端子の信号レベルが読み出されます。
• PDR ライト : PDR に設定値が書き込まれます。
● 出力モード (DDR=1)
• PDR リード : PDR の値が読み出されます。
• PDR ライト : PDR の値が , 対応する外部端子に出力されます。
232
第 7 章 I/O ポート
● ポートデータレジスタ (PDR)
ポートデータレジスタ (PDR) の構成を図 7.1-2 に示します。
図 7.1-2 ポートデータレジスタの構成
PDR7
アドレス :
7
6
5
4
3
2
1
0
P77
P76
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
P81
P80
7
6
5
4
3
2
1
0
P97
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
PG7
PG6
PG5
PG4
PG3
PG2
PG1
PG0
7
6
5
4
3
2
1
0
PH7
PH6
PH5
PH4
PH3
PH2
PH1
PH0
7
6
5
4
3
2
1
0
00000012H
PI7
−
−
−
PI3
−
−
−
7
6
5
4
3
2
1
0
00000013H
PJ7
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
PJ0
7
6
5
4
3
2
1
0
00000014H
PK7
PK6
PK5
PK4
PK3
PK2
PK1
PK0
7
6
5
4
3
2
1
0
00000015H
PL7
PL6
PL5
PL4
PL3
PL2
PL1
PL0
7
6
5
4
3
2
1
0
00000016H
−
−
−
−
PM3
PM2
PM1
PM0
7
6
5
4
3
2
1
0
00000017H
−
−
PN5
PN4
PN3
PN2
PN1
PN0
7
6
5
4
3
2
1
0
00000018H
PO7
PO6
PO5
PO4
PO3
PO2
PO1
PO0
7
6
5
4
3
2
1
0
00000019H
PP7
PP6
PP5
PP4
PP3
PP2
PP1
PP0
7
6
5
4
3
2
1
0
−
PQ5
PQ4
PQ3
PQ2
PQ1
PQ
00000007H
PDR8
アドレス :
00000008H
PDR9
アドレス :
00000009H
PDRB
アドレス :
0000000BH
PDRG
アドレス :
00000010H
PDRH
アドレス :
00000011H
PDRI
アドレス :
PDRJ
アドレス :
PDRK
アドレス :
PDRL
アドレス :
PDRM
アドレス :
PDRN
アドレス :
PDRO
アドレス :
PDRP
アドレス :
PDRQ
アドレス :
0000001AH
−
7
6
5
4
3
2
1
0
0000001BH
PR7
PR6
PR5
PR4
PR3
PR2
PR1
PR0
7
6
5
4
3
2
1
0
0000001CH
PS7
PS6
PS5
PS4
PS3
PS2
PS1
PS0
7
6
5
4
3
2
1
0
−
PT5
PT4
PT3
PT2
PT1
PT0
PDRR
アドレス :
PDRS
アドレス :
PDRT
アドレス :
0000001DH
−
初期値
1111XXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXX1B
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
X---X---B
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
----XXXXB
アクセス
R/W
初期値
--XXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
--XXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
XXXXXXXXB
アクセス
R/W
初期値
--XXXXXXB
アクセス
R/W
233
第 7 章 I/O ポート
● データ方向レジスタ (DDR)
データ方向レジスタ (DDR) の構成を図 7.1-3 に示します。
図 7.1-3 データ方向レジスタの構成
DDR7
アドレス : 00000607H
7
P77
6
P76
5
P75
4
P74
3
P73
2
P72
1
P71
0
P70
初期値 アクセス
00000000B R/W
DDR8
アドレス : 00000608H
7
P87
6
P86
5
P85
4
P84
3
P83
2
P82
1
P81
0
P80
初期値 アクセス
00000000B R/W
DDR9
アドレス : 00000609H
7
P97
6
P96
5
P95
4
P94
3
P93
2
P92
1
P91
0
P90
初期値 アクセス
00000000B R/W
DDRB
アドレス : 0000060BH
7
PB7
6
PB6
5
PB5
4
PB4
3
PB3
2
PB2
1
PB1
0
PB0
初期値 アクセス
00000000B R/W
DDRG
アドレス : 00000400H
7
PG7
6
PG6
5
PG5
4
PG4
3
PG3
2
PG2
1
PG1
0
初期値 アクセス
PG0 00000000B R/W
DDRH
アドレス : 00000401H
7
PH7
6
PH6
5
PH5
4
PH4
3
PH3
2
PH2
1
PH1
0
PH0
DDRI
アドレス : 00000402H
7
6
5
4
2
1
0
−
−
−
−
3
PI3
−
−
−
DDRJ
アドレス : 00000403H
7
PJ7
6
PJ6
5
PJ5
4
PJ4
3
PJ3
2
PJ2
1
PJ1
0
PJ0
初期値 アクセス
00000000B R/W
DDRK
アドレス : 00000404H
7
PK7
6
PK6
5
PK5
4
PK4
3
PK3
2
PK2
1
PK1
0
PK0
初期値 アクセス
00000000B R/W
DDRL
アドレス : 00000405H
7
PL7
6
PL6
5
PL5
4
PL4
3
PL3
2
PL2
1
PL1
0
PL0
初期値 アクセス
00000000B R/W
DDRM
アドレス : 00000406H
7
6
5
4
−
−
−
−
3
PM3
2
PM2
1
PM1
0
PM0
初期値 アクセス
----0000B
R/W
DDRN
アドレス : 00000407H
7
6
−
−
5
PN5
4
PN4
3
PN3
2
PN2
1
PN1
0
PN0
初期値 アクセス
--000000B
R/W
DDRO
アドレス : 00000408H
7
PO7
6
PO6
5
PO5
4
PO4
3
PO3
2
PO2
1
PO1
0
初期値 アクセス
PO0 00000000B R/W
DDRP
アドレス : 00000409H
7
PP7
6
PP6
5
PP5
4
PP4
3
PP3
2
PP2
1
PP1
0
PP0
初期値 アクセス
00000000B R/W
DDRQ
アドレス : 0000040AH
7
6
−
−
5
PQ5
4
PQ4
3
PQ3
2
PQ2
1
PQ1
0
PQ0
初期値 アクセス
--000000B
R/W
DDRR
アドレス : 0000040BH
7
PR7
6
PR6
5
PR5
4
PR4
3
PR3
2
PR2
1
PR1
0
PR0
初期値 アクセス
00000000B R/W
DDRS
アドレス : 0000040CH
7
PS7
6
PS6
5
PS5
4
PS4
3
PS3
2
PS2
1
PS1
0
PS0
初期値 アクセス
00000000B R/W
DDRT
アドレス : 0000040DH
7
6
−
−
5
PT5
4
PT4
3
PT3
2
PT2
1
PT1
0
PT0
初期値 アクセス
--000000B
R/W
234
初期値 アクセス
00000000B R/W
初期値
----0---B
アクセス
R/W
第 7 章 I/O ポート
● ポート機能レジスタ (PFR)
ポート機能レジスタ (PFR) の構成を図 7.1-4 に示します。
図 7.1-4 ポート機能レジスタの構成
PFR7
アドレス : 00000617H
PFR8
アドレス : 00000618H
PFR9
アドレス : 00000619H
PFRB
アドレス : 0000061BH
PFR27
アドレス : 00000627H
PFRG
アドレス : 00000410H
PFRH
7
6
5
4
3
2
1
0
P77
P76
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
P87
P86
P85
P84
P83
P82
−
−
7
6
5
4
3
2
1
0
P97
P96
P95
P94
P93
P92
P91
P90
7
6
5
4
3
2
1
0
PB7
PB6
PB5
PB4
PB3
PB2
PB1
PB0
7
6
5
4
3
2
1
0
P77
P76
P75
P74
P73
P72
P71
P70
7
6
5
4
3
2
1
0
PG7
PG6
PG5
PG4
PG3
PG2
PG1
PG0
7
6
5
4
3
2
1
0
PH7
PH6
PH5
PH4
PH3
PH2
PH1
PH0
PFRI
7
6
5
4
3
2
1
0
アドレス : 00000412H
−
−
−
−
PI3
−
−
−
アドレス : 00000411H
PFRJ
アドレス : 00000413H
PFRK
アドレス : 00000414H
PFRL
7
6
5
4
3
2
1
0
PJ7
PJ6
PJ5
PJ4
PJ3
PJ2
PJ1
PJ0
7
6
5
4
3
2
1
0
PK7
PK6
PK5
PK4
PK3
PK2
PK1
PK0
7
6
5
4
3
2
1
0
PL7
PL6
PL5
PL4
PL3
PL2
PL1
PL0
PFRM
7
6
5
4
3
2
1
0
アドレス : 00000416H
−
−
−
−
PM3
PM2
PM1
PM0
PFRN
7
6
5
4
3
2
1
0
PN4
PN3
PN2
PN1
PN0
アドレス : 00000415H
アドレス : 00000417H
−
−
PN5
PFRO
7
6
5
4
3
2
1
0
PO7
PO6
PO5
PO4
PO3
PO2
PO1
PO0
7
6
5
4
3
2
1
0
PP7
PP6
PP5
PP4
PP3
PP2
PP1
PP0
PFRQ
7
6
5
4
3
2
1
0
アドレス : 0000041AH
−
−
PQ5
PQ4
PQ3
PQ2
PQ1
PQ0
アドレス : 00000418H
PFRP
アドレス : 00000419H
初期値
00001111B
アクセス
初期値
111110--B
アクセス
初期値
11110101B
アクセス
初期値
00000000B
アクセス
初期値
1111-00-B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
----0---B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
----0000B
アクセス
初期値
--000000B
アクセス
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
--000000B
アクセス
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
( 続く )
235
第 7 章 I/O ポート
( 続き )
PFRR
7
6
5
4
3
2
1
0
PR7
PR6
PR5
PR4
PR3
PR2
PR1
PR0
7
6
5
4
3
2
1
0
PS7
PS6
PS5
PS4
PS3
PS2
PS1
PS0
PFRT
7
6
5
4
3
2
1
0
アドレス : 0000041DH
−
−
PT5
PT4
PT3
PT2
PT1
PT0
アドレス : 0000041BH
PFRS
アドレス : 0000041CH
236
初期値
00000000B
アクセス
初期値
00000000B
アクセス
初期値
--000000B
アクセス
R/W
R/W
R/W
第 7 章 I/O ポート
7.2
ポート機能レジスタ (PFR) の設定
各 PFR レジスタについて , その機能と初期値をまとめます。
■ ポート機能レジスタ (PFR) の機能と初期値
表 7.2-1 にポート機能レジスタの機能と初期値を示します。
<注意事項>
PFR7, PFR27, PFR8, PFR9, PFRB については「8.7 バスインタフェースを汎用入
出力 ポートとして使用する方法」を参照ください。
表 7.2-1 ポート機能レジスタの機能と初期値 (1 / 7)
レジスタ名
PFR7
PFR7(P71), PFR27 (P271)
PFR7 (P72), PFR27 (P272)
PFR7
PFR7 (P74), PFR27 (P274)
PFR7 (P75), PFR27 (P275)
PFR7 (P76), PFR27 (P276)
ビット名
P70
P71, P271
P72, P272
P73
P74, P274
P75, P275
P76, P276
ビット値
機能
0
汎用ポート
1
アドレス出力 A24( 初期状態 )
0, 0
汎用ポート
0, 1
アドレス出力 A25( 初期状態 )
1, 0
設定無効
1, 1
IORX
0, 0
汎用ポート
0, 1
アドレス出力 A26( 初期状態 )
1, 0
設定無効
1, 1
IOWX
0
汎用ポート
1
アドレス出力 A27( 初期状態 )
0, 0
汎用ポート
0, 1
1 出力
1, 0
アドレス出力 A28( 初期状態 )
1, 1
CS4 出力 (「4.2 構成レジスタ (F362GB
モードレジスタ F362MD)」参照 )
0, 0
汎用ポート
0, 1
1 出力
1, 0
アドレス出力 A29( 初期状態 )
1, 1
CS5 出力 (「4.2 構成レジスタ (F362GB
モードレジスタ F362MD)」参照 )
0, 0
汎用ポート
0, 1
1 出力
1, 0
アドレス出力 A30( 初期状態 )
1, 1
CS6 出力 (「4.2 構成レジスタ (F362GB
モードレジスタ F362MD)」参照 )
237
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (2 / 7)
レジスタ名
PFR7 (P77), PFR27 (P277)
ビット名
P77, P277
PFR8 (BGRNTX)
PFR8 (BRQ)
−
P82
ビット値
機能
0, 0
汎用ポート
0, 1
1 出力
1, 0
アドレス出力 A31( 初期状態 )
1, 1
CS7 出力
−
なし (P82 ビットを BRQ 端子にした場合
に , BGRNTX 専用端子になります。)
0
汎用ポート ( 初期状態 )
1
BRQ
PFR8 (RDX)
P83
1
"1" を設定してください。
PFR8 (WR0X)
P84
1
"1" を設定してください。
PFR8 (WR1X)
P85
1
"1" を設定してください。
PFR8 (WR2X)
P86
0
汎用ポート
1
WR2X 出力 ( 初期状態 )
0
汎用ポート
1
WR3X 出力 ( 初期状態 )
0
汎用ポート
1
AS 出力 ( 初期値 : "1")
0
汎用ポート ( 初期値 )
1
未使用 ( 初期値 : "0")
0
汎用ポート (「8.7 バスインタフェースを
汎用入出力 ポートとして使用する方法」
参照 )
1
CLK 出力 ( 初期値 : "1")
0
未使用 ( 初期値 :"0")
1
汎用ポート
0
汎用ポート
1
外バス使用時 "1" を設定してください。
( 初期値 :"1")
0
汎用ポート
1
CS1 出力 ( 初期状態 )
0
汎用ポート
1
CS2 出力 ( 初期状態 )
0
汎用ポート
1
CS3 出力 ( 初期状態 )
0
通常使用時 "0" を設定してください。
( 初期値 : "0")
PFR8 (WR3X)
PFR9 (AS)
PFR9 (ALE)
PFR9 (CLK)
PFR9 (AH/BOOT)
PFR9 (CS0X)
PFR9 (CS1X)
PFR9 (CS2X)
PFR9 (CS3X)
PFRB
238
P87
P90
P91
P92
P93
P94
P95
P96
P97
PB0, PB3
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (3 / 7)
レジスタ名
ビット名
PFRB (PB1), PFRB (PB4),
PFRB (PB6)
PB1, PB4,
PB6
PFRB ( ビット 2), DDRB
(PB2)
ビット 2,
PB2
PFRB ( ビット 5), DDRB
(PB5)
PFRB ( ビット 7), DDRB
(PB7)
PFRG
PFRH
PFRI
ビット 5,
PB5
ビット 7,
PB7
PG7 ∼ PG0
PH7 ∼ PH0
PI3
ビット値
0
汎用ポート ( 初期値 : "0")
1
DACK0, 1, 2
0, 0
汎用ポート入力 ( 初期状態 )
0, 1
汎用ポート出力
1, 0
DMAC: DSTP 入力
1, 1
DMAC: DEOP 出力
0, 0
汎用ポート入力 ( 初期状態 )
0, 1
汎用ポート出力
1, 0
DMAC: DSTP 入力
1, 1
DMAC: DEOP 出力
0, 0
汎用ポート入力 ( 初期状態 )
0, 1
汎用ポート出力
1, 0
DMAC: DSTP 入力
1, 1
DMAC: DEOP 出力
0
I/O ポート ( 初期値 )
1
AN15 ∼ AN8(ADC 入力 )
0
I/O ポート ( 初期値 )
1
AN7 ∼ AN0(ADC 入力 )
0
I/O ポート ( 初期値 )
1
ATGX(ADC トリガ入力 )
PI7
PFRJ
PFRK
PFRL
PJ7 ∼ PJ0
PK7 ∼ PK0
PL0 ∼ PL3
PL4 ∼ PL7
機能
SELCLK の値は PI7 で読み出すことがで
きます。(PDR7:bit7)
0
I/O ポート ( 初期値 )
1
LED7 ∼ LED0(LED ポート出力 )
0
I/O ポート ( 初期値 )
1
INT7 ∼ INT0( 外部割込み入力 )
0
I/O ポート ( 初期値 )
1
IN0 ∼ IN3(ICU 入力 )
0
I/O ポート ( 初期値 )
1
OUT0 ∼ OUT3(OCU 出力 )
239
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (4 / 7)
レジスタ名
PFRM
ビット名
PM0
PM1
PM2
PM3
PFRN
PN0
PN1
PN2
PN3
PN4
PN5
PFRO
240
PO0 ∼ PO7
ビット値
機能
0
I/O ポート ( 初期値 )
1
SGO( サウンドジェネレータ出力 )
0
I/O ポート ( 初期値 )
1
SGA( サウンドジェネレータ出力 )
0
I/O ポート ( 初期値 )
1
SDA(I2C データ )
0
I/O ポート ( 初期値 )
1
SCL(I2C クロック )
0
I/O ポート ( 初期値 )
1
SOT4(SIO 出力 )
0
I/O ポート ( 初期値 )
1
SIN4(SIO 入力 )
0
I/O ポート ( 初期値 )
1
SCK4(SIO クロック )
0
I/O ポート ( 初期値 )
1
SIN3(SIO 入力 )
0
I/O ポート ( 初期値 )
1
SOT3(SIO 出力 )
0
I/O ポート ( 初期値 )
1
SCK3(SIO クロック )
0
I/O ポート ( 初期値 )
1
OCPA0 ∼ OCPA7(PPG 出力 )
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (5 / 7)
レジスタ名
PFRP
ビット名
PP0
PP1
PP2
PP3
PP4
PP5
PP6
PP7
PFRQ
PQ0
PQ1
PQ2
PQ3
PQ4
PQ5
ビット値
機能
0
I/O ポート ( 初期値 )
1
TX0(CAN0)
0
I/O ポート ( 初期値 )
1
RX0(CAN0)
0
I/O ポート ( 初期値 )
1
TX1(CAN1)
0
I/O ポート ( 初期値 )
1
RX1(CAN1)
0
I/O ポート ( 初期値 )
1
TX2(CAN2)
0
I/O ポート ( 初期値 )
1
RX2(CAN2)
0
I/O ポート ( 初期値 )
1
TX3(CAN3)
0
I/O ポート ( 初期値 )
1
RX3(CAN3)
0
I/O ポート ( 初期値 )
1
SIN0(UART0)( ブート ROM* 後の値 )
0
I/O ポート ( 初期値 )
1
SOT0(UART0)( ブート ROM* 後の値 )
0
I/O ポート ( 初期値 )
1
SIN1(UART1)
0
I/O ポート ( 初期値 )
1
SOT1(UART1)
0
I/O ポート ( 初期値 )
1
SIN2(UART2)
0
I/O ポート ( 初期値 )
1
SOT2(UART2)
241
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (6 / 7)
レジスタ名
PFRR
ビット名
PR0
PR1
PR2
PR3
PR4
PR5
PR6
PR7
PFRS
PS0
PS1
PS2
PS3
PS4
PS5
PS6
PS7
242
ビット値
機能
0
I/O ポート ( 初期値 )
1
PWM1P0( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1M0( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2P0( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2M0( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1P1( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1M1( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2P1( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2M1( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1P2( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1M2( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2P2( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2M2( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1P3( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM1M3( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2P3( ステッパモータ制御 )
0
I/O ポート ( 初期値 )
1
PWM2M3( ステッパモータ制御 )
第 7 章 I/O ポート
表 7.2-1 ポート機能レジスタの機能と初期値 (7 / 7)
レジスタ名
ビット名
ビット値
機能
PFRT (MB91F364G のみ )
PFRT
PT0
PT1
PT2
PT3
PT4
PT5
0
I/O ポート ( 初期値 )
1
SIN5 (LIN-UART5)
0
I/O ポート ( 初期値 )
1
SCK5 (LIN-UART5)
0
I/O ポート ( 初期値 )
1
SOT5 (LIN-UART5)
0
I/O ポート ( 初期値 )
1
SOT6 (LIN-UART6)
0
I/O ポート ( 初期値 )
1
SCK6 (LIN-UART6)
0
I/O ポート ( 初期値 )
1
SIN6 (LIN-UART6)
*: ブートコードの実行時に , 有効なブート状態が検出された場合のみ , この値が設定されます。
243
第 7 章 I/O ポート
244
第8章
外部バスインタフェース
外部バスインタフェース , レジスタの構造と機能 ,
バス動作の基本 , バスの動作タイミングについて説
明します。
8.1 外部バスインタフェースの概要
8.2 外部バスインタフェースのレジスタ
8.3 外部バスの仕様
8.4 外部バスアクセス
8.5 バス信号
8.6 バスの動作タイミング
8.7 バスインタフェースを汎用入出力 ポートとして使用する
方法
245
第 8 章 外部バスインタフェース
8.1
外部バスインタフェースの概要
外部バスインタフェースは , 外部メモリ , および外部 I/O とのインタフェースを制御
します。
■ 外部バスインタフェースの特長
• 32 ビット (4G バイト ) のアドレス出力が可能です。
• チップセレクト機能により , 8 個の独立したバンク構成が可能です。
バンクは, 最小64Kバイト単位で論理アドレス空間上の任意の位置に設定できます。
領域なしに設定可能です。
• チップセレクト領域ごとに 32/16/8 ビットのバス幅の設定が可能です。
• プログラム可能な自動メモリ待ち ( 最大で 7 サイクル分 ) の挿入ができます。
• 未使用のアドレス / データ端子は I/O ポートとして使用できます。
<注意事項>
246
• チップセレクト領域 CS7 は , 内部 CAN モジュールに使用されます。必要なレジ
スタの設定は , 内部ブートルーチンによって行われます。この CS 領域に関連す
るレジスタのビットに上書きしないよう注意してください。
• 外部バス ( ユーザロジックバスともよばれる ) に内部的に接続されている CAN
マクロを使用している場合 , 外部バスインタフェースのいくつかのデータ , アド
レス , および制御ポートを汎用 I/O ポートとして構成することはできません。
「第 7 章 I/O ポート」を参照してください。
第 8 章 外部バスインタフェース
■ 外部バスインタフェースのブロックダイヤグラム
図 8.1-1 に外部バスインタフェースのブロックダイヤグラムを示します。
図 8.1-1 ブロックダイヤグラム
アドレスバス データバス
32
32
外部データバス
書込みバス
スイッチ
読出しバッファ
スイッチ
データブロック
アドレスブロック
+1 or +2
アライメント
外部アドレスバス
アドレスバッファ
ASR
CS0X~CS7X
AMR
コンバータ
外部端子制御部
RDX
WR0X, WR1X
WR2X, WR3X
全ブロック制御
レジスタ&制御
BRQ
BGRNTX
RDY
CLK
247
第 8 章 外部バスインタフェース
■ 領域
外部バスインタフェースには , 8 種類のチップセレクト領域が用意されます。
各領域の位置は , ASR0 ∼ ASR7( 領域選択レジスタ ) と AMR0 ∼ AMR7( 領域マスクレ
ジスタ ) によって指示される 4G バイトの空間に , 最小 64K バイト単位で任意に配置す
ることができます。また , ASR0 ∼ ASR7 のレジスタによって指定された領域に対して
外部バスをアクセスしようとすると , 対応するチップ選択信号 CS0X ∼ CS7X がアク
ティブ "L" になります。
図 8.1-2 にチップセレクト領域の配置例を示します。
例 1 は , 領域 0 を 00000000H ∼ 000FFFFFH に , 領域 1 から領域 5 を 00100000H ∼ 0014FFFFH
に 64K バイト単位で配置した例を示します。また , 例 2 は , 領域 0 を 00080000H ∼
000FFFFFH に , 領域 1 を 00000000H ∼ 0007FFFFH の 512K バイト , 領域 2 から領域 5 を
00100000H ∼ 004FFFFFH に 1M バイト単位で配置した例を示します。
図 8.1-2 チップセレクト領域の配置例
例1
例2
00000000H
0007FFFFH
00000000H
00080000H
CS0X (1M byte)
000FFFFFH
CS1X(64K byte)
CS2X(64K byte)
CS3X(64K byte)
0010FFFFH
0011FFFFH
0012FFFFH
0013FFFFH
0014FFFFH
CS4X(64K byte)
CS5X(64K byte)
000FFFFFH
001FFFFFH
CS1X(512 Kbyte)
CS0X(512 Kbyte)
CS2X(1 Mbyte)
CS3X(1 Mbyte)
002FFFFFH
003FFFFF
CS4X(1 Mbyte)
H
004FFFFF H
CS5X(1 Mbyte)
■ 外部バスのサイズ指定
各領域はレジスタの設定により , バス幅の任意指定が可能です。
領域 0 は , 設定初期化リセット (INIT), および動作初期化リセット (RST) 解除後は , モー
ドベクタフェッチによってモードベクタ (MODR) に書き込まれた設定値により , バス
サイズが指定されます。
248
第 8 章 外部バスインタフェース
外部バスインタフェースのレジスタ
8.2
外部バスインタフェースで使用するレジスタについて説明します。
■ 外部バスインタフェースのレジスタ一覧
表 8.2-1 に外部バスインタフェースのレジスタ一覧を示します。
表 8.2-1 外部バスインタフェースのレジスタ一覧
アドレス
ビット 31 ∼ 24
ビット 23 ∼ 16
ビット 15 ∼ 8
ビット 7 ∼ 0
00000640H
ASR0(Area Select Reg.0)
AMR0(Area Mode Reg.0)
00000644H
ASR1(Area Select Reg.1)
AMR1(Area Mode Reg.1)
00000648H
ASR2(Area Select Reg.2)
AMR2(Area Mode Reg.2)
0000064CH
ASR3(Area Select Reg.3)
AMR3(Area Mode Reg.3)
00000650H
ASR4(Area Select Reg.4)
AMR4(Area Mode Reg.4)
00000654H
ASR5(Area Select Reg.5)
AMR5(Area Mode Reg.5)
00000658H
ASR6(Area Select Reg.6)
AMR6(Area Mode Reg.6)
0000065CH
ASR7(Area Select Reg.7)
AMR7(Area Mode Reg.7)
00000660H
AMD0
AMD1
AMD2
AMD3
00000664H
AMD4
AMD5
AMD6
AMD7
00000668H
CSE
-
-
-
00000670H
CHE
-
-
-
000007FCH
-
MODR
-
-
ASR
AMR
AMD
CSE
CHE
MODR
(Area Select Register)
(Area Mask Register)
(Area Mode Register)
(Chip Select Enable Register)
(CacHe Enable Register)
(MODe Register)
249
第 8 章 外部バスインタフェース
■ 領域選択レジスタ (ASR0 ∼ ASR7)
図 8.2-1 に領域選択レジスタ (ASR0 ∼ ASR7) の構成を示します。
図 8.2-1 領域選択レジスタ (ASR0 ∼ ASR7) の構成
初期値
ASR0
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
0000H
W
00 0640H
A31
A30
A29
...
ASR1
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
00 0644H
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
ASR2
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
00 0648H
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
ASR3
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
00 064CH
A31
A30
A29
...
ASR4
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
00 0650H
A31
A30
A29
...
ASR5
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
00 0654H
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
ASR6
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
00 0658H
A31
A30
A29
...
ASR7
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
00 065CH
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
内部ブート ROM のコード実行後 , ASR0 は "0x20", ASR7 は "0x10" に設定されます。
250
第 8 章 外部バスインタフェース
■ 領域マスクレジスタ (AMR0 ∼ AMR7)
図 8.2-2 に領域マスクレジスタ (AMR0 ∼ AMR7) の構成を示します。
図 8.2-2 領域マスクレジスタ (AMR0 ∼ AMR7) の構成
初期値
AMR0
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
FFFFH
FFFFH
W
0000 0642H
A31
A30
A29
...
AMR1
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
0000 0646H
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
AMR2
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
0000 064AH
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
AMR3
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
0000 064EH
A31
A30
A29
...
AMR4
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
0000 0652H
A31
A30
A29
...
AMR5
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
0000 0656H
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
AMR6
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
...
A18
A17
A16
0000H
xxxxH
W
0000 065AH
A31
A30
A29
...
AMR7
bit15
14
13
12
...
2
1
0
INIT 時
RST 時
アクセス
0000 065EH
A31
A30
A29
...
...
A18
A17
A16
0000H
xxxxH
W
<注意事項>
内部ブート ROM のコード実行後 , AMR0 は "0x0F", AMR7 は "0x00" に設定されま
す。
ASR0 ∼ ASR7( 領域選択レジスタ ) と AMR0 ∼ AMR7( 領域マスクレジスタ ) は , チッ
プセレクト領域 0 ∼ 7 のアドレス空間の範囲を指定します。
ASR0 ∼ ASR7 はアドレスの上位 16 ビット A31 ∼ A16 を指定し , AMR0 ∼ AMR7 で対
応するアドレスビットをマスクします。AMR0 ∼ AMR7 の各ビットは "0" で care, "1"
で don't care を示します。care とは ASR の設定値が "0" の場合は "0", "1" の場合は "1"
としてアドレス空間を示し , don't care の場合には ASR の設定値にかかわらず , "0", "1"
両方の場合のアドレス空間を示します。
ASR0, AMR0 はリセット時に初期化され , アドレス空間の全領域が領域 0 の指定となり
ます。
ASR1 ∼ ASR7, AMR1 ∼ AMR7 は INIT 時に初期化されます。リセット時は , 前の値が
保持されます。
251
第 8 章 外部バスインタフェース
以下に , ASR と AMR の組合せによる , 各チップ選択領域指定の例を示します。
( 例 1)
ASR1 = 00000000 00000011B
AMR1 = 00000000 00000000B
を設定した場合 , ASR1 に "1" を設定したビットに対応する AMR1 のビットは "0" であ
るため , その領域 1 のアドレス空間は ,
00000000 00000011 00000000 00000000 B
~
00000000 00000011 11111111 11111111 B
(00030000 H)
(0003FFFF H )
の 64K バイトになります。
( 例 2)
ASR2 = 00001111 11111111B
AMR2 = 00000000 00000011B
を設定した場合 , AMR2 に "0" を設定したビットに対応する ASR2 の設定値は "1", "0"
をそのまま care し , AMR2 に "1" を設定したビットに対応する ASR2 のビットは , "0",
または "1" の don't care になることから , 領域 2 のアドレス空間は ,
00001111 11111100 00000000 00000000 B
~
(0FFC0000H )
00001111 11111111 11111111 11111111 B
(0FFFFFFF H )
の 256K バイトになります。
領域 1 ∼ 5 の各領域のアドレス空間は , ASR1 ∼ ASR5 と AMR1 ∼ AMR5 で , 4G バイ
トの空間に最小 64K バイト単位で任意に配置することができます。これらのレジスタ
によって指定された領域に対してバスアクセスを行うと , 対応するチップセレクト端
子 (CS0X ∼ CS7X) が Low 出力となります。
なお , リセット時は , 領域 0 がすべての領域に割り当てられます。
連続領域が必要な場合 , 最大のチップセレクト領域も存在します。次の表に例を示しま
す。
表 8.2-2 最大のチップ選択領域の設定例
ASR
<注意事項>
252
AMR
CS 領域
0020H
001FH
1 M バイト : 0020:0000H ∼ 002F:FFFFH
0200H
01FFH
16 M バイト : 0200:0000H ∼ 02FF:FFFFH
2000H
1FFFH
256 M バイト : 2000:0000H ∼ 2FFF:FFFFH
チップセレクト領域は , お互いにオーバラップしないように設定してください。
各チップセレクト領域をオーバラップさせた場合は , 領域番号の小さい方が優先と
なります。チップセレクト信号は両方ともアクティブになりますが , 領域番号の小
さいバス幅 , 自動ウェイトサイクル , RDY 許可の設定が使用されます。
第 8 章 外部バスインタフェース
図 8.2-3 にチップセレクト領域の初期値 , および例 1, 例 2 の配置を示します。
図 8.2-3 チップセレクト領域の初期値 , および例 1, 例 2 の配置
(例1, 例2の配置)
(初期値)
00000000 H
00000000 H
00030000 H
00040000 H
0FFC0000 H
領域 0
10000000 H
FFFFFFFF H
FFFFFFFF H
領域 1
64 Kバイト(例1)
領域 2
256 Kバイト(例2)
■ 領域モードレジスタ (AMD0 ∼ AMD7)
AMD0 ∼ AMD7 は , 各チップセレクト領域でのメモリアクセス動作モードを指定しま
す。
● AMD0 レジスタ
AMD0 レジスタは , チップセレクト領域 0 の動作モードを指定します。リセット時は
領域 0 が全領域に選択されます。
下図に領域モードレジスタ (AMD0) のビット構成を示します。
AMD0
初期値
bit
0000 0660H
7
6
5
4
予約 RDYE BW1
−
3
2
1
0
INIT 時
アクセス
RST 時
BW0 WTC2 WTC1 WTC0 -0000111B -00xx111B
R/W
内部ブート ROM のコード実行後 , このレジスタは "0x11" に設定されます。
[bit6] (reserved)
予約ビットです。
通常使用時には , 必ず "0" を設定してください。
[bit5] RDYE(ReaDY input Enable bit): RDY 入力許可ビット
RDYE ビットは , 領域 0 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする ( 初期値 )
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit): バス幅ビット
BW1, および BW0 ビットは , 領域 0 のバス幅を指定します。
ただし , INIT 解除後 , モードを取り込んだ値 ( モードレジスタの WTH ビット ) が
モードの取込み直後に BW ビットに反映されます。
253
第 8 章 外部バスインタフェース
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit):
WTC2 ∼ WTC0 ビットは , 通常のバスインタフェース動作時における自動ウェイト
の挿入回数を指定します。
AMD0 レジスタの WTC2 ∼ WTC0 ビットはリセット時に "111" に設定され , リセッ
ト解除直後のバスアクセスでは自動的に 7 サイクルのウェイトが実行されます。
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7( 初期値 )
● AMD1 レジスタ
AMD1 レジスタは , チップセレクト領域 1(ASR1 レジスタと AMR1 レジスタで指定さ
れた領域 ) の動作モードを指定します。
下図に領域モードレジスタ (AMD1) のビット構成を示します。
AMD1
初期値
bit
0000 0661H
7
−
6
5
4
予約 RDYE BW1
3
2
1
0
RST 時
BW0 WTC2 WTC1 WTC0 -0000000B -xxxxxxxB
[bit6] (reserved)
予約ビットです。
通常使用時には , 必ず "0" を設定してください。
254
INIT 時
アクセス
R/W
第 8 章 外部バスインタフェース
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 1 に対する RDY 入力を下表のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 1 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 ビットは , 通常バスインタフェース , 自動ウェイトの挿入回数を指
定します。動作は AMD0 レジスタの WTC2 ∼ WTC0 ビットと同様ですが , 設定初
期化リセットで "000" に初期化され , 挿入されるウェイトサイクル数は "0" になり
ます。
本品種は , 時分割入出力インタフェースをサポートしていません。
<注意事項>
● AMD2 レジスタ
AMD2 レジスタは , チップセレクト領域 2 の動作モードを指定します。
下図に領域モードレジスタ (AMD2) のビット構成を示します。
AMD2
初期値
bit
0000 0662H
7
6
−
−
5
4
RDYE BW1
3
2
1
0
INIT 時
アクセス
RST 時
BW0 WTC2 WTC1 WTC0 --000000B --xxxxxxB
R/W
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 2 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
255
第 8 章 外部バスインタフェース
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 2 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 レジスタは , 通常のバスインタフェース動作時における自動ウェイ
トの挿入回数を指定します。
他の AMD レジスタの WTC2 ∼ WTC0 ビットと同様の機能を持ち , 設定初期化リ
セット (INIT) で "000" に初期化され , 挿入ウェイトサイクル数は "0" になります。
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
● AMD3 レジスタ
AMD3 レジスタは , チップセレクト領域 3 の動作モードを指定します。
下図に領域モードレジスタ (AMD3) のビット構成を示します。
AMD3
初期値
bit
0000 0663H
256
7
−
6
−
5
4
RDYE BW1
3
2
1
0
INIT 時
アクセス
RST 時
BW0 WTC2 WTC1 WTC0 --000000B --xxxxxxB
R/W
第 8 章 外部バスインタフェース
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 3 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 3 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 ビットは , 通常のバスインタフェース動作時における自動ウェイト
の挿入回数を指定します。
他の AMD レジスタの WTC2 ∼ WTC0 ビットと同様の機能を持ち , 設定初期化リ
セット (INIT) で "000" に初期化され , 挿入ウェイトサイクル数は "0" になります。
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
257
第 8 章 外部バスインタフェース
● AMD4 レジスタ
AMD4 レジスタは , チップセレクト領域 4 の動作モードを指定します。
下図に領域モードレジスタ (AMD4) のビット構成を示します。
AMD4
初期値
bit
0000 0664H
7
6
−
−
5
4
RDYE BW1
アクセス
3
2
1
0
INIT 時
RST 時
BW0 WTC2 WTC1 WTC0 --000000B --xxxxxxB
R/W
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 4 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 4 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 ビットは , 通常のバスインタフェース動作時における自動ウェイト
の挿入回数を指定します。
他の AMD レジスタの WTC2 ∼ WTC0 ビットと同様の機能を持ち , 設定初期化リ
セット (INIT) で "000" に初期化され , 挿入ウェイトサイクル数は "0" になります。
258
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
第 8 章 外部バスインタフェース
● AMD5 レジスタ
AMD5 レジスタは , チップセレクト領域 5 の動作モードを指定します。
下図に領域モードレジスタ (AMD5) のビット構成を示します。
AMD5
初期値
bit
0000 0665H
7
6
−
−
5
4
RDYE BW1
3
2
1
0
INIT 時
アクセス
RST 時
BW0 WTC2 WTC1 WTC0 --000000B --xxxxxxB
R/W
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 5 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 5 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 ビットは , 通常のバスインタフェース動作時における自動ウェイト
の挿入の回数を指定します。
他の AMD レジスタの WTC2 ∼ WTC0 ビットと同様の機能を持ち , 設定初期化リ
セット (INIT) で "000" に初期化され , 挿入ウェイトサイクル数は "0" になります。
WTC2
WTC1
WTC0
挿入ウェイトサイクル数
0
0
0
0
0
0
1
1
0
1
0
2
0
1
1
3
1
0
0
4
1
0
1
5
1
1
0
6
1
1
1
7
259
第 8 章 外部バスインタフェース
● AMD6 レジスタ
AMD6 レジスタは , チップセレクト領域 6(ASR6 レジスタと AMR6 レジスタで指定し
た領域 ) の動作モードを指定します。
下図に領域モードレジスタ (AMD6) のビット構成を示します。
AMD6
初期値
bit
0000 0666H
7
6
−
−
5
4
RDYE BW1
3
2
1
0
INIT 時
アクセス
RST 時
BW0 WTC2 WTC1 WTC0 --000000B --xxxxxxB
R/W
[bit6] (reserved)
予約ビットです。通常使用時には , 必ず "0" を書き込んでください。
[bit5] RDYE(ReaDY input Enable bit)
RDYE ビットは , 領域 6 に対する RDY 入力を以下のように制御します。
RDYE
機能
0
RDY 入力を無効にする
1
RDY 入力を有効にする
[bit4, bit3] BW1, BW0(Bus Width bit)
BW1, BW0 ビットは , 領域 6 のバス幅を指定します。
BW1
BW0
バス幅
0
0
8 ビット
0
1
16 ビット
1
0
32 ビット
1
1
予約
[bit2 ∼ bit0] WTC2 ∼ WTC0(Wait Cycle bit)
WTC2 ∼ WTC0 ビットは , 領域 6 のメモリアクセス時の自動挿入ウェイトサイクル数
を指定します。他の AMD レジスタの WTC2 ∼ WTC0 ビットと同様の機能を持ち , リ
セットで "000" に初期化され , 挿入ウェイトサイクル数は "0" になります。
● AMD7 レジスタ
内部ブート ROM のコード実行後 , このレジスタは "0x29" に設定されます。
AMD7 レジスタは , チップセレクト領域 7(ASR7 レジスタと AMR7 レジスタで指定さ
れた領域 ) のバスモードを指定します。
各ビットは AMD6 レジスタと同様の意味を持ちます。
AMD7
初期値
bit
0000 0667H
260
7
6
−
−
5
4
RDYE BW1
3
2
1
アクセス
0
INIT 時
RST 時
--000000
--xxxxxx
BW0 WTC2 WTC1 WTC0
B
B
R/W
第 8 章 外部バスインタフェース
■ キャッシュ許可レジスタ (CHE): CacHe Enable register
下図にキャッシュ許可レジスタ (CHE) のビット構成を示します。
bit
0000 0670H
15
14
13
12
11
10
9
8
初期値 アクセス
CHE7 CHE6 CHE5 CHE4 CHE3 CHE2 CHE1 CHE0 11111111B R/W
[bit15 ∼ bit8]
CS0 ∼ CS7 の各領域のキャッシュ / 非キャッシュ領域の指定をします。
0: 非キャッシュ領域
1: キャッシュ領域
CHE のビット
対応する CS
CHE0
CS0
CHE1
CS1
CHE2
CS2
CHE3
CS3
CHE4
CS4
CHE5
CS5
CHE6
CS6
CHE7
CS7
CHE0 ビットが CS0 領域に対応 , CHE1 ビットが CS1 領域に対応となっています。
また , 非キャッシュ領域指定とキャッシュ領域指定がオーバラップした場合 , 非
キャッシュ領域指定が優先されます。
261
第 8 章 外部バスインタフェース
■ チップセレクト許可レジスタ (CSE): Chip Select Enable register
下図にチップセレクト許可レジスタ (CSE) のビット構成を示します。
bit
0000 0668H
15
14
13
12
11
10
9
8
初期値 アクセス
CSE7 CSE6 CSE5 CSE4 CSE3 CSE2 CSE1 CSE0 00000001B R/W
内部ブート ROM のコード実行後 , このレジスタは "0x81" に設定されます。
[bit15 ∼ bit8]
CS0 ∼ CS7 のチップセレクトの領域許可ビットです。
初期値は , 00000001B で CSE0 ビットのみ許可となっています。
"1"を書き込むことにより, ASR0∼ASR7, AMR0∼AMR7の設定が有効になります。
CSE0 ∼ CSE7
ASR0 ∼ ASR7, AMR0 ∼ AMR7 の設定
0
禁止
1
許可
CSE のビット
対応する CS
CSE0
CS0
CSE1
CS1
CSE2
CS2
CSE3
CS3
CSE4
CS4
CSE5
CS5
CSE6
CS6
CSE7
CS7
CSE0 ビットが CS0 領域に対応 , CSE1 ビットが CS1 領域に対応しています。
■ モードレジスタ (MODR): MODe Register
「2.10.3 フィックスベクタ」の項を参照してください。
262
第 8 章 外部バスインタフェース
外部バスの仕様
8.3
外部バスの仕様について説明します。
■ データバス幅と制御信号との関係
WR0X ∼ WR3X の制御信号は , ビッグエンディアン / リトルエンディアンやデータバ
ス幅に関係なくデータバスのバイト位置に常に 1 対 1 に対応します。
● 通常バスインタフェース
図 8.3-1 にバスモード別に , 設定されたデータバス幅で使用される MB91360 シリーズ
のデータバスのバイト位置とそれに対応する制御信号との関係をまとめます。
図 8.3-1 データバスのバイト位置と対応する制御信号の関係
a) 32ビットバス幅
データバス
制御信号
b) 16ビットバス幅
データバス
制御信号
D31
D31
b) 8ビットバス幅
データバス
制御信号
D31
: WR0X
: WR0X
: WR0X
D24
: WR1X
: WR1X
-
: -
: -
-
: -
D16
: WR2X
: WR3X
D0
-
: (D15~D0は未使用)
: (D23~D0は未使用)
■ ビッグエンディアン方式のバスアクセス
FR50 は , 通常ビッグエンディアンで外部アクセスを行います。
263
第 8 章 外部バスインタフェース
■ データフォーマット
データフォーマットには , アクセス方法によってワードアクセス , ハーフワードアクセ
ス , およびバイトアクセスの 3 種類があります。
各アクセス方法における , 内部レジスタと外部データバスとの関係を以下に示します。
● ワードアクセス (LD, ST 命令実行時 )
内部レジスタ
外部バス
D31
D31
AA
AA
BB
BB
D23
D23
D15
D15
CC
CC
D07
D07
DD
DD
● ハーフワードアクセス (LDUH, STH 命令実行時 )
a) 出力アドレス下位 00
b) 出力アドレス下位 10
内部レジスタ
内部レジスタ
外部バス
D31
外部バス
D31
D31
D31
D23
D23
D23
D15
D15
AA
D23
BB
D15
AA
D07
D15
AA
D07
BB
AA
D07
D07
BB
BB
● バイトアクセス (LDUB, STB 命令実行時 )
a) 出力アドレス下位 00
b) 出力アドレス下位 01
c) 出力アドレス下位 10
d) 出力アドレス下位 11
内部レジスタ 外部バス
内部レジスタ 外部バス
内部レジスタ 外部バス
内部レジスタ 外部バス
D31
D31
D31
D31
D31
D31
D31
AA
D23
D23
D23
D23
D23
D23
D23
AA
D15
D15
D15
D15
D15
D15
D15
AA
D07
D07
D07
D07
D07
D07
D07
AA
AA
AA
AA
AA
264
D31
D23
D15
D07
第 8 章 外部バスインタフェース
■ データバス幅
データバス幅は , 32 ビット , 16 ビット , および 8 ビットの 3 種類あります。
それぞれのバス幅における , 内部レジスタと外部バスとの関係を以下に示します。
● 32 ビットバス幅
外部バス
内部レジスタ
D31
AA
AA
D31
D23
BB
BB
D23
D15
CC
CC
D15
D07
DD
DD
D07
読出し/書込み
● 16 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
D31
AA
D23
BB
D15
CC
D07
DD
読出し/書込み
"00"
"01"
AA
CC
D31
BB
DD
D23
● 8 ビットバス幅
内部レジスタ
外部バス
出力アドレス下位
読出し/書込み
D31
AA
D23
BB
D15
CC
D07
DD
"00"
"01"
"10"
"11"
AA
BB
CC
DD
D31
265
第 8 章 外部バスインタフェース
■ 外部バスアクセス
外部バスアクセスのまとめとして , ここではバイトポジション , プログラムアドレスと
出力アドレス , 32 ビット /16 ビット /8 ビットバス幅のバスアクセス回数とワード / ハー
フワード / バイトアクセスについて説明します。
PA1/PA0
プログラムで指定したアドレス下位2ビット
出力A1/A0
出力するアドレスの下位2ビット
出力するアドレスの先頭バイト位置
+
アクセスするデータバイト位置
①~④
バスアクセス回数
したがって , ワードアクセスの場合には , プログラムで指定したアドレス下位 2 ビット
が "00", "01", "10", "11" であっても , 出力するアドレスの下位 2 ビットはすべて "00" と
なり , ハーフワードアクセスの場合には "00", "01" のときには 00 に , "10", "11" のとき
には "10" になります。
● 32 ビットバス幅
• ワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
MSB
(b) PA1/PA0=01
①出力A1/A0=00
(c) PA1/PA0=10
①出力A1/A0=00
LSB
1
1
1
00
(d) PA1/PA0=11
①出力A1/A0=00
01 10
11
00
01 10
11
1
00
01
10
11
00
01 10
11
32bit
• ハーフワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
(b) PA1/PA0=01
①出力A1/A0=00
1
(c) PA1/PA0=10
①出力A1/A0=10
1
00
01 10
11
(d) PA1/PA0=11
①出力A1/A0=10
1
00
01 10
11
1
00
01
10
11
00
01 10
11
• バイトアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
(b) PA1/PA0=01
①出力A1/A0=01
1
1
00
266
01 10
11
(c) PA1/PA0=10
①出力A1/A0=10
(d) PA1/PA0=11
①出力A1/A0=11
1
00
01 10
11
1
00
01
10
11
00
01 10
11
第 8 章 外部バスインタフェース
● 16 ビットバス幅
• ワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
②出力A1/A0=10
MSB
(b) PA1/PA0=01
①出力A1/A0=00
②出力A1/A0=10
(c) PA1/PA0=10
①出力A1/A0=00
②出力A1/A0=10
(d) PA1/PA0=11
①出力A1/A0=00
②出力A1/A0=10
LSB
1
00
01
1
00
01
1
00
01
1
00
01
2
10
11
2
10
11
2
10
11
2
10
11
16bit
• ハーフワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
1
00
01
10
11
(b) PA1/PA0=01
①出力A1/A0=00
1
00
01
10
11
(c) PA1/PA0=10
①出力A1/A0=10
1
(d) PA1/PA0=11
①出力A1/A0=10
00
01
10
11
1
00
01
10
11
• バイトアクセスの場合
(a)PA1/PA0=00
1
00
01
10
11
(c)PA1/PA0=10
(b)PA1/PA0=01
①出力A1/A0=00
①出力A1/A0=01
1
00
01
10
11
(d)PA1/PA0=11
①出力A1/A0=10
1
①出力A1/A0=11
00
01
10
11
1
00
01
10
11
267
第 8 章 外部バスインタフェース
● 8 ビットバス幅
• ワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
(b) PA1/PA0=01
①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
(c) PA1/PA0=10
①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
(d) PA1/PA0=11
①出力A1/A0=00
②出力A1/A0=01
③出力A1/A0=10
④出力A1/A0=11
LSB
MSB
1
00
1
00
1
00
1
00
2
01
2
01
2
01
2
01
3
10
3
10
3
10
3
10
4
11
4
11
4
11
4
11
8bit
• ハーフワードアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
②出力A1/A0=01
(b) PA1/PA0=01
①出力A1/A0=00
②出力A1/A0=01
(c) PA1/PA0=10
①出力A1/A0=10
②出力A1/A0=11
(d) PA1/PA0=11
①出力A1/A0=10
②出力A1/A0=11
1
00
1
00
00
00
2
01
2
01
01
01
10
10
1
10
1
10
11
11
2
11
2
11
• バイトアクセスの場合
(a) PA1/PA0=00
①出力A1/A0=00
1
00
01
268
(b) PA1/PA0=01
①出力A1/A0=01
1
(c) PA1/PA0=10
①出力A1/A0=10
(d) PA1/PA0=11
①出力A1/A0=11
00
00
00
01
01
01
10
10
10
10
11
11
1
11
1
11
第 8 章 外部バスインタフェース
■ 外部デバイスとの接続例
8 ビット , 16 ビット , および 32 ビットの外部デバイスと接続する場合のデータバスの
接続例を , 図 8.3-2 に示します。
図 8.3-2 外部デバイスとの接続例
MB91360シリーズ
W
D31 R
| 0
D24 X
00
D31
W
D23 R
| 1
D16 X
01
W
D15 R
| 2
D08 X
W
D07 R
| 3
D00 X
10
D24D23 D16D15 D08D07
* 16ビット/8ビットデバイスの場合は,
MB91360シリーズのMSB側のデータバス
を使用します。
11
0
D00
32ビットデバイス
("00"~"11" アドレス下位2ビット)
D15
1
D08D07
0
D00
D07
D00
* 16ビットデバイス
* 8ビットデバイス
("0"/"1" アドレス下位1ビット)
269
第 8 章 外部バスインタフェース
8.4
外部バスアクセス
データバス幅 , およびワード幅におけるバスアクセスについて , 詳細に説明します。
■ ワードアクセス
ワードアクセスにおける , データバス幅が 32 ビット , 16 ビット , および 8 ビットでの
内部レジスタと外部データバス ( 外部端子 ) との対応を , 表 8.4-1 に示します。
表 8.4-1 ワードアクセスにおける内部レジスタと外部端子の対応 )
ビッグエンディアンモード
内部レジスタ
外部端子
制御端子
アドレス下位2ビット:"0"
D31
D31
AA
AA
WR0X
BB
BB
WR1X
CC
CC
WR2X
DD
WR3X
32 ビットバス幅
DD
D00
D00
内部レジスタ
D31
16 ビットバス幅
1
外部端子
アドレス: "0"
D31
AA
AA
BB
CC
D16
DD
制御端子
"2"
CC
WR0X
BB
DD
WR1X
-
-
-
-
-
-
1
2
D00
内部レジスタ
D31
8 ビットバス幅
D00
270
外部端子
アドレス: "0"
D31
AA
AA
制御端子
"1" "2" "3"
BB
CC
DD
WR0X
BB
D24
-
-
-
-
-
CC
-
-
-
-
-
DD
-
-
-
-
-
1
2
3
4
第 8 章 外部バスインタフェース
■ ハーフワードアクセス
ハーフワードアクセスにおける , データバス幅が 32 ビット , 16 ビット , および 8 ビッ
トでの内部レジスタと外部データバス ( 外部端子 ) との対応を , 表 8.4-2 に示します。
表 8.4-2 ハーフワードアクセスにおける内部レジスタと外部端子の対応 (1 / 2)
ビッグエンディアンモード
内部レジスタ
外部端子
アドレス:
D31
D31
制御端子
"0"
AA
WR0X
BB
WR1X
AA
-
BB
-
D00
D00
1
32 ビットバス幅
内部レジスタ
外部端子
アドレス:
D31
制御端子
"0"
D31
-
D00
CC
CC
WR2X
DD
DD
WR3X
D00
1
271
第 8 章 外部バスインタフェース
表 8.4-2 ハーフワードアクセスにおける内部レジスタと外部端子の対応 (2 / 2)
ビッグエンディアンモード
内部レジスタ
外部端子
制御端子
アドレス:
"0"
D31
D31
AA
WR0X
BB
WR1X
AA
D16 -
-
BB
-
-
D00
1
16 ビットバス幅
内部レジスタ
外部端子
アドレス:
D31
"2"
D31
CC
WR0X
DD
WR1X
CC
D16 -
-
DD
-
-
D00
1
内部レジスタ
D31
制御端子
外部端子
アドレス: "0" "1"
D31
AA
BB
D24
制御端子
WR0X
-
-
-
AA
-
-
-
BB
-
-
-
1
2
D00
8 ビットバス幅
内部レジスタ
D31
外部端子
アドレス: "2" "3"
D31
CC
DD
-
-
-
-
-
-
-
-
1
2
DD
272
WR0X
D24
CC
D00
制御端子
D00
第 8 章 外部バスインタフェース
■ バイトアクセス
バイトアクセスにおける , データバス幅が 32 ビット , 16 ビット , および 8 ビットでの
内部レジスタと外部データバス ( 外部端子 ) との対応を , 表 8.4-3 に示します。
表 8.4-3 バイトアクセスにおける内部レジスタと外部端子の対応 (1 / 3)
ビッグエンディアンモード
内部レジスタ
外部端子
制御端子
アドレス: "0"
D31
D31
AA
WR0X
-
AA
D00
D00
1
内部レジスタ
外部端子
制御端子
アドレス: "1"
D31
D31
BB
WR1X
-
BB
D00
D00
1
32 ビットバス幅
内部レジスタ
外部端子
制御端子
アドレス: "2"
D31
D31
CC
WR2X
CC
D00
D00
1
内部レジスタ
外部端子
制御端子
アドレス: "3"
D31
D31
DD
D00
DD
WR3X
D00
1
273
第 8 章 外部バスインタフェース
表 8.4-3 バイトアクセスにおける内部レジスタと外部端子の対応 (2 / 3)
ビッグエンディアンモード
内部レジスタ
外部端子
制御端子
アドレス: "0"
D31
D31
AA
WR0X
-
D16
-
AA
-
D00
1
内部レジスタ
外部端子
制御端子
アドレス: "1"
D31
D31
BB
WR1X
D16
-
BB
-
D00
1
16 ビットバス幅
内部レジスタ
外部端子
制御端子
アドレス: "2"
D31
D31
CC
WR0X
-
D16
-
CC
-
D00
1
内部レジスタ
外部端子
制御端子
アドレス: "3"
D31
D31
DD
D16
-
DD
-
D00
1
274
WR1X
第 8 章 外部バスインタフェース
表 8.4-3 バイトアクセスにおける内部レジスタと外部端子の対応 (3 / 3)
ビッグエンディアンモード
内部レジスタ
外部端子
アドレス: "0"
D31
D31
AA
D24
制御端子
WR0X
-
AA
-
D00
1
内部レジスタ
外部端子
アドレス: "1"
D31
D31
BB
D24
制御端子
WR0X
-
BB
-
D00
1
8 ビットバス幅
内部レジスタ
外部端子
制御端子
アドレス:
"2"
D31
D31
CC
WR0X
D24
-
CC
D00
1
内部レジスタ
外部端子
アドレス: "3"
D31
D31
DD
D24
制御端子
WR0X
-
DD
-
D00
1
275
第 8 章 外部バスインタフェース
8.5
バス信号
バス信号について説明します。
表 8.5-1 に , バス信号一覧を示します。
表 8.5-1 バス信号一覧
信号
機能
CLKT の関連エッジ
リード
ライト
外部バス要求
A[31:0]
アドレス
立上りエッジ
出力
出力
Hi-Z
AH
テスト信号
−
出力 /0
出力 /0
出力 /0
*1
ALE
バス制御
−
出力 /0
出力 /0
出力 /0
*2
AS
アドレスストロボ
立上りエッジ
出力
出力
出力 /0
BGRNTX
バス要求認識
立上りエッジ
出力 /1
出力 /1
出力
BRQ
バス要求
立上りエッジ
入力
入力
入力
CLK
クロック
立上りエッジ
立下りエッジ
出力
出力
出力
CSnX
チップ選択
立上りエッジ
出力
出力
出力 /1
入力
出力
Hi-Z
ライト :
立上りエッジ
リード :
立下りエッジ
D[31:0]
データ
RDX
リード
立下りエッジ
出力
出力 /1
Hi-Z
RDY
レディ
立下りエッジ
入力
入力
入力
WR0X ∼
WR3X
ライト
立下りエッジ
出力 /1
出力
Hi-Z
備考
*1: 実行されないバス関連機能は I/O ポートで使用できます。
*2: マルチプレックス バス アクセス用バス制御ポート
( アドレスとデータは同じバスポートを使用しています。) MB91360 シリーズは使用不可。
初期機能 : 入力ポート (PFR9[1] 出力 /0 を設定後 )
276
第 8 章 外部バスインタフェース
バスの動作タイミング
8.6
各モードにおけるバスアクセスの動作を説明します。AC 特性の詳細な情報について
は , 「データシート」を参照してください。
■ 通常バスアクセス
通常バスインタフェースでは , 基本バスサイクルは , 読出しアクセスでも書込みアクセ
スでも 2 クロックサイクルです。
● 基本読出し / 書込みサイクル
図 8.6-1 に , バス幅が 32 ビットでワードアクセスによる場合の読出し , および書込みサ
イクルのタイミングを示します。
図 8.6-1 基本読出し / 書込みサイクルのタイミング
BA
BA
BA1
IDLE
BA2
BA1
BA2
BA
BA
BA
BA
CLK
AS
A[31:0]
Am
An
D[31:24]
Dn0
Dm0
D[23:16]
Dn1
Dm1
D[15:8]
Dn2
Dm2
D[7:0]
Dn3
Dm3
RDX
WR3X
WR2X
WR1X
WR0X
CSnX
CSmX
リードサイクル
アイドルサイクル
ライトサイクル
• CLK は内部クロックを出力します。
• AS はバスサイクル開始 (BA1) 期間のみ "L" を出力します。
• 外部 A31 ∼ A0 は , ワード / ハーフワード / バイトアクセスの先頭バイト位置のアド
レスをバスサイクルの開始から出力します。
• CS0X ∼ CS7X( チップセレクト領域 ) 信号の出力は , A31 ∼ A0 と同タイミングです。
• 読出しサイクルの場合は , 外部 RDX 出力信号の立上りで外部 D31 ∼ D0 入力を取り
込みます。
なお , 読出しサイクルの場合は , バス幅 , またはワード / ハーフワード / バイトアク
セスに関係なく , RDX 信号で外部 D31 ∼ D0 のすべてを取り込み , 取り込んだデー
タが有効かどうかの判断は MB91360 シリーズ内部で行います。
277
第 8 章 外部バスインタフェース
• 書込みサイクルの場合は , バスサイクル開始 (BA1) から書込みデータを出力し , 各
データバスのバイト位置に対応する制御信号はWR0X, WR1X, WR2X, WR3Xで制御
します。
<注意事項>
278
次のページからの例は , 16 MHz の CPU(CLKB) および 4 MHz の外部バスインタ
フェース (CLKT) を動作条件としています。
また , CPU クロックとバスインタフェースクロックのクロック比 , および動作命令
に関連して挿入されるアイドルサイクルについては , 8.4.4 項を参照してください。
第 8 章 外部バスインタフェース
■ 32 ビットバス幅での動作
● 8 ビットアクセス
• 8 ビットリード− 8 ビットリード ( 連続アドレス ) の場合
図 8.6-2 に , 8 ビットリード− 8 ビットリード ( 連続アドレス ) の動作を示します。
図 8.6-2 8 ビットリード− 8 ビットリード ( 連続アドレス ) の動作
BA
BA
BA1
BA2
BA1
BA2
BA1
BA2
BA1
BA2
BA
BA
CLK
AS
A[31:0]
Am
An
D[31:24]
Dn0
Dn0
D[23:16]
X
Dn1
D[15:8]
X
X
D[7:0]
X
X
RDX
CSnX
CSmX
バイトアクセスの場合 , 最上位 8 ビット , 中上位 8 ビット , 中下位 8 ビット , 最下位
8 ビットのいずれかが使用されます。
• 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の場合
図 8.6-3 に , 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の動作を示します。
図 8.6-3 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
BA1
BA2
BA
BA
BA
BA
BA
BA
CLK
AS
A[31:0]
Am
An
D[31:24]
Dn0
Dm0
D[23:16]
X
X
D[15:8]
X
X
D[7:0]
X
X
RDX
CSnX
CSmX
279
第 8 章 外部バスインタフェース
• 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の場合
図 8.6-4 に , 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の動作を示します。
図 8.6-4 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
CLK
AS
A[31:0]
An
Am
D[31:24]
Dn0
Dm0
D[23:16]
X
D[15:8]
X
D[7:0]
X
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSnX
CSmX
280
BA
BA
BA
BA
第 8 章 外部バスインタフェース
● 16 ビットアクセス
• 16 ビットリード− 16 ビットリード ( 連続アドレス ) の場合
図 8.6-5 に , 16 ビットリード− 16 ビットリード ( 連続アドレス ) の動作を示します。
図 8.6-5 16 ビットリード− 16 ビットリード ( 連続アドレス ) の動作
BA
BA
BA1
IDLE
BA2
BA1
BA
BA2
BA
BA
BA
BA
CLK
AS
A[31:0]
An
D[31:24]
Dn0
Dm0
D[23:16]
Dn1
Dm1
D[15:8]
X
X
D[7:0]
X
X
Am
RDX
CSnX
CSmX
• 16 ビットリード− 16 ビットリード ( 不連続アドレス ) の場合
図 8.6-6 に, 16ビットリード−16ビットリード (不連続アドレス)の動作を示します。
図 8.6-6 16 ビットリード− 16 ビットリード ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
BA
BA
BA
BA
BA
BA
CLK
AS
A[31:0]
Am
An
D[31:24]
Dn0
Dm0
D[23:16]
0n1
Dm1
D[15:8]
X
X
D[7:0]
X
X
RDX
CSnX
CSmX
281
第 8 章 外部バスインタフェース
• 16 ビットリード− 16 ビットライト ( 不連続アドレス ) の場合
図 8.6-7 に, 16ビットリード−16ビットライト (不連続アドレス)の動作を示します。
図 8.6-7 16 ビットリード− 16 ビットライト ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
CLK
AS
A[31:0]
An
Am
D[31:24]
Dn0
Dm0
D[23:16]
Dn1
Dm1
D[15:8]
X
D[7:0]
X
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSnX
CSmX
282
BA
BA
BA
BA
第 8 章 外部バスインタフェース
● 32 ビットアクセス
32 ビットバス幅の場合 , 外部 D0 ∼ D31 が使われます。
• 32 ビットリード− 32 ビットリード ( 不連続アドレス ) の場合
図 8.6-8 に, 32ビットリード−32ビットリード (不連続アドレス)の動作を示します。
図 8.6-8 32 ビットリード− 32 ビットリード ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA
BA2
BA
BA
BA
BA
CLK
AS
A[31:0]
An
D[31:24]
Dn0
Dm0
D[23:16]
Dn1
Dm1
D[15:8]
Dn2
Dm2
D[7:0]
Dn3
Dm3
Am
RDX
CSnX
CSmX
• 32 ビットリード− 32 ビットライト ( 不連続アドレス ) の場合
図 8.6-9 に, 32ビットリード−32ビットライト (不連続アドレス)の動作を示します。
図 8.6-9 32 ビットリード− 32 ビットライト ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
BA
BA
BA
BA
CLK
AS
A[31:0]
An
Am
D[31:24]
Dn0
Dm0
D[23:16]
Dn1
Dm1
D[15:8]
Dn2
Dm2
D[7:0]
Dn3
Dm3
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSnX
CSmX
283
第 8 章 外部バスインタフェース
■ 8 ビットバス幅での動作
● 8 ビットアクセス
• 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の場合
図 8.6-10 に , 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の動作を示します。
図 8.6-10 8 ビットリード− 8 ビットリード ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
BA
BA
BA
BA
BA
CLK
AS
Am
A[31:0]
An
D[31:24]
Dn0
Dm0
D[23:16]
X
X
D[15:8]
X
X
D[7:0]
X
X
RDX
CSnX
CSmX
8 ビットおよび 16 ビットバス幅の場合 , WR0X ∼ WR3X 信号 ( 未使用データバス )
が I/O ポート機能で使用できます。
端子バス幅
D31 ∼ D24 WR0X
D23 ∼ D16 WR1X
D15 ∼ D8 WR2X
D7 ∼ D0 WR3X
32 ビット
×
×
×
×
16 ビット
×
×
○
○
8 ビット
×
○
○
○
× : I/O ポート使用不可
○ : I/O ポート使用可能
<注意事項>
284
データバスと WR1X ∼ WR3X のどの端子を I/O ポートとして使用できるかは , 領
域 0 ∼ 5 の最大バス幅に依存します。たとえば , 領域 0 ∼ 7 のバス幅がすべて 8
ビットなら , D23 ∼ D0, および WR1X ∼ WR3X は I/O ポートとして使用すること
が可能です。しかし , たとえば領域 1 だけが 16 ビットで残りの領域がすべて 8
ビットの場合は , 16 ビットが最大バス幅なので 8 ビットの領域アクセス中でも D23 ∼
D16, WR1X は I/O ポートとして使用できません。
この場合は , D15 ∼ D0, および WR2X/WR3X が I/O ポートとして使用できます。
第 8 章 外部バスインタフェース
• 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の場合
図 8.6-11 に , 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の動作を示します。
図 8.6-11 8 ビットリード− 8 ビットライト ( 不連続アドレス ) の動作
BA
BA
BA1
IDLE
BA2
BA1
BA
BA2
BA
BA
BA
CLK
AS
A[31:0]
An
Am
D[31:24]
Dn0
Dm0
D[23:16]
X
D[15:8]
X
D[7:0]
X
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSnX
CSmX
バス幅が 8 ビットの場合 , D23 ∼ D0 への入力値は無視されます。
● 16 ビットアクセス
• 16 ビットリード− 16 ビットリード ( 不連続アドレス ) の場合
図 8.6-12 に, 16ビットリード−16ビットリード(不連続アドレス)の動作を示します。
図 8.6-12 16 ビットリード− 16 ビットリード ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA2
BA
BA
BA
BA
BA
CLK
AS
A[31:0]
An
An+1
D[31:24]
Dn0
Dn1
Am+1
Am
Dm0
Dm1
D[23:16]
X
X
X
X
D[15:8]
X
X
X
X
D[7:0]
X
X
X
X
RDX
CSnX
CSmX
アクセス幅がデータバス幅を超えるとき , アドレスは MSB から順にアクセスされま
す。
285
第 8 章 外部バスインタフェース
• 16 ビットリード− 16 ビットライト ( 不連続アドレス ) の場合
図 8.6-13 に, 16ビットリード−16ビットライト(不連続アドレス)の動作を示します。
図 8.6-13 16 ビットリード− 16 ビットライト ( 不連続アドレス ) の動作
BA
BA
BA1
BA2
IDLE
BA1
BA
BA2
BA
BA
CLK
AS
A[31:0]
An
An+1
Am
Am+1
Dm0
Dm1
D[31:24]
Dn0
Dn1
D[23:16]
X
X
D[15:8]
X
X
D[7:0]
X
X
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSnX
CSmX
バス幅が 16 ビットのとき , D15 ∼ D0 への入力値は無視されます。
■ アイドルサイクルでの動作
アイドルサイクルは , CLKT と CLKB の内部同期化のために発生します。
アイドルサイクル数は , クロック比とアクセスタイプに依存します。
表 8.6-1 に , 最小アイドルサイクル数を示します。
表 8.6-1 最小アイドルサイクル数
286
CLKB:CLKT
read/read
read/write
write/*
1:1
1
2
0
1:2
1
1
0
1:3
0
1
0
1:4
0
1
0
1:8+
0
0
0
BA
第 8 章 外部バスインタフェース
■ ウェイトサイクルの動作
ウェイトサイクルには , AMD の WTC による自動ウェイトサイクルと , 外部 RDY 端子
を使用する外部ウェイトサイクルがあります。
● 自動ウェイトサイクル
図 8.6-14 に , バス幅が 16 ビットでハーフワードアクセスによる読出し / 書込みにおけ
る自動ウェイトサイクルのタイミングを示します。
図 8.6-14 自動ウェイトサイクルのタイミング
BA1
BA1
BA2
BA1
BA1
BA2
CLK
AS
外部A[31:0]
#2
#0
外部D[31:0]
#0:1
#2,3
外部RDX
外部WR0X,WR1X
ウエイト
ウエイト
• 自動ウェイトサイクルは , 各 AMD の WTC ビットを設定することにより実現できま
す。
• 上記は WTC が 001 すなわち 1 ウェイト挿入されたバスサイクルを示しており , 通常
2 クロック +1 ウェイトサイクルの計 3 クロックのバスサイクルになります。自動
ウェイトは最大 7 クロックサイクルまで ( バスサイクル 9 クロックサイクル ) 設定
できます。
● 外部ウェイトサイクル
図 8.6-15 に , バス幅が 16 ビットでハーフワードアクセスによる読出しにおける外部
ウェイトサイクルのタイミングを示します。
図 8.6-15 外部ウェイトサイクルのタイミング
BA1
BA1
BA1
BA1
BA1
BA2
CLK
AS
外部A[31:0]
#2
#0
外部D[31:16]
ウエイト
判定
外部RDX
#0:1
判定
外部RDY
RDYによるウェイト
2サイクル自動待機
• 外部ウェイトサイクルは , 各 AMD の RDYE ビットを "1" に設定し , 外部 RDY 端子
の入力を有効にすることにより実現できます。
• 外部 RDY を使用する場合は , 必ず 2 クロック以上の自動ウェイトサイクルを設定し
てください。
287
第 8 章 外部バスインタフェース
■ 外部バス要求
バス権開放のタイミングとバス権獲得のタイミングを示します。
● バス権解放
図 8.6-16 に , バス権開放のタイミングを示します。
図 8.6-16 バス権開放のタイミング
CLK
外部A
#0:1
外部D
Hi-Z
#0:1
Hi-Z
外部RDX
Hi-Z
BRQ
BGRNTX
1サイクル
● バス権獲得
図 8.6-17 に , バス権獲得のタイミングを示します。
図 8.6-17 バス権獲得のタイミング
CLK
外部A
外部D
外部RDX
Hi-Z
Hi-Z
Hi-Z
BRQ
BGRNTX
1サイクル
• PFR8 の P82 ビット * を "1" に設定することにより , BRQ, BGRNTX によるバスアー
ビトレーションを行うことができます。
*:「第 7 章 I/O ポート」を参照してください。
• バス権を解放するときは , 端子を Hi-Z にしてから 1 サイクル後に BGRNTX をアサー
トします。
• バス権を獲得するときは , BGRNTX をネゲートしてから 1 クロック後に各端子をア
クティブにします。
288
第 8 章 外部バスインタフェース
8.7
バスインタフェースを汎用入出力 ポートとして使用す
る方法
本アプリケーション・ノートでは , 外部バスインタフェースの入出力端子を汎
用入出力ポート
(「ポート・モード」) として使用する方法を解説します。MB91360 シリーズの
32 ビット・マイクロコントローラ・デバイス (MB91FV360GA, MB91F362GB およ
び MB91F369GA) に適用できます。
■ 概要
MB91360 シリーズの 32 ビット・マイクロコントローラ・デバイス (MB91FV360GA,
MB91F362GB および MB91F369GA) に適用できます。デバイスがシングル・チップ・
モードに初期化されている場合 (MD2=0, MD1=0, MD0=0) , モード・レジスタ MODR は
固定ベクタ 0x06 ( 内部 ROM, 32 ビット外部インタフェース ) に設定されています。ソ
フトウェアを用いて MODR の内容を変更することはできません。
「2.10.2 モード設定」
および 「2.10.3 フィックスベクタ」も参照してください。本節では , ソフトウェアを
用いて外部インタフェースの一部を汎用ポートとして使用するための 2 とおりの方法
について解説します。
• CAN を使用せずに 7 つのポート (MB91F362GB の 48 個の端子 ) を汎用入出力機能
に設定する方法
• CAN を使用して 4 つのポート (MB91F362GB の 32 個の端子 ) を汎用入出力機能に
設定する方法
289
第 8 章 外部バスインタフェース
8.7.1
注意事項
いずれの方法を使用する場合も , 電源投入中の外部インタフェースの状態を考慮に入
れる必要があります。外部インタフェースは , 以下のブート・シーケンス中にアクティ
ブになります。
■ 発振安定時間
初期化リセット後 , デバイスは発振安定時間 (32 ms) だけ待機します。
■ ブート ROM 処理
発振安定時間の終了後 , 固定モード・ベクタおよびリセット・ベクタが獲得されます。
外部インタフェース・ポートには以下の値があります。
I/O 端子
入力 / 出力
値
A[21:0]
出力
0x0FFFF8
D[31:0]
入力
Hi-Z
CS6X, CS5X, CS4X, CS3X, CS2X, CS1X, CS0X
出力
1
RDX, WR3X, WR2X, WR1X, WR0X
出力
1
CLK
出力
CLKT パルス
ALE, AS, AH, BRQ, BGRNTX, RDY
入力
Hi-Z
ブート ROM ソフトウェアがフラッシュ・セキュリティ・ベクタで有効な入力値を検
出すると , フラッシュ・エントリ・アドレスへのジャンプが実行されます。ブート ROM
ソフトウェアがフラッシュ・セキュリティ・ベクタで有効な入力値を検出すると , フ
ラッシュ・エントリ・アドレスへのジャンプが実行されます。ブート ROM ソフトウェ
アがフラッシュ・セキュリティ・ベクタで有効な入力値を検出すると , フラッシュ・エ
ントリ・アドレスへのジャンプが実行されます。
290
第 8 章 外部バスインタフェース
8.7.2
使用レジスタ
以下のレジスタを使用して , 外部インタフェース・ポートにアクセスします。
表 8.7-1 外部インタフェースポートレジスタ
レジスタ
アドレス
ブロック
+0
+1
+2
+3
000000H
PDR0 [R/W]
XXXX XXXX
PDR1 [R/W]
XXXX XXXX
PDR2 [R/W]
XXXX XXXX
PDR3 [R/W]
XXXX XXXX
000004H
PDR4 [R/W]
XXXX XXXX
PDR5 [R/W]
XXXX XXXX
PDR6 [R/W]
- - - X XXXX
PDR7 [R/W]
- 111 - - - -
000008H
PDR8 [R/W]
XXXX XXXX
PDR9 [R/W]
XXXX XXX1
000600H
DDR0 [R/W]
0000 0000
DDR1 [R/W]
0000 0000
DDR2 [R/W]
0000 0000
DDR3 [R/W]
0000 0000
000604H
DDR4 [R/W]
0000 0000
DDR5 [R/W]
0000 0000
DDR6 [R/W]
0000 0000
DDR7 [R/W]
0000 0000
000608H
DDR8 [R/W]
0000 0000
DDR9 [R/W]
0000 0000
000610H
PFR0 [R/W]
0000 0000
PFR1 [R/W]
0000 0000
PFR2 [R/W]
0000 0000
PFR3 [R/W]
0000 0000
000614H
PFR4 [R/W]
0000 0000
PFR5 [R/W]
0000 0000
PFR6 [R/W]
1111 1111
PFR7 [R/W]
0000 1111
PFR8 [R/W]
1111 10-0
PFR9 [R/W]
1111 0101
000618H
000624H
--
--
--
--
ポートデータ
レジスタ
PDRB [R/W]
- - - - - XXX
データ方向
レジスタ
DDRB [R/W]
0000 0000
--
PFRB [R/W]
0000 0000
--
PFR27 [R/W]
1111 -00-
ポート機能
レジスタ
ポートデータレジスタ (PDR) , データ方向レジスタ (DDR) およびポート機能レジスタ
(PFR) の動作については , 「7.1 I/O ポートとレジスタ構成」にある通常の入出力ポー
トの解説を参照してください。
ポート 7, 8, 9 および B のレジスタについては , 「7.1 I/O ポートとレジスタ構成」およ
び 「7.2 ポート機能レジスタ (PFR) の設定」を参照してください。
291
第 8 章 外部バスインタフェース
8.7.3
CAN を使用しないソフトウェア操作
■ ポート設定可能
CAN を使用しない場合は , 48 個の端子 (MB91F362GB) を持つ 7 つのポートを汎用
ポート・モードに設定できます。
表 8.7-2 CAN を使用しない場合のポート・モードの外部インタフェース
I/O 端子
ポート
コメント
A[20:16]
P6[4:0]
ポート・モードに設定可能
A[15:0]
P5[7:0]
P4[7:0]
アドレス出力中
D[31:24]
P3[7:0]
双方向データバスを保持
D[23:0]
P2[7:0]
P1[7:0]
P0[7:0]
ポート・モードに設定可能
CS6X, CS5X, CS4X
P7[6:4]
ポート・モードに設定可能
WR3X, WR2X, WR1X,
WR0X, RDX,
BRQ, BGRNTX, RDY
P8[7:3]
P8[2:0]
ポート・モードに設定可能
CS3X, CS2X, CS1X, CS0X,
AH, CLK, ALE, AS
P9[7:4]
P9[3:0]
ポート・モードに設定可能
■ セットアップシーケンス
この設定は , フラッシュ・ソフトウェアの開始時に実行することを推奨します。
• CLKB, CLKP, CLKT および CLKS を 1/1 に設定します ( ここでは PLL を開始しない ) 。
• CAN クロック ( ブート ROM で有効化されたクロック ) を無効にします。
• CSE レジスタの CS7 (CAN) および CS0 を無効にします。
• CS0 および CS7 領域の外部インタフェースを 8 ビット /0 待機状態に再設定します。
• ポート 0 ∼ポート 9 のポート機能レジスタをクリアします ( ポート 3, 4, 5 には影響
なし ) 。
• アプリケーションの開始
■ アセンブラ例
;;;
***************************************************************
.section main,code,locate=_PC_ADDRESS;; 0x00F4000
(in Flash)
;; --------------- manual startup... --------------// ** set CLKB & CLKP & CLKT & CLKS to 1/1 (no PLL here)
ldi:20 #0x0000,r1
// CLK[BPTS]=1/1
ldi:32 #_DIVR0,r12
// set DIVR address
sth
r1,@r12
//
_MAIN00:
292
第 8 章 外部バスインタフェース
;
###############################################################
; Setup ext. I/F to port mode:
;
###############################################################
; ------ Disable CAN clock (was enabled by boot ROM) ---------LDI
#_CMCR,R12
LDI
#0x000, R0
; disable CAN clock (CPU/2)
STH
R0,@R12
; ------ Disable CS7 (CAN) and CS0 ---------------------------LDI
#_CSE,R12; Chip select enable register
LDI
#0x00,R1
; disable CS7, CS0
STB
R1,@R12
;; -------- ext. I/F to 8 bit --------------------------------LDI
#_AMD0,R12; Area Mode reg
AMD0
;;
LDI
#0x11,R1
; 32-Bit Bus, 1 wait state,
no ready-pin
;;
;
(done by BootROM)
LDI
#0x00,R1
; 8-Bit Bus, 0 wait state,
no ready-pin
STB
R1,@R12
LDI
;;
LDI
ready-pin enabled
;;
(done by BootROM)
LDI
no ready-pin
STB
#_AMD7,R12
#0x29,R1
; Area Mode reg
AMD7 (CAN)
; 16-Bit Bus, 1 wait state,
;
#0x00,R1
;
8-Bit Bus, 0 wait state,
R1,@R12
;; -------- Clear all PFR’s ----------------------------------LDI
#0x0000,R0
;; clear all PFR’s
LDI
#_PFR27,R1
;;
stb
R0,@R1
;; Port 7 PFR2, Addr=0x0627
LDI
#_PFR0,R14
;;
stb
r0,@(r14,0x0)
;; Port 0 PFR, Addr=0x0610
stb
r0,@(r14,0x1)
;; Port 1 PFR, Addr=0x0611
stb
r0,@(r14,0x2)
;; Port 2 PFR, Addr=0x0612
stb
r0,@(r14,0x3)
;; Port 3 PFR, Addr=0x0613
stb
r0,@(r14,0x4)
;; Port 4 PFR, Addr=0x0614
stb
r0,@(r14,0x5)
;; Port 5 PFR, Addr=0x0615
stb
r0,@(r14,0x6)
;; Port 6 PFR, Addr=0x0616
stb
r0,@(r14,0x7)
;; Port 7 PFR, Addr=0x0617
stb
r0,@(r14,0x8)
;; Port 8 PFR, Addr=0x0618
stb
r0,@(r14,0x9)
;; Port 9 PFR, Addr=0x0619
Start_Application:
;; ========== Start Your application here...
293
第 8 章 外部バスインタフェース
8.7.4
CAN を使用したソフトウェア操作
■ ポート設定可能
CAN を使用する場合は , 33 個の端子を持つ 5 つのポートを汎用ポート・モードに設定
できます。
CAN を使用した場合のポート・モードの外部インタフェースの設定について , 表 8.7-3
に示します。
表 8.7-3 CAN を使用した場合のポート・モードの外部インタフェース
I/O 端子
ポート
コメント
A[20:16]
P6[4:0]
ポート・モードに設定可能
A[15:0]
P5[7:0]
P4[7:0]
アドレス出力中
D[31:16]
P3[7:0]
P2[7:0]
双方向データバスを保持
(I/F の実行時 , CAN に 16 ビット必要 )
D[15:0]
P1[7:0]
P0[7:0]
ポート・モードに設定可能
CS6X, CS5X, CS4X
P7[6:4]
ポート・モードに設定可能
WR3X, WR2X, WR1X, WR0X, RDX
BRQ, BGRNTX
RDY
P8[7:3]
P8[2:1]
P8[0]
WRX[3:0], RDX 出力を保持
ポート・モードに設定可能
RDY 入力中
CS3X, CS2X, CS1X, CS0X,
AH
CLK
ALE, AS
P9[7:4]
P9[3]
P9[2]
P9[1:0]
ポート・モードに設定可能
ポート・モードに設定可能
CLK は CLKT 出力のままです。
ポート・モードに設定可能
■ セットアップシーケンス
この設定は , フラッシュ・ソフトウェアの開始時に実行することを推奨します。
• CLKB, CLKP, CLKT および CLKS を 1/1 に設定します ( ここでは PLL を開始しない ) 。
• CSE レジスタの CS0 を無効にします。
• CS0 領域の外部インタフェースを 16 ビット /0 待機状態に再設定します。
• ポート 0 ∼ポート 7 のポート機能レジスタ ( ポート 2, 3, 4, 5 には影響なし ) および
ポート 8/9 の PFR で使用可能なビットをクリアします。
• アプリケーションの開始
■ アセンブラ例
;;;
***************************************************************
.section main,code,locate=_PC_ADDRESS;; 0x00F4000 (in Flash)
;; --------------- manual startup... --------------// ** set CLKB & CLKP & CLKT & CLKS to 1/1 (no PLL here)
ldi:20
#0x0000,r1
// CLK[BPTS]=1/1
ldi:32
#_DIVR0,r12
// set DIVR address
sth
r1,@r12
//
_MAIN00:
294
第 8 章 外部バスインタフェース
;
###############################################################
; Setup ext. I/F to port mode:
;
###############################################################
; ----- DON’T Disable CAN clock (was enabled by boot ROM) ---; ----- Disable CS0 ---------------------------------LDI
#_CSE,R12
; Chip select enable register
LDI
#0x80,R1
; disable CS0, CS7 is for CAN
STB
R1,@R12
;; ----- ext. I/F to 16bit (8 bit makes no sense) ----------LDI
#_AMD0,R12 ; Area Mode reg AMD0
;;
LDI
#0x11,R1
; 32-Bit Bus, 1 wait state, no
ready-pin
;;
; (done by BootROM)
LDI
#0x08,R1
; 16-Bit Bus, 0 wait state, no
ready-pin
STB
R1,@R12
;; ----- DON’T change AMD7 mode (is prepared by BootROM) ----;; ----- Clear all PFR’s ------------------------------------LDI
#0x0000,R0
;; clear all PFR’s
LDI
#_PFR27,R1
;;
stb
R0,@R1
;; Port 7 PFR2, Addr=0x0627
LDI
#_PFR0,R14
;;
stb
r0,@(r14,0x0)
;; Port 0 PFR, Addr=0x0610
stb
r0,@(r14,0x1)
;; Port 1 PFR, Addr=0x0611
stb
r0,@(r14,0x2)
;; Port 2 PFR, Addr=0x0612
stb
r0,@(r14,0x3)
;; Port 3 PFR, Addr=0x0613
stb
r0,@(r14,0x4)
;; Port 4 PFR, Addr=0x0614
stb
r0,@(r14,0x5)
;; Port 5 PFR, Addr=0x0615
stb
r0,@(r14,0x6)
;; Port 6 PFR, Addr=0x0616
stb
r0,@(r14,0x7)
;; Port 7 PFR, Addr=0x0617
ldi
#0xF9,R0
;; PFR8: WRX[3:0],RDX,RDY
needed.
stb
r0,@(r14,0x8)
;; Port 8 PFR, Addr=0x0618
ldi
#0x04,R0
;; PFR9: CLK needed.
stb
r0,@(r14,0x9)
;; Port 9 PFR, Addr=0x0619
Start_Application:
;; ========== Start Your application here...
295
第 8 章 外部バスインタフェース
296
第9章
割込みコントローラ
割込みコントローラの概要を示し , レジスタの構造
と機能 , および割込みコントローラの動作について
説明します。
9.1 割込みコントローラの概要
9.2 割込みコントローラのレジスタ
9.3 割込みコントローラの動作
297
第 9 章 割込みコントローラ
9.1
割込みコントローラの概要
割込みコントローラは , 割込み受付 / 調停処理を制御します。
■ ハードウェア構成
本モジュールは , 以下のものから構成されます。
• ICR レジスタ
• 割込み優先度判定回路
• 割込みレベル , 割込み番号 ( ベクタ ) 発生部
• ホールド要求取下げ要求発生部
■ 主要機能
本モジュールには , 主に以下のような機能があります。
• NMI 要求 / 割込み要求の検出
• 優先度判定 ( レベル , および番号による )
• 判定結果の要因の割込みレベル伝達 (CPU へ )
• 判定結果の要因の割込み番号伝達 (CPU へ )
• NMI/ 割込みレベルが "LEVEL ≠ 11111" 以外の割込み発生によるストップモードか
らの復帰指示 (CPU へ )
• バスマスタへのホールド要求取下げ要求発生
■ ブロックダイヤグラム
図 9.1-1 に割込みコントローラのブロックダイヤグラムを示します。
図 9.1-1 ブロックダイヤグラム
UNMI
WAKEUP (LEVEL≠11111の場合,1)
優先度判定
5
LEVEL4~LEVEL0
NMI処理
LEVEL 判定
R100
.
.
.
R147
(DLYIRQ)
ICR00
.
.
.
ICR47
VECTOR判定
R バス
298
6
LEVEL
および
VECTOR
発生
HLDREQ
撤回要求
MHALTI
VCT5~VCT0
第 9 章 割込みコントローラ
9.2
割込みコントローラのレジスタ
割込みコントローラで使用するレジスタについて説明します。
■ 割込みコントローラのレジスタ一覧
図 9.2-1 に割込みコントローラのレジスタ一覧を示します。
図 9.2-1 割込みコントローラのレジスタ一覧
bit
7
6
5
4
3
2
1
0
アドレス : 00000440H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR00
アドレス : 00000441H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR01
アドレス : 00000442H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR02
アドレス : 00000443H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR03
アドレス : 00000444H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR04
アドレス : 00000445H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR05
アドレス : 00000446H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR06
アドレス : 00000447H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR07
アドレス : 00000448H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR08
アドレス : 00000449H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR09
アドレス : 0000044AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス : 0000044BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR11
アドレス : 0000044CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR12
アドレス : 0000044DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR13
アドレス : 0000044EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR14
アドレス : 0000044FH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR15
アドレス : 00000450H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR16
アドレス : 00000451H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR17
アドレス : 00000452H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR18
アドレス : 00000453H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR19
アドレス : 00000454H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR10
アドレス : 00000455H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR21
アドレス : 00000456H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR22
アドレス : 00000457H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR23
アドレス : 00000458H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR24
アドレス : 00000459H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR25
アドレス : 0000045AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR26
アドレス : 0000045BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR27
アドレス : 0000045CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR28
アドレス : 0000045DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR29
アドレス : 0000045EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR30
アドレス : 0000045FH
アドレス : 00000460H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR31
-
-
-
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR32
(続く)
299
第 9 章 割込みコントローラ
(続き )
bit
7
6
5
4
3
2
1
0
アドレス : 00000461H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR33
アドレス : 00000462H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR34
アドレス : 00000463H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR35
アドレス : 00000464H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR36
アドレス : 00000465H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR37
アドレス : 00000466H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR38
アドレス : 00000467H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR39
アドレス : 00000468H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR40
アドレス : 00000469H
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR41
アドレス : 0000046AH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR42
アドレス : 0000046BH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR43
アドレス : 0000046CH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR44
アドレス : 0000046DH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR45
アドレス : 0000046EH
-
-
-
ICR4
ICR3
ICR2
ICR1
ICR0
ICR46
アドレス : 0000046FH
-
-
-
ICR4
R
ICR3
R/W
ICR2
R/W
ICR1
R/W
ICR0
R/W
ICR47
-
-
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
HRCL
アドレス : 00000045H MHALTI
R/W
■ ICR(Interrupt Control Register)
ICR は , 割込み制御レジスタです。各割込み入力に対して 1 つずつ設けられており , 対
応する割込み要求の割込みレベルを設定します。
図 9.2-2 に割込み制御レジスタ (ICR) のビット構成を示します。
図 9.2-2 割込み制御レジスタ (ICR) のビット構成
bit7
-
6
-
5
-
4
3
2
1
0
初期値
---11111B
ICR4
ICR3
ICR2
ICR1
ICR0
R
R/W
R/W
R/W
R/W
[bit4 ∼ bit0] ICR4 ∼ ICR0
割込みレベル設定ビットで , 対応する割込み要求の割込みレベルを指定します。
このレジスタに設定した割込みレベルが CPU の ILM レジスタに設定されたレベル
マスク値以上の場合は , CPU 側で割込み要求はマスクされます。
リセットにより , レジスタは "11111B" に初期化されます。
設定可能な割込みレベル設定ビットと割込みレベルの対応を表 9.2-1 に示します。
300
第 9 章 割込みコントローラ
表 9.2-1 割込みレベル設定ビットと割込みレベルの対応
ICR4
ICR3
ICR2
ICR1
ICR0
0
0
0
0
0
0
0
1
1
1
0
14
0
1
1
1
1
15
NMI
1
0
0
0
0
16
設定可能な最強レベル
1
0
0
0
1
17
(強)
1
0
0
1
0
18
1
0
0
1
1
19
1
0
1
0
0
20
1
0
1
0
1
21
1
0
1
1
0
22
1
0
1
1
1
23
1
1
0
0
0
24
1
1
0
0
1
25
1
1
0
1
0
26
1
1
0
1
1
27
1
1
1
0
0
28
1
1
1
0
1
29
1
1
1
1
0
30
1
1
1
1
1
31
割込みレベル
システム予約
(弱)
割込み禁止
( 注意事項 ) ICR4 ビットは "1" 固定で , "0" を書き込むことはできません。
■ HRCL(Hold Request Cancel Level register)
このレジスタは , ホールド要求取下げ要求を発生するためのレベルを設定します。
図 9.2-3 に HRCL レジスタのビット構成を示します。
図 9.2-3 HRCL レジスタのビット構成
bit
7
アドレス : 00000045H MHALTI
R/W
6
5
4
3
2
1
0
−
−
LVL4
R
LVL3
R/W
LVL2
R/W
LVL1
R/W
LVL0
R/W
初期値
0--11111B
[bit7] MHALTI
MHALTI ビットは , マスク不可割込み (NMI) の要求を示します。このビットは NMI
要求によって "1" に設定されます。NMI 要求は , このビットに "0" を書き込むこと
によってクリアされます。
301
第 9 章 割込みコントローラ
[bit4 ∼ bit0] LVL4 ∼ LVL0
LVL4 ∼ LVL0 は , バスマスタへのホールド要求取下げ要求を出すための割込みレ
ベルを設定します。
このレジスタに設定した割込みレベルより高いレベルを持つ割込み要求が発生し
た場合は , バスマスタに対してホールド要求取下げ要求を出力します。
LVL4 ビットは "1" 固定で , "0" を書き込むことはできません。
302
第 9 章 割込みコントローラ
9.3
割込みコントローラの動作
割込みコントローラの動作について説明します。
■ 優先順位判定
本モジュールでは , 同時に発生している割込み要因の中で最も優先度の高い要因を選
択し , その要因の割込みレベルと割込み番号を CPU へ出力します。
割込み要因の優先順位判定基準は , 次のとおりです。
• NMI
• 以下の条件を満たす割込み要因
- 割込みレベルの数値が 31 以外 (31 は割込み禁止 )
- 割込みレベルの数値が最も小さい要因
- その中で , 最も小さい割込み番号を持つ要因
上記の判定基準により割込み要因が1つも選択されなかった場合は, 割込みレベルとし
て 31("11111B") を出力します。そのときの割込み番号は不定です。
割込み要因と割込み番号 , 割込みレベルの関係を「付録 B 割込みベクタ」の表に示し
ます。
■ マスク不可割込み (NMI: Non-Maskable Interrupt)
NMI は , 本モジュールが取り扱う割込み要因の中では最も優先順位が高くなっていま
す。
そのため , 他の割込み要因と同時発生の場合は常に NMI が選択されます。
● NMI 発生
NMI が発生すると , CPU に対して次の情報を伝えます。
• 割込みレベル : 15("01111B")
• 割込み番号 :
15("0001111B")
● NMI 検出
NMI の設定 , および検出は , 外部割込み /NMI モジュールで行います。本モジュールで
は NMI 要求により , 割込みレベル / 割込み番号 , MHALTI の生成だけを行います。
■ ホールド要求取下げ要求 (HRCL)
優先度の高い割込み処理を CPU のホールド中に行いたい場合は , ホールド要求発生元
から要求を取り下げる必要があります。この取下げ要求発生の基準となる割込みレベ
ルを , HRCL レジスタに設定します。
● 発生基準
HRCL レジスタに設定した割込みレベルより高いレベルの割込み要因が発生した場合
は , ホールド要求取下げ要求を発生します。
• HRCL レジスタの割込みレベル>優先度判定後の割込みレベル
→取下げ要求発生
303
第 9 章 割込みコントローラ
• HRCL レジスタの割込みレベル≦優先度判定後の割込みレベル
→取下げ要求なし
取下げ要求発生原因となった割込み要因をクリアしない限り , この取下げ要求は有効
であり , 結果的にいつまでも DMA 転送が起こらないことになります。必ず対応する割
込み要因をクリアしてください。
また , NMI を使用したときは , HRCL レジスタの MHALTI ビットが "1" となっている
ため , 取下げ要求が有効です。CPU をホールド状態にするには , MHALTI ビットをク
リアします。
● 設定可能なレベル
HRCL レジスタに設定可能な値は , ICR と同様に "10000B" から "11111B" までです。
"11111B" に設定した場合はすべての割込みレベルに対して取下げ要求を発生し , また ,
"10000B" に設定した場合は NMI でのみ取下げ要求を発生します。
ホールド要求取下げ要求発生となる割込みレベルの設定を表 9.3-1 に示します。
表 9.3-1 HRCL レジスタの割込みレベル設定
HRCL レジスタ
取下げ要求発生となる割込みレベル
16
NMI のみ
17
NMI, 割込みレベル 16
18
NMI, 割込みレベル 16, および 17
∼
31
<注意事項>
∼
NMI, 割込みレベル 16 ∼ 30 [ 初期値 ]
リセット後は , すべての割込みレベルに対して DMA 転送を抑止します。すなわち ,
割込みが発生していると DMA 転送が行われませんので , HRCL レジスタを必要な
値に設定してください。
■ スタンバイモード ( ストップ / スリープ ) からの復帰
割込み要求の発生により , ストップモードから復帰する機能を本モジュールで実現し
ます。NMI を含む , 周辺からの割込み要求 ( 割込みレベルが "11111B" 以外 ) が 1 つで
も発生すると , クロック制御部に対してストップモードからの復帰要求を発生します。
優先度判定部はストップ復帰後クロックが供給されてから動作を再開しますので , 優
先度判定部の結果が出るまでの間 CPU は命令を実行することになります。
スリープ状態からの復帰においても , 同様に動作します。
また , スリープ中であっても , 本モジュール内のレジスタはアクセス可能です。
<注意事項>
304
• NMI 要求に対してもストップモードからの復帰を行います。ただし , ストップ時
にも有効な入力を検出するように NMI を設定してください。
• ストップおよびスリープからの復帰の要因としたくない割込み要因は , 対応する
周辺の制御レジスタで割込みレベルを "11111B" に設定してください。
第 9 章 割込みコントローラ
■ ホールド要求取下げ要求機能 (HRCL) の使用例
DMA 転送中に , CPU が優先度の高い処理を行いたいときは , DMA にホールド要求を
取り下げてもらって CPU のホールド状態を解除する必要があります。ここでは , 割込
みを利用して DMA にホールド要求を取り下げてもらうこと , すなわち CPU の優先動
作を実現します。
● 制御レジスタ
• HRCL( ホールド要求取下げレベル設定レジスタ ): 本モジュール
このレジスタに設定した割込みレベルより高いレベルの割込みが発生した場合に ,
DMA に対してホールド要求取下げ要求を発生します。その基準となるレベルを設
定します。
• ICR: 本モジュール
使用する割込み要因に対応する ICR に , HRCL レジスタよりも高いレベルを設定し
ます。
● ハードウェア間の信号の流れ
ハードウェア間における各信号の流れは , 図 9.3-1 のようになっています。
図 9.3-1 ハードウェア間における信号の流れ
バスアクセス要求
本モジュール
IRQ
DHREQ
MHALTI
I-UNIT
(ICR)
(HRCL)
DMA
B-UNIT
CPU
DHACK
DHREQ :D-バスホールド要求
DHACK
:D-バスホールドアクノリッジ
IRQ
:割込み要求
MHALTI :ホールド要求取り下げ要求
305
第 9 章 割込みコントローラ
■ シーケンス
図 9.3-1 に示したハードウェア間の各信号のシーケンスを図 9.3-2 , 図 9.3-3 に示しま
す。
図 9.3-2 割込みレベル (HRCL > a の場合 )
RUN
バスホールド
割込み処理
バスホールド
(DMA転送)
CPU
バスアクセス要求
DHREQ
DHACK
IRQ
LEVEL
MHALTI
注意事項:割込みルーチンの例
1:割込み要因クリア
2:RETI
割込み要求が発生すると割込みレベルが変化して , これが HRCL レジスタに設定した
レベルより強いと DMA に対して MHALTI をアクティブにします。これによって DMA
はアクセス要求を取り下げ , CPU はホールド状態から復帰して割込み処理を行います。
多重割込みの場合を , 図 9.3-3 に示します。
図 9.3-3 割込みレベル (HRCL > a > b の場合 )
RUN
CPU
バスホールド
割込みI
割込み処理II
3
4
割込み処理I
1
2
バスホールド
(DMA転送)
バスアクセス要求
DHREQ
DHACK
IRQ1
IRQ2
LEVEL
MHALTI
注意事項:割込ルーチンの例
1, 3: 割込み要因例
2, 4: RETI
上記例では, 割込みルーチン1を実行中にそれよりも優先度の高い割込みが発生した場
合を示しています。HRCL レジスタに設定した割込みレベルより高い割込みレベルが
発生している間は , DHREQ は下がっています。
<注意事項>
306
HRCL レジスタと ICR に設定する割込みレベルの関係には , 十分注意してくださ
い。
第 10 章
外部割込み /
NMI コントローラ
外部割込み /NMI コントローラの概要を示し , レジ
スタの構成と機能 , および外部割込み /NMI コント
ローラの動作について説明します。
NMIX 端子が存在する型格は2つです。
10.1 外部割込みコントローラの概要
10.2 外部割込みコントローラのレジスタ
10.3 外部割込みコントローラの動作
307
第 10 章 外部割込み / NMI コントローラ
10.1
外部割込みコントローラの概要
外部割込み /NMI コントローラは , NMI 端子 , および INT0 ∼ INT7 から入力される外
部割込み要求を制御します。
"H" レベル , "L" レベル , 立上りエッジ , および立下りエッジの検出が選択できます
(NMI を除きます )。
外部割込み /NMI コントローラは , DMA 要求についても使用できます。
ここでは , コントローラのレジスタ構成と , そのブロックダイヤグラムを示します。
■ 外部割込み , および NMI コントローラのレジスタ構成
図 10.1-1 に外部割込み , および NMI コントローラのレジスタ構成を示します。
図 10.1-1 外部割込み , および NMI コントローラのレジスタ構成
bit
外部割込み許可
レジスタ (ENIR)
ENIR
bit
外部割込み要因
レジスタ (EIRR)
EIRR
bit
外部割込み要求
レベル設定
レジスタ (ELVR)
ELVR
bit
7
6
5
4
3
2
1
0
初期値
EN7
EN6
EN5
EN4
EN3
EN2
EN1
EN0
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
ER7
ER6
ER5
ER4
ER3
ER2
ER1
ER0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
9
8
LB7
LA7
LB6
LA6
LB5
LA5
LB4
LA4
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00000000B
00000000B
00000000B
■ 外部割込み , および NMI コントローラのブロックダイヤグラム
図 10.1-2 に外部割込み, およびNMIコントローラのブロックダイヤグラムを示します。
図 10.1-2 外部割込み , および NMI コントローラのブロックダイヤグラム
Rバス
8
割込み要求
9 ゲート
Gate
8
8
308
割込み許可レジスタ
要求F/F
エッジ検出回路
外部割込み要因レジスタ
外部割込み要求レベル
External
level
regist
設定レジスタ
9
INT0~INT7
NMIX
第 10 章 外部割込み / NMI コントローラ
10.2
外部割込みコントローラのレジスタ
割込み要求許可レジスタ (ENIR), 外部割込み要因レジスタ (EIRR), および外部割込み
要求レベル設定レジスタ (ELVR) について説明します。
■ 割込み許可レジスタ (ENIR)
図 10.2-1 に割込み許可レジスタ (ENIR) のビット構成を示します。
図 10.2-1 割込み許可レジスタのビット構成
アドレス
ENIR 000041H
bit7
EN7
6
EN6
5
EN5
4
EN4
3
EN3
2
EN2
1
EN1
0
EN0
初期値
アクセス
00000000B
R/W
割込み許可レジスタ (ENIR) は , 外部割込み要求出力のマスク制御を行います。
このレジスタで "1" に設定されているビットに対応する割込み要求の出力が許可され ,
( たとえば , EN0 は INT0 を許可するかどうかを制御します。) 割込み要求が , 割込みコ
ントローラに対して出力されます。
このレジスタで "0" に設定されているビットに対応する端子については , 割込み要因は
保持されますが , 割込みコントローラに対して要求は出力されません。
マスク不可割込み (NMI) に対するマスクビットは提供されません。
<注意事項>
■ 外部割込み要因レジスタ (EIRR)
図 10.2-2 に外部割込み要因レジスタ (EIRR) のビット構成を示します。
図 10.2-2 外部割込み要求レジスタのビット構成
アドレス
EIRR 000040H
bit7
ER7
6
ER6
5
ER5
4
ER4
3
ER3
2
ER2
1
ER1
0
ER0
初期値
アクセス
00000000B
R/W
外部割込み要因レジスタ (EIRR) は , 読出し時には , 対応する外部割込み要求が存在す
るかどうかを示します。書込み時には , その要求を格納していたフリップフロップ
(NMI フラグ ) 内容をクリアするレジスタです。
読出し時に "1" を返すビットは , 対応する端子に外部割込み要求が存在することを示し
ます。
同様に , あるビットに "0" を書き込むと , そのビットに対応する要求を格納していたフ
リップフロップがクリアされます。"1" の書込みは無効です。
リードモディファイライト命令に対しては , レジスタビットは常に "1" として読み出さ
れます。
<注意事項>
ユーザによる NMI フラグの読出し , および書込みはできません。
309
第 10 章 外部割込み / NMI コントローラ
■ 外部割込み要求レベル設定レジスタ (ELVR)
図 10.2-3 に外部割込み要求レベル設定レジスタ (ELVR) のビット構成を示します。
図 10.2-3 外部割込み要求レベル設定レジスタのビット構成
アドレス
ELVR 000042H
bit15
LB7
14
LA7
13
LB6
12
LA6
11
LB5
10
LA5
9
LB4
8
LA4
初期値
アクセス
00000000B
R/W
000043H
bit7
LB3
6
LA3
5
LB2
4
LA2
3
LB1
2
LA1
1
LB0
0
LA0
初期値
アクセス
00000000B
R/W
外部割込み要求レベル設定レジスタ (ELVR) は , 要求の検出方法を指定します。
INT0 ∼ INT7 に 2 ビットずつ割り当てられています。その設定を表 10.2-1 に示します。
要求入力がレベル検出に設定されている場合 , 対応する EIRR レジスタのビットの入力
がアクティブレベルであれば , クリアされても直ちに再設定されます。
表 10.2-1 外部割込み要求レベルの設定
LBx
LAx
0
0
"L" レベルで要求を発生します。
0
1
"H" レベルで要求を発生します。
1
0
立上りエッジで要求を発生します。
1
1
立下りエッジで要求を発生します。
動作
NMI は , NMI 入力の立下りエッジだけを検出します ( ストップモード時以外 )。
ストップモード時は , NMI は "L" レベルを検出します。
310
第 10 章 外部割込み / NMI コントローラ
10.3
外部割込みコントローラの動作
外部割込みの動作 , ストップモードの解除 , 外部割込みの操作手順 , 外部割込み要求
レベル , および NMl について説明します。
■ 外部割込みの動作
要求レベル , および許可レジスタが設定された後 , ELVR レジスタで指定されたタイプ
の要求が割込み端子に入力されると , 外部割込みコントローラが割込みコントローラ
に対して割込み要求信号を発生します。割込みコントローラは , 同時発生した割込みの
優先順位を評価し , 本リソースからの割込みが最も優先順位が高かったときに , 該当す
る割込みが発生します。
図 10.3-1 に割込み要求信号のフローを示します。
図 10.3-1 割込み要求信号のフロー
External
interrupt
contro周辺系要求 Interrupt
contro
割込み
外部割込み
コントローラ
コントローラ
ELVR
EIRR
ENIR
CPU
ICR yy
IL
CMP
ICR XX
CMP
ILM
割込み入力
■ ストップモードの解除
ストップモードでクロックが停止している状態を解除するために外部割込みを使用す
る場合 , 要求入力タイプを "H" レベル要求に設定してください。"L" レベル要求を使用
すると誤動作となる場合があります。クロックが停止しているストップモードを , エッ
ジ検出要求を使用して解除することはできません。
■ 外部割込みの操作手順
外部割込みコントローラのレジスタを設定するには , 次の手順を使用します。
1. 許可レジスタの対象となるビットを無効に設定します。
2. 要求レベル設定レジスタの対象となるビットを設定します。
3. 要因レジスタの対象となるビットをクリアします。
4. 許可レジスタの対象となるビットを有効に設定します。
手順 3. および 4. は , 16 ビットデータの書込みとして同時に実行できます。
レジスタを設定する前に , 必ず , 許可レジスタで割込みを無効にしてください。また ,
許可レジスタで割込みを有効にする前に , 必ず , 要因レジスタをクリアしてください。
これは , レジスタを設定するときや , 割込み許可状態時に , 割込み要求が誤って発生す
るのを防止するためです。
■ 外部割込み要求レベル
要求のタイプがエッジ検出に設定されている場合 , エッジを確実に検出するには , 少な
くとも 3 マシンサイクル ( 周辺系クロックマシンサイクル ) のパルス幅が必要です。
要求タイプがレベル検出に設定されている場合 , ある外部要求入力があって後にそれ
311
第 10 章 外部割込み / NMI コントローラ
が削除されても , その割込み要因は内部回路に格納されるため , 外部入力が削除された
後も , 割込みコントローラへの要求はアクティブのままです。割込みコントローラへの
要求をクリアするには , 要求レジスタをクリアする必要があります。
図 10.3-2 に割込み要因保持回路の状態を示します。図 10.3-3 にその状態のときのタイ
ムチャートを示します。
図 10.3-2 割込みタイプがレベル検出に設定されているときの割込み要因保持回路のクリア
割込み入力
要因 F/F
( 要因保持回路)
レベル検出
許可ゲート
割込み
コントローラ
クリアしない限り要因を保持し続ける。
図 10.3-3 割込みが有効なときの割込み要因と割込みコントローラへの割込み要求
"H" レベル
割込み入力
割込みコントローラ
への割込み要求
要求F/Fがクリアされると非アクティブになる
■ NMl
• NMI は最優先のユーザ割込みでありマスクはできません。しかし , リセット後に ILM
が設定される前に NMI が検出された場合は , NMI は CPU では許可されません。こ
の場合 , NMI 要求はラッチされ NMI 設定後 , 直ちに許可されます。そのため , リセッ
ト後には , ILM を 15 以上の値に設定した後に NMI を使用するようにしてください。
• NMI は次のように検出されます。
- 通常動作 : 立下りエッジ
- ストップモード :"L" レベル
• NMI を使用して , ストップモードを解除できます。ストップモード時に "L" レベル
を入力すると , デバイスはストップモードから復帰し , 発振安定待ち時間が取られ
ます。
NMI 要求検出部には NMI フラグがあります。このフラグは NMl 要求によって設定さ
れます。この設定は , NMI 自身の割込みの受付け , またはリセットが発生したときにク
リアされます。このビットの読出しおよび書込みはできません。
図 10.3-4 に , NMI 要求検出部のブロックダイヤグラムを示します。
図 10.3-4 NMI 要求検出部のブロックダイヤグラム
(NMIフラグ)
N M I 要求
(ストップモードの解除)
Q
SX
R
0
立下りエッジ検出
1
ストップ
Clear
(reset,
interrupt
accepted) け)
クリア(リセット、割込み受付
312
NMIX
第 11 章
DMA コントローラ (DMAC)
DMA コントローラ (DMAC) の概要を示し , レジス
タの構成と機能 , および DMA コントローラの動作
について説明します。
11.1 DMA コントローラ (DMAC) の概要
11.2 DMA コントローラ (DMAC) のレジスタ
11.3 DMA コントローラ (DMAC) の動作
11.4 DMA コントローラ (DMAC) の動作フロー
11.5 データバスの転送例
11.6 外部 DMA 信号
11.7 DMA 転送例
313
第 11 章 DMA コントローラ (DMAC)
11.1
DMA コントローラ (DMAC) の概要
DMAC モジュールは , FR50 のデバイスで , ダイレクトメモリアクセス (DMA) 転送
を実現するためのモジュールです。本モジュールで制御される DMA 転送では , さま
ざまな種類のデータを , CPU を介さずにメモリ相互間 , またはメモリと I/O 機器間
で高速転送することができ , これによりシステムパフォーマンスが向上します。
■ ハードウェア構成
DMAC モジュールの主な構成要素は次のとおりです。
• 5 つの独立した DMA チャネル
• 5 チャネル独立アクセス制御回路
• 32 ビットアドレスレジスタ ( リロード指定可能 : 各チャネル 2 レジスタ )
• 16 ビット転送カウントレジスタ ( リロード指定可能 : 各チャネル 1 レジスタ )
• 4 ビットブロックカウントレジスタ ( 各チャネル 1 レジスタ )
• 外部転送要求入力端子 DREQ0, DREQ1, DREQ2( チャネル 0, 1, 2 のみ )
• 外部転送要求受付出力端子 DACK0, DACKl, DACK2( チャネル 0, 1, 2 のみ )
• DMA 終了出力端子 DEOP0, DEOP1, DEOP2( チャネル 0, 1, 2 のみ )
• フライバイ転送 ( メモリから I/O, メモリからメモリ )
( 必要であれば , ポートを使用して IOR, および IOW をサポートできます )
I/O 側のアクセス信号は, DACK, RDX, WRX, CAS の各信号をデコードして発生され
ます。
• 2 サイクル転送
■ 主な機能
本モジュールによる , データ転送のおもな機能は次のとおりです。
複数チャネルでの独立したデータ転送が可能です (5 チャネル )。
• 優先順位 ( チャネル 0 >チャネル 1 >チャネル 2 >チャネル 3 >チャネル 4)
• チャネル 0 とチャネル 1 の間で順位回転が可能です。
• DMAC の起動要因
- 外部専用端子入力 ( エッジ検出 / レベル検出 , チャネル 0 ∼ 2 のみ )
- 内部周辺要求 ( 外部割込みを含む割込み要求を共用 )
- ソフトウェア要求 ( レジスタ書込み )
• 転送モード
- デマンド転送 , バースト転送 , ステップ転送 , ブロック転送
- アドレッシングモード 32 ビットのフルアドレス指定 ( 増加 , 減少 , 固定 ) アドレ
スの増分 / 減分のサイズは -255 ∼ +255 の範囲で指定可能です。
- データの種類は , バイト長 , ハーフワード長 , ワード長です。
- シングルショット / リロード選択が可能です。
314
第 11 章 DMA コントローラ (DMAC)
■ ブロックダイヤグラム
図 11.1-1 に DMA コントローラ (DMAC) のブロックダイヤグラムを示します。
図 11.1-1 DMA コントローラ (DMAC) のブロックダイヤグラム
カウンタ
バスコントローラへ
ライト
バック
DMA
DMA 起動の要因
バッファ
転送要求
セレクタ
受付制御
DTC
2 ステップレジスタ
周辺回路起動要求/停止入力
選択回路と要求
外部端子の起動要求/停止入力
DTCR
カウンタ
DSS[2:0]
バッファ
読出し
読出し/書込み制御
書込み
優先度回路
転送コントローラへ
周辺回路の割込みクリア
BLK レジスタ
TYPE.MOD ,WS
セレクタ
DDNO
レジスタ
バス制御部
DMA 制御
セレクタ
DSAD
2 ステップレジスタ
SADM ,SASZ[7:0] SADR
2 ステップレジスタ
DADM ,DASZ[7:0] DADR
ライトバック
セレクタ
カウンタバッファ
アドレス
アドレスカウンタ
アクセス
カウンタバッファ
バス制御部
バスコント
ローラへ
MCLREQ
X バス
状態遷移回路
DDNO
IRQ[4:0]
ERIR ,EDIR
セレクタ
DDAD
ライトバック
DMAC 5 チャネルブロックダイヤグラム
315
第 11 章 DMA コントローラ (DMAC)
11.2
DMA コントローラ (DMAC) のレジスタ
DMA コントローラ (DMAC) で使用するレジスタについて説明します。
■ レジスタ一覧
図 11.2-1 に DMA コントローラ (DMAC) のレジスタ一覧を示します。
図 11.2-1 DMA コントローラ (DMAC) のレジスタ一覧
レジスタ
名前
bit
コントロール /
ステータス
レジスタ A
ビット
31
30
29
PAUS
STRG
IS[4:0]
R/W
R/W
R/W
R/W
23
22
21
DMACA DENB
bit
bit
15
28
初期値
27
20
26
19
25
00000000B
18
17
DDNO [3:0]
BLK [3:0]
R/W
R/W
14
13
12
11
10
24
9
16
0000XXXXB
8
XXXXXXXXB
DTC [15:8]
R/W
bit
7
6
5
4
3
2
1
0
XXXXXXXXB
DTC [7:0]
R/W
bit
コントロール /
ステータス
レジスタ B
DMACB
bit
31
30
TYPE[1:0]
R/W
R/W
23
22
29
28
26
MOD[1:0]
WS[1:0]
R/W
R/W
21
DTCR SADR DADR
bit
27
R/W
R/W
17
16
19
ERIE
EDIE
DSS[2:0]
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
24
SADM DADM
20
R/W
18
25
9
00000000B
00000000B
8
XXXXXXXXB
SASZ [7:0]
R/W
bit
7
6
5
4
3
DASZ [7:0]
2
1
0
XXXXXXXXB
R/W
( 続く )
316
第 11 章 DMA コントローラ (DMAC)
( 続き )
レジスタ
名前
bit
全体制御レジスタ
31
bit
bit
bit
初期値
30
29
28
−
−
PM01
DMAH[3:0]
R/W
R
R
R/W
R/W
23
22
21
20
19
18
17
16
−
−
−
−
−
−
−
−
R
R
R
R
R
R
R
R
15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
R
R
R
R
R
R
R
R
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
R
R
R
R
R
R
R
R
31
30
29
28
27
26
25
24
DMACR DMAE
bit
転送元アドレス
レジスタ
ビット
DMASA
27
26
25
24
0XX00000B
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
DMASA [31:24]
R/W
bit
23
22
21
20
19
18
17
16
XXXXXXXXB
DMASA [23:16]
R/W
bit
15
14
13
12
11
10
9
8
XXXXXXXXB
DMASA [15:8]
R/W
bit
7
6
5
4
3
2
1
0
XXXXXXXXB
DMASA [7:0]
R/W
bit
転送先アドレス
レジスタ
31
30
29
DMADA
28
27
26
25
24
XXXXXXXXB
DMADA [31:24]
R/W
bit
23
22
21
20
19
18
17
16
XXXXXXXXB
DMADA [23:16]
R/W
bit
15
14
13
12
11
10
9
8
XXXXXXXXB
DMADA [15:8]
R/W
bit
7
6
5
4
3
DMADA [7:0]
2
1
0
XXXXXXXXB
R/W
317
第 11 章 DMA コントローラ (DMAC)
■ レジスタの設定に関する注意
DMAC を設定する場合 , 一部のビットの設定は DMA の停止中に行う必要があります。
これらのビットの設定を , DMA の動作中 ( 転送中 ) に行うと , 正常な動作が保証されま
せん。
以降のビット説明の中でビット名称の右端に付いているアスタリスク (*) は , DMAC 転
送中にビットの設定をしたとき , そのビットが動作に影響を及ぼすことを示します。そ
のビットを書き換える場合は , DMAC 転送を停止中に行ってください。( 起動の禁止状
態または一時停止状態 )。
これらのビットを , DMA 転送の起動禁止状態 (DMACR の DMAE=0, または DMACA の
DENB=0 のとき ) で設定した場合 , この設定は起動が許可された後に有効になります。
これらのビットを , DMA 転送の一時停止状態 (DMACR の DMAH[3:0] ≠ 0000, または
DMACA の PAUS=1 のとき ) で設定した場合 , この設定は一時停止状態の解除の後に有
効になります。
■ DMAC- チャネル 0, 1, 2, 3, 4 制御 / 状態レジスタ A(DMACA0 ∼ DMACA4)
これらのレジスタは , DMAC チャネルの動作を制御します。チャネルごとに 1 つのレ
ジスタがあります。
以下に , 各ビットの機能を説明します。
アドレス
bit31
30
29
00000200H DENB PAUS STRG
00000208H
00000210H
bit15
14
13
00000218H
00000220H
28
27
26
25
24
23
IS[4:0]
12
11
10
22
21
20
19
DDNO[3:0]
9
8
7
6
5
18
17
16
BLK[3:0]
4
3
2
1
0
DTC[15:0]
( 初期値 : 00000000_0000XXXX_XXXXXXXX_XXXXXXXXB)
[bit31] DENB(DMA Enable): DMA の動作許可ビット
各転送チャネルに対し , DMA 転送の起動の許可 / 禁止を制御します。
起動されたチャネルは , 転送要求が発生し , 受け付けられると DMA 転送を開始しま
す。
起動を許可されないチャネルに出された転送要求はすべて無効となります。
起動されたチャネルで指定したカウントの転送が終了すると , このビットは "0" に
なり転送は停止します。
このビットに "0" が書き込まれると , 転送は強制的に停止となります。ただし , "0" を
書き込んで転送を強制的に停止する前に , PAUS ビット (DMACA の bit30) で , 一時的
に DMA を停止状態にする必要があります。一時停止せずに強制停止すると , DMA
は停止しますが , 転送データは保証されません。DSS[2:0] ビット (DMACB の bit18 ∼
bit16) で停止の種類を確認してください。
DENB
318
機能
0
対応チャネルの DMA の動作を禁止 ( 初期値 )
1
対応チャネルの DMA の動作を許可
第 11 章 DMA コントローラ (DMAC)
• リセット時 , または停止要求が受け付けられたとき , "0" に初期化されます。
• 読出し / 書込みが可能です。
• DMAC 全体制御レジスタ (DMACR) の bit15 の DMAE ビットによって全チャネルの
動作が禁止されている場合 , このビットへの "1" の書込みは無効となり , 停止状態が
維持されます。このビットによって動作が許可されている状態で , bit15 の DMAE
ビットによって全チャネルの動作が禁止された場合 , DENB ビットは "0" になり , 転
送は中断します ( 強制停止 )。
[bit30] PAUS(Pause): 一時停止指示
対応するチャネルの DMA 転送の一時停止を制御します。このビットがいったん設
定されると , クリアされるまで DMA 転送は実行されません (DMA の停止中 , DSS
ビットは "1xx" になります )。
起動前に PAUS ビットが設定されると , 起動しても一時停止状態が継続します。
このビットが設定されているとき , 新たに出された転送要求は受け付けられますが ,
このビットがクリアされるまで転送は開始されません。
PAUS
機能
0
対応チャネルの DMA 動作を許可 ( 初期値 )
1
対応チャネルの DMA を一時停止
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bit29] STRG(Software Trigger): 転送要求
対応するチャネルの DMA 転送要求を発生します。このビットに "1" が書き込まれ
ると , レジスタへの書込みが終了した時点で転送要求が発生し , 対応するチャネル
の転送が始まります。ただし , 対応するチャネルが起動許可されていない場合 , こ
のビットの操作は無効です。
STRG
機能
0
無効
1
DMA 起動要求
• リセット時 , "0" に初期化されます。
• 読出し値は常に "0" です。
• 書込み値として有効なのは "1" だけです。"0" 設定は動作に影響しません。
<注意事項>
DMAE ビットへの書込みによる起動と , STRG ビットによる転送要求の発生が同時
に起こった場合 , 転送要求は有効になり , 転送が始まります。STRG ビットによる
転送要求の発生と , PAUS ビットへの "1" の書込みが同時に発生した場合 , 転送要求
は有効ですが , PAUS ビットが "0" に戻るまで DMA 転送は開始されません。
319
第 11 章 DMA コントローラ (DMAC)
[bit28 ∼ bit24] IS4 ∼ IS0(Input Select)*: 転送要因の選択
転送要求の要因を下表のように選択します。ただし , STRG ビットの機能によるソ
フトウェア転送要求は , これらのビット設定に関係なく有効です。
IS
機能
00000
ソフトウェア転送要求のみ
00001
設定禁止
↓
↓
01101
設定禁止
01110
外部 DMA 端子 "H" レベル , または↑ エッジ
01111
外部 DMA 端子 "L" レベル , または↓ エッジ
10000
UART0 RX 割込み
10001
UART0 TX 割込み
10010
UART1 RX 割込み
10011
UART1 TX 割込み
10100
外部割込み 0
10101
外部割込み 1
10110
リロードタイマ 0 割込み
10111
リロードタイマ 1 割込み
11000
外部割込み 2
11001
外部割込み 3
11010
UART2 RX 割込み
11011
UART2 TX 割込み
11100
SlO0 割込み *
11101
I2C 割込み
11110
A/D コンバータ割込み
11111
SIOl 割込み *
転送停止要求
なし
あり
なし
*: MB91F369GA のみ実装
• リセット時 , "00" に初期化されます。
• 読出し / 書込みが可能です。
<注意事項>
320
• デマンド転送モードが選択されている場合は , IS[4:0]=01110, 01111 のみ設定可
能です。他の要因による起動は禁止されます。
• 外部要求入力は , チャネル 0, 1, 2 についてのみ有効です。チャネル 3, 4 につい
ては , 外部要求入力は選択できません。検出方法をレベル検出とするかエッジ検
出とするかは , モード設定によって決まります。デマンド転送にはレベル検出が
使用され , その他のモードにはエッジ検出が使用されます。
第 11 章 DMA コントローラ (DMAC)
[bit23 ∼ bit20] DDNO3 ∼ DDNO0(Direct Access Number)*:
内部周辺回路へのフライ
バイ転送
これらのビットは , 対応するチャネルで使用される転送先 / 転送元の内部周辺回路
レジスタを指定します。
• リセット時 , "0000" に初期化されます。
• 読出し / 書込み可能です。
<注意事項>
本モデルは , この機能をサポートしません。書き込まれたデータは無視されます。
[bit19 ∼ bit16] BLK3 ∼ BLK0(Block Size): ブロックサイズ指定
対応するチャネルのブロック転送時のブロックサイズを指定します。これらのビッ
トで設定された値は , 1 つの転送単位におけるワード数 ( より正確には , データサイ
ズ設定の繰返しカウント ) になります。ブロック転送を実行しない場合は , 01H( サ
イズ 1) を設定します。デマンド転送の場合 , このレジスタの値は無視され , サイズ
1 が使用されます。
BLK
XXXXB
機能
対応チャネルのブロックサイズ指定
• リセット時に初期化されません。
• 読出し / 書込みが可能です。
• 全ビットを "0" に設定すると , ブロックサイズは 16 ワードになります。
• 読出し時には , ブロックサイズ ( リロード値 ) が常に読み出されます。
[bit15 ∼ bit0] DTC(DMA Terminal Count Register)*: 転送カウントレジスタ
このレジスタには転送カウントが格納されます。各レジスタ (DMACA ごとに 1 つ )
は 16 ビット構成です。
各レジスタには , 専用リロードレジスタがあります。転送カウンタレジスタのリ
ロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定値
をレジスタに戻します。
DTC
XXXXH
機能
対応チャネルの転送カウント指定
DMA 転送が開始されると , このレジスタのデータは DMA 専用転送カウントカウン
タのカウンタバッファに格納され , このカウンタは転送単位ごとに減分されます。
DMA 転送の最後に , カウンタバッファの内容がレジスタに書き戻されて , DMA が
終了します。したがって , DMA の動作中には , 転送カウント値を読み出すことはで
きません。
• リセット時 , 初期化されません。
• 読出し / 書込みが可能です。DTC アクセスにはハーフワード長 , またはワード長を
使用する必要があります。
• 読出し値はカウント値です。リロード値を読み出すことはできません。
321
第 11 章 DMA コントローラ (DMAC)
■ DMAC- チャネル 0, 1, 2, 3, 4 コントロール / ステータスレジスタ B(DMACB0 ∼
DMACB4)
これらのレジスタは , DMAC チャネルの動作を制御します。チャネルごとに 1 つのレ
ジスタがあります。
各ビットの機能を以下に説明します。
アドレス
bit31
30
00000204H TYPE[1:0]
0000020CH
00000214H
bit15
14
0000021CH
00000224H
29
28
MOD[1:0]
13
11
27
26
WS[1:0]
11
25
24
23
22
21
20
19
18
SADM DADM DTCR SADR DADR ERIE EDIE
10
9
8
7
6
5
SASZ[7:0]
4
3
17
16
DSS[2:0]
2
1
0
DASZ[7:0]
( 初期値 : 00000000_00000000_XXXXXXXX_XXXXXXXXB)
[bit31, bit30] TYPE(Type)*: 転送種類設定
対応するチャネルの動作の種類を次のように設定します。
• 2 サイクル転送モード :
このモードでは , 転送元アドレス (DMASA), および転送先
アドレス (DMADA) を設定し , 転送カウントの値だけ読出
しと書込み操作を繰り返し , 転送を実行します。全領域
(32 ビットアドレシング ) を転送元 , および転送先に指定
できます。
• フライバイ転送モード : このモードでは , 転送先アドレス (DMADA) にメモリアド
レスを設定することにより, 外部領域⇔外部領域の転送を
1 サイクルで実行します。メモリアドレスは必ず外部領域
(SDRAM を除く ) を指定してください。
TYPE
機能
00
2 サイクル転送 ( 初期値 )
01
フライバイ : メモリから I/O への転送
10
フライバイ :I/O からメモリへの転送
11
設定禁止
• リセット時 , "00" に初期化されます。
• 読出し / 書込みが可能です。
322
第 11 章 DMA コントローラ (DMAC)
[bit29, bit28] MOD(Mode)*: 転送モード設定
対応するチャネルの動作モードを下表のように設定します。
MOD
機能
00
ブロック / ステップ転送モード ( 初期値 )
01
バースト転送モード
10
デマンド転送モード
11
設定禁止
• リセット時 , "00" に初期化されます。
• 読出し / 書込みが可能です。
[bit27, bit26] WS(Word Size): 転送データサイズ選択
対応するチャネルの転送データサイズを選択します。
転送は , このレジスタで設定したデータサイズで指定回数分の転送を行います。
WS
機能
00
バイト単位の転送 ( 初期値 )
01
ハーフワード単位の転送
10
ワード単位の転送
11
設定禁止
• リセット時 , "00" に初期化されます。
• 読出し / 書込みが可能です。
[bit25] SADM(Source-Addr.Count-Mode Select)*: 転送元アドレスカウントモード指定
対応するチャネルの転送元アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレスの増分 / 減分は , 指定された転送元アドレスカウントサイズ (SASZ) に従い
ます。アドレスは , 1 回の転送ごとに増分 , または減分されます。転送が終了すると ,
次のアクセスアドレスが , 対応するアドレスレジスタ (DMASA) に書き込まれます。
したがって, DMA転送が終了するまで, 転送元アドレスレジスタは更新されません。
アドレスを固定するには , このレジスタの増分 , または減分を指定し , アドレスカウ
ントサイズを "0" にします。
SADM
機能
0
転送元アドレスを増分します。( 初期値 )
1
転送元アドレスを減分します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
323
第 11 章 DMA コントローラ (DMAC)
[bit24] DADM(Destination-Addr.Count-Mode Select)*:
転送先アドレスカウント
モード指定
対応するチャネルの転送先アドレスの , 1 転送ごとのアドレス処理を指定します。
アドレスの増分 / 減分は , 指定された転送先アドレスカウントサイズ (DASZ) に従い
ます。アドレスは 1 回の転送ごとに増分 , または減分されます。転送が終了すると ,
次のアクセスアドレスが , 対応するアドレスレジスタ (DMADA) に書き込まれます。
したがって , DMA 転送が終了するまで転送先アドレスレジスタは更新されません。
アドレスを固定するには , 本レジスタの増分 , または減分を指定し , アドレスカウン
トサイズを "0" にします。
DADM
機能
0
転送先アドレスを増分します。( 初期値 )
1
転送先アドレスを減分します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込み可能です。
[bit23] DTCR(DTC-Reg.Reload)*: 転送カウントレジスタリロード指定
対応するチャネルの転送カウントレジスタのリロード機能を制御します。
このビットによってリロードが許可されている場合 , 転送終了時にカウントレジス
タの値を初期設定値に戻して , 転送が再起動されます。
カウントカウンタのリロードが禁止されている場合 , アドレスレジスタでリロード
が指定されていた場合でも , 転送はシングルショットの動作になり , 転送の終了時
に動作が停止します。
DTCR
機能
0
転送カウントレジスタのリロードを禁止します ( 初期値 )。
1
転送カウントレジスタのリロードを許可します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込み可能です。
[bit22] SADR(Source-Addr.-Reg.Reload)*: 転送元アドレスレジスタリロード指定
対応するチャネルのアドレスレジスタのリロード機能を制御します。
このビットによってリロードが許可されている場合は , 転送の終了時に転送元アド
レスレジスタの値を初期設定値に戻します。
カウントカウンタのリロードが禁止されている場合 , アドレスレジスタでリロード
が指定されていた場合でも , 転送はシングルショットの動作になり , 転送終了時に
動作が停止します。この場合 , アドレスレジスタの値は , 初期設定値がリロードさ
れた状態で停止します。
このビットによってリロードが禁止されている場合 , 転送終了時のアドレスレジス
タの値は , 最終アドレスの次のアクセスアドレス ( アドレスの増分が指定されてい
る場合は , 増分されたアドレス ) になります。
324
第 11 章 DMA コントローラ (DMAC)
SADR
機能
0
転送元アドレスレジスタのリロードを禁止します ( 初期値 )。
1
転送元アドレスレジスタのリロードを許可します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bit21] DADR(Dest.-Addr.-Reg.Reload)*: 転送先アドレスレジスタリロード指定
対応するチャネルのアドレスレジスタのリロード機能を制御します。
このビットによってリロードが許可されている場合 , 転送終了時に転送先アドレス
レジスタの値を初期設定値に戻します。このほかの機能の詳細は , bit22 の SADR と
同等です。
DADR
機能
0
転送先アドレスレジスタのリロードを禁止します ( 初期値 )。
1
転送先アドレスレジスタのリロードを許可します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bit20] ERIE(Error Interrupt Enable)*: エラー割込み出力許可
エラーによる終了のための割込みの発生を制御します。DSS2 ∼ DSS0 は , 発生した
エラーの種類を示します。すべての終了要因により , この割込みが発生するわけで
はないことに注意してください。割込みが発生するのは , 特定の終了要因の場合だ
けです。(bit18 ∼ bit16 の DSS2 ∼ DSS0 ビットの説明を参照してください。)
ERIE
機能
0
エラー割込み要求の出力を禁止します ( 初期値 )。
1
エラー転送要求の出力を許可します。
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bitl9] EDIE(End Interrupt Enable)*: 終了割込み出力許可
正常終了したときの割込みの発生を制御します。
EDIE
機能
0
終了割込み要求の出力を禁止します ( 初期値 )。
1
終了転送要求の出力を許可します。
• リセット時 : "0" に初期化されます。
• 読出し / 書込みが可能です。
325
第 11 章 DMA コントローラ (DMAC)
[bit18 ∼ bit16] DSS2 ∼ DSS0(DMA Stop Status)*: 転送停止要因表示
対応するチャネルの DMA 転送が停止 , または終了した要因を示す 3 ビットコード
( 終了コード ) を表示します。終了コードの内容は下表のとおりです。
DSS
機能
発生する割込み
000
初期値
x01
アドレスエラー ( アンダフロー / オーバフロー )
エラー
x10
転送停止要求
エラー
x11
正常終了
終了
1xx
DMA 一時停止中 (DMAH, PAUS ビット , 割込み , 他 )
なし
なし
転送停止要求が設定されるのは , 周辺回路要求 , および外部端子の DSTP 機能が使
用される場合だけです。
「発生する割込み」欄は , 発生可能な割込み要求の種類を示します。
• リセット時 , "000" に初期化されます。
• "000" が書き込まれるとクリアされます。
• 読出し / 書込みが可能です。ただし , このビットへの書込みは , "000" のみ有効とな
ります。
[bit15 ∼ bit8] SASZ(Source Addr Count Size)*: 転送元アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送元アドレス (DMASA) の増減を指定します。
このビットに設定される値が , 1 回の転送単位でのアドレスの増分 , または減分にな
ります。アドレスの増分 , および減分は , 転送元アドレスカウントモード (SADM)
の指定に従います。
SASZ
XXH
機能
転送元アドレスの増分または減分のサイズを指定します。0 ∼
255。
• リセット時 , 初期化されません。
• 読出し / 書込みが可能です。
[bit7 ∼ bit0] DASZ(Des Addr Count Size)*: 転送先アドレスカウントサイズ指定
対応するチャネルの 1 転送ごとの転送先アドレス (DMADA)\ の増減を指定します。
このビットに設定される値が , 1 回の転送単位でのアドレスの増分 , または減分にな
ります。アドレスの増分 , および減分は , 転送先アドレスカウントモード (DADM)
の指定に従います。
DASZ
機能
XXH
転送先アドレスの増分または減分のサイズを指定します。0 ∼ 255。
• リセット時 , 初期化されません。
• 読出し / 書込みが可能です。
326
第 11 章 DMA コントローラ (DMAC)
■ DMAC- チャネル 0, 1, 2, 3, 4 転送元 / 転送先アドレス設定レジスタ (DMASA0 ∼
DMASA4/DMADA0 ∼ DMADA4)
これらのレジスタは , 各 DMAC チャネルの動作を制御します。チャネルごとに 1 つの
レジスタがあります。
各ビットの機能を以下に説明します。
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMASA[31:16]
bit
15
14
13
12
11
10
9
8
7
DMASA[15:0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
bit
31
30
29
28
27
26
25
24
23
22
21
20
19
18
17
16
6
5
4
3
2
1
0
DMADA[31:16]
bit
15
14
13
12
11
10
9
8
7
DMADA[15:0]
( 初期値 : XXXXXXXX_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
転送元 / 転送先アドレスは , このレジスタ群に格納されます。各レジスタは 32 ビッ
ト構成です。
[bit31 ∼ bit0] DMASA(DMA Source Addr)*: 転送元アドレス設定
転送元アドレスを指定します。
[bit31 ∼ bit0] DMADA(DMA Destination Addr)*: 転送先アドレス設定
転送先アドレスの設定を行います。
DMA 転送が開始されると , このレジスタデータは DMA 専用アドレスカウンタのカ
ウンタバッファに格納され , 設定に従い , 転送ごとにアドレスがカウントされます。
DMA 転送の最後に , カウンタバッファの内容がレジスタに書き戻されて , DMA が
終了します。
したがって, DMAの動作中にアドレスカウンタの値を読み出せません。
各レジスタには専用リロードレジスタがあります。転送元 / 先アドレスレジスタの
リロードを許可しているチャネルに使用した場合 , 転送終了時に自動的に初期設定
値をレジスタに戻します。他のアドレスレジスタには影響ありません。
• リセット時 , 初期化されません。
• 読出し / 書込みが可能です。本レジスタには必ず 32 ビットデータでアクセスしてく
ださい。
• 読出し値は , 転送中は転送前のアドレス値になり , 転送終了時には次のアクセスア
ドレス値になります。リロード値を読み出すことはできません。したがって , 転送
アドレスをリアルタイムで読み出すことはできません。
このレジスタで DMAC レジスタを設定しないでください。DMAC レジスタ自身へ
の DMA 転送はできません。
327
第 11 章 DMA コントローラ (DMAC)
■ DMAC- チャネル 0, 1, 2, 3, 4 DMAC 全体制御レジスタ (DMACR)
このレジスタは , 5 つの DMAC チャネルの全体動作を制御します。このレジスタには
必ずバイトデータでアクセスしてください。
各ビットの機能は下表のとおりです。
bit
bit
31
30
29
28
DMAE
−
−
PM01
27
26
25
15
14
13
11
11
10
9
−
−
−
−
−
−
−
24
23
22
21
20
19
18
17
16
−
−
−
−
−
−
−
−
8
7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
−
−
DMAH[3:0]
( 初期値 : 0XX00000_XXXXXXXX_XXXXXXXX_XXXXXXXXB)
[bit31] DMAE(DMA Enable): DMA 動作許可
全 DMA チャネルの動作を制御します。
このビットによって DMA 動作が禁止されている場合は , 各チャネルの起動 / 停止
の設定や動作状態にかかわらず , 全チャネルの転送が禁止されます。転送中だった
チャネルについては要求が取り消され , 転送はブロックの境界で停止します。禁止
状態で , 各チャネルに対して実行される起動の操作はすべて無効です。
このビットによって DMA 動作が許可されている場合 , 各チャネルに対する起動 / 停
止操作は有効ですが , これだけでは各チャネルは起動されません。
DMAE ビットに "0" が書き込まれると , 転送は強制終了します。"0" を書き込んで強
制的に終了するには , その前に , DMAH[3:0] ビット [DMACR レジスタの bit27 ∼
bit24] によって DMA を一時停止状態にしてから行ってください。一時停止しない
で強制終了すると , DMA は停止しますが , データ転送は保証されません。DSS[2:0]
ビット [DMACB レジスタの bit18 ∼ bit16] で , 停止の種類を確認してください。
DMAE
機能
0
全チャネルで DMA 転送を禁止 ( 初期値 )
1
全チャネルで DMA 転送を許可
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bit28] PM01(Priority mode ch0, ch1 robin): チャネル優先度回転
転送ごとにチャネル 0 とチャネル 1 の優先度を回転するには , このビットを設定し
ます。
PM01
機能
0
優先順位固定 ( チャネル 0 >チャネル 1)( 初期値 )
1
優先順位回転 ( チャネル 1 >チャネル 0)
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
328
第 11 章 DMA コントローラ (DMAC)
[bit27 ∼ bit24] DMAH(DMA Halt): DMA 一時停止
全 DMA チャネルの一時停止を制御します。このビットがいったん設定されると ,
このビットがクリアされるまで , どのチャネルでも DMA 転送は実行されません。
起動の前にこのビットが設定されると , 起動後も , 全チャネルが一時停止状態のま
まになります。
このビットが設定されている間 , DMA 転送が許可されている (DENB=1) チャネルで
発生する転送要求は , すべて有効です。このビットがクリアされると転送が開始さ
れます。
DMAH
0000
0000 以外
機能
全チャネルで DMA 動作を許可 ( 初期値 )
全チャネルで DMA を一時停止
• リセット時 , "0" に初期化されます。
• 読出し / 書込みが可能です。
[bit30, bit29, bit23 ∼ bit0] (Reserved): 未使用ビット
• 読出し値は不定です。
329
第 11 章 DMA コントローラ (DMAC)
11.3
DMA コントローラ (DMAC) の動作
ここでは , DMA コントローラ (DMAC) の動作について説明します。
■ 動作概要
DMAC ブロックは , FR50 製品に組み込まれている多機能 DMA コントローラで , CPU
を介入させずに高速なデータ転送を制御します。
● 主要動作
• 各転送チャネルは独立に各種の機能を設定できます。
• 起動を許可されたチャネルは , 設定された転送要求を検出するまでは転送動作を開
始しません。
• チャネルは , 転送要求を検出すると , DMA 転送要求をバスコントローラに対して出
します。これによりチャネルはバス使用の権利をバスコントローラから取得し , 転
送を開始します。
• データは , チャネルごとに設定されたモードに従ったシーケンスで転送されます。
● 転送モード
各DMAコントローラチャネルは, そのチャネルに対するDMACBレジスタのMOD[1:0]
ビットで設定される転送モードに従ってデータを転送します。
• ブロック / ステップ転送
DMA コントローラは , 転送要求を受け付けると , データを 1 ブロックだけ転送しま
す。DMA コントローラは , 次の転送要求を受け付けるまで , バスコントローラに対
して転送要求を出しません。
ブロック転送単位 : 設定されたブロックサイズ分 (DMACA:BLK[3:0])
• バースト転送
DMA コントローラは , 転送要求を受け付けると , 指定された転送カウントを終了す
るまで連続してデータを転送します。
指定された転送カウント : ブロックサイズ分×転送カウント分 (DMACA:BLK[3:0] ×
DMACA:DTC[15:0])
• デマンド転送
DMAコントローラは, 指定された転送カウントを終了するまで連続してデータを転
送するか , 外部からの転送要求 (DREQ 端子のレベル検出 ) 入力終了まで連続して
データを転送します。デマンド転送での指定転送回数は設定した転送カウント分
(DMACA:DTC[15:0]) となります。ブロックサイズは "1" に固定され , レジスタ値は
無視されます。
● 転送の種類
• 2 サイクル転送 ( 通常転送 )
DMA コントローラ動作は , 読出し動作と書込み動作を 1 つの単位として動作を行い
ます。
DMA コントローラは , 転送元レジスタにあるアドレスからデータを読み出し , 転送
先レジスタにあるアドレスにそのデータを書き込みます。
330
第 11 章 DMA コントローラ (DMAC)
• フライバイ転送 ( メモリから I/O へ )
DMA コントローラの動作は , 読出し動作を 1 つの単位として動作を行います。
フライバイ転送を設定して DMA 転送を行うと , DMA コントローラは , フライバイ転
送 ( 読出し ) 要求をバスコントローラに対して出力します。バスコントローラは , 外
部インタフェースにフライバイ転送 ( 読出し ) によるデータ転送をさせます。
• フライバイ転送 (I/O からメモリへ )
DMA コントローラの動作は , 書込み動作を 1 つの単位として動作を行います。
他の動作は , メモリから I/O へのフライバイ転送と同じです。
フライバイ転送でデータを書き込むためには , アクセスする領域は外部領域でなけ
ればなりません。
● 転送アドレス
アドレスは転送の種類によって , 以下のように設定されます。各チャネル転送元 , およ
びチャネル転送先について個別のアドレスが設定されます。
2 サイクル転送でのアドレス設定レジスタ (DMASA, および DMADA) の指定方法は , フ
ライバイ転送の場合と異なります。
• 2 サイクル転送のアドレス指定
あらかじめアドレスを設定してあるレジスタ (DMASA, または DMADA) からの読出
し値が , データアクセスのアドレスとして使用されます。
DMAコントローラは転送要求を受け付けると, レジスタからアドレスを読み出して
一時記憶バッファに格納し , データ転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次のアクセスに使用するアド
レスを発生し ( 増分 , 減分 , または固定を選択 ), そのアドレスを一時記憶バッファ
に戻します。一時記憶バッファのデータは , 1 ブロックの転送が終了するたびにレ
ジスタ (DMASA, または DMADA) に戻されます。
したがって , 1 回のブロック転送ごとにしかアドレスレジスタ (DMASA, または
DMADA) の値が更新されないので , 転送中のアドレスをリアルタイムに知ることは
できません。
• フライバイ転送のアドレス指定
フライバイ転送では , 転送先アドレスレジスタ (DMADA) からの読出し値が , データ
アクセスのアドレスとして使用されます。転送元アドレスレジスタ (DMASA) は , 無
視されます。このアドレスは , 外部領域に設定されなければなりません。
DMAコントローラは転送要求を受け付けると, レジスタからアドレスを読み出して
一時記憶バッファに格納し , データ転送を開始します。
1 回の転送 ( アクセス ) ごとにアドレスカウンタにて次のアクセスに使用するアド
レスを発生し ( 増分 , 減分 , または固定を選択 ), そのアドレスを一時記憶バッファ
に戻します。この , 一時記憶バッファのデータは , 1 ブロックの転送が終了するたび
にレジスタ (DMADA) に戻されます。
したがって , 1 回のブロック転送ごとにしかアドレスレジスタ (DMADA) の値が更
新されないので , 転送中のアドレスをリアルタイムに知ることはできません。
331
第 11 章 DMA コントローラ (DMAC)
● 転送カウントと転送終了
• 転送カウント
転送カウントレジスタは , 1 ブロックの転送が終了するごとに 1 ずつ減分されます。
転送カウントレジスタが "0" になると , 指定転送カウントのデータ転送が終了しま
す。コントローラは終了コードを表示して停止するか , データ転送を再起動 * しま
す。
*: 転送カウントレジスタのリロードが禁止されている場合 , コントローラはデー
タ転送を停止します。リロードが許可されている場合 , コントローラはレジス
タの値を初期化して , データ転送要求 (DMACB の DTCR) を待ちます。
アドレスレジスタと同様に , 転送カウントレジスタの値も 1 ブロック転送ごとに更
新されます。
• 転送終了
転送終了の要因を以下に列挙します。転送終了時に , 要因を示す終了コードが表示
されます (DMACB の DSS[2:0])。
- 指 定 転 送 カ ウ ン ト の デ ー タ 転 送 の 終 了 (DMACA の BLK[3:0]×DMACA の
DTC[15:0]) => 正常終了
- 周辺回路または外部端子 (DSTP) からの転送停止要求の発生 => エラー
- アドレスエラーの発生 => エラー
- リセットの発生 => リセット
各終了要因に対する転送停止要因が表示され (DSS), 転送停止割込み , またはエラー
割込みの発生が可能です。
■ 転送要求の設定
DMA コントローラによる転送を開始する転送要求には , 以下に示すように 3 つの種類
があります。ソフトウェア要求は , 他の要求の設定にかかわらず常に使用できます。
● 外部転送要求端子
各チャネルの入力端子に対する入力で転送要求が発生します。
チャネル 0 ∼ 3 のみ使用可能です (DREQ0, DREQ1, DREQ2)。
転送の種類 , および起動の要因の設定により , 以下の要因が選択されます。
• エッジ検出
転送種類がブロック , ステップ , またはバースト転送の場合 , エッジ検出が選択され
ます。
- 立下りエッジ検出 : 転送要因選択レジスタで設定 DMACB の IS[4:0] が "01110" の
とき。
- 立上りエッジ検出 : 転送要因選択レジスタで設定 DMACB の IS[4:0] が "01111" の
とき。
転送の種類がデマンド転送の場合 , レベル検出が選択されます。
- "H" レベル検出 : 転送要因選択レジスタで設定 DMACB の IS[4:0] が "01110" のとき。
- "L" レベル検出 : 転送要因選択レジスタで設定 DMACB の IS[4:0] が "01111" のとき。
332
第 11 章 DMA コントローラ (DMAC)
● 内部周辺回路要求
内部周辺回路によって発生した割込みで , 転送要求を発生します。
チャネルごとに , どの周辺回路の割込みにより転送要求を発生するかを設定します。
(DMACB の IS[4:0]=1xxxx)
外部転送要求とは同時に使用することができません。
<注意事項>
転送要求として使用される割込み要求は CPU に対する割込み要求にも解釈される
ので , 割込みコントローラを割込み禁止に設定してください (ICR レジスタ )。
● ソフトウェアの要求
レジスタのトリガビットへの書込みにより, 転送要求を発生します(DMACAのSTRG)。
この要求は , 上記の 2 つの転送要求と独立して , 常に使用可能です。
ソフトウェア要求と起動 ( 転送許可 ) を同時に行った場合 , DMA 転送要求がバスコン
トローラに対して直ちに出力され , 転送が開始されます。
■ 転送シーケンス
DMA 転送起動後の動作シーケンスを指定する転送種類 , および転送モードは , チャネ
ルごとに独立して設定することができます (DMACB の TYPE [1:0], MOD[1:0] の設定 )。
● 転送シーケンスの選択
レジスタの設定によって以下のシーケンスが指定されます。
• バースト 2 サイクル転送
• デマンド 2 サイクル転送
• ブロック / ステップ 2 サイクル転送
• バーストフライバイ転送
• デマンドフライバイ転送
• ブロック / ステップフライバイ転送
[ バースト 2 サイクル転送 ]
DMA コントローラは , 転送要求を受け付けると , データ転送を指定転送カウントだ
け連続して行います。2 サイクル転送では , すべての領域に対して 32 ビットの転送
元アドレス , および転送先アドレスを指定できます。
転送要求として , 周辺回路転送要求 , ソフトウェア転送要求 , または外部端子
(DREQ) エッジ入力検出要求が選択できます。
転送元アドレスの指定
32 ビット全領域指定可能。
方向
→
転送先アドレスの指定
32 ビット全領域指定可能。
( 指定可能な転送アドレス表 )
バースト転送の特長は以下のとおりです。
• DMA コントローラは , 転送要求を受け付けると , 転送カウントレジスタが "0" にな
るまで連続してデータ転送を行います。
333
第 11 章 DMA コントローラ (DMAC)
転送カウントは次のように取得されます。
転送カウント = ブロックサイズ分×転送カウント分
(DMACA の BLK[3:0] × DMACA の DTC[15:0])
• データ転送中に別の転送要求が出されても無視されます。
• 転送カウントレジスタのリロードが許可されている場合 , データ転送終了後に次の
転送要求が受け付けられます。
• 転送中に優先度の高い転送要求が別のチャネルから受け付けられた場合は ,
1 ブ
ロックのデータ転送が終了したところでそのチャネルに切り替わります。優先度の
高い転送要求のデータ転送が終了するまで , 元のチャネルに制御が戻りません。
図 11.3-1 にバースト転送の例を示します。
バースト転送は外部端子信号の立上りエッジで起動されており , ブロック数は 1, 転
送カウントは 4 です。
図 11.3-1 バースト転送の例
転送要求(↑エッジ)
バス動作
CPU
SA
DA
4
転送カウント
SA
DA
3
SA
DA
2
SA
DA
1
CPU
0
転送終了
[ デマンド 2 サイクル転送 ]
デマンド転送シーケンスが選択されるのは , 外部端子の "H", または "L" レベルが転
送要求として選択される場合だけです。レベル選択は , DMACA の IS[3:0] で設定さ
れます。
転送元アドレスの指定
方向
転送先アドレスの指定
外部領域
→
外部領域
外部領域
→
内部 I/O
外部領域
→
内部 RAM, または ROM
内部 I/O
→
外部領域
内部 RAM, または ROM
→
外部領域
( 指定可能な転送アドレス表 )
連続転送の特長は , 以下のとおりです。
• 転送要求を 1 回の転送ごとにチェックし , 外部入力レベルが設定した転送要求レベ
ルと同じであれば , 転送要求をクリアせずにデータ転送を連続して行います。外部
入力レベルが変化すると , 転送要求はクリアされ , 1 ブロックのデータが転送された
ところでデータ転送が停止します。この動作を指定転送カウント終了まで繰り返し
ます。
334
第 11 章 DMA コントローラ (DMAC)
• ほかの動作はバースト転送の場合と同じです。
図 11.3-2 にデマンド転送の例を示します。
外部端子信号の "H" レベルで起動されており , ブロック数は "1", 転送カウントは "3"
です。
図 11.3-2 デマンド転送の例
転送要求(Hレベル)
CPU
バス動作
SA
DA
3
転送カウント
SA
DA
SA
CPU
2
DA
1
0
転送終了
<注意事項>
デマンド転送が選択されているときは , 外部領域のアドレスが , 転送元レジスタ , 転
送先レジスタ , またはその両方に設定されていることを確認してください。デマン
ド転送モード時は DMA 転送が外部バスタイミングに合わせられているため , 必ず
外部領域にアクセスすることが必要です。
[ ブロック / ステップ 2 サイクル転送 ]
ブロック / ステップ転送 (1 転送要求ごとに指定ブロック数分のデータが転送されま
す)では, 32ビット全領域の転送元アドレス, または転送先アドレスを指定できます。
転送元アドレスの指定
方向
転送先アドレスの指定
32 ビット全領域指定可能
→
32 ビット全領域指定可能
( 指定可能な転送アドレス表 )
• ステップ転送 : ブロックサイズとして "1" が設定されると , ステップ転送シーケン
スが選択されます。ステップ転送の特長は , 以下のとおりです。
- DMA コントローラは , 転送要求を受け付けると , データを 1 回だけ転送します。
その後 , 転送要求を取り消し , データ転送を停止します。DMA コントローラはバ
スコントローラに対して DMA 転送要求を取り消します。
- データ転送中に別の転送要求が出されても無視されます。
- 転送中に優先度の高い転送要求が別のチャネルから受け付けられた場合は , 現在
のデータ転送が終了したところでチャネルが切り替わり , 要求のあったデータ転
送が開始されます。転送要求が同時に発生した場合のみ , ステップ転送の優先順
位が有効です。
• ブロック転送 : ブロックサイズとして "1" 以外の値が設定されると , ブロック転送
シーケンスが選択されます。ブロック転送の特長は , 以下のとおり
です。
- この転送は , 1 回のデータ転送が複数回の ( ブロック数の ) 転送サイクルで構成さ
れる点を除けば , ステップ転送と同じ動作です。
図 11.3-3 にブロック転送の例を示します。
335
第 11 章 DMA コントローラ (DMAC)
ブロック転送は外部端子信号の立上りエッジで起動されており , ブロック数は "2",
転送カウントは "2" です。
図 11.3-3 ブロック転送の例
転送要求(↑エッジ)
バス動作
CPU
SA
DA
SA
ブロック数
DA
CPU
1
2
0
SA
DA
SA
DA
1
2
1
2
転送終了
[ バーストフライバイ転送 ]
この転送は , 転送領域が外部領域のみであることと , 転送動作が 1 回の読出し動作
( メモリから I/O へ ), または書込み動作 (I/O からメモリへ ) のみであることを除
けば , 2 サイクル転送と同じです。
転送元アドレスの指定
方向
転送先アドレスの指定
指定不要 ( 無効 )
なし
外部領域
( 指定可能な転送アドレスの表 )
[ デマンドフライバイ転送 ]
この転送は , 転送領域が外部領域のみであることと , 転送動作が 1 回の読出し動作
( メモリから I/O へ ), または書込み動作 (I/O からメモリへ ) のみであることを除
けば , 2 サイクル転送と同じです。
転送元アドレスの指定
方向
転送先アドレスの指定
指定不要 ( 無効 )
なし
外部領域
( 指定可能な転送アドレスの表 )
[ ブロック / ステップフライバイ転送 ]
この転送は , 転送領域が外部領域のみであることと , 転送動作が 1 回の読出し動作
( メモリから I/O へ ), または書込み動作 (I/O からメモリへ ) のみであることを除
けば , 2 サイクル転送と同じです。
転送元アドレスの指定
方向
転送先アドレスの指定
指定不要 ( 無効 )
なし
外部領域
( 指定可能な転送アドレスの表 )
336
第 11 章 DMA コントローラ (DMAC)
■ DMA 転送全般
● ブロックサイズ
• 1 回で転送されるデータ量は , ブロックサイズ指定レジスタで設定された数 (× デー
タサイズ ) のデータの集合となります。
• 1 転送サイクルで転送されるデータ量は , データサイズとして指定される値に固定
されるので , 1 回に転送されるデータは , ブロックサイズ指定値の分の転送サイクル
数で構成されます。
• データ転送中に優先度の高い転送要求が受け付けられた場合 , またはデータ転送一
時停止要求が出された場合 , 現在のデータブロック単位が転送されたところでデー
タ転送が停止します。これにより , 分割 , または一時停止がを希望しないデータブ
ロックは保護されますが , ブロックサイズが大きいと , 応答が低下することがあり
ます。
• データ転送を直ちに停止するのは , リセット信号が検出された場合だけです。ただ
し , 転送中のデータは保証されません。
● リロード動作
DMAC モジュールは , 以下に示すような 3 種類のリロード機能をチャネルごとに設定
できます。
• 転送カウントレジスタリロード機能
指定カウントのデータ転送が終了すると , この機能によって転送カウントレジスタ
に初期設定値が再度設定され , 起動の受付けを待ちます。
この機能は , 全転送シーケンスを繰り返すときに設定します。
この機能を指定しない場合 , 指定カウントのデータ転送の終了後にカウントレジス
タの値はゼロのままとなり , それ以降 , データ転送は行われません。
• 転送元アドレスレジスタリロード機能
指定カウントのデータ転送が終了すると , この機能によって転送元アドレスレジス
タに初期設定値が再度設定されます。
この機能は , 転送元アドレス領域の固定領域からデータを連続して転送する場合に
設定します。
この機能を指定しない場合 , 転送元アドレスレジスタの値は , 指定カウントのデー
タ転送が終了した時に使われたアドレスの次のアドレスになります。アドレス領域
を固定しない場合はこの機能を使用します。
• 転送先アドレスレジスタリロード機能
指定カウントのデータ転送が終了すると , この機能によって転送先アドレスレジス
タに初期設定値が再度設定されます。
この機能は , 転送先アドレス領域の固定領域へデータを連続して転送する場合に設
定します。
( 以下 , 上記の「転送元アドレスレジスタリロード機能」と同じ。)
- 指定カウントのデータ転送の終了後 , 転送元レジスタまたは転送先レジスタのリ
ロード機能を単に有効にしているだけではデータ転送は再起動されません。各アド
レスレジスタの値が再設定されるだけです。
337
第 11 章 DMA コントローラ (DMAC)
<注意事項>
動作モード , およびリロード動作の特殊な例を記載しますので , 注意してください。
• 外部端子入力レベル検出による連続転送モードでデータを入力が連続している間
に転送しているときに , 転送カウントレジスタリロード機能を使用した場合は ,
データ転送が終了したとしても , そのままリロードされ , 転送を継続します。こ
の場合も終了コードは設定されます。
• 転送終了によってデータ転送を一時停止した後に入力検出から再起動する場合は ,
リロード機能を指定しないでください。
• バースト , ブロック , ステップ転送モードでデータが転送されている場合は , 転
送終了となるリロード後 , いったん転送を中断し , あらためて転送要求入力が再
度検出されるまでデータは転送されません。
■ アドレッシングモード
各転送チャネルの転送先 , および転送元のアドレスは個別に指定します。
アドレスの指定方法を以下に示します。アドレスは転送シーケンスの中で指定します。
● アドレスレジスタの指定
• アドレスレジスタの特長
最大 32 ビット長のレジスタです。32 ビット長を使用している場合は , メモリマッ
プ内のすべての空間がアクセス可能です。
• 転送モードとアドレス設定
- 2サイクル転送モードでは, 転送元アドレスを転送元アドレス設定レジスタ(DMASA)
で設定し , 転送先アドレスを転送先アドレス設定レジスタ (DMADA) で設定しま
す。
- フライバイ転送モードでは, メモリアドレスを転送元アドレス設定レジスタ(DMASA)
で設定します。転送先アドレス設定レジスタ (DMADA) の値はこの時点では無視
されます。
• アドレスレジスタの機能
- アドレスはアクセスごとに読み出され , アドレスバスに転送されます。
- 同時にアドレスカウンタが , 次のアクセスで使用するアドレスを計算し , アドレ
スレジスタは新しいアドレスに更新されます。
- 転送先 , および転送元のアドレスは , チャネルごとに個別に , 増分 , または減分に
よって計算されます。アドレスの計算に使用される増分 , または減分の幅は , ア
ドレスカウントサイズ指定レジスタの値 (DMACB の SASZ, DASZ) によって指定
されます。
- 転送終了時のアドレスレジスタがリロード機能を有効にしていない場合 , 最終ア
ドレスにアドレス計算をした結果のアドレスが残されます。
- リロード機能が有効の場合 , アドレスの初期値がリロードされます。
338
第 11 章 DMA コントローラ (DMAC)
<注意事項>
• 32 ビットアドレス計算の結果 , オーバフロー , またはアンダフローが発生した場
合は , アドレスエラーとしてエラーが検出され , そのチャネルのデータ転送が停
止します。( 終了コードに関連する項目を参照してください。)
• アドレスレジスタに DMAC レジスタアドレスを設定しないでください。
• デマンド転送では , 外部領域のアドレスが転送元アドレス設定レジスタ , 転送先
アドレス設定レジスタ , またはその両方に設定されていることを確認してくださ
い。
• DMAC による DMAC レジスタへのデータ転送は行わないでください。
■ データの種類
1 回の転送のデータ長 ( データサイズ ) は , 以下の 3 つから選択します。
• バイト
• ハーフワード
• ワード
DMA データ転送ではワードバウンダリ仕様が遵守されます。したがって , データ長の
異なるアドレスが転送先 , または転送元のアドレスに指定された場合は , そのデータ長
の異なる下位ビットが無視されます。
• バイト
: アクセス開始アドレスと指定アドレスは一致します。
• ハーフワード : アクセス開始アドレスは , 下位 1 ビットが "0" である 2 バイトで構成
されます。
• ワード
: アクセス開始アドレスは , 下位 2 ビットが "00" である 4 バイトで構
成されます。
転送元アドレスの下位ビットが転送先アドレスの下位ビットと異なる場合は , 設定さ
れたままのアドレスが内部アドレスバスに出力されます。しかし , そのアドレスは上記
の仕様に従って修正されて , データがアクセスされます。
■ 転送カウントの制御
転送カウントは 16 ビットの範囲で指定します (1 ∼ 65536)。転送カウント指定値は , 転
送カウントレジスタ (DMACA の DTC) で設定します。
データ転送が開始されると , レジスタ値は一時記憶バッファに格納され , 転送カウント
カウンタによって "1" だけ減分されます。このカウンタ値が "0" になると , 指定カウン
ト数の転送が終了したことが検出され , そのチャネルのデータ転送が停止するか , 再起
動の受付け待ち ( リロード指定時 ) が行われます。
● 転送カウントレジスタ群の特長
• 各レジスタは 16 ビット構成です。
• 各レジスタには専用リロードレジスタがあります。
• データ転送が開始されるときのレジスタ値がゼロである場合 , データは 65,536 回転
送されます。
● リロード動作
• この機能が効果的なのは , リロード機能があるレジスタで , リロードが許可されて
いる場合だけです。
339
第 11 章 DMA コントローラ (DMAC)
• データ転送が開始されると , カウントレジスタの初期値がリロードレジスタに退避
します。
• 転送カウントカウンタがゼロになると , 転送終了が通知され , リロードレジスタか
ら初期値が読み出されて , カウントレジスタに書き込まれます。
■ CPU の制御
DMA は転送要求を受け付けると , バスコントローラに転送要求を送ります。
バスコントローラは , DMA に対してバス動作の切れ目にて内部バスを使用する権利を
与えます。その後 , データ転送が開始されます。
● DMA 転送と割込み
• DMA データ転送中 , 通常は , データ転送が終了するまで割込みは受け付けられませ
ん。
• 割込み中に DMA 転送要求が出力された場合 , 転送要求は受け付けられ , データ転送
が終了するまで割込みは停止されます。
• 例外として , NMI 要求 , または割込みコントローラで設定されたホールド抑止レベ
ルより高いレベルの割込み要求が出された場合 , DMAC は , 1 転送ブロックの切れ
目で一時的にバスコントローラへの転送要求を取り下げます。その後 , 要求された
割込みが終了するまで , DMAC はデータ転送を一時停止します。割込みの間 , 転送
要求は内部で保持されています。割込みが終了すると , DMAC は再びバスコント
ローラに転送要求を出力し , バス使用権を取得して , DMA 転送を再起動します。
● DMA 抑止
• FR50 の DMAC では , DMA 転送中により優先度の高い割込み要因が発生すると ,
DMA 転送を停止し , 対応する割込みルーチンへの分岐を制御します。この機能は ,
割込み要求がある限り有効ですが , 割込み要因がクリアされると抑止機構が働かな
くなり , 割込み処理ルーチン内で DMA 転送を再開します。したがって , DMA 転送
を中断させるレベルの割込み要因の処理ルーチンで , 割込み要因がクリアされた後
の DMA 再転送の開始を抑止するには , DMA 抑止機能を使用します。
DMAC 全体制御レジスタの DMAH[3:0] ビットにゼロ以外の値を書き込むと , DMA
抑止機能が動作を開始します。このレジスタにゼロを書き込むと , DMA 抑止機能は
停止します。
• この機能はおもに割込みルーチン内で使用されます。この機能は , 割込みルーチン
が割込み要因をクリアする前に DMA 抑止レジスタの値を "1" だけ増分します。こ
の増分によって , 以降の DMA 転送は起こりません。割込みが処理されると , 制御が
戻る前に DMAH[3:0] ビットの値が "1" だけ減分されます。もし多重割込みが発生し
た場合 , DMAH[3:0] ビットの値はゼロにならず , DMA 転送が連続して抑止されま
す。多重割込みが発生しない場合 , DMAH[3:0] ビットの値はゼロになり , DMA 要求
は直ちに有効になります。
<注意事項>
340
• レジスタのビット数は "4" です。15 レベルを超える多重割込みでは , この機能は
使用できません。
• DMA タスクの優先順位は , 必ず他の割込みレベルより 16 レベル以上 , 上に置い
てください。
第 11 章 DMA コントローラ (DMAC)
■ ホールド調停
デバイスが外部バス拡張モードで動作している場合 , 外部端子からのホールド機能が
使用可能です。外部ホールド要求と , DMAC モジュールによる DMA 転送要求との関
係について , 以下に説明します。
● 外部ホールド中の DMA 転送要求
DMA 転送開始後に外部バス領域がアクセスされる場合 , DMA 転送はその時点で一時
停止します。DMA 転送は , 外部ホールドが解除された後に再起動されます。
● DMA 転送中の外部ホールド要求
外部ホールド状態となります。ただし , 外部バス領域が DMA 転送でアクセスされた場
合 , DMA 転送はその時点で一時停止します。DMA 転送は , 外部ホールドが解除された
後に再起動されます。
● DMA 転送要求と外部ホールド要求の同時発生
外部ホールド状態となり , また DMA 転送が内部で開始されます。ただし , 外部バス領
域が DMA 転送でアクセスされた場合 , DMA 転送はその時点で一時停止します。DMA
転送は , 外部ホールドが解除された後に再起動されます。
■ 動作開始
各チャネルはDMA転送の開始を個別に制御しますが, 動作許可は全チャネルに必要です。
• 全チャネルの動作許可
DMAC 各チャネルを起動する前に , あらかじめ全チャネルの動作を DMA 動作許可
ビット (DMACR の DMAE) で許可する必要があります。チャネルが許可されない場
合 , 起動設定 , および転送要求はすべて無効になります。
• 転送起動
転送動作を開始するには , 各チャネルの制御レジスタにある動作許可ビットを使用
します。起動されたチャネルの転送要求が受け付けられると , 設定されているモー
ドで DMA 転送動作が開始されます。
• 一時停止後のチャネルの起動
各チャネルごと , または全チャネル制御にて , 起動前に一時停止状態にしてあった
場合 , 転送動作を起動しても一時停止状態は続きます。チャネルの停止中に転送要
求が発生すると , 要求は受け付けられ , 保持されます。一時停止が解除されると ,
チャネルはデータ転送を開始します。
■ 転送要求の受付と転送の実行
• チャネルが起動されると , 各チャネルに対して設定された転送要求のサンプリング
が開始されます。
• 外部端子起動の要因としてエッジ検出を選択した場合 , 転送要求が検出されると ,
DMAC は , 転送要求をクリアする条件が満足されるまで要求を保持します ( 外部端
子起動の要因がブロック , ステップ , バースト転送で選択されている場合 )。
• 外部端子起動の要因でレベル検出 , または周辺回路割込み起動が選択されている場
合 , DMAC は , 転送要求がクリアされるまでデータ転送を続けます。転送要求がク
リアされると , DMAC は , 1 転送単位でデータ転送を停止します ( デマンド転送 / 周
辺回路割込み起動 )。周辺回路割込みはレベル検出扱いとなりますので , 割込みは
DMA による割込みクリアで行うようにしてください。
341
第 11 章 DMA コントローラ (DMAC)
• 転送要求は , 他のチャネルの転送要求が受け付けられてデータ転送が行われている
間でも , 常に受け付けられており , 優先順位の判断を行って , 1 転送単位ごとに転送
するチャネルを決定しています。
■ DMA による周辺回路割込みのクリア
• FR50 ファミリの DMA には , 周辺回路割込みをクリアする機能があります。この機
能は , 周辺回路割込みが DMA 起動の要因として選択されている場合 (IS[4:0] が
"1xxxx" の場合 ) に動作します。
• 周辺回路割込みのクリアは , 設定された起動の要因に対して行われます。つまり ,
IS[4:0] で設定される周辺回路機能だけがクリアされます。
● 割込みクリアの発生タイミング
割込みクリアの発生タイミングは転送モードによって異なります。(「11.4 DMA コン
トローラ (DMAC) の動作フロー」を参照してください。)
● ブロック / ステップ転送
ブロック転送が選択された場合 , クリア信号は , 1 ブロック ( ステップ ) のデータが転
送されるごとに発生します。
● バースト転送
バースト転送が選択された場合 , クリア信号は , 指定転送カウントのデータ転送がすべ
て終了したら発生します。
● デマンド転送
デマンド転送では外部端子からの起動要求だけがサポートされるので , クリア信号は
発生しません。
■ DMA 転送の一時停止
DMA 転送は , 以下に示す場合に一時停止します。
• 制御レジスタにデータを書き込むことによる一時停止設定
( 全チャネル同時設定のみ可能 )
一時停止ビットによって一時停止を設定すると , 対応するチャネルは一時停止解除
が設定されるまでデータ転送を停止します。一時停止の確認には DSS ビットを使用
してください。一時停止を解除すると , チャネルはデータ転送を再開します。
• NMI, またはホールド抑止レベル割込みの処理中
NMI 要求 , またはホールド抑止レベルより高いレベルの割込み要求が発生した場合 ,
データを転送している全チャネルが , 転送単位の切れ目で一時停止します。次に
チャネルはバス使用権を開放し , NMI, またはホールド抑止レベル割込みの処理を
優先します。チャネルは , NMI, または割込みの処理中に受け付けた転送要求をその
まま保持し , NMI 処理が終了するのを待ちます。要求を保持しているチャネルが
データ転送を再開するのは , NMI, またはホールド抑止レベルの割込み処理が完了
してからです。
342
第 11 章 DMA コントローラ (DMAC)
■ 動作終了 / 停止
DMA 転送の終了はチャネルごとに個別に制御されますが , 全チャネルの動作を禁止す
ることも可能です。
● 転送終了
リロードが有効でない場合 , 転送カウントレジスタがゼロになると , データ転送は停止
します。正常終了を示す終了コードが表示され , 以降の転送要求は無効になります
(DMACA の DENB ビットをクリアします )。リロードが有効の場合 , 転送カウントレ
ジスタがゼロになると , 初期値がリロードされます。正常終了を示す終了コードが表示
され , 転送要求の待ち状態に入ります (DMACA の DENB ビットをクリアしません )。
● 全チャネルの動作禁止
DMA 動作許可ビットの DMAE によって全チャネルの動作を禁止すると , 使用中のチャ
ネルを含む全チャネルの DMAC 動作が停止します。全チャネルの DMA 動作が再度許
可されても , チャネルごとに DMA 動作を再起動しない限り , データは転送されません。
この場合 , 割込みは一切発生しません。
■ エラーによる停止
指定カウントのデータ転送中に , 正常終了以外の要因でチャネルがデータ転送を停止
する場合として , 各種エラー発生による停止 , または強制停止があります。
● 周辺回路から出された転送停止要求
転送要求を出す周辺回路の中には , エラーを検出すると転送停止要求を出力するもの
があります。( 例 : 通信系周辺回路での受信エラーや送信エラー )
DMAC は , 転送停止要求を受け付けると , 転送停止要求を示す終了コードを表示して ,
対応するチャネルのデータ転送を停止します。
転送停止要求が出される条件の詳細については , 各周辺回路の仕様および IS ビットの
説明を参照してください。
● アドレスエラーの発生
以下で示すように , 各アドレッシングモードで不正なアドレッシングが行われた場合
アドレスエラーとして検出されます。(32 ビットアドレスの指定時にアドレスカウンタ
でオーバフロー , またはアンダフローが発生した場合 )
アドレスエラーが検出されると, DMACは, アドレスエラーが発生したことを示す終了
コードを表示して , 対応するチャネルのデータ転送を停止します。
■ DMAC の割込み制御
転送要求と見なされる周辺回路割込みのほかに , 次の割込みを各 DMAC チャネルに対
して出力することが可能です。
• 転送終了割込み :
データ転送が正常終了するときのみ発生します。
• エラー割込み :
周辺回路から出される転送停止要求 ( 周辺回路に起因するエラー )
アドレスエラーの発生 ( ソフトウェアに起因するエラー )
これらの割込みはすべて , 終了コードの内容に従って出力されます。
割込み要求をクリアするには , DMACS レジスタの DSS2 ∼ DSS0( 終了コード ) に "000"
343
第 11 章 DMA コントローラ (DMAC)
を書き込むことにより行われます。チャネルがデータ転送を再起動する場合は , 必ず
"000" を終了コードとして書き込んで , 割込み要求をクリアしてください。
リロードが有効であれば , チャネルは自動的にデータ転送を再起動します。この時点で
は終了コードはクリアされず , 次のデータ転送の終了による新しい終了コードが書き
込まれるまで保持されます。
1 つの終了コードには , 終了要因を 1 種類だけ表示できます。複数の要因が同時に発生
した場合は , 優先度を調べて , より優先度の高いコードが表示されます。この際発生す
る割込みは , 表示される終了コードに従います。
次のリストは , 終了コードを表示する優先順位を , 順位の高い順に並べたものです。
• リセット
• "000" の書込みによる要求のクリア
• 周辺回路停止要求 , または外部端子入力 (DSTP) による停止要求
• 正常終了
• アドレスエラー検出時の停止
• チャネルの選択および制御
■ スリープ中の DMA 転送
• DMAC はスリープモードでも動作します。
• DMAC をスリープモードで動作させるときは , 次の点に注意してください。
<注意事項>
• CPU は停止しているので , DMAC レジスタを書き換えることはできません。
DMAC をスリープモードで動作させる前に , あらかじめレジスタを設定しておく
必要があります。
• スリープモードは割込みによって解除されるので , DMAC の起動要因に周辺回路
割込みが選択されている場合は , 割込みコントローラで割込みを禁止する必要が
あります。
スリープモードが DMAC 終了割込みによって解除されないようにするには , 割
込みを禁止してください。
■ チャネルの選択と制御
転送チャネルの数は 5 チャネルまで同時に設定可能です。各チャネルの機能は個別に
設定できます。
● チャネル間優先順位
DMA 転送に同時に 1 チャネルのみ可能なため , 各チャネルには優先順位が割り当てられ
ます。優先順位の割当てには , 固定モードと回転モードがあります。後述するように ,
モードはチャネルグループごとに選択します。
● 優先順位のモード
• 固定モード
チャネルの順位がチャネル番号の小さい順に固定されます。
チャネル 0 > チャネル 1 > チャネル 2 > チャネル 3 > チャネル 4
データ転送中に優先度の高い転送要求が受け付けられた場合は , 1 転送単位 ( ブロッ
クサイズ指定レジスタの設定値×データサイズ ) のデータ転送が完了した時点で ,
転送チャネルは優先度の高いチャネルに切り替わります。
344
第 11 章 DMA コントローラ (DMAC)
優先度の高い転送要求によるデータ転送が完了すると , 元のチャネルのデータ転送
が再起動されます。
図 11.3-4 に固定モードにおける動作タイミングチャートを示します。
図 11.3-4 固定モードにおける動作タイミングチャート
チャネル0転送要求
チャネル1転送要求
SA
CPU
バス動作
転送チャネル
DA
SA
ch.1
DA
SA
ch.0
DA
SA
DA
CPU
ch.1
ch.0
チャネル0転送終了
チャネル1転送終了
• 回転モード ( チャネル 0 とチャネル 1 の間のみ )
動作が許可された当初 , チャネルは「固定モード」と同じ順位に設定されますが ,
データ転送が 1 つ終了するごとにチャネルの順位は反転します。したがって , 転送
要求が同時に出された場合 , チャネルは 1 転送単位ごとに切り替わります。このモー
ドは , 連続転送 , またはバースト転送の設定時に効果のあるモードです。
図 11.3-5 に回転モードにおける動作タイミングチャートを示します。
図 11.3-5 回転モードにおける動作タイミングチャート
チャネル0転送要求
チャネル1転送要求
CPU
バス動作
SA
転送チャネル
DA
SA
ch.1
DA
ch.0
SA
DA
ch.1
SA
DA
CPU
ch.0
チャネル0転送終了
チャネル1転送終了
● チャネルグループ
チャネル間優先順位は , 次の表に示すモードによって選択します。
モード
固定
回転
優先順位
ch.0
>
ch.1
ch.0
>
ch.1
↑
ch.0
↓
<
ch.1
備考
最初 , チャネルは上段の順位に設定されます。
上段の順位でチャネルがデータを転送した後
に順位が反転します。
■ 外部端子 , および内部動作のタイミング
外部端子および内部動作のタイミングに関する注意事項について説明します。
● DREQ 外部端子の最小有効パルス幅
DREQ 外部端子 ( チャネル 0, 1, 2 のみ ) の最小有効パルス幅は次のとおりです。
• すべての転送モード ( バースト , ステップ , ブロック , デマンド転送など ) で DMA
345
第 11 章 DMA コントローラ (DMAC)
転送を動作させる場合 , 必要なクロックサイクルの最小幅は 5 システムクロックサ
イクル (=1/2φ, CPU 系クロックの 2 周期分 ) です。
<注意事項>
DACK 出力は , DREQ 入力の受付けを示しません。DMA が許可されていて , データ
がまだ転送されていない場合 , DREQ 入力は常に受け付けられます。したがって ,
DACK 出力が有効になるまでは , DREQ 入力を保持する必要はありません ( デマン
ド転送モードを除きます )。
● デマンド転送要求の停止時における DREQ 端子入力を無効にするためのタイミングについ
て
[2 サイクル転送 ]
デマンド転送では外部領域のアドレスが , 転送元アドレス設定レジスタ , 転送先ア
ドレス設定レジスタ , またはその両方に設定されているのを確認してください。
• 外部領域間のデータ転送
DREQ の取り下げのセンスタイミングが , ライトストローブの無効のタイミングよ
り1サイクル以上前になるように使用してください。そのためには , 以下のいずれ
かの方法があります。
(1) 外部 I/O あるいは , 外部グルーロジック側での調整により ,DREQ の取り下げタ
イミングを 1 以上前にする。
(2) FR が内蔵する外部バス制御部のオートウェイト機能を使用して , ウェイトを現
在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ を無効にすると , 次の転送まで行う可能性があります。
346
第 11 章 DMA コントローラ (DMAC)
• 外部領域から内部領域間へのデータ転送
最後の DMA 転送の転送元アクセス時の外部 RDX 端子出力が "L" 区間の間に無効に
してください (DACK=L & RDX=L の区間 )。これより後に DREQ を無効にすると ,
次の転送まで行う可能性があります。
図 11.3-6 に外部領域から内部領域への 2 サイクル転送でデータが転送される場合の
DREQ 外部端子の無効タイミング例を示します。
図 11.3-6 DREQ 外部端子の無効タイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
矢印の範囲内で無効にしてください。○より遅いタイミングで無効にした場合 ,
1 回分多く転送する場合があります
• 内部領域から外部領域間へのデータ転送
DREQ の取り下げのセンスタイミングが , ライトスローブの無効のタイミングより
1 サイクル以上前になるように使用してください。そのためには , 以下のいずれか
の方法があります。
(1) 外部 I/O あるいは , 外部グルーロジック側での調整により ,DREQ の取り下げタ
イミングを 1 以上前にする。
(2)FR が内蔵する外部バス制御部のオートウェイト機能を使用して , ウェイトを現
在の設定より 1 サイクル以上大きく設定する。
これより後に DREQ を無効にすると , 次の転送まで行う可能性があります。
[ フライバイ転送 ]
デマンド転送では , 必ず , 外部領域のアドレスを転送先レジスタに設定してくださ
い。
• フライバイ ( 読出し端子に対するタイミング )
最後の DMA 転送の転送元アクセス時の外部 RDX 端子出力が "L" 区間の間に無効に
してください (DACK=L & RDX=L の区間 )。これより後に DREQ を無効にすると ,
次の転送まで行う可能性があります。
347
第 11 章 DMA コントローラ (DMAC)
• フライバイ ( 書込み端子に対するタイミング )
最後の DMA 転送の転送元アクセス時の外部 WRX 端子出力が "L" 区間の間に無効
にしてください (DACK=L & RDX=L の区間 )。これより後に DREQ を無効にすると ,
次の転送まで行う可能性があります。
図 11.3-7 に , データがフライバイ転送 ( 書込み ) される場合の DREQ 外部端子の無
効タイミング例を示します。
図 11.3-7 DREQ 外部端子の無効タイミング例
外部バスクロック
CS0
CS1
AS
RD
WRn
DREQn
DACKn
IORD
矢印の範囲内で無効にしてください。○より遅いタイミングで無効にした場合 ,
1 回分多く転送する場合があります
• 同一チャネルで引き続きデータを転送するための DREQ 外部端子入力のタイミング
( バースト , ステップ , ブロック , デマンド転送モードでのデータ転送 )
DREQ 端子入力による同一チャネルでの連続データ転送の動作は保証できません。
転送終了時に内部保持された要求をクリアするために DREQ が最速のタイミングで
再度有効にされた場合でも , 1 システムクロックサイクル (CLK 出力の 1 サイクル ) の
間は他チャネルからの転送要求の検出が有効です。したがって , 他チャネルの優先度
が高ければ , そのチャネルのデータ転送が起動されます。
上記動作以前に DREQ が有効にされた場合でも , データ転送がまだ終了していない
ため , そのアサートは無視されます。転送要求が他チャネルから出力されない場合
は , DACK 端子出力が有効にされたときに DREQ を再度有効にすることにより同一
チャネルでのデータ転送が再起動されます。
● DACK 端子出力のタイミング
• FR50 の DMAC の DACK 出力は , 受け付けられた転送要求に対するデータ転送が行
われていることを示します。
• DACK出力は基本的に, 外部バスアクセスタイミングのアドレス出力に同期します。
DACK 出力を使用する場合は , ポートレジスタで有効にする必要があります。
348
第 11 章 DMA コントローラ (DMAC)
● DEOP 端子出力のタイミング
• FR50 の DMAC の DEOP 出力は , 受け付けられたチャネルの DMA 転送が指定転送
回数分終了したことを示すものです。
• DEOP は , 転送される最終ブロックに対する外部領域のアクセスが開始されたとき
に出力されます。したがって , ブロックサイズに "1" 以外の値が設定されている場
合 ( ブロック転送モード ), 最終ブロックの最終データが転送されたときに DEOP が
出力されます。この場合 , データ転送が続いている間 (DEOP が出力される前 ) でも ,
DACK 端子出力がアサートされれば , 次の DREQ の受付けが開始されます。
• DEOP 出力は , 外部バスアクセスタイミングに従う RDX, および WRX に同期しま
す。ただし , 転送元 , または転送先が内部アクセスされている場合 , DEOP は出力さ
れません。DEOP 出力を使用する場合は , ポートレジスタで DEOP 出力を有効にす
る必要があります。
349
第 11 章 DMA コントローラ (DMAC)
● DSTP 外部端子のタイミング
• すべての転送モード ( バースト , ステップ , ブロック , デマンド転送など ) で DMA
転送を動作させる場合 , 必要なクロックサイクルの最小幅は 5 システムクロックサ
イクル (=1/2θ, CPU のクロックの 2 周期分 ) です。
• DSTP 入力タイミングを使用する場合は , DREQ の場合と同様に , 外部アクセスに同
期させてください (DACK 出力と RDX, または WRX との間でデコードした信号を使
用してください )。
• DMA データ転送を強制停止する場合に使用します。この端子の使用でデータ転送
を強制的に停止できますが , 状態レジスタ (DMACB の DSS[2:0]) が転送停止要求を
示し , エラーとして扱われます。割込みが許可されていれば割込みが発生します。
• この機能は DEOP 端子と兼用になっているので , 両方の機能を同時に使用すること
はできません。機能を切り換えるにはポートレジスタで設定してください。
● データ転送中に外部端子転送要求が再入力される場合
• バースト , ステップ , ブロック転送モードのデータ転送
- 次の転送要求は , DACK 信号が DMAC でアサートされる前に入力されたとしても
有効にはなりません。ただし , 外部バス制御ユニットと DMAC の動作が完全には
同期していないため , DACK 出力 , および DEOP 出力で , DREQ 外部端子入力を
作成する回路を初期化して , DREQ 入力による転送要求を有効にする必要があり
ます。
• デマンド転送モードのデータ転送
- 転送カウント分のデータ転送が終了した際に転送カウントレジスタのリロード
が指定されていると , 転送要求は再度受け付けられます。
● ブロック転送中に他の転送要求が出された場合
指定ブロックの転送が完了するまで , 他の転送要求は検出されません。ブロックの境界
にて , その時点で受け付けられている転送要求を評価し , 最も優先度の高いチャネルで
データを転送します。
● 外部 I/O デバイスと外部メモリ間のデータ転送
DMAC は , 転送では外部 I/O と外部メモリを区別しません。外部 I/O は固定の外部アド
レスとして設定してください。
フライバイモードでデータを転送する場合は , 外部メモリのアドレスを転送先アドレ
スレジスタに設定してください。また外部 I/O に対しては , DACK 出力と RDX, または
WRX の間でデコードされた信号を使用してください。
● DMAC の AC 特性
DREQ 外部端子 , DACK 端子出力 , DEOP 端子出力は , DMAC に関連する外部端子です。
これらの出力タイミングは , 外部バスアクセスに同期します。
350
第 11 章 DMA コントローラ (DMAC)
11.4
DMA コントローラ (DMAC) の動作フロー
ブロック転送 , バースト転送およびデマンド転送の動作フローを説明します。
■ ブロック転送
ブロック転送は , 以下の機能をもっています。
• すべての起動の要因で起動可能です ( 選択 )。
• すべての領域にアクセスできます。
• ブロック数が設定可能です。
• 指定ブロック数の転送の終了時に割込みクリアを出します。
• 指定カウントの転送の終了時に DMA 割込みを出します。
図 11.4-1 にブロック転送の動作フローを示します。
図 11.4-1 ブロック転送の動作フロー
DENB=>0
DMA停止
DENB=1
起動要求を待つ
リロード許可
起動要求
アドレス, 転送カウント,
ブロック数の初期値をロード
転送元アドレスアクセス
アドレス計算
フライバイでは 1 ア ク セ ス
転送先アドレスアクセス
アドレス計算
Address
calculation
ブロック数 -1
BLK=0
転送カウント -1
周辺回路割込み起動の要因選択時のみ
アドレス, 転送カウント,
ブロック数のライトバック
割込みクリア
DTC=0
DMA 転送の終了
割込みクリア
DMA 割込み発生
351
第 11 章 DMA コントローラ (DMAC)
■ バースト転送
バースト転送は , 以下の機能をもっています。
• すべての起動の要因で起動可能です ( 選択 )。
• すべての領域にアクセスできます。
• ブロック数が設定可能です。
• 指定カウントの転送の終了時に割込みをクリアして , DMA 割込みを出します。
図 11.4-2 にバースト転送の動作フローを示します。
図 11.4-2 バースト転送の動作フロー
DMA 停止
DENB=>0
DENB=1
起動要求を待つ
リロード許可
アドレス,転送カウント,
ブロック数の初期値をロード
転送元アドレスアクセス
アドレス計算
フライバイでは 1 アクセス
転送先アドレスアクセス
アドレス計算
ブロック数 -1
BLK=0
転送カウント -1
DTC=0
アドレス,転送カウント,
ブロック数のライトバック
周辺回路割込み起動の要因選択時のみ
Only when peripheralinterrupt
startcause isselected
割込みクリア
DMA 転送の終了
352
割込みクリア発生
DMA 割込み発生
第 11 章 DMA コントローラ (DMAC)
■ デマンド転送
• デマンド転送は , 以下の機能をもっています。
• 外部端子 (DREQ) からの要求 ( レベル検出 ) のみを受け付けます。ほかの要因によ
る起動は許可されません。
• 外部領域のアクセスが必須条件です ( 外部領域のアクセスが次の起動の要因になる
ため )。
• ブロック数は , 設定にかかわらず常に "1" です。
• 指定カウントの転送の終了時に割込みをクリアして , DMA 割込みを出します。
図 11.4-3 にデマンド転送の動作フローを示します。
図 11.4-3 デマンド転送の動作フロー
DMA 停止
DENB=>0
なし
リロード許可
DENB=1
起動要求
を待つ
起動要求
アドレス , 転送カウント,
ブロック数の初期値をロード
転送元アドレスアクセス
アドレス計算
フライバイでは 1 アクセス
転送先アドレスアクセス
アドレス計算
転送カウント-1
アドレス, 転送カウント,
ブロック数のライトバック
DTC=0
割込みクリア
DMA 転送の終了
周辺回路割込み起動の要因選択時のみ
割込みクリア発生
DMA 割込み発生
353
第 11 章 DMA コントローラ (DMAC)
11.5
データバスの転送例
データバスにおける , 2 サイクル転送およびフライバイ転送のデータ転送例を示しま
す。
■ 2 サイクル転送のデータフロー
以下の図で転送例を 6 つ示します。ほかの組合せは省略します。
外部領域→外部領域の転送
D-bus
X-bus
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
I-bus
バス
コントローラ
D-bus
X-bus
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
SDRAM I/F
バス
コントローラ
C PU
C PU
I-bus
DMAC
ライトサイクル
SDRAM I/F
リードサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
外部領域→内部R A M 領域の転送
D-bus
X-bus
データバッファ
F-bus
RAM
ROMまたは
RAM
ROM
orRAM
I/O
I-bus
X-bus
バス
コントローラ
D-bus
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
SDRAM I/F
バス
Bus
コントローラ
controller
SDRAM I/F
C PU
I-bus
DMAC
ライトサイクル
C PU
リードサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
外部領域→内部 I/O 領域の転送
D-bus
X-bus
データバッファ
F-bus
RAM
354
ROMまたはRAM
I/O
I-bus
D-bus
X-bus
バス
コントローラ
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
SDRAM I/F
バス
コントローラ
DMAC
ライトサイクル
C PU
C PU
I-bus
SDRAM I/F
リードサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
第 11 章 DMA コントローラ (DMAC)
外部領域→SDRAM領域の転送
D-bus
X-bus
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
I-bus
X-bus
バス
コントローラ
D-bus
データバッファ
F-bus
RAM
ROMまたはRAM
I/O
SDRAM I/F
バス
コントローラ
S DRA M I/
F
C PU
I-bus
DMAC
書込みサイクル
C PU
読出しサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
X-bus
データバッファ
F-bus
RAM
ROMまたはRAM
ROM orRAM
I/O
I-bus
D-bus
X-bus
バス
Bus
コントローラ
controller
データバッファ
Data buffe
F-bus
RAM
ROMまたはRAM
ROM orRAM
I/O
SDRAM I/F
D-bus
バス
コントローラ
SDRAM I/F
C PU
I-bus
DMAC
書込みサイクル
C PU
読出しサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
Externalbus interface
内部領域→外部領域の転送
データバッファ
Data buffe
F-bus
RAM
ROM orRAM
ROMまたはRAM
I/O
I-bus
Bus
バス
controller
コントローラ
D-bus
X-bus
データバッファ
Data buffe
F-bus
RAM
ROM orRAM
ROMまたはRAM
I/O
Externalbus interface
D-bus
X-bus
SDRAM I/F
Bus
バス
コントローラ
controller
DMAC
書込みサイクル
C PU
C PU
I-bus
SDRAM I/F
読出しサイクル
MB91xxx
外部バスインタフェース
DMAC
外部バスインタフェース
MB91xxx
Externalbus interface
内部 RAM領域→内部I/O領域の転送
355
第 11 章 DMA コントローラ (DMAC)
■ フライバイ転送のデータフロー
以下の図で転送例を 2 つ示します。
フライバイ転送(メモリからI/Oへ)
D-bus
データバッファ
F-bus
RAM
R O M または
RAM
ROM
orRAM
I/O
me mo ry
X-bus
でメモリを読み出す
RDX
CSxxwith
Readsおよび
memory
RDX and DACK
Writes
to I/ODACK
with RDX
and DACK
RDX
および
でメモリに書き込む
I/O
C PU
バス
コントローラ
メモリ
I-bus
SDRAM I/F
DMAC
リードサイクル
外部バスインタフェース
MB91xxx
Fly-bytransfer
with SDRAM isdisabled.
SDRAM
を使用するフライバイ転送は禁止です。
フライバイ転送 (I/O からメモリへ)
データバッファ
F-bus
RAM
RAM
R O M または
ROM
orRAM
I/O
me mo ry
WRX
CSxX with
および
でメモリに書き込む
Writes
to memory
WRX and CSxX
Readsおよび
I/O with
WRX でand
WRX
DACK
I/ODACK
を読み出す
I/O
D-bus
X-bus
バス
コントローラ
SDRAM I/F
C PU
I-bus
メモリ
DMAC
リードサイクル
外部バスインタフェース
MB91xxx
Fly-by
SDRAMtransfer
with SDRAM isdisabled.
を使用するフライバイ転送は禁止です。
フライバイ転送では上記の信号のほかに IOWX(A26), および IORX(A25) が使用できで
す。メモリから I/O への転送では IOWX は RDX と同じであり , I/O からメモリへの転
送では IORX は WRX と同じです。
356
第 11 章 DMA コントローラ (DMAC)
11.6
外部 DMA 信号
外部 DMA 転送および DMA 制御信号について説明します。
外部 DMA 転送は , 送信アドレスと送信データ用に外部バスインタフェースを使用しま
す。これらの信号の説明については関連する章を参照ください。バスインタフェース
信号に加え , 以下に示す DMA 制御信号が使われます。
表 11.6-1 DMA 制御信号
信号
機能
CLKT の関連エッジ
入出力
備考
DREQ
外部 DMA 処理要求
立上りエッジ
入力
DACK
外部 DMA 処理正常
立上りエッジ
出力
DEOP
外部 DMA 処理終了
立下りエッジ
出力
*
DSTP
外部 DMA 処理停止
立上りエッジ
入力
*
*: DEOP および DSTP は同じ端子を共有しています。要求する機能は , 必ず PFR を介
して定義してください。
357
第 11 章 DMA コントローラ (DMAC)
11.7
DMA 転送例
2 サイクル転送 , フライバイ転送およびデマンド転送の DMA 転送例として 6 例を示
します。
■ DMA ブロック 2 サイクル転送 ( バイト )
読出し
CPU
書込み
読出し
書込み
読出し
書込み
読出し
書込み
A[31:0]
An
Ax
Am
An+1
Am+1
An+2
Am+2
An+3
Am+3
D[31:24]
D0
Dx
D0
X
D[23:16]
X
Dx
D1
D[15:8]
X
Dx
X
D2
D[7:0]
X
Dx
X
X
3
4
CPU
CPU
CPU
CPU
12
13
CLK
AS
D1
X
X
X
X
D2
X
D3
D3
10
11
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
5
6
7
8
9
1 区 : バス動作は , CPU アクセスです (DACK=1)。外部 DREQ は DMA 転送を開始す
るためにアクティブになります。
2 区 : バス動作は , まだ CPU アクセスです (DACK=1)。
3 区 : バス動作は , DMA アクセスに変わります (DACK=0)。第 1 バイト (D0) が DMA
ソースアドレス (An) から読み込まれます (RDX=0)。
4 区 : DMA 転送が CPU のライトアクセス (DACK=1) によって割り込まれます。
5 区 : 第 1 バイト (D0) が DMA ディスティネーションアドレス (Am) に書き込まれま
す (WRX[0]=0)。
6 区 : 第 2 バイト (D1) が DMA ソースアドレス (An+1) から読み込まれます (RDX=0)。
7 区 : 第 2 バイト (D1) が DMA ディスティネーションアドレス (Am+1) に書き込まれ
ます (WRX[1]=0)。
8 区 : 第 3 バイト (D2) が DMA ソースアドレス (An+2) から読み込まれます (RDX=0)。
9 区 : 第 3 バイト (D2) が DMA ディスティネーションアドレス (Am+2) に書き込まれ
ます (WRX[2]=0)。
10 区 :第 4 バイト (D3) が DMA ソースアドレス (An+3) から読み込まれます (RDX=0)。
これは , 最後の DMA リードアクセスです (DEOP=0)。
11 区 :第 4 バイト (D3) が DMA ディスティネーションアドレス (Am+3) に書き込まれ
ます (WRX[3]=0)。これは , 最後の DMA ライトアクセスです (DEOP=0)。
12 区 :DMA 転送が終了します。バス動作は , CPU アクセスです (DACK=1)。
358
第 11 章 DMA コントローラ (DMAC)
■ DMA バースト 2 サイクル転送 ( ハーフワード )
読出し
CPU
書込み
読出し
書込み
読出し
書込み
読出し
書込み
An
Ax
Am
An+2
Am+2
An+4
Am+4
An+6
Am+6
D[31:24]
D00
Dx
D00
X
D10
D10
X
D[23:16]
D01
Dx
D01
X
D11
D11
X
D[15:8]
X
Dx
D02
D02
X
D12
D12
D[7:0]
X
Dx
D03
D03
X
D13
D13
3
4
6
7
8
10
11
CPU
CPU
CPU
CPU
12
13
CLK
AS
A[31:0]
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
5
9
1 区 : バス動作は , CPU アクセスです (DACK=1)。外部 DREQ は DMA 転送を開始す
るためにアクティブになります。
2 区 : バス動作は , まだ CPU アクセスです (DACK=1)。
3 区 : バス動作は , DMA アクセスに変わります (DACK=0)。第 1 ハーフワード (D00,
D01) が DMA ソースアドレス (An) から読み込まれます (RDX=0)。
4 区 : DMA 転送が CPU のライトアクセス (DACK=1) によって割り込まれます。
5 区 : 第 1 ハーフワード (D00, D01) が DMA ディスティネーションアドレス (Am) に
書き込まれます (WRX[1:0]=00)。
6 区 : 第 2 ハーフワード (D02, D03) が DMA ソースアドレス (An+2) から読み込まれま
す (RDX=0)。
7 区 : 第 2 ハーフワード (D02, D03) が DMA ディスティネーションアドレス (Am+2)
に書き込まれます (WRX[3:2]=00)。
8 区 : 第 3 ハーフワード (D10, D11) が DMA ソースアドレス (An+4) から読み込まれま
す (RDX=0)。
9 区 : 第 3 ハーフワード (D10, D11) が DMA ディスティネーションアドレス (Am+4)
に書き込まれます (WRX[1:0]=00)。
10 区 :第 4 ハーフワード (D12, D13) が DMA ソースアドレス (An+6) から読み込まれま
す (RDX=0)。これは , 最後の DMA リードアクセスです (DEOP=0)。
11 区 :第 4 ハーフワード (D12, D13) が DMA ディスティネーションアドレス (Am+6)
に書き込まれます (WRX[3:2]=00)。これは , 最後の DMA ライトアクセスです
(DEOP=0)。
12 区 :DMA 転送が終了します。バス動作は , CPU アクセスです (DACK=1)。
359
第 11 章 DMA コントローラ (DMAC)
■ DMA バースト 2 サイクル転送 ( ワード )
読出し
CPU
書込み
読出し
書込み
読出し
書込み
読出し
書込み
A[31:0]
An
Ax
Am
An+4
Am+4
An+8
Am+8
An+B
Am+B
D[31:24]
D00
Dx
D00
D10
D10
D20
D20
D30
D30
D[23:16]
D01
Dx
D01
D11
D11
D21
D21
D31
D31
D[15:8]
D02
Dx
D02
D12
D12
D22
D22
D32
D32
D[7:0]
D03
Dx
D03
D13
D13
D23
D23
D33
D33
3
4
5
6
7
8
9
10
11
CPU
CPU
CPU
CPU
12
13
CLK
AS
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
1 区 : バス動作は , CPU アクセスです (DACK=1)。外部 DREQ は DMA 転送を開始す
るためにアクティブになります。
2 区 : バス動作は , まだ CPU アクセスです (DACK=1)。
3 区 : バス動作は , DMA アクセスに変わります (DACK=0)。第 1 ワード (D00, D01,
D02, D03) が DMA ソースアドレス (An) から読み込まれます (RDX=0)。
4 区 : DMA 転送が CPU のライトアクセス (DACK=1) によって割り込まれます。
5 区 : 第 1 ワード (D00, D01, D02, D03) が DMA ディスティネーションアドレス (Am)
に書き込まれます (WRX[3:0]=0000)。
6 区 : 第 2 ワード (D10, D11, D12, D13) が DMA ソースアドレス (An+4) から読み込ま
れます (RDX=0)。
7 区 : 第 2 ワード (D10, D11, D12, D13) が DMA ディスティネーションアドレス
(Am+4) に書き込まれます (WRX[3:0]=0000)。
8 区 : 第 3 ワード (D20, D21, D22, D23) が DMA ソースアドレス (An+8) から読み込ま
れます (RDX=0)。
9 区 : 第 3 ワード (D20, D21, D22, D23) が DMA ディスティネーションアドレス
(Am+8) に書き込まれます (WRX[3:0]=0000)。
10 区 :第 4 ワード (D30, D31, D32, D33) が DMA ソースアドレス (An+B) から読み込ま
れます (RDX=0)。これは , 最後の DMA リードアクセスです (DEOP=0)。
11 区 :第 4 ワード (D30, D31, D32, D33) が DMA ディスティネーションアドレス
(Am+B) に書き込まれます (WRX[3:0]=0000)。これは , 最後の DMA ライトアク
セスです (DEOP=0)。
12 区 :DMA 転送が終了します。バス動作は , CPU アクセスです (DACK=1)。
360
第 11 章 DMA コントローラ (DMAC)
■ DMA フライバイ転送 ( バイト )[ メモリから I/O へ ]
読出し
CPU
読出し
読出し
読出し
読出し
読出し
読出し
読出し
An
Ax
An+1
An+2
An+3
An+4
An+5
An+6
An+7
D[31:24]
External
Dx
External
D[23:16]
External
Dx
External
D[15:8]
External
Dx
External
D[7:0]
External
Dx
External
3
4
5
6
7
8
9
10
11
CPU
CPU
CPU
CPU
12
13
CLK
AS
A[31:0]
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
1 区 : バス動作は , CPU アクセスです (DACK=1)。外部 DREQ は DMA 転送を開始す
るためにアクティブになります。
2 区 : バス動作は , まだ CPU アクセスです (DACK=1)。
3 区 : バス動作は , DMA アクセスに変わります (DACK=0)。第 1 バイトが DMA ソー
スアドレス (An) から読み込まれます (RDX=0)。データバスは , 外部に割り当て
られます。
4 区 : DMA 転送が CPU のライトアクセス (DACK=1) によって割り込まれます。
5 区 : 3 区と同じです。
6 区∼ 10 区 : バス動作は , DMA アクセスです (DACK=0)。
11 区 :これは , 最後の DMA リードアクセスです (DEOP=0)。
361
第 11 章 DMA コントローラ (DMAC)
■ DMA フライバイ転送 ( バイト ) [I/O からメモリへ ]
書込み
書込み
書込み
書込み
書込み
書込み
書込み
書込み
書込み
An
Ax
An+1
An+2
An+3
An+4
An+5
An+6
An+7
D[31:24]
External
Dx
External
D[23:16]
External
Dx
External
D[15:8]
External
Dx
External
D[7:0]
External
Dx
External
3
4
5
6
7
8
9
10
11
CPU
CPU
CPU
CPU
12
13
CLK
AS
A[31:0]
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
1 区 : 7 バス動作は , CPU アクセスです (DACK=1)。外部 DREQ は DMA 転送を開始
するためにアクティブになります。
2 区 : バス動作は , まだ CPU アクセスです (DACK=1)。
3 区 : バス動作は , DMA アクセスに変わります (DACK=0)。第 1 バイトが DMA ディ
スティネーションアドレス (An) に書き込まれます (WRX[0]=0)。データバスは ,
外部に割り当てられます。
4 区 : DMA 転送が CPU のライトアクセス (DACK=1) によって割り込まれます。
5 区 : 3 区と同じです。
6 区∼ 10 区 : バス動作は , DMA アクセスです (DACK=0)。
11 区 :これは , 最後の DMA ライトアクセスです (DEOP=0)。
362
第 11 章 DMA コントローラ (DMAC)
■ DMA デマンド転送 ( ワード )
CPU
CPU
DMA
DMA
CPU
CPU
CPU
DMA
DMA
DMA
DMA
CPU
A[31:0]
A0
A1
Ax
Ax
A3
A4
A5
A6
A7
Ax
D[31:24]
D00
D10
Dx
Dx
D30
D40
D50
D60
D70
Dx
D[23:16]
D01
D11
Dx
Dx
D31
D41
D51
D61
D71
Dx
D[15:8]
D02
D12
Dx
Dx
D32
D42
D52
D62
D72
Dx
D[7:0]
D03
D13
Dx
Dx
D33
D43
D53
D63
D73
Dx
3
4
5
6
7
8
9
10
11
12
CPU
CLK
AS
RDX
WRX[3]
WRX[2]
WRX[1]
WRX[0]
CSmX
DREQ
DACK
DEOP
1
2
13
1 区 : バス動作は , CPU アクセスです。外部 DREQ は DMA 転送を開始するためにア
クティブになります。
2 区 : バス動作は , まだ CPU アクセスです。
3 区 : バス動作は , DMA アクセスに変わります。これは , DACK の 1 への変動により
ます。第 1 DMA アドレス (A0) とデータ (D0) が読み込まれます (RDX=0)。
4 区 : 第 2 DMA アドレス (A1) とデータ (D1) が読み込まれます。DMA 転送は , 外部
DREQ の 0 への変動によって割り込まれます。
5 区 : バス動作は , CPU アクセスです (DACK=1)。
6 区 : 外部 DREQ は , DMA 転送を継続するために再びアクティブになります。
7 区 : 2 区と同じです。
8 区 : 3 区と同じです。
9 区 : DMA 転送します。
10 区 :DMA 転送します。
11 区 :最後の DMA 転送です。これは , DEOP の 0 への変動によります。
12 区 :DMA 転送が終了します。DREQ は , DACK と連動するように非アクティブにな
ります。バス動作は , CPU アクセスです。
363
第 11 章 DMA コントローラ (DMAC)
364
第 12 章
OS サポートモジュール
遅延割込みとビットサーチモジュールの概要を示
し , レジスタの構成と機能 , 動作 , およびビット
サーチモジュールの退避復帰処理について説明し
ます。
12.1 遅延割込み
12.2 ビットサーチモジュール
365
第 12 章 OS サポートモジュール
12.1
遅延割込み
遅延割込みに使用する制御レジスタについて説明します。
■ 遅延割込み制御レジスタ (DICR)
遅延割込み制御レジスタ (DICR) は , 遅延割込みを発生するレジスタで , タスク切換え
割込みの発生に使用します。
● 遅延割込み制御レジスタ (DICR) のビット構成
図 12.1-1 に遅延割込み制御レジスタのビット構成を示します。
図 12.1-1 遅延割込み制御レジスタのビット構成
アドレス
bit7
6
5
4
3
2
1
0
初期値
00000044H
−
−
−
−
−
−
−
DLYI
-------0B
R/W
アクセス→
● 遅延割込み制御レジスタ (DICR) のビットの機能
以下に , 遅延割込み制御レジスタ (DICR) の各ビットの機能を説明します。
[bit0] DLYI
このビットは , 遅延割込みの発生 , および解除を制御します。
DLYI
説明
0
遅延割込みを解除します ( 要求なし )。( 初期値 )
1
遅延割込みを発生します。
● 動作
遅延割込みは , タスク切換え用の割込みを発生するためのものです。ソフトウェアで遅
延割込み機能を使用して , CPU への割込み要求の発生 , または取消しを行うことができ
ます。
• 割込み番号 : 遅延割込みは , 最大の割込み番号を持つ割込み要因に割り当てられま
す。MB91360 シリーズでは , 割込み番号 63(3FH) を遅延割込みに割り
当てています。
• DICR レジスタの DLYI ビットを "1" に設定すると , 遅延割込みが発生します。この
ビットを "0" に設定すると , 遅延割込みが取り消されます。このビットは , 一般の割
込みにおける割込み要因フラグと同じ機能を持ちます。割込みルーチンでは , この
ビットをクリアして , タスク切換えを指定してください。
366
第 12 章 OS サポートモジュール
12.2
ビットサーチモジュール
ビットサーチモジュールは , 入力レジスタに書き込まれたデータの "0", "1", または
変化点を検索し , 検出したビットの位置を返します。
ここでは , レジスタの構成とブロックダイヤグラムを示します。
■ ビットサーチモジュールのレジスタ構成
図 12.2-1 にビットサーチモジュールのレジスタ構成を示します。
図 12.2-1 ビットサーチモジュールのレジスタ構成
レジスタ名
名称
アドレス
0 検出用データレジスタ(BSD0)
BSD0
0000 03F0H
1 検出用データレジスタ (BSD1)
BSD1
0000 03F4H
変化点検出用データレジスタ (BSDC)
BSDC
0000 03F8H
検出結果レジスタ (BSRR)
BSRR
0000 03FCH
bit31 bit0
■ ビットサーチモジュールのブロックダイヤグラム
図 12.2-2 にビットサーチモジュールのブロックダイヤグラムを示します。
図 12.2-2 ビットサーチモジュールのブロックダイヤグラム
入力ラッチ
D-バス
アドレスデコーダ
検出モード
1検出データ化
ビットサーチ回路
検索結果
367
第 12 章 OS サポートモジュール
12.2.1
ビットサーチモジュールのレジスタ
本項では , 0 検出用データレジスタ (BSD0), 1 検出用データレジスタ (BSD1), 変化点
検出用データレジスタ (BSDC), および検出結果レジスタ (BSRR) について説明しま
す。
■ 0 検出用データレジスタ (BSD0)
図 12.2-3 に 0 検出用データレジスタ (BSD0) の構成を示します。
図 12.2-3 0 検出用データレジスタ (BSD0) の構成
アドレス
bit31
レジスタ構成
0
0000 03F0H
初期値
アクセス
不定
W
レジスタに書き込まれた値の 0 検出に使用します。
リセット後の初期値は不定です。
読出し値は不定です。
レジスタにデータを転送する場合は , 32 ビット長のデータ転送命令だけを使用してく
ださい。8 ビット長 , および 16 ビット長のデータ転送命令は使用しないでください。
■ 1 検出用データレジスタ (BSD1)
図 12.2-4 に 1 検出用データレジスタ (BSD1) の構成を示します。
図 12.2-4 1 検出用データレジスタ (BSD1) の構成
アドレス
bit31
レジスタ構成
0000 03F4H
0
初期値
アクセス
不定
R/W
レジスタにデータを転送する場合は , 32 ビット長のデータ転送命令だけを使用してく
ださい。8 ビット長 , および 16 ビット長のデータ転送命令は使用しないでください。
● 書込み
レジスタに書き込まれた値から "1" を検出します。
● 読出し
ビットサーチモジュールの内部状態の退避用データが読み出されます。
割込みハンドラなどがビットサーチモジュールを使用する場合に , 元の状態を退避復
帰する時に使用します。0 検出や変化点検出 , データレジスタへデータを書き込んだ場
合でも , このレジスタのみ操作することで退避復帰できます。
リセット後の初期値は不定です。
368
第 12 章 OS サポートモジュール
■ 変化点検出用データレジスタ (BSDC)
図 12.2-5 に変化点検出用データレジスタ (BSDC) の構成を示します。
図 12.2-5 変化点検出用データレジスタ (BSDC) の構成
アドレス
bit31
レジスタ構成
0
初期値
アクセス
不定
W
0000 03F8H
レジスタに書き込まれた値の変化点検出に使用します。
リセット後の初期値は不定です。
読出し値は不定です。
レジスタにデータを転送する場合は , 32 ビット長のデータ転送命令だけを使用してく
ださい。8 ビット長 , および 16 ビット長のデータ転送命令は使用しないでください。
■ 検出結果レジスタ (BSRR)
図 12.2-6 に検出結果レジスタ (BSRR) の構成を示します。
図 12.2-6 検出結果レジスタ (BSRR) の構成
アドレス
bit31
レジスタ構成
0000 03FCH
0
初期値
アクセス
不定
R
0 検出 , 1 検出 , または変化点検出の結果をこのレジスタから読み出すことができます。
このレジスタからどの検出結果が読み出されるかは , 最後に書き込まれたデータレジ
スタによって決まります。
369
第 12 章 OS サポートモジュール
12.2.2
ビットサーチモジュールの動作と退避復帰の処理
本項では , 0 検出 , 1 検出 , および変化点検出の動作と , 退避復帰の処理について説
明します。
■ 0 検出
ビットサーチモジュールは , "0" を検出するためにデータレジスタに書き込まれたデー
タを , MSB( 最大有効ビット ) から LSB( 最小有効ビット ) までをスキャンし , 最初に検
出した "0" の位置を返します。
検出結果は , 検出結果レジスタを読み出すことによって得られます。
表 12.2-1 に , 検出された位置と返される値の関係を示します。
データに "0" が含まれていない場合 ( つまり , 値が「FFFFFFFFH」の場合 ), ビットサー
チモジュールは値 "32" を返します。
[ 実行例 ]
レジスタに書き込まれたデータ
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
(FFFFF000H )
(F849E0AAH )
(8002AAAAH )
(FFFFFFFFH )
読出し値(10進)
20
5
1
32
■ 1 検出
ビットサーチモジュールは , "1" を検出するために , データレジスタに書き込まれた
データを , MSB( 最大有効ビット ) から LSB( 最小有効ビット ) までをスキャンし , 最初
に検出した "1" の位置を返します。
検出結果は , 検出結果レジスタを読み出すことによって得られます。
表 12.2-1 に , 検出された位置と返される値の関係を示します。
データに "1" が含まれていない場合 ( つまり , 値が「0000000H」の場合 ), ビットサーチ
モジュールは値 "32" を返します。
[ 実行例 ]
レジスタに書き込まれたデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
370
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
(00000000H)
読出し値(10進)
2
7
14
31
32
第 12 章 OS サポートモジュール
■ 変化点検出
ビットサーチモジュールは , 変化点を検出するためにデータレジスタに書き込まれた
データを , ビット 30 から LSB までをスキャンし , 各ビットを MSB の値と比較します。
ビットサーチモジュールは , MSB と異なる値を最初に検出したビットの位置を返しま
す。
検出結果は , 検出結果レジスタを読み出すことで得られます。
表 12.2-1 に , 検出された位置と返される値の関係を示します。
データに変化点が含まれていない場合 , ビットサーチモジュールは値 "32" を返します。
[ 実行例 ]
レジスタに書き込まれたデータ
00100000000000000000000000000000B
00000001001000110100010101100111B
00000000000000111111111111111111B
00000000000000000000000000000001B
00000000000000000000000000000000B
11111111111111111111000000000000B
11111000010010011110000010101010B
10000000000000101010101010101010B
11111111111111111111111111111111B
読出し値(10進)
2
7
14
31
32
20
5
1
32
(20000000H)
(01234567H)
(0003FFFFH)
(00000001H)
(00000000H)
(FFFF000H)
(F849E0AAH)
(8002AAAAH)
(FFFFFFFFH)
表 12.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
−
−
−
371
第 12 章 OS サポートモジュール
■ 退避復帰の処理
ビットサーチモジュールを割込みハンドラで使用するときなど , ビットサーチモ
ジュールの内部状態を退避復帰する必要がある場合は , 次の手順を使用します。
1. 1 検出用データレジスタを読み出し , その内容を保存します ( 退避 )。
2. ビットサーチモジュールを使用します。
3. 手順 1. で退避したデータを , 1 検出用データレジスタに書き込みます ( 復帰 )。
上記手順の結果 , 検出結果レジスタが次に読み出されるときの値は , 手順 1. の前にビッ
トサーチモジュールに書き込まれた内容に応じた値になります。
最後に書き込まれたデータレジスタが , 0 検出用データレジスタ , または変化点検出用
データレジスタであっても , 上記の手順によって , モジュールを元の状態に正しく復元
させることができます。
372
第 13 章
PPG タイマ
PPG タイマの概要 , レジスタ構成と機能 , PPG タ
イマの動作について説明します。
13.1 PPG タイマの概要
13.2 PPG タイマのレジスタ
13.3 PPG タイマの動作
373
第 13 章 PPG タイマ
13.1
PPG タイマの概要
PPG ( プログラマブル・パルス・ジェネレータ ) タイマは , 任意の周波数とパルス幅
( デューティ比 ) で精度の高い PWM ( パルス幅変調 ) 波形を効率良く出力すること
ができます。
MB91360 シリーズには , 8 つの PPG タイマチャネルが格納されています。それぞ
れのチャネルは , 16 ビットのダウンカウンタ , サイクル設定レジスタ , デューティ設
定レジスタ , 端子制御部から構成されます。
各チャネルの制御ステータスレジスタを使用して , PPG タイマの動作状態を示しま
す。汎用制御レジスタ 1 と 2 は , 4 つのチャネルで共有する共通レジスタで , 入力や
ソフトウェアのトリガに使用します。
■ 機能概要
● カウンタクロック
16 ビットダウンカウンタのクロックは , 次の 4 種類から選択できます。
内部クロック : φ, φ/4, φ/16, φ/64(φ は周辺回路用のマシンクロック )
● カウンタ値
カウンタ値は , リセット , アンダフローで "FFFFH" に初期化することができます。16
ビットのダウンカウンタは , "0000H" から "FFFFH" に変わるとアンダフローを起こしま
す。
● PPG 出力
各チャネルは OCPA 端子に PPG 出力があります。8 チャネルに対して 8 出力端子あり
ます。
● レジスタ
レジスタには , 周期設定レジスタとデューティ設定レジスタがあります。
• 周期設定レジスタ
バッファ付 , リロード用データレジスタです。バッファからのデータ転送は , 起動
トリガが検出されたとき , またはダウンカウンタがアンダフローを起こした ( サイ
クルの一致 ) ときに実行されます。出力は , サイクルの一致で反転します。
• デューティ設定レジスタ
バッファ付コンペアレジスタです。このレジスタに設定される値は , カウンタ値と
比較されます。値が一致すると , 出力が反転します ( デューティの一致 )。
● 端子制御
デューティの一致で , "1" にリセット ( 優先 )。
アンダフローで , "0" にリセット。
出力値固定モードがあり , オール "L", またはオール "H" を出力できます。
極性の指定も可能です。
374
第 13 章 PPG タイマ
● 割込み要求
割込み要求は , 以下の割込み要因から選択して発生することができます。
• PPG タイマ起動 ( ソフトウェアトリガ , またはトリガ入力 )
• アンダフロー発生 ( サイクルの一致 )
• デューティの一致発生
• アンダフロー発生 ( サイクルの一致 ), またはデューティの一致発生
● 複数チャネルの同時起動
ソフトウェア , またはほかのインターバルタイマで複数チャネルの同時起動が設定で
きます。また , 動作中に PPG タイマの再起動も設定できます。
● PPG タイマブロックダイヤグラム
PPG タイマ全体のブロックダイヤグラムを図 13.1-1 に , PPG タイマ (1 チャネル分 ) の
ブロックダイヤグラムを図 13.1-2 に示します。
図 13.1-1 PPG タイマ全体のブロックダイヤグラム
16 ビットリロードタイマ
TRG 入力
PPG タイマ ch.0
ch.0
ch.1
汎用制御
レジスタ 10
(ソース選択)
出力端子
OCPA0(PPG0)
TRG 入力
PPG タイマ ch.1
OCPA1(PPG1)
汎用制御レジスタ
20
TRG 入力
PPG タイマ ch.2
OCPA2(PPG2)
禁止レジスタ 0
TRG 入力
PPG タイマ ch.3
OCPA3(PPG3)
TRG 入力
PPG タイマ ch.4
OCPA4(PPG4)
TRG 入力
PPG タイマ ch.5
OCPA5(PPG5)
汎用制御レジスタ
21
TRG 入力
PPG タイマ ch.6
OCPA6(PPG6)
禁止レジスタ 1
TRG 入力
PPG タイマ ch.7
OCPA7(PPG7)
16 ビットリロードタイマ
ch.2
ch.3
汎用制御
レジスタ 11
(ソース選択)
375
第 13 章 PPG タイマ
図 13.1-2 PPG タイマ (1 チャネル分 ) のブロックダイヤグラム
サイクル設定レジスタ
デューティ設定レジスタ
PCSR
PDUT
プリスケーラ
Prescaler
φ/1
cmp
φ/4
クロック
φ/16
ロード
16 ビットダウンカウンタ
φ/64
スタート
アンダフロー
PPG マスク
S
Q
PPG 出力
周辺回路クロック(φ)
R
反転ビット
Enable
許可
割込み
選択
TRG 入力
(内部トリガ入力 )
エッジ検出
ソフトウェアトリガ
376
IRQ(割込み要求信号 )
第 13 章 PPG タイマ
PPG タイマのレジスタ
13.2
この節では , PPG タイマのレジスタを列挙し , それらの機能の詳細について説明し
ます。
■ チャネル 0 ∼ 3 の PPG タイマのレジスタ
図 13.2-1 にチャネル 0 ∼ 3 の PPG タイマのレジスタ一覧を示します。
図 13.2-1 チャネル 0 ∼ 3 の PPG タイマのレジスタ一覧
アドレス
bit15
0000 011AH
0 アクセス
8 7
0000 0118H
GCN10
PDBL0
GCN20
レジスタ
R/W
汎用制御 レジスタ 10
R/W
禁止 / 汎用制御レジスタ 20
PPG ch.0
0000 0120H
PTMR0
R
ch.0 タイマ レジスタ
0000 0122H
PCSR0
W
ch.0 サイクル設定レジスタ
0000 0124H
PDUT0
W
ch.0 デューティ設定レジスタ
R/W
ch.0 コントロールステータスレジスタ
0000 0126H
PCNH0
PCNL0
PPG ch.1
0000 0128H
PTMR1
R
ch.1 タイマ レジスタ
0000 012AH
PCSR1
W
ch.1 サイクル設定レジスタ
0000 012CH
PDUT1
W
ch.1 デューティ設定レジスタ
R/W
ch.1 コントロールステータスレジスタ
0000 012EH
PCNH1
PCNL1
PPG ch.2
0000 0130H
PTMR2
R
ch.2 タイマ レジスタ
0000 0132H
PCSR2
W
ch.2 サイクル設定レジスタ
0000 0134H
PDUT2
W
ch.2 デューティ設定レジスタ
R/W
ch.2 コントロールステータスレジスタ
0000 0136H
PCNH2
PCNL2
PPG ch.3
0000 0138H
PTMR3
R
ch.3 タイマ レジスタ
0000 013AH
PCSR3
W
ch.3 サイクル設定レジスタ
0000 013CH
PDUT3
W
ch.3 デューティ設定レジスタ
R/W
ch.3 コントロールステータスレジスタ
0000 013EH
PCNH3
PCNL3
377
第 13 章 PPG タイマ
■ チャネル 4 ∼ 7 の PPG タイマのレジスタ
図 13.2-2 にチャネル 4 ∼ 7 の PPG タイマのレジスタ一覧を示します。
図 13.2-2 チャネル 4 ∼ 7 の PPG タイマのレジスタ一覧
アドレス
0000 011CH
0000 011EH
bit15
0 アクセス
レジスタ
R/W
汎用制御 レジスタ 11
8 7
GCN11
PDBL1
GCN21
R/W
禁止 / 汎用制御レジスタ 21
PPG ch.4
0000 0140H
PTMR4
R
ch.4 タイマ レジスタ
0000 0142H
PCSR4
W
ch.4 サイクル設定レジスタ
0000 0144H
PDUT4
W
ch.4 デューティ設定レジスタ
R/W
ch.4 コントロールステータスレジスタ
0000 0146H
PCNH4
PCNL4
PPG ch.5
0000 0148H
PTMR5
R
ch.5 タイマ レジスタ
0000 014AH
PCSR5
W
ch.5 サイクル設定レジスタ
0000 014CH
PDUT5
W
ch.5 デューティ設定レジスタ
R/W
ch.5 コントロールステータスレジスタ
0000 014EH
PCNH5
PCNL5
PPG ch.6
0000 0150H
PTMR6
R
ch.6 タイマ レジスタ
0000 0152H
PCSR6
W
ch.6 サイクル設定レジスタ
0000 0154H
PDUT6
W
ch.6 デューティ設定レジスタ
R/W
ch.6 コントロールステータスレジスタ
0000 0156H
PCNH6
PCNL6
PPG ch.7
0000 0158H
PTMR7
R
ch.7 タイマ レジスタ
0000 015AH
PCSR7
W
ch.7 サイクル設定レジスタ
0000 015CH
PDUT7
W
ch.7 デューティ設定レジスタ
R/W
ch.7 コントロールステータスレジスタ
0000 015EH
378
PCNH7
PCNL7
第 13 章 PPG タイマ
13.2.1
制御ステータスレジスタ (PCNH, PCNL)
PPG タイマの制御ステータスレジスタ (PCNH と PCNL) は , PPG タイマの動作を制
御し , その状態を示すレジスタです。
■ 制御ステータスレジスタ (PCNH, PCNL) のビット構成
図 13.2-3 に制御ステータスレジスタ (PCNH, PCNL) のビット構成を示します。
図 13.2-3 制御ステータスレジスタ (PCNH, PCNL) のビット構成
PCNH
アドレス
bit15
14
13
12
ch.0 000126H CNTE STGR MDSE RTRG
ch.1 00012EH
ch.2 000136H
ch.3 00013EH
ch.4 000146H
ch.5 00014EH
ch.6 000156H
ch.7 00015EH
11
CKS1
10
9
CKS0 PGMS
8
初期値
アクセス
−
0000000-B
R/W
0
初期値
アクセス
PCNL
アドレス
bit7
6
ch.0 000127H EGS1
ch.1 00012FH
ch.2 000137H
ch.3 00013FH
ch.4 000147H
ch.5 00014FH
ch.6 000157H
ch.7 00015FH
EGS0
5
IREN
4
IRQF
3
IRS1
2
IRS0
1
−
OSEL 000000-0B
R/W
■ PCNH/PCNL の各ビットの機能
以下に , 各ビットの機能を説明します。
[bit15] CNTE: タイマ動作の許可ビット
16 ビットダウンカウンタの動作を許可 / 停止するビットです。
0
タイマ動作を停止します。[ 初期値 ]
1
タイマ動作を許可します。
[bit14] STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことにより , ソフトウェアトリガがかかります。
STGR ビットの読出し値は , 常に "0" です。
379
第 13 章 PPG タイマ
[bit13] MDSE: 動作モード選択ビット
連続してパルスを出力する PPG 動作か , 単一パルスを出力するワンショット動作か
を選択します。
0
PPG 動作 [ 初期値 ]
1
ワンショット動作
[bit12] RTRG: 再起動の許可ビット
ソフトウェアトリガ , またはトリガ入力による再起動を許可 / 禁止するビットです。
0
再起動を禁止します。[ 初期値 ]
1
再起動を許可します。
[bit11, bit10] CKS1, CKS0: カウンタクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。
設定値を表 13.2-1 に示します。
表 13.2-1 カウントクロックの選択
CKS1
CKS0
カウントクロックソース
0
0
φ [ 初期値 ]
0
1
φ/22
1
0
φ/24
1
1
φ/26
( 注意事項 ) φ は周辺回路用のクロック (CLKP)
[bit9] PGMS: PPG 出力マスク選択ビット
このビットに "1" を書き込むと , モード設定 , サイクル設定値 , デューティ設定値に
かかわらず , PPG 出力を , "L" レベル , または "H" レベルにマスクすることができま
す。表 13.2-2 に極性と PPG 出力の関係を示します。
表 13.2-2 PGMS に "1" 書込み時の PPG 出力
極性
PPG 出力
通常極性
"L" レベル出力 [ 初期値 ]
反転極性
"H" レベル出力
通常極性時にオール "H", 反転極性時にオール "L" を出力したい場合は , 周期設定レ
ジスタとデューティ設定レジスタを同じ値に設定します。そうすれば , 上記マスク
値の反転出力が出せます。
通常極性と反転極性については , OSEL[bit0] の説明を参照してください。
380
第 13 章 PPG タイマ
[bit8] 未使用ビット
[bit7, bit6] EGS1, EGS0: トリガ入力エッジ選択ビット
汎用制御レジスタ 1(GCN1) で選択した , トリガ入力ソースの有効エッジを選択しま
す。どのモードを選択していても , ソフトウェアトリガビット (STGR) に "1" を書き
込むと , ソフトトリガが有効になります。
設定値を表 13.2-3 に示します。
表 13.2-3 トリガ入力エッジの選択
EGS1
EGS0
トリガ入力エッジ
0
0
無効 [ 初期値 ]
0
1
立上りエッジ
1
0
立下りエッジ
1
1
両方の ( 立上り / 立下り ) エッジ
[bit5] IREN: 割込み要求許可ビット
割込み要求を許可 / 禁止します。
0
割込み要求を禁止します。[ 初期値 ]
1
割込み要求を許可します。
[bit4] IRQF: 割込み要求フラグ
bit5(IREN) の割込み要求が許可されていて , bit3, bit2(IRS1, IRS0) で選択した割込み
要因が発生するとこのビットが設定され , CPU に対する割込み要求を発生します。
また , DMA 転送の起動を選択している場合は , DMA 転送が起動されます。
このビットのクリアは , "0" 書込み , または DMAC からのクリア信号で行われます。
"1" を書き込んでもビットの値は変化しません。
リードモディファイライト系命令が読み出されると , ビット値にかかわらずビット
は "1" を返します。
[bit3, bit2] IRS1, IRS0: 割込み要因選択ビット
bit4(IRQF) を設定する割込み要因を選択します。
表 13.2-4 割込み要因の選択
IRS1
IRS0
0
0
ソフトウェアトリガの発生 , またはトリガ入力 [ 初期値 ]
0
1
アンダフロー発生 ( サイクルの一致 )
1
0
デューティの一致発生
1
1
アンダフロー発生 ( サイクルの一致 ), またはデューティの
一致発生
割込みソース
381
第 13 章 PPG タイマ
[bit0] OSEL: PPG 出力極性選択ビット
PPG 出力の極性を設定します。
bit9(PGMS) との組合せで , 表 13.2-5 のようになります。
表 13.2-5 PPG 出力極性 , およびエッジの指定
PGMS
OSEL
PPG 出力
0
0
通常極性 [ 初期値 ]
0
1
反転極性
1
0
"L" 出力で固定
1
1
"H" 出力で固定
極性
382
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティの一致
アンダフロー
第 13 章 PPG タイマ
13.2.2
PPG 周期設定レジスタ (PCSR)
PPG 周期設定レジスタ (PCSR) は , 16 ビットのリロードレジスタです。任意のサイ
クルでパルス信号を出力するために必要な , カウント値を設定するためのバッファ
が付いています。
■ PPG 周期設定レジスタ (PCSR) のビット構成
図 13.2-4 に PPG 周期設定レジスタ (PCSR) のビット構成を示します。
図 13.2-4 PPG 周期設定レジスタ (PCSR) のビット構成
bit15
アドレス
ch.0 000122H
ch.1 00012AH
ch.2 000132H
ch.3 00013AH
ch.4 000142H
ch.5 00014AH
ch.6 000152H
ch.7 00015AH
14
13
12
11
10
9
8
初期値
アクセス
XXXXXXXXB
W
XXXXXXXXB
W
D15
D14
D13
D12
D11
D10
D09
D08
bit7
6
5
4
3
2
1
0
D07
D06
D05
D04
D03
D02
D01
D00
■ PCSR の機能
PPG 周期設定レジスタ (PCSR) は , 16 ビット値のダウンカウンタがカウントを開始する
ときの , カウンタ値を設定します。カウンタの起動トリガが検出されたとき , およびカ
ウンタがアンダフローを起こしたときに ("0000H" から "FFFFH" へ ), 設定値がカウンタ
にロードされます。
カウントを開始した後 , ダウンカウンタが「設定値 +1」に到達すると , アンダフロー
( 周期の一致 ) を起こします。そこで , 出力パルス信号のサイクルが決まります。周期は ,
「カウントクロックサイクル」に「設定値 +1」のカウント値を掛けて得られる値です。
周期設定レジスタの初期設定や更新のときは , 周期設定レジスタの書込み後 , 必ず
デューティ設定レジスタへの書込みを行ってください。
このレジスタに書き込むときは , 16 ビットデータでレジスタにアクセスしてください。
383
第 13 章 PPG タイマ
13.2.3
PPG デューティ設定レジスタ (PDUT)
PPG デューティ設定レジスタ (PDUT) は , バッファ付の 16 ビット比較レジスタで ,
任意のパルス幅信号の出力に要求される比較値を設定します。
■ PPG デューティ設定レジスタ (PDUT) のビット構成
図 13.2-5 に PPG デューティ設定レジスタ (PDUT) のビット構成を示します。
図 13.2-5 PPG デューティ設定レジスタ (PDUT) のビット構成
アドレス
bit15
14
13
12
11
10
9
8
初期値
アクセス
ch.0 000124H
ch.1 00012CH
ch.2 000134H
ch.3 00013CH
ch.4 000144H
ch.5 00014CH
ch.6 000154H
ch.7 00015CH
D15
D14
D13
D12
D11
D10
D09
D08
XXXXXXXXB
W
bit7
6
5
4
3
2
1
0
D07
D06
D05
D04
D03
D02
D01
D00
XXXXXXXXB
W
■ PDUT の機能
PPG デューティ設定レジスタ (PDUT) は , PPG 出力パルス幅を決定するカウンタ値を設
定します。この値はダウンカウンタのカウント値と比較されます。値が一致すると ,
PPG 出力の極性が反転します。
ダウンカウンタは , 同じ極性でカウントを継続します。
「設定値 +1」に到達するとアン
ダフロー ( サイクルの一致 ) を起こし , 極性が反転してパルス幅が決まります。パルス
幅は , 「カウントクロックサイクル」に「設定値 +1」のカウント値を掛けて得られる
値です。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR レジスタと PDUT レジスタの値は , 「PCSR>PDUT」となるように設定してくだ
さい。「PCSR<PDUT」となるような設定をすると , PPG 出力は不定になります。
このレジスタに書き込むときは , 16 ビットデータでレジスタにアクセスしてください。
384
第 13 章 PPG タイマ
13.2.4
PPG タイマレジスタ (PTMR)
PPG タイマレジスタ (PTMR) を使用して , 16 ビットのダウンカウンタの値を読み出
します。
■ PPG タイマレジスタ (PTMR) のビット構成
図 13.2-6 に PPG タイマレジスタ (PTMR) のビット構成を示します。
図 13.2-6 PPG タイマレジスタ (PTMR) のビット構成
アドレス
bit15
14
13
12
11
10
9
8
初期値
アクセス
ch.0 000120H
ch.1 000128H
ch.2 000130H
ch.3 000138H
ch.4 000140H
ch.5 000148H
ch.6 000150H
ch.7 000158H
D15
D14
D13
D12
D11
D10
D09
D08
11111111B
R
bit7
6
5
4
3
2
1
0
D07
D06
D05
D04
D03
D02
D01
D00
11111111B
R
■ PTMR の機能
PPG タイマレジスタ (PTMR) は , ダウンカウンタの値を読み出す , 16 ビットのデータレ
ジスタです。
このレジスタの値を読み出すには , 16 ビットデータでレジスタにアクセスしてくださ
い。
385
第 13 章 PPG タイマ
13.2.5
汎用制御レジスタ 1(GCN10, GCN11)
汎用制御レジスタ 1(GCN10, GCN11) は , PPG タイマトリガ入力ソースを選択しま
す。
各チャネルに 4 ビットが割り当てられます。
■ 汎用制御レジスタ 1(GCN10, GCN11) のビット構成
図 13.2-7 に汎用制御レジスタ 1(GCN10, GCN11) のビット構成を示します。
図 13.2-7 汎用制御レジスタ 1(GCN10, GCN11) のビット構成
bit15
アドレス
GCN10: 000118H
GCN11 : 00011CH
14
13
12
11
TSEL33 ∼ TSEL30
bit7
6
5
10
9
8
TSEL23 ∼ TSEL20
4
3
TSEL13 ∼ TSEL10
2
1
初期値
アクセス
00110010B
R/W
00010000B
R/W
0
TSEL03 ∼ TSEL00
■ GCN10 のビット機能
以下に , 各ビットの機能を説明します。
[bit15 ∼ bit12] TSEL33 ∼ TSEL30: ch.3 入力選択ビット
これらのビットは , PPG タイマ ch.3 へのトリガ入力を選択します。
表 13.2-6 に設定値を示します。
表 13.2-6 PPG タイマ ch.3 へのトリガ入力の選択
TSEL33 ∼ TSEL30
ch.3 トリガ入力
0
0
0
0
GCN20:EN0 ビット
0
0
0
1
GCN20:EN1 ビット
0
0
1
0
GCN20:EN2 ビット
0
0
1
1
GCN20:EN3 ビット [ 初期値 ]
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
[bit11 ∼ bit8] TSEL23 ∼ TSEL20: ch.2 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.2 へのトリガ入力を選択します。
386
第 13 章 PPG タイマ
表 13.2-7 に設定値を示します。
表 13.2-7 PPG タイマ ch.2 へのトリガ入力の選択
TSEL23 ∼ TSEL20
ch.2 トリガ入力
0
0
0
0
GCN20:EN0 ビット
0
0
0
1
GCN20:EN1 ビット
0
0
1
0
GCN20:EN2 ビット [ 初期値 ]
0
0
1
1
GCN20:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
[bit7 ∼ bit4] TSEL13 ∼ TSEL10: ch.1 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.1 へのトリガ入力を選択します。
表 13.2-8 に設定値を示します。
表 13.2-8 PPG タイマ ch.1 へのトリガ入力の選択
TSEL13 ∼ TSEL10
ch.1 トリガ入力
0
0
0
0
GCN20:EN0 ビット
0
0
0
1
GCN20:EN1 ビット [ 初期値 ]
0
0
1
0
GCN20:EN2 ビット
0
0
1
1
GCN20:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
387
第 13 章 PPG タイマ
[bit3 ∼ bit0] TSEL03 ∼ TSEL00: ch.0 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.0 へのトリガ入力を選択します。
表 13.2-9 に設定値を示します。
表 13.2-9 PPG タイマ ch.0 へのトリガ入力の選択
TSEL03 ∼ TSEL00
ch.0 トリガ入力
0
0
0
0
GCN20:EN0 ビット [ 初期値 ]
0
0
0
1
GCN20:EN1 ビット
0
0
1
0
GCN20:EN2 ビット
0
0
1
1
GCN20:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.0
0
1
0
1
16 ビットリロードタイマ ch.1
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
■ GCN11 のビット機能
以下にビットの機能を説明します。
[bit15 ∼ bit12] TSEL33 ∼ TSEL30: ch.7 入力選択ビット
これらのビットは , PPG タイマ ch.7 へのトリガ入力を選択します。
表 13.2-10 に設定値を示します。
表 13.2-10 PPG タイマ ch.7 へのトリガ入力の選択
TSEL33 ∼ TSEL30
ch.7 トリガ入力
0
0
0
0
GCN21:EN0 ビット
0
0
0
1
GCN21:EN1 ビット
0
0
1
0
GCN21:EN2 ビット
0
0
1
1
GCN21:EN3 ビット [ 初期値 ]
0
1
0
0
16 ビットリロードタイマ ch.2
0
1
0
1
16 ビットリロードタイマ ch.3
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
[bit11 ∼ bit8] TSEL23 ∼ TSEL20: ch.6 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.6 へのトリガ入力を選択します。
388
第 13 章 PPG タイマ
表 13.2-11 に設定値を示します。
表 13.2-11 PPG タイマ ch.6 へのトリガ入力の選択
TSEL23 ∼ TSEL20
ch.6 トリガ入力
0
0
0
0
GCN21:EN0 ビット
0
0
0
1
GCN21:EN1 ビット
0
0
1
0
GCN21:EN2 ビット [ 初期値 ]
0
0
1
1
GCN21:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.2
0
1
0
1
16 ビットリロードタイマ ch.3
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
[bit7 ∼ bit4] TSEL13 ∼ TSEL10: ch.5 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.5 へのトリガ入力を選択します。
表 13.2-12 に設定値を示します。
表 13.2-12 PPG タイマ ch.5 へのトリガ入力の選択
TSEL13 ∼ TSEL10
ch.5 トリガ入力
0
0
0
0
GCN21:EN0 ビット
0
0
0
1
GCN21:EN1 ビット [ 初期値 ]
0
0
1
0
GCN21:EN2 ビット
0
0
1
1
GCN21:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.2
0
1
0
1
16 ビットリロードタイマ ch.3
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
389
第 13 章 PPG タイマ
[bit3 ∼ bit0] TSEL03 ∼ TSEL00: ch.4 トリガ入力選択ビット
これらのビットは , PPG タイマ ch.4 へのトリガ入力を選択します。
表 13.2-13 に設定値を示します。
表 13.2-13 PPG タイマ ch.4 へのトリガ入力の選択
TSEL03 ∼ TSEL00
390
ch.4 トリガ入力
0
0
0
0
GCN21:EN0 ビット [ 初期値 ]
0
0
0
1
GCN21:EN1 ビット
0
0
1
0
GCN21:EN2 ビット
0
0
1
1
GCN21:EN3 ビット
0
1
0
0
16 ビットリロードタイマ ch.2
0
1
0
1
16 ビットリロードタイマ ch.3
0
1
1
×
設定禁止
1
0
×
×
設定禁止
1
1
×
×
設定禁止
第 13 章 PPG タイマ
13.2.6
禁止 / 汎用制御レジスタ 2(GCN20, GCN21)
汎用制御レジスタ 2(GCN20, GCN21) は , ソフトウェアによって , 起動トリガを発生
させるためのレジスタです。禁止レジスタ (PDBL0, PDBL1) は , 1 つ以上のタイマ
とチャネルのクロックを選択的に禁止にできます。
■ 汎用制御レジスタ 2(GCN20, GCN21) のビット構成
図 13.2-8 に汎用制御レジスタ 2(GCN20, GCN21) のビット構成を示します。
図 13.2-8 汎用制御レジスタ 2(GCN20, GCN21) のビット構成
bit7
アドレス
GCN20 : 0000011BH
GCN21 : 0000011FH
−
6
−
5
−
4
−
3
EN3
2
EN2
1
EN1
0
初期値
アクセス
EN0
----0000B
R/W
● GCN20 のビット機能
このレジスタの EN3 から EN0 までのビットは , 汎用制御レジスタ 1(GCN10) によって
選択され , レジスタの値は PPG タイマトリガ入力にそのまま渡されます。
制御ステータスレジスタ 0 ∼ 3 (PCNL0 ∼ PCNL3) の bit7, bit6(EGS1, EGS0) で選択した
エッジをソフトウェアで発生させることにより , 複数チャネルの PPG タイマを同時に
起動することができます。
このレジスタの bit7 ∼ bit4 には , 必ず "0" を書き込んでください。
● GCN21 のビット機能
このレジスタの EN0 から EN3 までのビットは , 汎用制御レジスタ 1(GCN11) によって
選択され , レジスタの値は PPG タイマトリガ入力にそのまま渡されます。
制御ステータスレジスタ 4 ∼ 7 (PCNL4 ∼ PCNL7) の bit7, bit6(EGS1, EGS0) で選択した
エッジをソフトウェアで発生させることにより , 複数チャネルの PPG タイマを同時に
起動することができます。
このレジスタの bit7 ∼ bit4 には , 必ず "0" を書き込んでください。
■ 禁止レジスタ (PDBL0, PDBL1) のビット構成
図 13.2-9 に禁止レジスタ (PDBL0, PDBL1) のビット構成を示します。
図 13.2-9 禁止レジスタ (PDBL0, PDBL1) のビット構成
アドレス
bit15
14
13
12
11
10
9
8
初期値
アクセス
PDBL0 : 0000 011AH
−
−
−
−
DBL3
DBL2
DBL1
DBL0
----0000B
R/W
bit15
14
13
12
11
10
9
8
−
−
−
−
DBL7
DBL6
DBL5
DBL4
----0000B
R/W
PDBL1 : 0000 011EH
● PDBL0, PDBL1 のビット機能
ビットを "1" に設定すると , 対応する PPG チャネルのクロックは禁止となります。
391
第 13 章 PPG タイマ
13.3
PPG タイマの動作
PPG タイマの動作について説明します。
2 つの PPG 出力動作モードがあります。PPG タイマ動作とワンショット動作モード
です。
■ PPG タイマの動作
PPG 動作モードの出力は連続的なパルスで , ワンショット動作モードの出力は単一の
パルスです。
この節では , 割込み , およびオール "L" とオール "H" の PPG 出力の発生方法について
も説明します。説明する項目は以下のとおりです。
• PPG 動作
• ワンショット動作
• 割込み
• オール "L", およびオール "H" の PPG 出力
392
第 13 章 PPG タイマ
13.3.1
PPG 動作
PPG 動作モードの出力は , 連続的なパルスストリームです。
■ PPG 動作
PPG 動作モードでは , 起動トリガが検出された時点からの連続的なパルスストリーム
を出力します。
出力パルスの周期は , 周期設定レジスタ (PCSR) の値を変えることで制御できます。出
力パルス幅は , デューティ設定レジスタ (PDUT) の値を変えることで制御できます。出
力パルスの周期と幅 ( デューティ比 ) を設定するときは , PCSR にデータを書き込んだ
後に , 必ず PDUT への書込みを行ってください。
■ PPG 出力タイミング
起動トリガが検出されダウンカウンタがリセットされると , 周期設定レジスタ (PCSR)
に設定されている値がカウンタにロードされ , ダウンカウンタがカウントを開始しま
す。
カウンタはカウントを続け , デューティ設定レジスタ (PDUT) に設定されている値とカ
ウンタ値とを比較し , 値が一致すると ( デューティの一致 ), PPG 出力の極性が反転しま
す。
トリガの再起動が禁止の状態で , カウンタがアンダフローを起こすと , PCSR レジスタ
に設定されている値がカウンタにロードされます ( 周期の一致 )。同時に , PPG 出力の
極性が反転します。これで , 設定されたサイクルとパルス幅のパルス信号が出力された
ことになります。これ以降 , 同じ手順でパルス信号は連続的に出力されます。
トリガの再起動が許可になると , 再起動トリガが有効になります。PCSR レジスタに設
定された値が , カウンタにリロードされ , カウンタはカウントを開始します。
図 13.3-1 に , PPG 出力が通常極性で , トリガの再起動が禁止された状態でのタイミング
の例を示します。図 13.3-2 に , PPG 出力が通常極性で , トリガの再起動が許可されたと
きのタイミングの例を示します。
PPG 出力信号の周期とパルス幅は , 次の式で計算できます。
Pm =T(m+1) µs
Pn =T(n+1) µs
Pm:出力パルス周期
Pn:出力パルス幅
T :カウントクロック周期
m :周期設定レジスタ (PCSR) に設定されている値
n :デューティ設定レジスタ (PDUT) に設定されている値
393
第 13 章 PPG タイマ
● PPG 動作タイミング例 1( トリガの再起動禁止 , PPG 出力 : 通常極性 )
図 13.3-1 PPG 動作タイミング例 1( トリガの再起動禁止 , PPG 出力 : 通常極性 )
カウンタ値
m
n
0
時間
PPG 出力
Pn
Pm
立上り検出
トリガ無視
起動トリガ
Pm : 出力パルス周期
m: PCSR 値
Pn: 出力パルス "H"幅
n: PDUT 値
● PPG 動作タイミング例 2( トリガの再起動許可 , PPG 出力 : 通常極性 )
図 13.3-2 PPG 動作タイミング例 2( トリガの再起動許可 , PPG 出力 : 通常極性 )
カウンタ値
m
n
0
時間
Time
PPG 出力
Pn
Pm
立上りエッジ
トリガによる再起動
起動トリガ
394
Pm:出力パルス周期
Pn:出力パルス"H"幅
m : PCSR 値
n : PDUT値
第 13 章 PPG タイマ
13.3.2
ワンショット動作モード
ワンショット動作モードは , 単一のパルスを出力します。
■ ワンショット動作モード
ワンショット動作モードは , 起動トリガを検出すると , 単一のパルスを出力します。出
力パルスの周期は, 周期設定レジスタ(PCSR)の値を変更することにより制御できます。
出力パルス幅も , デューティ設定レジスタ (PDUT) の値を変更することにより制御でき
ます。出力パルスの周期と幅 ( デューティ比 ) を設定するときは , PCSR にデータを書
き込んだ後に , 必ず PDUT への書込みを行ってください。
ワンショットの動作も , 再起動が禁止か許可かによって異なります。
PPG 出力タイミングは PPG 動作モードと同じですが , ワンショット動作モードでは ,
カウンタがアンダフローすると , 単一パルスを出力した後に停止します。
PPG 出力信号の周期とパルス幅の計算式も , PPG 動作モードと同じです。
図 13.3-3 に , PPG 出力が通常極性で , トリガの再起動が禁止された状態でのタイミング
の例を示します。図 13.3-4 に , PPG 出力が通常極性で , トリガの再起動が許可されたと
きのタイミングの例を示します。
● ワンショット動作タイミング例 1( トリガの再起動禁止 , PPG 出力 : 通常極性 )
図 13.3-3 ワンショット動作タイミング例 1( トリガの再起動禁止 , PPG 出力 : 通常極性 )
カウンタ値
m
n
0
時間
PPG 出力
Pn
Pm
立上り検出
トリガ無視
起動トリガ
Pm = T (m + 1) µs
Pn = T (n + 1) µs
Pm :
Pn :
T:
m:
n:
出力パルス周期
出力パルス"H"幅
カウントクロック周期
PCSR 値
PDUT 値
395
第 13 章 PPG タイマ
● ワンショット動作タイミング例 2( トリガの再起動許可 , PPG 出力 : 通常極性 )
図 13.3-4 ワンショット動作タイミング例 2( トリガの再起動許可 , PPG 出力 : 通常極性 )
カウンタ値
m
n
0
時間
PPG 出力
Pn
Pm
立上りエッジ
トリガによる再起動
起動トリガ
Pm = T (m + 1) µs
Pn = T (n + 1) µs
396
Pm :
Pn :
T:
m:
n:
出力パルス周期
出力パルス"H"幅
カウントクロック周期
PCSR 値
PDUT 値
第 13 章 PPG タイマ
13.3.3
割込み
割込み要求信号には , 4 種類あります。以下の割込み要因から選択して発生させるこ
とができます。
• PPG タイマ起動 ( ソフトウェアトリガ , またはトリガ入力 )
• アンダフロー発生 ( 周期の一致 )
• デューティの一致発生
• アンダフロー発生 ( 周期の一致 ), またはデューティの一致発生
■ 割込み動作
CPU への割込み要求信号は , 制御ステータスレジスタ (PCNL) のビットを次のように設
定して発生させます。
• bit5 の割込み要求許可ビット (IREN) を , 割込み許可 (IREN=1) にします。
• bit3とbit2の割込み要因選択ビット(IRS1とIRS0)に, 必要な割込み要因を選択します。
• 上記の条件が設定されると , 割込み要求フラグ (IRQF) の bit4 が設定され , CPU への
割込み要求信号が発生されます。
図 13.3-5 に , 割込みのタイミングを示します。
図 13.3-5 割込み要因タイミング
起動トリガ
最大 2.5T *
ロード
クロック
カウント値
X
0003
H
0002 H
0001 H
0000
H
0003 H
PPG 出力
割込み
有効なエッジ
デューティの一致
アンダフロー
*: 起動トリガの適用からカウント値のロードまで, 最大 2.5T(T: カウントクロックサイクル)かかります。
397
第 13 章 PPG タイマ
13.3.4
オール "L" とオール "H" の PPG 出力
この節では , オール "L" とオール "H" の PPG 出力の発生例について説明します。
■ オール "L" とオール "H" の PPG 出力
制御ステータスレジスタ (PCNH) の bit9, PPG 出力マスク選択ビット (PGMS) に "1" を
書き込むと , モード設定 , 周期設定値 , デューティ設定値にかかわらず , 制御ステータ
スレジスタは PPG 出力を "L" レベル ( 通常極性 ), または "H" レベル ( 反転極性 ) にマ
スクします。
通常極性で出力信号をすべて "H" レベルの電圧 , または反転極性で出力信号をすべて
"L" レベルの電圧にする場合は , 周期設定レジスタとデューティ設定レジスタの設定を
同じ値にして , 上記のマスク値の反転出力を発生します。
図 13.3-6 にオール "L" の PPG 出力の発生例を , 図 13.3-7 にオール "H" の PPG 出力の発
生例を示します。
図 13.3-6 オール "L" の PPG 出力の発生例
PPG出力
デューティ値
を減少させる。
アンダフローで, 割込みを
使用してPGMS(マスクビット)
に"1"を書き込む。アンダフ
ロー割込みを使用してPGMSに
"0"を書き込むと, ヒゲを出力
することなくPWM波形を出力で
きる。
図 13.3-7 オール "H" の PPG 出力の発生例
PPG 出力
デューティ値
を増加させる。
デューティの一致で, 割込みを使用してデ
ューティ設定レジスタに周期設定レジスタ
と同じ値を設定する。
398
第 13 章 PPG タイマ
13.3.5
複数の PPG タイマチャネルの起動
汎用制御レジスタ 1 と 2(GCN1x と GCN2x) を使用して , 複数の PPG タイマチャネ
ルを起動できます。GCN1x レジスタを使用して起動トリガを選択すると , 複数の
チャネルを同時に起動できます。
この節では , GCN2x レジスタを使用したソフトウェアによる PPG タイマチャネル
の起動例と , GCN1x レジスタを使用して 16 ビットリロードタイマからトリガ入力
を選択してタイマを起動する例について説明します。
■ 複数の PPG タイマチャネルの起動
ソフトウェアによる複数の PPG タイマチャネルを起動するために , 以下の手順に従っ
て設定してください。
[ 設定手順 ]
(1) 周期設定レジスタ (PCSR) に周期設定カウンタ値を設定します。
(2) デューティ設定レジスタ (PDUT) にパルス幅設定カウンタ値を設定します。必ず
PCSR レジスタから PDUT レジスタの順で , データの書込みを行ってください。
(3) GCN1x レジスタを設定して , 起動するチャネルのトリガ入力ソースを決めます。こ
の例では , GCN2x レジスタを使うので , 初期設定のままとします。
• ch.0 の起動 : EN0
• ch.1 の起動 : EN1
• ch.2 の起動 : EN2
• ch.3 の起動 : EN3
(4) 起動するチャネルの制御ステータスレジスタ (PCNL, PCNH) を設定します。この例
では表 13.3-1 に示す設定を行います。
表 13.3-1 チャネルステータスレジスタ (PCNL, PCNH) の設定例 (1 / 2)
ビット
機能
No.
略語
値
15
CNTE
1
タイマ動作の許可
14
STGR
0
起動に GCN2 を使用するので , ソフトウェアトリガを禁止
13
MDSE
0
PPG 動作
12
RTRG
0
再起動の禁止
11
CKS1
0
10
CKS0
0
9
PGMS
0
出力マスクなし
8
−
0
未使用ビット (0, 1 のどちらでも良い )
カウントクロック : φ
399
第 13 章 PPG タイマ
表 13.3-1 チャネルステータスレジスタ (PCNL, PCNH) の設定例 (2 / 2)
ビット
機能
No.
略語
値
7
EGS1
0
6
EGS0
1
5
IREN
1
割込み要求の許可
4
IRQF
0
割込み要因のクリア
3
IRS1
0
2
IRS0
1
0
OSEL
0
立上りエッジを選択
アンダフローの発生により割込み要求を発生
通常極性
(5) 汎用制御レジスタ 2(GCN2x) にデータを書き込むことで , 起動トリガを発生させま
す。上記の設定で PPG タイマの ch.0 と ch.1 を同時に起動させる場合 , GCN20 レジス
タのビット EN0 と EN1 に "1" を書き込みます。立上りエッジが発生し , PPG タイマの
出力端子の OCPA0 と OCPA1 からパルスが出力されます (PPG0 と PPG1)。
■ 16 ビットリロードタイマのトリガを使用した起動
上記手順の (3) で , 汎用制御レジスタ 1(GCN10) を使用してトリガ入力ソースを選択し
ます。
ソースとして 16 ビットリロードタイマを選択します。手順の (5) で , 汎用制御レジス
タ 2(GCN20) の代わりに , 16 ビットリロードタイマを起動します。
制御ステータスレジスタ (PCNH) の bit12, bit7, bit6 を次のように設定して , 16 ビットの
リロードタイマ出力を切り換え , PPG タイマが固定された間隔で再起動できるように
します。
400
⇒ 再起動の許可
bit12(RTRG):
"1"
bit7, bit6(EGS1, EGS0):
"11" ⇒ 立上り , 立下りの両方のエッジで起動
第 14 章
A/D コンバータ
A/D コンバータの概要を示し , レジスタの構成と機
能 , および A/D コンバータの動作について説明し
ます。
14.1 A/D コンバータの概要
14.2 A/D コンバータのレジスタ
14.3 A/D コンバータの動作
401
第 14 章 A/D コンバータ
14.1
A/D コンバータの概要
A/D コンバータの特長とブロックダイヤグラムについて説明します。
■ A/D コンバータの特長
A/D コンバータは , アナログ入力電圧をデジタル値に変換するものです。以下に , A/D
コンバータの特長を示します。
• 変換時間は , チャネルあたり最小 178 サイクルです。(32 MHz:5.6µs, 24 MHz:7.4µs,
16 MHz:11.2µs)
• サンプリング & ホールド回路付き RC 型逐次比較変換方式を採用しています。
• 10 ビットの分解能があります。
• アナログ入力は , 16 チャネルからプログラムで選択できます。
• シングル変換モードは , 選択した 1 チャネルを変換します。指定されたチャネルを
1 回だけ変換します。
• スキャン変換モードは , 複数チャネルを連続変換します。最大 16 チャネルまでプロ
グラム可能です。
• 連続モードは , 指定されたチャネルを繰り返し変換します。
• ストップモードは , チャネルを変換し , 次の起動まで一時的に中断します ( 変換開始
タイミングを同期可能です )。
• A/D 変換終了時には , CPU に対して A/D 変換終了の割込み要求を発生させることが
できます。この割込み , すなわち連続処理に理想的なオプションを使用して DMA 転
送を起動し , A/D 変換の結果をメモリに転送できます。
• 起動要因は , ソフトウェア , 外部トリガ ( 立下りエッジ ), デバイス上のタイマ ch.4 が
利用可能な場合はタイマ ( 立上りエッジ ) から選択できます。
402
第 14 章 A/D コンバータ
■ A/D コンバータのブロックダイヤグラム
図 14.1-1 に , A/D コンバータのブロックダイヤグラムを示します。
図 14.1-1 ブロックダイヤグラム
AVCC
MPX
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
AN8
AN9
AN10
AN11
AN12
AN13
AN14
AN15
AVRH/AVRL
AVSS
D/A コンバータ
入
力
回
シーケンシャル比較レジスタ
路
比較器
データバス
サンプル / ホールド回路
デコーダ
A/Dデータレジスタ
ADCD
A/Dチャネル設定レジスタ
A/Dモードレジスタ
ADMD
A/D制御ステータスレジスタ
ATGX
トリガ起動
タイマ起動
16ビットリロードタイマ4の出力
(内部接続)
CLKP( φ)
ADCH
ADCS
動作クロック
プリスケーラ
403
第 14 章 A/D コンバータ
14.2
A/D コンバータのレジスタ
A/D コンバータのレジスタについて説明します。
■ A/D コンバータのレジスタ一覧
図 14.2-1 に , A/D コンバータのレジスタ一覧を示します。
図 14.2-1 A/D コンバータのレジスタ一覧
bit15 8
7 0
ADMD
ADCH
ADCS
ADCD
ADBL
8 ビット
レジスタ
A/D チャネル設定レジスタ
名前
ADCH
( アドレス : 00009DH)
A/D モードレジスタ
ADMD
( アドレス : 00009CH)
A/D 制御ステータスレジスタ
ADCS
( アドレス : 00009FH)
A/D データレジスタ
ADCD
( アドレス : 0000A0H)
( アドレス : 0000A1H)
A/D 禁止レジスタ
( アドレス : 0000A3H)
404
ADCD
ADBL
bit7
6
8 ビット
5
4
3
2
1
0
初期値
00000000B
ANS3
ANS2
ANS1
ANS0
ANE3
ANE2
ANE1
ANE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
−
−
−
予約
MOD1
MOD0
STS1
STS0
−
−
−
W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
BUSY
INT
INTE
PAUS
−
−
STRT
予約
R/W
R/W
R/W
R/W
−
−
W
R/W
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
D9
D8
R
R
R
R
R
R
R
R
bit7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
−
−
−
−
−
−
−
R/W
---X0000B
0000--00B
000000XXB
XXXXXXXXB
-------0B
第 14 章 A/D コンバータ
14.2.1
A/D チャネル設定レジスタ (ADCH)
A/D チャネル設定レジスタ (ADCH) は , A/D コンバータが変換するチャネルを指定
します。
■ A/D チャネル設定レジスタ (ADCH) のビット構成
図 14.2-2 に , A/D チャネル設定レジスタ (ADCH) のビット構成を示します。
図 14.2-2 A/D チャネル設定レジスタ (ADCH) のビット構成
ADCH
bit7
アドレス : 0000009DH
ANS3
0
初期値→
読出し / 書込み→ R/W
<注意事項>
6
5
4
3
2
1
0
ANS2
0
R/W
ANS1
0
R/W
ANS0
0
R/W
ANE3
0
R/W
ANE2
0
R/W
ANE1
0
R/W
ANE0
0
R/W
A/D コンバータの動作中には , ADCH を変更しないでください。
■ A/D チャネル設定レジスタ (ADCH) の各ビットの機能
以下に , A/D チャネル設定レジスタ (ADCH) の各ビットの機能を説明します。
[bit7 ∼ bit4] ANS3, ANS2, ANS1, ANS0( アナログ起動チャネル設定 )
これらのビットは , A/D 変換の起動チャネルを設定します。
A/D コンバータを起動すると , これらのビットによって指定されたチャネルから
A/D 変換を開始します。
表 14.2-1 に , アナログ起動チャネルの設定内容を示します。
表 14.2-1 アナログ起動チャネルの設定 (1 / 2)
ANS3
ANS2
ANS1
ANS0
起動チャネル
0
0
0
0
AN0
0
0
0
1
AN1
0
0
1
0
AN2
0
0
1
1
AN3
0
1
0
0
AN4
0
1
0
1
AN5
0
1
1
0
AN6
0
1
1
1
AN7
1
0
0
0
AN8
1
0
0
1
AN9
405
第 14 章 A/D コンバータ
表 14.2-1 アナログ起動チャネルの設定 (2 / 2)
ANS3
ANS2
ANS1
ANS0
起動チャネル
1
0
1
0
AN10
1
0
1
1
AN11
1
1
0
0
AN12
1
1
0
1
AN13
1
1
1
0
AN14
1
1
1
1
AN15
● 読出し
• A/D 変換中にこれらのビットを読み出すと , 現在変換中のチャネル番号を読み出せ
ます。
• A/D 変換停止中にこれらのビットを読み出すと , 直近に変換したチャネルを読み出
せます。
• "0" を書き込むかリセットで , リセットします。
[bit3 ∼ bit0] ANE3, ANE2, ANE1, ANE0( アナログ終了チャネル設定 )
これらのビットは , A/D 変換の終了チャネルを設定します。
表 14.2-2 に A/D 変換の終了チャネルの設定内容を示します。
表 14.2-2 A/D 変換の終了チャネルの設定
406
ANE3
ANE2
ANE1
ANE0
終了チャネル
0
0
0
0
AN0
0
0
0
1
AN1
0
0
1
0
AN2
0
0
1
1
AN3
0
1
0
0
AN4
0
1
0
1
AN5
0
1
1
0
AN6
0
1
1
1
AN7
1
0
0
0
AN8
1
0
0
1
AN9
1
0
1
0
AN10
1
0
1
1
AN11
1
1
0
0
AN12
1
1
0
1
AN13
1
1
1
0
AN14
1
1
1
1
AN15
第 14 章 A/D コンバータ
• ANS3 ∼ ANS0 と同じチャネルを設定すると , そのチャネルだけの変換が指定され
ます ( シングル変換 )。
• 連続モード , またはストップモードで , これらのビットで指定されたチャネルまで
変換が実行されます。その後 , ANS3 から ANS0 までで指定された起動チャネルか
ら変換が再起動されます。
• ANS>ANE の場合 , 変換は ANS で指定されたチャネルから起動して , チャネル F ま
で続けられ , 再度チャネル 0 から始まり , ANE で指定されたチャネルで終了します。
• "0" を書き込むかリセットでリセットします。
例:
チャネル設定が , ANS=0xE, ANE=0x3, シングル変換モードの場合の例
動作 : チャネル変換は , ch.14 → ch.15 → ch.0 → ch.1 → ch.2 → ch.3 で終了
407
第 14 章 A/D コンバータ
14.2.2
A/D モードレジスタ (ADMD)
このレジスタは , A/D コンバータの動作モードと起動要因を設定します。
■ A/D モードレジスタ (ADMD) のビット構成
図 14.2-3 に , A/D モードレジスタ (ADMD) のビット構成を示します。
図 14.2-3 A/D モードレジスタ (ADMD) のビット構成
ADMD
bit15
14
13
12
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(X)
(W)
アドレス : 0000009CH
初期値→
読出し / 書込み→
<注意事項>
11
10
9
MOD1 MOD0 STS1
(0)
(0)
(0)
(R/W) (R/W) (R/W)
8
STS0
(0)
(R/W)
A/D コンバータの動作中には , ADMD を変更しないでください。
■ A/D モードレジスタ (ADMD) の各ビットの機能
以下に , A/D モードレジスタ (ADMD) の各ビットの機能を説明します。
[bit12] 予約ビット。
書込み時は常に "0" に設定します。読出し値は不定です。
[bit11, bit10] MOD1, MOD0(A/D コンバータモード設定 )
これらのビットは動作モードを設定します。
MOD1
MOD0
0
0
シングルモード : 動作中の再起動はすべて可能
0
1
シングルモード : 動作中の再起動不可能
1
0
連続モード : 動作中の再起動不可能
1
1
ストップモード : 動作中の再起動不可能
動作モード
• シングルモード
ANS3 ∼ ANS0 で選択されたチャネルから ANE3 ∼ ANE0 で選択されたチャネルま
での連続 A/D 変換をします。変換周期ごとに一時停止。
• 連続モード
ANS3 ∼ ANS0 で選択されたチャネルから ANE3 ∼ ANE0 で選択されたチャネルま
での変換サイクルの繰返しです。
• ストップモード
ANS3 ∼ ANS0 で選択されたチャネルから ANE3 ∼ ANE0 で選択されたチャネルま
での各チャネルの A/D 変換をし , 各チャネルごとに一時停止します。再起動は , 起
動要因の発生によって決定されます。
408
第 14 章 A/D コンバータ
A/D 変換動作は , 以下の条件で行われます。
• 連続モードまたはストップモードで A/D 変換が起動されると , 変換動作は , BUSY
ビットによって停止を指示されるまで継続します。
• 変換は , BUSY ビットに "0" を書き込むと停止します。
• シングルモード , 連続モード , ストップモードにおけるすべてのタイマ , すべての外
部トリガ , すべてのソフトウェア起動要因について , 再起動はすべて禁止されます。
参考 : A/D コンバータを起動して A/D 変換がまだ動作中にもう一度起動をかけること
を , 変換再起動とよびます。
[bit9, bit8] STS1, STS0( 起動要因選択 )
"0" を書き込むかリセットでリセットします。
これらのビットは A/D 起動要因を選択します。
STS1
STS0
0
0
ソフトウェア起動
0
1
外部トリガ端子起動 , ソフトウェア起動
1
0
タイマ起動 , ソフトウェア起動
1
1
外部トリガ端子起動 , タイマ起動 , ソフトウェア起動
機能
複数起動モードでは , 最初の起動で A/D 変換が開始されます。
起動要因は , レジスタに書き込むと直ちに変更されます。したがって , A/D 動作中
の起動モードの切換えは注意が必要です。
A/D コンバータは , 外部トリガ端子の立下りエッジとタイマの立上りエッジを検出
します。
タイマを選択すると , タイマ 4 の出力が選択されます。
<注意事項>
ADMD レジスタの A/D 起動要因ビット (STS1 と STS0) を使用し , 外部トリガ , ま
たは内部タイマを選択して A/D コンバータを起動するときには , 外部トリガ , また
は内部タイマの入力値を無効に設定してください。
入力値が有効であると , STS1 ビットと STS0 ビットに書き込んだときに起動しま
す。STS1 ビットと STS0 ビットを設定するときには , ATGX 入力 =1 で , かつ内部
タイマ出力 ( タイマ 4)=0 であることを確認してください。
409
第 14 章 A/D コンバータ
14.2.3
A/D 制御ステータスレジスタ (ADCS)
A/D 制御ステータスレジスタ (ADCS) は , A/D コンバータの制御ステータスレジスタ
です。
■ A/D 制御ステータスレジスタ (ADCS) のビット構成
図 14.2-4 に , A/D 制御ステータスレジスタ (ADCS) のビット構成を示します。
図 14.2-4 A/D 制御ステータスレジスタ (ADCS) のビット構成
ADCS
bit7
アドレス : 0000009FH
BUSY
初期値→ (0)
読出し / 書込み→ (R/W)
6
5
4
3
2
1
0
INT
(0)
(R/W)
INTE
(0)
(R/W)
PAUS
(0)
(R/W)
−
(-)
(-)
−
(-)
(-)
STRT
(0)
(W)
予約
(0)
(R/W)
■ A/D 制御ステータスレジスタ (ADCS) の各ビットの機能
以下に , A/D 制御ステータスレジスタ (ADCS) の各ビットの機能を説明します。
[bit7] BUSY( ビジーフラグとストップ )
• 読出し時は , A/D コンバータ動作指示ビットとなります。A/D 変換の起動で設定 , 完
了でクリアされます。
• 書込み時は , A/D 変換中にこのビットに "0" を書き込むと , 変換が強制終了します。
連続モードやストップモードでの強制終了に使用します。通常の動作では , この
ビットには "1" を書き込みます。
• RMW 命令は , このビットを "1" と読みます。
• シングル変換モードでは , A/D 変換完了でクリアされます。
• 連続モードとストップモードでは , "0" を書き込んで変換を停止するまで , このフラ
グはクリアされません。
• リセットでは "0" に初期化されます。
• 強制終了とソフトウェア起動 (BUSY=0 と STRT=1) は同時に指定しないでください。
[bit6] INT( 割込み )
データ指示ビットです。このビットは , 変換データが ADCD に格納されると設定さ
れます。このビットが設定されるときに bit5(INTE) が "1" であると , 割込み要求が
発生するか , DMA の起動が許可されていると , DMA が起動されます。このビット
に "1" を書き込んでも意味はありません。
A/D 変換停止中にこのビットに "0" を書き込むと , クリアされます。
0
変換は完了していません。
1
変換が終了し , 結果がデータレジスタに格納されました。
• このビットは , "0" を書き込むか DMA 割込みクリア信号でクリアされます。
• リセットでは "0" に初期化されます。
410
第 14 章 A/D コンバータ
[bit5] INTE( 割込み許可 )
このビットで , 変換完了割込みを許可 / 禁止します。
0
割込みを禁止します。
1
割込みを許可します。
• DMA を使用するときは , 常にこのビットを設定します。
• DMA は , 割込み要求の発生によって起動されます。
• "0" を書き込むかリセットでクリアされます。
[bit4] PAUS(A/D コンバータ一時停止 )
このビットは , A/D 変換が一時停止すると設定されます。
A/D コンバータには , 変換結果を格納するレジスタが 1 つしかありません。したがっ
て , 連続変換を実行するときに変換結果が DMA によって転送されないと , 直前の結
果は失われます。
この問題を避けるために , DMA によって前の値が転送されるまで , 次の変換データ
はデータレジスタに格納されません。この間 , A/D 変換は一時停止します。
DMA による転送が完了すると , A/D 変換は再起動されます。
このビットは , DMA を使用するときだけ意味があります。
0
一時停止していません。
1
一時停止中です。
• "0" を書き込むかリセットでクリアされます。
• A/D 変換一時停止中にこのビットに "0" を書き込むと , クリアされます。
参考 :「14.3 A/D コンバータの動作」の「■ 変換動作」の「● 変換データ保護機能」
を参照してください。
[bit1] STRT( 起動 )
このビットに "1" を書き込むと , A/D 変換が起動します。もう一度 "1" を書き込む
と , A/D 変換が再起動します。
再起動は , ストップモードでは機能しません。
このビットを読み出すと常に "0" です。
強制終了とソフトウェア起動 (BUSY=0 と STRT=1) は同時に指定しないでください。
0
無効
1
A/D 変換を起動します。
• リセットでは "0" に初期化されます。
[bit0] 予約ビット
このビットには , 常に "0" を書き込みます。
411
第 14 章 A/D コンバータ
14.2.4
A/D データレジスタ (ADCD)
A/D データレジスタ (ADCD) は , A/D コンバータの変換結果を格納します。
■ A/D データレジスタ (ADCD) のビット構成
図 14.2-5 に A/D データレジスタ (ADCD) のビット構成を示します。
図 14.2-5 A/D データレジスタ (ADCD) のビット構成
アドレス : 000000A1H
初期値→
読出し / 書込み→
アドレス : 000000A0H
初期値→
読出し / 書込み→
bit7
6
5
4
3
2
1
0
D7
(X)
(R)
D6
(X)
(R)
D5
(X)
(R)
D4
(X)
(R)
D3
(X)
(R)
D2
(X)
(R)
D1
(X)
(R)
D0
(X)
(R)
bit15
14
13
12
11
10
9
8
−
(0)
(R)
−
(0)
(R)
−
(0)
(R)
−
(0)
(R)
−
(0)
(R)
−
(0)
(R)
D9
(X)
(R)
D8
(X)
(R)
これらのレジスタには , A/D 変換結果のデジタル値が格納されます。
レジスタの値は , 各変換が完了すると更新されます。通常 , このレジスタは前の変換結
果を格納します。
リセット後のレジスタの内容は不定です。
ADCD の bit15 ∼ bit10 までの読出し値は "0" です。
A/D コンバータには , 変換データ保護機能があります。変換データ保護機能については ,
「14.3 A/D コンバータの動作」を参照してください。
このレジスタは書込み禁止です。
412
第 14 章 A/D コンバータ
14.2.5
A/D 禁止レジスタ (ADBL)
A/D 禁止レジスタ (ADBL) は , ADC のクロックを禁止にします。
■ A/D 禁止レジスタ (ADBL) のビット構成
図 14.2-6 に , A/D 禁止レジスタ (ADBL) のビット構成を示します。
図 14.2-6 A/D 禁止レジスタ (ADBL) のビット構成
アドレス : 000000A3H
初期値→
読出し / 書込み→
bit7
6
5
4
3
2
1
0
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
DBL
(0)
(R/W)
DBL ビットを "1" に設定すると , ADC のクロックは禁止になります。
413
第 14 章 A/D コンバータ
14.3
A/D コンバータの動作
A/D コンバータは , 10 ビットの分解能の逐次比較方式を使用して動作します。変換
結果を格納するために , 16 ビットのレジスタが 1 つしかないので , 変換データレジ
スタ (ADCD) は , 変換が完了するたびに更新されます。
つまり , A/D コンバータ自体は連続変換の実行に適していませんので , 変換動作中に
DMA サービス機能を使用して変換データをメモリに転送することをお勧めします。
■ 動作モード
動作モードには , シングルモード , 連続モード , ストップモードの 3 つがあります。
● シングルモード
シングル変換モードでは , ANS ビットと ANE ビットによって選択されたアナログ入力
信号が , ANE ビットにより決められる終了チャネルの変換が完了するまで , 順番に変
換されます。続いて , A/D 変換が終了します。開始チャネルと終了チャネルが同じであ
る場合 (ANS=ANE), 1 つのチャネルの変換だけが実行されます。
例:
ANS=0000, ANE=0011
⇒開始→ AN0 → AN1 → AN2 → AN3 →終了
ANS=0010, ANE=0010
⇒開始→ AN2 →終了
● 連続モード
連続変換モードでは , ANS ビットと ANE ビットによって選択されたアナログ入力信号
が , ANE ビットにより決められる終了チャネルの変換が完了するまで順番に変換され
ます。次に , コンバータは ANS チャネルのアナログ入力に戻り , 処理を繰り返します。
開始チャネルと終了チャネルが同じである場合 (ANS=ANE), そのチャネルの変換だけ
が連続的に実行されます。
例 : ANS=0000, ANE=001
開始→ AN0 → AN1 → AN2 → AN3 → AN0... →繰返し
ANS=0010, ANE=0010
開始→ AN2 → AN2 → AN2... →繰返し
連続変換モードでは , BUSY ビットに "0" が書き込まれるまで変換が繰り返されます。
BUSY ビットに "0" が書き込まれると , 変換は強制終了となります。動作を強制終了さ
せると , 変換の途中で現在の変換が停止するので , 注意してください。動作が強制終了
されると , 変換レジスタの値は , 直近に完了した変換の結果になります。
● ストップモード
ストップモードでは , ANS ビットと ANE ビットによって選択された , アナログ入力信
号が順番に変換されますが , 各チャネルの変換のたびに変換動作は一時停止します。こ
の一時停止は , もう一度起動信号を適用することによって解除されます。
414
第 14 章 A/D コンバータ
ANE ビットにより決められる終了チャネルの変換が完了すると , A/D コンバータは
ANS チャネルのアナログ入力信号に戻り , 処理を繰り返します。
開始チャネルと終了チャネルが同じである場合 (ANS=ANE), 1 つのチャネルの変換だ
けが実行されます。
例 : ANS=0000, ANE=0011
開始→ AN0 →停止→開始→ AN1 →停止→開始→ AN2 →停止→開始→ AN3 →
停止→開始→ AN0... →繰返し
ANS=0010, ANE=00100
開始→ AN2 →停止→開始→ AN2 →停止→開始→ AN2... →繰返し
ストップモードでは , 起動要因は , STS1 と STS0 ビットで決まる要因に限られます。
このモードにより , 変換起動信号の同期が可能になります。
■ 変換動作
DMA を使用した変換動作と変換データ保護機能について説明します。
● DMA を使用した変換動作
図 14.3-1 に , 連続変換モードにおける , A/D 変換の開始から変換データの転送までの流
れを示します。
図 14.3-1 連続変換モードにおける動作フロー
A/D
変換開始
データのサンプリングと
ホールド
DMA 開始
Start
DMA
データ転送
データ変換
*
処理割込み
変換終了
割込みクリア
割込み発生
* は , DMA 設定によって決まる動作を示します。
● 変換データ保護機能
A/D コンバータの特長の 1 つは , 変換データ保護機能です。これによってユニットは ,
連続変換の結果と複数のデータ集合を保護できます。
変換データレジスタは 1 つしかないので , 連続して A/D 変換をすると , 変換サイクルが
終了して変換結果が格納されるたびに , レジスタ内の前のデータが失われることにな
ります。データの消失を防ぐために , A/D コンバータには , 現在の変換サイクルが終了
しても , 前のデータが DMA によってメモリに転送されてしまうまでは , レジスタに新
しいデータを格納しないように一時停止する機能があります。
メモリへの DMA 転送が完了すると一時停止は取り消され , 変換が再開します。
前のデータが時間内にメモリに転送されれば , A/D 変換は一時停止しないで継続しま
す。
415
第 14 章 A/D コンバータ
<注意事項>
この機能は , ADCS レジスタの INT ビットと INTE ビットに関連しています。
• データ保護機能は , 割込み許可状態 (INTE=1) でのみ動作するように設計されて
います。
• 割込みが禁止されている (INTE=0) 場合は , この機能は動作せず , 連続の A/D 変
換を行った場合 , 前の変換データの集合は , 次の集合がレジスタに格納されると
消失します。
• 割込み許可のモード (INTE=1) では , DMA を使用せずに INT ビットをクリアする
ことはできませんので , データ保護機能によって A/D 変換は強制的に一時停止状
態のままになります。この場合は , 割込みシーケンスを使用して , INT ビットを
クリアし , 一時停止を解除します。
• DMA 転送中 , A/D コンバータが一時停止状態のときに割込みが禁止された場合
は , A/D コンバータは動作を再開でき , 変換データレジスタの内容は転送が完了
する前に消失する可能性があります。
• 一時停止状態で再起動をかけると , レジスタに待機中のデータは破壊されます。
図 14.3-2 に , データ保護機能の動作フロー (DMA 使用時 ) を示します。
図 14.3-2 データ保護機能の動作フロー (DMA 使用時 )
A/D コンバータが一時停止中のフローは省略しています。
DMA設定
A/D 連続変換を起動
(注意事項)
一時停止状態で再起動をかけると、レジスタに待機中
のデータは破壊されます。
1番目の変換サイクル終了
結果をデータレジスタに格納
2番目の変換サイクル終了
DMA 起動
NO
注
A/D変換一時停止
DMADMA終了?
YES
YES
結果をデータレジスタに格納
DMA 終了 ?
NO
DMA 起動
3 番目の変換サイクル終了
継続
DMA 起動
すべての変換サイクルを停止
割込みルーチン
終了
A/D変換停止
■ 使用上の注意事項
A/D コンバータを使用するうえで , ほかに注意すべき事項を , 以下に示します。
ATGX 端子へのパルス入力は , 次に示す最小入力パルス幅より長くなければなりませ
ん。
最小入力パルス幅 : 2 周辺クロック (CLKP) サイクル
ただし , 場合によっては , この仕様より入力パルスが短くても有効なパルスとして認識
されることがあります。
MB91360 シリーズの A/D コンバータの外部トリガ入力には , フィルタ機能がありませ
ん。必要な場合は , 外部にフィルタまたは同様の回路を接続してください。
416
第 15 章
16 ビットリロードタイマ
16 ビットリロードタイマの概要を示し , レジスタ
の構成と機能 , および 16 ビットリロードタイマの
動作について説明します。
15.1 16 ビットリロードタイマの概要
15.2 16 ビットリロードタイマのレジスタ構成
15.3 16 ビットリロードタイマの動作
417
第 15 章 16 ビットリロードタイマ
15.1
16 ビットリロードタイマの概要
16 ビットリロードタイマは , 16 ビットダウンカウンタ , 16 ビットリロードレジスタ ,
内部カウントクロック生成用プリスケーラとコントロールレジスタより構成されて
います。
16 ビットリロードタイマは , 割込みを使用して DMA 転送も起動できます。
MB91360 シリーズには , 6 個の 16 ビットリロードタイマチャネルが格納されてい
ます。
■ 16 ビットリロードタイマの機能
入力クロックは , 3 つの内部クロックから選択できます ( 周辺機器用クロックは 2/8/32
で分周されます )。
■ 16 ビットリロードタイマのブロックダイヤグラム
図 15.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 15.1-1 16 ビットリロードタイマのブロックダイヤグラム
16
16ビットリロードレジスタ
8
リロード
16ビットダウンカウンタ UF
16
RELD
Rバス
GATE
OUT
CTL.
CSL1
クロックセレクタ
CSL0
INTE
UF
IRQ
CNTE
TRG
2
φ
2
1
φ
2
φ
3
25
プリスケーラクリア
PWM(リロードタイマch.0~ch.3)* A/D(リロードタイマch.4)*
* 内部接続
CLKP
418
第 15 章 16 ビットリロードタイマ
15.2
16 ビットリロードタイマのレジスタ構成
16 ビットリロードタイマのレジスタについて説明します。
■ 16 ビットリロードタイマのレジスタ構成
16 ビットリロードタイマは , 次の 3 つのレジスタから構成されています。
• 制御ステータスレジスタ (TMCSR)
• 16 ビットタイマレジスタ (TMR)
• 16 ビットリロードレジスタ (TMRLR)
図 15.2-1 に , 16 ビットリロードタイマのレジスタ構成を示します。
図 15.2-1 16 ビットリロードタイマのレジスタ構成
bit15
制御ステータス
レジスタ (TMCSR)
16 ビットタイマ
レジスタ (TMR)
14
13
12
11
10
9
8
初期値
TMCSR 予備
予備
予備
予備
CSL1
CSL0
予備
予備
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
・TMCSR3 ∼
TMCSR5
----XX--B
・TMCSR0 ∼
TMCSR2
----0000B
bit7
6
5
4
3
2
1
0
予備
予備
予備
RELD
INTE
UF
CNTE
TRG
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
・TMCSR3 ∼
TMCSR5
---XXXXXB
・TMCSR0 ∼
TMCSR2
---00000B
XXXXXXXXB
TMR
R
R
R
R
R
R
R
R
bit7
6
5
4
3
2
1
0
XXXXXXXXB
16 ビットリロード
レジスタ (TMRLR)
R
R
R
R
R
R
R
R
bit15
14
13
12
11
10
9
8
XXXXXXXXB
TMRLR
W
W
W
W
W
W
W
W
bit7
6
5
4
3
2
1
0
XXXXXXXXB
W
W
W
W
W
W
W
W
419
第 15 章 16 ビットリロードタイマ
15.2.1
制御ステータスレジスタ (TMCSR)
制御ステータスレジスタ (TMCSR) は , 16 ビットリロードタイマの動作モード , およ
び割込みを制御します。
UF, CNTE, TRG 以外のビットの変更は , CNTE=0 のときに行うようにしてくださ
い。
同時書込みが可能です。
■ 制御ステータスレジスタ (TMCSR) のビット構成
図 15.2-2 に , 制御ステータスレジスタ (TMCSR) のビット構成を示します。
図 15.2-2 制御ステータスレジスタ (TMCSR) のビット構成
アドレス
bit11
0000 004EH CSL1
0000 0056H
R/W
0000 005EH
0000 0106H
0000 010EH
0000 0116H
10
9
8
7
6
5
4
3
2
1
0
CSL0
予備
予備
予備
予備
予備
RELD
INTE
UF
CNTE
TRG
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
←アクセス
初期値 : ・TMCSR3 ∼ TMCSR5 : XX-----XXXXXB
・TMCSR0 ∼ TMCSR2 : 0000---00000B
■ 制御ステータスレジスタ (TMCSR) の各ビットの機能
以下に , 制御ステータスレジスタ (TMCSR) の各ビットの機能について説明します。
[bit11, bit10] CSL1, CSL0(Count clock SeLect)
これらのビットは , カウントクロック選択ビットです。
選択されるクロックソースを , 表 15.2-1 に示します。
表 15.2-1 CSL ビットのクロックソース設定
CSL1
CSL0
クロックソース (φ: マシンクロック )
0
0
φ/21
0
1
φ/23
1
0
φ/25
1
1
設定禁止
[bit9 ∼ bit5] 予備ビット
常に , "00000" に設定します。
420
第 15 章 16 ビットリロードタイマ
[bit4] RELD
このビットでリロード動作を許可します。
RELD が "1" のとき , タイマはリロードモードで動作します。このモードでは , タイ
マはカウンタの値が "0000H" → "FFFFH" へのアンダフローと同時にリロードレジス
タの内容をカウンタへロードしてカウント動作を続けます。
RELD が "0" の場合は , カウンタ値が "0000H" から "FFFFH" に変わることによって
アンダフローが起こると , カウント動作が停止します。
[bit3] INTE
このビットは , 割込み要求許可ビットです。
INTE が "1" のときに , UF ビットが "1" に変わると割込み要求が発生します。
INTE が "0" の場合は , 割込み要求は発生しません。
[bit2] UF
このビットは , タイマ割込み要求フラグです。
アンダフローが発生すると ( カウンタ値が "0000H" から "FFFFH" に変わる ), UF は
"1" に設定されます。
"0" を書き込むとビットはクリアされます。"1" を書き込んでも意味はありません。
リードモディファイライト系命令における読出し時には , "1" が読み出されます。
[bit1] CNTE
このビットは , タイマカウントの許可ビットです。
"1" を書き込むと , タイマは起動トリガを待ちに設定されます。
"0" を書き込むと , カウント動作が停止します。
[bit0] TRG
このビットは , ソフトウェアトリガビットです。
TRG に "1" を書き込むとソフトウェアトリガが適用され , タイマはリロードレジス
タの内容をカウンタにロードし , カウントを開始します。
"0" を書き込んでも意味はありません。読み出すと常に "0" が返ります。
このレジスタを使用したトリガの適用は, CNTEが"1"の場合にのみ有効です。
CNTE
が "0" の場合は , "1" を書き込んでも効果はありません。
421
第 15 章 16 ビットリロードタイマ
15.2.2
16 ビットタイマレジスタ (TMR)
このレジスタを読み出すと 16 ビットタイマのカウント値が読み出されます。
初期値は不定です。
必ず , 16 ビットデータ転送命令を使用してこのレジスタを読み出します。
■ 16 ビットタイマレジスタ (TMR) の構成
図 15.2-3 に , 16 ビットタイマレジスタ (TMR) の構成を示します。
図 15.2-3 16 ビットタイマレジスタ (TMR) の構成
R
X
R
X
R
X
R
X
∼∼
422
bit15
∼∼
アドレス
0000 004AH
0000 0052H
0000 005AH
0000 0102H
0000 010AH
0000 0112H
……
……
0
R
X
R
X
R
X
R
X
←アクセス
←初期値
第 15 章 16 ビットリロードタイマ
15.2.3
16 ビットリロードレジスタ (TMRLR)
16 ビットリロードレジスタは , 初期カウント値を格納します。
初期値は不定です。
必ず , 16 ビットデータ転送命令を使用してこのレジスタを書き込みます。
■ 16 ビットリロードレジスタ (TMRLR) の構成
図 15.2-4 に , 16 ビットリロードレジスタ (TMRLR) の構成を示します。
図 15.2-4 16 ビットリロードレジスタ (TMRLR) の構成
W
X
W
X
W
X
W
X
∼∼
bit15
∼∼
アドレス
0000 0048H
0000 0050H
0000 0058H
0000 0100H
0000 0108H
0000 0110H
……
……
0
W
X
W
X
W
X
W
X
←アクセス
←初期値
423
第 15 章 16 ビットリロードタイマ
15.3
16 ビットリロードタイマの動作
16 ビットリロードタイマの次の 2 つの動作について説明します。
• 内部クロック動作
• アンダフロー動作
424
第 15 章 16 ビットリロードタイマ
15.3.1
内部クロック動作
16 ビットリロードタイマの内部クロック動作について説明します。
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマシ
ンクロックの 2, 8, 32 分周のクロックから選択することができます。
カウント許可と同時にカウントの動作を開始する場合は , 制御ステータスレジスタの
CNTE ビットと TRG ビットの両方に "1" を書き込んでください。
TRG ビットによるトリガ入力は , タイマが起動状態のとき (CNTE が "1"), 動作モード
にかかわらず常に有効です。
カウンタの起動とカウンタの動作について , 図 15.3-1 に示します。
カウンタスタートのトリガが入力されてからリロードレジスタのデータがカウンタへ
ロードされるまでに , φ(φ: CLKP マシンサイクル ) の時間がかかります。
図 15.3-1 カウンタの起動と動作タイミング
カウンタクロック
カウンタ
データリロード
-1
-1
-1
データロード
CNTE(レジスタ)
TRG(レジスタ)
φ
425
第 15 章 16 ビットリロードタイマ
15.3.2
アンダフロー動作
16 ビットリロードタイマのアンダフロー動作について説明します。
カウンタの値が "0000H" から "FFFFH" になるときをアンダフローとしています。した
がって , 「リロードレジスタの設定値 +1」のカウントでアンダフローが発生すること
になります。
アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のとき , リロードレジスタの
内容はカウンタへロードされてカウント動作は継続されます。RELD ビットが "0" のと
き , カウンタは "FFFFH" で停止します。
アンダフローにより , 制御レジスタの UF ビットが設定されます。このとき INTE ビッ
トが "1" であると , 割込み要求が発生します。
アンダフローの動作について , 図 15.3-2 に示します。
図 15.3-2 アンダフローの動作タイミング
・RELD= 1 の場合
カウントクロック
カウンタ
0000 H
データリロード
-1
データロード
アンダフローセット
・RELD= 0 の場合
カウントクロック
カウンタ
アンダフローセット
426
0000 H
FFFF H
-1
-1
第 15 章 16 ビットリロードタイマ
15.3.3
カウンタの動作状態
16 ビットリロードタイマのカウンタの動作状態について説明します。
カウンタの状態は , 制御レジスタの CNTE ビットと内部の WAIT 信号によって決まりま
す。
設定可能な状態としてCNTE=0, WAIT=1の停止状態(STOP状態: 動作停止), CNTE=1,
WAIT=1 の起動トリガ待ち状態 (WAIT 状態 : トリガ待ち ), および CNTE=1, WAIT=0 の
動作状態 (RUN 状態 : 動作中 ) があります。
各状態の遷移を図 15.3-3 に示します。
図 15.3-3 カウンタ状態の遷移
ハードウェアによる状態遷移
レジスタアクセスによる状態遷移
リセット
停止
CNTE= 0, WAIT= 1
カウンタ: カウント停止時の
値を保持。
リセット後は不定。
CNTE= 0
CNTE= 0
CNTE= 1
CNTE= 1
TRG= 1
TRG= 0
待機
実行
CNTE= 1, WAIT= 1
CNTE= 1, WAIT= 0
カウンタ: カウント中
カウンタ: カウント停止時の
値を保持。
リセット後、ロード
されるまでは不定。
RELD UF
TRG= 1
TRG= 1
ロード
CNTE= 1, WAIT= 0
リロードレジスタの内容を
カウンタにロード
RELD UF
ロード完了
427
第 15 章 16 ビットリロードタイマ
15.3.4
その他の動作
16 ビットリロードタイマのその他の動作について説明します。
• リロードタイマのチャネル 0 とチャネル 1 の割込み要求信号を使用して , DMA 転送
を起動できます。DMA コントローラは , 転送要求を確認するとリロードタイマの割
込みフラグをクリアします。
• リロードタイマのチャネル 4 の出力は , 内部で A/D コンバータに接続されています。
これを使用して, リロードレジスタに設定されている間隔で, 周期的にA/Dコンバー
タを起動できます。
• リロードタイマのチャネル 0 から 3 の出力は , 内部で PWM タイマに接続されてい
て , これらのタイマのトリガに使用できます。
428
第 16 章
CAN コントローラ
CAN インタフェースの概要を示し , レジスタの構
造と機能 , および CAN インタフェースの動作につ
いて説明します。
16.1 CAN コントローラの概要
16.2 レジスタ
16.3 CAN コントローラの動作
16.4 使用手順
429
第 16 章 CAN コントローラ
16.1
CAN コントローラの概要
CAN コントローラは , MB91360 シリーズの内蔵モジュールです。CAN(Controller
Area Network: コントローラエリアネットワーク ) は , 自動車コントローラ間のシリ
アル通信用標準プロトコルで , 産業界で広く応用されています。
■ CAN コントローラの特長
CAN コントローラには以下の特長があります。
•
CAN 仕様バージョン 2.0 パート A, および B に準拠
- 標準フレーム , および拡張フレームの各フォーマットにおける送受信をサポート
しています。
• リモートフレームの受信によるデータフレームの送信をサポート
• 16 の送受信メッセージバッファ
- 29 ビット ID, および 8 バイトデータを使用しています。
- 多重メッセージバッファ構成です。
• フルビット比較 , フルビットマスク , 部分ビットマスクフィルタリングをサポート
- 標準フレームフォーマット , または拡張フレームフォーマットのいずれでも使用
できる 2 つの受入マスクレジスタを採用しています。
• 10K ビット / 秒∼ 1M ビット / 秒でビット速度をプログラム可能 ( 入力クロックが
16 MHz の場合 )
以下の節では , CAN0 についてのみ説明します。他の CAN チャネルのレジスタアドレ
スについては ,「付録 A I/O マップ」を参照してください。
示されているアドレスは , CS7 領域が , 「第 4 章 ブート ROM/ 構成レジスタ」で説明
されているように定義されていると想定しています。
430
第 16 章 CAN コントローラ
■ CAN コントローラのブロックダイヤグラム
図 16.1-1 に , CAN コントローラのブロックダイヤグラムを示します。
図 16.1-1 ブロックダイヤグラム
CANCLK
CREG
CAN送受信動作用クロック
クロック構成
CLKT
外バスアクセス用クロック
TQ(作動クロック)
外部バス
(ユーザロジックバス)
プリスケーラ
1~64周波数分割
ビットタイミング発生
SYNC, TSEG1, TSEG2
PSC
PR
BTR
PH
RSJ
TOE
TS
RS
HALT
CSR
NIE
NT
ノード状態変更
割込み発生
IDLE, INT, SUSPND,
送信, 受信,
ERR, OVRLD
バス
ステート
マシン
ノード状態
変更割込み
NS1,NS0
エラー
制御
RTEC
送信/受信シーケンサ
BVALR
TREQR
TBFx、クリア
送信バッファx決定
TBFx
エラーフレーム
発生
データ 受入フィルタ
カウンタ
制御
オーバロード
フレーム発生
TDLC RDLC
TBFx
IDSEL
BITER, STFER,
CRCER, FRMER,
ACKER
TCANR
出力
ドライバ
ARBLOST
TX
TRTRR
TCR
TBFx, 設定, クリア
送信完了割込み
送信完了割込み発生
ACK発生
CRCER
RBFx, 設定
RIER
RRTRR
CRC発生
TDLC
TIER
RCR
スタッフィング
送信シフト
レジスタ
RFWTR
RDLC
受信完了割込み発生
受信完了割込み
STFER
デスタッフィング/
スタッフィング
エラーチェック
受信シフト
レジスタ
RBFx, TBFx, 設定, クリア
RBFx, 設定
CRC発生/
エラーチェック
IDSEL
ROVRR
ARBLOST
AMSR
AMR0x
0
1
BITER
受入フィルタ
受信バッファx
決定
RBFx
RAMアドレス
発生
ビットエラー
チェック
ACKER
肯定応答
エラーチェック
FRMER
形式エラー
チェック
AMR1x
IDR0~15
DLCR0~15
DTR0~15
RAM
調停チェック
PH1
入力
ラッチ
RX
RBFx, TBFx, RDLC, TDLC, IDSEL
LEIR
431
第 16 章 CAN コントローラ
16.2
レジスタ
CAN コントローラのレジスタについて説明します。
■ 制御レジスタ一覧
表 16.2-1 に , CAN コントローラの制御レジスタ一覧を示します。
表 16.2-1 に示されたレジスタに対しては , バイアスモードではライトアクセスできませ
ん。これらのレジスタへのライトアクセスは , 16 ビットアクセスを使用してください。
表 16.2-1 CAN コントローラの制御レジスタ一覧 (1 / 2)
アドレス
レジスタ
略記
アクセス
初期値
メッセージバッファ有効レジスタ
BVALR0
R/W
00000000 00000000
送信要求レジスタ
TREQR0
R/W
00000000 00000000
送信取消しレジスタ
TCANR0
W
00000000 00000000
送信完了レジスタ
TCR0
R/W
00000000 00000000
受信完了レジスタ
RCR0
R/W
00000000 00000000
リモート要求受信レジスタ
RRTRR0
R/W
00000000 00000000
受信オーバランレジスタ
ROVRR0
R/W
00000000 00000000
受信割込み許可レジスタ
RIER0
R/W
00000000 00000000
制御ステータスレジスタ
CSR0
R/W, R
00---000 0----0-1
最終イベントインディケータレジスタ
LEIR0
R/W
-------- 000-0000
CAN0
100000H
100001H
100002H
100003H
100004H
100005H
100006H
100007H
100008H
100009H
10000AH
10000BH
10000CH
10000DH
10000EH
10000FH
100010H
100011H
100012H
100013H
432
第 16 章 CAN コントローラ
表 16.2-1 CAN コントローラの制御レジスタ一覧 (2 / 2)
アドレス
レジスタ
略記
アクセス
初期値
受信 / 送信エラーカウンタ
RTEC0
R
00000000 00000000
ビットタイミングレジスタ
BTR0
R/W
-1111111 11111111
IDE レジスタ
IDER0
R/W
XXXXXXXX XXXXXXXX
送信 RTR レジスタ
TRTRR0
R/W
00000000 00000000
リモートフレーム受信待ちレジスタ
RFWTR0
R/W
XXXXXXXX XXXXXXXX
送信割込み許可レジスタ
TIER0
R/W
00000000 00000000
CAN0
100014H
100015H
100016H
100017H
100018H
100019H
10001AH
10001BH
10001CH
10001DH
10001EH
10001FH
100020H
XXXXXXXX XXXXXXXX
100021H
100022H
受入マスク選択レジスタ
AMSR0
R/W
XXXXXXXX XXXXXXXX
100023H
100024H
XXXXXXXX XXXXXXXX
100025H
受入マスクレジスタ 0
AMR00
R/W
100026H
XXXXX--- XXXXXXXX
100027H
100028H
XXXXXXXX XXXXXXXX
100029H
受入マスクレジスタ 1
AMR10
R/W
10002AH
XXXXX--- XXXXXXXX
10002BH
433
第 16 章 CAN コントローラ
■ メッセージバッファ
表 16.2-2 にメッセージバッファ(ID レジスタ ) 一覧を , 表 16.2-3 にメッセージバッファ
(DLC レジスタ , およびデータレジスタ ) 一覧を , 表 16.2-4 に構成レジスタを示します。
メッセージバッファレジスタ ( 表 16.2-2 , 表 16.2-3 ) へのバイトモードでのライトアク
セスはできません。16 ビットモードでライトしてください。
表 16.2-2 メッセージバッファ (ID レジスタ ) 一覧 (1 / 3)
アドレス
CAN0
レジスタ
略記
アクセス
初期値
汎用 RAM
--
R/W
XXXXXXXX ∼ XXXXXXXX
10002CH
∼
10004BH
10004CH
XXXXXXXX XXXXXXXX
10004DH
10004EH
ID レジスタ 0
IDR00
R/W
XXXXX--- XXXXXXXX
10004FH
100050H
XXXXXXXX XXXXXXXX
100051H
100052H
ID レジスタ 1
IDR10
R/W
XXXXX--- XXXXXXXX
100053H
100054H
XXXXXXXX XXXXXXXX
100055H
100056H
ID レジスタ 2
IDR20
R/W
XXXXX--- XXXXXXXX
100057H
100058H
XXXXXXXX XXXXXXXX
100059H
10005AH
ID レジスタ 3
IDR30
R/W
XXXXX--- XXXXXXXX
10005BH
10005CH
XXXXXXXX XXXXXXXX
10005DH
10005EH
ID レジスタ 4
IDR40
R/W
XXXXX--- XXXXXXXX
10005FH
100060H
XXXXXXXX XXXXXXXX
100061H
100062H
100063H
434
ID レジスタ 5
IDR50
R/W
XXXXX--- XXXXXXXX
第 16 章 CAN コントローラ
表 16.2-2 メッセージバッファ (ID レジスタ ) 一覧 (2 / 3)
アドレス
CAN0
レジスタ
略記
アクセス
100064H
XXXXXXXX XXXXXXXX
100065H
100066H
ID レジスタ 6
IDR60
R/W
XXXXX--- XXXXXXXX
100067H
100068H
XXXXXXXX XXXXXXXX
100069H
10006AH
ID レジスタ 7
IDR70
R/W
XXXXX--- XXXXXXXX
10006BH
10006CH
XXXXXXXX XXXXXXXX
10006DH
10006EH
ID レジスタ 8
IDR80
R/W
XXXXX--- XXXXXXXX
10006FH
100070H
XXXXXXXX XXXXXXXX
100071H
100072H
ID レジスタ 9
IDR90
R/W
XXXXX--- XXXXXXXX
100073H
100074H
XXXXXXXX XXXXXXXX
100075H
100076H
ID レジスタ 10
IDR100
R/W
XXXXX--- XXXXXXXX
100077H
100078H
XXXXXXXX XXXXXXXX
100079H
10007AH
ID レジスタ 11
IDR110
R/W
XXXXX--- XXXXXXXX
10007BH
10007CH
XXXXXXXX XXXXXXXX
10007DH
10007EH
10007FH
初期値
ID レジスタ 12
IDR120
R/W
XXXXX--- XXXXXXXX
435
第 16 章 CAN コントローラ
表 16.2-2 メッセージバッファ (ID レジスタ ) 一覧 (3 / 3)
アドレス
CAN0
レジスタ
略記
アクセス
100080H
XXXXXXXX XXXXXXXX
100081H
100082H
ID レジスタ 13
IDR130
R/W
XXXXX--- XXXXXXXX
100083H
100084H
XXXXXXXX XXXXXXXX
100085H
100086H
ID レジスタ 14
IDR140
R/W
XXXXX--- XXXXXXXX
100087H
100088H
XXXXXXXX XXXXXXXX
100089H
10008AH
初期値
ID レジスタ 15
IDR150
R/W
XXXXX--- XXXXXXXX
10008BH
表 16.2-3 メッセージバッファ (DLC レジスタ , およびデータレジスタ ) 一覧 (1 / 3)
アドレス
CAN0
レジスタ
略記
アクセス
DLC レジスタ 0
DLCR00
R/W
-------- ----XXXX
DLC レジスタ 1
DLCR10
R/W
-------- ----XXXX
DLC レジスタ 2
DLCR20
R/W
-------- ----XXXX
DLC レジスタ 3
DLCR30
R/W
-------- ----XXXX
DLC レジスタ 4
DLCR40
R/W
-------- ----XXXX
DLC レジスタ 5
DLCR50
R/W
-------- ----XXXX
DLC レジスタ 6
DLCR60
R/W
-------- ----XXXX
10008CH
10008DH
10008EH
10008FH
100090H
100091H
100092H
100093H
100094H
100095H
100096H
100097H
100098H
100099H
436
初期値
第 16 章 CAN コントローラ
表 16.2-3 メッセージバッファ (DLC レジスタ , およびデータレジスタ ) 一覧 (2 / 3)
アドレス
レジスタ
略記
アクセス
DLC レジスタ 7
DLCR70
R/W
-------- ----XXXX
DLC レジスタ 8
DLCR80
R/W
-------- ----XXXX
DLC レジスタ 9
DLCR90
R/W
-------- ----XXXX
DLC レジスタ 10
DLCR100
R/W
-------- ----XXXX
DLC レジスタ 11
DLCR110
R/W
-------- ----XXXX
DLC レジスタ 12
DLCR120
R/W
-------- ----XXXX
DLC レジスタ 13
DLCR130
R/W
-------- ----XXXX
DLC レジスタ 14
DLCR140
R/W
-------- ----XXXX
DLC レジスタ 15
DLCR150
R/W
-------- ----XXXX
1000ACH ∼
1000B3H
データレジスタ 0
(8 バイト )
DTR00
R/W
XXXXXXXX ∼ XXXXXXXX
1000B4H ∼
1000BBH
データレジスタ 1
(8 バイト )
DTR10
R/W
XXXXXXXX ∼ XXXXXXXX
1000BCH ∼
1000C3H
データレジスタ 2
(8 バイト )
DTR20
R/W
XXXXXXXX ∼ XXXXXXXX
1000C4H ∼
1000CBH
データレジスタ 3
(8 バイト )
DTR30
R/W
XXXXXXXX ∼ XXXXXXXX
1000CCH ∼
1000D3H
データレジスタ 4
(8 バイト )
DTR40
R/W
XXXXXXXX ∼ XXXXXXXX
1000D4H ∼
1000DBH
データレジスタ 5
(8 バイト )
DTR50
R/W
XXXXXXXX ∼ XXXXXXXX
1000DCH ∼
1000E3H
データレジスタ 6
(8 バイト )
DTR60
R/W
XXXXXXXX ∼ XXXXXXXX
CAN0
10009AH
10009BH
10009CH
10009DH
10009EH
10009FH
1000A0H
1000A1H
1000A2H
1000A3H
1000A4H
1000A5H
1000A6H
1000A7H
1000A8H
1000A9H
1000AAH
1000ABH
初期値
437
第 16 章 CAN コントローラ
表 16.2-3 メッセージバッファ (DLC レジスタ , およびデータレジスタ ) 一覧 (3 / 3)
アドレス
レジスタ
略記
アクセス
初期値
1000E4H ∼
1000EBH
データレジスタ 7
(8 バイト )
DTR70
R/W
XXXXXXXX ∼ XXXXXXXX
1000ECH ∼
1000F3H
データレジスタ 8
(8 バイト )
DTR80
R/W
XXXXXXXX ∼ XXXXXXXX
1000F4H ∼
1000FBH
データレジスタ 9
(8 バイト )
DTR90
R/W
XXXXXXXX ∼ XXXXXXXX
1000FCH ∼
100103H
データレジスタ 10
(8 バイト )
DTR100
R/W
XXXXXXXX ∼ XXXXXXXX
100104H ∼
10010BH
データレジスタ 11
(8 バイト )
DTR110
R/W
XXXXXXXX ∼ XXXXXXXX
10010CH ∼
100113H
データレジスタ 12
(8 バイト )
DTR120
R/W
XXXXXXXX ∼ XXXXXXXX
100114H ∼
10011BH
データレジスタ 13
(8 バイト )
DTR130
R/W
XXXXXXXX ∼ XXXXXXXX
10011CH ∼
100123H
データレジスタ 14
(8 バイト )
DTR140
R/W
XXXXXXXX ∼ XXXXXXXX
100124H ∼
10012BH
データレジスタ 15
(8 バイト )
DTR150
R/W
XXXXXXXX ∼ XXXXXXXX
CAN0
表 16.2-4 構成レジスタ (CREG)
アドレス
CAN0
10012CH
10012DH
438
レジスタ
略記
アクセス
初期値
構成レジスタ
CREG0
R/W
00000000
00000110
第 16 章 CAN コントローラ
16.2.1
オーバオール制御レジスタ
オーバオール制御レジスタには , 制御ステータスレジスタ (CSR), および最終イベン
トインディケータレジスタ (LEIR) の 2 種類があります。
■ 制御ステータスレジスタ (CSR)
制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リードモ
ディファイライト命令 ) を実行することは禁止されています。ただし , HALT ビットが
変化しないタイミング ( マクロの初期化時など ) では , ビット操作命令を使用しても問
題ありません。
図 16.2-1 に , 制御ステータスレジスタ (CSR) のビット構成を示します。
図 16.2-1 制御ステータスレジスタ (CSR) のビット構成
アドレス : 00100010H(CAN0)
読出し / 書込み :
初期値 :
アドレス : 00100011H(CAN0)
読出し / 書込み :
初期値 :
bit15
14
13
12
11
10
9
8
TS
R
(0)
RS
R
(0)
−
(-)
−
(-)
−
(-)
NT
NS1
NS0
R/W
(0)
R
(0)
R
(0)
bit7
6
5
4
3
2
1
0
TOE
R/W
(0)
−
(-)
−
(-)
−
(-)
−
(-)
NIE
−
(-)
HALT
R/W
(0)
R/W
(1)
[bit15] TS : 送信状態ビット
このビットは , メッセージが送信されているかどうかを示します。
• 0 : メッセージは送信されていません
• 1 : メッセージは送信されました
このビットは , エラー, およびオーバロードフレームが送信されたときも "0" になり
ます。
[bit14] RS : 受信状態ビット
このビットは , メッセージが受信されているかどうかを示します。
• 0 : メッセージは受信されていません
• 1 : メッセージは受信されました
メッセージがバス上にある間 , このビットは "1" になります。したがって , メッセー
ジが送信されているときも , このビットは "1" になります。このビットは , 必ずしも
受信メッセージが受入フィルタを通過したかどうかを示すものではありません。
結果として , このビットが "0" のときは , バス動作が停止 (HALT=0) していることを
意味します。すなわち , バスが断続 / バスアイドル状態であるか , またはエラー /
オーバロードフレームがバス上にあるかです。
[bit10] NT : ノード状態遷移フラグ
ノード状態がインクリメントに転じるか , または Bus Off から Error Active に変化す
ると , このビットが "1" に設定されます。言い換えると , ノード状態が Error
Active("00") か ら Warning("01"), Warning("01") か ら Error Passive("10"), Error
Passive("10") から Bus Off("11"), また , Bus Off("11") から Error Active("00") に変わる
と , NT ビットが "1" に設定されます。括弧内の数字は , NS1 と NS0 のビット値を示
しています。
439
第 16 章 CAN コントローラ
ノード状態遷移割込み許可ビット (NIE) が "1" の場合 , 割込みが発生します。"0" を
書き込むと , NT ビットは "0" に設定されます。NT ビットへの "1" の書込みは無視
されます。リードモディファイライト命令が読み出されたときに , "1" が読み出され
ます。
[bit9, bit8] NS1, NS0 : ノード状態ビット 1, ビット 0
これらのビットは , 現在のノード状態を示します。
表 16.2-5 に NS1, NS0 ビットとノード状態の対応を , 図 16.2-2 にノード状態の遷移
を示します。
表 16.2-5 NS1, NS0 とノード状態の対応
NS1
NS0
ノード状態
0
0
Error active
0
1
Warning (active)
1
0
Error passive
1
1
Bus off
図 16.2-2 ノード状態の遷移
ハードウェアリセット
REC:受信エラーカウンタ
TEC:送信エラーカウンタ
Error active
レジスタ(CSR)のHALTビットへの0の書込み後、
連続11ビットのハイレベル(中断ビット)が、受
信入力端子(RX)に128回入力されます。
REC ≧ 96
または
TEC ≧ 96
REC < 96
および
TEC < 96
REC ≧ 128
または
TEC ≧ 128
Error
passive
<注意事項>
Warning
(active)
REC < 128
および
TEC < 128
TEC ≧ 256
Bus off
(HALT = 1)
Warning (active) は , CAN 仕様 2.0B のノード状態の error active に含まれています
が , 送信エラーカウンタ , または受信エラーカウンタが 96 を超えていることを示し
ています。
[bit7] TOE : 送信出力許可ビット
このビットに "1" を書き込むと , 汎用ポート端子から CAN コントローラの送信端子
に切り替わります。
440
第 16 章 CAN コントローラ
• 0 : 汎用ポート端子
• 1 : CAN コントローラの送信端子
[bit2] NIE : ノード状態遷移割込み許可ビット
このビットは , ノード状態遷移割込みを許可 , または禁止にします (NT=1 の
とき )。
• 0 : ノード状態遷移割込み禁止
• 1 : ノード状態遷移割込み許可
[bit0] HALT : バス動作停止ビット
このビットは , バス動作停止を設定するか , 取消しするか , またはその状態を表示し
ます。
読込み時
0: バス動作中
1: バス動作停止
書込み時
0: バス動作停止を解除
1: バス動作停止をセット
<注意事項>
Bus Off 時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になってい
ることを確認後 , "0" を書き込んでください。
参考プログラム例 :
switch (10_CANCT0.CSR.bit.NS)
{
case 0 : /* error active */
break;
case 1 : /* warning */
break;
case 2 : /* error passive */
break;
default : /* bus off */
for(i=0;(i<=500)&&(10_CANCT0.CSR.bit.HALT==0);i++);
10_CANCT0.CSR.word = 0x0084; /* HALT = 0 */
break;
{
*: 変数 i はフェイルセーフのために使用しています。
• バス動作停止 (HALT=1) の設定条件
- ハードウェアリセット後
- ノード状態が Bus Off に変わったとき
- HALT に "1" を書き込む
<注意事項>
• バスの動作は , MB91360 シリーズが低電力消費モード ( ストップモード , RTC
モード , およびハードウェアスタンバイモード ) に変わる前に , HALT に "1" を書
き込むことによって停止しなければなりません。
• HALT に "1" を書き込んだときに送信中であった場合は , バスの動作は送信が終
了すると停止します (HALT=1)。HALT に "1" を書き込んだときに受信中であった
場合は , バスの動作は直ちに停止します (HALT=1)。受信メッセージをメッセー
ジバッファ (x) に記憶中のときは , メッセージ記憶後にバス動作を停止します
(HALT=1)。
• バス動作が停止したかどうかを確認するには , HALT ビットを読み出します。
441
第 16 章 CAN コントローラ
• バス動作停止 (HALT=0) の取消し条件
- HALT に "0" を書き込む
<注意事項>
• 上記の条件のとおり , ハードウェアリセット後 , または HALT に "1" を書き込む
ことによって設定されたバス動作停止の取消しは , HALT に "0" を書き込み , 連続
11 ビットのハイレベル ( 断続ビット ) が受信入力端子 (RX) に入力された後に実
行されます (HALT=0)。
• 上記の条件のとおり , ノード状態が Bus Off に変わったときに設定されたバス動
作停止の取消しは , HALT に "0" を書き込み , 連続 11 ビットのハイレベル ( 断続
ビット ) が受信入力端子 (RX) に 128 回入力された後に実行されます (HALT=0)。
その後 , 送信 , および受信の両エラーカウンタは 0 に達し , ノード状態は error
active に変わります。
• Bus Off 時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" になって
いることを確認後 , "0" を書き込んでください。
• バス動作停止時の状態 (HALT=1)
- バスは , 送信・受信いずれの動作も行いません。
- 送信出力端子 (TX) は , ハイレベル ( 断続ビット ) を出力します。
- 他のレジスタ , およびエラーカウンタの値は変わりません。
<注意事項>
ビットタイミングレジスタ (BTR) は , バス動作停止時 (HALT=1) に設定しなければ
なりません。
■ 最終イベントインディケータレジスタ (LEIR)
最終イベントインディケータレジスタ (LEIR) は , 最終イベントを表示します。
NTE, TCE, および RCE は , 排他的です。最終イベントのビットが "1" に設定されると ,
ほかのビットは "0" に設定されます。
図 16.2-3 に , 最終イベントインディケータレジスタ (LEIR) のビット構成を示します。
図 16.2-3 最終イベントインディケータレジスタ (LEIR) のビット構成
7
6
5
アドレス : 00100013H(CAN0)
bit
NTE
TCE
RCE
読出し / 書込み :
初期値 :
R/W
(0)
R/W
(0)
R/W
(0)
4
3
2
1
0
−
(-)
MBP3
MBP2
MBP1
MBP0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
[bit7] NTE : ノード状態遷移イベントビット
このビットが "1" のとき , ノード状態遷移が最終イベントであることを示します。
• このビットは , 制御ステータスレジスタ (CSR) の NT ビットと同時に "1" に設定され
ます。このビットも , CSR のノード状態遷移割込み許可ビット (NIE) の設定に関係
なく , "1" に設定されます。
• このビットに "0" を書き込むと , NT ビットが "0" に設定されます。このビットへの
"1" の書込みは無視されます。リードモディファイライト命令が実行されたときに ,
"1" が読み出されます。
[bit6] TCE : 送信完了イベントビット
このビットが "1" のとき , 送信完了が最終イベントであることを示します。
• このビットは , 送信完了レジスタ (TCR) のビットのうち , 任意の 1 つのビットと同
時に "1" に設定されます。このビットも , 送信割込み許可レジスタ (TIER) のビット
の設定に関係なく , "1" に設定されます。
442
第 16 章 CAN コントローラ
• このビットに "0" を書き込むと , "0" に設定されます。このビットへの "1" の書込み
は無視されます。リードモディファイライト命令が実行されたときに , "1" が読み出
されます。
• このビットが "1" に設定されると , 送信動作を完了するメッセージバッファの番号
を示すために , MBP3 ∼ MBP0 ビットが使用されます。
[bit5] RCE : 受信完了イベントビット
このビットが "1" のとき , 受信完了が最終イベントであることを示します。
• このビットは , 受信完了レジスタ (RCR) のビットのうち , 任意の 1 つのビットと同
時に "1" に設定されます。このビットも , 受信割込み許可レジスタ (RIER) のビット
の設定に関係なく , "1" に設定されます。
• このビットに "0" を書き込むと , "0" に設定されます。このビットへの "1" の書込み
は無視されます。リードモディファイライト命令が実行されたときに , "1" が読み出
されます。
• このビットが "1" に設定されると , 受信動作を完了するメッセージバッファの番号
を示すために MBP3 ∼ MBP0 ビットが使用されます。
[bit3 ∼ bit0] MBP3 ∼ MBP0 : メッセージバッファポインタビット
TCE, または RCE が "1" に設定されると , これらのビットは対応するメッセージバッ
ファの番号 (0 ∼ 15) を示します。NTE ビットが "1" に設定された場合は , これらの
ビットは何の意味も持ちません。
• これらのビットに "0" を書き込むと , "0" に設定されます。これらのビットへの "1"
の書込みは無視されます。リードモディファイライト命令が読み出されたときに ,
"1" が読み出されます。
<注意事項>
CAN 割込みハンドラ内で LEIR にアクセスすると , 割込みの要因となるイベント
は , 必ずしも LEIR が示したものと同じにはなりません。割込み要求から割込みハ
ンドラ内の LEIR アクセスまでの間に , 別の CAN イベントが起きている可能性があ
ります。
443
第 16 章 CAN コントローラ
16.2.2
送信 , および受信エラーカウンタ (RTEC)
送信 , および受信エラーカウンタ (RTEC) は , 送信時 , および受信時に発生したエ
ラー数をカウントするカウンタです。
■ 送信 , および受信エラーカウンタ (RTEC) のビット構成
図 16.2-4 に , 送信 , および受信エラーカウンタ (RTEC) のビット構成を示します。
図 16.2-4 送信 , および受信エラーカウンタ (RTEC) のビット構成
bit
15
アドレス : 00100014H(CAN0) TEC7
読出し / 書込み :
初期値 :
bit
R
(0)
7
アドレス : 00100015H(CAN0) REC7
読出し / 書込み :
初期値 :
R
(0)
14
13
12
11
10
9
8
TEC6
TEC5
TEC4
TEC3
TEC2
TEC1
TEC0
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
6
5
4
3
2
1
0
REC6
REC5
REC4
REC3
REC2
REC1
REC0
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
R
(0)
[bit15 ∼ bit8] TEC7 ∼ TEC0 : 送信エラーカウンタ
これらのビットは , 送信エラーカウンタです。
TEC7 ∼ TEC0 の値は , カウンタ値が 256 を超えている場合に 0 ∼ 7 を示し , その後
の増分はカウンタ値にカウントされません。この場合 , ノード状態は Error Passive
を示します ( 制御ステータスレジスタ CSR の NS1, および NS0=11)。
[bit7 ∼ bit0] REC7 ∼ REC0 : 受信エラーカウンタ
これらのビットは , 受信エラーカウンタです。
REC7 ∼ REC0 の値は , カウンタ値が 256 を超えている場合に 0 ∼ 7 を示し , その後
の増分はカウンタ値にカウントされません。この場合 , ノード状態は Bus Off を示
します ( 制御ステータスレジスタ CSR の NS1, および NS0=10)。
444
第 16 章 CAN コントローラ
16.2.3
ビットタイミングレジスタ (BTR)
ビットタイミングレジスタ (BTR) は , プリスケーラとビットタイミングを設定しま
す。
■ ビットタイミングレジスタ (BTR) のビット構成
図 16.2-5 に , ビットタイミングレジスタ (BTR) のビット構成を示します。
図 16.2-5 ビットタイミングレジスタ (BTR) のビット構成
bit
15
14
13
12
11
10
9
8
TS2.1
TS2.0
TS1.3
TS1.2
TS1.1
TS1.0
読出し / 書込み :
初期値 :
−
(-)
TS2.2
R/W
(1)
R/W
(1)
R/W
(1)
R/W
(1)
R/W
(1)
R/W
(1)
R/W
(1)
bit
7
アドレス : 00100016H(CAN0)
6
5
4
3
2
1
0
アドレス : 00100017H(CAN0) RSJ1
RSJ0
PSC5
PSC4
PSC3
PSC2
PSC1
PSC0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
読出し / 書込み :
初期値 :
<注意事項>
このレジスタは , バス動作停止時 (HALT=1) に設定しなければなりません。
[bit14 ∼ bit12] TS2.2 ∼ TS2.0: 時間セグメント 2 設定ビット 2 ∼ 0
これらのビットは , 時間量 (TQ) の [(TS2.2 ∼ TS2.0) + 1] 周波数分割を引き起こし ,
時間セグメント 2(TSEG2) を決定します。時間セグメント 2 は , CAN 仕様のフェー
ズバッファセグメント 2(PHASE_SEG2) に相当します。
[bit11 ∼ bit8] TS1.3 ∼ TS1.0 : 時間セグメント 1 設定ビット 3 ∼ 0
これらのビットは , 時間量 (TQ) の [(TS1.3 ∼ TS1.0) + 1] 周波数分割を引き起こし ,
時間セグメント 1(TSEG1) を決定します。時間セグメント 1 は , CAN 仕様の伝播セ
グメント (PROP_SEG) とフェーズバッファセグメント 1(PHASE_SEG1) に相当しま
す。
[bit7, bit6] RSJ1, RSJ0 : 再同期ジャンプ幅設定ビット 1, 0
これらのビットは , 時間量 (TQ) の [(RSJ1 ∼ RSJ0) + 1] 周波数分割を引き起こし ,
再同期ジャンプ幅を決定します。
[bit5 ∼ bit0] PSC5 ∼ PSC0 : プリスケーラ設定ビット 5 ∼ 0
これらのビットは , 入力クロックの [(PSC5 ∼ PSC0) + 1] 周波数分割を引き起こし ,
CAN コントローラの時間量 (TQ) を決定します。
CAN 仕様 , CAN コントローラのビット時間セグメントを , それぞれ図 16.2-6 , およ
び図 16.2-7 に示します。
445
第 16 章 CAN コントローラ
図 16.2-6 CAN 仕様のビット時間セグメント
公称ビット時間
SYNC_SEG
PROP_SEG
PHASE_SEG1 PHASE_SEG2
サンプルポイント
図 16.2-7 CAN コントローラのビット時間セグメント
公称ビット時間
SYNC_SEG
TSEG1
TSEG2
サンプルポイント
入力クロック (CLK), 時間量 (TQ), ビット時間 (BT), 同期セグメント (SYNC_SEG), 時
間セグメント 1, および時間セグメント 2(TSEG1, および TSEG2), 再同期ジャンプ幅
[(RSJ1, および RSJ0) + 1] 周波数分割と PSC=PSC5 ∼ PSC0, TS1=TS1.3 ∼ TS1.0,
TS2=TS2.2 ∼ TS2.0, RSJ=RSJ1, RSJ0 の関係を以下に示します。
TQ
=(PSC + 1) × CLK
BT
= SYNC_SEG + TSEG1 + TSEG2
= (1 + (TS1 + 1) + (TS2 + 1)) × TQ
= (3 + TS1 + TS2) × TQ
RSJW = (RSJ + 1) × TQ
CAN コントローラを正しく動作させるために , 以下に示す条件を満たす必要があり
ます。
1 <= PSC <= 63 の場合 :
TSEG1 >= 2TQ
TSEG1 >= RSJW
TSEG2 >= 2TQ
TSEG2 >= RSJW
PSC = 0 の場合 :
TSEG1 >= 5TQ
TSEG2 >= 2TQ
TSEG2 >= RSJW
<注意事項>
446
CAN 仕様に定義されるビットタイミングの要件を満足するために , 追加条件を満足
する必要があります。たとえば , 伝播遅延を検討する必要があります。
第 16 章 CAN コントローラ
16.2.4
メッセージバッファ制御レジスタ
メッセージバッファ制御レジスタには , 14 種類のレジスタがあります。
■ メッセージバッファ制御レジスタの種類
14 種類のメッセージバッファ制御レジスタは , 以下のとおりです。
• メッセージバッファ有効レジスタ (BVALR)
•
IDE レジスタ (IDER)
• 送信要求レジスタ (TREQR)
• 送信 RTR レジスタ (TRTRR)
• リモートフレーム受信待ちレジスタ (RFWTR)
• 送信取消しレジスタ (TCANR)
• 送信完了レジスタ (TCR)
• 送信割込み許可レジスタ (TIER)
• 受信完了レジスタ (RCR)
• リモート要求受信レジスタ (RRTRR)
• 受信オーバランレジスタ (ROVRR)
• 受信割込み許可レジスタ (RIER)
• 受入れマスク選択レジスタ (AMSR)
• 受入れマスクレジスタ 00, 10(AMR00, AMR10)
■ メッセージバッファ有効レジスタ (BVALR)
図 16.2-8 に , メッセージバッファ有効レジスタ (BVALR) のビット構成を示します。
図 16.2-8 メッセージバッファ有効レジスタ (BVALR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 00100000H(CAN0) BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8
読出し / 書込み :
初期値 :
R/W
(0)
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
bit
アドレス : 00100001H(CAN0) BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0
読出し / 書込み :
初期値 :
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
このレジスタは , メッセージバッファ (x) の妥当性を設定するか , またはその状態を表
示します。
• 0 : メッセージバッファ (x) 無効
• 1 : メッセージバッファ (x) 有効
メッセージバッファ (x) が無効に設定されると , メッセージバッファ (x) はメッセージ
を送受信しません。
447
第 16 章 CAN コントローラ
送信要求禁止動作
送信要求を禁止するために BVAL ビットを使用しないでください。TCAN ビットを使
用してください。
送信メッセージ作成動作
送信メッセージを作成するために , ID レジスタおよび IDE レジスタの内容を変更する
メッセージバッファを BVAL ビットにより無効にする必要があります。この場合 ,
TREQ ビットが "0" かどうかの確認後 , または先行のメッセージ送信完了後 (TC=1),
BVAL ビットをリセットする必要があります (BVAL=0)
受信動作時にバッファを無効に設定すると , バッファは直ちに無効 (BVALx=0) になり
ます。受信メッセージがメッセージバッファ (x) に記憶されている場合 , メッセージ
バッファ (x) はメッセージが記憶された後に無効になります。
<注意事項>
• x は , メッセージバッファ番号 (x = 0 ∼ 15) を示します。
• ビット (BVALx) に "0" を書き込むことでメッセージバッファ (x) を無効にする場
合 , ビットが "0" に設定されるまでビット操作命令は禁止されます。
■ IDE レジスタ (IDER)
図 16.2-9 に , IDE レジスタ (IDER) のビット構成を示します。
図 16.2-9 IDE レジスタ (IDER) のビット構成
bit
15
14
13
12
11
10
9
8
IDE14
IDE13
IDE12
IDE11
IDE10
IDE9
IDE8
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
7
6
5
4
3
2
1
0
IDE6
R/W
(X)
IDE5
R/W
(X)
IDE4
R/W
(X)
IDE3
R/W
(X)
IDE2
R/W
(X)
IDE1
R/W
(X)
IDE0
R/W
(X)
アドレス : 00100018H(CAN0) IDE15
読出し / 書込み :
初期値 :
bit
アドレス : 00100019H(CAN0)
IDE7
読出し / 書込み : R/W
初期値 : (X)
このレジスタは, 送信/受信時にメッセージバッファ(x)が使用するフレームフォーマッ
トを設定します。
• 0 : 標準フレームフォーマット (11 ビット ID) が , メッセージバッファ (x) に使用さ
れています。
• 1 : 拡張フレームフォーマット (29 ビット ID) が , メッセージバッファ (x) に使用さ
れています。
<注意事項>
448
このレジスタは , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジスタ
(BVALR) の BVALx=0) のときに設定しなければなりません。バッファが有効
(BVALx=1) のときに設定すると , 不必要な受信メッセージを記憶することになりま
す。
第 16 章 CAN コントローラ
■ 送信要求レジスタ (TREQR)
図 16.2-10 に , 送信要求レジスタ (TREQR) のビット構成を示します。
図 16.2-10 送信要求レジスタ (TREQR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 00100002H(CAN0) TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8
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
7
6
5
4
3
2
1
0
アドレス : 00100003H(CAN0) TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
読出し / 書込み : R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 : (0)
このレジスタは , メッセージバッファ (x) に送信要求を設定するか , またはその状態を
表示します。
TREQx に "1" を書き込むと , メッセージバッファ (x) への送信が開始されます。リモー
トフレーム受信待ちレジスタ (RFWTR)*1 の RFWTx が "0" の場合 , 直ちに送信が開始さ
れます。しかし , RFWTx=1 の場合 , リモートフレームが受信される ( リモート要求受
信レジスタ (RRTRR)*1 の RRTRx が "1" になる ) のを待ってから , 送信が開始されます。
TREQx に "1" を書き込んだときに RRTRx がすでに "1" であった場合は , RFWTx=1 で
あっても直ちに送信が開始されます。*2
*1 :
RFWTR および TRTRR については , 「■ 送信 RTR レジスタ (TRTRR)」および
「■ リモートフレーム受信待ちレジスタ (RFWTR)」を参照してください。
*2 :
送信の取消しについては , 「■ 送信取消しレジスタ (TCANR)」および「16.2.6 イ
ンタフェース制御レジスタ (CREG)」を参照してください。
• TREQx への "0" の書込みは , 無視されます。
• リードモディファイライト命令が実行されたときに , "0" が読み出されます。
• 送信動作完了時の ("0" への ) クリアと , "1" を書き込むことによる設定が同時に起
こった場合 , クリアが優先されます。
• 複数のビットに "1" を書き込むと , 小さい番号のメッセージバッファ(x) から順に送
信が実行されます。
• 送信が保留されているとき , TREQx は "1" であり , 送信が完了するか , または取り消
されると , "0" になります。
449
第 16 章 CAN コントローラ
■ 送信 RTR レジスタ (TRTRR)
図 16.2-11 に , 送信 RTR レジスタ (TRTRR) のビット構成を示します。
図 16.2-11 送信 RTR レジスタ (TRTRR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 0010001AH(CAN0) TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8
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
7
6
5
4
3
2
1
0
アドレス : 0010001BH(CAN0) TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
読出し / 書込み : R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 : (0)
このレジスタは , メッセージバッファ (x) により , 送信時の RTR(Remote Transmission
Request : リモートトランスミッションリクエスト ) ビットを設定します。
• 0 : データフレーム送信
• 1 : リモートフレーム送信
■ リモートフレーム受信待ちレジスタ (RFWTR)
図 16.2-12 に , リモートフレーム受信待ちレジスタのビット構成を示します。
図 16.2-12 リモートフレーム受信待ちレジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 0010001CH(CAN0) RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8
読出し / 書込み :
初期値 :
bit
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
7
6
5
4
3
2
1
0
アドレス : 0010001DH(CAN0) RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0
読出し / 書込み :
初期値 :
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
このレジスタは , データフレーム送信要求が設定されたとき ( 送信要求レジスタ
(TREQR) の TREQx が "1", および送信 RTR レジスタ (TRTRR) の TRTRx が "0") に , 送
信を開始するための条件を設定します。
• 0 : 直ちに送信が開始されます
• 1 : リモートフレームが受信される ( リモート要求受信レジスタ (RRTRR) の RRTRx
が "1" になる ) のを待ってから , 送信が開始されます。
<注意事項>
450
• 送信要求が設定されたときに RRTRx がすでに "1" であった場合 , 直ちに送信が
開始されます。
• リモートフレーム送信については , RFWTx を "1" に設定しないでください。
第 16 章 CAN コントローラ
■ 送信取消しレジスタ (TCANR)
図 16.2-13 に , 送信取消しレジスタ (TCANR) のビット構成を示します。
図 16.2-13 送信取消しレジスタ (TCANR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 00100004H(CAN0) TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8
W
W
W
W
W
W
W
W
読出し / 書込み :
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 : (0)
bit
7
6
5
4
3
2
1
0
アドレス : 00100005H(CAN0) TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0
W
W
W
W
W
W
W
W
読出し / 書込み :
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 : (0)
TCANx に "1" を書き込むと , このレジスタはメッセージバッファ(x) への送信の保留要
求を取り消します。
送信が完了すると , 送信要求レジスタ (TREQR) の TREQx が "0" になります。TCANx
への "0" の書込みは無視されます。
これは書込み専用レジスタであり , 読出し時の値は常に "0" です。
■ 送信完了レジスタ (TCR)
図 16.2-14 に , 送信完了レジスタ (TCR) のビット構成を示します。
図 16.2-14 送信完了レジスタ (TCR) のビット構成
bit
15
14
13
12
11
10
9
8
TC14
R/W
(0)
TC13
R/W
(0)
TC12
R/W
(0)
TC11
R/W
(0)
TC10
R/W
(0)
TC9
R/W
(0)
TC8
R/W
(0)
7
6
5
4
3
2
1
0
TC7
R/W
(0)
TC6
R/W
(0)
TC5
R/W
(0)
TC4
R/W
(0)
TC3
R/W
(0)
TC2
R/W
(0)
TC1
R/W
(0)
TC0
R/W
(0)
アドレス : 00100006H(CAN0) TC15
読出し / 書込み : R/W
初期値 : (0)
bit
アドレス : 00100007H(CAN0)
読出し / 書込み :
初期値 :
メッセージバッファ (x) による送信が完了すると , 対応する TCx は "1" になります。
送信完了割込み許可レジスタ (TIER) の TIEx が "1" の場合は , 割込みが発生します。
TCx=0 となる条件は , 次のとおりです。
• TCx に "0" を書き込む。
• 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。
送信完了後 , TCx に "0" を書き込んで設定を "0" にします。TCx への "1" の書込みは無
視されます。リードモディファイライト命令が実行されたときに , "1" が読み出されま
す。
<注意事項>
送信動作完了時の ("1" への ) 設定と , "0" を書き込むことによるクリアが同時に起
こった場合 , 設定の方が優先されます。
451
第 16 章 CAN コントローラ
■ 送信割込み許可レジスタ (TIER)
図 16.2-15 に , 送信割込み許可レジスタ (TIER) のビット構成を示します。
図 16.2-15 送信割込み許可レジスタ (TIER) のビット構成
bit
15
アドレス : 0010001EH(CAN0) TIE15
読出し / 書込み : R/W
初期値 : (0)
bit
14
13
12
11
10
9
8
TIE14
R/W
(0)
TIE13
R/W
(0)
TIE12
R/W
(0)
TIE11
R/W
(0)
TIE10
R/W
(0)
TIE9
R/W
(0)
TIE8
R/W
(0)
7
アドレス : 0010001FH(CAN0)
TIE7
読出し / 書込み : R/W
初期値 : (0)
6
5
4
3
2
1
0
TIE6
R/W
(0)
TIE5
R/W
(0)
TIE4
R/W
(0)
TIE3
R/W
(0)
TIE2
R/W
(0)
TIE1
R/W
(0)
TIE0
R/W
(0)
このレジスタは , メッセージバッファ(x) による送信割込みを許可 , または禁止します。
送信割込みは, 送信完了時(送信完了レジスタ(TCR)のTCxが"1"のとき)に発生します。
• 0 : 送信割込み禁止
• 1 : 送信割込み許可
■ 受信完了レジスタ (RCR)
図 16.2-16 に , 受信完了レジスタ (RCR) のビット構成を示します。
図 16.2-16 受信完了レジスタ (RCR) のビット構成
bit
14
13
12
11
10
9
8
アドレス : 00100008H(CAN0) RC15
RC14
RC13
RC12
RC11
RC10
RC9
RC8
R/W
(0)
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
アドレス : 00100009H(CAN0)
RC7
RC6
RC5
RC4
RC3
RC2
RC1
RC0
読出し / 書込み :
初期値 :
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
読出し / 書込み :
初期値 :
bit
15
メッセージバッファ(x) で受信メッセージの記憶が完了すると , RCx は "1" になります。
受信完了割込み許可レジスタ (RIER) の RIEx が "1" の場合に , 割込みが発生します。
RCx=0 となる条件は , 次のとおりです。
• RCx に "0" を書き込む。
受信メッセージの記憶が完了すると , RCx に "0" を書き込んで設定を "0" にします。RCx
への "1" の書込みは無視されます。リードモディファイライト命令が実行されたとき
に , "1" が読み出されます。
<注意事項>
452
受信動作完了時の ("1" への ) 設定と , "0" を書き込むことによるクリアが同時に起
こった場合は , 設定の方が優先されます。
第 16 章 CAN コントローラ
■ リモート要求受信レジスタ (RRTRR)
図 16.2-17 に , リモート要求受信レジスタ (RRTRR) のビット構成を示します。
図 16.2-17 リモート要求受信レジスタ (RRTRR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 0010000AH(CAN0) RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8
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
7
6
5
4
3
2
1
0
アドレス : 0010000BH(CAN0) RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
読出し / 書込み : R/W
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値 : (0)
メッセージバッファ (x) で受信リモートフレームの記憶が完了すると , RRTRx は (RCx
設定が "1" になるのと同時に )"1" になります。
RRTRx=0 となる条件は , 次のとおりです。
• RRTRx に "0" を書き込む。
• メッセージバッファ (x) での受信データフレーム記憶後 (RCx 設定が "1" になるのと
同時 )。
• メッセージバッファ(x) による送信が完了 ( 送信完了レジスタ (TCR) の TCx が "1")。
RRTRx への "1" の書込みは無視されます。リードモディファイライト命令が実行され
たときに , "1" が読み出されます。
<注意事項>
"1" への設定と , "0" を書き込むことによるクリアが同時に起こった場合は , 設定の
方が優先されます。
■ 受信オーバランレジスタ (ROVRR)
図 16.2-18 に , 受信オーバランレジスタ (ROVRR) のビット構成を示します。
図 16.2-18 受信オーバランレジスタ (ROVRR) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 0010000CH(CAN0) ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8
読出し / 書込み :
初期値 :
bit
R/W
(0)
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
アドレス : 0010000DH(CAN0) ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0
読出し / 書込み :
初期値 :
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
メッセージバッファ (x) への受信メッセージの記憶完了時に , 受信完了レジスタ (RCR)
の RCx が "1" である場合 , ROVRx は "1" になり , 受信がオーバランしたことを示します。
ROVRx に "0" を書き込むと , ROVRx が "0" になります。ROVRx への "1" の書込みは
453
第 16 章 CAN コントローラ
無視されます。受信がオーバランしたことを確認後 , ROVRx に "0" を書き込んで設定
を "0" にします。リードモディファイライト命令が実行されたときに , "1" が読み出さ
れます。
<注意事項>
"1" への設定と , "0" を書き込むことによるクリアが同時に起こった場合は , 設定の
方が優先されます。
■ 受信割込み許可レジスタ (RIER)
図 16.2-19 に , 受信割込み許可レジスタ (RIER) のビット構成を示します。
図 16.2-19 受信割込み許可レジスタ (RIER) のビット構成
bit
14
13
12
11
10
9
8
アドレス : 0010000EH(CAN0) RIE15
RIE14
RIE13
RIE12
RIE11
RIE10
RIE9
RIE8
R/W
(0)
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
RIE6
R/W
(0)
RIE5
R/W
(0)
RIE4
R/W
(0)
RIE3
R/W
(0)
RIE2
R/W
(0)
RIE1
R/W
(0)
RIE0
R/W
(0)
読出し / 書込み :
初期値 :
bit
15
アドレス : 0010000FH(CAN0)
RIE7
読出し / 書込み : R/W
初期値 : (0)
このレジスタは , メッセージバッファ(x) による受信割込みを許可 , または禁止します。
受信割込みは, 受信完了時(受信完了レジスタ(RCR)のRCxが"1"のとき)に発生します。
• 0 : 受信割込み禁止
• 1 : 受信割込み許可
454
第 16 章 CAN コントローラ
■ 受入マスク選択レジスタ (AMSR)
図 16.2-20 に , 受入マスク選択レジスタ (AMSR) のビット構成を示します。
図 16.2-20 受入マスク選択レジスタ (AMSR) のビット構成
BYTE0
bit15
14
13
12
11
10
9
8
アドレス : 00100020H(CAN0) AMS7.1 AMS7.0 AMS6.1 AMS6.0 AMS5.1 AMS5.0 AMS4.1 AMS4.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)
BYTE1
bit7
6
5
4
3
2
1
0
アドレス : 00100021H(CAN0) AMS3.1 AMS3.0 AMS2.1 AMS2.0 AMS1.1 AMS1.0 AMS0.1 AMS0.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)
BYTE2
bit15
14
13
12
11
10
9
8
アドレス : 00100022H(CAN0) AMS15.1 AMS15.0 AMS14.1 AMS14.0 AMS13.1 AMS13.0 AMS12.1 AMS12.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)
BYTE3
bit7
6
5
4
3
2
1
0
アドレス : 00100023H(CAN0) AMS11.1 AMS11.0 AMS10.1 AMS10.0 AMS9.1 AMS9.0 AMS8.1 AMS8.0
読出し / 書込み :
初期値 :
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
このレジスタは , 受信メッセージ ID とメッセージバッファ (x)ID を比較するためのマ
スク ( 受入マスク ) を選択します。
表 16.2-6 に , 受入マスク選択の設定内容を示します。
表 16.2-6 受入マスクの選択
<注意事項>
AMSx.1
AMSx.0
0
0
フルビット比較
0
1
フルビットマスク
1
0
受入マスクレジスタ 0(AMR0)
1
1
受入マスクレジスタ 1(AMR1)
受入マスク
AMSx.1, および AMSx.0 は , メッセージバッファ (x) が無効 ( メッセージバッファ有
効レジスタ (BVALR) の BVALx が "0") のときに設定しなければなりません。バッ
ファが有効 (BVALx=1) のときに設定すると , 不必要な受信メッセージを記憶するこ
とになります。
455
第 16 章 CAN コントローラ
■ 受入マスクレジスタ 0x, 1x(AMR0x, AMR1x)
図 16.2-21 に , 受入マスクレジスタ 0x, 1x(AMR0x, AMR1x) のビット構成を示します。
図 16.2-21 受入マスクレジスタ 0x, 1x(AMR0x, AMR1x) のビット構成
AMR0x BYTE1
bit15
アドレス : 00100024H(CAN0) AM20
読出し / 書込み : R/W
初期値 : (X)
AMR0x BYTE0
bit7
アドレス : 00100025H(CAN0) AM28
読出し / 書込み : R/W
初期値 : (X)
AMR0x BYTE3
bit15
アドレス : 00100026H(CAN0)
AM4
読出し / 書込み : R/W
初期値 : (X)
AMR0x BYTE2
bit7
AMR1x BYTE0
11
10
9
8
AM16
R/W
(X)
AM15
R/W
(X)
AM14
R/W
(X)
AM13
R/W
(X)
6
5
4
3
2
1
0
AM27
R/W
(X)
AM26
R/W
(X)
AM25
R/W
(X)
AM24
R/W
(X)
AM23
R/W
(X)
AM22
R/W
(X)
AM21
R/W
(X)
14
13
12
11
10
9
8
AM3
R/W
(X)
AM2
R/W
(X)
AM1
R/W
(X)
AM0
R/W
(X)
−
(-)
−
(-)
−
(-)
5
4
3
2
1
0
AM10
R/W
(X)
AM9
R/W
(X)
AM8
R/W
(X)
AM7
R/W
(X)
AM6
R/W
(X)
AM5
R/W
(X)
14
13
12
11
10
9
8
AM19
AM18
AM17
AM16
AM15
AM14
AM13
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
6
5
4
3
2
1
0
AM27
R/W
(X)
AM26
R/W
(X)
AM25
R/W
(X)
AM24
R/W
(X)
AM23
R/W
(X)
AM22
R/W
(X)
AM21
R/W
(X)
bit15
アドレス : 00100029H(CAN0) AM28
読出し / 書込み : R/W
初期値 : (X)
AMR1x BYTE3
bit15
14
13
12
11
10
9
8
アドレス : 0010002AH(CAN0)
AM4
AM3
AM2
AM1
AM0
読出し / 書込み :
初期値 :
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
−
(-)
−
(-)
−
(-)
bit7
6
5
4
3
2
1
0
AM11
AM10
AM9
AM8
AM7
AM6
AM5
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
AMR1x BYTE2
アドレス : 0010002BH(CAN0) AM12
読出し / 書込み :
初期値 :
456
12
AM17
R/W
(X)
6
アドレス : 00100028H(CAN0) AM20
読出し / 書込み :
初期値 :
13
AM18
R/W
(X)
AM11
R/W
(X)
アドレス : 00100027H(CAN0) AM12
読出し / 書込み : R/W
初期値 : (X)
AMR1x BYTE1
14
AM19
R/W
(X)
R/W
(X)
第 16 章 CAN コントローラ
AMR0x と AMR1x の 2 つの受入マスクレジスタがあります。これらは両方とも , 標準
フレームフォーマット , または拡張フレームフォーマットのいずれでも使用できます。
AM28 ∼ AM18(11 ビット ) は標準フレームフォーマットの受入マスクに使用され , AM28 ∼
AM0(29 ビット ) は拡張フレームフォーマットの受入マスクに使用されます。
• 0 : Compare
- このビットに対応する受入コード ( 受信メッセージ ID と比較するための ID レジ
スタ IDRx) のビットと , 受信メッセージ ID のビットを比較します。一致しない場
合 , メッセージは受信されません。
• 1 : Mask
- このビットに対応する受入コード ID レジスタ (IDRx) のビットをマスクします。
受信メッセージ ID のビットとの比較は行われません。
<注意事項>
AMR0x と AMR1x は , AMR0x と AMR1x を選択しているすべてのメッセージバッ
ファ (x) が , 無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") の
ときに設定しなければなりません。バッファが有効 (BVALx が "1") のときに設定す
ると , 不必要な受信メッセージを記憶することになります。
457
第 16 章 CAN コントローラ
16.2.5
メッセージバッファ
メッセージバッファは 16 個あり , 1 つのメッセージバッファは以下の 3 種類のレジ
スタから構成されます。
• ID レジスタ (IDRx)
• DLC レジスタ (DLCRx)
• データレジスタ (DTRx)
■ メッセージバッファの機能
メッセージバッファのおもな機能は , 以下のとおりです。
• メッセージバッファ (x) は , 送信と受信の両方で使用されます。
• 小さい番号のメッセージバッファに , 高い優先順位が割り当てられます。
- 送信時に , 複数のメッセージバッファに対して送信要求が行われると , 一番小さ
い番号のメッセージバッファから順に送信が実行されます (「16.3 CAN コント
ローラの動作」の「■ 送信動作」参照 )。
- 受信時に , 受信メッセージ ID が複数のメッセージバッファの受入フィルタ ( 受信
メッセージの受入マスク ID とメッセージバッファを比較する機構 ) を通過する
と , 受信メッセージは一番小さい番号のメッセージバッファに記憶されます
(「16.3 CAN コントローラの動作」の「■ 送信動作」参照 )。
• 複数のメッセージバッファに同じ受入フィルタを設定すると , それらのメッセージ
バッファを多重メッセージバッファとして使用することができます。これにより ,
受信時間に余裕を持たせることができます (「16.4 使用手順」の「■多重メッセー
ジバッファ構成の設定」参照 )。
<注意事項>
• メッセージバッファ , および汎用 RAM 領域への書込み動作は , アドレスだけで
あっても , ワードで行わなければなりません。バイトで書込み動作を行うと , 下
位バイトへの書込み時に , 未定義データを上位バイトに書き込むことになりま
す。上位バイトへの書込みは無視されます。
• メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0"( 無効 ) の場合 ,
メッセージバッファ x(IDRx, DLCRx, および DTRx) を汎用 RAM として使用する
ことができます。ただし , 受信動作時に , 待ち時間が最大 64 マシンサイクルに
なることがあります。同じことが , 汎用 RAM 領域 (CAN0 : アドレス
00001A00H ∼ 00001A1FH, および CAN1 : アドレス 00001B00H ∼ 00001B1FH)
にも当てはまります。
458
第 16 章 CAN コントローラ
■ ID レジスタ x(x=0 ∼ 15)(IDRx)
図 16.2-22 に , ID レジスタ x(x=0 ∼ 15)(IDRx) のビット構成を示します。
図 16.2-22 ID レジスタ x(x=0 ∼ 15)(IDRx) のビット構成
BYTE1
bit15
アドレス : 0010004CH+4X(CAN0)
ID20
読出し / 書込み : R/W
初期値 : (X)
BYTE0
bit7
アドレス : 0010004DH+4X(CAN0)
ID28
読出し / 書込み : R/W
初期値 : (X)
BYTE3
アドレス : 0010004EH+4X(CAN0)
読出し / 書込み :
初期値 :
BYTE2
13
12
11
10
9
8
ID18
R/W
(X)
ID17
R/W
(X)
ID16
R/W
(X)
ID15
R/W
(X)
ID14
R/W
(X)
ID13
R/W
(X)
6
5
4
3
2
1
0
ID27
R/W
(X)
ID26
R/W
(X)
ID25
R/W
(X)
ID24
R/W
(X)
ID23
R/W
(X)
ID22
R/W
(X)
ID21
R/W
(X)
bit15
14
13
12
11
10
9
8
ID4
R/W
(X)
ID3
R/W
(X)
ID2
R/W
(X)
ID1
R/W
(X)
ID0
R/W
(X)
−
(-)
−
(-)
−
(-)
bit7
アドレス : 0010004FH+4X(CAN0)
14
ID19
R/W
(X)
ID12
読出し / 書込み : R/W
初期値 : (X)
6
5
4
3
2
1
0
ID11
R/W
(X)
ID10
R/W
(X)
ID9
R/W
(X)
ID8
R/W
(X)
ID7
R/W
(X)
ID6
R/W
(X)
ID5
R/W
(X)
これは , メッセージバッファ (x) の ID レジスタです。
標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x)
を使用する場合は , ID28 ∼ ID18 の 11 ビットを使用します。拡張フレームフォーマッ
ト (IDEx=1) でメッセージバッファを使用する場合は , ID28 ∼ ID0 の 29 ビットを使用
します。
ID28 ∼ ID0 には , 以下の機能があります。
• 受入コード ( 受信メッセージ ID と比較するための ID) の設定
• 送信メッセージ ID の設定 : 標準フレームフォーマットでは , ID28 ∼ ID22 のすべ
てのビットに "1" を設定することは禁止されています。
• 受信メッセージ ID の記憶 : 受信メッセージ ID は , 受信マスクビットにも記憶され
ます。標準フレームフォーマットでは , ID17 ∼ ID0 は
未定義です。
<注意事項>
• このレジスタへの書込み動作は , ワードで行わなければなりません。バイトで書
込み動作を行うと , 下位バイトへの書込み時に , 未定義データを上位バイトに書
き込むことになります。上位バイトへの書込みは無視されます。
• このレジスタは , メッセージバッファ (x) が無効 ( メッセージバッファ有効レジ
スタ (BVALR) の BVALx が "0") のときに設定します。バッファが有効 (BVALx が
"1") のときに設定すると , 不必要な受信メッセージを記憶することになります。
459
第 16 章 CAN コントローラ
■ DLC レジスタ x(x=0 ∼ 15)(DLCRx)
図 16.2-23 に , DLC レジスタ x(x=0 ∼ 15)(DLCRx) のビット構成を示します。
図 16.2-23 DLC レジスタ x(x=0 ∼ 15)(DLCRx) のビット構成
bit
アドレス : 0010008DH+2X(CAN0)
読出し / 書込み :
初期値 :
7
−
(-)
6
−
(-)
5
−
(-)
4
3
2
1
0
−
(-)
DLC3
R/W
(X)
DLC2
R/W
(X)
DLC1
R/W
(X)
DLC0
R/W
(X)
メッセージバッファ x の DLC レジスタです。
● 送信時機能
•
データフレームを送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときは ,
送信メッセージのデータ長 ( バイトカウント ) を設定します。
• リモートフレームを送信するときは (TRTRx が "1"), 要求メッセージのデータ長 ( バ
イトカウント ) を設定します。
<注意事項>
"0000" ∼ "1000"(0 ∼ 8 バイト ) 以外の設定は , 禁止されています。
● 受信時機能
• データフレームを受信する ( リモートフレーム要求受信レジスタ (RRTRR) の RRTRx
が "0") ときは , 受信メッセージのデータ長 ( バイトカウント ) を記憶します。
•
リモートフレームを受信するときは (RRTRx が "1"), 要求メッセージのデータ長 ( バ
イトカウント ) を記憶します。
<注意事項>
460
このレジスタへの書込み動作は , ワードで行わなければなりません。バイトで書込
み動作を行うと , 下位バイトへの書込み時に未定義データを上位バイトに書き込ん
だり , 上位バイトへの書込み時に未定義データを下位バイトに書き込んだりするこ
とになります。
第 16 章 CAN コントローラ
■ データレジスタ x(x=0 ∼ 15)(DTRx)
図 16.2-24 に , データレジスタ x(x=0 ∼ 15)(DTRx) のビット構成を示します。
図 16.2-24 データレジスタ x(x=0 ∼ 15)(DTRx) のビット構成
BYTE1
アドレス : 001000ACH+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE0
アドレス : 001000ADH+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE3
アドレス : 001000AEH+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE2
アドレス : 001000AFH+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE5
アドレス : 001000B0H+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE4
アドレス : 001000B1H+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE7
アドレス : 001000B2H+8X(CAN0)
読出し / 書込み :
初期値 :
BYTE6
アドレス : 001000B3H+8X(CAN0)
読出し / 書込み :
初期値 :
bit15
14
13
12
11
10
9
8
D7
R/W
(X)
D6
R/W
(X)
D5
R/W
(X)
D4
R/W
(X)
D3
R/W
(X)
D2
R/W
(X)
D1
R/W
(X)
D0
R/W
(X)
bit7
6
5
4
3
2
1
0
D7
R/W
(X)
D6
R/W
(X)
D5
R/W
(X)
D4
R/W
(X)
D3
R/W
(X)
D2
R/W
(X)
D1
R/W
(X)
D0
R/W
(X)
bit15
14
13
12
11
10
9
8
D7
R/W
(X)
D6
R/W
(X)
D5
R/W
(X)
D4
R/W
(X)
D3
R/W
(X)
D2
R/W
(X)
D1
R/W
(X)
D0
R/W
(X)
bit7
6
5
4
3
2
1
0
D7
R/W
(X)
D6
R/W
(X)
D5
R/W
(X)
D4
R/W
(X)
D3
R/W
(X)
D2
R/W
(X)
D1
R/W
(X)
D0
R/W
(X)
bit15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
6
5
4
3
2
1
0
D7
R/W
(X)
D6
R/W
(X)
D5
R/W
(X)
D4
R/W
(X)
D3
R/W
(X)
D2
R/W
(X)
D1
R/W
(X)
D0
R/W
(X)
bit15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
データレジスタ x(x=0 ∼ 15)(DTRx) は , メッセージバッファ(x) のデータレジスタです。
このレジスタは , データフレームの送受信にのみ使用され , リモートフレームの送受信
には使用されません。
461
第 16 章 CAN コントローラ
• 送信メッセージデータ (0 ∼ 8 バイトのうち任意 ) を設定します。
- データは , MSB から始まって , BYTE0, BYTE1, ..., BYTE7 の順で送信されます。
•
受信メッセージデータを記憶します。
- データは , MSB から始まって , BYTE0, BYTE1, ..., BYTE7 の順で記憶されます。
受信メッセージデータが 8 バイト未満であっても , データレジスタ (DTRx) の残
りのバイトにデータが記憶され , それらは未定義になります。
<注意事項>
462
このレジスタへの書込み動作は , ワードで行わなければなりません。バイトで書込
み動作を行うと , 下位バイトへの書込み時に , 未定義データを上位バイトに書き込
むことになります。上位バイトへの書込みは無視されます。
第 16 章 CAN コントローラ
インタフェース制御レジスタ (CREG)
16.2.6
インタフェース制御レジスタ (CREG) は , CANCLK, およびユーザロジックバスク
ロック (CLKT) の異なるクロックが存在する場合に , CAN 送信 / 受信動作クロック ,
および CAN ユーザロジックバス ( 外部バス ) へのアクセスを構成するためのもので
す。
「第 5 章 クロック生成とデバイス状態」も参照してください。
<注意事項>
CANCLK プリスケーラ値は , クロックモジュレータの CMCR レジスタによって設
定されます。CANCLK は , CAN モジュール内でさらに 2 で割られます。
■ インタフェース制御レジスタ (CREG)
インタフェース制御レジスタ (CREG) を適正に動作させるためには , CAN コントロー
ラに接続されたユーザロジックバスを , チップ選択領域 7, 16 ビットバスアクセス , 1
ウェイトステート , および RDY 許可でプログラムしなければなりません。
CREG 設定のデフォルトは , ユーザロジックバスクロックを CAN レジスタアクセスに
使用し , CANCLK を同期許可の状態で CAN 送信 / 受信動作クロックとして使用します。
ブート ROM を用いた設定は , ユーザロジックバスクロックを同期禁止の状態で CAN
クロックとして使用します。
図 16.2-25 に , インタフェース制御レジスタ (CREG) のビット構成を示します。
図 16.2-25 インタフェース制御レジスタ (CREG) のビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 0010012CH(CAN0) DTR_W DTR_B IDR_W IDR_B AMR_W AMR_B AMS_W AMS_B
読出し / 書込み :
初期値 / ブート ROM 値 :
bit
R/W
(0)
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
アドレス : 0010012DH(CAN0) E_INT
読出し / 書込み : R/W
初期値 / ブート ROM 値 : (0)
S_INT C_INV
R/W
R/W
(0)
(0)
L_INV C_CLK L_CLK SYNCH CDSBLE
R/W
R/W
R/W
R/W
R/W
(0)
(0)
(0)
(0/1)
(0)
[bit15 ∼ bit8] バイト順序
これらのビットは , レジスタ AMS, AMR0x, AMR1x, IDRx[10:0], および DTRx[15:0]
のバイト順序を変更するために使用できます。
バイト順序変更の例を , 図 16.2-26 に示します。
463
第 16 章 CAN コントローラ
図 16.2-26 バイト順序変更の例
xxx_B=1,およびxxx_W=0である場合は,バイト順序は次のように変更されます。
バイト0
バイト1
バイト2
バイト3
バイト1
バイト0
バイト3
バイト2
xxx_W=1,およびxxx_B=0である場合は,バイト順序は次のように変更されます。
バイト0
バイト1
バイト2
バイト3
バイト2
バイト3
バイト0
バイト1
xxx_W=1,およびxxx_B=1である場合は,バイト順序は次のように変更されます。
バイト0
バイト1
バイト2
バイト3
バイト3
バイト2
バイト1
バイト0
[bit7 ∼ bit4] E_INT, S_INT, C_INV, L_INV
これらのビットは , 特殊な CPU 構成に使用するためのものです。これらのビットを
初期値から変更すると , 適正な動作は保証されません。
[bit3, bit2] C_CLK, L_CLK
これらのビットは , CAN ユーザロジックバスアクセス , および CAN 送信 / 受信動作
のためのクロックを選択します。
表 16.2-7 に , クロック選択の設定内容を示します。
表 16.2-7 クロック選択の設定内容
C_CLK
L_CLK
モード
0
0
CANCLK (2 で分周 ) は CAN 動作に使用され , CLKT はユーザロジックバスに
接続された CAN レジスタへのアクセスに使用されます。同期モード
(SYNCH=0) を使用することをお勧めします。
0
1
テストのための予備です。
1
0
テストのための予備です。
1
1
テストのための予備です。
[bit1] SYNCH : 同期許可ビット
CPU のメインクロック , およびユーザロジックバスクロックの同期を許可 , または
禁止します。
• 0 : 同期許可
• 1 : 同期禁止
[bit0] CDSBLE : クロック禁止ビット
CAN クロック , および CAN バスの動作を許可 , または禁止します。
• 0 : クロック , および CAN バスの動作許可
• 1 : クロック , および CAN バスの動作禁止
<注意事項>
464
• ユーザロジックバスクロックを用いた CAN 動作周波数のために , ブート ROM
設定を使用できます。
• CAN プリスケーラレジスタ (BTR:PSC[5:0]) によって分周可能な CAN 動作周波
数は , 常に選択クロックであり , その周波数は "2" で分周されます。
第 16 章 CAN コントローラ
16.3
CAN コントローラの動作
CAN コントローラの動作として , 送信動作 , および受信動作を説明します。
■ 送信動作
送信の開始から送信の終了までを , 以下に説明します。
送信動作のフローチャートを , 図 16.3-1 に示します。
● 送信の開始
• 送信要求レジスタ (TREQR) の TREQx に "1" を書き込むと , メッセージバッファ (x)
による送信が開始されます。このとき , TREQx は "1" になり , 送信完了レジスタ
(TCR) の TCx は "0" になります。
• リモートフレーム受信待ちレジスタ (RFWTR) の RFWTx が "0" の場合は , 直ちに送
信が開始されます。RFWTx が "1" の場合 , リモートフレームが受信されて ( リモー
ト要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) から , 送信が開始されます。
● 送信
• 複数のメッセージバッファに対して送信要求が行われる ( 複数の TREQx が "1") と ,
一番小さい番号のメッセージバッファから順に送信が実行されます。
• CAN バスへのメッセージ送信 ( 送信出力端子 TX による ) は , バスがアイドル状態
のときに開始されます。
•
送信 RTR レジスタ (TRTRR) の TRTRx が "0" の場合 , データフレームが送信されま
す。TRTRx が "1" の場合 , リモートフレームが送信されます。
• CAN バス上でメッセージバッファと別の CAN コントローラとの送信が重なり , 調
停が失敗した場合 , または送信時にエラーが発生した場合は , メッセージバッファ
はバスがアイドル状態になるまで待ち , 送信が完了するまで再送を繰り返します。
● 送信要求の取消し
•
送信取消しレジスタ (TCANR) による取消し
- 送信保留時に送信を実行しなかったメッセージバッファ (x) に対する送信要求は ,
送信取消しレジスタ (TCANR) の TCANx に "1" を書き込むことによって取り消す
ことができます。取消しが完了すると , TREQx は "0" になります。
• 受信メッセージの記憶による取消し
- 送信要求にもかかわらず送信を実行しなかったメッセージバッファ (x) は , 受信
も実行します。データフレームの送信要求 (TRTRx=0, または TREQx=1) にもかか
わらず , メッセージバッファ(x) が送信を実行しなかった場合は , 受入フィルタを
通過した受信データフレームが記憶された後 , 送信要求が取り消されます
(TREQx=0)*1。
- リモートフレーム送信要求 (TRTRx=1, または TREQx=1) にもかかわらず , メッ
セージバッファ (x) が送信を実行しなかった場合は , 受入フィルタを通過した受
信リモートフレームが記憶された後 , 送信要求が取り消されます (TREQx=0)*2。
*1 : 送信要求は , リモートフレームの記憶によっては取り消されません (TREQx=1 は
不変 )。
*2 : 送信要求は , データフレームまたはリモートフレームのいずれの記憶によっても
取り消されます。
465
第 16 章 CAN コントローラ
● 送信の終了
送信が終了すると , RRTRx が "0", TREQx が "0", 送信完了レジスタ (TCR) の TCx が "1"
になります。
送信完了割込みが許可されている場合 ( 送信完了割込み許可レジスタ (TIER) の TIEx が
"1") は , 割込みが発生します。
図 16.3-1 送信動作フローチャート
送信要求
(TREQx
:= 1)
TCx := 0
0
TREQx ?
1
0
RFWTx ?
1
0
RRTRx ?
1
上記の条件を満たす別のメッセージが存在
する場合, 一番小さい番号のメッセージ
バッファを選択します。
バスはアイドル
状態ですか?
NO
YES
0
1
TRTRx ?
データフレームが送信されました。
リモートフレームが送信されました。
NO
送信は完了しましたか?
YES
TCANx ?
RRTRx := 0
TREQx := 0
TCx
:= 1
TIEx
?
1
TREQx
1
0
送信完了割込みが起こります。
送信終了
466
:= 0
0
第 16 章 CAN コントローラ
■ 受信動作
受信の開始から受信の終了までを , 以下に説明します。
受信動作のフローチャートを , 図 16.3-3 に示します。
● 受信の開始
受信は , データフレーム , またはリモートフレームの開始 (SOF) が CAN バス上で検出
されると開始されます。
● 受入フィルタ
標準フレームフォーマットの受信メッセージは , 標準フレームフォーマットのメッ
セージバッファ (x) セット (IDE レジスタ (IDER) の IDEx=0) と比較されます。拡張フ
レームフォーマットの受信メッセージは , 拡張フレームフォーマットのメッセージ
バッファ (x) セット (IDEx=1) と比較されます。
受入マスクによる Compare に設定されたすべてのビットが , 受信メッセージ ID と受入
コード ( 受信メッセージ ID と比較するための ID レジスタ (IDRx)) の比較後に合致する
と , 受信メッセージはメッセージバッファ (x) の受入フィルタを通過します。
● 受信メッセージの記憶
受信メッセージは , 受入フィルタを通過した ID も含めてメッセージバッファ x に記憶
されます。データフレームを受信すると , 受信メッセージは ID レジスタ (IDRx), DLC
レジスタ (DLCRx), およびデータレジスタ (DTRx) に記憶されます。
受信メッセージデータが 8 バイト未満であっても , データは DTRx の残りのバイトに記
憶され , その値は未定義になります。
リモートフレームを受信すると受信メッセージは ID レジスタ (IDRx) と DLC レジスタ
(DLCRx) だけに記憶され , DTR レジスタ (DTRx) は不変のまま残ります。
受入フィルタを通過した ID を含むメッセージバッファが複数存在する場合は , 以下の
規則に従って , 受信メッセージを記憶するメッセージバッファ x が決められます。
• メッセージバッファ x(x=0 ∼ 15) の優先順位は , 番号が小さいほど高くなります。
メッセージバッファ 0 には最も高い優先順位が与えられ , メッセージバッファ 15 に
は最も低い優先順位が与えられます。
•
基本的に , 受信完了レジスタ (RCR) の RCx ビットが "0" に設定されているメッセー
ジバッファの方が , 受信メッセージの記憶の際に優先されます。
• 受信マスク選択レジスタ (AMSR) のビットが All Bits Compare(AMSx.1, および
AMSx.0 ビットが "00" に設定されているメッセージバッファについて ) に設定され
ている場合 , 受信メッセージは RCR の RCx ビットの設定に関係なく記憶されます。
•
RCR の RCx ビットが "0" に設定されているか , または AMSR セットのビットが All
Bits Compare に設定されているメッセージバッファが存在する場合 , 受信メッセー
ジは一番小さい番号の(最も優先順位が高い)メッセージバッファxに記憶されます。
• 上記のようなメッセージバッファが存在しない場合 , 受信メッセージは小さい番号
のメッセージバッファ x に記憶されます。
図 16.3-2 に , 受信メッセージが記憶されるメッセージバッファ x を決める際のフロー
チャートを示します。
467
第 16 章 CAN コントローラ
図 16.3-2 メッセージバッファ (x) を決める際のフローチャート
開始
RCxが0に設定されているか, あるいはAMSx.1
およびAMSx.0が00に設定されているメッセー
ジバッファが見つかりましたか?
NO
YES
一番小さい番号のメッセージ
バッファを選択します。
一番小さい番号のメッセージ
バッファを選択します。
終了
メッセージバッファは , 以下に示す順に数字の昇順に並べなければなりません。
1. AMSR のビットが All Bits Compare に設定されているメッセージバッファ
2. AMR0x, または AMR1x を使用しているメッセージバッファ
3. AMSR のビットが All Bits Mask に設定されているメッセージバッファ
● 受信オーバラン
受信オーバランが発生すると , 受信メッセージを記憶するメッセージバッファx に対応
する受信完了レジスタ (RCR) の RCx ビットが "1" に設定されます。メッセージバッ
ファ x への受信メッセージの記憶が完了すると , 受信オーバランレジスタ (ROVRR) の
ROVRx ビットが "1" に設定され , 受信がオーバランしたことを示します。
● データフレームとリモートフレームの受信処理
• データフレームの受信処理
- リモート要求受信レジスタ (RRTRR) の RRTRx が , "0" になります。
- 送信要求レジスタ (TREQR) の TREQx が ( 受信メッセージが記憶される直前に )"0"
になります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は ,
取り消されます。データフレーム , またはリモートフレームのいずれの送信要求
も , 取り消されます。
• リモートフレームの受信処理
- RRTRx が "0" になります。
- 送信 RTR レジスタ (TRTRR) の TRTRx が "1" の場合 , TREQx は "0" になります。
送信を実行しなかったメッセージバッファに対するリモートフレームの送信要
求は , 取り消されます。データフレームの送信要求は取り消されません。送信要
求の取消しについては , 「■ 送信動作」を参照してください。
● 受信の完了
受信メッセージの記憶後 , 受信完了レジスタ (RCR) の RCx は "1" になります。
受信割込みが許可されている場合 ( 受信割込み許可レジスタ (RIER) の RIEx が "1"), 割
込みが発生します。
<注意事項>
468
この CAN コントローラは , 自身が送信したメッセージは受信しません。
第 16 章 CAN コントローラ
図 16.3-3 に , 受信動作のフローチャートを示します。
図 16.3-3 受信動作フローチャート
データフレームまたはリモート
フレームの開始(SOF)の検出
NO
受入フィルタを通過するメッセージ
バッファ(x)は見つかりましたか?
YES
NO
受信は完了しましたか?
YES
受信メッセージが記憶されるメッセージ
バッファ(x)を決めます。
受信メッセージをメッセージ
バッファ(x)に記憶します。
1
RCx ?
0
データフレーム
RRTRx
ROVRx
リモートフレーム
メッセージを受信
しましたか?
:= 0
RRTRx
1
TREQx
:= 1
:= 1
TRTRx ?
0
:= 0
RCx := 1
RIEx ?
1
0
受信割込みが起こります。
受信終了
469
第 16 章 CAN コントローラ
16.4
使用手順
ビットタイミング , フレームフォーマット , ID, および受入フィルタの設定と送信 /
受信の手順について説明します。
■ ビットタイミングの設定
ビットタイミングレジスタ (BTR) は , バス動作が停止している ( 制御ステータスレジス
タ (CSR) のバス動作停止ビット (HALT) が "1") ときに設定しなければなりません。
設定完了後 , HALT に "0" を書き込んで , バス動作停止を取り消します。
■ フレームフォーマットの設定
メッセージバッファ (x) が使用するフレームフォーマットを設定します。標準フレーム
フォーマットを使用している場合は , IDE レジスタ (IDER) の IDEx を "0" に設定しま
す。拡張フレームフォーマットを使用している場合は , IDEx を "1" に設定します。
この設定は, メッセージバッファ(x)が無効(メッセージバッファ有効レジスタ(BVALR)
の BVALx が "0") のときに設定しなければなりません。バッファが有効 (BVALx が "1")
のときに設定すると , 不必要な受信メッセージを記憶することになります。
■ ID の設定
メッセージバッファ (x)ID を , ID レジスタ (IDRx) の ID28 ∼ ID0 に設定します。標準
フレームフォーマットでは , メッセージバッファ (x)ID を ID11 ∼ ID0 に設定する必要
はありません。メッセージバッファ (x)ID は , 送信時には送信メッセージとして使用さ
れ , 受信時には受入コードとして使用されます。
この設定は, メッセージバッファ(x)が無効(メッセージバッファ有効レジスタ(BVALR)
の BVALx が "0") のときに設定しなければなりません。バッファが有効 (BVALx が "1")
のときに設定すると , 不必要な受信メッセージを記憶することになります。
■ 受入フィルタの設定
メッセージバッファ (x) の受入フィルタを , 受入コードと受入マスクセットによって設
定します。この設定は , 受入メッセージバッファ (x) が無効 ( メッセージバッファ許可
レジスタ (BVALR) の BVALx が "0") のときに設定しなければなりません。バッファが
有効 (BVALx が "1") のときに設定すると , 不必要な受信メッセージを記憶することに
なります。
各メッセージバッファ(x)で使用される受入マスクを, 受入マスク選択レジスタ(AMSR)
で設定します。受入マスクレジスタ (AMR0x, 1x) を使用している場合 , このレジスタも
設定します ( 設定の詳細については , 「16.2.3 ビットタイミングレジスタ (BTR)」の
「■受入マスク選択レジスタ (AMSR)」および「16.2.4 メッセージバッファ制御レジス
タ」の「■受入マスクレジスタ 0x, 1x(AMR0x, AMR1x)」を参照してください )。
受入マスクは , 不必要な受信メッセージが記憶されたときに , 送信要求が取り消されな
いように設定しなければなりません。たとえば , 送信 ID と同じ ID のメッセージのみ
受信する場合 , フルビット比較に設定する必要があります。
470
第 16 章 CAN コントローラ
■ メッセージバッファ (x) による送信手順
ビットタイミング , フレームフォーマット , ID, および受入フィルタの設定が完了した
ら , BVALx を "1" に設定してメッセージバッファ (x) を有効にします。
1. 送信データ長コードの設定
- 送信データ長コード ( バイトカウント ) を , DLC レジスタ (DLCRx) の DLC3 ∼
DLC0 に設定します。
- データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") については ,
送信メッセージのデータ長を設定します。
- リモートフレーム送信 (TRTRx=1) については , 要求メッセージのデータ長 ( バイ
トカウント ) を設定します。
<注意事項>
0000 ∼ 1000(0 ∼ 8 バイト ) 以外の設定は禁止されています。
2. 送信データの設定 ( データフレームの送信のみ )
- データフレーム送信 ( 送信レジスタ (TRTRR) の TRTRx が "0") については , デー
タレジスタ (DTRx)内で送信されたバイトのカウントとしてデータを設定します。
<注意事項>
送信データは , "0" に設定された送信要求レジスタ (TREQR) の TREQx ビットで再
書込みしなければなりません。メッセージバッファ有効レジスタ (BVALR) の
BVALx ビットを "0" に設定する必要はありません。BVALx ビットを "0" に設定する
と , リモートフレームの受信が禁止されます。
3. 送信 RTR レジスタの設定
- データフレーム送信については , 送信 RTR レジスタ (TRTRR) の TRTRx を "0" に
設定します。
- リモートフレーム送信については , TRTRx を "1" に設定します。
4. 送信開始条件の設定 ( データフレームの送信のみ )
- データフレーム送信要求が設定された ( 送信要求レジスタ (TREQR) の TREQx が
"1", および送信 RTR レジスタ (TRTRR) の TRTRx が "0") 直後に送信を開始するに
は , リモートフレーム受信待ちレジスタ (RFWTR) の RFWTx を "0" に設定します。
- データフレーム送信要求が設定された (TREQx=1, および RTRx=0) 後 , リモートフ
レームが受信される ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" にな
る ) まで待ってから送信を開始するには , RFWTx を "1" に設定します。
<注意事項>
RFWTx を "1" に設定すると , リモートフレーム送信を行うことができなくなりま
す。
5. 送信完了割込みの設定
- 送信完了割込みを発生させるときは, 送信完了割込み許可レジスタ(TIER)のTIEx
を "1" に設定します。
- 送信完了割込みを発生させないときは , TIEx を "0" に設定します。
6. 送信要求の設定
- 送信要求を発生するには , 送信要求レジスタ (TREQR) の TREQx を "1" に設定し
ます。
471
第 16 章 CAN コントローラ
7. 送信要求の取消し
- メッセージバッファ (x) への送信の保留要求を取り消すときは , 送信取消しレジ
スタ (TCANR) の TCANx に "1" を書き込みます。
- TREQx を確認します。TREQx=0 の場合は , 送信取消しが終了しているか , 送信が
完了しています。送信完了レジスタ (TCR) の TCx を確認します。TCx=0 の場合
は , 送信取消しが終了しています。TCx=1 の場合は , 送信が完了しています。
8. 送信完了処理
- 送信が完了すると , 送信完了レジスタ (TCR) の TCx が "1" になります。送信完了
割込みが許可されている場合 ( 送信完了割込み許可レジスタ (TIER) の TIExが "1"),
割込みが発生します。
送信の完了を確認後 , TCx に "0" を書き込んで設定を "0" に
します。これにより , 送信完了割込みが取り消されます。
- 次のような場合には , 送信保留要求は , メッセージを受信し記憶することによっ
て取り消されます。
データフレームの受信によるデータフレーム送信要求
データフレームの受信によるリモートフレーム送信要求
リモートフレームの受信によるリモートフレーム送信要求
<注意事項>
データフレーム送信要求は , リモートフレームを受信して記憶することによっては
取り消せません。ただし , ID, および DLC は , 受信したリモートフレームの ID, およ
び DLC によって変わります。送信されるデータフレームの ID, および DLC は , 受
信したリモートフレームの値になることに注意してください。
■ メッセージバッファ (x) による受信手順
フレームフォーマット , ID, および受入フィルタの設定が完了したら , 以下の設定をし
ます。
● 受信割込みの設定
受信割込みが許可されている場合 , 受信割込み許可レジスタ (RIER) の RIEx を "1" に設
定します。
受信割込みが禁止されている場合 , RIEx を "0" に設定します。
● 受信の開始
設定後 , 受信を開始するときは , メッセージバッファ有効レジスタ (BVALR) の BVALx
を "1" に設定し , メッセージバッファ (x) を有効にします。
● 受信完了処理
• 受入フィルタを通過して受信が完了すると , 受信メッセージはメッセージバッファ
(x) に記憶され , 受信完了レジスタ (RCR) の RCx が "1" になります。
• データフレームの受信については , リモート要求受信レジスタ (RRTRR) の RRTRx
が "0" になります。
• リモートフレームの受信については , RRTRx が "1" になります。
受信割込みが許可されている場合 ( 受信割込み許可レジスタ (RIER) の RIEx が "1"), 割
込みが発生します。
受信の完了 (RCx=1) を確認後 , 受信メッセージを処理します。
472
第 16 章 CAN コントローラ
受信メッセージの処理完了後 , 受信オーバランレジスタ (ROVRR) の ROVRx を確認し
ます。
• ROVRx=0 の場合 , 処理された受信メッセージは有効になっています。CRx に "0" を
書き込んで設定を "0" にし ( 受信完了割込みも取り消されます ), 受信を終了します。
• ROVRx=1 の場合 , 受信オーバランが起こり , 新しい受信メッセージが , 処理された
受信メッセージに上書きしている可能性があります。この場合 , ROVRx ビットに
"0" を書き込んで設定を "0" にした後 , 受信メッセージを再度処理する必要がありま
す。
図 16.4-1 に , 受信割込み処理の例を示します。
図 16.4-1 受信割込み処理の例
RCx=1での割込み
受信メッセージの読出し
A :=ROVRx
ROVRx :=0
A = 0?
NO
YES
RCx :=0
終了
■ 多重メッセージバッファ構成の設定
受信が頻繁に行われる場合 , または指定していないカウントのメッセージを受信する
場合(メッセージを受信するために十分な時間がない場合), 複数のメッセージバッファ
を 1 つの多重メッセージバッファにまとめて , CPU による受信メッセージの処理時間
に余裕を持たせることができます。
多重メッセージバッファを使用するには , 組み合わせたメッセージバッファに同じ受
入フィルタを設定しなければなりません。
受入マスク選択レジスタ (AMSR) のビットを All Bits Compare((AMSx.1, AMSx.0)=(0, 0))
に設定すると , メッセージバッファの多重メッセージ構成は許可されません。これは ,
All Bits Compare によって受信完了レジスタ (RCR) の RCx ビットの値に関係なく受信
メッセージが記憶されるため , All Bits Compare, および同じ受入コード (ID レジスタ
(IDRx)) が複数のメッセージバッファに指定されていても , 受信メッセージは常に小さ
い番号の ( 優先順位の低い ) メッセージバッファに記憶されるからです。したがって ,
All Bits Compare, および同じ受入コードを複数のメッセージバッファに指定してはな
りません。
図 16.4-2 に , 多重メッセージバッファの動作例を示します。
473
第 16 章 CAN コントローラ
図 16.4-2 多重メッセージバッファの動作例
初期化
AMS15, AMS14, AMS13
AMSR
AMR0xを選択。
10 10 10
. . .
AM18~AM28
AMR0
0000
111
IDE
. . .
ID18~ID28
メッセージバッファ13
1111
0101
0000
000
メッセージバッファ14
0101
0000
000
メッセージバッファ15
0101
0000
000
0
0
. . .
. . .
RC15, RC14, RC13
RCR
ROVRR
0
0
0
. . .
0
0
0
. . .
ROVR15, ROVR14, ROVR13
マスク
メッセージ受信 受信メッセージはメッセージバッファ13に記憶されます。
IDE
ID28 ~ ID18
メッセージ受信
0101
1111
000
0
. . .
メッセージバッファ13
0101
1111
000
0
. . .
メッセージバッファ14
0101
0000
000
0
. . .
メッセージバッファ15
0101
0000
000
0
. . .
RCR
ROVRR
0
0
1
. . .
0
0
0
. . .
0
1
1
. . .
0
0
0
. . .
1
1
1
. . .
0
0
0
. . .
メッセージ受信 受信メッセージはメッセージバッファ14に記憶されます。
メッセージ受信
0101
1111
001
0
. . .
メッセージバッファ13
0101
1111
000
0
. . .
メッセージバッファ14
0101
1111
001
0
. . .
メッセージバッファ15
0101
0000
000
0
. . .
RCR
ROVRR
メッセージ受信 受信メッセージはメッセージバッファ15に記憶されます。
メッセージ受信
0101
1111
010
0
. . .
メッセージバッファ13
0101
1111
000
0
. . .
メッセージバッファ14
0101
1111
001
0
. . .
メッセージバッファ15
0101
1111
010
0
. . .
RCR
ROVRR
メッセージ受信 オーバランが起こり(ROVR13=1), 受信メッセージはメッセージバッファ13に記憶されます。
メッセージ受信
0101
1111
011
0
. . .
メッセージバッファ13
0101
1111
011
0
. . .
メッセージバッファ14
0101
1111
001
0
. . .
010
0
. . .
メッセージバッファ15
0101
1111
RCR
ROVRR
1
1
1
. . .
0
0
1
. . .
( 注意事項 ) メッセージバッファ13, 14, 15 に設定された同じ受入フィルタにより ,
4 つのメッセージが受信されます。
474
第 17 章
D/A コンバータ
D/A コンバータの概要を示し , レジスタの構造と機
能 , および D/A コンバータの動作について説明し
ます。
17.1 D/A コンバータの概要
17.2 D/A コンバータのレジスタ
17.3 D/A コンバータの動作
475
第 17 章 D/A コンバータ
17.1
D/A コンバータの概要
D/A コンバータの機能とブロックダイヤグラムを示します。
■ D/A コンバータの機能
このブロックは , 10 ビットの分解能を持つ R-2R フォーマット D/A コンバータです。
D/A コンバータには 2 つのチャネルがあります。
出力制御は , D/A 制御レジスタを使用して , 2 つのチャネルで個別に実行できます。
■ D/A コンバータのブロックダイヤグラム
図 17.1-1 D/A コンバータのブロックダイヤグラム
R-バス
DA DA DA DA DA DA DA DA DA DA
19 18 17 16 15 14 13 12 11 10
DA DA DA DA DA DA DA DA DA DA
09 08 07 06 05 04 03 02 01 00
AVDD
AVDD
DA09
DA19
2R
DA18
2R
DA16
R
R
2R
DA07
R
R
DA01
DA11
2R
DA10
2R
DAE1
スタンバイ制御
DA出力ch.1
476
2R
DA08
R
2R
2R
DA00
R
2R
2R
DAE0
スタンバイ制御
DA出力ch.0
第 17 章 D/A コンバータ
17.2
D/A コンバータのレジスタ
D/A コンバータで使用するレジスタについて説明します。
■ D/A コンバータのレジスタ一覧
図 17.2-1 に , D/A コンバータのレジスタ一覧を示します。
図 17.2-1 D/A コンバータのレジスタ一覧
D/A 制御レジスタ (DACR)
D/A データレジスタ 0
(DADR0)
D/A データレジスタ 1
(DADR1)
D/A クロック制御レジスタ
(DDBL)
DACR
DADR0
DADR1
DDBL
bit7
6
5
4
3
2
1
0
初期値
−
−
−
−
−
MODE
DAE1
DAE0
-----000B
−
−
−
−
−
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
DA08
−
−
−
−
−
−
DA09
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
DA07
DA06
DA05
DA04
DA03
DA02
DA01
DA00
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
DA19
DA18
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
DA17
DA16
DA15
DA14
DA13
DA12
DA11
DA10
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
−
−
−
−
−
−
−
R/W
------XXB
XXXXXXXXB
------XXB
XXXXXXXXB
-------0B
■ D/A 制御レジスタ (DACR)
図 17.2-2 に , D/A 制御レジスタ (DACR) のビット構成を示します。
図 17.2-2 D/A 制御レジスタ (DACR) のビット構成
DACR
bit7
6
5
4
3
2
1
0
アドレス : 000000A5H
−
−
−
−
−
MODE
R/W
DAE1
R/W
DAE0
R/W
初期値
-----000B
477
第 17 章 D/A コンバータ
[bit2] MODE
このビットは , D/A コンバータのモード制御に使用します。
このビットに "1" を書き込むと , D/A コンバータは 8 ビットの分解能で動作します。
"0" を設定すると , D/A コンバータは 10 ビットの分解能で動作します。
リセット時に "0" に初期化されます。このビットは読出し , および書込みが可能です。
[bit1, bit0] DAE1, DAE0
これらのビットは , D/A コンバータ出力を許可 , または禁止するために使用します。
DAE1 ビットはチャネル 1 出力を制御し , DAE0 ビットはチャネル 0 出力を制御し
ます。
これらのビットに "1" を書き込むと , D/A 出力は許可されます。"0" を書き込むと ,
D/A 出力は禁止になります。
リセット時に "0" に初期化されます。これらのビットは読出し , および書込みが可
能です。
■ D/A データレジスタ (DADR)
図 17.2-3 に , D/A データレジスタ (DADR) のビット構成を示します。
図 17.2-3 D/A データレジスタ (DADR) のビット構成
DADR0
bit15
14
13
12
11
10
9
8
DA08
R/W
アドレス : 000000A6H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA09
R/W
DADR0
bit7
6
5
4
3
2
1
0
アドレス : 000000A7H
DA07
R/W
DA06
R/W
DA05
R/W
DA04
R/W
DA03
R/W
DA02
R/W
DA01
R/W
DA00
R/W
DADR1
bit15
14
13
12
11
10
9
8
アドレス : 000000A8H
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
−
R/W
DA19
R/W
DA18
R/W
DADR1
bit7
6
5
4
3
2
1
0
DA17
R/W
DA16
R/W
DA15
R/W
DA14
R/W
DA13
R/W
DA12
R/W
DA11
R/W
DA10
R/W
アドレス : 000000A9H
初期値
------XXB
XXXXXXXXB
------XXB
XXXXXXXXB
[bit9 ∼ bit0] DADR0 レジスタ DA09 ∼ DA00
これらのビットは , D/A コンバータ ch.0 の出力電圧の設定に使用します。
リセット時に初期化はされません。これらのビットは読出し , および書込みが可能
です。
[bit9 ∼ bit0] DADR1 レジスタ DA19 ∼ DA10
これらのビットは , D/A コンバータ ch.1 の出力電圧の設定に使用します。
リセット時に初期化はされません。これらのビットは読出し , および書込みが可能
です。
これらのレジスタを 8 ビット分解能モードで読み出すと , DAx7...DAx0 と書き込ま
れた値は DAx9...DAx2 として表示されます。
478
第 17 章 D/A コンバータ
■ D/A クロック制御レジスタ (DDBL)
図 17.2-4 に , D/A クロック制御レジスタ (DDBL) のビット構成を示します。
図 17.2-4 D/A クロック制御レジスタ (DDBL) のビット構成
DDBL
bit7
アドレス : 000000ABH
−
6
−
5
−
4
−
3
−
2
−
1
0
−
DBL
R/W
初期値
-------0B
[bit0] DBL
このビットは , D/A コンバータモジュールのクロック制御に使用します。
このビットに "1" を書き込むと , D/A コンバータモジュールのクロックは禁止にな
ります。"0" を設定すると , D/A コンバータモジュールにクロックが供給されます。
リセット時に"0"に初期化されます。このビットは読出し, および書込みが可能です。
479
第 17 章 D/A コンバータ
17.3
D/A コンバータの動作
D/A コンバータの動作概要を説明します。
■ D/A コンバータの動作概要
D/A 出力は , D/A データレジスタ (DADR) に所望の D/A 出力値を書き込み , D/A 制御レ
ジスタ (DACR) 内の対応する D/A 出力チャネルの許可ビットに "1" を設定することに
よって開始されます。
D/A 出力を禁止にすると , 各 D/A コンバータチャネルの出力に直列に挿入されている
アナログスイッチがオフになります。さらに , D/A コンバータが "0" に内部クリアされ ,
直流電流の経路が遮断されます。これはストップモードにも当てはまります。
■ D/A コンバータ出力電圧の理論値
表 17.3-1 , および表 17.3-2 に , D/A コンバータ出力電圧の理論値を示します。
D/A コンバータ出力電圧は , 8 ビットモードで 0V ∼ (255/256)V × AVCC, 10 ビットモー
ドで 0V ∼ (1023/1024)V × AVCC です。出力電圧範囲は , AVCC 電圧を外部から調整
することによって変化します。
D/A コンバータ出力に , 内部バッファ増幅器はありません。アナログスイッチ ( 最大
100Ω) は出力に直列に挿入されているので , 外部出力負荷を加えたときに , 十分な設定
時間があります。
表 17.3-1 8 ビット分解能の D/A コンバータ出力電圧の理論値
DA07 ∼ DA00, および DA17 ∼
DA10 に書き込まれる値
00H
AVSS + 0 ×
1 LSB
01H
AVSS + 1 ×
1 LSB
02H
AVSS + 2 ×
1 LSB
|
|
FDH
AVSS + 253 × 1 LSB
FEH
AVSS + 254 × 1 LSB
FFH
AVSS + 255 × 1 LSB
1LSB : (AVCC-AVSS)/256
480
出力電圧の理論値
第 17 章 D/A コンバータ
表 17.3-2 10 ビット分解能の D/A コンバータ出力電圧の理論値
DA09 ∼ DA00, および DA19 ∼
DA10 に書き込まれる値
出力電圧の理論値
000H
AVSS + 0 ×
1 LSB
001H
AVSS + 1 ×
1 LSB
002H
AVSS + 2 ×
1 LSB
|
|
3FDH
AVSS + 1021 × 1 LSB
3FEH
AVSS + 1022 × 1 LSB
3FFH
AVSS + 1023 × 1 LSB
1 LSB : (AVCC-AVSS)/1024
481
第 17 章 D/A コンバータ
482
第 18 章
I2C インタフェース (400 kHz)
高速 I2C インタフェースの機能と動作について説
明します。
18.1 I2C インタフェース (400 kHz) の概要
18.2 I2C インタフェース (400 kHz) のレジスタ
18.3 I2C インタフェースの動作
18.4 プログラミングフローチャート
483
第 18 章 I2C インタフェース (400 kHz)
18.1
I2C インタフェース (400 kHz) の概要
I2C インタフェースは IC 間バスをサポートし , I2C バス上のマスタ / スレーブデバイ
スとして動作するシリアル I/O ポートです。
■ I2C インタフェース (400 kHz) の特長
I2C インタフェース (400 kHz) には , 以下の機能があります。
• マスタ / スレーブ送受信機能
• 調停機能
• クロック同期機能
• 汎用コールアドレッシング機能
• 伝送方向検出機能
• 再起動条件の発生と検出機能
• バスエラー検出機能
• マスタ , およびスレーブとしての 7 ビットアドレッシング
• マスタ , およびスレーブとしての 10 ビットアドレッシング
• 7 ビット , および 10 ビットのスレーブアドレスのインタフェースを提供可能
• スレーブアドレス受信のアクノリッジを禁止可能 ( マスタのみの動作 )
• 複数スレーブアドレス (7 ビットモード , 10 ビットモード ) のインタフェースを提供
するアドレスマスク機能
• 400K ビットまでの伝送速度
• SDA 用 , SCL 用の組込みノイズフィルタを使用可能
• プリスケーラ環境にかかわらず, R-バスクロックが6 MHzを超える場合に400Kビッ
トでデータを受信可能
• 伝送 , およびバスエラー時に MCU 割込み発生可能
• ビットレベルとバイトレベルでのスレーブによる減速をサポート
I2C インタフェースは , プリスケーラの設定にかかわらず R- バスクロック (CLKP) が
6 MHz を超えるデータ伝送速度 400K ビットをフル受信できるので , ビットレベルでの
SCL クロック引延しをサポートしません。ただし , 割込み中 (IBCR レジスタの INT=1)
は SCL が "L" になるので , バイトレベルでのクロック引延しが行われます。
<注意事項>
484
• 400 kHz I2C インタフェースは , マルチマスタ動作はサポートしていません。
• 400 kHz I2C インタフェースを使用する前に必ず F362MD (「4.2 構成レジスタ
(F362GB モードレジスタ F362MD)」) の IICSEL を "1" に設定してください。
第 18 章 I2C インタフェース (400 kHz)
■ I2C インタフェースのブロックダイヤグラム
図 18.1-1 に , I2C インタフェース (400 kHz) のブロックダイヤグラムを示します。
図 18.1-1 I2C インタフェース (400 kHz) のブロックダイヤグラム
ICCR2
I2 C 許可
EN
IDBL2
DBL
クロック禁止
ICCR2
2
CS4
Rバスクロック(CLKP)
モジュールクロック供給
クロック分周期1
3
4 5 ..
. 32
CS3
5
CS2
5
クロックセレクタ
同期
CS1
CS0
クロック分周期2 (12で分周)
SCLデューティサイクル発生器
シフトクロック発生器
IBSR2
BB
RSC
LRB
TRX
バスビジー
繰り返し起動
バスオブザーバ
最終ビット
送信/受信
バスエラー
アドレスデータ
ADT
AL
調停消失検出器
ICCR2
NSF
IBCR2
許可
BER
BEIE
割込み要求
Rバス
INTE
ノイズ
フィルタ
MCU
IRQ
INT
SCL
SDA
SCL
SDA
IBCR2
SCC
MSS
ACK
GCAA
起動
起動-停止条件発生器
マスタ
ACK許可
ACK発生器
GC-ACK許可
8
IBSR2
AAS
GCA
ISMK
ENSB
ITMK
ENTB
RAL
IDAR2
8
スレーブ
汎用コール
7ビットモード許可
スレーブアドレス
比較器
10ビットモード許可
受信アドレス長
7
10
10
ITBA
ITMK
7
ISBA
ISMK
10
10
7
7
485
第 18 章 I2C インタフェース (400 kHz)
18.2
I2C インタフェース (400 kHz) のレジスタ
I2C インタフェース (400 kHz) のレジスタの機能について説明します。
■ I2C インタフェース (400 kHz) のレジスタ一覧
図 18.2-1 に , I2C インタフェース (400 kHz) のレジスタ一覧を示します。
図 18.2-1 I2C インタフェース (400 kHz) のレジスタ一覧
レジスタ
バス制御レジスタ
バスステータスレジスタ
10 ビットスレーブ
アドレスレジスタ
名前
IBCR2
IBSR2
ITBAH
ITBAL
10 ビットスレーブ
アドレスマスクレジスタ
7 ビットスレーブ
アドレスマスクレジスタ
ISBA
ISMK
14
13
12
11
10
9
8
初期値
00000000B
BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
R/W
R/W
W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
R
R
R
R
R
R
R
R
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
TA9
TA8
-
-
-
-
-
-
R/W
R/W
bit7
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
RAL
−
−
−
−
TM9
TM8
R/W
R
-
-
-
-
R/W
R/W
bit7
6
5
4
3
2
1
0
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
-
SA6
SA5
SA4
SA3
SA2
SA1
SA0
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
ENSB
SM6
SM5
SM4
SM3
SM2
SM1
SM0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ITMKH ENTB
ITMKL
7 ビットスレーブ
アドレスレジスタ
bit15
00000000B
00000000B
00000000B
00111111B
11111111B
00000000B
01111111B
( 続く )
486
第 18 章 I2C インタフェース (400 kHz)
( 続き )
データレジスタ
IDARH
IDARH2
クロック制御レジスタ
クロック禁止レジスタ
ICCR2
IDBL2
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
-
-
-
-
-
-
-
-
bit7
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
bit15
14
13
12
11
10
9
8
−
NSF
EN
CS4
CS3
CS2
CS1
CS0
-
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
DBL
-
-
-
-
-
-
-
R/W
00000000B
00000000B
00011111B
00000000B
487
第 18 章 I2C インタフェース (400 kHz)
18.2.1
バス制御レジスタ (IBCR2)
この項では , バス制御レジスタ (IBCR2) の機能について説明します。
■ バス制御レジスタ (IBCR2) の機能
バス制御レジスタ (IBCR2) には , 以下の機能があります。
• 割込み許可
•
割込み発生
• バスエラー検出
•
再起動条件の発生
•
マスタ / スレーブモード選択
• 汎用コールアクノリッジ発生許可
• データバイトアクノリッジ発生許可
■ バス制御レジスタ (IBCR2) のビット機能
このレジスタへの書込みアクセスは , INT=1, または転送が開始される場合にのみ発生
します。ACK ビット , または GCAA ビットを変更するとバスエラーが発生することが
あるので , ユーザによるこのレジスタへの転送中の書込みは禁止されます。インタ
フェースが許可されない場合 (ICCR2 の EN=0) は , BER ビットと BEIE ビットを除き ,
このレジスタのすべてのビットがクリアされます。
図 18.2-2 に , バス制御レジスタ (IBCR2) のビット構成を示します。
図 18.2-2 バス制御レジスタ (IBCR2) のビット構成
バス制御レジスタ
bit15
14
13
12
11
10
9
8
アドレス : 00000184H
BER
BEIE
SCC
MSS
ACK
GCAA
INTE
INT
読出し / 書込み→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
初期値→
IBCR2
バス制御レジスタ (IBCR2) の各ビットの機能を , 以下に説明します。
[bit15] BER(Bus ERror)
このビットは , バスエラー割込みフラグです。ハードウェアによって設定され , ユー
ザがクリアします。リードモディファイライト系命令 (RMW) では , 常に "1" が読み
出されます。
( 書込みアクセスの場合 )
0
バスエラー割込みフラグクリア
1
無効
( 読出しアクセスの場合 )
488
0
バスエラー検出なし
1
下記エラー状態の 1 つを検出
第 18 章 I2C インタフェース (400 kHz)
このビットを設定すると , ICCR2 レジスタの EN ビットがクリアされます。I2C イン
タフェースが一時停止状態となってデータ転送が中断され , IBSR2 レジスタと
IBCR2 レジスタの BER と BEIE を除くすべてのビットがクリアされます。インタ
フェースを再度許可する前に , BER ビットをクリアする必要があります。
• このビットは , 以下の場合に "1" に設定されます。
- アドレスデータの転送中 , または bit2 ∼ bit9( アクノリッジビット ) の転送中に ,
起動条件 , または停止条件が誤った位置で検出された
- 10ビットの書込みアクセス以前に, 読出しアクセスを伴う10ビットアドレスヘッ
ダを受信した
- インタフェースがマスタモードのときに , 停止条件が検出された
• 転送中にインタフェースが許可された場合は , 誤ったバスエラー報告を防ぐために ,
最初の停止条件を受信した後で , 上記条件の最初の 2 つを検出することが許可され
ます。
[bit14] BEIE(Bus Error Interrupt Enable)
このビットは , バスエラー割込みを許可します。このビットを変更できるのはユー
ザだけです。
0
バスエラー割込み禁止
1
バスエラー割込み許可
このビットを "1" に設定すると , BER ビットが "1" に設定されたときに MCU 割込
みの発生が許可されます。
[bit13] SCC(Start Condition Continue)
このビットを使用して , 再起動条件を発生します。このビットは書込み専用で , 常
に "0" が読み出されます。
0
無効
1
マスタ転送中に繰り返し起動条件発生
マスタモード (MSS=1, INT=1) での割込み中にこのビットに "1" が書き込まれると ,
繰返し起動条件が発生し , INT ビットが自動的にクリアされます。
[bit12] MSS(Master Slave Select)
このビットは , マスタ / スレーブモード選択ビットです。このビットを設定できる
のはユーザだけです。クリアは , ユーザとハードウェアで行うことができます。
0
スレーブモードに移行する
1
マスタモードに移行し , 起動条件を発生してアドレスデータバイト
を IDAR2 レジスタに送信する
このビットは , マスタ送信中に調停消失イベントが発生するとクリアされます。
マスタ割込み中 (MSS=1, INT=1) に "0" を書き込むと , INT ビットが自動的にクリア
され , 停止条件が発生し , データ転送は終了します。MSS ビットは直ちにリセット
され , IBSR2 レジスタの BB ビットをポーリングすることにより停止条件の発生を
チェックできることに注意してください。
• バスのアイドル時に "1" を書き込むと (MSS=0, BB=0) 起動条件が発生し , IDAR2 レ
ジスタの内容 ( アドレスデータ ) が送信されます。
489
第 18 章 I2C インタフェース (400 kHz)
• バスの使用中に MSS ビット (IBSR2 の BB=1, TRX=0;IBCR2 の MSS=0) に "1" を書き
込むと , インタフェースはバスが解放されるまで待機して , 送信を開始します。
• インタフェースを , 書込みアクセス ( データ受信 ) を伴うスレーブとしてアドレス指
定した場合は , 転送が終了しバスが再度解放されてから送信が開始されます。イン
タフェースがスレーブとしてデータを送信している場合 (IBSR2 の AAS=1, TRX=1)
には , バスが再度解放されてもデータ送信を開始しません。次の割込み時に , イン
タフェースがスレーブとしてアドレス指定されたか (IBSR2 の AAS=1), データバイ
トの送信に成功したか (IBCR2 の MSS=1), またはデータバイトの送信に失敗したか
どうか (IBSR2 の AL=1) をチェックすることが重要です。
[bit11] ACK(ACKnowledge)
このビットは , データバイト受信時のアクノリッジ発生許可ビットです。このビッ
トを変更できるのはユーザだけです。
0
インタフェースによるデータバイト受信時のアクノリッジ発生なし
1
インタフェースによるデータバイト受信時のアクノリッジ発生
スレーブモードでアドレスバイトを受信する場合は , このビットは無効です。イン
タフェースが 7 ビット , または 10 ビットのスレーブアドレスを検出した場合は , 対
応する許可ビット (ITMK の ENTB, または ISMK の ENTB) が設定されているかどう
かをアクノリッジします。
このビットへの書込みアクセスは , 割込み中 (INT=1) か , バスがアイドルの場合
(IBSR2 レジスタの BB=0) にのみ発生します。
このビットへの書込みアクセスは , インタフェースが許可されていて (ICCR2 レジ
スタの EN=1) さらにバスエラーでない場合 (IBCR2 レジスタの BER=0) にのみ可能
です。
[bit10] GCAA(General Call Address Acknowledge)
このビットは , 汎用コールアドレスを受信したときにアクノリッジの発生を許可し
ます。このビットを変更できるのはユーザだけです。
0
インタフェースによる汎用コールアドレスバイト受信時のアクノ
リッジ発生なし
1
インタフェースによる汎用コールアドレスバイト受信時のアクノ
リッジ発生
このビットへの書込みアクセスは , 割込み中 (INT=1) か , バスがアイドルの場合
(IBSR2 レジスタの BB=0) にのみ発生します。
このビットへの書込みアクセスは , インタフェースが許可されていて (ICCR2 レジ
スタの EN=1) さらにバスエラーでない場合 (IBCR2 レジスタの BER=0) にのみ可能
です。
[bit9] INTE(INTerrupt Enable)
このビットは , MCU 割込みの発生を許可します。このビットを変更できるのはユー
ザだけです。
0
割込み禁止
1
割込み許可
このビットを "1" に設定すると , INT ビットが ( ハードウェアによって )"1" に設定
490
第 18 章 I2C インタフェース (400 kHz)
された場合に MCU 割込み発生を許可します。
[bit8] INT(INTerrupt)
このビットは , 伝送終了割込み要求フラグです。このビットはハードウェアによっ
て変更され , ユーザによってクリアすることができます。リードモディファイライ
トアクセスでは , 常に "1" が読み出されます。
( 書込みアクセスの場合 )
0
転送終了割込み要求フラグクリア
1
無効
( 読出しアクセスの場合 )
0
転送が終了しない , 現在の転送に関与していない , またはバスがアイ
ドル
1
次の条件下で , アクノリッジビットも含め 1 バイトのデータ転送 , ま
たは受信の最後に設定されます。
• デバイスがバスマスタ
• デバイスがスレーブとしてアドレス指定されている
• 汎用コールアドレス受信
• 調停消失発生
デバイスがスレーブとしてアドレス指定されている場合は , アクノ
リッジビットも含めアドレスデータ受信の最後 (7 ビットアドレス受
信の場合は最初のバイトの後 , 10 ビットアドレス受信の場合は 2 番
目のバイトの後 ) に設定されます。
このビットが "1" である間は , SCL ラインは "L" レベルに保持されます。このビッ
トに "0" を書き込むと設定がクリアされ , SCL ラインが解放されて次のバイトの転
送が実行されるか , または再起動条件 , または停止条件が発生します。また , SCC
ビットに "1" を書き込むか , MSS ビットをクリアすると , このビットはクリアされ
ます。
■ SCC, MSS, INT ビットの競合
SCC, MSS, INT ビットに同時に書き込むと , 次のバイト転送 , 再起動条件の発生 , およ
び停止条件の発生の競合が生じます。この場合の優先順位は , 以下のようになります。
• 次のバイト転送と停止条件発生 : INT ビットに "0" が書き込まれ , MSS ビットに
"0" が書き込まれると , MSS ビットが優先し , 停
止条件が発生します。
• 次のバイト転送と起動条件発生 : INT ビットに "0" が書き込まれ , SCC ビットに
"1"が書き込まれると, SCCビットが優先します。
再起動条件が発生し , IDAR2 レジスタの内容が
送信されます。
• 再起動条件発生と停止条件発生 : SCC ビットに "1" が書き込まれ , MSS ビットに
"0" が書き込まれると , MSS ビットのクリアが優
先されます。停止条件が発生し , インタフェース
はスレーブモードに移行します。
491
第 18 章 I2C インタフェース (400 kHz)
18.2.2
バスステータスレジスタ (IBSR2)
この項では , バスステータスレジスタ (IBSR2) の機能について説明します。
■ バスステータスレジスタ (IBSR2) の機能
バスステータスレジスタ (IBSR2) には , 以下の機能があります。
• バスビジー検出
• 再起動条件検出
• 調停消失検出
• アクノリッジ検出
• データ伝送方向表示
• スレーブとしてのアドレッシング検出
• 汎用コールアドレス検出
• アドレスデータ転送検出
■ バスステータスレジスタ (IBSR2) のビット機能
このレジスタは読出し専用です。すべてのビットは , ハードウェアにより制御されま
す。インタフェースが許可されていない場合 (ICCR2 の EN=0) は , すべてのビットがク
リアされます。
図 18.2-3 に , バスステータスレジスタ (IBSR2) のビット構成を示します。
図 18.2-3 バスステータスレジスタ (IBSR2) のビット構成
バスステータスレジスタ
bit7
6
5
4
3
2
1
0
アドレス : 00000185H
BB
RSC
AL
LRB
TRX
AAS
GCA
ADT
読出し / 書込み→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IBSR2
バスステータスレジスタ (IBSR2) の各ビットの機能を , 以下に説明します。
[bit7] BB(Bus Busy)
このビットは , I2C バスの状態を表示します。
0
停止条件検出 ( バスアイドル )
1
起動条件検出 ( バス使用中 )
起動条件が検出されると , このビットは "1" に設定されます。停止条件が検出され
るとリセットされます。
[bit6] RSC(Repeated Start Condition)
このビットは , 再起動条件の検出を表示します。
492
第 18 章 I2C インタフェース (400 kHz)
0
再起動条件が検出されない
1
バス使用中 , 再起動条件を検出する
このビットは , アドレスデータ転送の終了 (ADT=0) あるいは停止条件の検出により
クリアされます。
[bit5] AL(Arbitration Loss)
このビットは , 調停消失を示します。
0
調停消失が検出されない
1
マスタ送信中に調停消失が発生
このビットは , IBCR2 レジスタの INT ビットに "0" を書き込むか , または MSS ビッ
トに "1" を書き込むとクリアされます。
調停消失は , 以下の場合に発生します。
•
送信データが , SCL の立上りエッジで読み出した SDA ラインのデータと一致しな
い場合
• 事前に別のスレーブにより SCL ラインがローとなったために , インタフェースが起
動条件 , または停止条件を発生できなかった場合
[bit4] LRB(Last Received Bit)
このビットを使用して , 受信側からのアクノリッジメッセージをトランスミッタに
格納します。
0
受信を確認した
1
受信が確認されない
ハードウェアが bit9( 応答ビット ) を受信するとこのビットは変更され , 起動条件 ,
または停止条件によりクリアされます。
[bit3] TRX(Transferring data)
このビットは , データ転送中のデータ送信動作を示します。
0
データを送信していない
1
データ送信中である
• このビットは , 以下の場合 "1" に設定されます。
- マスタモードで起動条件が発生した場合。
- 最初のバイト転送の終了 , およびスレーブとしての読出しアクセス , またはマス
タとしてのデータ送信の場合。
• このビットは , 以下の場合 "0" に設定されます。
- バスがアイドルである (IBSR2 の BB=0)
- 調停消失が発生した
493
第 18 章 I2C インタフェース (400 kHz)
- マスタ割込み中 (MSS=1, INT=1) に , SCC ビットに "1" が書き込まれた
- マスタ割込み中 (MSS=1, INT=1) に , MSS ビットがクリアされた
- インタフェースがスレーブモードで , 最終転送バイトが確認されなかった
- インタフェースがスレーブモードで , データを受信中
- インタフェースがマスタモードで , スレーブからデータを読出し中
[bit2] AAS(Addressed As Slave)
このビットは , スレーブアドレッシングの検出を示します。
0
スレーブとしてアドレス指定されていない
1
スレーブとしてアドレス指定されている
このビットは , ( 再 ) 起動条件 , または停止条件によりクリアされます。インタフェー
スが 7 ビットスレーブアドレスと 10 ビットスレーブアドレスの両方 , またはいずれ
かを検出すると , このビットが設定されます。
[bit1] GCA(General Call Address)
このビットは , 汎用コールアドレス (0x00) の検出を示します。
0
汎用コールアドレスがスレーブとして受信されない
1
汎用コールアドレスをスレーブとして受信する
このビットは , ( 再 ) 起動条件 , または停止条件によりクリアされます。
[bit0] ADT(Address Data Transfer)
このビットは , アドレスデータ転送の検出を表示します。
0
受信データはアドレスデータではない ( あるいはバスが使用中では
ない )
1
受信データはアドレスデータである
このビットは , 起動条件により "1" に設定されます。書込みアクセスを伴う 10 ビッ
トスレーブアドレスヘッダが検出された場合は , 第 2 バイトの後にクリアされます。
それ以外の場合は , 第 1 バイトの後にクリアされます。
「第 1/ 第 2 バイトの後」が意味するものは , 以下のとおりです。
• マスタ割込み中 (IBCR2 の MSS=1, INT=1) に , MSS ビットに "0" が書き込まれます。
• マスタ割込み中 (IBCR2 の MSS=1, INT=1) に , SCC ビットに "1" が書き込まれます。
• INT ビットはクリアされます。
• インタフェースがマスタ , またはスレーブとして現在の転送に関わっていない場合
は , すべてのバイト転送が開始されます。
494
第 18 章 I2C インタフェース (400 kHz)
18.2.3
10 ビットスレーブアドレスレジスタ (ITBA)
10 ビットスレーブアドレスレジスタ (ITBA) の機能について説明します。
■ 10 ビットスレーブアドレスレジスタ (ITBA) の機能
このレジスタ (ITBAH/ITBAL) は , 10 ビットスレーブアドレスを指定します。
インタフェースが禁止されている場合 (ICCR2 の EN=0) にのみ , このレジスタへの書込
みアクセスが可能です。
図 18.2-4 に , 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成を示します。
図 18.2-4 10 ビットスレーブアドレスレジスタ (ITBA) のビット構成
10 ビットスレーブアドレス上位バイト
bit15
14
13
12
11
10
9
8
アドレス :00000186H
−
−
−
−
−
−
TA9
TA8
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
ITBAH
10 ビットスレーブアドレス下位バイト
アドレス : 00000187H
読出し / 書込み→
初期値→
bit7
6
5
4
3
2
1
0
TA7
TA6
TA5
TA4
TA3
TA2
TA1
TA0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
ITBAL
10 ビットスレーブアドレスレジスタ (ITBA) の各ビットの機能を , 以下に説明します。
[bit15 ∼ bit10] 未使用ビット
これらのビットは , 常に "0" が読み出されます。
[bit9 ∼ bit0] TBA(Ten Bit slave Address) : 10 ビットスレーブアドレス (TA9 ∼ TA0)
アドレスデータをスレーブモードで受信する場合に , 10 ビットアドレスが許可
(ITMK レジスタの ENTB=1) されていれば , ITBA レジスタと比較されます。書込み
アクセスを伴う 10 ビットアドレスヘッダ *1 を受信後 , マスタにアクノリッジが送
信されます。次に , 2 番目の入着バイトが ITBA レジスタと比較されます。一致が検
出されると , マスタデバイスにアクノリッジ信号が送信され , AAS ビットが設定さ
れます。
また , 再起動条件の後 , 読出しアクセスを伴う 10 ビットヘッダ *2 を受信すると , イ
ンタフェースは肯定応答を発生します。
スレーブアドレスのすべてのビットは , ITMK レジスタを使用することでマスクで
きます。受信された 10 ビットスレーブアドレスは , ITBA レジスタに書き戻されま
すが , IBSR2 レジスタの AAS ビットが "1" である場合のみ , 有効となります。
*1
: 10 ビットヘッダ ( 書込みアクセス ) のビット順序は , 11110, TA9, TA8, 0 で構成
されます。
*
2 : 10 ビットヘッダ ( 読込みアクセス ) のビット順序は , 11110, TA9, TA8, 1 で構成
されます。
495
第 18 章 I2C インタフェース (400 kHz)
18.2.4
10 ビットスレーブアドレスマスクレジスタ (ITMK)
この項では , 10 ビットスレーブアドレスマスクレジスタ (ITMK) の機能について説明
します。
■ 10 ビットスレーブアドレスマスクレジスタ (ITMK) の機能
このレジスタには , 10 ビットスレーブアドレスマスクと 10 ビットスレーブアドレス許
可ビットが含まれています。
図 18.2-5 に , 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成を示し
ます。
図 18.2-5 10 ビットスレーブアドレスマスクレジスタ (ITMK) のビット構成
10 ビットスレーブアドレスマスク上位バイト
bit15
14
13
12
11
10
9
8
アドレス : 00000188H
ENTB
RAL
−
−
−
−
TM9
TM8
読出し / 書込み→
(R/W)
(R)
(-)
(-)
(-)
(-)
(R/W)
(R/W)
(0)
(0)
(1)
(1)
(1)
(1)
(1)
(1)
初期値→
ITMKH
10 ビットスレーブアドレスマスク下位バイト
bit7
6
5
4
3
2
1
0
アドレス :00000189H
TM7
TM6
TM5
TM4
TM3
TM2
TM1
TM0
読出し / 書込み→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
初期値→
ITMKL
[bit15] ENTB(ENable Ten Bit slave address) : 10 ビットスレーブアドレス許可
このビットは , 10 ビットスレーブアドレス ( およびその受信応答 ) を許可します。
インタフェースが禁止されている場合 (ICCR2 の EN=0) にのみ , このビットへの書
込みアクセスが可能です。
0
10 ビットスレーブアドレス禁止
1
10 ビットスレーブアドレス許可
[bit14] RAL(Received slave Address Length) : 受信スレーブアドレス長
このビットは , インタフェースが 7 ビット , または 10 ビットのスレーブとしてアド
レス指定されたかどうかを示します。このビットは , 読出し専用です。
0
7 ビットスレーブとしてアドレス指定
1
10 ビットスレーブとしてアドレス指定
このビットを使用して , 7 ビット , 10 ビット両方のスレーブアドレスが許可されて
いる場合 (ENTB =1, ENSB=1) に , インタフェースが 7 ビット , または 10 ビットのス
496
第 18 章 I2C インタフェース (400 kHz)
レーブとしてアドレス指定されたかどうかを判断できます。IBSR2 レジスタの AAS
ビットが "1" である場合にのみ , この内容は有効になります。インタフェースが禁
止される (ICCR2 の EN=0) と , このビットもリセットされます。
[bit13 ∼ bit10] 未使用ビット
これらのビットは , 常に "1" が読み出されます。
[bit9 ∼ bit0] TMK(Ten bit slave address MasK) :
10 ビットスレーブアドレスマスク
(TM9 ∼ TM0)
このレジスタを使用して , インタフェースの 10 ビットスレーブアドレスをマスクし
ます。
インタフェースが禁止されている場合 (ICCR2 の EN=0) にのみ , これらのビッ
トへの書込みアクセスが可能になります。
0
スレーブアドレス比較でビットを使用しない
1
スレーブアドレス比較でビットを使用
このビットを使用して , 複数の 10 ビットスレーブアドレスをインタフェースに確認
させることができます。このレジスタで "1" に設定されたビットだけが , 10 ビット
スレーブアドレス比較で使用されます。受信したスレーブアドレスは ITBA レジス
タに書き戻されるので , IBSR2 レジスタの AAS ビットが "1" のとき ITBA レジスタ
を読み出すことにより決定されます。
<注意事項>
インタフェースが許可された後にアドレスマスクを変更すると , 以前受信したス
レーブアドレスによって上書きされることがあるので , スレーブアドレスも再設定
する必要があります。
497
第 18 章 I2C インタフェース (400 kHz)
18.2.5
7 ビットスレーブアドレスレジスタ (ISBA)
この項では , 7 ビットスレーブアドレスレジスタ (ISBA) の機能について説明します。
■ 7 ビットスレーブアドレスレジスタ (ISBA) の機能
このレジスタは , 7 ビットスレーブアドレスを指定します。
インタフェースが禁止されている場合 (ICCR2 の EN=0) にのみ , このレジスタへの書込
みアクセスが可能です。
図 18.2-6 に , 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成を示します。
図 18.2-6 7 ビットスレーブアドレスレジスタ (ISBA) のビット構成
7 ビットスレーブアドレスレジスタ
bit7
6
5
4
3
2
1
0
アドレス :0000018BH
−
SA6
SA5
SA4
SA3
SA2
SA1
SA0
読出し / 書込み→
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
ISBA
[bit7] 未使用ビット
このビットは , 常に "0" が読み出されます。
[bit6 ∼ bit0] (Seven bit slave Address) : 7 ビットスレーブアドレス (SA6 ∼ SA0)
アドレスデータはスレーブモードで受信する場合に , 7 ビットアドレスが許可され
ていれば (ISMK レジスタの ENSB=1), ISBA レジスタと比較されます。一致が検出
されると , マスタデバイスにアクノリッジ信号が送信され , AAS ビットが設定され
ます。
スレーブアドレスのすべてのビットは, ISMKレジスタを使用することによりマスク
できます。受信された 7 ビットスレーブアドレスは ISBA レジスタに書き戻され ,
IBSR2 レジスタの AAS ビットが "1" である場合にのみ , 有効となります。
10 ビットヘッダ , または汎用コールを受信した場合には , インタフェースは受信
データとこのレジスタの内容を比較しません。
498
第 18 章 I2C インタフェース (400 kHz)
18.2.6
7 ビットスレーブアドレスマスクレジスタ (ISMK)
この項では , 7 ビットスレーブアドレスマスクレジスタ (ISMK) の機能について説明
します。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK) の機能
このレジスタには , 7 ビットスレーブアドレスマスクと 7 ビットモード許可ビットが含
まれています。インタフェースが禁止されている場合 (ICCR2 の EN=0) にのみ , このレ
ジスタへの書込みアクセスが可能です。
図 18.2-7 に , 7 ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成を示しま
す。
図 18.2-7 7 ビットスレーブアドレスマスクレジスタ (ISMK) のビット構成
7 ビットスレーブアドレスマスクレジスタ
bit15
14
13
12
11
10
9
8
アドレス :0000018AH
ENSB
SM6
SM5
SM4
SM3
SM2
SM1
SM0
読出し / 書込み→
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(1)
(1)
(1)
(1)
(1)
(1)
(1)
初期値→
ISMK
7 ビットスレーブアドレスマスクレジスタ (ISMK) の各ビットの機能を , 以下に説明し
ます。
[bit15] ENSB(ENable Seven Bit slave Address) : 7 ビットスレーブアドレス許可
このビットは , 7 ビットスレーブアドレス ( およびその受信応答 ) を許可します。
0
7 ビットスレーブアドレス禁止
1
7 ビットスレーブアドレス許可
[bit14 ∼ bit8] SMK(Seven bit slave address MasK) :
7 ビットスレーブアドレスマスク
(SM6 ∼ SM0)
このレジスタは , インタフェースの 7 ビットスレーブアドレスをマスクするために
使用します。
0
スレーブアドレス比較でビットを使用しない
1
スレーブアドレス比較でビットを使用
このビットを使用して , 複数の 7 ビットスレーブアドレスをインタフェースに確認
させることができます。このレジスタで "1" に設定されたビットだけが , 7 ビットス
レーブアドレス比較で使用されます。受信したスレーブアドレスは ISBA レジスタ
に書き戻されるので , IBSR2 レジスタの AAS ビットが "1" のとき , ISBA レジスタを
読み出すことによって決定されます。
499
第 18 章 I2C インタフェース (400 kHz)
<注意事項>
500
インタフェースが許可された後にアドレスマスクを変更すると , 以前受信したス
レーブアドレスによって上書きされることがあるので , スレーブアドレスも再設定
する必要があります。
第 18 章 I2C インタフェース (400 kHz)
18.2.7
データレジスタ (IDARH, IDAR2)
この項では , データレジスタ (IDARH2) の機能について説明します。
■ データレジスタ (IDARH2) の機能
データレジスタ (IDARH2) は , シリアルデータ転送に使用されます。
図 18.2-8 に , データレジスタ (IDARH2) のビット構成を示します。
図 18.2-8 データレジスタ (IDARH2) のビット構成
データレジスタ上位バイト
bit15
14
13
12
11
10
9
8
アドレス :0000018CH
−
−
−
−
−
−
−
−
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(-)
初期値→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
bit7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IDARH
データレジスタ
アドレス :0000018DH
読出し / 書込み→
初期値→
IDARH2
データレジスタ (IDARH2) のビット機能を , 以下に説明します。
[bit15 ∼ bit8] 未使用ビット
これらのビットは , 常に "0" が読み出されます。
[bit7 ∼ bit0] データビット (D7 ∼ D0)
データレジスタはシリアルデータ転送に使用され , MSB のデータを最初に転送しま
す。このレジスタは , 書込み側で 2 つのバッファに格納されるので , バスの使用中
(BB=1), 書込みデータをシリアル転送用にレジスタへロードすることができます。
IBCR2 レジスタの INT ビットがクリアされているか , またはバスがアイドルの場合
(IBSR2 の BB=0) に , データバイトは内部転送レジスタにロードされます。読出しア
クセスの場合は , 内部レジスタは直接読み出されます。そのため , IBCR2 レジスタ
の INT=1 の場合にのみ , このレジスタ内の受信データ値が有効になります。
501
第 18 章 I2C インタフェース (400 kHz)
18.2.8
クロック制御レジスタ (ICCR2)
この項では , クロック制御レジスタ (ICCR2) の機能について説明します。
■ クロック制御レジスタ (ICCR2) の機能
クロック制御レジスタ (ICCR2) には , 以下の機能があります。
• テストモード許可
• IO パッドノイズフィルタ許可
• I2C インタフェース動作許可
• シリアルクロック周波数設定
図 18.2-9 に , クロック制御レジスタ (ICCR2) のビット構成を示します。
図 18.2-9 クロック制御レジスタ (ICCR2) のビット構成
クロック制御レジスタ
bit15
14
13
12
11
10
9
8
アドレス :0000018EH
−
NSF
EN
CS4
CS3
CS2
CS1
CS0
読出し / 書込み→
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(1)
(1)
(1)
(1)
(1)
ICCR2
クロック制御レジスタ (ICCR2) の各ビットの機能を , 以下に説明します。
[bit15] 未使用ビット
このビットは , 常に "0" が読み出されます。
[bit14] IO パッドノイズフィルタ許可
このビットは , SDA, および SCL IO パッドに組み込まれたノイズフィルタを許可し
ます。このノイズフィルタは , パルス幅 最小 0ns から R- バスの最大 1 ∼ 1.5 サイク
ルまでのシングルスパイクを抑制します。抑制できる最大のスパイク波は , I2C の
信号 (SDA, SCL) と R- バスクロックの間の位相関係となります。インタフェースが
100K ビットを超えるデータ伝送速度で送受信している場合には , このビットを "1"
に設定する必要があります。
[bit13] EN(Enable)
このビットは , I2C インタフェースの動作を許可します。このビットを設定できる
のはユーザだけです。クリアは , ユーザだけでなくハードウェアでも行うことがで
きます。
0
インタフェース禁止
1
インタフェース許可
このビットを "0" に設定すると , IBSR2 レジスタと IBCR2 レジスタのすべてのビッ
ト (BER ビットと BEIE ビットは除く ) がクリアされます。モジュールは禁止され ,
I2C ラインはオープンのままになります。バスエラーが発生 (IBCR2 の BER=1) する
と , ハードウェアによってクリアされます。
502
第 18 章 I2C インタフェース (400 kHz)
<注意事項>
インタフェースが禁止されると , 送受信は直ちに停止されます。この場合 , I2C バス
が好ましくない状態に置かれることがあります。
[bit12 ∼ bit8] CS4 ∼ CS0(Clock preScaler)
これらのビットは , シリアルビット転送速度を選択します。このビットは , 同一書
込みアクセスでインタフェースが禁止される (EN=0) か , EN ビットをクリアする場
合に限り , 変更することができます。
これは次式により決まります。
ビット転送速度 = φ / (n × 12 + 18)
ノイズフィルタ禁止
n>0, φ : R- バスクロック CLKP (DIVR0 レジスタにより設定 )
ビット転送速度 = φ / (n × 12 + 19(+1))
ノイズフィルタ許可
n>0, φ : R- バスクロック CLKP (DIVR0 レジスタにより設定 )
(+1) : ノイズフィルタによって引き起こされる誤差
<注意事項>
ノイズ・フィルタに対応し ( 外部信号と内部クロックの関係に応じて遅延が異なる ) ,
2 番目の方程式では , (12n + 19) ∼ (12n + 20) の間の数値で割られます。
■ プリスケーラの設定
表 18.2-1 に , プリスケーラの設定内容を示します。
表 18.2-1 プリスケーラの設定内容
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
2
0
0
0
1
0
3
0
0
0
1
1
1
1
1
・・・
31
1
1
( 注意事項 ) プリスケーラの設定で , n=0 は SDA/SCL タイミングに違反するので使用しないでくだ
さい。
表 18.2-2 は , 一般的な R- バス・クロック設定での SCL 周波数の測定結果と , 100 K ビッ
ト動作および 400 K ビット動作での関連プリスケーラの推奨設定です。
503
第 18 章 I2C インタフェース (400 kHz)
表 18.2-2 プリスケーラ設定値と送信ビット転送速度の関係
100K ビット
( ノイズフィルタ禁止 )
R バスクロック
(CLKP)[MHz]
n
400K ビット
( ノイズフィルタ許可 )
ビット転送速度 [K ビット ]
32
<注意事項>
n
ビット転送速度 [K ビット ]
5
387.5
24
19
97.5
4
352.5
16
12
98
2
372
8
6
89
1
266.5
測定値は , 最新の 8 サイクル分の転送分析に基づいて決定されています。これは ,
全アドレスまたはデータ転送の初回サイクルが , 他のサイクルより長くかかるため
です。具体的には , アドレス転送の場合 , 初回サイクルは他のサイクルよりもプリ
スケーラの 3 カウント分長くかかります。データ転送の場合は , プリスケーラの 4
カウント分長くかかります ( 下図参照 ) 。
■ SCL 波形
図 18.2-10 SCL 波形
アドレス送信
9
6
7
5
7
5
データ送信
9
7
5
7
5
7
時間単位:プリスケーラ サイクル
図 18.2-10 は , アドレスおよびデータ・ビット送信時の波形図です。図内のタイミング
は , プリスケーラ・カウントです ( たとえば , 9 は , R バス・クロックに基づき , プリス
ケーラが 9 回カウントしたことを意味します ) 。図内のタイミングは , SCL タイミング
が , I2C バス上の他のデバイスからの影響を受けていないことを想定しています。
504
第 18 章 I2C インタフェース (400 kHz)
クロック禁止レジスタ (IDBL2)
18.2.9
この項では , クロック禁止レジスタ (IDBL2) の機能について説明します。
■ クロック禁止レジスタ (IDBL2) の機能
クロック禁止レジスタ (IDBL2) は , I2C モジュール用のクロック供給を制御するために
使用します。
図 18.2-11 に , クロック禁止レジスタ (IDBL2) のビット構成を示します。
図 18.2-11 クロック禁止レジスタ (IDBL2) のビット構成
クロック禁止レジスタ
bit7
6
5
4
3
2
1
0
アドレス : 0000018FH
−
−
−
−
−
−
−
DBL
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(R/W)
初期値→
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
IDBL2
クロック禁止レジスタ (IDBL2) のビットの機能を , 以下に説明します。
[bit0] DBL クロック禁止
このビットは , I2C モジュール用のクロック供給を制御するために使用します。こ
のビットが "1" の場合は , モジュールへのクロック供給が禁止され ( 節電のためな
ど ), I2C ラインはオープンのままになります。このビットは , リセットにより "0" に
初期化されます。
<注意事項>
このビットによりクロック供給を禁止すると , インタフェースは直ちに信号の送受
信を停止します。これにより , I2C バスが好ましくない状態に置かれることがあり
ます。
DBL ビットによりインタフェースを禁止 (DBL=1) すると , IDBL2 を除く I2C レジスタ
への読出しアクセスは未定義の値を返し , IDBL2 を除くすべての I2C レジスタへの書込
みアクセスは効果がなくなります。
505
第 18 章 I2C インタフェース (400 kHz)
18.3
I2C インタフェースの動作
I2C バスは , 2 本の双方向バスライン , シリアルデータライン (SDA), およびシリアル
クロックライン (SCL) を使用して通信を実行します。I2C インタフェースには , これ
らのラインに対応する 2 本のオープンドレイン I/O 端子 (SDA/SCL) があり , 布線論
理アプリケーションを使用できます。
■ 起動条件
バスが解放されているとき (IBSR2 の BB=0, IBCR2 の MSS=0), MSS ビットに "1" を書
き込むと , I2C インタフェースはマスタモードに入り , 起動条件を発生します。
バスのアイドル時 (MSS=0, BB=0) に "1" を書き込むと , 起動条件が発生し , IDAR2 レジ
スタの内容 ( アドレスデータ ) が送信されます。
バスがマスタモードで割込み状態のとき (IBCR2 の MSS=1, INT=1) に SCC ビットに "1"
を書き込むと , 再起動条件を発生できます。
バスの使用中 (IBSR2 の BB=1, TRX=0;IBCR2 の MSS=0, INT=0) に MSS ビットに "1" を
書き込むと , インタフェースはバスが解放されるまで待機して , 送信を開始します。
インタフェースを , その間に書込みアクセス ( データ受信 ) を伴うスレーブとしてアド
レス指定した場合は , 転送が終了しバスが再度解放されてから送信が開始されます。イ
ンタフェースがその間スレーブとしてデータを送信している場合には , バスが再度解
放されてもデータ送信を開始しません。次の割込み時に , インタフェースがスレーブと
してアドレス指定されたか (IBCR2 の MSS=0, IBSR2 の AAS=1), データバイトの送信に
成功したか(IBCR2のMSS=1), データバイトの送信に失敗したかどうか(IBSR2のAL=1)
をチェックすることが必要です。
他の状態で MSS ビット , または SCC ビットに "1" を書き込んでも意味を持ちません。
■ 停止状態
マスタモード (IBCR2 の MSS=1, INT=1) で MSS ビットに "0" を書き込むと停止条件が
発生し , デバイスはスレーブモードに移行します。他の状態で MSS ビットに "1" を書
き込んでも意味を持ちません。
MSSビットをクリアすると, インタフェースは停止条件を発生しようとしますが, 停止
条件が発生する前に別のマスタが SCL ラインをローに変えると , 停止条件の発生に失
敗します。この場合 , 次のバイトが転送された後で割込みが発生します。
■ スレーブアドレス検出
スレーブモードで起動条件が発生すると , BB は "1" に設定され , マスタデバイスから
送信されたデータは IDAR2 レジスタに受信されます。
8 ビットを受信した後 , ISMK レジスタの ENSB ビットが "1" である場合は , ISMK に格
納されたビットマスクが使用され , IDAR2 レジスタの内容が ISBA レジスタと比較され
ます。一致した場合は , AAS ビットは "1" に設定され , アクノリッジ信号がマスタに送
信されます。次に , 受信データの bit0(IDAR2 レジスタの bit0) が反転され , TRX ビット
に格納されます。
506
第 18 章 I2C インタフェース (400 kHz)
ITMK レジスタ内の ENTB ビットが "1" であり , 10 ビットアドレスヘッダ (11110, TA1,
TA0, 書込みアクセス ) が検出された場合は , インタフェースはアクノリッジ信号をマ
スタに送信し , 反転された最後のデータビットを TRX レジスタに格納します。割込み
は発生しません。次に転送されたバイトは (ITMK に格納されたビットマスクを使用し
て )ITBA レジスタの下位バイトと比較されます。一致した場合は , アクノリッジ信号
がマスタに送信され , AAS ビットが設定され , 割込みが発生します。
インタフェースがスレーブとしてアドレス指定され , 再起動条件を検出した場合は , 10
ビットアドレスヘッダ (11110, TA1, TA0, 読出しアクセス ) の受信後に AAS ビットが設
定され , 割込みが発生します。
10 ビット , および 7 ビットのアドレスとそのビットマスクには個別のレジスタがあるの
で , (ISMK の )ENSB ビットと (ITMK の )ENTB ビットを設定することにより , 両方のア
ドレスをインタフェースに確認させることができます。ITMK レジスタの RAL ビット
(AAS ビットが設定されている場合のみ , このビットが有効 ) を読み出すことにより , 受
信したスレーブアドレス長 (7 ビットまたは 10 ビット ) を判断できます。
また , インタフェースをマスタとしてのみ使用する場合は , 両方のビットを "0" に設定
することにより , インタフェースにスレーブアドレスを与えないことも可能です。
すべてのスレーブアドレスビットは , 対応するマスクレジスタ (ITMK, または ISMK) で
マスクできます。
■ スレーブアドレスマスク
マスクレジスタ (ITMK/ISMK) で "1" に設定したビットだけがアドレス比較のために使
用され , 他のビットはすべて無視されます。受信したスレーブアドレスは , IBSR2 レジ
スタのAASビットが"1"であれば, ITBAレジスタ(10ビットアドレス受信では, RAL=1),
または ISBA レジスタ (7 ビットアドレス受信では , RAL=0) から読み出すことができま
す。
ビットマスクがクリアされた場合には , インタフェースは常にスレーブとしてアドレ
ス指定されるので , バスモニタとして使用することができます。これは , 他にリスナー
スレーブがない場合でも , あらゆるスレーブアドレスの受信に対して肯定応答するた
め , 実際のバスモニタではないことに注意してください。
■ スレーブアドレッシング
マスタモードで起動条件が発生すると , BB ビットと TRX ビットは "1" に設定され ,
IDAR2 レジスタの内容は MSB 順で送信されます。アドレスデータの送信後にスレー
ブデバイスからアクノリッジ信号を受信すると , 送信データの bit0( 送信後の IDAR2 レ
ジスタの bit0) は反転され , TRX ビットに格納されます。スレーブの応答は , IBSR2 レ
ジスタの LRB ビットを使用してチェックできます。この手順は , 再起動条件にも当て
はまります。
書込みアクセスのために 10 ビットスレーブをアドレス指定するには , 2 バイトを送信
する必要があります。最初のバイトは , ビットシーケンス "1 1 1 1 0 A9 A8 0" から構成
される 10 ビットアドレスヘッダであり , 10 ビットスレーブアドレスの下位 8 ビット
(A7 ∼ A0) を含む 2 番目のバイトが続きます。
上記のバイトシーケンスを送信すると , ビットスレーブが読出しアクセスされ , 読出し
アクセス(1 1 1 1 0 A9 A8 1)を伴う10ビットアドレスヘッダによって再起動条件(IBCR2
の SCC ビット ) が続きます。
507
第 18 章 I2C インタフェース (400 kHz)
アドレスデータバイトをまとめると , 次のようになります。
•
7 ビットスレーブ , 書込みアクセス : 起動条件 - A6 A5 A4 A3 A2 A1 A0 0
•
7 ビットスレーブ , 読出しアクセス : 起動条件 - A6 A5 A4 A3 A2 A1 A0 1
• 10 ビットスレーブ , 書込みアクセス : 起動条件 - 1 1 1 1 0 A9 A8 0 - A7 A6 A5 A4
A3 A2 A1 A0
• 10 ビットスレーブ , 読出しアクセス : 起動条件 - 1 1 1 1 0 A9 A81 - A7 A6 A5 A4 A3
A2 A1 A0 - 再起動 - 1 1 1 1 0 A9 A8 1
■ 調停 / マルチマスタ動作
マルチマスタ動作でのバス調停は, MB91360シリーズの製品ではサポートしていません。
■ アクノリッジ
アクノリッジビットは , 受信側から送信側に送信されます。IBCR2 レジスタの ACK
ビットを使用して , データバイトを受信したときに , アクノリッジを送信するかどうか
を選択できます。
データをスレーブモードで送信 ( 別のマスタからの読出しアクセス ) しても , マスタか
らのアクノリッジが受信されない場合は , TRX ビットが "0" に設定され , デバイスは受
信モードに移行します。これにより , スレーブが SCL ラインを解放したらすぐ , マス
タは停止条件を発生できます。
マスタモードでは , IBSR2 レジスタの LRB ビットを読み出すことにより , スレーブに
よるアクノリッジをチェックできます。
508
第 18 章 I2C インタフェース (400 kHz)
18.4
プログラミングフローチャート
I2C インタフェース (400 kHz) モジュールを使用するための , 送信 , および受信のプ
ログラミング例を示します。
■ スレーブのアドレッシングとデータ送信の例
図 18.4-1 に , スレーブのアドレッシングとデータ送信例のフローチャートを示します。
図 18.4-1 スレーブのアドレッシングとデータ送信例のフローチャート
7ビットスレーブのアドレシング
データ送信
開始
開始
書き込み用スレーブを
アドレス指定
BERビットをクリア
(設定されている場合);
インタフェース許可 EN: = 1;
IDAR2:= データバイト;
INT: = 0
IDAR2: = sl.address<<1+RW;
MSS : = 1; INT : = 0
INT=1?
NO
NO
INT=1?
YES
YES
YES
BER = 1?
YES
バスエラー
BER = 1?
NO
NO
AL = 1?
YES
ACK?
NO
(LRB = 0?)
転送再開
AASか
どうかを
チェック
AL = 1?
YES
転送再開
AASか
どうかを
チェック
NO
ACK?
NO
(LRB = 0?)
YES
YES
データ送信準備完了
最終バイト
を伝送
したか?
YES
NO
スレーブからACKなし
再起動条件
または停止条件を発生
転送終了
再起動条件
または停止条件を発生
509
第 18 章 I2C インタフェース (400 kHz)
■ データ受信の例
図 18.4-2 に , データ受信例のフローチャートを示します。
図 18.4-2 データ受信例のフローチャート
開始
読出し用スレーブをアドレス指定
IBCR2のACKビットがスレーブから
読み出す最後のバイトであった場
合は,このビットをクリアする;
INT: = 0
INT = 1?
NO
YES
BER = 1?
YES
NO
NO
最終バイト
を伝送
したか?
YES
転送終了
再起動条件
または停止条件を発生
510
バスエラー
第 18 章 I2C インタフェース (400 kHz)
■ 割込みハンドラの例
図 18.4-3 に , 割込みハンドラの例のフローチャートを示します。
図 18.4-3 割込みハンドラの例のフローチャート
開始
INT=1?
ほかのモジュー
ルからの割込み
受信
NO
YES
BER = 1?
バスエラー
YES
NO
GCA = 1?
NO
NO
YES
転送失敗を記憶
して再試行
AAS = 1?
YES
スレーブとして
の汎用コール
YES
AL = 1?
AL = 1?
NO
NO
LRB = 1?
YES
次のINTで新しい
データ転送を開始
必要に応じてACK
ビットを変更
YES
YES
ADT = 1?
NO
NO
TRX = 1?
TRX = 1?
調停消失
転送再開
スレーブから
ACKなし
再起動条件
または
停止条件を
発生
YES
YES
NO
NO
IDAR2レジスタからの
受信バイトを読み出す
必要に応じてACK
ビットを変更
次に送信するバイト
をIDAR2レジスタに
入れる
IDAR2レジスタからの
受信バイトを読み出
す必要に応じてACK
ビットを変更
次に送信するバイト
をIDAR2レジスタに
入れるか,または
MSSをクリアする
INTビットをクリア
ISRの終了
511
第 18 章 I2C インタフェース (400 kHz)
512
第 19 章
16 ビット I/O タイマ
MB91360 シリーズには , 2 つの 16 ビットフリーラ
ンタイマモジュール , 2 つのアウトプットコンペア
モジュール , および 2 つのインプットキャプチャモ
ジュールが含まれ , 4 つの入力チャネルと 4 つの出
力チャネルをサポートしています。ここでは , 16
ビットフリーランタイマ , アウトプット 0/1, およ
びインプットキャプチャ 0/1 についてのみ説明しま
す。
これら以外のモジュールは同一の機能を持ち , その
レジスタアドレスは I/O マップにあります。
19.1 16 ビット I/O タイマの概要
19.2 16 ビット I/O タイマのレジスタ
19.3 16 ビット I/O タイマの動作
19.4 動作タイミング
513
第 19 章 16 ビット I/O タイマ
19.1
16 ビット I/O タイマの概要
16 ビット I/O タイマは , 16 ビットフリーランタイマ , アウトプットコンペアモ
ジュール , およびインプットキャプチャモジュールから構成されています。
ここでは , 16 ビット I/O タイマの機能概要について説明します。
■ 16 ビット I/O タイマの機能
以下に , 16 ビットフリーランタイマ , アウトプットコンペアモジュール , およびイン
プットキャプチャモジュールの機能概要を説明します。
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , 16 ビットアップカウンタ , データレジスタ , 制御ステー
タスレジスタ , およびプリスケーラで構成されます。このタイマカウンタの出力値は ,
インプットキャプチャモジュール , およびアウトプットコンペアモジュールの基本タ
イマとして使用されます。
• 4 つのカウンタクロックが使用可能です。
- φ= 周辺機器用クロック (CLKP): φ/4, φ/16, φ/32, φ/64
• カウンタオーバフローやコンペアレジスタ 0 との一致で割込みを発生できます。
• リセット , ソフトウェアクリア , またはコンペアレジスタ 0 との一致でカウンタ値
を "0000H" に初期化できます。
● アウトプットコンペアモジュール ( 各モジュールに 2 チャネル )
アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 比較出力ラッ
チ , および制御ステータスレジスタで構成されます。16 ビットフリーランタイマ値が
コンペアレジスタ値と一致すると , 出力レベルが反転し , 割込みが発生します。
• 2 つのコンペアレジスタは独立して使用できます。
- コンペアレジスタに対応する出力端子 , および割込みフラグ
• 出力端子は , 2 つのコンペアレジスタのペアに基づいて制御できます。出力端子は 2
つのコンペアレジスタによって反転できます。
• 出力端子の初期値が設定できます。
• 比較が一致すると , 割込みを発生します。
● インプットキャプチャモジュール ( 各モジュールに 2 チャネル )
インプットキャプチャモジュールは , 2 つの独立した外部入力端子に対応する , 16 ビッ
トインプットキャプチャデータレジスタ , 制御ステータスレジスタ , および禁止レジス
タで構成されます。16 ビットフリーランタイマの値をキャプチャレジスタに記憶でき ,
外部入力端子からの信号入力のエッジ検出と同時に割込みを発生します。
• 外部入力信号の検出エッジを指定できます。
- 立上り , 立下り , あるいは両方のエッジ
• 2 つの入力チャネルは独立した動作が可能です。
• 外部入力信号の有効エッジで割込みを発生できます。
514
第 19 章 16 ビット I/O タイマ
■ 16 ビット I/O タイマのブロックダイヤグラム
図 19.1-1 に , 16 ビット I/O タイマのブロックダイヤグラムを示します。
図 19.1-1 16 ビット I/O タイマのブロックダイヤグラム
制御ロジック
各
ブ
ロ
ッ
ク
へ
割込み
16ビットフリーランタイマ
16ビットタイマ
クリア
アウトプットコンペア0
コンペアレジスタ0
バ
ス アウトプットコンペア1
コンペアレジスタ1
T
Q
OUT0
T
Q
OUT1
エッジ選択
IN0
エッジ選択
IN1
インプットキャプチャ0
キャプチャレジスタ0
インプットキャプチャ1
キャプチャレジスタ1
515
第 19 章 16 ビット I/O タイマ
19.2
16 ビット I/O タイマのレジスタ
16 ビット I/O タイマで使用するレジスタの機能について説明します。
■ 16 ビット I/O タイマのレジスタ一覧
16 ビット I/O タイマは , 16 ビットフリーランタイマ , アウトプットコンペアモジュー
ル , およびインプットキャプチャモジュールの 3 つのブロックから構成されています。
各ブロックのレジスタ一覧を , 図 19.2-1 に示します。
図 19.2-1 16 ビット I/O タイマのレジスタ一覧
タイマデータレジスタ (TCDT)
bit
15
14
13
12
11
10
9
8
アドレス : 000000C8H/000000CCH
T15
T14
T13
T12
T11
T10
T09
T08
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
読出し / 書込み→ (R/W)
初期値→
bit
アドレス : 000000C9H/000000CDH
(X)
7
6
5
4
3
2
1
0
T07
T06
T05
T04
T03
T02
T01
T00
(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
予備
IVF
IVFE
STOP
MODE
CLR
CLK1
CLK0
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(-)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
15
C15
14
C14
13
C13
12
C12
11
C11
10
C10
9
C09
8
C08
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
読出し / 書込み→ (R/W)
初期値→
制御ステータスレジスタ (TCCS)
bit
アドレス : 000000CBH/000000CFH
読出し / 書込み→ (R/W)
初期値→
コンペアレジスタ (OCCP)
bit
アドレス : 000000BCH/000000CEH
000000C0H/000000C2H
読出し / 書込み→ (R/W)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
bit
7
C07
6
C06
5
C05
4
C04
3
C03
2
C02
1
C01
0
C00
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
アドレス : 000000BDH/000000CFH
000000C1H/000000C3H
読出し / 書込み→ (R/W)
初期値→
(X)
( 続く )
516
第 19 章 16 ビット I/O タイマ
( 続き )
制御ステータスレジスタ (OCS)
bit
15
14
アドレス : 000000B8H
13
12
11
−
読出し / 書込み→
(-)
−
−
CMOD
(-)
(-)
(R/W)
初期値→
(-)
(-)
(-)
bit
7
6
アドレス : 000000B9H ICP1
読出し / 書込み→ (R/W)
初期値→
(0)
10
9
8
−
−
OTD1
OTD0
(-)
(-)
(R/W)
(R/W)
(0)
(-)
(-)
(0)
(0)
5
4
3
2
1
0
ICP0
ICE1
ICE0
−
−
CST1
CST0
(R/W)
(R/W)
(R/W)
(-)
(-)
(R/W)
(R/W)
(0)
(0)
(0)
(-)
(-)
(0)
(0)
14
CP14
13
CP13
12
CP12
11
CP11
10
CP10
9
CP09
8
CP08
キャプチャレジスタ (IPCP)
bit
15
アドレス : 000000B0H/000000B2H CP15
000000B4H/000000B6H
読出し / 書込み→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
6
CP06
5
CP05
4
CP04
3
CP03
2
CP02
1
CP01
0
CP00
bit
7
CP07
アドレス : 000000B1H/000000B3H
000000B5H/000000B7H
読出し / 書込み→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
7
6
5
4
3
2
1
0
アドレス : 000000ADH/000000AFH 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)
bit
7
6
5
4
3
2
1
0
アドレス : 000000ACH/000000AEH
−
−
−
−
−
DBLT
DBLO
DBLI
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(R/W)
(R/W)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(-)
(0)
(0)
(0)
制御ステータスレジスタ (ICS)
bit
初期値→
禁止レジスタ (IOTDBL)
517
第 19 章 16 ビット I/O タイマ
16 ビットフリーランタイマ
19.2.1
16 ビットフリーランタイマは , 16 ビットアップカウンタ , およびタイマ制御ステー
タスレジスタで構成されます。本タイマのカウント値は , アウトプットコンペアモ
ジュール , およびインプットキャプチャモジュールの基本タイマとして使用されま
す。
■ 16 ビットフリーランタイマの機能概要
• 4 種類のカウンタクロック周波数が使用可能です。
• カウンタ値のオーバフローで割込みを発生できます。
• モードにより , コンペアレジスタ 0 との一致でカウンタ値を初期化できます。
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 19.2-2 に , 16 ビットフリーランタイマのブロックダイヤグラムを示します。
図 19.2-2 16 ビットフリーランタイマのブロックダイヤグラム
f CLKP
割込み要求
IVF
IVFE STOP
MODE
分周器
CLR CLK1 CLK0
コンパレータ0
バス
16ビットアップカウンタ
クロック
カウント値出力
T15~T00
■ 16 ビットフリーランタイマのレジスタ機能
以下に , 16 ビットフリーランタイマで使用するレジスタの機能を説明します。
● タイマデータレジスタ (TCDT)
図 19.2-3 に , タイマデータレジスタのビット構成を示します。
図 19.2-3 タイマデータレジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000C8H
T15
T14
T13
T12
T11
T10
T09
T08
属性→
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
アドレス : 000000C9H
bit
T07
T06
T05
T04
T03
T02
T01
T00
属性→
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
X
X
X
X
X
X
X
初期値→
518
第 19 章 16 ビット I/O タイマ
タイマデータレジスタで , 16 ビットフリーランタイマのカウント値を読み出すことが
できます。カウント値はリセット時に "0000H" にクリアされます。このレジスタに値
を書き込むことによって , タイマの値を設定できます。ただし , 必ず動作の停止中
(STOP=1) に値を書き込むようにしてください。
タイマデータレジスタのアクセスには , ワード長のアクセス命令を使用します。
16 ビットフリーランタイマは , 次の要因で初期化されます。
• リセット
• 制御ステータスレジスタのクリアビット (CLR)
• コンペアレジスタ 0 とタイマカウンタの値の一致
● 制御ステータスレジスタ (TCCS)
図 19.2-4 に , 制御ステータスレジスタのビット構成を示します。
図 19.2-4 制御ステータスレジスタのビット構成
7
6
5
4
3
2
1
0
アドレス : 000000CBH
bit
予約
IVF
IVFE
STOP
MODE
CLR
CLK1
CLK0
属性→
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
-
0
0
0
0
0
0
0
初期値→
[bit7] 予約ビット
このビットには , 必ず "0" を書き込みます。
[bit6] IVF
このビットは , 16 ビットフリーランタイマの割込み要求フラグです。
16 ビットフリーランタイマがオーバフローした場合 , またはコンペアレジスタ 0 と
の一致でカウンタがクリアされた場合は , このビットが "1" に設定されます。
割込み要求許可ビット (bit5 : IVFE) が設定されている場合は , 割込みが発生します。
このビットは , "0" を書き込むとクリアされます。"1" の書込みは無効です。
リードモディファイライト命令では , 常に "1" が読み出されます。
0
割込み要求なし ( 初期値 )
1
割込み要求あり
[bit5] IVFE
IVFE は , 16 ビットフリーランタイマの割込み許可ビットです。
このビットが "1" のときに割込みフラグ (bit6 : IVF) が "1" に設定されると , 割込み
が発生します。
0
割込み禁止 ( 初期値 )
1
割込み許可
[bit4] STOP
STOP ビットは , 16 ビットフリーランタイマを停止させるときに使用します。
519
第 19 章 16 ビット I/O タイマ
このビットに "1" を書き込むとタイマが停止します。"0" を書き込むとタイマが起
動します。
0
カウンタ許可 ( 動作 )( 初期値 )
1
カウンタ禁止 ( 停止 )
( 注意事項 )
16 ビットフリーランタイマが停止すると , 出力の比較動作が停止し
ます。
[bit3] MODE
MODE ビットで , 16 ビットフリーランタイマのリセット条件を設定します。
"0" を設定すると , カウンタ値は , リセット , またはクリアビット (bit2 : CLR) で初
期化できます。
"1" を設定すると , カウンタ値は , リセット , およびクリアビット (bit2 : CLR) のほ
かに , コンペアレジスタ 0 との一致でも初期化できます。
0
リセットまたはクリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , またはコンペアレジスタ 0 との一致による
初期化
( 注意事項 )
クリアビット , およびコンペアレジスタとの一致によるタイマの初
期化は , タイマ値が変化したときに行われます。
[bit2] CLR
CLRビットは , 動作中の 16 ビットフリーランタイマの値を "0000H" に初期化します。
"1" に設定すると , カウンタ値は "0000H" に初期化されます。"0" の書込みは無効で
す。このビットの読出し値は常に "0" です。カウンタ値が初期化されるのは , カウ
ント値が変化したときです。
0
無効 ( 初期値 )
1
カウンタ値を "0000H" に初期化
( 注意事項 )
タイマの停止中にカウンタ値を初期化する場合は , データレジスタ
に "0000H" を書き込んでください。
[bit1, bit0] CLK1, CLK0
CLK1, および CLK0 を使用して , 16 ビットフリーランタイマのカウントクロックを
選択します。このビットに値が書き込まれると , クロックは直ちに更新されます。
したがって , このビットに値を書き込む前に , アウトプットコンペア , およびイン
プットキャプチャの動作が停止していることを確認してください。
表 19.2-1 に , CLK1, CLK0 の設定値を示します。
520
第 19 章 16 ビット I/O タイマ
表 19.2-1 CLK1, CLK0 の設定値
CLK1
CLK0
カウントクロック
φ=16 MHz
φ=8 MHz
φ=4 MHz
φ=1 MHz
0
0
φ/4
0.25 µs
0.5 µs
1µs
4µs
0
1
φ/16
1µs
2µs
4µs
16µs
1
0
φ/32
2µs
4µs
8µs
32µs
1
1
φ/64
4µs
8µs
16µs
64µs
φ : 周辺クロック (CLKP)
521
第 19 章 16 ビット I/O タイマ
19.2.2
アウトプットコンペアモジュール
アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 つの比
較出力端子 , および制御レジスタで構成されます。本モジュールのコンペアレジス
タに書き込まれた値が 16 ビットフリーランタイマの値と一致した場合は , 端子の出
力レベルを反転して割込みを発生できます。
■ アウトプットコンペアモジュールの機能概要
• 2 つのコンペアレジスタは , 独立して使用できます。設定に応じて , 2 つのコンペア
レジスタを端子出力の制御に使用できます。
• 端子出力の初期値が指定可能です。
• 比較の結果が一致すれば , 割込みを発生できます。
■ アウトプットコンペアモジュールのブロックダイヤグラム
図 19.2-5 に , アウトプットコンペアモジュールのブロックダイヤグラムを示します。
図 19.2-5 アウトプットコンペアモジュールのブロックダイヤグラム
16ビットタイマカウンタ値(T15~T00)
T
比較制御
Q
OUT0
Q
OUT1
コンペアレジスタ0
16ビットタイマカウンタ値(T15~T00)
バス
比較制御
CMOD
T
コンペアレジスタ1
ICP1 ICP0 ICE1 ICE0
コントローラ
比較1割込み
比較0割込み
制御ブロック
522
第 19 章 16 ビット I/O タイマ
■ アウトプットコンペアモジュールのレジスタ機能
以下に , アウトプットコンペアモジュールで使用するレジスタの機能を説明します。
● コンペアレジスタ (OCCP)
図 19.2-6 に , コンペアレジスタのビット構成を示します。
図 19.2-6 コンペアレジスタのビット構成
bit
000000BCH/000000BEH
15
14
13
12
11
10
9
8
C15
C14
C13
C12
C11
C10
C09
C08
属性→
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
000000BDH/000000BFH
7
6
5
4
3
2
1
0
C07
C06
C05
C04
C03
C02
C01
C00
属性→
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 ビットフリーランタイマの値と一致すると , 比較信号が発生
し , アウトプットコンペア割込みフラグが設定されます。出力が許可されると , コンペ
アレジスタに対応する出力レベルが反転します。
● 制御ステータスレジスタ (OCS01)
図 19.2-7 に , 制御ステータスレジスタのビット構成を示します。
図 19.2-7 制御ステータスレジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000B8H
−
−
−
CMOD
−
−
OTD1
OTD0
属性→
-
-
-
R/W
-
-
R/W
R/W
初期値→
-
-
-
0
-
-
0
0
bit
7
6
5
4
3
2
1
0
アドレス : 000000B9H
ICP1
ICP0
ICE1
ICE0
−
−
CST1
CST0
属性→
R/W
R/W
R/W
R/W
-
-
R/W
R/W
0
0
0
0
-
-
0
0
初期値→
以下に , 制御ステータスレジスタの各ビットの機能を説明します。
[bit15 ∼ bit13] 未使用ビット
これらのビットは , 未使用ビットです。
[bit12] CMOD
CMOD は , 一致により端子出力レベルの反転モードを切り換えるために使用しま
す。
523
第 19 章 16 ビット I/O タイマ
• CMOD=0( デフォルト ) の場合 , コンペアレジスタに対応する端子の出力レベルが反
転します。
- OUT0 : コンペアレジスタ 0 との一致でレベルが反転します。
- OUT1 : コンペアレジスタ 1 との一致でレベルが反転します。
• CMOD=1 の場合 , コンペアレジスタ 0 については , CMOD=0 の場合と同じようにし
て出力レベルが反転します。一方 , コンペアレジスタ 1(OUT1) に対応する端子の出
力レベルは , コンペアレジスタ 0, または 1 との一致で反転します。コンペアレジス
タ 0 と 1 が同じ値の場合 , 単一のコンペアレジスタによる場合と同じ動作が実行さ
れます。
- OUT0 : コンペアレジスタ 0 との一致でレベルが反転します。
- OUT1 : コンペアレジスタ 0 または 1 との一致でレベルが反転します。
[bit11, bit10] 未使用ビット
これらのビットは , 未使用ビットです。
[bit9, bit8] OTD1, OTD0
アウトプットコンペア端子の出力が許可されている場合に , 端子出力レベルを変更
するために使用します。比較端子出力の初期値は "0" です。値を書き込む前に , 比
較動作が停止していることを確認してください。読出し時には , これらのビットは
アウトプットコンペア端子の出力値を示します。
0
比較端子出力を "0" に設定します ( 初期値 )。
1
比較端子出力を "1" に設定します。
( 注意事項 )
OTD1 はアウトプットコンペア 1 に , OTD0 はアウトプットコンペア
0 に対応します。
[bit7, bit6] ICP1, ICP0
アウトプットコンペア割込みフラグとして使用します。コンペアレジスタの値が 16
ビットフリーランタイマの値と一致すると , これらのビットに "1" が設定されます。
割込み要求ビット (ICE1, および ICE0) が許可されている場合は , ICP1, および ICP0
のビットが設定されると , アウトプットコンペア割込みが発生します。これらの
ビットは , "0" を書き込むとクリアされます。"1" の書込みは無効です。リードモ
ディファイライト命令では , 常に "1" が読み出されます。
0
比較の一致なし ( 初期値 )
1
比較の一致あり
( 注意事項 )
ICP1 はアウトプットコンペア 1 に , ICP0 はアウトプットコンペア 0
に対応します。
[bit5, bit4] ICE1, ICE0
アウトプットコンペア割込み許可フラグとして使用します。これらのビットに "1"
が書き込まれているときに割込みフラグ (ICP1, または ICP0) が設定されると , アウ
トプットコンペア割込みが発生します。
0
アウトプットコンペア割込み禁止 ( 初期値 )
1
アウトプットコンペア割込み許可
( 注意事項 )
524
ICE1 はアウトプットコンペア 1 に , ICE0 はアウトプットコンペア 0
に対応します。
第 19 章 16 ビット I/O タイマ
[bit3, bit2] 未使用ビット
これらのビットは , 未使用ビットです。
[bit1, bit0] CST1, CST0
これらのビットは , 16 ビットフリーランタイマとの比較を許可するために使用しま
す。比較動作を許可する前に , 必ずコンペアレジスタに値を書き込んでください。
0
比較動作の禁止 ( 初期値 )
1
比較動作の許可
( 注意事項 )
CST1 はアウトプットコンペア 1 に , CST0 はアウトプットコンペア
0 に対応します。
アウトプットコンペアは , 16 ビットフリーランタイマのクロックに同期しているので ,
16 ビットフリーランタイマが停止すると比較動作も停止します。
525
第 19 章 16 ビット I/O タイマ
19.2.3
インプットキャプチャモジュール
インプットキャプチャモジュールは , 外部入力信号の立上りエッジ , 立下りエッジ ,
またはその両方を検出して , 16 ビットフリーランタイマの値をレジスタに記憶しま
す。また , エッジ検出のときに , 割込みを発生することもできます。インプットキャ
プチャモジュールは , 2 つのインプットキャプチャデータレジスタ , および 1 つの制
御レジスタで構成されます。
各インプットキャプチャモジュールには , 対応する外部入力端子があります。
■ インプットキャプチャモジュールの機能概要
• 外部入力の検出エッジは , 次の 3 種類から選択できます。
- 立上りエッジ
- 立下りエッジ
- 立上り , あるいは立下りエッジ
• 外部入力の有効エッジを検出して , 割込みを発生できます。
■ インプットキャプチャモジュールのブロックダイヤグラム
図 19.2-8 に , インプットキャプチャモジュールのブロックダイヤグラムを示します。
図 19.2-8 インプットキャプチャモジュールのブロックダイヤグラム
インプットキャプチャデータレジスタ0
エッジ検出
16ビットタイマカウンタ値(T15~ T00)
EG11
インプットキャプチャデータレジスタ1
エッジ検出
EG10
IN0
EG01
EG00
バス
ICP1
ICP0
ICE1
IN1
ICE0
割込み
割込み
526
第 19 章 16 ビット I/O タイマ
■ インプットキャプチャモジュールのレジスタ機能
以下に , インプットキャプチャモジュールで使用するレジスタの機能を説明します。
● インプットキャプチャデータレジスタ (IPCP)
図 19.2-9 に , インプットキャプチャデータレジスタのビット構成を示します。
図 19.2-9 インプットキャプチャデータレジスタのビット構成
bit
000000B0H/000000B2H
15
14
13
12
11
10
9
8
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
属性→
R
R
R
R
R
R
R
R
初期値→
X
X
X
X
X
X
X
X
bit
000000B1H/000000B3H
7
6
5
4
3
2
1
0
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
属性→
R
R
R
R
R
R
R
R
初期値→
X
X
X
X
X
X
X
X
このレジスタは , 対応する外部端子入力の波形から有効エッジを検出したときに , 16
ビットタイマの値を記憶します。
<注意事項>
本レジスタのアクセスにはワードモードを使用してください。本レジスタは書込み
禁止です。
● 制御ステータスレジスタ (ICS)
図 19.2-10 に , 制御ステータスレジスタのビット構成を示します。
図 19.2-10 制御ステータスレジスタのビット構成
7
アドレス :
bit
000000ADH /000000AFH ICP1
6
5
4
3
2
1
0
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] ICP1, ICP0
インプットキャプチャ割込みフラグとして使用します。外部入力端子から有効エッ
ジが検出されると , これらのビットが "1" に設定されます。割込み許可ビット (ICE0,
および ICE1) が設定されていると , 有効エッジの検出で割込みを発生できます。
これらのビットに "0" を書き込むとクリアされます。"1" の書込みは無効です。リー
ドモディファイライト命令では常に "1" が読み出されます。
0
有効エッジを検出しない ( 初期値 )
1
有効エッジを検出する
( 注意事項 )
ICP0 はインプットキャプチャ 0 に , ICP1 はインプットキャプチャ 1
に対応します。
527
第 19 章 16 ビット I/O タイマ
[bit5, bit4] ICE1, ICE0
インプットキャプチャ割込みの許可に使用します。これらのビットが "1" のときに
割込みフラグ (ICP0 または ICP1) が設定されると , インプットキャプチャ割込みが
発生します。
<注意事項>
0
割込み禁止 ( 初期値 )
1
割込み許可
ICE0 はインプットキャプチャ 0 に , ICE1 はインプットキャプチャ 1 に対応します。
[bit3 ∼ bit0] EG11, EG10, EG01, EG00
外部入力の有効エッジの極性を指定するために使用します。これらのビットは , イ
ンプットキャプチャ動作の許可にも使用します。
EG11
EG01
EG10
EG00
0
0
エッジ検出なし ( 停止 )
0
1
立上りエッジ検出
1
0
立下りエッジ検出
1
1
両エッジ検出
( 注意事項 )
エッジ検出の極性
( 初期値 )
EG01, EG00 はインプットキャプチャ 0 に , EG11, EG10 はインプット
キャプチャ 1 に対応します。
● 禁止レジスタ (IOTDBL)
図 19.2-11 に , 禁止レジスタのビット構成を示します。
図 19.2-11 禁止レジスタのビット構成
アドレス :
bit
000000ACH/000000AEH
属性→
初期値→
7
6
5
4
3
2
1
0
−
-
−
-
−
-
−
-
−
-
DBLT
DBLO
DBLI
R/W
R/W
R/W
-
-
-
-
-
0
0
0
[bit2] DBLT
このビットを使用して , フリーランタイマモジュールのクロックを禁止できます。
"1" でクロックが禁止になります。
[bit1] DBLO
このビットを使用して , ( 両チャネルの ) アウトプットコンペアモジュールのクロッ
クを禁止できます。"1" でクロックが禁止になります。
[bit0] DBLI
このビットを使用して , ( 両チャネルの ) インプットキャプチャモジュールのクロッ
クを禁止できます。"1" でクロックが禁止になります。
528
第 19 章 16 ビット I/O タイマ
16 ビット I/O タイマの動作
19.3
16 ビット I/O タイマの動作について説明します。
■ 16 ビットフリーランタイマ
16 ビットフリーランタイマは , リセットの解除後にカウンタ値 "0000" からカウントを
開始します。このカウンタ値は , 16 ビットアウトプットコンペア , および 16 ビットイ
ンプットキャプチャの動作のリファレンスタイムとして使用されます。
カウンタの値は , 次の条件でクリアされます。
• オーバフローが発生したとき
• アウトプットコンペアレジスタ 0 と一致したとき ( これはモードによります )
• 動作中に , TCCS レジスタの CLR ビットに "1" が書き込まれたとき
• 停止中に , TCDT レジスタに "0000H" が書き込まれたとき
• リセット時
オーバフローが発生したときや, コンペアレジスタ0と一致しカウンタがクリアされた
ときに , 割込みを発生させることが可能です。比較の一致割込みには , 適切なモード設
定が必要です。
図 19.3-1 にオーバフローによるカウンタクリアのタイミングチャートを , 図 19.3-2 に
アウトプットコンペアレジスタ 0 との一致によるカウンタクリアのタイミングチャー
トを示します。
図 19.3-1 オーバフローによるカウンタクリアのタイミングチャート
カウンタ値
FFFF H
オーバフロー
BFFF H
7FFF H
3FFF H
0000 H
時間
リセット
割込み
529
第 19 章 16 ビット I/O タイマ
図 19.3-2 アウトプットコンペアレジスタ 0 との一致によるカウンタクリアのタイミングチャート
カウンタ値
FFFF H
一致
BFFF H
一致
7FFF H
3FFF H
時間
0000 H
リセット
コンペア
レジスタ値
割込み
BFFF
H
■ アウトプットコンペアモジュール
16 ビットアウトプットコンペアモジュールでは , 指定したコンペアレジスタ値が 16
ビットフリーランタイマ値と一致したときに , 割込み要求フラグを設定し , 出力レベル
を反転することができます。
● コンペアレジスタ 0, 1 を使用しているときの出力波形の例
図 19.3-3 に , コンペアレジスタ 0, 1 を使用しているときの出力波形の例を示します。
出力の初期値は "0" です。
2 つのコンペアレジスタを使用して , 出力レベルを変更できます (CMOD=1 のとき )。
図 19.3-3 コンペアレジスタ 0, 1 を使用しているときの出力波形の例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
0000 H
リセット
コンペア
レジスタ0の値
コンペア
レジスタ1の値
OUT0
OUT1
コンペア0
割込み
コンペア1
割込み
530
時間
BFFF
H
7FFF H
第 19 章 16 ビット I/O タイマ
● 2 つのコンペアレジスタによる出力波形の例
図 19.3-4 に , 2 つのコンペアレジスタによる出力波形の例を示します。
出力の初期値は "0" です。
図 19.3-4 2 つのコンペアレジスタによる出力波形の例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
0000 H
リセット
コンペア
レジスタ0の値
コンペア
レジスタ1の値
時間
BFFF
H
7FFF H
OUT0
OUT1
コンペア0
割込み
コンペア1
割込み
比較0および1に対応
531
第 19 章 16 ビット I/O タイマ
■ インプットキャプチャモジュール
16ビットインプットキャプチャでは, 指定されたエッジを検出すると, 16ビットフリー
ランタイマ値を取り込んでインプットキャプチャデータレジスタに書き込むことによ
り , 割込みを発生することができます。
● インプットキャプチャの取込みタイミングの例
図 19.3-5 に , インプットキャプチャの取込みタイミングの例を示します。
図 19.3-5 インプットキャプチャの取込みタイミングの例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
時間
0000H
リセット
IN0
IN1
INの例
キャプチャ0
未定義
キャプチャ1
未定義
キャプチャの例
キャプチャ0
の割込み
キャプチャ1
の割込み
キャプチャ割込み
未定義
注意事項:キャプチャ0 :立上りエッジ
キャプチャ1 :立下りエッジ
キャプチャ例:両エッジ
532
3FFF H
7FFF H
BFFF H
7FFF H
第 19 章 16 ビット I/O タイマ
19.4
動作タイミング
16 ビットフリーランタイマ , アウトプットコンペアモジュール , およびインプット
キャプチャモジュールの動作タイミングについて説明します。
■ 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力クロック ( 内部クロック , または外部クロック ) で
インクリメントされます。外部クロックを選択すると , 16 ビットフリーランタイマは
立上りエッジでインクリメントされます。
● フリーランタイマのカウントタイミング
図 19.4-1 に , フリーランタイマのカウントタイミングを示します。
図 19.4-1 フリーランタイマのカウントタイミング
φ
外部クロック入力
カウントクロック
N
カウンタ値
N+1
カウンタのクリアは , リセット , ソフトウェアクリア , またはコンペアレジスタ 0 との
一致で行うことができます。リセット , またはソフトウェアクリアの場合 , カウンタは
直ちにクリアされます。コンペアレジスタ 0 との一致の場合 , カウンタはカウントタイ
ミングに同期してクリアされます。
● フリーランタイマのクリアタイミング
図 19.4-2 に , コンペアレジスタ 0 との一致によるフリーランタイマのクリアタイミン
グを示します。
図 19.4-2 フリーランタイマのクリアタイミング ( コンペアレジスタ 0 との一致 )
φ
コンペアレジスタ値
N
コンペアの一致
カウンタ値
N
0000
533
第 19 章 16 ビット I/O タイマ
■ アウトプットコンペアモジュールのタイミング
アウトプットコンペアモジュールでは , フリーランタイマ値が指定のコンペアレジス
タ値と一致すると , 比較の一致信号を発生します。これによって出力値を反転し , 割込
みを発生することができます。比較の一致による出力の反転タイミングは , カウンタの
カウントタイミングに同期します。
● コンペアレジスタの更新による比較動作
コンペアレジスタが更新されると , カウンタ値との比較は実行されません。
図 19.4-3 に , コンペアレジスタの更新による比較動作のタイミングを示します。
図 19.4-3 コンペアレジスタの更新による比較動作のタイミング
カウンタ値
N
N+1
N+2
N+3
一致信号は発生しません。
コンペア
レジスタ0の値
コンペア
レジスタ0の書込み
M
コンペア
レジスタ1の値
コンペア
レジスタ1の書込み
N+1
N+3
M
コンペア0停止
コンペア1停止
● 割込みタイミング
図 19.4-4 に , アウトプットコンペア動作の割込みタイミングを示します。
図 19.4-4 アウトプットコンペア動作の割込みタイミング
φ
カウンタ値
コンペア
レジスタ値
コンペアの一致
割込み
534
N
N+1
N
第 19 章 16 ビット I/O タイマ
● 出力端子の変化タイミング
図 19.4-5 に , アウトプットコンペア動作時の出力端子の変化タイミングを示します。
図 19.4-5 出力端子の変化タイミング ( アウトプットコンペア動作時 )
N
カウンタ値
N+1
N
コンペア
レジスタ値
N+1
N
コンペアの
一致信号
端子出力
■ インプットキャプチャモジュールのタイミング
● 入力信号のキャプチャタイミング
図 19.4-6 に , 入力信号のキャプチャタイミングを示します。
図 19.4-6 入力信号のキャプチャタイミング
φ
カウンタ値
インプット
キャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャ
レジスタ
N+1
割込み
535
第 19 章 16 ビット I/O タイマ
536
第 20 章
アラーム比較器
アラーム比較器 ( 不足 / 過電圧検出器 ) の概要を示
し , レジスタの構造と機能 , およびアラーム比較器
の動作について説明します。
20.1 アラーム比較器のブロックダイヤグラム
20.2 アラーム比較器のレジスタ
20.3 アラーム比較器の動作モード
537
第 20 章 アラーム比較器
20.1
アラーム比較器のブロックダイヤグラム
アラーム比較器のブロックダイヤグラムを示します。
■ アラーム比較器のブロックダイヤグラム
図 20.1-1 に , アラーム比較器のブロックダイヤグラムを示します。
図 20.1-1 アラーム比較器のブロックダイヤグラム
アラーム比較器-デジタル部
アラーム比較器-アナログ部
AVCC
OUT1
アラーム
4
5
AVCC
D
Q
RB[15:0]
RB[15:0]
STOP
STOP
ACSR
CK
PD
OUT2
2
5
AVCC
D
Q
WRCR
RMWR
RDCR
RSLEEP
RST
CLKP
CK
CDBLE
CLKP
RSLEEP
RST
CLKP
REG
CDBLE
割込み論理
538
DEC
IRQ_AC
IRQ_AC
第 20 章 アラーム比較器
20.2
アラーム比較器のレジスタ
アラーム比較器で使用するレジスタについて説明します。
■ アラーム比較器クロック禁止レジスタ (ACCDBL)
図 20.2-1 に , アラーム比較器クロック禁止レジスタ (ACCDBL) のビット構成を示しま
す。
図 20.2-1 アラーム比較器クロック禁止レジスタのビット構成
ACCDBL
アドレス : 00 0180H
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
−
CDBLE
初期値
-------0B
R/W
アクセス→
以下に , ビットの機能を説明します。
[bit0] CDBLE : クロック禁止ビット
このビットは , クロックの禁止 / 許可を設定します。
0
クロック禁止 ( アラーム比較器のデジタル部 )
1
クロック許可 ( アラーム比較器のデジタル部 )
[ 初期値 ]
■ アラーム比較器ステータスレジスタ (ACSR)
図 20.2-2 に , アラーム比較器ステータスレジスタ (ACSR) のビット構成を示します。
図 20.2-2 アラーム比較器ステータスレジスタのビット構成
ACSR
bit7
アドレス : 0000 0181H
アクセス→
−
6
5
4
OV_EN UV_EN OUT2
R/W
R/W
R
3
2
1
0
OUT1
IRQ
IEN
PD
R
R/W
R/W
R/W
初期値
-11XXX00B
以下に , ビットの機能を説明します。
[bit6] OV_EN(Overvoltage Enable) : 過電圧割込み許可
このビットは , 過電圧の場合の割込みを許可するか , しないかを設定します。
1
過電圧時の割込み許可 [ 初期値 ]
0
過電圧時の割込みなし
[bit5] UV_EN(Undervoltage Enable) : 低電圧割込み許可
このビットは , 低電圧の場合の割込みを許可するか , しないかを設定します。
539
第 20 章 アラーム比較器
1
不足電圧時の割込み許可 [ 初期値 ]
0
不足電圧時の割込みなし
[bit4] OUT2 : アラーム比較器 UV 同期出力
このビットは , アナログ入力電圧の不足電圧値を設定します。
1
アナログ入力電圧 < 2/5 AVcc
0
アナログ入力電圧 > 2/5 AVcc
[bit3] OUT1 : アラーム比較器 OV の同期出力
このビットは , アナログ入力電圧の過電圧値を設定します。
1
アナログ入力電圧 > 4/5 AVcc
0
アナログ入力電圧 < 4/5 AVcc
[bit2] IRQ : 割込みビット
このビットは , 低電圧 , または過電圧状態を検出するか , しないかを設定します。
1
低電圧 , または過電圧状態検出
0
通常動作
[bit1] IEN : 割込みアサート許可ビット
このビットは , 割込みアサートを許可するか , 禁止するかを設定します。
1
割込みアサート許可
0
割込みアサート禁止
[ 初期値 ]
[bit0] PD : パワーダウンビット
このビットは , パワーダウン / 実行モードを設定します。
540
0
パワーダウン ( アナログ部 )
1
実行モード ( アナログ部 )
[ 初期値 ]
第 20 章 アラーム比較器
20.3
アラーム比較器の動作モード
アラーム比較器は , 割込みモード , またはポーリングモードで動作できます。内部割
込み論理は , IEN ビットの設定から独立した割込みイベントをそれぞれ検出します。
■ 割込みモード (IEN=1)
表 20.3-1 は , 有効な割込みイベントを示しています。
表 20.3-1 有効な割込みイベント
OUT2
OUT1
IRQ
1
1
1
Vin > 4/5 AVDD ( 過電圧 )
1
0
0
2/5 AVDD < Vin < 4/5 AVDD ( 通常動作 )
0
0
1
2/5 AVDD >Vin ( 低電圧 )
アナログ入力電圧範囲
割込みビット IRQ は , 割込みイベントを検出して , CLKP の次の立上りで設定されま
す。IEN=1 の場合は , CPU に対する割込み要求が生成されます。両方の割込みが許可
されている場合にアサートされた割込み要因を決定するためには , 割込みサービス
ルーチン内で直ちに ACSR レジスタを読み出す必要があります。OUT2 および OUT1
には , 常に比較器出力の実ステータスが含まれ , 割込みトリガステータスは記憶されま
せん。
■ ポーリングモード (IEN=0)
IRQ レジスタビットは , アクティブな割込みイベントにより有効に設定され , ACSR レ
ジスタに書込みを行うとリセットされます。ACSR レジスタは , AC 比較器入力に送ら
れる入力電圧を監視するために , 継続的にポーリングされます。
■ IRQ フラグビットの設定とリセット
ACSR レジスタの IRQ ビットは , "0" を書き込むことによりゼロにリセットできます。
ACSR レジスタの IRQ ビットに対する "1" の書込みは , 無効となります。ハードウェア
( アラーム比較器の出力 ) によってのみ , IRQ は "1" に設定できます。"0" を書き込んで
も , アクティブな割込みステータスが検出されている限り , IRQ は引き続きアクティブ
です。
ACSR レジスタで実行されるビット設定コマンドは , R バス上のリードモディファイラ
イトアクセスで生じます。RMW コマンド実行中のすべての読出しアクセスは , IRQ フ
ラグに関して , CPU に "1" を返します。これによって , IRQ フラグビットのソフトウェ
ア設定に起因する , 割込みイベントの検出漏れを防ぐことができます。
541
第 20 章 アラーム比較器
■ アラーム比較器パワーダウンモード
アラーム比較器回路には , 表 20.3-2 に示すパワーダウンモードがあります。
表 20.3-2 パワーダウンモード
STOP
PD
CDBLE
アナログ部
デジタル部
0
0
0
実行モード
実行モード
0
0
1
パワーダウンモード
パワーダウンモード
0
1
0
パワーダウンモード
実行モード
0
1
1
パワーダウンモード
パワーダウンモード
1
0
0
パワーダウンモード
パワーダウンモード
1
0
1
パワーダウンモード
パワーダウンモード
1
1
0
パワーダウンモード
パワーダウンモード
1
1
1
パワーダウンモード
パワーダウンモード
<注意事項>
542
アラーム比較器 ( アナログ部 ) の出力は , 電源投入後 , あるいは実行モード再投入後
であっても , 最低 3 µs 間は未定義のままです。IRQ が正しく設定されているかどう
かを確認してから , アラーム比較器割込みソースを許可しなければなりません。
第 21 章
パワーダウンリセット
パワーダウンリセットの概要を示し , レジスタの構
成と機能 , およびパワーダウンリセットモジュール
の動作について説明します。
21.1 パワーダウンリセットの概要
21.2 パワーダウンリセットのレジスタ
21.3 パワーダウンリセットの動作モード
543
第 21 章 パワーダウンリセット
21.1
パワーダウンリセットの概要
パワーダウンリセットモジュールは , VDD がしきい値電圧より低くなるとシステム
をリセットします。リセット信号は , パワーダウンリセット制御レジスタ PDRCR
の設定により , 禁止および許可されます。低電力アプリケーションについては , パ
ワーダウンリセット制御回路のデジタル部とアナログ部を禁止できます。
■ パワーダウンリセットモジュールの特長
パワーダウンリセット回路には , 以下の機能があります。
• 5V の電源電圧をモニタし , 4.0V( 標準値 ) のしきい値より電圧が低い場合は , 2.27µs
( 標準値 ) 後にリセット信号を生成します。
• 基準電圧のための内部バンドギャップ回路を持っています。
• モニタ電圧のための 50mV( 標準値 ) ヒステリシス入力が可能です。
• パワーダウンリセット回路のアナログ部がパワーダウンモードに切り換えられた
場合は , 消費電流を 260µA( 標準値 ) 減らします。
図 21.1-1 に , パワーダウンリセットモジュールの回路を示します。
図 21.1-1 パワーダウンリセットモジュールの回路
入力段階
IN
PDCOMP
OUT
EN
RST
9-ビットカウンタ
READY
CLR
S
WR
RB[ 1]
(PD ビット)
544
R
Q
PDRSTX
第 21 章 パワーダウンリセット
21.2
パワーダウンリセットのレジスタ
パワーダウンリセットモジュールで使用するレジスタについて説明します。
■ パワーダウンリセット制御レジスタ (PDRCR)
図 21.2-1 に , パワーダウンリセット制御レジスタのビット構成を示します。
図 21.2-1 パワーダウンリセット制御レジスタのビット構成
bit
7
6
5
4
3
2
1
0
アドレス : 0000 017DH
−
−
−
−
−
CDSBLE
PD
EN
アクセス :
-
-
-
-
-
R/W
R/W
R/W
初期値 (INIT):
-
-
-
-
-
0
0
0
初期値 (RST):
X
X
X
X
X
X
X
X
以下に , レジスタの各ビットの機能を説明します。
[bit2] CDSBLE : クロック禁止
このビットは , パワーダウンリセット比較器のデジタル部のクロックを禁止しま
す。
0
クロック許可
1
クロック禁止
[ 初期値 ]
[bit1] PD : パワーダウン
このビットは , パワーダウンリセット比較器のアナログ部の低電力モードを制御し
ます。
0
低電力モード禁止
1
低電力モード許可
[ 初期値 ]
[bit0] EN : 許可
このビットは , パワーダウンリセット比較器を許可します。
0
パワーダウンリセット回路禁止
1
パワーダウンリセット回路許可
[ 初期値 ]
545
第 21 章 パワーダウンリセット
21.3
パワーダウンリセットの動作モード
パワーダウンリセットモジュールの動作モードについて説明します。
パワーダウンリセットモジュールの動作モードには , 実行モードと低電力モードの 2
種類があります。
■ 実行モード
初期リセットの後 , PDRCR の EN ビットは禁止されます。パワーダウンリセット制御
回路を起動するために許可する必要があります。
VDD がしきい値より低くなると , PDCOMP 信号は "H" になります。電圧降下による非
同期イベントに起因する準安定状態を回避するために , PDCOMP 信号は入力ステージ
で 2 クロックサイクルだけ遅延されます。
次に , PDRSTX 信号が "L" アクティブになります。
VDD が低電圧である間に PDRCR の PD ビットが "1" から "0" に切り換えられると ,
PDCOMP 信号は 3.19µs の間不定状態になります。回路の未定義動作を避けるために ,
PD ビットへの書込みアクセス後 , 9 ビットカウンタはリセットされます。カウンタは ,
511 クロックサイクルの後 , パワーダウンリセット制御回路を許可します。指定された
最速周波数を CLKP=32 MHz と仮定すると , 21µs の遅延が発生します。
■ 低電力モード
パワーダウンリセット回路のデジタル部とアナログ部は , 低電力モードに設定するこ
とができます。デジタル部のクロックを禁止するだけでなく , アナログ回路を低電力
モードに設定できます。
546
PD
CDSBLE
アナログ部
デジタル部
0
0
動作
動作
0
1
動作
低電力
1
1
低電力
低電力
第 22 章
シリアル I/O
インタフェース (SIO)
シリアル I/O インタフェース (SIO) の概要を示し ,
レジスタの構成と機能 , および SIO の動作につい
て説明します。
22.1 シリアル I/O インタフェース (SIO) の概要
22.2 シリアル I/O インタフェース (SIO) のレジスタ
22.3 シリアル I/O インタフェース (SIO) の動作
547
第 22 章 シリアル I/O インタフェース (SIO)
22.1
シリアル I/O インタフェース (SIO) の概要
シリアル I/O インタフェース (SIO) は , クロック同期調整を使用したデータ転送を可
能にするシリアル I/O インタフェースです。インタフェースは , シングル 8 ビット
チャネルで構成されています。
■ シリアル I/O インタフェース (SIO) の概要
データは , LSB, または MSB から転送できます。
MB91360 シリーズには , SIO0 と SIO1 の 2 種類のシリアル I/O ユニットがあります。本
章では , SIO0 についてのみ説明します。SIO1 のレジスタアドレスについては ,「付録
A I/O マップ」を参照してください。
シリアル I/O インタフェースは , 2 種類のモードで動作します。
• 内部シフトクロックモード : データは , 内部クロックに同期して転送されます。
• 外部シフトクロックモード : データは , 外部端子 (SCK) を経由して供給されるク
ロックに同期して転送されます。このモードでは , 外
部端子 (SCK) を共有している汎用ポートを操作するこ
とによって , CPU の命令によりデータを転送すること
も可能です。図 22.1-1 に , シリアル I/O インタフェー
ス (SIO) のブロックダイヤグラムを示します。
548
第 22 章 シリアル I/O インタフェース (SIO)
図 22.1-1 シリアル I/O インタフェースブロックダイヤグラム
内部データバス
(MSBから) D7からD0
D7からD0(LSBから)
転送方向選択
SIN3
読出し
書込み
SDR(シリアルデータレジスタ)
SOT3
SCK3
シフトクロック
カウンタ
制御回路
周辺機器用クロック
(CLKP)
2
1
0
SMD2
SMD1
SMD0
SIE
SIR
BUSY
STOP
STRT MODE
BDS
----
SCOE
割込み要求
内部データバス
549
第 22 章 シリアル I/O インタフェース (SIO)
22.2
シリアル I/O インタフェース (SIO) のレジスタ
シリアル I/O インタフェース (SIO) で使用するレジスタの機能について説明します。
■ シリアル I/O インタフェース (SIO) のレジスタ一覧
図 22.2-1 に , シリアル I/O インタフェース (SIO) のレジスタ一覧を示します。
図 22.2-1 シリアル I/O インタフェース (SIO) のレジスタ一覧
シリアルモード制御ステータスレジスタ (SMCS)
bit 15
14
13
12
11
10
9
8
アドレス : 00000084H/00000088H SMD2
SMD1
SMD0
SIE
SIR
BUSY
STOP
STRT
読出し / 書込み→ (R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
bit
7
6
5
4
3
2
1
0
アドレス : 00000085H/00000089H
−
−
−
−
MODE
BDS
−
SCOE
読出し / 書込み→
(-)
(-)
(-)
(-)
(R/W)
(R/W)
(-)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(0)
(0)
(-)
(0)
初期値→
SIO エッジ選択 / クロック禁止レジスタ (SES)
bit
15
14
13
12
11
10
9
8
アドレス : 00000086H/0000008AH
−
−
−
−
−
−
DBL
NEG
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(R/W)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(-)
(-)
(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)
シリアルシフトデータレジスタ (SDR)
bit
アドレス : 00000087H/0000008BH
読出し / 書込み→ (R/W)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
シリアル I/O プリスケーラ (CDCR)
bit
15
14
13
12
11
10
9
8
アドレス : 0000008CH/0000008EH
MD
読出し / 書込み→ (R/W)
初期値→
550
(0)
−
−
−
DIV3
DIV2
DIV1
DIV0
(-)
(-)
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(-)
(-)
(-)
(1)
(1)
(1)
(1)
第 22 章 シリアル I/O インタフェース (SIO)
シリアルモード制御ステータスレジスタ (SMCS)
22.2.1
シリアルモード制御ステータスレジスタ (SMCS) の機能について説明します。
■ シリアルモード制御ステータスレジスタ (SMCS) の機能
このレジスタは , シリアル I/O 転送モードを制御します。
図 22.2-2 に , シリアルモード制御ステータスレジスタ (SMCS) のビット構成を示します。
図 22.2-2 シリアルモード制御ステータスレジスタ (SMCS) のビット構成
SMCS
bit15
アドレス : 00000084H SMD2
アクセス
14
13
12
11
10
9
8
SMD1
SMD0
SIE
SIR
BUSY
STOP
STRT
R/W
R/W
R/W
R/W
R
R/W
R/W
R/W
↑
*1
SMCS
bit7
アドレス : 00000085H
−
6
5
−
−
↑
*2
4
3
2
−
MODE
BDS
R/W
R/W
アクセス
初期値
00000010B
1
0
−
SCOE
初期値
----00-0B
R/W
*1: "0" のみ書込み可能。
*2: "1" のみ書込み可能。"0" は常に読出し値。
以下に , 各ビットの機能を説明します。
[bit15 ∼ bit13]
シフトクロック選択ビット (SMD2, SMD1, SMD0 : Serial shift clock
mode)
シフトクロック選択ビットは , シリアルシフトクロックモードを選択するために使
用します。
これらのビットの設定内容を , 表 22.2-1 に示します。
表 22.2-1 シリアルシフトクロックモードの設定
SMD2
SMD1
SMD0
φ=16 MHz
div=16
φ=8 MHz
div=8
φ=4 MHz
div=8
0
0
0
1 MHz
1 MHz
500 kHz
6
1
1
0
1
6 MHz
0
0
1
500 kHz
500 kHz
250 kHz
8
1
1
0
0
8 MHz
0
1
0
125 kHz
125 kHz
62.5 kHz
10
1
0
1
1
10 MHz
0
1
1
62.5 kHz
62.5 kHz
31.25 kHz
12
1
0
1
0
12 MHz
1
0
0
31.25 kHz
31.25 kHz
15.625 kHz
14
1
0
0
1
14 MHz
1
0
1
外部シフトクロックモード
16
1
0
0
0
16 MHz
1
1
0
予備
1
1
1
予備
分周比 DIV3
DIV2 DIV1 DIV0
推奨マシン
サイクル
シリアル I/O プリスケーラ (CDCR) の設定詳細に
ついては , 「22.2.4 シリアル I/O プリスケーラ
(CDCR)」を参照してください。
551
第 22 章 シリアル I/O インタフェース (SIO)
これらのビットは , リセット時に "000B" に初期化されます。これらのビットは , デー
タ転送中に更新してはいけません。
5 種類の内部シフトクロックと外部シフトクロックが利用可能です。"110B", および
"111B"は予備ですので, SMD2, SMD1, SMD0にこれらの値は設定しないでください。
外部シフトクロックモードが選択された場合 , ソフトウェアによる 1 ビットシフト
動作を行うことができます。この動作を行うには , シフトクロック入力を共有して
いる汎用 I/O の , 出力レベルを変更します。
[bit12] シリアル I/O 割込み許可ビット (SIE : Serial I/O interrupt enable)
シリアル I/O 割込み許可ビットは , シリアル I/O 割込み要求を制御します。
SIE
動作
0
シリアル I/O 割込み禁止
1
シリアル I/O 割込み許可
[ 初期値 ]
このビットは , リセット時に "0" に初期化されます。読出し , および書込みが可能で
す。
[bit11] シリアル I/O 割込み要求ビット (SIR : Serial I/O interrupt request)
シリアルデータ転送完了時に , このビットに "1" が設定されます。割込み許可時
(SIE=1) にこのビットが設定されると , CPU に対して割込み要求を発行します。ク
リア条件は , MODE ビットによって変わります。
MODE ビットに "0" が書き込まれている場合は , SIR ビットは , "0" を書き込むこと
によりクリアされます。MODE ビットに "1" が書き込まれている場合は , SIR ビッ
トは , SDR に対して読出し , または書込みを行うことによりクリアされます。シス
テムをリセットするか , STOP ビットに "1" を書き込んだ場合は , MODE ビット値に
関係なく , SIR ビットはクリアされます。
SIR ビットに "1" を書き込んでも , 無効となります。リードモディファイライト命
令では常に "1" が読み出されます。
[bit10] 転送ステータスビット (BUSY)
転送ステータスビットは , シリアル転送が実行中かどうかを示します。
BUSY
動作中
0
停止 , またはシリアルデータレジスタを読み / 書きするためのスタンバイ [ 初期値 ]
1
シリアル転送中
このビットは , リセット時に "0" に初期化されます。このビットは , 読出し専用ビッ
トです。
552
第 22 章 シリアル I/O インタフェース (SIO)
[bit9] ストップビット (STOP)
ストップビットは , シリアル転送を強制終了します。このビットに "1" を書き込む
と , 転送が停止します。
STOP
動作中
0
通常動作
1
転送停止
[ 初期値 ]
このビットは , リセット時に "1" に初期化されます。読出し , および書込みが可能で
す。
[bit8] スタートビット (STRT : Start)
スタートビットは , シリアル転送を起動します。MODE ビットが "0" に設定されて
いる場合, このビットに"1"を書き込むことにより, データ転送が開始します。MODE
ビットに "1" を設定し , STRT ビットにも "1" を設定した場合 , シリアルデータレジ
スタにデータを書き込むことにより , 転送が開始します。
システムが , シリアル転送の動作中 , またはシリアルシフトレジスタの読出し , また
は書込みのためのスタンバイ中である場合は , "1" の書込みは無視されます。"0" の
書込みは無効です。読出し値は常に "0" です。
[bit3] シリアルモード選択ビット (MODE : Serial mode selection bit)
シリアルモード選択ビットは , 停止状態から転送動作を開始するための条件を選択
するために使用します。
このビットは , 動作中に更新してはいけません。
動作
MODE
0
STRT=1 のとき , 転送を開始します。[ 初期値 ]
1
シリアルデータレジスタに対して , 読出し , または書込みが行われた
とき , 転送を開始します。
このビットは , リセット時に "0" に初期化され , 読出し , および書込み可能です。イ
ンテリジェント I/O サービスを起動するためには , このビットに , "1" が書き込まれ
ていることを確認してください。
[bit2] ビット順序選択ビット (BDS : bit order select bit)
このビットは , データ転送のビット順序を指定します。データは , 最下位のビット
から (LSB からのモード ), または最上位ビットから (MSB からのモード ) データを
転送できます。
動作
BDS
<注意事項>
0
LSB から
1
MSB から
[ 初期値 ]
SDR にデータを書き込む前に , ビット順序を指定します。
553
第 22 章 シリアル I/O インタフェース (SIO)
[bit1] 未使用ビット
このビットは , 未使用ビットです。
[bit0] シフトクロック出力許可ビット (SCOE: SCK1 output enable)
シフトクロック出力許可ビットは , シフトクロック I/O 出力外部端子からの出力を
制御します。
動作
SCOE
0
シフトクロック入力端子
1
シフトクロック出力端子
[ 初期値 ]
外部シフトクロックモードにおいて , 各命令でデータが転送される際 , このビット
に "0" が書き込まれていることを確認してください。
このビットは , リセット時に "0" に初期化されます。読出し , および書込みが可能で
す。
554
第 22 章 シリアル I/O インタフェース (SIO)
22.2.2
シリアルシフトデータレジスタ (SDR)
シリアルシフトデータレジスタ (SDR) の機能について説明します。
■ シリアルシフトデータレジスタ (SDR) の機能
図 22.2-3 に , シリアルシフトデータレジスタ (SDR) のビット構成を示します。
図 22.2-3 シリアルシフトデータレジスタ (SDR) のビット構成
SDR
アドレス : 00000087H
bit7
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
初期値
XXXXXXXXB
[bit7 ∼ bit0] D7 ∼ D0 : シリアルシフトデータレジスタ
シリアルシフトデータレジスタは , シリアル I/O 転送データを記憶します。転送中
は , SDR の読出し , および書込みは禁止です。
555
第 22 章 シリアル I/O インタフェース (SIO)
22.2.3
SIO エッジ選択 / クロック禁止レジスタ (SES)
SIO エッジ選択 / クロック禁止レジスタ (SES) の機能について説明します。
■ SIO エッジ選択 / クロック禁止レジスタ (SES) の機能
図 22.2-4 に , SIO エッジ選択 / クロック禁止レジスタ (SES) のビット構成を示します。
図 22.2-4 SIO エッジ選択 / クロック禁止レジスタ (SES) のビット構成
SES
アドレス : 00000086H
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
DBL
NEG
R/W
R/W
初期値
------00B
以下に , SIO エッジ選択 / クロック禁止レジスタ (SES) の各ビットの機能を説明します。
[bit1] DBL : クロック禁止
このビットは , クロックの禁止を設定します。
DBL
動作
0
通常動作
1
SIO モジュールのクロックは禁止
[ 初期値 ]
[bit0] NEG : シフトクロック信号反転
このビットは , シフトクロック信号の反転を設定します。
詳細は , 「22.3 シリアル I/O インタフェース (SIO) の動作」の「■ 反転クロック動
作」を参照してください。
NEG
556
動作
0
通常動作
1
シフトクロック信号は反転
[ 初期値 ]
第 22 章 シリアル I/O インタフェース (SIO)
22.2.4
シリアル I/O プリスケーラ (CDCR)
シリアル I/O プリスケーラは , シリアル I/O のシフトクロックを供給します。
■ シリアル I/O プリスケーラ
シリアル I/O の動作クロックは , マシンクロックを分周して得ます。シリアル I/O は ,
通信プリスケーラのユーザが , さまざまなマシンクロックの一定のボーレートを得ら
れるように設計してあります。CDCR レジスタは , マシンクロック分周を制御します。
図 22.2-5 に , シリアル I/O プリスケーラのビット構成を示します。
図 22.2-5 シリアル I/O プリスケーラのビット構成
CDCR
アドレス : 0000008CH
bit15
14
13
12
11
10
9
8
MD
−
−
−
DIV3
DIV2
DIV1
DIV0
R/W
R/W
R/W
R/W
R/W
初期値
0---1111B
以下に , シリアル I/O プリスケーラの各ビットの機能を説明します。
[bit15] MD(Machine clock divide mode select)
このビットは , 通信プリスケーラの動作を制御するために使用します。
MD
<注意事項>
動作
0
シリアル I/O プリスケーラを禁止し , リセットします。
1
シリアル I/O プリスケーラを許可します。
MD を "0" に設定してプリスケーラをリセットする方法
この機能を使用して , SPI タイミングを生成できます。
557
第 22 章 シリアル I/O インタフェース (SIO)
[bit11 ∼ bit8] DIV3 ∼ DIV0(Divide3 ∼ Divide0)
これらのビットは , CLKP クロック分周比を決定するために使用します。
表 22.2-2 に , CLKP クロック分周比の設定内容を示します。
表 22.2-2 マシンクロック分周比
<注意事項>
558
DIV3 ∼ DIV0
CLKP 分周比
1101B
6
1100B
8
1011B
10
1010B
12
1001B
14
1000B
16
分周比を変更した場合は , 通信を開始する前にクロック安定のために 2 サイクルお
いてください。
第 22 章 シリアル I/O インタフェース (SIO)
22.3
シリアル I/O インタフェース (SIO) の動作
シリアル I/O インタフェース (SIO) の動作について説明します。
■ 動作概要
シリアル I/O は , シリアルモード制御ステータスレジスタ (SMCS) と , シリアルシフト
データレジスタ (SDR) で構成されており , 8 ビットシリアルデータの入出力に使用しま
す。シリアルシフトデータレジスタ内のビットは , シリアルシフトクロック ( 外部ク
ロックまたは内部クロック ) の立下りエッジで , シリアル出力端子 (SOT1 端子 ) を経由
して , 直列に出力されます。このビットは , シリアルシフトクロックの立上りエッジで ,
シリアル入力端子 (SIN1 端子 ) を経由して , シリアルシフトデータレジスタ (SDR) に直
列に入力されます。シフト方向 (MSB, または LSB からの転送 ) は , シリアルモード制
御ステータスレジスタ (SMCS) の方向指定ビット (BDS) が指定します。
シリアルデータ転送終了時には , シリアル I/O インタフェース (SIO) は , シリアルモー
ド制御ステータスレジスタ (SMCS) の MODE ビットに従って , 停止するか , またはデー
タレジスタの読出し , 書込みのためのスタンバイになります。停止 , またはスタンバイ
状態から転送を開始するには , 以下の手順に従ってください。
1. 停止状態から動作を再開するには , STOP ビットに "0" を , STRT ビットに "1" を書
き込んでください (STOP ビットと STRT ビットは同時に設定できます )。
2. シリアルシフトデータレジスタの読出し / 書込みスタンバイ状態から動作を再開す
るには , データレジスタの読出し , または書込みを行ってください。
■ シフトクロックのモード
シフトクロックには , 2 種類のモード ( 内部シフトクロックと外部シフトクロック ) が
あります。これら 2 種類のモードは , SMCS を設定することによって選択されます。
モードを切り換えるには , シリアル I/O 転送が停止していることを確認してください。
シリアル I/O 転送が停止していることを確認するためには , BUSY ビットの読出しを行
います。
● 内部シフトクロックモード
内部シフトクロックモードでは , データ転送は周辺機器用クロック (CLKP) に基づいて
行われます。同期タイミング出力として , デューティ比 50 % のシフトクロックを SCK
端子から出力できます。データは , クロックごとに 1 ビット転送されます。転送速度は ,
以下の式で表わすことができます。
転送速度 (s) = A / CLKP マシンサイクル (Hz)
"A" は , SMCS の SMD ビットで示された分周比です。値として 21, 22, 23, 24, 25 をとる
ことができます。
● 外部シフトクロックモード
外部シフトクロックモードでは , データ転送は , SCK 端子を経由して供給される外部ク
ロックに基づいて行われます。データは , クロックごとに 1 ビット転送されます。
転送速度は , "0" に近い値と 1/(5 CLKP サイクル ) の間で設定できます。たとえば , 1
CLKP サイクルが 0.1µs である場合 , 転送速度は最大 2 MHz にすることができます。
559
第 22 章 シリアル I/O インタフェース (SIO)
データビットは , ソフトウェアによっても転送できます。許可を与えるには以下のよう
にしてください。
1. 外部シフトクロックモードを選択し , SMCS の SCOE ビットに "0" を書き込みます。
2. SCK端子を共有しているポートの方向レジスタに"1"を書き込み, ポートを出力モー
ドにします。ポートのデータレジスタ (PDR) に "1", および "0" を書き込むと , SCK
端子経由のポート値出力が外部クロックとして取り込まれ , 転送が開始します。
3. シフトクロックが "H" から開始したことを確認してください。
<注意事項>
シリアル I/O 動作中に , SMCS, または SDR に対しての書込みは禁止です。
■ シリアル I/O 動作
シリアル I/O 動作のステータスは 4 種類 (STOP, Halt( 停止 ), SDR 読出し / 書込みスタン
バイ , 転送 ) あります。
● STOP
STOP 状態は , RESET 時 , または SMCS の STOP ビットに "1" を書き込んだときに , 初
期化されます。シフトカウンタは初期化され , SIR に "0" が書き込まれます。
STOP 状態から動作を再開するには , STOP に "0" を , STRT に "1" を書き込みます ( こ
れら 2 つのビットは , 同時に書き込むことができます )。STOP ビットは , STRT ビット
を無効にするので , STOP に "1" が書かれている間は , STRT に "1" を書き込んでも , 転
送を開始することはできません。
● Halt( 停止 )
MODE ビットが "0" の間に転送が完了すると , BUSY に "0" が設定され , SMCS の SIR
に "1" が設定されます。カウンタは初期化され , システムは停止します。STOP 状態か
ら動作を再開するには , STRT に "1" を書き込みます。
● シリアルデータレジスタ読出し / 書込みスタンバイ
MODE ビットが "1" の間に転送が完了すると , BUSY に "0" が設定され , SMCS の SIR
に "1" が設定されて , システムはシリアルデータレジスタ読出し / 書込みスタンバイ状
態になります。割込み許可フラグが設定してある場合は , 割込み信号が本ブロックから
出力されます。
読出し / 書込みスタンバイ状態から動作を再開するには , シリアルデータレジスタに対
して読出し , または書込みを行ってください。これにより , BUSY ビットに "1" が設定
され , データ転送が開始します。
● 転送
BUSY ビットが "1" に設定されていると , シリアル転送が動作しています。MODE ビッ
トに従って , Halt 状態 , または読出し / 書込みスタンバイ状態に移ります。
図 22.3-1 に , 動作遷移を示します。
560
第 22 章 シリアル I/O インタフェース (SIO)
図 22.3-1 拡張 I/O シリアルインタフェース動作遷移
転送の終了
STRT=0, BUSY=0
MODE=0
MODE=0
&
STOP=0
&
END
転送
STOP=0
&
STRT=1
リセット
STOP=0 & STRT=0
STOP
STRT=0, BUSY=0
STOP=1
STOP=1
STOP=0
&
STRT=1
MODE=1 & END & STOP=0
STOP=1
シリアルデータレジスタR/Wスタンバイ
STRT=1, BUSY=1
SDR R/W & MODE=1
STRT=1, BUSY=0
MODE=1
図 22.3-2 シリアルデータレジスタの読出し / 書込み
シリアルデータ
データバス
SOT
SIN
データバス
読出し
書込み
割込み出力
拡張 I/O シリアル
インタフェース
読出し
書込み
CPU
a.
b.
割込み入力
データバス 割込みコントローラ
a. MODE に "1" を書き込むと , シフトクロックカウンタに従って , 転送は終了します。
読出し / 書込みスタンバイ状態は , SIR に "1" を書き込むと開始します。SIE ビット
に "1" を書き込むと , 割込み信号が発生します。SIE が休止中の場合 , または STOP
に "1" を書き込むことにより転送が終了している場合は , 割込み信号は発生しませ
ん。
b. シリアルデータレジスタに対して読出し, または書込みを行うと, 割込み要求はクリ
アされ , シリアル転送が開始します。
■ シフト動作開始 / 停止タイミング , および I/O タイミング
•
シフト動作開始 : SMCS レジスタの STOP ビットに "0" を , STRT ビットに "1" を
書き込みます。
• シフト動作停止 :
システムは , 転送終了時 , または STOP に "1" を書き込んだとき
に停止します。
- STOP=1 による停止 :
システムは MODE ビットに関係なく , SIR=0 の場合に停
止します。
- 転送終了による停止 : システムは , MODE ビットに関係なく , SIR=1 の場合に停
止します。
BUSY ビットは , MODE ビットに関係なくシリアル転送中は "1" になり , 停止 , または
読出し / 書込みスタンバイ状態の間は "0" になります。転送状態を確認するには , 本
ビットの読出しを行います。
561
第 22 章 シリアル I/O インタフェース (SIO)
● 内部シフトクロックモード (LSB から )
図 22.3-3 に , 内部シフトクロックモードにおけるシフト動作開始 / 停止タイミングを示
します。
図 22.3-3 シフト動作開始 / 停止タイミング ( 内部シフトクロックモード )
"1"出力
SCK3
(転送開始)
(転送終了)
STRT
MODE=0の場合
BUSY
SOT3
DO0
DO7(データ維持)
● 外部シフトクロックモード (LSB から )
図 22.3-4 に , 外部シフトクロックモードにおけるシフト動作開始 / 停止タイミングを示
します。
図 22.3-4 シフト動作開始 / 停止タイミング ( 外部シフトクロックモード )
SCK3
STRT
BUSY
SOT3
(転送開始)
(転送終了)
MODE=0の場合
DO0
DO7(データ維持)
● 命令シフト付き外部シフトクロックモード (LSB から )
図 22.3-5 に , 命令シフト付き外部シフトクロックモードにおけるシフト動作開始 / 停止
タイミングを示します。
図 22.3-5 シフト動作開始 / 停止タイミング ( 命令シフト付き外部シフトクロックモード )
SCK3
STRT
BUSY
SOT3
PDRでSCK= "0"
PDRでSCK= "0"
PDRでSCK= "0"(転送終了)
MODE=0の場合
DO6
DO7(データ維持)
(注意事項)命令シフトについては,PDRのSCKに対応するビットに"1"が書き込まれたときは
"H"を出力し,"0"が書き込まれたときは"L"を出力します。
(外部シフトクロックモードでSCOE=0の場合)
562
第 22 章 シリアル I/O インタフェース (SIO)
● STOP=1 による停止 (LSB から開始 , 内部クロック )
図 22.3-6 に , STOP ビットに "1" を書き込んだ場合の停止タイミングを示します。
図 22.3-6 STOP ビットに "1" を書き込んだ場合の停止タイミング
"1"出力
SCK3
(転送開始)
STRT
(転送終了)
MODE=0の場合
BUSY
STOP
DO3
SOT3
DO4
DO5(データ維持)
(注意事項)DO7~DO0は,出力データを示しています。
シリアルデータ転送中 , データは , シフトクロックの立下りエッジでシリアル出力端子
(SOT2) から出力され , 立上りエッジでシリアル入力端子 (SIN) から入力されます。
図 22.3-7 に , I/O シフトタイミングを示します。
図 22.3-7 I/O シフトタイミング
m_LSBから開始(BDSビットが"0"の場合)
SCK3
SIN 出力
SIN3
D10
D11
SOT3
DO0
DO1
D12
D13
SOT 出力
DO2
DO3
D14
D15
D16
D17
DO4
DO5
DO6
DO7
m_MSBから開始(BDSビットが"1"の場合)
SCK3
SIN3
SIN 出力
D17
D16
D15
D14
D13
D12
D11
D10
DO4
DO3
DO2
DO1
DO0
SOT 出力
SOT3
DO7
DO6
DO5
(注意事項)DO7~DO0は,出力データを示しています。
563
第 22 章 シリアル I/O インタフェース (SIO)
■ 割込み動作
本ブロックでは , CPU に対する割込み要求を発行できます。データ転送終了時に , SIR
ビットは割込みフラグとして設定されます。SMCS の割込み許可ビット (SIE ビット )
に "1" が書き込まれると , CPU に対して割込み要求を発行します。
図 22.3-8 割込み信号出力タイミング
SCK3
(転送終了) *
BUSY
SIE=1
SIR
SDR RD/WR
SOT3
DO7(データ維持)
DO6
*: MODE=1の場合
■ 反転クロック動作
MB91360 シリーズは , シリアル I/O の反転クロック動作をサポートしています。この
動作においては , 単純にインバータがシフトクロック信号をネゲートします。したがっ
て , 前述のシリアル I/O に関するシフトクロック信号の定義は , 論理 "L" レベルから論
理 "H" レベルに , 立下りエッジから立上りエッジに , およびその逆に , 反転されます。
これは , シリアルクロック入力についてもシリアルクロック出力についても同様です。
エッジ選択レジスタが , この目的のために設計されています。
この制御は , SIO エッジ選択 / クロック禁止レジスタ (SDR) の NEG ビットによって行
います。
図 22.3-9 に SIO エッジ選択 / クロック禁止レジスタ (SDR) を , 表 22.3-1 に NEG ビット
の設定内容を示します。
図 22.3-9 SIO エッジ選択 / クロック禁止レジスタ (SES)
SES
アドレス : 00000086H
bit7
6
5
4
3
2
1
0
−
−
−
−
−
−
DBL
NEG
R/W
R/W
表 22.3-1 NEG ビットの設定
NEG
564
動作
0
通常動作
1
シフトクロック信号は反転
[ 初期値 ]
初期値
------00B
第 23 章
サウンド生成器
サウンド生成器の概要を示し , レジスタの構成と機
能について説明します。
23.1 サウンド生成器の概要
23.2 サウンド生成器のレジスタ
565
第 23 章 サウンド生成器
サウンド生成器の概要
23.1
サウンド生成器の概要とブロックダイヤグラムを示します。
■ サウンド生成器の構成
サウンド生成器は , サウンドコントロールレジスタ , 周波数データレジスタ , 振幅デー
タレジスタ , デクリメントグレードレジスタ , トーンカウントレジスタ , サウンド禁止
レジスタ , PWM パルス生成器 , 周波数カウンタ , 減分カウンタ , およびトーンパルスカ
ウンタで構成されています。
■ サウンド生成器のブロックダイヤグラム
図 23.1-1 に , サウンド生成器のブロックダイヤグラムを示します。
図 23.1-1 サウンド生成器のブロックダイヤグラム
クロック入力
プリスケーラ
S1
S0
8ビットPWM
パルス生成器 CO
EN
PWM
CI
トグル
フリップ
フロップ
周波数
カウンタ
CO
EN
リロード
D
EN
リロード
1/d
Frequency
レジスタ
振幅データ
レジスタ
DEC
DEC
減分カウンタ
CI
CO
EN
SGA
デクリメント
グレードレジスタ
Mix
SGO
トーンパルス
カウンタ CI
CO
EN
トーンカウント
レジスタ
566
Q
TONE
INTE
INT
ST
IRQ
第 23 章 サウンド生成器
23.2
サウンド生成器のレジスタ
サウンド生成器のレジスタの機能について説明します。
■ サウンド生成器のレジスタ一覧
図 23.2-1 に , サウンド生成器のレジスタ一覧を示します。
図 23.2-1 サウンド生成器のレジスタ一覧
サウンドコントロールレジスタ (SGCR)
bit 15
14
アドレス : 000000EEH TST
−
(-)
読出し / 書込み→ (R/W)
(-)
初期値→ (0)
bit
アドレス : 000000EFH
13
12
11
10
−
(-)
(-)
9
BUSY
(R)
(0)
8
DEC
(R/W)
(0)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
7
S1
読出し / 書込み→ (R/W)
初期値→ (0)
6
S0
(R/W)
(0)
5
TONE
(R/W)
(0)
4
3
−
(-)
(-)
−
(-)
(-)
2
INTE
(R/W)
(0)
1
INT
(R/W)
(0)
0
ST
(R/W)
(0)
振幅データレジスタ (SGAR)
bit 15
アドレス : 000000F0H D7
読出し / 書込み→ (R/W)
初期値→ (0)
14
D6
(R/W)
(0)
13
D5
(R/W)
(0)
12
D4
(R/W)
(0)
11
D3
(R/W)
(0)
10
D2
(R/W)
(0)
9
D1
(R/W)
(0)
8
D0
(R/W)
(0)
周波数データレジスタ (SGFR)
bit
7
アドレス : 000000F1H D7
読出し / 書込み→ (R/W)
初期値→ (X)
6
D6
(R/W)
(X)
5
D5
(R/W)
(X)
4
D4
(R/W)
(X)
3
D3
(R/W)
(X)
2
D2
(R/W)
(X)
1
D1
(R/W)
(X)
0
D0
(R/W)
(X)
トーンカウントレジスタ (SGTR)
bit 15
アドレス : 000000F2H D7
読出し / 書込み→ (R/W)
初期値→ (X)
14
D6
(R/W)
(X)
13
D5
(R/W)
(X)
12
D4
(R/W)
(X)
11
D3
(R/W)
(X)
10
D2
(R/W)
(X)
9
D1
(R/W)
(X)
8
D0
(R/W)
(X)
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
0
DBL
(R/W)
(0)
デクリメントグレードレジスタ (SGDR)
bit
7
6
アドレス : 000000F3H D7
D6
読出し / 書込み→ (R/W)
初期値→ (X)
サウンド禁止レジスタ (SGDBL)
bit
7
アドレス : 000000EDH −
読出し / 書込み→
初期値→
(-)
(-)
(R/W)
(X)
6
5
4
3
2
1
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
567
第 23 章 サウンド生成器
23.2.1
サウンドコントロールレジスタ
サウンドコントロールレジスタの機能について説明します。
■ サウンドコントロールレジスタの機能
図 23.2-2 に , サウンドコントロールレジスタのビット構成を示します。
図 23.2-2 サウンドコントロールレジスタのビット構成
サウンドコントロールレジスタ
bit
7
6
5
S1
S0
TONE
(R/W)
(R/W)
初期値→
(0)
bit
アドレス : 000000EFH
読出し / 書込み→
アドレス : 000000EEH
読出し / 書込み→
初期値→
4
3
2
1
0
−
−
INTE
INT
ST
(R/W)
(-)
(-)
(R/W)
(R/W)
(R/W)
(0)
(0)
(-)
(-)
(0)
(0)
(0)
15
14
13
12
11
10
9
8
TST
−
−
−
−
−
BUSY
DEC
(R/W)
(-)
(-)
(-)
(-)
(-)
(R)
(R/W)
(0)
(-)
(-)
(-)
(-)
(-)
(0)
(0)
SGCR
SGCR
以下に , サウンドコントロールレジスタの各ビットの機能を説明します。
[bit15] TST : テストビット
このビットは , デバイステスト用です。いずれのユーザアプリケーションにおいて
も , "0" に設定します。
[bit9] BUSY : ビジービット
このビットは , サウンド生成器が動作中であるかどうかを示します。ST ビットを
"1" に設定すると , このビットも "1" に設定されます。ST ビットを "0" にリセット
し , 1 トーンサイクル終了時に動作が完了すると , このビットは "0" にリセットされ
ます。このビットに対して出されるすべての書込み命令は無効となります。
[bit8] DEC : 自動デクリメント許可ビット
DEC ビットは , デクリメントグレードレジスタとともに , サウンドの自動デクリメ
ント用に設計されています。
このビットを "1" に設定すると , デクリメントグレードレジスタが指定したトグル
フリップフロップからのトーンパルス数を減分カウンタがカウントするごとに , 振
幅データレジスタに記憶されている値は 1 つずつデクリメントされます。
[bit7, bit6] S1, S0 : 動作クロック選択ビット
これらのビットは , サウンド生成器用のクロック入力信号を指定します。
表 23.2-1 に , クロック入力信号の設定内容を示します。
568
第 23 章 サウンド生成器
表 23.2-1 クロック入力信号の設定内容
S1
S0
0
0
CLKP
0
1
1/2 CLKP
1
0
1/4 CLKP
1
1
1/8 CLKP
クロック入力
[bit5] TONE : トーン出力ビット
このビットを "1" に設定すると , SGO 信号は , トグルフリップフロップからの単純
方形波形 ( トーンパルス ) になります。"1" 以外を設定した場合は , トーンパルスと
PWM パルスの混合 ( 論理和 ) 信号になります。
[bit2] INTE : 割込み許可ビット
このビットは , サウンド生成器の割込み信号を許可します。このビットが "1" で ,
INT ビットも "1" に設定されると , サウンド生成器は割込み信号を出力します。
[bit1] INT : 割込みビット
トーンパルスカウンタが , トーンカウントレジスタ , およびデクリメントグレード
レジスタが指定したトーンパルス数をカウントすると , このビットは "1" に設定さ
れます。
このビットは , "0" を書き込むと "0" にリセットされます。"1" を書き込んでも無効
となります。リードモディファイライト系命令では , 常に "1" を読み出します。
[bit0] ST : スタートビット
このビットは , サウンド生成器の動作開始用です。このビットが "1" である間は , サ
ウンド生成器は動作しています。
このビットを "0" にリセットすると , サウンド生成器は現行のトーンサイクル終了
時に動作を停止します。BUSY ビットは , サウンド生成器が完全に停止したかどう
かを示します。
569
第 23 章 サウンド生成器
周波数データレジスタ (SGFR)
23.2.2
周波数データレジスタの機能について説明します。
■ 周波数データレジスタの機能
図 23.2-3 に , 周波数データレジスタのビット構成を示します。
図 23.2-3 周波数データレジスタのビット構成
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)
(R/W)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
アドレス : 000000F1H
読出し / 書込み→
初期値→
SGFR
周波数データレジスタは , 周波数カウンタのリロード値を格納します。格納された値は ,
サウンド ( またはトグルフリップフロップからのトーン信号 ) の周波数を表します。レ
ジスタ値は , トグル信号が遷移するたびに , カウンタにリロードされます。
図 23.2-4 に , トーン信号とレジスタ値の関係を示します。
図 23.2-4 トーン信号とレジスタ値の関係
1 トーンサイクル
トーン信号
(レジスタ値+1) × (レジスタ値+1) ×
1 PWM サイクル
1 PWM サイクル
<注意事項>
570
動作中にレジスタ値を修正すると , 修正のタイミングによって , デューティサイク
ルの 50 % が変更されることもありますので , 注意してください。
第 23 章 サウンド生成器
23.2.3
振幅データレジスタ (SGAR)
振幅データレジスタの機能について説明します。
■ 振幅データレジスタの機能
図 23.2-5 に , 振幅データレジスタのビット構成を示します。
図 23.2-5 振幅データレジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000F0H
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)
読出し / 書込み→
初期値→
SGAR
振幅データレジスタは , PWM パルス生成器のリロード値を記憶します。レジスタ値は ,
サウンドの振幅を表わします。レジスタ値は , 各トーンサイクル終了時に , PWM パル
ス生成器にリロードされます。
SGCR レジスタの DEC ビットが "1" で , 減分カウンタがリロード値に達すると , このレ
ジスタ値は 1 つずつデクリメントされます。レジスタ値が "00H" になると , それ以上の
デクリメントはしません。ただし , サウンド生成器は , ST ビットがクリアされるまで
動作し続けます。図 23.2-6 に , レジスタ値と PWM パルスの関係を示します。
図 23.2-6 レジスタ値と PWM パルスの関係
レジスタ値
1 PWM サイクル
256入力クロックサイクル
00 H
1 入力クロックサイクル
80H
129 入力クロックサイクル
FE H
255 入力クロックサイクル
FFH
256 入力クロックサイクル
(注意事項)レジスタ値が"FFH"に設定されると,PWM信号は常に"1"となります。
571
第 23 章 サウンド生成器
23.2.4
デクリメントグレードレジスタ (SGDR)
デクリメントグレードレジスタの機能について説明します。
■ デクリメントグレードレジスタの機能
図 23.2-7 に , デクリメントグレードレジスタのビット構成を示します。
図 23.2-7 デクリメントグレードレジスタのビット構成
bit
アドレス : 000000F3H
読出し / 書込み→
初期値→
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)
SGDR
デクリメントグレードレジスタは , 減分カウンタのリロード値を格納します。この機能
は , 振幅データレジスタに記憶した値を , 自動的にデクリメントするよう設計されてい
ます。
SGCR レジスタの DEC ビットが "1" で , 減分カウンタがトーンパルス数をリロード値
までカウントすると , 振幅データレジスタに記憶された値は , トーンサイクル終了時に
1 つずつデクリメントされます。
この動作によって , サウンドの自動デクリメントが , より少ない CPU 介入でできるよ
うになります。
このレジスタが指定したトーンパルス数は , 「レジスタ値 +1」であることに注意して
ください。デクリメントグレードレジスタが "00H" に設定されると , デクリメント動作
はトーンサイクルごとに行われます。
572
第 23 章 サウンド生成器
23.2.5
トーンカウントレジスタ (SGTR)
トーンカウントレジスタの機能について説明します。
■ トーンカウントレジスタの機能
図 23.2-8 に , トーンカウントレジスタのビット構成を示します。
図 23.2-8 トーンカウントレジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000F2H
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)
読出し / 書込み→
初期値→
SGTR
トーンカウントレジスタは , トーンパルスカウンタのリロード値を格納します。トーン
パルスカウンタにはトーンパルス数 ( またはデクリメント動作数 ) が累積され , リロー
ド値になると SGCR レジスタの INT ビットを設定します。これらは , 割込みの頻度を
減少させるよう設計されています。
トーンパルスカウンタのカウント入力は , 減分カウンタからのキャリーアウト信号と
接続されています。トーンカウントレジスタに "00H" が設定されると , トーンパルスカ
ウンタは , 減分カウンタからのキャリーアウト信号ごとに , SGCR レジスタの INT ビッ
トを設定します。累積トーンパルス数は次式で表わされます。
(( デクリメントグレードレジスタ )+1) × (( トーンカウントレジスタ )+1)
すなわち , 両レジスタが "00H" に設定されると , トーンサイクルごとに SGCR レジスタ
の INT ビットが設定されます。
573
第 23 章 サウンド生成器
23.2.6
サウンド禁止レジスタ (SGDBL)
サウンド禁止レジスタのビット構成を示します。
■ サウンド禁止レジスタの機能
図 23.2-9 に , サウンド禁止レジスタのビット構成を示します。
図 23.2-9 サウンド禁止レジスタのビット構成
bit
7
6
5
4
3
2
1
0
アドレス : 000000EDH
−
−
−
−
−
−
−
DBL
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(0)
SGDBL
このビットは , サウンド生成器のクロックを制御するために使用します。
このビットに "1" を書き込むと , サウンド生成器モジュールのクロックは使用不可とな
ります。"0" を設定すると , クロックがサウンド生成器モジュールに供給されます。
このビットは , リセット時に "0" に初期化されます。読出し , および書込みが可能です。
574
第 24 章
ステッパモータ
コントローラ
ステッパモータコントローラの概要を示し , レジス
タの構成と機能について説明します。
24.1 ステッパモータコントローラの概要
24.2 ステッパモータコントローラのレジスタ
575
第 24 章 ステッパモータ コントローラ
24.1
ステッパモータコントローラの概要
ステッパモータコントローラの概要とブロックダイヤグラムを示します。
■ ステッパモータコントローラの概要
ステッパモータコントローラは , 2 個の PWM パルス発生器 , 4 個のモータドライバ , セ
レクタロジック , およびゼロロータポジション検出器から構成されています。
4 種類のモータドライバには高出力ドライブ機能があり , 2 個のモータコイルの終端 4
箇所に直接接続できます。PWM パルス発生器 , およびセレクタロジックを組み合わせ
ることによって , モータの回転を制御するよう設計されています。同期のメカニズムは ,
2 個の PWM の同期動作を保証します。ゼロロータポジション検出器を利用して , CPU
はロータ動作のフィードバック情報を得ることができます。
以下のセクションでは , ステッパモータコントローラ 0 に関してのみ解説します。他の
コントローラにも , 同様の機能があります。レジスタアドレスは , 「付録 A I/O マッ
プ」に示してあります。
<注意事項>
576
ロータのゼロポジション検出機能は , Siemens VDO Automotive AG の特許により保
護されており , VDO から事前に承認を得た場合にのみ使用できます。
第 24 章 ステッパモータ コントローラ
■ ステッパモータコントローラのブロックダイヤグラム
図 24.1-1 に , ステッパモータコントローラのブロックダイヤグラムを示します。
図 24.1-1 ステッパモータコントローラのブロックダイヤグラム
マシンクロック
プリスケーラ
CK
EN
P2
P1
PWM1P0
セレクタ
PWM1 パルス発生器
PWM
PWM1M0
P0
PWM1 比較レジスタ
PWM1 選択レジスタ
CK
セレクタ
PWM2P0
PWM2 パルス発生器
CE
EN
PWM2M0
PWM
ロード
PWM2 比較レジスタ
BS
PWM2 選択レジスタ
比較器
デバウンス論理
8ビットカウンタ
ゼロ検知 0 レジスタ
+
-
PWM2M0
1/9 AVCC
基準電圧
パワーダウン
ゼロロータポジション検出器
577
第 24 章 ステッパモータ コントローラ
24.2
ステッパモータコントローラのレジスタ
ステッパモータコントローラのレジスタの機能について説明します。
■ ステッパモータコントローラのレジスタ一覧
図 24.2-1 に , ステッパモータコントローラのレジスタ一覧を示します。
図 24.2-1 ステッパモータコントローラのレジスタ一覧
ゼロ検知 0 レジスタ (ZPD0)
bit 15
アドレス : 000000D0H S1
読出し / 書込み→ (R/W)
初期値→ (0)
14
S0
(R/W)
(0)
13
TS
(R/W)
(0)
12
T2
(R/W)
(0)
11
T1
(R/W)
(0)
10
T0
(R/W)
(0)
9
PD
(R/W)
(0)
8
RS
(R)
(0)
PWM 制御 0 レジスタ (PWC0)
bit
7
アドレス : 000000D1H S2
読出し / 書込み→ (R/W)
初期値→ (0)
6
P2
(R/W)
(0)
5
P1
(R/W)
(0)
4
P0
(R/W)
(0)
3
CE
(R/W)
(0)
2
1
−
(-)
(-)
−
(-)
(-)
0
TST
(R/W)
(0)
PWM 比較レジスタ (PWC20)
bit 15
アドレス : 000000D8H D7
読出し / 書込み→ (R/W)
初期値→ (X)
14
D6
(R/W)
(X)
13
D5
(R/W)
(X)
12
D4
(R/W)
(X)
11
D3
(R/W)
(X)
10
D2
(R/W)
(X)
9
D1
(R/W)
(X)
8
D0
(R/W)
(X)
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
(R/W)
(X)
14
BS
(R/W)
(0)
13
P2
(R/W)
(0)
12
P1
(R/W)
(0)
11
P0
(R/W)
(0)
10
M2
(R/W)
(0)
9
M1
(R/W)
(0)
8
M0
(R/W)
(0)
7
6
−
(-)
(-)
−
(-)
(-)
5
P2
4
P1
3
P0
2
M2
1
M1
0
M0
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
(R/W)
(0)
13
12
11
10
9
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
−
(-)
(-)
8
DBL
(PWC10)
アドレス : 000000D9H
7
D7
読出し / 書込み→ (R/W)
初期値→ (X)
PWM 選択レジスタ (PWS20)
bit 15
アドレス : 000000DAH −
読出し / 書込み→ (-)
初期値→ (-)
(PWS10)
アドレス : 000000DBH
読出し / 書込み→
初期値→
PWM クロック禁止レジスタ (SMDBL0)
bit 15
14
アドレス : 000000E8H −
−
読出し / 書込み→
初期値→
578
(-)
(-)
(-)
(-)
(R/W)
(0)
第 24 章 ステッパモータ コントローラ
24.2.1
ゼロ検知 0 レジスタ (ZPD0)
ゼロ検知 0 レジスタの機能について説明します。
■ ゼロ検知 0 レジスタの機能
図 24.2-2 に , ゼロ検知 0 レジスタのビット構成を示します。
図 24.2-2 ゼロ検知 0 レジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000D0H
S1
S0
TS
T2
T1
T0
PD
RS
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R)
(0)
(0)
(0)
(0)
(0)
(0)
(1)
(0)
読出し / 書込み→
初期値→
ZPD0
[bit15, bit14] S1, S0 : デバウンスクロック選択ビット
これらのビットは , デバウンスロジックのクロック周波数を指定します。デバウン
スロジックは , 指定したクロック周波数で比較器の出力をサンプリングします。
表 24.2-1 に , デバウンスロジックのクロック周波数の設定内容を示します。
表 24.2-1 デバウンスロジックのクロック周波数
S2*
S1
S0
クロック入力
0
0
0
周辺機器用クロック (CLKP)
0
0
1
CLKP/2
0
1
0
CLKP/4
0
1
1
CLKP/8
1
0
0
予約
1
0
1
CLKP/5
1
1
0
CLKP/6
1
1
1
予約
* : S2 は PWC0 レジスタのビット 7 です。
[bit13] TS : タイムスライスビット
このビットは , ゼロロータポジション検出器の動作を許可します。このビットが "1"
のとき , ゼロロータポジション検出器は , PWM2M0 端子における入力電圧を基準電
圧と比較し , 入力電圧が基準電圧を超えた場合は RS ビットを設定します。*
* : 比較器用に , 3µs の設定時間が必要です。
579
第 24 章 ステッパモータ コントローラ
[bit12 ∼ bit10] T2 ∼ T0 : サンプル数選択
これらのビットは , デバウンス論理のサンプル数を指定します。デバウンス論理は ,
比較器の出力を指定回数だけサンプリングします。サンプリングした数値がすべて
"1" の場合 , デバウンス論理の出力は "1" になります。
表 24.2-2 に , デバウンス論理のサンプル数の設定内容を示します。
表 24.2-2 デバウンス論理のサンプル数
T2
T1
T0
サンプル数
0
0
0
1
0
0
1
2
0
1
0
3
0
1
1
4
1
X
X
5
[bit9] PD : パワーダウンビット
このビットに "1" を設定すると , アナログ部品 ( 比較器 , 基準電圧源 ) への電源供給
が切断されます。
[bit8] RS : 結果ビット
RS ビットは , PWM2M0 端子における入力電圧が基準電圧を超えたかどうかを示し
ます。デバウンス論理出力が "1" になると , RS ビットは "1" に設定されます。TS
ビットが "0" の間は , RS ビットは常に "0" を示します。
580
第 24 章 ステッパモータ コントローラ
24.2.2
PWM 制御 0 レジスタ (PWC0)
PWM 制御 0 レジスタの機能について説明します。
■ PWM 制御 0 レジスタの機能
図 24.2-3 に , PWM 制御 0 レジスタのビット構成を示します。
図 24.2-3 PWM 制御 0 レジスタのビット構成
bit
アドレス : 000000D1H
読出し / 書込み→
初期値→
7
6
5
4
3
2
1
0
S2
P2
P1
P0
CE
−
−
TST
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(-)
(-)
(R/W)
(0)
(0)
(0)
(0)
(0)
(-)
(-)
(0)
PWC0
[bit7] S2 : デバウンスクロック選択ビット 2
「24.2.1 ゼロ検知 0 レジスタ (ZPD0)」を参照してください。
[bit6 ∼ bit4] P2 ∼ P0 : 動作クロック選択ビット
このビットは , PWM パルス発生器のクロック入力信号を指定します。
表 24.2-3 に , PWM パルス発生器のクロック入力信号の設定内容を示します。
表 24.2-3 PWM パルス発生器のクロック入力信号
P2
P1
P0
クロック入力
0
0
0
周辺機器用クロック (CLKP)
0
0
1
CLKP/2
0
1
0
CLKP/4
0
1
1
CLKP/8
1
0
0
予約
1
0
1
CLKP/5
1
1
0
CLKP/6
1
1
1
予約
[bit3] CE : カウント有効ビット
このビットは , PWM パルス発生器の動作を有効にします。"1" に設定すると , PWM
パルス発生器は動作を開始します。PWM1 パルス発生器の開始から 1 CLKP サイク
ル後に PWM2 パルス発生器が動作を開始することに注意してください。これによっ
て , 出力ドライバからのスイッチングノイズが減少します。
[bit0] TST : テストビット
このビットは , デバイステスト用です。ユーザアプリケーションにおいては , 常に
"0" に設定しなければなりません。
581
第 24 章 ステッパモータ コントローラ
24.2.3
PWM1, PWM2 比較レジスタ (PWC10, PWC20)
PWM1, PWM2 比較レジスタの機能について説明します。
■ PWM1, PWM2 比較レジスタの機能
図 24.2-4 に , PWM1, PWM2 比較レジスタのビット構成を示します。
図 24.2-4 PWM1, PWM2 比較レジスタのビット構成
PWM1 比較 0 レジスタ
bit
アドレス : 000000D9H
読出し / 書込み→
初期値→
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)
PWC10
PWM2 比較 0 レジスタ
bit
15
14
13
12
11
10
9
8
アドレス : 000000D8H
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)
読出し / 書込み→
初期値→
PWC20
2 個の 8 ビット比較レジスタの内容は , PWM パルス幅を決定します。
格納された値が "00H" なら PWM デューティ 0 % を表わし , "FFH" はデューティ 99.6 %
を表わします。
図 24.2-5 に , 比較レジスタの設定値と PWM パルス幅の関係を示します。
図 24.2-5 比較レジスタの設定値と PWM パルス幅の関係
1PWMサイクル
256 入力クロックサイクル
レジスタ値
00 H
80H
128入力クロックサイクル
FFH
256入力クロックサイクル
このレジスタは常時アクセス可能ですが , 修正値は PWM2 選択レジスタの BS ビット
が "1" に設定された後で , 現行の PWM サイクル終了時にパルス幅に反映されます。
582
第 24 章 ステッパモータ コントローラ
24.2.4
PWM1, PWM2 選択レジスタ (PWS10, PWS20)
PWM1, PWM2 選択レジスタの機能について説明します。
■ PWM1, PWM2 選択レジスタの機能
図 24.2-6 に , PWM1, PWM2 選択レジスタのビット構成を示します。
図 24.2-6 PWM1, PWM2 選択レジスタのビット構成
PWM1 選択レジスタ
bit
7
6
5
4
3
2
1
0
アドレス : 000000DBH
−
−
P2
P1
P0
M2
M1
M0
読出し / 書込み→
(-)
(-)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(-)
(-)
(0)
(0)
(0)
(0)
(0)
(0)
PWS10
PWM2 選択レジスタ
15
14
13
12
11
10
9
8
アドレス : 000000DAH
bit
−
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)
PWS20
[bit14] BS : 更新ビット
このビットは , PWM 出力設定の同期調整用です。両比較レジスタ , および両選択レ
ジスタの修正はすべて , このビットが設定されるまでは出力信号に反映されませ
ん。
このビットが "1" に設定されると , PWM パルス発生器 , およびセレクタは , 現行の
PWM サイクル終了時にレジスタの内容をロードします。
BS ビットは , 直後の PWM
サイクル開始時に自動的に "0" にリセットされます。自動リセットと同時にソフト
ウェアが BS ビットに "1" を設定すると , BS ビットは "1" に設定され ( そのまま変
わらず ), 自動リセットはキャンセルされます。
[bit13 ∼ bit11] P2 ∼ P0 : 出力選択ビット
これらのビットは , PWM2P0 における出力信号を選択します。
[bit10 ∼ bit8] M2 ∼ M0 : 出力選択ビット
これらのビットは , PWM2M0 における出力信号を選択します。
[bit5 ∼ bit3] P2 ∼ P0 : 出力選択ビット
これらのビットは , PWM1P0 における出力信号を選択します。
表 24.2-4 に , 出力レベルと選択ビットの関係を示します。
[bit2 ∼ bit0] M2 ∼ M0 : 出力選択ビット
これらのビットは , PWM1M0 における出力信号を選択します。
表 24.2-4 に , 出力レベルと選択ビットの関係を示します。
583
第 24 章 ステッパモータ コントローラ
表 24.2-4 出力レベルと選択ビットの関係
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
ハイインピーダンス
584
第 24 章 ステッパモータ コントローラ
PWM クロック禁止レジスタ (SMDBL)
24.2.5
この項では , PWM クロック禁止レジスタの機能について説明します。
■ PWM クロック禁止レジスタの機能
図 24.2-7 に , PWM クロック禁止レジスタのビット構成を示します。
図 24.2-7 PWM クロック禁止レジスタのビット構成
bit
15
14
13
12
11
10
9
8
アドレス : 000000E8H
−
−
−
−
−
−
−
DBL
読出し / 書込み→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(-)
(-)
(-)
(0)
SMDBL0
[bit8] DBL : クロック禁止ビット
このビットに "1" を設定すると , SMC モジュールのクロックは禁止されます。"0"
を設定すると , クロックは SMC モジュールに供給されます。このビットは "0" に初
期化されます。読出し , および書込みが可能です。
<注意事項>
SMC1, および SMC3 に関しては , このビットはビットポジション 0 となります。
585
第 24 章 ステッパモータ コントローラ
586
第 25 章
U- タイマ
U- タイマ (U-TIMER) は , UART のボーレートを発
生するために使用する 16 ビットタイマです。ここ
では , U- タイマの概要を示し , レジスタの構造と
その機能 , および U- タイマの動作について説明し
ます。
25.1 U- タイマ (U-TIMER) の概要
25.2 U- タイマ (U-TIMER) のレジスタ
25.3 U- タイマ (U-TIMER) の動作
587
第 25 章 U- タイマ
25.1
U- タイマ (U-TIMER) の概要
U- タイマ (U-TIMER) は , UART のボーレートを発生するために使用する 16 ビット
タイマです。チップの動作周波数および U-TIMER のリロード値を組み合わせて ,
ユーザ定義のボーレートを設定することができます。本タイマは , カウントアンダ
フローで割込みを発生するので , インターバルタイマとしても使用可能です。
MB91360 シリーズは , 3 種類の U-TIMER チャネルを内蔵しています。インターバ
ルタイマは , 最大 216 × CLKP です。
■ U- タイマ (U-TIMER) のブロックダイヤグラム
図 25.1-1 に , U- タイマ (U-TIMER) のブロックダイヤグラムを示します。
図 25.1-1 U- タイマ (U-TIMER) のブロックダイヤグラム
0
bit15
UTIMR (リロードレジスタ)
bit15
ロード
0
UTIM (U-タイマ)
φ
クロック
アンダフロー
制御
(CLKP 周辺回路クロック)
f.f.
588
UARTへ
第 25 章 U- タイマ
25.2
U- タイマ (U-TIMER) のレジスタ
この節では , U- タイマ (U-TIMER) のレジスタの機能について説明します。U- タイマ
(U-TIMER) のレジスタには , 以下の 3 種類があります。
• U- タイマレジスタ (UTIM)
• リロードレジスタ (UTIMR)
• U-TIMER 制御レジスタ (UTIMC)
■ U- タイマ (U-TIMER) のレジスタ構成
図 25.2-1 に , U- タイマ (U-TIMER) のレジスタ構成を示します。
図 25.2-1 U- タイマ (U-TIMER) のレジスタ構成
U- タイマレジスタ (UTIM)
bit
アドレス : 00000074H
15
b15
14
b14
13
b13
12
b12
11
b11
10
b10
9
b9
8
b8
読出し / 書込み→
初期値→
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
(R)
(0)
bit
アドレス : 00000075H
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
アドレス : 00000075H
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)
14
13
12
−
(-)
(-)
−
(-)
(0)
11
UNDR
10
−
(-)
(-)
9
UTST
8
UTCR
(R/W)
(0)
(R/W)
(1)
14
13
−
(W)
(-)
−
(W)
(-)
リロードレジスタ (UTIMR)
bit
アドレス : 00000074H
U- タイマ制御レジスタ (UTIMC)
bit 15
アドレス : 00000077H UCC1
読出し / 書込み→ (R/W)
初期値→ (0)
DMA 割込みクリアレジスタ (DRCL)
bit 15
アドレス : 00000076H −
読出し / 書込み→
初期値→
(W)
(-)
(R/W)
(0)
予備
(-)
(0)
12
11
10
9
8
−
(W)
(-)
−
(W)
(-)
−
(W)
(-)
−
(W)
(-)
−
(W)
(-)
589
第 25 章 U- タイマ
■ U- タイマレジスタ (UTIM)
U- タイマレジスタ (UTIM) は , タイマ値を示します。16 ビット転送命令でアクセスし
てください。
図 25.2-2 に , U- タイマレジスタ (UTIM) のビット構成を示します。
図 25.2-2 U- タイマレジスタ (UTIM) のビット構成
UTIM アドレス
ch.0 0000 0068H
ch.1 0000 0074H
ch.2 0000 0080H
bit15
b15
14
b14
...................................
2
b2
1
b1
0
b0
初期値 アクセス
0
R
■ U- タイマ リロードレジスタ (UTIMR)
リロードレジスタ (UTIMR) は , UTIM がアンダフローしたときに , UTIM にロードされ
ているリロード値を格納します。16 ビット転送命令でアクセスしてください。
図 25.2-3 に , リロードレジスタ (UTIMR) のビット構成を示します。
図 25.2-3 リロードレジスタ (UTIMR) のビット構成
UTIMR アドレス
ch.0 0000 0068H
ch.1 0000 0074H
ch.2 0000 0080H
bit15
b15
14
b14
...................................
2
b2
1
b1
0
b0
初期値 アクセス
0
W
内部ブート ROM のコードを実行中に有効なブート条件を検出すると , UTIMR0 レジス
タは "0x05" に設定されます。
■ U- タイマ制御レジスタ (UTIMC)
U- タイマ制御レジスタ (UTIMC) は , U-TIMER の動作を制御します。
図 25.2-4 に , U- タイマ制御レジスタ (UTIMC) のビット構成を示します。
図 25.2-4 U- タイマ制御レジスタ (UTIMC) のビット構成
UTIMC アドレス
ch.0 0000 006BH
ch.1 0000 0077H
ch.2 0000 0083H
bit7
UCC1
6
−
5
−
4
3
−
UNDR
2
1
予備
UTST
0
初期値 アクセス
UTCR 0--00001B
R/W
内部ブート ROM のコードを実行中に有効なブート条件を検出すると , UTIMC0 レジス
タは "0x82" に設定されます。
590
第 25 章 U- タイマ
以下に , U- タイマ制御レジスタ (UTIMC) の各ビットの機能を説明します
[bit7] UCC1(U-timer Count Control 1) : U- タイマカウント制御 1
このビットは , U-TIMER のカウント方法を制御します。
UCC1
動作
0
通常動作 α = 2n + 2 [ 初期値 ]
n: UTIMR 設定値
1
+1 モード α= 2n + 3
α: UART に対する出力クロックのサイクル
UART に対して標準の 2(n+1) サイクルのクロックを出力する以外に , U-TIMER の
奇数分周比も設定できます。
UCC1 を "1" に設定すると , 「2n+3」サイクルでクロックを発生します。
以下に , 設定例を 3 例示します。
• UTIMR= 5, UCC1= 0 --> クロックサイクル =2n+2=12 サイクル
• UTIMR= 25, UCC1= 1 --> クロックサイクル =2n+3=53 サイクル
• UTIMR= 60, UCC1= 0 --> クロックサイクル =2n+2=122 サイクル
U-TIMER をインターバルタイマとして使用する場合は , UCC1 値を "0" に設定して
ください。
[bit6, bit5, bit4] 予備ビット
これらのビットは , 予備ビットです。このレジスタに書き込むときは , 常にこれら
のビットを "000" に設定します。
[bit3] UNDR(UNDeR flow flag) : アンダフローフラグ
UNDR は , アンダフローが発生したことを示すフラグです。UNDR は , リセットま
たは "0" を書き込むことによりクリアされます。
リードモディファイライト系命令の読出し値は常に "0" です。
UNDR への "1" の書込みは無効です。
[bit2] 予備ビット
このビットには , 常に "0" を設定してください。
[bit1] UTST(U-TIMER STart) : STart U- タイマ
U-TIMER の動作を許可するビットです。
0
停止 : 動作中に "0" を書き込むと , タイマは停止します。
1
動作中 : 動作中に "1" を書き込んでも , 動作は継続します。
[ 初期値 ]
[bit0] UTCR(U-TIMER CleaR) : U- タイマ解除
UTCR に "0" を書き込むと , U-TIMER は 0000H にクリアされます。
アンダフローフリップフロップ ( 図 25.1-1 の f.f.) も "0" にクリアされます。
このビットでは , 常に "1" が読み出されます。
• タイマ停止時にスタートビット (UTST) を設定すると , カウンタは自動的にリロード
されます。
• タイマ停止時にクリアビット (UTCR), およびスタートビット (UTST) を同時に設定
591
第 25 章 U- タイマ
すると , カウンタはゼロにクリアされ , 直後のカウントダウンでアンダフローが発
生します。
• タイマの動作中にクリアビット (UTCR) を設定すると , カウンタはゼロにクリアさ
れます。
これにより出力波形にスパイク波 ( ヒゲ状の短いパルス ) が出力され , UART
の誤作動の原因となる場合があります。出力クロックを使用する際は , クリアビッ
トを使用してタイマ動作中にカウンタをクリアしないでください。
■ DMA 割込みクリアレジスタ (DRCL)
DMA 割込みクリアレジスタ (DRCL) は , DMA 転送を準備するために使用します。
図 25.2-5 に , DMA 割込みクリアレジスタ (DRCL) のビット構成を示します。
図 25.2-5 DMA 割込みクリアレジスタ (DRCL) のビット構成
DRCL アドレス
ch.0 0000 006AH
ch.1 0000 0076H
ch.2 0000 0082H
bit15
14
13
12
11
10
9
8
−
−
−
−
−
−
−
−
初期値 アクセス
--------B
W
初めて DMA を使用する際は , このレジスタに一度書込みを行ってから使用してくださ
い。
592
第 25 章 U- タイマ
25.3
U- タイマ (U-TIMER) の動作
U- タイマのボーレートの計算について説明します。
■ ボーレートの計算
UART は , 対応する U-TIMER(UART0 の U-TIMER0, UART1 の U-TIMER1, UART2 の
U-TIMER2) のアンダフローフリップフロップ ( 図 25.1-1 の f.f.) を , ボーレートのクロッ
クソースとして使用します。
● 非同期 ( 開始ビット同期 ) モード
UART は , U-TIEMR の出力を 16 分周して使用します。
bps =φ/(2n+2) × 16
UCC1 が "0" の場合
bps =φ/(2n+3) × 16
UCC1 が "1" の場合
n : UTIMR( リロード値 )
φ : 周辺回路クロック CLKP 周波数 ( ギア機能により変動 )
● クロック同期モード
MB91360 シリーズでは , UART のクロック同期モードはサポートされません。
593
第 25 章 U- タイマ
594
第 26 章
UART
UART は , 非同期 ( 開始ビット同期 ) 通信を行うた
めのシリアル I/O ポートです。ここでは , UART の
概要を示し , レジスタの構造と機能 , および UART
の動作について説明します。
26.1 UART の概要
26.2 UART のレジスタ
26.3 UART の動作
595
第 26 章 UART
26.1
UART の概要
UART は , 非同期 ( 開始ビット同期 ) 通信を行うためのシリアル I/O ポートです。
MB91360 シリーズは , UART を最大 3 チャネルを内蔵しています。
■ UART の特長
UART は , 以下の特長をもっています。
• 全二重ダブルバッファ
• 非同期 ( 開始ビット同期 ) 通信が可能
• マルチプロセッサモードをサポート
•
完全プログラマブルボーレート : 内部タイマにより , 任意のボーレートを設定可
能 (「第 25 章 U- タイマ」参照 )
• 外部クロックによる自由なボーレートの設定が可能
• エラー検出機能 ( パリティ , フレーミング , オーバラン )
• NRZ 転送信号
• 割込みによる DMA 転送の起動が可能
596
第 26 章 UART
■ UART のブロックダイヤグラム
図 26.1-1 に , UART のブロックダイヤグラムを示します。
図 26.1-1 UART のブロックダイヤグラム
制御信号
受信割込み(CPUへ)
SC(クロック)
送信クロック
U-TIMERより
クロック
選択回路
送信割込み(CPUへ)
受信クロック
外部クロック
SC
SI
(受信データ)
受信制御回路
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SO
(送信データ)
受信状態判定回路
受信用シフタ
送信用シフタ
受信完了
送信開始
SIDR
SODR
DMA用受信エラー
発生信号(DMACへ)
R-bus
MD1
MD0
SMR
レジスタ
CS0
SCR
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR
レジスタ
PE
ORE
FRE
RDRF
TDRE
RIE
TIE
制御信号
597
第 26 章 UART
26.2
UART のレジスタ
UART レジスタの一覧を示し , 各レジスタの機能について説明します。
■ UART のレジスタ構成
図 26.2-1 に , UART のレジスタ一覧を示します。
図 26.2-1 UART のレジスタ一覧
シリアルモードレジスタ (SMR)
6
5
4
3
2
1
0
MD1
MD0
(R/W)
予約
(-)
予約
(-)
CS0
読出し / 書込み→ (R/W)
(W)
予約
(-)
−
(-)
−
(-)
(0)
(-)
(-)
(0)
(-)
(0)
(0)
アドレス :
bit
SMR0:000063H, SMR1:00006FH, SMR2:00007BH
初期値→
7
(0)
シリアル制御レジスタ (SCR)
アドレス :
bit
SCR0:000062H, SCR1:00006EH, SCR2:00007AH
7
6
5
4
3
2
1
0
PEN
P
SBL
CL
A/D
REC
RXC
TXE
(R/W)
(R/W)
(R/W)
(R/W)
(W)
(R/W)
(R/W)
(0)
(0)
(0)
(0)
(1)
(0)
(0)
読出し / 書込み→ (R/W)
初期値→
(0)
シリアル入力レジスタ (SIDR)
7
6
5
4
3
2
1
0
SIDR0:000061H,SIDR1:000006DH,SIDR2:000079H
D7
D6
D5
D4
D3
D2
D1
D0
読出し / 書込み→
(R)
(R)
(R)
(R)
(R)
(R)
(R)
(R)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
アドレス :
bit
シリアル出力レジスタ (SODR)
7
6
5
4
3
2
1
0
SODR0:000061H,SODR1:00006DH,SODR2:000079H
D7
D6
D5
D4
D3
D2
D1
D0
読出し / 書込み→
(W)
(W)
(W)
(W)
(W)
(W)
(W)
(W)
初期値→
(X)
(X)
(X)
(X)
(X)
(X)
(X)
(X)
10
9
8
RIE
TIE
アドレス :
bit
シリアル状態レジスタ (SSR)
bit
15
14
13
12
11
SSR0:000060H, SSR1:00006CH, SSR2:000078H
PE
ORE
FRE
RDRF
TDRE
読出し / 書込み→
(R)
(R)
(R)
(R)
(R)
−
(-)
(R/W)
(R/W)
初期値→
(0)
(0)
(0)
(0)
(1)
(-)
(0)
(0)
bit
15
14
13
12
11
10
9
8
ULS0:000064H, ULS1:000070H, ULS2:00007CH
−
(-)
−
(-)
−
(-)
−
(-)
NSDO
NSDI
読出し / 書込み→
(R/W)
(R/W)
(R/W)
(R/W)
初期値→
(-)
(-)
(-)
(-)
(0)
(0)
(0)
(0)
アドレス :
UART レベル選択レジスタ (ULS)
アドレス :
598
UTDBL UDBL
第 26 章 UART
シリアルモードレジスタ (SMR)
26.2.1
シリアルモードレジスタ (SMR) は , UART の動作モードを指定します。
動作モードの設定は UART の動作停止中に行い , 動作中にはこのレジスタへの書込
みを行わないでください。
■ シリアルモードレジスタ (SMR) の機能
図 26.2-2 に , シリアルモードレジスタ (SMR) のビット構成を示します。
図 26.2-2 シリアルモードレジスタ (SMR) のビット構成
SMR
bit7
アドレス :
SMR0: 000063H MD1
SMR1: 00006FH R/W
SMR2: 00007BH
6
5
4
3
2
1
0
MD0
R/W
予約
予約
CS0
W
予約
予約
予約
初期値
00--0-00B
←アクセス
内部ブート ROM のコードを実行中に有効なブート状態が検出されると , SMR0 レジス
タは "0x31" に設定されます。
以下に , シリアルモードレジスタ (SMR) の各ビットの機能を説明します。
[bit7, bit6] MD1, MD0(MoDe select) : モード選択
これらのビットは , UART の動作モードを選択します。
表 26.2-1 に , UART の動作モードの設定内容を示します。
表 26.2-1 UART の動作モード
モード
MD1
MD0
0
0
0
非同期 ( 開始ビット同期 ) ノーマルモード
1
0
1
非同期 ( 開始ビット同期 ) マルチプロセッサモード
2
1
0
CLK 同期モード (MB91360 シリーズではサポートしていません )
-
1
1
設定禁止
<注意事項>
動作モード
[ 初期値 ]
モード 1 の CLK 非同期モード ( マルチプロセッサ ) とは , 1 台のホスト CPU に数
台のスレーブ CPU を接続する使用方法です。UART では , 受信データのデータ
フォーマットを判別できません。したがって , MB91360 シリーズは , マルチプロ
セッサモードのホスト ( マスタ )CPU のみをサポートします。また , パリティ
チェック機能は使用できませんので , SCR レジスタの PEN ビットは "0" に設定し
てください。
[bit5, bit4] 予約ビット
これらのビットは , 予約ビットです。常に "1" に設定します。
599
第 26 章 UART
[bit3] CS0(Clock Select) : クロック選択
このビットは , UART の動作クロックを選択します。
0
内部タイマ (U-TIMER)
[ 初期値 ]
1
外部クロック (MB91360 シリーズではサポートしていません )
[bit2 ∼ bit0] 予約ビット
これらのビットは , 予約ビットです。常に "000" に設定します。bit 1 は SCKE ( シ
リアル・クロック有効 ) , bit 0 は SOE ( シリアル・アウト有効 ) です。MB91360 シ
リーズでは , いずれの機能もサポートされません。シリアル出力を有効にするには ,
対応のポート機能レジスタ・ビットを設定します。
600
第 26 章 UART
26.2.2
シリアル制御レジスタ (SCR)
シリアル制御レジスタ (SCR) は , シリアル通信を行う場合の転送プロトコルを制御
します。
■ シリアル制御レジスタ (SCR) の機能
図 26.2-3 に , シリアル制御レジスタ (SCR) のビット構成を示します。
図 26.2-3 シリアル制御レジスタ (SCR) のビット構成
SCR
bit7
アドレス :
SCR0: 000062H PEN
SCR1: 00006EH R/W
SCR2: 00007AH
6
5
4
3
2
1
0
P
R/W
SBL
R/W
CL
R/W
A/D
R/W
REC
W
RXC
R/W
TXE
R/W
初期値
00000100B
←アクセス
内部ブート ROM のコードを実行中に有効なブート状態が検出されると , SCR0 レジス
タは "0x13" に設定されます。
以下に , シリアル制御レジスタ (SCR) の各ビットの機能を説明します。
[bit7] PEN(Parity ENable) : パリティ許可
このビットは , シリアル通信において , パリティビットを付加してデータ通信を行
うかどうかを指定します。
0
パリティを使用しない
1
パリティを使用する
[ 初期値 ]
パリティビットを付加できるのは , 非同期 ( 開始ビット同期 ) 通信モードのノーマ
ルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) では , パリティ
ビットを付加することはできません。
[bit6] P : パリティ
このビットは , シリアル通信において , パリティビットを付加してデータ通信を行
うときに , 偶数 / 奇数パリティを指定します。
0
偶数パリティ
1
奇数パリティ
[ 初期値 ]
[bit5] SBL(Stop Bit Length) : ストップビット長
このビットは , 非同期 ( 開始ビット同期 ) 通信モードでのフレームエンドマーク用
のストップビットのビット長を指定します。
0
1 ストップビット
1
2 ストップビット
[ 初期値 ]
601
第 26 章 UART
[bit4] CL(Character Length) : データ長
このビットは , 送受信する 1 フレームのデータ長を指定します。
0
7 ビットデータ
1
8 ビットデータ
[ 初期値 ]
7 ビットデータを扱えるのは , 非同期 ( 開始ビット同期 ) 通信モードのうちのノーマ
ルモード ( モード 0) のみです。マルチプロセッサモード ( モード 1) では , 8 ビット
データとしてください。
[bit3] A/D(Address/Data) : アドレス / データフレーム
このビットは , 非同期 ( 開始ビット同期 ) 通信のマルチプロセッサモード ( モード 1)
において送受信するフレームの , データ形式を指定します。
0
データフレーム
1
アドレスフレーム
[ 初期値 ]
[bit2] REC(Receiver Error Clear) : 受信エラークリア
このビットは , SSR レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。
0
SSR レジスタのエラーフラグ (PE, ORE, FRE) をクリアします。
1
"1" の書込みは無視されます。読出し値は常に "1" になります。
[bit1] RXE(Receiver Enable) : 受信許可
このビットは , UART の受信を制御します。
0
受信を禁止します。
1
受信を許可します。
[ 初期値 ]
受信中 ( 受信シフタにデータが入力されているとき ) に受信を禁止した場合は , そ
のフレームの受信を完了し , 受信データバッファ SIDR レジスタに受信データを格
納したところで UART は受信を停止します。
[bit0] TXE(Transmitter Enable) : 送信許可
このビットは , UART の送信を制御します。
0
送信を禁止します。
1
送信を許可します。
[ 初期値 ]
送信中 ( 送信レジスタからデータが出力されているとき ) に送信を禁止した場合は ,
送信データバッファ SODR レジスタにデータがなくなるまで , UART は送信を停止
しません。
602
第 26 章 UART
26.2.3
シリアル入力レジスタ (SIDR), シリアル出力レジスタ
(SODR)
シリアル入力レジスタ (SIDR), およびシリアル出力レジスタ (SODR) は , 受信 / 送信
用のデータバッファレジスタです。
データ長を 7 ビットに設定している場合は , MSB(D7) は無視されます。
SODR レジスタへの書込みは , SSR レジスタの TDRE ビットが "1" の時に行ってく
ださい。
■ シリアル入力レジスタ (SIDR), およびシリアル出力レジスタ (SODR) の構成
図 26.2-4 に , シリアル入力レジスタ (SIDR), およびシリアル出力レジスタ (SODR) の
ビット構成を示します。
図 26.2-4 シリアル入力レジスタ , およびシリアル出力レジスタのビット構成
SIDR
アドレス :
SIDR0: 000061H
SIDR1: 00006DH
SIDR2: 000079H
SODR
アドレス :
SODR0: 000061H
SODR1: 00006DH
SODR2: 000079H
bit7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
初期値
不定
アクセス
R
D7
D6
D5
D4
D3
D2
D1
D0
不定
W
( 注意事項 ) このアドレスへの書込みは SODR レジスタへの書込みを , 読出しは SIDR レジスタの読出し
を意味します。
603
第 26 章 UART
26.2.4
シリアル状態レジスタ (SSR)
シリアル状態レジスタ (SSR) は , UART の動作状態を表すフラグで構成されていま
す。
■ シリアル状態レジスタ (SSR) の機能
図 26.2-5 に , シリアル状態レジスタ (SSR) のビット構成を示します。
図 26.2-5 シリアル状態レジスタ (SSR) のビット構成
SSR
bit15
アドレス :
SSR0: 000060H PE
SSR1: 00006CH
R
SSR2: 000078H
14
13
12
11
10
9
8
ORE
R
FRE
R
RDRF
R
TDRE
R
予備
RIE
R/W
TIE
R/W
初期値
00001-00B
←アクセス
以下に , シリアル状態レジスタ (SSR) の各ビットの機能を説明します。
[bit15] PE(Parity Error) : パリティエラー
このビットは , 受信時にパリティエラーが発生したときに設定される , 割込み要求
フラグです。
一度設定されたフラグをクリアするには , SCR レジスタの REC ビット (bit2) に "0"
を書き込みます。
このビットが設定された場合には , SIDR レジスタのデータは無効になります。
0
パリティエラーなし
1
パリティエラーが発生
[ 初期値 ]
[bit14] ORE(Over Run Error) : オーバランエラー
このビットは , 受信時にオーバランエラーが発生したときに設定される , 割込み要
求フラグです。
一度設定されたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書き
込みます。
このビットが設定された場合には , SIDR レジスタのデータは無効になります。
0
オーバランエラーなし
1
オーバランエラー発生
[ 初期値 ]
[bit13] FRE(FRaming Error) : フレーミングエラー
このビットは , 受信時にフレーミングエラーが発生したときに設定される , 割込み
要求フラグです。
一度設定されたフラグをクリアするには , SCR レジスタの REC ビットに "0" を書き
込みます。
604
第 26 章 UART
このビットが設定された場合には , SIDR レジスタのデータは無効になります。
0
フレーミングエラーなし
1
フレーミングエラー発生
[ 初期値 ]
[bit12] RDRF(Receiver Data Register Full) : 受信データレジスタフル
このビットは , SIDR レジスタに受信データがあることを示す , 割込み要求フラグで
す。
SIDR レジスタに受信データがロードされると設定され , SIDR レジスタを読み出す
と自動的にクリアされます。
0
受信データなし
1
受信データあり
[ 初期値 ]
[bit11] TDRE(Transmitter Data Register Empty) : 送信データレジスタエンプティ
このビットは , SODR レジスタに送信データを書き込めることを示す , 割込み要求
フラグです。
SODR レジスタに送信データを書き込むとクリアされます。このビットは , レジス
タに書き込んだデータが送信用シフタにロードされて転送が開始されると , 再び設
定されます。次の送信データを SODR レジスタに書き込めることを表します。
0
送信データの書込み禁止
1
送信データの書込み許可
[ 初期値 ]
[bit10] 予備ビット
このビットは , 予備ビットです。
[bit9] RIE(Receive Interrupt Enable) : 受信割込み許可
このビットは , 受信割込みを制御します。
受信割込み要因は , PE, ORE, FRE によるエラー発生の他 , RDRF による正常受信が
あります。
0
割込みを禁止します。
1
割込みを許可します。
[ 初期値 ]
[bit8] TIE(Transmitter Interrupt Enable) : 送信割込み許可
このビットは , 送信割込みを制御します。
送信割込み要因は , TDRE による送信要求があります。
0
割込みを禁止します。
1
割込みを許可します。
[ 初期値 ]
605
第 26 章 UART
26.2.5
UART レベル選択レジスタ (ULS)
UART レベル選択レジスタは , SDI ( 受信データ ) と SDO ( 送信データ ) のレベルを
制御します。UART, および U- タイマのクロックの制御にも使用されます。
■ UART レベル選択レジスタ (ULS) の機能
図 26.2-6 に , UART レベル選択レジスタ (ULS) のビット構成を示します。
図 26.2-6 UART レベル選択レジスタ (ULS) のビット構成
ULS
アドレス : bit15
ULS0: 000064H −
ULS1: 000070H
ULS2: 00007CH
14
13
12
11
10
−
−
−
NSDO
R/W
NSDI
R/W
9
8
初期値
UTDBL UDBL ----0000B
R/W
R/W ←アクセス
以下に , UART レベル選択レジスタ (ULS) の各ビットの機能を説明します。
[bit11] NSDO : ネゲートシリアルアウトプット
このビットが設定されると , SO の出力信号が反転します。
リセット時に"0"に初期化されます。このビットは読出し, および書込みが可能です。
[bit10] NSDI : ネゲートシリアルインプット
このビットが設定されると , SI の入力信号が反転します。
リセット時に"0"に初期化されます。このビットは読出し, および書込みが可能です。
[bit9] UTDBL : U- タイマ禁止
このビットは , U- タイマのクロックを制御します。
このビットに "1" を書き込むと , U- タイマモジュールのクロックが使用できなくな
ります。"0" を設定すると , U- タイマモジュールにクロックが供給されます。
リセット時に"0"に初期化されます。このビットは読出し, および書込みが可能です。
[bit8] UDBL : UART 禁止
このビットは , UART のクロックを制御します。
このビットに "1" を書き込むと , UART モジュールのクロックが使用できなくなり
ます。"0" を設定すると , UART モジュールにクロックが供給されます。
リセット時に"0"に初期化されます。このビットは読出し, および書込みが可能です。
606
第 26 章 UART
UART の動作
26.3
UART の動作に関する以下の項目について説明します。最初に動作モードとクロッ
ク選択 , 次に各モードについて順に説明します。
• UART の動作モード /UART のクロック選択
• 非同期 ( 開始ビット同期 ) モード
• 割込み生成 , およびフラグの設定タイミング
■ 動作モード
UART には表 26.3-1 に示す動作モードがあり , SMR レジスタ , SCR レジスタに値を設
定することによりモードを切り換えることができます。
表 26.3-1 UART の動作モード
モード
パリティ
データ長
有/無
7 ビット
有/無
8 ビット
無
8 ビット +
1 ビット
0
1
動作モード
非同期 ( 開始ビット同期 ) ノーマルモード
非同期 ( 開始ビット同期 ) マルチプロセッサ
モード
ストップ
ビット長
1 ビット ,
または
2 ビット
ただし , 非同期 ( 開始ビット同期 ) モードでのストップビット長については , 送信のみ
指定が可能です。受信については常に 1 ビット長となります。UART は , 上記モード以
外では動作しませんので , ほかのモードは設定しないでください。
■ UART のクロック選択
● イニシャルタイマ
U- タイマと , U- タイマに設定したリロード値でボーレートが決まります。このときの
ボーレートの算出式は , 次のとおりです。
非同期 ( 開始ビット同期 ) モード : φ/(16 × β)
CLK 同期モード : φ/β
φ : 周辺回路マシンクロック周波数 (CLKP)
β : U-TIMER で設定したサイクル (2n+2 または 2n+3, n はリロード値 )
非同期 ( 開始ビット同期 ) モードでは , 設定したボーレートの -1 % ∼ +1 % までの範囲
のボーレートで転送が可能です。
● CLK 同期モード
MB91360 シリーズでは , CLK 同期モードはサポートされません。
607
第 26 章 UART
非同期 ( 開始ビット同期 ) モード
26.3.1
非同期 ( 開始ビット同期 ) 通信について説明します。
■ 転送データフォーマット
UART は , 内部的に , NRZ(Non Return to Zero : 0 に戻らない ) フォーマットのデータの
みを扱います。図 26.3-1 に , データフォーマットを示します。別のデータフォーマッ
トを使用する場合は , UART レベル選択レジスタ (ULS) 内の該当する設定値を使用し
てください。
図 26.3-1 非同期 ( 開始ビット同期 ) モード ( モード 0, 1) の転送データフォーマット
SI, SO
0
1
0
1
1
0
0
1
LSB
Start
転送されたデータは「01001101B」
0
1
1
MSB
Stop -----------------モード0
A/D Stop -----------モード1
図 26.3-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) から始
まり LSB から指定されたデータビット長の転送が行われ , ストップビット ("H" レベル
データ ) で終了します。
外部クロックを選択している場合は , 常にクロックを入力してください。
ノーマルモード ( モード 0) ではデータ長を 7 ビット , または 8 ビットに設定すること
ができます。
マルチプロセッサモード ( モード 1) ではデータ長は 8 ビットでなければなりません。
また , マルチプロセッサモードではパリティビットを付加することはできません。代わ
りに , A/D ビットが常に付加されます。
■ 受信動作
SCR レジスタの RXE ビット (bit1) が "1" であれば , 常に受信中です。
受信ラインでスタートビットが検知されると , SCR レジスタで決められたデータ
フォーマットに従い , 1 フレームデータの受信が行われます。フレームの受信終了後に
エラーが発生した場合は , エラーフラグが設定され , 次に RDRF フラグ (SSR レジスタ
の bit12) が設定されます。
このとき , SSR レジスタの RIE ビット (bit9) が "1" に設定されていると , CPU に対して
受信割込みが発生します。
SSR レジスタの各フラグを調べ , 正常受信であれば SIDR レジスタの読出し , エラーが
発生していれば必要な処理を行うようにしてください。
RDRF フラグは , SIDR レジスタを読み出すとクリアされます。
608
第 26 章 UART
■ 送信動作
SSR レジスタの TDRE フラグ (bit11) が "1" のとき , SODR レジスタに送信データを書
き込みます。ここで , SCR レジスタの TXE ビット (bit0) が "1" であれば , データの送信
が行われます。
SODRレジスタに設定したデータは送信用シフトレジスタにロードされ, 送信が開始さ
れます。これにより TDRE フラグが再び設定され , SODR レジスタに次の送信データ
が設定できるようになります。
このとき , SSR レジスタの TIE ビット (bit8) が "1" に設定されていると , CPU に対して
送信割込みが出力され , SODR レジスタに送信データを設定するように要求します。
TDRE フラグは , SODR レジスタにデータを設定するとクリアされます。
609
第 26 章 UART
26.3.2
割込み発生 , およびフラグの設定タイミング
UART の割込み生成について説明します。
UART には , 5 つのフラグと 2 つの割込み要因があります。
5 つのフラグは , PE/ORE/FRE/RDRF/TDRE です。PE はパリティエラー , ORE はオーバ
ランエラー , FRE はフレーミングエラーのことです。これらのフラグは , 受信エラーが
発生した時に設定され, SCRレジスタのRECビットに"0"を書き込むとクリアされます。
RDRF は , 受信データが SIDR レジスタに存在することを示す割込みフラグです。RDRF
フラグは , 受信データが SIDR レジスタにロードされると設定され , SIDR レジスタを
読み出すとクリアされます。ただし , モード 1 ではパリティ検出機能が使用できず ,
モード 2 ではパリティ検出機能とフレーミングエラー検出機能が使用できません。
TDRE は , SODR レジスタに送信データを書込み可能であることを示す割込みフラグで
す。TDRE フラグは , SODR レジスタが空になる ( 書込み可能な状態になる ) と設定さ
れ , SODR レジスタへ書き込むとクリアされます。
2 つの割込み要因は , 受信用と送信用です。受信時は , PE/ORE/FRE/RDRF により割込
み要求を発生します。送信時は , TDRE により割込み要求を発生します。各動作モード
における割込みフラグの設定タイミングを以下に示します。
■ モード 0 で受信するときの割込みフラグの設定タイミング
PE, ORE, FRE, RDRF の各フラグは , データの受信が完了し , 最後のストップビットが
検出されたときに設定され , CPU への割込み要求を出力します。
PE, ORE, FRE の設定時は , SIDR のデータは無効になります。
図 26.3-2 に , モード 0 で受信するときの割込みフラグの設定タイミングを示します。
図 26.3-2 モード 0 で受信するときの割込みフラグの設定タイミング
データ
PE, ORE, FRE
RDRF
受信割込み
610
D6
D7
Stop
第 26 章 UART
■ モード 1 で受信するときの割込みフラグの設定タイミング
ORE, FRE, RDRF の各フラグは , データの受信が完了し , 最後のストップビットが検出
されたときに設定され , CPU への割込み要求を出力します。また , 受信可能なデータ長
は 8 ビットであるため , フレームのアドレス / データを示す最後の 9 ビット目は無効
データとなります。
ORE, FRE の設定時は , SIDR のデータは無効になります。
図 26.3-3 に , モード 1 で受信するときの割込みフラグの設定タイミングを示します。
図 26.3-3 モード 1 で受信するときの割込みフラグの設定タイミング
データ
D7
アドレス
/データ
Stop
ORE, FRE
RDRF
受信割込み
■ モード 2 で受信するときの割込みフラグの設定タイミング
ORE, および RDRF のフラグは , データの受信が完了し , 最後のデータビット (D7) が検
出されたときに設定され , CPU への割込み要求を出力します。
ORE の設定時は , SIDR のデータは無効になります。
図 26.3-4 に , モード 2 で受信するときの割込みフラグの設定タイミングを示します。
図 26.3-4 モード 2 で受信するときの割込みフラグの設定タイミング
データ
D5
D6
D7
ORE
RDRF
受信割込み
611
第 26 章 UART
■ モード 0, モード 1, モード 2 で送信するときの割込みフラグの設定タイミング
SODR レジスタに書込みを行うと , TDRE フラグはクリアされ , 内部のシフトレジスタ
にデータが転送されます。次のデータが SODR に書込み可能な状態になると , TDRE フ
ラグが設定され , CPU への割込み要求を出力します。
送信中に SCR レジスタの TXE ビット ( モード 2 のときは RXE ビット ) に "0" を書き
込むと , SSR レジスタの TDRE ビットが "1" となり , 送信用のシフタが停止し , UART
の送信が禁止されます。送信中に SCR レジスタの TXE( モード 2 のときは RXE ビット )
に "0" を書き込んだ後 ( ただし送信が停止する前 ) に , SODR レジスタに書き込まれた
データが送信されます。
図 26.3-5 にモード 0, モード 1 で送信するときの割込みフラグの設定タイミングを , 図
26.3-6 にモード 2 で送信するときの割込みフラグの設定タイミングを示します。
図 26.3-5 モード 0, モード 1 で送信するときの割込みフラグの設定タイミング
SODR書込み
TDRE
CPUへ割込みを要求する
SO割込み
SO出力
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
A/D
SP
ST
D0
D1
D2
D3
ST:スタートビット D0~D7:データビット SP:ストップビット A/D:アドレス/データマルチプレクサ
図 26.3-6 モード 2 で送信するときの割込みフラグの設定タイミング
SODR書込み
TDRE
CPUへ割込みを要求する
SO割込み
SO出力
D0
D1
D2
D3
D4
D5
D6
D0~D7:データビット
612
D7
D0
D1
D2
D3
D4
D5
D6
D7
第 26 章 UART
26.3.3
その他の項目
「UART の使用上の注意」, 「応用例