9.3MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10127-3
F2MC®-16LX
16 ビット・マイクロコントローラ
MB90895 Series
ハードウェアマニュアル
F2MC®-16LX
16 ビット・マイクロコントローラ
MB90895 Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 「デザインレビューシート」を参照してください。
「デザインレビューシート」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思われ
るチェック項目をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通半導体製品につきまして , 平素より格別のご愛読を賜り厚くお礼申し上げます。
MB90895 シリーズは , ASIC (Application Specific IC) 対応が可能なオリジナル 16 ビッ
ト・ワンチップマイクロコントローラである F2MC®-16LX ファミリの汎用品の 1 つと
して開発された製品です。
本書は , 実際にこの半導体を使って製品を設計する技術者の方を対象に , MB90895 シ
リーズの機能や動作について記載しています。本書をご一読ください。
■ 商標
F2MC は FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株
式会社の登録商標です。
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
■ 本書の全体構成
本書は , 以下に示す 21 の章および付録から構成されています。
第 1 章 概要
この章では , MB90895 シリーズの主な特長と基本仕様について説明します。
第 2 章 デバイスの取扱いに ついて
この章では , デバイスの取扱い上の注意について説明します。
第 3 章 CPU の機能
この章では , CPU の機能と動作について説明します。
第 4 章 I/O ポート
この章では , I/O ポートについて説明します。
第 5 章 タイムベースタイマ
この章では , タイムベースタイマについて説明します。
第 6 章 ウォッチドッグタイマ
この章では , ウォッチドッグタイマについて説明します。
第 7 章 16 ビット入出力タイマ
この章では , 16 ビット入出力タイマについて説明します。
第 8 章 16 ビットリロードタイマ
この章では , 16 ビットリロードタイマについて説明します。
第 9 章 時計タイマ
この章では , 時計タイマについて説明します。
第 10 章 8/16 ビット PPG タイマ
この章では , 8/16 ビット PPG タイマについて説明します。
第 11 章 遅延割込み発生モジュール
この章では , 遅延割込み発生モジュールについて説明します。
i
第 12 章 DTP/ 外部割込み
この章では , DTP/ 外部割込みについて説明します。
第 13 章 8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータについて説明します。
第 14 章 UART0
この章では , UART0 について説明します。
第 15 章 UART1
この章では , UART1 について説明します。
第 16 章 CAN コントローラ
この章では , CAN コントローラについて説明します。
第 17 章 アドレス一致検出機能
この章では , アドレス一致検出機能について説明します。
第 18 章 ROM ミラー機能 選択モジュール
この章では , ROM ミラー機能 選択モジュールについて説明します。
第 19 章 512K ビットフラッシュ メモリ
この章では , 512K ビットフラッシュ メモリについて説明します。
第 20 章 デュアルオペレーション フラッシュ
この章では , デュアルオペレーションフラッシュについて説明します。
第 21 章 フラッシュシリアル 書込接続例
この章では , フラッシュシリアル 書込み接続例について説明します。
付録
付録では , 命令 , レジスタ索引 , 端子機能索引 , 割込みベクタ索引を記載します。
ii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途(原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう), ならびに極めて高い信頼性
が要求される用途(海底中継器 , 宇宙衛星をいう)に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2003-2009 FUJITSU MICROELECTRONICS LIMITED All rights reserved
iii
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
第2章
2.1
第3章
概要 ............................................................................................................ 1
MB90895 シリーズの特長 ...................................................................................................... 2
MB90895 シリーズの品種構成 ............................................................................................... 5
MB90895 シリーズのブロックダイヤグラム ......................................................................... 8
端子配列図.............................................................................................................................. 9
外形寸法図............................................................................................................................ 10
端子機能説明 ........................................................................................................................ 11
入出力回路形式 .................................................................................................................... 14
デバイスの取扱いについて ...................................................................... 17
デバイス取扱い上の注意 ...................................................................................................... 18
CPU の機能 .............................................................................................. 21
3.1 メモリ空間............................................................................................................................ 22
3.1.1
メモリ空間の割当てとアクセス ................................................................................. 24
3.1.2
メモリマップ .............................................................................................................. 26
3.1.3
アドレッシング .......................................................................................................... 27
3.1.4
リニア方式によるアドレス指定 ................................................................................. 28
3.1.5
バンク方式によるアドレス指定 ................................................................................. 29
3.1.6
多バイト長データのメモリ上の配置 .......................................................................... 31
3.2 専用レジスタ ........................................................................................................................ 33
3.2.1
専用レジスタと汎用レジスタ..................................................................................... 35
3.2.2
アキュムレータ (A)..................................................................................................... 36
3.2.3
スタックポインタ (USP, SSP)................................................................................... 39
3.2.4
プロセッサステータス (PS) ....................................................................................... 42
3.2.5
プログラムカウンタ (PC)........................................................................................... 47
3.2.6
ダイレクトページレジスタ (DPR) ............................................................................. 48
3.2.7
バンクレジスタ (PCB, DTB, USB, SSB, ADB) .......................................................... 49
3.3 汎用レジスタ ........................................................................................................................ 50
3.4 プリフィックスコード.......................................................................................................... 52
3.4.1
バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)........................................... 53
3.4.2
コモンレジスタバンクプリフィックス (CMR)........................................................... 55
3.4.3
フラグ変化抑止プリフィックス (NCC) ...................................................................... 56
3.4.4
プリフィックスコードに関する制約 .......................................................................... 57
3.5 割込み ................................................................................................................................... 59
3.5.1
割込み要因と割込みベクタ ........................................................................................ 61
3.5.2
割込み制御レジスタと周辺機能 ................................................................................. 64
3.5.3
割込み制御レジスタ (ICR00 ∼ ICR15) ...................................................................... 66
3.5.4
割込み制御レジスタの機能 ........................................................................................ 68
3.5.5
ハードウェア割込み ................................................................................................... 71
3.5.6
ハードウェア割込みの動作 ........................................................................................ 74
3.5.7
ハードウェア割込み使用手順..................................................................................... 76
3.5.8
多重割込み ................................................................................................................. 77
3.5.9
ソフトウェア割込み ................................................................................................... 79
3.5.10
拡張インテリジェント I/O サービス (EI2OS) による割込み....................................... 80
v
3.5.11
3.5.12
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD).......................... 82
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ
................................................................................................................................... 84
3.5.13
拡張インテリジェント I/O サービス (EI2OS) の動作 ................................................. 87
3.5.14
拡張インテリジェント I/O サービス (EI2OS) 使用手順.............................................. 88
3.5.15
拡張インテリジェント I/O サービス (EI2OS) 処理時間.............................................. 89
3.5.16
例外処理割込み .......................................................................................................... 91
3.5.17
割込み処理の開始に要する時間 ................................................................................. 92
3.5.18
割込み処理のスタック動作 ........................................................................................ 94
3.5.19
割込み処理のプログラム例 ........................................................................................ 95
3.6 リセット ............................................................................................................................... 98
3.6.1
リセット要因と発振安定待ち時間............................................................................ 100
3.6.2
外部リセット端子..................................................................................................... 102
3.6.3
リセット動作 ............................................................................................................ 103
3.6.4
リセット要因ビット ................................................................................................. 105
3.6.5
リセットによる各端子の状態................................................................................... 108
3.7 クロック ............................................................................................................................. 109
3.7.1
クロック発生部のブロックダイヤグラム................................................................. 112
3.7.2
クロック発生部のレジスタ ...................................................................................... 114
3.7.3
クロック選択レジスタ (CKSCR).............................................................................. 115
3.7.4
PLL/ サブクロック制御レジスタ (PSCCR) .............................................................. 119
3.7.5
クロックモード ........................................................................................................ 121
3.7.6
発振安定待ち時間..................................................................................................... 125
3.7.7
振動子および外部クロックの接続............................................................................ 126
3.8 低消費電力モード ............................................................................................................... 127
3.8.1
低消費電力回路のブロックダイヤグラム................................................................. 130
3.8.2
低消費電力モードのレジスタ................................................................................... 132
3.8.3
低消費電力モード制御レジスタ (LPMCR) ............................................................... 133
3.8.4
CPU 間欠動作モード................................................................................................ 136
3.8.5
スタンバイモード..................................................................................................... 137
3.8.6
スタンバイモードの状態遷移................................................................................... 148
3.8.7
スタンバイモードとリセット時の端子状態 ............................................................. 149
3.8.8
低消費電力モード使用上の注意 ............................................................................... 150
3.9 CPU モード ........................................................................................................................ 153
3.9.1
モード端子 (MD2 ∼ MD0)........................................................................................ 154
3.9.2
モードデータ ............................................................................................................ 156
3.9.3
メモリアクセスモード ............................................................................................. 158
3.9.4
メモリアクセスモード選択動作 ............................................................................... 159
第4章
I/O ポート............................................................................................... 161
4.1 I/O ポートの概要 ................................................................................................................ 162
4.2 I/O ポートのレジスタと外部バス兼用端子の割当て .......................................................... 163
4.3 ポート 1 .............................................................................................................................. 164
4.3.1
ポート 1 のレジスタ (PDR1, DDR1) ........................................................................ 167
4.3.2
ポート 1 の動作説明 ................................................................................................. 168
4.4 ポート 2 .............................................................................................................................. 170
4.4.1
ポート 2 のレジスタ (PDR2, DDR2) ........................................................................ 173
4.4.2
ポート 2 の動作説明 ................................................................................................. 174
4.5 ポート 3 .............................................................................................................................. 176
vi
4.5.1
ポート 3 のレジスタ (PDR3, DDR3) ........................................................................ 178
4.5.2
ポート 3 の動作説明 ................................................................................................. 179
4.6 ポート 4 .............................................................................................................................. 181
4.6.1
ポート 4 のレジスタ (PDR4, DDR4) ........................................................................ 183
4.6.2
ポート 4 の動作説明 ................................................................................................. 184
4.7 ポート 5 .............................................................................................................................. 186
4.7.1
ポート 5 のレジスタ (PDR5, DDR5, ADER) ............................................................ 189
4.7.2
ポート 5 の動作説明 ................................................................................................. 191
4.8 ポート入力レベル選択レジスタ (PILR) .............................................................................. 193
第5章
タイムベースタイマ............................................................................... 195
5.1 タイムベースタイマの概要................................................................................................. 196
5.2 タイムベースタイマのブロックダイヤグラム.................................................................... 198
5.3 タイムベースタイマの構成................................................................................................. 200
5.3.1
タイムベースタイマ制御レジスタ (TBTC)............................................................... 201
5.4 タイムベースタイマの割込み ............................................................................................. 203
5.5 タイムベースタイマの動作説明 ......................................................................................... 204
5.6 タイムベースタイマ使用上の注意...................................................................................... 208
5.7 タイムベースタイマのプログラム例 .................................................................................. 209
第6章
ウォッチドッグタイマ ........................................................................... 211
6.1 ウォッチドッグタイマの概要 ............................................................................................. 212
6.2 ウォッチドッグタイマの構成 ............................................................................................. 214
6.3 ウォッチドッグタイマのレジスタ...................................................................................... 216
6.3.1
ウォッチドッグタイマ制御レジスタ (WDTC).......................................................... 217
6.4 ウォッチドッグタイマの動作説明...................................................................................... 219
6.5 ウォッチドッグタイマ使用上の注意 .................................................................................. 222
6.6 ウォッチドッグタイマのプログラム例............................................................................... 223
第7章
16 ビット入出力タイマ .......................................................................... 225
7.1 16 ビット入出力タイマの概要............................................................................................ 226
7.2 16 ビット入出力タイマのダイヤグラム ............................................................................. 227
7.2.1
16 ビットフリーランタイマのブロックダイヤグラム ............................................. 228
7.2.2
インプットキャプチャのブロックダイヤグラム ...................................................... 230
7.3 16 ビット入出力タイマの構成............................................................................................ 232
7.3.1
タイマカウンタ制御ステータスレジスタ (TCCS).................................................... 235
7.3.2
タイマカウンタデータレジスタ (TCDT) .................................................................. 238
7.3.3
インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23)............................. 240
7.3.4
インプットキャプチャデータレジスタ 0 ∼ 3(IPCP0 ∼ IPCP3) ............................. 243
7.4 16 ビット入出力タイマの割込み ........................................................................................ 244
7.5 16 ビットフリーランタイマの動作説明 ............................................................................. 245
7.6 インプットキャプチャの動作説明...................................................................................... 247
7.7 16 ビット入出力タイマ使用上の注意................................................................................. 250
7.8 16 ビット入出力タイマのプログラム例 ............................................................................. 251
第8章
8.1
8.2
8.3
16 ビットリロードタイマ ...................................................................... 253
16 ビットリロードタイマの概要 ........................................................................................ 254
16 ビットリロードタイマのブロックダイヤグラム ........................................................... 257
16 ビットリロードタイマの構成 ........................................................................................ 260
vii
8.3.1
タイマ制御ステータスレジスタ上位 (TMCSR0: H, TMCSR1: H) ............................ 263
8.3.2
タイマ制御ステータスレジスタ下位 (TMCSR0: L, TMCSR1: L) ............................. 265
8.3.3
16 ビットタイマレジスタ (TMR0, TMR1)................................................................ 268
8.3.4
16 ビットリロードレジスタ (TMRLR0, TMRLR1) ................................................... 269
8.4 16 ビットリロードタイマの割込み .................................................................................... 270
8.5 16 ビットリロードタイマの動作説明................................................................................. 271
8.5.1
内部クロックモードの動作 ...................................................................................... 273
8.5.2
イベントカウントモードの動作 ............................................................................... 278
8.6 16 ビットリロードタイマの使用上の注意.......................................................................... 281
8.7 16 ビットリロードタイマのプログラム例.......................................................................... 282
第9章
時計タイマ ............................................................................................. 285
9.1 時計タイマの概要 ............................................................................................................... 286
9.2 時計タイマのブロックダイヤグラム .................................................................................. 288
9.3 時計タイマの構成 ............................................................................................................... 290
9.3.1
時計タイマ制御レジスタ (WTC) .............................................................................. 291
9.4 時計タイマの割込み ........................................................................................................... 294
9.5 時計タイマの動作説明........................................................................................................ 295
9.6 時計タイマのプログラム例................................................................................................. 297
第 10 章
8/16 ビット PPG タイマ ........................................................................ 299
10.1 8/16 ビット PPG タイマの概要 .......................................................................................... 300
10.2 8/16 ビット PPG タイマのブロックダイヤグラム ............................................................. 303
10.2.1
8/16 ビット PPG タイマ 0 のブロックダイヤグラム ............................................... 304
10.2.2
8/16 ビット PPG タイマ 1 のブロックダイヤグラム ............................................... 306
10.3 8/16 ビット PPG タイマの構成 .......................................................................................... 308
10.3.1
PPG0 動作モード制御レジスタ (PPGC0) ................................................................ 310
10.3.2
PPG1 動作モード制御レジスタ (PPGC1) ................................................................ 312
10.3.3
PPG0/1 カウントクロック選択レジスタ (PPG01)................................................... 314
10.3.4
PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1)........................................ 316
10.4 8/16 ビット PPG タイマの割込み ...................................................................................... 317
10.5 8/16 ビット PPG タイマの動作説明................................................................................... 319
10.5.1
8 ビット PPG 出力 2ch 独立動作モード .................................................................. 320
10.5.2
16 ビット PPG 出力動作モード ............................................................................... 322
10.5.3
8+8 ビット PPG 出力動作モード ............................................................................. 325
10.6 8/16 ビット PPG タイマ使用上の注意 ............................................................................... 328
第 11 章
遅延割込み発生モジュール .................................................................... 331
11.1 遅延割込み発生モジュールの概要...................................................................................... 332
11.2 遅延割込み発生モジュールのブロックダイヤグラム ......................................................... 333
11.3 遅延割込み発生モジュールの構成...................................................................................... 334
11.3.1
遅延割込み要求発生 / 解除レジスタ (DIRR)............................................................. 335
11.4 遅延割込み発生モジュールの動作説明............................................................................... 336
11.5 遅延割込み発生モジュールの使用上の注意 ....................................................................... 337
11.6 遅延割込み発生モジュールのプログラム例 ....................................................................... 338
第 12 章
DTP/ 外部割込み .................................................................................... 339
12.1 DTP/ 外部割込みの概要...................................................................................................... 340
12.2 DTP/ 外部割込みのブロックダイヤグラム ......................................................................... 341
viii
12.3 DTP/ 外部割込みの構成...................................................................................................... 343
12.3.1
DTP/ 外部割込み要因レジスタ (EIRR) ..................................................................... 344
12.3.2
DTP/ 外部割込み許可レジスタ (ENIR) ..................................................................... 345
12.3.3
検出レベル設定レジスタ : 上位 (ELVR) ................................................................... 346
12.3.4
検出レベル設定レジスタ : 下位 (ELVR) ................................................................... 347
12.4 DTP/ 外部割込みの動作説明............................................................................................... 348
12.4.1
外部割込み機能 ........................................................................................................ 351
12.4.2
DTP 機能 .................................................................................................................. 352
12.5 DTP/ 外部割込みの使用上の注意 ....................................................................................... 353
12.6 DTP/ 外部割込み回路のプログラム例 ................................................................................ 355
第 13 章
8/10 ビット A/D コンバータ................................................................... 359
13.1 8/10 ビット A/D コンバータの概要 .................................................................................... 360
13.2 8/10 ビット A/D コンバータのブロックダイヤグラム........................................................ 361
13.3 8/10 ビット A/D コンバータの構成 .................................................................................... 364
13.3.1
A/D 制御ステータスレジスタ上位 (ADCS: H) .......................................................... 366
13.3.2
A/D 制御ステータスレジスタ下位 (ADCS: L)........................................................... 369
13.3.3
A/D データレジスタ上位 (ADCR: H) ........................................................................ 373
13.3.4
A/D データレジスタ下位 (ADCR: L)......................................................................... 375
13.3.5
アナログ入力許可レジスタ (ADER) ......................................................................... 376
13.4 8/10 ビット A/D コンバータの割込み................................................................................. 378
13.5 8/10 ビット A/D コンバータの動作説明 ............................................................................. 379
13.5.1
単発変換モード ........................................................................................................ 380
13.5.2
連続変換モード ........................................................................................................ 382
13.5.3
停止変換モード ........................................................................................................ 384
13.5.4
EI2OS 機能を使用した変換動作 .............................................................................. 386
13.5.5
A/D 変換データ保護機能 .......................................................................................... 387
13.6 8/10 ビット A/D コンバータ使用上の注意.......................................................................... 390
第 14 章
UART0 ................................................................................................... 391
14.1 UART0 の概要 .................................................................................................................... 392
14.2 UART0 のブロックダイヤグラム ....................................................................................... 394
14.3 UART0 の構成 .................................................................................................................... 397
14.3.1
シリアル制御レジスタ 0 (SCR0).............................................................................. 399
14.3.2
シリアルモードレジスタ 0 (SMR0).......................................................................... 401
14.3.3
シリアルステータスレジスタ 0 (SSR0) ................................................................... 403
14.3.4
シリアル入力データレジスタ 0 (SIDR0)/ シリアル出力データレジスタ 0 (SODR0)
................................................................................................................................. 406
14.3.5
通信プリスケーラ制御レジスタ 0 (CDCR0) ............................................................ 408
14.3.6
シリアルエッジ選択レジスタ 0 (SES0) ................................................................... 410
14.4 UART0 の割込み................................................................................................................. 411
14.4.1
受信割込み発生とフラグセットのタイミング.......................................................... 413
14.4.2
送信割込み発生とフラグセットのタイミング.......................................................... 415
14.5 UART0 のボーレート ......................................................................................................... 417
14.5.1
専用ボーレートジェネレータによるボーレート ...................................................... 419
14.5.2
内部タイマ (16 ビットリロードタイマ 0) によるボーレート................................... 422
14.5.3
外部クロックによるボーレート ............................................................................... 424
14.6 UART0 の動作説明 ............................................................................................................. 425
14.6.1
非同期モード ( 動作モード 0, 1) での動作................................................................ 427
ix
14.6.2
クロック同期モード ( 動作モード 2) での動作......................................................... 431
14.6.3
双方向通信機能 ( 動作モード 0, 2) ........................................................................... 434
14.6.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 436
14.7 UART0 使用上の注意 ......................................................................................................... 439
第 15 章
UART1 ................................................................................................... 441
15.1 UART1 の概要 .................................................................................................................... 442
15.2 UART1 のブロックダイヤグラム ....................................................................................... 444
15.3 UART1 の構成 .................................................................................................................... 447
15.3.1
シリアル制御レジスタ 1 (SCR1).............................................................................. 449
15.3.2
シリアルモードレジスタ 1 (SMR1).......................................................................... 451
15.3.3
シリアルステータスレジスタ 1 (SSR1) ................................................................... 454
15.3.4
シリアル入力データレジスタ 1 (SIDR1)/ シリアル出力データレジスタ 1 (SODR1)
................................................................................................................................. 457
15.3.5
通信プリスケーラ制御レジスタ (CDCR1) ............................................................... 459
15.4 UART1 の割込み................................................................................................................. 461
15.4.1
受信割込み発生とフラグセットのタイミング.......................................................... 463
15.4.2
送信割込み発生とフラグセットのタイミング.......................................................... 465
15.5 UART1 のボーレート ......................................................................................................... 466
15.5.1
専用ボーレートジェネレータによるボーレート ...................................................... 468
15.5.2
内部タイマ (16 ビットリロードタイマ ) によるボーレート..................................... 471
15.5.3
外部クロックによるボーレート ............................................................................... 473
15.6 UART1 の動作説明 ............................................................................................................. 474
15.6.1
非同期モード ( 動作モード 0, 1) 時の動作................................................................ 476
15.6.2
クロック同期モード ( 動作モード 2) 時の動作......................................................... 480
15.6.3
双方向通信機能 ( 動作モード 0, 2) ........................................................................... 482
15.6.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモード時 ) ................................... 484
15.7 UART1 使用上の注意 ......................................................................................................... 487
15.8 UART1 のプログラム例...................................................................................................... 488
第 16 章
CAN コントローラ ................................................................................. 491
16.1 CAN コントローラの概要................................................................................................... 492
16.2 CAN コントローラのブロックダイヤグラム ...................................................................... 493
16.3 CAN コントローラの構成................................................................................................... 496
16.3.1
制御ステータスレジスタ上位 (CSR: H) ................................................................... 500
16.3.2
制御ステータスレジスタ下位 (CSR: L).................................................................... 502
16.3.3
ラストイベント表示レジスタ (LEIR) ....................................................................... 505
16.3.4
送受信エラーカウンタ (RTEC) ................................................................................ 508
16.3.5
ビットタイミングレジスタ (BTR)............................................................................ 510
16.3.6
メッセージバッファ有効レジスタ (BVALR) ............................................................ 514
16.3.7
IDE レジスタ (IDER) ................................................................................................ 516
16.3.8
送信要求レジスタ (TREQR)..................................................................................... 518
16.3.9
送信 RTR レジスタ (TRTRR) ................................................................................... 520
16.3.10
リモートフレーム受信待ちレジスタ (RFWTR)........................................................ 522
16.3.11
送信キャンセルレジスタ (TCANR) .......................................................................... 524
16.3.12
送信完了レジスタ (TCR) .......................................................................................... 526
16.3.13
送信完了割込み許可レジスタ (TIER) ....................................................................... 528
16.3.14
受信完了レジスタ (RCR).......................................................................................... 530
16.3.15
受信 RTR レジスタ (RRTRR)................................................................................... 532
x
16.3.16
受信オーバランレジスタ (ROVRR).......................................................................... 534
16.3.17
受信完了割込み許可レジスタ (RIER)....................................................................... 536
16.3.18
アクセプタンスマスク選択レジスタ (AMSR) .......................................................... 538
16.3.19
アクセプタンスマスクレジスタ (AMR).................................................................... 540
16.3.20
メッセージバッファ ................................................................................................. 542
16.3.21
ID レジスタ (IDRx, x=7 ∼ 0) .................................................................................... 543
16.3.22
DLC レジスタ (DLCR) .............................................................................................. 546
16.3.23
データレジスタ (DTR).............................................................................................. 547
16.4 CAN コントローラの割込み ............................................................................................... 548
16.5 CAN コントローラの動作説明............................................................................................ 550
16.5.1
送信動作 ................................................................................................................... 551
16.5.2
受信動作 ................................................................................................................... 554
16.5.3
送受信の操作手順..................................................................................................... 558
16.5.4
複数段メッセージ受信の設定について .................................................................... 564
16.6 CAN コントローラの使用上の注意 .................................................................................... 566
16.7 CAN コントローラのプログラム例 .................................................................................... 567
第 17 章
アドレス一致検出機能 ........................................................................... 569
17.1 アドレス一致検出機能の概要 ............................................................................................. 570
17.2 アドレス一致検出機能のブロックダイヤグラム ................................................................ 571
17.3 アドレス一致検出機能の構成 ............................................................................................. 572
17.3.1
アドレス検出制御レジスタ (PACSR)....................................................................... 573
17.3.2
検出アドレス設定レジスタ (PADR0, PADR1) ......................................................... 575
17.4 アドレス一致検出機能の動作説明...................................................................................... 577
17.4.1
アドレス一致検出機能の使用例 ............................................................................... 578
17.5 アドレス一致検出機能のプログラム例............................................................................... 583
第 18 章
ROM ミラー機能選択モジュール........................................................... 585
18.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 586
18.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 588
第 19 章
512K ビットフラッシュメモリ .............................................................. 589
19.1 512K ビットフラッシュメモリの概要 ................................................................................ 590
19.2 フラッシュメモリのレジスタとセクタ / バンク構成.......................................................... 592
19.3 フラッシュメモリコントロールステータスレジスタ (FMCS) ........................................... 594
19.4 フラッシュメモリ書込みコントロールレジスタ (FWR0/1)................................................ 597
19.5 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 602
19.6 フラッシュメモリにおけるリセットベクタアドレス ......................................................... 604
19.7 自動アルゴリズム実行状態の確認...................................................................................... 605
19.7.1
データポーリングフラグ (DQ7) ............................................................................... 607
19.7.2
トグルビットフラグ (DQ6) ...................................................................................... 609
19.7.3
タイミングリミット超過フラグ (DQ5) .................................................................... 610
19.7.4
セクタ消去タイマフラグ (DQ3) ............................................................................... 611
19.7.5
トグルビット 2 フラグ (DQ2)................................................................................... 612
19.8 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 614
19.8.1
フラッシュメモリを読出し / リセット状態にする ................................................... 615
19.8.2
フラッシュメモリへデータを書き込む .................................................................... 616
19.8.3
フラッシュメモリの全データを消去する ( チップ消去 ).......................................... 618
19.8.4
フラッシュメモリの任意のデータを消去する ( セクタ消去 ) .................................. 619
xi
19.8.5
19.8.6
第 20 章
フラッシュメモリのセクタ消去を一時停止する ...................................................... 621
フラッシュメモリのセクタ消去を再開する ............................................................. 622
デュアルオペレーションフラッシュ...................................................... 623
20.1 デュアルオペレーションフラッシュの概要 ....................................................................... 624
20.2 デュアルオペレーションフラッシュのレジスタ ................................................................ 625
20.3 デュアルオペレーションフラッシュの動作説明 ................................................................ 627
第 21 章
21.1
21.2
21.3
21.4
21.5
フラッシュシリアル書込接続例 ............................................................. 629
2
F MC-16LX MB90F897/S シリアル書込接続の基本構成 ................................................... 630
シングルチップモード時の接続例 ( ユーザ電源 )............................................................... 633
シングルチップモード時の接続例 ( ライタ電源 )............................................................... 635
フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源 ).................................. 637
フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源 ).................................. 639
付録
付録 A
A.1
A.2
A.3
A.4
A.5
A.6
A.7
A.8
A.9
付録 B
付録 C
付録 D
............................................................................................................... 641
命令 ............................................................................................................................... 642
命令の種類 .................................................................................................................. 643
アドレッシング ........................................................................................................... 644
直接アドレッシング.................................................................................................... 646
間接アドレッシング.................................................................................................... 653
実行サイクル数 ........................................................................................................... 660
実効アドレスフィールド ............................................................................................ 662
命令一覧表の読み方.................................................................................................... 664
F2MC-16LX 命令一覧表.............................................................................................. 667
命令マップ .................................................................................................................. 681
レジスタ索引 ................................................................................................................. 703
端子機能索引 ................................................................................................................. 712
割込みベクタ索引.......................................................................................................... 714
xii
本版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
-
-
6
第 1 章 概要
1.2 MB90895 シリーズ
の品種構成
表 1.2-2 MB90895 シリーズの CPU と周辺機能 の 8/16 ビット
PPG タイマ を変更
(16 ビット× 1 チャネルの PPG 動作可能 → 16 ビット× 2 チャネ
ルの PPG 動作可能 )
18
第 2 章 デバイスの取
扱いに ついて
2.1 デバイス取扱い上
の注意
● 未使用端子の処理について を変更
( 使用していない入力端子 → 使用していない入出力端子 )
19
用語を統一
(16LX シリーズ→ 16LX ファミリ )
(FAR/ セラミック発振子 → セラミック発振子 )
● 水晶発振回路について を変更
(・各量産品において , ご使用される発振子メーカに発振評価依
頼をしてください。を追加 )
● A/D コンバータの電源 , アナログ入力の投入順序について を
変更
(( アナログ電源とデジタル電源を同時に投入 , 遮断することは
問題ありません。) を削除 )
26
第 3 章 CPU の機能
3.1.2 メモリマップ
図 3.1-3 MB90895 シリーズのメモリマップ を変更
116
第 3 章 CPU の機能
3.7.3 クロック選択レ
ジスタ (CKSCR)
表 3.7-1 クロック選択レジスタ (CKSCR) の機能 を変更
148
第 3 章 CPU の機能
3.8.6 スタンバイモー
ドの状態遷移
図 3.8-8 状態遷移図 を変更
149
第 3 章 CPU の機能
3.8.7 スタンバイモー
ドとリセット時の端子
状態
表 3.8-6 入出力端子の状態 ( シングルチップモード ) の *2 を
変更
( 入力遮断とは , 端子の入力ゲートの動作が禁止されている状態
を示し , → 入力遮断状態では , 入力はマスクされ "L" レベルが内
部に伝わります。)
156
第 3 章 CPU の機能
3.9.2 モードデータ
図 3.9-2 モードデータ を変更
表 3.9-3 モードレジスタの機能 を変更
236
第 7 章 16 ビット入出
力タイマ
7.3.1 タイマカウンタ
制御ステータスレジス
タ (TCCS)
表 7.3-2 タイマカウンタ制御ステータスレジスタ (TCCS) の機能
の bit3 を変更
(( 注意事項 ) を追加 )
282
第 8 章 16 ビットリ
ロードタイマ
8.7 16 ビットリロード
タイマのプログラム例
● コーディング例 を変更
(MOVW I:TMRLR0,#30D4H ;25ms タイマのデータを設定 →
MOVW I:TMRLR0,#30D3H ;25ms タイマのデータを設定 )
xiii
ページ
変更内容 ( 詳細は本文を参照してください。)
327
第 10 章 8/16 ビット
PPG タイマ
10.5.3 8+8 ビット PPG
出力動作モード
● 8+8 ビット PPG 出力動作モードの動作 を変更
(8 ビット PPG 出力 2ch 独立動作モードの出力波形 →
8+8 ビット PPG 出力動作モードの動作 )
344
第 12 章 DTP/ 外部割込
み
12.3.1 DTP/ 外部割込み
要因レジスタ (EIRR)
表 12.3-2 DTP/ 外部割込み要因レジスタ (EIRR) を変更
345
第 12 章 DTP/ 外部割込
み
12.3.2 DTP/ 外部割込み
許可レジスタ (ENIR)
表 12.3-3 DTP/ 外部割込み許可レジスタ (ENIR) の機能
348
第 12 章 DTP/ 外部割込
み
12.4 DTP/ 外部割込み
の動作説明
● 設定の手順 を変更
367,
378
第 13 章 8/10 ビット
A/D コンバータ
13.3.1 A/D 制御ステー
タスレジスタ上位
(ADCS: H)
表 13.3-2 A/D 制御ステータスレジスタ上位 (ADCS: H) の機能 を
変更
371
第 13 章 8/10 ビット
A/D コンバータ
13.3.2 A/D 制御ステー
タスレジスタ下位
(ADCS: L)
表 13.3-3 A/D 制御ステータスレジスタ下位 (ADCS: L) の機能 を
変更
402
第 14 章 UART0
14.3.2 シリアルモード
レジスタ 0 (SMR0)
表 14.3-3 シリアルモードレジスタ 0 (SMR0) の機能 を変更
(( 注意事項 ) を追加 )
409
第 14 章 UART0
14.3.5 通信プリスケー
ラ制御レジスタ 0
(CDCR0)
■ 通信プリスケーラ制御レジスタ 0 (CDCR0) を変更
( <注意事項> を追加 )
439
第 14 章 UART0
14.7 UART0 使用上の
注意
● クロック同期モード時のクロック設定 を追加
452
第 15 章 UART1
15.3.2 シリアルモード
レジスタ 1 (SMR1)
表 15.3-3 シリアルモードレジスタ 1 (SMR1) の機能 の bit3 ∼
bit5 を変更
(( 注意事項 ) を追加 )
460
第 15 章 UART1
15.3.5 通信プリスケー
ラ制御レジスタ
(CDCR1)
■ 通信プリスケーラ制御レジスタ 1(CDCR1) に <注意事項> を
追加
xiv
ページ
変更内容 ( 詳細は本文を参照してください。)
487
第 15 章 UART1
15.7 UART1 使用上の
注意
● クロック同期モード時のクロック設定 を追加
503
第 16 章 CAN コント
ローラ
16.3.2 制御ステータス
レジスタ下位 (CSR: L)
表 16.3-3 制御ステータスレジスタ下位 (CSR: L) の機能 bit0 を
変更
(for (i=0; (i<= 500) || (IO_CANCT0.CSR.bit.HALT= 0):i++); →
for (i=0; (i<= 500) && (IO_CANCT0.CSR.bit.HALT= 0):i++);)
621
第 19 章 512K ビットフ
ラッシュ メモリ
19.8.5 フラッシュメモ
リのセクタ消去を一時
停止する
■ 注意 を変更
(20ms → 20μs)
631
第 21 章 フラッシュシ
リアル 書込接続例
21.1 F2MC-16LX
MB90F897/S シリアル
書込接続の基本構成
表 21.1-1 富士通標準シリアルオンボード書込みに使用する端子
の VCC 端子の補足説明 を変更
648
A.3 直接アドレッシン
グ
● I/O 直接 (io)
図 A.3-5 を変更。
MOVW A, i : 0C0H → MOVW A, I:0C0H
649
A.3 直接アドレッシン
グ
● 短縮直接アドレス
(dir)
図 A.3-6 に ( 注意事項 ) を追加。
650
A.3 直接アドレッシン
グ
● I/O 直接ビットアド
レス (io: bp)
図 A.3-8 を変更。
SETB i : 0C1H : 0 → SETB I:0C1H:0
図 A.3-5 に ( 注意事項 ) を追加。
図 A.3-8 に ( 注意事項 ) を追加。
A.3 直接アドレッシン
グ
● 短縮直接ビットア
ドレス
(dir: bp)
図 A.3-9 に ( 注意事項 ) を追加。
A.4 間接アドレッシン
グ
● プログラムカウン
タ相対分岐
アドレス (rel)
説明を変更。
ディスプレースメント → オフセット
657
A.4 間接アドレッシン
グ
● レジスタリスト
(rlst)
図 A.4-9 を変更。
POPW, RW0, RW4 → POPW RW0, RW4
682
A.9 命令マップ
■ 命令マップの構造
表 A.9-1 の命令欄を変更。
@RW2+d8, #8, rel → CBNE @RW2+d8, #8, rel
656
図 A.4-7 を変更。
BRA 10H → BRA 3C32H
実行後 PC : 3C20 → 3C32
xv
ページ
683
変更内容 ( 詳細は本文を参照してください。)
A.9 命令マップ
表 A.9-2 の E0 列 , +0 行 のオペランドを変更。
#4 → #vct4
表 A.9-2 の D0 列 , +0 行 のニーモニックを変更。
MOV → MOVN
表 A.9-2 の B0 列 , +0 行 のニーモニックを変更。
MOV → MOVX
表 A.9-2 の B0 列 , +8 行 のニーモニックを変更。
MOV → MOVW
685
表 A.9-4 の E0 列 , +0 行 のニーモニックを変更。
FILSI → FILSWI
686
表 A.9-5 の 70 列 , +A 行 のニーモニックを変更。
DIVU → DIV
687
表 A.9-6 の F0 列 , +E, +F 行 のオペランドを変更。
,#8, rel → #8, rel
690
表 A.9-9 の 50 列 , +8 ∼ +E 行 のオペランドを変更。
@@ → @
A.9 命令マップ
表 A.9-9 の 20 列 , +0 ∼ +7 行 のオペランドを変更。
RWi → @RWi
691
表 A.9-10 の E0 列 , F0 列 のオペランドを変更。
,r → ,rel
692
表 A.9-11 の 70 列 のオペランドを変更。
NEG A, → NEG
693
表 A.9-12 の E0 列 , F0 列 のオペランドを変更。
,r → ,rel
変更箇所は , 本文中のページ左側の│によって示しています。
xvi
第1章
概要
この章では , MB90895 シリーズの特長や基本的な
仕様について説明します。
1.1 MB90895 シリーズの特長
1.2 MB90895 シリーズの品種構成
1.3 MB90895 シリーズのブロックダイヤグラム
1.4 端子配列図
1.5 外形寸法図
1.6 端子機能説明
1.7 入出力回路形式
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
1
第 1 章 概要
1.1
MB90895 シリーズの特長
MB90895 シリーズは , 高速リアルタイム処理を必要とするアプリケーション用に設
計された 16 ビット汎用マイクロコントローラです。本シリーズは , デュアルオペ
レーションフラッシュメモリと CAN コントローラを LQFP-48 の小型パッケージに
搭載した高性能 16 ビット CPU を持つマイクロコントローラです。
命令体系は , F2MC ファミリのアーキテクチャーを継承するとともに , 高級言語対応
命令の追加やアドレッシングモードの拡張 , 乗除算命令の強化 , ビット処理命令の充
実などを図っています。さらに , 32 ビットのアキュムレータを搭載することにより ,
ロングワードデータ (32 ビット ) 処理が可能となっています。
■ MB90895 シリーズの特長
● クロック
• PLL クロック逓倍回路内蔵
• 発振クロックの 2 分周または発振クロックの 1 逓倍∼ 4 逓倍 ( 発振クロック 4MHz
の場合 , 4MHz ∼ 16MHz) のマシンクロック (PLL クロック ) を選択可能
• サブクロックによる動作 (8.192kHz) が可能 (MB90F897)
• 最小命令実行時間: 62.5ns (発振クロック4MHz, PLLクロック4逓倍で動作した場合)
16M バイトの CPU メモリ空間
• 内部は 24 ビットアドレッシング
● コントローラ用途に最適な命令体系
• 豊富なデータタイプ ( ビット , バイト , ワード , ロングワード )
• 豊富なアドレッシングモード (23 種類 )
• 符号付乗除算命令 , RETI 命令機能強化
• 32 ビットのアキュムレータ採用による高精度演算の強化
● 高級言語 (C 言語 )/ マルチタスクに対応する命令体系
• システムスタックポインタの採用
• 各種ポインタ間接命令の強化
• バレルシフト命令
● 実行速度の向上
• 4 バイトの命令キュー
● 強力な割込み機能
• 8 レベル , 34 要因の強力な割込み機能
● CPU に依存しない自動データ転送機能
• 拡張インテリジェント I/O サービス機能 (EI2OS): 最大 16 チャネル
2
第 1 章 概要
● 低消費電力 ( スタンバイ ) モード
• スリープモード (CPU 動作クロックを停止するモード )
• タイムベースタイマモード ( 発振クロックとサブクロック , タイムベースタイマと
時計タイマのみ動作させるモード )
• 時計モード ( サブクロックと時計タイマのみ動作させるモード )
• ストップモード ( 発振クロックとサブクロックを停止するモード )
• CPU 間欠動作モード
● プロセス
• CMOS テクノロジ
● I/O ポート
• 汎用入出力ポート (CMOS 出力 ): 34 本 (MB90F897) ( 内 4 本は高電流出力ポート )
( サブクロック未使用時は , 36 本 (MB90F897S))
● タイマ
• タイムベースタイマ , 時計タイマ , ウォッチドッグタイマ : 1 チャネル
• 8/16 ビット PPG タイマ : 8 ビット× 4 チャネルまたは 16 ビット× 2 チャネル
• 16 ビットリロードタイマ : 2 チャネル
• 16 ビット入出力タイマ
- 16 ビットフリーランタイマ : 1 チャネル
- 16 ビットインプットキャプチャ (ICU): 4 チャネル
端子入力のエッジ検出で 16 ビットフリーランタイマのカウント値をラッチして割込み
要求を発生
● CAN コントローラ : 1 チャネル
• CAN 仕様 Ver2.0A および Ver2.0B に準拠
• 8 個のメッセージバッファ内蔵
• 転送レート 10kbps ∼ 1Mbps ( マシンクロック 16MHz の場合 )
• CAN ウェイクアップ
● UART0 (SCI), UART1 (SCI): 2 チャネル
• 全二重ダブルバッファ付き
• クロック非同期またはクロック同期シリアル転送が使用可能
● DTP/ 外部割込み : 4 チャネル , CAN ウェイクアップ : 1 チャネル
• 外部入力により拡張インテリジェント I/O サービス (EI2OS) の起動および外部割込
み発生用モジュール
● 遅延割込み発生モジュール
• タスク切換用の割込み要求を発生
3
第 1 章 概要
● 8/10 ビット A/D コンバータ : 8 チャネル
• 8/10 ビットの分解能切換え可能
• 外部トリガ入力による起動が可能
• 変換時間 : 6.125μs ( マシンクロック 16MHz の場合 , サンプリング時間含む )
● プログラムパッチ機能
• 2 アドレスポインタ分のアドレス一致検出
4
第 1 章 概要
1.2
MB90895 シリーズの品種構成
MB90895 シリーズの品種は , 2 種類あります。ここでは , 品種構成 , CPU および周
辺機能を示します。
■ MB90895 シリーズの品種構成
表 1.2-1 MB90895 シリーズの品種構成
MB90V495G
MB90F897/S
評価品
フラッシュ ROM
ROM 容量
−
64K バイト
RAM 容量
6K バイト
2K バイト
クロック
2 系統品
分類
CMOS
プロセス
パッケージ
動作電源電圧
エミュレータ専用電源*
MB90F897 :2 系統品
MB90F897S:1 系統品
PGA256
LQFP-48 (0.50mm 幅 )
4.5V ∼ 5.5V
3.5V ∼ 5.5V
なし
−
* : エミュレーションポッド MB2145-507 をご使用頂く際のディップスイッチ S2 の設定で
す。詳細につきましては MB2145-507 ハードウェアマニュアル (2.7 エミュレータ専用
電源 ) をご参照ください。
5
第 1 章 概要
■ MB90895 シリーズの CPU と周辺機能
表 1.2-2 MB90895 シリーズの CPU と周辺機能 (1 / 2)
項 目
CPU 機能
MB90V495G
MB90F897/S
基本命令数 : 351 命令
命令ビット長 : 8 ビット , 16 ビット
命令長 : 1 バイト∼ 7 バイト
データビット長 : 1 ビット , 8 ビット , 16 ビット
最小命令実行時間 : 62.5ns ( マシンクロック周波数 16MHz の場合 )
割込み処理割込み処理時間 : 最小 1.5μs ( マシンクロック周波数
16MHz の場合 )
6
低消費電力 ( スタンバイ ) モード
スリープモード / 時計モード / タイムベースタイマモード / ストップ
モード /CPU 間欠
I/O ポート
汎用入出力ポート (CMOS 出力 ): 34 本 (36 本* )
内 4 本は高電流出力ポート (P14 ∼ P17)
タイムベースタイマ
18 ビットフリーランカウンタ
割込み周期 : 1.024ms, 4.096ms, 16.834ms, 131.072ms
( 発振クロック周波数 4MHz の場合 )
ウォッチドッグタイマ
リセット発生周期 : 3.58ms, 14.33ms, 57.23ms, 458.75ms
( 発振クロック周波数 4MHz の場合 )
16 ビット入出力
タイマ
16 ビット
フリーランタイマ
チャネル数 : 1
オーバフローの発生による割込み
インプット
キャプチャ
チャネル数 : 4
端子入力 ( 立上りエッジ , 立下りエッジ , 両エッジ ) によるフリーラ
ンタイマ値の保持
16 ビットリロードタイマ
チャネル数 : 2
16 ビットリロードタイマ動作
カウントクロック周期 : 0.25μs, 0.5μs, 2.0μs
( マシンクロック周波数 16MHz の場合 )
外部イベントカウント可能
時計タイマ
15 ビットフリーランカウンタ
割込み周期 : 31.25ms, 62.5ms, 12ms, 250ms, 500ms, 1.0s, 2.0s
( サブクロック 8.192kHz の場合 )
8/16 ビット PPG タイマ
チャネル数 : 2 (8 ビット× 4 チャネルで使用可能 )
8 ビット× 4 チャネルまたは 16 ビット× 2 チャネルの PPG 動作可能
任意周期 , 任意デューティのパルス波出力可能
カウントクロック : 62.5ns ∼ 1μs
( マシンクロック周波数 16MHz の場合 )
遅延割込み発生モジュール
タスク切替え用の割込み発生モジュール
リアルタイム OS に使用
DTP/ 外部割込み
入力本数 : 4 本
立上りエッジ , 立下りエッジ , "H" レベルおよび "L" レベル入力によ
り起動 , 外部割込みまたは拡張インテリジェント I/O サービス
(EI2OS) を使用可能
第 1 章 概要
表 1.2-2 MB90895 シリーズの CPU と周辺機能 (2 / 2)
項 目
MB90V495G
MB90F897/S
8/10 ビット A/D コンバータ
チャネル数 : 8
分解能 : 10 ビットまたは 8 ビットの設定可能
変換時間 : 6.125μs ( マシンクロック周波数 16MHz の場合 , サンプリン
グ時間含む )
連続した複数のチャネルを順次変換することが可能 ( 最大 8 チャネル
の設定が可能 )
単発変換モード : 選択したチャネルを 1 回のみ変換
連続変換モード : 選択したチャネルを繰り返し変換
停止変換モード : 選択したチャネルの変換 , 一時停止を繰り返す
UART0 (SCI)
チャネル数 : 1
クロック同期転送 : 62.5kbps ∼ 2Mbps
クロック非同期転送 : 1,202bps ∼ 62,500bps
双方向シリアル通信機能 , マスタ / スレーブ型接続による通信可能
UART1 (SCI)
チャネル数 : 1
クロック同期転送 : 62.5kbps ∼ 2Mbps
クロック非同期転送 : 9,615bps ∼ 500kbps
双方向シリアル通信機能 , マスタ / スレーブ型接続による通信可能
CAN
CAN 仕様 Ver2.0A および Ver2.0B 準拠
送受信メッセージバッファ : 8 本
転送ビットレート : 10kbps ∼ 1Mbps ( マシンクロック周波数 16MHz
の場合 )
CAN ウェイクアップ
*: MB90F897S
7
第 1 章 概要
1.3
MB90895 シリーズのブロックダイヤグラム
MB90895 シリーズの全体ブロックダイヤグラムを示します。
■ MB90895 シリーズの全体ブロックダイヤグラム
図 1.3-1 MB90895 シリーズの全体ブロックダイヤグラム
X0,X1
RST
X0A,X1A
クロック
制御回路
CPU
F2MC-16LXコア
時計タイマ
タイムベースタイマ
16ビット
フリーランタイマ
RAM
インプット
キャプチャ
(4ch)
プリスケーラ
内部データバス
FLASH
16ビットPPGタイマ
(2ch)
CAN
SOT1
SCK1
SIN1
IN0~IN3
PPG0~PPG3
RX
TX
UART1
DTP/外部割込み
INT4~INT7
16ビット
リロードタイマ
(2ch)
TIN0,TIN1
プリスケーラ
SOT0
SCK0
SIN0
UART0
AVcc
AVss
AN0~AN7
AVR
ADTG
8
8/10ビット
A/Dコンバータ
(8ch)
TOT0,TOT1
第 1 章 概要
1.4
端子配列図
MB90895 シリーズの端子配列図を示します。
■ 端子配列図 (FPT-48P-M26)
X1A/P36 *
X0A/P35 *
P33
P32/SIN0
P31/SCK0
P30/SOT0
P44/RX
P43/TX
P42/SOT1
P41/SCK1
P40/SIN1
48
47
46
45
44
43
42
41
40
39
38
37
AV SS
図 1.4-1 端子配列図 (FPT-48P-M26)
1
2
3
4
5
6
7
8
9
10
11
12
TOP VIEW
36
35
34
33
32
31
30
29
28
27
26
25
P17/PPG3
P16/PPG2
P15/PPG1
P14/PPG0
P13/IN3
P12/IN2
P11/IN1
P10/IN0
X1
X0
C
V SS
P21/TOT0
P22/TIN1
P23/TOT1
P24/INT4
P25/INT5
P26/INT6
P27/INT7
MD2
MD1
MD0
RST
V CC
13
14
15
16
17
18
19
20
21
22
23
24
AV CC
AVR
P50/AN0
P51/AN1
P52/AN2
P53/AN3
P54/AN4
P55/AN5
P56/AN6
P57/AN7
P37/ADTG
P20/TINO
*: MB90F897:X1A, X0A
MB90F897S:P36, P35
9
第 1 章 概要
外形寸法図
1.5
MB90895 シリーズには , 下記のパッケージが用意されています。
なお , 本外形寸法は参考用です。正式版につきましては別途ご相談ください。
■ FPT-48P-M26 の外形寸法図
プラスチック・LQFP, 48 ピン
(FPT-48P-M26)
リードピッチ
0.50mm
パッケージ幅×
パッケージ長さ
7 × 7mm
リード形状
ガルウイング
封止方法
プラスチックモールド
取付け高さ
1.70mm MAX
質量
0.17g
コード(参考)
P-LFQFP48-7×7-0.50
プラスチック・LQFP, 48 ピン
(FPT-48P-M26)
注 1)* 印寸法はレジン残りを含む。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
9.00±0.20(.354±.008)SQ
+0.40
+.016
* 7.00 –0.10 .276 –.004 SQ
36
0.145±0.055
(.006±.002)
25
37
24
0.08(.003)
Details of "A" part
+0.20
1.50 –0.10
+.008
48
13
"A"
0˚~8˚
LEAD No.
1
0.50(.020)
(Mounting height)
.059 –.004
INDEX
0.10±0.10
(.004±.004)
(Stand off)
12
0.20±0.05
(.008±.002)
0.08(.003)
0.25(.010)
M
0.60±0.15
(.024±.006)
©2003-2008 FUJITSU MICROELECTRONICS LIMITED F48040S-c-2-3
C
2003 FUJITSU LIMITED F48040S-c-2-2
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
10
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
端子機能説明
1.6
MB90895 シリーズの入出力端子とその機能を示します。
■ 端子機能説明
表 1.6-1 端子機能説明 (1 / 3)
端子番号
端子名
M26
回路
形式
1
AVCC
−
2
AVR
−
P50 ∼ P57
AN0 ∼ AN7
P37
11
A/D コンバータの VCC 電源入力端子です。
A/D コンバータの電源 (Vref+) 入力端子です。VCC 以下の入力にして
ください。
汎用入出力ポートです。
E
3 ∼ 10
機能説明
A/D コンバータのアナログ入力端子として機能します。アナログ入力
設定が許可の場合に有効となります。
汎用入出力ポートです。
D
ADTG
A/D コンバータ外部トリガ入力端子として機能します。入力ポートに
設定して使用してください。
P20
汎用入出力ポートです。
12
D
TIN0
P21
13
リロードタイマ 0 のイベント入力端子として機能します。入力ポート
に設定して使用してください。
汎用入出力ポートです。
D
TOT0
リロードタイマ 0 のイベント出力端子として機能します。出力設定が
許可の場合のみ有効となります。
P22
汎用入出力ポートです。
14
D
TIN1
リロードタイマ 1 のイベント入力端子として機能します。入力ポート
に設定して使用してください。
P23
汎用入出力ポートです。
15
D
TOT1
リロードタイマ 1 のイベント出力端子として機能します。出力設定が
許可の場合のみ有効となります。
P24 ∼ P27
汎用入出力ポートです。
D
16 ∼ 19
INT4 ∼ INT7
外部割込み入力端子として機能します。入力ポートに設定して使用し
てください。
20
MD2
F
動作モード指定用の入力端子です。VSS に直結してください。
21
MD1
C
動作モード指定用の入力端子です。VCC に直結してください。
22
MD0
C
動作モード指定用の入力端子です。VCC に直結してください。
23
RST
B
外部リセット入力端子です。
11
第 1 章 概要
表 1.6-1 端子機能説明 (2 / 3)
端子番号
端子名
M26
回路
形式
24
VCC
−
電源 (5V) 入力端子です。
25
VSS
−
電源 (0V) 入力端子です。
26
C
−
電源安定化のための容量端子です。0.1μF 程度のセラミックコンデン
サを接続してください。
27
X0
A
高速発振用端子です。
28
X1
A
高速発振用端子です。
P10 ∼ P13
29 ∼ 32
IN0 ∼ IN3
汎用入出力ポートです。
D
P14 ∼ P17
PPG0 ∼ PPG3
P40
37
PPG タイマ 01, 23 の出力端子として機能します。出力設定が許可の場
合に有効となります。
汎用入出力ポートです。
D
SIN1
UART1 のシリアルデータ入力端子です。入力ポートに設定して使用
してください。
P41
汎用入出力ポートです。
38
D
SCK1
UART1 のシリアルクロック入出力端子です。UART1 のシリアルク
ロック入出力設定が許可の場合のみ有効となります。
P42
汎用入出力ポートです。
39
D
SOT1
P43
40
P44
41
UART1 のシリアルデータ出力端子です。
UART1 のシリアルデータ出力設定が許可の場合のみ有効となります。
汎用入出力ポートです。
D
TX
CAN の送信出力端子です。出力設定が許可の場合のみ有効となりま
す。
汎用入出力ポートです。
D
RX
CAN の受信入力端子です。入力ポートに設定して使用してください。
P30
汎用入出力ポートです。
42
D
SOT0
P31
43
UART0 のシリアルデータ出力端子。UART0 のシリアル出力設定が許
可の場合のみ有効となります。
汎用入出力ポートです。
D
SCK0
UART0 のシリアルクロック出力端子。UART1 のシリアルクロック入
出力設定が許可の場合のみ有効となります。
P32
汎用入出力ポートです。
44
D
UART0 のシリアルデータ入力端子。入力ポートに設定して使用して
ください。
D
汎用入出力ポートです。
SIN0
45
インプットキャプチャチャネル 0 ∼ 3 のトリガ入力端子として機能し
ます。入力ポートに設定して使用してください。
汎用入出力ポートです。高電流出力ポートです。
G
33 ∼ 36
12
機能説明
P33
第 1 章 概要
表 1.6-1 端子機能説明 (3 / 3)
端子番号
端子名
M26
回路
形式
機能説明
X0A*
A
低速発振用端子です。
P35*
D
汎用入出力ポートです。
X1A*
A
低速発振用端子です。
P36*
D
汎用入出力ポートです。
AVSS
−
A/D コンバータの VSS 電源入力端子です。
46
47
48
*:MB90F897:X1A, X0A
MB90F897S:P36, P35
13
第 1 章 概要
1.7
入出力回路形式
MB90895 シリーズの入出力回路形式を示します。
■ 入出力回路形式
表 1.7-1 入出力回路形式 (1 / 2)
分類
回 路
備 考
A
X1
•
•
高速用発振帰還抵抗 約 1MΩ
低速用発振帰還抵抗 約 10MΩ
•
•
プルアップ抵抗付きヒステリシス入力
プルアップ抵抗約 50kΩ
•
ヒステリシス入力
•
•
•
•
CMOS ヒステリシス入力
CMOS レベル出力
スタンバイ制御あり
Automotive 入力
クロック入力
X1A
X0
X0A
スタンバイ制御信号
B
Vcc
R
R
ヒステリシス入力
C
R
ヒステリシス入力
D
Vcc
P-ch
R
N-ch
Vss
デジタル出力
デジタル出力
CMOSヒステリシス入力
スタンバイ制御
R
14
automotive入力
第 1 章 概要
表 1.7-1 入出力回路形式 (2 / 2)
分類
回 路
備 考
E
Vcc
P-ch
デジタル出力
CMOS ヒステリシス入力
CMOS レベル出力
アナログ入力端子と兼用
スタンバイ制御あり
Automotive 入力
•
•
•
プルダウン抵抗付きヒステリシス入力
プルダウン抵抗約 50kΩ
FLASH 品にはプルダウン抵抗はありま
せん。
•
•
•
•
CMOS ヒステリシス入力
CMOS レベル出力 ( 高電流出力 )
スタンバイ制御あり
Automotive 入力
•
•
•
•
•
CMOS ヒステリシス入力
CMOS レベル出力
スタンバイ制御あり
CMOS 入力
Automotive 入力
デジタル出力
N-ch
Vss
R
•
•
•
•
•
CMOSヒステリシス入力
スタンバイ制御
R
automotive入力
アナログ入力
F
R
ヒステリシス入力
R
Vss
G
Vcc
P-ch
R
N-ch
Vss
高電流出力
高電流出力
CMOSヒステリシス入力
スタンバイ制御
R
automotive入力
H
Vcc
P-ch
R
N-ch
Vss
デジタル出力
デジタル出力
CMOSヒステリシス入力
R
automotive入力
R
CMOS入力
スタンバイ制御
15
第 1 章 概要
16
第2章
デバイスの取扱いに
ついて
この章では , 汎用ワンチップマイクロコントローラ
の取扱い上の注意について説明します。
2.1 デバイス取扱い上の注意
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
17
第 2 章 デバイスの取扱いに ついて
2.1
デバイス取扱い上の注意
デバイスの電源電圧 , 端子の処理などについての注意事項を記載します。
■ デバイス取扱い上の注意
● 最大定格を超えることのないよう注意してください ( ラッチアップの防止 )。
• CMOS IC では , 中・高耐圧以外の入力端子や出力端子に VCC より高い電圧や VSS よ
り低い電圧が印加された場合または VCC ∼ VSS 間に定格を超える電圧が印加された
場合に , ラッチアップ現象を発生することがあります。
• ラッチアップ現象が起きると電源電流が激増し , 素子の熱破壊に至る場合がありま
すので , 使用に際しては , 最大定格を超えることのないよう十分注意してください。
• アナログ電源投入時と切断時においてアナログ電源電圧 (AVCC, AVR) とアナログ入
力電圧は , デジタル電源電圧 (VCC) を超えないように十分注意してください。
● 未使用端子の処理について
使用していない入力端子を開放のままにしておくと誤動作およびラッチアップによる
永久破壊の原因になることがありますので, 2kΩ以上の抵抗を介してプルアップまたは
プルダウンなどの処理をしてください。また , 使用していない入出力端子については出
力状態にして開放とするか , 入力状態の場合は入力端子と同じ処理をしてください。
● 外部クロックを使用する場合の注意について
外部クロックを使用する際には , X0 端子のみを駆動し , X1 端子は , オープンとしてく
ださい。図 2.1-1 に外部クロック使用例について示します。
図 2.1-1 外部クロック使用例
X0
オープン
X1
MB90895シリーズ
● サブクロックを使用しない場合の注意について
X0A, X1A 端子に振動子を接続しない場合は X0A 端子にプルダウンの処理をし , X1A
端子はオープンにしてください。
● PLL クロックモード動作中の注意について
本マイコンで PLL クロックを選択しているときに発振子が外れたり , あるいはクロッ
ク入力が停止した場合 , 本マイコンは PLL 内部の自励発振回路の自走周波数で動作を
継続し続ける場合があります。この動作は保証外の動作です。
18
第 2 章 デバイスの取扱いに ついて
● 電源端子について
• VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する
ために , 同電位にすべき端子はデバイス内部で接続してありますが , 不要輻射の低
減 , グランドレベルの上昇によるストローブ信号の誤動作防止 , 総出力電流規格を
守るなどのために , 必ずそれらすべてを外部で電源およびグランドに接続してくだ
さい。
• 電流供給源からできる限り低インピーダンスの MB90895 シリーズのデバイスの
VCC, VSS に接続するように配慮してください。
• MB90895 シリーズのデバイスの端子近くで , VCC と VSS の間に 0.1μF 程度のコンデ
ンサをバイパスコンデンサとして接続することをお薦めします。
● 水晶発振回路について
• X0, X1 端子の近辺のノイズは MB90895 シリーズのデバイスの誤動作の元となりま
す。X0, X1 端子および水晶振動子 ( あるいはセラミック振動子 ) さらにグランドへ
のバイパスコンデンサはできる限り近くになるように , また X0, X1 端子の配線は ,
ほかの配線とできる限り交差しないようにプリント基板を設計してください。
• X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定した
動作を期待できますので , 強くお薦めします。
• 各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
● A/D コンバータの電源 , アナログ入力の投入順序について
• A/D コンバータ , アナログ入力 (AN0 ∼ AN7 端子 ) の印加は , 必ずデジタル電源 (VCC)
の投入後に行ってください。
• 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル電
源の遮断を行ってください。
• AVR は , AVCC を超えないように投入および切断を行ってください。
● A/D コンバータ未使用時の端子処理について
A/D コンバータを使用しない場合は , AVCC=AVR=VCC, AVSS=VSS となるように接続し
てください。
● 電源投入時の注意点
内蔵している降圧回路の誤動作を防ぐために,電源投入時における電圧の立上げ時間は
50μs (0.2V ∼ 2.7V の間 ) 以上を確保してください。
● 供給電圧の安定化
VCC 電源電圧の動作保障内においても , 電源電圧の急激な変化があると誤動作を起こ
す場合がありますので , VCC 電源電圧を安定させてください。
安定化の基準としては , 商用周波数 (50Hz ∼ 60Hz) での VCC リプル変動 (peak to peak
値 ) は , 標準 VCC 電源電圧値の 10% 以下に , また電源の切替え時などの瞬時変化にお
いては , 過渡変動率が 0.1V/ms 以下になるように電源電圧を抑えてください。
19
第 2 章 デバイスの取扱いに ついて
20
第3章
CPU の機能
MB90895 シリーズの CPU の機能について説明し
ます。
3.1 メモリ空間
3.2 専用レジスタ
3.3 汎用レジスタ
3.4 プリフィックスコード
3.5 割込み
3.6 リセット
3.7 クロック
3.8 低消費電力モード
3.9 CPU モード
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
21
第 3 章 CPU の機能
3.1
メモリ空間
F2MC-16LX のメモリ空間は 16M バイトで , I/O, プログラムおよびデータは , すべて
この中に配置します。メモリ空間の一部は , 拡張インテリジェント I/O サービス
(EI2OS) ディスクリプタ , 汎用レジスタおよびベクタテーブルなどの特定用途に使用
されます。
■ メモリ空間
I/O, プログラムおよびデータは , すべて F2MC-16LX CPU が持つ 16M バイトのメモリ
空間のいずれかに配置され , CPU は 24 ビットのアドレスバスでこれらのアドレスを示
し , 各リソースをアクセスすることができます。
F2MC-16LX システムとメモリマップの関係例を図 3.1-1 に示します。
図 3.1-1 F2MC-16LX システムとメモリマップの関係例
F2MC-16LX デバイス
汎用ポート
周辺回路
割込み
2
内部データバス
F2MC-16LX
CPU
EI OS
データ
000000H
000020H
0000B0H
0000C0H
000100H
000180H
000380H
000900H
003900H
004000H
*1
FE0000H
FF0000H
I/O領域
EI2OS
ディスクリプタ領域
汎用レジスタ
データ領域
RAM領域
周辺機能制御レジスタ領域
拡張I/O領域
ROM領域
(FFバンクのイメージ)
010000H
プログラム
I/Oポート制御レジスタ領域
周辺機能制御レジスタ領域
割込み制御レジスタ領域
*2
ROM領域
(FFバンクと同一データ)
プログラム領域
FFFC00H
ROM領域
ベクトルテーブル領域
FFFE00H
FFFFFFH
*1:品種によって,内蔵RAMの容量が異なります。
*2:品種によって,内蔵ROMの容量が異なります。
22
ハードワイヤード
リセットベクタ
第 3 章 CPU の機能
■ ROM 領域
● ベクタテーブル領域 ( アドレス : FFFC00H ∼ FFFFFFH)
• リセットと割込みに対応したベクタテーブルです。
• ROM領域の最上位に割り当てられており,それぞれのベクタテーブルのアドレスに,
対応する処理ルーチンの開始アドレスをデータとして設定します。
● プログラム領域 ( アドレス : ∼ FFFBFFH)
• 内部プログラム領域として , ROM が内蔵されています。
• 内部 ROM 容量は , 品種によって異なります。
■ RAM 領域
● データ領域 ( アドレス : 000100H ∼ 000900H)
• 内部データ領域として , スタティック RAM が内蔵されています。
• 内部 RAM 容量は , 品種によって異なります。
● 汎用レジスタ領域 ( アドレス : 000180H ∼ 00037FH)
• 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する , 補助的なレジスタを配置
します。
• RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま
す。
• 汎用レジスタとして使用すると , 汎用レジスタアドレッシングによって , 短い命令
で高速にアクセスできます。
● 拡張インテリジェント I/O サービス (El2OS) ディスクリプタ領域
( アドレス 0000100H ∼ 00017FH)
• 転送モード , I/O のアドレス , 転送数およびバッファアドレスを保持します。
• RAM 領域の一部に割り当てられており , 通常の RAM として使用することもできま
す。
■ I/O 領域
● 割込み制御レジスタ領域 ( アドレス : 0000B0H ∼ 0000BFH)
割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込み機能を持つすべての周辺機能に対応し ,
割込みレベルの設定および拡張インテリジェント I/O サービス (EI2OS) の制御を行いま
す。
● 周辺機能制御レジスタ領域 ( アドレス : 000020H ∼ 0000AFH)
周辺機能およびデータの入出力を制御します。
● I/O ポート制御レジスタ領域 ( アドレス : 000000H ∼ 00001FH)
I/O ポートおよびデータの入出力を制御します。
■ 拡張 I/O 領域
● 周辺機能制御レジスタ領域 ( アドレス : 003900H ∼ 003FFFH)
周辺機能およびデータの入出力を制御します。
23
第 3 章 CPU の機能
メモリ空間の割当てとアクセス
3.1.1
MB90895 シリーズでは , メモリアクセスモードとしてシングルチップモードが設定
できます。
■ MB90895 シリーズのメモリ割当て
MB90895 シリーズでは , 内部アドレスバスは 24 ビット幅 , 外部アドレスバスは 24 ビッ
トまでの出力となり , 外部アクセスメモリは最大 16M バイトのメモリ空間をアクセス
できます。
ROM ミラー機能の有効 / 無効時のメモリマップを図 3.1-2 に示します。
図 3.1-2 MB90895 シリーズのメモリ割り当て
ROMミラー機能が有効な場合
000000H
0000C0H
000100H
周
アドレス#1
003900H
004000H
010000H
ROMミラー機能が無効な場合
辺
周
辺
RAM領域
レジスタ
RAM領域
レジスタ
拡張I/O領域
ROM領域
(FFバンクの
イメージ)
拡張I/O領域
FE0000H
ROM領域
*
ROM領域
FF0000H
FFE000H
FFFFFFH
ROM領域
品 種
ハードワイヤード
リセットベクタ
ROM領域
アドレス#1
MB90V495G
001900H
MB90F897/S
000900H
:内部アクセスメモリ
*
:アクセス禁止
:MB90F897/Sでは,FE0000H~FEFFFFHの領域を読み出すと
FF0000H~FFFFFFHのデータが読み出せます。
24
*
第 3 章 CPU の機能
■ 内部 ROM のイメージアクセス
F2MC-16LX は , 内部 ROM が動作している状態では , 00 バンクの上位に FF バンクの
ROM データがイメージで見えるようになっています。この機能をミラー ROM 機能と
呼び , C コンパイラのスモールモデルを有効に生かすことができます。
F2MC-16LX では , FF バンクの下位 16 ビットアドレスと 00 バンクの下位 16 ビットア
ドレスが同じになるようにしてあるので , ポインタで far 指定をしなくても ROM 内の
テーブルを参照することができます。
たとえば , "00C000H" をアクセスした場合 , 実際には "FFC000H" の ROM の内容がアク
セスされます。ただし , FF バンクの ROM 領域は , 48K バイトを超えるので , 00 バンク
のイメージにすべての領域を見せることができません。したがって , "FF4000H" ∼
"FFFFFFH" の ROM データは , "004000H" ∼ "00FFFFH" のイメージに見えるので , ROM
データテーブルは "FF4000H" ∼ "FFFFFFH" の領域に格納してください。
<参考>
ROM ミラー機能を無効に設定する操作については (ROMM: MI=0)「18.1 ROM ミ
ラー機能選択モジュールの概要」を参照してください。
25
第 3 章 CPU の機能
メモリマップ
3.1.2
MB90895 シリーズの品種ごとのメモリマップを示します。
■ メモリマップ
MB90895 シリーズのメモリマップを図 3.1-3 に示します。
図 3.1-3 MB90895 シリーズのメモリマップ
MB90F897/S
000100H
000900H
003900H
004000H
MB90V495G
シングルチップ
シングルチップ
内部ROM外部バス
外部ROM外部バス
I/O
I/O
I/O
I/O
RAM
汎用レジスタ
RAM
汎用レジスタ
RAM
汎用レジスタ
拡張I/O領域
拡張I/O領域
拡張I/O領域
2
ROM領域*
2
ROM領域*
(FFバンクの
イメージ)
(FFバンクの
イメージ)
ROM*1
ROM*1
000100H
RAM
汎用レジスタ
001900H
002000H
003800H
003900H
004000H
拡張I/O領域
2
ROM領域*
(FFバンクの
010000H
イメージ)
010000H
FE0000H
FF0000H
FFE000H
FFFFFFH
ROM*3
FC0000H
ROM
ハードワイヤード
リセットベクタ
FF0000H
:内部アクセスメモリ
:外部アクセスメモリ
:アクセス禁止
*1:MB90V495GにはROMは内蔵されていないが,専用の開発ツールの動作に限り,
ROM内蔵品と同様に動作させることができます。
*2:MB90F897/S,MB90V495Gでは,FF4000H~FFFFFFHまでのイメージを
00バンクに見えるようにしてあります。
*3:MB90F897/Sでは,FEバンクを読み出すとFFバンクが読み出せます。
26
第 3 章 CPU の機能
3.1.3
アドレッシング
アドレスを指定する方式には , リニア方式とバンク方式があります。
F2MC-16LX ファミリは , 基本的にはバンクアドレッシングとなります。
• リニア方式 : アドレス 24 ビットのすべてを命令により直接指定する方法です。
• バンク方式 : アドレス上位 8 ビットを用途に応じたバンクレジスタにより指定し ,
アドレス下位 16 ビットを命令により指定する方法です。
■ リニアアドレッシングとバンクアドレッシング
リニア方式のアドレッシングは , 16M バイトのメモリ空間に対して直接アドレスを指
定してアクセスします。バンク方式のアドレッシングは , 16M バイトの空間を 64K バ
イト単位の 256 バンクに分割し , バンクとバンク内のアドレスを指定してアクセスしま
す。
リニア方式とバンク方式のメモリ管理の概要を図 3.1-4 に示します。
図 3.1-4 リニア方式とバンク方式のメモリ管理
リニア方式
000000H
バンク方式
000000H
00FFFFH
010000H
01FFFFH
020000H
02FFFFH
123456H
123456H
FFFFFFH
FD0000H
FDFFFFH
FE0000H
FEFFFFH
FF0000H
FFFFFFH
すべて命令で指定
00バンク
64kバイト
01バンク
02バンク
12バンク
FDバンク
FEバンク
FFバンク
命令で指定
バンクレジスタで指定
27
第 3 章 CPU の機能
3.1.4
リニア方式によるアドレス指定
リニア方式によるアドレス指定には , 次の方法があります。
• 命令で 24 ビットのアドレスを直接指定する方法
• 32 ビットの汎用レジスタの下位 24 ビットをアドレスとして引用する方法
■ 24 ビットオペランド指定によるリニアアドレッシング
図 3.1-5 リニア方式による 24 ビット物理直接アドレス指定例
JMPP 123456H
旧プログラムバンク
10
+プログラムカウンタ
452D
10452DH
新プログラムバンク
12
+プログラムカウンタ
3456
123456H
JMPP 123456H
次の命令
■ 32 ビットレジスタ間接指定によるアドレッシング
図 3.1-6 リニア方式による 32 ビット汎用レジスタ間接指定例
MOV A,@RL1+7 旧アキュムレータ
XXXX
(上位8bitは無視)
RL1
FFFF06F9H
+7
新アキュムレータ
003A
RL1:32ビット(ロングワード)汎用レジスタ
28
FF0700H
3AH
第 3 章 CPU の機能
3.1.5
バンク方式によるアドレス指定
バンク方式によるアドレス指定は , 16M バイトのメモリ空間を 64K バイト単位の
256 バンクに分割し , バンクレジスタで各バンクのアドレスを指定し , 下位 16 ビッ
トアドレスは命令で指定します。
バンクレジスタには , 用途別に次の 5 つの種類があります。
• プログラムバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルバンクレジスタ (ADB)
■ バンクレジスタとアクセス空間
各バンクレジスタのアクセス空間と主な用途を表 3.1-1 に示します。
表 3.1-1 各バンクレジスタのアクセス空間と主な用途
バンクレジスタ名
アクセス空間
主な用途
リセット値
プログラムバンク
レジスタ (PCB)
プログラム
(PC) 空間
命令コード , ベクタテーブル , 即値
データなどを格納します。
FFH
データバンク
レジスタ (DTB)
データ (DT)
空間
読み書き可能なデータの格納領域や ,
周辺機能の制御レジスタとデータレ
ジスタの領域です。
00H
ユーザスタック
バンクレジスタ
(USB)
システムスタック
バンクレジスタ
(SSB) *
アディショナル
バンクレジスタ
(ADB)
スタック (SP)
空間
アディショナ
ル (AD) 空間
PUSH/POP 命令や , 割込みのレジス
タ退避などのスタックアクセスに用
いられる領域です。スタックフラグ
(CCR: S) が "1" の場合は SSB を , "0"
00H
の場合は USB を使用します。*
00H
データ (DT) 空間に入りきらなかった
データを格納します。
00H
* : 割込み時のスタックには , 必ず SSB が使用されます。
29
第 3 章 CPU の機能
バンクに分割されたメモリ空間と各レジスタの関係を図 3.1-7 に示します。
図 3.1-7 バンク方式によるアドレッシング例
000000H
070000H
07FFFFH
システムスタック空間
07H :SSB(システムスタックバンクレジスタ)
理
ア
ド
レ
ス
物
0B0000H
データ空間
0BH
:DTB(データバンクレジスタ)
ユーザスタック空間
0DH
:USB(ユーザスタックバンクレジスタ)
アディショナル空間
0FH :ADB(アディショナルバンクレジスタ)
0BFFFFH
0D0000H
0DFFFFH
0F0000H
0FFFFFH
FF0000H
FFFFFFH
<参考>
プログラム空間
FFH
:PCB(プログラムバンクレジスタ)
詳細は ,「3.2 専用レジスタ」を参照してください。
■ バンクアドレッシングとデフォルト空間
命令のコード効率を向上するため , 各命令にはアドレス指定方式ごとに表 3.1-2 に示す
ようなデフォルト空間が決められています。デフォルト以外の空間を利用したい場合
は , 各バンクに対応しているプリフィックスコードを命令に先行して指定することで ,
そのプリフィックスコードに対応した任意のバンク空間をアクセスすることができま
す。
表 3.1-2 アドレッシングとデフォルト空間
デフォルト空間
<参考>
30
アドレッシング
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0, @RW1, @RW4, @RW5 を用いたアドレッシング , @A,
addr16, dir
スタック空間
PUSHW, POPW, @RW3 ,@RW7 を用いたアドレッシング
アディショナル空間
@RW2, @RW6 を用いたアドレッシング
プリフィックスコードの詳細は , 「3.4 プリフィックスコード」を参照してくださ
い。
第 3 章 CPU の機能
多バイト長データのメモリ上の配置
3.1.6
多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。32 ビット長
データの場合は , 下位 16 ビット , 上位 16 ビットの順に書き込まれます。
下位 16 ビットの書込み直後にリセット信号が発生した場合は , 上位 16 ビットが書
き込まれないことがあります。
■ RAM 上の多バイトデータの格納状態
多バイト長データのデータ格納の順序を図 3.1-8 示します。データは下位 8 ビットが n
番地に , 以下 n+1 番地 , n+2 番地 , n+3 番地・・・の順に配置されます。
図 3.1-8 RAM 上の多バイトデータの格納状態
下位アドレス
n番地
n+1
00010100B
n+2
n+3
11001100B
11111111B
01010101B
MSB
上位アドレス
01010101B
LSB
11001100B
11111111B
00010100B
MSB:Most Significant Bit(最上位ビット)
LSB:Least Significant Bit(最下位ビット)
■ 多バイト長オペランドの場合の格納状態
多バイト長オペランドのメモリ上での構成を図 3.1-9 に示します。
図 3.1-9 オペランドが多バイトの場合の格納状態
JMPP 123456H
下位アドレス
n番地
n+1
n+2
n+3
JMPP 1 2 3 4 5 6H
63H
56H
34H
12H
上位アドレス
31
第 3 章 CPU の機能
■ スタック上の多バイトデータの格納状態
多バイト長データのスタック上への格納の順序を図 3.1-10 に示します。
図 3.1-10 スタック上の多バイトデータの格納状態
PUSHW RW1,RW3
下位アドレス
PUSHW RW1, RW3
(35A4H)(6DF0H)
SP
A4H
35H
F0H
6DH
実行後
上位アドレス
RW1:35A4H
RW3:6DF0H
■ 多バイト長データのアクセス
アクセスはすべてバンク内を基本にして行われますので,多バイト長のデータをアクセ
スする命令では, "FFFFH"番地の次のアドレスは同じバンクの"0000H"番地になります。
バンク境界での多バイト長データのアクセス命令の実行例を図 3.1-11 に示します。
図 3.1-11 バンク境界での多バイト長データのアクセス
下位アドレス
実行前のAL
800000H
23H
80FFFFH
・
・
・
01H
上位アドレス
32
??
??
MOVW A, 080FFFFH
実行後のAL
23H
01H
第 3 章 CPU の機能
専用レジスタ
3.2
CPU 内の専用レジスタは , 次のレジスタで構成されています。
• アキュムレータ
• ユーザスタックポインタ
• システムスタックポインタ
• プロセッサステータス
• プログラムカウンタ
• ダイレクトページレジスタ
• バンクレジスタ ( プログラムバンクレジスタ , データバンクレジスタ , ユーザス
タックバンクレジスタ , システムスタックバンクレジスタ , アディショナルデータ
バンクレジスタ )
■ 専用レジスタの構成
図 3.2-1 専用レジスタの構成
AH
AL
:アキュムレータ(A)
演算などに使用される,16ビット×2本のレジスタです。
連続して32ビットレジスタとしても,使用できます。
USP
:ユーザスタックポインタ(USP)
ユーザスタックアドレスを示す,16ビットのポインタです。
SSP
:システムスタックポインタ(SSP)
システムスタックアドレスを示す,16ビットのポインタです。
PS
:プロセッサステータス(PS)
システムの状態を示す,16ビットのレジスタです。
PC
:プログラムカウンタ(PC)
現在の命令格納位置を示す,16ビットのレジスタです。
DPR
:ダイレクトページレジスタ(DPR)
短縮直接アドレッシングを使用する場合に,アドレス24ビットの
ビット8~15を設定します。8ビットのレジスタです。
PCB
:プログラムバンクレジスタ(PCB)
プログラム空間を示す,8ビットのレジスタです。
DTB
:データバンクレジスタ(DTB)
データ空間を示す,8ビットのレジスタです。
USB
:ユーザスタックバンクレジスタ(USB)
ユーザスタック空間を示す,8ビットのレジスタです。
SSB
:システムスタックバンクレジスタ(SSB)
システムスタック空間を示す,8ビットのレジスタです。
ADB
8ビット
:アディショナルデータバンクレジスタ(ADB)
アディショナル空間を示す,8ビットのレジスタです。
16ビット
32ビット
33
第 3 章 CPU の機能
表 3.2-1 専用レジスタのリセット値
専用レジスタ
リセット値
アキュムレータ (A)
不定
ユーザスタックポインタ (USP)
不定
システムスタックポインタ (SSP)
不定
プロセッサステータス (PS)
PS
プログラムカウンタ (PC)
ダイレクトページレジスタ (DPR)
プログラムバンクレジスタ (PCB)
bit15~bit13 bit12 ~
bit8bit7
~
bit0
CCR
RP
ILM
0 0 0 0 0 0 0 0 - 0 1 x x x x x
リセットベクタの値 (FFFFDCH, FFFFDDH の内容 )
01H
リセットベクタの値 (FFFFDEH の内容 )
データバンクレジスタ (DTB)
00H
ユーザスタックバンクレジスタ (USB)
00H
システムスタックバンクレジスタ (SSB)
00H
アディショナルデータバンクレジスタ (ADB)
00H
<注意事項>
34
上記のリセット値は , デバイスのリセット値であり , ICE ( エミュレータなど ) では
異なります。
第 3 章 CPU の機能
3.2.1
専用レジスタと汎用レジスタ
F2MC-16LX のレジスタには , CPU 内部の専用レジスタと , 内蔵 RAM 上の汎用レジ
スタがあります。
■ 専用レジスタと汎用レジスタ
専用レジスタは , 使用する用途が CPU のハードウェアアーキテクチャで限定されてい
ます。
汎用レジスタは , CPU のアドレス空間にある内蔵 RAM 領域に配置されています。専用
レジスタと同様にアドレッシングに使用でき , 使用する用途は特に限定されません。
デバイス内の専用レジスタと汎用レジスタの配置を図 3.2-2 に示します。
図 3.2-2 専用レジスタと汎用レジスタ
CPU
内蔵RAM
専用レジスタ
アキュムレータ
汎用レジスタ
ユーザスタックポインタ
システムスタックポインタ
プログラムカウンタ
ダイレクトページレジスタ
部
バ
ス
内
プロセッサステータス
プログラムバンクレジスタ
データバンクレジスタ
ユーザスタックバンクレジスタ
システムスタックバンクレジスタ
アディショナルデータバンクレジスタ
35
第 3 章 CPU の機能
3.2.2
アキュムレータ (A)
アキュムレータ (A) は , 2 つの 16 ビット長の演算用レジスタ (AH および AL) から構
成され , 演算結果やデータの一時記憶などに使用されます。
アキュムレータは , 32/16/8 ビットのレジスタとして使用でき , メモリやほかのレジ
スタとの , AH レジスタ・AL レジスタ間での , 各種の演算に使用できます。
■ アキュムレータ (A)
● アキュムレータへのデータ転送
アキュムレータは , 32 ビット ( ロングワード ), 16 ビット ( ワード ), 8 ビット ( バイト )
の各データを処理することができます。
• 32ビットデータ処理の場合は, AHレジスタとALレジスタが連結して使用されます。
• 16 ビットデータや 8 ビットデータを処理する場合は , AL レジスタだけが使用され
ます。
データ保持機能
ワード長以下のデータを AL レジスタへ転送すると , AL レジスタ中に入っていたデー
タが自動的に AH レジスタに転送されるデータ保持機能があります。
符号拡張機能とゼロ拡張機能
AL レジスタへのバイト長以下のデータの転送時には , データは符号拡張 (MOVX 命令
の場合 ) またはゼロ拡張 (MOV 命令の場合 ) され , 16 ビット長となり AL レジスタへ格
納されます。また , AL レジスタ中のデータは , ワード長としてもバイト長としても扱
えます。
36
第 3 章 CPU の機能
アキュームレータへのデータ転送の様子 , 具体的な転送例を図 3.2-3 に示します。
図 3.2-3 アキュムレータへのデータ転送
32ビット
AH
AL
32ビットデータ転送
データ転送 データ転送
AH
データ退避
16ビットデータ転送
AL
データ転送
AH
データ退避
8ビットデータ転送
AL
データ転送
00HまたはFFH*
(*:ゼロ拡張または符号拡張)
● アキュムレータのバイト処理算術演算
AL レジスタに対してバイト処理の算術演算命令を実行した場合は , 演算前の AL レジ
スタの上位 8 ビットは無視され , 演算結果の上位 8 ビットはすべて "0" になります。
● アキュムレータのリセット値
リセット値は不定です。
図 3.2-4 アキュムレータ (A) への 8 ビットデータ転送例 ( データ退避 )
(3000H番地の内容をALレジスタに格納する命令)
MOVW A,3000H
MSB
実行前
AH
AL
XXXXH
2456H
DTB
実行後
2456H
7788H
B53001H
メモリ空間
77H
88H
LSB
B53000H
B5H
X :不定
MSB:最上位ビット
LSB :最下位ビット
DTB :データバンクレジスタ
37
第 3 章 CPU の機能
図 3.2-5 アキュムレータ (A) への 8 ビットデータ転送例 ( データ退避 , ゼロ拡張 )
(3000H番地の内容をゼロ拡張し,ALレジスタに格納する命令)
MOV A,3000H
MSB
実行前
AH
AL
XXXXH
2456H
DTB
2456H
実行後
B53001H
メモリ空間
77H
88H
LSB
B53000H
B5H
X :不定
MSB:最上位ビット
LSB :最下位ビット
DTB :データバンクレジスタ
0088H
図 3.2-6 アキュムレータ (A) への 16 ビット長データの転送例 ( データ退避 )
MOVW A,@RW1+6
AH
実行前
XXXXH
(RW1の内容+8ビット長オフセットの結果を番地としてワード長
リードを行い,その内容をAレジスタに格納する命令)
メモリ空間
MSB
LSB
AL
1234H
DTB
実行後
1234H
A6H
RW1
15H
38H
A6153FH
A61541H
2BH
8FH
52H
74H
+ 6
2B52H
A6153EH
A61540H
X :不定
MSB:最上位ビット
LSB :最下位ビット
DTB :データバンクレジスタ
図 3.2-7 アキュムレータ (A) への 32 ビットデータ転送例 ( レジスタ間接 )
MOVL A,@RW1+6
実行前
AH
XXXXH
(RW1の内容+8ビット長オフセットの結果を番地としてロングワード
長リードを行い,その内容をAレジスタに格納する命令)
メモリ空間
MSB
LSB
AL
XXXXH
RW1
15H
38H
DTB
実行後
8F74H
2B52H
A6H
+ 6
A6153FH
A61541H
2BH
8FH
52H
74H
A6153EH
A61540H
X :不定
MSB:最上位ビット
LSB :最下位ビット
DTB :データバンクレジスタ
38
第 3 章 CPU の機能
3.2.3
スタックポインタ (USP, SSP)
スタックポインタには , ユーザスタックポインタ (USP) とシステムスタックポイン
タ (SSP) があり , いずれも PUSH 命令 , POP 命令およびサブルーチンを実行した場
合の , 退避したデータや復帰するデータの格納先アドレスを示します。
• スタックアドレスの上位 8 ビットは , ユーザスタックバンクレジスタ (USB) また
はシステムスタックバンクレジスタ (SSB) で設定します。
• スタックフラグ (PS: CCR: S) が "0" の場合は USP と USB レジスタが有効になり ,
"1" の場合は SSP と SSB レジスタが有効になります。
■ スタックの選択
F2MC-16LX では , システムスタックとユーザスタックの 2 種類のスタックポインタが
使用できます。
スタックポインタのアドレスは , コンディションコードレジスタのスタックフラグ
(CCR: S) によって表 3.2-2 のように設定されます。
表 3.2-2 スタックアドレスの指定
スタックアドレス
S フラグ
上位 8 ビット
0
1*
下位 16 ビット
ユーザスタックバンクレジスタ (USB)
ユーザスタックポインタ (USP)
システムスタックバンクレジスタ
(SSB)
システムスタックポインタ (SSP)
* : リセット値
リセットによって , スタックフラグ (CCR: S) は "1" にセットされるため , リセット後シ
ステムスタックが使用されます。
通常 , 割込みルーチンでスタックへの処理を行う場合は , システムスタックポインタが
用いられ,割込みルーチン以外でスタックへの処理を行う場合はユーザスタックポイン
タが用いられます。特にスタック空間を分ける必要がなければ , システムスタックポイ
ンタだけを使用してください。
<注意事項>
割込みが受け付けられるとスタックフラグ (CCR: S) がセットされ , 必ずシステム
スタックポインタが使用されます。
39
第 3 章 CPU の機能
システムスタックを使ったスタック操作例について図 3.2-8 に示します。
図 3.2-8 スタック操作命令とスタックポインタ
Sフラグが"0"の場合のPUSHW A
実行前
AL
A624H
Sフラグ
実行後
AL
0
A624H
Sフラグ
0
MSB
USB
C6H
USP
F328H
SSB
56H
SSP
1234H
USB
C6H
USP
F326H
SSB
56H
SSP
1234H
C6F327H
LSB
XXH
XXH
C6F326H
Sフラグが"0"であるため
ユーザスタックポインタを使用
C6F327H
A6H
24H
C6F326H
Sフラグが"1"の場合のPUSHW A
MSB
実行前
AL
A624H
Sフラグ
実行後
AL
1
A624H
Sフラグ
1
USB
C6H
USP
F328H
SSB
56H
SSP
1234H
USB
C6H
USP
F328H
SSB
56H
SSP
1232H
LSB
561233H
XXH
XXH
561232H
561233H
A6H
24H
561232H
Sフラグが"1"であるため
システムスタックポインタを使用
X
:不定
MSB:Most Significant Bit
LSB :Least Significant Bit
<注意事項>
• スタックポインタを設定する場合は , 偶数アドレスを設定してください。奇数
アドレスを設定しますと , ワードアクセスが 2 回に分割されアクセス効率が低
下します。
• USP レジスタおよび SSP レジスタのリセット値は不定です。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP) を使用する場合は , スタックフラグ (CCR: S) に "1" を
設定します。スタックへの処理を行う場合に使用されるアドレスの上位 8 ビットは , シ
ステムスタックバンクレジスタ (SSB) によって設定されます。
■ ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP) を使用する場合は , スタックフラグ (CCR: S) に "0" を
設定します。スタックへの処理を行う場合に使用されるアドレスの上位 8 ビットは ,
ユーザスタックバンクレジスタ (USB) によって設定されます。
40
第 3 章 CPU の機能
■ スタック領域
● スタック領域の確保
スタック領域は , 割込み処理やサブルーチンコール命令 (CALL) やベクタコール命令
(CALLV) を実行するときのプログラムカウンタ (PC) の退避 / 復帰や , PUSHW, POPW
命令による一時的なレジスタ類の退避 / 復帰にも使用されます。
スタック領域は , データ領域とともに RAM 上に確保されます。
スタック領域は次のとおりです。
図 3.2-9 スタック領域
000000H
I/O領域
0000C0H
000100H
000180H
汎用レジスタ
バンク領域
スタック領域
000380H
内蔵RAM領域
000900H
~
~
FF0000H
~
~
*
ROM領域
ベクタテーブル
(リセット・割込み
ベクタコール命令)
FFFC00H
FFFFFFH
*:品種によって,内蔵ROM容量が異なります。
<注意事項>
• スタックポインタ (SSP, USP) にアドレスを設定する場合 , 原則として偶数アド
レスを設定してください。
• システムスタック領域 , ユーザスタック領域およびデータ領域は , おたがいに重
なり合わないように配置してください。
● システムスタックとユーザスタック
割込み処理では , システムスタック領域を使用します。割込み発生時にユーザスタック
領域が使用されている場合でも , 強制的にシステムスタックに切り換えられます。した
がって , ユーザスタック領域を主に使用するシステムの場合においても , システムス
タック領域を正しく設定する必要があります。
特にスタック空間を分ける必要がなければ , システムスタックだけを使用してくださ
い。
41
第 3 章 CPU の機能
3.2.4
プロセッサステータス (PS)
プロセッサステータス (PS) は , CPU の制御を行うビットと CPU の状態を示す各種
ビットから構成されています。プロセッサステータス (PS) は , 次の 3 つのレジスタ
で構成されています。
• 割込みレベルマスクレジスタ (ILM)
• レジスタバンクポインタ (RP)
• コンディションコードレジスタ (CCR)
■ プロセッサステータス (PS) の構成
プロセッサステータス (PS) は , CPUの制御を行うビットと , CPU の状態を示す各種ビッ
トから構成されています。
プロセッサステータス (PS) の構成を図 3.2-10 に示します。
図 3.2-10 プロセッサステータス (PS)
RP
ILM
bit15 14 13 12 11 10
PS
リセット値
CCR
8
7
6
5
4
3
2
1 bit0
ILM2 ILM1 ILM0 B4 B3 B2 B1 B0
-
I
S
T
N
Z
V
C
-
0
1
X
X
X
X
X
0
0
0
0
0
0
9
0
0
-:未定義
X :不定
● 割込みレベルマスクレジスタ (ILM)
CPU が現在受付けている割込みのレベルを示します。各周辺機能の割込み要求に対応
して設定されている割込み制御レジスタの割込みレベル設定ビット (ICR: IL0 ∼ IL2) の
値と比較されます。
● レジスタバンクポインタ (RP)
内蔵 RAM 領域に配置されている汎用レジスタを使用する場合に , どのメモリブロック
( レジスタバンク ) を使用するかを設定します。
汎用レジスタは全部で 32 バンクまで設定でき , レジスタバンクポインタ (RP) に 0 ∼ 31
をセットして使用する汎用レジスタバンクを設定します。
● コンディションコードレジスタ (CCR)
命令の実行結果や割込みの受付けなどによって , セット ("1") またはクリア ("0") される
各種フラグから構成されています。
42
第 3 章 CPU の機能
コンディションコードレジスタ (PS: CCR)
3.2.4.1
コンディションコードレジスタ (CCR) は , 命令の実行による処理結果を示すビット
と割込み要求を許可または禁止するビットによって構成されている 8 ビットのレジ
スタです。
■ コンディションコードレジスタ (CCR) の構成
CCR レジスタの構成を図 3.2-11 に示します。
図 3.2-11 コンディションコードレジスタ (CCR) の構成
RP
ILM
bit15 14 13 12 11 10
PS
CCR
9
8
ILM2 ILM1 ILM0 B4 B3 B2 B1 B0
0
-:未定義
X :不定
0
0
0
0
0
0
0
7
6
5
4
3
2
1 bit0 CCRリセット値
-
I
S
T
N
Z
V
C
-
0
1
X
X
X
X
X
-01XXXXXB
割込み許可フラグ
スタックフラグ
スティッキィビットフラグ
ネガティブフラグ
ゼロフラグ
オーバフローフラグ
キャリフラグ
● 割込み許可フラグ (I)
ソフトウェア割込み以外のすべての割込み要求に対し , 割込み許可フラグ (CCR: I) に
"1" を設定すると割込みが許可され , "0" を設定すると割込みが禁止されます。リセッ
トによって "0" にクリアされます。
● スタックフラグ (S)
スタックへの処理に使用されるポインタを設定します。
スタックフラグ (CCR: S) に "0" を設定するとユーザスタックポインタ (USP) が有効に
なり , "1" を設定するとシステムスタックポインタ (SSP) が有効になります。割込みを
受付けた場合またはリセットした場合には "1" がセットされます。
● スティッキィビットフラグ (T)
論理右シフト命令または算術右シフト命令を実行した場合に,キャリからシフトアウト
されたデータのいずれか 1 つが "1" であると , "1" がセットされます。シフトアウトさ
れたデータがすべて "0" の場合またはシフト量がゼロの場合は "0" がセットされます。
● ネガティブフラグ (N)
演算結果の最上位ビットが "1" の場合は "1" がセットされ , 最上位ビットが "0" の場合
は "0" にクリアされます。
● ゼロフラグ (Z)
演算結果のビットがすべて "0" の場合に "1" がセットされ , 1 ビットでも "1" があれば
"0" にクリアされます。
43
第 3 章 CPU の機能
● オーバフローフラグ (V)
演算を実行した場合に , 符号付き数値としてオーバフローが発生すると "1" がセットさ
れ , オーバフローが発生しなければ "0" にクリアされます。
● キャリーフラグ (C)
演算を実行した場合に,最上位ビットからの桁上りまたは最上位ビットへの桁下りが発
生すると "1" がセットされ , 発生しなければ "0" にクリアされます。
<参考>
44
命令実行時のコンディションコードレジスタ (CCR) の状態については ,『プログラ
ミングマニュアル』を参照してください。
第 3 章 CPU の機能
3.2.4.2
レジスタバンクポインタ (PS: RP)
レジスタバンクポインタ (RP) は , 現在使用している汎用レジスタバンクの先頭アド
レスを示す 5 ビットのレジスタです。
■ レジスタバンクポインタ (RP)
レジスタバンクポインタ (RP) レジスタの構成を図 3.2-12 に示します。
図 3.2-12 レジスタバンクポインタ (RP) の構成
RP
ILM
bit15 14 13 12 11 10
PS
CCR
9
8
7
6
5
4
3
2
1 bit0
ILM2 ILM1 ILM0 B4 B3 B2 B1 B0
-
I
S
T
N
Z
V
RPリセット値
C
00000B
■ 汎用レジスタ領域とレジスタバンクポインタ
レジスタバンクポインタ (RP) は , 内蔵 RAM 上の使用する汎用レジスタの位置を指定
するポインタです。レジスタバンクポインタ (RP) の内容と実アドレスの関係は , 図 3.212 に示す変換規則に従っています。
図 3.2-13 汎用レジスタ領域の物理アドレス変換規則
変換式 [ 000180H +(RP)×10H ]
RP=10H の場合
000180H
レジスタバンク0
:
:
000280H
レジスタバンク16
:
:
000370H
レジスタバンク31
• レジスタバンクポインタ (RP) は , "00H ∼ 1FH" までの値をとることができるので ,
レジスタバンクの先頭アドレスは "000180H ∼ 00037FH" の範囲に設定できます。
• アセンブラ命令では , レジスタバンクポインタ (RP) に転送する 8 ビットの即値転送
命令を使用できますが , 実際に使用されるのは転送されたデータの下位 5 ビットだ
けです。
• リセット後のレジスタバンクポインタ (RP) のリセット値は "00H" になります。
45
第 3 章 CPU の機能
3.2.4.3
割込みレベルマスクレジスタ (PS: ILM)
割込みレベルマスクレジスタ (ILM) は , CPU が受付ける割込みのレベルを示す
3 ビットのレジスタです。
■ 割込みレベルマスクレジスタ (ILM)
割込みレベルマスクレジスタ (ILM) の構成を図 3.2-14 に示します。
図 3.2-14 割込みレベルマスクレジスタ (ILM) の構成
RP
ILM
bit15 14 13 12 11 10
PS
CCR
9
8
7
6
5
4
3
2
1 bit0
ILM2 ILM1 ILM0 B4 B3 B2 B1 B0
-
I
S
T
N
Z
V
ILMリセット値
C
000B
割込みレベルマスクレジスタ (ILM) は , CPU が現在受付けている割込みレベルを示し ,
各周辺リソースの割込み要求に対応して設定されている割込みレベル設定ビット
(ICR: IL2 ∼ IL0) の値と比較されます。割込みが許可されている (CCR: I=1) 場合に割込
みレベルマスクレジスタ (ILM) が示す値より小さい値 ( 割込みレベル ) の割込み要求が
あった場合にのみ , CPU は割込み処理を行います。
• 割込みが受付けられると , 受付けられた割込みレベルマスクレジスタ (ILM) にその
割込みレベル値がセットされます。以降 , セットされたレベル値と同じか弱いレベ
ルの割込みは , 受付けられません。
• 割込みレベルマスクレジスタ (ILM) は , リセットした場合にはすべて "0" にセット
され , 割込み禁止 ( 割込みレベル最強 ) の状態になります。
• アセンブラ命令では , 割込みレベルマスクレジスタ (ILM) に転送する 8 ビットの即
値転送命令を使用できますが,実際に使用されるのは転送されたデータの下位3ビッ
トだけです。
表 3.2-3 割込みレベルマスクレジスタ (ILM) と割込みレベルの強弱
<参考>
46
ILM2
ILM1
ILM0
割込みレベル
割込みレベル強弱
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
割込みの詳細は ,「3.5 割込み」を参照してください。
↓
弱
第 3 章 CPU の機能
3.2.5
プログラムカウンタ (PC)
プログラムカウンタ (PC) は , CPU が次に実行する命令コードのアドレスの下位 16
ビットを示す 16 ビットカウンタです。
■ プログラムカウンタ (PC)
CPU が次に実行する命令コードを格納しているアドレスの上位 8 ビットはプログラム
バンクレジスタ (PCB) で示され , 下位 16 ビットはプログラムカウンタ (PC) で示されま
す。実際のアドレスは , 図 3.2-15 に示したように 24 ビットに合成して使用されます。
プログラムカウンタ (PC) は条件分岐命令 , サブルーチンコール命令 , 割込み , リセット
などで内容が更新されます。
プログラムカウンタ (PC) は , オペランドを読出す場合のベースポインタとしても使用
できます。
図 3.2-15 プログラムカウンタ (PC)
上位8ビット
PCB
FEH
下位16ビット
PC
ABCDH
FEABCDH
<注意事項>
次に実行する命令
プログラムカウンタ (PC), プログラムバンクレジスタ (PCB) はプログラム (MOV PC, #FF など ) で直接書き換えることはできません。
47
第 3 章 CPU の機能
3.2.6
ダイレクトページレジスタ (DPR)
ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定の命令実行時に , オペ
ランドで直接指定した下位アドレス 8 ビットに対して , ビット 8 ∼ビット 15
(addr15 ∼ addr8) を設定します。
■ ダイレクトページレジスタ (DPR)
ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定の命令を実行する場合に ,
オペランドで直接指定した下位アドレス8ビットに対して,ビット8∼ビット15 (addr15∼
addr8) を設定します。ダイレクトページレジスタ (DPR) は 8 ビット長で , リセットした
場合には "01H" がセットされます。読出しと書込みが可能です。
図 3.2-16 ダイレクトページレジスタ (DPR) による物理アドレスの生成
DTBレジスタ
A A A A A A A A
DPRレジスタ
B B B B B B B B
命令中の直接アドレス
C C C C C C C C
24bit
MSB
LSB
物理アドレス
A A A A A A A A
B B B B B B B B C C C C C C C C
bit24
bit16 bit15
bit8 bit7
bit0
MSB:最上位ビット
LSB:最下位ビット
ダイレクトページレジスタ(DPR)の設定とデータアクセスの例を図 3.2-17 に示します。
図 3.2-17 ダイレクトページレジスタ (DPR) の設定とデータアクセス例
MOV S:56H,#5AH
命令実行結果
上位8bit
DTBレジスタ
12H
DPRレジスタ
34H
MSB:最上位ビット
LSB:最下位ビット
48
下位8bit
123455H
123454H
123457H
5AH
123459H
123456H
123458H
MSB
LSB
第 3 章 CPU の機能
3.2.7
バンクレジスタ (PCB, DTB, USB, SSB, ADB)
バンクレジスタは , バンクアドレッシングで 24 ビットアドレスの最上位 8 ビットを
設定します。次の 5 つのレジスタで構成されます。
• プログラムバンクレジスタ (PCB)
• データバンクレジスタ (DTB)
• ユーザスタックバンクレジスタ (USB)
• システムスタックバンクレジスタ (SSB)
• アディショナルバンクレジスタ (ADB)
各バンクレジスタは , それぞれプログラム , データ , ユーザスタック , システムス
タックおよびアディショナルの , 各空間が配置されるメモリバンクを示します。
■ プログラムバンクレジスタ (PCB)
プログラムバンクレジスタ (PCB) は , プログラム (PC) 空間を設定するバンクレジスタ
です。
16M バイト全空間に分岐する , JMPP, CALLP, RETP および RETI 命令 , ソフトウェア割
込み命令を実行またはハードウェア割込みおよび例外処理割込みが発生すると書き換
わります。
■ データバンクレジスタ (DTB)
データバンクレジスタ (DTB) は , データ (DT) 空間を設定するバンクレジスタです。
■ ユーザスタックバンクレジスタ (USB), システムスタックバンクレジスタ (SSB)
ユーザスタックバンクレジスタ (USB), システムスタックバンクレジスタ (SSB) は , ス
タック (SP) 空間を設定するバンクレジスタです。スタッグフラグ (CCR: S) の値によっ
て使用されるバンクレジスタが決定されます。
■ アディショナルバンクレジスタ (ADB)
アディショナルバンクレジスタ (ADB) は , アディショナル (AD) 空間を設定するバンク
レジスタです。
■ 各バンクの設定とデータアクセス
バンクレジスタは 8 ビット長であり , リセットした場合にプログラムバンクレジスタ
(PCB) は "FFH" にセットされ , その他のバンクレジスタは "00H" にセットされます。
プログラムバンクレジスタ (PCB) は , 読出し専用です。PCB 以外のバンクレジスタは ,
読出しと書込みが行えます。
<参考>
各バンクレジスタの動作については ,「3.1 メモリ空間」を参照してください。
49
第 3 章 CPU の機能
汎用レジスタ
3.3
汎用レジスタは , "000180H" ∼ "00037FH" の内蔵 RAM に , 16 ビット× 8 本を 1 バ
ンクとして割り当てたメモリブロックで , 以下の構成で使用できます。
• 汎用の 8 ビットレジスタ ( バイトレジスタ R0 ∼ R7)
• 16 ビットレジスタ ( ワードレジスタ RW0 ∼ RW7)
• 32 ビットレジスタ ( ロングワードレジスタ RL0 ∼ RL3)
■ 汎用レジスタの構成
汎用レジスタは , "000180H" ∼ "00037FH" の内蔵 RAM に 32 バンク存在し , 使用するバ
ンクをレジスタバンクポインタ (RP) で設定します。レジスタバンクポインタ (RP) を
読み出すことによって現在使用されているバンクが示されます。
レジスタバンクポインタ (RP) は , 汎用レジスタ各バンクの先頭アドレスを次式のよう
に決定します。
汎用レジスタの先頭アドレス =000180H+RP×10H
汎用レジスタバンクのメモリ空間内の配置と構成を図 3.3-1 に示します。
図 3.3-1 汎用レジスタバンクのメモリ空間内の配置と構成
内蔵RAM
000180H
000190H
0001A0H
0001B0H
0002B0H
0002C0H
0002D0H
0002E0H
:
レジスタバンク0
レジスタバンク1
レジスタバンク2
:
レジスタバンク19
レジスタバンク20
000360H
レジスタバンク30
000370H
レジスタバンク
31
000380H
:
<注意事項>
50
RW0
バイト
アドレス
02C1H
02C2H
RW1
02C3H
02C4H
RW2
02C5H
02C6H
RW3
02C7H
02C8H
レジスタバンク21
:
:
:
:
:
:
バイト
アドレス
02C0H
14H
RL1
R0
R2
R1
02C9H
RW4
R3
RW5
02CCH
R4
R5
02CBH
02CDH
02CEH
R6
R7
02CFH
RW7
02CAH
RP
RL0
LSB
16bit
RW6
RL2
RL3
MSB
変換式[000180H+RP×10H]
R0
RW0
RL0
MSB
LSB
~ R7 :バイトレジスタ
~ RW7:ワードレジスタ
~ RL3:ロングワードレジスタ
:Most Significant Bit
:Least Significant Bit
レジスタバンクポインタ (RP) は , リセットにより "00000B" がセットされます。
第 3 章 CPU の機能
■ レジスタバンク
レジスタバンクは汎用レジスタ ( バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼
RW7, ロングワードレジスタ RL0 ∼ RL3) として , 各種演算やポインタに使用できます。
ロングワードレジスタは,メモリの全空間を直接アクセスするリニア方式のアドレス指
定に使用できます。
汎用レジスタは , 通常の RAM と同様にリセットでは値が変わらず , リセット前の状態
が保持されます。ただし , 電源投入時は不定となります。
汎用レジスタの代表的な機能を表 3.3-1 に示します。
表 3.3-1 汎用レジスタの代表的な機能
レジスタ名
機 能
R0~R7
各種命令のオペランドとして使用
( 注意事項 )
R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命令の
カウンタとしても使用
RW0 ∼ RW7
アドレス指定に使用
各種命令のオペランドとして使用
( 注意事項 )
RW0 はストリング命令のカウンタとして使用
RL0 ∼ RL3
リニア方式のアドレス指定に使用
各種命令のオペランドとして使用
51
第 3 章 CPU の機能
3.4
プリフィックスコード
命令文の前にプリフィックスコードを挿入することにより , 命令の動作の一部を変更
することができます。プリフィックスコードには次の 3 種類があります。
• バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
• コモンレジスタバンクプリフィックス (CMR)
• フラグ変化抑止プリフィックス (NCC)
■ プリフィックスコード
● バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
バンクセレクトプリフィックスコード (PCB, DTB, ADB, SPB) を命令文の前に挿入する
と , 命令文でアクセスされるメモリ空間を , アドレス指定方式と関係なく任意に設定で
きます。
● コモンレジスタバンクプリフィックス (CMR)
汎用レジスタをアクセスする命令文の前に,コモンレジスタバンクプリフィックスコー
ド (CMR) を挿入すると , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命
令文でアクセスされる汎用レジスタを "000180H" ∼ "00018FH" にあるコモンバンク ( レ
ジスタバンクポインタが "0" の場合に選択されるレジスタバンク ) に変更できます。
● フラグ変化抑止プリフィックス (NCC)
コンディションコードレジスタの各種フラグを変化させる命令文の前に,フラグ変化抑
止プリフィックスコード (NCC) を挿入すると , 命令実行によるフラグ変化を抑止でき
ます。
52
第 3 章 CPU の機能
3.4.1
バンクセレクトプリフィックス (PCB, DTB, ADB,
SPB)
バンクセレクトプリフィックスコードを命令文の前に挿入すると , 命令文でアクセス
されるメモリ空間を , アドレス指定方式とは関係なく任意に選択できます。
■ バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
データアクセスの際に使用されるメモリ空間は,アドレス指定方式ごとに定められてい
ますが , バンクセレクトプリフィックスコードを命令文の前に挿入すると , 命令文でア
クセスされるメモリ空間を , アドレス指定方式とは関係なく任意に選択できます。バン
クセレクトプリフィックスコードと , 選択されるメモリ空間を表 3.4-1 に示します。
表 3.4-1 バンクセレクトプリフィックス
バンクセレクトプリフィックス
選択される空間
PCB
プログラム空間
DTB
データ空間
ADB
アディショナル空間
SPB
スタックフラグ (CCR: S) が "0" の場合はユーザス
タック空間が , "1" の場合はシステムスタック空間が
選択されます。
バンクセレクトプリフィックスコード (PCB, DTB, ADB, SPB) を使用した場合に , 以下
のように例外的な動作を行う命令があります。
バンクセレクトプリフィックスコードの影響を受けない命令を表 3.4-2 に示し , 使用時
に注意すべき命令を表 3.4-3 に示します。
表 3.4-2 バンクセレクトプリフィックスの影響を受けない命令 (1 / 2)
命令の種類
命 令
バンクセレクトプリフィッ
クスコードの効果
ストリング命令
MOVS
SCEQ
FILS
MOVSW
SCWEQ
FILSW
バンクセレクトプリフィッ
クスコードの有無にかかわ
らず , オペランドで指定さ
れたバンクレジスタが使用
されます。
スタック命令
PUSHW
POPW
バンクセレクトプリフィッ
クスコードの有無にかかわ
らず , S フラグが "0" の場合
はユーザスタックバンク
(USB) が , S フラグが "1" の
場合はシステムスタックバ
ンク (SSB) が使用されます。
53
第 3 章 CPU の機能
表 3.4-2 バンクセレクトプリフィックスの影響を受けない命令 (2 / 2)
命令の種類
I/O アクセス命令
割込み復帰命令
命 令
MOV
MOVW
MOV
MOV
MOVB
SETB
BBC
WBTC
A,io
A,io
io,A
io,#imm8
A,io:bp
io:bp
io:bp,rel
io,bp
RETI
バンクセレクトプリフィッ
クスコードの効果
MOVX A,io
MOVW
MOVW
MOVB
CLRB
BBS
WBTS
io,A
io,#imm16
io:bp,A
io:bp
io:bp,rel
io:bp
バンクセレクトプリフィッ
クスコードの有無にかかわ
らず , I/O 空間 ("000000H" ∼
"0000FFH") がアクセスされ
ます。
バンクセレクトプリフィッ
クスコードの有無にかかわ
らず , システムスタックバ
ンク (SSB) が使用されます。
表 3.4-3 バンクセレクトプリフィックス使用時に注意すべき命令
命令の種類
54
命 令
説明
フラグ変更命令
AND OR CCR,#imm8
CCR,#imm8
バンクセレクトプリフィックスコードの効
果が次の命令までおよびます。
ILM 設定命令
MOV ILM,#imm8
バンクセレクトプリフィックスコードの効
果が次の命令までおよびます。
PS 復帰命令
POPW PS
PS 復帰命令に対してはバンクセレクトプリ
フィックスコードを付加しないでくださ
い。
第 3 章 CPU の機能
3.4.2
コモンレジスタバンクプリフィックス (CMR)
汎用レジスタをアクセスする命令文の前に , コモンレジスタバンクプリフィックス
コード (CMR) を挿入すると , 現在のレジスタバンクポインタ (RP) の設定に関係なく ,
その命令文でアクセスされる汎用レジスタを , "000180H" ∼ "00018FH" にあるコモン
バンクに変更できます。
■ コモンレジスタバンクブリフィックス (CMR)
F2MC-16LX では , "000180H" ∼ "00018FH" にレジスタバンクポインタ (RP) の値にかか
わらず各タスクで共通にアクセスできるレジスタバンクとして " コモンバンク " を用
意しています。コモンバンクを利用することによって , 複数のタスク間でのデータ
交換が容易になります。
汎用レジスタをアクセスする命令文の前に,コモンレジスタバンクプリフィックスコー
ド (CMR) を挿入すると , 現在のレジスタバンクポインタ (RP) の値に関係なく , その命
令文でアクセスされるレジスタを , "000180H" ∼ "00018FH" にあるコモンバンク (RP=0
のときに選択されるレジスタバンク ) に変更できます。
ただし , 表 3.4-4 に示す命令に対しては注意が必要です。
表 3.4-4 コモンレジスタバンクプリフィックス (CMR) 使用時に注意すべき命令
命令の種類
命令
説明
ストリング命令
MOVS
SCEQ
FILS
MOVSW
SCWEQ
FILSW
ストリング命令に対しては , コモンレジ
スタバンクプリフィックスコードを付加
しないでください。
フラグ変更命令
AND
OR
CCR,#imm8
CCR,#imm8
コモンレジスタバンクプリフィックス
コードの効果が , 次の命令までおよびま
す。
PS 復帰命令
POPW
PS
コモンレジスタバンクプリフィックス
コードの効果が , 次の命令までおよびま
す。
ILM 設定命令
MOV
ILM,#imm8
コモンレジスタバンクプリフィックス
コードの効果が , 次の命令までおよびま
す。
55
第 3 章 CPU の機能
3.4.3
フラグ変化抑止プリフィックス (NCC)
コンディションコードレジスタの各種フラグを変化させる命令文の前に , NCC プリ
フィックスコードを挿入すると , 命令の実行に伴うフラグ変化を抑止できます。
■ フラグ変化抑止プリフィックス (NCC)
フラグ変化抑止プリフィックスコード (NCC) は , 不要なフラグ変化を抑止するために
用います。
各種フラグを変化させる命令文の前に , プリフィックスコード (NCC) を設定すると , 命
令の実行に伴うフラグ変化を抑止できます。抑止されるフラグは次のものです。
• スティッキィビットフラグ (CCR: T)
• ネガティブフラグ (CCR: N)
• ゼロフラグ (CCR: Z)
• オーバフローフラグ (CCR: V)
• キャリーフラグ (CCR: C)
ただし , 表 3.4-5 に示す命令に対しては注意が必要です。
表 3.4-5 フラグ変化抑止プリフィックス (NCC) の使用時に注意すべき命令
命令の種類
56
命 令
MOVSW
SCWEQ
FILSW
説 明
ストリング命令
MOVS
SCEQ
FILS
フラグ変更命令
AND
OR
CCR,#imm8
CCR,#imm8
フラグ変化抑止プリフィックスコードの
有無にかかわらず , コンディションコー
ドレジスタ (CCR) は命令文の実行によっ
て変化します。
フラグ変化抑止プリフィックスコードの
効果は , 次の命令までおよびます。
PS 復帰命令
POPW
PS
フラグ変化抑止プリフィックスコードの
有無にかかわらず , コンディションコー
ドレジスタ (CCR) は命令文の実行によっ
て変化します。
フラグ変化抑止プリフィックスコードの
効果は , 次の命令までおよびます。
ILM 設定命令
MOV
ILM,#imm8
フラグ変化抑止プリフィックスコードの
効果が , 次の命令までおよびます。
割込み命令
割込み復帰命令
INT #vct8
INT
addr16
RETI
INT9
INTP
addr24
フラグ変化抑止プリフィックスコードの
有無にかかわらず , コンディションコー
ドレジスタ (CCR) は命令文の実行によっ
て変化します。
コンテキスト
スイッチ命令
JCTX
@A
ストリング命令に対しては , フラグ変化
抑止プリフィックスコードを付加しない
でください。
フラグ変化抑止プリフィックスコードの
有無にかかわらず , コンディションコー
ドレジスタ (CCR) は命令文の実行によっ
て変化します。
第 3 章 CPU の機能
3.4.4
プリフィックスコードに関する制約
プリフィックスコードを使用する場合 , 次のような制約があります。
• プリフィックスコードや割込み抑止命令の実行中には , 割込み要求を受け付けま
せん。
• 割込み抑止命令文の前にプリフィックスコードを挿入した場合 , プリフィックス
コードの効果が遅延します。
• 競合するプリフィックスコードが連続した場合 , 最後のプリフィックスコードが
有効になります。
■ プリフィックスコードと割込み抑止命令
割込み抑止命令とプリフィックスコードには , 次のような制約があります。
表 3.4-6 プリフィックスコードと割込み抑止命令
プリフィックス
コード
PCB
DTB
ADB
SPB
CMR
NCC
割込み要求を受け付けな
い命令
割込み抑止命令 ( プリフィックスコードの
効果を遅延させる命令 )
MOV
OR
AND
POPW
ILM,#imm8
CCR,#imm8
CCR,#imm8
PS
● 割込みの抑止
プリフィックスコードや割込み抑止命令の実行中は,割込み要求が発生しても受け付け
られません。プリフィックスコードや割込み抑止命令実行後 , ほかの命令が実行される
と , 割込み処理が行われます。
図 3.4-1 割込みの抑止
割込み抑止命令
・・・・・・・・・・・・・・・
割込み要求発生
(a)
・・・
割込み受付け (a)普通の命令
57
第 3 章 CPU の機能
● プリフィックスコードの効果遅延
割込み抑止命令の前にプリフィックスコードを挿入した場合,プリフィックスコードの
効果は , 割込み抑止命令の次の命令に対して有効となります。
図 3.4-2 割込み抑止命令とプリフィックスコード
割込み抑止命令
MOV A,FFH
NCC
・・・・
MOV ILM,#imm8
ADD A,01H
CCR:XXX10XXB
CCR:XXX10XXB
NCCによりCCRは変化しません
■ プリフィックスコードの連続
競合するプリフィックスコード (PCB, ADB, DTB, SPB) が連続している場合 , 最後のプ
リフィックスコードが有効になります。
図 3.4-3 プリフィックスコードの連続
プリフィックスコード
・・・
ADB
DTB
PCB
ADD A,01H
・・・
プリフィックスコードは
PCBが有効になります
58
第 3 章 CPU の機能
3.5
割込み
F2MC-16LX にはイベントなどが発生したとき , 現在実行中の処理を中断して , 別に
定義したプログラムへ制御を移す 4 つの割込み機能があります。
• ハードウェア割込み
• ソフトウェア割込み
• 拡張インテリジェント I/O サービス (EI2OS) による割込み
• 例外処理
■ 割込みの種類と機能
● ハードウェア割込み
周辺機能からの割込み要求に対して,ユーザの定義した割込み処理用プログラムへ制御
を移行します。
● ソフトウェア割込み
ソフトウェア割込み専用の命令 (INT 命令など ) の実行によって , ユーザの定義した割
込み処理用プログラムへ制御を移行します。
● 拡張インテリジェント I/O サービス (EI2OS) による割込み
拡張インテリジェント I/O サービス (EI2OS) は周辺機能とメモリ間の自動データ転送機
能です。EI2OS の起動時の設定プログラムと終了プログラムを作成するだけで , データ
転送を行うことができます。データ転送処理を終了すると , 自動的に割込み処理プログ
ラムを実行します。
拡張インテリジェント I/O サービス (EI2OS) による割込みは , 上記のハードウェア割込
みの一種です。
● 例外処理
例外処理は , 命令間で例外事項 ( 未定義命令の実行 ) の発生が検出された場合に , 通常
処理を中断して行われます。上記のソフトウェア割込み命令の "INT10" と等価です。
59
第 3 章 CPU の機能
■ 割込み動作
割込みの起動および復帰処理を図 3.5-1 に示します。
図 3.5-1 割込み動作の概略フロー
START
メインプログラム
有効な割込み要求
があるか?
ストリング系*
命令実行中
YES
割込み起動/復帰処理
NO
YES
EI2OSを起動する?
次の命令の取込みと
デコード
EI2OS
NO
YES
INT命令か?
NO
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタ退避
ハードウェア割込み
受付け禁止(I=0)
ハードウェア
割込み
YES
指定回数終了か?
または周辺機能からの
終了要求があるか?
システムスタックへ
専用レジスタ退避
CPU割込み処理レベル
(ILM)更新
YES
RETI命令か?
NO
通常命令実行
NO
割込み復帰
割込みベクタを
処理
読み出してPC,PCB
を更新し,割込み処理
へ分岐
システムスタックから
専用レジスタが復帰し,
割込み処理を呼び出す前
の処理へ復帰
ストリング系*
命令の繰返し完了か?
YES
PC更新で次命令へ
ポインタ移動
*:ストリング系命令の実行中は,1ステップごとに割込み判定を行います。
60
NO
第 3 章 CPU の機能
割込み要因と割込みベクタ
3.5.1
F2MC-16LX には , 256 種類の割込み要因に対応するベクタテーブルが用意されてい
ます。
■ 割込みベクタ
割込み処理の際に参照される割込みベクタテーブルは , メモリ領域の最上位アドレス
("FFFC00H" ∼ "FFFFFFH") に割り当てられています。割込みベクタは , 拡張インテリ
ジェント I/O サービス (El2OS), 例外処理 , ハードウェアおよびソフトウェア割込みで ,
同じ領域を共有しています。
• ソフトウェア割込みは , 割込み (INT0 ∼ INT255) を使用します。
• ハードウェア割込みでは , 各周辺機能に対し , 割込みベクタと割込み制御レジスタ
(ICR) が固定されています。
割込み番号と割込みベクタの割当てを表 3.5-1 に示します。
表 3.5-1 割込みベクタ一覧表
ソフトウェア
割込み命令
ベクタ
アドレス L
ベクタ
アドレス M
ベクタア
ドレス H
モード
データ
割込み
No.
ハードウェア割込み
INT0
FFFFFCH
FFFFFDH
FFFFFEH
未使用
#0
なし
:
:
:
:
:
:
:
INT7
FFFFE0H
FFFFE1H
FFFFE2H
未使用
#7
なし
INT8
FFFFDCH
FFFFDDH
FFFFDEH
FFFFDFH
#8
(RESET ベクタ )
INT9
FFFFD8H
FFFFD9H
FFFFDAH
未使用
#9
なし
INT10
FFFFD4H
FFFFD5H
FFFFD6H
未使用
#10
<例外処理>
INT11
FFFFD0H
FFFFD1H
FFFFD2H
未使用
#11
周辺機能の割込み #0
INT12
FFFFCCH
FFFFCDH
FFFFCEH
未使用
#12
周辺機能の割込み #1
INT13
FFFFC8H
FFFFC9H
FFFFCAH
未使用
#13
周辺機能の割込み #2
INT14
FFFFC4H
FFFFC5H
FFFFC6H
未使用
#14
周辺機能の割込み #3
:
:
:
:
:
:
:
INT254
FFFC04H
FFFC05H
FFFC06H
未使用
#254
なし
INT255
FFFC00H
FFFC01H
FFFC02H
未使用
#255
なし
<参考>
使われない割込みベクタは , 例外処理などのアドレスに設定することを推奨します。
61
第 3 章 CPU の機能
■ 割込み要因と割込みベクタ・割込み制御レジスタ
ソフトウェア割込みを除く割込み要因 , 割込みベクタ , 割込み制御レジスタの関係を表
3.5-2 に示します。
表 3.5-2 割込み要因と割込みベクタ・割込み制御レジスタ (1 / 2)
割込み要因
El2OS
対応
割込みベクタ
割込み制御レジスタ
優先度 *4
番号
アドレス
ICR
アドレス
リセット
×
#08
08H
FFFFDCH
−
−
高い
INT9 命令
×
#09
09H
FFFFD8H
−
−
↑
例外処理
×
#10
0AH
FFFFD4H
−
−
CAN コントローラ受信完了 (RX)
×
#11
0BH
FFFFD0H
CAN コントローラ送信完了
(TX)/
ノードステータス遷移 (NS)
ICR00
#12
0CH
FFFFCCH
0000B0H*1
×
予約
×
#13
0DH
FFFFC8H
ICR01
0000B1H
予約
×
#14
0EH
FFFFC4H
CAN ウェイクアップ
△
#15
0FH
FFFFC0H
ICR02
×
10H
FFFFBCH
0000B2H*3
タイムベースタイマ
#16
16 ビットリロードタイマ 0
△
#17
11H
FFFFB8H
ICR03
0000B3H*1
ICR04
0000B4H
ICR05
0000B5H
ICR06
0000B6H*1
ICR07
0000B7H*2
ICR08
0000B8H*1
ICR09
0000B9H
8/10 ビット A/D コンバータ
△
#18
12H
FFFFB4H
16 ビットフリーランタイマ
オーバフロー
△
#19
13H
FFFFB0H
予約
×
#20
14H
FFFFACH
予約
×
#21
15H
FFFFA8H
PPG タイマ ch.0, ch.1
アンダフロー
×
#22
16H
FFFFA4H
インプットキャプチャ 0 取込み
△
#23
17H
FFFFA0H
外部割込み (INT4/INT5)
△
#24
18H
FFFF9CH
インプットキャプチャ 1 取込み
△
#25
19H
FFFF98H
PPG タイマ ch.2, ch.3
アンダフロー
×
#26
1AH
FFFF94H
外部割込み (INT6/INT7)
△
#27
1BH
FFFF90H
時計タイマ
△
#28
1CH
FFFF8CH
予約
×
#29
1DH
FFFF88H
×
#30
1EH
FFFF84H
インプットキャプチャ 2 取込み
インプットキャプチャ 3 取込み
62
第 3 章 CPU の機能
表 3.5-2 割込み要因と割込みベクタ・割込み制御レジスタ (2 / 2)
割込み要因
El2OS
対応
割込みベクタ
優先度 *4
番号
アドレス
予約
×
#31
1FH
FFFF80H
予約
×
#32
20H
FFFF7CH
予約
×
#33
21H
FFFF78H
予約
×
#34
22H
FFFF74H
予約
×
#35
23H
FFFF70H
16 ビットリロードタイマ 1
○
#36
24H
FFFF6CH
UART1 受信
◎
#37
25H
FFFF68H
UART1 送信
△
#38
26H
FFFF64H
UART0 受信
◎
#39
27H
FFFF60H
UART0 送信
△
#40
28H
FFFF5CH
フラッシュメモリ
×
#41
29H
FFFF58H
遅延割込み発生モジュール
×
割込み制御レジスタ
#42
2AH
FFFF54H
ICR
アドレス
ICR10
0000BAH
ICR11
0000BBH
ICR12
0000BCH
ICR13
0000BDH*1
ICR14
0000BEH
ICR15
0000BFH*1
↓
低い
○ : 使用可能
× : 使用不可
◎ : 使用可能 , EI2OS 停止機能付
△ : ICR を共有する割込み要因を使用しないとき使用可能
* 1: • ICR レジスタを共用している周辺機能は , 割込みレベルが同一になります。
• ICRレジスタを共用している周辺機能で拡張インテリジェントI/Oサービスを使用する場合は
, どちらか一方しか利用できません。
• ICR レジスタを共用している周辺機能の場合 , 片方で拡張インテリジェント I/O サービスを指
定すると , もう一方での割込みの使用はできなくなります。
* 2: インプットキャプチャ 1 だけ EI2OS に対応しています。PPG は EI2OS に対応していませんの
で , インプットキャプチャ 1 で EI2OS を使用する場合には , PPG を割込み禁止にしてくださ
い。
* 3: CAN ウェイクアップだけ EI2OS に対応しています。タイムベースタイマは EI2OS に対応して
いませんので , CAN ウェイクアップで EI2OS を使用する場合には , タイムベースタイマを割
込み禁止にしてください。
* 4: 同時に同じレベルの割込みが発生した場合の優先度です。
63
第 3 章 CPU の機能
3.5.2
割込み制御レジスタと周辺機能
割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込みコントローラ内にあり , 割込み機
能を持つすべての周辺機能に対応します。割込みと拡張インテリジェント I/O サー
ビス (EI2OS) を制御をします。
■ 割込み制御レジスタ一覧
割込み制御レジスタと対応する周辺機能の一覧を表 3.5-3 に示します。
表 3.5-3 割込み制御レジスタ一覧
アドレス
64
レジスタ
略称
対応する周辺機能
0000B0H
割込み制御レジスタ 00
ICR00
CAN コントローラ
0000B1H
割込み制御レジスタ 01
ICR01
予約
0000B2H
割込み制御レジスタ 02
ICR02
CAN ウェイクアップ
タイムベースタイマ
0000B3H
割込み制御レジスタ 03
ICR03
16 ビットリロードタイマ 0
A/D コンバータ
0000B4H
割込み制御レジスタ 04
ICR04
16 ビットフリーランタイマオーバ
フロー
0000B5H
割込み制御レジスタ 05
ICR05
PPG0/1
0000B6H
割込み制御レジスタ 06
ICR06
インプットキャプチャ 0
外部割込み INT4/INT5
0000B7H
割込み制御レジスタ 07
ICR07
インプットキャプチャ 1
PPG2/3
0000B8H
割込み制御レジスタ 08
ICR08
外部割込み INT6/INT7
時計タイマ
0000B9H
割込み制御レジスタ 09
ICR09
インプットキャプチャ 2/3
0000BAH
割込み制御レジスタ 10
ICR10
予約
0000BBH
割込み制御レジスタ 11
ICR11
予約
0000BCH
割込み制御レジスタ 12
ICR12
16 ビットリロードタイマ 1
0000BDH
割込み制御レジスタ 13
ICR13
UART1
0000BEH
割込み制御レジスタ 14
ICR14
UART0
0000BFH
割込み制御レジスタ 15
ICR15
フラッシュメモリ
遅延割込み
第 3 章 CPU の機能
割込み制御レジスタ (ICR) には , それぞれ次に示す 4 つの機能があります。
割込み制御レジスタ (ICR) は , 書込み時と読出し時で一部機能が異なります。
• 対応する周辺機能の割込みレベルの設定
• 対応する周辺機能の割込みを通常割込みにするか , 拡張インテリジェント I/O サー
ビスにするかの選択
• 拡張インテリジェント I/O サービス (EI2OS) のチャネルの選択
• 拡張インテリジェント I/O サービス (EI2OS) の終了状態の表示
<注意事項>
割込み制御レジスタ (ICR) に対するリードモディファイライト系命令でのアクセス
は , 誤動作を引き起こしますので行わないでください。
65
第 3 章 CPU の機能
割込み制御レジスタ (ICR00 ∼ ICR15)
3.5.3
割込み制御レジスタの機能を以下に示します。
■ 割込み制御レジスタ (ICR00 ∼ ICR15)
割込み制御レジスタは書込みと読出しの場合では , 一部の機能が異なります。
図 3.5-2 割込み制御レジスタ (ICR00 ∼ ICR15) 書込み時の機能
書込み時
7
6
5
4
W
W
W
W
3
2
1
0
リセット値
00000111B
R/W R/W
R/W R/W
bit2 bit1 bit0
IL2 IL1 IL0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
割込みレベル設定ビット
割込みレベル0(最強)
割込みレベル7(割込みなし)
bit3
ISE
El2OS許可ビット
0
割込み発生時に通常の割込み処理を起動
1
割込み発生時にEl2OSを起動
bit7 bit6 bit5 bit4
ICS3 ICS2 ICS1 ICS0
R/W
W
66
:リード・ライト
:ライトオンリ
:リセット値
可能
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
El2OSチャネル選択ビット
チャネル
ディスクリプタアドレス
0
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
000100H
000108H
000110H
000118H
000120H
000128H
000130H
000138H
000140H
000148H
000150H
000158H
000160H
000168H
000170H
000178H
第 3 章 CPU の機能
図 3.5-3 割込み制御レジスタ (ICR00 ∼ ICR15) 読出し時の機能
読出し時
7
6
5
4
3
2
1
0
リセット値
XX000111B
-
-
R
R
R/W R/W R/W R/W
bit2 bit1 bit0
IL2 IL1 IL0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
割込みレベル設定ビット
割込みレベル0(最強)
割込みレベル7(割込みなし)
bit3
ISE
El2OS許可ビット
0
割込み発生時に通常の割込み処理を起動
1
割込み発生時にEl2OSを起動
bit5 bit4
R/W
W
-
X
:リード・ライト 可能
:ライトオンリ
:未定義
:不定
:リセット値
S1
0
0
1
1
S0
0
1
0
1
El2OSステータスビット
El OS動作中または非起動時
カウント終了による停止状態
予約
周辺機器からの要求による停止状態
2
67
第 3 章 CPU の機能
3.5.4
割込み制御レジスタの機能
割込み制御レジスタ (ICR00 ∼ ICR15) は , 次に示す 4 つの機能を持つビットで構成
されています。
• 割込みレベル設定ビット (IL2 ∼ IL0)
• 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE)
• 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ∼ ICS0)
• 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1 ∼ S0)
■ 割込み制御レジスタ (ICR) のビット構成
割込み制御レジスタ (ICR) のビット構成は次のとおりです。
図 3.5-4 割込み制御レジスタ (ICR) の構成
割込み制御レジスタ(ICR)書込み時の構成
bit7 6
5
4
3
ICS3 ICS2 ICS1 ICS0 ISE
W
2
1
IL2 IL1
bit0
IL0
W
W
W
W
W
W
W
割込み制御レジスタ(ICR)読出し時の構成
bit7 6
5
4
3
2
1
bit0
-
-
S1
S0
ISE
-
-
R
R
R
IL2 IL1
R
R
IL0
リセット値
00000111B
リセット値
XX000111B
R
R :リードオンリ
W :ライトオンリ
- :未定義
<参考>
68
• チャネル選択ビット (ICR: ICS3 ∼ 0) の設定は , 拡張インテリジェント I/O サー
ビス (EI2OS) を起動する場合にのみ有効となります。EI2OS を起動する場合は
EI2OS 許可ビット (ICR: ISE) に "1" を設定し , 起動しない場合は EI2OS 許可ビッ
トに "0" を設定してください。
• チャネル選択ビット (ICR: ICS3 ∼ 0) は書込み時のみ , EI2OS ステータスビット
(ICR: S1, S0) は読出し時のみ , それぞれ有効です。
第 3 章 CPU の機能
■ 割込み制御レジスタの機能
● 割込みレベル設定ビット (IL2 ∼ IL0)
対応する周辺機能の割込みレベルを設定します。リセットした場合にはレベル 7(IL2 ∼
0=111B: 割込みなし ) にセットされます。
割込みレベル設定ビットと各割込みレベルとの関係を表 3.5-4 に示します。
表 3.5-4 割込みレベル設定ビットと割込みレベルの対応
IL2
IL1
IL0
割込みレベル
0
0
0
0 ( 最強割込み )
0
0
1
↑
0
1
0
0
1
1
1
0
0
1
0
1
↓
1
1
0
6 ( 最弱割込み )
1
1
1
7 ( 割込みなし )
● 拡張インテリジェント I/O サービス (EI2OS) 許可ビット (ISE)
ISE ビットに "1" を設定した場合に割込みが発生すると EI2OS が起動され , "0" を設定
した場合に割込みが発生すると通常の割込み処理が起動されます。EI2OS の終了条件
が成立した場合 ( ステータスビット S1, S0 が "00B" 以外 ) は , ISE ビットはクリアされ
ます。対応する周辺機能に EI2OS の機能がない場合は , プログラムによって "0" を設定
する必要があります。ISE ビットはリセットした場合には "0" がセットされます。
● 拡張インテリジェント I/O サービス (EI2OS) チャネル選択ビット (ICS3 ∼ ICS0)
EI2OS のチャネルを設定します。チャネル選択ビット (ICR: ICS3 ∼ 0) の設定値によっ
て , EI2OS ディスクリプタのアドレスが設定されます。リセットした場合には "0000B"
がセットされます。
EI2OS チャネル選択ビットとディスクリプタアドレスの対応を表 3.5-5 に示します。
表 3.5-5 EI2OS チャネル選択ビットとディスクリプタアドレスの対応 (1 / 2)
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
69
第 3 章 CPU の機能
表 3.5-5 EI2OS チャネル選択ビットとディスクリプタアドレスの対応 (2 / 2)
ICS3
ICS2
ICS1
ICS0
セレクトされるチャネル
ディスクリプタアドレス
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
● 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1, S0)
EI2OS 終了した際に S1, S0 ビットを読み出すと , 動作状態や終了状態を確認することが
できます。リセットした場合には "00B" がセットされます。
EI2OS ステータスビット (ICR: S1, S0)とEI2OS ステータスの関係を表 3.5-6 に示します。
表 3.5-6 EI2OS ステータスビットと EI2OS ステータスの関係
70
S1
S0
0
0
EI2OS 動作中あるいは非起動時
0
1
カウント終了による停止状態
1
0
予約
1
1
周辺機能からの要求による停止状態
EI2OS ステータス
第 3 章 CPU の機能
3.5.5
ハードウェア割込み
ハードウェア割込みは , 周辺機能からの割込み要求に対応して , 実行中のプログラム
処理を一時中断し , ユーザが定義した割込み処理用プログラムに制御を移行します。
拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ ハードウェア割込み
● ハードウェア割込みの機能
ハードウェア割込みでは , 周辺機能からの割込み要求の割込みレベル (IR: IL) と , 割込
みレベルマスクレジスタ (PS: ILM) が比較され , また割込み許可フラグ (CCR: I) の状態
が参照され , 割込みが受け付けられるか判定が行われます。
ハードウェア割込みが受け付けられると , 自動的に CPU 内部のレジスタ類はシステム
スタックへ退避され,受け付けた割込みの割込みレベルを割込みレベルマスクレジスタ
(ILM) に格納した後 , 対応する割込みベクタへ分岐します。
● 多重割込み
ハードウェア割込みは多重起動できます。
● 拡張インテリジェント I/O サービス (EI2OS)
EI2OS 機能が終了すると , 通常の割込み処理が発生します。EI2OS は多重に起動される
ことはなく , EI2OS 処理中は , ほかの割込み要求およびほかの EI2OS 要求はすべて保留
されます。
● 外部割込み
外部割込み ( ウェイクアップ割込みを含む ) は , 周辺機能 ( 割込み要求検出回路 ) を通
じて , ハードウェア割込みとして受け付けられます。
● 割込みベクタ
割込み処理中に参照される割込みベクタテーブルは , メモリの "FFFC00H" ∼ "FFFFFFH"
に配置されていて , ソフトウェア割込みと共用されています。
71
第 3 章 CPU の機能
■ ハードウェア割込みの構造
ハードウェア割込みに関連する機構は , 次の 4 つの部分に分かれます。
ハードウェア割込みを起動する場合は , あらかじめプログラムでこの 4 カ所を設定する
必要があります。
表 3.5-7 ハードウェア割込みに関連する機構
ハードウェア割込みに関する機構
周辺機能
割込み許可ビット , 割込み要求
ビット
割込み
コントローラ
CPU
メモリ上の
"FFFC00H" ∼
"FFFFFFH"
機 能
周辺機能からの割込み要求の制御
割込み制御レジスタ (ICR)
割込みレベルの設定および EI2OS
の制御
割込み許可フラグ (I)
割込み許可状態の識別
割込みレベルマスクレジスタ
(ILM)
要求割込みレベルと現割込み
レベルの比較
マイクロコード
割込みルーチンの実行
割込みベクタテーブル
割込み処理時の分岐先のアドレス
を格納
■ ハードウェアの割込み抑止
ハードウェア割込みは , 以下の条件において , 割込み受付けが抑止されます。
● I/O 領域の周辺機能制御レジスタへの書込み中のハードウェア割込み抑止
周辺機能制御レジスタへの書込み中はハードウェア割込みは受け付けられません。こ
れは各リソースの割込み制御レジスタ関係の書換え中に発生した割込み要求に対して,
CPU が割込み関係で誤動作を起こさないようにするためです。
周辺機能制御レジスタへの書込み中のハードウェア割込み動作について図 3.5-5 に示
します。
図 3.5-5 周辺機能制御レジスタへの書込み中のハードウェア割込み要求
周辺機能制御レジスタへの書込み命令
・・・・・
MOV A,#08
MOV io,A
ここで割込み
要求発生
72
MOV A,2000H
割込み処理に
移行しない
割込み処理
割込み処理に
移行する
第 3 章 CPU の機能
● 割込み抑止命令のハードウェア割込み抑止
ハードウェア割込み抑止命令を表 3.5-8 に示します。
ハードウェア割込み抑止命令実行中にハードウェア割込みが発生した場合は , ハード
ウェア割込み抑止命令処理後 , ほかの命令が実行された後に割込み処理が行われます。
表 3.5-8 ハードウェア割込み抑止命令
プリフィックス
コード
割込み要求を受け付け
ない命令
PCB
DTB
ADB
SPB
CMR
NCC
割込み抑止命令
MOV
ILM,#imm8
OR
CCR,#imm8
AND
CCR,#imm8
POPW PS
● ソフトウェア割込み実行中のハードウェア割込み抑止
ソフトウェア割込みを起動した場合は , 割込み許可フラグ (CCR: I) は "0" にクリアされ
るため , 割込み禁止になります。
73
第 3 章 CPU の機能
3.5.6
ハードウェア割込みの動作
ハードウェア割込み要求発生から , 割込み処理完了までの動作について説明します。
■ ハードウェア割込みの起動
● 周辺機能の動作 ( 割込み要求の発生 )
ハードウェア割込み要求機能を持つ周辺機能には , 割込みの要求発生を示す「割込み要
求フラグ」と , 割込み要求の許可 / 禁止を選択する「割込み許可フラグ」が備わってい
ます。割込み要求フラグは周辺機能固有のイベントの発生によりセットされ , 割込み許
可フラグが「許可」の場合 , 割込みコントローラへ割込み要求を発生します。
● 割込みコントローラの動作 ( 割込み要求の制御 )
割込みコントローラは , 同時に発生した割込み要求の各割込みレベル (ICR: IL2 ∼ 0) を
比較し , 最も強いレベルの要求 (IL 設定値の最も小さいもの ) を採択して CPU に通知
します。同一レベルの要求が複数あった場合には , 割込み番号の小さい要求が優先され
ます。
● CPU の動作 ( 割込み要求の受付けと割込み処理 )
CPU は受け取った割込みレベル (ICR: IL2 ∼ 0) と割込みレベルマスクレジスタ (ILM)
を比較し , 割込みレベル (IL) が割込みレベルマスクレジスタ (ILM) の値よりも小さく ,
なおかつ割込みが許可 (CCR: I=1) されている場合に , 現在実行中の命令終了後 , 割込み
処理マイクロコードを発生します。
割込み処理マイクロコードの先頭で , El2OS 許可ビット (ICR: ISE) が参照され , "0" に設
定していた場合は通常の割込み処理が実行され , "1" に設定していた場合には EI2OS が
起動されます。
割込み処理では , 最初にシステムスタック (SSB と SSP の示すシステムスタック空間 )
へ専用レジスタ (A, DPR, ADB, DTB , PCB, PC, PS) の内容が退避されます。
次に , 発生した割込みに対応するベクタテーブルのアドレスがプログラムカウンタ
(PCB, PC) にロードされ , 割込みレベルマスクレジスタ (ILM) の更新 , スタックフラグ
(CCR: S) の "1" へのセットが行われます。
■ ハードウェア割込みからの復帰
割込み処理プログラムにおいて,割込み要因となった周辺機能の割込み要求フラグをク
リアし , RETI 命令を実行すると , システムスタックに退避した専用レジスタのデータ
が元に戻され , 割込み処理へ移行する前に実行していた処理に復帰します。
割込み要求フラグをクリアすることによって,周辺機能が割込みコントローラへ出力し
ていた割込み要求が取り下げられます。
74
第 3 章 CPU の機能
■ ハードウェア割込みの動作
ハードウェア割込みの発生から割込み処理完了までの動作を図 3.5-6 に示します。
図 3.5-6 ハードウェア割込みの動作
内部バス
(7)
PS
PS,PC・・
マイクロコード
IR
(6)
F2 MC-16LXCPU
I
ILM
チェック
(5)
比較器
(4)
(3)
ほかの周辺機能
・
・
・
割込み要求を発生した周辺機能
許可FF
(8)
要因FF
(1)
AND
レベル
比較器
割込み
レベルIL
(2)
割込みコントローラ
RAM
IL
PS
I
ILM
IR
FF
:割込み制御レジスタ(ICR)の割込みレベル設定ビット
:プロセッサステータス
:割込み許可フラグ
:割込みレベルマスクレジスタ
:インストラクションレジスタ
:フリップフロップ
1. 周辺機能で割込み要求が発生します。
2. 周辺機能内の割込み許可ビットを割込み許可に設定していた場合に , 周辺機能から
割込みコントローラへ割込み要求を出力します。
3. 割込み要求を受け取った割込みコントローラでは , 同時に要求のあった割込みの優
先順位が判定され , 該当する割込み要求に対応する割込みレベル (IL) が CPU に通知
されます。
4. CPU では , 割込みコントローラから要求のあった割込みレベル (IL) と , 割込みレベ
ルマスクレジスタ (ILM) が比較されます。
5. 割込みレベルマスクレジスタ (ILM) より優先順位が高い割込み要求であった場合 ,
割込み許可フラグ (CCR: I) がチェックされます。
6. 割込み許可フラグで割込みが許可 (CCR: I=1) されている場合 , 現在実行中の命令の
処理が終了した後に , 要求された割込みレベル (IL) が割込みレベルマスクレジスタ
(ILM) に設定されます。
7. 専用レジスタの内容が退避され , 割込み処理へ移行します。
8. 割込み処理がプログラムによって , 周辺機能で発生した割込み要求をクリアし , 割
込み復帰命令 (RETI) を実行することで割込み処理が終了します。
75
第 3 章 CPU の機能
ハードウェア割込み使用手順
3.5.7
ハードウェア割込みを使用するには , システムスタック領域 , 周辺機能および割込み
制御レジスタ (ICR) などの設定が必要です。
■ ハードウェア割込み使用手順
ハードウェア割込み使用手順の一例を図 3.5-7 に示します。
図 3.5-7 ハードウェア割込み使用手順
スタート
(1) システムスタック領域の設定
割込み処理プログラム
(2) 周辺機能の割込みの設定
(3) 割込みコントローラ内の
ICRの設定
(4) 周辺機能の動作開始設定
割込み許可ビットを許可
に設定
(5)
スタック処理
割込みベクタへ分岐
(7)
ハードウェア
による処理
PS内のILM,Iの設定
(8)
周辺機能への割込み
に対する処理
(割込み処理の実行)
(9)
割込み要求のクリア
(10) 割込み復帰命令(RETI)
メインプログラム
(6)
割込み要求発生
メインプログラム
1. システムスタック領域の設定を行う。
2. 割込み要求機能を持つ周辺機能の割込みの設定を行う。
3. 割込みコントローラの割込み制御レジスタ (ICR) を設定する。
4. 周辺機能を動作開始状態にし , 割込み許可ビットを「許可」に設定する。
5. 割込みレベルマスクレジスタ (ILM) と割込み許可フラグ (CCR: I) を割込みを受け付
けられるように設定 (CCR: I=1) する。
6. 周辺機能の割込み発生で , ハードウェア割込み要求が発生する。
7. 割込みコントローラで , 専用レジスタの退避が行われ , 割込み処理に移行する。
8. 割込み処理で , 割込み発生に対するプログラムを実行する。
9. 周辺機能の割込み要求を解除する。
10.割込み復帰命令 (RETI) を実行し , 移行前のプログラムに復帰する。
76
第 3 章 CPU の機能
3.5.8
多重割込み
ハードウェア割込みでは , 周辺機能からの複数の割込み要求に対して , 割込みレベル
設定ビット (ICR: IL2 ∼ IL0) に異なる割込みレベルを設定することにより , 多重割込
みを実現できます。ただし , 拡張インテリジェント I/O サービスの多重起動は行えま
せん。
■ 多重割込み
● 多重割込み動作
割込み処理実行中に,現在処理されている割込みレベルより強いレベルの割込み要求が
発生した場合は , 現在の割込み処理を中断し , 発生された強いレベルの割込み要求を受
け付けます。強いレベルの割込み処理が終了すると , 中断されていた割込み処理が再開
されます。
割込みレベル (IL) は 0 ∼ 7 まで設定できますが , レベル 7 に設定した割込み要求は常
に受け付けられません。
割込み処理実行中に,実行中の割込みと同等かより弱いレベルの割込み要求が発生した
場合 , 割込み許可フラグ (CCR: I) か割込みレベルマスクレジスタ (ILM) の設定を変更
しないかぎり , 現在の割込み処理から復帰するまで新しい割込み要求は保留されます。
また , 割込み処理で割込み許可フラグ (CCR: I) を割込み禁止 (CCR: I=0) に設定するか ,
割込みレベルマスクレジスタ (ILM) を割込み禁止 (ILM=000) に設定すれば , 割込み処
理中に発生する多重割込みの起動を一時的に禁止することができます。
<注意事項>
拡張インテリジェント I/O サービス (EI2OS) は多重起動できません。EI2OS の処理
中は , ほかの割込み要求およびほかの EI2OS の要求はすべて保留されます。
77
第 3 章 CPU の機能
● 多重割込みの例
多重割込み処理の例として, A/Dコンバータの割込みよりタイマ割込みを優先させる場
合を想定し , A/D コンバータの割込みレベルを 2 に設定し , タイマ割込みレベルを 1 に
設定します。A/D コンバータの割込み処理中にタイマ割込みが発生した場合の処理を
図 3.5-8 に示します。
図 3.5-8 多重割込みの例
メインプログラム
(ILM=111B)
A/D割込み処理(ILM=010B)
割込みレベル2
タイマ割込み処理(ILM="001B")
(IL=010B)
割込みの設定 (1)
割込みレベル1
(IL=001B)
(3) タイマ割込み発生
A/D割込み発生 (2)
(4)タイマ割込み処理
中断
再開
メイン処理再開 (8)
(6)A/D割込み処理
(5)タイマ割込み復帰
(7)A/D割込み復帰
• A/D コンバータ割込み処理開始時に , 割込みレベルマスクレジスタ (ILM) は自動的
に A/D コンバータの割込みレベル (ICR: IL2 ∼ IL0) の値 ( 例では 2) に設定されます。
この状態で割込みレベルが 1 または 0 の割込み要求が発生すると , 発生した割込み
処理が優先されます。
• 割込み処理が終了して割込み処理復帰命令 (RETI) を実行すると , システムスタック
内に退避した専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の値が各レジスタに戻
され , 割込みレベルマスクレジスタ (ILM) は処理中断前の値に戻ります。
78
第 3 章 CPU の機能
3.5.9
ソフトウェア割込み
ソフトウェア割込みは , ソフトウェア割込み命令 (INT 命令 ) を実行により , 実行中
のプログラムからユーザの定義した割込み処理用プログラムへ制御を移す機能です。
ソフトウェア割込みの実行中はハードウェア割込みの要求は保留されます。
■ ソフトウェア割込みの起動と動作
● ソフトウェア割込みの起動
ソフトウェア割込みの起動は , INT 命令の実行により行われます。ソフトウェア割込み
には割込み要求フラグおよび割込み許可フラグはなく, INT命令が実行されると直ちに
割込み要求が発生します。
● ハードウェア割込みの抑止
INT 命令による割込みには割込みレベルは存在しないので , 割込みレベルマスクレジス
タ (ILM) は更新されません。INT 命令実行中は , 割込み許可フラグ (CCR: I) は "0" に設
定され , ハードウェア割込みはマスクされます。
ソフトウェア割込み処理中にハードウェア割込みを許可する場合は,ソフトウェア割込
み処理において割込み許可フラグ (CCR: I) を "1" に設定してください。
● ソフトウェア割込みの動作
INT 命令を実行すると , CPU 内のソフトウェア割込み処理用マイクロコードが起動さ
れます。ソフトウェア割込み処理用マイクロコードにより , 専用レジスタの内容はシス
テムスタックに退避され , ハードウェア割込みがマスク (CCR: I=0) された後 , 対応する
割込みベクタテーブルのアドレスへ分岐します。
■ ソフトウェア割込みからの復帰
割込み処理プログラムにおいて , 割込み処理復帰命令 (RETI) を実行すると , システム
スタックに退避された専用レジスタの内容が戻され,割込み処理分岐前に実行していた
処理に復帰します。
<注意事項>
プログラムバンクレジスタ (PCB) が "FFH" の場合 , CALLV 命令のベクタ領域は
INT #vct8 命令のテーブルと重なります。プログラム作成の際には , CALLV 命令と
INT #vct8 命令のアドレスの重複に注意してください。
79
第 3 章 CPU の機能
3.5.10
拡張インテリジェント I/O サービス (EI2OS) による
割込み
拡張インテリジェント I/O サービス (EI2OS) は , 周辺機能 (I/O) とメモリとの間で自
動データ転送を行う機能です。データ転送終了時にハードウェア割込みが発生しま
す。
■ 拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービスは , I/O 領域とメモリ間で自動データ転送を行う機
能です。データ転送終了時には , 終了した要因 ( 終了条件 ) が設定され , 自動的に割込
み処理ルーチンへ分岐します。EI2OS 起動時の設定プログラムと終了のプログラムを
作成するだけで , データ転送を行うことができます。
● 拡張インテリジェント I/O サービス (EI2OS) の利点
割込み処理ルーチンで行っていたデータ転送と比べると , 次の利点があります。
• 転送プログラムを作成する必要がないため , プログラムサイズを小さくできます。
• 転送回数を設定できるので , 不要なデータを転送しなくてすみます。
• バッファアドレスポインタの更新の有無を選択できます。
• I/O アドレスポインタの更新の有無を選択できます。
● 拡張インテリジェント I/O サービス (EI2OS) の終了割込み
EI2OS によるデータ転送が終了すると ,終了条件が El2OS ステータスビット (ICR: S1,S0)
にセットされ自動的に割込み処理へ移行します。
割込み処理プログラム中で , EI2OS ステータスビット (ICR: S1, S0) をチェックすること
によって , EI2OS の終了要因を確認することができます。
● 割込み制御レジスタ (ICR)
割込みコントローラ内にあり , EI2OS の起動 , EI2OS のチャネル設定および EI2OS 終了
時の状態表示を行います。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD)
内蔵 RAM の "000100H" ∼ "00017FH" に配置され , 転送モード , アドレスや転送数 , バッ
ファアドレスを設定する 8 バイトデータです。EI2OS ディスクリプタ (ISD) は 16 チャ
ネル分あり , 割込み制御レジスタ (ICR) によりチャネル番号を設定します。
<注意事項>
80
拡張インテリジェント I/O サービス (EI2OS) 動作中の場合は , CPU は停止します。
第 3 章 CPU の機能
■ 拡張インテリジェント I/O サービス (EI2OS) の動作
EI2OS の動作を図 3.5-9 に示します。
図 3.5-9 拡張インテリジェント I/O サービス (EI2OS) の動作
メモリ空間
IOAに
より
I/O領域
00バンク領域
(5)
CPU
割込み要求
(2)
(3)
ISD
ICSに
より
(3)
BAPに
より
(4)
(1)
割込み制御レジスタ(ICR)
割込みコントローラ
バッファ
DCTによりカウント
ISD:EI2OSディスクリプタ
IOA:I/Oアドレスポイント
BAP:バッファアドレスポインタ
ICS:割込み制御レジスタ(ICR)のEI2OSチャネル選択ビット
DCT:データカウンタ
1. 割込み要求が発生し , EI2OS が起動されます。
2. 割込みコントローラが EI2OS ディスクリプタを選択します。
3. 転送元 / 先のアドレスポインタを EI2OS ディスクリプタから読み出します。
4. 転送元と転送先のアドレスポインタに従ってデータ転送が行われます。
5. 割込み要因は自動的にクリアされます。
81
第 3 章 CPU の機能
3.5.11
拡張インテリジェント I/O サービス (EI2OS) ディスク
リプタ (ISD)
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 内蔵 RAM の
"000100H" ∼ "00017FH" にあり , 8 バイト× 16 チャネルの構成です。
■ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成
EI2OS ディスクリプタ (ISD) は , 8 バイト× 16 チャネルで構成されており , 各 ISD は図
3.5-10 の構造になっています。チャネル番号と ISD のアドレスの対応を , 表 3.5-9 に示
します。
図 3.5-10 EI2OS ディスクリプタ (ISD) の構成
MSB
LSB
データカウンタ上位8bit(DCTH)
H
データカウンタ下位8bit(DCTL)
I/Oアドレスポインタ上位8bit(IOAH)
I/Oアドレスポインタ下位8bit(IOAL)
EI2OSステータスレジスタ(ISCS)
バッファアドレスポインタ上位8bit(BAPH)
バッファアドレスポインタ中位8bit(BAPM)
ISD先頭アドレス
(000100H+8×ICS)
バッファアドレスポインタ下位8bit(BAPL)
ICS:EI2OSチャネル選択ビット(ICR:ICS3~ICS0)
表 3.5-9 EI2OS ディスクリプタ領域 (1 / 2)
82
チャネル
(ICR: ICS3 ∼ ICS0)
ディスクリプタ先頭アドレス
0
000100H
1
000108H
2
000110H
3
000118H
4
000120H
5
000128H
6
000130H
7
000138H
L
第 3 章 CPU の機能
表 3.5-9 EI2OS ディスクリプタ領域 (2 / 2)
チャネル
(ICR: ICS3 ∼ ICS0)
ディスクリプタ先頭アドレス
8
000140H
9
000148H
10
000150H
11
000158H
12
000160H
13
000168H
14
000170H
15
000178H
83
第 3 章 CPU の機能
3.5.12
拡張インテリジェント I/O サービス (EI2OS) ディスク
リプタ (ISD) の各レジスタ
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 次のレジスタ
から構成されています。
• データカウンタ (DCT)
• I/O アドレスポインタ (IOA)
• EI2OS ステータスレジスタ (ISCS)
• バッファアドレスポインタ (BAP)
各レジスタのリセット値は , 不定なのでリセットを行う場合は注意してください。
■ データカウンタ (DCT)
データカウンタ (DCT) は , 16 ビットのレジスタで , 転送データ数に対応したカウンタ
です。各データ転送後に , 1 ずつカウントダウンされます。データカウンタ (DCT) が
"0" になると EI2OS は終了し , 割込み処理へ移行します。
データカウンタ (DCT) のビット構成を図 3.5-11 に示します。
図 3.5-11 データカウンタ (DCT) の構成
DCTL
DCTH
bit15 14
DCT
13
12
11
10
9 bit8 bit7
6
5
4
3
2
1
bit0
B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00
リセット値
XXXXXXXX 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 : 不定
■ I/O アドレスポインタ (IOA)
I/O アドレスポインタ (IOA) は 16 ビットのレジスタで , バッファとデータ転送を行う
00 バンク領域の下位アドレス (A15 ∼ A00) を設定します。上位アドレス (A23 ∼ A16)
はすべて "0" に設定され , "000000H" から "00FFFFH" 番地までの領域をアドレスで設定
できます。
I/O アドレスポインタ (IOA) のビット構成を図 3.5-12 に示します。
図 3.5-12 I/O アドレスポインタ (IOA) の構成
IOAL
IOAH
bit15 14
IOA
13
12
11
10
9 bit8 bit7
6
5
4
3
2
1
bit0
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 : 不定
84
リセット値
XXXXXXXX XXXXXXXXB
第 3 章 CPU の機能
■ 拡張インテリジェント I/O サービス (EI2OS) ステータスレジスタ (ISCS)
EI2OS ステータスレジスタ (ISCS) は , 8 ビットのレジスタで , バッファアドレスポイン
タと I/O アドレスポインタの更新方法や , 転送データ形式 ( バイト / ワード ), 転送方向
を設定します。
EI2OS ステータスレジスタ (ISCS) のビット構成を図 3.5-13 に示します。
図 3.5-13 EI2OS ステータスレジスタ (ISCS) の構成
7
6
5
4
3
2
1
0
リセット値
XXXXXXXXB
R/W R/W R/W
R/W R/W
R/W R/W R/W
bit0
SE
El2OS終了制御ビット
0
周辺機器からの要求により終了しない
1
周辺機器からの要求により終了する
bit1
DIR
データ転送方向指定ビット
0
I/Oアドレスポインタ→バッファアドレスポインタ
1
バッファアドレスポインタ→I/Oアドレスポインタ
bit2
BF
BAP更新/固定選択ビット
0
データ転送後バッファアドレスポインタは更新されます。*1
1
データ転送後バッファアドレスポインタは更新されません。
bit3
BW
0
バイト
1
ワード
転送データ長指定ビット
bit4
IF
IOA更新/固定選択ビット
0
データ転送後I/Oアドレスポインタは更新されます。*2
1
データ転送後I/Oアドレスポインタは更新されません。
bit7 bit6 bit5
予約 予約 予約
R/W
X
*1
*2
0
0
0
予約ビット
必ず"0"を書き込んでください
:リード・ライト 可能
:不定
:バッファアドレスポインタは,下位16ビットだけ変化し,インクリメントのみ可能です。
:I/Oアドレスポインタは,インクリメントのみ可能です。
85
第 3 章 CPU の機能
■ バッファアドレスポインタ (BAP)
バッファアドレスポインタ (BAP) は 24 ビットのレジスタで , I/O 領域とデータ転送を
行う 16M バイトのアドレスを設定します。BAP 更新 / 固定選択ビット (ISCS: BF) を
" 更新あり " (ISCS: BF=0) に設定した場合は , バッファアドレスポインタ (BAP) は下位
16 ビット (BAPM, BAPL) だけ変化し , 上位 8 ビット (BAPH) は変化しません。バッファ
アドレスポインタ (BAP) のビット構成を図 3.5-14 に示します。
図 3.5-14 バッファアドレスポインタ (BAP) の構成
bit23
BAP
bit16 bit15
BAPH
R/W
bit8 bit7
bit0
BAPM
BAPL
R/W
R/W
リセット値
XXXXXXH
R/W: リード・ライト可能
X : 不定 <参考>
• I/O アドレスポインタ (IOA) で設定できる領域は , "000000H" ∼ "00FFFFH" です。
• バッファアドレスポインタ (BAP) で設定できる領域は , "000000H" ∼ "FFFFFFH"
です。
• データカウンタ (DCT) で設定できる最大転送回数は , 65,536 回です。
86
第 3 章 CPU の機能
3.5.13
拡張インテリジェント I/O サービス (EI2OS) の動作
CPU 内部のマイクロコードによる , EI2OS の動作フローを以下に示します。
■ 拡張インテリジェント I/O サービス (EI2OS) の処理手順
図 3.5-15 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
周辺機能より
割込み要求発生
ISE=1
NO
YES
割込み処理
ISD/ISCSリード
周辺機能から
の終了要求あり?
YES
NO
DIR=1?
NO
BF=0?
NO
DCTデクリメント
DCT=00H?
NO
S1, S0に"00B"をセット
:EI2OSディスクリプタス
:EI2OSステータスレジスタ
:IOA更新/固定選択ビット
:転送データ長指定ビット
:BAP更新/固定選択ビット
:データ転送方向指定ビット
:EI2OS終了制御ビット
:データカウンタ
:I/Oアドレスポインタ
:バッファアドレスポインタ
:EI2OS許可ビット(ICR)
:EI2OSステータス(ICR)
YES
IOAに設定したアドレス
(データ転送)
BAPに設定したアドレス
IF=0?
NO
YES
SE=1?
NO
ISD
ISCS
IF
BW
BF
DIR
SE
DCT
IOA
BAP
ISE
S1,S0
BAPに設定したアドレス
(データ転送)
IOAに設定したアドレス
YES
更新値は
BWによる
IOA更新
YES
更新値は
BWによる
BAP更新
(-1)
YES
EI2OS終了処理
S1, S0に"01B"をセット
S1, S0に"11B"をセット
周辺機能割込み要求
のクリア
ISEを"0"にクリア
CPU動作復帰
割込み処理
87
第 3 章 CPU の機能
拡張インテリジェント I/O サービス (EI2OS)
使用手順
3.5.14
拡張インテリジェント I/O サービス (EI2OS) の使用手順を以下に示します。
■ 拡張インテリジェント I/O サービス (EI2OS) 使用手順
図 3.5-16 拡張インテリジェント I/O サービス (EI2OS) 使用手順
ソフトウェアによる処理
ハードウェアによる処理
開 始
システムスタック領域の設定
初 期 設 定
EI2OSディスクリプタの設定
周辺機能の割込みの設定
割込み制御レジスタ(ICR)
の設定
内蔵周辺機能の動作開始
設定と割込み許可ビット
の設定
PS内のILM, Iの設定
ユーザプログラムの実行
(割込み要求)and(ISE=1)
S1, S0=00B
データ転送
NO
指定回数の転送終了or
周辺機能からの終了要求
による割込みへ移行の判定
(割込み処理へ移行)
YES
S1, S0=01B or
S1, S0=11B
拡張インテリジェントI/O
サービスの再設定
(チャネルの切換えなど)
バッファ中のデータの処理
RETI
ISE
:EI2OSの許可ビット(ICR)
S1, S0 :EI2OSステータス(ICR)
88
第 3 章 CPU の機能
3.5.15
拡張インテリジェント I/O サービス (EI2OS)
処理時間
拡張インテリジェント I/O サービス (EI2OS) の処理に必要な時間は次の要因によっ
て変化します。
• EI2OS ステータスレジスタ (ISCS) の設定
• 転送データのデータ長
また , データ転送が終了して , ハードウェア割込みへ移行する時に , 割込みハンドリ
ング時間が必要です。
■ 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 )
● データ転送継続時 (DCT ≠ 0, ISCS: SE=0)
データ転送継続時の EI2OS 処理時間は , EI2OS ステータスレジスタ (ISCS) の設定によっ
て , 表 3.5-10 のようになります。
表 3.5-10 拡張インテリジェント I/O サービス実行時間
El2OS 終了制御ビット (SE) の設定
周辺機能からの終了
要求により終了
IOA 更新 / 固定選択ビット (IF) の設定
BAP アドレス更新 / 固定選択
ビット (BF) の設定
周辺機能からの終了
要求を無視
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
単位 : マシンサイクル (1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当し
ます。)
さらに , EI2OS 実行時の条件によって表 3.5-11 の補正が必要です。
表 3.5-11 EI2OS 実行時間のデータ転送の補正値
内部アクセス
I/O レジスタアドレスポインタ
バッファアドレス
ポインタ
B/ 偶
奇
B/ 偶
0
+2
奇
+2
+4
内部アクセス
B : バイトデータ転送
偶 : 偶数アドレス・ワード転送
奇 : 奇数アドレス・ワード転送
89
第 3 章 CPU の機能
● データカウンタ (DCT) のカウント終了時 (DCT ≠ 0, ISCS: SE=0)
EI2OS によるデータ転送終了時には , ハードウェア割込みが起動するため , 割込みハン
ドリング時間が加算されます。カウント終了時の EI2OS の処理時間は , 次の式で算出
されます。
カウント終了後のEl2OS処理時間時 =データ転送継続時のEl2OS処理時間+(21+6×Z)
マシンサイクル
割込みハンドリング時間
(Z:割込みハンドリング時間の補正値)
割込みハンドリング時間は,スタックポインタに設定されているアドレスによって異な
ります。割込みハンドリング時間の補正値 (Z) を表 3.5-12 に示します。
表 3.5-12 割込みハンドリング時間の補正値 (Z)
スタックポインタで設定されているアドレス
補正値 (Z)
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
● 周辺機能からの終了要求による終了時 (DCT ≠ 0, ISCS=1)
周辺機能からの終了要求で , EI2OS によるデータ転送を転送処理中に終了した場合
(ICR: S1, S0=11B), 割込み処理へ移行します。周辺機能からの終了要求による EI2OS 処
理時間は , 次の式で算出されます。
途中終了時のEl2OS処理時間=36+6×Z
マシンサイクル
(Z:割込みハンドリング時間の補正値)
<参考>
90
1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。
第 3 章 CPU の機能
3.5.16
例外処理割込み
F2MC-16LX では , 未定義命令が実行された場合に例外処理が行われます。
例外処理は , 基本的には割込みと同じものであり , 命令間で例外事項の発生が検出さ
れた場合に , 通常処理を中断して行われます。
例外処理は予想外の動作を行った結果によって発生する処理なので , デバッグ時や緊
急時の復旧ソフトウェアの起動だけに使用してください。
■ 例外処理
● 例外処理の動作
F2MC-16LX では , 命令マップで定義されていない命令コードはすべて未定義命令とし
て扱います。未定義命令を実行した場合 , ソフトウェア割込み命令の "INT # 10" と同等
な処理が行われます。
例外処理では , 割込み処理へ移行する前に , 以下の処理が行われます。
• システムスタックへ各専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の内容が退避
されます。
• 割込み許可フラグ (CCR: I) が "0" にクリアされ , 割込みが禁止されます。
• スタックフラグ (CCR: S) が "1" にセットされます。
スタックへ退避したプログラムカウンタ (PC) の値は , 未定義命令が格納されているア
ドレスです。2 バイト以上の命令コードでは , 未定義であることを識別できたコードが
格納されているアドレスになります。例外処理で , 例外要因の種類を判定する必要があ
る場合は , 退避されたプログラムカウンタ (PC) を使用してください。
● 例外処理からの復帰
プログラムカウンタ (PC) が未定義命令を示している場合に , 例外処理から割込み復帰
命令 (RETI) を実行すると例外処理に戻ります。例外処理から復帰する場合はソフト
ウェアリセットを行うなどの対策をしてください。
91
第 3 章 CPU の機能
3.5.17
割込み処理の開始に要する時間
ハードウェア割込み要求が発生して割込み処理が実行されるまでの間には , 現在実行
中の命令が終了するまでの時間と割込みハンドリング時間が必要です。
■ 割込み処理の開始に要する時間
割込み要求が発生してから割込みが受付けられて,割込み処理が実行されるまでの間に
は , 割込み要求サンプリング待ち時間と割込みハンドリング時間 ( 割込み処理準備に要
する時間 ) が必要です。割込み処理時間を図 3.5-17 に示します。
図 3.5-17 割込み処理時間
通常命令実行
CPUの動作
割込み要求
サンプリング待ち時間
割込み待ち時間
割込みハンドリング
割込み処理
割込みハンドリング時間
(θマシンサイクル)*
割込み要求発生
:命令最終サイクル,ここで割込み要求をサンプルする。
* :1マシンサイクルは,マシンクロック(φ)の1クロック周期に相当します。
● 割込み要求サンプリング待ち時間
割込み要求が発生してから現在実行中の命令が終了するまでの時間です。
割込み要求の発生の有無は,各命令の最後のサイクルで割込み要求をサンプリングして
判断されます。各命令の実行中は CPU は割込み要求を認識することができず , 待ち時
間が発生します。
<参考>
割込み要求サンプリング待ち時間は , 最も実行サイクルの長い POPW RW0, …RW7
命令 (45 マシンサイクル ) 開始直後に割込み要求が発生した場合 , 最大となります。
● 割込みハンドリング時間 (θ マシンサイクル )
CPU は , 割込み要求を受け付けてから , 専用レジスタのシステムスタックへの退避およ
び割込みベクタテーブルアドレスの取込みなどを行うため , θ マシンサイクルの割込み
ハンドリング時間を必要とします。割込みハンドリング時間 (θ) は , 以下の式によって
求められます。
θ=24+6 × Z マシンサイクル (Z: 割込みハンドリング時間の補正値 )
割込みハンドリング時間は,スタックポインタに設定されているアドレスによって異な
ります。割込みハンドリング時間の補正値 (Z) を表 3.5-13 に示します。
92
第 3 章 CPU の機能
表 3.5-13 割込みハンドリング時間の補正値 (Z)
スタックポインタで設定されているアドレス
<参考>
補正値 (Z)
内部 偶数アドレスの場合
0
内部 奇数アドレスの場合
+2
1 マシンサイクルは , マシンクロック (φ) の 1 クロック周期に相当します。
93
第 3 章 CPU の機能
割込み処理のスタック動作
3.5.18
割込みが受け付けられると , 割込み処理に移行する前に , 専用レジスタの内容が自動
的にシステムスタックに退避されます。割込み処理終了時には , 専用レジスタの内容
がシステムスタックから自動的に復元されます。
■ 割込み処理開示のスタック動作
割込みが受け付けられると , CPU は現在の専用レジスタの内容を , 次に示す順番で , 自
動的にシステムスタックに退避させます。
• アキュムレータ (AH, AL)
• ダイレクトページレジスタ (DPR)
• アディショナルデータバンクレジスタ (ADB)
• データバンクレジスタ (DTB)
• プログラムバンクレジスタ (PCB)
• プログラムカウンタ (PC)
• プロセッサステータス (PS)
割込み処理開始時のスタック動作を図 3.5-18 に示します。
図 3.5-18 割込み処理開始時のスタック動作
割込み直前
アドレス
メモリ
00H
08F2H
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
SSB
SSP
08FEH
A
0000H
AH
08FEH
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
PC
PS
803FH
20E0H
下位
アドレス
メモリ
00H
08F2H
E0H
20H
3FH
80H
FFH
00H
00H
01H
FEH
08H
00H
00H
SSB
SSP
08F2H
A
0000H
AH
01H
ADB
00H
DTB
00H
PCB
FFH
803FH
SP
PS
バイト 08FEH
AL
DPR
PC
08FEH
08FFH
割込み直後
20E0H
08FEH
08FFH
上位
更新後
のSP
PS
PC
PCB
DTB
ADB
DPR
AL
AH
SP
バイト
■ 割込み処理復帰時のスタック動作
割込み処理終了時に割込み復帰命令 (RETI) を実行すると , 割込み処理開始時と反対に
専用レジスタ(PS, PC, PCB, DTB, ADB, DPR, AL, AH)の値がスタックから各レジスタに
復帰し , 専用レジスタは割込み開始直前の状態に戻ります。
94
第 3 章 CPU の機能
3.5.19
割込み処理のプログラム例
割込み処理のプログラム例を示します。
■ 割込み処理のプログラム例
● 処理仕様
外部割込み 4 (INT4) を利用した割込みプログラムの一例です。
● コーディング例
DDR2
EQU 000012H
;ポート2方向レジスタ
ENIR
EQU 030H
;割込み/DTP許可レジスタ
EIRR
EQU 031H
;割込み/DTPフラグ
ELVR
EQU 032H
;要求レベル設定レジスタ
ICR00
EQU 0B0H
;割込み制御レジスタ
STACK
SSEG
;スタック
RW
100
STACK_T RW
1
STACK
ENDS
;----------メインプログラム----------------------------------CODE
CSEG
;
START:
MOV RP,#0
;汎用レジスタは先頭バンクを使用
MOV ILM,#07H
;PS内ILMをレベル7に設定
MOV A,#!STACK_T ;システムスタックの設定
MOV SSB,A
MOVW A,#STACK_T
;スタックポインタの設定,
;このときは
MOVW SP,A
;Sフラグ=1のためSSPに
;セットされる
MOV DDR2,#00000000B
;P24/INT4端子を入力に設定
OR
CCR,#40H
;PS内CCRのIフラグをセットして
;割込み許可
MOV I:ICR00,#00H
;割込みレベル0(最強)とする
MOV I:ELVR,#00010000B ;INT4をHレベル要求とする
MOV I:EIRR,#00H
;INT4の割込み要因をクリア
MOV I:ENIR,#10H
;INT4の入力許可
:
LOOP
NOP
;ダミーループ
NOP
NOP
NOP
BRA LOOP
;無条件ジャンプ
95
第 3 章 CPU の機能
;----------割込みプログラム------------------------------------ED_INT1:
MOV I:EIRR,#00H
;INT4の新規受付禁止
NOP
NOP
NOP
NOP
NOP
NOP
RETI
;割込みから復帰
CODE
ENDS
;----------ベクタ設定---------------------------------------VECT
CSEG ABS=0FFH
ORG 0FFD0H
;割込み#11(0BH)にベクタを設定
DSL ED_INT1
ORG 0FFDCH
;リセットベクタ設定
DSL START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END START
■ 拡張インテリジェント I/O サービス (El2OS) のプログラム
● 処理仕様
• INT4 端子に入力される "H" レベルを検出して拡張インテリジェント I/O サービス
(EI2OS) を起動します。
• INT4 端子に "H" レベルが入力されると , EI2OS が起動されポート 2 のデータをメモ
リの "3000H" 番地に転送します。
• 転送データバイト数は 100 バイトで , 100 バイト転送後 , EI2OS 転送終了による割込
みが発生します。
● コーディング例
DDR2
ENIR
EIRR
ELVR
ICR00
BAPL
BAPM
BAPH
ISCS
IOAL
IOAH
DCTL
DCTH
ER0
STACK
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
EQU
SSEG
RW
STACK_T RW
STACK
ENDS
96
000012H
000030H
000031H
000032H
0000B0H
000100H
000101H
000102H
000103H
000104H
000105H
000106H
000107H
EIRR:0
100
1
;ポート2方向レジスタ
;割込み/DTP許可レジスタ
;割込み/DTP要因レジスタ
;要求レベル設定レジスタ
;割込み制御レジスタ
;バッファアドレスポインタ下位
;バッファアドレスポインタ中位
;バッファアドレスポインタ上位
;EI2OSステータス
;I/Oアドレスポインタ下位
;I/Oアドレスポインタ上位
;データカウンタ下位
;データカウンタ上位
;外部割込み要求フラグビットの定義
;スタック
第 3 章 CPU の機能
;----------メインプログラム----------------------------------CODE
CSEG
START:
AND CCR,#0BFH
;PS内CCRのIフラグをクリアして
;割込み禁止
MOV RP,#00
;レジスタバンクポインタを設定
MOV A,#!STACK_T
;システムスタックの設定
MOV SSB,A
MOVW A,#STACK_T
;スタックポインタの設定,
;このときは
MOVW SP,A
;Sフラグ=1のためSSPに
;セットされる
MOV I:DDR2,#00000000B ;P24/INT4端子を入力に設定
MOV BAPL,#00H
;バッファアドレスをセット
;(003000H)
MOV BAPM,#30H
MOV BAPH,#00H
MOV ISCS,#00010001B
;I/Oアドレス更新なし,バイト転送,
;バッファアドレス更新あり
;I/O→バッファへ転送,周辺機能に
;よる終了あり
MOV IOAL,#00H
;転送元アドレスをセット
;(ポート2: 000002H)
MOV IOAH,#00H
MOV DCTL,#64H
;転送バイト数をセット(100バイト)
MOV DCTH,#00H
MOV I:ICR00,#00001000B ;EI2OSチャネル0,EI2OS許可,
;割込みレベル0(最強)
MOV I:ELVR,#00010000B ;INT4を"H"レベル要求とする
MOV I:EIRR,#00H
;INT4の割込み要因クリア
MOV I:ENIR,#10H
;INT4の割込み許可
MOV ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;PS内CCRのIフラグをセットして
;割込み許可
:
LOOP:
BRA LOOP
;無限ループ
;----------割込みプログラム------------------------------------WARI
CLRB ER0
;割込み/DTP要求フラグのクリア
:
ユーザ処理
;EI2OSの終了要因をチェック,
:
;バッファ中のデータの処理,
;EI2OSの再設定など
RETI
CODE
ENDS
----------ベクタ設定----------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFD0H
;割込み #11(0BH)にベクタ
;を設定
DSL
WARI
ORG
0FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
97
第 3 章 CPU の機能
リセット
3.6
リセット要因が発生すると , CPU は直ちに現在実行している処理を中断して , リ
セット動作に入ります。リセット要因には , 次のものがあります。
• パワーオンリセット
• ウォッチドッグタイマのオーバフロー
• ソフトウェアリセット要求の発生
• 外部リセット要求の発生 (RST 端子 )
■ リセット要因
表 3.6-1 リセット要因
リセット
発生要因
マシン
クロック
ウォッチドッグ
タイマ
発振安定待ち
パワーオン
リセット
電源投入
MCLK
停止
あり
ウォッチドッグ
タイマリセット
ウォッチドッグタイマ
のオーバフロー
MCLK
停止
なし
ソフトウェア
リセット
RST ビットへの "0" 書
込み
MCLK
停止
なし
外部リセット
RST 端子への "L" レベル
入力
MCLK
停止
なし
MCLK: メインクロック
● パワーオンリセット
• パワーオンリセットは , 電源を投入する際に発生するリセットです。
• 218/HCLK の発振安定待ち時間を経過した後 , リセット動作が実行されます。
● ウォッチドッグタイマリセット
• ウォッチドッグタイマを起動すると , 繰り返しカウントされるインターバル時間に
対して定期的にクリアしないとオーバフローが発生してリセットされます。
• ウォッチドッグリセットによる発振安定待ち時間は発生しません。
<参考>
ウォッチドッグタイマについては ,「第 6 章 ウォッチドッグタイマ」を参照してく
ださい。
● ソフトウェアリセット
• ソフトウェアリセットは , 低消費電力モード制御レジスタの内部リセット信号発生
ビット (LPMCR: RST) に "0" を書き込むことによって発生するリセットです。
• ソフトウェアリセットによる発振安定待ち時間は発生しません。
98
第 3 章 CPU の機能
● 外部リセット
• 外部リセット端子 (RST 端子 ) に "L" レベルを入力することによって , 発生するリ
セットです。RST 端子からの "L" レベルの入力時間は , 16 マシンサイクル ( メイン
クロック ) 以上必要です。
• 外部リセットによる発振安定待ち時間は発生しません。
<注意事項>
・転送系命令 (MOV など ) による書込み動作実行中に RST 端子からの外部リセット
要求が発生した場合は , 転送系命令が終了してからリセット解除待ち状態になるの
で , 書込み動作は正常に終了します。ストリング系命令 (MOVS など ) の場合は ,
指定したカウンタ値分の転送処理が完了する前に , リセット解除待ち状態になる場
合があるのでご注意ください。
・ストップモード , サブクロックモード , サブスリープモードおよび時計モードから
外部リセット端子 (RST 端子 ) にてメインクロックモードへ復帰する場合は ,
( 振動子の発振時間 *+100μs+16 マシンサイクル ( メインクロック )) 以上 "L" レベ
ルを入力してください。
*: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶振動子は , 数 ms ∼
数十 ms, セラミック発振子は , 数百 μs ∼数 ms, 外部クロックは , 0ms となりま
す。
99
第 3 章 CPU の機能
3.6.1
リセット要因と発振安定待ち時間
リセット後の発振安定待ち時間は , リセット要因によって異なります。
■ リセット要因と発振安定待ち時間
表 3.6-2 リセット要因と発振安定待ち時間
発振安定待ち時間
( ) 内は発振クロック周波数 4MHz での算出例
リセット要因
パワーオンリセット
216/HCLK*
ウォッチドッグリセット
なし
ソフトウェアリセット
なし
外部リセット
なし
HCLK: 発振クロック周波数
*: MB90V495G では , 218/HCLK となります。
図 3.6-1 パワーオンリセットが発生した場合の MB90895 シリーズの発振安定待ち時間
VCC
CLK
CPU動作
215/HCLK
降圧回路の
安定待ち時間
216/HCLK
発振安定待ち時間
HCLK:発振クロック周波数
表 3.6-3 クロック選択レジスタ (CKSCR) による発振安定待ち時間の設定
クロック選択ビット
発振安定待ち時間
( ) 内は発振クロック周波数 4MHz での算出例
WS1
WS0
0
0
210/HCLK(256 μs)
0
1
213/HCLK( 約 2.048 ms)
1
0
214/HCLK( 約 4.1 ms)*1
1
1
215/HCLK( 約 8.19 ms)*1, *2
HCLK: 発振クロック周波数
*1: MB90V495G では , WS1/0=10 のとき 215/HCLK, WS1/0=11 のとき 217/HCLK となります。
*2: 電源投入時は 216/HCLK ( 約 16.38 ms) 固定となります。ただし , MB90V495G は 218/
HCLK ( 約 65.54 ms) 固定となります。
100
第 3 章 CPU の機能
<注意事項>
<参考>
セラミックや水晶などの振動子は , 発振状態が安定するまで数 ms ∼数十 ms の発
振安定待ち時間が必要です。使用する振動子に合わせた発振安定待ち時間を設定
してください。
クロックについては ,「3.7 クロック」を参照してください。
101
第 3 章 CPU の機能
外部リセット端子
3.6.2
外部リセット端子 (RST 端子 ) は , リセット入力専用端子です。外部から "L" レベル
を入力することによってリセット要因が発生します。MB90895 シリーズでは , CPU
動作にクロックに同期してリセット動作に入ります。
■ 外部リセット端子のブロックダイヤグラム
図 3.6-2 外部リセット端子のブロックダイヤグラム
RST
P-ch
端子
N-ch
CPU動作クロック
(PLL逓倍回路,HCLKの2分周)
同期化回路
HCLK:発振クロック
<注意事項>
102
内部リセット信号
入力バッファ
• メモリ書込み中のリセットによるメモリ破壊を防ぐため , RST 端子への "L" レ
ベル入力はメモリが破壊されないマシンサイクルで行います。
• 内部回路を初期化するには , CPU 動作クロックが必要です。特に外部クロック
で動作している場合は , リセット信号と CPU 動作クロック信号を入力する必要
があります。
第 3 章 CPU の機能
リセット動作
3.6.3
リセット動作中は , モード端子 (MD0 ∼ MD2) の設定によりモードデータとリセット
ベクタが読出し方法が設定され , モードフェッチが行われます。発振クロックが停止
している状態 ( 電源投入 , ストップモードなど ) からリセットによって復帰する場合
は , メインクロックの発振安定待ち時間を経てから , モードフェッチが行われます。
■ リセット動作のフロー
リセット動作のフローを図 3.6-3 に示します。
図 3.6-3 リセット動作のフロー
パワーオンリセット
ソフトウェアリセット
外部リセット(RST端子)
ウォッチドッグタイマリセット
リセット動作
発振安定待ち時間
リセット解除
モードデータ取込み
バスモードの端子設定
リセットシーケンス
リセットベクタ取込み
通常動作(RUN状態)
リセットベクタが示す
アドレスから処理を実行
■ スタンバイモードの発振安定待ち時間
発振クロックが停止しているストップモードやサブクロックモードでの動作中にリ
セットが発生した場合は , 215/HCLK ( 約 8.19ms, 発振クロック 4MHz で動作中 ) の発振
安定待ち時間が生じます。ただし , MB90V495G では , 217/HCLK ( 約 32.77ms) となり
ます。
<参考>
スタンバイモードの動作については ,「3.8 低消費電力モード」を参照してくださ
い。
■ モード端子
モード端子は , MD0 ∼ MD2 の 3 本の外部端子です。モード端子の設定によって , モー
ドデータとリセットベクタの読出し方法を設定します。
<参考>
モード端子 (MD0 ∼ MD2) については ,「3.9.3 メモリアクセスモード」を参照して
ください。
103
第 3 章 CPU の機能
■ モードフェッチ
リセット動作に移行すると , CPU は自動的にモードデータとリセットベクタを CPU コ
ア内の該当レジスタにハードウェア転送します。モードデータとリセットベクタは , ア
ドレス "FFFFDCH" ∼ "FFFFDFH" の 4 バイトに割り当てられています。リセット要因
発生後 ( 発振安定待ち時間が生じた場合はその後 ), CPU は , 直ちにモードデータとリ
セットベクタのアドレスをバス上に出力して,モードデータとリセットベクタを取り込
みます。この動作を " モードフェッチ " といいます。モードフェッチが終了すると ,
CPU はリセットベクタが指し示すアドレスから処理を開始します。
図 3.6-4 モードデータとリセットベクタの転送
メモリ空間
F2MC-16LX CPUコア
PC
FFFFDCH
リセットベクタ・ビット7~0
FFFFDDH
リセットベクタ・ビット15~8
FFFFDEH
FFFFDFH
PCB
リセットベクタ・ビット23~16
CPUモードデータ
リセットシーケンス
マイクロ ROM
モードレジスタ
<注意事項>
モードデータとリセットベクタを内部 ROM から読み出すにはモード端子 (MD0 ∼
MD2) で設定します。モード端子をシングルチップモードで使用する場合は , モー
ド端子を内部ベクタモードに設定してください。
● モードデータ
モードデータでは,リセット動作終了後のメモリアクセス方式およびメモリアクセス領
域を設定します。モードデータは , "FFFFDFH" 番地に割り当てられており , リセット動
作中 , モードフェッチによって自動的に読み出され , モードレジスタに格納します。
● リセットベクタ
リセットベクタは , リセット動作終了後の実行開始アドレスです。リセットベクタは ,
"FFFFDCH" ∼ "FFFFDEH" に割り当てられており , リセット動作中 , モードフェッチに
よって自動的に読み出され , プログラムカウンタに送られます。
<注意事項>
104
MB90F897/S では , ハードワイヤードリセットベクタとなります。「19.6 フラッ
シュメモリにおけるリセットベクタアドレス」を参照してください。
第 3 章 CPU の機能
3.6.4
リセット要因ビット
リセット発生要因を確認するには , ウォッチドッグタイマ制御レジスタ (WDTC) の
値を読み出して識別します。
■ リセット要因ビット
各リセット要因には,それぞれの要因別に対応したフリップフロップ回路が用意されて
います。フリップフロップの状態は , ウォッチドッグタイマ制御レジスタ (WDTC) を
読み出して確認できます。リセット動作終了後に , リセット発生要因を識別する必要が
生じた場合には , ウォッチドッグタイマ制御レジスタ (WDTC) の値をソフトウェアで
読み出して , 適切なプログラムへ分岐するように処理してください。
図 3.6-5 リセット要因ビットブロック図
RST端子
電源投入
インターバル時間内
のクリアなし
RST=L
パワーオン
発生検出回路
ウォッチドッグ
タイマリセット
発生検出回路
外部リセット
要求検出回路
RSTビットセット
LPMCRレジスタ
RSTビット書込み
検出回路
クリア
ウォッチドッグタイマ
制御レジスタ(WDTC)
S
R
S
F/F
Q
R
S
F/F
Q
R
S
F/F
Q
R
F/F
遅延回路
Q
ウォッチドッグタイマ
制御レジスタ(WDTC)
読出し
F2MC-16LX 内部バス
S :
R :
Q :
F/F
Set
Reset
Out put
: Flip Flop
105
第 3 章 CPU の機能
■ リセット要因ビットとリセット要因の対応
ウォッチドッグタイマ制御レジスタのリセット要因ビット (WDTC: PONR, WRST,
ERST, SRST) の構成を図 3.6-6 に示します。
図 3.6-6 リセット要因ビットの構成
ウォッチドッグタイマ制御
レジスタ(WDTC)
R
W
X
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
リセット値
PONR
-
WRST
ERST
SRST
WTE
WT1
WT0
XXXXX111B
R
-
R
R
R
W
W
W
:リードオンリ
:ライトオンリ
:不定
表 3.6-4 リセット要因ビットの内容とリセット要因の対応
PONR
WRST
ERST
SRST
パワーオンリセットの発生
1
X
X
X
ウォッチドッグタイマによるリセット
*
1
*
*
RST 端子への外部リセット信号の入力
*
*
1
*
ソフトウェアリセット (RST ビット )
+
*
*
1
リセット要因
* : 前の状態を保持
X : 不定
106
第 3 章 CPU の機能
■ リセット要因ビットの注意事項
● パワーオンリセットの場合
パワーオンリセットを行った場合は , リセット動作終了後 , PONR ビットに "1" がセッ
トされます。PONR ビット以外のリセット要因ビットは不定となります。リセット動
作終了後 , PONR ビットが "1" の場合は , PONR ビット以外のビットの内容は無視して
ください。
● 複数のリセット要因が発生した場合
リセット要因ビットは , 複数のリセット要因が発生した場合でも , 各リセット要因に応
じて各リセット要因ビットに "1" がセットされます。例えば , ウォッチドッグタイマの
オーバフローと , RST 端子からの外部リセット要求の発生が同時に生じた場合は , リ
セット終了後 , WRST ビットと ERST ビットの両方に "1" がセットされています。
● リセット要因ビットのクリア
1 度セットされたリセット要因ビットは , セットされた要因以外のリセット要因が発生
した場合でもクリアされません。リセット要因ビットは , ウォッチドッグタイマ制御レ
ジスタ (WDTC) のリード終了後にクリアされます。
<参考>
ウォッチドッグタイマについては ,「第 6 章 ウォッチドッグタイマ」を参照してく
ださい。
107
第 3 章 CPU の機能
3.6.5
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット動作中の端子の状態
リセット動作中の端子の状態は , モード端子 (MD0 ∼ MD2) の設定状態によって決定さ
れます。
● 内部ベクタモードに設定した場合
• 内部ベクタモードに設定した場合は , I/O 端子はすべてハイインピーダンスになり ,
モードデータの読出し先は内部 ROM となります。
■ モードデータ読出し後の端子の状態
• I/O 端子はすべてハイインピーダンスになり , モードデータの読出し先は内部 ROM
になります。
<注意事項>
108
リセット要因が発生した場合 , ハイインピーダンスになる端子に接続した機器は誤
動作しないように配慮してください。
第 3 章 CPU の機能
3.7
クロック
クロック発生部は , CPU や周辺機能の動作クロックである内部クロックを制御しま
す。クロック発生部で生成されたクロックをマシンクロックと呼び , マシンクロック
の 1 周期をマシンサイクルとしています。また , 高速振動子から供給されるクロッ
クを発振クロックと呼び , 発振クロックの 2 分周をメインクロックと呼びます。低
速振動子から供給されるクロックの 4 分周をサブクロック , PLL 発振によるクロッ
クを PLL クロックと呼びます。
■ クロック
クロック発生部には発振回路が内蔵されており , 発振端子に振動子を接続することに
よって発振クロックを発生します。外部から発振端子に入力したクロックを発振ク
ロックとすることもできます。また , PLL クロック逓倍回路を利用して , 発振クロック
の逓倍クロックを 4 種類発生できます。クロック発生部では , 発振安定待ち時間の制御
, PLLクロック逓倍制御,クロックセレクタによる内部クロックの切換動作を行います。
● 発振クロック (HCLK)
高速発振端子 (X0, X1) に振動子を接続するか , 外部クロックを入力して発生させたク
ロックです。
● メインクロック (MCLK)
発振クロックを 2 分周したクロックです。タイムベースタイマとクロックセレクタへ
の入力クロックとなります。
● サブクロック (SCLK)
低速振動端子 (X0A, X1A) に振動子を接続するか , 外部クロックを入力して発生させた
クロックを 4 分周したクロックです。時計タイマの動作クロックまたは低速のマシン
クロックとしても使用できます。
● PLL クロック (PCLK)
発振クロックを PLL クロック逓倍回路 (PLL 発振回路 ) によって逓倍したクロックで
す。逓倍率選択ビット (CKSCR: CS1, CS0) の設定によって 4 種類のクロックから選択
できます。
109
第 3 章 CPU の機能
● マシンクロック
CPU と周辺の動作クロックです。マシンクロックの 1 周期をマシンサイクル (1/φ) とし
ています。メインクロック , サブクロック , 4 種類の PLL クロックから 1 種類を選択で
きます。
<注意事項>
• 動作電圧が 5V の場合 , 発振クロックは 3MHz ∼ 16MHz の発振ができます。CPU
および周辺機能の最大動作周波数は 16MHz なので , 最大動作周波数を超える逓
倍率を設定した場合はデバイスは正常に動作しません。したがって , 発振クロッ
クが 16MHz の場合はには , PLL クロックの逓倍率は 1 倍のみ設定できます。
PLL
発振は 3 ∼ 16MHz の範囲で発振しますが , PLL 発振範囲は動作電圧および逓倍
率によって異なります。
• MB90F897S にサブクロックはありません。
110
第 3 章 CPU の機能
■ クロック供給マップ
CPU や周辺機能の動作クロックとして , クロック発生部で生成したマシンクロックを
供給しています。CPU と周辺機能の動作は , メインクロックとサブクロックおよび PLL
クロックの切替え ( クロックモード ) や , PLL クロックの逓倍率の切替えの影響を受け
ます。一部の周辺機能にはタイムベースタイマの分周出力が供給されており , 各周辺で
動作クロックを選択できるようになっています。
クロック供給マップを図 3.7-1 に示します。
図 3.7-1 クロック供給マップ
周辺機能
4
4
時計タイマ
8/16ビット
PPGタイマ0,1
タイムベースタイマ
8/16ビット
PPGタイマ2,3
クロック発生部
X0A
端子
X1A
端子
X0
端子
X1
端子
ウォッチドッグ
タイマ
PPG0,1
端子
PPG2,3
端子
TIN0
端子
サブ
クロック
発生回路
1 2 3 4
2/4分周
発振
2分周
クロック
発生回路 HCLK
MCLK
16ビット
リロードタイマ0
PLL逓倍回路
PCLK
SCLK
クロックセレクタ
φ
TOT0
端子
通信プリスケーラ1
UART1
SCK1
端子
SOT1
端子
SIN1
端子
CPU間欠動作
TIN1
端子
CPU
16ビット
リロードタイマ1
TOT1
端子
ADTG
端子
8/10ビット
A/Dコンバータ
IN0,1,2,3
端子
インプットキャプチャ
ユニット
16ビット
フリーランタイマ
CANコントローラ
HCLK
MCLK
PCLK
SCLK
φ :発振クロック
:メインクロック
:PLLクロック
:サブクロック
:マシンクロック
3
RX
端子
TX
端子
発振安定待ち制御
111
第 3 章 CPU の機能
クロック発生部のブロックダイヤグラム
3.7.1
クロック発生部は , 次のブロックで構成されています。
• 発振クロック発生回路 / サブクロック発生回路
• PLL 逓倍回路
• クロックセレクタ
• クロック選択レジスタ (CKSCR)
• 発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
クロック発生部のブロックダイヤグラムを図 3.7-2 に示します。なお , スタンバイ制御
回路 , タイムベースタイマの回路も含まれます。
図 3.7-2 クロック発生部のブロックダイヤグラム
スタンバイ制御回路
低消費電力モード制御レジスタ(LPMCR)
STP SLP SPL RST TMD CG1 CG0 予約
2
CPU間欠動作
サイクルセレクタ
CPUクロック
制御回路
CPU動作
クロック
周辺クロック
制御回路
周辺機能
動作クロック
時計モード
スリープ信号
ストップ信号
S
Q
S
R
リセット
S
割込み
Q
マシン
クロック
R
S
Q
Q
R
R
動作クロック
セレクタ
2
発振安定待ち
時間セレクタ
2
SCM MCM WS1 WS0 SCS MCS CS1 CS0
PLL逓倍回路
クロック選択レジスタ(CKSCR)
X0 端子
発振
クロック
X1 端子
2分周
1024分周
2分周
4分周
2分周
発振クロック(HCLK) サブクロック
発生回路
X0A 端子
4分周
X1A 端子
S:セット
R:リセット
Q:出力
112
2分周
2分周
ウォッチドッグタイマへ
1024分周
時計タイマ
サブクロック発生回路
2分周
メイン
クロック タイムベースタイマ
8分周
2分周
2分周
2分周
第 3 章 CPU の機能
● 発振クロック発生回路
高速発振端子に振動子を接続するか , 外部クロックを入力して発振クロック (HCLK) を
発生します。
● サブクロック発生回路
低速発振端子 (X0A, X1A) に振動子を接続するか , 外部クロックを入力してサブクロッ
ク (SCLK) を発生します。
● PLL 逓倍回路
PLL 発振で発振クロックを逓倍して , PLL クロック (PCLK) としてクロックセレクタに
供給します。
● クロックセレクタ
メインクロック , サブクロック , 4 種類の PLL クロックから CPU および周辺機能に供
給するクロックを選択します。
● クロック選択レジスタ (CKSCR)
発振クロックと PLL クロックの切替え , メインクロックとサブクロックの切替え , 発
振安定待ち時間の選択および PLL クロックの逓倍率の選択を行います。
● 発振安定待ち時間セレクタ
発振クロックの発振安定待ち時間を選択します。4 種類のタイムベースタイマ出力から
選択します。
<注意事項>
MB90F897S にサブクロックはありません。
113
第 3 章 CPU の機能
3.7.2
クロック発生部のレジスタ
クロック発生部のレジスタを説明します。
■ クロック発生部のレジスタとリセット値の一覧
図 3.7-3 クロック選択レジスタとリセット値の一覧
bit
クロック選択レジスタ(CKSCR)
114
15
14
13
12
11
10
9
8
1
1
1
1
1
1
0
0
第 3 章 CPU の機能
クロック選択レジスタ (CKSCR)
3.7.3
クロック選択レジスタ (CKSCR) は , メインクロック , サブクロック , PLL クロック
の切替え , 発振安定待ち時間の選択および PLL クロックの逓倍率の選択を行います。
■ クロック選択レジスタ (CKSCR)
図 3.7-4 クロック選択レジスタ (CKSCR)
15
14
13
12
11
10
9
8
R
R
R/W R/W R/W R/W R/W R/W PSCCR:
CS2 bit9 bit8
リセット値
11111100B
逓倍率選択ビット
CS2
CS1
CS0
0
0
0
1×HCLK(4MHz)
0
0
1
2×HCLK(8MHz)
0
1
0
3×HCLK(12MHz)
0
1
1
4×HCLK(16MHz)
1
0
0
2×HCLK(8MHz)
1
0
1
4×HCLK(16MHz)
1
1
0
設定不可
1
1
1
設定不可
( )内は発振クロック(HCLK)周波数4MHz時の算出例
bit10
PLLクロック選択ビット
MCS
0
PLLクロックを選択
1
メインクロックを選択
bit11
サブクロック選択ビット
SCS
0
サブクロックを選択
1
メインクロックを選択
bit13 bit12
発振安定待ち時間選択ビット
( )内は発振クロック(HCLK)周波数4MHz時の算出例
WS1
WS0
0
0
210/HCLK(約256μs)
0
1
1
0
213/HCLK(約2.05ms)
214/HCLK(約4.1ms)*
1
1
215/HCLK(約8.19ms,パワーオンリセット以外)*
216/HCLK(約16.38ms,パワーオンリセットのみ)*
bit14
PLLクロック動作ビット
MCM
0
PLLクロックで動作中
1
メインクロックまたはサブクロックで動作中
bit15
SCM
HCLK :発振クロック
R/W :リード・ライト 可能
R
:リードオンリ
:リセット値
0
1
サブクロック動作ビット
サブクロックで動作中
メインクロックまたはPLLクロックで動作中
*: MB90V495Gでは,WS1/0=10時 215/HCLK(約8.19ms)
WS1/0=11 217/HCLK(約32.77ms,パワーオンリセット以外)
218/HCLK(約65.54ms,パワーオンリセットのみ)
115
第 3 章 CPU の機能
表 3.7-1 クロック選択レジスタ (CKSCR) の機能 (1 / 3)
ビット名
116
機 能
bit15
SCM:
サブクロック動作
フラグビット
マシンクロックとして , メインクロックまたはサブクロック
のどちらが選択されているかを表示します。 • サブクロック動作フラグビット (CKSCR: SCM) が "0", サ
ブクロック選択ビット (CKSCR: SCS) が "1" の場合は , サ
ブクロックからメインクロックへの移行期間中であるこ
とを示します。また , サブクロック動作フラグビット
(CKSCR:SCM) が "1", サブクロック選択ビット
(CKSCR:SCS) が "0" の場合は , メインクロックからサブ
クロックへの移行期間中であることを示します。
• 書込みは , 動作に影響しません。
bit14
MCM:
PLL クロック動作
フラグビット
マシンクロックとして , メインクロックまたは PLL クロック
のどちらが選択されているかを示します。
• PLL クロック動作フラグビット (CKSCR: MCM) が "1" で ,
PLL クロック選択ビット (CKSCR: MCS) が "0" の場合は ,
PLL クロック発振安定待ち時間中であることを示します。
• 書込みは , 動作に影響しません。
bit13
bit12
WS1, WS0:
発振安定待ち時間
選択ビット
ストップモード解除時 , サブクロックモードからメインク
ロックモードへの移行時およびサブクロックモードから PLL
クロックモードへの移行時の発振クロックの発振安定待ち時
間を選択します。
• 4 種類のタイムベースタイマ出力から選択します。 すべてのリセットにより , リセット値に戻ります。
( 注意事項 ) 発振安定待ち時間は , 使用されている振動子に合わせて
適切な時間を設定してください。詳しくは ,「3.6.1 リ
セット要因と発振安定待ち時間」を参照してください。
メインクロックモードから PLL クロックモードに切り替
えた場合の発振安定待ち時間は , 214/HCLK( 発振クロッ
ク周波数 4MHz で動作している場合 : 約 4.1ms) 固定です。
サブクロックモードから PLL クロックモードに切り替え
た場合および PLL ストップモードから PLL クロックモー
ドに復帰する場合の発振安定待ち時間は , 本ビットに設
定された値に従います。
PLL の発振安定には , 214/HCLK 以上必要ですので , サブ
クロックモードから PLL クロックモードに切り替える場
合および PLL ストップモードに移行する場合 , 本ビット
には , "10B" または "11B" を設定してください。
第 3 章 CPU の機能
表 3.7-1 クロック選択レジスタ (CKSCR) の機能 (2 / 3)
ビット名
機 能
bit11
SCS:
サブクロック選択
ビット
マシンクロックとして , メインクロックまたはサブクロック
のどちらを選択するかを設定します。 • メインクロックからサブクロックに切り替えた場合は
(CKSCR: SCS=1 → 0), サブクロックに同期をとって ( 約
130μs) サブクロックモードに切り替わります。
• サブクロックからメインクロックに切り替えた場合は
(CKSCR: SCS=0 → 1), メインクロックの発振安定待ち時
間が発生した後 , メインクロックモードに切り替わりま
す。タイムベースタイマは自動的にクリアされます。
すべてのリセットにより , リセット値に戻ります。 ( 注意事項 )
1)MCS ビット , SCS ビットがともに "0" の場合は , SCS
ビットが優先され , サブクロックモードに設定されま
す。
2) サブクロック選択ビット (CKSCR: MCS) および PLL ク
ロック選択ビット (CKSCR: SCS) ともに "0" の場合は ,
サブクロックが優先されます。 3) メインクロックからサブクロックに切り替える場合は
(CKSCR: SCS=1 → 0), タイムベースタイマの割込み許
可ビット (TBTC: TBIE) またはインタラプトレベルマス
クレジスタ (ILM: ILM2 ∼ 0) により , タイムベースタ
イマ割込みを禁止してから書き込んでください。
4) 電源投入時またはストップモードからの解除時は , サ
ブクロックの発振安定待ち時間 ( 約 2 秒 ) が発生しま
す。したがって , その間にメインクロックモードから
サブクロックモードに切り替えた場合は , 発振安定待
ち時間が発生します。
5)MB90F897S にはサブクロックはありません。初期値を
設定してください。
bit10
MCS:
PLL クロック選択
ビット
マシンクロックとして , メインクロックまたは PLL クロック
のどちらを選択するかを設定します。 メインクロックから PLL クロックに切り替えた場合は
(CKSCR: MCS=1 → 0), PLL クロックの発振安定待ち時間が発
生した後 , PLL クロックモードに移行します。タイムベース
タイマは自動的にクリアされます。メインクロックモードか
ら PLL クロックモードに切り替えた場合の発振安定待ち時
間は , 214/HCLK( 発振クロック周波数 4MHz で動作している
場合 : 約 4.1ms) 固定です。サブクロックモードから PLL ク
ロックモードに切り替えた場合の発振安定待ち時間は , 発振
安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定された
値に従います。
すべてのリセットにより , リセット値に戻ります。 ( 注意事項 )
1)MCS ビット , SCS ビットがともに "0" の場合は , SCS
ビットが優先され , サブクロックモードに設定されます。
2) メインクロックから PLL クロックに切り替える場合は
(CKSCR: MCS=1 → 0), タイムベースタイマの割込み許可
ビット (TBTC: TBIE) またはインタラプトレベルマスクレ
ジスタ (ILM: ILM2 ∼ 0) により , タイムベースタイマ割
込みを禁止してから書き込んでください。
117
第 3 章 CPU の機能
表 3.7-1 クロック選択レジスタ (CKSCR) の機能 (3 / 3)
ビット名
bit9
bit8
118
CS1, CS0:
逓倍率選択ビット
機 能
PSCCR:CS2, CS1, CS0 の組み合わせにより , PLL クロックの
逓倍率を 7 種類から選択します。
すべてのリセットにより , リセット値に戻ります。
( 注意事項 ) PLL クロックが選択されている場合 (CKSCR: MCS=0) は ,
書込みが抑止されます。逓倍率を書き換える場合は , いっ
たん PLL クロック選択ビット (CKSCR: MCS) に "1" を書き
込んだ後 , 逓倍率選択ビット (CKSCR: CS1, CS0) を書き換
えてから , PLL クロック選択ビット (CKSCR: MCS) を "0"
に戻してください。
第 3 章 CPU の機能
3.7.4
PLL/ サブクロック制御レジスタ (PSCCR)
PLL/ サブクロック制御レジスタ (PSCCR) は , サブクロック分周比切替え (2/4 分周
選択 ) および PLL クロック逓倍設定 (1, 2, 3, 4 逓倍 ) の設定を行います。
■ PLL/ サブクロック制御レジスタ (PSCCR)
図 3.7-5 PLL/ サブクロック制御レジスタ (PSCCR)
15
14
13
12
-
-
-
-
リード/ライト ⇒
(-)
(-)
(-)
初期値 ⇒
(X)
(X)
(X)
bit
アドレス:003FH
11
10
9
8
予約 SCDS 予約
CS2
(-)
(W)
(W)
(W)
(W)
(X)
(0)
(0)
(0)
(0)
サブクロック分周比設定および PLL クロック逓倍設定を行うことが可能です。
PLL クロック逓倍設定はクロック選択 CKSCR:CS0/CS1 と本レジスタ PSCCR:CS2 との
組み合わせにより 1, 2, 3, 4 逓倍の設定を行うことができます。
本レジスタの設定を行う際は , 必ずメインクロックモードで行うようにしてください。
表 3.7-2 PLL/ サブクロック制御レジスタ (PSCCR) の機能
ビット名
機 能
bit15
∼
bit12
未定義ビット
ライト : 動作に影響なし
リード : 読出し値は不定
bit11
予約
必ず "0" を設定してください。
bit10
SCDS
0:4 分周 (8kHz)
1:2 分周 (16kHz)
bit9
予約
必ず "0" を設定してください。
bit8
CS2
0:1, 2, 3, 4 逓倍が設定可
1:2, 4 逓倍が設定可
119
第 3 章 CPU の機能
表 3.7-3 PSCCR:CS2,CKSCR:CS1/CS0 における PLL 逓倍設定
( 周波数 4 MHz 換算 )
<注意事項>
120
CS2
CS1
CS0
0
0
0
1 × HCLK (4 MHz)
0
0
1
2 × HCLK (8 MHz)
0
1
0
3 × HCLK (12 MHz)
0
1
1
4 × HCLK (16 MHz)
1
0
0
2 × HCLK (8 MHz)
1
0
1
4 × HCLK (16 MHz)
1
1
0
設定不可
1
1
1
設定不可
機 能
本機能は MB90V495G には搭載されていません。そのため本レジスタを読み出す
と常に "1" が読み出されます。
第 3 章 CPU の機能
3.7.5
クロックモード
クロックモードには , メインクロックモード , サブクロックモード , PLL クロック
モードがあります。
■ クロックモード
● メインクロックモード
メインクロックモードは , CPU および周辺リソースの動作クロックとして , 高速発振端
子 (X0, X1) に振動子を接続するか , 外部クロックを入力して発生させたクロック ( 発振
クロック ) を 2 分周したクロックを使用します。
● サブクロックモード
サブクロックモードは , CPU および周辺リソースの動作クロックとして低速振動端子
(X0A, X1A) に振動子を接続するか , 外部クロックを入力して発生させたクロックを 4
分周したクロックを使用します。
● PLL クロックモード
PLL クロックモードは , CPU および周辺リソースの動作クロックとして , 発振クロック
を PLL クロック逓倍回路 (PLL 発振回路 ) によって逓倍したクロックを使用します。
PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR: CS1, CS0) で設定します。
<注意事項>
MB90F897S にはサブクロックはありません。
■ クロックモードの移行
クロックモードは , PLL クロック選択ビット (CKSCR: MCS) およびサブクロック選択
ビット (CKSCR: SCS) の設定によって , メインクロックモード , サブクロックモード ,
PLL クロックモードに移行します。
● メインクロックモードから PLL クロックモードへの移行
PLL クロック選択ビット (CKSCR: MCS) を "1" から "0" に書き換えた場合は , PLL 発振
安定待ち時間 (214/HCLK) の後 , メインクロックから PLL クロックに移行します。
● PLL クロックモードからメインクロックモードへの移行
PLL クロック選択ビット (CKSCR: MCS) を "0" から "1" に書き換えた場合は , PLL ク
ロックとメインクロックのエッジが一致するタイミング (1 ∼ 8PLL クロック後 ) で PLL
クロックからメインクロックに切り替わります。
● メインクロックモードからサブクロックモードへの移行
サブクロック選択ビット (CKSCR: SCS) を "1" から "0" に書き換えた場合は , サブクロッ
クに同期をとって ( 約 130μs), メインクロックからサブクロックに移行します。
121
第 3 章 CPU の機能
● サブクロックモードからメインクロックモードへの移行
サブクロック選択ビット (CKSCR: SCS) を "0" から "1" に書き換えた場合は , メインク
ロック発振安定待ち時間後 , サブクロックからメインクロックに移行します。
<注意事項>
• サブクロックモードから外部リセット端子 (RST 端子 ) にてメインクロックモー
ドへ移行する場合は ,
( 振動子の発振時間 *+100μs+16 マシンサイクル ( メインクロック )) 以上
"L" レベルを入力してください。
*: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶振動子は , 数 ms ∼
数十 ms, セラミック発振子は , 数百 μs ∼数 ms, 外部クロックは , 0ms となり
ます。
• MB90F897S にはサブクロックはありません。
● PLL クロックモードからサブクロックモードへの移行
サブクロック選択ビット (CKSCR: SCS) を "1" から "0" に書き換えた場合は , PLL クロッ
クからサブクロックに移行します。
● サブクロックモードから PLL クロックモードへの移行
サブクロック選択ビット (CKSCR: SCS) を "0" から "1" に書き換えた場合は , メインク
ロック発振安定待ち時間後 , サブクロックから PLL クロックに移行します。
■ PLL クロック逓倍率の選択
逓倍率選択ビット (CKSCR: CS1, CS0) に "00B" ∼ "11B" の値を書き込むことによって ,
1 ∼ 4 倍まで 4 種類の PLL クロック逓倍率を設定できます。
■ マシンクロック
PLL 逓倍回路から出力される PLL クロック , メインクロック , サブクロックがマシン
クロックとなります。このマシンクロックが CPU および周辺機能に供給されます。メ
インクロック , PLL クロック , サブクロックはサブクロック選択ビット (CKSCR:SCS)
および PLL クロック選択ビット (CKSCR:MCS) への書込みによりいずれかを選択でき
ます。
<注意事項>
122
• マシンクロックは , PLL クロック選択ビット (CKSCR: MCS) およびサブクロッ
ク選択ビット (CKSCR: SCS) を書き換えても即座には切り換わりません。マシ
ンクロックに依存する周辺機能を操作する場合は , マシンクロックを切り換え
た後 , PLL クロック動作フラグビット (CKSCR: MCM) またはサブクロック動作
フラグビット (CKSCR: SCM) の値を参照して , マシンクロックが確実に切り換
わったことを確認してから操作してください。
• PLL クロック選択ビット (CKSCR: MCS) が "0" (PLL クロックモード ) で , サブ
クロック選択ビット (CKSCR: SCS) が "0" ( サブクロックモード ) の場合は ,
SCS ビットが優先され , サブクロックモードとなります。
• クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロック
モードおよび低消費電力モードへの切換えを行わないでください。切換えの完
了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照
して確認してください。切換えが完了する前に , ほかのクロックモードおよび
低消費電力モードへの切換えを行った場合 , 切り換わらない場合があります。
• MB90F897S にはサブクロックはありません。
第 3 章 CPU の機能
クロックモードの遷移を図 3.7-6 に示します。
図 3.7-6 クロックモードの遷移
メイン
MCS=1
MCM=1
SCS=1
SCM=1
CS1,CS0=xx
メイン→サブ
MCS=1
MCM=1
(9)
SCS=0
(10)
SCM=1
CS1,CS0=xx
(8)
(1)
サブ
MCS=1
MCM=1
(16) SCS=0
(10) SCM=0
CS1,CS0=xx
(11) サブ→メイン
(6)
メイン→PLLx
MCS=0
MCM=1
SCS=1
SCM=1
CS1,CS0=xx
(2)
MCS=1
MCM=1
SCS=1
SCM=0
CS1,CS0=xx
(3)
(4)
(5)
PLL1→メイン
MCS=1
(7)MCM=0
SCS=1
SCM=1
CS1,CS0=00
PLL1逓倍
MCS=0
MCM=0
(6)SCS=1
SCM=1
CS1,CS0=00
PLL2→メイン
MCS=1
(7)MCM=0
SCS=1
SCM=1
CS1,CS0=01
PLL2逓倍
MCS=0
MCM=0
(6)SCS=1
SCM=1
CS1,CS0=01
PLL3→メイン
MCS=1
(7)MCM=0
SCS=1
SCM=1
CS1,CS0=10
PLL3逓倍
MCS=0
MCM=0
(6)SCS=1
SCM=1
CS1,CS0=10
PLL4→メイン
MCS=1
(7)MCM=0
SCS=1
SCM=1
CS1,CS0=11
PLL4逓倍
MCS=0
MCM=0
(6)SCS=1
SCM=1
CS1,CS0=11
(8)
(8)
(12)サブ→PLL
(13)MCS=0
MCM=1
(14)SCS=1
(15)SCM=0
CS1,CS0=xx
(8)
(8)
(8)
(8)
PLL1→サブ
MCS=1
MCM=0
SCS=0
SCM=1
CS1,CS0=00
PLL2→サブ
MCS=1
MCM=0
SCS=0
SCM=1
CS1,CS0=01
PLL3→サブ
MCS=1
MCM=0
SCS=0
SCM=1
CS1,CS0=10
PLL4→サブ
MCS=1
MCM=0
SCS=0
SCM=1
CS1,CS0=11
(17)
(17)
(17)
(17)
123
第 3 章 CPU の機能
(1)MCSビット"0"ライト
(2)PLLクロック発振安定待ち終了&CS1,CS0=00
(3)PLLクロック発振安定待ち終了&CS1,CS0=01
(4)PLLクロック発振安定待ち終了&CS1,CS0=10
(5)PLLクロック発振安定待ち終了&CS1,CS0=11
(6)MCSビット"1"ライト(ハードウェアスタンバイ・ウォッチドッグリセットを含む)
(7)PLLクロックとメインクロックの同期タイミング
(8)SCSビット"0"ライト
(9)サブクロック発振安定待ち時間終了(214/SCLK)
(10)SCSビット"1"ライト
(11)メインクロック発振安定待ち終了
(12)メインクロック発振安定待ち終了&CS1,CS0=00
(13)メインクロック発振安定待ち終了&CS1,CS0=01
(14)メインクロック発振安定待ち終了&CS1,CS0=10
(15)メインクロック発振安定待ち終了&CS1,CS0=11
(16)SCSビット"1"ライト,MCSビット"0"ライト
(17)PLLクロックとサブクロックの同期タイミング
MCS
MCM
SCS
SCM
CS1,CS0
<注意事項>
:クロック選択レジスタ(CKSCR)のPLLクロック選択ビット
:クロック選択レジスタ(CKSCR)のPLLクロック表示ビット
:クロック選択レジスタ(CKSCR)のサブクロック選択ビット
:クロック選択レジスタ(CKSCR)のサブクロック表示ビット
:クロック選択レジスタ(CKSCR)の逓倍率選択ビット
• マシンクロックのリセット値は , メインクロックモード (MCS=1, SCS=1) です。
• SCS, MCS ともに "0" の場合は SCS が優先され , サブクロックが選択されます。
• サブクロックモードから PLL クロックモードへの切換え時は , CKSCR レジス
タの発振安定待ち時間選択ビット (WS1, WS0) は , "10B" または "11B" を設定し
てください。
• MB90F897S にはサブクロックはありません。
124
第 3 章 CPU の機能
3.7.6
発振安定待ち時間
発振クロックが停止している電源投入時 , あるいはストップモードからの復帰時には ,
発振開始後 , 発振クロックが安定するまでの時間 ( 発振安定待ち時間 ) が必要となり
ます。また , クロックモードをメインクロックモードから PLL クロックモード , メイ
ンクロックモードからサブクロックモード , サブクロックモードからメインクロック
モード , サブクロックモードから PLL クロックモードに切り替えた場合にも , 発振安
定待ち時間が必要です。
■ 発振安定待ち時間の動作
セラミックや水晶などの振動子は , 発振を開始してから安定した固有の振動数 ( 発振周
波数 ) になるまでに数ミリから数十ミリ秒の時間を要します。したがって , 発振開始直
後は , いったん CPU の動作を禁止して , 発振安定待ち時間経過して発振が安定した時
点で CPU にマシンクロックを供給するようにします。
ただし , 振動子の種類 ( セラミック , 水晶など ) によって発振安定待ち時間は異なりま
す。使用する振動子に合わせて適切な発振安定待ち時間を選択する必要があります。発
振安定待ち時間は , クロック選択レジスタ (CKSCR) で設定できます。
クロックモードをメインクロックモードからPLLクロックモード,メインクロックモー
ドからサブクロックモード , サブクロックモードからメインクロックモード , サブク
ロックモードから PLL クロックモードに切り替えた場合 , 発振安定待ち時間の間 , CPU
は切替え前のクロックで動作しています。発振安定待ち時間が経過すると , 各クロック
モードに切り替わります。
発振開始直後の発振動作を図 3.7-7 に示します。
図 3.7-7 発振安定待ち時間直後の動作
振動子の発振時間
発振安定待ち時間
通常動作開始または
PLLクロック/サブクロック
への切換え
X1
発振開始
<注意事項>
発振安定
MB90F897S にサブクロックはありません。
125
第 3 章 CPU の機能
3.7.7
振動子および外部クロックの接続
MB90895 シリーズはシステムクロック発生回路を内蔵しており , 発振端子に振動子
を接続することによって内部クロックを発生します。外部から発振端子に入力した
クロックを発振クロックとすることもできます。
■ 振動子および外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
図 3.7-8 水晶振動子またはセラミック振動子の接続例
X0
X1
C1
C2
MB90895シリーズ
X0A
X1A
C3
C4
● 外部クロックの接続例
図 3.7-9 外部クロックの接続例
X0
~
開放
X1
MB90895シリーズ
X0A
~
<注意事項>
126
開放
X1A
MB90F897S にサブクロックはありません。
第 3 章 CPU の機能
低消費電力モード
3.8
CPU 動作モードは , 動作クロックの選択とクロックの発振制御によって , 次の動作
モードに分類されます。PLL クロックモードを除く動作モードが低消費電力モード
に属します。
• クロックモード
( メインクロックモード , PLL クロックモード , サブクロッ
クモード )
• CPU 間欠動作モード ( メインクロック間欠動作モード , PLL クロック間欠動作
モード , サブクロック間欠動作モード )
• スタンバイモード ( スリープモード , ストップモード , 時計モード , タイムベー
スタイマモード )
■ CPU 動作モードと消費電流
CPU 動作モードと消費電流の関係を図 3.8-1 に示します。
図 3.8-1 CPU 動作モードと消費電流
消費電流
大
CPU
動作モード
PLLクロックモード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
PLLクロック間欠動作モード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
メインクロックモード(21/HCLK)
メインクロック間欠動作モード
サブクロックモード(SCLK)
サブクロック間欠動作モード
スタンバイモード
スリープモード
時計モード
タイムベースタイマモード
ストップモード
小
低消費電力モード
この図は,動作モードのイメージを示した図で,実際の消費電流とは異なる部分があります。
127
第 3 章 CPU の機能
■ クロックモード
● PLL クロックモード
発振クロック (HCLK) の PLL 逓倍クロックで , CPU および周辺機能を動作させるモー
ドです。
● メインクロックモード
発振クロック (HCLK) の 2 分周クロックで CPU および周辺機能を動作させるモードで
す。メインクロックモード時には PLL 逓倍回路が停止します。
● サブクロックモード
サブクロック (SCLK) で CPU および周辺機能を動作させるモードです。サブクロック
モード時には , メインクロックおよび PLL 逓倍回路が停止します。電源投入時または
ストップモードからの解除時は , サブクロックの発振安定待ち時間 ( 約 2 秒 ) が発生し
ます。したがって , その間にメインクロックモードからサブクロックモードに切り換え
た場合は , 発振安定待ち時間が発生します。
<注意事項>
<参考>
MB90F897S にはサブクロックはありません。
クロックモードについては ,「3.7 クロック」を参照してください。
■ CPU 間欠動作モード
周辺機能に高速クロックを供給したまま , CPU を間欠動作させ消費電力を低減させる
モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリおよび周辺機能に
アクセスする際に , CPU にだけ間欠クロックを入力するモードです。
■ スタンバイモード
スタンバイモードでは , スタンバイ制御回路によって CPU または周辺機能への動作ク
ロックの供給を停止したり , 発振クロック (HCLK) を停止することによって消費電力を
低減することができます。
● スリープモード
スリープモードは,各クロックモード動作中にCPUへの動作クロックを停止させるモー
ドです。CPU は停止し , 周辺機能はスリープモード移行前のクロックで動作します。ス
リープモードに移行する際のクロックモードによって , メインスリープモード , PLL ス
リープモード , サブスリープモードに分かれます。
● 時計モード
時計モードは , サブクロック (SCLK) と時計タイマだけを動作させるモードです。メイ
ンクロック , PLL クロックは停止します。時計タイマ以外の周辺機能は停止します。
128
第 3 章 CPU の機能
● タイムベースタイマモード
タイムベースタイマモードは , 発振クロック (HCLK) とサブクロック (SCLK), タイム
ベースタイマおよび時計タイマだけを動作させるモードです。タイムベースタイマと
時計タイマ以外の周辺機能は停止します。
● ストップモード
ストップモードは , 各クロックモード動作中に発振クロック (HCLK) とサブクロック
(SCLK)を停止させるモードです。最も消費電力が少ない状態でデータを保持できます。
<注意事項>
• クロックモードを切り換えた場合 , 切換えが完了するまでは , ほかのクロック
モードおよび低消費電力モードへの切換えを行わないでください。切換えの完
了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照
して確認してください。切換えが完了する前に , ほかのクロックモードおよび低
消費電力モードへの切換えを行った場合 , 切り換わらない場合があります。
• MB90F897S にはサブクロックはありません。
129
第 3 章 CPU の機能
低消費電力回路のブロックダイヤグラム
3.8.1
低消費電力回路のブロックダイヤグラムを示します。
■ 低消費電力回路のブロックダイヤグラム
図 3.8-2 低消費電力回路のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
SLP
SPL
RST
TMD
CG1
CG0 予約
RST 端子
端子ハイインピー
ダンス制御回路
端子Hi-z制御
内部リセット
発生回路
内部リセット
CPU間欠動作
サイクルセレクタ
間欠サイクル選択
CPUクロック
制御回路
リセット(解除)
時計,スリープ,ストップ信号
スタンバイ
制御回路
2
CPU動作
クロック
時計,ストップ信号
割込み(解除)
周辺クロック
制御回路
周辺機能
動作クロック
サブクロック発振安定待ち解除
メインクロック発振安定待ち解除
クロック
発生部
動作クロック
セレクタ
マシン
クロック
2
発振安定
待ち時間
セレクタ
2
PLL逓倍回路
SCM
MCM
WS1
WS0
SCS
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
2分周
X0 端子
発振クロック
(HCLK)
X1 端子
発振クロック
発振回路
X0A 端子
2分周
2分周
2分周
2分周
ウォッチドッグタイマへ
サブクロック
(SCLK)
4分周
1024分周
時計タイマ
X1A 端子
サブクロック発振回路
130
2分周
1024分周
4分周
メイン
クロック
タイムベースタイマ
8分周
2分周
2分周
2分周
第 3 章 CPU の機能
● CPU 間欠動作セレクタ
CPU 間欠動作モードでの CPU クロックの一時停止サイクル数を選択します。
● スタンバイ制御回路
CPU クロック制御回路と周辺クロック制御回路によって , CPU 動作クロックと周辺機
能動作クロックを切り換え , スタンバイモードへの移行と解除を行います。
● CPU クロック制御回路
CPU に動作クロックを供給する回路です。
● 端子ハイインピーダンス制御回路
時計モード , タイムベースタイマモード , ストップモードの場合に , 入出力端子をハイ
インピーダンスにします。
● 内部リセット発生回路
内部リセット信号を発生します。
● 低消費電力モード制御レジスタ (LPMCR)
スタンバイモードへの移行と解除 , CPU 間欠動作モードの設定などを行います。
<注意事項>
MB90F897S にサブクロックはありません。
131
第 3 章 CPU の機能
3.8.2
低消費電力モードのレジスタ
低消費電力モードの設定に使用するレジスタを説明します。
■ 低消費電力モードのレジスタ一覧とリセット値の一覧
図 3.8-3 低消費電力モードのレジスタとリセット値の一覧
bit
低消費電力モード制御レジスタ(LPMCR)
132
7
6
5
4
3
2
1
0
0
0
0
1
1
0
0
0
第 3 章 CPU の機能
低消費電力モード制御レジスタ (LPMCR)
3.8.3
低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行と解除 , 内
部リセット信号の発生 , CPU 間欠動作モードの一時停止サイクル数の設定などを行
います。
■ 低消費電力モード制御レジスタ (LPMCR)
図 3.8-4 低消費電力モード制御レジスタ (LPMCR)
7
6
5
4
3
W
W
R/W
W
W
2
1
0
リセット値
00011000B
R/W R/W R/W
bit0
予約
0
予約ビット
必ず"0"に設定してください
bit2 bit1
CG1 CG0
CPU一時停止サイクル数選択ビット
0
0
0サイクル(CPUクロック=周辺クロック)
0
1
8サイクル(CPUクロック:周辺クロック=1:約3~4)
1
0
16サイクル(CPUクロック:周辺クロック=1:約5~6)
1
1
32サイクル(CPUクロック:周辺クロック=1:約9~10)
bit3
TMD
0
1
時計モードビット
時計モードまたはタイムベースタイマモードに遷移
影響なし
bit4
RST
0
1
内部リセット信号発生ビット
3マシンサイクルの内部リセット信号を発生
bit5
SPL
0
1
端子状態指定ビット
入出力端子の状態を保持
影響なし
ハイインピーダンス
タイムベースタイマ・時計・ストップモードの場合のみ
bit6
SLP
0
1
スリープモードビット
影響なし
スリープモードに遷移
bit7
STP
R/W
W
:リード・ライト 可能
:ライトオンリ
:リセット値
ストップモードビット
0
影響なし
1
ストップモードに遷移
133
第 3 章 CPU の機能
表 3.8-1 低消費電力モード制御レジスタ (LPMCR) の機能
ビット名
機 能
bit7
STP:
ストップモードビット
ストップモードに移行します。
"0" に設定した場合 : 影響しません。
"1" に設定した場合 : ストップモードに移行します。
リードした場合 : 常に "1" が読み出されます。
• リセットあるいは外部割込み発生で "0" に初期化され
ます。
bit6
SLP:
スリープモードビット
スリープモードに移行します。
"0" に設定した場合 : 影響しません。
"1" に設定した場合 : スリープモードに移行します。
• リセットあるいは外部割込み発生で "0" に初期化され
ます。
• STP ビットと SLP ビットを同時に "1" をセットした場
合は , STP ビットが優先され , ストップモードに移行
します。
bit5
SPL:
端子状態設定ビット
ストップモード , 時計モード , タイムベースタイマモード
に移行した場合の入出力端子の状態を設定します。
"0" に設定した場合 : 入出力端子の現在のレベルを保持
します。
"1" に設定した場合 : 入出力端子をハイインピーダンス
にします。
• リセットで "0" に初期化されます。
bit4
RST:
内部リセット信号発生
ビット
ソフトウェアリセットを発生します。
"0" に設定した場合 : 3 マシンサイクルの内部リセット信
号が発生されます。
"1" に設定した場合 : 影響しません。
リードした場合 : 常に "1" が読み出されます。
bit3
TMD:
時計モードビット
時計モードにまたはタイムベースタイマモードに移行し
ます。
"0" に設定した場合 : 時計モードに移行します。
"1" に設定した場合 : 影響しません。
• リセットや割込みにより , "1" がセットされます。
リードした場合 : 常に "1" が読み出されます。
bit2
bit1
CG1, CG0:
CPU 一時停止サイク
ル数選択ビット
CPU 間欠動作モードでの CPU クロックの一時停止サイ
クル数を設定します。
• すべてのリセットにより , リセット値に戻ります。
bit0
予約 : 予約ビット
必ず "0" に設定してください。
bit7
STP:
ストップモードビット
ストップモードに移行します。
"0" に設定した場合 : 影響しません。
"1" に設定した場合 : ストップモードに移行します。
リードした場合 : 常に "1" が読み出されます。
• リセットあるいは外部割込み発生で "0" に初期化され
ます。
134
第 3 章 CPU の機能
<注意事項>
• 低消費電力モード制御レジスタ (LPMCR) において低消費電力モードに移行する
設定を行う場合は , 表 3.8-2 の命令を使用してください。
• 表 3.8-2 の命令による低消費電力モード遷移命令の直後には必ず下記
内の命
令列を配置してください。
MOV LPMCR, #H’xx
; 表 3.8-2 の低消費電力モード遷移命令
NOP
NOP
JMP $+3
; 次の命令へのジャンプ
MOV A, #H’10
; 任意の命令
内の命令列以外が配置されるとスタンバイモード解除後の動作は保証され
ません。
• C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は 「3.8.8
,
低消費電力モード使用上の注意」の「スタンバイモード遷移のための低消費電
力モード制御レジスタ (LPMCR) へアクセスする際の注意事項」を参照してくだ
さい。
• 低消費電力モード制御レジスタ (LPMCR) にワード単位で書込みを行う場合は ,
偶数アドレスで書込みを行ってください。奇数アドレスでの書込みを行うと , 誤
動作の原因になることがあります。
• ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポー
トを兼用している端子をハイインピーダンスに設定する場合は , 周辺機能の出力
を禁止に設定した後 , 低消費電力モード制御レジスタ (LPMCR) の STP ビット
を "1" または TMD ビットを "0" に設定してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3, P21/TOT0, P23/TOT1
• MB90F897S にサブクロックはありません。
表 3.8-2 低消費電力モードに遷移する場合に使用する命令一覧
MOV
io,#imm8
MOV
dir,#imm8
MOV
eam,#imm8
MOV
eam,Ri
MOV
io,A
MOV
dir,A
MOV
addr16,A
MOV
eam,A
MOV
@RLi+disp8,A
MOVW
io,#imm16
MOVW
dir,#imm16
MOVW
eam,#imm16
MOVW eam,RWi
MOVW
io,A
MOVW
dir,A
MOVW
addr16,A
MOVW eam,A
MOVW @RLi+disp8,A
SETB
io:bp
SETB
dir:bp
SETB
addr16:bp
CLRB
io:bp
CLRB
dir:bp
CLRB
addr16:bp
135
第 3 章 CPU の機能
3.8.4
CPU 間欠動作モード
CPU 間欠動作モードは , CPU と周辺機能に動作クロックを供給したまま , CPU を間
欠動作させることによって消費電力を低減する動作モードです。
■ CPU 間欠動作モードの動作
CPU 間欠動作モードでは , レジスタや内蔵メモリ , I/O, 周辺機能に CPU がアクセスす
る際に CPU に供給されるクロックを 1 命令実行するごとに一時停止させて内部バスの
起動を遅らせます。周辺機能には高速のクロックを供給しながら , CPU の実行速度を
下げることによって消費電力を低減することができます。
• CPU へのクロック供給を一時停止するマシンサイクル数は , 低消費電力モード制御
レジスタ (LPMCR) の CG1, CG0 ビットで設定します。
• CPU 間欠動作モードの命令実行時間は , レジスタ , 内蔵メモリ , 周辺機能にアクセス
を行う回数に一時停止サイクル数を掛けた補正値と , 通常の実行時間を加算するこ
とによって求められます。
CPU 間欠動作モードのクロック動作を , 図 3.8-5 に示します。
図 3.8-5 CPU 間欠動作モードのクロック動作
周辺クロック
CPUクロック
一時停止サイクル
1命令実行
サイクル
内部バス起動
136
第 3 章 CPU の機能
スタンバイモード
3.8.5
スタンバイモードでは , スタンバイ制御回路によって CPU または周辺機能への動作
クロックの供給を停止したり , 発振クロックを停止することによって消費電力を低減
します。
■ スタンバイモードの種類と動作状態
スタンバイモードの種類と動作状態を , 表 3.8-3 に示します。
表 3.8-3 スタンバイモードの種類と動作状態 (1 / 2)
モード名
スリープ
モード
タイム
ベース
タイマ
モード
メイン
スリープ
モード
MCS=1
SCS=1
SLP=1
サブ
スリープ
モード
MCS=X
SCS=0
SLP=1
PLL
スリープ
モード
MCS=0
SCS=1
SLP=1
SPL=0
MCS=X
SCS=1
TMD=0
SPL=1
時計
モード
遷移
条件
SPL=0
SPL=1
MCS=X
SCS=1
TMD=0
MCS=X
SCS=0
TMD=0
MCS=X
SCS=0
TMD=0
発振
クロック
(HCLK)
○
×
○
○
○
×
×
サブ
クロック
(SCLK)
○
○
○
○
○
○
○
マシン
クロック
○
○
○
×
×
×
×
CPU
×
×
×
×
×
周辺
機能
○
○
○
×
*1
× *1
×
× *2
×
*2
×
端子
解除方法
○
外部
リセット
または
割込み
○
外部
リセット
または
割込み
○
外部
リセット
または
割込み
◇
外部
リセット
または
割込み *4
Hi-Z
*3
◇
Hi-Z
*3
外部
リセット
または
割込み *4
外部
リセット
または
割込み *5
外部
リセット
または
割込み *5
137
第 3 章 CPU の機能
表 3.8-3 スタンバイモードの種類と動作状態 (2 / 2)
モード名
ストップ
モード
SPL=0
遷移
条件
発振
クロック
(HCLK)
マシン
クロック
CPU
×
×
×
×
×
×
○ : 動作 × : 停止 ◇ : 移行前の状態を保持 Hi-Z: ハイインピーダンス *1: タイムベースタイマと時計タイマは動作します。
*2: 時計タイマは動作します。
*3: DTP/ 外部割込みの入力端子は動作します。
*4 : 時計タイマ , タイムベースタイマおよび外部割込み
*5 : 時計タイマおよび外部割込み
*6 : 外部割込み
MCS : クロック選択レジスタ (CKSCR) の PLL クロック選択ビット
SCS : クロック選択レジスタ (CKSCR) のサブクロック選択ビット
SPL : 低消費電力モード制御レジスタ (LPMCR) の端子状態設定ビット
SLP : 低消費電力モード制御レジスタ (LPMCR) のスリープモードビット
STP : 低消費電力モード制御レジスタ (LPMCR) のストップモードビット
TMD: 低消費電力モード制御レジスタ (LPMCR) の時計モードビット
138
端子
×
◇
STP=1
×
<注意事項>
周辺
機能
STP=1
×
SPL=1
サブ
クロック
(SCLK)
MB90F897S にサブクロックはありません。
×
Hi-Z
*3
解除方法
外部
リセット
または
割込み *6
外部
リセット
または
割込み *6
第 3 章 CPU の機能
3.8.5.1
スリープモード
スリープモードは , 各クロックモード動作中に CPU への動作クロックを停止させる
動作モードです。CPU は停止し , 周辺機能は動作します。
■ スリープモードへの移行
低 消費 電 力 モー ド 制御 レ ジス タ の設 定 によ り ス リー プ モー ド に移 行 した 場 合 は
(LPMCR: SLP=1, STP=0), クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビット
の設定に従って , スリープモードに移行します。
クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットの設定とスリープモード
の対応を , 表 3.8-4 に示します。
表 3.8-4 クロック選択レジスタ (CKSCR) の設定とスリープモード
クロック選択レジスタ (CKSCR)
移行するスリープモード
<注意事項>
MCS
SCS
1
1
メインスリープモード
0
1
PLL スリープモード
1
0
0
0
サブスリープモード
• 低消費電力モード制御レジスタ (LPMCR) の STP ビットと SLP ビットを同時に
"1" をセットした場合は , STP ビットが優先され , ストップモードに移行します。
また , SLP ビットに "1", TMD ビットに "0" を同時にセットした場合は , TMD ビッ
トが優先され , タイムベースタイマモードまたは時計モードに移行します。
• MB90F897S にサブクロックはありません。
● データ保持機能
スリープモード中は , アキュムレータなどの専用レジスタと内部 RAM の内容を保持さ
れます。
● 割込み要求が発生している場合の動作
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を設定した場合に , 割込
み要求が発生していると , スリープモードには移行しません。CPU が割込み要求を受
け付けない状態であれば現在実行されている命令の次の命令を実行します。逆に CPU
が割込み要求を受け付られる状態であれば , 直ちに割込み処理ルーチンに分岐します。
● 端子状態
スリープモード中は , バス入出力またはバス制御で使用されている端子以外は , スリー
プモードに移行する前の状態を保持します。
139
第 3 章 CPU の機能
■ スリープモードからの復帰
スリープモードは , リセット要因または割込みの発生によって解除されます。
● リセット要因による復帰
リセット要因によってスリープモードが解除された場合は,スリープモード解除後にメ
インクロックモードに移行し , リセットシーケンスに移行します。
<注意事項>
• サブスリープモードから外部リセット端子 (RST 端子 ) にてメインクロックモー
ドへ復帰する場合は ,
( 振動子の発振時間 *+100μs+16 マシンサイクル ( メインクロック )) 以上
"L" レベルを入力してください。
*: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶振動子は , 数 ms ∼
数十 ms, セラミック発振子は , 数百 μs ∼数 ms, 外部クロックは , 0ms とな
ります。
• MB90F897S にサブクロックはありません。
● 割込みによる復帰
スリープモード中に , 周辺機能などから割込みレベル (IL) が 7 より強い割込み要求が
発生した場合は , スリープモードが解除されます。発生した割込み要求は , スリープ
モード解除後 , 通常の割込み処理と同様にコンディションコードレジスタ (CCR) の I フ
ラグ , 割込みレベルマスクレジスタ (ILM), 割込み制御レジスタ (ICR) の設定に従って ,
割込み要求の判定が行われます。
• CPU が割込み要求を受け付けない状態の場合は , 現在実行されている命令の次の命
令を実行します。
• CPU が割込み要求を受け付られる状態の場合は , 直ちに割込み処理ルーチンに分岐
します。
割込み発生によるスリープモードの解除を図 3.8-6 に示します。
図 3.8-6 割込み発生によるスリープモードの解除
周辺機能の割込みフラグ設定
INT発生(IL<7)
NO
スリープ解除しない
スリープ解除しない
YES
I = 0
YES
スリープ解除する
次の命令を実行
NO
ILM<IL
YES
NO
割込み処理の実行
<注意事項>
140
割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実
行した後に , 割込み処理に移行します。
第 3 章 CPU の機能
3.8.5.2
時計モード
時計モードは , サブクロック (SCLK) のみ動作させ , 時計タイマだけを動作させる
モードです。メインクロック , PLL クロックは停止します。
■ 時計モードへの移行
低消費電力モード制御レジスタ (LPMCR) の設定によりサブクロックモードの状態で
LPMCR の TMD ビットに 0 を書き込んだ場合は , 時計モードに移行します。
● データ保持機能
時計モード中は , アキュムレータなどの専用レジスタと内部 RAM の内容を保持されま
す。
● 割込み要求が発生している場合の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割
込み要求が発生していると , 時計モードには移行しません。CPU が割込み要求を受け
付けない状態であれば現在実行されている命令の次の命令を実行します。逆に CPU が
割込み要求を受け付られる状態であれば , 直ちに割込み処理ルーチンに分岐します。
● 端子状態
時計モード中の入出力端子の状態は , 低消費電力モード制御レジスタ (LPMCR) の SPL
ビットによって , ハイインピーダンス状態にするか , 時計モード移行前の状態を保持す
るかを設定できます。
<注意事項>
• 時計モード時に , 周辺機能とポートを兼用している端子をハイインピーダンスに
設定する場合は , 周辺機能の出力を禁止に設定した後 , TMD ビットを "0" に設定
してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3, P21/TOT0, P23/TOT1
• MB90F897S にサブクロックはありません。
141
第 3 章 CPU の機能
■ 時計モードからの復帰
時計モードは , リセット要因または割込みの発生によって解除されます。
● リセット要因による復帰
リセット要因によって時計モードが解除された場合は , 時計モード解除後にメインク
ロックモードに移行し , リセットシーケンスに移行します。
<注意事項>
• 時計モードから外部リセット端子 (RST 端子 ) にてメインクロックモードへ復帰
する場合は ,
( 振動子の発振時間 *+100μs+16 マシンサイクル ( メインクロック )) 以
"L" レベルを入力してください。
*: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶振動子は , 数 ms ∼
数十ms, セラミック発振子は,数百μs∼数ms,外部クロックは, 0msとなります。
• MB90F897S にサブクロックはありません。
● 割込みによる復帰
時計モード中に , 時計タイマおよび外部割込みから割込みレベル (IL) が 7 より強い割
込み要求が発生した場合は , 時計モードが解除されます。時計モード解除後は , 通常の
割込み処理と同様にコンディションコードレジスタ (CCR) の I フラグ , 割込みレベルマ
スクレジスタ (ILM), 割込み制御レジスタ (ICR) の設定に従って , 割込み要求の判定が
行われます。サブ時計モードの場合は , 発振待ち時間はないので , 時計モード復帰後 ,
直ちに発生した割込み要求の判定が行われます。
• CPU が割込み要求を受け付けない状態の場合は , 現在実行されている命令の次の命
令を実行します。
• CPU が割込み要求を受け付られる状態の場合は , 直ちに割込み処理ルーチンに分岐
します。
<注意事項>
• 割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行
した後に , 割込み処理に移行します。
• MB90F897S にサブクロックはありません。
142
第 3 章 CPU の機能
3.8.5.3
タイムベースタイマモード
タイムベースタイマモードは , 発振クロック (HCLK) とサブクロック (SCLK), タイ
ムベースタイマおよび時計タイマだけを動作させるモードです。タイムベースタイ
マと時計タイマ以外の周辺機能は停止します。
■ タイムベースタイマモードへの移行
PLL クロックモードまたはメインクロックモードの動作中に (CKSCR: SCM=1), 低消費
電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合は , タイム
ベースタイマモードに移行します。
● データ保持機能
タイムベースタイマモード中は , アキュムレータなどの専用レジスタと内部 RAM の内
容を保持されます。
● 割込み要求が発生している場合の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割
込み要求が発生していると , タイムベースタイマモードには移行しません。CPU が割
込み要求を受け付けない状態であれば現在実行されている命令の次の命令を実行しま
す。逆に CPU が割込み要求を受け付られる状態であれば , 直ちに割込み処理ルーチン
に分岐します。
● 端子状態
タイムベースタイマモード中の入出力端子の状態は , 低消費電力モード制御レジスタ
(LPMCR) の SPL ビットによって , ハイインピーダンス状態にするか , タイムベースタ
イマモード移行前の状態を保持するかを設定できます。
<注意事項>
タイムベースタイマモード時に , 周辺機能とポートを兼用している端子をハイイン
ピーダンスに設定する場合は , 周辺機能の出力を禁止に設定した後 , TMD ビット
を "0" に設定してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3, P21/TOT0, P23/TOT1
143
第 3 章 CPU の機能
■ タイムベースタイマモードからの復帰
タイムベースタイマモードは , リセット要因または割込みの発生によって解除されま
す。
● リセット要因による復帰
リセット要因によってタイムベースタイマモードが解除された場合は,タイムベースタ
イマモード解除後にメインクロックモードに移行し , リセットシーケンスに移行しま
す。
<注意事項>
タイムベースタイマモードから外部リセット端子 (RST 端子 ) にてメインクロック
モードへ復帰する場合は , 100μs 以上 "L" レベルを入力してください。
● 割込みによる復帰
タイムベースタイマモード中に , 時計タイマ , タイムベースタイマおよび外部割込みか
ら割込みレベル (IL) が 7 より強い割込み要求が発生した場合は , タイムベースタイマ
モードが解除されます。発生した割込み要求は , タイムベースタイマモード解除後 , 通
常の割込み処理と同様にコンディションコードレジスタ (CCR) の I フラグ , 割込みレベ
ルマスクレジスタ (ILM), 割込み制御レジスタ (ICR) の設定に従って , 割込み要求の判
定が行われます。
• CPU が割込み要求を受け付けない状態の場合は , 現在実行されている命令の次の命
令実行します。
• CPU が割込み要求を受け付られる状態の場合は , 直ちに割込み処理ルーチンに分岐
します。
• タイムベースタイマモードには次の 2 種類があります。
- メインクロック←→タイムベースタイマモード
- PLL クロック←→タイムベースタイマモード
<注意事項>
• 割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の
次の命令を実行した後に , 割込み処理に移行します。
• 割込みによりタイムベースタイマモードから復帰する場合は , 割込み要求受付後
最大 80μs 経過後 , 割込み処理が行われます。
144
第 3 章 CPU の機能
3.8.5.4
ストップモード
ストップモードは , 各クロックモード動作中に発振クロック (HCLK) とサブクロック
(SCLK) を停止させるモードです。最も消費電力が少ない状態でデータを保持できま
す。
■ ストップモード
PLLクロックモード動作中に(CKSCR: MCS=1, SCS=0),低消費電力モード制御レジスタ
(LPMCR) の STP ビットに "1" を書き込んだ場合は , クロック選択レジスタ (CKSCR) の
MCS ビット , SCS ビットの設定に従って , ストップモードに移行します。
クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットの設定とスリープモード
の対応を , 表 3.8-5 に示します。
表 3.8-5 クロック選択レジスタ (CKSCR) の設定とストップモード
クロック選択レジスタ (CKSCR)
移行するストップモード
<注意事項>
MCS
SCS
1
1
メインストップモード
0
1
PLL ストップモード
1
0
0
0
サブストップモード
• 低消費電力モード制御レジスタ (LPMCR) の STP ビットと SLP ビットを同時に
"1" をセットした場合は , STP ビットが優先され , ストップモードに移行します。
• MB90F897S にサブクロックはありません。
● データ保持機能
ストップモード中は , アキュムレータなどの専用レジスタと内部 RAM の内容を保持さ
れます。
● 割込み要求が発生している場合の動作
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込
み要求が発生していると , ストップモードには移行しません。CPU が割込み要求を受
け付けない状態であれば現在実行されている命令の次の命令を実行します。逆に CPU
が割込み要求を受け付られる状態であれば , 直ちに割込み処理ルーチンに分岐します。
● 端子状態
ストップモード中の入出力端子の状態は , 低消費電力モード制御レジスタ (LPMCR) の
SPL ビットによって , ハイインピーダンス状態にするか , ストップモード移行前の状態
を保持するかを設定できます。
145
第 3 章 CPU の機能
<注意事項>
ストップモード時に , 周辺機能とポートを兼用している端子をハイインピーダンス
に設定する場合は , 周辺機能の出力を禁止に設定した後 , STP ビットを "1" に設定
してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3, P21/TOT0, P23/TOT1
■ ストップモードからの復帰
ストップモードは , リセット要因または割込みの発生によって解除されます。ストップ
モードから復帰する場合は , 発振クロック (HCLK) およびサブクロック (SCLK) が停止
しているため,メインクロック発振安定待ち時間またはサブクロック発振安定待ち時間
を経て , ストップモードが解除されます。
● リセット要因による復帰
リセット要因によってストップモードが解除された場合は,メインクロック発振安定待
ち時間が生じます。メインクロック発振安定待ち時間終了後 , ストップモードが解除さ
れ , リセットシーケンスに移行します。
サブストップモードからの外部リセットによる復帰動作を , 図 3.8-7 に示します。
図 3.8-7 サブストップモードからの外部リセットによる復帰動作
RST端子
ストップモード
メインクロック
発振安定待ち
発振中
サブクロック
発振安定待ち
発振中
発振安定待ち
PLLクロック
サブクロック
メインクロック PLLクロック
リセットシーケンス
通常処理
CPU動作クロック
CPU動作
停止中
発振中
ストップモード解除
リセット解除
<注意事項>
• ストップモードから外部リセット端子 (RST 端子 ) にてメインクロックモードへ
復帰する場合は ,
( 振動子の発振時間 *+100μs+16 マシンサイクル ( メインクロック )) 以上
"L" レベルを入力してください。
*: 振動子の発振時間は , 振幅が 90% に達する時間です。水晶振動子は , 数 ms ∼
数十 ms, セラミック発振子は , 数百 μs ∼数 ms, 外部クロックは , 0ms となり
ます。
• MB90F897S にサブクロックはありません。
146
第 3 章 CPU の機能
● 割込みによる復帰
ストップモード中に , 外部割込みから割込みレベル (IL) が 7 より強い割込み要求が発
生した場合は , ストップモードが解除されます。ストップモードの場合は , ストップ
モード解除後にメインクロック発振待ち時間またはサブクロック発振時間が生じま
す。発生した割込み要求は , メインクロック発振待ち時間またはサブクロック発振待ち
時間終了後 , 通常の割込み処理と同様にコンディションコードレジスタ (CCR) の I フラ
グ , 割込みレベルマスクレジスタ (ILM), 割込み制御レジスタ (ICR) の設定に従って , 割
込み要求の判定が行われます。
• CPU が割込み要求を受け付けない状態の場合は , 現在実行されている命令の次の命
令を実行します。
• CPU が割込み要求を受け付られる状態の場合は , 直ちに割込み処理ルーチンに分岐
します。
<注意事項>
・割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を
実行した後に , 割込み処理に移行します。
・PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているた
め , PLL ストップモードから復帰する場合は , メインクロック発振安定待ち時間
および PLL クロック発振安定待ち時間を確保する必要があります。この場合の発
振安定待ち時間は , クロック選択レジスタの発振安定待ち時間選択ビット
(CKSCR:WS1, WS0) に設定された値に従い , メインクロック発振安定待ち時間
および PLL クロック発振安定待ち時間を同時にカウントしますので ,
CKSCR:WS1, WS0 ビットには , 発振安定待ち時間の長い方に合わせて値を設定
してください。ただし , PLL クロック発振安定待ち時間は 214/HCLK 以上必要で
すので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を設定してくださ
い。
147
第 3 章 CPU の機能
スタンバイモードの状態遷移
3.8.6
MB90895 シリーズのクロックモードおよびスタンバイモードの動作状態と遷移を ,
チャートに示します。
■ 状態遷移図
図 3.8-8 状態遷移図
外部リセット,ウォッチドッグタイマリセット,ソフトウェアリセット
電源投入
パワーオンリセット
リセット
SCS=0
SCS=1
発振安定待ち終了
メインクロックモード MCS=0
PLLクロックモード
MCS=1
SLP=1
割込み
メインスリープモード
TMD=0
割込み
メインタイムベース
タイマモード
STP=1
メインストップモード
SCS=0
サブクロックモード
SCS=1
SLP=1
割込み
PLLスリープモード
TMD=0
割込み
PLLタイムベース
タイマモード
STP=1
PLLストップモード
SLP=1
サブスリープモード
TMD=0
<注意事項>
PLLクロック
発振安定待ち
割込み
時計モード
STP =1
サブストップモード
割込み 発振安定待ち終了 割込み 発振安定待ち終了 割込み
メインクロック
発振安定待ち
割込み
発振安定待ち終了
サブクロック
発振安定待ち
• クロックモードを切り換えた場合,切換えが完了するまでは,ほかのクロックモー
ドおよび低消費電力モードへの切換えを行わないようにしてください。切換えの
完了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照
して確認してください。切換えが完了する前に , ほかのクロックモードおよび低
消費電力モードへの切換えを行った場合 , 切り換わらない場合があります。
• MB90F897S にサブクロックはありません。
148
第 3 章 CPU の機能
スタンバイモードとリセット時の端子状態
3.8.7
スタンバイモードとリセット時の各入出力端子の状態を , 各アクセスモードごとに示
します。
■ 入出力端子の状態 ( シングルチップモード )
表 3.8-6 入出力端子の状態 ( シングルチップモード )
ストップ / 時計 /
端子名
スリープ時
タイムベースタイマ時
SPL=0
リセット時
SPL=1
P17 ∼ P10
P27 ∼ P20
P37 ∼ P35, P33 ∼ P30
P44 ∼ P40
直前の状態を
保持* 1
入力遮断 /
直前の状態を
保持* 1
入力遮断 /
出力
Hi-Z * 2
入力不可 /
出力 Hi-Z
P57 ∼ P50
* 1: 各スタンバイモードになる直前に出力していた状態をそのまま出力または入力であれば入力不可を意味
します。出力していた状態をそのまま出力する , とは出力のある周辺機能が動作中であれば周辺機能の状
態に従い出力を行い , 出力端子として出力している場合にはその出力を保持するということを意味しま
す。入力不可とは , 端子の入力ゲートの動作は許可されているが , 内部回路が停止しているので , 端子の
内容が内部で受け付けられない状態を意味します。
* 2: 入力遮断状態では , 入力はマスクされ "L" レベルが内部に伝わります。出力 Hi-Z は端子駆動用トランジ
スタを駆動禁止状態にして , 端子をハイインピーダンスにすることを意味します。
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポート
を兼用している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁
止に設定した後 , STP ビットを "1" または TMD ビットを "0" に設定してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3, P21/TOT0, P23/TOT1
149
第 3 章 CPU の機能
3.8.8
低消費電力モード使用上の注意
低消費電力モードを使用する際には , 以下の点にご注意ください。
■ スタンバイモードへの移行
周辺装置から CPU に対して割込み要求が発生している場合は , 低消費電力モード制御
レジスタ (LPMCR) の STP ビット , SLP ビットに "1" を設定しても , TMD ビットに "0"
を設定しても各スタンバイモードには移行しません ( 割込み処理後にも , 各スタンバイ
モードに移行しません )。
CPU が割込み処理中の場合は , 割込み処理中の割込み要求フラグがクリアされて , ほか
に割込み要求が発生していなければ , スタンバイモードに移行することができます。
■ スタンバイモードの割込みによる解除
スリープモード , 時計モード , タイムベースタイマモード , ストップモード中に , 動作
している周辺機能および外部割込みから割込みレベルが 7 よりも強い割込み要求が発
生した場合 , スタンバイモードは解除されます。割込みによるスタンバイモードの解除
は , CPU が割込みを受け付けるかどうかには関係ありません。
<注意事項>
• スタンバイモードからの復帰直後に割込み処理に分岐させない場合は , スタンバ
イモード設定の前に割込みを禁止するなどの対策を行なってください。
• MB90F897S にサブクロックはありません。
■ スタンバイモードへ移行する場合の注意
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポートを兼
用している端子をハイインピーダンスにする時は,以下の手順に従って設定してくださ
い。
1. 周辺機能の出力を禁止します。
2. 低消費電力モード制御レジスタ (LPMCR) の SPL ビットに "1", STP ビットに "1" ま
たは TMD ビットに "0" を設定します。
<注意事項>
MB90F897S にサブクロックはありません。
■ スタンバイモードを解除する場合の注意
ストップモードに入る前に,外部割込みの入力要因の設定に従った入力により解除する
ことができます。
入力要因としては "H" レベル , "L" レベル , 立上りエッジ , 立下りエッ
ジが選択できます。
■ 発振安定待ち時間
● メインクロック発振安定待ち時間
サブクロックモード , 時計モード , ストップモード中は , メインクロックの発振が停止
しているため , メインクロック発振安定待ち時間を確保する必要があります。発振安定
待ち時間は , クロック選択レジスタ (CKSCR) の WS1, WS0 ビットで設定します。
150
第 3 章 CPU の機能
● サブクロック発振安定待ち時間
サブストップモード中は,サブクロック(SCLK)の発振が停止しているため,サブクロッ
ク発振安定待ち時間を確保する必要があります。発振安定待ち時間は , 214/SCLK
(SCLK: サブクロック ) に固定されています。
● PLL クロック発振安定待ち時間
メインクロックモード中は , PLL 逓倍回路が停止しているため , PLL クロックモードに
移行する場合は , PLL クロック発振安定待ち時間を確保する必要があります。PLL 発
振安定待ち時間中は , メインクロックで動作します。メインクロックモードから PLL
クロックモードに切り替えた場合の PLL クロック発振安定待ち時間は , 214/HCLK
(HCLK: 発振クロック ) に固定されています。
サブクロックモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLL クロックモードに移行する場合は , メインクロック発振安定待ち時間および PLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間
の長い方に合わせて値を設定してください。ただし , PLL クロックの発振安定待ち時
間は 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B"
を設定してください。
PLL ストップモード中は , メインクロックおよび PLL 逓倍回路が停止しているため ,
PLL ストップモードから復帰する場合は , メインクロック発振安定待ち時間および PLL
クロック発振安定待ち時間を確保する必要があります。この場合の発振安定待ち時間
は , クロック選択レジスタの発振安定待ち時間選択ビット (CKSCR:WS1, WS0) に設定
された値に従い , メインクロック発振安定待ち時間および PLL クロック発振安定待ち
時間を同時にカウントしますので , CKSCR:WS1, WS0 ビットには , 発振安定待ち時間
の長い方に合わせて値を設定してください。ただし , PLL クロック発振安定待ち時間
は , 214/HCLK 以上必要ですので , CKSCR:WS1, WS0 ビットには , "10B" または "11B" を
設定してください。
■ クロックモードの切換え
クロックモードを切換えた場合,切換えが完了するまでは低消費電力モードへの切換え
およびほかのクロックモードへの切換えを行わないようにしてください。切換えの完
了はクロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照して確
認してください。切換えが完了する前に , ほかのクロックモードおよび低消費電力モー
ドへの切換えを行った場合 , 切り換わらない場合があります。
<注意事項>
MB90F897S にサブクロックはありません。
151
第 3 章 CPU の機能
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセスする際の注意
事項
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
• 低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設
定を行う場合は , 表 3.8-2 の命令を使用してください。
• 表 3.8-2 の命令による低消費電力モード遷移命令の直後には必ず下記
列を配置してください。
MOV LPMCR, #H’xx
内の命令
; 表 3.8-2 の低消費電力モード遷移命令
NOP
NOP
JMP $+3
MOV A, #H’10
; 次の命令へのジャンプ
; 任意の命令
内の命令列以外が配置されるとスタンバイモード解除後の動作は保証されま
せん。
● C 言語を使用して低消費電力モード制御レジスタ (LPMCR) にアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 以下の 1 から 3 のいずれかの方法でアクセスしてください。
1. スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後に
__wait_nop() のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ復帰
の割り込み以外の割り込みが発生する可能性がある場合は , コンパイル時に最適化
を実施し , LINK/UNLINK 命令の発生を抑止してください。
例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 )
void enter_watch(){
IO_LPMCR.byte = 0x10; /* LPMCR の TMD ビットに 0 をセット */
__wait_nop();
__wait_nop();
}
2. スタンバイモードに遷移させる命令を __asm 文で記述し , スタンバイモード遷移命
令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( スリープモード遷移の場合 )
__asm( "
MOV I:_IO_LPMCR, #H’ 58);
__asm( "
NOP”);
__asm( "
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
152
/* LPMCR の STP ビットに 1 をセット */
/* 次の命令へのジャンプ
*/
第 3 章 CPU の機能
CPU モード
3.9
F2MC-16LX は , 動作モードおよびメモリアクセスモードを切り替えて , CPU の動作 ,
アクセスする方式や領域を設定することができます。
■ モード分類
F2MC-16LXの動作モードおよびメモリアクセスモードの分類について,表 3.9-1 に示し
ます。各モードは , リセット時のモード端子 (MD2 ∼ MD0) とモードフェッチされた
モードデータによって設定されます。
表 3.9-1 モード分類
メモリアクセスモード
動作モード
バスモード
RUN モード
シングルチップモード
( 内部 ROM 内部バスモード )
フラッシュシリアル書込みモード
−
フラッシュメモリモード
−
■ 動作モード
動作モードとは , デバイスの動作状態を制御するモードで , モード端子 (MD2 ∼ MD0)
で設定します。
● RUN モード
RUN モードとは , 通常の CPU 動作モードのことです。メインクロックモード , PLL ク
ロックモード , サブクロックモード各種の低消費電力モードがあります。
<参考>
低消費電力モードについては ,「3.8 低消費電力モード」を参照してください。
● フラッシュシリアル書込みモード / フラッシュメモリモード
MB90895 シリーズには , ユーザが書込み可能なフラッシュメモリを内蔵した品種があ
ります。
フラッシュシリアル書込みモードとは , シリアルでフラッシュメモリにプログラムや
データを書き込むためのモードです。
153
第 3 章 CPU の機能
3.9.1
モード端子 (MD2 ∼ MD0)
モード端子は MD2 ∼ MD0 の 3 本の外部端子で , 組み合せることによって次の設定
ができます。
• 動作モード (RUN モード , フラッシュシリアル書込みモード , フラッシュメモリ
モード ) を設定します。
• リセットベクタとモードデータの取込方法を設定します。
■ モード端子 (MD2 ∼ MD0) の設定
モード端子による設定内容を表 3.9-2 に示します。
。
表 3.9-2 モード端子の設定
モード端子*
モード名
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
1
1
フラッシュメモリモード
設定禁止
内部ベクタモード
設定禁止
* :MD2 ∼ MD0: 0=VSS, 1=VCC としてください。
● 内部ベクタモード
リセットベクタは , 内部 ROM から取り込まれます。
● フラッシュシリアル書込みモード
フラッシュシリアル書込みは,モード端子の設定だけでは書込みを行うことができませ
ん。
<参考>
フラッシュシリアル書込みについての詳細は ,「第 20 章 デュアルオペレーション
フラッシュ」を参照してください。
● フラッシュメモリモード
パラレルライタ使用時のモードです。
■ モード端子の設定
図 3.9-1 に従って , モード端子を設定してください。
154
第 3 章 CPU の機能
図 3.9-1 モード端子の設定フロー
モード端子の設定
フラッシュメモリ
書込み
NO
YES
フラッシュ書込
モード
MD2
"1"
MD1
"1"
MD0
"1"
内部ベクタモード
MD2
"0"
MD1
"1"
MD0
"1"
MD0~MD2:0=Vss,1=Vccとしてください。また,上記以外に設定しないでください。
155
第 3 章 CPU の機能
モードデータ
3.9.2
モードデータによって , メモリアクセスモードを設定します。モードデータは , モー
ドフェッチによって CPU に自動的に取り込まれます。
■ モードデータ
モードレジスタの内容を変更できるのは , リセットシーケンスだけです。変更された
モードレジスタの内容は , リセットシーケンス後に有効になります。
図 3.9-2 モードデータ
7
6
5
4
R/W R/W R/W
3
R/W R/W
2
1
R/W R/W
0
R/W
bit0 bit1 bit2 bit3 bit4 bit5
予約ビット
予約
0
必ず"0"に設定してください
bit7 bit6
R/W
X
:リード・ライト可能
:不定
:リセット値
M1
0
0
1
1
M0
0
1
0
1
バスモード設定ビット
シングルチップモード
設定禁止
表 3.9-3 モードレジスタの機能
ビット名
156
機 能
bit7,
bit6
M1, M0:
バスモード設定ビット
必ず "00B" に設定してください。
bit5
∼
bit0
予約 : 予約ビット
必ず "0" を書き込んでください。
第 3 章 CPU の機能
■ モードデータの設定
図 3.9-3 に従って , モードデータを設定してください。
図 3.9-3 モードデータの設定フロー
モードデータの設定
シングルチップ
モード
シングルチップ
モード
モードデータ00B
モードデータは,上記数値以外には設定しないでください。
157
第 3 章 CPU の機能
3.9.3
メモリアクセスモード
メモリアクセスモードは , バスモードと外部アクセスモードに分かれます。
• バスモード : アクセス領域 ( 内部 ) を設定します。
■ バスモード
各モードのメモリマップを図 3.9-4 に示します。
図 3.9-4 各モードのメモリマップ
ROMミラー機能が有効の場合
000000H
周 辺
0000C0H
000100H
RAM領域
レジスタ
アドレス#1
003900H
拡張I/O領域
004000H
ROM領域
(FFバンク
のイメージ)
010000H
FE0000H
ROM領域
*
FF0000H
ROM領域
FFFE00H
FFFFFFH
ハードワイヤードリセットベクタ
:内部アクセスメモリ
:アクセス禁止
* :MB90F897/Sでは,FE0000H~FEFFFFHの領域を読み出すと,
FF0000H~FFFFFFHのデータが読み出せます。
<参考>
アクセス領域についての詳細は ,「3.1 メモリ空間」参照してください。
● シングルチップモード ( 内部 ROM 内部アクセス )
• 内蔵 ROM と内蔵 RAM だけを使用し , 外部アクセスは発生しません。
• ポート 1 ∼ 3 は汎用入出力ポートとして使用できます。
158
第 3 章 CPU の機能
3.9.4
メモリアクセスモード選択動作
リセットシーケンス中のメモリアクセスモード選択動作を示します。
■ メモリアクセスモード選択動作
CPU は , リセット解除後 , モード端子の設定とモードデータの設定を参照して , 図 3.95 の手順に従ってメモリアクセスモードを決定します。
図 3.9-5 メモリアクセスモード選択動作
リセット要因発生
モード端子(MD2,1,0)
の設定は?
モード端子の
チェック
内部データの読出し先は
内部ROM
全I/O端子
ハイインビーダンス
リセット要因解除待ち
(外部リセットまたは
発振安定待ち時間)
リセット動作中?
YES
NO
内部ROMからモードデータと
リセットベクタ取込み
モードフェッチ
(M1,M0=00B)
モードデータの
チェック
モードデータの
M1,M0ビット
シングルチップ
モードに設定
159
第 3 章 CPU の機能
160
第4章
I/O ポート
この章では , I/O ポートの機能と動作について説明
します。
4.1 I/O ポートの概要
4.2 I/O ポートのレジスタと外部バス兼用端子の割当て
4.3 ポート 1
4.4 ポート 2
4.5 ポート 3
4.6 ポート 4
4.7 ポート 5
4.8 ポート入力レベル選択レジスタ (PILR)
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
161
第 4 章 I/O ポート
4.1
I/O ポートの概要
I/O ポートは , 汎用入出力ポート ( パラレル I/O ポート ) として使用できます。ポー
ト数は , MB90895 シリーズでは 5 ポート (34 本 ) あります。
各ポートは周辺機能の入出力端子と兼用になっています。
■ I/O ポート機能
I/O ポートは , ポートデータレジスタ (PDR) によって , 出力データを I/O 端子に出力し ,
I/O ポートに入力された信号を取り込む機能があります。また , ポート方向レジスタ
(DDR) によって , I/O 端子の入出力の方向をビット単位で設定できます。
以下に各ポートの機能と兼用される周辺機能を示します。
• ポート 1: 汎用入出力ポート /PPG タイマ出力 , インプットキャプチャ入力と兼用。
• ポート 2: 汎用入出力ポート / リロードタイマ入出力 , 外部割込み入力端子と兼用。
• ポート 3: 汎用入出力ポート /A/D コンバータ起動トリガ端子と兼用
• ポート 4: 汎用入出力ポート /UART1 入出力 , CAN コントローラ送受信端子と兼用
• ポート 5: 汎用入出力ポート / アナログ入力端子と兼用
表 4.1-1 各ポートの機能一覧
ポート名
ポート 1
ポート 2
端子名
入力形式
P10/IN0 ∼
P13/IN3
P14/PPG0 ∼
P17/PPG3
出力形式
機能
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CMOS
汎用
入出力ポート
P17
P16
P15
P14
P13
P12
P11
P10
PPG3
PPG2
PPG1
PPG0
IN3
IN2
IN1
IN0
CMOS 高電流 周辺機能
P20/TIN0 ∼
P27/INT7
P30/SOT0 ∼
ポート 3 P33, P35/X0A ∼
P37/ADTG
汎用
入出力ポート
CMOS
( ヒステリシス )
/Automotive
/CMOS*1
周辺機能
汎用
入出力ポート
ポート 4
ポート 5
P40/SIN1 ∼
P44/RX
P50/AN0 ∼
P57/AN7
アナログ /CMOS
( ヒステリシス )
P26
P25
P24
P23
P22
P21
P20
INT6
INT5
INT4
INT3
INT2
INT1
INT0
P37
P36*2/
X1A
P35*2/
X0A
−
P33
P32
P31
P30
ADTG
−
−
−
−
SIN0
SCK0
SOT0
汎用
入出力ポート
−
−
−
P44
P43
P42
P41
P40
周辺機能
CMOS
P27
INT7
周辺機能
−
−
−
RX
TX
SOT1
SCK1
SIN1
汎用
入出力ポート
P57
P56
P55
P54
P53
P52
P51
P50
アナログ入力
端子
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
*1: P32/SIN0, P40/SIN1 のみ
*2: 低速発振用端子を選択 (MB90F897) した場合は P35, P36 は使用できません。
<注意事項>
162
• ポート 5 は , アナログ入力端子と兼用になっており , 汎用ポートとして使用す
る場合は , 必ず対応するアナログ入力許可レジスタ (ADER) のビットを "0" に設
定してください。リセットで ADER のビットは "1" になります。
第 4 章 I/O ポート
4.2
I/O ポートのレジスタと外部バス兼用端子の割当て
I/O ポートの設定に関連するレジスタの一覧と外部バス兼用端子の割当てを示しま
す。
■ I/O ポートのレジスタ一覧
表 4.2-1 に各ポートのレジスタ一覧を示します。
表 4.2-1 各ポートのレジスタ一覧
レジスタ名
リードライト
アドレス
リセット値
ポート 1 データレジスタ (PDR1)
R/W
000001H
XXXXXXXXB
ポート 2 データレジスタ (PDR2)
R/W
000002H
XXXXXXXXB
ポート 3 データレジスタ (PDR3)
R/W
000003H
XXXXXXXXB
ポート 4 データレジスタ (PDR4)
R/W
000004H
XXXXXXXXB
ポート 5 データレジスタ (PDR5)
R/W
000005H
XXXXXXXXB
ポート 1 方向レジスタ (DDR1)
R/W
000011H
00000000B
ポート 2 方向レジスタ (DDR2)
R/W
000012H
00000000B
ポート 3 方向レジスタ (DDR3)
R/W
000013H
000X0000B
ポート 4 方向レジスタ (DDR4)
R/W
000014H
XXX00000B
ポート 5 方向レジスタ (DDR5)
R/W
000015H
00000000B
アナログ入力許可レジスタ (ADER)
R/W
00001BH
11111111B
R/W: リード / ライト可能
X: 不定
163
第 4 章 I/O ポート
4.3
ポート 1
ポート 1 は , 周辺機能入出力端子と兼用の汎用入出力ポートで , シングルチップモー
ドに設定した場合は , 周辺機能の端子と汎用入出力ポートを切り替えて使用します。
汎用入出力ポートとしての機能を中心に説明し , ポート 1 の構成 , 端子配列 , 端子の
ブロックダイヤグラム , レジスタを示します。
■ ポート 1 の構成
ポート 1 は , 次の 3 つの要素から構成されます。
• 汎用入出力ポート / 周辺機能入出力端子 (P10/IN0 ∼ P17/PPG3)
• ポート 1 データレジスタ (PDR1)
• ポート 1 方向レジスタ (DDR1)
■ ポート 1 の端子配列
• シングルチップモードに設定した場合は , 周辺機能の端子と汎用入出力ポートを切
り替えて使用します。
• 周辺機能の端子と兼用のため周辺機能で使用する場合は , 汎用入出力ポートとして
使用できません。
• 周辺機能の入力端子として使用する場合は , ポート 1 方向レジスタ (DDR1) の周辺
機能に対応する端子を入力ポートに設定してください。
• 周辺機能の出力端子として使用する場合は , 対応する周辺機能の出力を許可に設定
してください。ポート 1 方向レジスタの設定に関わらず周辺機能の出力端子として
機能します。
164
第 4 章 I/O ポート
表 4.3-1 にポート 1 の端子配列を示します。
表 4.3-1 ポート 1 の端子配列
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P10/
IN0
P10
IN0
P11/
IN1
P11
IN1
P12/
IN2
P12
IN2
P13/
IN3
P13
P14/
PPG0
P14
P15/
PPG1
P15
ポート 1
<参考>
インプット
キャプチャ
入力
CMOS
D
CMOS
( ヒステリ
シス )/
Automotive
IN3
汎用入
出力
出力
回路
形式
PPG0
PPG1
P16/
PPG2
P16
PPG2
P17/
PPG3
P17
PPG3
PPG タイマ
出力
CMOS
高電流
G
入出力回路形式については「1.7 入出力回路形式」を参照してください。
165
第 4 章 I/O ポート
■ ポート 1 の端子のブロックダイヤグラム ( シングルチップモードの場合 )
図 4.3-1 ポート 1 の端子のブロックダイヤグラム
周辺機能入力
周辺機能出力
ポートデータレジスタ(PDR)
周辺機能出力許可
内部データバス
PDRリード
P-ch
出力ラッチ
PDRライト
端子
ポート方向レジスタ(DDR)
N-ch
方向ラッチ
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップモード(SPL=1),タイムベースタイマモード(SPL=1),時計モード(SPL=1)の制御
■ ポート 1 のレジスタ ( シングルチップモードの場合 )
• ポート 1 のレジスタには , ポート 1 データレジスタ (PDR1) およびポート 1 方向レジ
スタ (DDR1) があります。
• レジスタを構成するビットは , ポート 1 の端子に 1 対 1 で対応しています。
表 4.3-2 にポート 1 のレジスタと端子の対応を示します。
表 4.3-2 ポート 1 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR1, DDR1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P17
P16
P15
P14
P13
P12
P11
P10
ポート 1
166
第 4 章 I/O ポート
4.3.1
ポート 1 のレジスタ (PDR1, DDR1)
ポート 1 のレジスタについて説明します。
■ ポート 1 のレジスタの機能 ( シングルチップモードの場合 )
● ポート 1 データレジスタ (PDR1)
• ポート 1 データレジスタは , 端子の状態を示します。
● ポート 1 方向レジスタ (DDR1)
• ポート 1 方向レジスタは , 入出力方向を設定します。
• 端子に対応するビットを "1" に設定した場合は出力ポートとして機能し , "0" に設定
した場合は入力ポートとして機能します。
表 4.3-3 にポート 1 のレジスタの機能を示します。
表 4.3-3 ポート 1 のレジスタの機能
レジスタ名
ポート 1
データ
レジスタ
(PDR1)
ポート 1 方
向レジスタ
(DDR1)
データ
リードした場合
ライトした場合
0
端子状態が "L"
レベル
出力ラッチに "0" を設定
し , 出力ポートの場合は
端子に "L" レベルを出力
1
端子状態が "H"
レベル
出力ラッチに "1" を設定
し , 出力ポートの場合は
端子に "H" レベルを出力
0
方向ラッチが
"0"
出力バッファを "OFF"
し , 入力ポートに設定
1
方向ラッチが
"1"
出力バッファを "ON"
し , 出力ポートに設定
リード
ライト
レジスタ
アドレス
リセット値
R/W
000001H
XXXXXXXXB
R/W
000011H
00000000B
R/W: リードライト可能
X: 不定
<参考>
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート
1 方向レジスタ (DDR1) のビットを "0" にクリアして入力ポートに設定してくだ
さい。
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力を許可に設定してくだ
さい。ポート 1 方向レジスタ (DDR1) の設定に関わらず周辺機能の出力端子とし
て機能します。
167
第 4 章 I/O ポート
4.3.2
ポート 1 の動作説明
ポート 1 の動作を説明します。
■ ポート 1 の動作 ( シングルチップモードの場合 )
● 出力ポートの動作
• 出力端子に対応するポート 1 方向レジスタ (DDR1) のビットを "1" に設定した場合 ,
出力ポートとして機能します。
• 出力バッファが "ON" され , ポート 1 データレジスタ (PDR1) に出力データを書き込
むと , 出力ラッチに保持され , 端子から出力されます。
• ポート 1 データレジスタ (PDR1) を読み出すと , PDR1 の出力ラッチの状態が読み出
せます。
<注意事項>
ポートデータレジスタにリードモディファイライト系命令 ( ビットセット命令など )
を使用した場合 , ポート方向レジスタで出力ポートに設定している端子は目的とす
る出力がされますが , 入力ポートに設定している端子は入力状態が出力ラッチに書
き込まれて出力データとなります。入力ポートを出力ポートに切り換える場合は ,
ポートデータレジスタに出力データを書き込んでポート方向レジスタで出力ポート
に設定してください。
● 入力ポートの動作
• 入力端子に対応するポート 1 方向レジスタ (DDR1) のビットを "0" に設定した場合 ,
入力ポートとして機能します。
• 出力バッファが "OFF" され , 端子はハイインピーダンスになります。
• ポート 1 データレジスタ (PDR1) にデータを書き込むと , PDR1 の出力ラッチにデー
タが保持されますが , 端子には出力されません。
• ポート 1 データレジスタ (PDR1) レジスタを読み出すと , 端子のレベル値 ("L" また
は "H") が読み出せます。
● 周辺機能出力の動作
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力に対応する出力に許可に
設定してください。
• 周辺機能の出力許可が優先されるため , ポート 1 方向レジスタ (DDR1) の設定に関
わらず周辺機能の出力が機能します。
• 周辺機能の出力を許可に設定して端子状態を読み出した場合は , 周辺機能の出力状
態が読み出せます。
● 周辺機能入力の動作
• 周辺機能の入力と兼用の端子は , 周辺機能へ端子の状態が入力されています。
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート 1
方向レジスタ (DDR1) のビットを "0" にクリアして入力ポートに設定してください。
168
第 4 章 I/O ポート
● リセットの動作
• CPU がリセットされると , ポート 1 方向レジスタ値は "0" に初期化されます。出力
バッファはすべて "OFF"( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
• ポート 1 データレジスタは , リセットで初期化されないため , 出力ポートとして使
用する場合 , ポート 1 データレジスタに出力データをセットしてから , 出力端子に
対応するポート 1 方向レジスタのビットを "1" にセットして出力に設定する必要が
あります。
● ストップ , タイムベースタイマ , 時計モードの動作
• ストップモード , タイムベースタイマモード , 時計モードのいずれかに移行した時
点で , 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL) を "1" に
セットしている場合 , 端子はハイインピーダンスになります。ポート 1 方向レジス
タの設定に関係なく , 強制的に出力バッファが "OFF" されます。
表 4.3-4 にポート 1 の端子状態を示します。
表 4.3-4 ポート 1 の端子状態
端子名
通常動作
スリープ
モード
ストップモード ,
タイムベースタイマモード , 時計モード
SPL=0
P10/IN0 ∼
P17/PPG3
汎用入出力
ポート
汎用入出力
ポート
汎用入出力ポート
SPL=1
入力遮断 / 出力 Hi-Z
( プルアップ抵抗は
切断されます )
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL)
Hi-Z: ハイインピーダンス
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポート
を兼用している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁
止に設定した後 , STP ビットを "1" または TMD ビットを "0" に設定してください。
対象となる端子を以下に示します。
対象端子 :P14/PPG0, P15/PPG1, P16/PPG2, P17/PPG3
169
第 4 章 I/O ポート
4.4
ポート 2
ポート 2 は , 周辺機能入出力端子と兼用の汎用入出力ポートで , 周辺機能の端子と汎
用入出力ポートを切り替えて使用します。
汎用入出力ポートとしての機能を中心に説明し , ポート 2 の構成 , 端子配列 , 端子の
ブロックダイヤグラム , レジスタを示します。
■ ポート 2 の構成
ポート 2 は , 次の 4 つの要素から構成されます。
• 汎用入出力ポート / 周辺機能入出力端子 (P20/TIN0 ∼ P27/INT7)
• ポート 2 データレジスタ (PDR2)
• ポート 2 方向レジスタ (DDR2)
• アドレス上位制御レジスタ (HACR)
■ ポート 2 の端子配列
• 周辺機能の端子と汎用入出力ポートを切り替えて使用します。
• 周辺機能の端子と兼用のため周辺機能で使用する場合は汎用入出力ポートとして
使用できません。
• 周辺機能の入力端子として使用する場合は , ポート 2 方向レジスタ (DDR2) の周辺
機能に対応する端子を入力ポートに設定してください。
• 周辺機能の出力端子として使用する場合は , 対応する周辺機能の出力を許可に設定
してください。ポート 2 方向レジスタの設定に関わらず周辺機能の出力端子として
機能します。
170
第 4 章 I/O ポート
表 4.4-1 にポート 2 の端子配列を示します。
表 4.4-1 ポート 2 の端子配列
入出力形式
ポート名
ポート 2
<参考>
端子名
ポート機能
周辺機能
P20/
TIN0
P20
TIN0
16 ビット
リロード
タイマ 0 入力
P21/
TOT0
P21
TOT0
16 ビット
リロード
タイマ 0 出力
P22/
TIN1
P22
TIN1
16 ビット
リロード
タイマ 1 入力
TOT1
16 ビット
リロード
タイマ 1 出力
汎用
入出力
P23/
TOT1
P23
P24/
INT4
P24
INT4
P25/
INT5
P25
INT5
P26/
INT6
P26
INT6
P27/
INT7
P27
INT7
入力
出力
CMOS
( ヒステリ
シス )/
Automotive
CMOS
回路
形式
D
外部割込み
入力
入出力回路形式については「1.7 入出力回路形式」を参照してください。
171
第 4 章 I/O ポート
■ ポート 2 の端子のブロックダイヤグラム ( 汎用入出力ポートの場合 )
図 4.4-1 ポート 2 の端子のブロックダイヤグラム
周辺機能入力
周辺機能出力
ポートデータレジスタ(PDR)
周辺機能出力許可
内部データバス
PDRリード
P-ch
出力ラッチ
PDRライト
端子
ポート方向レジスタ(DDR)
N-ch
方向ラッチ
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップモード(SPL=1),タイムベースタイマモード(SPL=1),時計モード(SPL=1)の制御
■ ポート 2 のレジスタ
• ポート 2 のレジスタには , ポート 2 データレジスタ (PDR2), ポート 2 方向レジスタ
(DDR2) があります。
• レジスタを構成するビットは , ポート 2 の端子に 1 対 1 で対応しています。
表 4.4-2 にポート 2 のレジスタと端子の対応を示します。
表 4.4-2 ポート 2 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR2, DDR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P27
P26
P25
P24
P23
P22
P21
P20
ポート 2
172
第 4 章 I/O ポート
4.4.1
ポート 2 のレジスタ (PDR2, DDR2)
ポート 2 のレジスタについて説明します。
■ ポート 2 のレジスタの機能
● ポート 2 データレジスタ (PDR2)
ポート 2 データレジスタは , 端子の入出力状態を示します。
● ポート 2 方向レジスタ (DDR2)
• ポート 2 方向レジスタは , 入出力方向を設定します。
• 端子に対応するビットを "1" に設定した場合は出力ポートとして機能し , "0" に設定
した場合は入力ポートとして機能します。
表 4.4-3 にポート 2 のレジスタの機能を示します。
表 4.4-3 ポート 2 のレジスタの機能
レジスタ名
ポート 2
データ
レジスタ
(PDR2)
ポート 2 方
向レジスタ
(DDR2)
データ
リードした場合
ライトした場合
0
端子状態が "L"
レベル
出力ラッチに "0" を設定
し , 出力ポートの場合は
端子に "L" レベルを出力
1
端子状態が "H"
レベル
出力ラッチに "1" を設定
し , 出力ポートの場合は
端子に "H" レベルを出力
0
方向ラッチが
"0"
出力バッファを "OFF" し ,
入力ポートに設定
1
方向ラッチが
"1"
出力バッファを "ON" し ,
出力ポートに設定
リード
ライト
レジスタ
アドレス
R/W
000002H
XXXXXXXX
R/W
000012H
00000000B
リセット値
B
R/W: リード / ライト可能
X: 不定
<参考>
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート
2 方向レジスタ (DDR2) のビットを "0" にクリアして入力ポートに設定してくだ
さい。
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力を許可してください。
ポート 2 方向のレジスタ (DDR2) の設定にかかわらず周辺機能の出力端子として
機能します。
173
第 4 章 I/O ポート
4.4.2
ポート 2 の動作説明
ポート 2 の動作を説明します。
■ ポート 2 の動作 ( 汎用入出力ポートの場合 )
● 出力ポートの動作
• 出力端子に対応するポート 2 方向レジスタ (DDR2) のビットを "1" に設定した場合 ,
出力ポートとして機能します。
• 出力バッファが "ON" され , ポート 2 データレジスタ (PDR2) に出力データを書き込
むと , 出力ラッチに保持され , 端子から出力されます。
• ポート 2 データレジスタ (PDR2) を読み出すと , PDR2 の出力ラッチの状態が読み出
せます。
<注意事項>
ポートデータレジスタにリードモディファイライト系命令 ( ビットセット命令など )
を使用した場合 , ポート方向レジスタで出力ポートに設定している端子は目的とす
る出力がされますが , 入力ポートに設定している端子は入力状態が出力ラッチに書
き込まれて出力データとなります。入力ポートを出力ポートに切り換える場合は ,
ポートデータレジスタに出力データを書き込んでポート方向レジスタで出力ポート
に設定してください。
● 入力ポートの動作
• 入力端子に対応するポート 2 方向レジスタ (DDR2) のビットを "0" に設定した場合 ,
入力ポートとして機能します。
• 出力バッファが "OFF" され , 端子はハイインピーダンスになります。
• ポート 2 データレジスタ (PDR2) にデータを書き込むと , PDR2 の出力ラッチにデー
タが保持されますが , 端子には出力されません。
• ポート 2 データレジスタ (PDR2) を読み出すと , 端子のレベル ("L" または "H") が読
み出せます。
● 周辺機能出力の動作
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力に対応する出力を許可に
設定してください。
• 周辺機能の出力許可が優先されるため , ポート 2 方向レジスタ (DDR2) の設定に関
わらず周辺機能の出力が機能します。
• 周辺機能の出力を許可に設定して端子状態を読み出した場合は , 周辺機能の出力状
態が読み出されます。
● 周辺機能入力の動作
• 周辺機能の入力と兼用の端子は , 周辺機能へ端子の状態が入力されています。
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート 2
方向レジスタ (DDR2) のビットを "0" にクリアして入力ポートに設定してください。
174
第 4 章 I/O ポート
● リセットの動作
• CPU がリセットされると , ポート 2 方向レジスタ値は "0" に初期化されます。出力
バッファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
• ポート 2 データレジスタは , リセットで初期化されないため , 出力ポートとして使
用する場合 , ポート 2 データレジスタに出力データをセットしてから , 出力端子に
対応するポート 2 方向レジスタのビットを "1" にセットして出力に設定する必要が
あります。
● ストップ , タイムベースタイマ , 時計モードの動作
• ストップモード , タイムベースタイマモード , 時計モードのいずれかに移行した時
点で , 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL) を "1" に
セットしている場合 , 端子はハイインピーダンスになります。ポート 2 方向レジス
タの設定に関係なく , 強制的に出力バッファが "OFF" されます。
表 4.4-4 にポート 2 の端子状態を示します。
表 4.4-4 ポート 2 の端子状態
端子名
通常動作
スリープ
モード
ストップモード ,
タイムベースタイマモード , 時計モード
SPL=0
P20/TIN0 ∼
P27/INT7
汎用入出力
ポート
汎用入出力
ポート
汎用入出力ポート
SPL=1
入力遮断 / 出力 Hi-Z
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL)
Hi-Z: ハイインピーダンス
<注意事項>
ストップモード , 時計モード , タイムベースタイマモード時に , 周辺機能とポート
を兼用している端子をハイインピーダンスに設定する場合は , 周辺機能の出力を禁
止に設定した後 , STP ビットを "1" または TMD ビットを "0" に設定してください。
対象となる端子を以下に示します。
対象端子 :P21/TOT0, P23/TOT1
175
第 4 章 I/O ポート
4.5
ポート 3
ポート 3 は , 周辺機能入力端子と兼用の汎用入出力ポートで , 周辺機能の端子と汎用
入出力ポートを切り替えて使用します。
汎用入出力ポートとしての機能を中心に説明し , ポート 3 の構成 , 端子配列 , 端子の
ブロックダイヤグラム , レジスタを示します。
■ ポート 3 の構成
ポート 3 は , 次の 3 つの要素から構成されます。
• 汎用入出力ポート / 周辺機能入力端子 (P30 ∼ P33, P35*/X0A, P36*/X1A, P37/ADTG)
• ポート 3 データレジスタ (PDR3)
• ポート 3 方向レジスタ (DDR3)
■ ポート 3 の端子配列
• 周辺機能の端子と汎用入出力ポートを切り替えて使用します。
• 周辺機能の端子と兼用のため周辺機能で使用する場合は , 汎用入出力ポートとして
使用できません。
• 周辺機能の入力端子として使用する場合は , ポート 3 方向レジスタ (DDR3) の周辺
機能に対応する端子を入力ポートに設定してください。
表 4.5-1 にポート 3 の端子配列を示します。
表 4.5-1 ポート 3 の端子配列
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P30/
SOT0
ポート 3
P30
SOT0
UART0 シリアル
クロック出力
P31/
SCK0
P31
SCK0
UART0 シリアル
クロック入出力
P32/
SIN0
P32
SIN0
UART0 シリアル
データ入力
P33
P33
−
−
P35/
X0A
P35*
−
−
P36/
X1A
P36*
−
−
P37/
ADTG
P37
ADTG
汎用入
出力
出力
CMOS
( ヒステリシス )/
Automotive
CMOS
D
CMOS
( ヒステリシス )/
Automotive/CMOS
CMOS
H
D
D/A
CMOS
( ヒステリシス )/
Automotive
CMOS
A/D コンバータ
外部トリガ入力
* : 低速発振用端子を選択 (MB90F897) した場合は P35, P36 は使用できません。
<参考>
176
回路
形式
入出力回路形式については「1.7 入出力回路形式」を参照してください。
D/A
D
第 4 章 I/O ポート
ポート 3 の端子のブロックダイヤグラム ( 汎用入出力ポートの場合 )
図 4.5-1 ポート 3 の端子のブロックダイヤグラム
周辺機能入力
周辺機能出力
ポートデータレジスタ(PDR)
周辺機能出力許可
内部データバス
PDRリード
P-ch
出力ラッチ
PDRライト
端子
ポート方向レジスタ(DDR)
N-ch
方向ラッチ
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップモード(SPL=1),タイムベースタイマモード(SPL=1),時計モード(SPL=1)の制御
■ ポート 3 のレジスタ
• ポート 3 のレジスタには , ポート 3 データレジスタ (PDR3) およびポート 3 方向レジ
スタ (DDR3) があります。
• レジスタを構成するビットは , ポート 3 の端子に 1 対 1 で対応しています。
表 4.5-2 にポート 3 のレジスタと端子の対応を示します。
表 4.5-2 ポート 3 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR3, DDR3
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P37
P36*
P35*
−
P33
P32
P31
P30
ポート 3
*:MB90F897 には , P35, P36 はありません。
177
第 4 章 I/O ポート
4.5.1
ポート 3 のレジスタ (PDR3, DDR3)
ポート 3 のレジスタについて説明します。
■ ポート 3 のレジスタの機能
● ポート 3 データレジスタ (PDR3)
• ポート 3 データレジスタは , 端子の状態を示します。
● ポート 3 方向レジスタ (DDR3)
• ポート 3 方向レジスタは , 入出力方向を設定します。
• 端子に対応するビットを "1" に設定した場合は出力ポートとして機能し , "0" に設定
した場合は入力ポートとして機能します。
表 4.5-3 にポートのレジスタ機能を示します。
表 4.5-3 ポート 3 のレジスタの機能
レジスタ名
ポート 3
データ
レジスタ
(PDR3)
ポート 3 方
向レジスタ
(DDR3)
データ
リードした場合
0
端子状態が "L"
レベル
ライトした場合
リード
ライト
レジスタ
アドレス
R/W
000003H
XXXXXXXX
R/W
000013H
000X0000B
出力ラッチに "0" を設定
し , 出力ポートの場合は
端子に "L" レベルを出力
1
端子状態が "H"
レベル
出力ラッチに "1" を設定
し , 出力ポートの場合は
端子に "H" レベルを出力
0
方向ラッチが
"0"
出力バッファを "OFF" し ,
入力ポートに設定
1
方向ラッチが
"1"
出力バッファを "ON" し ,
出力ポートに設定
リセット値
B
R/W: リード / ライト可能
X: 不定
<参考>
178
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート
3 方向レジスタ (DDR3) のビットを "0" にクリアして入力ポートに設定してくだ
さい。
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力を許可してください。
ポート 3 方向レジスタ (DDR3) の設定にかかわらず周辺機能の出力端子として機
能します。
第 4 章 I/O ポート
4.5.2
ポート 3 の動作説明
ポート 3 の動作を説明します。
■ ポート 3 の動作 ( 汎用入出力ポートの場合 )
● 出力ポートの動作
• 出力端子に対応するポート 3 方向レジスタ (DDR3) のビットを "1" に設定した場合 ,
出力ポートとして機能します。
• 出力バッファが "ON" され , ポート 3 データレジスタ (PDR3) に出力データを書き込
むと , 出力ラッチに保持され , 端子から出力されます。
• ポート 3 データレジスタ (PDR3) を読み出すと , PDR3 の出力ラッチの状態が読み出
せます。
<注意事項>
ポートデータレジスタにリードモディファイライト系命令 ( ビットセット命令など )
を使用した場合 , ポート方向レジスタで出力ポートに設定している端子は目的とす
る出力がされますが , 入力ポートに設定している端子は入力状態が出力ラッチに書
き込まれて出力データとなります。入力ポートを出力ポートに切り換える場合は ,
ポートデータレジスタに出力データを書き込んでポート方向レジスタで出力ポート
に設定してください。
● 入力ポートの動作
• 入力端子に対応するポート 3 方向レジスタ (DDR3) のビットを "0" に設定した場合 ,
入力ポートとして機能します。
• 出力バッファが "OFF" され , 端子はハイインピーダンスになります。
• ポート 3 データレジスタ (PDR3) にデータを書き込むと , PDR3 の出力ラッチにデー
タが保持されますが , 端子には出力されません。
• ポート 3 データレジスタ (PDR3) を読み出すと , 端子のレベル ("L" または "H") が読
み出せます。
● 周辺機能の入力動作
• 周辺機能の兼用の端子は , 周辺機能へ端子の状態が入力されています。
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート 3
方向レジスタ (DDR3) のビットを "0" にクリアして入力ポートに設定してください。
● リセットの動作
• CPU がリセットされると , ポート 3 方向レジスタ値は "0" に初期化されます。出力
バッファはすべて "OFF"( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
• ポート 3 データレジスタは , リセットで初期化されないため , 出力ポートとして使
用する場合 , ポート 3 データレジスタに出力データをセットしてから , 出力端子に
対応するポート 3 方向レジスタのビットを "1" にセットして出力に設定する必要が
あります。
179
第 4 章 I/O ポート
● ストップ , タイムベースタイマ , 時計モードの動作
• ストップモード , タイムベースタイマモード , 時計モードのいずれかに移行した時
点で , 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL) を "1" に
セットしている場合 , 端子はハイインピーダンスになります。ポート 3 方向レジス
タの設定に関係なく , 強制的に出力バッファが "OFF" されます。
表 4.5-4 にポート 3 の端子状態を示します。
表 4.5-4 ポート 3 の端子状態
端子名
通常動作
スリープ
モード
ストップモード ,
タイムベースタイマモード , 時計モード
SPL=0
P30 ∼ P33,
P35/X0A ∼
P37/ADTG
汎用入出力
ポート
汎用入出力
ポート
汎用入出力ポート
SPL=1
入力遮断 / 出力 Hi-Z
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL)
Hi-Z: ハイインピーダンス
180
第 4 章 I/O ポート
4.6
ポート 4
ポート 4 は , 周辺機能入出力端子と兼用の汎用入出力ポートで , 周辺機能の端子と汎
用入出力ポートを切り替えて使用します。
汎用入出力ポートとしての機能を中心に説明し , ポート 4 の構成 , 端子配列 , 端子の
ブロックダイヤグラム , レジスタを示します。
■ ポート 4 の構成
ポート 4 は , 次の 3 つの要素から構成されます。
• 汎用入出力ポート / 周辺機能入出力端子 (P40/SIN1 ∼ P44/RX)
• ポート 4 データレジスタ (PDR4)
• ポート 4 方向レジスタ (DDR4)
■ ポート 4 の端子配列
• 周辺機能の端子と汎用入出力ポートを切り替えて使用します。
• 周辺機能の端子と兼用のため周辺機能で使用する場合は , 汎用入出力ポートとして
使用できません。
• 周辺機能の入力端子として使用する場合は , ポート 4 方向レジスタ (DDR4) の周辺
機能に対応する端子を入力ポートに設定してください。
• 周辺機能の出力端子として使用する場合は , 対応する周辺機能の出力を許可に設定
してください。ポート 4 方向レジスタの設定に関わらず周辺機能の出力端子として
機能します。
表 4.6-1 にポート 4 の端子配列を示します。
表 4.6-1 ポート 4 の端子配列
入出力形式
ポート名
ポート 4
<参考>
端子名
ポート機能
周辺機能
P40/
SIN1
P40
SIN1
UART1 シリアル
データ入力
P41/
SCK1
P41
SCK1
UART1 シリアル
クロック入出力
P42/
SOT1
P42
SOT1
UART1 シリアル
データ出力
汎用入
出力
P43/TX
P43
TX
CAN コントロー
ラ送信出力
P44/RX
P44
RX
CAN コントロー
ラ受信入力
回路
形式
入力
出力
CMOS
( ヒステリシス )/
Automotive/CMOS
CMOS
H
CMOS
( ヒステリシス )/
Automotive
CMOS
D
入出力回路形式については「1.7 入出力回路形式」を参照してください。
181
第 4 章 I/O ポート
■ ポート 4 の端子のブロックダイヤグラム
図 4.6-1 ポート 4 の端子のブロックダイヤグラム
周辺機能入力
周辺機能出力
ポートデータレジスタ(PDR)
周辺機能出力許可
内部データバス
PDRリード
P-ch
出力ラッチ
PDRライト
端子
ポート方向レジスタ(DDR)
N-ch
方向ラッチ
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップモード(SPL=1),タイムベースタイマモード(SPL=1),時計モード(SPL=1)の制御
■ ポート 4 のレジスタ
• ポート 4 のレジスタには , ポート 4 データレジスタ (PDR4) およびポート 4 方向レジ
スタ (DDR4) があります。
• レジスタを構成するビットは , ポート 4 の端子に 1 対 1 で対応しています。
表 4.6-2 にポート 4 のレジスタと端子の対応を示します。
表 4.6-2 ポート 4 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR4, DDR4
−
−
−
bit4
bit3
bit2
bit1
bit0
対応する端子
−
−
−
P44
P43
P42
P41
P40
ポート 4
182
第 4 章 I/O ポート
4.6.1
ポート 4 のレジスタ (PDR4, DDR4)
ポート 4 のレジスタについて説明します。
■ ポート 4 のレジスタの機能
● ポート 4 データレジスタ (PDR4)
• ポート 4 データレジスタは , 端子の状態を示します。
● ポート 4 方向レジスタ (DDR4)
• ポート 4 方向レジスタは , 入出力方向を設定します。
• 端子に対応するビットを "1" に設定した場合は出力ポートとして機能し , "0" に設定
した場合は入力ポートとして機能します。
表 4.6-3 にポート 4 のレジスタの機能を示します。
表 4.6-3 ポート 4 のレジスタの機能
レジスタ名
ポート 4 デー
タ
レジスタ
(PDR4)
ポート 4
方向レジスタ
(DDR4)
データ
リードした場合
ライトした場合
0
端子状態が "L"
レベル
出力ラッチに "0" を設定
し , 出力ポートの場合は
端子に "L" レベルを出力
1
端子状態が "H"
レベル
出力ラッチに "1" を設定
し , 出力ポートの場合は
端子に "H" レベルを出力
0
方向ラッチが
"0"
出力バッファを "OFF"
し , 入力ポートに設定
1
方向ラッチが
"1"
出力バッファを "ON"
し , 出力ポートに設定
リード
ライト
レジスタ
アドレス
リセット値
R/W
000004H
XXXXXXXXB
R/W
000014H
XXX00000B
R/W: リード / ライト可能
X: 不定
<参考>
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート
4 方向レジスタ (DDR4) のビットを "0" にクリアして入力ポートに設定してくだ
さい。
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力を許可に設定してくだ
さい。ポート 4 方向レジスタ (DDR4) の設定にかかわらず周辺機能の出力端子と
して機能します。
183
第 4 章 I/O ポート
4.6.2
ポート 4 の動作説明
ポート 4 の動作を説明します。
■ ポート 4 の動作
● 出力ポートの動作
• 出力端子に対応するポート 4 方向レジスタ (DDR4) のビットを "1" に設定した場合 ,
出力ポートとして機能します。
• 出力バッファが "ON" され , ポート 4 データレジスタ (PDR4) に出力データを書き込
むと , 出力ラッチに保持され , 端子から出力されます。
• ポート 4 データレジスタ (PDR4) を読み出すと , PDR4 の出力ラッチの状態が読み出
せます。
<注意事項>
ポートデータレジスタにリードモディファイライト系命令 ( ビットセット命令など )
を使用した場合 , ポート方向レジスタで出力ポートに設定している端子は目的とす
る出力がされますが , 入力ポートに設定している端子は入力状態が出力ラッチに書
き込まれて出力データとなります。入力ポートを出力ポートに切り換える場合は ,
ポートデータレジスタに出力データを書き込んでポート方向レジスタで出力ポート
に設定してください。
● 入力ポートの動作
• 入力端子に対応するポート 4 方向レジスタ (DDR4) のビットを "0" に設定した場合 ,
入力ポートとして機能します。
• 出力バッファが "OFF" され , 端子はハイインピーダンスになります。
• ポート 4 データレジスタ (PDR4) にデータを書き込むと , PDR4 の出力ラッチにデー
タが保持されますが , 端子には出力されません。
• ポート 4 データレジスタ (PDR4) レジスタを読み出すと , 端子のレベル ("L" または
"H") が読み出せます。
● 周辺機能出力の動作
• 周辺機能の出力端子として使用する場合 , 周辺機能の出力に対応する出力を許可に
設定してください。
• 周辺機能の出力許可が優先されるため , ポート 4 方向レジスタ (DDR4) の設定にか
かわらず周辺機能の出力が機能します。
• 周辺機能の出力を許可に設定して端子状態を読み出した場合は , 周辺機能の出力状
態が読み出せます。
● 周辺機能入力の動作
• 周辺機能の入力と兼用の端子は , 周辺機能へ端子の状態が入力されています。
• 周辺機能の入力として使用する場合 , 周辺機能の入力端子に対応するポート 4 方向
レジスタ (DDR4) のビットを "0" にクリアして入力ポートに設定してください。
184
第 4 章 I/O ポート
● リセットの動作
• CPU がリセットされると , ポート 4 方向レジスタ値は "0" に初期化されます。出力
バッファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
• ポート 4 データレジスタは , リセットで初期化されないため , 出力ポートとして使
用する場合 , ポート 4 データレジスタに出力データをセットしてから , 出力端子に
対応するポート 4 方向レジスタのビットを "1" にセットして出力に設定する必要が
あります。
● ストップ , タイムベースタイマ , 時計モードの動作
ストップモード , タイムベースタイマモード , 時計モードのいずれかにに移行した時点
で , 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL) を "1" にセッ
トしている場合 , 端子はハイインピーダンスになります。ポート 4 方向レジスタの設定
に関係なく , 強制的に出力バッファが "OFF" されます。
表 4.6-4 にポート 4 の端子状態を示します。
表 4.6-4 ポート 4 の端子状態
端子名
通常動作
スリープ
モード
ストップモード ,
タイムベースタイマモード , 時計モード
SPL=0
P40/SIN1 ∼
P44/RX
汎用入出力
ポート
汎用入出力
ポート
汎用入出力ポート
SPL=1
入力遮断 / 出力 Hi-Z
( プルアップ抵抗は
切断されます )
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL)
Hi-Z: ハイインピーダンス
185
第 4 章 I/O ポート
4.7
ポート 5
ポート 5 は , アナログ入力端子と兼用の汎用入出力ポートで , アナログ入力端子と汎
用入出力ポートを切り替えて使用します。
汎用入出力ポートとしての機能を中心に説明し , ポート 5 の構成 , 端子配列 , 端子の
ブロックダイヤグラム , レジスタを示します。
■ ポート 5 の構成
ポート 5 は , 次の 4 つの要素から構成されます。
• 汎用入出力ポート / アナログ入力端子 (P50/AN0 ∼ P57/AN7)
• ポート 5 データレジスタ (PDR5)
• ポート 5 方向レジスタ (DDR5)
• アナログ入力許可レジスタ (ADER)
■ ポート 5 の端子配列
• アナログ入力端子と汎用入出力ポートを切り替えて使用します。
• アナログ入力端子と兼用のためアナログ入力端子として使用する場合は , 汎用入出
力ポートとして使用できません。
• アナログ入力端子として使用する場合は , ポート 5 方向レジスタ (DDR5) のアナロ
グ入力に対応する端子を入力ポートに設定してください。
• 汎用入出力ポートで使用している場合は , アナログ信号を入力しないでください。
186
第 4 章 I/O ポート
表 4.7-1 にポート 5 の端子配列を示します。
表 4.7-1 ポート 5 の端子配列
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P50/AN0
P50
AN0
アナログ入力
チャネル 0
P51/AN1
P51
AN1
アナログ入力
チャネル 1
P52/AN2
P52
AN2
アナログ入力
チャネル 2
P53/AN3
P53
AN3
アナログ入力
チャネル 3
汎用
入出力
ポート 5
<参考>
P54/AN4
P54
AN4
アナログ入力
チャネル 4
P55/AN5
P55
AN5
アナログ入力
チャネル 5
P56/AN6
P56
AN6
アナログ入力
チャネル 6
P57/AN7
P57
AN7
アナログ入力
チャネル 7
CMOS
( ヒステリシス )/
アナログ入力 /
Automotive
出力
CMOS
回路
形式
E
入出力回路形式については「1.7 入出力回路形式」を参照してください。
187
第 4 章 I/O ポート
■ ポート 5 の端子のブロックダイヤグラム
図 4.7-1 ポート 5 の端子のブロックダイヤグラム
アナログ入力
ADER
PDR (ポートデータレジスタ)
内部データバス
PDRリード
出力ラッチ
P-ch
PDRライト
DDR
端子
(ポート方向レジスタ)
N-ch
方向ラッチ
DDRライト
スタンバイ制御(SPL=1)
DDRリード
スタンバイ制御:ストップモード(SPL=1),タイムベースタイマモード(SPL=1),時計モード(SPL=1)の制御
■ ポート 5 のレジスタ
• ポート 5 のレジスタには , ポート 5 データレジスタ (PDR5), ポート 5 方向レジスタ
(DDR5) およびアナログ入力許可レジスタ (ADER) があります。
• アナログ入力許可 (ADER) はアナログ入力端子にアナログ信号の入力を許可または
禁止する設定を行います。
• レジスタを構成するビットは , ポート 5 の端子に 1 対 1 で対応しています。
表 4.7-2 にポート 5 のレジスタと端子の対応を示します。
表 4.7-2 ポート 5 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR5, DDR5
ポート 5
ADER
対応する端子
188
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ADE7
ADE6
ADE5
ADE4
ADE3
ADE2
ADE1
ADE0
P57
P56
P55
P54
P53
P52
P51
P50
第 4 章 I/O ポート
4.7.1
ポート 5 のレジスタ (PDR5, DDR5, ADER)
ポート 5 のレジスタについて説明します。
■ ポート 5 のレジスタの機能
● ポート 5 データレジスタ (PDR5)
• ポート 5 データレジスタは , 端子の状態を示します。
● ポート 5 方向レジスタ (DDR5)
• ポート 5 方向レジスタは , 入出力方向を設定します。
• 端子に対応するビットを "1" に設定した場合は出力ポートとして機能し , "0" に設定
した場合は入力ポートとして機能します。
● アナログ入力許可レジスタ (ADER)
• アナログ入力許可レジスタは , 汎用入出力ポートとアナログ入力端子をポート単位
で設定します。
• アナログ入力端子に対応する ADE ビットを "1" に設定した場合はアナログ入力端子
として機能し , "0" に設定した場合は汎用入出力ポートとして機能します。
表 4.7-3 にポート 5 のレジスタの機能を示します。
<注意事項>
入力ポートの設定で中間レベルの信号が入力されると , 入力リーク電流が流れるた
めアナログ入力を行う場合は , アナログ入力許可レジスタ (ADER) の対応する
ADE ビットをアナログ入力許可に設定してください。
189
第 4 章 I/O ポート
表 4.7-3 ポート 5 のレジスタの機能
レジスタ名
データ
リードした場合
0
端子状態が "L"
レベル
出力ラッチに "0" を設定
し , 出力ポートの場合は
端子に "L" レベルを出力
1
端子状態が "H"
レベル
出力ラッチに "1" を設定
し , 出力ポートの場合は
端子に "H" レベルを出力
ポート 5
方向
レジスタ
(DDR5)
0
方向ラッチが
"0"
出力バッファを "OFF"
し , 入力ポートに設定
1
方向ラッチが
"1"
出力バッファを "ON"
し , 出力ポートに設定
アナログ
入力許可
レジスタ
(ADER)
0
汎用入出力ポート
1
アナログ入力モード
ポート 5
データ
レジスタ
(PDR5)
ライトした場合
リード
ライト
レジスタ
アドレス
リセット値
R/W
000005H
XXXXXXXXB
R/W
000015H
00000000B
R/W
00001BH
11111111B
R/W: リード / ライト可能
X : 不定
<参考>
190
• アナログ入力端子として使用する場合 , アナログ入力端子に対応するポート 5 方
向レジスタ (DDR5) のビットを "0" にクリアして入力ポートに設定してくださ
い。
• 周辺機能の入力端子として使用する場合 , 周辺機能の入力端子に対応するポート
5 方向レジスタ (DDR5) のビットを "0" にクリアして入力ポートに設定してくだ
さい。
第 4 章 I/O ポート
4.7.2
ポート 5 の動作説明
ポート 5 の動作を説明します。
■ ポート 5 の動作
● 出力ポートの動作
• 出力端子に対応するポート 5 方向レジスタ (DDR5) のビットを "1" に設定した場合 ,
出力ポートとして機能します。
• 出力バッファが "ON" され , ポート 5 データレジスタ (PDR5) に出力データを書き込
むと , 出力ラッチに保持され , 端子から出力されます。
• ポート 5 データレジスタ (PDR5) を読み出すと , PDR5 の出力ラッチの状態が読み出
せます。
<注意事項>
ポートデータレジスタにリードモディファイライト系命令 ( ビットセット命令など )
を使用した場合 , ポート方向レジスタで出力ポートに設定している端子は目的とす
る出力がされますが , 入力ポートに設定している端子は入力状態が出力ラッチに書
き込まれて出力データとなります。入力ポートを出力ポートに切り換える場合は ,
ポートデータレジスタに出力データを書き込んでポート方向レジスタで出力ポート
に設定してください。
● 入力ポートの動作
• 入力端子に対応するポート 5 方向レジスタ (DDR5) のビットを "0" に設定した場合 ,
入力ポートとして機能します。
• 出力バッファが "OFF" され , 端子はハイインピーダンスになります。
• ポート 5 データレジスタ (PDR5) にデータを書き込むと , PDR5 の出力ラッチにデー
タが保持されますが , 端子には出力されません。
• ポート 5 データレジスタ (PDR5) を読み出すと , 端子のレベル ("L" または "H") が読
み出せます。
● アナログ入力の動作
• アナログ入力端子として使用する場合は , アナログ入力端子に対応するアナログ入
力許可レジスタ (ADER) のビットに "1" を設定してください。汎用入出力ポートと
しての動作が禁止され , アナログ入力端子として機能します。
• アナログ入力許可の設定でポート 5 データレジスタ (PDR5) をリードした場合 , 読出
し値は "0" となります。
191
第 4 章 I/O ポート
● リセットの動作
• CPU がリセットされると , ポート 5 方向レジスタ値は "0" に初期化されます。出力
バッファはすべて "OFF" ( 入力ポート ) となり , 端子はハイインピーダンスになりま
す。
• ポート 5 データレジスタは , リセットで初期化されないため , 出 2 力ポートとして
使用する場合 , ポート 5 データレジスタに出力データをセットしてから , 出力端子
に対応するポート 5 方向レジスタのビットを "1" にセットして出力に設定する必要
があります。
● ストップ , タイムベースタイマ , 時計モードの動作
• ストップモード , タイムベースタイマモード , 時計モードのいずれかに移行した時
点で , 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL) を "1" に
セットしている場合 , 端子はハイインピーダンスになります。ポート 5 方向レジス
タの設定に関係なく , 強制的に出力バッファが "OFF" されます。
表 4.7-4 にポート 5 の端子状態を示します。
表 4.7-4 ポート 5 の端子状態
端子名
通常動作
スリープ
モード
ストップモード ,
タイムベースタイマモード , 時計モード
SPL=0
P50/AN0 ∼
P57/AN7
汎用入出力
ポート
汎用入出力
ポート
汎用入出力ポート
SPL=1
入力遮断 / 出力 Hi-Z
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR: SPL)
Hi-Z: ハイインピーダンス
192
第 4 章 I/O ポート
4.8
ポート入力レベル選択レジスタ (PILR)
ポート入力レベル選択レジスタは , 入力信号を CMOS ヒステリシス入力 ,
Automotive 入力または CMOS 入力のいずれかにする設定を行います。
■ ポート入力レベル選択レジスタ (PILR)
7
bit
PILR:00A2H
リード/ライト ⇒
初期値 ⇒
6
ILS1 ILS0
5
4
3
2
1
0
IL5
IL4
IL3
IL2
IL1
-
(R/W) (R/W) (R/W) (R/W) (R/W) (R/W) (R/W)
(0)
(0)
(0)
(0)
(0)
(0)
(0)
(-)
(-)
CMOS ヒステリシスレベルおよび Automotive レベルの入力レベル設定はポート単位と
なります。また P32/SIN0, P40/SIN1 については CMOS 設定も可能となります。
表 4.8-1 にポート入力レベル選択レジスタ (PILR) の機能を示します。
表 4.8-1 ポート入力レベル選択レジスタ (PILR) の機能
bit
ビット名
対応ポート
0
未定義ビット
-
1
IL1
P00 ∼ P17
0:CMOS ヒステリシスレベル
1:Automotive レベル
2
IL2
P20 ∼ P27
0:CMOS ヒステリシスレベル
1:Automotive レベル
3
IL3
P30 ∼ P33
P35, P36*1, P37*1
0:CMOS ヒステリシスレベル
1:Automotive レベル
4
IL4
P40 ∼ P44
0:CMOS ヒステリシスレベル
1:Automotive レベル
5
IL5
P50 ∼ P57
0:CMOS ヒステリシスレベル
1:Automotive レベル
6
ILS0*2
P32/SIN0
0:IL3 の設定に従う
1:CMOS レベル
7
ILS1*2
P40/SIN1
0:IL4 の設定に従う
1:CMOS レベル
機能
ライト : 動作に影響なし
リード : 読出し値は不定
*1: MB90F897S のみ
*2: P32/SIN0, P40/SIN1 については , ILS0/ILS1 が "1" の場合 , IL3/IL4 に依存せず CMOS 入力
となります。また , ILS0/ILS1 が "0" の場合 , IL3/IL4 の設定した入力レベルとなります。
<注意事項>
本機能は MB90V495G には搭載されていません。そのため , 本レジスタを読み出
すと常に "1" が読み出されます。
193
第 4 章 I/O ポート
194
第5章
タイムベースタイマ
この章では , タイムベースタイマの機能と動作につ
いて説明します。
5.1 タイムベースタイマの概要
5.2 タイムベースタイマのブロックダイヤグラム
5.3 タイムベースタイマの構成
5.4 タイムベースタイマの割込み
5.5 タイムベースタイマの動作説明
5.6 タイムベースタイマ使用上の注意
5.7 タイムベースタイマのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
195
第 5 章 タイムベースタイマ
5.1
タイムベースタイマの概要
タイムベースタイマは , メインクロック ( メイン発振クロックの 2 分周 ) に同期して
カウントアップする 18 ビットフリーランカウンタ ( タイムベースタイマカウンタ )
です。
• 4 種類のインターバル時間を選択でき , インターバル時間ごとに割込み要求が発生
できます。
• 発振安定待ち時間用タイマや周辺機能に動作クロックを供給します。
■ インターバルタイマ機能
• タイムベースタイマのカウンタが,インターバル時間選択ビット(TBTC:TBC1,TBC0)
で設定したインターバル時間に達すると , オーバフロー ( 桁上り ) が発生し (TBTC:
TBOF=1), 割込み要求が発生します。
• オーバフロー発生による割込みが許可されている場合は (TBTC: TBIE=1), オーバフ
ローが発生すると (TBTC: TBOF=1), 割込みが発生します。
• タイムベースタイマのインターバル時間は , 次の 4 種類から選択できます。タイム
ベースタイマのインターバル時間を表 5.1-1 に示します
表 5.1-1 タイムベースタイマのインターバル時間
カウントクロック
インターバル時間
212/HCLK ( 約 1.0ms)
214/HCLK ( 約 4.1ms)
2/HCLK (0.5μs)
216/HCLK ( 約 16.4ms)
219/HCLK ( 約 131.1ms)
HCLK: 発振クロック
( ) 内は発振クロックが 4MHz で動作している場合
196
第 5 章 タイムベースタイマ
■ クロック供給
• 発振安定待ち時間用のタイマや , PPG タイマ , ウォッチドッグタイマなどの周辺機
能へ動作クロックを供給します。タイムベースタイマから各周辺に供給されるク
ロックの周期を , 表 5.1-2 に示します。
表 5.1-2 タイムベースタイマから供給されるクロック周期
クロック供給先
クロック周期
210/HCLK ( 約 256μs)
213/HCLK ( 約 2.0ms)
発振安定待ち時間
*
215/HCLK ( 約 8.2ms)
217/HCLK ( 約 32.8ms)
212/HCLK ( 約 1.0ms)
214/HCLK ( 約 4.1ms)
ウォッチドッグタイマ
216/HCLK ( 約 16.4ms)
219/HCLK ( 約 131.1ms)
PPG タイマ
29/HCLK ( 約 128μs)
HCLK: 発振クロック
( ) 内は発振クロックが 4MHz で動作している場合
*: 発振開始直後の発振周期は不安定なため , 発振待ち時間は目安の値です。
197
第 5 章 タイムベースタイマ
タイムベースタイマのブロックダイヤグラム
5.2
タイムベースタイマは , 以下のブロックで構成されています。
• タイムベースタイマカウンタ
• カウンタクリア回路
• インターバルタイマセレクタ
• タイムベースタイマ制御レジスタ (TBTC)
■ タイムベースタイマのブロックダイヤグラム
図 5.2-1 タイムベースタイマのブロックダイヤグラム
ウォッチドッグ
タイマへ
PPGタイマへ
タイムベースタイマカウンタ
21/HCLK
×21 ×22 ×23 ・・・ ・・・ ×28 ×29 ×210 ×211 ×212 ×213 ×214 ×215 ×216 ×217 ×218
OF
OF
OF
OF
パワーオンリセット
ストップモード
CKSCR:MCS=1→0*1
CKSCR:SCS=0→1*2
クロック制御部
発振安定待ち時間
セレクタへ
カウンタ
クリア回路
インターバル
タイマセレクタ
TBOFクリア
タイムベースタイマ制御レジスタ
(TBTC)
予約
-
TBOFセット
-
TBIE TBOF
TBR
TBC1 TBC0
タイムベースタイマ割込み信号
OF :オーバフロー
HCLK:発振クロック
*1 :マシンクロックをメインクロックからPLLクロックへ切換え
*2 :マシンクロックをサブクロックからメインクロックへ切換え
タイムベースタイマの実際の割込み要求番号は次のとおりです。
割込み要求番号 : #16 (10H)
198
第 5 章 タイムベースタイマ
● タイムベースタイマカウンタ
発振クロック (HCLK) の 2 分周クロックをカウントクロックとする , 18 ビットアップ
カウンタです。
● カウンタクリア回路
タイムベースタイマカウンタの値は , 次の要因によってクリアされます。
• タイムベースタイマ制御レジスタのタイムベースタイマカウンタクリアビット
(TBTC: TBR=0)
• パワーオンリセット
• メインストップモード , PLL ストップモードへの遷移
(CKSCR: SCS=1, LPMCR:STP=1) クロックモードの切替え ( メインクロックモードか
ら PLL クロックモード , サブクロックモードから PLL クロックモードまたはサブク
ロックモードからメインクロックモード )
● インターバルタイマセレクタ
タイムベースタイマカウンタの出力を 4 種類から選択します。選択したインターバル
時間のビットがカウントアップによってオーバフロー( 桁上り ) すると割込み要求が発
生します。
● タイムベースタイマ制御レジスタ (TBTC)
インターバル時間の選択 , タイムベースタイマカウンタのクリア , 割込みの許可または
禁止 , 割込み要求の状態確認とクリアを行います。
199
第 5 章 タイムベースタイマ
5.3
タイムベースタイマの構成
タイムベースタイマのレジスタ , 割込み要因を示します。
■ タイムベースタイマのレジスタ一覧とリセット値の一覧
図 5.3-1 タイムベースタイマのレジスタとリセット値の一覧
bit
タイムベースタイマ制御レジスタ
(TBTC)
15
14
13
12
11
10
9
8
1
×
×
0
0
1
0
0
× :不定
■ タイムベースタイマでの割込み要求の発生
タイムベースタイマは,選択したインターバルタイマ用のカウンタビットがインターバ
ル時間に達すると,タイムベースタイマ制御レジスタのオーバフロー割込み要求フラグ
ビット (TBTC: TBOF) に "1" がセットされます。割込みが許可されている場合に (TBTC:
TBIE=1), オーバフロー割込み要求フラグビットがセットされると (TBTC: TBOF=1), 割
込み要求が発生します。
200
第 5 章 タイムベースタイマ
タイムベースタイマ制御レジスタ (TBTC)
5.3.1
タイムベースタイマ制御レジスタ (TBTC) では , 次の設定ができます。
• タイムベースタイマのインターバル時間の選択
• タイムベースタイマのカウンタ値のクリア
• オーバフロー発生による割込み要求の許可または禁止
• オーバフロー発生による割込み要求フラグの状態確認とクリア
■ タイムベースタイマ制御レジスタ (TBTC)
図 5.3-2 タイムベースタイマ制御レジスタ (TBTC)
15
14
13
12
11
10
9
8
リセット値
1XX00100B
R/W
-
-
R/W R/W
W
R/W R/W
bit9 bit8
TBC1 TBC0
0
0
1
1
0
1
0
1
インターバル時間選択ビット
212/HCLK(約1.0ms)
214/HCLK(約4.1ms)
216/HCLK(約16.4ms)
219/HCLK(約131.1ms)
HCLK:発振クロック
( )内は発振クロック4MHzで動作した場合の値
bit10
TBR
0
1
タイムベースタイマカウンタクリアビット
ライトした場合
リードした場合
ー
タイムベースタイマカウンタ
をクリアする
TBOFビットをクリアする
常に"1"が読み出されます
影響なし
bit11
TBOF
0
1
bit12
TBIE
0
1
R/W :リード・ライト 可能
W
:ライトオンリ
X
:不定
:リセット値
- :未定義
オーバフロー割込み要求フラグビット
ライトした場合
リードした場合
選択したカウントビットの
クリアされます
オーバフローなし
選択したカウントビットの
影響なし
オーバフローあり
オーバフロー割込み許可ビット
オーバフロー割込み要求の禁止
オーバフロー割込み要求の許可
bit15
予約
予約ビット
1
必ず"1"に設定してください。
201
第 5 章 タイムベースタイマ
表 5.3-1 タイムベースタイマ制御レジスタ (TBTC) の機能
ビット名
202
機 能
bit15
予約 : 予約ビット
必ず "1" に設定してください。
bit14
bit13
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit12
TBIE:
オーバフロー割込み
許可ビット
タイムベースタイマカウンタのインターバルタイマ用
ビットのオーバフローによる割込みを許可または禁止し
ます。
"0" に設定した場合 : オーバフローが発生しても
(TBOF=1) 割込み要求は発生しませ
ん。
"1" に設定した場合 : オーバフローが発生すると
(TBOF=1) 割込み要求が発生します。
bit11
TBOF:
オーバフロー割込み
要求フラグビット
タイムベースタイマカウンタのインターバルタイマ用
ビットのオーバフロー ( 桁上り ) を示します。
割込みを許可している場合は (TBIE=1), オーバフロー ( 桁
上り ) が発生すると (TBOF=1), 割込み要求が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 無効です。変化しません。
リードモディファイライト系の命令でリードした場合
:"1" が読み出されます。
( 注意事項 )
1)TBOF ビットをクリアする場合は , 割込みを禁止す
るか (TBIE=0), プロセッサステータスの割込みマス
クレジスタ (ILM) で割込みをマスクしてから行って
ください。
2)TBOF ビットは "0" の書込み , メインストップモー
ドへの遷移 , PLL ストップモードへの遷移 , サブク
ロックモードからメインクロックモードへの遷移 ,
サブクロクモードから PLL モードへの遷移 , メイン
クロックモードから PLL クロックモードへの遷移 ,
タイムベースタイマカウンタクリアビット (TBR) へ
の "0" 書込みおよびリセットによってクリアされま
す。
bit10
TBR:
タイムベースタイマ
カウンタクリアビット
タイムベースタイマカウンタの全ビットをクリアします。
"0" に設定した場合 : タイムベースタイマカウンタのすべ
てのビットが "0" にクリアされま
す。TBOF ビットもクリアされま
す。
"1" に設定した場合 : 無効です。変化しません。
リードした場合 : 常に "1" が読み出されます。
bit9
bit8
TBC1, TBC0:
インターバル時間選択
ビット
タイムベースタイマカウンタのインターバルタイマの周
期を設定します。
• TBC1, TBC0 ビットの設定によって , タイムベースタ
イマのインターバル時間が設定されます。
• 4 種類のインターバル時間が選択できます。
第 5 章 タイムベースタイマ
5.4
タイムベースタイマの割込み
タイムベースタイマは , タイムベースタイマ制御レジスタで設定されたインターバル
時間に対応するタイムベースタイマカウンタのインターバル時間用ビットが桁上り
( オーバフロー ) することによって割込み要求を発生します ( インターバルタイマ機
能 )。
■ タイムベースタイマの割込み
• タイムベースタイマは , メインクロック ( 発振クロックの 2 分周 ) が入力されている
限り , カウントアップし続けます。
• タイムベースタイマ制御レジスタの TBC1, TBC0 ビットで設定したインターバル時
間に達すると , タイムベースタイマカウンタにおいて選択したインターバル時間に
対応するインターバル時間選択ビットが桁上りして , オーバフローが発生します。
• インターバル時間選択ビットのオーバフローが発生すると , タイムベースタイマ制
御レジスタのオーバフロー割込み要求フラグビット (TBTC: TBOF) が "1" にセット
されます。
• 割込みが許可されている場合に (TBTC: TBIE=1), タイムベースタイマ制御レジスタ
のオーバフロー割込み要求フラグビットがセットされると (TBTC: TBOF=1), 割込み
要求が発生します。
• タイムベースタイマ制御レジスタのオーバフロー割込み要求フラグビット (TBTC:
TBOF) は , 割込みの許可または禁止にかかわらず (TBTC: TBIE), 設定したインター
バル時間に達するとセットされます。
• オーバフロー割込み要求フラグビット (TBTC: TBOF) のクリアは , 割込み処理でタ
イムベースタイマの割込みを禁止 (TBTC: TBIE=0) するか , プロセッサステータス
(PS) の ILM ビットでタイムベースタイマの割込みをマスクしてから , TBOF ビット
に "0" を書き込んでクリアしてください。
<注意事項>
タイムベースタイマ制御レジスタのオーバフロー割込み要求フラグビットがセット
されている状態で (TBTC: TBOF=1) 割込みを許可した場合は (TBTC: TBIE=1), 直
ちに割込み要求が発生します。
■ タイムベースタイマの割込みと EI2OS の対応
• タイムベースタイマは , 拡張インテリジェント I/O サービス (EI2OS) には対応してい
ません。
• 割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては 「
, 3.5 割込み」
を参照してください。
203
第 5 章 タイムベースタイマ
5.5
タイムベースタイマの動作説明
タイムベースタイマは , インターバルタイマまたは発振安定待ち時間用タイマとして
動作します。また , 周辺機能へクロックを供給しています。
■ インターバルタイマ機能
インターバル時間ごとに割込みを発生させると,インターバルタイマとして使用できま
す。
タイムベースタイマをインターバルタイマとして動作させるには , 図 5.5-1 の設定が必
要です。
● タイムベースタイマの設定
図 5.5-1 タイムベースタイマの設定
bit15 14
タイムベースタイマ制御レジスタ 予約 -
(TBTC)
1
-:未定義ビット
◎:使用ビット
0 :"0"に設定
1 :"1"に設定
13
12
11
10
9 bit8
- TBIE TBOF TBR TBC1 TBC0
◎
0
0
◎
◎
● インターバルタイマ機能の動作
タイムベースタイマは , 設定したインターバル時間ごとに割込みを発生させることに
よってインターバルタイマとして使用できます。
• タイムベースタイマは , 発振クロックが起動している限り , メインクロック ( 発振ク
ロックの 2 分周 ) に同期してカウントアップを続けます。
• タイムベースタイマ制御レジスタのインターバル時間選択ビット(TBTC:TBC1, TBC0)
で設定したインターバル時間に達すると , タイムベースタイマカウンタは桁上りによ
るオーバフローが発生し , オーバフロー割込み要求フラグビット (TBTC: TBOF) に "1"
がセットされます。
• 割込みを許可している場合に (TBTC: TBIE=1), オーバフロー割込み要求フラグビッ
トがセットされると (TBTC: TBOF=1), 割込み要求が発生します。
<注意事項>
204
インターバル時間は , タームベースタイマカウンタのクリア動作によって設定した
インターバル時間よりも長くなる場合があります。
第 5 章 タイムベースタイマ
● タイムベースタイマの動作例
インターバルタイマ動作について , 次の状態の動作を図 5.5-2 に示します。
• パワーオンリセットが発生した場合
• インターバルタイマ機能動作中にスリープモードに移行した場合
• インターバルタイマ機能動作中にストップモードに移行した場合
• タイムベースタイマカウンタクリアの要求があった場合
ストップモードに移行するとタイムベースタイマカウンタはクリアされ,カウントアッ
プ動作を停止します。ストップモードから復帰すると , タイムベースタイマはメインク
ロック発振安定待ち時間をカウントします。
図 5.5-2 タイムベースタイマの動作例
カウンタ値
ストップモードへの
移行によるクリア
3FFFFH
発振安定待ち
オーバフロー
00000H
CPU動作開始
インターバル周期
カウンタクリア
(TBTC:TBR=0)
パワーオンリセット (TBTC:TBC1:TBC0=11B) 割込み処理でクリア
TBOFビット
TBIEビット
スリープ
SLPビット
(LPMCRレジスタ)
タイムベースタイマのインターバル
割込みでスリープ解除
ストップ
STPビット
(LPMCRレジスタ)
インターバル時間選択ビット(TBTC:TBC1,TBC0)に"11B"を設定した場合(219/HCLK)
:発振安定待ち時間
HCLK :発振クロック
205
第 5 章 タイムベースタイマ
■ 発振安定待ち時間用タイマの動作
タイムベースタイマは , メインクロックおよび PLL クロックの発振安定待ち時間用タ
イマとして使用できます。
• 発振安定待ち時間は , タイムベースタイマカウンタが "0" からカウントアップして
いき , 設定した発振安定待ち時間選択ビットがオーバフロー( 桁上り ) するまでの時
間となります。
タイムベースタイマのクリア条件と発振安定待ち時間について , 表 5.5-1 に示します。
表 5.5-1 タイムベースタイマのクリア条件と発振安定待ち時間 (1 / 2)
動 作
カウンタ
クリア
TBOF
クリア
タイムベースタイマカウンタ
クリアビット (TBTC: TBR) への
"0" 書込み
○
○
○
○
メインクロック発振安定待ち時間
終了後 , メインクロックモードへ
ウォッチドッグリセット
×
○
なし
外部リセット
×
○
なし
ソフトウェアリセット
×
○
なし
メインクロック→ PLL クロック
(CKSCR: MCS=1 → 0)
○
○
PLL クロック発振安定待ち時間終
了後 , PLL クロックモードへ
メインクロック→サブクロック
(CKSCR: SCS=1 → 0)
×
×
サブクロック発振安定待ち時間終
了後 , サブクロックモードへ
サブクロック→メインクロック
(CKSCR: SCS=0 → 1)
○
○
メインクロック発振安定待ち時間
終了後 , メインクロックモードへ
サブクロック→ PLL クロック
(CKSCR: MCS=0, SCS=0 → 1)
○
○
メインクロック発振安定待ち時間
終了後 , PLL クロックモードへ
PLL クロック→メインクロック
(CKSCR: MCS=0 → 1)
×
×
PLL クロック→サブクロック
(CKSCR: MCS=0, SCS=1 → 0)
×
×
○
○
メインクロック発振安定待ち時間
終了後 , メインクロックモードへ
×
×
サブクロック発振安定待ち時間終
了後 , サブクロックモードへ
○
○
メインクロック発振安定待ち時間
終了後 ,PLL クロックモードへ
×
×
なし
発振安定待ち時間
リセット
パワーオンリセット
クロックモードの切替え
なし
なし
ストップモードの解除
メインストップモード解除
サブストップモード解除
PLL ストップモード解除
時計モードの解除
サブ時計モードの解除
206
第 5 章 タイムベースタイマ
表 5.5-1 タイムベースタイマのクリア条件と発振安定待ち時間 (2 / 2)
カウンタ
クリア
TBOF
クリア
メインクロックモードに復帰
×
×
なし
サブクロックモードに復帰
×
×
なし
PLL クロックモードに復帰
×
×
なし
メインスリープモード解除
×
×
なし
サブスリープモード解除
×
×
なし
PLL スリープモード解除
×
×
なし
動 作
発振安定待ち時間
タイムベースタイマモードの解除
スリープモードの解除
■ 動作クロック供給
タイムベースタイマは , PPG タイマ (PPG01, PPG23) およびウォッチドッグタイマに動
作クロックを供給しています。
<注意事項>
<参考>
タイムベースタイマカウンタをクリアする場合は , タイムベースタイマの出力を使
用しているウォッチドッグタイマや PPG タイマなどの周辺機能の動作に影響があ
るのでご注意ください。
• PPG タイマについては「第 10 章 8/16 ビット PPG タイマ」を参照してくださ
い。
• ウォッチドッグタイマについては「第 6 章 ウォッチドッグタイマ」を参照して
ください。
207
第 5 章 タイムベースタイマ
タイムベースタイマ使用上の注意
5.6
タイムベースタイマを使用するにあたっての注意点を示します。
■ タイムベースタイマ使用上の注意
● 割込み要求をクリアする場合
タイムベースタイマ制御レジスタのオーバフロー割込み要求フラグビットは (TBTC:
TBOF=0), 割込みを禁止するか (TBTC: TBIE=0), プロセッサステータスの割込みレベル
マスクレジスタでタイムベースタイマの割込みをマスクしてからクリアしてくださ
い。
● タイムベースタイマカウンタをクリアする場合
タイムベースタイマカウンタをクリアすると,次の動作に影響が出るのでご注意くださ
い。
• タイムベースタイマをインターバルタイマとして使用している場合 ( インターバル
割込み )
• ウォッチドッグタイマが使用されている場合
• PPG タイマの動作クロックとしてタイムベースタイマからの供給クロックを使用し
ている場合
● 発振安定待ち時間用タイマとして使用している場合
• 電源投入後またはメインストップモード , PLL ストップモード , サブクロックモー
ドでは発振クロックは停止しています。したがって , 発振動作を開始すると , タイ
ムベースタイマによってメインクロック発振安定待ち時間をとります。高速発振入
力端子に接続する振動子の種類によって , 適切な発振安定待ち時間を選択する必要
があります。
<参考>
発振安定待ち時間の詳細については ,「3.7.6 発振安定待ち時間」を参照してくださ
い。
● タイムベースタイマからクロック供給をしている周辺機能について
• 発振クロックが停止する動作モード (PLL ストップモード , サブクロックモード , メ
インストップモード ) に遷移すると , タイムベースタイマカウンタはクリアされ , タ
イムベースタイマの動作は停止します。
• タイムベースタイマカウンタがクリアされると , クリアからのインターバル時間が
必要となり , タイムベースタイマから供給されているクロックは , "H" レベルが短く
なるか , "L" レベルが 1/2 周期長くなる場合があります。
• ウォッチドッグタイマの場合 , ウォッチドッグタイマカウンタはタイムベースタイ
マカウンタのクリアと同時にクリアされるので正常にカウント動作します。
208
第 5 章 タイムベースタイマ
5.7
タイムベースタイマのプログラム例
タイムベースタイマのプログラム例を示します。
■ タイムベースタイマのプログラム例
● 処理内容
212/HCLK (HCLK: 発振クロック ) のインターバル割込みを繰返し発生します。インター
バル時間は , 約 1.0ms (4MHz で動作している場合 ) となります。
● コーディング例
ICR02
EQU
0000B2H
;タイムベースタイマ割込み制御レジスタ
TBTC
EQU
0000A9H
;タイムベースタイマ制御レジスタ
TBOF
EQU
TBTC:3
;割込み要求フラグビット
TBIE
EQU
TBTC:2
;割込み許可ビット
;-------メインプログラム--------------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは
;初期化済みとする
AND
CCR,#0BFH
;割込み禁止
MOV
I:ICR02 #00H
;割込みレベル0(最強)
MOV
I:TBTC,#10000000B
;上位3ビットは固定
;TBOFクリア,
;カウンタクリアインターバル時間
;212/HCLK選択
SETB
I:TBIE
;割込み許可
MOV
ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
LOOP:
MOV
A,#00H
;無限ループ
MOV
A,#01H
BRA
LOOP
;-------割込みプログラム-----------------------------------WARI:
CLRB
I:TBIE
;割込み許可ビットをクリア
CLRB
I:TBOF
;割込み要求フラグをクリア
・
ユーザ処理
・
SETB
I:TBIE
;割込み許可
RETI
;割込み処理から復帰
CODE
ENDS
;-------ベクタ設定---------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FFBCH
;割込み番号#16(10H)にベクタ設定
DSL
WARI
ORG
0FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
209
第 5 章 タイムベースタイマ
210
第6章
ウォッチドッグタイマ
この章では , ウォッチドッグタイマの機能と動作に
ついて説明します。
6.1 ウォッチドッグタイマの概要
6.2 ウォッチドッグタイマの構成
6.3 ウォッチドッグタイマのレジスタ
6.4 ウォッチドッグタイマの動作説明
6.5 ウォッチドッグタイマ使用上の注意
6.6 ウォッチドッグタイマのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
211
第 6 章 ウォッチドッグタイマ
6.1
ウォッチドッグタイマの概要
ウォッチドッグタイマは , タイムベースタイマまたは時計タイマをカウントクロック
とする 2 ビットのカウンタです。カウンタがインターバル時間内にクリアされない
場合は , CPU をリセットします。
■ ウォッチドッグタイマ機能
• ウォッチドッグタイマは , プログラムの暴走を対策するためのタイマカウンタです。
ウォッチドッグタイマが起動されると , ウォッチドッグタイマのカウンタを設定し
たインターバル時間内にクリアし続ける必要があります。ウォッチドッグタイマの
カウンタがクリアされずに設定したインターバル時間に達すると , CPU がリセット
されます。これをウォッチドッグタイマとよびます。
• ウォッチドッグタイマのインターバル時間は , カウントクロックとして入力するク
ロック周期に起因し , 最小時間から最大時間の間にウォッチドッグリセットが発生
します。
• クロックソースの出力先は時計タイマ制御レジスタのウォッチドッグクロック選
択ビット (WTC: WDCS) で設定します。
• ウォッチドッグタイマのインターバル時間は , ウォッチドッグタイマ制御レジスタ
のタイムベースタイマ出力選択ビット / 時計タイマ出力選択ビット (WDTC: WT1,
WT0) で設定します。
ウォッチドッグタイマのインターバル時間を , 表 6.1-1 に示します。
表 6.1-1 ウォッチドッグタイマのインターバル時間
最小
最大
クロック周期
最小
最大
クロック周期
約 3.58ms
約 4.61ms
214 ± 211
/HCLK
約 0.457s
約 0.576s
212 ± 29
/SCLK
約 14.33ms
約 18.3ms
216 ± 213
/HCLK
約 3.584s
約 4.608s
215 ± 212
/SCLK
約 57.23ms
約 73.73ms
218 ± 215
/HCLK
約 7.168s
約 9.216s
216 ± 213
/SCLK
約 458.75ms
約 589.82ms
221 ± 218
/HCLK
約 14.336s
約 18.432s
217 ± 214
/SCLK
HCLK: 発振クロック (4MHz), SCLK: サブクロック (8.192kHz)
<注意事項>
212
• ウォッチドッグタイマのカウントクロックをタイムベースタイマ出力 ( 桁上り
信号 ) としている場合に , タイムベースタイマがクリアされると , ウォッチドッ
グリセットの発生時間が長くなる場合があります。
• マシンクロックとしてサブクロックを使用する場合は , 必ず時計タイマ制御レ
ジスタ (WTC) のウォッチドッグタイマクロックソース選択ビット (WDCS) を
"0" に設定して , 時計タイマの出力を選択するようにしてください。
第 6 章 ウォッチドッグタイマ
213
第 6 章 ウォッチドッグタイマ
6.2
ウォッチドッグタイマの構成
ウォッチドッグタイマは , 以下のブロックで構成されています。
• カウントクロックセレクタ
• ウォッチドッグタイマカウンタ (2 ビットカウンタ )
• ウォッチドッグリセット発生回路
• カウンタクリア制御回路
• ウォッチドッグタイマ制御レジスタ (WDTC)
■ ウォッチドッグタイマのブロックダイヤグラム
図 6.2-1 ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマ制御レジスタ(WDTC)
PONR
-
WRST ERST SRST
ウォッチドッグタイマ
WTE
WT1
時計タイマ制御レジスタ(WTC)
WT0
WDCS
2
起動
リセットの発生
スリープモードに移行
タイムベースタイマ
モードに移行
時計モードに移行
ストップモードに移行
カウンタクリア
制御回路
カウントクロック
セレクタ
2ビット
カウンタ
ウォッチドッグ
リセット
発生回路
内部リセット
発生回路へ
クリア
4
4
(タイムベースタイマカウンタ)
メインクロック
(HCLKの2分周)
×21 ×22 ・・・ ×28 ×29×210 ×211×212 ×213 ×214 ×215 ×216 ×217 ×218
(時計カウンタ)
サブクロック
SCLK
HCLK:発振クロック
SCLK:サブクロック
214
×21 ×22 ・・・ ×25 ×26 ×27 ×28 ×29 ×210 ×211 ×212 ×213 ×214 ×215
第 6 章 ウォッチドッグタイマ
● カウントクロックセレクタ
ウォッチドッグタイマに入力するカウントクロックを,タイムベースタイマまたは時計
タイマから選択します。それぞれのタイマ出力から 4 種類のインターバル時間が設定
できます。
● ウォッチドッグタイマカウンタ (2 ビットカウンタ )
タイムベースタイマまたは時計タイマの出力をカウントクロックとする 2 ビットの
アップカウンタです。クロックソースの出力先は時計タイマ制御レジスタのウォッチ
ドッグクロック選択ビット (WTC: WDCS) で設定します。
● ウォッチドッグリセット発生回路
ウォッチドッグタイマのオーバフロー ( 桁上り ) によって , リセット信号を発します。
● カウンタクリア回路
ウォッチドッグタイマのカウンタをクリアします。
● ウォッチドッグタイマ制御レジスタ (WDTC)
ウォッチドッグタイマの起動とクリア , インターバル時間の設定 , リセット発生要因の
保持を行います。
215
第 6 章 ウォッチドッグタイマ
6.3
ウォッチドッグタイマのレジスタ
ウォッチドッグタイマの設定に使用するレジスタを説明します。
■ ウォッチドッグタイマのレジスタとリセット値の一覧
図 6.3-1 ウォッチドッグタイマのレジスタとリセット値の一覧
bit
ウォッチドッグタイマ制御レジスタ
(WDTC)
×:不定
216
7
6
5
4
3
2
1
0
×
×
×
×
×
1
1
1
第 6 章 ウォッチドッグタイマ
ウォッチドッグタイマ制御レジスタ (WDTC)
6.3.1
ウォッチドッグタイマの起動とクリア , インターバル時間の設定 , リセット発生要因
の保持を行います。
■ ウォッチドッグタイマ制御レジスタ (WDTC)
図 6.3-2 ウォッチドッグタイマ制御レジスタ (WDTC)
7
6
5
4
3
2
1
0
リセット値
XXXXX111B
R
-
R
R
R
W
W
W
bit1 bit0
インターバル時間選択ビット(タイムベースタイマ出力選択)
WT1
WT0
インターバル時間
最小
最大
クロック周期
14±211/HCLK
0
0 約3.58ms
約4.61ms
2
0
1 約14.33ms 約18.3ms
216±213/HCLK
1
0 約57.23ms 約73.73ms
218±215/HCLK
1
1 約458.75ms 約589.82ms 221±218/HCLK
HCLK:発振クロック
( )内はHCLK4MHzで動作した場合のインターバル時間
bit1 bit0
インターバル時間選択ビット(時計タイマ出力選択)
WT1
WT0
インターバル時間
最小
最大
クロック周期
0
0
約0.457s
約0.576s
212±29/SCLK
0
1
215±212/SCLK
約3.584s
約4.608s
1
0
216±213/SCLK
約7.168s
約9.216s
1
1
約14.336s 約18.432s 217±214/SCLK
SCLK:サブクロック
( )内はSCLK8.192KHzで動作した場合のインターバル時間
bit2
WTE
0
1
ウォッチドッグタイマ制御ビット
リセット後,最初の書込み:
ウォッチドッグタイマを起動
影響なし
bit7 bit5 bit4 bit3
リセット要因ビット
R
W
*
X
:リードオンリ
:ライトオンリ
:前の状態を保持
:不定
PONR
WRST
ERST
SRST
1
*
*
*
X
1
*
*
X
*
1
*
X
*
*
1
リセット後,2回目以降の書込み:
ウォッチドッグタイマをクリア
リセット要因
パワーオンリセット
ウォッチドッグリセット
外部リセット(RST端子に"L"レベル入力)
ソフトウェアリセット(RSTビットへの"1"書込み)
217
第 6 章 ウォッチドッグタイマ
表 6.3-1 ウォッチドッグタイマ制御レジスタ (WDTC) の機能
ビット名
218
機 能
bit7,
bit5
∼
bit3
PONR, WRST, ERST,
SRST:
リセット要因ビット
リセット要因を示します。
• リセットが発生すると , リセット要因に対応したビッ
トに "1" がセットされます。リセット後 , ウォッチ
ドッグタイマ制御レジスタ (WDTC) をリードして , リ
セット要因を確認することができます。
• リセット要因ビットは , ウォッチドッグタイマ制御レ
ジスタ (WDTC) をリード後 , クリアされます。
( 注意事項 )
パワーオンリセット後の PONR ビット以外の内容は保
証されません。リードした場合に PONR ビットがセッ
トされている場合は , その他のビット内容は無視する
ようにしてください。
bit6
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit2
WTE:
ウォッチドッグ制御
ビット
ウォッチドッグタイマを起動またはクリアします。
"0" を設定した場合 ( リセット後 1 回目 ): 起動します。
"0" に設定した場合 ( リセット後 2 回目以降 ):
クリアされます。
bit1,
bit0
WT1, WT0:
インターバル時間選択
ビット
ウォッチドッグタイマのインターバル時間を設定します。
時計タイマ制御レジスタ (WTC) により , ウォッチドッグ
タイマのクロックソースが時計タイマになっている場合
( ウォッチドッグクロック選択ビット WDCS=0) と , ク
ロックモードとしてメインクロックモードまたは PLL ク
ロックモードが選択されていて , かつ WTC の WDCS
ビットが "1" の場合とでは , インターバル時間は図 6.3-2
のように異なります。
• ウォッチドッグタイマ起動時のデータのみが有効で
す。
• ウォッチドッグタイマ起動後の書込データは無視され
ます。
• これらのビットは書込み専用です。
第 6 章 ウォッチドッグタイマ
6.4
ウォッチドッグタイマの動作説明
ウォッチドッグタイマは起動後 , カウンタがクリアされずにインターバル時間に達す
ると , ウォッチドッグリセットを発生します。
■ ウォッチドッグタイマの動作
ウォッチドッグタイマの動作には , 図 6.4-1 に示す設定が必要です。
図 6.4-1 ウォッチドッグタイマの設定
bit7
6
ウォッチドッグタイマ制御レジスタ PONR
(WDTC)
-
bit7
6
時計タイマ制御レジスタ WDCS
(WTC)
◎
◎:使用ビット
0 :"0"に設定
SCE
5
4
3
2
1
bit0
WTE
WT1
WT0
0
◎
◎
3
2
1
bit0
WTR
WTC2
WRST ERST SRST
5
4
WTIE WTOF
WTC1 WTC0
● クロック入力ソースの選択
• ウォッチドッグタイマのカウントクロックのクロック入力ソースは , タイムベース
タイマまたは時計タイマを選択できます。ウォッチドッグクロック選択ビット
(WTC: WDCS) に "1" に設定するとタイムベースタイマが , "0" に設定すると時計タ
イマが設定されます。リセット後は , "1" ( タイムベースタイマ ) に戻ります。
• サブクロックモードで動作している場合は , WDCS ビットを "0" に設定して , 時計タ
イマを選択してください。
● インターバル時間の設定
• インターバル時間は , インターバル時間選択ビット (WDTC: WT1, WT0) を設定して
ウォッチドッグタイマのインターバル時間を選択します。
• インターバル時間は , 起動と同時に設定してください。ウォッチドッグタイマが起
動した後に書き込んだ場合は , 無視されます。
● ウォッチドッグタイマの起動
• ウォッチドッグタイマは , リセット後 , ウォッチドッグタイマ制御ビット (WDTC:
WTE) に "0" を書き込むと起動して , カウントアップを開始します。
219
第 6 章 ウォッチドッグタイマ
● ウォッチドッグタイマのクリア
• ウォッチドッグタイマを起動した後 , インターバル時間内にもう一度ウォッチドッ
グタイマ制御ビット (WDTC: WTE) に "0" を書き込むとクリアされます。インター
バル時間内にクリアされない場合は , ウォッチドッグタイマのオーバフローが発生
して , CPU がリセットされます。
• リセットの発生 , スタンバイモード ( スリープモード , ストップモードへ , 時計モー
ド , タイムベースタイマモード ) への移行によって , ウォッチドッグタイマはクリア
されます。
• タイムベースタイマ動作中 , 時計モード動作中は , ウォッチドッグタイマのカウン
タはクリアされますが , ウォッチドッグタイマは起動したままです。
• 図 6.4-2 にウォッチドッグタイマのクリアのタイミングとインターバル時間の関係
を示します。インターバル時間は , ウォッチドッグタイマをクリアするタイミング
によって変化します。
220
第 6 章 ウォッチドッグタイマ
● リセット要因の確認
• リセット後にウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因ビット
(WDTC: PONR, WRST, ERST, SRST)を読み出すことによってリセット要因を調べる
ことができます。
<参考>
リセット要因ビットは「3.6 リセット」を参照してください。
図 6.4-2 ウォッチドッグタイマのクリアタイミングとインターバル時間
[ウォッチドッグタイマブロック図] 2ビットカウンタ
クロック
セレクタ
a
2分周回路
b
2分周回路
c
リセット回路
d
リセット
信号
カウント許可とクリア
WTEビット
カウント許可
出力回路
[最小インターバル時間]カウントクロックの立上り直前にWTEビットをクリアした場合
カウントスタート
カウンタクリア
カウントクロックa
2分周値b
2分周値c
カウント許可
リセット信号d
7 ×(カウントクロック周期/2)
WTEビットクリア
ウォッチドッグ リセット発生
[最大インターバル時間]カウントクロックの立上り直後にWTEビットをクリアした場合
カウンタクリア
カウントスタート
カウントクロックa
2分周値b
2分周値c
カウント許可
リセット信号
WTEビットクリア
9 ×(カウントクロック周期/2)
ウォッチドッグリセット発生
221
第 6 章 ウォッチドッグタイマ
6.5
ウォッチドッグタイマ使用上の注意
ウォッチドッグタイマを使用する場合は , 以下の点にご注意ください。
■ ウォッチドッグタイマ使用上の注意
● ウォッチドッグタイマの停止について
ウォッチドッグタイマは , すべてのリセット要因で停止します。
● インターバル時間について
• インターバル時間は , タイムベースタイマまたは時計タイマの桁上り信号をカウン
トクロックにしているため , タイムベースタイマまたは時計タイマがクリアされる
と , ウォッチドッグタイマのインターバル時間が長くなる場合があります。タイム
ベースタイマは , タイムベースタイマ制御レジスタ (TBTC) のタイムベースタイマカ
ウンタクリアビット (TBR) への "0" 書込みのほか , メインクロックモードから PLL
クロックモードへ遷移 , サブクロックモードからメインクロックモードへの遷移 , サ
ブクロックモードから PLL クロックモードへの遷移時にもクリアされますのでご注
意ください。
• インターバル時間は , ウォッチドッグタイマの起動と同時に設定してください。起
動時以外に設定すると無視されます。
● プログラム作成上の注意
メインループの中で , 繰り返しウォッチドッグタイマをクリアする場合 , 割込み処理を
含めたメインループの処理時間は,ウォッチドッグタイマのインターバル時間より短い
時間に設定してください。
222
第 6 章 ウォッチドッグタイマ
6.6
ウォッチドッグタイマのプログラム例
ウォッチドッグタイマのプログラム例を示します。
■ ウォッチドッグタイマのプログラム例
● 処理仕様
• メインプログラムのループの中で毎回ウォッチドッグタイマをクリアします。
• メインプログラムはウォッチドッグタイマの最小インターバル時間内に 1 周する必
要があります。
● コーディング例
WTE
EQU
WDTC:2
;ウォッチドッグ制御ビット
;
;---------メインプログラム------------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは
;初期化済みとする
MOV
I:WDTC,#00000011B ;ウォッチドッグタイマの起動
;インターバル時間221+218サイクル
;を選択
LOOP:
CLRB I:WTE
;ウォッチドッグタイマのクリア
・
ユーザ処理
・
BRA
LOOP
;---------ベクタ設定-----------------------------------------VECT
CSEG ABS=0FFH
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
223
第 6 章 ウォッチドッグタイマ
224
第7章
16 ビット入出力タイマ
この章では , 16 ビット入出力タイマの機能と動作
について説明します。
7.1 16 ビット入出力タイマの概要
7.2 16 ビット入出力タイマのダイヤグラム
7.3 16 ビット入出力タイマの構成
7.4 16 ビット入出力タイマの割込み
7.5 16 ビットフリーランタイマの動作説明
7.6 インプットキャプチャの動作説明
7.7 16 ビット入出力タイマ使用上の注意
7.8 16 ビット入出力タイマのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
225
第 7 章 16 ビット入出力タイマ
7.1
16 ビット入出力タイマの概要
16 ビット入出力タイマは , 16 ビットフリーランタイマ ( × 1 ユニット ) とインプッ
トキャプチャ ( × 2 ユニット /4 入力端子 ) で構成されている複合モジュールです。
16 ビットフリーランタイマをベースに , 入力信号のクロック周期を計測したりパル
ス幅を測定することができます。
■ 16 ビット入出力タイマの構成
16 ビット入出力タイマは , 以下のモジュールで構成されています。
• 16 ビットフリーランタイマ ( × 1 ユニット )
• インプットキャプチャ ( × 2 ユニット / 入力端子は 1 ユニットに付き 2 個 )
■ 16 ビット入出力タイマの機能
● 16 ビットフリーランタイマの機能
16 ビットフリーランタイマは , 16 ビットアップカウンタ , タイマカウンタ制御ステー
タスレジスタ , プリスケーラで構成されています。16 ビットアップカウンタは , マシン
クロックの分周比に同期してカウントアップします。
• カウントクロックは , 8 種類のマシンクロック分周比から設定できます。
カウントクロック :φ, φ/2, φ/4, φ/8, φ/16, φ/32, φ/64, φ/128
• カウンタ値のオーバフロー発生による割込みを発生できます。
• 割込発生による拡張インテリジェント I/O サービス (EI2OS) の起動ができます。
• 16 ビットフリーランタイマのカウンタ値は , リセット , タイマカウントクリアビッ
ト (TCCS: CLR) によるソフトウェアクリアのいずれでも "0000H" にクリアできます。
• 16 ビットフリーランタイマのカウンタ値は , インプットキャプチャに出力されてお
り , キャプチャ動作の基準時間 ( ベースタイム ) として使用できます。
● インプットキャプチャの機能
インプットキャプチャは , 外部から入力端子に入力された信号のエッジを検出すると ,
エッジ検出した時点の 16 ビットフリーランタイマのカウンタ値をインプットキャプ
チャデータレジスタに格納します。4 本の入力端子にそれぞれ対応するインプットキャ
プチャデータレジスタと , インプットキャプチャ制御ステータスレジスタ , エッジ検出
回路で構成されています。
• 検出するエッジは , 立上りエッジ , 立下りエッジ , 両エッジから選択できます。
• 入力信号のエッジ検出による CPU への割込み要求を発生できます。
• 割込み発生による拡張インテリジェント I/O サービス (EI2OS) の起動ができます。
• インプットキャプチャの入力端子およびインプットキャプチャデータレジスタは 4
組あるので , 最大 4 つの事象計測に利用できます。
226
第 7 章 16 ビット入出力タイマ
7.2
16 ビット入出力タイマのダイヤグラム
16 ビット入出力タイマは , 以下のモジュール構成されています。
• 16 ビットフリーランタイマ
• インプットキャプチャ
■ 16 ビット入出力タイマのブロックダイヤグラム
図 7.2-1 16 ビット入出力タイマのブロックダイヤグラム
内部データバス
インプット
キャプチャ
専用バス
16ビットフリー
ランタイマ
● 16 ビットフリーランタイマ
16 ビットフリーランタイマのカウント値をインプットキャプチャの基準時間 ( ベース
タイム ) として使用します。
● インプットキャプチャ
外部から入力端子に入力された信号の立上りエッジ , 立下りエッジ , 両エッジを検出し
て , 16 ビットフリーランタイマのカウンタ値を保持します。入力信号のエッジを検出
すると割込みを発生することができます。
227
第 7 章 16 ビット入出力タイマ
16 ビットフリーランタイマのブロックダイヤグラム
7.2.1
16 ビットフリーランタイマは , 以下のブロックで構成されています。
• プリスケーラ
• タイマカウンタデータレジスタ (TCDT)
• タイマカウンタ制御ステータスレジスタ (TCCS)
■ 16 ビットフリーランタイマのブロックダイヤグラム
図 7.2-2 16 ビットフリーランタイマのブロックダイヤグラム
タイマカウンタデータレジスタ
(TCDT)
インプットキャプチャへ
カウント値出力
16ビットフリーランタイマ
OF
STOP
CLR
内部データバス
φ
CLK
プリスケーラ
3
タイマカウンタ制御
ステータスレジスタ
(TCCS)
IVF
IVFE STOP 予約
CLR
CLK2 CLK1 CLK0
φ :マシンクロック
OF :オーバフロー
フリーランタイマ
割込み要求
■ ブロックダイヤグラム中の端子などの詳細
16 ビット入出力タイマは , 16 ビットフリーランタイマを 1 つ内蔵しています。
16 ビットフリーランタイマの割込み要求番号は次のとおりです。
割込み要求番号 : 19 (13H)
● プリスケーラ
マシンクロックを分周して , 16 ビットアップカウンタにカウントクロックを供給しま
す。マシンクロックの分周比は , タイマカウンタ制御ステータスレジスタ (TCCS) の設
定により 8 種類から選択できます。
● タイマカウンタデータレジスタ (TCDT)
16 ビットのアップカウンタです。リードした場合は , 16 ビットフリーランタイマの現
在のカウンタ値を読み出すことができます。カウンタ停止中にライトすることによっ
て , カウンタ値を任意に設定できます。
228
第 7 章 16 ビット入出力タイマ
● タイマカウンタ制御ステータスレジスタ (TCCS)
タイマカウンタ制御ステータスレジスタ (TCCS) は , マシンクロックの分周比の選択 ,
カウンタ値のソフトウェアクリア , カウント動作の許可または禁止 , オーバフロー発生
フラグの確認とクリアおよび割込みの許可または禁止を行います。
229
第 7 章 16 ビット入出力タイマ
インプットキャプチャのブロックダイヤグラム
7.2.2
インプットキャプチャは , 以下のブロックで構成されています。
• インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
• インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23)
• エッジ検出回路
■ インプットキャプチャのブロックダイヤグラム
図 7.2-3 インプットキャプチャのブロックダイヤグラム
16ビットフリーランタイマ
エッジ検出回路
IN3
インプットキャプチャデータレジスタ3(IPCP3)
端子
IN2
インプットキャプチャデータレジスタ2(IPCP2)
端子
2
/
/
2
インプットキャプチャ
割込み要求
インプットキャプチャ
制御ステータスレジスタ ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00
(ICS01)
/
2
IN1
2
/
インプットキャプチャデータレジスタ1(IPCP1)
端子
IN0
インプットキャプチャデータレジスタ0(IPCP0)
端子
エッジ検出回路
230
内部データバス
インプットキャプチャ
制御ステータスレジスタ ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00
(ICS23)
第 7 章 16 ビット入出力タイマ
■ ブロックダイヤグラム中の端子などの詳細
16 ビット入出力タイマには , 4 本のインプットキャプチャ入力端子があります。
インプットキャプチャの実際の端子名および割込み要求番号などは表 7.2-1 のとおり
です。
表 7.2-1 16 ビット入出力タイマの端子および割込み要求番号
入力端子
実際の端子名
割込み要求番号
IN0
P10/IN0
#23 (17H)
IN1
P11/IN1
#25 (19H)
IN2
P12/IN2
IN3
P13/IN3
#30 (1EH)
● インプットキャプチャデータレジスタ 0 ∼ 3 (IPCP0 ∼ IPCP3)
外部から入力用端子 (IN0 ∼ IN3) に入力された信号のエッジを検出する際に取り込ま
れた 16 ビットフリーランタイマのカウンタ値を , 信号が入力された入力端子 (IN0 ∼
IN3) に対応するインプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) に格納します。
● インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23)
各インプットキャプチャのキャプチャ動作の起動と停止,エッジ検出による有効エッジ
検出フラグの確認とクリアと , 割込みの許可および禁止の設定を行います。ICS01 は入
力端子 IN0, IN1 に対応する , ICS23 は入力端子 IN2, IN3 に対応するインプットキャプ
チャの設定を行います。
● エッジ検出回路
外部から入力端子に入力された信号のエッジを検出します。検出するエッジは , 立上り
エッジ , 立下りエッジ , 両エッジから選択できます。
231
第 7 章 16 ビット入出力タイマ
7.3
16 ビット入出力タイマの構成
16 ビット入出力タイマの端子 , レジスタ , 割込み要因を示します。
■ 16 ビット入出力タイマの端子
16 ビット入出力タイマの端子は , 汎用入出力ポートと兼用になっています。表 7.3-1 に
端子の機能および 16 ビット入出力タイマを使用した場合の設定を示します。
表 7.3-1 16 ビット入出力タイマの端子
端子名
16 ビット入出力タイマの使用に
必要な端子の設定
端子機能
IN0
汎用入出力ポート / キャプチャ入力
ポート方向レジスタ (DDR) で
入力ポートに設定
IN1
汎用入出力ポート / キャプチャ入力
ポート方向レジスタ (DDR) で
入力ポートに設定
IN2
汎用入出力ポート / キャプチャ入力
ポート方向レジスタ (DDR) で
入力ポートに設定
IN3
汎用入出力ポート / キャプチャ入力
ポート方向レジスタ (DDR) で
入力ポートに設定
■ 16 ビット入出力タイマの端子のブロックダイヤグラム
<参考>
232
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
第 7 章 16 ビット入出力タイマ
■ 16 ビット入出力タイマのレジスタ一覧とリセット値の一覧
図 7.3-1 16 ビット入出力タイマのレジスタとリセット値の一覧
bit
タイマカウンタ制御ステータスレジスタ
(TCCS)
bit
タイマカウンタデータレジスタ上位
(TCDT:H)
bit
タイマカウンタデータレジスタ下位
(TCDT:L)
bit
インプットキャプチャ制御ステータス
レジスタ(ICS01)
bit
インプットキャプチャデータレジスタ0
上位(IPCP0:H)
bit
インプットキャプチャデータレジスタ0
下位(IPCP0:L)
bit
インプットキャプチャデータレジスタ1
上位(IPCP1:H)
bit
インプットキャプチャデータレジスタ1
下位(IPCP1:L)
bit
インプットキャプチャ制御ステータス
レジスタ(ICS23)
bit
インプットキャプチャデータレジスタ2
上位(IPCP2:H)
bit
インプットキャプチャデータレジスタ2
下位(IPCP2:L)
bit
インプットキャプチャデータレジスタ3
上位(IPCP3:H)
bit
インプットキャプチャデータレジスタ3
下位(IPCP3:L)
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
× :不定
233
第 7 章 16 ビット入出力タイマ
■ 16 ビット入出力タイマでの割込み要求の発生
16 ビット入出力タイマでは , 次の要因で割込み要求を発生することができます。
● 16 ビットフリーランタイマのオーバフロー
16 ビット入出力タイマでは , 16 ビットフリーランタイマのオーバフローによって , タ
イマカウンタ制御ステータスレジスタのオーバフロー発生フラグビット (TCCS: IVF)
に"1"がセットされます。オーバフロー割込みが許可されている場合は(TCCS: IVFE=1),
割込み要求が発生します。
● キャプチャ機能によるエッジ検出
外部から入力用端子 (IN0 ∼ IN3) に入力される信号のエッジ検出によって , エッジを検
出した入力端子に対応するインプットキャプチャ制御ステータスレジスタのインプッ
トキャプチャ有効エッジ検出フラグビット (ICS: ICP) に "1" がセットされます。割込み
要求が発生したチャネルに対応するインプットキャプチャ割込みが許可されている場
合は (ICS: ICE), 割込み要求が発生します。
234
第 7 章 16 ビット入出力タイマ
タイマカウンタ制御ステータスレジスタ (TCCS)
7.3.1
タイマカウンタ制御ステータスレジスタでは , カウントクロックの選択やカウンタク
リアの条件の選択を行ったり , カウンタのクリア , カウント動作の許可 , 割込みの許
可 , 割込み要求フラグの確認などを行います。
■ タイマカウンタ制御ステータスレジスタ (TCCS)
図 7.3-2 タイマカウンタ制御ステータスレジスタ (TCCS)
7
6
5
4
3
2
1
0
リセット値
00000000B
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
0
1
0
0
1
1
1
0
0
1
0
1
1
1
0
1
1
1
カウントクロック設定ビット
カウントクロック
φ
φ/2
φ/4
φ/8
φ/16
φ/32
φ/64
φ/128
φ =16MHz φ =8MHz
φ =4MHz φ =1MHz
62.5ns
0.125μs
0.25μs
1μs
0.125μs
0.25μs
0.5μs
2μs
0.25μs
0.5μs
1μs
4μs
0.5μs
1μs
2μs
8μs
1μs
2μs
4μs
16μs
2μs
4μs
8μs
32μs
4μs
8μs
16μs
64μs
8μs
16μs
32μs
128μs
φ:マシンクロック
bit3
タイマカウントクリアビット
CLR
0
影響なし
1
カウンタを"0000H"に初期化します。
bit4
予約
0
予約ビット
必ず"0"に設定してください
bit5
STOP
0
1
タイマカウント動作ビット
カウント動作許可
カウント動作禁止(停止) bit6
オーバフロー割込み許可ビット
IVFE
0
オーバフロー割込み禁止
1
オーバフロー割込み許可
bit7
IVF
R/W :リード・ライト 可能
:リセット値
0
1
オーバフロー発生フラグビット
リードした場合 ライトした場合
オーバフローなし
クリア
オーバフローあり
影響なし
235
第 7 章 16 ビット入出力タイマ
表 7.3-2 タイマカウンタ制御ステータスレジスタ (TCCS) の機能 (1 / 2)
ビット名
機 能
bit7
IVF:
オーバフロー発生
フラグビット
16 ビットフリーランタイマのオーバフロー発生を示しま
す。
• 16 ビットフリーランタイマがオーバフローを起こした
ときまたはモード設定によりコンペアレジスタ 0 とコ
ンペアマッチしてカウンタクリアされた場合 , 本ビッ
トに "1" がセットされます。
• オーバフロー割込みを許可している場合は (IVFE=1),
オーバフローが発生すると (IVF=1), 割込み要求が発生
します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
EI2OS を起動した場合 : クリアされます。
リードモディファイ系ライト命令でリードした場合 :
常に "1" が読み出されます。
bit6
IVFE:
オーバフロー割込み
許可ビット
16 ビットフリーランタイマのオーバフロー発生による割
込み要求を許可または禁止します。
"0" に設定した場合 : オーバフローが発生しても (IVF=1)
割込み要求は発生しません。
"1" に設定した場合 : オーバフローが発生すると (IVF=1)
割込み要求が発生します。
bit5
STOP:
タイマカウント動作
ビット
16 ビットフリーランタイマのカウント動作を許可または
禁止 ( 停止 ) します。
"0" に設定した場合 : カウント動作を許可します。16
ビットタイマカウンタデータレジ
スタはカウントクロック選択ビッ
ト (CLK1, 0) で設定したカウントク
ロックに同期してカウントアップ
を開始します。
"1" に設定した場合 : カウント動作を停止します。
bit4
予約 : 予約ビット
必ず "0" に設定してください。
bit3
CLR:
タイマカウントクリア
ビット
16 ビットフリーランタイマのカウンタ値をクリアします。
"1" に設定した場合 : タイマカウンタデータレジスタ
(TCDT) を "0000H" にクリアします。
"0" に設定した場合 : 影響しません。
リードした場合 : 常に "0" が読み出されます。
• カウンタ値が変化すると , CLR ビットはクリアされま
す。
• カウント動作停止中にカウンタ値をクリアする場合は ,
タイマカウンタデータレジスタ (TCDT) に直接 "0000H"
を書き込んでください。
( 注意事項 )
"1" を書き込んだあと , 次のカウントクロックまでに
このビットへの "0" 書込みを行うと , カウンタ値の初
期化は行われません。
236
第 7 章 16 ビット入出力タイマ
表 7.3-2 タイマカウンタ制御ステータスレジスタ (TCCS) の機能 (2 / 2)
ビット名
bit2
bit1
bit0
CLK2, CLK1, CLK0:
カウントクロック選択
ビット
機 能
16 ビットフリーランタイマのカウントクロックを設定を
します。
( 注意事項 )
1) カウントクロックの設定は , カウント動作を停止
(STOP=1) してから行ってください。
2) カウントクロックを書き換える場合は , タイマカウ
ントクリアビット (CLR) に "1" を書き込んで , カウ
ンタ値をクリアしてください。
237
第 7 章 16 ビット入出力タイマ
7.3.2
タイマカウンタデータレジスタ (TCDT)
タイマカウンタデータレジスタ (TCDT) は , 16 ビットのアップカウンタです。リー
ドした場合は , カウント中のタイマカウンタデータレジスタ値が読み出されます。カ
ウンタ停止中にライトした場合は , カウンタ値を任意に設定することができます。
■ タイマカウンタデータレジスタ (TCDT)
図 7.3-3 タイマカウンタデータレジスタ (TCDT)
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
タイマカウンタデータ
レジスタ(TCDT):上位
T15
T14
T13
T12
T11
T10
T9
T8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
00000000B
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
タイマカウンタデータ
レジスタ(TCDT):下位
R/W
T7
T6
T5
T4
T3
T2
T1
T0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
00000000B
:リード・ライト可能
■ タイマカウンタデータレジスタ (TCDT) のカウント動作
• カウント動作中にタイマカウンタデータレジスタ (TCDT) をリードした場合は , 16
ビットフリーランタイマのカウンタ値を読み出すことができます。
• タイマカウンタデータレジスタ (TCDT) のカウンタ値が "FFFFH" から "0000H" にカ
ウントアップすると , オーバフローが発生し , 同時にオーバフロー発生フラグビッ
ト (TCCS: IVF) に "1" がセットされます。
• オーバフロー割込みが許可されている場合は (TCCS: IVFE=1), オーバフローが発生
すると (TCCS: IVF=1), オーバフロー割込みが発生します。
• カウント動作が停止している間は , タイマカウンタデータレジスタ (TCDT) のカウ
ンタ値は保持されます。
• タイマカウンタデータレジスタ (TCDT) のカウント動作を停止する場合は , タイマ
カウント動作ビット (TCCS: STOP) に "1" を書き込んでください。
• カウント動作が停止している場合は (TCCS: STOP=1), タイマカウンタデータレジス
タ (TCDT) のカウンタ値を任意に設定することができます。
238
第 7 章 16 ビット入出力タイマ
● タイマカウンタデータレジスタのクリア要因
タイマカウンタデータレジスタ (TCDT) は , 次の要因で "0000H" にクリアされます。以
下の要因のうち , オーバフロー発生によるクリアはカウントクロックと同期して , その
ほかのクリアは要因が発生したタイミングでクリアされます。
• リセット
• タイマカウントクリアビット (TCCS: CLR) への "1" 書込み ( カウント動作中でも可 )
• カウント動作停止中 , タイマカウンタデータレジスタ (TCDT) への "0000H" 書込み
• 16 ビットフリーランタイマのオーバフロー発生
<注意事項>
タイマカウンタデータレジスタ (TCDT) は , 必ずワード命令 (MOVW) で設定してく
ださい。
239
第 7 章 16 ビット入出力タイマ
インプットキャプチャ制御ステータスレジスタ
(ICS01, ICS23)
7.3.3
インプットキャプチャ制御ステータスレジスタは , インプットキャプチャの動作を設
定するレジスタです。ICS01 はインプットキャプチャ 0, 1 の 2 チャネルの動作を ,
ICS23 はインプットキャプチャ 2, 3 の 2 チャネルの動作を設定します。インプット
キャプチャ制御ステータスレジスタは , それぞれ次の設定ができます。
• 検出するエッジの選択
• エッジ検出による割込みの許可または禁止
• エッジ検出による有効エッジ検出フラグの確認とクリア
■ インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23)
図 7.3-4 インプットキャプチャ制御ステータスレジスタ (ICS01, ICS23)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit1 bit0
EG01 EG00
インプットキャプチャ0(2)エッジ選択ビット
0
0
エッジ検出しない
0
1
立上りエッジを検出する
1
0
立下りエッジを検出する 動作許可
1
1
両エッジを検出する
bit3 bit2
EG11 EG10
動作禁止
インプットキャプチャ1(3)エッジ選択ビット
0
0
エッジ検出しない
0
1
立上りエッジを検出する
動作禁止
1
0
立下りエッジを検出する 動作許可
1
1
両エッジを検出する
bit4
インプットキャプチャ0(2)割込み許可ビット
ICE0
0
インプットキャプチャ0(2)割込み禁止
1
インプットキャプチャ0(2)割込み許可
bit5
インプットキャプチャ1(3)割込み許可ビット
ICE1
0
インプットキャプチャ1(3)割込み禁止
1
インプットキャプチャ1(3)割込み許可
bit6
ICP0
0
1
インプットキャプチャ0(2)有効エッジ検出フラグビット
リードした場合
ライトした場合
インプットキャプチャ0(2) ICP0ビットのクリア
有効エッジ検出なし
インプットキャプチャ0(2) 影響なし
有効エッジ検出あり
bit7
ICP1
0
1
インプットキャプチャ1(3)有効エッジ検出フラグビット
リードした場合
ライトした場合
インプットキャプチャ1(3) ICP1ビットのクリア
有効エッジ検出なし
インプットキャプチャ1(3) 影響なし
有効エッジ検出あり
R/W :リード・ライト 可能
:リセット値
( )内の数字はICS23の場合のチャネル番号を示しています。
240
第 7 章 16 ビット入出力タイマ
表 7.3-3 インプットキャプチャ制御ステータスレジスタ (ICS01) の機能 (1 / 2)
ビット名
機 能
bit7
ICP1:
インプットキャプチャ 1
有効エッジ検出
フラグビット
インプットキャプチャ 1 のエッジ検出を示します。
• インプットキャプチャ 1 エッジ選択ビット (EG11,
EG10) で設定した有効エッジを検出すると , ICP1 ビッ
トに "1" がセットされます。
• インプットキャプチャ 1 のエッジ検出による割込みが
許可されている場合に (ICE1=1), インプットキャプ
チャ 1 で有効エッジが検出されると (ICP1=1), 割込み
が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
EI2OS を起動した場合 : クリアされます。
リードモディファイ系ライト命令でリードした場合 :
常に "1" が読み出されます。
bit6
ICP0:
インプットキャプチャ 0
有効エッジ検出
フラグビット
インプットキャプチャ 0 のエッジ検出を示します。
• インプットキャプチャ 0 エッジ選択ビット (EG01,
EG00) で設定した有効エッジを検出すると , ICP0 ビッ
トに "1" がセットされます。
• インプットキャプチャ 0 のエッジ検出による割込みが
許可されている場合に (ICE0=1), インプットキャプ
チャ 0 で有効エッジが検出されると (ICP0=1), 割込み
が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
EI2OS を起動した場合 : クリアされます。
リードモディファイ系ライト命令でリードした場合 :
常に "1" が読み出されます。
bit5
ICE1:
インプットキャプチャ 1
割込み許可ビット
インプットキャプチャ 1 のエッジ検出による割込みを許
可または禁止します。
"0" に設定した場合 : インプットキャプチャ 1 でエッジを
検出しても , 割込みは発生しませ
ん。
"1" に設定した場合 : インプットキャプチャ 1 でエッジを
検出すると , 割込みが発生します。
bit4
ICE0:
インプットキャプチャ 0
割込み許可ビット
インプットキャプチャ 0 のエッジ検出による割込みを許
可または禁止します。
"0" に設定した場合 : インプットキャプチャ 0 で有効エッ
ジを検出しても , 割込みは発生しま
せん。
"1" に設定した場合 : インプットキャプチャ 0 で有効エッ
ジを検出すると , 割込みが発生しま
す。
241
第 7 章 16 ビット入出力タイマ
表 7.3-3 インプットキャプチャ制御ステータスレジスタ (ICS01) の機能 (2 / 2)
ビット名
bit3
bit2
EG11, EG10:
インプットキャプチャ 1
エッジ選択ビット
機 能
インプットキャプチャ 1 の動作を許可または禁止します。
インプットキャプチャ 1 の動作を許可する場合は , イン
プットキャプチャ 1 で検出するエッジを選択します。
EG01, EG00=00B の場合 : インプットキャプチャ 1 の動作
が禁止され , エッジ検出は行
われません。
EG01, EG00=00B 以外の場合 : インプットキャプチャ 1 の
動作が許可され , エッジ検
出が行われます。
bit1
bit0
EG01, EG00:
インプットキャプチャ 0
エッジ選択ビット
インプットキャプチャ 0 の動作を許可または禁止します。
インプットキャプチャ 0 の動作を許可する場合は , イン
プットキャプチャ 0 で検出するエッジを選択します。
EG01, EG00=00B の場合 : インプットキャプチャ 0 の動作
が禁止され , エッジ検出は行
われません。
EG01, EG00=00B 以外の場合 : インプットキャプチャ 0 の
動作が許可され , エッジ
検出が行われます。
242
第 7 章 16 ビット入出力タイマ
インプットキャプチャデータレジスタ 0 ∼ 3
(IPCP0 ∼ IPCP3)
7.3.4
インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) は , インプットキャプチャ
のエッジ検出のタイミングに合わせて取り込まれた 16 ビットフリーランタイマのカ
ウンタ値を格納するレジスタです。16 ビットフリーランタイマのカウンタ値は , 外
部信号が入力された入力端子 (IN0 ∼ IN3) に対応したインプットキャプチャデータレ
ジスタ (IPCP0 ∼ IPCP3) に格納されます。
■ インプットキャプチャデータレジスタ 0 ∼ 3 (IPCP0 ∼ IPCP3)
図 7.3-5 インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3)
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
インプットキャプチャデータ
レジスタ(IPCP):上位
CP15 CP14 CP13 CP12 CP11 CP10
R
R
R
R
R
CP9
CP8
R
R
R
リセット値
XXXXXXXXB
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
インプットキャプチャデータ
レジスタ(IPCP):下位
R
X
CP7
CP6
CP5
CP4
CP3
CP2
CP1
CP0
R
R
R
R
R
R
R
R
リセット値
XXXXXXXXB
:リードオンリ
:不定
■ インプットキャプチャデータレジスタ 0 ∼ 3 (IPCP0 ∼ IPCP3) の動作
• 16 ビット入出力タイマの入力端子 IN0 ∼ IN3 から入力された信号のエッジが検出さ
れると同時に , 入力端子 (IN0 ∼ IN3) に対応するインプットキャプチャデータレジ
スタ (IPCP0 ∼ IPCP3) に 16 ビットフリーランタイマのカウンタ値が格納されます。
<注意事項>
インプットキャプチャデータレジスタ (IPCP0 ∼ IPCP3) をリードする場合は , 必
ずワード命令 (MOVW) を使用してください。
243
第 7 章 16 ビット入出力タイマ
7.4
16 ビット入出力タイマの割込み
16 ビット入出力タイマの割込み要因としては , 16 ビットフリーランタイマのオーバ
フロー発生 , インプットキャプチャによりエッジ検出があります。割込み発生によっ
て拡張インテリジェント I/O サービス (EI2OS) を起動することもできます。
■ 16 ビット入出力タイマの割込み制御ビットと割込み要因
16 ビット入出力タイマの割込み制御ビットと割込み要因を表 7.4-1 に示します。
表 7.4-1 16 ビット入出力タイマの割込み制御ビットと割込み要因
割込み名
オーバフロー割込み
インプットキャプチャ割込み
割込み要因
16 ビットフリーラ
ンタイマのカウンタ
値のオーバフロー
インプットキャプチャ入力端子 IN0 ∼ IN3 への有効
エッジ入力
IN0
IN1
IN2
IN3
割込み要求
フラグビット
TCCS: IVF
ICS01:ICP0
ICS01:ICP1
ICS23:ICP0
ICS23:ICP1
割込み許可
ビット
TCCS: IVFE
ICS01:ICE0
ICS01:ICE1
ICS23:ICE0
ICS23:ICE1
● 16 ビットフリーランタイマ割込み
• タイマカウンタデータレジスタ (TCDT) のカウンタ値が "FFFFH" から "0000H" にカ
ウントアップすると , オーバフローが発生し , 同時にオーバフロー発生フラグビッ
ト (TCCS: IVF) に "1" がセットされます。
• オーバフロー割込みが許可されている場合は (TCCS: IVFE=1), オーバフローが発生
すると (TCCS: IVF=1), オーバフロー割込みが発生します。
● インプットキャプチャ割込み
• インプットキャプチャエッジ選択ビット (ICS: EG) で設定した有効エッジを検出す
ると , 入力端子 IN0 ∼ IN3 に対応するインプットキャプチャ割込み要求フラグビッ
ト (ICS01, ICS23: ICP1, ICP0) に "1" がセットされます。
• 入力端子 IN0 ∼ IN3 に対応するインプットキャプチャの割込みが許可されている場
合に , 入力端子 IN0 ∼ IN3 に対応するインプットキャプチャで有効エッジを検出す
るとインプットキャプチャ割込みが発生します。
■ 16 ビット入出力タイマの割込みと EI2OS の対応
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込み」を
参照してください。
■ 16 ビット入出力タイマの割込みと EI2OS 機能
16 ビット入出力タイマは , EI2OS 機能に対応しており , 許可している割込み要因の発生
により EI2OS を起動できます。ただし , 割込み制御レジスタを共有する周辺機能での
割込み要求の発生を禁止しておく必要があります。
244
第 7 章 16 ビット入出力タイマ
7.5
16 ビットフリーランタイマの動作説明
16 ビットフリーランタイマは , リセット解除後 , カウンタ値 "0000H" からカウント
アップを開始します。カウンタ値が "FFFFH" から "0000H" にカウントアップすると ,
オーバフローが発生します。
■ 16 ビットフリーランタイマの設定
16 ビットフリーランタイマを動作させるには , 図 7.5-1 の設定が必要です。
図 7.5-1 16 ビットフリーランタイマの設定
bit15 14
13
12
11
10
9
bit8 bit7
5
4
3
2
1
bit0
IVF IVFE STOP 予約 CLR CLK2 CLK1 CLK0
TCCS
0
TCDT
6
◎
0
0
◎
◎
◎
◎
16ビットフリーランタイマのカウンタ値
◎ :使用ビット
0 :"0"を設定
予約 :必ず"0"に設定してください。
■ 16 ビットフリーランタイマの動作
• 16 ビットフリーランタイマは , リセット解除後 , カウントクロック選択ビット
(TCCS: CLK2, CLK1, CLK0) で設定したカウントクロックに同期して "0000H" からカ
ウントアップを開始します。
• タイマカウンタデータレジスタ (TCDT) のカウンタ値が "FFFFH" から "0000H" にカ
ウントアップすると , オーバフローが発生します。オーバフローが発生するとオー
バフロー発生フラグビット (TCCS: IVF) に "1" がセットされ , 16 ビットフリーラン
タイマは "0000H" から再びカウントアップを開始します。
• オーバフロー割込みが許可されている場合は (TCCS: IVFE=1), オーバフローが発生
すると (TCCS: IVF=1), オーバフロー割込みが発生します。
• タイマカウンタデータレジスタ (TCDT) のカウント動作を停止する場合は , タイマ
カウント動作ビット (TCCS: STOP) に "1" を書き込んでください。
• カウンタ値を設定する場合は , 16 ビットフリーランタイマのカウント動作を停止し
てから (TCCS: STOP=1), タイマカウンタデータレジスタ (TCDT) にカウンタ値を設
定してください。カウンタ値の設定が終了したら , 16 ビットフリーランタイマのカ
ウント動作を許可してください (TCCS: STOP=0)。
245
第 7 章 16 ビット入出力タイマ
■ 16 ビットフリーランタイマの動作タイミング
オーバフロー発生によるカウンタのクリアを , 図 7.5-2 に示します。
図 7.5-2 オーバフローによるカウンタのクリア
カウンタ値
FFFFH
オーバフロー
BFFFH
7FFFH
3FFFH
0000H
リセット
オーバフロー割込み
246
時間
第 7 章 16 ビット入出力タイマ
インプットキャプチャの動作説明
7.6
インプットキャプチャは , 外部から入力端子に入力された信号のエッジを検出すると ,
エッジ検出した時点の 16 ビットフリーランタイマのカウンタ値をインプットキャプ
チャデータレジスタに格納します。
■ インプットキャプチャの設定
インプットキャプチャを動作させるには , 図 7.6-1 の設定が必要です。
図 7.6-1 インプットキャプチャの設定
bit15 14
ICS
13
12
11
10
9
bit8 bit7
DDRポート
方向レジスタ
5
4
3
2
1
bit0
ICP1 ICP0 ICE1 ICE0 EG11 EG10 EG01 EG00
◎
IPCP
6
◎
◎
◎
◎
◎
◎
◎
16ビットフリーランタイマのカウンタ値を保持
キャプチャ入力端子として使用する端子に
対応するビットを"0"に設定
◎ :使用ビット
247
第 7 章 16 ビット入出力タイマ
■ インプットキャプチャの動作
• 外部から入力端子 (IN0 ∼ IN3) に入力された信号の有効エッジを検出すると , 入力
端子に対応するインプットキャプチャ有効エッジ検出フラグビット (ICS: ICP) に "1"
がセットされます。同時に , 外部信号が入力された入力端子 (IN0 ∼ IN3) に対応し
たインプットキャプチャデータレジスタ (IPCP) に 16 ビットフリーランタイマのカ
ウンタ値が格納されます。
• 検出するエッジは , インプットキャプチャ制御ステータスレジスタのインプット
キャプチャエッジ選択ビット (ICS: EG) の設定によって , 立上りエッジ , 立下りエッ
ジ , 両エッジから選択できます。
• 入力端子 (IN0 ∼ IN3) に対応するインプットキャプチャの割込みが許可されている
場合に (ICS01, ICS23: ICE1=1, ICE0=1), 入力端子 (IN0 ∼ IN3) に対応するインプット
キャプチャで有効エッジを検出すると , インプットキャプチャ割込みが発生します。
• インプットキャプチャ有効エッジ検出フラグビット (ICS: ICP) は , 割込み許可の設
定 (ICS01, ICS23: ICE1, ICE0) には関係なく , 有効エッジを検出するとセットされま
す。
• 入力端子とインプットキャプチャの対応を表 7.6-1 に示します。
表 7.6-1 入力端子とインプットキャプチャの対応
248
入力端子
インプットキャプチャ
割込み要求フラグビッ
ト
インプットキャプチャ
割込み出力許可ビット
インプットキャプチャ
データレジスタ
IN0
ICS01: ICP0
ICS01: ICE0
IPCP0
IN1
ICS01: ICP1
ICS01: ICE1
IPCP1
IN2
ICS23: ICP0
ICS23: ICE0
IPCP2
IN3
ICS23: ICP1
ICS23: ICE1
IPCP3
第 7 章 16 ビット入出力タイマ
■ インプットキャプチャの動作タイミング
16 ビットフリーランタイマのカウンタ値を取り込みタイミングを , 図 7.6-2 に示しま
す。
図 7.6-2 インプットキャプチャのカウンタ値取込みタイミング
φ
カウンタ値
N
N+1
インプット
キャプチャ入力
有効エッジ
キャプチャ信号
インプットキャプチャ
データレジスタ(IPCP)
N+1
インプットキャプチャ
割込み
φ :マシンクロック
カウンタ値取込み
エッジの種類によるキャプチャ動作のタイミングを , 図 7.6-3 に示します。
図 7.6-3 エッジの種類によるキャプチャ動作のタイミング
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
IN0(立上りエッジ)
IN1(立下りエッジ)
IN2(両エッジ)
インプットキャプチャ
データレジスタ0(IPCP0)
不定
インプットキャプチャ
データレジスタ1(IPCP1)
不定
インプットキャプチャ
データレジスタ2(IPCP2)
不定
3FFFH
7FFFH
BFFFH
3FFFH
インプットキャプチャ0
割込み
インプットキャプチャ1
割込み
インプットキャプチャ2
割込み
249
第 7 章 16 ビット入出力タイマ
7.7
16 ビット入出力タイマ使用上の注意
16 ビット入出力タイマを使用するにあたっての注意点を示します。
■ 16 ビット入出力タイマ使用上の注意
● 16 ビットフリーランタイマの設定に関する注意
• カウントクロック選択ビット(TCCS: CLK2, CLK1, CLK0)は,カウント動作中(TCCS:
STOP=0) は変更しないでください。
• 16 ビットフリーランタイマのカウンタ値は , リセットによってリセット値 "0000H"
にクリアされます。ただし , カウント動作停止中に (TCCS: STOP=1), タイマカウン
タデータレジスタ (TCDT) にカウント値を直接書き込むことによって任意に設定で
きます。
• タイマカウンタデータレジスタ (TCDT) は , 必ずワード命令で設定してください。
● 割込みに関する注意
• オーバフロー割込みまたはインプットキャプチャ割込みが許可されている場合に ,
オーバフロー発生フラグビットまたは , インプットキャプチャ有効エッジ検出フラ
グビットは , セットされているビットのみクリアするようにしてください。例えば ,
割込みを受け付けた要因のフラグをクリアする場合に , ほかのインプットキャプ
チャ割込みが発生しているということも考えられるので , 割込みを受け付けた要因
以外の割込み要求フラグビットを無条件にクリアすることは避けてください。
• 16ビット入出力タイマの各割込み要求フラグビット(TCCS: IVF, ICS01, ICS23: ICP1,
ICP0) が "1" にセットされ , さらにセットされた割込み要求に対応する割込みが許可
されている場合は (TCCS: IVFE=1, ICS01, ICS23: ICE1=1, ICE0=1) 割込み処理から復
帰できません。割込み要求フラグビットは必ずクリアしてください。ただし , EI2OS
を使用する場合 , セットされた割込み要求フラグビットは EI2OS が起動されると自
動的にクリアされます。
250
第 7 章 16 ビット入出力タイマ
7.8
16 ビット入出力タイマのプログラム例
16 ビット入出力タイマのプログラム例を示します。
■ インプットキャプチャを利用した周期測定のプログラムの処理内容
• IN0 端子に入力される信号の周期を測定します。
• 16 ビットフリーランタイマとインプットキャプチャ 0 を使用します。
• エッジ検出は , 立上りエッジに設定します。
• マシンクロック (φ) は 16MHz とし , カウントクロックは φ/4 (0.25μs) を選択します。
• 割込みは , オーバフロー割込みとインプットキャプチャ 0 のインプットキャプチャ
割込みを使用します。
• 16 ビットフリーランタイマのオーバフロー割込みをカウントしておき , 周期計算に
利用します。
• 周期は , 以下の計算により求められます。
周期 =( オーバフロー回数× 10000H + n 回目の IPCP0 の値− (n-1) 回目の IPCP0 の値 ) ×
カウントクロック周期
=( オーバフロー回数× 10000H + n 回目の IPCP0 の値− (n-1) 回目の IPCP0 の値 ) ×
0.25μs
● コーディング例
DDR1
TCCS
EQU
EQU
000011H
000058H
TCDT
ICS01
EQU
EQU
000056H
000054H
IPCP0
EQU
000050H
IVFE
ICP0
EQU
EQU
TCCS:5
ICS01:6
ICR04
EQU
0000B4H
ICR06
EQU
0000B6H
;ポート方向レジスタ
;タイマカウンタ制御
;ステータスレジスタ
;タイマカウンタデータレジスタ
;インプットキャプチャ制御
;ステータスレジスタ01
;インプットキャプチャデータ
;レジスタ0
;オーバフロー割込み許可ビット
;インプットキャプチャ0割込み要求
;フラグビット
;16ビットフリーランタイマの
;割込み制御レジスタ
;16ビットインプットキャプチャ
;割込み制御レジスタ
DATA
DSEG ABS=00H
ORG
0100H
OV_CNT RW
1
;オーバフローカウンタ
DATA
ENDS
;---------メインプログラム------------------------------------CODE
CSEG ABS=0FFH
START:
;スタックポインタ(SP)などは
;初期化済みとする
:
251
第 7 章 16 ビット入出力タイマ
AND
MOV
MOV
MOV
MOV
MOV
CCR,#0BFH
I:ICR04,#00H
I:ICR06,#00H
I:DDR1,#00000000B
I:TCCS,#00110100B
;割込み禁止
;割込みレベル0(最強)
;割込みレベル0(最強)
;端子を入力に設定
;カウント許可,カウンタクリア,
;オーバフロー,割込み許可,
;カウントクロックφ/4選択
I:ICS01,#00010001B ;IN0端子選択,
;IPCP0を立上りエッジ
;IPCP1をエッジ検出なし,
;各割込み要求フラグクリア
;インプットキャプチャ割込み要求許可
ILM,#07
;割込みマスクレベルを設定,割込み許
CCR,#40H
;割込み許可
MOV
OR
:
;---------割込みプログラム------------------------------------WARI1 CLRB I:ICP0
;インプットキャプチャ0割込み要求
;フラグクリア
:
ユーザ処理(周期計算などの処理)
:
MOV
A,0
;次回周期計測のためオーバフロー
;カウンタをクリア
MOV
D:OV_CNT,A
RETI
;割込みから復帰
WARI2 CLRB I:IVFE
;オーバフロー割込み要求フラグクリア
INC
D:OV_CNT
;オーバフローカウンタを+1
RETI
CODE
ENDS
;--------ベクタ設定----------------------------------------VECT
CSEG ABS=0FFH
ORG
0FFA0
;割込み番号#23(17H)にベクタを設定
DSL
WARI1
;インプットキャプチャ0割込み
ORG
0FFB0
;割込み番号#19(13H)にベクタを設定
DSL
WARI2
;オーバフロー割込み
ORG
0FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END START
252
第8章
16 ビットリロードタイマ
この章では , 16 ビットリロードタイマの機能と動
作について説明します。
8.1 16 ビットリロードタイマの概要
8.2 16 ビットリロードタイマのブロックダイヤグラム
8.3 16 ビットリロードタイマの構成
8.4 16 ビットリロードタイマの割込み
8.5 16 ビットリロードタイマの動作説明
8.6 16 ビットリロードタイマの使用上の注意
8.7 16 ビットリロードタイマのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
253
第 8 章 16 ビットリロードタイマ
8.1
16 ビットリロードタイマの概要
16 ビットリロードタイマには , 以下の機能があります。
• カウントクロックは , 3 種類の内部クロックおよび外部イベントクロックから選択
できます。
• 起動トリガは , ソフトウェアトリガまたは外部トリガを選択することができます。
• 16 ビットタイマレジスタのアンダフローが発生した場合に , CPU に割込みを発生
させることができます。割込みを利用してインターバルタイマとして利用するこ
ともできます。
• 16 ビットタイマレジスタ (TMR) のアンダフローが発生した場合に , TMR のカウ
ント動作を停止するワンショットモード , TMR へ 16 ビットリロードレジスタ値
をリロードして TMR のカウント動作を継続するリロードモードを選択できます。
• 拡張インテリジェント I/O サービス (EI2OS) に対応しています。
• MB90895 シリーズには , 16 ビットリロードタイマは 2 チャネル内蔵されていま
す。
■ 16 ビットリロードタイマの動作モード
16 ビットリロードタイマの動作モードを , 表 8.1-1 に示します。
表 8.1-1 16 ビットリロードタイマの動作モード
カウントクロック
起動トリガ
アンダフローした場合の動作
内部クロックモード
ソフトウェアトリガ
外部トリガ
ワンショットモード
リロードモード
イベントカウントモード
ソフトウェアトリガ
ワンショットモード
リロードモード
■ 内部クロックモード
• タイマ制御ステータスレジスタのカウントクロック選択ビット (TMCSR:CSL1, CSL0)
を "00B", "01B", "10B" に設定することによって , 16 ビットリロードタイマは , 内部ク
ロックモードに設定されます。
• 内部クロックモードでは , 内部クロックに同期してカウントダウンします。
• タイマ制御ステータスレジスタのカウントクロック選択ビット (TMCSR:CSL1, CSL0)
によって , 3 種類のカウントクロック周期を選択することができます。
• 起動トリガは , ソフトウェアトリガまたは外部トリガのエッジ検出を設定します。
254
第 8 章 16 ビットリロードタイマ
■ イベントカウントモード
• タイマ制御ステータスレジスタのカウントクロック選択ビット (TMCSR:CSL1, CSL0)
を"11B"に設定することによって, 16ビットリロードタイマは,イベントカウントモー
ドに設定されます。
• イベントカウントモードでは , TIN 端子に入力された外部イベントクロックのエッ
ジ検出に同期してカウントダウンします。
• 起動トリガは , ソフトウェアトリガです。
• 一定周期の外部クロックを利用して , インターバルタイマとして使用することがで
きます。
255
第 8 章 16 ビットリロードタイマ
■ アンダフローが発生した場合の動作
起動トリガが入力されると , 16 ビットリロードレジスタに設定した値が 16 ビットタイ
マレジスタにリロードされ , カウントクロックに同期してカウントダウンが始まりま
す。16 ビットタイマレジスタが "0000H" から "FFFFH" にカウントダウンされるとアン
ダフローが発生します。
• アンダフロー割込みが許可されている (TMCSR: INTE=1) 場合に , アンダフローが発
生するとアンダフロー割込みが発生します。
• アンダフローが発生した場合の 16 ビットリロードタイマの動作は , タイマ制御ス
テータスレジスタのリロード選択ビット (TMCSR: RELD) で設定します。
[ ワンショットモード (TMCSR: RELD=0)]
アンダフローが発生すると , 16 ビットタイマレジスタ (TMR) のカウント動作を停止し
ます。次の起動トリガが入力されると , 16 ビットリロードレジスタ (TMRLR) に設定し
た値が TMR にリロードされ , TMR のカウント動作を開始します。
• ワンショットモードでは , 16 ビットタイマレジスタのカウント動作中 , TOT 端子か
ら "H" または "L" レベルの矩形波が出力されます。
• タイマ制御ステータスレジスタの端子出力レベル選択ビット (TMCSR:
OUTL) に
よって , 矩形波のレベル ("H" または "L") を設定することができます。
[ リロードモード (TMCSR: RELD=1)]
アンダフローが発生すると , 16 ビットリロードレジスタに設定した値が 16 ビットタイ
マレジスタ (TMR) にリロードされ , TMR のカウント動作は継続されます。
• リロードモードでは , 16 ビットタイマレジスタ (TMR) のカウント動作中 , TMR の
アンダフローが発生するごとにTOT端子出力レベルを反転するトグル波が出力され
ます。
• タイマ制御ステータスレジスタの端子出力レベル選択ビット (TMCSR:
OUTL) に
よって , トグル波のレベル ("H" または "L") を設定することができます。
• アンダフロー割込みを利用して , インターバルタイマとして使用することができま
す。
表 8.1-2 16 ビットリロードタイマのインターバル時間
カウントクロック
内部クロックモード
イベントカウントモード
カウントクロック周期
インターバル時間例
21T (0.125μs)
0.125μs ∼ 8.192ms
23T (0.5μs)
0.5μs ∼ 32.768ms
25T (2.0μs)
2.0μs ∼ 131.1ms
23T 以上
0.5μs 以上
T: マシンサイクル
インターバル時間例と ( ) 内はマシンクロックを 16MHz とした場合の算出例
<参考>
256
16 ビットリロードタイマ 1 は , UART1 のクロック入力ソースおよび A/D コンバー
タの起動トリガに使用できます。
第 8 章 16 ビットリロードタイマ
8.2
16 ビットリロードタイマのブロックダイヤグラム
16 ビットリロードタイマ 0, 1 は , それぞれ次のブロックで構成されています。
• カウントクロック生成回路
• リロード制御回路
• 出力制御回路
• 動作制御回路
• 16 ビットタイマレジスタ (TMR)
• 16 ビットリロードレジスタ (TMRLR)
• タイマ制御ステータスレジスタ (TMCSR)
■ 16 ビットリロードタイマのブロックダイヤグラム
図 8.2-1 16 ビットリロードタイマのブロックダイヤグラム
内部データバス
TMRLR
16ビットリロードレジスタ
リロード信号
TMR
リロード
制御回路
16ビットタイマレジスタ UF
カウントクロック生成回路
マシン
クロック
φ プリス
ケーラ
3
CLK
ゲート
入力
有効クロック
判定回路
内蔵周辺機能
への出力
クリア
内部
クロック
端子
ウェイト信号
クロック
セレクタ
入力
制御回路
TIN
外部クロック
3
CLK
2
出力制御回路
出力信号
生成回路
セレクト
信号
機能選択
- - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
端子
TOT
EN
動作
制御回路
UF CNTE TRG
タイマ制御ステータスレジスタ(TMCSR) 割込み要求出力
257
第 8 章 16 ビットリロードタイマ
● ブロックダイヤグラム中の端子などの詳細
16 ビットリロードタイマは 2 チャネル内蔵しています。
チャネルごとの実際の端子名 , 内蔵周辺機器への出力 , 割込み要求番号は次のとおりで
す。
16 ビットリロードタイマ 0 の場合
TIN 端子 : P20/TIN0
TOT 端子 :P21/TOT0
割込み要求番号 : #17 (11H)
16 ビットリロードタイマ 1 の場合
TIN 端子 : P22/TIN1
TOT 端子 : P23/TOT1
内蔵周辺機能への出力 : UART1 のクロック入力ソース , A/D コンバータ起動トリガ
割込み要求番号 : #36 (24H)
● カウントクロック生成回路
マシンクロックまたは外部イベントクロックを基に , 16 ビットタイマレジスタ (TMR)
に供給するカウントクロックを生成します。
● リロード制御回路
16 ビットリロードタイマ動作を開始する場合または 16 ビットタイマレジスタ (TMR)
のアンダフローが発生した場合に , 16 ビットリロードレジスタに設定した値が TMR に
リロードされます。
● 出力制御回路
アンダフロー発生による TOT 端子の出力反転 , TOT 端子出力の許可および禁止を行い
ます。
● 動作制御回路
16 ビットリロードタイマを起動または停止します。
● 16 ビットタイマレジスタ (TMR)
16ビットのダウンカウンタです。リードした場合は,カウント中の値が読み出されます。
● 16 ビットリロードレジスタ (TMRLR)
16 ビットリロードタイマのインターバル時間を設定します。16 ビットリロードタイマ
動作を開始する場合または 16 ビットタイマレジスタ (TMR) のアンダフローが発生し
た場合に , 16 ビットリロードレジスタに設定した値が TMR にリロードされます。
258
第 8 章 16 ビットリロードタイマ
● タイマ制御ステータスレジスタ (TMCSR)
16 ビットリロードタイマ動作モードの選択 , 動作条件の設定 , 起動トリガの選択 , ソフ
トウェアトリガによる起動 , リロード動作モードの選択 , 割込み要求の許可または禁止 ,
TOT 端子出力レベルの設定 , TOT 出力端子の設定を行います。
259
第 8 章 16 ビットリロードタイマ
8.3
16 ビットリロードタイマの構成
16 ビットリロードタイマの端子 , レジスタ , 割込み要因を示します。
■ 16 ビットリロードタイマの端子
16 ビットリロードタイマの端子は , 汎用入出力ポートと兼用になっています。16 ビッ
トリロードタイマとして使用する場合の端子機能と必要な設定を表 8.3-1 に示します。
表 8.3-1 16 ビットリロードタイマの端子
端子名
端子機能
16 ビットリロードタイマの
使用に必要な設定
TIN0
汎用入出力ポート /
16 ビットリロードタイマ入力
ポート方向レジスタ (DDR) で入力
ポートに設定
TOT0
汎用入出力ポート /
16 ビットリロードタイマ出力
タイマ出力許可に設定
(TMCSR0: OUTE=1)
TIN1
汎用入出力ポート /
16 ビットリロードタイマ入力
ポート方向レジスタ (DDR) で入力
ポートに設定
TOT1
汎用入出力ポート /
16 ビットリロードタイマ出力
タイマ出力許可に設定
(TMCSR1: OUTE=1)
■ 16 ビットリロードタイマの端子のブロックダイヤグラム
<参考>
260
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
第 8 章 16 ビットリロードタイマ
■ 16 ビットリロードタイマのレジスタとリセット値の一覧
● 16 ビットリロードタイマ 0 のレジスタ
図 8.3-1 16 ビットリロードタイマ 0 のレジスタとリセット値の一覧
bit
タイマ制御ステータスレジスタ
上位(TMCSR0)
bit
タイマ制御ステータスレジスタ
下位(TMCSR0)
bit
16ビットタイマレジスタ上位
(TMR0)
bit
16ビットタイマレジスタ下位
(TMR0)
bit
16ビットリロードレジスタ上位
(TMRLR0)
bit
16ビットリロードレジスタ下位
(TMRLR0)
15
14
13
12
11
10
9
8
×
×
×
×
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
× :不定
● 16 ビットリロードタイマ 1 のレジスタ
図 8.3-2 16 ビットリロードタイマ 1 のレジスタとリセット値の一覧
bit
タイマ制御ステータスレジスタ
上位(TMCSR1)
bit
タイマ制御ステータスレジスタ
下位(TMCSR1)
bit
16ビットタイマレジスタ上位
(TMR1)
bit
16ビットタイマレジスタ下位
(TMR1)
bit
16ビットリロードレジスタ上位
(TMRLR1)
bit
16ビットリロードレジスタ下位
(TMRLR1)
15
14
13
12
11
10
9
8
×
×
×
×
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
× :不定
261
第 8 章 16 ビットリロードタイマ
■ 16 ビットリロードタイマでの割込み要求の発生
16 ビットリロードタイマが起動して, 16ビットタイマレジスタのカウント値が"0000H"
から "FFFFH" にカウントダウンされるとアンダフローが発生します。アンダフローが
発生すると , タイマ制御ステータスレジスタの UF ビットに "1" がセットされます
(TMCSR: UF)。アンダフロー割込みが許可されている場合は (TMCSR: INTE=1), 割込み
要求が発生します。
262
第 8 章 16 ビットリロードタイマ
タイマ制御ステータスレジスタ上位 (TMCSR0: H,
TMCSR1: H)
8.3.1
タイマ制御ステータスレジスタ上位 (TMCSR0: H, TMCSR1: H) では , 動作モードや
カウントクロックを設定します。
なお , タイマ制御ステータスレジスタ下位 (TMCSR0: L, TMCSR1: L) のビット 7 に
ついてもここで説明します。
■ タイマ制御ステータスレジスタ上位 (TMCSR0: H, TMCSR1: H)
図 8.3-3 タイマ制御ステータスレジスタ上位 (TMCSR0: H, TMCSR1: H)
15
14
13
12
-
-
-
- R/W R/W R/W R/W R/W
11
10
9
8
7
リセット値
XXXX00000B
bit9 bit8 bit7
MOD2
MOD1
MOD0
0
0
0
0
1
1
0
0
1
1
×
×
0
1
0
1
0
1
動作モード選択ビット(内部クロックモード)
(CSL1,0=00B,01B,10B)
有効エッジ,レベル
入力端子機能
トリガ禁止
トリガ入力
ゲート入力
-
立上りエッジ
立下りエッジ
両エッジ
"L"レベル
"H"レベル
bit9 bit8 bit7
MOD2
MOD1
MOD0
×
×
×
×
0
0
1
1
0
1
0
1
動作モード選択ビット(イベントカウント
モード)(CSL1,0=11B)
有効エッジ
入力端子機能
-
トリガ入力
-
立上りエッジ
立下りエッジ
両エッジ
bit11 bit10
CSL1
R/W
X
-
:リード・ライト 可能
:不定
:未定義
:リセット値
CSL0
カウントクロック選択ビット
カウントクロック周期
カウントクロック
21T
内部クロックモード
23T
25T
イベントカウントモード
外部イベントクロック
0
0
0
1
1
0
1
1
T:マシンサイクル
263
第 8 章 16 ビットリロードタイマ
表 8.3-2 タイマ制御ステータスレジスタ上位 (TMCSR0: H, TMCSR1: H) の機能
ビット名
機 能
bit15
∼
bit12
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit11
bit10
CSL1, CSL0:
カウントクロック選択
ビット
16 ビットリロードタイマのカウントクロックを選択しま
す。
"11B" 以外に設定した場合 : 内部クロックによってカウン
トします ( 内部クロックモー
ド)
"11B" に設定した場合 : 外部イベントクロックのエッジを
カウントします ( イベントカウン
トモード )
bit9
∼
bit7
264
MOD2, MOD1, MOD0:
動作モード選択ビット
16 ビットリロードタイマの動作条件を設定します。
[ 内部クロックモードの場合 ]
MOD2 ビットで入力端子の機能を選択します。
MOD2 ビットが "0" の場合 :
入力端子は , トリガ入力として機能します。
MOD1, MOD0 ビットで検出するエッジを選択しま
す。エッジが検出されると , 16 ビットリロードレジ
スタに設定した値が 16 ビットタイマレジスタ
(TMR) にリロードされ , TMR のカウント動作を開始
します。
MOD2 ビットが "1" の場合 :
入力端子は , ゲート入力として機能します。
MOD1 ビットは使用しません。MOD0 ビットで検出
する信号レベル ("H", "L") を選択します。信号レベ
ルが入力されている間のみ , 16 ビットタイマレジス
タのカウント動作を行います。
[ イベントカウントモードの場合 ]
MOD2 ビットは使用しません。入力端子から外部イベン
トクロックを入力します。MOD1, MOD0 ビットで検出す
るエッジを選択します。
第 8 章 16 ビットリロードタイマ
タイマ制御ステータスレジスタ下位 (TMCSR0: L,
TMCSR1: L)
8.3.2
タイマ制御ステータスレジスタ下位 (TMCSR0:L, TMCSR1:L) は , タイマ動作の許可
または禁止 , ソフトウェアトリガ , アンダフロー発生の確認 , アンダフロー割込みの
許可または禁止 , リロードモードの選択 , TOT 端子出力を設定します。
■ タイマ制御ステータスレジスタ下位 (TMCSR0:L, TMCSR1:L)
図 8.3-4 タイマ制御ステータスレジスタ下位 (TMCSR0:L, TMCSR1:L)
7
6
5
4
3
2
1
0
リセット値
*
00000000B
R/W R/W
R/W R/W R/W R/W R/W
bit0
TRG
0
1
ソフトウェアトリガビット
影響なし
リロード後,カウント動作開始
bit1
CNTE
0
1
タイマ動作許可ビット
タイマ動作禁止
タイマ動作許可(起動トリガ待ち)
bit2
UF
0
1
bit3
INTE
0
1
bit4
RELD
0
1
アンダフロー発生フラグビット
ライトした場合
リードした場合
アンダフローなし
UFビットのクリア
アンダフローあり
影響なし
アンダフロー割込み許可ビット
アンダフロー割込みの禁止
アンダフロー割込みの許可
リロード選択ビット
ワンショットモード
リロードモード
bit5
OUTL
0
1
TOT端子出力レベル選択ビット
リロードモード
ワンショットモード
(RELD=1)
(RELD=0)
カウント中"H"の矩形波出力 リロードタイマ起動時"L"のトグル出力
カウント中"L"の矩形波出力 リロードタイマ起動時"H"のトグル出力
bit6
TOT端子出力許可ビット
OUTE
R/W
*
0
1
端子機能
チャンネルに対するレジスタと端子
TMCSR0
TMCSR1
汎用入出力ポート 汎用入出力ポート 汎用入出力ポート
TOT出力
TOT0
TOT1
:リード・ライト 可能
:リセット値
:MOD0(bit7)については「8.3.1 タイマ制御ステータスレジスタ上位」を参照してください。
265
第 8 章 16 ビットリロードタイマ
表 8.3-3 タイマ制御ステータスレジスタ下位 (TMCSR0: H,TMCSR1: H) の
機能 (1 / 2)
ビット名
266
機 能
bit6
OUTE:
TOT 出力許可ビット
16 ビットリロードタイマの TOT 端子の機能を設定しま
す。
"0" に設定した場合 : 汎用入出力ポートとして機能しま
す。
"1" に設定した場合 : 16 ビットリロードタイマの TOT 端
子として機能します。
bit5
OUTL:
TOT 端子出力レベル
選択ビット
16 ビットリロードタイマの出力端子の出力レベルを設定
します。
<ワンショットモードを選択した場合 (RELD=0) >
"0" に設定した場合 : タイマレジスタカウント中に "H" の
短形波を出力
"1" に設定した場合 : タイマレジスタカウント中に "L" の
短形波を出力
<リロードモードを選択した場合 (RELD=1) >
"0" に設定した場合 : リロードタイマ起動時 "L" のトグル
出力
"1" に設定した場合 : リロードタイマ起動時 "H" のトグル
出力
bit4
RELD:
リロード選択ビット
アンダフローが発生した場合のリロード動作を設定します。
"1" に設定した場合 : アンダフローが発生すると , 16 ビッ
トリロードレジスタに設定した値が
16 ビットタイマレジスタにリロー
ドされ , カウント動作を継続されま
す ( リロードモード )。
"0" に設定した場合 : アンダフローが発生すると , カウン
ト動作は停止します ( ワンショット
モード )。
bi3
INTE:
アンダフロー割込み
許可ビット
アンダフロー割込みを許可または禁止します。
アンダフロー割込みが許可されている状態 (TMCSR:
INTE=1) でアンダフローが発生 (TMCSR: UF=1) した場合
, 割込み要求が発生します。
bit2
UF:
アンダフロー発生
フラグビット
タイマレジスタのアンダフローが発生したことを示しま
す。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイ・ライト系命令でリードした場合 :
"1" が読み出されます。
bit1
CNTE:
タイマ動作許可ビット
16 ビットリロードタイマの動作を許可または禁止します。
"1" に設定した場合 : 起動トリガ待ち状態になります。起
動トリガが入力されると , タイマレ
ジスタのカウント動作を再開しま
す。
"0" に設定した場合 : カウント動作を停止します。
第 8 章 16 ビットリロードタイマ
表 8.3-3 タイマ制御ステータスレジスタ下位 (TMCSR0: H,TMCSR1: H) の
機能 (2 / 2)
ビット名
bit0
TRG:
ソフトウェアトリガ
ビット
機 能
ソフトウェアで 16 ビットリロードタイマを起動します。
ソフトウェアトリガ機能は , タイマ動作が許可されている
場合 (CNTE=1) のみ機能します。
"0" に設定した場合 : 無効です。変化しません。
"1" に設定した場合 : 16 ビットリロードレジスタに設定
した値が 16 ビットタイマレジスタ
(TMR) にリロードされ , TMR のカ
ウント動作を開始します。
リードした場合 : 常に "0" が読み出されます。
267
第 8 章 16 ビットリロードタイマ
16 ビットタイマレジスタ (TMR0, TMR1)
8.3.3
16 ビットタイマレジスタは , 16 ビットダウンカウンタです。リードした場合は , カ
ウント中の値が読出せます。
■ 16 ビットタイマレジスタ (TMR0, TMR1)
図 8.3-5 16 ビットタイマレジスタ (TMR0, TMR1)
TMR0
TMR1
TMR0
TMR1
R
X
:リードオンリ
:不定
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
R
R
R
R
R
R
R
R
リセット値
XXXXXXXXB
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
リセット値
XXXXXXXXB
タイマ動作を許可し (TMCSR:CNTE=1), 起動トリガが入力されると , 16 ビットリロード
レジスタ (TMRLR) に設定した値が 16 ビットタイマレジスタ (TMR) にリロードされ ,
TMR のカウント動作が開始されます。
タイマ動作を禁止 (TMCSR: CNTE=0) している場合は , TMR の値は保持されます。
TMR のカウント中に TMR 値が , "0000H" から "FFFFH" にカウントダウンされると , ア
ンダフローが発生します。
[ リロードモードの場合 ]
16 ビットタイマレジスタ (TMR) のアンダフローが発生すると , 16 ビットリロードレジ
スタ (TMRLR) に設定した値が TMR にリロードされ , TMR のカウント動作が再開され
ます。
[ ワンショットモードの場合 ]
16 ビットタイマレジスタ (TMR) のアンダフローが発生すると , TMR のカウント動作が
停止し , 起動トリガ入力待ち状態になります。
TMR 値は , "FFFFH" のまま保持されます。
<注意事項>
268
• 16 ビットタイマレジスタ (TMR) のリードは TMR のカウント動作中でも可能で
すが , 必ずワード命令 (MOVW) を使用してください。
• 16 ビットタイマレジスタ (TMR) は , 16 ビットリロードレジスタ (TMRLR) と同
一アドレスに配置されています。書込みを行った場合は TMR へ影響を与えず
に TMRLR に対して設定値を書き込むことができます。読出しを行った場合は
TMR のカウント中の TMR 値が読み出せます。
第 8 章 16 ビットリロードタイマ
16 ビットリロードレジスタ (TMRLR0, TMRLR1)
8.3.4
16 ビットリロードレジスタは , 16 ビットタイマレジスタへのリロード値を設定しま
す。16 ビットリロードレジスタに設定した値は , 起動トリガが入力されると 16 ビッ
トタイマレジスタにリロードされ , 16 ビットタイマレジスタのカウント動作が開始
されます。
■ 16 ビットリロードレジスタ (TMRLR0, TMRLR1)
図 8.3-6 16 ビットリロードレジスタ (TMRLR0, TMRLR1)
TMRLR0
TMRLR1
TMRLR0
TMRLR1
W
X
:ライトオンリ
:不定
15
14
13
12
11
10
9
8
D15
D14
D13
D12
D11
D10
D9
D8
W
W
W
W
W
W
W
W
リセット値
XXXXXXXXB
7
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
リセット値
XXXXXXXXB
16 ビットリロードレジスタを設定する場合は , タイマの動作を禁止 (TMCSR: CNTE=0)
してから行います。16 ビットリロードレジスタの設定が終了したら , タイマの動作を
許可 (TMCSR: CNTE=1) します。
起動トリガが入力されると , 16 ビットリロードレジスタ (TMRLR) に設定した値が 16
ビットタイマレジスタ (TMR) にリロードされ , TMR のカウント動作が開始されます。
<注意事項>
• 16 ビットタイマレジスタの書込みは , 16 ビットリロードタイマの動作を禁止
(TMCSR: CNTE=0) してから行ってください。必ずワード命令 (MOVW) で書き
込んでください。
• 16 ビットリロードレジスタ (TMRLR) は , 16 ビットタイマレジスタ (TMR) と同
一アドレスに配置されています。書込みを行った場合は TMR へ影響を与えずに
TMRLR に対して設定値を書き込むことができます。読出しを行った場合はカウ
ント中の TMR 値が読出せます。
• INC/DEC 命令などリードモディファイライト (RMW) 動作をする命令は使用で
きません。
269
第 8 章 16 ビットリロードタイマ
8.4
16 ビットリロードタイマの割込み
16 ビットリロードタイマは , 16 ビットタイマレジスタのアンダフローが発生すると
割込み要求を発生します。
■ 16 ビットタイマの割込み
16 ビットタイマレジスタ (TMR) のカウント中に TMR 値が , "0000H" から "FFFFH" にカ
ウントダウンされると , アンダフローが発生します。アンダフローが発生すると , タイ
マ制御ステータスレジスタのアンダフロー発生フラグビット(TMCSR: UF)に"1"がセッ
トされます。アンダフロー割込みが許可されている場合は (TMCSR: INTE=1), 割込み要
求が発生します。
表 8.4-1 16 ビットリロードタイマの割込み制御ビットと割込み要因
16 ビットリロードタイマ 0
16 ビットリロードタイマ 1
割込み要求フラグビット
TMCSR0: UF
TMCSR1: UF
割込み要求許可ビット
TMCSR0: INTE
TMCSR1: INTE
割込み要因
16 ビットタイマレジスタ
(TMR0) のアンダフロー
16 ビットタイマレジスタ
(TMR1) のアンダフロー
■ 16 ビットリロードタイマの割込みと EI2OS
<参考>
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込
み」を参照してください。
■ 16 ビットリロードタイマの EI2OS の機能
16 ビットリロードタイマは EI2OS 機能に対応しており , 16 ビットタイマレジスタのア
ンダフロー発生で EI2OS を起動できます。
ただし , EI2OS は , 割込み制御レジスタ (ICR) を共有するほかの周辺機能が割込みを使
用していない場合にのみ使用できます。16 ビットリロードタイマ 0, 1 で EI2OS を使用
する場合には , 16 ビットリロードタイマ 0, 1 と割込み制御レジスタを共有する周辺機
能の割込みを禁止する必要があります。
270
第 8 章 16 ビットリロードタイマ
16 ビットリロードタイマの動作説明
8.5
16 ビットリロードタイマの設定と , カウンタの動作状態について説明します。
■ 16 ビットリロードタイマの設定
● 内部クロックモードの設定
内部クロックをカウントするには , 図 8.5-1 の設定が必要です。
図 8.5-1 内部クロックモードの設定
TMCSR
bit15 14
13
12
11
-
-
-
CSL1 CSL0
-
10
"11B"以外
9
8
MOD2
MOD1
◎
◎
7
6
5
4
3
2
1
bit0
MOD0 OUTE
OUTL
RELD
INTE
UF
CNTE
TRG
◎
◎
◎
◎
◎
1
◎
◎
16ビットタイマレジスタへのリロード値を設定
TMRLR
◎ :使用ビット
1 :"1"を設定
● イベントカウントモードの設定
外部イベントの入力で動作させるには , 図 8.5-2 の設定が必要です。
図 8.5-2 イベントカウンタモードの設定
TMCSR
bit15 14
13
12
11
-
-
-
CSL1 CSL0
-
1
TMRLR
10
1
9
8
MOD2
MOD1
◎
◎
7
6
5
4
3
2
1
bit0
MOD0 OUTE
OUTL
RELD
INTE
UF
CNTE
TRG
◎
◎
◎
◎
◎
1
◎
◎
16ビットタイマレジスタへのリロード値を設定
TIN端子として使用する端子に該当するDDR(ポート方向レジスタ)のビットに"0"を設定
◎ :使用ビット
1 :"1"を設定
271
第 8 章 16 ビットリロードタイマ
■ 16 ビットタイマレジスタの動作状態
16 ビットタイマレジスタの動作状態は , タイマ制御ステータスレジスタのタイマ動作
許可ビット (TMCSR: CNTE) と WAIT 信号で決定されます。停止状態 (STOP 状態 ), 起
動トリガ入力待ち状態 (WAIT 状態 ), 実行状態 (RUN 状態 ) があります。
16 ビットタイマレジスタの動作状態の遷移図を図 8.5-3 に示します。
図 8.5-3 動作状態の遷移図
STOP状態
CNTE=0, WAIT=1
TIN端子 :入力禁止
TOT端子 : 汎用入出力ポート
リセット
16ビットタイマレジスタ:停止時の値を保持
リセット直後の値は不定
CNTE=0
CNTE=0
CNTE=1
TRG=0
WAIT状態
CNTE=1, WAIT=1
TIN端子 : トリガ入力のみ有効
TOT端子 : 16ビットリロード
レジスタの値を出力
16ビットタイマレジスタ:停止時の値を保持
リセット直後ロードするまで値は不定
TRG=1
(ソフトウェアトリガ)
TINから外部トリガ
CNTE=1
TRG=1
RUN状態
UF=1&
RELD=0
(ワンショットモード)
TOT端子
: 16ビットリロードタイマ
の出力端子として機能
UF=1& 16ビットタイマレジスタ:動作
RELD=1
(リロードモード)
TRG=1
LOAD
CNTE=1, WAIT=0
16ビットリロードレジスタの内容を
16ビットタイマレジスタへロード
:ハードウェアによる状態遷移
:レジスタアクセスによる状態遷移
WAIT :WAIT信号(内部信号)
TRG :ソフトウェアトリガビット(TMCSR)
CNTE :タイマ動作許可ビット(TMCSR)
UF :アンダフロー発生フラグビット(TMCSR)
RELD :リロード選択ビット(TMCSR) 272
CNTE=1, WAIT=0
TIN端子 : 16ビットリロードタイマ
の入力端子として機能
(ソフトウェアトリガ)
ロード終了
第 8 章 16 ビットリロードタイマ
8.5.1
内部クロックモードの動作
内部クロックモードでは , タイマ制御ステータスレジスタの動作モード選択ビット
(TMCSR: MOD2 ∼ MOD0) を設定することによって 3 種類の動作モードを選択する
ことができます。動作モードの設定とリロードモードの設定により TOT 端子から矩
形波またはトグル波が出力されます。
■ 内部クロックモードの設定
• タイマ制御ステータスレジスタのカウントクロック選択ビット (CSL1, CSL0) を
"00B", "01B", "10B" に設定することによって , 16 ビットリロードタイマは内部クロッ
クモードに設定されます。
•
内部クロックモードでは , 16 ビットタイマレジスタは内部クロックに同期してカウ
ントダウンします。
• タイマ制御ステータスレジスタのカウントクロック選択ビット(CSL1, CSL0)を設定
することによって , 3 種類のカウントクロック周期を選択することができます。
[16 ビットタイマレジスタへのリロード値の設定 ]
16 ビットリロードタイマ起動後 , 16 ビットリロードレジスタ (TMRLR) に設定した値
は , 16 ビットタイマレジスタ (TMR) にリロードされます。
1. タイマの動作を禁止 (TMCSR: CNTE=0) します。
2. 16 ビットリロードレジスタに 16 ビットタイマレジスタへのリロード値を設定しま
す。
3. タイマの動作を許可 (TMCSR: CNTE=1) します。
<注意事項>
起動トリガが入力されて ,16 ビットリロードレジスタ (TMRLR) に設定した値が
16 ビットタイマレジスタ (TMR) にリロードされるまでは 1T(T: マシンサイクル )
の時間がかかります。
273
第 8 章 16 ビットリロードタイマ
■ 16 ビットタイマレジスタのアンダフローが発生した場合の動作
16 ビットタイマレジスタ (TMR) のカウント動作中 , TMR 値が "0000H" から "FFFFH" に
カウントダウンされるとアンダフローが発生します。
• アンダフローが発生すると , タイマ制御ステータスレジスタのアンダフロー発生フ
ラグビット (TMCSR: UF) に "1" がセットされます。
• タイマ制御ステータスレジスタのアンダフロー割込み許可ビット(TMCSR: INTE)が
"1" に設定されている場合は , アンダフロー割込みが発生します。
• アンダフローが発生した場合のリロード動作は , タイマ制御ステータスレジスタの
リロード選択ビット (TMCSR: RELD) で設定します。
[ ワンショットモード (TMCSR: RELD=0) の場合 ]
アンダフローが発生すると , 16 ビットタイマレジスタ (TMR) は停止して , 起動トリガ
入力待ちの状態になります。次の起動トリガが入力されると , TMR のカウント動作を
再開します。
ワンショットモードでは , TMR のカウント動作中に TOT 端子から矩形波が出力されま
す。タイマ制御ステータスレジスタの端子出力レベル選択ビット (TMCSR: OUTL) を設
定することによって , 矩形波のレベル ("H" または "L") を選択することができます。
[ リロードモード (TMCSR: RELD=1) の場合 ]
アンダフローが発生すると , 16 ビットタイマレジスタ (TMR) に 16 ビットリロードレ
ジスタ (TMRLR) で設定した値がリロードされ , TMR のカウント動作は継続されます。
リロードモードでは , TMR のカウント動作中にアンダフローが発生するごとに TOT 端
子出力レベルを反転するトグル波が出力されます。タイマ制御ステータスレジスタの
端子出力レベル選択ビット (TMCSR: OUTL) を設定することによって , リロードタイマ
起動時のトグル波レベル ("H" または "L") を選択することができます。
■ 内部クロックモードの動作
内部クロックモードでは , タイマ制御ステータスレジスタの動作モード選択ビット
(TMCSR: MOD2 ∼ MOD0) を設定することによって動作モードを選択することができ
ます。タイマ制御ステータスレジスタのタイマ動作許可ビット (TMCSR: CNTE) を "0"
に設定してタイマ動作を禁止に設定してください。
[ ソフトウェアトリガモード (MOD2 ∼ MOD0=000B)]
ソフトウェアトリガモードに設定した場合は,タイマ制御ステータスレジスタのソフト
ウェアトリガビット (TMCSR: TRG) を "1" に設定して , 16 ビットリロードタイマを起
動します。16 ビットリロードタイマが起動されると , 16 ビットリロードレジスタ
(TMRLR) に設定した値が 16 ビットタイマレジスタ (TMR) にリロードされ , TMR のカ
ウント動作が開始されます。
<注意事項>
274
タイマ制御ステータスレジスタのタイマ動作許可ビット (TMCSR: CNTE) とソフ
トウェアトリガビット (TMCSR: TRG) を同時に "1" に設定すると , 16 ビットリ
ロードタイマの起動と同時に 16 ビットタイマレジスタのカウント動作が開始され
ます。
第 8 章 16 ビットリロードタイマ
図 8.5-4 ソフトウェアトリガ動作モードのカウント動作 ( ワンショットモード )
カウントクロック
リロードデータ
カウンタ
-1
0000H
FFFFH
リロードデータ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。
図 8.5-5 ソフトウェアトリガ動作モードのカウント動作 ( リロードモード )
カウントクロック
リロードデータ
カウンタ
-1
0000H リロードデータ
-1
0000H リロードデータ
-1
0000H リロードデータ
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。 275
第 8 章 16 ビットリロードタイマ
[ 外部トリガモード (MOD2 ∼ MOD0=001B, 010B, 011B)]
外部トリガモードに設定した場合は , 外部から TIN 端子に有効エッジを入力して , 16
ビットリロードタイマを起動します。16ビットリロードタイマが起動されると, 16ビッ
トリロードレジスタ (TMRLR) に設定した値が 16 ビットタイマレジスタ (TMR) にリ
ロードされ , TMR のカウント動作が開始されます。
• タイマ制御ステータスレジスタの動作モード選択ビット (TMCSR: MOD2 ∼ MOD0)
を設定することによって , エッジ検出を立上りエッジ , 立下りエッジ , 両エッジから
選択することができます。
<注意事項>
TIN 端子に入力するエッジのトリガパルス幅は , 2T (T: マシンサイクル ) 以上とし
てください。
図 8.5-6 外部トリガモードのカウント動作 ( ワンショットモード )
カウントクロック
カウンタ
リロードデータ
-1
0000H
FFFFH
リロードデータ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TIN端子
2T~2.5T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル
* :外部トリガ入力からリロードレジスタのデータをロードするまでに,2T~2.5Tの時間がかかります。
図 8.5-7 外部トリガモードのカウント動作 ( リロードモード )
カウントクロック
カウンタ
リロードデータ
-1
0000H リロードデータ -1
0000H リロードデータ -1
0000H リロードデータ
-1
データロード信号
UFビット
CNTEビット
TIN端子
TOT端子
2T~2.5T*
T :マシンサイクル
* :外部トリガ入力からリロードレジスタのデータをロードするまでに,2T~2.5Tの時間がかかります。
276
第 8 章 16 ビットリロードタイマ
[ 外部ゲート入力動作モード (MOD2 ∼ MOD0=1x0B, 1x1B)]
外部ゲート入力動作モードに設定した場合は,タイマ制御ステータスレジスタのソフト
ウェアトリガビット (TMCSR: TRG) を "1" に設定して , 16 ビットリロードタイマを起
動します。16ビットリロードタイマが起動されると, 16ビットリロードタイマ(TMRLR)
に設定した値が 16 ビットタイマレジスタ (TMR) にリロードされます。
• 16 ビットリロードタイマ起動後 , 設定したゲート入力のレベルが TIN 端子に入力さ
れている間は , 16 ビットタイマレジスタのカウント動作を行います。
• タイマ制御ステータスレジスタの動作モード選択ビット (TMCSR: MOD2 ∼ MOD0)
を設定することによって , ゲート入力のレベル ("H" または "L") を選択することがで
きます。
図 8.5-8 外部ゲート入力動作モードのカウント動作 ( ワンショットモード )
カウントクロック
リロードデータ
カウンタ
-1
0000H
-1
FFFFH
リロードデータ
-1
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
T*
TIN端子
TOT端子
起動トリガ入力待ち
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。
図 8.5-9 外部ゲート入力動作モードのカウント動作 ( リロードモード )
カウントクロック
カウンタ
リロードデータ
-1
-1
-1
0000H リロードデータ
-1
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
TIN端子
TOT端子
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。
277
第 8 章 16 ビットリロードタイマ
8.5.2
イベントカウントモードの動作
イベントカウントモードでは , 16 ビットリロードタイマ起動後 , TIN 端子に入力さ
れた信号のエッジを検出して 16 ビットタイマレジスタのカウント動作を行います。
動作モードの設定とリロードモードの設定により TOT 端子から矩形波またはトグル
波が出力されます。
■ イベントカウントモードの設定
• タイマ制御ステータスレジスタのカウントクロック選択ビット (TMCSR: CSL1,
CSL0) を "11B" に設定することによって , 16 ビットリロードタイマはイベントカウ
ントモードに設定されます。
• イベントカウントモードでは , TIN 端子に入力された外部イベントクロックのエッ
ジ検出に同期して 16 ビットタイマレジスタをカウントダウンします。
[ カウンタ初期値の設定 ]
16 ビットリロードタイマ起動後 , 16 ビットリロードレジスタ (TMRLR) に設定した値
は , 16 ビットタイマレジスタ (TMR) にリロードされます。
1. 16 ビットリロードタイマの動作を禁止 (TMCSR: CNTE=0) します。
2. 16 ビットリロードレジスタに 16 ビットタイマレジスタへのリロード値を設定しま
す。
3. 16 ビットリロードタイマの動作を許可 (TMCSR: CNTE=1) します。
<注意事項>
278
起動トリガが入力されて , 16 ビットリロードレジスタ (TMRLR) に設定した値が
16 ビットタイマレジスタ (TMR) にロードされるまでは 1T (T: マシンサイクル ) の
時間がかかります。
第 8 章 16 ビットリロードタイマ
■ 16 ビットタイマレジスタのアンダフローが発生した場合の動作
16 ビットタイマレジスタ (TMR) のカウント動作中 , TMR 値が "0000H" から "FFFFH" に
カウントダウンされるとアンダフローが発生します。
• アンダフローが発生すると , タイマ制御ステータスレジスタのアンダフロー発生フ
ラグビット (TMCSR: UF) に "1" がセットされます。
• タイマ制御ステータスレジスタのアンダフロー割込み許可ビット(TMCSR: INTE)が
"1" に設定されている場合は , アンダフロー割込みが発生します。
• アンダフローが発生した場合のリロード動作は , タイマ制御ステータスレジスタの
リロード選択ビット (TMCSR: RELD) で設定します。
[ ワンショットモード (TMCSR: RELD=0) の場合 ]
アンダフローが発生すると , 16 ビットタイマレジスタ (TMR) は停止して , 起動トリガ
入力待ちの状態になります。次の起動トリガが入力されると , TMR のカウント動作を
再開します。
ワンショットモードでは , TMR のカウント動作中に TOT 端子から矩形波が出力されま
す。タイマ制御ステータスレジスタの端子出力レベル選択ビット (TMCSR: OUTL) を設
定することによって , 矩形波のレベル ("H" または "L") を選択することができます。
[ リロードモード (TMCSR: RELD=1) の場合 ]
アンダフローが発生すると , 16 ビットタイマレジスタ (TMR) に 16 ビットリロードレ
ジスタ (TMRLR) で設定した値がリロードされ , TMR のカウント動作は継続されます。
リロードモードでは , TMR のカウント動作中にアンダフローが発生するごとに TOT 端
子出力レベルを反転するトグル波が出力されます。タイマ制御ステータスレジスタの
端子出力レベル選択ビット (TMCSR: OUTL) を設定することによって , リロードタイマ
起動時のトグル波レベル ("H" または "L") を選択することができます。
279
第 8 章 16 ビットリロードタイマ
■ イベントカウントモードの動作
タイマ制御ステータスレジスタのタイマ動作許可ビット (TMCSR: CNTE) を "1" に設定
して 16 ビットリロードタイマの動作を許可します。タイマ制御ステータスレジスタの
ソフトウェアトリガビット (TMCSR: TRG) を "1" に設定すると , 16 ビットリロードタ
イマが起動します。16 ビットリロードタイマが起動されると , 16 ビットリロードレジ
スタ (TMRLR) に設定した値が 16 ビットタイマレジスタ (TMR) にロードされ , TMR の
カウント動作が開始されます。16 ビットリロードタイマ起動後 , TIN 端子に入力され
た外部イベントクロックのエッジを検出して TMR のカウント動作が行われます。
• タイマ制御ステータスレジスタの動作モード選択ビット (TMCSR: MOD2 ∼ MOD0)
を設定することによって , 検出するエッジを立上りエッジ , 立下りエッジ , 両エッジ
から選択することができます。
<注意事項>
TIN 端子に入力する外部イベントクロックのレベル幅は , 4T (T: マシンサイクル )
以上としてください。
図 8.5-10 イベントカウントモードのカウント動作 ( ワンショットモード )
TIN端子
リロードデータ
カウンタ
-1
0000H
FFFFH
リロードデータ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。
図 8.5-11 イベントカウントモードのカウント動作 ( リロードモード )
TIN端子
リロードデータ
カウンタ
-1
0000H リロードデータ
-1
0000H リロードデータ
-1
0000H リロードデータ
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
T :マシンサイクル
* :トリガ入力からリロードレジスタのデータをロードするまでに,1Tの時間がかかります。
280
第 8 章 16 ビットリロードタイマ
8.6
16 ビットリロードタイマの使用上の注意
16 ビットリロードタイマを使用するときは , 次の点に注意してください。
■ 16 ビットリロードタイマの使用上の注意
● プログラムで設定する場合の注意
• 16 ビットリロードレジスタ (TMRLR) の設定は , タイマ動作を禁止 (TMCSR: CNTE=0)
してから行ってください。
• 16 ビットタイマレジスタ (TMR) のリードは , TMR のカウント動作中でも可能です
が , 必ずワード命令を使用してください。
• タイマ制御ステータスレジスタ (TMCSR) の CSL1, CSL0 ビットの変更は , タイマ動
作を禁止 (TMCSR: CNTE=0) してから行ってください。
● 割込みに関連する注意
• タイマ制御ステータスレジスタ (TMCSR) の UF ビットが "1" にセットされ , アンダ
フロー割込み出力が許可 (TMCSR: INTE=1) した状態では , 割込み処理から復帰でき
ません。UF ビットは必ずクリアしてください。ただし , EI2OS を使用した場合は ,
UF ビットは自動的にクリアされます。
• 16 ビットリロードタイマで EI2OS を使用する場合は , 割込み制御レジスタ (ICR) を
共有する周辺機能の割込みを禁止する必要があります。
281
第 8 章 16 ビットリロードタイマ
8.7
16 ビットリロードタイマのプログラム例
16 ビットリロードタイマの内部クロックモードとイベントカウントモードのプログ
ラム例を示します。
■ 内部クロックモードのプログラム例
● 処理仕様
• 16 ビットリロードタイマ 0 で , 25ms のインターバルタイマ割込みを発生します。
• リロードモードで使用し , 繰り返し割込みを発生させます。
• 外部トリガ入力は使用せず , ソフトウェアトリガで , タイマを起動します。
• EI2OS は使用しません。
• マシンクロック 16MHz, カウントクロック 2μs とします。
● コーディング例
ICR03
;16ビットリロードタイマ用
;割込み制御レジスタ
TMCSR0 EQU 000066H
;タイマコントロールステータスレジスタ
TMR0
EQU 003900H
;16ビットタイマレジスタ
TMRLR0 EQU 003900H
;16ビットリロードレジスタ
UF0
EQU TMCSR0:2
;割込み要求フラグビット
CNTE0 EQU TMCSR0:1
;カウンタ動作許可ビット
TRG0
EQU TMCSR0:0
;ソフトウエアトリガビット
;--------メインプログラム-----------------------------------CODE
CSEG
;
:
;スタックポインタ(SP)などは
;初期化済みとする
AND CCR,#0BFH
;割込み禁止
MOV I:ICR03,#00H
;割込みレベル0(最強)
CLRB I:CNTE0
;カウンタを一時停止
MOVW I:TMRLR0,#30D3H ;25msタイマのデータを設定
MOVW I:TMCSR0,#0000100000011011B
;インターバルタイマ動作,クロック2ms
;外部トリガ禁止,外部出力禁止,
;リロードモード選択,割込み許可
;割込みフラグクリア,カウントスタート
MOV ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
LOOP:
・
ユーザ処理
・
BRA LOOP
;
282
EQU
0000B3H
第 8 章 16 ビットリロードタイマ
;---------割込みプログラム----------------------------------WARI:
CLR I:UF0
;割込み要求フラグをクリア
・
・
ユーザ処理
・
・
RETI
;割込みからの復帰
CODE
ENDS
;---------ベクタ設定---------------------------------------VECT
CSEG ABS=0FFH
ORG 00FFB8H
;割込み#17(11H)にベクタを設定
DSL WARI
ORG 00FFDCH
;リセットベクタ設定
DSL START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END START
■ イベントカウントモードのプログラム例
● 処理仕様
• 16 ビットリロードタイマ 0 で , 外部イベント入力端子に入力される , パルスの立上
りエッジを 10,000 回カウントすると割込みを発生します。
• ワンショットモードで動作させます。
• 外部トリガ入力は , 立上りエッジを選択します。
• EI2OS は使用しません。
● コーディング例
ICR03
EQU
0000B3H ;16ビットリロードタイマ用
;割込み制御レジスタ
TMCSR0 EQU 000066H
;タイマコントロールステータスレジスタ
TMR0
EQU 003900H
;16ビットタイマレジスタ
TMRLR0 EQU 003900H
;16ビットリロードレジスタ
DDR2
EQU 000012H
;ポートデータレジスタ
UF0
EQU TMCSR0:2
;割込み要求フラグビット
CNTE0 EQU TMCSR0:1
;カウンタ動作許可ビット
TRG0
EQU TMCSR0:0
;ソフトウエアトリガビット
;---------メインプログラム----------------------------------CODE
CSEG
;
:
;スタックポインタ(SP)などは
;初期化済みとする
AND
CCR,#0BFH
;割込み禁止
MOV
I:ICR03,#00H
;割込みレベル0(最強)
283
第 8 章 16 ビットリロードタイマ
MOV
CLRB
MOVW
MOVW
MOV
OR
I:DDR2,00H
;P20/TIN0端子を入力に設定
I:CNTE0
;カウンタを一時停止
I:TMRLR0,#2710H;リロード値10,000回の設定
I:TMCSR0,#0000110000001011B
;カウンタ動作,外部トリガ,立上り
;エッジ,外部出力禁止
;ワンショットモード選択,割込み許可
;割込みフラグクリア,カウントスタート
ILM,#07H
;PS内ILMをレベル7に設定
CCR,#40H
;割込み許可
LOOP:
・
ユーザ処理
・
BRA
LOOP
;
;---------割込みプログラム----------------------------------WARI:
CLR
I:UF0
;割込み要求フラグをクリア
・
・
ユーザ処理
・
・
RETI
;割込みからの復帰
CODE ENDS
;---------ベクタ設定---------------------------------------VECT CSEG ABS=0FFH
ORG
00FFB8H
;割込み#17(11H)にベクタを設定
DSL
WARI
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT ENDS
END
START
284
第9章
時計タイマ
この章では , 時計タイマの機能と動作について説明
します。
9.1 時計タイマの概要
9.2 時計タイマのブロックダイヤグラム
9.3 時計タイマの構成
9.4 時計タイマの割込み
9.5 時計タイマの動作説明
9.6 時計タイマのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
285
第 9 章 時計タイマ
9.1
時計タイマの概要
時計タイマは , サブクロックに同期してカウントアップする 15 ビットのフリーラン
カウンタです。
• 8 種類のインターバル時間が選択でき , インターバル時間ごとに割込み要求を発生
できます。
• サブクロック発振安定待ち時間用タイマやウォッチドッグタイマに動作クロック
を供給します。
• クロック選択レジスタ (CKSCR) の設定にかかわらず , 常にサブクロックをカウン
トクロックとします。
■ インターバルタイマ機能
• 時計タイマは , インターバル時間選択ビット (WTC: WTC2 ∼ WTC0) で設定したイ
ンターバル時間に達すると , 時計タイマカウンタのインターバル時間に対応する
ビットがオーバフロー(桁上り)を起こし,オーバフローフラグビットがセット(WTC:
WTOF=1) されます。
• オーバフローの発生による割込みを許可に設定している場合は(WTC:WTIE=1),オー
バフローフラグビットがセットされると(WTC: WTOF=1)割込み要求が発生します。
• 時計タイマのインターバル時間は , 次の 8 種類から選択できます。時計タイマのイ
ンターバル時間を表 9.1-1 に示します。
表 9.1-1 時計タイマのインターバル時間
サブクロック周期
インターバル時間
28/SCLK(31.25ms)
29/SCLK (62.5ms)
210/SCLK (125ms)
211/SCLK (250ms)
1/SCLK (122μs)
212/SCLK (500ms)
213/SCLK (1.0s)
214/SCLK (2.0s)
215/SCLK (4.0s)
SCLK: サブクロック周波数
( ) 内はサブクロック 8.192kHz 動作時の算出例です。
286
第 9 章 時計タイマ
■ 供給するクロックの周期
時計タイマは , サブクロック発振安定待ち時間用のタイマと , ウォッチドッグタイマに
動作クロックを供給します。時計タイマから供給されるクロックの周期を , 表 9.1-2 に
示します。
表 9.1-2 時計タイマから供給されるクロック周期
クロック供給先
サブクロックの発振安定待ち時間用
クロック周期
214/SCLK (2.000s)
210/SCLK (125ms)
213/SCLK (1.000s)
ウォッチドッグタイマ
214/SCLK (2.000s)
215/SCLK (4.000s)
SCLK: サブクロック周波数
( ) 内はサブクロック 8.192 kHz 動作時の算出例です。
287
第 9 章 時計タイマ
時計タイマのブロックダイヤグラム
9.2
時計タイマは , 以下のブロックで構成されています。
• 時計タイマカウンタ
• カウンタクリア回路
• インターバルタイマセレクタ
• 時計タイマ制御レジスタ (WTC)
■ 時計タイマのブロックダイヤグラム
図 9.2-1 時計タイマのブロックダイヤグラム
ウォッチドッグ
タイマへ
時計タイマカウンタ
SCLK
×21 ×22 ×23 ×24 ×25 ×26 ×27 ×28 ×29 ×210 ×211 ×212 ×213 ×214 ×215
OF
OF
OF
OF
パワーオンリセット
ハードウェアスタンバイ移行
ストップモード移行
OF
OF
カウンタ
クリア回路
OF
OF
サブクロック
発振安定待ち時間へ
インターバル
タイマセレクタ
時計タイマ割込み
OF :オーバフロー
SCLK :サブクロック
WDCS
SCE
WTIE
WTOF
WTR
WTC2
WTC1
WTC0
時計タイマ制御レジスタ(WTC)
時計タイマの実際の割込み要求番号は次のとおりです。
割込み要求番号 : #28 (1CH)
● 時計タイマカウンタ
サブクロック (SCLK) をカウントクロックとする , 15 ビットのアップカウンタです。
● カウンタクリア回路
時計タイマカウンタをクリアする回路です。
288
第 9 章 時計タイマ
● インターバルタイマセレクタ
時計タイマ制御レジスタ (WTC) に設定されているインターバル時間を参照し , 時計タ
イマカウンタがインターバル時間の値に達した場合に , オーバフローフラグビットを
セットします。
● 時計タイマ制御レジスタ (WTC)
インターバル時間の選択,時計タイマカウンタのクリア,割込みの許可または禁止,オー
バフロー ( 桁上り ) の状態確認とオーバフローフラグビットのクリアを行います。
289
第 9 章 時計タイマ
9.3
時計タイマの構成
時計タイマのレジスタと割込み要因を示します。
■ 時計タイマのレジスタ一覧とリセット値の一覧
図 9.3-1 時計タイマのレジスタとリセット値の一覧
bit
時計タイマ制御レジスタ(WTC)
7
6
5
4
3
2
1
0
1
X
0
0
0
0
0
0
× :不定
■ 時計タイマでの割込み要求の発生
• インターバル時間選択ビット (WTC: WTC2 ∼ WTC0) で設定したインターバル時間
に達した場合 , オーバフローフラグビット (WTC: WTOF) に "1" がセットされます。
• 時計タイマカウンタのオーバフロー ( 桁上り ) による割込みを許可している場合は
(WTC: WTIE=1), オーバフローフラグビットがセットされると (WTC: WTOF=1), 割
込み要求が発生します。
290
第 9 章 時計タイマ
時計タイマ制御レジスタ (WTC)
9.3.1
時計タイマ制御レジスタ (WTC) の機能を以下に示します。
■ 時計タイマ制御レジスタ (WTC)
図 9.3-2 時計タイマ制御レジスタ (WTC)
7
6
5
4
3
2
1
0
リセット値
1X001000B
R/W
R
R/W R/W R/W R/W R/W R/W
bit2 bit1 bit0
WTC2 WTC1 WTC0
インターバル時間選択ビット
8
0
0
0
2 /SCLK(31.25ms)
0
0
1
29/SCLK(62.5ms)
0
1
0
210/SCLK(125ms)
0
1
1
211/SCLK(250ms)
1
0
0
212/SCLK(500ms)
1
0
1
213/SCLK(1.0s)
1
1
0
214/SCLK(2.0s)
1
1
1
215/SCLK(4.0s)
bit3
WTR
0
1
時計タイマクリアビット
リードした場合
ライトした場合
ー
時計タイマカウンタのクリア
常に"1"が読み出されます。 影響なし
bit4
WTOF
オーバフローフラグビット
リードした場合
ライトした場合
0
設定したインターバル時間に
WTOFビットのクリア
対応するビットのオーバフローなし
1
設定したインターバル時間に
影響なし
対応するビットのオーバフローあり
bit5
WTIE
0
1
bit6
SCE
0
1
オーバフロー割込み許可ビット
割込み要求の禁止
割込み要求の許可
発振安定待ち時間終了ビット
発振安定待ち状態
発振安定待ち時間終了
bit7
WDCS
ウォッチドッグクロック選択ビット
(ウォッチドッグタイマの入力クロック)
R/W
R
X
SCLK
:リード・ライト可能
メインまたはPLLクロックモードの場合 サブクロックモードの場合
:リードオンリ
0
時計タイマ
"0"を設定してください。
:不定
1
タイムベースタイマ
:サブクロック
:リセット値
( )内はサブクロック8.192 KHz動作時の算出例です。
291
第 9 章 時計タイマ
表 9.3-1 時計タイマ制御レジスタ (WTC) の機能 (1 / 2)
ビット名
292
機 能
bit7
WDCS:
ウォッチドッグ
クロック選択ビット
ウォッチドッグタイマの動作クロックを選択します。
<メインクロックモードまたは PLL クロックモードの場
合>
"0" に設定した場合 : 時計タイマの出力をウォッチドッグ
タイマの動作クロックにします。
"1" に設定した場合 : タイムベースタイマの出力をウォッ
チドッグタイマの動作クロックに
します。
<サブクロックモードの場合>
必ず "0" に設定して , 時計タイマの出力を選択してくださ
い。
( 注意事項 )
時計タイマとタイムベースタイマは非同期に動作して
いるため , WDCS ビットを "0" → "1" に変更した場合
には , ウォッチドッグタイマが進む可能性がありま
す。変更の前後で , ウォッチドッグタイマをクリアす
る必要があります。
bit6
SCE:
発振安定待ち時間終了
ビット
サブクロックの発振安定待ち時間が終了したことを示し
ます。
"0" にクリアされた場合 : 発振安定待ち状態であることを
示します。
"1" にセットされた場合 : 発振安定待ち時間が終了したこ
とを示します。
• サブクロック発振安定待ち時間は , 214/SCLK 固定
(SCLK: サブクロック周波数 ) です。
bit5
WTIE:
オーバフロー割込み
許可ビット
時計タイマカウンタのオーバフロー ( 桁上り ) による割込
み要求の発生を許可または禁止します。
"0" に設定した場合 : オーバフローが発生した場合でも
(WTOF=1), 割込み要求は発生しませ
ん。
"1" に設定した場合 : オーバフローが発生した場合に
(WTOF=1), 割込み要求が発生しま
す。
bit4
WTOF:
オーバフローフラグ
ビット
時計タイマのカウンタ値が , インターバル時間選択ビット
で設定した値に達した場合に , "1" にセットされます。
割込み要求を許可に設定している場合は (WTIE=1), オー
バフロー ( 桁上り ) が発生すると (WTOF=1), 割込み要求
が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
• オーバフローフラグビットが "1" にセットされるのは ,
インターバル時間選択ビット (WTC2 ∼ WTC0) で設定
したインターバル時間に対応する , 時計タイマカウン
タのビットのオーバフロー ( 桁上り ) が生じた場合で
す。
bit3
WTR:
時計タイマクリア
ビット
時計タイマカウンタをクリアします。
"0" に設定した場合 : 時計タイマカウンタが "0000H" にク
リアされます。
"1" に設定した場合 : 影響しません。
リードした場合 : 常に "1" が読み出されます。
第 9 章 時計タイマ
表 9.3-1 時計タイマ制御レジスタ (WTC) の機能 (2 / 2)
ビット名
bit2
∼
bit0
WTC2, WTC1, WTC0:
インターバル時間選択
ビット
機 能
時計タイマのインターバル時間を設定します。
• WTC2 ∼ WTC0 ビットで設定したインターバル時間に
達すると , 時計タイマカウンタの対応するビットが
オーバフロー ( 桁上り ) を起こし , オーバフローフラ
グビットがセット (WTC:WTOF=1) されます。
• WTC2 ∼ WTC0 を設定する場合は , WTOF ビットを同
時に "0" に設定してください。
293
第 9 章 時計タイマ
9.4
時計タイマの割込み
時計タイマの割込みを許可している場合は , インターバル時間に達すると , オーバフ
ローフラグビットが "1" にセットされ , 割込み要求が発生します。
■ 時計タイマの割込み
時計タイマの割込み制御ビットと割込み要因を , 表 9.4-1 に示します。
表 9.4-1 時計タイマの割込み制御ビット
時計タイマ
割込み要因
時計タイマカウンタのインターバル時間
割込み要求フラグビット
WTC: WTOF ( オーバフローフラグビット )
割込み要因許可ビット
WTC: WTIE
• 時計タイマ制御レジスタ (WTC) のインターバル時間選択ビット (WTC2 ∼ WTC0) で
設定した値に達した場合に , WTC のオーバフローフラグビットに "1" がセットされ
ます (WTC: WTOF=1)。
• 時計タイマでの割込みを許可に設定している場合は (WTC: WTIE=1), オーバフロー
フラグビットがセット (WTC: WTOF=1) されると , 割込み要求が発生します。
• 割込み処理で WTOF ビットに "0" を設定し , 割込み要求を解除してください。
■ 時計タイマの割込みと EI2OS 機能
• 時計タイマは , 拡張インテリジェント I/O サービス (EI2OS) 機能に対応していません。
• 割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては 「
, 3.5 割込み」
を参照してください。
294
第 9 章 時計タイマ
9.5
時計タイマの動作説明
時計タイマは , インターバルタイマまたはサブクロック発振安定待ち時間用タイマと
して動作します。また , ウォッチドッグタイマに動作クロックを供給します。
■ 時計タイマカウンタ
時計タイマカウンタは , サブクロック (SCLK) が動作している限り , サブクロックに同
期してカウントアップを続けます。
● 時計タイマカウンタのクリア
次の場合は , 時計タイマカウンタが "0000H" にクリアされます。
• パワーオンリセット
• ストップモードへの遷移
• 時計タイマ制御レジスタ (WTC) の時計タイマクリアビット (WTR) に "0" を設定
<注意事項>
時計タイマカウンタのクリアが発生した場合 , 時計タイマカウンタの出力を使用し
ている , ウォッチドッグタイマとインターバルタイマ割込みは , 動作に影響を受け
ます。
時計タイマ制御レジスタ (WTC) の時計タイマクリアビット (WTR) に "0" を設定し
て時計タイマをクリアする場合は , WTC のオーバフロー割込み許可ビット (WTIE)
に "0" を設定し , 時計タイマの割込みを禁止した状態で行ってください。また , 割
込みを許可する前に , WTC のオーバフローフラグビット (WTOF) への "0" 設定によ
る割込み要求のクリアを行ってください。
■ インターバルタイマ機能
インターバル時間ごとに割込みを発生させて , インターバルタイマとして使用できま
す。
● インターバルタイマとして使用する場合の設定
時計タイマをインターバルタイマとして動作させるには , 図 9.5-1 の設定が必要です。
図 9.5-1 時計タイマの設定
bit7
WTC
6
5
4
3
2
1
bit0
WDCS SCE WTIE WTOF WTR WTC2 WTC1 WTC0
×
×
◎
◎
◎
◎
◎
◎
◎ :使用ビット
× :使用しないビット
• 時計タイマ制御レジスタ (WTC) のインターバル時間選択ビット (WTC1, WTC0) で
設定した値に達した場合に , WTC のオーバフローフラグビットに "1" がセットされ
ます (WTC: WTOF=1)。
• 時計タイマカウンタのオーバフローによる割込みを許可している場合は (WTC:
WTIE=1), オーバフローフラグビットがセットされると (WTC: WTOF=1), 割込み要
求が発生します。
295
第 9 章 時計タイマ
• オーバフローフラグビット (WTC: WTOF) は , 最後に時計タイマがクリアされたタ
イミングを起点に , インターバル時間に達した時点で , セットされます。
● オーバフローフラグビット (WTC: WTOF) のクリア
ストップモードに遷移した場合,時計タイマはサブクロック発振安定待ち時間用タイマ
として使用されるため , モードの遷移と同時に WTOF がクリアされます。
■ ウォッチドッグタイマの動作クロックの設定
時計タイマ制御レジスタ (WTC) のウォッチドッグクロック選択ビット (WDCS) によっ
て , ウォッチドッグタイマのクロック入力ソースを設定できます。
マシンクロックとしてサブクロックを使用する場合は , 必ず WDCS ビットを "0" に設
定して , 時計タイマの出力を選択してください。
■ サブクロックの発振安定待ち時間用タイマ
パワーオンリセット , ストップモードから復帰した場合には , 時計タイマはサブクロッ
ク発振安定待ち用タイマとして機能します。
• サブクロック発振安定待ち時間は , 214/SCLK (SCLK: サブクロック ) に固定されてい
ます。
296
第 9 章 時計タイマ
9.6
時計タイマのプログラム例
時計タイマのプログラム例を示します。
■ 時計タイマのプログラム例
● 処理仕様
213/SCLK (SCLK: サブクロック ) のインターバル割込みを繰り返し発生します。このと
きのインターバル時間は , 約 1.0s ( サブクロック 8.192kHz 動作の場合 ) となります。
● コーディング例
ICR07 EQU
0000B7H
;割込み制御レジスタ
WTC
EQU
0000AAH
;時計タイマ制御レジスタ
WTOF
EQU
WTC:4
;オーバフローフラグビット
;
;---------メインプログラム------------------------------------CODE
CSEG
START:
;
;スタックポインタ(SP)などは
;初期化済みとする
AND
CCR,#0BFH
;割込み禁止
MOV
I:ICR07,#00H
;割込みレベル0(最強)
MOV
I:WTC,#10100101B
;割込み許可,
;オーバフローフラグクリア
;時計タイマカウンタクリア,
;213/SCLK(約1.0s)
MOV
ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
LOOP:
・
ユーザ処理
・
BRA
LOOP
;---------割込みプログラム-------------------------------------WARI:
CLRB I:WTOF
;オーバフローフラグをクリア
・
ユーザ処理
・
RETI
;割込み処理からの復帰
CODE
ENDS
;---------ベクタ設定-----------------------------------------VECT
CSEG ABS=0FFH
ORG
00FF8CH
;割込み番号#28(1CH)にベクタ設定
DSL
WARI
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
297
第 9 章 時計タイマ
298
第 10 章
8/16 ビット PPG タイマ
この章では , 8/16 ビット PPG タイマの機能と動作
について説明します。
10.1 8/16 ビット PPG タイマの概要
10.2 8/16 ビット PPG タイマのブロックダイヤグラム
10.3 8/16 ビット PPG タイマの構成
10.4 8/16 ビット PPG タイマの割込み
10.5 8/16 ビット PPG タイマの動作説明
10.6 8/16 ビット PPG タイマ使用上の注意
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
299
第 10 章 8/16 ビット PPG タイマ
10.1
8/16 ビット PPG タイマの概要
8/16 ビット PPG タイマは , 任意の周期およびデューティ比のパルス出力が可能な
2 チャネルのリロードタイマモジュール (PPG0, PPG1) です。2 チャネルのモジュー
ルの組合せにより , 以下の動作が可能です。
• 8 ビット PPG 出力 2 チャネル独立動作モード
• 16 ビット PPG 出力動作モード
• 8+8 ビット PPG 出力動作モード
MB90895 シリーズでは , 2 つの 8/16 ビット PPG タイマを内蔵しています。ここで
は , PPG0/1 の機能について説明します。PPG2/3 は PPG0/1 と同一機能です。
■ 8/16 ビット PPG タイマの機能
8/16 ビット PPG タイマは , 4 つの 8 ビットリロードレジスタ (PRLH0/PRLL0, PRLH1/
PRLL1) と , 2 つの PPG ダウンカウンタ (PCNT0, PCNT1) で構成されています。
• 出力パルスの "H" 幅 , "L" 幅を個別に設定できるので , 出力パルスの周期とデュー
ティ比を任意に設定できます。
• カウントクロックは , 6 種類の内部クロックから選択できます。
• インターバル時間ごとに割込み要求を発生させて , インターバルタイマとして使用
できます。
• 外付回路によって D/A コンバータとして使用することができます。
300
第 10 章 8/16 ビット PPG タイマ
■ 8/16 ビット PPG タイマの動作モード
● 8 ビット PPG 出力 2 チャネル独立動作モード
2 チャネルのモジュール (PPG0, PPG1) をそれぞれ独立した 8 ビット PPG タイマとして
動作させます。
8 ビット PPG 出力 2 チャネル独立動作モードのインターバル時間を表 10.1-1 に示しま
す。
表 10.1-1 8 ビット PPG 出力 2 チャネル独立動作モードのインターバル時間
PPG0, PPG1
カウントクロック周期
インターバル時間
出力パルス時間
1/φ (62.5ns)
1/φ ∼ 28/φ
2/φ ∼ 29/φ
2/φ (125ns)
2/φ ∼ 29/φ
22/φ ∼ 210/φ
22/φ (250ns)
22/φ ∼ 210/φ
23/φ ∼ 211/φ
23/φ (500ns)
23/φ ∼ 211/φ
24/φ ∼ 212/φ
24/φ (1μs)
24/φ ∼ 212/φ
25/φ ∼ 213/φ
29/HCLK (128μs)
29/HCLK ∼ 217/HCLK
210/HCLK ∼ 218/HCLK
HCLK: 発振クロック
φ : マシンクロック周波数
( ) 内は HCLK=4MHz, φ=16MHz で動作した場合の値
● 16 ビット PPG 出力動作モード
2 チャネルのモジュール (PPG0, PPG1) を連結して , 16 ビット 1 チャネル PPG タイマと
して動作させます。
16 ビット PPG 出力動作モードのインターバル時間を表 10.1-2 に示します。
表 10.1-2 16 ビット PPG 出力動作モードのインターバル時間
カウントクロック周期
インターバル時間
出力パルス時間
1/φ (62.5ns)
1/φ ∼ 216/φ
2/φ ∼ 217/φ
2/φ (125ns)
2/φ ∼ 217/φ
22/φ ∼ 218/φ
22/φ (250ns)
22/φ ∼ 218/φ
23/φ ∼ 219/φ
23/φ (500ns)
23/φ ∼ 219/φ
24/φ ∼ 220/φ
24/φ( 1μs)
24/φ ∼ 220/φ
25/φ ∼ 221/φ
29/HCLK (128μs)
29/HCLK ∼ 225/HCLK
210/HCLK ∼ 226/HCLK
HCLK: 発振クロック
φ : マシンクロック周波数
( ) 内は HCLK=4MHz, φ=16MHz で動作した場合の値
301
第 10 章 8/16 ビット PPG タイマ
● 8+8PPG 出力動作モード
2 チャネルのモジュールのうち , PPG0 を 8 ビットプリスケーラとして動作させ , PPG0
のアンダフロー出力を PPG1 のカウントクロックとして入力して動作させます。
8+8 ビット PPG 出力動作モードのインターバル時間を表 10.1-3 に示します。
表 10.1-3 8+8 ビット PPG 出力動作モードのインターバル時間
PPG0
カウント
クロック周期
PPG1
インターバル
時間
出力パルス時間
インターバル
時間
出力パルス時間
1/φ (62.5ns)
1/φ ∼ 28/φ
2/φ ∼ 29/φ
1/φ ∼ 216/φ
2/φ ∼ 217/φ
2/φ (125ns)
2/φ ∼ 29/φ
22/φ ∼ 210/φ
2/φ ∼ 217/φ
22/φ ∼ 218/φ
22/φ (250ns)
22/φ ∼ 210/φ
23/φ ∼ 211/φ
22/φ ∼ 218/φ
23/φ ∼ 219/φ
23/φ (500ns)
23/φ ∼ 211/φ
24/φ ∼ 212/φ
23/φ ∼ 219/φ
24/φ ∼ 220/φ
24/φ (1μs)
24/φ ∼ 212/φ
25/φ ∼ 213/φ
24/φ ∼ 220/φ
25/φ ∼ 221/φ
29/HCLK (128μs)
29/HCLK ∼
217/HCLK
210/HCLK ∼
218/HCLK
29/HCLK ∼
225/HCLK
210/HCLK ∼
226/HCLK
HCLK: 発振クロック
φ: マシンクロック周波数
( ) 内は HCLK=4MHz, φ =16MHz で動作した場合の値
302
第 10 章 8/16 ビット PPG タイマ
10.2
8/16 ビット PPG タイマのブロックダイヤグラム
MB90895 シリーズでは , 2 つの 8/16 ビット PPG タイマ ( 各 2 チャネル ) を内蔵し
ています。
1 つの 8/16 ビット PPG タイマは , 2 チャネルの 8 ビット PPG タイマで構成されて
います。
ここでは , 8/16 ビット PPG タイマ 0 および 8/16 ビット PPG タイマ 1 のブロックダ
イヤグラムを示します。PPG2 は PPG0 と , PPG3 は PPG1 と同機能です。
■ PPG タイマのチャネルと PPG 端子
MB90895 シリーズの 8/16 ビット PPG タイマのチャネルと PPG 端子の関係を , 図 10.22 に示します。
図 10.2-1 PPG タイマのチャネルと PPG 端子
PPG0/1
端子
PPG0出力端子
端子
PPG1出力端子
PPG2/3
端子
PPG2出力端子
端子
PPG3出力端子
303
第 10 章 8/16 ビット PPG タイマ
10.2.1
8/16 ビット PPG タイマ 0 のブロックダイヤグラム
8/16 ビット PPG タイマ 0 は , 以下のブロックで構成されています。
■ 8/16 ビット PPG タイマ 0 のブロックダイヤグラム
図 10.2-2 8/16 ビット PPG タイマ 0 のブロックダイヤグラム
"H"レベル側データバス
"L"レベル側データバス
PPG0リロード
レジスタ
PRLH0
("H"レベル側)
PPG0動作モード制御レジスタ(PPGC0)
PRLL0
("L"レベル側)
PEN0
ー
PE0
PIE0 PUF0
PPG0テンポラリ
バッファ0(PRLBH0)
ー
ー
割込み
要求出力*
R
S
Q
2
リロードレジスタ
"L"/"H"セレクタ
カウント開始値
予約
セレクト信号
リロード
PPG0ダウンカウンタ
(PCNT0)
クリア
パルスセレクタ
動作モード制御信号
PPG1アンダフロー
PPG0アンダフロー
(PPG1へ)
アンダフロー
CLK
PPG0
出力ラッチ
反転
端子
PPG0
PPG出力制御回路
タイムベースタイマ出力
(512/HCLK)
周辺クロック(1/φ)
周辺クロック(2/φ)
周辺クロック(4/φ)
周辺クロック(8/φ)
周辺クロック(16/φ)
カウント
クロック
セレクタ
3
セレクト信号
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
ー
ー
-
:未定義
PPG0/1カウントクロック選択レジスタ(PPG01)
予約 :予約ビット
HCLK :発振クロック周波数
:マシンクロック周波数
φ
*
:8/16ビットPPGタイマ0の割込み出力は,PPGタイマ1の割込み要求出力とのOR回路によって
1つの割込みに統合されています。
304
第 10 章 8/16 ビット PPG タイマ
● ブロックダイヤグラム中の端子などの詳細
8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 10.2-1 に示します。
表 10.2-1 ブロックダイヤグラムの端子および割込み要求番号
チャネル
出力端子
PPG0
P14/PPG0
PPG1
P15/PPG1
PPG2
P16/PPG2
PPG3
P17/PPG3
割込み要求番号
# 22 (16H)
# 26 (1AH)
● PPG 動作モード制御レジスタ 0 (PPGC0)
8/16 ビット PPG タイマの動作 , 端子出力 , アンダフロー割込みを許可または禁止しま
す。また , アンダフローの発生を示します。
● PPG0/1 カウントクロック選択レジスタ (PPG01)
8/16 ビット PPG タイマのカウントクロックを設定します。
● PPG0 リロードレジスタ (PRLH0, PRLL0)
出力パルスの "H" 幅 , "L" 幅を設定します。PPG0 リロードレジスタに設定した値は ,
8/16ビットPPGタイマが起動するとPPG0ダウンカウンタ(PCNT0)にリロードされます。
● PPG0 ダウンカウンタ (PCNT0)
PPG0 リロードレジスタ (PRLH0, PRLL0) の設定値を交互にリロードしてカウントダウ
ンする , 8 ビットのダウンカウンタです。アンダフローが発生すると , 端子出力を反転
します。2 チャネルの PPG ダウンカウンタ (PPG0, PPG1) を連結して , 1 チャネルの 16
ビット PPG ダウンカウンタとして使用することもできます。
● PPG0 テンポラリバッファ (PRLBH0)
PPGリロードレジスタ (PRLH0, PRLL0)への書込みのタイミングによって起こる出力パ
ルス幅のズレを防止するバッファです。PRLH0 の値を一時的に記憶し , PRLL0 への書
込みのタイミングに同期させて PRLH0 の設定値を有効にします。
● リロードレジスタ L/H セレクタ
"L" 側および "H" 側のリロードレジスタ (PRLL0, PRLH0) のどちらを PPG0 ダウンカウ
ンタにリロードするか , 現在の端子出力レベルを検出して選択します。
● カウントクロックセレクタ
5 種類のマシンクロックの分周クロックまたはタイムベースタイマの分周クロックか
ら , PPG ダウンカウンタ 0 に入力するカウントクロックを選択します。
● PPG 出力制御回路
端子出力レベルおよびアンダフロー発生による出力反転を行います。
305
第 10 章 8/16 ビット PPG タイマ
10.2.2
8/16 ビット PPG タイマ 1 のブロックダイヤグラム
8/16 ビット PPG タイマ 1 は , 以下のブロックで構成されています。
■ 8/16 ビット PPG タイマ 1 のブロックダイヤグラム
図 10.2-3 8/16 ビット PPG タイマ 1 のブロックダイヤグラム
"H"側データバス
"L"側データバス
PPG1リロード
レジスタ
PPG1動作モード制御レジスタ
(PPGC1)
PRLH1
("H"側)
PRLL1
("L"側)
PEN1
ー
PE1
PIE1
PUF1
MD1
MD0
予約
2
動作モード
制御信号
S
リロードセレクタ
"L"/"H"セレクタ
カウント開始値
Q
セレクト信号
リロード
クリア
アンダ
PPG1ダウンカウンタ フロー
(PCNT1)
PPG1アンダフロー
(PPG0へ)
割込み
要求出力*
R
PPG1テンポラリ
バッファ(PRLBH1)
反転
PPG1
出力ラッチ
端子
PPG1
CLK
PPG出力制御回路
MD0
PPG0アンダフロー
(PPG0より) タイムベースタイマ出力
(512/HCLK)
周辺クロック(1/φ)
周辺クロック(2/φ)
周辺クロック(4/φ)
周辺クロック(8/φ)
周辺クロック(16/φ)
カウント
クロック 3
セレクタ セレクト信号
PCS2 PCS1
PCS0
PCM2 PCM1
PCM0
ー
ー
-
:未定義
PPG0/1カウントクロック選択レジスタ(PPG01)
予約 :予約ビット
HCLK :発振クロック周波数
:マシンクロック周波数
φ
*
:8/16ビットPPGタイマ1の割込み出力は,PPGタイマ0の割込み要求出力とのOR回路によって
1つの割込みに統合されています。
306
第 10 章 8/16 ビット PPG タイマ
● ブロックタイヤグラム中の端子などの詳細
8/16 ビット PPG タイマの実際の端子名および割込み要求番号を表 10.2-2 に示します。
表 10.2-2 ブロックダイヤグラムの端子および割込み要求番号
チャネル
出力端子
PPG0
P14/PPG0
PPG1
P15/PPG1
PPG2
P16/PPG2
PPG3
P17/PPG3
割込み要求番号
# 22 (16H)
# 26 (1AH)
● PPG 動作モード制御レジスタ 1 (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 の設定値を有効にします。
● リロードレジスタ L/H セレクタ
"L" 側および "H" 側のリロードレジスタ (PRLL1, PRLH1) のどちらを PPG1 ダウンカウ
ンタにリロードするか , 現在の端子出力レベルを検出して選択します。
● カウントクロックセレクタ
5 種類のマシンクロックの分周クロックまたはタイムベースタイマの分周クロックか
ら , PPG1 ダウンカウンタに入力するカウントクロックを選択します。
● PPG 出力制御回路
端子出力レベルおよびアンダフロー発生による出力反転を行います。
307
第 10 章 8/16 ビット PPG タイマ
10.3
8/16 ビット PPG タイマの構成
8/16 ビット PPG タイマの端子 , レジスタ , 割込み要因を示します。
■ 8/16 ビット PPG タイマの端子
8/16 ビット PPG タイマの端子は , 汎用入出力ポートと兼用です。端子の機能 , 8/16 ビッ
ト PPG タイマを使用する場合の設定を表 10.3-1 に示します。
表 10.3-1 8/16 ビット PPG タイマの端子
チャネル
端子名
端子機能
8/16 ビット PPG タイマを
使用した場合の設定
PPG0
PPG0 出力端子
汎用入出力ポート /
PPG0 出力端子
PPG0 端子出力許可
(PPGC0: PE0=1)
PPG1
PPG1 出力端子
汎用入出力ポート /
PPG1 出力端子
PPG1 端子出力許可
(PPGC1: PE1=1)
PPG2
PPG2 出力端子
汎用入出力ポート /
PPG2 出力端子
PPG2 端子出力許可
(PPGC2: PE0=1)
PPG3
PPG3 出力端子
汎用入出力ポート /
PPG3 出力端子
PPG3 端子出力許可
(PPGC3: PE1=1)
■ 8/16 ビット PPG タイマの端子のブロックダイヤグラム
<参考>
308
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
第 10 章 8/16 ビット PPG タイマ
■ 8/16 ビット PPG タイマのレジスタとリセット値の一覧
図 10.3-1 8/16 ビット PPG タイマのレジスタとリセット値の一覧
bit
PPG0動作モード制御レジスタ:H
(PPGC1)
bit
PPG0動作モード制御レジスタ:L
(PPGC0)
bit
PPG0/1カウントクロック選択レジスタ
(PPG01)
bit
PPG0リロードレジスタ:H(PRLH0)
bit
PPG0リロードレジスタ:L(PRLL0)
bit
PPG1リロードレジスタ:H(PRLH1)
bit
PPG1リロードレジスタ:L(PRLL1)
15
14
13
12
11
10
9
8
0
ー
0
0
0
0
0
1
7
6
5
4
3
2
1
0
0
ー
0
0
0
ー
ー
1
7
6
5
4
3
2
1
0
0
0
0
0
0
0
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
× :不定
■ 8/16 ビット PPG タイマでの割込みの発生
8/16 ビット PPG タイマでは , アンダフローが発生すると , PPG 動作モード制御レジス
タのアンダフロー発生フラグビット (PPGC0: PUF0, PPGC1: PUF1) に "1" がセットされ
ます。アンダフローが発生したチャネルのアンダフロー割込みが許可されている場合
は (PPGC0: PIE0=1, PPGC1: PIE1=1), 割込みコントローラにアンダフロー割込み要求が
発生します。
309
第 10 章 8/16 ビット PPG タイマ
PPG0 動作モード制御レジスタ (PPGC0)
10.3.1
PPG0 動作モード制御レジスタでは , 次の設定ができます。
• 8/16 ビット PPG タイマの動作の許可または禁止
• 端子機能の切替え ( パルス出力の許可または禁止 )
• アンダフロー割込みの許可または禁止
• アンダフロー発生による割込み要求フラグの設定
■ PPG0 動作モード制御レジスタ (PPGC0)
図 10.3-2 PPG0 動作モード制御レジスタ (PPGC0)
7
6
5
4
3
2
1
0
リセット値
0X000XX1B
R/W
-
R/W R/W R/W
-
-
W
bit0
予約
1
予約ビット
必ず"1"に設定してください
bit3
PUF0
0
1
アンダフロー発生フラグビット
リードした場合
アンダフローなし
アンダフローあり
ライトした場合
PUF0ビットのクリア
影響なし
bit4
PIE0
アンダフロー割込み許可ビット
0
割込み要求の禁止
1
割込み要求の許可
bit5
PE0
PPG0端子出力許可ビット
0
汎用入出力ポート(パルス出力禁止)
1
PPG0出力(パルス出力許可)
R/W :リード ・ライト 可能
X
:不定
ー :未定義
:リセット値
310
bit7
PEN0
PPG0動作許可ビット
カウント動作禁止("L"レベル出力保持)
0
カウント動作許可
1
第 10 章 8/16 ビット PPG タイマ
表 10.3-2 PPG0 動作モード制御レジスタ (PPGC0) の機能
ビット名
機 能
bit7
PEN0:
PPG0 動作許可ビッ
ト
8/16 ビット PPG タイマ 0 のカウント動作を許可または禁止
します。
"0" に設定した場合 : カウント動作は禁止されます。
"1" に設定した場合 : カウント動作は許可されます。
• カウント動作を禁止した場合は (PEN0=0), "L" レベルの出
力が保持されます。
bit6
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit5
PE0:
PPG0 端子出力許可
ビット
PPG0 端子の機能を切り替え , パルス出力を許可または禁止
します。
"0" に設定した場合 : 汎用入出力ポートとして機能します。
パルス出力は禁止されます。
"1" に設定した場合 : PPG0 出力端子として機能します。パ
ルス出力は許可されます。
bit4
PIE0:
アンダフロー割込み
許可ビット
割込みを許可または禁止します。
"0" に設定した場合 : アンダフローが発生しても (PUF0=1)
割込み要求は発生しません。
"1" に設定した場合 : アンダフローが発生すると (PUF0=1)
割込み要求が発生します。
bit3
PUF0:
アンダフロー発生
フラグビット
8 ビット PPG 出力 2ch 独立動作モード , 8+8 ビット PPG 出
力動作モードの場合 :
PPG0 ダウンカウンタの値が "00H" から "FFH" にカウン
トダウンするとアンダフローが発生します (PUF0=1)。
16 ビット PPG 出力動作モードの場合 :
PPG0+PPG1 ダウンカウンタの値が "0000H" から "FFFFH"
にカウントダウンするとアンダフローが発生します
(PUF0=1)。
• アンダフロー割込みを許可している場合に (PIE0=1), アン
ダフローが発生すると (PUF0=1), 割込み要求が発生しま
す。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
"1" が読み出されます。
bit2
bit1
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit0
予約 : 予約ビット
必ず "1" に設定してください。
311
第 10 章 8/16 ビット PPG タイマ
PPG1 動作モード制御レジスタ (PPGC1)
10.3.2
PPG1 動作モード制御レジスタでは , 次の設定ができます。
• 8/16 ビット PPG タイマの動作の許可または禁止
• 端子機能の切替え ( パルス出力の許可または禁止 )
• アンダフロー割込みの許可または禁止
• アンダフロー発生による割込み要求フラグの設定
• 8/16 ビット PPG タイマの動作モードの設定
■ PPG1 動作モード制御レジスタ (PPGC1)
図 10.3-3 PPG1 動作モード制御レジスタ (PPGC1)
15
14
13
R/W
ー
R/W R/W R/W R/W R/W
12
11
10
9
8
リセット値
0X000001B
W
bit8
予約
1
予約ビット
必ず"1"に設定してください
bit10 bit9
動作モード選択ビット
MD1 MD0
0
0
8ビットPPG出力2ch独立動作モード
0
1
8+8ビットPPG出力動作モード
1
0
設定禁止
1
1
16ビットPPG出力動作モード
bit11
PUF1
0
1
アンダフロー発生フラグビット
リードした場合
アンダフローなし
アンダフローあり
ライトした場合
PUF1ビットのクリア
影響なし
bit12
PIE1
アンダフロー割込み許可ビット
0
アンダフロー割込み要求の禁止
1
アンダフロー割込み要求の許可
bit13
PE1
PPG1端子出力許可ビット
0
汎用入出力ポート(パルス出力禁止)
1
PPG1出力(パルス出力許可)
R/W :リード・ライト 可能
X
:不定
ー :未定義
:リセット値
312
bit15
PEN1
PPG1動作許可ビット
0
カウント動作禁止("L"レベル出力保持)
1
カウント動作許可
第 10 章 8/16 ビット PPG タイマ
表 10.3-3 PPG1 動作モード制御レジスタ (PPGC1) の機能
ビット名
機 能
bit15
PEN1:
PPG1 動作許可ビット
8/16 ビット PPG タイマ 1 のカウント動作を許可または禁
止します。
"0" に設定した場合 : カウント動作は禁止されます。
"1" に設定した場合 : カウント動作は許可されます。
• カウント動作を禁止した場合は (PEN1=0), "L" レベルの
出力が保持されます。
bit14
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit13
PE1:
PPG1 端子出力許可
ビット
PPG1 端子の機能を切り替え , パルス出力を許可または禁
止します。
"0" に設定した場合 : 汎用入出力ポートとして機能しま
す。パルス出力は禁止されます。
"1" に設定した場合 : PPG1 出力端子として機能します。
パルス出力は許可されます。
bit12
PIE1:
アンダフロー割込み
許可ビット
割込みを許可または禁止します。
"0" に設定した場合 : アンダフローが発生しても
(PUF1=1) 割込み要求は発生しませ
ん。
"1" に設定した場合 : アンダフローが発生すると
(PUF1=1) 割込み要求が発生します。
bit11
PUF1:
アンダフロー発生
フラグビット
8 ビット PPG 出力 2ch 独立動作モード , 8+8 ビット PPG
出力動作モードの場合 : PPG1 ダウンカウンタの値が
"00H" から "FFH" にカウントダウンするとアンダフローが
発生します (PUF1=1)。
16 ビット PPG 出力動作モードの場合 :
PPG0+PPG1 ダウンカウンタの値が "0000H" から
"FFFFH" にカウントダウンするとアンダフローが発
生します (PUF1=1)。
• アンダフロー割込み要求を許可している場合に
(PIE1=1), アンダフローが発生すると (PUF1=1), 割込み
要求が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
"1" が読み出されます。
bit10
bit9
MD1, MD0:
動作モード選択ビット
8/16 ビット PPG タイマの動作モードを設定します。
[8 ビット PPG 出力 2ch 独立動作モード以外の場合 ]
• PPG 動作許可ビット (PEN0, PEN1) は , ワード命令で 2
ビット同時に設定してください。
• 片側のチャネルのみを動作させる設定にはしないでく
ださい (PEN1=0/PEN0=1 または PEN1=1/PEN0=0)。
( 注意事項 )
MD1, MD0=10B には設定しないでください。
bit8
予約 : 予約ビット
必ず "1" に設定してください。
313
第 10 章 8/16 ビット PPG タイマ
PPG0/1 カウントクロック選択レジスタ (PPG01)
10.3.3
PPG0/1 カウントクロック選択レジスタでは , 8/16 ビット PPG タイマのカウントク
ロックの選択を行います。
■ PPG0/1 カウントクロック選択レジスタ (PPG01)
図 10.3-4 PPG0/1 カウントクロック選択レジスタ (PPG01)
7
6
5
4
3
2
1
0
-
-
リセット値
000000XXB
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
0
1
1
1
0
1
1
1
R/W
X
ー
bit7 bit6 bit5
PCS2 PCS1 PCS0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
:リード ・ライト 可能
:不定
:未定義
:リセット値
HCLK :発振クロック
:マシンクロック周波数
φ
( )内はHCLK=4MHz,φ=16MHzで動作した場合の値
314
PPG0カウントクロック選択ビット
1/φ(62.5ns)
2/φ(125ns)
22/φ(250ns)
23/φ(500ns)
24/φ(1μs)
設定禁止
設定禁止
29/HCLK(128μs)
PPG1カウントクロック選択ビット
1/φ(62.5ns)
2/φ(125ns)
22/φ(250ns)
23/φ(500ns)
24/φ(1μs)
設定禁止
設定禁止
29/HCLK(128μs)
第 10 章 8/16 ビット PPG タイマ
表 10.3-4 PPG0/1 カウントクロック選択レジスタ (PPG01) の機能
ビット名
機 能
bit7
∼
bit5
PCS2 ∼ PCS0:
PPG1 カウント
クロック選択ビット
8/16 ビット PPG タイマ 1 のカウントクロックを設定しま
す。
• 5 種類のマシンクロックの分周クロックまたはタイム
ベースタイマの分周クロックからカウントクロックを
選択します。
• PPG1 カウントクロック選択ビット (PCS2 ∼ PCS0) の
設定は , 8 ビット PPG 出力 2ch 独立モード (PPGC1:
MD1, MD0=00B) でのみ有効です。
bit4
∼
bit2
PCM2 ∼ PCM0:
PPG0 カウント
クロック選択ビット
8/16 ビット PPG タイマ 0 のカウントクロックを設定しま
す。
• 5 種類のマシンクロックの分周クロックまたはタイム
ベースタイマの分周クロックからカウントクロックを
選択します。
bit1,
bit0
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
315
第 10 章 8/16 ビット PPG タイマ
PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/
PRLH1)
10.3.4
PPG リロードレジスタには , PPG ダウンカウンタがカウントを開始する値 ( リロー
ド値 ) を設定します。"L" レベル側 , "H" レベル側 , 各 8 ビットのレジスタです。
■ PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1)
図 10.3-5 PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1)
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
PRLH0/PRLH1
D15
D14
D13
D12
D11
D10
D9
D8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
PRLL0/PRLL1
R/W
X
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
:リード・ライト可能
:不定
PPG リロードレジスタの各レジスタの機能を表 10.3-5 に示します。
表 10.3-5 PPG リロードレジスタの機能
<注意事項>
機 能
8/16 ビット PPG タイマ 0
8/16 ビット PPG タイマ 1
"L" レベル側のリロード値を
保持
PRLL0
PRLL1
"H" レベル側のリロード値を
保持
PRLH0
PRLH1
• 16 ビット PPG 出力動作モードの場合は (PPGC1: MD1,MD0=11B), リロードレ
ジスタの設定はロングワード命令で設定するかまたはワード命令で PPG0 →
PPG1 の順に設定してください。
• 8+8 ビット PPG 出力動作モードの場合は (PPGC1: MD1,MD0=01B),8/16 ビット
PPG タイマ 0 の PPG リロードレジスタ (PRTLL0/PRLH0) は "L" レベル側 , "H"
レベル側とも同じ値を設定してください。"L" レベル側 ,"H" レベル側で異なる値
を設定すると 8/16 ビット PPG タイマ 1 の PPG 出力波形がクロック周期ごとに
異なってしまうおそれがあります。
316
第 10 章 8/16 ビット PPG タイマ
10.4
8/16 ビット PPG タイマの割込み
8/16 ビット PPG タイマは , PPG ダウンカウンタのアンダフロー発生によって割込
み要求を発生できます。また , 拡張インテリジェント I/O サービス (EI2OS) に対応し
ています。
■ 8/16 ビット PPG タイマの割込み
8/16 ビット PPG タイマの割込み制御ビットと割込み要因を表 10.4-1 に示します。
表 10.4-1 8/16 ビット PPG タイマの割込み制御ビット
PPG0
PPG1
割込み要求フラグビット
PPGC0: PUF0
PPGC1: PUF1
割込み要求許可ビット
PPGC0: PIE0
PPGC1: PIE1
割込み要因
PPG0 ダウンカウンタの
アンダフロー発生
PPG1 ダウンカウンタの
アンダフロー発生
[8 ビット PPG 出力 2ch 独立動作モード , 8+8 ビット PPG 出力動作モードの場合 ]
• 8 ビット PPG2ch 独立動作モードまたは 8+8 ビット PPG 出力動作モードでは , PPG0
と PPG1 それぞれ独立して割込みを発生できます。
• PPG0 または PPG1 のダウンカウンタのどちらかが "00H" から "FFH" にカウントダウ
ンすると , アンダフローが発生します。アンダフローが発生すると , アンダフロー
が発生したチャネル側のアンダフロー発生フラグビットがセットされます (PPGC0:
PUF0=1 または PPGC1: PUF1=1)。
• アンダフローが発生したチャネル側の割込み要求が許可されている場合は (PPGC0:
PIE0=1 または PPGC1: PIE1=1), 割込み要求が発生します。
[16 ビット PPG 出力動作モードの場合 ]
• 16 ビット PPG 出力動作モードでは , PPG0+PPG1 ダウンカウンタが "0000H" から
"FFFFH" にカウントダウンすると , アンダフローが発生します。アンダフローが発
生すると , 2 チャネルのアンダフロー発生フラグビットが同時にセットされます
(PPGC0: PUF0=1 かつ PPGC1: PUF1=1)。
• 2 チャネルの割込み要求のうち , どちらかが許可されている場合は (PPGC0: PIE1=0,
PPGC1: PIE1=1 または PPGC0: PIE1=1, PPGC1: PIE1=0), アンダフローが発生すると
割込み要求が発生します。
• 割込み要求が重複して発生しないよう , 事前に 2 チャネルのアンダフロー割込み許
可ビットのうち , どちらか片方を禁止しておいてください (PPGC0: PIE1=0, PPGC1:
PIE1=1 または PPGC0: PIE1=1, PPGC1: PIE1=0)。
• 2 チャネルのアンダフロー発生フラグビットがセットされた場合は (PPGC0: PUF0=1
かつ PPGC1: PUF1=1), 2 チャネル同時にクリアしてください。
317
第 10 章 8/16 ビット PPG タイマ
■ 8/16 ビット PPG タイマの割込みと EI2OS
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込み」を
参照してください。
■ 8/16 ビット PPG タイマの割込みと EI2OS 機能
8/16 ビット PPG タイマは EI2OS 機能に対応しており , 許可している割込み要因の発生
により EI2OS を起動できます。ただし , 割込み制御レジスタを共有する周辺機能での
割込み要求を禁止しておく必要があります。
318
第 10 章 8/16 ビット PPG タイマ
10.5
8/16 ビット PPG タイマの動作説明
8/16 ビット PPG タイマは , 任意の周波数およびデューディ比のパルス幅を連続して
出力します。
■ 8/16 ビット PPG タイマの動作
● 8/16 ビット PPG タイマの出力動作
• 8/16 ビット PPG タイマには , 各チャネルごとに 2 本 ("L" レベル側 , "H" レベル側 ),
各 8 ビットのリロードレジスタがあります (PRLL0/PRLH0, PRLL1/PRLH1)。
• リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) に設定された値が , PPG ダウンカ
ウンタ (PCNT0, PCNT1) に交互にリロードされます。
• PPG ダウンカウンタへのリロード後 , PPG カウントクロック選択ビット (PPG01:
PCM2 ∼ PCM0, PCS1 ∼ PCS0) で設定されたカウントクロックに同期してカウント
ダウンが開始されます。
• アンダフロー発生によってリロードレジスタの設定値が PPG ダウンカウンタにリ
ロードされた場合は , 端子出力が反転されます。
8/16 ビット PPG タイマの出力波形を , 図 10.5-1 に示します。
図 10.5-1 8/16 ビット PPG タイマの出力波形
動作開始
動作停止
PPG動作許可ビット
(PEN)
PPG出力端子
T×(L+1)
T×(H+1)
L :PPGリロードレジスタ(PRLL)の値
H :PPGリロードレジスタ(PRLH)の値
T :カウントクロック周期
● 8/16 ビット PPG タイマの動作モード
8/16 ビット PPG タイマ動作が許可されている間は (PPGC0: PEN0=1, PPGC1: PEN1=1),
PPG 出力端子からパルス波が連続して出力されます。パルス波の周波数 , デューティ
比は任意に設定できます。
8/16 ビット PPG タイマのパルス出力は , 8/16 ビット PPG タイマの動作の停止されるま
で (PPGC0: PEN0=0, PPGC1: PEN1=0) 停止しません。
• 8 ビット PPG 出力 2ch 独立動作モード
• 16 ビット PPG 出力動作モード
• 8+8 ビット PPG 出力動作モード
319
第 10 章 8/16 ビット PPG タイマ
8 ビット PPG 出力 2ch 独立動作モード
10.5.1
8 ビット PPG 出力 2ch 独立動作モードでは , 8/16 ビット PPG タイマを独立した 2
チャネルの 8 ビット PPG タイマとして設定します。PPG 出力動作 , 割込み要求の
発生など各チャネルで独立して行うことができます。
■ 8 ビット PPG 出力 2ch 独立動作モードの設定
8 ビット PPG 出力 2ch 独立動作モードで動作させるには , 図 10.5-2 の設定が必要です。
図 10.5-2 8 ビット PPG 出力 2ch 独立動作モードの設定
bit15 14
PPGC1/PPGC0
PEN1
1
ー
bit8 bit7
6
PE1 PIE1 PUF1 MD1 MD0 予約 PEN0
13
ー
◎
12
◎
11
◎
10
0
9
0
1
(予約領域)
PPG01
1
5
4
3
PE0 PIE0 PUF0
◎
◎
2
ー
◎
◎
◎
◎
◎
bit0
1
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
◎
1
ー 予約
ー
ー
◎
PRLH0/PRLL0
PPG0 "H"レベル側リロード値を設定
PPG0 "L"レベル側リロード値を設定
PRLH1/PRLL1
PPG1 "H"レベル側リロード値を設定
PPG1 "L"レベル側リロード値を設定
◎
-
1
0
:使用ビット
:未定義ビット
:"1"を設定
:"0"を設定
<注意事項>
PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) は , ワード命令で "H" レベ
ル側 , "L" レベル側を同時に設定してください。
● 8 ビット PPG 出力 2ch 独立動作モードの動作
• 2 チャネルの 8 ビット PPG タイマは , それぞれ独立した PPG 動作を行います。
• 端子出力を許可されている場合は (PPGC0: PE0=1, PPGC1: PE1=1), PPG0 端子から
PPG0 のパルス波が , PPG1 端子から PPG1 のパルス波が出力されます。
• PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) にリロード値を設定して ,
PPG タイマの動作を許可すると (PPGC0: PEN0=1, PPGC1: PEN1=1), 動作を許可され
たチャネルの PPG ダウンカウンタはカウント動作を開始します。
• PPG ダウンカウンタのカウント動作を停止する場合は , 停止するチャネルの PPG タ
イマの動作を禁止します (PPGC0: PEN0=0, PPGC1: PEN1=0)。PPG ダウンカウンタの
カウント動作は停止し , PPG 出力端子は "L" レベルの出力を保持します。
• 各チャネルの PPG ダウンカウンタがアンダフローを発生した場合は , PPG リロード
レジスタ (PRLL0/PRLH0, PRLL1/PRLH1) に設定したリロード値がアンダフローを発
生した PPG ダウンカウンタにリロードされます。
320
第 10 章 8/16 ビット PPG タイマ
• アンダフローを発生すると , アンダフローを発生したチャネルのアンダフロー発生
フラグビットがセットされます (PPGC0: PUF0=1, PPGC1: PUF1=1)。アンダフローを
発生したチャネル側で割込み要求が許可されていれば (PPGC0: PIE0=1, PPGC1:
PIE1=1), 割込み要求が発生します。
● 8 ビット PPG 出力 2ch 独立動作モードの出力波形
• 出力されるパルス幅は , "L" 幅 , "H" 幅とも各チャネルの PPG リロードレジスタの値
に 1 を加えて , カウントクロック周期を掛けた値になります。たとえば , PPG リロー
ドレジスタの値が , "00H" の場合はカウントクロック 1 周期分のパルス幅になり ,
"FFH" の場合はカウントクロック 256 周期分のパルス幅になります。
パルス幅の計算式を , 以下に示します。
PL=T × (L+1)
PH=T × (H+1)
PL: 出力パルスの "L" 幅
PH: 出力パルスの "H" 幅
L: PPG リロードレジスタ (PRLL0 または PRLL1) の 8 ビット値
H: PPG リロードレジスタ (PRLH0 または PRLH1) の 8 ビット値
T: カウントクロック周期
8 ビット PPG 出力 2ch 独立動作モードの出力波形を図 10.5-3 に示します。
図 10.5-3 8 ビット PPG 出力 2ch 独立動作モードの出力波形
動作開始
動作停止
PPG動作許可ビット
(PEN)
PPG出力端子
T×(L+1)
T×(H+1)
L :PPGリロードレジスタ(PRLL)の値
H :PPGリロードレジスタ(PRLH)の値
T :カウントクロック周期
321
第 10 章 8/16 ビット PPG タイマ
16 ビット PPG 出力動作モード
10.5.2
16 ビット PPG 出力動作モードでは , 8/16 ビット PPG タイマを 1 チャネルの 16
ビット PPG タイマとして設定します。
■ 16 ビット PPG 出力動作モードの設定
16 ビット PPG 出力動作モードで動作させるには , 図 10.5-4 の設定が必要です。
図 10.5-4 16 ビット PPG 出力動作モードの設定
bit15 14
PPGC1/PPGC0
PEN1
1
-
bit8 bit7
6
PE1 PIE1 PUF1 MD1 MD0 予約 PEN0
13
-
◎
12
◎
11
◎
10
1
9
1
1
(予約領域)
PPG01
1
4
3
◎
◎
2
-
×
×
◎
1
◎
bit0
- 予約
◎
1
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
×
ー
ー
◎
PRLH0/PRLL0
PPG0 "H"レベル側リロード値下位8ビットを設定
PPG0 "L"レベル側リロード値下位8ビットを設定
PRLH1/PRLL1
PPG1 "H"レベル側リロード値上位8ビットを設定
PPG1 "L"レベル側リロード値上位8ビットを設定
◎
X
-
1
0
:使用ビット
:未使用ビット
:未定義ビット
:"1"を設定
:"0"を設定
<注意事項>
322
5
PE0 PIE0 PUF0
PPG リロードレジスタの値は , ロングワード命令で設定するか , PPG0 → PPG1
(PRLL0 → PRLL1, PRLH0 → PRLH1) の順にワード命令で設定してください。
第 10 章 8/16 ビット PPG タイマ
● 16 ビット PPG 出力動作モードの動作
• PPG0 端子 , PPG1 端子どちらの端子出力を許可した場合でも (PPGC0: PE0=1, PPGC1:
PE1=1), PPG0 端子 , PPG1 端子とも同じ波形のパルス波が出力されます。
• PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) にリロード値を設定して ,
PPG タイマの動作を同時に許可すると (PPGC0:PEN0=1 かつ PPGC1: PEN1=1), PPG
ダウンカウンタは 16 ビットのダウンカウンタ (PCNT0+PCNT1) としてカウント動作
を開始します。
• PPG ダウンカウンタのカウント動作を停止する場合は , 両チャネルの PPG タイマの
動作を同時に禁止します (PPGC0: PEN0=0 かつ PPGC1: PEN1=0)。PPG ダウンカウン
タのカウント動作は停止し , PPG 出力端子は "L" レベルの出力を保持します。
• PPG1 のダウンカウンタがアンダフローを発生した場合は , PPG0 および PPG1 のリ
ロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) に設定したリロード値が同時に PPG
ダウンカウンタ (PCNT0+PCNT1) にリロードされます。
• アンダフローを発生すると , 両チャネルのアンダフロー発生フラグビットが同時に
セットされます (PPGC0:PUF0=1,PPGC1:PUF1=1)。どちらかのチャネル側で割込み
要求が許可されていれば (PPGC0: PIE0=1, PPGC1: PIE1=1), 割込み要求が発生しま
す。
<注意事項>
• 16 ビット PPG 出力動作モードでは , アンダフローが発生すると , 2 チャネルの
アンダフロー発生フラグビットが同時にセットされます (PPGC0: PUF0=1 かつ
PPGC1: PUF1=1)。割込み要求が重複して発生しないよう , 2 チャネルのアンダ
フロー割込み許可ビットのうち , どちらか片方を禁止しておいてください
(PPGC0:PIE0=0, PPGC1:PIE1=1 または PPGC0:PIE0=1, PPGC1:PIE1=0)。
• アンダフロー発生フラグビットがセットされた場合は , 2 チャネル同時にクリア
してください (PPGC0: PUF0=0 かつ PPGC1: PUF1=0)。
323
第 10 章 8/16 ビット PPG タイマ
● 16 ビット PPG 出力動作モードの出力波形
• 出力されるパルス幅は , "L" 幅 , "H" 幅とも各チャネルの PPG リロードレジスタの値
に 1 を加えて , カウントクロック周期を掛けた値になります。たとえば , PPG リロー
ドレジスタの値が , "0000H" の場合はカウントクロック 1 周期分のパルス幅になり ,
"FFFFH" の場合はカウントクロック 65,536 周期分のパルス幅になります。
パルス幅の計算式を , 以下に示します。
PL=T × (L+1)
PH=T × (H+1)
PL: 出力パルスの "L" 幅
PH: 出力パルスの "H" 幅
L: PPG リロードレジスタ (PRLL0+PRLL1) の 16 ビット値
H: PPG リロードレジスタ (PRLH0+PRLH1) の 16 ビット値
T: カウントクロック周期
16 ビット PPG 出力動作モードの出力波形を図 10.5-5 に示します。
図 10.5-5 16 ビット PPG 出力動作モードの出力波形
動作開始
動作停止
PPG動作許可ビット
(PEN)
PPG出力端子
T×(L+1)
T×(H+1)
L :PPGリロードレジスタ(PRLL1+PRLL0)の16ビット値
H :PPGリロードレジスタ(PRLH1+PRLH0)の16ビット値
T :カウントクロック周期
324
第 10 章 8/16 ビット PPG タイマ
8+8 ビット PPG 出力動作モード
10.5.3
8+8 ビット PPG 出力動作モードでは , PPG0 は 8 ビットプリスケーラとして動作し
, PPG1 は PPG0 の PPG 出力をクロックソースとして動作する 8 ビット PPG タイ
マとして設定されます。
■ 8+8 ビット PPG 出力動作モードの設定
8+8 ビット PPG 出力動作モードで動作させるには , 図 10.5-6 の設定が必要です。
図 10.5-6 8+8 ビット PPG 出力動作モードの設定
bit15 14
PEN1
PPGC1/PPGC0
1
ー
bit8 bit7
6
PE1 PIE1 PUF1 MD1 MD0 予約 PEN0
13
ー
◎
12
◎
11
◎
10
0
9
1
1
(予約領域)
PPG01
1
5
4
3
PE0 PIE0 PUF0
◎
◎
2
ー
◎
×
×
◎
◎
bit0
1
PCS2 PCS1 PCS0 PCM2 PCM1 PCM0
×
1
ー 予約
ー
ー
◎
PRLH0/PRLL0
PPG0 "H"レベル側リロード値を設定
PPG0 "L"レベル側リロード値を設定
PRLH1/PRLL1
PPG1 "H"レベル側リロード値を設定
PPG1 "L"レベル側リロード値を設定
◎
X
-
1
0
:使用ビット
:未使用ビット
:未定義ビット
:"1"を設定
:"0"を設定
<注意事項>
PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) は , ワード命令で "H" レベ
ル側 , "L" レベル側を同時に設定してください。
325
第 10 章 8/16 ビット PPG タイマ
● 8+8 ビット PPG 出力動作モードの動作
• PPG0 は , PPG1 タイマのプリスケーラとして動作し , PPG1 は , PPG0 の出力をカウ
ントクロックとして PPG 動作を行います。
• 端子出力を許可されている場合は (PPGC0: PE0=1, PPGC1: PE1=1), PPG0 端子から
PPG0 のパルス波が , PPG1 端子から PPG1 のパルス波が出力されます。
• PPGリロードレジスタ(PRLL0/PRLH0, PRLL1/PRLH1)にリロード値を設定して, PPG
タイマの動作を許可すると (PPGC0:PEN0=1 かつ PPGC1: PEN1=1), PPG ダウンカウ
ンタはカウント動作を開始します。
• PPG ダウンカウンタのカウント動作を停止する場合は , 両チャネルの PPG タイマの
動作を同時に禁止します (PPGC0: PEN0=0 かつ PPGC1: PEN1=0)。PPG ダウンカウン
タのカウント動作は停止し , PPG 出力端子は "L" レベルの出力を保持します。
• 各チャネルの PPG ダウンカウンタがアンダフローを発生した場合は , PPG リロード
レジスタ (PRLL0/PRLH0, PRLL1/PRLH1) に設定したリロード値がアンダフローを発
生した PPG ダウンカウンタにリロードされます。
• アンダフローを発生すると , アンダフローを発生したチャネルのアンダフロー発生
フラグビットがセットされます (PPGC0:PUF0=1, PPGC1:PUF1=1)。アンダフローを
発生したチャネル側で割込み要求が許可されていれば (PPGC0: PIE0=1, PPGC1:
PIE1=1), 割込み要求が発生します。
<注意事項>
326
• PPG0 が停止している状態で (PPGC0: PEN0=0), PPG1 を動作させないでくだ
さい (PPGC1: PEN1=1)。
• PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) は , "L" レベル側 , "H"
レベル側とも同じ値を設定することを推奨します。
第 10 章 8/16 ビット PPG タイマ
● 8+8 ビット PPG 出力動作モードの動作
• 出力されるパルス幅は , "L" 幅 , "H" 幅とも各チャネルの PPG リロードレジスタの値
に 1 を加えて , カウントクロック周期を掛けた値になります。
パルス幅の計算式を , 以下に示します。
PL=T × (L0+1) × (L1+1)
PH=T × (H0+1) × (H1+1)
PL: PPG1 端子の出力パルスの "L" 幅
PH: PG1 端子の出力パルスの "H" 幅
L0: PPG リロードレジスタ (PRLL0) の 8 ビット値
H0: PPG リロードレジスタ (PRLH0) の 8 ビット値
L1: PPG リロードレジスタ (PRLL1) の 8 ビット値
H1: PPG リロードレジスタ (PRLH1) の 8 ビット値
T: カウントクロック周期
8+8 ビット PPG 出力動作モードの出力波形を図 10.5-7 に示します。
図 10.5-7 8+8 ビット PPG 出力動作モードの出力波形
動作開始
動作停止
PPG動作許可ビット
(PEN0,PEN1)
T ×(L0+1)
T ×(H0+1)
PPG0出力端子
PPG1出力端子
T ×(L0+1)×(L1+1)
T ×(H0+1)×(H1+1)
L0 :PPGリロードレジスタ(PRLL0)の8ビット値
H0 :PPGリロードレジスタ(PRLH0)の8ビット値
H1 :PPGリロードレジスタ(PRLL1)の8ビット値
L1 :PPGリロードレジスタ(PRLH1)の8ビット値
T :カウントクロック周期
327
第 10 章 8/16 ビット PPG タイマ
8/16 ビット PPG タイマ使用上の注意
10.6
8/16 ビット PPG タイマを使用する場合は , 次の点に注意してください。
■ 8/16 ビット PPG タイマ使用上の注意
● タイムベースタイマ出力を使用した場合の 8/16 ビット PPG タイマへの影響
• タイムベースタイマの出力を 8/16 ビット PPG タイマのカウントクロック入力に使
用した場合 (PPG01: PCM2 ∼ PCM0=111B, PCS2 ∼ PCS0=111B), トリガ入力によって
PPG タイマが起動される最初のカウント周期またはストップ直後のカウント周期に
ズレが生じることがあります。
• PPG ダウンカウンタのカウント動作中に , タイムベースタイマのカウンタをクリア
すると (TBTC: TBR=0), カウント周期にズレが生じることがあります。
● 8 ビット PPG タイマを使用した場合の PPG リロードレジスタの設定
• "L" レベル側および "H" レベル側のパルス幅は , "L" 側レベルの PPG リロードレジス
タ (PRLL0, PRLL1) の値を PPG ダウンカウンタにリロードするタイミングで決定さ
れます。
• 8 ビット PPG 出力 2ch 独立動作モードまたは 8+8 ビット PPG 出力動作モードで 8
ビット PPG タイマを使用している場合 , PPG リロードレジスタ (PRLL0/PRLH0,
PRLL1/PRLH1) 定は , ワード命令で "H" レベル側 , "L" レベル側を同時に設定してく
ださい。
バイト命令を使用した場合は , 予想外のパルスが発生するおそれがあります。
[ バイト命令使用による PPG リロードレジスタ書換え例 ]
PPG 端子の信号レベルが "H" → "L" に切り替わる直前に , "L" レベル側の PPG リロー
ドレジスタ (PRLL) の値をバイト命令で書き換えてから , "H" レベル側の PPG リロード
レジスタ (PRLH) を書き換えた場合 , 1 度だけ "L" 幅は書換え後の幅 , "H" 幅は書換え前
の幅のパルスが発生します。
バイト命令で PPG リロードレジスタを書き換えた場合の波形を図 10.6-1 に示します。
図 10.6-1 バイト命令で PPG リロードレジスタを書き換えた場合の波形
PRLL
A
PRLH
B
C
D
A+B
A+B
C+D
B+C
C+D リロード値更新
のタイミング
C+D
PPG端子
A
B
A
B
C
B
<1><2>
<1> :PPGリロードレジスタ(PRLL)の値を変更(A→C)
<2> :PPGリロードレジスタ(PRLH)の値を変更(B→D)
328
C
D
C
D
第 10 章 8/16 ビット PPG タイマ
● 16 ビット PPG タイマを使用した場合の PPG リロードレジスタの設定
• PPG リロードレジスタ (PRLL0/PRLH0, PRLL1/PRLH1) は , ロングワード命令で設定
するか , PPG0 → PPG1 (PRLL0 → PRLL1, PRLH0 → PRLH1) の順にワード命令で設
定してください。
[16 ビット PPG 出力動作モードでのリロードタイミング ]
16 ビット PPG 出力動作モードの場合 , PPG0 リロードレジスタに書き込んだリロード
値は一時的にテンポラリラッチに書き込まれ , PPG1 リロードレジスタにリロード値を
書き込まれてから , PPG0 リロードレジスタ (PRLL0, PRLH0) に転送されます。したがっ
て , PPG1 のリロード値を設定する場合は , PPG0 のリロード値も同時に設定するか ,
PPG1のりロード値を設定する前にPPG0のリロード値を設定しておく必要があります。
16 ビット PPG 出力動作モードの場合のリロードタイミングを図 10.6-2 に示します。
図 10.6-2 16 ビット PPG 出力動作モードでのリロードタイミング
PPG0の
リロード値
16ビットPPG出力動作モード
以外でのPPG0への書込み
16ビットPPG出力動作モードのみ
テンポラリラッチ
PPG1の
リロード値
PPG1へ
の書込み
PPG1への書込みに
同期して転送
PPGリロードレジスタ
(PRLL0,PRLH0)
PPGリロードレジスタ
(PRLL1,PRLH1)
329
第 10 章 8/16 ビット PPG タイマ
330
第 11 章
遅延割込み発生モジュール
この章では , 遅延割込み発生モジュールの機能と動
作について説明します。
11.1 遅延割込み発生モジュールの概要
11.2 遅延割込み発生モジュールのブロックダイヤグラム
11.3 遅延割込み発生モジュールの構成
11.4 遅延割込み発生モジュールの動作説明
11.5 遅延割込み発生モジュールの使用上の注意
11.6 遅延割込み発生モジュールのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
331
第 11 章 遅延割込み発生モジュール
11.1
遅延割込み発生モジュールの概要
遅延割込み発生モジュールは , タスク切替え用の割込みを発生するためのモジュール
です。
ソフトウェアでハードウェア割込み要求を発生することができます。
■ 遅延割込み発生モジュールの概要
遅延割込み発生モジュールを使用することにより,ソフトウェアでハードウェア割込み
要求を発生または解除することができます。
表 11.1-1 に , 遅延割込み発生モジュールの概要を示します。
表 11.1-1 遅延割込み発生モジュールの概要
機能と制御
332
割込み要因
遅延割込み要求発生 / 解除レジスタの R0 ビットに "1" を設定 (DIRR: R0=1)
で , 割込み要求を発生
遅延割込み要求発生 / 解除レジスタの R0 ビットに "0" を設定 (DIRR: R0=0)
で , 割込み要求を解除
割込み番号
#42 (2AH)
割込み制御
レジスタによる許可設定はありません
割込みフラグ
DIRR: R0 ビットに保持されています
EI2OS
拡張インテリジェント I/O サービスには対応していません
第 11 章 遅延割込み発生モジュール
11.2
遅延割込み発生モジュールのブロックダイヤグラム
遅延割込み発生モジュールは , 次のブロックで構成されています。
• 割込み要求ラッチ
• 遅延割込み要求発生 / 解除レジスタ (DIRR)
■ 遅延割込み発生モジュールのブロックダイヤグラム
図 11.2-1 遅延割込み発生モジュールのブロックダイヤグラム
内部データバス
-
-
-
-
-
-
-
R0
遅延割込み要求発生/解除レジスタ(DIRR)
S 割込み要求
R ラッチ
割込み要求
信号
-:未定義
● 割込み要求ラッチ
遅延割込み要求発生 / 解除レジスタでの設定内容 ( 遅延割込み要求の発生または解除 )
を保持するラッチです。
● 遅延割込み要求発生 / 解除レジスタ (DIRR)
遅延割込み要求の発生または解除を行います。
■ 割込み番号
遅延割込み発生モジュールで使用する割込み番号を次に示します。
割込み番号 #42 (2AH)
333
第 11 章 遅延割込み発生モジュール
11.3
遅延割込み発生モジュールの構成
遅延割込み発生モジュールのレジスタの一覧および詳細を記載します。
■ レジスタとリセット値の一覧
図 11.3-1 遅延割込み発生モジュールのレジスタとリセット値の一覧
bit
遅延割込み要求発生/解除レジスタ(DIRR)
× :不定
334
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
0
第 11 章 遅延割込み発生モジュール
遅延割込み要求発生 / 解除レジスタ (DIRR)
11.3.1
遅延割込み要求発生 / 解除レジスタ (DIRR) は , 遅延割込み要求の発生や解除を行い
ます。
■ 遅延割込み要求発生 / 解除レジスタ (DIRR)
図 11.3-2 遅延割込み要求発生 / 解除レジスタ (DIRR)
15
14
13
12
11
10
9
8
-
-
-
-
-
-
-
R/W
リセット値
XXXXXXX0B
bit8
- :未定義
R/W :リード ・ライト 可能
:リセット値
R0
0
1
遅延割込み要求発生ビット
遅延割込み要求を解除
遅延割込み要求を発生
表 11.3-1 遅延割込み要求発生 / 解除レジスタ (DIRR) の機能
ビット名
機 能
bit15
∼
bit9
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit8
R0:
遅延割込み要求発生
ビット
遅延割込み要求の発生または解除を行います。
"0" に設定した場合 : 遅延割込み要求を解除します。
"1" に設定した場合 : 遅延割込み要求を発生します。
335
第 11 章 遅延割込み発生モジュール
11.4
遅延割込み発生モジュールの動作説明
遅延割込み発生モジュールには , ソフトウェアで割込み要求を発生または解除する機
能があります。
■ 遅延割込み発生モジュールの動作説明
遅延割込み発生モジュールを使用するには , 図 11.4-1 の設定が必要です。
図 11.4-1 遅延割込み発生モジュールの設定
bit15 14
DIRR
-
-
13
12
11
10
9 bit8
-
-
-
-
-
R0
◎
- :未定義ビット
◎ :使用ビット
遅延割込み要求発生 / 解除レジスタの R0 ビットに "1" を設定した場合 (DIRR: R0=1), 割
込み要求を発生します。割込み要求の許可ビットはありません。
● 遅延割込み発生モジュールの動作
• 遅延割込み要求発生 / 解除レジスタの R0 ビットに "1" を設定した場合 , 割込み要求
ラッチが "1" にセットされ , 割込みコントローラに対して , 割込み要求を発生します。
• 割込みコントローラで , ほかの割込み要求よりも割込み優先順位が高いと判定され
た場合は , CPU に対して割込み要求が発生します。
• CPU側では,プロセッサステータス(PS)内のインタラプトレベルマスクビット(ILM)
と割込み要求のレベル (ICR: IL) が比較され , 割込み要求レベルが ILM より高かった
場合は , 現在実行中の命令の終了後に , 遅延割込み処理が実行されます。
• 割込み処理内で , ユーザプログラムで R0 ビットに "0" を設定して , 割込み要求を解
除し , タスクの切替えを行います。
図 11.4-2 に遅延割込み発生モジュールの動作を示します。
図 11.4-2 遅延割込み発生モジュールの動作
遅延割込み発生モジュール
ほかの要求
DIRR
割込みコントローラ
ICR YY
IL
CMP
CMP
ICR XX
336
CPU
ILM
割込み
処理
第 11 章 遅延割込み発生モジュール
11.5
遅延割込み発生モジュールの使用上の注意
遅延割込み発生モジュールを使用する場合は , 以下の点に注意してください。
■ 遅延割込み発生モジュールの使用上の注意
• 割込み処理ルーチン内で遅延割込み要求発生 / 解除レジスタの R0 ビットを "0" に設
定せずに , 割込み処理から復帰した場合は , 再度割込み処理を起動します。
• 遅延割込み発生モジュールでの割込みには , ソフトウェア割込みとは異なり , 遅延
が伴います。
337
第 11 章 遅延割込み発生モジュール
11.6
遅延割込み発生モジュールのプログラム例
遅延割込み発生モジュールのプログラム例を示します。
■ 遅延割込み発生モジュールのプログラム例
● 処理仕様
メインプログラムで遅延割込み要因発生 / 解除レジスタ (DIRR) の R0 ビットに "1" を
書き込み , 遅延割込み要求を発生させ , タスク切換え処理をします。
● コーディング例
ICR15
EQU
0000BFH
;割込み制御レジスタ
DIRR
EQU
00009FH
;遅延割込み要因発生/解除レジスタ
DIRR_R0 EQU
DIRR:0
;遅延割込み要求発生ビット
;---------メインプログラム-----------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは
;初期化済みとする
AND
CCR,#0BFH
;割込み禁止
MOV
I:ICR15,#00H
;割込みレベル0(最強)
MOV
ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
SETB
I:DIRR_R0
;遅延割込み要求発生
LOOP
MOV
A,#00H
;無限ループ
MOV
A,#01H
BRA
LOOP
;---------割込みプログラム-------------------------------------WARI:
CLRB
I:DIRR_R0
;割込み要求フラグをクリア
:
;
ユーザー処理
;
:
RETI
;割込みから復帰
CODE
ENDS
;---------ベクタ設定----------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FF54H
;割込み#42(2AH)にベクタを設定
DSL
WARI
ORG
0FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
338
第 12 章
DTP/ 外部割込み
この章では , DTP/ 外部割込みの機能と動作につい
て説明します。
12.1 DTP/ 外部割込みの概要
12.2 DTP/ 外部割込みのブロックダイヤグラム
12.3 DTP/ 外部割込みの構成
12.4 DTP/ 外部割込みの動作説明
12.5 DTP/ 外部割込みの使用上の注意
12.6 DTP/ 外部割込み回路のプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
339
第 12 章 DTP/ 外部割込み
12.1
DTP/ 外部割込みの概要
DTP/ 外部割込みでは , 外部の周辺装置が発生する割込み要求かまたはデータ転送要
求を CPU に伝達し , 外部割込み要求を発生 , 拡張インテリジェント I/O サービス
(EI2OS) を起動します。CAN コントローラの入力 RX を外部割込み入力として使用
できます。
■ DTP/ 外部割込み機能
外部の周辺装置から外部割込み入力端子 (INT7 ∼ INT4) および RX 端子に入力された
割込み要求は , 周辺機能の割込みと同様割込み要求が発生され , 外部割込みを発生した
り , 拡張インテリジェント I/O サービス (EI2OS) を起動します。
割込み制御レジスタで拡張インテリジェント I/O サービス (EI2OS) を禁止に設定してい
る場合は (ICR: ISE=0), 外部割込み機能が有効になり , 割込み処理に分岐します。
EI2OS を許可に設定している場合は (ICR: ISE=1), DTP 機能が有効となって , EI2OS に
よる自動データ転送が行われ , 指定回数のデータ転送終了後に割込み処理に分岐しま
す。
表 12.1-1 に DTP/ 外部割込みの概要について示します。
表 12.1-1 DTP/ 外部割込みの概要
外部割込み
入力端子
DTP 機能
5 本 (RX, INT4 ∼ INT7)
検出レベル設定レジスタ (ELVR) にて , 端子ごとに設定
340
割込み要因
"H" レベル /"L" レベル /
立上りエッジ / 立下りエッジの入力
割込み番号
#15 (0FH), #24 (18H), #27(1BH)
割込み制御
DTP/ 外部割込み許可レジスタ (ENIR) による , 割込み要求出力の許可また
は禁止
割込みフラグ
DTP/ 外部割込み要因レジスタ (EIRR) による , 割込み要因の保持
処理選択
EI2OS を禁止に設定
(ICR: ISE=0)
EI2OS を許可に設定
(ICR: ISE=1)
処理
外部割込み処理へ分岐
EI2OS によるデータ自動転送 , 指定
回数処理後 , 割込み処理へ分岐
"H" レベル /"L" レベルの入力
第 12 章 DTP/ 外部割込み
DTP/ 外部割込みのブロックダイヤグラム
12.2
DTP/ 外部割込みのブロックダイヤグラムを以下に示します。
■ DTP/ 外部割込みのブロックダイヤグラム
図 12.2-1 DTP/ 外部割込みのブロックダイヤグラム
検出レベル設定レジスタ(ELVR)
LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4
端子
予約 予約 予約 予約 予約 予約 LB0 LA0
レベル・エッジ
セレクタ
INT7
端子
レベル・エッジ
セレクタ
部
デ
I
タ
バ
ス
内
INT6
端子
レベル・エッジ
セレクタ
INT5
端子
レベル・エッジ
セレクタ
INT4
端子
レベル・エッジ
セレクタ
RX
DTP/外部割込み入力検出回路
ER7 ER6 ER5 ER4 予約 予約 予約 ER0
割込み要求
信号
DTP/外部割込み要因
レジスタ(EIRR)
割込み要求
信号
EN7 EN6 EN5 EN4 予約 予約 予約 EN0 DTP/外部割込み許可
レジスタ(ENIR)
341
第 12 章 DTP/ 外部割込み
● DTP/ 外部割込み入力検出回路
外部の周辺装置が発生する割込み要求またはデータ転送要求を検出します。
検出レベル設定レジスタで設定したレベルまたはエッジが検出された端子に対応する
割込み要求フラグを "1" にセットします (EIRR: ER)。
● 検出レベル設定レジスタ (ELVR)
検出レベル設定レジスタでは , DTP/ 外部割込みの要因発生の条件となる , 外部周辺装
置からの入力信号のレベルまたはエッジを設定します。
● DTP/ 外部割込み要因レジスタ (EIRR)
DTP/ 外部割込みの要因を保持するレジスタです。
DTP/ 外部割込み端子に有効な信号の入力があった場合に , 対応する DTP/ 外部割込み
要求フラグビットが "1" にセットされます。
● DTP/ 外部割込み許可レジスタ (ENIR)
DTP/ 外部割込み許可レジスタ (ENIR) では , 外部周辺装置の DTP/ 外部割込み要求を ,
許可または禁止に設定します。
■ 端子の詳細と割込み番号
DTP/ 外部割込みで使用する端子 , 割込みの詳細を表 12.2-1 に示します。
表 12.2-1 DTP/ 外部割込みで使用する端子 , 割込み番号
端子
チャネル
割込み番号
P44/RX
RX
#15 (0FH)
P24/INT4
4
P25/INT5
5
P26/INT6
6
P27/INT7
7
#24 (18H)
#27 (1BH)
342
第 12 章 DTP/ 外部割込み
DTP/ 外部割込みの構成
12.3
DTP/ 外部割込みの端子 , 割込み要因 , レジスタの一覧および詳細を記載します。
■ DTP/ 外部割込みの端子
DTP/ 外部割込みで使用する端子は , 汎用入出力ポートと兼用の端子です。
端子の機能と DTP/ 外部割込みで使用する場合の設定は , 表 12.3-1 のとおりです。
表 12.3-1 DTP/ 外部割込みの端子
端子名
P44/RX
端子機能
DTP/ 外部割込みの使用に必要な端子の設定
汎用入出力ポート /
CAN 受信入力
P24/INT4
P25/INT5
P26/INT6
ポート方向レジスタ (DDR) で入力ポートに設定
汎用入出力ポート /
DTP 外部割込み入力
P27/INT7
■ 端子のブロックダイヤグラム
<参考>
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
■ DTP/ 外部割込みのレジスタとリセット値の一覧
図 12.3-1 DTP/ 外部割込みのレジスタとリセット値の一覧
bit
DTP/外部割込み要因レジスタ(EIRR)
bit
DTP/外部割込み許可レジスタ(ENIR)
bit
検出レベル設定レジスタ:上位(ELVR)
bit
検出レベル設定レジスタ:下位(ELVR)
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
× :不定
343
第 12 章 DTP/ 外部割込み
DTP/ 外部割込み要因レジスタ (EIRR)
12.3.1
DTP/ 外部割込みの要因を保持するレジスタです。
DTP/ 外部割込み端子および RX 端子に有効な信号の入力があった場合に , 対応する
割込み要求フラグビットが "1" にセットされます。
■ DTP/ 外部割込み要因レジスタ (EIRR)
図 12.3-2 DTP/ 外部割込み要因レジスタ (EIRR)
15
14
13
12
11
10
9
8
リセット値
XXXXXXXXB
R/W R/W
R/W R/W
-
-
-
R/W
bit15~bit12,bit8
ER7~ER4,ER0
R/W:リード・ライト可能
X :不定
- :未定義
0
1
DTP/外部割込み要求フラグビット
リードした場合
ライトした場合
DTP/外部割込み入力なし ERビットのクリア
DTP/外部割込み入力あり 影響なし
表 12.3-2 DTP/ 外部割込み要因レジスタ (EIRR) の機能
ビット名
bit11
∼
bit9
未定義ビット
bit15
∼
bit12,
bit8
ER7 ∼ ER4, ER0:
DTP/ 外部割込み
要求フラグビット
344
機 能
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
DTP/ 外部割込み端子および RX 端子に , 検出レベル設定レジスタの検出条件選
択ビット (ELVR: LB, LA) で設定したエッジまたはレベル信号が入力された場合
に , "1" にセットされます。
"1" にセットされた場合 : DTP/ 外部割込み要求許可ビット (ENIR: EN) を "1" に
設定している場合は , 対応する DTP/ 外部割込みチャ
ネルの割込み要求が発生します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
( 注意事項 )
• リードモディファイライト系 (RMW) 命令の読出し時には , "1" が読み出
されます。
• 複数の DTP/ 外部割込み
• 要求が許可されている場合は (ENIR: EN=1), 割込みを受け付けたチャネル
のビットだけをクリアするようにしてください (EIRR: ER=0)。それ以外
のビットを無条件にクリアすることは避けてください。
• DTP/ 外部割込み要求フラグビット (EIRR:ER) の値は , 対応する DTP/ 外部
割込み要求許可ビット (ENIR:EN) が "1" に設定されている時のみ有効で
す。DTP/ 外部割込みが許可されていない状態 (ENIR:EN=0) では ,DTP/ 外
部割込み要因の有無にかかわらず DTP/ 外部割込み要求フラグビットが
セットされる可能性があります。
• DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割
込み要求フラグビット (EIRR:ER) をクリアしてください。
〔参考〕
拡張インテリジェント I/O サービス (EI2OS) が起動された場合は , 1 データ
の転送が終了した時点で , 対応する割込み要求フラグビットが自動的にクリ
アされます (EIRR: ER=0)。
第 12 章 DTP/ 外部割込み
DTP/ 外部割込み許可レジスタ (ENIR)
12.3.2
DTP/ 外部割込み許可レジスタ (ENIR) では , 外部割込み端子 (INT7 ∼ INT4) および
RX 端子ごとに外部割込み要求を , 許可または禁止に設定します。
■ DTP/ 外部割込み許可レジスタ (ENIR)
図 12.3-3 DTP / 外部割込み許可レジスタ (ENIR)
7
6
5
4
3
2
1
0
予約 予約 予約
R/W R/W
リセット値
00000000B
R/W R/W R/W R/W R/W R/W
bit3~bit1
予約
0
予約ビット
必ず"0"に設定してください。
bit7~bit4,bit0
EN7~EN4,EN0
R/W :リード・ライト可能 :リセット値
0
1
DTP/外部割込み要求許可ビット
DTP/外部割込み禁止
DTP/外部割込み許可
表 12.3-3 DTP/ 外部割込み許可レジスタ (ENIR) の機能
ビット名
bit7
∼
bit4,
bit0
機 能
EN7 ∼ EN4, EN0:
DTP/ 外部割込み要
求許可ビット
DTP/ 外部割込み端子および RX 端子に対して , DTP/ 外部割込み要求を許可また
は禁止に設定します。
DTP/ 外部割込み要求許可ビット (ENIR: EN) に "1" を設定している場合に DTP/
外部割込み要求フラグビット (EIRR: ER) に "1" がセットされると , 対応する
DTP/ 外部割込み端子および RX 端子の割込み要求が発生します。
( 注意事項 )
DTP/ 外部割込みを許可 (ENIR:EN=1) する直前に , 対応する DTP/ 外部割込み
要求フラグビット (EIRR:ER) をクリアしてください。
〔参考〕
DTP/ 外部割込み要求許可ビットの設定にかかわらず , DTP/ 外部割込み端子
および RX 端子の状態は ポートデータレジスタにより , 直接読み出せます。
表 12.3-4 DTP/ 外部割込み端子と割込み要求フラグビット , 割込み許可ビットの対応
DTP/ 外部割込み端子
DTP/ 外部割込み要求
フラグビット
DTP/ 外部割込み要求
許可ビット
RX
ER0
EN0
INT4
ER4
EN4
INT5
ER5
EN5
INT6
ER6
EN6
INT7
ER7
EN7
345
第 12 章 DTP/ 外部割込み
検出レベル設定レジスタ : 上位 (ELVR)
12.3.3
検出レベル設定レジスタ ( 上位 ) では , DTP/ 外部割込み端子のうち , INT7 ∼ INT4
に対して , 割込み要因となる入力信号レベルまたはエッジを設定します。
■ 検出レベル設定レジスタ : 上位 (ELVR)
図 12.3-4 検出レベル設定レジスタ : 上位 (ELVR)
15
14
13
12
11
10
9
8
リセット値
00000000B
R/W R/W
R/W R/W R/W R/W R/W R/W
R/W :リード・ライト可能 :リセット値
bit15~bit8
LB7,LA7
LB6,LA6
LB5,LA5
LB4,LA4
0
0
0
1
1
0
1
1
検出条件選択ビット
"L"レベル検出
"H"レベル検出
立上りエッジ検出
立下りエッジ検出
表 12.3-5 検出レベル設定レジスタ : 上位 (ELVR) の機能
ビット名
bit15
∼
bit8
機 能
LB7, LA7 ∼ LB4,
LA4:
検出条件選択ビット
DTP/ 外部割込み端子に対して , 割込み要因の発生の条件となる , 外部周辺
装置からの入力信号のレベルまたはエッジを設定します。
• 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS
の場合は , 2 種類のレベルから選択します。
〔参考〕
設定した検出信号が , DTP/ 外部割込み端子に入力されると , DTP/ 外部
割込み要求を禁止に設定していても (ENIR: EN=0), DTP/ 外部割込み要
求フラグビットが "1" にセットされます。
表 12.3-6 検出レベル設定レジスタ : 上位と各チャネルの対応
346
DTP/ 外部割込み端子
ビット名
INT4
LB4, LA4
INT5
LB5, LA5
INT6
LB6, LA6
INT7
LB7, LA7
第 12 章 DTP/ 外部割込み
検出レベル設定レジスタ : 下位 (ELVR)
12.3.4
検出レベル設定レジスタ ( 下位 ) では , RX 端子に対して , 割込み要因となる入力信
号レベルまたはエッジを設定します。
■ 検出レベル設定レジスタ (ELVR) : 下位
図 12.3-5 検出レベル設定レジスタ (ELVR) : 下位
7
6
5
4
3
2
1
0
リセット値
予約 予約 予約 予約 予約 予約
R/W R/W
00000000B
R/W R/W R/W R/W R/W R/W
bit1
bit0
LB0,LA0
0
0
1
1
0
1
0
1
検出条件選択ビット
"L"レベル検出
"H"レベル検出
立上りエッジ検出
立下りエッジ検出
bit7~bit2
予約
R/W :リード・ライト可能 :リセット値
0
予約ビット
必ず"0"に設定してください。
表 12.3-7 検出レベル設定レジスタ (ELVR) : 下位の機能
ビット名
bit1,
bit0
機 能
LB0, LA0:
検出条件選択ビット
RX 端子に対して , 割込み要因の発生の条件となる , 外部周辺装置からの入
力信号のレベルまたはエッジを設定します。
• 外部割込みの場合は 2 種類のレベルまたは 2 種類のエッジから , EI2OS
の場合は , 2 種類のレベルから選択します。
〔参考〕
設定した検出信号が , RX 端子に入力されると , DTP/ 外部割込み要求を
禁止に設定していても (ENIR: EN=0), DTP/ 外部割込み要求フラグビット
が "1" にセットされます。
表 12.3-8 検出レベル設定レジスタ : 下位と各チャネルの対応
DTP/ 外部割込み端子
ビット名
RX
LB0, LA0
347
第 12 章 DTP/ 外部割込み
DTP/ 外部割込みの動作説明
12.4
DTP/ 外部割込みには , 外部割込み機能と DTP 機能があります。各機能の設定と動
作について説明します。
■ DTP/ 外部割込みの設定
DTP/ 外部割込みを使用するには , 図 12.4-1 の設定が必要です。
図 12.4-1 DTP/ 外部割込みの設定
bit15 14
ICR割込み制御
ICS3 ICS2
レジスタ
外部割込みの場合 - -
DTPの場合 ◎ ◎
EIRR/ENIR
12
11
10
9 bit8bit7 6
5
4
3
2
1 bit0
ICS1 ICS0 ISE IL2 IL1 IL0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0
0
1
◎
◎
ER7 ER6 ER5 ER4 -
-
◎ ◎
ELVR
13
-
◎
◎
-
◎
◎
- -
◎
◎
◎
◎
- -
◎ ◎
-
◎
-
◎
0
1
◎
◎
◎
◎
◎
◎
- ER0 EN7 EN6 EN5 EN4 予約 予約 予約 EN0
-
◎
○ ○
○
○
0
0
0
○
LB7 LA7 LB6 LA6 LB5 LA5 LB4 LA4 予約 予約 予約 予約 予約 予約 LB0 LA0
◎ ◎
◎
◎
◎ ◎
◎
◎
0
0
0
0
0
0
◎
◎
DDRポート方向
レジスタ
-
◎
○
0
1
DTP/外部割込み入力に使用する端子に対応するビットを"0"に設定
:未定義ビット
:使用ビット
:使用する端子に対応するビットに"1"を設定
:"0"を設定
:"1"を設定
● 設定の手順
DTP/ 外部割込みを使用する場合は , 次の手順で各レジスタの設定を行ってください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定する。
2. 使用する DTP/ 外部割込みチャネルに対応する割込み要求許可ビットを "0" に設定し
ます (ENIR: EN)。
3. 使用する DTP/ 外部端子および RX 端子に対応する検出条件選択ビットで , 検出する
エッジまたはレベルを設定します (ELVR: LA, LB)。
4. 使用する DTP/ 外部割込みチャネルに対応する割込み要求フラグビットを "0" に設定
します (EIRR: ER)。
5. 使用する DTP/ 外部割込みチャネルに対応する割込み要求許可ビットを "1" に設定し
ます (ENIR: EN)。
• DTP/ 外部割込みのレジスタの設定は , 外部割込み要求を禁止に (ENIR: EN=0) 設定
してから行います。
• DTP/ 外部割込み要求を許可 (ENIR: EN=1) する場合は , 先に対応する DTP/ 外部割込
み要求フラグビットをクリア (EIRR: ER=0) する必要があります。これは , レジスタ
設定時に誤って割込み要求が発生するのを防ぐためです。
348
第 12 章 DTP/ 外部割込み
● 外部割込み機能と DTP 機能の選択
外部割込み機能と DTP 機能のどちらが実行されるかは , 対応する割込み制御レジスタ
の EI2OS 許可ビット (ICR: ISE) の設定によって決定されます。
ISE ビットを "1" に設定した場合は , 拡張インテリジェント I/O サービス (EI2OS) が許
可され , DTP 機能が実行されます。
ISEビットを"0"に設定した場合は, EI2OSは禁止され,外部割込み機能が実行されます。
<注意事項>
• 1 つの割込み制御レジスタに割り当てられている割込み要求は , すべて割込みレ
ベル (IL2 ∼ IL0) が同じになります。
• 1 つの割込み制御レジスタに複数の割込み要求が割り当てられている場合 , その
うちの 1 つで EI2OS を使用すると , ほかの割込み要求は使用できません。
■ DTP/ 外部割込み動作
DTP/ 外部割込みの制御ビットと割込み要因を , 表 12.4-1 に示します。
表 12.4-1 DTP/ 外部割込みの制御ビットと割込み要因
DTP/ 外部割込み
割込み要求フラグビット
EIRR: ER7 ∼ ER4, ER0
割込み要求許可ビット
ENIR: EN7 ∼ EN4, EN0
割込み要因
INT7 ∼ INT4, RX 端子への , 有効エッジ / レベルの入力
DTP/ 外部割込みの割込み要求が割込みコントローラに対して出力された場合 , 割込み
制御レジスタの EI2OS 許可ビット (ICR: ISE) を "0" に設定している場合は , 割込み処理
が実行されます。"1"に設定している場合は ,拡張インテリジェント I/Oサービス (EI2OS)
が実行されます。
349
第 12 章 DTP/ 外部割込み
図 12.4-2 に DTP/ 外部割込みの動作を示します。
図 12.4-2 DTP/ 外部割込みの動作
DTP/外部割込み回路
ほかの要求 割込みコントローラ
ELVR
ICR YY
EIRR
CMP
ICR XX
ENIR
CPU
IL
CMP
割込み処理
ILM
要因
EI2OS起動
DTP/外部割込み
要求発生
メモリ 周辺データ転送
ディスクリプタ更新
割込みコントローラ
受付け判定
ディスクリプタ
データカウンタ
CPU割込み
受付け判定
=0
割込み処理
≠0
再設定または停止
割込み処理
マイクロプログラム
起動
ICR:ISE
0
外部割込みを起動
処理と割込みフラグクリア
外部割込みから復帰
350
DTP処理から復帰
EI2OS処理(DTP処理)
から復帰
1
第 12 章 DTP/ 外部割込み
12.4.1
外部割込み機能
DTP/ 外部割込み機能には , DTP/ 外部割込み端子および RX 端子での信号 ( エッジま
たはレベル ) の検出により , 割込み要求を発生させる外部割込み機能があります。
■ 外部割込み機能
• DTP/ 外部割込み端子および RX 端子に , 検出レベル設定レジスタで設定した信号
( エッジまたはレベル ) が検出されると , DTP/ 外部割込み要因レジスタの割込み要
求フラグビット (EIRR: ER) が "1" にセットされます。
• 割込み要求フラグビットが "1" にセットされた場合に , DTP/ 外部割込み許可レジス
タの割込み要求許可ビットを許可に設定していると (ENIR: EN=1), 割込みコント
ローラに対して , 割込み処理を開始します。
• 割込みコントローラで , ほかの割込み要求よりも割込み優先順位が高いと判定され
た場合は , 割込み要求が発生します。
• CPU では , プロセッサステータス (PS) 内のインタラプトレベルマスクビット (ILM)
と割込み要求のレベル (ICR: IL) が比較され , 割込み要求レベルが ILM より高く , 割
込み許可ビットが許可に設定されていた場合は (PS: CCR: I=1), 現在実行中の命令の
終了後に , 割込み処理が実行され , 割込み処理に分岐します。
• 割込み処理で対応する DTP/ 外部割込み要求フラグビットに "0" を設定し , DTP/ 外
部割込み要求をクリアしてください。
<注意事項>
• DTP/ 外部割込み要求フラグビット (EIRR: ER) は , 対応する DTP/ 外部割込み要
求許可ビット (ENIR: EN) の設定にかかわらず , DTP/ 外部割込み起動要因が発
生すると "1" にセットされます。
• 割込み処理が起動された場合は , 起動要因となった DTP/ 外部割込み要求フラグ
ビットをクリアしてください。DTP/ 外部割込み要求フラグビットが "1" のまま
では割込みから復帰できません。クリアする場合は , 受け付けられている DTP/
外部割込み要因以外のフラグビットをクリアしないように注意してください。
351
第 12 章 DTP/ 外部割込み
DTP 機能
12.4.2
DTP/ 外部割込みには , 外部の周辺装置からの信号を DTP/ 外部割込み端子および RX
端子から検出し , 拡張インテリジェント I/O サービスを起動する DTP 機能がありま
す。
■ DTP 機能
DTP/ 外部割込み機能の検出レベル設定レジスタで設定した信号レベルの検出により ,
拡張インテリジェント I/O サービス (EI2OS) を起動します。
• EI2OS の動作が許可 (ICR: ISE=1) されていれば , 割込み要求が受け付けられた時点
で , EI2OS を起動し , データ転送を開始します。
• 1 データの転送が終了するとディスクリプタの更新などが行われ , DTP/ 外部割込み
要求フラグビットがクリアされて , DTP/ 外部割込み端子および RX 端子からの次の
要求に備えます。
• EI2OS による転送がすべて終了すると , 割込み処理に分岐します。
図 12.4-3 外部周辺装置とのインタフェーイス例
"H"レベル要求(ELVR:LB4,LA4=01B)
INT4端子への入力
(DTP要因)
CPU内部動作
ディスクリプタ
選択,読出し
外部接続の
周辺装置
ディスクリプタ
更新
内部データバス
リード・
ライト動作*2
データ転送要求
DTP要因*1
INT
DTP/外部 割込み要求
CPU
割込み回路
(EI2OS)
*1:転送開始後,3マシンサイクル以内に取り下げる
*2:拡張インテリジェントI/Oサービスが「周辺機能→内部メモリ転送」の場合
352
内部メモリ
第 12 章 DTP/ 外部割込み
12.5
DTP/ 外部割込みの使用上の注意
DTP/ 外部割込みを使用する際は , 以下の点にご注意ください。
■ 使用上の注意
● DTP 機能を使用する場合の外部に接続する周辺装置の条件
• DTP 機能を使用する場合は , 転送が行われたことにより自動的にデータ転送要求を
クリアしてください。
• 転送動作を開始してから 3 マシンサイクル以内で転送要求信号をインアクティブに
してください。アクティブにしたままの場合 , DTP/ 外部割込みでは , 次の転送要求
が発生したものとして再度データ転送動作を行います。
● 外部割込みの入力極性について
• 検出レベル設定レジスタでエッジ検出を設定している場合は , エッジを検出するた
めのパルス幅は最小 3 マシンサイクルが必要です。
• 検出レベル設定レジスタでレベル検出を設定している場合は , 割込み要因となるレ
ベルが入力されると , DTP/ 外部割込み要因レジスタ内部の DTP/ 外部割込み要求フ
ラグビット (EIRR:ER) が "1" にセットされ , 図 12.5-1 に示すように , 要因が保持され
ます。
DTP/ 外部割込み要求フラグビット (EIRR:ER) に要因が保持された場合は , DTP/ 外部割
込み要因が取り下げられても , 割込み要求許可状態 (ENIR: EN=1) であれば , 割込みコ
ントローラへの要求はアクティブのままです。割込みコントローラへの要求を取り下
げるには , 図 12.5-2 に示すように DTP/ 外部割込み要求フラグビット (EIRR:ER) をクリ
アする必要があります。
図 12.5-1 レベル設定の場合の DTP/ 外部割込み要求フラグビット (EIRR:ER) のクリア
DTP/
外部割込み要因
DTP/割込み入力
検出回路
DTP/外部割込み要求
フラグビット
(EIRR:ER)
許可ゲート
割込み
コントローラへ
(割込み要求)
クリアしない限り要因を保持し続ける
図 12.5-2 割込み要求許可の場合の DTP/ 外部割込み要因と割込み要求
DTP/外部割込み要因
("H"レベル検出の場合)
割込み要因の取り下げ
割込みコントローラ
への割込み要求
DTP/外部割込み要求フラグビット(EIRR:ER)
のクリアによってインアクティブとなる
353
第 12 章 DTP/ 外部割込み
● 割込みに関する注意
• 外部割込み機能として使用している場合は, DTP/外部割込み要求フラグビットが"1"
にセットされ (EIRR: ER), DTP/ 外部割込み要求を許可に設定した状態 (ENIR: EN=1)
では , 割込み処理から復帰できません。割込み処理内で必ず DTP/ 外部割込み要求フ
ラグビットを "0" に設定してください (EIRR: ER)。
• 検出レベル設定レジスタでレベル検出を設定している場合は , 割込み要因となるレ
ベルが入力されたままであれば , DTP/ 外部割込み要求フラグビットをクリアしても
(EIRR: ER=0), すぐに再セットされます。必要に応じて DTP/ 外部割込み要求を禁止
するか (ENIR: EN=0), 割込み要因を解消してください。
354
第 12 章 DTP/ 外部割込み
12.6
DTP/ 外部割込み回路のプログラム例
DTP/ 外部割込み機能のプログラム例を示します。
■ DTP/ 外部割込み機能のプログラム例
● 処理仕様
INT4 端子に入力される , パルスの立上りエッジを検出して外部割込みを発生します。
● コーディング例
ICR06 EQU
0000B6H
;DTP/外部割込み制御レジスタ
DDR2
EQU
000012H
;ポート2方向レジスタ
ENIR
EQU
000030H
;DTP/外部割込み許可レジスタ
EIRR
EQU
000031H
;DTP/外部割込み要因レジスタ
ELVRL EQU
000032H
;検出レベル設定レジスタ: L
ELVRH EQU
000033H
;検出レベル設定レジスタ: H
ER0
EQU
EIRR:0
;INT4割込み要求フラグビット
EN0
EQU
ENIR:0
;INT4割込み要求許可ビット
;
;---------メインプログラム------------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは初期化済みとする
MOV
I:DDR2,#00000000B ;DDR2を入力ポートに設定
AND
CCR,#0BFH
;割込み禁止
MOV I:ICR06,#00H
;割込みレベル0(最強)
CLRB I:EN4
;ENIRでINT4を禁止
MOV
I:ELVRL,#00000010B ;INT4は,立上りエッジ選択
CLRB I:ER4
;EIRRでINT4の割込み要求フラグ
;クリア
SETB I:EN4
;ENIRでINT4の割込み要求許可
MOV
ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
LOOP:
・
ユーザ処理
・
BRA
LOOP
;---------割込みプログラム------------------------------------WARI:
CLRB
I:ER4
;割込み要求フラグをクリア
・
ユーザ処理
・
RETI
;割込み処理からの復帰
CODE
ENDS
;---------ベクタ設定-----------------------------------------VECT
CSEG ABS=0FFH
ORG
00FFC0H
;割込み番号#15(0FH)にベクタを設定
DSL
WARI
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
355
第 12 章 DTP/ 外部割込み
■ DTP 機能のプログラム例
● 処理仕様
• INT4 端子に入力される ,信号の "H" レベルを検出して拡張インテリジェント I/O サー
ビス (EI2OS) のチャネル 0 を起動します。
• DTP 処理 (EI2OS) で RAM 上のデータをポート 1 に出力します。
● コーディング例
ICR06 EQU
0000B6H
;DTP/外部割込み制御レジスタ
DDR1
EQU
000011H
;ポート1方向レジスタ
DDR5
EQU
000015H
;ポート5方向レジスタ
ENIR
EQU
000030H
;DTP/外部割込み許可レジスタ
EIRR
EQU
000031H
;DTP/外部割込み要因レジスタ
ELVRL EQU
000032H
;検出レベル設定レジスタ: L
ELVRH EQU
000033H
;検出レベル設定レジスタ: H
ER4
EQU
EIRR:0
;INT4割込み要求フラグビット
EN4
EQU
ENIR:0
;INT4割込み要求許可ビット
;
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
;データカウンタ上位
;
;---------メインプログラム------------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは初期化済みとする
MOV
I:DDR1,#11111111B ;DDR1で出力ポートに設定
MOV
I:DDR5,#00000000B ;DDR5で入力ポートに設定
AND
CCR,#0BFH
;割込み禁止
MOV
I:ICR06,#08H
;割込みレベル0(最強)EI2OS
;チャネル0
;
;データバンクレジスタ(DTB) = 00H
;
MOV
BAPL,#00H
;出力データの格納先アドレスの設定
MOV
BAPM,#06H ;(600H~60AHを使用)
MOV
BAPH,#00H
MOV
ISCS,#12H
;バイト転送,バッファアドレス+1,
;I/Oアドレス固定,
;メモリ→I/Oへ転送
MOV
IOAL,#00H
;転送先アドレスポインタとして
MOV
IOAH,#00H
;ポート1を設定
MOV
DCTL,#0AH
;転送回数を10回に設定
MOV
DCTH,#00H
;
CLRB I:EN4
;ENIRでINT4を禁止
MOV
I:ELVRL,#00010000B ;INT4は,"H"レベル検出を設定
CLRB I:ER4
;EIRRでINT4の割込み要求フラグ
;クリア
SETB I:EN4
;ENIRでINT4の割込み要求許可
MOV
ILM,#07H
;PS内ILMをレベル7に設定
OR
CCR,#40H
;割込み許可
356
第 12 章 DTP/ 外部割込み
LOOP:
・
ユーザ処理
・
BRA
LOOP
;---------割込みプログラム------------------------------------WARI:
CLRB
I:ER4
;INT4割込み要求フラグをクリア
・
ユーザ処理
・
RETI
;割込み処理からの復帰
CODE
ENDS
;---------ベクタ設定-----------------------------------------VECT
CSEG ABS=0FFH
ORG
00FF9CH
;割込み番号#24(18H)にベクタを設定
DSL
WARI
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT ENDS
END
START
357
第 12 章 DTP/ 外部割込み
358
第 13 章
8/10 ビット A/D コンバータ
この章では , 8/10 ビット A/D コンバータの機能と
動作について説明します。
13.1 8/10 ビット A/D コンバータの概要
13.2 8/10 ビット A/D コンバータのブロックダイヤグラム
13.3 8/10 ビット A/D コンバータの構成
13.4 8/10 ビット A/D コンバータの割込み
13.5 8/10 ビット A/D コンバータの動作説明
13.6 8/10 ビット A/D コンバータ使用上の注意
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
359
第 13 章 8/10 ビット A/D コンバータ
13.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータは , RC 型逐次比較変換方式によって , アナログ入力電圧
を 8 ビットまたは 10 ビットのデジタル値に変換します。
• 入力信号は , 8 チャネルのアナログ入力端子から選択します。
• 起動トリガは , ソフトウェアトリガ , 内部タイマ出力 , 外部トリガから選択できま
す。
■ 8/10 ビット A/D コンバータの機能
アナログ入力端子に入力されたアナログ電圧 ( 入力電圧 ) を 8 ビットまたは 10 ビット
のデジタル値に変換します (A/D 変換 )。
8/10 ビット A/D コンバータには以下の機能があります。
• A/D 変換時間は , サンプリング時間を含めて 1 チャネルで最小 6.12μs *です。
• サンプリング時間は , 1 チャネルで最小 2.0μs* です。
• 変換方式は , サンプル & ホールド回路付き RC 型逐次変換比較方式です。
• 8 ビットまたは 10 ビットの分解能を設定できます。
• アナログ入力端子は , 最大 8 チャネルまで使用できます。
• A/D 変換結果を A/D データレジスタに格納することにより , 割込み要求を発生でき
ます。
• 割込み要求が発生した場合に EI2OS を起動することができます。EI2OS を利用する
と , 連続して A/D 変換した場合でもデータは欠落しません。
• 起動トリガは , ソフトウェア , 内部タイマ出力 , 外部トリガ ( 立下りエッジ ) から選
択できます。
*: マシンクロック周波数 16MHz で動作している場合
■ 8/10 ビット A/D コンバータの変換モード
8/10 ビット A/D コンバータの変換モードには , 次の種類があります。
表 13.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
360
内 容
単発変換モード
開始チャネルから終了チャネルまで順次 A/D 変換を行います。終了
チャネルの A/D 変換が終了すると , A/D 変換機能を停止します。
連続変換モード
開始チャネルから終了チャネルまで順次 A/D 変換を行います。終了
チャネルの A/D 変換が終了すると , 開始チャネルに戻って A/D 変換動
作を継続します。
停止変換モード
1 チャネルごとに一時停止しながら A/D 変換を行います。終了チャネ
ルの A/D 変換が終了すると , 開始チャネルに戻って A/D 変換と一時停
止を繰り返します。
第 13 章 8/10 ビット A/D コンバータ
13.2
8/10 ビット A/D コンバータのブロックダイヤグラム
8/10 ビット A/D コンバータは , 以下のブロックで構成されています。
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 13.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
A/D制御
割込み要求出力
ステータス
レジスタ
(ADCS) BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1
MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
2
ADTG
TO
6
2
起動
セレクタ
デコーダ
内部データバス
φ
AN7
AN6
AN5
AN4
AN3
AN2
AN1
AN0
サンプル&
ホールド回路
コンパレータ
コントロール回路
アナログ
チャネル
セレクタ
AVR
AVcc
AVss
D/Aコンバータ
2
2
A/Dデータ
レジスタ
(ADCR) S10 ST1 ST0 CT1 CT0 -
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
TO :内部タイマ出力
- :未定義
予約:必ず"0"に設定してください
φ :マシンクロック
361
第 13 章 8/10 ビット A/D コンバータ
● ブロックタイヤグラム中の端子などの詳細
8/10 ビット A/D コンバータの実際の端子名および割込み要求番号を表 13.2-1 に示しま
す。
表 13.2-1 ブロックダイヤグラムの端子および割込み要求番号
ブロックダイヤグラム中の端子名 / 割込み要求番号
実際の端子名 / 割込み要求番号
ADTG
トリガ入力端子
P37/ADTG
TO
内部タイマ出力
TO (16 ビットリロードタイマ ,
16 ビットフリーランタイマ )
AN0
アナログ入力端子 ch.0
P50/AN0
AN1
アナログ入力端子 ch.1
P51/AN1
AN2
アナログ入力端子 ch.2
P52/AN2
AN3
アナログ入力端子 ch.3
P53/AN3
AN4
アナログ入力端子 ch.4
P54/AN4
AN5
アナログ入力端子 ch.5
P55/AN5
AN6
アナログ入力端子 ch.6
P56/AN6
AN7
アナログ入力端子 ch.7
P57/AN7
AVR
Vref+ 入力端子
AVR
AVCC
VCC 入力端子
AVCC
AVSS
VSS 入力端子
AVSS
割込み要求出力
#18 (12H)
● A/D 制御ステータスレジスタ (ADCS)
ソフトウェアによる A/D 変換機能の起動 , A/D 変換機能の起動トリガの選択 , 変換モー
ドの選択 , 割込み要求の許可または禁止 , 割込み要求フラグの確認とクリア , A/D 変換
動作の一時停止および変換中の状態確認, A/D変換の開始チャネルおよび終了チャネル
の設定を行います。
● A/D データレジスタ (ADCR)
A/D 変換結果を格納します。また , A/D 変換のコンペア時間 , サンプリング時間 , 分解
機能の選択を行います。
● 起動セレクタ
A/D 変換を起動するトリガを選択します。起動トリガには , 内部タイマ出力または外部
端子入力を設定できます。
362
第 13 章 8/10 ビット A/D コンバータ
● デコーダ
A/D 制御ステータスレジスタの A/D 変換開始チャネル選択ビット (ADCS: ANS2 ∼
ANS0) および A/D 変換終了チャネル選択ビット (ADCS: ANE2 ∼ ANE0) の設定から ,
A/D 変換に使用するアナログ入力端子を選択します。
● アナログチャネルセレクタ
デコーダからの信号を受けて , 8 チャネルのアナログ入力端子から A/D 変換に使用する
端子を選択します。
● サンプル & ホールド回路
アナログチャネルセレクタで選択された入力電圧を保持します。A/D 変換を開始した
直後の入力電圧を保持することによって, A/D変換中の入力電圧の変動の影響を受けず
に変換できます。
● D/A コンバータ
サンプル & ホールド回路で保持された入力電圧と比較するための , 基準電圧を発生し
ます。
● コンパレータ
サンプル & ホールド回路で保持された入力電圧と , D/A コンバータの出力電圧を比較
して電圧の大小を判定します。
● コントロール回路
コンパレータからの大小信号を受けて , A/D 変換値を決定します。変換結果が確定する
と , 変換結果のデータを A/D データレジスタに格納します。割込み要求が許可されて
いる場合は , 割込みが発生します。
363
第 13 章 8/10 ビット A/D コンバータ
13.3
8/10 ビット A/D コンバータの構成
A/D コンバータの端子 , レジスタ , 割込み要因を示します。
■ 8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子は , 汎用入出力ポートと兼用です。端子の機能 , 8/10
ビット A/D コンバータを使用する場合の設定を表 13.3-1 に示します。
表 13.3-1 8/10 ビット A/D コンバータの端子
使用する機能
<参考>
364
端子名
トリガ入力
ADTG
チャネル 0
AN0
チャネル 1
AN1
チャネル 2
AN2
チャネル 3
AN3
チャネル 4
AN4
チャネル 5
AN5
チャネル 6
AN6
チャネル 7
AN7
端子機能
8/10 ビット A/D コンバータを使用
した場合の設定
汎用入出力ポート /
外部トリガ入力
ポート方向レジスタ (DDR) で入力
ポートに設定
汎用入出力ポート /
アナログ入力
ポート方向レジスタ (DDR) で入力
ポートに設定
アナログ信号の入力許可 (ADER:
ADE7 ∼ ADE0=11111111B)
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
第 13 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータのレジスタとリセット値の一覧
図 13.3-1 8/10 ビット A/D コンバータのレジスタとリセット値の一覧
bit
A/D制御ステータスレジスタ上位
(ADCS:H)
bit
A/D制御ステータスレジスタ下位
(ADCS:L)
bit
A/Dデータレジスタ上位(ADCR:H)
bit
A/Dデータレジスタ下位(ADCR:L)
bit
アナログ入力許可レジスタ(ADER) 15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
1
0
1
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
1
1
1
1
1
1
1
1
× :不定
■ 8/10 ビット A/D コンバータでの割込みの発生
8/10 ビット A/D コンバータでは , A/D 変換結果が A/D データレジスタ (ADCR) に格納
されると , A/D 制御ステータスレジスタの割込み要求フラグビット (ADCS: INT) に "1"
がセットされます。割込み要求が許可されている場合は (ADCS: INTE=1), 割込みが発
生します。
365
第 13 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ上位 (ADCS: H)
13.3.1
A/D 制御ステータスレジスタ上位 (ADCS: H) では , 次の設定ができます。
• ソフトウェアによる A/D 変換機能の起動
• A/D 変換機能の起動トリガの選択
• A/D データレジスタへの A/D 変換結果格納による割込み要求の許可または禁止
• A/D データレジスタへの A/D 変換結果格納による割込み要求フラグの確認と
クリア
• A/D 変換動作の一時停止および変換中の状態確認
■ A/D 制御ステータスレジスタ上位 (ADCS: H)
図 13.3-2 A/D 制御ステータスレジスタ上位 (ADCS: H)
15
14
13
12
11
10
9
8
リセット値
00000000B
R/W R/W R/W R/W R/W R/W
W
R/W
bit8
予約
0
必ず"0"に設定してください
bit9
STRT
0
A/D変換機能を起動しない
1
予約ビット
A/D変換ソフトウェア起動ビット
A/D変換機能を起動する
bit11 bit10
A/D変換起動トリガ選択ビット
STS1 STS0
0 ソフトウェア起動
0
1 ソフトウェア起動または外部トリガ起動
0
0 ソフトウェア起動または内部タイマ起動
1
1
1
ソフトウェア起動,外部トリガ起動または内部タイマ起動
bit12
PAUS
0
1
bit13
INTE
0
1
一時停止フラグビット
2
(EI OSが使用されている場合のみ有効)
A/D変換動作は一時停止していない
A/D変換動作は一時停止している
割込み要求許可ビット
割込み要求の禁止
割込み要求の許可
bit14
INT
0
1
割込み要求フラグビット
リードした場合
A/D変換未終了
ライトした場合
"0"にクリア
A/D変換終了
影響なし
bit15
BUSY
R/W :リード ・ライト 可能
:リセット値
366
0
1
A/D変換動作中フラグビット
リードした場合
ライトした場合
A/D変換終了(非起動状態) A/D変換機能の強制終了
A/D変換動作中
影響なし
第 13 章 8/10 ビット A/D コンバータ
表 13.3-2 A/D 制御ステータスレジスタ上位 (ADCS: H) の機能 (1 / 2)
ビット名
機 能
bit15
BUSY:
A/D 変換動作中フラグ
ビット
8/10 ビット A/D コンバータを強制終了します。リードし
た場合は , 8/10 ビット A/D コンバータが動作中か停止中か
を示します。
"0" に設定した場合 : 8/10 ビット A/D コンバータを強制終
了します。
"1" に設定した場合 : 影響しません。
リードした場合 : 8/10 ビット A/D コンバータが動作中であ
れば "1" が , 停止中であれば "0" が読み
出されます。
( 注意事項 )
8/10 ビット A/D コンバータの強制終了 (BUSY=0) とソ
フトウェア起動 (STRT=1) は同時に行わないでくださ
い。
bit14
INT:
割込み要求フラグ
ビット
割込み要求が発生したことを示します。
• A/D 変換が終了して , A/D 変換結果が A/D データレジ
スタ (ADCR) に格納されると INT ビットに "1" がセッ
トされます。
• 割込み要求を許可した場合に (INTE=1), 割込み要求フラ
グビットがセットされると (INT=1), 割込み要求が発生
します。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
EI2OS 機能が起動した場合 : クリアされます。
( 注意事項 )
INT ビットをクリアする場合は , 8/10 ビット A/D コン
バータの動作が停止している状態で , "0" を書き込んで
ください。
bit13
INTE:
割込み要求許可ビッ
ト
割込み要求の出力を許可または禁止します。
• 割込み要求を許可した場合に (INTE=1), 割込み要求フラ
グビットがセットされると (INTE=1), 割込み要求が発生
します。
( 注意事項 )
EI2OS 機能を使用している場合は , 必ず "1" に設定して
ください。
bit12
PAUS:
一時停止フラグビッ
ト
EI2OS 機能を使用している場合に , A/D 変換の動作状態を
示します。
• PAUS ビットは , EI2OS 機能を使用している場合のみ有
効です。
• A/D 変換結果が A/D データレジスタ (ADCR) からメモ
リに転送されている間は A/D 変換動作が一時停止しま
す。A/D 変換動作が一時停止すると PAUS ビットに "1"
がセットされます。
• A/D 変換結果のメモリへの転送が終了すると , 8/10 ビッ
ト A/D コンバータは自動的に A/D 変換動作を再開され
ます。A/D 変換動作が開始されると PAUS ビットは "0"
にクリアされます。
367
第 13 章 8/10 ビット A/D コンバータ
表 13.3-2 A/D 制御ステータスレジスタ上位 (ADCS: H) の機能 (2 / 2)
ビット名
bit11
bit10
STS1, STS0:
A/D 変換起動トリガ
選択ビット
機 能
8/10 ビット A/D コンバータを起動するトリガを選択しま
す。
起動トリガを複数に設定した場合 (STS1, STS0=00B 以外 ),
8/10 ビット A/D コンバータは最初に発生した起動トリガ
で起動します。
( 注意事項 )
起動トリガの設定を変更する場合は , 起動トリガを発
生させる周辺機能の動作が停止している状態で設定し
てください。
368
bit9
STRT:
A/D 変換ソフトウェア
起動ビット
8/10 ビット A/D コンバータをソフトウェアで起動します。
"1" に設定した場合 : 8/10 ビット A/D コンバータが起動し
ます。
• 停止変換モードで A/D 変換動作が一時停止している場
合は , STRT ビットに "1" を書き込むことによって A/D
変換動作を再開します。
"0" に設定した場合 : 無効です。変化しません。
リードした場合 : バイト / ワード命令では "1" が読み出さ
れます。リードモディファイライト
(RMW) 系命令では "0" が読み出されま
す。
( 注意事項 )
8/10 ビット A/D コンバータの強制終了 (BUSY=0) とソ
フトウェア起動 (STRT=1) は同時に行わないでくださ
い。
bit8
予約 : 予約ビット
必ず "0" に設定してください。
第 13 章 8/10 ビット A/D コンバータ
A/D 制御ステータスレジスタ下位 (ADCS: L)
13.3.2
A/D 制御ステータスレジスタ下位 (ADCS: L) では , 次の設定ができます。
• A/D 変換モードの選択
• A/D 変換の開始チャネルおよび終了チャネルの選択
■ A/D 制御ステータスレジスタ下位 (ADCS: L)
図 13.3-3 A/D 制御ステータスレジスタ下位 (ADCS: L)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W
R/W R/W R/W R/W R/W R/W
bit2 bit1 bit0
ANE2 ANE1 ANE0
0
0
0
0
1
0
1
0
0
1
1
0
0
0
1
0
1
1
1
0
1
1
1
1
A/D変換終了チャネル選択ビット
AN0端子
AN1端子
AN2端子
AN3端子
AN4端子
AN5端子
AN6端子
AN7端子
bit5 bit4 bit3
A/D変換開始チャネル選択ビット
ANS2
ANS1
ANS0
非起動状態
0
0
0
0
1
1
1
1
R/W
:リード・ライト 可能
:リセット値
0
0
1
1
0
0
1
1
bit7 bit6
MD1 MD0
0
0
1
0
0
1
1
1
0
1
0
1
0
1
0
1
AN0端子
AN1端子
AN2端子
AN3端子
AN4端子
AN5端子
AN6端子
AN7端子
変換中の
読出し
変換中の
チャネル
番号
停止変換モード
で一時停止中の
読出し
直前に
変換した
チャネル
番号
A/D変換モード選択ビット
単発変換モード1(動作中の再起動可能)
単発変換モード2(動作中の再起動不可)
連続変換モード(動作中の再起動不可)
停止変換モード(動作中の再起動不可)
369
第 13 章 8/10 ビット A/D コンバータ
表 13.3-3 A/D 制御ステータスレジスタ下位 (ADCS: L) の機能 (1 / 3)
ビット名
bit7
bit6
MD1, MD0:
A/D 変換モード選択
ビット
機 能
A/D 変換の変換モードを設定します。
単発変換モード 1 の場合 :
• 開始チャネル (ADCS: ANS2 ∼ ANS0) から終了チャネル
(ADCS: ANE2 ∼ ANE0) までのアナログ入力を連続して A/
D 変換していきます。
• 終了チャネルの A/D 変換が終了すると , A/D 変換動作を停
止します。 • A/D 変換中の再起動ができます。
単発変換モード 2 の場合 :
• 開始チャネル (ADCS: ANS2 ∼ ANS0) から終了チャネル
(ADCS: ANE2 ∼ ANE0) までのアナログ入力を連続して
A/D 変換していきます。
• 終了チャネルの A/D 変換が終了すると , A/D 変換動作を停
止します。
• A/D 変換中の再起動はできません。
連続変換モードの場合 :
• 開始チャネル (ADCS: ANS2 ∼ ANS0) から終了チャネル
(ADCS: ANE2 ∼ ANE0) までのアナログ入力を連続して
A/D 変換していきます。
• 終了チャネルの A/D 変換が終了すると , 開始チャネルの
アナログ入力に戻って A/D 変換を継続して行います。
• A/D 変換動作を強制終了するには , A/D 制御ステータス
レジスタの A/D 変換動作中フラグビット (ADCS: BUSY)
に "0" を書き込みます。
• A/D 変換中の再起動はできません。
停止変換モードの場合 : • 開始チャネル (ADCS: ANS2 ∼ ANS0) の A/D 変換が開始
されます。1 チャネルの A/D 変換が終了すると , A/D 変換
動作は停止します。A/D 変換動作が停止している間に起
動トリガを入力すると , 次のチャネルの A/D 変換が行わ
れます。
• 終了チャネルの A/D 変換が終了すると , A/D 変換動作は停
止します。A/D 変換動作が停止している間に起動トリガ
を入力すると , 開始チャネルのアナログ入力に戻って A/D
変換を継続します。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレ
ジスタの A/D 変換動作中フラグビット (ADCS: BUSY) に
"0" を書き込みます。
• A/D 変換中の再起動はできません。
( 注意事項 )
変換モードを再起動不可に設定すると (MD1, MD0=00B
以外 ), すべての起動トリガ ( ソフトウェア , 内部タイマ ,
外部トリガ ) において変換中の再起動はできません。
370
第 13 章 8/10 ビット A/D コンバータ
表 13.3-3 A/D 制御ステータスレジスタ下位 (ADCS: L) の機能 (2 / 3)
ビット名
bit5
∼
bit3
ANS2 ∼ ANS0:
A/D 変換開始
チャネル選択ビット
機 能
A/D 変換を開始するチャネルを設定します。リードした場合
は , A/D 変換中または一時停止直前に A/D 変換したチャネル
番号を確認できます。
また , 値を設定した場合でも , A/D 変換が開始されるまでは ,
設定した値ではなく , 前回に A/D 変換したチャネル番号が読
み出されます。リセット時は "000B" に初期化されます。
開始チャネル < 終了チャネルの場合 :
A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設
定されたチャネルから A/D 変換を開始し , A/D 変換終了
チャネル選択ビット (ANE2 ∼ ANE0) で設定されたチャ
ネルで A/D 変換を終了します。
開始チャネル = 終了チャネルの場合 :
A/D 変換開始 (= 終了 ) チャネル選択ビット (ANS2 ∼
ANS0=ANE2 ∼ ANE0) で設定された 1 チャネルのみ
A/D 変換を行います。
開始チャネル > 終了チャネルの場合 :
A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設
定されたチャネルから AN7 まで A/D 変換を行って ,
さらに AN0 から A/D 変換終了チャネル選択ビット
(ANE2 ∼ ANE0) で設定されたチャネルまで A/D 変換を
行います。
連続変換モード , 停止変換モードの場合 :
A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) に設
定されたチャネルで A/D 変換が終了すると , A/D 変換開
始チャネル選択ビット (ANS2 ∼ ANS0) で設定された
チャネルに戻ります。
リードした場合 (A/D 変換中 ):
A/D 変換中のチャネル番号 (7 ∼ 0) が読み出されます。
リードした場合 ( 停止変換モードで一時停止中 ):
一時停止中にリードすると , 一時停止直前に A/D 変換し
たチャネル番号が読み出されます。
( 注意事項 )
• A/D 変換中は , A/D 変換開始チャネルビット (ANS2 ∼
ANS0) の設定は行わないでください。
• A/D 変換開始チャネル選択ビット (ANS2, ANS1, ANS0)
に開始チャネルを設定したあとに , 本レジスタのビッ
トをリードモディファイライト系命令で設定しないで
ください。ANS2, ANS1, ANS0 ビットは A/D 変換動作
が開始するまでは前回の変換チャネルが読み出される
ため , ANS2, ANS1, ANS0 ビットに開始チャネルを設
定したあとに , 本レジスタのビットをリードモディ
ファイライト (RMW) 系命令で設定した場合 , ANE2,
ANE1, ANE0 ビットの値が書き換わる可能性がありま
す。
371
第 13 章 8/10 ビット A/D コンバータ
表 13.3-3 A/D 制御ステータスレジスタ下位 (ADCS: L) の機能 (3 / 3)
ビット名
bit2
∼
bit0
372
ANE2 ∼ ANE0:
A/D 変換終了
チャネル選択ビット
機 能
A/D 変換を終了するチャネルを設定します。
開始チャネル < 終了チャネルの場合 :
A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定
されたチャネルから A/D 変換を開始し , A/D 変換終了
チャネル選択ビット (ANE2 ∼ ANE0) で設定されたチャ
ネルで A/D 変換を終了します。
開始チャネル = 終了チャネルの場合 :
A/D 変換終了 (= 開始 ) チャネル選択ビット (ANE2 ∼
ANE0=ANS2 ∼ ANS0) で設定された 1 チャネルのみ A/D
変換を行います。
開始チャネル > 終了チャネルの場合 :
A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設
定されたチャネルから AN7 まで A/D 変換を行い , さら
に AN0 から A/D 変換終了チャネル選択ビット (ANE2 ∼
ANE0) で設定されたチャネルまで A/D 変換を行います。
連続変換モード , 停止変換モードの場合 :
A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) に設
定されたチャネルで A/D 変換が終了すると , A/D 変換開
始チャネル選択ビット (ANS2 ∼ ANS0) で設定された
チャネルに戻ります。
( 注意事項 )
A/D 変換中は , A/D 変換終了チャネルビット (ANE2 ∼
ANE0) の設定は行わないでください。
第 13 章 8/10 ビット A/D コンバータ
A/D データレジスタ上位 (ADCR: H)
13.3.3
A/D データレジスタ上位 (ADCR: H) 5 ビットでは , A/D 変換のコンペア時間 , サンプ
リング時間 , 分解能の選択を行います。
なお , A/D データレジスタ (ADCR) のビット 9, ビット 8 については , AD データレジ
スタ下位 (ADCR:L) で説明します。
■ A/D データレジスタ上位 (ADCR: H)
図 13.3-4 A/D データレジスタ上位 (ADCR: H)
15
14
13
12
11
10
9
8
リセット値
*1 *1
W
W
W
W
W
-
R
00101XXXB
R
bit12 bit11
CT1 CT0
0
0
1
0
0
1
1
1
bit14 bit13
ST1 ST0
0
0
1
1
R
W
X
-
φ
:リードオンリ
:ライトオンリ
:不定
:未定義
:マシンクロック
:リセット値
0
1
0
1
コンペア時間選択ビット
44/φ(5.5μs)*2
66/φ(4.12μs)*3
88/φ(5.5μs)*3
176/φ(11.0μs)*3
サンプリング時間選択ビット
20/φ(2.5μs)*2
32/φ(2.0μs)*3
48/φ(3.0μs)*3
128/φ(8.0μs)*3
bit15
分解能選択ビット
S10
10ビット(D9~D0)
0
8ビット(D7~D0)
1
*1:bit8,bit9については,A/Dデータレジスタ下位(ADCR:L) で説明します
*2:( )内はφ=8MHzで動作している場合の値
*3:( )内はφ=16MHzで動作している場合の値
373
第 13 章 8/10 ビット A/D コンバータ
表 13.3-4 A/D データレジスタ上位 (ADCR: H) の機能
ビット名
機 能
bit15
S10:
分解能選択ビット
A/D 変換の分解能を設定します。
"0" に設定した場合 : A/D 変換の分解能を A/D 変換デー
タビット D9 ∼ D0 までの 10 ビット
に設定します。
"1" に設定した場合 : A/D 変換の分解能を A/D 変換デー
タビット D7 ∼ D0 までの 8 ビット
に設定します。
( 注意事項 )
S10 ビットを変更する場合は , A/D 変換を開始する前
の停止状態で行ってください。A/D 変換後に S10 ビッ
トを変更すると , A/D 変換データビット (D9 ∼ D0) に
格納された変換結果は無効になります。
bit14
bit13
ST1, ST0:
サンプリング時間選択
ビット
A/D 変換のサンプリング時間を設定します。
• A/D 変換を開始してから , 入力されたアナログ電圧が
サンプル & ホールド回路でサンプリングされ , 保持さ
れるまでの時間を設定します。
( 注意事項 )
ST1, ST0=00B は 8MHz で動作している場合の設定で
す。16MHz で動作している場合に設定した場合 , 正常
な動作は保証できません。本ビットをリードすると
"00B" が読み出されます。
bit12
bit11
CT1, CT0:
コンペア時間選択
ビット
A/D 変換のコンペア時間 ( 比較時間 ) を設定します。
• アナログ入力を A/D 変換してデータビット (D9 ∼ D0)
に格納するまでの時間を設定します。
( 注意事項 )
CT1, CT0=00B は 8MHz で動作している場合の設定で
す。16MHz で動作している場合に設定した場合 , 正常
な動作は保証できません。本ビットをリードすると
"00B" が読み出されます。
374
第 13 章 8/10 ビット A/D コンバータ
13.3.4
A/D データレジスタ下位 (ADCR: L)
A/D データレジスタ下位 (ADCR:L) では , A/D 変換結果を格納します。
なお , A/D データレジスタ (ADCR) のビット 8, ビット 9 についても , ここで説明し
ます。
■ A/D データレジスタ下位 (ADCR: L)
図 13.3-5 A/D データレジスタ下位 (ADCR: L)
bit9
8
7
6
5
4
3
2
1
0
D9
D8
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
R
R
リセット値
XXXXXXXXB
R :リードオンリ
X :不定
表 13.3-5 A/D データレジスタ下位 (ADCR: L) の機能
ビット名
bit9
∼
bit0
D9 ∼ D0:
A/D 変換データビット
機 能
A/D 変換の結果を格納します。
分解能を 10 ビットに設定した場合 (S10=0):
変換データは D9 ∼ D0 までの 10 ビットに格納され
ます。
分解能を 8 ビットに設定した場合 (S10=1):
変換データは D7 ∼ D0 までの 8 ビットに格納されま
す。
( 注意事項 )
A/D 変換データビット (D9 ∼ D0) に格納された変換結
果を読み出す場合は , ワード命令 (MOVW) を使用し
てください。
375
第 13 章 8/10 ビット A/D コンバータ
アナログ入力許可レジスタ (ADER)
13.3.5
8/10 ビット A/D コンバータで使用するアナログ入力端子を許可または禁止します。
■ アナログ入力許可レジスタ (ADER)
図 13.3-6 アナログ入力許可レジスタ (ADER)
7
6
5
4
3
2
1
0
リセット値
11111111B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
ANE0
0
1
bit1
ANE1
0
1
bit2
ANE2
0
1
bit3
ANE3
0
1
bit4
ANE4
0
1
bit5
ANE5
0
1
bit6
ANE6
0
1
R/W
376
:リード ・ライト 可能
:リセット値
bit7
ANE7
0
1
アナログ入力許可ビット0(AN0)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット1(AN1)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット2(AN2)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット3(AN3)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット4(AN4)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット5(AN5)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット6(AN6)
アナログ入力を禁止する
アナログ入力を許可する
アナログ入力許可ビット7(AN7)
アナログ入力を禁止する
アナログ入力を許可する
第 13 章 8/10 ビット A/D コンバータ
表 13.3-6 アナログ入力許可レジスタ (ADER) の機能
ビット名
bit7
∼
bit0
<注意事項>
ADE7 ∼ ADE0:
アナログ入力許可
ビット
機 能
A/D 変換に使用する端子のアナログ入力を許可または禁
止します。
"0" に設定した場合 : アナログ入力を禁止します。
"1" に設定した場合 : アナログ入力を許可します。
• アナログ入力端子は , ポート 5 の汎用入出力ポートと兼用になっています。アナ
ログ入力端子として使用する場合は , ポート 5 方向レジスタ (DDR5) とアナログ
入力許可レジスタ (ADER) の設定によってアナログ入力端子に切り替えてくださ
い。
• アナログ入力端子として使用する場合は , 使用する端子に対応するポート 5 方向
レジスタのビットに "0" を書き込んで出力トランジスタをオフにしてください。
また , 使用する端子に対応するアナログ入力許可レジスタ (ADER) のビットに
"1" を書き込んで , アナログ入力に設定してください。
377
第 13 章 8/10 ビット A/D コンバータ
13.4
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータでは , A/D 変換が終了して変換結果が A/D データレジス
タ (ADCR) に格納されると , 割込み要求が発生します。拡張インテリジェント I/O
サービス機能 (EI2OS) が利用できます。
■ A/D コンバータの割込み
アナログ入力電圧の A/D 変換が終了して , A/D 変換結果が A/D データレジスタ (ADCR)
に格納されると , A/D 制御ステータスレジスタの割込み要求フラグビット (ADCS: INT)
に "1" がセットされます。割込み要求の出力が許可されている場合に (ADCS: INTE=1),
割込み要求フラグビットがセットされると (ADCS: INT=1), 割込み要求が発生します。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
<参考>
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込
み」を参照してください。
■ 8/10 ビット A/D コンバータの EI2OS 機能
8/10 ビット A/D コンバータでは , EI2OS 機能を使用して , A/D 変換結果を A/D データ
レジスタ (ADCR) からメモリに転送することができます。EI2OS 機能を使用した場合
は , A/D 変換データ保護機能が働き , メモリ転送している間 , A/D 変換動作は一時停止
します。A/D 変換データ保護機能により , 連続して A/D 変換を行った場合のデータの
欠落を防止することができます。
378
第 13 章 8/10 ビット A/D コンバータ
13.5
8/10 ビット A/D コンバータの動作説明
8/10 ビット A/D コンバータの A/D 変換動作には , 次の変換モードがあります。A/D
制御ステータスレジスタの A/D 変換モード選択ビット (ADCS: MD1, MD0) の設定に
よって , 各モードを設定します。
• 単発変換モード (A/D 変換中の再起動可 / 再起動不可 )
• 連続変換モード (A/D 変換中の再起動不可 )
• 停止変換モード (A/D 変換中の再起動不可 )
■ 単発変換モード (ADCS: MD1, MD0=00B または 01B)
• 起動トリガを入力すると , 開始チャネル (ADCS: ANS2 ∼ ANS0) から終了チャネル
(ADCS: ANE2 ∼ ANE0) までのアナログ入力を連続して A/D 変換していきます。
• 終了チャネルの A/D 変換が終了すると , A/D 変換動作を停止します。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
• A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の再
起動ができます。"01B" に設定した場合は , A/D 変換中の再起動はできません。
■ 連続変換モード (ADCS: MD1, MD0=10B)
• 起動トリガを入力すると , 開始チャネル (ADCS: ANS2 ∼ ANS0) から終了チャネル
(ADCS: ANE2 ∼ ANE0) までのアナログ入力を連続して A/D 変換していきます。
• 終了チャネルの A/D 変換が終了すると , 開始チャネルのアナログ入力に戻って A/D
変換を継続して行います。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
• A/D 変換中の再起動はできません。
■ 停止変換モード (ADCS: MD1, MD0=11B)
• 起動トリガを入力すると , 開始チャネル (ADCS: ANS2 ∼ ANS0) の A/D 変換が開始
されます。1 チャネルの A/D 変換が終了すると , A/D 変換動作は停止します。A/D
変換動作が停止している間に起動トリガを入力すると , 次のチャネルの A/D 変換が
行われます。
• 終了チャネルの A/D 変換が終了すると , A/D 変換動作は停止します。A/D 変換動作
が停止している間に起動トリガを入力すると , 開始チャネルのアナログ入力に戻っ
て A/D 変換を継続します。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
• A/D 変換中の再起動はできません。
379
第 13 章 8/10 ビット A/D コンバータ
単発変換モード
13.5.1
単発変換モードでは , 開始チャネルから終了チャネルまで順次 A/D 変換を行います。
終了チャネルの A/D 変換が終了すると , A/D 変換動作を停止します。
■ 単発変換モードの設定
8/10 ビット A/D コンバータを単発変換モードで動作させるには , 図 13.5-1 の設定が必
要です。
図 13.5-1 単発変換モードの設定
bit15 14
13
12
11
10
9 bit8bit7 6
5
4
3
2
1 bit0
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
ADCS
◎ ◎
ADCR
◎
◎
◎
◎
◎
0
0
S10 ST1 ST0 CT1 CT0 -
◎
◎
◎
◎
◎
◎
◎
◎
◎
◎
◎
D9~D0(変換結果を保持)
◎
ADER
○
-
◎
○
0
○
○
○
○
○
○
○
:未定義
:使用ビット
:アナログ入力端子として使用する端子に対応するビットに"1"を設定
:"0"を設定
■ 単発変換モードの動作
• 起動トリガを入力すると ,A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定
されたチャネルから A/D 変換を開始し ,A/D 変換終了チャネル選択ビット (ANE2 ∼
ANE0) で設定されたチャネルまで連続して A/D 変換を行います。
• A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) で設定されたチャネルの A/D 変
換が終了すると , A/D 変換動作を停止します。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
•
A/D 変換モード選択ビット (MD1, MD0) を "00B" に設定した場合は , A/D 変換中の
再起動ができます。"01B" に設定した場合は , A/D 変換中の再起動はできません。
[ 開始チャネルと終了チャネルが同じ場合 ]
• 開始チャネルと終了チャネルを同じチャネル番号に設定した場合は (ADCS:ANS2 ∼
ANS0=ADCS:ANE2 ∼ ANE0), 開始チャネル (= 終了チャネル ) として設定した 1 チャ
ネルだけを 1 回だけ A/D 変換して終了します。
380
第 13 章 8/10 ビット A/D コンバータ
[ 単発変換モードでの変換順序 ]
単発変換モードでの変換順序の例を表 13.5-1 に示します。
表 13.5-1 単発変換モードでの変換順序
開始チャネル
終了チャネル
単発変換モードでの変換順序
AN0 端子
(ADCS: ANS=000B)
AN3 端子
(ADCS: ANE=011B)
AN0 → AN1 → AN2 → AN3 →終了
AN6 端子
(ADCS: ANS=110B)
AN2 端子
(ADCS: ANE=010B)
AN6 → AN7 → AN0 → AN1 → AN2 →
終了
AN3 端子
(ADCS: ANS=011B)
AN3 端子
(ADCS: ANE=011B)
AN3 →終了
381
第 13 章 8/10 ビット A/D コンバータ
連続変換モード
13.5.2
連続変換モードでは , 開始チャネルから終了チャネルまで順次 A/D 変換を行います。
終了チャネルの A/D 変換が終了すると , 開始チャネルに戻って A/D 変換動作を継続
します。
■ 連続変換モードの設定
8/10 ビット A/D コンバータを連続変換モードで動作させるには , 図 13.5-2 の設定が必
要です。
図 13.5-2 連続変換モードの設定
bit15 14
ADCS
12
11
10
9 bit8bit7 6
5
4
3
2
1 bit0
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
◎ ◎
ADCR
13
◎
◎
◎
◎
◎
0
1
S10 ST1 ST0 CT1 CT0 -
◎
◎
◎
◎
0
◎
◎
◎
◎
◎
◎
D9~D0(変換結果を保持)
◎
ADER
-
◎
○
1
0
○ ○ ○ ○ ○
:未定義
:使用ビット
:アナログ入力端子として使用する端子に対応するビットに"1"を設定
:"1"を設定
:"0"を設定
○
○
○
■ 連続変換モードの動作
• 起動トリガを入力すると ,A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定
されたチャネルから A/D 変換を開始し ,A/D 変換終了チャネル選択ビット (ANE2 ∼
ANE0) で設定されたチャネルまで連続して A/D 変換を行います。
• A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) で設定されたチャネルの A/D 変
換が終了すると , A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定された
チャネルに戻って A/D 変換を継続します。
• A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
• A/D 変換中の再起動はできません。
[ 開始チャネルと終了チャネルが同じ場合 ]
• 開始チャネルと終了チャネルを同じチャネルに設定した場合は (ADCS: ANS2 ∼
ANS0=ADCS: ANE2 ∼ ANE0), 開始チャネル (= 終了チャネル ) として設定した 1 チャ
ネルの A/D 変換を繰り返して行います。
382
第 13 章 8/10 ビット A/D コンバータ
[ 連続変換モードでの変換順序 ]
連続変換モードでの変換順序の例を表 13.5-2 に示します。
表 13.5-2 連続変換モードでの変換順序
開始チャネル
終了チャネル
連続変換モードでの変換順序
AN0 端子
(ADCS: ANS=000B)
AN3 端子
(ADCS: ANE=011B)
AN0 → AN1 → AN2 → AN3 → AN0 →
繰返し
AN6 端子
(ADCS: ANS=110B)
AN2 端子
(ADCS: ANE=010B)
AN6 → AN7 → AN0 → AN1 → AN2 →
AN6 →繰返し
AN3 端子
(ADCS: ANS=011B)
AN3 端子
(ADCS: ANE=011B)
AN3 → AN3 →繰返し
383
第 13 章 8/10 ビット A/D コンバータ
停止変換モード
13.5.3
停止変換モードでは , 1 チャネルごとに停止と起動をくり返しながら A/D 変換を行
います。終了チャネルの A/D 変換が終了して A/D 変換動作が停止した後 , 起動トリ
ガを入力すると開始チャネルに戻って A/D 変換を継続します。
■ 停止変換モードの設定
8/10 ビット A/D コンバータを停止変換モードで動作させるには , 図 13.5-3 の設定が必
要です。
図 13.5-3 停止変換モードの設定
bit15 14
13
12
11
10
9 bit8bit7 6
5
4
3
2
1 bit0
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS2 ANS1 ANS0 ANE2 ANE1 ANE0
ADCS
◎ ◎
ADCR
◎
◎
◎
◎
◎
S10 ST1 ST0 CT1 CT0 -
◎
◎
◎
◎
0
1
1
◎
◎
◎
◎
◎
◎
D9~D0(変換結果を保持)
◎
ADER
-
◎
○
1
0
○ ○ ○ ○ ○
:未定義
:使用ビット
:アナログ入力端子として使用する端子に対応するビットに"1"を設定
:"1"を設定
:"0"を設定
○
○
○
■ 停止変換モードの動作
• 起動トリガを入力すると , A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定
されたチャネルから A/D 変換を開始します。1 チャネルの A/D 変換が終了すると
A/D 変換動作は停止します。A/D 変換動作が停止している間に起動トリガを入力す
ると , 次のチャネルの A/D 変換を行います。
•
A/D 変換終了チャネル選択ビット (ANE2 ∼ ANE0) で設定されたチャネルの A/D 変
換が終了すると , A/D 変換動作は停止します。A/D 変換動作が停止している間に起
動トリガを入力すると , A/D 変換開始チャネル選択ビット (ANS2 ∼ ANS0) で設定さ
れたチャネルに戻って A/D 変換を継続します。
•
A/D 変換動作が停止している場合の再起動は , A/D 制御ステータスレジスタの A/D
起動トリガ選択ビット (ADCS: STS1, STS0)で設定した起動トリガの入力によって行
われます。
•
A/D 変換動作を強制終了するには , A/D 制御ステータスレジスタの A/D 変換動作中
フラグビット (ADCS: BUSY) に "0" を書き込みます。
•
384
A/D 変換中の再起動はできません
第 13 章 8/10 ビット A/D コンバータ
[ 開始チャネルと終了チャネルが同じ場合 ]
• 開始チャネルと終了チャネルを同じチャネルに設定した場合は
(ADCS:ANS2
∼
ANS0=ADCS: ANE2 ∼ ANE0), 開始チャネル (= 終了チャネル ) として設定した 1 チャ
ネルの A/D 変換と一時停止を繰り返します。
[ 停止変換モードでの変換順序 ]
停止変換モードでの変換順序の例を表 13.5-3 に示します。
表 13.5-3 停止変換モードでの変換順序
開始チャネル
終了チャネル
単発変換モードでの変換順序
AN0 端子
(ADCS: ANS=000B)
AN3 端子
(ADCS: ANE=011B)
AN0 →停止・起動→ AN1 →停止・起動
→ AN2 →停止・起動→ AN3 →停止・
起動→ AN0 →繰返し
AN6 端子
(ADCS: ANS=110B)
AN2 端子
(ADCS: ANE=010B)
AN6 →停止・起動→ AN7 →停止・起動
→ AN0 →停止・起動→ AN1 →停止・
起動→ AN2 →停止・起動→ AN6 →繰
返し
AN3 端子
(ADCS: ANS=011B)
AN3 端子
(ADCS: ANE=011B)
AN3 →停止・起動→ AN3 →停止・起動
→繰返し
385
第 13 章 8/10 ビット A/D コンバータ
13.5.4
EI2OS 機能を使用した変換動作
8/10 ビット A/D コンバータでは , EI2OS 機能を使用して , A/D 変換結果をメモリに
転送することができます。
■ EI2OS を使用した変換動作
EI2OS 機能を利用すると , 変換データの保護機能によって , 連続して A/D 変換した場合
でも変換データが欠落することはなく,複数のデータを確実にメモリに転送することが
できます。
EI2OS を使用した場合の変換動作のフローを図 13.5-4 に示します。
図 13.5-4 EI2OS を使用した場合の変換動作のフロー
A/Dコンバータ起動
サンプル&ホールド
A/D変換開始
A/D変換終了
割込み発生
EI2OS起動
変換結果転送
指定回数終了か*
NO
割込みクリア
YES
割込み処理
*:EI2OSの設定で決定されます。
386
第 13 章 8/10 ビット A/D コンバータ
13.5.5
A/D 変換データ保護機能
割込み要求の出力を許可した状態で A/D 変換を実行すると , データ保護機能が働き
ます。
■ 8/10 ビット A/D コンバータの A/D 変換データ保護機能
8/10ビットA/Dコンバータには, A/D変換データを格納するA/Dデータレジスタ(ADCR)
が 1 つしかないので , A/D 変換が終了して変換結果が確定されると A/D データレジス
タ内のデータを書き換えることになります。したがって , A/D データレジスタが書き換
えられる前にすでに格納されている変換結果の取込みが間に合わないと,変換結果を取
りこぼしてしまうおそれがあります。8/10 ビット A/D コンバータでは , データの取り
こぼしを防止するために , 割込み要求が許可されている場合に (ADCS: INTE=1), 割込み
要求が発生すると (ADCS: INT=1) 自動的に A/D 変換動作を一時停止するデータ保護機
能が働きます。
● EI2OS を使用しない場合の A/D 変換データ保護機能
• アナログ入力が A/D 変換された後 , A/D 変換結果が A/D データレジスタ (ADCR) に
格納されると, A/D制御ステータスレジスタの割込み要求フラグビット(ADCS: INT)
に "1" がセットされます。
•
割込み要求フラグビット (ADCS: INT) がセットされている間 , A/D 変換動作はデー
タ保護のため停止します。
• A/D 制御ステータスレジスタの割込み要求が許可されている場合は (ADCS: INTE=1),
INT ビットがセットされると割込み要求が発生します。発生した割込み処理で INT
ビットをクリアすると , A/D 変換動作の停止が解除されます。
● EI2OS を使用した場合の A/D 変換データ保護機能
• EI2OS 機能を利用して , A/D 変換後 , A/D 変換結果を A/D データレジスタからメモ
リに転送している間は , データ保護のため A/D 変換動作は停止します。A/D 変換動
作が停止すると , A/D 制御ステータスレジスタの一時停止フラグビット (ADCS:
PAUS) に "1" がセットされます。
•
EI2OS 機能による A/D 変換結果のメモリ転送が終了すると , A/D 変換の停止状態が
解除され , 一時停止フラグビット (ADCS: PAUS) は "0" にクリアされます。連続して
A/D 変換を行っている場合は , A/D 変換動作が再開されます。
387
第 13 章 8/10 ビット A/D コンバータ
● EI2OS を使用した場合の A/D 変換データ保護機能の処理フロー
EI2OSを使用した場合のA/D変換データ保護機能の処理フローを,図 13.5-5 に示します。
図 13.5-5 EI2OS を使用した場合の A/D 変換データ保護機能の処理フロー
EI2OS設定
A/D連続変換起動
1回変換終了
A/Dデータレジスタに格納
EI2OS起動
2回変換終了
EI2OS終了
NO
A/D一時停止
YES
A/Dデータレジスタに格納
3回目変換
EI2OS起動
続く
すべて変換終了
EI2OS起動
割込み処理
A/D変換停止
終了
(注意事項) A/Dコンバータ動作停止時のフローは省略
388
第 13 章 8/10 ビット A/D コンバータ
<注意事項>
• A/D 変換データ保護機能は , 割込み要求が許可されている状態でなければ動作し
ません。A/D 制御ステータスレジスタの割込み要求出力許可ビット (ADCS:
INTE) に "1" を設定してください。
• EI2OS 機能によって A/D 変換結果がメモリ転送されている場合に割込み要求の
出力を禁止しないでください。A/D 変換停止中に割込み要求の出力を禁止する
と (ADCS: INTE=0), A/D 変換が開始され , 転送中のデータが書き換えられてし
まうおそれがあります。
• EI2OS 機能によって A/D 変換結果がメモリ転送されている場合に再起動をかけ
ないでください。A/D 変換停止中に再起動をかけると , 変換結果が壊れるおそれ
があります。
389
第 13 章 8/10 ビット A/D コンバータ
13.6
8/10 ビット A/D コンバータ使用上の注意
8/10 ビット A/D コンバータを使用する場合は , 次の点に注意してください。
■ 8/10 ビット A/D コンバータ使用上の注意
● アナログ入力端子について
• アナログ入力端子は , ポート 5 の汎用入出力ポートと兼用になっています。アナロ
グ入力端子として使用する場合は , ポート 5 方向レジスタ (DDR5) とアナログ入力
許可レジスタ (ADER) の設定によってアナログ入力端子に切り替えてください。
•
アナログ入力端子として使用する場合は , 使用する端子に対応するポート 5 方向レ
ジスタのビットに "0" を書き込んで出力トランジスタをオフにしてください。また ,
使用する端子に対応するアナログ入力許可レジスタ (ADER) のビットに "1" を書き
込んで , アナログ入力許可に設定してください。
•
汎用入出力ポートに設定したままで中間レベルの信号が入力されると , ゲートに入
力リーク電流が流れます。アナログ入力端子として使用する場合は , 必ずアナログ
入力許可に設定して使用してください。
● 内部タイマまたは外部トリガで起動する場合の注意
• 8/10 ビット A/D コンバータを内部タイマ出力または外部トリガで起動する場合の入
力値は , インアクティブ側 ( 外部トリガの場合は "H" 側 ) に設定してください。起動
トリガの入力値をアクティブ側に設定しておくと , A/D 制御ステータスレジスタの
A/D 起動トリガ選択ビット (ADCS: STS1, STS0) の設定と同時に動作を開始するおそ
れがあります。
● 8/10 ビット A/D コンバータの電源・アナログ入力の投入順序
• A/D コンバータ , アナログ入力 (AN0 ∼ AN7 端子 ) の印加は , 必ずデジタル電源 (VCC)
の投入後に行ってください。
• 電源切断時は A/D コンバータの電源およびアナログ入力の遮断の後で , デジタル電
源の遮断を行ってください。その際 , AVR は , AVCC を超えないように投入および
切断を行ってください ( アナログ電源とデジタル電源を同時に投入 , 遮断すること
は問題ありません )。
● 8/10 ビット A/D コンバータの電源電圧について
• ラッチアップ防止のため , 8/10 ビット A/D コンバータの電源 (AVCC) は , デジタル電
源 (VCC) の電圧を超えないように注意してください。
390
第 14 章
UART0
この章では , UART0 の機能と動作について説明し
ます。
14.1 UART0 の概要
14.2 UART0 のブロックダイヤグラム
14.3 UART0 の構成
14.4 UART0 の割込み
14.5 UART0 のボーレート
14.6 UART0 の動作説明
14.7 UART0 使用上の注意
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
391
第 14 章 UART0
14.1
UART0 の概要
UART0 は , 外部装置と同期通信または非同期通信を行うための汎用のシリアルデー
タ通信インタフェースです。
• クロック同期 , クロック非同期の双方向通信機能を備えています。
• マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) を備えています。
• 送信 , 受信 , 受信エラー検出で , 割込み要求を発生できます。
• 拡張インテリジェント I/O サービス EI2OS に対応しています。
■ UART0 の機能
● UART0 の機能
UART0 は , 外部装置とシリアルデータの送受信を行うための汎用シリアルデータ通信
インタフェースで , 表 14.1-1 の機能を備えています。
表 14.1-1 UART0 の機能
機 能
データバッファ
転送モード
• クロック同期 ( スタート / ストップビットなし , パリ
ティビットなし )
• クロック非同期 ( 調歩周期 )
ボーレート
• 専用ボーレートジェネレータあり , 10 種類選択可
• 外部クロック入力可
• 内部タイマ (16 ビットリロードタイマ ) から供給され
るクロックを利用可
データ長
• 7 ビット ( 非同期ノーマルモードのみ )
• 8 ビット
信号方式
NRZ (Non Return to Zero) 方式
受信エラー検出
割込み要求
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
<注意事項>
392
全二重ダブルバッファ
• フレーミングエラー
• オーバランエラー
• パリティエラー ( 動作モード 1 では不可 )
• 受信割込み ( 受信 , 受信エラー検出 )
• 送信割込み ( 送信 )
• 送受信とも拡張インテリジェント I/O サービス
(EI2OS) に対応
1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能 ( マスタと
してのみ使用できます。)
クロック同期転送時にスタートビット / ストップビットは付加されず , データのみ
転送されます。
第 14 章 UART0
表 14.1-2 UART0 の動作モード
データ長
動作モード
同期方式
パリティあり
0
ノーマルモード
1
マルチプロセッサ
モード
2
クロック同期
モード
パリティなし
7 ビットまたは 8 ビット
8+1
ビット *1
8 ビット
非同期
ストップ
ビット長
−
非同期
1 ビットまた
は 2 ビット *2
−
クロック同期
なし
− : 設定不可
*1: "+1" は通信制御に使用するアドレス / データ選択ビット (SCR : A/D) です。
*2: 受信時のストップビットは 1 ビットのみ検出
393
第 14 章 UART0
UART0 のブロックダイヤグラム
14.2
UART0 は , 以下のブロックで構成されています。
■ UART0 のブロックダイヤグラム
図 14.2-1 UART0 のブロックダイヤグラム
コントロールバス
専用ボーレート
ジェネレータ
16ビット
リロードタイマ
受信割込み
要求出力
送信割込み
要求出力
送信クロック
クロック
セレクタ
受信クロック
受信制御回路
端子
SCK
端子
SIN
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
受信用
シフトレジスタ
送信用
シフトレジスタ
受信終了
シリアル入力
データレジスタ
シリアル出力
データレジスタ
受信状態判定回路
端子
SOT
送信開始
EI2OS用受信エラー
発生信号
(CPUへ)
内部データバス
シリアル
エッジ
選択
レジスタ
通信
プリスケーラ
制御レジスタ
NEG
394
MD
DIV3
DIV2
DIV1
DIV0
シリアル
モード
レジスタ
MD1
MD0
CS2
CS1
CS0
SCKE
SOE
シリアル
制御
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
シリアル
ステータス
レジスタ
PE
ORE
FRE
RDRF
TDRE
RIE
TIE
第 14 章 UART0
● ブロックダイヤグラム中の端子などの詳細
UART0 の実際の端子名および割込み要求番号は次のとおりです。
SCK 端子 : P31/SCK0/RD
SOT 端子 : P30/SOT0/ALE
SIN 端子 : P32/SIN0/WRL
送信割込み番号 : #39 (27H)
受信割込み番号 : #40 (28H)
● クロックセレクタ
専用ボーレートジェネレータ , 外部入力クロック , 内部タイマ (16 ビットリロードタイ
マ 0 から供給されるクロック ) から送受信クロックを選択します。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン
タで構成されます。受信ビットカウンタは受信データをカウントして , 1 フレームの
データの受信を完了すると , 受信割込み要求を出力します。
スタートビット検出回路は , シリアル入力信号からスタートビットを検出し , 受信デー
タをシリアル入力データレジスタに転送速度に応じて 1 ビットずつシフトしながら書
き込みます。受信パリティカウンタは , 受信データのパリティを計算します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , 送信パリティカウンタで構
成されます。送信ビットカウンタは送信データをカウントして , 1 フレームのデータの
送信を完了すると , 送信割込み要求を出力します。送信スタート回路は , シリアル出力
データレジスタの書込みにより送信動作を開始します。送信パリティカウンタは ,「パ
リティあり」の場合にパリティビットを生成します。
● 受信用シフトレジスタ
SIN 端子から入力された受信データを , 1 ビットずつシフトしながら取り込み , 受信が
終了すると , シリアル入力データレジスタに受信データを転送します。
● 送信用シフトレジスタ
シリアル出力データレジスタに書き込まれたデータを送信用シフトレジスタに転送し,
1 ビットずつシフトしながら SOT 端子に出力します。
● シリアルモードレジスタ (SMR0)
動作モードの選択 , クロック入力ソース ( ボーレート ) の選択 , シリアルデータおよび
クロックの端子出力の許可または禁止の設定を行います。
● シリアル制御レジスタ (SCR0)
パリティの有無の設定 , パリティの種類の選択 , ストップビット長の設定 , データ長の
設定 , 動作モード 1 でのフレームデータ形式の選択 , エラーフラグのクリア , 送信の許
可または禁止の設定 , 受信の許可または禁止の設定を行います。
● シリアルステータスレジスタ (SSR0)
送受信やエラーの状態の確認と , 送受信割込み要求の許可または禁止の設定を行いま
す。
395
第 14 章 UART0
● シリアル入力データレジスタ (SIDR0)
受信データを保持するレジスタです。シリアル入力が変換されてこのレジスタに格納
されます。
● シリアル出力データレジスタ (SODR0)
送信データを設定するレジスタです。このレジスタに書き込まれたデータが , シリアル
変換されて出力されます。
● 通信プリスケーラ制御レジスタ (CDCR0)
ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケーラの
起動 / 停止 , マシンクロックの分周比を設定します。
● シリアルエッジ選択レジスタ (SES0)
クロック信号を反転するインバータです。シフトクロック信号を "L" レベルから "H"
レベルまたは "H" レベルから "L" レベルに変換します。
396
第 14 章 UART0
14.3
UART0 の構成
UART0 の端子 , 割込み要因 , レジスタの一覧および詳細を記載します。
■ UART0 の端子
UART0 で使用する端子は , 汎用入出力ポートと UART0 で兼用しています。
端子の機能と UART0 で使用する場合の設定を表 14.3-1 に示します。
表 14.3-1 UART0 の端子
端子名
端子機能
SOT0
汎用入出力ポート /
アドレスラッチイネーブル出力 /
シリアルデータ出力
SCK0
汎用入出力ポート /
リードストローブ出力 /
シリアルクロック入出力
SIN0
汎用入出力ポート /
データバス下位 8 ビットのライト
ストローブ出力 /
シリアルデータ入力
UART0 の使用に必要な設定
出力許可に設定
(SMR0: SOE=1)
クロック入力時はポート方向レジスタ
(DDR) で入力ポートに設定
クロック出力時は出力許可に設定
(SMR0: SCKE=1)
ポート方向レジスタ (DDR) で入力ポート
に設定
■ UART0 の端子のブロックダイヤグラム
<参考>
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
397
第 14 章 UART0
■ UART0 のレジスタ一覧
図 14.3-1 UART0 のレジスタとリセット値の一覧
bit
シリアル制御レジスタ(SCR0)
bit
シリアルモードレジスタ(SMR0)
bit
シリアルステータスレジスタ(SSR0)
bit
シリアル入力データレジスタ(SIDR0)/
シリアル出力データレジスタ(SODR0)
15
14
13
12
11
10
9
8
0
0
0
0
0
1
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
1
×
0
0
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
※リードした場合はSIDR0として機能し,ライトした場合はSODR0として機能します。
bit
シリアルエッジ選択レジスタ(SES0)
bit
通信プリスケーラ制御レジスタ(CDCR0)
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
0
7
6
5
4
3
2
1
0
0
×
×
×
1
1
1
1
× :不定
■ UART0 での割込み要求の発生
● 受信割込み
• 受信データがシリアル入力データレジスタ (SIDR0) にロードされると , シリアルス
テータスレジスタの受信データロードフラグビット (SSR0: RDRF) に "1" がセットさ
れます。受信割込みが許可されている場合は (SSR0: RIE=1), 受信割込み要求が発生
します。
• フレーミングエラー , オーバランエラー , パリティエラーのいずれかが発生すると ,
発生したエラーに応じてシリアルステータスレジスタのフレーミングエラーフラ
グビット (SSR0: FRE), オーバランエラーフラグビット (SSR0: ORE), パリティエラー
フラグビット (SSR0: PE) に "1" がセットされます。受信割込みが許可されている場
合は (SSR0: RIE=1), 受信割込み要求が発生します。
● 送信割込み
送信データがシリアル出力データレジスタ (SODR0) から送信用シフトレジスタに転送
されると , シリアルステータスレジスタの送信データエンプティフラグビットビット
(SSR0: TDRE) に "1" がセットされます。送信割込みが許可されている場合は (SSR0:
TIE=1), 割込み要求が発生します。
398
第 14 章 UART0
シリアル制御レジスタ 0 (SCR0)
14.3.1
シリアル制御レジスタ 0 (SCR0) は , パリティビットの設定 , ストップビット長や
データ長の選択 , 動作モード 1 でのフレームデータ形式の選択 , 受信エラーフラグの
クリア , 送受信動作の許可または禁止の設定を行います。
■ シリアル制御レジスタ 0 (SCR0)
図 14.3-2 シリアル制御レジスタ 0 (SCR0)
15
14
13
12
11
10
9
8
リセット値
00000100B
R/W R/W R/W R/W R/W
W
R/W R/W
bit8
TXE
0
1
bit9
RXE
0
1
送信動作許可ビット
送信動作禁止
送信動作許可
受信動作許可ビット
受信動作禁止
受信動作許可
bit10
受信エラーフラグクリアビット
REC
FRE,ORE,PEフラグをクリア
0
1
影響なし
bit11
アドレス/データ選択ビット
A/D
データフレーム
0
1
アドレスフレーム
bit12
CL
7ビット
0
1
8ビット
bit13
SBL
1ビット長
0
1
2ビット長
データ長選択ビット
ストップビット長選択ビット
bit14
P
0
1
R/W
W
:リード ・ライト 可能
:ライトオンリ
:リセット値
パリティ選択ビット
パリティありのとき(PEN=1)のみ有効
偶数パリティ
奇数パリティ
bit15
PEN
パリティなし
0
1
パリティあり
パリティ付加許可ビット
399
第 14 章 UART0
表 14.3-2 シリアル制御レジスタ 0 (SCR0) の機能
ビット名
機 能
bit15
PEN:
パリティ付加許可
ビット
パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを設定し
ます。
( 注意事項 )
動作モード 1, 2 の場合はパリティビットは付加できません。必ず "0" に
設定してください。
bit14
P:
パリティ選択ビット
パリティビットあり (SCR0: PEN=1) に設定した場合に , 奇数パリティか偶
数パリティのいずれかに設定します。
bit13
SBL:
ストップビット長選択
ビット
動作モード 0, 1( 非同期 ) の場合のストップビット ( 送信データのフレーム
エンドマーク ) のビット長を設定します。
( 注意事項 )
受信時は , 常にストップビットの 1 ビット目だけを検出します。
bit12
CL:
データ長選択ビット
送受信データのデータ長を設定します。
( 注意事項 )
7 ビットを選択できるのは , 動作モード 0 の場合のみです。動作モード
1, 2 の場合は , 必ず 8 ビットに設定してください。
bit11
A/D:
アドレス / データ選択
ビット
動作モード 1 の場合に , 送受信するフレームのデータ形式を設定します。
"0" に設定した場合 : データフレームに設定されます。
"1" に設定した場合 : アドレスデータのフレームに設定されます。
bit10
REC:
受信エラーフラグ
クリアビット
シリアルステータスレジスタの受信エラーフラグ (SSR0: FRE, ORE, PE) を
"0" にクリアします。
"0" に設定した場合 : FRE, ORE, PE フラグがクリアされます。
"1" に設定した場合 : 影響しません。
リードした場合 : 常に "1" が読み出されます。
( 注意事項 )
受信割込みを許可に設定していれば (SSR0: RIE=1), FRE, ORE, PE フラ
グのいずれかが "1" にセットされている場合のみ , REC ビットを "0" に
設定してください。
bit9
RXE:
受信動作許可ビット
UART0 の受信動作を許可または禁止します。
"0" に設定した場合 : 受信動作が禁止されます。
"1" に設定した場合 : 受信動作が許可されます。
( 注意事項 )
受信中に受信動作を禁止に設定した場合は , 受信中のデータをシリアル
入力データレジスタに格納した後に受信動作が停止します。
bit8
TXE:
送信動作許可ビット
UART0 の送信動作を許可または禁止します。
"0" に設定した場合 : 送信動作が禁止されます。
"1" に設定した場合 : 送信動作が許可されます。
( 注意事項 )
送信中に送信動作を禁止に設定した場合は , シリアル出力データレジス
タのデータの送信が完了した後に送信動作が停止します。
"0" を設定する場合は , シリアル出力データレジスタ (SODR0) にデータ
を書き込んだ後に非同期モードの場合であればボーレートの 1/16 時間 ,
同期モードの場合であればボーレートと同じ時間以上待ってから設定し
てください。
400
第 14 章 UART0
シリアルモードレジスタ 0 (SMR0)
14.3.2
シリアルモードレジスタ 0 (SMR0) は , 動作モードの選択 , ボーレートクロックの選
択 , シリアルデータとクロックの端子への出力の許可または禁止の設定を行います。
■ シリアルモードレジスタ 0 (SMR0)
図 14.3-3 シリアルモードレジスタ 0 (SMR0)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
シリアルデータ出力許可ビット(SOT0端子)
SOE
汎用入出力ポートとする
0
UART0のシリアルデータの出力とする
1
bit1
SCKE
0
1
シリアルクロック入出力許可ビット(SCK0端子)
汎用入出力ポートまたはUART0のクロック入力端子とする
UART0のシリアルクロック出力端子とする
bit2
予約
0
予約ビット
必ず"0"に設定してください
bit5 bit4 bit3
CS2 CS1 CS0
"000B"~"100B"
"101B"
クロック入力ソース選択ビット
専用ボーレートジェネレータによるボーレート
設定禁止
内部タイマ(16ビットリロードタイマ0 )
"110B"
によるボーレート
"111B"
外部クロックによるボーレート bit7 bit6
R/W
:リード ・ライト 可能
:リセット値
動作モード選択ビット
MD1
MD0
0
0
0
非同期ノーマルモード
0
1
1
非同期マルチプロセッサモード
1
0
2
クロック同期モード
1
1
ー
設定禁止
モードNo.
動作モード
401
第 14 章 UART0
表 14.3-3 シリアルモードレジスタ 0 (SMR0) の機能
ビット名
機 能
bit7
bit6
MD1, MD0:
動作モード選択ビット
UART0 の動作モードを設定します。
( 注意事項 )
1) 動作モード 1 では , マスタスレーブ型通信の , マスタとしてのみ使用
できます。動作モード 1 は 9 ビット目のアドレス / データビットが受
信できないのでスレーブとしては使用できません。
2) 動作モード 1 ではパリティチェック機能は使用できないので , パリ
ティ付加許可ビットはパリティなし (SCR0: PEN=0) に設定してくだ
さい。
bit5
∼
bit3
CS2 ∼ CS0:
クロック入力ソース
選択ビット
ボーレートのクロック入力ソースを設定します。
• クロック入力ソースは , 外部クロック (SCK0 端子 ), 内部タイマ (16 ビッ
トリロードタイマ 0), 専用ボーレートジェネレータから選択します。
• ボーレートジェネレータを選択する場合は , ボーレートを設定します。
( 注意事項 )
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定
は禁止です。
1) CS2 ∼ CS0 = 000B
2) CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0=0000B
bit2
予約 : 予約ビット
必ず "0" に設定してください。
bit1
SCKE:
シリアルクロック
入出力許可ビット
シリアルクロックの入出力を切り替えます。
"0" に設定した場合 : 汎用入出力ポートまたはシリアルクロック入力端子
に設定されます。
"1" に設定した場合 : シリアルクロック出力端子に設定されます。
( 注意事項 )
1) SCK0 端子をシリアルクロック入力として使用する場合は , ポート方
向レジスタ (DDR) で端子を入力ポートに設定してください。
また , クロック入力ソース選択ビットによって外部クロックを選択
(SMR0: CS2 ∼ CS0=111B) してください。
2) シリアルクロック出力として使用する場合は , クロック入力ソース選
択ビットを外部クロック以外 (SMR0: CS2 ∼ CS0=111B 以外 ) に設定
してください。
bit0
402
SOE:
シリアルデータ出力
許可ビット
シリアルデータの出力を許可または禁止します。
"0" に設定した場合 : 汎用入出力ポートに設定されます。
"1" に設定した場合 : シリアルデータ出力端子に設定されます。
第 14 章 UART0
シリアルステータスレジスタ 0 (SSR0)
14.3.3
シリアルステータスレジスタ 0 (SSR0) では , 送受信やエラーの状態の確認 , 割込み
の許可または禁止の設定を行います。
■ シリアルステータスレジスタ 0 (SSR0)
図 14.3-4 シリアルステータスレジスタ 0 (SSR0)
15
14
13
12
11
10
R
R
R
R
R
-
9
8
リセット値
00001X00B
R/W R/W
bit8
TIE
0
1
bit9
RIE
0
1
bit11
TDRE
0
1
bit12
RDRF
0
1
送信割込み許可ビット
送信割込みを禁止
送信割込みを許可
受信割込み許可ビット
受信割込みを禁止
受信割込みを許可
送信データ書込みフラグビット
送信データあり(送信データの書込み禁止)
送信データなし(送信データの書込み許可)
受信データロードフラグビット
受信データなし
受信データあり
bit13
フレーミングエラーフラグビット
FRE
フレーミングエラーなし
0
フレーミングエラーあり
1
bit14
オーバランエラーフラグビット
ORE
オーバランエラーなし
0
1
オーバランエラーあり
R/W
R
X
-
:リード ・ライト 可能
:リードオンリ
:不定
:未定義
bit15
パリティエラーフラグビット
PE
パリティエラーなし
0
1
パリティエラーあり
:リセット値
403
第 14 章 UART0
表 14.3-4 シリアルステータスレジスタ 0 (SSR0) の機能 (1 / 2)
ビット名
機 能
bit15
PE:
パリティエラーフラグ
ビット
受信データのパリティエラーを検出します。
• パリティエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR0: REC) に "0" を書き込むとクリア
されます。
• 受信割込みが許可されている場合は (SSR0: RIE=1), パリティエラーが発
生すると受信割込み要求が発生します。
• パリティエラーフラグビットがセットされた場合は (SSR0: PE=1), シリア
ル入力データレジスタ 0 のデータは無効です。
bit14
ORE:
オーバランエラー
フラグビット
受信時のオーバランエラーを検出します。
• オーバランエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR0: REC) に "0" を書き込むとクリア
されます。
• 受信割込みが許可されている場合は (SSR0: RIE=1), オーバランエラーが
発生すると受信割込み要求が発生します。
• オーバランエラーフラグビットがセットされた場合は (SSR0: ORE=1), シ
リアル入力データレジスタ 0 のデータは無効です。
bit13
FRE:
フレーミングエラー
フラグビット
受信データのフレーミングエラーを検出します。
• フレーミングエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR0: REC) に "0" を書き込むとクリア
されます。
• 受信割込みが許可されている場合は (SSR0: RIE=1), フレーミングエラー
が発生すると受信割込み要求が発生します。
• フレーミングエラーフラグビットがセット (SSR0: FRE=1) された場合は ,
シリアル入力データレジスタ 0 のデータは無効です。
bit12
RDRF:
受信データロード
フラグビット
シリアル入力データレジスタ 0 の状態を示します。
• シリアル入力データレジスタ 0 (SIDR0) に受信データがロードされると ,
"1" がセットされます。
• シリアル入力レジスタ 0 (SIDR0) のデータを読み出すと "0" にクリアされ
ます。
• 受信割込みを許可した場合は (SSR0: RIE=1), 受信データがシリアル入力
データレジスタ 0 (SIDR0) にロードされると , 受信割込み要求が発生しま
す。
bit11
TDRE:
送信データ書込み
フラグビット
シリアル出力データレジスタ 0 の状態を示します。
• シリアル出力データレジスタ 0(SODR0) に送信データを書き込むと ,"0"
にクリアされます。
• 送信用シフトレジスタにデータがロードされ送信が開始されると "1" が
セットされます。
• 送信割込みを許可した場合は (SSR0: TIE=1), シリアル出力データレジス
タ 0 (SODR0) に書き込まれたデータが送信用シフトレジスタに送信され
る (SSR0: TDRE=1) と送信割込み要求が発生します。
bit10
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit9
RIE:
受信割込み許可ビット
受信割込みを許可または禁止します。
"1" に設定した場合 : シリアル入力データレジスタ 0 に受信データがロー
ドされるか (SSR0: RDRF=1), 受信エラーが発生すると
(SSR0: PE=1 または DRE=1 または FRE=1), 受信割込
み要求が発生します。
404
第 14 章 UART0
表 14.3-4 シリアルステータスレジスタ 0 (SSR0) の機能 (2 / 2)
ビット名
bit8
TIE:
送信割込み許可ビット
機 能
送信割込みを許可または禁止します。
"1" に設定した場合 : シリアル出力データレジスタ 0 に書き込まれたデー
タが送信用シフトレジスタに送信されると (SSR0:
TDRE=1), 送信割込み要求が発生します。
405
第 14 章 UART0
14.3.4
シリアル入力データレジスタ 0 (SIDR0)/
シリアル出力データレジスタ 0 (SODR0)
シリアル入力データレジスタとシリアル出力データレジスタは同一アドレスに配置
されています。リードした場合は , シリアルデータ入力レジスタとして機能し , ライ
トした場合は , シリアルデータ出力レジスタとして機能します。
■ シリアル入力データレジスタ 0 (SIDR0)
図 14.3-5 シリアル入力データレジスタ 0 (SIDR0)
R :リードオンリ
X :不定
bit7
6
5
4
3
2
1
bit0
D7
D6
D5
D4
D3
D2
D1
D0
R
R
R
R
R
R
R
R
リセット値
XXXXXXXXB
シリアル入力データレジスタ 0 (SIDR0) は , シリアルデータ受信用のデータバッファレ
ジスタです。
• シリアル入力端子 (SIN0) に送られてきたシリアルデータ信号がシフトレジスタで変
換されて , シリアル入力データレジスタ 0 (SIDR0) に格納されます。
• データ長が 7 ビットの場合は , 上位 1 ビット (SIDR0: D7) は無効データとなります。
• 受信データが , シリアル入力データレジスタ 0 (SIDR0) に格納されると , 受信データ
ロードフラグビット (SSR0: RDRF) が "1" にセットされます。受信割込みが許可され
ている場合は (SSR0: RIE=1), 受信割込み要求が発生します。
• シリアル入力データレジスタ 0 (SIDR0) は , 受信データロードフラグビット (SSR0:
RDRF) が "1" の状態で読み出してください。受信データロードフラグビット (SSR0:
RDRF) はシリアル入力データレジスタ 0 (SIDR0) を読み出すと , 自動的に "0" にクリ
アされます。
• 受信エラーが発生 (SSR0: PE, ORE, FRE のいずれかが "1") した場合 , シリアル入力
データレジスタ 0 (SIDR0) の受信データは無効となります。
406
第 14 章 UART0
■ シリアル出力データレジスタ 0 (SODR0)
図 14.3-6 シリアル出力データレジスタ 0 (SODR0)
W :ライトオンリ
X :不定
7
6
5
4
3
2
1
bit0
D7
D6
D5
D4
D3
D2
D1
D0
W
W
W
W
W
W
W
W
リセット値
XXXXXXXXB
シリアル出力データレジスタ 0 (SODR0) は , シリアルデータ送信用のデータバッファ
レジスタです。
• 送信動作が許可されている場合に (SCR0: TXE=1), 送信するデータをシリアル出力
データレジスタ 0(SODR0) に書き込むと , 送信データが送信用シフトレジスタに転
送され , シリアルデータに変換されて , シリアルデータ出力端子 (SOT0 端子 ) から
送出されます。
• データ長が 7 ビットの場合 , 上位 1 ビット (SODR0: D7) は無効データとなります。
• 送信データ書込みフラグ (SSR0: TDRE) は , 送信データがシリアル出力データレジス
タ 0 (SODR0) に書き込まれると , "0" にクリアされます。
• 送信用シフトレジスタへの転送が終了すると , "1" がセットされます。
• 送信データ書込みフラグ (SSR0: TDRE) が "1" の場合は , 次の送信用データを書き込
むことができます。送信割込みが許可 (SSR0: TIE=1) されている場合は送信割込み
が発生します。次の送信データの書込みは , 送信データ書込フラグ (SCR0: TDRE) が
"1" の状態で行ってください。
<注意事項>
シリアル出力データレジスタは書込専用のレジスタで , シリアル入力データレジス
タは読込専用のレジスタです。2 つのレジスタは同一アドレスに配置されているた
め書込み値と読出し値が異なります。したがって , INC/DEC 命令などリードモ
ディファイライト (RMW) 系動作をする命令は使用できません。
407
第 14 章 UART0
通信プリスケーラ制御レジスタ 0 (CDCR0)
14.3.5
通信プリスケーラ制御レジスタ 0 (CDCR0) は , UART0 の専用ボーレートジェネ
レータのボーレートを設定します。
• 通信プリスケーラの起動または停止
• マシンクロックの分周比の設定
■ 通信プリスケーラ制御レジスタ 0 (CDCR0)
図 14.3-7 通信プリスケーラ制御レジスタ 0 (CDCR0)
7
6
5
4
R/W
-
-
-
3
2
1
0
リセット値
0XXX1111B
R/W R/W R/W R/W
bit3 bit2 bit1 bit0
DIV3 DIV2 DIV1 DIV0 通信プリスケーラ分周比(div)ビット
1
1
1
1
設定禁止
1
1
1
0
2分周
1
1
0
1
3分周
1
1
0
0
4分周
1
0
1
1
5分周
1
0
1
0
6分周
1
0
0
1
7分周
1
0
0
0
8分周
bit7
MD
R/W :リード ・ライト 可能
X
:不定
- :未定義
:リセット値
408
通信プリスケーラ制御ビット
0
通信プリスケーラ動作停止
1
通信プリスケーラ動作許可
第 14 章 UART0
表 14.3-5 通信プリスケーラ制御レジスタ 0 (CDCR0) の機能
ビット名
機 能
bit7
MD:
通信プリスケーラ
制御ビット
通信プリスケーラの動作を許可または禁止します。
"0" に設定した場合 : 停止します。
"1" に設定した場合 : 起動します。
bit6
∼
bit4
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit3
∼
bit0
DIV3 ∼ DIV0:
通信プリスケーラ
分周比ビット
マシンクロックの分周比を設定します。
( 注意事項 )
分周比を変更する場合は , クロック周波数を安定させるために , 次の通信を開
始するまで最低でも分周クロックの 2 周期分の時間をあけてください。
<注意事項>
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止で
す。
1) CS2 ∼ CS0 = 000B
2) CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0=0000B
409
第 14 章 UART0
シリアルエッジ選択レジスタ 0 (SES0)
14.3.6
シリアルエッジ選択レジスタ 0 (SES0) は , インバータによって UART0 のクロック
信号を反転するレジスタです。UART0 に入ってきたシフトクロック信号を論理的に
"L" レベルから "H" レベルに , 立下りから立上りにまたは "H" レベルから "L" レベ
ル , 立上りから立下りに反転します。反転処理は , シリアルクロックの出力にも作用
します。
■ シリアルエッジ選択レジスタ 0 (SES0)
図 14.3-8 シリアルエッジ選択レジスタ 0 (SES0)
15
14
13
12
11
10
9
8
リセット値
XXXXXXX0B
-
-
-
-
-
-
-
- :未定義
R/W :リード ・ライト 可能
:リセット値
R/W
bit8
NT
0
1
クロック反転ビット
通常
シフトクロック信号を反転
表 14.3-6 シリアルエッジ選択レジスタ 0(SES0) の機能
ビット名
機 能
bit15
∼
bit9
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit8
NT:
クロック反転ビット
UART0 に入力されたクロック信号を反転します。
• "L" レベルの信号は "H" レベルに , "H" レベルの信号は "L" レベルに反転
します。
• 反転処理は , シリアルクロックの出力にも作用します。
410
第 14 章 UART0
14.4
UART0 の割込み
UART0 の割込みには , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求
を発生することができます。
• 受信データがシリアル入力データレジスタ 0 (SIDR0) にロードされた場合
• 受信エラー ( パリティエラー , オーバランエラー , フレーミングエラー ) が発生し
た場合
• 送信データがシリアル出力データレジスタ 0(SODR0) から送信用シフトレジスタ
に転送された場合
また , それぞれ拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ UART0 の割込み
UART0 の割込み制御ビットと割込み要因を表 14.4-1 に示します。
表 14.4-1 UART0 の割込み制御ビットと割込み要因
送受信
受信
送信
割込み要
求フラグ
ビット
動作モード
割込み要因
0
1
2
SSR0:
RDRF
○
○
○
受信データをシリ
アル入力データ
レジスタ 0
(SIDR0) へロード
SSR0:ORE
○
○
○
オーバランエラー
発生
SSR0:FRE
○
○
×
フレーミング
エラー発生
SSR0:PE
○
×
×
パリティエラー
発生
SSR0:
TDRE
○
○
○
シリアル出力
データレジスタ 0
(SODR0) が空
割込み要因
許可ビット
割込み要求フラグ
のクリア
受信データの
読出し
SSR0: RIE
受信エラーフラグ
クリアビット
(SSR0: REC) への
"0" の書込み
SSR0: TIE
送信データの
書込み
○ : 使用ビット
× : 未使用ビット
411
第 14 章 UART0
● 受信割込み
受信割込みが許可されている場合に (SSR0: RIE=1), データ受信完了 (SSR0: RDRF=1),
オーバランエラー (SSR0: ORE=1), フレーミングエラー (SSR0: FRE=1), パリティエラー
(SSR0: PE=1) のいずれかが発生すると受信割込み要求が発生します。
受信データロードフラグ (SSR0: RDRF) は , シリアル入力データレジスタ 0(SIDR0) を
読出すと , 自動的に "0" にクリアされます。各受信エラーフラグ (SSR0: PE, ORE, FRE)
は受信エラーフラグクリアビット (SCR0: REC) に "0" を書き込めば , すべて "0" にクリ
アされます。
<注意事項>
受信エラー ( パリティエラー , オーバランエラー , フレーミングエラー ) が発生し
た場合は , 必要に応じてエラー処理を行った後 , 受信エラーフラグクリアビット
(SCR0: REC) に "0" を書き込んで , 各受信エラーフラグをクリアしてください。
● 送信割込み
送信データがシリアル出力データレジスタ 0 (SODR0) から送信用シフトレジスタに送
信されると , 送信データ書込みフラグビット (SSR0: TDRE) に "1" がセットされます。
送信割込みが許可されている場合は (SSR0: TIE=1), 送信割込み要求が発生します。
■ UART0 の割込みと EI2OS
<参考>
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込
み」を参照してください。
■ UART0 の EI2OS 機能
UART0 は EI2OS 機能に対応しています。受信および送信の各割込みで別々に EI2OS を
起動することができます。
● 受信した場合
MB90895 シリーズでは , I2C インタフェースを内蔵していないので , 割込みベクタを使
用することはできません。
● 送信した場合
割込み制御レジスタ (ICR14) を , UART0 の送信割込みと共有しているので , UART0 の
送信で割込みを使用しない場合のみ , EI2OS を起動できます。
412
第 14 章 UART0
14.4.1
受信割込み発生とフラグセットのタイミング
受信時の割込みとしては , 受信完了 (SSR0: RDRF) および受信エラーの発生 (SSR0:
PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
● 受信データロードフラグと各受信エラーフラグのセット
データを受信する場合は , ストップビットの検出 ( 動作モード 0, 1) またはデータの最
終ビット (SIDR0: D7) の検出 ( 動作モード 2) によって , 受信データがシリアル入力デー
タレジスタ 0 (SIDR0) に格納されます。受信エラーが発生した場合はエラーフラグ
(SSR0: PE, ORE, FRE) がセットされ , 受信データロードフラグ (SSR0: RDRF) がセット
されます。各動作モードともいずれかのエラーフラグがセットされた場合は , 受信した
シリアル入力データレジスタ 0 (SIDR0) の受信データは無効です。
動作モード 0 ( 非同期ノーマルモード )
ストップビットの検出時に , 受信データロードフラグビット (SSR0: RDRF) がセットさ
れます。受信エラーが発生すると , エラーフラグ (SSR0: PE, ORE, FRE) がセットされま
す。
動作モード 1 ( 非同期マルチプロセッサモード )
ストップビットを検出すると受信データロードフラグビット(SSR0: RDRF)がセットさ
れます。
受信エラーが発生すると , エラーフラグ (SSR0: ORE, FRE) がセットされます。
パリティエラー (SSR0: PE) は検出できません。
動作モード 2 ( クロック同期モード )
受信データの最終ビット (SIDR0: D7) を検出すると受信データロードフラグビット
(SSR0: RDRF) に "1" がセットされます。受信エラーが発生すると , エラーフラグ (SSR0:
ORE) がセットされます。パリティエラー (SSR0: PE) およびフレーミングエラー (SSR0:
FRE) は検出できません。
413
第 14 章 UART0
受信動作とフラグセットのタイミングを , 図 14.4-1 に示します。
図 14.4-1 受信動作とフラグセットのタイミング
受信データ
(動作モード0)
ST
D0
D1
D5
D6
D7
SP
受信データ
(動作モード1)
ST
D0
D1
D6
D7
A/D
SP
D0
D1
D4
D5
D6
D7
受信データ
(動作モード2)
SSR0:PE, ORE, FRE*
SSR0:RDRF
受信割込み発生
*
ST
SP
A/D
:PEフラグは動作モード1では検出できません
PE, FREフラグは動作モード2では検出できません
:スタートビット
:ストップビット
:動作モード2のアドレス/データ選択ビット ● 受信割込み要求発生のタイミング
受信割込みが許可されている場合に (SSR0: RIE=1), 受信データロードフラグ (SSR0:
RDRF),パリティエラーフラグ (SSR0: PE),オーバランエラーフラグ(SSR0: ORE), フレー
ミングエラーフラグ (SSR0: FRE) のいずれかがセットされると , 受信割込み要求が発生
します。
414
第 14 章 UART0
14.4.2
送信割込み発生とフラグセットのタイミング
送信時の割込みは , シリアル出力データレジスタ 0 (SODR0) が空になり , 次の送信
データの書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグセットのタイミング
● 送信データエンプティフラグビットのセットとクリア
送信データ書込みフラグビット (SSR0: TDRE) は , シリアル出力データレジスタ 0
(SODR0) に書き込まれた送信データが , 送信用シフトレジスタに送信され , 次のデータ
が書込み可能な状態になるとセットされます。シリアル出力データレジスタ 0 (SODR0)
に次の送信データを書き込むと送信データ書込みフラグビット (SSR0: TDRE) は "0" に
クリアされます。
送信動作とフラグセットのタイミングを図 14.4-2 に示します。
図 14.4-2 送信動作とフラグセットのタイミング
[動作モード0, 1]
送信割込み要求
送信割込み発生
SODR0書込み
SSR0:TDRE
SOT0出力
[動作モード2]
ST
D0
D1 D2
D3 D4
送信割込み発生
D5
D6
D7
SP SP
A/D
ST D0
D1
D2 D3
D3 D4
D5
D6 D7
送信割込み発生
SODR0書込み
SSR0:TDRE
SOT0出力
D0
D1
D2 D3
D4 D5
D6
D7
D0
D1 D2
ST :スタートビット
D0~D7:データビット
SP :ストップビット
A/D :アドレス/データ選択ビット
415
第 14 章 UART0
● 送信割込み要求発生のタイミング
送信割込みが許可 (SSR0: TIE=1) されている場合に , 送信データ書込みフラグビット
(SSR0: TDRE) がセットされると送信割込み要求が発生します。
<注意事項>
416
送信動作中に送信動作を禁止 (SCR0: TXE=0, 動作モード 1 での場合 , 受信動作禁
止 RXE も含む ) すると , 送信データ書込みフラグビットがセットされ (SSR0:
TDRF=1), 送信用シフトレジスタのシフト動作が停止してから UART0 の通信動作
が禁止されます。送信が停止する前にシリアル出力データレジスタ 0 (SODR0) に
書き込まれていた送信データは送信されます。
第 14 章 UART0
14.5
UART0 のボーレート
UART0 の送受信クロックは , 次のいずれかを選択します。
• 専用ボーレートジェネレータ
• 内部クロック (16 ビットリロードタイマ 0 出力 )
• 外部クロック (SCK 端子入力のクロック )
■ UART0 のボーレートの選択
UART0 のボーレート選択回路は , 図 14.5-1 のように構成されています。クロック入力
ソースは次の 3 種類の中から選択できます。
● 専用ボーレートジェネレータによるボーレート
• UART0 に内蔵されている専用ボーレートジェネレータをクロック入力ソースとし
て使用する場合は , 使用するボーレートに応じてシリアルモードレジスタの CS2 ∼
5 種類のボーレートから選択できます。
CS0 ビットを "000B" ∼ "100B" に設定します。
● 内部タイマによるボーレート
• 16 ビットリロードタイマ 0 から供給される内部クロックを , クロック入力ソースと
して使用する場合は , シリアルモードレジスタの CS2 ∼ CS0 ビットを "110B" に設
定します。
• ボーレートは , クロック同期の場合は 16 ビットリロードタイマ 0 から供給されるク
ロックの 2 分周 , 非同期の場合は供給されるクロックの 32 分周した値になります。
• 16 ビットリロードタイマ 0 の設定値によって , 自由にボーレートを設定できます。
● 外部クロックによるボーレート
• UART0 のクロック入力端子 (SCK0) から入力された外部クロックを , クロック入力
ソースとして使用する場合は,シリアルモードレジスタのCS2∼CS0ビットを"111B"
に設定します。
• ボーレートは , クロック同期の場合は外部から供給されるクロックのまま , 非同期
の場合は入力されたクロックを 16 分周した値になります。
• 外部クロック周波数には , 2MHz 以下であれば , 任意のボーレートが使用できます。
417
第 14 章 UART0
図 14.5-1 UART0 ボーレート選択回路
SMR0:CS2~CS0
(クロック入力ソース
選択ビット)
クロックセレクタ
CS2~CS0=000B~100B
[専用ボーレートジェネレータ]
φ/3,φ/4,
φ/5,φ/6,
φ/8
φ
通信プリスケーラ
(CDCR0:MD0,DIV3~DIV0)
[内部タイマ]
TMCSR0:CSL1, CSL0
クロックセレクタ
φ
分周回路
【クロック同期】
1/2, 1/4, 1/8,1/16,
1/32分周のいずれか
選択
【非同期】
内部固定分周比を選択
CS2~CS0=110B
ダウン UF
カウンタ
1/2【クロック同期】
1/32【非同期】
φ/21 φ/23 φ/25
プリスケーラ
16ビットリロードタイマ0
CS2~CS0=111B
[外部クロック]
SCK0
端子
φ :マシンクロック
UF:アンダフロー
418
1/1【クロック同期】
1/16【非同期】
SMR0:MD1,MD0
(動作モード選択ビット)
ボーレート
第 14 章 UART0
14.5.1
専用ボーレートジェネレータによるボーレート
UART0 の送受信クロックとして , 専用ボーレートジェネレータの出力クロックを選
択した場合のボーレートの設定を示します。
■ 専用ボーレートジェネレータによるボーレート
クロック入力ソース選択ビット (SMR0: CS2 ∼ CS0) を "000B" ∼ "100B" に設定するこ
とによって , 専用ボーレートジェネレータによるボーレートが設定されます。
専用ボーレートジェネレータで送受信クロックを生成する場合は,マシンクロック周波
数が通信プリスケーラで分周された後 , クロックセレクタで選択されるクロック入力
ソースに対して分周比を選択してボーレートを決定します。
通信プリスケーラによるマシンクロックの分周比は,非同期とクロック同期ともに共通
ですが , ボーレート決定の分周比は , 非同期とクロック同期とで異なります。
専用ボーレートジェネレータによるボーレート選択回路を図 14.5-2 に示します。
図 14.5-2 専用ボーレートジェネレータによるボーレート選択回路
SMR0:CS2~CS0
(クロック入力ソース選択ビット)
クロックセレクタ
φ
φ/3,φ/4,
φ/5,φ/6,
φ/8
通信プリスケーラ
(CDCR0:MD0,DIV3~DIV0)
φ :マシンクロック周波数
分周回路
【クロック同期】
1/2,1/4,1/8,1/16,1/32
分周のいずれか選択
【非同期】
内部固定分周比を選択
ボーレート
SMR0:MD1,MD0
(動作モード選択ビット)
● ボーレート計算式
非同期ボーレート =φ × div × ( 非同期転送クロック分周比 )
クロック同期ボーレート =φ × div × ( クロック同期転送クロック分周比 )
φ : マシンクロック周波数
div: 通信プリスケーラ分周比
419
第 14 章 UART0
● 通信プリスケーラによる分周比 ( 非同期 , クロック同期に共通 )
マシンクロックの分周比は , 通信プリスケーラレジスタの分周比選択ビット (CDCR0:
DIV3 ∼ DIV0) で設定します。
表 14.5-1 通信プリスケーラによる分周比
マシンクロック φ
(MHz)
分周比
div
通信プリスケーラ制御レジスタ 0
(CDCR0)
DIV3
DIV2
DIV1
DIV0
4
4
1
1
0
0
6
6
1
0
1
0
8
8
1
0
0
0
6
3
1
1
0
1
8
4
1
1
0
0
10
5
1
0
1
1
12
6
1
0
1
0
14
7
1
0
0
1
16
8
1
0
0
0
8
2
1
1
1
0
12
3
1
1
0
1
16
4
1
1
0
0
16
2
1
1
1
0
分周結果 φ /div
(MHz)
1
2
4
8
div: 通信プリスケーラ分周比
● ボーレート ( 非同期 )
非同期 / クロック同期ボーレートは , 通信プリスケーラの出力クロックを 2, 4, 8, 16, 32
分周して生成します。分周比はクロック入力ソース選択ビット (SMR0: CS2 ∼ CS0) で
設定します。
表 14.5-2 ボーレート ( 非同期 )
ボーレート選択ビット
ボーレート (bps)
算出式
CS2
CS1
CS0
φ/div=2MHz
φ/div=4MHz
φ/div=8MHz
0
0
0
9,615
19,230
38,460
(φ / div)/(8 × 13 × 2)
0
0
1
4,808
9,615
19,230
(φ / div)/(8 × 13 × 22)
0
1
0
2,404
4,808
9,615
(φ / div)/(8 × 13 × 23)
0
1
1
1,202
2,404
4,808
(φ / div)/(8 × 13 × 24)
1
0
0
31,250
62,500
-
(φ / div)/26
φ : マシンクロック周波数
div: 通信プリスケーラ分周比
420
第 14 章 UART0
● ボーレート ( クロック同期 )
表 14.5-3 ボーレート ( クロック同期 )
ボーレート選択ビット
ボーレート (bps)
算出式
CS2
CS1
CS0
φ/div=2MHz
φ/div=4MHz
φ/div=8MHz
0
0
0
1M
2M
予約
(φ / div)/2
0
0
1
500k
1M
2M
(φ / div)/22
0
1
0
250k
500k
1M
(φ / div)/23
0
1
1
125k
250k
500k
(φ / div)/24
1
0
0
62.5k
125k
250k
(φ / div)/25
φ : マシンクロック周波数
div: 通信プリスケーラ分周比
421
第 14 章 UART0
14.5.2
内部タイマ (16 ビットリロードタイマ 0) によるボー
レート
UART0 のクロック入力ソースとして , 16 ビットリロードタイマ 0 から供給される
内部クロックを選択する場合の設定とボーレートの計算式を示します。
■ 内部タイマ (16 ビットリロードタイマ 0 出力 ) によるボーレート
クロック入力ソース選択ビット (SMR0: CS2 ∼ CS0) を "110B" に設定することによって
内部タイマ (16 ビットリロードタイマ 0 出力 ) によるボーレートが設定されます。ボー
レートは , 16 ビットリロードタイマのカウントクロック分周比とリロード値を選択す
ることによって自由に設定できます。
内部タイマによるボーレートの選択回路を図 14.5-3 に示します。
• クロック入力ソースとして内部タイマ (16 ビットリロードタイマ ) を選択した (SMR0:
CS2 ∼ CS0) 場合 , 16 ビットリロードタイマ出力端子 (TOT) は内部接続されているの
で , 外部クロック入力端子 (SCK0) に外部接続する必要はありません。
• 16 ビットリロードタイマ 0 出力端子 (TOT) は , ほかで使用していなければ汎用入出
力ポートとして使用できます。
図 14.5-3 内部タイマ (16 ビットリロードタイマ出力 ) によるボーレート選択回路
SMR0:CS2~CS0=110B
(クロック入力ソース選択ビット)
クロックセレクタ
16ビットリロードタイマ0出力
(カウントクロック分周比と
リロード値によって周波数指定)
1/2【クロック同期】
1/32【非同期】
SMR0:MD1,MD0
(動作モード選択ビット)
422
ボーレート
第 14 章 UART0
● ボーレート計算式
φ
非同期ボーレート=
bps
X(n+1)×2×16
φ
クロック同期ボーレート=
bps
X(n+1)×2
φ: マシンクロック周波数
X : 16 ビットリロードタイマのカウントクロック分周比 (2, 8, 32)
n : 16 ビットリロードタイマの 16 ビットリロードレジスタ設定値 (0 ∼ 65,535)
● ボーレートとリロードレジスタ設定値の設定例 ( マシンクロック周波数 : 7.3728MHz の
場合 )
表 14.5-4 ボーレートとリロード値
リロード値
非同期 ( 調歩同期 )
ボーレート
(bps)
クロック同期
X=21 ( マシンク
ロックの 2 分周 )
X=23 ( マシンク
ロック 8 分周 )
X=21 ( マシンク
ロックの 2 分周 )
X=23 ( マシンク
ロックの 8 分周 )
38,400
2
−
47
11
19,200
5
−
95
23
9,600
11
2
191
47
4,800
23
5
383
95
2,400
47
11
767
191
1,200
95
23
1,535
383
600
191
47
3,071
767
300
383
95
6,143
1,535
X : 16 ビットリロードタイマのカウントクロック分周比
− : 設定不可
423
第 14 章 UART0
14.5.3
外部クロックによるボーレート
UART0 の送受信クロックとして , 外部クロックを選択した場合の設定ついて説明し
ます。
■ 外部クロックによるボーレート
外部クロック入力によるボーレートを選択する場合は , 次の設定が必要です。
• シリアルモードレジスタのクロック入力ソース選択ビット (SMR0:CS2 ∼ CS0) を
"111B" に設定します。
• SCK0 端子をポート方向レジスタ (DDR) で入力ポートに設定します。
• SCK0 端子を外部クロック入力端子に設定するため , シリアルクロック入出力許可
ビットを (SMR0:SCKE) を "0" に設定します。
• SCK0 端子から入力された外部クロックをもとに , ボーレートを設定します。内部の
分周比は固定されているので , ボーレートを変更する場合は外部の入力クロックの
周期を変更する必要があります。
図 14.5-4 外部クロックによるボーレート選択回路
SMR0:CS2~CS0=111B
(クロック入力ソース選択ビット)
クロックセレクタ
SCK0
1/1【クロック同期】
1/16【非同期】
端子
SMR0:MD1,MD0
(動作モード選択ビット)
● ボーレート計算式
非同期ボーレート = f/16
クロック同期ボーレート = f
f: 外部クロック周波数 (f は最大で 2MHz)
424
ボーレート
第 14 章 UART0
14.6
UART0 の動作説明
UART0 には , 双方向シリアル通信機能 ( 動作モード 0, 2) と , マスタ・スレーブ型接
続の通信機能 ( 動作モード 1) があります。
■ UART0 の動作
● 動作モード
UART0 の動作モードは 3 種類があり , CPU 間の接続方式やデータ通信方式を設定する
ことができます。
UART0 の動作モードを , 表 14.6-1 に示します。
表 14.6-1 UART0 の動作モード
データ長
動作モード
同期方式
パリティなし
0
ノーマル
モード
パリティあり
7 ビットまたは
8 ビット
非同期
ストップビット
長
1 ビットまたは 2
ビット* 2
1
マルチプロ
セッサモード
8+1 * 1
−
非同期
2
クロック同期
モード
8
−
クロック
同期
なし
− : 設定不可
*1 : "+1" は通信制御に使用するアドレス / データビット (A/D) です
*2 : 受信時のストップビットは 1 ビットのみ検出
<注意事項>
UART0 の動作モード 1 は , マスタ・スレーブ型接続時のマスタとしてのみ使用で
きます。
425
第 14 章 UART0
● CPU 間接続方式
CPU 間接続方式としては , 1 対 1 接続とマスタ・スレーブ型接続のどちらかを選択でき
ます。いずれの方式でも , データ長 , パリティ有無 , 同期方式は , すべての CPU 間で統
一しておく必要があります。動作モードは次のように選択します。
• 1 対 1 接続では , 2 つの CPU 間で動作モード 0, 2 のいずれか同じ方式を採用する必
要があります。非同期方式では動作モード 0 (SMR0: MD1,MD0=00B) を , クロック同
期方式では動作モード 2 (SMR0: MD1,MD0=10B) を設定してください。
• マスタ / スレーブ型接続では , 動作モード 1 (SMR0: MD1,MD0=01B) を設定します。
動作モード 1 を設定した場合は , マスタとして使用してください。なお , この接続
ではパリティなし , データ長 8 ビットに設定してください。
● 同期方式
非同期方式 ( 調歩同期 ) またはクロック同期方式を選択します。
● 信号方式
UART0 は , NRZ (Non Return to Zero) 形式のデータだけを扱えます。
● 送受信動作の開始
• シリアル制御レジスタの送信動作許可ビットを (SCR0: TXE) を "1" に設定すると , 送
信動作を開始します。
• シリアル制御レジスタの受信動作許可ビット (SCR0: RXE) を "1" に設定すると , 受
信動作を開始します。
● 送受信動作の停止
• シリアル制御レジスタの送信動作許可ビット (SCR0: TXE) を "0" に設定すると , 送
信動作を停止します。
• シリアル制御レジスタの受信動作許可ビット (SCR0: RXE) を "0" に設定すると , 受
信動作を停止します。
● 送受信中の停止
• 受信中 ( 受信用シフトレジスタへのデータ入力中 ) に受信動作を禁止 (SCR0: RXE=0)
した場合は , 受信中のフレームの受信を完了して , シリアル入力データレジスタ 0
(SIDR0) に受信データを格納してから受信動作を停止します。
• 送信中 ( 送信用シフトレジスタからのデータが出力中 ) に送信動作を禁止 (SCR0:
TXE=0) した場合は , シリアル出力データレジスタ 0 (SODR0) から送信用シフトレジ
スタに 1 フレームの送信が完了してから送信動作を停止します。
426
第 14 章 UART0
非同期モード ( 動作モード 0, 1) での動作
14.6.1
UART0 を動作モード 0 ( ノーマルモード ) または動作モード 1 ( マルチプロセッサ
モード ) で使用する場合は , 通信方式は非同期となります。
■ 非同期モードでの動作
● 送受信データフォーマット
送受信は , 必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット長の
送受信が LSB ファーストで行われ , ストップビット ("H" レベル ) で終了します。
• 動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティビッ
トは , あり / なしの選択ができます。
• 動作モード 1 では , データ長は 8 ビットに固定されます。パリティビットは付加さ
れません。9 ビット目に , アドレス / データビット (SCR0: A/D) が付加されます。
非同期モードの送受信データフォーマットを図 14.6-1 に示します。
図 14.6-1 送受信データフォーマット ( 動作モード 0, 1)
[動作モード0]
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP
SP
Pなし
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
SP
ST
D0
D1
D2
D3
D4
D5
D7
SP
ST
D0
D1
D2
D3
D4
D5
D7
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
P
SP
データ8bit
SP
Pあり
SP
Pなし
データ7bit
SP
Pあり
[動作モード1]
ST
D0
D1
D2
D3
D4
D5
D7
D8
A/D
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
A/D
SP
SP
データ8bit
ST :スタートビット
SP :ストップビット
P :パリティビット
A/D :アドレス/データビット
427
第 14 章 UART0
● 送信動作
• 送信データは , 送信データ書込フラグビット (SSR0: TDRE) に "1" がセットされてい
る状態で , シリアル出力データレジスタ 0 (SODR) に書き込みます。
• 送信データを書き込み , シリアル制御レジスタの送信動作許可ビット (SCR0: TXE)
を "1" に設定すると , 送信が開始されます。
• 送信データをシリアル出力データレジスタに書き込むと , 送信データ書込フラグ
ビット (SSR0: TDRE) は , いったん "0" にクリアされます。
• 送信データをシリアル出力データレジスタ 0 (SODR0) から送信用シフトレジスタに
書き込むと , 送信データ書込フラグビット (SSR0: TDRE) は再度 "1" にセットされま
す。
• 送信割込み許可ビット (SSR0: TIE) を "1" に設定していた場合は , 送信データ書込フ
ラグビット (SSR0: TDRE) が "1" にセットされると , 送信割込み要求が発生します。
割込み処理において , 次の送信データをシリアル出力データレジスタ 0 (SODR0) に
書き込めます。
● 受信動作
• 受信動作は , 受信動作の許可が設定されている場合では (SCR0: RXE=1), 常に行われ
ています。
• UART0 は受信データのスタートビットを検出すると , シリアル制御レジスタ 0 (SCR0)
に設定しているデータフォーマットに従って , 1 フレームのデータをシリアル入力
データレジスタ 0 (SIDR0) に受信します。
• 1 フレームのデータが受信完了すると , 受信データロードフラグビット (SSR0: RDRF)
が "1" にセットされます。
• 受信データを読み出す場合は , 1 フレームデータの受信完了後に , シリアルステータ
スレジスタ (SSR0) のエラーフラグの状態を確認し , 正常に受信が行われていれば ,
シリアル入力データレジスタ 0 (SIDR0) から受信データを読み出してください。受
信エラーが発生している場合は , エラー処理を行ってください。
• 受信データの読出しを行うと , 受信データロードフラグビット (SSR0: RDRF) は "0"
にクリアされます。
● スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H"( マークレベルを付加 ) にしてください。
• 通信線が "H"( マークレベル ) の期間に , 受信許可 (RXE="H") にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE="H") にしないでください。
正しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H"( マー
クレベル ) の間に受信禁止 (RXE="L") にしてください。
428
第 14 章 UART0
図 14.6-2 正常動作例
通信期間
非通信期間
マークレベル
SIN
スタートビット
ST
非通信期間
ストップビット
データ
D0
D1
D2
D3
D4
D5
D6
D7
SP
D7
SP
(01010101B送信)
RXE
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
(01010101B受信)
ST
●受信クロックを16分周してサンプリングクロックを生成
D0
D1
D2
D3
D4
D5
D6
以下の例のようなタイミングで受信許可に設定しますとマイコン側で入力データ
(SIN) が正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE="H") に設定した場合の動作例
図 14.6-3 異常動作例
通信期間
非通信期間
マークレベル スタートビット
SIN
(01010101B送信)
RXE
非通信期間
ストップビット
データ
ST
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
受信クロック
サンプリングクロック
マイコン側の認識
(10101010B受信)
ST認識
PE,ORE,FRE
●受信エラー発生
● ストップビット
1 ビットまたは 2 ビット長を選択できます。受信側では , 常に最初の 1 ビットだけを検
出します。
● エラー検出
• 動作モード 0 では , パリティエラー , オーバランエラー , フレームエラーが検出でき
ます。
• 動作モード 1 では , オーバランエラーとフレームエラーが検出できます。パリティ
エラーは検出できません。
429
第 14 章 UART0
● パリティビット
パリティビットの付加は , 動作モード 0 の場合のみ設定できます。パリティ付加許可
ビット (SCR0: PEN) でパリティの有無を , パリティ選択ビット (SCR0: P) で偶数パリ
ティ / 奇数パリティを設定できます。
動作モード 1, 2 では , パリティビットは付加できません。
パリティビット有効時の送受信データを図 14.6-4 に示します。
図 14.6-4 パリティビット有効時の送受信データ
受信の場合
SIN0
ST
SP
1
送信の場合
SOT0
1
1
0
0
1
0
1
ST
1
送信の場合
SOT0
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
SP
偶数パリティでの送信
(SCR0:PEN=1,P=0)
SP
奇数パリティでの送信
(SCR0:PEN=1,P=1)
0
ST
1
偶数パリティでの受信で
パリティエラーが発生
(SCR0:PEN=1,P=0)
1
データ
パリティ
ST:スタートビット
SP:ストップビット
(注意事項) 動作モード1, 2では,パリティビットは設定できません。
430
第 14 章 UART0
14.6.2
クロック同期モード ( 動作モード 2) での動作
UART0 を動作モード 2 で使用する場合は , クロック同期方式で通信を行います。
■ クロック同期モードでの動作
● 送受信データフォーマット
クロック同期モードでは , 8 ビットのデータを LSB ファーストで送受信します。送受
信データには , スタートビット , ストップビットは付加されません。
クロック同期モードの送受信データフォーマットを図 14.6-5 に示します。
図 14.6-5 送受信データフォーマット ( 動作モード 2)
シリアルクロックを出力して送信する場合
マークレベル
SCK0出力
SOT0
(LSB)
1
0
1
1
0
0
1
0
(MSB)
送信データ
送信データ書込み
TXE
シリアルクロックを入力して受信する場合
マークレベル
SCK0入力
SIN0
(LSB)
1
0
1
1
0
0
1
0
(MSB)
受信データ
RXE
受信データ読出し
431
第 14 章 UART0
● クロック供給
クロック同期方式では,送受信を行うフレームのビット数に等しい数のクロックの供給
が必要になります。
• 内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択している場
合 (SMR0: CS2 ∼ CS0=000B ∼ 100B または 110B) は , データを送信するとデータ受
信用同期クロックが自動的に生成されます。
• 外部クロックを選択している場合 (SMR0: CS2 ∼ CS0=111B) は , UART0 のシリアル
出力データレジスタ 0 (SODR0) に送信データがあること (SSR0: TDRE=0) を確認し
てから , 正確に 1 バイト分のクロックを外部から供給する必要があります。
また , 送信前と送信後は , 必ずマークレベル ("H" レベル ) に戻る必要があります。
● エラー検出
オーバランエラーのみ検出できます。パリティエラー, フレーミングエラーは検出でき
ません。
● レジスタの設定
クロック同期モード ( 動作モード 2) を使用し , 送信側から受信側へシリアルデータを
送る場合の制御レジスタは表 14.6-2 のように設定します。
表 14.6-2 制御レジスタの設定
設定内容
レジスタ名
ビット名
シリアルモード
レジスタ 0
(SMR0)
MD1,MD0
CS2,CS1,
CS0
送信側
( シリアルクロックを出力 )
受信側
( シリアルクロックを入力 )
クロック同期モードを設定 (MD1,MD0=10B)
クロック入力ソースを設定
• 専用ボーレートジェネレータ
(CS2 ∼ CS0=000B ∼ 100B)
クロック入力ソースを設定
• 外部クロック
(CS2 ∼ CS0=111B)
• 内部タイマ (CS2 ∼ CS0=110B)
シリアル制御
レジスタ 0
(SCR0)
SCKE
シリアルクロック出力を設定
(SCKE = 1)
シリアルクロック入力を設定
(SCKE = 0)
SOE
シリアルデータ出力端子に設定
(SOE = 1)
汎用入出力ポートに設定 (SOE =0)
PEN
CL
REC
シリアル
ステータスレジ
スタ 0 (SSR0)
432
パリティビットを付加しない (PEN = 0)
データ長 8 ビット (CL = 1)
エラーフラグの初期化 (REC = 0)
TXE
送信動作を許可 (TXE = 1)
送信動作を禁止 (TXE = 0)
RXE
受信動作を禁止 (RXE = 0)
受信動作を許可 (RXE = 1)
TIE
送信割込みを許可 (TIE = 1)
送信割込みを禁止 (TIE = 0)
RIE
受信割込みを禁止 (RIE = 0)
受信割込みを許可 (RIE = 1)
第 14 章 UART0
● 通信開始
シリアル出力データレジスタ 0 (SODR0) に送信データを書き込むと , 通信が開始され
ます。受信のみ行う場合でも通信を開始するには , 必ず仮の送信データをシリアル出力
データレジスタ 0 (SODR0) に書き込む必要があります。
● 通信終了
1 フレームのデータ送受信が終了すると , 受信データロードフラグビット (SSR0: RDRF)
に "1" がセットされます。データを受信した場合は , オーバランエラーフラグビット
(SSR0: ORE) をチェックし , 通信が正常に行われたかどうかを判断してください。
433
第 14 章 UART0
14.6.3
双方向通信機能 ( 動作モード 0, 2)
動作モード 0, 2 では , 1 対 1 接続のシリアル双方向通信ができます。同期方式は , 動
作モード 0 の場合は非同期 , 動作モード 2 の場合はクロック同期となります。
■ 双方向通信機能
UART0 を動作モード 0, 2 で使用するためには , 図 14.6-6 の設定が必要です。
図 14.6-6 UART0 の動作モード 0, 2 の設定
bit15 14
PEN
SCR0,SMR0
動作モード0
動作モード2
P
◎ ◎
0 ×
SSR0,
SIDR0/SODR0
動作モード0
動作モード2
13
12
11
10
9 bit8bit7 6
4
3
2
1 bit0
SBL CL
AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
◎
×
×
×
◎
1
0
0
◎
◎
◎
◎
PE ORE FRE RDRF TDRE - RIE TIE
◎ ◎
× ◎
5
◎
×
◎
◎
◎
◎
◎
◎
0
1
0
0
◎
◎
◎
◎
◎
◎
0
0
◎
◎
◎
◎
送信データを設定(ライトした場合)/
受信データを保持(リードした場合)
◎
◎
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN0入力端子,SCK0入力端子
として使用する端子に対応する
ビットを"0"に設定
● CPU 間の接続
2 つの CPU を接続します。
図 14.6-7 UART0 の双方向通信の接続例
SOT0
SOT0
SIN0
SCK0
CPU-1
434
SIN0
出力
入力
SCK0
CPU-2
第 14 章 UART0
● 通信手順
通信は , 送信データが準備できたときに任意のタイミングで送信側から開始します。送
信側はシリアル出力データレジスタ (SODR0) に送信データを設定し , シリアル制御レ
ジスタの送信動作許可ビット (SCR0: TXE) を "1" に設定して , 送信を開始してください。
正常に受信したことを送信側に示すために , 受信データを送信側に転送する例を , 図
14.6-8 に示します。
図 14.6-8 双方向通信フローの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
(0,1,2いずれか)
動作モード設定
(送信側と合わす)
SODR0に1バイトデータ
をセットして通信
データ送信
NO
受信データあり
YES
NO
受信データあり
受信データ読出し
と処理
YES
受信データ読出し
と処理
データ送信
1バイトデータ送信
435
第 14 章 UART0
マスタ / スレーブ型通信機能 ( マルチプロセッサ
モード )
14.6.4
動作モード 1 では , 複数 CPU のマスタ / スレーブ型接続による通信が可能です。た
だし , マスタ側でだけ機能します。
■ マスタ / スレーブ型通信機能
UART0 を動作モード 1 で使用するためには , 図 14.6-9 の設定が必要です。
図 14.6-9 UART0 の動作モード 1 の設定
bit15 14
SCR0,SMR0
SSR0,
SIDR0/SODR0
13
12
11
10
9 bit8bit7 6
5
4
3
2
1 bit0
PEN
P
SBL CL
AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
0
×
◎
◎
1
0
◎
◎
PE ORE FRE RDRF TDRE - RIE TIE
× ◎
◎
◎
◎
◎
0
1
◎
◎
◎
0
0
◎
送信データを設定(ライトした場合)/
受信データを保持(リードした場合)
◎
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN0入力端子,SCK0入力端子
として使用する端子に対応する
ビットを"0"に設定
● CPU 間の接続
2 本の共通通信ラインに一つのマスタ CPU と , 複数のスレーブ CPU を接続して , 通信
システムを構成します。UART0 は , マスタ CPU としてのみ使用できます。
図 14.6-10 UART0 のマスタ / スレーブ型通信の接続例
SOT
SIN
マスタCPU
SOT
SIN
スレーブCPU #0
436
SOT
SIN
スレーブCPU #1
第 14 章 UART0
● 機能選択
マスタ / スレーブ型通信では , 動作モードとデータ転送方式を選択してください。
動作モード 1 では , パリティチェック機能は使用できないので , パリティ許可ビット
(SCR0: PEN) は "0" に設定してください。
表 14.6-3 マスタ / スレーブ型通信機能の選択
動作モード
マスタ
CPU
スレーブ
CPU
データ
送受信
パリティ
同期方式
ストップ
ビット
なし
非同期
1 ビット
または 2
ビット
A/D=1
+
8 ビットアドレス
アドレス
送受信
動作
モード 1
データ
−
A/D=0
+
8 ビットデータ
437
第 14 章 UART0
● 通信手順
通信はマスタ CPU 側がアドレスデータを送信することによって開始されます。
アドレスデータとは ,A/D ビットを "1" としたデータで , アドレスデータビット (SCR0:
A/D) の付加によって通信先となるスレーブ CPU が選択されます。各スレーブ CPU は
プログラムでアドレスデータを判断し , 割り当てられたアドレスと一致する場合に , マ
スタ CPU との通信が開始されます。
マスタ / スレーブ型通信のフローチャートを図 14.6-11 に示します。
図 14.6-11 マスタ / スレーブ型通信フローチャート
(マスタCPU)
スタート
動作モードを1とする
SIN端子をシリアルデータ
入力に設定
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)
をセットして送信
(A/D=1)
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
ほかの
スレーブCPU
と通信
NO
YES
受信動作禁止
エンド
438
第 14 章 UART0
14.7
UART0 使用上の注意
UART0 を使用する場合は , 以下の点に注意してください。
■ UART0 使用上の注意
● 送受信の動作許可
UART0 には , 送信 , 受信のそれぞれに対して送信動作許可ビット (SCR0: TXE), 受信動
作許可ビット (SCR0: RXE) があります。
• リセット後の初期状態では , 送受信とも動作禁止に設定 (SCR0: TXE=0, RXE=0) され
ているので , 送受信を行う前に動作を許可する必要があります。
• 送受信動作を禁止 (SCR0: TXE=0, RXE=0) して , 送受信を中止することができます。
● 動作モードの設定について
動作モードは , 送受信動作を禁止 (SCR0: TXE=0, RXE=0) してから , 設定してください。
送受信中に動作モードを切り替えた場合 , 送受信されたデータは保証されません。
● クロック同期モードについて
UART0 の動作モード 2 は , クロック同期方式として設定されます。送受信データにス
タートビット , ストップビットは付加されません。
● 送信割込み許可のタイミング
送信データ書込み許可フラグビット (SSR0: TDRE) はリセット値が "1" ( 送信データな
し , 送信データ書込み許可 ) にセットされているので , 送信割込みを許可 (SSR0: TIE=1)
したと同時に , 送信割込み要求が発生します。必ず , 送信データを準備してから , 送信
割込みを許可 (SSR0: TIE=1) してください。
● クロック同期モード時のクロック設定
クロック同期モード時に専用ボーレートジェネレータを使用する場合,以下の設定は禁
止です。
1) CS2 ∼ CS0 = 000B
2) CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0 = 0000B
439
第 14 章 UART0
440
第 15 章
UART1
この章は , UART の機能と動作について説明しま
す。
15.1 UART1 の概要
15.2 UART1 のブロックダイヤグラム
15.3 UART1 の構成
15.4 UART1 の割込み
15.5 UART1 のボーレート
15.6 UART1 の動作説明
15.7 UART1 使用上の注意
15.8 UART1 のプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
441
第 15 章 UART1
15.1
UART1 の概要
UART1 は , 外部装置と同期通信または非同期通信を行うための汎用のシリアルデー
タ通信インタフェースです。
• クロック同期 , クロック非同期の双方向通信機能を備えています。
• マスタ / スレーブ型通信機能 ( マルチプロセッサモード ) を備えています ( マスタ
側のみ使用可能 )。
• 送信完了 , 受信完了 , 受信エラー検出で , 割込み要求を発生できます。
• 拡張インテリジェント I/O サービス EI2OS に対応しています。
■ UART1 の機能
● UART1 の機能
UART1 は , 外部装置とシリアルデータを送受信するための汎用シリアルデータ通信イ
ンタフェースであり , 表 15.1-1 の機能を備えています。
表 15.1-1 UART1 の機能
機 能
データバッファ
転送モード
• クロック同期 ( スタート / ストップビットなし , パリ
ティビットなし )
• クロック非同期 ( 調歩周期 )
ボーレート
• 専用ボーレートジェネレータを内蔵 , 8 種類の値を選
択可
• 外部クロック入力可
• 内部タイマ (16 ビットリロードタイマ 1) から供給され
るクロックを利用可
データ長
• 7 ビット ( 非同期ノーマルモードのみ )
• 8 ビット
信号方式
NRZ (Non Return to Zero) 方式
受信エラー検出
割込み要求
マスタ / スレーブ型通信機能
( 非同期マルチプロセッサモード時 )
<注意事項>
442
全二重ダブルバッファ
• フレーミングエラー
• オーバランエラー
• パリティエラー ( 動作モード 1( マルチプロセッサモー
ド ) 時は検出不可 )
• 受信割込み ( 受信 , 受信エラー検出 )
• 送信割込み ( 送信 )
• 送受信とも拡張インテリジェント I/O サービス
(EI2OS) に対応
1 ( マスタ ) 対 n ( スレーブ ) 間の通信が可能 ( マスタと
してのみ使用できます )
クロック同期転送時にスタートビット / ストップビットは付加されず , データのみ
を転送します。
第 15 章 UART1
表 15.1-2 UART1 の動作モード
データ長
動作モード
パリティあり
0
非同期モード
( ノーマルモード )
1
マルチプロセッサモード
2
同期モード
ストップ
ビット長
同期方式
パリティなし
7 ビットまたは 8 ビット
非同期
8+1 ビット *1
−
非同期
8 ビット
−
同期
1 ビットまたは
2 ビット *2
なし
− : 設定不可
*1: "+1" は通信制御に使用するアドレス / データ選択ビット (SCR1 レジスタの bit11 : A/D) です。
*2: 受信時のストップビットは 1 ビットのみを検出します。
443
第 15 章 UART1
15.2
UART1 のブロックダイヤグラム
UART1 は , 以下のブロックで構成されています。
■ UART1 のブロックダイヤグラム
図 15.2-1 UART1 のブロックダイヤグラム
制御バス
専用ボーレート
ジェネレータ
16ビット
リロードタイマ
受信割込み
要求出力
送信割込み
要求出力
送信クロック
クロック
セレクタ
受信クロック
受信制御回路
端子
SCK1
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
端子
SOT1
送信用
シフトレジスタ
受信用
シフトレジスタ
端子
SIN1
受信終了
シリアル入力
データレジスタ1
シリアル出力
データレジスタ1
受信状態判定回路
送信開始
EI2OS用受信エラー
発生信号
(CPUへ)
内部データバス
通信
プリスケーラ
制御レジスタ
444
MD
DIV2
DIV1
DIV0
シリアル
モード
レジスタ
1
MD1
MD0
CS2
CS1
CS0
RST
SCKE
SOE
シリアル
制御
レジスタ
1
PEN
P
SBL
CL
A/D
REC
RXE
TXE
シリアル
ステータス
レジスタ
1
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
第 15 章 UART1
● ブロックダイヤグラム中の端子などの詳細
UART1 の実際の端子名および割込み要求番号は以下のとおりです。
SIN1 端子
:P40/SIN1
SCK1 端子
:P41/SCK1
SOT1 端子
:P42/SOT1
送信割込み番号 1: #38 (26H)
受信割込み番号 1: #37 (25H)
● クロックセレクタ
専用ボーレートジェネレータ , 外部入力クロック , 内部タイマ (16 ビットリロードタイ
マ ) から供給されるクロックからの送受信クロックを選択してください。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , 受信パリティカウン
タで構成されます。受信ビットカウンタは受信データをカウントして , 指定されたデー
タ長の 1 フレームのデータ受信を完了すると , 受信割込み要求を出力します。
スタートビット検出回路は , シリアル入力信号からスタートビットを検出し , 受信デー
タをシリアル入力データレジスタへ指定された転送速度に応じて 1 ビットずつシフト
しながらシリアル入力データレジスタ (SIDR1) へ書き込みます。受信パリティカウン
タは , 受信データのパリティビットを検出します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , 送信パリティカウンタで構
成されます。送信ビットカウンタは送信データをカウントして , 指定されたデータ長の
1 フレームのデータ送信を完了すると , 送信割込み要求を出力します。送信スタート回
路は , シリアル出力データレジスタ (SODR1) への書込みにより送信を開始します。送
信パリティカウンタは ,「パリティあり」の場合にパリティビットを生成します。
● 受信用シフトレジスタ
SIN 端子から入力された受信データを , 1 ビットずつシフトしながら取り込み , 受信が
終了すると , シリアル入力データレジスタ (SIDR1) へ受信データを転送します。
● 送信用シフトレジスタ
シリアル出力データレジスタ (SODR1) に書き込まれたデータを送信用シフトレジスタ
自身へ転送し , 1 ビットずつシフトしながら SOT 端子へ出力します。
445
第 15 章 UART1
● シリアルモードレジスタ 1 (SMR1)
このレジスタは , 以下の動作を行います。
・動作モードの選択
・クロック入力ソース ( ボーレート ) の選択
・専用ボーレートジェネレータのセットアップ
・専用ボーレートジェネレータを使用したときのクロック速度(クロック分周値)の選択
・シリアルデータおよびクロック端子出力の許可または禁止を設定
・UART の初期化
● シリアル制御レジスタ 1 (SCR1)
このレジスタは , 以下の動作を行います。
・パリティの有無の設定
・パリティの種類の選択
・ストップビット長の設定
・データ長の設定
・動作モード 1 ( 非同期マルチプロセッサ ) 時におけるフレームデータ形式の選択
・エラーフラグのクリア
・送信の許可または禁止の設定
・受信の許可または禁止の設定
● シリアルステータスレジスタ 1 (SSR1)
送受信やエラーの状態を確認し , 送受信割込み要求の許可または禁止を設定します。
● シリアル入力データレジスタ 1 (SIDR1)
受信データを保持します。シリアル入力データは変換されてこのレジスタに格納され
ます。
● シリアル出力データレジスタ 1 (SODR1)
送信データを設定します。このレジスタに書き込まれたデータは , シリアル変換されて
出力されます。
● 通信プリスケーラ制御レジスタ (CDCR)
ボーレートジェネレータのボーレートを設定するレジスタです。通信プリスケーラの
起動 / 停止 , マシンクロックの分周比を設定します。
446
第 15 章 UART1
15.3
UART1 の構成
UART1 の端子 , 割込み要因 , レジスタの一覧および詳細を記載します。
■ UART1 の端子
UART1 で使用する端子は , 汎用入出力ポートと共用します。
端子の機能と UART1 で使用する場合の設定を表 15.3-1 に示します。
表 15.3-1 UART1 の端子
端子名
端子機能
SOT1
汎用入出力ポート /
シリアルデータ出力
SCK1
汎用入出力ポート /
シリアルクロック入出力
SIN1
汎用入出力ポート /
シリアルデータ入力
UART の使用に必要な設定
出力許可に設定
(SMR1 レジスタのビット 0: SOE = 1)
クロック入力時はポート方向レジスタ (DDR) で
入力ポートに設定
クロック出力時は出力許可に設定
(SMR1 レジスタのビット 1: SCKE = 1)
ポート方向レジスタ (DDR) で入力ポートに
設定
■ UART1 の端子のブロックダイヤグラム
<参考>
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」をご参照ください。
447
第 15 章 UART1
■ UART1 のレジスタ一覧
図 15.3-1 UART1 のレジスタとリセット値の一覧
ビット
シリアル制御レジスタ1(SCR1)
ビット
シリアルモードレジスタ1(SMR1)
ビット
シリアルステータスレジスタ1(SSR1)
ビット
シリアル入力データレジスタ1(SIDR1)/
シリアル出力データレジスタ1(SODR1)
15
14
13
12
11
10
9
8
0
0
0
0
0
1
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
1
0
0
0
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
(注)読出しの場合はSIDR1として機能し,書込みの場合はSODR1として機能します。
ビット
通信プリスケーラコントロールレジスタ1
(CDCR1)
15
14
13
12
11
10
9
8
0
×
×
×
0
0
0
0
× :不定
■ UART1 での割込み要求の発生
● 受信割込み
• 受信データがシリアル入力データレジスタ (SIDR1) へロードされると , シリアルス
テータスレジスタ (SSR1) の受信データロードフラグビット (bit12: RDRF) に "1" が
セットされます。受信割込みが許可されている場合は (bit9: RIE = 1), 割込みコント
ローラへ受信割込み要求を発生します。
• フレーミングエラー , オーバランエラー , パリティエラーのいずれかが発生すると ,
発生したエラーに応じてシリアルステータスレジスタ(SSR1)のフレーミングエラー
フラグビット (bit13: FRE), オーバランエラーフラグビット (bit14: ORE), パリティエ
ラーフラグビット (bit15: PE) に "1" がセットされます。受信割込みが許可されてい
る場合は (bit9: RIE = 1), 割込みコントローラへ受信割込み要求を発生します。
● 送信割込み
送信データがシリアル出力データレジスタ (SODR1) から送信用シフトレジスタに転送
されると , シリアルステータスレジスタ (SSR1) の送信データエンプティフラグビット
ビット (bit11: TDRE) に "1" がセットされます。送信割込みが許可されている場合は
(bit8: TIE = 1), 割込みコントローラへ割込み要求を発生します。
448
第 15 章 UART1
シリアル制御レジスタ 1 (SCR1)
15.3.1
シリアル制御レジスタ 1 (SCR1) は , パリティビットの設定 , ストップビット長や
データ長の選択 , 動作モード 1 ( 非同期マルチプロセッサモード ) 時のフレームデー
タ形式の選択 , 受信エラーフラグのクリア , 送受信の許可または禁止を設定します。
■ シリアル制御レジスタ 1 (SCR1)
図 15.3-2 シリアル制御レジスタ 1 (SCR1)
15
14
13
12
11
10
9
8
リセット値
00000100B
R/W R/W R/W R/W R/W
W
R/W R/W
bit8
TXE
0
1
bit9
RXE
0
1
bit10
REC
0
1
bit11
A/D
0
1
bit12
CL
0
1
bit13
SBL
0
1
送信許可ビット
送信禁止
送信許可
受信許可ビット
受信禁止
受信許可
受信エラーフラグクリアビット
PE,ORE,FREビットをクリア
影響なし
アドレス/データ選択ビット
データフレーム
アドレスフレーム
データ長選択ビット
7ビット
8ビット
ストップビット長選択ビット
1ビット長
2ビット長
bit14
P
0
1
R/W :リード ・ライト 可能
W :ライトオンリ
:リセット値
bit15
PEN
0
1
パリティ選択ビット
パリティありのとき(PEN = 1)のみ有効
偶数パリティ
奇数パリティ
パリティ付加許可ビット
パリティなし
パリティあり
449
第 15 章 UART1
表 15.3-2 シリアル制御レジスタ 1 (SCR1) の機能
ビット名
450
機 能
bit15
PEN:
パリティ付加許可
ビット
パリティビットの付加 ( 送信時 ) と検出 ( 受信時 ) を行うかどうかを
設定します。
( 注意事項 )
動作モード 1, 2 ( マルチプロセッサモード , 同期モード ) の場合
はパリティビットは付加できません。必ず "0" を設定してくだ
さい。
bit14
P:
パリティ選択
ビット
" パリティビットあり " ( PEN=1) を設定した場合 , 奇数パリティか偶
数パリティのいずれかを設定してください。
bit13
SBL:
ストップビット長
選択ビット
動作モード 0, 1 ( マルチプロセッサモード , 同期モード ) の場合のス
トップビット ( 送信データのフレームエンドマーク ) のビット長を
設定します。
( 注意事項 )
受信時は , 常にストップビットの 1 ビット目だけを検出します。
bit12
CL:
データ長選択
ビット
送受信データのデータ長を設定します。
( 注意事項 )
"7 ビット " を選択できるのは , 動作モード 0 ( 非同期ノーマル
モード ) の場合のみです。動作モード 1, 2 ( 非同期マルチプロ
セッサモード , クロック同期モード ) の場合は , 必ず "8 ビット "
を設定してください。
bit11
A/D:
アドレス / データ
選択ビット
動作モード 1 ( 非同期マルチプロセッサモード ) の場合に , 送受信す
るフレームのデータ形式を設定します。
"0" を設定した場合 : " データフレーム " が設定されます。
"1" を設定した場合 : " アドレスフレーム " が設定されます。
bit10
REC:
受信エラーフラグ
クリアビット
シリアルステータスレジスタ (SSR1) の受信エラーフラグ (bit15 ∼
13: PE, ORE, FRE) を "0" にクリアします。
"0" を設定した場合 : PE, ORE, FRE ビットがクリアされます。
"1" を設定した場合 : 影響しません。
リードした場合 : 常に "1" が読出されます。
( 注意事項 )
受信割込みを " 許可 " に設定していれば (bit9: RIE = 1), PE, ORE,
FRE ビットのいずれかが "1" にセットされている場合のみ ,
bit10:REC に "0" を設定してください。
bit9
RXE:
受信許可ビット
UART1 の受信を許可または禁止します。
"0" を設定した場合 : 受信は禁止されます。
"1" を設定した場合 : 受信は許可されます。
( 注意事項 )
受信中に受信を " 禁止 " に設定した場合は , 受信中のデータをシ
リアル入力データレジスタに格納した後に受信が停止します。
bit8
TXE:
送信許可ビット
UART1 の送信を許可または禁止します。
"0" を設定した場合 : 送信は禁止されます。
"1" を設定した場合 : 送信は許可されます。
( 注意事項 )
送信中に送信を禁止に設定した場合は , シリアル出力データレジ
スタ (SODR1) のデータの送信が完了した後に送信が停止しま
す。
"0" を設定する場合は , シリアル出力データレジスタ (SODR1) に
データを書込んだ後に非同期モードの場合であればボーレート
の 1/16 時間 , 同期モードの場合であればボーレートと同じ時間
以上待ってから設定してください。
第 15 章 UART1
シリアルモードレジスタ 1 (SMR1)
15.3.2
シリアルモードレジスタ 1 (SMR1) は , 動作モードおよびボーレートクロックの選択 ,
シリアルデータとクロックの端子への出力の許可または禁止を設定します。
■ シリアルモードレジスタ 1 (SMR1)
図 15.3-3 シリアルモードレジスタ 1 (SMR1)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
シリアルデータ出力許可ビット(SOT1端子)
SOE
汎用入出力ポートとする
0
UART1のシリアルデータの出力とする
1
bit1
SCKE
0
1
シリアルクロック入出力許可ビット(SCK1端子)
汎用入出力ポートまたはUARTのクロック入力端子とする
UART1のシリアルクロック出力端子とする
bit2
RST UART初期化ビット
0
影響なし
1
UART1のすべてのレジスタを初期化
bit5 bit4 bit3
CS2 CS1 CS0
クロック入力ソース選択ビット
"000B"~"101B"
専用ボーレートジェネレータによるボーレート
内部タイマ(16ビットリロードタイマ1)
"110B"
によるボーレート
外部クロックによるボーレート "111B"
bit7
bit6
MD1 MD0
R/W :リード ・ライト 可能
:リセット値
動作モード選択ビット
モードNo.
動作モード
0
0
0
非同期モード(ノーマルモード)
0
1
1
マルチプロセッサモード
1
0
2
同期モード
1
1
ー
設定禁止
451
第 15 章 UART1
表 15.3-3 シリアルモードレジスタ 1 (SMR1) の機能
ビット名
機 能
bit7,
bit6
MD0, MD1 :
動作モード選択
ビット
UART1 の動作モードを設定します。
( 注意事項 )
(1) 動作モード 1 ( 非同期マルチプロセッサモード ) では ,
マスタスレーブ型通信の , マスタとしてのみ使用でき
ます。動作モード 1 は 9 ビット目のアドレス / データ
ビットを受信できないので , スレーブとしては使用で
きません。
(2) 動作モード 1 ( 非同期マルチプロセッサモード ) では ,
パリティチェック機能は使用できないので , パリティ
付加許可ビットには " パリティなし " (SCR1 レジスタ
の bit15: PEN = 0) を設定してください。
bit5
∼
bit3
CS0 ∼ : CS2
クロック入力ソース
選択ビット
ボーレートのクロック入力ソースを設定します。
• クロック入力ソースは , 外部クロック (SCK1 端子 ), 内部
タイマ (16 ビットリロードタイマ ), 専用ボーレートジェ
ネレータから選択します。
• ボーレートジェネレータを選択する場合は , ボーレート
を設定してください。
( 注意事項 )
同期転送時に専用ボーレートジェネレータを使用する場
合 , 以下の設定は禁止です。
1) CS2 ∼ CS0 = 000B
2) CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0 = 0000B
bit2
RST:UART 初期化
ビット
UART1 のすべてのレジスタを初期化します。
"0" を設定した場合 : 影響しません。
"1" を設定した場合 :UART1 のすべてのレジスタを初期化し
ます。
bit1
SCKE:
シリアルクロック
入出力許可ビット
シリアルクロックの入出力を切替えます。
"0" を設定した場合 :" 汎用入出力ポート " または " シリアル
クロック入力端子 " が設定されます。
"1" を設定した場合 : " シリアルクロック出力端子 " が設定
されます。
( 注意事項 )
(1) SCK1 端子をシリアルクロック入力として使用する場
合は , ポート方向レジスタ (DDR) で端子を " 入力
ポート " に設定してください。また , クロック入力
ソース選択ビットによって外部クロックを選択
(bit5 ∼ 3: CS2 ∼ CS0 = 111B) してください。
(2) シリアルクロック出力として使用する場合は , クロッ
ク入力ソース選択ビットを外部クロック以外 (bit5 ∼
3: CS2 ∼ CS0 = 111B 以外 ) に設定してください。
bit0
452
SOE:
シリアルデータ出力
許可ビット
シリアルデータの出力を許可または禁止します。
"0" を設定した場合 :" 汎用入出力ポート " が設定されます。
"1" を設定した場合 : " シリアルデータ出力端子 " が設定さ
れます。
第 15 章 UART1
<注意事項>
シリアルモードレジシタの RST ビットに "0" を書き込む際には , UART の割込み
を禁止してください。以下の (1) ∼ (3) の手順のいずれかで行ってください。
• 割込みの禁止方法
(1) RST ビットに "0" を書き込む前に , I フラグをクリアして全割込み要因を禁止 し
てください。
(2) RST ビットに "0" を書き込む前に , ILM レジスタで UART の割込みを禁止してく
ださい。
(3) RST ビットに "0" を書き込む場合は , UART の割込みレベルと同じ割込みレベル
またはそれより優先度の高い割込み処理内で行ってください。
453
第 15 章 UART1
シリアルステータスレジスタ 1 (SSR1)
15.3.3
シリアルステータスレジスタ 1 (SSR1) は , 送受信やエラー状態の確認 , 割込みの許
可または禁止を設定します。
■ シリアルステータスレジスタ 1 (SSR1)
図 15.3-4 シリアルステータスレジスタ 11 (SSR1)
15
14
13
12
11
R
R
R
R
R
10
9
8
リセット値
00001000B
R/W R/W R/W
bit8
TIE
0
1
bit9
RIE
0
1
bit10
BDS
0
1
bit11
TDRE
0
1
bit12
RDRF
0
1
R/W :リード ・ライト 可能
R
:リードオンリ
:リセット値
454
送信割込み発生許可ビット
送信割込み発生を禁止
送信割込み発生を許可
受信割込み発生許可ビット
受信割込み発生を禁止
受信割込み発生を許可
転送方向選択ビット
LSBファースト(最下位ビットから転送)
MSBファースト(最上位ビットから転送)
送信データ書込みフラグビット
送信データあり(送信データの書込み禁止)
送信データなし(送信データの書込み許可)
受信データロードフラグビット
受信データなし
受信データあり
bit13
FRE
0
1
フレーミングエラーフラグビット
フレーミングエラーなし
bit14
ORE
0
1
オーバランエラーフラグビット
オーバランエラーなし
bit15
PE
0
1
パリティエラーフラグビット
パリティエラーなし
フレーミングエラーあり
オーバランエラーあり
パリティエラーあり
第 15 章 UART1
表 15.3-4 シリアルステータスレジスタ 1 (SSR1) の機能 (1 / 2)
ビット名
機 能
bit15
PE:
パリティエラー
フラグビット
受信データのパリティエラーを検出します。
• パリティエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR1 レジスタの bit10:
REC) に "0" を書き込むとクリアされます。
• 受信割込みが許可されている場合は (bit9: RIE = 1), パリ
ティエラーが発生すると受信割込み要求を発生します。
• パリティエラーフラグビットがセットされた場合は (bit15:
PE = 1), シリアル入力データレジスタ 1 (SIDR 1) のデータ
は無効です。
bit14
ORE:
オーバランエラー
フラグビット
受信時のオーバランエラーを検出します。
• オーバランエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR1 レジスタの bit10:
REC) に "0" を書込むとクリアされます。
• 受信割込みが許可されている場合は (bit9: RIE =1), オーバ
ランエラーが発生すると受信割込み要求を発生します。
• オーバランエラーフラグビットがセットされた場合は
(bit14: ORE = 1), シリアル入力データレジスタ 1 (SIDR 1)
のデータは無効です。
bit13
FRE:
フレーミングエラー
フラグビット
受信データのフレーミングエラーを検出します。
• フレーミングエラーが発生すると "1" がセットされます。
• 受信エラーフラグクリアビット (SCR1 レジスタのビット
10: REC) に "0" を書き込むとクリアされます。
• 受信割込みの発生が許可されている場合は (bit9: RIE = 1),
フレーミングエラーが発生すると受信割込み要求を発生し
ます。
• フレーミングエラーフラグビットがセット (bit13: FRE = 1)
された場合は , シリアル入力データレジスタ 1 (SIDR 1) の
データは無効です。
bit12
RDRF:
受信データロード
フラグビット
シリアル入力データレジスタ 1 の状態を示します。
• シリアル入力データレジスタ 1 (SIDR1) へ受信データが
ロードされると , "1" がセットされます。
• シリアル入力データレジスタ 1 (SIDR1) のデータを読み」
出すと "0" にクリアされます。
• 受信割込みを許可した場合は (bit9: RIE = 1), 受信データが
シリアル入力データレジスタ 1 (SIDR1) へロードされると
, 受信割込み要求が発生します。
bit11
TDRE:
送信データ書込み
フラグビット
シリアル出力データレジスタ 1 の状態を示します。
• シリアル出力データレジスタ 1 (SIDR1) へ送信データを書
き込むと , "0" にクリアされます。
• 送信用シフトレジスタにデータがロードされ送信が開始さ
れると "1" がセットされます。
• 送信割込みを許可した場合は (bit8: TIE = 1), シリアル出力
データレジスタ 1(SODR1) に書き込まれたデータが送信用
シフトレジスタへロードされる (bit11: TDRE = 1) と送信割
込み要求を発生します。
455
第 15 章 UART1
表 15.3-4 シリアルステータスレジスタ 1 (SSR1) の機能 (2 / 2)
ビット名
456
機 能
bit10
BDS:
転送方向選択ビット
シリアルデータの転送方向を設定します。
"0" を設定した場合 : 最下位ビット側から転送します
(LSB ファースト )。
"1" を設定した場合 : 最上位ビット側から転送します
(MSB ファースト )。
( 注意事項 )
シリアルデータレジスタへの読出しおよび書込み時に
データの上位側と下位側を入れ替えるため , シリアルア
ウトプットデータレジスタ (SODR1) にデータを書き込ん
だ後に , 転送方向選択ビット (BDS) を書き換えた場合は ,
書き込まれたデータは無効になります。
bit9
RIE:
受信割込み発生
許可ビット
受信割込みを許可または禁止します。
"1" を設定した場合 : シリアル入力データレジスタ 1 (SIDR1)
に受信データがロードされるか (bit12:
RDRF = 1), 受信エラーが発生すると
(bit15: PE = 1 または bit14:ORE = 1 また
は bit13:FRE = 1), 受信割込み要求が発
生します。
bit8
TIE:
送信割込み発生
許可ビット
送信割込みを許可または禁止します。
"1" を設定した場合 : シリアル出力データレジスタ 1
(SODR1) に書き込まれたデータが送信
用シフトレジスタへロードされると
(bit11: TDRE = 1), 送信割込み要求を発
生します。
第 15 章 UART1
15.3.4
シリアル入力データレジスタ 1 (SIDR1)/
シリアル出力データレジスタ 1 (SODR1)
シリアル入力データレジスタとシリアル出力データレジスタは同一アドレスに配置
されています。読み出した場合は , シリアルデータ入力用レジスタとして機能し , 書
き込んだ場合は , シリアルデータ出力用レジスタとして機能します。
■ シリアル入力データレジスタ 1(SIDR1)
図 15.3-5 シリアル入力データレジスタ 1(SIDR1)
bit7
6
5
4
3
2
1
bit0
リセット値
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
R
R
R
R
R
R
R
R
R :リードオンリ
X :不定
シリアル入力データレジスタ 1 (SIDR1) は , シリアルデータ受信用のデータバッファレ
ジスタです。
• シリアルデータ入力端子 (SIN1) に送られてきたシリアルデータ信号はシフトレジス
タで変換されて , シリアル入力データレジスタ 1 (SIDR1) へ格納されます。
• データ長が 7 ビットの場合は , 上位 1 ビット (SIDR1: D7) は無効データとなります。
• 受信データが , シリアル入力データレジスタ 1 (SIDR1) へ格納されると , 受信データ
ロードフラグビット (SSR1 レジスタの bit12: RDRF) に "1" がセットされます。受信
割込みが許可されている場合は (SSR1 レジスタの bit9: RIE = 1) 割込みコントローラ
へ受信割込み要求を発生します。
• シリアル入力データレジスタ 1 (SIDR1) は , 受信データロードフラグビット (SSR1 レ
ジスタの bit12: RDRF) が "1" の状態で読み出してください。受信データロードフラ
グビット (SSR1 レジスタの bit12: RDRF) は , シリアル入力データレジスタ 1 (SIDR1)
を読み出すと , 自動的に "0" にクリアされます。
• 受信エラーが発生 (SSR1 レジスタの bit15, 14, 13: PE, ORE, FRE のいずれかが "1") し
た場合 , シリアル入力データレジスタ 1(SIDR1) の受信データは無効となります。
457
第 15 章 UART1
■ シリアル出力データレジスタ 1(SODR1)
図 15.3-6 シリアル出力データレジスタ 1(SODR1)
7
6
5
4
3
2
1
bit0
リセット値
D7
D6
D5
D4
D3
D2
D1
D0
XXXXXXXXB
W
W
W
W
W
W
W
W
W :ライトオンリ
X :不定
シリアル出力データレジスタ 1 (SODR1) は , シリアルデータ送信用のデータバッファ
レジスタです。
• 送信動作が許可されている場合に (SCR1 レジスタの bit8: TXE = 1), 送信するデータ
をシリアル出力データレジスタ 1 (SODR1) へ書き込むと , 送信データが送信用シフ
トレジスタに転送され , シリアルデータに変換されて , シリアルデータ出力端子
(SOT1 端子 ) から送出されます。
• データ長が 7 ビットの場合 , 上位 1 ビット (SODR1 レジスタの bit7: D7) は無効デー
タとなります。
• 送信データ書込みフラグ (SSR1 レジスタの bit11: TDRE) は , 送信データがシリアル
出力データレジスタ 1 (SODR1) へ書き込まれると , "0" にクリアされます。
• 送信用シフトレジスタへの転送が終了すると , "1" がセットされます。
• 送信データ書込みフラグ (SSR1 レジスタの bit11: TDRE) が "1" の場合は , 次の送信
用データを書き込むことができます。送信割込みが許可 (SSR1 レジスタの bit8: TIE
= 1) されている場合は , 割込みコントローラへ送信割込み要求を発生します。次の
送信データの書込みは , 送信データ書込みフラグ (SCR1 レジスタの bit11: TDRE) が
"1" の状態で行ってください。
<注意機構>
458
シリアル出力データレジスタは書込み専用のレジスタであり , シリアル入力データ
レジスタは読出し専用のレジスタです。2 つのレジスタは同一アドレスに配置され
ているため書込み値と読出し値が異なります。したがって , INC/DEC 命令などの
リードモディファイライト (RMW) 系命令は使用できません。
第 15 章 UART1
通信プリスケーラ制御レジスタ (CDCR1)
15.3.5
通信プリスケーラ制御レジスタ 1 (CDCR1) は , UART1 の専用ボーレートジェネ
レータのボーレートを設定します。
• 通信プリスケーラの起動または停止
• マシンクロックの分周比の設定
■ 通信プリスケーラ制御レジスタ 1 (CDCR1)
図 15.3-7 通信プリスケーラ制御レジスタ 1 (CDCR1)
15
14
13
12
11
10
9
8
リセット値
0XXX0000B
R/W -
-
- R/W R/W R/W R/W
bit10 bit9 bit8
DIV2 DIV1 DIV0 通信プリスケーラ分周比(div)ビット
0
0
0
1分周
0
0
1
2分周
0
1
0
3分周
0
1
1
4分周
1
0
0
5分周
1
0
1
6分周
1
1
0
7分周
1
1
1
8分周
bit11
予約
0
bit15
MD
R/W :リード ・ライト 可能
X
:不定
- :未定義
:リセット値
予約ビット
必ず"0"を設定してください
通信プリスケーラ制御ビット
0
通信プリスケーラ動作停止
1
通信プリスケーラ動作許可
459
第 15 章 UART1
表 15.3-5 通信プリスケーラ制御レジスタ 1(CDCR 1) の機能
ビット名
<注意事項>
機 能
bit15
MD:
通信プリスケーラ
制御ビット
通信プリスケーラの動作を許可または停止します。
"0" を設定した場合 : 停止します。
"1" を設定した場合 : 許可します。
bit14
∼
bit12
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit11
予約 : 予約ビット
必ず "0" を設定してください。
bit10
∼
bit8
DIV0 ∼ DIV2:
通信プリスケーラ
分周比ビット
• マシンクロックの分周比を設定します。
( 注意事項 )
分周比を変更する場合は , クロック周波数を安定させるため
に , 次の通信を開始するまで最低でも分周クロックの 2 周期
分の時間をあけてください。
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定は禁止で
す。
CS2 ∼ CS0 = 000B
CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0 = 0000B
460
第 15 章 UART1
15.4
UART1 の割込み
UART1 の割込みには , 受信割込みと送信割込みがあり , 以下に示す要因で割込み要
求を発生することができます。
• 受信データがシリアル入力データレジスタ 1 (SIDR1) にロードされた場合
• 受信エラー ( パリティエラー , オーバランエラー , フレーミングエラー ) が発生し
た場合
• 送信データがシリアル出力データレジスタ 1 (SODR1) から送信用シフトレジスタ
へ転送された場合
なお , それぞれの拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ UART1 の割込み
UART1 の割込み制御ビットと割込み要因を表 15.4-1 に示します。
表 15.4-1 UART1 の割込み制御ビットと割込み要因
送受信
受信
送信
割込み要
求フラグ
ビット
動作モード
割込み要因
0
1
2
SSR1:
RDRF
○
○
○
受信データをシリアル
入力データレジスタ 1
(SIDR1) へロード
SSR1:
ORE
○
○
○
オーバランエラー
発生
SSR1:
FRE
○
○
×
フレーミング
エラー発生
SSR1:PE
○
×
×
パリティエラー
発生
○
シリアル出力
データレジスタ 1
(SODR1)
から送信データ
転送終了
SSR1:
TDRE
○
○
割込み要因
許可ビット
割込み要求フラ
グのクリア
受信データの
読出し
SSR1: RIE
SSR1: TIE
受信エラーフラ
グクリアビット
(SCR1 レジスタ
の bit10: REC)
への "0" 書込み
送信データの
書込み
○:有
×:無
461
第 15 章 UART1
● 受信割込み
受信割込みが許可されている場合に (SSR1 レジスタの bit9: RIE = 1), データ受信完了
(SSR1 レジスタの bit12: RDRF = 1), オーバランエラー(SSR1 レジスタの bit14: ORE = 1),
フレーミングエラー (SSR1 レジスタの bit13: FRE = 1), パリティエラー (SSR1 レジスタ
の bit15: PE = 1) のいずれかが発生すると割込みコントローラへ受信割込み要求を発生
します。
受信データロードフラグ (SSR1 レジスタの bit12: RDRF) は , シリアル入力データレジ
スタ 1 (SIDR1) を読み出すと , 自動的に "0" にクリアされます。各受信エラーフラグ
(SSR1 レジスタの bit15, 14, 13: PE, ORE, FRE) は受信エラーフラグクリアビット (SCR1
レジスタの bit10: REC) に "0" を書き込めば , すべて "0" にクリアされます。
<注意事項>
受信エラー ( パリティエラー , オーバランエラー , フレーミングエラー ) が発生し
た場合は , 必要に応じてエラーを処理した後 , 受信エラーフラグクリアビット
(SCR1 レジスタの bit10: REC) に "0" を書き込み , 各受信エラーフラグをクリアし
てください。
● 送信割込み
送信データがシリアル出力データレジスタ 1 (SODR1) から送信用シフトレジスタへ送
信されると , 送信データ書込みフラグビット (SSR1 レジスタの bit11: TDRE) に "1" が
セットされます。
送信割込みが許可されている場合は (SSR1 レジスタのビ bit8: TIE = 1), 割込みコント
ローラへ送信割込み要求を発生します。
■ UART1 の割込みと EI2OS
<参考>
割込み番号 , 割込み制御レジスタ , 割込みベクタアドレスについては ,「3.5 割込
み」をご参照ください。
■ UART1 の EI2OS 機能
UART1 は EI2OS 機能に対応しています。受信および送信の各割込みで別々に EI2OS を
起動することができます。
● 受信時
ほかのリソースの状態に関係なく , EI2OS を使用できます。
● 送信時
割込み制御レジスタ (ICR13, 14) を , UART1 の送信割込みと共有しているので , UART1
の受信で割込みを使用しない場合に , EI2OS を起動できます。
462
第 15 章 UART1
15.4.1
受信割込み発生とフラグセットのタイミング
受信時の割込みとしては , 受信完了 (SSR1 レジスタの bit12: RDRF) および受信エ
ラーの発生 (SSR1 レジスタの bit15, 14, 13: PE, ORE, FRE) があります。
■ 受信割込み発生とフラグセットのタイミング
● 受信データロードフラグと各受信エラーフラグのセット
データを受信する場合は , ストップビットの検出 ( 動作モード 0, 1: 非同期ノーマルモー
ド , 非同期マルチプロセッサモード ) または , データの最終ビット (SIDR1 レジスタの
bit7: D7) の検出 ( 動作モード 2: クロック同期モード ) によって , 受信データがシリアル
入力データレジスタ 1 (SIDR1) へ格納されます。受信エラーが発生した場合はエラーフ
ラグ (SSR1 レジスタの bit15, 14, 13: PE, ORE, FRE) がセットされ , 受信データロードフ
ラグ (SSR1 レジスタの bit12: RDRF) がセットされます。各動作モードともいずれかの
エラーフラグがセットされた場合は , 受信したシリアル入力データレジスタ 1 (SIDR1)
の受信データは無効です。
動作モード 0 ( 非同期ノーマルモード ) 時
ストップビットの検出時に , 受信データロードフラグビット (SSR1 レジスタの bit12:
RDRF) がセットされます。受信エラーが発生すると , エラーフラグ (SSR1 レジスタの
bit15, 14, 13: PE, ORE, FRE) がセットされます。
動作モード 1 ( 非同期マルチプロセッサモード ) 時
ストップビットを検出すると , 受信データロードフラグビット (SSR1 レジスタの bit12:
RDRF) がセットされます。受信エラーが発生すると , エラーフラグ (SSR1 レジスタの
bit14, 13: ORE, FRE) がセットされます。パリティエラー (SSR1 レジスタの bit15: PE) は
検出できません。
動作モード 2 ( クロック同期モード ) 時
受信データの最終ビット (SIDR1 レジスタの bit7: D7) を検出すると , 受信データロード
フラグビット (SSR1 レジスタの bit12: RDRF) に "1" がセットされます。受信エラーが
発生すると , エラーフラグ (SSR1 レジスタの bit14: ORE) がセットされます。パリティ
エラー (SSR1 レジスタの bit15: PE) およびフレーミングエラー (SSR1 レジスタの bit13:
FRE) は検出できません。
受信動作とフラグセットのタイミングを , 図 15.4-1 に示します。
463
第 15 章 UART1
図 15.4-1 受信動作とフラグセットのタイミング
受信データ
(動作モード0)
ST
D0
D1
D5
D6
D7
SP
受信データ
(動作モード1)
ST
D0
D1
D6
D7
A/D
SP
D0
D1
D4
D5
D6
D7
受信データ
(動作モード2)
SSR1:PE, ORE, FRE*
SSR1:RDRF
受信割込み発生
* :PEフラグは動作モード1では検出できません
PE, FREフラグは動作モード2では検出できません
ST :スタートビット
SP :ストップビット
A/D :動作モード2のアドレス/データ選択ビット ● 受信割込み要求発生のタイミング
受信割込みが許可されている場合に (SSR1 レジスタの bit9: RIE = 1), 受信データロード
フラグ (SSR1 レジスタの bit12: RDRF), パリティエラーフラグ (SSR1 レジスタの bit15:
PE), オーバランエラーフラグ (SSR1 レジスタの bit14: ORE), フレーミングエラーフラ
グ (SSR1 レジスタの bit13: FRE) のいずれかがセットされると , 割込みコントローラへ
受信割込み要求を発生します。
464
第 15 章 UART1
15.4.2
送信割込み発生とフラグセットのタイミング
送信割込みは , シリアル出力データレジスタ 1 (SODR1) が空になり , 次の送信デー
タの書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグセットのタイミング
● 送信データエンプティフラグビットのセットとクリア
送信データ書込みフラグビット (SSR1 レジスタの bit11: TDRE) は , シリアル出力デー
タレジスタ 1 (SODR1) に書き込まれた送信データが , 送信用シフトレジスタへロード
され , 次のデータが書込み可能な状態になるとセットされます。シリアル出力データレ
ジスタ1 (SODR1)に次の送信データを書き込むと送信データ書込みフラグビット(SSR1
レジスタの bit11: TDRE) は "0" にクリアされます。
送信動作とフラグセットのタイミングを図 15.4-2 に示します。
図 15.4-2 送信動作とフラグセットのタイミング
[動作モード0, 1]
送信割込み要求
送信割込み発生
SODR1書込み
SSR1:TDRE
SOT1出力
[動作モード2]
SP SP ST D0 D1 D2 D3
ST D0 D1 D2 D3 D4 D5 D6 D7 A/D
送信割込み発生
送信割込み発生
SODR1書込み
SSR1:TDRE
SOT1出力
D0 D1 D2 D3 D4 D5 D6 D7 D0 D1 D2 D3 D4 D5 D6 D7
ST :スタートビット
D0~D7 :データビット
SP :ストップビット
A/D :アドレス/データ選択ビット
● 送信割込み要求発生のタイミング
送信割込みが許可 (SSR1 レジスタの bit8: TIE = 1) されている場合に , 送信データ書込
みフラグビット (SSR1 レジスタの bit11: TDRE) がセットされると割込みコントローラ
へ送信割込み要求を発生します。
<注意事項>
送信中に送信を禁止 (SCR1 レジスタの bit8: TXE = 0, かつ動作モード 1 ( 非同期マ
ルチプロセッサモード ) 時の場合 , 受信禁止 (bit9:RXE も含む ) すると , 送信データ
書込みフラグビットがセットされ (SSR1 レジスタの bit11:TDRF = 1), 送信用シフ
トレジスタのシフト動作が停止してから UART1 の通信が禁止されます。送信が停
止する前にシリアル出力データレジスタ 1 (SODR1) に書き込まれていた送信デー
タは送信されます。
465
第 15 章 UART1
15.5
UART1 のボーレート
UART1 の送受信クロックとしては , 以下のいずれかを選択します。
• 専用ボーレートジェネレータ
• 内部クロック (16 ビットリロードタイマ出力 )
• 外部クロック (SCK1 端子入力のクロック )
■ UART1 のボーレートの選択
UART1 のボーレート選択回路は , 図 15.5-1 のように構成されています。クロック入力
ソースは以下の 3 種類の中から選択できます。
● 専用ボーレートジェネレータによるボーレート
• UART1 に内蔵されている専用ボーレートジェネレータをクロック入力ソースとし
て使用する場合は , 使用するボーレートに応じてシリアルモードレジスタ (SMR1) の
bit5 ∼ 3:CS2 ∼ CS0 ビットに "000B" ∼ "101B" を設定してください。6 種類のボー
レートから選択できます。
● 内部タイマによるボーレート
• 16 ビットリロードタイマから供給される内部クロックを , クロック入力ソースとし
て使用する場合は , シリアルモードレジスタ (SMR1) の bit ト 5 ∼ 3:CS2 ∼ CS0 ビッ
トに "110B" を設定してください。
• ボーレートは , クロック同期の場合は "16 ビットリロードタイマから供給されるク
ロックのまま ", 非同期の場合は " 供給されるクロックを 16 分周した値 " になります。
• 16 ビットリロードタイマの設定値によって , 自由にボーレートを設定できます。
● 外部クロックによるボーレート
• UART1のクロック入力端子(SCK1)から入力した外部クロックを,クロック入力ソー
スとして使用する場合は , シリアルモードレジスタ (SMR1) の bit5 ∼ 3: CS2 ∼ CS0
ビットに "111B" を設定してください。
• ボーレートは , クロック同期の場合は " 外部から供給されるクロック " のまま , ク
ロック非同期の場合は " 入力されたクロックを 16 分周した値 " になります。
466
第 15 章 UART1
図 15.5-1 UART ボーレート選択回路
SMR1:CS2~CS0
(クロック入力ソース選択ビット)
クロックセレクタ
CS2~CS0=000B~101B
[専用ボーレートジェネレータ]
φ
φ/1,φ/2,φ/3,φ/4,
φ/5,φ/6,φ/7,φ/8
通信プリスケーラ
(CDCR1:MD0,DIV2~DIV0)
[内部タイマ]
TMCSR1:CSL1, CSL0
クロックセレクタ
φ
ダウン UF
カウンタ
分周回路
【クロック同期】
1/1, 1/2, 1/4, 1/8,1/16,
1/32分周のいずれかを
選択
【非同期】
内部固定分周比を選択
CS2~CS0=110B
1/1【クロック同期】
1/16【非同期】
ボーレート
φ/21 φ/23 φ/25
プリスケーラ
16ビットリロードタイマ1
CS2~CS0=111B
[外部クロック]
SCK1
端子
φ :マシンクロック
1/1【クロック同期】
1/16【非同期】
SMR1:MD1,MD0
(動作モード選択ビット)
UF:アンダフロー
467
第 15 章 UART1
15.5.1
専用ボーレートジェネレータによるボーレート
UART1 の送受信クロックとして専用ボーレートジェネレータの出力クロックを選択
した場合のボーレートの設定を示します。
■ 専用ボーレートジェネレータによるボーレート
クロック入力ソース選択ビット (SMR1 レジスタの bit5 ∼ 3:CS2 ∼ CS0) に "000B" ∼
"101B" を設定することによって , 専用ボーレートジェネレータによるボーレートが設
定できます。
専用ボーレートジェネレータで送受信クロックを生成する場合は,マシンクロック周波
数が通信プリスケーラで分周された後 , クロックセレクタで選択されたクロック入力
ソースに対して分周比を選択して , ボーレートを決定します。
通信プリスケーラによるマシンクロックの分周比は,非同期とクロック同期ともに共通
ですが , ボーレート決定の分周比は , 非同期とクロック同期とで異なります。
専用ボーレートジェネレータによるボーレート選択回路を図 15.5-2 に示します。
図 15.5-2 専用ボーレートジェネレータによるボーレート選択回路
SMR1:CS2~CS0
(クロック入力ソース選択ビット)
クロックセレクタ
φ
φ/1,φ/2,φ/3,φ/4,
φ/5,φ/6,φ/7,φ/8
通信プリスケーラ
(CDCR1:MD0,DIV2~DIV0)
分周回路
【クロック同期】
1/1,1/2,1/4,1/8,1/16,1/32
分周のいずれかを選択
【非同期】
内部固定分周比を選択
ボーレート
SMR1:MD1, MD0
(動作モード選択ビット)
φ :マシンクロック
● ボーレート計算式
非同期ボーレート = φ × div × ( 非同期転送クロック分周比 )
クロック同期ボーレート = φ × div × ( クロック同期転送クロック分周比 )
φ : マシンクロック
div: 通信プリスケーラ分周比
468
第 15 章 UART1
● 通信プリスケーラによる分周比 ( 非同期 , クロック同期に共通 )
マシンクロックの分周比は , 通信プリスケーラレジスタの分周比選択ビット (CDCR1 レ
ジスタの bit10 ∼ 8: DIV2 ∼ DIV0) で設定します。
表 15.5-1 通信プリスケーラによる分周比
MD
DIV2
DIV1
DIV0
0
−
−
−
停止
1
0
0
0
1 分周
1
0
0
1
2 分周
1
0
1
0
3 分周
1
0
1
1
4 分周
1
1
0
0
5 分周
1
1
0
1
6 分周
1
1
1
0
7 分周
1
1
1
1
8 分周
div
div: 通信プリスケーラ分周比
● ボーレート ( 非同期 )
非同期モードのボーレートは,通信プリスケーラの出力クロックを使用して生成されま
す。分周比は , クロック入力ソース選択ビット (SMR1 レジスタの bit5 ∼ 3:CS2 ∼ CS0)
で設定してください。
表 15.5-2 ボーレート ( 非同期 )
CS2
CS1
CS0
非同期 ( スタート / ストップ同期 )
算出式
0
0
0
76,923bps
(φ / div)/(8 × 13 × 2)
0
0
1
38,461bps
(φ / div)/(8 × 13 × 4)
0
1
0
19,230bps
(φ / div)/(8 × 13 × 8)
0
1
1
9,615bps
(φ / div)/(8 × 13 × 16)
1
0
0
500kbps
(φ / div)/(8 × 2 × 2)
1
0
1
250kbps
(φ / div)/(8 × 2 × 4)
φ: マシンクロック周波数
div: 通信プリスケーラ分周比
469
第 15 章 UART1
● ボーレート ( 同期 )
同期モードのボーレートは , 通信プリスケーラの出力クロックを 1, 2, 4, 8, 16, 32 分周し
て生成されます。分周比は , クロック入力ソース選択ビット (SMR1 レジスタの bit5 ∼
3:CS2 ∼ CS0) で設定してください。
表 15.5-3 ボーレート ( クロック同期 )
CS2
CS1
CS0
CLK 同期
算出式
0
0
0
2Mbps
(φ / div)/ 1
0
0
1
1Mbps
(φ / div)/ 2
0
1
0
500kbps
(φ / div)/ 4
0
1
1
250kbps
(φ / div)/ 8
1
0
0
125kbps
(φ / div)/16
1
0
1
62.5kbps
(φ / div)/32
φ: マシンクロック周波数
div: 通信プリスケーラ分周比
470
第 15 章 UART1
15.5.2
内部タイマ (16 ビットリロードタイマ ) による
ボーレート
UART1 のクロック入力ソースとして , 16 ビットリロードタイマ 1 から供給される
内部クロックを選択する場合の設定とボーレートの計算式を示します。
■ 内部タイマ (16 ビットリロードタイマ出力 ) によるボーレート
クロック入力ソース選択ビット (SMR1 レジスタの bit5 ∼ 3: CS2 ∼ CS0) に "110B" を設
定することによって , 内部タイマ (16 ビットリロードタイマ出力 ) によるボーレートを
設定できます。ボーレートは , 16 ビットリロードタイマのカウントクロック分周比と
リロード値を選択することによって自由に設定できます。
内部タイマによるボーレートの選択回路を図 15.5-3 に示します。
• クロック入力ソースとして内部タイマ (16 ビットリロードタイマ ) を選択した (SMR
1 レジスタの bit5 ∼ 3: CS2 ∼ CS0) 場合 , 16 ビットリロードタイマ出力端子 (TOT)
は内部接続されているので , 外部クロック入力端子 (SCK) に外部接続する必要はあ
りません。
• 16 ビットリロードタイマ出力端子 (TOT) は , ほかで使用していなければ汎用入出力
ポートとして使用できます。
図 15.5-3 内部タイマ (16 ビットリロードタイマ出力 ) によるボーレート選択回路
SMR1:CS2~CS0=110B
(クロック入力ソース選択ビット)
クロックセレクタ
16ビットリロードタイマ出力
(カウントクロック分周比と
リロード値によって周波数指定)
1/1【クロック同期】
1/16 【非同期】
ボーレート
SMR1:MD1,MD0
(動作モード選択ビット)
471
第 15 章 UART1
● ボーレート計算式
非同期ボーレート=
クロック同期ボーレート=
φ/N
bps
16×2×(n+1)
φ/N
bps
2×(n+1)
φ: マシンクロック周波数
N : 16 ビットリロードタイマのプリスケーラによる分周比 (21, 23, 25)
n : 16 ビットリロードタイマのリロード値 (0 ∼ 65, 535)
● ボーレートとリロードレジスタ設定値の設定例(マシンクロック周波数: 7.3728MHzの場合)
表 15.5-4 ボーレートとリロード値
リロード値
ボーレート
(bps)
非同期 ( 調歩同期 )
クロック同期
N=21 ( マシンク
ロックの 2 分周 )
N=23 ( マシンク
ロックの 8 分周 )
N=21 ( マシンク
ロックの 2 分周 )
N=23 ( マシンク
ロックの 8 分周 )
38,400
2
−
47
11
19,200
5
−
95
23
9,600
11
2
191
47
4,800
23
5
383
95
2,400
47
11
767
191
1,200
95
23
1,535
383
600
191
47
3,071
767
300
383
95
6,143
1,535
N : 16 ビットリロードタイマのプリスケーラによる分周比
− : 設定不可
472
第 15 章 UART1
15.5.3
外部クロックによるボーレート
UART1 の送受信クロックとして外部クロックを選択した場合の設定ついて説明しま
す。
■ 外部クロックによるボーレート
外部クロック入力によるボーレートを選択する場合は , 以下の設定が必要です。
• シリアルモードレジスタのクロック入力ソース選択ビット (SMR1 レジスタの bit5 ∼
3:CS2 ∼ CS0) に "111B" を設定します。
• SCK1 端子をポート方向レジスタ (DDR) で入力ポートに設定します。
• シリアルクロック入出力許可ビットを (SMR1 レジスタの bit1:SCKE) に "0" を設定し
ます。
• SCK1 端子から入力された外部クロックをもとに , ボーレートを設定します。内部の
分周比は固定されているので , ボーレートを変更する場合は外部の入力クロックで
変更する必要があります。
図 15.5-4 外部クロックによるボーレート選択回路
SMR1:CS2~CS0=111B
(クロック入力ソース選択ビット)
クロックセレクタ
SCK1
端子
1/1【クロック同期】
1/16【非同期】
ボーレート
SMR1:MD1,MD0
(動作モード選択ビット)
● ボーレート計算式
非同期ボーレート = f/16 bps
クロック同期ボーレート = f bps
f: 外部クロック周波数 (f は最大で 2MHz)
473
第 15 章 UART1
15.6
UART1 の動作説明
UART1 機能には , 双方向シリアル通信機能 ( 動作モード 0, 2: 非同期ノーマルモー
ド , クロック同期モード ) と , マスタ・スレーブ型接続の通信機能 ( 動作モード 1: 非
同期マルチプロセッサモード ) があります。
■ UART1 の動作
● 動作モード
UART1 の動作モードは 3 種類があり , CPU 間の接続方式やデータ通信方式を設定する
ことができます。
UART1 の動作モードを , 表 15.6-1 に示します。
表 15.6-1 UART1 の動作モード
データ長
動作モード
同期方式
パリティなし
ストップビット長
パリティあり
0
ノーマル
モード
1
マルチプロ
セッサモード
8+1 ビット *1
−
非同期
2
クロック同期
モード
8 ビット
−
クロック
同期
7 ビットまたは 8 ビット
非同期
1 ビットまたは
2 ビット *2
なし
− : 設定不可
*1: "+1" は通信制御に使用するアドレス / データ選択ビット (SCR1 レジスタのビット 11:A/D)
です。
*2: 受信時のストップビットは 1 ビットのみを検出します。
<注意事項>
474
UART1 の動作モード 1 ( 非同期マルチプロセッサモード ) は , マスタ / スレーブ型
接続時のマスタ時のみ使用できます。
第 15 章 UART1
● CPU 間接続方式
CPU 間接続方式としては , 1 対 1 接続とマスタ / スレーブ型接続のどちらかを選択でき
ます。いずれの方式でも , データ長 , パリティ有無 , 同期方式は , すべての CPU 間で統
一しておく必要があります。動作モードは以下のように選択します。
• 1 対 1 接続では , 2 つの CPU 間で動作モード 0, 2 ( ノーマルモード , クロック同期
モード ) のいずれか同じ方式を採用する必要があります。非同期方式では動作モー
ド 1: 非同期マルチプロセッサモード (SMR1 レジスタの bit7, 6:MD1, MD0=00B) を ,
クロック同期方式では動作モード 2: クロック同期モード (SMR1 レジスタの bit7, 6:
MD1, MD0 = 10B) を設定してください。
• マスタ / スレーブ型接続では , 動作モード 1: 非同期マルチプロセッサモード (SMR 1
レジスタの bit7, 6: MD1, MD0 = 01B) を設定します。動作モード 1 ( 非同期マルチプ
ロセッサモード ) を設定した場合は , マスタとして使用してください。なお , この接
続時は , パリティなしとデータ長 (8 ビット ) を設定してください。
● 同期方式
非同期方式 ( 調歩同期 ) またはクロック同期方式を選択します。
● 信号方式
UART1 は , NRZ (Non Return to Zero) 形式のデータだけを扱えます。
● 送受信動作の開始
• シリアル制御レジスタの送信動作許可ビット (SCR1 レジスタの bit8: TXE) に "1" を
設定すると , 送信動作を開始します。
• シリアル制御レジスタの受信動作許可ビット (SCR1 レジスタの bit9: RXE) に "1" を
設定すると , 受信動作を開始します。
● 送受信動作の停止
• シリアル制御レジスタの送信動作許可ビット (SCR1 レジスタの bit8: TXE) に "0" を
設定すると , 送信動作を停止します。
• シリアル制御レジスタの受信動作許可ビット (SCR1 レジスタの bit9: RXE) に "0" を
設定すると , 受信動作を停止します。
● 送受信中の停止
• 受信中 ( 受信用シフトレジスタへのデータ入力中 ) に受信動作を禁止 (SCR1 レジス
タの bit9: RXE = 0) した場合は , 受信中のフレームの受信を完了して , シリアル入力
データレジスタ 1 (SIDR1) へ受信データを格納してから受信動作を停止します。
• 送信中 ( 送信用シフトレジスタからのデータが出力中 ) に送信動作を禁止 (SCR1 レ
ジスタの bit8: TXE = 0) した場合は , シリアル出力データレジスタ 1 (SODR1) から送
信用シフトレジスタへ 1 フレームの送信が完了してから送信動作を停止します。
475
第 15 章 UART1
非同期モード ( 動作モード 0, 1) 時の動作
15.6.1
UART1 を動作モード 0 ( 非同期ノーマルモード ) または動作モード 1 ( 非同期マルチ
プロセッサモード ) で使用する場合は , 通信方式は非同期となります。
■ 非同期モードでの動作
● 送受信データフォーマット
送受信は , 必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット長の
送受信は LSB ファーストで行われ , ストップビット ("H" レベル ) で終了します。
• 動作モード 0 ( 非同期ノーマルモード ) 時は , データ長として 7 ビットまたは 8 ビッ
トを選択します。パリティビットは , あり / なしを選択できます。
• 動作モード 1 ( 非同期マルチプロセッサモード ) 時は , データ長は 8 ビットに固定さ
れます。パリティビットは付加されません。9 ビット目に , アドレス / データビット
(SCR1 レジスタの bit11: A/D) が付加されます。
非同期モードの送受信データフォーマットを図 15.6-1 に示します。
図 15.6-1 送受信データフォーマット ( 動作モード 0, 1)
[動作モード0]
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
P
SP
ST
D0
D1
D2
D3
D4
D5
D7
SP SP
ST
D0
D1
D2
D3
D4
D5
D7
SP
ST
D0
D1
D2
D3
D4
D5
D7
P
SP SP
ST
D0
D1
D2
D3
D4
D5
D7
P
SP
Pなし
データ8bit
Pあり
Pなし
データ7bit
Pあり
[動作モード1]
ST
D0
D1
D2
D3
D4
D5
D7
D8
A/D
SP SP
ST
D0
D1
D2
D3
D4
D5
D7
D8
A/D
SP
データ8bit
ST :スタートビット
SP :ストップビット
P :パリティビット
A/D:アドレス/データビット
476
第 15 章 UART1
● 送信動作
• 送信データは , 送信データ書込みフラグビット (SSR1 レジスタの bit11: TDRE) に "1"
がセットされている状態で , シリアル出力データレジスタ 1 (SODR1) へ書込みます。
• 送信データを書き込み , シリアル制御レジスタの送信動作許可ビット (SCR1 レジス
タの bit8: TXE) に "1" を設定すると , 送信を開始します。
• 送信データをシリアル出力データレジスタ 1 (SODR1) へ書き込むと , 送信データ書
込みフラグビット (SSR1 レジスタのbit11: TDRE) は ,いったん "0" にクリアされます。
• 送信データをシリアル出力データレジスタ 1 (SODR1) から送信用シフトレジスタへ
書き込むと , 送信データ書込みフラグビット (SSR1 レジスタの bit11: TDRE) には再
度 "1" がセットされます。
• 送信割込み許可ビット (SSR1 レジスタの bit8: TIE) に "1" を設定していた場合は , 送
信データ書込みフラグビット (SSR1 レジスタの bit11: TDRE) に "1" がセットされる
と , 送信割込み要求を発生します。割込み処理において , 次の送信データをシリア
ル出力データレジスタ 1 (SODR1) へ書き込むことができます。
● 受信動作
• 受信動作は,受信動作の許可が設定されている場合は(SCR1レジスタのbit9: RXE=1),
常に行われています。
• UART1は受信データのスタートビットを検出すると,シリアル制御レジスタ1 (SCR1)
に設定しているデータフォーマットに従って , 1 フレームのデータを受信しシリア
ル入力データレジスタ 1 (SIDR1) にへ格納します。
• 1 フレームのデータの受信が完了すると , 受信データロードフラグビット (SSR1 レ
ジスタの bit12: RDRF) に "1" がセットされます。
• 受信データを読み出す場合は , 1 フレームデータの受信完了後に , シリアルステータ
スレジスタ 1 (SSR1) のエラーフラグの状態を確認し , 正常に受信していれば , シリ
アル入力データレジスタ 1 (SIDR1) から受信データを読み出してください。受信エ
ラーが発生している場合は , エラー処理を実行してください。
• 受信データを読み出すと , 受信データロードフラグビット (SSR1 レジスタの bit12:
RDRF) は "0" にクリアされます。
● スタートビット検出方法
スタートビットを検出するには , 以下のように設定してください。
• 通信期間直前は通信線を必ず "H" ( マークレベルを付加 ) にしてください。
• 通信線が "H" ( マークレベル ) の期間に , 受信許可 (RXE="H") にしてください。
• 非通信期間中 ( マークレベルを除く ) は , 受信許可 (RXE="H") にしないでください。
正しいデータが受信できません。
• ストップビット検出後 (RDRF フラグが "1" にセットされた後 ), 通信線が "H"( マー
クレベル ) の間に受信禁止 (RXE="L") にしてください。
477
第 15 章 UART1
図 15.6-2 正常動作例
通信期間
非通信期間
マークレベル
SIN
スタートビット
ST
非通信期間
ストップビット
データ
D1
D0
D3
D2
D4
D5
D6
D7
SP
D7
SP
(01010101B送信)
RXE
受信クロック
サンプリングクロック
●受信クロック(8パルス)
マイコン側の認識
(01010101B受信)
ST
●受信クロックを16分周してサンプリングクロックを生成
D1
D0
D3
D2
D4
D5
D6
以下の例のようなタイミングで受信許可に設定するとマイコン側で入力データ (SIN)
が正しく認識されませんので注意してください。
• 通信線が "L" の期間に , 受信許可 (RXE="H") に設定した場合の動作例
図 15.6-3 異常動作例
通信期間
非通信期間
マークレベル スタートビット
SIN
(01010101B送信)
RXE
非通信期間
ストップビット
データ
ST
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
D3
D4
D5
D6
D7
SP
SP
受信クロック
サンプリングクロック
マイコン側の認識
(10101010B受信)
ST認識
PE,ORE,FRE
●受信エラー発生
● ストップビット
1 ビットまたは 2 ビット長を選択できます。受信側では , 常に最初の 1 ビットだけを検
出します。
● エラー検出
• 動作モード 0 ( 非同期ノーマルモード ) 時は , パリティエラー , オーバランエラー ,
フレームエラーを検出できます。
• 動作モード 1 ( 非同期マルチプロセッサモード ) 時は , オーバランエラーとフレーム
エラーを検出できます。パリティエラーは検出できません。
478
第 15 章 UART1
● パリティビット
パリティビットの付加は , 動作モード 0( 非同期ノーマルモード ) の場合のみ設定でき
ます。パリティ付加許可ビット (SCR1 レジスタの bit15:PEN) でパリティの有無を , パ
リティ選択ビット (SCR1 レジスタの bit14:P) で偶数パリティ/ 奇数パリティを設定でき
ます。
動作モード1 (非同期マルチプロセッサモード)時は,パリティビットは付加できません。
パリティビット有効時の送受信データを図 15.6-4 に示します。
図 15.6-4 パリティビット有効時の送受信データ
受信の場合
SIN1
ST
SP
1
送信の場合
SOT1
1
1
0
0
1
0
1
ST
1
送信の場合
SOT1
0
0
1
1
0
0
1
0
0
1
1
0
0
1
0
SP
偶数パリティでの送信
(SCR1:PEN=1,P=0)
SP
奇数パリティでの送信
(SCR1:PEN=1,P=1)
0
ST
1
偶数パリティでの受信で
パリティエラーが発生
(SCR1:PEN=1,P=0)
1
データ
パリティ
ST:スタートビット
SP:ストップビット
(注意事項) 動作モード1では,パリティビットは設定できません。
479
第 15 章 UART1
15.6.2
クロック同期モード ( 動作モード 2) 時の動作
UART1 を動作モード 2 で使用する場合は , クロック同期方式で通信を行います。
■ クロック同期モードでの動作
● 送受信データフォーマット
クロック同期モード時は , 8 ビットのデータを LSB ファーストで送受信します。送受
信データには , スタートビット , ストップビットは付加されません。
クロック同期モードの送受信データフォーマットを図 15.6-5 に示します。
図 15.6-5 送受信データフォーマット ( 動作モード 2)
シリアルクロックを出力して送信する場合
マークレベル
SCK1出力
SOT1
(LSB)
1
0
1
1
0
0
1
0
(MSB)
送信データ
送信データ書込み
TXE
シリアルクロックを入力して受信する場合
マークレベル
SCK1入力
SIN1
(LSB)
1
0
1
1
0
0
1
0
(MSB)
受信データ
RXE
受信データ読出し
● クロック供給
クロック同期方式では,送受信を行うフレームのビット数に等しい数のクロックの供給
が必要になります。
• 内部クロック ( 専用ボーレートジェネレータまたは内部タイマ ) を選択している場
合 (SMR1 レジスタの bit5 ∼ 3:CS2 ∼ CS0 = 000B ∼ 101B または 110B) は , データを
送信するとデータ受信用同期クロックが自動的に生成されます。
• 外部クロックを選択している場合 (SMR1 レジスタの bit5 ∼ 3: CS2 ∼ CS0 = 111B) は ,
UART1 のシリアル出力データレジスタ 1 (SODR1) に送信データがあること (SSR1
レジスタの bit11: TDRE = 0) を確認してから , 正確に 1 バイト分のクロックを外部か
ら供給する必要があります。また , 送信前と送信後は , 必ずマークレベル ("H" レベ
ル ) に戻る必要があります。
480
第 15 章 UART1
● エラー検出
オーバランエラーのみ検出できます。パリティエラー, フレーミングエラーは検出でき
ません。
● レジスタの設定
クロック同期モード ( 動作モード 2) を使用し , 送信側から受信側へシリアルデータを
送る場合の制御レジスタは表 15.6-2 のように設定します。
表 15.6-2 制御レジスタの設定
設定内容
レジスタ名
ビット名
シリアルモード
レジスタ 1 (SMR1)
MD1, MD0
CS2, CS1,
CS0
送信側
( シリアルクロックを出力 )
受信側
( シリアルクロックを入力 )
クロック同期モードを設定 (MD1, MD0 = 10B)
クロック入力ソースを設定
• 専用ボーレートジェネレータ
(CS2 ∼ CS0 = 000B ∼ 101B)
クロック入力ソースを設定
• 外部クロック
(CS2 ∼ CS0 = 111B)
• 内部タイマ (CS2 ∼ CS0=110B)
シリアル制御
レジスタ 1 (SCR1)
SCKE
シリアルクロック出力を設定
(SCKE = 1)
シリアルクロック入力を設定
(SCKE = 0)
SOE
シリアルデータ出力端子に設定
(SOE = 1)
汎用入出力ポートに設定
(SOE = 0)
PEN
パリティビットを付加しない (PEN = 0)
CL
データ長 8 ビット (CL = 1)
REC
シリアルステータス
レジスタ 1 (SSR1)
エラーフラグの初期化 (REC = 0)
TXE
送信動作を許可 (TXE = 1)
送信動作を禁止 (TXE = 0)
RXE
受信動作を禁止 (RXE = 0)
受信動作を許可 (RXE = 1)
TIE
送信割込みを許可 (TIE = 1)
送信割込みを禁止 (TIE = 0)
RIE
受信割込みを禁止 (RIE = 0)
受信割込みを許可 (RIE = 1)
● 通信開始
シリアル出力データレジスタ 1 (SODR1) に送信データを書き込むと , 通信が開始しま
す。受信のみ行う場合でも通信を開始するには , 必ず仮の送信データをシリアル出力
データレジスタ 1 (SODR1) へ書き込む必要があります。
● 通信終了
1 つのフレームのデータ送受信が終了すると , 受信データロードフラグビット (SSR1 レ
ジスタの bit12: RDRF) に "1" がセットされます。データを受信した場合は , オーバラン
エラーフラグビット (SSR1 レジスタの bit14: ORE) をチェックし , 通信が正常に行われ
たかどうかを判断してください。
481
第 15 章 UART1
15.6.3
双方向通信機能 ( 動作モード 0, 2)
動作モード 0, 2 ( 非同期ノーマルモード , クロック同期モード ) 時は , 1 対 1 接続のシ
リアル双方向通信ができます。同期方式は , 動作モード 0 ( 非同期ノーマルモード )
の場合は非同期 , 動作モード 2 ( クロック同期モード ) の場合はクロック同期となり
ます。
■ 双方向通信機能
UART1 を動作モード 0, 2 ( 非同期ノーマルモード , クロック同期モード ) で使用する
ためには , 図 15.6-6 の設定が必要です。
図 15.6-6 UART1 の動作モード 0, 2 ( 非同期ノーマルモード , クロック同期モード ) の設定
bit15 14
13
12
11
10
9 bit8 bit7 6
5
4
3
2
1 bit0
PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
SCR1,SMR1
動作モード0
動作モード2
◎ ◎
0 ×
SSR1,
SIDR1/SODR1
動作モード0
動作モード2
◎
×
◎
1
×
×
0
0
◎
◎
◎
◎
PE ORE FRE RDRFTDRE - RIE TIE
◎ ◎
× ◎
◎
×
◎
◎
◎
◎
◎
◎
0
1
0
0
◎
◎
◎
◎
◎
◎
0
0
◎
◎
◎
◎
送信データを設定(ライトした場合)/
受信データを保持(リードした場合)
◎
◎
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN1入力端子やSCK1入力端子
として使用する端子に対応する
ビットに"0"を設定
● CPU 間の接続
2 つの CPU を接続します。
図 15.6-7 UART の双方向通信の接続例
SOT
SOT
SIN
SCK
CPU-1
482
SIN
出力
入力
SCK
CPU-2
第 15 章 UART1
● 通信手順
通信は , 送信データが準備できたときに任意のタイミングで送信側から開始します。送
信側はシリアル出力データレジスタ (SODR1) に送信データを設定し , シリアル制御レ
ジスタの送信動作許可ビット (SCR1 レジスタの bit8: TXE) に "1" を設定して , 送信を開
始してください。
正常に受信したことを送信側に示すために , 受信データを送信側に転送する例を , 図
15.6-8 に示します。
図 15.6-8 双方向通信フローの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
(0, 2いずれか)
動作モード設定
(送信側と合わす)
SODRに1バイトデータを
セットして通信
データ送信
受信データあり
NO
YES
受信データあり
受信データ読出し
と処理
NO
YES
受信データ読出し
と処理
データ送信
1バイトデータ送信
483
第 15 章 UART1
15.6.4
マスタ / スレーブ型通信機能 ( マルチプロセッサ
モード時 )
動作モード 1 ( 非同期マルチプロセッサモード ) 時は , 複数 CPU のマスタ / スレーブ
型接続による通信が可能です。ただし , マスタ側でのみ使用できます。
■ マスタ / スレーブ型通信機能
UART1 を動作モード 1 ( 非同期マルチプロセッサモード ) で使用するためには , 図 15.69 の設定が必要です。
図 15.6-9 UART1 の動作モード 1( 非同期マルチプロセッサモード ) の設定
bit15 14
13
12
11
10
9 bit8 bit7 6
5
4
3
2
1 bit0
PEN P SBL CL AD REC RXE TXE MD1 MD0 CS2 CS1 CS0 予約 SCKE SOE
SCR1,SMR1
0
SSR1,
SIDR1/SODR1
×
◎
1
◎
0
◎
◎
PE ORE FRE RDRFTDRE - RIE TIE
× ◎
◎
◎
◎
◎
0
1
◎
◎
◎
0
0
◎
送信データを設定(ライトした場合)/
受信データを保持(リードした場合)
◎
DDRポート方向レジスタ
-
◎
×
1
0
:未定義ビット
:使用ビット
:未使用ビット
:"1"を設定
:"0"を設定
SIN1入力端子やSCK1入力端子
として使用する端子に対応する
ビットに"0"を設定
● CPU 間の接続
2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレーブ CPU を接続して , 通信
システムを構成します。UART1 は , マスタ CPU としてのみ使用できます。
図 15.6-10 UART1 のマスタ / スレーブ型通信の接続例
SOT1
SIN1
マスタCPU
SOT
SIN
スレーブCPU #0
484
SOT
SIN
スレーブCPU #1
第 15 章 UART1
● 機能選択
マスタ / スレーブ型通信では , 動作モードとデータ転送方式を選択してください。
動作モード 1 ( 非同期マルチプロセッサモード ) 時は , パリティチェック機能は使用で
きないので , パリティ付加許可ビット (SCR1 レジスタの bit15:PEN) には "0" を設定し
てください。
表 15.6-3 マスタ / スレーブ型通信機能の選択
動作モード
マスタ
CPU
スレーブ
CPU
データ
送受信
パリティ
同期方式
ストップ
ビット
非同期
1 ビット
または
2 ビット
A/D=1
+
8 ビットアドレス
アドレス
送受信
動作
モード 1
データ
−
A/D=0
+
8 ビットデータ
なし
485
第 15 章 UART1
● 通信手順
通信は , マスタ CPU 側がアドレスデータを送信することによって開始します。
アドレスデータとは , A/D ビットが "1" のデータであり , アドレス / データ選択ビット
(SCR 1 レジスタの bit11:A/D) の付加によって , 通信先となるスレーブ CPU が選択され
ます。各スレーブ CPU はプログラムによりアドレスデータを判断し , 割り当てられた
アドレスと一致する場合に , マスタ CPU との通信が開始します。
マスタ / スレーブ型通信のフローチャートを図 15.6-11 に示します。
図 15.6-11 マスタ / スレーブ型通信フローチャート
(マスタCPU)
スタート
動作モード1(非同期
マルチプロセッサ
モード)を選択
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)
をセットして送信
(A/D=1)
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
ほかの
スレーブCPU
と通信
NO
YES
受信動作禁止
エンド
486
第 15 章 UART1
15.7
UART1 使用上の注意
UART1 を使用する場合は , 以下の点に注意してください。
■ UART1 使用上の注意
● 送受信の動作許可
UART1 には , 送信と受信のそれぞれに対して送信動作許可ビット (SCR1 レジスタの
bit8: TXE) と受信動作許可ビット (SCR1 レジスタの bit9: RXE) があります。
• リセット後の初期状態では,送受信とも動作禁止に設定(SCR1レジスタのbit8:TXE =
0, bit9:RXE = 0)されているので,送受信を行う前に動作を許可する必要があります。
• 送受信動作を禁止 (SCR1 レジスタの bit8: TXE = 0, bit9:RXE = 0) して , 送受信を中止
することができます。
● 動作モードの設定
動作モードは , 送受信動作を禁止 (SCR1 レジスタの bit8: TXE = 0, bit9:RXE = 0) してか
ら設定してください。送受信中に動作モードを切替えた場合 , 送受信されたデータは保
障されません。
● クロック同期モード
UART1 の動作モード 2 ( クロック同期モード ) は , クロック同期方式として設定されま
す。送受信データにスタートビットやストップビットは付加されません。
● 送信割込み許可のタイミング
送信データ書込み許可フラグビット (SSR1 レジスタの bit11: TDRE) はリセット値が "1"
( 送信データなし , 送信データ書込み許可 ) にセットされているので , 送信割込みを許
可 (SSR1 レジスタの bit8: TIE = 1) したと同時に , 送信割込み要求が発生します。必ず ,
送信データを準備してから , 送信割込みを許可 (SSR1 レジスタの bit8: TIE = 1) してく
ださい。
● クロック同期モード時のクロック設定
クロック同期モード時に専用ボーレートジェネレータを使用する場合,以下の設定は禁
止です。
1) CS2 ∼ CS0 = 000B
2) CS2 ∼ CS0 = 001B かつ , DIV3 ∼ DIV0 = 0000B
487
第 15 章 UART1
15.8
UART1 のプログラム例
UART1 のプログラム例を示します。
■ UART1 のプログラム例
● 処理
シリアル送受信を行うために UART1 の双方向通信機能 ( ノーマルモード ) を使用しま
す。
• 動作モード 0, 非同期モード ( ノーマル ), 8 ビットデータ長 , 2 ビットストップビット
長およびパリティなしを設定します。
• 通信には P40/SIN1 ピンと P42/SOT1 ピンを使用します。
• 専用ボーレートジェネレータを使用し , 約 9600 bps にボーレートを設定します。
• 文字 13H を SOT1 ピンから送信し , 割込みの発生により受信します。
• マシンクロック φ は 16 MHz と仮定します。
● コーディング例
ICR13 EQU
0000BDH
;UART送受信割込み制御レジスタ
DDR1 EQU
000011H
;ポート1データ方向レジスタ
CDCR1 EQU
00001BH
;通信プリスケーラレジスタ1
SMR1 EQU
000024H
;モード制御レジスタ1
SCR1 EQU
000025H
;制御レジスタ1
SIDR1 EQU
000026H
;入力データレジスタ1
SODR1 EQU
000026H
;出力データレジスタ1
SSR1 EQU
000027H
;状態レジスタ1
REC
EQU
SCR1:2
;受信エラーフラグクリアビット
;-------メインプログラム-----------------------------------------CODE CSEG ABS = 0FFH
START:
;
:
;スタックポインタ(SP)はすでに
;初期化されているものと仮定します
AND
CCR,#0BFH
;割込みをディスエーブルにします
MOV
I:ICR13,#00H
;割込みレベル0(優先順位が最も高い)
MOV
I:DDR1,#00000000B ;SIN1ピンを入力ピンとして設定します
MOV
I:CDCR1,#080H
;通信プリスケーラをイネーブルにします
MOV
I:SMR1,#00010001B ;動作モード0(非同期)
;専用ボーレートジェネレータ(9615 bps)
を使用します
;クロックパルス出力をディスエーブルに
し,データ出力をイネーブルにします
MOV
I:SCR1,#00010011B ;Nパリティなし。2ストップビット
;8データビットと受信エラーフラグを
クリアします
;送受信動作をイネーブルにします
488
第 15 章 UART1
I:SSR1,#00000010B ;送信割込みをディスエーブルにし,
受信割込みをイネーブルにします
MOV
I:SODR1,#13H
;送信データを書き込みます
MOV
ILM,#07H
;PSのILMをレベル7に設定します
OR
CCR,#40H
;割込みをイネーブルにします
LOOP: MOV
A,#00H
;無限ループ
MOV
A,#01H
BRA
LOOP
;------割込みプログラム-------------------------------------------WARI:
MOV
A,SIDR1
;受信データを読み込みます
CLRB I:REC
;受信割込み要求フラグをクリアします
;
:
;
ユーザ処理
;
:
RETI
;割込みから復帰します
CODE ENDS
;-------ベクトル設定---------------------------------------------VECT CSEG ABS=0FFH
ORG
0FF68H
;割込み#37(25H)のベクトルを設定します
DSL
WARI
ORG
0FFDCH
;リセットベクトルを設定します
DSL
START
DB
00H
;シングルチップモードを設定します
VECT ENDS
MOV
489
第 15 章 UART1
490
第 16 章
CAN コントローラ
この章では , CAN コントローラの機能と動作につ
いて説明します。
16.1 CAN コントローラの概要
16.2 CAN コントローラのブロックダイヤグラム
16.3 CAN コントローラの構成
16.4 CAN コントローラの割込み
16.5 CAN コントローラの動作説明
16.6 CAN コントローラの使用上の注意
16.7 CAN コントローラのプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
491
第 16 章 CAN コントローラ
16.1
CAN コントローラの概要
CAN (Controller Area Network) は , CANVer2.0A および Ver2.0B に準拠したシリ
アル通信プロトコルです。標準フレームフォーマットおよび拡張フレームフォー
マットでの送受信が可能です。
■ CAN コントローラの特長
• CAN コントローラフォーマットは , CANVer2.0A および Ver2.0B に準拠しています。
• 標準フレームフォーマットと拡張フレームフォーマットでの送受信が可能です。
• リモートフレーム受信によるデータフレームの自動送信ができます。
• ボーレートは , 10kbps ∼ 1Mbps( マシンクロック 16MHz 動作時 ) です。
表 16.1-1 データ転送ボーレート
マシンクロック
ボーレート (MAX)
16MHz
1Mbps
12MHz
1Mbps
8MHz
1Mbps
4MHz
500kbps
2MHz
250kbps
• 8 個の送受信メッセージバッファを備えています。
• 標準フレームフォーマットでは ID11bit, 拡張フレームフォーマットでは ID29bit での
送受信が可能です。
• メッセージデータは , 0 バイト∼ 8 バイトまで設定できます。
• マルチレベルのメッセージバッファ構成が可能です。
• CAN コントローラ内に 2 つのアクセプタンスマスクを内蔵しており , 2 つのアクセ
プタンスマスクは,受信メッセージIDに対してそれぞれ固有にマスク設定できます。
• 2 つのアクセプタンスマスクは , 標準フレームフォーマット , 拡張フレームフォー
マットでの受信が可能です。
• 全ビット比較 , 全ビットマスク , アクセプタンスマスクレジスタ 0/1 による部分的な
マスクの 4 種類が設定できます。
492
第 16 章 CAN コントローラ
CAN コントローラのブロックダイヤグラム
16.2
CAN コントローラは , CAN コントローラを制御するレジスタ , メッセージバッファ
を制御するレジスタで構成されます。
■ CAN コントローラのブロックダイヤグラム
図 16.2-1 CAN コントローラのブロックダイヤグラム
2
動作クロック(TQ)
F MC-16LXバス
CPU動作
クロック
BTR
CSR
PSC
TS1
TS2
RSJ
TOE
TS
RS
HALT
NIE
NT
NS1,0
プリスケーラ
(1~64分周)
ノードステータス
遷移割込み発生回路
バス状態
判定回路
ノードステータス
遷移割込み信号
アイドル,割込み,
サスペンド,送信,受信,
エラー,オーバロード
エラー
制御回路
RTEC
送信/受信
シーケンサ
BVALR
TREQR
シンクセグメント
タイムセグメント1
タイムセグメント2
ビットタイミング発生回路
送信バッファ
クリア
送信バッファ
決定回路
送信
バッファ
エラーフレーム
発生回路
データ アクセプタンス
カウンタ フィルタ制御回路
オーバロード
フレーム発生回路
送信 受信 ID選択
DLC DLC
ビットエラー,スタッフエラー,
CRCエラー,フレームエラー,
ACKエラー
送信バッファ
TCANR
アービトレーション
ロスト
出力
端子 TX
ドライバ
TRTRR
TIER
送信バッファのセット,クリア
送信完了
送信完了割込み発生回路
割込み信号
RCR
受信バッファのセット
RIER
RRTRR
受信完了
割込み信号
受信バッファ,送信バッファのセット,クリア
ROVRR
受信バッファ ID選択
のセット
TCR
AMR1
IDR0~7
DLCR0~7
DTR0~7
RAM
CRC
発生回路
送信DLC
スタッフ
CRC発生回路/エラーチェック エラー
受信完了割込み発生回路
受信シフトレジスタ
デスタッフィング/
スタッフィングエラーチェック
アービトレーションロスト
0
1
ビットエラー
アクセプタンス
フィルタ
受信バッファ
決定回路
受信バッファ
RAMアドレス
発生回路
ACK
発生回路
CRCエラー
受信DLC
AMSR
AMR0
スタッフィング
送信シフトレジスタ
RFWTR
アービトレーション
チェック
ビットエラー
チェック
ACKエラー
アクノレッジメント
エラーチェック
フォームエラー
フォーム
エラーチェック
入力
ラッチ
端子 RX
受信バッファ,送信バッファ,受信DLC,送信DLC,ID選択
IDER
LEIR
493
第 16 章 CAN コントローラ
ブロックダイヤグラム中の端子の名称は , 次のとおりです。
TX 端子 : P43/TX
RX 端子 : P44/RX
● ビットタイミングレジスタ (BTR)
CAN ビットタイミングを生成するための分周比を設定します。
● 制御ステータスレジスタ (CSR)
CAN コントローラの動作を制御します。送受信および CAN バスの状態表示 , 割込み制
御 , バス動作停止の制御および状態表示を行います。
● 送受信エラーカウンタレジスタ (RTEC)
送信エラーおよび受信エラーの発生回数を示します。メッセージの送信および受信時
にエラーが発生するとカウントアップし,正常に送信および受信動作が行われるとカウ
ントダウンします。
● メッセージバッファ有効レジスタ (BVALR)
指定したメッセージバッファを有効または無効に設定します。また , 有効 / 無効の状態
を示します。
● IDE レジスタ (IDER)
メッセージバッファのフレームフォーマットを設定します。標準フレームフォーマッ
トまたは拡張フレームフォーマットの設定を行います。
● 送信要求レジスタ (TREQR)
メッセージバッファに対する送信要求を設定します。
● 送信キャンセルレジスタ (TCANR)
メッセージバッファに保留されている送信要求を取り消します。
● 送信 RTR レジスタ (TRTRR)
メッセージバッファに送信されるフレームフォーマットを選択します。データフレー
ムまたはリモートフレームを選択します。
● リモートフレーム受信待ちレジスタ (RFWTR)
データフレームの送信要求が設定された場合に , 送信を開始する条件を設定します。
● 送信完了レジスタ (TCR)
メッセージの送信を完了したメッセージバッファ番号に対応するビットがセットされ
ます。
● 送信完了割込み許可レジスタ (TIER)
各メッセージバッファの送信完了時の割込み要求の発生を制御します。割込みを許可
している場合は , 送信完了時に割込み要求が発生します。
● 受信完了レジスタ (RCR)
メッセージの受信を完了したメッセージバッファ番号に対応するビットがセットされ
ます。
494
第 16 章 CAN コントローラ
● 受信完了割込み許可レジスタ (RIER)
各メッセージバッファの受信完了時の割込み出力を制御します。割込み要求の出力を
許可している場合は , 受信完了時に割込み要求を出力します。
● 受信 RTR レジスタ (RRTRR)
リモートフレームがメッセージバッファに格納されると,そのメッセージバッファ番号
に対応するビットがセットされます。
● 受信オーバランレジスタ (ROVRR)
メッセージ受信時にオーバランしたメッセージバッファ番号に対応するビットがセッ
トされます。
● アクセプタンスマスク選択レジスタ (AMSR)
各メッセージバッファに対して受信メッセージのマスク方法を設定します。
● アクセプタンスマスクレジスタ (AMR0, 1)
受信するメッセージをフィルタリングする ID によるマスクを設定するレジスタです。
● ラストイベント表示レジスタ (LEIR)
最後に発生した動作状態を示します。ノードステータス遷移 , 送信完了 , 受信完了のい
ずれかが発生したことを示します。
● プリスケーラ
システムクロックを 1 ∼ 64 分周したビットタイミングクロックを発生します。
動作クロック (TQ) の設定を行います。
● ビットタイミング発生回路
ビットタイミングクロック信号を検出してシンクセグメント , タイムセグメント 1, タ
イムセグメント 2 を発生します。
● ノードステータス遷移割込み発生回路
ノードステータスが遷移した場合にノードステータス遷移割込み信号を発生します。
● バス状態判定回路
バス動作停止ビット (CSR: HALT) およびエラーフレーム発生回路の信号から CAN バ
ス状態を判別します。
● アクセプタンスフィルタ
受信メッセージ ID とアクセプタンスコードを比較して , 受信するメッセージを選択し
ます。
● 送信メッセージバッファ / 受信メッセージバッファ
メッセージバッファは 8 個備えています。送受信するメッセージを格納します。
● CRC 発生回路 /ACK 発生回路
データフレームまたはリモートフレーム送信時に CRC フィールド , ACK フィールドを
発生します。
495
第 16 章 CAN コントローラ
16.3
CAN コントローラの構成
CAN コントローラの端子 , 関連するレジスタおよび割込み要因を示します。
■ CAN コントローラの端子
表 16.3-1 CAN コントローラの端子
端子名
端子機能
CAN で使用する場合の端子の設定
TX
送信出力端子
汎用入出力ポート
送信出力端子に指定
(CSR レジスタの TOE ビットを "1"
に設定した場合 )
RX
受信入力端子
汎用入出力ポート
受信入力端子に指定
(DDR4 レジスタの bit4 を "0" に設
定した場合 )
■ CAN コントローラの端子のブロックダイヤグラム
<参考>
496
端子のブロックダイヤグラムは ,「第 4 章 I/O ポート」を参照してください。
第 16 章 CAN コントローラ
■ CAN コントローラのレジスタ
CAN コントローラのレジスタ一覧を図 16.3-1 , 図 16.3-2 , 図 16.3-3 に示します。
図 16.3-1 CAN コントローラのレジスタ ( 制御レジスタ )
CANコントローラ制御レジスタ
bit15
bit8 bit7
bit0
リセット値
予約領域
*
BVALR(メッセージバッファ有効レジスタ)
00000000B
予約領域
*
TREQR(送信要求レジスタ)
00000000B
予約領域
*
TCANR(送信キャンセルレジスタ)
00000000B
予約領域*
TCR(送信完了レジスタ)
00000000B
予約領域
*
RCR(受信完了レジスタ)
00000000B
予約領域
*
RRTRR(受信RTRレジスタ)
00000000B
予約領域*
ROVRR(受信オーバランレジスタ)
00000000B
予約領域*
RIER(受信完了割込み許可レジスタ)
00000000B
bit15
bit8 bit7
bit0
CSR(制御ステータスレジスタ)
予約領域*
リセット値
00XXX000B
0XXXX001B
000XX000B
LEIR(ラストイベント表示レジスタ)
RTEC(送受信エラーカウンタ)
00000000B
00000000B
BTR(ビットタイミングレジスタ)
X1111111B
11111111B
予約領域*
IDER(IDEレジスタ)
XXXXXXXXB
予約領域
*
TRTRR(送信RTRレジスタ)
00000000B
予約領域
*
RFWTR(リモートフレーム受信待ちレジスタ)
XXXXXXXXB
予約領域*
TIER(送信完了割込み許可レジスタ)
00000000B
AMSR(アクセプタンスマスク選択レジスタ)
XXXXXXXXB
XXXXXXXXB
AMR0(アクセプタンスマスクレジスタ0)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
AMR1(アクセプタンスマスクレジスタ1)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
予約領域*
*:予約領域は,システム内で使用するアドレスのため,使用禁止です。
497
第 16 章 CAN コントローラ
図 16.3-2 CAN コントローラのレジスタ (ID レジスタ , DLC レジスタ )
メッセージバッファ(IDレジスタ)
bit15
bit8
bit7
bit0
XXXXXXXXB
~
~
XXXXXXXXB
IDR0(IDレジスタ0)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR1(IDレジスタ1)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR2(IDレジスタ2)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR3(IDレジスタ3)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR4(IDレジスタ4)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR5(IDレジスタ5)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR6(IDレジスタ6)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
IDR7(IDレジスタ7)
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
メッセージバッファ(DLCレジスタ)
bit15
bit8
bit7
bit0
リセット値
*
DLC0(DLCレジスタ0)
XXXXXXXXB
予約領域*
DLC1(DLCレジスタ1)
XXXXXXXXB
*
DLC2(DLCレジスタ2)
XXXXXXXXB
予約領域*
DLC3(DLCレジスタ3)
XXXXXXXXB
予約領域*
DLC4(DLCレジスタ4)
XXXXXXXXB
予約領域*
DLC5(DLCレジスタ5)
XXXXXXXXB
予約領域*
DLC6(DLCレジスタ6)
XXXXXXXXB
*
DLC7(DLCレジスタ7)
XXXXXXXXB
予約領域
予約領域
予約領域
*:予約領域は,システム内で使用するアドレスのため,使用禁止です。
498
リセット値
RAM(汎用RAM)(16byte)
第 16 章 CAN コントローラ
図 16.3-3 CAN コントローラのレジスタ (DTR レジスタ )
メッセージバッファ(DTRレジスタ)
bit15
bit8 bit7
bit0
リセット値
DTR0(データレジスタ0)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR1(データレジスタ1)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR2(データレジスタ2)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR3(データレジスタ3)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR4(データレジスタ4)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR5(データレジスタ5)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR6(データレジスタ6)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
DTR7(データレジスタ7)(8byte)
XXXXXXXXB
~
~
XXXXXXXXB
予約領域*(128byte)
*:予約領域は,システム内で使用するアドレスのため,使用禁止です。
■ CAN コントローラでの割込み要求の発生
CAN コントローラの割込みは , 送信完了割込み , 受信完了割込み , ノードステータス割
込みの 3 つの割込みがあり , それぞれ次の要因で割込み要求を発生します。
• メッセージバッファ (x) に対して送信完了割込みを許可した場合に (TIER: TIEx=1),
メッセージの送信が完了すると送信完了レジスタの TCx ビットに "1" がセットされ ,
送信完了割込み要求が発生します。
• メッセージバッファ (x) に対して受信完了割込みを許可した場合に (RIER: RIEx=1),
メッセージの受信が完了すると受信完了レジスタの RCx ビットに "1" がセットされ ,
受信完了割込み要求が発生します。
• ノードステータス遷移割込みを許可した場合に (CSR: NIE=1), ノードステータスが
遷移すると CAN ステータスレジスタの NT に "1" がセットされ , ノードステータス
遷移割込み要求が発生します。
499
第 16 章 CAN コントローラ
制御ステータスレジスタ上位 (CSR: H)
16.3.1
制御ステータスレジスタ (CSR) は , CAN コントローラの動作を制御するレジスタで
す。制御ステータスレジスタ上位 (CSR: H) では , メッセージの送信および受信およ
びノードステータスの状態表示を行います。
■ 制御ステータスレジスタ上位 (CSR: H)
図 16.3-4 制御ステータスレジスタ上位 (CSR: H)
15
14
13
12
11
10
9
8
R
R
-
-
-
R/W
R
R
リセット値
00XXX000B
bit9 bit8
ノードステータスビット
NS1 NS0
0
0
エラーアクティブ
0
1
ワーニング(エラーアクティブ)
エラーパッシブ
1
0
バスオフ
1
1
bit10
NT
ノードステータス遷移フラグ
0
ノードステータス遷移なし
1
ノードステータス遷移あり
R/W:リード ・ライト 可能
R :リード オンリ
X :不定
ー :未定義
:リセット値
<注意事項>
500
bit14
RS
受信ステータスビット
0
メッセージを受信していない
1
メッセージを受信中
bit15
TS
送信ステータスビット
0
メッセージを送信していない
1
メッセージを送信中
制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令 ( リー
ドモディファイライト ) を実行することは禁止されています。ただし , HALT ビッ
トが変化しないタイミング ( マクロの初期化時など ) では , ビット操作命令を使用
しても問題ありません。
第 16 章 CAN コントローラ
表 16.3-2 制御ステータスレジスタ上位 (CSR: H) の機能
ビット名
bit15
機 能
TS:
送信ステータスビット
メッセージが送信中かどうかを示します。
メッセージ送信中の場合 : "1" がセットされます。
エラーフレームまたはオーバロードフレームが送信され
ている場合 : "0" がセットされます。
bit14
RS:
受信ステータスビット
メッセージが受信中かどうかを示します。
メッセージ受信中の場合 : "1" がセットされます。
• メッセージがバス上にある場合 , 例えばメッセージ送
信中の場合でも , 同様に "1" がセットされます。受信
メッセージがアクセプタンスフィルタを通過したかど
うかには関係ありません。
エラーフレームまたはオーバロードフレームがバス上に
ある場合 : "0" がセットされます。
• RS ビットが "0" の場合には , バス動作停止状態
(HALT=1), インターミッション , バスアイドル状態の
場合も含まれます。
bit13
∼
bit11
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit10
NT:
ノードステータス遷移
フラグ
ノードステータスが遷移したことを示します。
ノードステータスが遷移した場合 : "1" がセットされま
す。
1) エラーアクティブ ("00B") →ワーニング ("01B")
2) ワーニング ("01B") →エラーパッシブ ("10B")
3) エラーパッシブ ("10B") →バスオフ ("11B")
4) バスオフ ("11B") → エラーアクティブ ("00B")
( ( ) 内は NS1, NS2 ビットの値を示します )
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 設定できません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
bit9
bit8
NS1, NS0:
ノードステータス
ビット
NS1 ビットおよび NS2 ビットの組合せによって , 現在の
ノードステータスを示します。
"00B" の場合 : エラーアクティブ
"01B" の場合 : ワーニング ( エラーアクティブ )
"10B" の場合 : エラーパッシブ
"11B" の場合 : バスオフ
( 注意事項 )
ワーニングは , ノードステータスとしては CAN 仕様
ではエラーアクティブに含まれます。
501
第 16 章 CAN コントローラ
制御ステータスレジスタ下位 (CSR: L)
16.3.2
制御ステータスレジスタ (CSR) は , CAN コントローラの動作を制御するレジスタで
す。制御ステータスレジスタ下位 (CSR: L) では , 送信割込みおよびノードステータ
ス遷移割込みの許可および禁止 , バス動作停止の制御および状態表示を行います。
■ 制御ステータスレジスタ下位 (CSR: L)
図 16.3-5 制御ステータスレジスタ下位 (CSR: L)
7
6
5
4
3
2
1
0
リセット値
0XXXX001B
R/W
-
-
-
-
R/W
W
R/W
bit0
HALT
バス動作停止ビット
リードした場合
ライトした場合
0
バス動作中
バス動作停止を解除
1
バス動作停止
バス動作停止をセット
bit1
予約
0
予約ビット
必ず“0”を設定してください
bit2
NIE
0
1
ノードステータス遷移割込み出力許可ビット
ノードステータス遷移での割込み出力禁止
ノードステータス遷移での割込み出力許可
bit7
R/W:リード・ライト 可能
W :ライト オンリ
X :不定
ー :未定義
:リセット値
<注意事項>
502
TOE
0
1
送信出力許可ビット
汎用入出力ポートとして使用
送信端子TXとして使用
制御ステータスレジスタ (CSR) の下位 8 ビットに対しては , ビット操作命令
( リードモディファイライト ) を実行することは禁止されています。ただし , HALT
ビットが変化しないタイミング ( マクロの初期化時など ) では , ビット操作命令を
使用しても問題ありません。
第 16 章 CAN コントローラ
表 16.3-3 制御ステータスレジスタ下位 (CSR: L) の機能 (1 / 2)
ビット名
機 能
bit7
TOE:
送信出力許可
ビット
汎用入出力ポートと送信端子 TX を切り換えます。
"0" を設定した場合 : 汎用入出力ポートとして機能します。
"1" を設定した場合 : 送信端子 TX として機能します。
bit6
∼
bit3
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
bit2
NIE:
ノードステータス
遷移割込み出力
許可ビット
ノードステータスが遷移した場合に (CSR: NT=1), ノードステータス遷移割込みの
発生を制御します。
"0" を設定した場合 : 割込み発生を禁止します。
"1" を設定した場合 : 割込み発生を許可します。
bit1
予約 :
予約ビット
必ず "0" を設定してください。
リードした場合 : 値は常に "0" です。
bit0
HALT:
バス動作停止
ビット
バス動作停止を制御します。また , HALT ビットを読み出すことによってバス動作
の停止状態を確認できます。
リードした場合
"0": バス動作中
"1": バス動作停止
ライトした場合
"0": バス動作停止を解除
"1": バス動作停止をセット
( 注意事項 )
• バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" に
なっていることを確認後 , "0" を書き込んでください。
参考プログラム例 :
switch (IO_CANCT0.CSR.bit.NS)
{
case 0:/* error active */
break;
case 1:/* warning */
break;
case 2:/* error passive */
break;
default:/* bus off */
for (i=0; (i<= 500) && (IO_CANCT0.CSR.bit.HALT= 0):i++);
IO_CANCT0.CSR.word = 0x0084; /* halt = 0 */
}
※変数 i はフェイルセーフのために使用します。
[ バス動作を停止する条件 ]
• ハードウェアリセット
• ノードステータスのバスオフへの遷移
• HALT ビットへの "1" の書込み
[ バス動作を停止した時の動作について ]
メッセージ送信中の場合 : 送信動作が終了してから停止します。
メッセージ受信中の場合 : 直ちに停止します。
メッセージバッファ格納中の場合 : メッセージの格納が終了してから停止します。
503
第 16 章 CAN コントローラ
表 16.3-3 制御ステータスレジスタ下位 (CSR: L) の機能 (2 / 2)
ビット名
bit0
504
HALT:
バス動作停止
ビット
機 能
( 注意事項 )
• バス動作が停止しているかどうかを確認するには , HALT ビットの値を読み出
してください。
• 低消費電力モードに切り換える場合は , HALT ビットに "1" を書き込んだ後 ,
HALT ビットを読み出してバス動作が完全に停止 (CSR: HALT=1 ) したことを
確認してから切り換えてください。
[ バス動作停止を解除する条件 ]
• ハードウェアリセットや HALT ビットに "1" を書き込むことによるバス動作が
停止した状態は , HALT ビットに "0" を書き込んで , 受信入力端子 (RX ) に連続
した 11 ビットの "H" レベル ( レセシブ ) を入力した後に解除されます。
• バスオフ時のバス動作停止状態は , HALT ビットに "0" を書き込んで , 受信入力
端子 (RX) に連続した 11 ビットの "H" レベル ( レセシブ ) を 128 回入力した後
に解除されます。
• 送信エラーカウンタおよび受信エラーカウンタの値は両方とも "0" に戻りノー
ドステータスはエラーアクティブに遷移します。
( 注意事項 )
• バスオフ時に HALT ビットに "0" を書き込む場合は , HALT ビットが "1" なっ
ていることを確認後 , "0" を書き込んでください。
[ バス動作停止中の状態 ]
• 送受信動作は行われません。
• 送信出力端子 (TX ) に "H" レベル ( レセシブ ) が出力されます。
• ほかのレジスタ , エラーカウンタの値は変化しません。
( 注意事項 )
• ビットタイミングレジスタ (BTR ) は , バス動作を停止してから設定してくださ
い。
第 16 章 CAN コントローラ
ラストイベント表示レジスタ (LEIR)
16.3.3
ラストイベント表示レジスタ (LEIR) は , 最後に発生したイベントの状態を示すレジ
スタです。
■ ラストイベント表示レジスタ (LEIR)
図 16.3-6 ラストイベント表示レジスタ (LEIR)
bit7
6
5
4
3
2
1
0
リセット値
000XX000B
R/W
R/W
R/W
-
-
R/W
R/W R/W
bit2
MBP2
0
0
0
0
1
1
1
1
bit1
MBP1
0
0
1
1
0
0
1
1
bit0
MBP0
0
1
0
1
0
1
0
1
メッセージバッファポインタビット
メッセージバッファ0
メッセージバッファ1
メッセージバッファ2
メッセージバッファ3
メッセージバッファ4
メッセージバッファ5
メッセージバッファ6
メッセージバッファ7
bit5
RCE
0
1
最終イベント=受信完了ビット
受信完了ではない
受信完了である
bit6
TCE
0
1
最終イベント=送信完了ビット
送信完了ではない
送信完了である
bit7
R/W :リード ・ライト 可能
X :不定
ー :未定義
:リセット値
<注意事項>
NTE
0
1
最終イベント=ノードステータス遷移ビット
ノードステータス遷移ではない
ノードステータス遷移である
最終イベントに対応して最終イベント = ノードステータス遷移ビット (NTE), 最終
イベント = 送信完了ビット (TCE), 最終イベント = 受信完了ビット (RCE) のいずれ
か 1 つが "1" にセットされると , ほかのビットは "0" になります。
505
第 16 章 CAN コントローラ
表 16.3-4 ラストイベント表示レジスタ (LEIR) の機能 (1 / 2)
ビット名
506
機 能
bit7
NTE:
最終イベントノード
ステータス遷移ビット
最終イベントがノードステータス遷移であることを示し
ます。
最終イベントがノードステータス遷移である場合 :
制御ステータスレジスタの NTx ビットがセットされ
ると (CSR: NTx=1), "1" がセットされます。
• 送信完了レジスタ (TCR) の TCx ビットがセットされ
るのと同時に NTE ビットに "1" がセットされます。
• 制御ステータスレジスタ (CSR) の NIE ビットの設定に
は関係ありません。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
bit6
TCE:
最終イベント送信完了
ビット
最終イベントが送信完了であることを示します。
最終イベントが送信完了である場合 :
送信完了レジスタの TCx ビットがセットされると
(TCR: TCx=1), "1" がセットされます。
• 送信完了割込み許可レジスタ (TIER) の設定には関係
ありません。
• MBP2 ∼ 0 ビットに , 最終イベントとしてメッセージ
の送信を完了したメッセージバッファ番号 (x) が示さ
れます。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
bit5
RCE:
最終イベント受信完了
ビット
最終イベントが受信完了であることを示します。
最終イベントが受信完了である場合 :
受信完了レジスタの RCx ビットがセットされると
(RCR: RCx=1), "1" がセットされます。
• 受信完了割込み許可レジスタ (RIER) の設定には関係
ありません。
• MBP2 ∼ 0 ビットに , 最終イベントとしてメッセージ
の受信を完了したメッセージバッファ番号 (x) が示さ
れます。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
bit4
bit3
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 影響しません。
第 16 章 CAN コントローラ
表 16.3-4 ラストイベント表示レジスタ (LEIR) の機能 (2 / 2)
ビット名
bit2
∼
bit0
<注意事項>
MBP2 ∼ 0:
メッセージバッファ
ポインタビット
機 能
メッセージバッファポインタビット最終イベントが発生
したメッセージバッファ番号 (x) を示します。
受信完了の場合 : メッセージの受信を完了したメッセー
ジバッファ番号 (x) を示します。
送信完了の場合 : メッセージの送信を完了したメッセー
ジバッファ番号 (x) を示します。
ノードステータス遷移の場合 : MBP2 ∼ 0 の値は無効で
す。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
ラストイベント表示レジスタ (LEIR) を CAN コントローラの割込み処理内でアクセ
スした場合は , 割込みを発生させたイベントはラストイベント表示レジスタ (LEIR)
の示すものとは必ずしも一致しません。割込み要求が発生してから割込み処理でラ
ストイベント表示レジスタ (LEIR) をアクセスするまでの間に , ほかのイベントが
発生することがあります。
507
第 16 章 CAN コントローラ
16.3.4
送受信エラーカウンタ (RTEC)
送受信エラーカウンタ (RTEC) は , メッセージの送信および受信のエラー発生回数を
示すレジスタです。送信または受信のエラーが発生した場合にカウントアップし , 正
常に行われた場合はカウントダウンします。
■ 送受信エラーカウンタ (RTEC)
図 16.3-7 送受信エラーカウンタ
bit15
14
13
12
11
10
9
8
TEC7
TEC6
TEC5
TEC4
TEC3
TEC2
TEC1
TEC0
R
R
R
R
R
R
R
R
7
6
5
4
3
2
1
0
REC7
REC6
REC5
REC4
REC3
REC2
REC1
REC0
R
R
R
R
R
R
R
R
リセット値
00000000B
リセット値
00000000B
R :リード オンリ
表 16.3-5 送受信エラーカウンタ (RTEC) の機能
ビット名
bit8
∼
bit15
TEC7 ∼ 0:
送信エラーカウンタ
機 能
送信エラーカウンタ値が 96 以上になった場合 :
ノードステータスは , ワーニング (CSR: NS1, NS0=
01B) に遷移します。
送信エラーカウンタ値が 128 以上になった場合 :
ノードステータスは , エラーパッシブ (CSR: NS1,
NS0=10B) に遷移します。
送信エラーカウンタ値が 256 以上になった場合 :
カウントアップを停止します。ノードステータスは ,
バスオフ (CSR: NS1, NS0=11B) に遷移します。
bit0
∼
bit7
REC7 ∼ 0:
受信エラーカウンタ
受信エラーカウンタ値が 96 以上になった場合 :
ノードステータスは , ワーニング (CSR: NS1, NS0=
"01B") に遷移します。
受信エラーカウンタ値が 128 以上になった場合 :
ノードステータスは , エラーパッシブ (CSR: NS1,
NS0=10B) に遷移します。
受信エラーカウンタ値が 256 以上になった場合 :
カウントアップを停止します。ノードステータスは ,
エラーパッシブ (CSR: NS1, NS0= 10B) を継続します。
508
第 16 章 CAN コントローラ
■ エラー発生によるノードステータス移行
CAN コントローラは , 送受信エラーカウンタ (RTEC) のエラーカウント数に応じて ,
ノードステータスが移行していきます。ノードステータスの移行を図 16.3-8 に示しま
す。
図 16.3-8 ノードステータス移行図
ハードウェアリセット
移行には,バス動作停止の解除が必要
エラー
アクティブ
REC:受信エラーカウンタ
TEC:送信エラーカウンタ
REC≧96
またはTEC≧96
REC<96
かつTEC<96
ワーニング
(エラー
アクティブ)
制御ステータスレジスタ(CSR)の
HALTビットに“0”を書き込んだ後,
連続した11ビットの“H”レベル
(レセシブ)が,受信入力端子(RX)
に128回入力されると移行
REC≧128
またはTEC≧128
REC<128
かつTEC<128
エラー
パッシブ
TEC≧256
バスオフ
(HALT=1)
表 16.3-6 ノードステータス
ノードステータス
エラーアクティブ
CAN バスの状態
正常な状態
ワーニング
バスに障害が発生
エラーパッシブ
バスオフ
通信不可。CAN バスから完全に切り離された状態
( この状態から正常な状態に復帰するには , 上図で示した手順
を踏む必要があります )
509
第 16 章 CAN コントローラ
16.3.5
ビットタイミングレジスタ (BTR)
ビットタイミングレジスタ (BTR) は , プリスケーラおよびビットタイミングの設定
を行うレジスタです。バス動作を停止させて (CSR: HALT=1) から設定してくださ
い。
■ ビットタイミングレジスタ (BTR)
図 16.3-9 ビットタイミングレジスタ (BTR)
bit15
14
13
12
11
10
9
8
TS2.2
TS2.1
TS2.0
TS1.3
TS1.2
TS1.1
TS1.0
ー
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
RSJ1
RSJ0
PSC5
PSC4
PSC3
PSC2
PSC1
PSC0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
X1111111B
リセット値
11111111B
R/W :リード・ライト可能
X :不定
ー :未定
表 16.3-7 ビットタイミングレジスタ (BTR) の機能
ビット名
機 能
bit14
∼
bit12
TS2. 2 ∼ 2. 0:
タイムセグメント 2
設定ビット 2 ∼ 0
•
タイムセグメント 2 (TSEG2) の時間を設定します。タ
イムセグメント 2 は , CAN 仕様のフェーズバッファセ
グメント 2 (PHASE_SEG2) に相当します。
bit11
∼
bit8
TS1. 3 ∼ 1. 0:
タイムセグメント 1
設定ビット 3 ∼ 0
•
タイムセグメント 1 (TSEG1) の時間を設定します。タ
イムセグメント 1 は , CAN 仕様のプロパゲーションセ
グメント (PROP_SEG) + フェーズバッファセグメント
1 (PHASE_SEG1) に相当します。
bit7
bit6
RSJ1, 0:
再同期ジャンプ幅設定
ビット 1, 0
•
再同期ジャンプ幅 (RSJW) の幅を設定します。
bit5
∼
bit0
PSC5 ∼ 0:
プリスケーラ設定
ビット 5 ∼ 0
•
システムクロックを分周して , CAN コントローラのタ
イムクォンタム (TQ) を決定します。
( 注意事項 )
ビットタイミングレジスタ (BTR) は , バス動作を停止させてから (CSR: HALT=1) 設定し
てください。ビットタイミングレジスタ (BTR) の設定が終了したら , 制御ステータスレ
ジスタの HALT ビットに "0" を書き込んでバス動作停止を解除してください。
510
第 16 章 CAN コントローラ
■ ビットタイミングセグメントの定義
ビットタイミングは , ビットタイミングレジスタ (BTR) で設定します。公称ビットタ
イム ( メッセージ内の 1 ビット分の時間 ) およびビットタイミングレジスタの各区分を
図 16.3-10 , 図 16.3-11 に示します。
● 一般 CAN 仕様のビットタイム区分
図 16.3-10 CAN 仕様のビットタイム区分
公称ビットタイム
SYNC_SEG
PROP_SEG
PHASE_SEG1
PHASE_SEG2
(シンクセグメント) (プロパゲーションセグメント)(フェーズセグメント1)(フェーズセグメント2)
サンプリングポイント
• SYNC_SEG ( シンクセグメント ): ビットタイムの短縮 , 延長のための同期化をとる
• PROP_SEG ( プロパゲーションセグメント ): ネットワーク間の物理的ディレイを補
正する
• PHASE_SEG ( フェーズセグメント ): 発振の誤差による位相のずれを補正する
● 富士通 CAN コントローラのビットタイム区分
プロパゲーションセグメント (PROP_SEG) とフェーズセグメント 1 (PHASE_SEG1) を
タイムセグメント 1 (TSEG1) として , 1 つのセグメントとして対応しています。フェー
ズセグメント 2 (PHASE_SEG2) はタイムセグメント 2 (TSEG2) として対応しています。
図 16.3-11 CAN コントローラのビットタイム区分
公称ビットタイム
SYNC_SEG
(シンクセグメント)
TSEG1
(タイムセグメント1)
TSEG2
(タイムセグメント2)
サンプリングポイント
• TSEG1 = PROP_SEG + PHASE_SEG1
• TSEG2 = PHASE_SEG2
511
第 16 章 CAN コントローラ
■ ビットタイミングの算出方法
入力クロック (CLK), タイムクォンタム (TQ), ビットタイム (BT), 同期セグメント
(SYNC_SEG), タイムセグメント 1, 2 (TSEG1, TSEG2), 再同期ジャンプ幅 (RSJW), 周波
数分周 (PSC) とした場合のビットタイミングの算出方法とビットタイミングの算出例
を図 16.3-12 , 図 16.3-13 に示します。
図 16.3-12 ビットタイミングの算出方法
・ TQ =(PSC + 1)× CLK
・ BT =SYNC_SEG + TSEG1 + TSEG2
=(1 +(TS1 + 1)+(TS2 + 1))×TQ
=(3 + TS1 + TS2)×TQ
・ RSJW =(RSJ + 1)×TQ
なお,それぞれのセグメントは,次の条件を満たす必要があります。
・PSCが1~63(2分周~64分周)の場合
TSEG1≧2TQ
TSEG1≧RSJW
TSEG2≧2TQ
TSEG2≧RSJW
・PSCが0(1分周)の場合
TSEG1≧5TQ
TSEG2≧2TQ
TSEG2≧RSJW
512
第 16 章 CAN コントローラ
図 16.3-13 ビットタイミングの算出例
例: 100kbpsの時に1TQが1ビットタイミングの1/20にした場合の設定(1/100kbps/20)
条件: (再同期ジャンプ幅が4TQ,遅延時間50μs)
μ
(単位: μs)
① 単位時間TQの算出 [TQ =(PSC + 1)× CLK]
マシンクロック(CLK)
4MHz(0.25μs)
8MHz(0.125μs)
16MHz(0.0625μs)
入力クロックの分周(PSC+1)
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0.25 0.5 0.75 1 1.25 1.5 1.75 2 2.25 2.5 2.75 3 3.25 3.5 3.75
0.13 0.25 0.38 0.5 0.63 0.75 0.88 1 1.13 1.25 1.38 1.5 1.63 1.75 1.88
0.06 0.13 0.19 0.25 0.31 0.38 0.44 0.5 0.56 0.63 0.69 0.75 0.81 0.88 0.94
④ ビットタイミング(BT)の条件 [BT≧8TQ]
マシンクロック(CLK)
4MHz(0.25μs)
8MHz(0.125μs)
16MHz(0.0625μs)
2
1
0.5
4
2
1
6
3
1.5
(単位: μs)
8
4
2
10
5
2.5
12
6
3
14
7
3.5
8TQ
16
8
4
18
9
4.5
20
10
5
22
11
5.5
24
12
6
26
13
6.5
28
14
7
30
15
7.5
③ 再同期ジャンプ幅の設定(再同期ジャンプ幅が4TQの場合)
RSJ+1(TQの分周)
RSJW=(RSJ + 1)×TQ
1
0.5
2
1
3
1.5
4 (単位: TQ)
2 (単位: μs)
1
1
0.5
2
2
1
3
3
1.5
4 (単位: TQ)
4 (単位: TQ)
2 (単位: μs)
⑤ TSEG2の条件
RSJW=(RSJ + 1)×TQ
TSEG2≧RSJW
TSEG2≧RSJW
⑥ TSEG1の条件
TSEG1≧Delay time + RSJW (遅延時間を50nsと仮定する)×2 + 4TQ≧5TQ
TSEG1
5(単位:TQ)
② 上記設定および条件でのビットタイム(BT)の算出
BT=SYNC_SEG + TSEG1 + TSEG2
=(1 +(TS1 + 1)+(TS2+1))×TQ
=(3 + TS1 + TS2)×TQ
サンプルポイントの算出
SYNC_SEG + (TSEG1 + 1) TSEG2 + 1
(1)
(2)
(3)
(4)
(5)
16
15
14
13
12
SYNC_SEG
4
5
6
7
8
TSEG 1 + 1 TSEG2 + 1
サンプルポイント
サンプル
ポイント
80%
TSEG1 + 1
75%
70%
65%
60%
(単位: kbps)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
1
667
500
400
333
286
250
222
200
182
167
154
143
133
125
118
111
2
500
400
333
286
250
222
200
182
167
154
143
133
125
118
111
105
3
400
333
286
250
222
200
182
167
154
143
133
125
118
111
105
100
TSEG2 + 1
5
4
333 286
286 250
250 222
222 200
200 182
182 167
167 154
154 143
143 133
133 125
125 118
118 111
111 105
105 100
100 95.2
95.2 90.9
(1) (2)
6
250
222
200
182
167
154
143
133
125
118
111
105
100
95.2
90.9
87
(3)
7
222
200
182
167
154
143
133
125
118
111
105
100
95.2
90.9
87
83.3
(4)
8
200
182
167
154
143
133
125
118
111
105
100
95.2
90.9
87
83.3
80
(5)
513
第 16 章 CAN コントローラ
メッセージバッファ有効レジスタ (BVALR)
16.3.6
メッセージバッファ有効レジスタ (BVALR) は , メッセージバッファの有効または無
効の設定およびそれらの状態表示を行うレジスタです。
■ メッセージバッファ有効レジスタ (BVALR)
図 16.3-14 メッセージバッファ有効レジスタ (BVALR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
BVAL0
0
1
bit1
BVAL1
0
1
bit2
BVAL2
0
1
bit3
BVAL3
0
1
bit4
BVAL4
0
1
bit5
BVAL5
0
1
bit6
BVAL6
0
1
R/W
514
:リード ・ライト 可能
:リセット値
bit7
BVAL7
0
1
メッセージバッファ有効ビット0
メッセージバッファ0を無効にする
メッセージバッファ0を有効にする
メッセージバッファ有効ビット1
メッセージバッファ1を無効にする
メッセージバッファ1を有効にする
メッセージバッファ有効ビット2
メッセージバッファ2を無効にする
メッセージバッファ2を有効にする
メッセージバッファ有効ビット3
メッセージバッファ3を無効にする
メッセージバッファ3を有効にする
メッセージバッファ有効ビット4
メッセージバッファ4を無効にする
メッセージバッファ4を有効にする
メッセージバッファ有効ビット5
メッセージバッファ5を無効にする
メッセージバッファ5を有効にする
メッセージバッファ有効ビット6
メッセージバッファ6を無効にする
メッセージバッファ6を有効にする
メッセージバッファ有効ビット7
メッセージバッファ7を無効にする
メッセージバッファ7を有効にする
第 16 章 CAN コントローラ
表 16.3-8 メッセージバッファ有効レジスタの機能
ビット名
bit7
∼
bit0
<注意事項>
BVAL7 ∼ 0:
メッセージバッファ
有効ビット 7 ∼ 0
機 能
メッセージバッファ有効ビット 7 ∼ 0 メッセージバッ
ファ (x) に対して , メッセージの送信および受信動作を有
効または無効に設定します。
"0" を設定した場合 : メッセージバッファ (x) に対して送
信および受信はできません。
"1" を設定した場合 : メッセージバッファ (x) に対して送
信および受信ができます。
[ メッセージバッファを無効に設定した場合 (BVALx=0)]
送信動作中の場合 : メッセージの送信完了または送信エ
ラー終了後に送信および受信はできな
くなります。
受信動作中の場合 : 直ちに送信および受信はできなくな
ります。ただし , メッセージバッファ
に受信メッセージを格納している場合
は , 格納後に送信および受信ができな
くなります。
( 注意事項 )
BVALx ビットに "0" を書き込んで , 実際に "0" に設定
されるまではリードモディファイライト (RMW) 系命
令は禁止されます。
CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値
が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信可能な状態 )
で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は ,「16.6 CAN コン
トローラの使用上の注意」に従ってください。
515
第 16 章 CAN コントローラ
IDE レジスタ (IDER)
16.3.7
IDE レジスタ (IDER) は , 送受信中に使用されるメッセージバッファのフレーム
フォーマットを設定するレジスタです。標準フォーマット (ID11bit) と拡張フォー
マット (ID29bit) での送受信ができます。
■ IDE レジスタ (IDER)
図 16.3-15 IDE レジスタ (IDER)
7
6
5
4
3
2
1
0
リセット値
XXXXXXXXB
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
IDE0
0
1
bit1
IDE1
0
1
bit2
IDE2
0
1
bit3
IDE3
0
1
bit4
IDE4
拡張フォーマット(ID29bit)で使用する
IDフォーマット選択ビット2(メッセージバッファ2)
標準フォーマット(ID11bit)で使用する
拡張フォーマット(ID29bit)で使用する
IDフォーマット選択ビット3(メッセージバッファ3)
標準フォーマット(ID11bit)で使用する
拡張フォーマット(ID29bit)で使用する
1
拡張フォーマット(ID29bit)で使用する
bit6
IDE6
0
1
bit7
IDE7
516
IDフォーマット選択ビット1(メッセージバッファ1)
標準フォーマット(ID11bit)で使用する
IDフォーマット選択ビット4(メッセージバッファ4)
標準フォーマット(ID11bit)で使用する
0
1
:不定
:リード ・ライト 可能
拡張フォーマット(ID29bit)で使用する
0
bit5
IDE5
X
R/W
IDフォーマット選択ビット0(メッセージバッファ0)
標準フォーマット(ID11bit)で使用する
0
1
IDフォーマット選択ビット5(メッセージバッファ5)
標準フォーマット(ID11bit)で使用する
拡張フォーマット(ID29bit)で使用する
IDフォーマット選択ビット6(メッセージバッファ6)
標準フォーマット(ID11bit)で使用する
拡張フォーマット(ID29bit)で使用する
IDフォーマット選択ビット7(メッセージバッファ7)
標準フォーマット(ID11bit)で使用する
拡張フォーマット(ID29bit)で使用する
第 16 章 CAN コントローラ
表 16.3-9 IDE レジスタ (IDER) の機能
ビット名
bit7
∼
bit0
<注意事項>
IDE7 ∼ 0:
ID フォーマット選択
ビット 7 ∼ 0
機 能
メッセージバッファ (x) の ID フォーマットを設定します。
"0" を設定した場合 : 標準フォーマット (ID11bit) で使用
します。
"1" を設定した場合 : 拡張フォーマット (ID29bit) で使用
します。
( 注意事項 )
IDE レジスタ (IDER) は , 設定するメッセージバッファ
(x) を無効 (BVALR: BVALx=0) にしてから設定してく
ださい。メッセージバッファ (x) が有効になっている
状態で IDE レジスタ (IDER) を設定すると , 不要な受
信メッセージが格納される恐れがあります。
CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値
が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信可能な状態 )
で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は ,「16.6 CAN コント
ローラの使用上の注意」に従ってください。
517
第 16 章 CAN コントローラ
送信要求レジスタ (TREQR)
16.3.8
送信要求レジスタ (TREQR) は , メッセージバッファごとの送信要求の設定および送
信要求状態を表示するレジスタです。
■ 送信要求レジスタ (TREQR)
図 16.3-16 送信要求レジスタ (TREQR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
TREQ0
0
1
bit1
TREQ1
0
1
bit2
TREQ2
0
1
bit3
TREQ3
0
1
bit4
TREQ4
0
1
bit5
TREQ5
0
1
bit6
TREQ6
0
1
R/W
518
:リード ・ライト 可能
:リセット値
bit7
TREQ7
0
1
送信要求ビット0(メッセージバッファ0)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット1(メッセージバッファ1)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット2(メッセージバッファ2)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット3(メッセージバッファ3)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット4(メッセージバッファ4)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット5(メッセージバッファ5)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット6(メッセージバッファ6)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
送信要求ビット7(メッセージバッファ7)
送信要求しない(送信要求されていない)
送信要求する(送信要求されている)
第 16 章 CAN コントローラ
表 16.3-10 送信要求レジスタ (TREQR) の機能
ビット名
bit7
∼
bit0
<参考>
TREQ7 ∼ 0:
送信要求ビット 7 ∼ 0
機 能
メッセージバッファ (x) に対する送信動作を開始します。
"0" を設定した場合 : 影響しません。
"1" を設定した場合 : メッセージバッファ (x) に対する送
信動作を開始します。
• 送信完了ビットを複数セットした場合は (TREQx=1),
送信要求されたメッセージバッファ番号 (x) の小さい
順に送信動作が開始されます。
• 送信要求中は "1" のままです。送信を完了またはキャ
ンセルすると "0" にクリアされます。
• 送信完了などによる送信要求のクリア (TREQx=0) と ,
"0" 書込みによる送信要求ビットのセット (TREQx=1)
が同時だった場合は , 送信要求のクリア (TREQx=0) が
優先されます。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
[ リモートフレーム受信待ちビット (RFWTR: RFWTx) の
設定 ]
RFWTx ビットが "0" の場合 :
直ちに送信動作が開始されます。受信 RTR レジス
タの RRTRx ビットが "1" であっても直ちに送信動作
が開始されます。
RFWTx ビットが "1" の場合 :
リモートフレームが受信されてから , 送信動作が開
始されます。
• リモートフレーム受信待ちレジスタ (RFWTR) については ,「16.3.10 リモート
フレーム受信待ちレジスタ (RFWTR)」を参照してください。
• 受信 RTR レジスタ (RRTRR) については ,「16.3.15 受信 RTR レジスタ
(RRTRR)」を参照してください。
• 送信キャンセルについては ,「16.3.11 送信キャンセルレジスタ (TCANR)」およ
び「16.5.1 送信動作」を参照してください。
519
第 16 章 CAN コントローラ
送信 RTR レジスタ (TRTRR)
16.3.9
送信 RTR レジスタ (TRTRR) は , 送信メッセージのフレーム形式をメッセージバッ
ファごとに設定します。
■ 送信 RTR レジスタ (TRTRR)
図 16.3-17 送信 RTR レジスタ (TRTRR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
TRTR0
0
1
リモートフレーム設定ビット0
(メッセージバッファ0)
データフレームとして送信する
リモートフレームとして送信する
bit1
TRTR1
0
1
リモートフレーム設定ビット1
(メッセージバッファ1)
データフレームとして送信する
リモートフレームとして送信する
bit2
TRTR2
0
1
リモートフレーム設定ビット2
(メッセージバッファ2)
データフレームとして送信する
リモートフレームとして送信する
bit3
TRTR3
0
1
リモートフレーム設定ビット3
(メッセージバッファ3)
データフレームとして送信する
リモートフレームとして送信する
bit4
TRTR4
0
1
リモートフレーム設定ビット4
(メッセージバッファ4)
データフレームとして送信する
リモートフレームとして送信する
bit5
TRTR5
0
1
リモートフレーム設定ビット5
(メッセージバッファ5)
データフレームとして送信する
リモートフレームとして送信する
bit6
TRTR6
0
1
リモートフレーム設定ビット6
(メッセージバッファ6)
データフレームとして送信する
リモートフレームとして送信する
bit7
TRTR7
R/W
520
:リード ・ライト 可能
:リセット値
0
1
リモートフレーム設定ビット7
(メッセージバッファ7)
データフレームとして送信する
リモートフレームとして送信する
第 16 章 CAN コントローラ
• 送信 RTR レジスタの各ビットに "0" を書き込むとデータフレームとして , "1" を書
き込むとリモートフレームとして設定されます。
表 16.3-11 送信 RTR レジスタ (TRTRR) の機能
ビット名
bit7
∼
bit0
TRTR7 ∼ 0:
リモートフレーム設定
ビット 7 ∼ 0
機 能
送信または受信を行うメッセージバッファ (x) の転送
フォーマットを設定します。
"0" を設定した場合 : データフレームとして設定します。
"1" を設定した場合 : リモートフレームとして設定しま
す。
521
第 16 章 CAN コントローラ
リモートフレーム受信待ちレジスタ (RFWTR)
16.3.10
リモートフレーム受信待ちレジスタ (RFWTR) は , データフレームの送信要求が設定
された場合に , リモートフレームの受信待ちを行うかどうかを設定します。
■ リモートフレーム受信待ちレジスタ (RFWTR)
図 16.3-18 リモートフレーム受信待ちレジスタ (RFWTR)
7
6
5
4
3
2
1
0
リセット値
XXXXXXXXB
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
RFWT0
0
1
リモートフレーム受信待ちビット0
(メッセージバッファ0)
直ちに送信する
リモートフレームを受信して送信する
bit1
RFWT1
0
1
リモートフレーム受信待ちビット1
(メッセージバッファ1)
直ちに送信する
リモートフレームを受信して送信する
bit2
RFWT2
0
1
リモートフレーム受信待ちビット2
(メッセージバッファ2)
直ちに送信する
リモートフレームを受信して送信する
bit3
RFWT3
0
1
リモートフレーム受信待ちビット3
(メッセージバッファ3)
直ちに送信する
リモートフレームを受信して送信する
bit4
RFWT4
0
1
リモートフレーム受信待ちビット4
(メッセージバッファ4)
直ちに送信する
リモートフレームを受信して送信する
bit5
RFWT5
0
1
bit6
RFWT6
0
1
リモートフレーム受信待ちビット5
(メッセージバッファ5)
直ちに送信する
リモートフレームを受信して送信する
リモートフレーム受信待ちビット6
(メッセージバッファ6)
直ちに送信する
リモートフレームを受信して送信する
bit7
RFWT7
R/W
522
:リード ・ライト 可能
:リセット値
0
1
リモートフレーム受信待ちビット7
(メッセージバッファ7)
直ちに送信する
リモートフレームを受信して送信する
第 16 章 CAN コントローラ
表 16.3-12 リモートフレーム受信待ちレジスタ (RFWTR) の機能
ビット名
bit7
∼
bit0
<参考>
RFWT7 ∼ 0:
リモートフレーム受信
待ちビット 7 ∼ 0
機 能
データフレームの送信要求が設定されたメッセージバッ
ファ (x) に対して , リモートフレームの受信を待つかどう
かを設定します。
"0" を設定した場合 : データフレームの送信要求が設定さ
れたメッセージバッファ (x) に対し
て直ちに送信動作を開始します。
• メッセージバッファ (x) にすでに受信 RTR レジスタが
セットされている場合であっても (RRTRR: RRTRx=1),
直ちに送信動作が開始されます。
"1" を設定した場合 : データフレームの送信要求が設定さ
れたメッセージバッファ (x) にリ
モートフレームが受信されてから送
信動作を開始します。
( 注意事項 )
リモートフレームを送信する場合は , RFWTx ビット
に "1" を書き込まないでください。
• 送信要求レジスタ (TREQR) については ,「16.3.8 送信要求レジスタ (TREQR)」
を参照してください。
• 送信 RTR レジスタ (TRTRR) については ,「16.3.9 送信 RTR レジスタ
(TRTRR)」を参照してください。
• 受信 RTR レジスタ (RRTRR) については ,「16.3.15 受信 RTR レジスタ
(RRTRR)」を参照してください。
523
第 16 章 CAN コントローラ
送信キャンセルレジスタ (TCANR)
16.3.11
送信キャンセルレジスタ (TCANR) は , 送信待ち状態のメッセージバッファに対する
送信要求の取消しを設定します。
■ 送信キャンセルレジスタ (TCANR)
図 16.3-19 送信キャンセルレジスタ (TCANR)
7
6
5
4
3
2
1
0
W
W
W
W
W
W
W
W
リセット値
00000000B
bit0
TCAN0
0
1
送信キャンセルビット0
影響なし
メッセージバッファ0の送信要求を取り消す
bit1
TCAN1
0
1
送信キャンセルビット1
影響なし
メッセージバッファ1の送信要求を取り消す
bit2
TCAN2
0
1
送信キャンセルビット2
影響なし
メッセージバッファ2の送信要求を取り消す
bit3
TCAN3
0
1
送信キャンセルビット3
影響なし
メッセージバッファ3の送信要求を取り消す
bit4
TCAN4
0
1
送信キャンセルビット4
影響なし
メッセージバッファ4の送信要求を取り消す
bit5
TCAN5
0
1
送信キャンセルビット5
影響なし
メッセージバッファ5の送信要求を取り消す
bit6
TCAN6
0
1
送信キャンセルビット6
影響なし
メッセージバッファ6の送信要求を取り消す
bit7
TCAN7
W
524
:ライトオンリ
:リセット値
0
1
送信キャンセルビット7
影響なし
メッセージバッファ7の送信要求を取り消す
第 16 章 CAN コントローラ
表 16.3-13 送信キャンセルレジスタ (TCANR) の機能
ビット名
bit7
∼
bit0
TCAN7 ∼ 0:
送信キャンセルビット
7∼0
機 能
送信待ち状態になっているメッセージバッファ (x) に対
して , 送信要求を取り消します。
"0" を設定した場合 : 影響しません。
"1" を設定した場合 : メッセージバッファ (x) の送信要求
が取り消されます。
• TCANx ビットに "1" を設定して送信要求を取り消す
と , 送信要求を取り消されたメッセージバッファ (x)
に対応する TREQx ビットがクリア (TREQx=0) されま
す。
リードした場合 : 値は常に "0" です。
( 注意事項 )
送信キャンセルレジスタ (TCANR) は , 書込み専用レ
ジスタです。
525
第 16 章 CAN コントローラ
送信完了レジスタ (TCR)
16.3.12
送信完了レジスタ (TCR) は , メッセージバッファの送信が完了したかどうかを示し
ます。送信完了時の割込み要求の出力が許可されている場合は , 送信完了時に割込み
要求を出力します。
■ 送信完了レジスタ (TCR)
図 16.3-20 送信完了レジスタ (TCR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
TC0
0
1
bit1
TC1
0
1
bit2
TC2
0
1
bit3
TC3
0
1
bit4
TC4
0
1
bit5
TC5
0
1
bit6
TC6
0
1
R/W
526
:リード・ライト可能
:リセット値
bit7
TC7
0
1
送信完了ビット0(メッセージバッファ0)
送信を完了していない/送信していない
送信を完了した
送信完了ビット1(メッセージバッファ1)
送信を完了していない/送信していない
送信を完了した
送信完了ビット2(メッセージバッファ2)
送信を完了していない/送信していない
送信を完了した
送信完了ビット3(メッセージバッファ3)
送信を完了していない/送信していない
送信を完了した
送信完了ビット4(メッセージバッファ4)
送信を完了していない/送信していない
送信を完了した
送信完了ビット5(メッセージバッファ5)
送信を完了していない/送信していない
送信を完了した
送信完了ビット6(メッセージバッファ6)
送信を完了していない/送信していない
送信を完了した
送信完了ビット7(メッセージバッファ7)
送信を完了していない/送信していない
送信を完了した
第 16 章 CAN コントローラ
表 16.3-14 送信完了レジスタ (TCR) の機能
ビット名
bit7
∼
bit0
TC7 ∼ 0:
送信完了ビット 7 ∼ 0
機 能
メッセージバッファ (x) に対して , メッセージの送信が完
了したかどうかを示します。
メッセージの送信が完了した場合 :
送信が完了したメッセージバッファ (x) に対応する
TCx ビットに "1" がセットされます。
"0" を設定した場合 : 送信完了後であればクリアされま
す。
"1" を設定した場合 : 影響しません。
リードモディファイライト (RMW) 系の命令でリードし
た場合 : 常に "1" が読み出されます。
• 送信完了によるセット (TCx=1) と , "0" 書込みによるク
リア (TCx=0) が同時だった場合は , セット (TCx=1) が
優先されます。
• 送信要求レジスタの TREQx ビットをセットする
(TREQR: TREQx=1) と , TCx ビットはクリア (TCx=0)
されます。
[ 送信完了割込みの発生 ]
• 送信完了割込み許可レジスタをセットしている
(TIER: TIEx=1) 場合は , 送信完了時 (TCR: TCx=1) に送
信完了割込みが発生します。
527
第 16 章 CAN コントローラ
送信完了割込み許可レジスタ (TIER)
16.3.13
送信完了割込み許可レジスタ (TIER) では , 各メッセージバッファに対して送信完了
時の割込みの許可または禁止を設定します。
■ 送信完了割込み許可レジスタ (TIER)
図 16.3-21 送信完了割込み許可レジスタ (TIER)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
TIE0
0
1
送信割込み許可ビット0
(メッセージバッファ0)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit1
TIE1
送信割込み許可ビット1
(メッセージバッファ1)
0
送信完了時の割込みを禁止する
1
送信完了時の割込みを許可する
bit2
TIE2
0
1
送信割込み許可ビット2
(メッセージバッファ2)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit3
TIE3
0
1
送信割込み許可ビット3
(メッセージバッファ3)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit4
TIE4
0
1
送信割込み許可ビット4
(メッセージバッファ4)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit5
TIE5
0
1
送信割込み許可ビット5
(メッセージバッファ5)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit6
TIE6
0
1
送信割込み許可ビット6
(メッセージバッファ6)
送信完了時の割込みを禁止する
送信完了時の割込みを許可する
bit7
TIE7
R/W
528
:リード・ライト可能
:リセット値
送信割込み許可ビット7
(メッセージバッファ7)
0
送信完了時の割込みを禁止する
1
送信完了時の割込みを許可する
第 16 章 CAN コントローラ
表 16.3-15 送信完了割込み許可レジスタ (TIER) の機能
ビット名
bit7
∼
bit0
TIE7 ∼ 0:
送信完了時割込み許可
ビット 7 ∼ 0
機 能
メッセージバッファ (x) に対して , 送信完了割込みを許可
または禁止します。
"0" を設定した場合 : メッセージバッファ (x) の送信完了
割込みを禁止します。
"1" を設定した場合 : メッセージバッファ (x) の送信完了
割込みを許可します。
529
第 16 章 CAN コントローラ
受信完了レジスタ (RCR)
16.3.14
受信完了レジスタ (RCR) は , メッセージバッファの受信が完了したかどうかを示し
ます。受信完了時の割込みが許可されている場合は , 受信完了時に割込み要求が発生
します。
■ 受信完了レジスタ (RCR)
図 16.3-22 受信完了レジスタ (RCR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
RC0
0
1
bit1
RC1
0
1
bit2
RC2
0
1
bit3
RC3
0
1
bit4
RC4
0
1
bit5
RC5
0
1
bit6
RC6
0
1
R/W
530
:リード・ライト可能
:リセット値
bit7
RC7
0
1
受信完了ビット0(メッセージバッファ0)
受信を完了していない/受信していない
受信を完了した
受信完了ビット1(メッセージバッファ1)
受信を完了していない/受信していない
受信を完了した
受信完了ビット2(メッセージバッファ2)
受信を完了していない/受信していない
受信を完了した
受信完了ビット3(メッセージバッファ3)
受信を完了していない/受信していない
受信を完了した
受信完了ビット4(メッセージバッファ4)
受信を完了していない/受信していない
受信を完了した
受信完了ビット5(メッセージバッファ5)
受信を完了していない/受信していない
受信を完了した
受信完了ビット6(メッセージバッファ6)
受信を完了していない/受信していない
受信を完了した
受信完了ビット7(メッセージバッファ7)
受信を完了していない/受信していない
受信を完了した
第 16 章 CAN コントローラ
表 16.3-16 受信完了レジスタ (RCR) の機能
ビット名
bit7
∼
bit0
RC7 ∼ 0:
受信完了ビット 7 ∼ 0
機 能
メッセージバッファ (x) に対してメッセージの受信が完了
したかどうかを示します。
メッセージの受信が完了した場合 :
受信が完了したメッセージバッファ (x) に対応する
RCx ビットに "1" がセットされます。
"0" を設定した場合 : 受信完了後であればクリアされま
す。
"1" を設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
• 受信完了によるセット (RCx=1) と , "0" 書込みによる
クリア (RCx=0) が同時だった場合は , セット (RCx=1)
が優先されます。
[ 受信完了割込みの発生 ]
• 受信完了割込み許可レジスタをセットしている
(RIER: RIEx=1) 場合は , 受信完了時に受信完了割込み
が発生します。
( 注意事項 )
受信完了レジスタ (RCR) は , 受信完了後に受信メッ
セージを取り出す処理を行ってから , "0" を書き込ん
でクリアしてください。
531
第 16 章 CAN コントローラ
受信 RTR レジスタ (RRTRR)
16.3.15
受信 RTR レジスタ (RRTRR) は , メッセージバッファにリモートフレームが格納さ
れたことを示すレジスタです。
■ 受信 RTR レジスタ (RRTRR)
図 16.3-23 受信 RTR レジスタ (RRTRR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
RRTR0
0
1
リモートフレーム受信ビット0
(メッセージバッファ0)
リモートフレームを受信していない
リモートフレームを受信した
bit1
RRTR1
0
1
リモートフレーム受信ビット1
(メッセージバッファ1)
リモートフレームを受信していない
リモートフレームを受信した
bit2
RRTR2
0
1
リモートフレーム受信ビット2
(メッセージバッファ2)
リモートフレームを受信していない
リモートフレームを受信した
bit3
RRTR3
0
1
リモートフレーム受信ビット3
(メッセージバッファ3)
リモートフレームを受信していない
リモートフレームを受信した
bit4
RRTR4
0
1
リモートフレーム受信ビット4
(メッセージバッファ4)
リモートフレームを受信していない
リモートフレームを受信した
bit5
RRTR5
0
1
リモートフレーム受信ビット5
(メッセージバッファ5)
リモートフレームを受信していない
リモートフレームを受信した
bit6
RRTR6
0
1
リモートフレーム受信ビット6
(メッセージバッファ6)
リモートフレームを受信していない
リモートフレームを受信した
bit7
RRTR7
R/W
532
:リード・ライト可能
:リセット値
0
1
リモートフレーム受信ビット7
(メッセージバッファ7)
リモートフレームを受信していない
リモートフレームを受信した
第 16 章 CAN コントローラ
表 16.3-17 受信 RTR レジスタ (RRTRR) の機能
ビット名
bit7
∼
bit0
RRTR7 ∼ 0:
リモートフレーム受信
ビット 7 ∼ 0
機 能
メッセージバッファ (x) にリモートフレームが受信された
ことをを示します。
リモートフレームが受信された場合 :
リモートフレームを受信したメッセージバッファ (x)
に対応する RRTRx ビットに "1" がセットされます。
"0" を設定した場合 : 受信完了後であればクリアされま
す。
"1" を設定した場合 : 影響しません。
• リモートフレーム受信によるセット (RRTRx=1) と ,
"0" 書込みによるクリア (RRTRx=0) が同時だった場合
は , セット (RRTRx=1) が優先されます。
• データフレームを受信した場合は , 受信したメッセー
ジバッファ (x) に対応する RRTRx ビットはクリア
(RRTRx=0) されます。
• メッセージの送信が完了した場合は (TCR: TCx=1), 送
信したメッセージバッファ (x) に対応する RRTRx ビッ
トはクリア (RRTRx=0) されます。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
533
第 16 章 CAN コントローラ
受信オーバランレジスタ (ROVRR)
16.3.16
受信オーバランレジスタ (ROVRR) は , 受信メッセージをメッセージバッファに格納
する際にオーバランした ( 対応するメッセージバッファが受信完了状態であった ) こ
とを示すレジスタです。
■ 受信オーバランレジスタ (ROVRR)
図 16.3-24 受信オーバランレジスタ (ROVRR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
ROVR0
0
1
bit1
ROVR1
0
1
bit2
ROVR2
0
1
bit3
ROVR3
0
1
bit4
ROVR4
0
1
bit5
ROVR5
0
1
bit6
ROVR6
0
1
bit7
ROVR7
R/W
534
:リード・ライト可能
:リセット値
0
1
受信オーバランビット0(メッセージバッファ0)
オーバランは発生していない
オーバランが発生した
受信オーバランビット1(メッセージバッファ1)
オーバランは発生していない
オーバランが発生した
受信オーバランビット2(メッセージバッファ2)
オーバランは発生していない
オーバランが発生した
受信オーバランビット3(メッセージバッファ3)
オーバランは発生していない
オーバランが発生した
受信オーバランビット4(メッセージバッファ4)
オーバランは発生していない
オーバランが発生した
受信オーバランビット5(メッセージバッファ5)
オーバランは発生していない
オーバランが発生した
受信オーバランビット6(メッセージバッファ6)
オーバランは発生していない
オーバランが発生した
受信オーバランビット7(メッセージバッファ7)
オーバランは発生していない
オーバランが発生した
第 16 章 CAN コントローラ
表 16.3-18 受信オーバランレジスタ (ROVRR) の機能
ビット名
bit7
∼
bit0
ROVR7 ∼ 0:
受信オーバランビット
7∼0
機 能
受信完了済みのメッセージバッファにさらに受信メッ
セージを格納した場合に , オーバランしたことを示しま
す。
オーバランが発生した場合 :
オーバランが発生したメッセージバッファ (x) に対
応する ROVRx ビットに "1" がセットされます。
"0" を設定した場合 : 受信オーバランが発生した後 "0" を
設定した場合 , クリアされます。
"1" を設定した場合 : 影響しません。
リードモディファイライト系の命令でリードした場合 :
常に "1" が読み出されます。
• オーバラン発生による ROVRx ビットのセット
(ROVRx=1) と , "0" 書込みによる ROVRx ビットのクリ
ア (ROVRx=0) が同時だった場合は , ROVRx ビットの
セット (ROVRx=1) が優先されます。
535
第 16 章 CAN コントローラ
受信完了割込み許可レジスタ (RIER)
16.3.17
受信完了割込み許可レジスタ (RIER) では , 各メッセージバッファに対して受信完了
時の割込みの許可または禁止を設定します。
■ 受信完了割込み許可レジスタ (RIER)
図 16.3-25 受信完了割込み許可レジスタ (RIER)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
RIE0
0
1
bit1
RIE1
0
1
bit2
RIE2
0
1
bit3
RIE3
0
1
bit4
RIE4
0
1
bit5
RIE5
0
1
bit6
RIE6
0
1
bit7
RIE7
R/W
536
:リード・ライト可能
:リセット値
0
1
受信割込み許可ビット0(メッセージバッファ0)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット1(メッセージバッファ1)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット2(メッセージバッファ2)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット3(メッセージバッファ3)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット4(メッセージバッファ4)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット5(メッセージバッファ5)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット6(メッセージバッファ6)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
受信割込み許可ビット7(メッセージバッファ7)
受信完了時の割込みを禁止する
受信完了時の割込みを許可する
第 16 章 CAN コントローラ
表 16.3-19 受信完了割込み許可レジスタ (RIER) の機能
ビット名
bit7
∼
bit0
RIE7 ∼ 0:
受信完了時割込み許可
ビット 7 ∼ 0
機 能
メッセージバッファ (x) に対して , 受信完了割込みを許可
または禁止します。
"0" を設定した場合 : メッセージバッファ (x) の受信完了
割込みを禁止します。
"1" を設定した場合 : メッセージバッファ (x) の受信完了
割込みを許可します。
537
第 16 章 CAN コントローラ
16.3.18
アクセプタンスマスク選択レジスタ (AMSR)
アクセプタンスマスク選択レジスタ (AMSR) は , 受信メッセージの識別子 (ID) と
メッセージバッファの識別子 (ID) を比較するためのマスク ( アクセプタンスマスク )
形式を選択するレジスタです。
■ アクセプタンスマスク選択レジスタ (AMSR)
図 16.3-26 アクセプタンスマスク選択レジスタ (AMSR)
bit15
14
13
12
11
10
9
8
AMS7.1 AMS7.0 AMS6.1 AMS6.0 AMS5.1 AMS5.0 AMS4.1 AMS4.0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
AMS3.1 AMS3.0 AMS2.1 AMS2.0 AMS1.1 AMS1.0 AMS0.1 AMS0.0
R/W
R/W
AMSx.1
0
0
1
1
R/W
AMSx.0
0
1
0
1
R/W
R/W
R/W
538
XXXXXXXXB
リセット値
XXXXXXXXB
R/W
アクセプタンスマスク選択ビット(x=7~0)
フルビット比較を行う
フルビットマスクをする
アクセプタンスマスクレジスタ0(AMR0)を使用する
アクセプタンスマスクレジスタ1(AMR1)を使用する
x(7~0)は,メッセージバッファ番号(x)。
X :不定
R/W :リード ・ライト 可能
R/W
リセット値
第 16 章 CAN コントローラ
表 16.3-20 アクセプタンスマスク選択レジスタの機能説明
ビット名
bit15
:
:
:
:
bit0
ASM7.0 ∼ 0.0, 7.1 ∼
0.1:
アクセプタンスマスク
選択ビット
7.0 ∼ 0.0, 7.0 ∼ 0.0
機 能
メッセージバッファ (x) に対して , 受信メッセージの ID
とメッセージバッファの ID (IDR) とを比較するためのマ
スク方法 ( アクセプタンスマスク ) を選択します。マスク
されたビットとは比較されません。
フルビット比較を行う場合 :
ID レジスタ (IDR) の設定値と受信メッセージ ID を
照合する際に全ビットを比較します。
フルビットマスクを行う場合 : ID レジスタ (IDR) の設定
値と受信メッセージ ID の全ビットをマスクします。
アクセプタンスマスクレジスタ 0 ( または 1) を使用する
場合 : アクセプタンスフィルタとしてアクセプタンスマ
スクレジスタ 0, 1 (AMR0, 1) が使用されます。
ID レジスタの設定値と受信メッセージ ID を照合
する際に , アクセプタンスマスクレジスタの
AMx ビットが "0" に設定されているビットのみ比
較され , "1" に設定されているビットはマスクさ
れます。
• AMSx.1, AMSx.0 ビットを "10B" または "11B" に設定し
た場合は , 使用するアクセプタンスマスクレジスタ
(AMR0 または AMR1) も必ず設定してください。
( 注意事項 )
• アクセプタンスマスク選択レジスタ (AMSR) は , 設定
するメッセージバッファ (x) を無効 (BVALR:
BVALx=0) にしてから設定してください。メッセージ
バッファ (x) が有効になっている状態でアクセプタン
スマスク選択レジスタ (AMSR) を設定すると , 不要な
受信メッセージが格納される恐れがあります。
<注意事項>
CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値
が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信可能な状態 )
で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は ,「16.6 CAN コン
トローラの使用上の注意」に従ってください。
539
第 16 章 CAN コントローラ
16.3.19
アクセプタンスマスクレジスタ (AMR)
CAN コントローラ内に 2 つのアクセプタンスマスク (AMR0, AMR1) を内蔵してお
り , それぞれ標準フレームフォーマット (ID11bit, AM28 ∼ 18) と拡張フレーム
フォーマット (ID29bit, AM28 ∼ 0) に対して使用できます。
■ アクセプタンスマスクレジスタ (AMR)
図 16.3-27 アクセプタンスマスクレジスタ (AMR)
BYTE0
BYTE1
BYTE2
BYTE3
bit7
6
5
4
3
2
1
0
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
14
13
12
11
10
9
8
AM20
AM19
AM18
AM17
AM16
AM15
AM14
AM13
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit7
6
5
4
3
2
1
0
AM12
AM11
AM10
AM9
AM8
AM7
AM6
AM5
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
9
8
AM4
AM3
AM2
AM1
AM0
R/W
R/W
R/W
R/W
R/W
R/W :リード・ライト可能
X :不定
ー :未定義
:標準フレームフォーマットでの使用ビット
540
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
ー
ー
ー
第 16 章 CAN コントローラ
表 16.3-21 アクセプタンスマスクレジスタ (AMR) の機能
ビット名
<注意事項>
機 能
bit7
:
:
:
bit0
AM21 ∼ AM28:
アクセプタンスマスク
ビット 28 ∼ 21
(BYTE0)
ID レジスタに設定したアクセプタンスコード (IDR: IDx)
と受信メッセージの ID を照合する際に , 各ビットを比較
するかマスクするかを ID のビットごとに設定します。
• アクセプタンスマスク選択レジスタの AMSx.1,
AMSx.0 ビットを "10B" または "11B" に設定した場合
bit15
:
:
:
bit8
AM20 ∼ AM13:
アクセプタンスマスク
ビット 20 ∼ 13
(BYTE1)
bit7
:
:
:
bit0
AM12 ∼ AM5:
アクセプタンスマスク
ビット 12 ∼ 5
(BYTE2)
bit15
:
:
:
bit11
AM4 ∼ AM0:
アクセプタンスマスク
ビット 4 ∼ 0
(BYTE3)
は , 使用するアクセプタンスマスクレジスタ (AMR0
または AMR1) も必ず設定してください。
標準フレームフォーマット (IDER: IDEx=0) の場合 :
AM28 ∼ 18 までの 11bit を使用します。
拡張フレームフォーマット (IDER: IDEx=1) の場合 :
AM28 ∼ 0 までの 29bit を使用します。
AMx ビットを "0" ( 比較 ) に設定した場合 :
ID レジスタに設定したアクセプタンスコード (IDR:
IDx) と受信メッセージの ID を照合する際に , AMx
ビットが "0" になっているビットは比較されます。
AMx ビットを "1" ( マスク ) に設定した場合 :
ID レジスタに設定したアクセプタンスコード (IDR:
IDx) と受信メッセージの ID を照合する際に , AMx
ビットが "1" になっているビットはマスクされ , 比較
されません。
( 注意事項 )
• アクセプタンスマスクレジスタ (AMR0, AMR1) は , 設
定するメッセージバッファ (x) を無効 (BVALR:
BVALx=0) にしてから設定してください。メッセージ
バッファ (x) が有効になっている状態でアクセプタン
スマスクレジスタ (AMR) を設定すると , 不要な受信
メッセージが格納される恐れがあります。
CAN コントローラが CAN 通信に参加している状態 (CSR:HALT ビットの読出し値
が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信可能な状態 )
で , メッセージバッファを無効 (BVALR:BVAL=0) にする場合は ,「16.6 CAN コント
ローラの使用上の注意」に従ってください。
541
第 16 章 CAN コントローラ
16.3.20
メッセージバッファ
メッセージバッファは , ID レジスタ , DLC レジスタ , データレジスタで構成され ,
メッセージの送信および受信の両方に使用できます。
■ メッセージバッファ
• メッセージバッファは 8 本あります。
• 1 つのメッセージバッファx (x=0 ∼ 7) は , ID レジスタ (IDRx), DLC レジスタ (DLCRx),
データレジスタ (DTRx) で構成されています。
• メッセージバッファ x は , メッセージの送信および受信の両方に使用します。
• メッセージバッファは , 番号の小さい方が優先順位が高くなります。
- 送信の場合は , 複数のメッセージバッファに送信要求すると , その中で番号が最
小のメッセージバッファから先に送信を実行します。
- 受信の場合は , 受信メッセージ ID が 1 つ以上のメッセージバッファのアクセプタ
ンスフィルタ ( 受信メッセージ ID とメッセージバッファの ID を , アクセプタン
スマスクした後に比較する機能 ) をパスすると , その中で番号が最小のメッセー
ジバッファに受信メッセージを格納します。
• 複数のメッセージバッファに同一のアクセプタンスフィルタを設定すると , 複数段
のメッセージバッファとして使用できます。これにより , 受信の処理時間に余裕を
持たすことができます。
<注意事項>
<参考>
542
1) メッセージバッファおよび汎用 RAM 領域への書込みは , ワード単位で行ってく
ださい。バイト単位で書き込むと下位バイト書込みの場合には上位バイトに不
定データが書き込まれます。上位バイト書込みは無視されます。
2) メッセージバッファ有効レジスタで無効に設定されている (BVALR: BVALx = 0)
メッセージバッファ x の領域は , 汎用の RAM として使用できます。ただし , 送
受信中は , メッセージバッファ領域や汎用 RAM 領域にアクセスする場合に最
大 64 マシンサイクル待たされることがあります。
• 送信動作については ,「16.5.1 送信動作」を参照してください。
• 受信動作については ,「16.5.2 受信動作」を参照してください。
• 複数段のメッセージバッファの校正については「16.5.4 複数段メッセージ受信
の設定について」を参照してください。
第 16 章 CAN コントローラ
16.3.21
ID レジスタ (IDRx, x=7 ∼ 0)
ID レジスタ (IDR) は , 送受信で使用するメッセージバッファの ID を設定するレジス
タです。標準フレームフォーマット使用時は ID28 ∼ 18 までの 11 ビットを , 拡張フ
レームフォーマット使用時は ID28 ∼ 0 までの 29 ビットを使用します。
■ ID レジスタ (IDR)
図 16.3-28 ID レジスタ (IDR)
BYTE0
BYTE1
BYTE2
BYTE3
bit7
6
5
4
3
2
1
0
ID28
ID27
ID26
ID25
ID24
ID23
ID22
ID21
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
15
14
13
12
11
10
9
8
ID20
ID19
ID18
ID17
ID16
ID15
ID14
ID13
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
6
5
4
3
2
1
0
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
14
13
12
11
10
9
8
ID4
ID3
ID2
ID1
ID0
R/W
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
リセット値
XXXXXXXXB
ー
ー
ー
R/W :リード・ライト可能
X :不定
ー :未定義
:標準フレームフォーマットでの使用ビット
543
第 16 章 CAN コントローラ
表 16.3-22 ID レジスタ (IDR) の機能
ビット名
544
bit7
:
:
:
bit0
ID28 ∼ 21:
ID ビット 28 ∼ 21
(BYTE0)
bit15
:
:
:
bit8
ID20 ∼ 13:
ID ビット 20 ∼ 13
(BYTE1)
bit7
:
:
:
bit0
ID12 ∼ 5:
ID ビット 28 ∼ 21
(BYTE2)
bit15
:
:
:
bit11
ID4 ∼ 0:
ID ビット 4 ∼ 0
(BYTE3)
機 能
受信メッセージ ID と照合するアクセプタンスコードまた
は送信メッセージの ID を設定します。
標準フレームフォーマット (IDER: IDEx=0) の場合 : ID28
∼ 18 までの 11bit を使用します。
• ID17 ∼ 0 には , 受信シフトレジスタに残された古い
メッセージが格納されますが , 動作には影響ありませ
ん。
• 特定のビットがマスク設定されていても , すべての受
信メッセージ ID が格納されます。
拡張フレームフォーマット (IDER: IDEx=1) の場合 : ID28
∼ 0 までの 29bit を使用します。
( 注意事項 )
• 標準フレームフォーマットを使用する場合に (IDER:
IDEx=0), ID28 ∼ 22 までのビットをすべて "1" に設定
することは禁止されています。
• ID レジスタ (IDR) を設定する場合は , ワード単位で書
き込んでください。バイト単位で書き込んだ場合は ,
無効になります。
第 16 章 CAN コントローラ
● ID レジスタ (IDR) の設定例
標準フレームフォーマットと拡張フレームフォーマットの ID レジスタ (IDR) の設定例
を表 16.3-23 に示します。
表 16.3-23 標準フレームフォーマットと拡張フレームフォーマットの ID 設定例
標準フレームフォーマット
BYTE1
ID(Dec) ID(Hex) BYTE0
1
1
20
00
2
2
40
00
3
3
60
00
4
4
80
00
5
5
A0
00
6
6
C0
00
7
7
E0
00
8
8
00
01
9
9
20
01
A
10
40
01
・
・
・
・
・
・
1E
30
C0
03
1F
31
E0
03
20
32
00
04
・
・
・
・
・
・
64
100
80
0C
65
101
A0
0C
・
・
・
・
・
・
C8
200
00
19
・
・
・
・
・
・
7FB
2043
60
FF
7FC
2044
80
FF
7FD
2045
A0
FF
7FE
2046
C0
FF
7FF
2047
E0
FF
ID(Dec)
1
2
3
4
5
6
7
8
9
10
30
31
32
100
101
200
2043
2044
2045
2046
2047
8190
8191
8192
536870905
536870906
536870907
536870908
536870909
536870910
536870911
拡張フレームフォーマット
BYTE2
BYTE1
ID(Hex) BYTE0
1
00
00
00
2
00
00
00
3
00
00
00
4
00
00
00
5
00
00
00
6
00
00
00
7
00
00
00
8
00
00
00
9
00
00
00
A
00
00
00
・
・
・
・
・
・
1E
00
00
00
1F
00
00
00
20
01
00
00
・
・
・
・
・
・
64
03
00
00
65
03
00
00
・
・
・
・
・
・
C8
06
00
00
・
・
・
・
・
・
7FB
3F
00
00
7FC
3F
00
00
7FD
3F
00
00
7FE
3F
00
00
7FF
3F
00
00
・
・
・
・
・
・
1FFE
FF
00
00
1FFF
FF
00
00
2000
00
01
00
・
・
・
・
・
・
FC
FF
FF
1FFFFFF9
FD
FF
FF
1FFFFFFA
FD
FF
FF
1FFFFFFB
FE
FF
FF
1FFFFFFC
FE
FF
FF
1FFFFFFD
FF
FF
FF
1FFFFFFE
FF
FF
FF
1FFFFFFF
BYTE3
08
10
18
20
28
30
38
40
48
50
F0
F8
00
20
28
40
D8
E0
E8
F0
F8
F0
F8
00
80
00
80
00
80
00
80
545
第 16 章 CAN コントローラ
16.3.22
DLC レジスタ (DLCR)
メッセージバッファの DLC レジスタ (DLCR) です。DLC レジスタ (DLCR) には , 送
受信するメッセージのデータ長をセットします。
■ DLC レジスタ (DLCR)
図 16.3-29 DLC レジスタ (DLCR)
bit7
ー
bit6
ー
bit5
ー
bit4
ー
bit3
bit2
bit1
bit0
DLC3
DLC2
DLC1
DLC0
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
R/W :リード・ライト可能
X :不定
ー :未定義
表 16.3-24 DLC レジスタ (DLCR) の機能
ビット名
bit3
∼
bit0
546
DLC3 ∼ 0:
データ長設定ビット
機 能
送信または受信するメッセージのデータ長 ( バイト数 ) を
設定します。
データフレームを送信する場合 :
送信メッセージのデータ長 ( バイト数 ) を設定しま
す。
リモートフレームを送信する場合 : 要求メッセージの
データ長 ( バイト数 ) を設定します。
データフレームを受信する場合 :
受信メッセージのデータ長 ( バイト数 ) が格納され
ます。
リモートフレームを受信する場合 :
要求メッセージのデータ長 ( バイト数 ) が格納され
ます。
( 注意事項 )
• データ長は 0 ∼ 8 バイトの範囲内で設定してくださ
い。
• DLC レジスタ (DLCR) を設定する場合は , ワード単位
で書き込んでください。バイト単位で書き込んだ場合
は , 無効になります。
第 16 章 CAN コントローラ
16.3.23
データレジスタ (DTR)
メッセージバッファのデータレジスタ (DTR) です。データフレーム送受信時にメッ
セージ内容をセットします。データは 0 ∼ 8 バイトまで設定できます。
■ データレジスタ (DTR)
図 16.3-30 データレジスタ (DTR)
BYTE0
6
5
4
3
2
1
0
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15
14
13
12
11
10
9
8
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
~
bit7
BYTE7
リセット値
XXXXXXXXB
X :不定
R/W :リード・ライト可能
表 16.3-25 データレジスタ (DLCR) の機能
ビット名
bit15
:
:
:
bit0
D7 ∼ 0(BYTE7 ∼ 0):
データビット 7 ∼ 0
機 能
データレジスタ (DTRx) は , データフレームの送受信に
のみ使用します。リモートフレームの送受信には使用
しません。
• 送信メッセージを最大 8 バイトまで設定します。メッ
セージはメッセージバッファ番号の小さい順 (BYTE0 ∼
BYTE7) に MSB ファーストで送信されます。
• 受信メッセージを格納します。メッセージはメッセー
ジバッファ番号の小さい順 (BYTE0 ∼ BYTE7) に MSB
ファーストで格納されます。
• 受信メッセージが 8 バイトに満たない場合は , データレ
ジスタ (DTRx) の残りのバイトに不定なデータが格納さ
れますが動作には影響ありません。
( 注意事項 )
データレジスタ (DTR) を設定する場合は , ワード単位
で設定してください。バイト単位で書き込んだ場合は ,
無効です。
•
547
第 16 章 CAN コントローラ
16.4
CAN コントローラの割込み
CAN コントローラには , 送信完了割込み , 受信完了割込み , ノードステータス遷移割
込みがあり , 次に示す要因で割込みを発生させることができます。
• 送信完了ビット (TCR: TCx) がセットされた場合
• 受信完了ビット (RCR: RCx) がセットされた場合
• ノードステータス遷移フラグ (CSR: NT) がセットされた場合
■ CAN コントローラの割込み
CAN コントローラの割込み制御ビットと割込み要因を表 16.4-1 に示します。
表 16.4-1 CAN コントローラの割込み制御ビットと割込み要因
送受信
割込みフラグ
ビット
割込み要因
割込み許可
ビット
割込み要求フラグのクリア
送信
送信完了ビット
TCR: TCx=1
メッセージ
送信完了
送信完了割込み
許可ビット
TIER: TIEx=1
送信要求ビット
TREQR: TREQx=1 のセット
送信完了ビット TCR: TCx へ
の "0" 書込み
受信
受信完了ビット
RCR: RCx=1
メッセージ
受信完了
受信完了割込み
許可ビット
RIER: RIEx=1
受信完了ビット RCR: RCx へ
の "0" 書込み
送信
ノードステータ
ス遷移フラグ
CSR: NT=1
ノード
ステータス
遷移
ノードステータ
ス遷移割込み
許可ビット
CSR: NIE=1
ノードステータス遷移フラグ
CSR: NT への "0" 書込み
● 送信完了割込み
メッセージの送信動作が終了すると , 送信完了レジスタの TCx ビットに "1" がセット
されます。TCx=1 の場合 , 送信完了割込みが許可 (TIER: TIEx=1) されていると , 送信完
了割込みが発生します。送信完了レジスタの TCx ビットは , メッセージバッファに対
する送信要求が設定 (TREQR: TREQx=1) されると自動的に "0" にクリアされます。ま
た , メッセージの送信完了後 (TCR: TCx=1) に送信完了レジスタの TCx ビットに "0" を
書き込めばクリアされます。
● 受信完了割込み
メッセージの受信動作が終了すると , 受信完了レジスタの RCx ビットに "1" がセット
されます。RCx=1 の場合 , 受信完了割込みが許可 (RIER: RIEx=1) されていると , 受信
完了割込みが発生します。メッセージの受信完了後 (RCR: RCx=1) に受信完了レジスタ
の RCx ビットに "0" を書き込めばクリアされます。
548
第 16 章 CAN コントローラ
● ノードステータス遷移割込み
CAN コントローラのノードステータスが変化した場合 , 制御ステータスレジスタの NT
ビットに "1" がセットされます。NT=1 の場合 , ノードステータス遷移割込み出力が許
可 (CSR: NIE=1) されていれば , ノードステータス遷移割込みが発生します。制御ステー
タスレジスタの NT ビットに "0" を書き込めばクリアされます。
■ CAN コントローラの割込みに関連するレジスタとベクタテーブル
<参考>
割込み動作については「3.5 割込み」を参照してください。
549
第 16 章 CAN コントローラ
16.5
CAN コントローラの動作説明
CAN コントローラのメッセージ送信および受信の手順 , ビットタイミング , フレー
ムフォーマット , ID, アクセプタンスフィルタの設定について説明します。
■ CAN コントローラの動作説明
CAN コントローラの動作については , 以下の項で詳細に説明しています。
• メッセージの送信動作 (「16.5.1 送信動作」参照 )
• メッセージの受信動作 (「16.5.2 受信動作」参照 )
• メッセージの送受信の操作手順 (「16.5.3 送受信の操作手順」参照 )
• 複数段メッセージの受信 (「16.5.4 複数段メッセージ受信の設定について」参照 )
550
第 16 章 CAN コントローラ
16.5.1
送信動作
メッセージの送信手順を図 16.5-1 に示します。
■ 送信手順
図 16.5-1 送信動作のフローチャート
送信要求レジスタをセットする
(TREQR:TREQx=1)
送信完了レジスタがクリアされる
(TCR:TCx=0)
NO:0
送信要求がセットされた?
(TREQR:TREQx)
YES:1
NO:0
リモートフレーム受信待ち?
(RFWTR:RFWTx)
YES:1
リモートフレーム受信?
(RRTRR:RRTRx)
NO:0
YES:1
送信条件を満たすメッセージバッファが
残っていれば,最も小さい番号のメッセ
ージバッファが選択される
バスアイドル状態?
NO
YES
TRTRx=0
TRTRx=1
フレームの設定は?
(TRTRR:TRTRx)
データフレームが送信される
リモートフレームが送信される
送信は成功した?
NO
YES
送信をキャンセル?
(TCANR:TCANx)
送信要求レジスタがクリアされる(TREQR:TREQx=0)
受信RTRレジスタがクリアされる(RRTRR:RRTRx=0)
送信完了レジスタがセットされる(TCR:TCx=1)
NO:0
YES:1
送信要求レジスタがクリアされる
(TREQR:TREQx=0)
送信完了時割込みが許可されている?
(TIER:TIEx=1)
NO:0
YES:1
送信完了時に割込み要求を出力する
送信動作終了
551
第 16 章 CAN コントローラ
● 送信動作の開始
送信要求の設定
送信動作を開始するには , メッセージを送信するメッセージバッファ (x) に対応す
る送信要求レジスタの TREQx ビットを "1" に設定します。TREQx ビットが設定さ
れると , 送信完了レジスタはクリア (TCR: TCx=0) されます。
リモートフレーム受信待ちの有無
リモートフレーム受信待ちレジスタの RFWTx ビットがセットされている場合は ,
リモートフレームが受信されて (RRTRR: RRTRx=1) から送信動作が開始されます。
リモートフレーム受信待ちでない場合 (RFWTR: RFWTx=0) は , 送信要求がセット
(TREQR: TREQx=1) された後 , 直ちに送信動作が開始されます。
● 送信動作の実行
複数のメッセージバッファに送信要求が設定された場合
複数のメッセージバッファに対する送信要求が設定 (TREQR: TREQx=1) された場合
は , メッセージバッファ番号 (x=7 ∼ 0) の小さい順に送信されます。
CAN バスへの送信
送信出力端子 (TX) からの CAN バスへのメッセージ送信は , CAN バスがアイドル状
態の場合に開始されます。
アービトレーション ( 通信調停 )
メッセージバッファが CAN バス上にあるほかの CAN コントローラからの送信と競
合した場合は , アービトレーション ( 通信調停 ) が行われます。アービトレーショ
ン ( 通信調停 ) に負けた場合や , 送信中にエラーが発生した場合は , 次のバスアイド
ル状態になるまで待ってから自動的に再送信が行われ , 成功するまで繰り返されま
す。
フレームフォーマットの選択
送信 RTR レジスタの TRTRx ビットに "0" を設定した場合はデータフレームが送信
されます。"1" を設定した場合はリモートフレームが送信されます。
● 送信要求の取消し
送信キャンセルレジスタ (TCANR) による取消し
メッセージ送信動作中に , 未送信 ( 保留 ) のメッセージバッファに設定されている
送信要求は , 送信キャンセルレジスタに "1" を設定すれば取り消せます。
送信要求が完全に取り消される (TCANR: TCANx=1) と , 送信要求レジスタはクリア
(TREQx=0) されます。
メッセージ受信による送信要求の取消し
送信要求中のメッセージバッファでも , メッセージは受信できます。ただし , 次の
条件によって , 送信要求は取り消されます。
データフレームを送信要求している場合 :
データフレームを受信した場合は , 送信要求は取り消されます。リモートフレーム
を受信した場合は , 取り消されません。
リモートフレームを送信要求している場合 :
データフレーム , リモートフレームのいずれを受信しても , 送信要求は取り消され
ます。
552
第 16 章 CAN コントローラ
● 送信動作の完了
送信成功
送信動作が正常に終了した場合は , 送信完了レジスタの TCX ビットがセットされま
す。
送信要求レジスタおよび受信RTRレジスタはクリア(TREQR: TREQx=0, RRTRR:
RRTRx=0) されます。
送信割込みの発生
送信完了割込み許可レジスタの TIEx ビットをセットしている場合は , 送信完了時
(TCR: TCx=1) に割込み要求を出力します。
553
第 16 章 CAN コントローラ
16.5.2
受信動作
メッセージの受信手順を図 16.5-2 に示します。
■ 受信手順
図 16.5-2 受信動作フローチャート
データフレームまたはリモートフレーム
のスタートオブフレーム(SOF)を検知
NO
アクセプタンスフィルタを通した
メッセージバッファ(x)はある?
YES
NO
受信は成功した?
YES
受信したメッセージを格納する
メッセージバッファ(x)を決定する
受信したメッセージを
メッセージバッファ(x)に格納する
受信完了レジスタはセット
されている?(RCR:RCx)
受信オーバラン発生
(ROVRR:ROVRx=1)
NO:0
データフレーム
YES:1
受信したメッセージは?
リモートフレーム
受信RTRレジスタをセット
(RRTRR:RRTRx=1)
受信RTRレジスタをクリア
(RRTRR:RRTRx=0)
TRTRx=1
リモートフレームの送信要求であるか
(TRTRR:TRTRx)
送信要求レジスタをクリア
(TREQR:TREQx=0)
TRTRx=0
受信完了レジスタをセット
(RCR:RCx=1)
受信完了時割込みが許可されている?
(RIER:RIEx=1)
YES:1
受信完了時に割込み要求を出力する
NO:0
受信動作終了
554
第 16 章 CAN コントローラ
● 受信動作の開始
CAN バス上にデータフレームまたはリモートフレームのスタート・オブ・フレーム
(SOF) を検知すると , 受信動作が開始されます。
● アクセプタンスフィルタ
標準フレームフォーマットの受信メッセージは , 標準フレームフォーマットで設定
(IDER: IDEx=0) されたメッセージバッファ (x) と比較されます。拡張フレームフォー
マットの受信メッセージは , 拡張フレームフォーマットで設定 (IDER: IDEx=1) された
メッセージバッファ (x) と比較されます。
アクセプタンスフィルタの通過
受信メッセージ ID とアクセプタンスコード IDR:IDx とを比較した後 , アクセプタ
ンスマスクで " 比較 " に設定されているすべてのビットが一致した場合 , 受信メッ
セージはメッセージバッファ (x) のアクセプタンスフィルタを通過します。
● 受信メッセージの格納
メッセージの受信が成功した場合,受信メッセージはアクセプタンスフィルタを通過し
た ID を持っているメッセージバッファ (x) に格納されます。
データフレームを受信した場合
受信メッセージは ID レジスタ (IDR), DLC レジスタ (DLCR), データレジスタ (DTR)
に格納されます。受信メッセージが 8 バイトに満たない場合は , データレジスタの
残りのバイトに不定なデータが格納されます。
リモートフレームを受信した場合
受信メッセージは ID レジスタと DLC レジスタに格納されます。データレジスタは
変化しません。
該当するメッセージバッファが複数ある場合
アクセプタンスフィルタを通過した ID を持っているメッセージバッファが複数あ
る場合は , 受信メッセージが格納されるメッセージバッファ(x) は以下の条件に従っ
て決定されます。
• メッセージバッファ番号 (x=0 ∼ 7) の小さい方が優先順位が高くなります。メッセー
ジバッファ 0 が最も優先順位が高く , メッセージバッファ 7 が最も低くなります。
• 基本的に , 受信メッセージは受信を動作完了していない (RCR: RCx=0) メッセージ
バッファを優先にして格納されます。
• アクセプタンスマスク選択レジスタのビットが " フルビット比較 " に設定されてい
る (AMSx.1,0=00B) 場合 , 受信メッセージは受信完了レジスタ (RCR: RCx) の値に関
係なく対応するメッセージバッファ (x) に格納されます。
• 受信動作を完了していないメッセージバッファが複数ある場合またはアクセプタ
ンスマスク選択レジスタの AMSx.1, AMSx.0 が "00B" ( フルビット比較 ) に設定され
ているメッセージバッファが複数ある場合は , メッセージバッファ番号 (x) の最も小
さいものに格納されます。
• 以上の条件に合致するメッセージバッファがない場合は , メッセージバッファ番号
(x) の最も小さいものに受信メッセージが格納されます。
555
第 16 章 CAN コントローラ
• メッセージバッファはメッセージバッファ番号 (x) の小さい方から次のように配置
してください。
- 最小の番号 (x) : アクセプタンスマスクの設定がフルビット比較
- 中間の番号 (x) : アクセプタンスマスクレジスタ 0, 1 を使用
- 最大の番号 (x) : アクセプタンスマスクの設定が " フルビットマスク "
● アクセプタンスマスク選択レジスタの設定
表 16.5-1 アクセプタンスマスク選択レジスタの設定
AMSx.1
AMSx.0
0
0
フルビット比較を行う
0
1
フルビットマスクを行う
1
0
アクセプタンスマスクレジスタ 0 (AMR0) を使用する
1
1
アクセプタンスマスクレジスタ 1 (AMR1) を使用する
アクセプタンスマスク (x=7 ∼ 0)
図 16.5-3 受信メッセージを格納するメッセージバッファ決定のフローチャート
開 始
メッセージを受信していない(RCR:RCx=0),
または“フルビット比較”に設定されている
(AMSR:AMSx.1=0,AMSx.0=0)メッセージ
バッファはないか?
ない
ある
上記に該当するメッセージバッファの
中からメッセージバッファ番号(X)
の最小のものを選択する
終 了
556
メッセージバッファ番号(X)
の最小のものを選択する
第 16 章 CAN コントローラ
● 受信オーバラン
受信完了済み(RCR: RCx=1)のメッセージバッファにさらに受信メッセージが格納され
ると , 受信オーバランとなります。受信オーバランが発生した場合は , 受信オーバラン
したメッセージバッファ番号 (x) に対応する受信オーバランレジスタの ROVRx ビット
に "1" がセットされます。
● データフレームおよびリモートフレームの受信処理
データフレームの受信処理
• 受信 RTR レジスタがクリア (RRTRR: RRTRx=0) されます。
• 受信メッセージが格納される直前に . 送信要求レジスタがクリア (TREQR:TREQx=0)
されます。送信を実行していないメッセージバッファ (x) に対する送信要求は取り
消されます。
<注意事項>
データフレームとリモートフレームのどちらの送信要求でも取り消されます。
リモートフレームの受信処理
• 受信 RTR レジスタがセット (RRTRR: RRTRx=1) されます。
• 送信 RTR レジスタがセット (TRTRR: TRTRx=1) されている場合は , 送信要求レジス
タはクリア (TREQx=0) されます。送信を実行していないメッセージバッファ (x) に
対するリモートフレーム送信要求は取り消されます。
<注意事項>
データフレームの送信要求は取り消されません。
送信要求の取消しかたについては ,「●送信要求の取消し」を参照してください。
● 受信動作の完了
受信メッセージが格納されると , 受信完了レジスタがセットされます。(RCR: RCx=1)
受信完了割込み許可レジスタを設定している (RIER: RIEx=1) 場合は , 受信完了時
(RCR:RCx=1) に割込みが発生します。
<注意事項>
CAN コントローラは , 自らが送信したメッセージは受信できません。
557
第 16 章 CAN コントローラ
16.5.3
送受信の操作手順
メッセージの送受信の手順について説明します。
■ 事前の設定
● ビットタイミングの設定
• ビットタイミングレジスタ (BTR) は , バス動作を停止してから (CSR:HALT=1) 設定
してください。
● フレームフォーマットの設定
• メッセージバッファ(x) で使用するフレームフォーマットを設定します。標準フレー
ムフォーマットを使用する場合は , IDE レジスタ (IDER) の IDEx ビットを "0" に , 拡
張フレームフォーマットを使用する場合は IDEx ビットを "1" に設定します。
● ID の設定
• メッセージバッファ (x) の ID は , ID レジスタ (IDR) の ID28 ∼ ID0 ビットに設定し
ます。標準フレームフォーマットの場合は , ID17 ∼ ID0 ビットを設定する必要はあ
りません。メッセージバッファ (x) の ID は , 送信時には送信メッセージ ID として ,
受信時にはアクセプタンスコードとして使用されます。
• ID の設定は , メッセージバッファ (x) を無効にしてから (BVALR: BVALx=0) 行って
ください。有効の状態で行うと , 不要な受信メッセージを格納するおそれがありま
す。
● アクセプタンスフィルタの設定
• メッセージバッファ(x) のアクセプタンスフィルタは , アクセプタンスコードとアク
セプタンスマスクを組み合わせることで設定されます。アクセプタンスフィルタの
設定は , メッセージバッファ (x) を無効にしてから (BVALR: BVALx=0) 行ってくだ
さい。有効の状態で行うと , 不要な受信メッセージを格納するおそれがあります。
• 各メッセージバッファ(x) に使用するアクセプタンスマスクは , アクセプタンスマス
ク選択レジスタ (AMSR) で選択します。アクセプタンスマスクレジスタ (AMR0,
AMR1) を使用する場合は , アクセプタンスマスクレジスタ (AMR0. 1) も設定します。
• 不要な受信メッセージの格納によって送信要求がキャンセルされないように , アク
セプタンスマスクの設定を行ってください。
558
第 16 章 CAN コントローラ
■ メッセージバッファ (x) の送信手順
送信設定の手順を図 16.5-4 に示します。
図 16.5-4 送信設定のフローチャート
スタート
ビットタイミングの設定
フレームフォーマットの設定
IDの設定
アクセプタンスフィルタの設定
ビットタイミングレジスタ(BTR)
IDEレジスタ(IDER)
IDレジスタ(IDR)
アクセプタンスマスク選択レジスタ(AMSR)
アクセプタンスマスクレジスタ(AMR0,1)
使用するメッセージバッファを選択する
メッセージバッファ有効レジスタ(BVALR)
送信完了割込みの設定
送信完了割込み許可レジスタ(TIER )
データフレーム
リモートフレーム
フレームタイプの選択
フレームタイプの設定
送信RTRレジスタ(TRTRx=1)
フレームタイプの設定
送信RTRレジスタ(TRTRx=0)
要求データ長の設定
DLCレジスタ(DLCR)
送信データ長の設定
DLCレジスタ(DLCR)
データレジスタに送信データを格納
データレジスタ(DTR)
リモートフレーム
受信待ち
する
しない
リモートフレーム受信待ち
RFWTx=0
リモートフレーム受信待ち
RFWTx=1
バス動作停止の解除 HALT=1
メッセージ送信
データフレームの送信要求の設定
データフレーム送信(TREQR)
リモートフレーム受信待ち
通信エラー
送信成功?
TCx
NO:0
送信キャンセル?
YES:1
NO
YES
送信要求のキャンセル
送信キャンセルレジスタ(TCANR)
TREQx
1
0
1
TCx
0
送信完了
送信キャンセル
エンド
559
第 16 章 CAN コントローラ
● メッセージバッファ (x) の送信手順
事前の設定が終了したら , メッセージバッファ有効レジスタでメッセージバッファ (x)
を有効 (BVALR: BVALx=1) にします。
● 送信データ長コードの設定
• 送信データ長コード ( バイト数 ) は , DLC レジスタ (DLCR) の DLC3 ∼ DLC0 ビッ
トに設定します。
• データフレーム (TRTRR: TRTRx=0) を送信する場合 , 送信メッセージのデータ長を
設定します。
• リモートフレーム (TRTRR: TRTRx=1) を送信する場合 , 要求するメッセージのデー
タ長 ( バイト数 ) を設定します。
<注意事項>
"0000B" ∼ "1000B" (0 ∼ 8 バイト ) 以外の設定は禁止されています。
● 送信データの設定 ( データフレーム送信の場合のみ )
データフレーム送信の場合 (TRTRR: TRTRx=0), 送信するバイト数分のデータをデータ
レジスタ (DTR) に設定します。
<注意事項>
送信データの書換えは , 送信要求レジスタの TREQx を "0" に設定してから行って
ください。メッセージバッファ有効レジスタで無効に設定 (BVALR: BVALx=0) に
する必要はありません。無効に設定すると , リモートフレームの受信ができなくな
ります。
● 送信 RTR レジスタ (TRTRR)
• データフレーム送信の場合 , 送信 RTR レジスタの TRTRx ビットを "0" に設定します。
• リモートフレーム送信の場合 , 送信 RTR レジスタの TRTRx ビットを "1" に設定し
ます。
● 送信を開始する条件の設定 ( データフレーム送信の場合のみ )
• データフレームの送信要求を設定し (TREQR: TREQx=1, TRTRR: TRTRx=0), 直ちに
送信を開始する場合 , リモートフレーム受信待ちレジスタの RFWTx ビットを "0" に
設定します。
• データフレームの送信要求を設定し (TREQR: TREQx=1 かつ TRTRR: TRTRx=0), リ
モートフレームの受信を待って (RRTRR: RRTRx=1) 送信を開始する場合 , リモート
フレーム受信待ちレジスタの RFWTx ビットを "1" に設定します。
<注意事項>
リモートフレーム受信待ちレジスタの RFWT ビットを "1" に設定するとリモート
フレームの送信はできなくなります。
● 送信完了割込みの設定
• 送信完了時 (TCR: TCx=1) に割込みを発生させる場合 , 送信完了割込み許可レジスタ
の TIEx ビットを "1" に設定します。
• 送信完了時 (TCR: TCx=1) に割込みを禁止する場合 , TIEx ビットを "0" に設定します。
560
第 16 章 CAN コントローラ
● バス動作停止の解除
ビットタイミングの設定と送信の設定が終了したら , 制御ステータスレジスタの HALT
ビット (CSR: HALT) に "0" を書き込んで , バス動作の停止を解除してください。
● 送信要求の設定
送信要求を設定するには , 送信要求レジスタの TREQx ビットを "1" に設定します。
● 送信要求のキャンセル
• メッセージバッファ (x) の保留されている送信要求をキャンセルする場合は , 送信
キャンセルレジスタの TCANx ビットに "1" を書き込みます。
• 送信要求レジスタの TREQx ビットをチェックして , TREQx ビットが "0" であれば ,
送信キャンセルが終了または送信完了です。引き続き , 送信完了レジスタ (TCR) の
TCx ビットをチェックして , TCx ビットが "0" ならば送信キャンセルが終了 , TCx
ビットが "1" なら送信完了です。
● 送信完了時の処理
• 送信が成功すると , 送信完了レジスタ (TCR) の TCx ビットに "1" がセットされます。
• 送信完了時の割込みを許可している場合 (TIER: TIEx=1), 割込みが発生します。
• 送信完了を確認した後は , 送信完了レジスタの TCx ビットに "0" を書き込んでクリ
アします。送信完了レジスタ (TCR) をクリアすると , 送信完了時の割込みが解除さ
れます。
• メッセージの受信および格納によって , 以下のように保留中の送信要求がキャンセ
ルされます。
- データフレーム受信によるデータフレームの送信要求のキャンセル
- データフレーム受信によるリモートフレームの送信要求のキャンセル
- リモートフレーム受信によるリモートフレームの送信要求のキャンセル
リモートフレーム受信や格納によって,データフレームの送信要求はキャンセルされま
せんが , ID レジスタおよび DLC レジスタの内容は , 受信したリモートフレームの内容
に書き換えられます。したがって , 送信するデータフレームの ID レジスタおよび DLC
レジスタは , 受信したリモートフレームの値になりますので注意してください。
561
第 16 章 CAN コントローラ
■ メッセージバッファ (x) の受信手順
受信設定の手順を図 16.5-5 に示します。
図 16.5-5 受信設定のフローチャート
スタート
ビットタイミングの設定
フレームフォーマットの設定
IDの設定
アクセプタンスフィルタの設定
ビットタイミングレジスタ(BTR)
IDEレジスタ(IDER)
IDレジスタ(IDR)
アクセプタンスマスク選択レジスタ(AMSR)
アクセプタンスマスクレジスタ(AMR0,1)
使用するメッセージバッファを選択する
メッセージバッファ有効レジスタ(BVALR)
受信完了割込みの設定
受信完了割込み許可レジスタ(RIER)
バス動作停止の解除 HALT=1
NO
メッセージが受信されたか
RCx=1 ?
YES
受信バイト数読出し
メッセージ格納処理
(受信完了割込みで処理)
受信オーバランビットクリア
ROVRx=0
受信メッセージの読出し
受信オーバラン?
ROVRx=0 ?
NO
YES
受信完了ビットクリア
RCx=0
エンド
● メッセージバッファ (x) の受信手順
事前の設定の後に , 以下を設定してください。
● 受信完了割込みの設定
• 受信完了割込みを発生させる場合 , 受信完了割込み許可レジスタの RIEx ビットを
"1" に設定します。
• 受信完了時 (RCR:RCx=1) に割込みを禁止する場合 , RIEx ビットを "0" に設定します。
● 受信の開始
設定が終了して受信を開始する場合 , メッセージバッファ有効レジスタの BVALx ビッ
トを "1" に設定し , メッセージバッファ (x) を有効にします。
562
第 16 章 CAN コントローラ
● バス動作停止の解除
ビットタイミングの設定と受信の設定が終了したら , 制御ステータスレジスタの HALT
ビット (CSR: HALT) に "0" を書き込んで , バス動作の停止を解除してください。
● 受信完了時の処理
• アクセプタンスフィルタを通過した後 , 受信が成功すると , 受信メッセージがメッ
セージバッファ (x) に格納され , 受信完了レジスタの RCx ビットに "1" がセットさ
れます。
また , データフレームを受信した場合は , 受信 RTR レジスタの RRTRx ビッ
トが "0" にクリアされます。リモートフレームを受信した場合は , RRTRx ビットに
"1" がセットされます。
• 受信完了割込みを許可している場合 (RIEx=1), 割込みが発生します。
• 受信完了を確認 (RCR: RCx=1) した後に , 受信メッセージを処理してください。
• 受信メッセージの処理が終了した後に , 受信オーバランレジスタの ROVRx ビット
をチェックします。
- ROVRx ビットが "0" に設定されている場合 , 処理した受信メッセージは有効です。
RCx ビットに "0" を書き込んで設定し ( これにより受信完了割込みも解除されま
す ), 受信処理を終了します。
- ROVRx ビットが "1" に設定されている場合 , 受信オーバランが発生しており , 処
理した受信メッセージは新しいメッセージに上書きされている可能性がありま
す。受信オーバランが発生した場合は , ROVRx ビットに "0" を書き込んで設定し
た後 , もう一度 , 受信メッセージの処理を行ってください。
図 16.5-6 に受信完了時の割込み処理例を示します。
図 16.5-6 受信割込み処理例
RCx=1での割込みの発生
受信メッセージの
読出し
A:=ROVRx
ROVRx:=0
A=0?
NO
YES
RCx: 0
終 了
563
第 16 章 CAN コントローラ
16.5.4
複数段メッセージ受信の設定について
• 受信頻度が多い場合や数種の異なる ID のメッセージを受信する場合などメッセー
ジの受信処理時間が足りない場合は , 複数のメッセージバッファを組み合わせて
複数段メッセージバッファを構成することにより , CPU による受信メッセージの
処理時間に余裕を持たすことができます。
• 複数段メッセージバッファ構成にするには , 組み合わせるメッセージバッファの
アクセプタンスフィルタの設定を同一にします。
■ 複数段メッセージバッファ構成の設定
メッセージバッファ5, 6, 7 のアクセプタンスフィルタを同一にして , 4 個の標準フレー
ムフォーマットのメッセージを受信した場合 , 次図のような動作になります。
<注意事項>
アクセプタンスマスク選択レジスタが " フルビット比較 " に設定されている
(AMSR: AMSx.1, 0=00B) 場合は , アクセプタンスコードを同一に設定しないでくだ
さい。" フルビット比較 " に設定した場合は , 常にメッセージバッファ番号の小さ
いものに優先的に格納されてしまうため , 複数段メッセージとして構成することは
できません。
564
第 16 章 CAN コントローラ
図 16.5-7 複数段メッセージの動作例
初期設定
AMSR
AMS7
10
AMS6
10
AMS5
10
・・
アセプタンス
マスクレジスタ選択
AMR0
AM28 ~ AM18
0000 1111 111
IDER
メッセージバッファ5
ID28 ~ ID18
0101 0000 000
IDE
0 ・・
RCR
メッセージバッファ6
0101 0000 000
0 ・・
ROVRR
メッセージバッファ7
0101 0000 000
0 ・・
IDE7
0
IDE6
0
IDE5
0
・・・
RC7
0
RC6
0
RC5
0
0
0
0
ROVR7
6
・・・
・・・
5
マスク
メッセージ受信→メッセージバッファ5に記憶
受信メッセージ
ID28 ~ ID18
0101 1111 000
IDE
0 ・・
メッセージバッファ5
0101 1111 000
0 ・・
RCR
0
0
1
・・・
メッセージバッファ6
0101 0000 000
0 ・・
ROVRR
0
0
0
・・・
メッセージバッファ7
0101 0000 000
0 ・・
メッセージ受信→メッセージバッファ6に記憶
受信メッセージ
ID28 ~ ID18
0101 1111 001
IDE
0 ・・
メッセージバッファ5
0101 1111 000
0 ・・
RCR
0
1
1
・・・
メッセージバッファ6
0101 1111 001
0 ・・
ROVRR
0
0
0
・・・
メッセージバッファ7
0101 0000 000
0 ・・
RCR
1
1
1
・・・
ROVRR
0
0
0
・・・
メッセージ受信→メッセージバッファ7に記憶
受信メッセージ
ID28 ~ ID18
0101 1111 010
IDE
0 ・・
メッセージバッファ5
0101 1111 000
0 ・・
メッセージバッファ6
0101 1111 001
0 ・・
メッセージバッファ7
0101 1111 010
0 ・・
メッセージ受信→受信オーバラン(ROVR5 = 1)発生,メッセージバッファ5に記憶
受信メッセージ
ID28 ~ ID18
0101 1111 011
IDE
0 ・・
メッセージバッファ5
0101 1111 011
0 ・・
RCR
1
1
1
・・・
メッセージバッファ6
0101 1111 001
0 ・・
ROVRR
0
0
1
・・・
メッセージバッファ7
0101 1111 010
0 ・・
565
第 16 章 CAN コントローラ
16.6
CAN コントローラの使用上の注意
CAN コントローラを使用する場合は , 以下の点に注意してください。
■ BVAL ビットによるメッセージバッファ禁止時の注意
メッセージバッファの内容の読出しや書込みの処理を行うために, BVALビットを用い
てメッセージバッファを禁止すると , CAN コントローラの送受信が正常に行われない
可能性があります。本注意事項は , この現象を回避する方法を説明しています。
● 発生条件
以下の 2 つの条件を同時に満たす場合に , CAN コントローラの送信動作が正常に行わ
れない可能性があります。
• CAN コントローラが CAN 通信に参加している状態 , つまり HALT ビットの読出し
値が "0" で , CAN コントローラが CAN バスの通信に参加しており送受信が可能な
状態
• BVAL ビットの設定でメッセージバッファを禁止して , メッセージバッファの内容
へ読出し処理を行う場合
● 処置
• 送信要求の抑止をする場合の操作
送信要求を抑止または中止する場合は , BVAL ビットを使用せず , TCAN ビットを
用いてください。
• 送信メッセージを構成する場合の操作
送信メッセージの構成を行うために , ID レジスタや IDE レジスタの設定を行う場合
, BVAL ビットを使用してメッセージバッファを禁止してください。この際 , 送信要
求ビットを読み出して "0" であること (TREQ=0) を確認するか , 送信完了ビットに
より送信が完了したこと (TC=1) を確認した後で , BVAL ビットによる禁止処理
(BVAL=0) を行ってください。
送信バッファを無効にする場合 , 必ず待機中の送信要求がないことを確認してくだ
さい ( 事前に送信要求を行った場合 )。処理中の送信がないことを確認するまで
BVALx ビットに "0" をライトしないでください。
a) 送信要求をキャンセルする : TCANx=1 ( 必要がある場合 )
b) 送信完了を待つ (TREQx=1 の間 ): ビットをポーリングまたは送信完了割込み
必ず , 上記の手順を踏んだ後で送信バッファを無効 (BVALx=0) にしてください。
<注意事項>
566
上記 a) において , 既にバッファが送信を開始している場合は , 送信キャンセルは無
視されます。バッファは送信完了後に無効になります。
第 16 章 CAN コントローラ
16.7
CAN コントローラのプログラム例
CAN コントローラのプログラム例を示します。
■ CAN 送受信のプログラム例
● 処理仕様
• CAN のメッセージバッファ 5 をデータフレーム送信 , メッセージバッファ 0 を受信
に設定します。
• フレームフォーマットの設定は標準フレームフォーマットに設定します。
• ID の設定はメッセージバッファ 0 を ID= 1, メッセージバッファ 5 を ID= 5 に設定し
ます。
• ボーレート 100Kbps ( マシンクロック = 16MHz の場合 )
• アクセプタンスマスク選択はフルビット比較に設定します。
• バスにエントリーした後 (HALT= 0), データ A0A0H を送信します。
• 送信完了割込みルーチン内にて送信要求 (TREQx=1) し同じデータを送信します。
(TREQx を送信開始に設定すると , 送信完了ビットはクリアされます。)
• 受信割込みルーチンでは , 受信完了ビットをクリアします。
567
第 16 章 CAN コントローラ
● コーディング例
・
・
・
;//データフォーマット設定(CAN初期化)
MOVW BTR,#05CC7H
;ボーレート設定100kbps
;(マシンクロック=16MHzの場合)
MOVW IDER,#0000H
;フレームフォーマット設定
;(0:標準,1:拡張)
MOVW IDR51,#0A000H ;データフレーム5 ID設定(ID=5)
MOVW IDR01,#2000H ;データフレーム0 ID設定(ID=1)
MOVW AMSR,#0000H
;アクセプタンスマスク選択レジスタ
;(フルビット比較)
MOVW BVALR,#21H
;メッセージバッファ5,0有効
;//送信設定
MOVW DLCR5,#02H
;転送データ長設定(00H:0バイト長,
;08H:8バイト長)
MOVW RFWTR,#0000H ;リモートフレーム受信待ちレジスタ
MOVW TRTRR,#0000H ;送信RTRレジスタ(0:データフレーム送信
;,1:リモートフレーム送信)
MOVW TIER,#0020H
;送信完了割込み許可レジスタ
;//受信設定
MOVW RIER,#0001H
;受信完了割込み許可レジスタ
;//バス動作開始
MOV CSR0,#80H
;制御ステータスレジスタ(HALT=0)
sthlt BBS CSR0:0,sthlt ;HALT=0待ち
;//送信データセット
MOVW DTR5,#0A0A0H ;メッセージバッファ5のデータレジスタに
;A0A0Hを書く
MOVW TREQR,#0020H ;送信要求レジスタ(1:送信開始,
;0:送信停止)
・
・
・
;//受信完了割込み
CANRX
MOVW RCR,#0000H
;受信完了レジスタ
RETI
;//送信完了割込み
CANTX
MOVW TREQR,#0020H ;送信要求レジスタ(1:送信開始,
;0:送信停止)
RETI
568
第 17 章
アドレス一致検出機能
この章では , アドレス一致検出機能の機能と動作に
ついて説明します。
17.1 アドレス一致検出機能の概要
17.2 アドレス一致検出機能のブロックダイヤグラム
17.3 アドレス一致検出機能の構成
17.4 アドレス一致検出機能の動作説明
17.5 アドレス一致検出機能のプログラム例
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
569
第 17 章 アドレス一致検出機能
17.1
アドレス一致検出機能の概要
アドレス一致検出機能は , プログラムが現在処理している命令の次に処理される命令
のアドレスが検出アドレス設定レジスタに設定したアドレスと一致した場合に , プロ
グラムで次に処理される命令を強制的に INT9 命令に置き換え , 割込み処理プログラ
ムに分岐する機能です。INT9 割込みを利用して処理できるので , プログラムのパッ
チ処理による修正に利用できます。
■ アドレス一致検出機能の概要
• プログラムが現在処理している命令の次に処理される命令のアドレスは , 内部デー
タバスを通じて常にアドレスラッチに保持されます。アドレス一致検出機能の働き
により , アドレスラッチに保持されたアドレスの値と検出アドレス設定レジスタに
設定したアドレスの値は常に比較されます。比較されたアドレスの値が一致した場
合は , CPU が次に実行する命令が強制的に INT9 命令に置き換えられ , 割込み処理プ
ログラムが実行されます。
• 検出アドレス設定レジスタは 2 つあり (PADR0, PADR1), 各レジスタごとに割込み許
可ビットが用意されています。アドレスラッチに保持されたアドレスと検出アドレ
ス設定レジスタに設定したアドレスの一致による割込みの発生をレジスタごとに
許可または禁止できます。
570
第 17 章 アドレス一致検出機能
アドレス一致検出機能のブロックダイヤグラム
17.2
アドレス一致検出モジュールは , 以下のブロックで構成されています。
• アドレスラッチ
• アドレス検出コントロールレジスタ (PACSR)
• 検出アドレス設定レジスタ
■ アドレス一致検出機能のブロックダイヤグラム
アドレス一致検出機能のブロックダイヤグラムを図 17.2-1 に示します。
図 17.2-1 アドレス一致検出機能のブロックダイヤグラム
アドレスラッチ
比較器
内部データバス
PADR0(24bit)
検出アドレス設定レジスタ0
INT9命令
(INT9割込み発生)
PADR1(24bit)
検出アドレス設定レジスタ1
PACSR
予約
予約
予約
予約
AD1E
予約
AD0E
予約
アドレス検出制御レジスタ(PACSR)
予約:必ず"0"に設定してください
● アドレスラッチ
内部データバスに出力されたアドレスの値を保持します。
● アドレス検出制御レジスタ (PACSR)
アドレスが一致された場合の割込み出力の許可または禁止を設定します。
● 検出アドレス設定レジスタ (PADR0, PADR1)
アドレスラッチの値と比較するアドレスを設定します。
571
第 17 章 アドレス一致検出機能
17.3
アドレス一致検出機能の構成
アドレス一致検出機能で使用するレジスタの一覧と詳細を記載します。
■ アドレス一致検出機能のレジスタとリセット値の一覧
図 17.3-1 アドレス一致検出機能のレジスタとリセット値の一覧
bit
アドレス検出制御レジスタ(PACSR)
bit
検出アドレス設定レジスタ0(PADR0)
:上位
bit
検出アドレス設定レジスタ0(PADR0)
:中位
bit
検出アドレス設定レジスタ0(PADR0)
:下位
bit
検出アドレス設定レジスタ1(PADR1)
:上位
bit
検出アドレス設定レジスタ1(PADR1)
:中位
bit
検出アドレス設定レジスタ1(PADR1)
:下位
× :不定
572
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
×
7
6
5
4
3
2
1
0
×
×
×
×
×
×
×
×
第 17 章 アドレス一致検出機能
アドレス検出制御レジスタ (PACSR)
17.3.1
アドレス一致による割込みの出力の許可または禁止を設定します。アドレス一致に
よる割込み出力を許可した場合にアドレス一致が検出されると , INT9 の割込みを出
力されます。
■ アドレス検出制御レジスタ (PACSR)
図 17.3-2 アドレス検出制御レジスタ (PACSR)
7
6
5
4
3
2
1
0
リセット値
00000000B
R/W R/W R/W R/W R/W R/W R/W R/W
bit0
予約ビット
予約
0
必ず"0"に設定してください
bit1
アドレス一致検出許可ビット0
AD0E
0
PADR0でのアドレス一致検出を禁止する
1
PADR0でのアドレス一致検出を許可する
bit2
予約ビット
予約
0
必ず"0"に設定してください
bit3
アドレス一致検出許可ビット1
AD1E
0
PADR1でのアドレス一致検出を禁止する
1
PADR1でのアドレス一致検出を許可する
bit4
予約ビット
予約
0
必ず"0"に設定してください
bit5
予約ビット
予約
0
必ず"0"に設定してください
bit6
予約ビット
予約
0
必ず"0"に設定してください
R/W :リード ・ライト 可能
:リセット値
bit7
予約ビット
予約
0
必ず"0"に設定してください
573
第 17 章 アドレス一致検出機能
表 17.3-1 アドレス検出制御レジスタ (PACSR) の機能
ビット名
574
機 能
bit7
∼
bit4
予約 : 予約ビット
必ず "0" に設定してください。
bit3
AD1E:
アドレス一致検出許可
ビット 1
検出アドレス設定レジスタ 1 (PADR1) とのアドレス一致
検出動作を許可または禁止します。
"0" に設定した場合 : アドレス一致検出動作を禁止しま
す。
"1" に設定した場合 : アドレス一致検出動作を許可しま
す。
• アドレス一致検出動作を許可した場合に (AD1E=1), ア
ドレスラッチの値と検出アドレス設定レジスタ 1
(PADR1) の値が一致した場合は , 直ちに INT9 命令が
実行されます。
bit2
予約 : 予約ビット
必ず "0" に設定してください。
bit1
AD0E:
アドレス一致検出許可
ビット 0
検出アドレス設定レジスタ 0 (PADR0) とのアドレス一致
検出動作を許可または禁止します。
"0" に設定した場合 : アドレス一致検出動作を禁止しま
す。
"1" に設定した場合 : アドレス一致検出動作を許可しま
す。
• アドレス一致検出動作を許可した場合に (AD0E=1), ア
ドレスラッチの値と検出アドレス設定レジスタ 0
(PADR0) の値が一致した場合は , 直ちに INT9 命令が
実行されます。
bit0
予約 : 予約ビット
必ず "0" に設定してください。
第 17 章 アドレス一致検出機能
17.3.2
検出アドレス設定レジスタ (PADR0, PADR1)
検出アドレス設定レジスタには , 検出するアドレスの値を設定します。プログラムで
実行されている命令のアドレスが検出アドレス設定レジスタに設定されたアドレス
と一致すると , 次に実行される命令が強制的に INT9 命令に置き換えられ , 割込み処
理プログラムが実行されます。
■ 検出アドレス設定レジスタ (PADR0, PADR1)
図 17.3-3 検出アドレス設定レジスタ (PADR0, PADR1)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
PADR0,PADR1:上位
D23
D22
D21
D20
D19
D18
D17
D16
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
PADR0,PADR1:中位
D15
D14
D13
D12
D11
D10
D9
D8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
X
XXXXXXXXB
リセット値
XXXXXXXXB
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
PADR0,PADR1:下位
リセット値
D7
D6
D5
D4
D3
D2
D1
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
リセット値
XXXXXXXXB
:リード・ライト可能
:不定
575
第 17 章 アドレス一致検出機能
■ 検出アドレス設定レジスタの機能
• 検出アドレス設定レジスタは 2 本 (PADR0, PADR1) 用意されており , それぞれ上位
( バンク ), 中位 , 下位の 3 バイト , 合計 24 ビットで構成されています。
表 17.3-2 検出アドレス設定レジスタのアドレス設定
レジスタ名
検出アドレス設定
レジスタ 0 (PADR0)
検出アドレス設定
レジスタ 1 (PADR1)
割込み出力許可
PACSR: AD0E
PACSR: AD1E
アドレス設定
上位
検出アドレス 0 の上位 8 ビットを設定
( バンク )
中位
検出アドレス 0 の中位 8 ビットを設定
下位
検出アドレス 0 の下位 8 ビットを設定
上位
検出アドレス 1 の上位 8 ビットを設定
( バンク )
中位
検出アドレス 1 の中位 8 ビットを設定
下位
検出アドレス 1 の下位 8 ビットを設定
• 検出アドレス設定レジスタ (PADR0, PADR1) には , INT9 命令と置き換える命令の先
頭アドレス (1 バイト目 ) を設定する必要があります。
図 17.3-4 INT9 命令と置き換える命令コードの先頭アドレスの設定
検出アドレスに設定(上位:FFH,中位:00H,下位:1FH)
アドレス
FF001C:
FF001F:
FF0022:
<注意事項>
576
命令コード
A8
4A
4A
00
00
80
00
00
08
ニーモニック
MOVW
MOVW
MOVW
RW0,#0000
A,#0000
A,#0880
• 検出アドレス設定レジスタ (PADR0, PADR1) に , 1 バイト目以外のアドレスを
設定した場合は , 命令コードが INT9 命令に置き換えられず割込み処理プログラ
ムが実行されなくなります。また , 2 バイト目以降に設定した場合は , 命令コー
ドで指定した番地が "01" (INT9 命令コード ) に置き換わってしまい , 誤作動を
起こす原因になる場合があるのでご注意ください。
• 検出アドレス設定レジスタ (PADR0, PADR1) は , 対応するアドレス一致制御レ
ジスタのアドレス一致検出動作を禁止してから (PACSR: AD0E=0 または
AD1E=0) 設定してください。アドレス一致検出動作を禁止しないで検出アドレ
ス設定レジスタを変更した場合 , アドレスの書込み中にアドレスが一致すると
直ちにアドレス一致検出機能が働いてしまい , 誤動作を起こす原因になります。
• アドレス一致検出機能は , 内部 ROM のアドレスに対してのみ使用できます。
外部メモリ領域のアドレスを設定しても , アドレス一致検出機能は働かず INT9
命令は実行されません。
第 17 章 アドレス一致検出機能
17.4
アドレス一致検出機能の動作説明
アドレス一致検出機能は , プログラムで実行される命令のアドレスが , 検出アドレス
設定レジスタ (PADR0, PADR1) で設定したアドレスと一致した場合に , CPU で実行
される先頭の命令コードを INT9 (01H) 命令に置き換え , 割込み処理プログラムに分
岐します。
■ アドレス一致検出機能の動作
検出アドレスの設定とアドレス一致が検出された場合の動作を , 図 17.4-1 に示します。
図 17.4-1 アドレス一致検出機能の動作
プログラム実行
アドレス
プログラムで実行される命令
のアドレスが検出アドレス
設定レジスタ0と一致
FF001C:
FF001F:
FF0022:
命令コード
A8
4A
4A
00
00
80
00
00
08
ニーモニック
MOVW
MOVW
MOVW
RW0,#0000
A,#0000
A,#0880
INT9命令(01H)に置き換わる
■ 検出アドレスの設定
1) 検出アドレスを設定する検出アドレス設定レジスタ 0 (PADR0) のアドレス一致検出
動作を禁止します (PACSR: AD0E=0)。
2) 検出アドレス設定レジスタ 0 (PADR0) に検出するアドレスを設定します。検出アド
レス設定レジスタ0 (PADR0)の上位に"FFH",中位に"00H",下位に"1FH"を設定します。
3) 検出アドレスを設定する検出アドレス設定レジスタ 0 (PADR0) のアドレス一致検出
動作を許可します (PACSR: AD0E=1)。
■ プログラムの実行
4) プログラムで実行される命令のアドレスが設定した検出アドレスと一致すると , 一
致したアドレスの先頭の命令コードが INT9 命令コード ("01H") に置き換わります。
5) INT9 命令が実行されます。INT9 割込みが発生し , 割込み処理プログラムが実行され
ます。
577
第 17 章 アドレス一致検出機能
17.4.1
アドレス一致検出機能の使用例
アドレス一致検出機能を利用した , プログラム修正のパッチ処理の例を示します。
■ システム構成と E2PROM のメモリ構成
● システム構成
アドレス一致検出機能を利用したシステム構成例を図 17.4-2 に示します。
図 17.4-2 アドレス一致検出機能を利用したシステム構成例
シリアルE2PROM
インタフェース
MCU
F2MC-16LX
E2PROM
修正プログラムを格納
Pull up抵抗
SIN
コネクタ(UART)
外部から修正プログラムを取り込む
578
第 17 章 アドレス一致検出機能
■ E2PROM のメモリマップ
修正プログラムを E2PROM に格納する場合の , 修正プログラムとデータの配置方法を
図 17.4-3 に示します。
図 17.4-3 E2PROM 修正プログラムとデータの配置方法
E2PROM
アドレス
PADR0
PADR1
0000H
修正プログラム バイト数
0001H
検出 アドレス0(下位)
0002H
検出 アドレス0(中位)
0003H
検出 アドレス0(上位)
0004H
修正プログラム バイト数
0005H
検出 アドレス1(下位)
0006H
検出 アドレス1(中位)
0007H
検出 アドレス1(上位)
0010H
修正プログラム0
(本体)
0020H
修正プログラム1
(本体)
修正プログラム0用
修正プログラム1用
● 修正プログラムバイト数
修正プログラム ( 本体 ) の総バイト数を格納します。バイト数が "00H" の場合は , 修正
プログラムはなし , であることを示します。
● 検出アドレス (24bit)
プログラムミスにより INT9 命令に置き換える箇所のアドレスを格納します。検出アド
レス設定レジスタ (PADR0, PADR1) に設定するアドレスです。
● 修正プログラム ( 本体 )
プログラムのアドレスと検出アドレスが一致した場合に , INT9 割込みによって実行す
るプログラムを格納します。修正プログラム 0 は , 任意に決めたアドレスから配置しま
す。修正プログラム 1 は , <修正プログラム 0 の先頭アドレス + 修正プログラム 0 の
総バイト数>のアドレスから配置します。
579
第 17 章 アドレス一致検出機能
■ 設定と動作状態
● 初期設定
• E2PROM の内容はすべて "00H" にクリアします。
● プログラムミスが発生した場合
• コネクタ接続 (UART) を使用して , 外部から MCU (F2MC-16LX) に , E2PROM 修正プ
ログラムとデータの配置方法に従った , 修正プログラムの情報を送ります。
• MCU (F2MC-16LX) 側では , 外部から受け取った修正プログラムの情報を E2PROM
に格納します。
● リセットシーケンス
• リセット後 , MCUMCU (F2MC-16LX) は , 2PROM 修正プログラムのバイト数を読み
出して , 修正プログラムの有無を確認します。
• 修正プログラムのバイト数が "00H" でない場合は , 検出アドレス 0, 1 の上位 , 中位 ,
下位を読み出して検出アドレス設定レジスタ 0, 1(PADR0, PADR1) に設定します。ま
た , 修正プログラムバイト数に従って , 修正プログラム ( 本体 ) を読み出して ,
MCUMCU (F2MC-16LX) の RAM に書き込みます。
• 修正プログラム ( 本体 ) は , アドレス一致検出機能によって INT9 割込み処理で実行
するアドレスに配置します。
• アドレス一致検出動作を許可します (PACSR: AD0E=1, AD1E=1)。
● INT9 割込み処理
• INT9 命令によって割込み処理が実行されます。MB90895 シリーズには , アドレス一
致検出による割込み要求フラグがありません。したがって , プログラムカウンタの
スタック情報が破棄されると検出アドレスを確認できません。検出アドレスを確認
する場合は , 割込み処理ルーチンでスタックされているプログラムカウンタの値を
確認してください。
• 修正プログラムの実行後に通常のプログラムに分岐します。
580
第 17 章 アドレス一致検出機能
■ 修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作
修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作を , 図 17.44 に示します。
図 17.4-4 修正プログラムを E2PROM に格納する場合のアドレス一致検出機能の動作
000000H
③
修正プログラム
RAM
検出アドレス設定レジスタ
E2PROM
①
検出アドレス設定
(リセットシーケンス)
シリアルE2PROM
インタフェース
・修正プログラムバイト数
・アドレス検出用アドレス
・修正プログラム
ROM
②
④
プログラムミス
FFFFFFH
①リセットシーケンスの検出アドレス設定と通常プログラムの実行
②アドレス一致検出によるINT9割込み処理でRAMに展開した修正プログラムへ分岐
③INT9処理の分岐による修正プログラムの実行
④修正プログラムから分岐した元の通常プログラムの実行
581
第 17 章 アドレス一致検出機能
■ プログラム修正のパッチ処理フロー
アドレス一致検出機能を利用したプログラム修正のパッチ処理のフローを図 17.4-5 に
示します。
図 17.4-5 プログラム修正のパッチ処理フロー
E2PROM
0000H
修正プログラムバイト数:80H
0001H
検出アドレス(下位):00H
0002H
検出アドレス(中位):80H
0003H
検出アドレス(上位):FFH
0010H
修正プログラム
0090H
FFFFH
YES
リセット
INT9
E2PROM:00H
を読み込む
修正プログラムへ分岐
JMP 000400H
修正プログラムの実行
000400H~000480H
E2PROM:0000H
=0
NO
修正プログラム終了
JMP FF8050H
検出アドレスを読み込む
E2PROM:0001H~0003H
↓
MCU:PADR0へ設定
修正プログラムを読み込む
E2PROM:0010H~008FH
↓
MCU:000400H~00047FH
アドレス一致検出を許可
(PACSR:AD0E =1)
通常プログラム実行
NO
582
プログラムアドレス
=PADR0
YES
INT9
第 17 章 アドレス一致検出機能
17.5
アドレス一致検出機能のプログラム例
アドレス一致検出機能のプログラム例を示します。
■ アドレス一致検出機能のプログラム例
● 処理仕様
プログラムで実効される命令のアドレスと , 検出アドレス設定レジスタ PADR0 に設定
したアドレスが一致した場合に , INT9 命令が実行されます。
● コーディング例
PACSR EQU
00009EH
;アドレス検出制御レジスタ
PADRL EQU
001FF0H
;検出アドレス設定レジスタ0下位
PADRM EQU
001FF1H
;検出アドレス設定レジスタ0中位
PADRH EQU
001FF2H
;検出アドレス設定レジスタ0上位
;
;---------メインプログラム------------------------------------CODE
CSEG
START:
;スタックポインタ(SP)などは
;初期化済みとする
MOV
PADRL,#00H
;アドレス検出レジスタ0下位設定
MOV
PADRM,#00H
;アドレス検出レジスタ0中位設定
MOV
PADRH,#00H
;アドレス検出レジスタ0上位設定
;
MOV
I:PACSR,#00000010B ;アドレス一致の許可
・
ユーザ処理
・
LOOP:
・
ユーザ処理
・
BRA
LOOP
;---------割込みプログラム------------------------------------WARI:
・
ユーザ処理
・
RETI
;割込み処理からの復帰
CODE
ENDS
;---------ベクタ設定-----------------------------------------VECT
CSEG ABS=0FFH
ORG
00FFDCH
DSL
WARI
ORG
00FFDCH
;リセットベクタ設定
DSL
START
DB
00H
;シングルチップモードに設定
VECT
ENDS
END
START
583
第 17 章 アドレス一致検出機能
584
第 18 章
ROM ミラー機能
選択モジュール
この章では , ROM ミラー機能選択モジュールの機
能と動作について説明します。
18.1 ROM ミラー機能選択モジュールの概要
18.2 ROM ミラー機能選択レジスタ (ROMM)
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
585
第 18 章 ROM ミラー機能 選択モジュール
18.1
ROM ミラー機能選択モジュールの概要
ROM ミラー機能選択モジュールでは , FF バンクに配置されている ROM 内のデータ
を , 00 バンクへのアクセスで読み出せるように設定します。
■ ROM ミラー機能選択モジュールのブロックダイヤグラム
図 18.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム
ROMミラー機能選択レジスタ(ROMM)
予約 予約 予約 予約 予約 予約 予約 MI
内部データバス
アドレス
アドレス領域
00バンク
FFバンク
データ
ROM
■ ROM ミラー機能による FF バンクのアクセス
ROM ミラー機能によって , 00 バンクのアクセスで , FF バンクの ROM データを読み出
す場合の , メモリ上の位置関係を図 18.1-2 に示します。
図 18.1-2 ROM ミラー機能による FF バンクのアクセス
004000H
00バンク
ROMミラー領域
00FFFFH
FC0000H
FEFFFFH
FF0000H
FF4000H
FFFFFFH
586
MB90V495G
FFバンク
(ROMミラー対象領域)
MB90F897/S
第 18 章 ROM ミラー機能 選択モジュール
■ ROM ミラー機能の有効・無効の場合のメモリ空間
ROM ミラー機能を有効または無効にした場合のメモリ空間のアクセスの可否を図
18.1-3 に示します。
図 18.1-3 ROM ミラー機能の有効・無効の場合のメモリ空間 ( シングルチップモード時 )
ROMミラー機能が有効な場合
000000H
0000C0H
000100H
周
アドレス#1
003900H
004000H
010000H
ROMミラー機能が無効な場合
辺
周
辺
RAM領域
レジスタ
RAM領域
レジスタ
拡張I/O領域
ROM領域
(FFバンクの
イメージ)
拡張I/O領域
FE0000H
ROM領域
*
ROM領域
*
FF0000H
FFE000H
FFFFFFH
ROM領域
品 種
ハードワイヤード
リセットベクタ
ROM領域
アドレス#1
MB90V495G
001900H
MB90F897/S
000900H
:内部アクセスメモリ
*
:アクセス禁止
:MB90F897/Sでは,FE0000H~FEFFFFHの領域を読み出すと
FF0000H~FFFFFFHのデータが読み出せます。
■ ROM ミラー機能選択モジュールのレジスタとリセット値の一覧
図 18.1-4 ROM ミラー機能選択モジュールのレジスタとリセット値の一覧
bit
ROMミラー機能選択レジスタ(ROMM)
15
14
13
12
11
10
9
8
×
×
×
×
×
×
×
1
× :不定
587
第 18 章 ROM ミラー機能 選択モジュール
ROM ミラー機能選択レジスタ (ROMM)
18.2
ROM ミラー機能選択レジスタでは , ROM ミラー機能を有効にするか , 無効にするか
を設定します。有効に設定した場合は , 00 バンクの読出しで , FF バンクの ROM
データが読み出せます。
■ ROM ミラー機能選択レジスタ (ROMM)
図 18.2-1 ROM ミラー機能選択レジスタ (ROMM)
15
14
13
12
11
10
9
8
リセット値
XXXXXXX1B
-
-
-
-
-
W
X
ー
:ライトオンリ
:不定
:未定義
:リセット値
-
-
W
bit8
MI
0
1
ROMミラー機能選択ビット
ROMミラー機能は無効
ROMミラー機能は有効
表 18.2-1 ROM ミラー機能選択レジスタ (ROMM) の機能
ビット名
機 能
bit15
∼
bit9
予約
リードした場合 : 値は不定です。
必ず "0" を設定してください。
bit8
MI:
ROM ミラー機能選択
ビット
ROM ミラー機能を有効にするか , 無効にするかを設定し
ます。
"0" に設定した場合 : ROM ミラー機能を無効にします。
"1" に設定した場合 : ROM ミラー機能を有効にします。
• ROM ミラー機能を有効に設定した場合 (MI=1), アドレ
ス "004000H" ∼ "00FFFFH" のアクセスで , ROM アドレ
ス "FF4000H" ∼ "FFFFFFH" の内容が読み出せます。
<注意事項>
アドレス "004000H" ∼ "00FFFFH" の ROM 領域を使用中は , ROM ミラー選択レジ
スタ (ROMM) のアクセスを禁止します。
588
第 19 章
512K ビットフラッシュ
メモリ
512K ビットフラッシュメモリの機能および動作に
ついて説明します。
19.1 512K ビットフラッシュメモリの概要
19.2 フラッシュメモリのレジスタとセクタ / バンク構成
19.3 フラッシュメモリコントロールステータスレジスタ
(FMCS)
19.4 フラッシュメモリ書込みコントロールレジスタ (FWR0/
1)
19.5 フラッシュメモリ自動アルゴリズム起動方法
19.6 フラッシュメモリにおけるリセットベクタアドレス
19.7 自動アルゴリズム実行状態の確認
19.8 フラッシュメモリ書込み / 消去の詳細説明
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
589
第 19 章 512K ビットフラッシュ メモリ
19.1
512K ビットフラッシュメモリの概要
フラッシュメモリへのデータ書込み / 消去の方法には , 下記の 3 とおりの方法があり
ます。
1. パラレルライタ
2. シリアル専用ライタ
3. プログラム実行による書込み / 消去
本章では ,「3. プログラム実行による書込み / 消去」について解説します。
■ 512K ビットフラッシュメモリの概要
512K ビットフラッシュメモリは , CPU メモリマップ上の FFH バンクに配置されていま
す。フラッシュメモリインタフェース回路の機能により , CPU からのリードアクセス
およびプログラムアクセスができます。
フラッシュメモリへの書込み / 消去は , フラッシュメモリインタフェース回路を介して
CPU からの命令で行えるため , 実装状態でプログラムやデータの書換えを効率よく行
うことができます。
データの書換え方法は, RAM上でのプログラム実行だけでなく,デュアルオペレーショ
ンによりフラッシュメモリ上でもプログラム実行を行うことができます。また , 異なる
バンク (Upper Bank/Lower Bank) での消去 / 書込みと読出しの同時実行が可能です。
■ 512K ビットフラッシュメモリの特長
• 64K ワード× 8 ビット /32K ワード× 16 ビット (4K × 4+16K × 2+4K × 4) セクタ構成
• 2 バンク構成による消去 / 書込みと読出しの同時実行
• 自動プログラムアルゴリズム (Embedded Alogrithm)
• 消去一時停止 / 消去再開機能の搭載
• データポーリング , トグルビットによる書込み / 消去完了検出
• CPU 割込みによる書込み / 消去の完了検出
• セクタごとの消去が可能 ( セクタ組み合わせ自由 )
• 書込み / 消去回数 ( 最小 ) 10,000 回
• フラッシュ読出しサイクルタイム ( 最小 ) 2 マシンサイクル
<注意事項>
590
マニュファクチャコードとデバイスコードの読出し機能はありません。
また , これらのコードは , コマンドによってもアクセスできません。
第 19 章 512K ビットフラッシュ メモリ
■ フラッシュメモリ書込み / 消去
• フラッシュメモリは , 同一バンクによる書込みと読出しを同時に行うことはできま
せん。
• フラッシュメモリにデータ書込み / 消去動作を行う際には , フラッシュメモリ上に
あるプログラムを実行またはフラッシュメモリ上にあるプログラムをいったん
RAM にコピーし , RAM にコピーしたプログラムを実行することにより , フラッシュ
メモリへの書込みを行うことができます。
591
第 19 章 512K ビットフラッシュ メモリ
19.2
フラッシュメモリのレジスタとセクタ / バンク構成
フラッシュメモリのレジスタとセクタ / バンク構成を示します。
■ フラッシュメモリのレジスタとリセット値の一覧
図 19.2-1 フラッシュメモリのレジスタとリセット値の一覧
bit
フラッシュメモリコントロール
ステータスレジスタ(FMCS)
bit
フラッシュメモリ書込み
コントロールレジスタ(FWR0)
bit
フラッシュメモリ書込み
コントロールレジスタ(FWR1)
7
6
5
4
3
2
1
0
0
0
0
×
0
0
0
0
7
6
5
4
3
2
1
0
0
0
0
0
0
0
0
0
15
14
13
12
11
10
9
8
0
0
0
0
0
0
0
0
× :不定
■ 512K ビットフラッシュメモリのセクタおよびバンク構成
図 19.2-2 に 512K ビットフラッシュメモリのセクタ構成を示します。図中アドレスは ,
各セクタの上位アドレスと下位アドレスを示します。
● セクタ構成
CPU からアクセスする場合 , FF バンクレジスタに SA0 ∼ SA9 が配置されています。
● バンク構成
上位バンク / 下位バンクの 2 つで構成され , それぞれ下位バンク :SA0 ∼ SA3, 上位バン
ク :SA4 ∼ SA9 となります。
592
第 19 章 512K ビットフラッシュ メモリ
図 19.2-2 512K ビットフラッシュメモリのセクタ構成
フラッシュメモリ
CPUアドレス
ライタアドレス*
FF0000H
70000H
FF0FFFH
70FFFH
FF1000H
71000H
FF1FFFH
71FFFH
FF2000H
72000H
FF2FFFH
72FFFH
FF3000H
73000H
SA1(4Kバイト)
SA2(4Kバイト)
下位バンク
SA0(4Kバイト)
SA3(4Kバイト)
FF3FFFH
73FFFH
FF4000H
74000H
FF7FFFH
77FFFH
FF8000H
78000H
FFBFFFH
7BFFFH
FFC000H
7C000H
FFCFFFH
7CFFFH
FFD000H
7D000H
SA4(16Kバイト)
SA6(4Kバイト)
SA7(4Kバイト)
FFDFFFH
7DFFFH
FFE000H
7E000H
FFEFFFH
7EFFFH
FFF000H
7F000H
FFFFFFH
7FFFFH
上位バンク
SA5(16Kバイト)
SA8(4Kバイト)
SA9(4Kバイト)
*:ライタアドレスとは,フラッシュメモリにパラレルライタでデータ
書込みを行う場合,CPUアドレスに相当するアドレスです。
汎用ライタを使用し書込み/消去を行う場合は,このライタアドレ
スで書込み/消去を行います。
593
第 19 章 512K ビットフラッシュ メモリ
フラッシュメモリコントロールステータスレジスタ
(FMCS)
19.3
フラッシュメモリコントロールステータスレジスタ (FMCS) の機能を図 19.3-1 に示
します。
■ フラッシュメモリコントロールステータスレジスタ (FMCS)
図 19.3-1 フラッシュメモリコントロールステータスレジスタ (FMCS)
7
6
5
4
3
2
1
0
R
W
W
W
W
リセット値
000X0000B
R/W R/W R/W
bit0
予約ビット
予約
0
必ず"0"に設定してください
bit1
予約ビット
予約
0
必ず"0"に設定してください
bit2
予約ビット
予約
0
必ず"0"に設定してください
bit3
予約ビット
予約
0
必ず"0"に設定してください
bit4
RDY
0
1
フラッシュメモリ書込み/消去ステータスビット
書込み/消去の実行中(次データ書込み/消去不可)
書込み/消去の終了(次データ書込み/消去許可)
bit5
WE
0
1
フラッシュメモリ書込み/消去許可ビット
フラッシュメモリ領域の書込み/消去禁止
フラッシュメモリ領域の書込み/消去許可
bit6
RDYINT
0
1
フラッシュメモリ動作フラグビット
リードした場合 ライトした場合
書込み/消去の実行中
このRDYINビットのクリア
書込み/消去の終了
影響なし
bit7
R/W
R
W
X
594
:リード・ライト可能
:リードオンリ
:ライトオンリ
:不定
:リセット値
フラッシュメモリ書込み/消去割込み許可ビット
INTE
0
書込み/消去の終了による割込み禁止
1
書込み/消去の終了による割込み許可
第 19 章 512K ビットフラッシュ メモリ
表 19.3-1 コントロールステータスレジスタ (FMCS) の機能 (1 / 2)
ビット名
機 能
bit7
INTE:
フラッシュメモリ割込
み / 消去割込み許可
ビット
フラッシュメモリの書込み / 消去の終了による割込み要
求発生を許可または禁止します。
"1" に設定した場合 : フラッシュメモリ動作フラグビッ
トを "1" に設定した場合に (FMCS:
RDYINT=1), 割込み要求が発生しま
す。
bit6
RDYINT:
フラッシュメモリ動作
フラグビット
フラッシュメモリの動作状態を示します。
フラッシュメモリの書込み / 消去が終了した場合に , フ
ラッシュメモリ自動アルゴリズム終了のタイミングで ,
この RDYINT ビットに "1" がセットされます。
• フラッシュメモリ書込み / 消去の終了による割込みを
許可に設定している場合は (FMCS: INTE=1), この
RDYINT ビットに "1" がセットされると割込み要求が
発生します。
• この RDYINT ビットが "0" の場合は , フラッシュメモ
リへの書込み / 消去はできません。
"0" に設定した場合 : クリアされます。
"1" に設定した場合 : 影響しません。
リードモディファイライト (RMW) 系命令を使用した場
合は , 必ず "1" が読み出されます。
bit5
WE:
フラッシュメモリ書込
み / 消去許可ビット
フラッシュメモリ領域への書込み / 消去を許可または禁
止します。
この WE ビットはフラッシュメモリの書込み / 消去のコ
マンドを起動する前に設定してください。
"0" に設定した場合 : FF バンクへの書込み / 消去コマン
ドを入力しても , 書込み / 消去の信
号は発生しません。
"1" に設定した場合 : FF バンクへの書込み / 消去コマン
ド入力後 , フラッシュメモリへの書
込み / 消去ができます。
• 書込み / 消去を行わない場合は , 誤ってフラッシュメ
モリに書き込んだり , 消去を行わないように , この
WE ビットを "0" に設定してください。
• フラッシュメモリに書き込む際には , FMC:WE に "1"
を設定し書込み許可にしてからフラッシュメモリ書込
みコントロールレジスタ (FWR0/1) の設定を行ってく
ださい。FMCS:WE が書込み禁止 ("0") の場合 , フラッ
シュメモリ書込みコントロールレジスタ (FWR0/1) を
書込み許可としても , フラッシュメモリに書込み動作
が行われません。
bit4
RDY:
フラッシュメモリ書込
み / 消去ステータス
ビット
フラッシュメモリの書込み / 消去の状態を示します。
• この RDY ビットが "0" の場合は , フラッシュメモリへ
の書込み / 消去はできません。
• この RDY ビットが "0" の場合でも , 読出し / リセット
コマンド , セクタ消去一時停止コマンドは受付けるこ
とができます。書込み / 消去動作を終了すると , この
RDY ビットは "1" にセットされます。
595
第 19 章 512K ビットフラッシュ メモリ
表 19.3-1 コントロールステータスレジスタ (FMCS) の機能 (2 / 2)
ビット名
bit3
bit2
bit1
bit0
<注意事項>
予約 : 予約ビット
機 能
必ず "0" に設定してください。
フラッシュメモリ動作フラグビット (RDYINT) とフラッシュメモリ書込み / 消去ス
テータスビット (RDY) は同時には変化しません。どちらかのビットで書込み / 消
去の終了を判定するようにプログラムを作成してください。
自動アルゴリズム
終了タイミング
RDYINTビット
RDYビット
1マシンサイクル
596
第 19 章 512K ビットフラッシュ メモリ
19.4
フラッシュメモリ書込みコントロールレジスタ
(FWR0/1)
フラッシュメモリ書込みコントロールレジスタ (FWR0/1) は , フラッシュメモリイン
タフェースにあるレジスタで , フラッシュメモリの誤書込み防止機能の設定を行う際
に使用します。
■ フラッシュメモリ書込みコントロールレジスタ (FWR0/1)
フラッシュメモリ書込みコントロールレジスタ (FWR0/1) は , 各セクタ (SA0 ∼ SA9) に
対応した書込み許可 / 禁止設定ビットです。初期値は "0" を示し , 書込み禁止となりま
す。"1" を書き込むことにより対応するセクタの書込みを許可します。また , "0" を書
き込むことにより , 誤書込み防止が機能します。よって "0" を書き込んでから "1" の書
込みを行ってもそのセクタに書込みを行うことはできません。再度書き込む必要があ
る場合はリセットをかける必要があります。
図 19.4-1 フラッシュメモリ書込みコントロールレジスタ (FWR0/1)
FWR0
[390AH]
FWR1
[390BH]
6
5
4
3
2
1
0
SA6E
SA5E
SA4E
SA3E
SA2E
SA1E
SA0E
(0) (0) (0) (0) (0) (0) (0)
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(0)
R/W
bit 7
SA7E
bit 15
-
14
13
12
11
10
9
8
-
-
-
-
-
SA9E
SA8E
(0) (0) (0) (0) (0) (0) (0)
R/W
R/W
R/W
R/W
R/W
R/W
R/W
(0)
R/W
R/W:リード・ライト可能
0 :書込み禁止[初期値]
1 :書込み許可
597
第 19 章 512K ビットフラッシュ メモリ
図 19.4-2 フラッシュメモリ書込みコントロールレジスタ (FWR0/1) における
フラッシュメモリへの書込み禁止 / 許可 / 誤書込み防止状態の例
初期化
レジスタ
書込み
レジスタ
書込み
初期化
RST
書込み禁止
書込み許可
誤書込み防止
書込み禁止
SA0E
書込み禁止
誤書込み防止
書込み禁止
書込み禁止
誤書込み防止
書込み禁止
書込み禁止
書込み許可
書込み禁止
SA1E
SA2E
SA3E
書込み禁止 :
"0" 状態。フラッシュメモリ書込みコントロールレジスタ (FWR0/1) に "0" を書いて
ない状態で各セクタに対応したレジスタを書込み許可 ("1") にすることが可能です (
リセット後の状態 )。
書込み許可 :
"1" の状態。対応したセクタにデータを書き込むことが可能です。
誤書込み防止 :
"0" の状態。フラッシュメモリ書込みコントロールレジスタ (FWR0/1) に "0" を書い
た状態で各セクタに対応したレジスタに "1" を書き込んでも書込み許可 ("1") にする
ことはできません。
598
第 19 章 512K ビットフラッシュ メモリ
表 19.4-1 フラッシュメモリ書込みコントロールレジスタ (FWR0/1) の機能
ビット名
bit15
機 能
予約 : 予約ビット
書込み時は , 必ず "0" を書き込んでください。また , 読出
し値は不定です。
SA9E ∼ SA0E:
誤書込み機能設定
ビット
フラッシュメモリの各セクタに対応した誤書込み機能設
定ビットです。"1" を書き込むことにより対応したセクタ
に書込みが許可されます。また , "0" を書き込むことによ
り対応したセクタは誤書込み防止機能が働きます。
また , リセットにより初期化され "0" ( 書込み禁止 ) とな
ります。
∼
bit10
bit9
∼
bit0
誤書込み機能設定ビットのフラッシュセクタ対応表
ビット
9
8
7
6
5
4
3
2
1
0
ビット名
SA9E
SA8E
SA7E
SA6E
SA5E
SA4E
SA3E
SA2E
SA1E
SA0E
フラッシュ対応セクタ
SA9
SA8
SA7
SA6
SA5
SA4
SA3
SA2
SA1
SA0
書込み禁止 :"0" 状態。フラッシュメモリ書込みコント
ロールレジスタ (FWR0/1) に "0" を書いてな
い状態で各セクタに対応したレジスタを書
込み許可 ("1") にすることが可能です
( リセット後の状態 )。
書込み許可 : "1" の状態。対応したセクタにデータを書き
込むことが可能です。
誤書込み防止 :"0" の状態。フラッシュメモリ書込みコン
トロールレジスタ (FWR0/1) に "0" を書い
た状態で各セクタに対応したレジスタに
"1" を書き込んでも書込み許可 ("1") にする
ことはできません。
599
第 19 章 512K ビットフラッシュ メモリ
■ フラッシュメモリ書込みコントロールレジスタ (FWR0/1) 設定フロー
FMCS:WE ビットを設定し , 書込みをするセクタには "1" を , 誤書込み防止セクタには
"0" をそれぞれフラッシュメモリ書込みコントロールレジスタ (FWR0/1) に設定してく
ださい。また書込みは , ワード書込みで必ず行い , ビット操作命令での設定は禁止とな
ります。
図 19.4-3 フラッシュメモリ誤書込み設定および書込み手順例
書込み開始
FMCS:WE(bit5)
フラッシュメモリ書込み許可
FFWR0/1
フラッシュメモリ誤書込み
防止設定
(誤書込み防止セクタは0,
書込みセクタは1)
書込みコマンドシーケンス
①FFUAAA←XXAA
②FFU554←XX55
③FFUAAA←XXA0
④書込みアドレス←書込みデータ
内部アドレスリード
データポーリング
(DQ7)
次アドレス
Data
Data
0
タイミングリミット
(DQ5)
1
内部アドレスリード
Data
データポーリング
(DQ7)
Data
書込みエラー
最終アドレス
YES
FMCS:WE(bit5)
フラッシュメモリ書込み禁止
書込み完了
600
NO
第 19 章 512K ビットフラッシュ メモリ
■ FMCS:WE の設定について
フラッシュメモリに書き込む際には , FMCS:WE に "1" を設定し , 書込み許可にしてか
らフラッシュメモリ書込みコントロールレジスタ (FWR0/1) の設定を行ってください。
FMCS:WE が書込み禁止 ("0") の場合 , フラッシュメモリ書込みコントロールレジスタ
(FWR0/1) で書込み許可としても , フラッシュメモリに書込み動作が行われません。
601
第 19 章 512K ビットフラッシュ メモリ
19.5
フラッシュメモリ自動アルゴリズム起動方法
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット ,
書込み , チップ消去 , セクタ消去の 4 種類があり , セクタ消去については一時停止と
再開の制御ができます。
■ コマンドシーケンス表
表 19.5-1 に , フラッシュメモリの書込み / 消去時に使用するコマンドの一覧を示しま
す。コマンドレジスタへの書込みはバイト / ワードともに可能です。ワードアクセス
で書き込んだ場合の上位バイトは無視されます。
表 19.5-1 コマンドシーケンス表
バス
コマンド
ライト
シーケンス
アクセス
読出し/
1
リセット*
読出し/
4
リセット*
書込み
チップ
消去
セクタ
消去
1stバス
2ndバス
3rdバス
4thバス
5thバス
6thバス
ライトサイクル ライトサイクル
ライトサイクル ライトサイクル ライトサイクル ライトサイクル
アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ アドレス データ
FFXXXXH
XXF0H
-
-
-
-
-
-
-
-
-
-
FFUAAAH
XXAAH
FFU554H
XX55H
FFUAAAH
XXF0H
RA
RD
-
-
-
-
4
FFUAAAH
XXAAH
FFU554H
XX55H
FFUAAAH
XXA0H
PA
PD
-
-
-
-
6
FFXAAAH
XXAAH
FFX554H
XX55H
FFXAAAH
XX80H
FFXAAAH
XXAAH
FFX554H
XX55H
FFXAAAH
XX10H
6
FFUAAAH
XXAAH
FFU554H
XX55H
FFUAAAH
XX80H
FFUAAAH
XXAAH
FFU554H
XX55H
SA
XX30H
セクタ消去一時停止
アドレス"FFUXXX",データ"XXB0H"入力で,セクタ消去中の消去一時停止
セクタ消去再開
アドレス"FFUXXX",データ"XX30H"入力で,セクタ消去一時停止後,消去開始
RA:読出しアドレス
PA:書込みアドレス
SA:セクタアドレス(セクタ内の任意の1アドレスを指定)
RD:読出しデータ
PD:書込みデータ
U :RA,PA,SAと同じ上位4ビット
*:2種類の読出し/リセットコマンドはどちらもフラッシュメモリを読出しモードにリセットすることができます。
<注意事項>
• 表中のアドレスは , CPU メモリマップ上の値です。アドレスおよびデータはす
べて 16 進数で表記しています。ただし "X" は任意の値です。
• 表中のアドレス "U" 表記は任意ではなくアドレス (15 ビット∼ 12 ビット ) の 4
ビットは RA, PA, SA と同じ値にしてください。
例:RA=FFC48EH の場合 U=C, SA=FF3000H の場合 U=3,
PA=FF1024H の場合 U=1
• チップ消去コマンドが受け付けられるのは , 全セクタを書込み許可している場合
のみです。フラッシュメモリ書込みコントロールレジスタ (FWR0/1) に 1 セク
タでも "0" 設定 ( 書込み禁止 / 誤書込み防止 ) している場合 , チップ消去コマン
ドは無視されます。
602
第 19 章 512K ビットフラッシュ メモリ
■ コマンド発行時の注意点
コマンドシーケンス表のコマンドを発行する際には下記の点に注意してください。
• 各セクタの書込み許可の設定は 1st コマンド発行前に行ってください。
• コマンドを発行する際のアドレス上位 U (15 ∼ 12 ビット目 ) は , 1st コマンド発行時
から RA, PA, SA と同じにしてください。
上記の対策が行われない場合 , 正常にコマンドが認識されず , リセットにてフラッシュ
メモリ内のコマンドシーケンサを初期化する必要があります。
603
第 19 章 512K ビットフラッシュ メモリ
19.6
フラッシュメモリにおけるリセットベクタアドレス
MB90F897 はハードワイヤードリセットベクタとなります。
CPU モードにおいてアドレス FFFFDCH ∼ FFFFDFH へのすべての読出しアクセス
は , ハード的に決められた値を読み出すことになります。しかし , フラシュメモリ
モードでは , これらのアドレスにアクセスが可能です。
このため , これらのアドレスへの書込みは意味がなく , 特に CPU アクセスでフラッ
シュメモリをプログラミングするとき , ソフトウェアポーリングでこれらのアドレス
を読み出さないようにしてください。その場合 , フラッシュメモリの状態フラグの値
でなく , 固定のリセットベクタの値が読み出されます。
■ ハードワイヤードリセットベクタアドレス
表 19.6-1 に , リセットベクタとモードデータの固定値を示します。
表 19.6-1 リセットベクタとモードデータの固定値
リセットベクタ
モードデータ
<注意事項>
604
アドレス
データ ( 固定値 )
FFFFDCH
00H
FFFFDDH
E0H
FFFFDEH
FFH
FFFFDFH
00H
リセットベクタとモードデータは上記に示した値が設定されていますので , フラッ
シュメモリに書き込むプログラムの中のリセットベクタ値とモードデータの値は動
作に影響ありませんが , 同一のプログラムをマスク ROM 品で使用した場合 , 異な
る動作をする可能性がありますので , フラッシュメモリにも同一の値を書き込むよ
うにしてください。
第 19 章 512K ビットフラッシュ メモリ
19.7
自動アルゴリズム実行状態の確認
フラッシュメモリでは , 書込み / 消去のフローを自動アルゴリズムで行うため , フ
ラッシュメモリ内部の動作状態をハードウェアシーケンスフラグによって確認がで
きます。
■ ハードウェアシーケンスフラグ
● ハードウェアシーケンスフラグの概要
ハードウェアシーケンスフラグは , 次の 5 ビットの出力で構成されます。
• データポーリングフラグ (DQ7)
• トグルビットフラグ (DQ6)
• タイミングリミット超過フラグ (DQ5)
• セクタ消去タイマフラグ (DQ3)
• トグルビット 2 フラグ (DQ2)
ハードウェアシーケンスフラグにより , 書込み / チップ・セクタ消去の終了 , 消去コー
ドライトができるかを確認することができます。
ハードウェアシーケンスフラグを参照するには , コマンドシーケンス設定後にフラッ
シュメモリ内部の対象セクタのアドレスにリードアクセスすることで参照できます。
ただし,ハードウェアシーケンスフラグはコマンド発行された側のバンクのみ出力され
ます。表 19.7-1 にハードウェアシーケンスフラグのビット割当てを示します。
表 19.7-1 ハードウェアシーケンスフラグのビット割当て
ビット No.
ハードウェアシーケンスフラグ
7
6
5
4
3
2
1
0
DQ7
DQ6
DQ5
−
DQ3
DQ2
−
−
• 自動書込み / チップ・セクタ消去が実行中か , 終了しているか判断するためには ,
ハードウェアシーケンスフラグを確認するかまたはフラッシュメモリ制御ステー
タスレジスタのフラッシュメモリ書込み / 消去ステータスビット (FMCS: RDY) を確
認してください。書込み / 消去の終了後は , 読出し / リセット状態に戻ります。
• 書込み / 消去プログラムを作成する場合には , DQ7, DQ6, DQ5, DQ3, DQ2 のフラグで
自動書込み / 消去の終了を確認後に , データの読出しの処理を行ってください。
• 2 回目以降のセクタ消去コードライトが有効であるかについても , ハードウェア
シーケンスフラグによって確認することができます。
605
第 19 章 512K ビットフラッシュ メモリ
● ハードウェアシーケンスフラグの説明
表 19.7-2 に , ハードウェアシーケンスフラグ機能の一覧を示します。
表 19.7-2 ハードウェアシーケンスフラグ機能の一覧
DQ7
DQ6
DQ5
DQ3
DQ7 →
DATA: 7
Toggle →
DATA: 6
0→
DATA: 5
0→
DATA: 3
チップ・セクタ消去
→消去完了
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
*
状 態
正常動作時の
状態変化
書込み→書込完了
( 書込みアドレス指定時 )
セクタ消去一時停止中
( 消去中ではないセクタ )
書込み
異常動作
チップ・セクタ消去
* :DQ5 が "1" の場合 ( タイミングリミット超過 ), 書込み / 消去セクタへの連続的な読出しに対し
て DQ2 はトグル動作を行い , ほかのセクタへの読出しに対してはトグル動作を行いません。
606
DQ2
1→
DATA:2
第 19 章 512K ビットフラッシュ メモリ
19.7.1
データポーリングフラグ (DQ7)
データポーリングフラグ (DQ7) は , 自動アルゴリズム実行が進行中もしくは終了状
態であることをデータポーリング機能によって知らせるハードウェアシーケンスフ
ラグです。
■ データポーリングフラグ (DQ7)
表 19.7-3 と表 19.7-4 に , データポーリングフラグの状態遷移を示します。
表 19.7-3 データポーリングフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み→
書込完了
チップ・
セクタ消去
→
消去完了
DQ7
DQ7 →
DATA: 7
0→1
セクタ消去
ウェイト→
消去開始
セクタ消去→
セクタ消去
一時停止
( 消去中の
セクタ )
セクタ消去
一時停止→
消去再開
( 消去中の
セクタ )
セクタ消去
一時停止中
( 消去中では
ないセクタ )
0
0→1
1→0
DATA: 7
表 19.7-4 データポーリングフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み
チップ・セクタ
消去
DQ7
DQ7
0
● 書込みの場合
• 自動書込アルゴリズム実行中にリードアクセスした場合 , 最後に書き込まれたデー
タの bit7 を反転させた値を出力します。
• 自動書込アルゴリズム終了時にリードアクセスを行った場合 , フラッシュメモリは
リードアクセスを行ったアドレスの読出し値の bit7 を出力します。
● チップ消去 / セクタ消去の場合
• チップ消去 / セクタ消去のアルゴリズム実行中に現在消去しているセクタをリード
アクセスすると , フラッシュメモリの bit7 は "0" を出力します。チップ消去 / セクタ
消去が終了すると , フラッシュメモリの bit7 は "1" を出力します。
607
第 19 章 512K ビットフラッシュ メモリ
● セクタ消去一時停止の場合
• セクタ消去一時停止状態でリードアクセスを行った場合 , フラッシュメモリは , リー
ドアドレスが消去中のセクタであれば , "1" を出力します。消去中のセクタでなけれ
ば , リードアドレスの読出し値の bit7 (DATA: 7) を出力します。
• トグルビットフラグ (DQ6) とともに参照することで , セクタ一時停止状態であるか ,
どのセクタが消去中であるかを判定することができます。
<注意事項>
608
自動アルゴリズムを起動した場合は , 指定したアドレスへのリードアクセスは無視
されます。データの読出しは , データポーリングフラグ (DQ7) が "1" にセットされ
た後 , 可能になります。自動アルゴリズム終了後のデータの読出しは , データポー
リング終了を確認したリードアクセスのあとに行ってください。
第 19 章 512K ビットフラッシュ メモリ
19.7.2
トグルビットフラグ (DQ6)
トグルビットフラグ (DQ6) は , 自動アルゴリズム実行が進行中 , もしくは終了状態で
あることをトグルビット機能によって知らせるハードウェアシーケンスフラグです。
■ トグルビットフラグ (DQ6)
表 19.7-5 と表 19.7-6 に , トグルビットフラグの状態遷移を示します。
表 19.7-5 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み→
書込完了
チップ・
セクタ消去
→
消去完了
DQ6
Toggle →
DATA: 6
Toggle → Stop
セクタ消去
ウェイト→
消去開始
セクタ消去→
セクタ消去
一時停止
( 消去中の
セクタ )
セクタ消去
一時停止→
消去再開
( 消去中の
セクタ )
セクタ消去
一時停止中
( 消去中では
ないセクタ )
Toggle
Toggle → 1
1 → Toggle
DATA: 6
表 19.7-6 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み
チップ・セクタ
消去
DQ6
Toggle
Toggle
● 書込みとチップ消去 / セクタ消去の場合
• 自動書込アルゴリズムおよびチップ消去 / セクタ消去のアルゴリズム実行中に , リー
ドアクセスを連続して行った場合 , フラッシュメモリは , リードを行うごとに "1" と
"0" を交互にトグル出力します。
• 自動書込みアルゴリズムおよびチップ消去 / セクタ消去のアルゴリズムが終了した
あとに , リードアクセスを連続して行った場合 , フラッシュメモリはリードを行う
ごとにリードアドレスの読出し値の bit6 (DATA: 6) を出力します。
● セクタ消去一時停止の場合
セクタ消去一時停止状態でリードアクセスを行った場合 , フラッシュメモリは , リード
アドレスが消去中のセクタであるならば , "1" を出力します。消去中のセクタでなけれ
ば , リードアドレスの読出し値の bit6 (DATA: 6) を出力します。
609
第 19 章 512K ビットフラッシュ メモリ
19.7.3
タイミングリミット超過フラグ (DQ5)
タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムの実行がフラッシュメ
モリ内部の規定時間 ( 書込み / 消去に要する時間 ) を超えてしまったことを知らせる
ハードウェアシーケンスフラグです。
■ タイミングリミット超過フラグ (DQ5)
表 19.7-7 と表 19.7-8 に , タイミングリミット超過フラグの状態遷移を示します。
表 19.7-7 タイミングリミット超過フラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み→
書込完了
チップ・
セクタ消去
→
消去完了
DQ5
0 → DATA: 5
0→1
セクタ消去
ウェイト→
消去開始
セクタ消去→
セクタ消去
一時停止
( 消去中の
セクタ )
セクタ消去
一時停止→
消去再開
( 消去中の
セクタ )
セクタ消去
一時停止中
( 消去中では
ないセクタ )
0
0
0
DATA: 5
表 19.7-8 タイミングリミット超過フラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み
チップ・セクタ
消去
DQ5
1
1
● 書込みとチップ消去 / セクタ消去の場合
• 書込みまたはチップ消去 / セクタ消去の自動アルゴリズム起動後にリードアクセス
を行った場合 , 規定時間 ( 書込み / 消去に要する時間 ) 内であれば "0" を , 規定時間
を超えている場合は "1" を出力します。
• タイミングリミット超過フラグ (DQ5) は , 自動アルゴリズムが実行中か終了状態か
にかかわらず , 書込み / 消去の成功または , 失敗の判定を行うことができます。タイ
ミングリミット超過フラグ (DQ5) が "1" を出力した場合 , データポーリング機能ま
たはトグルビット機能により自動アルゴリズムが実行中であれば , 書込みが失敗し
ていると判断することができます。
• 例えば "0" が書き込まれているフラッシュメモリアドレスに "1" を書き込もうとし
た場合は , フラッシュメモリはロックされ , 自動アルゴリズムは終了せず , データ
ポーリングフラグ (DQ7) から有効なデータが出力されません。またトグルビットフ
ラグ (DQ6) はトグル動作を終了せず , タイムリミットを超えてしまい , タイミング
リミット超過フラグ (DQ5) は "1" を出力します。タイミングリミット超過フラグ
(DQ5) が "1" を出力した場合は , フラッシュメモリが不良ではなく , 正しく使用され
なかったことを示していますので , リセットコマンドを実行してください。
610
第 19 章 512K ビットフラッシュ メモリ
19.7.4
セクタ消去タイマフラグ (DQ3)
セクタ消去タイマフラグ (DQ3) は , セクタ消去コマンド起動後セクタ消去ウェイト
期間中であるか否かを知らせるハードウェアシーケンスフラグです。
■ セクタ消去タイマフラグ (DQ3)
表 19.7-9 と表 19.7-10 に , セクタ消去タイマフラグの状態遷移を示します。
表 19.7-9 セクタ消去タイマフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
DQ3
書込み→
書込完了
チップ・
セクタ消去
→
消去完了
セクタ消去
ウェイト→
消去開始
セクタ消去→
セクタ消去
一時停止
( 消去中の
セクタ )
セクタ消去
一時停止→
消去再開
( 消去中の
セクタ )
セクタ消去
一時停止中
( 消去中では
ないセクタ )
1
0→1
1→0
0→1
DATA: 3
0 → DATA: 3
表 19.7-10 セクタ消去タイマフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み
チップ・セクタ
消去
DQ3
0
1
● セクタ消去の場合
• セクタ消去コマンド起動後にリードアクセスを行った場合に , セクタ消去ウェイト
期間中であれば "0" を出力します。セクタ消去ウェイト期間を超えている場合は "1"
を出力します。
• データポーリング機能やトグルビット機能により消去アルゴリズムが実行中を示
している場合 (DQ7=0, DQ6 がトグル出力 ), セクタ消去タイマフラグ (DQ3) が "1" で
あれば , セクタ消去を行っています。続けて消去一時停止以外のコマンドを設定し
た場合は , 消去が終了されるまで無視されます。
• セクタ消去タイマフラグ (DQ3) が "0" であった場合 , フラッシュメモリはセクタ消
去コマンドを受け付ることができます。セクタ消去コマンドを書き込む場合は , セ
クタ消去タイマフラグ (DQ3) が "0" であることを確認してください。セクタ消去タ
イマ (DQ3) が "1" であった場合 , 一時停止のセクタ消去コマンドが受け付けられな
い場合があります。
● セクタ消去一時停止の場合
• セクタ消去一時停止状態でリードアクセスを行った場合 , フラッシュメモリは , リー
ドアドレスが消去中のセクタであるならば , "1" を出力します。消去中のセクタでな
ければ , リードアドレスの読出し値の bit3 (DATA: 3) を出力します。
611
第 19 章 512K ビットフラッシュ メモリ
19.7.5
トグルビット 2 フラグ (DQ2)
トグルビット 2 フラグ (DQ2) は , セクタ消去一時停止中であることをトグルビット
機能によって知らせるハードウェアシーケンスフラグです。
■ トグルビットフラグ (DQ2)
表 19.7-11 と表 19.7-12 に , トグルビットフラグの状態遷移を示します。
表 19.7-11 トグルビットフラグの状態遷移 ( 正常動作時の状態変化 )
動作状態
書込み→
書込完了
チップ・
セクタ消去
→
消去完了
DQ2
1 → DATA: 2
Toggle → Stop
セクタ消去
ウェイト→
消去開始
セクタ消去→
セクタ消去
一時停止
( 消去中の
セクタ )
セクタ消去
一時停止→
消去再開
( 消去中の
セクタ )
セクタ消去
一時停止中
( 消去中では
ないセクタ )
Toggle
Toggle
Toggle
DATA: 2
表 19.7-12 トグルビットフラグの状態遷移 ( 異常動作時の状態変化 )
動作状態
書込み
チップ・セクタ
消去
DQ2
1
*
* :DQ5 が "1" の場合 ( タイミングリミット超過 ), 書込み / 消去セクタへの連続的な読出しに対し
て , DQ2 はトグル動作を行い , ほかのセクタへの読出しに対してはトグル動作を行いません。
● セクタ消去の場合
• チップ消去 / セクタ消去のアルゴリズム実行中に , リードアクセスを連続して行っ
た場合 , フラッシュメモリは , リードを行うごとに "1" と "0" を交互にトグル出力し
ます。
• チップ消去 / セクタ消去のアルゴリズムが終了したあとに , リードアクセスを連続
して行った場合 , フラッシュメモリは , リードを行うごとにリードアドレスの読出
し値の bit2 (DATA: 2) を出力します。
● セクタ消去一時停止の場合
• セクタ消去一時停止状態でリードアクセスを連続して行った場合 , フラッシュメモ
リは , リードアドレスが消去中のセクタであるならば , "1" と "0" を交互にトグル出
力します。消去中のセクタでなければ , リードアドレスの読出し値の bit2 (DATA: 2)
を出力します。
• セクタ消去一時停止状態で書込みを行う場合 , 消去一時停止していないセクタから
リードアクセスを連続して行うと , "1" を出力します。
• トグルビット 2 フラグ (DQ2) は , トグルビットフラグ (DQ6) とともに使用し , 消去
一時停止中であるかを検出するために使用します。
(DQ2 はトグル動作を行いますが , DQ6 はトグル動作を行いません。)
612
第 19 章 512K ビットフラッシュ メモリ
• トグルビット 2 フラグ (DQ2) は , 消去しているセクタへのリードアクセスがあった
場合 , トグル動作を行いますので , 消去しているセクタの検出にも使用できます。
613
第 19 章 512K ビットフラッシュ メモリ
19.8
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを入力し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開のそれ
ぞれの動作を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , 消去再開のコマンドシーケンスを CPU からフラッシュメモリに書き込むこ
とにより起動することができます。CPU からフラッシュメモリへの書込みは , 必ず連
続して行ってください。また , 自動アルゴリズムはデータポーリング機能により終了状
態を確認することができます。正常終了後は読出し / リセット状態に戻ります。
各動作について , 下記の順に説明します。
• 読出し / リセット状態にする
• データを書き込む
• 全データを消去する ( チップ全消去 )
• 任意のデータを消去する ( セクタ消去 )
• セクタ消去を一時停止する
• セクタ消去を再開する
614
第 19 章 512K ビットフラッシュ メモリ
19.8.1
フラッシュメモリを読出し / リセット状態にする
読出し / リセットコマンドを入力し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリを読出し / リセット状態にする
• フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表の読
出し / リセットコマンドを CPU からフラッシュメモリへ連続してコードを送ってく
ださい。
• 読出し / リセットコマンドには 1 回と 3 回のバス動作を行う 2 とおりのコマンドシー
ケンスがありますが , 違いはありません。
• 読出し / リセット状態はフラッシュメモリの初期状態ですので , 電源投入後 , コマン
ドの正常終了後は常に読出し / リセット状態になります。読出し / リセット状態は ,
コマンドの入力待ち状態でもあります。
• 読出し / リセット状態では , フラッシュメモリへ , リードアクセスを行うことにより
データを読み出すことができます。マスク ROM と同様に CPU からのプログラムア
クセスができます。
• フラッシュメモリへ , リードアクセスを行う場合は , 読出し / リセットコマンドは必
要ありません。コマンドが正常に終了しなかった場合は , 自動アルゴリズムを初期
化するために , 読出し / リセットコマンドを使用してください。
615
第 19 章 512K ビットフラッシュ メモリ
19.8.2
フラッシュメモリへデータを書き込む
書込みコマンドを入力し , フラッシュメモリへデータを書き込む手順について説明し
ます。
■ フラッシュメモリへデータの書込み
• フラッシュメモリのデータ書込み自動アルゴリズムを起動するためには , コマンド
シーケンス表の書込みコマンドをCPUからフラッシュメモリへ連続して送ってくだ
さい。
• 4 サイクル目に目的のアドレスへのデータ書込みが終了した場合 , 自動アルゴリズ
ムが起動され自動書込みを開始します。
● アドレス指定方法
• 書込みデータサイクルで指定する書込みアドレスは , 偶数アドレスのみ設定できま
す。奇数アドレスを設定した場合は , 正しく書き込むことができません。偶数アド
レスへワードデータ単位で書込みを行ってください。
• 書込みはどのようなアドレスの順番でも , セクタの境界を超えても行えます。1 回
の書込みコマンドによって書き込まれるデータは 1 ワードのみです。
● データ書込み上の注意
• 書込みによって , ビットデータを "0" から "1" に戻すことはできません。ビットデー
タ "0" にビットデータ "1" を書き込むと , データポーリングアルゴリズム (DQ7) また
は , トグル動作 (DQ6) が終了せず , フラッシュメモリ素子が不良と判定され , 書込み
規定時間を超えてタイミングリミット超過フラグ (DQ5) がエラーと判定します。
• 読出し / リセット状態でデータを読み出した場合 , ビットデータは "0" のままです。
ビットデータを "0"から "1" に戻すには , フラッシュメモリの消去を行ってください。
• 自動書込み実行中は , すべてのコマンドが無視されます。
• 書込中にハードウェアリセットが起動された場合は , 書込みアドレスのデータは保
証されません。チップ消去あるいはセクタ消去からやり直してください。
■ フラッシュメモリ書込手順
• 図 19.8-1 にフラッシュメモリ書込み手順の例を示します。ハードウェアシーケンス
フラグを用いることでフラッシュメモリ内部の自動アルゴリズムの状態を判定す
ることができます。
ここでは , フラッシュメモリへの書込み終了の確認にデータポー
リングフラグ (DQ7) を用いています。
• フラグチェックのために読み込むデータは , 最後に書込みを行ったアドレスからの
読込みとなります。
• データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に
変化するので , タイミングリミット超過フラグ (DQ5) が "1" であった場合でもデー
タポーリングフラグビット (DQ7) を確認してください。
• トグルビットフラグ (DQ6) も , タイミングリミット超過フラグビット (DQ5) が "1"
に変化するのと同時にトグル動作を止めますので , トグルビットフラグ (DQ6) を確
認してください。
616
第 19 章 512K ビットフラッシュ メモリ
図 19.8-1 フラッシュメモリ書込み手順の例
書込み開始
FMCS:WE(bit5)
フラッシュメモリ書込み許可
FFWR0/1
フラッシュメモリ誤書込み
防止設定
(誤書込み防止セクタは0,
書込みセクタは1)
書込みコマンドシーケンス
①FFUAAA←XXAA
②FFU554←XX55
③FFUAAA←XXA0
④書込みアドレス←書込みデータ
内部アドレスリード
データポーリング
(DQ7)
次アドレス
Data
Data
0
タイミングリミット
(DQ5)
1
内部アドレスリード
Data
データポーリング
(DQ7)
Data
書込みエラー
最終アドレス
NO
YES
FMCS:WE(bit5)
フラッシュメモリ書込み禁止
書込み完了
617
第 19 章 512K ビットフラッシュ メモリ
19.8.3
フラッシュメモリの全データを消去する
( チップ消去 )
チップ消去コマンドを発行し , フラッシュメモリの全データを消去する手順について
説明します。
■ フラッシュメモリのデータを消去する ( チップ消去 )
• フラッシュメモリからすべてのデータを消去するためには , コマンドシーケンス表
のチップ消去コマンドを CPU からフラッシュメモリへ連続して送ってください。
• チップ消去コマンドは 6 回のバス動作で行われ , 6 サイクル目の書込みが完了した
時点でチップ消去動作を開始します。
• チップ消去では , 消去前にユーザがフラッシュメモリに書込みを行う必要はありま
せん。自動消去アルゴリズム実行中には , フラッシュメモリは自動的にすべてのセ
ルを消去する前に "0" を自動的に書き込んでから消去します。
■ チップ消去の際の注意点
• チップ消去コマンドが受け付けられるのは , 全セクタを書込み許可にしている場合
のみです。フラッシュ書込みコントロールレジスタ (FWR0/1) に 1 セクタでも "0" 設
定 ( 書込み禁止 / 誤書込み防止 ) している場合 , チップ消去コマンドは無視されます。
• 消去中にハードウェアリセットが発生したフラッシュメモリのデータは保証され
ません。
618
第 19 章 512K ビットフラッシュ メモリ
19.8.4
フラッシュメモリの任意のデータを消去する
( セクタ消去 )
セクタ消去コマンドを入力し , フラッシュメモリの任意のセクタ消去を行う手順につ
いて説明します。セクタごとの消去が可能であり , 複数のセクタを同時に指定するこ
ともできます。
■ フラッシュメモリの任意のデータを消去する ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには,コマンドシーケンス表のセクタ
消去コマンドを CPU からフラッシュメモリへ連続して送ってください。
● セクタ指定方法
• セクタ消去コマンドは 6 回のバス動作で行われます。6 サイクル目のアドレスを目
的のセクタ内の偶数アドレスに設定し , データにセクタ消去コード (30H) を書き込
むことにより 50μs のセクタ消去ウェイトが開始します。
• 複数のセクタ消去を行う場合は , 上記に続き消去する目的のセクタ内のアドレスに
消去コード (30H) を書き込みます。
● 複数のセクタを指定する場合の注意
• 最後のセクタ消去コードの書込みから50μsのセクタ消去ウェイト期間終了により消
去が開始します。
• 複数のセクタを同時に消去する場合は , 消去セクタのアドレスと消去コード ( コマ
ンドシーケンス 6 サイクル目 ) を 50μs 以内に入力してください。50μs 以降に消去
コードを入力した場合は , 受け付けられません。
• 連続したセクタ消去コードの書込みが有効であるかは , セクタ消去タイマフラグ
(DQ3) によって確認することができます。
• セクタ消去タイマフラグ (DQ3) をリードする場合のアドレスは , 消去しようとして
いるセクタを指定してください。
■ フラッシュメモリのセクタ消去手順
• ハードウェアシーケンスフラグを用いることでフラッシュメモリ内部の自動アル
ゴリズムの状態を判定することができます。図 19.8-2 にフラッシュメモリセクタ消
去手順の例を示します。ここでは , 消去終了の確認にトグルビットフラグ (DQ6) を
用いています。
• トグルビットフラグ (DQ6) は , タイミングリミット超過フラグ (DQ5) が "1" に変化
するのと同時にトグル動作を終了します。タイミングリミット超過フラグ (DQ5) が
"1" の場合でも , トグルビットフラグ (DQ6) を確認してください。
• データポーリングフラグ (DQ7) は , タイミングリミット超過フラグ (DQ5) と同時に
変化するので , データポーリングフラグ (DQ7) を確認してください。
■ セクタ消去の際の注意点
• 消去中にハードウェアリセットが発生した場合 , 消去されたセクタのデータは保証
されません。再度 , セクタ消去を行ってください。
619
第 19 章 512K ビットフラッシュ メモリ
図 19.8-2 フラッシュメモリのセクタ消去手順の例
書込み開始
FMCS:WE(bit5)
フラッシュメモリ書込み許可
FFWR0/1
フラッシュメモリ誤書込み
防止設定
(誤書込み防止セクタは0,
書込みセクタは1)
消去コマンドシーケンス
①FFUAAA←XXAA
②FFU554←XX55
③FFUAAA←XX80
④FFUAAA←XXAA
⑤FFU554←XX55
1
セクタ消去タイマ
(DQ3)
0
⑥消去セクタへコード入力(30H)
内部アドレスリード
YES
消去セクタが他に
あるか
NO
内部アドレスリード1
内部アドレスリード2
トグルビット(DQ6)
データ1=データ2
次セクタ
YES
NO
0
タイミングリミット
(DQ5)
1
内部アドレスリード
内部アドレスリード
NO
トグルビット(DQ6)
データ1=データ2
YES
消去エラー
最終セクタ
YES
FMCS:WE(bit5)
フラッシュメモリ書込み禁止
消去完了
620
NO
第 19 章 512K ビットフラッシュ メモリ
19.8.5
フラッシュメモリのセクタ消去を一時停止する
セクタ消去一時停止コマンドを入力し , フラッシュメモリセクタ消去の一時停止を行
う手順について説明します。消去中でないセクタから , データを読み出すことが可能
です。
■ フラッシュメモリのセクタ消去を一時停止する
• フラッシュメモリのセクタ消去を一時停止するためには , コマンドシーケンス表の
セクタ消去一時停止コマンドを CPU からフラッシュメモリへ送ってください。
• セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でない
セクタからデータを読み出すことができます。
• セクタ消去一時停止コマンドは , 消去ウェイト時間を含むセクタ消去中のみ有効で ,
チップ消去中や書込み中は無視されます。
• セクタ消去一時停止コマンドは , 消去一時停止コード (B0H) を書き込むことで実行
されます。このときのアドレスは , 消去指定したセクタ内の任意の偶数アドレスを
設定してください。消去一時停止中に再度 , 消去一時停止コマンドを実行した場合 ,
再度入力したコマンドは無視されます。
• セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドを入力した場合 , 直ち
にセクタ消去ウェイトを終了し , 消去動作を中断して消去停止状態になります。
• セクタ消去ウェイト期間後のセクタ消去中に消去一時停止コマンドを入力した場
合 , 最大 20μs 後に , 消去一時停止状態になります。
■ 注意
一時停止コマンドを発行する場合は , セクタ消去コマンド発行後 20μs 以上たってから
発行するか , あるいは , セクタ消去再開コマンドの発行後 20μs 以上たってから発行し
てください。ただし , 発行回数は数回に留めてください。
621
第 19 章 512K ビットフラッシュ メモリ
19.8.6
フラッシュメモリのセクタ消去を再開する
セクタ消去再開コマンドを入力し , 一時停止したフラッシュメモリセクタ消去を再開
する手順について説明します。
■ フラッシュメモリのセクタ消去を再開する
• 一時停止したセクタ消去を再開させるためには , コマンドシーケンス表のセクタ消
去再開コマンドを CPU からフラッシュメモリへ送ってください。
• セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停
止状態から , セクタ消去を再開するためのコマンドです。セクタ消去再開コマンド
は消去再開コード (30H) の書込みを行うことで実行されますが , アドレスは消去指
定したセクタ内の任意の偶数アドレスを指定します。
• セクタ消去中のセクタ消去再開コマンドの入力は無視されます。
622
第 20 章
デュアルオペレーション
フラッシュ
デュアルオペレーションフラッシュの機能と動作
について説明します。
20.1 デュアルオペレーションフラッシュの概要
20.2 デュアルオペレーションフラッシュのレジスタ
20.3 デュアルオペレーションフラッシュの動作説明
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
623
第 20 章 デュアルオペレーション フラッシュ
20.1
デュアルオペレーションフラッシュの概要
デュアルオペレーションフラッシュは , 上位バンク (4K × 4) と下位バンク (16K ×
2 + 4K × 4) で構成されており , 従来のフラッシュ品では行えなかったバンクごとの
消去 / 書込みと読出しの同時実行が可能です。
これによりフラッシュメモリ上でのプログラム実行が可能 , 割込みを用いた書込み制
御が可能となります。また書込みの際に従来のプログラムを RAM 上へダウンロード
し実行という必要もなくダウンロードの時間削減および RAM データの電源瞬断のケ
アも不要となります。
また , セクタ構成も最小 4KB と小セクタで , プログラム / データ領域として扱いや
すく構成しています。
■ デュアルオペレーションフラッシュの特長
• 2 バンク構成による消去 / 書込みと読出しの同時実行
• セクタ最小 4KB とプログラム / データ領域として扱いやすい構成
デュアルオペレーションフラッシュでは , 次の組み合わせが可能です。
上位バンク
下位バンク
読出し
読出し
書込み / セクタ消去
書込み / セクタ消去
読出し
チップ消去
一方のバンク書込み / セクタ消去中に , 他方のバンクへの書込み / 消去はできません。
624
第 20 章 デュアルオペレーション フラッシュ
20.2
デュアルオペレーションフラッシュのレジスタ
デュアルオペレーションフラッシュ動作時に使用するレジスタを示します。
• セクタ変換設定レジスタ (SSR0)
■ セクタ変換設定レジスタ (SSR0)
図 20.2-1 にセクタ変換設定レジスタ (SSR0) の構成を示します。
セクタ変換設定レジスタ(SSR0)の書込み/読出しは,バイトアクセスで行ってください。
図 20.2-1 セクタ変換設定レジスタ (SSR0) の構成
bit 7
SSR0
[390CH]
予約
6
5
4
3
2
1
0
予約
-
-
-
-
-
SEN0
(0) (0) (X) (X) (X) (X) (X)
R/W
R/W
(0)
R/W
R/W:リード・ライト可能
表 20.2-1 セクタ変換設定レジスタ (SSR0) の機能
ビット名
機 能
bit7
bit6
予約 : 予約ビット
必ず "0" に設定してください。
bit5
未定義ビット
リードした場合 : 値は不定です。
ライトした場合 : 動作に影響しません。
SEN0:
SEN0 ビットは上位バンク書換えの際に CPU からのアク
セスを割込みベクタの存在する SA9 から下位バンクの
SA3 へ入替えを行う設定ビットです。
∼
bit1
bit0
SEN0
0
1
機能説明
SA9に割込みベクタ(初期値)
SA3に割込みベクタ ■ SEN0 ビットによるアクセスセクタマップ
図 20.2-2 に , SEN0 設定値におけるアクセスセクタマップを示します。
625
第 20 章 デュアルオペレーション フラッシュ
図 20.2-2 SEN0 設定値におけるアクセスセクタマップ
CPUアドレス
FF0000H
FF0FFFH
FF1000H
FF1FFFH
FF2000H
FF2FFFH
FF3000H
FF3FFFH
FF4000H
SA0:4K
SA0:4K
SA1:4K
SA1:4K
SA2:4K
SA2:4K
SA3:4K
SA9:4K
SA4:16K
SA4:16K
SA5:16K
SA5:16K
SA6:4K
SA6:4K
SA7:4K
SA7:4K
SA8:4K
SA8:4K
SA9:4K
SA3:4K
SEN0=0
SEN0=1
FF7FFFH
FF8000H
FFBFFFH
FFC000H
FFCFFFH
FFD000H
FFDFFFH
FFE000H
割込みベクタ
FFEFFFH
FFF000H
FFFFFFH
626
ハードワイヤード
リセットベクタ
(FFE000H)
割込みベクタ
第 20 章 デュアルオペレーション フラッシュ
20.3
デュアルオペレーションフラッシュの動作説明
デュアルオペレーションフラッシュの動作説明を示します。
デュアルオペレーションフラッシュを使用する際には , 次の点について特に注意が必
要です。
• 上位バンクの書換え時における割込み発生
• セクタ変換設定レジスタ (SSR0) の設定手順
■ 上位バンクの書換え時における割込み発生
デュアルオペレーションフラッシュは, 2つのバンクで構成していますが,従来のフラッ
シュ同様 , 同一バンクでの消去 / 書込みと読出しの実行は行えません。
SA9 には割込みベクタがあるため , 上位バンク書込み時に割込みが発生した場合 CPU
からの割込みベクタが正常に読み出せません。上位バンクの書換えを行う際には
SSR0:SEN0=1 とする必要があります。そのため , 割込み発生時は , SA3 に割込みベク
タのデータを読みにいきますので , セクタ変換設定レジスタ (SSR0) 設定前に SA3 と
SA9 に同じデータをコピーしておく必要があります。
■ セクタ変換設定レジスタ (SSR0) の設定手順
図 20.3-1 に , セクタ変換設定レジスタ (SSR0) の設定手順例を示します。
上位バンクのデータを書き換える際には , SEN0 ビットを "1" に設定する必要がありま
す。またフラッシュメモリへの書込み中にセクタ変換設定レジスタ (SSR0) の設定変更
は禁止です。セクタ変換設定レジスタ (SSR0) の設定は必ずフラッシュメモリへの書込
み開始前または終了後に行ってください。
また , 本レジスタを設定する際には , 割込み許可を禁止とし , SEN0 ビット設定後 , 割込
みを許可するようにしてください。
627
第 20 章 デュアルオペレーション フラッシュ
図 20.3-1 セクタ変換設定レジスタ (SSR0) の設定手順例
FLASHデータ書換え開始
書込み作業開始
SA9のデータをSA3にコピー
SSR0:SEN0を設定("1")
書込み作業開始
FLASHデータ書換え終了
FLASHデータ書換え終了
SSR0:SEN0を設定("0")
■ 書込み / 消去中の動作について
• フラッシュメモリへ書込み / 消去中に割込みが発生した場合 , 割込みルーチン内で
フラッシュメモリに書込みは禁止です。
書込み / 消去ルーチンが複数存在する場合 , その書込み / 消去ルーチンが完了してか
ら , 他の書込み / 消去ルーチンを実行するようにしてください。
• フラッシュメモリへ書込み / 消去中に , 書込み / 消去中のモード ( メインクロック
モード , PLL クロックモード , サブクロックモード ) から状態遷移させる事は禁止で
す。書込み / 消去終了後に状態遷移させるようにしてください。
628
第 21 章
フラッシュシリアル
書込接続例
横河ディジタルコンピュータ株式会社製フラッ
シュマイコンプログラマを用いた場合の , シリアル
書込接続例について説明します。
21.1 F2MC-16LX MB90F897/S シリアル書込接続の基本構成
21.2 シングルチップモード時の接続例 ( ユーザ電源 )
21.3 シングルチップモード時の接続例 ( ライタ電源 )
21.4 フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源 )
21.5 フラッシュマイコンプログラマとの最小限の接続例
( ライタ電源 )
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
629
第 21 章 フラッシュシリアル 書込接続例
21.1
F2MC-16LX MB90F897/S シリアル書込接続の基本構成
MB90F897/S では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) を
サポートしています。その仕様について以下に解説します。
■ MB90F897/S シリアル書込接続の基本構成
富士通標準シリアルオンボード書込みには,横河ディジタルコンピュータ株式会社製フ
ラッシュマイコンプログラマを使用します。
図 21.1-1 シリアル書込接続の基本構成
ホストインタフェースケーブル(AZ221)
汎用共通ケーブル(AZ210)
RS232C
フラッシュマイコン クロック同期シリアル
プログラマ
+
メモリカード
MB90F897(S)
ユーザシステム
スタンドアロンで動作可能
<注意事項>
フラッシュマイコンプログラマ (AF220/AF210/AF120/AF110) の機能・操作方法
と , 接続用汎用共通ケーブル (AZ210), コネクタにつきましては , 横河ディジタル
コンピュータ株式会社殿にお問い合わせください。
表 21.1-1 富士通標準シリアルオンボード書込みに使用する端子 (1 / 2)
端 子
MD2, MD1,
MD0
630
機 能
補足説明
モード端子
MD2=1, MD1=1, MD0=0 に設定した場合にフ
ラッシュシリアル書込みモードになります。
X0, X1
発振用端子
フラッシュシリアル書込モードでは . CPU 内
部動作クロックは PLL クロック 1 逓倍になり
ます。発振クロック周波数が内部動作クロッ
クになりますので , シリアル書込みに使用す
る振動子は 1MHz ∼ 16MHz になります。
P30, P31
書込プログラム起動端子
RST
リセット端子
P30 に "L" レベル , P31 に "H" レベルを入力し
てください。
−
第 21 章 フラッシュシリアル 書込接続例
表 21.1-1 富士通標準シリアルオンボード書込みに使用する端子 (2 / 2)
端 子
<注意事項>
機 能
補足説明
SIN1
シリアルデータ入力端子
SOT1
シリアルデータ出力端子
SCK1
シリアルクロック入力端子
C
C 端子
電源安定化の容量端子です。外部に 0.1μF 程
度のセラミックコンデンサを接続してくださ
い。
VCC
電源電圧供給端子
書込み電圧 (5V ± 10%)
VSS
GND 端子
フラッシュマイコンプログラマの GND と共
通にします。
UART をクロック同期モードで使用します。
P30, SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 21.1-2
の制御回路が必要となります。フラッシュマイコンプログラマの /TICS 信号によ
り , シリアル書込み中はユーザ回路を切り離すことができます。
21.1 項から 21.5 項に , 以下のシリアル書込み接続例を示しますのでご参照くださ
い。
• シングルチップモード接続例 ( ユーザ電源 )
• シングルチップモード接続例 ( ライタ電源 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源 )
図 21.1-2 制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F897/S
書込み制御端子
10 kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ
■ 発振クロック周波数とシリアルクロック入力周波数について
MB90F897/S の入力可能なシリアルクロック周波数は , 以下の計算式によって求めるこ
とができます。したがって , ご使用の発振クロック周波数に合わせて , シリアルクロッ
ク入力周波数をフラッシュマイコンプログラマの設定により変更してください。
631
第 21 章 フラッシュシリアル 書込接続例
入力可能なシリアルクロック周波数 =0.125 ×発振クロック周波数
表 21.1-2 最大シリアルクロック周波数
発振クロッ
ク周波数
マイコンの入力可能な
最大シリアルクロック
周波数
AF220/AF210/AF120/
AF110 の設定可能な
最大シリアルクロック
周波数
AF200 の設定可能な
最大シリアルクロック
周波数
4MHz 時
500kHz
500kHz
500kHz
8MHz 時
1MHz
850kHz
500kHz
16MHz 時
2MHz
1.25MHz
500kHz
■ フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ株式
会社製 )
表 21.1-3 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコン
ピュータ株式会社製 )
型 格
本体
<注意事項>
632
機 能
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 フラッシュマイコン用コントロール
モジュール
/P2
2MB PC Card (Option) FLASH メモリ容量∼ 128KB 対応
/P4
4MB PC Card (Option) FLASH メモリ容量∼ 512KB 対応
AF200 フラッシュマイコンプログラマは終息製品ですが , コントロールモジュー
ル FF201 を用いることにより使用できます。シリアル書込み接続も , 次項に示し
ます接続例にて対応できます。
第 21 章 フラッシュシリアル 書込接続例
21.2
シングルチップモード時の接続例 ( ユーザ電源 )
シングルチップモードに設定されたユーザシステムのモード端子 MD2, MD0 へ ,
AF220/AF210/AF210/AF120/AF110 の端子 TAUX, TMODE より MD2=1, MD0=0 が
入力され , フラッシュシリアル書込みモードになります。ユーザ電源時の接続例を示
します。
■ シングルチップモード時の接続例 ( ユーザ電源を使用する場合 )
図 21.2-1 MB90F897/S シリアル書込接続例 ( ユーザ電源を使用する場合 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28S
MB90F897/S
(19)
MD2
10kΩ
10kΩ
MD1
10kΩ
TMODE
(12)
MD0
X0
1MHz~16MHz
X1
TAUX
(23)
/TICS
(10)
P30
10kΩ
ユーザ
10kΩ
/TRES
10kΩ
RST
(5)
10kΩ
ユーザ
P31
C
0.1μF
TTXD
TRXD
TCK
(13)
(27)
(6)
TVcc
(2)
GND
(7,8,
14,15,
21,22,
1,28)
SIN1
SOT1
SCK1
Vcc
ユーザ電源
Vss
3,4,9,11,16,17,18,20,24,25,26ピンは開放
DX10-28S:ライトアングルタイプ
14ピン
1ピン
28ピン
15ピン
DX10-28S
コネクタ(ヒロセ電機製)のピン配列
633
第 21 章 フラッシュシリアル 書込接続例
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P30 に接続さ
れている制御回路と同様の回路 ( 図 21.2-2 ) が必要となります。フラッシュマ
イコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を切り
離すことができます。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってくだ
さい。
図 21.2-2 制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F897/S
書込み制御端子
10 kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ
634
第 21 章 フラッシュシリアル 書込接続例
21.3
シングルチップモード時の接続例 ( ライタ電源 )
シングルチップモードに設定されたユーザシステムのモード端子 MD2, MD0 へ ,
AF220/AF210/AF210/AF120/AF110 の端子 TAUX, TMODE より MD2=1, MD0=0 が
入力され , フラッシュシリアル書込みモードになります。ライタ電源時の接続例を示
します。
■ シングルチップモード時の接続例 ( フラッシュマイコンプログラマから電源を供給
する場合 )
図 21.3-1 MB90F897/S シリアル書込接続例
( フラッシュマイコンプログラマから電源を供給する場合 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
TAUX3
ユーザシステム
コネクタ
DX10-28S
MB90F897/S
MD2
(19)
10kΩ
10kΩ
MD1
10kΩ
TMODE
MD0
X0
(12)
1MHz~16MHz
X1
TAUX
(23)
/TICS
(10)
P30
10kΩ
ユーザ
10kΩ
/TRES
10kΩ
RST
(5)
ユーザ
10kΩ
P31
C
0.1μF
TTXD
TRXD
TCK
TVcc
Vcc
TVPP1
GND
SIN1
SOT1
SCK1
(13)
(27)
(6)
(2)
(3)
(16)
(7,8,
14,15,
21,22,
1,28)
4,9,11,17,18,20,24,25,26ピンは開放
DX10-28S:ライトアングルタイプ
Vcc
ユーザ電源
Vss
14ピン
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
635
第 21 章 フラッシュシリアル 書込接続例
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , P30 に接続さ
れている制御回路と同様の制御回路 ( 図 21.3-2 ) が必要となります。フラッ
シュマコンプログラマの /TICS 信号により , シリアル書込み中はユーザ回路を
切り離すことができます。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってくだ
さい。
• 書込み電源を AF220/AF210/AF120/AF110 から供給する場合は , ユーザ電源と
短絡しないでください。
図 21.3-2 制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F897/S
書込み制御端子
10 kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ
636
第 21 章 フラッシュシリアル 書込接続例
21.4
フラッシュマイコンプログラマとの最小限の接続例
( ユーザ電源 )
シリアル書込み時に各端子 (MD2, MD0, P30) を図 21.4-1 のように設定すれば ,
MD2, MD0, P30 とフラッシュマイコンプログラマの接続は必要ありません。
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 )
図 21.4-1 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
ユーザシステム
10kΩ
シリアル書込み時"1"
MB90F897/S
MD2
シリアル書込み時"1"
10kΩ
10kΩ
MD1
10kΩ
10kΩ
MD0
10kΩ
シリアル書込み時"0"
X0
1MHz~16MHz
X1
10kΩ
シリアル書込み時"0"
P30
ユーザ回路
シリアル書込み時"1"
10kΩ
P31
ユーザ回路
コネクタ
DX10-28S
C
0.1μF
10kΩ
/TRES
(5)
RST
TTXD
(13)
SIN1
TRXD
(27)
SOT1
TCK
(6)
SCK1
TVcc
(2)
Vcc
GND
(7,8,
14,15,
21,22,
1,28)
ユーザ電源
Vss
3,4,9,10,11,12,16,17,18,19,20,23,24,25,26
ピンは開放
DX10-28S:ライトアングルタイプ
14ピン
1ピン
28ピン
15ピン
DX10-28S
コネクタ(ヒロセ電機製)のピン配列
637
第 21 章 フラッシュシリアル 書込接続例
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 21.4-2 の
制御回路が必要となります。フラッシュマコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってくだ
さい。
図 21.4-2 制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F897/S
書込み制御端子
10 kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ
638
第 21 章 フラッシュシリアル 書込接続例
21.5
フラッシュマイコンプログラマとの最小限の接続例
( ライタ電源 )
シリアル書込み時に各端子 (MD2, MD0, P30) を図 21.5-1 のように設定すれば ,
MD2, MD0, P30 とフラッシュマイコンプログラマの接続は必要ありません。
■ 最小限の接続例 ( フラッシュマイコンプログラマから電源を供給する場合 )
図 21.5-1 最小限の接続例 ( フラッシュマイコンプログラマから電源を供給する場合 )
AF220/AF210/AF120/AF110
フラッシュマイコン
プログラマ
ユーザシステム
10kΩ
シリアル書込み時"1"
MB90F897/S
MD2
シリアル書込み時"1"
10kΩ
10kΩ
MD1
10kΩ
10kΩ
MD0
10kΩ
シリアル書込み時"0"
X0
1MHz~16MHz
X1
10kΩ
シリアル書込み時"0"
P30
ユーザ回路
シリアル書込み時"1"
10kΩ
P31
ユーザ回路
C
コネクタ
DX10-28S
0.1μF
10kΩ
/TRES
(5)
RST
TTXD
(13)
SIN1
TRXD
(27)
SOT1
TCK
(6)
(2)
(3)
(16)
SCK1
TVcc
GND
Vcc
(7,8,
14,15,
21,22,
1,28)
4,9,10,11,12,17,18,19,20,23,24,25,26
ピンは開放
DX10-28S:ライトアングルタイプ
Vss
14ピン
1ピン
28ピン
15ピン
DX10-28S
コネクタ(ヒロセ電機製)のピン配列
639
第 21 章 フラッシュシリアル 書込接続例
<注意事項>
• SIN1, SOT1, SCK1 端子をユーザシステムでも使用する場合には , 図 21.5-2 の
制御回路が必要となります。フラッシュマコンプログラマの /TICS 信号により ,
シリアル書込み中はユーザ回路を切り離すことができます。
• AF220/AF210/AF120/AF110 との接続はユーザ電源が OFF の状態で行ってくだ
さい。
• 書込み電源を AF220/AF210/AF120/AF110 から供給する場合は , ユーザ電源と
短絡しないでください。
図 21.5-2 制御回路
AF220/AF210/AF120/AF110
書込み制御端子
MB90F897/S
書込み制御端子
10 kΩ
AF220/AF210/AF120/AF110
/TICS端子
ユーザ
640
付録
付録では , I/O マップ , 命令一覧表などを掲載しま
す。
付録 A 命令
付録 B レジスタ索引
付録 C 端子機能索引
付録 D 割込みベクタ索引
CM44-10127-3
FUJITSU MICROELECTRONICS LIMITED
641
付録
付録 A
命令
F2MC-16LX に使用している命令について説明します。
A.1 命令の種類
A.2 アドレッシング
A.3 直接アドレッシング
A.4 間接アドレッシング
A.5 実行サイクル数
A.6 実効アドレスフィールド
A.7 命令一覧表の読み方
A.8 F2MC-16LX 命令一覧表
A.9 命令マップ
管理番号 : CM44-00202-3
642
付録 A 命令
A.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 命令
643
付録
A.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)
644
付録 A 命令
■ 実効アドレスフィールド
実効アドレスフィールドで指定される , アドレス形式を表 A.2-1 に示します。
表 A.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
645
付録
A.3
直接アドレッシング
直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま
す。
■ 直接アドレッシング
● 即値 (#imm)
オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。
図 A.3-1 に例を示します。
図 A.3-1 即値 (#imm) 例
MOVW A, #01212H (A にオペランドの値を格納する命令 )
実行前
A 2233
4455
実行後
A 4455
1 2 1 2 ( 命令によっては AL → AH に転送が行われる )
● レジスタ直接
オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 A.3-1 に示し
ます。
表 A.3-1 レジスタ直接
汎用レジスタ
専用レジスタ
*:
646
バイト
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) は命令のオペランドには
記述されることなく指定されます。
付録 A 命令
図 A.3-2 に例を示します。
図 A.3-2 レジスタ直接例
MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 )
実行前
A 0716
2534
メモリ空間
R0
実行後
A 0716
2564
??
メモリ空間
R0
34
● 直接分岐アドレス (addr16)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ
ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ∼
bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 A.3-3 に例を示
します。
図 A.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
647
付録
● 物理直接分岐アドレス (addr24)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト
ウェア割込み命令に使用します。図 A.3-4 に例を示します。
図 A.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 直接
アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを
記述しても無効です。図 A.3-5 に例を示します。
図 A.3-5 I/O 直接 (io) 例
MOVW A, I:0C0H (I/O 直接で読出しを行い , A に格納する命令 )
実行前
実行後
A 0716
2534
メモリ空間
0000C0H
EE
0000C1H
FF
A 2534 FFEE
( 注意事項 ) I: は , I/O 直接アドレスを示すアドレス規定子です。
648
付録 A 命令
● 短縮直接アドレス (dir)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼
bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16
はデータバンクレジスタ (DTB) により指定されます。図 A.3-6 に例を示します。
図 A.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
( 注意事項 ) S: は , 短縮直接アドレスを示すアドレス規定子です。
● 直接アドレス (addr16)
オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼
bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング
に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 A.3-7 に例を示
します。
図 A.3-7 直接アドレス (addr16) 例
MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 )
実行前
実行後
A 2020
A AABB
AABB
0123
DTB 5 5
メモリ空間
553B21H
01
553B20H
23
DTB 5 5
649
付録
● I/O 直接ビットアドレス (io: bp)
物理アドレス "000000H" ∼ "0000FFH" 内のビットを直接指定します。ビットの位置は
": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット
(LSB) となります。図 A.3-8 に例を示します。
図 A.3-8 I/O 直接ビットアドレス (io: bp) 例
SETB I:0C1H:0 (I/O 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
0000C1H
実行前
00
メモリ空間
0000C1H
実行後
01
( 注意事項 ) I: は , I/O 直接ビットアドレスを示すアドレス規定子です。
● 短縮直接ビットアドレス (dir: bp)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼
bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は
データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の
大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 A.3-9 に例を示しま
す。
図 A.3-9 短縮直接ビットアドレス (dir: bp) 例
SETB S:10H:0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
実行前
DTB 5 5
DPR 6 6
556610H
00
メモリ空間
実行後
DTB 5 5
DPR 6 6
556610H
( 注意事項 ) S: は , 短縮直接ビットアドレスを示すアドレス規定子です。
650
01
付録 A 命令
● 直接ビットアドレス (addr16: bp)
64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー
タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き
い方が最上位ビット , 小さい方が最下位ビットとなります。図 A.3-10 に例を示します。
図 A.3-10 直接ビットアドレス (addr16: bp) 例
SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
DTB 5 5
実行前
00
552222H
メモリ空間
DTB 5 5
実行後
01
552222H
● ベクタアドレス (#vct)
分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には
4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込
み命令に使用します。図 A.3-11 に例を示します。
図 A.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
651
付録
表 A.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) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 A.3-2 を参照
してください )
652
付録 A 命令
A.4
間接アドレッシング
間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に
アドレスを指定します。
■ 間接アドレッシング
● レジスタ間接 (@RWj j=0 ∼ 3)
汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで
す。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ
(DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ
スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク
レジスタ (ADB) で示されます。図 A.4-1 に例を示します。
図 A.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) で示されます。
ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス
だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合
は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書
込みデータとなります。
図 A.4-2 に例を示します。
653
付録
図 A.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) で示されます。図 A.4-3 に例を示します。
図 A.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
654
DTB 7 8
DTB 7 8
メモリ空間
78D31FH
EE
78D320H
FF
付録 A 命令
● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ∼ 3)
汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア
ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8
ビットで符号付数値として加算されます。図 A.4-4 に例を示します。
図 A.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
図 A.4-5 に例を示します。
図 A.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
655
付録
● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ
モリをアクセスするアドレッシングです。アドレスの bit23 ∼ bit16 はデータバンクレ
ジスタ (DTB) で示されます。図 A.4-6 に例を示します。
図 A.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) で示されます。
図 A.4-7 に例を示します。
図 A.4-7 プログラムカウンタ相対分岐アドレス (rel) 例
BRA 3C32H ( 無条件相対分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
4F3C32H 次の命令
実行後
656
PC
3 C 32
PCB 4 F
4F3C21H
10
4F3C20H
60
BRA 3C32H
付録 A 命令
● レジスタリスト (rlst)
スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 A.4-8 にレ
ジスタリストの構成 , 図 A.4-9 に例を示します。
図 A.4-8 レジスタリストの構成
MSB
LSB
RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0
対応ビットが "1" の場合に設定 , "0" の場合に非設定
MSB: 最上位ビット
LSB: 最下位ビット
図 A.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
34FDH
04
04
34FEH
実行前
SP
34FDH
34FEH
実行後
657
付録
● アキュムレータ間接 (@A)
アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを
アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ
(DTB) によりニーモニックで指定されます。図 A.4-10 に例を示します。
図 A.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) で指定されます。アキュムレータ
間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 A.4-11
に例を示します。
図 A.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
658
PCB 4 F
3B20
61
JMP @A
付録 A 命令
● 間接指定分岐アドレス (@ear)
ear で示される番地のワードデータが分岐先アドレスとなります。図 A.4-12 に例を示
します。
図 A.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 で示される番地のワードデータが分岐先アドレスとなります。図 A.4-13 に例を示
します。
図 A.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
659
付録
A.5
実行サイクル数
命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値
と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値
を加算することで得られます。
■ 実行サイクル数
内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため ,
データのアクセスなどに干渉すると実行サイクル数が増大します。
外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ
スなどに干渉すると実行サイクル数が増大します。
CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの
アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ
イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の
実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵
RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値
を「補正値」として加算してください。
■ 実行サイクル数計算方法
表 A.5-1 , 表 A.5-2 , 表 A.5-3 に命令実行サイクル数および補正値のデータを示します。
表 A.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) は「A.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用さ
れています。" ∼ " と "B" の意味については「A.7 命令一覧表の読み方」を参照
してください。
660
付録 A 命令
表 A.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) は「A.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用され
ています。
*2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ
イクル数も加算する必要があります。
表 A.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値
命令
バイト境界
ワード境界
内部メモリ
−
+2
外部データバス 16 ビット
−
+3
外部データバス 8 ビット
+3
−
( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト
したサイクル数も加算する必要があります。
・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない
ので , この補正値は最悪ケースを算出する場合に使用してください。
661
付録
A.6
実効アドレスフィールド
表 A.6-1 に実効アドレスフィールドを示します。
■ 実効アドレスフィールド
表 A.6-1 実効アドレスフィールド (1 / 2)
コード
662
表記
アドレス形式
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
付録 A 命令
表 A.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
アドレス拡張部のバイト数は , 「A.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。
"#" の意味については「A.7 命令一覧表の読み方」を参照してください。
663
付録
A.7
命令一覧表の読み方
「A.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 A.7-1 に , 記号の説
明を表 A.7-2 に示します。
■ 命令の表示記号の説明
表 A.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
664
リードモディファイライト命令 (1 命令でメモリなどからデータを読
み出し , メモリへ書き込む ) であるかどうか示します。
*: リードモディファイライト命令である。
− : リードモディファイライト命令ではない。
( 注意事項 )
読み書きで意味の異なるアドレスには使用できません。
付録 A 命令
表 A.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 ビットデータ
665
付録
表 A.7-2 命令一覧表の記号の説明 (1 / 2)
表記
666
意味
disp8
8 ビットディスプレースメント
disp16
16 ビットディスプレースメント
bp
ビットオフセット値
vct4
ベクタ番号 (0 ∼ 15)
vct8
ベクタ番号 (0 ∼ 255)
()b
ビットアドレス
rel
PC 相対分岐指定
ear
実効アドレス指定 ( コード 00H ∼ 07H)
eam
実効アドレス指定 ( コード 08H ∼ 1FH)
rlst
レジスタ並び
付録 A 命令
A.8
F2MC-16LX 命令一覧表
F2MC-16LX で使用している命令の一覧を示します。
■ F2MC-16LX 命令一覧表
表 A.8-1 転送系命令 ( バイト ) 41 命令
#
∼
RG
B
LH
AH
I
S
T
N
Z
V
C
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)
-
-
-
-
-
*
*
-
-
-
ニーモニック
オペレーション
RMW
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
667
付録
表 A.8-2 転送系命令 ( ワード・ロングワード ) 38 命令
ニーモニック
#
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C
RMW
MOVW
A,dir
2
3
0
(c)
word (A) ← (dir)
-
*
-
-
-
*
*
-
-
-
MOVW
A,addr16
3
4
0
(c)
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)
word (A) ← ((A))
-
-
-
-
-
*
*
-
-
MOVW
A,#imm16
3
2
0
0
word (A) ← imm16
-
*
-
-
-
*
*
-
-
-
MOVW
A,@RWi+disp8
2
5
1
(c)
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)
-
-
-
-
-
*
*
-
-
-
MOVW
RWi,#imm16
3
2
1
0
word (RWi) ← imm16
-
-
-
-
-
*
*
-
-
MOVW
io,#imm16
4
5
0
(c)
word (io) ← imm16
-
-
-
-
-
-
-
-
-
-
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
668
付録 A 命令
表 A.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
-
-
-
-
*
*
*
*
-
ADD
ear,A
2
3
2
0
byte (ear) ← (ear) + (A)
-
-
-
-
-
*
*
*
*
-
ADD
eam,A
2+
5 + (a)
0
2 × (b)
byte (eam) ← (eam) + (A)
Z
-
-
-
-
*
*
*
*
*
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
-
-
-
-
*
*
*
*
-
ADDDC A
1
3
0
0
byte (A) ← (AH) + (AL) + (C) (10 進数 )
Z
-
-
-
-
*
*
*
*
-
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)
-
-
-
-
-
*
*
*
*
*
ADDW
ear,A
2
3
2
0
ADDW
eam,A
2+
5+(a)
0
2 × (c)
ADDCW A,ear
2
3
1
0
word (A) ← (A) + (ear) + (C)
-
-
-
-
-
*
*
*
*
-
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
-
-
-
-
-
*
*
*
*
-
word (ear) ← (ear) - (A)
-
-
-
-
-
*
*
*
*
-
word (eam) ← (eam) - (A)
-
-
-
-
-
*
*
*
*
*
SUBW
ear,A
2
3
2
0
SUBW
eam,A
2+
5+(a)
0
2 × (c)
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
669
付録
表 A.8-4 増減算命令 ( バイト・ワード・ロングワード ) 12 命令
ニーモニック
#
∼
RG
B
INC
ear
2
3
2
0
INC
eam
2+
5+(a)
0
2 × (b)
DEC
ear
2
3
2
0
DEC
eam
2+
5+(a)
0
2 × (b)
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)
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
byte (ear) <-- (ear) + 1
-
-
-
-
-
*
*
*
-
-
byte (eam) ← (eam) + 1
-
-
-
-
-
*
*
*
-
*
byte (ear) ← (ear) - 1
-
-
-
-
-
*
*
*
-
-
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
( 注意事項 ) 表中の (a) ∼ (d) は , 表 A.5-1 および表 A.5-2 を参照してください。
表 A.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) は , 表 A.5-1 および表 A.5-2 を参照してください。
670
付録 A 命令
表 A.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
A,eam
2+
*10
0
(b)
MULUW
A
1
*11
0
0
MULUW
A,ear
2
*12
1
MULUW
A,eam
2+
*13
0
オペレーション
byte (A) * byte (eam) → word (A)
-
-
-
-
-
-
-
-
-
-
word (AH) * word (AL) → Long (A)
-
-
-
-
-
-
-
-
-
-
0
word (A) * word (ear) → Long (A)
-
-
-
-
-
-
-
-
-
-
(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) は , 表 A.5-1 および表 A.5-2 を参照してください。
671
付録
表 A.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
A
2
*8
MUL
A,ear
2
*9
0
0
byte (AH) * byte (AL) → word (A)
-
-
-
-
-
-
-
-
-
-
1
0
byte (A) * byte (ear) → word (A)
-
-
-
-
-
-
-
-
-
-
MUL
A,eam
2+
*10
MULW
A
2
*11
0
(b)
byte (A) * byte (eam) → word (A)
-
-
-
-
-
-
-
-
-
-
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
672
付録 A 命令
表 A.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
-
-
word (ear) ← (ear) or (A)
-
-
-
-
-
*
*
R
-
-
word (eam) ← (eam) or (A)
-
-
-
-
-
*
*
R
-
*
ORW
ear,A
2
3
2
0
ORW
eam,A
2+
5+(a)
0
2 × (c)
XORW
A
1
2
0
0
word (A) ← (AH) xor (A)
-
-
-
-
-
*
*
R
-
-
XORW
A,#imm16
3
2
0
0
word (A) ← (A) xor imm16
-
-
-
-
-
*
*
R
-
-
XORW
A,ear
2
3
1
0
word (A) ← (A) xor (ear)
-
-
-
-
-
*
*
R
-
-
XORW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) xor (eam)
-
-
-
-
-
*
*
R
-
-
word (ear) ← (ear) xor (A)
-
-
-
-
-
*
*
R
-
-
word (eam) ← (eam) xor (A)
-
-
-
-
-
*
*
R
-
*
-
XORW
ear,A
2
3
2
0
XORW
eam,A
2+
5+(a)
0
2 × (c)
NOTW
A
1
2
0
0
word (A) ← not (A)
-
-
-
-
-
*
*
R
-
NOTW
ear
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
673
付録
表 A.8-9 論理 2 演算命令 ( ロングワード ) 6 命令
#
∼
RG
B
ANDL
A,ear
2
6
2
0
ANDL
A,eam
2+
7+(a)
0
(d)
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)
LH
AH
I
S
T
N
Z
V
C RMW
long (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
long (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
オペレーション
( 注意事項 ) 表中の (a), (d) は , 表 A.5-1 および表 A.5-2 を参照してください。
表 A.8-10 符号反転命令 ( バイト・ワード ) 6 命令
ニーモニック
#
∼
RG
B
1
2
0
0
byte (A) ← 0 - (A)
X
-
-
-
-
*
*
*
*
byte (ear) ← 0 - (ear)
-
-
-
-
-
*
*
*
*
-
-
-
-
-
*
*
*
*
*
-
オペレーション
NEG
A
-
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)
-
-
-
-
-
*
*
*
*
NEGW
ear
2
3
2
0
word (ear) ← 0 - (ear)
-
-
-
-
-
*
*
*
*
-
NEGW
eam
2+
5+(a)
0
2 × (c)
word (eam) ← 0 - (eam)
-
-
-
-
-
*
*
*
*
*
( 注意事項 ) 表中の (a), (b), (c) は , 表 A.5-1 および表 A.5-2 を参照してください。
表 A.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)
674
-
付録 A 命令
表 A.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) ← 左ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
RORC
ear
2
3
2
0
byte (ear) ← 右ローテートキャリー付
RORC
eam
2+
5+(a)
0
2 × (b) byte (eam) ← 右ローテートキャリー付
ROLC
ear
2
3
2
ROLC
eam
2+
5+(a)
0
0
ASR
A,R0
2
*1
1
0
LSR
A,R0
2
*1
1
0
LSL
A,R0
2
*1
1
ASRW
A
1
2
LSRW
A/SHRW A
1
LSLW
A/SHLW A
1
ASRW
A,R0
2
*1
LSRW
A,R0
2
*1
LSLW
A,R0
2
*1
ASRL
A,R0
2
*2
LSRL
A,R0
2
LSLL
A,R0
2
-
-
-
-
-
*
*
-
*
-
-
-
-
-
-
*
*
-
*
*
-
-
-
-
-
*
*
-
*
-
-
-
-
-
-
*
*
-
*
*
byte (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
byte (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
0
byte (A) ← ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
0
0
word (A) ← 算術右シフト (A,1 ビット )
-
-
-
-
*
*
*
-
*
-
2
0
0
word (A) ← ロジカル右シフト (A,1 ビット )
-
-
-
-
*
R
*
-
*
-
2
0
0
word (A) ← ロジカル左シフト (A,1 ビット )
-
-
-
-
-
*
*
-
*
-
1
0
word (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
1
0
word (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
1
0
word (A) ←ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
1
0
long (A) ← 算術右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
*2
1
0
long (A) ← ロジカル右バレルシフト (A,R0)
-
-
-
-
*
*
*
-
*
-
*2
1
0
long (A) <-- ロジカル左バレルシフト (A,R0)
-
-
-
-
-
*
*
-
*
-
byte (ear) ← 左ローテートキャリー付
2 × (b) byte (eam) ← 左ローテートキャリー付
*1:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 5+(R0)
*2:R0 が "0" であった場合 , 6 "0" 以外であった場合は , 6+(R0)
( 注意事項 ) 表中の (a),(b) は , 表 A.5-1 および表 A.5-2 を参照してください。
675
付録
表 A.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)
-
-
-
-
-
-
-
-
-
-
JMPP
addr24
4
4
0
0
CALL
@ear
注 2)
2
6
1
(c)
CALL
@eam
word (PC) ← ad24 0-15, (PCB) ← ad24 16-23
-
-
-
-
-
-
-
-
-
-
word (PC) ← (ear)
-
-
-
-
-
-
-
-
-
-
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
676
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
付録 A 命令
表 A.8-14 分岐命令 2 19 命令
ニーモニック
#
∼
RG
B
CBNE
A,#imm8,rel
3
*1
0
0
byte (A) ≠ imm8 で分岐
-
-
-
-
- * * * *
-
CWBNE
A,#imm16,rel
4
*1
0
0
word (A) ≠ imm16 で分岐
-
-
-
-
- * * * *
-
CBNE
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 で分岐
-
-
-
-
- * * * *
-
CWBNE
eam,#imm16,rel 注 1)
5+
*3
0
(c)
word (eam) ≠ imm16 で分岐
-
-
-
-
- * * * *
-
DBNZ
ear,rel
3
*5
2
byte (ear) = (ear) - 1, (ear) ≠ 0 で分岐
-
-
-
-
- * * * -
-
DBNZ
eam,rel
3+
*6
2
-
-
-
-
- * * * -
*
DWBNZ
ear,rel
3
*5
2
DWBNZ
eam,rel
3+
*6
2
0
オペレーション
2 × (b) byte (eam) = (eam) - 1, (eam) ≠ 0 で分岐
0
LH
AH
I S T N Z V C RMW
-
-
-
-
- * * * -
-
2 × (c) word (eam) = (eam) - 1, (eam) ≠ 0 で分岐
-
-
-
-
- * * * -
*
word (ear) = (ear) - 1, (ear) ≠ 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 -
-
-
-
-
-
INT9
1
20
0
8 × (c) ソフトウェア割込み
-
-
R S -
-
-
-
-
-
RETI
1
*8
0
*7
割込みからの復帰
-
-
* * * * * * *
-
2
6
0
(c)
関数の入口で , 旧フレームポインタをスタッ
クに保存し , 新フレームポインタの設定 , お
よびローカルポインタの領域を確保する
-
-
-
-
-
-
-
-
-
-
1
5
0
(c)
関数の出口で , 旧フレームポインタをスタッ
クから復帰させる
-
-
-
-
-
-
-
-
-
-
注 2)
1
4
0
(c)
サブルーチンからの復帰
-
-
-
-
-
-
-
-
-
-
注 3)
1
6
0
(d)
サブルーチンからの復帰
-
-
-
-
-
-
-
-
-
-
LINK
#imm8
UNLINK
RET
RETP
*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) は , 表 A.5-1 および表 A.5-2 を参照してください。
677
付録
表 A.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
(rlst) ← ((SP)), (SP) ← (SP) + 2n
-
-
-
-
-
-
-
-
-
-
JCTX
@A
1
14
0
6 × (c)
コンテキストスイッチ命令
-
-
*
*
*
*
*
*
*
-
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
0
0
byte (RP) ← imm8
-
-
-
-
-
-
-
-
-
-
MOV
ILM,#imm8
2
2
0
0
byte (ILM) ← imm8
-
-
-
-
-
-
-
-
-
-
MOVEA
RWi,ear
2
3
1
0
word (RWi) ← ear
-
-
-
-
-
-
-
-
-
-
MOVEA
RWi,eam
2+
2+(a)
1
0
word (RWi) ← eam
-
-
-
-
-
-
-
-
-
-
MOVEA
A,ear
2
1
0
0
word (A) ← ear
-
*
-
-
-
-
-
-
-
-
MOVEA
A,eam
2+
1+(a)
0
0
word (A) ← eam
-
*
-
-
-
-
-
-
-
-
ADDSP
#imm8
2
3
0
0
word (SP) ← (SP) + ext(imm8)
-
-
-
-
-
-
-
-
-
-
ADDSP
#imm16
3
3
0
0
word (SP) ← (SP) + imm16
-
-
-
-
-
-
-
-
-
-
MOV
A,brg1
2
*1
0
0
byte (A) ← (brg1)
Z
*
-
-
-
*
*
-
-
-
MOV
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) は , 表 A.5-1 および表 A.5-2 を参照してください。
678
付録 A 命令
表 A.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
-
-
-
-
-
-
*
-
-
*
2 × (b) (addr16:bp) b = 1 で分岐 ,
bit (addr16:bp) b ← 1
WBTS
io:bp
3
*4
0
*5
WBTC
io:bp
3
*4
0
*5
(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) は , 表 A.5-1 および表 A.5-2 を参照してください。
表 A.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
*
-
-
-
679
付録
表 A.8-18 ストリング命令 10 命令
#
∼
RG
B
MOVS / MOVSI
2
*2
*5
*3
MOVSD
2
*2
*5
*3
SCEQ / SCEQI
2
*1
*8
SCEQD
2
*1
*8
FILS / FILSI
2
6m+6
MOVSW / MOVSWI
2
*2
MOVSWD
2
*2
*5
SCWEQ / SCWEQI
2
*1
SCWEQD
2
*1
FILSW / FILSWI
2
6m+6
ニーモニック
LH
AH
I
S
T
N
Z
V
C RMW
byte 転送 @AH+ ← @AL+, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
byte 転送 @AH- ← @AL-, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
*4
byte 検索 @AH+ ← AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
*4
byte 検索 @AH- ← AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
*8
*3
byte 充填 @AH+ ← AL, カウンタ = RW0
-
-
-
-
-
*
*
-
-
-
*5
*6
word 転送 @AH+ ← @AL+, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
*6
word 転送 @AH- ← @AL-, カウンタ = RW0
-
-
-
-
-
-
-
-
-
-
*8
*7
word 検索 @AH+ - AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
*8
*7
word 検索 @AH- - AL, カウンタ = RW0
-
-
-
-
-
*
*
*
*
-
*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) は , 表 A.5-1 および表 A.5-2 を参照してください。
680
付録 A 命令
A.9
命令マップ
F2MC-16LX の命令コードは , 1 ∼ 2 バイトで構成されていますので , 命令マップは
複数のページで構成されています。
F2MC-16LX の命令マップを示します。
■ 命令マップの構造
図 A.9-1 命令マップの構造
基本ページマップ
ビット操作系命令
文字列操作系命令
2 バイト系命令
:第 1 バイト
ea 系命令× 9
:第 2 バイト
1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命
令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ
かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。
実際の命令コードと命令マップの対応を図 A.9-2 に示します。
681
付録
図 A.9-2 実際の命令コードと命令マップの対応
命令によっては
ない場合もある
命令によって
長さが異なる
命令コード 第 1 バイト
第 2 バイト
オペランド
オペランド
・・・
[ 基本ページマップ ]
XY
+Z
[ 拡張ページマップ ]*
UV
+W
*:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系
命令の総称で , 実際は各系列の命令ごとに複数存在します。
命令コードの例を表 A.9-1 に示します。
表 A.9-1 命令コードの例
第 1 バイト
( 基本ページマップより )
第 2 バイト
( 拡張ページマップより )
NOP
00 + 0=00
―
AND A, #8
30 + 4=34
―
MOV A, ADB
60 + F=6F
00 + 0=00
CBNE @RW2+d8, #8, rel
70 + 0=70
F0 + 2=F2
命令
682
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
F0
ea 系命令
その 8
ea 系命令
その 7
rel
BNT
BT
BNV
BV
BP
BN
rel
rel
rel
rel
rel
BNC/BHS
rel
BC/BLO
BNZ/BNE
rel
+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
MOVW 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
MOVX
MOVX A, MOVN
CALL
BZ/BEQ
ea 系命令 MOV
A, Ri
Ri, A
Ri, #8
A, Ri @RWi+d8
A, #4
#vct4
rel
その 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
付録 A 命令
表 A.9-2 基本ページマップ
683
684
+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
付録
表 A.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
SPB
ADB
DTB
FILSWI
PCB
E0
F0
付録 A 命令
表 A.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH)
685
686
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
DIV
MULW
MUL
70
A
A
A
80
90
A0
B0
C0
D0
E0
F0
付録
表 A.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
付録 A 命令
表 A.9-6 ea 系命令 その 1 ( 第 1 バイト =70H)
687
688
+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
付録
表 A.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
付録 A 命令
表 A.9-8 ea 系命令 その 3 ( 第 1 バイト =72H)
689
690
+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
付録
表 A.9-9 ea 系命令 その 4 ( 第 1 バイト =73H)
ADD
ADD
A, ADDC
ADDC
A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @RW0
+RW7, rel
A,@RW0+ @RW0+RW7 @RW0+, rel
SUB
A, ADDC
ADDC
A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @RW1
+RW7, rel
A,@RW1+ @RW1+RW7 @RW1+, rel
ADD
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @PC
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+, rel
+d16, rel
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+, rel addr16, rel
+E
+F
+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 @RW3
+d16, rel
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, rel
+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 @RW2
+d16, rel
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, rel
+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 @RW1
+d16, rel
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, rel
+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 @RW0
+d16, rel
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, rel
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @RW7
+d8, rel
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, rel
ADD
F0
ADD
A, SUB
SUB
A, ADDC
ADDC A, CMP
CMP
A, AND
AND
A, OR
OR
A, XOR
XOR
A, DBNZ
DBNZ @RW6
+d8, rel
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, rel
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 @RW5
+d8, rel
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, rel
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 @RW4
+d8, rel
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, rel
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 @RW3
+d8, rel
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, rel
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 @RW2
+d8, rel
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, rel
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 @RW1
+d8, rel
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, rel
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 @RW0
+d8, rel
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, rel
20
ADD
10
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録 A 命令
表 A.9-10 ea 系命令 その 5 ( 第 1 バイト =74H)
691
692
NOT
NOT
@RW1+ @RW1+RW7
ADD
ADD @R
SUB
SUB
SUBC
SUBC A,
NEG
NEG
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
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
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
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
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
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
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
AND
AND
OR
OR
R6 @RW6+d8
R6, A @RW6+d8, A
R6, A @RW6+d8, A
NEG
AND
AND
OR
OR
R5 @RW5+d8
R5, A @RW5+d8, A
R5, A @RW5+d8, A
NEG
AND
AND
OR
OR
R4 @RW4+d8
R4, A @RW4+d8, A
R4, A @RW4+d8, A
NEG
AND
AND
OR
OR
R3 @RW3+d8
R3, A @RW3+d8, A
R3, A @RW3+d8, A
NEG
AND
AND
OR
OR
R2 @RW2+d8
R2, A @RW2+d8,A
R2, A @RW2+d8,A
NEG
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
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
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
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
付録
表 A.9-11 ea 系命令 その 6 ( 第 1 バイト =75H)
ADDW A, SUBW
ADDW
ADDCW
+F
CMPW
CMPW A,
ANDW
ANDW A,
ANDW A,
ORW
ORW
ORW
ORW
A,
A,
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 @RW2+, rel @PC+d16,rel
ADDCW 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+
addr16 A,@RW3+ addr16
A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 @RW3+, rel addr16, rel
+E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
SUBW A, ADDCW
SUBW A,
ANDW
XORW
XORW A,
DWBNZ
DWBNZ
A,@RW1+ @RW1+RW7 @RW1+, rel @RW1+RW7,rel
SUBW
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+, rel @RW0+RW7,rel
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, rel @RW3+d16,rel
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, rel @RW2+d16,rel
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, rel @RW1+d16,rel
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, rel @RW0+d16,rel
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, rel @RW7+d8,rel
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, rel @RW6+d8,rel
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, rel @RW5+d8,rel
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, rel @RW4+d8,rel
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, rel @RW3+d8,rel
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, rel @RW2+d8,rel
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, rel @RW1+d8,rel
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, rel @RW0+d8,rel
10
+0
00
付録 A 命令
表 A.9-12 ea 系命令 その 7 ( 第 1 バイト =76H)
693
694
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
付録
表 A.9-13 ea 系命令 その 8 ( 第 1 バイト =77H)
A,
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
@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, @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
A,
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
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
付録 A 命令
表 A.9-14 ea 系命令 その 9 ( 第 1 バイト =78H)
695
696
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW1,@RW3 @RW3+d16
RW2,@RW3 @RW3+d16
RW3,@RW3 @RW3+d16
RW4,@RW3 @RW3+d16
RW5,@RW3 @RW3+d16
RW6,@RW3 @RW3+d16
RW7,@RW3 @RW3+d16
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,@RW2+ @PC+d16
RW1,@RW2+ @PC+d16
RW2,@RW2+ @PC+d16
RW3,@RW2+ @PC+d16
RW4,@RW2+ @PC+d16
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
+E
+F
MOVEA
MOVEA
RW7@RW3+ RW7, addr16
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
+D
MOVEA
MOVEA
RW6,@RW3+ RW6, addr16
MOVEA
MOVEA RW7,
RW7,@RW0+ @RW0+RW7
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
+C
+B RW0,@RW3 @RW3+d16
+A RW0,@RW2 @RW2+d16
MOVEA
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,@RW1 @RW1+d16
RW1,@RW1 @RW1+d16
RW2,@RW1 @RW1+d16
RW3,@RW1 @RW1+d16
RW4,@RW1 @RW1+d16
RW5,@RW1 @RW1+d16
RW6,@RW1 @RW1+d16
RW7,@RW1 @RW1+d16
+9
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW1,@RW2 @RW2+d16
RW2,@RW2 @RW2+d16
RW3,@RW2 @RW2+d16
RW4,@RW2 @RW2+d16
RW5,@RW2 @RW2+d16
RW6,@RW2 @RW2+d16
RW7,@RW2 @RW2+d16
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,@RW0 @RW0+d16
RW1,@RW0 @RW0+d16
RW2,@RW0 @RW0+d16
RW3,@RW0 @RW0+d16
RW4,@RW0 @RW0+d16
RW5,@RW0 @RW0+d16
RW6,@RW0 @RW0+d16
RW7,@RW0 @RW0+d16
+8
MOVEA
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW7 @RW7+d8
RW1,RW7 @RW7+d8
RW2,RW7 @RW7+d8
RW3,RW7 @RW7+d8
RW4,RW7 @RW7+d8
RW5,RW7 @RW7+d8
RW6,RW7 @RW7+d8
RW7,RW7 @RW7+d8
F0
+7
E0
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5 MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW6 @RW6+d8
RW1,RW6 @RW6+d8
RW2,RW6 @RW6+d8
RW3,RW6 @RW6+d8
RW4,RW6 @RW6+d8
RW5,RW6 ,@RW6+d8
RW6,RW6 @RW6+d8
RW7,RW6 @RW6+d8
D0
+6
C0
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW5 @RW5+d8
RW1,RW5 @RW5+d8
RW2,RW5 @RW5+d8
RW3,RW5 @RW5+d8
RW4,RW5 @RW5+d8
RW5,RW5 @RW5+d8
RW6,RW5 @RW5+d8
RW7,RW5 @RW5+d8
B0
+5
A0
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW4 @RW4+d8
RW1,RW4 @RW4+d8
RW2,RW4 @RW4+d8
RW3,RW4 @RW4+d8
RW4,RW4 @RW4+d8
RW5,RW4 @RW4+d8
RW6,RW4 @RW4+d8
RW7,RW4 @RW4+d8
90
+4
80
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW3 @RW3+d8
RW1,RW3 @RW3+d8
RW2,RW3 @RW3+d8
RW3,RW3 @RW3+d8
RW4,RW3 @RW3+d8
RW5,RW3 @RW3+d8
RW6,RW3 @RW3+d8
RW7,RW3 @RW3+d8
70
+3
60
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW2 @RW2+d8
RW1,RW2 @RW2+d8
RW2,RW2 @RW2+d8
RW3,RW2 @RW2+d8
RW4,RW2 @RW2+d8
RW5,RW2 @RW2+d8
RW6,RW2 @RW2+d8
RW7,RW2 @RW2+d8
50
+2
40
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW1 @RW1+d8
RW1,RW1 @RW1+d8
RW2,RW1 @RW1+d8
RW3,RW1 @RW1+d8
RW4,RW1 @RW1+d8
RW5,RW1 @RW1+d8
RW6,RW1 @RW1+d8
RW7,RW1 @RW1+d8
30
+1
20
MOVEA
MOVEA RW0, MOVEA
MOVEA RW1, MOVEA
MOVEA RW2, MOVEA
MOVEA RW3, MOVEA
MOVEA RW4, MOVEA
MOVEA RW5, MOVEA
MOVEA RW6, MOVEA
MOVEA RW7,
RW0,RW0 @RW0+d8
RW1,RW0 @RW0+d8
RW2,RW0 @RW0+d8
RW3,RW0 @RW0+d8
RW4,RW0 @RW0+d8
RW5,RW0 @RW0+d8
RW6,RW0 @RW0+d8
RW7,RW0 @RW0+d8
10
+0
00
付録
表 A.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
付録 A 命令
表 A.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH)
697
698
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
付録
表 A.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
@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
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
付録 A 命令
表 A.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH)
699
700
MOVW
MOVW@RW2
@RW2, RW1 +d16, RW1
MOVW
MOVW@RW3
@RW3, RW1 +d16, RW1
MOVW
MOVW@RW0
@RW0+, RW1 +RW7,RW1
MOVW
MOVW@RW1
@RW1+, RW1 +RW7,RW1
MOVW
MOVW@PC
@RW2+, RW1 +d16, RW1
MOVW
MOVW
@RW3+, RW1 addr16, RW1
MOVW
MOVW@RW2
@RW2, RW0 +d16, RW0
MOVW
MOVW@RW3
@RW3, RW0 +d16, RW0
MOVW
MOVW@RW0
@RW0+, RW0 +RW7,RW0
MOVW
MOVW@RW1
@RW1+, RW0 +RW7,RW0
MOVW
MOVW@PC
@RW2+, RW0 +d16, RW0
MOVW
MOVW
@RW3+, RW0 addr16, RW0
+B
+C
+D
+E
+F
MOVW
MOVW
@RW3+, RW2 addr16, RW2
MOVW
MOVW@PC
@RW2+, RW2 +d16, RW2
MOVW
MOVW@RW1
@RW1+, RW2 +RW7,RW2
MOVW
MOVW@RW0
@RW0+, RW2 +RW7,RW2
MOVW
MOVW@RW3
@RW3, RW2 +d16, RW2
MOVW
MOVW@RW2
@RW2, RW2 +d16, RW2
MOVW
MOVW
@RW3+, RW3 addr16, RW3
MOVW
MOVW@PC
@RW2+, RW3 +d16, RW3
MOVW
MOVW@RW1
@RW1+, RW3 -+RW7,RW3
MOVW
MOVW@RW0
@RW0+, RW3 +RW7,RW3
MOVW
MOVW@RW3
@RW3, RW3 +d16, RW3
MOVW
MOVW@RW2
@RW2, RW3 +d16, RW3
MOVW
MOVW@RW1
@RW1, RW3 +d16, RW3
MOVW
MOVW
@RW3+, RW4 addr16, RW4
MOVW
MOVW@PC
@RW2+, RW4 +d16, RW4
MOVW
MOVW@RW1
@RW1+, RW4 +RW7,RW4
MOVW
MOVW@RW0
@RW0+, RW4 +RW7,RW4
MOVW
MOVW@RW3
@RW3, RW4 +d16, RW4
MOVW
MOVW@RW2
@RW2, RW4 +d16, RW4
MOVW
MOVW@RW1
@RW1, RW4 +d16, RW4
MOVW
MOVW
@RW3+, RW5 addr16, RW5
MOVW
MOVW@PC
@RW2+, RW5 +d16, RW5
MOVW
MOVW@RW1
@RW1+, RW5 +RW7,RW5
MOVW
MOVW@RW0
@RW0+, RW5 +RW7,RW5
MOVW
MOVW@RW3
@RW3, RW5 +d16, RW5
MOVW
MOVW@RW2
@RW2, RW5 +d16, RW5
MOVW
MOVW@RW1
@RW1, RW5 +d16, RW5
MOVW
MOVW
@RW3+, RW6 addr16, RW6
MOVW
MOVW @PC
@RW2+, RW6 +d16, RW6
MOVW
MOVW@RW1
@RW1+, RW6 +RW7,RW6
MOVW
MOVW@RW0
@RW0+, RW6 +RW7,RW6
MOVW
MOVW@RW3
@RW3, RW6 +d16, RW6
MOVW
MOVW@RW2
@RW2, RW6 +d16, RW6
MOVW
MOVW@RW1
@RW1, RW6 +d16, RW6
MOVW
MOVW
@RW3+, RW7 addr16, RW7
MOVW
MOVW@PC
@RW2+, RW7 +d16, RW7
MOVW
MOVW@RW1
@RW1+, RW7 +RW7,RW7
MOVW
MOVW@RW0
@RW0+, RW7 +RW7,RW7
MOVW
MOVW@RW3
@RW3, RW7 +d16, RW7
MOVW
MOVW@RW2
@RW2, RW7 +d16, RW7
MOVW
MOVW@RW1
@RW1, RW7 +d16, RW7
MOVW
MOVW@RW0
@RW0, RW7 +d16, RW7
+A
MOVW
MOVW@RW1
@RW1, RW2 +d16, RW2
MOVW
MOVW@RW0
@RW0, RW6 +d16, RW6
MOVW
MOVW@RW1
@RW1, RW1 +d16, RW1
MOVW
MOVW@RW0
@RW0, RW5 +d16, RW5
MOVW
MOVW@RW1
@RW1, RW0 +d16, RW0
MOVW
MOVW@RW0
@RW0, RW4 +d16, RW4
+9
MOVW
MOVW@RW0
@RW0, RW3 +d16, RW3
MOVW
MOVW@RW0
@RW0, RW1 +d16, RW1
MOVW
MOVW@RW0
@RW0, RW0 +d16, RW0
+8
MOVW
MOVW@RW0
@RW0, RW2 +d16, RW2
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW7, RW0 @RW7+d8, RW0
RW7, RW1 @RW7+d8, RW1
RW7, RW2 @RW7+d8, RW2
RW7, RW3 @RW7+d8, RW3
RW7, RW4 @RW7+d8, RW4
RW7, RW5 @RW7+d8, RW5
RW7, RW6 @RW7+d8, RW6
RW7, RW7 @RW7+d8, RW7
F0
+7
E0
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW6, RW0 @RW6+d8, RW0
RW6, RW1 @RW6+d8, RW1
RW6, RW2 @RW6+d8, RW2
RW6, RW3 @RW6+d8, RW3
RW6, RW4 @RW6+d8, RW4
RW6, RW5 @RW6+d8, RW5
RW6, RW6 @RW6+d8, RW6
RW6, RW7 @RW6+d8, RW7
D0
+6
C0
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW5, RW0 @RW5+d8, RW0
RW5, RW1 @RW5+d8, RW1
RW5, RW2 @RW5+d8, RW2
RW5, RW3 @RW5+d8, RW3
RW5, RW4 @RW5+d8, RW4
RW5, RW5 @RW5+d8, RW5
RW5, RW6 @RW5+d8, RW6
RW5, RW7 @RW5+d8, RW7
B0
+5
A0
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW4, RW0 @RW4+d8, RW0
RW4, RW1 @RW4+d8, RW1
RW4, RW2 @RW4+d8, RW2
RW4, RW3 @RW4+d8, RW3
RW4, RW4 @RW4+d8, RW4
RW4, RW5 @RW4+d8, RW5
RW4, RW6 @RW4+d8, RW6
RW4, RW7 @RW4+d8, RW7
90
+4
80
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW3, RW0 @RW3+d8, RW0
RW3, RW1 @RW3+d8, RW1
RW3, RW2 @RW3+d8, RW2
RW3, RW3 @RW3+d8, RW3
RW3, RW4 @RW3+d8, RW4
RW3, RW5 @RW3+d8, RW5
RW3, RW6 @RW3+d8, RW6
RW3, RW7 @RW3+d8, RW7
70
+3
60
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW2, RW0 @RW2+d8, RW0
RW2, RW1 @RW2+d8, RW1
RW2, RW2 @RW2+d8, RW2
RW2, RW3 @RW2+d8, RW3
RW2, RW4 @RW2+d8, RW4
RW2, RW5 @RW2+d8, RW5
RW2, RW6 @RW2+d8, RW6
RW2, RW7 @RW2+d8, RW7
50
+2
40
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW1, RW0 @RW1+d8, RW0
RW1, RW1 @RW1+d8, RW1
RW1, RW2 @RW1+d8, RW2
RW1, RW3 @RW1+d8, RW3
RW1, RW4 @RW1+d8, RW4
RW1, RW5 @RW1+d8, RW5
RW1, RW6 @RW1+d8, RW6
RW1, RW7 @RW1+d8, RW7
30
+1
20
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
MOVW
RW0, RW0 @RW0+d8, RW0
RW0, RW1 @RW0+d8, RW1
RW0, RW2 @RW0+d8, RW2
RW0, RW3 @RW0+d8, RW3
RW0, RW4 @RW0+d8, RW4
RW0, RW5 @RW0+d8, RW5
RW0, RW6 @RW0+d8, RW6
RW0, RW7 @RW0+d8, RW7
10
+0
00
付録
表 A.9-19 MOVW RWi, ea 命令 ( 第 1 バイト =7DH)
XCH
XCH
XCH
XCH
R1,
XCH
XCH
R2,
XCH
XCH
R3,
XCH
XCH
R4,
XCH
XCH
R5,
XCH
XCH
R6,
XCH
XCH
R7,
XCH
XCH
R1,
XCH
XCH
R2,
XCH
XCH
R3,
XCH
XCH
R4,
XCH
XCH
R5,
XCH
XCH
R6,
XCH
XCH
R7,
XCH
XCH
XCH
XCH
XCH
R1, XCH
XCH
R2, XCH
XCH
R3, XCH
XCH
R4, XCH
XCH
R5, XCH
XCH
R6, XCH
XCH
R7,
+F R0,@RW3+ R0, addr16
XCH
XCH
R1,@RW3+ R1, addr16
XCH
XCH
R2,@RW3+ R2, addr16
XCH
XCH
R3,@RW3+ R3, addr16
XCH
XCH
R4,@RW3+ R4, addr16
XCH
XCH
R5,@RW3+ R5, addr16
XCH
XCH
R6,@RW3+ R6, addr16
XCH
XCH
R7,@RW3+ R7, addr16
+E R0,@RW2+ @PC+d16 R1,@RW2+ @PC+d16 R2,@RW2+ @PC+d16 R3,@RW2+ @PC+d16 R4,@RW2+ @PC+d16 R5,@RW2+ @PC+d16 R6,@RW2+ @PC+d16 R7,@RW2+ @PC+d16
R0, XCH
XCH R0,
XCH
XCH R1,
XCH
XCH R2,
XCH
XCH R3,
XCH
XCH R4,
XCH
XCH R5,
XCH
XCH R6,
XCH
XCH R7,
@RW1+RW7 R1,@RW1+ @RW1+RW7 R2,@RW1+ @RW1+RW7 R3,@RW1+ @RW1+RW7 R4,@RW1+ @RW1+RW7 R5,@RW1+ @RW1+RW7 R6,@RW1+ @RW1+RW7 R7,@RW1+ @RW1+RW7
+D R0,@RW1+
XCH
XCH R0,
XCH
XCH R1,
XCH
XCH R2,
XCH
XCH R3,
XCH
XCH R4,
XCH
XCH R5,
XCH
XCH R6,
XCH
XCH R7,
@RW0+RW7 R1,@RW0+ @RW0+RW7 R2,@RW0+ @RW0+RW7 R3,@RW0+ @RW0+RW7 R4,@RW0+ @RW0+RW7 R5,@RW0+ @RW0+RW7 R6,@RW0+ @RW0+RW7 R7,@RW0+ @RW0+RW7
XCH
+C R0,@RW0+
+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
R0,
+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
R0,
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
XCH
XCH R0, XCH
XCH R1, XCH
XCH R2, XCH
XCH R3, XCH
XCH R4, XCH
XCH R5, XCH
XCH R6, XCH
XCH 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
付録 A 命令
表 A.9-20 XCH Ri, ea 命令 ( 第 1 バイト =7EH)
701
702
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0,@RW2+ @PC+d16
RW1,@RW2+ @PC+d16
RW2,@RW2+ @PC+d16
RW3,@RW2+ @PC+d16
RW4,@RW2+ @PC+d16
RW5,@RW2+ @PC+d16
RW6,@RW2+ @PC+d16
RW7,@RW2+ @PC+d16
XCHW
XCHW
RW0,@RW3+ RW0, addr16
+E
+F
XCHW
XCHW
RW7,@RW3+ RW7, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
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 RW7,@RW1+ @RW1+RW7
+D
XCHW
XCHW
RW6,@RW3+ RW6, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW 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
+C
XCHW
XCHW
RW5,@RW3+ RW5, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0,@RW3 @RW3+d16
RW1,@RW3 @RW3+d16
RW2,@RW3 @RW3+d16
RW3,@RW3 @RW3+d16
RW4,@RW3 @RW3+d16
RW5,@RW3 @RW3+d16
RW6,@RW3 @RW3+d16
RW7,@RW3 @RW3+d16
+B
XCHW
XCHW
RW4,@RW3+ RW4, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0,@RW2 @RW2+d16
RW1,@RW2 @RW2+d16
RW2,@RW2 @RW2+d16
RW3,@RW2 @RW2+d16
RW4,@RW2 @RW2+d16
RW5,@RW2 @RW2+d16
RW6,@RW2 @RW2+d16
RW7,@RW2 @RW2+d16
+A
XCHW
XCHW
RW3,@RW3+ RW3, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0,@RW1 @RW1+d16
RW1,@RW1 @RW1+d16
RW2,@RW1 @RW1+d16
RW3,@RW1 @RW1+d16
RW4,@RW1 @RW1+d16
RW5,@RW1 @RW1+d16
RW6,@RW1 @RW1+d16
RW7,@RW1 @RW1+d16
+9
XCHW
XCHW
RW2,@RW3+ RW2, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0,@RW0 @RW0+d16
RW1,@RW0 @RW0+d16
RW2,@RW0 @RW0+d16
RW3,@RW0 @RW0+d16
RW4,@RW0 @RW0+d16
RW5,@RW0 @RW0+d16
RW6,@RW0 @RW0+d16
RW7,@RW0 @RW0+d16
+8
XCHW
XCHW
RW1,@RW3+ RW1, addr16
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW7 @RW7+d8
RW1, RW7 @RW7+d8
RW2, RW7 @RW7+d8
RW3, RW7 @RW7+d8
RW4, RW7 @RW7+d8
RW5, RW7 @RW7+d8
RW6, RW7 @RW7+d8
RW7, RW7 @RW7+d8
F0
+7
E0
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW6 @RW6+d8
RW1, RW6 @RW6+d8
RW2, RW6 @RW6+d8
RW3, RW6 @RW6+d8
RW4, RW6 @RW6+d8
RW5, RW6 @RW6+d8
RW6, RW6 @RW6+d8
RW7, RW6 @RW6+d8
D0
+6
C0
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW5 @RW5+d8
RW1, RW5 @RW5+d8
RW2, RW5 @RW5+d8
RW3, RW5 @RW5+d8
RW4, RW5 @RW5+d8
RW5, RW5 @RW5+d8
RW6, RW5 @RW5+d8
RW7, RW5 @RW5+d8
B0
+5
A0
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW4 @RW4+d8
RW1, RW4 @RW4+d8
RW2, RW4 @RW4+d8
RW3, RW4 @RW4+d8
RW4, RW4 @RW4+d8
RW5, RW4 @RW4+d8
RW6, RW4 @RW4+d8
RW7, RW4 @RW4+d8
90
+4
80
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW3 @RW3+d8
RW1, RW3 @RW3+d8
RW2, RW3 @RW3+d8
RW3, RW3 @RW3+d8
RW4, RW3 @RW3+d8
RW5, RW3 @RW3+d8
RW6, RW3 @RW3+d8
RW7, RW3 @RW3+d8
70
+3
60
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW2 @RW2+d8
RW1, RW2 @RW2+d8
RW2, RW2 @RW2+d8
RW3, RW2 @RW2+d8
RW4, RW2 @RW2+d8
RW5, RW2 @RW2+d8
RW6, RW2 @RW2+d8
RW7, RW2 @RW2+d8
50
+2
40
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW1 @RW1+d8
RW1, RW1 @RW1+d8
RW2, RW1 @RW1+d8
RW3, RW1 @RW1+d8
RW4, RW1 @RW1+d8
RW5, RW1 @RW1+d8
RW6, RW1 @RW1+d8
RW7, RW1 @RW1+d8
30
+1
20
XCHW
XCHW RW0, XCHW
XCHW RW1, XCHW
XCHW RW2, XCHW
XCHW RW3, XCHW
XCHW RW4, XCHW
XCHW RW5, XCHW
XCHW RW6, XCHW
XCHW RW7,
RW0, RW0 @RW0+d8
RW1, RW0 @RW0+d8
RW2, RW0 @RW0+d8
RW3, RW0 @RW0+d8
RW4, RW0 @RW0+d8
RW5, RW0 @RW0+d8
RW6, RW0 @RW0+d8
RW7, RW0 @RW0+d8
10
+0
00
付録
表 A.9-21 XCHW RWi, ea 命令 ( 第 1 バイト =7FH)
付録 B レジスタ索引
付録 B
レジスタ索引
■ レジスタ索引
表 B-1 レジスタ索引 (1 / 9)
アドレス
レジスタ
略称
レジスタ名称
000000H
リセット値
周辺機能名
ページ番号
( 予約領域 ) *
000001H
PDR1
ポート 1 データレジスタ
XXXXXXXXB
ポート 1
167
000002H
PDR2
ポート 2 データレジスタ
XXXXXXXXB
ポート 2
173
000003H
PDR3
ポート 3 データレジスタ
XXXXXXXXB
ポート 3
178
000004H
PDR4
ポート 4 データレジスタ
XXXXXXXXB
ポート 4
183
000005H
PDR5
ポート 5 データレジスタ
XXXXXXXXB
ポート 5
189
000006H
( 予約領域 ) *
∼
000010H
000011H
DDR1
ポート 1 方向レジスタ
00000000B
ポート 1
167
000012H
DDR2
ポート 2 方向レジスタ
00000000B
ポート 2
173
000013H
DDR3
ポート 3 方向レジスタ
000X0000B
ポート 3
178
000014H
DDR4
ポート 4 方向レジスタ
XXX00000B
ポート 4
183
000015H
DDR5
ポート 5 方向レジスタ
00000000B
ポート 5
189
8/10 ビット
A/D コンバータ
374
000016H
( 予約領域 ) *
∼
00001AH
00001BH
ADER
11111111B
アナログ入力許可レジスタ
00001CH
( 予約領域 ) *
∼
00001FH
000020H
SMR0
シリアルモードレジスタ 0
00000000B
399
000021H
SCR0
シリアル制御レジスタ 0
00000100B
397
000022H
SIDR0/
SODR0
シリアル入力データレジスタ 0/
シリアル出力データレジスタ 0
XXXXXXXXB
404
UART0
000023H
SSR0
シリアルステータスレジスタ 0
00001X00B
401
000024H
CDCR0
通信プリスケーラ制御レジスタ
0
0XXX1111B
406
000025H
SES0
シリアルエッジ選択レジスタ 0
XXXXXXX0B
407
703
付録
表 B-1 レジスタ索引 (2 / 9)
アドレス
レジスタ
略称
000026H
SMR1
シリアルモードレジスタ 1
00000000B
447
000027H
SCR1
シリアル制御レジスタ 1
00000100B
445
000028H
SIDR1/
SODR1
シリアル入力データレジスタ 1/
シリアル出力データレジスタ 1
XXXXXXXXB
452
000029H
SSR1
シリアルステータスレジスタ 1
00001000B
449
レジスタ名称
周辺機能名
ページ番号
UART1
( 予約領域 ) *
00002AH
00002BH
リセット値
CDCR1
通信プリスケーラ制御レジスタ
1
0XXX0000B
UART1
454
00002CH
( 予約領域 ) *
∼
00002FH
000030H
ENIR
DTP/ 外部割込み許可レジスタ
00000000B
000031H
EIRR
DTP/ 外部割込み要因レジスタ
XXXXXXXXB
343
342
DTP/ 外部割込み
000032H
ELVR
000033H
000034H
ADCS
00000000B
345
00000000B
344
00000000B
367
検出レベル設定レジスタ
A/D 制御ステータスレジスタ
000035H
00000000B
000036H
XXXXXXXXB
ADCR
8/10 ビット
A/D コンバータ
364
373
A/D データレジスタ
000037H
00101XXXB
371
000038H
( 予約領域 ) *
∼
00003EH
00003FH
PSCCR
PLL/ サブクロック制御レジスタ
( 拡張用 )
XXXXX000B
000040H
PPGC0
PPG0 動作モード制御レジスタ
0X000XX1B
000041H
PPGC1
PPG1 動作モード制御レジスタ
0X000001B
000042H
PPG01
PPG0/1 カウントクロック選択
8/16 ビット
PPG タイマ 0/1
311
313
( 予約領域 ) *
000044H
PPGC2
PPG2 動作モード制御レジスタ
0X000XX1B
000045H
PPGC3
PPG3 動作モード制御レジスタ
0X000001B
000046H
PPG23
704
119
309
000000XXB
レジスタ
000043H
PLL クロック
PPG2/3 カウントクロック選択
レジスタ
000000XXB
309
8/16 ビット
PPG タイマ 2/3
311
313
付録 B レジスタ索引
表 B-1 レジスタ索引 (3 / 9)
アドレス
レジスタ
略称
レジスタ名称
リセット値
周辺機能名
ページ番号
000047H
( 予約領域 ) *
∼
00004FH
000050H
IPCP0
000051H
000052H
IPCP1
000053H
XXXXXXXXB
インプットキャプチャデータ
レジスタ 0
240
XXXXXXXXB
XXXXXXXXB
インプットキャプチャデータ
レジスタ 1
240
XXXXXXXXB
000054H
ICS01
000055H
ICS23
インプットキャプチャ制御
ステータスレジスタ
TCDT
タイマカウンタデータレジスタ
00000000B
237
00000000B
000056H
00000000B
000057H
000058H
16 ビット入出力
タイマ
235
00000000B
TCCS
タイマカウンタ制御ステータス
レジスタ
00000000B
233
( 予約領域 ) *
000059H
00005AH
IPCP2
00005BH
00005CH
IPCP3
00005DH
XXXXXXXXB
インプットキャプチャデータ
レジスタ 2
240
XXXXXXXXB
XXXXXXXXB
インプットキャプチャデータ
レジスタ 3
16 ビット入出力
タイマ
240
XXXXXXXXB
00005EH
( 予約領域 ) *
∼
000065H
000066H
00000000B
TMCSR0
000067H
XXXX0000B
16 ビットリロード
タイマ 0
タイマ制御ステータスレジスタ
000068H
00000000B
TMCSR1
000069H
XXXX0000B
16 ビットリロード
タイマ 1
263
261
263
261
00006AH
( 予約領域 ) *
∼
00006EH
00006FH
ROMM
XXXXXXX1B
ROM ミラー機能選択レジスタ
ROM ミラー機能
選択モジュール
582
000070H
( 予約領域 ) *
∼
00007FH
000080H
BVALR
メッセージバッファ有効レジス
タ
00000000B
CAN コントローラ
508
705
付録
表 B-1 レジスタ索引 (4 / 9)
アドレス
レジスタ
略称
レジスタ名称
000081H
000082H
TREQR
TCANR
TCR
00000000B
送信完了レジスタ
512
CAN コントローラ
518
CAN コントローラ
520
CAN コントローラ
524
CAN コントローラ
526
CAN コントローラ
528
CAN コントローラ
530
( 予約領域 ) *
RCR
00000000B
受信完了レジスタ
( 予約領域 ) *
RRTRR
00000000B
受信 RTR レジスタ
( 予約領域 ) *
ROVRR
00000000B
受信オーバランレジスタ
00008DH
00008EH
CAN コントローラ
( 予約領域 ) *
00008BH
00008CH
00000000B
送信キャンセルレジスタ
000089H
00008AH
ページ番号
( 予約領域 ) *
000087H
000088H
00000000B
送信要求レジスタ
000085H
000086H
周辺機能名
( 予約領域 ) *
000083H
000084H
リセット値
( 予約領域 ) *
RIER
00000000B
受信完了割込み許可レジスタ
00008FH
( 予約領域 ) *
∼
00009DH
00009EH
PACSR
00009FH
DIRR
0000A0H
アドレス一致
アドレス検出制御レジスタ
00000000B
遅延割込み要求発生 /
解除レジスタ
XXXXXXX0B
遅延割込み発生
モジュール
333
LPMCR
低消費電力モード制御レジスタ
00011000B
低消費電力モード
133
0000A1H
CKSCR
クロック選択レジスタ
11111100B
クロック
115
0000A2H
PILR
ポート入力レベル選択レジスタ
0000000XB
I/O
193
検出機能
567
0000A3H
( 予約領域 ) *
∼
0000A7H
0000A8H
WDTC
ウォッチドッグタイマ制御
レジスタ
XXXXX111B
ウォッチドッグ
タイマ
216
0000A9H
TBTC
タイムベースタイマ制御レジス
タ
1XX00100B
タイムベース
タイマ
201
0000AAH
WTC
時計タイマ制御レジスタ
1X001000B
時計タイマ
289
0000ABH
∼
0000ADH
706
( 予約領域 ) *
付録 B レジスタ索引
表 B-1 レジスタ索引 (5 / 9)
アドレス
レジスタ
略称
レジスタ名称
リセット値
周辺機能名
0000AEH
FMCS
フラッシュメモリコントロール
ステータスレジスタ
000X0000B
512K ビット
フラシュメモリ
588
割込みコントローラ
66
0000AFH
ページ番号
( 予約領域 ) *
0000B0H
ICR00
割込み制御レジスタ 00
00000111B
0000B1H
ICR01
割込み制御レジスタ 01
00000111B
0000B2H
ICR02
割込み制御レジスタ 02
00000111B
0000B3H
ICR03
割込み制御レジスタ 03
00000111B
0000B4H
ICR04
割込み制御レジスタ 04
00000111B
0000B5H
ICR05
割込み制御レジスタ 05
00000111B
0000B6H
ICR06
割込み制御レジスタ 06
00000111B
0000B7H
ICR07
割込み制御レジスタ 07
00000111B
0000B8H
ICR08
割込み制御レジスタ 08
00000111B
0000B9H
ICR09
割込み制御レジスタ 09
00000111B
0000BAH
ICR10
割込み制御レジスタ 10
00000111B
0000BBH
ICR11
割込み制御レジスタ 11
00000111B
0000BCH
ICR12
割込み制御レジスタ 12
00000111B
0000BDH
ICR13
割込み制御レジスタ 13
00000111B
0000BEH
ICR14
割込み制御レジスタ 14
00000111B
0000BFH
ICR15
割込み制御レジスタ 15
00000111B
0000C0H
( 予約領域 ) *
∼
0000FFH
001FF0H
001FF1H
PADR0
001FF2H
001FF3H
001FF4H
001FF5H
PADR1
検出アドレス設定レジスタ 0
( 下位 )
XXXXXXXXB
検出アドレス設定レジスタ 0
( 中位 )
XXXXXXXXB
検出アドレス設定レジスタ 0
( 上位 )
XXXXXXXXB
アドレス一致
検出機能
検出アドレス設定レジスタ 1
( 下位 )
XXXXXXXXB
検出アドレス設定レジスタ 1
( 中位 )
XXXXXXXXB
検出アドレス設定レジスタ 1
( 上位 )
XXXXXXXXB
569
707
付録
表 B-1 レジスタ索引 (6 / 9)
アドレス
003900H
003901H
003902H
003903H
レジスタ
略称
レジスタ名称
リセット値
TMR0/
TMRLR0
16 ビットタイマレジスタ 0/
16 ビットリロードレジスタ 0
TMR1/
TMRLR1
16 ビットタイマレジスタ 1/
16 ビットリロードレジスタ 1
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
XXXXXXXXB
周辺機能名
ページ番号
16 ビット
リロードタイマ 0
265/266
16 ビット
リロードタイマ 1
265/266
003904H
( 予約領域 ) *
∼
003909H
FWR0
フラッシュ書込みコントロール
レジスタ 0
00390BH
FWR1
フラッシュ書込みコントロール
レジスタ 1
00000000B
00390CH
SSR0
セクタ変換設定レジスタ
00XXXXX0B
00390AH
00000000B
591
Dual-FLASH
619
00390DH
( 予約領域 ) *
∼
00390FH
003910H
PRLL0
PPG0 リロードレジスタ L
XXXXXXXXB
003911H
PRLH0
PPG0 リロードレジスタ H
XXXXXXXXB
003912H
PRLL1
PPG1 リロードレジスタ L
XXXXXXXXB
003913H
PRLH1
PPG1 リロードレジスタ H
XXXXXXXXB
003914H
PRLL2
PPG2 リロードレジスタ L
XXXXXXXXB
003915H
PRLH2
PPG2 リロードレジスタ H
XXXXXXXXB
003916H
PRLL3
PPG3 リロードレジスタ L
XXXXXXXXB
003917H
PRLH3
PPG3 リロードレジスタ H
XXXXXXXXB
8/16 ビット
PPG タイマ
315
CAN コントローラ
537
003918H
( 予約領域 ) *
∼
00392FH
003930H
( 予約領域 ) *
∼
003BFFH
003C00H
RAM ( 汎用 RAM)
∼
003C0FH
003C10H
∼
003C13H
XXXXXXXXB
IDR0
ID レジスタ 0
003C14H
∼
003C17H
708
∼
XXXXXXXXB
XXXXXXXXB
IDR1
ID レジスタ 1
∼
XXXXXXXXB
付録 B レジスタ索引
表 B-1 レジスタ索引 (7 / 9)
アドレス
レジスタ
略称
レジスタ名称
003C18H
∼
003C1BH
ID レジスタ 2
IDR3
ID レジスタ 3
ページ番号
∼
XXXXXXXXB
XXXXXXXXB
003C20H
∼
003C23H
周辺機能名
XXXXXXXXB
IDR2
003C1CH
∼
003C1FH
リセット値
∼
XXXXXXXXB
XXXXXXXXB
IDR4
ID レジスタ 4
∼
XXXXXXXXB
537
003C24H
∼
003C27H
XXXXXXXXB
IDR5
ID レジスタ 5
003C28H
∼
003C2BH
XXXXXXXXB
IDR6
ID レジスタ 6
003C2CH
∼
003C2FH
∼
XXXXXXXXB
∼
XXXXXXXXB
XXXXXXXXB
IDR7
ID レジスタ 7
∼
XXXXXXXXB
CAN コントローラ
003C30H
003C31H
DLCR0
DLC レジスタ 0
XXXXXXXXB
XXXXXXXXB
003C32H
003C33H
DLCR1
DLC レジスタ 1
XXXXXXXXB
XXXXXXXXB
003C34H
003C35H
DLCR2
DLC レジスタ 2
XXXXXXXXB
XXXXXXXXB
003C36H
003C37H
DLCR3
DLC レジスタ 3
XXXXXXXXB
XXXXXXXXB
540
003C38H
003C39H
DLCR4
DLC レジスタ 4
XXXXXXXXB
XXXXXXXXB
003C3AH
003C3BH
DLCR5
DLC レジスタ 5
XXXXXXXXB
XXXXXXXXB
003C3CH
003C3DH
DLCR6
DLC レジスタ 6
XXXXXXXXB
XXXXXXXXB
003C3EH
003C3FH
DLCR7
DLC レジスタ 7
XXXXXXXXB
XXXXXXXXB
709
付録
表 B-1 レジスタ索引 (8 / 9)
アドレス
レジスタ
略称
レジスタ名称
003C40H
∼
003C47H
データレジスタ 0
DTR1
データレジスタ 1
∼
XXXXXXXXB
∼
XXXXXXXXB
XXXXXXXXB
DTR2
データレジスタ 2
003C58H
∼
003C5FH
∼
XXXXXXXXB
XXXXXXXXB
DTR3
データレジスタ 3
∼
XXXXXXXXB
CAN コントローラ
003C60H
∼
003C67H
DTR4
データレジスタ 4
DTR5
データレジスタ 5
DTR6
データレジスタ 6
DTR7
データレジスタ 7
∼
XXXXXXXXB
XXXXXXXXB
003C78H
∼
003C7FH
∼
XXXXXXXXB
XXXXXXXXB
003C70H
∼
003C77H
541
XXXXXXXXB
003C68H
∼
003C6FH
ページ番号
XXXXXXXXB
003C50H
∼
003C57H
周辺機能名
XXXXXXXXB
DTR0
003C48H
∼
003C4FH
リセット値
∼
XXXXXXXXB
XXXXXXXXB
∼
XXXXXXXXB
003C80H
( 予約領域 ) *
∼
003CFFH
003D00H
003D01H
CSR
003D02H
LEIR
制御ステータスレジスタ
ラストイベント表示レジスタ
003D03H
0XXXX001B
00XXX000B
000XX000B
RTEC
送受信エラーカウンタ
00000000B
00000000B
003D06H
003D07H
BTR
ビットタイミングレジスタ
11111111B
X1111111B
003D08H
IDER
IDE レジスタ
XXXXXXXXB
710
502
CAN コントローラ
504
510
( 予約領域 ) *
003D09H
003D0BH
499
( 予約領域 ) *
003D04H
003D05H
003D0AH
496/494
CAN コントローラ
TRTRR
送信 RTR レジスタ
00000000B
( 予約領域 ) *
CAN コントローラ
514
付録 B レジスタ索引
表 B-1 レジスタ索引 (9 / 9)
アドレス
レジスタ
略称
003D0CH
RFWTR
レジスタ名称
リモートフレーム受信待ち
TIER
ページ番号
CAN コントローラ
516
CAN コントローラ
522
CAN コントローラ
532
CAN コントローラ
534
( 予約領域 ) *
AMSR
XXXXXXXXB
XXXXXXXXB
アクセプタンスマスク選択
レジスタ
( 予約領域 ) *
003D14H
AMR0
003D18H
∼
003D1BH
00000000B
送信完了割込み許可レジスタ
003D12H
003D13H
∼
003D17H
周辺機能名
( 予約領域 ) *
003D0FH
003D10H
003D11H
XXXXXXXXB
レジスタ
003D0DH
003D0EH
リセット値
AMR1
アクセプタンスマスクレジスタ
0
アクセプタンスマスクレジスタ
1
XXXXXXXXB
∼
XXXXXXXXB
XXXXXXXXB
∼
XXXXXXXXB
003D1CH
∼
003DFFH
( 予約領域 ) *
003E00H
∼
003EFFH
( 予約領域 ) *
003FF0H
∼
003FFFH
( 予約領域 ) *
リセット値についての説明
0: このビットのリセット値は "0" です。
1: このビットのリセット値は "1" です。
X: このビットのリセット値は不定です。
*: "( 予約領域 )" への書込みは行わないでください。
"( 予約領域 )" を読み出した場合は , 不定が読み出されます。
711
付録
付録 C
端子機能索引
■ 端子機能索引
表 C-1 端子機能索引 (1 / 2)
端子番号
端子名
M05
回路
形式
機能説明
ページ
ブロック図
ページ
1
AVCC
−
A/D コンバータの VCC 電源入力端子
360
359
2
AVR
−
A/D コンバータの電源 (Vref+) 入力端子
360
359
汎用入出力ポート
186
188
A/D コンバータ アナログ入力端子
362
359
汎用入出力ポート
176
177
A/D コンバータ 外部トリガ入力端子
362
359
汎用入出力ポート
170
172
リロードタイマ 0 イベント入力端子
258
255
汎用入出力ポート
170
172
リロードタイマ 0 イベント出力端子
258
255
汎用入出力ポート
170
172
リロードタイマ 1 イベント入力端子
258
255
汎用入出力ポート
170
172
TOT1
リロードタイマ 1 イベント出力端子
258
255
P24 ∼ P27
汎用入出力ポート
170
172
外部割込み入力端子
341
339
P50 ∼ P57
3 ∼ 10
AN0 ∼
AN7
E
P37
11
D
ADTG
P20
12
D
TIN0
P21
13
D
TOT0
P22
14
D
TIN1
P23
15
16 ∼ 19
D
INT4 ∼
INT7
D
20
MD2
F
動作モード指定用入力端子
154
−
21
MD1
C
動作モード指定用入力端子
154
−
22
MD0
C
動作モード指定用入力端子
154
−
23
RST
B
外部リセット入力端子
98
102
24
VCC
−
電源 (5V) 入力端子
−
−
25
VSS
−
電源 (0V) 入力端子
−
−
26
C
−
電源安定化容量端子
−
−
27
X0
A
高速発振用端子
109
112
28
X1
A
高速発振用端子
109
112
汎用入出力ポート
164
166
230
228
P10 ∼ P13
D
29 ∼ 32
IN0 ∼ IN3
712
機能説明
インプットキャプチャチャネル 0 ∼ 3
トリガ入力端子
付録 C 端子機能索引
表 C-1 端子機能索引 (2 / 2)
端子番号
端子名
M05
回路
形式
P14 ∼ P17
33 ∼ 36
PPG0 ∼
PPG3
D
SIN1
P41
38
汎用入出力ポート ( 高電流出力ポート )
164
166
PPG タイマ 01, 23 出力端子
307
302/304
汎用入出力ポート
181
182
UART1 シリアルデータ入力端子
443
440
汎用入出力ポート
181
182
UART1 シリアルクロック入出力端子
443
440
汎用入出力ポート
181
182
UART1 シリアルデータ出力端子
443
440
汎用入出力ポート
181
182
CAN コントローラ 送信出力端子
490
487
汎用入出力ポート
181
182
CAN コントローラ 受信入力端子
490
487
汎用入出力ポート
176
177
UART0 シリアルデータ出力端子
395
392
汎用入出力ポート
176
177
UART0 シリアルクロック入出力端子
395
392
汎用入出力ポート
176
177
UART0 シリアルデータ入力端子
395
392
D
SCK1
P42
39
D
SOT1
P43
40
D
TX
P44
41
D
RX
P30
42
D
SOT0
P31
43
D
SCK0
P32
44
H
SIN0
45
ブロック図
ページ
D
P40
37
機能説明
ページ
機能説明
P33
D
汎用入出力ポート
176
177
X0A*
A
低速発振用端子
109
112
P35*
D
汎用入出力ポート
176
177
X1A*
A
低速発振用端子
109
112
P36*
D
汎用入出力ポート
176
177
AVSS
−
A/D コンバータ VSS 電源入力端子
360
359
46
47
48
*: MB90F897:X1A, X0A
MB90F897S:P36, P35
713
付録
付録 D
割込みベクタ索引
■ 割込みベクタ索引
表 D-1 割込みベクタ索引 (1 / 2)
割
込
み
番
号
割込み制御
ベクタテーブルのアドレス
割込み要因
ICR
アドレス
下位
中位
上位
ページ
番号
#08
リセット
−
−
FFFFDCH
FFFFDDH
FFFFDEH
98
#09
INT9 命令
−
−
FFFFD8H
FFFFD9H
FFFFDAH
564
#10
例外処理
−
−
FFFFD4H
FFFFD5H
FFFFD6H
91
#11
CAN コントローラ受信完了
FFFFD0H
FFFFD1H
FFFFD2H
#12
CAN コントローラ
受信完了 / ノードステータス
遷移
FFFFCCH
FFFFCDH
FFFFCEH
#13
予約
FFFFC8H
FFFFC9H
FFFFCAH
−
FFFFC4H
FFFFC5H
FFFFC6H
−
FFFFC0H
FFFFC1H
FFFFC2H
338
FFFFBCH
FFFFBDH
FFFFBEH
203
FFFFB8H
FFFFB9H
FFFFBAH
267
FFFFB4H
FFFFB5H
FFFFB6H
376
FFFFB0H
FFFFB1H
FFFFB2H
241
ICR00
ICR01
#14
予約
#15
CAN ウェイクアップ
ICR02
#16
タイムベースタイマ
#17
16 ビットリロードタイマ 0
ICR03
#18
8/10 ビット A/D コンバータ
#19
16 ビットフリーランタイマ
オーバフロー
ICR04
0000B0H
542
0000B1H
0000B2H
0000B3H
0000B4H
#20
予約
FFFFACH
FFFFADH
FFFFAEH
−
#21
予約
FFFFA8H
FFFFA9H
FFFFAAH
−
#22
PPG タイマ
ch.0, ch.1 アンダフロー
FFFFA4H
FFFFA5H
FFFFA6H
316
#23
インプットキャプチャ 0
取込み
FFFFA0H
FFFFA1H
FFFFA2H
241
#24
外部割込み 4 (INT4)/
外部割込み 5(INT5)
FFFF9CH
FFFF9DH
FFFF9EH
338
#25
インプットキャプチャ 1
取込み
FFFF98H
FFFF99H
FFFF9AH
241
FFFF94H
FFFF95H
FFFF96H
316
FFFF90H
FFFF91H
FFFF92H
338
FFFF8CH
FFFF8DH
FFFF8EH
292
ICR05
ICR06
ICR07
#26
PPG タイマ
ch.2, ch.3 アンダフロー
#27
外部割込み 6 (INT6)/
外部割込み 7 (INT7)
#28
714
時計タイマ
ICR08
0000B5H
0000B6H
0000B7H
0000B8H
付録 D 割込みベクタ索引
表 D-1 割込みベクタ索引 (2 / 2)
割
込
み
番
号
割込み制御
割込み要因
ICR
#29
予約
#30
インプットキャプチャ 2
取込み
インプットキャプチャ 3
取込み
#31
予約
ICR09
ICR10
#32
予約
#33
予約
ICR11
#34
予約
#35
予約
ICR12
#36
16 ビットリロードタイマ 1
#37
UART1 受信
ICR13
#38
UART1 送信
#39
UART0 受信
ICR14
#40
UART0 送信
#41
フラッシュメモリ
ICR15
#42
ベクタテーブルのアドレス
遅延割込み発生モジュール
アドレス
ページ
番号
下位
中位
上位
FFFF88H
FFFF89H
FFFF8AH
−
FFFF84H
FFFF85H
FFFF86H
241
FFFF80H
FFFF81H
FFFF82H
−
FFFF7CH
FFFF7DH
FFFF7EH
−
FFFF78H
FFFF79H
FFFF7AH
−
FFFF74H
FFFF75H
FFFF76H
−
FFFF70H
FFFF71H
FFFF72H
−
FFFF6CH
FFFF6DH
FFFF6EH
267
FFFF68H
FFFF69H
FFFF6AH
FFFF64H
FFFF65H
FFFF66H
FFFF60H
FFFF61H
FFFF62H
FFFF5CH
FFFF5DH
FFFF5EH
FFFF58H
FFFF59H
FFFF5AH
584
FFFF54H
FFFF55H
FFFF56H
330
0000B9H
0000BAH
0000BBH
0000BCH
0000BDH
455
0000BEH
408
0000BFH
715
付録
716
CM44-10127-3
富士通マイクロエレクトロニクス • CONTROLLER MANUAL
F2MC®-16LX
16 ビット・マイクロコントローラ
MB90895 Series
ハードウェアマニュアル
2009 年 4 月 第 3 版発行
発行
富士通マイクロエレクトロニクス株式会社
編集
マーケティング統括部 プロモーション推進部