7.6MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10134-2
F2MC-16LX
16 ビット・マイクロコントローラ
MB90945 Series
ハードウェアマニュアル
F2MC-16LX
16 ビット・マイクロコントローラ
MB90945 Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 必ず「Check Sheet」を参照してください。
「Check Sheet」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われるチェック項目
をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛読を賜り厚
くお礼申し上げます。
MB90945 シリーズは , ASIC (Application Specific IC) 対応が可能なオリジナル 16 ビッ
ト・ワンチップマイクロコントローラである F2MC®-16LX ファミリの汎用品の 1 つと
して開発された製品です。
本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90945 シ
リーズの機能や動作について記載しています。本書をご一読ください。
■ 商標
F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株
式会社の商標です。
その他 , 本書で登場するシステム名 , 製品名はそれぞれの会社もしくは組織の商標で
す。
■ 本書の全体構成
本書は , 以下に示す 26 の章 , および付録から構成されています。
第 1 章 概要
MB90945 シリーズの特長や基本的な仕様について説明します。
第 2 章 CPU
CPU について説明します。
第 3 章 割込み
割込みの機能と動作について説明します。
第 4 章 遅延割込み
遅延割込みの機能と動作について説明しています。
第 5 章 クロック
クロックについて説明します。
第 6 章 クロックモジュレータ
クロックモジュレータの概要・特長・レジスタの構成 , 動作について説明します。
第 7 章 リセット
リセットについて説明します。
第 8 章 低消費電力モード
低消費電力モードの機能と動作について説明します。
第 9 章 メモリアクセスモード
メモリアクセスモードの機能と動作について示します。
i
第 10 章 I/O ポート
I/O ポートの機能と動作について説明します。
第 11 章 タイムベースタイマ
タイムベースタイマの機能と動作について説明します。
第 12 章 ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明します。
第 13 章 16 ビット入出力タイマ
16 ビット入出力タイマの機能と動作について説明します。
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
16 ビットリロードタイマ ( イベントカウント機能付 ) の機能と動作について説明し
ます。
第 15 章 8/16 ビット PPG
8/16 ビット PPG の機能と概要について説明します。
第 16 章 DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明します。
第 17 章 8/10 ビット A/D コンバータ
MB90945 シリーズの 8/10 ビット A/D コンバータの機能と動作について説明します。
第 18 章 UART0
UART0 の機能と動作について説明します。
第 19 章 UART2/3
UART2/3 の機能と動作について説明します。
第 20 章 400 kHz I2C インタフェース
I2C インタフェースの機能と動作について説明します。
第 21 章 シリアル I/O
シリアル I/O の機能と動作について説明します。
第 22 章 CAN コントローラ
CAN コントローラの機能と動作について説明します。
第 23 章 アドレス一致検出機能
アドレス一致検出の機能と動作について説明します。
第 24 章 ROM ミラー機能選択モジュール
ROM ミラー機能選択モジュールについて説明します。
第 25 章 1M/2M/3M ビット フラッシュメモリ
1M/2M/3M ビットフラッシュメモリの機能や動作について説明します。
第 26 章 MB90F947 同期シリアル書込み接続例
F2MC-16LX MB90F947 フラッシュマイコンプログラマを用いた場合の , 同期シリア
ル書込み接続例について説明します。
ii
付録
付録では , I/O マップ , F2MC-16LX の命令などを示します。
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2006-2008 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iii
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
1.11
第2章
概要 ............................................................................................................ 1
製品概要 ................................................................................................................................. 2
特長 ........................................................................................................................................ 3
MB90V390HA/HB のブロックダイヤグラム .......................................................................... 5
MB90F946A のブロックダイヤグラム ................................................................................... 6
MB90F947(A),MB90947A のブロックダイヤグラム .............................................................. 7
MB90F949(A) のブロックダイヤグラム................................................................................. 8
端子配列図.............................................................................................................................. 9
パッケージ外形寸法図.......................................................................................................... 12
端子機能説明 ........................................................................................................................ 13
入出力回路............................................................................................................................ 17
デバイスの取扱い ................................................................................................................. 20
CPU.......................................................................................................... 23
2.1 CPU の概要 .......................................................................................................................... 24
2.2 メモリ空間............................................................................................................................ 25
2.3 メモリ空間マップ ................................................................................................................. 28
2.4 リニア方式によるアドレス指定 ........................................................................................... 30
2.5 バンク方式によるアドレス指定 ........................................................................................... 31
2.6 メモリ空間における多バイト長データ................................................................................. 33
2.7 レジスタ ............................................................................................................................... 34
2.7.1
アキュムレータ (A)..................................................................................................... 37
2.7.2
ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP) ....................... 38
2.7.3
プロセッサステータス (PS) ....................................................................................... 40
2.7.4
プログラムカウンタ (PC)........................................................................................... 43
2.8 レジスタバンク .................................................................................................................... 44
2.9 プリフィックスコード.......................................................................................................... 46
2.10 割込み抑止命令 .................................................................................................................... 48
2.11 「DIV A, Ri」
「DIVW A, RWi」命令の使用上の注意 .............................................................. 50
第3章
割込み ...................................................................................................... 53
3.1 割込みの概要 ........................................................................................................................ 54
3.2 割込みベクタ ........................................................................................................................ 56
3.3 割込み制御レジスタ (ICR).................................................................................................... 58
3.4 割込みフロー ........................................................................................................................ 61
3.5 ハードウェア割込み ............................................................................................................. 63
3.5.1
ハードウェア割込みの動作 ........................................................................................ 64
3.5.2
ハードウェア割込みの発生と解除.............................................................................. 65
3.5.3
多重割込み ................................................................................................................. 66
3.6 ソフトウェア割込み ............................................................................................................. 67
3.7 拡張インテリジェント I/O サービス (EI2OS) ....................................................................... 69
3.7.1
拡張インテリジェント I/O サービスディスクリプタ (ISD) ........................................ 71
3.7.2
EI2OS ステータスレジスタ (ISCS) ............................................................................ 73
3.8 拡張インテリジェント I/O サービス (EI2OS) の動作フローと使用手順............................... 75
3.9 例外 ...................................................................................................................................... 78
v
第4章
4.1
4.2
4.3
遅延割込み ............................................................................................... 79
遅延割込みモジュールの概要 ............................................................................................... 80
遅延割込みのレジスタ.......................................................................................................... 81
遅延割込みの動作 ................................................................................................................. 82
第5章
クロック................................................................................................... 83
5.1 クロックの概要 .................................................................................................................... 84
5.2 クロック発生部のブロックダイヤグラム ............................................................................. 86
5.3 クロック選択レジスタ.......................................................................................................... 88
5.3.1
クロック選択レジスタ (CKSCR)................................................................................ 89
5.3.2
PLL および特殊構成制御レジスタ (PSCCR) ............................................................. 92
5.4 クロックモード .................................................................................................................... 94
5.5 発振安定待ち時間 ................................................................................................................. 97
5.6 振動子と外部クロックの接続 ............................................................................................... 98
第6章
6.1
6.2
6.3
クロックモジュレータ ............................................................................. 99
クロックモジュレータの概要 ............................................................................................. 100
クロックモジュレータ制御レジスタ (CMCR) .................................................................... 101
使用上の注意 ...................................................................................................................... 103
第7章
7.1
7.2
7.3
7.4
7.5
7.6
リセット................................................................................................. 105
リセットの概要 .................................................................................................................. 106
リセット要因と発振安定待ち時間...................................................................................... 108
外部リセット端子 ............................................................................................................... 110
リセット動作 ...................................................................................................................... 111
リセット要因ビット ........................................................................................................... 113
リセットによる各端子の状態 ............................................................................................. 115
第8章
低消費電力モード .................................................................................. 117
8.1 低消費電力モードの概要 .................................................................................................... 118
8.2 低消費電力モードのブロックダイヤグラム ....................................................................... 121
8.3 低消費電力モード制御レジスタ (LPMCR) ......................................................................... 123
8.4 CPU 間欠動作モード .......................................................................................................... 127
8.5 スタンバイモード ............................................................................................................... 128
8.5.1
スリープモード ........................................................................................................ 129
8.5.2
タイムベースタイマモード ...................................................................................... 131
8.5.3
ストップモード ........................................................................................................ 133
8.6 状態遷移図.......................................................................................................................... 135
8.7 低消費電力モード使用上の注意 ......................................................................................... 137
第9章
9.1
9.2
9.3
メモリアクセスモード ........................................................................... 141
メモリアクセスモードの概要 ............................................................................................. 142
モード端子.......................................................................................................................... 143
モードデータ ...................................................................................................................... 144
第 10 章
I/O ポート............................................................................................... 147
10.1 I/O ポート ........................................................................................................................... 148
10.2 I/O ポートのレジスタ ......................................................................................................... 149
vi
10.2.1
10.2.2
10.2.3
10.2.4
第 11 章
ポートデータレジスタ (PDR0 ~ PDR6, PDR8 ~ PDRB)....................................... 150
ポート方向レジスタ (DDR0 ~ DDR6, DDR8 ~ DDRB) ......................................... 152
アナログ入力許可レジスタ (ADER0, ADER1) ......................................................... 154
入力レベル選択レジスタ (MB90V390HA/HB のみ )................................................. 155
タイムベースタイマ............................................................................... 157
11.1 タイムベースタイマの概要................................................................................................. 158
11.2 タイムベースタイマ制御レジスタ...................................................................................... 159
11.3 タイムベースタイマの動作................................................................................................. 161
第 12 章
ウォッチドッグタイマ ........................................................................... 163
12.1 ウォッチドッグタイマの概要 ............................................................................................. 164
12.2 ウォッチドッグタイマの動作 ............................................................................................. 167
第 13 章
16 ビット入出力タイマ .......................................................................... 171
13.1 16 ビット入出力タイマの概要............................................................................................ 172
13.2 16 ビット入出力タイマのレジスタ .................................................................................... 174
13.3 16 ビットフリーランタイマ ............................................................................................... 176
13.3.1
タイマデータレジスタ (TCDT0, TCDT1) ................................................................. 177
13.3.2
タイマ制御ステータスレジスタ (TCCSL0, TCCSL1) .............................................. 178
13.3.3
16 ビットフリーランタイマの動作 .......................................................................... 181
13.4 アウトプットコンペア........................................................................................................ 183
13.4.1
アウトプットコンペアのレジスタ (OCCP0 ~ OCCP3) .......................................... 184
13.4.2
アウトプットコンペアの制御ステータスレジスタ (OCS0, OCS2) ......................... 185
13.4.3
16 ビットアウトプットコンペアの動作 ................................................................... 190
13.5 インプットキャプチャ........................................................................................................ 195
13.5.1
インプットキャプチャのレジスタ (IPCP0 ~ IPCP5) .............................................. 196
13.5.2
16 ビットインプットキャプチャの動作 ................................................................... 201
第 14 章
16 ビットリロードタイマ ( イベントカウント機能付 ).......................... 203
14.1 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要 .......................................... 204
14.2 16 ビットリロードタイマのレジスタ................................................................................. 206
14.2.1
タイマ制御ステータスレジスタ (TMCSR0) ............................................................. 207
14.2.2
16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0) の
レジスタ配置 ............................................................................................................ 210
14.3 16 ビットリロードタイマの内部 / 外部クロック動作 ........................................................ 211
14.4 16 ビットリロードタイマのアンダフロー動作 .................................................................. 213
14.5 16 ビットリロードタイマの出力端子機能.......................................................................... 214
14.6 カウンタの動作状態 ........................................................................................................... 215
第 15 章
8/16 ビット PPG .................................................................................... 217
15.1 8/16 ビット PPG の概要..................................................................................................... 218
15.2 8/16 ビット PPG のブロックダイヤグラム ........................................................................ 219
15.3 8/16 ビット PPG のレジスタ.............................................................................................. 223
15.3.1
PPG0 動作モード制御レジスタ (PPGC0) ................................................................ 225
15.3.2
PPG1 動作モード制御レジスタ (PPGC1) ................................................................ 227
15.3.3
PPG0/1 クロック選択レジスタ (PPG01) ................................................................. 229
15.3.4
リロードレジスタ (PRLL, PRLH)............................................................................. 231
15.4 8/16 ビット PPG の動作..................................................................................................... 232
vii
15.5
15.6
15.7
15.8
8/16 ビット PPG のカウントクロックの選択 .................................................................... 235
8/16 ビット PPG のパルスの端子出力の制御 .................................................................... 236
8/16 ビット PPG の割込み ................................................................................................. 237
8/16 ビット PPG の各ハードウェアの初期値 .................................................................... 238
第 16 章
16.1
16.2
16.3
16.4
16.5
DTP/ 外部割込み .................................................................................... 241
DTP/ 外部割込みの概要...................................................................................................... 242
DTP/ 外部割込みのレジスタ............................................................................................... 244
DTP/ 外部割込みの動作...................................................................................................... 246
DTP 要求と外部割込み要求の切換え ................................................................................. 248
DTP/ 外部割込みの使用上の注意 ....................................................................................... 249
第 17 章
8/10 ビット A/D コンバータ................................................................... 251
17.1 8/10 ビット A/D コンバータの概要 .................................................................................... 252
17.2 8/10 ビット A/D コンバータの構成 .................................................................................... 254
17.3 8/10 ビット A/D コンバータの端子 .................................................................................... 256
17.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 258
17.4.1
アナログ入力許可 /ADC 選択レジスタ..................................................................... 259
17.4.2
A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 260
17.4.3
A/D 制御ステータスレジスタ 0 (ADCS0)................................................................. 263
17.4.4
A/D データレジスタ (ADCR0, ADCR1).................................................................... 266
17.5 8/10 ビット A/D コンバータの割込み................................................................................. 268
17.6 8/10 ビット A/D コンバータの動作 .................................................................................... 269
17.6.1
A/D 変換の EI2OS 使用 ............................................................................................ 271
17.6.2
A/D 変換データ保護機能 .......................................................................................... 272
17.7 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 274
17.8 8/10 ビット A/D コンバータのプログラム例 -1 ( 単発変換モードの EI2OS 起動例 ) ......... 275
17.9 8/10 ビット A/D コンバータのプログラム例 -2 ( 連続変換モードの EI2OS 起動例 ) ......... 278
17.10 8/10 ビット A/D コンバータのプログラム例 -3 ( 停止変換モードの EI2OS 起動例 ) ......... 281
第 18 章
UART0 ................................................................................................... 285
18.1 UART0 の特長 .................................................................................................................... 286
18.2 UART0 のブロックダイヤグラム ....................................................................................... 287
18.3 UART0 のレジスタ ............................................................................................................. 288
18.3.1
シリアルモード制御レジスタ (UMC0) ..................................................................... 289
18.3.2
ステータスレジスタ (USR0) .................................................................................... 292
18.3.3
インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0)
................................................................................................................................. 295
18.3.4
レート・データレジスタ (URD0)............................................................................. 296
18.4 UART0 の動作 .................................................................................................................... 298
18.5 ボーレート.......................................................................................................................... 299
18.6 内部クロックおよび外部クロック...................................................................................... 302
18.7 転送データフォーマット .................................................................................................... 303
18.8 パリティビット .................................................................................................................. 304
18.9 割込み生成とフラグのセットタイミング ........................................................................... 305
18.9.1
受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング .............. 306
18.9.2
受信動作時 ( モード 2) のフラグのセットタイミング.............................................. 307
18.9.3
送信動作時のフラグのセットタイミング................................................................. 308
18.9.4
送受信動作時のステータスフラグ............................................................................ 309
viii
18.10 UART0 の応用例................................................................................................................. 310
第 19 章
UART2/3 ................................................................................................ 313
19.1 UART2/3 の概要 ................................................................................................................. 314
19.2 UART2/3 の構成 ................................................................................................................. 318
19.3 UART2/3 の端子 ................................................................................................................. 322
19.4 UART2/3 のレジスタ .......................................................................................................... 324
19.4.1
シリアル制御レジスタ (SCR2/3).............................................................................. 325
19.4.2
シリアルモードレジスタ (SMR2/3).......................................................................... 327
19.4.3
シリアルステータスレジスタ (SSR2/3) ................................................................... 329
19.4.4
受信データレジスタ / 送信データレジスタ (RDR2/3 / TDR2/3) .............................. 332
19.4.5
拡張ステータス制御レジスタ (ESCR2/3) ................................................................ 334
19.4.6
拡張通信制御レジスタ (ECCR2/3) .......................................................................... 336
19.4.7
ボーレートジェネレータレジスタ 0, 1 (BGR02/BGR03/BGR12/BGR13) ............... 338
19.5 UART2/3 の割込み.............................................................................................................. 339
19.5.1
受信割込み発生とフラグセットのタイミング.......................................................... 343
19.5.2
送信割込み発生とフラグセットのタイミング.......................................................... 345
19.6 UART2/3 のボーレート ...................................................................................................... 347
19.6.1
ボーレート設定 ........................................................................................................ 349
19.6.2
リロードカウンタ..................................................................................................... 352
19.7 UART2/3 の動作 ................................................................................................................. 354
19.7.1
非同期モード ( 動作モード 0, 1) の動作 ................................................................... 356
19.7.2
同期モード ( 動作モード 2) の動作........................................................................... 359
19.7.3
LIN 機能 ( 動作モード 3) の動作 ............................................................................... 363
19.7.4
シリアル端子直接アクセス ...................................................................................... 367
19.7.5
双方向通信機能 ( ノーマルモード ) .......................................................................... 368
19.7.6
マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 370
19.7.7
LIN 通信機能............................................................................................................. 373
19.7.8
UART2/3 の LIN 通信フローチャート例 ( 動作モード 3).......................................... 374
19.8 UART2/3 使用上の注意 ...................................................................................................... 376
第 20 章
400 kHz I2C インタフェース.................................................................. 379
20.1 I2C インタフェースの概要.................................................................................................. 380
20.2 I2C インタフェースのレジスタ .......................................................................................... 382
20.2.1
バスステータスレジスタ (IBSR) .............................................................................. 384
20.2.2
バス制御レジスタ (IBCR)......................................................................................... 388
20.2.3
10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL).............................................. 393
20.2.4
10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) ............................................... 394
20.2.5
7 ビットスレーブアドレスレジスタ (ISBA) ............................................................. 396
20.2.6
データレジスタ (IDAR) ............................................................................................ 398
20.2.7
クロック制御レジスタ (ICCR) ................................................................................. 399
2
20.3 I C インタフェースの動作.................................................................................................. 402
20.4 プログラミングフローチャート ......................................................................................... 405
第 21 章
シリアル I/O ........................................................................................... 407
21.1 シリアル I/O の概要 ............................................................................................................ 408
21.2 シリアル I/O のレジスタ..................................................................................................... 409
21.2.1
シリアルモード制御ステータスレジスタ (SMCS4) ................................................. 410
21.2.2
シリアルデータレジスタ (SDR4) ............................................................................. 414
ix
21.3 シリアル I/O プリスケーラ (CDCR4) ................................................................................. 415
21.4 シリアル I/O の動作 ............................................................................................................ 416
21.4.1
シフトクロック ........................................................................................................ 417
21.4.2
シリアル I/O の動作状態 .......................................................................................... 418
21.4.3
シフト動作のスタート / ストップタイミング .......................................................... 420
21.4.4
拡張シリアル I/O インタフェースの割込み機能....................................................... 423
第 22 章
CAN コントローラ ................................................................................. 425
22.1 CAN コントローラの特長................................................................................................... 426
22.2 CAN コントローラのブロックダイヤグラム ...................................................................... 427
22.3 全体制御レジスタの一覧 .................................................................................................... 428
22.4 メッセージバッファ (ID レジスタ ) の一覧 ........................................................................ 430
22.5 メッセージバッファ (DLC/ データレジスタ ) の一覧 ......................................................... 432
22.6 CAN コントローラのレジスタ分類 .................................................................................... 434
22.6.1
制御ステータスレジスタ (CSR) ............................................................................... 435
22.6.2
バス動作停止ビット (HALT = 1)............................................................................... 440
22.6.3
ラストイベント表示レジスタ (LEIR) ....................................................................... 442
22.6.4
受信および送信エラーカウンタ (RTEC) .................................................................. 445
22.6.5
ビットタイミングレジスタ (BTR)............................................................................ 446
22.6.6
メッセージバッファ有効レジスタ (BVALR) ............................................................ 449
22.6.7
IDE レジスタ (IDER) ................................................................................................ 450
22.6.8
送信要求レジスタ (TREQR)..................................................................................... 451
22.6.9
送信 RTR レジスタ (TRTRR) ................................................................................... 452
22.6.10
リモートフレーム受信待機レジスタ (RFWTR)........................................................ 453
22.6.11
送信解除レジスタ (TCANR) ..................................................................................... 454
22.6.12
送信完了レジスタ (TCR) .......................................................................................... 455
22.6.13
送信割込み許可レジスタ (TIER) .............................................................................. 456
22.6.14
受信完了レジスタ (RCR).......................................................................................... 457
22.6.15
リモート要求受信レジスタ (RRTRR) ...................................................................... 458
22.6.16
受信オーバランレジスタ (ROVRR).......................................................................... 459
22.6.17
受信割込み許可レジスタ (RIER) .............................................................................. 460
22.6.18
アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 461
22.6.19
アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) ...................................... 463
22.6.20
メッセージバッファ ................................................................................................. 465
22.6.21
ID レジスタ x (x:0 ~ 15) (IDRx) ............................................................................... 466
22.6.22
DLC レジスタ x (x:0 ~ 15) (DLCRx)........................................................................ 468
22.6.23
データレジスタ x (x=0 ~ 15) (DTRx) ...................................................................... 469
22.7 CAN コントローラの送信................................................................................................... 471
22.8 CAN コントローラの受信................................................................................................... 474
22.9 CAN コントローラの受信フローチャート.......................................................................... 477
22.10 CAN コントローラの使用方法............................................................................................ 478
22.11 メッセージバッファ (x) による送信方法 ............................................................................ 480
22.12 メッセージバッファ (x) による受信方法 ............................................................................ 482
22.13 マルチレベルメッセージバッファの構成の決定 ................................................................ 484
22.14 CAN ダイレクトモードレジスタ (CDMR).......................................................................... 486
22.15 CAN コントローラの使用上の注意 .................................................................................... 487
x
第 23 章
23.1
23.2
23.3
23.4
アドレス一致検出機能 ........................................................................... 489
アドレス一致検出機能の概要 ............................................................................................. 490
アドレス一致検出機能のレジスタ...................................................................................... 491
アドレス一致検出機能の動作 ............................................................................................. 493
アドレス一致検出機能の使用例 ......................................................................................... 494
第 24 章
ROM ミラー機能選択モジュール........................................................... 497
24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 498
24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 499
第 25 章
1M/2M/3M ビットフラッシュメモリ...................................................... 501
25.1 1M/2M/3M ビットフラッシュメモリの概要 ....................................................................... 502
25.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成 .......... 503
25.3 書込み / 消去モード ............................................................................................................ 507
25.4 フラッシュメモリ制御ステータスレジスタ (FMCS).......................................................... 509
25.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 511
25.6 自動アルゴリズム実行状態の確認...................................................................................... 513
25.6.1
データポーリングフラグ (DQ7) ............................................................................... 515
25.6.2
トグルビットフラグ (DQ6) ...................................................................................... 516
25.6.3
タイミングリミット超過フラグ (DQ5) .................................................................... 517
25.6.4
セクタ消去タイマフラグ (DQ3) ............................................................................... 518
25.6.5
トグルビット 2 フラグ (DQ2)................................................................................... 519
25.7 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 521
25.7.1
読出し / リセット状態 .............................................................................................. 522
25.7.2
データの書込み ........................................................................................................ 523
25.7.3
全データの消去 ( チップ消去 ) ................................................................................. 526
25.7.4
任意のデータの消去 ( セクタ消去 ) .......................................................................... 527
25.7.5
セクタ消去の一時停止 ............................................................................................. 529
25.7.6
セクタ消去の再開..................................................................................................... 530
25.8 1M/2M/3M ビットフラッシュメモリ使用上の注意............................................................. 531
25.9 フラッシュメモリにおけるリセットベクタアドレス ......................................................... 532
25.10 1M/2M/3M ビットフラッシュメモリのプログラム例 ......................................................... 533
第 26 章
26.1
26.2
26.3
26.4
26.5
MB90F947 同期シリアル書込み接続例 ................................................. 537
MB90F947 同期シリアル書込み接続の基本構成................................................................ 538
同期シリアル書込み接続例 ( ユーザ電源使用時 )............................................................... 542
同期シリアル書込み接続例 ( ライタから電源供給時 ) ....................................................... 544
フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 ) ....................... 546
フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )................ 548
付録
付録 A
付録 B
B.1
B.2
B.3
B.4
B.5
B.6
............................................................................................................... 551
I/O マップ ...................................................................................................................... 552
命令 ............................................................................................................................... 560
命令の種類 .................................................................................................................. 561
アドレッシング........................................................................................................... 562
直接アドレッシング.................................................................................................... 564
間接アドレッシング.................................................................................................... 571
実行サイクル数........................................................................................................... 578
実効アドレスフィールド ............................................................................................ 580
xi
B.7
B.8
B.9
付録 C
付録 D
索引
命令一覧表の読み方.................................................................................................... 582
F2MC-16LX 命令一覧表 .............................................................................................. 585
命令マップ .................................................................................................................. 599
フラッシュメモリモードのタイミングダイヤグラム.................................................... 621
MB90945 割込みベクタ一覧表 ...................................................................................... 627
............................................................................................................... 631
xii
本版での主な変更内容
ページ
560 ∼ 620
変更内容(詳細は本文を参照してください。)
「付録 B 命令」全体を変更
変更箇所は , 本文中のページ左側の│によって示しています。
xiii
xiv
第1章
概要
MB90945 シリーズの特長や基本的な仕様について
説明します。
1.1 製品概要
1.2 特長
1.3 MB90V390HA/HB のブロックダイヤグラム
1.5 MB90F947(A),MB90947A のブロックダイヤグラム
1.6 MB90F949(A) のブロックダイヤグラム
1.7 端子配列図
1.8 パッケージ外形寸法図
1.9 端子機能説明
1.10 入出力回路
1.11 デバイスの取扱い
1
第 1 章 概要
1.1
製品概要
表 1.1-1 に , MB90945 シリーズの製品概要を示します。
■ 製品概要
表 1.1-1 製品概要
品種構成
MB90V390HA
MB90V390HB
MB90F946A
MB90F947(A)
MB90F949(A)
MB90947A
評価用品
フラッシュメモリ品
マスク ROM 品
F2MC-16LX CPU
CPU
システムクロック
ROM/ フラッシュ
メモリ
2
オンチップ PLL クロック逓倍方式
( × 1, × 2, × 3, × 4, × 6, × 8, PLL 停止時 1/2)
最小命令実行時間 42 ns (5MHz 原発振 6 逓倍 )
外部
RAM
30K バイト
パッケージ
PGA-299
ハード・ワイヤード・リセッ
ト・ベクタ付きブートブロッ
クフラッシュメモリ
384K バイト ( MB90F946A)
128K バイト ( MB90F947(A))
256K バイト ( MB90F949(A))
16K バイト ( MB90F946A)
6K バイト ( MB90F947(A))
12K バイト ( MB90F949(A))
QFP-100
ブートブロック
ROM メモリ
128 K バイト
6 K バイト
第 1 章 概要
1.2
特長
表 1.2-1 に , MB90945 シリーズの特長を示します。
■ 特長
表 1.2-1 MB90945 の特長 ( 1 / 2 )
特長
MB90V390HA
MB90V390HB
MB90F946A
MB90F947(A)
MB90F949(A)
MB90947A
UART
1 チャネル
全 2 重ダブルバッファ方式
非同期 / 同期転送 ( スタート / ストップビット付 ) をサポートします。
ボーレート 4808/9615/10417/19230/38460/62500/500000bps ( 非同期 )
システムクロック =20MHz 時 500K/1M/2Mbps ( 同期 )
UART (SCI / LIN)
1 チャネル
I2C (400kbps)
1 チャネル
シリアル I/O
MSB または LSB から転送開始可能です。
内部クロック同期転送 および外部クロック同期転送をサポートします。
ポジティブエッジとネガティブエッジクロック同期をサポートします。
ボーレートシステムクロック =20MHz 時 31.25K/62.5K/125K/500K/1Mbps
(MB90F946A, MB90V390HA/HB : 2 チャネル )
15 本の入力チャネル
A/D コンバータ
10 ビットまたは 8 ビットの分解能
変換時間 :4.9 μs (1 チャネルあたり )
2 チャネル
16 ビット
リロードタイマ
1 チャネル
動作クロック周波数 fsys/21, fsys/23, fsys/25 (fsys= システムクロック周波数 )
外部イベントカウント機能をサポートします。
16 ビット入出力
タイマ
(2 チャネル )
オーバフロー時に割込み信号を出力します。
アウトプットコンペア (ch.0) との照合時に , タイマクリアをサポートします。
動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24, fsys/25, fsys/26, fsys/27
(fsys= システムクロック周波数 )
入出力タイマ 0 ( クロック入力 FRCK0) は , ICU 0/1, OCU 0/1/2/3 に対応
入出力タイマ 1 ( クロック入力 FRCK1) は , ICU 2/3/4/5 に対応
16 ビットアウト
プットコンペア
(4 チャネル )
16 ビット入出力タイマとの照合時に , 割込み信号を出力します。
16 ビットコンペアレジスタ× 4 本
1 対のコンペアレジスタを出力信号生成に使用可能です。
16 ビットイン
プットキャプチャ
(6 チャネル )
立上りエッジ , 立下りエッジまたはその両方を検出します。
16 ビットキャプチャレジスタ× 6 本
外部イベント時に割込み信号を出力します。
3
第 1 章 概要
表 1.2-1 MB90945 の特長 ( 2 / 2 )
特長
MB90V390HA
MB90V390HB
MB90F946A
MB90F947(A)
MB90F949(A)
MB90947A
8/16 ビット PPG
( プログラマブル
パルス発生部 )
(6 チャネル )
8 ビットと 16 ビットの動作モードをサポートします。
8 ビットリロードカウンタ× 12 本
"L" パルス幅用の 8 ビットリロードレジスタ× 12 本
"H" パルス幅用の 8 ビットリロードレジスタ× 12 本
1 対の 8 ビットリロードカウンタを 1 本の 16 ビットリロードカウンタとして ,
または 8 ビットプリスケーラと 8 ビットリロードカウンタとして構成可能で
す。
動作クロック周波数 fsys, fsys/21, fsys/22, fsys/23, fsys/24 または 102.4 μs
@fosc=5MHz (fsys= システムクロック周波数 , fosc= 発振クロック周波数 )
CAN インタ
フェース
1 チャネル
CAN 仕様バージョン 2.0 パート A およびパート B に準拠します。
エラー時に自動再送します。
リモートフレームに応答して自動伝送します。
データおよび ID 用の順位付けされた 16 個のメッセージバッファ複数メッセー
ジをサポートします。
アクセプタンスフィルタの柔軟な構成 : 全ビットコンペア / 全ビットマスク /2
個の部分ビットマスク
最高 1Mbps までサポートします。
MB90V390HA, MB90F947, MB90F949:
クロック変調と CAN を同時に使用できません。
周波数変調モード
位相変調モード
クロック
モジュレータ
位相変調モード
MB90V390HA, MB90F947, MB90F949:
クロック変調と CAN を同時に使用できません。
位相変調モード
EMI は PLL クロックの変調により減少します。
外部割込み
(8 チャネル )
立上りエッジ , 立下りエッジ , "H" レベル , "L" レベルで起動可能
入出力ポート
ほとんど , 全外部端子を汎用入出力として使用可能です。
すべてのプッシュプル出力
入力 / 出力または周辺信号として , ビット単位でプログラム可能です。
Automotive ヒステリシス入力特性
フラッシュメモリ
-
自動プログラミング , Embedded AlgorithmTM*, 書込
み / 消去 / 消去一時停止 / 消去再開コマンドを
サポートします。
アルゴリズムの完了を示すフラグ
消去サイクル数 : 10,000 回
データ保存期間 : 20 年間
フラッシュメモリ中の固定ブートセクタを示すた
めに , ハード・ワイヤード・リセット・ベクタが使
用可能です。
ブートブロック構成
各ブロックで消去を実行可能です。
外部プログラミング電圧によるブロック保護
*: Embedded Algorithm は Advanced Micro Devices, Inc. の商標です。
4
第 1 章 概要
1.3
MB90V390HA/HB のブロックダイヤグラム
図 1.3-1 に , MB90V390HA/HB のブロックダイヤグラムを示します。
■ MB90V390HA/HB のブロックダイヤグラム
図 1.3-1 MB90V390HA/HB のブロックダイヤグラム
X0,X1
RST
位相モジュ
レータ付き
クロックコ
ントローラ
16LX
CPU
RAM 16K
インプット
キャプチャ
6 チャネル
IN5 ~ IN0
OUT3 ~ OUT0
プリスケーラ
I/O タイマ 1
FRCK1
UART
8/16 ビット
PPG
6 チャネル
PPG15 ~ PPG10
プリスケーラ
SOT3
SCK3
SIN3
FRCK0
アウトプット
コンペア
4 チャネル
UART
(LIN/SCI/
SPI)
F2MC-16 Bus
SOT0
SCK0
SIN0
I/O タイマ 0
CAN
外部割込み
PPG05 ~ PPG00
RX1
TX1
INT7 ~ INT0
プリスケーラ
SOT4
SCK4
SIN4
AVCC
AVSS
AN14 ~ AN0
AVRH
AVRL
ADTG
シリアル I/O
10 ビット
A/D
コンバータ
15 チャネル
I2C
16 ビット
リロード
タイマ
2 チャネル
SDA
SCL
TIN1, TIN0
TOT1, TOT0
5
第 1 章 概要
1.4
MB90F946A のブロックダイヤグラム
図 1.4-1 に , MB90F946A のブロックダイヤグラムを示します。
■ MB90F946A のブロックダイヤグラム
図 1.4-1 MB90F946A のブロックダイヤグラム
X0,X1
RST
位相モジュ
レータ付き
クロックコ
ントローラ
16LX
CPU
RAM 16K
インプット
キャプチャ
6 チャネル
IN5 ~ IN0
アウトプット
コンペア
4 チャネル
OUT3 ~ OUT0
プリスケーラ
I/O タイマ 1
FRCK1
UART0
8/16 ビット
PPG
6 チャネル
プリスケーラ× 2
SOT2/3
SCK2/3
SIN2/3
FRCK0
フラッシュ
384K
UART2/3
(LIN/SCI/
SPI)
F2MC-16 Bus
SOT0
SCK0
SIN0
I/O タイマ 0
CAN
外部割込み
PPG15 ~ PPG0
PPG05 ~ PPG00
RX1
TX1
INT7 ~ INT0
プリスケーラ
SOT4
SCK4
SIN4
AVCC
AVSS
AN14 ~ AN0
AVRH
AVRL
ADTG
6
シリアル I/O
10 ビット
A/D
コンバータ
15 チャネル
I2C
16 ビット
リロード
タイマ
1 チャネル
SDA
SCL
TIN0
TOT0
第 1 章 概要
1.5
MB90F947(A),MB90947A のブロックダイヤグラム
図 1.5-1 に , MB90F947(A) と MB90947A のブロックダイヤグラムを示します。
■ MB90F947(A) と MB90947A のブロックダイヤグラム
図 1.5-1 MB90F947(A) と MB90947A のブロックダイヤグラム
X0,X1
RST
位相モジュ
レータ付き
クロックコ
ントローラ
16LX
CPU
RAM 6K
フラッシュ
インプット
キャプチャ
6 チャネル
IN5 ~ IN0
アウトプット
コンペア
4 チャネル
OUT3 ~ OUT0
プリスケーラ
I/O タイマ 1
FRCK1
UART
8/16 ビット
PPG
6 チャネル
プリスケーラ
SOT3
SCK3
SIN3
FRCK0
ROM *
128K
UART
(LIN/SCI/
SPI)
F2MC-16 Bus
SOT0
SCK0
SIN0
I/O タイマ 0
CAN
外部割込み
PPG15 ~ PPG10
PPG05 ~ PPG00
RX1
TX1
INT7 ~ INT0
プリスケーラ
SOT4
SCK4
SIN4
AVCC
AVSS
AN14 ~ AN0
AVRH
AVRL
ADTG
シリアル I/O
10 ビット
A/D
コンバータ
15 チャネル
I2C
16 ビット
リロード
タイマ 1
チャネル
SDA
SCL
TIN0
TOT0
*: MB90F947(A) : フラッシュ 128 K バイト
MB90947A : ROM 128 K バイト
7
第 1 章 概要
1.6
MB90F949(A) のブロックダイヤグラム
図 1.6-1 に , MB90F949(A) のブロックダイヤグラムを示します。
■ MB90F949(A) のブロックダイヤグラム
図 1.6-1 MB90F949(A) のブロックダイヤグラム
X0,X1
RST
位相モジュ
レータ付き
クロックコ
ントローラ
16LX
CPU
RAM 12K
フラッシュ
256K
インプット
キャプチャ
6 チャネル
IN5 ~ IN0
プリスケーラ
I/O タイマ 1
UART
8/16 ビット
PPG
6 チャネル
プリスケーラ
SOT3
SCK3
SIN3
FRCK0
アウトプット
コンペア
4 チャネル
UART
(LIN/SCI/
SPI)
F2MC-16 Bus
SOT0
SCK0
SIN0
I/O タイマ 0
CAN
外部割込み
OUT3 ~ OUT0
FRCK1
PPG15 ~ PPG10
PPG05 ~ PPG00
RX1
TX1
INT7 ~ INT0
プリスケーラ
SOT4
SCK4
SIN4
AVCC
AVSS
AN14 ~ AN0
AVRH
AVRL
ADTG
8
シリアル I/O
10 ビット
A/D
コンバータ
15 チャネル
I2C
SDA
SCL
16 ビット
リロード
タイマ
1 チャネル
TIN0
TOT0
第 1 章 概要
1.7
端子配列図
ここでは , MB90945 シリーズの端子配列図を示します。
■ MB90V390HA/HB の端子配列図
図 1.7-1 MB90V390HA/HB の端子配列図
MD2
MD0
MD1
RST
P55/PPG15
P56/PPG00
P57/PPG01
P90
P93/SIN3
P95/SOT3
P94/SCK3
P91
P92
P96
Vcc
Vss
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
P80
P81
P00/IN0
P01/IN1
P02/IN2
P03/IN3
(TOP VIEW)
80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51
P04/IN4
81
50
P97/FRCK1
P05/IN5
82
49
PB7/FRCK0
P06/OUT0
83
48
P54/PPG14
P07/OUT1
84
47
P53/PPG13
P10/OUT2
85
46
P52/PPG12
P11/OUT3
86
45
P51/PPG11
P12
87
44
Vss
P13
88
43
P67/AN7
P14/TIN0
89
42
P66/AN6
Vcc
90
41
P65/AN5
Vss
91
40
P64/AN4
X1
92
39
P63/AN3
X0
93
38
P62/AN2
P15/TOT0
94
37
P61/AN1
P16
95
36
P60/AN0
P17
96
35
AVss
P20/TX1
97
34
AVRL
P21/RX1
98
33
AVRH
P22/INT2
99
32
AVcc
P23/INT3
100
31
PB6/SOT4/AN14
QFP - 100
Package code (mold)
FPT-100P-M06
PB5/SCK4/AN13
PB4/SIN4/AN12
PB3/PPG05/AN11
PB2/PPG04/AN10
PB1/PPG03/AN9
PB0/PPG02/AN8
P50/PPG10
P47/INT1
P46/INT0
P43/SCL
P42/SDA
P41
P40
C
Vss
Vcc
P45/ADTG
P44
P37
P36/SIN0
P35/SCK0
P33/TOT1
P34/SOT0
P32/TIN1
P31
P30
P27/INT7
P26/INT6
P25/INT5
P24/INT4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
(FPT-100P-M06)
As seen with QFP100 probe cable
9
第 1 章 概要
■ MB90F946A の端子配列図
図 1.7-2 MB90F946A の端子配列図
MD2
MD0
MD1
RST
P55/PPG15
P56/PPG00
P57/PPG01
P90
P93/SIN3
P95/SOT3
P94/SCK3
P91
P92
P96
Vcc
Vss
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
P80
P81
P00/IN0
P01/IN1
P02/IN2
P03/IN3
(TOP VIEW)
80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51
P04/IN4
81
50
P97/FRCK1
P05/IN5
82
49
PB7/FRCK0
P06/OUT0
83
48
P54/PPG14
P07/OUT1
84
47
P53/PPG13
P10/OUT2
85
46
P52/PPG12
P11/OUT3
86
45
P51/PPG11
P12
87
44
Vss
P13
88
43
P67/AN7
P14/TIN0
89
42
P66/AN6
Vcc
90
41
P65/AN5
Vss
91
40
P64/AN4
X1
92
39
P63/AN3
X0
93
38
P62/AN2
P15/TOT0
94
37
P61/AN1
P16
95
36
P60/AN0
P17
96
35
AVss
P20/TX1
97
34
AVRL
P21/RX1
98
33
AVRH
P22/INT2
99
32
AVcc
P23/INT3
100
31
PB6/SOT4/AN14
QFP - 100
Package code (mold)
FPT-100P-M06
(FPT-100P-M06)
10
PB5/SCK4/AN13
PB4/SIN4/AN12
PB3/PPG05/AN11
PB2/PPG04/AN10
PB1/PPG03/AN9
PB0/PPG02/AN8
P50/PPG10
P47/INT1
P46/INT0
P43/SCL
P42/SDA
P41
P40
C
Vss
Vcc
P45/ADTG
P44
P37
P36/SIN0
P35/SCK0
P33/TOT1
P34/SOT0
P32/TIN1
P31
P30
P27/INT7
P26/INT6
P25/INT5
P24/INT4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
第 1 章 概要
■ MB90947A/MB90F947(A)/MB90F949(A) の端子配列図
図 1.7-3 MB90947A/MB90F947(A)/MB90F949(A) の端子配列図
MD2
MD0
MD1
RST
P55/PPG15
P56/PPG00
P57/PPG01
P90
P93/SIN3
P95/SOT3
P94/SCK3
P91
P92
P96
Vcc
Vss
PA0
PA1
PA2
PA3
PA4
PA5
PA6
PA7
P80
P81
P00/IN0
P01/IN1
P02/IN2
P03/IN3
(TOP VIEW)
80 79 78 77 76 75 74 73 72 71 70 69 68 67 66 65 64 63 62 61 60 59 58 57 56 55 54 53 52 51
P04/IN4
81
50
P97/FRCK1
P05/IN5
82
49
PB7/FRCK0
P06/OUT0
83
48
P54/PPG14
P07/OUT1
84
47
P53/PPG13
P10/OUT2
85
46
P52/PPG12
P11/OUT3
86
45
P51/PPG11
P12
87
44
Vss
P13
88
43
P67/AN7
P14/TIN0
89
42
P66/AN6
Vcc
90
41
P65/AN5
Vss
91
40
P64/AN4
X1
92
39
P63/AN3
X0
93
38
P62/AN2
P15/TOT0
94
37
P61/AN1
P16
95
36
P60/AN0
P17
96
35
AVss
P20/TX1
97
34
AVRL
P21/RX1
98
33
AVRH
P22/INT2
99
32
AVcc
P23/INT3
100
31
PB6/SOT4/AN14
QFP - 100
Package code (mold)
FPT-100P-M06
PB5/SCK4/AN13
PB4/SIN4/AN12
PB3/PPG05/AN11
PB2/PPG04/AN10
PB1/PPG03/AN9
PB0/PPG02/AN8
P50/PPG10
P47/INT1
P46/INT0
P43/SCL
P42/SDA
P41
P40
C
Vss
Vcc
P45/ADTG
P44
P37
P36/SIN0
P35/SCK0
P34/SOT0
P33
P32
P31
P30
P27/INT7
P26/INT6
P25/INT5
P24/INT4
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
(FPT-100P-M06)
11
第 1 章 概要
1.8
パッケージ外形寸法図
図 1.8-1 に , MB90945 シリーズのパッケージ外形寸法図を示します。なお , 本外形
寸法は参考用です。正式版については , 別途ご相談ください。
■ パッケージ外形寸法図
図 1.8-1 パッケージ外形寸法図
プラスチック・QFP, 100 ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
14.00 × 20.00mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
3.35mm MAX
コード(参考)
P-QFP100-14×20-0.65
(FPT-100P-M06)
プラスチック・QFP, 100 ピン
(FPT-100P-M06)
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
23.90±0.40(.941±.016)
* 20.00±0.20(.787±.008)
80
51
81
50
0.10(.004)
17.90±0.40
(.705±.016)
*14.00±0.20
(.551±.008)
INDEX
Details of "A" part
100
1
30
0.65(.026)
"A"
C
12
0.25(.010)
+0.35
3.00 –0.20
+.014
.118 –.008
(Mounting height)
0~8˚
31
2002 FUJITSU LIMITED F100008S-c-5-5
0.32±0.05
(.013±.002)
0.13(.005)
M
0.17±0.06
(.007±.002)
0.80±0.20
(.031±.008)
0.88±0.15
(.035±.006)
0.25±0.20
(.010±.008)
(Stand off)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.9
端子機能説明
表 1.9-1 に , MB90945 シリーズの端子機能説明を示します。
■ 端子機能説明
表 1.9-1 端子機能説明 ( 1 / 4 )
端子番号
端子名
回路形式
92
X1
93
X0
54
RST
B
リセット入力端子です。
P00 ~ P05
D
汎用入出力ポートです。
77 ~ 82
A
機能説明
発振用端子です。
IN0 ~ IN5
83 ~ 86
P06, P07
P10, P11
インプットキャプチャ 0 ~ 5 の入力端子です。
D
OUT0 ~
OUT3
87, 88
89
P12, P13
D
汎用入出力ポートです。
P14
D
汎用入出力ポートです。
P15
16 ビット リロードタイマ 0 の TIN0 入力端子です
D
TOT0
95, 96
97
汎用入出力ポートです。
16 ビット リロードタイマ 0 の TOT0 出力端子です。
P16, P17
D
汎用入出力ポートです。
P20
D
汎用入出力ポートです。
TX1
98
汎用入出力ポートです。
アウトプットコンペアの出力端子です。
TIN0
94
発振用端子です。
P21
CAN インタフェース 1 の TX 出力端子です。
F
RX1
汎用入出力ポートです。
CAN インタフェース 1 の RX 入力端子です。
D
99, 100
1~4
P22 ~ P27
5~8
P30 ~ P33
D
汎用入出力ポートです。
P34
D
汎用入出力ポートです。
9
INT2 ~ INT7
INT2 ~ INT7 の外部割込み入力端子です。
SOT0
10
P35
SCK0
汎用入出力ポートです。
UART 0 の SOT 出力端子です。
D
汎用入出力ポートです。
UART 0 の SCK 入出力端子です。
13
第 1 章 概要
表 1.9-1 端子機能説明 ( 2 / 4 )
端子番号
11
端子名
P36
回路形式
D
SIN0
汎用入出力ポートです。
UART 0 の SIN 入力端子です。
12
P37
D
汎用入出力ポートです。
13
P44
D
汎用入出力ポートです。
14
P45
D
汎用入出力ポートです。
ADTG
18, 19
20
A/D コンバータの外部トリガ入力端子です。
P40, P41
D
汎用入出力ポートです。
P42
F
汎用入出力ポートです。
SDA
21
P43
I2C インタフェースのシリアルデータ端子です。
F
SCL
22, 23
P46, P47
24
P50
D
29
30
31
36 ~ 43
PB0 ~ PB3
汎用入出力ポートです。
INT0 ~ INT1 の外部割込み入力端子です。
D
PPG10
25 ~ 28
汎用入出力ポートです。
I2C インタフェースのシリアルクロック端子です。
INT0, INT1
汎用入出力ポートです。
プログラマブルパルスジェネレータの出力端子です。
E
汎用入出力ポートです。
PPG02 ~
PPG05
プログラマブルパルスジェネレータの出力端子です。
AN8 ~ AN11
A/D コンバータの入力端子です。
PB4
E
汎用入出力ポートです。
SIN4
シリアル I/O の SIN 入力端子です。
AN12
A/D コンバータの入力端子です。
PB5
E
汎用入出力ポートです。
SCK4
シリアル I/O の SCK 入出力端子です。
AN13
A/D コンバータの入力端子です。
PB6
E
汎用入出力ポートです。
SOT4
シリアル I/O の SOT 出力端子です。
AN14
A/D コンバータの入力端子です。
P60 ~ P67
AN0 ~ AN7
14
機能説明
E
汎用入出力ポートです。
A/D コンバータの入力端子です。
第 1 章 概要
表 1.9-1 端子機能説明 ( 3 / 4 )
端子番号
端子名
45 ~ 48
P51 ~ P54
回路形式
D
PPG11 ~
PPG14
49
PB7
P97
D
P55
D
P56, P57
D
P90
D
P93
D
P95
D
P94
D
P91
D
P92
D
汎用入出力ポートです。
UART2 の SCK 入出力端子です (LIN/SCI/SPI)。
(MB90F946A, MB90V390HA/HB のみ )
D
SOT2
64
汎用入出力ポートです。
UART 3 の SCK 入出力端子です (LIN/SCI/SPI)。
SCK2
63
汎用入出力ポートです。
UART 3 の SOT 出力端子です (LIN/SCI/SPI)。
SCK3
62
汎用入出力ポートです。
UART 3 の SIN 入力端子です (LIN/SCI/SPI)。
SOT3
61
汎用入出力ポートです。
UART 2 の SIN 入力端子です (LIN/SCI/SPI)。
(MB90F946A, MB90V390HA/HB のみ )
SIN3
60
汎用入出力ポートです。
プログラマブルパルスジェネレータの出力端子です。
SIN2
59
汎用入出力ポートです。
プログラマブルパルスジェネレータの出力端子です。
PPG00,
PPG01
58
汎用入出力ポートです。
16 ビット I/O タイマ 1 の FRCK1 入力端子です。
PPG15
56, 57
汎用入出力ポートです。
16 ビット I/O タイマ 0 の FRCK0 入力端子です。
FRCK1
55
汎用入出力ポートです。
プログラマブルパルスジェネレータの出力端子です。
FRCK0
50
機能説明
汎用入出力ポートです。
UART 2 の SOT 出力端子です (LIN/SCI/SPI)。
(MB90F946A, MB90V390HA/HB のみ )
P96
D
汎用入出力ポートです。
PA0 ~ PA7
H
汎用入出力ポートです。EVA デバイスでは端子はス
ルーレート制御付き高電流出力です。
P80, P81
H
汎用入出力ポートです。EVA デバイスでは端子はス
ルーレート制御付き高電流出力です。
32
AVCC
--
A/D コンバータの専用電源 (5V) 端子です。
33
AVRH
--
A/D コンバータ用高基準電圧入力端子です。
67 ~ 74
75, 76
15
第 1 章 概要
表 1.9-1 端子機能説明 ( 4 / 4 )
端子番号
端子名
回路形式
機能説明
34
AVRL
--
A/D コンバータ用低基準電圧入力端子です。
35
AVSS
--
A/D コンバータの専用電源 (0V) 端子です。
MD1, MD0
C
動作モード指定用入力端子です。VCC あるいは VSS
52, 53
に直接つないで使用してください。
51
MD2
G
動作モード指定用入力端子です。VCC あるいは VSS
に直接つないで使用してください。
16
15
65
90
VCC
--
電源 (5V) 入力端子です。EVA デバイスでは , ピン 65
は高電流出力の DVcc 供給端子として使用します。
16
44
66
91
VSS
--
電源 (0V) 入力端子です。EVA デバイスでは , ピン 66
は高電流出力の DVss 供給端子として使用します。
17
C
--
電源安定化の容量端子です。0.1 μF 以上のセラミッ
クコンデンサに接続してください。
第 1 章 概要
1.10
入出力回路
表 1.10-1 に , 入出力回路を示します。
■ 入出力回路
表 1.10-1 入出力回路 ( 1 / 3 )
分類
回路
備考
A
発振帰還抵抗約 1MΩ
X1
クロック入力
P-ch
N-ch
X0
スタンバイ制御信号
B
プルアップ抵抗付きCMOSヒステリ
VCC
シス入力
( 約 50kΩ)
R ( プルアップ )
R
CMOS ヒステリシス入力
C
R
CMOS ヒステリシス入力
• 評価用品 / マスク ROM 品 :
CMOS ヒステリシス入力
• フラッシュメモリ品 :
CMOS 入力
17
第 1 章 概要
表 1.10-1 入出力回路 ( 2 / 3 )
分類
回路
備考
D
• CMOS 出力 (4mA)
• オートモーティブヒステリシス
入力
VCC
P-ch
N-ch
R
ࠝ࡯࠻ࡕ࡯࠹ࠖࡉ
ࡅࠬ࠹࡝ࠪࠬ౉ജ
E
VCC
P-ch
N-ch
P-ch
アナログ入力
N-ch
R
18
オートモーティブ
ヒステリシス入力
• CMOS 出力 (4mA)
• オートモーティブヒステリシス
入力
• アナログ入力
第 1 章 概要
表 1.10-1 入出力回路 ( 3 / 3 )
分類
回路
備考
F
• CMOS 出力
P21: 4mA
P42, P43: 3mA
• CMOS ヒステリシス入力
VCC
P-ch
High current
N-ch
R
CMOSヒステリシス入力
R
Automotive HYS
G
R
CMOSヒステリシス入力
R(プルダウン)
H
VCC
P-ch
N-ch
• 評価用品 / マスク ROM 品 :
プルダウン抵抗付き CMOS
ヒステリシス入力
( 約 50 kΩ)
• フラッシュメモリ品 :
プルダウンなし CMOS 入力
• 評価用品 / マスク ROM 品 :
スルーレート制御付き
CMOS 高電流出力 (30mA)
• フラッシュメモリ品 :
CMOS 出力 (4mA)
• オートモーティブヒステリシス
入力
R
ࠝ࡯࠻ࡕ࡯࠹ࠖࡉ
ࡅࠬ࠹࡝ࠪࠬ౉ജ
19
第 1 章 概要
1.11
デバイスの取扱い
デバイスを取り扱う際には , 次の 11 の点について特にご注意ください。
• ラッチアップの防止
• 未使用端子の処理
• 電源電圧の安定化
• 外部クロックの使用
• 電源端子 (VCC/VSS)
•
•
•
•
•
•
プルアップ / プルダウン抵抗
水晶発振回路について
A/D コンバータの電源 , アナログ入力の投入順序について
A/D コンバータ未使用時の端子処理について
電源投入時の注意点
PLL クロックモード動作中の注意について
■ デバイスの取扱い
● ラッチアップの防止
CMOS IC は , 以下の条件でラッチアップ現象を生じさせることがあります。
• VCC を超えるか VSS に満たない電圧が , 入力または出力端子に適用された場合
• 定格電圧を超える電圧が VCC と VSS の間に適用された場合
• AVCC 電源入力が VCC 電圧の前に適用された場合
ラッチアップ現象は , 電源電流を急激に増加させ , デバイスを傷つけることがありま
す。
● 未使用端子の処理
使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる
永久破壊の原因となることがありますので , 2kΩ 以上の抵抗を介して , プルアップまた
はプルダウンなどの処置をしてください。
また , 使用していない入出力端子がある場合は , 出力状態に設定して開放するか , 入力
状態に設定して入力端子と同じ処置をしてください。
● 電源電圧の安定化
VCC 電源電圧の動作保証内においても , 電源電圧の急激な変化があると誤動作を起こ
す場合がありますので , VCC 電源電圧を安定させてください。
安定化の基準としては, 商用周波数 (50 Hz~60 Hz) でのVCC リップル変動 (peak to peak
値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また電源の切換え時などの瞬時変化にお
いては , 過度変動率が 0.1 V/ms 以下になるように電源電圧を抑えてください。
20
第 1 章 概要
● 外部クロックの使用
外部クロックを使用するには , X0 端子を駆動して X1 端子は開放してください。
図 1.11-1 に , 外部クロックの使用方法を示します。
図 1.11-1 外部クロックの使用
MB90945 シリーズ
X0
開放
X1
● 電源端子 (VCC/VSS)
図 1.11-2 に示すように , すべての VCC 電源端子は , 必ず同電位にしてください。また ,
すべての VSS 電源端子も同様に扱ってください。複数の VCC または VSS システムがあ
る場合 , デバイスは保証された動作範囲内でも正しく動作しません。
図 1.11-2 電源端子 (VCC/VSS)
Vcc
Vss
Vcc
Vss
Vss
Vcc
MB90945
シリーズ
Vcc
Vss
Vss
Vcc
21
第 1 章 概要
● プルアップ / プルダウン抵抗
MB90945 シリーズは , 内部プルアップ / プルダウン抵抗オプションをサポートしてい
ません。必要であれば , 外部構成部品を使用してください。
● 水晶発振回路について
X0, X1 端子の近辺のノイズは , このデバイスの誤動作の原因となります。X0, X1 端子
および水晶振動子 (またはセラミック振動子) さらにグランドへのバイパスコンデンサ
はできる限り近くになるように , またその配線は , ほかの配線とできる限り交差しない
ようにプリント基板を設計してください。
また , X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定し
た動作を期待できますので , 強くお薦めします。
各量産品において、ご使用される発振子メーカに発振評価依頼をしてください。
● A/D コンバータの電源 , アナログ入力の投入順序について
A/D コンバータの電源 (AVCC, AVRH, AVRL) およびアナログ入力 (AN0 ~ AN14) の印
加は , 必ずデジタル電源 (VCC) の投入後に行ってください。
また , 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル
電源の遮断を行ってください。その際 , 電圧は AVRH, AVCC を超えないように投入・
切断を行ってください 。
● A/D コンバータ未使用時の端子処理について
A/D コンバータを使用しないときは , AVCC=VCC, AVSS=AVRH=AVRL=VSS に接続して
ください。
● 電源投入時の注意点
内部に内蔵している降圧回路の誤動作を防ぐために , 電源投入時における電圧の立上
り時間は , 50 μs (0.2 V ~ 2.7 V の間 ) 以上を確保してください。
● PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたりまたはクロック入
力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を継続
し続ける場合があります。この動作は保証外です。
22
第2章
CPU
CPU について説明します。
2.1 CPU の概要
2.2 メモリ空間
2.3 メモリ空間マップ
2.4 リニア方式によるアドレス指定
2.5 バンク方式によるアドレス指定
2.6 メモリ空間における多バイト長データ
2.7 レジスタ
2.8 レジスタバンク
2.9 プリフィックスコード
2.10 割込み抑止命令
2.11 「DIV A, Ri」
「DIVW A, RWi」命令の使用上の注意
23
第 2 章 CPU
2.1
CPU の概要
F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ
れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン
トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。
■ CPU の概要
F2MC-16LX CPU コアは 16 ビットデータ処理はもちろん , 内部に 32 ビットアキュム
レータを塔載しているため 32 ビットデータ処理も可能です ( 一部の命令と併せて 32
ビットデータ処理が可能になります )。メモリ空間は最大 16M バイト ( 拡張可能 ), リ
ニア方式およびバンク方式のいずれかにてアクセス可能です。また , 命令体系は F2MC8L の A-T アーキテクチャをベースに , 高級言語対応命令の追加・アドレッシングモー
ドの拡張・乗除算命令の強化・ビット処理の充実化により命令が強化されています。
以下に , F2MC-16LX CPU の特長を示します。
● 最小命令実行時間
42ns (4MHz 発振 , 6 逓倍 )
● 最大メモリ空間
16M バイト , リニア / バンク方式にてアクセス
● コントローラ用途に最適化された命令体系
• 豊富なデータタイプビット / バイト / ワード / ロングワード
• 拡張されたアドレッシングモード 23 種類
• 32 ビットアキュムレータの採用による高精度演算 (32 ビット長 ) の強化
● 強力な割込み機能
8 つのプライオリティレベル ( プログラマブル )
● CPU に依存しない自動転送機能
最大 16 チャネルまでの拡張インテリジェント I/O サービス
● 高級言語 (C 言語 ) / マルチタスクに対応した命令体系
システムスタックポインタの採用 / 命令セットの対称性 / バレルシフト命令
● 実行速度の向上
4 バイトのキュー
24
第 2 章 CPU
2.2
メモリ空間
F2MC-16LX CPU が管理するデータ・プログラム・I/O はすべて F2MC-16LX CPU が
持つ 16M バイトのメモリ空間のいずれかに配置されます。CPU は 24 ビットのアド
レスバスでこれらのアドレスを示すことにより , 各リソースをアクセスできます。
■ CPU メモリ空間の概要
図 2.2-1 に , F2MC-16LX システムとメモリマップの関係例を示します。
図 2.2-1 F2MC-16LX システムとメモリマップの関係例
F2MC-16LX デバイス
FFFFFFH
FFFC00H
プログラム
FF0000H *1
ベクタテーブル領域
ROM 領域
プログラム領域
100000H
010000H
F2MC-16LX
CPU
内部データバス
008000H / 004000H *2
020000H
外部領域 *4
ROM ミラー領域
(FF バンクのイメ-ジ )
外部領域 *4
000D00H *3
データ
EI2OS
000380H
000180H
000100H
0000C0H
割込み
データ領域
汎用レジスタ
EI2OS ディスク
リプタ領域
外部領域 *4
割込み制御レジスタ領域
0000B0H
リソース
汎用ポート
RAM 領域
リソース制御レジスタ領域
I/O 領域
000020H
000000H
I/O ポート制御レジスタ
領域
*1:品種によって , 内蔵 ROM の容量が異なります。
*2:品種によって , イメージでアクセスできる領域が異なります ( 第 24 章を参照 )。
*3:品種によって , 内蔵 RAM の容量が異なります。
*4:シングルチップモード時には , アクセスできません。
25
第 2 章 CPU
■ ROM 領域
● ベクタテーブル領域 ( アドレス : FFFC00H ~ FFFFFFH)
ベクタコール命令 , 割込みベクタおよびリセットベクタの各々のベクタテーブルとし
て使用します。
ROM 領域の最上位アドレスに割り当てられており , 対応する処理ルーチンの開始アド
レスをベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルのア
ドレスにデータとして設定します。
● プログラム領域 ( アドレス:" ~ FFFBFFH")
ROM が内部プログラム領域として内蔵されています。
内蔵 ROM の容量は , 品種によっ
て異なります。
■ RAM 領域
● データ領域 ( アドレス : 000100H ~ 0010FFH (4K バイト用 ))
スタティック RAM が , 内部データ領域として内蔵されています。
内蔵 RAM 容量は , 品種によって異なります。
● 汎用レジスタ領域 ( アドレス : 000180H ~ 00037FH)
8 ビット , 16 ビット , 32 ビットの演算や転送に使用する補助レジスタが配置されていま
す。
この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用
できます。
汎用レジスタとして使用した場合 , 汎用レジスタアドレス指定は , 短い命令による高速
アクセスを可能とします。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス : 000100H ~
00017FH)
拡張インテリジェント I/O サービス (EI2OS) の転送モード , I/O のアドレス , 転送数およ
びバッファアドレスを設定します。
この領域は RAM 領域の一部として割り当てられているため , 通常の RAM として使用
できます。
■ I/O 領域
● 割込み制御レジスタ領域 ( アドレス : 0000B0H ~ 0000BFH)
割込み制御レジスタ (ICR00~ICR15) は, 割込み機能を持つすべてのリソースに対応し
ています。これらのレジスタは割込みレベルと拡張インテリジェント I/O サービス
(EI2OS) を設定しています。
● リソース制御レジスタ領域 ( アドレス : 000020H ~ 0000AFH)
これらのレジスタはリソースを制御し , かつデータを入出力します。
● I/O ポート制御レジスタ領域 ( アドレス : 000000H ~ 00001FH)
これらのレジスタは I/O ポートを制御し , かつデータを入出力します。
26
第 2 章 CPU
■ アドレス指定の方式
F2MC-16LX のアドレス指定には , 以下に示す 2 つの方式があります。
● リニア方式
24 ビットアドレスすべてを命令により指定する方式
● バンク方式
アドレス上位 8 ビットを用途に応じたバンクレジスタで , アドレス下位 16 ビットを命
令により指定する方式
27
第 2 章 CPU
2.3
メモリ空間マップ
図 2.3-1 に , MB90945 シリーズのメモリ空間マップを示します。
■ メモリ空間マップ
図 2.3-1 に示すように , バンク 00 の上位部分は FF バンク ROM のイメージであり , C コ
ンパイラのスモールモデルを有効にします。下位 16 ビットも同様なため , ポインタ宣
言内の far 仕様を使用せずに ROM 内のテーブルを参照できます。例えば , 00C000H に
アクセスしようとすると , ROM 内の FFC000H の値にアクセスすることになります。バ
ンク FF 内の ROM 領域は 48K バイト (MB90V390HA/HB および MB90F946A では各 32K
バイト ) を超え , バンク 00 内にその全体イメージを表示することはできません。
MB90947A, MB90F947(A) および MB90F949(A) では , FF4000H/FF8000H* ~ FFFFFFH の
間のイメージはバンク 00 内で可視ですが , FF0000H ~ FF3FFFH/FF7FFFH* の間のイメー
ジはバンク FF 内でしか可視でありません。
MB90V390HA/HB および MB90F946A では , FF8000H ~ FFFFFFH の間のイメージはバ
ンク 00 内で可視ですが , FF0000H ~ FF7FFFH の間のイメージはバンク FF 内でしか可
視できません。
*:ROM レジスタの MS ビットで選択できます (「24.2 ROM ミラー機能選択レジスタ
(ROMM)」参照 )。
28
第 2 章 CPU
図 2.3-1 メモリ空間マップ
MB90V390HA
MB90V390HB
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
FCFFFFH
FC0000H
FBFFFFH
FB0000H
FAFFFFH
FA0000H
F9FFFFH
F90000H
8017FFH
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
MB90947A
MB90F947
MB90F947A
MB90F946A
FFFFFFH
ROM (FF バンク )
FF0000H
FEFFFFH
ROM (FE バンク )
FE0000H
FDFFFFH
FFFFFFH
FF0000H
FEFFFFH
FE0000H
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
FD0000H
ROM (FA バンク )
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
FCFFFFH
ROM (FC バンク )
ROM (FB バンク )
MB90F949
MB90F949A
FC0000H
FBFFFFH
FB0000H
FAFFFFH
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
ROM (FC バンク )
ROM (FB バンク )
ROM (FA バンク )
FA0000H
ROM (F9 バンク )
F9FFFFH
F90000H
ROM (F9 バンク )
RAM 6K バイト
800000H
00FFFFH
008000H
ROM (FF バンク
のイメージ )
0070FFH
00FFFFH
00FFFFH
00FFFFH
ROM (FF バンク
ROM (FF バンク
ROM (FF バンク
004000H/ のイメージ )
004000H/ のイメージ )
008000H のイメージ )
008000H
008000H
RAM 12K バイト
0050FFH
004100H RAM 4K バイト
004100H
003FFFH
周辺
003FFFH
003FFFH
周辺
003500H
003500H
0030FFH
0030FFH
RAM 12K バイト
003FFFH
周辺
003500H
周辺
003500H
0030FFH
RAM 12K バイト
RAM 12K バイト 0018FF
H
RAM 6K バイト
000100H
0000BFH
000000H
000100H
000100H
周辺
0000BFH
000000H
周辺
0000BFH
000000H
000100H
周辺
0000BFH
000000H
周辺
: アクセス不可
29
第 2 章 CPU
2.4
リニア方式によるアドレス指定
リニア方式には以下に示す 2 つの方式があります。
• 24 ビットオペランド指定:オペランドにて直接 24 ビットのアドレスを指定する
方式
• 32 ビットレジスタ間接指定:32 ビットの汎用レジスタの内容の下位 24 ビットを
アドレスとして引用する方式
■ 24 ビットオペランド指定
図 2.4-1 に , 24 ビットオペランド指定の例を , 図 2.4-2 に , 32 ビットレジスタ間接指定
の例を示します。
図 2.4-1 リニア方式 (24 ビットレジスタオペランド指定 ) の例
JMPP 123456H
旧プログラムカウンタ+
プログラムバンク
17452DH
17
452D
JMPP 123456H
123456H
新プログラムカウンタ+
プログラムバンク
12
次の命令
3456
図 2.4-2 リニア方式 (32 ビットレジスタ間接指定 ) の例
MOV A, @RL1+7
旧 AL
090700H
XXXX
3A
+7
RL1
( 上位 8 ビットは無視 )
新 AL
30
003A
240906F9
第 2 章 CPU
2.5
バンク方式によるアドレス指定
バンク方式は 16M バイトの空間を 64K バイトごとの 256 個のバンクに分割し , 以下
に示す 5 つのバンクレジスタで各空間に対応するバンクを指定します。
• プログラムカウンタバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルデータバンクレジスタ (ADB)
■ バンク方式によるアドレス指定
● プログラムカウンタバンクレジスタ (PCB) による指定
プログラムカウンタバンクレジスタ (PCB) によって指定される 64K バイトのバンクを
プログラム (PC) 空間とよび , 主として命令コードやベクタテーブル , 即値データなど
が存在します。
● データバンクレジスタ (DTB) による指定
データバンクレジスタ (DTB) によって指定される 64K バイトのバンクをデータ (DT) 空
間とよび , 主として読み書き可能なデータや内外リソースの制御 / データレジスタなど
が存在します。
● ユーザスタックバンクレジスタ (USB)・システムスタックバンクレジスタ (SSB) による指定
ユーザスタックバンクレジスタ (USB) またはシステムスタックバンクレジスタ (SSB)
によって指定される 64K バイトのバンクをスタック (SP) 空間とよび , プッシュ / ポッ
プ命令や割込みのレジスタ退避などの際にスタックアクセスが生じたときにアクセス
される領域です。どちらの空間が使用されるかはコンディションコードレジスタ中の
S フラグの値に依存します。
● アディショナルデータバンクレジスタ (ADB) による指定
アディショナルデータバンクレジスタ (ADB) によって指定される 64K バイトのバンク
をアディショナル (AD) 空間とよび , 主として DT 空間に入りきらなかったデータなど
が存在します。
表 2.5-1 に示すように , 各アドレッシングモードで使用されるデフォルト空間が , 命令
のコード効率を向上するために事前に決められています。また , あるアドレッシングを
用いたときにデフォルト以外の空間を使用したいときは , 各バンクに対応しているプ
リフィックスコードを命令に先行して指定することにより , そのプリフィックスコー
ドに対応した任意のバンク空間をアクセスできます。
DTB, USB, SSB, ADB はリセットにより 00H に初期化され , PCB はリセットベクタによ
り指定された値に初期化されます。リセット後 , DT, SP, AD の各空間はバンク 00H
(000000H ~ 00FFFFH) に配置され , PC 空間はリセットベクタにより指定されたバンク
に配置されます。
31
第 2 章 CPU
表 2.5-1 デフォルト空間
デフォルト空間
アドレッシング
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0,@RW1,@RW4,@RW5 を用いたアドレッシング , @A, addr16, dir
スタック空間
PUSHW, POPW,@RW3,@RW7 を用いたアドレッシング
アディショナル空間
@RW2,@RW6 を用いたアドレッシング
図 2.5-1 に , レジスタバンクに分割されたメモリ空間の例を示します。
図 2.5-1 各空間の物理アドレス
FFFFFF H
プログラム空間
FF0000 H
B3FFFF H
物理アドレス
: PCB ( プログラムカウンタバンクレジスタ )
B3 H
: ADB ( アディショナルデータバンクレジスタ )
92 H
: USB ( ユーザスタックバンクレジスタ )
68 H
: DTB ( データバンクレジスタ )
4B H
: SSB ( システムスタックバンクレジスタ )
アディショナル空間
B30000 H
92FFFF H
FF H
ユーザスタック空間
920000 H
68FFFF H
データ空間
680000 H
4BFFFF H
システムスタック空間
4B0000 H
000000 H
32
第 2 章 CPU
2.6
メモリ空間における多バイト長データ
メモリへの書込みはアドレスの低い方から順に行われます。したがって , 32 ビット
長データであれば下位 16 ビットが先に転送され , 続いて上位 16 ビットが転送され
ます。
なお , 下位データの書込み直後にリセット信号を入力すると上位データが書き込ま
れないことがあります。
■ メモリ空間における多バイト長データの配置
図 2.6-1 に , メモリにおける多バイト長データの構成を示します。データは下位 8 ビッ
トが n 番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。
図 2.6-1 メモリにおける多バイト長データの配置の例
MSB
"H"
LSB
01010101
11001100
11111111
00010100
01010101
11001100
11111111
n 番地
00010100
"L"
■ 多バイト長データのアクセス
アクセスはすべてバンク内を基本にして行われますので , 多バイト長のデータをアク
セスする命令では , FFFFH 番地の次のアドレスは同じバンクの 0000H 番地になります。
図 2.6-2 に , 多バイト長データのアクセス命令の例を示します。
図 2.6-2 MOVWA, 080FFFFH の実行
"H"
80FFFF H
実行前の AL
??
??
実行後の AL
23 H
01H
01H
·
·
·
23 H
800000 H
"L"
33
第 2 章 CPU
2.7
レジスタ
F2MC-16LX のレジスタは大別して , 専用レジスタと , 汎用レジスタの 2 種類に分け
ることができます。
専用レジスタは , CPU の内部に専用ハードウェアとして存在し , 使用する用途が
CPU のアーキテクチャ上で限定されています。
汎用レジスタは , 通常のメモリ空間と同じく , 使用する用途をユーザが指定できるも
のです。CPU のアドレス空間上に RAM と共存し , アドレスを指定しないでアクセ
スできるという点では専用レジスタと同じです。
■ 専用レジスタ
F2MC-16LX CPU コアの専用レジスタを以下に示します。
•
•
アキュムレータ (A=AH:AL)……16 ビット× 2 本のアキュムレータ ( 合計 32 ビットのアキュ
ムレータとしても使用可能 )
ユーザスタックポインタ (USP)……ユーザスタック領域を示す 16 ビットのポインタ
•
システムスタックポインタ (SSP)……システムスタック領域を示す 16 ビットのポインタ
•
プロセッサステータス (PS)……システムの状態を示す 16 ビットのレジスタ
•
•
プログラムカウンタ (PC)……プログラムが格納されているアドレスを持つ 16 ビットのレジ
スタ
プログラムカウンタバンクレジスタ (PCB)……PC 空間を示す 8 ビットのレジスタ
•
データバンクレジスタ (DTB)……DT 空間を示す 8 ビットのレジスタ
•
ユーザスタックバンクレジスタ (USB)……ユーザスタック空間を示す 8 ビットのレジスタ
•
システムスタックバンクレジスタ(SSB)……システムスタック空間を示す8ビットのレジスタ
•
アディショナルデータバンクレジスタ (ADB)……AD 空間を示す 8 ビットのレジスタ
• ダイレクトページレジスタ (DPR)……ダイレクトページを示す 8 ビットのレジスタ
図 2.7-1 に , 専用レジスタの構成を示します。
34
第 2 章 CPU
図 2.7-1 専用レジスタ
AH
: アキュムレータ
AL
USP
: ユーザスタックポインタ
SSP
: システムスタックポインタ
: プロセッサステータス
PS
: プログラムカウンタ
PC
DPR
: ダイレクトページレジスタ
PCB
: プログラムカウンタバンクレジスタ
DTB
: データバンクレジスタ
USB
: ユーザスタックバンクレジスタ
SSB
: システムスタックバンクレジスタ
ADB
: アディショナルデータバンクレジスタ
8 ビット
16 ビット
32 ビット
35
第 2 章 CPU
■ 汎用レジスタ
図 2.7-2 に示すように , F2MC-16LX の汎用レジスタは主記憶の 000180H ~ 00037FH ( 最
大の場合 ) に存在し , レジスタバンクポインタ (RP) によって先に述べたアドレスのど
の部分が現在使用中のレジスタバンクであるかを指定します。各バンクには以下に示
す 3 種のレジスタが存在します。これらは独立ではなく , 以下に示すような関係があり
ます。
• R0 ~ R7
:8 ビットの汎用レジスタ
• RW0 ~ RW7
:16 ビットの汎用レジスタ
• RL0 ~ RL3
:32 ビットの汎用レジスタ
図 2.7-2 汎用レジスタ
MSBLSB
16 ビット
000180H + RP × 10H
RW0
下位
RL0
汎用レジスタの先頭アドレス
RW1
RW2
RL1
RW3
R1
R0
RW4
R3
R2
RW5
R5
R4
RW6
R7
R6
RW7
RL2
RL3
上位
バイトレジスタとワードレジスタの上位 / 下位バイトの関係は ,
RW (i+4) = R (i × 2+1) × 256+R (i × 2) [i=0 ~ 3]
という式で表すことができ , RLi の上位・下位と RWi の関係は
RL (i) = RW (i × 2+1) × 65536+RW (i × 2) [i=0 ~ 3]
という式で表すことができます。
36
第 2 章 CPU
2.7.1
アキュムレータ (A)
アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL
で構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されま
す。
■ アキュムレータ (A)
アキュムレータ (A) レジスタは , 2 つの 16 ビット長の演算用レジスタ AH および AL で
構成され , 演算などを行った際の結果やデータ転送の一時記憶などに使用されます。
アキュムレータ (A) レジスタでは , 図 2.7-3 に示すように , 32 ビットデータ処理時は AH
と AL を連結して使用します。また , 図 2.7-4 に示すように , 16 ビットデータ処理のワー
ド処理や 8 ビットデータ処理のバイト処理のときは AL のみが使用されます。A レジ
スタ中のデータはメモリ / レジスタ (Ri, RWi, RLi) 中のデータと各種演算ができ , F2MC8L のときと同様 , F2MC-16LX でも基本的にワード長以下のデータを AL へ転送すると ,
転送前の AL 中のデータが自動的に AH に転送されます ( データ保持機能 ) ので , デー
タ保持機能と AL と AH 間演算にて各種処理効率を上げることが可能になります。
AL へのバイト長以下のデータの転送時は , データは符号拡張またはゼロ拡張され , 16
ビット長となり AL へ格納されます。AL 中のデータは , ワード長としてもバイト長と
しても扱えます。AL にバイト処理の算術演算命令を実行すると , 演算前の AL の上位
8 ビットは無視され , 演算結果の上位 8 ビットはすべて "0" になります。A レジスタは ,
リセットでは初期化されず , リセット直後は不定値になります。
図 2.7-3 32 ビットデータ転送例
MO VL A,@R W1+6
実行前の A
XXXX H
MSBLSB
XXXX H
A6 H
DTB
実行後の A
8F74 H
A61540 H
8F H
74 H
A6153E H
2B H
52 H
15 H
38 H
+6
2B52 H
RW1
AHAL
図 2.7-4 AL-AH 転送例
MSB
MO VW A,@R W1+6
実行前の A
XXXX H
1234 H
DTB
実行後の A
1234 H
1234 H
A6 H
LSB
A61540 H
8F H
74 H
A6153E H
2B H
52 H
15 H
38 H
+6
RW1
37
第 2 章 CPU
2.7.2
ユーザスタックポインタ (USP) とシステムスタック
ポインタ (SSP)
ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16 ビッ
トのレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 /
復帰のメモリアドレスを示します。
■ ユーザスタックポインタ (USP) とシステムスタックポインタ (SSP)
ユーザスタックポインタ (USP) およびシステムスタックポインタ (SSP) は , 16 ビット
のレジスタであり , プッシュ / ポップ命令およびサブルーチン実行時のデータ退避 / 復
帰のメモリアドレスを示します。
図 2.7-5 に示すように , ユーザスタックポインタ (USP) とシステムスタックポインタ
(SSP) は , スタック系の命令により使用されますが , プロセッサステータス中の S フラ
グが "0" のときは , USP レジスタが有効になり , S フラグが "1" のときは SSP レジスタ
が有効になります。また , 割込みが受け付けられると S フラグがセットされるため , 割
込み時のレジスタ退避は必ず SSP の示すメモリ中に行われます。割込みルーチンでの
スタック処理は SSP で , 割込みルーチン以外のスタック処理は USP が用いられます。
スタック空間を分ける必要のない場合は SSP だけをお使いください。
スタック時のアドレスの上位 8 ビットは , SSP → SSB, USP → USB により示されます。
また USP および SSP は , リセットでは初期化されず , 不定値になります。
38
第 2 章 CPU
図 2.7-5 スタック操作命令とスタックポインタ
MSBLSB
S フラグが "0" のときの PUSHW A の例
実行前
AL
S フラグ
AL
実行後
C6F326 H
A624 H
USB
C6 H
USP
F328 H
0
SSB
56 H
SSP
1234 H
A624 H
USB
C6 H
USP
F326 H
0
SSB
56 H
SSP
1234 H
C6F326 H
A6 H
24 H
561232 H
XX
XX
561232 H
A6 H
24 H
XX
XX
S フラグが "0" であるため
ユーザスタックを使用
S フラグが "1" のときの PUSH A の例
AL
AL
A624 H
USB
C6 H
USP
F328 H
1
SSB
56 H
SSP
1234 H
A624 H
USB
C6 H
USP
F328 H
1
SSB
56 H
SSP
1232 H
S フラグが "1" であるため
システムスタックを使用
<注意事項>
スタックポインタに設定すべき値は , 原則として偶数アドレスを使用してください。
39
第 2 章 CPU
2.7.3
プロセッサステータス (PS)
プロセッサステータス (PS) は , CPU の動作制御を行うビットと CPU の状態を示す
ビットより構成されています。
■ プロセッサステータス (PS)
図 2.7-6 に示すように , プロセッサステータス (PS) の上位バイトはレジスタバンクの先
頭アドレスを示すレジスタバンクポインタ (RP) およびインタラプトレベルマスクレジ
スタ (ILM) より構成され , PS の下位バイトは命令実行結果および割込み発生などによ
りセット / リセットされる各種フラグより構成されているコンディションコードレジ
スタ (CCR) より構成されています。
図 2.7-6 プロセッサステータス (PS) の構造
bit15
bit13 bit12
PS
ILM
bit8 bit7
bit0
RP
CCR
■ コンディションコードレジスタ (CCR)
図 2.7-7 に , コンディションコードレジスタ (CCR) の構成を示します。
図 2.7-7 コンディションコードレジスタ (CCR) の構成
初期値→
bit7
bit6
bit5
bit3
bit4
bit2
bit1
bit0
-
-
I
0
S
1
T
*
N
*
Z
*
V
*
C
*
CCR
*: 不定値
● 割込み許可フラグ (I)
ソフトウェアインタラプト以外のすべての割込み要求に対し I が "1" のときは割込みが
許可 , "0" のときは割込みはマスクされます。リセット時はクリアされます。
● スタックフラグ (S)
S が "0" のときはスタック操作用ポインタとして USP が有効 , "1" のときは SSP が有効
になります。割込み受付け時およびリセット時にセットされます。
● スティッキィビットフラグ (T)
論理右 / 算術右シフト命令を実行後にキャリよりシフトアウトされたデータに 1 つ以
上 "1" があったら "1", それ以外は "0" になります。シフト量がゼロの場合も "0" になり
ます。
● ネガティブフラグ (N)
演算結果の MSB が "1" なら N フラグはセット , それ以外はクリアされます。
● ゼロフラグ (Z)
演算結果がすべて "0" ならセット , それ以外はクリアされます。
40
第 2 章 CPU
● オーバフローフラグ (V)
演算の実行により符号付き数値としてオーバフローが生じるとセット , 生じないとク
リアされます。
● キャリフラグ (C)
演算の実行により MSB より桁上り / 桁下りが生じるとセット , 生じないとクリアされ
ます。
■ レジスタバンクポインタ (RP)
図 2.7-8 に示すように , レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジ
スタとそれが存在する内部 RAM のアドレスとの関係を示すレジスタで , 現在使用中の
レジスタバンクの先頭のメモリアドレスを [00180H+(RP) × 10H] という変換式で示し
ます。RP は 5 ビットにより構成されており 00H ~ 1FH までの値をとることができ ,
000180H ~ 00037FH のメモリ中にレジスタバンクを配置できます。
ただし , この範囲内であっても内部 RAM でなければ汎用レジスタとして使用すること
はできません。RP はリセットによりすべて "0" に初期化されます。命令上では RP に
8 ビットの即値が転送できますが , 実際に使用されるのはそのデータの下位 5 ビットの
みです。
図 2.7-8 レジスタバンクポインタ (RP)
RP
B4
B3
B2
B1
B0
初期値
00000
■ インタラプトレベルマスクレジスタ (ILM)
図 2.7-9 に示すように , インタラプトレベルマスクレジスタ (ILM) は 3 ビットから構成
されており , CPU の割込みマスクのレベルを示します。この 3 ビットにより示される
レベルより強いレベルの割込み要求のみが受け付けられます。表 2.7-1 に示すように ,
レベルの強弱は "0" が最強で , "7" が最弱と定義されています。したがって , 割込みが
受け付けられるには , 現状の ILM の保持値より小さい値の要求でなければなりません。
割込みが受け付けられるとその割込みのレベル値が ILM にセットされ , これ以降の同
じかそれより低い優先順位の割込みは受け付けられなくなります。ILM はリセットに
よりすべて "0" に初期化されます。命令上では ILM に 8 ビットの即値が転送できます
が , 実際に使用されるのはそのデータの下位 3 ビットのみです。
図 2.7-9 インタラプトレベルマスクレジスタ (ILM)
ILM
ILM2
ILM1
ILM0
初期値
000
41
第 2 章 CPU
表 2.7-1 インタラプトレベルマスクレジスタ (ILM) で示されるレベルの強弱
42
ILM2
ILM1
ILM0
レベル値
0
0
0
0
割込み禁止
0
0
1
1
0 のみ
0
1
0
2
1 より小さい値のレベル
0
1
1
3
2 より小さい値のレベル
1
0
0
4
3 より小さい値のレベル
1
0
1
5
4 より小さい値のレベル
1
1
0
6
5 より小さい値のレベル
1
1
1
7
6 より小さい値のレベル
許可される割込みレベル
第 2 章 CPU
2.7.4
プログラムカウンタ (PC)
プログラムカウンタ (PC) は , 16 ビットのカウンタであり , CPU が実行すべき命令
コードのメモリアドレスの下位 16 ビットを示します。上位 8 ビットアドレスは
PCB により示されます。PC は条件分岐命令 , サブルーチンコール命令 , 割込み , リ
セットなどにより内容が更新されます。
また , オペランドアクセス時のベースポインタとして使用することもできます。
■ プログラムカウンタ (PC)
図 2.7-10 に , プログラムカウンタを示します。
図 2.7-10 プログラムカウンタ
PCB
FE H
PC
ABCD H
次に実行する命令
FEABCD H
43
第 2 章 CPU
2.8
レジスタバンク
レジスタバンクは 8word で構成され , バイトレジスタ R0 ~ R7, ワードレジスタ
RW0 ~ RW7, ロングワードレジスタ RL0 ~ RL3 の汎用レジスタとして各種演算 ,
ポインタとして各種命令に使用できます。
■ レジスタバンク
表 2.8-1 に , 各レジスタの機能を , 表 2.8-2 に各レジスタの関係を示します。
レジスタバンクの内容は , 通常の RAM 同様に , リセットでは初期化されず , リセット
前の状態が保持されます。ただし , パワーオン時は不定値になります。
表 2.8-1 各レジスタの機能
R0 ~ R7
各種命令のオペランドとして使用
( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ命
令のカウンタとしても使用
RW0 ~ RW7
ポインタ , 各種命令のオペランドとして使用
( 注意事項 ) RW0 はストリング命令のカウンタとしても使用
RL0 ~ RL3
ロングポインタ , 各種命令のオペランドとして使用
表 2.8-2 各レジスタの関係
RW0
RW1
RL0
RW2
RW3
R0
R1
R2
R3
R4
R5
R6
R7
44
RL1
RW4
RL2
RW5
RW6
RL3
RW7
第 2 章 CPU
● ダイレクトページレジスタ (DPR) <初期値 :01H >
ダイレクトページレジスタ (DPR) は , ダイレクトアドレッシングの命令時のオペラン
ドの addr8 ~ addr15 を指定します。図 2.8-1 に示すように , DPR は 8 ビット長であり ,
リセットにより 01H に初期化されます。DPR は命令により読出し / 書込みができます。
図 2.8-1 ダイレクトアドレッシングによる物理アドレスの生成
DTB レジスタ
DPR レジスタ
αααααααα
ββββββββ
γγγγγγγγ
LSB
MSB
24 ビット
物理アドレス
命令中のダイレクトアドレス
ααααααααββββββββγγγγγγγγ
● プログラムカウンタバンクレジスタ (PCB) <初期値 : リセットベクタ中の値>
● データバンクレジスタ (DTB) <初期値 :00H >
● ユーザスタックバンクレジスタ (USB) <初期値 :00H >
● システムスタックバンクレジスタ (SSB) <初期値 :00H >
● アディショナルデータバンクレジスタ (ADB) <初期値 :00H >
各々のバンクレジスタはそれぞれ PC 空間 , DT 空間 , SP 空間 ( ユーザ ), SP 空間 ( シス
テム ) AD 空間の配置されるメモリバンクを示します。すべてのバンクレジスタはバイ
ト長であり , リセットにより PCB は 00H に初期化されます。PCB 以外のバンクレジス
タは読出し/書込みができます。PCBは読出しは可能ですが書き込むことはできません。
16M バイト全空間に分岐する JMPP, CALLP, RETP, RETIQ, RETF 命令実行時および割
込み時に PCB は書き換わります。各レジスタの動作は , 「2.2 メモリ空間」を参照し
てください。
45
第 2 章 CPU
2.9
プリフィックスコード
命令の前にプリフィックスコードを置くことで , 命令動作の一部を変更することが
可能です。プリフィックスコードには , バンクセレクトプリフィックス , コモンレジ
スタバンクプリフィックス , フラグ変化抑止プリフィックスの 3 種類があります。
■ バンクセレクトプリフィックス
データアクセスの際に使用されるメモリ空間はアドレッシングごとに定められていま
す。バンクセレクトプリフィックスを命令前に置くことで , 命令によるデータアクセス
のメモリ空間をアドレッシングモードと無関係に任意に選択することが可能となりま
す。
表 2.9-1 に , バンクセレクトプリフィックスと対応するメモリ空間を示します。
表 2.9-1 バンクセレクトプリフィックス
バンクセレクトプリ
フィックス
選択される空間
PCB
PC 空間
DTB
データ空間
ADB
AD 空間
SPB
そのときのスタックフラグの内容により SSP 空間 , USP 空間のどちら
かが用いられます。
ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プリフィックス有無にかかわらず , オペランド指定されたバンクレジスタを使用しま
す。
● スタック操作命令〔PUSHW, POPW〕
プリフィックス有無にかかわらず , S フラグに応じて SSB または USB を使用します。
● I/O アクセス命令
MOVA, io/MOV io, A/MOVX A, io/MOVW A, io/MOVW io, A/MOV io,#imm8
MOV io,#imm16/MOVB A, io:bp/MOVB io:bp, A/SETB io:bp/CLRB io:bp
BBC io:bp, rel/BBS io:bp, rel WBTC, WBTS
プリフィックス有無にかかわらず , バンクの I/O 空間が使用されます。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8〕
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
● POPW PS
プリフィックス有無にかかわらず , S フラグに応じて SSB または USB が使用されます。
プリフィックスの効果が次の命令まで及びます。
46
第 2 章 CPU
● MOV ILM,#imm8
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
● RETI
プリフィックス有無にかかわらず , SSB が使用されます。
■ コモンレジスタバンクプリフィックス (CMR)
複数のタスク間でのデータ交換を容易にするためには , そのときの RP がどのような値
でも比較的簡単に定められた同一のレジスタバンクをアクセスする手段が必要です。
コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令の
前に置くことで , 現在の RP の値に関係なくその命令のレジスタアクセスをすべて
000180H ~ 00018FH にあるコモンバンク (RP=0 のときに選択されるレジスタバンク )
に変更できます。ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プリフィックスコードを付加したストリング命令実行中に割込み要求が発生すると ,
割込み復帰後のストリング命令に対しては , プリフィックスが無効であるため誤動作
となります。上記のストリング命令に対しては CMR プリフィックスを付加しないでく
ださい。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
● MOV ILM,#imm8
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
■ フラグ変化抑止プリフィックス (NCC)
フラグ変化を抑止するためには , フラグ変化抑止プリフィックスコード (NCC) を用い
ます。不要フラグ変化を抑止する命令の前に置くことで , 命令実行に伴うフラグ変化を
抑止可能です。ただし , 以下に示す命令に対しては注意してください。
● ストリング命令〔MOVS, MOVSW, SCEQ, SCWEQ, FILS, FILSW〕
プリフィックスコードを付加したストリング命令の実行中に割込み要求が発生すると
割込み復帰後のストリング命令に対してはプリフィックスが無効であるために誤動作
となります。
上記のストリング命令には NCC プリフィックスを付加しないでください。
● フラグ変更命令〔AND CCR,#imm8, OR CCR,#imm8, POPW PS〕
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
● 割込み命令〔INT#vct8, INT9, INT addr16, INTP addr24, RETI〕
プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。
● [email protected]
プリフィックスの有無にかかわらず CCR は命令の仕様どおり変化します。
● MOV ILM, #imm8
命令動作は正常ですが , プリフィックスの効果が次の命令まで及びます。
47
第 2 章 CPU
2.10
割込み抑止命令
以下に示す 10 種類の命令については , 割込み要求はサンプリングされません。
- MOV ILM,#imm8
- PCB
- SPB
- OR
CCR,#imm8
- NCC
- AND CCR,#imm8
- ADB
- CMR
- POPW PS
- DTB
■ 割込み抑止命令
図 2.10-1 に示すように , この命令実行中に有効な割込み要求が発生しても , 割込み処理
が行われるのは , この命令以降にこの種類以外の命令が実行された後になります。
図 2.10-1 割込み抑止命令
割込み抑止命令
• • • • • • • •• • •
(a)
(a) 普通の命令
割込み要求発生
割込み受付け
■ 割込み抑止命令とプリフィックス命令に関する制約
図 2.10-2 に示すように , 割込み抑止命令の前にプリフィックスコードを置くと , プリ
フィックスコードの効果は, プリフィックスコード後の最初の (割込み抑止命令以外の
命令 ) まで及びます。
図 2.10-2 割込み抑止命令とプリフィックスコード
割込み抑止命令
MOV A, FF H
NCC
MOV ILM,#imm8
CCR:XXX10XX
••••
ADD A,01H
CCR:XXX10XX
NCC により CCR は変化しません。
■ プリフィックスコードが連続している場合
図 2.10-3 に示すように , 競合するプリフィックスコードが連続していた場合 , 後方のも
のが有効になります。なお , 競合するプリフィックスコードとはここでいう PCB, ADB,
DTB, SPB のことを意味します。
48
第 2 章 CPU
図 2.10-3 プリフィックスコードの連続
プリフィックスコード
•••••
ADB
DTB
PCB
ADD A,01H
••••
プリフィックスコードは
PCB が有効になります。
49
第 2 章 CPU
2.11
「DIV A, Ri」「DIVW A, RWi」命令の使用上の注意
「DIV A, Ri」「DIVW A, RWi」命令を使用する前に , バンクレジスタを "00H" に設定
してください。
■「DIV A, Ri」「DIVW A, RWi」命令の使用上の注意
表 2.11-1 「DIV A, Ri」
「DIVW A, RWi」命令の使用上の注意 (i = 0 ~ 7)
命令
左記命令実行時に
影響を受ける
バンクレジスタ
余りが格納されるアドレス
DIV A, R0
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 8H : 下位 16 ビット )
DIV A, R1
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 9H : 下位 16 ビット )
DIV A, R4
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + CH : 下位 16 ビット )
DIV A, R5
DIVW A, RW0
DTB
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + DH : 下位 16 ビット )
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 0H : 下位 16 ビット )
DIVW A, RW1
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 2H : 下位 16 ビット )
DIVW A, RW4
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + 8H : 下位 16 ビット )
DIVW A, RW5
(DTB: 上位 8 ビット ) + (0180H + RP × 10H + AH : 下位 16 ビット )
DIV A, R2
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + AH : 下位 16 ビット )
DIV A, R6
DIVW A, RW2
ADB
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + 4H : 下位 16 ビット )
DIVW A, RW6
(ADB: 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
DIV A, R3
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + BH : 下位 16 ビット )
DIV A, R7
DIVW A, RW3
USB
SSB *1
DIVW A, RW7
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + FH : 下位 16 ビット )
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + 6H : 下位 16 ビット )
(USB *2 : 上位 8 ビット ) + (0180H + RP × 10H + EH : 下位 16 ビット )
*1: CCR レジスタの S ビットによる
*2: CCR レジスタの S ビットが "0" の場合
バンクレジスタ (DTB, ADB, USB, SSB) の値が "00H" の場合は , 除算結果の余りは命令
オペランドのレジスタに格納されます。それ以外は , 上位 8 ビットは命令オペランドの
レジスタに対応したバンクレジスタにより指定され , 下位 16 ビットは命令オペランド
のレジスタのアドレスと同じアドレスとなり, 上位8ビットで指定されたバンクのレジ
スタに余りが格納されます。
50
第 2 章 CPU
【例】
DTB = 053H, RP = 03H の場合で「DIV A, R0」を実行すると , R0 のアドレスでは
"0180H" + "RP" ("03H") × "10H" + "08H" (R0 相当アドレス ) = 0001B8H です。
ここで , 「DIV A, R0」で指定されるバンクレジスタはデータバンクレジスタ (DTB)
ですので , バンクアドレス "053H" を付加したアドレス "05301B8H" に余りが格納さ
れます
<注意事項>
バンクレジスタ, RiおよびRWiレジスタについては,「2.7 レジスタ」
を参照してください。
■ 注意事項の回避について
「DIV A,Ri」, 「DIVW A,RWi」命令の使用上の注意事項を回避してプログラムを開発
していただくために , コンパイラでは表 2.11-1 の命令を生成しないように変更し , アセ
ンブラでは表 2.11-1 の命令を同等の命令列に置き換える機能が用意されています。
MB90945 シリーズでは , コンパイラおよびアセンブラは , 以下のものを使用してくだ
さい。
● コンパイラ
cc907 の V02L06 以降のバージョンまたは fcc907s の V30L02 以降のバージョン
● アセンブラ
asm907a の V03L04 以降のバージョンまたは fasm907s の V30L04 (Rev. 300004) 以降の
バージョン
51
第 2 章 CPU
52
第3章
割込み
割込みの機能と動作について説明します。
3.1 割込みの概要
3.2 割込みベクタ
3.3 割込み制御レジスタ (ICR)
3.4 割込みフロー
3.5 ハードウェア割込み
3.6 ソフトウェア割込み
3.7 拡張インテリジェント I/O サービス (EI2OS)
3.8 拡張インテリジェント I/O サービス (EI2OS) の動作
フローと使用手順
3.9 例外
53
第 3 章 割込み
3.1
割込みの概要
F2MC-16LX は , イベントなどの発生により現在実行中の処理を中断して , 別に定義
したプログラムへ制御を移す割込み機能があります。割込み機能は以下の 4 つに分
けることができます。
• ハードウェア割込み:内蔵リソースのイベント発生による割込み処理
• ソフトウェア割込み:ソフトウェアのイベント発生命令による割込み処理
• 拡張インテリジェント I/O サービス (EI2OS):内蔵リソースのイベント発生による
転送処理
• 例外:動作例外事項の発生による中断処理
■ ハードウェア割込み
ハードウェア割込みは , 内部リソースからの割込み要求によって起動します。ハード
ウェア割込み要求は , 内部リソース内の割込み要求フラグと割込み許可フラグがセッ
トされた場合に発生します。したがって , ハードウェア割込み要求を発生させるために
は , 内部リソース内に , 割込み要求フラグと割込み許可フラグを持っていなければなり
ません。
● 割込みレベルの指定
ハードウェア割込みは , 割込みレベルを指定できます。割込みレベルを指定するには ,
割込みコントローラのレベル設定ビット (IL0, IL1, IL2) を使用します。
● ハードウェア割込み要求マスク
ハードウェア割込み要求は , CPU 内のプロセッサステータスレジスタ (PS) 中の I フラ
グおよび ILM ビットを使用してマスクできます。マスクのかかっていない割込み要求
が発生すると , CPU は , PS, PC, PCB, DTB, ADB, DPR, A の各レジスタからなる 12 バイ
トのデータを SSB と SSP レジスタが示すメモリ領域に退避します。
■ ソフトウェア割込み
ソフトウェア割込みは , INT 命令実行により要求されます。INT 命令により要求される
割込みには , 割込み要求フラグと割込み許可フラグはありません。INT 命令の実行によ
り常に割込み要求が発生します。
■
INT 命令には , 割込みレベルの割当てもありません。このため , INT 命令使用時には
ILM の更新は行われません。代わりに , I フラグをクリアして , 継続する割込み要求を
保留状態にします。
拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービスは , 内蔵リソースとメモリの間でデータを自動的に
転送します。
この種の処理には , 従来 , 割込み処理プログラムが使用されていましたが ,
EI2OS はデータ転送を DMA ( ダイレクトメモリアクセス ) のように実行できます。
拡張インテリジェント I/O サービス機能を内部リソースより発生させるためには , 割込
みコントローラの割込み制御レジスタ (ICR) 中に拡張インテリジェント I/O サービス許
可フラグ (ISE) を持っていなければなりません。
拡張インテリジェント I/O サービスは ISE フラグが "1" で割込み要求が発生した場合に
起動されます。なお, ハードウェア割込み要求によって通常の割込みを発生させるには,
ISE フラグを "0" にセットします。
54
第 3 章 割込み
■ 例外
例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ
とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は
予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時
の復旧ソフトウェアの起動などに使用することを推奨します。
55
第 3 章 割込み
3.2
割込みベクタ
割込みベクタは , ハードウェア割込みとソフトウェア割込みについて同じ領域を使
用します。例えば , 割込み要求番号 INT42 が , 遅延ハードウェア割込みとソフト
ウェア割込み INT#42 に使用されます。したがって , 遅延割込みと INT#42 が同じ割
込み処理ルーチンを呼び出します。割込みベクタは , 表 3.2-1 に示すようにアドレス
FFFC00H と FFFFFFH の間に配置されます。
■ 割込みベクタ
表 3.2-1 割込みベクタ ( 1 / 2 )
割込み
要求
割込み要因
割込み制御
レジスタ
番号
ベクタ
ベクタ
ベクタ
モード
アドレスバ
アドレス L アドレス H
レジスタ
ンク
アドレス
INT 0 *
--
--
--
FFFFFCH
FFFFFDH
FFFFFEH
未使用
INT 1 *
--
--
--
FFFFF8H
FFFFF9H
FFFFFAH
未使用
.
.
.
--
--
--
.
.
.
.
.
.
.
.
.
.
.
.
INT 7 *
--
--
--
FFFFE0H
FFFFE1H
FFFFE2H
未使用
INT 8
リセット
--
--
FFFFDCH
FFFFDDH
FFFFDEH
FFFFDFH
INT 9
INT9 命令
--
--
FFFFD8H
FFFFD9H
FFFFDAH
未使用
INT 10
例外
--
--
FFFFD4H
FFFFD5H
FFFFD6H
未使用
INT 11
タイムベースタイマ
FFFFD0H
FFFFD1H
FFFFD2H
未使用
FFFFCCH
FFFFCDH
FFFFCEH
未使用
FFFFC8H
FFFFC9H
FFFFCAH
未使用
FFFFC4H
FFFFC5H
FFFFC6H
未使用
FFFFC0H
FFFFC1H
FFFFC2H
未使用
FFFFBCH
FFFFBDH
FFFFBEH
未使用
FFFFB8H
FFFFB9H
FFFFBAH
未使用
FFFFB4H
FFFFB5H
FFFFB6H
未使用
FFFFB0H
FFFFB1H
FFFFB2H
未使用
FFFFACH
FFFFADH
FFFFAEH
未使用
FFFFA8H
FFFFA9H
FFFFAAH
未使用
FFFFA4H
FFFFA5H
FFFFA6H
未使用
INT 12
外部割込み INT0 ~
INT7
INT 13
--
INT 14
INT 15
--
CAN 1 TX/NS
INT 17
PPG 0/1
INT 18
PPG 2/3
INT 19
PPG 4/5
INT 20
PPG 6/7
INT 21
PPG 8/9
56
ICR01
CAN 1 RX
INT 16
INT 22
ICR00
PPG A/B
ICR02
ICR03
ICR04
ICR05
0000B0H
0000B1H
0000B2H
0000B3H
0000B4H
0000B5H
第 3 章 割込み
表 3.2-1 割込みベクタ ( 2 / 2 )
割込み
要求
割込み要因
割込み制御
レジスタ
番号
INT 23
16 ビット
リロードタイマ 0
INT 24
INT 25
ICR06
ベクタ
ベクタ
ベクタ
モード
アドレスバ
アドレス L アドレス H
レジスタ
ンク
アドレス
0000B6H
-インプット
キャプチャ 0/1
INT 26
アウトプット
コンペア 0/1
INT 27
インプット
キャプチャ 2/3
INT 28
アウトプット
コンペア 2/3
INT 29
インプット
キャプチャ 4/5
INT 30
I2C
INT 31
A/D コンバータ
INT 32
I/O タイマ 0/1
INT 33
シリアル I/O
INT 34
--
INT 35
UART 0 RX
INT 36
UART 0 TX
INT 37
--
INT 38
--
INT 39
UART 3 RX
INT 40
UART 3 TX
INT 41
フラッシュメモリ
ICR07
ICR08
ICR09
ICR10
ICR11
ICR12
ICR13
ICR14
ICR15
FFFFA0H
FFFFA1H
FFFFA2H
未使用
FFFF9CH
FFFF9DH
FFFF9EH
未使用
FFFF98H
FFFF99H
FFFF9AH
未使用
FFFF94H
FFFF95H
FFFF96H
未使用
FFFF90H
FFFF91H
FFFF92H
未使用
FFFF8CH
FFFF8DH
FFFF8EH
未使用
FFFF88H
FFFF89H
FFFF8AH
未使用
FFFF84H
FFFF85H
FFFF86H
未使用
FFFF80H
FFFF81H
FFFF82H
未使用
FFFF7CH
FFFF7DH
FFFF7EH
未使用
FFFF78H
FFFF79H
FFFF7AH
未使用
FFFF74H
FFFF75H
FFFF76H
未使用
FFFF70H
FFFF71H
FFFF72H
未使用
FFFF6CH
FFFF6DH
FFFF6EH
未使用
FFFF68H
FFFF69H
FFFF6AH
未使用
FFFF64H
FFFF65H
FFFF66H
未使用
FFFF60H
FFFF61H
FFFF62H
未使用
FFFF5CH
FFFF5DH
FFFF5EH
未使用
FFFF58H
FFFF59H
FFFF5AH
未使用
FFFF54H
FFFF55H
FFFF56H
未使用
0000B7H
0000B8H
0000B9H
0000BAH
0000BBH
0000BCH
0000BDH
0000BEH
0000BFH
INT 42
遅延割込み
INT 43
--
--
--
FFFF50H
FFFF51H
FFFF52H
未使用
.
.
.
--
--
--
.
.
.
.
.
.
.
.
.
.
.
.
INT 254
--
--
--
FFFC04H
FFFC05H
FFFC06H
未使用
INT 255
--
--
--
FFFC00H
FFFC01H
FFFC02H
未使用
*: PCB が FFH のとき , CALLV 命令のベクタ領域は INT #vct8 (#0 ~ #7) のベクタ領域と同様になります。
CALLV 命令のベクタ使用時は注意が必要です。
57
第 3 章 割込み
3.3
割込み制御レジスタ (ICR)
割込み制御レジスタは割込みコントローラ内にあり , 割込み機能を持つすべての I/O
に対応して存在します。このレジスタには以下に示す 3 つの機能があります。
• 対応する周辺機器の割込みレベルの設定
• 対応する周辺機器の割込みを通常割込みにするか , 拡張インテリジェント I/O サー
ビスにするかの選択
• 拡張インテリジェント I/O サービスのチャネルの選択
このレジスタに対するリードモディファイライト系の命令でのアクセスは誤動作を
引き起こしますので行わないでください。
■ 割込み制御レジスタ (ICR)
図 3.3-1 に , 割込み制御レジスタのビット構成の図を示します。
図 3.3-1 割込み制御レジスタ (ICR)
割込み制御レジスタ
bit15/7
bit14/6
ICS3
ICS2
W
W
R/W :リード / ライト可能
W :ライトオンリ
bit13/5
bit12/4
ICS1
or
S1
*
ICS0
or
S0
*
bit11/3
bit10/2
bit9/1
bit8/0
ISE
IL2
IL1
IL0
初期値
R/W
R/W
R/W
R/W
00000111B
*:ICS1 と ICS0 は書込みのみ , S1 と S0 は読出しのみ ,
それぞれ有効です。
<注意事項>
ICS3 ~ ICS0 は EI2OS を起動する場合のみ有効となります。EI2OS を起動する場合は ISE
を "1" に設定し , 起動しない場合は "0" に設定してください。EI2OS を起動しない場合 ,
ICS3 ~ ICS0 は何を設定してもかまいません。
拡張インテリジェント I/O サービスチャネルセレクトビット (ICR: ICS3 ~ ICS0) は書込
み時のみ , 拡張インテリジェント I/O サービスステータスビット (ICR: S1, S0) は読出し時
のみ , それぞれ有効となります。
読出し時には , bit6, bit7/bit14, bit15(ICS2, ICS3) からは , "1" が読み出されます。
【bit10 ~ bit8, bit2 ~ bit0】IL0, IL1, IL2 ( 割込みレベル設定ビット )
割込みレベル設定ビットです。対応する内蔵リソースの割込みレベルを指定します。読
み書きができます。リセットによりレベル 7 ( 割込みなし ) に初期化されます。
表 3.3-1 に , 割込みレベル設定ビットと割込みレベルとの関係を示します。
58
第 3 章 割込み
表 3.3-1 割込みレベル設定ビットと割込みレベル
IL2
IL1
IL0
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 ( 割込みなし )
割込みレベル値
【bit11, bit3】ISE ( 拡張インテリジェント I/O サービス許可ビット )
EI2OS 許可ビットです。読み書き可能なビットです。割込み要求の発生時にこのビッ
トが "1" であると EI2OS が起動され , "0" のときは割込みシーケンスが起動されます。
また , EI2OS が終了 ( カウント終了による場合と内蔵リソースからの要求による場合 )
したとき , ISE ビットは "0" になります。対応する内蔵リソースに EI2OS の機能がない
ときには , ソフトウェアで ISE を "0" にしておく必要があります。
リセットにより "0" に初期化されます。
【bit15 ~ bit12,bit 7 ~ bit4】ICS3 ~ ICS0 ( 拡張インテリジェント I/O サービスチャネル
セレクトビット )
EI2OS チャネル選択ビットです。書込み専用のビットで , このビットにより EI2OS の
チャネルを指定します。ここで設定された値によりメモリ上の拡張インテリジェント
I/O サービスディスクリプタのアドレスが決定します。ICS はリセットにより初期化さ
れます。
表 3.3-2に, ICSビット, チャネル番号, ディスクリプタアドレスの対応関係を示します。
59
第 3 章 割込み
表 3.3-2 ICS ビット , チャネル番号 , ディスクリプタアドレス
ICS3
ICS2
ICS1
ICS0
0
0
0
0
0
000100H
0
0
0
1
1
000108H
0
0
1
0
2
000110H
0
0
1
1
3
000118H
0
1
0
0
4
000120H
0
1
0
1
5
000128H
0
1
1
0
6
000130H
0
1
1
1
7
000138H
1
0
0
0
8
000140H
1
0
0
1
9
000148H
1
0
1
0
10
000150H
1
0
1
1
11
000158H
1
1
0
0
12
000160H
1
1
0
1
13
000168H
1
1
1
0
14
000170H
1
1
1
1
15
000178H
セレクトされるチャネル ディスクリプタアドレス
【bit13,bit12, bit5,bit4】S0, S1 ( 拡張インテリジェント I/O サービスステータス )
EI2OS 終了ステータスビットです。読出し専用のビットで , EI2OS 終了時にこのビット
の値を調べることにより , 終了条件が何であったかを判別できます。
リセットにより "00B" に初期化されます。
表 3.3-3 に , S ビットと終了条件との関係を示します。
表 3.3-3 S ビットと終了条件
60
S1
S0
0
0
EI2OS 動作中または非起動時
0
1
カウント終了による停止状態
1
0
リザーブ
1
1
内蔵リソースからの要求による停止状態
終了条件
第 3 章 割込み
3.4
割込みフロー
図 3.4-1 に , 割込みフローを示します。
■ 割込みフロー
図 3.4-1 割込みフロー
I
ILM
IF
IE
ISE
IL
S
I & IF & IE = 1
AND
ILM > IL
: CCR 中のフラグ
: CPU のレベルレジスタ
: 内蔵リソースの割込み要求
: 内蔵リソースの割込みイネーブルフラグ
: EI2OS のイネーブルフラグ
: 内蔵リソースの割込み要求レベル
: CCR 中のフラグ
YES
NO
NO
YES
ISE = 1
次の命令の取込み
デコード
INT 命令
PS, PC, PCB, DTB, ADB, DPR, A
を SSP のスタックへ退避
そののち , ILM = IL
拡張インテリジェント
I/O サービス
YES
NO
通常命令実行
NO
ストリング系
命令の繰返し
完了
YES
PS, PC, PCB, DTB, ADB, DPR, A
を SSP のスタックへ退避
そののち , I = 0, ILM = IL
S←1
割込みベクタ取込み
PC の更新
61
第 3 章 割込み
図 3.4-2 割込み処理中のレジスタ退避
ワード (16 ビット )
MSB
LSB
"H"
SSP( 割込み発生前の SSP の値 )
AH
AL
DPR
ADB
DTB
PCB
PC
PS
"L"
62
SSP( 割込み発生後の SSP の値 )
第 3 章 割込み
3.5
ハードウェア割込み
ハードウェア割込みは , 内蔵リソースからの割込み要求信号に対応して , CPU がそ
れまで実行していたプログラムの実行を一時中断し , ユーザの定義した割込み処理
用プログラムへ制御を移行する機能です。
■ ハードウェア割込み
ハードウェア割込みの起動は , 割込み要求がもつ割込みレベルと , CPU の PS がもつイ
ンタラプトレベルマスクレジスタ (ILM) の比較および PS 内の I フラグの内容をハード
ウェアで参照したのち , 発生条件に合致すれば発生します。
ハードウェア割込みが発生するときに CPU が行う処理には , 以下のものがあります。
• CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの
退避
• PS レジスタ内の ILM の設定。自動的に現在要求している割込みレベルと同じになる
• 対応する割込みベクタの内容の取込みとそこへの分岐
■ ハードウェア割込みの構造
ハードウェア割込みに関連する機構は , 以下の 3 つの部分に分かれて存在します。
● 内蔵リソース
割込み許可ビット , 割込み要求ビット : リソースからの割込み要求の制御
● 割込みコントローラ
ICR: 割込みのレベル付け , 同時要求割込みの優先度判定
● CPU
I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別
マイクロコード : 割込み処理用ステップ
各機構は , 内蔵リソースではリソースの制御レジスタに , 割込みコントローラでは ICR
に , CPU では CCR の内容などとして現れます。ハードウェア割込みを使用する場合に
は , あらかじめソフトウェアでこの 3 箇所の設定を行う必要があります。
割込み処理の際に参照する割込みベクタのテーブルはメモリ領域の FFFC00H ~
FFFFFFH に割り当ててあり , ソフトウェア割込みと共通で使用しています。
63
第 3 章 割込み
3.5.1
ハードウェア割込みの動作
ハードウェア割込み要求の機能を持つ内蔵リソースは , 割込みの要求の有無を示す
「割込み要求フラグ」と , CPU への自分の割込み要求のするしないを選択する「割込
み許可フラグ」を持っています。割込み要求フラグは内蔵リソース固有のイベント
の発生によりセットされ , 割込み許可フラグが「許可」であったときに , リソースは
割込みコントローラへ割込み要求を発生します。
■ ハードウェア割込みの動作
割込みコントローラは , 同時に受け取った各割込み要求に対する ICR 内の割込みレベ
ル (IL) 同士を比較し , 最も高いレベルの要求 (IL の値の最も小さいもの ) を採択して
CPU へ通知します。同一レベルの要求が複数あった場合には , 割込み番号が少ないも
のを優先します。各割込み要求と各 ICR の関係はハードウェアで決まっています。
CPU は受け取った割込みレベル (IL) と PS レジスタ内の ILM とを比較し , 割込みレベ
ル (IL)<(ILM) であり , PS レジスタ内の I ビットが "1" であるときに , 現在実行中の命令
が終了した後で , 割込み処理用マイクロコードを起動します。割込み処理マイクロコー
ドの先頭で割込みコントローラの ICR 中の ISE ビットを参照し , "0" ( すなわち割込み )
であることを確認して割込み処理の本体を起動します。
割込み処理の本体では SSB と SSP の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A
の 12 バイトを退避した後 , 割込みベクタを 3 バイトリードし PC と PCB へロード , PS
中の ILM を , 受け付けた割込み要求のレベル値に更新 , S フラグを設定して分岐処理を
行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プログラムにな
ります。
64
第 3 章 割込み
3.5.2
ハードウェア割込みの発生と解除
図 3.5-1 に , ハードウェア割込みの発生から割込み処理プログラムに割込み要求がな
くなるまでのフローを示します。
■ ハードウェア割込みの発生と解除
図 3.5-1 ハードウェア割込みの発生と解除まで
F2MC-16LX バス
レジスタファイル
マイクロコード
PS
IR
I
チェック
ILM
比較器
PS
I
ILM
IR
: プロセッサステータス
: 割込み許可フラグ
: 割込みレベルマスクレジスタ
: インストラクションレジスタ
F2M C - 1 6 LX . C P U
周辺
許可 FF
要因 FF
AND
レ
ベ
ル
比
較
器
割
込
み
レ
ベ
割込み
ル
IL コントローラ
①周辺機器の内部で割込み要因が発生します。
②周辺機器内の割込み許可ビットを参照し割込み許可になっていれば , 周辺機器から
割込みコントローラへ割込み要求を発生します。
③割込み要求を受け取った割込みコントローラは , 同時に要求のあった割込みの優先
順位を判定した上で該当する割込みに対応する割込みレベルを CPU へ転送します。
④ CPU は割込みコントローラから要求のあった割込みレベルをプロセッサステータス
レジスタ内の ILM ビットと比較します。
⑤比較の結果が現在の割込み処理レベルより優先順位が高い場合のみ , 同じプロセッ
サステータスレジスタ内の I フラグの内容をチェックします。
⑥⑤のチェックの結果 I フラグが割込み許可状態である場合のみ , ILM ビットの内容を
要求されたレベルに設定し , 現在実行中の命令の実行が終了次第割込み処理を行い ,
制御を割込み処理ルーチンへ移します。
⑦ユーザの割込み処理ルーチン内のソフトウェアで①で発生した割込み要因をクリア
することで割込み要求が終了します。
⑥および⑦で , CPU が行う割込み処理の実行時間の計算式を以下に示します。
割込み起動 : 24 + 6 × ( 表 3.3-2 のマシンサイクル )
割込み復帰 : 15 + 6 × ( 表 3.3-3 のマシンサイクル ) RETI 命令
表 3.5-1 割込み処理時のサイクル数の補正値
スタックポインタが示しているアドレス
サイクル数の補正値
内部領域偶数アドレスの場合
0
内部領域奇数アドレスの場合
+2
65
第 3 章 割込み
3.5.3
多重割込み
特殊な場合として , データの入出力領域への書込み中はハードウェア割込み要求を
受け付けません。MB90945 シリーズでは , アドレス 00H ~ BFH, (3100H ~ 31FFH,
3300H ~ 33FFH), 3500H ~ 35FFH, (3700H ~ 37FFH), 3900H ~ 39FFH, (3B00H ~
3BFFH, 3D00H ~ 3DFFH および 3F00H ~ 3FFFH) を内蔵しています。これは各リ
ソースの割込み制御レジスタ関係の書換えを行っている最中の割込み要求に対して ,
CPU が割込み関係で誤動作を起こすことを避けるためです。
また , 割込み処理の実行中に割込みが発生した場合は , 割込みレベルの強い方の処理
が優先されます。
■ 多重割込み
F2MC-16LX CPU は多重割込みをサポートしています。そのため , 割込み処理の実行中
にその割込みのもつ割込みレベルより強いレベルの割込みが発生すると , 現在実行中
の命令を終了した後で強いレベルの割込み処理に移ります。強いレベルの割込み処理
が終了すると , 元の割込み処理に戻ります。割込み処理実行中に , その割込みと同等か ,
より弱いレベルの割込み処理が発生した場合は , ILM の内容や I フラグの命令による変
更を施さないかぎり現在の割込み処理の終了まで , 新しい割込み要求は保留されます。
なお , 拡張インテリジェント I/O サービスは多重に起動されることはなく , 1 つの拡張
インテリジェント I/O サービスの処理中は , ほかの割込み要求および拡張インテリジェ
ント I/O サービス要求はすべて保留されます。
図 3.5-2 に , スタック内に退避されるレジスタの順番を示します。
図 3.5-2 スタック内に退避されたレジスタ
ワード (16 ビット )
MSB
LSB
"H"
SSP( 割込み発生前の SSP の値 )
AH
AL
DPR
ADB
DTB
PCB
PC
PS
"L"
66
SSP( 割込み発生後の SSP の値 )
第 3 章 割込み
3.6
ソフトウェア割込み
ソフトウェア割込みは , 専用の命令の実行に対応して , CPU がそれまで実行してい
たプログラムの実行から , ユーザの定義した割込み処理用プログラムへ制御を移行
する機能です。ソフトウェア割込みの起動は , ソフトウェア割込み命令の実行で常
に発生します。
■ ソフトウェア割込み
ソフトウェア割込みが発生するときに CPU が行う処理は以下のものがあります。
• CPU 内部の PC, PS, AH, AL, PCB, DTB, ADB, DPR レジスタのシステムスタックへの
退避
• PS レジスタに "I" を設定。自動的に割込み禁止になる
• 対応する割込みベクタの内容の取込みとその内容の処理への分岐
ソフトウェア割込みである INT 命令の実行による割込み要求には割込み要求フラグお
よび許可フラグはなく , INT 命令の実行により常に割込み要求が発生します。
INT 命令には割込みレベルはありません。したがって , INT 命令では ILM の更新は行
われず , I フラグに "0" を設定して継続する割込み要求を保留状態にします。
■ ソフトウェア割込みの構造
ソフトウェア割込みに関連する機構は , すべて CPU の内部に存在します。
CPU:マイクロコード : 割込み処理用ステップ
■ MB90945 割込みベクタ一覧表
付表 D-1 に示すように , ソフトウェア割込みはハードウェア割込みと同じ割込みベク
タ領域を共有しています。例えば , 割込み要求番号の INT12 は , ソフトウェア割込みの
INT#12 で使用されると同時にハードウェア割込みの外部割込み #0 ~ #7 でも使用され
ます。
したがって , 外部割込み #0 と INT#12 は同じ割込み処理ルーチンを呼び出します。
■ ソフトウェア割込みの動作
CPU がソフトウェア割込み命令を取り込んで実行すると , ソフトウェア割込み処理用
マイクロコードを起動します。ソフトウェア割込み処理マイクロコードでは SSB と SSP
の示すメモリ中へ PS と PC, PCB, DTB, ADB, DPR, A の 12 バイトを退避した後 , 割込み
ベクタを 3 バイトリードし PC と PCB へロード , I フラグを "0" に , S フラグを "1" にし
て分岐処理を行います。その結果 , 次に実行する命令はユーザの定義した割込み処理プ
ログラムになります。
図 3.6-1 に , ソフトウェア割込みの発生から割込み処理プログラムに割込み要求がなく
なるまでのフローを示します。
67
第 3 章 割込み
図 3.6-1 ソフトウェア割込みの発生と解除まで
➀
F2MC-16LX バス
レジスタ
ファイル
➁ マイクロ
コード
2 M C - 1 6 LX . C P U
F
PS
I
S
B ユニット
IR
キュー
フェッチ
PS
: プロセッサステータス
I
: 割込み許可フラグ
ILM
: 割込みレベルマスクレジスタ
IR
: インストラクションレジスタ
B ユニット : バスインタフェースユニット
退避
命令形バス
RAM
①ソフトウェア割込み命令を実行します。
②ソフトウェア割込み命令に対応したマイクロコードに従ってレジスタファイル中の
CPU 内専用レジスタの退避を行います。
③ユーザの割込み処理ルーチン内の RETI 命令で割込み処理が終了します。
■ その他
プログラムバンクレジスタ (PCB) が FFH であるとき , CALLV 命令のベクタ領域は
INT#vct8 命令のテーブルと重なります。ソフトウェアを作成する際に同一アドレスを
使用するような CALLV 命令と INT#vct8 命令を使用しないように注意してください。
付表 D-2 に , MB90945 シリーズの割込み要因 , 割込みベクタ , 割込み制御レジスタの関
係を示します。
68
第 3 章 割込み
3.7
拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービス (EI2OS) とはハードウェア割込み動作の一種で ,
I/O とメモリとの間での自動データ転送機能を持っています。従来 , 割込み処理プロ
グラムで行っていた I/O とのデータのやりとりを DMA のように行えます。
■ 拡張インテリジェント I/O サービス (EI2OS)
従来の割込み処理で行っていた方式と比べると以下に示すような利点があります。
• 転送のためのプログラムを記述する必要がないため , プログラムサイズを小さくで
きる
• 転送の際に内部レジスタを使用しないので , レジスタの退避が不要になり転送速度
が速い
• I/O が都合により転送を停止でき , 不要データの転送がない
• バッファアドレスのインクリメント , 更新なしの選択ができる
• I/O レジスタアドレスのインクリメント , 更新なしの選択ができる ( バッファアドレ
ス更新ありの場合 )
また , EI2OS が終了したときには , 終了条件を設定した後に自動的に割込み処理ルーチ
ンへ分岐しますので , ユーザは終了条件の種類を判別できます。
EI2OS を実現するために , 2 箇所の部分にハードウェアが分散して存在し , それぞれの
ブロックの中に以下に示すようなレジスタやディスクリプタがあります。
● 割込み制御レジスタ
割込みコントローラ内にあり , ISD のアドレスを示します。
● 拡張インテリジェント I/O サービスディスクリプタ (ISD)
RAM 上にあり , 転送モード , I/O のアドレスや転送数 , バッファアドレスを保持します。
図 3.7-1 に , EI2OS の概要を示します。
69
第 3 章 割込み
図 3.7-1 拡張インテリジェント I/O サービスの概要
メモリ空間
IOA
I/O レジスタ
周辺
I/O レジスタ
•••••••••••••••
CPU
割込み要求
➂
ISD
➂
ICS
➁
➀
割込み制御レジスタ
割込みコントローラ
BAP
➃
バッファ
DCT
① I/O が転送を要求します。
② 割込みコントローラが
ディスクリプタを選択します。
③ 転送元 / 転送先をディスクリプタから
読み出します。
④ I/O とメモリ間で転送が行われます。
<注意事項>
• IOA で指定できる領域は , 000000H ~ 00FFFFH です。
• BAP で指定できる領域は , 000000H ~ FFFFFFH です。
• DCT で指定できる最大転送数は , 65536 個です。
■ 拡張インテリジェント I/O サービス (EI2OS) の構造
EI2OS に関連する機構は , 以下の 4 つの部分に分かれて存在します。
• 内蔵リソース ...... 割込み許可ビット , 割込み要求ビット : リソースからの割込み要
求の制御
• 割込みコントローラ ......ICR: 割込みのレベル付け , 同時要求割込みの優先度判定 ,
EI2OS 動作の選択
• CPU......I, ILM: 要求割込みレベルと現レベルの比較 , 割込み許可状態の識別
マイクロコード :EI2OS 処理用ステップ
• RAM...... ディスクリプタ :EI2OS の転送情報を記述する
70
第 3 章 割込み
3.7.1
拡張インテリジェント I/O サービスディスクリプタ
(ISD)
拡張インテリジェント I/O サービスディスクリプタは , 内部 RAM 中の 000100H ~
00017FH に存在し , 以下に示すものから構成されます。
• データ転送の各種制御データ
• ステータスデータ
• バッファアドレスポインタ
■ 拡張インテリジェント I/O サービスディスクリプタ (ISD)
図 3.7-2 に , 拡張インテリジェント I/O サービスディスクリプタの構成を示します。
図 3.7-2 拡張インテリジェント I/O サービスディスクリプタの構成
"H"
データカウンタ上位 8 ビット (DCTH)
データカウンタ下位 8 ビット (DCTL)
I/O アドレスポインタ上位 8 ビット (IOAH)
I/O アドレスポインタ下位 8 ビット (IOAL)
EI2OS ステータス (ISCS)
バッファアドレスポインタ上位 8 ビット (BAPH)
000100 H + 8 × ICS
バッファアドレスポインタ中位 8 ビット (BAPM)
ISD 先頭アドレス
バッファアドレスポインタ下位 8 ビット (BAPL)
"L"
■ データカウンタ (DCT)
データカウンタ (DCT) は , 16 ビット長のレジスタで , 転送データ数に対応したカウン
タとなります。データ転送前 , カウンタは 1 個デクリメントされます。このカウンタが
ゼロになると EI2OS は終了します。
図 3.7-3 に , データカウンタの構成を示します。
図 3.7-3 データカウンタの構成
DCTH
bit
15
14
13
12
11
DCTL
10
9
8
7
6
5
4
3
2
1
0
初期値
DCT B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00 XXXXXXX XXXXXXXXB
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
R/W : リード / ライト可能
X : 不定
71
第 3 章 割込み
■ I/O レジスタアドレスポインタ (IOA)
I/O レジスタアドレスポインタ (IOA) は , 16 ビット長のレジスタで , I/O レジスタアド
レスポインタの 16 ビットによりバッファとデータ転送する I/O レジスタの下位アドレ
ス (A15 ~ A0) を示します。上位アドレス (A23 ~ A16) はすべて "0" であり , 000000H
から00FFFFH 番地までの任意のI/Oを指定できます。図 3.7-4に, IOAの構成を示します。
図 3.7-4 I/O レジスタアドレスポインタの構成
IOAH
bit
15
14
13
12
11
IOAL
10
9
8
7
6
5
4
3
2
1
0
初期値
XXXXXXX
XXXXXXXXB
IOA A15 A14 A13 A12 A11 A10 A09 A08 A07 A06 A05 A04 A03 A02 A01 A00
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
R/W : リード / ライト可能
X : 不定
■ バッファアドレスポインタ (BAP)
バッファアドレスポインタ (BAP) は 24 ビットのレジスタで , I/O 領域とデータ転送を
行う 16M バイトのアドレスを設定します。BAP 更新 / 固定選択ビット (ISCS:BF) を
" 更新あり "(ISCS:BF=0) に設定した場合は , バッファアドレスポインタ (BAP) は下位
16 ビット (BAPM,BAPL) だけ変化し , 上位 8 ビット (BAPH) は変化しません。
バッファアドレスポインタ (BAP) のビット構成を図 3.7-5 に示します。
図 3.7-5 バッファアドレスポインタ (BAP) の構成
bit 23
bit16 bit15
BAP
BAPH
R/W
R/W : リード / ライト可能
X
: 不定
bit8 bit7
bit0
BAPM
BAPL
R/W
R/W
初期値
XXXXXXXXB
<参考>
72
•
I/O アドレスポインタ (IOA) で設定できる領域は , "000000H" ~ "00FFFFH" です。
•
バッファアドレスポインタ (BAP) で設定できる領域は , "000000H" ~ "FFFFFFH" です。
•
データカウンタ (DCT) で設定できる最大転送回数は , 65536 回です。
第 3 章 割込み
EI2OS ステータスレジスタ (ISCS)
3.7.2
EI2OS ステータスレジスタ (ISCS) は , 8 ビット長のレジスタで , バッファアドレス
ポインタ , I/O レジスタアドレスポインタの更新 / 固定 , 転送データ長 ( バイト / ワー
ド ), 転送方向を示します。
■ EI2OS ステータスレジスタ (ISCS)
図 3.7-6 に , ISCS の構成を示します。
図 3.7-6 ISCS の構成
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約
予約
予約
IF
BW
BF
DIR
SE
ISCS
( リセット時不定 )
ISCS の bit7 ~ bit5 には必ず "0" を書き込んでください。
以下に各ビットの説明を示します。
【bit4】IF
I/O レジスタアドレスポインタの更新 / 固定を指定します。
0:データ転送後 I/O レジスタアドレスポインタは更新 ( インクリメント ) される。
1:データ転送後 I/O レジスタアドレスポインタは固定される。
<注意事項>
更新する場合 , I/O レジスタアドレスポインタは , インクリメントのみ許可されます。
【bit3】BW
転送データ長を指定します。
0:バイト
1:ワード
【bit2】BF
バッファアドレスポインタの更新 / 固定を指定します。
0:データ転送後バッファアドレスポインタは更新 ( インクリメント ) される。
1:データ転送後バッファアドレスポインタは固定される。
<注意事項>
更新する場合 , バッファアドレスポインタは下位 16 ビットのみ変化します。インクリメ
ントのみ許可されます。
73
第 3 章 割込み
【bit1】DIR
データの転送方向を指定します。
0:I/O レジスタアドレスポインタ→バッファアドレスポインタ
1:バッファアドレスポインタ→ I/O レジスタアドレスポインタ
【bit0】SE
内蔵リソースからの要求での拡張インテリジェント I/O サービスの終了を制御します。
0:内蔵リソースからの要求により終了しない。
1:内蔵リソースからの要求により終了する。
74
第 3 章 割込み
3.8
拡張インテリジェント I/O サービス (EI2OS) の動作フ
ローと使用手順
図 3.8-1 に , 拡張インテリジェント I/O サービス (EI2OS) の動作フローの図を , 図
3.8-2 に , 使用手順の図を示します。
■ 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
図 3.8-1 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
内部リソースより
割込み要求発生
BAP
I/OA
: バッファアドレスポインタ
: I/O アドレスポインタ
ISD
: EI2OS ディスクリプタ
ISCS
DCT
: EI2OS ステータス
: データカウンタ
ISE
: EI2OS イネーブルビット
S1, S0 : EI2OS 終了ステータス
NO
ISE = 1
割込みシーケンス
YES
ISD/ISCS リード
YES
リソースからの終了要求
SE = 1
NO
YES
DIR = 1
NO
IOA で示されるデータ
⇓ ( データ転送 )
BAP で示されるメモリ
BAP で示されるデータ
⇓ ( データ転送 )
IOA で示されるメモリ
YES
IF = 0
NO
更新値は ,
BW による
IOA 更新
更新値は ,
BW による
BAP 更新
YES
BF = 0
NO
DCT デクリメント
DCT = 00
YES
NO
S1, S0 に "00" を
セット
S1, S0 に "01" を
セット
S1, S0 に "11" を
セット
リソース割込み要求
のクリア
ISE を "0" にクリア
CPU 動作復帰
割込みシーケンス
75
第 3 章 割込み
図 3.8-2 拡張インテリジェント I/O サービス (EI2OS) の使用手順フロー
CPU による処理
EI2OS による処理
EI2OS の初期化
正常終了
ジョブ実行
( 割込み要求 )
AND (ISE = 1)
データ転送
拡張インテリジェント
I/O サービスの再設定 ( チャネル切換え )
バッファ中のデータ処理
各フローでの拡張 EI2OS の実行時間を以下に示します。
● データ転送継続時 ( 停止条件が成立しない場合 )
( 表 3.8-1 + 表 3.8-2 ) マシンサイクル
● リソースからの停止要求時
(36+6 ×表 3.8-3) マシンサイクル
● カウント終了時
( 表 3.8-1+ 表 3.8-2 + 21+6 ×表 3.8-3) マシンサイクル
表 3.8-1 拡張 EI2OS の継続時の実行時間
ISCS・SE ビット
76
"1" に設定
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
I/O アドレスポインタ
バッファアドレス
ポインタ
"0" に設定
第 3 章 割込み
表 3.8-2 拡張 EI2OS の実行時間のデータ転送の補正値
内部アクセス
I/O アドレスポインタ
バッファアドレス
ポインタ
内部
アクセス
B/ 偶
奇
B/ 偶
0
+2
O
+2
+4
B: バイトデータ転送
偶 : 偶数アドレス・ワード転送
奇 : 奇数アドレス・ワード転送
表 3.8-3 割込みハンドリング時間の補正値
スタックポインタが指しているアドレス
補正値 (cycle)
外部 8 ビットの場合
+4
外部 偶数アドレスの場合
+1
外部 奇数アドレスの場合
+4
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
77
第 3 章 割込み
3.9
例外
F2MC-16LX では , 以下の要因により例外が発生し , 例外処理が行われます。
■ 未定義命令の実行
例外処理は , 基本的には割込みと同じものであり , 命令の境目で例外事項が発生したこ
とを検出した段階で , 通常処理から離れて例外処理を行います。一般的に , 例外処理は
予想外の動作を行った結果で発生するものですので , デバッグ時だけの使用や緊急時
の復旧ソフトウェアの起動などに使用することを推奨します。
■ 未定義命令の実行による例外発生
F2MC-16LX では , 命令マップで定義していないコードはすべて未定義命令として扱い
ます。未定義命令を実行すると , ソフトウェア割込み命令の「INT10」と等価な処理を
行います。すなわち , AL, AH, DPR, DTB, ADB, PCB, PC, PS の内容をシステムスタック
に退避した後に , I フラグを "0" に設定し , S フラグを "1" に設定し , 割込み番号 10 の
ベクタで示されるルーチンへ分岐します。スタックへ退避した PC の値は未定義命令を
格納しているアドレスそのものです。このため , RETI 命令で復帰させることは可能で
すが , 再び例外を発生するため , 意味がありません。
78
第4章
遅延割込み
遅延割込みの機能と動作について説明しています。
4.1 遅延割込みモジュールの概要
4.2 遅延割込みのレジスタ
4.3 遅延割込みの動作
79
第 4 章 遅延割込み
4.1
遅延割込みモジュールの概要
遅延割込み発生モジュールは , タスク切換え用の割込みを発生するためのモジュー
ルです。本モジュールを使用することで , ソフトウェアでの F2MC-16LX CPU に対
する割込み要求を発生 / 取消しができます。
■ 遅延割込みのブロックダイヤグラム
図 4.1-1 に , 遅延割込み発生モジュールのブロックダイヤグラムを示します。
図 4.1-1 遅延割込みのブロックダイヤグラム
F2MC-16 バス
遅延割込み要因発生 / 解除デコーダ
要因ラッチ
■ 遅延割込み要求ロックの使用上の注意
このロックは DIRR の該当するビットに "1" を書き込むことでセットされ , 同じビット
に "0" を書き込むことでクリアされます。したがって , 割込み処理ルーチン内で要因を
クリアするようにソフトウェアを作成しておかないと割込み処理から復帰した途端に
再割込み処理を起動することになりますので注意してください。
80
第 4 章 遅延割込み
4.2
遅延割込みのレジスタ
DIRR は遅延割込み要求の発生 / 解除を制御するレジスタで , このレジスタに対して
"1" を書込み時には遅延割込みの要求を発生させ , "0" を書込み時には遅延割込みの
要求を解除します。リセット時には要求解除状態になります。
■ 遅延割込み要因発生 / 解除レジスタ (DIRR: 遅延割込み要求レジスタ )
図 4.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR)
アドレス
00009FH
bit15
-
-
bit14
-
-
bit13
-
-
bit12
-
-
bit11
-
-
bit10
-
-
bit9
bit8
-
-
R0
R/W
初期値
XXXXXXX0B
R/W :リード / ライト可能
X
:未定義
- :未定義ビット
表 4.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR) の各ビットの機能説明
ビット名
bit15
~
bit9
bit8
機能
-:
未定義ビット
• 読出し:値は不定です。
• 書込み:影響しません。
R0:
遅延割込み
要求発生
ビット
•
•
•
•
遅延割込み要求を発生または解除します。
このビットに "1" を設定した場合:遅延割込み要求を発生します。
このビットに "0" を設定した場合:遅延割込み要求を解除します。
リセットが指定されると , 割込み発生が解除され , "0" になりま
す。
81
第 4 章 遅延割込み
4.3
遅延割込みの動作
ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生
モジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求
を発生します。
■ 遅延割込み発生
ソフトウェアにて CPU が DIRR の該当ビットに "1" を書き込むと , 遅延割込み発生モ
ジュールの中にある要求ラッチがセットされ , 割込みコントローラに割込み要求を発
生します。ほかの割込み要求が本割込みより優先順位が低いまたはほかの割込み要求
がない場合に , 割込みコントローラは F2MC-16LX CPU に対して割込み要求を発生しま
す。図 4.3-1 に示すように , F2MC-16LX CPU は自分の内部にある PS レジスタ中の ILM
ビットと割込み要求を比較し , 要求レベルが ILM ビットより高かったときに現在実行
中の命令が終了し次第 , ハードウェア割込み処理マイクロプログラムを起動します。こ
の結果 , 本割込みに対する割込み処理ルーチンが実行されます。
図 4.3-1 遅延割込み発生
割込みコントローラ
遅延割込み発生モジュール
F2MC-16LX CPU
WRITE
ほかの要求
ICR yy
IL
CMP
CMP
DIRR
82
ICR xx
ILM
第5章
クロック
クロックについて説明します。
5.1 クロックの概要
5.2 クロック発生部のブロックダイヤグラム
5.3 クロック選択レジスタ
5.4 クロックモード
5.5 発振安定待ち時間
5.6 振動子と外部クロックの接続
83
第 5 章 クロック
5.1
クロックの概要
クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制
御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン
サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の
PLL 発振によるクロックを PLL クロックといいます。
■ クロックの概要
クロック発生部は発振クロックを生成する発振回路を内蔵しており , 外部に振動子を接
続することによって , 発振クロックを発生します。外部で生成したクロックを入力して ,
発振クロックにすることもできます。また , PLL クロック逓倍回路を内蔵しており , 発
振クロックの逓倍クロックを 6 種類発生できます。クロック発生部では , 発振安定待ち
時間の制御 , PLL クロック逓倍制御およびクロックセレクタでのクロックの切換えによ
る , 内部クロックの動作制御を行います。
● 発振クロック (HCLK)
発振回路に振動子を接続して発生させるか , あるいは外部から入力したクロックのこ
とです。
● メインクロック (MCLK)
発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入
力クロックとなります。
● PLL クロック (PCLK)
発振クロックを , 内蔵の PLL クロック逓倍回路により逓倍したクロックです (PLL 発振
回路 )。6 種類の PLL クロックを選択できるようになっています。
● クロックモジュレータ (CLOMO)
クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで,
周囲への電磁ノイズの影響 (EMI) を減らします。本モジュールには位相変調モードが
あります。詳細は「第 6 章 クロックモジュレータ」を参照してください。
● マシンクロック (φ)
CPU と周辺機能の動作クロックです。このクロックの 1 周期を , マシンサイクル (1/φ)
としています。メインクロック ( 発振クロックの 2 分周クロック ) と , 6 種類の逓倍ク
ロックの中から 1 種類を選択できるようになっています。
<注意事項>
動作電圧が 5 V の場合 , 発振クロック周波数は 3 MHz ~ 8 MHz の範囲で使用できます。
CPU および周辺機能の最大動作周波数は 24 MHz です。最大動作周波数を超える逓倍率
やクロックモジュレータのピーク周波数を設定した場合 , デバイスは正常に動作しませ
ん。
84
第 5 章 クロック
■ クロック供給マップ
CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを
供給しています。このため , CPU と周辺機能の動作は , メインクロックと PLL クロッ
クの切換え ( クロックモード ) や PLL クロック逓倍率切換えの影響を受けます。一部
の周辺機能へは , タイムベースタイマの分周出力が供給されており , 各周辺で , その動
作クロックを選択できるようになっています。図 5.1-1 に , クロック供給マップを示し
ます。
図 5.1-1 クロック供給マップ
周辺機能
4
ウォッチドッグタイマ
8/16 ビット PPG
PPG10 ~ PPG15
端子
RX/TX
端子
CAN1
TIN0/TIN1
端子
16 ビットリロード
TOT0/TOT1
タイマ
端子
クロック発生ブロック
MCS
ビット
PPG00 ~ PPG05
端子
8/16 ビット PPG
タイムベースタイマ
1 2 3 4 6 8
PLL 逓倍回路
PCLK
SIN0/SIN2/SIN3/SIN4
クロックセレクタ
端子
UART0/UART2/UART3
+
シリアル I/O
クロックモジュレータ
X0
端子
X1
端子
...
SOT0/SOT2/SOT3/SOT4
端子
...
SCK0/SCK2/SCK3/SCK4
システム
クロック
発生回路
HCLK
端子
クロックセレクタ
2 分周
MCLK
10 ビット
A/D コンバータ
(15 チャネル )
...
AN0 ~ AN14
端子 ...
SDA
端子
I2C
SCL
端子
16 ビットフリー
ランタイマ 0/1
CPU
16 ビット入力キャプ
チャ (6 チャネル )
HCLK :発振クロック
MCLK :メインクロック
PCLK :PLL クロック
φ
:マシンクロック
φc
:CAN1 クロック
出力コンペア
(4 チャネル )
FRCK0/FRCK1
端子
IN0 ~ IN15
端子 ...
OUT0 ~ OUT3
端子 ...
3
発振安定待機制御
85
第 5 章 クロック
5.2
クロック発生部のブロックダイヤグラム
クロック発生部は , 次の 5 つのブロックで構成されています。
• システムクロック発生回路
• PLL 逓倍回路
• クロックセレクタ
• クロック選択レジスタ (CKSCR)
• 発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
図 5.2-1 に , クロック発生部のブロックダイヤグラムを示します。
図 5.2-1 クロック発生部のブロックダイヤグラム
低消費電力モード制御レジスタ (LPMCR)
STP SLP SPL RST TMD CG1 CG0
RST
-
端子
間欠サイク
ルセレクタ
CPU 間欠動作
セレクタ
端子ハイ
インピーダンス
制御回路
端子ハイ
インピーダ
ンス制御
内部リセット
発生回路
内部
リセット
CPU クロック
制御回路
CPU
クロック
ストップ・
スリープ信号
スタンバイ
制御回路
ストップ信号
割込み
クリア
周辺クロック
制御回路
発振安定待ち時間クリア
マシンクロック
CS2
PLL および
特殊構成制御
レジスタ
(PSCCR): bit8
X0
クロック
セレクタ
発振安定
待ち時間
セレクタ
2
2
PLL 逓倍回路
端子
HCLK
X1
周辺
クロック
2 分周
-
MCM WS1 WS0
メイン
クロック
1024
分周
-
MCS CS1 CS0
クロック選択レジスタ (CKSCR)
2 分周
4 分周
4 分周
4 分周
2 分周
端子
システムクロック
発生回路
タイムベースタイマ
ウォッチドッグタイマ
(注意事項)このダイヤグラムには , クロックモジュレータが表示されていません。
詳細は「第 6 章 クロックモジュレータ」を参照してください。
86
第 5 章 クロック
● システムクロック発生回路
外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを
入力することもできます。
● PLL 逓倍回路
PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。
● クロックセレクタ
メインクロックと 6 種類の PLL クロックから , CPU 系クロック制御回路および周辺系
クロック制御回路へ供給されるクロックを選択します。
● クロック選択レジスタ (CKSCR)
発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック
の逓倍率の選択などを行います。
● 発振安定待ち時間セレクタ
ストップモード解除時 , 発振クロックの発振安定待ち時間を選択します。4 種類のタイ
ムベースタイマ出力を選択します。それ以外の場合は , 発振安定待ち時間は選択されま
せん。
87
第 5 章 クロック
5.3
クロック選択レジスタ
クロック選択レジスタの一覧と各レジスタの機能を概略します。
■ クロック選択レジスタ
図 5.3-1にクロック選択レジスタ(CKSCR)とPLLおよび特殊構成制御レジスタ(PSCCR)
を示します。
図 5.3-1 クロック選択レジスタ
CKSCR
アドレス
0000A1H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
予約
R/W
MCM
WS1
WS0
初期値
CS1
CS0
11111100B
R/W
予約
R/W
MCS
R
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
予約
W
CS2
XXXX0000B
PSCCR
アドレス
0035CFH
X
-
R/W
R
W
88
予約
予約
予約
予約
-
-
-
-
: 不定
: 未定義
: リード / ライト可能
: リードオンリ
: ライトオンリ
予約
W
予約
W
W
第 5 章 クロック
5.3.1
クロック選択レジスタ (CKSCR)
クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振
安定待ち時間の選択および PLL クロックの逓倍率の選択などを行うレジスタです。
■ クロック選択レジスタ (CKSCR) の構成
図 5.3-2 に , クロック選択レジスタ (CKSCR) の構成を , 表 5.3-1 に , クロック選択レジ
スタ (CKSCR) の各ビットの機能について説明します。
図 5.3-2 クロック選択レジスタ (CKSCR) の構成
アドレス
bit15
0 0 0 0 A 1 H 予約
R/W
bit14
bit13
bit12
bit11
MCM WS1
WS0
予約
R/W
R/W
R
R/W
bit10
bit9
bit8
MCS
CS1
CS0
R/W
R/W
R/W
bit0
(LPMCR)
初期値
11111100B
CS2(PLLCレジスタ:bit8)
CS2 CS1 CS0
逓倍率選択ビット
( ) 内は発振クロック 4MHz と 5MHz 時
0
0
0
1 x HCLK (4MHz / 5MHz)*
0
0
1
2 x HCLK (8MHz / 10MHz)*
0
1
0
3 x HCLK (12MHz / 15MHz)*
0
1
1
4 x HCLK (16MHz / 20MHz)*
1
0
0
2 x HCLK (8MHz / 10MHz)
1
0
1
4 x HCLK (16MHz / 20MHz)
1
1
0
6 x HCLK (24MHz / 設定禁止)
1
1
1
禁止
*: 20MHzを超える設定は禁止されています。
0
マシンクロック選択ビット
PLL クロック選択
1
メインクロック選択
MCS
WS1 WS0
0
0
210/HCLK ( 約 256/204.8 μs)
0
1
213/HCLK ( 約 2.05/1.64 ms)
1
0
215/HCLK ( 約 8.19/6.55 ms)
1
1
217/HCLK ( 約 32.77/26.22 ms)
MCM
R/W : リード / ライト可能
HCLK : 発振クロック
R
: リードオンリ
: 初期値
発振安定待ち時間選択ビット
( ) 内は発振クロック 4MHz と 5MHz 時
マシンクロック表示ビット
0
PLL クロックで動作中
1
メインクロックで動作中
<注意事項>
マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。
89
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 ( 1 / 2 )
ビット名
bit 15
( 注意事項 )
必ず "1" を書き込んでください。
MCM:
マシンクロッ
ク表示ビット
• マシンクロックとして , メインクロックまたは PLL クロックのどちら
が選択されているかを表示するビットです。
• このビットが "0" のとき PLL クロックが選択されていることを示し ,
"1" のときメインクロックが選択されていることを示します。
• MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待ち
時間中であることを示します。
• 書込みは , 動作に影響しません。
WS1, WS0:
発振安定待ち
時間選択
ビット
• ストップモード解除時 , 発振クロックの発振安定待ち時間を選択する
ビットです。
• すべてのリセット要因で "11B" に初期化されます。
( 注意事項 )
発振安定待ち時間は , 使用する振動子に合わせて適切な値を設定する
必要があります。「7.2 リセット要因と発振安定待ち時間」を参照し
てください。"00B" と "01B" の設定は , メインクロックモード時のみ
設定してください。
PLL ストップから PLL クロックモードに復帰する場合の発振安定待
ち時間は , 214/HCLK 以上です。PLL クロックモードに切り換える場
合は "10B" または "11B" に設定してください。
bit 13
bit 12
90
能
予約
bit 14
bit 11
機
予約
WS1
WS0
0
0
0
1
1
0
1
1
4MHz 発振の待ち時間
5MHz 発振の待ち時間
約 256 μs
( 発振の 210 カウント )
約 205 μs
約 2.05 ms
約 1.64 ms
( 発振の 213 カウント )
( 発振の 213 カウント )
約 8.19 ms
約 6.56 ms
( 発振の 215 カウント )
( 発振の 215 カウント )
約 33.77 ms
約 26.21 ms
( 発振の 217 カウント )
( 発振の 217 カウント )
( 注意事項 )
必ず "1" を書き込んでください。
( 発振の 210 カウント )
第 5 章 クロック
表 5.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 ( 2 / 2 )
ビット名
機
能
MCS:
マシン
クロック
選択ビット
• マシンクロックとして , メインクロック , または PLL クロックのどち
らを選択するかを指定するビットです。
• このビットが "0" のとき PLL クロックを選択し , "1" のときメインク
ロックを選択します。
• このビットが "1" のときに "0" を書き込むと , PLL クロックの発振安
定待ち時間が発生するために , 自動的にタイムベースタイマがクリア
され , さらにタイムベースタイマ制御レジスタ (TBTC) の TBOF ビッ
トもクリアされます。
• PLL クロックの発振安定待ち時間は , 214/HCLK ( 発振クロック周波数
4MHz で動作している場合 : 約 4.1 ms) 固定です。
• メインクロック選択時の動作クロックは , 発振クロックを 2 分周した
クロックとなります ( 発振クロック周波数 4MHz 時 , 動作クロックは
2MHz になります ) 。
• すべてのリセット要因で "1" に初期化されます。
( 注意事項 )
MCS ビットが "1" のときに "0" を書き込む場合には , タイムベースタ
イマ制御レジスタ (TBTC) の TBIE ビットまたはインタラプトレベルレ
ジスタ (ILM) により , タイムベースタイマ割込みがマスクされている
状態で行うようにしてください。
CS1, CS0:
逓倍率選択
ビット
• このビットと PSCCR レジスタの CS2 ビットは PLL クロック逓倍率
を選択します。
• 6 種類の逓倍率から選択できます。
• すべてのリセット要因で "00B" に初期化されます。
bit 10
• CS2, CS1, CS0 ビットの推奨設定
bit 9
bit 8
CS2
0
0
0
0
1
1
1
1
CS1
0
0
1
1
0
0
1
1
CS0
0
1
0
1
0
1
0
1
PLL クロック逓倍率
× 1 ( 最大 20MHz までのマシンクロック )*1
× 2 ( 最大 20MHz までのマシンクロック )*1
× 3 ( 最大 20MHz までのマシンクロック )*1
× 4 ( 最大 20MHz までのマシンクロック )*1
× 5 (20MHz を超えるマシンクロック )*1
× 6 (20MHz を超えるマシンクロック )*1
× 7 (20MHz を超えるマシンクロック )*1
× 8 *2 (20MHz を超えるマシンクロック )*1
*1 : データシートの交流規格を参照してください。
*2: すべてのデバイスには設定されていません。データシートの交流規格
を参照してください。
( 注意事項 )
MCS ビットまたは MCM ビットが "0" のときには , 書込みが抑止され
ます。いったん , MCS ビットを "1" にした ( メインクロックモード )
後に , CS2, CS1, CS0 ビットを書き換えてください。
HCLK: 発振クロック周波数
91
第 5 章 クロック
5.3.2
PLL および特殊構成制御レジスタ (PSCCR)
PLL および特殊構成制御レジスタは PLL のクロック逓倍率の選択を追加します。
■ PLL および特殊構成制御レジスタ (PSCCR) の構成
図 5.3-3 に , PLL および特殊構成制御レジスタ (PSCCR) の構成を示します。表 5.3-2 に ,
PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能について説明します。
図 5.3-3 PLL および特殊構成制御レジスタ (PSCCR) の構成
アドレス bit15
0035CFH
予約
bit14
予約
bit13
予約
bit12
予約
bit11
bit10
bit9
bit8
CS2
予約
予約
予約
W
W
W
初期値
PSCCR
W
CS2
付加逓倍率選択ビット
0
PLL クロックの逓倍率× 1, × 2, × 3, × 4
(CKSCR レジスタの CS1 と CS0 ビットの設定
によります )
1
PLL クロックの逓倍率× 2, × 4, × 6, × 8
(CKSCR レジスタの CS1 と CS0 ビットの設定
によります )
予約
0
予約
0
予約
0
W
X
-
92
: ライトオンリ
: 不定
: 未定義
: 初期値
XXXX0000B
予約
XXXX
予約ビット
このビットには常に "0" を書き込んでくださ
い。読出し値は常に "X" です。
予約ビット
このビットには常に "0" を書き込んでくださ
い。読出し値は常に "X" です。
予約ビット
このビットには常に "0" を書き込んでくださ
い。読出し値は常に "X" です。
予約ビット
これらのビットには常に "0" を書き込んでくだ
さい。読出し値は常に "X" です。
第 5 章 クロック
表 5.3-2 PLL および特殊構成制御レジスタ (PSCCR) の各ビットの機能説明
ビット名
bit 15 ~
bit9
bit 8
機
能
予約 :
予約ビット
• 予約ビットです。
• 常に "0" を書き込んでください。
• これらのビットは常に "X" を読み出します。
CS2:
逓倍率
選択ビット 2
• このビットとクロック選択レジスタ (CKSCR) の CS1 と SC0 ビット
は PLL クロックの逓倍率を選択します。
• CS2, CS1, CS0 ビットの設定と PLL クロック逓倍率選択の関係につい
ては , 表 5.3-1 を参照してください。
• このビットはすべてのリセット要因により "0" に初期化されます。
• このビットは常に "X" を読み出します。
( 注意事項 )
MCS ビットまたは MCM ビットが "0" のとき , このビットの設定を
変更することは禁止されています。MCS ビットを "1" に設定し ,
MCM ビットが "1" に設定されるのを待ってからこのビットを変更し
てください ( メインクロックモード )。
<注意事項>
PSCCR レジスタは書込み専用レジスタです。読出し値は書込み値と異なります。した
がって , リードモディファイライト (RMW) 動作を実行する命令は , INC/DEC 命令など ,
使用できません。
93
第 5 章 クロック
5.4
クロックモード
クロックモードには , メインクロックモードと PLL クロックモードがあります。
■ メインクロックモード , PLL クロックモード
● メインクロックモード
メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを
2 分周したクロックを使用し , PLL クロックを停止させます。
● PLL クロックモード
PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使
用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) と PLL
および特殊構成制御レジスタ (PSCCR:CS2) により選択できます。
■ クロックモードの移行
クロック選択レジスタ (CKSCR) の MCS ビットへの書込み動作により , クロックモー
ドは , メインクロックモード , PLL クロックモードに移行します。
● メインクロックモードから PLL クロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1"
から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (214/HCLK) 後に , メ
インクロックから PLL クロックに切り換わります。
● PLL クロックモードからメインクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か
ら "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイ
ミング (1 ~ 8PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。
<注意事項>
クロック選択レジスタ (CKSCR) の MCS ビットを書き換えても即座にマシンクロックの
切換えは行われません。マシンクロックに依存する周辺機能を操作する場合には , クロッ
ク選択レジスタ (CKSCR) の MCM ビットを参照してマシンクロックの切換えが行われた
ことを確認したのちに , 周辺機能の操作を行ってください。
クロックモードを切り換えた場合 , 切換えが完了するまでは他のクロックモードおよび低
消費電力モードへは切り換えないようにしてください。
切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ
さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え
を行った場合 , 切り換わらない場合があります。
■ PLL クロック逓倍率の選択
クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ~ "11B" と PLL および特殊
構成制御レジスタ (PSCCR) の CS2 ビットに "0" または "1" を書き込むことにより , 1 ~
4, 6または8逓倍(表 5.3-1 bit8/bit9を参照)の4種類のPLLクロック逓倍率を選択できます。
94
第 5 章 クロック
■ マシンクロック
PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロックが , マシンクロッ
クとなります。このマシンクロックが CPU および周辺機能に供給されます。メインク
ロック , PLL クロックは , クロック選択レジスタ (CKSCR) の MCS ビットへの書込みに
より , いずれかを選択できます。
■ クロックモジュレータ
クロックモジュレータについては「第 6 章 クロックモジュレータ」を参照してくださ
い。
図 5.4-1 に , マシンクロックの切換えによる状態遷移を示します。
図 5.4-1 マシンクロック選択の状態遷移図
Main
MCS = 1
MCM = 1
CS1, CS0 = xx
CS2 = x
(1)
(6)
(8)
(7)
Main
PLLx
MCS = 0
MCM = 1
CS1, CS0 = xx
CS2 = x
(7)
(7)
CS2 = 0
(6)
CS1, CS0 = 01
CS2 = 0
(6)
CS1, CS0 = 10
CS2 = 0
(7)
CS1, CS0 = 11
CS2 = 0
(6) CS1, CS0 = 00
CS2 = 1
CS1, CS0 = 01
CS2 = 1
PLL4A: Multiplied
MCS = 0
MCM = 0
(6)
PLL6
Main
MCS = 1
MCM = 0
(7)
CS1, CS0 = 10
CS2 = 1
(7)
CS1, CS0 = 11
CS2 = 1
CS1, CS0 = 01
CS2 = 1
PLL6: Multiplied
MCS = 0
MCM = 0
(6)
PLL8
Main
MCS = 1
MCM = 0
PLL4: Multiplied
MCS = 0
MCM = 0
(6)
PLL2A: Multiplied
MCS = 0
MCM = 0
PLL4A
Main
MCS = 1
MCM = 0
PLL3: Multiplied
MCS = 0
MCM = 0
PLL4
Main
MCS = 1
MCM = 0
CS1, CS0 = 11
CS2 = 0
(7) CS1, CS0 = 00
CS2 = 1
PLL2: Multiplied
MCS = 0
MCM = 0
PLL3
Main
MCS = 1
MCM = 0
CS1, CS0 = 10
CS2 = 0
(7)
(6) CS1, CS0 = 00
PLL2
Main
MCS = 1
MCM = 0
CS1, CS0 = 01
CS2 = 0
PLL2A
Main
MCS = 1
MCM = 0
PLL1: Multiplied
MCS = 0
MCM = 0
PLL1
Main
MCS = 1
MCM = 0
CS1, CS0 = 00
CS2 = 0
(7)
(9)
(10)
(11)
(2)
(3)
(4)
(5)
CS1, CS0 = 10
CS2 = 1
PLL8: Multiplied
MCS = 0
MCM = 0
(6)
CS1, CS0 = 11
CS2 = 1
95
第 5 章 クロック
(1)
MCS ビットに "0" を書き込む
(2)
PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 00
(3)
PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 01
(4)
PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 10
(5)
PLL クロック発振安定待ち時間終了後 , CS2= 0 および CS1, CS0 = 11
(6)
MCS ビットに "1" を書込む ( ウォッチドッグタイマリセットを含む )
(7)
PLL クロックとメインクロックの同期タイミング
(8)
PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 00
(9)
PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 01
(10)
PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 10
(11)
PLL クロック発振安定待ち時間終了後 , CS2= 1 および CS1, CS0 = 11
MCS
: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
MCM
: クロック選択レジスタ (CKSCR) のマシンクロック表示ビット
CS1, CS0
: クロック選択レジスタ (CKSCR) の逓倍率選択ビット
CS2
: PLL および特殊構成制御レジスタ (PSCCR) の逓倍率選択ビット
<注意事項>
マシンクロックの初期値は , メインクロック (CKSCR:MCS = 1) です。
96
第 5 章 クロック
5.5
発振安定待ち時間
電源投入後 , ストップモード解除時には , 発振停止から動作が開始するため , 発振開
始後に発振安定待ち時間が必要です。また , メインクロックから PLL クロックへ切
り換える場合も , PLL クロックの発振開始後に発振安定待ち時間が必要です。
■ 発振安定待ち時間
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で
安定して発振するまでに , 一般的に数 ms の時間が必要です。このため , 発振開始直後
は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した時点で CPU
にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックなど ) によって
発振が安定するまでの時間が異なるため , 使用する振動子に合わせて適切な発振安定
待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レジスタ
(CKSCR) の設定で選択できます。
クロックモードをメインクロックから PLL クロックに切り換えた場合 , PLL 発振安定
待ち時間の間 , CPU はメインクロックで動作しています。発振安定待ち時間を経過す
ると , PLL モードに切り換わります。
図 5.5-1 に , 発振開始直後の動作を示します。
図 5.5-1 発振開始直後の動作
振動子の発振時間
発振安定待ち時間
通常動作開始または
PLL クロックへの切換え
X1
発振開始
発振安定
97
第 5 章 クロック
5.6
振動子と外部クロックの接続
MB90945 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を
接続してクロック発生させます。また , 外部で生成したクロックを入力することも
できます。
■ 振動子と外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
水晶振動子またはセラミック振動子は , 図 5.6-1 の例で示すように接続してください。
図 5.6-1 水晶振動子またはセラミック振動子の接続例
X0
X1
● 外部クロックの接続例
図 5.6-2 の例で示すように , 外部クロックは , X0 端子に接続し , X1 端子は開放にして
ください。
図 5.6-2 外部クロックの接続例
MB90945 シリーズ
X0
~
98
X1
開放
第6章
クロックモジュレータ
クロックモジュレータの概要・特長・レジスタの
構成 , 動作について説明します。
<注意事項>
MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に
使用しないでください。
MB90F946A, MB90947A, MB90F947A,
MB90F949A および MB90V390HB においては ,
問題ありません。
6.1 クロックモジュレータの概要
6.2 クロックモジュレータ制御レジスタ (CMCR)
6.3 使用上の注意
99
第 6 章 クロックモジュレータ
6.1
クロックモジュレータの概要
クロックモジュレータの概要を説明します。
■ クロックモジュレータの概要
クロックモジュレータはクロック信号のスペクトラムを広い範囲に分散させることで
周囲への電磁ノイズへの影響 (EMI) を減らします。
本モジュレータには位相変調モードがあります。
リファレンスクロックは , ランダム信号で制御される三角波形もしくは , 変調した周波
数によって位相変調されます。
図 6.1-1 に変調クロックの周波数スペクトラム ( 基本のみ ) を示します。
図 6.1-1 変調クロックの周波数スペクトラム ( 基本のみ )
変調範囲
周波数
Fmin
100
F0
Fmax
第 6 章 クロックモジュレータ
6.2
クロックモジュレータ制御レジスタ (CMCR)
クロックモジュレータ制御レジスタ (CMCR) は位相変調を許可 / 禁止にします。
■ クロックモジュレータ制御レジスタ (CMCR)
図 6.2-1 にクロックモジュレータ制御レジスタ (CMCR) の構成を示します。
図 6.2-1 クロックモジュレータ制御レジスタ (CMCR) の構成
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
アドレス
0035C2H PMOD 予約 予約 予約 - 予約 予約 予約
R/W R/W R/W R/W
-
R
R/W R/W
CMCR
初期値
0 0 0 1 X 0 0 0B
bit0, bit1, bit2
予約
bit 0,1
bit 2
予約ビット
常に "0" を書き込んでください。
書込みは影響しません。
bit4, bit5, bit6
予約
bit 4
bit 5,6
予約ビット
常に "1" を書き込んでください
常に "0" を書き込んでください
bit7
R/W
R
X
-
: リード / ライト可能
: リードオンリ
: 不定
: 未定義
: 初期値
PMOD
0
1
位相変調イネーブルビット
位相変調禁止
位相変調許可
101
第 6 章 クロックモジュレータ
■ クロックモジュレータ制御レジスタの機能
表 6.2-1 にクロックモジュレータ制御レジスタの各ビットの機能を示します。
表 6.2-1 クロックモジュレータ制御レジスタの各ビットの機能
ビット名
PMOD:
位相変調
許可ビット
bit7
"0": 位相変調禁止 ( デフォルト )
"1": 位相変調許可。MCU は位相変調されたクロックによって動作
します。
• モジュレータを位相変調モードで動作させるためには PMOD が
"1" に設定される必要があります。
• モジュレータを許可にする前に , PLL クロックが安定している
必要があります (PLL 安定待ち時間については「第 5 章 クロッ
ク」を参照してください )。
• 位相変調モードは 15MHz ~ 24MHz の範囲で使用可能です。
• PLL 出力周波数が変わる場合 , または PLL がオフになる場合
( 例:パワーダウンモード ) には事前にクロックモジュレータを
不可にしてください→ PMOD=0 後に NOP が 4 サイクル必要で
す。
• 位相変調を許可にすると , 直ちに変調されたクロックに切り換わ
ります。このとき , グリッジは発生しません。
位相変調開始シーケンスについては使用上の注意を参照してく
ださい。
• 位相変調の動作状態は PMOD によって参照できます。PMOD=1
であればクロックは位相変調されています。
• 位相変調されたクロック信号のパルス幅は± 1.2 ns の範囲で変
化します。
例:F0 = 20 MHz 位相変調されていない入力クロック , T0 = 50ns
Tmodmin = 50ns - 1.2ns = 48.8ns --> Fmodmax = 1/48.8 ns =
20.49 MHz
bit 6, bit5
予約ビット
本ビットには常に "0" を書き込んでください。
bit 4
予約ビット
本ビットには常に "1" を書き込んでください。
bit 3
未定義ビット
-
予約ビット
このビットへの読出しおよび書込みは影響しません。
読出し値は常に "0" が読み出されます。
bit 1
予約ビット
本ビットには常に "0" を書き込んでください。
bit 0
予約ビット
本ビットには常に "0" を書き込んでください。
bit 2
102
機能
第 6 章 クロックモジュレータ
6.3
使用上の注意
位相変調モードのスタート / ストップシーケンスについて説明します。
■ 位相変調モードの推奨起動手順
start
1.
PLL をオン
2.
PLL 安定待ち時間待機 (「第 5 章クロック」の MCM フラグに関する説明
を参照してください )
3.
位相変調モードを許可 (PMOD=1)
クロックは直ちに位相変調される
... 動作中 ...
stop
4.
位相変調モードを不可 (PMOD=0)
5.
NOP4 サイクル
6.
PLL 停止 , パワーダウンモードに移行 etc...
<注意事項>
PLL 安定待ち時間が経過する前にはモジュレータを許可にしないでください。
また , 変調動作中に PLL を停止しないでください。
<注意事項>
MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に
使用しないでください。
MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問
題ありません。
103
第 6 章 クロックモジュレータ
104
第7章
リセット
リセットについて説明します。
7.1 リセットの概要
7.2 リセット要因と発振安定待ち時間
7.3 外部リセット端子
7.4 リセット動作
7.5 リセット要因ビット
7.6 リセットによる各端子の状態
105
第 7 章 リセット
7.1
リセットの概要
リセット要因が発生すると , CPU は直ちに現在実行中の処理を中断し , リセット解
除待ち状態になります。リセット解除後は , リセットベクタで示されたアドレスか
ら処理を開始します。
リセットには , 次の 4 つの要因があります。
• 電源投入 ( パワーオン )
• ウォッチドッグタイマのオーバフロー
• RST 端子からの外部リセット要求
• ソフトウェアリセット要求
■ リセット要因
リセットの要因について 表 7.1-1 に示します。
表 7.1-1 リセット要因
マシンクロック
ウォッチ
ドッグタイマ
発振安定待ち
電源投入時
メインクロック
(MCLK)
停止
あり
外部端子
RST端子への"L"レベ
ル入力
メインクロック
(MCLK)
停止
なし
ソフトウェア
低消費電力モード制
御レジスタ (LPMCR)
の内部リセット信号
発生ビット (RST) に
"0" を書き込む
メインクロック
(MCLK)
停止
なし
ウォッチ
ドッグタイマ
ウォッチドッグタイ
マオーバフロー
メインクロック
(MCLK)
停止
なし
リセット
パワーオン
発生要因
MCLK: メインクロック ( 発振クロックの 2 分周クロック )
● 外部リセット
外部リセットは , 外部リセット端子 (RST 端子 ) に "L" レベルを入力することでリセッ
トを発生します。RST 端子への "L" レベル入力時間は , 16 マシンサイクル (16/φ) 以上
必要です。外部リセットでは , 発振安定待ち時間をとりません。
MB90945 シリーズでは , 外部リセットは最小 100 μs のメインタイムベースタイマモー
ドからのウェイクアップと最小 100 μs +発振子の発振時間+ 16 マシンサイクルのス
トップモードからのウェイクアップです。データシートの交流規格を参照してくださ
い。
106
第 7 章 リセット
<参考>
RST端子によるリセット要求の発生の場合に限り, 書込み動作中 (転送系命令実行中MOV
など) にリセット要因が発生した場合, 命令の終了後にリセット解除待ち状態になります。
そのため , 書込み中にリセットが入力されても , 正常に書込みを終了します。ただし , ス
トリング系命令 (MOVS など ) は , 指定したカウンタ分の転送が完了する前にリセットを
受け付けるので , すべてのデータが転送されることは保証されません。
● ソフトウェアリセット
ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信
号発生ビット (RST) に "0" を書き込むことによって , 内部リセットを発生します。ソフ
トウェアリセットでは , 発振安定待ち時間をとりません。
● ウォッチドッグタイマリセット
ウォッチドッグタイマリセットは , ウォッチドッグタイマの起動後 , 定められた時間内
にウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に
"0" を書き込まれた場合 , ウォッチドッグタイマのオーバフローによってリセットを発
生します。ウォッチドッグリセットでは , 発振安定待ち時間はクロック選択レジスタ
(CKSCR) で設定されます。
● パワーオンリセット
パワーオンリセットは , 電源投入時に発生するリセットです。この場合 , 217/HCLK の
発振安定待ち時間に 217/HCLK (EVA デバイス ) または 216/HCLK( その他 ) の電圧降圧
回路安定待ち時間が追加されます。この 2 つの待ち時間 ( 4MHz 原発振時 約 65.54 ms
(EVA デバイス ) または 約 49.15 ms ( その他 )) が経過するとリセットが実行されます。
図 7.2-1 を参照してください。
クロックの定義
HCLK
: 発振クロック周波数
MCLK
: メインクロック周波数
f
: マシンクロック (CPU 動作クロック ) 周波数
1/ f
: マシンサイクル (CPU 動作クロック周期 )
マシンクロックの詳細は , 「第 5 章 クロック」を参照してください。
107
第 7 章 リセット
7.2
リセット要因と発振安定待ち時間
MB90945 シリーズには , 4 種類のリセット要因があり , リセット時の発振安定待ち
時間がリセット要因によってそれぞれ異なります。
■ リセット要因と発振安定待ち時間
表 7.2-1 にリセット要因と発振安定待ち時間について示します。
表 7.2-1 リセット要因と発振安定待ち時間
発振安定待ち時間
( ) 内は発振クロック周波数 4MHz 時
リセット
パワーオン
217/HCLK (EVA デバイス ) または 216/HCLK( その他 ) 電圧
降圧回路安定待ち時間 +217/HCLK 発振安定待ち時間 =218/
HCLK(EVA デバイス :4 MHz 発振時 約 65.54 ms) または
3 × 216/HCLK ( その他 :4 MHz 発振時 約 49.15 ms)
ウォッチドッグタイマ
なし
RST 端子により外部リセット
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
ソフトウェア
なし : ただし WS1, WS0 ビットは "11B" に初期化されます。
HCLK: 発振クロック周波数
WS1, WS0: クロック選択レジスタ (CKSCR) の発振安定待ち時間選択ビット
図 7.2-1 に , パワーオンリセット時の発振安定待ち時間について示します。
図 7.2-1 パワーオンリセット時の発振安定待ち時間
Evaluation/flash model
Vcc
EVA: 217/HCLK
その他 : 216/HCLK
217/HCLK
降圧回路の
安定待ち時間
発振安定
待ち時間
CLK
CPU 動作
HCLK : 発振クロック
108
第 7 章 リセット
<注意事項>
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数に安定するまで , 一
般に数 ms の発振安定待ち時間が必要です。そのため , 使用する振動子に合わせた値を設
定してください。詳細は , 「5.5 発振安定待ち時間」を参照してください。
■ 発振安定待ちリセット状態
電源投入時のリセット , ストップモード中のリセットに対するリセット動作は , タイム
ベースタイマによって作られる発振安定待ち時間が経過してからとなります。このと
き , 外部リセット入力が解除されていない場合は , 外部リセット解除後にリセット動作
を行います。
109
第 7 章 リセット
7.3
外部リセット端子
外部リセット端子 (RST 端子 ) は , リセット入力専用端子で , "L" レベルの入力に
よって内部リセットを発生します。MB90945 シリーズは , CPU 動作クロックに同期
してリセットがかかります。ただし , I/O ポート端子は非同期時の外部リセット端子
(RST 端子 ) によって影響を受けます。
■ 外部リセット端子のブロックダイヤグラム
● 外部リセット端子のブロックダイヤグラム
図 7.3-1 外部リセット端子のブロックダイヤグラム
CPU 動作クロック
(HCLK 周波数を 2 分周した周波数による PLL 逓倍回路 )
RST
CPU
P-ch
同期回路
Pin
N-ch
入力
バッファ
周辺機能
( リソース )
I/O ポート
または外部端子
<注意事項>
書込み動作中のリセットによるメモリ破壊を防ぐため, RST端子入力の受付けをメモリが
破壊されないサイクルで行います。また , 内部回路の初期化には , クロックが必要です。
特に外部クロックで動作させる場合は , リセット入力時にクロックを入力する必要があり
ます。
110
第 7 章 リセット
7.4
リセット動作
リセットが解除されると , モード端子の設定でモードデータとリセットベクタの読
出し先を選択し , モードフェッチを行います。このモードフェッチで , CPU の動作
モードとリセット動作終了後の実行開始アドレスが決定されます。電源投入時 , ス
トップモードからのリセットによる復帰では , 発振安定待ち時間が経過してから
モードフェッチを行います。
■ リセット動作の概要
図 7.4-1 に , リセット動作フローを示します。
図 7.4-1 リセット動作フロー
パワーオンリセット
ストップモード
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
リセット中
発振安定待ちリセット状態
モードデータ取込み
モードフェッチ
( リセット動作 )
通常動作
(RUN 状態 )
外部バスモードに関連した
端子の状態および機能を変更
リセットベクタ取込み
リセットベクタが示す
アドレスから命令コード
を取込み命令を実行
■ モード端子
モード端子 (MD0 ~ MD2) は , リセットベクタとモードデータの取込み方法を指定しま
す。リセットベクタとモードデータの取込みは , リセットシーケンスで行います。モー
ド端子の詳細は , 「9.2 モード端子」を参照してください。
■ モードフェッチ
リセットが解除されると , CPU は , リセットベクタとモードデータを CPU コア内の該当
レジスタ内にハードウェア転送します。リセットベクタとモードデータは , FFFFDCH ~
FFFFDFH の 4 バイトに割り当てられています。CPU は , リセット解除で直ちにこれら
のアドレスをバスに出力し , リセットベクタとモードデータを取り込みます。このモー
ドフェッチで , CPU はリセットベクタが指すアドレスから処理を開始します。
図 7.4-2 に , リセットベクタとモードデータの転送を示します。
111
第 7 章 リセット
図 7.4-2 リセットベクタとモードデータの転送
F2MC-16LX CPU コア
メモリ空間
FFFFDFH
モードデータ
FFFFDE H
リセットベクタビット 23 ~ 16
FFFFDDH
リセットベクタビット 15 ~ 8
リセットベクタビット 7 ~ 0
FFFFDCH
モードレジスタ
リセット
シーケンス
マイクロ
ROM
PCB
PC
● モードデータ ( アドレス :FFFFDFH)
モードレジスタの内容を変更できるのはリセット動作だけで , モードレジスタの設定
はリセット動作以降に有効となります。モードデータの詳細は , 「9.3 モードデータ」
を参照してください。
● リセットベクタ ( アドレス :FFFFDCH ~ FFFFDEH)
リセット動作終了後の実行開始アドレスを書き込んでおきます。この内容のアドレス
から実行を開始します。
<注意事項>
MB90F946A, MB90F947(A) および MB90F949 (A) では , リセットベクタとモードデータ
はハードワイヤードロジックによって異なるあらかじめ決められた値を設定しています。
詳細については , 「25.9 フラッシュメモリにおけるリセットベクタアドレス」を参照し
てください。
112
第 7 章 リセット
7.5
リセット要因ビット
リセット要因はウォッチドッグタイマ制御レジスタ (WDTC) を読み出すことで識別
できます。
■ リセット要因ビット
図 7.5-1 に示すように , それぞれのリセット要因には対応したフリップフロップがあり
ます。これらの内容は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すと得
られます。リセット解除後にリセット発生要因を識別する必要がある場合には , ウォッ
チドッグタイマ制御レジスタ (WDTC) の読出し値をソフトウェアで処理した上で , 適
切なプログラムへ分岐するようにしてください。
図 7.5-1 リセット要因ビットのブロックダイヤグラム
RST pin
定期的なクリアなし
RST=L
パワーオン
発生検出
回路
外部リセット
要求検出回路
ウォッチドッグ
タイマリセット
発生検出回路
ウォッチドッグ
タイマ制御
レジスタ
(WDTC)
RST ビットセット
LPMCR, RST
ビット書込み
検出回路
クリア
S
R
S
Q
R
S
Q
R
R
S
F/F
F/F
F/F
F/F
遅延回路
Q
Q
ウォッチドッグ
タイマ
制御レジスタ
(WDTC) 読出し
S: セット
R: リセット
Q: 出力
F/F: フリップフロップ
内部データバス
■ リセット要因ビットとリセット要因の対応
ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因ビットの構成を , 図 7.5-2
に , リセット要因ビットの内容とリセット要因の対応を 表 7.5-1 に示します。詳細は ,
「12.1 ウォッチドッグタイマの概要」を参照してください。
図 7.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ )
ウォッチドッグタイマ制御レジスタ (WDTC)
アドレス
: 0000A8H
bit15............bit8
bit7
bit6
(TBTC)
PONR
R
-
-
bit5
bit4
bit3
bit2
WRST ERST SRST WTE
R
R
R
W
bit1
WT1
W
bit0
初期値
WT0 XXXXX111B
W
R: リードオンリ
W: ライトオンリ
X: 不定
113
第 7 章 リセット
表 7.5-1 リセット要因ビットの内容とリセット要因の対応
PONR
WRST
ERST
SRST
パワーオンリセット要求の発生
1
X
X
X
ウォッチドッグタイマオーバフローに
よるリセット要求の発生
*
1
*
*
RST 端子からの外部リセット要求
*
*
1
*
ソフトウェアリセット要求の発生
*
*
*
1
リセット要因
*: 前の状態を保持
X: 不定
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の
対応するそれぞれのリセット要因ビットが "1" にセットされます。例えば , RST 端子か
らの外部リセット要求の発生とウォッチドッグタイマのオーバフローが同時に発生し
た場合 , ERST ビットと WRST ビットの両方が "1" になります。
● パワーオンリセットの場合
パワーオンリセットの場合には , PONR ビットが "1" にセットされますが , PONR ビッ
ト以外のリセット要因ビットは不定となります。このため , PONR ビットが "1" の場合
は, PONRビット以外のリセット要因ビットを無視するようにソフトウェアを作成して
ください。
● リセット要因ビットのクリア
リセット要因ビットは , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出したと
きのみクリアされます。それぞれのリセット要因に対応するビットに生じたフラグは ,
その後他の要因でリセットが発生してもクリアされず , "1" のままとなります。
<注意事項>
パワーオンリセットが発生しない条件で電源を立ち上げた場合は, WDTCレジスタの値は
保証されません。
114
第 7 章 リセット
7.6
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ~ MD0) の設定によって決定されます。
● 内部ベクタモード設定時 (MD2 ~ MD0=011B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
■ モードデータ読出し後の端子の状態
モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され
ます。
● シングルチップモード選択時 (M1, M0=00B)
I/O 端子 ( 周辺機能端子 ) はすべてハイインピーダンスになり , モードデータの読出し
先は内部 ROM になります。
<注意事項>
リセット要因が発生したときハイインピーダンスとなる端子は , その端子に接続した機器
が誤動作しないように配慮してください。
115
第 7 章 リセット
116
第8章
低消費電力モード
低消費電力モードの機能と動作について説明しま
す。
8.1 低消費電力モードの概要
8.2 低消費電力モードのブロックダイヤグラム
8.3 低消費電力モード制御レジスタ (LPMCR)
8.4 CPU 間欠動作モード
8.5 スタンバイモード
8.6 状態遷移図
8.7 低消費電力モード使用上の注意
117
第 8 章 低消費電力モード
8.1
低消費電力モードの概要
動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備
えています。
• クロックモード (PLL クロック , メインクロックの各モード )
• CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作の各モード )
• スタンバイモード ( スリープ , タイムベースタイマ , ストップの各モード )
■ CPU 動作モードと消費電流
CPU 動作モードと消費電流の関係を図 8.1-1 に示します。
図 8.1-1 CPU 動作モードと消費電流
消費電流
数 10mA
CPU
動作モード
PLL クロックモード
8 逓倍クロック
6 逓倍クロック
4 逓倍クロック
3 逓倍クロック
2 逓倍クロック
1 逓倍クロック
PLL クロック間欠
動作モード
8 逓倍クロック
6 逓倍クロック
4 逓倍クロック
3 逓倍クロック
2 逓倍クロック
1 逓倍クロック
メインクロックモード (1/2 クロックモード )
メインクロック間欠動作モード
数 mA
スタンバイモード
スリープモード
タイムベースタイマモード
数 μA
ストップモード
低消費電力モード
( 注意事項 ) この図は , 各種モードのイメージを示したもので , 実際の消費電流とは異なる
部分があります。
118
第 8 章 低消費電力モード
■ クロックモード
● PLL クロックモード
発振クロック (HCLK) の PLL 逓倍クロックで CPU および周辺機能を動作させるモード
です。
● メインクロックモード
発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで
す。メインクロックモードでは , PLL 逓倍回路が停止します。
<参考>
クロックモードについては , 「5.4 クロックモード」を参照してください。
■ CPU 間欠動作モード
周辺機能には高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する
モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外
部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。
■ スタンバイモード
スタンバイモードは, 低消費電力制御回路によるCPUへのクロックの供給停止 (スリー
プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ),
または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。
● PLL スリープモード
PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外は PLL クロックで動作します。
● メインスリープモード
メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止
させるモードで , CPU 以外はメインクロックで動作します。
● タイムベースタイマモード
タイムベースタイマモードは発振クロック , タイムベースタイマおよび時計タイマ以
外の動作を停止させるモードで , タイムベースタイマと時計タイマ以外の機能が停止
します。
メインタイムベースタイマモードと PLL タイムベースタイマモードは , ステータスが
異なることに注意してください。状態は , CKSCR の MCS ビットで選択されたクロッ
クによります。図 8.6-1 を参照してください。
PLL タイムベースタイマモードでは , 消費電力が著しく高くなります。詳細は , データ
シートを参照してください。
● ストップモード
ストップモードは原発振を停止させるモードで , すべての機能が停止します。
119
第 8 章 低消費電力モード
<注意事項>
ストップモードでは発振クロックが停止するため , 最小の消費電力でデータを保持できま
す。
クロックモードを切り換えた場合 , 切り換えが完了するまでは他のクロックモードおよび
低消費電力モードへは切り換えないようにしてください。
切換えの完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してくだ
さい。切換えが完了する前に , ほかのクロックモードおよび低消費電力モードへの切換え
を行った場合 , 切り換わらない場合があります。
120
第 8 章 低消費電力モード
8.2
低消費電力モードのブロックダイヤグラム
低消費電力モードは , 次の 7 つのブロックで構成されています。
• CPU 間欠動作セレクタ
• スタンバイ制御回路
• CPU クロック制御回路
• 周辺クロック制御回路
• 端子ハイインピーダンス制御回路
• 内部リセット発生回路
• 低消費電力モード制御レジスタ (LPMCR)
■ 低消費電力モードのブロックダイヤグラム
図 8.2-1 に , 低消費電力モードのブロックダイヤグラムを示します。
図 8.2-1 低消費電力モードのブロックダイヤグラム
低消費電力モード制御レジスタ (LPMCR)
STP SLP SPL RST TMD CG1 CG0 予約
RST
端子
端子ハイインピー
ダンス制御回路
端子ハイインピー
ダンス制御
内部リセット
発生回路
内部リセット
CPU クロック
制御回路
CPU クロック
間欠
サイクル
セレクタ
CPU 間欠動作
セレクタ
ストップ ,
スリープ信号
スタンバイ
制御回路
ストップ信号
割込み解除
周辺クロック
制御回路
発振安定待ちクリア
マシンクロック
CS2
PLL および
特殊構成制御
レジスタ
(PSCCR):bit8
X0
端子
X1
端子
クロック
セレクタ
発振安定
待ち時間
セレクタ
2
2
PLL 逓倍回路
HCLK
2 分周
システムクロック
発生回路
-
周辺クロック
MCM WS1 WS0
メイン
クロック
-
MCS CS1 CS0
クロック選択レジスタ (CKSCR)
1024 分周
2 分周
4 分周
4 分周
4 分周
2 分周
タイムベースタイマ
ウォッチドッグタイマ
121
第 8 章 低消費電力モード
● CPU 間欠動作セレクタ
CPU 間欠動作モードにおける , 一時停止クロック数を選択します。
● スタンバイ制御回路
CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの
移行および解除を行います。
● CPU クロック制御回路
CPU および周辺クロック制御回路の周辺機能に供給するクロックを制御する回路で
す。
● 周辺クロック制御回路
周辺機能に供給するクロックを制御する回路です。
● 端子ハイインピーダンス制御回路
タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー
ダンスにする回路です。プルアップオプションの選択された端子に対しては , ストップ
モードではプルアップ抵抗を切り離します。
● 内部リセット発生回路
内部リセット信号を発生させる回路です。
● 低消費電力モード制御レジスタ (LPMCR)
スタンバイモードへの移行 / 解除および CPU 間欠動作機能の設定などを行うレジスタ
です。
122
第 8 章 低消費電力モード
8.3
低消費電力モード制御レジスタ (LPMCR)
低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除およ
び CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを行
うレジスタです。
■ 低消費電力モード制御レジスタ (LPMCR)
図 8.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を示します。
図 8.3-1 低消費電力モード制御レジスタ (LPMCR) の構成
アドレス bit15
0000A0H
(CKSCR)
bit7
bit6
bit5 bit4
bit3
bit2
bit1
STP
SLP
SPL
W
W
R/W
bit0
RST
TMD
CG1
CG0 予約
W
R/W
R/W
R/W
初期値
00011000B
R/W
bit0
予約ビット
予約
このビットへは必ず "0" を書込んでください。
0
bit1, bit2
CG1 CG0
CPU クロック一時停止サイクル数選択ビット
0
0
0
1
1
0
0 サイクル (CPU クロック=周辺クロック )
8 サイクル (CPU クロック:周辺クロック= 1:約 3 ~ 4)
16 サイクル (CPU クロック:周辺クロック= 1:約 5 ~ 6)
1
1
32 サイクル (CPU クロック:周辺クロック= 1:約 9 ~ 10)
bit3
タイムベースタイマモードビット
TMD
0
タイムベースタイマモードに移行
1
変化なし , 他への影響なし
bit4
内部リセット信号発生ビット
RST
0
3 マシンサイクルの内部リセット信号を発生
1
変化なし , 他への影響なし
bit5
端子状態指定ビット
( タイムベースタイマ・ストップモード時 )
SPL
0
保持
1
ハイインピーダンス
bit6
スリープモードビット
SLP
0
変化なし , 他への影響なし
1
スリープモードに移行
bit7
R/W
: リード / ライト可能
W
: ライトオンリ
0
: 初期値
変化なし , 他への影響なし
1
ストップモードに移行
STP
ストップモードビット
123
第 8 章 低消費電力モード
表 8.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明
ビット名
bit 7
STP:
ストップモード
ビット
•
•
•
•
•
ストップモードへの移行を指示するビットです。
このビットに "1" を書き込むと , ストップモードへ移行します。
このビットに "0" を書き込んでも動作に影響しません。
リセット , または割込み要求発生で "0" にクリアされます。
このビットを読み出すと , 常に "0" が読み出されます。
bit 6
SLP:
スリープモード
ビット
•
•
•
•
•
スリープモードへの移行を指示するビットです。
このビットに "1" を書き込むとスリープモードに移行します。
このビットに "0" を書き込んでも動作に影響しません。
リセット , または割込み要求発生で "0" にクリアされます。
このビットを読み出すと , 常に "0" が読み出されます。
SPL:
端子状態指定
ビッ ト ( タイ ム
ベースタイマ・
ストップモード時)
• このビットはタイムベースタイマモード , またはストップモー
ドの場合だけ有効です。
• このビットが "0" の場合 , 外部端子のレベルを保持します。
• このビットが "1" の場合 , 外部端子をハイインピーダンスにしま
す。
• リセットで "0" に初期化されます。
bit 4
RST:
内部リセット信号
発生ビット
• このビットに "0" を書き込むと 3 マシンサイクルの内部リセッ
ト信号を発生します。
• このビットに "1" を書き込んでも動作に影響しません。
• このビットを読み出すと , 常に "1" が読み出されます。
bit 3
TMD:
タイムベース
タイマモード
ビット
• タイムベースタイマモードへの移行を指示するビットです。
• メインクロックモード , または PLL クロックモードにおいて , こ
のビットに "0" を書き込むことにより , タイムベースタイマモー
ドに移行します。
• リセットまたは割込み要求発生で "1" にクリアされます。
• このビットを読み出すと , 常に "1" が読み出されます。
bit 2
bit 1
CG1, CG0:
CPU クロック
一時停止サイクル
数選択ビット
• CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設定
するビットです。
• 1 命令ごとに指定サイクル数 CPU クロック供給を停止します。
• 4 種類のクロック数から選択できます。
• リセットで "00B" に初期化されます。
予約 :
予約ビット
このビットには必ず "0" を書き込んでください。
bit 5
bit 0
124
機能
第 8 章 低消費電力モード
■ 低消費電力モード制御レジスタへのアクセス
低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス
リープモード , タイムベースタイマモード ) へ遷移しますが , 低消費電力モードへの遷
移に使用する命令は 表 8.3-2 の命令を使用してください。
表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記
内の命令列
を配置してください。
MOV LPMCR, #H’XX
NOP
NOP
JMP $+3
MOV A, #H’10
; 表 8.3-2 の低消費電力モード遷移命令
; 次の命令へのジャンプ
; 任意の命令
内の命令列以外が配置されると低消費電力解除後の動作は保証されません。
C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「8.7 低消費
電力モード使用上の注意」の「スタンバイモード遷移のための低消費電力モード制御
レジスタ (LPMCR) へアクセスする際の注意事項」を参照してください。
表 8.3-2 の命令以外の命令で低消費電力モードへ遷移した場合には , 動作保証ができま
せん。表 8.3-1 に示す以外の機能を制御する場合には , どの命令を使用してもかまいま
せん。
ワード長で低消費電力モード制御レジスタへ書き込む場合には , 偶数アドレスで書き
込むようにしてください。奇数アドレスで書込みを行うと , 誤動作の原因となる場合が
あります。
■ STP, SLP, TMD ビットの優先順位
ストップモード要求とスリープモード要求およびタイムベースタイマモード要求を同
時に行った場合は , 次の優先順位で要求を処理します。
ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求
<注意事項>
ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して
いるときに , 端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電
力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0"
に設定してください。
以下の端子に適用されます。
P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/
SCK0
125
第 8 章 低消費電力モード
表 8.3-2 低消費電力モードへ遷移する場合に使用する命令一覧
MOV
io,#imm8
MOV
dir,#imm8
MOV
eam,#imm8
MOV
eam,Ri
MOV
io,A
MOV
dir,A
MOV
addr,A
MOV
eam,A
MOV
@RLi+disp8,A
MOVP
addr24,A
MOVW io,#imm16
MOVW
dir,#imm16
MOVW eam,#imm16
MOVW
eam,RWi
MOVW io,A
MOVW
dir,A
MOVW addr16,
MOVW
eam,A
MOVW @RLi+disp8,A
MOVPW addr24,A
SETB
io:bp
SETB
dir:bp
SETB
addr16:bp
CLRB
io:bp
CLRB
dir:bp
CLRB
addr16:bp
126
第 8 章 低消費電力モード
8.4
CPU 間欠動作モード
CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作
させることで , 消費電力を低減するモードです。
■ CPU 間欠動作モード
CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能および外部
バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止
させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック
を供給したまま , CPU の実行速度を下げると , 低消費電力で処理できます。
低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの
一時停止サイクル数を選択します。
外部バス動作そのものは , 周辺機能と同じクロックを使用します。
CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ ,
内蔵周辺機能および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク
ル数をかけた補正値を通常の実行時間に加えることで , 求めることができます。図 8.41 に CPU 間欠動作モード時の動作クロックを示します。
図 8.4-1 CPU 間欠動作時のクロック
周辺クロック
CPU クロック
一時停止サイクル
1 命令実行
サイクル
内部バス起動
127
第 8 章 低消費電力モード
8.5
スタンバイモード
スタンバイモードには , スリープ (PLL スリープ , メインスリープ ), タイムベースタ
イマ , ストップの各モードがあります。
■ スタンバイモードの動作状態
図 8.5-1 に , スタンバイモードの動作状態を示します。
表 8.5-1 スタンバイモードの動作状態
スタンバイモード
スリープ
モード
タイム
ベース
タイマ
モード
ストップ
モード
*
SPL
SLP
STP
TMD
MCS
Hi-Z
移行条件
PLL
スリープモード
MCS=0
SLP=1
メインスリープ
モード
MCS=1
SLP=1
タイムベース
タイマモード
(SPL=0)
TMD=0
メイン
クロック
マシン
クロック
動作
動作
TMD=0
ストップモード
(SPL=0)
STP=1
ストップモード
(SPL=1)
STP=1
周辺
端子
動作
動作
解除方法
保持
停止
動作
タイムベース
タイマモード
(SPL=1)
CPU
リセット
または
割込み
停止 *
Hi-Z
停止
保持
停止
停止
Hi-Z
: タイムベースタイマは動作します。
: 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット
: 低消費電力モード制御レジスタ (LPMCR) のスリープモードビット
: 低消費電力モード制御レジスタ (LPMCR) のストップモードビット
: 低消費電力モード制御レジスタ (LPMCR) のタイムベースタイマモードビット
: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
: ハイインピーダンス
<注意事項>
ストップモード , またはタイムベースタイマモードの周辺機能とポートが端子を共有して
いるときに , 端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電
力モード制御レジスタ (LPMCR) の STP ビットを "1" に設定 , もしくは TMD ビットを "0"
に設定してください。
以下の端子に適用されます。
P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/
SCK0
128
第 8 章 低消費電力モード
8.5.1
スリープモード
スリープモードは , CPU の動作クロックを停止させるモードで , CPU 以外は動作を
続行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を
指示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行
し , メインクロックモードを設定している場合はメインスリープモードへ移行しま
す。
■ スリープモードへの移行
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP
ビットに "0" を書き込むと , スリープモードに移行します。スリープモードに移行する
場合 , クロック選択レジスタ (CKSCR) が MCS=0 であれば PLL スリープモードに ,
MCS=1 であればメインスリープモードに移行します。
<注意事項>
SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー
ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット
を優先し , タイムベースタイマモードに移行します。
● データ保持機能
スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割
込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割
込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込
み処理ルーチンへ分岐します。
● 端子状態
スリープモード中は , すべての端子は ( バス入出力またはバス制御で使用されている端
子以外 ) 直前の状態を保持します。
■ スリープモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを
解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
● 割込みによる復帰
スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す
るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同
129
第 8 章 低消費電力モード
じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ
ベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設定によって , 割込みが
受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられない
場合は , スリープモードを指定した命令の次の命令から処理を続行します。
図 8.5-1 に , 割込み発生によるスリープモードの解除を示します。
図 8.5-1 割込み発生によるスリープモードの解除
周辺機能の割込み
イネーブルフラグ設定
IL<7
スリープ解除しない
INT 発生 ?
(IL<7)
スリープ解除しない
YES
I=0
YES
次の命令実行
スリープ解除する
NO
ILM<IL
YES
次の命令実行
NO
割込み実行
<注意事項>
割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した
後に , 割込み処理に移行します。ただし , スリープモードへの移行と外部バスホールド要
求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあ
ります。
130
第 8 章 低消費電力モード
8.5.2
タイムベースタイマモード
タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作
を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止
します。
■ タイムベースタイマモードへの移行
PLL クロックモード , またはメインクロックモードの場合に , 低消費電力モード制御レ
ジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベースタイマモードに移
行します。
メインタイムベースタイマモードと PLL タイムベースタイマモードとの状態の差に注
意してください。結果としての状態は , CKSCR の MCS ビットにより選択されたクロッ
クに依存します。図 8.6-1 を参照してください。消費電力は PLL タイムベースタイマ
モードで顕著に高くなります。規定値はデータシートを参照してください。
● データ保持機能
タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内
容を保持します。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割
込み要求が発生しているときはタイムベースタイマモードに移行しません。
● 端子状態
タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ
ンス状態にするかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で
きます。
131
第 8 章 低消費電力モード
■ タイムベースタイマモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー
ドを解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
<注意事項>
メインタイムベースタイマモード中に必ず RST 信号を 100 μs 以上入れてください。
● 割込みによる復帰
タイムベースタイマ中に, 周辺回路などから割込みレベルが7より高い割込み要求が発
生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路
はタイムベースタイマモードを解除します。タイムベースタイマモードの解除後は , 通
常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フ
ラグ , インタラプトレベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) の設
定により割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け付け
られない場合は , タイムベースタイマモードに入る前の次の命令から処理を続行しま
す。
<注意事項>
割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令
を実行した後に , 割込み処理に移行します。ただし , タイムベースタイマモードへの移行
と外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処
理に移行することがあります。
割込みによるメインタイムベースタイマモードからの起動は , 最大 40 μs の内部の遅延と
なります。タイムベースタイマモードの周辺機能とポートが端子を共有しているときに ,
端子をハイインピーダンスにするには , 周辺機能の出力を禁止し , 低消費電力モード制御
レジスタ (LPMCR) の TMD ビットを "0" に設定してください。
以下の端子に適用されます。
P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/
SCK0
132
第 8 章 低消費電力モード
8.5.3
ストップモード
ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した
がって , 最も低消費電力でデータを保持できます。
■ ストップモードへの移行
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ
モードに移行します。
● データ保持機能
ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込
み要求が発生しているときはストップモードに移行しません。
● 端子状態の設定
ストップモード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態に
するかを , 低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
■ ストップモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解
除します。動作クロックの発振は , ストップモードからの復帰前に停止するので , 低消
費電力制御回路は , 発振安定待ち状態になり , その後 , ストップモードを解除します。
● リセットによる復帰
リセット要因によるストップモード解除の場合は , ストップモードを解除した上で , 発
振安定待ち状態になります。リセットシーケンスは発振安定待ち時間経過後実行され
ます。
<注意事項>
RST 信号はストップモードで少なくとも 100 μs +発振子の発振時間+ 16 マシンサイク
ルをアサートされる必要があります。データシートの交流規格を参照してください。
● 割込みによる復帰
ストップモード中に , 周辺回路などから割込みレベルが 7 より高い割込み要求が発生す
ると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路はストッ
プモードを解除します。ストップモードの解除後は , クロック選択レジスタ (CKSCR) の
WS1, WS0ビットで指定されたメインクロックの発振安定待ち時間を経過した後で, 通常
の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ
, インタラプトレベルマスクレジスタ (ILM) および割込み制御レジスタ (ICR) を設定して
割込みが受け付けられる場合は割込み処理を実行します。割込みが受け付けられない場
合は , ストップモードに入る前の次の命令から処理を続行します。
133
第 8 章 低消費電力モード
<注意事項>
割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した
後に , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要
求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあ
ります。
図 8.5-2 に , ストップモードからの復帰動作を示します。
図 8.5-2 ストップモードの解除 ( 外部リセット )
RST 端子
ストップモード
メインクロック
PLL クロック
発振中
発振安定待ち
停止中
発振中
停止中
CPU クロック
メインクロック
CPU 動作
停止中
リセットシーケンス
処理
リセット解除
ストップモード解除
<注意事項>
• ストップモードの周辺機能やポートによって端子が共用されるとき , 端子をハイイン
ピーダンスに設定するには , 周辺機能の出力を禁止し , 低消費電力モード制御レジスタ
(LPMCR) の STP ビットを "1" に設定してください。
これは以下の端子に適用します。
P06/OUT0, P07/OUT1, P10/OUT2, P11/OUT3, P15/TOT0, P20/TX1, P34/SOT0, P35/
SCK0
• PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLLストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の
長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間は
214/HCLK以上必要になりますので, CKSCR:WS1, WS0ビットには, "10B"または"11B"
を設定してください。
134
第 8 章 低消費電力モード
8.6
状態遷移図
図 8.6-1 に , MB90945 シリーズの動作状態の遷移図と , 遷移条件を示します。
■ 状態遷移図
図 8.6-1 状態遷移図
外部リセット ,
ウォッチドッグタイマリセット ,
ソフトウェアリセット
電源投入
リセット
パワーオンリセット
発振安定待ち時間終了
MCS=0
PLL クロック
モード
メインクロック
モード
MCS=1
SLP=1
割込み
SLP=1
メインスリープ
モード
TMD=0
割込み
PLL スリープモード
TMD=0
メイン
タイムベースタイマ
モード
STP=1
メインストップ
モード
メインクロック
発振安定待ち
割込み
PLL タイムベース
タイマモード
STP=1
割込み
割込み
PLL ストップモード
発振安定
待ち時間終了
割込み
発振安定
待ち時間終了
PLL クロック
発振安定待ち
135
第 8 章 低消費電力モード
■ 低消費電力モードの動作状態
表 8.6-1 に , 低消費電力モードの動作状態を示します。
表 8.6-1 低消費電力モードの動作状態
動作状態
メイン
クロック
PLL
クロック
PLL
CPU
周辺
タイムベース
タイマ
クロック
ソース
動作
動作
PLL スリープ
動作
動作
動作
PLL
クロック
タイムベースタイマ *1
停止
PLL ストップ
停止
停止
PLL 発振安定待ち
動作
動作
メイン
停止
停止
動作
動作
動作
メインスリープ
動作
タイムベースタイマ *2
動作
メイン
クロック
停止
停止
メインストップ
停止
メイン発振安定待ち
動作
パワーオンリセット
停止
動作
停止
動作
リセット
停止
停止
動作
停止
動作 *3
メイン
クロック
*1: PLL クロックモード時
*2: メインクロックモード時
*3: リセットフェーズ中では , クロックとほぼ同じ速度でタイムベースタイマを駆動できます ( パワー
オン直後は別 )。
リセットフェーズの終わりで , タイマ値は初期値にリセットされます。
136
第 8 章 低消費電力モード
8.7
低消費電力モード使用上の注意
低消費電力モードを使用する場合には , 次の 7 つの内容に関して注意が必要です。
• スタンバイモードへの移行と割込み
• スタンバイモード移行時の注意について
• スタンバイモードの割込みによる解除
• ストップモード解除時
• 発振安定待ち時間
• クロックモードの切換え
• スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアク
セスする際の注意事項
■ スタンバイモードへの移行と割込み
周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ
スタ (LPMCR:STP=1, SLP=1) または , (LPMCR:TMD=0) としても無視されるため , 各ス
タンバイモードへは移行しません (割込み処理後にも, スタンバイモードへの移行はし
ません ) 。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付け
られるかどうかには関係しません。
また , CPU が割込み処理中であっても , その割込み要求フラグビットがクリアされてお
り , 他に割込み要求がなければ , スタンバイモードへ移行できます。
■ スタンバイモード移行時の注意について
ストップモードもしくは , タイムベースタイマモードの周辺機能とポートが端子を共
有しているときに , 端子をハイインピーダンスにするには , 以下の項目を実行してくだ
さい。
1. 周辺機能の出力を禁止する
2. 低消費電力モード制御レジスタ (LPMCR) では , SPL ビットを "1" もしくは , STP ビッ
トを "1" もしくは , TMD ビットを "0" に設定する。
■ スタンバイモードの割込みによる解除
スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ
ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは
CPU が割込みを受け付けるかどうかには関係しません。
スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ
ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ
(ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1)
されている場合は , 割込み処理ルーチンへ分岐します。
割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から
動作を再開します。
割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実
行した後に , 割込み処理に移行します。
ただし , スタンバイモードに移行した場合の条件によっては , 次の命令を実行する前に
割込み処理に移行することがあります。
137
第 8 章 低消費電力モード
<注意事項>
復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に割
込み禁止をするなどの対策が必要です。
■ ストップモード解除時
ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により ,
解除できます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立下りエッジ
が選択できます。
■ 発振安定待ち時間
● 発振クロック発振安定待ち時間
ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間をとる
必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の WS1,
WS0 ビットで選択された時間をとります。WS1, WS0 ビットに "00B" を設定するのは ,
メインクロックモードの場合のみにしてください。
● PLL クロック発振安定待ち時間
メインクロックモード中は , PLL 逓倍回路が停止しているため , PLL クロックモードに
移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。
PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLLストップモードから復帰する場合は, メインクロック発振安定待ち時間およびPLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットは , 発振安定待ち時間の
長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間は
214/HCLK 以上必要になりますので , CKSCR:WS1, WS0 ビットには , "10B" または "11B"
を設定してください。
■ クロックモードの切換え
クロックモードを切り換えた場合 , 切換えが完了するまでは低消費電力モードへの切
換えおよび他のクロックモードへの切換えを行わないようにしてください。切換えの
完了はクロック選択レジスタ (CKSCR) の MCM ビットを参照して確認してください。
切換えが完了する前に , 他のクロックモードおよび低消費電力モードへの切換えを
行った場合 , 切り換わらない場合があります。
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へ
アクセスする際の注意事項
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 表 8.3-2 の命令を使用してください。
138
第 8 章 低消費電力モード
表 8.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記
内の命令列
を配置してください。
MOV LPMCR, #H’XX
NOP
NOP
; 表 8.3-2 の低消費電力モード遷移命令
JMP $+3
; 次の命令へのジャンプ
MOV A, #H’10
; 任意の命令
内の命令列以外が配置されると低消費電力モード解除後の動作は保証されませ
ん。
● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 以下の 1 から 3 のいずれかの方法でアクセスしてください。
1. スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後に
__wait_nop() のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ復帰
の割込み以外の割込みが発生する可能性がある場合は , コンパイル時に最適化を実
施し , LINK/UNLINK 命令の発生を抑止してください。
例 ( タイムベースタイマモード遷移関数の場合 )
void enter_timebase(){
IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに 0 をセット */
__wait_nop();
__wait_nop();
}
2. スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命
令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( スリープモード遷移の場合 )
__asm("
__asm("
__asm("
MOV I:_IO_LPMCR, #H’58");
NOP");
NOP");
__asm("
JMP $+3");
/* LPMCR のSLPビットに1 をセット */
/* 次の命令へのジャンプ
*
3. スタンバイモードに遷移させる命令を #pragma asm ~ #pragma endasm 間に記述し ,
スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( ストップモード遷移の場合 )
#pragma asm
MOV I:_IO_LPMCR, #H’98
NOP
NOP
JMP $+3
#pragma endasm
/* LPMCR の STP ビットに 1 をセット */
/* 次の命令へのジャンプ
*/
139
第 8 章 低消費電力モード
140
第9章
メモリアクセスモード
メモリアクセスモードの機能と動作について示し
ます。
9.1 メモリアクセスモードの概要
9.2 モード端子
9.3 モードデータ
141
第 9 章 メモリアクセスモード
9.1
メモリアクセスモードの概要
F2MC-16LX では , アクセス方式 , アクセス領域のそれぞれについて , 次の 2 種類の
メモリアクセスモードがあります。
• 動作モード
• バスモード
■ メモリアクセスモード
動作モード
バスモード
シングルチップ
RUN
フラッシュプログラミング
MB90945 シリーズについては , 外部バス機能はサポートされていません。このため , 本
マニュアルの下記の記述は完全にはサポートされていません。お客様がご使用の際に
は , MB90945 シリーズをシングルチップモードで使用してください。
MB90945 シリーズをシングルチップモードに設定するには , モード入力 (MD2 ~ MD0)
を"011B"にし, モードデータの最上位2ビット(M1, M0)を"00B"にする必要があります。
● 動作モード
動作モードとは , デバイスの動作状態を制御するモードを示すもので , モード設定用端
子 (MD2 ~ MD0) とモードデータ内の M1 ビット , M0 ビットで指定します。
● バスモード
バスモードとは , 内部 ROM の動作と外部アクセス機能の動作を制御するモードを示す
もので , モード設定用端子 (MD2 ~ MD0) とモードデータ内の M1 ビット , M0 ビット
の内容で指定します。モード設定用端子 (MD2 ~ MD0) は , リセットベクタおよびモー
ドデータを読み出すときのバスモードを指定するもので , モードデータ内の M1 ビット ,
M0 ビットは , 通常動作時のバスモードを指定するものです。
142
第 9 章 メモリアクセスモード
9.2
モード端子
表 9.2-1 に MD2 ~ MD0 の 3 本の外部端子の組合せによる動作を示します。
■ モード端子
表 9.2-1 モード端子と設定モードの関係
モード端子設定
モード名
リセット
ベクタ
アクセス領域
外部データ
バス幅
備考
MD2
MD1
MD0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
フラッシュメモリ
シリアル
書込み *1, *2
―
―
―
1
1
1
フラッシュメモリ
モード *2
―
―
パラレルライタ使
用時のモード
( 設定禁止 ) 予約
内部ベクタモード
内部
( モード
データ )
リセットシーケン
ス以降はモード
データで制御
( 設定禁止 ) 予約
*1: フラッシュメモリのシリアル書込みは , モード端子の設定だけでは書込みができません。ほかの
端子設定も必要です。
詳細は「第 26 章 MB90F947 同期シリアル書込み接続例」を参照してください。
*2: MB90V390HA/HB および MB90947A は設定禁止
143
第 9 章 メモリアクセスモード
9.3
モードデータ
主記憶 FFFFDFH に置く , CPU の動作制御用のデータです。リセットシーケンス実
行中にこのデータを取り込み , デバイス内部のモードレジスタに格納します。モー
ドレジスタの内容を変更できるのはリセットシーケンスだけです。
本レジスタによる設定はリセットシーケンス以降に有効となります。
予約ビットは , 必ず "0" を設定してください。
■ モードデータ
図 9.3-1 に , ビットの設定を示します。
図 9.3-1 モードデータ構成
モードデータ
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
M1
M0
0
0
0
0
0
0
機能拡張ビット ( 予約領域 )
バスモード設定ビット
■ バスモード設定ビット
リセットシーケンス終了後の動作モードの指定を行うビットです。表 9.3-1 に , ビット
と機能の関係を示します。
表 9.3-1 バスモード設定ビットと機能
M1
M0
0
0
0
1
1
0
1
1
機能
シングルチップモード
( 設定禁止 )
図 9.3-2 に , 各バスモードのアクセス領域と物理アドレスの対応関係を示します。
144
第 9 章 メモリアクセスモード
図 9.3-2 各バスモードのアクセス領域と物理アドレス
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
FCFFFFH
FC0000H
FBFFFFH
FB0000H
FAFFFFH
FA0000H
F9FFFFH
ROM (FF バンク )
ROM (FE バンク )
ROM (FD バンク )
ROM (FC バンク )
ROM (FB バンク )
ROM (FA バンク )
ROM (F9 バンク )
F90000H
00FFFFH
008000H
0050FFH
004100H
003FFFH
ROM
(FF バンクのイメージ )
RAM 4K バイト
周辺
003500H
0030FFH
RAM 12K バイト
000100H
0000BFH
000000H
: アクセス禁止
周辺
: 内部アクセス
<注意事項>
異なるアクセス領域を証明している例です。特殊なデバイスは , このマップと異なること
があります。データシートまたは「2.3 メモリ空間マップ」を参照してください。
145
第 9 章 メモリアクセスモード
■ 推奨設定例
表 9.3-2 に , モード端子とモードデータの推奨設定例を示します。
表 9.3-2 モード端子とモードデータの推奨設定例
設定例
MD2
MD1
MD0
M1
M0
シングルチップ
0
1
1
0
0
<注意事項>
フラッシュ品については , ハードワイヤードロジックによりモードデータにあらかじめ決
められた値が設定されています。詳細については , 「25.9 フラッシュメモリにおけるリ
セットベクタアドレス」を参照してください。
146
第 10 章
I/O ポート
I/O ポートの機能と動作について説明します。
10.1 I/O ポート
10.2 I/O ポートのレジスタ
147
第 10 章 I/O ポート
10.1
I/O ポート
それぞれのポートの各端子は , 対応する周辺が端子を用いない設定となっていると
き , 1 本ごとに方向レジスタを設定することにより , 入力 , 出力の指定ができます。
入力端子として指定した場合 , 端子の論理レベルが読み出され , 出力端子として指定
した場合 , データレジスタ値が読み出されます。これは , リードモディファイライト
のリード操作にも適用されます。
■ I/O ポート
端子を他の周辺機能の出力として使用している場合 , 方向レジスタ値に関係なく , 周辺
出力値が読み出されます。
一般的には , ポートを出力に設定する前に , データレジスタの設定にリードモディファ
イライト系の命令を使用しないことが推奨されます。それは , リードモディファイライ
ト系の命令によってレジスタ値ではなくポートの論理レベルが読み出されるからで
す。
図 10.1-1 に , I/O ポートのブロックダイヤグラムを示します。
図 10.1-1 I/O ポートのブロックダイヤグラム
内部データバス
データレジスタリード
データレジスタ
データレジスタライト
方向レジスタ
方向レジスタライト
方向レジスタリード
148
端子
第 10 章 I/O ポート
10.2
I/O ポートのレジスタ
I/O ポートのレジスタには , 次の 4 種類があります。
• ポートデータレジスタ (PDR0 ~ PDRB)
• ポート方向レジスタ (DDR0 ~ DDRB)
• ポートアナログ入力許可レジスタ (ADER0, ADER1)
• 入力レベル選択レジスタ (ILSR)
■ I/O ポートのレジスタ
図 10.2-1 に , I/O ポートのレジスタを示します。
図 10.2-1 I/O ポートのレジスタ
アドレス
: 000000H
: 000001H
: 000002H
: 000003H
: 000004H
: 000005H
: 000006H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
P07
P17
P27
P37
P47
P57
P67
P06
P16
P26
P36
P46
P56
P66
P05
P15
P25
P35
P45
P55
P65
P04
P14
P24
P34
P44
P54
P64
P03
P13
P23
P33
P43
P53
P63
P02
P12
P22
P32
P42
P52
P62
P01
P11
P21
P31
P41
P51
P61
P00
P10
P20
P30
P40
P50
P60
ポート 0 データレジスタ (PDR0)
ポート 1 データレジスタ (PDR1)
ポート 2 データレジスタ (PDR2)
ポート 3 データレジスタ (PDR3)
ポート 4 データレジスタ (PDR4)
ポート 5 データレジスタ (PDR5)
ポート 6 データレジスタ (PDR6)
: 000008H
: 000009H
: 00000AH
: 00000BH
P87
P97
PA7
PB7
P86
P96
PA6
PB6
P85
P95
PA5
PB5
P84
P94
PA4
PB4
P83
P93
PA3
PB3
P82
P92
PA2
PB2
P81
P91
PA1
PB1
P80
P90
PA0
PB0
ポート 8 データレジスタ (PDR8)
ポート 9 データレジスタ (PDR9)
ポート A データレジスタ (PDRA)
ポート B データレジスタ (PDRB)
: 000010H
: 000011H
: 000012H
: 000013H
: 000014H
: 000015H
: 000016H
D07
D17
D27
D37
D47
D57
D67
D06
D16
D26
D36
D46
D56
D66
D05
D15
D25
D35
D45
D55
D65
D04
D14
D24
D34
D44
D54
D64
D03
D13
D23
D33
D43
D53
D63
D02
D12
D22
D32
D42
D52
D62
D01
D11
D21
D31
D41
D51
D61
D00
D10
D20
D30
D40
D50
D60
ポート 0 方向レジスタ (DDR0)
ポート 1 方向レジスタ (DDR1)
ポート 2 方向レジスタ (DDR2)
ポート 3 方向レジスタ (DDR3)
ポート 4 方向レジスタ (DDR4)
ポート 5 方向レジスタ (DDR5)
ポート 6 方向レジスタ (DDR6)
: 000018H
: 000019H
: 00001AH
: 00001BH
-
D97
DA7
DB7
-
D96
DA6
DB6
-
D95
DA5
DB5
-
D94
DA4
DB4
-
D93
DA3
DB3
-
D92
DA2
DB2
D81
D91
DA1
DB1
D80
D90
DA0
DB0
ポート 8 方向レジスタ (DDR8)
ポート 9 方向レジスタ (DDR9)
ポート A 方向レジスタ (DDRA)
ポート B 方向レジスタ (DDRB)
9/1
8/0
アドレス bit15/7 14/6 13/5 12/4 11/3 10/2
: 00000CH ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0
: 00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8
: 00000EH
IL7
IL6
IL5
IL4
IL3
IL2
IL1
IL0
: 00000FH ILSPB ILI2C ILRX0 ILRX1 ILB
ILA
IL9
IL8
ポート 6 アナログ入力許可レジスタ (ADER0)
ポート B アナログ入力許可レジスタ (ADER1)
入力レベル選択レジスタ (ILSR)
入力レベル選択レジスタ (ILSR)
149
第 10 章 I/O ポート
10.2.1
ポートデータレジスタ
(PDR0 ~ PDR6, PDR8 ~ PDRB)
I/O ポートの R/W は , メモリへの R/W とは多少動作が異なりますので注意してくだ
さい。
[ 入力モード ]
読出し時 : 対応する端子のレベルが読み出されます。
書込み時 : 出力用のラッチに書き込まれます。
[ 出力モード ]
読出し時 : データレジスタラッチの値が読み出されます。
書込み時 : 出力ラッチに書き込まれ , 対応する端子に出力されます。
■ ポートデータレジスタ
図 10.2-2 に , ポートデータレジスタを示します。
図 10.2-2 ポートデータレジスタ
PDR0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
アドレス : 000000H
P07
P06
P05
P04
P03
P02
P01
P00
不定
アクセス
R/W
PDR1
bit7
P17
bit6
P16
bit5
P15
bit4
P14
bit3
P13
bit2
P12
bit1
P11
bit0
P10
不定
R/W
アドレス : 000001H
PDR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000002H
P27
P26
P25
P24
P23
P22
P21
P20
不定
R/W
PDR3
bit7
P37
bit6
P36
bit5
P35
bit4
P34
bit3
P33
bit2
P32
bit1
P31
bit0
P30
不定
R/W
アドレス : 000003H
PDR4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000004H
P47
P46
P45
P44
P43
P42
P41
P40
不定
R/W
PDR5
bit7
P57
bit6
P56
bit5
P55
bit4
P54
bit3
P53
bit2
P52
bit1
P51
bit0
P50
不定
R/W
アドレス : 000005H
PDR6
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000006H
P67
P66
P65
P64
P63
P62
P61
P60
不定
R/W
PDR8
bit7
bit6
bit5
bit4
bit3
bit2
-
-
-
-
-
-
bit1
P81
bit0
P80
不定
R/W
アドレス : 000008H
PDR9
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000009H
P97
P96
P95
P99
P93
P92
P91
P90
不定
R/W
PDRA
bit7
PA7
bit6
PA6
bit5
PAA
bit4
PA4
bit3
PA3
bit2
PA2
bit1
PA1
bit0
PA0
不定
R/W
不定
R/W
アドレス : 00000AH
PDRB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 00000BH
PB7
PBB
PB5
PB4
PB3
PB2
PB1
PB0
150
第 10 章 I/O ポート
<注意事項>
PDR8 の bit7 ~ bit2 は予約されています。常に "0" を書き込んでください。読出し時には ,
"X" が読み出されます。これらのビットは MB90V390HA/HB で物理的に存在しますが ,
MB90945 シリーズ以外のデバイスでは存在しません。
■ ポートデータレジスタの読出し
ポートデータレジスタを読み出したときに得られる値は , データ方向レジスタの対応
するビットと ( 適切ならば ) 同じ端子に接続されているリソースの状態によります。
可能なケースは以下のとおりです :
DDR 値
リソース
リード値
0( 入力 )
可能
リソースの値
1( 出力 )
可能
リソースの値
0( 入力 )
不可
端子の値
1( 出力 )
不可
PDR の値
151
第 10 章 I/O ポート
10.2.2
ポート方向レジスタ
(DDR0 ~ DDR6, DDR8 ~ DDRB)
ポート方向レジスタは , 各端子がポートとして使用しているときは , 対応する各端子
を以下のように制御します。
0: 入力モード
1: 出力モード
■ ポート方向レジスタ
図 10.2-3 に , ポート方向レジスタを示します。
図 10.2-3 ポート方向レジスタ
DDR0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000010H
D07
D06
D05
D04
D03
D02
D01
D00
DDR1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000011H
D17
D16
D15
D14
D13
D12
D11
D10
DDR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000012H
D27
D26
D25
D24
D23
D22
D21
D20
DDR3
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000013H
D37
D36
D35
D34
D33
D32
D31
D30
初期値
アクセス
00000000B
R/W
00000000B
R/W
00000000B
R/W
00000000B
R/W
DDR4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000014H
D47
D46
D45
D44
D43
D42
D41
D40
00000000B
R/W
DDR5
bit7
D57
bit6
D56
bit5
D55
bit4
D54
bit3
D53
bit2
D52
bit1
D51
bit0
D50
00000000B
R/W
アドレス : 000015H
DDR6
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000016H
D67
D66
D65
D64
D63
D62
D61
D60
00000000B
R/W
DDR8
bit7
bit6
bit5
bit4
bit3
bit2
-
-
-
-
-
-
bit1
D81
bit0
D80
00000000B
R/W
アドレス : 000018H
DDR9
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 000019H
D97
D96
D95
D99
D93
D92
D91
D90
00000000B
R/W
DDRA
アドレス : 00001AH
bit7
DA7
bit6
DA6
bit5
DAA
bit4
DA4
bit3
DA3
bit2
DA2
bit1
DA1
bit0
DA0
00000000B
R/W
DDRB
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス : 00001BH
DB7
DBB
DB5
DB4
DB3
DB2
DB1
DB0
00000000B
R/W
<注意事項>
PDR8 の bit7 ~ bit2 は予約されています。常に "0" を書き込んでください。読出し時には ,
"X" が読み出されます。これらのビットは MB90V390HA/HB で物理的に存在しますが ,
MB90945 シリーズ以外のデバイスでは存在しません。
152
第 10 章 I/O ポート
■ ポート方向レジスタの読出し
ポート方向レジスタは , 一致するリソースの状態から独立して読出しが可能です。しか
し , DDR 値はポートデータレジスタのリードアクセスの結果に影響を与えます。
153
第 10 章 I/O ポート
10.2.3
アナログ入力許可レジスタ (ADER0, ADER1)
アナログ入力許可レジスタは , ポート 6 とポート B の各端子を以下のように制御し
ます。
0: ポート入出力モード
1: アナログ入力モード
外部端子を A/D コンバータのアナログ入力として使用している場合 , 対応するビッ
トを "1" に設定する必要があります。
■ アナログ入力許可レジスタ
図 10.2-4 に , アナログ入力許可レジスタを示します。
図 10.2-4 アナログ入力許可レジスタ (ADER1/ADER0)
ADER1/ADER0
アドレス
00000DH
アドレス
00000CH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit8
ADE8
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE7
R/W
ADE6
R/W
ADE5
R/W
ADE4
R/W
ADE3
R/W
ADE2
R/W
ADE1
R/W
ADE0
R/W
初期値
01111111
初期値
11111111
R/W :リード / ライト可能
<注意事項>
bit15 (ADSEL) が "0" に設定されると , 端子 AN 0 ~ AN 7 ( ポート P60 ~ P67) は A/D コ
ンバータ用入力として選択されます。このビットが "1" に設定されると , 端子 AN 8 ~ AN14
( ポート PB0 ~ PB6) は , A/D コンバータ用入力として選択されます。
154
第 10 章 I/O ポート
10.2.4
入力レベル選択レジスタ (MB90V390HA/HB のみ )
MB90V390HA/HB では , 入力レベル選択レジスタ (ILSR) はオートモーティブヒステ
リシス入力レベルから CMOS ヒステリシス入力レベルの切換えを許可します。
評価用品以外の MB90945 シリーズ ( のデバイス ) では , 入力レベルはハードワイ
ヤードであり , ILSR レジスタは存在しません。MB90V390HA/HB に他の MB90945
シリーズのデバイスと同じ入力レベル構成を設定するためには ILSR に "5000H" の
値を必ず書き込んでください。評価用品以外の MB90945 シリーズのデバイスでは ,
ILSR レジスタアドレスへの書込みは意味を持ちません。
■ 入力レベル選択レジスタ (MB90V390HA/HB のみ )
MB90V390HA/HB では , 入力レベル選択レジスタ (ILSR) は 0EH と 0FH に配置されます。
図 10.2-5 入力選択レジスタ (ILSR)
ILSR
アドレス
00000FH
アドレス
00000EH
bit15
bit14
ILSPB
R/W
ILI2C
R/W
bit13
bit7
bit6
bit5
IL7
R/W
IL6
R/W
IL5
R/W
bit12
bit11
bit10
bit9
bit8
ILB
R/W
ILA
R/W
IL9
R/W
IL8
R/W
bit4
bit3
bit2
bit1
bit0
IL4
R/W
IL3
R/W
IL2
R/W
IL1
R/W
IL0
R/W
ILRX0 ILRX1
R/W
R/W
初期値
00000000
初期値
00000000
R/W :リード / ライト可能
【bit15】ILSPB
ILSPB ビットが "0" に設定されている場合 , P44 の入力レベルは IL4(ILSR の bit4) に
より選択されます。ILSPB ビットが "1" に設定されている場合 , P44 の入力レベルは
IL4 ビットにより選択されたレベルの反転となります。初期値は "0" です。
このレジスタの初期値は "0000H" です。このため , MB90V390HA/HB では , リセッ
ト後 , すべてのポートに対する入力レベルが " オートモーティブヒステリシス " に
なります。MB90V390HA/HB に他の MB90945 シリーズのデバイスと同じ入力レベ
ル構成を設定するためには , ILSR に必ず "5000H" の値を書き込んでください。
【bit14】ILI2C
ILI2C ビットが "0" に設定されている場合 , P42/SDA および P43/SCL の入力レベルは
IL4(ILSR の bit4) により選択されます。ILI2C ビットが "1" に設定されている場合 ,
P42/SDA および P43/SCL の入力レベルは IL4 ビットにより選択されたレベルの反転
となります。初期値は "0" です。
【bit13】ILRX0
ILRX0 ビットが "0" に設定されている場合 , P30/RX0 の入力レベルは IL3(ILSR の bit3)
により選択されます。ILRX0 ビットが "1" に設定されている場合 , P30/RX0 の入力レ
ベルは IL3 ビットにより選択されたレベルの反転となります。初期値は "0" です。
155
第 10 章 I/O ポート
【bit12】ILRX1
ILRX1 ビットが "0" に設定されている場合 , P21/RX1 の入力レベルは IL2(ILSR の
bit2) によって選択されます。ILRX1 ビットが "1" に設定されている場合 , P21/RX1
の入力レベルは IL2 ビットにより選択されたレベルの反転となります。初期値は "0"
です。
【bit11 ~ bit0】IL0 ~ ILB
これらのビットは対応するポートの入力レベルを設定します。IL0 はポート 0 の入
力レベルを , ILB はポート B の入力レベルを設定します。これらのビットに "0" を
設定すると " オートモーティブヒステリシス " 入力レベルが選択され , "1" を設定す
ると "CMOS ヒステリシス " 入力レベルが選択されます。初期値は "0" です。
156
第 11 章
タイムベースタイマ
タイムベースタイマの機能と動作について説明し
ます。
11.1 タイムベースタイマの概要
11.2 タイムベースタイマ制御レジスタ
11.3 タイムベースタイマの動作
157
第 11 章 タイムベースタイマ
11.1
タイムベースタイマの概要
タイムベースタイマは , システムクロックを分周する 18 ビットのタイムベースカウ
ンタと制御レジスタにより構成されます。タイムベースタイマは , タイムベースカ
ウンタの桁上り信号により指定したインターバルで割込みを発生します。
■ タイムベースタイマの概要
パワーオン時 , タイムベースカウンタは , ストップモードを設定するか , またはソフト
ウェア (TBR ビットへの "0" の書込み ) によりすべてゼロにクリアされます。原発振が
入力されている間 , タイムベースカウンタはインクリメントされます。
タイムベースカウンタは , ウォッチドッグタイマのクロック供給 , 発振安定待ち時間の
ためのタイマとして使用できます。
■ タイムベースタイマのブロックダイヤグラム
図 11.1-1 に , タイムベースタイマのブロックダイヤグラムを示します。
図 11.1-1 タイムベースタイマのブロックダイヤグラム
WTE
出力許可
WT1
WT0
リセット
コント
ロール
2 ビット
カウンタ
セレクタ
タイムベースカウンタ
f/2
パワーオン
リセット
STOP モード
1
1
1
1
1
1
1
1
2
11
12
13
14
15
16
17
2
2
2
2
TBOF
セレクタ
WS0
158
TBOF
クリア
TBC1
WS1
2
2
218
クリア
コントロール
TBR
TBC0
2
1
1/210 ~ 1/217
セレクタ
EI 2OS
タイムベース分周出力
発振安定待ち完了信号
IRQ
リセット
第 11 章 タイムベースタイマ
11.2
タイムベースタイマ制御レジスタ
タイムベースタイマ制御レジスタはタイムベースタイマの割込みの制御を行い , タ
イムベースカウンタをクリアできます。
■ タイムベースタイマ制御レジスタ (TBTC)
図 11.2-1 タイムベースタイマ制御レジスタ (TBTC) の構成
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9
0000A9 H
初期値
bit8
予約
-
-
R/W
-
- R/W R/W W R/W R/W
1XX00100B
TBIE TBOF TBR TBC1 TBC0
bit9
bit8
TBC1
TBC0
0
0
0
1
1
0
1
1
タイムベースタイマインターバル制御
1.024 ms (4MHz 時 )
4.096 ms (4MHz 時 )
16.384 ms (4MHz 時 )
131.072 ms (4MHz 時 )
bit10
タイムベースタイマリセット
TBR
読出し時
0
常に "1"
1
書込み時
全ビットを "0" にクリア
効果なし
bit11
TBOF
0
1
タイムベースタイマ割込み要求フラグ
読出し時
書込み時
割込みなし
このビットをクリア
割込み要求
効果なし
bit12
TBIE
0
1
タイムベースタイマ割込み許可
割込み禁止
割込み許可
bit13
-
未定義
-
bit14
-
未定義
-
bit15
予約
R/W
: リード / ライト可能
0
1
W
: ライトオンリ ( リードは常に "0")
X
: 不定
-
: 未定義
予約
-
このビットには常に "1" を書き込む
: 初期値
159
第 11 章 タイムベースタイマ
表 11.2-1 タイムベースタイマ制御レジスタの各ビット機能説明
ビット名
bit15
機能
予約済ビットです。TBTC レジスタにデータを書き込むときは , 必
ず "1" を書き込んでください。
予約
bit14
未定義
-
bit13
未定義
-
bit12
TBIE:
タイムベース
タイマ割込み
許可
タイムベースタイマによるインターバル割込みを許可するビット
です。"1" のとき割込み許可 , "0" のとき割込みを禁止します。リ
セットにより "0" に初期化します。読み書き可能なビットです。
bit11
TBOF:
タイムベース
タイマ割込み
要求フラグ
タイムベースタイマの割込み要求フラグです。TBIE ビットが "1"
のとき TBOF が , "1" になると割込み要求を発生します。TBC1,
TBC0 ビットで設定されたインターバルごとに "1" にセットされま
す。"0" の書込み , ストップモードへの遷移およびリセットにより
クリアされます。"1" の書込みは , 意味がありません。
リードモディファイライト系命令における読出し時には "1" が読
めます。
bit10
TBR:
タイムベース
タイマリセット
タイムベースカウンタを全ビット "0" にクリアするビットです。
"0" を書き込むことによりタイムベースカウンタをクリアします。
"1" の書込みは意味がありません。
読出し時は "1" が読めます。
TBC1, TBC0:
タイムベース
タイマ
インターバル
制御
タイムベースタイマのインターバルを設定するビットです。
表 11.2-2 を参照してください。
bit9,
bit8
表 11.2-2 に TBC1 と TBC0 の設定を示します。
表 11.2-2 タイムベースタイマインターバルの選択
160
TBC1
TBC0
原発振 4MHz 時のインターバル時間
0
0
1.024 ms
0
1
4.096 ms
1
0
16.384 ms
1
1
131.072 ms
第 11 章 タイムベースタイマ
11.3
タイムベースタイマの動作
タイムベースタイマには , ウォッチドッグタイマのクロックソース , 発振安定待ち時
間のためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり
ます。
■ タイムベースカウンタ
タイムベースカウンタは , 原発振入力を 2 分周して発生させたクロック用の 18 ビット
のカウンタにより構成されます。このクロックは , マシンクロックを発生するのに使用
されます。原発振が入力されている間 , タイムベースカウンタはカウント動作を続けま
す。タイムベースカウンタのクリアは , パワーオンリセット , ストップモードへの遷移
または TBTC レジスタ中の TBR ビットへの "0" の書込みにより行われます。
■ インターバル割込み機能
タイムベースカウンタの桁上がり信号により一定周期で割込みを発生します。TBTC レ
ジスタ中の TBC1, TBC0 ビットで設定されるインターバル時間ごとに TBOF フラグを
セットします。このフラグの書込みは , 最後にタイムベースタイマがクリアされた時間
を基準にして行われます。
ストップモードに遷移すると , タイムベースタイマは復帰時の発振安定待ち時間のタ
イマとして使用されるので , TBOF フラグはモード遷移と同時にクリアされます。
161
第 11 章 タイムベースタイマ
162
第 12 章
ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明
します。
12.1 ウォッチドッグタイマの概要
12.2 ウォッチドッグタイマの動作
163
第 12 章 ウォッチドッグタイマ
12.1
ウォッチドッグタイマの概要
ウォッチドッグタイマは , 18 ビットのタイムベースカウンタの桁上がり信号をク
ロックソースとする 2 ビットのウォッチドッグカウンタ , 制御レジスタ , ウォッチ
ドッグリセット制御部により構成されています。
■ ウォッチドッグタイマのブロックダイヤグラム
図 12.1-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。
図 12.1-1 ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマ制御レジスタ (WDTC)
PONR
WRST ERST SRST WTE WT1 WT0
ウォッチドッグタイマ
2
起動
リセット発生
スリープモード
タイムベースタイマモード
ストップモード
カウント
クロック
セレクタ
カウンタ
クリア
制御回路
終了
リセット発生
ウォッチドッグ
リセット
発生回路
2ビット
カウンタ
内部リセット
発生回路
クリア
4
(タイムベースタイマカウンタ)
メインクロック
(HCLK の2分周)
HCLK : 発振クロック
164
21
22
28
29
210
211 212
213
214
215
216
217 218
第 12 章 ウォッチドッグタイマ
■ ウォッチドッグタイマ制御レジスタ (WDTC)
WDTC
bit7
アドレス : 0000A8H PONR
R
R
W
bit6
-
-
bit5
bit4
bit3
WRST ERST
R
R
SRST
R
bit2
bit1
WTE
W
WT1
W
bit0
初期値 .
WT0
W
XXXXX111B
:リードオンリ
:ライトオンリ
【bit7, bit5 ~ bit3】PONR, WRST, ERST, SRST
リセットの要因を示すフラグです。各種リセット要因が発生すると , 本ビットは表
12.1-1 のように設定されます。
これらのビットはすべて WDTC のリード動作後に "0" にクリアされます。読出し専用
のビットです。
表 12.1-1 リセット要因レジスタ
PONR
WRST
ERST
SRST
パワーオン
1
⎯
⎯
⎯
ウォッチドッグタイマ
*
1
*
*
外部端子
*
*
1
*
RST ビット
*
*
*
1
リセット要因
*: 前の値の保持を示します。
【bit2】WTE
ウォッチドッグタイマが停止状態のときに本ビットに "0" を書き込むことにより ,
ウォッチドッグタイマを動作状態にします。また , "0" の書込みはウォッチドッグカウ
ンタをクリアします。"1" の書込みは何の操作もしません。
ウォッチドッグタイマは , パワーオン , ウォッチドッグタイマによるリセットにより停
止状態となります。読出し時は "1" が読み出されます。
【bit1, bit0】WT1, WT0
ウォッチドッグタイマのインターバル時間を選択するビットです。ウォッチドッグタ
イマ起動時に書き込まれたデータのみが有効です。ウォッチドッグタイマ起動時以外
の書込みデータは無視します。
表 12.1-2 に , インターバル時間の設定を示します。
これらのビットは書込み可能なビットです。
165
第 12 章 ウォッチドッグタイマ
表 12.1-2 ウォッチドッグタイマインターバル選択ビット
WT1
WT0
インターバル時間 *
最小
最大
メインクロック
サイクルカウント
0
0
約 3.58ms
約 4.61ms
214 ± 211 サイクル
0
1
約 14.33ms
約 18.43ms
216 ± 213 サイクル
1
0
約 57.23ms
約 73.73ms
218 ± 215 サイクル
1
1
約 458.7ms
約 589.82ms
221 ± 218 サイクル
*: 原発振 4MHz
<注意事項>
インターバル時間は , カウントクロックとしてタイムベースタイマ , またはクロックタイ
マのキャリ信号を使用します。タイムベースタイマ , またはクロックタイマが解除される
と , ウォッチドッグタイマのインターバル時間は長くなります。
タイムベースタイマは , タイムベースタイマ制御レジスタ (TBTC) の TBR ビットに "0" を
書き込み , メインクロックモードから PLL クロックモードに遷移することでクリアされま
す。
166
第 12 章 ウォッチドッグタイマ
12.2
ウォッチドッグタイマの動作
ウォッチドッグタイマの機能により , プログラムの暴走を検出できます。
プログラムの暴走などにより , 定められた時間内にウォッチドッグタイマのアクセ
スが行われない場合 , ウォッチドッグタイマはシステムをリセットします。
■ ウォッチドッグタイマの状態遷移図
ウォッチドッグタイマには下記の 4 つの状態が存在します。
無効
:動作していません。
動作
:"0" からカウントを開始します。
停止
:カウント値を "0" で停止します。
オーバフロー :ウォッチドッグリセットを発生します。
図 12.2-1
ウォッチドッグタイマの状態遷移図
無効
( 初期状態 )
WTE ビットに
"0" 書込み
リセット
リセット
割込みによるストップモード解除
割込みによるタイムベースタイマモード解除
割込みによるスリープモード解除
停止
動作
カウント= 0
"0" からカウント開始
ストップモード移行
タイムベースタイマモード移行
スリープモード移行
カウンタ
オーバフロー
オーバフロー
常に
ウォッチドッグリセットを
発生
WTE ビットに
"0" 書込み
167
第 12 章 ウォッチドッグタイマ
■ ウォッチドッグタイマの起動方法
ウォッチドッグタイマの起動は , ウォッチドッグタイマの停止中に WDTC レジスタの
WTE ビットに "0" を書き込むことによって行われます。このとき , 同時にウォッチドッ
グタイマのリセット発生のインターバルを WT1, WT0 ビットにより設定します。イン
ターバルの設定は , この起動のときのデータのみが有効となります。
■ ウォッチドッグカウンタ
一度 , ウォッチドッグタイマが起動されると , ウォッチドッグタイマカウンタをプログ
ラム内で定期的にクリアする必要があります。WDTC レジスタの WTE ビットに "0" を
書き込むと , ウォッチドッグカウンタがクリアされます。ウォッチドッグカウンタは ,
タイムベースカウンタの桁上がり信号をクロックソースとする 2 ビットのカウンタに
より構成されています。したがって , タイムベースカウンタがクリアされると , ウォッ
チドッグリセットの発生時間が設定より長くなることがあります。
図 12.2-2 に , ウォッチドッグタイマの動作を示します。
図 12.2-2 ウォッチドッグタイマの動作
タイムベース
ウォッチドッグ
00
01
10
00
01
10
11
00
WTE ライト
ウォッチドッグ起動
ウォッチドッグクリア
ウォッチドッグリセット
■ ウォッチドッグ停止
ウォッチドッグタイマは , ストップモード , タイムベースタイマモードまたはスリープ
モードに遷移時に 停止します。
■ ウォッチドッグ不活性化
ウォッチドッグタイマは , あらゆる種類のリセットにより不活性化します。
■ ストップモード , タイムベースタイマモード , スリープモード時のウォッチドッグ
タイマの動作
ストップモード , タイムベースタイマモードまたはスリープモードに遷移すると ,
ウォッチドッグタイマはクリアされ停止します。CPU がストップモード , タイムベー
スタイマモードまたはスリープモードから復帰すると , ウォッチドッグタイマは , クリ
アされた状態からカウントを再開します。
■ リセット時のウォッチドッグタイマの動作
あらゆる種類のリセットがかかるとウォッチドッグタイマは不活性化し , リセット解
除後も不活性化の状態が続きます。
168
第 12 章 ウォッチドッグタイマ
表 12.2-1 : ウォッチドッグタイマのクリアおよび停止する条件
リセット
WDTC
レジスタ
WTE=0
ストップ
モード
スリープ
モード
タイムベース
タイマモード
モードに移行
レジスタに
書込み
モードに移行
モードに移行
モードに移行
モード
カウンタクリア
のタイミング
モード中の
ウォッチドッグ
状態
無効
モード中の
ウォッチドッグ
リセット状態
発生しない
モード解除後の
ウォッチドッグ
状態
無効
N/A
N/A
停止
停止
停止
( クリア状態を ( クリア状態を ( クリア状態を
保持 )
保持 )
保持 )
発生しない
発生しない
発生しない
動作
動作
動作
動作
(クリア状態から (クリア状態から (クリア状態から ( クリア状態から
カウント開始 ) カウント開始 ) カウント開始 )
カウント開始 )
この表は以前のウォッチドッグ状態が動作状態にあったと仮定した場合のものです。
169
第 12 章 ウォッチドッグタイマ
170
第 13 章
16 ビット入出力タイマ
16 ビット入出力タイマの機能と動作について説明
します。
13.1 16 ビット入出力タイマの概要
13.2 16 ビット入出力タイマのレジスタ
13.3 16 ビットフリーランタイマ
13.4 アウトプットコンペア
13.5 インプットキャプチャ
171
第 13 章 16 ビット入出力タイマ
13.1
16 ビット入出力タイマの概要
MB90945 シリーズは , 16 ビットフリーランタイマ 2 本 , アウトプットコンペアモ
ジュール 2 本およびインプットキャプチャ 3 本のモジュールから構成され , 6 個の入
力チャネルおよび 4 個の出力チャネルをサポートしています。ここでは , 16 ビット
フリーランタイマ , アウトプットコンペアおよびインプットキャプチャについて説
明します。
■ 16 ビットフリーランタイマ
2 本の 16 ビットフリーランタイマは 16 ビットのアップカウンタ , 制御レジスタ , プリ
スケーラより構成されています。本タイマカウンタの出力値はインプットキャプチャ ,
アウトプットコンペアの基本時間 ( ベースタイマ ) として使用されます。
● カウンタ動作クロックは 8 種類から選択可能
内部クロック 8 種類 : φ, φ/2,φ/4, φ/8,φ/16, φ/32, φ/64, φ/128 (φ: マシンクロック )
● 割込みはカウンタ値のオーバフロー, コンペアレジスタ 0 または 1 との比較一致により発生
可能
● カウンタ値はリセット , ソフトウェアクリア , コンペアレジスタ 0 による一致
(MB90V390HA/HB では , フリーランタイマ 1 はコンペアレジスタ 0 による一致ではクリ
アできず , コンペアレジスタ 4 でクリアできる ) によって "0000H" に初期化できます。
■ アウトプットコンペア ( モジュールごとに 2 チャネル )
2 本のアウトプットコンペアは 2 本の 16 ビットコンペアレジスタ , コンペア出力用ラッ
チ , 制御レジスタより構成されています。アウトプットコンペア 0 および 1 ( チャネル
OUT0, OUT1, OUT2, OUT3) はフリーランタイマ 0 に割り当てられています。16 ビット
フリーランタイマ値とコンペアレジスタ値が一致したとき出力レベルを反転すると共
に割込みを発生できます。
● 各アウトプットコンペアにおいて 2 本のコンペアレジスタを独立して動作
各コンペアレジスタに対応した出力端子と割込みフラグ
● 2 本のコンペアレジスタをペアにして出力端子を制御可能
コンペアレジスタ 2 本を使用して出力端子を反転する。
● 出力端子の初期値を設定することが可能
● 割込みは比較一致により発生可能
172
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャ ( モジュールごとに 2 チャネル )
3 本のインプットキャプチャは独立した 2 本の外部入力端子と対応した 16 ビットキャ
プチャレジスタ , 制御レジスタにより構成されています。
インプットキャプチャ0( チャ
ネル IN0, IN1) はフリーランタイマ 0 に , インプットキャプチャ1 およびインプットキャ
プチャ 2( チャネル IN2, IN3, IN4, IN5) はフリーランタイマ 1 に割り当てられています。
外部入力端子より入力された信号の任意エッジを検出することにより , 16 ビットフ
リーランタイマ値をキャプチャレジスタに保持し , 同時に割込みを発生できます。
● 外部入力信号のエッジを選択可能
立上りエッジ , 立下りエッジ , 両エッジから選択可能
● 2 本のインプットチャネルは独立して動作可能
● 割込みは外部入力信号の有効エッジにより発生可能
インプットキャプチャの割込みによりインテリジェント I/O サービスを起動できます。
■ 16 ビット入出力タイマのブロックダイヤグラム
図 13.1-1 に , 16 ビット入出力タイマのブロックダイヤグラムを示します。
図 13.1-1 16 ビット入出力タイマのブロックダイヤグラム
制御ロジック
各ブロックへ
割込み
16 ビットフリ-ランタイマ 0/1
16 ビットタイマ
FRCK0
FRCK1
クリア
アウトプットコンペア 0/2
バス
コンペアレジスタ 0
T
Q
T
Q
アウトプットコンペア 1/3
コンペアレジスタ 1
OUT0
OUT2
OUT4
OUT6
OUT1
OUT3
OUT5
OUT7
インプットキャプチャ
0/2/4
キャプチャレジスタ 0
エッジ選択
IN0
IN2
IN4
エッジ選択
IN1
IN3
IN5
インプットキャプチャ
1/3/5
キャプチャレジスタ 1
173
第 13 章 16 ビット入出力タイマ
13.2
16 ビット入出力タイマのレジスタ
16 ビット入出力タイマのレジスタには , 次の 3 つがあります。
• 16 ビットフリーランタイマのレジスタ
• 16 ビットアウトプットコンペアのレジスタ
• 16 ビットインプットキャプチャのレジスタ
■ 16 ビットフリーランタイマ 0/1 のレジスタ一覧
bit15
bit0
00352CH
TCDT0
タイマデータレジスタ 0
00353CH
TCDT1
タイマデータレジスタ 1
00352EH
TCCSH0
TCCSL0
タイマ制御ステータスレジスタ 0
00353EH
TCCSH1
TCCSL1
タイマ制御ステータスレジスタ 1
■ 16 ビットアウトプットコンペアのレジスタ一覧
bit15
174
bit0
003530H
003532H
OCCP0/1
アウトプットコンペアレジスタ 0/1
003534H
003536H
OCCP2/3
アウトプットコンペアレジスタ 2/3
000058H
000059H
OCS1
OCS0
制御ステータスレジスタ 0/1
00005AH
00005BH
OCS3
OCS2
制御ステータスレジスタ 2/3
第 13 章 16 ビット入出力タイマ
■ 16 ビットインプットキャプチャのレジスタ一覧
bit15
bit0
003520H
003522H
IPCP0/1
インプットキャプチャデータレジスタ 0/1
003524H
003526H
IPCP2/3
インプットキャプチャデータレジスタ 2/3
003528H
00352AH
IPCP4/5
インプットキャプチャデータレジスタ 4/5
000054H
000055H
ICS01
ICS23
0035C9H
ICE01
ICE45
インプットキャプチャ制御ステータスレジスタ 4/5
インプットキャプチャエッジレジスタ 0/1
ICE23
0035CAH
0035CBH
インプットキャプチャ制御ステータスレジスタ 2/3
ICS45
000056H
インプットキャプチャ制御ステータスレジスタ 0/1
インプットキャプチャエッジレジスタ 2/3
インプットキャプチャエッジレジスタ 4/5
175
第 13 章 16 ビット入出力タイマ
13.3
16 ビットフリーランタイマ
16 ビットフリーランタイマは 16 ビットのアップカウンタと制御ステータスレジス
タにより構成されています。16 ビットフリーランタイマのカウント値はアウトプッ
トコンペア , インプットキャプチャの基本時間 ( ベースタイマ ) として使用されま
す。
• カウントクロックは 8 種類から選択可能です。
• カウンタオーバフロー割込みを発生できます。
• モード設定によりアウトプットコンペアのコンペアレジスタ 0 の値との一致によ
るカウンタの初期化が可能です。
• 2 つの分割したタイマが利用できます。
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 13.3-1 16 ビットフリーランタイマのブロックダイヤグラム
割込み要求
IVF
バ
ス
IVFE STOP MODE CLR CLK2 CLK1 CLK0
分周器
コンパレータ 0/1
16 ビットアップカウンタ
クロック
カウント値出力
( 注意事項 ) この図は , タイマ 1 でも有効。
タイマ 0 は , ICU0/ICU1 および OCU0/OCU1/OCU2/OCU3 に接続
タイマ 1 は , ICU2/ICU3/ICU4/ICU5 に接続
176
FRCK0
FRCK1
T15 ~ T00
第 13 章 16 ビット入出力タイマ
13.3.1
タイマデータレジスタ (TCDT0, TCDT1)
タイマデータレジスタは , 16 ビットフリーランタイマのカウント値を読み出せるレ
ジスタです。カウンタ値はリセット時に "0000H" にクリアされます。このレジスタ
に書き込むことで , タイマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってく
ださい。このレジスタはワードアクセスしてください。
■ フリーランタイマのタイマデータレジスタ
図 13.3-2 フリーランタイマのタイマデータレジスタ (TCDT0, TCDT1)
TCDT0/TCDT1
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
352CH
352DH
353CH
353DH
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
初期値
0000000000000000B
bit0 ~ bit7
下位ビット
TCDT0/1
Tn0
タイマデータレジスタ 0
Tn1
タイマデータレジスタ 1
Tn2
タイマデータレジスタ 2
Tn3
タイマデータレジスタ 3
Tn4
タイマデータレジスタ 4
Tn5
タイマデータレジスタ 5
Tn6
タイマデータレジスタ 6
Tn7
タイマデータレジスタ 7
n = 0, 1
bit8 ~ bit15
TCDT0/1
R/W:リード / ライト可能
上位ビット
Tn8
タイマデータレジスタ 8
Tn9
タイマデータレジスタ 9
Tn10
タイマデータレジスタ 10
Tn11
タイマデータレジスタ 11
Tn12
タイマデータレジスタ 12
Tn13
タイマデータレジスタ 13
Tn14
タイマデータレジスタ 14
Tn15
タイマデータレジスタ 15
n = 0, 1
16 ビットフリーランタイマの初期化は次の要因で行われます。
• リセットによる初期化
• タイマ制御ステータスレジスタのクリアビット (CLR) による初期化
• アウトプットコンペアのコンペアレジスタ 0 とタイマカウンタ値の一致による初期
化
MB90V390HA/HB では , フリーランタイマ 1 がコンペアレジスタ 0 との一致により
初期化できませんが , コンペアレジスタ 4 との一致により初期化できます。詳細に
ついては , MB90390 シリーズハードウェアマニュアルを参照してください。
177
第 13 章 16 ビット入出力タイマ
13.3.2
タイマ制御ステータスレジスタ (TCCSL0, TCCSL1)
タイマ制御ステータスレジスタは , 16 ビットフリーランタイマの動作モードの設定 ,
起動・停止や割込みの制御を行います。
■ フリーランタイマのタイマ制御ステータスレジスタ ( 下位 )
図 13.3-3 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSL0, TCCSL1)
TCCSL0/TCCSL1
アドレス:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
00352EH
00353EH
0 0 0 0 0 0 0 0B
R/W R/W R/W R/W R/W R/W R/W R/W
bit2
bit1
bit0
CLK2
CLK1
CLK0
0
0
0
φ
0
0
1
φ/2
0
1
0
φ/4
0
1
1
φ/8
1
0
0
φ / 16
1
0
1
φ / 32
1
1
0
φ / 64
1
1
1
φ / 128
カウントクロック選択
φ = MCU clock
bit3
CLR
0
1
クリアタイマ
読出し時
書込み時
影響なし
タイマを"0000B"にクリア
常に "0" を読込み
bit4
タイマのリセット条件を設定
MODE
0
リセットまたはクリアビットにより初期化
1
リセット, クリアビットまたはコンペアレジスタ0(4)により初期化
bit5
タイマ停止
STOP
0
カウンタ許可
1
カウンタ禁止 ( 停止 )
bit6
割込み許可ビット
IVFE
0
割込み禁止
1
割込み許可
bit7
IVF
R/W
178
割込み要求フラグビット
読出し時
書込み時
: リード / ライト可能
0
割込みなし
このビットをクリア
: 初期値
1
割込み要求
影響なし
第 13 章 16 ビット入出力タイマ
表 13.3-1 フリーランタイマのタイマ制御ステータスレジスタ ( 下位 )
ビット名
IVF:
割込み
bit 7
要求
フラグ
ビット
IVFE:
割込み
bit 6
許可
ビット
STOP:
bit 5
タイマ
停止
bit 4
機能
•
•
•
•
割込み要求フラグビットとクリアビット
"0" 書込み:可能な割込みは削除
"1" 書込み:影響なし
リードモディファイライトサイクル中は必ず "1" を読み出せます。
• 割込み要求許可
• "0" 書込み : 割込み禁止
• "1" 書込み : 割込み許可
• タイマを停止するために使用
• "0" 書込み : カウンタ許可 ( 動作 )
• "1" 書込み : カウンタ禁止 ( 停止 )
MODE: • "0": リセットまたはクリアビットで初期化
リセット • "1": リセット , クリアビット , コンペアレジスタ 0 で初期化
条件設定
MB90V390HA/HB では , フリーランタイマ 1 はコンペアレジスタ 0 との
一致で初期化できませんが , コンペアレジスタ 4 の一致で初期化できま
す。
詳細については , MB90390 シリーズハードウェアマニュアルを参照してく
ださい。
CLR:
• 16 ビットフリーランタイマを "0000H" 値へ初期化
クリア
• "0" 書込み : 影響なし
タイマ
• "1" 書込み : カウンタが初期化されます
( 注意事項 )
• タイマカウンタが停止している間 , カウンタ値を初期化するには , "0000H"
bit 3
をタイマデータレジスタに書き込んでください。
• "1" を書き込んだ後 , 次のカウントクロックまでにこのビットに "0" 書込み
を行うと , カウンタ値の初期化は行われません。
CLK2,
CLK1,
CLK0:
カウント
クロック
選択
bit 2
~
bit0
16 ビットフリーランタイマ用カウントクロックを選択するために使用します。
値がこのビットに書き込まれた後 , 直ちにクロックがアップデートされます。そ
のため , このビットに値を書き込む前に , 入力キャプチャ動作が停止しているこ
とを確認してください。
CLK2
CLK1
CLK0
カウント
クロック
φ= 20
MHz
φ= 16
MHz
φ= 8
MHz
φ= 4
MHz
φ= 1
MHz
0
0
0
φ
50 ns
62.5 ns
125 ns
0.25 μs
1 μs
0
0
1
φ/2
100 ns
125 ns
0.25 μs
0.5 μs
2 μs
0
1
0
φ/4
0.2 μs
0.25 μs
0.5 μs
1 μs
4 μs
0
1
1
φ/8
0.4 μs
0.5 μs
1 μs
2 μs
8 μs
1
0
0
φ/16
0.8 μs
1 μs
2 μs
4 μs
16 μs
1
0
1
φ/32
1.6 μs
2 μs
4 μs
8 μs
32 μs
1
1
0
φ/64
3.2 μs
4 μs
8 μs
16 μs
64 μs
1
1
1
φ/128
6.4 μs
8 μs
16 μs
32 μs
128 μs
179
第 13 章 16 ビット入出力タイマ
■ フリーランタイマのタイマ制御ステータスレジスタ ( 上位 )
図 13.3-4 フリーランタイマのタイマ制御ステータスレジスタの構成 (TCCSH0/TCCSH1)
TCCSH0/TCCSH1
アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
初期値
00352FH
00353FH
0xxxxxxx
R/W
-
-
-
-
-
-
ECKE
R/W
:
リード / ライト可能
-
:
未定義
:
初期値
B
外部クロック許可
0
内部タイムクロック
1
FRCK0, FRCK1 からの外部クロック
表 13.3-2 フリーランタイマのタイマ制御ステータスレジスタ ( 上位 )
ビット名
ECKE
bit 15
bit 14
~
bit8
180
機能
このビットは内部タイムクロックと FRCK0, FRCK1 からの外部クロッ
クの間で選択されます。
"0" を書込み : 内部クロックを選択
"1" を書込み : 外部クロックを選択
未定義
-
第 13 章 16 ビット入出力タイマ
13.3.3
16 ビットフリーランタイマの動作
16 ビットフリーランタイマはリセット解除後にカウンタ値 "0000H" よりカウントを
開始します。このカウンタ値が 16 ビットアウトプットコンペアと 16 ビットイン
プットキャプチャの基準時間となります。
■ 16 ビットフリーランタイマの動作
カウンタ値は , 次の 5 つの条件でクリアされます。
• オーバフローが発生したとき
• アウトプットコンペアレジスタ 0 値 (4) 値 と一致したとき ( モード設定が必要 )
• 動作中に TCCS レジスタの CLR ビットに "1" を書き込んだとき
• 停止中に TCDT レジスタに "0000H" を書き込んだとき
• リセット時
割込みはオーバフローが発生したときと , アウトプットコンペアレジスタ 0 (4) 値と一
致したときに発生できます ( 比較一致割込みはモード設定が必要です ) 。
■ オーバフローによるカウンタクリア
図 13.3-5 オーバフローによるカウンタクリア
カウンタ値
オーバフロー
FFFF H
BFFF H
7FFF H
3FFF H
0000 H
時間
リセット
割込み
181
第 13 章 16 ビット入出力タイマ
■ アウトプットコンペアレジスタ 0 (4) 値と一致したときのカウンタクリア
図 13.3-6 アウトプットコンペアレジスタ 0 (4) 値と一致したときのカウンタクリア
カウンタ値
FFFF H
一致
BFFF H
一致
7FFF H
3FFF H
時間
0000 H
リセット
コンペア
レジスタ値
BFFFH
割込み
■ 16 ビットフリーランタイマのタイミング
● 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 )
カウンタのクリアはリセット , ソフトウェア , アウトプットコンペアレジスタ 0 (4) と
の一致で行えます。リセットとソフトウェアでのカウンタクリアはクリア発生ととも
に行われますが , アウトプットコンペアレジスタ 0 (4) との一致によるカウンタクリア
はカウントタイミングに同期して行われます。
図 13.3-7 16 ビットフリーランタイマのクリアタイミング ( コンペアレジスタ 0/4 との一致 )
φ
コンペアレジスタ値
N
比較一致
カウンタ値
182
N
0000
第 13 章 16 ビット入出力タイマ
13.4
アウトプットコンペア
アウトプットコンペアモジュールは , 2 つの 16 ビットコンペアレジスタ , 2 本のコ
ンペア出力端子および 1 本の制御レジスタから構成されています。アウトプットコ
ンペアレジスタに設定された値と 16 ビットフリーランタイマ値との一致により , 端
子の出力レベルの反転と , 割込みの発生ができます。
■ アウトプットコンペア
• MB90945 シリーズでは , 2 つの異なるアウトプットコンペアモジュールが使用でき
ます。
• 各モジュールにアウトプットコンペアレジスタは全部で 2 本あり , 独立して動作で
きます。また , モード設定により 2 本のアウトプットコンペアレジスタを使い , 端
子の出力を制御可能です。
• 端子の出力初期値を独立して設定できます。
• 比較結果の一致により割込みを発生できます。
• 各モジュール用に 1 パルス幅の変調信号が発生できます。
• 2 つのモジュールを組み合わせると , 3 パルス幅の変調信号が使用可能です。
■ アウトプットコンペアのブロックダイヤグラム
図 13.4-1 に , アウトプットコンペアのブロックダイヤグラムを示します。
図 13.4-1 アウトプットコンペアのブロックダイヤグラム
16 ビットタイマカウンタ値 (T15 ~ T00)
コンペア制御
T
Q
OTE0
OUT0
CMP0EXT / CMP4EXT
コンペアレジスタ 0
CMOD1
16 ビットタイマカウンタ値 (T15 ~ T00)
バ
ス
CMOD0
T
コンペア制御
Q
OTE1
OUT1
コンペアレジスタ 1
ICP1
ICP0 ICE1 ICE0
コントローラ
制御ブロック
コンペア 1
割込み
コンペア 0
割込み
( 注意事項 ) 上図は出力コンペアユニット 2/3 でも有効です。
CMP0EXT 信号は , 図 13.4-5 に示します。
183
第 13 章 16 ビット入出力タイマ
13.4.1
アウトプットコンペアのレジスタ (OCCP0 ~ OCCP3)
16 ビットフリーランタイマと比較する 16 ビット長のコンペアレジスタです。レジ
スタ値は初期値不定ですので設定してから起動許可してください。本レジスタは
ワードアクセスしてください。本レジスタ値と 16 ビットフリーランタイマ値が一致
したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットしま
す。また , 出力許可をしている場合はコンペアレジスタに対応した出力レベルを反
転します。
コンペアレジスタに再書込みするために , コンペア割込みルーチンかコンペア動作
以内の範囲で不可となります。同期比較一致とコンペアレジスタの書込みが発生し
ないように注意してください。
■ アウトプットコンペアレジスタ
図 13.4-2 アウトプットコンペアレジスタ (OCCP0 ~ OCCP3) の構成
アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
3530 H
3531 H
3532 H
3533 H
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
3534 H
3535 H
3536 H
3537 H
3538 H
3539 H
353AH
353BH
356AH
356BH
356CH
356EH
OCCP0
OCCP1
OCCP2
OCCP33
初期値
XXXXXXXXXXXXXXXX
bit0 ~ bit7
OCCPn
下位ビット
C00
コンペアデータレジスタ 0
C01
コンペアデータレジスタ 1
C02
コンペアデータレジスタ 2
C03
コンペアデータレジスタ 3
C04
コンペアデータレジスタ 4
C05
コンペアデータレジスタ 5
C06
コンペアデータレジスタ 6
C07
コンペアデータレジスタ 7
n = 0, 1, 2, 3
bit8 ~ bit15
R/W:リード / ライト可能
184
OCCPn
上位ビット
C08
コンペアデータレジスタ 8
C09
コンペアデータレジスタ 9
C10
コンペアデータレジスタ 10
C11
コンペアデータレジスタ 11
C12
コンペアデータレジスタ 12
C13
コンペアデータレジスタ 13
C14
コンペアデータレジスタ 14
C15
コンペアデータレジスタ 15
n = 0, 1, 2, 3
B
第 13 章 16 ビット入出力タイマ
13.4.2
アウトプットコンペアの制御ステータスレジスタ
(OCS0, OCS2)
制御ステータスレジスタは , アウトプットコンペアの動作モードの設定 , 起動・停止
や割込みの制御 , 外部出力端子の設定を行います。
■ アウトプットコンペアの制御ステータスレジスタ ( 下位 )
図 13.4-3 アウトプットコンペアの制御ステータスレジスタ (OCS0, OCS2)
アドレス:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000058 H
00005AH
00005CH R/W R/W R/W R/W
003568 H
OCS0
OCS4
OCS2
OCS6
初期値
-
-
R/W R/W
0 0 0 0 X X 0 0B
bit0
CSTn
ユニット n 用タイマの比較
0
ユニット n 用コンペア動作禁止
1
ユニット n 用コンペア動作許可
bit1
CSTm
ユニット m 用タイマの比較
0
ユニット m 用コンペア動作禁止
1
ユニット m 用コンペア動作許可
bit4
ICEn
ユニット n 用コンペア割込み許可
0
ユニット n 用出力コンペア割込み禁止
1
ユニット n 用出力コンペア割込み許可
bit5
ICEm
ユニット m 用コンペア割込み許可
0
ユニット m 用出力コンペア割込み禁止
1
ユニット m 用出力コンペア割込み許可
bit6
ICPn
ユニット n 用比較一致許可
0
ユニット n 用比較一致なし
1
ユニット n 用比較一致
bit7
R/W
X
-
: リード / ライト可能
: 不定
: 未定義
: 初期値
ICPm
ユニット m 用比較一致許可
0
ユニット m 用比較一致なし
1
ユニット m 用比較一致
n = 0, 2, 4, 6 m = 1, 3, 5, 7
185
第 13 章 16 ビット入出力タイマ
表 13.4-1 アウトプットコンペアの制御ステータスレジスタ ( 下位 )
ビット名
bit 7
ICPm:
ユニット m 用
比較一致許可
ICPn:
ユニット n 用
比較一致許可
bit 6
bit 5
ICEm:
ユニット m 用
コンペア
割込み許可
bit 4
ICEn:
ユニット n 用
コンペア
割込み許可
bit 3,
bit2
未定義
bit 1
CSTm:
ユニット m 用
タイマの比較
CSTn:
ユニット n 用
タイマの比較
bit 0
n = 0, 2
186
m = 1, 3
機能
• アウトプットコンペア割込みフラグとして使用します。コンペアレジ
スタ値が 16 ビットフリーランタイマ値と一致すると , "1" がこのビッ
トに設定されます。割込み要求ビット (ICEm と ICEn) が許可のとき ,
ICPm と ICPn ビットが設定されると , アウトプットコンペア割込みが
発生します。"0" 書込みで解除されます。
• "0": 比較一致なし
• "1": 比較一致
• "1" 書込みは影響しません。
• リードモディファイライト系命令では , 必ず "1" を読出し
( 注意事項 )
ICPn: アウトプットコンペア n に対応
ICPm: アウトプットコンペア m に対応
• アウトプットコンペア割込み許可フラグとして使用します。"1" が書
き込まれると割込みフラグ (ICPm または ICPn) が設定されるとき , ア
ウトプットコンペア割込みが発生します。
• "0" 書込み : アウトプットコンペア割込み禁止
• "1" 書込み : アウトプットコンペア割込み許可
( 注意事項 )
ICEn: アウトプットコンペアユニット n に対応
ICEm: アウトプットコンペアユニット m に対応
-
• コンペア動作が許可される前に , コンペアレジスタを許可するために
使用します。
• "0" 書込み : コンペア動作禁止
• "1" 書込み : コンペア動作許可
( 注意事項 )
コンペア動作が許可される前に , 値がコンペアレジスタに書き込まれ
ることを確認してください。
CSTn: アウトプットコンペア n に対応
CSTm: アウトプットコンペア m に対応
アウトプットコンペアは , 16 ビットフリーランタイマクロックに同調
するため , 16 ビットフリーランタイマが停止すると , コンペア動作が
止まります。
第 13 章 16 ビット入出力タイマ
■ アウトプットコンペアの制御ステータスレジスタ ( 上位 )
図 13.4-4 アウトプットコンペアの制御ステータスレジスタの構成 (OCS1/OCS3)
アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
000059 H
00005BH
00005DH R/W
003569 H
OCS1
OCS5
OCS3
OCS7
初期値
-
-
R/W R/W R/W R/W R/W
0XX00000B
bit8
OTDn
ユニット n 用出力端子レベル選択
0
ユニット n 用コンペア端子出力を "0" に設定
1
ユニット n 用コンペア端子出力を "1" に設定
bit9
OTDm
ユニット m 用出力端子レベル選択
0
ユニット m 用コンペア端子出力を "0" に設定
1
ユニット m 用コンペア端子出力を "1" に設定
bit10
OTEn
ユニット n 用出力端子選択
0
ユニット n の対応端子用汎用ポート
1
ユニット n 用出力コンペア端子を出力
bit11
OTEm
R/W
X
-
: リード / ライト可能
: 不定
: 未定義
: 初期値
ユニット m 用出力端子選択
0
ユニット m の対応端子用汎用ポート
1
ユニット m 用出力コンペア端子を出力
bit15
bit12
CMOD1
CMOD0
0
0
端子用比較モード定義
詳細については表 13.4-3 を参照して
ください。
n = 0, 2, 4, 6 m = 1, 3, 5, 7
187
第 13 章 16 ビット入出力タイマ
表 13.4-2 アウトプットコンペアの制御ステータスレジスタ ( 上位 )
ビット名
bit 15,
bit12
機能
CMOD0, CMOD1:
端子用比較モード
定義
bit 14,
bit13
未定義
bit 11
OTEm:
ユニット m 用出力
端子選択
bit 10
bit 9
bit 8
n = 0, 2
端子出力値の動作モードを設定します。設定されたモードによって
レベルは異なるコンペアレジスタとの一致を反転させます。表 13.4-3
と「13.4.3 16 ビットアウトプットコンペアの動作」を参照してくだ
さい。
-
OTEn:
ユニット n 用出力
端子選択
OTDm:
ユニット m 用出力
端子レベル選択
OTDn:
ユニット n 用出力
端子レベル選択
アウトプットコンペア出力端子を許可するために使用します。初期
値は "0" です。
• "0": 汎用ポート
• "1": アウトプットコンペア端子出力
( 注意事項 )
OTEn: アウトプットコンペア n に対応
OTEm: アウトプットコンペア m に対応
出力として指定する場合 , ポート方向レジスタの対応するビット
は必ず "1" に設定されなければなりません。
コンペア端子出力が許可のとき , 端子出力レベルを変えるために使用
します。コンペア出力端子の初期値は "0" です。値が書き込まれる前
にコンペア動作が停止することを確認してください。リードのとき ,
このビットはアウトプットコンペア端子出力を表示します。
• "0" 書込み : コンペア端子出力に "0" を設定
• "1" 書込み : コンペア端子出力に "1" を設定
( 注意事項 )
OTDn: アウトプットコンペア n に対応
OTDm: アウトプットコンペア m に対応
m = 1, 3
表 13.4-3 CMOD1, CMOD0 のビットの機能
出力端子と比較一致対象 OCCP レジスタ番号の対応
OCS1
Register OCCPx
CMOD1
CMOD0
OUT0
X
0
0
1
X
1
0
0/1
CMOD0
OUT2
OCS3
CMOD1
188
OUT1
Register OCCPx
OUT3
0
0
2
3
0
1
2
2/3
1
0
0/2
0/3
1
1
0/2
0/2/3
第 13 章 16 ビット入出力タイマ
図 13.4-5 出力選択のブロックダイヤグラム (OCU モジュール 1)
コンペア制御 2
OUT2
CMOD1
CMP0EXT
CMOD0
OUT3
コンペア制御 3
CMOD1, CMOD0 = 10 の場合 , OCU モジュール 1 には , アウトプットコンペアレジス
タ 0 での一致が要求され , モジュール 0 からの比較結果は CMP0EXT 信号により , 内的
に運ばれます。これは , モジュール 0 自身にはあてはまりません。ここでは , レジスタ
として OCCP0 と OCCP1 以外は使用されません。
189
第 13 章 16 ビット入出力タイマ
13.4.3
16 ビットアウトプットコンペアの動作
16 ビットアウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と
16 ビットフリーランタイマの値との一致により , 割込み要求フラグをセットすると
ともに , 出力レベルを反転できます。CMOD0, CMOD1 ビットは , 各端子に対応する
コンペアレジスタを定義するために使われます。
■ CMOD1, CMOD0 = 00B のときの出力波形例
CMOD1, CMOD0 = 00B のとき , コンペアレジスタに対応する端子の出力レベルはレジ
スタ値とのすべての一致を反転させます。各出力レベルは , 1 つのコンペアレジスタで
制御されます。
OUT0: レベルは , アウトプットコンペアレジスタ 0 との一致で反転します。
OUT1: レベルは , アウトプットコンペアレジスタ 1 との一致で反転します。
図 13.4-6 CMOD1, CMOD0 = 00B のときの出力波形例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OUT0
OUT1
コンペア 0 割込み
コンペア 1 割込み
( 注意事項 ) この図では , どちらの端子も初期値は "0" です。
■ CMOD1, CMOD0 = 01B のときの 2 コンペアレジスタでのサンプル出力波形
CMOD1, CMOD0 = 01B のとき , コンペアレジスタ 0 (2) と対応する端子の出力レベルは
レジスタ値が一致するごとに反対になります。これは , CMOD1, CMOD0 = 00B のとき
でも全く同じです。しかし , 第 2 端子の出力レベルはコンペアレジスタ 0 かコンペアレ
ジスタ 1 (3) との一致により反対になります。これにより , コンペアレジスタ 0 で示さ
れたエッジとコンペアレジスタ 1 (3) で示された他のエッジによってパルスされた信号
を明確にします。逆もまた同様です。両コンペアレジスタが同じ値をとる場合は ,
CMOD1, CMOD0 = 00B のケースと同じです。
190
第 13 章 16 ビット入出力タイマ
異なる周波数でのパルス幅変調信号は , フリーランタイマ (TCCS0/TCCS1 レジスタの
MODE ビット ) と対応したコンペアレジスタ一致に基づく , リセットオプションを付
加したモードの共同使用により明示されます。
OUT0 (2):
このレベルはアウトプットコンペアレジスタ 0 (2) との一致によってのみ
リバースされます。
OUT1 (3):
このレベルはアウトプットコンペアレジスタ 0 (2) かアウトプットコンペ
アレジスタ 1 (3) との一致によってリバースされます。
図 13.4-7 CMOD1, CMOD0 = 01B のときのサンプル出力波形 ( 一致によるタイマリセットなし )
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OUT0
OUT1
( 注意事項 ) この図では , 両端子ともに初期値は "0" です。
図 13.4-8 CMOD1, CMOD0 = 01B のときのサンプル出力波形 ( 一致によるタイマリセットあり )
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OUT0
OUT1
( 注意事項 ) この図では , 両端子ともに初期値は "0" です。
191
第 13 章 16 ビット入出力タイマ
■ CMOD1, CMOD0 = 10B のときのサンプル出力波形
前述のコンペアレジスタの代わりに , CMOD1, CMOD0 = 10B で示される動作モードは ,
3 つのパルス幅変調された信号の使用時に用います。このモードを OCU モジュール 1
に設定する場合 , コンペアレジスタ 0 でのタイマ値の一致により , OUT2 と OUT3 を反
転します。第 3 パルス信号では , OCU モジュール 0 の CMOD1, CMOD0 ビットは "01B"
に設定してください。
OCS1: CMOD1, CMOD0 = 01B のとき
OUT0: このレベルは , アウトプットコンペアレジスタ 0 との一致によってのみ反転さ
れます。
OUT1: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア
レジスタ 1 との一致によって反転されます。
OCS3: CMOD1, CMOD0 = 10B のとき
OUT2: このレベルは , アウトプットコンペアレジスタ 0 またはアウトプットコンペア
レジスタ 2 との一致によって反転されます。
OUT3: このレジスタは , アウトプットコンペアレジスタ 0 またはアウトプットコンペ
アレジスタ 3 との一致によって反転されます。
図 13.4-9 OCS1.CMOD1, CMOD0 = 01B, OCS3.CMOD1, CMOD0 = 10B のときの
サンプル出力波形
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OCCP2 値
3FFFH
OCCP3 値
5FFFH
OUT0
OUT1
OUT2
OUT3
( 注意事項 ) この図では , 全端子共に初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。
192
第 13 章 16 ビット入出力タイマ
■ CMOD1, CMOD0 = 11B のときのサンプル出力波形
CMOD1, CMOD0 = 11B のとき , OUT3 端子の出力レベルは , コンペアレジスタ 0, 2, 3 に
よって反転されます。OUT1 端子では , この決定は CMOD1, CMOD0 = 01B と同じです
( 表 13.4-3 を参照してください )。
OUT0: このレベルは , コンペアレジスタ 0 との一致によってのみ反転されます。
OUT1: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 1 との一致によっ
て反転されます。
OUT2: このレベルは , コンペアレジスタ 0 またはコンペアレジスタ 2 との一致によっ
て反転されます。
OUT3: このレベルは , コンペアレジスタ 0, コンペアレジスタ 2 またはコンペアレジス
タ 3 との一致によって反転されます。
図 13.4-10 OCS1.CMOD1, CMOD0 = 11B, OCS3.CMOD1, CMOD0 = 11B のときの
サンプル出力波形
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
OCCP0 値
BFFFH
OCCP1 値
7FFFH
OCCP2 値
3FFFH
OCCP3 値
5FFFH
OUT0
OUT1
OUT2
OUT3
( 注意事項 ) この図では , 全端子共に初期値は "0" です。タイマリセットはコンペアレジスタ 0 での一致です。
193
第 13 章 16 ビット入出力タイマ
■ アウトプットコンペアのタイミング
アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス
タの値が一致したときに比較一致信号が発生して , 出力値を反転するとともに割込み
を発生できます。比較一致時の出力反転タイミングはカウンタのカウントタイミング
に同期して行われます。
● コンペアレジスタ書換え時のコンペア動作
アウトプットコンペアレジスタ書換え時のカウンタ値とはコンペアしません。
● アウトプットコンペアの割込みタイミング
図 13.4-11 アウトプットコンペアの割込みタイミング
φ
カウンタ値
N
コンペアレジスタ値
N+1
N
比較一致
割込み
● アウトプットコンペアの出力端子変化タイミング
図 13.4-12 アウトプットコンペアの出力端子変化タイミング
カウンタ値
コンペアレジスタ値
比較一致信号
端子出力
194
NN+1
N+1
N
N
第 13 章 16 ビット入出力タイマ
13.5
インプットキャプチャ
インプットキャプチャは外部から入力された信号の立上りエッジ , 立下りエッジま
たは両エッジを検出して , そのときの 16 ビットフリーランタイマ値をレジスタに保
持する機能を持っています。また , エッジ検出時に割込みを発生できます。イン
プットキャプチャは , インプットキャプチャデータレジスタ , 制御レジスタで構成さ
れています。
■ インプットキャプチャ
各インプットキャプチャは , それぞれに対応した外部入力端子を持っています。
● 外部入力の有効エッジを 3 種類から選択可能です。
表 13.5-1 外部入力の有効エッジ
立上りエッジ
立下りエッジ
両エッジ
● 外部入力の有効エッジを検出したときに割込みを発生できます。
■ インプットキャプチャのブロックダイヤグラム
図 13.5-1 に , インプットキャプチャのブロックダイヤグラムを示します。
図 13.5-1 インプットキャプチャの全体ブロックダイヤグラム
フリーランタイマからのカウント値
バ
ス
IN0
エッジ検出
キャプチャデータレジスタ 0
EG11 EG10 EG01 EG00
キャプチャデータレジスタ 1
エッジ検出
ICP1
ICP0
ICE1
IEI1
IEI0
IN1
ICE0
割込み
割込み
( 注意事項 ) 上の図は , キャプチャユニット 2/3 とキャプチャユニット 4/5 にも有効です。
195
第 13 章 16 ビット入出力タイマ
13.5.1
インプットキャプチャのレジスタ (IPCP0 ~ IPCP5)
インプットキャプチャのレジスタは , 次の 3 つがあり , 対応した外部端子入力波形の
有効エッジを検出したとき 16 ビットフリーランタイマ値を保持するレジスタです
( ワードアクセスしてください。書込みはできません ) 。
• インプットキャプチャデータレジスタ
• インプットキャプチャ制御ステータスレジスタ
• インプットキャプチャエッジレジスタ
■ インプットキャプチャデータレジスタ
図 13.5-2 インプットキャプチャデータレジスタ (IPCP)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
3520 H
.
.
.
352BH
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
R
IPCP0
IPCP1
:
IPCP5
初期値
XXXXXXXXXXXXXXXXB
IPCPn
下位ビット
CP00
インプットキャプチャデータレジスタ 0
CP01
インプットキャプチャデータレジスタ 1
CP02
インプットキャプチャデータレジスタ 2
CP03
インプットキャプチャデータレジスタ 3
CP04
インプットキャプチャデータレジスタ 4
CP05
インプットキャプチャデータレジスタ 5
CP06
インプットキャプチャデータレジスタ 6
CP07
インプットキャプチャデータレジスタ 7
n = 0,1,2,3,4,5
上位ビット
IPCPn
R :
196
リードオンリ
CP08
インプットキャプチャデータレジスタ 8
CP09
インプットキャプチャデータレジスタ 9
CP10
インプットキャプチャデータレジスタ 10
CP11
インプットキャプチャデータレジスタ 11
CP12
インプットキャプチャデータレジスタ 12
CP13
インプットキャプチャデータレジスタ 13
CP14
インプットキャプチャデータレジスタ14
CP15
インプットキャプチャデータレジスタ 15
n = 0,1,2,3,4,5
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャ制御ステータスレジスタ
図 13.5-3 インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23, ICS45)
アドレス bit15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0
000054 H
000055 H
000056 H R/W R/W R/W R/W R/W R/W R/W R/W
ICS01
ICS23
ICS45
初期値
0 0 0 0 0 0 0 0B
bit9,
bit1
bit8,
bit0
EGn1
EGn0
0
0
エッジ選択ビット ( インプットキャプチャ n)
エッジ検出なし ( ストップ )
0
1
立上りエッジ検出
1
0
立下りエッジ検出
1
1
両エッジ検出
bit11,
bit3
bit10,
bit2
EGm1
EGm0
0
0
エッジ選択ビット ( インプットキャプチャm)
エッジ検出なし ( ストップ )
0
1
立上りエッジ検出
1
0
立下りエッジ検出
1
1
両エッジ検出
bit12,bit4
ICEn
割込み許可ビット ( インプットキャプチャ n)
0
割込み禁止
1
割込み許可
bit13,bit5
ICEm
割込み許可ビット ( インプットキャプチャ m)
0
割込み禁止
1
割込み許可
bit14,bit6
ICPn
割込み要求フラグビット ( インプットキャプチャ n)
読出し時
書込み時
0
有効検出なし
このビットをクリア
1
有効検出
影響なし
bit15,bit7
ICPm
R/W
:
リード / ライト可能
:
初期値
割込み要求フラグビット ( インプットキャプチャ m)
0
読出し時
有効検出なし
書込み時
このビットをクリア
1
有効検出
影響なし
n = 0, 2, 4 m = 1, 3, 5
197
第 13 章 16 ビット入出力タイマ
表 13.5-2 インプットキャプチャ制御ステータスレジスタビット ( 上位・下位 )
ビット名
ICPn+1/3:
割込み要求フラグ
ビット ( インプット
キャプチャ n+1/3)
• インプットキャプチャ n, m 用割込み要求フラグとして使用
します。
• 外部入力端子の有効エッジ決定で "1" が設定されます。
• 割込み許可ビット (ICEn+1/3) が設定されると , 有効エッジ
決定で割込みが発生します。
• "0" 書込みはこのビットを解除します。
• "1" 書込みは影響しません。
• リードモディファイライト動作では必ず "1" を読み出しま
す。
ICPn/2:
割込み要求フラグ
ビット ( インプット
キャプチャ n/2)
• インプットキャプチャ n, m 用割込み要求フラグとして使用
します。
• 外部入力端子の有効エッジ決定で "1" が設定されます。
• 割込み許可ビット (ICEn/2) が設定されると , 有効エッジ決
定で割込みが発生します。
• "0" 書込みはこのビットを解除します。
• "1" 書込みは影響しません。
• リードモディファイライト動作では必ず "1" を読み出しま
す。
bit13,
bit5
ICEn+1/3:
割込み要求許可ビッ
ト ( インプットキャ
プチャ n+1/3)
• インプットキャプチャ n+1/3 用のインプットキャプチャ割
込み要求を許可するために使用されます。
• "1" が書き込まれると , 割込みフラグ (ICPn+1/3) が設定され
るときに , インプットキャプチャ割込みが発生します。
bit12,
bit4
ICEn/2:
割込み要求許可ビッ
ト ( インプットキャ
プチャ n/2)
• インプットキャプチャ n/2 用のインプットキャプチャ割込
み要求を許可するために使用されます。
• "1" が書き込まれると , 割込みフラグ (ICPn/2) が設定される
ときに , インプットキャプチャ割込みが発生します。
bit11,
bit10
bit3,
bit2
EG[n+1]1, EG[n+1]0 /
EG31, EG30:
エッジ選択ビット
( インプットキャプ
チャ m)
• インプットキャプチャ n+1/3 用外部入力の有効エッジ極性
を指定するために使用されます。
• インプットキャプチャ動作を許可するためにも使用されま
す。
bit9,
bit8,
bit1,
bit0
EGn1, EGn0 / EG21,
EG20:
エッジ選択ビット
( インプットキャプ
チャ n)
• インプットキャプチャ n/2 用外部入力の有効エッジ極性を
指定するために使用されます。
• インプットキャプチャ動作を許可するためにも使用されま
す。
bit15,
bit7
bit14,
bit6
n = 0, 4
198
機能
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45)
図 13.5-4 インプットキャプチャエッジレジスタ (ICE01, ICE23, ICE45)
初期値
bit15/7 14/6 13/5 12/4 11/3 10/2 9/1 8/0
アドレス
0035C9 H
0035CAH
0035CBH
-
-
-
-
-
IUCE IEIm
IEIn
-
-
-
-
-
R/W R
R
X X X X X 0*x x
B
* ICE01 and ICE45 ( その他は "X" です。)
bit8,bit0
有効エッジ表示ビット ( 入力キャプチャ n)
IEIn
0
立下りエッジ検出
1
立上りエッジ検出
bit9,bit1
有効エッジ表示ビット ( 入力キャプチャ m)
IEIm
R/W
:
リード / ライト可能
R
:
リードオンリ
-
:
未定義
:
初期値
0
立下りエッジ検出
1
立上りエッジ検出
bit10
( 入力キャプチャ 1, 5 のみ )
IUCE
UART3 への入力キャプチャ接続許可
0
外部入力キャプチャ接続
1
入力キャプチャへの UART3 接続
n = 0, 2, 4
m = 1, 3, 5
199
第 13 章 16 ビット入出力タイマ
表 13.5-3 インプットキャプチャエッジレジスタビット ( 上位・下位 )
ビット名
bit15 ~ bit11, 未定義
bit7 ~ bit3
-
bit10
IUCE1/5:
• インプットキャプチャユニット 1, 5 のキャプチャソースを選択し
UART3 へのイン
ます。UART3-LIN 動作によって使用されます。
プットキャプチャ • "0" 書込み : キャプチャソースは外部です。
接続許可
• "1" 書込み : キャプチャソースは UART3 です。
bit2
MB90947A, MB90 • インプットキャプチャユニット 3 のキャプチャソースを選択しま
F947(A) および
す。UART2-LIN 動作によって使用されます。
MB90F949 (A):
• "0" 書込み : キャプチャソースは外部です。
未定義
• "1" 書込み : キャプチャソースは UART2 です。
上記以外のデバイ
ス:
IUCE3:
UART2 へのイ
ンプットキャプ
チャ接続許可
bit9,
bit1
bit8,
bit0
n = 0, 2, 4
200
機能
IEIm:
有効エッジ
表示ビット
• キャプチャレジスタ IPCP1, IPCP3, IPCP5 の有効エッジ表示ビッ
トで , 立上りまたは立下りエッジの検出を表示します。
• "0": 立下りエッジが検出
• "1": 立上りエッジが検出
• リードオンリです。
( 注意事項 )
EGm1, EGm0 = 00B のとき , 読出し値に意味はありません。
IEIn:
有効エッジ
表示ビット
• キャプチャレジスタ IPCP0, IPCP2, IPCP4 の有効エッジ表示ビッ
トで , 立上りまたは立下りエッジの検出を表示します。
• "0": 立下りエッジが検出
• "1": 立上りエッジが検出
• リードオンリです。
( 注意事項 )
EGn1, EGn0 = 00B のとき , 読出し値に意味はありません。
m = 1, 3, 5
第 13 章 16 ビット入出力タイマ
13.5.2
16 ビットインプットキャプチャの動作
16 ビットインプットキャプチャは設定された有効エッジを検出すると 16 ビットフ
リーランタイマの値をキャプチャレジスタに取り込んで割込みを発生することとが
できます。
■ インプットキャプチャの取込みタイミング例
• キャプチャ 0= 立上りエッジ
• キャプチャ 1= 立下りエッジ
• キャプチャ例 = 両エッジ ( 例として )
図 13.5-5 インプットキャプチャの取込みタイミング例
カウンタ値
FFFF H
BFFF H
7FFF H
3FFF H
時間
0000 H
リセット
IN0
IN1
IN 例
キャプチャ 0
不定
キャプチャ 1
不定
キャプチャ例
不定
3FFF H
7FFFH
BFFFH
3FFF H
キャプチャ 0 割込み
キャプチャ 1 割込み
キャプチャ割込み
201
第 13 章 16 ビット入出力タイマ
■ インプットキャプチャ入力タイミング
図 13.5-6 に入力信号に対するキャプチャタイミングを示します。
図 13.5-6 入力信号に対するキャプチャタイミング
φ
カウンタ値
インプット
キャプチャ入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ
割込み
202
N+1
第 14 章
16 ビットリロードタイマ
( イベントカウント機能付 )
16 ビットリロードタイマ ( イベントカウント機能
付 ) の機能と動作について説明します。
14.1 16 ビットリロードタイマ ( イベントカウント機能付 )
の概要
14.2 16 ビットリロードタイマのレジスタ
14.3 16 ビットリロードタイマの内部 / 外部クロック動作
14.4 16 ビットリロードタイマのアンダフロー動作
14.5 16 ビットリロードタイマの出力端子機能
14.6 カウンタの動作状態
203
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.1
16 ビットリロードタイマ ( イベントカウント機能付 )
の概要
16 ビットリロードタイマは , 16 ビットのダウンカウンタ , 16 ビットのリロードレジ
スタ , 入力端子 1 本 (TIN0), 出力端子 1 本 (TOT0), 制御レジスタで構成されていま
す。入力クロックとして内部クロック 3 種類と外部クロックを選択できます。
■ 16 ビットリロードタイマ ( イベントカウント機能付 ) の概要
出力端子 (TOT0) には , リロードモード時にはトグル出力波形を出力し , ワンショット
モード時にはカウント中を示す矩形波を出力します。入力端子 (TIN0) は , イベントカ
ウントモード時にイベント入力となり , 内部クロックモード時にはトリガ入力または
ゲート入力に使用できます。
■ インテリジェント I/O サービス (EI2OS) 機能と割込み
本タイマは EI2OS 対応の回路を有しています。このため , 本タイマのアンダフローに
より EI2OS を起動できます。
204
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
■ 16 ビットリロードタイマのブロックダイヤグラム
図 14.1-1 に , 16 ビットリロードタイマのブロックダイヤグラムを示します。
図 14.1-1 16 ビットリロードタイマのブロックダイヤグラム
16
16 ビットリロードレジスタ
8
リロード
RELD
16 ビットダウンカウンタ
UF
OUTE
F2MC-16LX バス
16
OUTL
2
OUT
CTL.
GATE
INTE
UF
クロックセレクタ
CSL1
CNTE
CSL0
IRQ
クリア
I 2OSCLR
TRG
リトリガ
2
EXCK
φ
2
1
φ
2
3
φ
5
2
ポート (TIN)
IN CTL
出力許可
3
プリスケーラ
クリア
ポート (TOT)
MOD2
MOD1
周辺クロック
UART ボーレート (ch.0)
MOD0
3
205
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.2
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマのレジスタには , 次の 2 種類があります。
• タイマ制御レジスタ (TMCSR0)
• 16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0)
■ 16 ビットリロードタイマのレジスタ
図 14.2-1 16 ビットリロードタイマのレジスタ
TMCSR0 ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
000051H
-
-
-
-
-
-
-
-
CSL1
R/W
CSL0
R/W
bit6
bit5
bit9
bit8
MOD2 MOD1
R/W
R/W
初期値
XXXX0000B
TMCSR0 ( 下位 )
アドレス
000050H
bit7
bit4
bit3
bit2
bit1
bit0
初期値
RELD
INTE
UF
CNTE
TRG
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
MOD0 OUTE OUTL
R/W
R/W
TMR/TMRLR0 ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
003541H
TMR/TMRLR0 ( 下位 )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
XXXXXXXXB
003540H
R/W :リード / ライト可能
X
:不定
- :未定義
206
初期値
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.2.1
タイマ制御ステータスレジスタ (TMCSR0)
16 ビットタイマの動作モードおよび割込みの制御をします。UF, CNTE, TRG ビッ
ト以外のビットの書換えは , CNTE=0 のときに行うようにしてください。
■ タイマ制御ステータスレジスタ (TMCSR0) の配置
TMCSR0 ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
000051H
-
-
-
-
-
-
-
-
CSL1
CSL0
R/W
R/W
R/W
R/W
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
RELD
R/W
INTE
R/W
UF
R/W
CNTE
R/W
TRG
R/W
00000000B
MOD2 MOD1
初期値
XXXX0000B
TMCSR0 ( 下位 )
アドレス
000050H
bit7
MOD0 OUTE OUTL
R/W
R/W
R/W
R/W :リード / ライト可能
X
:不定
- :未定義
■ タイマ制御ステータスレジスタ (TMCSR0) の内容
【bit11, bit10】CSL1, CSL0 (Clock select1, 0)
カウントクロックセレクトビットです。選択されるクロックソースを , 表 14.2-1 に示
します。
表 14.2-1 CSL ビット設定クロックソース
CSL1
CSL0
クロックソース ( マシンサイクル φ = 16 MHz)
0
0
φ/21 (0.125 μs)
0
1
φ/23 (0.5 μs)
1
0
φ/25 (2.0 μs)
1
1
外部イベントカウントモード
【bit9, bit8,bit 7】MOD2, MOD1, MOD0
動作モードおよび入出力端子の機能を設定するビットです。
MOD2 ビットは , 入出力の機能を選択するビットです。"0" の場合 , 入力端子はトリガ
入力端子となり , 有効エッジが入力されるとリロードレジスタの内容をカウンタへ
ロードし , カウント動作を継続します。"1" の場合 , ゲートカウンタモードになり , 入
力端子はゲート入力となり , 有効レベルが入力されている間のみカウントします。
MOD1, MOD0 ビットは , 各モードにおける端子の機能の設定を行います。MOD2,
MOD1, MOD0 ビットの設定を表 14.2-2 および表 14.2-3 に示します。
207
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
表 14.2-2 MOD2, MOD1, MOD0 ビットの設定方法 (1)
MOD2
MOD1
MOD0
入力端子機能
有効エッジ・レベル
0
0
0
トリガ禁止
-
0
0
1
トリガ入力
立上りエッジ
0
1
0
立下りエッジ
0
1
1
両エッジ
1
x
0
1
x
1
ゲート入力
"L" レベル
"H" レベル
内部クロックモード時 (CSL0, CSL1 = 00B, 01B, or 10B)
表 14.2-3 MOD2, MOD1, MOD0 ビットの設定方法 (2)
MOD2
x
MOD1
MOD0
入力端子機能
有効エッジ , レベル
0
0
-
-
0
1
トリガ入力
立上りエッジ
1
0
立下りエッジ
1
1
両エッジ
• イベントカウンタモード時 (CSL0, CSL1=11B)
• 表中の×は , 任意の値
【bit6】OUTE
出力許可ビットです。"0" のとき TOT0 端子は汎用ポートになり , "1" のとき TOT0 端子
はタイマ出力端子になります。出力波形はリロードモード時トグル出力となり , ワン
ショットモード時はカウント中を示す矩形波出力になります。
208
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
【bit5】OUTL
TOT0 端子の出力レベルを設定するビットです。
表 14.2-4 OUTE, RELD, OUTL の設定方法
OUTE
RELD
OUTL
0
x
x
汎用ポート
1
0
0
カウント中 "H" の矩形波
1
0
1
カウント中 "L" の矩形波
1
1
0
カウントスタート時 "L" のトグル出力
1
1
1
カウントスタート時 "H" のトグル出力
出力波形
【bit4】RELD(Reload)
リロード動作を許可するビットです。"1" のときはリロードモードになり , カウンタの
値が 0000H → FFFFH へのアンダフローと同時にリロードレジスタの内容をカウンタへ
ロードしてカウント動作を続けます。"0" のときはワンショットモードとなり , カウン
タの値が 0000H → FFFFH へのアンダフローによりカウント動作を停止します。
【bit3】INTE(Interrupt enable)
タイマ割込み要求許可ビットです。"1" のとき UF ビットが "1" になると割込み要求を
発生します。"0" のときは UF ビットが "1" であっても割込み要求を発生しません。
【bit2】UF(Underflow)
タイマ割込み要求フラグです。カウンタの値が , 0000H → FFFFH へのアンダフローに
より "1" にセットされます。"0" の書込みまたはインテリジェント I/O サービスによっ
てクリアされます。このビットへの "1" 書込みは , 意味がありません。リードモディ
ファイライト系命令における読出し時には , "1" が読み出されます。
【bit1】CNTE(Count enable)
タイマのカウント許可ビットです。このビットに "1" を書き込むと , 起動トリガ待ち状
態になります。"0" 書込みによりカウント動作は停止します。
【bit0】TRG(Trigger)
ソフトウェアトリガビットです。"1" 書込みによりソフトウェアトリガがかかり , リ
ロードレジスタの内容をカウンタへロードしてカウント動作を開始します。"0" 書込み
動作は , 意味を持ちません。読出し値は , 常に "0" です。このレジスタによるトリガ入
力は , CNTE=1 のときのみ有効となります。CNTE=0 のときに , "1" 書込みをしても動
作に影響を与えません。
209
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.2.2
16 ビットタイマレジスタ (TMR0)/16 ビットリロード
レジスタ (TMRLR0) のレジスタ配置
16 ビットタイマレジスタ (TMR0) ( 読出し時 ) は , 16 ビットタイマのカウント値を
読み出すことができるレジスタです。初期値は不定です。このレジスタの読出しは ,
必ずワード転送命令で行ってください。
16 ビットリロードレジスタ (TMRLR0) ( 書込み時 ) は , カウントの初期値を保持し
ておくレジスタです。初期値は不定です。このレジスタへの書込みは , 必ずワード
転送命令で行ってください。
■ 16 ビットタイマレジスタ (TMR0)/16 ビットリロードレジスタ (TMRLR0) のレジスタ配置
TMR/TMRLR0 ( 上位 )
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
XXXXXXXXB
003541H
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TMR/TMRLR0 ( 下位 )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
003540H
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
210
初期値
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.3
16 ビットリロードタイマの内部 / 外部クロック動作
内部クロックの分周クロックでタイマを動作させる場合 , クロックソースとしてマ
シンクロックの 21, 23, 25 分周のクロックから選択できます。外部入力端子は , レジ
スタの設定により , トリガ入力またはゲート入力にすることができます。
外部クロックをセレクトすると TIN 端子は , 外部イベント入力端子となりレジスタ
で設定された有効エッジをカウントします。
■ 16 ビットリロードタイマの内部クロック動作
カウント許可と同時にカウント動作を開始したい場合は , 制御レジスタの CNTE ビッ
トと TRG ビットの両方に "1" を書き込んでください。TRG ビットによるトリガ入力は ,
タイマが起動状態のとき (CNTE=1) 動作モードにかかわらず常に有効です。
図 14.3-1 に , カウンタの起動およびカウンタの動作について示します。カウンタスター
トのトリガが入力されてからリロードレジスタのデータがカウンタへロードされるま
でに , T (T: マシンサイクル ) の時間が必要です。
図 14.3-1 16 ビットリロードタイマのカウンタの起動および動作
カウント
クロック
カウンタ
リロードデータ
-1
-1
-1
データロード
CNTE( ビット )
TRG( ビット )
T
■ 16 ビットリロードタイマの入力端子機能 ( 内部クロックモード時 )
クロックソースとして , 内部クロックを選択した場合 , TIN0 端子はトリガ入力または
ゲート入力として使用できます。トリガ入力として使用した場合 , 有効エッジが入力さ
れるとリロードレジスタの内容をカウンタにロードして , 内部プリスケーラをクリア
した後 , カウント動作を開始します。
TIN0 は , 2・T (T はマシンサイクル ) 以上のパルス幅を入力してください。図 14.3-2 に ,
トリガ入力の動作を示します。
211
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
図 14.3-2 16 ビットリロードタイマのトリガ入力の動作
カウント
クロック
立上りエッジ検出時
TIN
プリスケーラ
クリア
カウンタ
0000H
リロードデータ
-1-1
-1
ロード
2T ~
2.5T
ゲート入力として使用する場合 , 制御レジスタの MOD0 ビットにより設定される有効
レベルが , TIN0 端子から入力されている間のみカウントをします。このとき , カウン
トクロックは , 止まらずに動き続けます。ゲートモード時のソフトウェアトリガは ,
ゲートレベルにかかわらず可能です。TIN0 端子のパルス幅は , 2・T (T はマシンサイク
ル)
以上にしてください。図 14.3-3 に , ゲート入力の動作を示します。
図 14.3-3 16 ビットリロードタイマのゲート入力の動作
カウント
クロック
MOD0=1 とした場合 ( 入力 "H" の間カウント )
TIN
カウンタ
-1-1
-1
■ 外部イベントカウンタ
外部クロックをセレクトすると TIN0 端子は , 外部イベント入力端子となり , レジスタ
で設定された有効エッジをカウントします。TIN0 端子のパルス幅は , 4・T (T はマシン
サイクル ) 以上にしてください。
212
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.4
16 ビットリロードタイマのアンダフロー動作
16 ビットリロードタイマにより , カウンタ値が 0000H から FFFFH に変化したとき
にアンダフローが定義されますので , ( リロードレジスタ設定 +1) カウントの後でア
ンダフローが生じます。
■ 16 ビットリロードタイマのアンダフロー動作
アンダフロー発生時 , 制御レジスタの RELD ビットが "1" のときリロードレジスタの内
容をカウンタへロードしてカウント動作を継続し , "0" のときカウンタを FFFFH で停止
させます。
アンダフローが発生すると , 制御レジスタの UF ビットをセットし , このときに INTE
ビットが "1" であると割込み要求を発生します。
図 14.4-1 に , アンダフロー発生時の動作を示します。
図 14.4-1 16 ビットリロードタイマのアンダフロー動作
カウント
クロック
カウンタ
0000H
リロードデータ
-1-1
-1
データロード
アンダフロー
セット
[RELD=1]
カウント
クロック
カウンタ
0000H
FFFFH
アンダフロー
セット
[RELD=0]
213
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.5
16 ビットリロードタイマの出力端子機能
TOT0 端子はリロードモード時には , アンダフローにより反転するトグル出力とし
て , ワンショットモード時には , カウント中を示すパルス出力として機能します。
■ 16 ビットリロードタイマの出力端子機能
16 ビットリロードタイマの出力極性は , 制御レジスタの OUTL ビットにより設定でき ,
OUTL=0 のときトグル出力は , 初期値が "0" で , ワンショットパルス出力は , カウント中
"1" を出力します。OUTL=1 にすると出力波形は , 反転します。図 14.5-1 と図 14.5-2 に
出力端子機能を示します。
図 14.5-1 16 ビットリロードタイマの出力端子機能 (1)
カウントスタート
アンダフロー
OUTL=1 のときは反転
TOT
汎用ポート
OUTE
CNTE
起動トリガ
[RELD=1, OUTL=0]
図 14.5-2 16 ビットリロードタイマの出力端子機能 (2)
アンダフロー
OUTL=1 のとき
は反転
TOT
汎用ポート
OUTE
CNTE
起動トリガ
起動トリガ待ち状態
[RELD=0, OUTL=0]
214
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
14.6
カウンタの動作状態
カウンタの状態は , 制御レジスタの CNTE ビットと内部信号の WAIT 信号によって決
まります。設定可能な状態として CNTE=0, WAIT=1 の停止状態 (STOP 状態 ),
CNTE=1, WAIT=1 の起動トリガ待ち状態 (WAIT 状態 ), CNTE=1, WAIT=0 の動作状態
(RUN 状態 ) があります。
■ カウンタの動作状態
図 14.6-1 に , 各状態の遷移を示します。
図 14.6-1 カウンタの状態遷移
リセット
ハードウェアによる状態遷移
STOP
CNTE=0, WAIT=1
外部入力による状態遷移
レジスタアクセスによる状態遷移
TIN 端子 :入力禁止
TOT 端子:汎用ポート
カウンタ: 停止時の値を保持
リセット直後は不定
CNTE=0
CNTE=0
CNTE=1
TRG=0
WAIT
CNTE=1
TRG=1
CNTE=1, WAIT=1
RUN
TIN 端子 :TIN 端子として機能 *
TIN 端子 :トリガ入力のみ有効 *
TOT 端子 :OUTE=0 のとき , 汎用ポート
OUTE=1 のとき , 初期値出力
TOT 端子:OUTE=0 のとき , 汎用ポート
OUTE=1 のとき , TOT 端子として機能
RELD • UF
カウンタ:動作
カウンタ: 停止時の値を保持
リセット直後ロード
するまでは不定
TRG=1
TRG=1
LOAD
TIN から外部トリガ
CNTE=1, WAIT=0
CNTE=1, WAIT=0
リロードレジスタの内容を
カウンタへロード
RELD
UF
TIN から外部トリガ
ロード終了
*: TIN 端子使用前に該当する DDR のビットを "0" に設定する必要があります。
215
第 14 章 16 ビットリロードタイマ ( イベントカウント機能付 )
216
第 15 章
8/16 ビット PPG
8/16 ビット PPG の機能と概要について説明しま
す。
15.1 8/16 ビット PPG の概要
15.2 8/16 ビット PPG のブロックダイヤグラム
15.3 8/16 ビット PPG のレジスタ
15.4 8/16 ビット PPG の動作
15.5 8/16 ビット PPG のカウントクロックの選択
15.6 8/16 ビット PPG のパルスの端子出力の制御
15.7 8/16 ビット PPG の割込み
15.8 8/16 ビット PPG の各ハードウェアの初期値
217
第 15 章 8/16 ビット PPG
15.1
8/16 ビット PPG の概要
8/16 ビット PPG は , ハードウェアとして , 8 ビットダウンカウンタ 2 個 , 8 ビット
リロードレジスタ 4 個 , 16 ビット制御レジスタ 1 個 , 外部パルス出力端子 2 本およ
び割込み出力 2 本を有し , これらにより以下の機能を実現します。
■ 8/16 ビット PPG の機能
● 8 ビット PPG 出力 2 チャネル独立動作モード
2 チャネルの独立した PPG 出力動作が可能です。
● 16 ビット PPG 出力動作モード
1 チャネルの 16 ビットの PPG 出力動作が可能です。
PPG0+PPG1, PPG2+PPG3, PPG4+PPG5, PPG6+PPG7, PPG8+PPG9, PPGA+PPGBの組合せ
で使用します。
● 8+8 ビット PPG 出力動作モード
ch.0 の出力を ch.1 のクロック入力とすることにより , 任意周期の 8 ビット PPG 出力動
作が可能です。
● PPG 出力動作
任意周期・デューティ比のパルス波を出力します。外付け回路により D/A コンバータ
としても使用可能です。
MB90945 シリーズには 6 本の PPG があります。次節では PPG0/PPG1 の機能について
のみ記述します。残りの PPG も同じ機能を持ち , レジスタアドレスについては I/O マッ
プに記しています。
図 15.1-1 に , PPG モジュールと外部端子の接続を示します。
図 15.1-1 PPG モジュールと外部端子の関係
PPG0 / PPG1
PPG2 / PPG3
内部モジュール
PPG4 / PPG5
PPG6 / PPG7
PPG8 / PPG9
PPGA / PPGB
218
PPG00
PPG10
PPG01
PPG11
PPG02
PPG12
PPG03
PPG13
PPG04
PPG14
PPG05
PPG15
外部端子
第 15 章 8/16 ビット PPG
15.2
8/16 ビット PPG のブロックダイヤグラム
図 15.2-1 に , 8/16 ビット PPG(ch.0) のブロックダイヤグラムを , 図 15.2-2 に , 8/16
ビット PPG(ch.1) のブロックダイヤグラムを示します。
■ 8/16 ビット PPG のブロックダイヤグラム
図 15.2-1 8 ビット PPG(ch.0) のブロックダイヤグラム
PPG00 出力許可
PPG00
周辺クロック 16 分周
周辺クロック 8 分周
周辺クロック 4 分周
周辺クロック 2 分周
周辺クロック
PPG00
出力ラッチ
反転
クリア
PEN0
カウント
クロック選択
タイムベースカウンタの出力
メインクロックの 512 分周
"L"/"H" セレクト
PCNT
( ダウンカウンタ )
S
RQ
MB90945 シリーズでは , この IRQ
信号は OR 論理によりチャネル 1 の
IRQ 信号とマージされます。
IRQ
リロード
ch.1- ボロー
"L"/"H" セレクタ
PRLL0
PRLH0
PRLBH0
(テンポラリバッファ)
PIE0
PUF0
"L" 側データバス
"H" 側データバス
PPGC0
( 動作モード制御 )
219
第 15 章 8/16 ビット PPG
図 15.2-2 8 ビット PPG(ch.1) のブロックダイヤグラム
PPG10 出力許可
周辺クロック 16 分周
周辺クロック 8 分周
周辺クロック 4 分周
周辺クロック 2 分周
周辺クロック
PPG10
PPG10
出力ラッチ
カウント
クロック
選択
クリア
反転
PEN1
S
RQ
PCNT
( ダウンカウンタ )
ch.1- ボロー
タイムベースカウンタの出力
メインクロックの 512 分周
"L"/"H" セレクト
MB90945 シリーズでは , この IRQ
信号は OR 論理によりチャネル 0 の
IRQ 信号とマージされます。
IRQ
リロード
"L"/"H" セレクタ
PRLL1
PRLBH0
(テンポラリバッファ)
PIE1
PRLH1
PUF1
"L" 側データバス
"H" 側データバス
PPGC1
( 動作モード制御 )
220
第 15 章 8/16 ビット PPG
● ブロックダイヤグラム中の端子などの詳細
8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 15.2-1 に示します。
表 15.2-1 ブロックダイヤグラムの端子および割込み要求番号
チャネル
出力端子
PPG0
P56 / PPG00
PPG1
P50 / PPG10
PPG2
P57 / PPG01
PPG3
P51 / PPG11
PPG4
PB0 / PPG02
PPG5
P52/ PPG12
PPG6
PB1 / PPG03
PPG7
P53/ PPG13
PPG8
PB2/ PPG04
PPG9
P54 / PPG14
PPGA
PB3 / PPG05
PPGB
P55 / PPG15
割込み要求番号
#17 (11H)
#18 (12H)
#19 (13H)
#20 (14H)
#21 (15H)
#22 (16H)
● PPG1 動作モード制御レジスタ (PPGC1)
8/16 ビット PPG タイマの動作モードを設定します。8/16 ビット PPG タイマ 1 の動作 ,
端子出力 , アンダフロー割込みを許可または禁止します。また , アンダフローの発生を
示します。
● PPG0/1 カウントクロック選択レジスタ (PPG01)
8/16 ビット PPG タイマのカウントクロックを設定します。
● PPG1 リロードレジスタ (PRLH1, PRLL1)
出力パルスの "H" 幅 , "L" 幅を設定します。PPG1 リロードレジスタに設定した値は , 8/
16 ビット PPG タイマ 1 が起動すると PPG1 ダウンカウンタ (PCNT1) にリロードされま
す。
● PPG1 ダウンカウンタ (PCNT1)
PPG1 リロードレジスタ (PRLH1, PRLL1) の設定値を交互にリロードしてカウントダウ
ンする , 8 ビットのダウンカウンタです。アンダフローが発生すると , 端子出力を反転
します。2 チャネルの PPG ダウンカウンタ (PPG0, PPG1) を連結して , 1 チャネルの 16
ビット PPG ダウンカウンタとして使用することもできます。
● PPG1 テンポラリバッファ (PRLBH1)
PPG リロードレジスタ (PRLH1, PRLL1) への書込みのタイミングによって起こる出力
パルス幅のズレを防止するバッファです。PRLH1 の値を一時的に記憶し , PRLL1 への
書込みのタイミングに同期させて PRLH1 の設定値を有効にします。
221
第 15 章 8/16 ビット PPG
● リロードレジスタ L/H セレクタ
"L" 側および "H" 側のリロードレジスタ (PRLL1, PRLH1) のどちらを PPG1 ダウンカウ
ンタにリロードするか , 現在の端子出力レベルを検出して選択します。
● カウントクロックセレクタ
5 種類のマシンクロックの分周クロック , またはタイムベースタイマの分周クロックか
ら , PPG1 ダウンカウンタに入力するカウントクロックを選択します。
● PPG 出力制御回路
端子出力レベル , およびアンダフロー発生による出力反転を行います。
222
第 15 章 8/16 ビット PPG
15.3
8/16 ビット PPG のレジスタ
8/16 ビット PPG のレジスタには , 次の 5 つがあります。
• PPG0 (2, 4, 6, 8, A) 動作モード制御レジスタ (PPGCn)
• PPG1 (3, 5, 7, 9, B) 動作モード制御レジスタ (PPGCm)
• PPG0/1 (23, 45, 67, 89, AB) クロック選択レジスタ
• リロードレジスタ H
• リロードレジスタ L
■ 8/16 ビット PPG のレジスタ
図 15.3-1 8/16 ビット PPG のレジスタ
PPGn 動作モード制御レジスタ
PPGCn
アドレス
ch.0
ch.2
ch.4
ch.6
ch.8
ch.A
000038H
00003CH
000040H
000044H
000048H
00004CH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
PEN0
-
PE00
PIE0
PUF0
-
-
予約
0-000--1
R/W
-
R/W
R/W
R/W
-
-
W
PPGm 動作モード制御レジスタ
PPGCm
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ch.1
ch.3
ch.5
ch.7
ch.9
ch.B
PEN1
-
PE10
PIE1
PUF1
MD1
MD0
予約
0-000001
R/W
-
R/W
R/W
R/W
R/W
R/W
W
bit4
bit3
bit2
bit1
bit0
初期値
PCM0
-
-
000000--
R/W
-
-
000039H
00003DH
000041H
000045H
000049H
00004DH
PPGnm 動作モード選択レジスタ
PPGCnm
アドレス
ch.01
ch.23
ch.45
ch.67
ch.89
ch.AB
00003AH
00003EH
000042H
000046H
00004AH
00004EH
bit7
bit6
bit5
PCS2
PCS1
PCS0
R/W
R/W
R/W
PCM2 PCM1
R/W
R/W
n=0, 2, 4, 6, 8, A
m=1, 3, 5, 7, 9, B
(続く)
223
第 15 章 8/16 ビット PPG
(続き)
リロードレジスタ (H)
PRLHn
PRLHm
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
ch.8
ch.9
ch.A
ch.B
003501H
003503H
003505H
003507H
003509H
00350BH
00350DH
00350FH
003511H
003513H
003515H
003517H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
XXXXXXXX
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リロードレジスタ (L)
PRLLn
PRLLm
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
ch.8
ch.9
ch.A
ch.B
R/W
W
X
-
224
003500H
003502H
003504H
003506H
003508H
00350AH
00350CH
00350EH
003510H
003512H
003514H
003516H
初期値
XXXXXXXX
:リード / ライト可能
:ライトオンリ
:不定
:未定義
n=0, 2, 4, 6, 8, A
m=1, 3, 5, 7, 9, B
第 15 章 8/16 ビット PPG
15.3.1
PPG0 動作モード制御レジスタ (PPGC0)
PPG0 動作モード制御レジスタ (PPGC0) は , 8/16 ビット PPG の動作モードの選択 ,
端子出力制御 , カウントクロック選択およびトリガの制御を行う 5 ビットの制御レ
ジスタです。
■ PPG0 動作モード制御レジスタ (PPGC0)
図 15.3-2 PPG0 動作モード制御レジスタ (PPGC0) の構成
PPG0 動作モード制御レジスタ
アドレス:
ch.0, 000038H
Other ch.:
ch.2 00003CH
ch.4 000040H
ch.6 000044H
ch.8 000048H
ch.A 00004CH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PEN0
-
PE00
PIE0
PUF0
-
-
予約
R/W
R/W
-
-
W
R/W
-
R/W
PRGC0
初期値
0X000XX1
bit0
予約
1
予約ビット
PPGC0 を設定したとき , 常にこのビット
を "1" に設定
bit3
0
PPG カウンタアンダフローフラグ
PPG カウンタアンダフローは検出されない
1
PPG カウンタアンダフローは検出される
PUF0
bit4
PIE0
PPG 割込みイネーブル
0
割込みディセーブル
1
割込みイネーブル
bit5
PE00
PPG 出力イネーブル 00
0
パルス出力ディセーブル ( 汎用ポート )
1
パルス出力イネーブル
bit7
PEN0
R/W
W
: リード / ライト可能
: ライトオンリ
X
不定
: 未定義
: 初期値
-
0
1
PPG イネーブル
ストップ ("L" レベル出力保持 )
PPG 動作イネーブル
:
225
第 15 章 8/16 ビット PPG
表 15.3-1 PPG0 動作モード制御レジスタのビット機能説明
ビット名
機能
PEN0:
動作許可ビット
"1" に設定されているとき , PPG カウンタ動作を許可します。"0" に設
定されているとき , 動作が禁止で , 出力が許可のとき (bit5)"L" レベル
は出力に維持されます。
未定義ビット
ライトした場合 : 影響しません。
リードした場合 : 値は不定です。
bit 5
PE00:
PPG00 端子出力
許可ビット
"1" に設定されているとき , パルス出力を許可します。MB90945 シ
リーズでは , パルス信号は , "PPG00" 外部端子に出力されます。"0" に
設定されているとき , 汎用ポートとして使用できます。
bit 4
PIE0:
PPG の割込み
許可ビット
本ビットが "1" のとき , PUF0 が "1" になると割込み要求を発生しま
す。本ビットが "0" のときは割込み要求を発生しません。
PUF0:
PPG カウンタ
アンダフロー
ビット
8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8 ビット
PPG モードのときには , ch.0 のカウンタの値が 00H ~ FFH となったと
bit 7
bit 6
bit 3
きのアンダフローにより "1" にセットされます。16 ビット PPG モード
のときには , ch.1/ch.0 のカウンタの値が 0000H から FFFFH となったと
きのアンダフローにより "1" にセットされます。"0" の書込みにより
"0" になります。このビットへの "1" 書込みは , 意味がありません。
リードモディファイライト系命令の読出し時には "1" が読まれます。
bit 2,
bit 1
bit 0
226
未定義ビット
ライトした場合 : 影響しません。
リードした場合 : 値は不定です。
予約ビット
予約ビットです。PPGC0 を設定するときは必ず "1" に設定してくださ
い。
第 15 章 8/16 ビット PPG
15.3.2
PPG1 動作モード制御レジスタ (PPGC1)
PPG1 動作モード制御レジスタ (PPGC1) は , 8/16 ビット PPG の動作モードの選択 ,
端子出力制御 , カウントクロック選択およびトリガの制御を行う 7 ビットの制御レ
ジスタです。
■ PPG1 動作モード制御レジスタ (PPGC1)
図 15.3-3 PPG1 動作モード制御レジスタ (PPGC1) の構成
PPG1 動作モード制御レジスタ
アドレス:
ch.1 000039H
Other ch.:
ch.3 0003DH
ch.5 00041H
ch.7 00045H
ch.9 00049H
ch.B 0004DH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
PEN1
-
PE10
PIE1
PUF1
MD1
MD0
予約
R/W
-
R/W
R/W
R/W
R/W
R/W
W
PRGC1
初期値
0X000001
bit0
予約
1
予約ビット
PPGC1 を設定したとき , 常にこのビット
を "1" に設定
bit10
bit9
MD1
MD0
0
0
PPG カウントモード
8 ビット PPG 2 チャネル独立モード
0
1
8 ビットプリスケーラ +8 ビット PPG 1 チャネルモード
1
0
1
1
予約
16 ビット PPG 1 チャネルモード
bit11
PUF1
0
1
PPG カウンタアンダフローフラグ
PPG カウンタアンダフローは検出されない
PPG カウンタアンダフローは検出される
bit12
0
PPG 割込みイネーブル
割込みディセーブル
1
割込みイネーブル
PIE1
bit13
PE10
0
PPG 出力イネーブル 10
パルス出力ディセーブル ( 汎用ポート )
1
パルス出力イネーブル
bit15
0
PPG イネーブル
ストップ ("L" レベル出力保持 )
1
PPG 動作イネーブル
PEN1
R/W
W
: リード / ライト可能
: ライトオンリ
X
: 不定
-
: 未定義
: 初期値
227
第 15 章 8/16 ビット PPG
表 15.3-2 PPG1 動作モード制御レジスタのビット機能説明
ビット名
機能
PEN1:
動作許可ビット
"1" に設定されているとき , PPG カウンタ動作を許可します。"0"
に設定されているとき , 動作が禁止で , 出力が許可のとき (bit13)
"L" レベルは出力に維持されます。
未定義ビット
ライトした場合 : 影響しません。
リードした場合 : 値は不定です。
bit 13
PE10:
PPG10 端子出力
許可ビット
"1" に設定されているとき , パルス出力を許可します。MB90945
シリーズでは , パルス信号は , "PPG10" 外部端子に出力されます。
"0" に設定されているとき , 汎用ポートとして使用できます。
bit 12
PIE1:
PPG の割込み
許可ビット
本ビットが "1" のとき , PUF1 が "1" になると割込み要求を発生し
ます。本ビットが "0" のときは割込み要求を発生しません。
PUF1:
PPG カウンタ
アンダフロー
ビット
8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8
ビット PPG モードのときには , ch.0 のカウンタの値が 00H から
bit 15
bit 14
bit 11
FFH となったときのアンダフローにより "1" にセットされます。
16 ビット PPG モードのときには , ch.1/ch.0 のカウンタの値が
0000H から FFFFH となったときのアンダフローにより "1" にセッ
トされます。"0" の書込みにより "0" になります。このビットへ
の "1" 書込みは , 意味がありません。リードモディファイライト
系命令の読出し時には "1" が読まれます。
MD1, MD0:
PPG カウント
モード
図 15.3-3 で説明されているように , このビットは PPG タイマ動作
モードを選択します。
ビットを "10B" に設定しないでください。
ビットを "01B" に設定する場合には , PPGC0 の PEN0 ビット /
bit 10,
bit 9
PPGC1 の PEN1 ビットを "01B" に設定しないでください。また ,
PEN0 ビットおよび PEN1 ビットを同時に "11B" または "00B" に
セットすることを推奨します。ビットを "11B" に設定する場合に
は , PPGC0/PPGC1 をワード転送で書き換え , PEN0 ビットおよび
PEN1 ビットを同時に "11B" または "00B" にセットしてください。
bit 8
228
予約ビット
予約ビットです。PPGC1 を設定するときは必ず "1" に設定してく
ださい。
第 15 章 8/16 ビット PPG
15.3.3
PPG0/1 クロック選択レジスタ (PPG01)
PPG0/1 クロック選択レジスタ (PPG01) は , 8/16 ビット PPG のカウンタクロック
の制御を行う 8 ビットの制御レジスタです。
■ PPG0, 1 クロック選択レジスタ (PPG01)
図 15.3-4 PPG0/1 クロック選択レジスタ (PPG01) の構成
PPG0/1 クロック選択レジスタ
アドレス:
ch.01 00003A H
Other ch.:
ch.23 00003E H
ch.45 000042 H
ch.67 000046 H
ch.89 00004A H
ch.AB 00004E H
bit7
bit6
bit5
bit4
bit3
bit2
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
bit1
bit0
-
-
PPG01
初期値
000000XX
R/W
R/W
R/W
R/W
R/W
R/W
-
bit4
bit3
bit2
PCM2
PCM1
PCM0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
1
1
bit7
bit6
bit5
PCS2
PCS1
PCS0
0
0
0
0
0
1
カウントクロック選択ビット (ch.0)
周辺クロック
周辺クロック /2
周辺クロック /4
周辺クロック /8
周辺クロック /16
タイムベースタイマからのクロック入力
カウントクロック選択ビット (ch.1)
0
1
0
R/W
:
リード / ライト可能
0
1
1
X
:
不定
1
0
0
周辺クロック
周辺クロック /2
周辺クロック /4
周辺クロック /8
周辺クロック /16
-
:
1
1
1
タイムベースタイマからのクロック入力
:
未定義
初期値
229
第 15 章 8/16 ビット PPG
表 15.3-3 クロック選択レジスタ (PPG01) のビット機能説明
ビット名
PCS2 ~ PCS0 :
カウントクロック
選択ビット (ch.1)
bit 7
~
bit 5
機能
ch.1 のダウンカウンタの動作クロックを , 次のように選択します。
( 注意事項 )
8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット
PPG モードのときには , ch.1 の PPG は , ch.0 からカウンタクロッ
クを受けて動作するため , PCS2 ~ PCS0 ビットの指定は , 無効に
なります。
PCS2 PCS1 PCS0
PCM2 ~ PCM0 :
カウントクロック
選択ビット (ch.0)
0
0
0
周辺クロック (62.5 ns マシンクロック , 16 MHz)
0
0
1
周辺クロック /2 (125 ns マシンクロック , 16 MHz)
0
1
0
周辺クロック /4 (250 ns マシンクロック , 16 MHz)
0
1
1
周辺クロック /8 (500 ns マシンクロック , 16 MHz)
1
0
0
1
1
1
周辺クロック /16 (1 ms マシンクロック , 16 MHz)
タイムベースタイマからのクロック入力
(128 ms, 4 MHz 原発振 )
ch.0 のダウンカウンタの動作クロックを , 次のように選択します。
PCM2 PCM1PCM0
0
bit 4
~
bit 2
230
動作モード
0
動作モード
0
周辺クロック (62.5 ns マシンクロック , 16 MHz)
周辺クロック /2 (125 ns マシンクロック , 16 MHz)
0
0
1
0
1
0
周辺クロック /4 (250 ns マシンクロック , 16 MHz)
0
1
1
周辺クロック /8 (500 ns マシンクロック , 16 MHz)
1
0
0
1
1
1
周辺クロック /16 (1 ms マシンクロック , 16 MHz)
タイムベースタイマからのクロック入力
(128 ms, 4 MHz 原発振 )
第 15 章 8/16 ビット PPG
15.3.4
リロードレジスタ (PRLL, PRLH)
リロードレジスタ (PRLL, PRLH) は , ダウンカウンタ PCNT へのリロード値を保持
する , 各 8 ビットのレジスタです。PRLL, PRLH レジスタは , どちらもリード / ライ
トが可能です。
■ リロードレジスタ (PRLL, PRLH)
図 15.3-5 リロードレジスタ (PRLL, PRLH)
リロードレジスタ (H)
PRLHn
bit15
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
ch.8
ch.9
ch.A
ch.B
003501H
003503H
003505H
003507H
003509H
00350BH
00350DH
00350FH
003511H
003513H
003515H
003517H
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
XXXXXXXX
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit6
bit5
bit4
bit3
bit2
bit1
bit0
リロードレジスタ (L)
PRLLn
bit7
アドレス
ch.0
ch.1
ch.2
ch.3
ch.4
ch.5
ch.6
ch.7
ch.8
ch.9
ch.A
ch.B
003500H
003502H
003504H
003506H
003508H
00350AH
00350CH
00350EH
003510H
003512H
003514H
003516H
初期値
XXXXXXXX
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
n=0, 1, ..., 9, A, B
R/W :リード / ライト可能
X
:不定
表 15.3-4 リロードレジスタの機能
レジスタ名
機能
PRLLn
"L" 側リロード値保持
PRLHn
"H" 側リロード値保持
<注意事項>
8 ビットプリスケーラ +8 ビット PPG モードで使用する場合には , ch.0 の PRLL と PRLH
に異なる値を設定すると , ch.1 の PPG 波形がサイクルごとに異なる場合があるので , ch.0
の PRLL と PRLH は , 同じ値に設定することを推奨します。
231
第 15 章 8/16 ビット PPG
15.4
8/16 ビット PPG の動作
8/16 ビット PPG には , 8 ビット長の PPG ユニットが 2 チャネルあり , 2 チャネル独
立モード以外に , 連結動作させることにより , 8 ビットプリスケーラ +8 ビット PPG
モードと , 16 ビット PPG1 チャネルモードの計 3 種類で動作できます。
■ 8/16 ビット PPG の動作
8 ビット長の PPG ユニットそれぞれは , 8 ビット長のリロードレジスタが "L" 側と "H"
側の 2 本あります (PRLL, PRLH)。このレジスタに書き込まれた値が , 8 ビットダウン
カウンタ (PCNT) に "L" 側 /"H" 側交互にリロードされてカウントクロックごとにダウ
ンカウントされ , カウンタのボロー発生によるリロード時に , 端子出力の値を反転させ
ます。この動作により , 端子出力はリロードレジスタ値に対応した "L" 幅 /"H" 幅をも
つパルス出力となります。
表 15.4-1 に , リロード動作とパルス出力の関係を示します。
表 15.4-1 リロード動作とパルス出力の関係
リロード動作
端子出力変化
PRLH --> PCNT
PPG0/PPG1 [0 --> 1]
立上り
PRLL --> PCNT
PPG0/PPG1 [1 --> 0]
立下り
また , PPGC0 の bit4(PIE0) が "1" または PPGC1 の bit12(PIE1) が "1" の場合 , それぞれ
のカウンタの 00H ~ FFH へのボロー (16 ビット PPG モードの場合には , 0000H ~ FFFFH
へのボロー ) によって割込み要求が出力されます。
■ 8/16 ビット PPG の動作モード
8/16 ビット PPG の動作モードには , 2 チャネル独立モードと , 8 ビットプリスケーラ +8
ビット PPG モードと , 16 ビット PPG1 チャネルモードの計 3 種類の動作モードがあり
ます。
● 2 チャネル独立モード
2 チャネル独立モードは , 8 ビット PPG として 2 チャネル独立に動作させる動作モード
です。PPG00 端子は , ch.0 の PPG 出力が接続され , PPG10 端子は , ch.1 の PPG 出力が
接続されます。
● 8 ビットプリスケーラ +8 ビット PPG モード
8 ビットプリスケーラ +8 ビット PPG モードは , ch.0 を 8 ビットプリスケーラとして動
作させ , ch.1 を ch.0 のボロー出力でカウントすることにより , 任意周期の 8 ビット PPG
波形を出力できるようにする動作モードです。PPG00 端子は , ch.0 のプリスケーラ出
力が接続され , PPG10 端子は , ch.1 の PPG 出力が接続されます。
232
第 15 章 8/16 ビット PPG
● 16 ビット PPG1 チャネルモード
16 ビット PPG1 チャネルモードは , ch.0 と ch.1 を連結させて , 16 ビットの PPG として
動作させる動作モードです。PPG00 端子と PPG10 端子は , 両方とも 16 ビット PPG 出
力が接続されます。
■ 8/16 ビット PPG の出力動作
8/16 ビット PPG は , ch.0 の PPG については , PPGC0 (PWM 動作モード制御レジスタ )
の bit7(PEN0) を "1" に , ch.1 の PPG については , PPGC1 レジスタの bit15(PEN1) を "1"
にセットすることによって起動され , カウントを開始します。動作を開始した後は ,
PPGC0 の bit7(PEN0) または PPGC1 の bit15(PEN1) に "0" を書き込むことによってカウ
ント動作を停止し , 停止した後 , パルス出力は "L" レベルを保持します。
8 ビットプリスケーラ +8 ビット PPG モードのときには , ch.0 を停止状態で , ch.1 を動
作状態に設定しないでください。
16 ビット PPG モードのときには PPGC0 レジスタの bit7 (PEN0) および PPGC1 レジス
タの bit15 (PEN1) を同時に起動または停止する必要があります。下記の図に , PPG 出力
動作を示します。PPG 動作中に , パルス波を周波数およびデューティ比で ( パルス波の
"H" レベルの比を "H" レベルに ) 連続して出力します。停止状態が明確に指定されるま
で PPG は動作を続けます。
図 15.4-1 PPG 出力動作の出力波形
PEN0/1出力端子
PEN0/1 により動作開始 ("L" 側から )
PPG出力端子
T
( スタート )
(L+1)
T
(H+1)
L : PRLL の値
H : PRLH の値
T : 周辺クロック (φ, φ/4, φ/16)
またはタイマベースカウンタからの入
力 (PPG01 のクロックセレクトによる )
233
第 15 章 8/16 ビット PPG
■ 8/16 ビット PPG のリロード値とパルス幅の関係
リロードレジスタに書かれた値に +1 した値に , カウントクロックの周期を掛けた値が ,
出力されるパルスの幅となります。
8 ビット PPG 動作時のリロードレジスタ値が 00H のときまたは 16 ビット PPG 動作時
のリロードレジスタ値が 0000H のときは , カウントクロック 1 周期分のパルス幅をも
つことになりますので注意してください。また , 8 ビット PPG 動作時のリロードレジ
スタ値が FFH のとき , カウントクロック 256 周期分のパルス幅をもつことになり , 16
ビット PPG 動作時のリロードレジスタ値が FFFFH のときは , カウントクロック 65536
周期分のパルス幅をもつことになりますので注意してください。
Pl=T x (L+1)
Ph=T x (H+1)
234
{
L
H
T
Ph
Pl
:
:
:
:
:
PRLL の値
PRLH の値
入力クロック周期
ハイパルスの幅
ローパルスの幅
第 15 章 8/16 ビット PPG
15.5
8/16 ビット PPG のカウントクロックの選択
8/16 ビット PPG の動作に使用するカウントクロックは , 周辺クロックまたはタイム
ベースタイマの入力を使用しており , 6 種類のカウントクロック入力が選択できま
す。
■ 8/16 ビット PPG のカウントクロックの選択
PPG0/PPG1 クロック選択レジスタ (PPG01) の bit4 ~ bit2 (PCM2 ~ PCM0) で ch.0 のク
ロックを , bit7 ~ bit5 (PCS2 ~ PCS0) で ch.1 のクロックを選択します。
クロックは , マシンクロックの 1/16 ~ 1 倍の周辺クロックとタイムベースタイマから
の入力クロックより選択できます。
しかし , 8 ビットプリスケーラ +8 ビット PPG モードまたは 16 ビット PPG モードのと
きには , PCS2 ~ PCS0 を設定しても意味はありません。
タイムベースタイマの入力を使用した場合 , トリガまたはストップの後の最初のカウ
ント周期がずれる可能性がありますので注意してください。また , 本モジュール動作中
にタイムベースカウンタのクリアを行うと周期がずれることがあります。
8 ビットプリスケーラ +8 ビット PPG モード・ch.0 が動作状態 , ch.1 が停止状態である
ときに ch.1 の起動を行うと , 最初のカウント周期がずれる可能性がありますので注意
してください。
235
第 15 章 8/16 ビット PPG
15.6
8/16 ビット PPG のパルスの端子出力の制御
本モジュールの動作によって生成されたパルス出力は , 外部端子 PPG00/PPG10 よ
り出力されます。
■ 8/16 ビット PPG のパルスの端子出力の制御
端子出力許可ビット (PPGC0:PE00, PPGC1:PE10) が "0" のとき ( 初期値 ) は , パルス出
力は外部端子より出力されずに , 汎用ポートとして機能します。本ビットに "1" を設定
すると , パルス出力が外部端子より出力されます。
16 ビット PPG モードでは , PPG00, PPG10 は同じ波形が出力されるので , どちらの外部
端子出力を許可しても同じ出力を得ることができます。
8 ビットプリスケーラ +8 ビット PPG モードでは , PPG00 は 8 ビットプリスケーラのト
グル出力波形が出力され , PPG10 は 8 ビット PPG の波形が出力されます。このモード
のときの出力波形の例を図 15.6-1 に示します。
図 15.6-1 8+8PPG 出力動作の出力波形
Ph0
Pl0
PPG00
PPG10
Ph1
Pl0 = T × (L0+1)
Ph0 = T × (L0+1)
Pl1 = T × (L0+1) × (L1+1)
Ph1 = T × (L0+1) × (H1+1)
Pl1
L0
L1
H1
T
Ph0
Pl0
Ph1
Pl1
: ch.0 の PRLL の値および ch.0 の PRLH 値
: ch.1 の PRLL の値
: ch.1 の PRLH の値
: 入力クロック周期
: PPG00 の "H" パルスの幅
: PPG00 の "L" パルスの幅
: PPG10 の "H" パルスの幅
: PPG10 の "L" パルスの幅
<注意事項>
ch.0 の PRLL と ch.0 の PRLH は , 同じ値を設定することを推奨します。
236
第 15 章 8/16 ビット PPG
15.7
8/16 ビット PPG の割込み
8/16 ビット PPG の割込みは , リロード値がカウントアウトし , ボローが発生したと
きにアクティブになります。
■ 8/16 ビット PPG の割込み
8 ビット PPG2 チャネルモードまたは 8 ビットプリスケーラ +8 ビット PPG モードのと
きには, それぞれのカウンタのボローにより, それぞれの割込みの要求が行われますが,
16 ビット PPG モードでは , 16 ビットカウンタのボローにより , PUF0 と PUF1 が同時に
セットされます。このため , 割込み要因を一本化するために , PIE0 または PIE1 のどち
らか一方のみを許可にすることを推奨します。また , 割込みフラグのクリアも PUF0 と
PUF1 を同時に行うことを推奨します。
237
第 15 章 8/16 ビット PPG
15.8
8/16 ビット PPG の各ハードウェアの初期値
8/16 ビット PPG の各ハードウェアは , リセット時に以下のように初期化されます。
■ 8/16 ビット PPG の各ハードウェアの初期値
● レジスタ
• PPGC0 → 0X000XX1B
• PPGC1 → 0X000001B
• PPG01 → 000000XXB
● パルス出力
• PPG00 → "L"
• PPG10 → "L"
• PE00 → PPG00 出力禁止
• PE10 → PPG10 出力禁止
● 割込み要求
• IRQ0 → "L"
• IRQ1 → "L"
なお , 上記以外のハードウェアは初期化されません。
<注意事項>
16 ビット PPG モード以外のモードの場合には , リロードレジスタ (PRLL, PRLH) への書
込みはワード転送命令を使用することを推奨します。なお , バイト転送命令 2 回にて書き
込んだ場合 , タイミングによっては , 予想しないパルス幅の出力が発生する可能性があり
ますので注意してください。
図 15.8-1 8/16 ビット PPG のリロードレジスタ (PRLL, PRLH) へのライトタイミングチャート
PPG端子
B
A
B
A
C
①
B
C
C
D
D
図 15.8-1 のタイムチャートにおいて , ①のタイミングの前で PRLL を A から C に書き
換えて , ①の後 PRLH の値を B から D に書き換えた場合 , ①のタイミングでの PRL の
値は PRLL=C, PRLH=B のため 1 回だけ "L" 側のカウント数 C, "H" 側のカウント数 B の
パルスが発生されます。
同様に , 16 ビット PPG モードで使用する場合には , ch.0 と ch.1 の PRL はロングワード
転送命令で書き込むか , または ch.0 → ch.1 の順にワード転送命令で書き込んでくださ
い。このモードのときには , ch.0 の PRL への書込みは , 一時的に書き込まれ , その後
238
第 15 章 8/16 ビット PPG
ch.1 の PRL に書込みを行った時点で , 実際に ch.0 の PRL への書込みが行われます。
なお , 16 ビット PPG モード以外では , ch.0 と ch.1 の PRL の書込みは独立して行うこと
ができます。
図 15.8-2 PRL 書込み動作のブロックダイヤグラム
ch.0 の PRL の書込みデータ
テンポラリラッチ
16 ビット PPG モード以外の
ときの ch.0 の書込み
ch.1 の PRL の書込みデータ
16 ビット PPG モード時
ch.1 の書込みに同期し
て転送
ch.1 の書込み
ch.0 PRL
ch.1 PRL
239
第 15 章 8/16 ビット PPG
240
第 16 章
DTP/ 外部割込み
DTP/ 外部割込みの機能と動作について説明しま
す。
16.1 DTP/ 外部割込みの概要
16.2 DTP/ 外部割込みのレジスタ
16.3 DTP/ 外部割込みの動作
16.4 DTP 要求と外部割込み要求の切換え
16.5 DTP/ 外部割込みの使用上の注意
241
第 16 章 DTP/ 外部割込み
16.1
DTP/ 外部割込みの概要
DTP( データ転送周辺 ) はデバイス外部に存在する周辺と F2MC-16LX CPU との間に
あって , 外部周辺が発生する DMA 要求または割込み要求を受け取り , これを F2MC16LX CPU に伝えてインテリジェント I/O サービスまたは割込み処理を起動させる
ための周辺です。
■ DTP/ 外部割込みの概要
インテリジェント I/O サービスに関しては "H" または "L" 要求レベルを使用できます。
外部割込み要求に対しては , "H", "L" のほか , 立上りエッジおよび立下りエッジの 4 種
類の要求レベルを使用できます。
MB90945 シリーズでは , 外部バスインタフェースはサポートされていません。このた
め , DTP/ 外部割込みはデータ転送周辺としての機能ではなく , 外部割込みとしてのみ
使用できます。
■ DTP/ 外部割込みのブロックダイヤグラム
図 16.1-1 DTP/ 外部割込みのブロックダイヤグラム
8
8
8
16
242
割込み /DTP 許可レジスタ
ゲート
要因 F/F
割込み /DTP 要因レジスタ
要求レベル設定レジスタ
エッジ検出回路
8
要求入力
第 16 章 DTP/ 外部割込み
■ DTP/ 外部割込みのレジスタ
割込み /DTP 許可レジスタ (ENIR)
アドレス
000030H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
EN7
R/W
EN6
R/W
EN5
R/W
EN4
R/W
EN3
R/W
EN2
R/W
EN1
R/W
EN0
R/W
初期値
00000000B
外部割込み要求レジスタ (EIRR)
アドレス
000031H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ER7
R/W
ER6
R/W
ER5
R/W
ER4
R/W
ER3
R/W
ER2
R/W
ER1
R/W
ER0
R/W
初期値
00000000B
要求レベル設定レジスタ (ELVR)
アドレス
000032H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LB3
R/W
LA3
R/W
LB2
R/W
LA2
R/W
LB1
R/W
LA1
R/W
LB0
R/W
LA0
R/W
初期値
00000000B
要求レベル設定レジスタ (ELVR)
アドレス
000033H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
LB7
R/W
LA7
R/W
LB6
R/W
LA6
R/W
LB5
R/W
LA5
R/W
LB4
R/W
LA4
R/W
初期値
00000000B
R/W :リード / ライト可能
243
第 16 章 DTP/ 外部割込み
16.2
DTP/ 外部割込みのレジスタ
DTP/ 外部割込みのレジスタには , 次の 3 つがあります。
• 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ )
• 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ )
• 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ )
■ 割込み /DTP 許可レジスタ (ENIR: 割込み要求許可レジスタ )
ENIR
bit14
bit13
bit12
bit11
bit10
bit9
bit8
EN7
EN6
R/W
R/W
R/W :リード / ライト可能
EN5
R/W
EN4
R/W
EN3
R/W
EN2
R/W
EN1
R/W
EN0
R/W
アドレス
000030H
bit15
初期値
00000000B
割込み /DTP 許可レジスタ (ENIR) はデバイス端子を外部割込み /DTP 要求入力として
使用し , 割込みコントローラに対して要求を発生させる機能を動作させることを決定
するレジスタです。このレジスタの "1" を書かれたビットの対応する端子は外部割込
み /DTP 要求入力として使用され , 割込みコントローラに対して要求を発生する機能を
動作させます。"0" が書かれたビットの対応する端子は外部割込み /DTP 要求入力要因
は保持しますが , 割込みコントローラに対しては要求を発生しません。
<注意事項>
DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット
(ENRR: ER) をクリアしてください。
■ 割込み /DTP フラグ (EIRR: 外部割込み要求レジスタ )
EIRR
アドレス
000031H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ER7
R/W
ER6
R/W
ER5
R/W
ER4
R/W
ER3
R/W
ER2
R/W
ER1
R/W
ER0
R/W
初期値
00000000B
( ただし R と W で
対象が異なる )
R/W :リード / ライト可能
EIRR は , このレジスタの "1" となっているビットに対応する端子において外部割込み /
DTP 要求が存在することを表します。このレジスタのビットに "0" を書き込むと対応
する要求フラグがクリアされます。"1" を書き込んでも効果はありません。リードモ
ディファイライト系命令によりこのレジスタからは常に "1" が読み出されます。
244
第 16 章 DTP/ 外部割込み
<注意事項>
• 複数の外部割込み出力要求が有効な場合 (ENIR: EN3 ~ EN0 = 1), CPU が割込みを受
けた (ER3 ~ ER0 に "1" が設定された ) ビットのみクリアされます。他のビットを無条
件でクリアしてはいけません。
• DTP/ 外部割込み要因ビット (EIRR: ER) の値は , 対応する DTP/ 外部割込み許可ビット
(EIRR: EN) が "1" に設定されているときのみ有効です。DTP/ 外部割込みが許可されて
いない状態 (EIRR: EN=0) では , DTP/ 外部割込み要因の有無にかかわらず DTP/ 外部割
込み要因ビットがセットされる可能性があります。
• DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ
ト (EIRR: ER) をクリアしてください。
■ 要求レベル設定レジスタ (ELVR: 外部レベルレジスタ )
ENIR
アドレス
000032H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
LB3
R/W
LA3
R/W
LB2
R/W
LA2
R/W
LB1
R/W
LA1
R/W
LB0
R/W
LA0
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
LB7
R/W
LA7
R/W
LB6
R/W
LA6
R/W
LB5
R/W
LA5
R/W
LB4
R/W
LA4
R/W
初期値
00000000B
ENIR
アドレス
000033H
初期値
00000000B
R/W :リード / ライト可能
ELVR は外部端子における要求イベントを定義するものです。表 16.2-1 に示すように ,
各端子には 2 ビットが割り当てられます。入力レベルにより要求が検出されたとすれ
ば , フラグがソフトウェアによりリセットされた後でも入力が指定されたレベルにあ
る限り割込みフラグはセットされます。
表 16.2-1 LBx と LAx 端子の割込み要求検出要因
LBx
LAx
0
0
"L" レベルが端子に入力
0
1
"H" レベルが端子に入力
1
0
立上りエッジが端子に入力
1
1
立下りエッジが端子に入力
割込み要求検出要因
x: 0 ~ 7
245
第 16 章 DTP/ 外部割込み
16.3
DTP/ 外部割込みの動作
割込みフラグがセットされたときに , このブロックは割込みコントローラへ割込み
信号を送ります。割込みコントローラ内で同時発生した割込みの優先順位を識別し
た結果 , 本リソースからの割込みが最も優先順位が高かったときに , 割込みコント
ローラは F2MC-16LX CPU に対して割込み要求を発生します。F2MC-16LX CPU は
自分の内部にある PS レジスタ中の ILM ビットと割込み要求を比較し , 要求レベル
が ILM ビットより高かったときに現在実行中の命令が終了し次第 , ハードウェア割
込み処理マイクロプログラムを起動します。
■ 外部割込みの動作
図 16.3-1 に示すように , ハードウェア割込み処理マイクロプログラムにおいて , CPU は
割込みコントローラからISEビットの情報を読み出し, これにより当該要求が割込み処
理であることを識別し , 割込み処理マイクロプログラムへ分岐します。割込み処理マイ
クロプログラムでは割込みべクタ領域の読出しと割込みコントローラへの割込みアク
ノリッジを発生し , ベクタから生成したマクロ命令のジャンプ先アドレスをプログラ
ムカウンタへ転送した上で , ユーザの割込み処理プログラムを実行します。
図 16.3-1 外部割込みの動作
外部割込み /DTP
割込みコントローラ
F2MC-16LX CPU
ほかの要求
ELVR
ICRyy
EIRR
ENIR
IL
CMP
ICRxx
CMP
ILM
要因
■ DTP の動作
初期化としてユーザプログラム内ではインテリジェント I/O サービスを起動するにあ
たって , インテリジェント I/O サービスディスクリプタ内の I/O アドレスポインタに
000000H から 0000FFH に割り付けられているレジスタのアドレスを設定し , バッファア
ドレスポインタにメモリバッファの先頭アドレスを設定します。
DTP の動作シーケンスは外部割込みの場合とほぼ同じで , CPU がハードウェア割込み
処理マイクロプログラムを起動するまでは全く同じです。DTP の場合は CPU がハード
ウェア割込み処理マイクロプログラム内で読み出す ISE ビットの内容が DTP を示して
いるので , インテリジェント I/O サービス処理マイクロプログラムへ制御を移します。
インテリジェント I/O サービスが起動されると , アドレッシングされている外部周辺に
リードまたはライト信号が送られ , 本チップとの転送が行われます。外部周辺はその転
送が行われてから 3 マシンサイクル以内に本チップに対する割込み要求を取り下げて
ください。転送が終了するとディスクリプタの更新などが行われ , その後転送要因をク
リアする信号を割込みコントローラに発生させます。転送要因をクリアする信号を受
け取った本リソースは要因を保持しているフリップフロップをクリアして端子からの
246
第 16 章 DTP/ 外部割込み
次の要求に備えます。インテリジェント I/O サービス処理の詳細については , 『F2MC16LX プログラミングマニュアル』を参照してください。
図 16.3-2 DTP 動作終了時の外部割込み取下げタイミング
エッジ要求 , または "H" レベル要求
内部動作
( 注意事項 )
インテリジェント I/O サービスが
I/O レジスタ→メモリ転送のとき
ディスクリプタ
選択 , 読出し
割込み要因
リードアドレス
アドレスバス端子
データバス端子
ライトアドレス
ライトデータ
リードデータ
リード信号
ライト信号
3 マシンサイクル以内に取り下げる
図 16.3-3 DTP と外部周辺とのインタフェース簡略例
外
部
ペ
リ
フ
ェ
ラ
ル
データ ,
アドレスバス
内部バス
レ
ジ
ス
タ
INT
IRQ
DTP
転送終了後 , 3 マシンサイクル
以内に取り下げる
コア
メモリ
MB90945
247
第 16 章 DTP/ 外部割込み
16.4
DTP 要求と外部割込み要求の切換え
外部割込み要求と DTP 要求の切換えは , 割込みコントローラの中にある , 本リソー
スに対応する ICR レジスタ中の ISE ビットの設定によって行います。各端子に対応
して個々に ICR が割り当てられていますので , 対応する ICR の ISE ビットに "1" が
書かれた端子が DTP 要求として , また , "0" が書かれた場合には外部割込み要求と
して , それぞれ動作します。
■ DTP 要求と外部割込み要求の切換え
図 16.4-1 DTP 要求と外部割込み要求の切換え
割込みコントローラ
0
ICR xx
ICR yy
1
F2MC-16LX CPU
端子
外部割込み /DTP
DTP
外部割込み
248
第 16 章 DTP/ 外部割込み
16.5
DTP/ 外部割込みの使用上の注意
DTP/ 外部割込みを使用する際には , 次の点について特に注意が必要です。
• DTP を用いたときの外部に接続する周辺の条件
• DTP/ 外部割込みの動作手順
• 外部割込み要求レベル
■ DTP/ 外部割込みの使用上の注意
● DTP を用いたときの外部に接続する周辺の条件
DTP がサポートできる外部周辺は , 転送が行われたことにより自動的に要求をクリア
するものでなければなりません。また , 転送動作が開始してから 3 マシンサイクル以内
で転送要求を取り下げないと , 本リソースは次の転送要求が発生したものとして扱い
ます。
● DTP/ 外部割込みの動作手順
DTP/外部割込み内に存在するレジスタの設定を行う際, 次の手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 許可レジスタの対象となるビットを不可状態にする。
3. 要求レベル設定レジスタの対象となるビットを設定する。
4. 要因レジスタの対象となるビットをクリアする。
5. 許可レジスタの対象となるビットを許可状態にする。
( ただし , 4. と 5. はワード指定による同時書込み可能 ) 。
本リソース内のレジスタを設定するときには , 必ず許可レジスタを不可状態に設定し
なければなりません。また , 許可レジスタを許可状態にする前に必ず要因レジスタをク
リアしておく必要があります。これは , レジスタ設定時や割込み許可状態時に誤って割
込み要因が起こってしまうことを避けるためです。
● 外部割込み要求レベル
エッジ要求レベルのエッジを検出するためには , データシートに記載されている最小
パルス幅以上の期間が必要です ( データシートを参照 )。
図 16.5-1 に示すように , 要求入力レベルがレベル設定のとき , 外部より要求入力が入っ
てその後取り下げられても内部に要因保持回路が存在するので , 割込みコントローラ
への要求はアクティブのままです。図 16.5-2 に示すように , 割込みコントローラへの
要求を取り下げるには要因保持回路をクリアする必要があります。
249
第 16 章 DTP/ 外部割込み
図 16.5-1 レベル設定時の要因保持回路のクリア
レベル検出
割込み要因
要因 F/F
( 割込み /DTP 要因レジスタ )
許可ゲート
割込み
コントローラへ
クリアしない限り要因を保持し続ける
図 16.5-2 割込み許可時の割込み要因と割込みコントローラへの割込み要求
割込み要因
割込みコントローラ
への割込み要求
250
"H" レベル
要因 F/F のクリアによって解除される
第 17 章
8/10 ビット A/D コンバータ
MB90945 シリーズの 8/10 ビット A/D コンバータ
の機能と動作について説明します。
17.1 8/10 ビット A/D コンバータの概要
17.2 8/10 ビット A/D コンバータの構成
17.3 8/10 ビット A/D コンバータの端子
17.4 8/10 ビット A/D コンバータのレジスタ
17.5 8/10 ビット A/D コンバータの割込み
17.6 8/10 ビット A/D コンバータの動作
17.7 8/10 ビット A/D コンバータ使用上の注意
17.8 8/10 ビット A/D コンバータのプログラム例 -1
( 単発変換モードの EI2OS 起動例 )
17.9 8/10 ビット A/D コンバータのプログラム例 -2
( 連続変換モードの EI2OS 起動例 )
17.10 8/10 ビット A/D コンバータのプログラム例 -3
( 停止変換モードの EI2OS 起動例 )
251
第 17 章 8/10 ビット A/D コンバータ
17.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータは , RC タイプ逐次近似変換方式を使用するために , アナ
ログ入力電圧を 10 ビットまたは 8 ビットのデジタル値に変換します。アナログ入力
端子の入力信号は 15 チャネルから選択します。ソフトウェア , 外部トリガで変換を
開始します。
■ 8/10 ビット A/D コンバータの機能
以下に 8/10 ビット A/D コンバータの機能について示します。
• 変換時間は , 最小 4.9 μs ( ある一定のマシンクロック周波数のみが使用可能の場合 ,
サンプリング時間を含む ) です。
• サンプリング時間は , 最小 1.6 μs ( ある一定のマシンクロック周波数のみが使用可能
の場合 ) です。
• 変換方式は , サンプルホールド回路付 RC 逐次近似変換方式です。
• 10 ビット , または 8 ビットの分解能が設定できます。
• 入力信号は , 15 チャネルのアナログ入力端子からプログラムで設定可能です。
• A/D 変換終了時に割込み要求を出力し , EI2OS を起動できます。
• 割込み許可状態で , 連続変換モード中に , 変換データ保護機能のデータが一部消失
するのを防ぎます。
• 変換の起動要因は , ソフトウェア , 外部トリガから設定できます。
• MB90945 シリーズには 15 のアナログ入力チャネルがあります。0 ~ 7 または 8 ~
14 チャネルのどちらかを A/D コンバータの入力として選択できます。
表 17.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード
設定したチャネル (1 チャネル )
を 1 回変換後 , 終了
連続した複数のチャネル ( 最大 8 チャネルま
で設定可能 ) を 1 回変換後 , 終了。
0 ~ 7 または 8 ~ 14 チャネルのどちらかを選
択できます。
連続変換モード
設定したチャネル (1 チャネル )
を繰り返し変換
連続した複数のチャネル ( 最大 8 チャネルま
で設定可能 ) を繰り返し変換 。
0 ~ 7 または 8 ~ 14 チャネルのどちらかを選
択できます。
停止変換モード
設定したチャネル (1 チャネル )
を 1 回変換実行後 , 一時停止
し , 次の起動がかかるまで待機
連続した複数のチャネル ( 最大 8 チャネルま
で設定可能 ) を変換実行。0 ~ 7 または 8 ~
14 チャネルのどちらかを選択できます。一時
停止し , 次の起動がかかるまで待機。
252
第 17 章 8/10 ビット A/D コンバータ
表 17.1-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み番号
#31 (1FH)
割込み制御レジスタ
ベクタテーブルアドレス
レジスタ名
アドレス
下位
上位
バンク
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
EI2OS
○
○:使用可能
253
第 17 章 8/10 ビット A/D コンバータ
17.2
8/10 ビット A/D コンバータの構成
8/10 ビット A/D コンバータは , 以下の 9 種類のブロックで構成されています。
• A/D 制御ステータスレジスタ (ADCS0, ADCS1)
• A/D データレジスタ (ADCR0, ADCR1)
• クロックセレクタ (A/D 変換起動用入力クロックセレクタ )
• デコーダ
• アナログチャネルセレクタ
• サンプルホールド回路
• D/A コンバータ
• コンパレータ
• 制御回路
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 17.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
A/D 制御ステータス
レジスタ
(ADCS0/ADCS1)
割込み要求信号 #31 (1FH)
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
6
外部トリガ (ADTG)
PB6/AN14
PB5/AN13
PB4/AN12
PB3/AN11
PB2/AN10
PB1/AN9
PB0/AN8
P67/AN7
P66/AN6
P65/AN5
P64/AN4
P63/AN3
P62/AN2
P61/AN1
P60/AN0
ADSEL
A/D データレジスタ
(ADCR0/ADCS1)
254
アナログ
チャネル
セレクタ
S10 ST1 ST0 CT1 CT0
φ : マシンクロック
- : 未定義ビット
2
クロックセレクタ
デコーダ
φ
サンプル
ホールド回路
AVRH/L
AVcc
AVss
コンパレータ
コントロール回路
2
D/A コンバータ
2
D9 D8 D7 D6 D5 D4 D3 D2 D1 D0
内
部
デ
|
タ
バ
ス
第 17 章 8/10 ビット A/D コンバータ
● A/D 制御ステータスレジスタ (ADCS0/ADCS1)
A/D 制御ステータスレジスタ (ADCS0/ADCS1) は , ソフトウェアによる起動または他の
起動要因の選択 , A/D 変換モードの選択 , A/D 変換開始 / 終了チャネルの選択 , 割込み
要求の許可 / 禁止 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機
能があります。
● A/D データレジスタ (ADCR0, ADCR1)
A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定を行う機能もありま
す。
● クロックセレクタ
A/D 変換起動クロックを設定するセレクタです。起動クロックには , 外部トリガ
(ADTG) を使用できます。
● デコーダ
A/D 制御ステータスレジスタ (ADCS0) の A/D 変換終了チャネル設定ビット (ANE0 ~
ANE2), A/D 変換開始チャネル設定ビット (ANS0 ~ ANS2) の設定値から使用するアナ
ログ入力端子を設定する回路です。
● アナログチャネルセレクタ
15 チャネルのアナログ入力端子の中から使用する端子を設定する回路です。
● サンプルホールド回路
アナログチャネルセレクタで設定されたチャネルの入力電圧を保持する回路です。A/D
変換を起動した直後の入力電圧をサンプルおよび保持することで, A/D変換中(比較中)
は , A/D 変換における入力電圧変動の影響を受けません。
● D/A コンバータ
サンプルホールド回路で保持された入力電圧と比較するための, 基準電圧を発生します。
● コンパレータ
サンプルホールド回路で保持された入力電圧と , D/A コンバータの出力電圧を比較し ,
大小を判定します。
● 制御回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了した場合 ,
変換結果を A/D データレジスタ (ADCR0, ADCR1) に格納し , 割込み要求を出力します。
255
第 17 章 8/10 ビット A/D コンバータ
17.3
8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子 , および端子部のブロックダイヤグラムを示しま
す。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 汎用ポートと兼用になっています。
表 17.3-1 8/10 ビット A/D コンバータの端子
機能
端子名
端子機能
入出力形式
チャネル 0
P60/AN0
チャネル 1
P61/AN1
ポート 6 入出力 /
アナログ入力
チャネル 2
P62/AN2
チャネル 3
P63/AN3
チャネル 4
P64/AN4
CMOS 出力 /
オートモーティブ
または
ヒステリシス
入力 または
アナログ入力
チャネル 5
P65/AN5
チャネル 6
P66/AN6
チャネル 7
P67/AN7
チャネル 8
PB0/AN8
チャネル 9
PB1/AN9
チャネル 10
PB2/AN10
チャネル 11
PB3/AN11
チャネル 12
PB4/AN12
チャネル 13
PB5/AN13
チャネル 14
PB6/AN14
プルアップ 設定
スタンバイ制御
なし
なし
ポート B 入出力 /
アナログ入力
■ アナログ入力許可レジスタ
図 17.3-1 にアナログ入力許可レジスタを示します。
図 17.3-1 アナログ入力許可レジスタ (ADER1/ADER0)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
00000DH ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9 ADE8
00000CH R/W R/W R/W R/W R/W R/W R/W R/W
1
1
1
1
1
1
1
初期値→ 0
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
ADE7 ADE6 ADE5 ADE4 ADE3 ADE2 ADE1 ADE0 ADER1/
R/W R/W R/W R/W R/W R/W R/W R/W ADER0
1
1
1
1
1
1
1
1
<注意事項>
bit15 (ADSEL) を "0" にすると , AN0 ~ AN7 ( ポート P60 ~ P67) が A/D コンバータの入
力端子となります。bit15 (ADSEL) を "1" にすると , AN8 ~ AN14 ( ポート PB0 ~ PB6) が
A/D コンバータの入力端子となります。
256
第 17 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子部のブロックダイヤグラム
図 17.3-2 P60/AN0 ~ P67/AN7 端子部と PB0/AN8 ~ PB6/AN14 端子部のブロックダイヤグラム
ADER
アナログ入力
内部データバス
PDR リード
出力ラッチ
PDR
( ポートデータ
レジスタ )
PDR ライト
P-ch
端子
N-ch
方向ラッチ
DDR ライト
DDR リード
DDR
( ポート方向
レジスタ )
スタンバイ制御 (SBL=1)
<注意事項>
• 入力ポートとして使用する端子は , ポート方向レジスタ (DDR6/DDRB) の対応するビッ
トに "0" を設定し , 通常のデジタル入力として使用してください。アナログ入力許可レ
ジスタ (ADER) の対応するビットに "0" を設定してください。
• アナログ入力端子として使用する端子は , アナログ入力許可レジスタ (ADER) の対応す
るビットに "1" を設定してください。ポートデータレジスタ (PDR6/PDRB) の読出し値
は "0" になります。
257
第 17 章 8/10 ビット A/D コンバータ
17.4
8/10 ビット A/D コンバータのレジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 17.4-1 8/10 ビット A/D コンバータのレジスタ一覧
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000DH / 000CH
ADER1
ADER0
0035H / 0034H
ADCS1
ADCS0
0037H / 0036H
ADCR1
ADCR0
258
第 17 章 8/10 ビット A/D コンバータ
17.4.1
アナログ入力許可 /ADC 選択レジスタ
MB90945 シリーズには , 15 のアナログ入力チャネルがあり , A/D コンバータ 1 つに
つき 8 つの入力が使用されます。特別ビット ADSEL がアナログ入力チャネルを選
択します。
■ アナログ入力許可 /ADC 選択レジスタの上位ビット (ADER1)
図 17.4-2 アナログ入力許可 /ADC 選択レジスタの上位ビット (ADER1) の構成
bit15
アドレス
00000D H
bit14
bit13
bit12
bit11
bit10
bit9
ADSEL ADE14 ADE13 ADE12 ADE11 ADE10 ADE9
R/W
R/W
R/W
R/W
R/W
R/W
R/W
ADE14~ADE8
0
1
ADSEL
0
1
R/W : リード / ライト可能
: 初期値
bit8
初期値
ADE8
01111111B
R/W
アナログ入力許可ビット
ポート入力モード ( ポート B)
アナログ入力モード ( 初期値 )
ADC 入力選択ビット
ANIN0 ~ 7 ( ポート 6) が入力として選択
ANIN8 ~ 14 ( ポート B) が入力として選択
■ アナログ入力許可 /ADC 選択レジスタの下位ビット (ADER0)
図 17.4-3 アナログ入力許可 /ADC 選択レジスタの下位ビット (ADER0) の構成
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス
00000C H
初期値
R/W : リード / ライト可能
: 初期値
ADEx
0
1
11111111B
アナログ入力許可ビット
ポート入力モード ( ポート 6)
アナログ入力モード ( 初期値 )
259
第 17 章 8/10 ビット A/D コンバータ
17.4.2
A/D 制御ステータスレジスタ 1(ADCS1)
A/D 制御ステータスレジスタ 1 (ADCS1) は , ソフトウェアまたは起動要因による A/D
変換起動の設定 , 割込み要求の許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換
の停止中 / 動作中の確認を行う機能があります。
■ A/D 制御ステータスレジスタ 1(ADCS1)
図 17.4-4 A/D 制御ステータスレジスタ 1 (ADCS1) の構成
アドレス
bit15
bit14
bit13
bit12
bit11
000035H
BUSY
INT
INTE
PAUS STS1 STS0 STRT 予約
R/W
R/W
R/W
R/W
R/W
bit10
R/W
bit9
W
bit8
bit7
bit0
(ADCS1)
初期値
00000000B
R/W
予約
予約ビット
必ず "0" を設定してください。
A/D 変換起動ビット
( ソフトウェア起動時 (ADC2:EXT=0) のみ有効 )
STRT
0
A/D 変換機能を起動しない
1
A/D 変換機能を起動する
A/D 起動要因設定ビット
STS1 STS0
ソフトウェア起動
0
0
0
1
外部トリガ起動またはソフトウェア起動
1
0
16 ビットリロードタイマ 1 出力起動または
ソフトウェア起動
1
1
外部トリガ起動 , 16 ビットリロードタイマ 1
出力起動またはソフトウェア起動
一時停止フラグビット
(EI2OS 使用時のみ有効 )
PAUS
0
A/D 変換動作中
1
A/D 変換動作が一時停止中
割込み要求許可ビット
INTE
0
割込み要求出力の禁止
1
割込み要求出力の許可
割込み要求フラグビット
INT
260
書込み時
A/D 変換未終了
このビットをクリア
1
A/D 変換終了
変化なし , 動作に影響しません
BUSY
R/W : リード / ライト可能
W : ライトオンリ
- : 未定義
: 初期値
読出し時
0
変換中ビット
読出し時
書込み時
0
A/D 変換停止中
A/D 変換強制停止
1
A/D 変換動作中
変化なし , 動作に影響しません
第 17 章 8/10 ビット A/D コンバータ
表 17.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ( 1 / 2 )
ビット名
BUSY:
変換中ビット
A/D コンバータの動作表示ビットです。
• "0" がセットされている場合は , A/D 変換停止中であることを示しま
す。"1" がセットされている場合は , A/D 変換動作中であることを示
します。
• "0" を設定した場合は , A/D 変換動作を強制停止します。"1" を設定
した場合は , 動作に影響しません。
( 注意事項 )
A/D 変換動作の強制停止とソフトウェア起動 (BUSY= 0, STRT= 1) は ,
同時に設定しないでください。
INT:
割込み要求
フラグビット
A/D 変換結果が A/D データレジスタに格納されると , "1" がセット
されます。
• 割込み要求許可ビット (ADCS:INTE) に "1" を設定している場合に ,
"1" がセットされると , 割込み要求を出力します。EI2OS を起動す
るとセットされます。
• "0" を設定した場合は , 割込み要求がクリアされます。
• "1" を設定した場合は , 動作に影響しません。
• EI2OS を使用すると , "0" にクリアされます。
( 注意事項 )
"0" を設定してクリアすると , A/D 変換を停止します。
INTE:
割込み要求
許可 ビット
CPU への割込み出力を許可 / 禁止するビットです。
• "1" を設定した場合は , 割込み要求フラグビット (ADCS:INT) に "1"
がセットされると , 割込み要求を出力します。
• EI2OS を使用する場合は , "1" を設定してください。
PAUS:
一時停止
フラグ ビット
A/D 変換動作が一時停止した場合に , "1" がセットされます。
• A/D コンバータには 1 つの A/D データレジスタがあります。連続
変換モードでは , 前の変換結果が CPU で読まれる前に , 変換結果
が書き込まれると , 前の結果が失われます。連続変換モードが選択
されると , 変換が終了するたびに EI2OS にて変換結果を自動的にメ
モリに転送してプログラムを書き込まなければいけません。PAUS
ビットは次の変換の前に変換データ転送の完了を防ぐ複数の割込
みに対して保護します。変換が終了すると , "1" にセットされます。
EI2OS がデータレジスタの内容を転送し終わるまでこの状態が保
持されます。その間 , A/D 変換が一時停止され , 変換データを格納
できません。EI2OS が転送を終了すると , A/D コンバータは自動的
に A/D 変換を再開します。
( 注意事項 )
EI2OS を使用した場合に有効です。
bit 15
bit 14
bit 13
bit 12
機能
•
•
•
•
261
第 17 章 8/10 ビット A/D コンバータ
表 17.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明 ( 2 / 2 )
ビット名
STS1, STS0:
A/D 起動要因
設定ビット
A/D 変換の起動要因の設定を行うビットです。
• 起動要因が兼用になっている場合は , 最初に発生した起動要因で起
動します。
• EI2OS を使用する場合は , "1" を設定してください。
( 注意事項 )
起動要因は , 設定と同時に変更されますので , A/D 変換動作中に設
定する場合は , 目的とする起動要因がない状態で切り換えてくださ
い。
STRT:
A/D 変換起動
ビット
•
•
•
•
予約:
予約ビット
必ず "0" を設定してください。
bit 11
bit 10
bit 9
bit 8
262
機能
•
A/D 変換動作を起動するビットです。
"1" を設定した場合は , A/D 変換が起動します。
"0" を設定した場合は , A/D 変換は起動しません。
停止変換モード時は , STRT ビットによる再起動はかかりません。
( 注意事項 )
A/D変換動作の強制停止 (BUSY= 0), ソフトウェア起動(STRT= 1) は
同時に行わないでください。
第 17 章 8/10 ビット A/D コンバータ
17.4.3
A/D 制御ステータスレジスタ 0 (ADCS0)
A/D 制御ステータスレジスタ 0 (ADCS0) は , A/D 変換モードの設定と A/D 変換開
始 / 終了チャネルの設定を行う機能があります。
■ A/D 制御ステータスレジスタ 0 (ADCS0)
図 17.4-5 A/D 制御ステータスレジスタ 0 (ADCS0) の構成
bit15
アドレス
000034H
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
(ADCS: H)
MD1
MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
00000000B
R/W
A/D 変換終了チャネル設定ビット
ANE2 ANE1 ANE0
0
0
0
AN0/AN8 端子
0
0
1
AN1/AN9 端子
0
1
0
AN2/AN10 端子
0
1
1
AN3/AN11 端子
1
0
0
AN4/AN12 端子
1
0
1
AN5/AN13 端子
1
1
0
AN6/AN14 端子
1
1
1
AN7 端子
A/D 変換開始チャネル設定ビット
ANS2 ANS1 ANS0
R/W : リード / ライト可能
: 初期値
停止中
0
0
0
AN0/AN8 端子
0
0
1
AN1/AN9 端子
0
1
0
AN2/AN10 端子
0
1
1
AN3/AN11 端子
1
0
0
AN4/AN12 端子
1
0
1
AN5/AN13 端子
1
1
0
AN6/AN14 端子
1
1
1
AN7 端子
変換中の読出し
停止変換モードで
一時停止中の読出し
変換中の
チャネル番号
直前に変換した
チャネル番号
MD1
MD0
0
0
単発変換モード 1 ( 動作中の再起動可能 )
0
1
単発変換モード 2 ( 動作中の再起動不可 )
1
0
連続変換モード ( 動作中の再起動不可 )
1
1
停止変換モード ( 動作中の再起動不可 )
A/D 変換モード設定ビット
263
第 17 章 8/10 ビット A/D コンバータ
表 17.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明
ビット名
MD1, MD0:
A/D 変換モード
設定ビット
• A/D 変換モードを設定するビットです。
• MD1 と MD0 の 2 つのビットで A/D 変換モードを 4 つのモード ( 単発変
換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード )
から選択します。
• 単発変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換モード
の設定を以下に示します。
• 単発変換モード 1:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネル
からA/D変換終了チャネル設定ビット (ANE2~ANE0) で設定したチャ
ネルまで A/D 変換後 , 終了します。動作中の再起動ができます。
• 単発変換モード 2:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネ
ルから A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまで A/D 変換後 , 終了します。
動作中の再起動はできません。
• 連続変換モード:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネ
ルから A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまでの A/D 変換を , 変換中ビット (BUSY) で強制停止するま
で繰り返します。動作中の再起動はできません。
• 停止変換モード:
A/D 変換開始チャネル設定ビット (ANS2 ~ ANS0) で設定したチャネ
ルから A/D 変換終了チャネル設定ビット (ANE2 ~ ANE0) で設定した
チャネルまでの A/D 変換を 1 チャネルごとに一時停止しながら , 変換
中ビット (BUSY) で強制停止するまで繰り返します。動作中の再起動
はできません。
一時停止中の再起動は, A/D起動要因設定ビット (STS1,
STS0) で設定した起動要因の発生によって異なります。
( 注意事項 )
単発 , 連続 , 停止の各変換モードの再起動不可は外部トリガ , ソフトウェ
アすべての起動に適用されます。
ANS2, ANS1,
ANS0:
A/D 変換開始
チャネル設定
ビット
• A/D 変換の開始チャネルの設定 , および変換中チャネル番号の確認を行
うビットです。
• A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット (ANE2 ~
ANE0) で設定されたチャネルから A/D 変換を開始します。
• A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変換モー
ドでの一時停止中は , 直前に変換したチャネルの番号が読み出されま
す。
bit7
bit6
bit5
bit4
bit3
264
機能
第 17 章 8/10 ビット A/D コンバータ
表 17.4-2 A/D 制御ステータスレジスタ 0 (ADCS0) の各ビットの機能説明
ビット名
ANE2, ANE1,
ANE0:
A/D 変換終了
チャネル設定
ビット
bit2
bit1
bit0
機能
• A/D 変換の終了チャネルの設定を行うビットです。
• A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット (ANE2 ~
ANE0) で設定されたチャネルまで A/D 変換を行います。
• ANS2 ~ ANS0 ビットでチャネルを設定することで , チャネルが変換さ
れます。連続 / 停止変換モードでは , ANS2 ~ ANS0 で設定した開始
チャネルが最後に変換されます。開始チャネルが終了チャネルより大き
い場合は , 開始チャネル→ AN7, AN0 →終了チャネルへと , ひと続きに
変換されます。
( 注意事項 )
A/D 変換開始チャネル設定ビット (ANS2, ANS1, ANS0) に開始チャネルを
設定した後に , A/D 変換モード選択ビット (MD1, MD0) および A/D 変換終
了チャネル設定ビット (ANE2, ANE1, ANE0) をリードモディファイライト
系命令で設定しないでください。
ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまでは前回の変換
チャネルが読み出されるため , ANS2, ANS1, ANS0 ビットに開始チャネル
を設定した後に , MD1, MD0 ビットおよび ANE2, ANE1, ANE0 ビットを
リードモディファイライト系命令で設定した場合 , ANE2, ANE1, ANE0
ビットの値が書き換わる可能性があります。
265
第 17 章 8/10 ビット A/D コンバータ
17.4.4
A/D データレジスタ (ADCR0, ADCR1)
A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが ,
A/D 変換の分解能の設定を行う機能もあります。
■ A/D データレジスタ (ADCR0, ADCR1)
図 17.4-6 A/D データレジスタ (ADCR0, ADCR1)
アドレス
bit15 bit14 bit13 bit12 bit11 bit10 bit9
6 H S10
000037h
R/W
W
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
ST1
ST0
CT1
CT0
-
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
00000
-XX BB
00000XXX
0XXXXXXX
W
W
W
W
-
R
R
R
R
R
R
R
R
R
R
XXXXXXXXB
A/D 変換終了チャネル選択ビット
D9 ~ D0
変換データを格納
CT1
0
0
1
1
CT0
00
1
0
1
ST1
00
0
1
1
ST0
0
1
0
1
S10
0
1
R
: リードオンリ
W
: ライトオンリ
X
: 不定
-
: 未定義
コンペア時間設定ビット
44 マシンサイクル (8 MHz の場合 , 5.50 μs)
66 マシンサイクル (20 MHz の場合 , 3.3 μs)
88 マシンサイクル (24 MHz の場合 , 3.67 μs)
176 マシンサイクル (24 MHz の場合 , 7.33 μs)
サンプリング時間設定ビット
20 マシンサイクル (8 MHz の場合 , 2.5 μs)
32 マシンサイクル (20 MHz の場合 , 1.6 μs)
48 マシンサイクル (24 MHz の場合 , 2.0 μs)
128 マシンサイクル (24 MHz の場合 , 5.33 μs)
A/D 変換分解能設定ビット
10 ビット分解能モード (D9 ~ D0)
8 ビット分解能モード (D9 ~ D0)
<注意事項>
コンペア時間 , サンプリング時間を設定するとき , 最小限必要な値が尊重されなければな
りません。例えば , ある周波数では 44 マシンサイクルは使用できません。
詳細については , データシートを参照してください。
266
第 17 章 8/10 ビット A/D コンバータ
表 17.4-3 A/D データレジスタ 0 (ADCR0) の各ビットの機能説明
ビット名
bit15
機能
S10:
A/D 変換分解能
設定ビット
A/D 変換の分解能を設定するビットです。
"0" を設定した場合は , 10 ビット分解能が設定されます。
"1" を設定した場合は , 8 ビット分解能が設定されます。
( 注意事項 )
分解能によって , 使用される A/D データビットが異なります。
ST1, ST0:
サンプリング
時間設定ビット
•
•
bit14
bit13
•
•
•
A/D 変換のサンプリング時間を設定するビットです。
A/D 変換が起動されると , サンプリング時間設定ビット (ST1,
ST0) で設定した時間 , アナログ入力が取り込まれます。
( 注意事項 )
• マシンクロック周波数 16(20, 24)MHz の場合に , "00B" を設定す
•
ると , 正常なアナログ電圧が得られない場合があります。
"00B" を設定する場合は , マシンクロック周波数を 8MHz 以下
としてください。
CT1, CT0:
コンペア時間
設定ビット
bit12
bit11
•
•
A/D 変換時のコンペア時間を設定するビットです。
アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア時
間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確定し ,
A/D データビット (D9 ~ D0) に格納されます。
( 注意事項 )
• マシンクロック周波数 16(20, 24)MHz の場合に , "00B" を設定す
•
ると , 正常なアナログ変換値が得られない場合があります。
"00B" を設定する場合は , マシンクロック周波数を 8MHz 以下
としてください。
-:
未定義ビット
bit10
D9 ~ D0:
A/D 変換終了
チャネル選択
ビット
bit9
~
bit0
-
A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ご
とに書き換えられます。
• 通常は , 最終変換値が格納されます。
• 初期値は不定です。
( 注意事項 )
A/D 変換データ保護機能があります ( 詳細は ,「17.6 8/10 ビット
A/D コンバータの動作」を参照してください ) 。
A/D 変換中に , A/D データビットにデータを書き込まないでくだ
さい。
•
<注意事項>
・A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変換
動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合は ,
A/D データレジスタ (ADCR0/ADCR1) の内容は不定となります。
・A/D データレジスタ (ADCR) を読み出す場合 , 10 ビットモードを設定した場合は ,
必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。
267
第 17 章 8/10 ビット A/D コンバータ
17.5
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ
れると , 割込み要求を出力します。拡張インテリジェント I/O サービス (EI2OS) にも
対応しています。
■ 8/10 ビット A/D コンバータの割込み
表 17.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS: INT
割込み要求許可ビット
ADCS: INTE
割込み要因
A/D 変換結果の A/D データレジスタへ格納
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR) に格納される
と , A/D 制御ステータスレジスタ 1 (ADCS1) の割込み要求フラグビット (INT) に "1" が
セットされ , 割込み要求許可ビット (ADCS1: INTE=1) に "1" が設定されていると , 割込
み要求を割込みコントローラに出力します。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 17.5-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルのアドレス
割込み番号
#31 (1FH)
レジスタ名
アドレス
下位
上位
バンク
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
EI2OS
使用可能
■ 8/10 ビット A/D コンバータの EI2OS 機能
10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき
ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D 変換データがメ
モリに転送され , A/D 制御ステータスレジスタ 1 (ADCS1) の割込み要求フラグビット
(INT) が "0" にクリアされるまで , A/D 変換は一時停止されるので , データの欠落を防
止できます。
268
第 17 章 8/10 ビット A/D コンバータ
17.6
8/10 ビット A/D コンバータの動作
8/10 ビット A/D コンバータには , 単発変換 , 連続変換 , 停止変換の 3 つの変換モー
ドがあります。ここでは , それぞれのモードでの動作を説明します。
■ 単発変換モードでの動作
単発変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ
れたチャネルの間でのアナログ入力は , 連続して変換されます。変換されるチャネルが
ANE ビットで設定された終了チャネルに達すると , A/D 変換は停止します。開始と終
了チャネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルが変換される
と停止します。
図 17.6-1 に単発変換モードで動作するために必要な設定を示します。
図 17.6-1 単発変換モードの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCS
ADCR
ADER
BUSY INT
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
INTE PAUS STS1 STS0 STRT RESV MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
◇
◇
◇
◇
◇
◇
S10
ST1
ST0
CT1
CT0
-
◇
◇
◇
◇
◇
◆
◆
◆
◆
◇
0
◇
◇
◇
◇
◇
◇
◇
◇
◆
◆
◆
◆
変換データを保管
ADSEL
◇
◆
◆
◆
◆
◆
◆
◆
◇ :変換中に使用
◆ :端子に相当したビットを "1" に設定
0 :"0" に設定
<参考>
下記に単発変換モードでの変換シーケンス例を示す ( ここでは ADSEL = 0 とする )。
ANS = 000B, ANE = 011B: AN0 → AN1 → AN2 → AN3 → End
ANS = 110B, ANE = 010B: AN6 → AN7 → AN0 → AN1 → AN2 → End
ANS = 011B, ANE = 011B: AN3 → End
269
第 17 章 8/10 ビット A/D コンバータ
■ 停止変換モードでの動作
停止変換モードにおいて , ANS ビットで設定されたチャネルから ANE ビットで設定さ
れたチャネルの間でのアナログ入力は , 各チャネルの変換後に一時停止しながら連続
して変換されます。ANE ビットで設定された終了チャネルが実行されると , A/D 変換
は一時停止し, 再びANSビットで設定されたチャネルから実行します。開始と終了チャ
ネルが同じ場合 (ANS = ANE) は , ANS ビットで設定したチャネルの変換が繰り返され
ます。一時停止中に変換を再起動するには , STS1 と STS0 ビットで設定された起動要
因を発生します。
図 17.6-2 に停止変換モードで動作するために必要な設定を示します。
図 17.6-2 停止変換モードの設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9
ADCS
ADCR
ADER
BUSY INT
◇
◇
◇
◇
◇
◇
S10
ST1
ST0
CT1
CT0
-
◇
◇
◇
◇
◇
◆
◆
◆
◆
START
◇
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
RESV MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
0
1
1
◇
◇
◇
◇
◇
◇
◆
◆
◆
◆
変換データを保管
ADSEL
◇
◇
◆
0
1
INTE PAUS STS1 STS0
bit8
◆
◆
◆
◆
◆
◆
◆
:変換中に使用
:端子に相当したビットを "1" に設定
:"0" に設定
:"1" を設定
<参考>
下記に停止変換モードでの変換シーケンス例を示す ( ここでは ADSEL = 0 とする )。
ANS = 000B, ANE = 011B: AN0 → Pause → AN1 → Pause → AN2 → Pause → AN3 →
Pause → AN0 → Repeat
ANS = 110B, ANE = 011B: AN6 → Pause → AN7 → Pause → AN0 → Pause → AN1 →
Pause → AN2 → Pause → AN3 → Pause → AN6 → Repeat
ANS = 011B, ANE = 011B: AN3 → Pause → AN3 → Pause → Repeat
270
第 17 章 8/10 ビット A/D コンバータ
17.6.1
A/D 変換の EI2OS 使用
8/10 ビット A/D コンバータは , A/D 変換結果をメモリに転送するために EI2OS 転送
を使用します。
■ A/D 変換の EI2OS 使用
EI2OS を使用したときの動作フローを図 17.6-3 に示します。
図 17.6-3 EI2OS を使用したときのサンプル動作フローチャート
A/D 変換開始
サンプル & ホールド
EI2OS 開始
変換
変換終了
割込み発生
*: 回数は EI2OS の設定で規定されます。
データ転送
データ転送
の繰返しが規定された
回数 * に
達した ?
YES
割込み処理
NO
割込みクリア
EI2OSを使用することで, 変換データ保護機能は連続変換中であってもすべてのデータ
を消失から保護します。安全に , 複数のデータ要素をメモリに転送できます。
271
第 17 章 8/10 ビット A/D コンバータ
17.6.2
A/D 変換データ保護機能
A/D 変換が割込み許可状態で実行されていると , 変換データ保護機能が動作します。
■ A/D 変換データ保護機能
A/D コンバータには , 変換データを保管するデータレジスタは 1 つだけです。単発変換
が終了すると , データレジスタ中のデータは上書きされます。
次の変換データが格納される前に変換結果がメモリに転送されない場合 , 変換データ
の一部が消失します。割込み許可状態 (INTE = 1) でのデータ保護機能は , そのような
データの消失を防ぎます。
● EI2OS が使用されていないときのデータ保護機能
変換データが A/D データレジスタ (ADCR) に格納されるとき , A/D 制御ステータスレ
ジスタ 1(ADCS1) の INT ビットは "1" に設定されます。
INT ビットが 1 の間 , A/D 変換は停止します。
A/D データレジスタ (ADCR) 中のデータが割込みルーチンでメモリに転送された後 ,
INT ビットがクリアされると停止状態が解除されます。
● EI2OS を使用しているときのデータ保護機能
EI2OS を使用した連続変換において , A/D 制御ステータスレジスタ 1(ADCS1) の PAUS
ビットは変換が終了するまで "1" に維持されます。この状態は , EI2OS がデータレジス
タからメモリに変換データの転送を完了させるまで続きます。その間 , A/D 変換は停止
され , 次の変換データは格納されません。メモリへのデータ転送が完了すると , PAUS
ビットは "0" にクリアされ , 変換が再開されます。
図 17.6-4 に EI2OS 使用時のデータ保護機能の動作フローを示します。
272
第 17 章 8/10 ビット A/D コンバータ
図 17.6-4 EI2OS 使用時のデータ保護機能の動作フローチャート
EI2OS を設定
連続 A/D 変換開始
最初の変換終了
データをデータレジスタに
保管
EI2OS を起動
2 番目のデータ変換完了
EI2OS は終了 ?
NO
A/D 変換を停止
YES
データをデータレジスタに
保管
3 番目のデータ変換
EI2OS を起動
Continue
全データ変換完了
EI2OS を起動
Continue
データをデータレジスタに
保管
割込み処理ルーチン
A/D 変換を初期化または停止
終了
( 注意事項 ) A/D コンバータが停止している間のステップは , 除外する。
<注意事項>
• 変換データ保護機能は , 割込み許可状態 (ADCS1: INTE = 1) のときのみ動作します。
• EI2OS が動作中で A/D 変換が停止している間に割込みが禁止になった場合 , A/D 変換
は再開されます。これにより古いデータを転送する前に新しいデータの上書きが発生
します。停止中に再開を試みると古いデータが破壊されます。
• 停止中に再開を試みるとスタンバイデータが破壊されます。
273
第 17 章 8/10 ビット A/D コンバータ
17.7
8/10 ビット A/D コンバータ使用上の注意
8/10 ビット A/D コンバータを使用する場合の注意点を示します。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子
A/D コンバータのアナログ入力端子はポート 6 およびポート B の入出力端子と兼用に
なっており, ポート方向レジスタ(DDR6とDDRB)とアナログ入力許可レジスタ(ADER)
を切り換えて使用します。A/D コンバータのアナログ入力端子として使用する場合は ,
ポート方向レジスタ (DDR6 と DDRB) の対応するビットに "0" を設定 ( 入力ポートに
設定 ) 後 , アナログ入力許可レジスタ (ADER) レジスタの対応するビットに "1" を設定
( アナログ入力モードに設定 : ADEX=1) し , ポート側の入力ゲートを固定してくださ
い。ポート入力モード (ADEX=0) では中間レベルの信号が入力されると , ゲートに入
力リーク電流が流れます。
● A/D コンバータおよびアナログ入力の電源の投入および切断順序
A/D コンバータの電源 (AVcc, AVRH, AVRL) とアナログ入力 (AN0 ~ AN7) への電源印
加は , 必ずデジタル電源 (Vcc) の投入後に行ってください。A/D コンバータの電源 , お
よびアナログ入力電源を切断した後に , デジタル電源 (Vcc) を切断してください。
● A/D コンバータの電源電圧について
ラッチアップ防止のため , A/D コンバータの電源電圧 (AVcc) は , デジタル電源 (Vcc) を
超えないようにしてください。
274
第 17 章 8/10 ビット A/D コンバータ
17.8
8/10 ビット A/D コンバータのプログラム例 -1
( 単発変換モードの EI2OS 起動例 )
単発変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 単発変換モードの EI2OS 起動プログラム例
● 処理仕様
• アナログ入力 AN1 ~ AN3 まで変換して終了します。
• 変換データは , 200H ~ 205H 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 変換は , ソフトウェア起動で行います。
図 17.8-1 単発変換モードの EI2OS 起動プログラム例のフロー
変換開始
AN1
割込み
EI2OS 転送
AN12
割込み
EI2OS 転送
EI2OS 転送
AN13
割込み
終了
割込みシーケンス
並行処理
275
第 17 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
EQU
000100H
; 下位バッファアドレスポインタ
BAPM EQU
000101H
; 中間バッファアドレスポインタ
BAPH
EQU
000102H
; 上位バッファアドレスポインタ
ISCS
EQU
000103H
; EI2OS ステータスレジスタ
IOAL
EQU
000104H
; 下位 I/O アドレスレジスタ
IOAH
EQU
000105H
; 上位 I/O アドレスレジスタ
DCTL
EQU
000106H
; 下位データカウンタ
DCTH
EQU
000107H
; 上位データカウンタ
DDR6
EQU
000016H
; ポート 6 方向レジスタ
ADER0 EQU
00000CH
; アナログ入力許可レジスタ
ICR10
EQU
0000BAH
;A/DC 用割込み制御レジスタ
ADCS0 EQU
000034H
;A/D 制御ステータスレジスタ
ADCS1 EQU
000035H
;
ADCR0 EQU
000036H
;A/D データレジスタ
ADCR1 EQU
000037H
;
;----- メインプログラム --------------------------------------------------------------CODE CSEG
START:
; スタックポインタ (SP) が既に初期化済み
; であると想定
AND CCR,#0BFH
; 割込み不可
MOV ICR10,#00H
; 割込みレベル : 0 ( 最優先 )
MOV BAPL,#00H
; 変換データが転送され , 保管されるアドレスを設
;定
;
MOV BAPM,#02H
;(200H ~ 205H を使用 )
MOV BAPH,#00H
;
MOV ISCS,#18H
; ワードデータを転送 , アドレスに 1 を加算 ,
; そして I/O からメモリにデータを転送
MOV IOAL,#36H
; アナログデータレジスタのアドレスを
MOV IOAH,#00H
; 転送ソースアドレスポインタとして設定
MOV DCTL,#03H
;EI2OS 転送カウントを 3 に設定 ,
; これは変換カウントと同じ値
MOV DDR6,#11110001B
;P61 ~ P63 を入力として設定
MOV ADER0,#00001110B
;P61/AN1 ~ P63/AN3 をアナログ入力として設定
MOV CTH,#00H
;
MOV ADCS0,#0BH
; シングル起動 , AN1 ~ AN3 を変換
MOV ADCS1,#0A2H
; ソフトウェア起動 , A/D 変換開始
; 割込み許可
MOV ILM,#07H
;PS の ILIM をレベル 7 に設定
OR
CCR,#40H
; 割込み許可
LOOP:
MOV A,#00H
; ループエンドレス
MOV A,#01H
BRA
LOOP
;----- 割込みプログラム ---------------------------------------------------------ED_INT1:
MOV
I:ADCS1,#00H
;A/D 変換停止 , 割込みフラグをクリア , 不可
;
RETI
; 割込みから復帰
CODE ENDS
276
第 17 章 8/10 ビット A/D コンバータ
;----- ベクタ設定 ------------------------------------------------------------VECT CSEG ABS=0FFH
ORG
0FFB4H
; ベクタを割込み #18(12H) に設定
DSL
ED_INT1
ORG
0FFDCH
; リセットベクタ設定
DSL
START
DB
00H
; シングルチップモード設定
VECT ENDS
END
START
277
第 17 章 8/10 ビット A/D コンバータ
17.9
8/10 ビット A/D コンバータのプログラム例 -2
( 連続変換モードの EI2OS 起動例 )
連続変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 連続変換モードの EI2OS 起動プログラム例
● 処理仕様
• アナログ入力 AN3 ~ AN5 の変換を 2 度行い , 各チャネルの変換データを 2 個取得
します。
• 変換データは , 600H ~ 60BH 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 変換は , 16 ビットリロードタイマ 1 で行います (MB90V390HA/HB でのみ使用可能
です )。
図 17.9-1 連続変換モードの EI2OS 起動プログラム例のフロー
変換開始
AN3
割込み
EI2OS 転送
AN4
割込み
EI2OS 転送
AN5
割込み
EI2OS 転送
全 6 回転送後
割込みシーケンス
終了
278
第 17 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
EQU
000100H
; 下位バッファアドレスポインタ
BAPM
EQU
000101H
; 中間バッファアドレスポインタ
BAPH
EQU
000102H
; 上位バッファアドレスポインタ
ISCS
EQU
000103H
; EI2OS ステータスレジスタ
IOAL
EQU
000104H
; 下位 I/O アドレスレジスタ
IOAH
EQU
000105H
; 上位 I/O アドレスレジスタ
DCTL
EQU
000106H
; 下位データカウンタ
DCTH
EQU
000107H
; 上位データカウンタ
DDR6
EQU
000016H
; ポート 6 方向レジスタ
ADER0
EQU
00000CH
; アナログ入力許可レジスタ
ICR10
EQU
0000BAH
;A/D コンバータ用割込み制御レジスタ
ADCS0
EQU
000034H
;A/D 制御ステータスレジスタ
ADCS1
EQU
000035H
;
ADCR0
EQU
000036H
;A/D データレジスタ
EQU
000037H
;
TMCSR1LEQU
000068H
; 下位制御ステータスレジスタ 1
TMCSR1HEQU
000069H
;
TMRL1L EQU
003902H
;16 ビットリロードレジスタ 1
TMRL1H EQU
003903H
;
ADCR1
;----- メインプログラム --------------------------------------------------------------CODE
CSEG
START:
; スタックポインタ (SP) が既に初期化済み
; であると想定
AND
CCR,#0BFH
; 割込み不可
MOV
ICR10,#08H
; 割込みレベル : 0 ( 最優先 )
; 割込み時に E12OS を許可
;
MOV
BAPL,#00H
; 変換データが保管されるアドレスを設定
MOV
BAPM,#06H
;(600H ~ 60BH を使用 )
MOV
BAPH,#00H
;
MOV
ISCS,#18H
; ワードデータを転送 , アドレスに 1 を加算 ,
; そして I/O からメモリにデータを転送
MOV
IOAL,#36H
; アナログデータレジスタのアドレスを
MOV
IOAH,#00H
; 転送ソースアドレスポインタとして設定
MOV
DCTL,#06H
;EI2OS による 6 種類転送
;(3 チャネルに対しそれぞれ 2 種類 )
MOV
DDR6,#00000000B ; P60 ~ P67 を入力として設定
MOV
ADER0,#00111000B ;P63/AN3 ~ P65/AN5 をアナログ入力として設定
MOV
DCTH,#00H
;
MOV
ADCS0,#9DH
; 連続変換モード , AN3 ~ AN5 を変換
MOV
ADCS1,#0A8H
;16 ビットタイマを起動 , A/D 変換を開始し
; 割込みを許可する
279
第 17 章 8/10 ビット A/D コンバータ
MOVW
TMRL1L,#0320H
; タイマ値を 800(320H), 100s に設定
MOV
TMCSR1H,#00H
; クロックソースを 125ns に設定
; 外部トリガを禁止
MOV
TMCSR1L,#12H
; タイマ出力を禁止 , 割込みを禁止し
; リロードを許可
MOV
TMCSR1L,#13H
;16 ビットタイマを起動
MOV
ILM,#07H
;PS の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込みを許可
MOV
A,#00H
; ループエンドレス
MOV
A,#01H
BRA
LOOP
LOOP:
;----- 割込みプログラム ---------------------------------------------------------ED_INT1:
MOV
I:ADCS1,#80H
;A/D 変換停止不可 , 割込みフラグを
; クリア , 不可
RETI
CODE
; 割込みから復帰
ENDS
;----- ベクタ設定 ------------------------------------------------------------VECT
280
CSEG
ORG
ABS=0FFH
0FFB4H
DSL
ED_INT1
ORG
0FFDCH
DSL
START
DB
00H
VECT
ENDS
END
START
; ベクタを割込み #18(12H) に設定
; リセットベクタ設定
; シングルチップモード設定
第 17 章 8/10 ビット A/D コンバータ
17.10
8/10 ビット A/D コンバータのプログラム例 -3
( 停止変換モードの EI2OS 起動例 )
停止変換モードの EI2OS 起動による A/D 変換処理プログラム例を示します。
■ 停止変換モードの EI2OS 起動プログラム例
● 処理仕様
• アナログ入力 AN3 を一定期間で 12 回変換します。
• 変換データは , 600H ~ 617H 番地に順に転送します。
• 分解能は , 10 ビットとします。
• 変換は , 16 ビットリロードタイマ 1 で行います (MB90V390HA/HB でのみ使用可能
です )。
図 17.10-1 停止変換モードの EI2OS 起動プログラム例のフロー
変換開始
AN3
割込み
EI2OS 転送
停止
16 ビットリロードタイマ 1 起動
12 回転送後
割込みシーケンス
終了
281
第 17 章 8/10 ビット A/D コンバータ
● コーディング例
BAPL
EQU
000100H
; 下位バッファアドレスポインタ
BAPM
EQU
000101H
; 中間バッファアドレスポインタ
BAPH
EQU
000102H
; 上位バッファアドレスポインタ
ISCS
EQU
000103H
;EI2OS ステータスレジスタ
IOAL
EQU
000104H
; 下位 I/O アドレスレジスタ
IOAH
EQU
000105H
; 上位 I/O アドレスレジスタ
DCTL
EQU
000106H
; 下位データカウンタ
DCTH
EQU
000107H
; 上位データカウンタ
DDR6
EQU
000016H
; ポート 6 方向レジスタ
ADER0
EQU
00000CH
; アナログ入力許可レジスタ
ICR10
EQU
0000BAH
;A/DC 用割込み制御レジスタ
ADCS0
EQU
000034H
;A/D 制御ステータスレジスタ
ADCS1
EQU
000035H
;
ADCR0
EQU
000036H
;A/D データレジスタ
EQU
000037H
;
TMCSR1LEQU
000068H
; 下位制御ステータスレジスタ 1
TMCSR1HEQU
000069H
;
TMRL1L EQU
003902H
;16 ビットリロードレジスタ 1
TMRL1H EQU
003903H
;
ADCR1
;----- メインプログラム -------------------------------------------------------------CODE CSEG
START:
; スタックポインタ (SP) が既に初期化済み
; であると想定
AND
CCR,#0BFH
; 割込み不可
MOV
ICR10,#08H
; 割込みレベル : 0 ( 最優先 )+ EI2OS.
MOV
BAPL,#00H
; 変換データが保管されるアドレスを設定
MOV
BAPM,#06H
;(600H ~ 617H を使用 )
MOV
BAPH,#00H
;
MOV
ISCS,#19H
; ワードデータを転送 , アドレスに 1 を加算 ,
;I/O からメモリにデータを転送
; そしてリソース要求により終了
MOV
IOAL,#36H
; アナログデータレジスタのアドレスを
MOV
IOAH,#00H
; 転送ソースアドレスポインタとして設定
MOV
DCTL,#0CH
;EI2OS によるチャネル 3 を 12 回転送
MOV
DDR6,#00000000B ;P60 ~ P67 を入力として設定
MOV
ADER0,#00001000B ; P63/AN3 をアナログ入力として設定
MOV
ADCS0,#0DBH
; 変換モードを停止 , AN3CH を変換
MOV
ADCS1,#0A8H
;16 ビットタイマを起動 , A/D 変換を開始し
; 割込みを許可する
MOVW
TMRL1L,#0320H
; タイマ値を 800(320H), 100s に設定
MOV
TMCSR1H,#00H
; クロックソースを 125ns に設定
; 外部トリガを禁止
282
第 17 章 8/10 ビット A/D コンバータ
MOV
TMCSR1L,#12H
; タイマ出力を禁止 , 割込みを禁止し
; リロードを許可
MOV
TMCSR1L,#13H
;16 ビットタイマを起動
MOV
ILM,#07H
;PS の ILM をレベル 7 に設定
OR
CCR,#40H
; 割込みを許可
MOV
A,#00H
; ループエンドレス
MOV
BRA
A,#01H
LOOP
LOOP:
;----- 割込みプログラム ---------------------------------------------------------ED_INT1:
MOV
I:ADCS1,#80H
;A/D 変換停止不可 , 割込みフラグを
; クリア , 不可
RETI
CODE
; 割込みから復帰
ENDS
;----- ベクタ設定 ------------------------------------------------------------VECT
CSEG
ORG
ABS=0FFH
0FFB4H
DSL
ED_INT1
ORG
0FFDCH
DSL
START
DB
00H
VECT
ENDS
END
START
; ベクタを割込み #18(12H) に設定
; リセットベクタ設定
; シングルチップモード設定
283
第 17 章 8/10 ビット A/D コンバータ
284
第 18 章
UART0
UART0 の機能と動作について説明します。
18.1 UART0 の特長
18.2 UART0 のブロックダイヤグラム
18.3 UART0 のレジスタ
18.4 UART0 の動作
18.5 ボーレート
18.6 内部クロックおよび外部クロック
18.7 転送データフォーマット
18.8 パリティビット
18.9 割込み生成とフラグのセットタイミング
18.10 UART0 の応用例
285
第 18 章 UART0
18.1
UART0 の特長
UART0 は , 非同期通信または CLK 同期通信を行うためのシリアル I/O ポートです。
MB90945 シリーズには UART0 と UART3 の 2 本の UART があります。UART3 に
ついては「第 19 章 UART2/3」を参照してください。
■ UART0 の特長
UART0 には以下の特長があります。
• 全二重ダブルバッファ
• CLK 同期と CLK 非同期調歩式データ転送のサポート
• マルチプロセッサモードのサポート ( モード 2)
• 専用ボーレートジェネレータの内蔵 (12 種類 )
• 外部クロック入力または内部タイマによる自由なボーレート設定のサポート
• 可変長データ (7 ~ 9 ビット [ パリティなし ], 6 ~ 8 ビット [ パリティあり ])
• エラー検出機能 ( フレーミング , オーバラン , パリティ )
• 割込み機能 ( 受信割込みと送信割込み )
• NRZ 形式の転送フォーマット
286
第 18 章 UART0
18.2
UART0 のブロックダイヤグラム
図 18.2-1 に , UART0 のブロックダイヤグラムを示します。
■ UART0 のブロックダイヤグラム
図 18.2-1 UART0 のブロックダイヤグラム
コントロールバス
受信割込み (CPU へ )
専用ボーレートクロック
SCK0
送信クロック
16 ビットリロードタイマ 0
クロック
選択回路
送信割込み (CPU へ )
受信クロック
SCK0
SIN0
受信制御回路
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
SOT0
送信用シフタ
受信用シフタ
受信状態判定回路
受信終了
送信開始
UIDR0
EI2OS 用
受信エラー発生信号
(CPU へ )
UODR0
データバス
UMC0
レジスタ
PEN
SBL
MC1
MC0
SMDE
RFC
SCKE
SOE
USR0
レジスタ
RDRF
ORFE
PE
TDRE
RIE
TIE
RBF
TBF
UDR0
レジスタ
BCH
RC3
RC2
RC1
RC0
BCH0
P
D8
コントロールバス
( 注意事項 ) このダイヤグラムは UART0 に有効です。
287
第 18 章 UART0
18.3
UART0 のレジスタ
UART0 には , 次の 4 つのレジスタがあります。
• シリアルモード制御レジスタ (UMC0)
• ステータスレジスタ (USR0)
• インプットデータ / アウトプットデータレジスタ (UIDR0/UODR0)
• レート / データレジスタ (URD0)
■ UART0 のレジスタ
シリアルモード制御レジスタ
UMC0
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000020H
PEN
SBL
MC1
MC0
SMDE
RFC
SCKE
SOE
00000100
R/W
R/W
R/W
R/W
R/W
W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
RDRF
ORFE
PE
TDRE
RIE
TIE
RBF
TBF
00010000
R
R
R
R
R/W
R/W
R
R
ステータスレジスタ
USR0
アドレス
ch.0 000021H
インプットデータレジスタ / アウトプットデータレジスタ
UIDR0( リード )
UODR0( ライト )
アドレス
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
000022H
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXX
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
レート / データレジスタ
URD0
アドレス
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ch.0 000023H
BCH
RC3
RC2
RC1
RC0
BCH0
P
D8
0000000X
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R
W
X
288
:リード / ライト可能
:リードオンリ
:ライトオンリ
:不定
第 18 章 UART0
18.3.1
シリアルモード制御レジスタ (UMC0)
シリアルモード制御レジスタ (UMC0) は , UART0 の動作モードを指定します。動作
が停止中に動作モードを設定します。ただし , RFC ビットは動作中もアクセス可能
です。
■ シリアルモード制御レジスタ (UMC0)
図 18.3-1 シリアルモード制御レジスタ (UMC0) の構成
UMC0
アドレス: bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000020 H
PEN
SBL
初期値
MC1 MC0 SMDE RFC SCKE SOE
R/W R/W R/W R/W R/W W R/W R/W
00000100B
bit0
SCLK 許可ビット
SOE
0
SOT0 端子禁止 (High-Z)
1
SOT0 端子許可 (TxData)
bit1
シリアルクロック出力イネーブルビット
SCKE
0
外部シリアルクロック入力
1
内部シリアルクロック出力
bit2
RFC
レシーバフラグクリアビット
書込み時
読出し時
0
RDRF, ORFE, PE をクリア
1
影響なし
常に "1"
bit3
同期モード許可ビット
SMDE
0
スタート・ストップ CLK 同期送信
1
非同期送信
bit4
bit5
MC0
MC1
0
0
モード 0:非同期 , 7(6) データビット
1
0
モード 1:非同期 , 8(7) データビット
0
1
モード 2:非同期 , マルチプロセッサ , 8+1 データビット
1
1
モード 3:非同期 , 9(8) データビット
モード制御ビット
bit6
ストップビット長ビット
SBL
0
1 ビット
1
2 ビット
bit7
パリティ許可ビット
PEN
R/W
:
リード / ライト可能
W
:
ライトオンリ
( リードは常に "0" を戻します )
:
初期値
0
パリティ使用禁止
1
パリティを使用
289
第 18 章 UART0
■ シリアルモード制御レジスタ (UMC0) の内容
表 18.3-1 シリアルモード制御レジスタの各ビットの機能 ( 1 / 2 )
ビット名
bit 7
bit 6
機能
PEN:
パリティ許可
シリアルデータ I/O でパリティビットの追加 ( 送信時 ) または検出 ( 受信
時 ) を指定します。モード 2 では "0" に設定します。
0: パリティなし
1: パリティあり
SBL:
ストップ
ビット長
ビット
送信データのストップビット数を指定します。受信データについては ,
最初のストップビットだけが認識され , それ以降のストップビットは無
視されます。
0:1 ビット長
1:2 ビット長
MC1, MC0:
モード制御
ビット
転送データの長さを制御します。表 18.4-1 に , 本ビットで選択可能な 4
つの転送モード ( データ長 ) を示します。
bit 5, bit4
Mode
0
MC1
0
MC2
0
データ長
7(6)
1
2
0
1
1
0
8(7)
8+1
3
1
1
9(8)
括弧内の数字は , パリティ付のデータ長を示します。
"+1" はパリティの代わりにアドレス / データビットを意味します。
bit 3
bit 2
bit 1
SMDE:
同期モード
許可ビット
SMDE は , 転送方法を選択します。
0: 調歩式 CLK 同期転送 ( 調歩ビットによるクロック選択の同期転送 )
1: 調歩式 CLK 非同期転送
RFC:
レシーバ
フラグクリア
ビット
"0" を書き込むと , USR0 レジスタ中の RDRF, ORFE, PE フラグがクリア
されます。"1" 書込みは無効であり , 読出し値は常に "1" になります。
( 注意事項 )
受信割込みが UART0 操作中許可されている場合 , RDRF, ORFE, PE の
どれかが "1" になっていれば , RFC には "0" のみを書き込みます。
SCKE:
SCLK 許可
ビット
CLK 同期モードで本ビットに "1" を書き込むと , ポート端子が UART0
シリアルクロック出力端子に切り換わり , 同期クロックが出力されます。
CLK 非同期モードまたは外部クロックモードで "0" を設定してくださ
い。
0: 汎用入出力ポートとして機能し , シリアルクロックを出力しません。
ポートが入力モード (DDR=0) に設定され , RC3 ~ RC0 が "1111B" に設
定されている場合 , 外部クロック入力端子として機能します。
1:UART0 シリアルクロック出力端子として機能します。
( 注意事項 )
ポート端子をクロック出力として使用している場合 , ポート方向レジス
タの対応するビットを "1" に設定する必要があります。
290
第 18 章 UART0
表 18.3-1 シリアルモード制御レジスタの各ビットの機能 ( 2 / 2 )
ビット名
SOE:
シリアル出力
許可ビット
bit 0
機能
"1" を書き込むと , ポート端子が UART0 シリアルデータ出力端子に切り
換わり , シリアル出力が可能になります。
0: ポート端子として機能し , シリアルデータを出力しません。
1:UART0 シリアルデータ出力端子 (SOT0) として機能します。
( 注意事項 )
ポート端子をシリアル出力として使用している場合 , ポート方向レジス
タの対応するビットを "1" に設定する必要があります。
291
第 18 章 UART0
18.3.2
ステータスレジスタ (USR0)
ステータスレジスタ (USR0) は , UART0 ポートの現在の状態を示します。
■ ステータスレジスタ (USR0) の構成
図 18.3-2 ステータスレジスタ (USR0) の構成
USR0
アドレス:
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
000021 H
RDRF ORFE
R
R
PE
R
TDRE
RIE
TIE RBF
R R/W R/W R
初期値
TBF
R
00010000B
bit8
送信ビジーフラグビット
TBF
0
送信アイドル
1
送信ビジー
bit9
受信ビジーフラグビット
RBF
0
受信アイドル
1
受信ビジー
bit10
TIE
0
1
送信割込み許可ビット
ディセーブル割込み
イネーブル割込み
bit11
RIE
受信割込み許可ビット
0
ディセーブル割込み
1
イネーブル割込み
bit12
TDRE
送信データレジスタエンプティビット
0
UODR0 におけるデータあり
1
UODR0 におけるデータなし
bit13
PE
パリティエラービット
0
パリティエラー発生なし
1
パリティエラー発生
bit14
ORFE
オーバラン / フレーミングエラービット
0
オーバラン / フレーミングエラー発生なし
1
受信中にオーバラン / フレーミングエラー発生
bit15
RDRF
: リード / ライト可能
0
UIDR0 におけるデータなし
R
: フラグはリードオンリ ,
ライトは影響なし
1
UIDR0 におけるデータあり
: 初期値
292
受信データレジスタフルビット
R/W
第 18 章 UART0
■ ステータスレジスタ (USR0) の内容
表 18.3-2 ステータスレジスタビットの機能 ( 1 / 2 )
ビット名
bit 15
機能
RDRF:
受信データ
レジスタ
フルビット
UIDR0 ( インプットデータレジスタ ) の状態を示すフラグです。UIDR0
レジスタに受信データがロードされるとセットされ , UIDR0 レジスタを
読み出すか , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされ
ます。RIE がアクティブな場合 , RDRF がセットされていれば受信割込
み要求が生成されます。
0:UIDR0 中にデータなし
1:UIDR0 中にデータあり
ORFE:
オーバラン /
フレーミング
エラービット
受信中にオーバランまたはフレーミングエラーが発生した場合にセッ
トされるフラグです。UMC0 レジスタ中の RFC に "0" を書き込むと ,
クリアされます。本フラグをセットすると , UIDR0 中のデータは無効に
なり , 受信用シフタから UIDR0 へのロードが実行されません。RIE が
アクティブな場合 , ORFE がセットされていれば受信割込み要求が生成
されます。
0: エラーなし
1: エラーあり ( 下の表を参照 )
bit 14
bit 11
ORFE
0
0
空
0
1
フレーミングエラー
1
0
有効データ
1
1
オーバランエラー
UIDR0 の状態
PE:
パリティ
エラービット
受信パリティエラーが発生した場合にセットされるフラグです。UMC0
レジスタ中の RFC に "0" を書き込むと , クリアされます。本フラグを
セットすると , UIDR0 中のデータは無効になり , 受信用シフタから
UIDR0 へのロードが実行されません。RIE がアクティブな場合 , PE が
セットされていれば受信割込み要求が生成されます。
0: パリティエラーなし
1: パリティエラー発生
TDRE:
送信データ
レジスタ
エンプティ
ビット
UODR0 ( アウトプットデータレジスタ ) の状態を示すフラグです。
UODR0 レジスタに送信データを書き込むと , クリアされます。データ
が送信用シフタにロードされ , 転送が開始されるとセットされます。
TIE がアクティブな場合 , TDRE がセットされていれば送信割込み要求
が生成されます。
0:UODR0 中にデータあり
1:UODR0 中にデータなし
RIE:
受信割込み
許可ビット
受信割込み要求を許可します。
0: 割込みを禁止
1: 割込みを許可
bit 13
bit 12
RDRF
293
第 18 章 UART0
表 18.3-2 ステータスレジスタビットの機能 ( 2 / 2 )
ビット名
bit 10
bit 9
bit 8
294
機能
TIE:
送信割込み
許可ビット
送信割込み要求を許可します。TDRE が "1" のとき送信割込みが許可さ
れると , 送信割込みが直ちに生成されます。
0: 割込みを禁止
1: 割込みを許可
RBF:
受信ビジー
フラグビット
UART0 がインプットデータを受信中であることを示すフラグです。ス
タートビットが検出されるとセットされ , ストップビットが検出される
とクリアされます。
0: 受信側がアイドル状態
1: 受信側がビジー状態
TBF:
送信ビジー
フラグビット
UART0 がインプットデータを送信中であることを示すフラグです。送
信データが UODR0 レジスタに書き込まれるとセットされ , 送信が完了
するとクリアされます。
0: 送信側がアイドル状態
1: 送信側がビジー状態
第 18 章 UART0
18.3.3
インプットデータレジスタ (UIDR0) とアウトプット
データレジスタ (UODR0)
インプットデータレジスタ (UIDR0) は , シリアル・データ・インプット・レジスタ
であり , アウトプットデータレジスタ (UODR0) は , シリアル・データ・アウトプッ
ト・レジスタです。
データ長が 6 ビットの場合最上位ビットの D7 と D6 が無視され , データ長が 7 ビッ
トの場合最上位ビットの D7 が無視されます。USR0 レジスタ中の TDRE=1 のとき
のみ UODR0 に書込みし , USR0 レジスタ中の RDRF=1 のときのみ UIDR0 を読出し
できます。
■ インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0)
図 18.3-3 インプットデータレジスタ (UIDR0) とアウトプットデータレジスタ (UODR0)
アドレス
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
000022 H
R/W R/W R/W R/W R/W R/W R/W R/W
初期値
X X X X X X X XB
bit7 ~ bit0
R/W
R/W: リード / ライト可能
データレジスタ
リード
入力データレジスタから読出し
ライト
出力データレジスタへ書込み
295
第 18 章 UART0
18.3.4
レート・データレジスタ (URD0)
レート・データレジスタ (URD0) は , UART0 用のデータ転送速度を選択するレジス
タです。送信データ長が 9 ビットのとき , データの最上位ビット (bit8) を保持しま
す。UART0 が停止中にボーレートとパリティを設定してください。
■ レート・データレジスタ (URD0)
図 18.3-4 レート・データレジスタ (URD0) の構成
URD0
アドレス: bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
000023 H BCH RC3 RC2 RC1
RC0 BCH0 P
初期値
D8
R/W R/W R/W R/W R/W R/W R/W R/W
0 0 0 0 0 0 0 XB
bit8
UIDR0/UODR0 データビット 8
D8
X
リード / ライト
bit9
パリティビット
P
0
偶数パリティ
1
奇数パリティ
bit10
ボーレートクロック変換ビット
BCH0
-
詳細については概要を参照してください。
bit14 ~ bit11
RC3 ~ RC0
-
レート制御ビット
詳細については概要を参照してください。
bit15
BCH
R/W
296
:
リード / ライト可能
:
初期値
-
ボーレートクロック変換ビット
詳細については概要を参照してください。
第 18 章 UART0
■ レート・データレジスタ (URD0) の内容
表 18.3-3 レート・データレジスタビットの機能
ビット名
BCH, BCH0:
ボーレート
クロック変換
ビット
bit 15,
bit 10
bit 14
~
bit11
bit 9
bit 8
RC3, RC2, RC1,
RC0:
レート制御
ビット
機能
ボーレートクロック用のマシンサイクルを指定します ( 詳細につ
いては , 「18.4 UART0 の動作」を参照 ) 。
BCH
BCH0
分周比
各マシンサイクルの設定例
0
0
6 分周
24MHz マシンサイクル 24/6=4MHz
0
1
4 分周
16MHz マシンサイクル 16/4=4MHz
1
0
3 分周
12MHz マシンサイクル 12/3=4MHz
1
1
5 分周
20MHz マシンサイクル 20/5=4MHz
10MHz マシンサイクル 10/5=2MHz
UART0 ポート用のクロック入力を選択します ( 詳細については ,
「18.4 UART0 の動作」を参照 ) 。
RC3 ~ RC0
"0000" ~ "1011"
クロック入力
専用ボーレートジェネレータ
"1101"
16 ビットリロードタイマ 0
"1111"
外部クロック
P:
パリティビット
パリティがアクティブのとき , 偶数 / 奇数パリティを設定します
(PEN=1)。
0: 偶数パリティ
1: 奇数パリティ
D8:
UIDR0/UODR0
データビット 8
モード 2 または 3 (9 ビットデータ長 ) およびパリティなしでの転
送データの bit8 を保持します。読出し時には UIDR0 レジスタの
bit8 として , 書込み時には UODR0 レジスタの bit8 として扱われま
す。その他のモードでは意味を持ちません。USR0 レジスタ中で
TDRE=1 のときのみ D8 に書込みます。
297
第 18 章 UART0
18.4
UART0 の動作
表 18.4-1 に , UART0 の動作モードを示します。モードを切り換えるには , UMC0 レ
ジスタに値を設定します。
■ UART0 の動作モード
表 18.4-1 UART0 の動作モード
モード
0
1
2
3
パリティ
データ長
On
6
Off
7
On
7
Off
8
Off
8+1
On
8
Off
9
クロックモード
CLK 非同期または
CLK 同期
ストップビット長
*
1 ビットまたは
2 ビット
*: ストップビット長については , 送信動作のみ指定が可能です。受信動作については常に 1 ビット
長となります。UART0 は上記モード以外では動作しませんので , 設定しないでください。
<注意事項>
UART0は , 調歩クロック同期転送を使用するため , クロック同期転送でもスタートビット
とストップビットをデータに追加します。
298
第 18 章 UART0
18.5
ボーレート
専用ボーレートジェネレータ使用時には , 次の 2 種類があります。
• CLK 同期ボーレート
• CLK 非同期ボーレート
■ CLK 同期ボーレート
URD0 レジスタの中の BCH, BCH0, RC3, RC2, RC1 の 5 つのビットが CLK 同期転送用
のボーレートを選択します。
最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。
BCH
BCH0
0
0
→
6 分周 [ 例えば , 24 MHz 時 24/6 = 4 MHz]
0
1
→
4 分周 [ 例えば , 16 MHz 時 16/4 = 4 MHz]
1
0
→
3 分周 [ 例えば , 12 MHz 時 12/3 = 4 MHz]
1
1
→
5 分周 [ 例えば , 20 MHz 時 20/5 = 4 MHz]
次に , 上記で選択したクロックの分周比を RC3, RC2, RC1, RC0 に設定します。CLK 同
期転送には , 以下の 3 つの設定が可能です。それ以外の設定は禁止されます。
RC3
RC2
RC1
RC0
0
1
0
1
→ 2 分周 [ 例えば , 4 MHz 時 4/2 = 2.0 M (bps)]
0
1
1
1
→ 4 分周 [ 例えば , 4 MHz 時 4/4 = 1.0 M (bps)]
1
0
0
1
→ 8 分周 [ 例えば , 4 MHz 時 4/8 = 0.5 M (bps)]
(2 MHz 時 , 上記の例の半分の速度になります。)
■ CLK 非同期ボーレート
URD0 レジスタの中の BCH, BCH0, RC3, RC2, RC1, RC0 の 6 つのビットが CLK 非同期
転送用のボーレートを選択します。
最初に , BCH, BCH0 を使用してマシンクロック分周比を選択します。
BCH
BCH0
0
0
→
6 分周 [ 例えば , 24 MHz 時 24/6 = 4 MHz]
0
1
→
4 分周 [ 例えば , 16 MHz 時 16/4 = 4 MHz]
1
0
→
3 分周 [ 例えば , 12 MHz 時 12/3 = 4 MHz]
1
1
→
5 分周 [ 例えば , 10 MHz 時 10/5 = 2 MHz]
299
第 18 章 UART0
次に , 上記で選択したクロックの非同期転送クロック分周比を RC3, RC2, RC1, RC0 に
設定します。CLK 非同期転送には , 以下の設定が可能です。
ボーレート =
ボーレート =
ボーレート =
ボーレート =
φ /6
2 m-1
φ /4
2 m-1
φ /3
2 m-1
φ /5
2 m-1
[bps]
( マシンサイクル= 24 MHz)
[bps]
( マシンサイクル= 16 MHz)
[bps]
( マシンサイクル= 12 MHz)
[bps]
( マシンサイクル= 20 MHz)
上記の 12 個のボーレートが選択可能であり , CLK 同期ボーレートの計算方法の公式を
以下に示します。
ボーレート =
ボーレート =
ボーレート =
ボーレート =
φ /6
2 m-1
φ /4
2 m-1
φ /3
2 m-1
φ /5
2 m-1
[bps]
( マシンサイクル= 24 MHz)
[bps]
( マシンサイクル= 16 MHz)
[bps]
( マシンサイクル= 12 MHz)
[bps]
( マシンサイクル= 20 (10) MHz)
ここで , φ はマシンサイクルであり , m は RC3 ~ RC1 の 10 進数表記です。
<注意事項>
m=0 または m=1 の場合 , 上記公式は計算不可です。
CLK 非同期ボーレートが -1% ~ +1% の範囲にある場合 , データ転送が可能です。ボー
レートは , CLK 非同期ボーレートを 8 × 13, 8 × 12, 8 で割った値です。
表 18.5-1 に , マシンサイクルが 24MHz, 20MHz, 16MHz, 12MHz 時の例を示します。表中
の "-" でマークした設定は使用しないでください。
300
第 18 章 UART0
表 18.5-1 ボーレート
CLK 非同期 (μs/Baud)
CLK 同期 (μs/Baud)
BCH/
0=11
BCH/
0=01
BCH/
0=10
24 MHz
20 MHz
16 MHz
12 MHz
BCH/
0=00
BCH/
0=11
BCH/
0=01
BCH/
0=10
RC0
12 MHz
RC1
16 MHz
RC2
20 MHz
RC3
24 MHz
CLK
非同
期分
周比
BCH/
0=00
0
0
0
0
-
-
-
-
8 x 12
-
-
-
-
0
0
0
1
26/
38460
26/
38460
26/
38460
26/
38460
8 x 13
-
-
-
-
0
0
1
0
-
-
8
-
-
-
-
0
0
1
1
2/
500000
2/
500000
2/
500000
2/
500000
8
-
-
-
-
0
1
0
0
48/
20833
48/
20833
48/
20833
48/
20833
8 x 12
-
-
-
-
0
1
0
1
52/
19230
52/
19230
52/
19230
52/
19230
8 x 13
0.5 / 2M
0.5 / 2M
0.5 / 2M
0.5 / 2M
0
1
1
0
96/
10417
96/
10417
96/
10417
96/
10417
8 x 12
-
-
-
-
0
1
1
1
104/
9615
104/
9615
104/
9615
104/
9615
8 x 13
1 / 1M
1 / 1M
1 / 1M
1 / 1M
1
0
0
0
192/
5208
192/
5208
192/
5208
192/
5208
8 x 12
-
-
-
-
1
0
0
1
208/
4808
208/
4808
208/
4808
208/
4808
8 x 13
2 / 500K
2/
500K
2/
500K
2/
500K
1
0
1
0
-
-
-
-
8
-
-
-
-
1
0
1
1
16/
62500
16/
62500
16/
62500
16/
62500
8
-
-
-
-
1
1
0
0
-
-
-
-
-
-
-
-
-
1
1
0
1
-
-
-
-
-
-
-
-
-
1
1
1
0
-
-
-
-
-
-
-
-
-
1
1
1
1
-
-
-
-
-
-
-
-
-
301
第 18 章 UART0
18.6
内部クロックおよび外部クロック
RC3 ~ RC0 を "1101B" に設定すると , 16 ビットリロードタイマ 0 からのクロック
信号を選択することになります。RC3 ~ RC0 を "1111B" に設定すると , 外部ク
ロックを選択することになります。なお , 外部クロックの最大周波数は 2MHz です。
■ 内部クロックおよび外部クロック
CLK 非同期ボーレートは , CLK 同期ボーレートを 8 で割ったものです。また , CLK 非
同期ボーレートが選択したボーレート -1% ~ +1% の範囲にある場合 , データ転送が可
能です。表 18.6-1 に , 内部タイマをクロックとして選択した場合のボーレートを示し
ます。本表の値は , マシンサイクルを 7.3728MHz として計算しています。ただし , 表
中の "-" でマークした設定は使用しないでください。
ボーレート =
φ/X
8 × 2 (n+1)
[bps]
φ: マシンサイクル
X: 内部タイマのカウントクロックソースの
分周比
n: リロード値 (10 進数 )
表 18.6-1 ボーレートとリロード値
リロード値
ボーレート
X=21 ( マシンサイクルの 2 分周 )
X=23 ( マシンサイクルの 8 分周 )
76800
2
-
38400
5
-
19200
11
2
9600
23
5
4800
47
11
2400
95
23
1200
191
47
600
383
95
300
767
191
表中の値は , 16 ビットリロードタイマのリロードカウント動作のリロード値 (10 進数 )
です。
302
第 18 章 UART0
18.7
転送データフォーマット
UART0 は , NRZ(non-return-to-zero) 形式のデータのみを扱います。図 18.7-1 に ,
送受信クロックと CLK 同期モードのデータとの関係を示します。
■ 転送データフォーマット
図 18.7-1 転送データフォーマット
SCK0
SIN0, SOT0
0
1
0
起動 LSB
1
1
0
0
1
0
MSB
1
停止
D8
転送されたデータは 01001101B ( モード 1) または 101001101B ( モード 3)。
1
⎫
停止⎬⎭
モードに依存
図 18.7-1 に示すように , 転送データは必ずスタートビット ("L" レベルデータ ) より始
まり , LSB ファーストで指定されたデータビット長転送が行われ , ストップビット ("H"
レベルデータ ) で終了します。外部クロックを選択している場合は , 常にクロックを入
力してください。
内部クロック ( 専用ボーレートジェネレータまたは 16 ビットリロードタイマ ) を選択
している場合 , クロックは連続的に出力されます。CLK 同期転送を使用する場合 , 選択
したボーレートクロックが安定 (2 ボーレートクロックサイクル ) するまでデータ転送
を開始しないでください。
CLK 非同期転送を使用する場合 , UMC0 レジスタ中の SCKE ビットを "0" に設定し , ク
ロック出力を無効にしてください。
SIN0 と SOT0 の転送データフォーマットは , 図 18.71 に示すものと同じです。
303
第 18 章 UART0
18.8
パリティビット
URD0 レジスタ中の P ( パリティ ) ビットは , パリティが許可されている場合に偶数 /
奇数パリティのどちらを使用するかを指定します。UMC0 レジスタ中の PEN ( パリ
ティ許可 ) ビットはパリティを許可します。
■ パリティビット
偶数パリティ設定時に図 18.8-1に示すデータをSINに入力すると, 受信パリティエラー
が発生します。図 18.8-1 には , 001101B を偶数 / 奇数パリティで送信時に送信される
データも示しています。
図 18.8-1 パリティを許可したシリアルデータ
SIN0
( 受信パリティエラー発生 P=0)
0
起動
1
LSB
0
1
1
0
0
MSB
0
1
停止
( パリティ )
SOT0
( 偶数パリティ送信 P=0)
0
起動
1
LSB
0
1
1
0
0
MSB
1
1
停止
( パリティ )
SOT0
( 奇数パリティ送信 P=1)
0
起動
304
1
LSB
0
1
1
0
0
MSB
0
1
停止
( パリティ )
第 18 章 UART0
18.9
割込み生成とフラグのセットタイミング
UART0 には , 2 つの割込み要因と 6 個のフラグがあります。2 つの割込み要因には ,
受信割込みと送信割込みがあります。6 個のフラグとは , RDRF, ORFE, PE, TDRE,
RBF, TBF です。受信については , RDRF, ORFE, PE フラグが割込みを要求します。
送信については , TDRE フラグが割込みを要求します。
■ 6 つのフラグのセットタイミング
● RDRF フラグ
RDRF フラグは UIDR0 レジスタに受信データがロードされるとセットされます。UMC0
レジスタ中のRFCに"0"を書き込むか, UIDR0レジスタを読み出すと, クリアされます。
● ORFE フラグ
ORFE フラグは , オーバランまたはフレーミングエラーフラグです。受信エラーが発生
した場合にセットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。
● PE フラグ
PE フラグは , 受信パリティエラーフラグです。受信パリティエラーが発生した場合に
セットされ , UMC0 レジスタ中の RFC に "0" を書き込むと , クリアされます。パリティ
検出機能はモード 2 では有効ではないので注意してください。
● TDRE フラグ
TDRE フラグは , UODR0 レジスタが空になり書込み可能になったときにセットされ ,
UODR0 レジスタに書込みを行うと , クリアされます。
上記の 4 個のフラグ (RDRF, ORFE,
PE, TDRE) は , 送受信割込みを起動します。
● RBF と TBF フラグ
RBF と TBF フラグは , 受信または送信が進行中であることを示します。RBF フラグは
受信中にアクティブになります。TBF フラグは送信中にアクティブになります。
305
第 18 章 UART0
18.9.1
受信動作時 ( モード 0, モード 1, モード 3) のフラグの
セットタイミング
RDRF, ORFE, PE フラグは , 受信転送が終了し最後のストップビットを検出すると
きにセットされ , CPU への割込み要求が発生します。ORFE, PE のどちらかのビッ
トがアクティブ時には , UIDR0 中のデータは無効となります。
■ 受信動作時 ( モード 0, モード 1, モード 3) のフラグのセットタイミング
図 18.9-1, 図 18.9-2, 図 18.9-3 に , RDRF, ORFE, PE フラグのセットタイミングを示しま
す。
図 18.9-1 RDRF のセットタイミング ( モード 0, 1, 3)
データ
停止
( 停止 )
RDRF
受信割込み
図 18.9-2 ORFE のセットタイミング ( モード 0, 1, 3)
データ
停止
データ
RDRF = 1
RDRF = 0
ORFE
ORFE
停止
受信割込み
受信割込み
( フレーミングエラー )
( オーバランエラー )
図 18.9-3 PE のセットタイミング ( モード 0, 1, 3)
データ
停止
PE
受信割込み
306
( 停止 )
第 18 章 UART0
18.9.2
受信動作時 ( モード 2) のフラグのセットタイミング
RDRF フラグは , 最後のストップビットを検出し , 最後のデータビット (D8) の値が
"1" で受信転送が終了するときにセットされます。
ORFE フラグは , 最後のデータビット (D8) の値に無関係に , 最後のストップビット
を検出するときにセットされます。ORFE ビットがアクティブ時には , UIDR0 中の
データは無効となります。
どれかのフラグがセットされると , CPU への割込み要求が発生します ( モード 2 の
使用法の詳細については , 「18.10 UART0 の応用例」を参照 ) 。
■ 受信動作時 ( モード 2) のフラグのセットタイミング
図 18.9-4 RDRF のセットタイミング ( モード 2)
データ
D6
D7
D8
停止
( 停止 )
RDRF
受信割込み
図 18.9-5 ORFE のセットタイミング ( モード 2)
データ
D7
D8
停止
データ D7
RDRF = 1
RDRF = 0
ORFE
ORFE
D8
停止
受信割込み
受信割込み
( オーバランエラー )
( フレーミングエラー )
307
第 18 章 UART0
18.9.3
送信動作時のフラグのセットタイミング
送信動作時に UODR0 レジスタに書き込まれたデータは , 内部シフトレジスタに転
送されます。このとき , TDRE フラグがセットされ , CPU への割込み要求が発生し
て , 次のデータを UODR0 フラグに書込みができるようになります。
■ 送信動作時のフラグのセットタイミング
図 18.9-6 TDRE のセットタイミング ( モード 0)
UODR ライト
TDRE
CPU へ割込みを要求
送信割込み
SOT0 出力
ST D0 D1
ST: スタートビット
308
D2 D3 D4
D5 D6 D7
D0 ~ D7: データビット
SP SP ST D0 D1
SP: ストップビット
D2 D3
第 18 章 UART0
18.9.4
送受信動作時のステータスフラグ
送受信動作時に , RBF フラグは , スタートビットが検出されるとセットされ , ストッ
プビットが検出されるとクリアされます。UIDR0 中の受信データは , RBF クリアタ
イミングではまだ無効状態です。UIDR0 中のデータは , RDRF セットタイミングで
有効になります。
■ 送受信動作時のステータスフラグ
図 18.9-7 に , RBF と受信割込みフラグのタイミングとの関係を示します。
図 18.9-7 RBF のセットタイミング ( モード 0)
SIN0 入力
ST D0 D1
D2 D3 D4
D5 D6 D7
SP
RBF
RDRF, PE, ORFE
ST: スタートビット
D0 ~ D7: データビット
SP: ストップビット
UODR0 に送信データを書き込むと , TBF がセットされ , 送信が完了するとクリアされ
ます。
図 18.9-8 TBF のセットタイミング ( モード 0)
UODR ライト
ST D0 D1
SOT0 出力
D2 D3 D4
D5 D6 D7
SP SP
TBF
ST: スタートビット
D0 ~ D7: データビット
SP: ストップビット
<注意事項>
SIN0 入力端子が "1" に固定されていない限り , 受信動作はリセットのリリース後に開始し
ます。このため , モードを設定する前に , UMC0 レジスタ中の RFC に "0" を書き込み , セッ
トされているすべての受信フラグをクリアしてください。
USR0 レジスタ中の RBF と TBF フラグが "0" のとき , 通信モードをセットしてください。
モード設定中の送受信データは保証されません。
■ EI2OS ( 拡張インテリジェント I/O サービス )
EI2OS の詳細については , 「3.7 拡張インテリジェント I/O サービス (EI2OS)」を参照
してください。
309
第 18 章 UART0
18.10
UART0 の応用例
モード 2 は , 1 台のホスト CPU と数台のスレーブ CPU が接続されるような場合に
使用されます ( 図 18.10-1 を参照 ) 。
■ 応用例
図 18.10-1 RBF のセットタイミング ( モード 0)
SIN0 入力
ST D0 D1
D2 D3 D4
D5 D6 D7
SP
RBF
RDRF, PE, ORFE
ST: スタートビット
D0 ~ D7: データビット
SP: ストップビット
図 18.10-2 に示すように , 通信は , ホスト CPU がアドレスデータを転送することによっ
て始まります。アドレスデータは , 9 番目のビット (D8) が "1" にセットされています。
これにより通信先となるスレーブ CPU が選択され , ユーザが決定したプロトコルを使
用してホスト CPU との通信を行います。通常データは D8 が "0" にセットされていま
す。非選択のスレーブ CPU は , 次の通信セッションが始まるまでスタンバイ状態で待
機します。図 18.10-3 に , 本モードでの動作フローチャートを示します。
このモードにおいては , パリティチェック機能は使用できませんので , UMC0 レジスタ
の PEN ビットは "0" としてください。
図 18.10-2 モード 2 使用時のシステム構築例
SOT0
SIN0
ホスト CPU
SOT0 SIN0
スレーブ CPU#0
310
SOT0 SIN0
スレーブ CPU#1
第 18 章 UART0
図 18.10-3 モード 2 使用時の通信フローチャート
( ホスト CPU)
( スレーブ CPU)
起動
起動
転送モードを "3" とする
転送モードを "2" にセット
D0 ~ D7 にスレーブ CPU
選択 , D8 に "1" をセット
し , 1 バイト転送
1 バイト受信
選択 ?
D8 に "0" をセットし , 通信
を実行
終了
NO
YES
転送モードを "3" にセット
し , SOT0 出力を許可
マスタ CPU で通信を
実行
ステータスフラグを使用し
て転送の完了を確認 , 転送
モードを "2" にセットして
SOT0 出力を禁止
311
第 18 章 UART0
312
第 19 章
UART2/3
UART2/3 の機能と動作について説明します。
19.1 UART2/3 の概要
19.2 UART2/3 の構成
19.3 UART2/3 の端子
19.4 UART2/3 のレジスタ
19.5 UART2/3 の割込み
19.6 UART2/3 のボーレート
19.7 UART2/3 の動作
19.8 UART2/3 使用上の注意
313
第 19 章 UART2/3
19.1
UART2/3 の概要
LIN(Local Interconnect Network) 機能を持つ UART2/3 は , 外部装置と同期通信も
しくは非同期通信 ( 調歩同期 ) をするための , 汎用のシリアルデータ通信インタ
フェースです。双方向通信機能 ( ノーマルモード ), マスタ / スレーブ型通信機能 ( マ
ルチプロセッサモード : マスタ / スレーブ両方をサポート ) に加え LIN バスに対応す
るための特別な機能 ( マスタまたはスレーブデバイスとして働く ) もサポートしてい
ます。
UART2/3 は他の UART に準拠したソフトウェアではないということに注意してくだ
さい。
■ UART2/3 の機能
● UART2/3 の機能
UART2/3 は , 他の CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー
タ通信インタフェースで , 表 19.1-1 に示す機能をもっています。
表 19.1-1 UART2/3 の機能 ( 1 / 2 )
項目
機能
データバッファ
全二重ダブルバッファ
シリアル入力
5 回オーバサンプリングを行い , サンプリング値の多数決により受
信値を決定します ( 非同期モードのみ )。
転送モード
• クロック同期 ( スタート / ストップ同期 , またはスタート / ストッ
プビットオプション )
• クロック非同期 ( スタート / ストップビットが使用可能 )
ボーレート
• 専用ボーレートジェネレータあり (15 ビットリロードカウンタか
ら構成 )
• 外部クロック入力可能。また , リロードカウンタで調節可能
データ長
• 7 ビット ( 同期または LIN モード以外 )
• 8 ビット
信号方式
NRZ (Non Return to Zero)
スタートビットタイミング
非同期モード時は , スタートビット立下りエッジに同期
受信エラー検出
• フレーミングエラー
• オーバランエラー
• パリティエラー ( 動作モード 1 では不可 )
割込み要求
•
•
•
•
314
受信割込み ( 受信完了 , 受信エラー検出 , LIN synch break 検出 )
送信割込み ( 送信データエンプティ )
ICU への割込み要求 (LIN synch field 検出 : LSYN)
送受信とも拡張インテリジェント I/O サービス (EI2OS) と DMA
機能
第 19 章 UART2/3
表 19.1-1 UART2/3 の機能 ( 2 / 2 )
項目
機能
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能
( マスタとスレーブシステムの両方をサポート )
同期モード
マスタまたはスレーブ UART 機能
端子アクセス
直接アクセス可能
LIN バスオプション
•
•
•
•
•
同期シリアルクロック
スタート / ストップビットで同期通信するために , SCK 端子に連続
出力可能
クロック遅延オプション
クロックを遅らせるための特殊な同期クロックモード (SPI に有効 )
マスタデバイス動作
スレーブデバイス動作
LIN Synch break 生成
LIN Synch break 検出
ICU1 ~ ICU5 に接続された LIN Synch field のスタート / ストップ
エッジ検出
315
第 19 章 UART2/3
■ UART2/3 の動作モード
UART2/3 は 4 つの異なるモードで動作します。動作モードは , シリアルモードレジス
タ (SMR2/3) の MD0, MD1 ビットにより決定されます。モード 0 とモード 2 は双方向
シリアル通信 , モード 1 はマスタ / スレーブ通信 , モード 3 は LIN マスタ / スレーブ通
信に使用されます。
表 19.1-2 UART2/3 の動作モード
データ長
動作モード
同期方式
パリティなし
0
ノーマルモード
1
マルチ
プロセッサ
モード
パリティあり
7 ビットまたは 8 ビット
7 ビット
または
8 ビット
―
ストップ
ビット長
L/M
非同期
非同期
データ
ビット
方向 * 1
1 ビット
または
2 ビット
L/M
+1 * 2
2
ノーマルモード
3
LIN モード
8
8
―
同期
なし ,
1 ビット ,
2 ビット
L/M
非同期
1 ビット
L
*1: データビット転送フォーマット:LSB ファーストまたは MSB ファースト
*2: "+1" はパリティの代わりにマルチプロセッサモードで使用されるアドレス / データ選択指定
ビットです。
<注意事項>
モード 1 は , マスタ / スレーブ接続時には UART2/3 のマスタとスレーブいずれの動作に
も対応します。
モード 3 では , UART2/3 機能は 8N1 フォーマット , LSB ファーストに固定されます。
モードを変更すると UART2/3 は送受信を打ち切り , 次の通信開始を待ちます。
シリアルモードレジスタ (SMR3) の MD1 と MD0 ビットで , 下記に示す UART2/3 の動
作モードを決定します。
表 19.1-3 モードビット設定
316
MD1
MD0
モード
0
0
0
非同期 ( ノーマルモード )
0
1
1
非同期 ( マルチプロセッサモード )
1
0
2
同期 ( ノーマルモード )
1
1
3
非同期 (LIN モード )
種類
第 19 章 UART2/3
■ UART2/3 の割込みと EI2OS
表 19.1-4 UART2/3 の割込みと EI2OS
割込み要因
割込み
番号
割込み制御レジスタ
ベクタテーブルのアドレス
レジスタ名
アドレス
下位
上位
バンク
EI2OS
UART2
受信割込み
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*1
UART2
送信割込み
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*2
UART3
受信割込み
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*3
UART3
送信割込み
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*4
*1: UART2 送信割込みと UART3 送受信割込みが不可の場合のみ , UART2 受信の EI2OS サービスが使
用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。
*2: UART2 受信割込みと UART3 送受信割込みが不可の場合のみ , UART2 送信の EI2OS サービスが使
用できます。
*3: UART3 送信割込みと UART2 送受信割込みが不可の場合のみ , UART3 受信の EI2OS サービスが使
用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。
*4: UART3 受信割込みと UART2 送受信割込みが不可の場合のみ , UART3 送信の EI2OS サービスが使
用できます。
317
第 19 章 UART2/3
19.2
UART2/3 の構成
UART2/3 の構成ブロックを簡単な概要で示します。
■ UART2/3 のブロックダイヤグラム
UART2/3 は次のブロックで構成されます。
• リロードカウンタ
• 受信制御回路
• 受信シフトレジスタ
• 受信データレジスタ (RDR2/3)
• 送信制御回路
• 送信シフトレジスタ
• 送信データレジスタ (TDR2/3)
• エラー検出回路
• オーバサンプリングユニット
• 割込み生成回路
• LIN Synch Break/Synch Field 検出
• バスアイドル検出回路
• LIN-UART2/3 シリアルモードレジスタ (SMR2/3)
• シリアル制御レジスタ (SCR2/3)
• シリアルステータスレジスタ (SSR2/3)
• 拡張通信制御レジスタ (ECCR2/3)
• 拡張ステータス制御レジスタ (ESCR2/3)
318
第 19 章 UART2/3
図 19.2-1 UART2/3 のブロックダイヤグラム
(OTO,
EXT,
REST)
マシンクロック
PE
ORE
FRE
TIE
RIE
LBIE
LBD
送信クロック
リロード
カウンタ
SCK2/3
受信クロック
割込み
生成回路
送信制御
回路
受信制御回路
RBI
TBI
端子
再スタート受信
リロードカウンタ
SIN2/3
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
端子
受信
IRQ
送信
IRQ
TDRE
SOT2/3
オーバ
サンプリング
回路
送信パリティ
カウンタ
受信パリティ
カウンタ
受信完了
端子
RDRF
SOT2/3
SIN2/3
キャプチャへ
の内部信号
LIN break/
SynchField
検出回路
SIN2/3
受信シフト
レジスタ
送信シフト
レジスタ
エラー
検出
バスアイドル
検出回路
RDR2/3
PE
ORE
FRE
EI2OS へ
LIN Synch
break 生成
送信開始
LBR
LBL1
LBL0
TDR2/3
RBI
LBD
TBI
内部データバス
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
SSR2/3
レジスタ
MD1
MD0
OTO
EXT
REST
UPCL
SCKE
SOE
SMR2/3
レジスタ
PEN
P
SBL
CL
A/D
CRE
RXE
TXE
SCR2/3
レジスタ
LBIE
LBD
LBL1
LBL0
SOPE
SIOP
CCO
SCES
LBR
MS
ESCR2/3 SCDE
レジスタ
SSM
ECCR2/3
レジスタ
RBI
TBI
■ 各ブロックの説明
● リロードカウンタ
専用ボーレートジェネレータとして機能します。
送受信クロックとして外部入力クロック , または内部クロックを選択できます。
リロードカウンタは , リロード値に対する 15 ビットレジスタから構成されています。
実際の送信リロードカウンタのカウントは , BGR02/BGR03/BGR12/BGR13 によって読
み出すことができます。
● 受信制御回路
受信ビットカウンタ , スタートビット検出回路 , および受信パリティカウンタから構成
されています。受信ビットカウンタは , 受信データビットをカウントして , 設定した
データ長に応じて 1 データの受信を完了すると , シリアルステータスレジスタに受信
データレジスタフルフラグをセットします。スタートビット検出回路は , シリアル入力
信号からスタートビットを検出する回路で , スタートビットの立下りエッジに同期し
て , リロードカウンタに信号を送ります。受信パリティカウンタは , 受信データのパリ
ティを計算します。
319
第 19 章 UART2/3
● 受信シフトレジスタ
SIN2/3 端子から入力された受信データを , ビットシフトしながら取り込みます。受信
が完了すると , RDR2/3 レジスタに受信データを転送します。
● 受信データレジスタ
受信データを保持します。シリアル入力データは変換され , 受信データレジスタに格納
されます。
● 送信制御回路
送信ビットカウンタ , 送信スタート回路 , および送信パリティカウンタから構成されて
います。送信ビットカウンタは , 送信データビットをカウントします。設定したデータ
長に応じて 1 データを送信します。送信ビットカウンタが書き込まれたデータの送信開
始を示すと , シリアルステータスレジスタ内の送信データレジスタフルフラグが設定さ
れます。このとき , 送信割込みが許可されていれば送信割込み要求を発生します。送信
スタート回路は , TDR2/3 のデータ書込みで送信動作を開始します。送信パリティカウ
ンタは , パリティありの場合 , 送信するデータのパリティビットを生成します。
● 送信シフトレジスタ
TDR2/3 レジスタに書き込まれたデータを送信シフトレジスタに転送し , ビットシフト
しながら SOT2/3 端子に出力します。
● 送信データレジスタ (TDR2/3)
送信データを設定します。このレジスタに書き込まれたデータは , シリアルデータに変
換され出力されます。
● エラー検出回路
最後の受信に , エラーがあったかどうかを検出します。エラーが発生すると , 対応する
エラーフラグをセットします。
● オーバサンプリングユニット
SIN2/3 端子で発生するデータをマシンクロックで 5 回オーバサンプリングを行います。
同期モード動作では停止します。
● 割込み生成回路
すべての受信・送信割込み要因を制御します。対応する許可フラグがセットされ , 割込
み要因が発生すると , 直ちに割込みが発生します。
● LIN Synch Break/Synchronization Field 検出回路
LINマスタノードがメッセージヘッダを送信すると, LIN synch breakを検出します。LIN
synch break が検出されると , 特有のフラグビットがセットされます。LIN synch field の
1 回目と 5 回目の立下りエッジを検出し , マスタノードが送信する実際のシリアルクロ
ック同期を測定するために , インプットキャプチャへ内部信号 (LSYN) を出力します。
● LIN Synch Break 生成回路
設定された長さの LIN synch break を生成します。
● バスアイドル検出回路
送受信が行われていないことを識別します。この場合 , 特有の TBI, RBI フラグビット
を生成します。
320
第 19 章 UART2/3
● LIN-UART2/3 シリアルモードレジスタ (SMR2/3)
以下に動作機能を示します。
• LIN-UART2/3 動作モード選択
• クロック入力ソースの選択
• 外部クロックが 1 対 1 接続またはリロードカウンタ接続であるか選択
• 専用リロードタイマのリセット
• LIN-UART2/3 リセット ( レジスタの設定は維持 )
• 対応する端子へのシリアルデータ出力の許可 / 禁止設定
• 対応する端子へのクロック出力の許可 / 禁止設定
● シリアル制御レジスタ (SCR2/3)
以下に動作機能を示します。
• パリティビット有無の設定
• パリティビット選択
• ストップビット長の設定
• データ長の設定
• モード 1 でのフレームデータ形式の選択
• エラーフラグのクリア
• 送信許可 / 禁止
• 受信許可 / 禁止
● シリアルステータスレジスタ (SSR2/3)
以下に動作機能を示します。
• 送受信やエラーの状態確認
• 転送方向 LSB ファースト /MSB ファーストの選択
• 受信割込み許可 / 禁止
• 送信割込み許可 / 禁止
● 拡張ステータス制御レジスタ (ESCR2/3)
以下に動作機能を示します。
• LIN synch break 割込み許可 / 禁止
• LIN synch break 検出の確認
• LIN synch break 長の設定
• SIN2/3, SOT2/3 端子への直接アクセス
• 連続クロック出力設定
• サンプリングクロックエッジ選択
● 拡張通信制御レジスタ (ECCR2/3)
以下に動作機能を示します。
• バスアイドルの状態確認
• 同期クロック設定
• LIN synch break 生成の設定
321
第 19 章 UART2/3
19.3
UART2/3 の端子
UART2/3 の端子 , および端子のブロックダイヤグラムを示します。
■ UART2/3 の端子
UART2/3 の端子は , 汎用ポートと兼用になっています。表 19.3-1 に端子の機能 , 入出
力形式 , および UART2/3 使用時の設定などを示します。
表 19.3-1 UART2/3 の端子
端子名
P90/SIN2
P91/SCK2
P92/SOT2
P93/SIN3
P95/SOT3
P94/SCK3
322
端子機能
入出力形式
プルアップ
選択
スタンバイ
制御
端子の使用に
必要な設定
ポート入出力 /
シリアルデータ
入力
入力ポートに設定
(DDR9:D90 = 0)
ポート入出力 /
シリアルデータ
出力
クロック入力時入力
ポートに設定
(DDR9:D91 = 0)
クロック出力時出力
許可モードに設定
(SMR2:SCKE = 1)
ポート入出力 /
シリアルクロック
入出力
ポート入出力 /
シリアルデータ
入力
ポート入出力 /
シリアルデータ
出力
ポート入出力 /
シリアルクロック
入出力
CMOS 出力
およびオートモー
ティブ選択許可 /
CMOS
ヒステリシス
入力
出力許可モードに設定
(SMR2:SOE = 1)
なし
あり
入力ポートに設定
(DDR9:D93 = 0)
出力許可モードに設定
(SMR3:SOE = 1)
クロック入力時入力
ポートに設定
(DDR9:D94 = 0)
クロック出力時出力
許可モードに設定
(SMR3:SCKE = 1)
第 19 章 UART2/3
図 19.3-1 UART2/3 の端子のブロックダイヤグラム
リソース入力
ポートデータレジスタ (PDR)
リソース出力
内部データバス
リソース出力許可
PDR リード
出力ラッチ
P-ch
PDR ライト
端子
ポート方向レジスタ (DDR)
N-ch
方向ラッチ
DDR ライト
DDR リード
汎用入出力 /SIN2/3
汎用入出力 /SCK2/3
汎用入出力 /SOT2/3
スタンバイ制御 (SPL = 1)
スタンバイ制御 : ストップモード , 時計モード , タイムベースタイマモード (SPL = 1)
( 注意事項 ) リソースはリソース機能を持つ端子から , またはその端子へ入出力される。
323
第 19 章 UART2/3
19.4
UART2/3 のレジスタ
UART2/3 のレジスタを以下に示します。
■ UART2/3 のレジスタ
図 19.4-1 UART2/3 のレジスタ
324
アドレス :
bit 15
bit 8 bit 7
bit 0
003519H,
003518H
SCR3 ( シリアル制御レジスタ )
SMR3 ( シリアルモードレジスタ )
00351BH,
00351AH
SSR3
( シリアルステータスレジスタ )
RDR3/TDR3
( 受信データレジスタ / 送信データレジスタ )
00351DH,
00351CH
ESCR3
( 拡張ステータス制御レジスタ )
ECCR3
( 拡張通信制御レジスタ )
00351FH,
00351EH
BGR13
( ボーレートジェネレータレジスタ 13)
BGR03
( ボーレートジェネレータレジスタ 03)
0035D9H,
0035D8H
SCR2 ( シリアル制御レジスタ )
SMR2 ( シリアルモードレジスタ )
0035DBH,
0035DAH
SSR2
( シリアルステータスレジスタ )
RDR2/TDR2
( 受信データレジスタ / 送信データレジスタ )
0035DDH,
0035DCH
ESCR2
( 拡張ステータス制御レジスタ )
ECCR2
( 拡張通信制御レジスタ )
0035DFH,
0035DEH
BGR12
( ボーレートジェネレータレジスタ 12)
BGR02
( ボーレートジェネレータレジスタ 02)
第 19 章 UART2/3
19.4.1
シリアル制御レジスタ (SCR2/3)
シリアル制御レジスタ (SCR2/3) は , パリティビットの設定 , ストップビット長や
データ長の選択 , モード 1 でのフレームデータ形式の選択 , 受信エラーフラグのクリ
ア , 送受信動作の許可または禁止の設定を行います。
■ シリアル制御レジスタ (SCR2/3)
図 19.4-2 シリアル制御レジスタ (SCR2/3) の構成
アドレス
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
SCR2: 0035D9H
SCR3: 003519H
PEN
P
SBL CL
00000000B
A/D CRE RXE TXE
R/W R/W R/W R/W R/W W R/W R/W
bit8
送信許可ビット
TXE
0
1
送信禁止
送信許可
bit9
受信許可ビット
RXE
0
1
受信禁止
受信許可
bit10
CRE
0
1
受信エラーフラグクリアビット
書込み時
読出し時
影響なし
すべての受信エラー (PE, 常に "0" をリード
FRE, ORE) クリア
bit11
A/D
0
1
アドレス / データ形式選択ビット
データビット
アドレスビット
bit12
データ長選択ビット
CL
0
1
7 ビット
8 ビット
bit13
ストップビット長選択ビット
SBL
0
1
1 ビット
2 ビット
bit14
P
0
1
パリティ選択ビット
偶数パリティ
奇数パリティ
bit15
R/W
:
W
:
:
リード / ライト可能
ライトオンリ
初期値
PEN
0
1
パリティ許可ビット
パリティなし
パリティあり
325
第 19 章 UART2/3
表 19.4-1 シリアル制御レジスタ (SCR2/3) の各ビットの機能説明
ビット名
bit15
bit14
bit13
bit12
bit11
bit10
機能
PEN:
パリティ
許可ビット
パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを設
定します。
パリティビットは動作モード 0 の場合 , または動作モード 2 でスタート /
ストップあり (ECCR2/3:SSM=1) に設定した場合にのみ付加されます。
モード 1 およびモード 3 (LIN) のときには "0" ( パリティなし ) に固定さ
れます。
P:
パリティ
選択ビット
パリティビットありに設定した場合に , 偶数パリティ (0) か奇数パリ
ティ (1) のいずれかに設定します。
SBL:
ストップ
ビット長
選択ビット
ECCR2/3 の SSM が選択されていると , 非同期データフレームまたは同
期フレームのストップビット長が選択されます。
本ビットは , モード 3(LIN) では "0" (1 ストップビット ) に固定されます。
( 注意事項 ) 受信時は , 常にストップビットの 1 ビット目だけを検出し
ます。
CL:
データ長
選択ビット
送受信データのデータ長を指定します。本ビットは , モード 2, モード 3
では "1" (8 ビット ) に固定されます。
AD:
アドレス /
データ形式
選択ビット
マルチプロセッサモード 1 で , データ形式を指定します。マスタ CPU
側は本ビットにライト , スレーブ CPU 側は本ビットをリードしてくだ
さい。1 はアドレスフレームを示し , 0 は通常のフレームを示します。
( 注意事項 ) 本ビットの使用にあたっては , 「19.3 UART2/3 の端子」を
参照してください。
CRE:
受信エラー
フラグクリア
ビット
シリアルステータスレジスタ (SSR2/3) の FRE, ORE, PE フラグをクリア
するビットです。
• "1" 書込みで , エラーフラグがクリアされます。
• "0" 書込みでは , 影響ありません。
読み出した場合 , 常に "0" を読み出します。
( 注意事項 ) 受信動作停止後に受信エラーフラグをクリアしてください
(RXE=0)。
RXE:
受信許可
ビット
bit 9
LIN-UART2/3 の受信動作を許可または禁止します。
• "0" に設定した場合:データフレーム受信動作が禁止されます。
• "1" に設定した場合:データフレーム受信動作が許可されます。
モード 3 での LIN synch break 検出は影響されません。
( 注意事項 ) 受信中に受信動作を禁止 (RXE=0) した場合には , 直ちに受
信動作が停止します。この場合データは保証されません。
bit 8
TXE:
送信許可
ビット
LIN-UART2/3 の送信動作を許可または禁止します。
• "0" に設定した場合:データフレーム送信動作が禁止されます。
• "1" に設定した場合:データフレーム送信動作が許可されます。
( 注意事項 ) 送信中に送信動作を禁止 (TXE=0) した場合には , 直ちに送
信動作が停止します。この場合データは保証されません。
326
第 19 章 UART2/3
19.4.2
シリアルモードレジスタ (SMR2/3)
シリアルモードレジスタ (SMR2/3) は , 動作モードの選択 , ボーレートクロックの選
択 , シリアルデータとクロックの端子への出力許可または禁止の設定を行います。
■ シリアルモードレジスタ (SMR2/3)
図 19.4-3
シリアルモードレジスタ (SMR2/3) の構成
初期値
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
SMR2: 0035D8H
SMR3: 003518H
MD1 MD0 SOE EXT REST UPCL SCKE SOE
R/W R/W R/W R/W W
00000000B
bit0
SOE
W R/W R/W
シリアルデータ出力許可ビット
0
汎用入出力ポート
1
LIN-UART シリアルデータ出力端子
bit1
SCKE
シリアルクロック出力許可ビット
0
汎用入出力ポートまたは LIN-UART クロック
入力端子
1
LIN-UART のシリアルクロック出力端子
bit2
UART2/3 プログラマブルクリアビット
( ソフトウェアリセット )
UPCL
書込み時
0
影響なし
1
UART リセット
読出し時
常に "0"
をリード
bit3
送信リロードカウンタ再スタートビット
REST
書込み時
読出し時
0
影響なし
1
リロードカウンタの再スタート
常に "0"
をリード
bit4
EXT
外部クロック選択ビット
0
内部ボーレートジェネレータ
( リロードカウンタ ) 使用
1
外部シリアルクロックソース使用
bit5
OTO
1 対 1 外部クロック入力許可ビット
0
外部ボーレートジェネレータ
( リロードカウンタ ) 使用
1
外部クロック直接使用
bit7, bit6
R/W
W
MD1
MD0
0
0
モード 0: 非同期 ノーマル
動作モード選択ビット
: リード / ライト可能
: ライトオンリ
0
1
モード 1: 非同期 マルチプロセッサ
1
0
モード 2: 同期
: 初期値
1
1
モード 3: 非同期 LIN
327
第 19 章 UART2/3
表 19.4-2 シリアルモードレジスタ (SMR2/3) の各ビットの機能説明
ビット名
機能
MD1, MD0 :
動作モード選択
ビット
UART2/3 の動作モードを設定します。
OTO:
1 対 1 外部
クロック入力許可
ビット
LIN-UART2/3 のシリアルクロックに外部クロックを直接使用す
ることを許可します。
動作モード 2( 同期 ) スレーブモード動作時に使用されます。
OTO ビットは EXT ビット (bit4) に "1" が書き込まれている場合
に "1" を書き込めます。
bit4
EXT:
外部クロック選択
ビット
リロードカウンタの内部または外部クロックソースを実行しま
す。
bit3
REST:
送信リロード
カウンタ
再スタートビット
"1" を書き込んだ場合 , リロードカウンタは再スタートします。
"0" を書き込んだ場合は , 影響ありません。
常に "0" が読み出されます。
UPCL:
UART2/3 プログラ
マブルクリアビッ
ト ( ソフトウェア
リセット )
"1" を書き込んだ場合 , LIN-UART2/3 を即時リセットします。た
だし , レジスタの設定は維持されます。その際 , 送受信は中断さ
れます。
すべてのフラグ (TDRE, RDRF, LBD, PE, ORE, FRE) は解除され ,
受信データレジスタ (RDR2/3) は "00H" を含みます。
bit7,
bit6
bit5
bit2
"0" を書き込んだ場合は , 影響ありません。
常に "0" が読み出されます。
割込み許可ビット停止後に行われます。
SCKE:
シリアルクロック
出力許可ビット
・シリアルクロックの入出力ポートを制御するビットです。
・"0" の場合は SCK2/3 端子は汎用入出力ポート , またはシリアル
クロック入力端子として機能します。"1" の場合はシリアルク
ロック出力端子となり , 動作モード 2( 同期 ) でクロックを出力
します。MS=1 のとき , SCKE ビットは "0" に固定されます。
( 注意事項 ) SCK2/3 端子をシリアルクロック入力端子 (SCKE=0)
として使用する場合は , 対応する DDR ビットを入力
ポートに設定してください。また , 外部クロック選択
ビットによって外部クロックを選択 (EXT=1) してく
ださい。
〔参考〕SCK2/3 端子がシリアルクロック出力 (SCKE=1) に設定さ
れている場合は , 汎用入出力ポートの状態にかかわらず ,
シリアルクロック出力端子として機能します。
SOE:
シリアルデータ
出力許可ビット
・シリアルデータの出力を許可 / 禁止するビットです。
・"0" の場合 , SOT2/3 端子は汎用入出力ポートとして動作します。
"1" の場合はシリアルデータ出力端子 (SOT2/3) となります。
〔参考〕シリアルデータ出力 (SOE=1) の場合 , SOT2/3 端子は汎用
入出力ポートの状態にかかわらず , シリアルデータ出力
端子 (SOT2/3) として機能します。
bit1
bit0
328
第 19 章 UART2/3
19.4.3
シリアルステータスレジスタ (SSR2/3)
シリアルステータスレジスタ (SSR2/3) は , 送受信やエラーの状態の確認 , 送受信割
込みの許可または禁止の設定を行います。
■ シリアルステータスレジスタ (SSR2/3)
図 19.4-4 シリアルステータスレジスタ (SSR2/3) の構成
初期値
00001000B
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
SSR2: 0035DBH
RIE
TIE
PE
ORE FRE RDRF TDRE BDS
SSR3: 00351BH
R
R
R
R
R R/W R/W R/W
bit8
TIE
0
1
送信割込み要求許可ビット
送信割込み禁止
送信割込み許可
bit9
RIE
0
1
受信割込み要求許可ビット
受信割込み禁止
受信割込み許可
bit10
BDS
0
1
ビット方向選択ビット
送受信 LSB ファースト
送受信 MSB ファースト
bit11
TDRE
0
1
送信データレジスタエンプティフラグビット
送信データレジスタにデータが存在する
送信データレジスタが空
bit12
RDRF
0
1
受信データレジスタフルフラグビット
受信データレジスタが空
受信データレジスタにデータが存在する
bit13
FRE
0
1
フレーミングエラーフラグビット
フレーミングエラーなし
受信中にフレーミングエラーあり
bit14
ORE
0
1
オーバランエラーフラグビット
オーバランエラーなし
受信中にオーバランエラーあり
bit15
PE
R/W
R
リード / ライト可能
: フラグはリードオンリ ,
ライトは影響なし
:
0
1
パリティエラーフラグビット
パリティエラーなし
受信中にパリティエラーあり
: 初期値
329
第 19 章 UART2/3
表 19.4-3 シリアルステータスレジスタ (SSR2/3) の各ビットの機能説明 ( 1 / 2 )
ビット名
bit15
PE:
パリティ
エラーフラグ
ビット
機能
• PEN=1で受信時にパリティエラーが発生すると"1"にセットされ,
シリアル制御レジスタ (SCR2/3) の CRE ビットに "1" を書き込むと
クリアされます。
• PEビットとRIEビットが"1"の場合,受信割込み要求を出力します。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の
データは無効です。
bit14
ORE:
オーバラン
エラーフラグ
ビット
• 受信時にオーバランエラーが発生すると "1" にセットされ , シリア
ル制御レジスタ (SCR2/3) の CRE ビットに "0" を書き込むとクリア
されます。
• ORE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し
ます。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の
データは無効です。
FRE:
フレーミング
エラーフラグ
ビット
• 受信時にフレーミングエラーが発生すると "1" にセットされ , シリ
アル制御レジスタ (SCR2/3) の CRE ビットに "0" を書き込むとクリ
アされます。
• FRE ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し
ます。
• 本フラグがセットされた場合は , 受信データレジスタ (RDR2/3) の
bit13
データは無効です。
( 注意事項 )
SBL=1 でフレーミングエラーがストップビットの最初
のビットまたは 2 番目のビットで検出されると , どちら
かのストップビットにより "1" にセットされます。
また , 受信データがストップビットの 2 番目のビットで
許可されるかどうか決定される必要があります。
bit12
RDRF:
受信データ
レジスタフル
フラグビット
• 受信データレジスタ (RDR2/3) の状態を示すフラグです。
• RDR2/3 に受信データがロードされると , "1" にセットされ , 受信
データレジスタ (RDR2/3) を読み出すと "0" にクリアされます。
• RDRF ビットと RIE ビットが "1" の場合 , 受信割込み要求を出力し
ます。
330
第 19 章 UART2/3
表 19.4-3 シリアルステータスレジスタ (SSR2/3) の各ビットの機能説明 ( 2 / 2 )
ビット名
TDRE:
送信データ
レジスタ
エンプティ
フラグビット
bit11
機能
• 送信データレジスタ (TDR2/3) の状態を示すフラグです。
• TDR3 に送信データを書き込むと "0" となり , データが送信シフト
レジスタにロードされて送信が開始されると "1" となります。
• TDRE ビットと TIE ビットが "1" の場合 , 送信割込み要求を出力し
ます。
• TDRE ビットが "1" のとき , 拡張通信制御レジスタ (ECCR2/3) の
LBR ビットに "1" をセットすると TDRE ビットは "0" となり , LIN
synch break 生成後 "1" になります。
( 注意事項 ) 初期状態では , TDRE = 1 になっています。
BDS:
ビット方向
選択ビット
bit10
• 転送シリアルデータを最下位ビット側から先に転送するか (LSB
ファースト , BDS=0), 最上位ビット側から先に転送するか (MSB
ファースト , BDS=1) を選択するビットです。モード 3 では "0" に
固定されます。
受信データを受信データレジスタ (RDR2/3) に書き込んだときに上
位側と下位側を入れ替えるため , 書込み後に BDS ビットを書換える
と , RDR2/3 のデータは無効になります。
bit9
RIE:
受信割込み
要求許可
ビット
• 受信割込み要求出力の許可 / 禁止をするビットです。
• RIE ビットと受信データフルフラグビット (RDRF) が "1" の場合 ,
または 1 つ以上のエラーフラグビット (PE, ORE, FRE) が "1" の場
合 , 受信割込み要求を割込みコントローラへ出力します。
bit8
TIE:
送信割込み
要求許可
ビット
• 送信割込み要求出力の許可 / 禁止をするビットです。
• TIE ビットと TDRE ビットが "1" の場合 , 送信割込み要求を出力し
ます。
331
第 19 章 UART2/3
19.4.4
受信データレジスタ / 送信データレジスタ
(RDR2/3 / TDR2/3)
受信データレジスタ (RDR2/3) は受信データを保持します。送信データレジスタ
(TDR2/3) は送信データを保持します。RDR2/TDR2 と RDR3/TDR3 は共に同一アド
レスに配置されています。
■ 受信データレジスタ / 送信データレジスタのビット構成 (RDR2/3 / TDR2/3)
図 19.4-5 受信データレジスタ / 送信データレジスタ (RDR2/3 / TDR2/3)
アドレス
初期値
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
0 0 0 0 0 0 0 0 B [RDR2/3]
RDR2/TDR2: 0035DAH
RDR3/TDR3: 00351AH
1 1 1 1 1 1 1 1 B [TDR2/3]
R/W R/W R/W R/W R/W R/W R/W R/W
bit7 ~ bit0
R/W
R/W:リード / ライト可能
データレジスタ
リード 受信データレジスタからリード
ライト 送信データレジスタへライト
受信データレジスタ (RDR2/3)
受信データレジスタ (RDR2/3) は , 受信データを含むレジスタです。
シリアル入力端子 (SIN2/3 端子 ) に送られてきたシリアルデータ信号がシフトレジスタ
で変換されて , 受信データレジスタ (RDR2/3) に格納されます。
データ長が 7 ビットの場合は , 上位 1 ビット (D7) は "0" となります。
受信が完了すると , 受信データレジスタ (RDR2/3) に格納され , 受信データフルフラグ
ビット (SSR2/3:RDRF) が "1" にセットされます。この時点で受信割込み要求が許可さ
れている場合は , 受信割込みを発生します。
受信データレジスタ (RDR2/3) は , 受信データフルフラグビット (SSR2/3:RDRF) が "1"
の状態で読み出してください。受信データフルフラグビット (SSR2/3:RDRF) は , 受信
データレジスタ (RDR2/3) を読み出すと自動的に "0" にクリアされます。
また , 受信割込みが許可されていて , エラーが生じていない場合には , 受信割込みもク
リアされます。
受信エラーが発生 (SSR2/3:PE, ORE, FRE のいずれかが "1") した場合 , 受信データレジ
スタ (RDR2/3) のデータは無効となります。
332
第 19 章 UART2/3
■ 送信データレジスタ (TDR2/3)
送信動作が許可されている場合に (SCR2/3:TXE=1), 送信するデータを送信データレジ
スタ (TDR2/3) に書き込むと , 送信データが送信用シフトレジスタに転送されシリアル
データに変換されて , シリアルデータ出力端子 (SOT2/3 端子 ) から送出されます。
データ長が 7 ビットの場合 , 上位 1 ビット (D7) は無効データとなります。
送信データエンプティフラグビット (SSR2/3:TDRE) は , 送信データが送信データレジ
スタ (TDR2/3) に書き込まれると , "0" にクリアされます。
送信データエンプティフラグビット (SSR2/3:TDRE) は , 送信用シフトレジスタへの転
送が終了し , 送信が開始されると , "1" にセットされます。送信データエンプティフラ
グビット (SSR2/3:TDRE) が "1" の場合は , 次の送信用データを書き込むことができま
す。出力送信割込み要求が許可されている場合には送信割込みが発生します。次の送
信データの書込みは , 送信割込みの発生によるか , 送信データエンプティフラグビット
(TDRE) が "1" の状態で行ってください。
<注意事項>
送信データレジスタは書込み専用のレジスタで , 受信データレジスタは読込み専用のレジ
スタです。2 つのレジスタは同一アドレスに配置されているため , 書込み値と読出し値が
異なります。したがって , INC/DEC 命令などリードモディファイライト (RMW) 動作をす
る命令は使用できません。
333
第 19 章 UART2/3
19.4.5
拡張ステータス制御レジスタ (ESCR2/3)
拡張ステータス制御レジスタ (ESCR2/3) は , 各 LIN 機能 , SIN2/3, SOT2/3 端子への
直接アクセス , UART2/3 同期クロックモードの設定があります。
■ 拡張ステータス制御レジスタ (ESCR2/3)
図 19.4-6 拡張ステータス制御レジスタ (ESCR2/3) の構成
アドレス :
ESCR3: 00351DH
初期値
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
0 0 0 0 0 1 0 0B
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
R/W R/W R/W R/W R/W R/W R/W R/W
bit8
SCES
サンプリングクロックエッジ選択ビット ( モード 2)
0
クロックの立上りエッジでサンプリング ( ノーマル )
1
クロックの立下りエッジでサンプリング ( 反転クロック )
bit9
CCO
0
1
連続クロック出力ビット ( モード 2)
連続クロック出力禁止
連続クロック出力許可
bit10
SIOP
0
1
シリアル入出力端子直接アクセスビット
読出し時
書込み時 (SOPE = 1)
SOT 端子を "0" に固定
SOT 端子を "1" に固定
SIN 端子の値を読出し
bit11
SOPE
0
1
シリアル出力端子直接アクセス許可ビット
シリアル出力端子直接アクセス禁止
シリアル出力端子直接アクセス許可
bit13, bit12
LBL1
LBL0
0
0
0
1
1
0
1
1
LIN synch break 長選択ビット
LIN break 長 13 ビット分
LIN break 長 14 ビット分
LIN break 長 15 ビット分
LIN break 長 16 ビット分
bit14
LBD
0
1
LIN synch break 検出フラグビット
書込み時
読出し時
LIN synch break 検出フラ
グクリア
影響なし
LIN synch break 検出なし
LIN synch break 検出あり
bit15
LBIE
334
LIN synch break 検出割込み許可ビット
LIN synch break 割込み禁止
LIN synch break 割込み許可
R/W
X
:リード / ライト可能
:不定
:初期値
*
:リードモディファイライト系命令については , 表 19.4-4 を参照してください。
0
1
第 19 章 UART2/3
表 19.4-4 拡張ステータス制御レジスタ (ESCR2/3) の各ビットの機能説明
ビット名
機能
LBIE:
LIN synch break
検出割込み
許可ビット
LIN synch break 割込みを許可 / 禁止するビットです。
LIN synch break 割込みは受信割込みに接続されます。LBD ビット
が "1" に設定されると , 受信割込みは割込みコントローラに信号
を送ります。
モード 1, モード 2 では "0" に固定されます。
LBD:
LIN synch break
検出フラグビット
動作モード 3 で LIN synch break が検出されると "1" にセットされ
ます。"0" を書き込むと LBD ビットと対応する割込みはクリアさ
れます。このビットを使用する前に SCR2/3 レジスタの RXE ビッ
トに "0" を書き込むことを推奨します。リードモディファイライ
ト (RMW) 系命令を実行すると常に "1" が読み出されますが LIN
synch break の検出によるものではありませんのでご注意くださ
い。
bit13,
bit12
LBL1/LBL0:
LIN synch break
長選択ビット
これらのビットは , UART2/3 による LIN synch break の生成時間を
何ビット分とするか , 設定します。
受信 LIN synch break は常に 11 ビット分です。
bit11
SOPE:
シリアル出力
端子直接アクセス
許可ビット *
SOE=1(SMR2/3) のときに本ビットに "1" を設定すると , SOT2/3 端
子への直接書込みを許可します。*
bit10
SIOP:
シリアル入出力
端子直接 アクセス
ビット *
通常の読出し命令は , 常に SIN2/3 端子の値を返します。
SOPE=1 のときに書込みを行うと本ビット値が , SOT2/3 端子に反
映されます。リードモディファイライト (RMW) 系命令の場合は
読出しサイクル内の SOT2/3 のビット値を返します。*
bit9
CCO:
連続クロック
出力許可ビット
マスタモード 2( 同期 ) で UART2/3 が動作していて , SCK2/3 端子
がクロック出力に設定されていれば , SCK2/3 端子からの連続シリ
アルクロック出力を許可します。
( 注意事項 ) CCO ビットが "1" のとき , ECCR2/3 の SSM ビットを
"1" にして使用してください。
bit8
SCES:
サンプリング
クロックエッジ
選択ビット
動作モード 2( 同期通信 ) でシリアルクロック信号を反転します。
内部クロックの立下りエッジで受信データがサンプリングされま
す。ECCR2/3 レジスタの MS ビットが "0" ( マスタモード ) で ,
SMR2/3 レジスタの SCKE ビットが "1" ( クロック出力許可 ) のと
き , 出力クロック信号も反転されます。
動作モード 0, 1, 3 では必ず "0" に固定してください。
bit15
bit14
*:表 19.4-5 を参照してください。
表 19.4-5 SOPE と SIOP の相互作用説明
SOPE
SIOP
0
R/W
影響なし ( ただし , 書込み値は保持される )
SIN2/3 の値を返す
1
R/W
SOT2/3 へ "0" または "1" 書込み
SIN2/3 の値を返す
-
RMW
SIOP への書込み
SIOP からの読出し
SOT2/3 の値を読出し , "0" または "1" を書込み
- : "0" または "1"
335
第 19 章 UART2/3
19.4.6
拡張通信制御レジスタ (ECCR2/3)
拡張通信制御レジスタ (ECCR2/3) は , バスアイドル検出 , 同期クロック設定 , およ
び LIN synch break の生成を行います。
■ 拡張通信制御レジスタ (ECCR2/3)
図 19.4-7 拡張通信制御レジスタ (ECCR2/3) の構成
アドレス:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
X 0 0 0 0 X X XB
ECCR2: 0035DCH
ECCR3: 00351CH
LBR
-
MS SCDE SSM
RBI
W R/W R/W R/W R/W R
TBI
R
bit0
TBI *1
0
1
送信バスアイドルフラグビット
送信中
送信動作なし
bit1
RBI *2
0
1
受信バスアイドルフラグビット
受信中
受信動作なし
bit2
未使用ビット
読出し値は不定です。
常に "0" を書き込んでください。
bit3
SSM
0
1
スタート / ストップビットモード許可ビット ( モード 2)
スタート / ストップビットなし ( モード 2)
スタート / ストップビットあり ( モード 2)
bit4
SCDE
0
1
bit5
MS
0
1
シリアルクロック遅延許可ビット ( モード 2)
クロック遅延禁止
クロック遅延許可
マスタ / スレーブモード選択ビット ( モード 2)
マスタモード ( シリアルクロック発生 )
スレーブモード ( 外部シリアルクロック受信 )
bit6
LBR
0
1
LIN synch break 生成ビット
読出し時
書込み時
影響なし
常に "0" を読出し
LIN synch break 生成
bit7
未使用ビット
R/W
R
W
X
-
: リード / ライト可能
: リードオンリ
: ライトオンリ
: 不定
: 未定義
: 初期値
*1:動作モード 2 で MS=1 のときには未使用
*2:動作モード 2 のときは未使用
336
0
読出し値は不定です。
常に "0" を書き込んでください。
第 19 章 UART2/3
表 19.4-6 拡張通信制御レジスタ (ECCR2/3) の各ビットの機能説明
ビット名
bit7
機能
-
不定です。常に "0" を書き込んでください。
LBR:
LIN synch break
生成ビット
動作モード 3 において , 本ビットに "1" を設定すると ESCR2/3 の
LBL0/LBL1 ビットで設定された長さの LIN synch break を生成し
ます。動作モード 0 時は , "0" に設定してください。
MS:
マスタ / スレーブ
モード選択ビット
モード 2 においてマスタまたはスレーブモードを選択できます。
マスタモード選択時は , 同期クロックを生成します。
スレーブモード選択時は , 外部シリアルクロックを受信します。
モード 0, 1, 3 のときは "0" に固定されます。
( 注意事項 ) スレーブモード選択時は , クロックソースを外部ク
ロックに設定し , "1 対 1" (SMR2/3:SCKE=0, EXT=1,
OTO=1) にする必要があります。
bit4
SCDE:
シリアルクロック
遅延許可ビット
モード 2 のマスタモード動作時に , SCDE ビットを "1" に設定す
ると図 19.7-4 に示すような遅延したシリアルクロックを出力しま
す。
bit3
SSM:
スタート / ストップ
ビットモード
許可ビット
動作モード 2 でスタート / ストップビットを同期データフォー
マットに付加します。
モード 0, 1, 3 のときは影響しません。
未使用ビット
未使用ビットです。
読出し値は不定です。
常に "0" を書き込んでください。
bit1
RBI:
受信バスアイドル
フラグビット
SIN2/3 端子で受信動作をしていないときに "1" になり , それを保
持します。動作モード 2 では本ビットを使用しないでください。
bit0
TBI:
送信バスアイドル
フラグビット
SOT2/3 端子に送信動作がない場合は "1" になります。動作モー
ド 2 で MS=1 のときは本ビットを使用しないでください。
MS=0 のときは本ビットを使用できます。
bit6
bit5
bit2
337
第 19 章 UART2/3
19.4.7
ボーレートジェネレータレジスタ 0, 1
(BGR02/BGR03/BGR12/BGR13)
ボーレートジェネレータレジスタ 0, 1(BGR02/BGR03/BGR12/BGR13) は , シリア
ルクロックの分周比を設定します。また , 送信リロードカウンタのカウント値を読
み出すことができます。
■ ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット構成
図 19.4-8 にボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット
構成を示します。
図 19.4-8 ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13) のビット構成
アドレス:
BGR02: 0035DEH
BGR12: 0035DFH
BGR03: 00351EH
BGR13: 00351FH
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
bit6 bit5 bit4 bit3
bit2 bit1 bit0
初期値
00000000B
00000000B
R R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W R/W
bit 7 ~ bit 0
BGR0
ライト
リード
bit 14 ~ bit 8
BGR1
ライト
リード
ボーレートジェネレータレジスタ 03
カウンタのリロード値 0 ~ 7 に書込み
送信リロードカウンタ bit0 ~ bit7 の読出し
ボーレートジェネレータレジスタ 13
カウンタのリロード値 8 ~ 14 に書込み
送信リロードカウンタ bit8 ~ bit14 の読出し
bit 15
リード
未使用ビット
"0" を読み出せます
R/W :リード / ライト可能
R :リードオンリ
ボーレートジェネレータレジスタはシリアルクロックの分周比を設定します。
BGR12/BGR13 は上位ビット , BGR02/BGR03 は下位ビットに対応し , カウンタのリロー
ド値の書込みと送信リロードカウンタ値の読出しが可能です。また , バイト・ワードア
クセスで読出しまたは書込みができます。
ボーレートジェネレータレジスタに "0" 以外のリロード値を書き込むとリロードカウ
ンタはカウントを開始します。
338
第 19 章 UART2/3
19.5
UART2/3 の割込み
UART2/3 には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を発生
させることができます。
• 受信データが受信データレジスタ (RDR2/3) にセットされた場合 , または受信エ
ラーが発生した場合
• 送信データが送信データレジスタ (TDR2/3) から送信用シフトレジスタに転送され ,
送信が開始された場合
• LIN synch break 検出された場合
それぞれの割込みは拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ LIN-UART2/3 の割込み
表 19.5-1 LIN-UART2/3 の割込み制御ビットと割込み要因
割込み
動作モード
送受信 /
フラグ
要求フラグ
ICU
レジスタ 0 1 2 3
ビット
割込み要因
割込み要因
許可ビット
割込み要求
フラグのクリア
RDRF
SSR2/3
○ ○ ○ ○ 受信データの
RDR2/3 書込み
ORE
SSR2/3
○ ○ ○ ○ オーバラン
エラー
FRE
SSR2/3
○ ○ △ ○ フレーミング
エラー
PE
SSR2/3
○ × △ × パリティ
エラー
LBD
ESCR2/3 × × × ○ LIN synch break ESCR2/3:
LBIE
検出
ESCR2/3:
LBD への "0" 書込み
送信
TDRE
SSR2/3
送信データの 書込み
LIN synch break 発生
ビットへの "1" 書込み
(ECCR2/3: LBR)
イン
プット
キャプ
チャ
ICP1/ICP5 ICS01/
ICS45
× × × ○ LIN synch field ICS01/ICS45: ICP1/ICP5 を一時的に
の 1 回目の立下 ICE1/ICE5
禁止
りエッジ
ICP1/ICP5 ICS01/
ICS45
× × × ○ LIN synch field ICS01/ICS45: ICP1/ICP5 を禁止
の 5 回目の立下 ICE1/ICE5
りエッジ
受信
○ ○ ○ ○ TDR2/3 が空
SSR2/3: RIE
受信データの 読出し
受信エラークリア
ビット (SCR2/3:CRE)
への "1" の書込み
SSR2/3: TIE
○ : 使用ビット
× : 未使用ビット
△ : ECCR2/3:SSM=1 のみ使用可能
339
第 19 章 UART2/3
● 受信割込み
以下に示す動作が , 受信モードで発生するとシリアルステータスレジスタ (SSR2/3) の
各フラグビットは "1" に設定されます。
データ受信完了
受信データが受信シフトレジスタから受信データレジスタ (RDR2/3) へ転送され
た場合 (RDRF=1)。
オーバランエラー
RDRF=1 で , RDR2/3 が CPU によってリードされずに , 次の受信データが受信シ
フトレジスタから , 受信データレジスタ (RDR2/3) へ転送された場合 (ORE=1)。
フレーミングエラー
ストップビットではなく , 0 ビットが受信された場合 (FRE)。
パリティエラー
誤ったパリティビットが検出された場合 (PE)。
上記のフラグビットいずれかが "1" のとき , 受信割込みが許可 (SSR2/3:RIE=1) されてい
ると , 受信割込み要求が発生します。
RDRF フラグは , 受信データレジスタ (RDR2/3) を読み出すと , 自動的に "0" にクリアされ
ます。このことでのみ , RDRF フラグをクリアされるので注意してください (MB90V390
HA/HB では RDRF フラグは LIN synch break が検出されるとクリアされます )。エラーフ
ラグはシリアル制御レジスタ (SCR2/3) の受信エラーフラグクリアビット (CRE) に "1" を
書き込むと , "0" にクリアされます。
MB90V390HA/HB は , LIN synch break が検出されると , エラーフラグもクリアされま
す。RDRF フラグが "1" のとき , エラービットがセットされていなければ , RDR2/3 は有
効データのみになります。
CRE フラグは , 書込み専用で , "1" 書込みのとき , 1 マシンクロックサイクル間 "1" を保
持します。
● 送信割込み
送信データが送信データレジスタ (TDR2/3) から送信シフトレジスタに転送され , 送信
が開始されると , シリアルステータスレジスタ (SSR2/3) の送信データレジスタエンプ
ティフラグビット (TDRE) が "1" にセットされます。この場合 , 前もって送信割込みが
許可 (SSR2/3:TIE=1) されていると , 送信割込み要求が発生します。
ハードウェアリセット / ソフトウェアリセット後の TDRE の初期値が "1" であるため ,
TIE フラグが "1" に設定されると直ちに割込みが発生します。また TDRE は , 送信デー
タレジスタ (TDR2/3) にデータをライトすることでのみリセットされます。
● LIN synch break 割込み
動作モード 3 で , LIN スレーブ動作をする場合に機能します。バス ( シリアル入力 ) が
11 ビットの間以上 "0" になると , 拡張ステータス制御レジスタ (ESCR2/3) の LIN synch
break 検出フラグビット (LBD) は "1" にセットされます。
この場合 , 9 ビットの間の後 , 受信エラーフラグは "1" にセットされるので , LIN synch
break 検出が要求されるなら , RXE フラグを "0" に設定しなくてはいけないことに注意
してください。
割込みと LBD フラグは , LBD フラグへの "1" 書込みでクリアされます。LIN synch field
で入力キャプチャ割込みが発生する前にクリアしてください。
340
第 19 章 UART2/3
● LIN synch field エッジ検出割込み
動作モード 3 で , LIN スレーブ動作をする場合に機能します。
LIN synch break 検出後 , 次の受信バス立下りエッジが指定されます。同時に , ICU1/ICU5
に接続された内部信号が "1" に設定されます。内部信号は LIN synch field の 5 回目の立
下りエッジ後に "0" にリセットされます。両方のエッジを検出するように設定し , ICU1/
ICU5 割込みが許可のとき割込みが発生します。
ICU1/ICU5 で検出されたカウンタ値の差は , シリアルクロック 8 ビット分に相当しま
す。新しいボーレートを計算することができます。
8 ビットで割ると , 専用のリロードカウンタ用に検出され , 計算された新しいボーレー
トになります。この値から "1" を引いた値をボーレートジェネレータレジスタ (BGR02/
BGR03/BGR12/BGR13) に書き込みます。
スタートビットの立下りエッジを検出すると,リロードカウンタは自動的に再スタート
します。
■ LIN-UART2/3 の割込みと EI2OS
表 19.5-2 UART2/3 の割込みと EI2OS
割込み要因
割込み
番号
割込み制御レジスタ
ベクタテーブルのアドレス
レジスタ名
アドレス
下位
上位
バンク
EI2OS
UART2 受信
割込み
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*1
UART2 送信
割込み
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*2
UART3 受信
割込み
#39(27H)
ICR14
0000BEH
FFFF60H
FFFF61H
FFFF62H
*3
UART3 送信
割込み
#40(28H)
ICR14
0000BEH
FFFF5CH
FFFF5DH
FFFF5EH
*4
*1: UART2 送信割込みと UART3 送受信割込みが不可の場合のみ , UART2 受信の EI2OS サービスが使
用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。
*2: UART2 受信割込みと UART3 送受信割込みが不可の場合のみ , UART2 送信の EI2OS サービスが使
用できます。
*3: UART3 送信割込みと UART2 送受信割込みが不可の場合のみ , UART3 受信の EI2OS サービスが使
用できます。受信エラーを検知すると , EI2OS サービスの停止要求が機能します。
*4: UART3 受信割込みと UART2 送受信割込みが不可の場合のみ , UART3 送信の EI2OS サービスが使
用できます。
341
第 19 章 UART2/3
■ UART2/3 の EI2OS 機能
UART2/3 は EI2OS 対応の回路を有しています。このため , 受信 / 送信の各割込みで別々
に EI2OS を起動することができます。
● UART2 受信時
UART2 は UART2 送信割込みや UART3 送受信割込みと割込みレジスタを共有してい
ます。そのため , UART2 送信割込みや UART3 送受信割込みが使用されていない場合
のみ EI2OS を使用できます。
● UART2 送信時
UART2 は UART2 受信割込みや UART3 送受信割込みと割込みレジスタを共有してい
ます。そのため , UART2 受信割込みや UART3 送受信割込みが使用されていない場合
のみ EI2OS を使用できます。
● UART3 受信時
UART3 は UART3 送信割込みや UART2 送受信割込みと割込みレジスタを共有してい
ます。そのため , UART3 送信割込みや UART2 送受信割込みが使用されていない場合
のみ EI2OS を使用できます。
● UART3 送信時
UART3 は UART3 受信割込みや UART2 送受信割込みと割込みレジスタを共有してい
ます。そのため , UART3 受信割込みや UART2 送受信割込みが使用されていない場合
のみ EI2OS を使用できます。
342
第 19 章 UART2/3
19.5.1
受信割込み発生とフラグセットのタイミング
受信時の割込みとしては , 受信完了 (SSR2/3:RDRF), および受信エラーの発生
(SSR2/3:PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
受信データが完了 (RDRF=1) し , シリアルステータスレジスタ (SSR2/3) の受信割込み
許可 (RIE) フラグビットが "1" に設定されると , 受信割込みが発生します。モード 0,
モード 1, モード 2 (SSM=1 のとき ), モード 3 では 1 回目のストップビットが検出され
ると , 割込みが発生し , モード 2 (SSM=0 のとき ) では最後のビットが読み出されます。
<注意事項>
受信エラーが発生したときは , 受信データレジスタ (RDR2/3) の各モードのデータは無効
となります。
図 19.5-1 受信動作とフラグセットのタイミング
受信データ
( モード 0/3)
受信データ
( モード 1)
受信データ
( モード 2)
ST
D0
D1
D2
....
D5
D6
D7/P
SP
ST
ST
D0
D1
D2
....
D6
D7
A/D
SP
ST
D2
....
D5
D6
D7
D0
D0
D1
D4
PE * 1, FRE
RDRF
ORE * 2
(RDRF=1)
受信割込み発生
* 1: モード 1, 3 で PE フラグは常に "0" となります。
* 2: 受信データが CPU (RDRF = 1) によって読み出されず , ほかのデータフレームが読み出されると ORE のみ発生
します。
ST:スタートビット SP:ストップビット A/D:モード 1 ( マルチプロセッサ ) アドレスデータ選択ビット
<注意事項>
図 19.5-1 はモード 0, モード 3 におけるすべての受信動作を表しているわけではありませ
ん。"7p1" と "8N1" (p=" 偶数パリティ " または " 奇数パリティ ") の例のみ示されています。
343
第 19 章 UART2/3
図 19.5-2 ORE セットタイミング
受信データ
RDRF
ORE
344
第 19 章 UART2/3
19.5.2
送信割込み発生とフラグセットのタイミング
送信時の割込みは , 送信データが送信データレジスタ (TDR2/3) から送信用シフトレ
ジスタに転送され , 送信が開始されると発生します。
■ 送信割込み発生とフラグセットのタイミング
送信される次のデータが , 送信データレジスタ (TDR2/3) に書込み可能な状態 , つまり ,
TDR2/3 が空でシリアルステータスレジスタ (SSR2/3) の送信割込み許可ビット (TIE) を
"1" に設定することにより , 送信割込みが許可されると送信割込みが発生します。SSR2/
3 の送信データレジスタエンプティ(TDRE) フラグビットは空の TDR2/3 を指定します。
TDRE ビットはリードオンリビットなので , 送信データレジスタ (TDR2/3) へのデータ書
込みのみにより "0" にクリアされます。
図 19.5-3 に ,UART2/3 の各モードに設定したときの送信動作とフラグセットのタイミ
ングについて示します。
図 19.5-3 送信動作とフラグセットのタイミング
送信割込み発生
送信割込み発生
モード 0, モード 1,
モード 2 (SSM=1) ま
たはモード 3:
TDR2/3 書込み
TDRE
ST D0 D1 D2 D3 D4 D5 D6 D7
シリアル出力
送信割込み発生
P
AD
SP ST D0 D1 D2 D3 D4 D5 D6 D7
P SP
AD
送信割込み発生
モード 2 (SSM = 0) :
TDR2/3 書込み
TDRE
シリアル出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4
ST:スタートビット D0…D7:データビット P:パリティ SP:ストップビット
AD:アドレスデータ選択ビット ( モード 1)
<注意事項>
図 19.5-3 はモード 0 におけるすべての送信動作については説明していません。"8p1"
(p=" 偶数パリティ " または " 奇数パリティ ") についてのみ示されています。
パリティビットはモード3の場合, もしくはモード2でSSM=0の場合には送信されません。
345
第 19 章 UART2/3
■ 送信割込み要求発生タイミング
送信割込みが許可されている場合に (SSR2/3:TIE=1), TDRE フラグが "1" にセットされ
ると , 送信割込み要求が発生します。
<注意事項>
初期状態では, TDREビットが"1"になっていますので, 送信割込みを許可(SSR2/3:TIE=1)
にすると直ちに送信完了割込みが発生します。TDRE ビットはリードオンリビットなので ,
送信データレジスタ (TDR2/3) に新しいデータを書き込むことでしかクリアできません。
送信割込み許可のタイミングには注意してください。
346
第 19 章 UART2/3
19.6
UART2/3 のボーレート
UART2/3 のシリアルクロックソースは , 次のいずれかを選択できます。
• 専用ボーレートジェネレータ ( リロードカウンタ )
• 外部クロック (SCK2/3 端子にクロック入力 )
• ボーレートジェネレータに接続された外部クロック ( リロードカウンタ )
■ UART2/3 ボーレート選択
ボーレート選択回路は以下に示すように設計されています。
ボーレートは次の 3 種類の中から 1 種類を選択できます。
● 専用ボーレートジェネレータ ( リロードカウンタ ) を用いて規定されるボーレート
2 つの独立した内部リロードカウンタがあり , それぞれ送受信シリアルクロックに対応
しています。ボーレートジェネレータレジスタ 1, 0 (BGR02/BGR03/BGR12/BGR13) で
15 ビットのリロード値を設定することにより , ボーレートを選択できます。
リロードカウンタは, ボーレートジェネレータレジスタ0, 1で設定された値でマシンク
ロックを分周します。
● 外部クロック (1 対 1 モード ) によるボーレート
UART2/3 のクロック入力端子 (SCK2/3) から入力されたクロックを , そのままボーレー
トとして使用します ( 同期 )。
マシンクロックの 4 分周以下のボーレートを外部で設定できます。
● 外部クロックにより専用ボーレートジェネレータを用いて規定されるボーレート
外部クロックソースはリロードカウンタに内部接続することもできます。このモード
では , 内部マシンクロックの代わりに使用されます。特殊な周波数の水晶発振子を分周
して使用するケースを想定して用意されています。
347
第 19 章 UART2/3
図 19.6-1 UART2/3 ボーレート選択回路 ( リロードカウンタ )
リセット
リロード値:v
受信 15 ビット
リロードカウンタ
スタートビット
立下りエッジ検出
セット
Rxc = 0?
リロード
FF
リセット
Rxc = v/2?
0
受信
クロック
1
リロード値:v
マシンクロック
0
SCK2/3
( 外部クロック
入力 )
1
送信 15 ビット
リロードカウンタ
カウント値:TXC
EXT
セット
Txc = 0?
OTO
リロード
FF
0
リセット
Txc = v/2?
1
送信クロック
内部データバス
EXT
REST
OTO
348
SMR2/3
レジスタ
BGR14
BGR13
BGR12
BGR11
BGR10
BGR9
BGR8
BGR12/
BGR13
レジスタ
BGR7
BGR6
BGR5
BGR4
BGR3
BGR2
BGR1
BGR0
BGR02/
BGR03
レジスタ
第 19 章 UART2/3
19.6.1
ボーレート設定
ボーレートの設定を示します。また , シリアルクロック周波数の計算結果を示しま
す。
■ ボーレートの計算
2 つの 15 ビットリロードカウンタは , ボーレートジェネレータレジスタ 0, 1 (BGR02/
BGR03/BGR12/BGR13) で設定します。
ボーレートの計算式を以下に示します。
リロード値 :
v = [φ / b] - 1,
v: リロード値 b: ボーレート φ: マシンクロック , 外部クロック周波数
計算例
マシンクロック16MHz, 内部クロック使用, ボーレートを19200 bpsに設定する場合,
次のようになります。
リロード値 :
v=
(
16 × 106
)
19200
- 1 = 832
よって実際のボーレートは下記のように計算できます。
b=
φ
(v + 1)
=
16 × 106
= 19207.6831
833
<注意事項>
リロード値を "0" に設定するとリロードカウンタは停止します。そのため , 最低の分周比
は 2 になります。
非同期モードで送受信する際, 5回オーバサンプリングして受信値を決定するため, リロー
ド値を最低でも 4 に設定する必要があります。
349
第 19 章 UART2/3
■ 各クロック速度のリロード値とボーレート
各クロック速度のリロード値とボーレートを , 表 19.6-1 に示します。
表 19.6-1 リロード値とボーレート
8 MHz
10 MHz
16 MHz
20 MHz
24 MHz
ボーレート
値
偏差
値
偏差
値
偏差
値
偏差
偏差
4M -
-
-
-
-
-
4
0
5
0
2M -
-
4
0
7
0
9
0
11
0
1M 7
0
9
0
15
0
19
0
23
0
500000 15
0
19
0
31
0
39
0
47
0
460800 -
-
-
-
-
-
-
-
51
-0.16
250000 31
0
39
0
63
0
79
0
95
0
230400 -
-
-
-
-
-
-
-
103
-0.16
153600 51
-0.16
64
-0.16
103
-0.16
129
-0.16
155
-0.16
125000 63
0
79
0
127
0
159
0
191
0
115200 68
-0.64
86
0.22
138
0.08
173
0.22
207
-0.16
76800 103
-0.16
129
-0.16
207
-0.16
259
-0.16
311
-0.16
57600 138
0.08
173
0.22
277
0.08
346
-0.06
416
0.08
38400 207
-0.16
259
-0.16
416
0.08
520
0.03
624
0
28800 277
0.08
346
<0.01
554
-0.01
693
-0.06
832
-0.03
19200 416
0.08
520
0.03
832
-0.03
1041
0.03
1249
0
10417 767
<0.01
959
<0.01
1535
<0.01
1919
<0.01
2303
<0.01
9600 832
0.04
1041
0.03
1666
0.02
2083
0.03
2499
0
7200 1110
<0.01
1388
<0.01
2221
<0.01
2777
<0.01
3332
<0.01
4800 1666
0.02
2082
-0.02
3332
<0.01
4166
<0.01
4999
0
2400 3332
<0.01
4166
<0.01
6666
<0.01
8332
<0.01
9999
0
1200 6666
<0.01
8334
0.02
13332
<0.01
16666
<0.01
19999
0
600 13332
<0.01
16666
<0.01
26666
<0.01
-
-
-
-
300 26666
<0.01
-
-
-
-
-
-
-
-
<注意事項>
周波数偏差 (dev.) の単位は % です。
同期モード時の最大ボーレートは , マシンクロックの 1/5 です。
350
値
第 19 章 UART2/3
■ 外部クロック
シリアルモードレジスタ (SMR2/3) の EXT ビットに "1" を書き込むと , SCK2/3 端子に
接続される外部クロックが選択されます。ボーレートリロードカウンタで外部クロッ
クはマシンクロックと同じように使用できます。
同期モード 2 でスレーブ動作を使用する際に , 1 対 1 外部クロック入力モード (SMR2/
3:OTO=1) を選択します。このモードでは, SCK2/3に入力された外部クロックをUART2/
3 のシリアルクロックに直接入力します。
外部クロック信号は UART2/3 でマシンクロックに同期します。したがって , 分周不可
能な外部クロックの場合 , 不安定な信号状態になります。
■ リロードカウンタの動作
リロード値を 832 としたときの 2 つのリロードカウンタの動作を図 19.6-2 に示します。
図 19.6-2 リロードカウンタの動作
送受信クロック
リロード
カウンタ
001
000
832
831
830
829
828
827
414
413
412
411
リロードカウンタ値
送受信クロック
リロード
カウンタ
418
417
416
415
<注意事項>
シリアルクロック信号の立下りエッジは , リロード値を 2 で割った値 ( (v+1)/2 ) を立上り
エッジの後に発生します。
351
第 19 章 UART2/3
19.6.2
リロードカウンタ
リロードカウンタは下記の条件で再スタートされます。
送信 / 受信リロードカウンタ共通
• グローバル MCU リセット
• UART2/3 プログラマブルクリア (SMR2/3:UPCL ビット )
• プログラマブル再スタート (SMR2/3: REST ビット )
受信リロードカウンタ
• 非同期モードでのスタートビット立下りエッジ検出
■ プログラマブル再スタート
シリアルモードレジスタ (SMR2/3) の REST ビットを "1" にセットすると , 次のクロッ
クサイクルで 2 つのリロードカウンタは再スタートします。
この機能により送信リロードカウンタを簡易的なタイマとして利用できます。
本機能の使用例を図 19.6-3 に示します ( リロード値 100 の場合 )。
図 19.6-3 リロードカウンタの再スタート例
MCU クロック
リロードカウンタ
クロック出力
リセット
リロード値
37
36
35
100
99
98
97
96
95
94
93
92
91
90
89
88
87
BGR02/BGR03/BGR12/BGR13
読出し
データバス
90
: don’t care
この例では , 再スタート後のマシンサイクル数 cyc は下式で求められます。
cyc = v - c + 1 = 100 - 90 + 1 = 11,
v : リロード値 , c : リロードカウンタの値
<注意事項>
SMR2/3:UPCL ビットに "1" をライトすることで UART2/3 をリセットした場合にも , リ
ロードカウンタは再スタートします。
352
第 19 章 UART2/3
● 自動再スタート
非同期モードでスタートビット立下りエッジが検出されると , 受信リロードカウン
タが再スタートします。これは受信シフトレジスタを受信データに同期させるため
の機能です。
● カウンタのクリア
ボーレートリロード / カウンタレジスタ (BGR12, BGR13, BGR02 および BGR03) とボー
レートリロードカウンタは MCU グローバルリセットにより "0" にクリアされ , カウン
タが停止します。UART2/3 のリセット (SMR2/3:UPCL への "1" 書込み ) でカウンタ値は
一時 "0" にクリアされますが , リロード値は保持されていますのでリロードカウンタは
再スタートします。再スタートの設定 (SMR2/3:REST への "0" 書込み ) ではカウンタ値
は "0" にクリアされずに再スタートします。
353
第 19 章 UART2/3
19.7
UART2/3 の動作
UART2/3 は , モード 0 の双方向シリアル通信 , モード 1 のマスタ / スレーブマルチ
プロセッサ通信 , モード 2, モード 3 のマスタ / スレーブ双方向通信で動作します。
■ UART2/3 の動作
● 動作モード
UART2/3 の動作モードにはモード 0 ~モード 3 の 4 種類があり , 表 19.7-1 に示すよう
に通信方式によって選択することができます。
表 19.7-1 UART2/3 の動作モード
データ長
動作モード
同期方式
パリティなし
0 ノーマルモード
1 マルチプロセッサ
モード
7 ビットまたは 8 ビット
7 ビットまたは
8 ビット + 1*
2 ノーマルモード
3 LIN モード
パリティあり
-
8
8
-
非同期
非同期
ストップ
ビット長
1 ビット
または
2 ビット
同期
なし ,
1 ビット ,
2 ビット
非同期
1 ビット
データビット方向
LSB ファースト
MSB ファースト
LSB ファースト
―: 設定不可
*: "+1" はマルチプロセッサモードでパリティの代わりに使用されるアドレス / データ選択ビット (A/D) です。
<注意事項>
モード 1 でマスタ / スレーブ接続されたシステムにおいて , マスタとスレーブいずれの動
作にも対応しています。モード 3 では , 通信フォーマットが 8N1, LSB ファーストに固定
されます。
モード切換えを行った場合 , すべての送受信動作は打ち切られ , 次の動作待ち状態になり
ます。
354
第 19 章 UART2/3
■ CPU 間接続方式
外部クロック 1 対 1 接続 ( ノーマルモード ) とマスタ / スレーブ型接続 ( マルチプロ
セッサモード ) のどちらかを選択できます。どちらの方式でも , データ長 , パリティ有
無 , 同期方式などは , すべての CPU で統一しておく必要があり , 動作モードを次のよう
に選択します。
• 1 対 1 接続の場合:2 つの CPU で動作モード 0, 動作モード 2 のいずれかの同じ方式
を採用する必要があります。非同期方式では動作モード 0, 同期
方式では動作モード 2 を選択してください。また , 動作モード 2
では 1 つの CPU をマスタへ , もう 1 つの CPU をスレーブへ設
定してください。
• マスタ / スレーブ型接続の場合:動作モード 1 を選択します。マスタ / スレーブシ
ステムとして使用してください。
■ 同期方式
非同期方式において , 受信クロックは受信スタートビットの立下りエッジに同期しま
す。
スタートビットはエッジにより検出されます。SCR2/3:RXE ビットが "1" に設定され
たときに , SIN2/3 が "0" の場合 , スタートビットはシリアルデータ入力 SIN2/3 の次の
立下りエッジの前に検出されません。SCR2/3:RXE ビットが "0" に設定された後 , 受
信スタートビットを格納しません。SCR2/3:RXE ビットが再び "1" に設定されたとき
に , スタートビットを検出すると受信を開始します。
同期方式では , マスタのクロック信号またはマスタとして動作したときのクロック信
号によって同期させることができます。
■ 信号方式
NRZ(Non Return to Zero) 形式です。
■ 送受信許可
UART2/3 は送信と受信の動作をそれぞれ SCR2/3:TXE ビットと SCR2/3:RXE ビットに
よって制御します。送信または受信をディセーブルに設定する場合は , 下記のように
行ってください。
• 受信をディセーブルする場合 , 受信動作中 ( データを受信シフトレジスタに入力す
る ) であれば , 受信が終了するのを待ち , 受信データレジスタ (RDR2/3) をリードし
てから , 行ってください。
• 送信をディセーブルする場合 , 送信動作中 ( データが受信シフトレジスタから出力
する ) であれば , 送信動作が終了するのを待ってから行ってください。
355
第 19 章 UART2/3
19.7.1
非同期モード ( 動作モード 0, 1) の動作
UART2/3 を動作モード 0( ノーマルモード ), または動作モード 1( マルチプロセッサ
モード ) で使用する場合 , 転送方式は非同期となります。
■ 非同期モードの動作
● 送受信データフォーマット
送受信データは必ずスタートビット ( バス上の "L" レベル ) から始まり , 指定された
データビット長の送受信が行われ , 少なくとも 1 ビットのストップビット ("H" レベル )
で終了します。
ビット転送方向 (LSB ファーストまたは MSB ファースト ) はシリアルステータスレジ
スタ (SSR2/3) の BDS ビットで決定されます。パリティありの場合 , パリティビットは
常に最終データビットと最初のストップビットの間に置かれます。
動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティは , あ
り / なしの選択ができます。また , ストップビット長 (1 または 2) が選択可能です。
動作モード 1 では , データ長は 7 または 8 ビットで , パリティは付加されず , アドレス /
データ選択ビットが付加されます。ストップビット長 (1 または 2) を選択できます。
送受信フレームのビット長計算式は , 以下のようになります。
長さ = 1 + d + p + s
(d= データビット数 [7 または 8], p= パリティ [0 または 1],
s= ストップビットの数 [1 または 2])
図 19.7-1 送受信データフォーマット ( 動作モード 0, 1)
*1
*2
[ 動作モード 0]
ST
D0
D1
D2
D3
D4
D5
D6
D7/P
[ 動作モード 1]
ST
D0
D1
D2
D3
D4
D5
D6
D7 A/D
SP SP
SP
* 1: パリティなしでデータ長が 8 ビットのとき D7 (bit7) パリ
ティありでデータ長が 7 ビットのとき P ( パリティ )
* 2: SCR2/3 の SBL ビットが "1" に設定されているときのみ
ST :スタートビット SP:ストップモード
A/D: モード 1 でアドレス / データ選択ビット
( マルチプロセッサモード )
<注意事項>
シリアルステータスレジスタ (SSR2/3) の BDS ビットを "1" (MSB ファースト ) に設定す
る場合 , ビットは D7, D6, …D1, D0(P) の順序で処理されます。
受信中 , 2 つのストップビットを選択していれば , ストップビットを検出します。しか
し , 受信データレジスタフルフラグ (RDRF) が最初のストップビットで "1" になります。
これ以降スタートビットが検出されなければ, 第2ストップビット後にバスアイドルフ
356
第 19 章 UART2/3
ラグ (ECCR2/3 の RBI) が "1" になります。( 第 2 ストップビットはマークレベルですが ,
" バスアクティビティ " に属します。)
● 送信動作
シリアルステータスレジスタ (SSR2/3) の送信データレジスタエンプティフラグビット
(TDRE) が "1" であれば , 送信データレジスタ (TDR2/3) に送信データを書き込むことが
できます。データを書き込むと TDRE フラグは "0" になります。このとき , 送信が許可
されていれば ( シリアル制御レジスタ (SCR2/3) の TXE=1), データは送信シフトレジス
タに書き込まれ , シリアルクロックの次のサイクルで , スタートビットから順に送信が
開始されます。
送信割込みが許可されていれば (TIE=1), TDRE フラグがセットされると割込みが発生
します。TDRE の初期値は "1" であるため , その状態で TIE に "1" を書き込むと直ちに
割込みが発生しますので注意してください。データ長が 7 ビットに設定 (CL=0) されて
いる場合 , 転送方向選択ビット (BDS) の設定 (LSB ファーストまたは MSB ファースト )
にかかわらず , TDR2/3 の MSB が不使用ビットになります。
<注意事項>
送信データエンプティフラグビット (SSR2/3:TDRE) の初期値が "1" になっているため , 送
信割込みが許可 (SSR2/3:TIE=1) されると直ちに割込みが発生します。
● 受信動作
受信動作が許可 (SCR2/3:RXE=1) されていると , 受信動作を行います。スタートビット
を検出すると , シリアル制御レジスタ (SCR2/3) で設定しているデータフォーマットに
従って 1 フレームデータの受信が行われます。エラーが発生した場合にはエラーフラ
グ (SSR2/3:PE, ORE, FRE) がセットされます。1 フレームの受信が完了すると , 受信デー
タは受信シフトレジスタから受信データレジスタ (RDR2/3) へ転送され , 受信データレ
ジスタフルフラグビット (SSR2/3:RDRF) が "1" にセットされます。
受信データの読出しで , 受信データレジスタフルフラグビット (SSR2/3:RDRF) は "0" に
クリアされます。
受信割込みが許可 (SSR2/3: RIE=1) されていると RDRF にて割込みが発生されます。
データ長が 7 ビットに設定 (CL=0) されている場合 , 転送方向選択ビット (BDS) の設定
(LSB ファーストまたは MSB ファースト ) にかかわらず , TDR2/3 の MSB が不使用ビッ
トになります。
<注意事項>
受信データレジスタ (RDR2/3) のデータは , 受信データレジスタフルフラグビット (SSR2/
3:RDRF) が "1" にセットされ , エラーが発生しなかった (SSR2/3:PE, ORE, FRE=0) 場合
に有効となります。
● 使用クロック
内部クロックまたは外部クロックを使用します。ボーレートは , ボーレートジェネレー
タを選択 (SMR2/3:EXT=0 または 1, OTO=0) してください。
357
第 19 章 UART2/3
● ストップビット , エラー検出 , パリティ :
SCR2/3 レジスタの SBL ビットで 1 ビットまたは 2 ビットのストップビットを選択でき
ます。2 ビットのストップビットを選択したときは , 両方のストップビットが受信時に
検出されます。
2 番目のストップビットの後に RBI フラグ ( バスアイドル ) が設定されます。
しかし , 最初のストップビットが検出されると受信データレジスタフルフラグ (SSR2/
3:RDRF) が "1" になります。モード 0 では , パリティエラー, オーバランエラー, フレー
ミングエラーが検出できます。モード 1 では , オーバラン , フレーミングエラーが検出
できます。パリティエラーは検出できません。モード 0 では , パリティ許可ビット
(SCR2/3:PEN) でパリティの有無を , パリティ選択ビット (SCR2/3:P) で偶数 / 奇数パリ
ティを選択できます。
358
第 19 章 UART2/3
19.7.2
同期モード ( 動作モード 2) の動作
UART2/3 を動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はクロック同
期となります。
■ 同期モード ( 動作モード 2) の動作
● 送受信データフォーマット
同期モードでは , 8 ビットデータを送受信し , スタートビット , ストップビットの有無
を選択 (ECCR2/3:SSM) できます。図 19.7-2 に同期モード使用時のデータフォーマット
を示します。
図 19.7-2 送受信データフォーマット ( 動作モード 2)
送受信データ
D0
D1
D2
D3
D4
D5
D6
D7
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP SP
ST
D0
D1
D2
D3
D4
D5
D6
D7
P
(ECCR2/3:SSM=0, SCR2/3:PEN=0)
送受信データ
*
(ECCR2/3:SSM=1, SCR2/3:PEN=0)
送受信データ
*
SP SP
(ECCR2/3:SSM=1, SCR2/3:PEN=1)
*:SCR2/3 の SBL ビットを設定した場合
ST:スタートビット SP:ストップビット P:パリティビット
● モード 2 のクロック反転機能とスタート / ストップビット
拡張ステータス制御レジスタ (ESCR2/3) の SCES ビットが "1" の場合 , シリアルクロック
は反転します。スレーブモードでは UART2/3 は受信したシリアルクロックの立下りエッ
ジでデータビットをサンプリングします。マスタモードでは SCES ビットが "1" のとき ,
マークレベルが "0" になることにご注意ください。拡張通信制御レジスタ (ECCR2/3) の
SSM ビットが "1" の場合には , 非同期モードのようにスタートビットとストップビット
が付加されます。
図 19.7-3 クロック反転時の送受信データフォーマット
マークレベル
送受信クロック
(SCES=0, CCO=0):
送受信クロック
(SCES=1, CCO=0):
データストリーム (SSM=1)
( パリティなし , 1 ストップビット ):
ST:スタートビット
SP:ストップビット
マークレベル
ST
SP
データフレーム
359
第 19 章 UART2/3
● クロックの供給
動作モード 2 では , クロック信号のクロックサイクル数はスタート / ストップビットを
含むデータビット数と同じでなければなりません。ECCR2/3 レジスタの MS ビットが
"0" ( マスタモード ) で SMR2/3 レジスタの SCKE ビットが "1" ( クロック出力許可 ) で
あれば , 同期クロックサイクルが自動的に出力されます。ECCR2/3 レジスタの MS ビッ
トが "1" ( スレーブモード ) であれば , 他の通信デバイスによって正しいクロックサイ
クルが発生されるのを確認してください。通信がない場合は , クロック信号はマークレ
ベルで "1" に保たれる必要があります。ECCR2/3 レジスタの SCDE ビットを "1" に設
定すると , クロック出力信号を遅延します。遅延は MB90V390HA/HB と MB90F947(A)/
MB90F949(A) では異なります。
ECCR2/3 レジスタの SCDE ビットを "1" に設定すると , 図 19.7-4 に示すように , クロッ
ク出力信号をシリアルクロックサイクルの 1/2 分遅延します。動作は , データサンプリ
ングのためのシリアルクロック信号の立下りエッジを使用する通信デバイスを備えていま
す。
図 19.7-4 送信クロックの遅延 (SCDE=1)
送信データ書込み
受信データサンプルエッジ
マークレベル
送受信クロック ( ノーマル )
マークレベル
送信クロック (SCDE=1)
マークレベル
送受信データ
0
1
1
LSB
0
1
0
データ
0
1
MSB
拡張ステータス制御レジスタ (ESCR2/3) の SCES ビットが "1" の場合 , シリアルのク
ロックは反転し , 受信データをシリアルクロックの立下りエッジでサンプリングしま
す。
ECCR2/3 レジスタの MS ビットが "0" ( マスタモード ) で , SMR2/3 レジスタの SCKE
ビットが "1" ( クロック出力許可 ) であれば , 出力クロックも反転します。
通信がない場合は , クロック信号をマークレベルで "0" に保持する必要があります。
ESCR2/3 レジスタの CCO ビットが "1" のとき , データ通信がない場合でもシリアルク
ロックは出力されます。したがって , 図 19.7-5 で示すように , スタート / ストップビッ
トを指定することを推奨します。
図 19.7-5 連続クロック供給 ( モード 2)
送受信クロック
(SCES=0, CCO=1):
送受信クロック
(SCES=1, CCO=1):
データストリーム (SSM=1)
( パリティなし , 1 ストップビット ):
ST:スタートビット
SP:ストップビット
360
ST
SP
データフレーム
第 19 章 UART2/3
• エラー検出
スタート / ストップビットが有効でない場合 (ECCR2/3: SSM=0) は , オーバランエ
ラーのみが検出されます。
• 同期モードの通信設定
同期モードで通信を行うためには下記の設定が必要です。
• ボーレートジェネレータレジスタ (BGR02/BGR03/BGR12/BGR13)
専用ボーレートリロードカウンタを必要な値に設定してください。
• シリアルモードレジスタ (SMR2/3)
MD1, MD0 : "10B" ( モード 2)
SCKE : "1" ・・・専用ボーレートリロードカウンタを使用
"0"
SOE : "1"
"0"
・・・外部クロックを入力
・・・送受信許可
・・・受信のみ許可
• シリアル制御レジスタ (SCR2/3)
RXE, TXE : どちらかまたは両方のビットを "1" に設定します。
A/D : アドレス / データ選択機能使用されないため , 本ビットの値は無効です。
CL : 自動的に 8 ビット長に設定されます。本ビットの値は無効です。
CRE : "1"
・・・エラーフラグはクリアされ , 受信は中断されます。
- SSM=0 ( デフォルト ) の場合
PEN, P, SBL : パリティビット , ストップビットは使用されないため , 無効です。
- SSM=1 の場合
PEN : "1"・・・パリティビット付加 / 検出 ,
"0"・・・パリティビット不使用
P
"0"・・・偶数パリティ
: "1"・・・奇数パリティ ,
SBL : "1"・・・ストップビット長 2,
"0"・・・ストップビット長 1
• シリアルステータスレジスタ (SSR2/3)
BDS : "0"・・・LSB ファースト , "1"・・・MSB ファースト
RIE : "1"・・・受信割込み許可 , "0"・・・受信割込み禁止
TIE : "1"・・・送信割込み許可 , "0"・・・送信割込み禁止
361
第 19 章 UART2/3
• 拡張通信制御レジスタ (ECCR2/3)
SSM : "0" ・・・スタートビット / ストップビット不使用 ( 通常 ),
"1" ・・・スタートビット / ストップビット使用 ( 拡張機能 )
MS : "0" ・・・マスタモード (UART2/3 はシリアルクロックを出力 ),
"1" ・・・スレーブモード (UART2/3 はマスタデバイスからシリアルクロッ
クを受信 )
• 同期スレーブモード時の初期化
UART2/3 は下記条件で初期化されます。
RXE=0, TXE=0, その他すべてを設定 , UPCL=1, RXE=1, TXE=1
これにより , 内部の送受信限定のステートマシンを確実に適切な状態にできます。
362
第 19 章 UART2/3
19.7.3
LIN 機能 ( 動作モード 3) の動作
動作モード 3 において , UART2/3 は LIN マスタおよび LIN スレーブとして動作しま
す。
動作モード 3 ではデータフォーマットは 8N1-LSB ファーストに設定されます。
■ 非同期 LIN モード動作 ( 動作モード 3)
● LIN マスタとしての動作
LINマスタモードではマスタがサブバス全体のボーレートを決定し, スレーブはマスタ
に同期します。初期設定後にマスタが動作することでボーレートが要求する値に固定
されます。
拡張通信制御レジスタ (ECCR2/3) の LBR ビットに "1" を書き込むと , SOT2/3 端子から
"L" レベルが 13 ~ 16 ビット出力されます。これは LIN メッセージの開始を示す LIN
synch break です。
シリアルステータスレジスタ (SSR2/3) の TDRE フラグビットは "0" になり , 有効なデー
タが送信データレジスタ (TDR2/3) になければ , break の後に "1" ( 初期値 ) になります。
このとき SSR2/3 の TIE ビットが "1" であれば送信割込みを出力します。
送信される LIN synch break の長さは ESCR2/3 の LBL0/LBL1 ビットによって , 下表の
ように設定されます。
表 19.7-2 LIN synch break 長
LBL1
LBL0
0
0
13 ビット
1
0
14 ビット
0
1
15 ビット
1
1
16 ビット
Break 長
LIN Synch fieldはLIN synch breakの後にバイトデータ0x55H として送信されます。
TDRE
フラグが "0" の状態であっても LBR ビットを "1" に設定した後に 0x55H を TDR2/3 に
書き込めます。
● LIN スレーブとしての UART2/3
LIN スレーブモードでは UART2/3 はマスタのボーレートに同期する必要があります。
受信がディセーブル設定 (RXE=0) でも LIN synch break 割込みがイネーブル設定
(LBIE=1) であれば , UART2/3 は受信割込みを発生します。このとき LIN マスタモード
から LIN synch break を検出すると , ESCR2/3 の LBD ビットが "1" になります。
LBD ビットに "0" を書き込むと受信割込み要求がクリアされます。
LIN synch field からのボーレートの計算について , 例を説明します。LIN synch field の
最初の立上りエッジから 5 番目の立下りエッジまでの時間はインプットキャプチャモ
ジュールにて測定されます。このため , インプットキャプチャモジュールは内部信号に
363
第 19 章 UART2/3
て LIN-UART2/3 に接続されます。この内部信号は最初の立下りエッジで "0" から "1"
に , 5 番目の立下りエッジで "1" から "0" に変わります。したがって , インプットキャ
プチャモジュールは立上りエッジと立下りエッジの両方を検出することで設定される
必要があります。LIN-UART2/3 からの内部信号も選択する必要があります。インプッ
トキャプチャモジュールで測定された時間はボーレートクロックサイクルの 8 倍の時
間になります。
ボーレート設定値は下式で算出できます。
フリーランタイマがオーバフローしていない場合
: BGR 値 ={( b - a ) x Fe/ (8 x φ)} - 1
フリーランタイマがオーバフローした場合
: BGR 値 ={( max + b - a ) x Fe/ (8 x φ)} - 1
max : フリーランタイマの最大値
a : 1 度目の割込み後の ICU カウンタレジスタ値
b : 2 度目の割込み後の ICU カウンタレジスタ値
φ: マシンクロック周波数 (MHz)
Fe = 外部クロック周波数 (MHz)
内部ボーレートジェネレータを使用しているとき (EXT=0),
Fe =φ として計算します。
UART と ICU の関係については , 「13.3 16 ビットフリーランタイマ」を参照してくだ
さい。
● LIN Synch Break 検出割込みとフラグ
スレーブモードにおいて, LIN synch breakが検出されるとESCR2/3 のLIN shnch break 検
出フラグ (LBD) が "1" になります。LIN synch break 割込みがイネーブルの場合 (LBIE=1)
は割込みが発生します。
図 19.7-6 LIN synch break 検出とフラグセットのタイミング
シリアルクロック
サイクル # 0
シリアル
クロック
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
シリアル入力
(LIN バス )
MB90F947/
MB90F949
FRE (RXE=1)
MB90V390H
LBD (RXE=0)
RXE = 1 の場合に受信割込み発生
RXE = 0 の場合に受信割込み発生
上図は LIN synch break 検出とフラグセットのタイミングを示しています。
受信が許可 (RXE=1) で , 受信割込みが許可 (RIE=1) されていれば , SSR2/3 のデータフ
レーミングエラー (FRE) フラグビットは LIN synch break 割込みよりも 2 ビット早く受
信割込みを発生させますので (8N1 の場合 ), LIN synch break を使用する場合には RXE=0
に設定してください。
364
第 19 章 UART2/3
LBD は動作モード 3 でのみサポートします。LIN synch break 検出で , 受信エラーフラグ
(SSR2/3:FRE, SSR2/3:ORE, SSR2/3:PE) と受信データレジスタフルフラグ (SSR2/3: RDRF)
がクリアされません。
図 19.7-7 は , 標準的な LIN メッセージの開始と UART2/3 の動作を示しています。
図 19.7-7 LIN スレーブモードでの UART2/3 の動作
シリアル
クロック
シリアル入力
(LIN バス )
CPU による LBR
クリア
LBD
ICU 入力
(LSYN)
Synch break (14 ビット設定の場合 )
Synch field
365
第 19 章 UART2/3
● LIN バスタイミング
図 19.7-8 LIN バスタイミングと UART2/3 信号
前回のシリアルクロック
クロックなし
( 計算フレーム )
新たに計算されたシリアルクロック
ICU カウント
LIN
bus
(SIN2/3)
RXE
LBD
(IRQ0)
LBIE
ICU 入力
(LSYN)
IRQ
(ICU)
RDRF
(IRQ0)
RIE
CPU による
RDR2/3 リード
受信割込み許可
LIN synch break
開始
LIN synch break 検出 , 割込み発生
CPU による IRQ クリア (LBD->0)
LBIE ディセーブル
IRQ (ICU)
IRQ クリア:ICU スタート
IRQ (ICU)
IRQ クリア:ボーレートを計算して設定
受信イネーブル
スタートビットの立下りエッジ
受信データ 1 バイト RDR2/3 に保存
CPU による RDR2/3 リード
366
第 19 章 UART2/3
19.7.4
シリアル端子直接アクセス
送信端子 (SOT2/3) または受信端子 (SIN2/3) へ , 直接アクセスすることができます。
■ UART2/3 端子直接アクセス
UART2/3 では , ソフトウェアがシリアル入出力端子に直接アクセスすることができま
す。
シリアル入力端子 (SIN2/3) の状態をシリアル入出力端子直接アクセスビット (ESCR2/
3: SIOP)で読み出せます。ESCR2/3のシリアル出力端子直接アクセス許可ビット(SOPE)
を設定すると , SOT2/3 端子の値を任意に設定することができます。送信シフトレジス
タが空 ( 送信アクティビティなし ) であれば , このアクセスが可能になります。
LIN モードの場合は , 送信したデータの読出し , または物理的に LIN バス線信号が間
違っていたときのエラー処理に使用できます。
<注意事項>
出力端子アクセスを許可する前にシリアル入出力端子直接アクセスビット (ESCR2/
3:SIOP) へ値を書き込んでください。これは , SIOP ビットが以前の値を保持しているた
め , 期待しないレベルの信号が出力されることを防ぐためです。
通常のリードで SIN2/3 端子の値が読み出されますが , リードモディファイライト (RMW)
系命令では SIOP ビットは SOT2/3 端子の値が読み出されます。
367
第 19 章 UART2/3
19.7.5
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 で , 通常のシリアル双方向通信をすることができます。動作モード 0
は非同期通信 , 動作モード 2 は同期通信の選択ができます。
■ 双方向通信機能
UART2/3 をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 19.7-9 に示す
設定が必要です。
図 19.7-9 UART2/3 の動作モード 0, 2 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
SCR2/3,
SMR2/3
モード 0 →
モード 2 →
SSR2/3,
TDR2/3,
RDR2/3
モード 0 →
モード 2 →
ESCR2/3,
ECCR2/3
モード 0 →
モード 2 →
◎
×
1
0
□
+
368
PEN
P
SBL
CL
A/D
◎
□
◎
□
◎
□
◎
+
×
×
PE
◎
□
◎
□
◎
◎
◎
◎
0
0
◎
◎
◎
◎
◎
◎
RIE
TIE
◎
◎
◎
◎
0
1
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
×
×
×
×
×
×
×
×
◎
◎
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
ORE FRE RDRF TDRE BDS
◎
◎
bit7 bit6 bit5 bit4 bit3 bit2 bit1
◎
◎
×
□
0
0
0
◎
◎
0
0
0
0
0
◎
◎
◎
RBI
TBI
◎
□
◎
□
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
LBR
+
0
◎
×
:使用ビット
:不使用ビット
:"1" を設定
:"0" を設定
:SSM = 1 の場合使用 ( 同期スタート / ストップビットモード )
:自動的に正しく設定されるビット
0
MS SCDE SSM
×
◎
×
◎
×
◎
0
0
第 19 章 UART2/3
● CPU 間接続
双方向通信では , 図 19.7-10 に示すように , 2 つの CPU を相互に接続します。
図 19.7-10 UART2/3 の動作モード 2 の双方向通信の接続例
SOT
SOT
SIN
SIN
SCK
出力
入力
CPU-1 ( マスタ )
SCK
CPU-2 ( スレーブ )
図 19.7-11 双方向通信フローチャートの例
( 送信側 )
( 受信側 )
スタート
スタート
動作モード設定
(0, 2 いずれか )
動作モード設定
( 送信側と合わす )
TDR2/3 に 1 バイトデータ
をセットして通信
受信データあり
NO
YES
受信データあり
受信データ読出しと
処理
NO
YES
受信データ読出しと
処理
(ANS)
1 バイトデータ送信
369
第 19 章 UART2/3
19.7.6
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
動作モード 1 で , 複数 CPU のマスタ / スレーブモード接続による通信が可能です。
マスタまたはスレーブとして使用できます。
■ マスタ / スレーブ型通信機能
UART2/3 をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 19.7-12
に示す設定が必要です。
図 19.7-12 UART2/3 の動作モード 1 の設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
SCR2/3,
SMR2/3
モード 1 →
SSR2/3,
TDR2/3,
RDR2/3
モード 1 →
ESCR2/3,
ECCR2/3
モード 1 →
◎
×
1
0
+
PEN
P
SBL
CL
A/D
+
×
◎
◎
◎
PE
×
◎
◎
0
◎
◎
◎
◎
RIE
TIE
◎
◎
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
×
×
×
×
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
ORE FRE RDRF TDRE BDS
◎
bit7 bit6 bit5 bit4 bit3 bit2 bit1
◎
◎
×
+
0
1
0
0
0
0
0
◎
RBI
TBI
◎
◎
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
LBR
×
MS SCDE SSM
×
×
×
0
:使用ビット
:不使用ビット
:"1" を設定
:"0" を設定
:自動的に正しく設定されるビット
● CPU 間接続
マスタ / スレーブ型通信では , 図 19.7-13 に示すように 2 本の共通通信ラインに 1 つの
マスタ CPU と複数のスレーブ CPU を接続して通信システムを構成します。UART2/3
はマスタまたはスレーブのどちらでも使用できます。
図 19.7-13 UART2/3 のマスタ / スレーブ型通信の接続例
SOT1
SIN1
マスタ CPU
SOT
SIN
スレーブ CPU #0
370
SOT
SIN
スレーブ CPU #1
第 19 章 UART2/3
● 機能選択
マスタ / スレーブ型通信では , 表 19.7-3 に示すように動作モードとデータ転送方式を選
択してください。
表 19.7-3 マスタ / スレーブ型通信機能の選択
動作モード
データ
マスタ CPU スレーブ CPU
アドレス
送受信
データ
送受信
モード 1
モード 1
(A/D ビット (A/D ビット
送受信 )
送受信 )
パリ
ティ
A/D=1
+
7 または 8 ビット
アドレス
A/D=0
+
7 または 8 ビット
データ
なし
同期
方式
ストップ
ビット
1 ビット
非同期 または
2 ビット
ビット
方向
LSB または
MSB
ファースト
● 通信手順
通信はマスタ CPU がアドレスデータを送信することによって始まります。アドレス
データとは A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を選択しま
す。各スレーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレ
スと一致した場合にマスタ CPU との通信をします。
図 19.7-14 に , マスタ / スレーブ型通信 ( マルチプロセッサモード ) のフローチャート
を示します。
371
第 19 章 UART2/3
図 19.7-14 マスタ / スレーブ型通信フローチャート
( マスタ CPU)
( スレーブ CPU)
スタート
スタート
動作モード 1 に設定
動作モード 1 に設定
SIN2/3 端子をシリアルデータ
入力に設定
SOT2/3 端子をシリアルデータ
出力に設定
SIN2/3 端子をシリアルデータ
入力に設定
SOT2/3 端子をシリアルデータ
出力に設定
7 または 8 データビット設定
1 または 2 ストップビット
設定
7 または 8 データビット設定
1 または 2 ストップビット
設定
A/D ビットに "1" をセット
送受信動作許可
送受信動作許可
受信バイト
スレーブアドレスを送信
A/D ビット = 1
NO
YES
スレーブアドレス
が一致
A/D ビットに "0" をセット
NO
YES
スレーブ CPU と通信
通信終了 ?
マスタ CPU と通信
NO
YES
他のスレーブ CPU
と通信
YES
NO
YES
送受信動作禁止
エンド
372
通信終了 ?
NO
第 19 章 UART2/3
19.7.7
LIN 通信機能
UART2/3 通信で LIN デバイスは , LIN マスタシステムもしくは LIN スレーブシステ
ムに使用できます。
■ LIN マスタ / スレーブ型通信機能
UART2/3 の LIN 通信モード ( 動作モード 3) に必要な設定を図 19.7-15 に示します。
図 19.7-15 UART2/3 の動作モード 3(LIN) 設定
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
SCR2/3,
SMR2/3
モード 3 →
SSR2/3,
TDR2/3,
RDR2/3
モード 3 →
ESCR2/3,
ECCR2/3
P
SBL
CL
A/D
+
×
+
+
×
PE
×
0
ORE FRE RDRF TDRE BDS
◎
◎
◎
◎
◎
◎
◎
◎
◎
bit0
CRE RXE TXE MD1 MD0 OTO EXT REST UPCL SCKE SOE
+
◎
◎
RIE
TIE
◎
◎
LBIE LBD LBL1 LBL0 SOPE SIOP CCO SCES
モード 3 →
◎
×
1
0
+
PEN
bit7 bit6 bit5 bit4 bit3 bit2 bit1
◎
×
+
1
1
0
0
0
0
0
◎
RBI
TBI
◎
◎
変換データを設定 ( 書込み時 )
受信データを保持 ( 読出し時 )
LBR
◎
MS SCDE SSM
×
×
×
0
:使用ビット
:不使用ビット
:"1" を設定
:"0" を設定
:自動的に正しく設定されるビット
● LIN デバイス接続
1 つの LIN マスタと LIN スレーブの通信システムを図 19.7-16 で示します。
UART2/3 は , LIN マスタまたは LIN スレーブとして動作することができます。
図 19.7-16 LIN バスシステムの接続例
SOT
SOT
LIN バス
SIN
LIN マスタ
SIN
トランシーバ
トランシーバ
LIN スレーブ
373
第 19 章 UART2/3
19.7.8
UART2/3 の LIN 通信フローチャート例 ( 動作モード 3)
UART2/3 の LIN 通信フローチャート例を示します。
■ LIN マスタデバイス
図 19.7-17 LIN マスタフローチャート
スタート
初期設定:
動作モードを "3" に設定
シリアルデータ出力許可 , ボーレート設定
LIN Synch break 長設定
TXE = 1, TIE = 0, RXE = 0, RIE = 1
メッセージ送信 ?
NO
YES
YES
Wake up ?
(0x80 受信 )
NO
YES
RXE = 0
LIN Synch Break 割込み許可
LIN Synch Break 送信:
ECCR2/3: LBR = 1
LIN Synch Field 送信:
TDR2/3 = 0x55
( 受信 )
RDRF = 1
受信割込み
送信 Data 1 セット
TDR2/3 = Data 1
送信割込み許可
Data 1 受信* 1
RDRF = 1
受信割込み
Data N 受信
NO ( 送信 )
Data Field
受信 ?
TDRE = 1
送信割込み
*1
送信 Data N セット
TDR2/3 = Data N
送信割込み禁止
LBD = 1
LIN Synch Break 割込み
RDRF = 1
受信割込み
受信許可
LBD = 0
LIN Synch Break 割込み禁止
Data 1 受信 * 1
Data 1 読出し
RDRF = 1
受信割込み
RDRF = 1
受信割込み
LIN Synch Field 受信 * 1
Identify Field セット :TDR2/3 = lD
Data 1 受信 * 1
Data 1 読出し
RDRF = 1
受信割込み
ID Field 受信* 1
NO
エラーなし ?
エラー処理* 2
YES
*1 : エラーが発生すると , エラー処理が実行されます。
*2 : ・SSR2/3:FRE または ORE ビットが "1" に設定されている場合 , エラーフラグをクリアするために , SCR2/3:CRE
ビットを "1" に設定してください。
・ESCR2/3:LBD ビットが "1" に設定されている場合 , UART2/3 のリセットが実行されます。
( 注意事項 ) それぞれの処理でエラーフラグと処理が適切かを確認してください。
374
第 19 章 UART2/3
■ LIN スレーブデバイス
図 19.7-18 LIN スレーブフローチャート
スタート
初期設定:
動作モードを "3" に設定
シリアルデータ出力許可 , ボーレート設定
LIN Synch break 長設定
TXE = 1, TIE = 0, RXE = 0, RIE = 1
UART と ICU の接続
受信禁止
ICU 割込み許可
LIN Synch Break 割込み許可
YES (
LBD = 1
LIN Synch Break 割込み
LIN Synch Break 検出クリア
ECCR2/3: LBD = 0
LIN Synch Break 割込み禁止
ICU 割込み
NO (
Data Field
受信 ?
送信 )
RDRF = 1
受信割込み
Data 1 受信* 1
送信 Data 1 セット
TDR2/3 = Data 1
送信割込み許可
RDRF = 1
受信割込み
ICU 割込み
ICU データ読出し
ICU 割込みフラグクリア
受信 )
TDRE = 1
送信割込み
Data N 受信* 1
送信 Data N セット
TDR2/3 = Data N
送信割込み禁止
受信禁止
RDRF = 1
受信割込み
ICU データ読出し
ボーレート調整
受信許可
ICU 割込みフラグクリア
ICU 割込み禁止
Data 1 受信 * 1
Data 1 読出し
RDRF = 1
受信割込み
LBD = 1
LIN Synch break 割込み
Data N 受信 * 1
Data N 読出し
受信禁止
Identify Field 受信 *1
エラーなし ?
NO
エラー処理* 2
YES
スリープ
モード ?
NO
YES
ウェイクアップ
受信 ?
NO
YES
ウェイクアップ
送信 ?
NO
YES
ウェイクアップ
コード送信
*1 : エラーが発生すると , エラー処理が実行されます。
*2 : ・SSR2/3:FRE または ORE ビットが "1" に設定されている場合 , エラーフラグをクリアするために , SCR2/3:CRE
ビットを "1" に設定してください。
・ESCR2/3:LBD ビットが "1" に設定されている場合 , UART2/3 リセットが実行されます。
( 注意事項 ) それぞれの処理でエラーフラグと処理が適切かを確認してください。
375
第 19 章 UART2/3
19.8
UART2/3 使用上の注意
UART2/3 を使用する場合の注意点を示します。
■ UART2/3 使用上の注意
● 動作許可
UART2/3 には送信 , 受信のそれぞれに対してシリアル制御レジスタ (SCR2/3) に TXE
( 送信 ), RXE( 受信 ) の動作許可ビットがあります。デフォルト ( 初期値 ) では , 送受信
とも動作禁止であるため , 通信前に動作を許可する必要があります。ビットを禁止にす
ることで動作も解除できます。
● 通信モードの設定
通信モードの設定は , UART2/3 の動作停止中にしてください。送受信中にモード設定
をした場合 , そのとき送受信されたデータは保証されません。
● 送信割込み許可のタイミング
送信データエンプティフラグビット (SSR2/3:TDRE) はデフォルト ( 初期値 ) が "1" ( 送信
データなし , 送信データ書込み許可 ) であるため , 送信割込み要求を許可 (SSR2/3:TIE=1)
すると , 直ちに 送信割込み要求が発生します。これを避けるため , 必ず送信データを設
定してから , TIE フラグを "1" にしてください。
● スタートビット同期
非同期モードでは , スタートビットはエッジにより検出されます。SCR2/3: RXE ビット
が "1" に設定されて , SIN2/3 が "0" の場合 , スタートビットはシリアルデータ入力 SIN2/
3 の次の立下りエッジの前に検出されません。
非同期モードでは , SCR2/3: RXE ビットが "0" に設定後 , 受信スタートビットが格納さ
れません。SCR2/3: RXE ビットが再び "1" に設定されたときにスタートビットを検出す
ると受信を開始します。
● LIN 動作モード 3 の使用
LIN 機能はモード 3 ( 送受信 LIN Synch break) で使用可能ですが , モード 3 では自動的
に LIN フォーマットの設定 (8N1, LSB ファースト ) になります。
LIN synch break の送信ビット長は可変ですが , 受信は 11 ビット長固定になっています。
<注意事項>
LIN 動作中は , ESCR2/3 レジスタの SCES ビットを "0" に設定してください。
● 動作設定の変更
スタート / ストップビットの付加またはデータフォーマットを変更した場合など , 設定
を変更した後には UART2/3 のリセットを推奨します。
376
第 19 章 UART2/3
<注意事項>
シリ ア ルモ ー ドレ ジ スタ (SMR2/3) の 設定 と 同時 に UART2/3 の リ セ ット (SMR2/
3:UPCL=1) を行っても , 正しい動作設定は保証されません。そのため , シリアルモードレ
ジスタ (SMR2/3) のビット設定を行った後 , 再度 UART2/3 をリセット (SMR2/3:UPCL=1)
することを推奨します。
● LIN スレーブ設定
スレーブ動作の最初のLIN synch breakを受信する前にボーレートを設定してください。
さもないと , LIN synch break の期間は最小限必要な LIN 仕様 (13 マスタビットおよび
11 スレーブビット分 ) に対して正確に判断できません。
● プログラムの互換性
UART2/3 が他の UART と類似していますが , プログラムの互換性はありません。プロ
グラミングの型は同じときもありますが , レジスタの構造は異なります。さらに , ボー
レートの設定はあらかじめ設定された値を選出する代わりにリロード値によって決定
されます。
● バスアイドル機能
バスアイドル機能は同期モード 2 および SSM=0 では使用できません。
● A/D ビット ( シリアル制御レジスタ (SCR2/3):アドレス / データ形式選択ビット )
• A/D ビットに書き込むことで送信を設定しますが , このビットの読出しで最後に受
信した A/D ビットを返すので , A/D ビットは制御とフラグの両方のビットとして使
用します。送受信 A/D ビット値を異なったレジスタの内部に格納します。RMW 系
命令を使用すると A/D ビットの送信が読み出され , 受信 A/D データはほかの読出し
として読み出されます。
• TDRE ビットが "0" から "1" になり , 送信が開始すると , A/D ビットの送信が送信デー
タレジスタ (TDR2/3) のデータとあわせて送信シフトレジスタにロードされます。し
たがって , 送信データレジスタ (TDR2/3) に書き込む前に A/D ビットを送信に設定し
てください。
● UART2/3 ソフトウェアリセット
シリアル制御レジスタ (SCR2/3) の TXE ビットが "0" のときに , LIN-UART ソフトウェ
アリセット (SMR2/3: UPCL = 1) を実行してください。
● LIN Synch Field 待ち状態
モード 3 では (LIN 動作 ), シリアル入力が 11 ビット以上 "0" に保たれていれば , ESCR2/
3 レジスタの LBD ビットが "1" に設定されます。UART2/3 は次に受信される LIN synch
field を待ちます。UART2/3 が LIN synch break 以外の理由でこの状態に設定されると ,
ソフトウェアリセット (SMR2/3: UPCL=1) で初期化される必要があります。
● 同期スレーブモード時の初期化
UART2/3 は下記条件で初期化されます。
RXE=0, TXE=0, その他すべてを設定 , UPCL=1, RXE=1, TXE=1
これにより , 内部の送受信限定のステートマシンを確実に適切な状態にできます。
377
第 19 章 UART2/3
378
第 20 章
2
400 kHz I C インタフェース
I2C インタフェースの機能と動作について説明しま
す。
20.1 I2C インタフェースの概要
20.2 I2C インタフェースのレジスタ
20.3 I2C インタフェースの動作
20.4 プログラミングフローチャート
379
第 20 章 400 kHz I2C インタフェース
20.1
I2C インタフェースの概要
I2C インタフェースは , 内部 IC BUS をサポートするシリアル I/O ポートです。I2C
バス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの機能
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• ジェネラルコールアドレス検出機能
• 転送方向検出機能
• スタートコンディションの繰返し発生および検出機能
• バスエラー検出機能
• 7 ビットマスタ・スレーブアドレッシング
• 10 ビットマスタ・スレーブアドレッシング
• 7 ビット , 10 ビットスレーブアドレスへのインタフェース可能
• スレーブアドレス受信でのアクノリッジを禁止可能 ( マスタのみの動作中 )
• 一部のスレーブアドレスとのインタフェースをアドレスマスク (7 ビット , 10 ビット
モード中 )
• 400K バイトまでの転送レート
• SDA, SCL の内蔵ノイズフィルタを使用可能
• プリスケーラ設定と関係なく , マシンクロックが 6 MHz 以上の場合 , 400 K バイト
で受信可能
• 転送とバスエラーイベント上で MCU 割込みの発生可能
• ビット , バイトレベルでのスレーブアドレスによるスローダウンをサポート
プリスケーラ設定と関係なく , マシンクロックが 6 MHz 以上の場合 , データ受信が 400 K
バイトレートに達するまでの間 , I2C インタフェースはビットレベルでの SCL クロック
の伸長をサポートしません。ただし , 割込み中 (IBCR レジスタ中で INT = 1) に SCL が
"L" である間は , バイトレベルでのクロック伸長が実行されます。
380
第 20 章 400 kHz I2C インタフェース
図 20.1-1 I2C インタフェースのブロックダイヤグラム
ICCR
I2C 許可
EN
クロック分周器 1
2 3 4 5 ... 32
ICCR
CS4
CS3
5
CS2
5
クロックセレクタ
同期
CS1
クロック分周器 2 (12 分周 )
SCL デューティ周期発生器
CS0
IBSR
BB
RSC
LRB
シフトクロック発生器
バスビジー
連続スタート
バスオブザーバ
最終ビット
送 / 受信
バスエラー
TRX
アドレスデータ
ADT
アービトレーション
ロスト検知器
AL
ICCR
NSF
内部データバス
IBCR
許可
BER
ノイズ
BEIE
MCU
IRQ
割込み要求
INTE
INT
フィルタ
SCL
SDA
SCL
SDA
IBCR
SCC
MSS
ACK
GCAA
開始
マスタ
ACK 許可
スタート - ストップ
コンディション発生器
GC-ACK 許可
ACK 発生器
8
IBSR
AAS
IDAR
8
スレーブ
汎用コール
GCA
ISMK 7 ビットモード許可
ENSB
スレーブアドレス
コンパレータ
ITMK
10 ビットモード許可
ENTB
アドレス長受信
RAL
10
7
10
ITBA
ITMK
7
ISBA
ISMK
10
10
7
7
381
第 20 章 400 kHz I2C インタフェース
I2C インタフェースのレジスタ
20.2
I2C インタフェースで使用するレジスタの構成および機能について説明します。
■ I2C インタフェースのレジスタ一覧
図 20.2-1 I2C インタフェースのレジスタ一覧
バスコントロールレジスタ (IBCR)
アドレス
0035A1H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
BER
R/W
BEIE
R/W
SCC
W
MSS
R/W
ACK
R/W
GCAA
R/W
INTE
R/W
INT
R/W
初期値
00000000B
バスステータスレジスタ (IBSR)
アドレス
0035A0H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
BB
R
RSC
R
AL
R
LRB
R
TRX
R
AAS
R
GCA
R
ADT
R
bit11
bit10
bit9
bit8
TA8
R/W
初期値
00000000B
10 ビットスレーブアドレスレジスタ (ITBA)
ITBA( 上位 )
アドレス
0035A3H
bit15
bit14
bit13
bit12
-
-
-
-
-
-
-
-
-
-
-
-
TA9
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TA7
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
初期値
00000000B
ITBA( 下位 )
アドレス
0035A2H
初期値
00000000B
10 ビットスレーブアドレスマスクレジスタ (ITMK)
ITMK( 上位 )
アドレス
0035A5H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ENTB
R/W
RAL
R/W
-
-
-
-
-
-
-
-
TM9
R/W
TM8
R/W
初期値
00111111B
ITMK( 下位 )
アドレス
0035A4H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TM7
R/W
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
初期値
11111111B
7 ビットスレーブアドレスレジスタ (ISBA)
アドレス
0035A6H
R/W
R
W
-
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
初期値
00000000B
:リード / ライト可能
:リードオンリ
:ライトオンリ
:不定
( 続く )
382
第 20 章 400 kHz I2C インタフェース
( 続き )
7 ビットスレーブアドレスマスクレジスタ (ISMK)
アドレス
0035A7H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ENSB
R/W
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
初期値
01111111B
データレジスタ (IDAR)
アドレス
0035A8H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
初期値
00000000B
クロックコントロールレジスタ (ICCR)
アドレス
0035A5H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
NSF
R/W
EN
R/W
CS4
R/W
CS3
R/W
CS2
R/W
CS1
R/W
CS0
R/W
初期値
00011111B
R/W :リード / ライト可能
- :不定
383
第 20 章 400 kHz I2C インタフェース
20.2.1
バスステータスレジスタ (IBSR)
バスステータスレジスタ (IBSR) の構成および機能について説明します。
• バスビジー検知
• 繰返し開始状態検知
• アービトレーションロスト検知
• アクノリッジ検知
• データ転送方向表示
• スレーブ検知のアドレッシング
• 汎用コールアドレス検知
• アドレスデータ転送検知
■ バスステータスレジスタ (IBSR)
このレジスタはリードオンリです。全ビットはハードウェアで制御されています。イ
ンタフェースが不可の場合 (ICCR 中の EN = 0), 全ビットはクリアされます。
図 20.2-2 バスステータスレジスタの構成 (IBSR)
IBSR
アドレス
0035A0H
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
BB
RSC
AL
LRB
TRX AAS
R
R
R
R
R
R
GCA
ADT
R
R
初期値
0 0 0 0 0 0 0 0B
bit0
ADT
アドレスデータ転送ビット
0
入力データはアドレスデータ以外 ( バス非使用 )
1
入力データはアドレスデータ
bit1
GCA
0
1
汎用コールアドレスビット
スレーブ外として受信した汎用コールアドレス
スレーブとして受信した汎用コールアドレス
bit2
AAS
0
1
スレーブビットとしてのアドレッシング
スレーブとしてアドレスされていない
スレーブとしてアドレスされている
bit3
転送データビット
TRX
0
転送データなし
1
転送データ
bit4
LRB
最終受信ビット
0
レシーバはアクノリッジしていない
1
レシーバはアクノリッジしている
bit5
AL
アービトレーションロストビット
0
アービトレーションロスト検知なし
1
アービトレーションロスト検知あり
bit6
RSC
繰返しスタートコンディションビット
0
繰返しスタートコンディションの検知なし
1
バス使用中に繰返しスタートコンディションを検知
bit7
BB
R
384
バスビジービット
: リードオンリ
0
ストップコンディション検知 ( バスアイドル )
: 初期値
1
スタートコンディション検知 ( バス使用中 )
第 20 章 400 kHz I2C インタフェース
■ バスステータスレジスタ (IBSR) の内容
表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 1 / 3 )
ビット名
bit 7
bit 6
機能
BB:
バスビジー
ビット
このビットは , I2C バスの状態を示すビットです。
"0": ストップコンディションを検出した ( バスは使用されていない ) 。
"1": スタートコンディションを検出した ( バスは使用されている ) 。
スタートコンディションが検知されると , このビットは "1" に設定され
ます。ストップコンディションでリセットされます。
RSC:
繰返しスタート
コンディション
ビット
このビットは , 繰返しスタートコンディション検出ビットです。
"0": 繰返しスタートコンディションは検出されていない。
"1": バス使用中に , 再びスタートコンディションを検出した。
このビットは , アドレスデータ転送の終了時 (ADT= 0) またはストップコ
ンディション検出でクリアされます。
AL:
アービトレー
ションロスト
ビット
このビットは , アービトレーションロスト検出ビットです。
"0": アービトレーションロスト検出されていない。
"1": マスタ送信中にアービトレーションロストの発生を検出しました。
このビットは , INT ビットに "0" を書き込むか , IBCR レジスタ中の MSS
ビットに "1" を書き込むことでクリアされます。
下記のような場合 , アービトレーションロストが発生します。
bit 5
• SCL 立上りエッジで , 送信データが SDA ラインの読込みデータと一致
しない場合
• 他のマスタにより , 繰返しスタートコンディションがデータバイトの 1
ビット目で発生された場合
• 他のスレーブが SCL ラインを "L" にするために , インタフェースがス
タート / ストップコンディションを発生できない場合
bit 4
LRB:
最終受信
ビット
このビットは , アクノリッジ格納ビットです。受信側からのアクノリッ
ジメッセージを格納します。
"0": 受信側アクノリッジ可能
"1": 受信側アクノリッジ不可
このビットは , bit9 ( アクノリッジビット ) の受信中にハードウェアで変
更され , スタート / ストップコンディションでクリアされます。
385
第 20 章 400 kHz I2C インタフェース
表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 2 / 3 )
ビット名
TRX:
転送データ
ビット
機能
このビットは , データ転送の動作を示すビットです。
"0": データ転送されていない。
"1": データ転送された。
下記の場合に , このビットは "1" になります。
• マスタモード中にスタートコンディションが発生した場合
• 開始バイトの転送 , スレーブとしてのデータ読出しやマスタとしての
データ送信が完了した場合
下記の場合に , このビットは "0" になります。
• バスがアイドル状態 (BB=0) の場合
bit 3
• アービトレーションロストが発生した場合
• マスタ割込み中 (MSS = 1, INT = 1) に SCC ビットに "1" が書き込まれ
た場合
• マスタ割込み中 (MSS = 1, INT = 1) に MSS ビットがクリアされた場合
• インタフェースがスレーブモード中で , 最終転送バイトがアクノリッ
ジされなかった場合
• インタフェースがスレーブモード中に , データを受信した場合
• インタフェースがマスタモード中に , スレーブからのデータを読み込
んだ場合
bit 2
bit 1
386
AAS:
スレーブ
ビットと
してのアド
レッシング
このビットは , スレーブ時のアドレッシング検出ビットです。
"0": スレーブ時に , アドレッシングされていない。
"1": スレーブ時に , アドレッシングされた。
このビットは , 繰返しスタートコンディションまたはストップコンディ
ションの検出でクリアされます。インタフェースが 7 ビットや 10 ビット
のスレーブアドレスを検知したときに設定されます。
GCA:
汎用コール
アドレス
ビット
このビットは , ジェネラルコールアドレス (0x00) 検出ビットです。
"0": スレーブ時に , ジェネラルコールアドレスは受信されていない。
"1": スレーブ時に , ジェネラルコールアドレスを受信した。
このビットは , 繰返しスタートコンディションまたはストップコンディ
ションの検出でクリアされます。
第 20 章 400 kHz I2C インタフェース
表 20.2-1 バスステータスレジスタ (IBSR) の各ビットの機能 ( 3 / 3 )
ビット名
ADT:
アドレスデー
タ転送ビット
機能
このビットは , アドレスデータ転送の検出ビットです。
"0": 受信データがアドレスデータ以外である ( またはバスが使用されて
いない ) 。
"1": 受信データがアドレスデータである。
bit 0
このビットは , スタートコンディションで "1" にセットされます。ライ
トアクセスの 10 ビットスレーブアドレスヘッダが検知された場合 , 第 2
バイトの後にクリアされます。その他の場合は , 第 1 バイトの後にクリ
アされます。
「第 1/ 第 2 バイトの後に」とは , 下記を意味します。
• マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , MSS ビットに "0"
が書き込まれる。
• マスタ割込み中 (IBCR 中の MSS = 1, INT = 1) に , SCC ビットに "1"
が書き込まれる。
• INT ビットがクリアされる。
• インタフェースが , マスタ , スレーブのカレント転送と関係していない
ときに , 全バイト転送が開始。
387
第 20 章 400 kHz I2C インタフェース
20.2.2
バス制御レジスタ (IBCR)
バス制御レジスタ (IBCR) には下記の機能があります。
• 割込み許可フラグ
• 割込み発生フラグ
• バスエラー検知フラグ
• 繰返しスタートコンディション発生
• マスタ / スレーブモード選択
• 汎用コールアクノリッジ発生許可
• データバイトアクノリッジ発生許可
■ バス制御レジスタ (IBCR)
このレジスタへの書込みアクセスは , INT = 1 の間か , 転送が開始された場合にのみ
行ってください。ACK や GCAA ビットの変更が結果としてバスエラーとなった場合 ,
ユーザはデータの転送中にこのレジスタに書込みしてはいけません。インタフェース
が禁止の場合 (ICCR 中の EN = 0), このレジスタ中の全ビット (BER と BEIE ビットは
除く ) はクリアされます。
図 20.2-3 バス制御レジスタの構成
IBCR
アドレス
0035A1H
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
BER BEIE SCC MSS
ACK GCAA INTE
初期値
INT
R/W R/W W R/W R/W R/W R/W R/W
00000000B
bit 8
割込みフラグビット
INT
0
1
詳細は以降の表を参照。
bit 9
INTE
割込み許可ビット
0
割込み禁止
1
割込み許可
bit 10
GCCA
汎用コールアドレスアクノリッジビット
0
汎用コールアドレスにアクノリッジなし
1
汎用コールアドレスでアクノリッジ
bit 11
ACK
アクノリッジビット
0
データバイト受信にアクノリッジなし
1
データバイト受信でアクノリッジ
bit 12
MSS
マスタ / スレーブ選択ビット
0
スレーブモード
1
マスタモード ( 詳細は以降の表を参照 )
bit 13
SCC
スタートコンディション継続ビット
0
書込み : 効果なし
1
書込み : 連続スタートコンディション発生
bit 14
BEIE
0
1
388
W
: ライトオンリ
R/W
: リード / ライト可能
: 初期値
バスエラー割込み許可ビット
バスエラー割込み禁止
バスエラー割込み許可
bit 15
BER
バスエラービット
書込み時
0
バスエラー割込みクリア
1
効果なし
読出し時
エラー検知なし
エラー検知
第 20 章 400 kHz I2C インタフェース
■ バス制御レジスタ (IBCR) の内容
表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 1 / 3 )
ビット名
BER:
バスエラー
ビット
bit 15
機能
このビットは , バスエラー割込みフラグです。ハードウェアで設定され ,
ユーザによりクリアされます。リードモディファイライトアクセス時
にはこのビットは常に "1" を読み出します。
( 書込み時 )
"0": バスエラー割込みフラグをクリアする。
"1": 関係なし。
( 読出し時 )
"0": バスエラーは検出されていない。
"1": 下記のいずれかのエラー状態が検出された。
このビットがセットされた場合 , ICCR レジスタの EN ビットはクリ
アされて I2C インタフェースは停止状態になり , データ転送は中断さ
れます。そして , IBSR と IBCR レジスタ中のすべてのビット (BER と
BEIE 除く ) はクリアされます。BER ビットは , インタフェースが再
動作可能になる前に , クリアされなければなりません。
下記の場合 , このビットは "1" になります。
• スタート / ストップコンディションが間違った場所 ( アドレスデータ
転送中や bit2 ~ bit9( アクノリッジビット ) の転送中 ) で検知される。
• リードアクセスの 10 ビットアドレスヘッダが , 10 ビットライトア
クセスの前に受信される。
bit 14
BEIE:
バスエラー
割込み許可
ビット
このビットは , バスエラー割込み許可ビットです。ユーザによっての
み変更可能です。
"0": バスエラー割込み禁止。
"1": バスエラー割込み許可。
このビットが "1" のとき BER ビットが "1" ならば , MCU 割込みを発
生します。
bit 13
SCC:
スタート
コンディション
継続ビット
このビットは , 繰返しスタートコンディション発生ビットです。書込
みのみです。このビットの読出し値は常に "0" です。
"0": 関係なし。
"1": マスタ転送時に繰返しスタートコンディションを発生させる。
マスタモード (MSS=1, INT=1) の割込み中にこのビットに "1" が書き
込まれた場合 , 繰返しスタートコンディションが発生し , INT ビット
が自動的にクリアされます。
389
第 20 章 400 kHz I2C インタフェース
表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 2 / 3 )
ビット名
MSS:
マスタ /
スレーブ選択
ビット
機能
このビットは , マスタ / スレーブモードの選択ビットです。このビッ
トはユーザによってのみ設定されますが , クリアはユーザおよびハー
ドウェアで可能です。
"0": スレーブモードとなります。
"1": マスタモードとなり , スタートコンディションを発生し , IDAR レ
ジスタにおけるアドレスデータの転送を開始します。
このビットは , マスタ送信中にアービトレーションロストが発生した
場合にクリアされます。
マスタモード (MSS=1, INT=1) の割込み中に "0" が書き込まれた場合 ,
INT ビットが自動的にクリアされ , ストップコンディションが発生し ,
データ転送が完了します。IBSR レジスタの BB ビットのポーリングで
ストップコンディション発生をチェックできます。ただし , MSS ビッ
トが即時にリセットされることに注意してください。
bit 12
バスがアイドル中 (MSS=0, BB=0) に "1" が書き込まれた場合 , スター
トコンディションが発生し , IDAR レジスタ ( アドレスデータ ) の内容
が送信されます。
バスの使用中 (IBSR 中の BB=1, TRX=0, IBCR 中の MSS=0) に MSS ビッ
トに "1" が書き込まれた場合 , インタフェースは , バスがフリーになり ,
送信が開始されるまで待機します。
一方でインタフェースがスレーブとしてライトアクセス ( データ受信 )
でアドレスされた場合, 転送終了後に送信が開始し, 再びバスがフリー
になります。IBSR の AAS が 1, TRX が 1 の間にインタフェースがス
レーブとしてのデータを送信する場合は , データの転送は開始されず
に , 再びバスがフリーになります。インタフェースがスレーブとして
アドレスされているか (IBSR の AAS=1), データバイトの送信が成功し
ているか(IBCRのMSS=1), 次の割込み時にデータバイト(IBSRのAL=1)
送信が失敗しているかどうかをチェックすることは重要です。
ACK:
アクノリッジ
ビット
このビットは , データバイトを受信した場合のアクノリッジ発生許可
ビットです。このビットはユーザによってのみ変更可能です。
"0": データバイト受信時にアクノリッジ発生しない。
"1": データバイト受信時にアクノリッジ発生する。
このビットは , スレーブにおけるアドレスバイト受信時には , 無効と
なります。
bit 11
インタフェースが 7 ビットか 10 ビットスレーブアドレスを検知した場
合 , 対応許可ビット (ITMK の ENTB, ISMK の ENSB) が設定されてい
るかどうかアクノリッジします。
割込み中 (INT=1) またはバスがアイドル (IBSR レジスタの BB=0) のみ
の場合に , このビットへの書込みアクセスが発生します。
bit 10
390
GCAA:
汎用コール
アドレス
アクノリッジ
ビット
このビットは , ジェネラルコールアドレスを受信した場合のアクノ
リッジ発生許可ビットです。このビットはユーザによってのみ変更可
能です。
"0": 汎用コールアドレスバイト受信時にアクノリッジ発生しない。
"1": 汎用コールアドレスバイト受信時にアクノリッジ発生する。
割込み中 (INT=1) またはバスがアイドル中 (IBSR レジスタの BB=0), ま
たはインタフェースが禁止 (ICCR レジスタの EN=0) のみの場合に , こ
のビットへの書込みアクセスが発生します。
第 20 章 400 kHz I2C インタフェース
表 20.2-2 バス制御レジスタ (IBCR) の各ビットの機能 ( 3 / 3 )
ビット名
bit 9
bit 8
機能
INTE:
割込み許可
ビット
このビットは , MCU 割込み許可ビットです。このビットはユーザに
よってのみ変更可能です。
"0": 割込み禁止
"1": 割込み許可
このビットが "1" のとき INT ビットが "1" ならば , ハードウェアによ
り MCU 割込みが発生されます。
INT:
割込みフラグ
ビット
このビットは , 転送終了割込み要求フラグビットです。このビットは
ハードウェアによって変更され , ユーザによってクリアできます。
リードモディファイライトアクセス時は , このビットの読出し値は常
に 1 です。
( 書込み時 )
"0": 転送終了割込み要求フラグをクリアする。
"1": 関係なし
( 読出し時 )
"0": 転送が終了していないか , カレント転送と関係していないか , バ
スがアイドル状態。
"1": アクノリッジビットを含めた 1 バイト転送または受信が終了した
ときに , 次の条件に該当する場合セットされます。
• バスマスタである
• アドレスされたスレーブである
• ジェネラルコールアドレスを受信した
• アービトレーションロストが起こった
デバイスがスレーブとしてアドレスされている場合 , アクノリッジ
ビットを含めてアドレスデータ受信の終了 (7 ビットアドレス受信の場
合は第 1 バイトの後 , 10 ビットアドレス受信の場合は第 2 バイトの後 )
に設定してください。
このビットが 1 の間 , SCL ラインは "L" レベル信号を保持します。この
ビットへ "0" を書き込むことで設定がクリアされ , SCL ラインが解放さ
れ , 次バイトや繰返し発生したスタート / ストップコンディションが転
送されます。さらに , SCC ビットへの 1 の書込みや MSS ビットがクリ
アされた場合に , このビットはクリアされます。
391
第 20 章 400 kHz I2C インタフェース
■ SCC, MSS, INT ビット競合
SCC, MSS, INT ビットの競合について , 以下の注意が必要です。
SCC, MSS, INT ビットの同時書込みにより , 次バイト転送 , 繰返しスタートコンディ
ション発生およびストップコンディション発生の競合が起こります。この場合の優先
度は , 次のようになります。
● 次のバイト転送とストップコンディション発生
INT ビットに "0", MSS ビットに "0" を書き込むと , MSS ビットの "0" 書込みが優先さ
れ , ストップコンディションが発生します。
● 次のバイト転送とスタートコンディション発生
INT ビットに "0", SCC ビットに "1" を書き込むと , SCC ビットの "1" 書込みが優先され ,
繰返しスタートコンディションが発生し , IDAR レジスタのデータが転送されます。
● 繰返しスタートコンディション発生とストップコンディション発生
SCC ビットに "1", MSS ビットに "0" を書き込むと , MSS ビットのクリアが優先され ,
ストップコンディションが発生し , インタフェースがスレーブモードになります。
392
第 20 章 400 kHz I2C インタフェース
20.2.3
10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL)
このレジスタ (ITBAH / ITBAL) は 10 ビットスレーブアドレスを示します。
■ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL)
インタフェースが禁止 (ICCR の EN = 0) の場合 , このレジスタへは書込みアクセスの
みが有効です。
ITBAH( 上位 )
アドレス
0035A3H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
-
-
-
-
-
-
-
-
-
-
TA9
R/W
TA8
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TA7
R/W
TA6
R/W
TA5
R/W
TA4
R/W
TA3
R/W
TA2
R/W
TA1
R/W
TA0
R/W
初期値
00000000B
ITBAL( 下位 )
アドレス
0035A2H
初期値
00000000B
R/W :リード / ライト可能
- :不定
■ 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の内容
表 20.2-3 10 ビットスレーブアドレスレジスタ (ITBAH/ITBAL) の各ビットの機能
ビット名
bit15
~
bit10
bit 9
~
bit0
機能
不定
このビットは常に "0" を戻します。
TA9 ~
TA0:
10 ビット
スレーブ
アドレス
スレーブモード時にアドレスデータが受信されると , 10 ビットアドレ
スが有効 (ITMK レジスタの ENTB = 1) かどうか ITBA レジスタを比較
します。ライトアクセス 1 での 10 ビットアドレスヘッダの受信後に ,
アクノリッジはマスタへ送信されます。そして 2 番目に入ってくるバ
イトが ITBAL レジスタと比較されます。一致が検知されると , アクノ
リッジ信号がマスタデバイスに送信され , AAS ビットが設定されます。
さらに , 繰返しスタートコンディション後 , インタフェースはリードア
クセス 2 での 10 ビットアドレスヘッダの受信でアクノリッジします。
スレーブアドレスの全ビットは ITMK レジスタでマスクされます。10
ビットスレーブアドレスの全ビットは , ITBA レジスタに書き戻され ,
IBSR レジスタの AAS ビットが 1 の間だけ有効です。
<注意事項>
• 10 ビットヘッダ ( ライトアクセス ) は次のビットシーケンスで構成されます。:
11110, TA9, TA8, 0
• 10 ビットヘッダ ( リードアクセス ) は次のビットシーケンスで構成されます。:
11110, TA9, TA8, 1
393
第 20 章 400 kHz I2C インタフェース
20.2.4
10 ビットアドレスマスクレジスタ (ITMKH, ITMKL)
このレジスタには , 10 ビットスレーブアドレスマスクと 10 ビットスレーブアドレス
許可ビットがあります。
■ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL)
ITMKH( 上位 )
アドレス
0035A5H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ENTB
R/W
RAL
R/W
-
-
-
-
-
-
-
-
TM9
R/W
TM8
R/W
初期値
00111111B
ITMKL( 下位 )
アドレス
0035A4H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TM7
R/W
TM6
R/W
TM5
R/W
TM4
R/W
TM3
R/W
TM2
R/W
TM1
R/W
TM0
R/W
R/W :リード / ライト可能
- :不定
394
初期値
11111111B
第 20 章 400 kHz I2C インタフェース
■ 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の内容
表 20.2-4 10 ビットアドレスマスクレジスタ (ITMKH, ITMKL) の各ビットの機能
ビット名
bit 15
ENTB:
10 ビットスレーブ
アドレス許可
ビット
このビットは , 10 ビットスレーブアドレスを許可します ( そしてそ
の受信時にアクノリッジします )。インタフェースが禁止 (ICCR の
EN=0) のとき にのみ , このビットへの書込みアクセスが可能です。
"0": 10 ビットアドレス禁止
"1": 10 ビットアドレス許可
RAL:
受信スレーブ
アドレス長ビッ
ト
このビットは , インタフェースが 7 ビットまたは 10 ビットのどちら
をスレーブとしてアドレスされているか示します。読出しのみです。
"0": 7 ビットスレーブとしてアドレス
"1": 10 ビットスレーブとしてアドレス
7 ビット , 10 ビットスレーブアドレスが共に許可されているとき
(ENTB=1 かつ ENSB=1), このビットでインタフェースがどちらを使
用しているか決められます。このビットは , IBSR レジスタの AAS
ビットが 1 のとき有効です。このビットは , インタフェースが禁止
(ICCR の EN=0) のときにリセットされます。
未定義
これらのビットは , 読出し時に常に "1" を戻します。
TM9 ~ TM0:
10 ビットスレーブ
アドレス
マスクレジスタ
これらのビットは , インタフェースの 10 ビットスレーブアドレスの
マスクに使用します。インタフェースが禁止のとき (ICCR の EN=0)
のみ , これらのビットに書込みアクセスできます。
"0": ビットはスレーブアドレスの比較に使用されない
"1": ビットはスレーブアドレスの比較に使用される
このビットは , 複合 10 ビットスレーブアドレス上でインタフェース
をアクノリッジさせます。10 ビットスレーブアドレス比較をさせる
レジスタ上でのみ , このビットを "1" にしてください。受信スレーブ
アドレスは ITBA レジスタに書き戻されます。IBSR レジスタの AAS
ビットが 1 の場合は , ITBA レジスタの読出しにより受信スレーブア
ドレスが決定されます。
( 注意事項 )
インタフェースを許可にした後でアドレスマスクを変更すると ,
前の受信スレーブアドレスにより上書きされてから , 再びスレー
ブアドレスがセットされます。
bit 14
bit 13
~
bit10
bit 9
~
bit0
機能
395
第 20 章 400 kHz I2C インタフェース
20.2.5
7 ビットスレーブアドレスレジスタ (ISBA)
このレジスタは 7 ビットスレーブアドレスを定義します。
■ 7 ビットスレーブアドレスレジスタ
インタフェースが禁止 (ICCR の EN=0) のとき にのみ , このレジスタへの書込みアクセ
スが可能です。
ISBA
アドレス
0035A6H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
-
-
SA6
R/W
SA5
R/W
SA4
R/W
SA3
R/W
SA2
R/W
SA1
R/W
SA0
R/W
初期値
00000000B
R/W :リード / ライト可能
- :不定
■ 7 ビットスレーブアドレスレジスタの内容
表 20.2-5 7 ビットスレーブアドレスレジスタの各ビットの機能
ビット名
bit 7
bit 6
~
bit0
機能
不定
このビットは , 読出し時に常に "1" を戻します。
SA6 ~ SA0:
7 ビット
スレーブ
アドレス
ビット
スレーブモード中にアドレスデータを受信すると , 7 ビットアドレスが
有効 (ISMK レジスタの ENSB = 1) のとき , ISBA レジスタと比較され
ます。一致が検出されると , アクノリッジ信号がマスタデバイスに送信
され , AAS ビットがセットされます。
スレーブアドレスの全ビットが ISMK レジスタでマスクされます。
IBSR レジスタの AAS ビットが 1 のときのみ , 受信 7 ビットスレーブア
ドレスの ISBA レジスタへの書き戻しが有効です。
10 ビットヘッダまたは汎用コールを受信した場合は , インタフェース
はこのレジスタの内容と入力されたデータと比較しません。
■ 7 ビットスレーブアドレスマスクレジスタ (ISMK)
このレジスタには , 7 ビットスレーブアドレスマスクと 7 ビットモード許可ビットがあ
ります。インタフェースが禁止 (ICCR の EN=0) のとき にのみ , このレジスタへの書込
みアクセスが可能です。
ISMK
アドレス
0035A7H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ENSB
R/W
SM6
R/W
SM5
R/W
SM4
R/W
SM3
R/W
SM2
R/W
SM1
R/W
SM0
R/W
R/W :リード / ライト可能
396
初期値
01111111B
第 20 章 400 kHz I2C インタフェース
■ 7 ビットスレーブアドレスマスクレジスタの内容
表 20.2-6 7 ビットスレーブアドレスマスクレジスタの各ビットの機能
ビット名
bit 15
bit 14
~
bit8
機能
ENSB:
7 ビットスレーブ
アドレス許可
ビット
このビットは 7 ビットスレーブアドレスを許可します ( そしてそ
の受信時にアクノリッジします )。
"0": 7 ビットスレーブアドレス禁止
"1": 7 ビットスレーブアドレス許可
SM6 ~ SM0:
7 ビットスレーブ
アドレスマスク
ビット
このレジスタは , インタフェースの 7 ビットスレーブアドレスの
マスクに使用します。
"0": ビットはスレーブアドレスの比較に使用されない
"1": ビットはスレーブアドレスの比較に使用される
このビットは , 複合 7 ビットスレーブアドレス上でインタフェー
スをアクノリッジさせます。7 ビットスレーブアドレス比較をさ
せるレジスタ上でのみ , このビットを "1" にしてください。受信
スレーブアドレスは ISBA レジスタに書き戻されます。IBSR レ
ジスタの AAS ビットが 1 の場合は , ISBA レジスタの読出しによ
り受信スレーブアドレスが決定されます。
( 注意事項 )
インタフェースを許可にした後でアドレスマスクを変更する
と , 前の受信スレーブアドレスにより上書きされてから , 再び
スレーブアドレスがセットされます。
397
第 20 章 400 kHz I2C インタフェース
20.2.6
データレジスタ (IDAR)
400 kHz I2C インタフェース用データレジスタ (IDAR) の構成および機能について説
明します。
■ データレジスタ (IDAR)
IDAR
アドレス
0035A8H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
初期値
00000000B
R/W :リード / ライト可能
■ データレジスタの内容
表 20.2-7 データレジスタの各ビットの機能
ビット名
D7 ~ D0:
データ
ビット
bit7
~
bit0
398
機能
シリアルデータ転送に使用されるデータレジスタであり , MSB から転送さ
れます。
このレジスタの書込み側はダブルバッファになっており , バスが使用中
(BB=1) である場合 , 書込みデータは各バイト転送時にシリアル転送用のレ
ジスタにロードされます。IBCR レジスタの INT ビットがクリアされるか ,
バスがアイドル (IBSR の BB=0) のとき , このデータバイトは内部転送レジ
スタにロードされます。読出しアクセス中 , 内部レジスタは直接読み込ま
れます。このため IBCR レジスタの INT が 1 のときのみ , このレジスタの
受信データは有効です。
第 20 章 400 kHz I2C インタフェース
20.2.7
クロック制御レジスタ (ICCR)
クロック制御レジスタ (ICCR) には , 次の機能があります。
• テストモード許可
• I/O パッドノイズフィルタ許可
• I2C インタフェース動作許可
• シリアルクロック周波数設定
■ クロック制御レジスタ (ICCR)
ICCR
アドレス
0035BH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
NSF
R/W
EN
R/W
CS4
R/W
CS3
R/W
CS2
R/W
CS1
R/W
CS0
R/W
初期値
00011111B
R/W :リード / ライト可能
- :不定
399
第 20 章 400 kHz I2C インタフェース
■ クロック制御レジスタ (ICCR) の内容
表 20.2-8 クロック制御レジスタの各ビットの機能
ビット名
機能
bit 15
不定
このビットは , 読出し時に常に "0" を戻します。
bit 14
NSF:
I/O パッド
ノイズフィルタ
許可ビット
このビットは SDA, SCL I/O パッドに内蔵したノイズフィルタを有効
にします。
ノイズフィルタは最小 0 ns のパルス幅の単発ノイズから最大 1 ~ 1.5
内部サイクルでのノイズを抑制します。最大値は , I2C 信号 (SDA,
SCL) とマシンクロックとの間の位相関係に依存します。
インタフェースが 100K ビットを超えるデータレートで送受信する場
合 , このビットを "1" にすることを推奨します。
EN:
許可ビット
このビットは , I2C インタフェース動作を許可します。設定はユーザ
のみ可能ですが , クリアはユーザ / ハードウェアで可能です。
"0": インタフェース禁止
"1": インタフェース許可
このビットが 0 のとき , IBSR レジスタの全ビットと IBCR レジスタ
(BER と BEIE ビットは除く ) はクリアされ , モジュールが不可になり ,
I2C ラインが開放のままになります。バスエラーが発生したとき (IBCR
の BER = 1) は , ハードウェアでクリアできます。
( 注意事項 )
これが禁止の場合は , 直ちにインタフェースが送受信を停止しま
す。想定していない状態の間中 , I2C バスを放置します。
CS4 ~ CS0:
クロック
プリスケーラ
ビット
このビットはシリアルビットレートを選択します。インタフェースが
禁止 (EN=0) または EN ビットが同じ書込みアクセスでクリアされる
場合にのみ , このビットの変更が可能です。
bit 13
bit 12
~
bit 8
n
CS4
CS3
CS2
CS1
CS0
1
0
0
0
0
1
ビットレート:φ / 28(+1)
2
0
0
0
1
0
ビットレート:φ / 40(+1)
3
0
0
0
1
1
ビットレート:φ / 52(+1)
4
0
0
1
0
0
ビットレート:φ / 64(+1)
1
1
1
ビットレート:φ / 400(+1)
...
31
1
1
+1 は , ノイズフィルタが許可のとき , 除数に "1" を足すことを意味し
ます。
400
第 20 章 400 kHz I2C インタフェース
■ クロックプリスケーラ設定
CS0 ~ CS4 の計算式は , 下記のようになります。
φ
ビットレート=
N>0 :マシンクロック , ノイズフィルタ無効
n × 12+16
φ
ビットレート=
N>0 :マシンクロック , ノイズフィルタ有効
n × 12+17
表 20.2-9 プリスケーラ設定
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 タイミングを阻害します。
■ 共通マシンクロック周波数
プリスケーラ設定 , 送信結果ビットレートと共通マシンクロック周波数
表 20.2-10 共通マシンクロック周波数
マシンクロック
[MHz]
100 K ビット
( ノイズフィルタ無効 )
n ビットレート [K ビット ]
400 K ビット
( ノイズフィルタ有効 )
n ビットレート [K ビット ]
24
19
98
4
369
20
16
96
3
377
16
12
100
2
390
40/3 = 13.3
10
98
2
325
12
9
96
2
292
64/6 = 10.6
8
94
1
367
10
7
100
1
344
8
6
90
1
275
401
第 20 章 400 kHz I2C インタフェース
20.3
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) の 2 本の双方向バスラインによって通信が行われます。I2C インタフェースは ,
それに対して 2 本のオープンドレイン入出力端子 (SDA, SCL) を有し , ワイヤード論
理を可能にします。
■ スタートコンディション
バスが開放されている状態 (IBSR の BB=0, IBCR の MSS=0) で MSS ビットに "1" を書
き込むと , I2C インタフェースはマスタモードとなり , 同時にスタートコンディション
を発生します。
バスアイドル中 (MSS = 0, BB = 0) に "1" が書き込まれると , スタートコンディション
が発生し , IDAR レジスタの内容 ( アドレスデータを含む ) が送信されます。
バスマスタモード中や割込み状態 (IBCR の MSS = 1, INT = 1) のとき , SCC ビットに
"1" を書き込むことで連続スタートコンディションを発生できます。
バス使用中 (IBSR の BB = 1, TRX = 0, IBCR の MSS = 0, INT = 0) に MSS ビットに
"1" を書き込むと , バスがフリーになり , 送信が開始されるまでインタフェースは待機
されます。
このとき , ライトアクセス ( データ受信 ) でインタフェースがスレーブとしてアドレス
される場合 , 転送が終了し , 再びバスがフリーになった後 , 送信が開始されます。この
ときインタフェースがスレーブとしてデータを送信する場合は , バスがフリーになっ
てもデータ送信は開始されません。このため , インタフェースがスレーブとしてアドレ
スされているか (IBCR の MSS = 0, IBSR の AAS = 1), データバイト転送が成功したか
(IBCR の MSS = 1), 次の割込み時にデータバイトの送信が失敗したかどうか (IBSR の
AL = 1) を調べることが重要になります。
他のいかなる状態で MSS ビットまたは SCC ビットへ "1" を書き込んでも , 意味があり
ません。
■ ストップコンディション
マスタモード (IBCR の MSS=1, INT=1) 時に , MSS ビットに "0" を書き込むと , ストッ
プコンディションを発生し , スレーブモードになります。これ以外での , MSS ビットへ
の "0" の書込みは無視されます。
MSS ビットのクリア後 , 他のマスタがストップコンディションの発生の前に SCL ライ
ンを "L" レベルにすると , インタフェースはストップコンディションを発生しようと試
みます。これは次のバイトが転送された後に発生します。
■ スレーブアドレス検知
スレーブモード中 , スタートコンディションが発生した後 , BB は "1" に設定され , マス
タデバイスからのデータ送信は IDAR レジスタに受信されます。
8 ビットの受信後 , ISMK レジスタの ENSB ビットが "1" のとき , IDAR レジスタの内容
はビットマスクを ISMK に保管するために使用する ISBA レジスタと比較されます。一
致の場合 , AAS ビットは "1" に設定され , アクノリッジ信号がマスタに送信されます。
受信データの bit0(IDAR レジスタの bit0) は反転され , TRX ビットに保管されます。
402
第 20 章 400 kHz I2C インタフェース
ITMK レジスタの ENTB ビットが "1" で , 10 ビットアドレスヘッダ (11110, TA1, TA0,
書込みアクセス ) が検知された場合 , インタフェースはマスタにアクノリッジ信号を送
信し , 最終ビットの反転値を TRX レジスタに保管します。割込みは発生せず , 次の転
送バイトが ITBA レジスタの下位バイトと比較 (ITMK へのビットマスクの保管に使用 )
されます。一致の場合 , アクノリッジ信号がマスタに送信され , ASS ビットがセットさ
れ , 割込みが発生します。
インタフェースがスレーブとしてアドレスされ , 連続スタートコンディションが検知
された場合 , 10 ビットアドレスヘッダ (11110, TA1, TA0, 読出しアクセス ) の受信後に
AAS ビットが設定され , 割込みが発生します。
10 ビット , 7 ビットアドレス用の分割レジスタがあり , それらのビットがマスクされて
いるため , ISMK の ENSB と ITMK の ENTB の設定により , インタフェースを両アドレ
スでアクノリッジできます。受信スレーブアドレス長 (7 または 10 ビット ) は , ITMK
レジスタの RAL ビット (AAS ビットが設定されているときのみ , このビットは有効で
す ) の読出しにより決められます。
マスタとしての使用時のみ , 両ビットを "0" としてインタフェースにノースレーブアド
レスをあてることができます。
全スレーブアドレスビットは対応するマスクレジスタ (ITMK / ISMK) でマスクされま
す。
■ スレーブアドレスマスク
マスクレジスタ (ITMK/ISMK) で "1" に設定したビットのみがアドレス比較用に使用で
きます。その他のビットはすべて無視されます。IBSR レジスタの AAS ビットが "1" の
とき , 受信スレーブアドレスは , ITBA から (10 ビットアドレス受信時で RAL = 1) また
は ISBA から (7 ビットアドレス受信時で RAL = 0) 読み出せます。
ビットマスクがクリアされた場合 , 常にスレーブとしてアドレスされているので , イン
タフェースはバスモニタとして使用できます。ただし , 他のスレーブリスニングがな
かったとしても , スレーブアドレス受信でアクノリッジするため , これは本来のバスモ
ニタではありませんので , 注意してください。
■ アドレッシング
マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ , IDAR
レジスタの内容を MSB から出力します。アドレスデータ送信後 , スレーブからアクノ
リッジ信号を受信すると , 送信データの bit0( 送信後の IDAR レジスタの bit0) を反転し
て , TRX ビットへ格納します。
スレーブによるアクノリッジは IBSR レジスタの LRB ビットの使用をチェックします。
このプロシージャは連続スタートコンディションにも適応します。
書込みアクセスの 10 ビットスレーブをアドレスするために , 2 バイトを送信してくだ
さい。1 バイト目は , ビットシーケンス "11110A9A80" から成り立つ 10 ビットアドレス
ヘッダです。2 バイト目は , 10 ビットスレーブアドレスの下位 8 ビット (A7 ~ A0) か
ら成り立っています。
10 ビットスレーブアドレスは , 読出しアクセス (11110A9A81) での 10 ビットアドレス
ヘッダに続く , 上記バイトシーケンスの送信と連続スタートコンディション (IBCR の
SCC ビット ) により , 読出しアクセスされます。
403
第 20 章 400 kHz I2C インタフェース
アドレスデータバイトの概要 :
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 A8 1 - A7 A6 A5 A4 A3 A2 A1 A0 再起動 - 1 1 1 1 0 A9 A8 1.
■ アービトレーション
マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ
ンが起こります。デバイスの送信データが "1", SDA ライン上のデータが "L" レベルの
場合 , デバイスはアービトレーションを失ったとみなし , AL=1 にセットします。
データバイトの第1ビットでスタートコンディションが検知されたが, インタフェース
が発生できなかったり , なんらかの理由でスタート / ストップコンディションの発生が
失敗した場合 , AL ビットは "1" に設定されます。
アービトレーションロスト検知はMSS, TRXビット共にクリアされ, それ自身のスレー
ブアドレスが送信されたならばアクノリッジできるように , 直ちにデバイスはスレー
ブモードになります。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データバイト受信時は , IBCR
レジスタの ACK ビットによってアクノリッジを送信するかどうかを選択できます。
スレーブ送信側に ( 別のマスタからの読出しアクセス ), マスタ受信側からアクノリッ
ジを受信しなかった場合 , TRX=0 となりスレーブ受信モードになります。これによっ
て , マスタはスレーブが SCL ラインを解放したときに , ストップコンディションを発
生できます。
マスタモード時は , IBSR レジスタの LRB ビットによって , スレーブによるアクノリッ
ジをチェックできます。
404
第 20 章 400 kHz I2C インタフェース
20.4
プログラミングフローチャート
400 kHz I2C インタフェース用の各プログラミングフローチャートを示します。
■ プログラミングフローチャート
図 20.4-1 スレーブアドレッシングとデータ送信例
7 ビットスレーブアドレッシング
データ送信
開始
開始
BER ビットクリア ( 設定の場合 )
インタフェース許可 : EN = 1
書込み用スレーブアドレス
IDAR := データバイト ;
INT := 0
IDAR := sl.address<<1+RW;
MSS := 1; INT := 0
NO
INT=1?
NO
INT=1?
YES
YES
YES
YES
バスエラー
BER=1?
BER=1?
NO
NO
YES
AL=1?
YES
転送再開
AAS か
どうか
確認
AL=1?
転送再開
AAS か
どうか
確認
NO
NO
ACK?
ACK?
(LRB=0?)
NO
(LRB=0?)
NO
YES
YES
データ送信
準備完了
最終
バイト
転送 ?
YES
NO
ACK なしスレーブ
連続スタートまたは
ストップコンディ
ション発生
転送完了
連続スタートまたは
ストップコンディ
ション発生
405
第 20 章 400 kHz I2C インタフェース
図 20.4-2 データ受信例
開始
読出し用スレーブアドレス
IBCR の ACK ビットクリア ( スレーブ
からの読出しが最終バイトのとき ):
INT = 0
NO
INT=1?
YES
YES
BER=1?
NO
NO
最終
バイト
転送 ?
YES
転送完了
連続スタートまたは
ストップコンディ
ション発生
406
バスエラー
再許可 IF
第 21 章
シリアル I/O
シリアル I/O の機能と動作について説明します。
21.1 シリアル I/O の概要
21.2 シリアル I/O のレジスタ
21.3 シリアル I/O プリスケーラ (CDCR4)
21.4 シリアル I/O の動作
407
第 21 章 シリアル I/O
21.1
シリアル I/O の概要
シリアル I/O の動作モードには , 以下の 2 種類があります。
• 内部シフトクロックモード……内部クロックに同期してデータ転送を行います。
• 外部シフトクロックモード……外部端子 (SCK4) から入力されるクロックに同期
してデータ転送を行います。このモードで外部端
子 (SCK4) を共有している汎用ポートを操作する
ことにより , CPU の命令による転送動作も可能で
す。
■ シリアル I/O のブロックダイヤグラム
クロック同期によるデータ転送を可能にするシリアル I/O インタフェースのブロック
ダイヤグラムを示します。このインタフェースは 8 ビット× 1 チャネル構成で , データ
は LSB/MSB から転送できます。
図 21.1-1 拡張シリアル I/O インタフェースのブロックダイヤグラム
内部データバス
(MSB ファースト )D0 ~ D7
D7 ~ D0 (LSB ファースト )
転送方向選択
SIN3
SIN4
リード
ライト
SDR4 ( シリアルデータレジスタ )
SOT4
SOT3
SCK3
SCK4
シフトクロック
カウンタ
制御回路
内部クロック
2
SMD2
1
0
SMD1 SMD0
SIE
SIR
BUSY
STOP
STRT MODE
割込み
要求
内部データバス
408
BDS
SOE
SCOE
第 21 章 シリアル I/O
21.2
シリアル I/O のレジスタ
シリアル I/O のレジスタには , 次の 2 つがあります。
• シリアルモード制御ステータスレジスタ (SMCS4)
• シリアルデータレジスタ (SDR4)
■ シリアル I/O のレジスタ
図 21.2-1 シリアル I/O のレジスタ
シリアルモード制御
ステータスレジスタ (SMCS4)
アドレス :
00002DH
アドレス :
00002CH
bit15
bit14
SMD2 SMD1
bit13
bit12
bit11
bit10
bit9
bit8
初期値
00000010B
SMD0
SIE
SIR
BUSY
STOP
STRT
R/W
R/W
R/W
R/W
R/W
R
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
-
-
MODE
R/W
BDS
R/W
SOE
R/W
SCOE
R/W
XXXX0000B
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
-
-
-
-
-
-
シリアルデータレジスタ (SDR4)
アドレス :
00002EH
R/W
R
X
−
bit7
bit6
bit5
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
:リード / ライト可能
:リードオンリ
:不定
:未定義
409
第 21 章 シリアル I/O
21.2.1
シリアルモード制御ステータスレジスタ (SMCS4)
シリアルモード制御ステータスレジスタ (SMCS4) は , シリアル I/O 転送モードを制
御するレジスタです。
■ シリアルモード制御ステータスレジスタの上位バイト (SMCS4)
図 21.2-2 シリアルモード制御ステータスレジスタ ( 上位バイト ) の構成
bit15
アドレス:
00002D H
bit14
SMD2 SMD1
R/W
R/W
bit13
bit12
bit11
bit10
bit9
bit8
SMD0
SIE
SIR
BUSY
STOP
STRT
R/W
R/W
R/W
R
R/W
R/W
STRT
0
1
STOP
0
1
BUSY
0
1
SIR
0
1
SIE
0
1
S\MD2 ~
SMD0
R/W : リード / ライト可能
R
: リードオンリ
: 初期値
410
000
001
010
011
100
101
110
111
初期値
00000010 B
スタートビット
"0" 書込みは影響なし。"0" は常に読出し。
MODE=0 のとき , "1" 書込みはシリアル送信を起動。
ストップビット
通常動作
転送停止
転送ステータスビット
転送停止またはシリアルデータレジスタ R/W 待機状態
シリアル転送はアクティブ
シリアル I/O 割込み要求ビット
割込みは要求されません
SIE=1 のとき , 割込み要求は CPU へ出されます
シリアル I/O 割込みイネーブルビット
シリアル I/O 割込み禁止
シリアル I/O 割込み許可
シフトクロックモード選択ビット
プリスケーラ出力は 2 分周
プリスケーラ出力は 4 分周
プリスケーラ出力は 16 分周
プリスケーラ出力は 32 分周
プリスケーラ出力は 64 分周
外部シフトクロックモード
プリスケーラ出力は 8 分周
プリスケーラ出力は 128 分周
第 21 章 シリアル I/O
■ シリアルモード制御ステータスレジスタの下位バイト (SMCS4)
図 21.2-3 シリアルモード制御ステータスレジスタ ( 下位バイト ) の構成
アドレス:
00002C H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
-
-
-
-
MODE
BDS
SOE
SCOE
-
-
-
-
R/W
R/W
R/W
R/W
SCOE
0
1
SOE
0
1
BDS
0
1
R/W : リード / ライト可能
X
: 不定
: 未定義
: 初期値
MODE
初期値
XXXX0000 B
シフトクロック出力許可ビット
汎用ポート端子 , 各命令を転送
シフトクロック出力端子
シリアル出力許可ビット
汎用ポート端子
シリアルデータ出力
ビット方向選択ビット
LSB ファースト
MSB ファースト
シリアルモード選択ビット
0
STRT = 1 のとき , 転送開始
1
シリアルデータレジスタが読出し / 書込みされる場合
転送開始
411
第 21 章 シリアル I/O
■ シリアルモード制御ステータスレジスタ (SMCS4) のビット機能
表 21.2-1 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ( 1 / 2 )
ビット名
bit15
機能
SMD0, SMD1,
SMD2:
シフトクロック
モード選択
ビット
表 21.2-2 を参照してください。
SIE:
シリアル I/O
割込み許可
ビット
シリアル I/O の割込み要求を前図に示すとおりに制御します。リセットにより "0"
に初期化されます。本ビットは , 読出しおよび書込みが可能です。
SIR:
シリアル I/O
割込み要求
ビット
シリアル転送が終了すると "1" にセットされ , 割込み許可時 (SIE=1) にこのビット
が "1" になると , CPU へ割込み要求を発生します。クリア条件は MODE ビットに
よって異なります。MODE ビットが "0" のとき , SIR ビットへの "0" 書込みによ
りクリアされます。MODE ビットが "1" のとき , SDR4 の読出しまたは書込み動
作によりクリアされます。MODE ビットの値にかかわらずリセットまたは STOP
ビットへの "1" 書込み動作によりクリアされます。
本ビットに "1" を書き込んでも意味がありません。リードモディファイライト系
命令の読出し時は , 常に "1" が読み出されます。
BUSY:
転送状態ビット
シリアル転送が実行中か否かを示すビットです。
リセットにより "0" に初期化されます。本ビットは , 読出しのみ可能です。
STOP:
ストップビット
シリアル転送を強制的に中断させるビットです。本ビットを "1" にすると
STOP=1 による停止状態となります。リセットにより "1" に初期化されます。本
ビットは , 読出しおよび書込みが可能です。
STRT:
スタートビット
シリアル転送の起動を行うビットです。MODE ビットが 0 の状態で "1" を書くこ
とによって転送が開始されます。MODE ビットに "1" を設定し , STRT ビットに
も "1" を設定した場合 , シリアルデータレジスタにデータを書き込むことにより ,
転送が開始します。
シリアル転送動作中およびシリアルシフトレジスタ R/W 待機中の "1" の書込みは
無視され , "0" の書込みは意味がありません。
読出し時には常に "0" が読み出されます。
bit3
MODE:
シリアルモード
選択ビット
このビットにより停止状態からの転送動作の起動条件の選択を行います。ただ
し , 動作中の書換えは禁止します。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能
です。インテリジェント I/O サービスを起動する際には "1" にしておいてくださ
い。
bit2
BDS:
転送方向選択
ビット
シリアルデータの入出力時に , 最下位ビット側から先に転送するか (LSB ファー
スト ), 最上位ビット側から先に転送するか (MSB ファースト ) を , 前図に示すと
おりに選択します。転送方向選択ビットは , SDR4 にデータを書き込む前に , 設定
しておいてください。
SOE:
シリアル出力
許可ビット
シリアル I/O 用出力外部端子 (SOT4) の出力を制御します。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込み
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit1
412
が可能です。
第 21 章 シリアル I/O
表 21.2-1 シリアルモード制御ステータスレジスタ (SMCS4) のビット機能 ( 2 / 2 )
ビット名
bit0
機能
SCOE:
シフトクロック
出力許可ビット
シリアルクロック用入出力外部端子 (SCK4) の出力を図 21.2-3 に示すとおりに制
御します。
外部シフトクロックモードで命令ごとに転送を行うときは "0" に設定してくださ
い。
リセットにより "0" に初期化されます。本ビットは , 読出しおよび書込みが可能
です。
■ シフトクロック選択
シフトクロックモード選択ビットはシリアルシフトクロックモードを表 21.2-2 に示す
とおりに選択します。第 2 パートがシリアル I/O プリスケーラレジスタ (CDCR) に関連
付けられます。
詳細は , 「21.3 シリアル I/O プリスケーラ (CDCR4)」を参照してください。
表 21.2-2 シリアルシフトクロックモードの設定
SMD2
SMD1
SMD0
φ=24MHz
div=6
φ=20MHz
div=4
φ=16MHz
div=4
φ=8MHz
div=4
φ=4MHz
div=4
0
0
0
2 MHz
2.5 MHz
2 MHz
1 MHz
500 kHz
0
0
1
1 MHz
1.25 MHz
1 MHz
500 kHz
250 kHz
0
1
0
250 kHz
312.5 kHz
250 kHz
125 kHz
62.5 kHz
0
1
1
125 kHz
156.25 kHz
125 kHz
62.5 kHz
31.25 kHz
1
0
0
62.5kHz
78.125 kHz
62.5 kHz
31.25 kHz
15.625 kHz
1
0
1
1
1
0
500 kHz
625 kHz
500 kHz
250 kHz
125 kHz
1
1
1
31.25 kHz
39.1 kHz
31.25 kHz
15.625 kHz
7812.5 Hz
外部シフトクロックモード
表 21.2-3 シリアル I/O プリスケーラレジスタの分周比
div
MD
DIV3
DIV2
DIV1
DIV0
推奨マシンサイクル
3
1
0
0
1
0
6 MHz
4
1
0
0
1
1
8 MHz
5
1
0
1
0
0
10 MHz
6
0
0
1
0
1
12 MHz
7
0
0
1
1
0
14 MHz
8
1
0
1
1
1
16 MHz
SMD ビットはリセットにより "000B" に初期化されます。本ビットの転送中の書換えは
禁止します。
クロック選択で SCOE =0 とし , SCK4 端子を共有しているポートを操作することによっ
て命令ごとにシフトさせることも可能です。
413
第 21 章 シリアル I/O
21.2.2
シリアルデータレジスタ (SDR4)
シリアルシフトデータレジスタ (SDR4) は , シリアル I/O 転送データを格納するシリ
アルデータレジスタで , 転送中は読み書き不可です。
■ シリアルデータレジスタ (SDR4)
図 21.2-4 シリアルデータレジスタ (SDR4)
SDR4
アドレス :
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
00002EH
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
414
第 21 章 シリアル I/O
21.3
シリアル I/O プリスケーラ (CDCR4)
シリアル I/O プリスケーラ (CDCR4) は , シリアル I/O のシフトクロックを提供しま
す。
シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。
シリアル I/O は , この通信プリスケーラによって種々のマシンクロックに対して一定
のボーレートが得られるように設計されています。CDCR4 レジスタは , マシンク
ロックの分周を制御するレジスタです。
■ シリアル I/O プリスケーラ (CDCR4)
図 21.3-1 シリアル I/O プリスケーラ (CDCR4) の構成
アドレス:
00002FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
MD
-
NEG
-
DIV3
DIV2
DIV1
DIV0
R/W
-
R/W
-
R/W
R/W
R/W
R/W
DIV3~
DIV0
0000
0001
0010
0011
0100
0101
0110
0111
1xxx
NEG
0
1
R/W : リード / ライト可能
X
: 不定
: 未定義
MD
0
1
初期値
0 X 0 X 0 0 0 0B
マシンクロック分周比ビット
分周比= 1
分周比= 2
分周比= 3
分周比= 4
分周比= 5
分周比= 6
分周比= 7
分周比= 8
予約
ネガティブクロック動作ビット
通常動作
シフトクロック信号が反転
マシンクロック分周モード選択ビット
シリアル I/O プリスケーラ禁止
シリアル I/O プリスケーラ許可
: 初期値
<注意事項>
分周比を変えた場合はクロックの安定時間として2周期分の時間を置いてから通信を行っ
てください。
415
第 21 章 シリアル I/O
21.4
シリアル I/O の動作
拡張シリアル I/O インタフェースは , シリアルモード制御ステータスレジスタ
(SMCS), シフトレジスタ (SDR) により構成されます。8 ビットのシリアルデータの
入出力に使用します。
■ シリアル I/O の動作
シリアルデータの入出力は, シフトレジスタの内容がシリアルシフトクロック (外部ク
ロック , 内部クロック ) の立下りに同期してビット直列にシリアル出力端子 (SOT4 端
子 ) に出力され , 立上りに同期してシリアル入力端子 (SIN4 端子 ) からビット直列に
SDR ( シリアルシフトデータレジスタ ) に入力されます。シフトの方向 (MSB からの転
送または LSB からの転送 ) は , SMCS ( シリアルモード制御ステータスレジスタ ) の方
向指定ビット (BDS) により指定できます。
転送が終了するとシリアルモード制御ステータスレジスタ (SMCS) の MODE ビットに
よって停止状態またはデータレジスタ R/W 待機状態に入ります。各々の状態から転送
状態に移るには , それぞれ次のことを行います。
• 停止状態からの復帰のときは STOP ビットに "0", STRT ビットに "1" を書き込みま
す (STOP と STRT は同時設定が可能です ) 。
• シリアルシフトデータレジスタR/W待機状態からの復帰時はデータレジスタを読出
しまたは書込みします。
416
第 21 章 シリアル I/O
21.4.1
シフトクロック
シフトクロックには内部シフトクロックモード , 外部シフトクロックモードの 2 種
類があり , SMCS の設定で指定します。モードの切換えは , シリアル I/O が停止した
状態で行ってください。停止状態の確認は , BUSY ビットを読み出すことで可能で
す。
■ 内部シフトクロックモード
内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク
ロックが SCK4 端子より出力可能です。データが 1 クロックごとに 1 ビット転送され
ます。転送の周波数と速度 ( ボーレート ) は以下のようになります。
転送周波数 (Hz)
転送速度 (s)
=
=
A div
A div
A は SMCS の SMD ビットで示す分周比で , 21, 22, 23, 24, 25, 26, 27 です。
φ はマシン周波数です。
■ 外部シフトクロックモード
SCK4 端子から入力される外部シフトクロックに同期して , データが 1 クロックごとに
1 ビット転送されます。転送速度は DC から 1/ (5 マシンサイクル ) まで可能です。例
えば , "1 マシンサイクル =0.1μs" のとき , 2MHz まで可能です。
データビットはソフトウェアによって転送することもでき , 次のような設定をするこ
とによって実現します。
外部シフトクロックモードを選択し , SMCS の SCOE ビットを "0" に設定します。さら
に , SCK4 端子を共有しているポートの方向レジスタに "1" を書き込み , ポートを出力
モードに設定します。以上の設定をした後 , ポートのデータレジスタ (PDR) に "1", "0"
を書き込むと , SCK4 端子に出力されるポートの値を外部クロックとして取り込み , 転
送動作を行います。シフトクロックの開始は "H" からスタートさせてください。
<注意事項>
シリアル I/O 動作中の SMCS, SDR への書込みは禁止です。
417
第 21 章 シリアル I/O
21.4.2
シリアル I/O の動作状態
シリアル I/O の動作状態には , 次の 4 種類があります。
• STOP 状態
• 停止状態
• SDR の R/W 待機状態
• 転送状態
■ シリアル I/O の動作状態
● STOP 状態
STOP 状態はリセット時または SMCS の STOP ビットに "1" を書き込んだときに初期化
されます。シフトカウンタが初期化されると , SIR=0 となります。
STOP 状態からの復帰は , STOP=0, STRT=1 ( 同時設定可能 ) とすることによって行われ
ます。STOP ビットは STRT ビットより優先ビットですので STOP=1 のとき STRT=1 と
しても転送動作は行われません。
● 停止状態
MODE ビットが "0" のとき , 転送が終了したことによって SMCS が BUSY=0, SIR=1 と
なり , カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にす
ると転送動作が再開されます。
● シリアルデータレジスタ R/W 待機状態
SMCS の MODE ビットが "1" のとき , シリアル転送が終了すると , BUSY=0, SIR=1 と
なりシリアルデータレジスタ R/W 待機状態に入ります。割込み許可フラグが設定され
ると本ブロックより割込み信号を出します。
R/W 待機状態からの復帰はシリアルデータレジスタが読み出されたり , 書き込まれた
りすると BUSY=1 となり転送動作が再開されます。
● 転送状態
BUSY=1 でシリアル転送を行っている状態です。MODE ビットによりそれぞれ停止状
態および R/W 待機状態に遷移します。
図 21.4-1 に , 動作遷移を示します。
418
第 21 章 シリアル I/O
図 21.4-1 拡張シリアル I/O インタフェース動作遷移図
リセット
STOP=0 & STRT=0
転送終了
STOP
STRT=0, BUSY=0
MODE=0
STOP=0
&
STRT=1
MODE=0
&
STOP=0
&
終了
STRT=0, BUSY=0
STOP=1
STOP=1
転送動作
STOP=1
STOP=0
&
STRT=1
MODE=1 & 終了 & ST OP=0
シリアルデータレジスタ R/W 待機
STRT=1, BUSY=1
STRT=1, BUSY=0
MODE=1
SDR R/W & MODE=1
図 21.4-2 シリアルデータレジスタへのリード , ライト概念図
シ
リ
ア
ル
デ
|
タ
データバス
SOT4
SOT3
SIN4
SIN3
データバス
リード
ライト
割込み出力
拡張 I/O シリアル
インタフェース
リード
ライト
➁
➀
割込み入力
データバス
CPU
割込みコントローラ
① MODE=1のとき, シフトクロックカウンタによって転送終了し, SIR=1となってリー
ド / ライト待機状態に入ります。SIE ビットが "1" ならば割込み信号を発生します。
ただし , SIE がインアクティブのときや STOP へ "1" を書き込むことによる転送中断
のときは割込み信号は発生しません。
② シリアルデータレジスタがリード / ライトされると , 割込み要求はクリアされシリ
アル転送を開始します。
419
第 21 章 シリアル I/O
21.4.3
シフト動作のスタート / ストップタイミング
シフト動作をスタートする場合は , SMCS の STOP ビットを "0", STRT ビットを
"1" に設定します。
シフト動作のストップタイミングについては , STOP=1 によって停止する場合と , 転
送終了によって停止する場合があります。
• STOP=1 によって停止→ MODE ビットにかかわらず SIR=0 のまま停止
• 転送終了で停止→ MODE ビットにかかわらず SIR=1 となり停止
BUSY ビットは MODE ビットにかかわらずシリアル転送状態のとき "1" となり , 停
止状態または R/W 待機状態のとき "0" となります。転送状態を確認したいときはこ
のビットを読み出してください。
■ シフト動作のスタート / ストップタイミング
● 内部シフトクロックモード (LSB ファースト )
図 21.4-3 シフト動作のスタート / ストップタイミング ( 内部クロック )
SCK4
"1" 出力
( 転送スタート )
STRT
( 転送終了 )
MODE=0 のとき
BUSY
SOT4
DO0
DO7 ( データ保持 )
● 外部シフトクロックモード (LSB ファースト )
図 21.4-4 シフト動作のスタート / ストップタイミング ( 外部クロック )
SCK4
( 転送スタート )
STRT
( 転送終了 )
MODE=0 のとき
BUSY
SOT4
420
DO0
DO7 ( データ保持 )
第 21 章 シリアル I/O
● 外部シフトクロックモードで命令シフトを行ったとき (LSB ファースト )
図 21.4-5 シフト動作のスタート / ストップタイミング
( 外部シフトクロックモードで命令シフトを実行時 )
SCK4
PDR の SCK ビット "0"
STRT
PDR の SCK ビット "1"
( 転送終了 )
PDR の SCK ビット "0"
MODE=0 のとき
BUSY
DO7 ( データ保持 )
DO6
SOT4
*:命令シフトでは , PDR の SCK に対応するビットに "1" が書き込まれたとき "H" が出力され , "0" が書き
込まれたとき "L" が出力されます ( ただし , 外部シフトクロックモード選択で , SCOE=0 のとき ) 。
● STOP=1 による停止 (LSB ファースト , 内部クロック時 )
図 21.4-6 STOP ビットを "1" としたときのストップタイミング
"1" 出力
SCK4
( 転送終了 )
( 転送スタート )
MODE=0 のとき
STRT
BUSY
STOP
SOT4
DO3
DO4
DO5 ( データ保持 )
( 注意事項 ) DO7 ~ DO0 は出力データを示します。
シリアルデータの転送中は , シフトクロックの立下りエッジでシリアル出力端子
(SOT4) からのデータが出力され , 立上りエッジでシリアル入力端子 (SIN4) のデータが
入力されます。
421
第 21 章 シリアル I/O
図 21.4-7 シリアルデータの入出力シフトタイミング
❍ LSB ファースト (BDS ビットが "0" のとき )
SCK4
SIN 入力
SIN4
DI0
DI1
DI2
DI3
SOT 出力
DI4
DI5
DI6
DI7
SOT4
DO0
DO1
DO2
DO4
DO5
DO6
DO7
DO3
❍ LSB ファースト (BDS ビットが "1" のとき )
SCK4
SIN4
SIN 入力
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
DO4
DO3
DO2
DO1
DO0
SOT 出力
SOT4
422
DO7
DO6
DO5
第 21 章 シリアル I/O
21.4.4
拡張シリアル I/O インタフェースの割込み機能
拡張シリアル I/O インタフェースは , CPU に対し割込み要求を発生できます。デー
タの転送終了時に割込みフラグである SIR ビットがセットされ , 割込みを許可する
SMCS の SIE ビットが "1" のとき , CPU へ割込み要求を出力します。
■ 拡張シリアル I/O インタフェースの割込み機能
図 21.4-8 拡張シリアル I/O インタフェースの割込み信号出力タイミング
SCK4
(転送終了)
BUSY
(転送開始)
SIE=1
SIR
SDR RD/WR
SOT4
DO7 (データ保持)
DO6
DO0
MODE=1の場合
SCK4
(転送終了)
BUSY
SIE=1
SIR
SDR RD/WR
SOT4
DO6
DO7 (データ保持)
MODE=0の場合
423
第 21 章 シリアル I/O
424
第 22 章
CAN コントローラ
CAN コントローラの機能と動作について説明しま
す。
( 注意事項 )MB90F947, MB90F949 および
MB90V390HA においては , クロック変
調と CAN を同時に使用しないでくださ
い。
MB90F946A, MB90947A,
MB90F947A, MB90F949A および
MB90V390HB においては , 問題ありま
せん。
22.1 CAN コントローラの特長
22.2 CAN コントローラのブロックダイヤグラム
22.3 全体制御レジスタの一覧
22.4 メッセージバッファ (ID レジスタ ) の一覧
22.5 メッセージバッファ (DLC/ データレジスタ ) の一覧
22.6 CAN コントローラのレジスタ分類
22.7 CAN コントローラの送信
22.8 CAN コントローラの受信
22.9 CAN コントローラの受信フローチャート
22.10 CAN コントローラの使用方法
22.11 メッセージバッファ (x) による送信方法
22.12 メッセージバッファ (x) による受信方法
22.13 マルチレベルメッセージバッファの構成の決定
22.14 CAN ダイレクトモードレジスタ (CDMR)
22.15 CAN コントローラの使用上の注意
425
第 22 章 CAN コントローラ
22.1
CAN コントローラの特長
CAN コントローラは , 16 ビットマイクロコントローラ (F2MC-16LX) 内に一体化さ
れたモジュールです。CAN ( コントローラエリアネットワーク ) は自動車用コント
ローラ間のシリアル通信用の標準プロトコルであり工業分野で広く使用されている
ものです。
■ CAN コントローラの特長
CAN コントローラの特長は次のとおりです。
● CAN 仕様バージョン 2.0 パート A および B に適合しています。
標準フレームおよび拡張フレームフォーマットでの送信 / 受信をサポートしています。
● リモートフレームの受信によるデータフレームの送信をサポートしています。
● 16 個の送信 / 受信メッセージバッファ
29 ビットの ID および 8 バイトデータ
マルチ・レベル・メッセージ・バッファ構造
● フルビット比較 , フルビットマスクおよび部分的ビットマスクフィルタリングをサポート
しています。
標準フレームまたは拡張フレームフォーマットのいずれかで 2 個のアクセプタンスマ
スクレジスタを提供します。
● ビット速度は10kbps~1Mbpsでプログラマブルです (1Mbpsでご使用の場合, マシンクロッ
クは 8MHz 以上で動作する必要があります ) 。
426
第 22 章 CAN コントローラ
22.2
CAN コントローラのブロックダイヤグラム
図 22.2-1 に , CAN コントローラのブロックダイヤグラムを示します。
■ CAN コントローラのブロックダイヤグラム
図 22.2-1 CAN コントローラのブロックダイヤグラム
F2MC-16X バス
クロック
TQ( 動作クロック )
プリスケーラ
1 ~ 64 周波数分割
ビットタイミング発生
SYNC, TSEG1, TSEG2
PSC
TS1
BTR
TS2
RSJ
TOE
TS
RS
CSR
HALT
NIE
NT
NS1, NS0
IDLE, INT, SUSPND,
送信 , 受信
ERR, OVRLD
バス
ステート
マシン
ノード
ステータス
変化割込み
ノードステータス
変化割込み発生
エラー
制御
RTEC
送信 / 受信
シーケンサ
BVALR
TBFx, クリア
送信バッファ
X 判定
TREQR
TBFx
TDLC RDLC
TBFx
エラーフ
レーム発生
データ アクセプタンス
カウンタ フィルタ制御
過負荷
フレーム
発生
IDSEL
BITER, STFER,
CRCER, FRMER,
ACKER
TCANR
出力ド
ライバ
ARBLOST
TX1
TRTRR
TCR
TBFx, セット , クリア
送信完了
割込み発生
TIER
RCR
送信完了
割込み
RBFx, セット
受信完了
割込み
RBFx, TBFx, セット , クリア
RBFx, セット
ACK
発生
CRC
発生
TDLC
CRCER
RDLC
受信完了
割込み発生
RIER
RRTRR
スタッ
フィング
送信シフト
レジスタ
RFWTR
CRC 発生 / エラー
チェック
STFER
デスタッフィング /
スタッフィングエ
ラーチェック
受信シフト
レジスタ
IDSEL
ROVRR
ARBLOST
AMSR
AMR0
0
1
アクセプタンス
フィルタ
受信バッファ x
判定
BITER
ビットエラー
チェック
ACKER
確認エラー
チェック
AMR1
DTR0 ~ DTR15
DLCR0 ~
DLCR15
IDR0 ~ IDR15
RAM
RBFx
RAM アドレス
発生
アービトレー
ションチェック
FRMER
フォームエラー
チェック
PH1
入力
ラッチ
RX1
RBFx, TBFx, RDLC, TDLC, IDSEL
LEIR
IDER
427
第 22 章 CAN コントローラ
22.3
全体制御レジスタの一覧
表 22.3-1 に , 全体制御レジスタの一覧を示します。
■ 全体制御レジスタの一覧
表 22.3-1 全体制御レジスタの一覧 ( 1 / 2 )
アドレス
レジスタ
略号
アクセス
初期値
メッセージバッファ
有効レジスタ
BVALR
R/W
00000000 00000000B
送信要求レジスタ
TREQR
R/W
00000000 00000000B
送信解除レジスタ
TCANR
W
00000000 00000000B
送信完了レジスタ
TCR
R/W
00000000 00000000B
受信完了レジスタ
RCR
R/W
00000000 00000000B
リモート要求受信
レジスタ
RRTRR
R/W
00000000 00000000B
受信オーバランレジスタ
ROVRR
R/W
00000000 00000000B
受信割込み許可レジスタ
RIER
R/W
00000000 00000000B
制御ステータスレジスタ
CSR
R/W
00XXX000 0XXXX0X1B
ラストイベント
表示レジスタ
LEIR
R/W
XXXXXXXX 000X0000B
受信および送信
エラーカウンタ
RTEC
R
00000000 00000000B
ビットタイミング
レジスタ
BTR
R/W
X1111111 11111111B
IDE レジスタ
IDER
R/W
XXXXXXXX XXXXXXXXB
TRTRR
R/W
00000000 00000000B
CAN1
000080H
000081H
000082H
000083H
000084H
000085H
000086H
000087H
000088H
000089H
00008AH
00008BH
00008CH
00008DH
00008EH
00008FH
003900H
003901H
003902H
003903H
003904H
003905H
003906H
003907H
003908H
003909H
00390AH
00390BH
428
送信 RTR レジスタ
第 22 章 CAN コントローラ
表 22.3-1 全体制御レジスタの一覧 ( 2 / 2 )
アドレス
レジスタ
略号
アクセス
初期値
RFWTR
R/W
XXXXXXXX XXXXXXXXB
TIER
R/W
00000000 00000000B
CAN1
00390CH
00390DH
00390EH
00390FH
リモートフレーム
受信待機レジスタ
送信割込み許可レジスタ
003910H
003911H
003912H
XXXXXXXX XXXXXXXXB
アクセプタンスマスク
選択レジスタ
AMSR
R/W
XXXXXXXX XXXXXXXXB
003913H
003914H
003915H
003916H
XXXXXXXX XXXXXXXXB
アクセプタンスマスク
レジスタ 0
AMR0
R/W
XXXXXXXX XXXXXXXXB
003917H
003918H
003919H
00391AH
00391BH
XXXXXXXX XXXXXXXXB
アクセプタンスマスク
レジスタ 1
AMR1
R/W
XXXXXXXX XXXXXXXXB
429
第 22 章 CAN コントローラ
22.4
メッセージバッファ (ID レジスタ ) の一覧
表 22.4-1 に , メッセージバッファ (ID レジスタ ) の一覧を示します。
■ メッセージバッファ (ID レジスタ ) の一覧
表 22.4-1 メッセージバッファ (ID レジスタ ) の一覧 ( 1 / 2 )
アドレス
CAN1
レジスタ
略号
アクセス
--
R/W
初期値
003800H
~
汎用 RAM
XXXXXXXXB ~ XXXXXXXXB
00381FH
003820H
003821H
003822H
XXXXXXXX XXXXXXXXB
ID レジスタ 0
IDR0
R/W
XXXXXXXX XXXXXXXXB
003823H
003824H
003825H
003826H
XXXXXXXX XXXXXXXXB
ID レジスタ 1
IDR1
R/W
XXXXXXXX XXXXXXXXB
003827H
003828H
003829H
00382AH
XXXXXXXX XXXXXXXXB
ID レジスタ 2
IDR2
R/W
XXXXXXXX XXXXXXXXB
00382BH
00382CH
00382DH
00382EH
XXXXXXXX XXXXXXXXB
ID レジスタ 3
IDR3
R/W
XXXXXXXX XXXXXXXXB
00382FH
003830H
003831H
003832H
XXXXXXXX XXXXXXXXB
ID レジスタ 4
IDR4
R/W
XXXXXXXX XXXXXXXXB
003833H
003834H
003835H
003836H
003837H
430
XXXXXXXX XXXXXXXXB
ID レジスタ 5
IDR5
R/W
XXXXXXXX XXXXXXXXB
第 22 章 CAN コントローラ
表 22.4-1 メッセージバッファ (ID レジスタ ) の一覧 ( 2 / 2 )
アドレス
CAN1
レジスタ
略号
アクセス
003838H
003839H
00383AH
XXXXXXXX XXXXXXXXB
ID レジスタ 6
IDR6
R/W
XXXXXXXX XXXXXXXXB
00383BH
00383CH
00383DH
00383EH
XXXXXXXX XXXXXXXXB
ID レジスタ 7
IDR7
R/W
XXXXXXXX XXXXXXXXB
00383FH
003840H
003841H
003842H
XXXXXXXX XXXXXXXXB
ID レジスタ 8
IDR8
R/W
XXXXXXXX XXXXXXXXB
003843H
003844H
003845H
003846H
XXXXXXXX XXXXXXXXB
ID レジスタ 9
IDR9
R/W
XXXXXXXX XXXXXXXXB
003847H
003848H
003849H
00384AH
XXXXXXXX XXXXXXXXB
ID レジスタ 10
IDR10
R/W
XXXXXXXX XXXXXXXXB
00384BH
00384CH
00384DH
00384EH
XXXXXXXX XXXXXXXXB
ID レジスタ 11
IDR11
R/W
XXXXXXXX XXXXXXXXB
00384FH
003850H
003851H
003852H
XXXXXXXX XXXXXXXXB
ID レジスタ 12
IDR12
R/W
XXXXXXXX XXXXXXXXB
003853H
003854H
003855H
003856H
XXXXXXXX XXXXXXXXB
ID レジスタ 13
IDR13
R/W
XXXXXXXX XXXXXXXXB
003857H
003858H
003859H
00385AH
XXXXXXXX XXXXXXXXB
ID レジスタ 14
IDR14
R/W
XXXXXXXX XXXXXXXXB
00385BH
00385CH
00385DH
00385EH
00385FH
初期値
XXXXXXXX XXXXXXXXB
ID レジスタ 15
IDR15
R/W
XXXXXXXX XXXXXXXXB
431
第 22 章 CAN コントローラ
22.5
メッセージバッファ (DLC/ データレジスタ ) の一覧
表 22.5-1 に , メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧を示し
ます。
■ メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧
表 22.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 ( 1 / 2 )
アドレス
CAN1
003860H
003861H
003862H
003863H
003864H
003865H
003866H
003867H
003868H
003869H
00386AH
00386B H
00386C H
00386DH
00386EH
00386FH
003870H
003871H
003872H
003873H
003874H
003875H
003876H
003877H
003878H
003879H
00387AH
00387B H
00387C H
00387DH
432
レジスタ
略号
アクセス
初期値
DLC レジスタ 0
DLCR0
R/W
XXXXXXXXB
DLC レジスタ 1
DLCR1
R/W
XXXXXXXXB
DLC レジスタ 2
DLCR2
R/W
XXXXXXXXB
DLC レジスタ 3
DLCR3
R/W
XXXXXXXXB
DLC レジスタ 4
DLCR4
R/W
XXXXXXXXB
DLC レジスタ 5
DLCR5
R/W
XXXXXXXXB
DLC レジスタ 6
DLCR6
R/W
XXXXXXXXB
DLC レジスタ 7
DLCR7
R/W
XXXXXXXXB
DLC レジスタ 8
DLCR8
R/W
XXXXXXXXB
DLC レジスタ 9
DLCR9
R/W
XXXXXXXXB
DLC レジスタ 10
DLCR10
R/W
XXXXXXXXB
DLC レジスタ 11
DLCR11
R/W
XXXXXXXXB
DLC レジスタ 12
DLCR12
R/W
XXXXXXXXB
DLC レジスタ 13
DLCR13
R/W
XXXXXXXXB
DLC レジスタ 14
DLCR14
R/W
XXXXXXXXB
第 22 章 CAN コントローラ
表 22.5-1 メッセージバッファ (DLC レジスタとデータレジスタ ) の一覧 ( 2 / 2 )
アドレス
CAN1
00387EH
00387FH
003880H
~
003887H
003888H
~
00388FH
003890H
~
003897H
003898H
~
00389FH
0038A0H
~
0038A7H
0038A8H
~
0038AFH
0038B0 H
~
0038B7 H
0038B8 H
~
0038BFH
0038C0 H
~
0038C7 H
0038C8 H
~
0038CFH
0038D0H
~
0038D7H
0038D8H
~
0038DFH
0038E0 H
~
0038E7 H
0038E8 H
~
0038EFH
0038F0H
~
0038F7H
0038F8H
~
0038FFH
レジスタ
略号
アクセス
初期値
DLC レジスタ 15
DLCR15
R/W
XXXXXXXXB
データレジスタ 0
(8 バイト )
DTR0
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 1
(8 バイト )
DTR1
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 2
(8 バイト )
DTR2
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 3
(8 バイト )
DTR3
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 4
(8 バイト )
DTR4
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 5
(8 バイト )
DTR5
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 6
(8 バイト )
DTR6
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 7
(8 バイト )
DTR7
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 8
(8 バイト )
DTR8
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 9
(8 バイト )
DTR9
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 10
(8 バイト )
DTR10
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 11
(8 バイト )
DTR11
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 12
(8 バイト )
DTR12
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 13
(8 バイト )
DTR13
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 14
(8 バイト )
DTR14
R/W
XXXXXXXXB ~ XXXXXXXXB
データレジスタ 15
(8 バイト )
DTR15
R/W
XXXXXXXXB ~ XXXXXXXXB
433
第 22 章 CAN コントローラ
22.6
CAN コントローラのレジスタ分類
CAN コントローラのレジスタは , 次の 3 つに分類されます。
• 全体制御レジスタ
• メッセージバッファ制御レジスタ
• メッセージバッファ
■ 全体制御レジスタ
全体制御レジスタには , 次の 4 つがあります。
• 制御ステータスレジスタ (CSR)
• ラストイベント表示レジスタ (LEIR)
• 受信および送信エラーカウンタ (RTEC)
• ビットタイミングレジスタ (BTR)
■ メッセージバッファ制御レジスタ
メッセージバッファ制御レジスタには , 次の 14 のレジスタがあります。
• メッセージバッファ有効レジスタ (BVALR)
• IDE レジスタ (IDER)
• 送信要求レジスタ (TREQR)
• 送信 RTR レジスタ (TRTRR)
• リモートフレーム受信待機レジスタ (RFWTR)
• 送信解除レジスタ (TCANR)
• 送信完了レジスタ (TCR)
• 送信割込み許可レジスタ (TIER)
• 受信完了レジスタ (RCR)
• リモート要求受信レジスタ (RRTRR)
• 受信オーバランレジスタ (ROVRR)
• 受信割込み許可レジスタ (RIER)
• アクセプタンスマスク選択レジスタ (AMSR)
• アクセプタンスマスクレジスタ 0 および 1(AMR0, AMR1)
■ メッセージバッファ
メッセージバッファは , 次の 3 つがあります。
• ID レジスタ x (x : 0 ~ 15) (IDRx)
• DLC レジスタ x (x : 0 ~ 15) (DLCRx)
• データレジスタ x (x : 0 ~ 15) (DTRx)
434
第 22 章 CAN コントローラ
22.6.1
制御ステータスレジスタ (CSR)
制御ステータスレジスタ (CSR) に対しては , ビット操作命令 ( リードモディファイ
ライト ) を実行することは禁止されています。
■ 制御ステータスレジスタ (CSR) ( 下位 )
図 22.6-1 制御ステータスレジスタの構成 ( 下位バイト )
CSR(下位)
アドレス:
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
CAN0: 003700 H TOE
CAN1: 003900 H
CAN2: 003B00 H
CAN3: 003D00 H R/W
CAN4: 003F00 H
-
-
-
-
予約 NIE HALT
初期値
0 X X X X 0 X 1B
-
-
-
-
R/W W R/W
bit0
HALT
バス動作停止ビット
0
書込み : バス動作停止をキャンセル
読出し : ストップモード以外でのバス動作
1
書込み : バス動作停止
読出し : ストップモードでのバス動作
bit1
予約
0
予約ビット
"1" を書き込まないでください
bit2
NIE
0
1
ノードステータス遷移割込み許可ビット
ノードステータス遷移割込み許可
ノードステータス遷移割込み禁止
bit7
R/W
:
W
:
X
:
-
:
:
リード / ライト可能
ライトオンリ
不定値
未定義
初期値
TOE
0
1
送信出力許可ビット
汎用ポート端子
CAN コントローラ転送端子
435
第 22 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR 下位 ) の内容
表 22.6-1 制御ステータスレジスタ ( 下位 ) の各ビット機能
ビット名
bit 7
bit 6
~
bit 3
TOE:
送信出力許可
ビット
機能
本ビットに "1" を書き込むと汎用ポート端子を CAN コントローラ
の送信端子に切り換えます。
0: 汎用ポート端子
1: CAN コントローラの送信端子
未定義
-
bit 2
NIE:
ノードステータス
遷移割込み許可
ビット
本ビットはノードステータス遷移割込み (NT = 1 の場合 ) を許可ま
たは禁止します。
0: ノードステータス遷移割込みを禁止する
1: ノードステータス遷移割込みを許可する
bit 1
予約ビット
予約ビットです。このビットには , "1" を書き込まないでください。
HALT:
バス動作停止
ビット
このビットはバス動作停止を制御します。バス停止状態はこのビッ
トを読み出すことで確認できます。
このビットへの書込み
0: バス動作停止をキャンセル
1: バス動作停止
このビットの読出し
0: ストップモード外でのバス動作
1: ストップモードでのバス動作
( 注意事項 )
ノードステータスがバスオフ中に HALT ビットに "0" を書き込む場
合は , 事前に HALT ビットが "1" であることを確認してから行って
ください。
プログラム例 :
switch ( IO_CANCT0.CSR.bit.NS )
bit 0
{
case 0 : /* error active */
break;
case 1 : /* warning */
break;
case 2 : /* error passive */
break;
default : /* bus off */
for ( i=0; ( i <= 500 ) && ( IO_CANCT0.CSR.bit.HALT == 0); i++);
IO_CANCT0.CSR.word = 0x0084; /* HALT = 0 */
break;
}
( 注意事項 ) 変数値 "i" は , フェイルセーフとして使用しています。
436
第 22 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR) ( 上位 )
図 22.6-2 制御ステータスレジスタ ( 上位バイト ) の構成
CSR(上位)
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
アドレス:
CAN0: 003701 H
CAN1: 003901 H
CAN2: 003B01 H
CAN3: 003D01 H
CAN4: 003F01 H
TS
RS
-
-
-
R
R
-
-
-
NT
NS1 NS0
R/W R
初期値
00XXX000B
R
bit9
bit8
NS1
NS0
0
0
0
1
エラーがアクティブ
警告 ( エラーがアクティブ )
1
0
エラーパッシブ
1
1
バスオフ
ノードステータスビット
bit10
NT
0
1
ノードステータス遷移フラグ
変化なし
ステータス変化
bit14
RS
受信ステータスビット
0
メッセージ受信なし
1
メッセージ受信
bit15
TS
R/W
: リード / ライト可能
R
: リードオンリ
X
: 不定
: 未定義
-
送信ステータスビット
0
メッセージ転送なし
1
メッセージ転送
: 初期値
437
第 22 章 CAN コントローラ
■ 制御ステータスレジスタ (CSR 上位 ) の内容
表 22.6-2 制御ステータスレジスタ ( 上位 ) の各ビット機能
ビット名
bit 15
TS:
送信ステータス
ビット
本ビットはメッセージが送信中であるかどうかを示します。
0: メッセージは送信されていません。
1: メッセージが送信されています。
本ビットはエラーフレームおよびオーバロードフレームが送信さ
れている間も "0" です。
RS:
受信ステータス
ビット
本ビットはメッセージが受信されているかどうかを示します。
0: メッセージは受信されていません。
1: メッセージが受信されています。
メッセージがバス上にある間 , 本ビットは "1" になります。このた
め本ビットはメッセージが送信されている間も "1" になります。本
ビットは必ずしも , 受信メッセージがアクセプタンスフィルタを通
過したかどうかを示すものではありません。
結果として , 本ビットが "0" であるときはバス動作は停止している
(HALT = 0) か , バスはインターミッション / バスアイドルにある ,
またはエラー / オーバロードフレームがバス上にあることを意味し
ます。
bit 14
bit 13
~
bit11
未定義
-
NT:
ノードステータス
遷移フラグ
もしノードステータスがインクリメントに変化し , またはバスオフ
からエラーアクティブに変化しても , 本ビットは "1" になります。
すなわち , NT ビットは , ノードステータスがエラーアクティブ (00)
からワーニング (01) に , ワーニング (01) からエラーパッシブ (10)
に , エラーパッシブ (10) からバスオフ (11) に , バスオフ (11) からエ
ラーアクティブ (00) に変化したときに "1" にセットされます。括
弧内の数字は NS1 ビットおよび NS0 ビットの値を示します。
ノードステータス遷移割込み許可ビット (NIE) が "1" であるときに
割込みが発生します。"0" を書き込むと NT ビットが "0" にセット
されます。NT ビットに "1" を書き込んでも無視されます。リード
モディファイライト系命令がリードされたときに "1" がリードされ
ます。
NS1, NS0:
ノードステータス
ビット1
および0
本ビット群は現在のノードステータスを表します。
詳細については表 22.6-3 を参照してください。
bit 10
bit 9,
bit8
438
機能
第 22 章 CAN コントローラ
表 22.6-3 NS1, NS0 およびノードステータスの間の対応
NS1
NS0
0
0
エラーアクティブ
0
1
ワーニング ( エラーアクティブ )
1
0
エラーパッシブ
1
1
バスオフ
ノードステータス
<注意事項>
ワーニング ( エラーアクティブ ) はノードステータスに対する CAN 仕様 2.0B におけるエ
ラーアクティブに含まれますが , 送信エラーカウンタまたは受信エラーカウンタが 96 を
超えたことを表します。ノードステータスの変化図は図 22.6-3 に示されています。
図 22.6-3 ノードステータス遷移図
ハードウェアリセット
REC: 受信エラーカウンタ
TEC: 送信エラーカウンタ
REC >= 96
または
TEC >= 96
REC >= 128
または
TEC >= 128
エラー
パッシブ
ワーニング
( エラー
アクティブ )
エラー
アクティブ
レジスタ (CSR) の HALT ビットに "0" が
書き込まれた後 , 連続的な 11 ビット "H"
レベル ( リセッシブビット ) が受信入力
端子 (RX) に 128 回入力。
REC < 96
および
TEC < 96
REC < 128
および
TEC < 128
TEC >= 256
バスオフ
(HALT =1)
439
第 22 章 CAN コントローラ
22.6.2
バス動作停止ビット (HALT = 1)
バス動作停止ビットは , バス動作停止をセットもしくは解除し , またはその状態を表
示します。
■ バス動作停止をセットする条件 (HALT=1)
バス動作停止をセットする条件 (HALT=1) として , 次の 3 つがあります。
• ハードウェアリセットの後
• ノードステータスがバスオフに変化したとき
• HALT への "1" の書込み
<注意事項>
• バス動作は F2MC-16LX が低消費電力モード ( 停止モード , タイムベースタイマモード )
に遷移する前に HALT に "1" を書き込むことにより停止しなければなりません。HALT
に "1" が書き込まれるときに , 送信が進行中であれば送信が終了した後にバス動作は停
止します (HALT=1)。HALT に "1" が書き込まれるときに , 受信が進行中であればバス
動作は直ちに停止します (HALT=1)。もし受信されたメッセージがメッセージバッファ
(x) に格納中であればメッセージを格納した後に , バス動作は停止します (HALT=1)。
• バス動作が停止したかどうかは , 常に HALT ビットを読み出してチェックしてくださ
い。
■ バス動作停止を解除する条件 (HALT=0)
HALT への "0" 書込み
<注意事項>
• 上記条件のハードウェアリセット後または HALT に "1" を書き込むことによるバス動作
停止の解除は , HALT に "0" が書き込まれ受信入力端子 (RX) に継続的な 11 ビットの "H"
レベル ( リセッシブビット ) が入力された後に行われます。
• 上記条件のノードステータスがバスオフに変化したときのバス動作停止の解除は , HALT
に "0" が書き込まれ , 受信入力端子 (RX) に継続的な 11 ビットの "H" レベル ( リセッシブ
ビット ) が 128 回入力された後に行われます。次に , 送信および受信エラーカウンタの両
者の値が "0" に達してノードステータスはエラーアクティブに変化します。
• ノードステータスがバスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビット
が "1" になっていることを確認後 , "0" を書き込んでください。
■ バス動作停止間の状態 (HALT=1)
• バスは , 送信および受信などの動作を一切行いません。
• 送信出力端子 (TX) は , "H" レベル ( リセッシブビット ) を出力します。
• ほかのレジスタおよびエラーカウンタの値は変化しません。
440
第 22 章 CAN コントローラ
<注意事項>
ビットタイミングレジスタ (BTR) はバス動作停止 (HALT=1) の間にセットしなければなり
ません。
441
第 22 章 CAN コントローラ
22.6.3
ラストイベント表示レジスタ (LEIR)
本レジスタはラストイベントを示します。
NTE, TCE および RCE ビットは排他的なものです。ラストイベントのビットが "1"
にセットされたとき , ほかのビットは "0" にセットされます。
■ ラストイベント表示レジスタ (LEIR)
図 22.6-4 ラストイベント表示レジスタ (LEIR) の構成
LEIR
アドレス:
CAN0: 003702 H
CAN1: 003902 H
CAN2: 003B02 H
CAN3: 003D02 H
CAN4: 003F02 H
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
初期値
0 0 0 X 0 0 0 0B
R/W R/W R/W
-
R/W R/W R/W R/W
bit 3
bit 2
bit 1
bit 0
MBP3
MBP2
MBP1
MBP0
メッセージバッファ
ポインタビット
0 ~ 15 ( 初期値 : 0000B)
RCE
0
1
TCE
受信完了
書込み時
ビットクリア
無視
転送完了イベントビット
0
読出し時
-
ビットクリア
1
転送完了
無視
NTE
書込み時
ノードステータス遷移イベントビット
R/W
: リード / ライト可能
0
読出し時
-
ビットクリア
X
: 不定
1
転送イベント
無視
-
: 未定義
: 初期値
442
受信完了イベントビット
読出し時
-
書込み時
第 22 章 CAN コントローラ
■ ラストイベント表示レジスタ (LEIR) の内容
表 22.6-4 ラストイベント表示レジスタ (LEIR) の各ビットの機能 ( 1 / 2 )
ビット名
NTE:
ノード
ステータス遷移
イベントビット
本ビットが "1" のときはノードステータス遷移がラストイベントで
あることを表します。
本ビットは制御ステータスレジスタ (CSR) の NT ビットと同時に
"1" にセットされます。
本ビットはまた CSR のノードステータス遷移割込み許可ビット
(NIE) のセッティングに無関係に "1" にセットされます。
0: "0" を書き込むと NTE ビットは "0" にセットされます。
1: "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" が読み出
されます。
TCE:
送信完了
イベントビット
本ビットが 1 のときは送信完了がラストイベントであることを表し
ます。
本ビットは送信完了レジスタ (TCR) のビットのいずれか 1 つと同
時に "1" にセットされます。また , 本ビットは送信割込み許可レジ
スタ (TIER) のビットのセッティングに無関係に "1" にセットされ
ます。
0: 書き込むと本ビットは "0" にセットされます。
1: 本ビットに "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" がリード
されます。
本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは送信動
作を完了したメッセージバッファの番号を示すために使用されま
す。
RCE:
受信完了
イベント
ビット
本ビットが "1" であるときは受信完了がラストイベントであること
を表します。
本ビットは受信完了レジスタ (RCR) のビットのいずれか 1 つと同
時に "1" にセットされます。また本ビットは受信割込み許可レジス
タ (RIER) のビットのセッティングに無関係に "1" にセットされま
す。
0: 書き込むと本ビットは "0" にセットされます。
1: 本ビットに "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" がリード
されます。
本ビットが "1" にセットされたとき MBP3 ~ MBP0 ビットは受信動
作を完了したメッセージバッファの番号を示すために使用されま
す。
bit 7
bit 6
bit 5
bit 4
機能
未定義
-
443
第 22 章 CAN コントローラ
表 22.6-4 ラストイベント表示レジスタ (LEIR) の各ビットの機能 ( 2 / 2 )
ビット名
bit 3
~
bit 0
444
MBP3, MBP2,
MBP1, MBP0:
メッセージ
バッファ
ポインタ
ビット
機能
TCE または RCE ビットが "1" にセットされたときに本ビット群は
対応するメッセージバッファ (0 ~ 15) の番号を示します。
NTE ビットが "1" にセットされると本ビット群は意味を持ちませ
ん。
0: 書き込むと本ビット群は "0" にセットされます。
1: 本ビット群に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" が読み出
されます。
もし LEIR が CAN 割込みハンドラ内でアクセスされたとしても割
込みを引き起こしたイベントは必ずしも LEIR により表されるもの
と同じではありません。割込みハンドラ内で LEIR アクセスに対す
る割込み要求の時点でほかの CAN イベントが生ずる可能性があり
ます。
第 22 章 CAN コントローラ
22.6.4
受信および送信エラーカウンタ (RTEC)
受信および送信エラーカウンタは , CAN 仕様で定められる送信エラーカウントおよ
び受信エラーカウントを示します。このレジスタは読出し専用です。
■ 受信エラーカウンタおよび送信エラーカウンタ (RTEC)
図 22.6-5 受信および送信エラーカウンタの構成
RTEC ( 上位 )
アドレス:
CAN1: 003905H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
TEC7
R
TEC6
R
TEC5
R
TEC4
R
TEC3
R
TEC2
R
TEC1
R
TEC0
R
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
REC7
R
REC6
R
REC5
R
REC4
R
REC3
R
REC2
R
REC1
R
REC0
R
初期値
00000000B
RTEC ( 下位 )
アドレス:
CAN1: 003904H
R
初期値
00000000B
:リードオンリ
■ 受信および送信エラーカウンタ (RTEC) の内容
表 22.6-5 受信および送信エラーカウンタ (RTEC) の各ビット機能
ビット名
機能
bit 15
~
bit 8
TEC7 ~
TEC0:
送信エラー
カウンタ
ビット
これらは送信エラーカウンタです。
TEC7 ~ TEC0 は , カウンタ値が 256 より大きい場合 0 ~ 7 を示します。
以降のインクリメントはカウンタ値にカウントされません。この場合 ,
バスオフがノードステータスで示されます ( 制御ステータスレジスタ
CSR の NS1 および NS0=11) 。
bit 7 ~
bit0
REC7 ~
REC0:
受信エラー
カウンタ
ビット
これらは受信エラーカウンタです。
REC7 ~ REC0 は , カウンタ値が 256 より大きい場合に 0 ~ 7 を示しま
す。以降のインクリメントはカウンタ値にカウントされません。この場
合 , エラーパッシブがノードステータスで示されます ( 制御ステータス
レジスタ CSR の NS1 および NS0=10) 。
445
第 22 章 CAN コントローラ
22.6.5
ビットタイミングレジスタ (BTR)
ビットタイミングレジスタ (BTR) はプリスケーラおよびビットタイミングをセット
するものです。
■ ビットタイミングレジスタ (BTR)
図 22.6-6 ビットタイミングレジスタ (BTR) の構成
BTR ( 上位 )
アドレス:
CAN1: 003907H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
TS2.2
R/W
TS2.1
R/W
TS2.0
R/W
TS1.3
R/W
TS1.2
R/W
TS1.1
R/W
TS1.0
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
RSJ1
R/W
RSJ0
R/W
PSC5
R/W
PSC4
R/W
PSC3
R/W
PSC2
R/W
PSC1
R/W
PSC0
R/W
初期値
X1111111B
BTR ( 下位 )
アドレス:
CAN1: 003906H
初期値
11111111B
R/W :リード / ライト可能
X
:不定
−
:未定義
<注意事項>
本レジスタはバス動作停止 (HALT=1) の間にセットしなければなりません。
■ ビットタイミングレジスタ (BTR) の内容
表 22.6-6 ビットタイミングレジスタ (BTR) の各ビット機能
ビット名
機能
bit 15
未定義
bit 14
~
bit 12
TS2.2 ~ TS2.0:
タイムセグメント 2
セット bit2 ~ bit0
本ビット群は単位時間 (TQ) を [ (TS2.2 ~ TS2.0) +1] で分周してタ
イムセグメント 2(TSEG2) を決定します。タイムセグメント 2 は
CAN 仕様におけるフェーズバッファセグメント 2 (PHASE_SEG2)
に等しいものです。
TS1.3 ~ TS1.0:
タイムセグメント 1
設定ビット 3 ~ 0
本ビット群は単位時間 (TQ) を [ (TS1.3 ~ TS1.0) +1] で分周してタ
イムセグメント 1(TSEG1) を決定します。タイムセグメント 1 は
CAN 仕様におけるプロパゲーションセグメント (PROP_SEG) +
フェーズバッファセグメント 1(PHASE_SEG1) に等しいものです。
RSJ1, RSJ0:
再同期ジャンプ幅
設定ビット 1 および 0
本ビット群は単位時間 (TQ) を [ (RSJ1 ~ RSJ0) +1] で分周して再
同期ジャンプ幅を決定させます。
PSC5 ~ PSC0:
プリスケーラ設定
ビット 5 ~ 0
本ビット群は入力クロックを [ (PSC5 ~ PSC0) +1] の周波数で
分割して CAN コントローラの単位時間 (TQ) を決定します ( 詳
細については , ■ プリスケーラ設定を参照ください )。
bit 11
~
bit 8
bit 7, bit6
bit 5
~
bit 0
446
-
第 22 章 CAN コントローラ
■ プリスケーラ設定
CAN 仕様および CAN コントローラのそれぞれにおけるビット時間セグメントは図
22.6-7 および図 22.6-8 に示されています。
図 22.6-7 CAN 仕様におけるビット時間セグメント
ノミナルビット時間
SYNC_SEG
PROP_SEG
PHASE_SEG1 PHASE_SEG2
サンプルポイント
図 22.6-8 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 ~ TS1.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
正しく動作を行うためには以下の条件を満足しなければなりません。
447
第 22 章 CAN コントローラ
For 1 ≦ PSC ≦ 63:
TSEG1 ≧ 2TQ
TSEG1 ≧ RSJW
TSEG2 ≧ 2TQ
TSEG2 ≧ RSJW
For PSC = 0:
TSEG1 ≧ 5TQ
TSEG2 ≧ 2TQ
TSEG2 ≧ RSJW
CAN 仕様に従ったビットタイミングの設定をするためには , 遅延時間などほかの条件
も考慮しなければなりません。
448
第 22 章 CAN コントローラ
22.6.6
メッセージバッファ有効レジスタ (BVALR)
メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファ (x) の有効性を
セットし , またその状態を表示します。
■ メッセージバッファ有効レジスタ (BVALR)
図 22.6-9 メッセージバッファ有効レジスタ (BVALR) の構成
BVALR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 000081H BVAL15 BVAL14 BVAL13 BVAL12 BVAL11 BVAL10 BVAL9 BVAL8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
BVALR ( 下位 )
アドレス:
CAN1: 000080H
7
6
5
4
3
2
1
0
BVAL7 BVAL6 BVAL5 BVAL4 BVAL3 BVAL2 BVAL1 BVAL0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
0: メッセージバッファ (x) 無効
1: メッセージバッファ (x) 有効
もしメッセージバッファ (x) が無効にセットされれば , それはメッセージを送信または
受信しません。
もしバッファが送信動作の間に無効にセットされれば , それは送信が完了し , またはエ
ラーにより終了した後で無効 (BVALx=0) になります。
もしバッファが受信動作の間に無効にセットされれば , それは直ちに無効 (BVALx=0)
になります。もし受信メッセージがメッセージバッファ (x) に格納されていればメッ
セージバッファ (x) はメッセージを格納した後に無効となります。
<注意事項>
• x はメッセージバッファ番号を示します (x : 0 ~ 15) 。
• ビット (BVALx) に "0" を書き込むことによりメッセージバッファ(x) を無効としたとき
にビット操作命令の実行はそのビットが "0" にセットされるまで禁止されます。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0"
で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ
セージバッファを無効 (BVALR:BVALx=0) にする場合は , 「22.15 CAN コントローラの
使用上の注意」に従ってください。
449
第 22 章 CAN コントローラ
22.6.7
IDE レジスタ (IDER)
本レジスタは送信 / 受信の間にメッセージバッファ (x) により使用されるフレーム
フォーマットを設定します。
■ IDE レジスタ (IDER)
図 22.6-10 IDE レジスタ (IDER) の構成
IDER ( 上位 )
アドレス:
CAN1: 003909H
bit15
bit14
IDE15 IDE14
R/W
R/W
bit13
bit12
bit11
bit10
bit9
bit8
IDE13
R/W
IDE12
R/W
IDE11
R/W
IDE10
R/W
IDE9
R/W
IDE8
R/W
初期値
XXXXXXXXB
IDER ( 下位 )
アドレス:
CAN1: 003908H
7
6
5
4
3
2
1
0
IDE7
R/W
IDE6
R/W
IDE5
R/W
IDE4
R/W
IDE3
R/W
IDE2
R/W
IDE1
R/W
IDE0
R/W
初期値
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
0: メッセージバッファ (x) に対して標準フレームフォーマット (ID11 ビット ) が使用さ
れます。
1: メッセージバッファ (x) に対して拡張フレームフォーマット (ID29 ビット ) が使用さ
れます。
<注意事項>
• 本レジスタはメッセージバッファ (x) が無効であるとき ( メッセージバッファ有効レジ
スタの BVALx(BVALR)=0) に設定しなければなりません。バッファが有効である
(BVALx=1)ときに設定を行うと受信メッセージを不必要に格納する可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0"
で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で , メッ
セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントローラの使
用上の注意」に従ってください。
450
第 22 章 CAN コントローラ
22.6.8
送信要求レジスタ (TREQR)
送信要求レジスタ (TREQR) は , メッセージバッファ(x) に対する送信要求を設定し ,
またその状態を表示します。
■ 送信要求レジスタ (TREQR)
図 22.6-11 送信要求レジスタ (TREQR) の構成
TREQR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 000083H TREQ15 TREQ14 TREQ13 TREQ12 TREQ11 TREQ10 TREQ9 TREQ8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
TREQR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 000082H TREQ7 TREQ6 TREQ5 TREQ4 TREQ3 TREQ2 TREQ1 TREQ0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
TREQx に "1" が書き込まれたときメッセージバッファ (x:0 ~ 15) に対する送信を開始
します。もしリモートフレーム受信待機レジスタ (RFWTR)*1 の RFWTx が "0" であれ
ば送信は直ちに開始します。しかし RFWTx=1 であればリモートフレームが受信され
る ( リモート要求受信レジスタ (RRTRR)*1 が "1" になる ) まで待機した後に送信が開始
します。
もし TREQx に "1" が書き込まれるときに RRTRx が既に "1" であれば , RFWTx=1 であっ
ても送信は直ちに開始します *2。
*1:TRTRR および RFWTR に関しては図 22.6-12 および図 22.6-13 を参照してください。
*2: 送信の解除に関しては図 22.6-14 および図 22.6-15 を参照してください。
TREQx に "0" を書き込んでも無視されます。
リードモディファイライト系命令がリードされたときは "0" がリードされます。
もし送信動作の完了時における (0 への ) クリアおよび "1" の書込みによる設定が同時
に生じればクリア動作が優先されます。
もし 1 つ以上のビットに "1" が書き込まれれば下位番号のメッセージバッファ(x) から
開始して送信が行われます。
TREQx は送信が待ち状態中は "1" であり送信が完了または解除されたときに "0" にな
ります。
451
第 22 章 CAN コントローラ
22.6.9
送信 RTR レジスタ (TRTRR)
本レジスタはメッセージバッファ (x) による送信 RTR ( リモート送信要求 ) ビットを
設定するものです。
■ 送信 RTR レジスタ (TRTRR)
図 22.6-12 送信 RTR レジスタ (TRTRR) の構成
TRTRR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 00390BH TRTR15 TRTR14 TRTR13 TRTR12 TRTR11 TRTR10 TRTR9 TRTR8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
TRTRR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 00390AH TRTR7 TRTR6 TRTR5 TRTR4 TRTR3 TRTR2 TRTR1 TRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード / ライト可能
0: データフレームが送信されます。
1: リモートフレームが送信されます。
452
初期値
00000000B
第 22 章 CAN コントローラ
22.6.10
リモートフレーム受信待機レジスタ (RFWTR)
リモートフレーム受信待機レジスタ (RFWTR) は , データフレーム送信に対する要求
が設定された ( 送信要求レジスタ (TREQR) の TREQx (x:0 ~ 15) が "1" であり送信
RTR レジスタ (TRTRR) の TRTRx が "0" である ) ときに送信を開始する条件を設定
します。
• 0: 送信は直ちに開始します。
• 1: リモートフレーム受信 ( リモート要求受信レジスタ (RRTRR) が "1" になる ) ま
で待機した後に送信を開始します。
■ リモートフレーム受信待機レジスタ (RFWTR)
図 22.6-13 リモートフレーム受信待機レジスタ (RFWTR) の構成
RFWTR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 00390DH RFWT15 RFWT14 RFWT13 RFWT12 RFWT11 RFWT10 RFWT9 RFWT8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
RFWTR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 00390CH RFWT7 RFWT6 RFWT5 RFWT4 RFWT3 RFWT2 RFWT1 RFWT0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
<注意事項>
• 送信に対する要求が設定されたときに RRTRx が既に "1" であれば送信は直ちに開始し
ます。
• リモートフレーム送信に対しては RFWTx を "1" にセットしないでください。
453
第 22 章 CAN コントローラ
22.6.11
送信解除レジスタ (TCANR)
TCANx (x:0 ~ 15) に "1" が書き込まれたときに本レジスタはメッセージバッファ
(x) への送信に対する待ち状態中の要求を解除します。
解除の完了時に送信要求レジスタ (TREQR) の TREQx は "0" になります。TCANx
に "0" を書き込んでも無視されます。
これは書込み専用レジスタでありそのリード値は常に "0" です。
■ 送信解除レジスタ (TCANR)
図 22.6-14 送信解除レジスタ (TCANR) の構成
TCANR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 000085H TCAN15 TCAN14 TCAN13 TCAN12 TCAN11 TCAN10 TCAN9 TCAN8
W
W
W
W
W
W
W
W
初期値
00000000B
TCANR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 000084H TCAN7 TCAN6 TCAN5 TCAN4 TCAN3 TCAN2 TCAN1 TCAN0
W
W
W
W
W
W
W
W
W
454
:ライトオンリ
初期値
00000000B
第 22 章 CAN コントローラ
22.6.12
送信完了レジスタ (TCR)
メッセージバッファ (x:0 ~ 15) により送信の完了時に対応する TCx は "1" になりま
す。もし送信割込み許可レジスタ (TIER) の TIEx が "1" であれば割込みが生じます。
■ 送信完了レジスタ (TCR)
図 22.6-15 送信完了レジスタ (TCR) の構成
TCR ( 上位 )
アドレス:
CAN1: 000087H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
TC15
R/W
TC14
R/W
TC13
R/W
TC12
R/W
TC11
R/W
TC10
R/W
TC9
R/W
TC8
R/W
初期値
00000000B
TCR ( 下位 )
アドレス:
CAN1: 000086H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TC7
R/W
TC6
R/W
TC5
R/W
TC4
R/W
TC3
R/W
TC2
R/W
TC1
R/W
TC0
R/W
初期値
00000000B
R/W :リード / ライト可能
● TCx=0 となる条件
• TCx に "0" を書き込む。
• 送信要求レジスタ (TREQR) の TREQx に "1" を書き込む。
送信の完了の後で TCx に "0" を書き込むとそのビットを "0" にセットします。TCx に
"1" を書き込んでも無視されます。リードモディファイライト系命令が実行されたとき
は "1" がリードされます。
<注意事項>
送信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは
"1" への設定が優先します。
455
第 22 章 CAN コントローラ
22.6.13
送信割込み許可レジスタ (TIER)
本レジスタはメッセージバッファ (x : 0 ~ 15) による送信割込みを許可または禁止し
ます。送信割込みは送信完了時 ( 送信完了レジスタ (TCR) の TCx が "1" になったと
き ) に発生します。
■ 送信割込み許可レジスタ (TIER)
図 22.6-16 送信割込み許可レジスタ (TIER) の構成
TIER ( 上位 )
アドレス:
CAN1: 00390FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
TIE15
R/W
TIE14
R/W
TIE13
R/W
TIE12
R/W
TIE11
R/W
TIE10
R/W
TIE9
R/W
TIE8
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
TIE7
R/W
TIE6
R/W
TIE5
R/W
TIE4
R/W
TIE3
R/W
TIE2
R/W
TIE1
R/W
TIE0
R/W
初期値
00000000B
TIER ( 下位 )
アドレス:
CAN1: 00390EH
R/W :リード / ライト可能
0: 送信割込みは禁止されます。
1: 送信割込みは許可されます。
456
初期値
00000000B
第 22 章 CAN コントローラ
22.6.14
受信完了レジスタ (RCR)
メッセージバッファ (x:0 ~ 15) への受信メッセージの格納の完了時に RCx は "1" に
なります。
もし受信割込み許可レジスタ (RIER) の RIEx が "1" であれば割込みが生じます。
■ 受信完了レジスタ (RCR)
図 22.6-17 受信完了レジスタ (RCR) の構成
RCR ( 上位 )
アドレス:
CAN1: 000089H
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
RC15
R/W
RC14
R/W
RC13
R/W
RC12
R/W
RC11
R/W
RC10
R/W
RC9
R/W
RC8
R/W
初期値
00000000B
RCR ( 下位 )
アドレス:
CAN1: 000088H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
RC7
R/W
RC6
R/W
RC5
R/W
RC4
R/W
RC3
R/W
RC2
R/W
RC1
R/W
RC0
R/W
初期値
00000000B
R/W :リード / ライト可能
● RCx=0 となる条件
RCx に "0" を書き込む。
受信メッセージの処理の完了の後で RCx に "0" を書き込んで "0" にセットしてくださ
い。RCx に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" が読み出されます。
<注意事項>
受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは
"1" への設定が優先します。
457
第 22 章 CAN コントローラ
22.6.15
リモート要求受信レジスタ (RRTRR)
受信されたリモートフレームがメッセージバッファ (x:0 ~ 15) 内に格納されると
RRTRx は (RCx 設定が "1" になると同時に ) "1" になります。
■ リモート要求受信レジスタ (RRTRR)
図 22.6-18 リモート要求受信レジスタ (RRTRR) の構成
RRTRR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 00008BH RRTR15 RRTR14 RRTR13 RRTR12 RRTR11 RRTR10 RRTR9 RRTR8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
RRTRR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 00008AH RRTR7 RRTR6 RRTR5 RRTR4 RRTR3 RRTR2 RRTR1 RRTR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
● RRTRx=0 となる条件
• RRTRx に "0" を書き込む。
• 受信されたデータフレームがメッセージバッファ (x) に格納された後 (RCx 設定が
"1" になるのと同時 ) 。
• メッセージバッファ (x) による送信が完了した後 ( 送信完了レジスタ (TCR) の TCx
は "1") 。
RRTRx に "1" を書き込んでも無視されます。
リードモディファイライト系命令が実行されたときは "1" が読み出されます。
<注意事項>
受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは
"1" への設定が優先します。
458
第 22 章 CAN コントローラ
22.6.16
受信オーバランレジスタ (ROVRR)
メッセージバッファ (x:0 ~ 15) 内への受信メッセージの格納完了時に受信完了レジ
スタ (RCR) の RCx が既に "1" であれば ROVRx は "1" になり , 受信がオーバランし
たことを表します。
■ 受信オーバランレジスタ (ROVRR)
図 22.6-19 受信オーバランレジスタ (ROVRR) の構成
ROVRR ( 上位 )
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
アドレス:
CAN1: 00008DH ROVR15 ROVR14 ROVR13 ROVR12 ROVR11 ROVR10 ROVR9 ROVR8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
ROVRR ( 下位 )
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
アドレス:
CAN1: 00008CH ROVR7 ROVR6 ROVR5 ROVR4 ROVR3 ROVR2 ROVR1 ROVR0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
ROVRx に "0" を書き込むと ROVRx=0 になります。ROVRx に "1" を書込みしても無視
されます。受信がオーバランしたことをチェックした後で ROVRx に "0" を書き込むと ,
そのビットを "0" に設定します。
リードモディファイライト系命令が実行されたときは "1" が読み出されます。
<注意事項>
受信動作の完了時の "1" への設定および "0" の書込みによるクリアが同時に生じたときは
"1" への設定が優先します。
459
第 22 章 CAN コントローラ
22.6.17
受信割込み許可レジスタ (RIER)
受信割込み許可レジスタ (RIER) は , メッセージバッファ (x : 0 ~ 15) による受信割
込みを許可または禁止します。
受信割込みは受信完了時 ( 受信完了レジスタ (RCR) の RCx が "1" であるとき ) に発
生します。
■ 受信割込み許可レジスタ (RIER)
図 22.6-20 受信割込み許可レジスタ (RIER) の構成
RIER ( 上位 )
アドレス:
CAN1: 0000BFH
bit15
bit14
RIE15 RIE14
R/W
R/W
bit13
bit12
bit11
bit10
bit9
bit8
RIE13
R/W
RIE12
R/W
RIE11
R/W
RIE10
R/W
RIE9
R/W
RIE8
R/W
初期値
00000000B
RIER ( 下位 )
アドレス:
CAN1: 0000BEH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
RIE7
R/W
RIE6
R/W
RIE5
R/W
RIE4
R/W
RIE3
R/W
RIE2
R/W
RIE1
R/W
RIE0
R/W
R/W :リード / ライト可能
0: 受信割込みは禁止されます。
1: 受信割込みは許可されます。
460
初期値
00000000B
第 22 章 CAN コントローラ
22.6.18
アクセプタンスマスク選択レジスタ (AMSR)
本レジスタは受信メッセージ ID とメッセージバッファ (x:0 ~ 15)ID の比較に対する
マスク ( アクセプタンスマスク ) を選択します。
■ アクセプタンスマスク選択レジスタ (AMSR)
図 22.6-21 アクセプタンスマスク選択レジスタ (AMSR) の構成
AMSR バイト 0
アドレス:
CAN1: 003910H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
AMS
3.1
R/W
AMS
3.0
R/W
AMS
2.1
R/W
AMS
2.0
R/W
AMS
1.1
R/W
AMS
1.0
R/W
AMS
0.1
R/W
AMS
0.0
R/W
bit15
AMS
7.1
R/W
bit14
AMS
7.0
R/W
bit13
AMS
6.1
R/W
bit12
AMS
6.0
R/W
bit11
AMS
5.1
R/W
bit10
AMS
5.0
R/W
bit9
AMS
4.1
R/W
bit8
AMS
4.0
R/W
bit7
AMS
11.1
R/W
bit6
AMS
11.0
R/W
bit5
AMS
10.1
R/W
bit4
AMS
10.0
R/W
bit3
AMS
9.1
R/W
bit2
AMS
9.0
R/W
bit1
AMS
8.1
R/W
bit0
AMS
8.0
R/W
XXXXXXXXB
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
AMS
15.1
R/W
AMS
15.0
R/W
AMS
14.1
R/W
AMS
14.0
R/W
AMS
13.1
R/W
AMS
13.0
R/W
AMS
12.1
R/W
AMS
12.0
R/W
初期値
XXXXXXXXB
AMSR バイト 1
アドレス:
CAN1: 003911H
初期値
XXXXXXXXB
AMSR バイト 2
アドレス:
CAN1: 003912H
初期値
AMSR バイト 3
アドレス:
CAN1: 003913H
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
表 22.6-7 アクセプタンスマスクの選択
AMSx.1
AMSx.0
0
0
フルビット比較
0
1
フルビットマスク
1
0
アクセプタンスマスクレジスタ 0(AMR0)
1
1
アクセプタンスマスクレジスタ 1(AMR1)
アクセプタンスマスク
461
第 22 章 CAN コントローラ
<注意事項>
• AMSx.1 および AMSx.0 はメッセージバッファ (x) が無効である ( メッセージバッファ
有効レジスタ (BVALR) の BVALx が "0" である ) ときに設定しなければなりません。
バッ
ファが有効 (BVALx=1) なときに設定を行うと不要な受信メッセージが格納される可能
性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0"
で , CAN コントローラが CAN バスの通信に参加しており , 送受信が可能な状態 ) で , メッ
セージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントローラの使
用上の注意」に従ってください。
462
第 22 章 CAN コントローラ
22.6.19
アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1)
AMR0 および AMR1 の 2 つのアクセプタンスマスクレジスタがありますが両者とも
に標準フレームフォーマットまたは拡張フレームフォーマットのいずれかで利用で
きます。
AM28 ~ AM18 (11 ビット ) は標準フレームフォーマットにおけるアクセプタンスマ
スクに使用され AM28 ~ AM0 (29 ビット ) は拡張フレームフォーマットでアクセプ
タンスマスクに使用されます。
■ アクセプタンスマスクレジスタ 0 および 1(AMR0/AMR1)
図 22.6-22 アクセプタンスマスクレジスタ 0 (AMR0) の構成
AMR0 バイト 0
アドレス:
CAN1: 003914H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
AM28
AM27
AM26
AM25
AM24
AM23
AM22
AM21
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CAN1: 003915H
AM20
AM19
AM18
AM17
AM16
AM15
AM14
AM13
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
AM12
AM11
AM10
AM9
AM8
AM7
AM6
AM5
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CAN1: 003917H
AM4
AM3
AM2
AM1
AM0
-
-
-
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
-
-
-
AMR0 バイト 1
AMR0 バイト 2
アドレス:
CAN1: 003916H
AMR0 バイト 3
R/W :リード / ライト可能
X
:不定
- :未定義
463
第 22 章 CAN コントローラ
図 22.6-23 アクセプタンスマスクレジスタ 1 (AMR1) の構成
AMR1 バイト 0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
AM28
AM27
AM26
AM25
AM24
AM23
AM22
AM21
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CAN1: 003919H
AM20
AM19
AM18
AM17
AM16
AM15
AM14
AM13
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
AM12
AM11
AM10
AM9
AM8
AM7
AM6
AM5
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
XXXXXXXXB
アドレス:
CAN1: 003918H
AMR1 バイト 1
AMR1 バイト 2
アドレス:
CAN1: 00391AH
AMR1 バイト 3
アドレス:
CAN1: 00391BH
AM5
AM4
AM3
AM2
AM0
-
-
-
R/W
R/W
R/W
R/W
R/W
-
-
-
R/W :リード / ライト可能
X
:不定
- :未定義
● 0: コンペア
本ビットに対応するアクセプタンスコード ( 受信メッセージ ID と比較するための ID
レジスタ IDRx) を受信メッセージ ID のビットと比較します。マッチしなければメッ
セージは受信されません。
● 1: マスク
本ビットに対応するアクセプタンスコード ID レジスタ (IDRx) をマスクします。受信
メッセージ ID のビットとのコンペアは行われません。
<注意事項>
• AMR0 および AMR1 は AMR0 および AMR1 を選択するメッセージバッファ(x:0 ~ 15)
のすべてが無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") である
ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行
うと不必要な受信メッセージが格納される可能性があります。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が "0"
で , CAN コントローラが CAN バスの通信に参加しており , 送受信が可能な状態 ) で , メッ
セージバッファを無効 (BVALR:BVALx=0) にする場合は , 「22.15 CAN コントローラの
使用上の注意」に従ってください。
464
第 22 章 CAN コントローラ
22.6.20
メッセージバッファ
メッセージバッファは 16 個あり , 1 つのメッセージバッファ x (x:0 ~ 15) は ID レ
ジスタ (IDRx), DLC レジスタ (DLCRx) およびデータレジスタ (DTRx) から構成され
ています。
■ メッセージバッファ
● メッセージバッファ (x) は送信および受信の両方に使用されます。
● 下位番号のメッセージバッファの方が高い優先順位を割り当てられています。
• 送信時に送信要求が 1 つ以上のメッセージバッファに対してなされたときには最下
位番号のメッセージバッファから開始して送信が行われます (「22.7 CAN コント
ローラの送信 」を参照してください ) 。
• 受信時に 1 つ以上のメッセージバッファのアクセプタンスフィルタ ( 受信メッセー
ジのアクセプタンスマスク ID とメッセージバッファとを比較する機構 ) を受信メッ
セージ ID が通過するときに受信メッセージは最下位番号のメッセージバッファ内
に格納されます (「22.8 CAN コントローラの受信」を参照してください ) 。
● 同一のアクセプタンスフィルタが 1 つ以上のメッセージバッファ内に設定されたときに
メッセージバッファはマルチレベルメッセージバッファとして使用できます。これにより
受信時間に対する余裕が与えられます (「22.12 メッセージバッファ (x) による受信方法」
を参照してください ) 。
<注意事項>
• メッセージバッファおよび汎用 RAM 領域への書込み動作は , ワード単位でイーブンア
ドレスに対して行わなければなりません。バイト単位で書込み動作を行うと下位バイ
トへの書込み時に上位バイトに不定データを書き込んでしまいます。上位バイトへの
書込みは無視されます。
• メッセージバッファ有効レジスタ (BVALR) の BVALx ビットが "0 "( 無効 ) であるときに
メッセージバッファ x (IDRx, DLCRx および DTRx) は汎用 RAM として使用できます。た
だし, CANコントローラが送受信動作中は, メッセージバッファを使用しますので, CPU
のアクセスが最大で 64 マシンサイクル待たされることがあります。これは汎用 RAM 領
域についても同様です。
465
第 22 章 CAN コントローラ
22.6.21
ID レジスタ x (x:0 ~ 15) (IDRx)
ID レジスタ x (x:0 ~ 15) (IDRx) は , メッセージバッファ (x) に対する ID レジスタで
す。
■ ID レジスタ x (x:0 ~ 15) (IDRx)
図 22.6-24 ID レジスタ x (IDRx) の構成
バイト 0
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CAN1: 003820H+4*x
ID28
ID27
ID26
ID25
ID24
ID23
ID22
ID21
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
CAN1: 003821H+4*x
ID20
ID19
ID18
ID17
ID16
ID15
ID14
ID13
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
XXXXXXXXB
バイト 1
バイト 2
アドレス:
CAN1: 003822H+4*x
ID12
ID11
ID10
ID9
ID8
ID7
ID6
ID5
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
ID4
ID3
ID2
ID1
ID0
-
-
-
XXXXX---B
R/W
R/W
R/W
R/W
R/W
-
-
-
バイト 3
アドレス:
CAN1: 003823H+4*x
R/W :リード / ライト可能
X
:不定
- :未定義
x=0, .... , 15
標準フレームフォーマット (IDE レジスタ (IDER) の IDEx=0) でメッセージバッファ(x)
を使用しているときは ID28 ~ ID18 の 11 ビットを使用してください。拡張フレーム
フォーマット (IDEx=1) でバッファを使用しているときは ID28 ~ ID0 の 29 ビットを使
用してください。
ID28 ~ ID0 の機能は次のとおりです。
• アクセプタンスコード設定 ( 受信メッセージ ID との比較用の ID)
• 送信メッセージ ID の設定
( 注意事項 )
標準フレームフォーマットでは ID28 ~ ID22 のビットのすべてに "1" をセットするこ
とは禁止されています。
• 受信メッセージ ID の格納
466
第 22 章 CAN コントローラ
( 注意事項 )
受信メッセージ ID はアクセプタンスマスクでマスクされているビットにも格納されま
す。標準フレームフォーマットでは ID17 ~ ID0 は不定値 ( 受信シフトレジスタの前回
受信したメッセージの一部 ) が格納されます。
<注意事項>
• 本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書
込み動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでし
まいます。上位バイトへの書込みは無視されます。
• 本レジスタはメッセージバッファ (x) が無効である ( メッセージバッファ有効レジスタ
(BVALR) の BVALx が "0" である ) ときに設定しなければなりません。バッファが有効
(BVALx = 1) なときに設定を行うと不要な受信メッセージが格納される可能性があり
ます。
• CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値が
"0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な状態 ) で ,
メッセージバッファを無効 (BVALR:BVAL=0) にする場合は , 「22.15 CAN コントロー
ラの使用上の注意」に従ってください。
467
第 22 章 CAN コントローラ
22.6.22
DLC レジスタ x (x:0 ~ 15) (DLCRx)
DLC レジスタ x (x:0 ~ 15) (DLCRx) は , メッセージバッファ x に対する DLC レジ
スタを格納します。
■ DLC レジスタ x (x:0 ~ 15) (DLCRx)
図 22.6-25 DLC レジスタ x (x:0 ~ 15) (DLCRx) の構成
DLCRx ( 下位 )
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
-
-
-
-
DLC3
DLC2
DLC1
DLC0
----XXXXB
-
-
-
-
R/W
R/W
R/W
R/W
CAN1: 003860H+2*x
R/W :リード / ライト可能
X
:不定
- :未定義
x=0, .... , 15
● 送信
• データフレームが送信する ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0") ときに送
信メッセージのデータ長 ( バイト単位 ) を設定します。
• リモートフレームが送信する (TRTRx=1) ときに要求メッセージのデータ長 ( バイト
単位 ) を設定します。
<注意事項>
0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 受信
• データフレームが受信された ( リモート要求受信レジスタ (RRTRR) の RRTRx が "0")
ときに受信メッセージのデータ長 ( バイト単位 ) を格納します。
• リモートフレームが受信された (RRTRx=1) ときに要求メッセージのデータ長 ( バイ
ト単位 ) を格納します。
<注意事項>
本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み
動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでいます。上
位バイトへの書込みは無視されます。
468
第 22 章 CAN コントローラ
22.6.23
データレジスタ x (x=0 ~ 15) (DTRx)
データレジスタ x (x=0 ~ 15) (DTRx) は , メッセージバッファ (x) に対するデータレ
ジスタです。
本レジスタはデータフレームの送信および受信のみ使用されるものでありリモート
フレームの送信および受信には使用されません。
■ データレジスタ x (x=0 ~ 15) (DTRx)
図 22.6-26 データレジスタ x (x=0 ~ 15) (DTRx) の構成
DTRxn バイト 0
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CAN1: 003880H+8*x
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CAN1: 003882H+8*x
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CAN1: 003884H+8*x
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
初期値
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DTRxn バイト 1
アドレス:
CAN1: 003881H+8*x
DTRxn バイト 2
DTRxn バイト 3
アドレス:
CAN1: 003883H+8*x
DTRxn バイト 4
DTRxn バイト 5
アドレス:
CAN1: 003885H+8*x
( 続く )
469
第 22 章 CAN コントローラ
( 続き )
DTRxn バイト 6
アドレス:
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
初期値
CAN1: 003886H+8*x
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
DTRxn バイト 7
アドレス:
CAN1: 003887H+8*x
R/W :リード / ライト可能
X
:不定
XXXXXXXXB
x=0, .... , 15
● 送信メッセージデータ (0 ~ 8 バイトのいずれか ) の設定。
データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で送信されます。
● 受信メッセージデータの格納
データは MSB で開始して BYTE0, BYTE1, ...BYTE7 の順で格納されます。
受信メッセージデータが 8 バイトより少なくてもデータが格納されるデータレジスタ
(DTRx) の残りのバイトは不定となります。
<注意事項>
本レジスタへの書込み動作はワード単位で行わなければなりません。バイト単位で書込み
動作を行うと下位バイトへの書込み時に上位バイトに不定データを書き込んでしまいま
す。上位バイトへの書込みは無視されます。
470
第 22 章 CAN コントローラ
22.7
CAN コントローラの送信
CAN コントローラでは , 送信要求レジスタ (TREQR) の TREQx に "1" が書き込まれ
たときにメッセージバッファ (x) による送信が開始します。このときに TREQx は
"1" になり送信完了レジスタ (TCR) の TCx は "0" になります。
■ CAN コントローラの送信の開始
リモートフレーム受信待機レジスタ (RFWTR) の RFWTx が "0" であれば送信は直ちに
開始します。もし RFWTx が "1" であれば , リモートフレームが受信される ( リモート
要求受信レジスタ (RRTRR) の RRTRx が "1" になる ) まで待機した後に送信が開始しま
す。もし送信に対する要求が 1 つ以上のメッセージバッファに対して試された (1 つ以
上のTREQxが"1") ときには最下位番号のメッセージバッファから開始して送信が行わ
れます。
CAN バスに対するメッセージ送信 ( 送信出力端子 TX によるもの ) はバスがアイドル
のときに開始します。
送信 RTR レジスタ (TRTRR) の TRTRx が "0" であればデータフレームが送信されます。
もし TRTRx が "1" であればリモートフレームが送信されます。
送信に関してメッセージバッファが CAN バス上のほかの CAN コントローラと競合し
てアービトレーションが不調に終わった場合 , または送信中にエラーが生じた場合 ,
メッセージバッファはバスがアイドルとなるまで待機し , それが成功するまで再送信
を反復します。
■ CAN コントローラの送信要求の解除
● 送信解除レジスタ (TCANR) による解除
送信待ち状態中に送信を実行しなかったメッセージバッファ(x) に対する送信要求は送
信解除レジスタ (TCANR) の TCANx に "1" を書き込むことにより解除できます。解除
の完了時に TREQx は "0" になります。
● 受信メッセージの格納による解除
送信要求にも関わらず送信を実行しなかったメッセージバッファ (x) も受信を行いま
す。
データフレームの送信に対する要求にも関わらずメッセージバッファ(x) が送信を実行
していなかった場合でも (TRTRx=0 または TREQx=1), アクセプタンスフィルタを通過
した受信データフレームを格納した後には送信要求が解除されます (TREQx=0)。
<注意事項>
リモートフレームを格納することでは送信要求は解除されません (TREQx=1 はそのまま
です ) 。
リモートフレームの送信に対する要求にも関わらずメッセージバッファ(x) が送信を実
行していなかった場合でも (TRTRx=1 または TREQx=1), アクセプタンスフィルタを通
過した受信リモートフレームを格納した後には送信要求が解除されます (TREQx=0)。
471
第 22 章 CAN コントローラ
<注意事項>
データフレームまたはリモートフレームのいずれを格納しても送信要求は解除されます。
■ CAN コントローラの送信の完了
送信が成功したときは RRTRx が "0" に , TREQx が "0" に , 送信完了レジスタ (TCR) の
TCx が "1" になります。もし送信完了割込みが許可されていれば ( 送信割込み許可レジ
スタ (TIER) の TIEx は "1") 割込みが生じます。
472
第 22 章 CAN コントローラ
■ CAN コントローラの送信フローチャート
図 22.7-1 CAN コントローラの送信フローチャート
受信要求
(TREQx: = 1 )
TCx := 0
0
TREQx?
1
0
RFWTx?
1
0
RRTRx?
1
上記条件を満足する他のメッセージ
バッファある場合 , その中で最下位番
号メッセージバッファを選択
NO
バスは使用されて
いないか。
YES
0
1
TRTRx?
データフレームが送信される
リモートフレームが送信される
NO
送信成功したか。
YES
TCANx?
1
RRTRx : = 0
TREQx : = 0
TCx
:=1
TIEx ?
0
TREQx := 0
1
0
送信完了割込みが生ずる
送信の終了
473
第 22 章 CAN コントローラ
22.8
CAN コントローラの受信
CAN バス上でデータフレームまたはリモートフレームの開始 (SOF) が検出されたと
きに受信は開始します。
■ アクセプタンスフィルタリング
標準フレームフォーマットの受信メッセージは標準フレームフォーマットに設定され
たメッセージバッファ (x) (IDE レジスタ (IDER) の IDEx は "0") と比較されます。拡張
フレームフォーマットの受信メッセージは拡張フレームフォーマットに設定された
メッセージバッファ (x) (IDEx は "1") と比較されます。
もし受信メッセージ ID とアクセプタンスコード ( 受信メッセージ ID との比較のため
の ID レジスタ (IDRx) との比較の後にアクセプタンスマスクにより比較すべきビット
セットのすべてが一致すれば受信メッセージはメッセージバッファ(x) のアクセプタン
スフィルタを通過します。
■ 受信メッセージの格納
受信動作が成功したときに受信メッセージはアクセプタンスフィルタを通過した IDを
含めメッセージバッファ (x) に格納されます。
データフレームを受信したときに受信メッセージは ID レジスタ (IDRx), DLC レジスタ
(DLCRx) およびデータレジスタ (DTRx) に格納されます。
受信メッセージデータが 8 バイトより少なくてもデータは DTRx の残りのバイトに格
納され , その値は不定となります。
リモートフレームを受信したときに受信メッセージは IDRx および DLCRx のみに格納
されて DTRx はそのままです。
もしアクセプタンスフィルタを通過した ID を含む 1 つ以上のメッセージバッファがあ
れば受信メッセージが格納されるべきメッセージバッファ x は次の規則により決定さ
れます。
• メッセージバッファ x (x=0 ~ 15) の優先順位はその番号が低いほど高くなります。
すなわち , メッセージバッファ 0 が最高の優先度を与えられメッセージバッファ 15
は最低の優先度が与えられます。
• 受信メッセージを格納する上では基本的に受信完了レジスタ (RCR) の RCx ビット
が "0" に設定されたメッセージバッファが優先されます。
• もしアクセプタンスマスク選択レジスタ (AMSR) の各ビットが全ビット比較
(AMSx.1 および AMSx.0 ビットが "00" に設定されたメッセージバッファ ) に設定さ
れていれば , RCR の RCx ビットの値にかかわらず受信メッセージは格納されます。
• もし RCR の RCx ビットが "0" のメッセージバッファと AMSR のビットが全ビット
比較に設定されているメッセージバッファが複数ある場合 , 受信メッセージは最下
位番号 ( 最優先 ) のメッセージバッファ x に格納されます。
• もし上記のメッセージバッファがなければ受信メッセージは下位番号メッセージ
バッファ x に格納されます。
• メッセージバッファは昇順でソートし配置してください。最下位メッセージバッ
ファは , 全ビットコンペア , そして AMR0 か AMR1 マスクとなります。最上位メッ
セージバッファは全ビットマスクになります。
474
第 22 章 CAN コントローラ
図 22.8-1 には , 受信メッセージを格納すべきメッセージバッファ(x) を決定するための
フローチャートが示されています。メッセージバッファはバッファ番号順に , AMSR の
各ビットが全ビット比較にセットされたメッセージバッファ , AMR0 または AMR1 を
使用しているメッセージバッファおよび AMSR の各ビットが全ビットマスクにセット
されたメッセージバッファの順番に設定されることを推奨します。
図 22.8-1 受信メッセージを格納するメッセージバッファ (x) を決定するフローチャート
開始
RCx が "0" にセットされているか , AMSx.1
および AMSx.0 が "00" にセットされている
メッセージバッファが見つかったか。
NO
YES
最下位番号のメッセージバッ
ファを選択
最下位番号のメッセージバッ
ファを選択
終了
■ 受信オーバラン
受信メッセージが格納されるべきメッセージバッファ x に対応する受信完了レジスタ
(RCR) の RCx ビットが既に "1" にセットされていてメッセージバッファ x の受信メッ
セージの格納が完了したときに受信オーバランレジスタ (ROVRR) の ROVRx ビットは
"1" にセットされて受信オーバランを示します。
■ データフレームおよびリモートフレームの受信に対する処理
● データフレームの受信に対する処理
リモート要求受信レジスタ (RRTRR) の RRTRx は "0" になります。
送信要求レジスタ (TREQR) の TREQx は ( 受信メッセージを格納する直前に ) "0" にな
ります。送信を実行しなかったメッセージバッファ (x) に対する送信要求は解除されま
す。
<注意事項>
データフレームまたはリモートフレームのいずれの送信に対する要求も解除されます。
● リモートフレームの受信に対する処理
RRTRx は "1" になります。
もし送信 RTR レジスタ (TRTRR) の TRTRx が "1" であれば TREQx は "0" になります。
この結果 , 送信を実行しなかったメッセージバッファへのリモートフレームの送信に
対する要求は解除されます。
475
第 22 章 CAN コントローラ
<注意事項>
• データフレーム送信に対する要求は解除されません。
• 送信要求の解除に関しては図 22.7-1 を参照してください。
■ 受信完了
受信完了レジスタ (RCR) の RCx は受信メッセージを格納した後に "1" になります。
もし受信割込みが許可されていれば ( 受信割込み許可レジスタ (RIER) の RIEx が "1")
割込みが生じます。
<注意事項>
この CAN コントローラはそれ自身が送信したメッセージを受信することはありません。
476
第 22 章 CAN コントローラ
22.9
CAN コントローラの受信フローチャート
図 22.9-1 に , CAN コントローラの受信フローチャートを示します。
■ CAN コントローラの受信フローチャート
図 22.9-1 CAN コントローラの受信フローチャート
データフレームまたはリモート
フレームの開始 (SOF) の検出
NO
アクセプタンスフィルタをパスする
メッセージバッファ (x) はあるか。
YES
NO
受信は成功したか。
YES
受信メッセージを格納するメッセージ
バッファ (x) を決定
受信メッセージをメッセージ
バッファ (x) に格納
1
RCx?
0
ROVRx := 1
データフレーム
リモートフレーム
受信メッセージは ?
RRTRx := 0
RRTRx := 1
1
TRTRx?
0
TREQx := 0
RCx := 1
RIEx ?
1
0
受信割込みが生じる
受信の終了
477
第 22 章 CAN コントローラ
22.10
CAN コントローラの使用方法
CAN コントローラでは , 次のような設定が必要です。
• ビットタイミングの設定
• フレームフォーマットの設定
• ID の設定
• アクセプタンスフィルタの設定
• 低消費電力モードの設定
<注意事項>
MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に
使用しないでください。
MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問
題ありません。
■ ビットタイミングの設定
ビットタイミングレジスタ (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 は標準フレームフォーマットでは ID17 ~ ID0 に設
定する必要はありません。メッセージバッファ (x) の ID は送信では送信メッセージと
して使用され受信ではアクセプタンスコードとして使用されます。
この設定はメッセージバッファ(x) が無効 ( メッセージバッファ有効レジスタ (BVALR)
の BVALx が "0") であるときに行わなければなりません。バッファが有効 (BVALx=1)
のときに設定を行うと不必要な受信メッセージが格納される可能性があります。
478
第 22 章 CAN コントローラ
■ アクセプタンスフィルタの設定
メッセージバッファ(x) のアクセプタンスフィルタはアクセプタンスコードおよびアク
セプタンスマスク設定により設定されます。それはアクセプタンスメッセージバッ
ファ (x) が無効 ( メッセージバッファ有効レジスタ (BVALR) の BVALx が "0") である
ときに設定しなければなりません。バッファが有効 (BVALx=1) であるときに設定を行
うと不必要な受信メッセージが格納される可能性があります。
各メッセージバッファ(x) で使用されたアクセプタンスマスクをアクセプタンスマスク
選択レジスタ (AMSR) により設定してください。アクセプタンスマスクレジスタ
(AMR0 および AMR1) も使用するのであれば設定しなければなりません ( 設定の詳細
に関しては「22.6.18 アクセプタンスマスク選択レジスタ (AMSR)」および「22.6.19 ア
クセプタンスマスクレジスタ 0 および 1(AMR0/AMR1) 」を参照してください ) 。
アクセプタンスマスクは不必要な受信メッセージが格納されたときでも送信要求が解
除されないように設定しなければなりません。例えばそれは同一の ID のメッセージの
みを送信するのであればフルビット比較に設定しなければなりません。
■ 低消費電力モードの設定
F2MC-16LX を低消費電力モード ( 停止 , タイムベースタイマなど ) に設定するには制
御ステータスレジスタ (CSR) のバス動作停止ビット (HALT) に "1" を書き込んでからバ
ス動作が停止したか (HALT=1) をチェックしてください。
479
第 22 章 CAN コントローラ
22.11
メッセージバッファ (x) による送信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定が完了した後で , BVALx を "1" に設定してメッセージバッ
ファ (x) を有効にしてください。
■ メッセージバッファ (x) による送信方法
● 送信データ長コードの設定
送信データ長コード ( バイト単位 ) を DLC レジスタ (DLCRx) の DLC3 ~ DLC0 に設定
してください。
データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して
は送信メッセージのデータ長を設定してください。
リモートフレーム送信 (TRTRx=1 のとき ) に対しては要求メッセージのデータ長 ( バイ
ト単位 ) を設定してください。
<注意事項>
0000B ~ 1000B (0 ~ 8 バイト ) 以外の設定は禁止されています。
● 送信データの設定 ( データフレームの送信に対してのみ )
データフレーム送信 ( 送信 RTR レジスタ (TRTRR) の TRTRx が "0" のとき ) に対して
はデータを送信バイト数分データレジスタ (DTRx) に設定してください。
<注意事項>
送信データは送信要求レジスタ (TREQR) の TREQx ビットを "0" に設定して再書込みし
なければなりません。メッセージバッファ有効レジスタ (BVALR) の BVALx ビットを "0"
に設定する必要はありません。BVALx ビットを "0" に設定するとリモートフレーム受信を
喪失する可能性があります。
● 送信 RTR レジスタの設定
データフレーム送信に対しては送信 RTR レジスタ (TRTRR) の TRTRx を "0" に設定し
てください。
リモートフレーム送信に対しては TRTRx を "1" に設定してください。
● 送信開始条件の設定 ( データフレームの送信のみ )
データフレーム送信に対する要求が設定された直後に送信を開始するためには , リ
モートフレーム受信待機レジスタ (RFWTR) の RFWTx を "0" に設定してください ( 送
信要求レジスタ (TREQR) の TREQx は "1" であり送信 RTR レジスタ (TRTRR) の TRTRx
は "0" です ) 。
データフレーム送信に対する要求が設定 (TREQx=1およびTRTRx=0)された後にリモー
480
第 22 章 CAN コントローラ
トフレームを受信する ( リモート要求受信レジスタ (RRTRR) の RRTRx が "1" になる )
まで待機した後に送信を開始するためには , RFWTx を "1" に設定してください。
<注意事項>
もし RFWTx が "1" に設定されるとリモートフレーム送信を行うことはできません。
● 送信完了割込みの設定
送信完了割込みを発生する場合には , 送信割込み許可レジスタ (TIER) の TIEx を "1" に
設定してください。
送信完了割込みを発生しない場合には , TIEx を "0" に設定してください。
● 送信要求の設定
送信要求を行うには , 送信要求レジスタ (TREQR) の TREQx を "1" に設定してください。
● 送信要求の解除
メッセージバッファ (x) に対する送信の要求を解除するときには , 送信解除レジスタ
(TCANR) の TCANx に "1" を書き込んでください。
TREQx をチェックしてください。TREQx=0 の場合には送信解除が終了したか送信が
完了しています。送信完了レジスタ (TCR) の TCx をチェックしてください。TCx=0 の
場合には送信解除は終了しています。TCx=1 ならば送信が完了しています。
● 送信完了の処理
送信が成功すれば送信完了レジスタ (TCR) の TCx は "1" になります。
もし送信完了割込みが許可されていれば ( 送信割込み許可レジスタ (TIER) の TIEx = 1)
割込みが生じます。
送信完了をチェックした後に TCx に "0" を書き込んでそれを "0" に設定してください。
これにより送信完了割込みが解除されます。
次の場合には待ち状態中の送信要求はメッセージの受信および格納により解除されま
す。
• データフレームの受信によるデータフレーム送信の要求
• データフレームの受信によるリモートフレーム送信の要求
• リモートフレームの受信によるリモートフレーム送信の要求
データフレーム送信に対する要求はリモートフレームの受信および格納によっては解
除されません。ただし , ID および DLC は受信したリモートフレームの ID および DLC
により変更されます。送信されるべきデータフレームの ID および DLC が受信したリ
モートフレームの値になることに注意してください。
481
第 22 章 CAN コントローラ
22.12
メッセージバッファ (x) による受信方法
ビットタイミングの設定 , フレームフォーマットの設定 , ID の設定およびアクセプ
タンスフィルタの設定の後で , 以下の設定をしてください。
■ メッセージバッファ (x) による受信方法
● 受信割込み設定
受信割込みを許可するには受信割込み許可レジスタ (RIER) の RIEx を "1" に設定して
ください。
受信割込みを禁止するには RIEx を "0" に設定してください。
● 受信開始
設定の後で受信を開始するときにはメッセージバッファ有効レジスタ (BVALR) の
BVALx を "1" に設定してメッセージバッファ (x) を有効にしてください。
● 受信完了の処理
アクセプタンスフィルタへの通過の後に受信が成功すれば受信メッセージはメッセー
ジバッファ (x) に格納されて受信完了レジスタ (RCR) の RCx は "1" になります。デー
タフレーム受信に関してはリモート要求受信レジスタ (RRTRR) の RRTRx は "0" にな
ります。リモートフレーム受信に関しては RRTRx は "1" になります。
もし受信割込みが許可されれば ( 受信割込み許可レジスタ (RIER) の RIEx = 1) 割込み
が生じます。
受信完了をチェックした後 (RCx=1) で受信メッセージを処理してください。
受信メッセージの処理を完了した後は受信オーバランレジスタ (ROVRR) の ROVRx を
チェックしてください。
ROVRx=0 ならば , 処理された受信メッセージは有効です。RCRx に "0" を書き込んで
それを "0" に設定し ( 受信完了割込みも解除されます ) て受信を終了します。
ROVRx=1 ならば受信オーバランが生じ , 処理された受信メッセージに新たな受信メッ
セージが上書きされている可能性があります。この場合には ROVRx ビットに "0" を書
き込んで , それを "0" に設定した後で受信メッセージを再処理しなければなりません。
図 22.12-1 に受信割込み処理の一例を示します。
482
第 22 章 CAN コントローラ
図 22.12-1 受信割込み処理の例
RCx = 1 で割込み
受信メッセージ読出し
A: = ROVRx
ROVRx := 0
A = 0?
NO
YES
RCx := 0
終了
483
第 22 章 CAN コントローラ
22.13
マルチレベルメッセージバッファの構成の決定
受信が頻繁に行われる場合 , または不特定多数 ID のメッセージを受信するのであれ
ば , すなわちメッセージを処理する時間が不十分であれば , 1 つ以上のメッセージ
バッファを組み合わせてマルチレベルメッセージバッファとすることにより , CPU
による受信メッセージの処理に対する余裕を与えてください。
■ マルチレベルメッセージバッファの構成の決定
マルチレベルメッセージバッファを用意するには組み合わされた各メッセージバッ
ファに同じアクセプタンスフィルタを設定しなければなりません。
もしアクセプタンスマスク選択レジスタ(AMSR)の各ビットが全ビット比較 ((AMSx.1,
AMSx.0)=(0, 0)) に設定されていればメッセージバッファをマルチレベルメッセージ構
成とすることはできません。これは全ビット比較では受信完了レジスタ (RCR) の RCx
ビットの値の如何にかかわらず受信メッセージが格納されることから , 1 つ以上のメッ
セージバッファに対して全ビット比較および同一アクセプタンスコード (ID レジスタ
(IDRx)) が指定されたとしても受信メッセージが常に下位番号の ( 優先度の低い ) メッ
セージバッファに格納されるからです。このため , 全ビット比較および同一アクセプタ
ンスコードを 1 つ以上のメッセージバッファに指定してはなりません。
図 22.13-1 は , マルチレベルメッセージバッファの動作例を示しています。
484
第 22 章 CAN コントローラ
図 22.13-1 マルチレベルメッセージバッファの動作例
初期化
AMS15, AMS14, AMS13
AMSR 10 10 10
.. .
AM28 ~ AM18
AMR0 選択
AMS0
ID28 ~ ID18
メッセージバッファ 13
メッセージバッファ 14
メッセージバッファ 15
0000 1111 111
0101 0000 000
0101 0000 000
0101 0000 000
RC15, RC14, RC13
IDE
.. .
0
.. .
RCR 0
0
0
.. .
0
.. .
ROVRR 0
0
0
.. .
0
.. .
ROVR15, ROVR14, ROVR13
マスク
メッセージ受信中:受信メッセージはメッセージバッファ 13 に格納されます。
ID28 ~ ID18
IDE
メッセージ受信中
0101 1111 000
0
.. .
メッセージバッファ 13
0101 1111 000
0
.. .
RCR 0
0
1
.. .
メッセージバッファ 14
0101 0000 000
0
.. .
ROVRR 0
0
0
.. .
メッセージバッファ 15
0101 0000 000
0
.. .
メッセージ受信中:受信メッセージはメッセージバッファ 14 に格納されます。
メッセージ受信中
メッセージバッファ 13
メッセージバッファ 14
メッセージバッファ 15
0101 1111 001
0
.. .
0101 1111 000
0
.. .
RCR 0
1
1
.. .
0
.. .
ROVRR 0
0
0
.. .
0
.. .
0101 1111 001
0101 0000 000
メッセージ受信中:受信メッセージはメッセージバッファ 15 に格納されます。
メッセージ受信中
0101 1111 010
0
.. .
メッセージバッファ 13
0101 1111 000
0
.. .
RCR 1
1
1
.. .
メッセージバッファ 14
0101 1111 001
0
.. .
ROVRR 0
0
0
.. .
0
.. .
メッセージバッファ 15
0101 1111 010
メッセージ受信中:オーバランが発生し (ROVR13=1), 受信メッセージはメッセージバッファ 13 に格納されます。
メッセージ受信中
0101 1111 011
0
.. .
メッセージバッファ 13
0101 1111 011
0
.. .
RCR 1
1
1
.. .
メッセージバッファ 14
0101 1111 001
0
.. .
ROVRR 0
0
1
.. .
メッセージバッファ 15
0101 1111 010
0
.. .
<注意事項>
4 個のメッセージが同一のアクセプタンスフィルタ設定によりメッセージバッファ13, 14
および 15 に受信されます。
485
第 22 章 CAN コントローラ
22.14
CAN ダイレクトモードレジスタ (CDMR)
MB90945 はシステムクロック用のクロックモジュレータを提供します。CAN コン
トローラが変調クロックで動作できないため , 非変調クロックが , クロックモジュ
レータ設定と無関係に CAN コントローラに提供されます。
■ CAN ダイレクトモードレジスタ (CDMR)
図 22.14-1 CAN ダイレクトモードレジスタ (CDMR) の構成
CDMR
アドレス:
CAN0: 00356EH
bit7
-
-
bit6
-
-
bit5
-
-
bit4
-
-
bit3
-
-
bit2
-
-
bit1
bit0
-
-
DIRECT
R/W
初期値
XXXXXXX0B
R/W :リード / ライト可能
X
:不定
- :未定義
■ CAN ダイレクトモードレジスタの内容
表 22.14-1 CAN ダイレクトモードレジスタの DIRECT ビット機能
ビット名
bit 7
~
bit1
未定義ビット
-
DIRECT
bit 0
486
機能
クロック変調が禁止のときは , このビットに "1" を書き込んでくださ
い。これにより , CAN コントローラは変調クロックとの同期をス
キップし , CAN と CPU 間での通信を可能な限りの速度で実施されま
す。
変調システムクロックと非変調クロックを同期するためにクロック
変調を許可にする場合は , このビットに "0" を書き込まなければなり
ません。
第 22 章 CAN コントローラ
22.15
CAN コントローラの使用上の注意
CAN コントローラの使用は , 下記の点に注意してください。
■ BVAL ビットによるメッセージバッファ禁止時の注意
メッセージバッファが禁止状態で , CAN コントローラが CAN 通信に参加している状態
(CSR: HALT ビットの読出し値が "0" で , CAN コントローラがメッセージを送信可能な
状態 ) であれば , BVAL ビットにより CAN コントローラの誤動作の影響を受ける可能
性があります。本注意事項は , この現象を回避する方法を説明しています。
● 発生条件
以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ
れない可能性があります。
• CAN コントローラが CAN 通信に参加している状態 , つまり , CSR: HALT ビットの
読出し値が "0" で , CAN コントローラがメッセージを送信可能な状態
• BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容
の読出しの処理を行う場合
● 処置
• 送信要求の抑止をする場合の操作
BVAL ビットを送信要求の抑制に使用しないでください。代わりに TCAN ビットを
使用してください。
• 送信メッセージを構成する場合の操作
送信メッセージの構成を行うために , ID レジスタ (IDR) や IDE レジスタ (IDER) の
設定を行う場合は , メッセージバッファ有効レジスタの BVAL ビットによりメッ
セージバッファを無効にする必要があります。
このケースの場合 , TREQ ビットが "0" かどうかチェックした後か , 前メッセージの
通信が完了 (TC=1) した後に BVAL ビットをリセットしてください。
バッファを無効にする場合 , 送信要求の待機がないことを確認してください ( 事前
に送信要求を行った場合 )。このため , 送信中かどうか下記のようにテストする前に
BVALx ビットをリセットしないでください。
a) 必要に応じて送信要求をキャンセル (TCANx=1;)
b) ポーリングか割込みで送信終了を待つ (TREQx=1 の間 )
上記手順の後でのみ , 送信バッファを無効 (BVALx=0) にできます。
(a の注意事項 ) バッファの送信が既に開始されている時は , キャンセル要求は無視
され , バッファの禁止は送信が完了するまで遅延します。
<注意事項>
MB90F947, MB90F949 および MB90V390HA においては , クロック変調と CAN を同時に
使用しないでください。
MB90F946A, MB90947A, MB90F947A, MB90F949A および MB90V390HB においては , 問
題ありません。
487
第 22 章 CAN コントローラ
488
第 23 章
アドレス一致検出機能
アドレス一致検出の機能と動作について説明しま
す。
23.1 アドレス一致検出機能の概要
23.2 アドレス一致検出機能のレジスタ
23.3 アドレス一致検出機能の動作
23.4 アドレス一致検出機能の使用例
489
第 23 章 アドレス一致検出機能
23.1
アドレス一致検出機能の概要
アドレスが , アドレス検出レジスタに設定された値と等しい場合に , CPU に読み込
まれる命令コードを強制的に INT9 命令のコード (01H) に置き換えます。その結果 ,
CPU が設定された命令を実行するときに , INT9 命令を実行します。INT9 割込み
ルーチンで処理を行うことにより , アドレス一致検出機能を実現できます。
アドレス検出レジスタは 5 本用意されており , レジスタごとに割込み許可ビットが
あります。アドレス検出レジスタに設定された値とアドレスが一致して , かつ割込
み許可ビットが "1" の場合 , CPU に読み込まれる命令コードを強制的に INT9 命令
のコードに置き換えます。
■ アドレス一致検出機能のブロックダイヤグラム
図 23.1-1 アドレス一致検出機能のブロックダイヤグラム
アドレスラッチ
アドレス検出
レジスタ
許可ビット
F2MC-16LX バス
490
比
較
INT9 命令
F2MC-16LX
CPU コア
第 23 章 アドレス一致検出機能
23.2
アドレス一致検出機能のレジスタ
アドレス一致検出機能には , 次の 2 種類のレジスタがあります。
• プログラムアドレス検出レジスタ (PADR0 ~ PADR2)
• プログラムアドレス検出制御 / ステータスレジスタ (PACSR0)
■ プログラムアドレス検出レジスタ (PADR0 ~ PADR2)
プログラムアドレス検出レジスタ (PADR0 ~ PADR2) は , 各レジスタに書き込まれた値
と , アドレスを比較します。一致した場合は , PACSR0 の対応する割込み許可ビットが
"1" の場合 , CPU に対して INT9 命令の発生を要求します。
対応する割込み許可ビットが "0" の場合は , 一致していても何も行いません。
図 23.2-1 プログラムアドレス検出レジスタ (PADR0 ~ PADR2)
プログラムアドレス検出レジスタ
アドレス:
PADR0 35E2H/35E1H/35E0H
PADR1 35E5H/35E4H/35E3H
PADR2 35E8H/35E7H/35E6H
バイト
バイト
バイト
アクセス
R/W
R/W
R/W
初期値
不定
不定
不定
表 23.2-1 に , プログラムアドレス検出レジスタ (PADR0 ~ PADR2) と PACSR0 との対
応を示します。
表 23.2-1 PADR0 ~ PADR2 レジスタと PACSR0 レジスタとの対応
アドレス検出レジスタ
割込み許可ビット
PADR0
AD0E (bit 1)
PADR1
AD1E (bit 3)
PADR2
AD2E (bit 5)
491
第 23 章 アドレス一致検出機能
■ プログラムアドレス検出制御 / ステータスレジスタ (PACSR0)
プログラムアドレス検出制御ステータスレジスタ (PACSR0: プログラムアドレス検知
制御ステータスレジスタ ) は , アドレス検出機能の動作を制御します。
図 23.2-2 プログラムアドレス検出制御 / ステータスレジスタ (PACSR0)
PACSR0
アドレス:
00009EH
bit7
予約
R/W
bit6
bit5
予約
R/W
AD2E
R/W
bit4
bit3
予約
R/W
AD1E
R/W
bit2
bit1
bit0
予約
R/W
AD0E
R/W
予約
R/W
初期値
00000000B
R/W :リード / ライト可能
表 23.2-2 PACSR0 の各ビットの機能
ビット名
bit 7, bit6
bit 5
bit 4
bit 3
bit 2
bit 1
bit 0
492
機能
予約ビット
bit7, bit6 は予約ビットです。PACSR0 を設定する前に , このビッ
トを "0" に設定してください。
AD2E:
アドレス検知
レジスタ 2 許可
ビット
AD2E ビットは , PADR2 の動作許可ビットです。
予約ビット
bit4 は予約です。PACSR0 を設定する前にこのビットを "0" に設
定してください。
AD1E:
アドレス検知
レジスタ 1 許可
ビット
AD1E ビットは , PADR1 の動作許可ビットです。
予約ビット
bit2 は予約です。PACSR0 を設定する前にこのビットを "0" に設
定してください。
AD0E:
アドレス検知
レジスタ 0 許可
ビット
AD0E ビットは , PADR0 の動作許可ビットです。
予約ビット
このビットが "1" のとき PADR2 レジスタとアドレスの比較を行
い , 一致した場合に CPU は INT9 命令を実行します。
このビットが "1" のとき PADR1 レジスタとアドレスの比較を行
い , 一致した場合に CPU は INT9 命令を実行します。
このビットが "1" のとき , アドレスは PADR0 レジスタで比較され
ます。一致の場合 , INT9 命令が発行されます。
bit0 は予約です。PACSR0 を設定する前にこのビットを "0" に設
定してください。
第 23 章 アドレス一致検出機能
23.3
アドレス一致検出機能の動作
プログラムカウンタがアドレス一致検出レジスタと同じアドレスを指示している場
合は , INT9 命令を実行します。INT9 命令ルーチンを処理することによってアドレス
一致検出機能を実現できます。
■ アドレス一致検出機能の動作
アドレス検出レジスタは5本用意されており, レジスタごとにコンペア許可ビットがあ
ります。アドレス検出レジスタに設定された値とプログラムカウンタの値が一致して ,
かつコンペア許可ビットが "1" の場合 , CPU は INT9 命令を実行します。
<注意事項>
アドレス検出レジスタとプログラムカウンタの値が一致した場合は , 内部データバスの内
容が強制的に "01H" に変更されるので , INT9 命令を実行することになります。アドレス検
出レジスタの内容を変更する前には , コンペア許可ビットを必ず "0" にしてください。コ
ンペア許可ビットが "1" になっている間に変更すると , 誤動作を引き起こす可能性があり
ます。
493
第 23 章 アドレス一致検出機能
23.4
アドレス一致検出機能の使用例
図 23.4-1 にアドレス一致検出機能のシステム構成例を表 23.4-1 に E2PROM メモリ
マップを示します。
■ アドレス一致検出機能のシステム構成例
図 23.4-1 アドレス一致検出機能のシステム構成例
E 2 PROM
MCU
F2MC-16LX
プルアップ抵抗
SIN
コネクタ (UARRT)
表 23.4-1 E2PROM メモリマップ
アドレス
意味
0000H
パッチプログラム No.0 バイト数 ("0" のときプログラムミスなし )
0001H
プログラムアドレス No.0 bit7 ~ bit0
0002H
プログラムアドレス No.0 bit15 ~ bit8
0003H
プログラムアドレス No.0 bit24 ~ bit16
0004H
パッチプログラム No.1 バイト数 ("0" のときプログラムミスなし )
0005H
プログラムアドレス No.1 bit7 ~ bit0
0006H
プログラムアドレス No.1 bit15 ~ bit8
0007H
プログラムアドレス No.1 bit24 ~ bit16
0010H ~
パッチプログラム No.0 本体
● 初期状態
E2PROM はすべて "0" とします。
● プログラムミスが発生した場合
コネクタ (UART) を通して , MCU にパッチプログラムの本体およびプログラムアドレ
スを転送します。MCU はその情報を E2PROM に書き込みます。
494
第 23 章 アドレス一致検出機能
● リセットシーケンス
MCU はリセット後 E2PROM の値を読み出します。パッチプログラムのバイト数が "0"
でなかった場合は , パッチプログラムの本体が E2PROM から読み出され RAM に書き
込まれます。次に , MCU により PADR0 または PADR1 どちらか一方でパッチアドレス
をセットし , コンペア許可ビットをセットします。再配置可能なパッチプログラムが望
まれる場合は , RAM 領域に対してパッチ済みプログラムの最初のアドレスを書き込む
ことができます。この場合 , INT9 ルーチンがこのユーザ定義の RAM 領域を参照し ,
パッチ済みプログラムへ向けてジャンプします。
● INT9 命令
割込みルーチンでは , スタックプログラムのカウンタの値を調べることにより , 割込み
が発生するアドレスを知ることができます。割込みの最中にスタックへ押し込まれた
情報は破棄されます。
■ プログラムパッチ処理例
図 23.4-2 プログラムパッチ処理例
000000H
③
修正プログラム
RAM
プログラムアドレス検出レジスタ
E2PROM
①
プログラムアドレス検出設定
(リセットシーケンス)
・修正プログラムバイト数
・割込み発生アドレス
・修正プログラム
ROM
②
④
異常プログラム
FFFFFFH
①リセットシーケンスのプログラムアドレス検出設定と通常プログラムの実行
②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐
③INT9処理の分岐による修正プログラムの実行
④修正プログラムから分岐した元の通常プログラムの実行
495
第 23 章 アドレス一致検出機能
図 23.4-3 プログラムパッチ処理フロー図
リセット
E2PROM の 00H を読み出す
INT9
YES
0000H(E2PROM)=0
パッチプログラムへ
NO
JMP 000400H
アドレスを読み出す
0003H (E2PROM)
MOV
PADR0 (MCU)
パッチプログラム実行
000400H ~ 000480H
パッチプログラムを読み出す
パッチプログラム終了
0090H(E2PROM)
MOV
000400H 000480H (MCU)
JMP FF0050H
0001H
0010H
コンペア許可
MOV PACSR, #02H
通常プログラム実行
NO
PC=PADR0
YES
INT9
FFFFFFH
FF0050H
E2PROM
異常プログラム
ROM
FF0000H
FFFFH
FE0000H
0090H
パッチプログラム
0010H
001100H
スタック領域
プログラムアドレス下位:00
RAM 領域
0003H
プログラムアドレス中位:00
0002H
0001H
0000H
496
プログラムアドレス上位:FF
パッチプログラムバイト数:80
000480H
パッチプログラム
RAM
000400H
RAM/ レジスタ領域
000100H
000000H
I/O 領域
第 24 章
ROM ミラー機能選択
モジュール
ROM ミラー機能選択モジュールについて説明しま
す。
24.1 ROM ミラー機能選択モジュールの概要
24.2 ROM ミラー機能選択レジスタ (ROMM)
497
第 24 章 ROM ミラー機能選択モジュール
24.1
ROM ミラー機能選択モジュールの概要
ROM ミラー機能選択モジュールは , ROM が配置されている FF バンクが 00 バンク
でみるかどうかにより変更できます。
■ ROM ミラー機能選択モジュールのブロックダイヤグラム
図 24.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム
F2MC-16LX BUS
ROM ミラー機能選択レジスタ
アドレス領域
FF バンク
00 バンク
ROM
498
第 24 章 ROM ミラー機能選択モジュール
24.2
ROM ミラー機能選択レジスタ (ROMM)
ROM ミラー機能選択レジスタ (ROMM) は , アドレス 004000H ~ 00FFFFH 番地の使
用中にアクセスしないでください。
■ ROM ミラー機能選択レジスタ (ROMM)
ROMM
アドレス:
00006FH
R/W
W
X
-
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
-
-
-
-
-
-
-
-
-
-
-
-
MS
R/W
(+)
MI
W
: リード / ライト可能
: ライトオンリ
: 不定
: 未定義
初期値
XXXXXX+1B
(+):MB90V390HA/HB, MB90F946A: リードオンリ , "1" に固定
MB90F947(A), MB90F949(A) : 選択可能;初期値 0
表 24.2-1 ROM ミラー機能選択レジスタの各ビット機能
ビット名
bit 15
~
bit9
機能
未定義ビット
-
MS:
ミラーサイズ
ビット
"1": 32K バイト ROM ミラーサイズ (008000H ~ 00FFFFH)
MI:
ミラービット
"1" を書込み時には FF バンクの ROM のデータが 00 バンクでも読
み出せるようになります。"0" を書込み時には 00 バンクはこの機
能は働きません。
本ビットは , 書込みのみ可能です。
bit 9
bit 8
"0": 48K バイト ROM ミラーサイズ (004000H ~ 00FFFFH)
( 注意事項 )
MB90V390HA/HB および MB90F946A ではこのビットは "1" に固
定され , 読出しのみ使用できます。
MB90F947(A), MB90F949(A) では選択可能です。
<注意事項>
ROM ミラー機能を起動している場合 , FF4000H/FF8000H ~ FFFFFFH 番地のみ 004000H/
008000H ~ 00FFFFH 番地にミラーされます。このため , FF0000H ~ FF3FFFH/FF7FFFH
番地は 00 バンクにミラーされません。
499
第 24 章 ROM ミラー機能選択モジュール
500
第 25 章
1M/2M/3M ビット
フラッシュメモリ
1M/2M/3M ビットフラッシュメモリの機能や動作
について説明します。
フラッシュメモリへのデータ書込み / 消去の方法に
は , 下記の 3 とおりの方法があります。
• パラレルライタ
• シリアル専用ライタ
• プログラム実行による書込み / 消去
ここでは , " プログラム実行による書込み / 消去 "
について解説します。
25.1 1M/2M/3M ビットフラッシュメモリの概要
25.2 フラッシュメモリ全体のブロックダイヤグラムと
フラッシュメモリのセクタ構成
25.3 書込み / 消去モード
25.4 フラッシュメモリ制御ステータスレジスタ (FMCS)
25.5 フラッシュメモリ自動アルゴリズム起動方法
25.6 自動アルゴリズム実行状態の確認
25.7 フラッシュメモリ書込み / 消去の詳細説明
25.8 1M/2M/3M ビットフラッシュメモリ使用上の注意
25.9 フラッシュメモリにおけるリセットベクタアドレス
25.10 1M/2M/3M ビットフラッシュメモリのプログラム例
501
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.1
1M/2M/3M ビットフラッシュメモリの概要
1M/2M/3M ビットフラッシュメモリは , CPU メモリマップ上の F9/FC/FE ~ FF バン
クに配置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と
同様に CPU からのリードアクセスおよびプログラムアクセスが可能です。フラッ
シュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して
CPU からの命令動作で行えます。このため , 内蔵 CPU の制御による実装状態での書
換えが可能となり , プログラムおよびデータの改善が効率よく行えます。
■ 1M/2M/3M ビットフラッシュメモリの特長
• 自動プログラムアルゴリズム (EmbeddedAlgorithmTM:MBM29LV200 と同様 )
• 消去一時停止 / 消去再開機能の搭載
• データポーリング , トグルビットによる書込み / 消去完了検出
• CPU 割込みによる書込み / 消去の完了検出
• セクタごとの消去が可能 ( セクタ組み合わせ自由 )
• 書込み / 消去回数 ( 最小 ) 10000 回
Embedded AlgorithmTM は Advanced Micro Devices 社の商標です。
<注意事項>
マニュファクチャコードとデバイスコードの読出し機能はありません。また , これらの
コードはコマンドによってもアクセスできません。
■ フラッシュメモリ書込み / 消去の方法
フラッシュメモリは書込みと読出しを同時に行うことはできません。つまり , フラッ
シュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上にあるプログ
ラムを RAM に一度コピーし RAM 実行することで , フラッシュメモリからプログラム
アクセスをせず書込み動作だけを行うことが可能となります。
■ フラッシュメモリのレジスタ
● フラッシュメモリ制御ステータスレジスタ (FMCS)
FMCS
アドレス :
0000AEH
bit7
bit6
INTE RDYINT
R/W
R/W
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
502
bit5
bit4
bit3
bit2
bit1
bit0
WE
R/W
RDY
R
予約
R/W
予約
R/W
予約
R/W
予約
R/W
初期値
000X0000B
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.2
フラッシュメモリ全体のブロックダイヤグラムとフ
ラッシュメモリのセクタ構成
図 25.2-1 に , フラッシュメモリインタフェース回路付のフラッシュメモリ全体のブ
ロックダイヤグラムを , 図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示
します。および図 25.2-3 に , 2M ビットフラッシュメモリのセクタ構成を示します。
さらに図 25.2-4 に , 3M ビットフラッシュメモリのセクタ構成を示します。
■ フラッシュメモリ全体のブロックダイヤグラム
図 25.2-1 フラッシュメモリ全体のブロックダイヤグラム
フラッシュメモリ
インタフェース回路
ポート 0
ポート 1
ポート 2
ポート 3
ポート 4
ポート 5
F2MC-16LX
バス
BYTE
INT
1M/2M/3M ビット
フラッシュメモリ
BYTE
CE
CE
OE
OE
WE
WE
AQ0 to AQ18
AQ0 to AQ17
AQ-1
DQ0 to DQ15
DQ0 to DQ15
RY/BY
RY/BY
RESET
ライトイネーブル割込み信号
(CPU へ )
外部リセット信号
RY/BY ライト
イネーブル信号
503
第 25 章 1M/2M/3M ビット フラッシュメモリ
■ 1M ビットフラッシュメモリのセクタ構成
図 25.2-2 に , 1M ビットフラッシュメモリのセクタ構成を示します。
図中アドレスには ,
各セクタの上位アドレスと下位アドレスを示します。
図 25.2-2 1M ビットフラッシュメモリのセクタ構成
MB90F947(A)
SA4 (16K バイト )
SA3 (8K バイト )
SA2 (8K バイト )
SA1 (32K バイト )
SA0 (64K バイト )
ライタアドレス *
CPU アドレス
7FFFFH
FFFFFFH
7C000H
7BFFFH
FFC000H
FFBFFFH
7A000H
79FFFH
FFA000H
FF9FFFH
78000H
77FFFH
FF8000H
FF7FFFH
70000H
6FFFFH
FF0000H
FEFFFFH
60000H
FE0000H
*:パラレルライタを使用してフラッシュメモリに書込み/消去を行う際は, 必
ずライタアドレスを使用してください。
504
第 25 章 1M/2M/3M ビット フラッシュメモリ
■ 2M ビットフラッシュメモリのセクタ構成
図 25.2-3 に , 2M ビットフラッシュメモリのセクタ構成を示します。
図中アドレスには ,
各セクタの上位アドレスと下位アドレスを示します。
図 25.2-3 2M ビットフラッシュメモリのセクタ構成
MB90F949(A)
SA6 (16K バイト )
SA5 (8K バイト )
SA4 (8K バイト )
SA3 (32K バイト )
SA2 (64K バイト )
SA1 (64K バイト )
SA0 (64K バイト )
ライタアドレス *
CPU アドレス
7FFFFH
FFFFFFH
7C000H
7BFFFH
FFC000H
FFBFFFH
7A000H
79FFFH
FFA000H
FF9FFFH
78000H
77FFFH
FF8000H
FF7FFFH
70000H
6FFFFH
FF0000H
FEFFFFH
60000H
5FFFFH
FE0000H
FDFFFFH
50000H
4FFFFH
FD0000H
FCFFFFH
40000H
FC0000H
*: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必
ずライタアドレスを使用してください。
505
第 25 章 1M/2M/3M ビット フラッシュメモリ
■ 3M ビットフラッシュメモリのセクタ構成
図 25.2-4 に , 3M ビットフラッシュメモリのセクタ構成を示します。
図中アドレスには ,
各セクタの上位アドレスと下位アドレスを示します。
図 25.2-4 3M ビットフラッシュメモリのセクタ構成
MB90F946A
SA8 (16K バイト )
SA7 (8K バイト )
SA6 (8K バイト )
SA5 (32K バイト )
SA4 (64K バイト )
SA3 (64K バイト )
未使用
SA2 (64K バイト )
SA1 (64K バイト )
SA0 (64K バイト )
未使用
ライタアドレス *
CPU アドレス
7FFFFH
FFFFFFH
7C000H
7BFFFH
FFC000H
FFBFFFH
7A000H
79FFFH
FFA000H
FF9FFFH
78000H
77FFFH
FF8000H
FF7FFFH
70000H
6FFFFH
FF0000H
FEFFFFH
60000H
5FFFFH
FE0000H
FDFFFFH
50000H
4FFFFH
FD0000H
FCFFFFH
40000H
3FFFFH
FC0000H
FBFFFFH
30000H
2FFFFH
FB0000H
FAFFFFH
20000H
1FFFFH
FA0000H
F9FFFFH
10000H
0FFFFH
F90000H
F8FFFFH
00000H
F80000H
*: パラレルライタを使用してフラッシュメモリに書込み / 消去を行う際は , 必
ずライタアドレスを使用してください。
506
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.3
書込み / 消去モード
フラッシュメモリのアクセスは , フラッシュメモリモードとその他モードの 2 つの
異なる方法で行われます。フラッシュメモリモードでは , 外部端子から直接書込み /
消去が行え , その他モードでは , 内部バスを介して CPU から書込み / 消去が行えま
す。モードの選択はモード外部端子で行います。
■ フラッシュメモリモード
リセット信号が発生中にモード端子を "111B" にセットすると , CPU が停止します。フ
ラッシュメモリインタフェース回路は直接ポート0, 1, 2, 3, 4, 5に接続しているので, 外
部端子から直接制御できます。このモードでは , MCU が外部端子中の標準フラッシュ
メモリと同様の動作を行い , フラッシュメモリプログラマを使用して書込み / 消去が行
えます。
フラッシュメモリモードでは , フラッシュメモリ自動アルゴリズムでサポートされる
すべての動作を使用できます。
■ その他モード
フラッシュメモリは , CPU メモリ空間の F9/FC/FE ~ FF バンクに配置されており , 通
常のマスク ROM と同様にフラッシュメモリインタフェース回路を介して CPU から読
出しアクセスおよびプログラムアクセスできます。
フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して
CPU からの命令で実行されます。このため , このモードでは MCU が対象ボードにはん
だ付けされていても再書込みが可能です。
これらのモードでは , セクタプロテクト動作を実行することはできません。
<注意事項>
フラッシュメモリへの書込み / 消去はすべてのマシンクロック周波数で指定されません。
データシートの交流規格を参照してください。
■ フラッシュメモリの制御信号
表 25.3-1 に , フラッシュメモリモードでのフラッシュメモリ制御信号を示します。
フラッシュメモリ制御信号と MBM29LV200 の外部端子には , ほぼ 1 対 1 の対応関係が
存在します。セクタプロテクト動作で必要となる VID(12V) 端子は , MBM29LV200 にお
ける A9, RESET, OE の代わりに , MD0, MD1, MD2 となります。
フラッシュメモリモードでは , 外部データバス幅は 8 ビットに制限されており , 1 バイ
トのアクセスしか許可されません。DQ15 ~ DQ8 はサポートされていません。BYTE
端子は常に "0" にセットしてください。
507
第 25 章 1M/2M/3M ビット フラッシュメモリ
表 25.3-1 フラッシュメモリ制御信号
MB90F947(A)/MB90F949(A)/MB90F946A
MBM29LV200
端子番号
通常機能
フラッシュメモリモード
5
P30
AQ16
A15
6
P31
CE
CE
7
P32
OE
OE
8
P33
WE
WE
9
P34
AQ17
A16
10
P35
AQ18
-
11
P36
BYTE
BYTE
12
P37
RY/BY
RY/BY
18 ~ 21
P40 ~ P43
AQ8 ~ AQ11
A7 ~ A10
22 , 23
P46 , P47
AQ12 , AQ13
A11 , A12
24
P50
AQ14
A13
25
PB0
AQ15
A14
51
MD2
MD2
OE (VID)
52
MD1
MD1
RESET (VID)
53
MD0
MD0
A9 (VID)
54
RST
RESET
RESET
77 ~ 84
P00 ~ P07
DQ0 ~ DQ7
DQ0 ~ DQ7
85 ~ 89
P10 ~ P14
DQ8 ~ DQ12
DQ8 ~ DQ12
94 ~ 96
P15 ~ P17
DQ13 ~ DQ15
DQ13 ~ DQ15
97 ~ 100
P20 ~ P23
AQ0 ~ AQ3
A-1, A0 ~ A2
1~4
P24 ~ P27
AQ4 ~ AQ7
A3 ~ A6
<注意事項>
上記で述べられていないすべてのポート端子はプルアップ抵抗を介してVccに接続してく
ださい。
508
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.4
フラッシュメモリ制御ステータスレジスタ (FMCS)
フラッシュメモリ制御ステータスレジスタ (FMCS) は , フラッシュメモリインタ
フェース回路にあるレジスタで , フラッシュメモリの書込み / 消去の際に使用しま
す。
■ フラッシュメモリ制御ステータスレジスタ (FMCS)
図 25.4-1 フラッシュメモリ制御ステータスレジスタ (FMCS)
FMCS
bit7
アドレス :
0000AEH
bit6
INTE RDYINT
R/W
R/W
bit5
bit4
bit3
bit2
bit1
bit0
初期値
WE
R/W
RDY
R
予約
R/W
予約
R/W
予約
R/W
予約
R/W
000X0000B
R/W :リード / ライト可能
R
:リードオンリ
X
:不定
● ビット内容
【bit7】INTE( 割込み許可 )
フラッシュメモリの書込み / 消去の終了で CPU に割込みを発生させるビットです。
INTE ビットが "1" でかつ RDYINT ビットが "1" のときに CPU へ割込みが発生します。
INTE ビットが "0" であれば割込みは発生しません。
• 0: 書込み / 消去終了での割込み禁止
• 1: 書込み / 消去終了での割込み許可
【bit6】RDYINT( レディ割込み )
フラッシュメモリの動作状態を表すビットです。
フラッシュメモリの書込み / 消去が終わって "1" となります。フラッシュメモリ書込み /
消去後このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。書込
み / 消去が終了して "1" になった後は , フラッシュメモリへの書込み / 消去が可能になり
ます。"0" 書込みによって "0" にクリアされ , "1" の書込みは無視されます。フラッシュ
メモリ自動アルゴリズム (「25.5 フラッシュメモリ自動アルゴリズム起動方法」参照 ) 終
了タイミングで , "1" にセットされます。リードモディファイライト (RMW) 系命令使用
時は , 必ず "1" が読めます。
• 0: 書込み / 消去動作実行中
• 1: 書込み / 消去動作終了 ( 割込み要求発生 )
509
第 25 章 1M/2M/3M ビット フラッシュメモリ
【bit5】WE( 書込み許可 )
フラッシュメモリ領域へのライト許可ビットです。
このビットが "1" のとき , F9/FC/FE ~ FF バンクへのコマンドシーケンス 「25.5
(
フラッ
シュメモリ自動アルゴリズム起動方法」参照 ) 発行後の書き込みは , フラッシュメモリ
領域への書き込みになります。本ビットが "0" のとき , 書込み / 消去の信号は発生され
ません。このビットはフラッシュメモリの書込み / 消去のコマンドを起動する際に使
用します。
書込み/消去を行わないときは, 誤ってフラッシュメモリにデータを書き込まないよう,
常に "0" に設定することを推奨します。
• 0: フラッシュメモリ書込み / 消去禁止
• 1: フラッシュメモリ書込み / 消去許可
【bit4】RDY( レディ )
フラッシュメモリの書込み / 消去ステータスビットです。
このビットが "0" の間は , フラッシュメモリへの書込み / 消去はできません。なお , こ
の状態でも読出し / リセットコマンド , セクタ消去一時停止等のサスペンドコマンドは
受け付けられます。
• 0: 書込み / 消去動作実行中
• 1: 書込み / 消去動作終了 ( 次データ書込み / 消去許可 )
【bit3 ~ bit0】予約ビット
試験用予約ビットです。通常使用時は必ず "0" に設定してください。
<注意事項>
RDYINT ビットと RDY ビットは同時には変化しません。どちらか片方のビットで判定す
るようプログラムを作成してください。
図 25.4-2 RDYINT, RDY ビットの遷移
自動アルゴリズム
終了タイミング
RDYINT ビット
RDY ビット
1 マシンサイクル
510
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.5
フラッシュメモリ自動アルゴリズム起動方法
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット ,
書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と
再開の制御が可能です。
■ コマンドシーケンス表
表 25.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま
す。コマンドレジスタにライトするデータはすべてバイトですが , ワードアクセスでラ
イトするようにしてください。このときの上位バイト分のデータは無視されます。
表 25.5-1 コマンドシーケンス表
コマンド
シーケンス
バスラ
イトア
クセス
1st バスライト
サイクル
2nd バスライト
サイクル
3rd バスライト
サイクル
4th バスライト
サイクル
5th バスライト
サイクル
6th バスライト
サイクル
アドレス
データ
アドレス
データ
アドレス
データ
アドレス
データ
アドレス
データ
アドレス
データ
読出し /
リセット *
1
FxXXXX
XXF0
-
-
-
-
-
-
-
-
-
-
読出し /
リセット *
4
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XXF0
RA
RD
-
-
-
-
書込み
プログラム
4
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XXA0
PA
(even)
PD
(word)
-
-
-
-
チップ
消去
6
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XX80
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XX10
セクタ
消去
6
FxAAAA
XXAA
Fx5554
XX55
FxAAAA
XX80
FxAAAA
XXAA
Fx5554
XX55
SA
(even)
XX30
セクタ消去一時停止
アドレス "FxXXXX" データ (xxB0H) の入力で , セクタ消去中の消去一時停止
セクタ消去再開
アドレス "FxXXXX" データ (xx30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始
AutoSelect
3
FxAAA
XXAA
Fx5554
XX55
FxAAAA
XX90
-
-
-
-
-
-
( 注意事項 )
・表中のアドレス Fx は , 1M ビットフラッシュメモリの FF, FE, 2M ビットフラッシュメモリの FF, FE, FD, FC および 3M ビットフ
ラッシュメモリの FF, FE, FD, FB, FA, F9 を意味します。それぞれの操作時にはアクセス対象バンクの値としてください。
・表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはすべて 16 進数表記しています。ただし , "X" は任意の
値です。
・RA: 読出しアドレス
・PA: 書込みアドレス , 偶数アドレスのみ指定可能
・SA: セクタアドレス , 「25.2 フラッシュメモリ全体のブロックダイヤグラムとフラッシュメモリのセクタ構成」を参照してくださ
い。
・RD: 読出しデータ
・PD: 書込みデータ , ワードデータのみ指定可能
*:2 種類の読出し / リセットコマンドは , どちらもフラッシュメモリを読出しモードにリセットできます。
511
第 25 章 1M/2M/3M ビット フラッシュメモリ
表 25.5-1 における Autoselect はセクタ保護の状態を知るためのコマンドです。実際に
は前期コマンドとともに下記のようにアドレスを設定する必要があります。
表 25.5-2 AutoSelect 時のアドレス設定
セクタ保護
AQ13 ~ AQ18
AQ7
AQ2
AQ1
AQ0
DQ7 ~ DQ0
セクタアドレス
L
H
L
L
CODE*
*: 保護されたセクタアドレスでの出力は "01H", 保護されていないセクタアドレスでの出力は "00H"
512
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態や動作完了したことを知らせるハードウェアを持ち
ます。この自動アルゴリズムは , 下記のハードウェアシーケンスフラグによって内
蔵フラッシュメモリの動作状態の確認ができます。
■ ハードウェア・シーケンス・フラグ
ハードウェア・シーケンス・フラグは , DQ7, DQ6, DQ5, DQ3, DQ2 の 5 ビットの出力で
構成されます。それぞれがデータポーリングフラグ (DQ7), トグルビットフラグ (DQ6),
タイミングリミット超過フラグ (DQ5), セクタ消去タイマフラグ (DQ3), トグルビット 2
フラグ (DQ2) の機能を持ちます。これにより , 書込み / チップ・セクタ消去終了 , 消去
コードライトが有効かどうか確認できます。ハードウェア・シーケンス・フラグを参
照するには , コマンドシーケンス (「25.5 フラッシュメモリ自動アルゴリズム起動方
法」の表 25.5-1 を参照 ) 設定後にフラッシュメモリ内部の対象セクタのアドレスにリー
ドアクセスすることで参照できます。表 25.6-1 に , ハードウェア・シーケンス・フラ
グのビット割当てを示します。
表 25.6-1 ハードウェア・シーケンス・フラグのビット割当て
ビット No.
ハードウェアシーケンスフラグ
7
6
5
4
3
2
1
0
DQ7
DQ6
DQ5
-
DQ3
DQ2
-
-
自動書込み / チップ・セクタ消去が実行中であるかの判断は , ハードウェア・シーケン
ス・フラグを確認するか , フラッシュメモリ制御レジスタ (FMCS) の RDY ビットを確
認することで , 書込みが終了しているかを知ることができ , 書込み / 消去終了後は , 読
出し / リセット状態に戻ります。実際にプログラムを作成する際には , いずれかのフラ
グで自動書込み / 消去終了を確認後に , データの読出し等の次処理を行ってください。
また , 2 回目以降のセクタ消去コードライトが有効であるかも , ハードウェア・シーケ
ンス・フラグによって確認できます。次項に各ハードウェア・シーケンス・フラグの
説明を示します。表 25.6-2 に , ハードウェア・シーケンス・フラグ機能の一覧を示し
ます。
513
第 25 章 1M/2M/3M ビット フラッシュメモリ
表 25.6-2 ハードウェア・シーケンス・フラグ機能一覧
DQ7
DQ6
DQ5
DQ3
DQ2
DQ7 →
DATA:7
Toggle →
DATA:6
0→
DATA:5
0→
DATA:3
1→
DATA:2
チップ・セクタ消去動作→
消去完了
0→1
Toggle →
Stop
0→1
1
Toggle →
Stop
セクタ消去待ち→消去開始
0
Toggle
0
0→1
Toggle
消去動作→セクタ消去一時
停止 ( 消去中のセクタ )
0→1
Toggle → 1
0
1→0
Toggle
セクタ消去一時停止→消去
再開 ( 消去中のセクタ )
1→0
1 → Toggle
0
0→1
Toggle
DATA:7
DATA:6
DATA:5
DATA:3
DATA:2
DQ7
Toggle
1
0
1
0
Toggle
1
1
1*
状態
書込み動作→書込み完了
( 書込みアドレス指定時 )
正常動作
時の状態
変化
セクタ消去一時停止中
( 消去中でないセクタ )
書込み動作
異常動作
チップ / セクタ消去動作
*:DQ5 が "1" のとき ( タイミングリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対しては
DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。
514
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6.1
データポーリングフラグ (DQ7)
データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状
態であることをデータポーリング機能によって知らせるためのフラグです。
■ データポーリングフラグ (DQ7)
表 25.6-3 と表 25.6-4 に , データポーリングフラグの状態遷移を示します。
表 25.6-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 )
動作
状態
DQ7
書込み動作
→完了
チップ /
セクタ消去
→完了
セクタ消去
待ち
→開始
( 消去中のセクタ )
0→1
0
0→1
DQ7 →
セクタ消去→
消去一時停止
セクタ消去
一時停止→
再開
セクタ消去
一時停止中
( 消去中のセクタ )
( 消去中でない
セクタ )
1→0
DATA:7
表 25.6-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ7
DQ7
0
● 書込み動作時
自動書込みアルゴリズム実行中にリードアクセスすると , フラッシュメモリはアドレ
スの指し示す番地によらず , 最後に書き込まれたデータの bit7 の反転データを出力し
ます。自動書込みアルゴリズム終了時にリードアクセスすると , フラッシュメモリはア
ドレスの指し示す番地の読出し値の bit7 を出力します。
● チップ / セクタ消去動作時
チップ消去 / セクタ消去アルゴリズム実行中に , セクタ消去時は現在消去しているセク
タから , チップ消去時はアドレスの指し示す番地に関係なく , リードアクセスするとフ
ラッシュメモリは "0" を出力します。同様に終了時には "1" を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタであれば "1" を出力し , 消去中のセクタでなければアドレス
の指し示す番地の読出し値の bit7(DATA:7) を出力します。トグルビットフラグ (DQ6)
とともに参照することで , 現在セクタ一時停止状態であるか , どのセクタが消去中であ
るかの判定が可能です。
<注意事項>
自動アルゴリズム起動時は指定したアドレスへのリードアクセスは無視されます。データ
の読出しは , データポーリングフラグ (DQ7) の終了を受けて他のビットの出力が可能とな
ります。このため , 自動アルゴリズム終了後のデータの読出しは , データポーリング終了
を確認したリードアクセスの次に行うようにしてください。
515
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6.2
トグルビットフラグ (DQ6)
トグルビットフラグ (DQ6) は , データポーリングフラグと同様に , 主に自動アルゴ
リズム実行が進行中または終了状態であることをトグルビット機能によって知らせ
るためのフラグです。
■ トグルビットフラグ (DQ6)
表 25.6-5 と表 25.6-6 に , トグルビットフラグの状態遷移を示します。
表 25.6-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 )
動作
状態
DQ6
書込み動作
→完了
Toggle →
DATA:6
チップ /
セクタ消去
→完了
セクタ消去
待ち
→開始
( 消去中のセクタ )
Toggle →
Stop
Toggle
Toggle → 1
セクタ消去→
消去一時停止
セクタ消去
一時停止→
再開
セクタ消去
一時停止中
( 消去中のセクタ )
( 消去中でない
セクタ )
1 → Toggle
DATA:6
表 25.6-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ6
Toggle
Toggle
● 書込み / チップ・セクタ消去時
自動書込みアルゴリズムおよびチップ・セクタ消去アルゴリズム実行中に , 連続した
リードアクセスを行うと , フラッシュメモリはアドレスの指し示す番地によらず , リー
ドごとに "1" と "0" を交互に出力するトグル状態を出力します。自動書込みアルゴリズ
ムおよびチップ / セクタ消去アルゴリズム終了時に連続したリードアクセスを行うと
フラッシュメモリは bit6 のトグル動作を止め , アドレスの指し示す番地の読出し値の
bit6(DATA:6) を出力します。
● セクタ消去一時停止時
セクタ消去一時停止時にリードアクセスすると , フラッシュメモリはアドレスの指し
示す番地が消去中のセクタに属するならば , "1" を出力します。消去中のセクタに属さ
ないのであれば , アドレスの指し示す番地の読出し値の bit6(DATA:6) を出力します。
<注意事項>
書込みの際 , 書き込もうとしているセクタが書換え保護されているセクタの場合は , 約
2μs のトグル動作をした後 , データを書き換えることなくトグル動作を終わります。消去
の際 , 選択されたすべてのセクタが書換え保護されている場合 , トグルビットは約 100μs
のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻ります。
516
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6.3
タイミングリミット超過フラグ (DQ5)
タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ
モリ内部に規定された時間 ( 内部パルス回数 ) を超えてしまったことを知らせるフラ
グです。
■ タイミングリミット超過フラグ (DQ5)
表 25.6-7 と表 25.6-8 に , タイミングリミット超過フラグの状態遷移を示します。
表 25.6-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 )
チップ /
動作 書込み動作→
セクタ消去
状態
完了
→完了
DQ5
0 → DATA:5
セクタ消去
待ち
→開始
( 消去中のセクタ )
0
0
0→1
セクタ消去
一時停止→
再開
セクタ消去→
消去一時停止
( 消去中のセクタ )
0
セクタ消去
一時停止中
( 消去中でないセクタ )
DATA:5
表 25.6-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ5
1
1
● 書込み / チップ・セクタ消去時
書込み , またはチップ・セクタ消去自動アルゴリズム起動後にリードアクセスすると ,
規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間を超えてしまって
いる場合は "1" を出力します。これは , 自動アルゴリズムが実行中か終了状態にあるか
無関係ですので , 書込み / 消去が成功したか失敗したかの判定が可能です。すなわち ,
このフラグが "1" を出力したとき , データポーリング機能もしくはトグルビット機能に
より自動アルゴリズムがまだ実行中であれば , 書込みが失敗していると判断できます。
例えば , "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとする
とフェイルが発生します。この場合 , フラッシュメモリはロックされ , 自動アルゴリズ
ムは終了しません。まれに "1" が書き込めたように正常終了する場合もあります。し
たがって , データポーリングフラグ (DQ7) から有効なデータが出力されません。また ,
トグルビットフラグ (DQ6) はトグル動作を止めず , タイムリミットを超え , タイミング
リミット超過フラグ (DQ5) は "1" を出力します。この状態はフラッシュメモリが不良
ではなく , 正しく使用されなかったということを表しています。この状態が発生したと
きは , リセットコマンドを実行してください。
517
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6.4
セクタ消去タイマフラグ (DQ3)
セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後 , セクタ消去待ち期
間中であるか否かを知らせるフラグです。
■ セクタ消去タイマフラグ (DQ3)
表 25.6-9 と表 25.6-10 に , セクタ消去タイマフラグの状態遷移を示します。
表 25.6-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 )
動作
状態
DQ3
チップ /
書込み動作→
セクタ消去
完了
→完了
1
0 → DATA:3
セクタ消去
待ち
→開始
( 消去中のセクタ )
0→1
1→0
セクタ消去→
消去一時停止
セクタ消去
一時停止→
再開
( 消去中のセクタ )
0→1
セクタ消去
一時停止中
( 消去中でないセクタ )
DATA:3
表 25.6-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ / セクタ消去動作
DQ3
0
1
● セクタ消去動作時
セクタ消去コマンド起動後にリードアクセスすると , フラッシュメモリはコマンドを
発行したセクタのアドレスの指し示す番地によらず , セクタ消去待ち期間中であれば
"0" を , セクタ消去待ち期間を超えてしまっている場合は "1" を出力します。
データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示して
いる場合 , このフラグが "1" であれば内部で制御される消去が始まっています。続けて
のセクタ消去コードの書込みまたはセクタ消去一時停止以外のコマンドは , 消去が終
了されるまで無視されます。このフラグが "0" であればフラッシュメモリは , 追加のセ
クタ消去コードの書込みを受け付けます。このことを確認するために , 引き続くセクタ
消去コードの書込みに先立ち , このフラグの状態をチェックすることを推奨します。も
し 2 回目の状態チェックで "1" であったなら , 追加セクタの消去コードは受け付けられ
ていない可能性があります。
● セクタ消去中のリードアクセス
セクタ消去一時停止中にリードアクセスすると , フラッシュメモリはアドレスの指し
示す番地が , 消去中のセクタに属するならば "1" を出力します。このアドレスが消去さ
れたセクタに属さない場合 , フラッシュメモリは対応するメモリ値の bit3(DATA: 3) を
出力します。
518
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.6.5
トグルビット 2 フラグ (DQ2)
トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット
機能によって知らせるフラグです。
■ トグルビット 2 フラグ (DQ2)
表 25.6-11 と表 25.6-12 に , トグルビット 2 フラグの状態遷移を示します。
表 25.6-11 トグルビット 2 フラグの状態遷移 ( 正常動作時の状態変化 )
動作 書込み動作→
状態
完了
DQ2
1 → DATA:2
チップセクタ セクタ消去
待ち→
消去→
完了
開始
Toggle →
Stop
セクタ消去→
消去一時停止
( 消去中のセクタ )
Toggle
セクタ消去
一時停止→
再開
( 消去中のセクタ )
Toggle
Toggle
セクタ消去
一時停止中
( 消去中でないセクタ )
DATA:2
表 25.6-12 トグルビット 2 フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み動作
チップ・セクタ消去動作
DQ2
1
1*
*: DQ5 が "1" のとき ( タイミングリミット超過 ), 書込み / 消去中セクタへの連続的な読出しに対し
ては DQ2 はトグル動作をし , ほかのセクタへの読出しに対してはトグルしません。
● セクタ消去動作時
チップ・セクタ消去アルゴリズム実行中に , 連続したリードアクセスを行うと , フラッ
シュメモリはアドレスの指し示す番地によらず , リードごとに "1" と "0" を交互に出力
するトグル状態を出力します。チップ・セクタ消去アルゴリズム終了後に連続したリー
ドアクセスを行うと , フラッシュメモリは bit2 のトグル動作を止め , アドレスの指し示
す番地の読出し値の bit2(DATA:2) を出力します。
519
第 25 章 1M/2M/3M ビット フラッシュメモリ
● セクタ消去一時停止時
セクタ消去一時停止中に連続したリードアクセスを行うと , フラッシュメモリはアド
レスの指し示す番地が消去中のセクタに属するならば , "1" と "0" を交互に出力するト
グル状態を出力します。消去中のセクタに属さないのであれば , アドレスの指し示す番
地の読出し値の bit2(DATA:2) を出力します。
また , セクタ消去一時停止書込み時 , 消去一時停止していないセクタから連続したリー
ドアクセスを行うと , "1" を出力します。
DQ2 は DQ6 とともに使用し , 消去一時停止中のセクタであるかを検出するのに使用し
ます (DQ2 はトグル動作するが , DQ6 はトグル動作しない ) 。
さらに , DQ2 は消去しているセクタの検出にも使用します。消去動作時には , DQ2 は
消去しているセクタからのリードアクセスならばトグル動作をします。
<参考>
消去の際 , 選択されたすべてのセクタが書き換え保護されている場合 , トグルビット 2 は
約 100μs のトグル動作をし , その後データを書き換えないで読出し / リセット状態に戻り
ます。
520
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを発行し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止およびセクタ消去再開の
それぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の詳細説明
フラッシュメモリは読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , セクタ消去再開の動作がコマンドシーケンス (「25.5 フラッシュメモリ自動
アルゴリズム起動方法」の表 25.5-1 を参照 ) のバスへのライトサイクルを行うことで
自動アルゴリズムを実行することが可能です。それぞれのバスへのライトサイクルは
必ず続けて行う必要があります。また , 自動アルゴリズムはデータ・ポーリング機能等
で終了時を知ることができます。正常終了後は読出し / リセット状態に戻ります。
フラッシュメモリの各動作について , 次項より下記の順に示します。
• 読出し / リセット状態にする
• データを書き込む
• 全データを消去する ( チップ消去 )
• 任意のデータを消去する ( セクタ消去 )
• セクタ消去を一時停止する
•
セクタ消去を再開する
521
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.1
読出し / リセット状態
読出し / リセットコマンドを発行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリの読出し / リセット状態
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 (「25.5
フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) の読出し / リセット
コマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
読出し / リセットコマンドには , 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , これらの本質的な違いはありません。
読出し / リセット状態はフラッシュメモリの初期状態であり , 電源投入時 , コマンドの
正常終了時は常に読出し / リセット状態になります。読出し / リセット状態は , ほかの
コマンドの入力待ち状態です。
読出し/リセット状態では通常のリードアクセスでデータを読み出せます。
マスクROM
と同様に CPU からのプログラムアクセスが可能です。通常読出しでのデータ読出しに
このコマンドは必要ありません , なんらかの理由でコマンドが正常に終了しなかった
ときなど , 自動アルゴリズムを初期化する場合に主にこのコマンドを使用します。
522
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.2
データの書込み
書込みコマンドを発行し , フラッシュメモリにデータを書き込む手順について説明
します。
■ フラッシュメモリへのデータの書込み
フラッシュメモリの , データ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表 (「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) の書
込みコマンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
4 サイクル目に目的のアドレスへのデータライトが終了した時点で , 自動アルゴリズム
が起動され自動書込みが開始します。
● アドレス指定方法
書込みデータサイクルの中で指定する書込みアドレスは , 偶数アドレスのみが可能で
す。奇数アドレスを指定すると正しく書き込むことができません。つまり , 偶数アドレ
スへのワードデータ単位での書込みが必要となります。
書込みはどのようなアドレスの順番でも , また , セクタの境界を超えても可能ですが ,
1 回の書込みコマンドによって書き込まれるデータは 1 ワードのみです。
● データ書込み上の注意
書込みによって , データ 0 をデータ 1 に戻すことはできません。データ 0 にデータ 1 を
書き込むと , データポーリングアルゴリズム (DQ7) またはトグル動作 (DQ6) が終了せ
ず , フラッシュメモリ素子が不良と判定され , 書込み規定時間を超えタイミングリミッ
ト超過フラグ (DQ5) がエラーと判定するか , あるいは見かけ上データ 1 が書き込まれ
たように見えるかのどちらかとなります。しかし , 読出し / リセット状態でデータを読
み出すとデータは"0"のままです。
消去動作のみが0データを"1"にすることができます。
自動書込みアルゴリズム実行中はすべてのコマンドが無視されます。書込み中にハー
ドウェアリセットが起動されると , 書き込んでいるアドレスのデータは保証されませ
んので注意が必要です。
523
第 25 章 1M/2M/3M ビット フラッシュメモリ
■ フラッシュメモリの書込み手順
図 25.7-1 に , フラッシュメモリの書込み手順の例を示します。ハードウェア・シーケ
ンス・フラグ (「25.6 自動アルゴリズム実行状態の確認」を参照 ) を用いることでフ
ラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。ここでは , 書込み終了
の確認にデータポーリングフラグ (DQ7) を用いています。
フラグチェックのために読み出すデータは最後に書込みを行ったアドレスからの読出
しとなります。
データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に変
わるので , たとえタイミングリミット超過フラグ (DQ5) が "1" であってもデータポーリ
ングフラグビット (DQ7) は再チェックする必要があります。
トグルビットフラグ (DQ6) でも同様に , タイミングリミット超過フラグビット (DQ5)
が "1" に変わるのと同時にトグル動作を止めるので , トグルビットフラグ (DQ6) を再
チェックする必要があります。
524
第 25 章 1M/2M/3M ビット フラッシュメモリ
図 25.7-1 フラッシュメモリ書込み手順の例
書込み開始
FMCS: WE (bit 5)
フラッシュメモリ書込み許可
書込みコマンドシーケンス
(1) FxAAAAH → XXAAH
→ XX55H
(2) Fx5554H
(3) FxAAAAH → XXA0H
(4) 書込みアドレス <-- 書込みデータ
内部アドレスリード
データポーリング
(DQ7)
次アドレス
Data
Data
0
タイミングリミット
(DQ5)
1
内部アドレスリード
Data
データポーリング
(DQ7)
Data
書込みエラー
最終アドレス
NO
YES
FMCS: WE (bit 5)
フラッシュメモリ書込み禁止
書込み完了
ハードウェア・シーケンス・フラグ
による確認
525
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.3
全データの消去 ( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順につい
て説明します。
■ フラッシュメモリの全データを消去する ( チップ消去 )
フラッシュメモリからすべてのデータを消去するには , コマンドシーケンス表 (「25.5
フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のチップ消去コマ
ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
チップ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のライトが完了した
時点でチップ消去動作が開始します。チップ消去では , 消去前にユーザがフラッシュメ
モリに書込みを行う必要はありません。自動消去アルゴリズム実行中には , フラッシュ
メモリは自動的にすべてのセルを消去する前に "0" を書き込んで検証します。
526
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.4
任意のデータの消去 ( セクタ消去 )
セクタ消去コマンドを発行し , フラッシュメモリの任意のデータを消去する ( セクタ
消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同
時に指定することも可能です。
■ フラッシュメモリの任意のデータを消去する ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには , コマンドシーケンス表 (「25.5
フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ消去コマ
ンドを , フラッシュメモリ内の対象セクタに続けて送ることで実行可能です。
● セクタ指定方法
セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目に目的のセクタ内の
アクセス可能な任意の偶数の 1 アドレスへ , セクタ消去コード (30H) を書き込むことに
より 50μs のセクタ消去待ちが開始します。複数のセクタ消去を行う場合は , 上記の処
理に引き続き消去する目的のセクタ内のアドレスに消去コード (30H) を書き込みます。
● 複数のセクタを指定するときの注意
最後のセクタ消去コードの書込みから 50μs のセクタ消去待ち期間終了により消去が開
始します。つまり , 複数のセクタを同時に消去する場合は , 次の消去セクタのアドレス
と消去コード ( コマンドシーケンス 6 サイクル目 ) をそれぞれ 50μs 以内に入力する必
要があり , それ以降では受け付けられないことがあります。引き続くセクタ消去コード
のライトが有効かどうかはセクタ消去タイマ ( ハードウェア・シーケンス・フラグ DQ3)
によって調べることができます。このとき , セクタ消去タイマを読み出すアドレスは ,
消去しようとしているセクタを指すようにします。
■ フラッシュメモリのセクタ消去手順
ハードウェア・シーケンス・フラグ (「25.6 自動アルゴリズム実行状態の確認」参照 )
を用いることでフラッシュメモリ内部の自動アルゴリズムの状態判定が可能です。図
25.7-2 に , フラッシュメモリセクタ消去の手順の例を示します。ここでは , 消去終了の
確認にトグルビットフラグ (DQ6) を用いています。
フラグチェックのために読み出すデータは , 消去しようとしているセクタからの読出
しとなりますので , 注意が必要です。
トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変わる
のと同時にトグル動作を止めるので , たとえタイミングリミット超過フラグ (DQ5) が
"1" であってもトグルビットフラグ (DQ6) は再チェックする必要があります。
データポーリングフラグ (DQ7) でも同様に , タイミングリミット超過フラグ (DQ5) と
同時に変わるので , データポーリングフラグ (DQ7) を再チェックする必要があります。
527
第 25 章 1M/2M/3M ビット フラッシュメモリ
図 25.7-2 フラッシュメモリのセクタ消去手順の例
消去開始
FMCS: WE (bit 5)
フラッシュメモリ消去許可
消去コマンドシーケンス
(1) FxAAAAH → XXAAH
(2) Fx5554H → XX55H
(3) FxAAAAH → XX80H
(4) FxAAAAH → XXAAH
(5) Fx5554H → XX55H
1
セクタ消去タイマ
(DQ3)
内部アドレスリード
0
(6) 消去セクタへコード入力
(30H)
YES
消去セクタが
ほかにあるか
NO
内部アドレスリード 1
内部アドレスリード 2
トグルビット (DQ6)
データ 1(DQ6) = データ 2(DQ6)
次セクタ
YES
NO
0
タイミングリミット
(DQ5)
1
内部アドレスリード 1
内部アドレスリード 2
NO
トグルビット (DQ6)
データ 1(DQ6) = データ 2(DQ6)
YES
消去エラー
最終セクタ
NO
YES
FMCS: WE (bit5)
フラッシュメモリ消去禁止
消去終了
528
ハードウェア・シーケンス・フラグ
による確認
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.5
セクタ消去の一時停止
セクタ消去一時停止コマンドを発行し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタから , データを読み出すことが
可能です。
■ フラッシュメモリのセクタ消去を一時停止する
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 (「25.5 フ
ラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ消去一時停
止コマンドを , フラッシュメモリ内の対象セクタに送ることで実行可能です。
セクタ消去一時停止コマンドは , セクタ消去中に , 消去を一時停止し消去中でないセク
タからのデータ読出しを可能にするものです。この状態では読出しのみが可能で書込
みはできません。このコマンドは消去待ち時間を含むセクタ消去中のみ有効で , チップ
消去中や書込み動作中は無視されます。
消去一時停止コード (B0H) の書込みを行うことで実施されますが , このときアドレスは
フラッシュメモリ内の任意のアドレスを指すようにします。消去一時停止での再度の
消去一時停止コマンドは無視されます。
セクタ消去待ち期間中に , セクタ消去一時停止コマンドが入力されると , 直ちにセクタ
消去待ちを終了し , 消去動作を中断して消去停止状態になります。セクタ消去待ち期間
後のセクタ消去動作中に消去一時停止コマンドが入力されると , 最大 20μs の時間の後 ,
消去一時停止状態後入ります。
セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン
ド発行後 , 20μs 以上後に行ってください。
529
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.7.6
セクタ消去の再開
セクタ消去再開コマンドを発行し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリのセクタ消去を再開する
一時停止したフラッシュメモリセクタ消去を再開させるには , コマンドシーケンス表
(「25.5 フラッシュメモリ自動アルゴリズム起動方法」の表 25.5-1 を参照 ) のセクタ
消去再開コマンドを , フラッシュメモリ内の対象セクタに送ることで実行可能です。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態から , セクタ消去を再開するためのコマンドです。このコマンドは消去再開コード
(30H) のライトを行うことで実施されますが , このときのアドレスはフラッシュメモリ
領域内の任意のアドレスを指すようにします。
なお , セクタ消去中のセクタ消去再開コマンドの発行は無視されます。
530
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.8
1M/2M/3M ビットフラッシュメモリ使用上の注意
1M/2M/3M ビットフラッシュメモリに関する注意を以下に示します。
■ フラッシュメモリ使用上の注意
● ハードウェアリセット (RST) の入力
読出し中で自動アルゴリズムが起動していないときに , ハードウェアリセットを入力
するには , "L" レベル幅として最低 500ns をとる必要があります。
この場合 , ハードウェ
アリセット起動後フラッシュメモリからデータを読み出すまでに , 最大 500ns が必要と
なります。
同様に , 書込み / 消去中で自動アルゴリズムが起動しているときに , ハードウェアリ
セットを入力するには , "L" レベル幅として最低 500ns をとる必要があります。この場
合 , フラッシュメモリを初期化するために実行中の動作を停止した後データを読み出
すまでに , 20μs が必要となります。
書込み中にハードウェアリセットすると , 書き込まれているデータは不定となります。
消去中のハードウェアリセットや電源切断により , 消去されているセクタは使用不可
となる可能性があります。
● ソフトウェアリセット , ウォッチドッグタイマリセットの取消し
CPU アクセスでフラッシュメモリを書込み / 消去時に , 自動アルゴリズムがアクティブ
状態でリセット条件が発生した場合 , CPU が暴走する可能性があります。それは , これ
らのリセット条件により , フラッシュメモリユニットが初期化されずに自動アルゴリ
ズムが続行し , リセット離脱後に CPU がシーケンスを開始したときフラッシュメモリ
ユニットが読出し状態になることが妨げられる可能性があるためです。これらのリ
セット条件は , フラッシュメモリの書込み / 消去中に禁止されている必要があります。
● フラッシュメモリへのプログラムアクセス
自動アルゴリズム動作中は , フラッシュメモリへの読出しアクセスは禁止されます。
CPU のメモリアクセスモードが内蔵 ROM モードにセットされている場合 , プログラム
領域を RAM などの別の領域に切り換え後 , 書込み / 消去を開始する必要があります。
この場合 , 割込みベクタを含むセクタ (SA4/SA6) が書込み / 消去されると , 割込み処理
を実行できません。
同じ理由で , 自動アルゴリズム動作中は , フラッシュメモリ以外のその他すべての割込
みソースは無効にする必要があります。
● 拡張インテリジェント I/O サービス (EI2OS)
フラッシュメモリインタフェース回路から CPU に発行された書込み / 消去割込みは ,
EI2OS には受付不可能であり , 使用できません。
● VID の適用
セクタプロテクト動作に必要な VID の印加は , 電源がオンのとき開始し , 終了する必要
があります。
531
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.9
フラッシュメモリにおけるリセットベクタアドレス
MB90F947(A), MB90F949(A)およびMB90F946Aは, ハードワイヤードリセットベク
タをサポートします。
内部ベクタモードでのアドレス FFFFDCH ~ FFFFDFH へのすべての読出しアクセ
スは , ハードワイヤードロジックにより事前に決められた値を読み出すことになり
ます。しかし , フラッシュメモリモードでは , 前節で述べたようにこれらのアドレス
のアクセスが可能です。
このため , これらのアドレスへの書込みは意味がありません。特に ( フラッシュメモ
リモードではなく ) CPU アクセスでフラッシュメモリをプログラミングするとき ,
ソフトウェアポーリング用にこれらのアドレスを読み出さないように注意してくだ
さい。さもなければ , フラッシュメモリはハードウェアシーケンスフラグ値の代わ
りに固定リセットベクタ値を返します。
■ フラッシュメモリにおけるリセットベクタアドレス
次の表に , リセットベクタとモードデータの事前に決められた値を示します。
表 25.9-1 リセットベクタとモードデータ値
リセットベクタ
FFA000H
モードデータ
00H
<注意事項>
リードワイヤードリセットベクタのため , ソフトウェアの中のリセットベクタを指定する
必要はありません。
同一のプログラムを使用する場合に , マスク ROM デバイスがフラッシュデバイスと異
なった動作をするのを防ぐために , プログラムの中のベクタとモードデータを同一の値に
設定することを推奨します。
532
第 25 章 1M/2M/3M ビット フラッシュメモリ
25.10
1M/2M/3M ビットフラッシュメモリのプログラム例
1M/2M/3M ビットフラッシュメモリのプログラム例を掲載します。
■ 1M/2M/3M ビットフラッシュメモリのプログラム例
フラッシュメモリのプログラム例
NAME
FLASHWE
TITLE FLASHWE
;------------------------------------------------------------------------------;1M/2M/3M ビットフラッシュテストプログラム
;
;1: FLASH にあるプログラム ( アドレス : FF8000H, セクタ : SA6) を
;
RAM ( アドレス : 001500H) に転送する .
;2: RAM 上でプログラムを実行する。
;3: PDR1 の値を FLASH ( アドレス : F90000H, セクタ : SA1) に書き込む .
;4: 書き込んだ値 ( アドレス : F90000H, セクタ : SA1) を読み出し PDR2 に出力する。
;5: 書き込んだセクタ (SA1) を消去する。
;6: 消去データ確認の出力
; 条件
; - RAM 転送バイト数 : "100H" (256 バイト )
; - 書込み , 消去の終了判定
;
DQ5 ( タイミングリミット超過フラグ ) での判定
;
DQ6 ( トグルビットフラグ ) での判定
;
RDY (FMCS) での判定
; - エラー時の処理
;
P00 ~ P07 に "H" を出力する
;
リセットコマンド発行
;------------------------------------------------------------------;
RESOUS
PDR0
PDR1
PDR2
PDR3
DDR0
DDR1
DDR2
DDR3
CKSCR
FMCS
ROMM
RESOUS
;
SSTA
STA_T
SSTA
;
DATA
IOSEG
ORG
RB
RB
RB
RB
ORG
RB
RB
RB
RB
ORG
RB
ORG
RB
ORG
RB
ENDS
ABS=00
0000H
1
1
1
1
0010H
1
1
1
1
00A1H
1
00AEH
1
006FH
1
SSEG
RW
RW
ENDS
0127H
1
DSEG
ABS=0FFH
;"RESOUS" I/O セグメントの定義
;FLASH コマンドアドレス
533
第 25 章 1M/2M/3M ビット フラッシュメモリ
ORG
COMADR2 RW
ORG
COMADR1 RW
DATA
ENDS
5554H
1
0AAAAH
1
NAME
FLASHWE
TITLE FLASHWE
;------------------------------------------------------------------------------;1M/2M/3M ビットフラッシュテストプログラム
;
;1: FLASH にあるプログラム ( アドレス : FF8000H, セクタ : SA6) を
;
RAM( アドレス : 001500H) に転送する。
;2: RAM 上でプログラムを実行する。
;3: PDR1 の値を FLASH ( アドレス : F90000H, セクタ : SA1) に書き込む .
;4: 書き込んだ値 ( アドレス : F90000H, セクタ : SA1) を読み出し PDR2 に出力する。
;5: 書き込んだセクタ (SA1) を消去する。
;6: 消去データ確認の出力
; 条件
; - RAM 転送バイト数 : "100H" (256 バイト )
; - 書込み , 消去の終了判定
;
DQ5 ( タイミングリミット超過フラグ ) での判定
;
DQ6 ( トグルビットフラグ ) での判定
;
RDY (FMCS) での判定
; - エラー時の処理
;
P00 ~ P07 に "H" を出力する
;
リセットコマンド発行
;------------------------------------------------------------------;
RESOUS
PDR0
PDR1
PDR2
PDR3
DDR0
DDR1
DDR2
DDR3
CKSCR
FMCS
ROMM
RESOUS
;
SSTA
STA_T
SSTA
;
IOSEG
ORG
RB
RB
RB
RB
ORG
RB
RB
RB
RB
ORG
RB
ORG
RB
ORG
RB
ENDS
SSEG
RW
RW
ENDS
ABS=00
0000H
1
1
1
1
0010H
1
1
1
1
00A1H
1
00AEH
1
006FH
1
;"RESOUS" I/O セグメントの定義
0127H
1
DSEG
ABS=0FFH
;FLASH コマンドアドレス
ORG
5554H
COMADR2 RW
1
ORG
0AAAAH
COMADR1 RW
1
DATA
ENDS
;////////////////////////////////////////////////
DATA
;(SA1) 書込み
534
第 25 章 1M/2M/3M ビット フラッシュメモリ
;////////////////////////////////////////////////
MOV
A,PDR1
MOVW
MOV
MOVW
MOVW
MOVW
@RW0+00,A
FMCS,#20H
ADB:COMADR1,#00AAH
ADB:COMADR2,#0055H
ADB:COMADR1,#00A0H
;PDR1 データを RAM に割り当てる
; 書込みモード設定
;Flash 書込みコマンド 1
;Flash 書込みコマンド 2
;Flash 書込みコマンド 3
MOVW
MOVW
A,@RW0+00
@RW2+00,A
; 入力データ (RW0) をフラッシュメモリ (RW2) に書き込む
;
WRITE
;
; 待ち時間チェック
///////////////////////////////////////////////////////////////////
;
;
タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR
///////////////////////////////////////////////////////////////////
MOVW
A,@RW2+00
AND
BZ
MOVW
MOVW
A,#20H
NTOW
A,@RW2+00
A,@RW2+00
;DQ5 タイムリミットチェック
; タイムリミットオーバ
;AH
;AL
;
XORW
A
;AH,AL の XOR ( 値が異なる場合 "1") は
AND
A,#40H
;DQ6 トグルビットと異なるか ?
BNZ
ERROR
;DQ6 トグルビットと異なる場合 ERROR へ
///////////////////////////////////////
;
;
NTOW
書込み終了チェック (FMCS-RDY)
///////////////////////////////////////
MOVW
A,FMCS
;
AND
A,#10H
;FMCS RDY ビット (bit 4) 抽出
BZ
WRITE
; 書込み終了か ?
MOV
FMCS,#00H
; 書込みモード解除
/////////////////////////////////////////////////////
;
;
書込みデータ出力
/////////////////////////////////////////////////////
MOVW
MOVW
MOV
RW2,#0000H
A,@RW2+00
PDR2,A
; 書込みデータ出力
;
WAIT2
BBC
PDR3:1,WAIT2
;PDR3: 1("H" でセクタ消去スタート )
;
;/////////////////////////////////////////////
; セクタ消去 (SA1)
;/////////////////////////////////////////////
ELS
;
;
;
MOV
@RW2+00,#0000H
; アドレス初期化
MOV
FMCS,#20H
; 消去モード設定
MOVW
ADB:COMADR1,#00AAH
; フラッシュ消去コマンド 1
MOVW
ADB:COMADR2,#0055H
; フラッシュ消去コマンド 2
MOVW
ADB:COMADR1,#0080H
; フラッシュ消去コマンド 3
MOVW
ADB:COMADR1,#00AAH
; フラッシュ消去コマンド 4
MOVW
ADB:COMADR2,#0055H
; フラッシュ消去コマンド 5
MOV
@RW2+00,#0030H
; 消すセクタに消去コマンド発行 6
; 書込み時間チェック
///////////////////////////////////////////////////////////////////
タイムリミット超過チェック - フラグが立ちトグル動作中である場合 ERROR
///////////////////////////////////////////////////////////////////
MOVW
A,@RW2+00
AND
BZ
MOVW
MOVW
XORW
;
A,#20H
NTOE
A,@RW2+00
A,@RW2+00
A
;DQ5 タイムリミットチェック
; タイムリミットオーバ
;AH 書込み動作中は , DQ6 から
;AL リードごとに "H"/"L" が交互出力される
;AH と AL の XOR (DQ6 の値が違えば
"1" 書込み動作中である )
535
第 25 章 1M/2M/3M ビット フラッシュメモリ
;
AND
A,#40H
;DQ6 トグルビットは "H" か ?
BNZ
ERROR
;DQ6 トグルビットが "H" なら ERROR へ
///////////////////////////////////////
;
;
NTOE
消去終了チェック (FMCS-RDY)
///////////////////////////////////////
MOVW
A,FMCS
;
AND
A,#10H
;FMCS RDY ビット (bit 4) 抽出
BZ
ELS
; セクタ消去終了か ?
MOV
FMCS,#00H
;FLASH 消去モード解除
RETP
; メインプログラムに戻る
;//////////////////////////////////////////////
; エラー
;//////////////////////////////////////////////
MOV
FMCS,#00H
;FLASH モード解除
MOV
PDR0,#0FFH
; エラー処理の確認
MOV
ADB:COMADR1,#0F0H
; リセットコマンド ( 書込み許可 )
RETP
; メインプログラムに戻る
RAMPRG ENDS
;/////////////////////////////////////////////
VECT
CSEG
ABS=0FFH
ORG
0FFDCH
DSL
START
DB
00H
VECT
ENDS
;
ERROR
536
第 26 章
MB90F947
同期シリアル書込み接続例
F2MC-16LX MB90F947 フラッシュマイコンプログ
ラマを用いた場合の , 同期シリアル書込み接続例に
ついて説明します。
26.1 MB90F947 同期シリアル書込み接続の基本構成
26.2 同期シリアル書込み接続例 ( ユーザ電源使用時 )
26.3 同期シリアル書込み接続例 ( ライタから電源供給時 )
26.4 フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源使用時 )
26.5 フラッシュマイコンプログラマとの最小限の接続例
( ライタから電源供給時 )
537
第 26 章 MB90F947 同期シリアル書込み接続例
26.1
MB90F947 同期シリアル書込み接続の基本構成
MB90F947 では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ
ポートしています。その仕様について解説します。
■ MB90F947 同期シリアル書込み接続の基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ株式会社製
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマを使用します。
図 26.1-1 MB90F947 の富士通スタンダードシリアルオンボードプログラミング
ホストインタフェースケーブル (AZ201)
AF220/AF210/
AF120/AF110
フラッシュ
マイコン
プログラマ
+
メモリカード
汎用共通ケーブル (AZ210)
CLK 同期シリアル
MB90F947
スタンドアロンで動作可能
<注意事項>
AF220/AF210/AF120/AF110 フラッシュマイコンプログラマの機能・操作方法および接続
用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタルコンピュータ株
式会社殿にお問い合わせください。
538
第 26 章 MB90F947 同期シリアル書込み接続例
表 26.1-1 富士通標準同期シリアルオンボード書込みに使用する端子
端子
MD2,
MD1
MD0
機能
モード端子
フラッシュマイコンプログラマから , 書込みモードに制御し
ます。
発振用端子
書込みモード時に , CPU 内部動作クロックは PLL クロック 1
逓倍となっています。したがって , 発振クロック周波数が , 内
部動作クロックとなりますので , シリアル書換えに使用する
発振子は 3 MHz ~ 20 MHz となります。
X0, X1
P00, P01
書込みプログラム
起動端子
RST
リセット端子
SIN4
シリアルデータ
入力端子
SOT4
シリアルデータ
出力端子
SCK4
シリアルクロック入力
端子
C
補足説明
P00 に "L" レベルを , P01 に "H" レベルを入力してください。
-
シリアル I/O を使用します。
C 端子
電源安定化の容量端子です。外部に 0.1 μF 程度のセラミック
コンデンサを接続してください。
VCC
電源電圧供給端子
書込み電圧 (5V ± 10%)
VSS
GND 端子
フラッシュマイコンプログラマの GND と共通にします。
P00, P01, SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御
回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル
書込み中はユーザ回路を切り離すことができます。
「26.2 同期シリアル書込み接続例 ( ユーザ電源使用時 )」~「26.5 フラッシュマイコン
プログラマとの最小限の接続例 ( ライタから電源供給時 )」に , 以下の同期シリアル書
込み接続例を示しますのでご参照ください。
• 同期シリアル書込み接続例 ( ユーザ電源使用時 )
• 同期シリアル書込み接続例 ( ライタから電源供給時 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
•
フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )
539
第 26 章 MB90F947 同期シリアル書込み接続例
図 26.1-2 シリアルプログラミング用ユーザ回路接続
AF220/AF210/
AF120/AF110
書込み制御端子
MB90F947
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
表 26.1-2 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式会社製 )
型格
本体
機能
AF220/AC4P
イーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダプタ
AF210/AC4P
スタンダードモデル /100V ~ 220V 電源アダプタ
AF120/AC4P
単キーイーサネットインタフェース内蔵モデル /100V ~ 220V 電源アダ
プタ
AF110/AC4P
単キーモデル /100V ~ 220V 電源アダプタ
AZ221
ライタ専用 PC/AT 用 RS232C ケーブル
AZ210
標準ターゲットプローブ (a) 長さ :1m
FF201
富士通製 F2MC-16LX フラッシュマイコン用制御モジュール
AZ290
リモートコントローラ
/P2
2M バイト PC Card ( オプション ) FLASH メモリ容量~ 128K バイト対応
/P4
4M バイト PC Card ( オプション ) FLASH メモリ容量~ 512K バイト対応
問い合せ先 : 横河ディジタルコンピュータ株式会社
電話 :042-333-6224
<注意事項>
AF200 フラッシュマイコンプログラマは終息製品ですが , 制御モジュール FF201 を用いる
ことにより使用できます。同期シリアル書込み接続例を「26.2 同期シリアル書込み接続
例 ( ユーザ電源使用時 )」, 「26.3 同期シリアル書込み接続例 ( ライタから電源供給時 )」
に示します。
■ 発振クロック周波数とシリアルクロック入力周波数
MB90F947の入力可能なシリアルクロック周波数は, 以下の計算式により求めることが
できます。ご使用の発振クロック周波数に合わせて , シリアルクロック入力周波数をフ
ラッシュマイコンプログラマに設定してください。
fSC = 0.125 × fOSC
ここで fSC はシリアルクロック周波数を , fOSC は発振クロック周波数を示します。
540
第 26 章 MB90F947 同期シリアル書込み接続例
表 26.1-3 入力可能なシリアルクロック周波数の例
発振クロック
周波数
マイコンの入力可能な
最大シリアルクロック
周波数
AF220/AF210/AF120/
AF110 の設定可能な
最大シリアルクロック
周波数
AF200 の設定可能な
最大シリアルクロック
周波数
4 MHz
500 kHz
500 kHz
500 kHz
8 MHz *
1 MHz
850 kHz
500 kHz
16 MHz *
2 MHz
1.25 MHz
500 kHz
*:外部クロックのみ
541
第 26 章 MB90F947 同期シリアル書込み接続例
26.2
同期シリアル書込み接続例 ( ユーザ電源使用時 )
図 26.2-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , 内部ベクタ
モード時 ( シングルチップモード ) の同期シリアル書込み接続例を示します。なお ,
モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 プログラマの TAUX3,
TMODE より , MD2=1, MD0=0 が入力されます。
シリアル書換えモード :MD2, MD1, MD0=110
■ 同期シリアル書込み接続例 ( ユーザ電源使用時 )
図 26.2-1 内部ベクタモード時の MB90F947 同期シリアル書込み接続例 ( ユーザ電源使用時 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28S または DX20-28S
MB90F947
MD2
(19)
10kΩ
10kΩ
MD1
10kΩ
TMODE
MD0
X0
(12)
X1
TAUX
P00
(23)
10kΩ
/TICS
(10)
/TRES
(5)
ユーザ
10kΩ
RST
ユーザ
10kΩ
P01
C
0.1 μF
TTXD
TRXD
TCK
(13)
(27)
(6)
TVcc
(2)
SIN4
SOT4
SCK4
ユーザ電源
GND
(7, 8,
14,15,
21, 22
1, 28)
3, 4, 9, 11, 16, 17, 18, 20, 24, 25,
26 ピンは OPEN
DX10-28S: ライトアングルタイプ
DX20-28S: ストレートタイプ
Vcc
Vss
ピン 14
ピン 1
ピン 28
ピン 15
DX10-28S
DX20-28S
コネクタ ( ヒロセ電機製 ) のピン配列
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図
の制御回路が必要となります。フラッシュマイコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます 。
•
542
AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
第 26 章 MB90F947 同期シリアル書込み接続例
図 26.2-2 ユーザ回路接続 ( 細部 )
AF220/AF210/
AF120/AF110
書込み制御端子
MB90F947
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
543
第 26 章 MB90F947 同期シリアル書込み接続例
26.3
同期シリアル書込み接続例 ( ライタから電源供給時 )
図 26.3-1 に , マイコンの電源電圧をライタ電源より供給する場合の , 内部ベクタ
モード時 ( シングルチップモード ) の同期シリアル書込み接続例を示します。なお ,
モード端子 MD2, MD0 には , AF220/AF210/AF120/AF110 プログラマの TAUX3,
TMODE より , MD2=1, MD0=0 が入力されます。
シリアル書換えモード :MD2, MD1, MD0=110
■ 同期シリアル書込み接続例 ( ライタから電源供給時 )
図 26.3-1 内部ベクタモード時の MB90F947 同期シリアル書込み接続例 ( ライタから電源供給時 )
AF220/AF210/AF120/AF110
ユーザシステム
コネクタ
DX10-28S または DX20-28S
フラッシュマイコン
プログラマ
TAUX3
MB90F947
MD2
(19)
10kΩ
10kΩ
MD1
10kΩ
TMODE
MD0
X0
(12)
X1
TAUX
P00
(23)
10kΩ
/TICS
(10)
/TRES
(5)
ユーザ
10kΩ
RST
ユーザ
10kΩ
0.1 μF
TTXD
TRXD
TCK
TVcc
GND
(13)
(27)
(6)
SIN4
SOT4
SCK4
(2)
(7, 8,
14,15,
21, 22
1, 28)
3, 4, 9, 11, 16, 17, 18, 20, 24, 25,
26 ピンは OPEN
DX10-28S: ライトアングルタイプ
DX20-28S: ストレートタイプ
P01
C
Vcc
ユーザ電源
Vss
ピン 14
ピン 1
ピン 28
ピン 15
DX10-28S
DX20-28S
コネクタ ( ヒロセ電機製 ) のピン配列
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , P00 と同様に下図
の制御回路が必要となります。
フラッシュマイコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます 。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
•
書込み電源を AF220/AF210/AF120/AF110 から供給するときはユーザ電源と短絡し
ないでください。
544
第 26 章 MB90F947 同期シリアル書込み接続例
図 26.3-2 ユーザ回路接続 ( 細部 )
AF220/AF210/
AF120/AF110
書込み制御端子
MB90F947
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
545
第 26 章 MB90F947 同期シリアル書込み接続例
26.4
フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源使用時 )
図 26.4-1 に , マイコンの電源電圧をユーザ電源より供給する場合の , フラッシュマ
イコンプログラマとの最小限の接続例を示します。
シリアル書換えモード :MD2, MD1, MD0=110
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
フラッシュメモリ書込み時に , 各端子を下記のように設定することにより , MD2, MD1,
MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。
図 26.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
AF220/AF210/AF120/AF110 ユーザシステム
フラッシュマイコン
プログラマ
MB90F947
シリアル書換え時 1
10kΩ
MD2
シリアル
書換え時 1
10kΩ
10kΩ
MD1
10kΩ
10kΩ
MD0
シリアル書換え時 0
10kΩ
X0
X1
P00
10kΩ
シリアル書換え時 0
10kΩ
ユーザ回路
P01
シリアル書換え時 1
ユーザ回路
コネクタ
DX10-28S または
DX20-28S
C
0.1 μF
10kΩ
/TRES
TTXD
TRXD
TCK
TVcc
(5)
(13)
(27)
(6)
(2)
GND
(7, 8,
14,15,
21, 22,
1, 28)
RST
SIN4
SOT4
SCK4
Vcc
ユーザ電源
Vss
ピン 14
3, 4, 9, 10, 11, 12, 16, 17, 18, 19,
20, 23, 24, 25, 26 ピンは OPEN
DX10-28S: ライトアングルタイプ
DX20-28S: ストレートタイプ
ピン 1
DX10-28S
DX20-28S
ピン 28
ピン 15
コネクタ ( ヒロセ電機製 ) のピン配列
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が
必要となります 。フラッシュマイコンプログラマの /TICS 信号により , シリアル書
込み中はユーザ回路を切り離すことができます 。
•
546
AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
第 26 章 MB90F947 同期シリアル書込み接続例
図 26.4-2 ユーザ回路接続 ( 細部 )
AF220/AF210/
AF120/AF110
書込み制御端子
MB90F947
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
547
第 26 章 MB90F947 同期シリアル書込み接続例
26.5
フラッシュマイコンプログラマとの最小限の接続例
( ライタから電源供給時 )
図 26.5-1 に , マイコンの電源電圧をライタ電源より供給する場合の , フラッシュマ
イコンプログラマとの最小限の接続例を示します。
シリアル書換えモード :MD2, MD1, MD0=110
■ フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )
フラッシュメモリ書込み時に各端子を下記のように設定することにより , MD2, MD1,
MD0, P00 とフラッシュマイコンプログラマとの接続は必要ありません。
図 26.5-1 フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源供給時 )
AF220/AF210/AF120/AF110 ユーザシステム
フラッシュマイコン
プログラマ
シリアル書換え時 1
MB90F947
MD2
シリアル
書換え時 1
MD1
MD0
シリアル書換え時 0
X0
X1
P00
シリアル書換え時 0
ユーザ回路
P01
シリアル書込み時 1
ユーザ回路
C
コネクタ
DX10-28S または
DX20-28S
/TRES
TTXD
TRXD
TCK
(5)
(13)
(27)
(6)
(2)
(3)
(16)
RST
SIN4
SOT4
SCK4
Vcc
TVcc
GND
(7,8,
14,15,
21, 22,
1, 28)
3, 4, 9, 10, 11, 12, 16, 17, 18, 19,
20, 23, 24, 25, 26 ピンは OPEN
DX10-28S: ライトアングルタイプ
DX20-28S: ストレートタイプ
Vss
ピン 14
ピン 1
ピン 28
ピン 15
DX10-28S
DX20-28S
コネクタ ( ヒロセ電機製 ) のピン配列
• SIN4, SOT4, SCK4 端子をユーザシステムでも使用する場合には , 下図の制御回路が
必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書
込み中はユーザ回路を切り離すことができます 。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってください。
•
書込み電源を AF220/AF210/AF120/AF110 から供給するときはユーザ電源と短絡し
ないでください。
548
第 26 章 MB90F947 同期シリアル書込み接続例
図 26.5-2 ユーザ回路接続 ( 細部 )
AF220/AF210/
AF120/AF110
書込み制御端子
MB90F947
書込み制御端子
10kΩ
AF220/AF210/
AF120/AF110
/TICS 端子
ユーザ
549
第 26 章 MB90F947 同期シリアル書込み接続例
550
付録
付録では , I/O マップ , F2MC-16LX の命令などを示
します。
付録 A I/O マップ
付録 B 命令
付録 C フラッシュメモリモードのタイミングダイヤグラム
付録 D MB90945 割込みベクタ一覧表
551
付録
付録 A
I/O マップ
付表 A-1 に , 周辺ブロック中のレジスタに割り当てられるアドレスを示します。
■ I/O マップ
付表 A-1 I/O マップ ( 1 / 4 )
アドレス
レジスタ
略称
アクセス
周辺
初期値
000000H
ポート 0 データレジスタ
PDR0
R/W
ポート 0
XXXXXXXXB
000001H
ポート 1 データレジスタ
PDR1
R/W
ポート 1
XXXXXXXXB
000002H
ポート 2 データレジスタ
PDR2
R/W
ポート 2
XXXXXXXXB
000003H
ポート 3 データレジスタ
PDR3
R/W
ポート 3
XXXXXXXXB
000004H
ポート 4 データレジスタ
PDR4
R/W
ポート 4
XXXXXXXXB
000005H
ポート 5 データレジスタ
PDR5
R/W
ポート 5
XXXXXXXXB
000006H
ポート 6 データレジスタ
PDR6
R/W
ポート 6
XXXXXXXXB
000007H
予約
000008H
ポート 8 データレジスタ
PDR8
R/W
ポート 8
XXXXXXXXB
000009H
ポート 9 データレジスタ
PDR9
R/W
ポート 9
XXXXXXXXB
00000AH
ポート A データレジスタ
PDRA
R/W
ポート A
XXXXXXXXB
00000BH
ポート B データレジスタ
PDRB
R/W
ポート B
XXXXXXXXB
00000CH
アナログ入力許可 0
ADER0
R/W
ポート 6, A/D
11111111B
00000DH
アナログ入力許可 1/
A/D コンバータ選択
ADER1
R/W
ポート B, A/D
01111111B
ILSR
R/W
ポート
00000EH
入力レベル選択レジスタ
00000FH
(MB90V390HA/HB)
00000000B
00000000B
000010H
ポート 0 方向レジスタ
DDR0
R/W
ポート 0
00000000B
000011H
ポート 1 方向レジスタ
DDR1
R/W
ポート 1
00000000B
000012H
ポート 2 方向レジスタ
DDR2
R/W
ポート 2
00000000B
000013H
ポート 3 方向レジスタ
DDR3
R/W
ポート 3
00000000B
000014H
ポート 4 方向レジスタ
DDR4
R/W
ポート 4
00000000B
000015H
ポート 5 方向レジスタ
DDR5
R/W
ポート 5
00000000B
000016H
ポート 6 方向レジスタ
DDR6
R/W
ポート 6
00000000B
000017H
予約
000018H
ポート 8 方向レジスタ
DDR8
R/W
ポート 8
XXXXXX00B
000019H
ポート 9 方向レジスタ
DDR9
R/W
ポート 9
00000000B
00001AH
ポート A 方向レジスタ
DDRA
R/W
ポート A
00000000B
00001BH
ポート B 方向レジスタ
DDRB
R/W
ポート B
00000000B
00001CH ~
00001FH
552
予約
付録 A I/O マップ
付表 A-1 I/O マップ ( 2 / 4 )
アドレス
レジスタ
略称
アクセス
000020H
シリアルモード制御 0
UMC0
R/W
000021H
ステータス 0
USR0
R/W
000022H
インプット / アウトプット UIDR0/
UODR0
データ 0
000023H
レート , データ 0
URD0
000024H ~
00002BH
R/W
周辺
初期値
00000100B
00010000B
UART0
XXXXXXXXB
0000000XB
R/W
予約
00002CH
シリアルモード制御
SMCS4
R/W
XXXX0000B
00002DH
シリアルモード制御
SMCS4
R/W
00000010B
00002EH
シリアルデータ
SDR4
R/W
00002FH
シリアル IO プリスケーラ /
CDCR4
エッジセレクタ
000030H
外部割込み許可
000031H
シリアル I/O
XXXXXXXXB
R/W
0X0X0000B
ENIR
R/W
00000000B
外部割込み要求
EIRR
R/W
000032H
外部割込みレベル
ELVR
R/W
000033H
外部割込みレベル
ELVR
R/W
00000000B
000034H
A/D 制御ステータス 0
ADCS0
R/W
00000000B
000035H
A/D 制御ステータス 1
ADCS1
R/W
000036H
A/D データ 0
ADCR0
R
000037H
A/D データ 1
ADCR1
R/W
000038H
PPG0 動作モード制御
PPGC0
R/W
000039H
PPG1 動作モード制御
PPGC1
R/W
00003AH
PPG0, PPG1 クロック
セレクトレジスタ
PPG01
R/W
レジスタ
レジスタ
00003BH
A/D
コンバータ
XXXXXXXXB
00000000B
00000000B
XXXXXXXXB
00000XXXB
16 ビット
プログラマブル
パルス発生部
0/1
0X000XX1B
0X000001B
000000XXB
予約
00003CH
PPG2 動作モード制御
00003DH
PPG3 動作モード制御
00003EH
PPG2, PPG3 クロック
セレクトレジスタ
レジスタ
レジスタ
PPGC2
R/W
PPGC3
R/W
PPG23
R/W
00003FH
16 ビット
プログラマブル
パルス発生部
2/3
0X000XX1B
0X000001B
000000XXB
予約
000040H
PPG4 動作モード制御
レジスタ
000041H
PPG5 動作モード制御
000042H
PPG4, PPG5 クロック
000043H
外部割込み
レジスタ
セレクトレジスタ
PPGC4
R/W
PPGC5
R/W
PPG45
R/W
16 ビット
プログラマブル
パルス発生部
4/5
0X000XX1B
0X000001B
000000XXB
予約
553
付録
付表 A-1 I/O マップ ( 3 / 4 )
アドレス
レジスタ
000044H
PPG6 動作モード制御
000045H
PPG7 動作モード制御
レジスタ
000046H
PPG6, PPG7 クロック
レジスタ
セレクトレジスタ
略称
PPGC6
R/W
PPGC7
R/W
PPG67
R/W
000047H
周辺
16 ビット
プログラマブル
パルス発生部
6/7
初期値
0X000XX1B
0X000001B
000000XXB
予約
000048H
PPG8 動作モード制御
000049H
PPG9 動作モード制御
00004AH
PPG8, PPG9 クロック
レジスタ
レジスタ
セレクトレジスタ
PPGC8
R/W
PPGC9
R/W
PPG89
R/W
00004BH
16 ビット
プログラマブル
パルス発生部
8/9
0X000XX1B
0X000001B
000000XXB
予約
00004CH
PPGA 動作モード制御
00004DH
PPGB 動作モード制御
00004EH
アクセス
レジスタ
レジスタ
PPGA, PPGB クロック
セレクトレジスタ
PPGCA
R/W
PPGCB
R/W
PPGAB
R/W
00004FH
16 ビット
プログラマブル
パルス発生部
A/B
0X000XX1B
0X000001B
000000XXB
予約
000050H
タイマ制御ステータス 0
TMCSR0
R/W
000051H
タイマ制御ステータス 0
TMCSR0
R/W
000052H,
000053H
16 ビット
リロード
タイマ 0
00000000B
XXXX0000B
予約
000054H
インプット・キャプチャ・
ICS01
制御・ステータス 0/1
R/W
インプット・
キャプチャ 0/1
00000000B
000055H
インプット・キャプチャ・
ICS23
制御・ステータス 2/3
R/W
インプット・
キャプチャ 2/3
00000000B
000056H
インプット・キャプチャ・
ICS45
制御・ステータス 4/5
R/W
インプット・
キャプチャ 4/5
00000000B
000057H
予約
000058H
アウトプット・コンペア・
OCS0
制御・ステータス 0
R/W
000059H
アウトプット・コンペア・
OCS1
制御・ステータス 1
R/W
00005AH
アウトプット・コンペア・
OCS2
制御・ステータス 2
R/W
00005BH
アウトプット・コンペア・
OCS3
制御・ステータス 3
R/W
00005CH ~
00006EH
00006FH
000070H ~
00007FH
554
アウトプット・
コンペア 0/1
アウトプット・
コンペア 2/3
0000XX00B
0XX00000B
0000XX00B
0XX00000B
予約
ROM ミラー
ROMM
W
予約
ROM ミラー
XXXXXXX1B
付録 A I/O マップ
付表 A-1 I/O マップ ( 4 / 4 )
アドレス
000080H ~
00008FH
レジスタ
略称
アクセス
周辺
初期値
CAN インタフェース 1 用に予約済。CAN コントローラの章を参照。
000090H ~
00009DH
予約
00009EH
プログラムアドレス検出制
PACSR0
御 / ステータスレジスタ
00009FH
遅延割込み / 解除
0000A0H
0000A1H
R/W
アドレス一致
検出機能
00000000B
DIRR
R/W
遅延割込み
XXXXXXX0B
低消費電力モード
LPMCR
R/W
低消費電力
制御
00011000B
クロック選択レジスタ
CKSCR
R/W
低消費電力
制御
11111100B
0000A2H ~
0000A7H
予約
0000A8H
ウォッチドッグ制御
WDTC
R/W
ウォッチ
ドッグタイマ
XXXXX111B
0000A9H
タイムベースタイマ
制御
TBTC
R/W
タイムベース
タイマ
1XX00100B
フラッシュ
メモリ
000X0000B
0000AAH ~
0000ADH
0000AEH
予約
フラッシュ制御
ステータス
( フラッシュ品のみ。
他では予約 )
FMCS
0000AFH
R/W
予約
0000B0H
割込み制御レジスタ 00
ICR00
R/W
00000111B
0000B1H
割込み制御レジスタ 01
ICR01
R/W
00000111B
0000B2H
割込み制御レジスタ 02
ICR02
R/W
00000111B
0000B3H
割込み制御レジスタ 03
ICR03
R/W
00000111B
0000B4H
割込み制御レジスタ 04
ICR04
R/W
00000111B
0000B5H
割込み制御レジスタ 05
ICR05
R/W
00000111B
0000B6H
割込み制御レジスタ 06
ICR06
R/W
00000111B
0000B7H
割込み制御レジスタ 07
ICR07
R/W
0000B8H
割込み制御レジスタ 08
ICR08
R/W
0000B9H
割込み制御レジスタ 09
ICR09
R/W
00000111B
0000BAH
割込み制御レジスタ 10
ICR10
R/W
00000111B
0000BBH
割込み制御レジスタ 11
ICR11
R/W
00000111B
0000BCH
割込み制御レジスタ 12
ICR12
R/W
00000111B
0000BDH
割込み制御レジスタ 13
ICR13
R/W
00000111B
0000BEH
割込み制御レジスタ 14
ICR14
R/W
00000111B
0000BFH
割込み制御レジスタ 15
ICR15
R/W
00000111B
0000C0H ~
0000FFH
割込み
コントローラ
00000111B
00000111B
予約
555
付録
■ I/O マップ (3XXX アドレス )
付表 A-2 I/O マップ (3XXX アドレス ) ( 1 / 4 )
アドレス
556
レジスタ
略称
アクセス
周辺
初期値
XXXXXXXXB
003500H
リロード L
PRLL0
R/W
003501H
リロード H
PRLH0
R/W
003502H
リロード L
PRLL1
R/W
003503H
リロード H
PRLH1
R/W
XXXXXXXXB
003504H
リロード L
PRLL2
R/W
XXXXXXXXB
003505H
リロード H
PRLH2
R/W
003506H
リロード L
PRLL3
R/W
003507H
リロード H
PRLH3
R/W
003508H
リロード L
PRLL4
R/W
003509H
リロード H
PRLH4
R/W
00350AH
リロード L
PRLL5
R/W
00350BH
リロード H
PRLH5
R/W
00350CH
リロード L
PRLL6
R/W
16 ビット
プログラマブル
パルス発生部 0/1
16 ビット
プログラマブル
パルス発生部 2/3
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
16 ビット
プログラマブル
パルス発生部 4/5
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
16 ビット
プログラマブル
パルス発生部 6/7
00350DH
リロード H
PRLH6
R/W
00350EH
リロード L
PRLL7
R/W
00350FH
リロード H
PRLH7
R/W
XXXXXXXXB
003510H
リロード L
PRLL8
R/W
XXXXXXXXB
003511H
リロード H
PRLH8
R/W
003512H
リロード L
PRLL9
R/W
003513H
リロード H
PRLH9
R/W
XXXXXXXXB
003514H
リロード L
PRLLA
R/W
XXXXXXXXB
003515H
リロード H
PRLHA
R/W
003516H
リロード L
PRLLB
R/W
003517H
リロード H
PRLHB
R/W
16 ビット
XXXXXXXXB
プログラマブル
XXXXXXXXB
パルス発生部 A/B
XXXXXXXXB
003518H
シリアルモード
レジスタ
SMR3
R/W
00000000B
003519H
シリアル制御レジスタ
SCR3
R/W
00000000B
RDR2, RDR3:
00000000B
TDR2, TDR3:
11111111B
16 ビット
プログラマブル
パルス発生部 8/9
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
00351AH
受信データレジスタ /
送信データレジスタ
RDR3/TDR3
R/W
00351BH
シリアルステータス
レジスタ
SSR3
R/W
00351CH
拡張通信制御レジスタ
ECCR3
R/W
X0000XXXB
00351DH
拡張ステータス /
制御レジスタ
ESCR3
R/W
00000100B
00351EH
ボーレートレジスタ 0
BGR03
R/W
00000000B
00351FH
ボーレートレジスタ 1
BGR13
R/W
00000000B
UART2/3
00001000B
付録 A I/O マップ
付表 A-2 I/O マップ (3XXX アドレス ) ( 2 / 4 )
アドレス
レジスタ
略称
アクセス
周辺
初期値
003520H
インプットキャプチャ 0 IPCP0
R
XXXXXXXXB
003521H
インプットキャプチャ 0 IPCP0
R
003522H
インプットキャプチャ 1 IPCP1
R
インプットキャプ XXXXXXXXB
チャ 0/1
XXXXXXXXB
003523H
インプットキャプチャ 1 IPCP1
R
XXXXXXXXB
003524H
インプットキャプチャ 2 IPCP2
R
XXXXXXXXB
003525H
インプットキャプチャ 2 IPCP2
R
003526H
インプットキャプチャ 3 IPCP3
R
インプットキャプ XXXXXXXXB
チャ 2/3
XXXXXXXXB
003527H
インプットキャプチャ 3 IPCP3
R
XXXXXXXXB
003528H
インプットキャプチャ 4 IPCP4
R
XXXXXXXXB
003529H
インプットキャプチャ 4 IPCP4
R
00352AH
インプットキャプチャ 5 IPCP5
R
インプットキャプ XXXXXXXXB
チャ 4/5
XXXXXXXXB
00352BH
インプットキャプチャ 5 IPCP5
R
XXXXXXXXB
00352CH
タイマデータ 0
TCDT0
R/W
00352DH
タイマデータ 0
TCDT0
R/W
00352EH
タイマ制御 0
TCCS0
R/W
00352FH
タイマ制御 0
TCCS0
R/W
0XXXXXXXB
003530H
アウトプットコンペア 0 OCCP0
R/W
XXXXXXXXB
003531H
アウトプットコンペア 0 OCCP0
R/W
003532H
アウトプットコンペア 1 OCCP1
R/W
アウトプットコン XXXXXXXXB
ペア 0/1
XXXXXXXXB
003533H
アウトプットコンペア 1 OCCP1
R/W
XXXXXXXXB
003534H
アウトプットコンペア 2 OCCP2
R/W
XXXXXXXXB
003535H
アウトプットコンペア 2 OCCP2
R/W
003536H
アウトプットコンペア 3 OCCP3
R/W
アウトプットコン XXXXXXXXB
ペア 2/3
XXXXXXXXB
003537H
アウトプットコンペア 3 OCCP3
R/W
XXXXXXXXB
003538H ~
00353BH
タイマデータ 1
TCDT1
R/W
00353DH
タイマデータ 1
TCDT1
R/W
00353EH
タイマ制御 1
TCCS1
R/W
00353FH
タイマ制御 1
TCCS1
R/W
003540H
タイマ 0/ リロード 0
TMR0/
TMRLR0
R/W
003541H
タイマ 0/ リロード 0
TMR0/
TMRLR0
R/W
003542H ~
00356DH
00356F ~
00359FH
I/O タイマ 0
00000000B
00000000B
予約
00353CH
00356EH
00000000B
00000000B
I/O タイマ 1
00000000B
00000000B
0XXXXXXXB
16 ビット
リロードタイマ 0
XXXXXXXXB
XXXXXXXXB
予約
CAN ダイレクト
モードレジスタ
CDMR
R/W
CAN クロック
同期
XXXXXXX0B
予約
557
付録
付表 A-2 I/O マップ (3XXX アドレス ) ( 3 / 4 )
アドレス
レジスタ
2
略称
周辺
初期値
0035A0H
I C バスステータス
レジスタ
IBSR
R
00000000B
0035A1H
I2C バス制御レジスタ
IBCR
R/W
00000000B
0035A2H
I2C 10 ビットスレーブ
アドレスレジスタ
ITBAL
R/W
00000000B
ITBAH
R/W
00000000B
I2C 10 ビットアドレス
マスクレジスタ
ITMKL
R/W
ITMKH
R/W
0035A3H
0035A4H
0035A5H
I2C インタ
フェース
11111111B
00111111B
0035A6H
I2C 7 ビットスレーブ
アドレスレジスタ
ISBA
R/W
00000000B
0035A7H
I2C 7 ビットアドレス
マスクレジスタ
ISMK
R/W
01111111B
0035A8H
I2C データレジスタ
IDAR
R/W
00000000B
0035A9H ~
0035AAH
0035ABH
予約
I2C クロック制御
レジスタ
ICCR
0035ACH ~
0035C1H
0035C2H
R/W
I2C インタ
フェース
00011111B
予約
クロックモジュレータ
制御レジスタ
CMCR
0035C3H ~
0035C8H
R/W
位相モジュレータ 0XXXXXXXB
予約
0035C9H
入力キャプチャエッジ
0/1
ICE01
R/W
入力キャプチャ
0/1
XXXXX0XXB
0035CAH
入力キャプチャエッジ
2/3
ICE23
R
入力キャプチャ
2/3
XXXXXXXXB
0035CBH
入力キャプチャエッジ
4/5
ICE45
R/W
入力キャプチャ
4/5
XXXXX0XXB
PLL
XXXX0000
0035CCH ~
0035CEH
0035CFH
0035D0H ~
0035DFH
558
アクセス
予約
PLL および特殊構成
制御レジスタ
PSCCR
W
予約
付録 A I/O マップ
付表 A-2 I/O マップ (3XXX アドレス ) ( 4 / 4 )
アドレス
レジスタ
略称
アクセス
周辺
初期値
0035E0H
プログラムアドレス
検出レジスタ 0
PADR0
R/W
XXXXXXXXB
0035E1H
プログラムアドレス
検出レジスタ 0
PADR0
R/W
XXXXXXXXB
0035E2H
プログラムアドレス
検出レジスタ 0
PADR0
R/W
XXXXXXXXB
0035E3H
プログラムアドレス
検出レジスタ 1
PADR1
R/W
アドレス一致検出 XXXXXXXX
B
機能
0035E4H
プログラムアドレス
検出レジスタ 1
PADR1
R/W
XXXXXXXXB
0035E5H
プログラムアドレス
検出レジスタ 1
PADR1
R/W
XXXXXXXXB
0035E6H
プログラムアドレス
検出レジスタ 2
PADR2
R/W
XXXXXXXXB
0035E7H
プログラムアドレス
検出レジスタ 2
PADR2
R/W
0035E8H
プログラムアドレス
検出レジスタ 2
PADR2
R/W
0035E9H ~
0037FFH
アドレス一致検出
機能
XXXXXXXXB
XXXXXXXXB
予約
003800H ~
0038FFH
CAN インタフェース 1 で予約。CAN コントローラの章を参照してください。
003900H ~
0039FFH
CAN インタフェース 1 で予約。CAN コントローラの章を参照してください。
003A00 ~
003FFFH
予約
• "X" は値が不定であることを示します。
• 0000H ~ 00FFH と 3500H ~ 3FFFH の範囲のアドレスは , MCU の主要機能のために
予約されています。これらの予約済みアドレスへのリードアクセスの結果は "X" に
なり , ライトアクセスは禁止です。
○書込み / 読込みについての説明
R/W: リード / ライト可能
R: リードオンリ
W: ライトオンリ
○初期値についての説明
0: このビットの初期値は "0" です。
1: このビットの初期値は "1" です。
X: このビットの初期値は不定です。
559
付録
付録 B
命令
F2MC-16LX に使用している命令について説明します。
B.1 命令の種類
B.2 アドレッシング
B.3 直接アドレッシング
B.4 間接アドレッシング
B.5 実行サイクル数
B.6 実効アドレスフィールド
B.7 命令一覧表の読み方
B.8 F2MC-16LX 命令一覧表
B.9 命令マップ
管理番号 : CM44-00202-1
560
付録 B 命令
B.1
命令の種類
F2MC-16LX には , 以下に示す 351 種類の命令があります。
■ 命令の種類
• 転送系命令 ( バイト ) 41 命令
• 転送系命令 ( ワード , ロングワード ) 38 命令
• 加減算命令 ( バイト , ワード , ロングワード ) 42 命令
• 増減算命令 ( バイト , ワード , ロングワード ) 12 命令
• 比較命令 ( バイト , ワード , ロングワード ) 11 命令
• 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令
• 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令
• 論理演算命令 ( バイト , ワード ) 39 命令
• 論理演算命令 ( ロングワード ) 6 命令
• 符号反転命令 ( バイト , ワード ) 6 命令
• ノーマライズ命令 ( ロングワード ) 1 命令
• シフト命令 ( バイト , ワード , ロングワード ) 18 命令
• 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 )
• アキュムレータ操作命令 ( バイト , ワード ) 6 命令
• その他制御命令 ( バイト , ワード , ロングワード ) 28 命令
• ビット操作命令 21 命令
• ストリング命令 10 命令
561
付録
B.2
アドレッシング
F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ
イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する
場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数
種類のアドレス指定方式から設定できるものがあります。
■ アドレッシング
F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。
• 即値 (#imm)
• レジスタ直接
• 直接分岐アドレス (addr16)
• 物理直接分岐アドレス (addr24)
• I/O 直接 (io)
• 短縮直接アドレス (dir)
• 直接アドレス (addr16)
• I/O 直接ビットアドレス (io: bp)
• 短縮直接ビットアドレス (dir: bp)
• 直接ビットアドレス (addr16: bp)
• ベクタアドレス (#vct)
• レジスタ間接 (@RWj j=0 ~ 3)
• ポストインクリメント付レジスタ間接 (@RWj+ j=0 ~ 3)
• ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ~ 7, @RWj+disp16 j=0 ~ 3)
• ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ~ 3)
• ディスプレースメント付プログラムカウンタ間接 (@PC+disp16)
• ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
• プログラムカウンタ相対分岐アドレス (rel)
• レジスタリスト (rlst)
• アキュムレータ間接 (@A)
• アキュムレータ間接分岐アドレス (@A)
• 間接指定分岐アドレス (@ear)
• 間接指定分岐アドレス (@eam)
562
付録 B 命令
■ 実効アドレスフィールド
実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。
表 B.2-1 実効アドレスフィールド
コード
表記
アドレス形式
00
R0
RW0
RL0
01
R1
RW1
(RL0)
02
R2
RW2
RL1
03
R3
RW3
(RL1)
04
R4
RW4
RL2
05
R5
RW5
(RL2)
06
R6
RW6
RL3
07
R7
RW7
(RL3)
08
@RW0
09
@RW1
レジスタ直接
ea は左から順に
バイト
ワード
ロングワード
の型に対応する。
デフォルトバンク
なし
DTB
DTB
レジスタ間接
0A
@RW2
0B
@RW3
SPB
0C
@RW0+
DTB
0D
@RW1+
0E
@RW2+
0F
@RW3+
SPB
10
@RW0+disp8
DTB
11
@RW1+disp8
DTB
12
@RW2+disp8
ADB
13
@RW3+disp8
14
@RW4+disp8
15
@RW5+disp8
DTB
16
@RW6+disp8
ADB
17
@RW7+disp8
SPB
18
@RW0+disp16
DTB
19
@RW1+disp16
1A
@RW2+disp16
IB
@RW3+disp16
1C
@RW0+RW7
インデックス付レジスタ間接
DTB
1D
@RW1+RW7
インデックス付レジスタ間接
DTB
1E
@PC+disp16
16 ビットディスプレースメント付 PC 間接
PCB
1F
addr16
直接アドレス
DTB
ポストインクリメント付
レジスタ間接
8 ビットディスプレースメント付
レジスタ間接
16 ビットディスプレースメント付
レジスタ間接
ADB
DTB
ADB
SPB
DTB
DTB
ADB
SPB
563
付録
B.3
直接アドレッシング
直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま
す。
■ 直接アドレッシング
● 即値 (#imm)
オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。
図 B.3-1 に例を示します。
図 B.3-1 即値 (#imm) 例
MOVW A, #01212H (A にオペランドの値を格納する命令 )
実行前
A 2233
4455
実行後
A 4455
1 2 1 2 ( 命令によっては AL → AH に転送が行われる )
● レジスタ直接
オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し
ます。
表 B.3-1 レジスタ直接
汎用レジスタ
専用レジスタ
*:
564
バイト
R0, R1, R2, R3, R4, R5, R6, R7
ワード
RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7
ロングワード
RL0, RL1, RL2, RL3
アキュムレータ
A, AL
ポインタ
SP *
バンク
PCB, DTB, USB, SSB, ADB
ページ
DPR
制御
PS, CCR, RP, ILM
SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス
タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ
れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには
記述されることなく指定されます。
付録 B 命令
図 B.3-2 に例を示します。
図 B.3-2 レジスタ直接例
MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 )
実行前
A 0716
2534
メモリ空間
R0
実行後
A 0716
2564
??
メモリ空間
R0
34
● 直接分岐アドレス (addr16)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ
ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ~
bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示
します。
図 B.3-3 直接分岐アドレス (addr16) 例
JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
4F3B20H 次の命令
実行後
PC 3 B 2 0
PCB 4 F
4F3C20H
62
4F3C21H
20
4F3C22H
3B
JMP 3B20H
565
付録
● 物理直接分岐アドレス (addr24)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト
ウェア割込み命令に使用します。図 B.3-4 に例を示します。
図 B.3-4 物理直接分岐アドレス (addr24) 例
JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
333B20H 次の命令
実行後
PC 3 B 2 0
PCB 3 3
4F3C20H
63
4F3C21H
20
4F3C22H
3B
4F3C23H
33
JMPP 333B20H
● I/O 直接 (io)
オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。
データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず ,
物理アドレス "000000H" ~ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接
アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを
記述しても無効です。図 B.3-5 に例を示します。
図 B.3-5 I/O 直接 (io) 例
MOVW A, i : 0C0H (I/O 直接で読出しを行い , A に格納する命令 )
実行前
実行後
566
A 0716
2534
A 2534 FFEE
メモリ空間
0000C0H
EE
0000C1H
FF
付録 B 命令
● 短縮直接アドレス (dir)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ~
bit8 はダイレクトページレジスタ (DPR) により指定されます。
アドレスの bit23 ~ bit16
はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。
図 B.3-6 短縮直接アドレス (dir) 例
MOV S : 20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 )
A 4455
実行前
DPR 6 6
DTB 7 7
A 4455
実行後
DPR 6 6
1212
メモリ空間
776620H
1212
DTB 7 7
??
メモリ空間
776620H
12
● 直接アドレス (addr16)
オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ~
bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング
に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示
します。
図 B.3-7 直接アドレス (addr16) 例
MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 )
実行前
実行後
A 2020
A AABB
AABB
0123
DTB 5 5
メモリ空間
553B21H
01
553B20H
23
DTB 5 5
567
付録
● I/O 直接ビットアドレス (io: bp)
物理アドレス "000000H" ~ "0000FFH" 内のビットを直接指定します。ビットの位置は
": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット
(LSB) となります。図 B.3-8 に例を示します。
図 B.3-8 I/O 直接ビットアドレス (io: bp) 例
SETB i : 0C1H : 0 (I/O 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
0000C1H
実行前
00
メモリ空間
0000C1H
実行後
01
● 短縮直接ビットアドレス (dir: bp)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ~
bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ~ bit16 は
データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の
大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま
す。
図 B.3-9 短縮直接ビットアドレス (dir: bp) 例
SETB S : 10H : 0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
実行前
DTB 5 5
DPR 6 6
556610H
00
メモリ空間
実行後
568
DTB 5 5
DPR 6 6
556610H
01
付録 B 命令
● 直接ビットアドレス (addr16: bp)
64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ~ bit16 はデー
タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き
い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。
図 B.3-10 直接ビットアドレス (addr16: bp) 例
SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
DTB 5 5
実行前
552222H
00
メモリ空間
DTB 5 5
実行後
01
552222H
● ベクタアドレス (#vct)
分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には
4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込
み命令に使用します。図 B.3-11 に例を示します。
図 B.3-11 ベクタアドレス (#vct) 例
CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 )
実行前
PC 0 0 0 0
PCB F F
実行後
メモリ空間
FFC000H
EF
FFFFE0H
00
FFFFE1H
D0
CALLV #15
PC D 0 0 0
PCB F F
569
付録
表 B.3-2 CALLV ベクタ一覧表
ベクタアドレス L
ベクタアドレス H
CALLV #0
XXFFFEH
XXFFFFH
CALLV #1
XXFFFCH
XXFFFDH
CALLV #2
XXFFFAH
XXFFFBH
CALLV #3
XXFFF8H
XXFFF9H
CALLV #4
XXFFF6H
XXFFF7H
CALLV #5
XXFFF4H
XXFFF5H
CALLV #6
XXFFF2H
XXFFF3H
CALLV #7
XXFFF0H
XXFFF1H
CALLV #8
XXFFEEH
XXFFEFH
CALLV #9
XXFFECH
XXFFEDH
CALLV #10
XXFFEAH
XXFFEBH
CALLV #11
XXFFE8H
XXFFE9H
CALLV #12
XXFFE6H
XXFFE7H
CALLV #13
XXFFE4H
XXFFE5H
CALLV #14
XXFFE2H
XXFFE3H
CALLV #15
XXFFE0H
XXFFE1H
命令
( 注意事項 ) XX には PCB レジスタの値が入ります。
<注意事項>
プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合ベクタ領域は INT #vct8 (#0 ~
#7) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 B.3-2 を参照
してください )
570
付録 B 命令
B.4
間接アドレッシング
間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に
アドレスを指定します。
■ 間接アドレッシング
● レジスタ間接 (@RWj j=0 ~ 3)
汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで
す。アドレスの bit23 ~ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ
(DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ
スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク
レジスタ (ADB) で示されます。図 B.4-1 に例を示します。
図 B.4-1 レジスタ間接 (@RWj j=0 ~ 3) 例
MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
RW1 D 3 0 F
実行後
DTB 7 8
78D30FH
EE
78D310H
FF
A 2534 FFEE
RW1 D 3 0 F
DTB 7 8
● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ~ 3)
汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで
す。オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2,
ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ~ bit16 は , RW0, RW1
を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ
クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2
の場合はアディショナルデータバンクレジスタ (ADB) で示されます。
ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス
だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合
は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書
込みデータとなります。
図 B.4-2 に例を示します。
571
付録
図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ~ 3) 例
MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
RW1 D 3 0 F
実行後
DTB 7 8
78D30FH
EE
78D310H
FF
A 2534 FFEE
RW1 D 3 1 1
DTB 7 8
● ディスプレースメント付レジスタ間接
(@RWi+disp8 i=0 ~ 7, @RWj+disp16 j=0 ~ 3)
汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ
モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの
2 種類があり , 符号付数値として加算されます。アドレスの bit23 ~ bit16 は , RW0, RW1,
RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い
た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス
タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ
(ADB) で示されます。図 B.4-3 に例を示します。
図 B.4-3 ディスプレースメント付レジスタ間接
(@RWi+disp8 i=0 ~ 7, @RWj+disp16 j=0 ~ 3) 例
MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令)
実行前
A 0716
2534
(+10H)
RW1 D 3 0 F
実行後
A 2534 FFEE
RW1 D 3 0 F
572
DTB 7 8
DTB 7 8
メモリ空間
78D31FH
EE
78D320H
FF
付録 B 命令
● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ~ 3)
汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア
ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8
ビットで符号付数値として加算されます。図 B.4-4 に例を示します。
図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ~ 3) 例
MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令)
A 0716
実行前
2534
(+25H)
RL2 F 3 8 2
4B02
メモリ空間
824B27H
EE
824B28H
FF
A 2534 FFEE
実行後
RL2 F 3 8 2
4B02
● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16)
(命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン
グです。ディスプレースメントはワード長です。アドレスの bit23 ~ bit16 はプログラ
ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア
ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。
• DBNZ eam, rel
• CBNE eam, #imm8, rel
• MOV eam, #imm8
• DWBNZ eam, rel
• CWBNE eam, #imm16, rel
• MOVW eam, #imm16
図 B.4-5 に例を示します。
図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例
MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
PCB C 5 PC 4 5 5 6
実行後
A 2534
FFEE
PCB C 5 PC 4 5 5 A
+4
C54556H
73
C54557H
9E
C54558H
20
C54559H
00
MOVW
A, @PC+20H
C5455AH
・
・
・
+20H
C5457AH
EE
C5457BH
FF
573
付録
● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ
モリをアクセスするアドレッシングです。アドレスの bit23 ~ bit16 はデータバンクレ
ジスタ (DTB) で示されます。図 B.4-6 に例を示します。
図 B.4-6 ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 例
MOVW A, @RW1+RW7 ( ベースインデックス付レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
RW1 D 3 0 F
WR7 0 1 0 1
実行後
A 2534
RW1 D 3 0 F
2534
+
DTB 7 8
メモリ空間
78D410H
EE
78D411H
FF
FFEE
DTB 7 8
WR7 0 1 0 1
● プログラムカウンタ相対分岐アドレス (rel)
分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのディスプレースメント
を加算した値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタの
インクリメントまたはデクレメントをせずに , 超えた分は無視されますので , 64K バイ
トのバンク内で閉じたアドレスとなります。プログラムカウンタ相対分岐アドレスに
よるアドレッシングは , 無条件 / 条件分岐命令に使用します。アドレスの bit23 ~ bit16
はプログラムカウンタバンクレジスタ (PCB) で示されます。
図 B.4-7 に例を示します。
図 B.4-7 プログラムカウンタ相対分岐アドレス (rel) 例
BRA 10H ( 無条件相対分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
4F3C32H 次の命令
実行後
574
PC 3 C 2 0
PCB 4 F
4F3C21H
10
4F3C20H
60
BRA 10H
付録 B 命令
● レジスタリスト (rlst)
スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ
ジスタリストの構成 , 図 B.4-9 に例を示します。
図 B.4-8 レジスタリストの構成
MSB
LSB
RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0
対応ビットが "1" の場合に設定 , "0" の場合に非設定
MSB: 最上位ビット
LSB: 最下位ビット
図 B.4-9 レジスタリスト (rlst) 例
POPW, RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの
データを転送する命令 )
SP 3 4 F A
SP 3 4 F E
RW0
×× ××
RW0
02 01
RW1
×× ××
RW1
×× ××
RW2
×× ××
RW2
×× ××
RW3
×× ××
RW3
×× ××
RW4
×× ××
RW4
04 03
RW5
×× ××
RW5
×× ××
RW6
×× ××
RW6
×× ××
RW7
×× ××
RW7
×× ××
メモリ空間
SP
01
メモリ空間
34FAH
01
34FAH
02
34FBH
02
34FBH
03
34FCH
03
34FCH
04
34FDH
04
34FDH
34FEH
実行前
SP
34FEH
実行後
575
付録
● アキュムレータ間接 (@A)
アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを
アクセスするアドレス方式です。アドレスの bit23 ~ bit16 はデータバンクレジスタ
(DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。
図 B.4-10 アキュムレータ間接 (@A) 例
MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 )
A
実行前
0716
2534
DTB B B
A
実行後
0716
メモリ空間
BB2534H
EE
BB2535H
FF
FFEE
DTB B B
● アキュムレータ間接分岐アドレス (@A)
分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま
す。バンク空間内での分岐先を示し , アドレスの bit23 ~ bit16 はプログラムカウンタ
バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド
レスの bit23 ~ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ
間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11
に例を示します。
図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例
JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
A 6677
PCB 4 F
3B20
メモリ空間
4F3B20H 次の命令
4F3C20H
実行後
PC 3 B 2 0
A 6677
576
PCB 4 F
3B20
61
JMP @A
付録 B 命令
● 間接指定分岐アドレス (@ear)
ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し
ます。
図 B.4-12 間接指定分岐アドレス (@ear) 例
JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
RW0 7 F 4 8
DTB 2 1
メモリ空間
217F48H
20
217F49H
3B
4F3B20H 次の命令
実行後
PC 3 B 2 0
PCB 4 F
RW0 7 F 4 8
DTB 2 1
4F3C20H
73
4F3C21H
08
JMP @@RW0
● 間接指定分岐アドレス (@eam)
eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示
します。
図 B.4-13 間接指定分岐アドレス (@eam) 例
JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
RW0 3 B 2 0
実行後
PC 3 B 2 0
メモリ空間
4F3B20H 次の命令
PCB 4 F
4F3C20H
73
4F3C21H
00
JMP @RW0
RW0 3 B 2 0
577
付録
B.5
実行サイクル数
命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値
と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値
を加算することで得られます。
■ 実行サイクル数
内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため ,
データのアクセスなどに干渉すると実行サイクル数が増大します。
外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ
スなどに干渉すると実行サイクル数が増大します。
CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの
アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ
イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の
実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵
RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値
を「補正値」として加算してください。
■ 実行サイクル数計算方法
表 B.5-1 , 表 B.5-2 , 表 B.5-3 に命令実行サイクル数および補正値のデータを示します。
表 B.5-1 各種アドレッシングに対する実行サイクル数
(a) *
コード
00 ~ 07
オペランド
Ri
RWi
RLi
各種アドレッシングに対する
実行サイクル数
各種アドレッシングに
対するレジスタ
アクセス回数
命令一覧表に記載
命令一覧表に記載
08 ~ 0B
@RWj
2
1
0C ~ 0F
@RWj+
4
2
10 ~ 17
@RWi+disp8
2
1
18 ~ 1B
@RWi+disp16
2
1
1C
1D
1E
1F
@RW0+RW7
@RW1+RW7
@PC+disp16
addr16
4
4
2
1
2
2
0
0
*: (a) は「B.8 F2MC-16LX 命令一覧表」の~ ( サイクル数 ) , B ( 補正値 ) で使用さ
れています。" ~ " と "B" の意味については「B.7 命令一覧表の読み方」を参照
してください。
578
付録 B 命令
表 B.5-2 実サイクル数算出用サイクル数の補正値
(b) バイト *1
オペランド
(c) ワード *1
(d) ロング *1
サイクル
数
アクセス
回数
サイクル
数
アクセス
回数
サイクル
数
アクセス
回数
内部レジスタ
+0
1
+0
1
+0
2
内部メモリ
偶数アドレス
+0
1
+0
1
+0
2
内部メモリ
奇数アドレス
+0
1
+2
2
+4
4
外部データバス *2
16 ビット偶数アドレス
+1
1
+1
1
+2
2
外部データバス *2
16 ビット奇数アドレス
+1
1
+4
2
+8
4
外部データバス *2
8 ビット
+1
1
+4
2
+8
4
*1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の~ ( サイクル数 ) , B ( 補正値 ) で使用され
ています。
*2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ
イクル数も加算する必要があります。
表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値
命令
バイト境界
ワード境界
内部メモリ
-
+2
外部データバス 16 ビット
-
+3
外部データバス 8 ビット
+3
-
( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト
したサイクル数も加算する必要があります。
・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない
ので , この補正値は最悪ケースを算出する場合に使用してください。
579
付録
B.6
実効アドレスフィールド
表 B.6-1 に実効アドレスフィールドを示します。
■ 実効アドレスフィールド
表 B.6-1 実効アドレスフィールド (1 / 2)
コード
580
表記
アドレス形式
00
R0
RW0
RL0
01
R1
RW1
(RL0)
02
R2
RW2
RL1
03
R3
RW3
(RL1)
04
R4
RW4
RL2
05
R5
RW5
(RL2)
06
R6
RW6
RL3
07
R7
RW7
(RL3)
08
@RW0
09
@RW1
0A
@RW2
0B
@RW3
0C
@RW0+
0D
@RW1+
0E
@RW2+
0F
@RW3+
10
@RW0+disp8
11
@RW1+disp8
12
@RW2+disp8
13
@RW3+disp8
14
@RW4+disp8
15
@RW5+disp8
16
@RW6+disp8
17
@RW7+disp8
アドレス拡張部の
バイト数 *
レジスタ直接
ea は左から順に
バイト
ワード
ロングワード
の型に対応する。
-
レジスタ間接
0
ポストインクリメント付
レジスタ間接
0
8 ビットディスプレースメント付
レジスタ間接
1
付録 B 命令
表 B.6-1 実効アドレスフィールド (1 / 2)
コード
*:
表記
18
@RW0+disp16
19
@RW1+disp16
1A
@RW2+disp16
IB
@RW3+disp16
1C
アドレス形式
アドレス拡張部の
バイト数 *
16 ビットディスプレースメント付
レジスタ間接
2
@RW0+RW7
インデックス付レジスタ間接
0
1D
@RW1+RW7
インデックス付レジスタ間接
0
1E
@PC+disp16
16 ビットディスプレースメント付 PC 間接
2
1F
addr16
直接アドレス
2
アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。
"#" の意味については「B.7 命令一覧表の読み方」を参照してください。
581
付録
B.7
命令一覧表の読み方
「B.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 B.7-1 に , 記号の説
明を表 B.7-2 に示します。
■ 命令の表示記号の説明
表 B.7-1 命令一覧表の項目の説明
項目
ニーモニック
説明
英大文字 , 記号 : アセンブラ上もそのまま表記します。
英小文字 : アセンブラ上では , 書き替えて記述します。
英小文字の後の数 : 命令中のビット幅を示します。
#
バイト数を示します。
~
サイクル数を示します。
RG
命令実行時のレジスタアクセス回数を示します。
CPU 間欠動作時の補正値を算出するのに使用します。
B
オペレーション
LH
AH
命令実行時の実サイクル数の算出用補正値を示します。
命令実行時の実サイクルは~欄の数値を加算したものとなります。
命令の動作を示します。
アキュムレータの bit15 ~ bit8 に対する特殊動作を示します。
Z: 0 を転送する。
X: 符号を拡張して転送する。
- : 転送しない。
アキュムレータの上位 16 ビットに対する特殊動作を示します。
*: AL から AH へ転送する。
- : 転送しない。
Z: AH へ 00H を転送する。
X: AL の符号拡張で AH へ 00H または FFH を転送する。
I
I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) ,
S
N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリー )
T
の各フラグの状態を示します。
N
*: 命令の実行で変化する。
Z
- : 変化しない。
V
S: 命令の実行でセットされる。
C
R: 命令の実行でリセットされる。
RMW
582
リードモディファイライト命令 (1 命令でメモリなどからデータを読
み出し , メモリへ書き込む ) であるかどうか示します。
*: リードモディファイライト命令である。
- : リードモディファイライト命令ではない。
( 注意事項 )
読み書きで意味の異なるアドレスには使用できません。
付録 B 命令
表 B.7-2 命令一覧表の記号の説明 (1 / 2)
表記
A
意味
32 ビットアキュムレータ
命令により , 使用されるビット長が変わります。
バイト : AL の下位 8 ビット
ワード : AL の 16 ビット
ロング : AL: AH の 32 ビット
AH
A の上位 16 ビット
AL
A の下位 16 ビット
SP
スタックポインタ (USP or SSP)
PC
プログラムカウンタ
PCB
プログラムカウンタバンクレジスタ
DTB
データバンクレジスタ
ADB
アディショナルデータバンクレジスタ
SSB
システムスタックバンクレジスタ
USB
ユーザスタックバンクレジスタ
SPB
カレントスタックバンクレジスタ (SSB or USB)
DPR
ダイレクトページレジスタ
brg1
DTB, ADB, SSB, USB, DPR, PCB, SPB
brg2
DTB, ADB, SSB, USB, DPR, SPB
Ri
R0, R1, R2, R3, R4, R5, R6, R7
RWi
RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7
RWj
RW0, RW1, RW2, RW3
RLi
RL0, RL1, RL2, RL3
dir
短縮直接アドレス指定
addr16
直接アドレス指定
addr24
物理直接アドレス指定
ad24 0 ~ 15
addr24 の bit0 ~ bit15
ad24 16 ~ 23
addr24 の bit16 ~ bit23
io
I/O 領域 (000000H ~ 0000FFH)
#imm4
4 ビット即値データ
#imm8
8 ビット即値データ
#imm16
16 ビット即値データ
#imm32
32 ビット即値データ
ext (imm8)
8 ビット即値データを符号拡張した 16 ビットデータ
583
付録
表 B.7-2 命令一覧表の記号の説明 (1 / 2)
表記
584
意味
disp8
8 ビットディスプレースメント
disp16
16 ビットディスプレースメント
bp
ビットオフセット値
vct4
ベクタ番号 (0 ~ 15)
vct8
ベクタ番号 (0 ~ 255)
()b
ビットアドレス
rel
PC 相対分岐指定
ear
実効アドレス指定 ( コード 00 ~ 07)
eam
実効アドレス指定 ( コード 08 ~ 1F)
rlst
レジスタ並び
付録 B 命令
B.8
F2MC-16LX 命令一覧表
F2MC-16LX で使用している命令の一覧を示します。
■ F2MC-16LX 命令一覧表
表 B.8-1 転送系命令 ( バイト ) 41 命令
#
~
RG
B
LH
AH
I
S
T
N
Z
V
C
RMW
MOV
A,dir
2
3
0
(b)
byte (A) ← (dir)
Z
*
-
-
-
*
*
-
-
-
MOV
A,addr16
3
4
0
(b)
byte (A) ← (addr16)
Z
*
-
-
-
*
*
-
-
-
MOV
A,Ri
1
2
1
0
byte (A) ← (Ri)
Z
*
-
-
-
*
*
-
-
-
MOV
A,ear
2
2
1
0
byte (A) ← (ear)
Z
*
-
-
-
*
*
-
-
-
MOV
A,eam
2+
3 + (a)
0
(b)
byte (A) ← (eam)
Z
*
-
-
-
*
*
-
-
-
MOV
A,io
2
3
0
(b)
byte (A) ← (io)
Z
*
-
-
-
*
*
-
-
-
MOV
A,#imm8
2
2
0
0
byte (A) ← imm8
Z
*
-
-
-
*
*
-
-
-
MOV
A,@A
2
3
0
(b)
byte (A) ← ((A))
Z
-
-
-
-
*
*
-
-
-
MOV
A,@RLi+disp8
3
10
2
(b)
byte (A) ← ((RLi)+disp8)
Z
*
-
-
-
*
*
-
-
-
MOVN
A,#imm4
1
1
0
0
byte (A) ← imm4
Z
*
-
-
-
R
*
-
-
-
MOVX
A,dir
2
3
0
(b)
byte (A) ← (dir)
X
*
-
-
-
*
*
-
-
-
MOVX
A,addr16
3
4
0
(b)
byte (A) ← (addr16)
X
*
-
-
-
*
*
-
-
-
MOVX
A,Ri
2
2
1
0
byte (A) ← (Ri)
X
*
-
-
-
*
*
-
-
-
MOVX
A,ear
2
2
1
0
byte (A) ← (ear)
X
*
-
-
-
*
*
-
-
-
MOVX
A,eam
2+
3 + (a)
0
(b)
byte (A) ← (eam)
X
*
-
-
-
*
*
-
-
-
MOVX
A,io
2
3
0
(b)
byte (A) ← (io)
X
*
-
-
-
*
*
-
-
-
MOVX
A,#imm8
2
2
0
0
byte (A) ← imm8
X
*
-
-
-
*
*
-
-
-
MOVX
A,@A
2
3
0
(b)
byte (A) ← ((A))
X
-
-
-
-
*
*
-
-
-
MOVX
A,@RWi+disp8
2
5
1
(b)
byte (A) ← ((RWi)+disp8)
X
*
-
-
-
*
*
-
-
-
ニーモニック
オペレーション
MOVX
A,@RLi+disp8
3
10
2
(b)
byte (A) ← ((RLi)+disp8)
X
*
-
-
-
*
*
-
-
-
MOV
dir,A
2
3
0
(b)
byte (dir) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
addr16,A
3
4
0
(b)
byte (addr16) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
Ri,A
1
2
1
0
byte (Ri) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
ear,A
2
2
1
0
byte (ear) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
eam,A
2+
3 + (a)
0
(b)
byte (eam) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
io,A
2
3
0
(b)
byte (io) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
@RLi+disp8,A
3
10
2
(b)
byte ((RLi)+disp8) ← (A)
-
-
-
-
-
*
*
-
-
-
MOV
Ri,ear
2
3
2
0
byte (Ri) ← (ear)
-
-
-
-
-
*
*
-
-
-
MOV
Ri,eam
2+
4 + (a)
1
(b)
byte (Ri) ← (eam)
-
-
-
-
-
*
*
-
-
-
MOV
ear,Ri
2
4
2
0
byte (ear) ← (Ri)
-
-
-
-
-
*
*
-
-
-
MOV
eam,Ri
2+
5 + (a)
1
(b)
byte (eam) ← (Ri)
-
-
-
-
-
*
*
-
-
-
MOV
Ri,#imm8
2
2
1
0
byte (Ri) ← imm8
-
-
-
-
-
*
*
-
-
-
MOV
io,#imm8
3
5
0
(b)
byte (io) ← imm8
-
-
-
-
-
-
-
-
-
-
MOV
dir,#imm8
3
5
0
(b)
byte (dir) ← imm8
-
-
-
-
-
-
-
-
-
-
MOV
ear,#imm8
3
2
1
0
byte (ear) ← imm8
-
-
-
-
-
*
*
-
-
-
MOV
eam,#imm8
3+
4 + (a)
0
(b)
byte (eam) ← imm8
-
-
-
-
-
-
-
-
-
-
MOV
@AL,AH
2
3
0
(b)
byte ((A)) ← (AH)
-
-
-
-
-
*
*
-
-
-
XCH
A,ear
2
4
2
0
byte (A) ←→ (ear)
Z
-
-
-
-
-
-
-
-
-
XCH
A,eam
2+
5 + (a)
0
Z
-
-
-
-
-
-
-
-
-
XCH
Ri,ear
2
7
4
-
-
-
-
-
-
-
-
-
-
XCH
Ri,eam
2+
9 + (a)
2
-
-
-
-
-
-
-
-
-
-
2 × (b) byte (A) ←→ (eam)
0
byte (Ri) ←→ (ear)
2 × (b) byte (Ri) ←→ (eam)
( 注意事項 ) 表中の (a), (b) は , 表 B.5-1 および表 B.5-2 を参照してください。
585
付録
表 B.8-2 転送系命令 ( ワード・ロングワード ) 38 命令
ニーモニック
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C
RMW
MOVW A,dir
2
3
0
(c)
MOVW A,addr16
3
4
0
(c)
word (A) ← (dir)
-
*
-
-
-
*
*
-
-
-
word (A) ← (addr16)
-
*
-
-
-
*
*
-
-
-
MOVW A,SP
1
1
0
0
word (A) ← (SP)
-
*
-
-
-
*
*
-
-
-
MOVW A,RWi
1
2
1
0
word (A) ← (RWi)
-
*
-
-
-
*
*
-
-
-
MOVW A,ear
2
2
1
0
word (A) ← (ear)
-
*
-
-
-
*
*
-
-
-
MOVW A,eam
2+
3 + (a)
0
(c)
word (A) ← (eam)
-
*
-
-
-
*
*
-
-
-
MOVW A,io
2
3
0
(c)
word (A) ← (io)
-
*
-
-
-
*
*
-
-
-
MOVW A,@A
2
3
0
(c)
MOVW A,#imm16
3
2
0
0
MOVW A,@RWi+disp8
2
5
1
(c)
word (A) ← ((A))
-
-
-
-
-
*
*
-
-
-
word (A) ← imm16
-
*
-
-
-
*
*
-
-
-
word (A) ← ((RWi)+disp8)
-
*
-
-
-
*
*
-
-
-
MOVW A,@RLi+disp8
3
10
2
(c)
word (A) ← ((RLi)+disp8)
-
*
-
-
-
*
*
-
-
-
MOVW dir,A
2
3
0
(c)
word (dir) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW addr16,A
3
4
0
(c)
word (addr16) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW SP,A
1
1
0
0
word (SP) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW RWi,A
1
2
1
0
word (RWi) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW ear,A
2
2
1
0
word (ear) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW eam,A
2+
3 + (a)
0
(c)
word (eam) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW io,A
2
3
0
(c)
word (io) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW @RWi+disp8,A
2
5
1
(c)
word ((RWi)+disp8) ← (A)
-
-
-
-
-
*
*
-
-
MOVW @RLi+disp8,A
3
10
2
(c)
word ((RLi)+disp8) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVW RWi,ear
2
3
2
0
word (RWi) ← (ear)
-
-
-
-
-
*
*
-
-
-
MOVW RWi,eam
2+
4 + (a)
1
(c)
word (RWi) ← (eam)
-
-
-
-
-
*
*
-
-
-
MOVW ear,RWi
2
4
2
0
word (ear) ← (RWi)
-
-
-
-
-
*
*
-
-
-
MOVW eam,RWi
2+
5 + (a)
1
(c)
word (eam) ← (RWi)
-
-
-
-
-
*
*
-
-
-
word (RWi) ← imm16
-
-
-
-
-
*
*
-
-
-
word (io) ← imm16
-
-
-
-
-
-
-
-
-
-
-
-
-
-
*
*
-
-
-
MOVW RWi,#imm16
3
2
1
0
MOVW io,#imm16
4
5
0
(c)
MOVW ear,#imm16
4
2
1
0
word (ear) ← imm16
-
MOVW eam,#imm16
4+
4 + (a)
0
(c)
word (eam) ← imm16
-
-
-
-
-
-
-
-
-
-
MOVW @AL,AH
2
3
0
(c)
word ((A)) ← (AH)
-
-
-
-
-
*
*
-
-
-
XCHW
A,ear
2
4
2
0
word (A) ←→ (ear)
-
-
-
-
-
-
-
-
-
-
XCHW
A,eam
2+
5 + (a)
0
2 × (c)
word (A) ←→ (eam)
-
-
-
-
-
-
-
-
-
-
XCHW
RWi, ear
2
7
4
0
word (RWi) ←→ (ear)
-
-
-
-
-
-
-
-
-
-
XCHW
RWi, eam
2+
9 + (a)
2
2 × (c)
word (RWi) ←→ (eam)
-
-
-
-
-
-
-
-
-
-
MOVL
A,ear
2
4
2
0
long (A) ← (ear)
-
-
-
-
-
*
*
-
-
-
MOVL
A,eam
2+
5 + (a)
0
(d)
long (A) ← (eam)
-
-
-
-
-
*
*
-
-
-
MOVL
A,#imm32
5
3
0
0
long (A) ← imm32
-
-
-
-
-
*
*
-
-
-
MOVL
ear,A
2
4
2
0
long (ear) ← (A)
-
-
-
-
-
*
*
-
-
-
MOVL
eam,A
2+
5 + (a)
0
(d)
long(eam) ← (A)
-
-
-
-
-
*
*
-
-
-
( 注意事項 ) 表中の (a), (c), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
586
付録 B 命令
表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令
ニーモニック
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C
RMW
ADD
A,#imm8
2
2
0
0
byte (A) ← (A) + imm8
Z
-
-
-
-
*
*
*
*
-
ADD
A,dir
2
5
0
(b)
byte (A) ← (A) + (dir)
Z
-
-
-
-
*
*
*
*
-
ADD
A,ear
2
3
1
0
byte (A) ← (A) + (ear)
Z
-
-
-
-
*
*
*
*
-
ADD
A,eam
2+
4 + (a)
0
(b)
byte (A) ← (A) + (eam)
Z
-
-
-
-
*
*
*
*
-
byte (ear) ← (ear) + (A)
-
-
-
-
-
*
*
*
*
-
byte (eam) ← (eam) + (A)
Z
-
-
-
-
*
*
*
*
*
ADD
ear,A
2
3
2
0
ADD
eam,A
2+
5 + (a)
0
2 × (b)
ADDC
A
1
2
0
0
byte (A) ← (AH) + (AL) + (C)
Z
-
-
-
-
*
*
*
*
-
ADDC
A,ear
2
3
1
0
byte (A) ← (A) + (ear)+ (C)
Z
-
-
-
-
*
*
*
*
-
ADDC
A,eam
2+
4 + (a)
0
(b)
byte (A) ← (A) + (eam)+ (C)
Z
-
-
-
-
*
*
*
*
-
1
3
0
0
byte (A) ← (AH) + (AL) + (C) (10 進数 )
Z
-
-
-
-
*
*
*
*
-
ADDDC A
SUB
A,#imm8
2
2
0
0
byte (A) ← (A) - imm8
Z
-
-
-
-
*
*
*
*
-
SUB
A,dir
2
5
0
(b)
byte (A) ← (A) - (dir)
Z
-
-
-
-
*
*
*
*
-
SUB
A,ear
2
3
1
0
byte (A) ← (A) - (ear)
Z
-
-
-
-
*
*
*
*
-
SUB
A,eam
2+
4 + (a)
0
(b)
byte (A) ← (A) - (eam)
Z
-
-
-
-
*
*
*
*
-
SUB
ear,A
2
3
2
0
byte (ear) ← (ear) - (A)
-
-
-
-
-
*
*
*
*
-
SUB
eam,A
2+
5 + (a)
0
2 × (b)
byte (eam) ← (eam) - (A)
-
-
-
-
-
*
*
*
*
*
SUBC
A
1
2
0
0
byte (A) ← (AH) - (AL) - (C)
Z
-
-
-
-
*
*
*
*
-
SUBC
A,ear
2
3
1
0
byte (A) ← (A) - (ear) - (C)
Z
-
-
-
-
*
*
*
*
-
SUBC
A,eam
2+
4 + (a)
0
(b)
byte (A) ← (A) - (eam) - (C)
Z
-
-
-
-
*
*
*
*
-
SUBDC
A
1
3
0
0
byte (A) ← (AH) - (AL) - (C) (10 進数 )
Z
-
-
-
-
*
*
*
*
-
ADDW
A
1
2
0
0
word (A) ← (AH) + (AL)
-
-
-
-
-
*
*
*
*
-
ADDW
A,ear
2
3
1
0
word (A) ← (A) + (ear)
-
-
-
-
-
*
*
*
*
-
ADDW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) + (eam)
-
-
-
-
-
*
*
*
*
-
ADDW
A,#imm16
3
2
0
0
word (A) ← (A) + imm16
-
-
-
-
-
*
*
*
*
-
word (ear) ← (ear) + (A)
-
-
-
-
-
*
*
*
*
-
word (eam) ← (eam) + (A)
-
-
-
-
-
*
*
*
*
*
word (A) ← (A) + (ear) + (C)
-
-
-
-
-
*
*
*
*
-
ADDW
ear,A
2
3
2
0
ADDW
eam,A
2+
5+(a)
0
2 × (c)
ADDCW A,ear
2
3
1
0
ADDCW A,eam
2+
4+(a)
0
(c)
word (A) ← (A) + (eam) + (C)
-
-
-
-
-
*
*
*
*
-
SUBW
A
1
2
0
0
word (A) ← (AH) - (AL)
-
-
-
-
-
*
*
*
*
-
SUBW
A,ear
2
3
1
0
word (A) ← (A) - (ear)
-
-
-
-
-
*
*
*
*
-
SUBW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) - (eam)
-
-
-
-
-
*
*
*
*
-
SUBW
A,#imm16
3
2
0
0
word (A) ← (A) - imm16
-
-
-
-
-
*
*
*
*
-
SUBW
ear,A
2
3
2
0
word (ear) ← (ear) - (A)
-
-
-
-
-
*
*
*
*
-
SUBW
eam,A
2+
5+(a)
0
2 × (c)
word (eam) ← (eam) - (A)
-
-
-
-
-
*
*
*
*
*
SUBCW A,ear
2
3
1
0
word (A) ← (A) - (ear) - (C)
-
-
-
-
-
*
*
*
*
-
SUBCW A,eam
2+
4+(a)
0
(c)
word (A) ← (A) - (eam) - (C)
-
-
-
-
-
*
*
*
*
-
ADDL
A,ear
2
6
2
0
long (A) ← (A) + (ear)
-
-
-
-
-
*
*
*
*
-
ADDL
A,eam
2+
7+(a)
0
(d)
long (A) ← (A) + (eam)
-
-
-
-
-
*
*
*
*
-
ADDL
A,#imm32
5
4
0
0
long (A) ← (A) + imm32
-
-
-
-
-
*
*
*
*
-
SUBL
A,ear
2
6
2
0
long (A) ← (A) - (ear)
-
-
-
-
-
*
*
*
*
-
SUBL
A,eam
2+
7+(a)
0
(d)
long (A) ← (A) - (eam)
-
-
-
-
-
*
*
*
*
-
SUBL
A,#imm32
5
4
0
0
long (A) ← (A) - imm32
-
-
-
-
-
*
*
*
*
-
( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
587
付録
表 B.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令
ニーモニック
#
~
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
byte (ear) <-- (ear) + 1
-
-
-
-
-
*
*
*
-
-
byte (eam) ← (eam) + 1
-
-
-
-
-
*
*
*
-
*
オペレーション
INC
ear
2
3
2
0
INC
eam
2+
5+(a)
0
2 × (b)
DEC
ear
2
3
2
0
byte (ear) ← (ear) - 1
-
-
-
-
-
*
*
*
-
-
DEC
eam
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) - 1
-
-
-
-
-
*
*
*
-
*
word (ear) ← (ear) + 1
-
-
-
-
-
*
*
*
-
-
word (eam) ← (eam) + 1
-
-
-
-
-
*
*
*
-
*
word (ear) ← (ear) - 1
-
-
-
-
-
*
*
*
-
-
word (eam) ← (eam) - 1
-
-
-
-
-
*
*
*
-
*
long (ear) ← (ear) + 1
-
-
-
-
-
*
*
*
-
-
long (eam) ← (eam) + 1
-
-
-
-
-
*
*
*
-
*
long (ear) ← (ear) - 1
-
-
-
-
-
*
*
*
-
-
long (eam) ← (eam) - 1
-
-
-
-
-
*
*
*
-
*
LH
AH
I
S
T
N
Z
V
C RMW
INCW
ear
2
3
2
0
INCW
eam
2+
5+(a)
0
2 × (c)
DECW
ear
2
3
2
0
DECW
eam
2+
5+(a)
0
2 × (c)
INCL
ear
2
7
4
0
INCL
eam
2+
9+(a)
0
2 × (d)
DECL
ear
2
7
4
0
DECL
eam
2+
9+(a)
0
2 × (d)
( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令
ニーモニック
#
~
RG
B
オペレーション
CMP
A
1
1
0
0
byte (AH) - (AL)
-
-
-
-
-
*
*
*
*
CMP
A,ear
2
2
1
0
byte (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMP
A,eam
2+
3+(a)
0
(b)
byte (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMP
A,#imm8
2
2
0
0
byte (A) - imm8
-
-
-
-
-
*
*
*
*
-
CMPW
A
1
1
0
0
word (AH) - (AL)
-
-
-
-
-
*
*
*
*
-
CMPW
A,ear
2
2
1
0
word (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMPW
A,eam
2+
3+(a)
0
(c)
word (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMPW
A,#imm16
3
2
0
0
word (A) - imm16
-
-
-
-
-
*
*
*
*
-
CMPL
A,ear
2
6
2
0
long (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMPL
A,eam
2+
7+(a)
0
(d)
long (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMPL
A,#imm32
5
3
0
0
long (A) - imm32
-
-
-
-
-
*
*
*
*
-
( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
588
-
付録 B 命令
表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令
ニーモニック
#
~
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
DIVU
A
1
*1
0
0
word (AH) / byte (AL)
商→ byte (AL) 余り→ byte (AH)
-
-
-
-
-
-
-
*
*
-
DIVU
A,ear
2
*2
1
0
word (A) / byte (ear)
商→ byte (A) 余り→ byte (ear)
-
-
-
-
-
-
-
*
*
-
DIVU
A,eam
2+
*3
0
*6
word (A) / byte (eam)
商→ byte (A) 余り→ byte (eam)
-
-
-
-
-
-
-
*
*
-
DIVUW
A,ear
2
*4
1
0
long (A) / word (ear)
商→ word (A) 余り→ word (ear)
-
-
-
-
-
-
-
*
*
-
DIVUW
A,eam
2+
*5
0
*7
long (A) / word (eam)
商→ word (A) 余り→ word (eam)
-
-
-
-
-
-
-
*
*
-
MULU
MULU
A
1
*8
0
0
byte (AH) * byte (AL) → word (A)
-
-
-
-
-
-
-
-
-
-
A,ear
2
*9
1
0
byte (A) * byte (ear) → word (A)
-
-
-
-
-
-
-
-
-
-
MULU
MULUW
A,eam
2+
*10
0
(b)
byte (A) * byte (eam) → word (A)
-
-
-
-
-
-
-
-
-
-
A
1
*11
0
0
word (AH) * word (AL) → Long (A)
-
-
-
-
-
-
-
-
-
-
MULUW
A,ear
2
*12
1
0
word (A) * word (ear) → Long (A)
-
-
-
-
-
-
-
-
-
-
MULUW
A,eam
2+
*13
0
(c)
word (A) * word (eam) → Long (A)
-
-
-
-
-
-
-
-
-
-
オペレーション
*1:ゼロディバイトの場合 , 3 オーバフローの場合 , 7 正常の場合 , 15
*2:ゼロディバイトの場合 , 4 オーバフローの場合 , 8 正常の場合 , 16
*3:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 9+(a) 正常の場合 , 19+(a)
*4:ゼロディバイトの場合 , 4 オーバフローの場合 , 7 正常の場合 , 22
*5:ゼロディバイトの場合 , 6+(a) オーバフローの場合 , 8+(a) 正常の場合 , 26+(a)
*6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b)
*7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c)
*8:byte(AH) がゼロの場合 , 3 byte(AH) がゼロでない場合 , 7
*9:byte(ear) がゼロの場合 , 4 byte(ear) がゼロでない場合 , 8
*10:byte(eam) がゼロの場合 , 5+(a) byte(eam) がゼロでない場合 , 9+(a)
*11:word(AH) がゼロの場合 , 3 word(AH) がゼロでない場合 , 11
*12:word(ear) がゼロの場合 , 4 word(ear) がゼロでない場合 , 12
*13:word(eam) がゼロの場合 , 5+(a) word(eam) がゼロでない場合 , 13+(a)
( 注意事項 ) 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。
589
付録
表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令
ニーモニック
#
~
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
DIV
A
2
*1
0
0
word (AH) / byte (AL)
商 --> byte (AL) 余り→ byte (AH)
Z
-
-
-
-
-
-
*
*
-
DIV
A,ear
2
*2
1
0
word (A) / byte (ear)
商 --> byte (A) 余り→ byte (ear)
Z
-
-
-
-
-
-
*
*
-
DIV
A,eam
2+
*3
0
*6
word (A) / byte (eam)
商→ byte (A) 余り→ byte (eam)
Z
-
-
-
-
-
-
*
*
-
DIVW
A,ear
2
*4
1
0
long (A) / word (ear)
商 --> word (A) 余り→ word (ear)
-
-
-
-
-
-
-
*
*
-
DIVW
A,eam
2+
*5
0
*7
long (A) / word (eam)
商→ word (A) 余り→ word (eam)
-
-
-
-
-
-
-
*
*
-
MUL
MUL
A
2
*8
0
0
byte (AH) * byte (AL) → word (A)
-
-
-
-
-
-
-
-
-
-
A,ear
2
*9
1
0
byte (A) * byte (ear) → word (A)
-
-
-
-
-
-
-
-
-
-
MUL
A,eam
2+
*10
0
(b)
byte (A) * byte (eam) → word (A)
-
-
-
-
-
-
-
-
-
-
MULW
A
2
*11
0
0
word (AH) * word (AL) → Long (A)
-
-
-
-
-
-
-
-
-
-
MULW
A,ear
2
*12
1
0
word (A) * word (ear) → Long (A)
-
-
-
-
-
-
-
-
-
-
MULW
A,eam
2+
*13
0
(c)
word (A) * word (eam) → Long (A)
-
-
-
-
-
-
-
-
-
-
オペレーション
*1:ゼロディバイトの場合 , 3 オーバフローの場合 , 8 or 18 正常の場合 , 18
*2:ゼロディバイトの場合 , 4 オーバフローの場合 , 11 or 22 正常の場合 , 23
*3:ゼロディバイトの場合 , 5+(a) オーバフローの場合 12+(a) or 23+(a) 正常の場合 , 24+(a)
*4:被除数が正 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 30 正常の場合 , 31
被除数が負 : ゼロディバイトの場合 , 4 オーバフローの場合 , 12 or 31 正常の場合 , 32
*5:被除数が正 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 12+(a) or 31+(a) 正常の場合 , 32+(a)
被除数が負 : ゼロディバイトの場合 , 5+(a) オーバフローの場合 , 13+(a) or 32+(a) 正常の場合 , 33+(a)
*6:ゼロディバイト , またはオーバフローの場合 , (b) 正常の場合 , 2 × (b)
*7:ゼロディバイト , またはオーバフローの場合 , (c) 正常の場合 , 2 × (c)
*8:byte(AH) がゼロの場合 , 3 結果が正の場合 , 12 結果が負の場合 , 13
*9:byte(ear) がゼロの場合 , 4 結果が正の場合 , 13 結果が負の場合 , 14
*10:byte(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 14+(a) 結果が負の場合 , 15+(a)
*11:word(AH) がゼロの場合 , 3 結果が正の場合 , 16 結果が負の場合 , 19
*12:word(ear) がゼロの場合 , 4 結果が正の場合 , 17 結果が負の場合 , 20
*13:word(eam) がゼロの場合 , 5+(a) 結果が正の場合 , 18+(a) 結果が負の場合 , 21+(a)
( 注意事項 ) ・ DIV, DIVW 命令でオーバフロー発生時の実行サイクル数に 2 種類ありますが , 演算前と演算後に検出する場合が
あるためです。
DIV, DIVW 命令でオーバフロー発生時には , AL の内容は破壊されます。
・ 表中の (a),(b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。
590
付録 B 命令
表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令
ニーモニック
#
~
RG
B
AND
A,#imm8
2
2
0
0
AND
A,ear
2
3
1
0
LH
AH
I
S
T
N
Z
V
C RMW
byte (A) ← (A) and imm8
-
-
-
-
-
*
*
R
-
-
byte (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
オペレーション
AND
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
AND
ear,A
2
3
2
0
byte (ear) ← (ear) and (A)
-
-
-
-
-
*
*
R
-
-
AND
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) and (A)
-
-
-
-
-
*
*
R
-
*
OR
A,#imm8
2
2
0
0
byte (A) ← (A) or imm8
-
-
-
-
-
*
*
R
-
-
OR
A,ear
2
3
1
0
byte (A) ← (A) or (ear)
-
-
-
-
-
*
*
R
-
-
OR
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) or (eam)
-
-
-
-
-
*
*
R
-
-
OR
ear,A
2
3
2
0
byte (ear) ← (ear) or (A)
-
-
-
-
-
*
*
R
-
-
OR
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) or (A)
-
-
-
-
-
*
*
R
-
*
XOR
A,#imm8
2
2
0
0
byte (A) ← (A) xor imm8
-
-
-
-
-
*
*
R
-
-
XOR
A,ear
2
3
1
0
byte (A) ← (A) xor (ear)
-
-
-
-
-
*
*
R
-
-
XOR
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) xor (eam)
-
-
-
-
-
*
*
R
-
-
XOR
ear,A
2
3
2
0
byte (ear) ← (ear) xor (A)
-
-
-
-
-
*
*
R
-
-
XOR
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) xor (A)
-
-
-
-
-
*
*
R
-
*
NOT
A
1
2
0
0
byte (A) ← not (A)
-
-
-
-
-
*
*
R
-
-
NOT
ear
2
3
2
0
byte (ear) ← not (ear)
-
-
-
-
-
*
*
R
-
-
NOT
eam
2+
5+(a)
0
2 × (b)
byte (eam) ← not (eam)
-
-
-
-
-
*
*
R
-
*
ANDW
A
1
2
0
0
word (A) ← (AH) and (A)
-
-
-
-
-
*
*
R
-
-
ANDW
A,#imm16
3
2
0
0
word (A) ← (A) and imm16
-
-
-
-
-
*
*
R
-
-
ANDW
A,ear
2
3
1
0
word (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
ANDW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
ANDW
ear,A
2
3
2
0
word (ear) ← (ear) and (A)
-
-
-
-
-
*
*
R
-
-
ANDW
eam,A
2+
5+(a)
0
2 × (c)
word (eam) ← (eam) and (A)
-
-
-
-
-
*
*
R
-
*
ORW
A
1
2
0
0
word (A) ← (AH) or (A)
-
-
-
-
-
*
*
R
-
-
ORW
A,#imm16
3
2
0
0
word (A) ← (A) or imm16
-
-
-
-
-
*
*
R
-
-
ORW
A,ear
2
3
1
0
word (A) ← (A) or (ear)
-
-
-
-
-
*
*
R
-
-
ORW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) or (eam)
-
-
-
-
-
*
*
R
-
-
ORW
ear,A
2
3
2
0
ORW
eam,A
2+
5+(a)
0
2 × (c)
word (ear) ← (ear) or (A)
-
-
-
-
-
*
*
R
-
-
word (eam) ← (eam) or (A)
-
-
-
-
-
*
*
R
-
*
XORW
A
1
2
0
0
word (A) ← (AH) xor (A)
-
-
-
-
-
*
*
R
-
-
XORW
A,#imm16
3
2
0
XORW
A,ear
2
3
1
0
word (A) ← (A) xor imm16
-
-
-
-
-
*
*
R
-
-
0
word (A) ← (A) xor (ear)
-
-
-
-
-
*
*
R
-
XORW
A,eam
2+
4+(a)
0
-
(c)
word (A) ← (A) xor (eam)
-
-
-
-
-
*
*
R
-
-
XORW
ear,A
2
3
2
0
word (ear) ← (ear) xor (A)
XORW
eam,A
2+
-
-
-
-
-
*
*
R
-
-
5+(a)
0
2 × (c)
word (eam) ← (eam) xor (A)
-
-
-
-
-
*
*
R
-
*
NOTW
A
NOTW
ear
1
2
0
0
word (A) ← not (A)
-
-
-
-
-
*
*
R
-
-
2
3
2
0
word (ear) ← not (ear)
-
-
-
-
-
*
*
R
-
-
NOTW
eam
2+
5+(a)
0
2 × (c)
word (eam) ← not (eam)
-
-
-
-
-
*
*
R
-
*
( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。
591
付録
表 B.8-9 論理 2 演算命令 ( ロングワード ) 6 命令
#
~
RG
B
ANDL
A,ear
2
6
2
0
ANDL
A,eam
2+
7+(a)
0
(d)
ニーモニック
LH
AH
I
S
T
N
Z
V
C RMW
long (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
long (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
オペレーション
ORL
A,ear
2
6
2
0
long (A) ← (A) or (ear)
-
-
-
-
-
*
*
R
-
-
ORL
A,eam
2+
7+(a)
0
(d)
long (A) ← (A) or (eam)
-
-
-
-
-
*
*
R
-
-
long (A) ← (A) xor (ear)
-
-
-
-
-
*
*
R
-
-
long (A) ← (A) xor (eam)
-
-
-
-
-
*
*
R
-
-
LH
AH
I
S
T
N
Z
V
C RMW
XORL
A,ear
2
6
2
0
XORL
A,eam
2+
7+(a)
0
(d)
( 注意事項 ) 表中の (a), (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-10 符号反転命令 ( バイト・ワード ) 6 命令
ニーモニック
NEG
A
#
~
RG
B
1
2
0
0
byte (A) ← 0 - (A)
X
-
-
-
-
*
*
*
*
byte (ear) ← 0 - (ear)
-
-
-
-
-
*
*
*
*
-
-
-
-
-
*
*
*
*
*
-
オペレーション
-
NEG
ear
2
3
2
0
NEG
eam
2+
5+(a)
0
2 × (b)
byte (eam) ← 0 - (eam)
-
NEGW
A
1
2
0
0
word (A) ← 0 - (A)
-
-
-
-
-
*
*
*
*
word (ear) ← 0 - (ear)
-
-
-
-
-
*
*
*
*
-
word (eam) ← 0 - (eam)
-
-
-
-
-
*
*
*
*
*
NEGW
ear
2
3
2
0
NEGW
eam
2+
5+(a)
0
2 × (c)
( 注意事項 ) 表中の (a), (b), (c) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令
ニーモニック
NRML
A,R0
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
2
*1
1
0
long (A) ← 最初に "1" が立っていた所まで左
シフトする
byte (R0) ← その場合のシフト回数
-
-
-
-
-
-
*
-
-
*1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0)
592
-
付録 B 命令
表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令
ニーモニック
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
RORC
A
2
2
0
0
byte (A) ← 右ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
ROLC
A
2
2
0
0
byte (A) ← 左ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
0
byte (ear) ← 右ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
-
-
-
-
-
*
*
-
*
*
-
-
-
-
-
*
*
-
*
-
-
-
-
-
-
*
*
-
*
*
RORC
ear
2
3
2
RORC
eam
2+
5+(a)
0
ROLC
ear
2
3
2
ROLC
eam
2+
5+(a)
0
ASR
A,R0
2
*1
1
0
byte (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
LSR
A,R0
2
*1
1
0
byte (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
LSL
A,R0
2
*1
1
0
byte (A) ← ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
ASRW
A
1
2
0
0
word (A) ← 算術右シフト (A,1 ビット )
-
-
-
-
*
*
*
-
*
-
LSRW
A/SHRW A
1
2
0
0
word (A) ← ロジカル右シフト (A,1 ビット )
-
-
-
-
*
R
*
-
*
-
LSLW
A/SHLW A
1
2
0
0
word (A) ← ロジカル左シフト (A,1 ビット )
-
-
-
-
-
*
*
-
*
-
ASRW
A,R0
2
*1
1
0
word (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
2 × (b) byte (eam) ← 右ローテートキャリー付
0
byte (ear) ← 左ローテートキャリー付
2 × (b) byte (eam) ← 左ローテートキャリー付
LSRW
A,R0
2
*1
1
0
word (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
LSLW
A,R0
2
*1
1
0
word (A) ←ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
ASRL
A,R0
2
*2
1
0
long (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
LSRL
A,R0
2
*2
1
0
long (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
LSLL
A,R0
2
*2
1
0
long (A) <-- ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
*1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0)
*2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0)
( 注意事項 ) 表中の (a),(b) は , 表 B.5-1 および表 B.5-2 を参照してください。
593
付録
表 B.8-13 分岐命令 1 31 命令
#
ニーモニック
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
BZ/BEQ
rel
2
*1
0
0
(Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNZ/BNE
rel
2
*1
0
0
(Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BC/BLO
rel
2
*1
0
0
(C) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNC/BHS
rel
2
*1
0
0
(C) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BN
rel
2
*1
0
0
(N) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
BP
rel
2
*1
0
0
(N) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BV
rel
2
*1
0
0
(V) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNV
rel
2
*1
0
0
(V) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BT
rel
2
*1
0
0
(T) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNT
rel
2
*1
0
0
(T) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLT
rel
2
*1
0
0
(V) xor (N) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BGE
rel
2
*1
0
0
(V) xor (N) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLE
rel
2
*1
0
0
((V) xor (N)) or (Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BGT
rel
2
*1
0
0
((V) xor (N)) or (Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLS
rel
2
*1
0
0
(C) or (Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BHI
rel
2
*1
0
0
(C) or (Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BRA
rel
2
*1
0
0
無条件分岐
-
-
-
-
-
-
-
-
-
-
JMP
@A
1
2
0
0
word (PC) ← (A)
-
-
-
-
-
-
-
-
-
-
JMP
addr16
3
3
0
0
word (PC) ← addr16
-
-
-
-
-
-
-
-
-
-
JMP
@ear
2
3
1
0
word (PC) ← (ear)
-
-
-
-
-
-
-
-
-
-
JMP
@eam
2+
4+(a)
0
(c)
word (PC) ← (eam)
-
-
-
-
-
-
-
-
-
-
JMPP
@ear
注 1)
2
5
2
0
word (PC) ← (ear), (PCB) ← (ear+2)
-
-
-
-
-
-
-
-
-
-
JMPP
@eam
注 1)
2+
6+(a)
0
(d)
word (PC) ← (eam), (PCB) ← (eam+2)
-
-
-
-
-
-
-
-
-
-
word (PC) ← ad24 0-15, (PCB) ← ad24 16-23
-
-
-
-
-
-
-
-
-
-
word (PC) ← (ear)
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
JMPP
addr24
4
4
0
0
CALL
@ear
注 2)
2
6
1
(c)
CALL
@eam
2 × (c) word (PC) ← (eam)
注 2)
2+
7+(a)
0
CALL
addr16 注 3)
3
6
0
CALLV
#vct4
注 3)
1
7
0
2 × (c) ベクタコール命令
CALLP
@ear
注 4)
2
10
2
2 × (c) word (PC) ← (ear)0-15, (PCB) ← (ear)16-23
11+(a)
0
10
0
CALLP
@eam
注 4)
2+
CALLP
addr24 注 5)
4
(c)
*2
word (PC) ← addr16
word (PC) ← (eam)0-15, (PCB) ← (eam)16-23
2 × (c) word (PC) ← addr0-15, (PCB) ← addr16-23
*1:分岐が行われる場合 , 4 行われない場合 , 3
*2:3 × (c)+(b)
注 1) 分岐先アドレスの読込み (word)
注 2) W:スタックへの退避 (word), R:分岐先アドレスの読込み (word)
注 3) スタックへの退避 (word)
注 4) W:スタックへの退避 (long), R:分岐先アドレスの読込み (long)
注 5) スタックへの退避 (long)
( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
594
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
付録 B 命令
表 B.8-14 分岐命令 2 19 命令
ニーモニック
#
~
RG
B
CBNE
A,#imm8,rel
3
*1
0
0
CWBNE
A,#imm16,rel
4
*1
0
0
CBNE
LH
AH
byte (A) ≠ imm8 で分岐
-
-
-
-
- * * * *
-
word (A) ≠ imm16 で分岐
-
-
-
-
- * * * *
-
オペレーション
I S T N Z V C RMW
ear,#imm8,rel
4
*2
1
0
byte (ear) ≠ imm8 で分岐
-
-
-
-
- * * * *
-
CBNE
eam,#imm8,rel
注 1)
4+
*3
0
(b)
byte (eam) ≠ imm8 で分岐
-
-
-
-
- * * * *
-
CWBNE
ear,#imm16,rel
5
*4
1
0
word (ear) ≠ imm16 で分岐
-
-
-
-
- * * * *
-
eam,#imm16,rel 注 1)
5+
*3
0
(c)
word (eam) ≠ imm16 で分岐
-
-
-
-
- * * * *
-
byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐
-
-
-
-
- * * *
-
-
-
-
-
-
- * * *
-
*
CWBNE
DBNZ
ear,rel
3
*5
2
DBNZ
eam,rel
3+
*6
2
0
2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐
DWBNZ
ear,rel
3
*5
2
-
-
-
-
- * * *
-
-
DWBNZ
eam,rel
3+
*6
2
2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐
-
-
-
-
- * * *
-
*
INT
#vct8
2
20
0
8 × (c) ソフトウェア割込み
-
-
R S -
-
-
-
-
-
INT
addr16
3
16
0
6 × (c) ソフトウェア割込み
-
-
R S -
-
-
-
-
-
INTP
addr24
4
17
0
6 × (c) ソフトウェア割込み
-
-
R S -
-
-
-
-
-
1
20
0
8 × (c) ソフトウェア割込み
-
-
R S -
-
-
-
-
-
1
*8
0
*7
割込みからの復帰
-
-
* * * * * * *
-
2
6
0
(c)
関数の入口で , 旧フレームポインタをスタッ
クに保存し , 新フレームポインタの設定 , お
よびローカルポインタの領域を確保する
-
-
-
-
-
-
-
-
-
-
1
5
0
(c)
関数の出口で , 旧フレームポインタをスタッ
クから復帰させる
-
-
-
-
-
-
-
-
-
-
注 2)
1
4
0
(c)
サブルーチンからの復帰
-
-
-
-
-
-
-
-
-
-
注 3)
1
6
0
(d)
サブルーチンからの復帰
-
-
-
-
-
-
-
-
-
-
INT9
RETI
LINK
#imm8
UNLINK
RET
RETP
0
word (ear) = (ear) - 1, (ear) ≠ 0 で分岐
*1:分岐が行われる場合 , 5 行われない場合 , 4
*2:分岐が行われる場合 , 13 行われない場合 , 12
*3:分岐が行われる場合 , 7+(a) 行われない場合 , 6+(a)
*4:分岐が行われる場合 , 8 行われない場合 , 7
*5:分岐が行われる場合 , 7 行われない場合 , 6
*6:分岐が行われる場合 , 8+(a) 行われない場合 , 7+(a) *7:次の割込み要求へ分岐する場合 , 3 × (b)+2 × (c) 今の割込みから復帰の場合 , 6 × (c)
*8:次の割込みへ分岐する場合 , 15 今の割込みから復帰する場合 , 17
注 1) CBNE / CWBNE 命令では , RWj+ のアドレッシングモードは , 使用しないでください。
注 2) スタックからの復帰 (word)
注 3) スタックからの復帰 (long)
( 注意事項 ) 表中の (a) ~ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
595
付録
表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令
ニーモニック
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
PUSHW
A
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (A)
-
-
-
-
-
-
-
-
-
-
PUSHW
AH
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (AH)
-
-
-
-
-
-
-
-
-
-
PUSHW
PS
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (PS)
-
-
-
-
-
-
-
-
-
-
PUSHW
rlst
2
*3
*5
*4
(SP) ← (SP) - 2n, ((SP)) ← (rlst)
-
-
-
-
-
-
-
-
-
-
POPW
A
1
3
0
(c)
word (A) ← ((SP)), (SP) ← (SP) + 2
-
*
-
-
-
-
-
-
-
-
POPW
AH
1
3
0
(c)
word (AH) ← ((SP)), (SP) ← (SP) + 2
-
-
-
-
-
-
-
-
-
-
POPW
PS
1
4
0
(c)
word (PS) ← ((SP)), (SP) ← (SP) + 2
-
-
*
*
*
*
*
*
*
-
POPW
rlst
2
*2
*5
*4
JCTX
@A
1
14
0
6 × (c)
(rlst) ← ((SP)), (SP) ← (SP) + 2n
-
-
-
-
-
-
-
-
-
-
コンテキストスイッチ命令
-
-
*
*
*
*
*
*
*
AND
CCR,#imm8
2
3
0
0
-
byte (CCR) ← (CCR) and imm8
-
-
*
*
*
*
*
*
*
OR
CCR,#imm8
2
3
0
-
0
byte (CCR) ← (CCR) or imm8
-
-
*
*
*
*
*
*
*
-
MOV
RP,#imm8
2
2
MOV
ILM,#imm8
2
2
0
0
byte (RP) ← imm8
-
-
-
-
-
-
-
-
-
-
0
0
byte (ILM) ← imm8
-
-
-
-
-
-
-
-
-
-
MOVEA
RWi,ear
2
3
MOVEA
RWi,eam
2+
2+(a)
1
0
word (RWi) ← ear
-
-
-
-
-
-
-
-
-
-
1
0
word (RWi) ← eam
-
-
-
-
-
-
-
-
-
MOVEA
A,ear
2
1
-
0
0
word (A) ← ear
-
*
-
-
-
-
-
-
-
-
MOVEA
A,eam
2+
ADDSP
#imm8
2
1+(a)
0
0
word (A) ← eam
-
*
-
-
-
-
-
-
-
-
3
0
0
word (SP) ← (SP) + ext(imm8)
-
-
-
-
-
-
-
-
-
-
ADDSP
#imm16
3
3
0
0
word (SP) ← (SP) + imm16
-
-
-
-
-
-
-
-
-
-
MOV
MOV
A,brg1
2
*1
0
0
byte (A) ← (brg1)
Z
*
-
-
-
*
*
-
-
-
brg2,A
2
1
0
0
byte (brg2) ← (A)
-
-
-
-
-
*
*
-
-
-
NOP
1
1
0
0
ノーオペレーション
-
-
-
-
-
-
-
-
-
-
ADB
1
1
0
0
AD 空間アクセス用プリフィックス
コード
-
-
-
-
-
-
-
-
-
-
DTB
1
1
0
0
DT 空間アクセス用プリフィックス
コード
-
-
-
-
-
-
-
-
-
-
PCB
1
1
0
0
PC 空間アクセス用プリフィックス
コード
-
-
-
-
-
-
-
-
-
-
SPB
1
1
0
0
SP 空間アクセス用プリフィックス
コード
-
-
-
-
-
-
-
-
-
-
NCC
1
1
0
0
フラグ無変化用プリフィックスコー
ド
-
-
-
-
-
-
-
-
-
-
CMR
1
1
0
0
コモンレジスタバンク用プリフィッ
クス
-
-
-
-
-
-
-
-
-
-
*1:PCB,ADB,SSB,USB・・・・・・1 ステート
DTB,DPR ・・・・・・・・・・2 ステート
*2:7+3 × (POP する回数 )+2 × (POP する最後のレジスタ番号 ), RLST=0( 転送レジスタ無し ) の場合 7
*3:29+3 × (PUSH する回数 )-3 × (PUSH する最後のレジスタ番号 ), RLST=0 ( 転送レジスタ無し ) の場合 8
*4:(POP する回数 ) × (c), または (PUSH する回数 ) × (c)
*5:(POP する回数 ), または (PUSH する回数 )
( 注意事項 ) 表中の (a),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。
596
付録 B 命令
表 B.8-16 ビット操作命令 21 命令
ニーモニック
#
~
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
MOVB
A,dir:bp
3
5
0
(b)
byte (A) ← (dir:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
A,addr16:bp
4
5
0
(b)
byte (A) ← (addr16:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
A,io:bp
3
4
0
(b)
byte (A) ← (io:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
dir:bp,A
3
7
0
2 × (b) bit (dir:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
MOVB
addr16:bp,A
4
7
0
2 × (b) bit (addr16:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
MOVB
io:bp,A
3
6
0
2 × (b) bit (io:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
SETB
dir:bp
3
7
0
2 × (b) bit (dir:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
SETB
addr16:bp
4
7
0
2 × (b) bit (addr16:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
SETB
io:bp
3
7
0
2 × (b) bit (io:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
CLRB
dir:bp
3
7
0
2 × (b) bit (dir:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
CLRB
addr16:bp
4
7
0
2 × (b) bit (addr16:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
CLRB
io:bp
3
7
0
2 × (b) bit (io:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
BBC
dir:bp,rel
4
*1
0
(b)
(dir:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBC
addr16:bp,rel
5
*1
0
(b)
(addr16:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBC
io:bp,rel
4
*2
0
(b)
(io:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
dir:bp,rel
4
*1
0
(b)
(dir:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
addr16:bp,rel
5
*1
0
(b)
(addr16:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
io:bp,rel
4
*2
0
(b)
(io:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
SBBS
addr16:bp,rel
5
*3
0
-
-
-
-
-
-
*
-
-
*
WBTS
io:bp
3
*4
0
*5
WBTC
io:bp
3
*4
0
*5
2 × (b) (addr16:bp) b = 1 で分岐 ,
bit (addr16:bp) b ← 1
(io:bp) b = 1 になるまで待つ
-
-
-
-
-
-
-
-
-
-
(io:bp) b = 0 になるまで待つ
-
-
-
-
-
-
-
-
-
-
LH
AH
I
S
T
N
Z
V
C RMW
*1:分岐が行われる場合 , 8 分岐が行われない場合 , 7
*2:分岐が行われる場合 , 7 分岐が行われない場合 , 6
*3:条件成立の場合 , 10 未成立の場合 , 9
*4:不定回数
*5:条件が成立するまで
( 注意事項 ) 表中の (b) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令
#
~
RG
B
SWAP
1
3
0
0
byte (A)0-7 ←→ (A)8-15
-
-
-
-
-
-
-
-
-
SWAPW
1
2
0
0
word (AH) ←→ (AL)
-
*
-
-
-
-
-
-
-
-
EXT
1
1
0
0
byte 符号拡張
X
-
-
-
-
*
*
-
-
-
EXTW
1
2
0
0
word 符号拡張
-
X
-
-
-
*
*
-
-
-
ZEXT
1
1
0
0
byte ゼロ拡張
Z
-
-
-
-
R
*
-
-
-
ZEXTW
1
1
0
0
word ゼロ拡張
-
Z
-
-
-
R
*
-
-
-
ニーモニック
オペレーション
-
597
付録
表 B.8-18 ストリング命令 10 命令
ニーモニック
#
~
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
byte 転送 @AH+ ← @AL+, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
byte 転送 @AH- ← @AL-, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
オペレーション
MOVS / MOVSI
2
*2
*5
*3
MOVSD
2
*2
*5
*3
SCEQ / SCEQI
2
*1
*8
*4
byte 検索 @AH+ ← AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
SCEQD
2
*1
*8
*4
byte 検索 @AH- ← AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
FILS / FILSI
2
6m+6
*8
*3
byte 充填 @AH+ ← AL, カウンタ = RW0
-
-
-
-
-
*
*
-
-
-
MOVSW / MOVSWI
2
*2
*5
*6
word 転送 @AH+ ← @AL+, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
MOVSWD
2
*2
*5
*6
word 転送 @AH- ← @AL-, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
SCWEQ / SCWEQI
2
*1
*8
*7
word 検索 @AH+ - AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
SCWEQD
2
*1
*8
*7
word 検索 @AH- - AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
FILSW / FILSWI
2
6m+6
*8
*6
word 充填 @AH+ ← AL, カウンタ = RW0
-
-
-
-
-
*
*
-
-
-
*1:RW0 が "0" の場合 , 5 カウントアウトの場合 , 4+7 × (RW0) 一致した場合 , 7n+5
*2:RW0 が "0" の場合 , 5 "0" 以外の場合 , 4+8 × (RW0)
*3:(b) × (RW0)+(b) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (b) の項目
を算出してください。
*4:(b)+n
*5:2 × (b) × (RW0)
*6:(c) × (RW0)+(c) × (RW0) ソースとデスティネーションで異なる領域をアクセスする場合には , それぞれ別々に (c) の項目
を算出してください。
*7:(c) × n
*8:(b) × (RW0)
( 注意事項 ) ・ m:RW0 値 ( カウンタ値 )
n:ループした回数
・ 表中の (b),(c) は , 表 B.5-1 および表 B.5-2 を参照してください。
598
付録 B 命令
B.9
命令マップ
F2MC-16LX の命令コードは , 1 ~ 2 バイトで構成されていますので , 命令マップは
複数のページで構成されています。
F2MC-16LX の命令マップを示します。
■ 命令マップの構造
図 B.9-1 命令マップの構造
:第 1 バイト
基本ページマップ
ビット操作系命令
文字列操作系命令
2 バイト系命令
ea 系命令× 9
:第 2 バイト
1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命
令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ
かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。
実際の命令コードと命令マップの対応を図 B.9-2 に示します。
599
付録
図 B.9-2 実際の命令コードと命令マップの対応
命令によっては
ない場合もある
命令によって
長さが異なる
命令コード 第 1 バイト
第 2 バイト
オペランド
オペランド
・・・
[ 基本ページマップ ]
XY
+Z
[ 拡張ページマップ ]*
UV
+W
*:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系
命令の総称で , 実際は各系列の命令ごとに複数存在します。
命令コードの例を表 B.9-1 に示します。
表 B.9-1 命令コードの例
第 1 バイト
( 基本ページマップより )
第 2 バイト
( 拡張ページマップより )
NOP
00 + 0=00
―
AND A, #8
30 + 4=34
―
MOV A, ADB
60 + F=6F
00 + 0=00
@RW2+d8, #8, rel
70 + 0=70
F0 + 2=F2
命令
600
A
SWAP
ADDSP
ADB
SPB
#8
CMP
A, #8
A, #8
dir, A
A, dir
io, A
A, io
JMP
BRA
60
@A
rel
MULU
DIVU
ea 系命令
その 2
B0
C0
D0
E0
ea 系命令
その 8
ea 系命令
その 7
#4
rel
rel
BNT
BT
BNV
BV
BP
BN
rel
rel
rel
rel
rel
BNC/BHS
rel
BC/BLO
BNZ/BNE
rel
BZ/BEQ
F0
+F
+E
+D
+C
+B
LSRW
ASRW
LSLW
NEGW
A
A
A
A
XORW
ORW
ANDW
ANDW
PUSHW
POPW
A, #16
A
A
A
A
PUSHW
POPW
rlst
rlst
XORW
PUSHW
POPW
A, #16
PS
PS
MOVW
RWi, ea
2 バイト XCHW
RWi, ea
系命令
文字列操 XCH
Ri, ea
作系命令
MOVW
ea, RWi
ビット操 MOV
ea, Ri
作系命令
CMPW
MOVL
MOVW
RETI
A, #16
A, #32 addr16, A
ORW
PUSHW
POPW
A
A, #16
AH
AH
A
A
ADDSP
MULUW
NOTW
#16
A
SWAPW
ZEXTW
EXTW
CMPL
CMPW
A, #32
BHI
BLS
BGT
BLE
BGE
BLT
rel
rel
rel
rel
rel
rel
A
MOVW
MOVW
RETP
A, SP
io, #16
MOVX
MOVX
CALLP
ea 系命令
A, dir
A, io
addr24
その 6
MOVW
MOVX
RET
A
SP, A A, addr16
A, #8
A0
ADDW
MOVW
MOVW
INT
MOVW
MOVW
MOV A,
MOVW
ea 系命令 MOVW
A, #16
A, dir
A, io
#vct8
A, RWi
RWi, A RWi, #16 @RWi+d8 @RWi+d8,A
その 9
NOT
XOR
A, #8
90
rel
SUBL
SUBW
A, #32
A
A
A
OR
OR
CCR, #8
80
MOV
MOV
MOV
MOVX A, MOV
CALL
ea 系命令 MOV
A, Ri
Ri, A
Ri, #8
A, Ri @RWi+d8
A, #4
その 1
70
MOV
JMP
ea 系命令
A, addr16
addr16
その 3
MOV
MOV
50
MOVX
MOV
JMPP
ea 系命令
A, #8 addr16, A
addr24
その 4
MOV
MOV
MOV
40
MOV
MOV
CBNE A, CWBNE A, MOVW
MOVW
INTP
MOV
+A
RP, #8
ILM, #8
#8, rel
#16, rel
A, #16 A,addr16
addr24
Ri, ea
+9
UNLINK
A
A
A, #8
A, #8
SUBC
SUB
ADD
30
AND
AND
MOV
MOV
CALL
ea 系命令
CCR, #8
A, #8
dir, #8
io, #8
addr16
その 5
CMP
A
A, dir
A, dir
ADDC
SUB
ADD
20
LINK
ADDL
ADDW
#imm8
A, #32
ZEXT
DTB
@A
EXT
JCTX
PCB
A
SUBDC
ADDDC
NEG
NCC
INT9
A
CMR
NOP
10
SUBW
MOVW
MOVW
INT
MOVEA
A, #16
dir, A
io, A
addr16
RWi, ea
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録 B 命令
表 B.9-2 基本ページマップ
601
602
+F
+E
+D
+C
+B
+A
+9
+8
+7
+6
+5
+4
+3
+2
+1
+0
10
MOVB
io:bp, A
20
30
CLRB
io:bp
40
50
SETB
io:bp
60
70
BBC
io;bp, rel
80
90
BBS
io:bp, rel
A0
B0
MOVB
MOVB A, MOVB
MOVB
CLRB
CLRB
SETB
SETB
BBC
BBC
BBS
BBS
A, dir:bp addr16:bp
dir:bp, A addr16:bp,A
dir:bp addr16:bp
dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel
MOVB
A, io:bp
00
WBTS
io:bp
C0
D0
WBTC
io:bp
E0
SBBS
addr16:bp
F0
付録
表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH)
MOVSI
MOVSD
PCB, PCB
PCB, DTB
PCB, ADB
PCB, SPB
DTB, PCB
DTB, DTB
DTB, ADB
DTB, SPB
ADB, PCB
ADB, DTB
ADB, ADB
ADB, SPB
SPB, PCB
SPB, DTB
SPB, ADB
SPB, SPB
+1
+2
+3
+4
+5
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
10
+0
00
MOVSWI
20
MOVSWD
30
40
50
60
70
90
A0
B0
C0
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SCEQI
SCEQD
SCWEQI SCWEQD FILSI
PCB
PCB
PCB
PCB
PCB
80
D0
FILSI
SPB
ADB
DTB
PCB
E0
F0
付録 B 命令
表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH)
603
604
LSLW
LSLL
LSL
MOVW
MOVW
A, R0
A, R0
A, R0 @RL2+d8, A A, @RL2+d8
MOVW
MOVW
NRML
A, @A @AL, AH
A, R0
ASRW
ASRL
ASR
MOVW
MOVW
A, R0
A, R0
A, R0 @RL3+d8, A A, @RL3+d8
LSRW
LSRL
LSR
A, R0
A, R0
A, R0
+D
+E
+F
MOVW
MOVW
@RL1+d8, A A, @RL1+d8
MOVW
MOVW
@RL0+d8, A A, @RL0+d8
+C
+B
+A
+9
+8
A
MOV
MOV
MOVX
MOV
MOV
A, PCB
A, @A A, @RL3+d8 @RL3+d8, A A, @RL3+d8
+6
ROLC
MOV
MOV
A, @A @AL, AH
+5
A
MOV
MOV
MOVX
MOV
MOV
A, DPR
DPR, A A, @RL2+d8 @RL2+d8, A A, @RL2+d8
+4
ROLC
MOV
MOV
A, USB
USB, A
+3
+7
MOV
MOV
MOVX
MOV
MOV
A, SSB
SSB, A A, @RL1+d8 @RL1+d8, A A, @RL1+d8
+2
40
MOV
MOV
A, ADB
ADB, A
30
+1
20
MOV
MOV
MOVX
MOV
MOV
A, DTB
DTB, A A, @RL0+d8 @RL0+d8, A A, @RL0+d8
10
+0
00
50
60
DIVU
MULW
MUL
70
A
A
A
80
90
A0
B0
C0
D0
E0
F0
付録
表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH)
@PC+d16, CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
使用禁止
使用禁止
+E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
ADDL
ADDL A, SUBL
SUBL A,
A,@RW3+
addr16 A,@RW3+
addr16
SUBL
SUBL
SUBL A,
SUBL A,
addr16, CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16
@RW1+RW7 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
使用禁止
+D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
+F
使用禁止
@RW0+RW7 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
使用禁止
+C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
ADDL A,
@RW3, @RW3+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
+B
ADDL
使用禁止
@RW2, @RW2+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
+A
ADDL A,
@RW1, @RW1+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
+9
ADDL
@RW0+RW7
,#8, rel
使用禁止
@RW0, @RW0+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
+8
SUBL A,
RW7, @RW7+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL3 @RW7+d8
A, RL3 @RW7+d8
A, RL3 @RW7+d8
A, RL3 @RW7+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL3 @RW7+d8
A, RL3 @RW7+d8
+7
SUBL
RW6, @RW6+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL3 @RW6+d8
A, RL3 @RW6+d8
A, RL3 @RW6+d8
A, RL3 @RW6+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL3 @RW6+d8
A, RL3 @RW6+d8
+6
ADDL A,
RW5, @RW5+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL2 @RW5+d8
A, RL2 @RW5+d8
A, RL2 @RW5+d8
A, RL2 @RW5+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL2 @RW5+d8
A, RL2 @RW5+d8
+5
ADDL
@RW3, @RW3+d16
#8, rel
,#8, rel
RW4, @RW4+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL2 @RW4+d8
A, RL2 @RW4+d8
A, RL2 @RW4+d8
A, RL2 @RW4+d8
使用禁止
addr16,
,#8, rel
@PC+d16,
,#8, rel
@RW1+RW7
,#8, rel
@RW2, @RW2+d16
#8, rel
,#8, rel
@RW1, @RW1+d16
#8, rel
,#8, rel
@RW0, @RW0+d16
#8, rel
,#8, rel
R7, @RW7+d8,
#8, rel
#8, rel
R6, @RW6+d8,
#8, rel
#8, rel
R5, @RW5+d8,
#8, rel
#8, rel
R4, @RW4+d8,
#8, rel
#8, rel
R3, @RW3+d8,
#8, rel
#8, rel
R2, @RW2+d8,
#8, rel
#8, rel
R1, @RW1+d8,
#8, rel
#8, rel
ADDL
ADDL A, SUBL
SUBL A,
A, RL2 @RW4+d8
A, RL2 @RW4+d8
CBNE↓
F0
R0, @RW0+d8,
#8, rel
#8, rel
CBNE↓
E0
+4
D0
RW3, @RW3+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL1 @RW3+d8
A, RL1 @RW3+d8
A, RL1 @RW3+d8
A, RL1 @RW3+d8
C0
ADDL
ADDL A, SUBL
SUBL A,
A, RL1 @RW3+d8
A, RL1 @RW3+d8
B0
+3
A0
RW2, @RW2+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL1 @RW2+d8
A, RL1 @RW2+d8
A, RL1 @RW2+d8
A, RL1 @RW2+d8
90
ADDL
ADDL A, SUBL
SUBL A,
A, RL1 @RW2+d8
A, RL1 @RW2+d8
80
+2
70
RW1, @RW1+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL0 @RW1+d8
A, RL0 @RW1+d8
A, RL0 @RW1+d8
A, RL0 @RW1+d8
CWBNE↓
CWBNE↓
60
ADDL
ADDL A, SUBL
SUBL A,
A, RL0 @RW1+d8
A, RL0 @RW1+d8
50
40
+1
30
+0
20
RW0, @RW0+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL0 @RW0+d8
A, RL0 @RW0+d8
A, RL0 @RW0+d8
A, RL0 @RW0+d8
10
ADDL
ADDL A, SUBL
SUBL A,
A, RL0 @RW0+d8
A, RL0 @RW0+d8
00
付録 B 命令
表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H)
605
606
+F @@RW3+
JMPP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW2+ @PC+d16
@RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16
CALLP
CALLP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@addr16 @@RW3+ @addr16 @RW3+
addr16 @RW3+
addr16 A,@RW3+
addr16 @RW3+,A
addr16, A @RW3+, #8
addr16, #8 A,@RW3+
addr16
JMPP
JMPP
CALLP @
+E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7
JMPP @
+D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7
JMPP
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7
CALLP @
JMPP
JMPP @
CALLP
CALLP @ INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW3 @RW3+d16 @@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8
A,@RW3 @RW3+d16
+B
CALLP
JMPP
JMPP @
CALLP
CALLP @ INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW2 @RW2+d16 @@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8
A,@RW2 @RW2+d16
+A
JMPP @
JMPP
JMPP @
CALLP
CALLP @ INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW1 @RW1+d16 @@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8
A,@RW1 @RW1+d16
+9
JMPP
JMPP
JMPP @
CALLP
CALLP @ INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW0 @RW0+d16 @@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8
A,@RW0 @RW0+d16
+8
+C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL3 @@RW7+d8
@RL3 @@RW7+d8
RL3 @RW7+d8
RL3 @RW7+d8
A, RL3 @RW7+d8
RL3, A @RW7+d8,A
R7, #8 @RW7+d8,#8
A, RW7 @RW7+d8
F0
+7
E0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL3 @@RW6+d8
@RL3 @@RW6+d8
RL3 @RW6+d8
RL3 @RW6+d8
A, RL3 @RW6+d8
RL3, A @RW6+d8,A
R6, #8 @RW6+d8,#8
A, RW6 @RW6+d8
D0
+6
C0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL2 @@RW5+d8
@RL2 @@RW5+d8
RL2 @RW5+d8
RL2 @RW5+d8
A, RL2 @RW5+d8
RL2, A @RW5+d8,A
R5, #8 @RW5+d8,#8
A, RW5 @RW5+d8
B0
+5
A0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL2 @@RW4+d8
@RL2 @@RW4+d8
RL2 @RW4+d8
RL2 @RW4+d8
A, RL2 @RW4+d8
RL2, A @RW4+d8,A
R4, #8 @RW4+d8,#8
A, RW4 @RW4+d8
90
+4
80
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL1 @@RW3+d8
@RL1 @@RW3+d8
RL1 @RW3+d8
RL1 @RW3+d8
A, RL1 @RW3+d8
RL1, A @RW3+d8,A
R3, #8 @RW3+d8,#8
A, RW3 @RW3+d8
70
+3
60
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL1 @@RW2+d8
@RL1 @@RW2+d8
RL1 @RW2+d8
RL1 @RW2+d8
A, RL1 @RW2+d8
RL1, A @RW2+d8,A
R2, #8 @RW2+d8,#8
A, RW2 @RW2+d8
50
+2
40
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL0 @@RW1+d8
@RL0 @@RW1+d8
RL0 @RW1+d8
RL0 @RW1+d8
A, RL0 @RW1+d8
RL0, A @RW1+d8,A
R1, #8 @RW1+d8,#8
A, RW1 @RW1+d8
30
+1
20
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL0 @@RW0+d8
@RL0 @@RW0+d8
RL0 @RW0+d8
RL0 @RW0+d8
A, RL0 @RW0+d8
RL0, A @RW0+d8,A
R0, #8 @RW0+d8,#8
A, RW0 @RW0+d8
10
+0
00
付録
表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H)
D0
E0
F0
MOVX
MOVX A,
XCH
XCH A,
A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
MOVX
MOVX A,
XCH
XCH A,
A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A,
MOV
MOV
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A,
MOV
MOV
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16 A,@RW3+
addr16 @RW3+, A
addr16, A A,@RW3+
addr16 A,@RW3+
addr16
+D
+E
+F
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R7 @RW7+d8
A, R7 @RW7+d8
R7, A @RW7+d8,A
A, R7 @RW7+d8
A, R7 @RW7+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R6 @RW6+d8
A, R6 @RW6+d8
R6, A @RW6+d8,A
A, R6 @RW6+d8
A, R6 @RW6+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R5 @RW5+d8
A, R5 @RW5+d8
R5, A @RW5+d8,A
A, R5 @RW5+d8
A, R5 @RW5+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R4 @RW4+d8
A, R4 @RW4+d8
R4, A @RW4+d8,A
A, R4 @RW4+d8
A, R4 @RW4+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R3 @RW3+d8
A, R3 @RW3+d8
R3, A @RW3+d8,A
A, R3 @RW3+d8
A, R3 @RW3+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R2 @RW2+d8
A, R2 @RW2+d8
R2, A @RW2+d8,A
A, R2 @RW2+d8
A, R2 @RW2+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R1 @RW1+d8
A, R1 @RW1+d8
R1, A @RW1+d8,A
A, R1 @RW1+d8
A, R1 @RW1+d8
+C
INC
DEC
R7 @RW7+d8
C0
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A, MOV
MOV
MOVX
MOVX A, XCH
XCH A,
@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
ROLC
RORC
RORC
INC
R7 @RW7+d8
R7 @RW7+d8
ROLC
INC
DEC
R6 @RW6+d8
B0
+B
ROLC
RORC
RORC
INC
R6 @RW6+d8
R6 @RW6+d8
ROLC
INC
DEC
R5 @RW5+d8
A0
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A, MOV
MOV
MOVX
MOVX A, XCH
XCH A,
@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
ROLC
RORC
RORC
INC
R5 @RW5+d8
R5 @RW5+d8
ROLC
INC
DEC
R4 @RW4+d8
90
+A
ROLC
RORC
RORC
INC
R4 @RW4+d8
R4 @RW4+d8
ROLC
INC
DEC
R3 @RW3+d8
INC
DEC
R2 @RW2+d8
INC
DEC
R1 @RW1+d8
80
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R0 @RW0+d8
A, R0 @RW0+d8
R0, A @RW0+d8,A
A, R0 @RW0+d8
A, R0 @RW0+d8
70
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A, MOV
MOV
MOVX
MOVX A, XCH
XCH A,
@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
ROLC
RORC
RORC
INC
R3 @RW3+d8
R3 @RW3+d8
ROLC
60
INC
DEC
R0 @RW0+d8
50
+9
ROLC
RORC
RORC
INC
R2 @RW2+d8
R2 @RW2+d8
ROLC
40
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A, MOV
MOV
MOVX
MOVX A, XCH
XCH A,
@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
ROLC
RORC
RORC
INC
R1 @RW1+d8
R1 @RW1+d8
ROLC
30
ROLC
RORC
RORC
INC
R0 @RW0+d8
R0 @RW0+d8
20
ROLC
10
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録 B 命令
表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H)
607
608
+F @@RW3+
JMP
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW2+ @@PC+d16
@RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16
CALL
CALL
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@addr16 @@RW3+ @addr16 @RW3+
addr16 @RW3+
addr16 A,@RW3+
addr16 @RW3+, A
addr16, A @RW3+, #16 addr16, #16 A,@RW3+
addr16
JMP
JMP
XCHW
XCHW A,
A,@RW1+ @RW1+RW7
+E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16
CALL @
MOVW
MOVW
@RW1+, #16 @RW1+RW7,#16
CALL
INCW
INCW @
DECW
DECW
MOVW
MOVW A,
MOVW
MOVW
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A
JMP @
JMP
+D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7
XCHW
XCHW A,
A,@RW0+ @RW0+RW7
MOVW
MOVW
@RW0+, #16 @RW0+RW7,#16
INCW
INCW @
DECW
DECW
MOVW
MOVW A,
MOVW
MOVW
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A
CALL @
JMP
JMP @
CALL
CALL @
INCW
INCW @ DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW3 @RW3+d16 @@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16
A,@RW3 @RW3+d16
+B
CALL
JMP
JMP @
CALL
CALL @
INCW
INCW @ DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW2 @RW2+d16 @@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16
A,@RW2 @RW2+d16
+A
JMP @
JMP
JMP @
CALL
CALL @
INCW
INCW @ DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW1 @RW1+d16 @@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16
A,@RW1 @RW1+d16
+9
JMP
JMP
JMP @
CALL
CALL @
INCW
INCW @ DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW0 @RW0+d16 @@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16
A,@RW0 @RW0+d16
+8
+C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW7 @@RW7+d8
RW7 @@RW7+d8
RW7 @RW7+d8
RW7 @RW7+d8
A, RW7 @RW7+d8
RW7, A @RW7+d8,A
RW7, #16 @RW7+d8,#16
A, RW7 @RW7+d8
F0
+7
E0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW6 @@RW6+d8
RW6 @@RW6+d8
RW6 @RW6+d8
RW6 @RW6+d8
A, RW6 @RW6+d8
RW6, A @RW6+d8,A
RW6, #16 @RW6+d8,#16
A, RW6 @RW6+d8
D0
+6
C0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW5 @@RW5+d8
RW5 @@RW5+d8
RW5 @RW5+d8
RW5 @RW5+d8
A, RW5 @RW5+d8
RW5, A @RW5+d8,A
RW5, #16 @RW5+d8,#16
A, RW5 @RW5+d8
B0
+5
A0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW4 @@RW4+d8
RW4 @@RW4+d8
RW4 @RW4+d8
RW4 @RW4+d8
A, RW4 @RW4+d8
RW4, A @RW4+d8,A
RW4, #16 @RW4+d8,#16
A, RW4 @RW4+d8
90
+4
80
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW3 @@RW3+d8
RW3 @@RW3+d8
RW3 @RW3+d8
RW3 @RW3+d8
A, RW3 @RW3+d8
RW3, A @RW3+d8,A
RW3, #16 @RW3+d8,#16
A, RW3 @RW3+d8
70
+3
60
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW2 @@RW2+d8
RW2 @@RW2+d8
RW2 @RW2+d8
RW2 @RW2+d8
A, RW2 @RW2+d8
RW2, A @RW2+d8,A
RW2, #16 @RW2+d8,#16
A, RW2 @RW2+d8
50
+2
40
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW1 @@RW1+d8
RW1 @@RW1+d8
RW1 @RW1+d8
RW1 @RW1+d8
A, RW1 @RW1+d8
RW1, A @RW1+d8,A
RW1, #16 @RW1+d8,#16
A, RW1 @RW1+d8
30
+1
20
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW0 @@RW0+d8
RW0 @@RW0+d8
RW0 @RW0+d8
RW0 @RW0+d8
A, RW0 @RW0+d8
RW0, A @RW0+d8,A
RW0, #16 @RW0+d8,#16
A, RW0 @RW0+d8
10
+0
00
付録
表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H)
ADD
ADD
ADD
ADD
A, ADDC
ADDC
A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW0+ @RW0+RW7 @RW0+, r W0+RW7, r
SUB
A, ADDC
ADDC
A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW1+ @RW1+RW7 @RW1+, r W1+RW7, r
SUB
A, ADDC
ADDC
A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A,@RW2+ @PC+d16,
A,@RW2+ @PC+d16 @RW2+, r PC+d16, r
+F
ADD
ADD
SUB
SUB
ADDC
ADDC
CMP
CMP
AND
AND
OR
OR
XOR
XOR
DBNZ
DBNZ
A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+ A, addr16 A,@RW3+
A, addr16 A,@RW3+ A, addr16 @RW3+, r
addr16, r
+E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
A, SUB
+D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
A, SUB
+C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
SUB
ADD
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
A,@RW3 @RW3+d16 @RW3, r W3+d16, r
+B
A, SUB
ADD
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
A,@RW2 @RW2+d16 @RW2, r W2+d16, r
+A
ADD
ADD
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
A,@RW1 @RW1+d16 @RW1, r W1+d16, r
+9
ADD
ADD
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @R
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
A,@RW0 @RW0+d16 @RW0, r W0+d16, r
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R7 @RW7+d8
A, R7 @RW7+d8
A, R7 @RW7+d8
A, R7 @RW7+d8
A, R7 @RW7+d8
A, R7 @RW7+d8
A, R7 @RW7+d8
R7, r RW7+d8, r
ADD
F0
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R6 @RW6+d8
A, R6 @RW6+d8
A, R6 @RW6+d8
A, R6 @RW6+d8
A, R6 @RW6+d8
A, R6 @RW6+d8
A, R6 @RW6+d8
R6, r RW6+d8, r
E0
ADD
D0
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R5 @RW5+d8
A, R5 @RW5+d8
A, R5 @RW5+d8
A, R5 @RW5+d8
A, R5 @RW5+d8
A, R5 @RW5+d8
A, R5 @RW5+d8
R5, r RW5+d8, r
C0
ADD
B0
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R4 @RW4+d8
A, R4 @RW4+d8
A, R4 @RW4+d8
A, R4 @RW4+d8
A, R4 @RW4+d8
A, R4 @RW4+d8
A, R4 @RW4+d8
R4, r RW4+d8, r
A0
ADD
90
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R3 @RW3+d8
A, R3 @RW3+d8
A, R3 @RW3+d8
A, R3 @RW3+d8
A, R3 @RW3+d8
A, R3 @RW3+d8
A, R3 @RW3+d8
R3, r RW3+d8, r
80
ADD
70
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R2 @RW2+d8
A, R2 @RW2+d8
A, R2 @RW2+d8
A, R2 @RW2+d8
A, R2 @RW2+d8
A, R2 @RW2+d8
A, R2 @RW2+d8
R2, r RW2+d8, r
60
ADD
50
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R1 @RW1+d8
A, R1 @RW1+d8
A, R1 @RW1+d8
A, R1 @RW1+d8
A, R1 @RW1+d8
A, R1 @RW1+d8
A, R1 @RW1+d8
R1, r RW1+d8, r
40
ADD
30
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @
A, R0 @RW0+d8
A, R0 @RW0+d8
A, R0 @RW0+d8
A, R0 @RW0+d8
A, R0 @RW0+d8
A, R0 @RW0+d8
A, R0 @RW0+d8
R0, r RW0+d8, r
20
ADD
10
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録 B 命令
表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H)
609
610
NOT
NOT
@RW1+ @RW1+RW7
ADD
ADD @R
SUB
SUB
SUBC
SUBC A,
NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A
SUB
SUB
@RW2+, A @PC+d16,A
SUB
SUB
@RW3+, A addr16, A
ADD
ADD
@RW2+, A @PC+d16,A
ADD
ADD
@RW3+, A addr16, A
+D
+E
+F
SUBC
SUBC A, NEG
NEG A,
AND
AND
A,@RW3+
addr16 @RW3+
addr16 @RW3+, A addr16, A
OR
OR
@RW3+, A addr16, A
XOR
XOR
@RW3+, A addr16, A
NOT
NOT
@RW3+
addr16
OR
OR
XOR
XOR
NOT
NOT
@RW2+, A @PC+d16,A @RW2+, A @PC+d16,A
@RW2+ @PC+d16
NOT
NOT
@RW0+ @RW0+RW7
ADD
ADD @R
SUB
SUB
SUBC
SUBC A,
NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A
+C
SUBC
SUBC A, NEG
NEG A,
AND
AND
A,@RW2+ @PC+d16
@RW2+ @PC+d16 @RW2+, A @PC+d16,A
NOT
NOT
@RW3 @RW3+d16
ADD
ADD @R
SUB
SUB
SUBC
SUBC A, NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16
@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A
NOT
R7 @RW7+d8
NOT
R6 @RW6+d8
NOT
R5 @RW5+d8
NOT
R4 @RW4+d8
+B
XOR
NOT
R7, A @RW7+d8, A
XOR
NOT
R6, A @RW6+d8, A
XOR
NOT
R5, A @RW5+d8, A
XOR
NOT
R4, A @RW4+d8, A
NOT
R3 @RW3+d8
NOT
R2 @RW2+d8
NOT
R1 @RW1+d8
NOT
NOT
@RW2 @RW2+d16
XOR
NOT
XOR
NOT
R3, A @RW3+d8, A
XOR
R2, A @RW2+d8,A
XOR
NOT
R1, A @RW1+d8, A
NOT
R0 @RW0+d8
F0
ADD
ADD @R
SUB
SUB
SUBC
SUBC A, NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16
@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A
NEG A,
AND
AND
OR
OR
R7 @RW7+d8
R7, A @RW7+d8, A
R7, A @RW7+d8, A
XOR
XOR
XOR
XOR
XOR
XOR
E0
XOR
NOT
R0, A @RW0+d8, A
D0
+A
ADD
SUB
SUB
SUBC
SUBC A, NEG
R7, A @RW7+d8, A
R7, A @RW7+d8, A
A, R7 @RW7+d8
ADD
NEG A,
AND
AND
OR
OR
R6 @RW6+d8
R6, A @RW6+d8, A
R6, A @RW6+d8, A
NEG A,
AND
AND
OR
OR
R5 @RW5+d8
R5, A @RW5+d8, A
R5, A @RW5+d8, A
NEG A,
AND
AND
OR
OR
R4 @RW4+d8
R4, A @RW4+d8, A
R4, A @RW4+d8, A
NEG A,
AND
AND
OR
OR
R3 @RW3+d8
R3, A @RW3+d8, A
R3, A @RW3+d8, A
NEG A,
AND
AND
OR
OR
R2 @RW2+d8
R2, A @RW2+d8,A
R2, A @RW2+d8,A
NEG A,
AND
AND
OR
OR
R1 @RW1+d8
R1, A @RW1+d8, A
R1, A @RW1+d8, A
XOR
C0
NOT
NOT
@RW1 @RW1+d16
ADD
SUB
SUB
SUBC
SUBC A, NEG
R6, A @RW6+d8, A
R6, A @RW6+d8, A
A, R6 @RW6+d8
ADD
B0
ADD
ADD @R
SUB
SUB
SUBC
SUBC A, NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16
@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A
ADD
SUB
SUB
SUBC
SUBC A, NEG
R5, A @RW5+d8, A
R5, A @RW5+d8, A
A, R5 @RW5+d8
ADD
A0
+9
ADD
SUB
SUB
SUBC
SUBC A, NEG
R4, A @RW4+d8, A
R4, A @RW4+d8, A
A, R4 @RW4+d8
ADD
90
NOT
NOT
@RW0 @RW0+d16
ADD
SUB
SUB
SUBC
SUBC A, NEG
R3, A @RW3+d8, A
R3, A @RW3+d8, A
A, R3 @RW3+d8
ADD
80
NEG A,
AND
AND
OR
OR
R0 @RW0+d8
R0, A @RW0+d8, A
R0, A @RW0+d8, A
70
ADD
ADD
SUB
SUB
SUBC
SUBC A, NEG
NEG A,
AND
AND
OR
OR
XOR
XOR
@RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16
@RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A
ADD
SUB
SUB
SUBC
SUBC A, NEG
R2, A @RW2+d8,A
R2, A @RW2+d8,A
A, R2 @RW2+d8
60
ADD
50
ADD
SUB
SUB
SUBC
SUBC A, NEG
R1, A @RW1+d8, A
R1, A @RW1+d8, A
A, R1 @RW1+d8
40
ADD
30
ADD
SUB
SUB
SUBC
SUBC A, NEG
R0, A @RW0+d8, A
R0, A @RW0+d8, A
A, R0 @RW0+d8
20
ADD
10
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録
表 B.9-11 ea 系命令 その 6 ( 第 1 バイト =75H)
CMPW
CMPW A,
ANDW
ANDW A,
ORW
ORW
A,
A,
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A,@RW3+
addr 16 A,@RW3+ addr 16
A,@RW3+
addr 16 A,@RW3+
addr 16 A,@RW3+
addr 16 A,@RW3+
addr16 A,@RW3+
addr 16 @RW3+, r
addr16, r
ADDCW A,
ORW
+F
ADDCW
ORW
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16, A,@RW2+ @PC+d16 @RW2+, r @PC+d16,r
SUBW A,
ANDW A,
+E
SUBW
ANDW
XORW
XORW A,
DWBNZ
DWBNZ
A,@RW1+ @RW1+RW7 @RW1+, r @RW1+RW7,r
ADDW A,
ADDW
CMPW A,
+D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
CMPW
XORW
XORW A,
DWBNZ
DWBNZ
A,@RW0+ @RW0+RW7 @RW0+, r @RW0+RW7,r
ADDCW A,
+C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
ADDCW
XORW
XORW A, DWBNZ
DWBNZ
A,@RW3 @RW3+d16 @RW3, r @RW3+d16,r
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A,
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
+B
SUBW A,
XORW
XORW A, DWBNZ
DWBNZ
A,@RW2 @RW2+d16 @RW2, r @RW2+d16,r
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A,
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
+A
SUBW
XORW
XORW A, DWBNZ
DWBNZ
A,@RW1 @RW1+d16 @RW1, r @RW1+d16,r
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A,
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
+9
ADDW A,
XORW
XORW A, DWBNZ
DWBNZ
A,@RW0 @RW0+d16 @RW0, r @RW0+d16,r
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A,
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
+8
ADDW
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW7 @RW7+d8
A, RW7 @RW7+d8
A, RW7 @RW7+d8
A, RW7 @RW7+d8
A, RW7 @RW7+d8
A, RW7 @RW7+d8
A, RW7 @RW7+d8
RW7, r @RW7+d8,r
F0
+7
E0
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW6 @RW6+d8
A, RW6 @RW6+d8
A, RW6 @RW6+d8
A, RW6 @RW6+d8
A, RW6 @RW6+d8
A, RW6 @RW6+d8
A, RW6 @RW6+d8
RW6, r @RW6+d8,r
D0
+6
C0
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW5 @RW5+d8
A, RW5 @RW5+d8
A, RW5 @RW5+d8
A, RW5 @RW5+d8
A, RW5 @RW5+d8
A, RW5 @RW5+d8
A, RW5 @RW5+d8
RW5, r @RW5+d8,r
B0
+5
A0
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW4 @RW4+d8
A, RW4 @RW4+d8
A, RW4 @RW4+d8
A, RW4 @RW4+d8
A, RW4 @RW4+d8
A, RW4 @RW4+d8
A, RW4 @RW4+d8
RW4, r @RW4+d8,r
90
+4
80
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW3 @RW3+d8
A, RW3 @RW3+d8
A, RW3 @RW3+d8
A, RW3 @RW3+d8
A, RW3 @RW3+d8
A, RW3 @RW3+d8
A, RW3 @RW3+d8
RW3, r @RW3+d8,r
70
+3
60
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW2 @RW2+d8
A, RW2 @RW2+d8
A, RW2 @RW2+d8
A, RW2 @RW2+d8
A, RW2 @RW2+d8
A, RW2 @RW2+d8
A, RW2 @RW2+d8
RW2, r @RW2+d8,r
50
+2
40
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW1 @RW1+d8
A, RW1 @RW1+d8
A, RW1 @RW1+d8
A, RW1 @RW1+d8
A, RW1 @RW1+d8
A, RW1 @RW1+d8
A, RW1 @RW1+d8
RW1, r @RW1+d8,r
30
+1
20
ADDW
ADDW A, SUBW
SUBW A, ADDCW
ADDCW A, CMPW
CMPW A, ANDW
ANDW A, ORW
ORW
A, XORW
XORW A, DWBNZ
DWBNZ
A, RW0 @RW0+d8
A, RW0 @RW0+d8
A, RW0 @RW0+d8
A, RW0 @RW0+d8
A, RW0 @RW0+d8
A, RW0 @RW0+d8
A, RW0 @RW0+d8
RW0, r @RW0+d8,r
10
+0
00
付録 B 命令
表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H)
611
612
ORW
ORW
XORW
XORW
NOTW
NOTW
RW6, A @RW6+d8, A
RW6, A @RW6+d8, A
RW6 @RW6+d8
ORW
ORW
XORW
XORW
NOTW
NOTW
RW7, A @RW7+d8, A
RW7, A @RW7+d8, A
RW7 @RW7+d8
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW6, A @RW6+d8, A
RW6, A @RW6+d8, A
A, RW6 @RW6+d8
RW6 @RW6+d8
RW6, A @RW6+d8, A
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW7, A @RW7+d8, A
RW7, A @RW7+d8, A
A, RW7 @RW7+d8
RW7 @RW7+d8
RW7, A @RW7+d8, A
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16
@RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A
@RW0 @RW0+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16
@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A
@RW1 @RW1+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16
@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A
@RW2 @RW2+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16
@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A
@RW3 @RW3+d16
ADDW
ADDW
SUBW
SUBW
SUBCW
SUBCW A,
NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A
@RW0+ @RW0+RW7
ADDW
ADDW
SUBW
SUBW
SUBCW
SUBCW A,
NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A
@RW1+ @RW1+RW7
SUBW
SUBW
@RW2+, A @PC+d16,A
SUBW
SUBW
@RW3+, A addr16, A
ADDW
ADDW
@RW2+, A @PC+d16,A
ADDW
ADDW
@RW3+, A addr16, A
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
SUBCW
SUBCW A, NEGW
NEGW
ANDW
ANDW
A,@RW3+
addr16 @RW3+
addr16 @RW3+, A addr16, A
ORW
ORW
@RW3+, A addr16, A
XORW
XORW
@RW3+, A addr16, A
NOTW
NOTW
@RW3+
addr16
SUBCW
SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
A,@RW2+ @PC+d16
@RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A
@RW2+ @PC+d16
ORW
ORW
XORW
XORW
NOTW
NOTW
RW5, A @RW5+d8, A
RW5, A @RW5+d8, A
RW5 @RW5+d8
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW5, A @RW5+d8, A
RW5, A @RW5+d8, A
A, RW5 @RW5+d8
RW5 @RW5+d8
RW5, A @RW5+d8, A
+5
F0
ORW
ORW
XORW
XORW
NOTW
NOTW
RW4, A @RW4+d8, A
RW4, A @RW4+d8, A
RW4 @RW4+d8
E0
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW4, A @RW4+d8, A
RW4, A @RW4+d8, A
A, RW4 @RW4+d8
RW4 @RW4+d8
RW4, A @RW4+d8, A
D0
+4
C0
ORW
ORW
XORW
XORW
NOTW
NOTW
RW3, A @RW3+d8, A
RW3, A @RW3+d8, A
RW3 @RW3+d8
B0
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW3, A @RW3+d8, A
RW3, A @RW3+d8, A
A, RW3 @RW3+d8
RW3 @RW3+d8
RW3, A @RW3+d8, A
A0
+3
90
ORW
ORW
XORW
XORW
NOTW
NOTW
RW2, A @RW2+d8, A
RW2, A @RW2+d8, A
RW2 @RW2+d8
80
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW2, A @RW2+d8, A
RW2, A @RW2+d8, A
A, RW2 @RW2+d8
RW2 @RW2+d8
RW2, A @RW2+d8, A
70
+2
60
ORW
ORW
XORW
XORW
NOTW
NOTW
RW1, A @RW1+d8, A
RW1, A @RW1+d8, A
RW1 @RW1+d8
50
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW1, A @RW1+d8, A
RW1, A @RW1+d8, A
A, RW1 @RW1+d8
RW1 @RW1+d8
RW1, A @RW1+d8, A
40
+1
30
ORW
ORW
XORW
XORW
NOTW
NOTW
RW0, A @RW0+d8, A
RW0, A @RW0+d8, A
RW0 @RW0+d8
20
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW0, A @RW0+d8, A
RW0, A @RW0+d8, A
A, RW0 @RW0+d8
RW0 @RW0+d8
RW0, A @RW0+d8, A
10
+0
00
付録
表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H)
MUL
MUL A, MULW
MULW A, DIVU
DIVU A, DIVUW
DIVUW A,
A, @RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
MULU
MULU A, MULUW
MULUW A,
A,@RW3 @RW3+d16
A,@RW3 @RW3+d16
+B
MULU
+F
DIV
DIV
A, DIVW
DIVW A,
A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
DIV
DIV
A, DIVW
DIVW A,
A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
DIV
DIV
A, DIVW
DIVW A,
A,@RW3 @RW3+d16
A,@RW3 @RW3+d16
DIV
DIV
A, DIVW
DIVW A,
A,@RW2 @RW2+d16
A,@RW2 @RW2+d16
DIV
DIV
A, DIVW
DIVW A,
A,@RW1 @RW1+d16
A,@RW1 @RW1+d16
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, @RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
A, DIVW
DIVW A,
addr16 A,@RW3+
addr16
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
A,@RW2+ @PC+d16
MULUW
MULUW A, MUL
MUL A,
MULW
MULW A,
DIVU
DIVU A,
DIVUW
DIVUW A,
A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
A, MULUW
@RW1+RW7
MULU A,
@RW0+RW7
+E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
MULU
+D A,@RW1+
MULU
+C A,@RW0+
MULUW
MULUW A, MUL
MUL A,
MULW
MULW A,
DIVU
DIVU A,
DIVUW
DIVUW A,
A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
MUL
MUL A, MULW
MULW A, DIVU
DIVU A, DIVUW
DIVUW A,
A, @RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
MULU
MULU A, MULUW
MULUW A,
A,@RW2 @RW2+d16
A,@RW2 @RW2+d16
+A
MULU A,
MUL
MUL A, MULW
MULW A, DIVU
DIVU A, DIVUW
DIVUW A,
A, @RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
MULU
MULU A, MULUW
MULUW A,
A,@RW1 @RW1+d16
A,@RW1 @RW1+d16
+9
MULU
MUL
MUL A, MULW
MULW A, DIVU
DIVU A, DIVUW
DIVUW A,
A, @RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
MULU
MULU A, MULUW
MULUW A,
A,@RW0 @RW0+d16
A,@RW0 @RW0+d16
+8
DIV
DIV
A, DIVW
DIVW A,
A,@RW0 @RW0+d16
A,@RW0 @RW0+d16
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R7 @RW7+d8
A, RW7 @RW7+d8
A, R7 @RW7+d8
A, RW7 @RW7+d8
A, R7 @RW7+d8
A, RW7 @RW7+d8
A, R7 @RW7+d8
A, RW7 @RW7+d8
F0
+7
E0
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R6 @RW6+d8
A, RW6 @RW6+d8
A, R6 @RW6+d8
A, RW6 @RW6+d8
A, R6 @RW6+d8
A, RW6 @RW6+d8
A, R6 @RW6+d8
A, RW6 @RW6+d8
D0
+6
C0
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R5 @RW5+d8
A, RW5 @RW5+d8
A, R5 @RW5+d8
A, RW5 @RW5+d8
A, R5 @RW5+d8
A, RW5 @RW5+d8
A, R5 @RW5+d8
A, RW5 @RW5+d8
B0
+5
A0
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R4 @RW4+d8
A, RW4 @RW4+d8
A, R4 @RW4+d8
A, RW4 @RW4+d8
A, R4 @RW4+d8
A, RW4 @RW4+d8
A, R4 @RW4+d8
A, RW4 @RW4+d8
90
+4
80
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R3 @RW3+d8
A, RW3 @RW3+d8
A, R3 @RW3+d8
A, RW3 @RW3+d8
A, R3 @RW3+d8
A, RW3 @RW3+d8
A, R3 @RW3+d8
A, RW3 @RW3+d8
70
+3
60
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R2 @RW2+d8
A, RW2 @RW2+d8
A, R2 @RW2+d8
A, RW2 @RW2+d8
A, R2 @RW2+d8
A, RW2 @RW2+d8
A, R2 @RW2+d8
A, RW2 @RW2+d8
50
+2
40
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R1 @RW1+d8
A, RW1 @RW1+d8
A, R1 @RW1+d8
A, RW1 @RW1+d8
A, R1 @RW1+d8
A, RW1 @RW1+d8
A, R1 @RW1+d8
A, RW1 @RW1+d8
30
+1
20
MULU
MULU A, MULUW
MULUW A, MUL
MUL
A, MULW
MULW A, DIVU
DIVU
A, DIVUW
DIVUW A, DIV
DIV
A, DIVW
DIVW A,
A, R0 @RW0+d8
A, RW0 @RW0+d8
A, R0 @RW0+d8
A, RW0 @RW0+d8
A, R0 @RW0+d8
A, RW0 @RW0+d8
A, R0 @RW0+d8
A, RW0 @RW0+d8
10
+0
00
付録 B 命令
表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H)
613
614
MOVEA
MOVEA RW1
RW1,RW2 ,@RW2+d8
MOVEA
MOVEA RW1
RW1,RW3 ,@RW3+d8
MOVEA
MOVEA RW1
RW1,RW4 ,@RW4+d8
MOVEA
MOVEA RW1
RW1,RW5 ,@RW5+d8
MOVEA
MOVEA RW1
RW1,RW6 ,@RW6+d8
MOVEA
MOVEA RW1
RW1,RW7 ,@RW7+d8
MOVEA
MOVEA RW1
RW1,@RW0 ,@RW0+d16
MOVEA
MOVEA RW1
RW1,@RW1 ,@RW1+d16
MOVEA
MOVEA RW1
RW1,@RW2 ,@RW2+d16
MOVEA
MOVEA RW1
RW1,@RW3 ,@RW3+d16
MOVEA
MOVEA RW0
RW0,RW2 ,@RW2+d8
MOVEA
MOVEA RW0
RW0,RW3 ,@RW3+d8
MOVEA
MOVEA RW0
RW0,RW4 ,@RW4+d8
MOVEA
MOVEA RW0
RW0,RW5 ,@RW5+d8
MOVEA
MOVEA RW0
RW0,RW6 ,@RW6+d8
MOVEA
MOVEA RW0
RW0,RW7 ,@RW7+d8
MOVEA
MOVEA RW0
RW0,@RW0 ,@RW0+d16
MOVEA
MOVEA RW0
RW0,@RW1 ,@RW1+d16
MOVEA RW0
MOVEA RW0
MOVEA
MOVEA
+2
+3
+4
+5
+6
+7
+8
+9
50
70
90
B0
C0
D0
E0
F0
MOVEA
MOVEA RW4
RW4,@RW2+ ,@PC+d16
MOVEA
MOVEA
RW6,@RW3+ RW6, addr16
MOVEA
MOVEA
[email protected]+ RW7, addr16
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,@RW2+ ,@PC+d16
RW6,@RW2+ ,@PC+d16
RW7,@RW2+ ,@PC+d16
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
MOVEA
RW0,@RW3+ RW0, addr16 RW1,@RW3+ RW1, addr16 RW2,@RW3+ RW2, addr16 RW3,@RW3+ RW3, addr16 RW4,@RW3+ RW4, addr16 RW5,@RW3+ RW5, addr16
MOVEA
MOVEA RW3
RW3,@RW2+ ,@PC+d16
+F
MOVEA
MOVEA RW2
RW2,@RW2+ ,@PC+d16
MOVEA
MOVEA RW0
RW0,@RW2+ ,@PC+d16
+E
MOVEA
MOVEA RW1
RW1,@RW2+ ,@PC+d16
MOVEA
MOVEA RW7
RW7,@RW1+ ,@RW1+RW7
MOVEA
MOVEA RW0 MOVEA
MOVEA RW1 MOVEA
MOVEA RW2 MOVEA
MOVEA RW3 MOVEA
MOVEA RW4 MOVEA
MOVEA RW5 MOVEA
MOVEA RW6
RW0,@RW1+ ,@RW1+RW7 RW1,@RW1+ ,@RW1+RW7 RW2,@RW1+ ,@RW1+RW7 RW3,@RW1+ ,@RW1+RW7 RW4,@RW1+ ,@RW1+RW7 RW5,@RW1+ ,@RW1+RW7 RW6,@RW1+ ,@RW1+RW7
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,@RW3 ,@RW3+d16 RW6,@RW3 ,@RW3+d16 RW7,@RW3 ,@RW3+d16
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,@RW2 ,@RW2+d16 RW6,@RW2 ,@RW2+d16 RW7,@RW2 ,@RW2+d16
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,@RW1 ,@RW1+d16 RW6,@RW1 ,@RW1+d16 RW7,@RW1 ,@RW1+d16
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,@RW0 ,@RW0+d16 RW6,@RW0 ,@RW0+d16 RW7,@RW0 ,@RW0+d16
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW7 ,@RW7+d8
RW6,RW7 ,@RW7+d8
RW7,RW7 ,@RW7+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW6 ,@RW6+d8
RW6,RW6 ,@RW6+d8
RW7,RW6 ,@RW6+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW5 ,@RW5+d8
RW6,RW5 ,@RW5+d8
RW7,RW5 ,@RW5+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW4 ,@RW4+d8
RW6,RW4 ,@RW4+d8
RW7,RW4 ,@RW4+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW3 ,@RW3+d8
RW6,RW3 ,@RW3+d8
RW7,RW3 ,@RW3+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW2 ,@RW2+d8
RW6,RW2 ,@RW2+d8
RW7,RW2 ,@RW2+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW1 ,@RW1+d8
RW6,RW1 ,@RW1+d8
RW7,RW1 ,@RW1+d8
MOVEA
MOVEA RW5 MOVEA
MOVEA RW6 MOVEA
MOVEA RW7
RW5,RW0 ,@RW0+d8
RW6,RW0 ,@RW0+d8
RW7,RW0 ,@RW0+d8
A0
+D
MOVEA
MOVEA RW4
RW4,@RW3 ,@RW3+d16
MOVEA
MOVEA RW4
RW4,@RW2 ,@RW2+d16
MOVEA
MOVEA RW4
RW4,@RW1 ,@RW1+d16
MOVEA
MOVEA RW4
RW4,@RW0 ,@RW0+d16
MOVEA
MOVEA RW4
RW4,RW7 ,@RW7+d8
MOVEA
MOVEA RW4
RW4,RW6 ,@RW6+d8
MOVEA
MOVEA RW4
RW4,RW5 ,@RW5+d8
MOVEA
MOVEA RW4
RW4,RW4 ,@RW4+d8
MOVEA
MOVEA RW4
RW4,RW3 ,@RW3+d8
MOVEA
MOVEA RW4
RW4,RW2 ,@RW2+d8
MOVEA
MOVEA RW4
RW4,RW1 ,@RW1+d8
MOVEA
MOVEA RW4
RW4,RW0 ,@RW0+d8
80
MOVEA
MOVEA RW7
RW7,@RW0+ ,@RW0+RW7
MOVEA
MOVEA RW3
RW3,@RW3 ,@RW3+d16
MOVEA
MOVEA RW3
RW3,@RW2 ,@RW2+d16
MOVEA
MOVEA RW3
RW3,@RW1 ,@RW1+d16
MOVEA
MOVEA RW3
RW3,@RW0 ,@RW0+d16
MOVEA
MOVEA RW3
RW3,RW7 ,@RW7+d8
MOVEA
MOVEA RW3
RW3,RW6 ,@RW6+d8
MOVEA
MOVEA RW3
RW3,RW5 ,@RW5+d8
MOVEA
MOVEA RW3
RW3,RW4 ,@RW4+d8
MOVEA
MOVEA RW3
RW3,RW3 ,@RW3+d8
MOVEA
MOVEA RW3
RW3,RW2 ,@RW2+d8
MOVEA
MOVEA RW3
RW3,RW1 ,@RW1+d8
MOVEA
MOVEA RW3
RW3,RW0 ,@RW0+d8
60
MOVEA
MOVEA RW0 MOVEA
MOVEA RW1 MOVEA
MOVEA RW2 MOVEA
MOVEA RW3 MOVEA
MOVEA RW4 MOVEA
MOVEA RW5 MOVEA
MOVEA RW6
RW0,@RW0+ ,@RW0+RW7 RW1,@RW0+ ,@RW0+RW7 RW2,@RW0+ ,@RW0+RW7 RW3,@RW0+ ,@RW0+RW7 RW4,@RW0+ ,@RW0+RW7 RW5,@RW0+ ,@RW0+RW7 RW6,@RW0+ ,@RW0+RW7
MOVEA
MOVEA RW2
RW2,@RW3 ,@RW3+d16
MOVEA
MOVEA RW2
RW2,@RW2 ,@RW2+d16
MOVEA
MOVEA RW2
RW2,@RW1 ,@RW1+d16
MOVEA
MOVEA RW2
RW2,@RW0 ,@RW0+d16
MOVEA
MOVEA RW2
RW2,RW7 ,@RW7+d8
MOVEA
MOVEA RW2
RW2,RW6 ,@RW6+d8
MOVEA
MOVEA RW2
RW2,RW5 ,@RW5+d8
MOVEA
MOVEA RW2
RW2,RW4 ,@RW4+d8
MOVEA
MOVEA RW2
RW2,RW3 ,@RW3+d8
MOVEA
MOVEA RW2
RW2,RW2 ,@RW2+d8
MOVEA
MOVEA RW2
RW2,RW1 ,@RW1+d8
MOVEA
MOVEA RW2
RW2,RW0 ,@RW0+d8
40
+C
+B RW0,@RW3 ,@RW3+d16
+A RW0,@RW2 ,@RW2+d16
MOVEA
MOVEA RW1
RW1,RW1 ,@RW1+d8
MOVEA
MOVEA RW0
RW0,RW1 ,@RW1+d8
+1
30
MOVEA
MOVEA RW1
RW1,RW0 ,@RW0+d8
20
MOVEA
MOVEA RW0
RW0,RW0 ,@RW0+d8
10
+0
00
付録
表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H)
MOV R0,
MOV
MOV R1,
MOV
MOV R2,
MOV
MOV R3,
MOV
MOV R4,
MOV
MOV R5,
MOV
MOV R6,
MOV
MOV R7,
MOV R1,
MOV
MOV R2,
MOV
MOV R3,
MOV
MOV R4,
MOV
MOV R5,
MOV
MOV R6,
MOV
MOV R7,
MOV R0, MOV R0,
MOV R1, MOV R1,
MOV R2, MOV R2,
MOV R3, MOV R3,
MOV R4, MOV R4,
MOV R5, MOV R5,
MOV R6, MOV R6,
MOV R7, MOV R7,
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
MOV R0, MOV R0,
MOV R1, MOV R1,
MOV R2, MOV R2,
MOV R3, MOV R3,
MOV R4, MOV R4,
MOV R5, MOV R5,
MOV R6, MOV R6,
MOV R7, MOV R7,
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7,
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7,
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
+C
+D
+E
+F
+B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16
MOV
+A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16
MOV
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16
+9
MOV R0,
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16
+8
MOV
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R7 @RW7+d8
R1, R7 @RW7+d8
R2, R7 @RW7+d8
R3, R7 @RW7+d8
R4, R7 @RW7+d8
R5, R7 @RW7+d8
R6, R7 @RW7+d8
R7, R7 @RW7+d8
F0
+7
E0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R6 @RW6+d8
R1, R6 @RW6+d8
R2, R6 @RW6+d8
R3, R6 @RW6+d8
R4, R6 @RW6+d8
R5, R6 @RW6+d8
R6, R6 @RW6+d8
R7, R6 @RW6+d8
D0
+6
C0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R5 @RW5+d8
R1, R5 @RW5+d8
R2, R5 @RW5+d8
R3, R5 @RW5+d8
R4, R5 @RW5+d8
R5, R5 @RW5+d8
R6, R5 @RW5+d8
R7, R5 @RW5+d8
B0
+5
A0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R4 @RW4+d8
R1, R4 @RW4+d8
R2, R4 @RW4+d8
R3, R4 @RW4+d8
R4, R4 @RW4+d8
R5, R4 @RW4+d8
R6, R4 @RW4+d8
R7, R4 @RW4+d8
90
+4
80
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R3 @RW3+d8
R1, R3 @RW3+d8
R2, R3 @RW3+d8
R3, R3 @RW3+d8
R4, R3 @RW3+d8
R5, R3 @RW3+d8
R6, R3 @RW3+d8
R7, R3 @RW3+d8
70
+3
60
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R2 @RW2+d8
R1, R2 @RW2+d8
R2, R2 @RW2+d8
R3, R2 @RW2+d8
R4, R2 @RW2+d8
R5, R2 @RW2+d8
R6, R2 @RW2+d8
R7, R2 @RW2+d8
50
+2
40
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R1 @RW1+d8
R1, R1 @RW1+d8
R2, R1 @RW1+d8
R3, R1 @RW1+d8
R4, R1 @RW1+d8
R5, R1 @RW1+d8
R6, R1 @RW1+d8
R7, R1 @RW1+d8
30
+1
20
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R0 @RW0+d8
R1, R0 @RW0+d8
R2, R0 @RW0+d8
R3, R0 @RW0+d8
R4, R0 @RW0+d8
R5, R0 @RW0+d8
R6, R0 @RW0+d8
R7, R0 @RW0+d8
10
+0
00
付録 B 命令
表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH)
615
616
MOVW
MOVW RW2,
RW2,@RW0 @RW0+d16
MOVW
MOVW RW2,
RW2,@RW1 @RW1+d16
MOVW
MOVW RW2,
RW2,@RW2 @RW2+d16
MOVW
MOVW RW2,
RW2,@RW3 @RW3+d16
MOVW
MOVW RW1,
RW1, RW6 @RW6+d8
MOVW
MOVW RW1,
RW1, RW7 @RW7+d8
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16
MOVW
MOVW
MOVW
MOVW RW1, MOVW
MOVW RW2, MOVW
MOVW RW3, MOVW
MOVW RW4, MOVW
MOVW RW5, MOVW
MOVW RW6, MOVW
MOVW RW7,
RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7
MOVW
MOVW
RW1, @RW3+ RW1, addr16
MOVW
MOVW
RW0, RW7 @RW7+d8
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16
MOVW
MOVW RW1,
RW1, @RW2+ @PC+d16
MOVW
MOVW
RW0, RW6 @RW6+d8
MOVW
RW0, @RW1+
MOVW
MOVW
RW0, @RW2+ @PC+d16
MOVW
MOVW
RW0, @RW3+ RW0, addr16
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
MOVW
MOVW
@RW1+RW7 RW1, @RW1+
MOVW
MOVW RW2,
RW2, RW7 @RW7+d8
MOVW
MOVW RW1,
RW1, RW5 @RW5+d8
MOVW
MOVW
RW0, RW5 @RW5+d8
+5
MOVW
MOVW
RW2, @RW3+ RW2, addr16
MOVW
MOVW
RW3, @RW3+ RW3, addr16
MOVW
MOVW RW3,
RW3, @RW2+ @PC+d16
MOVW
MOVW
RW4, @RW3+ RW4, addr16
MOVW
MOVW RW4,
RW4, @RW2+ @PC+d16
MOVW
MOVW
RW5, @RW3+ RW5, addr16
MOVW
MOVW
RW5, @RW2+ @PC+d16
MOVW
MOVW
RW6, @RW3+ RW6, addr16
MOVW
MOVW RW6,
RW6, @RW2+ @PC+d16
MOVW
MOVW
RW7, @RW3+ RW7, addr16
MOVW
MOVW RW7,
RW7, @RW2+ @PC+d16
MOVW RW7,
@RW1+RW7
MOVW
MOVW RW7,
RW7,@RW3 @RW3+d16
MOVW
MOVW RW7,
RW7,@RW2 @RW2+d16
MOVW
MOVW RW7,
RW7,@RW1 @RW1+d16
MOVW
MOVW RW7,
RW7,@RW0 @RW0+d16
MOVW
MOVW RW7,
RW7, RW7 @RW7+d8
MOVW
MOVW RW7,
RW7, RW6 @RW6+d8
MOVW
MOVW RW7,
RW7, RW5 @RW5+d8
MOVW
MOVW RW7,
RW7, RW4 @RW4+d8
MOVW
MOVW RW7,
RW7, RW3 @RW3+d8
MOVW RW6, MOVW
@RW1+RW7 RW7, @RW1+
MOVW
MOVW RW6,
RW6,@RW3 @RW3+d16
MOVW
MOVW RW6,
RW6,@RW2 @RW2+d16
MOVW
MOVW RW6,
RW6,@RW1 @RW1+d16
MOVW
MOVW RW6,
RW6,@RW0 @RW0+d16
MOVW
MOVW RW6,
RW6, RW7 @RW7+d8
MOVW
MOVW RW6,
RW6, RW6 @RW6+d8
MOVW
MOVW RW6,
RW6, RW5 @RW5+d8
MOVW
MOVW RW6,
RW6, RW4 @RW4+d8
MOVW
MOVW RW6,
RW6, RW3 @RW3+d8
MOVW
MOVW
@RW1+RW7 RW6, @RW1+
MOVW
MOVW RW5,
RW5,@RW3 @RW3+d16
MOVW
MOVW RW5,
RW5,@RW2 @RW2+d16
MOVW
MOVW RW5,
RW5,@RW1 @RW1+d16
MOVW
MOVW RW5,
RW5,@RW0 @RW0+d16
MOVW
MOVW RW5,
RW5, RW7 @RW7+d8
MOVW
MOVW RW5,
RW5, RW6 @RW6+d8
MOVW
MOVW RW5,
RW5, RW5 @RW5+d8
MOVW
MOVW RW5,
RW5, RW4 @RW4+d8
MOVW RW4, MOVW
@RW1+RW7 RW5, @RW1+
MOVW
MOVW RW4,
RW4,@RW3 @RW3+d16
MOVW
MOVW RW4,
RW4,@RW2 @RW2+d16
MOVW
MOVW RW4,
RW4,@RW1 @RW1+d16
MOVW
MOVW RW4,
RW4,@RW0 @RW0+d16
MOVW
MOVW RW4,
RW4, RW7 @RW7+d8
MOVW
MOVW RW4,
RW4, RW6 @RW6+d8
MOVW
MOVW RW4,
RW4, RW5 @RW5+d8
MOVW
MOVW RW4,
RW4, RW4 @RW4+d8
MOVW RW3, MOVW
@RW1+RW7 RW4, @RW1+
MOVW
MOVW RW3,
RW3,@RW3 @RW3+d16
MOVW
MOVW RW3,
RW3,@RW2 @RW2+d16
MOVW
MOVW RW3,
RW3,@RW1 @RW1+d16
MOVW
MOVW RW3,
RW3,@RW0 @RW0+d16
MOVW
MOVW RW3,
RW3, RW7 @RW7+d8
MOVW
MOVW RW3,
RW3, RW6 @RW6+d8
MOVW
MOVW RW3,
RW3, RW5 @RW5+d8
MOVW
MOVW RW3,
RW3, RW4 @RW4+d8
MOVW RW2, MOVW
@RW1+RW7 RW3, @RW1+
MOVW
MOVW RW2,
RW2, @RW2+ @PC+d16
MOVW RW1, MOVW
@RW1+RW7 RW2, @RW1+
MOVW
MOVW RW2,
RW2, RW6 @RW6+d8
MOVW
MOVW RW2,
RW2, RW5 @RW5+d8
MOVW
MOVW RW2,
RW2, RW4 @RW4+d8
MOVW
MOVW RW5,
RW5, RW3 @RW3+d8
MOVW
MOVW RW7,
RW7, RW2 @RW2+d8
MOVW
MOVW RW7,
RW7, RW1 @RW1+d8
MOVW
MOVW RW1,
RW1, RW4 @RW4+d8
MOVW
MOVW RW4,
RW4, RW3 @RW3+d8
MOVW
MOVW RW6,
RW6, RW2 @RW2+d8
MOVW
MOVW RW6,
RW6, RW1 @RW1+d8
MOVW
MOVW
RW0, RW4 @RW4+d8
MOVW
MOVW RW3,
RW3, RW3 @RW3+d8
MOVW
MOVW RW5,
RW5, RW2 @RW2+d8
MOVW
MOVW RW5,
RW5, RW1 @RW1+d8
+4
MOVW
MOVW RW2,
RW2, RW3 @RW3+d8
MOVW
MOVW RW4,
RW4, RW2 @RW2+d8
MOVW
MOVW RW4,
RW4, RW1 @RW1+d8
MOVW
MOVW RW1,
RW1, RW3 @RW3+d8
MOVW
MOVW RW3,
RW3, RW2 @RW2+d8
MOVW
MOVW RW3,
RW3, RW1 @RW1+d8
MOVW
MOVW
RW0, RW3 @RW3+d8
MOVW
MOVW RW2,
RW2, RW2 @RW2+d8
MOVW
MOVW RW2,
RW2, RW1 @RW1+d8
+3
F0
MOVW
MOVW RW7,
RW7, RW0 @RW0+d8
E0
MOVW
MOVW RW1,
RW1, RW2 @RW2+d8
D0
MOVW
MOVW RW6,
RW6, RW0 @RW0+d8
C0
MOVW
MOVW
RW0, RW2 @RW2+d8
B0
MOVW
MOVW RW5,
RW5, RW0 @RW0+d8
A0
+2
90
MOVW
MOVW RW4,
RW4, RW0 @RW0+d8
80
MOVW
MOVW RW1,
RW1, RW1 @RW1+d8
70
MOVW
MOVW RW3,
RW3, RW0 @RW0+d8
60
MOVW
MOVW
RW0, RW1 @RW1+d8
50
MOVW
MOVW RW2,
RW2, RW0 @RW0+d8
40
+1
30
MOVW
MOVW RW1,
RW1, RW0 @RW0+d8
20
MOVW
MOVW
RW0, RW0 @RW0+d8
10
+0
00
付録
表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH)
+F
+E
+D
+C
+B
+A
+9
+8
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R1 @RW3+d16, R1
MOV
@RW2, R1 @RW2+d16, R1
MOV
@RW1, R1 @RW1+d16, R1
MOV
@RW0, R1 @RW0+d16, R1
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R2 @RW3+d16, R2
MOV
@RW2, R2 @RW2+d16, R2
MOV
@RW1, R2 @RW1+d16, R2
MOV
@RW0, R2 @RW0+d16, R2
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R3 @RW3+d16, R3
MOV
@RW2, R3 @RW2+d16, R3
MOV
@RW1, R3 @RW1+d16, R3
MOV
@RW0, R3 @RW0+d16, R3
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R4 @RW3+d16, R4
MOV
@RW2, R4 @RW2+d16, R4
MOV
@RW1, R4 @RW1+d16, R4
MOV
@RW0, R4 @RW0+d16, R4
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R5 @RW3+d16, R5
MOV
@RW2, R5 @RW2+d16, R5
MOV
@RW1, R5 @RW1+d16, R5
MOV
@RW0, R5 @RW0+d16, R5
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R6 @RW3+d16, R6
MOV
@RW2, R6 @RW2+d16, R6
MOV
@RW1, R6 @RW1+d16, R6
MOV
@RW0, R6 @RW0+d16, R6
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3, R7 @RW3+d16, R7
MOV
@RW2, R7 @RW2+d16, R7
MOV
@RW1, R7 @RW1+d16, R7
MOV
@RW0, R7 @RW0+d16, R7
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@RW3+, R0 addr16, R0
MOV
@RW3+, R1 addr16, R1
MOV
MOV
MOV
MOV
MOV
@RW2+, R1 @PC+d16, R1
MOV
@RW2+, R0 @PC+d16, R0
MOV
MOV
MOV
@RW3+, R2 addr16, R2
MOV
@RW2+, R2 @PC+d16, R2
MOV
MOV
MOV
@RW3+, R3 addr16, R3
MOV
@RW2+, R3 @PC+d16, R3
MOV
MOV
MOV
@RW3+, R4 addr16, R4
MOV
@RW2+, R4 @PC+d16, R4
MOV
MOV
MOV
@RW3+, R5 addr16, R5
MOV
@RW2+, R5 @PC+d16, R5
MOV
MOV
MOV
@RW3+, R6 addr16, R6
MOV
@RW2+, R6 @PC+d16, R6
MOV
MOV
MOV
@RW3+, R7 addr16, R7
MOV
@RW2+, R7 @PC+d16, R7
MOV
@RW1+, R0 @RW1+RW7, R0 @RW1+, R1 @RW1+RW7, R1 @RW1+, R2 @RW1+RW7, R2 @RW1+, R3 @RW1+RW7, R3 @RW1+, R4 @RW1+RW7, R4 @RW1+, R5 @RW1+RW7, R5 @RW1+, R6 @RW1+RW7, R6 @RW1+, R7 @RW1+RW7, R7
MOV
@RW0+, R0 @RW0+RW7, R0 @RW0+, R1 @RW0+RW7, R1 @RW0+, R2 @RW0+RW7, R2 @RW0+, R3 @RW0+RW7, R3 @RW0+, R4 @RW0+RW7, R4 @RW0+, R5 @RW0+RW7, R5 @RW0+, R6 @RW0+RW7, R6 @RW0+, R7 @RW0+RW7, R7
MOV
@RW3, R0 @RW3+d16, R0
MOV
@RW2, R0 @RW2+d16, R0
MOV
@RW1, R0 @RW1+d16, R0
MOV
@RW0, R0 @RW0+d16, R0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R7, R0 @RW7+d8, R0
R7, R1 @RW7+d8, R1
R7, R2 @RW7+d8, R2
R7, R3 @RW7+d8, R3
R7, R4 @RW7+d8, R4
R7, R5 @RW7+d8, R5
R7, R6 @RW7+d8, R6
R7, R7 @RW7+d8, R7
F0
+7
E0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R6, R0 @RW6+d8, R0
R6, R1 @RW6+d8, R1
R6, R2 @RW6+d8, R2
R6, R3 @RW6+d8, R3
R6, R4 @RW6+d8, R4
R6, R5 @RW6+d8, R5
R6, R6 @RW6+d8, R6
R6, R7 @RW6+d8, R7
D0
+6
C0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R5, R0 @RW5+d8, R0
R5, R1 @RW5+d8, R1
R5, R2 @RW5+d8, R2
R5, R3 @RW5+d8, R3
R5, R4 @RW5+d8, R4
R5, R5 @RW5+d8, R5
R5, R6 @RW5+d8, R6
R5, R7 @RW5+d8, R7
B0
+5
A0
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R4, R0 @RW4+d8, R0
R4, R1 @RW4+d8, R1
R4, R2 @RW4+d8, R2
R4, R3 @RW4+d8, R3
R4, R4 @RW4+d8, R4
R4, R5 @RW4+d8, R5
R4, R6 @RW4+d8, R6
R4, R7 @RW4+d8, R7
90
+4
80
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R3, R0 @RW3+d8, R0
R3, R1 @RW3+d8, R1
R3, R2 @RW3+d8, R2
R3, R3 @RW3+d8, R3
R3, R4 @RW3+d8, R4
R3, R5 @RW3+d8, R5
R3, R6 @RW3+d8, R6
R3, R7 @RW3+d8, R7
70
+3
60
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R2, R0 @RW2+d8, R0
R2, R1 @RW2+d8, R1
R2, R2 @RW2+d8, R2
R2, R3 @RW2+d8, R3
R2, R4 @RW2+d8, R4
R2, R5 @RW2+d8, R5
R2, R6 @RW2+d8, R6
R2, R7 @RW2+d8, R7
50
+2
40
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R1, R0 @RW1+d8, R0
R1, R1 @RW1+d8, R1
R1, R2 @RW1+d8, R2
R1, R3 @RW1+d8, R3
R1, R4 @RW1+d8, R4
R1, R5 @RW1+d8, R5
R1, R6 @RW1+d8, R6
R1, R7 @RW1+d8, R7
30
+1
20
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
R0, R0 @RW0+d8, R0
R0, R1 @RW0+d8, R1
R0, R2 @RW0+d8, R2
R0, R3 @RW0+d8, R3
R0, R4 @RW0+d8, R4
R0, R5 @RW0+d8, R5
R0, R6 @RW0+d8, R6
R0, R7 @RW0+d8, R7
10
+0
00
付録 B 命令
表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH)
617
618
MOVW
[email protected]
@RW2, RW1 +d16, RW1
MOVW
[email protected]
@RW3, RW1 +d16, RW1
MOVW
[email protected]
@RW0+, RW1 +RW7,RW1
MOVW
[email protected]
@RW1+, RW1 +RW7,RW1
MOVW
[email protected]
@RW2+, RW1 +d16, RW1
MOVW
MOVW
@RW3+, RW1 addr16, RW1
MOVW
[email protected]
@RW2, RW0 +d16, RW0
MOVW
[email protected]
@RW3, RW0 +d16, RW0
MOVW
[email protected]
@RW0+, RW0 +RW7,RW0
MOVW
[email protected]
@RW1+, RW0 +RW7,RW0
MOVW
[email protected]
@RW2+, RW0 +d16, RW0
MOVW
MOVW
@RW3+, RW0 addr16, RW0
+B
+C
+D
+E
+F
MOVW
MOVW
@RW3+, RW2 addr16, RW2
MOVW
[email protected]