7.4MB

本ドキュメントはCypress (サイプレス) 製品に関する情報が記載されております。
富士通マイクロエレクトロニクス
CONTROLLER MANUAL
CM44-10128-5
F2MC®-16LX
16 ビット・マイクロコントローラ
MB90800 Series
ハードウェアマニュアル
F2MC®-16LX
16 ビット・マイクロコントローラ
MB90800 Series
ハードウェアマニュアル
富士通マイクロエレクトロニクスのマイコンを効率的に開発するための情報を下記 URL にてご紹介いたします。
ご採用を検討中 , またはご採用いただいたお客様に有益な情報を公開しています。
開発における最新の注意事項に関しては , 「デザインレビューシート」を参照してください。
「デザインレビューシート」はシステム開発において , 問題を未然に防ぐことを目的として , 最低限必要と思わ
れるチェック項目をリストにしたものです。
http://edevice.fujitsu.com/micom/jp-support/
富士通マイクロエレクトロニクス株式会社
はじめに
■ 本書の目的と対象読者
富士通マイクロエレクトロニクス製品につきまして , 平素より格別のご愛顧を賜り厚
くお礼申し上げます。
MB90800 シリーズは , 48 セグメント 4 コモンの LCD 制御回路を内蔵した , 汎用の 16
ビットマイクロコントローラです。
本書は , 実際に MB90800 シリーズを使用して製品を開発される技術者を対象に ,
MB90800 シリーズの機能や動作について解説したものです。本書をご一読ください。
■ 商標
F2MC は , FUJITSU Flexible Microcontroller の略で , 富士通マイクロエレクトロニクス株
式会社の登録商標です。
その他の記載されている社名および製品名などの固有名詞は , 各社の商標または登録
商標です。
i
■ 本書の全体構成
本書は , 以下に示す 26 の章 , および付録から構成されています。
第1章 概 要
この章では , MB90800 シリーズの特長 , 基本的な仕様について説明します。
第 2 章 CPU
この章では , MB90800 シリーズの CPU とメモリ空間について説明します。
第 3 章 リセット
この章では , MB90800 シリーズのリセットについて説明します。
第 4 章 クロック
この章では , MB90800 シリーズのクロックについて説明します。
第 5 章 低消費電力モード
この章では , MB90800 シリーズの低消費電力モードについて説明します。
第 6 章 割込み
この章では , MB90800 シリーズの割込みと拡張インテリジェント I/O サービス
(EI2OS) について説明します。
第 7 章 モード設定
この章では , MB90800 シリーズの動作モードとメモリアクセスモードについて説明
します。
第 8 章 入出力ポート
この章では , MB90800 シリーズの入出力ポートの機能と動作について説明します。
第 9 章 シリアル I/O
この章では , MB90800 シリーズのシリアル I/O の機能と動作について説明します。
第 10 章 タイムベースタイマ
この章では , MB90800 シリーズのタイムベースタイマの機能と動作について説明し
ます。
第 11 章 ウォッチドッグタイマ
この章では , MB90800 シリーズのウォッチドッグタイマの機能と動作について説明
します。
第 12 章 時計タイマ
この章では , MB90800 シリーズの時計タイマの機能と動作について説明します。
第 13 章 16 ビットリロードタイマ
この章では , MB90800 シリーズの 16 ビットリロードタイマの機能と動作について
説明します。
第 14 章 入出力タイマ
この章では , MB90800 シリーズの 16 ビット入出力タイマの機能と動作について説
明します。
第 15 章 PPG タイマ
この章では , MB90800 シリーズの PPG タイマについて説明します。
第 16 章 UART
この章では , MB90800 シリーズの UART の機能と動作について説明します。
第 17 章 DTP/ 外部割込み回路
この章では , MB90800 シリーズの DTP/ 外部割込み回路の機能と動作について説明
ii
します。
第 18 章 I2C インタフェース
この章では , MB90800 シリーズの I2C インタフェースの機能と動作について説明し
ます。
第 19 章 8/10 ビット A/D コンバータ
この章では , MB90800 シリーズの 8/10 ビット A/D コンバータの機能と動作につい
て説明します。
第 20 章 LCD コントローラ / ドライバ
この章では , MB90800 シリーズの LCD 制御回路の機能と動作について説明します。
第 21 章 時計クロック出力
この章では , MB90800 シリーズの時計クロック出力の機能と動作について説明しま
す。
第 22 章 遅延割込み発生モジュール
この章では , MB90800 シリーズの遅延割込み発生モジュールの機能と動作について
説明します。
第 23 章 アドレス一致検出機能
この章では , MB90800 シリーズのアドレス検出機能と動作について説明します。
第 24 章 ROM ミラー機能選択モジュール
この章では , MB90800 シリーズの ROM ミラー機能選択モジュールの機能と動作に
ついて説明します。
第 25 章 2M ビットフラッシュメモリ
この章では , MB90800 シリーズの 2 M ビットフラッシュメモリの機能や動作につい
て説明します。
第 26 章 シリアル書込み接続例
この章では , 横河ディジタルコンピュータ製 AF220 フラッシュマイコンプログラマ
を用いた場合の , シリアル書込み接続例について説明します。
付録
付録として , I/O マップおよび命令一覧について記載しています。
iii
•
•
•
•
•
•
•
本資料の記載内容は , 予告なしに変更することがありますので , ご用命の際は営業部門にご確認くださ
い。
本資料に記載された動作概要や応用回路例は , 半導体デバイスの標準的な動作や使い方を示したもので ,
実際に使用する機器での動作を保証するものではありません。したがいまして , これらを使用するにあ
たってはお客様の責任において機器の設計を行ってください。これらの使用に起因する損害などについ
ては , 当社はその責任を負いません。
本資料に記載された動作概要・回路図を含む技術情報は , 当社もしくは第三者の特許権 , 著作権等の知的
財産権やその他の権利の使用権または実施権の許諾を意味するものではありません。また , これらの使用
について , 第三者の知的財産権やその他の権利の実施ができることの保証を行うものではありません。し
たがって , これらの使用に起因する第三者の知的財産権やその他の権利の侵害について , 当社はその責任
を負いません。
本資料に記載された製品は , 通常の産業用 , 一般事務用 , パーソナル用 , 家庭用などの一般的用途に使用
されることを意図して設計・製造されています。極めて高度な安全性が要求され , 仮に当該安全性が確保
されない場合 , 社会的に重大な影響を与えかつ直接生命・身体に対する重大な危険性を伴う用途 ( 原子力
施設における核反応制御 , 航空機自動飛行制御 , 航空交通管制 , 大量輸送システムにおける運行制御 , 生
命維持のための医療機器 , 兵器システムにおけるミサイル発射制御をいう ), ならびに極めて高い信頼性
が要求される用途 ( 海底中継器 , 宇宙衛星をいう ) に使用されるよう設計・製造されたものではありませ
ん。したがって , これらの用途にご使用をお考えのお客様は , 必ず事前に営業部門までご相談ください。
ご相談なく使用されたことにより発生した損害などについては , 責任を負いかねますのでご了承くださ
い。
半導体デバイスはある確率で故障が発生します。当社半導体デバイスが故障しても , 結果的に人身事故 ,
火災事故 , 社会的な損害を生じさせないよう , お客様は , 装置の冗長設計 , 延焼対策設計 , 過電流防止対策
設計 , 誤動作防止設計などの安全設計をお願いします。
本資料に記載された製品を輸出または提供する場合は , 外国為替及び外国貿易法および米国輸出管理関
連法規等の規制をご確認の上 , 必要な手続きをおとりください。
本書に記載されている社名および製品名などの固有名詞は , 各社の商標または登録商標です。
Copyright ©2006-2010 FUJITSU MICROELECTRONICS LIMITED All rights reserved.
iv
目次
第1章
1.1
1.2
1.3
1.4
1.5
1.6
1.7
1.8
1.9
1.10
第2章
2.1
概要 ............................................................................................................ 1
特長 ........................................................................................................................................ 2
品種構成 ................................................................................................................................. 5
ブロックダイヤグラム............................................................................................................ 7
外形寸法図.............................................................................................................................. 8
端子配列図.............................................................................................................................. 9
端子機能説明 ........................................................................................................................ 10
入出力回路形式 .................................................................................................................... 17
デバイスの取扱いに関する注意事項 .................................................................................... 20
クロック供給マップ ............................................................................................................. 23
低消費電力モードについて................................................................................................... 24
CPU.......................................................................................................... 25
CPU ...................................................................................................................................... 26
2.2 メモリ空間............................................................................................................................ 27
2.3 メモリマップ ........................................................................................................................ 29
2.4 アドレッシング .................................................................................................................... 31
2.4.1
リニア方式によるアドレス指定 ................................................................................. 32
2.4.2
バンク方式によるアドレス指定 ................................................................................. 33
2.5 多バイト長データのメモリ上の配置 .................................................................................... 35
2.6 レジスタ ............................................................................................................................... 37
2.7 専用レジスタ ........................................................................................................................ 38
2.7.1
アキュムレータ (A)..................................................................................................... 40
2.7.2
スタックポインタ (USP, SSP)................................................................................... 43
2.7.3
プロセッサステータス (PS) ....................................................................................... 46
2.7.4
コンディションコードレジスタ (PS:CCR) ................................................................ 47
2.7.5
レジスタバンクポインタ (PS:RP).............................................................................. 49
2.7.6
インタラプトレベルマスクレジスタ (PS:ILM)........................................................... 50
2.7.7
プログラムカウンタ (PC)........................................................................................... 51
2.7.8
ダイレクトページレジスタ (DPR) ............................................................................. 52
2.7.9
バンクレジスタ (PCB, DTB, USB, SSB, ADB) .......................................................... 53
2.8 汎用レジスタ ........................................................................................................................ 54
2.9 プリフィックスコード.......................................................................................................... 56
2.9.1
バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)........................................... 57
2.9.2
コモンレジスタバンクプリフィックス (CMR)........................................................... 59
2.9.3
フラグ変化抑止プリフィックス (NCC) ...................................................................... 60
2.9.4
プリフィックスコードに関する制約 .......................................................................... 61
第3章
3.1
3.2
3.3
3.4
3.5
3.6
リセット................................................................................................... 63
リセットの概要 .................................................................................................................... 64
リセット要因と発振安定待ち時間........................................................................................ 66
外部リセット端子 ................................................................................................................. 67
リセット動作 ........................................................................................................................ 68
リセット要因ビット ............................................................................................................. 70
リセットによる各端子の状態 ............................................................................................... 72
v
第4章
4.1
4.2
4.3
4.4
4.5
4.6
第5章
クロック................................................................................................... 73
クロックの概要 .................................................................................................................... 74
クロック発生部のブロックダイヤグラム ............................................................................. 75
クロック選択レジスタ (CKSCR).......................................................................................... 77
クロックモード .................................................................................................................... 80
発振安定待ち時間 ................................................................................................................. 84
振動子と外部クロックの接続 ............................................................................................... 85
低消費電力モード .................................................................................... 87
5.1 低消費電力モードの概要 ...................................................................................................... 88
5.2 低消費電力制御回路のブロックダイヤグラム...................................................................... 91
5.3 低消費電力モード制御レジスタ (LPMCR) ........................................................................... 93
5.4 CPU 間欠動作モード ............................................................................................................ 96
5.5 スタンバイモード ................................................................................................................. 97
5.5.1
スリープモード .......................................................................................................... 98
5.5.2
タイムベースタイマモード ...................................................................................... 100
5.5.3
時計モード ............................................................................................................... 102
5.5.4
ストップモード ........................................................................................................ 104
5.6 状態遷移図.......................................................................................................................... 106
5.7 スタンバイモード , リセット時の端子状態 ........................................................................ 108
5.8 低消費電力モード使用上の注意 ......................................................................................... 109
第6章
割込み .................................................................................................... 113
6.1 割込みの概要 ...................................................................................................................... 114
6.2 割込み要因と割込みベクタ................................................................................................. 116
6.3 割込み制御レジスタと周辺機能 ......................................................................................... 119
6.3.1
割込み制御レジスタ (ICR00 ∼ ICR15) .................................................................... 121
6.3.2
割込み制御レジスタの機能 ...................................................................................... 123
6.4 ハードウェア割込み ........................................................................................................... 126
6.4.1
ハードウェア割込みの動作 ...................................................................................... 129
6.4.2
割込み動作時の処理 ................................................................................................. 131
6.4.3
ハードウェア割込み使用手順................................................................................... 132
6.4.4
多重割込み ............................................................................................................... 133
6.4.5
ハードウェア割込み処理時間................................................................................... 135
6.5 ソフトウェア割込み ........................................................................................................... 137
6.6 拡張インテリジェント I/O サービス (EI2OS) による割込み............................................... 139
6.6.1
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD)........................ 141
6.6.2
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の各レジスタ
................................................................................................................................. 142
6.6.3
拡張インテリジェント I/O サービス (EI2OS) の動作 ............................................... 144
6.6.4
拡張インテリジェント I/O サービス (EI2OS) 使用手順............................................ 145
6.6.5
拡張インテリジェント I/O サービス (EI2OS) 処理時間............................................ 146
6.7 例外処理割込み .................................................................................................................. 149
6.8 割込み処理のスタック動作................................................................................................. 150
6.9 割込み処理のプログラム例................................................................................................. 152
第7章
7.1
7.2
モード設定 ............................................................................................. 155
モード設定の概要 ............................................................................................................... 156
モード端子 (MD2 ∼ MD0).................................................................................................. 157
vi
7.3
第8章
モードデータ ...................................................................................................................... 158
入出力ポート.......................................................................................... 161
8.1 入出力ポートの概要 ........................................................................................................... 162
8.2 入出力ポートのレジスタ説明 ............................................................................................. 164
8.3 ポート 0 .............................................................................................................................. 166
8.3.1
ポート 0 のレジスタ (PDR0, DDR0) ........................................................................ 167
8.3.2
ポート 0 の動作説明 ................................................................................................. 168
8.4 ポート 1 .............................................................................................................................. 170
8.4.1
ポート 1 のレジスタ (PDR1, DDR1) ........................................................................ 171
8.4.2
ポート 1 の動作説明 ................................................................................................. 172
8.5 ポート 2 .............................................................................................................................. 174
8.5.1
ポート 2 のレジスタ (PDR2, DDR2) ........................................................................ 175
8.5.2
ポート 2 の動作説明 ................................................................................................. 176
8.6 ポート 3 .............................................................................................................................. 178
8.6.1
ポート 3 のレジスタ (PDR3, DDR3) ........................................................................ 180
8.6.2
ポート 3 の動作説明 ................................................................................................. 181
8.7 ポート 4 .............................................................................................................................. 183
8.7.1
ポート 4 のレジスタ (PDR4, DDR4) ........................................................................ 184
8.7.2
ポート 4 の動作説明 ................................................................................................. 185
8.8 ポート 5 .............................................................................................................................. 187
8.8.1
ポート 5 のレジスタ (PDR5, DDR5) ........................................................................ 189
8.8.2
ポート 5 の動作説明 ................................................................................................. 190
8.9 ポート 6 .............................................................................................................................. 192
8.9.1
ポート 6 のレジスタ (PDR6, DDR6) ........................................................................ 194
8.9.2
ポート 6 の動作説明 ................................................................................................. 196
8.10 ポート 7 .............................................................................................................................. 198
8.10.1
ポート 7 のレジスタ (PDR7, DDR7) ........................................................................ 200
8.10.2
ポート 7 の動作説明 ................................................................................................. 202
8.11 ポート 8 .............................................................................................................................. 204
8.11.1
ポート 8 のレジスタ (PDR8, DDR8) ........................................................................ 206
8.11.2
ポート 8 の動作説明 ................................................................................................. 207
8.12 ポート 9 .............................................................................................................................. 209
8.12.1
ポート 9 のレジスタ (PDR9, DDR9) ........................................................................ 210
8.12.2
ポート 9 の動作説明 ................................................................................................. 211
8.13 入出力ポートのプログラム例 ............................................................................................. 212
第9章
シリアル I/O ........................................................................................... 213
9.1 シリアル I/O の概要 ............................................................................................................ 214
9.2 シリアル I/O のレジスタ..................................................................................................... 215
9.2.1
シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) .................... 216
9.2.2
シリアルシフトデータレジスタ (SDR0, SDR1)....................................................... 220
9.3 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) ..................................................... 221
9.4 シリアル I/O の動作 ............................................................................................................ 223
9.4.1
シフトクロック ........................................................................................................ 224
9.4.2
シリアル I/O の動作状態 .......................................................................................... 225
9.4.3
シフト動作のスタート / ストップタイミング .......................................................... 227
9.4.4
シリアル I/O の割込み機能 ....................................................................................... 229
vii
第 10 章
10.1
10.2
10.3
10.4
10.5
10.6
第 11 章
11.1
11.2
11.3
11.4
11.5
11.6
ウォッチドッグタイマ ........................................................................... 243
ウォッチドッグタイマの概要 ............................................................................................. 244
ウォッチドッグタイマ制御レジスタ (WDTC) .................................................................... 246
ウォッチドッグタイマの構成 ............................................................................................. 248
ウォッチドッグタイマの動作 ............................................................................................. 249
ウォッチドッグタイマ使用上の注意 .................................................................................. 251
ウォッチドッグタイマのプログラム例............................................................................... 252
第 12 章
12.1
12.2
12.3
12.4
タイムベースタイマ............................................................................... 231
タイムベースタイマの概要................................................................................................. 232
タイムベースタイマの構成................................................................................................. 234
タイムベースタイマ制御レジスタ (TBTC) ......................................................................... 235
タイムベースタイマの割込み ............................................................................................. 237
タイムベースタイマの動作説明 ......................................................................................... 238
タイムベースタイマ使用上の注意...................................................................................... 241
時計タイマ ............................................................................................. 253
時計タイマの概要 ............................................................................................................... 254
時計タイマの構成 ............................................................................................................... 255
時計タイマ制御レジスタ (WTC)......................................................................................... 256
時計タイマの動作 ............................................................................................................... 258
第 13 章
16 ビットリロードタイマ ...................................................................... 259
13.1 16 ビットリロードタイマの概要 ........................................................................................ 260
13.2 16 ビットリロードタイマの構成 ........................................................................................ 263
13.3 16 ビットリロードタイマの端子 ........................................................................................ 265
13.4 16 ビットリロードタイマのレジスタ................................................................................. 266
13.4.1
タイマコントロールステータスレジスタ上位 (TMCSR) ......................................... 267
13.4.2
タイマコントロールステータスレジスタ下位 (TMCSR) ......................................... 269
13.4.3
16 ビットタイマレジスタ (TMR).............................................................................. 271
13.4.4
16 ビットリロードレジスタ (TMRLR) ..................................................................... 272
13.5 16 ビットリロードタイマの割込み .................................................................................... 273
13.6 16 ビットリロードタイマの動作説明................................................................................. 274
13.6.1
内部クロックモード ( リロードモード )................................................................... 276
13.6.2
内部クロックモード ( ワンショットモード )............................................................ 279
13.6.3
イベントカウントモード .......................................................................................... 282
13.7 16 ビットリロードタイマ使用上の注意 ............................................................................. 284
第 14 章
入出力タイマ.......................................................................................... 285
14.1 入出力タイマの概要 ........................................................................................................... 286
14.2 入出力タイマのブロックダイヤグラム............................................................................... 287
14.3 入出力タイマのレジスタ一覧 ............................................................................................. 288
14.3.1
16 ビットフリーランタイマのレジスタ詳細説明..................................................... 290
14.3.2
インプットキャプチャのレジスタ詳細説明 ............................................................. 295
14.3.3
アウトプットコンペアのレジスタ詳細説明 ............................................................. 297
14.4 入出力タイマの割込み........................................................................................................ 301
14.4.1
16 ビットフリーランタイマの割込み....................................................................... 302
14.4.2
インプットキャプチャの割込み ............................................................................... 303
14.4.3
アウトプットコンペアの割込み ............................................................................... 304
viii
14.5 入出力タイマの動作説明 .................................................................................................... 305
14.5.1
16 ビットフリーランタイマ部 ................................................................................. 306
14.5.2
インプットキャプチャ ............................................................................................. 308
14.5.3
アウトプットコンペア ............................................................................................. 309
第 15 章
PPG タイマ ............................................................................................ 311
15.1 PPG タイマの概要.............................................................................................................. 312
15.2 PPG タイマのブロックダイヤグラム................................................................................. 313
15.3 PPG タイマのレジスタ ...................................................................................................... 314
15.3.1
PPG タイマのレジスタ詳細説明.............................................................................. 316
15.4 PPG タイマの動作説明 ...................................................................................................... 321
15.5 PPG タイマの使用上の注意 ............................................................................................... 324
15.6 PPG タイマの使用例 .......................................................................................................... 325
第 16 章
UART ..................................................................................................... 327
16.1 UART の概要 ...................................................................................................................... 328
16.2 UART の構成 ...................................................................................................................... 330
16.3 UART の端子 ...................................................................................................................... 332
16.4 UART のレジスタ ............................................................................................................... 333
16.4.1
制御レジスタ (SCR0/SCR1) .................................................................................... 334
16.4.2
モードレジスタ (SMR0/SMR1) ................................................................................ 337
16.4.3
ステータスレジスタ (SSR0/SSR1) .......................................................................... 339
16.4.4
インプットデータレジスタ (SIDR0/SIDR1), アウトプットデータレジスタ
(SODR0/SODR1) ..................................................................................................... 342
16.4.5
通信プリスケーラ制御レジスタ (CDCR0/CDCR1) .................................................. 344
16.5 UART の割込み................................................................................................................... 346
16.5.1
受信割込み発生とフラグセットのタイミング.......................................................... 348
16.5.2
送信割込み出力とフラグセットのタイミング.......................................................... 349
16.6 UART のボーレート ........................................................................................................... 350
16.6.1
専用ボーレートジェネレータによるボーレート ...................................................... 352
16.6.2
内部タイマによるボーレート................................................................................... 354
16.6.3
外部クロックによるボーレート ............................................................................... 356
16.7 UART の動作説明 ............................................................................................................... 357
16.7.1
非同期モード ( 動作モード 0, 1) 時の動作................................................................ 359
16.7.2
同期モード ( 動作モード 2) 時の動作 ....................................................................... 362
16.7.3
双方向通信機能 ( ノーマルモード ) .......................................................................... 364
16.7.4
マスタ / スレーブ型通信機能 ( マルチプロセッサモード )....................................... 366
16.8 UART 使用上の注意 ........................................................................................................... 369
第 17 章
DTP/ 外部割込み回路 ............................................................................. 371
17.1 DTP/ 外部割込み回路の概要............................................................................................... 372
17.2 DTP/ 外部割込み回路の構成............................................................................................... 373
17.3 DTP/ 外部割込み回路の端子............................................................................................... 375
17.4 DTP/ 外部割込み回路のレジスタ ....................................................................................... 376
17.4.1
DTP/ 外部割込み要因レジスタ (EIRR) ..................................................................... 377
17.4.2
DTP/ 外部割込み許可レジスタ (ENIR) ..................................................................... 380
17.4.3
要求レベル設定レジスタ (ELVR) ............................................................................. 382
17.5 DTP/ 外部割込み回路の動作説明 ....................................................................................... 384
17.5.1
外部割込み機能 ........................................................................................................ 387
ix
17.5.2
DTP 機能 .................................................................................................................. 388
17.6 DTP/ 外部割込み回路使用上の注意.................................................................................... 389
第 18 章
I2C インタフェース ................................................................................ 391
18.1 I2C インタフェースの概要.................................................................................................. 392
18.2 I2C インタフェースのブロックダイヤグラムと構成図 ...................................................... 393
18.3 I2C インタフェースのレジスタ .......................................................................................... 395
18.3.1
I2C ステータスレジスタ (IBSR) ............................................................................... 396
18.3.2
I2C コントロールレジスタ (IBCR)............................................................................ 398
18.3.3
I2C クロックコントロールレジスタ (ICCR) ............................................................. 403
18.3.4
I2C アドレスレジスタ (IADR)................................................................................... 406
18.3.5
I2C データレジスタ (IDAR) ...................................................................................... 407
18.4 I2C インタフェースの動作.................................................................................................. 408
18.4.1
I2C インタフェースの転送フロー............................................................................. 411
18.4.2
I2C インタフェースのモードフロー ......................................................................... 413
18.4.3
I2C インタフェースの動作フロー............................................................................. 414
第 19 章
8/10 ビット A/D コンバータ................................................................... 417
19.1 8/10 ビット A/D コンバータの概要 .................................................................................... 418
19.2 8/10 ビット A/D コンバータの構成 .................................................................................... 419
19.3 8/10 ビット A/D コンバータの端子 .................................................................................... 421
19.4 8/10 ビット A/D コンバータのレジスタ ............................................................................. 423
19.4.1
A/D 制御ステータスレジスタ 1(ADCS1).................................................................. 424
19.4.2
A/D 制御ステータスレジスタ 0(ADCS0).................................................................. 426
19.4.3
A/D データレジスタ (ADCR0/ADCR1)..................................................................... 428
19.4.4
A/D 変換チャネル設定レジスタ (ADMR).................................................................. 430
19.5 8/10 ビット A/D コンバータの割込み................................................................................. 432
19.6 8/10 ビット A/D コンバータの動作説明 ............................................................................. 433
19.6.1
EI2OS を使用した変換動作 ...................................................................................... 436
19.6.2
A/D 変換データ保護機能 .......................................................................................... 437
第 20 章
LCD コントローラ / ドライバ ................................................................ 439
20.1 LCD コントローラ / ドライバの概要 .................................................................................. 440
20.2 LCD コントローラ / ドライバの構成 .................................................................................. 441
20.2.1
LCD コントローラ / ドライバの内部分割抵抗 ......................................................... 443
20.2.2
LCD コントローラ / ドライバの外部分割抵抗 ......................................................... 445
20.3 LCD コントローラ / ドライバの端子 .................................................................................. 447
20.4 LCD コントローラ / ドライバのレジスタ........................................................................... 451
20.4.1
LCDC 制御レジスタ下位 (LCRL).............................................................................. 452
20.4.2
LCDC 制御レジスタ上位 (LCRH) ............................................................................. 454
20.4.3
LCDC 範囲レジスタ (LCRR) .................................................................................... 456
20.5 LCD コントローラ / ドライバの表示用 RAM...................................................................... 457
20.6 LCD コントローラ / ドライバの動作説明........................................................................... 461
20.6.1
LCD コントローラ / ドライバ動作時の出力波形 (1/2 デューティ ).......................... 463
20.6.2
LCD コントローラ / ドライバ動作時の出力波形 (1/3 デューティ ).......................... 466
20.6.3
LCD コントローラ / ドライバ動作時の出力波形 (1/4 デューティ ).......................... 469
第 21 章
時計クロック出力 .................................................................................. 473
21.1 時計クロック出力回路の概要 ............................................................................................. 474
x
21.2 時計クロック出力回路の構成 ............................................................................................. 475
21.3 時計クロック出力制御レジスタ (TMCS)............................................................................ 476
第 22 章
22.1
22.2
22.3
22.4
遅延割込み発生モジュール .................................................................... 479
遅延割込み発生モジュールの概要...................................................................................... 480
遅延割込み要因発生 / 解除レジスタ (DIRR)....................................................................... 481
遅延割込み発生モジュールの動作...................................................................................... 482
遅延割込み発生モジュールの使用上の注意 ....................................................................... 483
第 23 章
アドレス一致検出機能 ........................................................................... 485
23.1 アドレス一致検出機能の概要 ............................................................................................. 486
23.2 アドレス一致検出機能のレジスタ...................................................................................... 487
23.2.1
プログラムアドレス検出レジスタ (PADR0/PADR1) ............................................... 488
23.2.2
プログラムアドレス検出コントロールステータスレジスタ (PACSR) .................... 489
23.3 アドレス一致検出機能の動作説明...................................................................................... 490
23.4 アドレス一致検出機能の使用例 ......................................................................................... 491
第 24 章
ROM ミラー機能選択モジュール........................................................... 495
24.1 ROM ミラー機能選択モジュールの概要 ............................................................................ 496
24.2 ROM ミラー機能選択レジスタ (ROMM) ............................................................................ 497
第 25 章
2 M ビットフラッシュメモリ................................................................. 499
25.1 2 M ビットフラッシュメモリの概要 .................................................................................. 500
25.2 フラッシュメモリのレジスタとセクタ構成 ....................................................................... 501
25.3 フラッシュメモリ制御ステータスレジスタ (FMCS).......................................................... 502
25.4 フラッシュメモリ自動アルゴリズム起動方法.................................................................... 505
25.5 フラッシュメモリ書込み / 消去の詳細説明 ........................................................................ 506
25.5.1
フラッシュメモリを読出し / リセット状態にする ................................................... 507
25.5.2
フラッシュメモリへデータを書き込む .................................................................... 508
25.5.3
フラッシュメモリの全データを消去する ( チップ消去 ).......................................... 509
25.5.4
フラッシュメモリの任意のデータを消去する ( セクタ消去 ) .................................. 510
25.5.5
フラッシュメモリのセクタ消去を一時停止する ...................................................... 512
25.5.6
フラッシュメモリのセクタ消去を再開する ............................................................. 513
第 26 章
シリアル書込み接続例 ........................................................................... 515
26.1 シリアル書込み接続の基本構成 ......................................................................................... 516
26.2 シリアル書込み接続例........................................................................................................ 519
付録
付録 A
付録 B
B.1
B.2
B.3
B.4
B.5
B.6
B.7
B.8
............................................................................................................... 525
I/O マップ ...................................................................................................................... 526
命令 ............................................................................................................................... 532
命令の種類 .................................................................................................................. 533
アドレッシング ........................................................................................................... 534
直接アドレッシング.................................................................................................... 536
間接アドレッシング.................................................................................................... 543
実行サイクル数 ........................................................................................................... 550
実効アドレスフィールド ............................................................................................ 552
命令一覧表の読み方.................................................................................................... 554
F2MC-16LX 命令一覧表.............................................................................................. 557
xi
B.9
索引
命令マップ .................................................................................................................. 571
............................................................................................................... 593
xii
本版での主な変更内容
ページ
変更内容 ( 詳細は本文を参照してください。)
-
-
品種名を訂正
MB90802/S を削除
MB90F809/S を追加
5
第1章概要
1.2 品種構成
■ 品種構成
表 1.2-1 を 訂正。
7
1.3 ブロックダイヤグラム
■ ブロックダイヤグラム
図 1.3-1 を訂正。
MB90802S/803S, MB90F804-101: P90, P91 →
X0A, X1A: サブクロックあり
型格に S サフィックスなし /201 オプション
MB90802/803, MB90F804-201: X0A, X1A →
P90, P91: サブクロックなし
型格に S サフィックスあり /101 オプション
29
第 2 章 CPU
2.3 メモリマップ
■ メモリマップ
表を訂正。
MB90802/802S → MB90803/S, MB90F803/S
MB90803/803S → MB90F809/S
MB90V800 → MB90V800-101/201
0008FFH → 0010FFH
0010FFH → 0028FFH
FC0000H → FD0000H
30
<注意事項>を訂正。
("FF8000H" ∼ "FFFFFFH") → ("FF4000H" ∼ "FFFFFFH")
428
第 19 章 8/10 ビット A/D コ
ンバータ
19.4.3 A/D データレジスタ
(ADCR0/ADCR1)
■ A/D データレジスタ
(ADCR0/ADCR1)
532
付録 B 命令
538
B.3 直接アドレッシング
● I/O 直接 (io)
図 19.4-4 を訂正。
(φ=8MHz の場合 ,5.50μs) → ([email protected])
(φ=16MHz の場合 ,4.12μs) → ([email protected])
(φ=16MHz の場合 ,5.50μs) → ([email protected])
(φ=25MHz の場合 ,7.040μs) → ([email protected])
(φ=8MHz の場合 ,2.5μs) → ([email protected])
(φ=16MHz の場合 ,2.0μs) → ([email protected])
(φ=16MHz の場合 ,3.0μs) → ([email protected])
(φ=25MHz の場合 ,5.12μs) → ([email protected])
「付録 B 命令」全体を変更
図 B.3-5 を変更。
MOVW A, i : 0C0H → MOVW A, I:0C0H
図 B.3-5 に ( 注意事項 ) を追加。
539
B.3 直接アドレッシング
● 短縮直接アドレス (dir)
図 B.3-6 に ( 注意事項 ) を追加。
xiii
ページ
540
546
547
変更内容 ( 詳細は本文を参照してください。)
B.3 直接アドレッシング
● I/O 直接ビットアドレス
(io: bp)
図 B.3-8 を変更。
SETB i : 0C1H : 0 → SETB I:0C1H:0
図 B.3-8 に ( 注意事項 ) を追加。
B.3 直接アドレッシング
● 短縮直接ビットアドレス
(dir: bp)
図 B.3-9 に ( 注意事項 ) を追加。
B.4 間接アドレッシング
● プログラムカウンタ相対
分岐アドレス (rel)
説明を変更。
ディスプレースメント → オフセット
B.4 間接アドレッシング
● レジスタリスト (rlst)
図 B.4-9 を変更。
POPW, RW0, RW4 → POPW RW0, RW4
図 B.4-7 を変更。
BRA 10H → BRA 3C32H
実行後 PC : 3C20 → 3C32
xiv
ページ
572
573
変更内容 ( 詳細は本文を参照してください。)
B.9 命令マップ
■ 命令マップの構造
表 B.9-1 の命令欄を変更。
@RW2+d8, #8, rel → CBNE @RW2+d8, #8, rel
表 B.9-2 の E0 列 , +0 行 のオペランドを変更。
#4 → #vct4
表 B.9-2 の D0 列 , +0 行 のニーモニックを変更。
MOV → MOVN
表 B.9-2 の B0 列 , +0 行 のニーモニックを変更。
MOV → MOVX
表 B.9-2 の B0 列 , +8 行 のニーモニックを変更。
MOV → MOVW
575
表 B.9-4 の E0 列 , +0 行 のニーモニックを変更。
FILSI → FILSWI
576
表 B.9-5 の 70 列 , +A 行 のニーモニックを変更。
DIVU → DIV
577
表 B.9-6 の F0 列 , +E, +F 行 のオペランドを変更。
,#8, rel → #8, rel
580
表 B.9-9 の 20 列 , +0 ∼ +7 行 のオペランドを変更。
RWi → @RWi
581
表 B.9-10 の E0 列 , F0 列 のオペランドを変更。
,r → ,rel
582
表 B.9-11 の 70 列 のオペランドを変更。
NEG A, → NEG
583
表 B.9-12 の E0 列 , F0 列 のオペランドを変更。
,r → ,rel
591
表 B.9-20 を変更。
列「A」を「A0」に変更。
表 B.9-20 の+ A 行のオペランドを変更。
W2+d16,A → @RW2+d16
変更箇所は , 本文中のページ左側の│によって示しています。
xv
xvi
第1章
概要
MB90800 シリーズの特長と基本的な仕様について
説明します。
1.1
特長
1.2
品種構成
1.3
ブロックダイヤグラム
1.4
外形寸法図
1.5
端子配列図
1.6
端子機能説明
1.7
入出力回路形式
1.8
デバイスの取扱いに関する注意事項
1.9
クロック供給マップ
1.10 低消費電力モードについて
1
第 1 章 概要
1.1
特長
MB90800 シリーズは , 各種産業用 , OA 機器用 , プロセス制御などに適した高速リア
ルタイム処理が要求される用途向けに開発された汎用の 16 ビットマイクロコント
ローラです。48 セグメント 4 コモンの LCD コントローラを内蔵しています。
命令体系は , F2MC-8L, F2MC16L と同じく AT アーキテクチャを継承し , 高級言語対
応・アドレッシングモードの拡張・符号付き乗除算命令の強化・ビット処理の充実
化を図っています。さらに , 32 ビットアキュムレータの搭載により , ロングワード
処理が可能です。
■ MB90800 シリーズの特長
● クロック
• PLL クロック逓倍回路内蔵
• 原発振の 2 分周もしくは原発振の 1 逓倍∼ 4 逓倍 ( 原発振 6.25 MHz 時 , 6.25 MHz ∼
25 MHz) の動作クロック (PLL クロック ) を選択可能
• 最小命令実行時間, 40.0 ns(原発振6.25 MHz, PLLクロック4逓倍, VCC=3.3 V動作時)
● 最大メモリ空間 :16 M バイト
• 内部は 24 ビットアドレッシング
• バンクアドレッシング
● コントローラ用途に最適な命令体系
• 豊富なデータタイプ ( ビット , バイト , ワード , ロングワード )
• 豊富なアドレッシングモード (23 種類 )
• 高いコード効率
• 32 ビットアキュムレータの採用による高精度演算の強化
• 符号付き乗除算命令 , RETI 命令機能強化
● 高級言語 (C 言語 )/ マルチタスクに対応する命令体系
• システムスタックポインタの採用
• 命令セットの対称性とバレルシフト命令
● プログラムパッチ機能 (2 アドレスポインタ )
● 実行速度の向上
4 バイトの命令キュー
● 強力な割込み機能 ( プライオリティレベルがプログラマブルに 8 レベル設定可能 )
32 要因の強力な割込み機能
2
第 1 章 概要
■ MB90800 シリーズの内部周辺機能 ( リソース )
● データ転送機能 ( 拡張インテリジェント I/O サービス機能 : 最大 16 チャネル )
● 低消費電力 ( スタンバイモード )
• スリープモード (CPU 動作クロックを停止するモード )
• タイムベースタイマモード ( 発振クロックとサブクロック , タイムベースタイマと
時計タイマのみ動作させるモード )
• 時計タイマモード ( サブクロックと時計タイマのみ動作させるモード )
• ストップモード ( 発振クロックとサブクロックを停止するモード )
• CPU 間欠動作モード
● パッケージ
QFP-100(FPT-100P-M06:0.65 mm ピンピッチ )
● プロセス :CMOS テクノロジ
● I/O ポート : 最大 68 本 ( サブクロック未使用時は 70 本 )
● タイムベースタイマ
● ウォッチドッグタイマ
● 時計タイマ
● LCD コントローラ
48 セグメント 4 コモン
● 8/10 ビット A/D コンバータ (12 チャネル )
8 ビット 分解能または 10 ビット分解能が設定できます。
● 多機能タイマ
• 16 ビット フリーランタイマ :1 チャネル
• 16 ビットアウトプットコンペア :2 チャネル
• 16 ビットフリーランタイマのカウント値とアウトプットコンペアレジスタへの設定
値が一致した場合 , 割込み要求を出力させることができます。
• 16 ビット インプットキャプチャ :2 チャネル
• 外部入力端子から入力された信号の有効エッジを検出することにより , 16 ビットフ
リーランタイマのカウント値をインプットキャプチャデータレジスタに取り込み ,
割込み要求を出力させることができます。
• 16 ビット PPG タイマ :2 チャネル
• 16 ビット リロードタイマ :3 チャネル
● UART:2 チャネル
● I/O 拡張シリアルインタフェース :2 チャネル
3
第 1 章 概要
● DTP/ 外部割込み回路 (4 チャネル )
• 外部割込み入力による拡張インテリジェント I/O サービスの起動
• 外部割込み入力による割込み出力
● 時計クロック出力回路
● 遅延割込み出力モジュール
タスク切換え用の割込み要求を出力
● I2C インタフェース :1 チャネル
4
第 1 章 概要
1.2
品種構成
表 1.2-1 に , MB90800 シリーズ品種構成一覧を示します。
■ 品種構成
表 1.2-1 MB90800 シリーズ品種構成一覧 (1 / 2)
品種名
特長
MB90V800- MB90F804101/201
101/201
評価用品
フラッシュ
メモリ品
MB90803/
MB90803S
マスク ROM 品
MB90F803/
MB90F803S
MB90F809/
MB90F809S
フラッシュメモリ品
システムクロック
オンチップ PLL クロック逓倍方式 ( × 1, × 2, × 3, × 4, PLL 停止時 1/2),
最小命令実行時間 40.0 ns (6.25 MHz 原発振 4 逓倍 )
サブクロック
サブクロックあり:
201 オプション
サブクロックなし:
101 オプション
ROM
搭載なし
256 K バイト
サブクロックあり:
型格に S サフィックスがない製品
サブクロックなし:
型格に S サフィックスがある製品
128 K バイト
128 K バイト
192 K バイト
デュアル
オペレーション
RAM
28 K バイト 16 K バイト
CPU 機能
基本命令 :351 命令
最小命令実行時間 :40.0 ns/6.25 MHz 発振
(4 逓倍使用時:マシンクロック 25 MHz)
アドレッシング種類 :23 種類
プログラムパッチ機能:2 アドレスポインタ分
最大メモリ空間 :16 M バイト
ポート
入出力ポート (CMOS):68 本 ( リソース兼用 ) ,
( サブクロック未使用時は 70 本 )
LCD コントローラ /
ドライバ
LCD パネル ( 液晶表示 ) を直接駆動可能なセグメントドライバ , および
コモンドライバ 48 セグメント× 4 コモン
16 ビット
フリーラン
タイマ
入出力
タイマ
4 K バイト
4 K バイト
10 K バイト
1 チャネル
オーバフロー割込み
アウトプット 2 チャネル
コンペア
端子入力要因:アウトプットコンペアレジスタの一致信号による
インプット
キャプチャ
16 ビット リロードタイマ
2 チャネル
端子入力 ( 立上り / 立下り / 両エッジ ) によるレジスタの書換え
16 ビットリロードタイマ動作 ( トグル出力 , ワンショット出力選択可能 )
イベントカウント機能選択可能
3 チャネル内蔵
5
第 1 章 概要
表 1.2-1 MB90800 シリーズ品種構成一覧 (2 / 2)
品種名
MB90V800- MB90F804101/201
101/201
MB90803/
MB90803S
MB90F803/
MB90F803S
16 ビット PPG タイマ
出力端子× 2 本
動作クロック周波数:fcp ∼ fcp/27(8 種類 )
2 チャネル内蔵
時計クロック 出力回路
外部入力クロックの 16/32/64/128 分周を外部出力可能
I2C バス
I2C インタフェース 1 チャネル内蔵
MB90F809/
MB90F809S
12 チャネル ( 入力マルチプレックス )
8/10 ビット A/D コンバータ 8 ビット分解能または 10 ビット分解能が設定可能
変換時間:5.9 μs ( マシンクロック 16.8 MHz 動作している場合 )
UART
全二重ダブルバッファ方式
非同期 / 同期転送 ( スタート / ストップビット付き ) をサポート
2 チャネル内蔵
I/O 拡張シリアル
インタフェース
2 チャネル内蔵
遅延割込み
1 チャネル
DTP/ 外部割込み
4 チャネル
割込み要因:"L" → "H" エッジ /"H" → "L" エッジ /"L" レベル /
"H" レベル選択可能
低消費電力モード
スリープモード / タイムベースタイマモード / 時計モード /
ストップモード /CPU 間欠モード
プロセス
CMOS
動作電圧
3.3 V ± 0.3 V
エミュレータ専用電源 *
あり
−
*:エミュレータ (MB2147-01) をご使用いただく際のジャンパスイッチ (TOOL VCC) の設定です。
詳細につきましては , MB2147-01 または MB2147-20 ハードウェアマニュアル (「3.3 エミュレータ専
用電源切換え」) を参照してください。
6
第 1 章 概要
1.3
ブロックダイヤグラム
図 1.3-1 に , ブロックダイヤグラムを示します。
■ ブロックダイヤグラム
図 1.3-1 ブロックダイヤグラム
X0, X1
X0A*, X1A*
RST
クロック
制御回路
ポート
12
割込みコントローラ
10ビット
A/Dコンバータ
0
ポート
P10~P17/SEG20~SEG27
8
外部割込み
(4チャネル)
ポート
8
ポート
P00~P07/SEG12~SEG19
ROM/Flash (128/256 Kバイト)
8
SEG0~SEG11
RAM (2/4/16/28 Kバイト)
LCDコントローラ/
ドライバ
F2MC-16LX バス
V0/P80
V1/P81
V2/P82
V3
COM0
COM1
P83/COM2
P84/COM3
CPU
F2MC-16LXコア
6
P60/AN0
P61/AN1
P62/AN2
P63/AN3
P64/AN4
P65/AN5/INT0
P66/AN6/INT1
P67/AN7/INT2
1
I2C
7
2
シリアルI/O 2/3
3
プリスケーラ2/3
OCU0/1
フリーランタイマ
4
ICU0/1
時計クロック出力
P90*
P91*
9
*: X0A, X1AとP90, P91はオプション
による切換え式となります。
X0A, X1A:サブクロックあり
型格にSサフィックスなし/201オプション
P90, P91:サブクロックなし
型格にSサフィックスあり/101オプション
リロードタイマ
0/1/2
ポート
P50/SEG44/TIN0
P51/SEG45/TIN1
P52/SEG46/TIN2/PPG0
P53/SEG47/PPG1
P54/SI0
P55/SC0
P56/SO0
P57/SI1
ポート
P40/LED0
P41/LED1
P42/LED2
P43/LED3
P44/LED4
P45/LED5/TOT0
P46/LED6/TOT1
P47/LED7/TOT2
ポート
ポート
P30/SEG36/SO3
P31/SEG37/SC3
P32/SEG38/SI3
P33/SEG39/TMCK
P34/SEG40/IC0
P35/SEG41/IC1
P36/SEG42/OCU0
P37/SEG43/OCU1
ポート
8
ポート
P20~P27/SEG28~SEG35
P70/AN8/INT3
P71/AN9/SC1
P72/AN10/SO1
P73/AN11/SI2
P74/SDA/SC2
P75/SCL/SO2
P76
PPG0/1
(注意)評価用デバイス(MB90V800)の仕様
内蔵ROMはありません。
内蔵RAMは28Kバイトとなります。
UART0/1
5
プリスケーラ0/1
7
第 1 章 概要
外形寸法図
1.4
MB90800 シリーズのパッケージ外形寸法図を示します。
■ FPT-100P-M06 の外形寸法図
プラスチック・QFP, 100 ピン
リードピッチ
0.65mm
パッケージ幅×
パッケージ長さ
14.00 × 20.00mm
リード形状
ガルウィング
封止方法
プラスチックモールド
取付け高さ
3.35mm MAX
コード(参考)
P-QFP100-14×20-0.65
(FPT-100P-M06)
プラスチック・QFP, 100 ピン
(FPT-100P-M06)
注 1)* 印寸法はレジン残りを含まず。
注 2)端子幅および端子厚さはメッキ厚を含む。
注 3)端子幅はタイバ切断残りを含まず。
23.90±0.40(.941±.016)
* 20.00±0.20(.787±.008)
80
51
81
50
0.10(.004)
17.90±0.40
(.705±.016)
*14.00±0.20
(.551±.008)
INDEX
Details of "A" part
100
0.25(.010)
+0.35
3.00 –0.20
+.014
.118 –.008
(Mounting height)
0~8˚
31
1
30
0.65(.026)
0.32±0.05
(.013±.002)
0.13(.005)
M
0.17±0.06
(.007±.002)
"A"
©2002-2008 FUJITSU MICROELECTRONICS LIMITED F100008S-c-5-6
C
2002 FUJITSU LIMITED F100008S-c-5-5
最新の外形寸法図については , 下記の URL にてご確認ください。
http://edevice.fujitsu.com/package/jp-search/
8
0.80±0.20
(.031±.008)
0.88±0.15
(.035±.006)
0.25±0.20
(.010±.008)
(Stand off)
単位:mm (inches)
注意:括弧内の値は参考値です。
第 1 章 概要
1.5
端子配列図
図 1.5-1 に , 端子配列図を示します。
■ 端子配列図
図 1.5-1 端子配列図
P04/SEG16 81
P05/SEG17 82
P06/SEG18 83
P07/SEG19 84
P10/SEG20 85
P11/SEG21 86
P12/SEG22 87
P13/SEG23 88
P14/SEG24 89
90
VCC
91
VSS
X1 92
X0 93
P15/SEG25 94
P16/SEG26 95
P17/SEG27 96
P20/SEG28 97
P21/SEG29 98
P22/SEG30 99
P23/SEG31 100
P24/SEG32
P25/SEG33
P26/SEG34
P27/SEG35
P30/SEG36/SO3
P31/SEG37/SC3
P32/SEG38/SI3
P33/SEG39/TMCK
P34/SEG40/IC0
P35/SEG41/IC1
P36/SEG42/OCU0
P37/SEG43/OCU1
X0A/P90 *
X1A/P91 *
VCC
VSS
P40/LED0
P41/LED1
P42/LED2
P43/LED3
P44/LED4
P45/LED5/TOT0
P46/LED6/TOT1
P47/LED7/TOT2
P50/SEG44/TIN0
P51/SEG45/TIN1
P52/SEG46/TIN2/PPG0
P53/SEG47/PPG1
P54/SI0
P55/SC0
80
79
78
77
76
75
74
73
72
71
70
69
68
67
66
65
64
63
62
61
60
59
58
57
56
55
54
53
52
51
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
P03/SEG15
P02/SEG14
P01/SEG13
P00/SEG12
SEG11
SEG10
SEG9
SEG8
SEG7
SEG6
SEG5
SEG4
SEG3
SEG2
VSS
VCC
SEG1
SEG0
P84/COM3
P83/COM2
COM1
COM0
V3
V2/P82
V1/P81
V0/P80
RST
MD0
MD1
MD2
50
49
48
47
46
45
44
43
42
41
40
39
38
37
36
35
34
33
32
31
P75/SCL/SO2
P74/SDA/SC2
P73/AN11/SI2
P72/AN10/SO1
P71/AN9/SC1
P70/AN8/INT3
VSS
P67/AN7/INT2
P66/AN6/INT1
P65/AN5/INT0
P64/AN4
P63/AN3
P62/AN2
P61/AN1
P60/AN0
AVSS
P76
P57/SI1
AVCC
P56/SO0
*: X0A, X1A と P90, P91 はオプションによる切換え式となります。
X0A, X1A:サブクロックあり 型格に S サフィックスなし /201 オプション
P90, P91:サブクロックなし 型格に S サフィックスあり /101 オプション
9
第 1 章 概要
1.6
端子機能説明
表 1.6-1 に , 端子機能説明を示します。
■ 端子機能説明
表 1.6-1 端子機能説明 (1 / 7)
端子番号
端子名
回路形式
QFP
92, 93
リセット時の
状態 / 機能
機能説明
X0, X1
A
発振状態
振動子を接続する端子です。
外部クロックを接続する場合は X1 端子側を
開放してください。
X0A, X1A
B
発振状態
サブクロック用発振端子です (32 kHz)。
(2 系統クロック品の場合 )
P90, P91
G
ポート入力
(Hi-Z)
汎用入出力ポートです。
(1 系統クロック品の場合 )
MD2
M
モード端子
動作モード指定用の入力端子です。
VSS に直結してください。
MD1, MD0
L
モード端子
動作モード指定用の入力端子です。
VCC に直結してください。
RST
K
リセット入力
外部リセット入力端子です。
SEG0 ∼
SEG11
D
LCD SEG
出力
LCD コントローラ / ドライバのセグメント
出力端子です。
13, 14
51
52, 53
54
63, 64,
67 ∼ 72,
73 ∼ 76
77 ∼ 84
SEG12 ∼
SEG19
LCD コントローラ / ドライバのセグメント
出力端子です。
E
P00 ∼ P07
85 ∼ 89,
94 ∼ 96
97 ∼ 100,
1∼4
SEG20 ∼
SEG27
E
ポート入力
(Hi-Z)
LCD コントローラ / ドライバのセグメント
出力端子です。
P10 ∼ P17
汎用入出力ポートです。
SEG28 ∼
SEG35
LCD コントローラ / ドライバのセグメント
出力端子です。
P20 ∼ P27
10
汎用入出力ポートです。
E
汎用入出力ポートです。
第 1 章 概要
表 1.6-1 端子機能説明 (2 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
LCD コントローラ / ドライバのセグメント
出力端子です。
SEG36
P30
5
汎用入出力ポートです。
E
SO3
シリアル I/O ch.3 のシリアルデータ出力端子
です。
シリアル I/O ch.3 のシリアルデータ出力許可
の場合に有効です。
SEG37
LCD コントローラ / ドライバのセグメント
出力端子です。
P31
6
汎用入出力ポートです。
E
SC3
シリアル I/O ch.3 のシリアルクロック入出力
端子です。
シリアル I/O ch.3 のシリアルクロック出力許
可の場合に有効です。
SEG38
LCD コントローラ / ドライバのセグメント
出力端子です。
ポート入力
(Hi-Z)
P32
7
8
9, 10
機能説明
E
汎用入出力ポートです。
SI3
シリアル I/O ch.3 のシリアルデータ入力端子
です。
シリアル I/O ch.3 が入力動作中には 随時使
用していますので , ほかの端子として使用
しないでください。
SEG39
LCD コントローラ / ドライバのセグメント
出力端子です。
P33
E
汎用入出力ポートです。
TMCK
時計クロック出力端子です。
出力許可の場合に有効です。
SEG40,
SEG41
LCD コントローラ / ドライバのセグメント
出力端子です。
P34, P35
IC0, IC1
E
汎用入出力ポートです。
インプットキャプチャ ch.0/ch.1 の外部トリ
ガ入力端子です。
11
第 1 章 概要
表 1.6-1 端子機能説明 (3 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
SEG42,
SEG43
11, 12
P36, P37
LCD コントローラ / ドライバのセグメント
出力端子です。
E
汎用入出力ポートです。
OCU0, OCU1
17 ∼ 21
22 ∼ 24
LED0 ∼
LED4
アウトプットコンペアの出力端子です。
LED 用 出力端子です (IOL=15 mA)。
F
P40 ∼ P44
汎用入出力ポートです。
LED5 ∼
LED7
LED 用 出力端子です (IOL=15 mA)。
P45 ∼ P47
汎用入出力ポートです。
F
TOT0 ∼
TOT2
ポート入力
(Hi-Z)
SEG44,
SEG45
25, 26
P50,
P51
E
リロードタイマ ch.0 ∼ ch.2 の外部イベント
出力端子です。
外部イベント出力許可の場合に有効です。
LCD コントローラ / ドライバのセグメント
出力端子です。
汎用入出力ポートです。
TIN0,
TIN1
リロードタイマ ch.0, ch.1 の外部クロック入
力端子です。
外部クロック入力許可の場合に有効です。
SEG46
LCD コントローラ / ドライバのセグメント
出力端子です。
P52
汎用入出力ポートです。
27
12
機能説明
E
TIN2
リロードタイマ ch.2 の外部クロック入力端
子です。
外部クロック入力許可の場合に有効です。
PPG0
PPG タイマ ch.0 出力端子です。
第 1 章 概要
表 1.6-1 端子機能説明 (4 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
LCD コントローラ / ドライバのセグメント
出力端子です。
SEG47
28
P53
E
汎用入出力ポートです。
PPG1
PPG タイマ ch.1 出力端子です。
SI0
UART ch.0 のシリアルデータ入力端子です。
UART ch.0 が入力動作中には随時使用して
いますので , ほかの端子として使用しない
でください。
29
G
P54
汎用入出力ポートです。
SC0
UART ch.0 のシリアルクロック入出力端子
です。
UART ch.0 のシリアルクロック出力許可の
場合に有効です。
30
G
ポート入力
(Hi-Z)
P55
汎用入出力ポートです。
SO0
UART ch.0 のシリアルデータ出力端子です。
UART ch.0 のシリアルデータ出力許可の場
合に有効です。
31
G
P56
汎用入出力ポートです。
SI1
UART ch.1 のシリアルデータ入力端子です。
UART ch.1 が入力動作中には随時使用して
いますので , ほかの端子として使用しない
でください。
33
G
P57
34
機能説明
P76
汎用入出力ポートです。
G
汎用入出力ポートです。
13
第 1 章 概要
表 1.6-1 端子機能説明 (5 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
A/D コンバータのアナログ入力端子 ch.0 ∼
ch.4 です。アナログ入力設定が許可の場合に
有効です (ADER で設定 ) 。
AN0 ∼ AN4
I
36 ∼ 40
41 ∼ 43
P60 ∼ P64
汎用入出力ポートです。
AN5 ∼ AN7
A/D コンバータのアナログ入力端子 ch.5 ∼
ch.7 です。アナログ入力設定が許可の場合に
有効です (ADER で設定 ) 。
P65 ∼ P67
I
汎用入出力ポートです。
INT0 ∼
INT2
外部割込み ch.0 ∼ ch.2 入力端子として機能
します。
AN8
A/D コンバータのアナログ入力端子 ch.8 で
す。アナログ入力設定が許可の場合に有効
です (ADER で設定 ) 。
45
I
P70
汎用入出力ポートです。
アナログ入力
(Hi-Z)
INT3
47
P71
I
汎用入出力ポートです。
SC1
UART ch.1 のシリアルクロック入出力端子
です。
UART ch.1 のシリアルクロック出力許可の
場合に有効です。
AN10
A/D コンバータのアナログ入力端子 ch.10 で
す。アナログ入力設定が許可の場合に有効
です (ADER で設定 ) 。
P72
SO1
14
外部割込み ch.3入力端子として機能します。
A/D コンバータのアナログ入力端子 ch.9 で
す。アナログ入力設定が許可の場合に有効
です (ADER で設定 ) 。
AN9
46
機能説明
I
汎用入出力ポートです。
UART ch.1 のシリアルデータ出力端子です。
UART ch.1 のシリアルデータ出力許可の場
合に有効です。
第 1 章 概要
表 1.6-1 端子機能説明 (6 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
A/D コンバータのアナログ入力端子 ch.11 で
す。アナログ入力設定が許可の場合に有効
です (ADER で設定 ) 。
AN11
P73
48
49
I
アナログ入力
(Hi-Z)
SI2
SDA
I2C インタフェースのデータ入出力端子で
す。この機能は , I2C インタフェースが動作
許可の場合に有効となります。I2C インタ
フェースが動作している間はポートを入力
設定としてください。
P74
H
汎用入出力ポートです
( ただし , N-ch オープン ドレイン ) 。
ポート入力
(Hi-Z)
SCL
P75
H
J
LCD 駆動
電源入力
P80 ∼ P82
COM0,
COM1
COM2, COM3
LCD コントローラ / ドライバの基準電源端
子です。
汎用入出力ポートです。
D
LCD COM
出力
E
ポート入力
(Hi-Z)
P83, P84
61, 62
I2Cインタフェースのクロック入出力端子で
す。この機能は I2C インタフェースが動作許
可の場合に有効となります。I2C が動作して
いる間はポートを入力設定としてくださ
い。
シリアル I/O ch.2 のシリアルデータ出力端子
です。
シリアル I/O ch.2 のシリアルデータ出力許可
の場合に有効です。
V0 ∼ V2
55 ∼ 57
シリアル I/O ch.2 のシリアルクロック入出力
端子です。
シリアル I/O ch.2 のシリアルクロック出力許
可の場合に有効です。
汎用入出力ポートです
( ただし , N-ch オープン ドレイン ) 。
SO2
59, 60
汎用入出力ポートです。
シリアル I/O ch.2 のシリアルデータ入力端子
です。
シリアル I/O ch.2 が入力動作中には 随時使
用していますので , ほかの端子として使用
しないでください。
SC2
50
機能説明
LCD コントローラ / ドライバのコモン出力
端子です。
汎用入出力ポートです。
LCD コントローラ / ドライバのコモン出力
端子です。
15
第 1 章 概要
表 1.6-1 端子機能説明 (7 / 7)
端子番号
端子名
回路形式
QFP
リセット時の
状態 / 機能
機能説明
32
AVCC
C
A/D コンバータの専用電源入力端子です。
35
AVSS
C
A/D コンバータの専用 GND 電源端子です。
58
V3
J
15, 65, 90
VCC
―
電源入力端子です。
16, 44,
66, 91
VSS
―
GND 電源端子です。
16
電源入力
LCD コントローラ / ドライバの基準電源端
子です。
第 1 章 概要
入出力回路形式
1.7
表 1.7-1 に , 入出力回路形式について示します。
■ 入出力回路形式
表 1.7-1 入出力回路形式 (1 / 3)
分類
A
回路
備考
・発振帰還抵抗 約 1 MΩ
X1
P-ch N-ch
クロック入力
X0
スタンバイ制御信号
B
・低速用発振帰還抵抗 約 10 MΩ
X1A
P-ch N-ch
クロック入力
X0A
スタンバイ制御信号
C
・アナログ電源入力保護回路
P-ch
アナログ入力
N-ch
D
・LCDC 出力
P-ch
R
LCDC出力
N-ch
17
第 1 章 概要
表 1.7-1 入出力回路形式 (2 / 3)
分類
回路
備考
E
P-ch
Pout
N-ch
Nout
・CMOS 出力
・LCDC 出力
・ヒステリシス入力
( スタンバイ時入力遮断機能付き )
R
LCDC出力
R
入力信号
スタンバイ制御
信号
F
P-ch
Pout
N-ch
Nout
・CMOS 出力
(LED 駆動用大電流 IOL=15 mA)
・ヒステリシス入力
( スタンバイ時入力遮断機能付き )
R
入力信号
スタンバイ制御
信号
G
P-ch
Pout
N-ch
Nout
R
入力信号
・CMOS 出力
・ヒステリシス入力
( スタンバイ時入力遮断機能付き )
( 注意事項 )
入出力ポートの出力と内蔵リソースの
出力は , 1 つの出力バッファを共有して
います。
入出力ポートの入力と , 内蔵リソースの
入力は , 1 つの入力バッファを共有して
います。
スタンバイ制御
信号
H
P-ch
Nout
R
ヒステリシス入力
スタンバイ制御
18
・ヒステリシス入力
( スタンバイ時入力遮断機能付き )
・N-ch オープンドレイン出力
第 1 章 概要
表 1.7-1 入出力回路形式 (3 / 3)
分類
回路
備考
I
P-ch
Pout
N-ch
Nout
R
入力信号
スタンバイ制御信号
A/Dコンバータ
アナログ入力
J
P-ch
Pout
N-ch
Nout
CMOS 出力
CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
・アナログ入力
(アナログ入力許可レジスタ(ADER)の対
応するビットが "1" の場合は , A/D コン
バータのアナログ入力が有効になりま
す。)
( 注意事項 )
入出力ポートの出力と , 内蔵リソースの
出力は , 1 つの出力バッファを共有し て
います。
入出力ポートの入力と , 内蔵リソースの
入力は , 1 つの入力バッファを共有して
います。
CMOS 出力
CMOS ヒステリシス入力
( スタンバイ時入力遮断機能付き )
・LCD 駆動電源入力
R
入力信号
スタンバイ制御信号
LCD駆動電源
K
プルアップ抵抗付き CMOS ヒステリシス
入力
・抵抗値 約 50 kΩ
R
R
リセット入力
L
CMOS ヒステリシス入力端子
R
入力
M
R
入力
CMOS ヒステリシス入力端子
・プルダウン抵抗 約 50 kΩ
( フラッシュメモリ品を除く )
R
19
第 1 章 概要
1.8
デバイスの取扱いに関する注意事項
デバイスを取り扱う際には , 以下の項目に関して注意が必要です。
・最大定格電圧の厳守 ( ラッチアップの防止 )
・供給電圧の安定化
・未使用入力端子の処理
・外部クロックを使用する場合の注意について
・電源端子について
・水晶発振回路について
・A/D コンバータの電源アナログ入力の投入順序について
・A/D コンバータを使用しない場合の端子処理
・LCD 未使用時の端子処理について
■ 最大定格電圧の厳守 ( ラッチアップの防止 )
• CMOS IC では , 中・高耐圧以外の入力端子や出力端子に VCC より高い電圧や VSS よ
り低い電圧が印加された場合 , または VCC と VSS との間に定格を超える電圧が印加
された場合 , ラッチアップ現象を発生することがあります。
• ラッチアップが起きた場合 , 電源電流が激増し , 素子の熱破壊に至る場合がありま
すので , 使用に際しては最大定格を超えないように注意してください。
• アナログ電源投入または切断する場合は , アナログ電源 (AVCC) とアナログ入力電圧
は , デジタル電源電圧 (VCC) を超えないように注意してください。
■ 供給電圧の安定化
VCC 電源電圧の動作保証範囲内においても , 電源電圧が急激に変化した場合は , 誤動作
を起こしますので , VCC 電源電圧を安定させてください。
安定化の基準としては , 商用周波数 (50 Hz ∼ 60 Hz) での VCC リプル変動 (Peak to Peak 値 )
を標準 VCC 電源電圧値の 10% 以下に , また , 電源の切換えを行う場合の瞬時変化におい
ては , 過渡変動率が 0.1 V/ms 以下になるように電源電圧を安定させてください。
■ 未使用入力端子の処理
使用していない入力端子を開放のままにした場合 , 誤動作およびラッチアップによる
永久破壊の原因となることがありますので , 2 kΩ 以上の抵抗を介してプルアップ また
はプルダウンの処置をしてください。また , 使用していない入出力端子がある場合は , 出
力状態に設定して開放するか , 入力状態に設定して入力端子と同じ処置をしてくださ
い。
20
第 1 章 概要
■ 外部クロックを使用する場合の注意について
外部クロックを使用する場合は , X0 端子のみを駆動し , X1 端子は開放してください。
外部クロック使用例を下図に示します。
X0
MB90800シリーズ
開放
X1
サブクロックモードを使用しない場合は , X0A=GND, X1A= 開放としてください。
使用例を下図に示します。
X0A
MB90800シリーズ
開放
X1A
■ 電源端子について
• VCC, VSS が複数ある場合 , デバイス設計上はラッチアップなどの誤動作を防止する
ために , 同電位にすべき端子はデバイス内部で接続してありますが , 不要輻射の低
減 , グランドレベルの上昇によるストローブ信号の誤動作防止 , 総出力電流規格を
守るために , 必ず VCC, VSS 端子を電源およびグランドへ接続してください。
• 電流供給源から低いインピーダンスで MB90800 シリーズのデバイスに VCC, VSS を
接続するようにしてください。
• MB90800 シリーズのデバイスに電源ノイズ対策として , VCC と VSS 端子付近で VCC
と VSS との間に 0.1μF 程度のコンデンサをバイパスコンデンサとして接続してくだ
さい。
■ 水晶発振回路について
X0, X1 端子へのノイズは , MB90800 シリーズのデバイスに対して誤動作の原因となり
ます。X0, X1 端子および水晶振動子 ( あるいはセラミック振動子 ), グランドへのバイ
パスコンデンサは , X0, X1 端子の近くに , また , X0, X1 端子の配線は , ほかの配線と交
差しないようにプリント基板を設計してください。
X0, X1 端子の回りをグランドで囲むようなプリント基板アートワークは , 安定した動
作が期待できます。
各量産品において , ご使用される発振子メーカに発振評価依頼をしてください。
■ A/D コンバータの電源アナログ入力の投入順序について
• A/D コンバータの電源端子 (AVCC), およびアナログ入力端子 (AN0 ∼ AN11) への電
圧印加は , 必ずデジタル電源端子 (VCC) へ電圧を印加した後に行ってください。
• 電源を切断する場合は , A/D コンバータの電源およびアナログ入力を切断した後に ,
デジタル電源 (VCC) の切断を行ってください。
• アナログ入力と兼用しているポート端子を入力ポートとして使用する場合は , アナ
ログ入力電圧が AVCC を超えないようにしてください。
21
第 1 章 概要
■ A/D コンバータを使用しない場合の端子処理について
A/D コンバータを使用しない場合は , AVCC=VCC, AVSS=VSS となるよう接続してくだ
さい。
■ LCD 未使用時の端子処理について
COM0 ∼ COM3 端子と SEG0 ∼ SEG11 端子は開放してください。
V0 ∼ V3 端子は 2 kΩ 以上の抵抗を介してプルアップまたはプルダウンの処理をしてく
ださい。
22
第 1 章 概要
1.9
クロック供給マップ
図 1.9-1 に , クロック供給マップを示します。
■ クロック供給マップ
図 1.9-1 クロック供給マップ
クロック生成回路
時計クロック分周器
X0
X1
時計タイマ
発振回路
ウォッチドッグタイマ
セレクタ
X0A
X1A
発振回路
タイムベース
タイマ
1
2
3
4
逓倍回路
内蔵リソース群
LCD制御部
16ビット リロードタイマ
8/10ビット A/Dコンバータ
シリアルI/O
フリーランタイマ
インプットキャプチャ
アウトプットコンペア
PCLK
2分周回路
セレクタ
MCLK
HCLK
2分周回路
CPU(F2MC-16LX)
ROM/RAM( メモリ )
SCLK
HCLK
MCLK
PCLK
SCLK
:
:
:
:
発振クロック周波数
メインクロック周波数
PLLクロック周波数
サブクロック周波数
23
第 1 章 概要
1.10
低消費電力モードについて
低消費電力モードの概要について説明します。MB90800 シリーズでは , 以下のよう
なモードがあり , それぞれの状態で停止する機能 / クロックが異なります。詳しくは ,
「第 4 章 クロック」を参照してください。
■ 低消費電力モードの動作状態
表 1.10-1 低消費電力モードの動作状態
メイン
クロック
サブ
クロック
PLL
クロック
PLL
CPU
周辺
時計
タイム
ベース
タイマ
動作
動作
クロック
ソース
動作
動作
PLL スリープ
動作
動作
動作
PLL
クロック
PLL タイムベースタイマ
停止
PLL ストップ
停止
停止
停止
PLL 発振安定待ち
動作
動作
動作
メイン
停止
停止
停止
動作
動作
動作
動作
動作
動作
メインスリープ
動作
動作
メインタイムベースタイマ
メイン
クロック
停止
停止
メインストップ
停止
停止
メイン発振安定待ち
動作
動作
停止
サブ
停止
停止
動作
動作
動作
動作
サブスリープ
時計 モード
動作
停止
動作
停止
停止
サブ
クロック
動作
メイン
クロック
停止
サブストップ
停止
サブ発振安定待ち
動作
パワーオンリセット
24
停止
動作
停止
動作
リセット
停止
動作
停止
動作
停止
動作
第2章
CPU
MB90800 シリーズの CPU とメモリ空間について
説明します。
2.1 CPU
2.2 メモリ空間
2.3 メモリマップ
2.4 アドレッシング
2.5 多バイト長データのメモリ上の配置
2.6 レジスタ
2.7 専用レジスタ
2.8 汎用レジスタ
2.9 プリフィックスコード
25
第 2 章 CPU
2.1
CPU
F2MC-16LX CPU コアは , 民生用・車載用機器などの高速リアルタイム処理が要求さ
れる用途向けに設計された 16 ビット CPU です。F2MC-16LX の命令セットはコン
トローラ用途向けに設計されており , 各種制御の高速・高効率処理が可能です。
F2MC-16LX CPU コアは , 内部 32 ビットアキュムレータを搭載していますので 32
ビット処理も可能です。メモリ空間は , 最大 16 M バイト , リニア方式およびバンク
方式のいずれかにてアクセス可能です。また , 命令体系は F2MC-8L の AT アーキテ
クチャをベースに , C 言語対応命令の追加・アドレッシングモードの拡張・乗除算命
令の強化・ビット処理の充実化により命令が強化されています。次に , F2MC-16LX
CPU の特長を示します。
■ CPU
● 最小命令実行時間 :40.0 ns (6.25MHz:4 逓倍 )
● 最大メモリ空間 :16 M バイト , リニア / バンク方式にてアクセスが可能です。
● 命令体系
データタイプ
: ビット / バイト / ワード / ロングワード
アドレッシングモード :23 種類
32 ビットアキュムレータの採用による演算精度の強化
符号付き乗除算・拡張 RETI 命令
● 割込み機能
8 つのプライオリティレベル ( プログラマブル )
● CPU に依存しない自動転送機能
最大 16 チャネルまでの拡張インテリジェント I/O サービス
● C 言語 / マルチタスクに対応をとった命令体系
システムスタックポイントの採用 / 命令セットの対称性 / バレルシフト命令
● 実行速度の向上 :4 バイトのキュー
26
第 2 章 CPU
2.2
メモリ空間
F2MC-16LX の I/O, プログラムおよびデータは , 16 M バイトのメモリ空間に配置し
ます。RAM 領域は , 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ ,
汎用レジスタおよびベクタテーブルなどに使用されます。
■ メモリ空間
I/O, プログラムおよびデータは , F2MC-16LX CPU が持つ 16 M バイトのメモリ空間に
配置され , CPU は 24 ビットのアドレスバスでメモリ空間のアドレスを示し , 各内蔵周
辺機能 ( リソース ) をアクセスできます。
図 2.2-1 F2MC-16LX システムとメモリマップの関係例
F2MC-16LX デバイス
FFFFFFH
ベクタテーブル領域
ROM領域
FFFC00H
プログラム
FF0000H
*1
プログラム領域
内
部
100000H
デ
010000H
外部領域*4
2
F MC-16LX
CPU
|
タ
データ
バ
2
ス
EI OS
004000H
002000H
000D00H
000380H
000180H
000100H
割込み
周辺回路
汎用ポート
0000C0H
0000B0H
000020H
000000H
*2
ROM領域
(FFバンクのイメージ)
外部領域*4
*3
データ領域
汎用レジスタ
EI2OSディスクリプタ
領域
外部領域*4
割込み制御レジスタ領域
周辺機能制御レジスタ領域
RAM領域
I/O領域
I/Oポート制御レジスタ領域
*1:品種によって,内蔵ROMの容量が異なります。
*2:品種によって,イメージでアクセスできる領域が異なります。
*3:品種によって,内蔵RAMの容量が異なります。
*4:シングルチップモード時には,アクセスなしとなります。
27
第 2 章 CPU
■ ROM 領域
● ベクタテーブル領域 ( アドレス :"FFFC00H ∼ FFFFFFH")
• ベクタコール命令 , 割込みベクタおよびリセットベクタのベクタテーブルとして使
用します。
• ROM 領域の最上位に割り当てられており , ベクタコール命令 , 割込みベクタおよび
リセットベクタのベクタテーブルのアドレスに対応する処理ルーチンの開始アド
レスをデータとして設定します。
● プログラム領域 ( アドレス :" ∼ FFFBFFH")
• 内部プログラム領域として , ROM が内蔵されています。
• 内部 ROM 容量は , 品種によって異なります。
■ RAM 領域
● データ領域 ( アドレス :"000100H ∼ ")
• 内部データ領域として , スタティック RAM が内蔵されています。
• 内部 RAM 容量は , 品種によって異なります。
● 汎用レジスタ領域 ( アドレス :"000180H ∼ 00037FH")
• 8 ビット , 16 ビット , 32 ビットの演算や転送に使用する汎用レジスタが配置されて
います。
• 汎用レジスタとして使用しない場合 , 通常の RAM として使用できます。
• 汎用レジスタとして使用した場合 , 汎用レジスタアドレッシングを使用できますの
で , 短い命令サイクル数でアクセスできます。
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ領域 ( アドレス :"000100H ∼
00017FH")
• 拡張インテリジェント I/O サービス (EI2OS) の転送モード , I/O のアドレス , 転送数
およびバッファアドレスを設定します。
• 拡張インテリジェント I/O サービス (EI2OS) を使用しない場合は , 通常の RAM とし
て使用することもできます。
■ I/O 領域
● 割込み制御レジスタ領域 ( アドレス :"0000B0H ∼ 0000BFH")
割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込み機能を持つ内蔵周辺機能 ( リソース )
に対応しています。割込みレベルの設定 , および拡張インテリジェント I/O サービス
(EI2OS) の設定ができます。
● 周辺機能制御レジスタ領域 ( アドレス :"000020H ∼ 0000AFH")
内蔵周辺機能 ( リソース ) の設定ができます。
● 入出力ポート制御レジスタ領域 ( アドレス :"000000H ∼ 00001FH")
入出力ポートの設定ができます。
28
第 2 章 CPU
2.3
メモリマップ
MB90800 シリーズの品種ごとのメモリマップを示します。
■ メモリマップ
図 2.3-1 メモリマップ
(ROM ミラー機能あり)
FFFFFFH
ROM領域
アドレス#2
00FFFFH
008000H
007917H
007900H
ROMミラー領域
32Kバイト
拡張I/O領域2
アドレス#1
レジスタ
RAM
領域
000100H
0000CFH
0000C0H
0000BFH
000000H
品種
拡張I/O領域1
I/O領域
アドレス #1
アドレス #2
MB90803/S, MB90F803/S
0010FFH
FE0000H
MB90F809/S
0028FFH
FD0000H
MB90F804-101/201
0040FFH
FC0000H
MB90V800-101/201
0070FFH
F80000H*
*: MB90V800 に ROM は内蔵されていません。ツール側での ROM デコード領域とお考えください。
ROM ミラー機能は , C コンパイラのスモールモデルを使用するためのものです。
FF バンクの下位 16 ビットアドレスは , 00 バンクの下位 16 ビットアドレスと同じにな
ります。ただし , FF バンクの ROM 領域は 32 K バイトを超えますので , 00 バンクには ,
ROM 領域の全データをミラーイメージで見せることはできません。
C コンパイラのスモールモデルをご使用の場合は , データテーブルを "FF8000H" ∼
"FFFFFFH" に格納しておくことで , "008000H" ∼ "00FFFFH" にミラーイメージでデータ
テーブルを見せることができます。したがって , ポインタで far 指定を宣言することな
く , ROM 領域内のデータテーブルを参照できます。
29
第 2 章 CPU
<注意事項>
・ROM ミラー機能レジスタの設定を行った場合 , 00 バンクの上位側 ("008000H" ∼
"00FFFFH") に FF バンクの上位側 ("FF4000H" ∼ "FFFFFFH") のデータがミラーイメージ
で見えるようになります。
・ROM ミラー機能の設定は , 「第 24 章 ROM ミラー機能選択 モジュール」を参照してく
ださい。
30
第 2 章 CPU
2.4
アドレッシング
アドレス生成方式には , リニア方式とバンク方式があります。
リニア方式は , 16 M バイトの空間を連続した 24 ビットアドレスにより直接指定す
る方法です。
バンク方式は , 16 M バイトの空間を 64 K バイトごとの 256 バンクに分割し , 上位 8
ビットアドレスをバンクレジスタにより指定し , 下位 16 ビットアドレスを命令で直
接指定する方法です。
F2MC-16LX ファミリは , 基本的にはバンクアドレッシングとなります。
■ リニアアドレッシングとバンクアドレッシング
図 2.4-1 リニア方式とバンク方式のメモリ管理
リニア方式
FFFFFFH
バンク方式
FFFFFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
123456H
FFバンク
64Kバイト
FEバンク
FDバンク
123456H
12バンク
04FFFFH
040000H
03FFFFH
030000H
02FFFFH
020000H
01FFFFH
010000H
00FFFFH
000000 H
000000H
123456H
すべて命令で指定
04バンク
03バンク
02バンク
01バンク
00バンク
123456H
命令で指定
用途に応じたバンクレジスタで指定
31
第 2 章 CPU
2.4.1
リニア方式によるアドレス指定
リニア方式によるアドレス指定には , オペランドで直接 24 ビットのアドレスを指定
する方法と , 32 ビットの汎用レジスタの下位 24 ビットをアドレスとして引用する方
法があります。
■ 24 ビットオペランド指定によるリニアアドレッシング
図 2.4-2 リニア方式による 24 ビット物理直接アドレス指定例
JMPP 123456H
旧プログラムカウンタ
+プログラムバンク
17
452D
17452DH
新プログラムカウンタ
+プログラムバンク
12
3456
123456H
JMPP 123456H
次の命令
■ 32 ビットレジスタ間接指定によるアドレッシング
図 2.4-3 リニア方式による 32 ビット汎用レジスタ間接指定例
MOV A,@RL1+7
旧AL
090700H
XXXX
3AH
+7
新AL
003A
RL1
(上位8ビットは無視)
RL1:32ビット(ロングワード)汎用レジスタ
32
240906F9H
第 2 章 CPU
2.4.2
バンク方式によるアドレス指定
バンク方式によるアドレス指定は , 16 M バイトのメモリ空間を 64 K バイトごとの
256 バンクに分割し , バンクレジスタでアドレスの上位 8 ビットを指定します。下位
16 ビットアドレスは命令で直接指定します。
バンクレジスタには , 用途別に次の 5 種類があります。
・プログラムカウンタバンクレジスタ (PCB)
・データバンクレジスタ (DTB)
・ユーザスタックバンクレジスタ (USB)
・システムスタックバンクレジスタ (SSB)
・アディショナルデータバンクレジスタ (ADB)
■ バンクレジスタとアクセス空間
表 2.4-1 各バンクレジスタのアクセス空間と主な用途
リセット時
初期値
バンクレジスタ名
アクセス空間
主な用途
プログラムカウン
タバンクレジスタ
(PCB)
プ ロ グ ラ ム
(PC) 空間
命令コード , ベクタテーブル , 即値データ
を格納します。
FFH
データバンク
レジスタ (DTB)
データ (DT)
空間
読み書き可能なデータの格納や , 内外周辺
の制御レジスタ / データレジスタのアクセ
スを行います。
00H
スタック (SP)
空間
PUSH/POP 命令や , 割込みのレジスタ退避
などのスタックアクセスに用いられる領
域です。
コンディションレジスタ内のスタックフ
ラグ (CCR:S) が "1" の場合に SSB を , "0" の
場合に USB を使用します。*
ユーザスタック
バンクレジスタ
(USB)
システムスタック
バンクレジスタ
(SSB)*
アディショナル
データバンク
レジスタ (ADB)
アディショナ
ル (AD) 空間
データ (DT) 空間に入りきらないデータな
どを格納します。
00H
00H
00H
*: 割込み時のスタックには , 必ず SSB が使用されます。
バンクレジスタの詳細は , 「2.7.9 バンクレジスタ (PCB, DTB, USB, SSB, ADB)」を参
照してください。
33
第 2 章 CPU
図 2.4-4 バンク方式によるアドレッシング例
FFFFFFH
FF0000H
プログラム空間
FFH
:PCB(プログラムカウンタバンクレジスタ)
0FFFFFH
物
アディショナル空間
0F0000H
0FH :ADB(アディショナルデータバンクレジスタ)
理
ア
ド
0DFFFFH
0D0000H
ユーザスタック空間
0DH
:USB(ユーザスタックバンクレジスタ)
0BH
:DTB(データバンクレジスタ)
レ
0BFFFFH
データ空間
ス
0B0000H
07FFFFH
070000H
システムスタック空間
07H :SSB(システムスタックバンクレジスタ)
000000H
■ バンクアドレッシングとデフォルト空間
命令のコード効率向上のため , 各命令には アドレス指定方式ごとに , 表 2.4-2 に示すよ
うなデフォルト空間が決められています。デフォルト以外の空間を使用したい場合は ,
各バンクに対応しているプリフィックスコードを命令に先行して設定することで , プ
リフィックスコードに対応したバンク空間をアクセスできます。プリフィックスコー
ドの詳細は , 「2.9 プリフィックスコード」を参照してください。
表 2.4-2 アドレッシングとデフォルト空間
デフォルト空間
34
アドレッシング
プログラム空間
PC 間接 , プログラムアクセス , 分岐系
データ空間
@RW0, @RW1, @RW4, @RW5 を用いたアドレッシング ,
@A, addr16, dir
スタック空間
PUSHW, POPW, @RW3, @RW7 を用いたアドレッシング
アディショナル空間
@RW2, @RW6 を用いたアドレッシング
第 2 章 CPU
2.5
多バイト長データのメモリ上の配置
多バイト長データは , 下位アドレスから順にメモリへ書き込まれます。32 ビット長
データの場合は , 下位 16 ビット , 上位 16 ビットの順に転送されます。ただし , 下位
データを書き込んだ直後に外部リセット信号が入力された場合 , 上位データが書き
込まれない場合があります。
■ RAM 上の多バイトデータの格納状態
データは下位8ビットがn番地に, 以下n+1番地, n+2番地, n+3番地の順に配置されます。
図 2.5-1 RAM 上の多バイトデータの格納状態
MSB
"H"
01010101B
LSB
11001100B
11111111B
00010100B
01010101B
11001100B
11111111B
n番地
00010100B
"L"
MSB:最上位ビット
LSB:最下位ビット
■ 多バイト長オペランドの場合の格納状態
図 2.5-2 オペランドが多バイトの場合の格納状態
JMPP 123456H
"H"
JMPP
12 34 56H
12H
34H
56H
n番地
63H
"L"
35
第 2 章 CPU
■ スタック上の多バイトデータの格納状態
図 2.5-3 スタック上の多バイトデータの格納状態
PUSHW
RW1,RW3
"H"
PUSHW RW1, RW3
(35A4H)(6DF0H)
SP
6DH
F0H
35H
A4H
n番地
"L"
RW1:35A4H
RW3:6DF0H
(注意事項) PUSHW命令実行後のスタックの状態
■ 多バイト長データのアクセス
多バイト長データのアクセスは , バンク内を基本にして行われます。多バイト長のデー
タをアクセスする命令では , "FFFFH" 番地の次のアドレスは同じバンクの "0000H" 番地
になります。
図 2.5-4 バンク境界での多バイト長データのアクセス
"H"
実行前のAL
80FFFFH
01H
800000H
・
・
・
23H
"L"
36
? ?
? ?
MOVW A, 080FFFFH
実行後のAL
23H
01H
第 2 章 CPU
2.6
レジスタ
F2MC-16LX のレジスタには , CPU に内蔵される専用レジスタと , 内蔵 RAM 上に内
蔵される汎用レジスタがあります。
■ 専用レジスタと汎用レジスタ
専用レジスタは, CPU内に内蔵されているハードウェアで, 使用する用途がCPUのアー
キテクチャ上で限定されているものです。
汎用レジスタは , CPU のアドレス空間上に RAM と共存します。アドレス指定なしでア
クセスできるという点では専用レジスタと同じですが , 通常のメモリと同じく , 使用す
る用途をユーザが指定できるものです。
図 2.6-1 専用レジスタと汎用レジスタ
CPU
RAM
専用レジスタ
RAM
アキュムレータ
汎用レジスタ
ユーザスタックポインタ
システムスタックポインタ
プロセッサステータス
内
部
プログラムカウンタ
デ
ダイレクトページレジスタ
プログラムカウンタバンクレジスタ
|
データバンクレジスタ
タ
ユーザスタックバンクレジスタ
バ
システムスタックバンクレジスタ
ス
アディショナルデータバンクレジスタ
37
第 2 章 CPU
2.7
専用レジスタ
CPU 内の専用レジスタは , 以下に示す 11 種類のレジスタで構成されています。
・アキュムレータ (A)
・ユーザスタックポインタ (USP)
・システムスタックポインタ (SSP)
・プロセッサステータス (PS)
・プログラムカウンタ (PC)
・ダイレクトページレジスタ (DPR)
・プログラムカウンタバンクレジスタ (PCB)・データバンクレジスタ (DPP)
・ユーザスタックバンクレジスタ (USB)
・システムスタックバンクレジスタ (SSB)
・アディショナルデータバンクレジスタ (ADB)
■ 専用レジスタの構成
図 2.7-1 専用レジスタの構成
AH
AL
:アキュムレータ(A)
演算結果の格納などに使用される16ビット×2本のレジスタです。
連続して32ビットレジスタとしても使用可能です。
USP
:ユーザスタックポインタ(USP)
ユーザスタックアドレスを示す16ビットのポインタです。
SSP
:システムスタックポインタ(SSP)
システムスタックアドレスを示す16ビットのポインタです。
PS
:プロセッサステータス(PS)
システムの状態を示す16ビットのレジスタです。
PC
:プログラムカウンタ(PC)
プログラムアドレスを示す16ビットのカウントレジスタです。
DPR
:ダイレクトページレジスタ(DPR)
短縮直接アドレッシングを実行した場合に,オペランドアドレスの
ビット8~15を指定します。8ビットのページレジスタです。
PCB
:プログラムカウンタバンクレジスタ(PCB)
プログラム空間を示す8ビットのバンクレジスタです。
DTB
:データバンクレジスタ(DTB)
データ空間を示す8ビットのバンクレジスタです。
USB
:ユーザスタックバンクレジスタ(USB)
ユーザスタック空間を示す8ビットのバンクレジスタです。
SSB
:システムスタックバンクレジスタ(SSB)
システムスタック空間を示す8ビットのバンクレジスタです。
ADB
8ビット
:アディショナルデータバンクレジスタ(ADB)
アディショナル空間を示す8ビットのバンクレジスタです。
16ビット
32ビット
38
第 2 章 CPU
表 2.7-1 専用レジスタの初期値
専用レジスタ
初期値
アキュムレータ (A)
不定
ユーザスタックポインタ (USP)
不定
システムスタックポインタ (SSP)
不定
bit15 ~ bit13 bit12
プログラムカウンタ (PC)
0
ダイレクトページレジスタ (DPR)
プログラムカウンタバンクレジスタ (PCB)
データバンクレジスタ (DTB)
~
ILM
PS
0
bit8 bit7
~
0
0
0
0
bit0
CCR
RP
0
0
-
0
1
x
x
x
x
x
リセットベクタ中の値
(FFFFDCH, FFFFDDH の内容 )
01H
リセットベクタ中の値 (FFFFDEH の内容 )
ユーザスタックバンクレジスタ (USB)
00H
システムスタックバンクレジスタ (SSB)
00H
アディショナルデータバンクレジスタ (ADB)
00H
プロセッサステータス (PS)
00H
<注意事項>
上記の初期値は , デバイスの初期値であり , ICE( エミュレータなど ) では異なります。
39
第 2 章 CPU
2.7.1
アキュムレータ (A)
アキュムレータ (A) は , 2 つの 16 ビット長演算用レジスタ (AH/AL) から構成されて
います。演算結果やデータの一時記憶に使用されるレジスタです。
アキュムレータ (A) は , 32/16/8 ビットのレジスタとして使用できます。メモリとほ
かのレジスタ間 , あるいは上位側の 16 ビット長演算レジスタ (AH) と下位側の 16
ビット長演算レジスタ (AL) 間で , 演算ができます。また , ワード長以下のデータを
下位側の 16 ビット長演算レジスタ (AL) へ転送した場合 , 転送前の下位側の 16 ビッ
ト長演算レジスタ (AL) に格納されているデータが , 上位側の 16 ビット長演算レジ
スタ (AH) に転送されるデータ保持機能があります ( 一部の命令ではデータ保持を行
いません ) 。
■ アキュムレータ (A)
● アキュムレータへのデータ転送
アキュムレータは , 32 ビット長 ( ロングワード ), 16 ビット長 ( ワード ), 8 ビット長 ( バ
イト ) のデータを処理できます。例外として , 4 ビットデータ転送命令 (MOVN) もあり
ますが , 8 ビットデータと同様に処理されます。
• 32ビットデータ処理の場合は, 上位演算用レジスタ(AH)と下位演算用レジスタ(AL)
が連結して使用されます。
• 16 ビットデータや 8 ビットデータの場合は , 下位演算用レジスタ (AL) が使用され ,
上位演算用レジスタ (AH) は , 下位演算用レジスタ (AL) のデータを保持します。
• 下位演算用レジスタ (AL) へバイト長以下のデータが転送された場合は , 符号拡張ま
たはゼロ拡張され , 16 ビット長となり下位演算用レジスタ (AL) へ格納されます。ま
た , 下位演算用レジスタ (AL) の格納されたデータは , 16 ビットデータまたは 8 ビッ
トデータとして扱うことができます。
具体的な転送例を図 2.7-3 ∼図 2.7-6 に示します。
図 2.7-2 アキュムレータへのデータ転送
32ビット
AH
AL
32ビットデータ転送
データ転送 データ転送
16ビットデータ転送
AH
データ退避
AL
データ転送
8ビットデータ転送
AH
データ退避
AL
"00H"もしくは"FFH"* データ転送
(ゼロ拡張もしくは符号拡張)
*:4ビット転送命令のときは"000H"もしくは"FFFH"となります。
40
第 2 章 CPU
● アキュムレータのバイト処理算術演算
バイト処理の算術演算命令を下位演算用レジスタ (AL) に対して実行した場合 , 下位演
算用レジスタ (AL) の上位 8 ビットは無視され , 演算結果の上位 8 ビットはすべて "0"
になります。
● アキュムレータの初期値
リセット後の初期値は不定です。
図 2.7-3 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , ゼロ拡張 )
MOV A,3000H
(3000H番地の内容をゼロ拡張し,ALレジスタに格納する命令)
メモリ空間
MSB
実行前
AH
AL
XXXXH
2456H
2456H
88H
77H
B5H
DTB
実行後
B53000H
LSB
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
0088H
図 2.7-4 アキュムレータ (A) の AL-AH 間の転送例 (8 ビット即値 , 符号拡張 )
MOVW A,3000H
(3000H番地の内容をALレジスタに格納する命令)
MSB
実行前
AH
AL
XXXXH
2456H
DTB
実行後
2456H
B53000H
メモリ空間
LSB
88H
77H
B5H
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
7788H
図 2.7-5 アキュムレータ (A) への 32 ビットデータ転送例 ( レジスタ間接 )
(RW1の内容+8ビット長オフセットの結果を番地としてロングワード
長リードを行い,その内容をAレジスタに格納する命令)
MOVL A,@RW1+6
実行前
AH
XXXXH
DTB
実行後
8F74H
MSB
AL
XXXXH
2B52H
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
A61540H
A6H
メモリ空間
LSB
+6
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
41
第 2 章 CPU
図 2.7-6 アキュムレータ (A) の AL-AH 間の転送例 (16 ビット , レジスタ間接 )
(RW1の内容+8ビット長オフセットの結果を番地としてワード長
リードを行い,その内容をAレジスタに格納する命令)
MOVW A,@RW1+6
AH
実行前
XXXXH
1234H
DTB
実行後
1234H
MSB
AL
2B52H
A6153EH
8FH
2BH
74H
52H
RW1
15H
38H
A61540H
A6H
メモリ空間
LSB
+6
X :不定
MSB:最上位ビット
LSB:最下位ビット
DTB:データバンクレジスタ
42
第 2 章 CPU
2.7.2
スタックポインタ (USP, SSP)
スタックポインタには , ユーザスタックポインタ (USP) とシステムスタックポイン
タ (SSP) があり , PUSH 命令 , POP 命令およびサブルーチンを実行する場合の デー
タの退避先や復帰先のメモリアドレスを示すレジスタです。スタックアドレスの上
位 8 ビットは , ユーザスタックバンクレジスタ (USB) もしくはシステムスタックバ
ンクレジスタ (SSB) で指定されます。
コンディションコードレジスタ (CCR) の S フラグが "0" の場合は USP および USB
レジスタが有効になり , S フラグが "1" の場合は SSP および SSB レジスタが有効に
なります。
■ スタックの設定
F2MC-16LX では , システムスタックとユーザスタックの 2 種類のスタックが使用でき
ます。スタックのアドレスは , プロセッサステータス (PS:CCR) 内の S フラグによって ,
表 2.7-2 のように決定されます。
表 2.7-2 スタックアドレスの指定
スタックアドレス
S フラグ
上位 8 ビット
下位 16 ビット
0
ユーザスタックバンクレジスタ
(USB)
ユーザスタックポインタ (USP)
1
システムスタックバンク
レジスタ (SSB)
システムスタックポインタ(SSP)
: 初期値
リセットによって, Sフラグは"1"に初期化されますので, 初期設定ではシステムスタッ
クが使用されます。また , 割込みが受け付けられた場合 , スタックフラグ (CCR:S) が
"1" にセットされ , 必ずシステムスタックポインタが使用され , 割込みルーチン以外の
スタック操作ではユーザスタックが使用されます。スタック空間を分けない場合はシ
ステムスタックを使用してください。
43
第 2 章 CPU
図 2.7-7 スタック操作命令とスタックポインタ
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
C6F326H
LSB
XXH
XXH
Sフラグが"0"であるため
ユーザスタックを使用
C6F326H
A6H
24H
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
561232H
XXH
XXH
561232H
A6H
24H
Sフラグが"1"であるため
システムスタックを使用
X :不定
MSB:最上位ビット
LSB:最下位ビット
<注意事項>
・ スタックポインタに , スタックアドレスを設定する場合は , 偶数アドレスを設定してく
ださい。奇数アドレスを設定した場合は , ワードアクセスが 2 回に分割されアクセス効
率が低下します。
・ USP レジスタおよび SSP レジスタの初期値は不定です。
・ システムスタック領域 , ユーザスタック領域およびデータ領域は , お互いに重なり合わ
ないように配置してください。
■ システムスタックポインタ (SSP)
システムスタックポインタ (SSP) を設定する場合は , コンディションコードレジスタ
(CCR) 内の S フラグに "1" を設定します。S フラグに "1" を設定した場合 , スタック操
作を行う際に使用されるアドレスの上位8ビットは, システムスタックバンクレジスタ
(SSB) により示されます。
コンディションコードレジスタ (CCR) の詳細は , 「2.7.4 コンディションコードレジス
タ (PS:CCR)」を , システムスタックバンクレジスタ (SSB) の詳細は , 「2.7.9 バンクレ
ジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。
44
第 2 章 CPU
■ ユーザスタックポインタ (USP)
ユーザスタックポインタ (USP) を設定する場合は , コンディションコードレジスタ
(CCR) 内の S フラグに "0" を設定します。S フラグに "0" を設定した場合 , スタック操
作を行う際に使用されるアドレスの上位 8 ビットは , ユーザスタックバンクレジスタ
(USB) により示されます。
コンディションコードレジスタ (CCR) の詳細は , 「2.7.4 コンディションコードレジス
タ (PS:CCR)」を , システムスタックバンクレジスタ (SSB) の詳細は ,「2.7.9 バンクレ
ジスタ (PCB, DTB, USB, SSB, ADB)」を参照してください。
45
第 2 章 CPU
2.7.3
プロセッサステータス (PS)
プロセッサステータス (PS) は , CPU の制御を行うビットと CPU の状態を示す各種
ビットから構成されています。PS レジスタは以下に示す 3 つのレジスタで構成され
ています。
・インタラプトレベルマスクレジスタ (ILM)
・レジスタバンクポインタ (RP)
・コンディションコードレジスタ (CCR)
■ プロセッサステータス (PS) の構成
プロセッサステータス (PS) は , CPU の制御を行うビットと , CPU の状態を示す各種ビッ
トから構成されています。
図 2.7-8 プロセッサステータス (PS) の構成
RP
ILM
bit
15
PS
ILM2 ILM1 ILM0 B4
14
13 12
11 10
B3
CCR
9
8
7
6
5
4
3
2
1
0
B2 B1
B0
-
I
S
T
N
Z
V
C
● コンディションコードレジスタ (CCR)
命令実行結果や割込み出力によって , "1" がセットまたは "0" にクリアされる各種フラ
グから構成されています。
各種フラグの詳細は , 「2.7.4 コンディションコードレジスタ (PS:CCR)」を参照してく
ださい。
● レジスタバンクポインタ (RP)
RAM 領域の中で , 汎用レジスタとして使用するメモリブロック ( レジスタバンク ) の
先頭アドレスを設定するポインタです。
汎用レジスタは , 32 バンクあり , レジスタバンクポインタ (RP) に "00H" ∼ "1FH" の値
をセットしてバンクを指定します。
設定方法および詳細は ,「2.7.5 レジスタバンクポインタ (PS:RP)」を参照してください。
● インタラプトレベルマスクレジスタ (ILM)
CPU が現在受け付けている割込みのレベルを示し , 周辺機能 ( リソース ) ごとの割込み
要求に対応して設定されている割込み制御レジスタ (ICR00 ∼ ICR15) の割込みレベル
設定ビット (ICR:IL0 ∼ IL2) 値と比較します。
設定方法および詳細は , 「2.7.6 インタラプトレベルマスクレジスタ (PS:ILM)」を参照
してください。
46
第 2 章 CPU
コンディションコードレジスタ (PS:CCR)
2.7.4
コンディションコードレジスタ (CCR) は , 以下に示すビットで構成されている 8
ビットレジスタです。
・演算結果や転送データの内容を示すビット
・割込み要求の受付けを制御するビット
■ コンディションコードレジスタ (CCR) の構成
命令実行時のコンディションコードレジスタ (CCR) の状態については , 『F2MC-16LX
プログラミングマニュアル』を参照してください。
図 2.7-9 コンディションコードレジスタ (CCR) の構成
RP
ILM
bit
15
PS
ILM2 ILM1 ILM0 B4
14
13
12
11
CCR
10
9
8
7
6
5
4
3
2
1
0
B3 B2
B1
B0
-
I
S
T
N
Z
V
C
CCR初期値
X01XXXXXB
割込み許可フラグ
スタックフラグ
スティッキィビットフラグ
ネガティブフラグ
ゼロフラグ
オーバフローフラグ
キャリフラグ
X :不定
-:未定義
● 割込み許可フラグ (I)
ソフトウェア割込み以外の割込み要求に対し , 割込み許可フラグ (I) に "1" がセットさ
れた場合は割込み要求が許可され , 割込み許可フラグ (I) が "0" にクリアされた場合は
割込み要求が禁止されます。外部リセットおよびソフトウェアリセットにより "0" に
クリアされます。
● スタックフラグ (S)
スタック操作に用いられるポインタを示すフラグです。スタックフラグ (S) が "0" にク
リアされた場合はユーザスタックポインタ (USP) が有効になり , スタックフラグ (S) に
"1" がセットされた場合はシステムスタックポインタ (SSP) が有効になります。割込み
が受け付けられた場合 , または外部リセットおよびソフトウェアリセットがアサート
された場合は "1" がセットされます。
スタックポインタの詳細は,「2.7.2 スタックポインタ(USP, SSP)」
を参照してください。
● スティッキィビットフラグ (T)
論理右シフト命令 , または算術右シフト命令を実行した場合に , キャリからシフトアウ
トされたデータに "1" があればスティッキィビットフラグ (T) に "1" がセットされ , "1"
がなければスティッキィビットフラグ (T) は "0" にクリアされます。また , シフト量が
ゼロの場合でも "0" にクリアされます。
47
第 2 章 CPU
● ネガティブフラグ (N)
演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の最上位ビット (MSB) が "1" の場合
は , ネガティブフラグ (N) に "1" がセットされ , 演算結果が格納される汎用レジスタ
(RL0 ∼ RL3) の最上位ビット (MSB) が "0" の場合は , ネガティブフラグ (N) が "0" にク
リアされます。
汎用レジスタの詳細は , 「2.8 汎用レジスタ」を参照してください。
● ゼロフラグ (Z)
演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の値が "0000H" の場合は , ゼロフラ
グ (Z) に "1" がセットされ , 演算結果が格納される汎用レジスタ (RL0 ∼ RL3) の値が
"0000H" でない場合は , ゼロフラグ (Z) は "0" にクリアされます。
● オーバフローフラグ (V)
演算の実行で符号付き数値としてオーバフローが発生した場合はオーバフローフラグ
(V) に "1" がセットされ , オーバフローが発生しなかった場合はオーバフローフラグ (V)
が "0" にクリアされます。
● キャリフラグ (C)
演算の実行で最上位ビットからの桁上りまたは最上位ビットへの桁下りが発生した場
合はキャリフラグ (C) に "1" がセットされ , 発生しなかった場合はキャリフラグ (C) は
"0" にクリアされます。
48
第 2 章 CPU
レジスタバンクポインタ (PS:RP)
2.7.5
レジスタバンクポインタ (RP) は , 現在使用している汎用レジスタバンクの先頭アド
レスを示す 5 ビットのレジスタです。
■ レジスタバンクポインタ (RP)
図 2.7-10 レジスタバンクポインタ (RP) の構成
RP
ILM
bit
15
14
13
12
PS
ILM2 ILM1 ILM0 B4
11
CCR
10
9
8
7
6
5
4
3
2
1
0
RP初期値
B3 B2
B1
B0
-
I
S
T
N
Z
V
C
00000B
■ 汎用レジスタ領域とレジスタバンクポインタ
レジスタバンクポインタ (RP) は , F2MC-16LX の持つ汎用レジスタと , 内部 RAM のア
ドレスとの関係を示すポインタです。レジスタバンクポインタ (RP) の内容とアドレス
の関係は , 図 2.7-11 に示す変換規則になっています。
図 2.7-11 汎用レジスタ領域の物理アドレス変換規則
変換式 [000180H +(RP)× 10H]
RP=10H の場合
000370H
レジスタバンク31
:
:
000280H
レジスタバンク16
:
:
000180H
レジスタバンク 0
• レジスタバンクポインタ(RP)は, "00H"∼"1FH"までの値をとることができますので,
レジスタバンクの先頭アドレスは , "000180H" ∼ "00037FH" の範囲に設定できます。
• アセンブラ命令では , レジスタバンクポインタ (RP) に転送する 8 ビットの即値転送
命令が使用できます。ただし , 下位 5 ビットのデータが有効となります。
• レジスタバンクポインタ (RP) は , リセットにより "00000B" に初期化されます。
49
第 2 章 CPU
インタラプトレベルマスクレジスタ (PS:ILM)
2.7.6
インタラプトレベルマスクレジスタ (ILM) は , CPU が受け付ける割込みのレベルを
示す 3 ビットのレジスタです。
■ インタラプトレベルマスクレジスタ (ILM)
割込みの詳細は , 「第 6 章 割込み」を参照してください。
図 2.7-12 インタラプトレベルマスクレジスタ (ILM) の構成
RP
ILM
bit
15
PS
ILM2 ILM1 ILM0 B4
14
13
12
11
CCR
10
9
8
7
6
5
4
3
2
1
0
ILM初期値
B3 B2
B1
B0
-
I
S
T
N
Z
V
C
000B
インタラプトレベルマスクレジスタ (ILM) は , 現在の割込みレベルを示します。
インタラプトレベルマスクレジスタ(ILM)には, 受付け可能な割込みレベルを設定でき
ます。インタラプトレベルマスクレジスタ (ILM) に設定された割込みレベル値より弱
い割込みレベル値のものは , 割込みを受け付けません。
• インタラプトレベルマスクレジスタ (ILM) は , リセットにより割込みレベルが最強
に設定され , 割込みが受け付けられなくなります。
• アセンブラ命令では , インタラプトレベルマスクレジスタ (ILM) に転送する 8 ビッ
トの即値転送命令が使用できます。ただし , 下位 3 ビットが有効となります。
表 2.7-3 インタラプトレベルマスクレジスタ (ILM) と割込みレベルの強弱
50
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
割込みレベル強弱
強 ( 割込み禁止 )
弱
第 2 章 CPU
プログラムカウンタ (PC)
2.7.7
プログラムカウンタ (PC) は , CPU が次に実行する命令アドレスの下位 16 ビットを
示す 16 ビットカウンタです。
■ プログラムカウンタ (PC)
CPU が , 次に実行する命令アドレスの上位 8 ビットをプログラムカウンタバンクレジ
スタ (PCB) で設定し , 下位 16 ビットをプログラムカウンタ (PC) で設定します。次に実
行する命令アドレスは , 図 2.7-13 のようになります。プログラムカウンタ (PC) は条件
分岐命令 , サブルーチンコール命令 , 割込み , リセットでも内容が更新されます。また ,
オペランドを読み出す場合のベースポインタとしても使用できます。
プログラムカウンタバンクレジスタ (PCB) の詳細は , 「2.7.9 バンクレジスタ (PCB,
DTB, USB, SSB, ADB)」を参照してください。
図 2.7-13 プログラムカウンタ (PC)
上位8ビット
PCB
FEH
下位16ビット
PC
ABCDH
FEABCDH
次に実行する命令
<注意事項>
プログラムカウンタ (PC), プログラムカウンタバンクレジスタ (PCB) ともにプログラム
(MOV PC, #0FFH などの命令 ) で直接書き換えることはできません。
51
第 2 章 CPU
2.7.8
ダイレクトページレジスタ (DPR)
ダイレクトページレジスタ (DPR) は , 短縮直接アドレス指定方式の命令実行時に ,
オペランドアドレスのビット 8 ∼ビット 15(addr8 ∼ addr15) を指定する 8 ビット
レジスタです。リセットで "01H" に初期化されます。
■ ダイレクトページレジスタ (DPR)
図 2.7-14 ダイレクトページレジスタ (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
MSB
LSB
24bit
bit24
bit16 bit15
bit8 bit7
bit0
物理アドレス
A A A A A A A A
B B B B B B B B C C C C C C C C
MSB:最上位ビット
LSB:最下位ビット
図 2.7-15 ダイレクトページレジスタ (DPR) の設定とデータアクセス例
MOV S:56H,#5AH
命令実行結果
上位8ビット 下位8ビット
DTBレジスタ
12H
DPRレジスタ
34H
123458H
123456H
MSB:最上位ビット
LSB:最下位ビット
52
5AH
123454H
MSB
LSB
第 2 章 CPU
バンクレジスタ (PCB, DTB, USB, SSB, ADB)
2.7.9
バンクレジスタは , バンク方式アドレッシングの最上位 8 ビットアドレスを指定す
るレジスタで , 以下に示す 5 つのレジスタで構成されます。
・プログラムカウンタバンクレジスタ (PCB)
・データバンクレジスタ (DTB)
・ユーザスタックバンクレジスタ (USB)
・システムスタックバンクレジスタ (SSB)
・アディショナルデータバンクレジスタ (ADB)
各バンクレジスタは , プログラム空間 , データ空間 , ユーザスタック空間 , システム
スタック空間 , およびアディショナル空間に配置されるメモリバンクを示します。
■ バンクレジスタ (PCB, DTB, USB, SSB, ADB)
● プログラムカウンタバンクレジスタ (PCB)
プログラム (PC) 空間を指定するバンクレジスタです。16 M バイト全空間に分岐する
JMPP, CALLP, RETP および RETI 命令実行時 , ソフトウェア割込み命令実行時 , ハード
ウェア割込み時 , および例外発生時に PCB は書き換わります。
● データバンクレジスタ (DTB)
データ (DT) 空間を指定するバンクレジスタです。
● ユーザスタックバンクレジスタ (USB)/ システムスタックバンクレジスタ (SSB)
スタック (SP) 空間を指定するバンクレジスタです。USB と SSB のどちらが使用される
かは , プロセッサステータス (PS:CCR) 内の S フラグの値に依存します。詳細は ,「2.7.2
スタックポインタ (USP, SSP)」を参照してください。
● アディショナルデータバンクレジスタ (ADB)
アディショナル (AD) 空間を指定するバンクレジスタです。
● 各バンクの設定とデータアクセス
バンクレジスタは8ビット長であり, リセットによりプログラムカウンタバンクレジス
タ (PCB) は "FFH" に初期化され , データバンクレジスタ (DTB), ユーザスタックバンク
レジスタ (USB), システムスタックバンクレジスタ (SSB), アディショナルデータバンク
レジスタ (ADB) は "00H" に初期化されます。プログラムカウンタバンクレジスタ (PCB)
は , 読出しはできますが書込みはできません。プログラムカウンタバンクレジスタ
(PCB) 以外のバンクレジスタは , 読み書き可能です。
<注意事項>
MB90800 シリーズは , デバイスに内蔵されるメモリ空間までのサポートになります。
各レジスタの動作の詳細は , 「2.4.2 バンク方式によるアドレス指定」を参照してくだ
さい。
53
第 2 章 CPU
2.8
汎用レジスタ
汎用レジスタは , "000180H" ∼ "00037FH" の RAM 上に , 16 ビット× 8 本を 1 レジ
スタバンクとして割り当てたメモリブロックです。汎用の 8 ビットレジスタ ( バイ
トレジスタ R0 ∼ R7), 16 ビットレジスタ ( ワードレジスタ RW0 ∼ RW7), もしくは
32 ビットレジスタ ( ロングワードレジスタ RL0 ∼ RL3) として使用できます。
汎用レジスタは , 短い命令で高速に RAM にアクセスできます。レジスタバンクでブ
ロック化されているために , 内容の保護や機能単位の分割が容易です。また , ロング
ワードレジスタとして使用する場合は , 全空間を直接アクセスするリニアポインタ
としても使用できます。
■ 汎用レジスタの構成
汎用レジスタは , "000180H" ∼ "00037FH" の RAM 上に全部で 32 バンク存在し , レジス
タバンクポインタ (RP) でバンクを指定します。レジスタバンクポインタ (RP) で設定
するバンクの先頭アドレスは , 下式のようになります。16 ビット× 8 本を 1 レジスタ
バンクとして定義します。
汎用レジスタの先頭アドレス= 000180H +レジスタバンクポインタ (RP) × 10H
レジスタバンクポインタ (RP) の詳細は , 「2.7.5 レジスタバンクポインタ (PS:RP)」を
参照してください。
54
第 2 章 CPU
図 2.8-1 汎用レジスタバンクのメモリ空間内の配置と構成
内蔵RAM
000380H
000370H
000360H
0002E0H
0002D0H
0002C0H
0002B0H
:
バイト
アドレス
レジスタバンク31
レジスタバンク30
02CEH
:
:
:
02CCH
02CAH
R7
02CFH
RW7
R4
R5
02CDH
RW6
R2
R3
02CBH
RW5
R1
02C9H
RW4
R6
02C8H
レジスタバンク21
レジスタバンク20
バイト
アドレス
R0
02C6H
RW3
02C7H
レジスタバンク19
02C4H
RW2
02C5H
:
:
:
:
:
02C2H
RW1
02C3H
02C0H
RW0
02C1H
0001B0H
0001A0H
レジスタバンク 2
000190H
000180H
レジスタバンク 1
レジスタバンク 0
RP
14H
:
LSB
RL3
RL2
RL1
RL0
MSB
16ビット
変換式[000180H+RP×10H]
R0 ~ R7 :バイトレジスタ
RW0 ~ RW7:ワードレジスタ
RL0 ~ RL3:ロングワードレジスタ
MSB
:最上位ビット
LSB
:最下位ビット
<注意事項>
レジスタバンクポインタ (RP) は , リセット後 "00H" に初期化されます。
■ レジスタバンク
レジスタバンクは汎用レジスタ ( バイトレジスタ R0 ∼ R7, ワードレジスタ RW0 ∼
RW7, ロングワードレジスタ RL0 ∼ RL3) として , 各種演算やポインタに使用できます。
ロングワードレジスタは , メモリの全空間を直接アクセスするリニアポインタとして
も使用できます。
レジスタバンクのレジスタの内容は , RAM と同様にリセットでは初期化されず , リ
セット前の状態が保持されます。ただし , パワーオン時は不定となります。
表 2.8-1 汎用レジスタの代表的な機能
レジスタ名
機能
R0 ∼ R7
各種命令のオペランドとして使用
( 注意事項 ) R0 はバレルシフトのカウンタおよびノーマライズ ( 正規化 ) 命令のカ
ウンタとしても使用
RW0 ∼ RW7
ポインタとして使用
各種命令のオペランドとして使用
( 注意事項 ) RW0 はストリング命令のカウンタとしても使用
RL0 ∼ RL3
ロングポインタとして使用
各種命令のオペランドとして使用
55
第 2 章 CPU
2.9
プリフィックスコード
命令の前にプリフィックスコードを設定した場合は , プリフィックスコード直後の
命令動作を変更できます。プリフィックスコードには , 以下に示す 3 種類がありま
す。
・バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
・コモンレジスタバンクプリフィックス (CMR)
・フラグ変化抑止プリフィックス (NCC)
■ プリフィックスコード
● バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
バンクセレクトプリフィックスを命令の前に設定した場合は , 命令がアクセスするメ
モリ空間をアドレス指定方式とは無関係に設定できます。
詳細は , 「2.9.1 バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)」を参照してく
ださい。
● コモンレジスタバンクプリフィックス (CMR)
レジスタバンクをアクセスする命令の前にコモンレジスタバンクプリフィックスを設
定した場合は , レジスタバンクポインタ (RP) の値に関係なく , レジスタアクセスを
"000180H" ∼ "00018FH" にあるコモンバンク (RP=00H の場合に設定されるレジスタバ
ンク ) へ変更できます。
詳細は , 「2.9.2 コモンレジスタバンクプリフィックス (CMR)」を参照してください。
● フラグ変化抑止プリフィックス (NCC)
フラグ変化を抑止したい命令の前に , フラグ変化抑止プリフィックスコードを設定し
た場合は , 命令の実行に伴うフラグ変化を抑止できます。
詳細は , 「2.9.3 フラグ変化抑止プリフィックス (NCC)」を参照してください。
56
第 2 章 CPU
2.9.1
バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
データアクセスを行う場合のメモリ空間は , アドレス指定方式ごとに定められてい
ますが , バンクセレクトプリフィックスを命令の前に設定した場合は , アクセスする
メモリ空間をアドレス指定方式とは無関係に設定できます。
■ バンクセレクトプリフィックス (PCB, DTB, ADB, SPB)
表 2.9-1 バンクセレクトプリフィックス
バンクセレクトプリフィックス
選択される空間
PCB
プログラム空間
DTB
データ空間
ADB
アディショナル空間
SPB
コンディションコードレジスタ (CCR) の S フラグの値が "0" の場
合にユーザスタック空間が , "1" の場合にシステムスタック空間が
用いられます。
<注意事項>
バンクセレクトプリフィックスを使用した場合 , 例外的な動作を行う命令があります。
表 2.9-2 バンクセレクトプリフィックスの影響を受けない命令
命令の種類
MOVS
ス ト リ ン グ SCEQ
命令
FILS
PUSHW
命令
バンクセレクトプリフィックスの効果
MOVSW
SCWEQ
FILSW
プリフィックスの有無にかかわらず , オペラン
ドで指定されたバンクレジスタが使用されま
す。
POPW
プリフィックスの有無にかかわらず , S フラグ
が "0"の場合はユーザスタックバンクレジスタ
(USB) が , S フラグが "1" の場合はシステムス
タックバンクレジスタ (SSB) が使用されます。
スタック
操作命令
MOV
MOVW
MOV
I/O アクセス MOV
MOVB
命令
SETB
BBC
WBTC
割 込 み 復 帰 RETI
命令
A, io
MOVX
A, io
io, A
MOVW
io, #imm8 MOVW
A, io:bp MOVB
o:bp
CLRB
io:bp, rel BBS
io, bp
WBTS
A, io
io, A
io, #imm16
io:bp, A
io:bp
io:bp, rel
io:bp
プリフィックスの有無にかかわらず , I/O 空間
( "000000H"∼ "0000FFH")がアクセスされます。
プリフィックスの有無にかかわらず , システム
スタックバンク (SSB) が使用されます。
57
第 2 章 CPU
表 2.9-3 バンクセレクトプリフィックス使用時に注意すべき命令
命令の種類
命令
説明
フラグ変更命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの効果が次の命令まで及びます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果が次の命令まで及びます。
POPW PS
PS 復帰命令に対してはバンクセレクトプリフィックスを
付加しないでください。
PS 復帰命令
58
第 2 章 CPU
2.9.2
コモンレジスタバンクプリフィックス (CMR)
コモンレジスタバンクプリフィックス (CMR) をレジスタバンクをアクセスする命令
の前に設定した場合は , レジスタバンクポインタ (RP) の値に関係なく , レジスタア
クセスを "000180H" ∼ "00018FH" にあるコモンバンク (RP=00H の場合に設定され
るレジスタバンク ) へ変更できます。
■ コモンレジスタバンクプリフィックス (CMR)
複数のタスク間でのデータ交換を容易にするために F2MC-16LX では , 各タスクで共通
に使用できるコモンバンクを用意しています。コモンバンクは , "000180H" ∼ "00018FH"
番地にあります。ただし , 表 2.9-4 に示した命令を使用する場合は , 注意してください。
表 2.9-4 コモンレジスタバンクプリフィックス (CMR) 使用時に注意すべき命令
命令の種類
命令
ストリング
命令
MOVS
SCEQ
FILS
フラグ変更
命令
AND CCR, #imm8
OR CCR, #imm8
プリフィックスの効果が , 次の命令まで
及びます。
POPW PS
プリフィックスの効果が , 次の命令まで
及びます。
MOV ILM, #imm8
プリフィックスの効果が , 次の命令まで
及びます。
PS 復帰命令
ILM設定命令
MOVSW
SCWEQ
FILSW
説明
ストリング命令に対しては , CMR プリ
フィックスを付加しないでください。
59
第 2 章 CPU
2.9.3
フラグ変化抑止プリフィックス (NCC)
フラグ変化を抑止したい命令の前に , NCC プリフィックスを設定した場合は , 命令
の実行に伴うフラグ変化を抑止できます。
■ フラグ変化抑止プリフィックス (NCC)
不要なフラグ変化を抑止するために , フラグ変化抑止プリフィックス (NCC) を用いま
す。フラグ変化が抑止されるフラグには T, N, Z, V, C があります。ただし , 表 2.9-5 に
示した命令を使用する場合は注意してください。
T, N, Z, V, C の各フラグの詳細は , 「2.7.4 コンディションコードレジスタ (PS:CCR)」
を参照してください。
表 2.9-5 フラグ変化抑止プリフィックス (NCC) の使用時に注意すべき命令
命令の種類
命令
説明
ストリング命令
MOVS
SCEQ
FILS
MOVSW
SCWEQ
FILSW
ストリング命令に対しては , NCC プリフィック
スを付加しないでください。
フラグ変更命令
AND CCR, #imm8
OR
CCR, #imm8
プリフィックスの有無にかかわらず , コンディ
ションコードレジスタ (CCR) は命令の仕様どお
りに変化します。プリフィックスの効果が , 次
の命令まで及びます。
PS 復帰命令
POPW PS
プリフィックスの有無にかかわらず , コンディ
ションコードレジスタ (CCR) は命令の仕様どお
りに変化します。プリフィックスの効果が , 次
の命令まで及びます。
ILM 設定命令
MOV ILM, #imm8
プリフィックスの効果が , 次の命令まで及びま
す。
割込み命令
割込み復帰命令
INT #vct8 INT9
INT adder16 INTP addr24
RETI
プリフィックスの有無にかかわらず , コンディ
ションコードレジスタ (CCR) は命令の仕様どお
りに変化します。
コンテキスト
スイッチ命令
JCTX @A
プリフィックスの有無にかかわらず , コンディ
ションコードレジスタ (CCR) は命令の仕様どお
りに変化します。
60
第 2 章 CPU
2.9.4
プリフィックスコードに関する制約
プリフィックスコードの使用には , 以下のような制約があります。
・プリフィックスコードや割込み / ホールド抑止命令の実行中は , 割込み / ホールド
要求を受け付けません。
・割込み / ホールド命令の前にプリフィックスコードを置いた場合 , プリフィック
スコードの効果が遅延します。
・競合するプリフィックスコードが連続した場合 , 最後のプリフィックスコードが
有効となります。
■ プリフィックスコードと割込み / ホールド抑止命令
表 2.9-6 プリフィックスコードと割込み / ホールド抑止命令
プリフィッ
クスコード
割込み / ホールド抑止命令
( プリフィックスコードの効果を遅延させる命令 )
PCB
DTB
ADB
SPB
CMR
NCC
割込みやホールド要求を
受け付けない命令
MOV
ILM, #imm8
OR
CCR, #imm8
AND
CCR, #imm8
POPW PS
● 割込み / ホールドの抑止
図 2.9-1 に示すように , プリフィックスコードや割込み / ホールド命令の実行中は , 割
込みやホールド要求が発生しても , 受け付けられません。受け付けられない場合 , 割込
み / ホールド処理が行われるのは , プリフィックスコードや割込み / ホールド抑止命令
以降 , 初めてプリフィックスコードや割込み / ホールド命令以外の命令が実行された後
になります。
図 2.9-1 割込み / ホールドの抑止
割込み/ホールド抑止命令
・・・・・・・・・・・・・・・
(a)
・・・
(a) 普通の命令
割込み要求発生
割込み受付け
● プリフィックスコードの効果遅延
図 2.9-2 に示すように , 割込み / ホールド抑止命令の前にプリフィックスコードを設定
した場合 , プリフィックスコードの効果は割込み / ホールド抑止命令後の最初の命令に
対して有効となります。
61
第 2 章 CPU
図 2.9-2 割込み / ホールド抑止命令とプリフィックスコード
割込み/ホールド抑止命令
MOV A,FFH
NCC
・・・・
MOV ILM,#imm8
ADD A,01H
CCR:XXX10XXB
CCR:XXX10XXB
NCCによりCCRは変化しません。
■ プリフィックスコードの連続
競合するプリフィックスコード (PCB, ADB, DTB, SPB) が連続していた場合 , 最後の
PCB に設定された値が有効になります。
図 2.9-3 プリフィックスコードの連続
プリフィックスコード
・・・
ADB
DTB
PCB
ADD A,01H
・・・
プリフィックスコードは
PCBが有効になります。
62
第3章
リセット
MB90800 シリーズのリセットについて説明しま
す。
3.1 リセットの概要
3.2 リセット要因と発振安定待ち時間
3.3 外部リセット端子
3.4 リセット動作
3.5 リセット要因ビット
3.6 リセットによる各端子の状態
63
第 3 章 リセット
リセットの概要
3.1
リセット要因が発生した場合 , CPU は現在実行中の処理を中断し , リセット解除待
ち状態になります。リセット解除後は , リセットベクタで示されたアドレスから処
理を開始します。
リセットには , 以下に示す 4 種類の要因があります。
・パワーオンリセットの発生 ( 電源投入時 )
・ウォッチドッグタイマのオーバフロー ( ウォッチドッグタイマ使用の場合 )
・RST 端子から外部リセット入力を行った場合
・低消費電力モード制御レジスタの内部リセット信号発生ビット (RST) を "0" に
設定した場合 ( ソフトウェアリセット )
■ リセット要因
表 3.1-1 リセット要因
リセット
発生要因
マシンクロック
ウォッチ
ドッグタイマ
発振安定
待ち
外部端子
RST 端子への "L" レベル
入力設定
メインクロック
(MCLK)
停止
なし
ソフトウェア
低消費電力モード制御レジスタ
(LPMCR) の内部リセット信号発
生ビット (RST) に "0" を設定
メインクロック
(MCLK)
停止
なし
ウォッチ
ドッグタイマ
ウォッチドッグタイマオーバ
フロー
メインクロック
(MCLK)
停止
なし
パワーオン
電源立上げ時
メインクロック
(MCLK)
停止
あり
MCLK: メインクロック周波数 ( 発振クロックの 2 分周クロック :2/HCLK)
● 外部リセット
外部リセットは , 外部リセット端子 (RST 端子 ) を "L" レベルに設定した場合にリセッ
トを発生します。"L" レベル入力時間は , 16 マシンサイクル (16/ φ) 以上必要です。マ
シンクロックで動作している場合には , 外部リセット端子を "L" レベルに設定してリ
セットを発生しても , 発振安定待ち時間を確保しません。
<参考>
外部リセット端子を命令実行中 ( 転送系命令実行中 MOV 命令など ) に "L" レベルに設定
した場合 , 実行中の命令が終了した後に , 外部リセット入力が有効になります。ただし ,
ストリング系命令 (MOVS 命令など ) は設定したカウンタ値による転送が完了する前に ,
外部リセット入力が有効になる場合があります。
外部リセット端子に "L" レベルを設定した場合 , ポート端子は命令実行サイクルに関係な
くリセット状態になります ("L" レベルを設定した場合は非同期です ) 。
64
第 3 章 リセット
● ソフトウェアリセット
ソフトウェアリセットは , 低消費電力モード制御レジスタ (LPMCR) の内部リセット信
号発生ビット (RST) に "0" を設定することにより , 3 マシンサイクル (3/ φ ) のリセット
を発生します。ソフトウェアリセットでは , 発振安定待ち時間を確保しません。
● ウォッチドッグリセット
ウォッチドッグリセットは , ウォッチドッグタイマ起動後 , ウォッチドッグタイマ制御
レジスタ (WDTC) のインターバル時間設定ビット (WT1, WT0) で設定した時間内に ,
ウォッチドッグタイマ制御レジスタ (WDTC) のウォッチドッグ制御ビット (WTE) に "0"
を設定しなかった場合は , リセットを発生します。
● パワーオンリセット
パワーオンリセットは , 電源投入時に発生するリセットです。
発振安定待ち時間は , 217/HCLK( 約 20.97 ms: 発振クロック 6.25 MHz 時 ) 固定です。発
振安定待ち時間が経過した後 , リセット動作を行います。
<参考>
クロックの定義
HCLK: 発振クロック周波数 ( 発振端子から供給されるクロック )
MCLK: メインクロック周波数 ( 発振クロックの 2 分周クロック )
φ
: マシンクロック周波数 (CPU 動作クロック )
1/φ : マシンサイクル (CPU 動作クロック周期 )
クロックの詳細は , 「4.1 クロックの概要」を参照してください。
65
第 3 章 リセット
3.2
リセット要因と発振安定待ち時間
F2MC-16LX には , 4 種類のリセット要因があり , リセット時の発振安定待ち時間が
リセット要因によって異なります。
■ リセット要因と発振安定待ち時間
表 3.2-1 にリセット要因と発振安定待ち時間を , 表 3.2-2 にクロック選択レジスタ
(CKSCR) の設定による発振安定待ち時間を示します。
表 3.2-1 リセット要因と発振安定待ち時間
発振安定待ち時間
( ) 内は発振クロック周波数 6.25 MHz 時
リセット要因
パワーオンリセット
217/HCLK ( 約 20.97 ms)
ウォッチドッグタイマ
なし (WS1, WS0 ビットは "11B" に初期化されます。)
RST 端子からの外部リセット
なし (WS1, WS0 ビットは "11B" に初期化されます。)
ソフトウェアリセット
なし (WS1, WS0 ビットは "11B" に初期化されます。)
HCLK: 発振クロック周波数 (MHz)
表 3.2-2 クロック選択レジスタ (CKSCR) の設定による発振安定待ち時間
発振安定待ち時間
( ) 内は発振クロック周波数 6.25 MHz 時
WS1
WS0
0
0
210/HCLK ( 約 164 μs)
0
1
213/HCLK ( 約 1.31 ms)
1
0
215/HCLK ( 約 5.24 ms)
1
1
217/HCLK ( 約 20.97 ms)
HCLK
: 発振クロック周波数 (MHz)
<注意事項>
発振クロック振動子は , 発振を開始してから固有振動数で安定するまでに , 振動子固有の
発振安定待ち時間が必要ですので , 使用する振動子に合わせた発振安定待ち時間を設定し
てください。
■ 発振安定待ちリセット状態
電源投入時のリセット , およびストップモード中の外部リセットに対するリセット動
作は , タイムベースタイマによって作られる発振安定待ち時間を経過してから行いま
す。外部リセット入力が解除されていなければ , 外部リセット解除後にリセット動作を
行います。
66
第 3 章 リセット
3.3
外部リセット端子
外部リセット端子 (RST 端子 ) へ , "L" レベル入力を設定することにより , 内部リ
セットが発生します。MB90800 シリーズは , CPU 動作クロックに同期してリセット
がかかりますが , 外部端子 (I/O ポート ) のみ非同期でリセットがかかります。
■ 外部リセット端子部のブロックダイヤグラム
● 内部リセットのブロックダイヤグラム
図 3.3-1 内部リセットのブロックダイヤグラム
Rp
RST
P-ch
端子
N-ch
CPU動作クロック
(PLL逓倍回路,HCLKの2分周)
同期化回路
HCLK:発振クロック周波数
内部リセット信号
入力バッファ
<注意事項>
内部回路の初期化には , クロックが必要です。リセットを入力した場合は , 発振端子から
クロックが供給されている必要があります。
● 外部端子 (I/O ポート ) 用の内部リセットのブロックダイヤグラム
図 3.3-2 外部端子用の内部リセットのブロックダイヤグラム
Rp
RST
P-ch
端子
N-ch
外部端子へのリセット信号
HCLK:発振クロック周波数
入力バッファ
67
第 3 章 リセット
3.4
リセット動作
リセットが解除された場合 , モード端子の設定により , 内部メモリまたは外部メモリ
に設定されたモードデータとリセットベクタを取り込みます。モードデータレジス
タにより CPU の動作モードが設定され , リセットベクタによりリセットシーケンス
終了後の実行開始アドレスが設定されます。
■ リセット動作の概要
図 3.4-1 リセット動作フロー
パワーオンリセット
ストップモード
外部リセット
ソフトウェアリセット
ウォッチドッグタイマリセット
リセット中
発振安定待ちリセット状態
モードデータ取込み
(バスモードのレジスタ設定)
リセットシーケンス
リセットベクタ取込み
プログラム動作
リセットベクタが示す
アドレスから命令コードを
取り込み,命令を実行
■ モード端子
モード端子 (MD2 ∼ MD0) は , モードデータとリセットベクタの取込み方法を事前に設
定します。モードデータとリセットベクタを取り込む場合は , リセットシーケンスを実
行します。詳細は , 「7.2 モード端子 (MD2 ∼ MD0)」を参照してください。
■ モードフェッチ
リセットが解除された場合 , CPU はモードデータをモードデータレジスタに取り込み
ます。モードデータを取り込んだ後に , リセットベクタをプログラムカウンタ (PC) と
プログラムカウンタバンクレジスタ (PCB) に取り込みます。
モードデータレジスタは , バスモードの設定およびバス幅の設定を行うことができま
す。また , リセットベクタでは , プログラムの開始アドレスを指定できます。
モードデータ取込みの詳細は , 「第 7 章 モード設定」を参照してください。
68
第 3 章 リセット
図 3.4-2 リセットベクタとモードデータの転送
2
メモリ空間
F MC-16LX CPUコア
モードレジスタ
FFFFDFH
モードデータ
FFFFDEH
リセットベクタ・ビット23~16
FFFFDDH
リセットベクタ・ビット15~8
FFFFDCH
リセットベクタ・ビット7~0
マイクロ ROM
リセットシーケンス
PCB
PC
● モードデータレジスタ ( アドレス :"FFFFDFH")
モードデータレジスタは , リセットシーケンス実行中に設定を変更できます。モード
データレジスタの設定は , リセットベクタ取込み後から有効になります。また , 命令を
使用して , "FFFFDFH" にモードデータを設定しても , モードデータレジスタを書き換え
ることはできません。
詳細は , 「7.3 モードデータ」を参照してください。
● リセットベクタ ( アドレス :"FFFFDCH" ∼ "FFFFDEH")
リセット解除後のプログラム開始アドレスを設定します。リセットベクタで設定され
たアドレスからプログラムを実行します。
69
第 3 章 リセット
3.5
リセット要因ビット
リセット発生要因は , ウォッチドッグタイマ制御レジスタ (WDTC) を読み出すこと
で判別できます。
■ リセット要因ビット
ウォッチドッグタイマ制御レジスタ (WDTC) のリセット要因フラグビット (PONR,
WRST, ERST, SRST) でリセット要因の確認ができます。リセット解除後に , リセット
発生要因を判別する必要がある場合には, ウォッチドッグタイマ制御レジスタ(WDTC)
のリセット要因フラグビット (PONR, WRST, ERST, SRST) を読み出してください。
リセット要因フラグビット (PONR, WRST, ERST, SRST) は , ウォッチドッグタイマ制御
レジスタ (WDTC) を読み出した場合 , "0" にクリアされます。
図 3.5-1 リセット要因ビットブロックダイヤグラム
RST端子
パワーオン
発生検出回路
ウォッチドッグ
タイマ制御
レジスタ
(WDTC)
定期的なクリアなし
RST="L"
電源投入
ウォッチドッグ
タイマリセット
発生検出回路
外部リセット
要求検出回路
RSTビットセット
LPMCR:RSTビット
書込み検出回路
クリア
S
R
S
F/F
Q
R
R
S
F/F
Q
PONR
S
F/F
Q
ERST
R
F/F
遅延回路
Q
WRST
SRST
ウォッチドッグタイマ
制御レジスタ
(WDTC)読出し
内部データバス
S :セット
R :リセット
Q :出力
F/F:フリップフロップ
70
第 3 章 リセット
■ リセット要因ビットとリセット要因の対応
図 3.5-2 リセット要因ビットの構成 ( ウォッチドッグタイマ制御レジスタ )
ウォッチドッグタイマ制御レジスタ(WDTC)
アドレス
bit
0000A8H
7
6
PONR
-
R/W
-
2
1
0
WRST ERST SRST
WTE
WT1
WT0
R/W
R/W
R/W
R/W
5
4
R/W
3
R/W
初期値
X-XXX111B
リセット要因フラグビット
R/W :リード/ライト可能
X :不定
- :未定義ビット
表 3.5-1 リセット要因ビットとリセット要因の対応
PONR
WRST
ERST
SRST
パワーオンリセット
1
X
X
X
ウォッチドッグタイマリセット
*
1
*
*
外部リセット (RST 端子 )
*
*
1
*
ソフトウェアリセット (LPMCR:RST)
*
*
*
1
リセット要因
*: 前の状態を保持
X: 不定
■ リセット要因ビットの注意事項
● 複数のリセット要因が発生した場合
リセット要因が複数発生する場合は , ウォッチドッグタイマ制御レジスタ (WDTC) の
対応するそれぞれのリセット要因ビットに "1" がセットされます。例えば , 外部リセッ
トとウォッチドッグタイマリセットが同時に発生した場合は , ウォッチドッグタイマ
制御レジスタ (WDTC) のリセット要因フラグビット (ERST, WRST) に "1" がセットさ
れます。
● パワーオンリセットの場合
パワーオンリセットが発生した場合は, ウォッチドッグタイマ制御レジスタ(WDTC)の
リセット要因フラグビット (PONR) に "1" がセットされますが , リセット要因フラグ
ビット (WRST, ERST, SRST) は不定値となります。
リセット要因フラグビット (PONR) に "1" がセットされている場合は , リセット要因フ
ラグビット (WRST, ERST, SRST) の内容を無視してください。
● リセット要因ビットのクリア
リセット要因フラグビット (PONR, WRST, ERST, SRST) は , ウォッチドッグタイマ制御
レジスタ (WDTC) を読み出した場合 , "0" にクリアされます。リセットが発生しても
ウォッチドッグタイマ制御レジスタ (WDTC) を読み出さなければ , リセット要因フラ
グビットは "0" にクリアされません。
<注意事項>
パワーオンリセットが発生しない条件で電源を立ち上げた場合は, WDTCレジスタの値は
保証されません。
71
第 3 章 リセット
3.6
リセットによる各端子の状態
リセットによる各端子の状態について説明します。
■ リセット中の端子の状態
リセット中の端子の状態は , モード端子 (MD2 ∼ MD0=011B) の設定によって決定され
ます。
● 内部ベクタモード設定時
入出力端子は , すべてハイインピーダンスになり , モードデータの読出し先は内部
ROM になります。
■ モードデータ読出し後の端子の状態
モードデータ読出し後の端子の状態は , モードデータ (M1, M0=00B) によって決定され
ます。
● シングルチップモード設定時 (M1, M0=00B)
入出力端子は , すべてハイインピーダンスになり , モードデータの読出し先は内部
ROM になります。
<注意事項>
外部回路が外部端子レベルを動作しないように設定してください。
72
第4章
クロック
クロックについて説明します。
4.1 クロックの概要
4.2 クロック発生部のブロックダイヤグラム
4.3 クロック選択レジスタ (CKSCR)
4.4 クロックモード
4.5 発振安定待ち時間
4.6 振動子と外部クロックの接続
73
第 4 章 クロック
4.1
クロックの概要
クロック発生部は , CPU や周辺機能の動作クロックである内部クロックの動作を制
御します。この内部クロックのことをマシンクロックとよび , その 1 周期をマシン
サイクルといいます。また , 原発振によるクロックを発振クロックとよび , 内部の
PLL 発振によるクロックを PLL クロックといいます。
■ クロックの概要
クロック発生部は発振回路を内蔵しており , 外部に振動子を接続することによって , 発
振クロックを発生します。外部で生成したクロックを入力して , 発振クロックにするこ
ともできます。また , PLL クロック逓倍回路を内蔵しており , 発振クロックの逓倍ク
ロックを 4 種類発生できます。クロック発生部では , 発振安定待ち時間の制御 , PLL ク
ロック逓倍制御 , およびクロックセレクタでのクロックの切換えによる内部クロック
の動作制御を行います。
● 発振クロック (HCLK)
X0, X1 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロック
のことです。
● サブクロック (SCLK)
X0A, X1A 端子に振動子を取り付けて発生させるか , あるいは外部から入力したクロッ
クの 4 分周クロックをいいます。
サブクロックは , 時計タイマの入力クロックおよびサブクロックモード時の低速マシ
ンクロックとなります。
● メインクロック (MCLK)
発振クロックの 2 分周クロックです。タイムベースタイマとクロックセレクタへの入
力クロックとなります。
● PLL クロック (PCLK)
発振クロックを 内蔵の PLL クロック逓倍回路により逓倍したクロックです。4 種類の
逓倍クロックを選択できるようになっています。
● マシンクロック ( φ )
CPU と周辺機能の動作クロックです。このクロックの 1 周期をマシンサイクル (1/ φ)
としています。メインクロック ( 発振クロックの 2 分周クロック ) と , 4 種類の逓倍ク
ロックの中から 1 種類を選択できるようになっています。
<注意事項>
CPU および周辺機能の最大動作周波数が 25 MHz です。最大動作周波数を超える逓倍率
を指定した場合 , デバイスは正常に動作しません。
例えば , 発振クロック周波数が 25 MHz で発振している場合には , 1 逓倍と 2 分周動作の
設定が可能です。
74
第 4 章 クロック
クロック発生部のブロックダイヤグラム
4.2
クロック発生部は , 次の 6 つのブロックで構成されています。
・システムクロック発生回路
・サブクロック発生回路
・PLL 逓倍回路
・クロックセレクタ
・クロック選択レジスタ (CKSCR)
・発振安定待ち時間セレクタ
■ クロック発生部のブロックダイヤグラム
図 4.2-1 に , クロック発生部のブロックダイヤグラムを示します。
なお , 図 4.2-1 には , スタンバイ制御回路 , タイムベースタイマの回路も含まれていま
す。
図 4.2-1 クロック発生部のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP SLP SPL RST TMD CG1 CG0 予約
RST
端子
CPU間欠動作
セレクタ
端子ハイ
インピーダンス
制御
内部リセット
発生回路
内部リセット
間欠サイクル選択
CPUクロック
CPUクロック
制御回路
ストップ,スリープ信号
スタンバイ
制御回路
2
端子ハイインピー
ダンス制御回路
割込み解除
ストップ信号
マシンクロック
発振安定待ち解除
周辺クロック
制御回路
発振安定
待ち時間
セレクタ
2
SCLK
4分周
サブ
クロック
発生回路
2
PLL逓倍回路
X0A 端子
システム
クロック
発生回路
X1A 端子
X0 端子
周辺
クロック
HCLK
SCM MCM WS1 WS0 SCS MCS CS1 CS0
クロック選択レジスタ (CKSCR)
2分周
1024分周
MCLK
2分周
4分周
4分周
4分周
2分周
タイムベースタイマ
X1 端子
HCLK : 発信クロック
MCLK : メインクロック
SCLK : サブクロック
ウォッチドッグタイマへ
75
第 4 章 クロック
● システムクロック発生回路
外部に接続した振動子によって発振クロック (HCLK) を発生します。外部クロックを
入力することもできます。
● サブクロック発生回路
外部に接続した振動子によってサブクロック (SCLK) を発生します。外部クロックを入
力することもできます。
● PLL 逓倍回路
PLL 発振で発振クロックを逓倍し , CPU クロックセレクタへ供給します。
● クロックセレクタ
メインクロックと 4 種類の PLL クロックから , CPU 系クロック制御回路および周辺系
クロック制御回路へ供給されるクロックを選択します。
● クロック選択レジスタ (CKSCR)
発振クロックと PLL クロックの切換え , 発振安定待ち時間の選択および PLL クロック
の逓倍率の選択などを行います。
● 発振安定待ち時間セレクタ
ストップモード解除時 , サブクロックモードからメインクロックモードへの移行時 , お
よびサブクロックから PLL クロックモードへの移行時の発振クロックの発振安定待ち
時間を選択する回路です。4 種類のタイムベースタイマ出力を選択します。
76
第 4 章 クロック
4.3
クロック選択レジスタ (CKSCR)
クロック選択レジスタ (CKSCR) は , メインクロックと PLL クロックの切換え , 発振
安定待ち時間の選択 , および PLL クロックの逓倍率の選択などを行うレジスタです。
■ クロック選択レジスタ (CKSCR) の構成
図 4.3-1 に , クロック選択レジスタ (CKSCR) の構成を , 表 4.3-1 に , クロック選択レジ
スタ (CKSCR) の各ビットの機能説明を示します。
図 4.3-1 クロック選択レジスタ (CKSCR) の構成
アドレス
0000A1H
bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 bit7
bit0 初期値
SCM MCM WS1 WS0 SCS MCS CS1 CS0
(LPMCR)
11111100B
R/W R/W R/W R/W R/W R/W R/W R/W
逓倍率設定ビット
( )内は発振クロック6.25MHz時
0 1×HCLK (6.25MHz)
1 2×HCLK (12.5MHz)
0 3×HCLK (18.75MHz)
1 4×HCLK (25MHz)
マシンクロック設定ビット
PLLクロック設定
メインクロック設定
CS1 CS0
0
0
1
1
MCS
0
1
SCS
0
1
マシンクロック選択ビット(サブ)
サブクロック選択*2
メインクロック選択
WS1 WS0
0
0
1
1
発振安定待ち時間設定ビット
( )内は発振クロック6.25MHz時
0
1
0
1
MCM
0
1
213/HCLK(1.31ms)
215/HCLK(5.24ms)
217/HCLK(20.97ms)*1
マシンクロック表示ビット
PLLクロックで動作中
メインクロックで動作中
SCM
0
1
マシンクロック表示ビット
サブクロックで動作中*2
メインクロックで動作中
HCLK:発振クロック
R/W :リード/ライト可能
:初期値
*1: パワーオンリセット時は218/HCLK(約41.94ms)になります。
*2: 1系統品では,サブクロックは選択できません。
SCSビットに"0"を設定した場合,リセットを発生します。
<注意事項>
マシンクロック選択ビットは , リセットによりメインクロック選択に初期化されます。
77
第 4 章 クロック
表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (1 / 2)
ビット名
bit15
bit14
bit13,
bit12
機能
SCM:
マシンクロック
表示ビット
・マシンクロックとして , メインクロックまたはサブクロックのどち
らが選択されているかを表示するビットです。
・このビットが "0"のときサブクロックが選択されていることを示し,
"1" のときメインクロックが選択されていることを示します。
・SCS が "1" で , かつ SCM が "0" ならば , メインクロック発振安定待
ち時間中であることを示します。
・書込みは , 動作に影響しません。
MCM:
マシンクロック
表示ビット
・マシンクロックとして , メインクロックまたは PLL クロックのどち
らが選択されているかを表示するビットです。
・このビットが "0"のときPLLクロックが選択されていることを示し,
"1" のときメインクロックが選択されていることを示します。
・MCS が "0" で , かつ MCM が "1" ならば , PLL クロック発振安定待
ち時間中であることを示します。
・書込みは , 動作に影響しません。
WS1, WS0:
発振安定待ち
時間選択ビット
・ストップモード解除時 , サブクロックモードからメインクロック
モードへの移行時 , およびサブクロックから PLL クロックモードへ
の移行時の発振クロックの発振安定待ち時間を選択します。
・すべてのリセット要因で "11B " に初期化されます。
( 注意事項 ) 発振安定待ち時間は , 使用する振動子に合わせて適切な
値を設定する必要があります。
「4.2 クロック発生部のブ
ロックダイヤグラム」を参照してください。"00B " の設
定は , メインクロックモード時のみ設定してください。
PLL クロック時の発振安定待ち時間は , 214/HCLK で固定
です。
bit11
78
SCS:
マシンクロック
選択ビット
・マシンクロックとして , メインクロック , またはサブクロックのど
ちらを選択するかを指定するビットです。
・このビットが "0" のときに "1" を書き込むと , メインクロックの発
振安定待ち時間が発生するために , 自動的にタイムベースタイマが
クリアされます。
・サブクロック選択時の動作クロックは , サブ発振クロックの 4 分周
を使用します ( サブ発振クロック 32 kHz 時 , マシンクロックは 8 kHz
になります )。
・SCS, MCS がともに "0" のときは , SCS が優先され , サブクロックが
選択されます。すべてのリセット要因で "1" に初期化されます。
第 4 章 クロック
表 4.3-1 クロック選択レジスタ (CKSCR) の各ビットの機能説明 (2 / 2)
ビット名
bit10
bit9,
bit8
MCS:
マシンクロック
選択ビット
CS1, CS0:
逓倍率選択
ビット
機能
・マシンクロックとして , メインクロック , または PLL クロックのど
ちらを選択するかを指定するビットです。
・このビットが "0" のとき PLL クロックを選択し , "1" のときメイン
クロックを選択します。
・このビットが "1" のときに "0" を書き込むと , PLL クロックの発振
安定待ち時間が発生するために , 自動的にタイムベースタイマがク
リアされ, さらにタイムベースタイマ制御レジスタ(TBTC)の TBOF
ビットもクリアされます。
・PLL クロックの発振安定待ち時間は , 214/HCLK で固定です ( 発振
クロック周波数 4 MHz 時 , 発振安定待ち時間は約 4.1 ms になりま
す )。
・メインクロック選択時の動作クロックは , 発振クロックを 2 分周し
たクロックとなります ( 発振クロック周波数 4 MHz 時 , 動作クロッ
クは 2 MHz になります )。
・すべてのリセット要因で "1" に初期化されます。
( 注意事項 ) MCS ビットが "1" のときに "0" を書き込む場合には , タ
イムベースタイマ制御レジスタ (TBTC) の TBIE ビット
またはインタラプトレベルマスクレジスタ (ILM) により
, タイムベースタイマ割込みがマスクされている状態で
行うようにしてください。
・PLL クロックの逓倍率を選択するビットです。
・4 種類の逓倍率から選択できます。
・すべてのリセット要因で "00B " に初期化されます。
( 注意事項 ) MCS ビットまたは MCM ビットが "0" のときには , 書込
みが抑止されます。いったん , MCS ビットを "1" にした
( メインクロックモード ) 後に , CS1, CS0 ビットを書き換
えてください。
HCLK:発振クロック周波数
79
第 4 章 クロック
4.4
クロックモード
クロックモードには , メインクロックモードと PLL クロックモード , サブクロック
モードがあります。
■ メインクロックモード , PLL クロックモード , サブクロックモード
● メインクロックモード
メインクロックモードは , CPU および周辺機能の動作クロックとして発振クロックを
2 分周したクロックを使用し , PLL クロックを停止させます。
● PLL クロックモード
PLL クロックモードは , CPU および周辺機能の動作クロックとして PLL クロックを使
用します。PLL クロックの逓倍率は , クロック選択レジスタ (CKSCR:CS1, CS0) により
選択できます。
● サブクロックモード
サブクロックモードは , CPU および周辺機能の動作クロックとしてサブ発振クロック
を 4 分周したクロックを使用し , メインクロックおよび PLL クロックを停止させます。
■ クロックモードの移行
クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットへの書込み動作により , ク
ロックモードは , メインクロックモード , PLL クロックモード , サブクロックモードに
移行します。
● メインクロックモードから PLL クロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "1"
から "0" に書き換えた場合には , PLL クロックの発振安定待ち時間 (214/HCLK) 後に , メ
インクロックから PLL クロックに切り換わります。
● PLL クロックモードからメインクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の MCS ビットを "0" か
ら "1" に書き換えた場合には , PLL クロックとメインクロックのエッジが一致するタイ
ミング (1 ∼ 8 PLL クロック後 ) で PLL クロックからメインクロックに切り換わります。
● メインクロックモードからサブクロックモードへの移行
メインクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1"
から "0" に書き換えた場合には , メインクロックからサブクロックに切り換わります。
● サブクロックモードからメインクロックモードへの移行
サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か
ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック
からメインクロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットにより選択します。
80
第 4 章 クロック
● PLL クロックモードからサブクロックモードへの移行
PLL クロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "1" か
ら "0" に書き換えた場合には , PLL クロックからサブクロックに切り換わります。
● サブクロックモードから PLL クロックモードへの移行
サブクロックモードの状態で , クロック選択レジスタ (CKSCR) の SCS ビットを "0" か
ら "1" に書き換えた場合には , メインクロックの発振安定待ち時間後に , サブクロック
から PLL クロックに切り換わります。発振安定待ち時間は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットにより選択します。
<注意事項>
クロック選択レジスタ (CKSCR) の MCS ビット , SCS ビットを書き換えても即座にマシ
ンクロックの切換えは行われません。マシンクロックに依存する周辺機能を操作する場合
には , クロック選択レジスタ (CKSCR) の MCM ビットおよび SCM ビットを参照してマシ
ンクロックの切換えが行われたことを確認した後に , 周辺機能の操作を行ってください。
SCS ビット , MCS ビットがともに "0" の場合は , SCS が優先され , サブクロックモード
になります。
■ PLL クロック逓倍率の選択
クロック選択レジスタ (CKSCR) の CS1, CS0 ビットに "00B" ∼ "11B" を書き込むことに
より , 1 ∼ 4 逓倍の 4 種類の PLL クロック逓倍率を選択できます。
■ マシンクロック
PLL 逓倍回路から出力される PLL クロック , 原発振の 2 分周クロック , サブ発振クロッ
クの 4 分周クロックが , マシンクロックとなります。このマシンクロックが CPU およ
び周辺機能に供給されます。メインクロック , PLL クロック , サブクロックは , クロッ
ク選択レジスタ (CKSCR) の MCS ビットまたは SCS ビットへの書込みにより , いずれ
かを選択できます。
図 4.4-1 に , マシンクロック選択の状態遷移図を示します。
81
第 4 章 クロック
図 4.4-1 マシンクロック選択の状態遷移図
(8)
メイン
MCS=1
MCM=1
(1)
SCS=1
SCM=1
CS1,CS0=XXB
(10)
メイン→サブ
MCS=1
MCM=1
(9)
SCS=0
SCM=1
CS1,CS0=XXB
(16)
(10)
(11) サブ→メイン
(8)
MCS=1
MCM=1
SCS=1
(8)
(6)
SCM=0
メイン→PLLx (2)
CS1,CS0=XXB
(12) サブ→PLL
MCS=0
(3)
(13) MCS=0
MCM=1
(4)
(14) MCM=1
SCS=1
(5)
(15) SCS=1
SCM=0
SCM=1
CS1,CS0=XXB
CS1,CS0=XXB
82
PLL1→メイン
(7) MCS=1
MCM=0
SCS=1
SCM=1
CS1,CS0=00B
PLL1逓倍
MCS=0
MCM=0
(6) SCS=1
SCM=1
CS1,CS0=00B
PLL2→メイン
MCS=1
(7) MCM=0
SCS=1
SCM=1
CS1,CS0=01B
PLL2逓倍
MCS=0
MCM=0
(6) SCS=1
SCM=1
CS1,CS0=01B
PLL3→メイン
(7) MCS=1
MCM=0
SCS=1
SCM=1
CS1,CS0=10B
PLL3逓倍
MCS=0
MCM=0
(6) SCS=1
SCM=1
CS1,CS0=10B
PLL4→メイン
(7) MCS=1
MCM=0
SCS=1
SCM=1
CS1,CS0=11B
PLL4逓倍
MCS=0
MCM=0
(6) SCS=1
SCM=1
CS1,CS0=11B
(8)
(8)
(8)
(8)
PLL1→サブ
MCS=1
MCM=0
SCS=0
SCM=1
CS1,CS=00B
サブ
MCS=1
MCM=1
SCS=0
SCM=0
CS1,CS0=XXB
(17)
PLL2→サブ
MCS=1
MCM=0
(17)
SCS=0
SCM=1
CS1,CS0=01B
PLL3→サブ
MCS=1
(17)
MCM=0
SCS=0
SCM=1
CS1,CS0=10B
PLL4→サブ
MCS=1
(17)
MCM=0
SCS=0
SCM=1
CS1,CS0=11B
第 4 章 クロック
(1)
MCS ビット "0" 書込み
(2)
PLL クロック発振安定待ち終了 &CS1,CS0=00B
(3)
PLL クロック発振安定待ち終了 &CS1,CS0=01B
(4)
PLL クロック発振安定待ち終了 &CS1,CS0=10B
(5)
PLL クロック発振安定待ち終了 &CS1,CS0=11B
(6)
MCS ビット "1" 書込み ( ハードウェアスタンバイ , ウォッチドッグリセット
を含む )
(7)
PLL クロックとメインクロックの同期タイミング
(8)
SCS ビット "0" 書込み
(9)
サブクロック発振安定待ち時間終了
(10)
SCS ビット "1" 書込み
(11)
メインクロック発振安定待ち終了
(12)
メインクロック発振安定待ち終了 &CS1,CS0=00B
(13)
メインクロック発振安定待ち終了 &CS1,CS0=01B
(14)
メインクロック発振安定待ち終了 &CS1,CS0=10B
(15)
メインクロック発振安定待ち終了 &CS1,CS0=11B
(16)
SCS ビット "1" 書込み , MCS ビット "0" 書込み
(17)
PLL クロックとサブクロックの同期タイミング
MCS:
クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
MCM:
クロック選択レジスタ (CKSCR) のマシンクロック表示ビット
SCS:
クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ )
SCM:
クロック選択レジスタ (CKSCR) のマシンクロック表示ビット ( サブ )
CS1,CS0:
クロック選択レジスタ (CKSCR) の逓倍率選択ビット
<注意事項>
マシンクロックの初期値はメインクロック (MCS=1, SCS=1) です。
SCS, MCS ともに "0" のときは SCS が優先され , サブクロックが選択されます。
サブクロックモードから PLL クロックモードへの切換え時は , CKSCR レジスタの発振安
定待ち時間選択ビット (WS1, WS0) は "01B", "10B", "11B" に設定してください。
83
第 4 章 クロック
4.5
発振安定待ち時間
電源投入時 , ストップモード解除時 , サブクロックからメインクロックまたは PLL
クロックへ切り換える場合は , 発振クロックの発振が停止しているため , 発振開始
後 , 発振安定待ち時間をとる必要があります。また , メインクロックから PLL ク
ロックへ切換え時も , PLL 発振開始後の発振安定待ち時間が必要となります。
■ 発振安定待ち時間
セラミックや水晶などの振動子は , 発振を開始してから固有の振動数 ( 発振周波数 ) で
安定して発振するまでに , 一般的に数 ms から数十 ms の時間が必要です。このため , 発
振開始直後は CPU の動作を禁止し , 発振安定待ち時間が経過して十分発振が安定した
時点で CPU にクロックを供給するようにします。振動子の種類 ( 水晶 , セラミックな
ど ) によって発振が安定するまでの時間が異なるため , 使用する振動子に合わせて適切
な発振安定待ち時間を選択する必要があります。発振安定待ち時間は , クロック選択レ
ジスタ (CKSCR) の設定で選択できます。
メインクロックから PLL クロックへ切り換える場合は , PLL 発振安定待ち時間の間 ,
CPU はメインクロックで動作し , その後 , PLL クロックに切り換わります。
図 4.5-1 に , 発振開始直後の動作を示します。
図 4.5-1 発振開始直後の動作
振動子の発振時間
発振安定待ち時間
X1
発振開始
84
発振安定
通常動作開始または
PLLクロックへの切換え
第 4 章 クロック
4.6
振動子と外部クロックの接続
MB90800 シリーズは , システムクロック発生回路を内蔵しており , 外部に振動子を
接続してクロックを発生させます。また , 外部で生成したクロックを入力すること
もできます。
■ 振動子と外部クロックの接続
● 水晶振動子またはセラミック振動子の接続例
水晶振動子またはセラミック振動子は , 図 4.6-1 の例で示すように接続してください。
図 4.6-1 水晶振動子またはセラミック振動子の接続例
X0(X0A)
MB90800シリーズ
X1(X1A)
● 外部クロックの接続例
図 4.6-2 の例で示すように , 外部クロックは , X0(X0A) 端子に接続し , X1(X1A) 端子は
開放にしてください。
図 4.6-2 外部クロックの接続例
X0(X0A)
MB90800シリーズ
~
開放
X1(X1A)
85
第 4 章 クロック
86
第5章
低消費電力モード
低消費電力モードについて説明します。
5.1 低消費電力モードの概要
5.2 低消費電力制御回路のブロックダイヤグラム
5.3 低消費電力モード制御レジスタ (LPMCR)
5.4 CPU 間欠動作モード
5.5 スタンバイモード
5.6 状態遷移図
5.7 スタンバイモード , リセット時の端子状態
5.8 低消費電力モード使用上の注意
87
第 5 章 低消費電力モード
低消費電力モードの概要
5.1
動作クロックの選択とクロックの動作制御による , 次のような CPU 動作モードを備
えています。
・クロックモード (PLL クロック , メインクロック , サブクロックの各モード )
・CPU 間欠動作モード (PLL クロック間欠動作 , メインクロック間欠動作 , サブク
ロ ック間欠動作の各モード )
・スタンバイモード ( スリープ , タイムベースタイマ , 時計 , ストップの各モード )
■ CPU 動作モードと消費電流
図 5.1-1 に , CPU 動作モードと消費電流を示します。
図 5.1-1 CPU 動作モードと消費電流
消費電流
数十mA
CPU
動作モード
PLLクロックモード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
PLLクロック間欠動作モード
4逓倍クロック
3逓倍クロック
2逓倍クロック
1逓倍クロック
メインクロックモード(1/2クロックモード)
メインクロック間欠動作モード
数mA
サブクロックモード
サブクロック間欠動作モード
スタンバイモード
スリープモード
タイムベースタイマモード
時計モード
数μA
低消費電力モード
ストップモード
(注意事項):この図は,各種モードのイメージを示したもので,実際の消費電流とは異なる部分があります。
88
第 5 章 低消費電力モード
■ クロックモード
● PLL クロックモード
発振クロック (HCLK) の PLL 逓倍クロックで CPU, および周辺機能を動作させるモー
ドです。
● メインクロックモード
発振クロック (HCLK) の 2 分周クロックで CPU, および周辺機能を動作させるモードで
す。メインクロックモードでは , PLL 逓倍回路が停止します。
● サブクロックモード
サブ発振クロックで CPU および周辺機能を動作させるモードです。サブクロックモー
ドでは , メインクロックおよび PLL 逓倍回路が停止します。
<注意事項>
クロックモードについては , 「5.4 CPU 間欠動作モード」を参照してください。
■ CPU 間欠動作モード
周辺機能に高速クロックを供給したまま CPU を間欠動作させ , 消費電力を低減する
モードです。CPU 間欠動作モードは , CPU がレジスタ , 内蔵メモリ , 周辺機能および外
部アクセスを行う場合 , CPU にだけ間欠クロックを入力するモードです。
■ スタンバイモード
スタンバイモードは , 低消費電力制御回路による CPUへのクロックの供給停止 ( スリー
プモード ) や , CPU と周辺機能へのクロックの供給停止 ( タイムベースタイマモード ),
または発振クロックの停止 ( ストップモード ) によって消費電力を低減します。
● PLL スリープモード
PLL スリープモードは , PLL クロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外は PLL クロックで動作します。
● メインスリープモード
メインスリープモードは , メインクロックモードにおいて CPU の動作クロックを停止
させるモードで , CPU 以外はメインクロックで動作します。
● サブスリープモード
サブスリープモードは , サブクロックモードにおいて CPU の動作クロックを停止させ
るモードで , CPU 以外はサブクロックで動作します。
● タイムベースタイマモード
タイムベースタイマモードは発振クロックとタイムベースタイマ以外の動作を停止さ
せるモードで , タイムベースタイマと時計タイマ以外の機能が停止します。
● 時計モード
時計タイマのみを動作させるモードです。サブクロックのみ動作し , メインクロック
および PLL 逓倍回路が停止します。
● ストップモード
ストップモードは原発振を停止させるモードで , すべての機能が停止します。
89
第 5 章 低消費電力モード
<注意事項>
ストップモードでは発振クロックが停止するため , 最も低消費電力でデータを保持できま
す。
90
第 5 章 低消費電力モード
5.2
低消費電力制御回路のブロックダイヤグラム
低消費電力制御回路は , 次の 7 つのブロックで構成されています。
・CPU 間欠動作セレクタ
・スタンバイ制御回路
・CPU クロック制御回路
・周辺クロック制御回路
・端子ハイインピーダンス制御回路
・内部リセット発生回路
・低消費電力モード制御レジスタ (LPMCR)
■ 低消費電力制御回路のブロックダイヤグラム
図 5.2-1 に , 低消費電力制御回路のブロックダイヤグラムを示します。
図 5.2-1 低消費電力制御回路のブロックダイヤグラム
低消費電力モード制御レジスタ(LPMCR)
STP
SLP
SPL
RST
TMD
CG1
CG0
予約
端子ハイインピーダンス
制御回路
内部リセット
発生回路
RST 端子
CPU間欠動作
セレクタ
内部リセット
間欠サイクル選択
CPUクロック
制御回路
2
CPUクロック
ストップ,スリープ信号
スタンバイ
制御回路
割込み解除
端子ハイイン
ピーダンス制御
ストップ信号
マシンクロック
周辺クロック
制御回路
周辺クロック
発振安定待ち解除
クロック発生部
クロックセレクタ
発振安定
待ち時間
セレクタ
2
2
PLL逓倍回路
SCM
MCM
WS1
WS0
SCS
MCS
CS1
CS0
クロック選択レジスタ(CKSCR)
2分周
X0 端子
X1 端子
システム
クロック
発生回路
2048分周
4分周
4分周
8分周
タイムベースタイマ
4分周
X0A 端子
X1A 端子
メインクロック
サブ
クロック
発生回路
91
第 5 章 低消費電力モード
● CPU 間欠動作セレクタ
CPU 間欠動作モードにおける一時停止クロック数を選択します。
● スタンバイ制御回路
CPU クロック制御回路および周辺クロック制御回路を制御し , 低消費電力モードへの
移行 , および解除を行います。
● CPU クロック制御回路
CPU および周辺クロック制御回路周辺機能に供給するクロックを制御する回路です。
● 周辺クロック制御回路
周辺機能に供給するクロックを制御する回路です。
● 端子ハイインピーダンス制御回路
タイムベースタイマモードおよびストップモードにおいて , 外部端子をハイインピー
ダンスにする回路です。プルアップオプションが選択された端子に対しては , ストップ
モードではプルアップ抵抗を切り離します。
● 内部リセット発生回路
内部リセット信号を発生させる回路です。
● 低消費電力モード制御レジスタ (LPMCR)
スタンバイモードへの移行 / 解除 , および CPU 間欠動作機能の設定などを行うレジス
タです。
92
第 5 章 低消費電力モード
低消費電力モード制御レジスタ (LPMCR)
5.3
低消費電力モード制御レジスタ (LPMCR) は , 低消費電力モードへの移行 / 解除 , お
よび CPU 間欠動作モードにおける CPU クロック一時停止サイクル数の設定などを
行うレジスタです。
■ 低消費電力モード制御レジスタ (LPMCR)
図 5.3-1 に , 低消費電力モード制御レジスタ (LPMCR) の構成を , 表 5.3-1 に各ビットの
機能説明を示します。
図 5.3-1 低消費電力モード制御レジスタ (LPMCR) の構成
アドレス bit15
0000A0H
bit8 bit7
(CKSCR)
bit6
bit5
bit4
bit3
bit2
bit1
bit0
STP
SLP
SPL
RST
TMD
CG1
CG0
予約
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00011000B
予約ビット
予約
このビットへは必ず"1"を書き込んでください。
CG1 CG0
CPU一時停止サイクル数選択ビット
0
0
0
1
8サイクル (CPUクロック: 周辺クロック=1 :約3~4)
1
0
16サイクル (CPUクロック: 周辺クロック=1 :約5~6)
1
1
32サイクル (CPUクロック: 周辺クロック=1 :約9~10)
0サイクル (CPUクロック=周辺クロック)
TMD
時計・タイムベースタイマモードビット
0
時計モードまたはタイムベースタイマモードに移行
1
変化なし,ほかへの影響なし
内部リセット信号発生ビット
RST
0
3マシンサイクルの内部リセット信号を発生
1
変化なし,ほかへの影響なし
SPL
0
保持
1
ハイインピーダンス
SLP
スリープモードビット
0
変化なし,ほかへの影響なし
1
スリープモードに移行
STP
R/W
:リード/ライト可能
:初期値
端子状態設定ビット
(タイムベースタイマ・時計・ストップモード時)
ストップモードビット
0
変化なし,ほかへの影響なし
1
ストップモードに移行
93
第 5 章 低消費電力モード
表 5.3-1 低消費電力モード制御レジスタ (LPMCR) の各ビットの機能説明
ビット名
機能
bit7
・ストップモードへの移行を指示するビットです。
・このビットに "1"を書き込むと , ストップモードへ移行します。
STP:
・このビットに "0" を書き込んでも動作に影響しません。
ストップモードビット
・リセット , またはストップ解除で "0" にクリアされます。
・このビットを読み出すと , 常に "0" が読み出されます。
bit6
・スリープモードへの移行を指示するビットです。
・このビットに "1" を書き込むと , スリープモードに移行します。
・このビットに "0" を書き込んでも動作に影響しません。
SLP:
・リセット , スリープ解除 , またはストップ解除で "0" にクリア
スリープモードビット
されます。STP ビットと SLP ビットに同時に "1" を書き込ん
だ場合 , ストップモードに移行します。
・このビットを読み出すと , 常に "0" が読み出されます。
bit5
・このビットは時計モード , タイムベースタイマモード , または
SPL:
ストップモードの場合だけ有効です。
端子状態設定
・このビットが "0" の場合 , 外部端子のレベルを保持します。
ビット ( タイムベース
・このビットが "1" の場合 , 外部端子をハイインピーダンスにし
タイマ・時計・
ます。
ストップモード時 )
・リセットで "0" に初期化されます。
bit4
RST:
内部リセット
信号発生ビット
・このビットに "0"を書き込むと, 3マシンサイクルの内部リセッ
ト信号を発生します。
・このビットに "1" を書き込んでも動作に影響しません。
・このビットを読み出すと , 常に "1" が読み出されます。
bit3
TMD:
時計・タイムベース
タイマモードビット
・時計モード , タイムベースタイマモードへの移行を指示する
ビットです。
・メインクロックモード , または PLL クロックモードにおいて ,
このビットに "0" を書き込むことにより , タイムベースタイマ
モードに移行します。
・サブクロック時に , このビットに "0" を書き込むことにより時
計モードに移行します。
・リセットまたは割込み要求発生で "1" に初期化させます。
・このビットを読み出すと , 常に "1" が読み出されます。
bit2,
bit1
CG1, CG0:
CPU一時停止サイクル
数選択ビット
・CPU 間欠動作機能の CPU クロックの一時停止サイクル数を設
定するビットです。
・1 命令ごとに指定サイクル数 CPU クロック供給を停止します。
・4 種類のクロック数から選択できます。
・リセットで "00B " に初期化されます。
bit0
予約:
予約ビット
このビットには必ず "1" を書き込んでください。
94
第 5 章 低消費電力モード
■ 低消費電力モード制御レジスタへのアクセス
低消費電力モード制御レジスタへの書込みで , 低消費電力モード ( ストップモード , ス
リープモード , タイムベースタイマモード , 時計モード ) へ遷移しますが , 低消費電力
モードへの遷移に使用する命令は表 5.3-2 の命令を使用してください。
表 5.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記
内の命令
列を配置してください。
MOV LPMCR,#H’xx
NOP
NOP
JMP $+3
MOV A,#H’10
; 表 5.3-2 の低消費電力モード遷移命令
; 次の命令へのジャンプ
; 任意の命令
内の命令以外が配置されると低消費電力モード解除後の動作は保証されません。
C 言語を使用して低消費電力モード制御レジスタをアクセスする場合は , 「5.8 低消費
電力モード使用上の注意 ■スタンバイモード遷移のための低消費電力モード制御レジ
スタ (LPMCR) へアクセスする際の注意事項」を参照してください。
ワード長で低消費電力モード制御レジスタ (LPMCR) へ書き込む場合には , 偶数アドレ
スで書き込むようにしてください。奇数アドレスの書込みで低消費電力モードへ遷移
した場合には , 誤動作の原因となる場合があります。
表 5.3-1 に示す以外の機能を制御する場合には , どの命令を使用しても構いません。
● STP, SLP, TMD ビットの優先順位
ストップモード要求とスリープモード要求 , およびタイムベースタイマモード要求を
同時に行った場合は , 次の優先順位で要求を処理します。
ストップモード要求 > タイムベースタイマモード要求 > スリープモード要求
表 5.3-2 低消費電力モードへ遷移する場合に使用する命令一覧
MOV io, #imm8
MOV io, A
MOV @RLi+disp8, A
MOVW io, #imm16
MOVW io, A
MOVW @RLi+disp8, A
SETB io:bp
CLRB io:bp
MOV dir, #imm8
MOV dir, A
MOV eam, #imm8
MOV addr16, A
MOV eam, Ri
MOV eam, A
MOVW dir, #imm16
MOVW dir, A
MOVW eam, #imm16
MOVW addr16, A
MOVW eam, RWi
MOVW eam, A
SETB dir:bp
CLRB dir:bp
SETB addr16:bp
CLRB addr16:bp
95
第 5 章 低消費電力モード
5.4
CPU 間欠動作モード
CPU 間欠動作モードは , 外部バスや周辺機能を高速動作させたまま CPU を間欠動作
させることで , 消費電力を低減するモードです。
■ CPU 間欠動作モード
CPU 間欠動作モードは , レジスタ , 内蔵メモリ (ROM, RAM), I/O, 周辺機能 , および外部
バスアクセスを行う場合 , CPU に供給するクロックを 1 命令実行ごとに一定期間停止
させ , 内部バスサイクルの起動を遅らせるモードです。周辺機能に高速の周辺クロック
を供給したまま , CPU の実行速度を下げると低消費電力で処理できます。
低消費電力モード制御レジスタ (LPMCR の CG1, CG0) で , CPU に供給するクロックの
一時停止サイクル数を選択します。
外部バス動作そのものは , 周辺機能と同じクロックを使用します。
CPU 間欠動作モードを使用した場合の命令実行時間の算出は , レジスタ , 内蔵メモリ ,
内蔵周辺機能 , および外部バスアクセスを行う場合の命令実行回数に , 一時停止サイク
ル数をかけた補正値を通常の実行時間に加えることで求めることができます。図 5.4-1
に , CPU 間欠動作時のクロックを示します。
図 5.4-1 CPU 間欠動作時のクロック
周辺クロック
CPUクロック
一時停止サイクル
1命令実行
サイクル
内部バス起動
96
第 5 章 低消費電力モード
スタンバイモード
5.5
スタンバイモードには , スリープモード (PLL スリープ , メインスリープ , サブス
リープ ), タイムベースタイマモード , 時計モード , ストップモードがあります。
■ スタンバイモードの動作状態
表 5.5-1 に , スタンバイモードの動作状態を示します。
表 5.5-1 スタンバイモードの動作状態
スタンバイモード
スリープ
モード
タイム
ベース
タイマ
モード
時計
モード
ストップ
モード
*1
*2
SPL
SLP
STP
TMD
MCS
SCS
Hi-Z
移行条件
PLL
スリープ
モード
SCS=1
MCS=0
SLP=1
メイン
スリープ
モード
SCS=1
MCS=0
SLP=1
サブ
スリープ
モード
SCS=0
SLP=1
タイムベー
スタイマ
モード
(SPL=0)
SCS=1
TMD=0
メイン
クロック
サブ
クロック
マシン
クロック
周辺
端子
動作
動作
解除方法
動作
動作
停止
動作
保持
動作
タイムベー
スタイマ
モード
(SPL=1)
SCS=1
TMD=0
時計モード
(SPL=0)
SCS=0
TMD=0
時計モード
(SPL=1)
SCS=0
TMD=0
ストップ
モード
(SPL=0)
STP=1
停止
停止 *1
リセット
割込み
Hi-Z
保持
停止
停止 *2
Hi-Z
停止
保持
停止
ストップ
モード
(SPL=1)
CPU
停止
STP=1
Hi-Z
: タイムベースタイマ , 時計タイマは動作します。
: 時計タイマは動作します。
: 低消費電力モード制御レジスタ (LPMCR) の端子状態指定ビット
: 低消費電力モード制御レジスタ (LPMCR) のスリープビット
: 低消費電力モード制御レジスタ (LPMCR) の時計ストップビット
: 低消費電力モード制御レジスタ (LPMCR) の時計・タイムベースタイマモードビット
: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット
: クロック選択レジスタ (CKSCR) のマシンクロック選択ビット ( サブ )
: ハイインピーダンス
97
第 5 章 低消費電力モード
スリープモード
5.5.1
スリープモードは , CPU の動作クロックを停止させるモードで , CPU 以外は動作を
続行します。低消費電力モード制御レジスタ (LPMCR) でスリープモードへの移行を
指示すると , PLL クロックモードを設定している場合は PLL スリープモードへ移行
し , メインクロックモードを設定している場合はメインスリープモードへ , サブク
ロックモードを設定している場合はサブスリープモードへ移行します。
■ スリープモードへの移行
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1", TMD ビットに "1", STP
ビットに "0" を書き込むと , スリープモードに移行します。スリープモードに移行する
場合 , クロック選択レジスタ (CKSCR) が MCS=0, SCS=1 であれば PLL スリープモード
に , MCS=1, SCS=1 であればメインスリープモードに , SCS=0 であればサブスリープ
モードに移行します。
<注意事項>
SLP ビットと STP ビットに同時に "1" を書き込むと , STP ビットを優先し , ストップモー
ドへ移行します。SLP ビットに "1", TMD ビットに "0" を同時に書き込むと , TMD ビット
を優先し , タイムベースタイマモード , または時計モードに移行します。
● データ保持機能
スリープモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の SLP ビットに "1" を書き込んだ場合に , 割
込み要求が発生している場合はスリープモードに移行しません。そのため , CPU は割
込みを受け付けない状態では次の命令を実行し , 受け付ける状態であれば即座に割込
み処理ルーチンへ分岐します。
● 端子状態
スリープモード中は , 直前の状態を保持します。
■ スリープモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によってスリープモードを
解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
98
第 5 章 低消費電力モード
● 割込みによる復帰
スリープモード中に, 周辺回路などから割込みレベルが7より高い割込み要求が発生す
るとスリープモードを解除します。スリープモードの解除後は , 通常の割込み処理と同
じ扱いとなります。コンディションコードレジスタ (CCR) の I フラグ , インタラプトレ
ベルマスクレジスタ (ILM), および割込み制御レジスタ (ICR) の設定によって , 割込み
が受け付けられる場合は , CPU は割込み処理を実行します。割込みが受け付けられな
い場合は , スリープモードを指定した命令の次の命令から処理を続行します。
図 5.5-1 に , 割込み発生によるスリープモードの解除を示します。
図 5.5-1 割込み発生によるスリープモードの解除
周辺機能の割込み
イネーブルフラグ設定
INT発生(IL<7)
NO
スリープ解除しない
スリープ解除しない
YES
YES
I=0
次の命令実行
スリープ解除する
NO
YES
ILM<IL
次の命令実行
NO
割込み実行
<注意事項>
割込み処理を実行する場合 , 通常はスリープモードを指定した命令の次の命令を実行した
後に , 割込み処理に移行します。
図 5.5-2 に , スリープモードの解除 ( 外部リセット ) を示します。
図 5.5-2 スリープモードの解除 ( 外部リセット )
RST端子
スリープモード
メインクロック
発振中
PLLクロック
発振中
CPUクロック
PLLクロック
CPU動作
停止中
スリープモード解除
リセットシーケンス
処理
リセット解除
99
第 5 章 低消費電力モード
5.5.2
タイムベースタイマモード
タイムベースタイマモードは , 原発振とタイムベースタイマ , 時計タイマ以外の動作
を停止させるモードで , タイムベースタイマと時計タイマ以外すべての機能が停止
します。
■ タイムベースタイマモードへの移行
PLL クロックモード , またはメインクロックモードの場合 (CKSCR:SCS=1) に , 低消費
電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込むと , タイムベース
タイマモードに移行します。
● データ保持機能
タイムベースタイマモードでは , アキュムレータなどの専用レジスタと内部 RAM の内
容を保持します。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を書き込んだ場合に , 割
込み要求が発生しているときはタイムベースタイマモードに移行しません。
● 端子状態
タイムベースタイマモード中の外部端子を直前の状態に保持するか , ハイインピーダ
ンス状態にするかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御で
きます。
■ タイムベースタイマモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生でタイムベースタイマモー
ドを解除します。
● リセットによる復帰
リセットによりメインクロックモードに初期化されます。
● 割込みによる復帰
タイムベースタイマモード中に周辺回路などから割込みレベルが 7 より高い割込み要
求が発生すると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制
御回路はタイムベースタイマモードを解除します。タイムベースタイマモードの解除
後は , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR)
のIフラグ, インタラプトレベルマスクレジスタ(ILM), および割込み制御レジスタ(ICR)
の設定により割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け
付けられない場合は , タイムベースタイマモードに入る前の次の命令から処理を続行
します。
100
第 5 章 低消費電力モード
<注意事項>
割込み処理を実行する場合 , 通常はタイムベースタイマモードを指定した命令の次の命令
を実行した後に割込み処理に移行します。ただし , タイムベースタイマモードへの移行と
外部バスホールド要求の受付けが同時であった場合 , 次の命令を実行する前に割込み処理
に移行することがあります。
図 5.5-3 に , タイムベースタイマモードの解除 ( 外部リセット ) を示します。
図 5.5-3 タイムベースタイマモードの解除 ( 外部リセット )
RST端子
タイムベース
タイマモード
メインクロック
発振中
PLLクロック
発振安定待ち
メインクロック
CPUクロック
CPU動作
停止中
時計モード解除
リセットシーケンス
発振中
PLLクロック
処理
リセット解除
101
第 5 章 低消費電力モード
時計モード
5.5.3
時計モードは , サブクロックと時計タイマ以外の動作を停止させるモードで , チップ
のほぼ全機能が停止します。
■ 時計モードへの移行
サブクロックモード時 (CKSCR:SCS=0) に , 低消費電力モード制御レジスタ (LPMCR) の
TMD ビットに "0" を書き込むことにより , 時計モードに移行します。
● データ保持機能
時計モードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持しま
す。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の TMD ビットに "0" を設定した場合に , 割
込み要求が発生している場合は時計モードに移行しません。
● 端子状態
時計モード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態にする
かを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
■ 時計モードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生で時計モードを解除しま
す。
● リセットによる復帰
リセット要因による時計モードの解除の場合は , 時計モードを解除したうえで , 発振安
定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過後 , 実行
されます。
● 割込みによる復帰
時計モード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生すると
( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路は時計モー
ドを解除し, 即座にサブクロックモードに移行します。サブクロックモードに移行後は,
通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ (CCR) の I
フラグ , インタラプトレベルマスクレジスタ (ILM), および割込み制御レジスタ (ICR) を
設定して割込みが受け付けられる場合は , 割込み処理を実行します。割込みが受け付け
られない場合は , 時計モードに入る前の次の命令から処理を続行します。
<注意事項>
割込み処理を実行する場合 , 通常は時計モードを指定した命令の次の命令を実行した後 ,
割込み処理に移行します。
図 5.5-4 に , 時計モードの解除 ( 外部リセット ) を示します。
102
第 5 章 低消費電力モード
図 5.5-4 時計モードの解除 ( 外部リセット )
RST端子
時計モード
メインクロック
発振安定待ち
PLLクロック
停止中
サブクロック
発振中
発振中
メインクロック
CPUクロック
停止中
CPU動作
時計モード解除
リセットシーケンス
処理
リセット解除
103
第 5 章 低消費電力モード
5.5.4
ストップモード
ストップモードは , 原発振を停止させるモードで , すべての機能が停止します。した
がって , 最も低消費電力でデータを保持できます。
■ ストップモードへの移行
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を書き込むと , ストップ
モードに移行します。
● データ保持機能
ストップモードでは , アキュムレータなどの専用レジスタと内部 RAM の内容を保持し
ます。
● 割込み要求発生中の動作
低消費電力モード制御レジスタ (LPMCR) の STP ビットに "1" を設定した場合に , 割込
み要求が発生しているときはストップモードに移行しません。
● 端子状態の設定
ストップモード中の外部端子を直前の状態に保持するか , ハイインピーダンス状態に
するかを低消費電力モード制御レジスタ (LPMCR) の SPL ビットで制御できます。
■ ストップモードの解除
低消費電力制御回路は , リセット入力 , または割込みの発生によりストップモードを解
除します。
ストップモードからの復帰の場合, 動作クロックの発振が停止しているため,
低消費電力制御回路はまず発振安定待ち状態に移行し , その後ストップモードを解除
します。
● リセットによる復帰
リセット要因によるストップモード解除の場合は , ストップモードを解除したうえで
発振安定待ちリセット状態になります。リセットシーケンスは発振安定待ち時間経過
後 , 実行されます。
● 割込みによる復帰
ストップモード中に周辺回路などから割込みレベルが 7 より高い割込み要求が発生す
ると ( 割込み制御レジスタ ICR:IL2, IL1, IL0 が "111B" 以外 ), 低消費電力制御回路はス
トップモードを解除します。ストップモードの解除後は , クロック選択レジスタ
(CKSCR) の WS1, WS0 ビットで指定されたメインクロックの発振安定待ち時間を経過
した後で , 通常の割込み処理と同じ扱いとなります。コンディションコードレジスタ
(CCR) の I フラグ , インタラプトレベルマスクレジスタ (ILM), および割込み制御レジス
タ (ICR) を設定して割込みが受け付けられる場合は割込み処理を実行します。割込み
が受け付けられない場合は , ストップモードに入る前の次の命令から処理を続行しま
す。
104
第 5 章 低消費電力モード
<注意事項>
割込み処理を実行する場合 , 通常はストップモードを指定した命令の次の命令を実行した
後 , 割込み処理に移行します。ただし , ストップモードへの移行と外部バスホールド要求
の受付けが同時であった場合 , 次の命令を実行する前に割込み処理に移行することがあり
ます。
図 5.5-5 に , ストップモードの解除 ( 外部リセット ) を示します。
図 5.5-5 ストップモードの解除 ( 外部リセット )
RST端子
ストップモード
発振クロック
メインクロック
PLLクロック
発振
発振安定待ち
停止中
CPUクロック
CPU動作
発振
メインクロック
停止中
リセットシーケンス 命令実行
リセット解除
ストップモード解除
105
第 5 章 低消費電力モード
状態遷移図
5.6
図 5.6-1 に , 状態遷移図を示します。
■ 状態遷移図
図 5.6-1 状態遷移図
外部リセット,
ウォッチドッグタイマリセット,
ソフトウェアリセット
電源投入
リセット
パワーオンリセット
SCS = 1
発振安定待ち終了
SCS = 0
SCS = 0
MCS = 0
メインクロック
モード
SLP = 1
割込み
メインスリープ
モード
割込み
TMD = 0
メインタイムベース
タイマモード
STP= 1
SLP = 1
SCS = 1
割込み
PLLスリープモード
TMD = 0
割込み
割込み
メインクロック発振
安定待ち
SLP = 1
割込み
サブスリープモード
TMD = 0
割込み
時計モード
STP = 1
PLLストップモード
割込み
発振安定待ち
終了
サブクロック
モード
PLLタイムベース
タイマモード
STP = 1
メインストップ
モード
106
MCS = 1
PLLクロック
モード
サブストップモード
割込み
発振安定待ち
終了
PLLクロック発振
安定待ち
発振安定待ち
終了
サブクロック発振
安定待ち
第 5 章 低消費電力モード
■ 低消費電力モードの動作状態
表 5.6-1 に , 低消費電力モードの動作状態を示します。
表 5.6-1 低消費電力モードの動作状態
動作状態
メイン
クロック
サブ
クロック
PLL
クロック
PLL
CPU
周辺
時計
タイム
ベース
タイマ
動作
動作
クロック
ソース
動作
動作
PLL スリープ
動作
動作
動作
PLL
クロック
PLL タイムベースタイマ
停止
PLL ストップ
停止
停止
停止
PLL 発振安定待ち
動作
動作
動作
メイン
停止
停止
停止
動作
動作
動作
動作
動作
動作
メインスリープ
動作
動作
メインタイムベースタイマ
メイン
クロック
停止
停止
メインストップ
停止
停止
メイン発振安定待ち
動作
動作
停止
サブ
停止
停止
動作
動作
動作
動作
動作
サブスリープ
時計モード
停止
動作
停止
停止
サブ
クロック
動作
メイン
クロック
停止
サブストップ
停止
サブ発振安定待ち
動作
パワーオンリセット
停止
動作
停止
動作
リセット
停止
動作
停止
動作
停止
動作
107
第 5 章 低消費電力モード
スタンバイモード , リセット時の端子状態
5.7
スタンバイモード , リセット時の端子の状態をメモリアクセスモードごとに示しま
す。
■ シングルチップモード時の端子状態
表 5.7-1 に , シングルチップモード時の各端子状態について示します。
表 5.7-1 シングルチップモード時の各端子状態
スタンバイモード時
端子名
リセット時
ストップ時
スリープ時
SPL = 0
P00 ∼ P07
P10 ∼ P17
P20 ∼ P27
P30 ∼ P37
P40 ∼ P47
P50 ∼ P57
P60 ∼ P67
P70 ∼ P76
P80 ∼ P84
P90, P91*5
直前の状態を
保持 *2
入力遮断 *3/
出力 Hi-Z
入力不可 *4/
出力 Hi-Z
入力可能 *1
( 外部割込み許可時 )
P65 ∼ P67
P70
P00 ∼ P07
P10 ∼ P17
P20 ∼ P27
P30 ∼ P37
P50 ∼ P53
P83, P84
直前の状態を
保持 *2
SPL = 1
LCD 出力状態保持
(LCDC 動作時 )
*1:入力可能とは , 入力機能が可能な状態であることを意味するので , プルアップ , プルダウンオプ
ションを選択するか , または外部からの入力が必要です。出力ポートとして使用している場合
にはほかのポートと同じです。
*2:" 直前の状態を保持 " とは , このモードになる直前に出力していた状態をそのまま保持すること
を意味します。ただし , 入力状態であった場合は入力不可となるので注意してください。" 出力
していた状態をそのまま保持する " とは , 出力のある内部周辺が動作中であればその値を , ポー
トなどとして出力している場合にはその値をそれぞれ保持することを意味します。
*3: " 入力遮断 " 状態では , 入力はマスクされ "L" レベルが内部に伝わります。" 出力 Hi-Z " とは端
子駆動用トランジスタを駆動禁止状態にして端子をハイインピーダンスにすることを意味しま
す。
*4:" 入力不可 " とは , 端子からすぐの入力ゲート動作は許可状態にあるが , 内部回路が動作してい
ないので , 端子への入力値が内部で受け付けられない状態を意味します。
*5:P90, P91 は , 1 系統クロック品のみに存在します。
108
第 5 章 低消費電力モード
5.8
低消費電力モード使用上の注意
低消費電力モードを使用する場合には , 次の 4 つの内容に関して注意が必要です。
・スタンバイモードへの移行と割込み
・スタンバイモードの割込みによる解除
・ストップモードを解除するとき
・発振安定待ち時間
■ スタンバイモードへの移行と割込み
周辺機能から CPU に対して割込み要求が発生していると , 低消費電力モード制御レジ
スタ (LPMCR:STP=1, SLP=1) または , (LPMCR:TMD=0) としても無視されるため , 各ス
タンバイモードへは移行しません ( 割込み処理後にも , スタンバイモードへの移行はし
ません )。この場合 , 割込みレベルが 7 より高ければ , 割込み要求が CPU に受け付けら
れるかどうかには関係しません。また , CPU が割込み処理中であっても , その割込み要
求フラグビットがクリアされており , ほかに割込み要求がなければ , スタンバイモード
へ移行できます。
■ スタンバイモードの割込みによる解除
スリープ , タイムベースタイマおよびストップモード中に , 周辺機能などから割込みレ
ベルが 7 より高い割込み要求が発生すると , スタンバイモードは解除されます。これは
CPU が割込みを受け付けるかどうかには関係しません。
スタンバイモード解除後は , 通常の割込み動作として , 割込み要求に対応する割込みレ
ベル設定ビット (ICR:IL2, IL1, IL0) の優先度がインタラプトレベルマスクレジスタ
(ILM) より高く , コンディションコードレジスタの割込み許可フラグが許可 (CCR:I=1)
されている場合は , 割込み処理ルーチンへ分岐します。
割込みが受け付けられない場合は , スタンバイモードを指定した命令の次の命令から
動作を再開します。
割込み処理を実行する場合 , 通常はスタンバイモードを指定した命令の次の命令を実
行した後に , 割込み処理に移行します。ただし , スタンバイモードに移行した場合の条
件によっては , 次の命令を実行する前に割込み処理に移行することがあります。
復帰直後に割込み処理ルーチンへ分岐させない場合は , スタンバイモード設定の前に
割込み禁止をするなどの対策が必要です。
■ ストップモード解除時
ストップモードに入る前に , 外部割込みの割込み入力要因の設定に従った入力により ,
解除できます。入力要因として "H" レベル , "L" レベル , 立上りエッジ , 立下りエッジ
が選択できます。
109
第 5 章 低消費電力モード
■ 発振安定待ち時間
● 発振クロック発振安定待ち時間
ストップモード中は , 原発振用の発振器が停止しているため , 発振安定待ち時間を確保
する必要があります。発振安定待ち時間としては , クロック選択レジスタ (CKSCR) の
WS1, WS0 ビットで選択された時間を確保します。WS1, WS0 ビットに "00B" を設定す
るのは , メインクロックモードの場合のみにしてください。
● PLL クロック発振安定待ち時間
CPU がメインクロックで動作し , PLL クロックが停止している状態から CPU または周
辺を PLL クロックで動作するモードに移行する場合 , PLL クロック発振安定待ち状態
へ移行し , 発振安定待ち中はメインクロックで動作します。
PLL クロック発振安定待ち時間は , 214/HCLK(HCLK: 発振クロック ) 固定です。
■ スタンバイモード遷移のための低消費電力モード制御レジスタ (LPMCR) へアクセ
スする際の注意事項
● アセンブラ言語を使用して低消費電力モード制御レジスタ (LPMCR) へアクセスする場合
•
低消費電力モード制御レジスタ (LPMCR) において低消費電力モードに移行する設定
を行う場合は , 表 5.3-2 の命令を使用してください。
表 5.3-2 の命令による低消費電力モード遷移命令の直後には必ず下記 内の命
令列を配置してください。
MOV LPMCR,#H’xx
NOP
NOP
JMP $+3
MOV A,#H’10
; 表 5.3-2 の低消費電力モード遷移命令
; 次の命令へのジャンプ
; 任意の命令
内の命令以外が配置されると低消費電力モード解除後の動作は保証されません。
● C 言語を使用して低消費電力モード制御レジスタにアクセスする場合
低消費電力モード制御レジスタ (LPMCR) においてスタンバイモードに移行する設定を
行う場合は , 以下の (1) から (3) のいずれかの方法でアクセスしてください。
(1) スタンバイモードに遷移させる命令を関数化し , スタンバイモード遷移命令の後
に _wait_nop0 のビルトイン関数を 2 個挿入してください。関数内で , スタンバイ
復帰の割込みが発生する可能性がある場合は , コンパイル時に最適化を実施し ,
LINK/UNLINK 命令の発生を抑止してください。
例 ( 時計モードまたはタイムベースタイマモード遷移関数の場合 )
void enter_watch(){
IO_L.PMCR.byte = 0x10:
_wait_nop0;
_wait_nop0;
}
110
/* LPMCR の TMD ビットに "0" をセット */
第 5 章 低消費電力モード
(2) スタンバイモードに遷移させる命令を _asm 文で記述し , スタンバイモード遷移命
令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( スリープモード遷移の場合 )
_asm("
_asm("
_asm("
_asm("
MOV I:_IO_LPMCR, #H’58"); /* LPMCR の SLP ビットに "1" をセット */
NOP");
NOP");
JMP $+3");
/* 次の命令へのジャンプ
*/
(3) スタンバイモードに遷移させる命令を #pragma asm ∼ #pragma endasm 間に記述し ,
スタンバイモード遷移命令の後に 2 個の NOP と JMP 命令を挿入してください。
例 ( ストップモード遷移の場合 )
#pragma asm
MOV I:_IO_LPMCR, #H’98
NOP
NOP
JMP $+3
#pragma endasm
/* LPMCR の STP ビットに "1" をセット */
/* 次の命令へのジャンプ
*/
111
第 5 章 低消費電力モード
112
第6章
割込み
MB90800 シリーズの割込みと拡張インテリジェン
ト I/O サービス (EI2OS) について説明します。
6.1 割込みの概要
6.2 割込み要因と割込みベクタ
6.3 割込み制御レジスタと周辺機能
6.4 ハードウェア割込み
6.5 ソフトウェア割込み
6.6 拡張インテリジェント I/O サービス (EI2OS) による
割込み
6.7 例外処理割込み
6.8 割込み処理のスタック動作
6.9 割込み処理のプログラム例
113
第 6 章 割込み
6.1
割込みの概要
MB90800 シリーズには , 以下の割込み機能と例外処理があります。
・ハードウェア割込み
・ソフトウェア割込み
・拡張インテリジェント I/O サービス (EI2OS) による割込み
・例外処理
■ 割込みの種類と機能
● ハードウェア割込み
周辺機能 ( リソース ) の割込み要求に対して , 割込み処理プログラムへ遷移します。詳
細は , 「6.4 ハードウェア割込み」を参照してください。
● ソフトウェア割込み
ソフトウェア割込み命令 (INT 命令 ) をプログラム上にて実行した場合 , 割込み処理プ
ログラムへ遷移します。詳細は , 「6.5 ソフトウェア割込み」を参照してください。
● 拡張インテリジェント I/O サービス (EI2OS) による割込み
拡張インテリジェント I/O サービス (EI2OS) では , 事前に割込み制御レジスタ (ICR00 ∼
ICR15) と拡張インテリジェント I/O サービスディスクリプタ (ISD) を設定することに
より , 周辺機能 ( リソース ) に内蔵されているレジスタと内蔵されているメモリの間で
データを転送できます。
データ転送処理が終了した場合 , 割込み処理プログラムへ遷移します。詳細は , 「6.6
拡張インテリジェント I/O サービス (EI2OS) による割込み」を参照してください。
● 例外処理
定義されていない命令コードを実行した場合に例外処理を行います。
例外処理を行った場合は , 現在処理中のレジスタ値をシステムスタックに退避させた
後に例外処理ルーチンへ分岐します。詳細は , 「6.7 例外処理割込み」を参照してくだ
さい。
114
第 6 章 割込み
■ 割込み動作
図 6.1-1 割込み動作の概略フロー
スタート
有効な
ハードウェア割込み
要求あり
ストリング系*
命令実行中
NO
メインプログラム
YES
割込み起動/復帰処理
YES
EI2OSか?
次の命令の取込みと
デコード
EI2OS
NO
YES
INT命令か?
NO
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタ退避
ハードウェア
割込み
指定回数終了か?
YES または,周辺機能からの
終了要求があるか?
ハードウェア割込み
受付け禁止(I=0)
システムスタックへ
専用レジスタ退避
NO
CPU割込み処理レベル
(ILM)更新
YES
RETI命令か?
NO
通常命令実行
NO
割込み
復帰処理
システムスタックから
専用レジスタが復帰し,
割込みルーチン呼出し
前のルーチンへ復帰
割込みベクタを
読み出してPC,PCB
を更新し,割込み
ルーチンへ分岐
ストリング系*
命令の繰返し完了
YES
PC更新で次命令へ
ポインタ移動
*:ストリング系命令の実行中は,1ステップごとに割込み判定を行います。
115
第 6 章 割込み
割込み要因と割込みベクタ
6.2
MB90800 シリーズには , 256 種類の割込み要因に対応する機能があり , メモリの最
上位アドレスに 256 組の割込みベクタテーブルが割り当てられています。
ソフトウェア割込みは , 256 種類の割込み命令 (INT0 ∼ INT255) を設定できます。
ただし , INT8 はリセットベクタ割込みと , INT10 は例外処理と共有されています。
また , INT11 ∼ INT42 までは , 周辺機能 ( リソース ) の割込みと共有されています。
■ 割込みベクタ
割込み処理を実行する場合に , 参照する割込みベクタテーブルは , メモリ領域の最上位
アドレス ("FFFC00H" ∼ "FFFFFEH") に割り当てられています。割込みベクタは , 拡張
インテリジェント I/O サービス , 例外処理 , ハードウェア割込み , およびソフトウェア
割込みを共有しています。表 6.2-1 に , 割込みベクタ一覧表を示します。
表 6.2-1 割込みベクタ一覧表
ソフトウェア
割込み命令
ベクタ
アドレス L
ベクタ
アドレス M
ベクタ
アドレス H
モードデータ
割込み
No
ハードウェア割込み
INT0
FFFFFCH
FFFFFDH
FFFFFEH
未使用
#0
なし
:
:
:
:
:
:
:
INT7
FFFFE0H
FFFFE1H
FFFFE2H
未使用
#7
なし
INT8
FFFFDCH
FFFFDDH
FFFFDEH
FFFFDFH
#8
リセットベクタ
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
なし
<注意事項>
ソフトウェア設計時に設定されない割込みベクタは , 例外処理アドレスに設定してくださ
い。
116
第 6 章 割込み
■ 割込み要因と割込みベクタ・割込み制御レジスタ
表 6.2-2 割込み要因と割込みベクタ・割込み制御レジスタ
割込み要因
割込み制御レジスタ
EI2OS
対応
割込みベクタ
番号
割込み制御レジスタ
*
アドレス
ICR
アドレス
リセット
×
#08
08H
FFFFDCH
―
―
INT9 命令
×
#09
09H
FFFFD8H
―
―
例外処理
×
#10
0AH
FFFFD4H
―
―
DTP/ 外部割込み ch.0
○
#11
0BH
FFFFD0H
ICR00
0000B0H
DTP/ 外部割込み ch.1
○
#13
0DH
FFFFC8H
ICR01
0000B1H
シリアル I/O ch.2
×
#15
0FH
FFFFC0H
○
#16
10H
FFFFBCH
ICR02
DTP/ 外部割込み ch.2/ch.3
0000B2H
シリアル I/O ch.3
×
#17
11H
FFFFB8H
○
#18
12H
FFFFB4H
ICR03
16 ビットフリーランタイマ
0000B3H
時計タイマ
×
#19
13H
FFFFB0H
ICR04
0000B4H
16 ビットリロードタイマ ch.2
○
#21
15H
FFFFA8H
ICR05
0000B5H
16 ビットリロードタイマ ch.0
△
#23
17H
FFFFA0H
△
#24
18H
FFFF9CH
ICR06
16 ビットリロードタイマ ch.1
0000B6H
インプットキャプチャ ch.0
△
#25
19H
FFFF98H
△
#26
1AH
FFFF94H
ICR07
インプットキャプチャ ch.1
0000B7H
PPG タイマ ch.0 カウンタボロー
○
#27
1BH
FFFF90H
ICR08
0000B8H
アウトプットコンペア一致
○
#29
1DH
FFFF88H
ICR09
0000B9H
PPG タイマ ch.1 カウンタボロー
○
#31
1FH
FFFF80H
ICR10
0000BAH
タイムベースタイマ
×
#33
21H
FFFF78H
ICR11
0000BBH
UART0 受信終了
◎
#35
23H
FFFF70H
△
#36
24H
FFFF6CH
ICR12
UART0 送信終了
0000BCH
A/D コンバータ変換終了
○
#37
25H
FFFF68H
I2C インタフェース
#38
26H
FFFF64H
ICR13
×
0000BDH
UART1 受信終了
◎
#39
27H
FFFF60H
△
#40
28H
FFFF5CH
ICR14
UART1 送信終了
0000BEH
フラッシュメモリステータス
×
#41
29H
FFFF58H
×
#42
2AH
FFFF54H
ICR15
遅延割込み出力モジュール
0000BFH
優先
度
高い
低い
○ : 使用可能
× : 使用不可
◎ : 使用可能 , EI2OS 停止機能付き
△ :ICR を共有する割込み要因を使用しない場合に使用可能
* : 同時に同じレベルの割込みを出力した場合は , 割込みベクタ番号の小さい割込み要因を優先します。
117
第 6 章 割込み
<注意事項>
・同一の割込み制御レジスタ (ICR) に 2 つの割込み要因がある場合は EI2OS の使用を許可
した場合 , どちらかの割込み要因を検出すると EI2OS が起動されます。EI2OS 起動中は
起動要因以外の割込みはマスクされますので , EI2OS 使用時はどちらかの割込み要求を
マスクして使用されることを推奨致します。
・同一の割込み制御レジスタ (ICR) に 2 つの割込み要因があるリソースは , 割込みフラグ
が EI2OS 割込みクリア信号でクリアされます。
118
第 6 章 割込み
6.3
割込み制御レジスタと周辺機能
割込み制御レジスタ (ICR00 ∼ ICR15) は , 割込み機能を持つすべての周辺機能 ( リ
ソース ) に対応します。割込み制御レジスタは , 割込みと拡張インテリジェント I/O
サービス (EI2OS) の制御を行います。
■ 割込み制御レジスタ一覧
表 6.3-1 割込み制御レジスタ一覧
アドレス
レジスタ
略称
対応する周辺機能
0000B0H
割込み制御レジスタ 00
ICR00
DTP/ 外部割込み ch.0
0000B1H
割込み制御レジスタ 01
ICR01
DTP/ 外部割込み ch.1
0000B2H
割込み制御レジスタ 02
ICR02
シリアル I/O ch.2,
DTP/ 外部割込み ch.2/ch.3
0000B3H
割込み制御レジスタ 03
ICR03
シリアル I/O ch.3,
16 ビットフリーランタイマ
0000B4H
割込み制御レジスタ 04
ICR04
時計タイマ
0000B5H
割込み制御レジスタ 05
ICR05
16 ビットリロードタイマ ch.2
0000B6H
割込み制御レジスタ 06
ICR06
16 ビットリロードタイマ ch.0/ch.1
0000B7H
割込み制御レジスタ 07
ICR07
インプットキャプチャ ch.0/ch.1
0000B8H
割込み制御レジスタ 08
ICR08
PPG タイマ ch.0 カウンタボロー
0000B9H
割込み制御レジスタ 09
ICR09
アウトプットコンペア
0000BAH
割込み制御レジスタ 10
ICR10
PPG タイマ ch.1 カウンタボロー
0000BBH
割込み制御レジスタ 11
ICR11
タイムベースタイマ
0000BCH
割込み制御レジスタ 12
ICR12
UART0 受信終了 ,
UART0 送信終了
0000BDH
割込み制御レジスタ 13
ICR13
A/D コンバータ ,
I2C バスインタフェース
0000BEH
割込み制御レジスタ 14
ICR14
UART1 受信終了 ,
UART1 送信終了
0000BFH
割込み制御レジスタ 15
ICR15
フラッシュメモリ ,
遅延割込み発生モジュール
119
第 6 章 割込み
割込み制御レジスタ (ICR) では , 4 種類の設定を行うことができます。
• 周辺機能 ( リソース ) の割込みレベルを設定できます。
• 周辺機能 ( リソース ) の割込み要因を割込み処理に設定するか , または拡張インテリ
ジェント I/O サービスに設定するかを設定できます。
• 拡張インテリジェント I/O サービス (EI2OS) のディスクリプタアドレスを設定でき
ます。
• 拡張インテリジェント I/O サービス (EI2OS) 処理ステータスを表示できます。
割込み制御レジスタ (ICR) は書込みを行う場合と , 読出しを行う場合では機能が異なり
ます。
<注意事項>
割込み制御レジスタ (ICR) を設定する場合は , SETB, CLRB 命令のような , リードモディ
ファイライト (RMW) 系命令でのアクセスはできません。
120
第 6 章 割込み
割込み制御レジスタ (ICR00 ∼ ICR15)
6.3.1
割込み制御レジスタは , 割込み要求を出力した場合に , 割込み処理または拡張インテ
リジェント I/O サービス処理を設定できます。割込み制御レジスタは書込みを行う
場合と読出しを行う場合では , ビット機能が異なります。
■ 割込み制御レジスタ (ICR00 ∼ ICR15)
図 6.3-1 割込み制御レジスタ (ICR00 ∼ ICR15)〔書込みを行う場合〕
ライト時
bit
7
6
ICR00~ICR15 ICS3 ICS2
アドレス
0000B0H~0000BFH R/W
5
4
3
2
1
0
ICS1
ICS0
ISE
IL2
IL1
IL0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
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
00000111B
割込みレベル設定ビット
割込みレベル 0(最強)
割込みレベル 7(割込みなし)
2
EI OS 許可ビット
ISE
0
割込み出力時に割込みシーケンスを起動
1
割込み出力時に EI2 OS を起動
ICS3 ICS2 ICS1 ICS0
R/W :リード/ライト可能
:初期値
EI 2 OS チャネル設定ビット
チャネル ディスクリプタアドレス
0
0
0
0
0
000100H
0
0
0
1
1
000108H
0
0
1
0
2
000110H
0
0
1
1
3
000118H
0
1
0
0
4
000120H
0
1
0
1
5
000128H
0
1
1
0
6
000130H
0
1
1
1
7
000138H
1
0
0
0
8
000140H
1
0
0
1
9
000148H
1
0
1
0
10
000150H
1
0
1
1
11
000158H
1
1
0
0
12
000160H
1
1
0
1
13
000168H
1
1
1
0
14
000170H
1
1
1
1
15
000178H
121
第 6 章 割込み
図 6.3-2 割込み制御レジスタ (ICR00 ∼ ICR15)〔読出しを行う場合〕
リード時
4
3
2
1
0
S1
S0
ISE
IL2
IL1
IL0
アドレス
0000B0H~0000BFH
R/W
R/W
R/W
R/W
R/W
R/W
bit
7
6
初期値
5
ICR00~ICR15
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
00000111B
割込みレベル 7(割込みなし)
0
割込み出力時に割込みシーケンスを起動
1
割込み出力時に EI2OS を起動
S1
122
割込みレベル 0(最強)
EI2 OS 許可ビット
ISE
R/W :リード/ライト可能
- :未定義ビット
X :不定
:初期値
割込みレベル設定ビット
EI2 OS ステータス
S0
0
0
EI2OS
0
1
カウント終了による停止状態
1
0
予約
1
1
周辺機能からの要求による停止状態
動作中あるいは起動していない場合
第 6 章 割込み
6.3.2
割込み制御レジスタの機能
割込み制御レジスタ (ICR00 ∼ ICR15) は , 以下に示す設定を行うことができます。
・割込みレベル設定
・拡張インテリジェント I/O サービス (EI2OS) 許可設定
・拡張インテリジェント I/O サービス (EI2OS) ディスクリプタアドレス設定
・拡張インテリジェント I/O サービス (EI2OS) 動作ステータス表示
■ 割込み制御レジスタ (ICR) の構成
図 6.3-3 割込み制御レジスタ (ICR) の構成
割込み制御レジスタ (ICR) 書込み時
bit
ICR00 ∼ ICR15
アドレス:
0000B0H ∼ 0000BFH
7
ICS3
R/W
6
ICS2
R/W
5
ICS1
R/W
4
ICS0
R/W
3
ISE
R/W
2
IL2
R/W
1
IL1
R/W
0
IL0
R/W
初期値
00000111B
13
S1
R/W
12
S0
R/W
11
ISE
R/W
10
IL2
R/W
9
IL1
R/W
8
IL0
R/W
初期値
00000111B
割込み制御レジスタ (ICR) 読出し時
bit
ICR00 ∼ ICR15
アドレス:
0000B0H ∼ 0000BFH
15
14
−
R/W
−
R/W
R/W:リード / ライト可能
<参考>
EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) への設定は , 拡張インテリジェ
ント I/O サービス (EI2OS) を起動する場合に設定します。EI2OS を起動させる場合は ,
EI2OS 許可ビット (ISE) に "1" を設定し , 起動しない場合は EI2OS 許可ビット (ISE) に "0"
を設定してください。EI2OS を起動しない場合は , EI2OS ディスクリプタアドレス設定
ビット (ICS3 ∼ ICS0) を設定する必要はありません。
■ 割込み制御レジスタの機能
● 割込みレベル設定ビット (IL2 ∼ IL0)
周辺機能 ( リソース ) の割込みレベルが設定できます。リセットによりレベル 7( 割込
みなし ) に初期化されます ( レベル 7 では割込みを発生させることはできません ) 。
123
第 6 章 割込み
表 6.3-2 割込みレベル設定ビットと割込みレベルの対応
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)
割込み要求を出力した場合 , EI2OS 許可ビット (ISE) にあらかじめ "1" を設定している
場合は , EI2OS が起動されます。また , EI2OS 許可ビット (ISE) にあらかじめ "0" を設定
している場合は , 割込みシーケンスが起動されます。EI2OS の処理が終了した場合は ,
EI2OS 許可ビット (ISE) は "0" にクリアされます。周辺機能 ( リソース ) に EI2OS 機能
がない場合には , ソフトウェアにより EI2OS 許可ビット (ISE) を "0" に設定してくださ
い。EI2OS 許可ビット (ISE) はリセットで "0" にクリアされます。
● 拡張インテリジェント I/O サービス (EI2OS) チャネル設定ビット (ICS3 ∼ ICS0)
EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) は , ディスクリプタの設定を
行う場合に有効なビットです。EI2OS のディスクリプタアドレスを設定します。
EI2OS ディスクリプタアドレス設定ビット (ICS3 ∼ ICS0) に値を設定することにより ,
EI2OS ディスクリプタのアドレスを設定します。EI2OS ディスクリプタアドレス設定
ビット (ICS3 ∼ ICS0) はリセットで , "0000B" に初期化されます。
124
第 6 章 割込み
表 6.3-3 EI2OS チャネル設定ビットとディスクリプタアドレスの対応
ICS3
ICS2
ICS1
ICS0
セレクトされるチャネル
ディスクリプタアドレス
0
0
0
0
0
000100H
0
0
0
1
1
000108H
0
0
1
0
2
000110H
0
0
1
1
3
000118H
0
1
0
0
4
000120H
0
1
0
1
5
000128H
0
1
1
0
6
000130H
0
1
1
1
7
000138H
1
0
0
0
8
000140H
1
0
0
1
9
000148H
1
0
1
0
10
000150H
1
0
1
1
11
000158H
1
1
0
0
12
000160H
1
1
0
1
13
000168H
1
1
1
0
14
000170H
1
1
1
1
15
000178H
● 拡張インテリジェント I/O サービス (EI2OS) ステータスビット (S1, S0)
EI2OS ステータスビット (S1, S0) は読出しを行う場合に有効なビットです。EI2OS を起動
した場合に EI2OS ステータスビット (S1, S0) を読み出すと , EI2OS が動作中であるか ,
EI2OS が終了しているかを判定できます。リセットで "00B" に初期化されます。
表 6.3-4 EI2OS ステータスビットと EI2OS ステータスの関係
EI2OS ステータス
S1
S0
0
0
EI2OS 動作中あるいは起動していない場合
0
1
カウント終了による停止状態
1
0
予約
1
1
周辺機能からの要求による停止状態
125
第 6 章 割込み
ハードウェア割込み
6.4
ハードウェア割込みは , 周辺機能 ( リソース ) にて出力された割込み要求により ,
CPU が実行していたプログラム処理を中断し , 事前に設定された割込み処理プログ
ラムに遷移します。拡張インテリジェント I/O サービス (EI2OS) もハードウェア割
込みとして処理されます。
■ ハードウェア割込み
● ハードウェア割込みの機能
ハードウェア割込みは , 周辺機能 ( リソース ) から出力された割込み要求の割込みレベ
ルとインタラプトレベルマスクレジスタ (PS:ILM) を比較し , I フラグ (PS:I) の内容を参
照して , 割込みを受け付けるか受け付けないかを判定します。
ハードウェア割込みが受け付けられた場合は , ダイレクトページレジスタ (DPR), ア
キュムレータ (A), プログラムカウンタ (PC), プロセッサステータスレジスタ (PS) およ
び各バンクレジスタ (ADB, DTB, PCB) をシステムスタックへ退避させ , インタラプト
レベルマスクレジスタ (ILM) に ICR レジスタで設定されている割込みレベルを格納し ,
割込みベクタへ分岐して割込み処理プログラムを実行します。
● 多重割込み
ハードウェア割込みは割込み処理プログラム実行中でも起動できます。
● 拡張インテリジェント I/O サービス (EI2OS)
EI2OS は , メモリ− I/O レジスタ間のデータ転送機能です。拡張インテリジェント I/O
サービスディスクリプタに転送を終了した場合に , ハードウェア割込みを起動します。
EI2OS は多重に起動されません。EI2OS を処理している場合は , 割込み要求 , EI2OS 要
求を受け付けません。EI2OS の処理が終了した場合に , 割込み要求 , EI2OS 要求が受け
付けられます。
● 外部割込み
外部割込みは, 外部端子から割込み要求を出力させることのできる回路(DTP/外部割込
み回路 ) にて割込み要求を検出した場合に , ハードウェア割込みとして受け付けられま
す。
● 割込みベクタ
割込み処理を実行する場合に参照する割込みベクタは , メモリの "FFFC00H" ∼
"FFFFFFH" に割り当てられています。
<参考>
割込み番号と割込みベクタの割当てについては , 「6.2 割込み要因と割込みベクタ」を参
照してください。
126
第 6 章 割込み
■ ハードウェア割込みの構造
ハードウェア割込みに関連する構造は , 表 6.4-1 に示すように分かれています。ハード
ウェア割込みを使用する場合は , 事前にユーザプログラムにて以下の機能を設定する
必要があります。
表 6.4-1 ハードウェア割込みに関連する構造
ハードウェア割込みに関する構造
機能
周辺機能 ( リソース )
割込み許可ビット
割込み要求フラグビット
周辺機能 ( リソース ) の割込み要求
制御
割込みコントローラ
割込み制御レジスタ (ICR)
割込みレベルの設定と EI2OS の制御
割込み許可フラグ (I)
割込み許可 / 禁止の判定制御
インタラプトレベルマスク
レジスタ (ILM)
割込み要求レベルの設定値と
出力要因の比較
マイクロコード
割込み処理ルーチンの実行
割込みベクタテーブル
割込み処理時の分岐先アドレスを
格納
CPU
メモリ上の
"FFFC00H" ∼ "FFFFFFH"
■ ハードウェア割込み抑止
ハードウェア割込みは , 下記条件の場合 , 割込み要求の受付けを禁止します。
● 周辺機能 ( リソース ) 制御レジスタへ書込み中のハードウェア割込み受付け禁止
周辺機能 ( リソース ) 制御レジスタへ書込み中はハードウェア割込み要求を受け付けま
せん。
図 6.4-1 周辺機能制御レジスタ領域への書込み中のハードウェア割込み要求
周辺機能制御レジスタ領域への書込み命令
・・・・・
MOV A,#08
MOV io,A
ここで割込み
要求発生
MOV A,2000H
割込みに
分岐しない
割込み処理
割込みに
分岐する
● 割込み抑止命令のハードウェア割込み受付け禁止
表 6.4-2 に示すハードウェア割込み抑止命令は , ハードウェア割込み要求の有無の検出
をせず , 割込み要求を無視します。ハードウェア割込み抑止命令を実行中にハードウェ
ア割込み要求が発生した場合 , 割込み処理が行われるのは , この命令以降にこの種類以
外の命令が実行された後になります。
127
第 6 章 割込み
表 6.4-2 ハードウェア割込み抑止命令
プリフィックス
コード
割込みやホールド要求を
受け付けない命令
割込み / ホールド抑止命令
( プリフィックスコードの効果を遅延させる命令 )
PCB
DTB
ADB
SPB
CMR
NCC
MOV
OR
AND
POPW
ILM, #imm8
CCR, #imm8
CCR, #imm8
PS
● ソフトウェア割込み実行中のハードウェア割込み受付け禁止
ソフトウェア割込みを起動した場合 , I フラグを "0" にクリアするため , ハードウェア
割込み要求は受け付けられません。
128
第 6 章 割込み
6.4.1
ハードウェア割込みの動作
割込み要求出力から割込み処理完了までの動作について説明します。
■ ハードウェア割込みの起動
● 周辺機能 ( リソース ) の動作 ( 割込み要求の出力 )
ハードウェア割込み要求の機能を持つ周辺機能 ( リソース ) は , 割込み要求の有無を示
す「割込み要求フラグビット」と , CPU への割込み要求許可 / 禁止を設定する「割込み
許可ビット」が各周辺機能 ( リソース ) 制御レジスタに定義されています。周辺機能
( リソース ) にて事前に設定された割込み要因を検出した場合 , 割込み要求フラグビッ
トに "1" がセットされ , 割込み出力許可ビットの設定が , CPU への割込み要求を許可し
ている場合は , 割込みコントローラへ割込み要求を出力します。
● 割込みコントローラの動作 ( 割込み要求の制御 )
割込みコントローラは , 割込み要求レベル (IL) を比較し , 最も強いレベルの割込み要求
を受け付けます。同じレベルの割込み要求が出力された場合は , 割込み番号が小さいも
のを優先して受け付けます ( 表 6.2-1 を参照 )。
● CPU の動作 ( 割込み要求の受付けと割込み処理 )
CPU は受け取った割込みレベル値 (ICR:IL2 ∼ IL0) とインタラプトレベルマスクレジス
タ値 (ILM) を比較し , IL2 ∼ IL0<ILM で , 割込みが許可 (PS:CCR:I=1) されている場合は
, 実行中の命令を終了した後に割込み処理を行います。また , 割込み制御レジスタ (ICR)
の EI2OS 許可ビット (ISE) に "0" が設定されている場合は割込み処理を実行し ,
"1" に設定されている場合は EI2OS を起動した後に割込み処理を実行します。
割込み処理では , システムスタック (SSB と SSP の示すシステムスタック空間 ) へ専用
レジスタ (A, DPR, ADB, DTB, PCB, PC, PS の 12 バイト ) の内容を退避させた後に , 割
込みベクタのプログラムカウンタ値 (PCB, PC) と ILM の更新を行ってから , スタック
フラグ (S) に "1" をセットし , システムスタックを有効にします。
■ ハードウェア割込みからの復帰
割込み処理プログラムで , 割込み要因となった周辺機能 ( リソース ) の割込み要求フラ
グビットに "0" を設定し , RETI 命令を実行させた場合 , システムスタックに退避させ
ているデータを専用レジスタに戻し , 割込み分岐前に実行していたプログラム処理へ
復帰します。
129
第 6 章 割込み
■ ハードウェア割込みの動作
図 6.4-2 ハードウェア割込みの動作
内部バス
(7)
F2MC-16LX CPU
PS,PC・・
マイクロコード
I
PS
IR
(6)
チェック
(5)
ILM
比較器
(4)
(3)
ほかの周辺機能
割込み要求を発生した周辺機能
(8)
許可ビット
要因フラグ
(1)
AND
レベル
比較器
割込み
レベルIL
(2)
割込みコントローラ
RAM
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
PS :プロセッサステータス
I :割込み許可フラグ
ILM:インタラプトレベルマスクレジスタ
IR :インストラクションレジスタ
(1) 周辺機能 ( リソース ) の内部で割込み要因を出力します。
(2) 周辺機能(リソース)内の割込み許可ビットの設定が割込みを許可している場合に,
周辺機能 ( リソース ) から割込みコントローラへ割込み要求を出力します。
(3) 割込み要求を周辺機能 ( リソース ) から受け取った割込みコントローラは , 割込み
の優先順位を判定した後 , 優先順位の最も高い割込み要求の割込みレベル (IL) を
CPU へ転送します。
(4) CPU は , 割込みコントローラから要求のあった割込みレベル (IL) をインタラプトレ
ベルマスクレジスタ (ILM) と比較します。
(5) 比較結果が設定されている割込み処理レベルより優先順位が高い場合,コンディショ
ンコードレジスタ (CCR) の I フラグの内容をチェックします。
(6) コンディションコードレジスタの I フラグの内容をチェックした結果 , 割込み許可
(CCR:I=1) の場合 , 現在実行中の命令が終了するまで待ち , 終了した場合 , ILM に要
求されたレベル (IL2 ∼ IL0) を設定します。
(7) システムスタックへ専用レジスタの値を退避させ, 割込み処理ルーチンへ分岐しま
す。
(8) 割込み処理ルーチン内のプログラムによって , 周辺機能 ( リソース ) の割込み要求
フラグビットに "0" を設定して , RETI 命令を実行させた場合に , システムスタック
から専用レジスタへ退避させた値を戻して , 割込み処理を終了します。
130
第 6 章 割込み
割込み動作時の処理
6.4.2
周辺機能 ( リソース ) から割込み要求を出力し , CPU が割込み要求を受け付けた場
合は , 現在実行中の命令が終了した後 , 割込み処理を行います。割込み制御レジスタ
(ICR) の EI2OS 許可ビット (ISE) に "0" が設定されている場合は , 割込み処理ルーチ
ンを実行し , EI2OS 許可ビット (ISE) に "1" が設定されている場合は , 拡張インテリ
ジェント I/O サービス (EI2OS) を起動します。INT 命令によるソフトウェア割込みを
出力した場合は , 現在実行中の命令を一時中断して , 割込み処理ルーチンを実行し ,
ハードウェア割込みを禁止します。
■ 割込み動作時の処理
図 6.4-3 割込み処理のフロー
スタート
ストリング系*
命令実行中
メインプログラム
I&IF&IE=1
AND
ILM>IL
YES
割込み起動/復帰処理
NO
YES
ISE=1
次の命令の取込みと
デコード
EI2OS
NO
YES
INT命令か?
NO
EI2OS処理
ソフトウェア
割込み/
例外処理
システムスタックへ
専用レジスタ退避
I←O
(ハードウェア割込みの禁止)
ハードウェア
割込み
YES
指定回数終了か?
または,周辺機能からの
終了要求があるか?
システムスタックへ
専用レジスタ退避
NO
ILM←IL
(受け付けられた割込み
要求の割込みレベルを
ILMに転送)
YES
割込み
復帰処理
RETI命令か?
NO
通常命令実行
(割込み処理を含む)
NO
システムスタックから
専用レジスタが復帰し,
割込みルーチン呼出し
前のルーチンへ復帰
S←1
(システムスタックを
有効にする)
PCB,PC←割込みベクタ
(割込み処理ルーチンへ
分岐)
ストリング系 *
命令の繰返し完了
YES
PC更新で次命令へ
ポインタ移動
* :ストリング系命令の実行中は,1ステップごとに
割込み判定を行います。
I :コンディションコードレジスタ(CCR)の
割込み許可フラグ
IF :周辺機能の割込み要求フラグ
IE :周辺機能の割込み許可フラグ
ILM:インタラプトレベルマスクレジスタ(PS中の)
ISE:割込み制御レジスタ(ICR)のEI2OS許可フラグ
IL :割込み制御レジスタ(ICR)の割込み許可レベル設定ビット
S
:コンディションコードレジスタ(CCR)の
スタックフラグ
PCB:プログラムカウンタバンクレジスタ
PC :プログラムカウンタ
131
第 6 章 割込み
ハードウェア割込み使用手順
6.4.3
ハードウェア割込みを使用する場合は , システムスタック領域 , 周辺機能 ( リソー
ス ), および割込み制御レジスタ (ICR) を設定してください。
■ ハードウェア割込み使用手順
図 6.4-4 ハードウェア割込み使用手順
スタート
(1)
システムスタック領域の設定
割込み処理プログラム
(2)
(3)
(4)
(5)
周辺機能の初期設定
スタック処理
割込みベクタへ分岐
割込みコントローラ内の
ICRの設定
周辺機能の動作開始設定
割込み許可ビットを許可
に設定
(7)
ハードウェア
による処理
PS内のILM,Iの設定
(8)
周辺機能への割込み
に対する処理(割込み処
理ルーチンの実行)
(9)
割込み要因のクリア
(10)
割込み復帰命令(RETI)
メインプログラム
(6)
割込み要求発生
メインプログラム
(1) システムスタック領域を設定します。
(2) 周辺機能 ( リソース ) の動作を設定します。
(3) 割込み制御レジスタ (ICR) の設定を行います。
(4) 周辺機能 ( リソース ) の割込み許可ビットを 割込み要求が出力できるように設定
します。
(5) 割込みレベルマスクレジスタ (ILM), および割込み許可フラグ (I) を割込み受付け
可能に設定します。
(6) 周辺機能 ( リソース ) の割込み要求を検出した場合 , ハードウェア割込み要求を出
力します。
(7) 割込み処理ハードウェアで, 専用レジスタ値をシステムスタックへ退避させ, 割込
み処理プログラムに分岐します。
(8) 割込み処理プログラムで , 割込み要求出力に対する周辺機能 ( リソース ) への処理
を行います。
(9) 周辺機能 ( リソース ) の割込み要求を解除します。
(10)割込み復帰命令 (RETI 命令 ) を実行し , 分岐前のプログラムに復帰します。
132
第 6 章 割込み
多重割込み
6.4.4
ハードウェア割込みでは , 周辺機能 ( リソース ) からの複数の割込み要求に対して ,
多重割込みを設定できますが , 拡張インテリジェント I/O サービスの多重起動はでき
ません。
■ 多重割込み
● 多重割込み動作
現在実行中の割込み要求より強い割込みレベルの割込み要求が出力された場合は , 現
在実行中の割込み処理を中断し , 強い割込み要求を実行します。現在実行中の割込み要
求より強いレベルの割込み処理が終了した場合 , 最初に実行していた割込み処理を行
います。
割込み処理実行中に , 現在実行中の割込みと同等か , より弱いレベルの割込み要求が出
力された場合は , コンディションコードレジスタ (CCR) の I フラグか , またはインタラ
プトレベルマスクレジスタ (ILM) を変更しないかぎり現在の割込み処理が終了するま
で新しい割込み要求は保留され , 現在の割込み処理が終了した場合 , 保留されている割
込み要求を実行します。
割込み処理ルーチン内でコンディションコードレジスタ (CCR) の I フラグを割込み禁
止 (CCR:I=0) に設定した場合 , また , インタラプトレベルマスクレジスタ (ILM) を割込
み禁止 (ILM=000B) に設定した場合は , 割込みの多重起動を禁止できます。
<注意事項>
・割込みレベルは 0 ∼ 7 まで設定できますが , レベル 7 に設定した場合 , CPU は割込み要
求を受け付けません。
・拡張インテリジェント I/O サービス (EI2OS) は多重起動できません。拡張インテリジェ
ント I/O サービス (EI2OS) の処理中に出力された割込み要求 , および拡張インテリジェ
ント I/O サービス要求はすべて保留されます。
● 多重割込みの例
多重割込み処理の例として, A/Dコンバータよりタイマ割込みを優先させる場合を想定
し , A/D コンバータの割込みレベルを 2 に , タイマ割込みレベルを 1 に設定します。A/D
コンバータの割込み処理中にタイマ割込みを出力した場合は , 図 6.4-5 に示すような手
順で割込み処理を行います。
133
第 6 章 割込み
図 6.4-5 多重割込みの例
メインプログラム
A/D 割込み処理
割込みレベル2
(ILM= 010 B )
割込みレベル1
(ILM= 001 B )
周辺初期化 (1)
A/D 割込み発生(2)
タイマ割込み処理
(3) タイマ割込み発生
中断
(4)タイマ割込み処理
再開
メイン処理再開(8)
(6)A/D 割込み処理
(5)タイマ割込み復帰
(7)A/D 割込み復帰
• A/D コンバータ割込み処理開始時に , インタラプトレベルマスクレジスタ (ILM) が
A/D コンバータの割込みレベル (ICR:IL2 ∼ IL0) と同じ値 ( 例では (2)) になります。
レベル 1 あるいはレベル 0 の割込み要求が発生すると , レベル 1 あるいはレベル 0
の割込み処理を優先して行います。
• 割込み処理が終了して復帰命令 (RETI) を実行すると , スタック内に退避した専用レ
ジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の値が復帰し , インタラプトレベルマスク
レジスタ (ILM) は中断前の値となります。
134
第 6 章 割込み
ハードウェア割込み処理時間
6.4.5
ハードウェア割込み要求が発生し , 割込み処理ルーチンが実行されるまでには , 現在
実行中の命令が終了するまでの時間と割込みハンドリング時間が必要です。
■ ハードウェア割込み処理時間
周辺機能 ( リソース ) から割込み要求を出力し , 割込み処理ルーチンが実行されるまで
には , 割込み要求サンプル待ち時間と割込みハンドリング時間 ( 割込み処理準備に要す
る時間 ) が必要です。
図 6.4-6 割込み処理時間
通常命令実行
CPUの動作
割込み待ち時間
割込み要求
サンプル待ち時間
割込みハンドリング
割込み処理ルーチン
割込みハンドリング時間
(θマシンサイクル)*
割込み要求出力
:命令最終サイクル,ここで割込み要求をサンプリングします。
*:1マシンサイクルは,マシンクロック(φ)の1クロック周期に相当します。
● 割込み要求サンプル待ち時間
周辺機能 ( リソース ) から割込み要求を出力し , 現在実行中の命令が終了するまでの時
間を示します。割込み要求は , 実行している命令の最終サイクルで割込み要求を出力し
ているか出力していないかをサンプリングします。命令の実行中は , 割込み要求を認識
できず , 割込み要求サンプル待ち時間が発生します。
<参考>
割込み要求サンプル待ち時間は , 最も実行サイクルの長い POPW RW0, …RW7 命令 (45
マシンサイクル ) 開始直後に割込み要求を出力した場合 , 最大となります。
● 割込みハンドリング時間 ( φ マシンサイクル )
CPUは, 割込み要求を受け付けた後, 専用レジスタの値をシステムスタックへ退避させ,
割込みベクタの取込みを行うため , 割込みハンドリング時間を必要とします。割込みハ
ンドリング時間は , 以下の式によって求められます。
割込み起動の場合 : φ = 24 + 6 × Z マシンサイクル
割込み復帰の場合 : φ = 11 + 6 × Z マシンサイクル (RETI 命令 )
割込みハンドリング時間は , スタックポインタのアドレスによって異なります。
135
第 6 章 割込み
表 6.4-3 割込みハンドリング時間の補正値 (Z)
スタックポインタが指しているアドレス
補正値 (Z)
外部割込みが 8 ビットの場合
+4
外部割込みが偶数アドレスの場合
+1
外部割込みが奇数アドレスの場合
+4
内部割込みが偶数アドレスの場合
0
内部割込みが奇数アドレスの場合
+2
<参考>
1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。
136
第 6 章 割込み
ソフトウェア割込み
6.5
ソフトウェア割込み命令を実行した場合 , メインプログラムから割込み処理用プロ
グラムへ遷移します。ソフトウェア割込みの実行中は , ハードウェア割込みを受け
付けません。
■ ソフトウェア割込みの起動
● ソフトウェア割込みの起動
ソフトウェア割込みの起動には , INT 命令を使用します。ソフトウェア割込み要求には
ハードウェア割込みのような割込み要求フラグビット , および許可ビットはありませ
んので , INT 命令を実行した場合に割込み要求を出力します。
● ハードウェア割込みの抑止
INT 命令には割込みレベルがありませんので , インタラプトレベルマスクレジスタ
(ILM) は更新されません。INT 命令実行中は , コンディションコードレジスタ (CCR) の
I フラグを "0" に設定し , ハードウェア割込みをマスクします。ソフトウェア割込み処
理中にハードウェア割込みを許可する場合は , ソフトウェア割込み処理ルーチンでコ
ンディションコードレジスタ (CCR) の I フラグに "1" を設定してください。
● ソフトウェア割込みの動作
CPU が INT 命令を取り込んだ場合 , ソフトウェア割込み処理用マイクロコードを起動
します。ソフトウェア割込み処理用マイクロコードにより , CPU 内部のレジスタ類を
システムスタックに退避させ , ハードウェア割込みをマスク (CCR:I=0) した後に対応す
る割込みベクタへ分岐します。
<参考>
割込み番号と割込みベクタの割当てについては , 「6.2 割込み要因と割込みベクタ」を参
照してください。
■ ソフトウェア割込みからの復帰
割込み処理プログラムの中で割込み復帰命令 (RETI 命令 ) を実行した場合は , システム
スタックに退避させているデータを専用レジスタに戻して , 割込み分岐前に実行して
いた処理に復帰します。
137
第 6 章 割込み
■ ソフトウェア割込みの動作
図 6.5-1 ソフトウェア割込みの動作
内部バス
PS,PC…
(1) PS
(2)マイクロコード
I
S
IR
キュー
フェッチ
RAM
PS:プロセッサステータス
I :割込み許可フラグ
S :スタックフラグ
IR:インストラクションレジスタ
(1) ソフトウェア割込み命令 (INT 命令 ) を実行させます。
(2) 専用レジスタをシステムスタックに退避させ , ハードウェア割込みをマスクして割
込みベクタへ分岐します。
<注意事項>
プログラムカウンタバンクレジスタ (PCB) が "FFH" に設定されている場合 , CALLV 命令
のベクタ領域は INT #vct8 命令のテーブルと重複しますので , ソフトウェアは CALLV 命
令と INT #vct8 命令のアドレスの重複を解消するように設計してください。
138
第 6 章 割込み
拡張インテリジェント I/O サービス (EI2OS) による割込み
6.6
拡張インテリジェント I/O サービス (EI2OS) は , 周辺機能 ( リソース ) とメモリの間
でデータ転送を行う機能です。データ転送が終了した場合 , ハードウェア割込み処
理を行います。
■ 拡張インテリジェント I/O サービス (EI2OS)
拡張インテリジェント I/O サービスは , ハードウェア割込みの一種です。周辺機能 ( リ
ソース ) とメモリの間でデータ転送を行う機能です。ユーザは , EI2OS を起動する場合
と終了する場合にプログラムを作成し , データ転送プログラムは不要です。
● 拡張インテリジェント I/O サービス (EI2OS) の利点
割込み処理ルーチンで行っていたデータ転送と比べた場合 , 以下の利点があります。
• 転送プログラムを記述する必要がないので , プログラムサイズを小さくできる。
• 周辺機能 ( リソース ) の割込み要因によって転送を起動できるので , データの転送要
因をポーリングする必要がない。
• 転送アドレスのインクリメントを設定可能
• I/O レジスタアドレスのインクリメント , および更新なしを設定可能
● 拡張インテリジェント I/O サービス (EI2OS) の終了割込み
EI2OS によるデータ転送が終了した場合 , 割込み処理ルーチンへ分岐します。
割込み処理プログラムで , 割込み制御レジスタ (ICR) の EI2OS ステータスビット (S1,
S0) をチェックすることにより , EI2OS の終了要因を判断できます。
<参考>
割込み番号や割込みベクタは , 各周辺で固定されています。詳細は「6.2 割込み要因と割
込みベクタ」を参照してください。
● 割込み制御レジスタ (ICR)
EI2OS の起動 , EI2OS のチャネルを設定できます。また , EI2OS 終了時の EI2OS ステー
タス表示を行います。
139
第 6 章 割込み
● 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD)
EI2OS ディスクリプタは , RAM 上の "000100H" ∼ "00017FH" に配置されており , 転送
モード , 周辺機能 ( リソース ) のアドレスや転送バイト数 , 転送先アドレスを設定する
8 バイト× 16 チャネル分のレジスタです。割込み制御レジスタ (ICR) でチャネル設定
を行います。
<注意事項>
拡張インテリジェント I/O サービス (EI2OS) が動作している場合 , CPU のプログラムは実
行されません。
■ 拡張インテリジェント I/O サービス (EI2OS) の動作
図 6.6-1 拡張インテリジェント I/O サービス (EI2OS) の動作
メモリ空間
周辺機能(リソース)
by IOA
リソース
レジスタ
リソースレジスタ (5)
CPU
割込み要求
(3)
ISD
by ICS
(2)
(3)
(1)
割込み制御レジスタ(ICR )
割込みコントローラ
by BAP
(4)
ISD
IOA
BAP
ICS
DCT
バッファ
by DCT
:EI2OS ディスクリプタ
:I/Oアドレスポインタ
:バッファアドレスポインタ
:割込み制御レジスタ(ICR )のEI2OS チャネル設定ビット
:データカウンタ
(1) 周辺機能 ( リソース ) から , 割込み要求を出力します。
(2) 割込みコントローラが EI2OS ディスクリプタを割込み制御レジスタ (ICR) の設定に
従って設定します。
(3) 転送元や転送先が EI2OS ディスクリプタから読み出されます。
(4) 周辺機能 ( リソース ) とメモリ間でデータの転送が行われます。
(5) データ転送終了後に周辺機能 ( リソース ) の割込み要求フラグビットは "0" にクリ
アされます。
140
第 6 章 割込み
6.6.1
拡張インテリジェント I/O サービス (EI2OS) ディスク
リプタ (ISD)
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , RAM の
"000100H" ∼ "00017FH" に存在し , 8 バイト× 16 チャネルで構成されています。
■ 拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) の構成
ISD は , 8 バイト× 16 チャネルで構成されています。
図 6.6-2 EI2OS ディスクリプタ (ISD) の構成
MSB
LSB
データカウンタ上位8ビット(DCTH)
"H"
データカウンタ下位8ビット(DCTL)
I/Oアドレスポインタ上位8ビット(IOAH)
I/Oアドレスポインタ下位8ビット(IOAL)
EI2OSステータスレジスタ(ISCS)
バッファアドレスポインタ上位8ビット(BAPH)
バッファアドレスポインタ中位8ビット(BAPM)
ISD先頭アドレス
(000100 H +8×ICS )
バッファアドレスポインタ下位8ビット(BAPL)
"L"
MSB:最上位ビット
LSB:最下位ビット
表 6.6-1 EI2OS ディスクリプタ領域
チャネル
ディスクリプタアドレス
0
000100H
1
000108H
2
000110H
3
000118H
4
000120H
5
000128H
6
000130H
7
000138H
8
000140H
9
000148H
10
000150H
11
000158H
12
000160H
13
000168H
14
000170H
15
000178H
141
第 6 章 割込み
拡張インテリジェント I/O サービス (EI2OS) ディスク
リプタ (ISD) の各レジスタ
6.6.2
拡張インテリジェント I/O サービス (EI2OS) ディスクリプタ (ISD) は , 以下に示す 8
バイトのレジスタで構成されています。
・データカウンタ (DCT:2 バイト )
・I/O アドレスポインタ (IOA:2 バイト )
・EI2OS ステータスレジスタ (ISCS:1 バイト )
・バッファアドレスポインタレジスタ (BAP:3 バイト )
各レジスタの初期値は不定です。
■ データカウンタ (DCT)
データカウンタ (DCT) は , 16 ビット長のレジスタです。転送データバイト数を設定し
ます。データを 1 バイト転送するごとに , カウンタ値は -1( デクリメント ) されます。
データカウンタ値が "0000H" になった場合 , EI2OS が終了します。
図 6.6-3 データカウンタ (DCT) の構成
DCTL
DCTH
bit
DCT
15
14
13
12
11
10
9
8
7
6
5
4
3
2
1
0
B15 B14 B13 B12 B11 B10 B09 B08 B07 B06 B05 B04 B03 B02 B01 B00
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
初期値
XXXXXXXXXXXXXXXXB
R/W
R/W:リード/ライト可能
X :不定
■ I/O アドレスポインタ (IOA)
I/O アドレスポインタ (IOA) は , 16 ビット長のレジスタです。データ転送を行うための
I/O レジスタ下位アドレス (A15 ∼ A00) を設定します。上位アドレス (A23 ∼ A16) は
"00H" であり , "0000H" から "FFFFH" 番地までの I/O をアドレスで設定できます。
図 6.6-4 I/O アドレスポインタ (IOA) の構成
IOAH
bit
IOA
15
14
13
12
11
IOAL
10
9
8
7
6
5
4
3
2
1
0
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
初期値
XXXXXXXXXXXXXXXXB
R/W
R/W:リード/ライト可能
X :不定
■ EI2OS ステータスレジスタ (ISCS)
EI2OS ステータスレジスタ (ISCS) は , 8 ビット長で , バッファアドレスポインタと I/O
アドレスポインタの更新 / 固定 , 転送データ形式 ( バイト / ワード ) および転送方向を
設定します。
142
第 6 章 割込み
図 6.6-5 EI2OS ステータスレジスタ (ISCS) の構成
bit
7
6
5
予約
予約
予約
IF
R/W
R/W
R/W
R/W
2
1
0
初期値
BW
BF
DIR
SE
XXXXXXXXB
R/W
R/W
R/W
R/W
4
3
EI2 OS 終了制御ビット
SE
0
周辺機能からの要求で終了しません。
1
周辺機能からの要求で終了します。
データ転送方向設定ビット
DIR
0
I/Oアドレスポインタ→バッファアドレスポインタ
1
バッファアドレスポインタ→I/Oアドレスポインタ
BAP 更新/固定設定ビット
BF
0
データ転送後バッファアドレスポインタは更新されます。*1
1
データ転送後バッファアドレスポインタは更新されません。
BW
転送データ長設定ビット
0
バイト
1
ワード
IOA 更新/固定設定ビット
IF
*2
0
データ転送後I/Oアドレスポインタは更新されます。
1
データ転送後I/Oアドレスポインタは更新されません。
予約ビット
予約
必ず"0"を設定してください。
R/W :リード/ライト可能
X :不定
*1 :バッファアドレスポインタは,下位16ビットだけ変化し,インクリメントだけ可能です。
*2 :アドレスポインタは,インクリメントだけ可能です。
■ バッファアドレスポインタ (BAP)
バッファアドレスポインタ (BAP) は , 24 ビットのレジスタです。EI2OS 動作で , データ
転送元のメモリアドレスを設定します。バッファアドレスポインタ (BAP) は , EI2OS の
各チャネルに存在しますので , 16M バイトのメモリアドレスと周辺機能 ( リソース ) ア
ドレスとの間でデータを転送できます。EI2OS ステータスレジスタ (ISCS) の BAP 更新 /
固定設定ビット (BF) に "0" を設定した場合は , 下位 16 ビット (BAPM, BAPL) がインクリ
メントされ , 上位 8 ビット (BAPH) はインクリメントされません。
図 6.6-6 バッファアドレスポインタ (BAP) の構成
bit23 ∼ bit16
BAPH
(R/W)
R/W :リード / ライト可能
X :不定
BAP
bit15 ∼ bit8
BAPM
(R/W)
bit7 ∼ bit0
BAPL
(R/W)
初期値
XXXXXXH
<注意事項>
・データカウンタ (DCT) で設定できる最大転送回数は , 65, 536 回 (64 K バイト ) です。
・I/O アドレスポインタ (IOA) で設定できる領域は , "000000H" ∼ "00FFFFH" です。
・バッファアドレスポインタ (BAP) で設定できる領域は , "000000H" ∼ "FFFFFFH" です。
143
第 6 章 割込み
6.6.3
拡張インテリジェント I/O サービス (EI2OS) の動作
周辺機能 ( リソース ) から割込み要求を出力し , 割込み制御レジスタ (ICR) に EI2OS
の起動を事前に設定している場合 , CPU は EI2OS によるデータ転送を行います。
EI2OS 処理が終了した場合 , ハードウェア割込み処理を行います。
■ 拡張インテリジェント I/O サービス (EI2OS) の処理手順
図 6.6-7 拡張インテリジェント I/O サービス (EI2OS) の動作フロー
周辺機能より
割込み要求発生
ISE=1
NO
YES
割込みシーケンス
ISD/ISCS リード
周辺機能から
の終了要求
YES
DIR=1
YES
NO
IOAで示されるデータ
(データ転送)
BAPで示されるメモリ
BAPで示されるデータ
(データ転送)
IOAで示されるメモリ
YES
IF=0
NO
更新値は
BW による
IOA 更新
更新値は
BW による
BAP 更新
YES
BF=0
NO
DCTデクリメント
DCT=00 B
NO
(-1)
YES
S1,S0に00 Bをセット
周辺機能割込み要求の
クリア
CPU 動作復帰
ISD :EI2OS ディスクリプタ
ISCS :EI2OS ステータスレジスタ
IF :EI2OS ステータスレジスタ(ISCS )の
IOA更新/固定設定ビット
BW :EI2OS ステータスレジスタ(ISCS )の
転送データ長設定ビット
BF :EI2OS ステータスレジスタ(ISCS )の
BAP 更新/固定設定ビット
DIR :EI2OS ステータスレジスタ(ISCS )の
データ転送方向設定ビット
SE :EI2OS ステータスレジスタ(ISCS )の
EI2OS 終了制御ビット
144
YES
SE=1
NO
NO
EI2 OS 終了処理
S1,S0 に" 01B"をセット
S1 ,S0 に" 11B"をセット
ISE を" 0"にクリア
割込みシーケンス
DCT :データカウンタ
IOA :I/O アドレスポインタ
BAP :バッファアドレスポインタ
ISE :割込み制御レジスタ(ICR )のEI2OS 許可ビット
S1,S0 :割込み制御レジスタ(ICR )のEI2OS ステータス
第 6 章 割込み
6.6.4
拡張インテリジェント I/O サービス (EI2OS) 使用手順
拡張インテリジェント I/O サービス (EI2OS) の設定は , システムスタック領域 , 拡張
インテリジェント I/O サービス (EI2OS) ディスクリプタ , 周辺機能 ( リソース ), およ
び割込み制御レジスタ (ICR) で設定します。
■ 拡張インテリジェント I/O サービス (EI2OS) の使用手順
図 6.6-8 拡張インテリジェント I/O サービス (EI2OS) 使用手順
ソフトウェアによる処理
ハードウェアによる処理
開 始
システムスタック領域の設定
初期設定
EI2 OS ディスクリプタの設定
周辺機能の初期設定
割込み制御レジスタ
(ICR)の設定
内蔵リソースの動作開始
設定割込み許可ビットの
設定
PS内のILM,Iの設定
S1,S0=00 B
ユーザプログラムの実行
(割込み要求)と(ISE=1)
データ転送
NO
カウントアウトまたは
リソースからの終了要求
による割込みへ分岐の判定
(割込みベクタへ分岐)
拡張インテリジェントI/O
サービスの再設定
(チャネルの切換えなど)
YES
S1,S0=01 Bまたは
S1,S0=11 B
バッファ中のデータの処理
RETI
ISE :割込み制御レジスタ(ICR)のEI2OSの許可ビット
S1,S0 :割込み制御レジスタ(ICR)のEI2OSステータス
145
第 6 章 割込み
6.6.5
拡張インテリジェント I/O サービス (EI2OS) 処理時間
拡張インテリジェント I/O サービス (EI2OS) の処理に必要な時間は拡張インテリ
ジェント I/O サービスディスクリプタ (ISD) の設定により異なります。
・EI2OS ステータスレジスタ (ISCS) の設定
・I/O アドレスポインタ (IOA) の示すアドレス設定
・バッファアドレスポインタ (BAP) の示すアドレス設定
・外部アクセス時の外部データバス幅
・転送データのデータ長
EI2OS によるデータ転送が終了した場合は , ハードウェア割込みが起動されるた
め , 割込みハンドリング時間が加算されます。
■ 拡張インテリジェント I/O サービス (EI2OS) 処理時間 (1 回の転送時間 )
● データ転送継続時
データ転送を継続する場合の EI2OS 処理時間は , EI2OS ステータスレジスタ (ISCS) の
設定によって , 表 6.6-2 のようになります。
表 6.6-2 拡張インテリジェント I/O サービス実行時間
EI2OS 終了制御ビット (SE) の設定
IOA 更新 / 固定設定ビット (IF) の設定
BAP アドレス更新 / 固定
設定ビット (BF) の設定
周辺からの終了要求により終了 周辺からの終了要求を無視
固定
更新
固定
更新
固定
32
34
33
35
更新
34
36
35
37
単位 : マシンサイクル (1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。)
146
第 6 章 割込み
データ転送を継続する場合の EI2OS 処理時間は , 表 6.6-3 に示すように , EI2OS 実行条
件によって補正が必要です。
表 6.6-3 EI2OS 実行時間のデータ転送の補正値
内部アクセス
外部アクセス
I/O アドレスポインタ
バッファ
アドレス
ポインタ
B/ 偶
奇
B/ 偶
8/ 奇
B/ 偶
0
+2
+1
+4
奇
+2
+4
+3
+6
B/ 偶
+1
+3
+2
+5
8/ 奇
+4
+6
+5
+8
内部アクセス
外部アクセス
B : バイトデータ転送
8: 外部バス幅 8 ビット・ワード転送
偶 : 偶数アドレス・ワード転送
奇 : 奇数アドレス・ワード転送
● データカウンタ (DCT) のカウント終了時 ( 最終回のデータ転送時 )
EI2OSによるデータ転送が終了した場合, ハードウェア割込みが起動されるため割込み
ハンドリング時間が加算されます。カウント終了時の EI2OS の処理時間は , 下式で算
出されます。式中の Z は , 割込みハンドリング時間の補正値です。
カウント終了時の EI2OS 処理時間=データ転送時の EI2OS 処理時間+ (21+6 × Z) マシンサイクル
↑
割込みハンドリング時間
割込みハンドリング時間は , スタックポインタが格納しているアドレスによって異な
ります。
表 6.6-4 割込みハンドリング時間の補正値 (Z)
スタックポインタが指しているアドレス
補正値 (Z)
外部 8 ビットの場合
+4
外部偶数アドレスの場合
+1
外部奇数アドレスの場合
+4
内部偶数アドレスの場合
0
内部奇数アドレスの場合
+2
147
第 6 章 割込み
● 周辺機能 ( リソース ) からの終了要求により終了した場合
周辺機能 ( リソース ) からの終了要求では , EI2OS によるデータ転送を途中で終了した
場合 (ICR:S1, S0=11B) は , データ転送は行わず , ハードウェア割込みを起動します。
EI2OS 処理時間は , 下式で算出されます。式中の Z は , 割込みハンドリング時間の補正
値です ( 表 6.6-4 を参照 )。
途中終了した場合の EI2OS 処理時間= 36 + 6 × Z マシンサイクル
<参考>
1 マシンサイクルは , マシンクロック ( φ ) の 1 クロック周期に相当します。
148
第 6 章 割込み
6.7
例外処理割込み
MB90800 シリーズでは , 定義されていない命令を実行した場合 , 例外処理を行いま
す。例外処理は , 割込みと同じものであり命令と命令の間で例外事項が発生した場
合は , プログラム処理を中断して例外処理ルーチンへ分岐します。
例外処理は , 予想外の動作を行った結果によって発生するものであり , デバッグ時や
未定義命令の実行 , CPU 暴走状態検出の起動に使用できます。
■ 例外処理
● 例外処理の動作
MB90800 シリーズでは , 命令マップで定義されていない命令を実行した場合 , ソフト
ウェア割込み命令の例外処理ルーチンへ分岐します。
例外処理では , 割込みルーチンへ分岐する前に , 以下に示す処理を行います。
• システムスタックへ専用レジスタ (A, DPR, ADB, DTB, PCB, PC, PS) の内容を退避さ
せます。
• コンディションコードレジスタ (CCR) の I フラグを "0" にクリアし , ハードウェア
割込みをマスクします。
• コンディションコードレジスタ (CCR) の S フラグに "1" をセットし , システムスタッ
クを有効にします。
システムスタックへ退避させたプログラムカウンタ (PC) の値は , 未定義命令のプログ
ラムアドレスを格納しています。2 バイト以上の命令コードの場合は , 未定義命令であ
ることが識別できたコードを格納しているプログラムアドレスになります。例外処理
ルーチン内で , 例外要因の種類を判定する必要がある場合は , システムスタックへ退避
させた PC 値を使用してください。
● 例外処理からの復帰
例外処理からRETI命令で復帰させた場合, PCが未定義命令を指しているために, 再度,
例外処理ルーチンへ分岐します。ソフトウェアリセットまたは RST 端子から "L" レベ
ルを入力 ( 外部リセット ) してください。
149
第 6 章 割込み
割込み処理のスタック動作
6.8
割込みが受け付けられた場合 , 割込み処理に分岐する前に , 専用レジスタの内容をシ
ステムスタックに退避させます。割込み処理が終了した後に , 割込み復帰命令を実
行することにより , システムスタックから専用レジスタへ退避させた値を復帰でき
ます。
■ 割込み処理開始時のスタック動作
割込みが受け付けられた場合は , CPU は専用レジスタの内容を以下に示す順番で , シス
テムスタックに退避させます。
1. アキュムレータ (A)
2. ダイレクトページレジスタ (DPR)
3. アディショナルデータバンクレジスタ (ADB)
4. データバンクレジスタ (DTB)
5. プログラムカウンタバンクレジスタ (PCB)
6. プログラムカウンタ (PC)
7. プロセッサステータス (PS)
図 6.8-1 割込み処理開始時のスタック動作
割込み直前
SSB
アドレス
08FFH
08FEH
00H
SSP
08FEH
A
0000H
08FEH
AH
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
PC
803FH
PS
20E0H
08F2H
割込み直後
メモリ
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
XXH
"H"
SP
SSB
アドレス
08FFH
08FEH
00H
SSP
08F2H
A
0000H
08FEH
AH
"L"
バイト
AL
DPR
01H
ADB
00H
DTB
00H
PCB
FFH
PC
803FH
PS
20E0H
08F2H
メモリ
SP
00H
00H
08H
FEH
01H
00H
00H
FFH
80H
3FH
20H
E0H
バイト
AH
AL
DPR
ADB
DTB
PCB
PC
PS
更新後
のSP
■ 割込み処理復帰時のスタック動作
割込み処理が終了した後 , 割込み復帰命令 (RETI) を実行した場合は , 割込み処理開始
時と反対の順番で専用レジスタ (PS, PC, PCB, DTB, ADB, DPR, A) の値がスタックから
復帰し , 専用レジスタは割込み処理へ分岐する前の状態に戻ります。
■ スタック領域
● スタック領域の確保
スタック領域は , 割込み処理 , サブルーチンコール命令 (CALL), ベクタコール命令
(CALLV) を実行する場合に , プログラムカウンタ (PC) の退避 / 復帰や , PUSHW, POPW
命令によるレジスタ値の退避 / 復帰にも使用します。スタック領域は , データ領域とと
もに RAM 上に設定します。
150
第 6 章 割込み
図 6.8-2 スタック領域
ベクタテーブル
(リセット・割込み
ベクタコール命令)
FFFFFFH
FFFC00H
ROM領域
FF0000H *1
~
~
~
~
000D00H *2
内蔵RAM領域
スタック領域
000380H
汎用レジスタ
バンク領域
000180H
000100H
0000C0H
000000H
内蔵I/O領域
*1:品種によって,内蔵ROM容量が異なります。
*2:品種によって,内蔵RAM容量が異なります。
<注意事項>
・スタックポインタ (SSP, USP) にアドレスを設定する場合 , 偶数アドレスを設定してく
ださい。奇数アドレスを設定した場合は , スタックに退避 / 復帰処理時間が 1 サイクル
多くかかります。
・システムスタック領域 , ユーザスタック領域 , およびデータ領域は , 重なり合わないよう
に配置してください。
● システムスタックとユーザスタック
割込み処理では , システムスタック領域を使用します。割込み出力時にユーザスタック
領域を使用していても , システムスタックに切り換わります。スタック空間を分ける必
要がない場合は , システムスタックを使用してください。
151
第 6 章 割込み
6.9
割込み処理のプログラム例
割込み処理のプログラム例を示します。
■ 割込み処理のプログラム例
● 処理仕様
外部割込み 0(INT0) を利用した割込みプログラムの一例です。
● コーディング例
EQU
000011H
; ポート 1 方向レジスタ
EQU
028H
; 割込み /DTP 許可レジスタ
EQU
029H
; 割込み /DTP フラグ
EQU
02AH
; 要求レベル設定レジスタ
EQU
0B0H
; 割込み制御レジスタ
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
DDR1, #00000000B ; P10/INT0 端子を入力に設定
OR
CCR, #40H
; PS 内 CCR の I フラグをセットして
割込み許可
MOV
I:ICR00, #00H
; 割込みレベル 0( 最強 ) とする
MOV
I:ELVR, #00000001B; INT0 を "H" レベル要求とする
MOV
I:EIRR, #00H
; INT0 の割込み要因をクリア
MOV
I:ENIR, #01H
; INT0 の入力許可 :
LOOP:
NOP
; ダミーループ
NOP
NOP
NOP
BRA
LOOP
; 無条件ジャンプ
;---------- 割込みプログラム -----------------------------------------------------ED_INT1:
MOV
I:EIRR, #00H
; INT0 の新規受付け禁止
NOP
NOP
NOP
NOP
NOP
NOP
DDR1
ENIR
EIRR
ELVR
ICR00
STACK
152
第 6 章 割込み
■
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 サービス (EI2OS) のプログラム例
● 処理仕様
• INT0 端子に入力される信号の "H" レベルを検出して拡張インテリジェント I/O サー
ビス (EI2OS) を起動
• INT0 端子に "H" レベルが入力されると , EI2OS が起動されポート 0 のデータをメモ
リの "3000H" 番地に転送
• 転送データバイト数は 100 バイトで , 100 バイト転送後 , EI2OS 転送終了による割込
みを出力
● コーディング例
EQU
000011H
; ポート 1 方向レジスタ
EQU
000028H
; 割込み /DTP 許可レジスタ
EQU
000029H
; 割込み /DTP 要因レジスタ
EQU
00002AH
; 要求レベル設定レジスタ
EQU
0000B0H
; 割込み制御レジスタ
EQU
000100H
; バッファアドレスポインタ下位
EQU
000101H
; バッファアドレスポインタ中位
EQU
000102H
; バッファアドレスポインタ上位
EQU
000103H
; EI2OS ステータス
EQU
000104H
; I/O アドレスポインタ下位
EQU
000105H
; I/O アドレスポインタ上位
EQU
000106H
; データカウンタ下位
EQU
000107H
; データカウンタ上位
EQU
EIRR:0
; 外部割込み要求フラグビットの定義
SSEG
; スタック
RW
100
STACK_T
RW
1
STACK
ENDS
;---------- メインプログラム -----------------------------------------------------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:DDR1, #00000000B ; P10/INT0 端子を入力に設定
DDR1
ENIR
EIRR
ELVR
ICR00
BAPL
BAPM
BAPH
ISCS
IOAL
IOAH
DCTL
DCTH
ER0
STACK
153
第 6 章 割込み
BAPL, #00H
MOV
MOV
MOV
BAPM, #30H
BAPH, #00H
ISCS, #00010001B
MOV
IOAL, #00H
MOV
MOV
MOV
MOV
IOAH, #00H
DCTL, #64H
; 転送バイト数をセット (100 バイト )
DCTH, #00H
I:ICR00, #00001000B ; EI2OS ch.0, EI2OS 許可 ,
割込みレベル 0
; ( 最強 )
I:ELVR, #00000001B ; INT0 を "H" レベル要求とする
I:EIRR, #00H
; INT0 の割込み要因クリア
I:ENIR, #01H
; INT0 の割込み許可
ILM, #07H
; PS 内 ILM をレベル 7 に設定
CCR, #40H
; PS 内 CCR の I フラグをセットして割込
み許可
MOV
MOV
MOV
MOV
OR
LOOP:
; バッファアドレスをセット (003000H)
MOV
:
BRA
LOOP
; I/O アドレス更新なし , バイト転送 ,
; バッファアドレス更新あり
; I/O →バッファへ転送 , 周辺機能による
; 終了あり
; 転送元アドレスをセット
( ポート 0:000000H)
; 無限ループ
;---------- 割込みプログラム -----------------------------------------------------WARI
CLRB
ER0
; 割込み /DTP 要求フラグのクリア
:
ユーザ処理
; EI2OS の終了要因をチェック ,
:
; バッファ中のデータの処理 , EI2OS の
再設定など
RETI
CODE
ENDS
---------- ベクタ設定 ------------------------------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FFD0H
; 割込み #11(0BH) にベクタを設定
VECT
154
DSL
ORG
DSL
DB
ENDS
END
WARI
0FFDCH
START
00H
START
; リセットベクタ設定
; シングルチップモードに設定
第7章
モード設定
MB90800 シリーズの動作モードとメモリアクセス
モードについて説明します。
7.1 モード設定の概要
7.2 モード端子 (MD2 ∼ MD0)
7.3 モードデータ
155
第 7 章 モード設定
7.1
モード設定の概要
リセット入力時のモード端子レベルの設定と , モードデータレジスタにモードデー
タを設定することにより , 動作モードを設定できます。
■ モード設定
動作モード
バスモード
・RUNモード
シングルチップ
・フラッシュメモリ書込みモード
■ 動作モード
動作モードは , モード端子 (MD2 ∼ MD0) とモードデータレジスタのバスモード設定
ビット (M1, M0) で設定します。設定した動作モードで , 通常動作の起動 / フラッシュ
メモリの書込みを行います。
<注意事項>
MB90800 シリーズでは , シングルチップモードを設定してください。
シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ
ジスタのバスモード設定ビット (M1, M0) は "00B" に 設定してください。
■ バスモード
バスモードは , リセットベクタを読み出すメモリが外部にあるか内部にあるかにより異
なります。
モード設定端子 (MD2 ∼ MD0) とモードデータレジスタのバスモード設定ビッ
ト (M1, M0) を設定することでバスモードを設定できます。
モード設定端子 (MD2 ∼ MD0)
で , リセットベクタおよびモードデータを読み出す場合のバスモードを設定します。ま
た , モードデータレジスタのバスモード設定ビット (M1, M0) で , バスモードを設定しま
す。
<参考>
RUN モードは , CPU が動作しているモードのことをいいます。RUN モードには , メイン
クロックで動作するメインクロックモード , PLL クロックで動作する PLL クロックモード ,
低消費電力モードがあります。詳細は ,「第 5 章 低消費電力モード」を参照してください。
<注意事項>
MB90800 シリーズでは , シングルチップモードを設定してください。
シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ
ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。
156
第 7 章 モード設定
モード端子 (MD2 ∼ MD0)
7.2
モード端子は , MD2 ∼ MD0 の 3 本の外部端子で , リセットベクタとモードデータの
取込み方法を設定します。
■ モード端子 (MD2 ∼ MD0)
モード端子で , リセットベクタの読出しを外部メモリとするか , 内部メモリとするかを
設定します。リセットベクタを外部メモリに設定した場合は , 外部データバス幅をモー
ドデータレジスタで設定します。
フラッシュメモリ内蔵品の場合は , 内蔵フラッシュメモリにプログラムを書き込むた
めに , フラッシュメモリ書込みモードの設定をモード端子で行います。
表 7.2-1 モード端子の設定
リセットベクタ
アクセス領域
外部データ
バス幅
MD2
MD1
MD0
0
0
0
0
0
1
0
1
0
0
1
1
1
0
0
1
0
0
1
1
0
フラッシュメモリ
シリアル書込み
モード *
−
−
−
1
1
1
フラッシュメモリ
モード
−
−
−
モード名
備考
設定禁止
内部ベクタモード
内部メモリ
モードデータ
レジスタで
設定
リセットシーケンス
以降はモードデータ
で制御
設定禁止
MD2 ∼ MD0: "0"=VSS, "1"=VCC としてください。
*: フラッシュメモリのシリアル書込みは , モード端子の設定を行うだけでは書込みできません。ほか
の箇所も設定する必要があります。詳細は , 「第 26 章 シリアル書込み接続例」を参照してくだ
さい。
<注意事項>
MB90800 シリーズでは , シングルチップモードを設定してください。
シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ
ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。
157
第 7 章 モード設定
7.3
モードデータ
モードデータレジスタは , "FFFFDFH" 番地のメモリ上にあり , リセットシーケンス
後のメモリアクセス動作を設定します。
■ モードデータ
リセットシーケンス実行中に , "FFFFDFH" 番地のモードデータをモードデータレジス
タに取り込みます。モードデータレジスタの内容は , リセットシーケンス実行中に変更
できます。命令では変更できません。モードデータの設定は , リセットシーケンス後に
有効となります。
図 7.3-1 モードデータの構成
bit
モードデータレジスタ
7
M1
5
0
6
M0
4
0
3
0
2
0
1
0
0
0
機能拡張ビット(予約領域)
バスモード設定ビット
■ バスモード設定ビット
リセットシーケンス終了後のバスモードを設定するビットです。
表 7.3-1 バスモード設定ビットとその機能
M1
M0
0
0
0
1
1
0
1
1
機
能
シングルチップモード
( 設定禁止 )
<注意事項>
MB90800 シリーズでは , シングルチップモードを設定してください。
シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ
ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。
158
第 7 章 モード設定
図 7.3-2 シングルチップモードによるアクセス領域と物理アドレスの関係
FFFFFFH
ROM
品種ごと#1
FE0000H
00FFFFH
ROMミラー
← ROMミラー機能を設定した場合
品種ごと#2
品種ごと#3
RAM
:
アクセスなし
I/O
:
内部アクセス
000100H
0000C0H
000000H
注意事項:「品種ごと#x」は各品種に依存して決まるアドレスとなります。
詳細は,「2.3 メモリマップ」を参照してください。
■ モード端子とモードデータの関係
表 7.3-2 モード端子とモードデータの関係
モード
シングルチップモード
MD2
MD1
MD0
M1
M0
0
1
1
0
0
<注意事項>
MB90800 シリーズでは , シングルチップモードを設定してください。
シングルチップモードを設定する場合は , MD2 ∼ MD0 端子を "011B" に , モードデータレ
ジスタのバスモード設定ビット (M1, M0) は "00B" に設定してください。
159
第 7 章 モード設定
160
第8章
入出力ポート
MB90800 シリーズの入出力ポートの機能と動作に
ついて説明します。
8.1 入出力ポートの概要
8.2 入出力ポートのレジスタ説明
8.3 ポート 0
8.4 ポート 1
8.5 ポート 2
8.6 ポート 3
8.7 ポート 4
8.8 ポート 5
8.9 ポート 6
8.10 ポート 7
8.11 ポート 8
8.12 ポート 9
8.13 入出力ポートのプログラム例
161
第 8 章 入出力ポート
8.1
入出力ポートの概要
入出力ポート ( パラレル I/O ポート ) は最大 70 本あり , リソース入出力端子 ( 周辺機
能の入出力端子 ) と兼用しています。
■ 入出力ポート機能
入出力ポートには , ポート方向レジスタ (DDR) とポートデータレジスタ (PDR) があり
ます。ポート方向レジスタ (DDR) では , ポート端子の入出力をビット単位で設定しま
す。ポートデータレジスタ (PDR) では , ポート端子への出力データを設定します。ポー
ト方向レジスタ (DDR) で入出力ポート端子を入力に設定した場合は , ポートデータレ
ジスタ (PDR) をリードすることにより , ポート端子のレベル値を読むことができます。
ポート方向レジスタ (DDR) で入出力ポート端子を出力に設定した場合は , ポートデー
タレジスタ (PDR) の値をポート端子に出力します。以下に各入出力ポートの機能と兼
用するリソースを示します。
表 8.1-1 各ポートの機能一覧
入出力
ポート名
端子名
ポート 0
P00 ∼ P07
ポート 1
ポート 2
入力形式
出力
形式
機能
入出力ポート
P07
P06
P05
P04
P03
P02
P01
P00
リソース
SEG19
SEG18
SEG17
SEG16
SEG15
SEG14
SEG13
SEG12
入出力ポート
P17
P16
P15
P14
P13
P12
P11
P10
リソース
SEG27
SEG26
SEG25
SEG24
SEG23
SEG22
SEG21
SEG20
P10 ∼ P17
入出力ポート
P27
P26
P25
P24
P23
P22
P21
P20
リソース
SEG35
SEG34
SEG33
SEG32
SEG31
SEG30
SEG29
SEG28
P20 ∼ P27
入出力ポート
ポート 3
P30 ∼ P37
リソース
ポート 4
ポート 5
P37
P36
P35
P34
P33
P32
P31
P30
SEG43
SEG42
SEG41
SEG40
SEG39
SEG38
SEG37
SEG36
OCU1
OCU0
IC1
IC0
TMCK
SI3
SC3
SO3
入出力ポート
P47
P46
P45
P44
P43
P42
P41
P40
リソース
TOT2
TOT1
TOT0
−
−
−
−
−
入出力ポート
P57
P56
P55
P54
P40 ∼ P47
P50 ∼ P57
CMOS
( ヒステ
リシス )
CMOS
リソース
SI1
SO0
SC0
P53
P52
P51
P50
SEG47
SEG46
SEG45
SEG44
TIN1
TIN0
SI0
TIN2
PPG1
PPG0
入出力ポート
ポート 6
P60 ∼ P67
リソース
入出力ポート
ポート 7
ポート 8
ポート 9
P66
P65
AN6
AN5
INT2
INT1
INT0
−
P76
P75*
P74*
P73
P72
P71
P70
SCL
SDA
AN11
AN10
AN9
AN8
SO2
SC2
SI2
SO1
SC1
INT3
P70 ∼ P76
P64
P63
P62
P61
P60
AN4
AN3
AN2
AN1
AN0
リソース
−
−
入出力ポート
−
−
−
P84
P83
P82
P81
P80
リソース
−
−
−
COM3
COM2
V2
V1
V0
入出力ポート
−
−
−
−
−
−
P91
P90
リソース
−
−
−
−
−
−
−
−
P80 ∼ P84
P90, P91
*: P75, P74 は N-ch オープンドレイン
162
P67
AN7
第 8 章 入出力ポート
<注意事項>
ポート 6 とポート 7 は , アナログ入力端子と兼用になっており , 入出力ポートとして使用
する場合は , ポート 6, ポート 7 方向レジスタ (DDR6/DDR7) とポート 6, ポート 7 データ
レジスタ (PDR6/PDR7) のほかに , アナログ入力許可レジスタ 0, 1(ADER0/ADER1) にそ
れぞれ "00H" を設定してください。リセットでアナログ入力許可レジスタ 0, 1(ADER0/
ADER1) は "FFH" に初期化されます。
ポート 9 は , 1 系統クロック品のみに存在します。
■ DDR レジスタにてポート出力に設定した場合のリソース兼用ポートの動作に
ついて
図 8.1-1 リソース動作許可 / 禁止時におけるリソース兼用ポートの端子状態
リソース動作
許可/禁止設定
リソース兼用ポート
端子状態
リソース動作許可
リソース動作禁止
リソース動作に依存
PDR レジスタ設定値を出力
163
第 8 章 入出力ポート
8.2
入出力ポートのレジスタ説明
入出力ポートの設定に関連するレジスタの一覧を示します。
■ 入出力ポートのレジスタ一覧
表 8.2-1 各ポートのレジスタ一覧
レジスタ名
リードライト
アドレス
初期値
ポート 0 データレジスタ (PDR0)
R/W
000000H
XXXXXXXXB
ポート 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
ポート 6 データレジスタ (PDR6)
R/W
000006H
XXXXXXXXB
ポート 7 データレジスタ (PDR7)
R/W
000007H
- XXXXXXXB
ポート 8 データレジスタ (PDR8)
R/W
000008H
- - - XXXXXB
ポート 9 データレジスタ (PDR9)
R/W
000009H
- - - - - - XXB
ポート 0 方向レジスタ (DDR0)
R/W
000010H
0 0 0 0 0 0 0 0B
ポート 1 方向レジスタ (DDR1)
R/W
000011H
0 0 0 0 0 0 0 0B
ポート 2 方向レジスタ (DDR2)
R/W
000012H
0 0 0 0 0 0 0 0B
ポート 3 方向レジスタ (DDR3)
R/W
000013H
0 0 0 0 0 0 0 0B
ポート 4 方向レジスタ (DDR4)
R/W
000014H
0 0 0 0 0 0 0 0B
ポート 5 方向レジスタ (DDR5)
R/W
000015H
0 0 0 0 0 0 0 0B
ポート 6 方向レジスタ (DDR6)
R/W
000016H
0 0 0 0 0 0 0 0B
ポート 7 方向レジスタ (DDR7)
R/W
000017H
- 0 0 0 0 0 0 0B
ポート 8 方向レジスタ (DDR8)
R/W
000018H
- - - 0 0 0 0 0B
ポート 9 方向レジスタ (DDR9)
R/W
000019H
- - - - - - 0 0B
アナログ入力許可レジスタ 0(ADER0)
R/W
00001EH
1 1 1 1 1 1 1 1B
アナログ入力許可レジスタ 1(ADER1)
R/W
00001FH
- - - - 1 1 1 1B
R/W: リード / ライト可能
X : 不定
− : 未定義ビット
164
第 8 章 入出力ポート
<注意事項>
・ ポート入力モード時に , ポートデータレジスタ (PDR) へリードモディファイライト
(RMW) 系命令を実行するとリード時に端子レベルが読み出されます。ビット操作した
以外の同系列の入力ポートとして使用しているビット値が変化してしまう場合があり
ますので注意が必要です。
・ リソース動作時に , リソースと兼用しているポートデータレジスタ (PDR) へリードモ
ディファイライト (RMW) 系命令を実行すると , リソースとして動作している端子につ
いては , リード時に端子レベルが読み出されます。ビット操作した以外の同系列の入力
ポートとして使用しているビット値が変化してしまう場合がありますので注意が必要
です。
表 8.2-2 PDR レジスタへリードモディファイライト (RMW) 系命令を実行した場合のリード対象
リソース動作許可時
リソース動作禁止時
ポート入力設定時 DDR=00H
端子レベル
端子レベル
ポート出力設定時 DDR=FFH
端子レベル
PDR レジスタ値
リソース動作
許可/禁止設定
リソース動作許可
リソース兼用ポート
端子状態
リソース動作に依存
リソース動作禁止
入力設定の場合(DDR=00H):Hi-Z
出力設定の場合(DDR=FFH):変化したPDR値を出力
PDRレジスタに対する
リードモディファイライト(RMW)系命令実行
リードモディファイ
ライト(RMW)系命令
実行タイミング
PDRレジスタ値
前データ
リードモディファイライト(RMW)系命令実行時の端子レベルにより変化
165
第 8 章 入出力ポート
8.3
ポート 0
ポート 0 は入出力ポートです。ポート 0 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 0 の構成
ポート 0 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P00/SEG12 ∼ P07/SEG19)
• ポート 0 データレジスタ (PDR0)
• ポート 0 方向レジスタ (DDR0)
■ ポート 0 の端子
表 8.3-1 ポート 0 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
P00/SEG12
P00
SEG12
P01/SEG13
P01
SEG13
P02/SEG14
P02
SEG14
P03/SEG15
P03
P04/SEG16
P04
P05/SEG17
P05
SEG17
P06/SEG18
P06
SEG18
P07/SEG19
P07
SEG19
ポート 0
入出力
ポート
SEG15
SEG16
LCD
セグメント
出力
回路形式
入力
出力
CMOS
( ヒステ
リシス )
CMOS
E
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
■ ポート 0 のレジスタ
ポート 0 のレジスタには , ポート 0 データレジスタ (PDR0) およびポート 0 方向レジス
タ (DDR0) があります。各レジスタを構成するビットは , ポート 0 の端子に 1 対 1 で対
応しています。
表 8.3-2 ポート 0 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR0, DDR0
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P07
P06
P05
P04
P03
P02
P01
P00
ポート 0
166
第 8 章 入出力ポート
8.3.1
ポート 0 のレジスタ (PDR0, DDR0)
ポート 0 のレジスタについて説明します。
■ ポート 0 のレジスタの機能
● ポート 0 データレジスタ (PDR0)
ポート 0 の端子ごとの出力値を設定します。
● ポート 0 方向レジスタ (DDR0)
ポート 0 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.3-3 ポート 0 のレジスタの機能
リードした場合
レジスタ名
ビット値
入力ポート 出力ポート 入力ポート
アドレス
初期値
000000H
XXXXXXXXB
000010H
0 0 0 0 0 0 0 0B
出力ポート
0
PDR0 レジス
PDR0 レジス
端子状態が タのビット
端子より "L"
タのビットに
"L" レベルで に "0"が設定
レベルを出力
"0" を設定し
します。
されていま
す。
ます。
す。
1
PDR0 レジス
端子状態が タのビット
"H"レベルで に "1"が設定
されていま
す。
す。
0
DDR0 レジスタのビットに
入力ポートになります。
"0" が設定されています。
1
DDR0 レジスタのビットに
出力ポートになります。
"1" が設定されています。
ポート 0
データ
レジスタ
(PDR0)
ポート 0 方向
レジスタ
(DDR0)
ライトした場合
PDR0 レジス
端子より "H"
タのビットに
レベルを出力
"1" を設定し
します。
ます。
X: 不定
167
第 8 章 入出力ポート
ポート 0 の動作説明
8.3.2
ポート 0 の動作を説明します。
■ ポート 0 の動作
● ポート 0 方向レジスタ (DDR0) で , 出力ポートに設定した場合
• ポート 0 データレジスタ (PDR0) に設定した値が , ポート 0 端子へ出力されます。
• ポート 0 データレジスタ (PDR0) を読み出した場合は , ポート 0 データレジスタ
(PDR0) に設定されている値が読み出されます。
● ポート 0 方向レジスタ (DDR0) で , 入力ポートに設定した場合
• ポート 0 端子はハイインピーダンスになります。
• ポート 0 データレジスタ (PDR0) に値を設定した場合は , ポート 0 データレジスタ
(PDR0) に設定した値が保持されますが , 端子には出力されません。
• ポート 0 データレジスタ (PDR0) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 0
データレジスタ (PDR0) をアクセスする場合は , ポート 0 方向レジスタ (DDR0) で出力に
設定されているビットは影響を受けませんが , ポート 0 方向レジスタ (DDR0) で入力に設
定されているビットは , 端子の入力レベル値がポート 0 データレジスタ (PDR0) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
0 データレジスタ (PDR0) に出力値を設定した後に , ポート 0 方向レジスタ (DDR0) を出
力に設定してください。
● セグメント出力の動作
セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに
"1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力
端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 0 方向レジスタ (DDR0) の値が "00H" に初期
化され , ポート 0 端子はハイインピーダンスになります。
• ポート 0 データレジスタ (PDR0) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート0データレジスタ(PDR0)に出力値を設定した後に,
ポート 0 方向レジスタ (DDR0) を出力に設定する必要があります。
168
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 0 方向レジスタ (DDR0) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
セグメント出力端子として機能している場合は , セグメント出力状態を保持します。
表 8.3-4 ポート 0 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベースタイマモード,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード,
時計モード
(SPL=1, RDRF=0)
P00 ∼ P07
入出力ポート
入出力ポート
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
SEG12 ∼
SEG19
セグメント出力
セグメント出力
セグメント出力
セグメント出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
169
第 8 章 入出力ポート
8.4
ポート 1
ポート 1 は入出力ポートです。ポート 1 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 1 の構成
ポート 1 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P10/SEG20 ∼ P17/SEG27)
• ポート 1 データレジスタ (PDR1)
• ポート 1 方向レジスタ (DDR1)
■ ポート 1 の端子
表 8.4-1 ポート 1 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
P10/SEG20
P10
SEG20
P11/SEG21
P11
SEG21
P12/SEG22
P12
SEG22
P13/SEG23
P13
P14/SEG24
P14
P15/SEG25
P15
SEG25
P16/SEG26
P16
SEG26
P17/SEG27
P17
SEG27
ポート 1
入出力
ポート
SEG23
SEG24
LCD セグ
メント出力
入力
出力
CMOS
( ヒステ
リシス )
CMOS
回路
形式
E
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
■ ポート 1 のレジスタ
ポート 1 のレジスタには , ポート 1 データレジスタ (PDR1) およびポート 1 方向レジス
タ (DDR1) があります。各レジスタを構成するビットは , ポート 1 の端子に 1 対 1 で対
応しています。
表 8.4-2 ポート 1 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR1, DDR1
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P17
P16
P15
P14
P13
P12
P11
P10
ポート 1
170
第 8 章 入出力ポート
8.4.1
ポート 1 のレジスタ (PDR1, DDR1)
ポート 1 のレジスタについて説明します。
■ ポート 1 のレジスタの機能
● ポート 1 データレジスタ (PDR1)
ポート 1 の端子ごとの出力値を設定します。
● ポート 1 方向レジスタ (DDR1)
ポート 1 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.4-3 ポート 1 のレジスタの機能
リードした場合
ライトした場合
レジスタ名 ビット値
入力ポート
入力ポート
アドレス
初期値
000001H
XXXXXXXXB
000011H
0 0 0 0 0 0 0 0B
出力ポート
0
端 子 状 態 が PDR1 レジス
"L" レベルで タのビットに
す。
"0" が設定さ
れています。
PDR1 レジス 端子より "L"
タのビット レベルを出
に "0" を設定 力します。
します。
1
端 子 状 態 が PDR1 レジス
"H" レベルで タのビットに
"1" が設定さ
す。
れています。
PDR1 レジス 端子より "H"
タのビット レベルを出
に "1" を設定 力します。
します。
0
DDR1レジスタのビットに"0" 入力ポートになります。
が設定されています。
1
DDR1レジスタのビットに"1" 出力ポートになります。
が設定されています。
ポート 1
データ
レジスタ
(PDR1)
ポート 1
方向
レジスタ
(DDR1)
出力ポート
X: 不定
171
第 8 章 入出力ポート
ポート 1 の動作説明
8.4.2
ポート 1 の動作を説明します。
■ ポート 1 の動作
● ポート 1 方向レジスタ (DDR1) で , 出力ポートに設定した場合
• ポート 1 データレジスタ (PDR1) に設定した値が , ポート 1 端子へ出力されます。
• ポート 1 データレジスタ (PDR1) を読み出した場合は , ポート 1 データレジスタ
(PDR1) に設定されている値が読み出されます。
● ポート 1 方向レジスタ (DDR1) で , 入力ポートに設定した場合
• ポート 1 端子はハイインピーダンスになります。
• ポート 1 データレジスタ (PDR1) に値を設定した場合は , ポート 1 データレジスタ
(PDR1) に設定した値が保持されますが , 端子には出力されません。
• ポート 1 データレジスタ (PDR1) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 1
データレジスタ (PDR1) をアクセスする場合は , ポート 1 方向レジスタ (DDR1) で出力に
設定されているビットは影響を受けませんが , ポート 1 方向レジスタ (DDR1) で入力に設
定されているビットは , 端子の入力レベル値がポート 1 データレジスタ (PDR1) に書き込
まれますので , 入力に設定していたビットを出力に設定変更する場合は , ポート 1 データ
レジスタ (PDR1) に出力値を設定した後に , ポート 1 方向レジスタ (DDR1) を出力に設定
してください。
● セグメント出力の動作
セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに
"1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力
端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 1 方向レジスタ (DDR1) の値が "00H" に初期
化され , ポート 1 端子はハイインピーダンスになります。
• ポート 1 データレジスタ (PDR1) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート1データレジスタ(PDR1)に出力値を設定した後に,
ポート 1 方向レジスタ (DDR1) を出力に設定する必要があります。
172
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 1 方向レジスタ (DDR1) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
セグメント出力端子として機能している場合は , セグメント出力状態を保持します。
表 8.4-4 ポート 1 の端子状態
端子名
P10 ∼ P17
通常動作
入出力ポート
ストップモード ,
タイムベースタイマモード,
スリープモード
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード,
時計モード
(SPL=1)
入出力ポート
入力遮断 / 出力 Hi-Z
入力遮断 / レベル保持
SEG20∼SEG27 セグメント出力 セグメント出力 セグメント出力
セグメント出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
173
第 8 章 入出力ポート
8.5
ポート 2
ポート 2 は入出力ポートです。ポート 2 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 2 の構成
ポート 2 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P20/SEG28 ∼ P27/SEG35)
• ポート 2 データレジスタ (PDR2)
• ポート 2 方向レジスタ (DDR2)
■ ポート 2 の端子
表 8.5-1 ポート 2 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P20/SEG28
P20
SEG28
P21/SEG29
P21
SEG29
P22/SEG30
P22
SEG30
P23/SEG31
P23
P24/SEG32
P24
P25/SEG33
P25
SEG33
P26/SEG34
P26
SEG34
P27/SEG35
P27
SEG35
ポート 2
入出力
ポート
出力
LCD
CMOS
セグメント
( ヒステリシス )
SEG32
出力
回路
形式
SEG31
CMOS
E
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
■ ポート 2 のレジスタ
ポート 2 のレジスタには , ポート 2 データレジスタ (PDR2) およびポート 2 方向レジス
タ (DDR2) があります。各レジスタを構成するビットは , ポート 2 の端子に 1 対 1 で対
応しています。
表 8.5-2 ポート 2 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR2, DDR2
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P27
P26
P25
P24
P23
P22
P21
P20
ポート 2
174
第 8 章 入出力ポート
8.5.1
ポート 2 のレジスタ (PDR2, DDR2)
ポート 2 のレジスタについて説明します。
■ ポート 2 のレジスタの機能
● ポート 2 データレジスタ (PDR2)
ポート 2 の端子ごとの出力値を設定します。
● ポート 2 方向レジスタ (DDR2)
ポート 2 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.5-3 ポート 2 のレジスタの機能
リードした場合
ライトした場合
レジスタ名 ビット値
入力ポート
入力ポート
アドレス
初期値
000002H
XXXXXXXXB
000012H
00000000B
出力ポート
0
端 子 状 態 が PDR2 レジス
"L" レ ベ ル で タのビットに
す。
"0"が設定され
ています。
PDR2 レジス 端子より "L"
タのビットに レベルを出力
"0" を設定し します。
ます。
1
端 子 状 態 が PDR2 レジス
"H" レベルで タのビットに
す。
"1"が設定され
ています。
PDR2 レジス 端子より "H"
タのビットに レベルを出力
"1" を設定し します。
ます。
0
DDR2 レジスタのビットに "0"
入力ポートになります。
が設定されています。
1
DDR2 レジスタのビットに "1"
出力ポートになります。
が設定されています。
ポート 2
データ
レジスタ
(PDR2)
ポート 2
方向
レジスタ
(DDR2)
出力ポート
X: 不定
175
第 8 章 入出力ポート
ポート 2 の動作説明
8.5.2
ポート 2 の動作を説明します。
■ ポート 2 の動作
● ポート 2 方向レジスタ (DDR2) で , 出力ポートに設定した場合
• ポート 2 データレジスタ (PDR2) に設定した値が , ポート 2 端子へ出力されます。
• ポート 2 データレジスタ (PDR2) を読み出した場合は , ポート 2 データレジスタ
(PDR2) に設定されている値が読み出されます。
● ポート 2 方向レジスタ (DDR2) で , 入力ポートに設定した場合
• ポート 2 端子はハイインピーダンスになります。
• ポート 2 データレジスタ (PDR2) に値を設定した場合は , ポート 2 データレジスタ
(PDR2) に設定した値が保持されますが , 端子には出力されません。
• ポート 2 データレジスタ (PDR2) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 2
データレジスタ (PDR2) をアクセスする場合は , ポート 2 方向レジスタ (DDR2) で出力に
設定されているビットは影響を受けませんが , ポート 2 方向レジスタ (DDR2) で入力に設
定されているビットは , 端子の入力レベル値がポート 2 データレジスタ (PDR2) に書き込
まれますので , 入力に設定していたビットを出力に設定変更する場合は , ポート 2 データ
レジスタ (PDR2) に出力値を設定した後に , ポート 2 方向レジスタ (DDR2) を出力に設定
してください。
● セグメント出力の動作
セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに
"1" を設定してください。汎用入出力ポートとしての機能が禁止され , セグメント出力
端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 2 方向レジスタ (DDR2) の値が "00H" に初期
化され , ポート 2 端子はハイインピーダンスになります。
• ポート 2 データレジスタ (PDR2) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート2データレジスタ(PDR2)に出力値を設定した後に,
ポート 2 方向レジスタ (DDR2) を出力に設定する必要があります。
176
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 2 方向レジスタ (DDR2) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
セグメント出力端子として機能している場合は , セグメント出力状態を保持します。
表 8.5-4 ポート 2 の端子状態
端子名
P20 ∼ P27
通常動作
入出力ポート
ストップモード ,
タイムベースタイマモード ,
スリープモード
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
入出力ポート
入力遮断 / 出力 Hi-Z
入力遮断 / レベル保持
SEG28 ∼ SEG35 セグメント出力 セグメント出力 セグメント出力
セグメント出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
177
第 8 章 入出力ポート
8.6
ポート 3
ポート 3 は入出力ポートです。ポート 3 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 3 の構成
ポート 3 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P30/SEG36/SO3 ∼ P37/SEG43/OCU1)
• ポート 3 データレジスタ (PDR3)
• ポート 3 方向レジスタ (DDR3)
■ ポート 3 の端子
表 8.6-1 ポート 3 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
SEG36
P30/SEG36/
SO3
P30
SO3
SEG37
P31/SEG37/
SC3
P31
SC3
SEG38
ポート 3
P32/SEG38/
SI3
P32
P33/SEG39/
TMCK
P33
P34/SEG40/
IC0
P34
P35/SEG41/
IC1
P35
P36/SEG42/
OCU0
P36
P37/SEG43/
OCU1
P37
SI3
入出力
ポート
CMOS
LCD セグメント出力
シリアル I/O ch.3
クロック入出力
LCD セグメント出力
シリアル I/O ch.3
データ入力
TMCK
時計クロック出力
SEG40
LCD セグメント出力
IC1
CMOS
( ヒステリ
シス )
シリアル I/O ch.3
データ出力
LCD セグメント出力
SEG41
出力
LCD セグメント出力
SEG39
IC0
入力
インプットキャプチャ0 入力
LCD セグメント出力
インプットキャプチャ1 入力
SEG42
LCD セグメント出力
OCU0
アウトプットコンペア0出力
SEG43
LCD セグメント出力
OCU1
アウトプットコンペア1出力
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
178
回路
形式
E
第 8 章 入出力ポート
■ ポート 3 のレジスタ
ポート 3 のレジスタには , ポート 3 データレジスタ (PDR3) およびポート 3 方向レジス
タ (DDR3) があります。各レジスタを構成するビットは , ポート 3 の端子に 1 対 1 で対
応しています。
表 8.6-2 ポート 3 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR3, DDR3
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P37
P36
P35
P34
P33
P32
P31
P30
ポート 3
179
第 8 章 入出力ポート
8.6.1
ポート 3 のレジスタ (PDR3, DDR3)
ポート 3 のレジスタについて説明します。
■ ポート 3 のレジスタの機能
● ポート 3 データレジスタ (PDR3)
ポート 3 の端子ごとの出力値を設定します。
● ポート 3 方向レジスタ (DDR3)
ポート 3 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.6-3 ポート 3 のレジスタの機能
リードした場合
レジスタ名
入力ポート
X: 不定
180
出力ポート
入力ポート
アドレス
初期値
000003H
XXXXXXXXB
000013H
0 0 0 0 0 0 0 0B
出力ポート
0
端子状態が "L" PDR3 レジスタ
レベルです。
のビットに "0"
が設定されて
います。
PDR3 レジスタ 端子より "L" レ
のビットに "0" ベ ル を 出 力 し
を設定します。 ます。
1
端子状態が "H" PDR3 レジスタ
レベルです。
のビットに "1"
が設定されて
います。
PDR3 レジスタ 端子より "H" レ
のビットに "1" ベ ル を 出 力 し
を設定します。 ます。
0
DDR3 レジスタのビットに "0" が
設定されています。
1
DDR3 レジスタのビットに "1" が
出力ポートになります。
設定されています。
ポート 3
データ
レジスタ
(PDR3)
ポート 3
方向
レジスタ
(DDR3)
ライトした場合
ビット値
入力ポートになります。
第 8 章 入出力ポート
ポート 3 の動作説明
8.6.2
ポート 3 の動作を説明します。
■ ポート 3 の動作
● ポート 3 方向レジスタ (DDR3) で , 出力ポートに設定した場合
• ポート 3 データレジスタ (PDR3) に設定した値が , ポート 3 端子へ出力されます。
• ポート 3 データレジスタ (PDR3) を読み出した場合は , ポート 3 データレジスタ
(PDR3) に設定されている値が読み出されます。
● ポート 3 方向レジスタ (DDR3) で , 入力ポートに設定した場合
• ポート 3 端子はハイインピーダンスになります。
• ポート 3 データレジスタ (PDR3) に値を設定した場合は , ポート 3 データレジスタ
(PDR3) に設定した値が保持されますが , 端子には出力されません。
• ポート 3 データレジスタ (PDR3) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 3
データレジスタ (PDR3) をアクセスする場合は , ポート 3 方向レジスタ (DDR3) で出力に
設定されているビットは影響を受けませんが , ポート 3 方向レジスタ (DDR3) で入力に設
定されているビットは , 端子の入力レベル値がポート 3 データレジスタ (PDR3) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
3 データレジスタ (PDR3) に出力値を設定した後に , ポート 3 方向レジスタ (DDR3) を出
力に設定してください。
● セグメント出力の動作
セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに
"1" を設定してください。汎用入出力ポートおよび周辺入出力端子としての機能が禁止
され , セグメント出力端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 3 方向レジスタ (DDR3) の値が "00H" に初期
化され , ポート 3 端子はハイインピーダンスになります。
• ポート 3 データレジスタ (PDR3) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート3データレジスタ(PDR3)に出力値を設定した後に,
ポート 3 方向レジスタ (DDR3) を出力に設定する必要があります。
181
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 3 方向レジスタ (DDR3) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
セグメント出力端子として機能している場合は , セグメント出力状態を保持します。
表 8.6-4 ポート 3 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
P30 ∼ P37
入出力ポート
入出力ポート
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
SEG36 ∼ SEG43
セグメント出力
セグメント出力
セグメント出力
セグメント出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
182
第 8 章 入出力ポート
8.7
ポート 4
ポート 4 は入出力ポートです。ポート 4 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 4 の構成
ポート 4 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P40/LED0 ∼ P47/LED7/TOT2)
• ポート 4 データレジスタ (PDR4)
• ポート 4 方向レジスタ (DDR4)
■ ポート 4 の端子
表 8.7-1 ポート 4 の端子
入出力形式
ポート名
ポート 4
端子名
ポート機能
P40/LED0
P40
P41/LED1
P41
P42/LED2
P42
P43/LED3
P43
P44/LED4
P44
P45/LED5/ P45
TOT0
周辺機能
-
入出力
ポート
回路形式
入力
出力
CMOS
( ヒステ
リシス )
CMOS
-
TOT0
リロードタイマ 0
イベント出力
P46/LED6/ P46
TOT1
TOT1
リロードタイマ 1
イベント出力
P47/LED7/ P47
TOT2
TOT2
リロードタイマ 2
イベント出力
F
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
■ ポート 4 のレジスタ
ポート 4 のレジスタには , ポート 4 データレジスタ (PDR4) およびポート 4 方向レジス
タ (DDR4) があります。各レジスタを構成するビットは , ポート 4 の端子に 1 対 1 で対
応しています。
表 8.7-2 ポート 4 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR4, DDR4
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P47
P46
P45
P44
P43
P42
P41
P40
ポート 4
183
第 8 章 入出力ポート
8.7.1
ポート 4 のレジスタ (PDR4, DDR4)
ポート 4 のレジスタについて説明します。
■ ポート 4 のレジスタの機能
● ポート 4 データレジスタ (PDR4)
ポート 4 の端子ごとの出力値を設定します。
● ポート 4 方向レジスタ (DDR4)
ポート 4 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.7-3 ポート 4 のレジスタの機能
リードした場合
レジスタ名
ポート4データ
レジスタ
(PDR4)
ポート 4 方向
レジスタ
(DDR4)
X: 不定
184
ライトした場合
ビット値
入力ポート
出力ポート
端子状態が "L"
レベルです。
PDR4 レジスタ
のビットに "0"
が設定されて
います。
PDR4 レジスタ 端子より "L" レ
のビットに "0" ベ ル を 出 力 し
を設定します。 ます。
1
端子状態が "H" PDR4 レジスタ
レベルです。
のビットに "1"
が設定されて
います。
PDR4 レジスタ 端子より "H" レ
のビットに "1" ベ ル を 出 力 し
を設定します。 ます。
0
DDR4 レジスタのビットに "0" が
設定されています。
入力ポートになります。
1
DDR4 レジスタのビットに "1" が
設定されています。
出力ポートになります。
0
入力ポート
アドレス
初期値
000004H
XXXXXXXXB
000014H
0 0 0 0 0 0 0 0B
出力ポート
第 8 章 入出力ポート
ポート 4 の動作説明
8.7.2
ポート 4 の動作を説明します。
■ ポート 4 の動作
● ポート 4 方向レジスタ (DDR4) で , 出力ポートに設定した場合
• ポート 4 データレジスタ (PDR4) に設定した値が , ポート 4 端子へ出力されます。
• ポート 4 データレジスタ (PDR4) を読み出した場合は , ポート 4 データレジスタ
(PDR4) に設定されている値が読み出されます。
● ポート 4 方向レジスタ (DDR4) で , 入力ポートに設定した場合
• ポート 4 端子はハイインピーダンスになります。
• ポート 4 データレジスタ (PDR4) に値を設定した場合は , ポート 4 データレジスタ
(PDR4) に設定した値が保持されますが , 端子には出力されません。
• ポート 4 データレジスタ (PDR4) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 4
データレジスタ (PDR4) をアクセスする場合は , ポート 4 方向レジスタ (DDR4) で出力に
設定されているビットは影響を受けませんが , ポート 4 方向レジスタ (DDR4) で入力に設
定されているビットは , 端子の入力レベル値がポート 4 データレジスタ (PDR4) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
4 データレジスタ (PDR4) に出力値を設定した後に , ポート 4 方向レジスタ (DDR4) を出
力に設定してください。
● LED 出力の動作
• LED 出力端子として使用する場合は , ポート 4 方向レジスタ (DDR4) で , 出力ポート
に設定してください。
• ポート 4 データレジスタ (PDR4) に設定した値が , ポート 4 端子へ出力され , LED の
ON/OFF を制御できます。
● リセット時の動作
• CPU がリセットされた場合は , ポート 4 方向レジスタ (DDR4) の値が "00H" に初期
化され , ポート 4 端子はハイインピーダンスになります。
• ポート 4 データレジスタ (PDR4) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート4データレジスタ(PDR4)に出力値を設定した後に,
ポート 4 方向レジスタ (DDR4) を出力に設定する必要があります。
185
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 4 方向レジスタ (DDR4) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
表 8.7-4 ポート 4 の端子状態
端子名
P40 ∼ P47
通常動作
入出力ポート
スリープモード
入出力ポート
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
入力遮断 / レベル保持
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
186
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
入力遮断 / 出力 Hi-Z
第 8 章 入出力ポート
8.8
ポート 5
ポート 5 は入出力ポートです。ポート 5 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 5 の構成
ポート 5 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P50/SEG44/TIN0 ∼ P57/SI1)
• ポート 5 データレジスタ (PDR5)
• ポート 5 方向レジスタ (DDR5)
■ ポート 5 の端子
表 8.8-1 ポート 5 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P50/SEG44/
TIN0
P50
P51/SEG45/
TIN1
P51
P52/SEG46/
TIN2/PPG0
P52
入出力
ポート
ポート 5
SEG44
LCDセグメント出力
TIN0
リロードタイマ 0
イベント入力
SEG45
LCDセグメント出力
TIN1
リロードタイマ 1
イベント入力
SEG46
LCDセグメント出力
TIN2
リロードタイマ 2
イベント入力
PPG0
PPG タイマ 0 出力
SEG47
LCDセグメント出力
PPG1
PPG タイマ 1 出力
P53/SEG47/
PPG1
P53
P54/SI0
P54
SI0
UART ch.0
データ入力
P55/SC0
P55
SC0
UART ch.0
クロック入出力
P56/SO0
P56
SO0
UART ch.0
データ出力
P57/SI1
P57
SI1
UART ch.1
データ入力
出力
回路
形式
E
CMOS
( ヒステリシ
ス)
CMOS
G
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
187
第 8 章 入出力ポート
■ ポート 5 のレジスタ
ポート 5 のレジスタには , ポート 5 データレジスタ (PDR5) およびポート 5 方向レジス
タ (DDR5) があります。各レジスタを構成するビットは , ポート 5 の端子に 1 対 1 で対
応しています。
表 8.8-2 ポート 5 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR5, DDR5
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P57
P56
P55
P54
P53
P52
P51
P50
ポート 5
188
第 8 章 入出力ポート
8.8.1
ポート 5 のレジスタ (PDR5, DDR5)
ポート 5 のレジスタについて説明します。
■ ポート 5 のレジスタの機能
● ポート 5 データレジスタ (PDR5)
ポート 5 の端子ごとの出力値を設定します。
● ポート 5 方向レジスタ (DDR5)
ポート 5 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.8-3 ポート 5 のレジスタの機能
リードした場合
レジスタ名
入力ポート
出力ポート
入力ポート
アドレス
初期値
000005H
XXXXXXXXB
000015H
0 0 0 0 0 0 0 0B
出力ポート
PDR5 レジスタ
PDR5 レジスタ 端 子よ り "L"
のビットに "0"
のビットに "0" レ ベ ル を 出 力
が設定されて
を設定します。 します。
います。
0
端子状態が "L"
レベルです。
1
PDR5 レジスタ
PDR5 レジスタ 端 子よ り "H"
端子状態が"H" のビットに "1"
のビットに "1" レ ベ ル を 出 力
レベルです。
が設定されて
を設定します。 します。
います。
0
DDR5 レジスタのビットに "0"
入力ポートになります。
が設定されています。
1
DDR5 レジスタのビットに "1"
出力ポートになります。
が設定されています。
ポート5データ
レジスタ
(PDR5)
ポート 5 方向
レジスタ
(DDR5)
ライトした場合
ビット値
X: 不定
189
第 8 章 入出力ポート
ポート 5 の動作説明
8.8.2
ポート 5 の動作を説明します。
■ ポート 5 の動作
● ポート 5 方向レジスタ (DDR5) で , 出力ポートに設定した場合
• ポート 5 データレジスタ (PDR5) に設定した値が , ポート 5 端子へ出力されます。
• ポート 5 データレジスタ (PDR5) を読み出した場合は , ポート 5 データレジスタ
(PDR5) に設定されている値が読み出されます。
● ポート 5 方向レジスタ (DDR5) で , 入力ポートに設定した場合
• ポート 5 端子はハイインピーダンスになります。
• ポート 5 データレジスタ (PDR5) に値を設定した場合は , ポート 5 データレジスタ
(PDR5) に設定した値が保持されますが , 端子には出力されません。
• ポート 5 データレジスタ (PDR5) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 5
データレジスタ (PDR5) をアクセスする場合は , ポート 5 方向レジスタ (DDR5) で出力に
設定されているビットは影響を受けませんが , ポート 5 方向レジスタ (DDR5) で入力に設
定されているビットは , 端子の入力レベル値がポート 5 データレジスタ (PDR5) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
5 データレジスタ (PDR5) に出力値を設定した後に , ポート 5 方向レジスタ (DDR5) を出
力に設定してください。
● セグメント出力の動作
セグメント出力端子として使用する場合は , LCDC 制御レジスタの対応するビットに
"1" を設定してください。汎用入出力ポートおよび周辺入出力端子としての機能が禁止
され , セグメント出力端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 5 方向レジスタ (DDR5) の値が "00H" に初期
化され , ポート 5 端子はハイインピーダンスになります。
• ポート 5 データレジスタ (PDR5) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート5データレジスタ(PDR5)に出力値を設定した後に,
ポート 5 方向レジスタ (DDR5) を出力に設定する必要があります。
190
第 8 章 入出力ポート
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 5 方向レジスタ (DDR5) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
セグメント出力端子として機能している場合は , セグメント出力状態を保持します。
表 8.8-4 ポート 5 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
P50 ∼ P57
入出力ポート
入出力ポート
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
SEG44 ∼ SEG47
セグメント出力
セグメント出力
セグメント出力
セグメント出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
191
第 8 章 入出力ポート
8.9
ポート 6
ポート 6 は入出力ポートです。ポート 6 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 6 の構成
ポート 6 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P60/AN0 ∼ P67/AN7/INT2)
• ポート 6 データレジスタ (PDR6)
• ポート 6 方向レジスタ (DDR6)
• アナログ入力許可レジスタ 0(ADER0)
■ ポート 6 の端子
表 8.9-1 ポート 6 の端子
入出力形式
ポート名
ポート 6
端子名
ポート機能
周辺機能
P60/AN0
P60
AN0
アナログ入力
P61/AN1
P61
AN1
アナログ入力
P62/AN2
P62
AN2
アナログ入力
P63/AN3
P63
AN3
アナログ入力
P64/AN4
P64
AN4
アナログ入力
AN5
アナログ入力
INT0
DTP/ 外部割込み
入力
AN6
アナログ入力
INT1
DTP/ 外部割込み
入力
AN7
アナログ入力
INT2
DTP/ 外部割込み
入力
P65/AN5/
INT0
P66/AN6/
INT1
P67/AN7/
INT2
P65
入出力
ポート
P66
P67
回路形式
入力
出力
CMOS
( ヒステリ
シス )
CMOS
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
192
I
第 8 章 入出力ポート
<注意事項>
入力ポートとして使用する場合は , 対応するポート 6 方向レジスタ (DDR6) のビットに "0"
を設定し , さらにアナログ入力許可レジスタ 0(ADER0) の対応するビットに "0" を設定し
てください。
アナログ入力端子として使用する場合は , 対応するポート 6 方向レジスタ (DDR6) のビッ
トに "0" を設定し , さらに , アナログ入力許可レジスタ 0(ADER0) の対応するビットに "1"
を設定してください。
■ ポート 6 のレジスタ
ポート 6 のレジスタには , ポート 6 データレジスタ (PDR6) およびポート 6 方向レジス
タ (DDR6) があります。各レジスタを構成するビットは , ポート 6 の端子に 1 対 1 で対
応しています。
表 8.9-2 ポート 6 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR6, DDR6
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
P67
P66
P65
P64
P63
P62
P61
P60
ポート 6
193
第 8 章 入出力ポート
ポート 6 のレジスタ (PDR6, DDR6)
8.9.1
ポート 6 のレジスタについて説明します。
■ ポート 6 のレジスタの機能
● ポート 6 データレジスタ (PDR6)
ポート 6 の端子ごとの出力値を設定します。
● ポート 6 方向レジスタ (DDR6)
ポート 6 の端子ごとの入出力方向を設定します。
● 端子に対応するビットに"1"を設定した場合は端子は出力ポートになり, "0"を設定した場合
は端子は入力ポートになります。
● アナログ入力許可レジスタ 0(ADER0)
端子ごとに入出力ポートと , A/D コンバータのアナログ入力を設定できます。ポート
( 端子 ) に対応するビットに "1" を設定した場合は A/D コンバータのアナログ入力にな
り , "0" を設定した場合は入出力ポートになります。
<注意事項>
入出力ポートに設定されている場合は , 中間レベルの信号が入力されると , 入力リーク電
流が流れますので , A/D コンバータのアナログ入力を行う場合は , 必ずアナログ入力許可
レジスタ 0(ADER0) の対応するビットを A/D コンバータのアナログ入力に設定してくだ
さい。
<参考>
リセットによりポート 6 方向レジスタ (DDR6) は "00H", アナログ入力許可レジスタ
0(ADER0) は "FFH" に初期化され , A/D コンバータのアナログ入力設定になります。
194
第 8 章 入出力ポート
表 8.9-3 ポート 6 のレジスタの機能
リードした場合
レジスタ名
入力ポート
出力ポート
入力ポート
0
1
端子状態が "H" PDR6 レジスタ PDR6 レジスタ 端子より"H"レ
レベルです。 のビットに "1" のビットに "1" ベ ル を 出 力 し
が 設 定 さ れ て を設定します。 ます。
います。
0
DDR6レジスタのビットに"0"が 入力ポートになります。
設定されています。
1
DDR6レジスタのビットに"1"が 出力ポートになります。
設定されています。
0
ADER0 レジスタのビットに "0" 入出力ポート
が設定されています。
1
ADER0 レジスタのビットに "1" A/D コンバータのアナログ
が設定されています。
入力 0 ∼ 7
ポート 6 方向
レジスタ (DDR6)
アドレス
初期値
000006H
XXXXXXXXB
000016H
0 0 0 0 0 0 0 0B
00001EH
1 1 1 1 1 1 1 1B
出力ポート
端子状態が "L" PDR6 レジスタ PDR6 レジスタ 端子より "L" レ
レベルです。 のビットに "0" のビットに "0" ベ ル を 出 力 し
が 設 定 さ れ て を設定します。 ます。
います。
ポート 6 データ
レジスタ (PDR6)
アナログ入力許可
レジスタ 0
(ADER0)
ライトした場合
ビット値
X: 不定
195
第 8 章 入出力ポート
ポート 6 の動作説明
8.9.2
ポート 6 の動作を説明します。
■ ポート 6 の動作
● ポート6方向レジスタ(DDR6) とアナログ入力許可レジスタ0(ADER0)で, 出力ポートに設定
した場合
• ポート 6 データレジスタ (PDR6) に設定した値が , ポート 6 端子へ出力されます。
• ポート 6 データレジスタ (PDR6) を読み出した場合は , ポート 6 データレジスタ
(PDR6) に設定されている値が読み出されます。
● ポート6方向レジスタ(DDR6) とアナログ入力許可レジスタ0(ADER0)で, 入力ポートに設定
した場合
• ポート 6 端子はハイインピーダンスになります。
• ポート 6 データレジスタ (PDR6) に値を設定した場合は , ポート 6 データレジスタ
(PDR6) に設定した値が保持されますが , 端子には出力されません。
• ポート 6 データレジスタ (PDR6) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 6
データレジスタ (PDR6) をアクセスする場合は , ポート 6 方向レジスタ (DDR6) で出力に
設定されているビットは影響を受けませんが , ポート 6 方向レジスタ (DDR6) で入力に設
定されているビットは , 端子の入力レベル値がポート 6 データレジスタ (PDR6) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
6 データレジスタ (PDR6) に出力値を設定した後に , ポート 6 方向レジスタ (DDR6) を出
力に設定してください。
● A/D コンバータのアナログ入力に設定する場合
A/D コンバータのアナログ入力として使用する場合は , A/D コンバータのアナログ入力
端子に対応するアナログ入力許可レジスタ 0(ADER0) のビットに "1" を設定してくださ
い。A/D コンバータのアナログ入力に設定されている場合は , PDR の対応するビット
をリードすると , 読出し値は "0" になります。
● リセット時の動作
• CPU がリセットされた場合は , ポート 6 方向レジスタ (DDR6) の値が "00H" に , アナ
ログ入力許可レジスタ 0(ADER0) の値が "FFH" に初期化され , A/D コンバータのア
ナログ入力に設定されます。入出力ポートとして使用する場合は , アナログ入力許
可レジスタ 0(ADER0) に "00H" を設定し , ポート入出力モードに設定してください。
196
第 8 章 入出力ポート
• ポート 6 データレジスタ (PDR6) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート6データレジスタ(PDR6)に出力値を設定した後に,
ポート 6 方向レジスタ (DDR6) を出力に設定する必要があります。
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 6 方向レジスタ (DDR6) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
表 8.9-4 ポート 6 の端子状態
端子名
通常動作
スリープモード
P60 ∼ P67
入出力ポート
入出力ポート
AN0 ∼ AN7
A/D コンバータ
アナログ入力
A/D コンバータ
アナログ入力
INT0 ∼ INT2 外部割込み要求
外部割込み要求
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
入力遮断 / 出力保持
[ 外部割込み許可の場合は入力可能 ]
入力遮断 / 出力 Hi-Z
[ 外部割込み許可の場合は入力可能 ]
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
197
第 8 章 入出力ポート
8.10
ポート 7
ポート 7 は入出力ポートです。ポート 7 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 7 の構成
ポート 7 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P70/AN8/INT3 ∼ P76)
• ポート 7 データレジスタ (PDR7)
• ポート 7 方向レジスタ (DDR7)
• アナログ入力許可レジスタ 1 (ADER1)
■ ポート 7 の端子
表 8.10-1 ポート 7 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P70/AN8/
INT3
P70
P71/AN9/
SC1
P71
P72/AN10/
SO1
ポート 7
P73/AN11/
SI2
P74/SDA/
SC2
AN8
アナログ入力
INT3
DTP/ 外部割込み入力
AN9
アナログ入力
SC1
UART ch.1
クロック入出力
AN10
アナログ入力
SO1
UART ch.1
データ出力
AN11
アナログ入力
SI2
シリアル I/O ch.2
データ入力
SDA
I2 C
SC2
シリアル I/O ch.2
クロック入出力
SCL
I2C
SO2
シリアル I/O ch.2
データ出力
P72
P73
入出力
ポート
P74
P75/SCL/
SO2
P75
P76
P76
-
CMOS
I
N-ch
オープン
ドレイン
H
CMOS
G
CMOS
( ヒステリ
シス )
-
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
198
出力
回路
形式
第 8 章 入出力ポート
<注意事項>
入力ポートとして使用する場合は , 対応するポート 7 方向レジスタ (DDR7) のビットに "0"
を設定し , さらにアナログ入力許可レジスタ 1(ADER1) の対応するビットに "0" を設定し
てください。
アナログ入力端子として使用する場合は , 対応するポート 7 方向レジスタ (DDR7) のビッ
トに "0" を設定し , さらに , アナログ入力許可レジスタ 1(ADER1) の対応するビットに "1"
を設定してください。
■ ポート 7 のレジスタ
ポート 7 のレジスタには , ポート 7 データレジスタ (PDR7) およびポート 7 方向レジス
タ (DDR7) があります。各レジスタを構成するビットは , ポート 7 の端子に 1 対 1 で対
応しています。
表 8.10-2 ポート 7 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR7, DDR7
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
対応する端子
−
P76
P75
P74
P73
P72
P71
P70
ポート 7
199
第 8 章 入出力ポート
ポート 7 のレジスタ (PDR7, DDR7)
8.10.1
ポート 7 のレジスタについて説明します。
■ ポート 7 のレジスタの機能
● ポート 7 データレジスタ (PDR7)
ポート 7 の端子ごとの出力値を設定します。
● ポート 7 方向レジスタ (DDR7)
ポート 7 の端子ごとの入出力方向を設定します。
● 端子に対応するビットに"1"を設定した場合は端子は出力ポートになり, "0"を設定した場合
は端子は入力ポートになります。
● アナログ入力許可レジスタ 1(ADER1)
端子ごとに入出力ポートと , A/D コンバータのアナログ入力を設定できます。ポート ( 端
子 ) に対応するビットに "1" を設定した場合は A/D コンバータのアナログ入力になり , "0"
を設定した場合は入出力ポートになります。
<注意事項>
入出力ポートに設定されている場合は , 中間レベルの信号が入力されると入力リーク電流
が流れますので , A/D コンバータのアナログ入力を行う場合は , 必ずアナログ入力許可レ
ジスタ 1(ADER1) の対応するビットを A/D コンバータのアナログ入力に設定してくださ
い。
<参考>
リセットによりポート 7 方向レジスタ (DDR7) は "00H", アナログ入力許可レジスタ
1(ADER1) は "FFH" に初期化され , A/D コンバータのアナログ入力設定になります。
200
第 8 章 入出力ポート
表 8.10-3 ポート 7 のレジスタの機能
リードした場合
レジスタ名
入力ポート
ポート 7 データ
レジスタ (PDR7)
ポート 7 方向
レジスタ (DDR7)
アナログ入力許可
レジスタ 1
(ADER1)
ライトした場合
ビット値
出力ポート
入力ポート
アドレス
初期値
000007H
-XXXXXXXB
000017H
- 0 0 0 0 0 0 0B
00001FH
- - - - 1 1 1 1B
出力ポート
0
端子状態が "L" PDR7 レジスタ PDR7 レジスタ 端子より "L" レ
レベルです。
のビットに "0" のビットに "0" ベ ル を 出 力 し
が 設 定 さ れ て を設定します。 ます。
います。
1
端子状態が "H" PDR7 レジスタ PDR7 レジスタ 端子より "H" レ
レベルです。
のビットに "1" のビットに "1" ベ ル を 出 力 し
が 設 定 さ れ て を設定します。 ます。
います。
0
DDR7 レジスタのビットに "0" が 入力ポートになります。
設定されています。
1
DDR7 レジスタのビットに "1" が 出力ポートになります。
設定されています。
0
ADER1 レジスタのビットに "0" 入出力ポート
が設定されています。
1
ADER1 レジスタのビットに "1"
が設定されています。
A/D コンバータ
のアナログ
入力 8 ∼ 11
X: 不定
201
第 8 章 入出力ポート
ポート 7 の動作説明
8.10.2
ポート 7 の動作を説明します。
■ ポート 7 の動作
● ポート7方向レジスタ(DDR7) とアナログ入力許可レジスタ1(ADER1)で, 出力ポートに設定
した場合
• ポート 7 データレジスタ (PDR7) に設定した値が , ポート 7 端子へ出力されます。
• ポート 7 データレジスタ (PDR7) を読み出した場合は , ポート 7 データレジスタ
(PDR7) に設定されている値が読み出されます。
● ポート7方向レジスタ(DDR7) とアナログ入力許可レジスタ1(ADER1)で, 入力ポートに設定
した場合
• ポート 7 端子はハイインピーダンスになります。
• ポート 7 データレジスタ (PDR7) に値を設定した場合は , ポート 7 データレジスタ
(PDR7) に設定した値が保持されますが , 端子には出力されません。
• ポート 7 データレジスタ (PDR7) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 7
データレジスタ (PDR7) をアクセスする場合は , ポート 7 方向レジスタ (DDR7) で出力に
設定されているビットは影響を受けませんが , ポート 7 方向レジスタ (DDR7) で入力に設
定されているビットは , 端子の入力レベル値がポート 7 データレジスタ (PDR7) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
7 データレジスタ (PDR7) に出力値を設定した後に , ポート 7 方向レジスタ (DDR7) を出
力に設定してください。
● A/D コンバータのアナログ入力に設定する場合
A/D コンバータのアナログ入力として使用する場合は , A/D コンバータのアナログ入力
端子に対応するアナログ入力許可レジスタ 1(ADER1) のビットに "1" を設定してくださ
い。A/D コンバータのアナログ入力に設定されている場合は , DDR の対応するビット
をリードすると , 読出し値は "0" になります。
● リセット時の動作
• CPU がリセットされた場合は , ポート 7 方向レジスタ (DDR7) の値が "00H" に , アナ
ログ入力許可レジスタ 1(ADER1) の値が "FFH" に初期化され , A/D コンバータのア
ナログ入力に設定されます。P70 ∼ P73 を入出力ポートとして使用する場合は , ア
ナログ入力許可レジスタ 1(ADER1) に "00H" を設定し , ポート入出力モードに設定
してください。
202
第 8 章 入出力ポート
• ポート 7 データレジスタ (PDR7) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート7データレジスタ(PDR7)に出力値を設定した後に,
ポート 7 方向レジスタ (DDR7) を出力に設定する必要があります。
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 7 方向レジスタ (DDR7) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
表 8.10-4 ポート 7 の端子状態
端子名
通常動作
スリープモード
P70 ∼ P76
入出力ポート
入出力ポート
AN8 ∼ AN11
A/D コンバータ
アナログ入力
A/D コンバータ
アナログ入力
INT3
外部割込み要求
外部割込み要求
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
入力遮断 / 出力保持
[外部割込み許可の場合は入力可能]
入力遮断 / 出力 Hi-Z
[外部割込み許可の場合は入力可能]
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
203
第 8 章 入出力ポート
8.11
ポート 8
ポート 8 は入出力ポートです。ポート 8 の構成 , 端子のブロックダイヤグラム , レジ
スタを示します。
■ ポート 8 の構成
ポート 8 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P80/V0 ∼ P84/COM3)
• ポート 8 データレジスタ (PDR8)
• ポート 8 方向レジスタ (DDR8)
■ ポート 8 の端子
表 8.11-1 ポート 8 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
回路形式
入力
ポート 8
P80/V0
P80
P81/V1
P81
出力
V0
V1
入出力
ポート
P82/V2
P82
P83/COM2
P83
COM2
P84/COM3
P84
COM3
J
LCD 電圧入力
CMOS
(ヒステリシス)
V2
LCDコモン出力
CMOS
E
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
<注意事項>
P80 ∼ P82 を入出力ポートとして使用する場合は , LCDC 制御レジスタ (LCRH) の VS0
ビットに "1" を設定してください。
P83, P84 を入出力ポートとして使用する場合は , LCDC 制御レジスタ (LCRH) の CS1:CS0
ビットに "00B" を設定してください。
CPU がリセットされた場合は , ポート 8 方向レジスタ (DDR8) の値が "00H" に初期化され ,
P80 ∼ P82 端子は LCD 電源入力になります。
204
第 8 章 入出力ポート
■ ポート 8 のレジスタ
ポート 8 のレジスタには , ポート 8 データレジスタ (PDR8) およびポート 8 方向レジス
タ (DDR8) があります。各レジスタを構成するビットは , ポート 8 の端子に 1 対 1 で対
応しています。
表 8.11-2 ポート 8 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR8, DDR8
-
-
-
bit4
bit3
bit2
bit1
bit0
対応する端子
-
-
-
P84
P83
P82
P81
P80
ポート 8
205
第 8 章 入出力ポート
8.11.1
ポート 8 のレジスタ (PDR8, DDR8)
ポート 8 のレジスタについて説明します。
■ ポート 8 のレジスタの機能
● ポート 8 データレジスタ (PDR8)
ポート 8 の端子ごとの出力値を設定します。
● ポート 8 方向レジスタ (DDR8)
ポート 8 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.11-3 ポート 8 のレジスタの機能
リードした場合
レジスタ名
入力ポート
X: 不定
206
出力ポート
入力ポート
アドレス
初期値
000008H
---XXXXXB
000018H
---0 0 0 0 0B
出力ポート
PDR8 レジスタ
PDR8 レジスタ 端子より "L" レ
の ビ ット に "0"
のビ ッ トに "0" ベルを出力しま
が設定されてい
を設定します。 す。
ます。
0
端 子状 態 が "L"
レベルです。
1
PDR8 レジスタ
PDR8 レジスタ 端子より "H" レ
端子状態が "H" の ビ ット に "1"
のビ ッ トに "1" ベルを出力しま
レベルです。
が設定されてい
を設定します。 す。
ます。
0
DDR8レジスタのビットに "0"が設
定されています。
入力ポートになります。
1
DDR8レジスタのビットに "1"が設
定されています。
出力ポートになります。
ポート8データ
レジスタ
(PDR8)
ポート 8 方向
レジスタ
(DDR8)
ライトした場合
ビット値
第 8 章 入出力ポート
ポート 8 の動作説明
8.11.2
ポート 8 の動作を説明します。
■ ポート 8 の動作
● ポート 8 方向レジスタ (DDR8) で , 出力ポートに設定した場合
• ポート 8 データレジスタ (PDR8) に設定した値が , ポート 8 端子へ出力されます。
• ポート 8 データレジスタ (PDR8) を読み出した場合は , ポート 8 データレジスタ
(PDR8) に設定されている値が読み出されます。
● ポート 8 方向レジスタ (DDR8) で , 入力ポートに設定した場合
• ポート 8 端子はハイインピーダンスになります。
• ポート 8 データレジスタ (PDR8) に値を設定した場合は , ポート 8 データレジスタ
(PDR8) に設定した値が保持されますが , 端子には出力されません。
• ポート 8 データレジスタ (PDR8) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 8
データレジスタ (PDR8) をアクセスする場合は , ポート 8 方向レジスタ (DDR8) で出力に
設定されているビットは影響を受けませんが , ポート 8 方向レジスタ (DDR8) で入力に設
定されているビットは , 端子の入力レベル値がポート 8 データレジスタ (PDR8) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
8 データレジスタ (PDR8) に出力値を設定した後に , ポート 8 方向レジスタ (DDR8) を出
力に設定してください。
● LCD 電源入力の動作
P80 ∼ P82 を LCD 電源入力端子として使用する場合は , LCDC 制御レジスタ (LCRH) の
VS0 ビットに "0" を設定してください。汎用入出力ポートおよび周辺入出力端子とし
ての機能が禁止され , コモン出力端子として機能します。
● コモン出力の動作
P83, P84 をコモン出力として使用する場合は , LCDC 制御レジスタ (LCRH) の CS1 およ
び CS0 ビットに "00B" 以外の値を設定してください。汎用入出力ポートおよび周辺入
出力端子としての機能が禁止され , コモン出力端子として機能します。
● リセット時の動作
• CPU がリセットされた場合は , ポート 8 方向レジスタ (DDR8) の値が "00H" に初期
化され , P80 ∼ P82 端子は LCD 電源入力になります。
• P83, P84 端子はハイインピーダンスになります。
207
第 8 章 入出力ポート
• ポート 8 データレジスタ (PDR8) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート8データレジスタ(PDR8)に出力値を設定した後に,
ポート 8 方向レジスタ (DDR8) を出力に設定する必要があります。
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 8 方向レジスタ (DDR8) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
LCD 電源入力端子として機能している場合は , LCD 電源入力状態を保持します。
コモン出力端子として機能している場合は , コモン出力状態を保持します。
表 8.11-4 ポート 8 の端子状態
端子名
通常動作
スリープモード
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
P80 ∼ P84
入出力ポート
入出力ポート
入力遮断 / レベル保持
入力遮断 / 出力 Hi-Z
V0 ∼ V2
LCDC 電圧入力
LCDC 電圧入力
LCDC 電圧入力
LCDC 電圧入力
COM2, COM3
コモン出力
コモン出力
コモン出力
コモン出力
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
208
第 8 章 入出力ポート
8.12
ポート 9
ポート 9 は入出力ポートで , 1 系統クロック品のみに存在します。ポート 9 の構成 ,
端子のブロックダイヤグラム , レジスタを示します。
■ ポート 9 の構成
ポート 9 は , 以下のように構成されています。
• 入出力ポート端子 / リソース入出力端子 (P90, P91)
• ポート 9 データレジスタ (PDR9)
• ポート 9 方向レジスタ (DDR9)
■ ポート 9 の端子
表 8.12-1 ポート 9 の端子
入出力形式
ポート名
端子名
ポート機能
周辺機能
入力
P90
P90
P91
P91
ポート 9
入出力
ポート
-
出力
CMOS
( ヒステリ
シス )
-
CMOS
回路
形式
G
<参考>
回路形式については , 「1.7 入出力回路形式」を参照してください。
■ ポート 9 のレジスタ
ポート 9 のレジスタには , ポート 9 データレジスタ (PDR9) およびポート 9 方向レジス
タ (DDR9) があります。各レジスタを構成するビットは , ポート 9 の端子に 1 対 1 で対
応しています。
表 8.12-2 ポート 9 のレジスタと端子の対応
ポート名
関連するレジスタのビットと対応する端子
PDR9, DDR9
-
-
-
-
-
-
bit1
bit0
対応する端子
-
-
-
-
-
-
P91
P90
ポート 9
209
第 8 章 入出力ポート
8.12.1
ポート 9 のレジスタ (PDR9, DDR9)
ポート 9 のレジスタについて説明します。
■ ポート 9 のレジスタの機能
● ポート 9 データレジスタ (PDR9)
ポート 9 の端子ごとの出力値を設定します。
● ポート 9 方向レジスタ (DDR9)
ポート 9 の端子ごとの入出力方向を設定します。
端子に対応するビットに "1" を設定した場合は端子は出力ポートになり , "0" を設定し
た場合は端子は入力ポートになります。
表 8.12-3 ポート 9 のレジスタの機能
リードした場合
レジスタ名
入力ポート
210
入力ポート
アドレス
初期値
000009H
------XXB
000019H
------0 0B
出力ポート
PDR9 レジスタの PDR9 レジスタ 端子より "L" レ
ビットに "0" が設 のビットに "0" ベ ル を 出 力 し
定されています。 を設定します。 ます。
1
端子状態が "H" レ
ベルです。
PDR9 レジスタの PDR9 レジスタ 端子より "H"レ
ビットに "1" が設 のビットに "1" ベ ル を 出 力 し
定されています。 を設定します。 ます。
0
DDR9 レジスタのビットに "0" が設定
されています。
入力ポートになります。
1
DDR9 レジスタのビットに "1" が設定
されています。
出力ポートになります。
ポート 9 データ
レジスタ
(PDR9)
X: 不定
出力ポート
端子状態が "L" レ
ベルです。
0
ポート 9 方向
レジスタ
(DDR9)
ライトした場合
ビット値
第 8 章 入出力ポート
ポート 9 の動作説明
8.12.2
ポート 9 の動作を説明します。
■ ポート 9 の動作
● ポート 9 方向レジスタ (DDR9) で , 出力ポートに設定した場合
• ポート 9 データレジスタ (PDR9) に設定した値が , ポート 9 端子へ出力されます。
• ポート 9 データレジスタ (PDR9) を読み出した場合は , ポート 9 データレジスタ
(PDR9) に設定されている値が読み出されます。
● ポート 9 方向レジスタ (DDR9) で , 入力ポートに設定した場合
• ポート 9 端子はハイインピーダンスになります。
• ポート 9 データレジスタ (PDR9) に値を設定した場合は , ポート 9 データレジスタ
(PDR9) に設定した値が保持されますが , 端子には出力されません。
• ポート 9 データレジスタ (PDR9) を読み出した場合は , 端子の入力レベル値 ("L" の
場合は "0", "H" の場合は "1") が読み出されます。
<注意事項>
リードモディファイライト (RMW) 系命令 ( ビットセット命令など ) を使用して , ポート 9
データレジスタ (PDR9) をアクセスする場合は , ポート 9 方向レジスタ (DDR9) で出力に
設定されているビットは影響を受けませんが , ポート 9 方向レジスタ (DDR9) で入力に設
定されているビットは , 端子の入力レベル値がポート 9 データレジスタ (PDR9) に書き込
まれます。したがって , 入力に設定していたビットを出力に設定変更する場合は , ポート
9 データレジスタ (PDR9) に出力値を設定した後に , ポート 9 方向レジスタ (DDR9) を出
力に設定してください。
● リセット時の動作
• CPU がリセットされた場合は , ポート 9 方向レジスタ (DDR9) の値が "00B" に初期
化され , ポート 9 端子はハイインピーダンスになります。
• ポート 9 データレジスタ (PDR9) は , リセットでは初期化されませんので , 出力ポー
トとして使用する場合は, ポート9データレジスタ(PDR9)に出力値を設定した後に,
ポート 9 方向レジスタ (DDR9) を出力に設定する必要があります。
● ストップ , タイムベースタイマモード時 , 時計モード時の動作
ストップモード , タイムベースタイマモード , 時計モードに遷移した場合は , 低消費電
力モード制御レジスタ (LPMCR) の端子状態設定ビット (SPL) に "1" が設定されている
と , 端子はポート 9 方向レジスタ (DDR9) の値に関係なくハイインピーダンスになりま
す。また , 入力開放によるリークを防ぐため , 入力バッファも強制的に遮断されます。
表 8.12-4 ポート 9 の端子状態
端子名
P90, P91
通常動作
入出力ポート
スリープモード
入出力ポート
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=0)
入力遮断 / レベル保持
ストップモード ,
タイムベースタイマモード ,
時計モード
(SPL=1)
入力遮断 / 出力 Hi-Z
SPL: 低消費電力モード制御レジスタの端子状態指定ビット (LPMCR:SPL)
Hi-Z: ハイインピーダンス
211
第 8 章 入出力ポート
8.13
入出力ポートのプログラム例
入出力ポートを使ったプログラム例を示します。
■ 入出力ポートのプログラム例
● 処理仕様
• ポート 4, 5 で , 7 セグメント (Dp を含めると 8 セグメント )LED をすべて点灯します。
• P50 端子が LED のアノードコモン端子に , P40 ∼ P47 端子がセグメント端子に対応
します。
MB90800シリーズ
P50
P47
P46
P45
P44
P43
P42
P41
P40
● コーディング例
PDR4
EQU
000004H
PDR5
EQU
000005H
DDR4
EQU
000014H
DDR5
EQU
000015H
;---------- メインプログラム -----------------------------------------------------CODE
CSEG
START:
; 初期設定済み
MOV
I:PDR5, #00000000B
; P50 を "L" レベルに設定 , #xxxxxxx0B
MOV
I:DDR5, #11111111B
; ポート 5 を全ビット出力に設定
MOV
I:PDR4, #11111111B
; ポート 4 は全ビット "1" とする
MOV
I:DDR4, #11111111B
; ポート 4 を全ビット出力に設定
CODE
ENDS
;-------------------------------------------------------------------------------END
212
START
第9章
シリアル I/O
MB90800 シリーズのシリアル I/O の機能と動作に
ついて説明します。
9.1 シリアル I/O の概要
9.2 シリアル I/O のレジスタ
9.3 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1)
9.4 シリアル I/O の動作
213
第 9 章 シリアル I/O
9.1
シリアル I/O の概要
シリアル I/O は , 8 ビット× 2 チャネル構成のクロック同期式によるデータ転送可能
なシリアル I/O です。また , データ転送において LSB ファースト /MSB ファースト
の選択が可能です。
■ シリアル I/O の概要
シリアル I/O の動作モードには , 以下の 2 種類があります。
● 内部シフトクロックモード
内部クロック ( 通信プリスケーラ ) に同期してデータを転送します。
● 外部シフトクロックモード
外部端子 (SC) から入力されるクロックに同期してデータを転送します。このモードで
外部端子 (SC) を共有している汎用ポートを操作することにより , CPU の命令 ( ポート
反転命令実行タイミング ) による転送動作も可能です。
■ シリアル I/O のブロックダイヤグラム
図 9.1-1 シリアル I/O のブロックダイヤグラム
内部データバス
(MSBファースト)D0~D7
D7~D0(LSBファースト)
転送方向選択
SI2,SI3
読出し
書込み
SDR(シリアルシフトデータレジスタ)
SO2,SO3
SC2,SC3
シフトクロック
制御回路
カウンタ
内部クロック
(シリアルI/Oプリスケーラ(SDCR))
2
(シリアルモードコント
SMD2
ロールレジスタ(SMCS))
1
0
SMD1
SMD0
SIE
SIR
BUSY
STOP
STRT
MODE
BDS
SOE
SCOE
割込み
要求
内部データバス
<注意事項>
シリアル I/O ch.2(SI2, SO2, SC2) には SMCS0, SDR0, SDCR0 が , ch.3(SI3, SO3, SC3)
には SMCS1, SDR1, SDCR1 がそれぞれ対応します。
214
第 9 章 シリアル I/O
9.2
シリアル I/O のレジスタ
シリアル I/O は , 以下のレジスタにて動作設定を行うことができます。
・シリアルモードコントロールステータスレジスタ (SMCS0/SMCS1) 上位
・シリアルモードコントロールステータスレジスタ (SMCS0/SMCS1) 下位
・シリアルシフトデータレジスタ (SDR0/SDR1)
・シリアル I/O プリスケーラレジスタ (SDCR0/SDCR1)
■ シリアル I/O のレジスタ
図 9.2-1 シリアル I/O のレジスタ
bit15.................................................bit8
bit7.................................................bit0
シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1)
シリアル I/O プリスケーラレジスタ
(SDCR0, SDCR1)
シリアルシフトデータレジスタ (SDR0, SDR1)
215
第 9 章 シリアル I/O
9.2.1
シリアルモードコントロールステータスレジスタ
(SMCS0, SMCS1)
シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) は , シリアル I/O
の転送動作モードを制御するレジスタです。
■ シリアルモードコントロールステータスレジスタ上位 (SMCS)
図 9.2-2 シリアルモードコントロールステータスレジスタ上位 (SMCS)
bit 15
14
13
アドレス SMD2 SMD1 SMD0
000061H,
000065H
R/W R/W R/W
12
11
SIE
SIR
R/W
R/W
10
9
8
BUSY STOP STRT
R/W
R/W
初期値
00000010B
R/W
STRT
スタートビット
0
シリアル転送停止
1
シリアル転送起動
ストップビット
STOP
0
通常動作
1
転送停止
転送状態ビット
BUSY
0
停止またはシリアルデータレジスタ R/W 待機状態
1
シリアル転送状態
シリアルI/O割込み要求フラグビット
SIR
読出し時
割込み要求なし
割込み要求をクリア
1
割込み要求あり
動作に影響しません
シリアルI/O割込み要求許可ビット
SIE
0
割込み要求禁止
1
割込み要求許可
SMD2 SMD1 SMD0
0
216
0
シリアルシフトクロックモード設定ビット
A
0
1.56MHz
1MHz
1MHz
2分周
0
0
1
0.78MHz
1
0
195kHz
500kHz
125kHz
500kHz
12.5kHz
4分周
0
0
1
1
97.5kHz
62.5kHz
62.5kHz
48.75kHz
31.25kHz
31.25kHz
16分周
32分周
1
0
0
1
0
1
1
0
1
1
1
1
R/W :リード/ライト可能
:初期値
書込み時
0
外部シフトクロックモード
予約
予約
8分周
第 9 章 シリアル I/O
表 9.2-1 シリアルモードコントロールステータスレジスタ上位 (SMCS) の各ビットの機能説明
ビット名
bit15
∼
bit13
SMD2, SMD1,
SMD0:
シリアルシフト
クロックモード
設定ビット
機能
・シリアルシフトクロックモードを設定します。
・SMD2, SMD1, SMD0 ビットと SDCR の設定によりシフトクロックの通
信速度を決めます。
・シリアルシフトクロックモード設定ビットと SDCR の設定によりシフ
トクロックの通信速度を決めます。
・リセットにより "000B" に初期化されます。
・転送中の書換えは禁止します ( 書き換えないでください ) 。
・シフトクロックは内部シフトクロック 5 種類と , 外部シフトクロックが
設定できます。SMD2 ∼ SMD0=110B, 111B は予約領域ですので設定し
ないでください。
・クロック設定で SCOE=0 とし , SC 端子を共有しているポートを操作す
ることによって命令ごとにシフト動作させることも可能です。
SIE:
シリアル I/O
割込み要求許可
ビット
・シリアル I/O の割込み要求を許可するビットです。
・"1" を設定した場合は , シリアル I/O 割込み要求フラグビット (SIR) に
"1" がセットされると , 割込み要求を出力します。
・リセットにより , "0" に初期化されます。
bit11
SIR:
シリアル I/O
割込み要求
フラグビット
・シリアル I/O の割込み要求のフラグビットです。
・シリアルデータの転送が終了した場合 , "1" にセットされます。
・シリアル I/O 割込み要求許可ビット (SIE) を "1" に設定している場合は ,
"1" がセットされると , 割込み要求を CPU へ出力します。
・MODE ビットに "0" が設定されている場合 , シリアル I/O 割込み要求フ
ラグビット (SIR) に "0" を設定すると , 割込み要求がクリアされます。
・MODE ビットに "1" が設定されている場合 , SDR レジスタの読出しまた
は書込み動作により割込み要求フラグビットが "0" にクリアされます。
・MODE ビットの値にかかわらずリセット , または STOP ビットへ "1" を
設定した場合は , 割込み要求フラグビットが "0" にクリアされます。
・"0"を設定した場合は , 割込み要求フラグビットが "0"にクリアされます。
・"1" を設定した場合は , 動作に影響しません。
・リードした場合は , "1" が読み出されます。
bit10
BUSY:
転送状態ビット
・シリアル転送が実行中である場合 , "1" にセットされます。
・リセットにより "0" に初期化されます。
bit9
STOP:
ストップビット
・シリアル転送を強制的に中断させます。
・"1" を設定した場合は , STOP=1 による停止状態となります。
・リセットにより , "1" に初期化されます。
STRT:
スタートビット
・シリアル転送の起動を行います。
・停止状態で "1" を設定した場合は , 転送動作を開始します。
・シリアル転送動作中およびシリアルシフトレジスタリード / ライト待機
中に "1" を設定した場合は , 書込み値を無視します。
・"0" を設定した場合は , 動作に影響しません。
・リードした場合は "0" が読み出されます。
bit12
bit8
217
第 9 章 シリアル I/O
■ シリアルモードコントロールステータスレジスタ下位 (SMCS0, SMCS1)
図 9.2-3 シリアルモードコントロールステータスレジスタ下位 (SMCS)
bit
アドレス
000060H,
000064H
7
6
5
4
3
2
1
0
初期値
-
-
-
-
MODE
BDS
SOE
SC0E
----0000B
-
-
-
-
R/W
R/W
R/W
R/W
SC0E
0
シフトクロック出力許可ビット
入出力ポート端子
1
シリアルデータ出力
SOE
0
シリアル出力許可ビット
入出力ポート端子
1
シフトクロック出力端子
BDS
0
転送方向設定ビット
LSB ファースト(最下位ビットから転送)
1
MSB ファースト(最上位ビットから転送)
MODE
R/W
218
:リード/ライト可能
:初期値
0
シリアルモード設定ビット
STRT=1で起動
1
シリアルデータレジスタ(SDR)の読出し/書込みで起動
第 9 章 シリアル I/O
表 9.2-2 シリアルモードコントロールステータスレジスタ下位 (SMCS) の各ビットの機能説明
ビット名
bit7
∼
bit4
−:
未定義ビット
機能
・読出しを行った場合は , 不定値となります。
・設定した値は , 転送動作に影響しません。
MODE:
シリアルモード
設定ビット
・停止状態から起動を行う場合の条件設定を行います。
・"0" を設定した場合は , STRT=1 で起動します。
・"1" を設定した場合は , シリアルデータレジスタ (SDR) のリード / ライ
トを行うことにより転送動作を起動します。
・転送動作中の書換えは禁止です。
・リセットにより "0" に初期化されます。
・拡張インテリジェント I/O サービスを起動する場合は "1" を設定して
ください。
bit2
BDS:
転送方向設定
ビット
・シリアルデータの転送方向を設定します。
・"0"を設定した場合は, 最下位ビット側から転送します(LSBファースト)。
・"1" を設定した場合は , 最上位ビット側から転送します (MSB ファース
ト )。
・転送方向設定ビット (BDS) は , SDR レジスタにデータを書き込む前に
設定してください。
bit1
SOE:
シリアル出力
許可ビット
・シリアル I/O 用出力外部端子 (SO2, SO3) の出力を制御します。
・"0" を設定した場合は , 入出力ポート端子になります。
・"1" を設定した場合は , シリアルデータ出力端子になります。
・リセットにより "0" に初期化されます。
SC0E:
シフトクロック
出力許可ビット
・シフトクロック用入出力外部端子 (SC2, SC3) の出力を制御します。
・"0" を設定した場合は , 入出力ポート端子になります。
・"1" を設定した場合は , シリアルデータ出力端子になります。
・外部シフトクロックモードで命令ごとに転送を行う場合は , "0" を設定
してください。
・リセットにより "0" に初期化されます。
bit3
bit0
219
第 9 章 シリアル I/O
シリアルシフトデータレジスタ (SDR0, SDR1)
9.2.2
シリアルシフトデータレジスタ (SDR0, SDR1) は , シリアル I/O 転送データを格納す
るレジスタです。転送動作中に SDR0, SDR1 レジスタへの書込みおよび読出しを行
わないでください。
■ シリアルシフトデータレジスタ (SDR0, SDR1)
図 9.2-4 シリアルシフトデータレジスタ (SDR)
bit
アドレス
000062H,
000066H
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W:リード / ライト可能
220
初期値
XXXXXXXXB
第 9 章 シリアル I/O
シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1)
9.3
シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) は , シリアル I/O のシフトク
ロックを提供します。
シリアル I/O の動作クロックは , マシンクロックを分周することにより得られます。
シリアル I/O は , この通信プリスケーラによって , システムによる個別のマシンク
ロックに対して一定のボーレートが得られるように設計されています。SDCR0,
SDCR1 レジスタ , マシンクロックの分周を制御するレジスタです。
■ シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1)
図 9.3-1 シリアル I/O プリスケーラレジスタ (SDCR0, SDCR1)
bit
アドレス
000063H,
000067H
15
MD
14
13
12
11
予約
10
DIV2
9
DIV1
8
DIV0
−
−
−
R/W
−
−
−
R/W
R/W
R/W
R/W
初期値
0---0000B
R/W :リード / ライト可能
− :未定義ビット
表 9.3-1 シリアル I/O プリスケーラレジスタ (SDCR) の各ビットの機能説明
ビット名
機能
bit15
MD:
通信プリスケーラ
動作許可ビット
・通信プリスケーラの動作を許可するビットです。
・"1" を設定した場合は , 通信プリスケーラは動作します。
・"0" を設定した場合は , 通信プリスケーラは停止します。
bit14
∼
bit12
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit11
予約:
予約ビット
必ず "0" を設定してください。
bit10
∼
bit8
DIV2 ∼ DIV0:
分周比設定ビット
・マシンクロックの分周比を設定するビットです。
・設定値については表 9.3-2 を参照してください。
221
第 9 章 シリアル I/O
表 9.3-2 通信プリスケーラ
MD
DIV2
DIV1
DIV0
div
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
<注意事項>
分周比を変えた場合は , クロックの安定時間として , マシンクロックの 2 分周の時間待っ
てから通信を行ってください。
222
第 9 章 シリアル I/O
9.4
シリアル I/O の動作
シリアル I/O は , シリアルモードコントロールステータスレジスタ (SMCS0,
SMCS1), シフトデータレジスタ (SDR0, SDR1) により構成されています。8 ビット
のシリアルデータの入出力に使用します。
■ シリアル I/O の動作
シリアルデータの入出力は , シフトデータレジスタの内容がシリアルシフトクロック
( 外部クロック , 内部クロック ) の立下りに同期して , ビット直列にシリアル出力端子
(SO 端子 ) に出力され , 立上りに同期してシリアル入力端子 (SI 端子 ) からビット直列
に SDR0, SDR1 レジスタに入力されます。シフトの方向 (MSB または LSB) は , シリア
ルモードコントロールステータスレジスタ下位 (SMCS0, SMCS1) の転送方向設定ビッ
ト (BDS) により設定できます。
転送が終了すると , シリアルモードコントロールステータスレジスタ下位 (SMCS0,
SMCS1) のシリアルモード設定ビット (MODE) によって , 停止状態またはデータレジス
タ R/W 待機状態に入ります。各々の状態から転送状態に移るには , 以下の設定を行い
ます。
• 停止状態から復帰させる場合は , ストップビット (STOP) に "0", スタートビット
(STRT) に "0" を設定します (STOP と STRT は同時設定が可能です )。
• シリアルデータレジスタ (SDR0, SDR1)R/W 待機状態からの復帰時は , データレジス
タをリードまたはライトします。
223
第 9 章 シリアル I/O
シフトクロック
9.4.1
シフトクロックは内部シフトクロックモード , 外部シフトクロックモードの 2 種類
があり , シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) で設定
します。モードの切換えは , シリアル I/O が停止した状態で行ってください。停止状
態の確認は , 転送状態ビット (BUSY) を読み出すことで可能です。
■ 内部シフトクロックモード
内部クロックにより動作し , 同期タイミング出力としてデューティ比 50% のシフトク
ロックを SC 端子から出力可能です。データが 1 クロックごとに 1 ビット転送されま
す。転送の速度は , 次の式で表せます。
転送速度(s) =
div × A
マシンクロック周波数(Hz)
A はシリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のシリアルシ
フトクロックモード設定ビット(SMD0∼SMD2)で示す分周比で, 2分周, 4分周, 16分周,
32 分周です。
div はシリアル I/O プリスケーラレジスタ (SDCR0, SDCR1) の分周比設定ビット (DIV2 ∼
DIV0) で設定します。表 9.3-2 を参照してください。
■ 外部シフトクロックモード
外部シフトクロックモードでは , SC 端子から入力される外部シフトクロックに同期し
て , データが 1 クロックごとに 1 ビット 転送されます。転送速度は 1/5 マシンサイク
ル以下まで可能です。
例えば , "1 マシンサイクル =0.1μs" の場合 , 2 MHz まで可能です。
命令ごとに転送することもでき , 次のような設定をすることによって実現します。
• 外部シフトクロックモードを設定し , シリアルモードコントロールステータスレジ
スタ(SMCS0, SMCS1)のシフトクロック出力許可ビット(SCOE)に"0"を設定します。
• SC 端子を共有しているポートの方向レジスタに "1" を設定して , ポートを出力モー
ドに設定します。
以上の設定をした後 , ポートデータレジスタ (PDR) に "1", "0" を設定すると , SC 端子に
出力されるポートの値を外部クロックとして取り込み , 転送動作を行います。シフトク
ロックの開始は "H" レベルからスタートさせてください。
<注意事項>
シ リア ル I/O 動作 中 の シリ ア ル モー ド コ ント ロ ー ルス テ ー タ スレ ジ ス タ (SMCS0,
SMCS1), シリアルシフトデータレジスタ (SDR0, SDR1) への書込みは禁止です。
224
第 9 章 シリアル I/O
9.4.2
シリアル I/O の動作状態
シリアル I/O の動作状態として , 以下の状態があります。
・STOP 状態
・停止状態
・SDR0, SDR1 レジスタの R/W 待機状態
・転送状態
■ STOP 状態
リセット時 , またはシリアルモードコントロールステータスレジスタ (SMCS0, SMCS1)
のストップビット (STOP) に "1" を設定した場合の状態で , シフトカウンタは初期化さ
れ , SIR =0 となります。STOP 状態からの復帰は , STOP=0, STRT=1( 同時設定可能 ) と
することによって行われます。ストップビット (STOP) はスタートビット (STRT) より
優先ビットですので STOP=1 の場合 , STRT=1 としても転送動作は行われません。
■ 停止状態
シリアルモード設定ビット (MODE) が "0" の場合 , 転送が終了したことによってシリア
ルモードコントロールステータスレジスタ (SMCS0, SMCS1) が BUSY=0, SIR =1 となり
, カウンタが初期化され停止状態に入ります。停止状態からの復帰は STRT=1 にすると
転送動作が再開されます。
■ シリアルデータレジスタリード / ライト待機状態
シリアルモードコントロールステータスレジスタ (SMCS0, SMCS1) のシリアルモード
設定ビット (MODE) が "1" の場合 , シリアル転送が終了すると , BUSY=0, SIR =1 とな
り SDR0, SDR1 レジスタリード / ライト待機状態に入ります。割込み許可レジスタが許
可状態ならば , 本ブロックより割込み信号を出力します。
リード / ライト待機状態からの復帰は SDR0, SDR1 レジスタが読み出されたり , 書き込
まれたりすると BUSY=1 となり転送動作が再開されます。
■ 転送状態
BUSY=1 でシリアル転送を行っている状態です。シリアルモード設定ビット (MODE)
によりそれぞれ停止状態およびリード / ライト待機状態に遷移します。
225
第 9 章 シリアル I/O
図 9.4-1 シリアル I/O 動作遷移図
リセット
STOP=0 & STRT=0
転送終了
STRT=0,BUSY=0
MODE=0
STOP=0
&
STRT=1
MODE=0
&
STOP=0
&
終了
STOP
STOP=1
STOP=1
転送動作
STRT=1,BUSY=1
STRT=0,BUSY=0
STOP=1
STOP=0
&
STRT=1
シリアルデータレジスタ R/W 待機
MODE=1&終了&STOP=0
STRT=1,BUSY=0
MODE=1
SDR の R/W & MODE=1
図 9.4-2 シリアルデータレジスタへのリード , ライト概念図
シ
リ
ア
ル
デ
|
タ
データバス
SO0,SO1 データバス
リード
ライト
SI0,SI1
割込み出力
リード
ライト
(2)
シリアルI/Oインタフェース
(1)
割込み入力
データバス
CPU
割込みコントローラ
(1) MODE=1 の場合 , シフトクロックカウンタによって転送終了し , SIR =1 となって
リード / ライト待機状態に入ります。シリアル I/O 割込み許可ビット (SIE) が "1" な
らば割込み信号を発生します。ただし , シリアル I/O 割込み許可ビット (SIE) がイ
ンアクティブの場合やストップビット (STOP) へ "1" を設定することによる転送中
断の場合は , 割込み信号は発生しません。
(2) シリアルシフトデータレジスタ (SDR0, SDR1) がリード / ライトされると , 割込み
要求はクリアされシリアル転送を開始します。
226
第 9 章 シリアル I/O
9.4.3
シフト動作のスタート / ストップタイミング
シフト動作をスタートする場合には , シリアルモードコントロールステータスレジ
スタ (SMCS0, SMCS1) のストップビット (STOP) に "0", スタートビット (STRT) に
"1" を設定します。シフト動作のストップタイミングについては , STOP=1 によって
停止する場合と , 転送終了によって停止する場合があります。
・STOP=1 により , 停止→シリアルモード設定ビット (MODE) に関係なく SIR=0 の
まま停止します。
・転送終了により , 停止→シリアルモード設定ビット (MODE) に関係なく SIR=1 と
なり停止します。
転送状態設定ビット (BUSY) はシリアルモード設定ビット (MODE) に関係なくシリ
アル転送状態の場合 "1" となり , 停止状態または R/W 待機状態の場合は "0" となり
ます。転送状態を確認したい場合は , 転送状態設定ビット (BUSY) をリードしてくだ
さい。
■ シフト動作のスタート / ストップタイミング
● 内部シフトクロックモード (LSB ファースト )
図 9.4-3 シフト動作のタイミング ( 内部クロック )
SC0,SC1
STRT
"1"出力
(転送スタート)
(転送終了)
MODE=0の場合
BUSY
SO0,SO1
DO0
・・・
DO7(データ保持)
● 外部シフトクロックモード (LSB ファースト )
図 9.4-4 シフト動作のタイミング ( 外部クロック )
SC0,SC1
STRT
(転送スタート)
(転送終了)
MODE=0の場合
BUSY
SO0,SO1
DO0
・・・
DO7(データ保持)
227
第 9 章 シリアル I/O
● 外部シフトクロックモードで命令シフトを行った場合 (LSB ファースト )
図 9.4-5 シフト動作のタイミング ( 外部シフトクロックモードで命令ごとにシフトさせた場合 )
SC0,1端子に対応する
PDRレジスタのビット=0
SC0,SC1
SC0,1端子に対応する
PDRレジスタのビット=0
SC0,1端子に対応するPDRレジスタのビット=1
STRT
MODE=0の場合
BUSY
SO0,SO1
・・・
DO6
DO7(データ保持)
● STOP=1 による停止 (LSB ファースト , 内部クロック時 )
図 9.4-6 ストップビット (STOP) を "1" とした場合のストップタイミング
SC0,SC1
"1"出力
(転送スタート)
STRT
(転送停止)
MODE=0の場合
BUSY
STOP
SO0,SO1 ・・・
DO3
DO4
DO5(データ保持)
( 注意事項 ) DO7 ∼ DO0 は出力データを示します。
■ シリアルデータの入出力のタイミング
シリアルデータの転送中は , シフトクロックの立下りエッジでシリアル出力端子 (SO)
からデータが出力され , 立上りまたは立下りどちらかあらかじめ設定されたエッジに
より , シリアル入力端子 (SI) からデータが入力されます。
図 9.4-7 シリアルデータの入出力のシフトタイミング
○ LSBファースト(BDSビットが"0"の場合)
SC0,SC1
SI0,SI1
SI入力
DI0
DI1
DI2
DI3
DI4
DI5
DI6
DI7
DO3
DO4
DO5
DO6
DO7
SO出力
SO0,SO1
DO0
DO1
DO2
○ MSBファースト(BDSビットが"1"の場合)
SC0,SC1
SI0,SI1
SI入力
DI7
DI6
DI5
DI4
DI3
DI2
DI1
DI0
DO4
DO3
DO2
DO1
DO0
SO出力
SO0,SO1
228
DO7
DO6
DO5
第 9 章 シリアル I/O
9.4.4
シリアル I/O の割込み機能
シリアル I/O は , CPU に対し割込み要求を出力できます。データの転送が終了した
場合 , 割込みフラグであるシリアル I/O 割込み要求フラグビット (SIR) が "1" にセッ
トされ , 割込みを許可するシリアルモードコントロールステータスレジスタ
(SMCS0, SMCS1) のシリアル I/O 割込み許可ビット (SIE) が "1" の場合 , CPU へ割
込み要求を出力します。
■ シリアル I/O の割込み機能
図 9.4-8 シリアル I/O の割込み信号出力タイミング
SC0,SC1
(転送終了)
BUSY
(注意事項) MODE=1の場合
SIE=1
SIR
SDRの
リード/ライト
SO0,SO1
DO6
DO7(データ保持)
229
第 9 章 シリアル I/O
230
第 10 章
タイムベースタイマ
MB90800 シリーズのタイムベースタイマの機能と
動作について説明します。
10.1 タイムベースタイマの概要
10.2 タイムベースタイマの構成
10.3 タイムベースタイマ制御レジスタ (TBTC)
10.4 タイムベースタイマの割込み
10.5 タイムベースタイマの動作説明
10.6 タイムベースタイマ使用上の注意
231
第 10 章 タイムベースタイマ
10.1
タイムベースタイマの概要
タイムベースタイマは , メインクロックに同期してカウントアップする 18 ビットの
フリーランカウンタです。4 種類のインターバル時間を設定できるインターバルタ
イマ機能と , 発振安定待ち時間用のタイマ , ウォッチドッグタイマ , および時計ク
ロック出力回路にクロックを供給する機能があります。
■ インターバルタイマ機能
インターバルタイマ機能は , 一定の時間間隔で割込み要求を出力する機能です。
• タイムベースタイマカウンタのインターバルタイマカウンタがオーバフローした
場合に割込み要求を出力します。
• インターバルタイマのインターバル時間は , 4 種類の中から設定できます。
表 10.1-1 タイムベースタイマのインターバル時間
メインクロック周期
インターバル時間
212/HCLK( 約 0.65 ms)
2/HCLK(0.32 μs)
214/HCLK( 約 2.62 ms)
216/HCLK( 約 10.48 ms)
219/HCLK( 約 83.88 ms)
HCLK: 発振クロック周波数
( ) 内の値は , 発振クロック周波数 6.25 MHz の場合です。
232
第 10 章 タイムベースタイマ
■ クロック供給機能
クロック供給機能は , 発振安定待ち時間用のタイマや , 一部の周辺機能に対する動作ク
ロックを供給する機能です。
表 10.1-2 タイムベースタイマから供給されるクロック周期
クロック
供給先
クロック周期
213/HCLK( 約 1.31 ms)
発振安定待ち
時間
備考
セラミック振動子用発振安定待ち時間
215/HCLK( 約 5.24 ms)
水晶振動子用発振安定待ち時間
218/HCLK( 約 41.94 ms)
212/HCLK( 約 0.65 ms)
ウォッチ
ドッグタイマ
214/HCLK( 約 2.62 ms)
216/HCLK( 約 10.48 ms)
ウォッチドッグタイマ
のカウントアップクロック
219/HCLK( 約 83.88 ms)
HCLK: 発振クロック周波数
( ) 内の値は , 発振クロック周波数 6.25 MHz の場合です。
<参考>
発振開始直後は発振周期が不安定なため , 発振安定待ち時間は目安となります。
233
第 10 章 タイムベースタイマ
10.2
タイムベースタイマの構成
タイムベースタイマは , 以下のブロックで構成されています。
・タイムベースタイマカウンタ
・カウンタクリア回路
・インターバルタイマセレクタ
・タイムベースタイマ制御レジスタ (TBTC)
■ タイムベースタイマのブロックダイヤグラム
図 10.2-1 タイムベースタイマのブロックダイヤグラム
ウォッチドッグ
タイマへ
タイムベース PPGタイマへ
タイマカウンタ
HCLKの2分周
×21 ×22 … ×28 ×29 ×210 ×211×212×213 ×214×215 ×216 ×217×218
OF
パワーオンリセット
ストップモード開始
ホールド状態開始
CKSCR:MCS=1→0*1
CKSCR:SCS=0→1*2
OF
OF
OF
クロック制御部
発振安定待ち
時間セレクタへ
カウンタ
クリア
制御回路
インターバル
タイマセレクタ
TBOF
セット
TBOFクリア
タイムベースタイマ制御レジスタ 予約
(TBTC)
タイムベースタイマ割込み信号
-
-
TBIE TBOF TBR TBC1 TBC0
:未定義ビット
OF :オーバフロー
HCLK :発振クロック
*1 :マシンクロックをメインクロック,またはサブクロックからPLLクロックへ切換え
*2 :マシンクロックをサブクロックからメインクロックへ切換え
● タイムベースタイマカウンタ
メインクロックをカウントクロックとする 18 ビットのアップカウンタです。
● カウンタクリア回路
タイムベースタイマ制御レジスタ (TBTC) のタイムベースタイマ初期化ビット (TBR) へ
の "0" 設定 , パワーオンリセット , ストップモードへの遷移 (LPMCR:STP=1), およびマ
シンクロックをメインクロックから PLL クロックへ切換え (CKSCR:MCS=1 → 0) でタ
イムベースタイマカウンタをクリアする回路です。
● インターバルタイマセレクタ
タイムベースタイマカウンタの 4 つのインターバルタイマ用ビットの出力から 1 つを
設定します。設定したインターバルタイマ用ビットのオーバフローが割込み要因とな
ります。
● タイムベースタイマ制御レジスタ (TBTC)
インターバル時間の設定 , タイムベースタイマカウンタのクリア , 割込み要求の制御お
よび状態を確認します。
234
第 10 章 タイムベースタイマ
タイムベースタイマ制御レジスタ (TBTC)
10.3
タイムベースタイマ制御レジスタ (TBTC) は , インターバル時間の設定 , タイムベース
タイマカウンタのクリア , 割込み要求の制御および状態の確認をするレジスタです。
■ タイムベースタイマ制御レジスタ (TBTC)
図 10.3-1 タイムベースタイマ制御レジスタ (TBTC)
bit
アドレス
0000A9H
15
14
13
12
11
予約
-
-
TBIE TBOF
TBR
TBC1 TBC0
R/W
-
-
R/W
R/W
R/W
R/W
10
9
8
初期値
1--00100 B
R/W
インターバル時間設定ビット
TBC1 TBC0
12
0
0 2 /HCLK(約 0.65ms)
0
1
1
(
1 214/HCLK(約 2.62ms)
0 216/HCLK(約 10.48ms)
1 219/HCLK(約 83.88ms)
)内の値は,発振クロック周波数6.25MHzの場合です。
TBR
タイムベースタイマ初期化ビット
0
1
タイムベースタイマカウンタ,割込み要求をクリア
動作に影響しません。
TBOF
割込み要求フラグビット
リード時
ライト時
0
1
TBIE
0
1
割込み要求なし
割込み要求あり
割込み要求をクリア
動作に影響しません。
割込み要求許可ビット
割込み要求禁止
割込み要求許可
予約ビット
必ず"1"を設定してください。
予約
R/W :リード/ライト可能
:未定義ビット
:初期値
HCLK :発振クロック周波数
235
第 10 章 タイムベースタイマ
表 10.3-1 タイムベースタイマ制御レジスタ (TBTC) の各ビットの機能説明
ビット名
機能
bit15
予約 :
予約ビット
必ず "1" を設定してください。
bit14,
bit13
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit12
TBIE:
割込み要求
許可ビット
・割込み要求を許可するビットです。
・ "1" を設定した場合は割込み要求フラグビット (TBOF)
に , "1" が セットされた場合は CPU へ割込み要求を出
力します。
TBOF:
割込み要求
フラグビット
・割込み要求のフラグビットです。
・タイムベースタイマカウンタに設定したインターバルタ
イマ用ビットのオーバフローで , "1" がセットされます。
割込み要求許可ビット (TBIE) に "1" を設定している場
合は , CPU へ割込み要求を出力します。
・"0" を設定した場合は , 割込み要求フラグを "0" にクリア
します。
・"1" を設定した場合は , 動作に影響しません。
( 注意事項 )
・ "0" を設定する場合は , 割込み要求許可ビット (TBIE), ま
たはプロセッサステータス (PS) のインタラプトレベルマ
スクレジスタ (ILM) を割込み禁止に設定してください。
・ストップモードへの遷移 , タイムベースタイマ初期化
ビット (TBR)によるタイムベースタイマのクリアおよび
リセットにより , "0" にクリアされます。
bit11
・タイムベースタイマカウンタをクリアするビットです。
・ "0" を設定した場合は , タイムベースタイマカウンタが
"00000H" にクリアされ , 割込み要求フラグビット (TBOF)
bit10
TBR:
タイムベース
タイマ初期化
ビット
bit9,
bit8
TBC1, TBC0:
・インターバルタイマの周期を設定するビットです。
イ ン タ ー バ ル ・タイムベースタイマカウンタのインターバルタイマ用の
ビットを指定します。
時間設定
・4 種類のインターバル時間から設定できます。
ビット
236
も "0" にクリアされます。
・"1" を設定した場合は , 動作に影響しません。
[ 参考 ]
読出し値は , "1" です。
第 10 章 タイムベースタイマ
10.4
タイムベースタイマの割込み
インターバル時間設定ビットにて選択されたインターバルタイマカウンタがオーバ
フローすることにより , 割込み要求を出力させることができます ( インターバルタイ
マ機能 )。
■ タイムベースタイマの割込み
タイムベースタイマカウンタがメインクロックでカウントアップし , 設定されたイン
ターバルタイマがオーバフローした場合に , タイムベースタイマ制御レジスタ (TBTC)
の割込み要求フラグビット (TBOF) が "1" にセットされます。割込み要求許可ビットを
許可 (TBTC:TBIE=1) している状態で , 割込み要求フラグビットが "1" にセットされた
場合 , CPU へ割込み要求 ( 割込み番号 #34) を出力し , 割込み処理ルーチンを実行しま
す。割込み処理ルーチンでは , 割込み要求フラグビット (TBOF) に "0" を設定し , 割込
み要求をクリアしてください。割込み要求フラグビット (TBOF) は , 割込み要求許可
ビット (TBIE) の値に関係なく , 設定したインターバルタイマ用ビットがオーバフロー
した場合に , "1" がセットされます。
<参考>
タイムベースタイマでは , 拡張インテリジェント I/O サービス (EI2OS) は使用できません。
■ タイムベースタイマの割込みと EI2OS
表 10.4-1 タイムベースタイマの割込みと EI2OS
割込みレベル設定レジスタ
ベクタテーブルのアドレス
EI2OS
割込み番号
#33(21H)
レジスタ名
アドレス
下位
上位
バンク
ICR11
0000BBH
FFFF78H
FFFF79H
FFFF7AH
×
× : 使用不可
237
第 10 章 タイムベースタイマ
10.5
タイムベースタイマの動作説明
インターバルタイマ機能の動作 , 発振安定待ち時間用のタイマ機能 , およびクロック
供給機能について示します。
■ インターバルタイマ機能 ( タイムベースタイマ ) の動作
インターバルタイマ機能は , 設定されたインターバル時間ごとに割込み要求を出力し
ます。インターバルタイマとして動作させるには , 図 10.5-1 に示すような設定が必要
です。
図 10.5-1 タイムベースタイマの設定
bit
TBTC
15
14
13
予約
1
−
−
−
−
12
TBIE
◎
11
TBOF
0
10
TBR
0
9
TBC1
◎
8
TBC0
◎
◎:使用ビット
0 :"0" を設定
1 :"1" を設定
- :未定義ビット
• タイムベースタイマカウンタは , クロックが発振していればカウントアップを継続
します。
• タイムベースタイマカウンタがクリア (TBTC:TBR=0) された場合は ,
"000000000000000000B"からカウントアップを行い, 設定されたインターバルタイマ
用ビットがオーバフローした場合に, タイムベースタイマ制御レジスタ(TBTC)の割
込み要求フラグビット (TBOF) に "1" がセットされます。オーバフローした場合に ,
割込み要求許可ビットを許可 (TBIE=1) している場合は , カウンタがクリアされた時
間を基準にして , 設定されたインターバル時間ごとに割込み要求を出力します。
• インターバル時間は , タイムベースタイマカウンタのクリア動作により , 設定時間
よりも長くなる場合があります。
■ 発振安定待ち時間用タイマ機能
タイムベースタイマは , 発振クロックの発振安定待ち時間 , および PLL クロックの発
振安定待ち時間用のタイマとしても使用されます。発振安定待ち時間は , タイムベース
タイマカウンタ値が "000000000000000000B"( カウンタクリア ) からカウントアップし ,
発振安定待ち時間を検出するまでの時間となります。タイムベースタイマモードから
PLL クロックモードへ復帰する場合は , タイムベースタイマカウンタがクリアされな
いため , 発振安定待ち時間はカウント途中からの時間となります。
238
第 10 章 タイムベースタイマ
表 10.5-1 タイムベースタイマカウンタのクリア動作と発振安定待ち時間
動作
カウンタ
クリア
割込み要求
フラグビット
(TBOF) クリア
発振安定待ち時間
TBTC:TBR に "0" を設定する
○
○
−
○
○
発振クロック発振安定待ち時間
ストップモードの解除
○
○
発振クロック発振安定待ち時間
( メインクロックモード復帰時 )
発振クロックモードから
PLLクロックモードへの遷移
(MCS = 1 → 0)
○
○
PLL クロック発振安定待ち時間
タイムベースタイマモードの
解除
×
×
PLL クロック発振安定待ち時間
(PLL クロックモード復帰時 )
スリープモードの解除
×
×
−
パワーオンリセット
ウォッチドッグリセット
○ : クリアを行う。
× : クリアを行わない。
■ クロック供給機能
タイムベースタイマは , ウォッチドッグタイマにクロックを供給しています。タイム
ベースタイマカウンタをクリアした場合は , ウォッチドッグタイマの動作に影響を与
えます。詳細は , 「10.6 タイムベースタイマ使用上の注意」を参照してください。
■ タイムベースタイマの動作
次の状態の動作を図 10.5-2 に示します。
• パワーオンリセットが発生した場合
• インターバルタイマ機能の動作中にスリープモードへ遷移した場合
• ストップモードへ遷移した場合
• タイムベースタイマカウンタクリアの要求があった場合
ストップモードへ遷移した場合 , タイムベースタイマカウンタはクリアされ , タイム
ベースタイマカウンタは停止します。ストップモードからの復帰を行う場合は , タイム
ベースタイマカウンタで発振安定待ち時間をカウントします。
239
第 10 章 タイムベースタイマ
図 10.5-2 タイムベースタイマの動作
カウンタ値
3FFFFH
ストップモードへの
遷移によるクリア
発振安定待ち
オーバフロー
00000H
CPU動作開始
パワーオンリセット
(オプション)
インターバル周期
(TBTC:TBC1,TBC0=11 B )
カウンタクリア
(TBTC:TBR=0)
割込み処理ルーチンでクリア
TBOFビット
TBIEビット
SLPビット
(LPMCRレジスタ)
スリープ
インターバル割込みスリープ解除
ストップ
STPビット
(LPMCRレジスタ)
外部割込みによるストップ解除
タイムベースタイマ制御レジスタのインターバル時間設定ビット(TBC:TBC1,TBC0)に"11B"(219/HCLK)
を設定した場合。
:発振安定待ち時間
HCLK :発振クロック周波数
240
第 10 章 タイムベースタイマ
10.6
タイムベースタイマ使用上の注意
割込み要求のクリアおよびタイムベースタイマカウンタのクリアによる機能への影
響などの注意点を示します。
■ タイムベースタイマ使用上の注意
● 割込み要求のクリア
タイムベースタイマ制御レジスタ (TBTC) の割込み要求フラグビット (TBOF) を "0" に
クリアする場合は , 割込み要求許可ビット (TBIE), またはプロセッサステータス (PS) の
インタラプトレベルマスクレジスタ (ILM) を割込み禁止に設定してください。
● タイムベースタイマカウンタのクリアにより影響を受ける機能
• インターバルタイマ機能 ( インターバル割込み )
• ウォッチドッグタイマ
• 時計クロック出力回路
● タイムベースタイマカウンタより , クロックを供給される機能への注意
動作クロックが停止するストップモードでは , タイムベースタイマカウンタはクリア
され , タイムベースタイマカウンタは停止します。タイムベースタイマカウンタより供
給されていたクロックは , タイムベースタイマカウンタがクリアされた場合に , 初期状
態からの供給となるため , "H" レベルが短く , あるいは "L" レベルが最大で 1/2 周期長
くなる場合があります。ウォッチドッグタイマ用のクロックも同様に , 初期状態からの
供給となりますが , ウォッチドッグタイマのカウンタが同時にクリアされるため ,
ウォッチドッグタイマは正常な周期で動作します。
● 発振安定待ち時間用タイマとして使用する場合
電源投入およびストップモードの場合は , 発振クロックが停止しているため , 振動子が
動作を開始した後 , タイムベースタイマカウンタが発振子から供給されるクロックを
使用して動作クロックの発振安定待ち時間を確保します。振動子の種類によって , 適切
な発振安定待ち時間を設定する必要があります。
詳細は , 「4.5 発振安定待ち時間」を参照してください。
241
第 10 章 タイムベースタイマ
242
第 11 章
ウォッチドッグタイマ
ウォッチドッグタイマの機能と動作について説明
します。
11.1 ウォッチドッグタイマの概要
11.2 ウォッチドッグタイマ制御レジスタ (WDTC)
11.3 ウォッチドッグタイマの構成
11.4 ウォッチドッグタイマの動作
11.5 ウォッチドッグタイマ使用上の注意
11.6 ウォッチドッグタイマのプログラム例
243
第 11 章 ウォッチドッグタイマ
11.1
ウォッチドッグタイマの概要
ウォッチドッグタイマは , タイムベースタイマまたは時計タイマの出力をカウント
クロックとする 2 ビットのカウンタで , 起動後 , 一定時間内にクリアされない場合 ,
CPU をリセットします。
■ ウォッチドッグタイマ機能
ウォッチドッグタイマは , プログラム暴走対策用のカウンタです。一度起動すると一定
時間内で定期的にクリアし続ける必要があります。プログラムが無限ループに陥るな
どして , 一定時間以上クリアされない場合 , CPU に対してウォッチドッグリセットを発
生します。ウォッチドッグタイマのインターバル時間は , 表 11.1-1 に示すように ,
ウォッチドッグタイマ制御レジスタ (WDTC) の WT1, WT0 ビットで設定できます。
ウォッチドッグタイマがクリアされない場合 , 最小時間から最大時間の間にウォッチ
ドッグリセットが発生します。この表の最小時間内にカウンタをクリアしてください。
表 11.1-1 ウォッチドッグタイマのインターバル時間
WT1
WDCS
& SCM
WT0
インターバル時間
クロックサイクル数
最小 *
最大 *
0
0
1
約 2.29 ms
約 2.94 ms
214 ± 211 HCLK サイクル
0
1
1
約 9.17 ms
約 11.79 ms
216 ± 213 HCLK サイクル
1
0
1
約 36.7 ms
約 47.18 ms
218 ± 21 5HCLK サイクル
1
1
1
約 293.6 ms
約 377.48 ms
221 ± 21 8HCLK サイクル
0
0
0
約 0.448 s
約 0.576 s
212 ± 29 SCLK サイクル
0
1
0
約 3.584 s
約 4.608 s
215 ± 212 SCLK サイクル
1
0
0
約 7.168 s
約 9.216 s
216 ± 213 SCLK サイクル
1
1
0
約 14.336 s
約 18.432 s
217 ± 21 4SCLK サイクル
*
: 発振クロック (HCLK) 6.25 MHz, サブクロック (SCLK) 32 kHz の 4 分周 (=8 kHz) 動作時の値です。
ウォッチドッグタイマインターバル時間の最大, 最小および発振クロックサイクル数は, クリアの
タイミングで決まります。インターバル時間は , カウントクロック ( タイムベースタイマの供給
クロック ) 周期の 3.5 ∼ 4.5 倍になります。ウォッチドッグタイマインターバル時間については ,
「11.4 ウォッチドッグタイマの動作」を参照してください。
244
第 11 章 ウォッチドッグタイマ
<注意事項>
ウォッチドッグカウンタは , タイムベースタイマの桁上り信号をカウントする 2 ビットカ
ウンタによって構成されています。したがって , タイムベースタイマがクリアされると ,
ウォッチドッグリセットの発生時間が設定した時間より長くなることがあります。
<参考>
ウォッチドッグタイマは起動されると , パワーオン , ウォッチドッグによるリセットで初
期化され , 停止状態になります。また , 外部端子によるリセット , ソフトウェアリセット ,
ウォッチドッグタイマ制御レジスタのウォッチドッグ制御ビット (WTE) への書込み , ス
リープモードへの遷移 , ストップモードへの遷移および時計モードへの遷移でウォッチ
ドッグカウンタはクリアされますが , ウォッチドッグタイマは起動したままです。
245
第 11 章 ウォッチドッグタイマ
11.2
ウォッチドッグタイマ制御レジスタ (WDTC)
ウォッチドッグタイマ制御レジスタ (WDTC) は , ウォッチドッグタイマの起動 , クリ
ア , およびリセット要因の表示を行うレジスタです。
■ ウォッチドッグタイマ制御レジスタ (WDTC)
図 11.2-1 にウォッチドッグタイマ制御レジスタ (WDTC) を , 表 11.2-1 にウォッチドッ
グタイマ制御レジスタ (WDTC) の各ビットの機能を示します。
図 11.2-1 ウォッチドッグタイマ制御レジスタ (WDTC)
アドレス
0000A8H
bit15
bit8
(TBTC)
bit7
bit6
PONR
-
R/W
-
bit5
bit4
bit3
bit2
bit1
WRST ERST SRST WTE WT1 WT0
R/W R/W
R/W R/W
初期値
bit0
X-XXX1111B
R/W R/W
インターバル時間選択ビット(HCLK: 6.25 MHz SCLK: 8 kHz動作時)
インターバル時間
WT1 WT0 WDCS
& SCM
0
0
1
1
0
0
1
1
0
1
0
1
0
1
0
1
1
1
1
1
0
0
0
0
最小
発振クロックサイクル数
最大
約2.29 ms
約2.94 ms
214 ± 211 HCLKサイクル
約9.17 ms
約11.79 ms
216 ± 213 HCLKサイクル
約36.7 ms
約47.18 ms
約293.6 ms
約377.48 ms
218 ± 215 HCLKサイクル
221 ± 218 HCLKサイクル
約0.448s
約0.576s
212 ± 29 SCLKサイクル
約3.584s
約4.608s
約7.168s
約9.216s
215 ± 212 SCLKサイクル
216 ± 213 SCLKサイクル
約14.336s
約18.432s
217 ± 214 SCLKサイクル
HXLK: 発振クロック
SCLK: サブクロック(32 kHzの4分周)
ウォッチドッグ制御ビット
WTE
0
・ウォッチドッグタイマを起動
(リセット後1回目の書込みのとき)
・ウォッチドッグタイマをクリア
(リセット後2回目以降の書込みのとき)
1
動作なし
リセット要因ビット
PONR WRST ERST SRST
1
R/W :リード/ライト可能
:不定
:未定義ビット
X
X
X
リセット要因ビット
パワーオン
ウォッチドッグタイマ
1
外部端子(RST = "L"入力)
1
1
RSTビット(ソフトウェアリセット)
:前の状態を保持
:初期値
インターバル時間はカウントクロック ( タイムベースタイマの出力値 ) 周期の 3.5 ∼ 4.5
倍となります。詳細は「11.4 ウォッチドッグタイマの動作」を参照してください。
246
第 11 章 ウォッチドッグタイマ
表 11.2-1 ウォッチドッグタイマ制御レジスタ (WDTC) の各ビットの機能
ビット名
機能
bit7,
bit5,
bit4,
bit3
PONR
WRST
ERST
SRST
リセット要因
ビット
・リセット要因を示す読出し専用ビットです。各リセット
要因が発生すると , これらのビットが "1" にセットされま
す。
・PONR, WRST, ERST, SRST ビットは , WDTC レジスタの
読出し動作後に , すべて "0" にクリアされます。
・パワーオン時は , PONR ビット以外のビットの内容は保証
されません。したがって , PONR ビットが "1" の場合はこ
れ以外のビットの内容を無視するようにしてください。
bit6
未定義
未定義ビット
・読出し値は不定です。
・書込みは , 動作に影響ありません。
ウォッチ
ドッグ制御
ビット
・"0" を書き込むと , ウォッチドッグタイマを起動 ( リセッ
ト後 1 回目の書込み ) または 2 ビットカウンタをクリア
( リセット後 2 回目以降の書込み ) します。
・"1" の書込みでは , 動作に影響はありません。
インターバル
時間選択
ビット
・ウォッチドッグタイマのインターバル時間を選択する
ビットです。
・クロックモードとしてサブクロックモードが選択されて
いる ( クロック選択レジスタ (CKSCR) のサブクロック表
示ビット (SCM) が "0") または時計タイマ制御レジスタ
(WTC) により , ウォッチドッグタイマのクロックソース
が時計タイマになっている場合 ( ウォッチドッグタイマ
クロックソース選択ビット (WDCS) が "0") と , クロック
モードとしてメインクロックモードまたは PLL クロック
モードが選択されていて , かつ WTC の WDCS ビットが
"1" の場合で , インターバル時間は図 11.2-1 のように異な
ります。
・ウォッチドッグタイマの起動時のデータのみが有効で
す。ウォッチドッグタイマ起動後の書込みデータは無視
されます。
・WT1, WT0 ビットは , 書込み専用です。
bit2
bit1,
bit0
WTE
WT1
WT0
247
第 11 章 ウォッチドッグタイマ
11.3
ウォッチドッグタイマの構成
ウォッチドッグタイマは , 次の 5 種類のブロックで構成されています。
・カウントクロックセレクタ
・ウォッチドッグカウンタ (2 ビットカウンタ )
・ウォッチドッグリセット発生回路
・カウンタクリア制御回路
・ウォッチドッグタイマ制御レジスタ (WDTC)
■ ウォッチドッグタイマのブロックダイヤグラム
図 11.3-1 に , ウォッチドッグタイマのブロックダイヤグラムを示します。
図 11.3-1 ウォッチドッグタイマのブロックダイヤグラム
ウォッチドッグタイマ制御レジスタ(WDTC)
PONR
時計モード開始
タイムベースタイマモード開始
スリープモード開始
ホールド状態開始
ストップモード開始
-
WRST ERST SRST WTE
ウォッチドッグタイマ
WT0
時計タイマ制御レジスタ(WTC)のWDCSビット
クロック選択レジスタ(CKSCR)のSCMビット
2
CLR
と起動
カウンタ
クリア
制御回路
WT1
カウント
クロック
セレクタ
CLR
オーバ
2ビット フロー ウォッチドッグ
リセット
発生回路
カウンタ
内部リセット
発生回路
CLR
クリア
4
4
(タイムベースタイマカウンタ)
HCLKの2分周
× 21 × 22 ・・・ × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 × 216 × 217 × 218
SCLK
× 21 × 22 ・・・ × 28 × 29 × 210 × 211 × 212 × 213 × 214 × 215 × 216 × 217 × 218
HCLK : 発振クロック
SCLK : サブクロック
● カウントクロックセレクタ
ウォッチドッグタイマのカウントクロックを 4 種類のタイムベースタイマ出力と 4 種
類の時計タイマ出力から選択する回路です。これにより , ウォッチドッグリセットの発
生時間が決まります。
● ウォッチドッグカウンタ (2 ビットカウンタ )
タイムベースタイマ出力をカウントクロックとする 2 ビットのアップカウンタです。
● ウォッチドッグリセット発生回路
ウォッチドッグカウンタのオーバフローによってリセット信号を発生します。
● カウンタクリア回路
ウォッチドッグカウンタのクリアとカウンタの動作 / 停止を制御します。
● ウォッチドッグタイマ制御レジスタ (WDTC)
ウォッチドッグタイマの起動 , クリアおよびリセット発生要因の保持を行います。
248
第 11 章 ウォッチドッグタイマ
ウォッチドッグタイマの動作
11.4
ウォッチドッグタイマは , ウォッチドッグカウンタのオーバフローでウォッチドッ
グリセットを発生します。
■ ウォッチドッグタイマの動作
図 11.4-1 に , ウォッチドッグタイマの設定を示します。
図 11.4-1 ウォッチドッグタイマの設定
アドレス
0000A8H
WDTC
bit15...........bit8
bit7
bit6
(TBTC)
PONR
−
bit5
bit4
WRST ERST
bit3
bit2
bit1
bit0
SRST
WTE
0
WT1
WT0
◎
◎
◎:使用ビット
−:未定義ビット
0 :"0" を設定
● ウォッチドッグタイマの起動
• ウォッチドッグタイマ制御レジスタ(WDTC)のウォッチドッグ制御ビット(WTE)に,
リセット後1回目の"0"を書き込むとウォッチドッグタイマは起動します。この場合,
WDTC レジスタのインターバル時間選択ビット (WT1, WT0) でインターバル時間を
同時に指定します。
• ウォッチドッグタイマは起動を開始すると , パワーオン , ウォッチドッグによるリ
セット以外に止める方法はありません。
● ウォッチドッグタイマのクリア
• WTE ビットへの 2 回目以降の "0" の書込みで , ウォッチドッグタイマの 2 ビットカ
ウンタをクリアします。インターバル時間内にカウンタがクリアされない場合 , カ
ウンタがオーバフローし , ウォッチドッグリセットが発生します。
• リセットの発生 , スリープモード , ストップモード , タイムベースタイマモードへの
遷移によって , ウォッチドッグカウンタはクリアされます。
• タイムベースタイマモードおよび時計モードへ遷移したときに , 一度ウォッチドッ
グカウンタをクリアしますが , クリア後ウォッチドッグカウンタは停止しませんの
で注意してください。
• 時計モード使用時 ( サブクロック ) は , ウォッチドッグタイマは使用しないようにし
てください。
● ウォッチドッグタイマのインターバル時間
図 11.4-2 に , ウォッチドッグタイマのクリアのタイミングとインターバル時間の関係
を示します。インターバル時間は , ウォッチドッグタイマをクリアするタイミングに
よって変化し , カウントクロック周期の 3.5 ∼ 4.5 倍の時間を要します。
249
第 11 章 ウォッチドッグタイマ
● リセット要因の確認
リセット後 WDTC レジスタのリセット要因ビット (PONR, WRST, ERST, SRST) を
チェックすることで , リセット要因を知ることができます。
図 11.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
カウント許可
リセット信号d
9×(カウントクロック周期/2)
WTEビットクリア
250
ウォッチドッグリセット発生
第 11 章 ウォッチドッグタイマ
11.5
ウォッチドッグタイマ使用上の注意
ウォッチドッグタイマ使用時の注意点を示します。
■ ウォッチドッグタイマ使用上の注意
● ウォッチドッグタイマの停止
ウォッチドッグタイマは一度起動すると , パワーオン , ウォッチドッグ外部リセットが
発生するまで停止できません。
● インターバル時間
インターバル時間は , タイムベースタイマの桁上り信号をカウントクロックとしてい
るため , タイムベースタイマのクリアによって , ウォッチドッグタイマのインターバル
時間が設定より長くなることがあります。
● インターバル時間の選択
インターバル時間は , ウォッチドッグタイマの起動時に設定が可能です。起動時以外の
書込みデータは無視されます。
● プログラム作成上の注意
メインループの中で , 繰り返しウォッチドッグタイマをクリアするようなプログラム
を作成する場合 , 割込み処理を含めたメインループの処理時間が , ウォッチドッグタイ
マのインターバル時間の最小時間以下となる必要があります。
251
第 11 章 ウォッチドッグタイマ
11.6
ウォッチドッグタイマのプログラム例
ウォッチドッグタイマのプログラム例を示します。
■ ウォッチドッグタイマのプログラム例
● 処理仕様
• メインプログラムのループの中で毎回ウォッチドッグタイマをクリアします。
• メインループは , ウォッチドッグタイマの最小インターバル時間内に 1 周する必要
があります。
● コーディング例
WDTC
EQU
0000A8H
; ウォッチドッグタイマ制御レジスタ
WTE
EQU
WDTC:2
; ウォッチドッグ制御ビット
;---------- メインプログラム --------------------------------------------------CODE
CSEG
START:
;
; スタックポインタ (SP) などは初期化済み
:
; とする
WDG_START:
MOV
WDTC, #00000011B ; ウォッチドッグタイマの起動
; インターバル時間 221 ± 218 サイクルを選択
;---------- メインループ ------------------------------------------------------MAIN:
CLRB
;
:
;
ユーザ処理
;
:
JMP
I:WTE
; ウォッチドッグタイマのクリア
定期的に 2 ビットのクリア
MAIN
; ウォッチドッグタイマのインターバル時間
; より短い時間でループする
CODE
ENDS
;---------- ベクタ設定 --------------------------------------------------------VECT
VECT
CSEG
ABS=0FFH
ORG
0FFDCH
DSL
START
DB
00H
ENDS
END
252
START
; リセットベクタ設定
; シングルチップモードに設定
第 12 章
時計タイマ
MB90800 シリーズの時計タイマの機能と動作につ
いて説明します。
12.1 時計タイマの概要
12.2 時計タイマの構成
12.3 時計タイマ制御レジスタ (WTC)
12.4 時計タイマの動作
253
第 12 章 時計タイマ
12.1
時計タイマの概要
時計タイマは , サブクロックを使用した 15 ビットのタイマです。インターバル割込
みを発生させることができます。また , 設定により , ウォッチドッグタイマのクロッ
クソースとしても使用できます。
■ 時計タイマ機能
時計タイマは , 15 ビットのタイマとインターバルな割込みを制御する回路から構成さ
れています。
時計タイマは , クロック選択レジスタ (CKSCR) の PLL クロック選択ビット (MCS) およ
びサブクロック選択ビット (SCS) と関係なくサブクロックを使用します。
表 12.1-1 に , 時計タイマのインターバル時間を示します。
表 12.1-1 時計タイマのインターバル時間
WTC2
WTC1
WTC0
インターバル時間 *
0
0
0
31.25 ms
0
0
1
62.5 ms
0
1
0
125 ms
0
1
1
250 ms
1
0
0
500 ms
1
0
1
1.000 s
1
1
0
2.000 s
1
1
1
設定禁止
*: サブクロック 32 kHz の 4 分周 (=8 kHz)
254
第 12 章 時計タイマ
12.2
時計タイマの構成
時計タイマは , 次の 4 つのブロックで構成されています。
・インターバルセレクタ
・時計カウンタ
・時計タイマ割込み発生回路
・時計タイマ制御レジスタ (WTC)
■ 時計タイマのブロックダイヤグラム
図 12.2-1 時計タイマのブロックダイヤグラム
時計タイマ制御レジスタ(WTC)
WDCS
SCE
WTIE
WTOF
WTR
WTC2
WTC1
WTC0
クリア
28
29
サブクロック
時計カウンタ
210
211
インターバル
セレクタ
割込み
発生回路
時計タイマ
割込み
212
213
210
213
214
215
214
ウォッチドッグ
タイマへ
● 時計カウンタ
サブクロックをクロックソースとする 15 ビットのアップカウンタです。
● インターバルセレクタ
時計タイマ割込みのインターバルを 7 種類から選択するセレクタです。
● 割込み発生回路
時計タイマのインターバル割込みを発生させます。
● 時計タイマ制御レジスタ (WTC)
時計タイマの動作 , 時計タイマの割込みの制御 , およびウォッチドッグタイマのクロッ
クソース指定します。
255
第 12 章 時計タイマ
12.3
時計タイマ制御レジスタ (WTC)
時計タイマ制御レジスタ (WTC) は , 時計タイマの動作を制御します。また , イン
ターバル割込みの時間を制御します。
■ 時計タイマ制御レジスタ (WTC)
図 12.3-1 タイムベースタイマ制御レジスタ (WTC)
アドレス
bit15
bit8
0000AAH
bit7 bit6
WDCS
SCE
bit5
bit4
WTIE WTOF
R/W R/W R/W R/W
bit3
bit2
WTR
WTC2 WTC1 WTC0
R/W R/W R/W
WTC2 WTC1 WTC0
0
0
0
0
0
1
0
0
1
1
0
1
1
1
0
0
0
1
1
1
1
1
0
1
WTR
0
1
WTIE
0
1
SCE
0
1
WDCS
R/W :リード/ライト可能
:初期値
256
0
1
初期値
bit0
10011000B
R/W
時計タイマインターバル選択ビット
インターバル時間
(サブクロック32kHz時)
31.25ms
62.5ms
125ms
250ms
500ms
1.000s
2.000s
設定禁止
時計カウンタクリアビット
時計タイマのカウンタを全ビット"0"にクリアします。
何もしません。リード時は必ずこのビットが読めます。
時計タイマ割込み要求フラグビット
WTOF
0
1
bit1
割込み要求は発生していません。
割込み要求が発生しています。
時計タイマインターバル割込み許可ビット
割込み禁止
割込み許可
サブクロック発振安定待ち時間終了ビット
発振安定待ち状態です。
発振安定待ち時間が終了しています。
ウォッチドッグタイマクロックソース選択ビット
時計タイマのクロックを選択します。
タイムベースタイマのクロックを選択します。
第 12 章 時計タイマ
表 12.3-1 時計タイマ制御レジスタ (WTC) の各ビットの機能説明
ビット名
機能
WDCS:
ウォッチドッグタイマ
クロックソース選択
ビット
・ウォッチドッグタイマのクロックソースを選択するビットです。
・このビットが "0" のとき , 時計タイマのクロックを選択し , "1" のと
き , タイムベースタイマのクロックを選択します。
・リセットにより "1" に初期化します。
bit6
SCE:
サブクロック発振安定
待ち時間終了ビット
・サブクロックの発振安定待ち時間が終了したことを示すビットで
す。
・このビットが "0" のとき , 発振安定待ち状態であることを示します。
・サブクロックの発振安定待ち時間は , 214 サブクロックサイクル固定
です。
・パワーオンリセットおよびストップ時に "0" に初期化します。
bit5
WTIE:
時計タイマ
インターバル割込み
許可ビット
・時計タイマによるインターバル割込みを許可するビットです。
・このビットが "1" のとき割込みを許可し , "0" のとき割込みを禁止し
ます。
・リセットにより "0" に初期化します。
bit4
WTOF:
時計タイマ割込み要求
フラグビット
・時計タイマの割込み要求が発生していることを示すビットです。
・WTIE ビットが "1" のとき , このビットが "1" になると , 割込み要求
を発生します。
・WTC2 ∼ WTC0 ビットで設定されたインターバルごとに "1" にセッ
トされます。
・"0" の書込み , ストップモードへの遷移 , ハードウェアスタンバイ
モードへの遷移 , およびリセットにより "0" にクリアされます。
・このビットへの "1" の書込みは意味をもちません。
bit3
WTR:
時計カウンタ
クリアビット
・時計タイマのカウンタを全ビット "0" にクリアするビットです。
・このビットに "0" を書き込むことにより , 時計タイマカウンタを "0"
にクリアします。
・このビットへの "1" 書込みは意味をもちません。
・読出し時は , 常に "1" が読み出されます。
bit2
∼
bit0
WTC2, WTC1, WTC0:
時計タイマ
インターバル選択
ビット
bit7
・時計タイマのインターバルを設定するビットです。
・リセットにより "00B" に初期化されます。
・このビットを変更するときは , WTOF ビットも同時にクリアしてく
ださい。
257
第 12 章 時計タイマ
12.4
時計タイマの動作
時計タイマは , ウォッチドッグタイマのクロックソース , サブクロックの発振安定待
ちのためのタイマ , 一定周期で割込みを発生するインターバルタイマの機能があり
ます。
■ 時計カウンタ
時計カウンタはサブクロックをカウントする 15 ビットのカウンタにより構成され , サ
ブクロックが入力されている間 , 常にカウント動作を続けます。
時計カウンタのクリア
時計カウンタのクリアは , パワーオンリセット , ストップモードへの遷移 , および時計
タイマ制御レジスタ (WTC) の時計カウンタクリアビット (WTR) への "0" 書込みにより
行われます。
<注意事項>
時計タイマの出力を使用しているウォッチドッグタイマとインターバル割込みは , 時計カ
ウンタのクリアにより動作に影響を与えます。
■ 時計タイマのインターバル割込み機能
時計カウンタの桁上り信号により一定周期で割込みを発生します。
• インターバル時間の指定
• WTC レジスタの (WTC2, WTC1, WTC0) ビットにより , インターバル時間を指定で
きます。
• 時計タイマ割込みの発生
• WTC2, WTC1, WTC0 ビットで設定されるインターバル時間ごとに時計タイマ割込
み要求フラグビット (WTOF) をセットします。このとき , 時計タイマインターバル
割込み許可ビット (WTIE) が "1" に設定されていて , 割込みが許可されていれば , 時
計タイマ割込みを発生します。
• WTOF ビットのセットは , 最後に時計タイマがクリアされた時間を基準にして行わ
れます。
• ストップモードに遷移すると , 時計タイマは , サブクロックの発振安定待ち時間の
タイマとして使用されるため, WTOFビットはモード遷移と同時にクリアされます。
■ ウォッチドッグタイマのクロックソースの指定機能
WTCレジスタのウォッチドッグタイマクロックソース選択ビット(WDCS)により, ウォッ
チドッグタイマのクロックソースを指定できます。ただし , クロックモードがサブクロッ
クモードの場合は , WDCS ビットによらず , 時計タイマのカウンタ値が使用されます。
■ サブクロックの発振安定待ち時間機能
パワーオンリセット , ストップモードからの復帰時の時計タイマは , サブクロックの発
振安定待ち時間タイマとして機能します。サブクロックの発振安定待ち時間はサブク
ロックの 214 サイクル固定です。
258
第 13 章
16 ビットリロードタイマ
MB90800 シリーズの 16 ビットリロードタイマの
機能と動作について説明します。
13.1 16 ビットリロードタイマの概要
13.2 16 ビットリロードタイマの構成
13.3 16 ビットリロードタイマの端子
13.4 16 ビットリロードタイマのレジスタ
13.5 16 ビットリロードタイマの割込み
13.6 16 ビットリロードタイマの動作説明
13.7 16 ビットリロードタイマ使用上の注意
259
第 13 章 16 ビットリロードタイマ
13.1
16 ビットリロードタイマの概要
MB90800 シリーズは , 16 ビットリロードタイマを 3 チャネル内蔵しており , 以下の
クロックモードと , カウンタ動作モードを設定できます。
クロックモード
・内部クロックモード : 内部クロックに同期してカウントダウンを行うモード
・イベントカウントモード : 外部入力パルスにてカウントダウンを行うモード
カウンタ動作モード
・リロードモード : カウント設定値をリロードしてカウントを繰り返すモード
・ワンショットモード : アンダフローでカウントを停止するモード
■ 16 ビットリロードタイマの動作モード
表 13.1-1 16 ビットリロードタイマの動作モード
クロックモード
内部クロックモード
カウンタ動作モード
リロードモード
ワンショットモード
イベントカウントモード
( 外部クロックモード )
リロードモード
動作モード
ソフトトリガ動作
外部トリガ入力動作
外部ゲート入力動作
ソフトトリガ動作
ワンショットモード
■ 内部クロックモード
タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット
(CSL1, CSL0) に "00B", "01B", "10B"を設定した場合は , 内部クロックモードになります。
内部クロックモードは , 以下の動作モードを設定できます。
● ソフトトリガ動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定した場合に , ソフトウェアトリガビット (TRG) に "1" を設定すると , カウント動
作を開始できます。
● 外部トリガ入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合 , 動作モード設定ビット (MOD2, MOD1, MOD0) にて , あらかじめ
設定しているトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN
端子に入力された場合 , カウント動作を開始します。
● 外部ゲート入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合 , 動作モード設定ビット (MOD2, MOD1, MOD0) にて , あらかじめ
設定しているゲート入力の有効レベル ("L", "H" から設定可能 ) が TIN 端子に入力され
ている間 , カウント動作を行います。
260
第 13 章 16 ビットリロードタイマ
■ イベントカウントモード ( 外部クロックモード )
タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット
(CSL1, CSL0) を "11B" に設定した場合は , イベントカウントモード ( 外部クロック ) に
なります。カウント許可ビット (CNTE) を "1" に設定している場合は , 動作モード設定
ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の有効エッジ(立上り, 立下り,
両エッジから設定可能 ) が TIN 端子に入力された場合 , カウント動作を開始します。一
定周期の外部クロックを入力する場合は , インターバルタイマとしても使用できます。
■ カウンタ動作
● リロードモード
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") で , 16 ビットリロード
レジスタ (TMRLR) の値を 16 ビットダウンカウンタにロードし , カウント動作を行い
ます。また , アンダフローで , 割込み要求を出力しますので , インターバルタイマとし
て使用できます。アンダフローごとに , 反転するトグル波形を TOT 端子から出力でき
ます。
表 13.1-2 16 ビットリロードタイマのインターバル時間
カウントクロック
内部カウントクロック
外部カウントクロック
カウントクロック周期
インターバル時間
21/ φ (0.08 μs)
0.08 μs ∼ 5.24 ms
23/ φ (0.32 μs)
0.32 μs ∼ 20.97 ms
25/ φ (1.28 μs)
1.28 μs ∼ 83.88 ms
23/ φ 以上 (0.32 μs)
0.32 μs 以上
φ : マシンクロック周波数
( ) 内はマシンクロック周波数 25 MHz の場合です。
● ワンショットモード
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") で , カウント動作を停止
します。
<参考>
• 16 ビットリロードタイマ 1/2 は , UART のボーレート作成に使用できます。
• 16 ビットリロードタイマ 1 は , A/D コンバータの起動トリガに使用できます。
261
第 13 章 16 ビットリロードタイマ
■ 16 ビットリロードタイマの割込みと EI2OS
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") で , 割込み要求を出力し
ます。
表 13.1-3 16 ビットリロードタイマの割込みと EI2OS
割込み制御レジスタ
チャネル
EI2OS
レジスタ名
16 ビットリロード
タイマ 0
アドレス
#23(17H)
ICR06
16 ビットリロード
タイマ 1
#24(18H)
16 ビットリロード
タイマ 2
#21(15H)
ICR05
下位
上位
バンク
FFFFA0H
FFFFA1H
FFFFA2H
FFFF9CH
FFFF9DH
FFFF9EH
FFFFA8H
FFFFA9H
FFFFAAH
0000B6H
0000B5H
△ :ICR を共有する割込み要因を使用しない場合に使用可能
262
ベクタテーブルのアドレス
割込み番号
△
○
第 13 章 16 ビットリロードタイマ
13.2
16 ビットリロードタイマの構成
16 ビットリロードタイマ 0 ∼ 2 は , それぞれ以下のブロックで構成されています。
・カウントクロック生成回路
・リロード制御回路
・出力制御回路
・動作制御回路
・16 ビットタイマレジスタ (TMR)
・16 ビットリロードレジスタ (TMRLR)
・タイマコントロールステータスレジスタ (TMCSR)
■ 16 ビットリロードタイマのブロックダイヤグラム
図 13.2-1 16 ビットリロードタイマのブロックダイヤグラム
内部データバス
TMRLR
16ビットリロードレジスタ
リロード信号
TMR
リロード
制御回路
16ビットタイマレジスタ(ダウンカウンタ) UF
カウントクロック生成回路
プリ
3
スケーラ
CLK
ゲート
入力
有効クロック
判定回路
クリア
ウェイト信号
UART*
A/Dコンバータへ
CLK
出力制御回路
内部
クロック
端子
クロック
セレクタ
入力制御
回路
外部クロック
3
2
反転
出力信号
生成回路
端子
EN
セレクト
信号
機能選択
- - - - CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
動作
制御回路
UF CNTE TRG
タイマコントロールステータスレジスタ(TMCSR)
割込み要求信号
*: ch.1/ch.2
263
第 13 章 16 ビットリロードタイマ
● カウントクロック生成回路
マシンクロックまたは外部入力クロックを 16 ビットリロードタイマのカウントクロッ
クとして使用します。
● リロード制御回路
16 ビットダウンカウンタの起動と , アンダフロー ("0000H" → "FFFFH") を検出した場合 ,
16 ビットダウンカウンタへのロード動作を制御します。
● 出力制御回路
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") による TOT 端子出力の
反転制御と , TOT 端子出力の許可 / 禁止を制御します。
● 動作制御回路
16 ビットダウンカウンタの起動 / 停止を制御します。
● 16 ビットタイマレジスタ (TMR)
16 ビットダウンカウンタです。読出しを行った場合は , カウンタの値が読み出せます。
● 16 ビットリロードレジスタ (TMRLR)
16 ビットダウンカウンタへのロード値を設定するレジスタです。16 ビットリロードレ
ジスタの設定値を 16 ビットダウンカウンタにロードし , ダウンカウントを行います。
● タイマコントロールステータスレジスタ (TMCSR)
16ビットリロードタイマの動作モードの設定, カウントクロックの設定, 動作条件の設
定 , カウント動作の許可 / 禁止の設定 , 割込み制御および割込み要求の状態を確認する
機能があります 。
264
第 13 章 16 ビットリロードタイマ
16 ビットリロードタイマの端子
13.3
16 ビットリロードタイマの端子および端子部のブロックダイヤグラムを示します。
■ 16 ビットリロードタイマの端子
16 ビットリロードタイマの端子は , 入出力ポートと兼用になっています。
表 13.3-1 16 ビットリロードタイマの端子
プルアップ
選択
スタンバイ
制御
端子の使用に
必要な設定
端子名
端子機能
入出力形式
P50/TIN0
ポート 5 入出力 /
タイマ入力
CMOS 出力 /SEG 出力 /
CMOSヒステリシス入力
P45/TOT0
ポート 4 入出力 /
タイマ出力
CMOS 出力 /
CMOSヒステリシス入力
タイマ出力許可に設定
(TMCSR0:OUTE = 1)
P51/TIN1
ポート 5 入出力 /
タイマ入力
CMOS 出力 /SEG 出力 /
CMOSヒステリシス入力
入力ポートに設定
(DDR5:bit1 = 0)
P46/TOT1
ポート 4 入出力 /
タイマ出力
CMOS 出力 /
CMOSヒステリシス入力
タイマ出力許可に設定
(TMCSR1:OUTE = 1)
P52/TIN2
ポート 5 入出力 /
タイマ入力
CMOS 出力 /SEG 出力 /
CMOSヒステリシス入力
入力ポートに設定
(DDR5:bit2 = 0)
P47/TOT2
ポート 4 入出力 /
タイマ出力
CMOS 出力 /
CMOSヒステリシス入力
入力ポートに設定
(DDR5:bit0 = 0)
なし
なし
なし
あり
あり
あり
タイマ出力許可に設定
(TMCSR2:OUTE = 1)
■ 16 ビットリロードタイマの端子のブロックダイヤグラム
図 13.3-1 16 ビットリロードタイマの端子のブロックダイヤグラム
リソース入力
内 部 デ ー タ バ ス
PDR読出し
PDR
入出力
判定回路
PDR書込み
DDR
入力バッファ
出力バッファ
ポート
端子
スタンバイ制御(LPMCR:SPL=1)
入出力制御回路
リソース出力
265
第 13 章 16 ビットリロードタイマ
13.4
16 ビットリロードタイマのレジスタ
16 ビットリロードタイマのレジスタ一覧を示します。
■ 16 ビットリロードタイマのレジスタ一覧
図 13.4-1 16 ビットリロードタイマのレジスタ一覧
bit15.................................................bit8
bit7.................................................bit0
TMCSR ( タイマコントロールステータスレジスタ )
TMR/TMRLR (16 ビットタイマレジスタ /16 ビットリロードレジスタ ) *
*:読出し時は 16 ビットタイマレジスタ (TMR) として機能し , 書込み時は 16 ビットリロードレジスタ
(TMRLR) として機能します。
266
第 13 章 16 ビットリロードタイマ
タイマコントロールステータスレジスタ上位
(TMCSR)
13.4.1
タイマコントロールステータスレジスタ (TMCSR) により , 16 ビットリロードタイ
マの動作モードの設定 , カウントクロックの設定を行います。
■ タイマコントロールステータスレジスタ上位 (TMCSR)
図 13.4-2 タイマコントロールステータスレジスタ上位 (TMCSR)
bit
アドレス
ch.0 000051 H
ch.1 000055 H
ch.2 000059 H
15
14
13
12
-
-
-
-
-
-
-
-
11
10
9
8
CSL1 CSL0
MOD2
MOD1
7
*
MOD0
R/W
R/W
R/W
R/W
R/W
初期値
----0000 B
動作モード設定ビット
(内部クロックモード時)
MOD2
MOD1
MOD0
0
0
0
0
0
1
0
1
0
0
1
1
両エッジ
1
X
0
"L"レベル
1
X
1
MOD2
MOD1
MOD0
入力端子機能
R/W
φ
*
:
:
:
:
:
0
0
X
0
1
X
1
0
X
1
1
CSL1
CSL0
0
0
0
1
1
0
―
立上りエッジ
トリガ入力
ゲート入力
立下りエッジ
"H"レベル
動作モード設定ビット
(イベントカウントモード時)
入力端子機能
X
有効エッジ,レベル
トリガ禁止
有効エッジ
―
―
立上りエッジ
トリガ入力
立下りエッジ
両エッジ
カウントクロック選択ビット
機能
カウントクロック
内部クロックモード
イベントカウントモード
1
1
リード/ライト可能
未定義ビット
初期値
マシンクロック, ( )内はマシンクロック25MHz動作時の値です。
MOD0 (bit7) については「13.4.2.タイマコントロールステータスレジスタ下位 (TMCSR)」を
参照してください。
267
第 13 章 16 ビットリロードタイマ
表 13.4-1 タイマコントロールステータスレジスタ上位 (TMCSR) の各ビットの機能説明
ビット名
機能
bit15
∼
bit12
−:
未定義ビット
bit11,
bit10
CSL1, CSL0:
カウント
クロック選択
ビット
bit9
∼
bit7
・動作モードを設定するビットです。
<内部クロックモード時>
・MOD2 ビットは , 入力端子の機能を設定するビットです。
・MOD2 ビットに "0" を設定した場合は , 入力端子はトリガ入力
端子となり , 設定した有効エッジが入力された場合は , 16 ビッ
トリロードレジスタ (TMRLR) の値を 16 ビットダウンカウンタ
にロードし , カウント動作を開始します。MOD1, MOD0 ビット
MOD2, MOD1,
にて , 有効エッジの方向を設定することができます。
MOD0:
・MOD2 ビットに "1" を設定した場合は , 入力端子はゲート入力
動作モード設定
となり , MOD0 ビットで設定した有効レベルが入力されている
ビット
間 , カウント動作を行います。
・MOD1 ビットに設定した値は , 動作に影響しません。
<イベントカウントモード時>
・MOD2 ビットに設定した値は , 動作に影響しません。
・イベントカウントモードを設定した場合 , 入力端子はトリガ入
力となり, MOD1, MOD0ビットで設定した有効エッジが入力さ
れると , カウント動作を開始します。
268
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
・16 ビットリロードタイマのカウントクロックを設定するビッ
トです。
・ "00B ", "01B", "10B" を設定した場合は , 内部クロックモードと
なります。
・"11B" を設定した場合は , イベントカウントモードとなります。
第 13 章 16 ビットリロードタイマ
タイマコントロールステータスレジスタ下位
(TMCSR)
13.4.2
タイマコントロールステータスレジスタ (TMCSR) にて , 16 ビットリロードタイマ
の動作条件の設定 , カウント動作の許可 / 禁止の設定 , 割込み制御および割込み要求
の状態を確認する機能があります。
■ タイマコントロールステータスレジスタ下位 (TMCSR)
図 13.4-3 タイマコントロールステータスレジスタ下位 (TMCSR)
bit
アドレス
ch.0 000050 H
ch.1 000054 H
ch.2 000058 H
7
*
MOD0
6
5
4
3
2
1
0
初期値
OUTE
OUTL
RELD
INTE
UF
CNTE
TRG
00000000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TRG
ソフトウェアトリガビット
0
動作に影響しません
1
データリロード後,カウント動作開始
カウント許可ビット
CNTE
0
カウント停止
1
カウント許可(起動トリガ待ち)
UF
アンダフロー割込み要求フラグビット
ライト時
リード時
0
割込み要求なし
割込み要求をクリア
1
割込み要求あり
動作に影響しません
INTE
アンダフロー割込み要求許可ビット
0
割込み要求出力禁止
1
割込み要求出力許可
RELD
リロード許可ビット
0
ワンショットモード(リロード禁止)
1
リロードモード(リロード許可)
端子出力レベル設定ビット
OUTL
ワンショットモード時
(RELD=0)
リロードモード時
(RELD=1)
0
カウント中"H"の矩形波
カウント開始時"L"のトグル波形
1
カウント中"L"の矩形波
カウント開始時"H"のトグル波形
OUTE
0
端子機能
入出力ポート
タイマ出力許可ビット
各チャネルに対応するレジスタと端子
TMCR
P45,P46,P47
タイマ出力端子
TOT0,TOT1,TOT2
1
R/W :リード/ライト可能
:初期値
* :MOD0(bit7)については「13.4.1 タイマコントロールステータスレジスタ上位(TMCSR)」
を参照してください。
269
第 13 章 16 ビットリロードタイマ
表 13.4-2 タイマコントロールステータスレジスタ下位 (TMCSR) の各ビットの機能説明
ビット名
機能
bit6
OUTE:
・タイマ出力端子への出力を許可するビットです。
タイマ出力許可 ・ "0" を設定した場合は端子は入出力ポートとなり , "1" を設定した場
ビット
合は端子はタイマ出力端子となります。
bit5
・タイマ出力端子への出力レベルを設定するビットです。
・タイマ出力端子の出力波形は , リロードモードを設定した場合はト
OUTL:
グル波形を出力し , ワンショットモードを設定した場合はカウント
端子出力レベル
動作中を示す矩形波を出力します。
設定ビット
・"0" を設定した場合と "1" を設定した場合では , 端子出力レベルが逆
になります。
bit4
RELD:
リロード許可
ビット
・リロード動作を許可するビットです。
・ "1" を設定した場合は , リロードモードとなり , 16 ビットダウンカウン
タのアンダフローで16ビットリロードレジスタに設定した値が, 16ビッ
トダウンカウンタにロードされ , カウント動作を継続します。
・"0" を設定した場合は , ワンショットモードとなり , 16 ビットダウン
カウンタのアンダフローでカウント動作を停止します。
bit3
INTE:
アンダフロー
割込み要求
許可ビット
・割込み要求を許可するビットです。
・ "1" を設定した場合は , アンダフロー割込み要求フラグビット (UF)
に "1" がセットされると , 割込み要求を出力します。
UF:
アンダフロー
割込み要求
フラグビット
・割込み要求のフラグビットです。
・16 ビットダウンカウンタのアンダフローで , "1" がセットされます。
・アンダフロー割込み要求許可ビット (INTE) を "1" に設定している場
合に , "1" がセットされますと , 割込み要求を出力します。
・"0" を設定した場合は , 割込み要求がクリアされます。
・"1" を設定した場合は , 動作に影響しません。
・EI2OS の起動で , "0" にクリアされます。
CNTE:
カウント許可
ビット
・カウント動作を許可するビットです。
・"1" を設定した場合は , 起動トリガ待ち状態となり , ソフトウェアト
リガビット (TRG) に "1" を設定 , または動作モード設定ビット
(MOD2, MOD1, MOD0) で設定しているトリガ入力の有効エッジ ( 立
上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力されると ,
カウント動作を開始します。
・"0" を設定した場合は , カウント動作を停止します。
TRG:
ソフトウェア
トリガビット
・インターバルタイマ機能またはカウンタ機能をソフトウェアで起
動するビットです。
・カウント許可ビット (CNTE) に "1" を設定している場合に , "1" を設
定すると , 16 ビットリロードレジスタに設定した値が 16 ビットダウ
ンカウンタにロードされ , カウント動作を開始します。
・"0" を設定した場合は , 動作に影響しません。
・読出し値は , "0" です。
bit2
bit1
bit0
270
第 13 章 16 ビットリロードタイマ
16 ビットタイマレジスタ (TMR)
13.4.3
16 ビットタイマレジスタ (TMR) は , 16 ビットダウンカウンタのカウント値を読み
出すことができます。
■ 16 ビットタイマレジスタ (TMR)
図 13.4-4 16 ビットタイマレジスタ (TMR)
アドレス
ch.0 00052H
00053H
ch.1 00056H
00057H
ch.2 0005AH
0005BH
bit
15
D15
14
D14
13
D13
12
D12
11
D11
10
D10
9
D9
8
D8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
bit
初期値
XXXXXXXXB
初期値
XXXXXXXXB
R/W:リード / ライト可能
X :不定
16 ビットダウンカウンタです。
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作
モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ
( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力されると , 16 ビットリロー
ドレジスタ (TMRLR) に設定されている値が , 16 ビットダウンカウンタにロードされ ,
ダウンカウントを開始します。カウント停止状態 (TMCSR:CNTE=0) では , 16 ビットタ
イマレジスタ (TMR) の値を保持します。
<注意事項>
・16 ビットタイマレジスタ (TMR) を読み出す場合は , 必ずワード転送命令 (MOVW A,
003AH) を使用してください。
・16 ビットタイマレジスタ (TMR) は , 読出し専用のレジスタで , 16 ビットリロードレジ
スタ (TMRLR) は , 書込み専用のレジスタですが , 同一アドレスに配置されているため ,
16 ビットタイマレジスタに対して値を設定した場合は , 16 ビットリロードレジスタに
値が設定され , 16 ビットタイマレジスタは , 影響を受けません。
271
第 13 章 16 ビットリロードタイマ
16 ビットリロードレジスタ (TMRLR)
13.4.4
16 ビットリロードレジスタ (TMRLR) は , 16 ビットダウンカウンタへのロード値を
設定するレジスタです。16 ビットリロードレジスタに設定された値が , 16 ビットダ
ウンカウンタにロードされ , ダウンカウント動作を行います。
■ 16 ビットリロードレジスタ (TMRLR)
図 13.4-5 16 ビットリロードレジスタ (TMRLR)
アドレス
ch.0 00052H
00053H
ch.1 00056H
00057H
ch.2 0005AH
0005BH
bit
bit
15
D15
14
D14
13
D13
12
D12
11
D11
10
D10
9
D9
8
D8
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
初期値
XXXXXXXXB
R/W :リード / ライト可能
X :不定
16 ビットリロードレジスタ (TMRLR) に値を設定する場合は , 16 ビットリロードタイ
マの動作モードに関係なく , カウント動作を停止 (TMCSR:CNTE=0) させてください。
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作
モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ
( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ
ロードレジスタに設定した値が 16 ビットダウンカウンタにロードされ , ダウンカウン
トを開始します。
16 ビットリロードレジスタ (TMRLR) に設定した値は , リロードモードの場合 , 16 ビッ
トダウンカウンタのアンダフロー("0000H" → "FFFFH") にて , 16 ビットリロードレジス
タの値を 16 ビットダウンカウンタにロードし , ダウンカウントを継続します。また ,
ワンショットモードの場合は , 16 ビットダウンカウンタのアンダフローにて , 16 ビッ
トダウンカウンタは "FFFFH" で停止します。
<注意事項>
・16 ビットリロードレジスタ (TMRLR) へ値を設定する場合は , カウント動作を停止
(TMCSR:CNTE=0) させてください。
・16 ビットリロードレジスタ (TMRLR) への設定は , ワード転送命令 (MOVW 003AH, A)
を使用してください。
・16 ビットリロードレジスタ (TMRLR) は , 書込み専用のレジスタで , 16 ビットタイマレ
ジスタ (TMR) は読出し専用のレジスタですが , 同一アドレスに配置されているため , 書
込み値と読出し値は異なり , INC/DEC 命令などのリードモディファイライト (RMW) 系
命令は使用できません。
272
第 13 章 16 ビットリロードタイマ
13.5
16 ビットリロードタイマの割込み
16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフローで割込み要求
を出力します。拡張インテリジェント I/O サービス (EI2OS) に対応しています。
■ 16 ビットリロードタイマの割込み
表 13.5-1 16 ビットリロードタイマの割込み制御ビットと割込み要因
16ビットリロードタイマ 0 16ビットリロードタイマ1 16ビットリロードタイマ 2
割込み要求フラグビット
TMCSR0:UF
TMCSR1:UF
TMCSR2:UF
割込み要求許可ビット
TMCSR0:INTE
TMCSR1:INTE
TMCSR2:INTE
割込み要因
16 ビットダウンカウンタ
(TMR0) のアンダフロー
16 ビットダウンカウンタ
(TMR1) のアンダフロー
16 ビットダウンカウンタ
(TMR2) のアンダフロー
16 ビットリロードタイマでは , 16 ビットダウンカウンタのアンダフロー ("0000H" →
"FFFFH") で , タイマコントロールステータスレジスタ (TMCSR) のアンダフロー割込み
要求フラグビット (UF) に "1" がセットされます。アンダフロー割込み要求許可ビット
が割込み要求を許可 (TMCSR:INTE=1) している場合に , 割込み要求を出力します。
■ 16 ビットリロードタイマの割込みと EI2OS
表 13.5-2 16 ビットリロードタイマの割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルのアドレス
EI2OS
割込み番号
レジスタ名 アドレス
16 ビットリロード
タイマ 0
#23(17H)
ICR06
16 ビットリロード
タイマ 1
#24(18H)
16 ビットリロード
タイマ 2
#21(15H)
ICR05
下位
上位
バンク
FFFFA0H
FFFFA1H
FFFFA2H
0000B6H
0000B5H
△
FFFF9CH
FFFF9DH
FFFF9EH
FFFFA8H
FFFFA9H
FFFFAAH
○
△ :ICR を共有する割込み要因を使用しない場合に使用可能
■ 16 ビットリロードタイマの EI2OS 機能
16 ビットリロードタイマは , 16 ビットダウンカウンタのアンダフロー ("0000H" →
"FFFFH") で , 拡張インテリジェント I/O サービス (EI2OS) を使用できます。
273
第 13 章 16 ビットリロードタイマ
16 ビットリロードタイマの動作説明
13.6
16 ビットリロードタイマの設定とカウンタの動作状態について説明します。
■ 16 ビットリロードタイマの設定
● 内部クロックモードの設定
インターバルタイマとして動作させるには , 図 13.6-1 のように設定します。
図 13.6-1 内部クロックモードの設定
bit
TMCSR
15
14
13
12
−
−
−
−
11
10
9
8
7
6
5
4
3
CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
"11B" 以外
TMRLR
◎
◎
◎
◎
◎
◎
◎
2
UF
1
0
CNTE TRG
◎
1
◎
1
0
カウンタの初期値 ( リロード値 ) を設定
◎:使用ビット
1:"1" を設定
● イベントカウントモードの設定
イベントカウンタとして動作させるには , 図 13.6-2 のように設定します。
図 13.6-2 イベントカウントモードの設定
bit
TMCSR
15
14
13
12
−
−
−
−
11
1
TMRLR
10
9
8
7
6
5
4
3
CSL1 CSL0 MOD2 MOD1 MOD0 OUTE OUTL RELD INTE
1
◎
◎
◎
◎
◎
◎
◎
2
UF
◎
CNTE TRG
1
◎
カウンタの初期値 ( リロード値 ) を設定
DDR5
△
△
◎ :使用ビット
1 :"1" を設定
△ :使用する端子に対応するビットに "0" を設定
△
■ カウンタの動作状態
16 ビットダウンカウンタの状態は , タイマコントロールステータスレジスタ (TMCSR)
のカウント許可ビット (CNTE) 値と内部信号の起動トリガ待ち信号値 (WAIT) で決まり
ます。STOP 状態 ( 停止状態 ), WAIT 状態 ( 起動トリガ待ち状態 ), および RUN 状態 ( 動
作状態 ) のカウント許可ビット (CNTE) 値と内部信号の起動トリガ待ち信号値 (WAIT)
の関係を図 13.6-3 に示します。
274
第 13 章 16 ビットリロードタイマ
図 13.6-3 カウンタ状態遷移図
STOP状態
CNTE=0,WAIT=1
TIN端子 :入力禁止
TOT端子 :汎用ポート
リセット
カウンタ:停止時の値を保持
リセット直後は不定
CNTE=0
CNTE=0
CNTE=1
TRG=0
WAIT状態
CNTE=1,WAIT=1
TIN端子:トリガ入力のみ有効
TOT端子:初期値出力
CNTE=1
TRG=1
RUN状態
CNTE=1,WAIT=0
TIN端子 :TIN端子として機能
TOT端子 :TOT端子として機能
UF=1
カウンタ :停止時の値を保持
カウンタ:動作
RELD=0
リセット直後ロードするまでは不定 (ワンショットモード) UF=1
RELD=1
TRG=1
(リロードモード)
TRG=1
(ソフトトリガ)
(ソフトトリガ)
LOAD
CNTE=1, WAIT=0
TIN端子から外部トリガ
16ビットリロードレジスタの値を16ビット
ダウンカウンタへロード
ロード終了
:ハードウェアによる状態遷移
:レジスタアクセスによる状態遷移
WAIT :内部信号の起動トリガ待ち信号値
TRG
:タイマコントロールステータスレジスタ(TMCSR)のソフトウェアトリガビット
CNTE :タイマコントロールステータスレジスタ(TMCSR)のカウント許可ビット
UF :タイマコントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット
RELD :タイマコントロールステータスレジスタ(TMCSR)のリロード許可ビット
275
第 13 章 16 ビットリロードタイマ
13.6.1
内部クロックモード ( リロードモード )
内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし ,
アンダフロー ("0000H" → "FFFFH") で割込み要求を出力します。また , タイマ出力
端子からトグル波形を出力できます。
■ 内部クロックモード ( リロードモード ) の動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作
モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ
( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ
ロードレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードさ
れ , ダウンカウントを開始します。カウント許可ビット (CNTE) とソフトウェアトリガ
ビットが同時に "1" へ設定された場合は , カウント動作を許可すると同時にダウンカウ
ントを開始します。
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") にて , 16 ビットリロー
ドレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードされ , ダ
ウンカウントを継続します。16 ビットダウンカウンタのアンダフローにて , タイマコ
ントロールステータスレジスタ(TMCSR)のアンダフロー割込み要求フラグビット(UF)
に "1" がセットされ , アンダフロー割込み要求許可ビット (INTE) を "1" に設定してい
る場合は , CPU へ割込み要求を出力します。
TOT 端子からは , アンダフローごとに反転するトグル波形が出力されます。
● ソフトトリガ動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) が "1" に設定されていると ,
カウント動作を開始します。
図 13.6-4 リロードモード時のカウント動作 ( ソフトトリガ動作 )
カウントクロック
カウンタ
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
T :マシンサイクル(マシンクロックの1周期)
*:トリガ入力からリロードデータロードまで1Tの時間がかかります。
276
-1
0000H
リロード
データ
-1
第 13 章 16 ビットリロードタイマ
● 外部トリガ入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , 動作モード設定ビット (MOD2, MOD1, MOD0) にて設定されて
いるトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に
入力された場合 , カウント動作を開始します。
図 13.6-5 リロードモード時のカウント動作 ( 外部トリガ動作 )
カウントクロック
カウンタ
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
データロード信号
UFビット
CNTEビット
TIN端子
TOT端子
2T~2.5T*
T :マシンサイクル(マシンクロックの1周期)
* :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。
<注意事項>
TIN 端子へ入力するトリガパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上としてくだ
さい。
277
第 13 章 16 ビットリロードタイマ
● 外部ゲート入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , カウン
ト動作を開始します。
動作モード設定ビット(MOD2, MOD1, MOD0)にて設定されているゲート入力の有効レ
ベル("L", "H"から設定可能)がTIN端子に入力されている間, カウント動作を行います。
図 13.6-6 リロードモード時のカウント動作 ( ソフトトリガ , ゲート入力動作 )
カウントクロック
カウンタ
リロードデータ
-1
-1
-1
0000H
リロード
データ
-1
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
TIN端子
TOT端子
T :マシンサイクル(マシンクロックの1周期)
* :トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN 端子へ入力するゲート入力のパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上とし
てください。
278
第 13 章 16 ビットリロードタイマ
13.6.2
内部クロックモード ( ワンショットモード )
内部カウントクロックに同期して , 16 ビットダウンカウンタをダウンカウントし ,
アンダフロー ("0000H" → "FFFFH") で割込み要求を出力します。また , TOT 端子か
らカウント中を示す矩形波を出力できます。
■ 内部クロックモード ( ワンショットモード )
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定 , または動作
モード設定ビット(MOD2, MOD1, MOD0)にて設定されているトリガ入力の有効エッジ
( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に入力された場合 , 16 ビットリ
ロードレジスタ (TMRLR) にて設定されている値が 16 ビットダウンカウンタにロード
され , ダウンカウントを開始します。カウント許可ビット (CNTE) とソフトウェアトリ
ガビット (TMCSR:TRG) へ同時に "1" を設定した場合は , カウント動作を許可すると同
時にダウンカウントを開始します。
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") にて , 16 ビットダウン
カウンタは "FFFFH" の状態で , カウント動作を停止します。
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") にて , タイマコントロー
ルステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグビット (UF) に "1" が
セットされ , アンダフロー割込み要求許可ビット (INTE) に "1" を設定している場合は ,
割込み要求を出力します。
TOT 端子からは , カウント中を示す矩形波が出力できます。
● ソフトトリガ動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , カウン
ト動作を開始します。
279
第 13 章 16 ビットリロードタイマ
図 13.6-7 ワンショットモード時のカウント動作 ( ソフトトリガ動作 )
カウントクロック
リロード
データ
カウンタ
-1
0000H
FFFFH
リロード
データ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル(マシンクロックの1周期)
* :トリガ入力からリロードデータロードまで1Tの時間がかかります。
● 外部トリガ入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合は , 動作モード設定ビット (MOD2, MOD1, MOD0) にて設定されて
いるトリガ入力の有効エッジ ( 立上り , 立下り , 両エッジから設定可能 ) が TIN 端子に
入力された場合 , カウント動作を開始します。
図 13.6-8 ワンショットモード時のカウント動作 ( 外部トリガ動作 )
カウントクロック
カウンタ
リロード
データ
-1
0000H
FFFFH
リロード
データ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TIN端子
2T~2.5T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル(マシンクロックの1周期)
* :外部トリガ入力からリロードデータロードまで,2T~2.5Tの時間がかかります。
<注意事項>
TIN 端子へ入力するトリガパルス幅は , 2/φ ( φ : マシンクロック周波数 ) 以上としてくださ
い。
280
第 13 章 16 ビットリロードタイマ
● 外部ゲート入力動作
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) を "1"
に設定している場合 , ソフトウェアトリガビット (TRG) が "1" に設定されると , カウン
ト動作を開始します。
動作モード設定ビット(MOD2, MOD1, MOD0)で設定しているトリガ入力の有効レベル
("L", "H" から設定可能 ) が TIN 端子に入力されている間 , カウント動作を行います。
図 13.6-9 ワンショットモード時のカウント動作 ( ソフトトリガゲート入力動作 )
内部カウントクロック
リロードデータ
カウンタ
-1
0000H FFFFH
-1
-1
リロードデータ
データロード信号
UFビット
CNTEビット
TRGビット
T*
TIN端子
TOT端子
起動トリガ入力待ち
T :マシンサイクル(マシンクロックの1周期)
* :トリガ入力からリロードデータロードまで,1マシンサイクルの時間がかかります。
<注意事項>
TIN 端子へ入力するゲート入力のパルス幅は , 2/ φ ( φ : マシンクロック周波数 ) 以上とし
てください。
281
第 13 章 16 ビットリロードタイマ
イベントカウントモード
13.6.3
TIN 端子に入力されたパルスの有効エッジを検出するごとに , 16 ビットダウンカウ
ンタをダウンカウントし , アンダフロー ("0000H" → "FFFFH") で割込み要求を出力
します。また , TOT 端子からトグル波形 , 矩形波を出力できます。
■ イベントカウントモード
タイマコントロールステータスレジスタ (TMCSR) のカウント許可ビット (CNTE) が "1"
に設定されている場合は , ソフトウェアトリガビット (TRG) を "1" に設定すると , 16
ビットリロードレジスタ (TMRLR) に設定されている値が , 16 ビットダウンカウンタに
ロードされ , TIN 端子に入力されたパルス ( 外部カウントクロック ) の有効エッジ ( 立
上り , 立下り , 両エッジから設定可能 ) を検出するごとに , ダウンカウントします。カ
ウント許可ビット (CNTE) とソフトウェアトリガビット (TRG) に同時に "1" を設定した
場合 , カウント動作を許可すると同時にダウンカウントを開始します。
● リロードモードの動作
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") によって , 16 ビットリ
ロードレジスタ (TMRLR) に設定されている値が 16 ビットダウンカウンタにロードさ
れ , ダウンカウント動作を継続します。
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") によって , タイマコント
ロールステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグビット (UF) が
"1" にセットされ , アンダフロー割込み要求許可ビット (INTE) が "1" に設定されている
場合は , CPU へ割込み要求を出力します。
TOT 端子からは , アンダフローごとに反転するトグル波形を出力できます。
図 13.6-10 リロードモード時のカウント動作 ( イベントカウントモード )
TIN端子
リロード
データ
カウンタ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
0000H
リロード
データ
-1
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
T :マシンサイクル(マシンクロックの1周期)
* :トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/ φ ( φ : マシンクロック周波数 ) 以
上としてください。
282
第 13 章 16 ビットリロードタイマ
● ワンショットモード時の動作
16 ビットダウンカウンタのアンダフロー ("0000H" → "FFFFH") によって , 16 ビットダ
ウンカウンタの値は , "FFFFH" の状態でカウント動作を停止します。
16 ビットダウンカウンタのアンダフロー("0000H" → "FFFFH") によって , タイマコント
ロールステータスレジスタ (TMCSR) のアンダフロー要求フラグビット (UF) が "1" に
セットされると , 割込み要求許可ビット (INTE) を "1" に設定している場合は , CPU へ
割込み要求を出力します。
TOT 端子からは , カウント中を示す矩形波が出力できます。
図 13.6-11 ワンショットモード時のカウンタ動作 ( イベントカウントモード )
TIN端子
リロード
データ
カウンタ
-1
0000H
FFFFH
リロード
データ
-1
0000H
FFFFH
データロード信号
UFビット
CNTEビット
TRGビット
T*
TOT端子
起動トリガ入力待ち
T :マシンサイクル(マシンクロックの1周期)
* :トリガ入力からリロードデータロードまで1Tの時間がかかります。
<注意事項>
TIN 端子へ入力されるパルスの "H" 幅および "L" 幅は , 4/ φ ( φ : マシンクロック周波数 ) 以
上としてください。
283
第 13 章 16 ビットリロードタイマ
13.7
16 ビットリロードタイマ使用上の注意
16 ビットリロードタイマを使用する場合の注意点を示します。
■ 16 ビットリロードタイマ使用上の注意
● プログラムで設定する場合の注意
• 16 ビットリロードレジスタ (TMRLR) に値を設定する場合は , カウント動作を停止
(TMCSR:CNTE=0) させてください。16 ビットタイマレジスタ (TMR) を読み出す場
合は , 必ずワード転送命令 (MOVW A, dir) を使用してください。
• タイマコントロールステータスレジスタ (TMCSR) のカウントクロック設定ビット
(CSL1, CSL0) を変更する場合は , カウント動作を停止 (TMCSR:CNTE=0) させてくだ
さい。
● 割込みに関連する注意
タイマコントロールステータスレジスタ (TMCSR) のアンダフロー割込み要求フラグ
ビット (UF) が "1" にセットされ , アンダフロー割込み要求許可ビット (INTE) が "1" に
設定されている場合は , 割込み処理から復帰できません。アンダフロー割込み要求フラ
グビット (UF) は , 必ず "0" にクリアしてください。
284
第 14 章
入出力タイマ
入出力タイマの動作について説明します。
14.1 入出力タイマの概要
14.2 入出力タイマのブロックダイヤグラム
14.3 入出力タイマのレジスタ一覧
14.4 入出力タイマの割込み
14.5 入出力タイマの動作説明
285
第 14 章 入出力タイマ
入出力タイマの概要
14.1
入出力タイマは , 16 ビットフリーランタイマ 1 本 , インプットキャプチャ 2 本 , ア
ウトプットコンペア 2 本から構成されています。
■ 構成
● 16 ビットフリーランタイマ ( × 1)
16 ビットフリーランタイマは 16 ビットのアップカウンタ , コントロールレジスタ , 16
ビットコンペアクリアレジスタ , プリスケーラより構成されています。カウンタの出力
値はインプットキャプチャの基本時間 ( ベースタイマ ) として使用されます。
カウンタ動作クロックは 8 種類から選択可能です。
内部クロック 8 種類 ( φ , φ/2, φ/4, φ/8, φ/16, φ/32, φ /64, φ/128)
φ : マシンクロック
割込みはカウンタ値のオーバフロー , コンペアクリアレジスタとのコンペア一致によ
り発生できます ( コンペア一致はモード設定が必要です ) 。
カウンタ値は , リセット , ソフトクリア , コンペアクリアレジスタとのコンペア一致に
より "0000H" に初期化できます。
● インプットキャプチャ ( × 2)
インプットキャプチャは独立した 6 本の外部入力端子と対応したキャプチャレジスタ ,
コントロールレジスタにより構成されています。外部入力端子から入力された信号の
任意エッジを検出することにより 16 ビットフリーランタイマ値をキャプチャレジスタ
に保持し , 同時に割込みを発生できます。
• 外部入力信号の有効エッジ ( 立上りエッジ , 立下りエッジ , 両エッジ ) を選択可能
• 2 本のインプットキャプチャは独立して動作が可能
• 割込みは外部入力信号の有効エッジにより発生が可能
●アウトプットコンペア ( × 2)
アウトプットコンペアは 2 本の 16 ビットアウトプットコンペアレジスタ , コンペア出
力用ラッチ , コントロールレジスタより構成されています。16 ビットフリーランタイ
マ値とアウトプットコンペアレジスタ値が一致したとき出力レベルを反転すると共に
割込みを発生できます。
2 本のアウトプットコンペアレジスタを独立して動作が可能です。各アウトプットコン
ペアレジスタに対応した割込みフラグ割込みはコンペア一致により発生可能です。
286
第 14 章 入出力タイマ
入出力タイマのブロックダイヤグラム
14.2
入出力タイマのブロックダイヤグラムを記載します。
■ ブロックダイヤグラム
図 14.2-1 入出力タイマブロックダイヤグラム
割込み
#18
IVF
IVFE
STOP
MODE
SCLR
CLK2
CLK1
分周器
CLK0
クロック
16ビットフリーランタイマ
16ビット
コンペアクリアレジスタ
MSI2 ~
MSI0
16ビットフリーランタイマ
F2MC-16LX バス
16ビットフリーランタイマ
16ビットフリーランタイマ
割込み
#18
コンペア制御
ICLR
ICRE
TQ
OTE0
TQ
OTE1
CMO
16ビットフリーランタイマ
IOP1
IOP0
IOE1
IOE0
割込み
#25
#26
エッジ検出
キャプチャデータレジスタ0
EG11
EG10
EG01
エッジ検出
キャプチャデータレジスタ1
ICP0
ICP1
ICE0
IC0
EG00
IC1
ICE1
割込み
#25
#26
287
第 14 章 入出力タイマ
14.3
入出力タイマのレジスタ一覧
入出力タイマのレジスタ一覧について説明します。
■ 16 ビットフリーランタイマ部レジスタ一覧
コンペアクリアレジスタ上位
アドレス
00003BH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
CL15
R/W
(X)
CL14
R/W
(X)
CL13
R/W
(X)
CL12
R/W
(X)
CL11
R/W
(X)
CL10
R/W
(X)
CL09
R/W
(X)
CL08
R/W
(X)
CPCLR
←リード / ライト
←初期値
コンペアクリアレジスタ下位
アドレス
00003AH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CL07
R/W
(X)
CL06
R/W
(X)
CL05
R/W
(X)
CL04
R/W
(X)
CL03
R/W
(X)
CL02
R/W
(X)
CL01
R/W
(X)
CL00
R/W
(X)
CPCLR
←リード / ライト
←初期値
タイマデータレジスタ上位
アドレス
00003DH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
TCDT
←リード / ライト
←初期値
タイマデータレジスタ下位
アドレス
00003CH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
TCDT
←リード / ライト
←初期値
タイマコントロールステータスレジスタ上位
アドレス
00003FH
bit15
ECKE
R/W
(0)
bit14
−
−
(−)
bit13
bit12
bit11
bit10
bit9
bit8
−
−
(−)
MSI2
R/W
(0)
MSI1
R/W
(0)
MSI0
R/W
(0)
ICLR
R/W
(0)
ICRE
R/W
(0)
TCCSH
←リード / ライト
←初期値
タイマコントロールステータスレジスタ下位
アドレス
00003EH
288
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
IVF
R/W
(0)
IVFE
R/W
(0)
STOP
R/W
(0)
MODE
R/W
(0)
SCLR
R/W
(0)
CLK2
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
TCCSL
←リード / ライト
←初期値
第 14 章 入出力タイマ
■ インプットキャプチャ部レジスタ一覧
インプットキャプチャ
データレジスタ上位
アドレス:ch.0 000045 H
アドレス:ch.1 000047 H
インプットキャプチャ
データレジスタ下位
アドレス:ch.0 000044 H
アドレス:ch.1 000046 H
インプットキャプチャ
コントロールステータス
レジスタ0/1
アドレス:000048H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
IPCP0,IPCP1
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
IPCP0,IPCP1
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
ICP1
ICP0
ICE1
ICE0
EG11
EG10
EG01
EG00
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
← リード/ライト
←
初期値
ICS01
← リード/ライト
←
初期値
■ アウトプットコンペア部レジスタ一覧
アウトプットコンペアレジスタ上位
アドレス:ch.0 00004B H
アドレス:ch.1 00004D H
アウトプットコンペアレジスタ下位
アドレス:ch.0 00004A H
アドレス:ch.1 00004C H
アウトプットコンペアコントロール
ステータスレジスタ上位
アドレス:ch.1 00004F H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
OCCP0,OCCP1
OP15
OP14
OP13
OP12
OP11
OP10
OP09
OP08
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
OCCP0,OCCP1
OP07
OP06
OP05
OP04
OP03
OP02
OP01
OP00
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit15 bit14 bit13 bit12 bit11 bit10 bit9
← リード/ライト
←
初期値
bit8
OCSH
-
-
-
-
-
-
(-) (-) (-)
アウトプットコンペアコントロール
ステータスレジスタ下位
アドレス:ch.1 00004E H
bit8
bit7
bit6
CMOD
OTE1
OTE0
OTD1
OTD0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
OCSL
IOP1
IOP0
IOE1
IOE0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
-
-
-
-
(-) (-)
CST1
CST0
R/W
(0)
R/W
(0)
← リード/ライト
←
初期値
289
第 14 章 入出力タイマ
14.3.1
16 ビットフリーランタイマのレジスタ詳細説明
16 ビットフリーランタイマのレジスタには , 次の 3 つのレジスタがあります。
・タイマデータレジスタ (TCDT)
・コンペアクリアレジスタ (CPCLR)
・タイマコントロールステータスレジスタ (TCCSL, TCCSH)
■ タイマデータレジスタ (TCDT)
タイマデータレジスタ上位
アドレス
00003DH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
T15
R/W
(0)
T14
R/W
(0)
T13
R/W
(0)
T12
R/W
(0)
T11
R/W
(0)
T10
R/W
(0)
T09
R/W
(0)
T08
R/W
(0)
TCDT
←リード / ライト
←初期値
タイマデータレジスタ下位
アドレス
00003CH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
T07
R/W
(0)
T06
R/W
(0)
T05
R/W
(0)
T04
R/W
(0)
T03
R/W
(0)
T02
R/W
(0)
T01
R/W
(0)
T00
R/W
(0)
TCDT
←リード / ライト
←初期値
16 ビットフリーランタイマのカウント値を読み出すことのできるレジスタです。カウ
ンタ値は , リセット時に "0000H" にクリアされます。このレジスタに書き込むことでタ
イマ値を設定できますが , 必ず停止 (STOP=1) 状態で行ってください。このレジスタは ,
ワードアクセスしてください。16 ビットフリーランタイマの初期化は次の要因で行わ
れます。
• リセットによる初期化
• コントロール・ステータスレジスタのクリア (CLR) による初期化
• コンペアクリアレジスタ値とタイマカウンタ値の一致による初期化 ( モード設定が
必要です )
290
第 14 章 入出力タイマ
■ コンペアクリアレジスタ (CPCLR)
コンペアクリアレジスタ上位
アドレス
00003BH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
CL15
R/W
(X)
CL14
R/W
(X)
CL13
R/W
(X)
CL12
R/W
(X)
CL11
R/W
(X)
CL10
R/W
(X)
CL09
R/W
(X)
CL08
R/W
(X)
CPCLR
←リード / ライト
←初期値
コンペアクリアレジスタ下位
アドレス
00003AH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
CL07
R/W
(X)
CL06
R/W
(X)
CL05
R/W
(X)
CL04
R/W
(X)
CL03
R/W
(X)
CL02
R/W
(X)
CL01
R/W
(X)
CL00
R/W
(X)
CPCLR
←リード / ライト
←初期値
16ビットフリーランタイマと比較する16ビット長のアウトプットコンペアレジスタで
す。レジスタ値は初期値不定ですので , 動作許可する場合は値を設定してから動作を許
可してください。レジスタはワードアクセスしてください。タイマコントロールステー
タスレジスタ (TCCS) の MODE ビットに "1" を設定している場合は , 本レジスタ値と
16 ビットフリーランタイマ値が一致したとき, 16 ビットフリーランタイマ値を"0000H"
にクリアします。また , 本レジスタ値と 16 ビットフリーランタイマ値が一致したとき ,
コンペアクリア割込みフラグをセットします。コンペア割込みフラグが "1" のとき割
込み動作を許可している場合は , CPU に対して割込み要求を行います。
■ タイマコントロールステータスレジスタ (TCCSH, TCCSL)
タイマコントロールステータスレジスタ上位
アドレス
00003FH
bit15
bit14
bit13
bit12
bit11
bit10
bit9
bit8
ECKE
R/W
(0)
−
−
(−)
−
−
(−)
MSI2
R/W
(0)
MSI1
R/W
(0)
MSI0
R/W
(0)
ICLR
R/W
(0)
ICRE
R/W
(0)
TCCSH
←リード / ライト
←初期値
タイマコントロールステータスレジスタ下位
アドレス
00003EH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
IVF
R/W
(0)
IVFE
R/W
(0)
STOP
R/W
(0)
MODE
R/W
(0)
SCLR
R/W
(0)
CLK2
R/W
(0)
CLK1
R/W
(0)
CLK0
R/W
(0)
TCCSL
←リード / ライト
←初期値
【bit15】:ECKE
16 ビットフリーランタイマのカウントクロックソースを内部か外部かを選択する
ビットです。ECKE ビットに書込み後すぐにクロックは変更されますのでアウト
プットコンペア , インプットキャプチャが停止状態で変更してください。
ECKE
フラグの意味
0
内部クロックソースを選択 ( 初期値 )
1
外部端子 (P74) よりクロック入力
291
第 14 章 入出力タイマ
<注意事項>
内部クロックを選択した場合は , bit2 ∼ bit0(CLK2 ∼ CLK0) にカウントクロックの設定を
行ってください。このカウントクロックがベースクロックとなります。また , P74 からク
ロックを入力する場合は , DDR5:bit6 = 0 に設定してください。
【bit14, bit13】: −
未定義ビットです ( リードした場合は不定値 , ライトした場合は動作に影響しませ
ん)。
【bit12 ∼ bit10】: MSI2 ∼ MSI0
コンペアクリア割込みをマスクする回数を設定するビットです。3 ビットのリロー
ドカウンタで構成され , カウンタの値が "000B" になるたびにカウント値をリロード
します。また , レジスタ書込み時にもカウンタ値をロードします。マスク回数 = 設
定回数となります ( 例 :2 回マスクし 3 回目で割込み処理をする場合 , 設定値 "010B")。
ただし , "000B" を設定すると割込み要因のマスクは行われません。
【bit9】:ICLR
コンペアクリアの割込み要求フラグです。コンペアクリアレジスタ値と 16 ビット
フリーランタイマ値がコンペア一致した場合に ICLR ビットは "1" にセットされま
す。割込み要求許可ビット (bit8:ICRE) がセットされていると割込みが発生します。
ICLR ビットは "0" 書込みによりクリアされます。"1" 書込みは意味を持ちません。
リードモディファイライト (RMW) 系命令では , 常に "1" が読み出せます。
ICLR
フラグの意味
0
割込み要求なし ( 初期値 )
1
割込み要求あり
<注意事項>
"1" を書き込んだ後 , 次のカウントクロックまでにこのビットへの "0" 書込みを行うと , カ
ウンタ値の初期化は行われません。
【bit8】:ICRE
コンペアクリアの割込み許可ビットです。ICRE ビットが "1" の場合 , 割込みフラグ
(bit9:ICLR) が "1" にセットされると割込みが発生します。
ICRE
292
フラグの意味
0
割込み禁止 ( 初期値 )
1
割込み許可
第 14 章 入出力タイマ
【bit7】:IVF
16 ビットフリーランタイマの割込み要求フラグです。16 ビットフリーランタイマ
がオーバフローを起こした場合に IVF ビットは "1" にセットされます。割込み要求
許可ビット (bit6:IVFE) がセットされていると割込みが発生します。IVF ビットは
"1" 書込みによりクリアされます。"1" 書込みは意味を持ちません。リードモディ
ファイライト (RMW) 系命令では , 常に "1" が読めます。
IVF
フラグの意味
0
割込み要求なし ( 初期値 )
1
割込み要求あり
【bit6】:IVFE
16 ビットフリーランタイマの割込み許可ビットです。IVFE ビットが "1" の場合 , 割
込みフラグ (bit7:IVF) が "1" にセットされると割込みが発生します。
IVFE
フラグの意味
0
割込み禁止 ( 初期値 )
1
割込み許可
【bit5】:STOP
16 ビットフリーランタイマのカウントを停止するためのビットです。"1" 書込み時
にタイマのカウントが停止します。"0" 書込み時にタイマのカウントを開始します。
STOP
フラグの意味
0
カウント許可 ( 動作 ) ( 初期値 )
1
カウント禁止 ( 停止 )
<注意事項>
16 ビットフリーランタイマが停止すると , アウトプットコンペア動作も停止します。
【bit4】:MODE
16 ビットフリーランタイマの初期化条件を設定します。"0" の場合は , リセットと
クリアビット (bit3:SCLR) でカウンタ値を初期化可能です。"1" の場合は , リセット
とクリアビット (bit3:SCLR) のほかにコンペアクリアレジスタの値との一致により
カウンタ値を初期化できます。
MODE
フラグの意味
0
リセット , クリアビットによる初期化 ( 初期値 )
1
リセット , クリアビット , コンペアクリアレジスタによる初期化
293
第 14 章 入出力タイマ
<注意事項>
カウンタ値の初期化はカウント値の変化点で行われます。
【bit3】: SCLR
動作中の 16 ビットフリーランタイマ値を "0000H" に初期化するためのビットです。
"1" 書込み時にカウンタを "0000H" に初期化します。"0" を書き込んでも意味を持ち
ません。読出し値は , 常に "0" です。カウンタ値の初期化は , カウント値の変化点で
行われます。
SCLR
フラグの意味
0
意味を持ちません ( 初期値 )
1
カウンタ値を "0000H" に初期化
<注意事項>
タイマ停止中に初期化する場合は , データレジスタに "0000H" を書き込んでください。
【bit2 ∼ bit0】: CLK2 ∼ CLK0
16 ビットフリーランタイマのカウントクロックを選択するビットです。CLK ビッ
トに書込み後すぐにクロックは変更されますのでアウトプットコンペア , インプッ
トキャプチャが停止状態で変更してください。
CLK2
CLK1
CLK0
カウント
クロック
φ =25 MHz
φ =16 MHz
φ = 8 MHz
φ = 4 MHz
φ = 1 MHz
0
0
0
φ
40 ns
62.5 ns
125 ns
0.25 μs
1 μs
0
0
1
φ / 2
80 ns
125 ns
0.25 μs
0.5 μs
2 μs
0
1
0
φ/ 4
160 ns
0.25 μs
0.5 μs
1 μs
4 μs
0
1
1
φ/ 8
320 ns
0.5 μs
1 μs
2 μs
8 μs
1
0
0
φ / 16
0.64 μs
1 μs
2 μs
4 μs
16 μs
1
0
1
φ / 32
1.28 μs
2 μs
4 μs
8 μs
32 μs
1
1
0
φ / 64
2.56 μs
4 μs
8 μs
16 μs
64 μs
1
1
1
φ /128
5.12 μs
8 μs
16 μs
32 μs
128 μs
φ =マシンクロック
294
第 14 章 入出力タイマ
14.3.2
インプットキャプチャのレジスタ詳細説明
インプットキャプチャデータレジスタには次の 2 つのレジスタがあります。
・インプットキャプチャデータレジスタ (IPCP0, IPCP1)
・インプットキャプチャコントロールステータスレジスタ (ICS01)
■ インプットキャプチャデータレジスタ (IPCP0, IPCP1)
IPCP レジスタは , 対応した外部端子入力波形の有効エッジを検出した場合 , 16 ビット
フリーランタイマ値を保持するレジスタです ( ワードアクセスしてください。書込み
はできません )。
インプットキャプチャ
データレジスタ上位
アドレス:ch.0 000045 H
アドレス:ch.1 000047 H
インプットキャプチャ
データレジスタ下位
アドレス:ch.0 000044 H
アドレス:ch.1 000046 H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
IPCP0,IPCP1
CP15
CP14
CP13
CP12
CP11
CP10
CP09
CP08
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
IPCP0,IPCP1
CP07
CP06
CP05
CP04
CP03
CP02
CP01
CP00
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
R
(X)
← リード/ライト
←
初期値
■ インプットキャプチャコントロールステータスレジスタ (ICS01)
インプットキャプチャコントロールステータスレジスタ 0/1
アドレス
000048H
bit7
bit6
bit5
bit4
bit3
bit2
bit1
ICP1
R/W
(0)
ICP0
R/W
(0)
ICE1
R/W
(0)
ICE0
R/W
(0)
EG11
R/W
(0)
EG10
R/W
(0)
EG01
R/W
(0)
bit0
EG00
ICS01
R/W ←リード / ライト
(0)
←初期値
295
第 14 章 入出力タイマ
【bit7, bit6】: ICP1, ICP0
インプットキャプチャ割込みフラグです。外部入力端子の有効エッジを検出すると
ICP1, ICP0 ビットを "1" にセットします。割込み許可ビット (ICE1, ICE0) がセット
されていると有効エッジを検出することにより割込みを発生できます。
ICP1, ICP0 ビットは , "0" 書込みによりクリアされます。"1" 書込みは意味を持ちま
せん。リードモディファイライト (RMW) 系命令では "1" が読み出せます。
ICP1,ICP0
フラグの意味
0
有効エッジ検出なし ( 初期値 )
1
有効エッジ検出あり
ICPn:n の番号がインプットキャプチャのチャネル番号に対応します。
【bit5, bit4】: ICE1, ICE0
インプットキャプチャ割込み許可ビットです。ICE ビットが "1" の場合 , 割込みフ
ラグ (ICP1, ICP0) が "1" にセットされるとインプットキャプチャ割込みが発生しま
す。
ICE1,ICE0
フラグの意味
0
割込み禁止 ( 初期値 )
1
割込み許可
ICEn:n の番号がインプットキャプチャのチャネル番号に対応します。
【bit3 ∼ bit0】: EG11, EG10, EG01, EG00
外部入力の有効エッジ極性を選択するビットです。インプットキャプチャ動作許可
も兼用しています。
EGn1
EGn0
0
0
エッジ検出なし ( 停止状態 ) ( 初期値 )
0
1
立上りエッジ検出 ↑
1
0
立下りエッジ検出 ↓
1
1
両エッジ検出 ↑ & ↓
エッジ検出極性
EGn1/EGn0:n の番号がインプットキャプチャのチャネル番号に対応します。
296
第 14 章 入出力タイマ
アウトプットコンペアのレジスタ詳細説明
14.3.3
アウトプットコンペアのレジスタには , 次の 2 つのレジスタがあります。
・アウトプットコンペアレジスタ (OCCP0, OCCP1)
・アウトプットコンペアコントロールステータスレジスタ (OCSL, OCSH)
■ アウトプットコンペアレジスタ (OCCP0, OCCP1)
アウトプット
コンペアレジスタ上位
アドレス:ch.0 00004B H
アドレス:ch.1 00004D H
アウトプット
コンペアレジスタ下位
アドレス:ch.0 00004A H
アドレス:ch.1 00004C H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
OCCP0/OCCP1
OP15
OP14
OP13
OP12
OP11
OP10
OP09
OP08
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
OCCP0/OCCP1
OP07
OP06
OP05
OP04
OP03
OP02
OP01
OP00
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
R/W
(X)
← リード/ライト
←
初期値
16ビットフリーランタイマと比較する16ビット長のアウトプットコンペアレジスタで
す。レジスタ値は , 初期値不定ですので設定してから起動を許可してください。レジス
タはワードアクセスしてください。レジスタ値と 16 ビットフリーランタイマ値が一致
したとき , コンペア信号が発生してアウトプットコンペア割込みフラグをセットしま
す。
<注意事項>
アウトプットコンペアレジスタを書き換える場合はコンペア割込みのルーチン内で行う
か , コンペアを禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにして
ください。
■ アウトプットコンペアコントロールステータスレジスタ (OCSL, OCSH)
bit15 bit14 bit13 bit12 bit11 bit10 bit9
アウトプット
コンペアコントロール
ステータスレジスタ上位
アドレス: 00004FH
OCSH
-
-
-
CMOD
OTE1
OTE0
OTD1
OTD0
-
(-)
-
(-)
-
(-)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
bit7
アウトプット
コンペアコントロール
ステータスレジスタ下位
アドレス: 00004E H
bit8
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
OCSL
IOP1
IOP0
IOE1
IOE0
-
-
CST1
CST0
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
-
(-)
-
(-)
R/W
(0)
R/W
(0)
← リード/ライト
←
初期値
297
第 14 章 入出力タイマ
【bit15 ∼ bit13】: −
未定義ビットです ( リードした場合は不定値 , ライトした場合は動作に影響しませ
ん)。
【bit12】:CMOD
端子出力を許可した場合 (OTE1=0 または OTE0=1) のコンペア一致における端子出
力レベル反転動作モードを切り換えます。
CMOD=0 のとき ( 初期値 ) はアウトプットコンペアレジスタに対応した端子の出力
レベルを反転します。
• OUT0: アウトプットコンペアレジスタ 0 の一致によりレベルを反転します。
• OUT1: アウトプットコンペアレジスタ 1 の一致によりレベルを反転します。
CMOD=1 のときアウトプットコンペアレジスタ 0 は , CMOD=0 と同じく出力レベル
を反転しますが , アウトプットコンペアレジスタ 1 に対応した端子 (OUT1) の出力レ
ベルは , アウトプットコンペアレジスタ 0 の一致とアウトプットコンペアレジスタ 1
の一致の両方で出力レベルを反転します。アウトプットコンペアレジスタ 0 と 1 が同
じ値のときは , アウトプットコンペアレジスタ 1 本のときと同じ動作をします。
• OUT0: アウトプットコンペアレジスタ 0 の一致によりレベルを反転します。
• OUT1: アウトプットコンペアレジスタ 0 と 1 の一致によりレベルを反転します。
【bit11, bit10】:OTE1, OTE0
アウトプットコンペアの端子出力を許可するビットです。
OTE1,OTE0
フラグの意味
0
汎用ポートとして動作します ( 初期値 )
1
アウトプットコンペア端子出力になります
OTE1: アウトプットコンペア 1 に対応
OTE0: アウトプットコンペア 0 に対応
【bit9, bit8】:OTD1, OTD0
アウトプットコンペアステータスレジスタの端子出力を許可した場合の端子出力
レベルを変更するときに使用します。コンペア端子出力の初期値は "0" となります。
書込み時はコンペア動作を停止してから行ってください。読出し時は , アウトプッ
トコンペア端子出力値が読み出せます。
OTD1,OTD0
フラグの意味
0
コンペア端子出力を "0" にします ( 初期値 )
1
コンペア端子出力を "1" にします
OTD1: アウトプットコンペア 1 に対応
OTD0: アウトプットコンペア 0 に対応
298
第 14 章 入出力タイマ
【bit7, bit6】:IOP1, IOP0
アウトプットコンペアの割込みフラグです。アウトプットコンペアレジスタと 16
ビットフリーランタイマ値が一致した場合に"1"にセットされます。割込み要求ビッ
ト (IOE1, IOE0) が許可されているときに , IOP1, IOP0 ビットが "1" にセットされる
とアウトプットコンペア割込みが発生します。IOP1, IOP0 ビットは "0" 書込みによ
りクリアされ "1" 書込みでは意味を持ちません。リードモディファイライト (RMW)
系命令では "1" が読み出せます。
IOP1,IOP0
フラグの意味
0
アウトプットコンペア一致なし ( 初期値 )
1
アウトプットコンペア一致あり
IOP1:アウトプットコンペア 1 に対応
IOP0:アウトプットコンペア 0 に対応
【bit5, bit4】: IOE1, IOE0
アウトプットコンペアの割込みを許可するビットです。IOE1, IOE0 ビットが "1" の
とき , 割込みフラグ (IOP1, IOP0) が "1" にセットされるとアウトプットコンペア割
込みが発生します。
IOE1,IOE0
フラグの意味
0
アウトプットコンペア割込み禁止 ( 初期値 )
1
アウトプットコンペア割込み許可
IOE1:アウトプットコンペア 1 に対応
IOE0:アウトプットコンペア 0 に対応
【bit3, bit2】: −
未定義ビットです(リードした場合は不定値, ライトした場合は動作に影響しません)。
【bit1, bit0】: CST1, CST0
16 ビットフリーランタイマとの一致動作を許可するビットです。コンペア動作を許
可する前に必ずアウトプットコンペアレジスタ値およびアウトプットデータレジ
スタ値を設定してください。
CST1,CST0
フラグの意味
0
コンペア動作禁止 ( 初期値 )
1
コンペア動作許可
CST1: アウトプットコンペア 1 に対応
CST0: アウトプットコンペア 0 に対応
299
第 14 章 入出力タイマ
<注意事項>
アウトプットコンペアは , 16 ビットフリーランタイマと同期させているため , 16 ビット
フリーランタイマを停止させるとコンペア動作も停止します。
300
第 14 章 入出力タイマ
14.4
入出力タイマの割込み
次の入出力タイマの割込みについて説明します。
・16 ビットフリーランタイマの割込み
・インプットキャプチャの割込み
・アウトプットコンペアの割込み
■ 入出力タイマの割込み
● 16 ビットフリーランタイマの割込み
16 ビットフリーランタイマは , 16 ビットフリーランタイマがクリアまたはオーバフ
ローを起こすことで割込み要求を発生させることができます。
● インプットキャプチャの割込み
インプットキャプチャは , 外部入力端子の有効エッジを検出することで割込み要求を
発生させることができます。また , 拡張インテリジェント I/O サービス (EI2OS) にも対
応しています。
● アウトプットコンペアの割込み
アウトプットコンペアは , アウトプットコンペアレジスタ値と 16 ビットフリーランタ
イマが一致することで割込み要求を発生させることができます。また , 拡張インテリ
ジェント I/O サービス (EI2OS) にも対応しています。
301
第 14 章 入出力タイマ
14.4.1
16 ビットフリーランタイマの割込み
16 ビットフリーランタイマは , 16 ビットフリーランタイマがクリアまたはオーバフ
ローを起こすことで割込み要求を発生させることができます。
■ 16 ビットフリーランタイマの割込み
16 ビットフリーランタイマの割込み制御ビットと割込み要因は , 表 14.4-1 のように
なっています。
表 14.4-1 16 ビットフリーランタイマの割込み制御ビットと割込み要因
割込み要因
割込みフラグビット
割込み許可ビット
割込みフラグのクリア
タイマコントロールステータスレジスタ上位 (TCCSH)
16 ビット
フリーランタイマ
クリア
コンペアクリア
割込み要求フラグ
ビット
(ICLR)
コンペアクリア
割込み許可ビット
(ICRE)
・コンペアクリア割込み
要求フラグビット
(ICLR) への "0" 書込み
・リセット
タイマコントロールステータスレジスタ下位 (TCCSL)
16 ビット
フリーランタイマ
オーバフロー
16 ビット
フリーランタイマ
割込み要求フラグ
ビット
(IVF)
16 ビット
フリーランタイマ
割込み許可ビット
(IVFE)
・16 ビットフリーランタ
イマ割込み要求フラグ
ビット (IVF) への "0" 書
込み
・リセット
16 ビットフリーランタイマでは , 表 14.4-1 の割込み要因で割込みフラグビットが "1"
にセットされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込み
コントローラに割込み要求を出力します。
■ 16 ビットフリーランタイマの割込みと EI2OS
表 14.4-2 に , 16 ビットフリーランタイマの割込みと EI2OS を示します。
表 14.4-2 16 ビットフリーランタイマの割込みと EI2OS
チャネル
割込み
番号
割込み制御レジスタ
EI2OS
レジスタ名
アドレス
下位
上位
バンク
ICR03
0000B3H
FFFFB4H
FFFFB5H
FFFFB6H
フリーランタイマ
( オーバフロー )
#18
フリーランタイマ
( クリア )
○:使用可能
302
ベクタテーブルのアドレス
○
第 14 章 入出力タイマ
14.4.2
インプットキャプチャの割込み
インプットキャプチャは , 外部入力端子の有効エッジを検出することで割込み要求
を発生させることができます。また , 拡張インテリジェント I/O サービス (EI2OS) に
も対応しています。
■ インプットキャプチャの割込み
インプットキャプチャの割込み制御ビットと割込み要因は , 表 14.4-3 のようになって
います。
表 14.4-3 インプットキャプチャの割込み制御ビットと割込み要因
割込み要因
割込みフラグビット
割込み許可ビット
割込みフラグのクリア
インプットキャプチャコントロールステータスレジスタ (ICS01)
外部入力端子の
有効エッジ
ICP0
ICE0
ICP1
ICE1
・ICP0, ICP1 ビットへの "0"
書込み
・リセット
インプットキャプチャでは , 表 14.4-3 の割込み要因で割込みフラグビットが "1" にセッ
トされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込みコント
ローラに割込み要求を出力します。
■ インプットキャプチャの割込みと EI2OS
表 14.4-4 に , インプットキャプチャの割込みと EI2OS を示します。
表 14.4-4 インプットキャプチャの割込みと EI2OS
割込み制御レジスタ
チャネル
EI2OS
レジスタ名
インプット
キャプチャ 0
アドレス
#25
ICR07
インプット
キャプチャ 1
ベクタテーブルのアドレス
割込み番号
下位
上位
バンク
FFFF98H
FFFF99H
FFFF9AH
△
FFFF94H
FFFF95H
FFFF96H
△
0000B7H
#26
△:割込みベクタを共有する割込み要因を使用しない場合に使用可能
■ インプットキャプチャの EI2OS 機能
インプットキャプチャは EI2OS 対応の回路を持っています。このため , 外部入力端子
の有効エッジで EI2OS を起動させることができます。
303
第 14 章 入出力タイマ
14.4.3
アウトプットコンペアの割込み
アウトプットコンペアは , アウトプットコンペアレジスタ値と 16 ビットフリーラン
タイマ値が一致することで割込み要求を発生させることができます。また , 拡張イン
テリジェント I/O サービス (EI2OS) にも対応しています。
■ アウトプットコンペアの割込み
アウトプットコンペアの割込み制御ビットと割込み要因は , 表 14.4-5 のようになって
います。
表 14.4-5 アウトプットコンペアの割込み制御ビットと割込み要因
アウトプットコンペアコントロールステータスレジスタ下位 (OCSL)
割込み要因
アウトプットコンペア
レジスタ値と 16 ビット
フリーランタイマ値の一致
割込みフラグ ビット
割込み許可ビット
IOP0
IOE0
IOP1
IOE1
割込みフラグのクリア
・IOP0, IOP1 ビットへの
"0" 書込み
・リセット
アウトプットコンペアでは , 表 14.4-5 の割込み要因で割込みフラグビットが "1" にセッ
トされます。このとき , 割込み許可ビットが "1" にセットされていると , 割込みコント
ローラに割込み要求を出力します。
■ アウトプットコンペアの割込みと EI2OS
表 14.4-6 に , アウトプットコンペアの割込みと EI2OS を示します。
表 14.4-6 アウトプットコンペアの割込みと EI2OS
割込み制御レジスタ
チャネル
アウトプット
コンペア 0, 1
ベクタテーブルのアドレス
EI2OS
割込み番号
#29
レジスタ名
アドレス
下位
上位
バンク
ICR09
0000B9H
FFFF88H
FFFF89H
FFFF8AH
○
○:使用可能
■ アウトプットコンペアの EI2OS 機能
アウトプットコンペアは EI2OS 対応の回路を持っています。このため , アウトプット
コンペアレジスタ値と 16 ビットフリーランタイマ値の一致で EI2OS を起動させること
ができます。
304
第 14 章 入出力タイマ
14.5
入出力タイマの動作説明
入出力タイマの動作について説明します。
■ 動作説明
● 16 ビットフリーランタイマ
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウントを
開始します。このカウンタ値が , アウトプットコンペアとインプットキャプチャの基準
時間となります。
● インプットキャプチャ
インプットキャプチャは, 設定された有効エッジを検出すると, 16ビットフリーランタ
イマの値をキャプチャレジスタに取り込んで割込みを発生できます。
● アウトプットコンペア
アウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビットフ
リーランタイマ値との値を比較して , 一致したら割込みフラグをセットするとともに ,
割込みを発生できます。
305
第 14 章 入出力タイマ
16 ビットフリーランタイマ部
14.5.1
16 ビットフリーランタイマは , リセット解除後にカウンタ値 "0000H" よりカウント
を開始します。このカウンタ値が , アウトプットコンペアとインプットキャプチャ
の基準時間となります。
■ 16 ビットフリーランタイマの動作説明
カウンタ値は , 次の条件でクリアされます。
• オーバフロー発生時
• コンペアクリアレジスタ値とのコンペア一致時 ( モード設定が必要 )
• 動作中に TCCS レジスタの SCLR ビットへの "1" 書込み
• タイマ停止中の TCDT への "0000H" 書込み
割込みは , オーバフローが発生したとき , コンペアクリアレジスタ値とフリーランタイ
マがコンペア一致したときに発生します ( コンペア一致割込みは , モード設定が必要で
す)。
図 14.5-1 オーバフローによるカウンタクリア
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
割込み
図 14.5-2 コンペアクリアレジスタ値とコンペア一致した場合のカウンタクリア
カウンタ値
FFFFH
BFFFH
一致
一致
7FFFH
3FFFH
0000H
時間
リセット
アウトプットコンペア
レジスタ値
割込み
306
BFFFH
第 14 章 入出力タイマ
● 16 ビットフリーランタイマのクリアタイミング
カウンタのクリアは , リセット , ソフトウェア , コンペアクリアレジスタとの一致で行
われます。リセットとソフトウェアでのカウンタクリアは , クリア発生とともに行われ
ますが , コンペアクリアレジスタとの一致によるカウンタクリアはカウントタイミン
グに同期して行われます。
図 14.5-3 フリーランタイマのクリアタイミング
コンペアクリアレジスタ値
N
コンペア一致
N
カウンタ値
0000H
● 16 ビットフリーランタイマのカウントタイミング
16 ビットフリーランタイマは , 入力されたクロック ( 内部または外部クロック ) により
カウントアップされます。外部クロック選択時は , 立上りエッジ↑でカウントされま
す。
図 14.5-4 16 ビットフリーランタイマのカウントタイミング
外部クロック入力
カウントクロック
カウンタ値
N
N+1
307
第 14 章 入出力タイマ
14.5.2
インプットキャプチャ
インプットキャプチャは , 設定された有効エッジを検出すると , 16 ビットフリーラ
ンタイマの値をキャプチャレジスタに取り込んで割込みを発生できます。
■ インプットキャプチャの動作
図 14.5-5 インプットキャプチャの取込みタイミング例
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
時間
リセット
IC0
IC1
IC例
不定
データレジスタ0
データレジスタ1
不定
データレジスタ例
不定
3FFFH
BFFFH
BFFFH
7FFFH
キャプチャ0割込み
キャプチャ1割込み
キャプチャ例割込み
再度有効エッジにより割込み
キャプチャ 0=立上りエッジ
キャプチャ 1=立下りエッジ
キャプチャ例=両エッジ(例として)
ソフトウェアにより割込み
● インプットキャプチャの入力タイミング
図 14.5-6 入力信号の対するキャプチャタイミング
カウンタ値
インプットキャプチャ
入力
N
N+1
有効エッジ
キャプチャ信号
キャプチャレジスタ値
割込み
308
N+1
第 14 章 入出力タイマ
アウトプットコンペア
14.5.3
アウトプットコンペアは , 設定されたアウトプットコンペアレジスタ値と 16 ビット
フリーランタイマ値との値を比較して一致したら割込みフラグをセットするととも
に , 割込みを発生できます。
■ アウトプットコンペアの動作説明
図 14.5-7 アウトプットコンペアレジスタ 0, 1 を使用したときの動作波形例 ( 出力の初期値は "0")
カウンタ値
FFFFH
BFFFH
7FFFH
3FFFH
0000H
リセット
アウトプットコンペア
レジスタ0値
アウトプットコンペア
レジスタ1値
コンペア0割込み
時間
BFFFH
7FFFH
コンペア1割込み
<注意事項>
アウトプットコンペアレジスタを書き換える場合はコンペア割込みのルーチン内で行う
かコンペアを禁止の状態で行い , コンペア一致と書込みが同時に発生しないようにしてく
ださい。
● アウトプットコンペアのタイミング
アウトプットコンペアは , フリーランタイマと設定したアウトプットコンペアレジス
タの値が一致したときにコンペア一致信号が発生して出力を反転するとともに割込み
を発生できます。コンペア一致時の出力反転タイミングは , カウンタのカウントタイミ
ングに同期して行われます。
図 14.5-8 コンペア割込みタイミング
φ
カウンタ値
アウトプットコンペア
レジスタ値
N
N+1
N
コンペアマッチ
割込み
309
第 14 章 入出力タイマ
310
第 15 章
PPG タイマ
PPG タイマについて説明します。
15.1 PPG タイマの概要
15.2 PPG タイマのブロックダイヤグラム
15.3 PPG タイマのレジスタ
15.4 PPG タイマの動作説明
15.5 PPG タイマの使用上の注意
15.6 PPG タイマの使用例
311
第 15 章 PPG タイマ
15.1
PPG タイマの概要
PPG タイマは , プリスケーラ , 16 ビットダウンカウンタ 1 本 , 周期設定用バッファ
付き 16 ビットデータレジスタ , デューティ設定用バッファ付き 16 ビットアウト
プットコンペアレジスタ , および端子制御部から構成されています。
外部またはソフトウェアトリガに同期させたパルスを出力できます。出力するパル
スは , 16 ビット 2 個のレジスタ値を書き換えることで , 周期とデューティを任意に
変えることができます。
■ PPG タイマの機能
● PWM 機能
■
トリガに同期させ , 上記レジスタの値を書き換えながらプログラマブルにパルスを出
力できます。
外付け回路により , D/A コンバータとしても使用できます。
● ワンショット機能
トリガ入力のエッジを検出し , 単一パルスを出力できます。
● 端子制御
PPG タイマは , 以下の端子制御を行います。
• デューティ一致で , "1" にセット ( 優先 )
• カウンタボローで , "0" にリセット
• 出力値固定モードがあり , オール "L"( またはオール "H") を簡単に出力可能
• 極性指定可能
● 16 ビットダウンカウンタ
カウンタ動作クロックは , 8 種類から選択可能です。内部クロックは , 8 種類あります
( φ , φ /2, φ /4, φ /8, φ /16, φ /32, φ /64, φ/ 128) 。
φ : マシンクロック
カウンタ値は , リセット , カウンタボローで "FFFFH" に初期化されます。
● 割込み要求
PPG タイマは , 以下の条件で割込み要求を発生します。
• タイマ起動
• カウンタボロー発生 ( 周期一致 )
• デューティ一致発生
• カウンタボロー発生 ( 周期一致 ), またはデューティ一致発生
外部トリガで複数チャネルの同時起動が設定できます。また , 動作中の再起動も設定可
能です。
PPG タイマの割込みと EI2OS
PPG タイマの割込みと EI2OS を表 15.1-1 に示します。
表 15.1-1 PPG タイマの割込みと EI2OS
割込みレベル設定レジスタ
チャネル
ベクタテーブルのアドレス
EI2OS
割込み番号
レジスタ名
アドレス
下位
上位
バンク
PPG タイマ 0
#27(1BH)
ICR08
0000B8H
FFFF90H
FFFF91H
FFFF92H
○
PPG タイマ 1
#31(1FH)
ICR10
0000BAH
FFFF80H
FFFF81H
FFFF82H
○
○:使用可能
312
第 15 章 PPG タイマ
PPG タイマのブロックダイヤグラム
15.2
PPG タイマのブロックダイヤグラムを示します。
■ PPG タイマのブロックダイヤグラム
図 15.2-1 に PPG タイマのブロックダイヤグラムを示します。
図 15.2-1 PPG タイマのブロックダイヤグラム
プリスケーラ
1/1
PCSR
1/2
PDUT
1/4
1/8
1/16
ロード
CK
1/32
CMP
PCNT
16ビット
ダウンカウンタ
1/64
1/128
スタート
ボロー
PPGマスク
マシンクロック
S
Q
PPG出力
R
反転ビット
割込み選択
イネーブル
割込み
ソフトトリガ
313
第 15 章 PPG タイマ
15.3
PPG タイマのレジスタ
PPG タイマのレジスタ一覧を示します。
■ PPG タイマのレジスタ一覧
図 15.3-1 に PPG タイマのレジスタ一覧を示します。
図 15.3-1 PPG タイマレジスタ一覧
PPG制御ステータスレジスタ上位
アドレス:ch.0 000077 H
アドレス:ch.1 00007F H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
PCNTH0,PCNTH1
CNTE
STGR
MDSE
RTRG
CKS2
CKS1
CKS0
PGMS
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W ← リード/ライト
初期値
(×) ←
PPG制御ステータスレジスタ下位
アドレス:ch.0 000076 H
アドレス:ch.1 00007E H
bit7
bit5
bit4
bit3
bit2
bit1
bit0
PCNTL0,PCNTL1
-
IREN
IRQF
IRS1
IRS0
POEN
OSEL
-
(-)
-
(-)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
PPGダウンカウンタレジスタ下位
アドレス:ch.0 000070 H
アドレス:ch.1 000078 H
PPG周期設定レジスタ下位
アドレス:ch.0 000072 H
アドレス:ch.1 00007A H
bit6
-
PPGダウンカウンタレジスタ上位
アドレス:ch.0 000071 H
アドレス:ch.1 000079 H
PPG周期設定レジスタ上位
アドレス:ch.0 000073 H
アドレス:ch.1 00007B H
bit8
bit15 bit14 bit13 bit12 bit11 bit10 bit9
← リード/ライト
←
初期値
bit8
PDCRH0,PDCRH1
DC15
DC14
DC13
DC12
DC11
DC10
DC09
DC08
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PDCRL0,PDCRL1
DC07
DC06
DC05
DC04
DC03
DC02
DC01
DC00
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
bit15 bit14 bit13 bit12 bit11 bit10 bit9
← リード/ライト
←
初期値
bit8
PCSRH0,PCSRH1
CS15
CS14
CS13
CS12
CS11
CS10
CS09
CS08
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PCSRL0,PCSRL1
CS07
CS06
CS05
CS04
CS03
CS02
CS01
CS00
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
← リード/ライト
←
初期値
( 続く )
314
第 15 章 PPG タイマ
( 続き )
PPGデューティ設定レジスタ上位
アドレス:ch.0 000075 H
アドレス:ch.1 00007D H
PPGデューティ設定レジスタ下位
アドレス:ch.0 000074 H
アドレス:ch.1 00007C H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PDUTH0,PDUTH1
DU15
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PDUTL0,PDUTL1
DU07
DU06
DU05
DU04
DU03
DU02
DU01
DU00
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
← リード/ライト
←
初期値
315
第 15 章 PPG タイマ
15.3.1
PPG タイマのレジスタ詳細説明
PPG タイマには , 次の 4 つのレジスタがあります。
・PPG 制御ステータスレジスタ (PCNT0, PCNT1)
・PPG ダウンカウンタレジスタ (PDCR0, PDCR1)
・PPG 周期設定レジスタ (PCSR0, PCSR1)
・PPG デューティ設定レジスタ (PDUT0, PDUT1)
■ PPG 制御ステータスレジスタ (PCNT)
図 15.3-2 に PPG 制御ステータスレジスタ (PCNT0, PCNT1) のビット構成を示します。
図 15.3-2 PPG 制御ステータスレジスタ (PCNT0, PCNT1) のビット構成
PPG制御ステータスレジスタ上位
アドレス:ch.0 000077 H
アドレス:ch.1 00007F H
PPG制御ステータスレジスタ下位
アドレス:ch.0 000076 H
アドレス:ch.1 00007E H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PCNTH0,PCNTH1
CNTE
STGR
MDSE
RTRG
CKS2
CKS1
CKS0
PGMS
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W ← リード/ライト
初期値
(×) ←
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
PCNTL0,PCNTL1
-
-
IREN
IRQF
IRS1
IRS0
POEN
OSEL
-
(-)
-
(-)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
R/W
(0)
← リード/ライト
←
初期値
【bit15】CNTE: タイマ許可ビット
16 ビットダウンカウンタの動作を許可するビットです。
CNTE
タイマ許可
0
停止 ( 初期値 )
1
許可
【bit14】STGR: ソフトウェアトリガビット
このビットに "1" を書き込むことにより , ソフトウェアトリガがかかります。
STGR ビットの読出し値は , 常に "0" です。
【bit13】MDSE: モード選択ビット
連続してパルスを出す PWM 動作か , 単一パルスを出すワンショット動作かを選択
します。動作中の書換えはできません。
MDSE
316
モード選択
0
PWM 動作 ( 初期値 )
1
ワンショット動作
第 15 章 PPG タイマ
【bit12】RTRG: 再起動許可ビット
ソフトウェアトリガによる再起動を許可するビットです。動作中の書換えはできま
せん。
RTRG
再起動許可
0
再起動禁止 ( 初期値 )
1
再起動許可
【bit11 ∼ bit9】CKS2 ∼ CKS0: カウンタクロック選択ビット
16 ビットダウンカウンタのカウントクロックを選択します。動作中の書換えはでき
ません。
CKS2
CKS1
CKS0
0
0
0
φ ( 初期値 )
0
0
1
φ /2
0
1
0
φ /4
0
1
1
φ /8
1
0
0
φ /16
1
0
1
φ /32
1
0
1
φ /64
1
1
1
φ /128
周期
φ :マシンクロック
【bit8】PGMS:PPG 出力マスク選択ビット
このビットに "1" を書き込むことにより , モード設定 , 周期設定値 , デューティ設定
値にかかわらず , PPG 出力を "0" または "1" にマスクできます。
PGMS に "1" を書き込んだときの PPG タイマの出力レベルを下表に示します。
極性
PPG 出力
通常極性
"L"
極性反転
"H"
通常極性時にオール "H" または反転極性時にオール "L" を出力したい場合は , 周期設定
レジスタとデューティ設定レジスタに同値を書き込むと , 上記マスク値の反転を出力
できます。
【bit7, bit6】未定義ビット
このビットに値を書き込んでも , 動作には影響を与えません。
317
第 15 章 PPG タイマ
【bit5】IREN: 割込み要求許可ビット
PPG タイマの割込み許可ビットです。IREN ビットが "1" の場合 , 割込みフラグ (bit4
の IRQF) が "1" にセットされると割込みが発生します。
IREN
割込み要求許可
0
割込み禁止 ( 初期値 )
1
割込み許可
【bit4】IRQF: 割込み要求フラグ
bit5 の IREN が許可されていて bit3, bit2 の IRS1, IRS0 で選択した割込み要因が発生
すると IRQF ビットがセットされ , CPU に割込み要求を発生します。
IRQF ビットは読出し / 書込みが可能です。クリアは , "0" 書込みのみで行われ , "1"
を書き込んでもビット値は変化しません。リードモディファイライト (RMW) 系命
令における読出し値は , ビット値にかかわらず "1" です。
【bit3, bit2】IRS1, IRS0: 割込み要因選択ビット
bit4 の IRQF をセットする要因を選択します。
IRS1
IRS0
0
0
ソフトウェアトリガ , または有効トリガ入力あり ( 初期値 )
0
1
カウンタボロー ( 周期一致 )
1
0
通常極性 PPG ↑ , または反転極性 PPG ↓ ( デューティ一致 )
1
1
カウンタボロー , 通常極性 PPG ↑ , または反転極性 PPG ↓
エッジ選択
【bit1】POEN:PPG 出力許可ビット
"1" に設定することにより , PPG 出力が端子から出力されます。
POEN
318
PPG 出力許可
0
汎用ポート ( 初期値 )
1
PPG 出力端子
第 15 章 PPG タイマ
【bit0】OSEL:PPG 出力極性指定ビット
PPG 出力の極性を設定します。
OSEL
PPG 出力極性
0
通常極性 ( 初期値 )
1
反転極性
bit9 の PGMS との組合せで , 以下のようになります。
PGMS
OSEL
0
0
通常極性 ( 初期値 )
0
1
反転極性
1
0
出力 "L" 固定
1
1
出力 "H" 固定
PPG 出力
極性
リセット後
通常極性
"L" 出力
反転極性
"H" 出力
デューティ一致
カウンタ一致
■ PPG ダウンカウンタレジスタ (PDCR)
PDCR レジスタは , 16 ビットダウンカウンタの値を読み出すことができます。
PDCR レジスタは , 16 ビットデータでアクセスしてください。
PPG ダウンカウンタレジスタ (PDCR) のビット構成を図 15.3-3 に示します。
図 15.3-3 PPG ダウンカウンタレジスタ (PDCR) のビット構成
PPGダウンカウンタレジスタ上位
アドレス:ch.0 000071 H
アドレス:ch.1 000079 H
PPGダウンカウンタレジスタ上位
アドレス:ch.0 000070 H
アドレス:ch.1 000078 H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PDCRH0,PDCRH1
DC15
DC14
DC13
DC12
DC11
DC10
DC09
DC08
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PDCRL0,PDCRL1
DC07
DC06
DC05
DC04
DC03
DC02
DC01
DC00
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
R
(1)
← リード/ライト
←
初期値
319
第 15 章 PPG タイマ
■ PPG 周期設定レジスタ (PCSR)
PCSR レジスタは , 周期を設定するためのバッファ付きレジスタです。バッファからの
転送は , カウンタボローで行われます。
周期設定レジスタの初期設定時および書換え時は , 周期設定レジスタへ書込み後 , 必ず
デューティ設定レジスタへの書込み動作を行ってください。
PCSR レジスタは , 16 ビットデータでアクセスしてください。
PPG 周期設定レジスタ (PCSR) のビット構成を図 15.3-4 に示します。
図 15.3-4 PPG 周期設定レジスタ (PCSR) のビット構成
PPG周期設定レジスタ上位
アドレス:ch.0 000073 H
アドレス:ch.1 00007B H
PPG周期設定レジスタ下位
アドレス:ch.0 000072 H
アドレス:ch.1 00007A H
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PCSRH0,PCSRH1
CS15
CS14
CS13
CS12
CS11
CS10
CS09
CS08
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PCSRL0,PCSRL1
CS07
CS06
CS05
CS04
CS03
CS02
CS01
CS00
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
← リード/ライト
←
初期値
■ PPG デューティ設定レジスタ (PDUT)
PDUT レジスタは , デューティを設定するためのバッファ付きレジスタです。バッファ
からの転送は , カウンタボローで行われます。
周期設定レジスタの値とデューティ設定レジスタの値を同じにすると , 通常極性時に
オール "H" を , 反転極性時にオール "L" を出力します。
PCSR <PDUT となるような値を設定しないでください。PPG 出力が不定となります。
PDUT レジスタは , 16 ビットデータでアクセスしてください。
PPG デューティ設定レジスタ (PDUT) のビット構成を図 15.3-5 に示します。
図 15.3-5 PPG デューティ設定レジスタ (PDUT) のビット構成
PPGデューティ設定レジスタ上位
アドレス:ch.0 000075 H
アドレス:ch.1 00007D H
PPGデューティ設定レジスタ下位
アドレス:ch.0 000074 H
アドレス:ch.1 00007C H
320
bit15 bit14 bit13 bit12 bit11 bit10 bit9
bit8
PDUTH0,PDUTH1
DU15
DU14
DU13
DU12
DU11
DU10
DU09
DU08
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
bit7
bit6
bit5
bit4
bit3
bit2
bit1
← リード/ライト
←
初期値
bit0
PDUTL0,PDUTL1
DU07
DU06
DU05
DU04
DU03
DU02
DU01
DU00
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
W
(X)
← リード/ライト
←
初期値
第 15 章 PPG タイマ
15.4
PPG タイマの動作説明
PPG タイマの動作について説明します。
■ PWM 動作
PWM 動作では , 起動トリガの検出時から連続してパルスを出力できます。出力パルス
の周期は , PCSR 値を変えることにより制御できます。また , デューティ比は , PDUT 値
を変えることにより制御できます。
● 再起動禁止の場合
図 15.4-1 PWM 動作再起動禁止のタイミング
立上りエッジ検出
トリガは,無視されます。
起動
トリガ
m
n
0
PPG
①
②
T: カウントクロック周期
m: PCSR値
n: PDUT値
● 再起動許可の場合
図 15.4-2 PWM 動作再起動許可のタイミング
立上りエッジ検出
トリガにより,再起動します。
起動
トリガ
m
n
0
PPG
①
②
T: カウントクロック周期
m: PCSR値
n: PDUT値
<注意事項>
PCSR にデータを書き込んだ後は , 必ず PDUT への書込みを行ってください。
321
第 15 章 PPG タイマ
■ ワンショット動作
ワンショット動作では , トリガにより任意の幅の単一パルスを出力できます。再起動許
可の場合は , 動作中に起動トリガを検出するとカウンタをリロードします。
● 再起動禁止の場合
図 15.4-3 ワンショット動作再起動禁止のタイミング
立上りエッジ検出
トリガは,無視されます。
起動
トリガ
m
n
0
PPG
①
②
T: カウントクロック周期
m: PCSR値
n: PDUT値
● 再起動許可の場合
図 15.4-4 ワンショット動作再起動許可のタイミング
立上りエッジ検出
トリガにより,再起動します。
起動
トリガ
m
n
0
PPG
①
②
T: カウントクロック周期
m: PCSR値
n: PDUT値
322
第 15 章 PPG タイマ
■ 割込み要因とタイミング
起動トリガがかかってから , カウント値がロードされるまで , 最大 2.5 T(T: カウントク
ロック周期 ) を必要とします。
● 割込み出力要因とタイミング
図 15.4-5 割込み出力要因とタイミング
起動トリガ
最大2.5T
ロード
クロック
カウント値
XXXXH
0003H
0002H
0001H
0000H
0003H
PPG
割込み
ソフトウェアトリガ
コンペア一致
ボロー
● PWM 出力オール "L" またはオール "H" の出力方法例
図 15.4-6 PWM 出力オール "L" またはオール "H" の出力方法例
PPG
デューティ値
を小さくして
いく
ボローによる割込みでPGMS(マスク
ビット)に”1”を書き込みます。
また,ボローによる割込みでPGMS
(マスクビット)に"0"を書き込めば、
出力することなくPPG波形を
出力できます。
PPG
デューティ値
を大きくして
いく
コンペア一致による割込みで
デューティ設定レジスタに
周期設定レジスタ値と同じ値を
書き込みます。
323
第 15 章 PPG タイマ
15.5
PPG タイマの使用上の注意
PPG タイマの使用上の注意事項について説明します。
■ 設定時の注意事項
•
PPG 周期設定レジスタ (PCSR) への書込み後は , PPG デューティ設定レジスタ (PDUT)
への書込みも行ってください。PCSR レジスタのみの更新はできません。また , PCSR
レジスタと PDUT レジスタへのアクセスにはワード転送命令 (MOVW A, dir など ) を
使用してください。
•
PPG デューティ設定レジスタ (PDUT) に書き込む値は , PPG 周期設定レジスタ (PCSR)
の値より小さいものにしてください。PPG 出力の誤動作の原因となります。
•
PPG 制御ステータスレジスタ (PCNT) の CKS2, CKS1, CKS0 ビットの書換えは PPG ス
トップ時 (PCNT: CNTE=0) に行ってください。
324
第 15 章 PPG タイマ
15.6
PPG タイマの使用例
PPG タイマの使用例について説明します。
■ PPG タイマのサンプルプログラム
● 動作概要
• PPG タイマ 0 出力から 160 kHz, デューティ 60% の波形を出力します。
• タイマは割込みを繰り返し発生させるために PWM モードで使用します。
• タイマはソフトウェアトリガで起動します。
• EI2OS は使用していません。
• マシンクロックは 16 MHz , カウントクロックは 62.5 ns を使用しています。
● サンプルプログラム
ICR08 EQU 0000B8H
; 16 ビット PPG タイマ割込み制御レジスタ
PCSR0 EQU 000072H
; PPG 周期設定レジスタ
PDUT0 EQU 000074H
; PPG デューティ設定 レジスタ
PCNT0 EQU 000070H
; PPG コントロールステータスレジスタ
IRQF EQU PCNT0:4
; 割込み要求フラグビット
;------- メインプログラム ----------------------------------------------------------CODE
CSEG
START:
;
:
; スタックポインタ (SP) は既に初期化されたとする。
AND
CCR, #0BFH
; 割込み許可
MOV
I:ICR08, #00H
; 割込みレベル 0 ( 最強 )
MOVW
I:PCSR0, #0063H
; PPG 出力の周期を設定
MOVW
I:PDUT0, #003BH
; PPG 出力のデューティ比を設定
MOVW
I:PCNT0, #01100000000100110B
; 通常極性での PPG を許可
; 16 ビット PPG タイマ , 62.5 ns クロック PPG
; ソフトウェアトリガ を許可
; PWM モードを選択し , 割込みを許可
; 割込みフラグのクリアとカウンタ開始
LOOP:
MOV
ILM, #07H
; PS 内の ILM をレベル 7 に設定
OR
CCR, #40H
; 割込み許可
MOV
A, #00H
; 無限ループ
MOV
A, #01H
;
BRA
LOOP ;
;------- 割込みプログラム ------------------------------------------------------325
第 15 章 PPG タイマ
WARI:
CLRB
I:IRQF
;
:
;
ユーザプロセス
;
:
; 割込み要求フラグのクリア
; 割込みからの復帰
RETI
CODE ENDS
;------- ベクタ設定 ---------------------------------------------------------VECT
CSEG
ABS=0FFH
ORG
0FF90H
DSL
WARI
ORG
0FFDCH
DSL
START
DB
00H
VECT ENDS
END
326
START
; 割込み #27(1BH) にベクタを設定
; リセットベクタを設定
; シングルチップモードに設定
第 16 章
UART
MB90800 シリーズの UART の機能と動作について
説明します。
16.1 UART の概要
16.2 UART の構成
16.3 UART の端子
16.4 UART のレジスタ
16.5 UART の割込み
16.6 UART のボーレート
16.7 UART の動作説明
16.8 UART 使用上の注意
327
第 16 章 UART
UART の概要
16.1
UART は , 外部装置と同期通信もしくは非同期通信 ( 調歩同期 ) をするための汎用の
シリアルデータ通信インタフェースです。双方向通信機能 ( ノーマルモード ), マス
タ / スレーブ型通信機能 ( マルチプロセッサモード : マスタ側だけサポート ) があり
ます。
■ UART の機能
● UART の機能
UART は , ほかの CPU や周辺装置とシリアルデータの送受信をする汎用シリアルデー
タ通信インタフェースで , 表 16.1-1 に示す機能があります。
表 16.1-1 UART の機能
機能
内容
データバッファ
全二重ダブルバッファ
転送モード
・クロック同期 ( スタート / ストップビットなし )
・クロック非同期 ( 調歩周期 )
ボーレート
・専用ボーレートジェネレータによるボーレート
・外部クロック (SC 端子入力のクロック ) によるボーレート
・内部クロック (16 ビットリロードタイマから供給されるクロック ) による
ボーレート
・ボーレートは全 8 種類から設定可能
データ長
・7 ビット ( 非同期ノーマルモード時のみ )
・8 ビット
信号方式
NRZ(Non Return to Zero) 方式
受信エラー検出
・フレーミングエラー
・オーバランエラー
・パリティエラー ( マルチプロセッサモード時は検出不可 )
割込み要求
・受信割込み ( 受信完了 , 受信エラー検出 )
・送信割込み ( 送信完了 )
・送受信とも拡張インテリジェント I/O サービス (EI2OS) の対応あり
マスタ / スレーブ型
通信機能 ( マルチ
プロセッサモード )
1( マスタ ) 対 n( スレーブ ) 間の通信が可能
( マスタ側だけサポート )
<注意事項>
UART は , クロック同期転送時にスタートビット / ストップビットは付加されません。デー
タだけが転送されます。
328
第 16 章 UART
表 16.1-2 UART の動作モード
データ長
動作モード
ストップ
ビット長
同期方式
パリティなし
パリティあり
0
ノーマルモード
7 ビットまたは 8 ビット
非同期
1
マルチプロセッサモード
8 + 1 *1
―
非同期
2
ノーマルモード
8
―
同期
1 ビット
または
2 ビット *2
なし
― :設定不可
*1 :" + 1" は通信制御用に使用されるアドレス / データ設定ビット (A/D) です。
*2 :受信時のストップビット長は 1 ビットのみ検出可能
■ UART に関連する割込みと EI2OS
表 16.1-3 UART に関連する割込みと EI2OS
割込み番号
割込み制御レジスタ
ベクタテーブルアドレス
EI2OS
割込み要因
レジスタ名
UART0受信割込み
アドレス
#35(23H)
ICR12
UART0送信割込み
#36(24H)
UART1受信割込み
#39(27H)
ICR14
UART1送信割込み
下位
#40(28H)
上位
バンク
レジスタ名
FFFF70H
FFFF71H
FFFF72H
◎
FFFF6CH
FFFF6DH
FFFF6EH
△
FFFF60H
FFFF61H
FFFF62H
◎
FFFF5CH
FFFF5DH
FFFF5EH
△
0000BCH
0000BEH
◎:UART の受信エラー検出による EI2OS 停止機能付き
△:ICR12, ICR14 を共有する割込み要因を使用しない場合に使用可能
329
第 16 章 UART
UART の構成
16.2
UART は , 以下の 11 種類のブロックで構成されています。
・クロックセレクタ
・モードレジスタ (SMR0/SMR1)
・受信制御回路
・制御レジスタ (SCR0/SCR1)
・送信制御回路
・ステータスレジスタ (SSR0/SSR1)
・受信状態判定回路
・インプットデータレジスタ (SIDR0/SIDR1)
・受信用シフトレジスタ
・アウトプットデータレジスタ (SODR0/SODR1)
・送信用シフトレジスタ
■ UART のブロックダイヤグラム
図 16.2-1 UART のブロックダイヤグラム
コントロールバス
受信割込み信号
専用ボーレート
ジェネレータ
16ビット
リロードタイマ1/2
送信クロック
クロック
セレクタ
送信割込み信号
受信クロック
受信制御回路
端子
端子
送信制御回路
スタートビット
検出回路
送信スタート
回路
受信ビット
カウンタ
送信ビット
カウンタ
受信パリティ
カウンタ
送信パリティ
カウンタ
受信用
シフトレジスタ
送信用
シフトレジスタ
受信終了
SIDR0/SIDR1
SODR0/SODR1
受信状態判定回路
端子
送信開始
EI2OS用受信エラー
発生信号
(CPUへ)
内部データバス
SMR0/SMR1
レジスタ
MD1
MD0
CS2
CS1
CS0
SCKE
SOE
330
SCR0/SCR1
レジスタ
PEN
P
SBL
CL
A/D
REC
RXE
TXE
SSR0/SSR1
レジスタ
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
第 16 章 UART
● クロックセレクタ
専用ボーレートジェネレータ , 外部入力クロック (SC0/SC1 端子入力のクロック ), 内部
クロック (16 ビットリロードタイマから供給されるクロック ) から送受信クロックを設
定します。
● 受信制御回路
受信制御回路は , 受信ビットカウンタ , スタートビット検出回路 , および受信パリティ
カウンタで構成されています。受信ビットカウンタは受信データをカウントし , 設定し
たデータ長に応じたデータの受信を完了すると , 受信割込み要求を出力します。スター
トビット検出回路は , シリアル入力信号からスタートビットを検出する回路で , スター
トビットを検出した場合に , 設定された転送速度に応じてシフトしながらインプット
データレジスタ (SIDR0/SIDR1) に受信データを格納します。受信パリティカウンタは ,
パリティありのデータを受信する場合に受信データのパリティを計算します。
● 送信制御回路
送信制御回路は , 送信ビットカウンタ , 送信スタート回路 , および送信パリティカウン
タで構成されています。送信ビットカウンタは送信データをカウントし , 設定したデー
タ長に応じたデータの送信を完了すると , 送信割込み要求を出力します。送信スタート
回路は , アウトプットデータレジスタ(SODR0/SIDR1) に送信データが格納されると , 送
信動作を開始します。送信パリティカウンタは , パリティありの場合のデータを送信す
る場合に送信するデータのパリティビットを生成します。
● 受信用シフトレジスタ
SI0/SI1 端子から入力された受信データを 1 ビットずつシフトしながら取り込み , 受信
が終了すると , インプットデータレジスタ (SIDR0/SIDR1) に受信データを転送します。
● 送信用シフトレジスタ
アウトプットデータレジスタ (SODR0/SODR1) にセットされた送信データを送信用シ
フトレジスタに転送し , 1 ビットずつシフトしながら SO0/SO1 端子に出力します。
● モードレジスタ (SMR0/SMR1)
動作モードの設定 , ボーレートクロックの設定 , シリアルクロック入出力制御 , および
シリアルデータの端子への出力許可を設定します。
● 制御レジスタ (SCR0/SCR1)
パリティ有無の設定 , パリティの設定 , ストップビット長やデータ長の設定 , 動作モー
ド 1 でのフレームデータ形式の設定 , 受信エラーフラグビットのクリア , および送受信
動作の許可 / 禁止の設定をします。
● ステータスレジスタ (SSR0/SSR1)
送受信やエラーの状態の確認 , シリアルデータの転送方向の設定 , および送受信割込み
要求の許可 / 禁止の設定をします。
● インプットデータレジスタ (SIDR0/SIDR1)
受信したデータを格納するレジスタです。
● アウトプットデータレジスタ (SODR0/SODR1)
送信するデータを設定するレジスタです。アウトプットデータレジスタにセットされ
たデータがシリアル変換されて出力されます。
331
第 16 章 UART
UART の端子
16.3
UART の端子および端子部のブロックダイヤグラムを示します。
■ UART の端子
UART の端子は , 入出力ポートと兼用になっています。
表 16.3-1 UART の端子
端子名
端子機能
入出力形式
プルアップ
選択
スタンバイ
制御
端子の使用に
必要な設定
P54/SI0
入出力ポート /
シリアルデータ入力
入力ポートに設定
(DDR5:bit12= 0)
P56/SO0
入出力ポート /
シリアルデータ出力
シリアルデータ出力許
可に設定
(SMR0:SOE=1)
P55/SC0
入出力ポート /
シリアルクロック
入出力
P57/SI1
入出力ポート /
シリアルデータ入力
P72/
AN10/
SO1
入出力ポート /
A/D アナログ入力 /
シリアルデータ出力
入力ポートに設定
(DDR5:bit13=0)
CMOS 出力 /
CMOS
ヒステリシス
入力
シリアルクロック出力
許可に設定
(SMR0:SCKE=1)
なし
あり
入力ポートに設定
(DDR5:bit15=0)
シリアルデータ出力許
可に設定
(SMR1:SOE=1)
入力ポートに設定
(DDR7:bit1=0)
入出力ポート /
A/D アナログ入力 /
シリアルクロック
入出力
P71/
AN9/
SC1
アナログ入力禁止
(ADER1:bit1=0)
シリアルクロック出力
許可に設定
(SMR1:SCKE=1)
■ UART の端子のブロックダイヤグラム
図 16.3-1 UART の端子のブロックダイヤグラム
リソース入力
内 部 デ ー タ バ ス
PDR読出し
PDR
入出力
判定回路
PDR書込み
DDR
出力バッファ
スタンバイ制御(LPMCR:SPL=1)
入出力制御回路
リソース出力
332
入力バッファ
ポート
端子
第 16 章 UART
16.4
UART のレジスタ
UART のレジスタ一覧を示します。
■ UART のレジスタ一覧
図 16.4-1 UART のレジスタ一覧
bit15..............................................bit8
bit7..........................................................bit0
制御レジスタ (SCR)
モードレジスタ (SMR)
ステータスレジスタ (SSR)
インプット / アウトプットデータレジスタ (SIDR/SODR)
通信プリスケーラ制御レジスタ (CDCR)
<注意事項>
UART のレジスタは , INC/DEC 命令などリードモディファイライト (RMW) 系命令は使用
できません。
333
第 16 章 UART
制御レジスタ (SCR0/SCR1)
16.4.1
制御レジスタ (SCR0/SCR1) は , パリティ有無の設定 , パリティの設定 , ストップビッ
ト長やデータ長の設定 , 動作モード 1 でのフレームデータ形式の設定 , 受信エラーフ
ラグビットのクリア , および送受信動作の許可 / 禁止を設定するレジスタです。
■ 制御レジスタ (SCR0/SCR1)
図 16.4-2 制御レジスタ (SCR0/SCR1)
bit
アドレス
ch.1 000021 H
ch.2 000029 H
15
14
13
12
11
10
9
8
PEN
P
SBL
CL
A/D
REC
RXE
TXE
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TXE
送信動作を禁止
1
送信動作を許可
受信動作を禁止
1
受信動作を許可
受信エラーフラグクリアビット
0
FRE,ORE,PEフラグを"0"にクリア
1
動作に影響しません
A/D
アドレス/データ設定ビット
0
データフレーム
1
アドレスフレーム
CL
データ長設定ビット
0
7ビットを設定
1
8ビットを設定
SBL
ストップビット長設定ビット
0
1ビット長を設定
1
2ビット長を設定
P
パリティ設定ビット
パリティありのとき(PEN=1)のみ有効
0
偶数パリティ
1
奇数パリティ
PEN
334
受信動作許可ビット
0
REC
:リード/ライト可能
:初期値
送信動作許可ビット
0
RXE
R/W
初期値
00000100B
パリティイネーブルビット
0
パリティなし
1
パリティあり
第 16 章 UART
表 16.4-1 制御レジスタ (SCR0/SCR1) の各ビットの機能説明 (1 / 2)
ビット名
機能
シリアルデータに対して , パリティビットの付加 ( 送信時 ) およ
び検出 ( 受信時 ) をする , または検出しないを設定するビットで
す。
( 注意事項 ) 動作モード 1, 2 を設定した場合は , パリティは使用
できませんので , "0" を設定してください。
bit15
PEN:
パリティ
イネーブル
ビット
bit14
P:
パリティ設定
ビット
bit13
SBL:
ストップビット
長設定ビット
非同期転送モード時の送信データのフレームエンドマークであ
るストップビットのビット長を設定するビットです。
( 注意事項 ) 受信時は , ストップビットの 1 ビット目を検出しま
す。
bit12
CL:
データ長設定
ビット
送受信データのデータ長を設定するビットです。
( 注意事項 ) 7 ビットを設定できるのは , 動作モード 0( 非同期 )
の場合です。動作 モード 1( マルチプロセッサモー
ド ), 動作モード 2( 同期 ) の場合では , 必ず 8 ビット
(CL=1) を設定してください。
bit11
・マルチプロセッサモード ( 動作モード 1) で送受信するフレー
A/D:
ムのデータ形式を設定するビットです。
アドレス / データ
・"0" を設定した場合は , 通常データとなります。
設定ビット
・"1" を設定した場合は , アドレスデータとなります。
bit10
REC:
受信エラー
フラグクリア
ビット
・ステータスレジスタ (SSR0/SSR1) の受信エラーフラグビット
(FRE, ORE, PE) を "0" にクリアするビットです。
・"0"を設定した場合は, 受信エラーフラグビット(FRE, ORE, PE)
が "0" にクリアされます。
・"1" を設定した場合は , 動作に影響しません。
( 注意事項 ) UART 動作中の受信割込み許可状態で "0" に設定す
る場合は , 受信エラーフラグビット (FRE, ORE, PE)
のいずれかに "1" を設定してください。
RXE:
受信動作許可
ビット
・UART の受信動作を制御するビットです。
・"0" を設定している場合は , 受信動作が禁止となります。
・"1" を設定している場合は , 受信動作が許可となります。
( 注意事項 )受信中に受信動作を禁止した場合は , 現在受信中の
データの受信を完了し , インプットデータレジスタ
(SIDR0/SIDR1) に受信データを格納した時点で受信
動作を停止します。
bit9
奇数パリティ / 偶数パリティを設定するビットです。
( 注意事項 ) パリティあり (PEN=1) の場合のみ有効です。
335
第 16 章 UART
表 16.4-1 制御レジスタ (SCR0/SCR1) の各ビットの機能説明 (2 / 2)
ビット名
TXE:
送信動作許可
ビット
bit8
機能
・UART の送信動作を制御するビットです。
・"0" を設定している場合は , 送信動作が禁止となります。
・"1" を設定している場合は , 送信動作が許可となります。
( 注意事項 )
送信中に送信動作を禁止した場合は , アウトプットデータレ
ジスタ (SODR0/SODR1) にデータがなくなった後で送信動作
を停止します。
"0" を設定する場合は , アウトプットデータレジスタ (SODR0/
SODR1) にデータを書き込んだ後に , クロック非同期転送
モードの場合であればボーレートの 1/16 時間 , クロック同期
転送モードの場合であればボーレートと同じ時間以上待って
から設定してください。
<注意事項>
制御レジスタ (SCR0/SCR1) は , INC/DEC 命令などリードモディファイライト (RMW) 系
命令は使用できません。
336
第 16 章 UART
16.4.2
モードレジスタ (SMR0/SMR1)
モードレジスタ (SMR0/SMR1) は , 動作モードの設定 , ボーレートクロックの設定 ,
シリアルクロック入出力制御 , およびシリアルデータの端子への出力許可を設定す
るレジスタです。
■ モードレジスタ (SMR0/SMR1)
図 16.4-3 モードレジスタ (SMR0/SMR1)
bit
アドレス
ch.0 000020 H
ch.1 000028 H
7
6
5
4
3
2
1
0
初期値
MD1
MD0
CS2
CS1
CS0
-
SCKE
SOE
00000-00B
R/W
R/W
R/W
R/W
R/W
-
R/W
R/W
SOE
シリアルデータ出力許可ビット(P37/SO0,P61/SO1端子)
0
入出力ポートとする
1
シリアルデータ出力端子とする
SCKE
シリアルクロック出力許可ビット(P40/SC0,P62/SC1端子)
0
入出力ポートまたはシリアルクロック入力端子とする
1
シリアルクロック出力端子とする
ch.0
クロック設定ビット
CS2~CS0
"000B"~"101B"
専用ボーレートジェネレータによるボーレート
内部クロック(16ビットリロードタイマ)
"110B"
によるボーレート
外部クロック(SC0/SC1端子)によるボーレート
"111B"
R/W :リード/ライト可能
- :未定義ビット
:初期値
動作モード設定ビット
MD1
MD0
0
0
0
非同期(ノーマルモード)
0
1
1
非同期(マルチプロセッサモード)
1
0
2
同期(ノーマルモード)
1
1
-
設定禁止
動作モード
337
第 16 章 UART
表 16.4-2 モードレジスタ (SMR0/SMR1) の各ビットの機能説明
ビット名
bit7,
bit6
MD1, MD0:
動作モード設定
ビット
bit5
∼
bit3
CS2 ∼ CS0:
クロック設定
ビット
機能
動作モードを設定するビットです。
( 注意事項 )
動作モード 1( マルチプロセッサモード ) は , マスタ / スレーブ型通
信のマスタとしてのみ使用できます。UART は , 受信時にアドレス /
データ判別機能がないためスレーブとしては使用できません。
・ボーレートのクロックソースを設定するビットです。
・専用ボーレートジェネレータを設定した場合は , ボーレートも決定
されます。
・専用ボーレートジェネレータ 6 種類 , 内部クロックによるボーレー
ト 1 種類 , 外部クロックによるボーレート 1 種類の計 8 種類のボー
レートから設定できます。
・クロック入力は , 外部クロック (SC0/SC1 端子入力 ), 内部クロック
(16 ビットリロードタイマ ), 専用ボーレートジェネレータより設定
できます。
( 注意事項 )
同期転送時に専用ボーレートを使用する場合 , 以下の設定をしない
でください。
・CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B
・CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B
bit2
−:
未定義ビット
bit1
SCKE:
シリアル
クロック出力
許可ビット
(P40/SC0,
P62/SC1 端子 )
bit0
SOE:
シリアルデータ
出力許可ビット
(P37/SO0,
P61/SO1 端子 )
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
・シリアルクロックの入出力を制御するビットです。
・ "0" を設定した場合は , SC 端子は入出力ポート , またはシリアルク
ロック入力端子となります。
・"1" を設定した場合は , シリアルクロック出力端子となります。
( 注意事項 )
・SC 端子をシリアルクロック入力 (SCKE=0) として使用する場合は
, 入力ポートに設定してください。クロック設定ビットによって外
部クロックを設定 (SMR0/SMR1:CS2 ∼ CS0=111B) してください。
・シリアルクロック出力 (SCKE=1) として使用する場合は ,
専用ボーレートジェネレータ (SMR0/SMR1:CS2 ∼ CS0=000B ∼
101B), または内部クロック (SMR0/SMR1:CS2 ∼ CS0=110B) を設
定してください。
〔参考〕
シリアルクロック出力 (SCKE=1) の場合は , 入出力ポートの状態に
かかわらずシリアルクロック出力端子として機能します。
・シリアルデータの出力を許可するビットです。
・"0" を設定した場合は , SO 端子は入出力ポートとなります。
・"1" を設定した場合は , シリアルデータ出力端子となります。
〔参考〕
シリアルデータ出力 (SOE=1) の場合は , 入出力ポートの状態にか か
わらずシリアルデータ出力端子として機能します。
<注意事項>
モードレジスタ (SMR0/SMR1) は , INC/DEC 命令などリードモディファイライト (RMW)
系命令は使用できません。
338
第 16 章 UART
16.4.3
ステータスレジスタ (SSR0/SSR1)
ステータスレジスタ (SSR0/SSR1) は , 送受信やエラーの状態の確認 , シリアルデー
タの転送方向の設定 , および割込みの許可 / 禁止を設定するレジスタです。
■ ステータスレジスタ (SSR0/SSR1)
図 16.4-4 ステータスレジスタ (SSR0/SSR1)
bit
アドレス
ch.0 000023H
ch.1 00002BH
15
14
13
12
11
10
9
8
初期値
PE
ORE
FRE
RDRF
TDRE
BDS
RIE
TIE
00001000B
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
TIE
0
送信割込み要求許可ビット
送信割込み要求出力を禁止
1
送信割込み要求出力を許可
RIE
0
受信割込み要求許可ビット
受信割込み要求出力を禁止
1
受信割込み要求出力を許可
BDS
0
転送方向設定ビット
LSB ファースト(最下位ビットから転送)
1
MSB ファースト(最上位ビットから転送)
TDRE
0
送信データエンプティフラグビット
送信データあり(送信データの書込み禁止)
1
送信データなし(送信データの書込み許可)
RDRF
0
受信データフルフラグビット
受信データなし
1
受信データあり
FRE
0
1
ORE
フレーミングエラーあり
オーバランエラーフラグビット
0
オーバランエラーなし
1
オーバランエラーあり
PE
R/W
フレーミングエラーフラグビット
フレーミングエラーなし
パリティエラーフラグビット
0
パリティエラーなし
1
パリティエラーあり
:リード/ライト可能
:初期値
339
第 16 章 UART
表 16.4-3 ステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 (1 / 2)
ビット名
bit15
bit14
bit13
bit12
bit11
340
機能
PE:
パリティ
エラーフラグ
ビット
・受信時にパリティエラーが発生した場合は, "1"がセットされます。
・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC)
に "0" を設定した場合は , "0" にクリアされます。
・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1"
が設定されていると , 受信割込み要求を出力します。
・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/
SIDR1) のデータは無効になります。
ORE:
オーバラン
エラーフラグ
ビット
・受信時にオーバランエラーが発生した場合は , "1" がセットされま
す。
・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC)
に "0" を設定した場合は , "0" にクリアされます。
・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1"
が設定されていると , 受信割込み要求を出力します。
・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/
SIDR1) のデータは無効になります。
FRE:
フレーミング
エラーフラグ
ビット
・受信時にフレーミングエラーが発生した場合は , "1" がセットされ
ます。
・制御レジスタ(SCR0/SCR1)の受信エラーフラグクリアビット(REC)
に "0" を設定した場合は , "0" にクリアされます。
・"1" がセットされた場合に , 受信割込み要求許可ビット (RIE) に "1"
が設定されていると , 受信割込み要求を出力します。
・ "1" がセットされた場合は , インプットデータレジスタ (SIDR0/
SIDR1) のデータは無効になります。
RDRF:
受信データ
フルフラグ
ビット
・インプットデータレジスタ (SIDR0/SIDR1) の状態を示すビットで
す。
・インプットデータレジスタ (SIDR0/SIDR1) に受信データが格納さ
れた場合は , "1" がセットされます。
・インプットデータレジスタ (SIDR0/SIDR1) を読み出した場合は ,
"0" にクリアされます。
・"1" がセットされた場合は , 受信割込み要求許可ビット (RIE) に "1"
が設定されると , 受信割込み要求を出力します。
TDRE:
送信データ
エンプティ
フラグビット
・アウトプットデータレジスタ (SODR0/SODR1) の状態を示すビッ
トです。
・アウトプットデータレジスタ (SODR0/SODR1) に送信データを書
き込んだ場合は , "0" にクリアされます。
・データが送信用シフトレジスタに読み出され , 送信を開始した場
合は , "1" がセットされます。
・"1" がセットされた場合は , 送信割込み要求許可ビット (TIE) に "1"
が設定されると , 送信割込み要求を出力します。
( 注意事項 )
初期状態では "1" がセットされています。
第 16 章 UART
表 16.4-3 ステータスレジスタ (SSR0/SSR1) の各ビットの機能説明 (2 / 2)
ビット名
機能
bit10
BDS:
転送方向設定
ビット
・シリアルデータの転送方向を設定します。
・"0"を設定した場合は, 最下位ビット側から転送します(LSBファー
スト )。
・"1"を設定した場合は, 最上位ビット側から転送します(MSBファー
スト )。
( 注意事項 )
シリアルデータレジスタへの読出し , 書込み時にデータの上位側
と下位側を入れ替えるため,アウトプットデータレジスタ(SODR0/
SODR1) にデータを書き込んだ後に , 転送方向設定ビット (BDS) を
書き換えた場合は , 書き込まれたデータは無効になります。
bit9
RIE:
受信割込み
要求許可
ビット
・受信割込み要求を許可するビットです。
・"1"が設定されている場合に, 受信データフルフラグビット(RDRF)
に "1" がセットされるか , もしくは受信エラーフラグビット (PE,
ORE, FRE) のいずれかに "1" がセットされると , 受信割込み要求を
出力します。
bit8
TIE:
送信割込み
要求 許可
ビット
・送信割込み要求を許可するビットです。
・"1" が設定されている場合に , 送信データエンプティフラグビット
(TDRE) に "1" がセットされると , 送信割込み要求を出力します。
<注意事項>
ステータスレジスタ (SSR0/SSR1) には , INC/DEC 命令などのリードモディファイライト
(RMW) 系命令は使用できません。
341
第 16 章 UART
16.4.4
インプットデータレジスタ (SIDR0/SIDR1),
アウトプットデータレジスタ (SODR0/SODR1)
インプットデータレジスタ (SIDR0/SIDR1) はシリアルデータ受信用レジスタで , アウ
トプットデータレジスタ (SODR0/SODR1) はシリアルデータ送信用レジスタです。
■ インプットデータレジスタ (SIDR0/SIDR1)
図 16.4-5 インプットデータレジスタ (SIDR0/SIDR1)
bit
7
6
5
4
3
2
1
0
アドレス
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
ch.0 000022H
ch.1 00002AH
初期値
XXXXXXXXB
R/W :リード / ライト可能
受信したデータを格納するレジスタです。SI0/SI1 端子に送られてきたシリアルデータ
信号をシフトレジスタで変換し, インプットデータレジスタ(SIDR0/SIDR1)に格納しま
す。動作モード 0 でデータ長が 7 ビットに設定されている場合は , bit7(D7) は無効デー
タとなります。受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納される
と , ステータスレジスタ (SSR0/SSR1) の受信データフルフラグビット (RDRF) に "1" が
セットされ , 受信割込み要求出力が許可 (SSR0/SSR1:RIE=1) に設定されていると受信割
込みを出力します。
インプットデータレジスタ (SIDR0/SIDR1) は , ステータスレジスタ (SSR0/SSR1) の受信
データフルフラグビット (RDRF) に "1" がセットされている場合に読み出してくださ
い。受信データフルフラグビット (RDRF) はインプットデータレジスタ (SIDR0/SIDR1)
を読み出すと , "0" にクリアされます。受信エラーが発生 (SSR0/SSR1:PE, ORE, FRE の
いずれかが "1") した場合は , インプットデータレジスタ (SIDR0/SIDR1) のデータは無
効になります。
342
第 16 章 UART
■ アウトプットデータレジスタ (SODR0/SODR1)
図 16.4-6 アウトプットデータレジスタ (SODR0/SODR1)
bit
7
6
5
4
3
2
1
0
初期値
アドレス
D7
R/W
D6
R/W
D5
R/W
D4
R/W
D3
R/W
D2
R/W
D1
R/W
D0
R/W
XXXXXXXXB
ch.0 000022H
ch.1 00002AH
R/W:リード / ライト可能
送信許可状態の場合 , 送信するデータをアウトプットデータレジスタ (SODR0/SODR1)
に書き込むと , 送信データを送信用シフトレジスタに転送し , シリアルデータに変換さ
れて , シリアルデータ出力端子 (SO0/SO1 端子 ) から送出されます。動作モード 0 でデー
タ長が 7 ビットに設定されている場合は , bit7(D7) は無効データとなります。
送信データがアウトプットデータレジスタに書き込まれると , ステータスレジスタ
(SSR0/SSR1) の送信データエンプティフラグビット (TDRE) が "0" にクリアされ , 送信
用シフトレジスタへの転送が終了すると "1" がセットされます。送信データエンプティ
フラグビット (TDRE) に "1" が設定されている場合は , 次の送信用データを書き込むこ
とができます。送信データエンプティフラグビット (TDRE) が "1" にセットされた場合
に送信割込み要求出力が許可 (SSR0/SSR1:TIE=1) されていると , 送信割込みを出力しま
す。次の送信データの書込みは , 送信割込みを出力した場合 , または送信データエンプ
ティフラグビット (TDRE) に "1" がセットされてから行ってください。
<注意事項>
アウトプットデータレジスタ (SODR0/SODR1) は書込み専用のレジスタで , インプット
データレジスタ (SIDR0/SIDR1) は読出し専用のレジスタですが , 同一アドレスに配置され
ているため , 書込み値と読出し値は異なります。したがって , INC/DEC 命令などのリード
モディファイライト (RMW) 系命令は使用できません。
343
第 16 章 UART
通信プリスケーラ制御レジスタ (CDCR0/CDCR1)
16.4.5
通信プリスケーラ制御レジスタ (CDCR0/CDCR1) は , マシンクロックの分周を制御
するレジスタです。
■ 通信プリスケーラ制御レジスタ (CDCR0/CDCR1)
UART の動作クロックは , マシンクロックを分周して生成します。通信プリスケーラ制
御レジスタによって , さまざまなマシンサイクルに対して一定のボーレートが得られ
るように設計されています。通信プリスケーラ制御レジスタの出力は , 拡張 I/O シリア
ルインタフェースの動作クロックにも使われています。
図 16.4-7 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) の各ビットの機能説明
bit
15
14
13
12
11
10
9
8
アドレス
MD
R/W
URST
R/W
−
−
−
−
予約
R/W
DIV2
R/W
DIV1
R/W
DIV0
R/W
ch.0 000025H
ch.1 00002DH
初期値
0X--0000B
R/W:リード / ライト可能
−:未定義ビット
表 16.4-4 通信プリスケーラ制御レジスタ (CDCR0/CDCR1) の各ビットの機能説明
ビット名
機能
bit15
MD:
通信プリスケーラ
動作許可ビット
・通信プリスケーラの動作を許可するビットです。
・"1" を設定した場合は , 通信プリスケーラは動作します。
・"0" を設定した場合は , 通信プリスケーラは停止します。
bit14
URST:
UART リセット
ビット
・UART に対してリセットを発生するビットです。
・"1" を設定した場合は , UART をリセットします。
・"0" を設定した場合は , UART のリセットを解除します。
bit13,
bit12
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit11
予約:
予約ビット
必ず "0" を設定してください。
bit10
∼
bit8
DIV2 ∼ DIV0:
分周比設定ビット
・マシンクロックの分周比を設定するビットです。
・設定値については表 16.4-5 を参照してください。
344
第 16 章 UART
表 16.4-5 マシンクロック分周比
MD
DIV2
DIV1
DIV0
div
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 : マシンクロック分周比
<注意事項>
• 分周比を変えた場合は , クロックの安定時間として2 周期分の時間を待ってから通信を
行ってください。
通信プリスケーラ制御レジスタ (CDCR0/CDCR1) には , INC/DEC 命令などのリードモ
ディファイライト (RMW) 系命令は使用できません。
• 同期転送時に専用ボーレートを使用する場合 , 以下の設定をしないでください。
• CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B
• CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B
345
第 16 章 UART
16.5
UART の割込み
UART には , 受信割込みと送信割込みがあり , 次に示す要因で割込み要求を出力しま
す。
・受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納された場合 , また
は受信エラーが発生した場合に受信割込みを出力します。
・送信データがアウトプットデータレジスタ (SODR0/SODR1) から送信用シフト
レジスタに転送された場合 , 送信割込みを出力します。
受信割込み , 送信割込みは拡張インテリジェント I/O サービス (EI2OS) にも対応して
います。
■ UART の割込み
表 16.5-1 UART の割込み制御ビットと割込み要因
送受信
受信
送信
割込み要求
フラグビット
割込み要因
0
1
2
RDRF
○
○
○
受信データがイン
プットデータレジス
タ (SIDR0/ SIDR1)
へ格納
ORE
○
○
○
オーバランエラー
発生
FRE
○
○
×
フレーミングエラー
発生
PE
○
×
×
パリティエラー発生
○
アウトプットデータ
レジスタ (SODR0/
SODR1) から送信
データ転送終了
TDRE
○:使用ビット
×:未使用ビット
346
動作モード
○
○
割込み要因
許可ビット
割込み要求フ
ラグのクリア
受信データの
読出し
SSR0/SSR1: 受信エラー
RIE
フラグ
クリアビット
(SCR0/SCR1:
REC) に "0" を
設定
SSR0/SSR1: 送信データの
TIE
書込み
第 16 章 UART
● 受信割込み
受信モード時は , データ受信完了 , オーバランエラー発生 , フレーミングエラー発生 ,
パリティエラー発生によってステータスレジスタ (SSR0/SSR1) 中の受信データフルフ
ラグビット (RDRF), 受信エラーフラグビット (ORE, FRE, PE) のいずれかに "1" がセッ
トされ , 受信割込み要求が許可 (SSR0/SSR1:RIE=1) されている場合に受信割込み要求を
出力します。
ステータスレジスタ (SSR0/SSR1) の受信データフルフラグビット (RDRF) は , インプッ
トデータレジスタ (SIDR0/SIDR1) を読み出すと "0" にクリアされます。ステータスレ
ジスタ (SSR0/SSR1) の受信エラーフラグビット (PE, ORE, FRE) は , 制御レジスタ (SCR0/
SCR1) の受信エラーフラグクリアビット (REC) に "0" を設定した場合は , すべて "0" に
クリアされます。
● 送信割込み
送信データがアウトプットデータレジスタ (SODR0/SODR1) から転送用シフトレジス
タに転送された場合に, ステータスレジスタ(SSR0/SSR1)の送信データエンプティフラ
グビット (TDRE) に "1" がセットされます。送信割込みが許可 (SSR0/SSR1:TIE=1) され
ている場合に送信割込み要求を出力します。
■ UART の割込みと EI2OS
表 16.5-2 UART の割込みと EI2OS
割込み制御レジスタ
割込み要因
ベクタテーブルアドレス
EI2OS
割込み番号
UART0 受信割込み
レジスタ名
アドレス
ICR12
0000BCH
#35(23H)
UART0 送信割込み
#36(24H)
UART1 受信割込み
#39(27H)
ICR14
UART1 送信割込み
#40(28H)
下位
上位
バンク
FFFF70H
FFFF71H
FFFF72H
◎
FFFF6CH
FFFF6DH
FFFF6EH
△
FFFF60H
FFFF61H
FFFF62H
◎
FFFF5CH
FFFF5DH
FFFF5EH
△
0000BEH
◎:UART の受信エラー検出による EI2OS 停止機能付き
△:ICR12, ICR14 を共有する割込み要因を使用しない場合に使用可能
■ UART の EI2OS 機能
UART は EI2OS 対応の回路を有していますので受信 / 送信割込みで別々に EI2OS を起
動できます。
● 受信時
ほかのリソースの状態に関係なく , EI2OS を使用できます。
● 送信時
割込み制御レジスタ (ICR14) は , UART の受信割込みと共有していますので , UART の
受信で割込みを使用しない場合に EI2OS を起動できます。
347
第 16 章 UART
受信割込み発生とフラグセットのタイミング
16.5.1
受信時の割込み要因として , 受信完了 (SSR0/SSR1:RDRF=1) および受信エラーの発
生 (SSR0/SSR1:PE, ORE, FRE のいずれかが "1") があります。
■ 受信割込み発生とフラグセットのタイミング
●
動作モード 0, 1 の場合はストップビットの検出 , 動作モード 2 の場合はデータの最終
ビット (D7) の検出で , 受信データがインプットデータレジスタ (SIDR0/SIDR1) に格納
され , ステータスレジスタ (SSR0/SSR1) の受信データフルフラグビット (RDRF) に "1"
がセットされます。受信エラーが発生していれば , 受信エラーフラグビット (PE, ORE,
FRE) のいずれかに "1" がセットされます。各動作モードともいずれかの受信エラーフ
ラグビットに "1" がセットされた場合は , インプットデータレジスタ (SIDR0/SIDR1) の
値は無効データになります。
動作モード 0( 非同期 , ノーマルモード )
●
ストップビット検出時にステータスレジスタ (SSR0/SSR1) の受信データフルフラグ
ビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラグビット (PE,
ORE, FRE) のいずれかに "1" がセットされます。
動作モード 1( 非同期 , マルチプロセッサモード )
ストップビット検出時にステータスレジスタ (SSR0/SSR1) の受信データフルフラグ
ビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラグビット
(ORE, FRE) のいずれかに "1" がセットされます。パリティエラーの検出はできません。
● 動作モード 2( 同期 , ノーマルモード )
受信データの最終ビット (D7) 検出時にステータスレジスタ (SSR0/SSR1) の受信データ
フルフラグビット (RDRF) に "1" がセットされ , 受信エラーがあれば , 受信エラーフラ
グビット (ORE) に "1" がセットされます。パリティエラー, およびフレーミングエラー
の検出はできません。
図 16.5-1 受信動作とフラグセットのタイミング
受信データ
(動作モード0)
ST
D0
D1
D5
D6
D7/P
SP
受信データ
(動作モード1)
ST
D0
D1
D6
D7
A/D
SP
D0
D1
D4
D5
D6
D7
受信データ
(動作モード2)
PE, ORE, FRE*
RDRF
受信割込み発生
* :PEフラグはモード1では使用できません。
PE, FREフラグはモード2では使用できません。
ST :スタートビット
SP :ストップビット
A/D :モード2(マルチプロセッサモード)のアドレス/データ設定ビット
● 受信割込み発生のタイミング
受信割込みが許可 (SSR0/SSR1:RIE=1) されている場合に , ステータスレジスタ (SSR0/
SSR1)の受信データフルフラグビット(RDRF), 受信エラーフラグビット(PE, ORE, FRE)
のいずれかに "1" がセットされると , 受信割込み要求を出力します。
348
第 16 章 UART
送信割込み出力とフラグセットのタイミング
16.5.2
送信時の割込みは , アウトプットデータレジスタ (SODR0/SODR1) に次のデータの
書込みが可能な状態になると発生します。
■ 送信割込み発生とフラグセットのタイミング
ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) は , ア
ウトプットデータレジスタ (SODR0/SODR1) に書き込まれたデータが送信用シフトレ
ジスタに転送され , 次のデータ書込みが可能になると "1" がセットされます。アウト
プットデータレジスタ (SODR0/SODR1) に送信データを書き込んだ場合は , 送信データ
エンプティフラグビット (TDRE) が "0" にクリアされます。
図 16.5-2 送信動作とフラグセットのタイミング
[動作モード0,1]
送信割込み発生
送信割込み発生
SODR書込み
TDRE
SO0/SO1出力
[動作モード2]
ST
D0
D1
D2
D3
D4
送信割込み発生
D5
D6
D7
SP
A/D SP
ST
D0
D1
D2
D3
D3
D4
D5
D6
D7
送信割込み発生
SODR書込み
TDRE
SO0/SO1出力
ST
D0~D7
SP
A/D
D0
D1
D2
D3
D4
D5
D6
D7
D0
D1
D2
:スタートビット
:データビット
:ストップビット
:アドレス/データ設定ビット
● 送信割込み要求出力のタイミング
送信割込みが許可 (SSR0/SSR1:TIE=1) されている場合に , ステータスレジスタ (SSR0/
SSR1) の送信データエンプティフラグビット (TDRE) に "1" がセットされると , 送信割
込み要求を出力します。
<注意事項>
初期状態でステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット
(TDRE) は "1" がセットされているため , 送信割込みを許可 (SSR0/SSR1:TIE=1) した場合
は , 送信割込みを出力します。送信データエンプティフラグビット (TDRE) は読出し専用
ですので , アウトプットデータレジスタ (SODR0/SODR1)に新規データを書き込む以外に
"0" にクリアする方法がありません。送信割込み許可のタイミングに注意してください。
349
第 16 章 UART
16.6
UART のボーレート
UART の送受信クロックは , 次のいずれかを設定できます。
・専用ボーレートジェネレータ
・内部クロック (16 ビットリロードタイマ )
・外部クロック (SC 端子入力のクロック )
■ UART ボーレート設定
ボーレートの選択回路は図 16.6-1 のようになっており , ボーレートは次の 3 種類の中
から 1 種類を設定できます。
● 専用ボーレートジェネレータによるボーレートの設定
UART は専用ボーレートジェネレータを内蔵しており , モードレジスタ (SMR0/SMR1)
で , 6 種類のボーレートから 1 種類を設定できます。マシンクロックとモードレジスタ
(SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) によって , 非同期もしくは , 同期ボー
レートを設定します。
● 内部クロックによるボーレートの設定
16 ビットリロードタイマから供給される内部クロックを同期の場合はそのまま , 非同
期の場合は 16 分周してボーレートとして使用します。リロードタイマ値の設定によっ
てボーレートを設定できます。
● 外部クロックによるボーレートの設定
UART のクロック入力端子 (SCK) より入力されたクロックは , 同期モードの場合 , 入力
したクロックの周波数を , 非同期モードの場合 , 入力したクロックの周波数を 16 分周
した周波数をボーレートとして設定できます。
350
第 16 章 UART
図 16.6-1 UART ボーレート選択回路
SMR0/SMR1:CS2~CS0
(クロック設定ビット)
[専用ボーレートジェネレータ]
クロックセレクタ
4
"000B"~
"100B"の場合
分周回路
(同期)
1/2,1/4,1/8分周の
いずれか設定
(非同期)
内部固定分周比を設定
プリスケーラ
[内部タイマ]
TMCR:CSL1, CSL0
2
クロックセレクタ
"110B"の場合
ダウン
カウンタ
UF
1/1(同期)
1/16(非同期)
ボーレート
プリスケーラ
16ビットリロードタイマ
[外部クロック]
"111B"の場合
端子
1/1(同期)
1/16(非同期)
SMR0/SMR1:MD1
(クロック同期/非同期の設定)
351
第 16 章 UART
16.6.1
専用ボーレートジェネレータによるボーレート
UART の転送クロックとして , 専用ボーレートジェネレータの出力クロックを設定
した場合の設定可能なボーレートを示します。
■ 専用ボーレートジェネレータによるボーレート
モードレジスタ (SMR0/SMR1) のクロック設定ビットに "000B ∼ 101B" を設定した場合
は , 専用ボーレートジェネレータによるボーレートが設定されます。
専用ボーレートジェネレータで転送クロックを生成する場合 , マシンクロックはマシ
ンクロックプリスケーラで分周された後 , クロックセレクタで設定される転送クロッ
ク分周比で分周されます。マシンクロック分周比は , 非同期 / 同期共通ですが , 転送ク
ロック分周比は , 非同期と同期で , 別々にモードレジスタ (SMR0/SMR1) のクロック設
定ビット (CS2 ∼ CS0) で設定された値となります。
実際の転送レートは , 次式で求められます。
非同期ボーレート = φ ÷ ( マシンクロック分周比 )/( 非同期転送クロック分周比 )
同期ボーレート = φ ÷ ( マシンクロック分周比 )/( 同期転送クロック分周比 )
φ : マシンクロック周波数
● プリスケーラによる分周比 ( 非同期 / 同期共通 )
マシンクロックの分周比は , 表 16.6-1 に示すように通信プリスケーラ制御レジスタ
(CDCR0/CDCR1) の分周比設定ビット (DIV2 ∼ DIV0) で設定します。
表 16.6-1 マシンクロックプリスケーラによる分周比の設定
MD
DIV2
DIV1
DIV0
div
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 : マシンクロック分周比
352
第 16 章 UART
● 同期転送クロック分周比
同期ボーレートは , 表 16.6-2 に示すようにモードレジスタ (SMR0/SMR1) のクロック設
定ビット (CS2 ∼ CS0) で設定します。
表 16.6-2 同期ボーレート分周比の設定
CS2
CS1
CS0
CLK 同期時
0
0
0
3.125 Mbps
( φ ÷ div)/1
( φ ÷ div)/1
0
0
1
1.6 Mbps
( φ ÷ div)/2
( φ ÷ div)/2
0
1
0
781.25 kbps
( φ ÷ div)/4
( φ ÷ div)/4
0
1
1
390.63 kbps
( φ ÷ div)/8
( φ ÷ div)/8
1
0
0
195.34 kbps
( φ ÷ div)/16
( φ ÷ div)/16
1
0
1
97.66 kbps
( φ ÷ div)/32
( φ ÷ div)/32
算出式
SC0/SC1
ただし , φ はマシンサイクル , div はマシンクロック分周比 , φ =25 MHz, div=8 で算出しています。
また , CS2 ∼ CS0=000B は div=8 より小さく設定することはできません。φ /8, または同期ボーレー
トより小さくなるように設定してください。
<注意事項>
同期転送時に専用ボーレートジェネレータを使用する場合 , 以下の設定をしないでくださ
い。
• CS2 ∼ CS0 = 000B のとき , DIV2 ∼ DIV0 = 000B, 001B, 010B
• CS2 ∼ CS0 = 001B のとき , DIV2 ∼ DIV0 = 000B
● 非同期転送クロック分周比
非同期ボーレートの分周比は , 表 16.6-3 に示すようにモードレジスタ (SMR0/SMR1) の
CS2 ∼ CS0 ビットで設定します。
表 16.6-3 非同期ボーレート分周比の設定
CS2
CS1
CS0
非同期
( 調歩同期 )
算出式
SC0/SC1
0
0
0
120, 192 bps
( φ ÷div)/(8×13× 2)
( φ ÷div)/(13×1)
0
0
1
60, 096 bps
( φ ÷div)/(8×13× 4)
( φ ÷div)/(13×2)
0
1
0
30, 048 bps
( φ ÷div)/(8×13× 8)
( φ ÷div)/(13×4)
0
1
1
15, 024 bps
( φ ÷div)/(8×13×16)
( φ ÷div)/(13×8)
1
0
0
781.25 kbps
( φ ÷ div)/(8 × 2 × 2)
( φ ÷ div)/2
1
0
1
390.625 kbps
( φ ÷ div)/(8 × 2 × 4)
( φ ÷ div)/4
ただし , φ はマシンサイクル , div はマシンクロック分周比 , φ =25 MHz, div=1 で算出しています。
353
第 16 章 UART
内部タイマによるボーレート
16.6.2
UART の転送クロックとして , 16 ビットリロードタイマから供給される内部クロッ
クを設定した場合の設定とボーレートの計算式を示します。
■ 内部タイマ (16 ビットリロードタイマ ) によるボーレート
モードレジスタ (SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) に "110B" を設定し
た場合は , 内部クロックによるボーレートが設定されます。ボーレートは , 16 ビットリ
ロードタイマのプリスケーラ分周比とリロード値の設定により設定できます。
図 16.6-2 内部タイマ (16 ビットリロードタイマ ) によるボーレート選択回路
SMR0/SMR1:CS2~CS0=110 B
(内部タイマ設定)
クロックセレクタ
16ビットリロードタイマ出力
(プリスケーラ分周値と
リロード値によって周波数設定)
1/1(同期)
1/16(非同期)
ボーレート
SMR0/SMR1:MD1
(クロック同期/非同期の設定)
● ボーレート計算式
非同期ボーレート =( φ ÷ N)/(16 × 2 × (n+1)) bps
同期ボーレート =( φ ÷ N)/(2 × (n+1)) bps
φ : マシンクロック周波数
N:16 ビットリロードタイマ 0 のプリスケーラによる分周比 (21, 23, 25)
n:16 ビットリロードタイマ 0 のリロード値 (0 ∼ 65, 535)
<注意事項>
UART0 は 16 ビットリロードタイマ 1, UART1 は 16 ビットリロードタイマ 2 でボーレー
トの設定を行ってください。
354
第 16 章 UART
● リロード値の設定例 ( マシンクロック :7.3728 MHz のとき )
表 16.6-4 ボーレートとリロード値
リロード値 (n)
クロック非同期 ( 調歩同期 )
クロック同期
ボーレート
N=21
(マシンサイクルの
2 分周 )
N=23
(マシンサイクルの
8 分周 )
N=21
(マシンサイクルの
2 分周 )
N=23
( マシンサイクル
の 8 分周 )
38400
2
−
47
11
19200
5
−
95
23
9600
11
2
191
47
4800
23
5
383
95
2400
47
11
767
191
1200
95
23
1535
383
600
191
47
3071
767
300
383
95
6143
1535
N :16 ビットリロードタイマ 0 のプリスケーラによる分周比
−:設定禁止
<注意事項>
クロック同期時 , 以下の設定は禁止です。
N = 1, n = 0
355
第 16 章 UART
16.6.3
外部クロックによるボーレート
UART の転送クロックとして , 外部クロックを設定した場合の設定とボーレートの
計算式を示します。
■ 外部クロックによるボーレート
外部クロックによるボーレートを設定するには , 次に示す設定が必要です。
• モードレジスタ (SMR0/SMR1) のクロック設定ビット (CS2 ∼ CS0) に "111B" を設定
した後 , 外部クロック入力によるボーレートを設定します。
• SC 端子を入力ポートに設定します。
• モードレジスタ (SMR0/SMR1) のシリアルクロック出力許可ビット (SCKE) に "0" を
設定して端子をシリアルクロック入力端子とします。
図 16.6-3 に示すように , SC 端子から入力された外部クロックを基にボーレートを設定
します。内部の分周比は固定されていますので , ボーレートを変更するには外部の入力
クロックの周期を変更する必要があります。
図 16.6-3 外部クロックによるボーレート選択回路
SMR0/SMR1:CS2~CS0=111B
(外部クロック設定)
クロックセレクタ
SC
1/1(同期)
1/16(非同期)
端子
ボーレート
SMR0/SMR1:MD1
(クロック同期/非同期設定)
● ボーレート計算式
非同期ボーレート = φ/16 bps
同期ボーレート
= φ' bps
ただし , φ の最大はマシンクロックの 1/2 まで , φ' の最大はマシンクロックの 1/8 まで
です。
356
第 16 章 UART
UART の動作説明
16.7
UART には , 双方向シリアル通信機能 ( 動作モード 0, 2), マスタ / スレーブ型通信機
能 ( 動作モード 1) があります。
■ UART の動作
● 動作モード
UART の動作モードは動作モード 0 ∼ 2 の 3 種類があり , 表 16.7-1 に示すように CPU
間の接続方式やデータ転送方式で設定できます。
表 16.7-1 UART の動作モード
データ長
動作モード
同期方式
パリティなし
パリティあり
0
ノーマルモード
7 ビットまたは 8 ビット
非同期
1
マルチプロセッサ
モード
8 + 1*1
―
非同期
2
ノーマルモード
8
―
同期
ストップ
ビット長
1 ビット
または
2 ビット *2
なし
―:設定不可
*1:" + 1" は通信制御用に使用されるアドレス / データ設定ビット (A/D) です。
*2:受信時のストップビットは 1 ビットのみ検出可能
<注意事項>
UART の動作モード 1 は , マスタ・スレーブ型接続時のマスタ時に使用されます。
● CPU 間接続方式
1 対 1 接続 ( ノーマルモード ) かマスタ / スレーブ型接続 ( マルチプロセッサモード ) を
設定できます。ノーマルモード , マルチプロセッサモードともにデータ長 , パリティの
有無 , 同期方式などは , すべての CPU で統一しておく必要があります。動作モードは
次のように設定します。
• 1 対 1 接続では , 双方の CPU で動作モード 0, 2 のいずれか同じ方式を採用する必要
があります。非同期方式では動作モード 0 を , 同期方式では動作モード 2 を設定し
てください。
• マスタ / スレーブ型接続では , 動作モード 1 を使用します。動作モード 1 を設定し ,
マスタとして使用してください。マスタ / スレーブ型接続ではパリティなしを設定
してください。
● 同期方式
動作モードで , 非同期方式 ( 調歩同期 ) かクロック同期方式を設定できます。
357
第 16 章 UART
● 信号方式
UART は , NRZ(Non Return to Zero) 形式のデータを扱えます。
● 動作許可
UART は , 制御レジスタ (SCR0/SCR1) に送信動作許可ビット (TXE), 受信動作許可ビッ
ト (RXE) があり , 送受信動作を制御できます。動作中に動作禁止した場合は , 次のよう
になります。
• 受信中 ( 受信用シフトレジスタにデータが入力されている場合 ) に受信動作を禁止
した場合は , 現在受信しているデータの受信を終了し , インプットデータレジスタ
(SIDR0/SIDR1) に受信データを格納して受信動作を停止します。
• 送信中 ( 送信用シフトレジスタからデータが出力されている場合 ) に送信動作を禁
止した場合は , アウトプットデータレジスタ (SODR0/SODR1) にデータがなくなっ
た後に送信動作を停止します。
• UART において動作モード 1 の場合 , 受信データの 9 ビット目は無視されます。
358
第 16 章 UART
16.7.1
非同期モード ( 動作モード 0, 1) 時の動作
UART を動作モード 0( ノーマルモード ), 動作モード 1( マルチプロセッサモード ) で
使用する場合 , 転送方式は非同期となります。
■ 非同期モード時の動作
● 送受信データフォーマット
送受信は , 必ずスタートビット ("L" レベル ) から始まり , 指定されたデータビット長の
送受信が行われ , ストップビット ("H" レベル ) で終了します。
• 動作モード 0 では , データ長は 7 ビットまたは 8 ビットを選択します。パリティビッ
トは , あり / なしの選択ができます。
• 動作モード 1 では , データ長は 8 ビットに固定されます。パリティビットは付加さ
れません。9ビット目に, アドレス/データビット(SMR0/SMR1: A/D)が付加されます。
図 16.7-1 に , 送受信データフォーマット ( 動作モード 0, 1) を示します。
図 16.7-1 送受信データフォーマット ( 動作モード 0, 1)
[動作モード0]
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
ST
D0
D1
D2
D3
D4
D5
D6
D7
SP
ST
D0
D1
D2
D3
D4
D5
D6
D7
P
SP
Pなし
データ8ビット
SP
SP
Pあり
ST
D0
D1
D2
D3
D4
D5
D6
D7
P
ST
D0
D1
D2
D3
D4
D5
D6
SP
SP
SP
Pなし
ST
D0
D1
D2
D3
D4
D5
D6
SP
データ7ビット
ST
D0
D1
D2
D3
D4
D5
D6
P
SP
SP
Pあり
ST
D0
D1
D2
D3
D4
D5
D6
P
SP
D2
D3
D4
D5
D6
D7
A/D
[動作モード1]
ST
D0
D1
SP
SP
データ8ビット
ST
D0
D1
D2
D3
D4
D5
D6
D7
A/D
SP
ST :スタートビット
SP :ストップビット
P :パリティビット
A/D :アドレス/データビット
359
第 16 章 UART
● 送信動作
ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) に "1"
が設定されている場合は , アウトプットデータレジスタ (SODR0/SODR1) に送信データ
を書き込みます。送信動作が許可 (SCR0/SCR1:TXE=1) されていると , 送信が行われま
す。
送信データが送信用シフトレジスタに転送され , 送信が開始されるとステータスレジ
スタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) に再び "1" がセットさ
れ , 次の送信データをセットできるようになります。送信割込み要求出力が許可 (SSR0/
SSR1:TIE=1) されていると , 送信割込み要求を出力してアウトプットデータレジスタ
(SODR0/SODR1) に送信データをセットするように要求します。送信データエンプティ
フラグビット (TDRE) は , アウトプットデータレジスタ (SODR0/SODR1) に送信データ
を書き込むと "0" にクリアされます。
● 受信動作
受信動作が許可 (SCR0/SCR1:RXE=1) されていると , 常に受信動作が行われます。ス
タートビットを検出した場合は, 制御レジスタ(SCR0/SCR1)で設定されたデータフォー
マットに従って 1 フレームデータの受信が行われます。1 フレームの受信が終わると ,
受信エラーが発生した場合はステータスレジスタ (SSR0/SSR1) の受信エラーフラグ
ビット (PE, ORE, FRE) のいずれかに "1" がセットされた後 , 受信データフルフラグビッ
ト (RDRF) に "1" がセットされます。受信割込み要求出力が許可 (SSR0/SSR1:RIE=1) さ
れていると , 受信割込み要求を出力します。ステータスレジスタ (SSR0/SSR1) の各受信
エラーフラグビット (PE, ORE, FRE) を調べ , 正常受信ならインプットデータレジスタ
(SIDR0/SIDR1) を読み出し , エラーが発生していればエラー処理をするようにしてくだ
さい。受信データフルフラグビット (RDRF) は , インプットデータレジスタ (SIDR0/
SIDR1) から受信データを読み出すと "0" にクリアされます。
● ストップビット
送信時には 1 ビットまたは 2 ビットを設定できます。受信側では , 常に最初の 1 ビット
を判別します。
● エラー検出
• 動作モード 0 では , パリティエラー , オーバランエラー , フレーミングエラーが検出
できます。
• 動作モード 1 では , オーバランエラー, フレーミングエラーが検出でき , パリティエ
ラーは検出できません。
● パリティ
パリティは , 動作モード 0 の場合に使用できます。制御レジスタ (SCR0/SCR1) のパリ
ティイネーブルビット (PEN) でパリティの有無をパリティ設定ビット (P) で偶数パリ
ティ / 奇数パリティを設定できます。動作モード 1 ではパリティは使用できません。
360
第 16 章 UART
図 16.7-2 パリティ有効時の送信データ
SI1
ST
SP
1
SO1
1
1
0
0
0
ST
1
SO1
0
0
1
1
0
0
0
1
1
データ
0
0
SP
偶数パリティの送信
(SCR1:P=0)
SP
奇数パリティの送信
(SCR1:P=1)
1
ST
1
偶数パリティにて受信時
パリティエラー発生
(SCR1:P=0)
0
パリティ
ST:スタートビット
SP:ストップビット
<注意事項>動作モード1,2では,パリティは使用できません。
361
第 16 章 UART
16.7.2
同期モード ( 動作モード 2) 時の動作
UART 動作モード 2( ノーマルモード ) で使用する場合 , 転送方式はクロック同期と
なります。
■ 同期モード ( 動作モード 2) 時の動作
● 転送データフォーマット
同期モードでは , 8 ビットデータを LSB ファーストで転送します。
図 16.7-3 転送データフォーマット ( 動作モード 2)
送信データ書込み
マークレベル
送受信クロック
RXE,TXE
送受信データ
1
0
LSB
1
1
0
0
1
データ
0
MSB
● クロック供給
クロック同期 (I/O 拡張シリアル ) 方式では , 送受信ビット数に等しい数のクロックの供
給が必要になります。
• 内部クロックを設定している場合は , データを送信した場合にデータ受信用同期ク
ロックが生成されます。
• 外部クロックを設定している場合は , 送信側 UART のアウトプットデータレジスタ
(SODR0/SODR1) にデータがあること (SSR0/SSR1:TDRE=0) を確認した後 , 正確に 1
バイト分のクロックを外部から供給する必要があります。送信開始前と終了後は ,
必ずマークレベル "H" にする必要があります。
● エラー検出
オーバランエラーが検出可能で , パリティエラー, フレーミングエラーは検出できませ
ん。
362
第 16 章 UART
● 初期化
同期モードを使用する場合の各制御レジスタの設定値を示します。
[ モードレジスタ (SMR0/SMR1)]
MD1, MD0
; "10B" を設定
CS2, CS1, CS0
; クロックセレクタのクロック入力を指定
SCKE
; 専用ボーレートジェネレータまたは内部クロックの場合
は "1" を設定
クロック出力 , 外部クロック ( クロック入力 ) の場合は
"0" を設定
SOE
; 送信する場合は , "1" を設定
受信する場合は , "0" を設定
[ 制御レジスタ (SCR0/SCR1)]
PEN
; "0" を設定
P, SBL, A/D
; 意味を持ちません
CL
; "1"(8 ビットデータ ) を設定
REC
; "0"( 初期化するため , エラーフラグは全クリア ) を設定
RXE, TXE
; どちらか一方に "1" を設定
[ ステータスレジスタ (SSR0/SSR1)]
RIE
; 割込みを使用する場合は , "1" を設定
割込みを使用しない場合は , "0" を設定
TIE
; 割込みを使用する場合は , "1" を設定
割込みを使用しない場合は , "0" を設定
● 通信開始
アウトプットデータレジスタ (SODR0/SODR1) へのデータ書込みで通信を開始します。
受信する場合でも通信を開始する場合は , 必ず送信データをアウトプットデータレジ
スタ (SODR0/SODR1) に書き込む必要がありますので注意してください。
● 通信終了
1 フレームのデータ送受信が終了した場合は , ステータスレジスタ (SSR0/SSR1) の受信
データフルフラグビット (RDRF) に "1" がセットされます。受信時は , オーバランエ
ラーフラグビット (ORE) をチェックし , 通信が正常に行われたかどうかを判断してく
ださい。
363
第 16 章 UART
16.7.3
双方向通信機能 ( ノーマルモード )
動作モード 0, 2 で , 1 対 1 接続のシリアル双方向通信ができます。同期方式は , 動作
モード 0 の場合は非同期 , 動作モード 2 の場合は同期となります。
■ 双方向通信機能
UART をノーマルモード ( 動作モード 0, 2) で動作させるためには , 図 16.7-4 の設定が
必要です。
図 16.7-4 UART1 の動作モード 0 の設定
ビット 15
SCR1, SMR1
モード 0 →
モード 2 →
SSR1,
SIDR1/SODR1
モード 0 →
モード 2 →
14
13
12
11
PEN
P
SBL
CL
A/D
◎
0
◎
×
◎
×
◎
1
×
×
PE
◎
×
10
◎
×
◎
◎
◎
◎
8
7
6
5
4
3
CRE RXE TXE MD1 MD0 OTO EXT REST
0
0
ORE FRE RDRF TDRE BDS
◎
◎
9
◎
◎
◎
◎
◎
◎
RIE
TIE
◎
◎
◎
◎
0
1
0
0
◎
◎
◎
◎
◎
◎
2
1
0
− SCKE SOE
−
−
◎
◎
◎
◎
変換データを設定 ( 書込み時 ) /
受信データを保持 ( 読出し時 )
DDR
△
◎
×
1
0
△
:使用ビット
:未使用ビット
:"1" を設定
:"0" を設定
:端子の入力を使用する場合 "0" を設定
● CPU 間接続
図 16.7-5 に示すように , 2 つの CPU を相互に接続します。
図 16.7-5 UART1 の双方向通信の接続例
SO
SO
SI
SC
CPU-1
364
SI
出力
入力
SC
CPU-2
△
第 16 章 UART
● 通信手順
通信は , 送信データが準備できた場合に送信側から開始します。受信側で送信データを
受け取ると , 定期的に ANS( 本例では 1 バイトごと ) を返します。
図 16.7-6 双方向通信フローの例
(送信側)
(受信側)
スタート
スタート
動作モード設定
(0,2いずれか)
動作モード設定
(送信側と合わす)
SODRに1バイトデータを
セットして通信
データ送信
受信データあり
NO
YES
NO
受信データあり
受信データ読出しと処理
YES
データ送信
受信データ読出しと処理
(ANS)
1バイトデータ送信
365
第 16 章 UART
マスタ / スレーブ型通信機能
( マルチプロセッサモード )
16.7.4
UART は , 複数 CPU のマスタ / スレーブ型接続による通信が可能であり , 動作モー
ド 1 を使用します。UART はマスタとして使用可能です。
■ マスタ / スレーブ型通信機能
UART をマルチプロセッサモード ( 動作モード 1) で動作させるためには , 図 16.7-7 の
設定が必要です。
図 16.7-7 UART1 の動作モード 1 の設定
ビット 15
SCR1, SMR1
SSR1,
SIDR1/SODR1
14
13
12
11
PEN
P
SBL
CL
A/D
0
×
◎
1
◎
PE
×
10
◎
◎
8
7
6
5
4
3
CRE RXE TXE MD1 MD0 OTO EXT REST
0
ORE FRE RDRF TDRE BDS
◎
9
◎
◎
◎
◎
RIE
TIE
◎
◎
0
1
◎
◎
◎
2
1
0
− SCKE SOE
−
◎
◎
変換データを設定 ( 書込み時 ) /
受信データを保持 ( 読出し時 )
DDR
△
◎
×
1
0
△
△
:使用ビット
:未使用ビット
:"1" を設定
:"0" を設定
:端子の入力を使用する場合 "0" を設定
● CPU 間接続
図 16.7-8 に示すように , 2 本の共通通信ラインに 1 つのマスタ CPU と , 複数のスレー
ブ CPU を接続して , 通信システムを構成します。UART1 は , マスタ CPU として使用
可能です。
図 16.7-8 UART1 のマスタ・スレーブ型通信の接続例
SO
SI
マスタCPU
SO
SI
スレーブCPU #0
366
SO
SI
スレーブCPU #1
第 16 章 UART
● 機能設定
マスタ / スレーブ型通信では , 表 16.7-2 のように動作モードとデータ転送方式を設定し
てください。
表 16.7-2 マスタ / スレーブ型通信機能の設定
動作モード
データ
マスタ CPU
同期方式
ストップ
ビット
なし
非同期
1 ビット
または
2 ビット
スレーブCPU
A/D=1
+
8ビットアドレス
アドレス
送受信
動作モード 1
データ
送受信
パリティ
―
A/D = 0
+
8 ビットデータ
367
第 16 章 UART
● 通信手順
通信はマスタ CPU がアドレスデータを送信することで始まります。アドレスデータと
は , A/D ビットを "1" としたデータで , 通信先となるスレーブ CPU を設定します。各ス
レーブ CPU はプログラムでアドレスデータを判断し , 割り当てられたアドレスと一致
した場合に , マスタ CPU との通信 ( 通常データ ) を開始します。
図 16.7-9 マスタ / スレーブ型通信フローチャート
(マスタCPU)
スタート
動作モードを"1"とする
SIN端子をシリアルデータ
入力に設定
D0~D7にスレーブ
CPUを選択する1バイト
データ(アドレスデータ)
をセットして送信
(A/D=1)
A/Dに"0"をセット
受信動作許可
スレーブCPUと通信
通信終了?
NO
YES
ほかの
スレーブCPU
と通信
NO
YES
受信動作禁止
エンド
368
第 16 章 UART
16.8
UART 使用上の注意
UART を使用するときの注意点を示します。
■ UART 使用上の注意
● 動作許可
UART には , 制御レジスタ (SCR0/SCR1) に送信動作許可ビット (TXE), 受信動作許可
ビット (RXE) があります。初期値では , 送受信動作許可ビット (TXE, RXE) は , ともに
"0" が設定されていて動作禁止であるため , 転送前に "1" を設定して送受信動作を許可
してください。必要に応じて送受信動作を禁止にして , 転送を中止することもできま
す。
● 通信モードの設定
通信モードの設定は, 停止中にしてください。送受信中に通信モードの設定をした場合,
送受信されたデータは保証されません。
● 同期モード
UART のクロック同期モード ( 動作モード 2) は , クロック制御 (I/O 拡張シリアル ) 方
式を採用しており , スタートビット , ストップビットはデータに付加されません。
● 送信割込み許可のタイミング
ステータスレジスタ (SSR0/SSR1) の送信データエンプティフラグビット (TDRE) は初
期値が "1"( 送信データなし , 送信データ書込み許可 ) に設定されているため , 送信割込
み要求出力を許可 (SSR0/SSR1:TIE=1) した直後 , 送信割込み要求を出力します。必ず ,
送信データを準備してから , 送信割込み要求許可ビット (TIE) に "1" を設定してくださ
い。
● 動作モード 1( マルチプロセッサモード ) の受信
UART の動作モード 1( マルチプロセッサモード ) においては , 9 ビット受信での受信動
作はできません。
● クロック同期モード時のクロック設定
クロック同期モード時に専用ボーレートジェネレータを使用する場合 , 以下の設定を
しないでください。
• CS2 ∼ CS0 = 000B
• CS2 ∼ CS0 = 001B, DIV2 ∼ DIV0 = 000B
369
第 16 章 UART
370
第 17 章
DTP/ 外部割込み回路
MB90800 シリーズの DTP/ 外部割込み回路の機能
と動作について説明します。
17.1 DTP/ 外部割込み回路の概要
17.2 DTP/ 外部割込み回路の構成
17.3 DTP/ 外部割込み回路の端子
17.4 DTP/ 外部割込み回路のレジスタ
17.5 DTP/ 外部割込み回路の動作説明
17.6 DTP/ 外部割込み回路使用上の注意
371
第 17 章 DTP/ 外部割込み回路
17.1
DTP/ 外部割込み回路の概要
DTP(Data Transfer Peripheral)/ 外部割込み回路は , 外部割込み入力端子から入力さ
れた割込み要求を検出し , 割込み要求を出力します。
■ DTP/ 外部割込み機能
DTP/ 外部割込み回路の機能は , 外部割込み入力端子に入力されるエッジ , またはレベ
ル信号を検出した場合に割込み要求を出力します。
割込み要求が CPU に受け付けられ , 拡張インテリジェント I/O サービス (EI2OS) が許
可に設定されている場合は , EI2OS による自動データ転送 (DTP 機能 ) を行った後 , 割
込み処理ルーチンへ分岐します。また , EI2OS が禁止に設定されている場合は , EI2OS
による自動データ転送 (DTP 機能 ) を起動せず , 割込み処理ルーチンへ分岐します。
表 17.1-1 DTP/ 外部割込みの概要
外部割込み機能
DTP 機能
入力端子
4 チャネル (P65/INT0, P66/INT1, P67/INT2, P70/INT3)
割込み要因
要求レベル設定レジスタ (ELVR) にて検出レベル , またはエッジの
種類を端子ごとに設定可能
"L" レベル / "H" レベルの入力
立上りエッジ/立下りエッジの入力
割込み番号
#11(0BH), #13(0DH), #16(10H)
割込み制御
DTP/ 外部割込み許可レジスタ (ENIR) による割込み要求出力の許可
と禁止
割込みフラグ
DTP/ 外部割込み要因レジスタ (EIRR) による割込み要因の保持
処理設定
EI2OS を禁止に設定
(ICR:ISE=0)
EI2OS を許可に設定
(ICR:ISE=1)
処理
割込み処理ルーチンへ分岐
EI2OS による自動データ転送後 ,
割込み処理ルーチンへ分岐
ICR: 割込み制御レジスタ
■ DTP/ 外部割込み回路の割込みと EI2OS
表 17.1-2 DTP/ 外部割込み回路の割込みと EI2OS
割込み制御レジスタ
チャネル
ベクタテーブルアドレス
EI2OS
割込み番号
レジスタ名
アドレス
下位
上位
バンク
INT0
#11(0BH)
ICR00
0000B0H
FFFFD0H
FFFFD1H
FFFFD2H
INT1
#13(0DH)
ICR01
0000B1H
FFFFC8H
FFFFC9H
FFFFCAH
#16(10H)
ICR02
0000B2H
FFFFBCH
FFFFBDH
FFFFBEH
INT2
INT3
○:使用可能
372
○
第 17 章 DTP/ 外部割込み回路
17.2
DTP/ 外部割込み回路の構成
DTP/ 外部割込み回路は以下のブロックで構成されています。
・DTP/ 外部割込み入力検出回路
・DTP/ 外部割込み要因レジスタ (EIRR)
・DTP/ 外部割込み許可レジスタ (ENIR)
・要求レベル設定レジスタ (ELVR)
■ DTP/ 外部割込み回路のブロックダイヤグラム
図 17.2-1 DTP/ 外部割込み回路のブロックダイヤグラム
要求レベル設定レジスタ(ELVR)
LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0
セレクタ
DTP/外部割込み入力
検出回路
端子
INT0
セレクタ
端子
INT1
内部データバス
セレクタ
端子
INT2
端子
セレクタ
INT3
DTP/外部割込み要因レジスタ(EIRR)
-
-
-
-
ER3
ER2
ER1
ER0
割込み要求
DTP/外部割込み許可レジスタ(ENIR)
-
-
-
-
EN3
EN2
EN1
EN0
373
第 17 章 DTP/ 外部割込み回路
● DTP/ 外部割込み入力検出回路
外部割込み入力端子に入力された信号と , 要求レベル設定レジスタ (ELVR) で設定した
レベル , またはエッジが一致した場合は , 外部割込み入力端子に対応する DTP/ 外部割
込み要因フラグビット (EIRR:ER3 ∼ ER0) が "1" にセットされます。
● 要求レベル設定レジスタ (ELVR)
外部割込み入力端子ごとに , 割込み要求の検出条件 ( レベルまたはエッジ ) を設定しま
す。
● DTP/ 外部割込み要因レジスタ (EIRR)
割込み要因の保持とクリアを行います。
● DTP/ 外部割込み許可レジスタ (ENIR)
外部割込み入力端子ごとに , 割込み要求の許可 / 禁止を設定します。
374
第 17 章 DTP/ 外部割込み回路
DTP/ 外部割込み回路の端子
17.3
DTP/ 外部割込み回路の端子 , および端子部のブロックダイヤグラムを示します。
■ DTP/ 外部割込み回路の端子
DTP/ 外部割込み回路の端子は , 入出力ポートと兼用になっています。
表 17.3-1 DTP/ 外部割込み回路の端子
端子名
端子機能
入出力形式
プルアップ抵抗 スタンバイ制御 端子の使用に必要な設定
入力ポートに設定
(DDR6:bit5=0)
アナログ入力禁止
(ADER0:bit5=0)
P65/
AN5/
INT0
ポート 6 入出力 /
A/D アナログ入力 /
外部割込み入力
CMOS 出力 /
CMOSヒステ
リシス入力
P66/
AN6/
INT1
P67/
AN7/
INT2
入力ポートに設定
(DDR6:bit6=0)
アナログ入力禁止
(ADER0:bit6=0)
なし
なし
入力ポートに設定
(DDR6:bit7=0)
アナログ入力禁止
(ADER0:bit7=0)
入力ポートに設定
(DDR7:bit0=0)
アナログ入力禁止
(ADER1:bit0=0)
ポート 7 入出力 /
A/D アナログ入力 /
外部割込み入力
P70/
AN8/
INT3
■ DTP/ 外部割込み回路の端子部のブロックダイヤグラム
図 17.3-1 DTP/ 外部割込み回路の端子部のブロックダイヤグラム
内 部 デ ー タ バ ス
PDR読出し
PDR
PDR書込み
DDR
入出力
判定回路
入力バッファ
出力バッファ
ポート
端子
スタンバイ制御(LPMCR:SPL=1)
375
第 17 章 DTP/ 外部割込み回路
17.4
DTP/ 外部割込み回路のレジスタ
DTP/ 外部割込み回路のレジスタ一覧を示します。
■ DTP/ 外部割込み回路のレジスタ
図 17.4-1 DTP/ 外部割込み回路のレジスタ一覧
bit15.................................................bit8
bit7.................................................bit0
DTP/ 外部割込み要因レジスタ (EIRR)
DTP/ 外部割込み許可レジスタ (ENIR)
要求レベル設定レジスタ (ELVR)
376
第 17 章 DTP/ 外部割込み回路
DTP/ 外部割込み要因レジスタ (EIRR)
17.4.1
DTP/ 外部割込み要因レジスタ (EIRR) は , 割込み要因の保持とクリアをします。
■ DTP/ 外部割込み要因レジスタ (EIRR)
図 17.4-2 DTP/ 外部割込み要因レジスタ (EIRR)
bit
アドレス
000031H
15
14
13
12
11
10
9
8
-
-
-
-
ER3
ER2
ER1
ER0
-
-
-
-
R/W
R/W
R/W
R/W
R/W :リード/ライト可能
- : 未定義ビット
初期値
----XXXXB
ER3
~
ER0
0
割込み要求なし
割込み要求クリア
1
割込み要求あり
動作に影響しません。
外部割込み要求フラグビット
読出し時
書込み時
X : 不定
377
第 17 章 DTP/ 外部割込み回路
表 17.4-1 DTP/ 外部割込み要因レジスタ (EIRR) の各ビットの機能説明
ビット名
機能
bit15
∼
bit12
未定義ビット 設定は無効となります。
bit11
・ 割込み要求のフラグビットです。
・ 外部割込み入力端子 (INT3) に , 要求レベル設定レジスタ (ELVR) の外部
割込み要求検出条件設定ビット (LB3, LA3) で 設定したレベル , または
ER3:
エッジ信号を検出した場合に "1" がセットされます。
外部
・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット
割込み要求
(EN3) を "1" に設定している場合は , "1" がセットされると CPU へ割込
フラグビット
み要求を出力します。
・ "0" を設定した場合は , 割込み要求がクリアされます。
・ "1" を設定した場合は , 動作に影響しません。
bit10
・ 割込み要求のフラグビットです。
・ 外部割込み入力端子 (INT2) に , 要求レベル設定レジスタ (ELVR) の外部
割込み要求検出条件設定ビット (LB2, LA2) で 設定したレベル , または
ER2:
エッジ信号を検出した場合に "1" がセットされます。
外部
・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット
割込み要求
(EN2) を "1" に設定している場合は , "1" がセットされると CPU へ割込
フラグビット
み要求を出力します。
・ "0" を設定した場合は , 割込み要求がクリアされます。
・ "1" を設定した場合は , 動作に影響しません。
bit9
・ 割込み要求のフラグビットです。
・ 外部割込み入力端子 (INT1) に , 要求レベル設定レジスタ (ELVR) の外部
割込み要求検出条件設定ビット (LB1, LA1) で 設定したレベル , または
ER1:
エッジ信号を検出した場合に "1" がセットされます。
外部
・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット
割込み要求
(EN1) を "1" に設定している場合は , "1" がセットされると CPU へ割込
フラグビット
み要求を出力します。
・ "0" を設定した場合は , 割込み要求がクリアされます。
・ "1" を設定した場合は , 動作に影響しません。
bit8
・ 割込み要求のフラグビットです。
・ 外部割込み入力端子 (INT0) に , 要求レベル設定レジスタ (ELVR) の外部
割込み要求検出条件設定ビット (LB0, LA0) で設定したレベル , または
ER0:
エッジ信号を検出した場合に "1" がセットされます。
外部
・ DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み要求許可ビット
割込み要求
(EN0) を "1" に設定している場合は , "1" がセットされると CPU へ割込
フラグビット
み要求を出力します。
・ "0" を設定した場合は , 割込み要求がクリアされます。
・ "1" を設定した場合は , 動作に影響しません。
378
第 17 章 DTP/ 外部割込み回路
<参考>
DTP 機能として拡張インテリジェント I/O サービス (EI2OS) を起動した場合は , 1 回の
データ転送が終了した時点で , 対応する外部割込み要求フラグビット (ER3 ∼ ER0) は "0"
にクリアされます。
<注意事項>
• 外部割込み要求フラグビット (ER3 ∼ ER0) を "0" に設定する場合は , 必ずソフトウェ
アで "1" をリードしたビットに "0" を設定してください。"0" を設定する場合に , ハード
ウェアにて , 外部割込み要求フラグビット (ER3 ∼ ER0) が "1" にセットされた場合は ,
外部割込み要求フラグビット (ER3 ∼ ER0) を "0" にクリアしてしまい割込み動作がう
まくいかない場合があります。
• DTP/ 外部割込み要因ビット (EIRR: ER) の値は , 対応する DTP/ 外部割込み許可ビット
(ENIR: EN) が "1" に設定されている時のみ有効です。
DTP/ 外部割込みが許可されていない状態 (ENIR: EN=0) では , DTP/ 外部割込み要因の
有無にかかわらず DTP/ 外部割込み要因ビットがセットされる可能性があります。
• DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビッ
ト (EIRR: ER) をクリアしてください。
379
第 17 章 DTP/ 外部割込み回路
DTP/ 外部割込み許可レジスタ (ENIR)
17.4.2
DTP/ 外部割込み許可レジスタ (ENIR) は , 外部割込み端子ごとに外部割込み要求の
許可 / 禁止を設定します。
■ DTP/ 外部割込み許可レジスタ (ENIR)
図 17.4-3 DTP/ 外部割込み許可レジスタ (ENIR)
bit
アドレス
000030H
7
6
5
4
3
2
1
0
-
-
-
-
EN3
EN2
EN1
EN0
-
-
-
-
R/W
R/W
R/W
R/W
R/W :リード/ライト可能
:初期値
- : 未定義ビット
初期値
----0000B
EN3
~
EN0
0
割込み要求禁止
1
割込み要求許可
外部割込み要求許可ビット
表 17.4-2 DTP/ 外部割込み許可レジスタ (ENIR) の各ビットの機能説明
ビット名
bit7
∼
bit4
未定義ビット
機能
設定は無効となります。
bit3
EN3:
外部割込み要求許可
ビット
・割込み要求を許可するビットです。
・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ
(EIRR) の外部割込み要求フラグビット (ER3) が "1" に
セットされた場合 , CPU へ割込み要求を出力します。
bit2
EN2:
外部割込み要求許可
ビット
・割込み要求を許可するビットです。
・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ
(EIRR) の外部割込み要求フラグビット (ER2) が "1" に
セットされた場合 , CPU へ割込み要求を出力します。
bit1
EN1:
外部割込み要求許可
ビット
・割込み要求を許可するビットです。
・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ
(EIRR) の外部割込み要求フラグビット (ER1) が "1" に
セットされた場合 , CPU へ割込み要求を出力します。
bit0
EN0:
外部割込み要求許可
ビット
・割込み要求を許可するビットです。
・"1" を設定した場合は , DTP/ 外部割込み要因レジスタ
(EIRR) の外部割込み要求フラグビット (ER0) が "1" に
セットされた場合 , CPU へ割込み要求を出力します。
<注意事項>
DTP/ 外部割込みを許可 (ENIR: EN=1) する直前に , 対応する DTP/ 外部割込み要因ビット
(EIRR: ER) をクリアしてください。
380
第 17 章 DTP/ 外部割込み回路
<参考>
入出力ポートと兼用する外部割込み入力端子を使用する場合は , ポート方向レジスタ
(DDR) の対応する入出力ポートと兼用するビットを "0" に設定し , 端子を入力ポートとし
てください。
外部割込み要求許可ビット (ENIR:EN3 ∼ EN0) の状態にかかわらず , 外部割込み入力端子
の状態は , ポートデータレジスタ (PDR) で直接読み出すことができます。DTP/ 外部割込
み要因レジスタ (EIRR) の外部割込み要求フラグビット (ER3 ∼ ER0) は , 外部割込み要求
許可ビット (ENIR:EN3 ∼ EN0) の値に関係なく , DTP/ 外部割込み要求の信号を検出した
場合は "1" がセットされます。
表 17.4-3 DTP/ 外部割込み制御レジスタ (EIRR, ENIR) と各チャネルの対応
DTP/外部割込み端子
割込み番号
INT3
INT2
#16(10H)
外部割込み要求フラグビット
外部割込み要求許可ビット
ER3
EN3
ER2
EN2
INT1
#13(0DH)
ER1
EN1
INT0
#11(0BH)
ER0
EN0
381
第 17 章 DTP/ 外部割込み回路
要求レベル設定レジスタ (ELVR)
17.4.3
要求レベル設定レジスタ (ELVR) は , 外部割込み入力端子ごとに , 割込み要求の検出
条件 ( レベルまたはエッジ ) を設定します。
■ 要求レベル設定レジスタ (ELVR)
図 17.4-4 要求レベル設定レジスタ (ELVR)
bit
アドレス
000032H
7
6
5
4
3
2
1
0
LB3
LA3
LB2
LA2
LB1
LA1
LB0
LA0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W :リード/ライト可能
:初期値
LB3
~
LB0
0
LA3
~
LA0
0
"L"レベル検出
0
1
"H"レベル検出
1
0
立上りエッジ検出
1
1
立下りエッジ検出
初期値
00000000B
外部割込み要求検出条件設定ビット
表 17.4-4 要求レベル設定レジスタ (ELVR) の各ビットの機能説明
ビット名
機能
bit7,
bit6
LB3, LA3:
外部割込み要求検出
条件設定ビット
外部割込み入力端子 (INT3) に入力される信号から , 割込み要
求の検出条件 ( レベルまたはエッジ ) を設定するビットです。
bit5,
bit4
LB2, LA2:
外部割込み要求検出
条件設定ビット
外部割込み入力端子 (INT2) に入力される信号から , 割込み要
求の検出条件 ( レベルまたはエッジ ) を設定するビットです。
bit3,
bit2
LB1, LA1:
外部割込み要求検出
条件設定ビット
外部割込み入力端子 (INT1) に入力される信号から , 割込み要
求の検出条件 ( レベルまたはエッジ ) を設定するビットです。
bit1,
bit0
LB0, LA0:
外部割込み要求検出
条件設定ビット
外部割込み入力端子 (INT0) に入力される信号から , 割込み要
求の検出条件 ( レベルまたはエッジ ) を設定するビットです。
<参考>
外部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出信号が入力される
と , DTP/ 外部割込み許可レジスタ (ENIR) の設定に関係なく , 対応する端子の外部割込み
要求フラグビット (EIRR:ER3 ∼ ER0) に "1" がセットされます。
382
第 17 章 DTP/ 外部割込み回路
表 17.4-5 要求レベル設定レジスタ (ELVR) と各チャネルの対応
DTP/ 外部割込み入力端子
割込み番号
INT3
INT2
ビット名
LB3, LA3
#16(10H)
LB2, LA2
INT1
#13(0DH)
LB1, LA1
INT0
#11(0BH)
LB0, LA0
383
第 17 章 DTP/ 外部割込み回路
DTP/ 外部割込み回路の動作説明
17.5
DTP/ 外部割込み回路には , 外部割込み機能と DTP 機能があります。各機能の設定
と動作について説明します。
■ DTP/ 外部割込み回路の設定
DTP/ 外部割込み回路を動作させるには , 図 17.5-1 の設定が必要です。
図 17.5-1 DTP/ 外部割込み回路
bit
ICR
15
13
12
11
10
9
8
7
6
5
4
3
2
1
0
ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0 ICS3 ICS2 ICS1 ICS0 ISE IL2 IL1 IL0
◆
EIRR/
ENIR
14
◆
◆
◆
0
◆
◆
◆
1
◆
◆
◆
◆
◆
◆
◆
0
◆
◆
◆ 外部割込み時
1
◆
◆
◆ DTP時
ER3 ER2 ER1 ER0
EN3 EN2 EN1 EN0
◆
◇
◆
◆
◆
ELVR
◇
◇
◇
LB3 LA3 LB2 LA2 LB1 LA1 LB0 LA0
◆
◆
◆
◆
◆
◆
◆
◆
P70 P67 P66 P65
DDR
△
△
△
△
◆:使用ビット
◇:使用する端子に対応するビットに"1"を設定
△:使用する端子に対応するビットに"0"を設定
0 :"0"を設定
1 :"1"を設定
DTP/ 外部割込み回路のレジスタは , レジスタを設定する場合に , 誤って割込み要求を
出力することを避けるため , 以下に示す手順で設定してください。
1. 外部割込み入力として使用する端子と兼用する汎用入出力ポートを入力ポートに
設定します。
2. DTP/ 外部割込み許可レジスタ (ENIR) に "00H" を設定し , 割込み要求禁止にします。
3. 要求レベル設定レジスタ (ELVR) の外部割込み入力端子に対応する外部割込み要求
検出条件設定ビット (LB3 ∼ LB0, LA3 ∼ LA0) に , 割込み検出条件を設定します。
4. DTP/ 外部割込み要因レジスタ (EIRR) の外部割込み入力端子に対応する外部割込み
要求フラグビット (ER3 ∼ ER0) に "0" を設定し , 割込み要求クリアをします。
5. DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み入力端子に対応する外部割込み
要求許可ビット (EN3 ∼ EN0) に "1" を設定し , 割込み要求を許可します。
● 外部割込み機能と DTP 機能の切換え
外部割込み機能と DTP 機能の切換えは , 使用する割込み要因に対応する割込み制御レ
ジスタ (ICR) の EI2OS 許可ビット (ISE) で設定します。EI2OS 許可ビット (ISE) に "1"
を設定した場合は , 拡張インテリジェント I/O サービス (EI2OS) が許可され , DTP 機能
として動作します。また , EI2OS 許可ビット (ISE) に "0" を設定した場合は , EI2OS が禁
止され , 外部割込み機能として動作します。
384
第 17 章 DTP/ 外部割込み回路
■ DTP/ 外部割込み動作
表 17.5-1 DTP/ 外部割込み回路の制御ビットと割込み要因
DTP/ 外部割込み回路
割込み要求フラグビット
EIRR:ER3 ∼ ER0
割込み要求許可ビット
ENIR:EN3 ∼ EN0
割込み要因
INT3 ∼ INT0 端子への有効エッジ / レベルの入力
DTP/ 外部割込み回路は , 要求レベル設定レジスタ (ELVR), DTP/ 外部割込み要因レジス
タ (EIRR), DTP/ 外部割込み許可レジスタ (ENIR) への動作設定を行った後 , 対応する外
部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出条件が入力され
ると , 割込みコントローラに対して割込み要求を出力します。割込み制御レジスタ
の EI2OS 許可ビット (ICR:ISE) に "0" を設定した場合は割込み処理を実行し , "1" を設
定した場合は拡張インテリジェント I/O サービス処理 (DTP 処理 ) を実行した後に , 割
込み処理を実行します。
385
第 17 章 DTP/ 外部割込み回路
図 17.5-2 DTP/ 外部割込み回路の動作
DTP/外部割込み回路
ELVR
ほかの要求 割込みコントローラ
ICR
EIRR
ICR
ENIR
CPU
IL
YY
CMP
CMP
ILM
XX
割込み処理
マイクロプログラム
要因
DTP処理ルーチン
(EI2OS起動)
DTP/外部割込み
要求出力
メモリ
周辺データ転送
ディスクリプタ更新
割込みコントローラ
受付け判定
ディスクリプタ
データカウンタ
CPU割込み
受付け判定
≠0
DTP処理からの復帰
割込み処理
マイクロプログラム
起動
ICR:ISE
0
外部割込みルーチンを起動
処理と割込みフラグクリア
外部割込みから復帰
386
0
割込み処理ルーチン
再設定 または 停止
CPU処理復帰
1
第 17 章 DTP/ 外部割込み回路
外部割込み機能
17.5.1
DTP/ 外部割込み回路には , 外部割込み入力端子への入力信号で割込み要求を出力さ
せる外部割込み機能があります。
■ 外部割込み機能
外部割込み入力端子に要求レベル設定レジスタ (ELVR) で設定した検出条件 ( レベルま
たはエッジ ) が入力されると , DTP/ 外部割込み要因レジスタ (EIRR) の端子に対応する
外部割込み要求フラグビット (ER3 ∼ ER0) に "1" がセットされます。
DTP/ 外部割込み許可レジスタ (ENIR) の外部割込み入力端子に対応する外部割込み要
求許可ビット (EN3 ∼ EN0) に "1" を設定している場合 , 端子に対応する外部割込み要
求フラグビット (ER3 ∼ ER0) に "1" がセットされると , 割込みコントローラに対して
割込み要求を出力します。
割込みコントローラは , 周辺機能 ( リソース ) からの割込み要求の割込みレベル (ICR:IL2 ∼
IL0), 割込みの同時出力による優先順位を判定し , CPU はインタラプトレベルマスクレジス
タ (PS:ILM) および割込み許可フラグ (PS:CCR:I) により , 割込み要求を受け付けるか判定し
ます。CPU が割込み要求を受け付けると , 割込み処理を実行し , 割込み処理ルーチンに分
岐します。
割込み処理プログラムでは , 対応する外部割込み要求フラグビット (ER3 ∼ ER0)
に "0" を設定し , 割込み要求をクリアした後 , 割込み復帰命令で割込みから復帰させてくだ
さい。
<注意事項>
割込み処理プログラムが起動された場合は , 必ず起動要因となった外部割込み要求フラグ
ビット (EIRR:EN3 ∼ EN0) に "0" を設定してください。外部割込み要求フラグビット
(EIRR:EN3 ∼ EN0) に "1" がセットされた状態では , 割込みから復帰できません。
387
第 17 章 DTP/ 外部割込み回路
17.5.2
DTP 機能
DTP/ 外部割込み回路には , 外部接続の周辺装置から外部割込み入力端子へ入力され
るデータ転送要求信号を検出し , 拡張インテリジェント I/O サービスを起動する
DTP(Data Transfer Peripheral) 機能があります。
■ DTP 機能の動作説明
DTP 機能は , 外部接続の周辺装置から外部割込み入力端子へ入力されるデータ転送要
求信号を検出し , メモリと周辺装置の間でデータの自動転送を行う機能です。
外部割込み機能で拡張インテリジェント I/O サービス (EI2OS) を起動します。CPU に割
込み要求が受け付けられるまでは , 外部割込み機能と同様の動作をしますが , EI2OS の
動作が許可 (ICR:ISE=1) されていれば , 割込み要求が受け付けられると EI2OS を起動し
, データ転送を開始します。データの転送が終了するとディスクリプタの更新などが行
われ , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) を "0" にクリアし , 再び外部割
込み機能として動作します。EI2OS による転送がすべて終了すると , 外部割込みのベク
タアドレスが指し示す割込み処理ルーチンに分岐します。外部接続の周辺装置は , 最初
の転送が開始されてから 3 マシンサイクル以内にデータ転送要求信号 (DTP 要因 ) の要
因入力を取り下げてください。
図 17.5-3 外部周辺装置とのインタフェース例
"H"レベル要求(ELVR:LB0,LA0=01B)
INT0端子への入力
(DTP要因)
CPU内部動作
(マイクロプログラム)
ディスクリプタ
選択,読出し
アドレスバス端子
ディスクリプタ
更新
読出しアドレス
書込みアドレス
読出しデータ
データバス端子
書込みデータ
読出し信号
書込み信号
*1
外部接続の
周辺装置
内部データバス
*1
読出し動作
レジスタ
データ転送要求
DTP要因*2
INT
割込み要求
CPU
DTP/
(EI2OS)
外部割込み回路
*1 :3マシンサイクル
*2 :転送開始後,3マシンサイクル以内に取り下げる
*3 :拡張インテリジェントI/Oサービスが「周辺→メモリ転送」の場合
388
書込み動作*3
内部メモリ
第 17 章 DTP/ 外部割込み回路
17.6
DTP/ 外部割込み回路使用上の注意
DTP/ 外部割込み回路の入力信号 , スタンバイモードの解除 , および割込みに関連す
る注意を示します。
■ DTP/ 外部割込み回路使用上の注意
● DTP 機能を用いた場合の外部に接続する周辺装置の条件について
DTP 機能がサポートできる外部接続の周辺装置は , 転送が行われたことで自動的に
データ転送要求をクリアできるものでなければなりません。外部接続の周辺装置は ,
CPU が転送動作を開始してから 3 マシンサイクル以上転送要求を出力し続けた場合 ,
DTP/ 外部割込み回路は次の転送要求が発生したものとして , 再度データ転送動作を行
います。
● 外部割込み入力極性について
• 要求レベル設定レジスタ (ELVR) の設定がエッジ検出の場合は , 割込み要求となる
エッジが入力されたことを検出するために , 入力レベルの変化ポイントから最小 3
マシンサイクル以上のパルス幅が必要です。
• 要求レベル設定レジスタ (ELVR) の設定がレベル検出の場合は , 割込み要求となる
レベルが入力されると, 図 17.6-1 に示すようにDTP/外部割込み要因レジスタ(EIRR)
内部の要因フリップフロップに "1" がセットされ , 要因を保持し続けますので , 割込
み要因を取下げ後も , 割込みコントローラへの要求は出力されたままとなります。
割込みコントローラへの要求を解除するには , 図 17.6-2 に示すように , 外部割込み
要求フラグビット (EIRR:ER3 ∼ ER0) を "0" に設定し , 要因フリップフロップを "0"
にクリアしてください。
図 17.6-1 レベル設定時の要因保持回路のクリア
DTP/外部割込み
要因
DTP/外部割込み入力
検出回路
要因フリップフロップ
(EIRRレジスタ)
許可ゲート
割込み
コントローラへ
(割込み要求)
クリアしない限り要因を保持し続ける
図 17.6-2 割込み要求出力許可時の DTP/ 外部割込み要因と割込み要求
DTP/外部割込み要因 ("H"レベル検出時)
割込み要因の取下げ
割込みコントローラ
への割込み要求
要因フリップフロップのクリアによって無効となる
389
第 17 章 DTP/ 外部割込み回路
● 割込みに関する注意
外部割込み機能により , 割込み処理ルーチンに分岐した場合 , 外部割込み要求フラグ
ビット (EIRR:ER3 ∼ ER0) が "1", 外部割込み要求許可ビット (ENIR:EN3 ∼ EN0) が "1"
の状態では , 割込み処理プログラムから復帰できません。必ず割込み処理プログラム内
で , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) を "0" にクリアしてください (DTP
機能を使用した場合は , EI2OS により外部割込み要求フラグビット (EIRR:ER3 ∼ ER0)
は "0" にクリアされます ) 。
レベル検出設定を行っている場合は , 外部割込み入力端子 (INT3 ∼ INT0) に割込み要求
のレベル信号が入力されていると , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) に
"0" を設定しても , 再度 , 外部割込み要求フラグビット (EIRR:ER3 ∼ ER0) に "1" がセッ
トされ , 割込み処理プログラムから復帰できませんので , 割込み要求を禁止にするか割
込み要求のレベル信号を取り下げてください。
390
第 18 章
I2C インタフェース
MB90800 シリーズの I2C インタフェースの機能と
動作について説明します。
18.1 I2C インタフェースの概要
18.2 I2C インタフェースのブロックダイヤグラムと構成図
18.3 I2C インタフェースのレジスタ
18.4 I2C インタフェースの動作
391
第 18 章 I2C インタフェース
18.1
I2C インタフェースの概要
I2C インタフェースは , Inter IC BUS をサポートするシリアル入出力ポートで , I2C
バス上のマスタ / スレーブデバイスとして動作します。
■ I2C インタフェースの特長
MB90800 シリーズでは , I2C インタフェースを 1 チャネル内蔵しています。
以下に , I2C インタフェースの特長を示します。
• マスタ / スレーブ送受信
• アービトレーション機能
• クロック同期化機能
• スレーブアドレス / ゼネラルコールアドレス検出機能
• 転送方向検出機能
• スタートコンディションの繰返し発生および検出機能
• バスエラー検出機能
• 転送レートは , 100 kbps までサポート可能
392
第 18 章 I2C インタフェース
18.2
I2C インタフェースのブロックダイヤグラムと構成図
図 18.2-1 に , I2C インタフェースのブロックダイヤグラムを , 図 18.2-2 に , I2C イン
タフェースの構成図を示します。
■ I2C インタフェースのブロックダイヤグラム
図 18.2-1 I2C インタフェースのブロックダイヤグラム
ICCR
EN
I2Cイネーブル
ICCR
クロック分周1
5
6
7
8
CS4
クロック選択1
CS3
クロック分周2
2 4 8
16 32 64 128 256
CS2
CS1
内
部
デ
|
タ
バ
ス
CS0
IBSR
BB
RSC
LRB
TRX
マシンクロック
クロック選択2
Sync
シフトクロック発生
シフトクロック
エッジ変化タイミング
バスビジー
リピートスタート
ラストビット
送信/受信
FBT
スタートストップ
コンディション検出
エラー
ファーストバイト
AL
アービトレーションロスト検出
IBCR
BER
SCL
BEIE
割込み要求
INTE
IRQ
SDA
INT
IBCR
SCC
MSS
ACK
GCAA
IBSR
AAS
GCA
終了
スタート
マスタ
ACK許可
GC-ACK許可
スタート・ストップ
コンディション発生
IDAR
スレーブ
グローバルコール スレーブアドレス比較
IADR
393
第 18 章 I2C インタフェース
■ I2C インタフェースの構成図
図 18.2-2 インタフェースの構成図
SCL
R
SDA
R
N-ch
2
I Cインタフェース
N-ch
394
外付け
I2Cインタ
フェース
第 18 章 I2C インタフェース
18.3
I2C インタフェースのレジスタ
I2C インタフェースのレジスタには , 以下の 5 種類があります。
・I2C ステータスレジスタ (IBSR)
・I2C コントロールレジスタ (IBCR)
・I2C クロックコントロールレジスタ (ICCR)
・I2C アドレスレジスタ (IADR)
・I2C データレジスタ (IDAR)
■ I2C インタフェースのレジスタ
図 18.3-1 I2C インタフェースのレジスタ
bit15.................................................bit8
I2C
bit7.................................................bit0
コントロールレジスタ (IBCR)
I2C アドレスレジスタ (IADR)
I2C ステータスレジスタ (IBSR)
I2C クロックコントロールレジスタ (ICCR)
I2C データレジスタ (IDAR)
395
第 18 章 I2C インタフェース
18.3.1
I2C ステータスレジスタ (IBSR)
I2C ステータスレジスタ (IBSR) には , 以下の機能があります。
・繰返しスタートコンディション検出
・スレーブアドレッシング検出
・アービトレーションロスト検出
・ゼネラルコールアドレス検出
・アクノリッジ格納
・データ転送
・第 1 バイト検出
■ I2C ステータスレジスタ (IBSR)
図 18.3-2 I2C ステータスレジスタ (IBSR)
bit
アドレス
00006AH
7
6
5
4
3
2
1
0
初期値
BB
RSC
AL
LRB
TRX
AAS
GCA
FBT
00000000B
R
R
R
R
R
R
R
R
FBT
0
第1バイト検出ビット
受信データが第1バイト以外
1
受信データが第1バイト
GCA
0
ゼネラルコールアドレス検出ビット
スレーブ時に,ゼネラルコールアドレスは受信されていない
1
スレーブ時に,ゼネラルコールアドレスを受信した
AAS
0
スレーブアドレッシング検出ビット
スレーブ時にアドレッシングされていない
1
スレーブ時にアドレッシングされた
TRX
転送状態ビット
0
受信状態
1
送信状態
LRB
アクノリッジ格納ビット
0
受信を確認した
1
受信を確認していない
AL
0
アービトレーションロスト検出ビット
アービトレーションロストを検出していない
マスタ送信中にアービトレーションロストが
1
発生した,またはほかのシステムがバスを使用
中であるときにMSSビットに"1"を設定した
RSC
繰返しスタートコンディション検出なし
1
繰返しスタートコンディション検出あり
BB
R
396
:リードオンリ
:初期値
繰返しスタートコンディション検出ビット
0
バス状態ビット
0
ストップコンディションを検出
1
スタートコンディションを検出(バス使用時)
第 18 章 I2C インタフェース
表 18.3-1 I2C ステータスレジスタ (IBSR) の各ビットの機能説明
ビット名
機能
bit7
BB:
バス状態ビット
・I2C バス状態を示します。
・ストップコンディションを検出した場合 , "0" が読み出されます。
・スタートコンディションを検出した場合 , "1" が読み出されます。
bit6
RSC:
繰返しスタート
コンディション
検出ビット
・繰返しスタートコンディションを検出します。
・バス使用中に再びスタートコンディションを検出した場合 , "1" が
読み出されます。
・INT ビットへ "0" を設定 , スレーブ時にアドレスされなかった場合 ,
バス停止中のスタートコンディション検出 , またはストップコン
ディション検出で "0" にクリアされます。
bit5
AL:
アービトレー
ションロスト
検出ビット
・アービトレーションロストを検出します。
・マスタ送信中にアービトレーションロストが発生した , またはほか
のシステムがバスを使用中に MSS ビットに "1" を設定した場合 , "1"
が読み出されます。
・INT ビットへ "0" を設定すると "0" にクリアされます。
bit4
LRB:
アクノリッジ
格納ビット
・受信側からのアクノリッジを格納します。
"0" : 受信を確認した
"1" : 受信が確認されない
・スタートコンディションまたはストップコンディションの検出で
クリアされます。
bit3
TRX:
転送状態ビット
・データ転送の送受信を示します。
・受信状態には , "0" が読み出されます。
・送信状態には , "1" が読み出されます。
bit2
AAS:
スレーブ
アドレッシング
検出ビット
・アドレッシングを検出します。
・スレーブ時にアドレッシングされた場合に , "1" が読み出されます。
・スタートコンディションまたはストップコンディションの検出で
"0" にクリアされます。
bit1
GCA:
ゼネラルコール
アドレス
検出ビット
bit0
FBT:
第 1 バイト
検出ビット
・ゼネラルコールアドレス (00H) を検出します。
・スレーブ時にゼネラルコールアドレスを受信した場合に "1" が読み
出されます。
・スタートコンディションまたはストップコンディションの検出で
"0" にクリアされます
・第 1 バイトを検出します。
・受信データが第 1 バイト ( アドレスデータ ) である場合 , "1" が読
み出されます。
・スタートコンディションの検出で "1" がセットされても , INT ビッ
トに "0" を設定 , またはスレーブ時にアドレスされなかった場合
"0" にクリアされます。
397
第 18 章 I2C インタフェース
18.3.2
I2C コントロールレジスタ (IBCR)
I2C コントロールレジスタ (IBCR) には , 以下の機能があります。
・割込み要求 / 割込み許可
・スタートコンディション発生
・マスタ / スレーブの設定
・アクノリッジ発生許可
■ I2C コントロールレジスタ (IBCR)
図 18.3-3 I2C コントロールレジスタ (IBCR)
bit
15
14
13
12
11
アドレス
00006BH
BER
BEIE
SCC
MSS
ACK
GCAA INTE
INT
R/W
R/W
R/W
R/W
R/W
R/W
R/W
INT
10
9
8
R/W
転送終了割込み要求フラグビット
書込み時
0
転送が終了していません
割込み要求をクリア
1
転送終了時,別表条件でセット
動作に影響しません
割込み要求許可ビット
0
割込み要求禁止
1
割込み要求許可
アクノリッジ発生許可ビット
GCAA
0
アクノリッジを発生しない
1
アクノリッジを発生する
アクノリッジ発生許可ビット
ACK
0
アクノリッジを発生しない
1
アクノリッジを発生する
マスタ/スレーブ設定ビット
MSS
0
ストップコンディションを発生し,転送終了スレーブモードになります
1
マスタモードとなりスタートコンディションを発生しアドレスデータ転送開始
SCC
スタートコンディション発生ビット
0
動作に影響しません
1
マスタ転送時に再びスタートコンディションを発生しアドレスデータ転送を再開
バスエラー割込み許可ビット
BEIE
0
バスエラー割込み要求禁止
1
バスエラー割込み要求許可
BER
398
00000000B
読出し時
INTE
R/W :リード/ライト可能
:初期値
初期値
バスエラー割込み要求フラグビット
リード時
ライト時
0
割込み要求なし
割込み要求をクリア
1
割込み要求あり
動作に影響しません
第 18 章 I2C インタフェース
表 18.3-2 I2C コントロールレジスタ (IBCR) の各ビットの機能説明
ビット名
機能
・バスエラーの割込み要求のフラグビットです。
・バスエラー割込み要求許可ビット (BEIE) に "1" を設定している場
合に "1" がセットされると , 割込み要求を出力します。
・"1" が設定された場合 , ICCR レジスタの EN ビットはクリアされ ,
I2Cインタフェースは停止状態になり, データ転送は中断されます。
・"0" を設定した場合は , 割込み要求がクリアされます。
・"1" を設定した場合は , 動作に影響しません。
bit15
BER:
バスエラー
割込み要求
フラグビット
bit14
BEIE:
バスエラー
割込み要求
許可ビット
bit13
・スタートコンディション発生ビットです。
SCC:
・ "1" を設定すると , マスタ転送時に再びスタートコンディションを
スタート
コンディション
発生し , アドレスデータ転送を開始します。
発生ビット
・読み出した場合は , "0" が読み出されます。
bit12
MSS:
マスタ /
スレーブ
設定ビット
・マスタ / スレーブの設定を行います。
・ "0" を設定した場合は , ストップコンディションを発生し転送終了
後スレーブモードとなります。
・ "1" を設定した場合は , マスタモードとなりスタートコンディショ
ンを発生しアドレスデータ転送を開始します。
・マスタ送信中にアービトレーションロストが発生した場合 , "0" に
クリアされ , スレーブモードになります。
bit11
ACK:
・データを受信した場合のアクノリッジ発生許可ビットです。
アクノリッジ
・"1" を設定した場合は , アクノリッジを発生します。
発生許可ビット ・スレーブ時のアドレスデータ受信時には無効となります。
bit10
GCAA:
・ゼネラルコールアドレスを受信した場合のアクノリッジ発生許可
アクノリッジ
ビットです。
発生許可ビット ・"1" を設定した場合は , アクノリッジを発生します。
bit9
INTE:
割込み要求
許可ビット
bit8
・転送終了割込み要求フラグビットです。
INT:
・"1" が設定されている場合 , SCL ラインは "L" レベルに保たれます。
転送終了割込み ・ "0" を設定した場合は , 割込み要求がクリアされ , SCL ラインを開
要求フラグ
放し , 次バイトの転送を行います。
ビット
・マスタ時にスタートコンディションまたはストップコンディショ
ンの発生により "0" にリセットされます。
・バスエラー割込み許可ビットです。
・ "1" が設定されている場合 , バスエラーの割込み要求フラグビット
(BER) に "1" がセットされると割込みを発生します。
・INTE は , 割込み許可ビットです。
・ "1" を設定した場合に , 転送終了割込み要求フラグビット (INT) に
"1" がセットされると割込みを発生します。
399
第 18 章 I2C インタフェース
■ SCC, MSS, INT ビットの競合についての注意
SCC, MSS , INT ビットの同時書込みにより , 次バイト転送 , スタートコンディション発
生 , ストップコンディション発生の競合が起こります。このときの優先度は次のように
なります。
1. 次バイト転送とストップコンディション発生
INTビットに"0", MSSビットに"0"を設定すると, MSSビットの"0"設定が優先され,
ストップコンディションが発生します。
2. 次バイト転送とスタートコンディション発生
INT ビットに "0", SCC ビットに "1" を設定すると , SCC ビットの "1" 設定が優先され ,
スタートコンディションが発生します。
3. スタートコンディション発生とストップコンディション発生
SCC ビットに "1", MSS ビットに "0" の同時設定は禁止します。
<注意事項>
下記条件で使用する場合 , スレーブとして受信できませんのでゼネラルコールアドレ
スの送信は禁止です。
• 本 LSI のほかにマスタモードとなるほかの LSI がバス上に存在し , 本 LSI がマスタ
としてゼネラルコールアドレスを送信し , 第 2 バイト目以降でアービトレーション
ロスト が発生する場合
• 図 18.3-4 と図 18.3-5 に示したタイミングで , スタートコンディションを発生させ
る命令を実行 (MSS ビットに "1" を設定 ) すると , アービトレーションロスト検出
(AL ビット= 1) による割込み (INT ビット= 1) が発生しません。
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 1
スタートコンディション未検出 (BB ビット= 0) 状態で , SDA 端子または SCL 端子
レベルが "L" のときに , スタートコンディションを発生させる命令を実行 (IBCR レ
ジスタの MSS ビットに "1" を設定 ) した場合
図 18.3-4 AL ビット= 1 検出による割込みが発生しないタイミング図
SCL 端子または SDA 端子が "L" レベル
SCL 端子
"L"
SDA 端子
"L"
I2C 動作許可状態 (EN ビット= 1)
1
マスタモード設定 (MSS ビット= 1)
アービトレーションロスト検出 (AL ビット= 1)
バスビジー (BB ビット )
割込み (INT ビット )
400
0
0
第 18 章 I2C インタフェース
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生しない条件 2
ほかのマスタに I2C バスが占有されている状態で , I2C 動作許可 (EN ビット= 1) し
てスタートコンディションを発生させる命令を実行 (IBCR レジスタの MSS ビット
に "1" を設定 ) した場合。
図 18.3-5 に示したとおり , I2C が動作禁止 (EN ビット= 0) の状態で , I2C バス上の
ほかのマスタが通信を開始すると , スタートコンディション未検出 (BB ビット= 0)
で I2C バスが占有されている状態になるためです。
図 18.3-5 AL ビット= 1 検出による割込みが発生しないタイミング図
スタートコンディション
9 クロック目で INT ビット
割込みが発生しない
ストップコンディション
ACK
ACK
SCL 端子
SDA 端子
SLAVE ADDRESS
DAT
EN ビット
MSS ビット
AL ビット
BB ビット
0
INT ビット
0
上記のような現象が発生する可能性がある場合には , 以下の手順でソフト処理をお願
いします。
1) スタートコンディションを発生させる命令を実行 (MSS ビットに "1" を設定 ) 。
2) タイマ機能などを用いて , ICCR レジスタに設定されている I2C 転送周波数での 3
ビットデータ送信時間ウェイトする。*
例: I2C 転送周波数 100 kHz の場合
3 ビットデータ送信時間
{1/(100 × 103)} × 3 = 30 μs
*:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周
波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。
3) IBSR レジスタの AL ビットと BB ビットを確認し , AL ビット = 1, BB ビット = 0 の
場合には , ICCR レジスタの EN ビットを "0" にして I2C を初期化する。AL ビット
と BB ビットがそのほかの状態のときは通常処理を行う。
401
第 18 章 I2C インタフェース
以下にフロー例を示します。
マスタモード設定
バス制御レジスタ (IBCR) の MSS ビットに "1" を設定
クロック制御レジスタ (ICCR) に設定されている
I2C 転送周波数での 3 ビットデータ送信時間ウェイト *
BB ビット= 0 でかつ AL ビット= 1
NO
YES
EN ビットを "0" にして I2C の初期化
通常処理へ
*:アービトレーションロストが検出された場合 , MSS ビット= 1 設定後 , I2C 転送周
波数での 3 ビットデータ送信時間後には確実に AL ビット= 1 となります。
• AL ビット= 1 検出による割込み (INT ビット= 1) が発生する例
バスビジー検出 (BB ビット= 1) されている状態で , スタートコンディションを発生
させる命令を実行し (MSS ビットに "1" を設定 ) して , アービトレーションロストし
た場合には , AL ビット= 1 検出時に INT ビット割込みが発生します。
図 18.3-6 AL ビット= 1 時に割込みが発生するタイミング図
スタートコンディション
9 クロック目で割込み
SCL 端子
SDA 端子
SLAVE ADDRESS
ACK
DAT
EN ビット
MSS ビット
ソフトでの AL ビットクリア
AL ビット
BB ビット
INT ビット
402
ソフトでの INT ビットクリア
で SCL 開放
第 18 章 I2C インタフェース
I2C クロックコントロールレジスタ (ICCR)
18.3.3
I2C クロックコントロールレジスタ (ICCR) には , 以下の機能があります。
・I2C インタフェース動作許可
・シリアルクロックの周波数の設定
■ I2C クロックコントロールレジスタ (ICCR)
図 18.3-7 クロックコントロールレジスタ (ICCR)
bit
アドレス
00006CH
7
6
5
4
3
2
1
0
初期値
-
-
EN
CS4
CS3
CS2
CS1
CS0
--0XXXXXB
-
-
R/W
R/W
R/W
R/W
R/W
R/W
EN
I2Cインタフェース動作許可ビット
0
動作禁止
1
動作許可
R/W :リード/ライト可能
X :不定
:初期値
表 18.3-3 I2C クロックコントロールレジスタ (ICCR) の各ビットの機能説明
NO.
ビット名
機能
bit7,
bit6
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit5
・I2C インタフェース動作許可ビットです。
EN:
・"0" が設定されている場合 , I2C バスステータスレジスタ (IBSR),
2
I C インタフェース
I2C バスコントロールレジスタ (IBCR)(BER, BEIE ビットを除く )
動作許可ビット
の各ビットはクリアされます。
・BER ビットに "1" がセットされた場合は "0" にクリアされます。
bit4
∼
bit0
・シリアルクロックの周波数を設定するビットです。
・シフトクロックの周波数 fsck は次式のように設定されます。
CS4 ∼ CS0:
φsck = m × φn + 4
シリアルクロック
φ : マシンクロック
周波数設定ビット
・シリアルクロック周波数設定値については , 表 18.3-5 を参照して
ください。
表 18.3-4 シリアルクロック周波数設定 (CS4, CS3)
m
CS4
CS3
5
0
0
6
0
1
7
1
0
8
1
1
403
第 18 章 I2C インタフェース
表 18.3-5 シリアルクロック周波数設定 (CS2 ∼ CS0)
n
CS2
CS1
CS0
4
0
0
0
8
0
0
1
16
0
1
0
32
0
1
1
64
1
0
0
128
1
0
1
256
1
1
0
512
1
1
1
例えば , φ = 25 MHz のとき , m=5, n=32 を選択した場合 , シリアルクロック周波数は
152.43 kHz になります。
<注意事項>
・ +4 のサイクルは , SCL 端子の出力レベルが変化したことをチェックしているための最
小のオーバヘッドです。SCL 端子の立上りのディレイが大きい場合やスレーブデバイス
でクロックを引き延ばしている場合には , この値より大きくなります。
・ I2C 動作許可ビット (EN ビットの設定 ) によって , 以下のように I2C 兼用ポート端子の
出力は変化します。
・ EN ビット =1( 動作許可 ) の場合は , DDR7:bit12, DDR7:bit13 の設定値 ( 入力設定 , 出力
設定 ) にかかわらず SDA/P74, SCL/P75 端子には I2C 出力信号が出力されます。
・EN ビット =0 ( 動作禁止 ) の場合は , DDR7:bit12=1, DDR7:bit13=1 ( 出力設定 ) の 場合 ,
SDA/P74, SCL/P75 端子には PDR7 レジスタの P74, P75 の設定値が出力されます。
・I2C 動作中に I2C 端子と同系列のポートデータレジスタ (PDR7) に対してリードモディ
ファイライト (RMW) 系命令を実行すると , リード時に PDR7 の bit12, bit13 には端子レ
ベルが読み出されます。よって , P75/SCL, P74/SDA 端子レベルによって , PDR7 の
bit12, bit13 値が変化してしまう場合がありますので注意が必要です。
404
第 18 章 I2C インタフェース
図 18.3-8 I2C 兼用ポートの変化タイミング
I2C動作許可/禁止
I2C動作許可:EN ビット=1
SCL/P75
I2C動作禁止:EN ビット=0
DDR9:ビット9=0のとき:入力設定のためHi-Z
DDR9:ビット9=1のとき:変化したPDRの値を出力
SDA/P74
DDR9:ビット8=0のとき:入力設定のためHi-Z
DDR9:ビット8=1のとき:変化したPDRの値を出力
PDRレジスタに対する
リードモディファイ
ライト(RMW)系命令実行タイミング
PDRレジスタ値
リードモディファイライト(RMW)系命令実行
前データ
リードモディファイライト(RMW)系命令実行時の端子レベルにより変化
405
第 18 章 I2C インタフェース
18.3.4
I2C アドレスレジスタ (IADR)
I2C アドレスレジスタ (IADR) は , スレーブアドレスを指定します。
■ I2C アドレスレジスタ (IADR)
図 18.3-9 I2C アドレスレジスタ (IADR)
bit
15
アドレス
−
14
A6
13
A5
12
A4
11
A3
10
A2
9
A1
8
A0
00006DH
−
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
-XXXXXXXB
R/W :リード / ライト可能
X
:不定
− :未定義ビット
スレーブアドレスを指定するレジスタです。スレーブ時 , アドレスデータ受信後に
IADR レジスタとの比較が行われ , 一致している場合はマスタに対してアクノリッジを
送信します。
406
第 18 章 I2C インタフェース
18.3.5
I2C データレジスタ (IDAR)
I2C データレジスタ (IDAR) は , シリアル転送に使用されるデータレジスタです。
■ I2C データレジスタ (IDAR)
図 18.3-10 I2C データレジスタ (IDAR)
bit
アドレス
7
D7
6
D6
5
D5
4
D4
3
D3
2
D2
1
D1
0
D0
00006EH
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
XXXXXXXXB
R/W :リード / ライト可能
X
:不定
シリアル転送に使用されるデータレジスタであり , MSB から転送されます。データ受
信時 (TRX=0) のデータ出力値は "1" になります。
I2C データレジスタの書込み側はダブルバッファになっており , バスが使用中 (BB=1)
である場合 , 書込みデータは各バイト転送時にシリアル転送用のレジスタにロードさ
れます。読出し時はシリアル転送用のレジスタを直接読み出すため , 受信データは INT
ビットがセットされている場合のみ有効です。
407
第 18 章 I2C インタフェース
18.4
I2C インタフェースの動作
I2C バスは , 1 本のシリアルデータライン (SDA) と 1 本のシリアルクロックライン
(SCL) により , 双方向バスラインとして通信を行います。I2C インタフェースでは ,
SDA と SCL をオープンドレイン入出力端子 (SDA, SCL) として使用できます。これ
により , ワイヤード論理を可能にします。また , 入力耐圧は 5 V (Typ) まで可能です。
■ スタートコンディション
バスが開放されている状態 (BB=0, MSS=1) にて , MSS ビットを "1" に設定した場合 ,
I2C インタフェースはマスタモードとなり , 同時にスタートコンディションを発生しま
す。マスタモードでは , バスラインが使用されている状態 (BB=1) である場合でも SCC
ビットを "1" に設定することにより , 再びスタートコンディションを発生させることが
できます。
スタートコンディションを発生させる条件として , 以下の 2 とおりがあります。
• バスが使用されていない状態 (MSS=0, BB=0, INT=0, AL=0) にて , MSS ビットを "1"
に設定した場合
• バスマスタの場合に , 割込み状態 (MSS=1, BB=1, INT=1, AL=0) にて , SCC ビットを
"1" に設定した場合
ほかのシステム ( アイドル状態中 ) がバスを使用中に , MSS ビットを "1" に設定した場
合は , AL ビットが "1" にセットされます。上記の条件以外にて MSS ビット , SCC ビッ
トを "1" に設定した場合は , 設定値を無視します。
■ ストップコンディション
マスタモード (MSS=1) の場合に , MSS ビットを "0" に設定すると , ストップコンディ
ションが発生し , スレーブモードへ遷移します。
ストップコンディションを発生させる条件は , 以下のようになります。
バスマスタにて割込み状態 (MSS=1, BB=1, INT=1, AL=0) となった場合 , MSS ビットを
"0" に設定します。
上記以外での MSS ビットに "0" を設定した場合は , 無視されます。
■ アドレッシング
マスタモードでは , スタートコンディション発生後 , BB=1, TRX=1 にセットされ ,
IDAR レジスタの内容を MSB から出力します。アドレスデータ送信後に , スレーブか
らアクノリッジを受信した場合は , 送信データのビット 0( 送信後 :IDAR, ビット 0) を
反転して TRX ビットへ格納します。
スレーブモードでは , スタートコンディション発生後 , BB=1, TRX=0 にセットまたはク
リアされ , マスタからの送信データを IDAR レジスタへ受信できます。アドレスデータ
を受信した後に , IDAR レジスタと IADR レジスタとの比較が行われます。レジスタ値
が一致している場合は , AAS を "1" にセットし , マスタに対してアクノリッジを送信し
ます。その後 , 受信データの bit0( 受信後 :IDAR, bit0) を TRX ビットへ格納します。
408
第 18 章 I2C インタフェース
■ アービトレーション
マスタ送信時に , ほかのマスタも同時にデータを送信している場合 , アービトレーショ
ンが起こります。自分の送信データが "1", SDA ライン上のデータが "L" レベルの場合 ,
自分はアービトレーションを失ったとみなし , AL ビットを "1" にセットします。また ,
バスが使用状態の場合に , スタートコンディションを発生させようとした場合も AL
ビットは "1" にセットされます。
AL ビットが "1" にセットされた場合 , MSS=0, TRX=0 となり , スレーブ受信モードと
なります。
■ アクノリッジ
アクノリッジは , 受信側が送信側に対して送信します。データ受信時は , ACK ビット
によってアクノリッジの有無を設定できます。データ送信時は , 受信側からのアクノ
リッジが LRB ビットに格納されます。
スレーブ送信時に , マスタ受信側からアクノリッジを受信しなかった場合 , TRX=0 と
なりスレーブ受信モードになります。これにより , マスタはスレーブが SCL ラインを
開放した場合に , ストップコンディションを発生できます。
■ バスエラー
以下の条件が成立した場合はバスエラーと判断され , I2C インタフェースは停止状態に
なります。
• データ転送中 (ACK ビットを含む ) に I2C バス上の基本規定違反を検出した場合
• マスタの場合にストップコンディション検出を検出した場合
• バスがアイドル状態の場合に I2C バス上の基本規定違反を検出した場合
■ SDA="L", SCL="L" 時におけるスタートコンディション発生命令の実行
SDA="L", SCL="L" 時に , スタートコンディション発生命令を実行 (MSS ビットへの "1"
書込み ) した場合 , BB=0, AL=1 の状態になります。この場合 , 転送が終了していない
ため , 転送終了割込み要求フラグ (INT ビット ) は立ちません。よって , 本状態の検出
は , プログラム上で BB ビットと AL ビットを監視して行う必要があります。
409
第 18 章 I2C インタフェース
図 18.4-1 SDA="L", SCL="L" 時におけるスタートコンディション発生命令実行時の各フラグの
変化タイミング
SCL
"L"
"L"
SDA
スタートコンディション
アービトレーション
割込み
バスビジー
410
MSSビットへ"1"をセット
IBSRのALビット
IBCRのINTビット
"L"
IBSRのBBビット
"L"
第 18 章 I2C インタフェース
18.4.1
I2C インタフェースの転送フロー
図 18.4-2 に , マスタからスレーブへの 1 バイト転送フローを , 図 18.4-3 に , スレー
ブからマスタへの 1 バイト転送フローを示します。
■ I2C インタフェースの転送フロー
図 18.4-2 マスタからスレーブへの 1 バイト転送フロー
マスタ
スレーブ
スタート
DAR:書込み
MSS:"1"書込み
スタートコンディション
BB set, TRX set
BB set, TRX set
アドレスデータ転送
AAS set
アクノリッジ
LBR reset
INT set,TRX set
DAR:書込み
INT:"0"書込み
割 込 み
INT set,TRX set
ACK:"1"書込み
INT:"0"書込み
データ転送
アクノリッジ
LBR rest
INT set
割 込 み
MSS:"0"書込み
INT reset
BB reset,TRX reset
ストップコンディション
INT set
DAR:読出し
INT:"0"書込み
BB reset,TRX reset
AAS reset
終了
411
第 18 章 I2C インタフェース
図 18.4-3 スレーブからマスタへの 1 バイト転送フロー
マスタ
スレーブ
スタート
DAR:書込み
MSS:"1"書込み
スタートコンディション
BB set,TRX set
BB set,TRX set
アドレスデータ転送
AAS reset
アクノリッジ
LBR reset
INT set,TRX reset
割
込
み
INT:"0"書込み
INT set,TRX set
DAR:書込み
INT:"0"書込み
データ転送
ネガティブアクノリッジ
INT set
DAR:読出し
LBR set,TRX set
INT set
割
込
み
INT:"0"書込み
MSS:"0"書込み
INT reset
BB reset,TRX reset
ストップコンディション
終了
412
BB reset,TRX reset
AAS reset
第 18 章 I2C インタフェース
18.4.2
I2C インタフェースのモードフロー
図 18.4-4 に , I2C モードフローを示します。
■ I2C インタフェースのモードフロー
図 18.4-4 I2C モードフロー
スレーブ受信モード
STC
NO
YES
TRX,AAS,LRB:reset
FBT:set
YES
STC&BB=1
RSC:set
NO
BB:set
8ビット受信
アドレス比較
RSC,FBT:reset
一致
AAS:set
確認応答出力
INT:set
SCLライン
"L"へ保持
NO
TRX=1
スレーブ受信モード
YES
YES
SPC
AAS,LRB,BB,RSC:
reset
スレーブ送信モード
NO
INT:"0" write
FBT:reset
SCLライン開放
送信/受信
YES
確認応答あり
NO
TRX:reset
413
第 18 章 I2C インタフェース
I2C インタフェースの動作フロー
18.4.3
図 18.4-5 に , I2C マスタ送受信プログラムフローチャート ( 割込み使用 ) を示しま
す。また , 図 18.4-6 に I2C スレーブプログラムフローチャート ( 割込み使用 ) を示
します。
■ I2C インタフェースの動作フロー
図 18.4-5 I2C マスタ送受信プログラムフローチャート ( 割込み使用 )
メインルーチン
割込みルーチン
開始
開始
スレーブアドレス
を設定
バスエラー
は生じたか?
I2Cの動作許可
ALは
発生したか?
YES
NO
スレーブアドレスセット
送信
(データ方向ビット=0)
1回のデータ書込みで
送信するバイト数のセット
マスタか?
スレーブアドレスセット
受信
(データ方向ビット=1)
ACKは
返ってきたか?
YES
BBビット=1?
NO
一定時間 WAIT
一定時間 WAIT
LOOP
I2C動作禁止
I2Cの初期設定
③
RETI
アクノリッジ発生許可
NO
③
NO
スレーブプログラム
の割込みルーチン
へ
①
BBビット=0で
かつALビット=1?
NO
LOOP
NO
データ方向ビット
TRXビット=1?
スレーブアドレス送信
スタートコンディション発生
NO
③
YES
BBビット=1?
NO
YES
YES
YES
スレーブアドレス送信
スタートコンディション発生
BBビット=0で
かつALビット=1?
RETI
I2Cの動作許可
NO
マスタ受信
1回のデータ書込みで
送信するバイト数のセット
YES
②
②
バスエラー割込み
要因クリア
NO
マスタ受信動作?
マスタ送信
YES
①
STOPコンディション発生
I2C動作禁止
YES
YES
送信バイト数デクリメント
①
YES
残り受信
バイト数=1?
NO
アクノリッジ発生許可
アクノリッジ発生許可
送信データのセット
終了割込み要因クリア
RETI
第1バイト
の受信か?
YES
NO
受信バイト数デクリメント
受信データをRAMへ格納
終了割込み要因クリア
RETI
414
①
NO
YES
残り送信
バイト数=0?
NO
YES
残り受信
バイト数=0?
第 18 章 I2C インタフェース
図 18.4-6 I2C スレーブプログラムフローチャート ( 割込み使用 )
割込みルーチン
メインルーチン
開始
開始
スレーブアドレス
を設定
I2Cの動作許可
スレーブモードに設定
バスエラー
は生じたか?
YES
②
NO
アドレッシング
されているか?
LOOP
①
②
転送終了割込み
要因クリア
バスエラー割込み
要因クリア
RETI
I2Cの動作許可
I2Cの初期設定
NO
①
RETI
YES
データ方向ビット
TRXビット=1?
NO
受信データは
アドレスか?
NO
受信データを
RAMへ格納
NO
YES
ACKは
返ってきたか?
YES
送信データセット
転送終了割込み
要因クリア
YES
①
転送終了割込み
要因クリア
RETI
RETI
415
第 18 章 I2C インタフェース
416
第 19 章
8/10 ビット A/D コンバータ
MB90800 シリーズの 8/10 ビット A/D コンバータ
の機能と動作について説明します。
19.1 8/10 ビット A/D コンバータの概要
19.2 8/10 ビット A/D コンバータの構成
19.3 8/10 ビット A/D コンバータの端子
19.4 8/10 ビット A/D コンバータのレジスタ
19.5 8/10 ビット A/D コンバータの割込み
19.6 8/10 ビット A/D コンバータの動作説明
417
第 19 章 8/10 ビット A/D コンバータ
19.1
8/10 ビット A/D コンバータの概要
8/10 ビット A/D コンバータには , RC 逐次比較変換方式でアナログ入力電圧を 10
ビットもしくは 8 ビットの値に変換する機能があります。
■ 8/10 ビット A/D コンバータの機能
以下に 8/10 ビット A/D コンバータの機能について示します。
• 変換時間は , 最小 3.1 μs( サンプリング時間を含む ) です。
• サンプリング時間は , 最小 2.0 μs です。
• 変換方式は , サンプルホールド回路付き RC 逐次変換比較方式です。
• 10 ビット , または 8 ビットの分解能が設定できます。
• 入力信号は , 12 チャネルのアナログ入力端子からプログラムで設定可能です。
• A/D 変換が終了した場合に割込み要求を出力し , EI2OS を起動できます。
• 割込み許可に設定した状態にて A/D 変換を実行した場合 , 変換データ保護機能が働
きます。
• 変換の起動要因は , ソフトウェア , 16 ビットリロードタイマ 1 出力 ( 立上りエッジ )
から設定できます。
変換モードは , 表 19.1-1 に示すように 4 種類あります。
表 19.1-1 8/10 ビット A/D コンバータの変換モード
変換モード
シングル変換動作
スキャン変換動作
単発変換モード 1
単発変換モード 2
設定したチャネル (1 チャネル )
を 1 回変換後 , 終了
連続した複数のチャネル ( 最大 12 チャネル
まで設定可能 ) を 1 回変換後 , 終了
連続変換モード
設定したチャネル (1 チャネル )
を繰り返し変換
連続した複数のチャネル ( 最大 12 チャネル
まで設定可能 ) を繰り返し変換
停止変換モード
設定したチャネル (1 チャネル )
を 1 回変換実行後 , 一時停止し ,
次の起動がかかるまで待機
連続した複数のチャネル ( 最大 12 チャネル
まで設定可能 ) を 1 回変換実行後 , 一時停止
し , 次の起動がかかるまで待機
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 19.1-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルアドレス
EI2OS
割込み番号
#37(25H)
○:使用可能
418
レジスタ名
アドレス
下位
上位
バンク
ICR13
0000BDH
FFFF68H
FFFF69H
FFFF6AH
○
第 19 章 8/10 ビット A/D コンバータ
19.2
8/10 ビット A/D コンバータの構成
8/10 ビット A/D コンバータは , 以下のブロックで構成されています。
・A/D 制御ステータスレジスタ 0/1(ADCS0/ADCS1)
・A/D データレジスタ (ADCR0/ADCR1)
・クロックセレクタ (A/D 変換起動用入力クロックセレクタ )
・デコーダ
・アナログチャネルセレクタ
・サンプルホールド回路
・D/A コンバータ
・コンパレータ
・コントロール回路
■ 8/10 ビット A/D コンバータのブロックダイヤグラム
図 19.2-1 8/10 ビット A/D コンバータのブロックダイヤグラム
割込み要求信号#37(25H)*
A/D制御ステータス
レジスタ0/1
A/D変換チャネル
BUSY INT INTE PAUS STS1 STS0 STRT 予約 MD1 MD0 ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0
レジスタ
(ADCS0/ADCS1/
8
ADMR)
16ビットリロードタイマ1出力
2
クロックセレクタ
サンプル
ホールド回路
P73/AN11
~
P60/AN0
アナログ
チャネル
セレクタ
A/Dデータレジスタ
S10 ST1 ST0 CT1 CT0 -
(ADCR0/ADCR1)
AVR
AVcc
AVss
D9
D8
デコーダ
コンパレータ
コントロール回路
2
D/Aコンバータ
D7
D6
D5
D4
2
D3
D2
D1
D0
:マシンクロック
*:割込み信号
419
第 19 章 8/10 ビット A/D コンバータ
● A/D 制御ステータスレジスタ 0/1(ADCS0/ADCS1)
A/D 制御ステータスレジスタ 0(ADCS0) は , A/D 変換モードの設定と A/D 変換開始 / 終
了チャネルの設定を行う機能があります。
A/D 制御ステータスレジスタ 1(ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の許
可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う機能
があります。
● A/D データレジスタ (ADCR0/ADCR1)
A/D 変換結果を格納するレジスタですが , A/D 変換の分解能の設定 , A/D 変換時のサン
プリング時間の設定 , および A/D 変換時のコンペア時間の設定を行う機能もあります。
● クロックセレクタ
A/D 変換起動クロックを設定するセレクタです。起動クロックには , 16 ビットリロー
ドタイマ 1 出力が設定できます。
● デコーダ
A/D 制御ステータスレジスタ (ADCS0) の A/D 変換終了チャネル設定ビット (ANE0 ∼
ANE3), A/D 変換開始チャネル設定ビット (ANS0 ∼ ANS3) の設定値から使用するアナ
ログ入力端子を設定する回路です。
● アナログチャネルセレクタ
12 チャネルのアナログ入力端子の中から使用する端子を設定する回路です。
● サンプルホールド回路
アナログチャネルセレクタで設定された端子からの入力電圧を保持する回路です。
A/D 変換を起動した直後の入力電圧を保持することで , A/D 変換中 ( 比較中 ) は , A/D
変換における入力電圧変動の影響を受けません。
● D/A コンバータ
保持された入力電圧と比較するための基準電圧を発生します。
● コンパレータ
保持された入力電圧と , D/A コンバータの出力電圧を比較し , 大小を判定します。
● コントロール回路
コンパレータからの大小信号で , A/D 変換値を決定します。A/D 変換が終了した場合 ,
変換結果を A/D データレジスタ (ADCR0/ADCR1) に格納し , 割込み要求を出力します。
420
第 19 章 8/10 ビット A/D コンバータ
19.3
8/10 ビット A/D コンバータの端子
8/10 ビット A/D コンバータの端子および端子部のブロックダイヤグラムを示します。
■ 8/10 ビット A/D コンバータの端子
A/D コンバータの端子は , 入出力ポートと兼用になっています。
表 19.3-1 8/10 ビット A/D コンバータの端子
機能
端子名
チャネル 0
P60/AN0
チャネル 1
P61/AN1
チャネル 2
P62/AN2
チャネル 3
P63/AN3
チャネル 4
P64/AN4
チャネル 5
P65/AN5/
INT0
チャネル 6
P66/AN6/
INT1
チャネル 7
P67/AN7/
INT2
チャネル 8
P70/AN8/
INT3
端子機能
入出力形式
ポート 6
入出力 /
アナログ
入力
CMOS 出力 /
CMOS ヒステ
リシス入力
または
アナログ入力
ポート 7
入出力 /
P72/AN10/ アナログ
チャネル 10
入力
SO1
CMOS 出力 /
CMOS ヒステ
リシス入力
または
アナログ入力
チャネル 9
チャネル 11
P71/AN9/
SC1
P73/AN11/
SI2
プルアップ
設定
なし
なし
スタンバイ
制御
端子の使用に
必要な設定
なし
ポート 6 を入力
設定
(DDR6:bit0 ∼
bit7=0)
アナログ入力に
設定 (ADER0:
bit0 ∼ bit7=1)
なし
ポート 7 を入力
設定
(DDR7:bit0 ∼
bit3=0)
アナログ入力に
設定 (ADER1:
bit0 ∼ bit3=1)
421
第 19 章 8/10 ビット A/D コンバータ
■ 8/10 ビット A/D コンバータの端子のブロックダイヤグラム
図 19.3-1 P60/AN0 ∼ P73/AN11 端子のブロックダイヤグラム
A/Dコンバータ
アナログ入力信号
ADER
PDR読出し
PDR
入出力
判定回路
PDR書込み
DDR
入力バッファ
出力バッファ
ポート
端子
スタンバイ制御(LPMCR:SPL=1)
スタンバイ制御:ストップモード,およびLPMCR:SPL=1
<注意事項>
・ 入力ポートとして使用する端子は, ポート方向レジスタ(DDR6, DDR7)の対応するビッ
ト (bit7 ∼ bit0) に "0" を設定し , アナログ入力許可レジスタ (ADER0, ADER1) の対応
するビット (bit11 ∼ bit0) に "0" を設定してください。
・ アナログ入力端子として使用する端子は,アナログ入力許可レジスタ(ADER0, ADER1)
の対応するビット (bit11 ∼ bit0) に "1" を設定してください。ポートデータレジスタ
(PDR6, PDR7) の読出し値はそれぞれ "00H" になります。
422
第 19 章 8/10 ビット A/D コンバータ
19.4
8/10 ビット A/D コンバータのレジスタ
8/10 ビット A/D コンバータのレジスタ一覧を示します。
■ 8/10 ビット A/D コンバータのレジスタ一覧
図 19.4-1 8/10 ビット A/D コンバータのレジスタ一覧
bit15...................................................................bit8
bit7...................................................................bit0
A/D 制御ステータスレジスタ 1(ADCS1)
A/D 制御ステータスレジスタ 0(ADCS0)
A/D データレジスタ (ADCR1)
A/D データレジスタ (ADCR0)
A/D 変換チャネル設定レジスタ (ADMR)
423
第 19 章 8/10 ビット A/D コンバータ
19.4.1
A/D 制御ステータスレジスタ 1(ADCS1)
A/D 制御ステータスレジスタ (ADCS1) は , A/D 変換起動要因の設定 , 割込み要求の
許可 / 禁止の設定 , 割込み要求の状態確認 , A/D 変換の停止中 / 動作中の確認を行う
機能があります。
■ A/D 制御ステータスレジスタ 1(ADCS1)
図 19.4-2 A/D 制御ステータスレジスタ 1(ADCS1)
bit
アドレス
000035H
15
14
13
12
11
10
BUSY
INT
INTE
PAUS
STS1 STS0
R/W
R/W
R/W
R/W
R/W
R/W
9
8
初期値
STRT
予約
00000000B
W
R/W
予約
予約ビット
必ず"0"を設定してください。
STRT
A/D変換起動ビット
(ソフトウェア起動時(ADC2:EXT=0)のみ有効)
0
A/D変換機能を起動しない
1
A/D変換機能を起動する
A/D起動要因設定ビット
STS1 STS0
0
0
0
1
1
0
1
1
ソフトウェア起動
16ビットリロードタイマ1の起動
またはソフトウェア起動
一時停止フラグビット
(EI2OS使用時のみ有効)
PAUS
0
A/D変換動作中
1
A/D変換動作が一時停止中
INTE 割込み要求許可ビット
0
割込み要求出力の禁止
1
割込み要求出力の許可
INT
424
リード時
ライト時
0
A/D変換未終了
割込み要求をクリア
1
A/D変換終了
動作に影響しません
BUSY
R/W :リード/ライト可能
W :ライトオンリ
:初期値
割込み要求フラグビット
変換中ビット
リード時
ライト時
0
A/D変換停止中
A/D変換強制停止
1
A/D変換動作中
動作に影響しません
第 19 章 8/10 ビット A/D コンバータ
表 19.4-1 A/D 制御ステータスレジスタ 1(ADCS1) の各ビットの機能説明
ビット名
機能
bit15
・ A/D コンバータの動作表示ビットです。
・ "0" がセットされている場合は , A/D 変換停止中であることを示します。
・ "1" がセットされている場合は , A/D 変換動作中であることを示します。
BUSY:
・ "0" を設定した場合は , A/D 変換動作を強制停止します。
変換中ビット
・ "1" を設定した場合は , 動作に影響しません。
( 注意事項 )A/D 変換動作の強制停止と起動 (BUSY= 0, STRT= 1) は , 同時に
設定しないでください。
bit14
・ 割込み要求のフラグビットです。
・ A/D 変換結果が A/D データレジスタ (ADCR0/ADCR1) に格納されると ,
"1" が セットされます。
・ 割込み要求許可ビット (INTE) に "1" を設定している場合に "1" がセット
INT:
されると , 割込み要求を出力します。
割込み要求
フラグビット ・ "0" を設定した場合は , 割込み要求がクリアされます。
・ "1" を設定した場合は , 動作に影響しません。
・ EI2OS を使用すると , "0" にクリアされます。
(注意事項 ) 割込み要求をクリアする場合は , A/D変換を停止してください。
bit13
INTE:
割込み要求
許可ビット
bit12
・ A/D 変換動作が一時停止した場合に , "1" がセットされます。
・ 連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても前デー
タのメモリへの転送が完了していないと "1" がセットされ , A/D 変換動
PAUS:
作を一時停止し , 変換データを A/D データレジスタ (ADCR0/ADCR1) に
一時停止
格納しません。
フラグビット
・ 前データのメモリへのデータ転送が完了した場合 , "0" にクリアされ ,
A/D 変換動作を再開します。
( 注意事項 )EI2OS を使用した場合に有効です。
bit11,
bit10
・ A/D 変換の起動要因の設定を行うビットです。
・ 起動要因が兼用になっている場合は , 最初に発生した起動要因で起動し
STS1, STS0:
ます。
A/D 起動要因
( 注意事項 ) 起動要因は設定と同時に変更されますので , A/D 変換動作中に
設定ビット
設定する場合は, 目的とする起動要因がない状態で切り換えて
ください。
bit9
・ A/D 変換動作を起動するビットです。
STRT:
・ "1" を設定した場合は , A/D 変換が起動します。
A/D 変換起動 ・ 停止変換モード時は , STRT ビットによる再起動はかかりません。
ビット
( 注意事項 )A/D 変換動作の強制停止と起動 (BUSY= 0, STRT= 1) は同時に
行わないでください。
bit8
予約:
予約ビット
・ 割込み要求を許可するビットです。
・ "1" を設定した場合は , 割込み要求フラグビット (INT) に "1" がセットさ
れると割込み要求を出力します。
・ EI2OS を使用する場合は , "1" を設定してください。
必ず "0" を設定してください。
425
第 19 章 8/10 ビット A/D コンバータ
19.4.2
A/D 制御ステータスレジスタ 0(ADCS0)
A/D 制御ステータスレジスタ 0 (ADCS0) は , A/D 変換モードの設定と A/D 変換開始 /
終了チャネルの設定を行う機能があります。
■ A/D 制御ステータスレジスタ 0(ADCS0)
図 19.4-3 A/D 制御ステータスレジスタ 0(ADCS0)
bit
アドレス
000034H
7
6
5
4
3
2
1
0
初期値
MD1
MD0
-
-
-
-
-
-
00------B
R/W
R/W
-
-
-
-
-
-
MD1 MD0
R/W :リード/ライト可能
- :未定義ビット
:初期値
426
A/D変換モード設定ビット
0
0
単発変換モード1(動作中の再起動可能)
0
1
単発変換モード2(動作中の再起動不可)
1
0
連続変換モード (動作中の再起動不可)
1
1
停止変換モード (動作中の再起動不可)
第 19 章 8/10 ビット A/D コンバータ
表 19.4-2 A/D 制御ステータスレジスタ 0(ADCS0) の各ビットの機能説明
ビット名
bit7,
bit6
MD1, MD0:
A/D 変換モード
設定ビット
機能
・A/D 変換モードを設定するビットです。
・単発変換モード 1, 単発変換モード 2, 連続変換モード , 停止変換
モード が設定できます。
・単発変換モード 1:A/D 変換開始チャネル設定ビット (ANS3 ∼
ANS0) で設定したチャネルから A/D 変換終了
チャネル設定ビット (ANE3 ∼ ANE0) で設定
したチャネルまで A/D 変換後 , 終了します。
動
作中の再起動ができます。
・単発変換モード 2:A/D 変換開始チャネル設定ビット (ANS3 ∼
ANS0) で設定したチャネルから A/D 変換終了
チャネル設定ビット (ANE3 ∼ ANE0) で設定
したチャネルまで A/D 変換後 , 終了します。
動
作中の再起動はできません。
・連続変換モード : A/D 変換開始チャネル設定ビット (ANS3 ∼
ANS0) で設定したチャネルから A/D 変換終了
チャネル設定ビット (ANE3 ∼ ANE0) で設定し
たチャネルまでの A/D 変換を変換中ビット
(BUSY) で強制停止するまで繰り返します。動
作中の再起動はできません。
・停止変換モード : A/D 変換開始チャネル設定ビット (ANS3 ∼
ANS0) で設定したチャネルから A/D 変換終了
チャネル設定ビット (ANE3 ∼ ANE0) で設定し
たチャネルまでの A/D 変換を 1 チャネルごと
に一時停止しながら , 変換中ビット (BUSY) で
強制停止するまで繰り返します。動作中の再
起動はできません。一時停止中の再起動は , A/
D 起動要因設定ビット (STS1, STS0) で設定し
た起動要因の発生によって異なります。
( 注意事項 ) 単発 , 連続 , 停止の各変換モードの再起動不可は 16 ビッ
トフリーランタイマ 0 検出 , 16 ビットリロードタイマ 1,
ソフトウェアすべての起動に適用されます。
427
第 19 章 8/10 ビット A/D コンバータ
A/D データレジスタ (ADCR0/ADCR1)
19.4.3
A/D データレジスタ (ADCR0/ADCR1) は , A/D 変換結果を格納するレジスタですが ,
A/D 変換の分解能を設定 , A/D 変換時のサンプリング時間の設定 , および A/D 変換時
のコンペア時間設定を行う機能もあります。
■ A/D データレジスタ (ADCR0/ADCR1)
図 19.4-4 A/D データレジスタ (ADCR0/ADCR1)
bit
アドレス
000037H
000036H
15
14
13
12
11
10
S10 ST1 ST0 CT1 CT0 -
W
W
W
W
W
9
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
D9~D0
初期値
00101-XXB(上位)
XXXXXXXXB(下位)
A/Dデータビット
変換データを格納
CT1 CT0
0
0
44マシンサイクル([email protected])
0
1
66マシンサイクル([email protected])
1
0
1
1
88マシンサイクル([email protected])
176マシンサイクル([email protected])
ST1 ST0
428
サンプリング時間設定ビット
0
0
20マシンサイクル([email protected])
0
1
32マシンサイクル([email protected])
1
0
48マシンサイクル([email protected])
1
1
128マシンサイクル([email protected])
S10
R :リードオンリ
W :ライトオンリ
- :未定義ビット
:初期値
:マシンクロック周波数
コンペア時間設定ビット
A/D変換分解能設定ビット
0
10ビット分解能モード(D9~D0)
1
8ビット分解能モード(D7~D0)
第 19 章 8/10 ビット A/D コンバータ
表 19.4-3 A/D データレジスタ (ADCR0/ADCR1) の各ビットの機能説明
ビット名
bit15
bit14,
bit13
S10:
A/D 変換分解能
設定ビット
機能
・A/D 変換の分解能を設定するビットです。
・"0" を設定した場合は , 10 ビット分解能が設定されます。
・"1" を設定した場合は , 8 ビット分解能が設定されます。
( 注意事項 )
・分解能によって使用される A/D データビットが異なります。
・10 ビット分解能モードでは , D9 ∼ D0 ビットが使用されます。
・8 ビット分解能モードでは , D7 ∼ D0 ビットが使用されます。
・A/D 変換のサンプリング時間を設定するビットです。
・A/D 変換が起動されると , サンプリング時間設定ビット (ST1, ST0)
で設定した時間 , アナログ入力が取り込まれます。
ST1, ST0:
( 注意事項 )
サンプリング時間
・"00B" を設定する場合は , マシンクロック周波数を 8MHz 以下とし
設定ビット
てください。
・マシンクロック周波数 16 MHz 以上の場合に "00B" を設定すると ,
正常なアナログ変換値が得られない場合があります。
bit12,
bit11
・A/D 変換時のコンペア時間を設定するビットです。
・アナログ入力が取り込まれた ( サンプリング時間経過 ) 後 , コンペア
時間設定ビット (CT1, CT0) で設定した時間後に , A/D 変換結果が確
定し , 10 ビット分解能モードでは A/D データビット (D9 ∼ D0) に格
納され , 8 ビット分解能モードでは A/D データビット (D7 ∼ D0) に格
CT1, CT0:
コンペア時間設定 納されます。
( 注意事項 )
ビット
・"00B" を設定する場合は , マシンクロック周波数を 8 MHz 以下として
ください。
・マシンクロック周波数 16 MHz 以上の場合に "00B" を設定すると , 正
常なアナログ変換値が得られない場合があります。
bit10
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit9
∼
bit0
・A/D 変換結果が格納されるビットです。1 回の A/D 変換終了ごとに
書き換えられます。
・通常は , 最終変換値が格納されます。
・初期値は不定です。
D9 ∼ D0:
A/D データビット ( 注意事項 )
・A/D 変換データ保護機能があります ( 詳細は , 「19.6 8/10 ビット A/
D コンバータの動作説明」を参照 )。
・A/D変換中に, A/Dデータビットにデータを書き込まないでください。
<注意事項>
・A/D 変換分解能設定ビット (S10) を書き換える場合は , 必ず A/D 変換動作前に A/D 変換
動作を停止させてから書き換えてください。A/D 変換動作開始後に書き換えた場合は ,
A/D データレジスタ (ADCR0/ADCR1) の内容は不定となります。
・A/D データレジスタ (ADCR0/ADCR1) を読み出す場合に , 10 ビット分解能モードを設定
した場合は , 必ずワード転送命令 (MOVW A, 002EH など ) を使用してください。
429
第 19 章 8/10 ビット A/D コンバータ
19.4.4
A/D 変換チャネル設定レジスタ (ADMR)
A/D 変換チャネル設定レジスタ (ADMR) は , A/D 変換チャネルの設定をする機能が
あります。
■ A/D 変換チャネル設定レジスタ (ADMR)
図 19.4-5 A/D 変換チャネル設定レジスタ (ADMR)
bit
15
14
13
12
11
10
9
8
初期値
0000000B
アドレス ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0
000039H
R/W R/W R/W R/W R/W R/W R/W R/W
ANE3
0
0
0
0
0
0
0
0
1
1
1
1
1
1
1
1
R/W :リード/ライト可能
:初期値
430
ANE2
0
0
0
0
1
1
1
1
0
0
0
0
1
1
1
1
ANE1
0
0
1
1
0
0
1
1
0
0
1
1
0
0
1
1
ANE0
0
1
0
1
0
1
0
1
0
1
0
1
0
1
0
1
ANS3
ANS2
ANS1
ANS0
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
A/D変換終了チャネル設定ビット
AN0
AN1
AN2
AN3
AN4
AN5
AN6
AN7
AN8
AN9
AN10
AN11
設定禁止
A/D変換開始チャネル設定ビット
停止変換モード
変換中の
停止中
で一時停止中の
読出し
読出し
AN0
AN1
AN2
AN3
AN4
変換中の
直前に変換した
AN5
チャネル
チャネル番号
番号
AN6
AN7
AN8
AN9
AN10
AN11
設定禁止
第 19 章 8/10 ビット A/D コンバータ
表 19.4-4 A/D 変換チャネル設定レジスタ (ADMR) の各ビットの機能説明
ビット名
bit7
∼
bit4
bit3
∼
bit0
機能
ANS3, ANS2,
ANS1, ANS0:
A/D 変換開始
チャネル設定
ビット
・A/D 変換の開始チャネルの設定および変換中チャネル番号の確認
を行うビットです。
・A/D 変換を起動した場合は , A/D 変換開始チャネル設定ビット
(ANS3∼ANS0)で設定されたチャネルからA/D変換を開始します。
・A/D 変換中は , 変換中のチャネル番号が読み出されます。停止変
換モードでの一時停止中は , 直前に変換したチャネルの番号が読
み出されます。
ANE3, ANE2,
ANE1, ANE0:
A/D 変換終了
チャネル設定
ビット
・A/D 変換の終了チャネルの設定を行うビットです。
・A/D 変換を起動した場合は , A/D 変換終了チャネル設定ビット
(ANE3 ∼ ANE0) で設定されたチャネルまで A/D 変換を行います。
・A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したチャ
ネルと同じチャネルを設定した場合は , 設定したチャネルが A/D
変換されます。
・連続変換モードまたは停止変換モードを設定した場合は , A/D 変
換終了チャネル設定ビット (ANE3 ∼ ANE0) で設定したチャネル
までの A/D 変換が終了すると , A/D 変換開始チャネル設定ビット
(ANS3 ∼ ANS0) で設定した開始チャネルに戻り , A/D 変換を繰り
返します。
・開始チャネルの設定値は , 終了チャネルの設定値より大きい値に
設定しないでください。
( 注意事項 )
A/D 変換開始チャネル選択ビット (ANS3, ANS2, ANS1, ANS0) に開
始チャネルを設定した後は , A/D 変換モード設定ビット (MD1,
MD0) および A/D 変換終了チャネル選択ビット (ANE3, ANE2,
ANE1, ANE0) をリードモディファイライト系命令で設定しないで
ください。
ANS3, ANS2, ANS1, ANS0 ビットは A/D 変換動作が開始するまで
前回の変換チャネルが読み出されるため , ANS3, ANS2, ANS1,
ANS0 ビットに開始チャネルを設定した後に , MD1, MD0 ビットお
よび ANE3, ANE2, ANE1, ANE0 ビットをリードモディファイライ
ト系命令で設定した場合, ANE3, ANE2, ANE1, ANE0ビットの値が
書き換わる可能性があります。
<注意事項>
・開始チャネル , 終了チャネルは "1100B" ∼ "1111B" の値には設定しないでください。
・開始チャネルの設定値は , 終了チャネルの設定値より大きい値に設定しないでください。
431
第 19 章 8/10 ビット A/D コンバータ
19.5
8/10 ビット A/D コンバータの割込み
8/10 ビット A/D コンバータは , A/D 変換で A/D データレジスタにデータがセットさ
れた場合 , CPU へ割込み要求を出力します。拡張インテリジェント I/O サービス
(EI2OS) にも対応しています。
■ 8/10 ビット A/D コンバータの割込み
表 19.5-1 8/10 ビット A/D コンバータの割込み制御ビットと割込み要因
8/10 ビット A/D コンバータ
割込み要求フラグビット
ADCS1:INT=1
割込み要求許可ビット
ADCS1:INTE=1
割込み要因
A/D 変換結果の A/D データレジスタへ格納
A/D 変換動作が起動され , A/D 変換結果が A/D データレジスタ (ADCR0/ADCR1) に格
納された場合 , A/D 制御ステータスレジスタ (ADCS1) の割込み要求フラグビット (INT)
が "1" にセットされ , 割込み要求許可ビット (INTE) が "1" にあらかじめ設定されてい
ると , CPU へ割込み要求を出力します。
■ 8/10 ビット A/D コンバータの割込みと EI2OS
表 19.5-2 8/10 ビット A/D コンバータの割込みと EI2OS
割込み制御レジスタ
ベクタテーブルアドレス
EI2OS
割込み番号
#37(25H)
レジスタ名
アドレス
下位
上位
バンク
ICR13
0000BDH
FFFF68H
FFFF69H
FFFF6AH
○
○:使用可能
■ 8/10 ビット A/D コンバータの EI2OS 機能
10 ビット A/D コンバータは , EI2OS 機能を使用して A/D 変換結果をメモリに転送でき
ます。EI2OS 機能を使用する場合は , 変換データ保護機能が働き , A/D データレジスタ
の値がメモリへ転送され , A/D 制御ステータスレジスタ 1(ADCS1) の割込み要求フラグ
ビット (INT) が "0" にクリアされるまで , A/D 変換を一時停止しますので , データの欠
落を防止できます。
432
第 19 章 8/10 ビット A/D コンバータ
19.6
8/10 ビット A/D コンバータの動作説明
8/10 ビット A/D コンバータには , 単発変換モード 1, 単発変換モード 2, 連続変換
モード , 停止変換モードの 4 種類のモードがあります。各モードの動作説明をしま
す。
■ 単発変換モードの動作
単発変換モードは , ANS ビットと ANE ビットで設定されたアナログ入力を順次変換し
ていき , ANE ビットで設定された終了チャネルまで変換が終わると A/D 変換は停止し
ます。開始チャネルと終了チャネルが同じ (ANS=ANE) ときは ANS ビットで指定した
1 チャネルだけの変換となります。単発変換モードで動作させるには , 図 19.6-1 の設定
が必要です。
図 19.6-1 単発変換モードでの設定
bit
15
14
13
12
11
10
ADCS0/ BUSY INT INTE PAUS STS1 STS0
ADCS1
◇
◇
◇
◇
◇
◇
ADCR0/
ADCR1
ADMR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
9
STRT
◇
8
7
6
予約 MD1 MD0
0
◇
5
4
3
2
1
0
−
−
−
−
−
−
◇
−
変換データを保管
ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0
◇
◇
◇
◇
◇
◇
◇
◇
◇ :使用ビット
0 :"0" に設定
単発変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 →終了
ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 →終了
ANS=011B, ANE=011B の場合 :AN3 →終了
■ 連続変換モードの動作
連続変換モードは , A/D 制御ステータスレジスタ 0(ADCS0) の A/D 変換開始チャネル
設定ビット (ANS3 ∼ ANS0) で設定した開始チャネルから A/D 変換終了チャネル設定
ビット (ANE3 ∼ ANE0) で設定した終了チャネルまでのアナログ入力を A/D 変換後 , A/D
変換開始チャネル設定ビット (ANS3 ∼ ANS0) で設定したアナログ入力に戻り , A/D 変
換を繰り返します。
開始チャネルと終了チャネルが同じ場合は, A/D変換開始チャネル設定ビット(ANS3∼
ANS0) で設定したチャネルの A/D 変換を繰り返します。
A/D 制御ステータスレジスタ 1(ADCS1) の変換中ビット (BUSY) に "0" を設定するまで ,
A/D 変換は停止しません。また , 動作中の再起動はできません。連続変換モードで動作
させるには , 図 19.6-2 に示す設定が必要です。
433
第 19 章 8/10 ビット A/D コンバータ
図 19.6-2 連続変換モードでの設定
bit
15
14
13
12
11
10
ADCS0/ BUSY INT INTE PAUS STS1 STS0
ADCS1
◇
◇
◇
◇
◇
◇
ADCR0/
ADCR1
ADMR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
STRT
◇
8
7
6
予約 MD1 MD0
0
−
1
5
4
3
2
1
0
−
−
−
−
−
−
0
変換データを保管
ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0
◇
◇
◆
1
0
9
◆
◆
◆
◆
◆
◆
◆
:使用ビット
:使用する端子に対応するビットを "1" に設定
:"1" に設定
:"0" に設定
連続変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 → AN1 → AN2 → AN3 → AN0 →繰返し
ANS=110B, ANE=010B の場合 :AN6 → AN7 → AN0 → AN1 → AN2 → AN6 →繰返し
ANS=011B, ANE=011B の場合 :AN3 → AN3 →繰返し
■ 停止変換モードの動作
停止変換モードは , A/D 制御ステータスレジスタ 0(ADCS0) の A/D 変換開始チャネル
設定ビット (ANS3 ∼ ANS0) で設定した開始チャネルから A/D 変換終了チャネル設定
ビット (ANE3 ∼ ANE0) で設定した終了チャネルまでのアナログ入力を 1 チャネルご
とに一時停止しながら A/D 変換後 , A/D 変換開始チャネル設定ビット (ANS3 ∼ ANS0)
で設定したアナログ入力に戻り , A/D 変換と一時停止の動作を繰り返します。
開始チャネルと終了チャネルが同じ場合は, A/D変換開始チャネル設定ビット(ANS3∼
ANS0) で設定したチャネルの A/D 変換を繰り返します。
一時停止を設定した場合の A/D 変換の再起動は , A/D 制御ステータスレジスタ
1(ADCS1) の A/D 起動要因設定ビット (STS1, STS0) で設定された起動要因によって異
なります。
A/D 制御ステータスレジスタ 1(ADCS1) の変換中ビット (BUSY) に "0" を設定するまで ,
A/D 変換は停止しません。また , 動作中の再起動はできません。停止変換モードで動作
させるには , 図 19.6-3 に示す設定が必要です。
434
第 19 章 8/10 ビット A/D コンバータ
図 19.6-3 停止変換モードでの設定
bit
15
14
13
12
11
10
ADCS0/ BUSY INT INTE PAUS STS1 STS0
ADCS1
◇
◇
◇
◇
◇
◇
ADCR0/
ADCR1
ADMR
S10
ST1
ST0
CT1
CT0
◇
◇
◇
◇
◇
STRT
◇
8
7
6
予約 MD1 MD0
0
−
1
5
4
3
2
1
0
−
−
−
−
−
−
1
変換データを保管
ANS3 ANS2 ANS1 ANS0 ANE3 ANE2 ANE1 ANE0
◇
◇
◆
1
0
9
◆
◆
◆
◆
◆
◆
◆
:使用ビット
:使用する端子に対応するビットを "1" に設定
:"1" に設定
:"0" に設定
停止変換モードでの変換順序の例を以下に示します。
ANS=000B, ANE=011B の場合 :AN0 →
一時停止→ AN1 →一時停止→ AN2 →
一時停止→ AN3 →一時停止→ AN0 →繰返し
ANS=110B, ANE=001B の場合 :AN6 →
一時停止→ AN7 →一時停止→ AN0 →
一時停止→ AN1 →一時停止→ AN6 →繰返し
ANS=011B, ANE=011B の場合 :AN3 →
一時停止→ AN3 →一時停止→繰返し
435
第 19 章 8/10 ビット A/D コンバータ
19.6.1
EI2OS を使用した変換動作
8/10 ビット A/D コンバータは , EI2OS を使用して , A/D 変換結果をメモリに転送で
きます。
■ EI2OS を使用した変換動作
図 19.6-4 EI2OS 使用時の動作フローチャート例
A/D変換起動
サンプルホールド
EI2OS起動
変換
データ転送
変換終了
指定回数終了か*
YES
割込み処理
NO
割込み出力
割込みクリア
*:EI2OSの設定で決まります。
EI2OS を使用した場合 , 変換データ保護機能が働き , 連続変換時にもデータ欠落を起こ
すことなく複数のデータを確実にメモリに転送できます。
436
第 19 章 8/10 ビット A/D コンバータ
19.6.2
A/D 変換データ保護機能
割込み許可状態で A/D 変換を実行した場合 , 変換データ保護機能が働きます。
■ A/D 変換データ保護機能
8/10 ビット A/D コンバータでは , 変換データ格納用のデータレジスタが 1 個ですので ,
A/D 変換を行った場合には変換終了時にデータレジスタ内の格納データが書き換えら
れます。連続変換モードで変換データのメモリへの転送が間に合わなかった場合には ,
格納されているデータが一部欠落します。
データ欠落の対策として割込み要求許可 (ADCS1:INTE=1) の場合は , 以下のようにデー
タ保護機能が働きます。
● EI2OS を使用しない場合のデータ保護機能
変換データが A/D データレジスタ (ADCR0/ADCR1) に格納されると A/D 制御ステータ
スレジスタ 1(ADCS1) の割込み要求フラグビット (INT) に "1" がセットされ , A/D 変換
を一時停止します。割込みルーチン内で , A/D データレジスタ (ADCR0/ADCR1) をメモ
リなどに転送した後 , 割込み要求フラグビット (INT) を "0" にクリアした場合 , A/D 変
換が再開します。
● EI2OS を使用する場合のデータ保護機能
連続変換モードで EI2OS を使用した場合 , A/D 変換が終了しても , 前データのメモリへ
の転送が完了していないと , A/D 制御ステータスレジスタ 1(ADCS1) の一時停止フラグ
ビット (PAUS) に "1" がセットされ , A/D 変換動作を一時停止し , 変換データを A/D デー
タレジスタ (ADCR0/ADCR1) に格納しません。前データのメモリへのデータ転送が完
了した場合 , 一時停止フラグビット (PAUS) は "0" にクリアされ , A/D 変換動作を再開
します。
437
第 19 章 8/10 ビット A/D コンバータ
図 19.6-5 EI2OS 使用時のデータ保護機能フロー
EI2OS設定
A/D連続変換起動
1回変換終了
データレジスタに格納
EI2OS起動
2回変換終了
EI2OS終了
NO
A/D一時停止
YES
データレジスタに格納
3回目変換
EI2OS起動
続く
すべて変換終了
EI2OS起動
続く
データレジスタに格納
割込み処理ルーチン
A/D初期化または停止
終了
<注意事項>A/Dコンバータ動作停止時のフローは省略
<注意事項>
・ 変換データ保護機能は , 割込みが許可されている場合 (ADCS1:INTE=1) に動作します。
・ EI2OS 使用中で A/D 変換が一時停止している場合に , 割込みを禁止すると A/D 変換が
動作し , 旧データの転送前に新データが書き込まれる場合があります。
・ 一時停止中に再起動をかけると , 待機データは破壊されます。
438
第 20 章
LCD コントローラ / ドライバ
LCD コントローラ / ドライバの機能と動作につい
て説明します。
20.1 LCD コントローラ / ドライバの概要
20.2 LCD コントローラ / ドライバの構成
20.3 LCD コントローラ / ドライバの端子
20.4 LCD コントローラ / ドライバのレジスタ
20.5 LCD コントローラ / ドライバの表示用 RAM
20.6 LCD コントローラ / ドライバの動作説明
439
第 20 章 LCD コントローラ / ドライバ
20.1
LCD コントローラ / ドライバの概要
LCD コントローラ / ドライバは , 24 × 8 ビットの表示データメモリを内蔵し , 4 本
のコモン出力と 48 本のセグメント出力によって LCD 表示の制御を行います。3 種
類のデューティ出力が選択でき , LCD パネル ( 液晶表示器 ) を直接駆動できます。
■ LCD コントローラ / ドライバの機能
LCD コントローラ / ドライバは , 表示データ・メモリ ( 表示用 RAM) の内容をセグメン
ト出力とコモン出力によってLCDパネル(液晶表示器)を直接表示する機能があります。
•
•
LCD 駆動電圧分割抵抗を内蔵しています。また , 外部分割抵抗を接続できます。
最大で4本のコモン出力(COM0∼COM3)と48本のセグメント出力(SEG0∼SEG47)を
使用できます。
•
24 バイトの表示データメモリ ( 表示用 RAM) を内蔵しています。
•
デューティは , 1/2, 1/3, 1/4 を選択できます ( バイアスの設定によって制限されます )。
•
LCD を直接駆動できます。
表 20.1-1 に使用できるバイアス・デューティの組合せを示します。
表 20.1-1 バイアス・デューティの組合せ表
バイアス
1/2 デューティ
1/3 デューティ
1/4 デューティ
1/2 バイアス
○
×
×
1/3 バイアス
×
○
○
○ : 推奨モード
× : 使用禁止
<注意事項>
SEG12 ∼ SEG47 端子は , LCRH/LCRR の設定で汎用ポートを選択した場合 , セグメント
出力としては使用できません。
440
第 20 章 LCD コントローラ / ドライバ
20.2
LCD コントローラ / ドライバの構成
LCD コントローラ / ドライバは , 次の 9 つのブロックで構成されており , 機能的には
表示用 RAM の内容に従って , セグメント信号とコモン信号を発生するコントローラ
部と , LCD を駆動するためのドライバ部に分けられます。
・LCDC 制御レジスタ (LCRL/LCRH)
・LCDC 範囲レジスタ (LCRR)
・表示用 RAM
・プリスケーラ
・タイミングコントローラ
・交流化回路
・コモンドライバ
・セグメントドライバ
・分割抵抗
■ LCD コントローラ / ドライバの構成
図 20.2-1 LCD コントローラ / ドライバのブロックダイヤグラム
LCDC範囲レジスタ
(LCRR)
V0 V1 V2 V3
LCDC制御レジスタL
(LCRL)
メイン
クロック
分割抵抗
4
タイミング
コントローラ
交流化回路
プリス
ケーラ
サブクロック
(32 kHz)
コ
モ
ン
ド
ラ
イ
バ
セグメントドライバ
48
表示用RAM
24×8ビット
COM0
COM1
COM2
COM3
SEG0
SEG1
SEG2
SEG3
SEG4
~
SEG42
SEG43
SEG44
SEG45
SEG46
SEG47
LCDC制御レジスタH
(LCRH)
コントローラ
ドライバ
441
第 20 章 LCD コントローラ / ドライバ
● LCDC 制御レジスタ下位 (LCRL)
LCD 駆動電源制御 , 表示 / 表示ブランキングの選択 , 表示モードの選択 , LCD クロック
の周期選択を行います。
● LCDC 制御レジスタ上位 (LCRH)
セグメント出力 , V 端子 , COM 端子と汎用ポートとの切換えを行うレジスタです。
● LCDC 範囲レジスタ (LCRR)
セグメント出力と汎用ポートとの切換え , LCD 駆動電圧用分割抵抗の選択を行います。
内部分割抵抗は 2 種類搭載されています。
● 表示用 RAM
セグメント出力信号発生用の 24 × 8 ビットの RAM です。この RAM の内容は , コモ
ン信号の選択タイミングに同期して自動的に読み出され , 表示用 RAM の書き換えと同
時にセグメント出力端子より出力されます。
● プリスケーラ
4 種類の周波数から選択された設定によって , フレーム周波数を発生します。
● タイミングコントローラ
フレーム周波数と LCRL レジスタの設定を基に , コモン信号 , セグメント信号の制御を
行います。
● 交流化回路
タイミングコントローラの信号から , LCD を駆動するための交流波形を生成します。
● コモンドライバ
LCD のコモン端子のドライバです。
● セグメントドライバ
LCD のセグメント端子のドライバです。
● 分割抵抗
LCD 駆動電圧を分割して発生させるための抵抗です。LCDC 制御レジスタ下位
(LCRL:VSEL) により選択可能です。また , 2 種類の分割抵抗を搭載しており LCDC 抵
抗レジスタ (LCRR:LCR) で選択可能です。分割抵抗は , 外付けすることもできます。
■ LCD コントローラ / ドライバの電源電圧
LCD ドライバの電源電圧は , 内蔵の分割抵抗を使用するか , または V0 ∼ V3 端子に分
割抵抗を接続することにより設定します。
442
第 20 章 LCD コントローラ / ドライバ
20.2.1
LCD コントローラ / ドライバの内部分割抵抗
LCD ドライバの電源電圧は , V0 ∼ V3 端子に接続された外部分割抵抗または内部分
割抵抗によってつくられます。内部分割抵抗は 2 種類の抵抗から選択できます。
■ LCD コントローラ / ドライバの内部分割抵抗
LCD コントローラ / ドライバには , 内部分割抵抗が内蔵されています。また , LCD 駆
動用電源端子 (V0 ∼ V3) に外部分割抵抗を接続することもできます。
内部分割抵抗と外部分割抵抗の選択は , LCDC 制御レジスタの駆動電源制御ビット
(LCRL:VSEL) で行います。VSEL ビットを "1" にすることにより内部分割抵抗が通電
状態になります。外部分割抵抗を接続せず内部分割抵抗を使用する場合は VSEL ビッ
トを "1" に設定してください。
外部分割抵抗を接続する場合は , VSEL ビットを "0" に設定して内部抵抗を切り離して
ください。
内部分割抵抗 (R) は , 約 100 kΩ / 約 12.5 kΩ (VCC 端子と V3 端子との間は約 200 kΩ / 約
25 kΩ ) の 2 種類から LCDC 抵抗レジスタにより (LCRR:LCR) 選択できます。
LCD コントローラ許可は , LCD 動作停止 (LCRL:MS1, MS0=00B) のときに非アクティブ
になります。
図 20.2-2 に内部分割抵抗の等価回路を示します。
図 20.2-2 内部分割抵抗の等価回路
VCC
P-ch
2R
N-ch
V3
V3
P-ch
R
N-ch
P-ch
V2
V2
VSHT
SW
P-ch
N-ch
R
N-ch
P-ch
V1
V1
P-ch
N-ch
R
P-ch
N-ch
V0
V0
LCDコント
ローラ許可
N-ch
N-ch
VSEL
VS0
V0~V3: V0~V3端子の電圧値
443
第 20 章 LCD コントローラ / ドライバ
■ 内部分割抵抗の使用
内部分割抵抗を使用した場合でも , VCC 端子と V3 端子との間には , 外部に抵抗を接続
してください。
図 20.2-3 に内部分割抵抗を使用時の状態を示します。
1/2 バイアス設定を行う場合は , 内部スイッチ ( 制御信号 :VSHT) により V2 端子と V1
端子は短絡されます。外部分割抵抗を使用する場合は , 1/2 バイアス設定時はスイッチ
が OFF しますので外部抵抗により短絡してください。
図 20.2-3 内部分割抵抗を使用時の状態
VCC
VCC
VR
V3
2R
V2
R
V1
R
V0
R
VR
V3
2R
V2
V2
R
V1
V1
R
V0
V0
R
V3
LCDコント
ローラ許可
V3
LCDコント
ローラ許可
Q1
1/2 バイアス
V2
V1
V0
Q1
1/3 バイアス
V0~V3: V0~V3端子の電圧値
■ V 端子の切換え
内部抵抗使用時 , LCDC 制御レジスタ上位 (LCRH:VS0) により , V2 ∼ V0 の 3 端子を
ポートに切り換えることが可能です。
■ 内部分割抵抗使用時の輝度調整
内部分割抵抗を使用して輝度があがらない場合には , 外部 (VCC 端子と V3 端子との間 )
に VR ( 可変抵抗 ) を接続して V3 端子の電圧を調節してください。
図 20.2-4 内部分割抵抗を使用時の輝度調節
VCC
VR
V3
2R
V2
R
V1
R
V0
R
V3
LCDコント
ローラ許可
V2
V1
V0
Q1
輝度調整をしたい場合
V0~V3: V0~V3端子の電圧値
444
第 20 章 LCD コントローラ / ドライバ
20.2.2
LCD コントローラ / ドライバの外部分割抵抗
外部分割抵抗または内部分割抵抗を使用して , LCD 駆動電圧を発生します。
VCC と V3 端子との間に可変抵抗を接続することで , 輝度を調節できます。
■ LCD コントローラ / ドライバの外部分割抵抗
LCD 駆動電源端子 (V0 ∼ V3) に外部分割抵抗を接続して使用できます。バイアス方式
に対応した外部分割抵抗の接続およびLCD駆動電圧を図 20.2-5 , 表 20.2-1 に示します。
図 20.2-5 外部分割抵抗の接続例
VCC
VCC
V3
V2
VR
VR
V3
R
R
V2
VLCD
R
V1
V0
VLCD
V1
R
R
V0
V0=VSS
V0=VSS
1/2 バイアス
1/3 バイアス
表 20.2-1 LCD 駆動電圧の設定
V3
V2
V1
V0
1/2 バイアス
VLCD
1/2 VLCD
1/2 VLCD
VSS
1/3 バイアス
VLCD
2/3 VLCD
1/3 VLCD
VSS
V0 ∼ V3:V0 ∼ V3 端子の電圧
VLCD:LCD の動作電圧
445
第 20 章 LCD コントローラ / ドライバ
■ 外部分割抵抗の使用
V0 端子は内部でトランジスタを通して VSS(GND) へ接続されていますので外部分割抵
抗を使用する場合 , 分割抵抗の VSS 側を V0 端子のみに接続することにより LCD コン
トローラ停止時に抵抗へ流れる電流を遮断できます。
図 20.2-6 に外部分割抵抗使用時の状態を示します。
図 20.2-6 外部分割抵抗使用時の状態
VCC
V3
V2
V1
V0
LCDコント
ローラ許可
•
2R
V3
R
V2
R
V1
R
V0
VR
RX
RX
RX
V0=VSS
Q1
内部分割抵抗の影響を受けずに外部抵抗を接続するには , LCDC 制御レジスタの駆動
電圧制御ビット (LCRL:VSEL) に "0" を書き込み , 内部分割抵抗全体を切り離す必要
があります。外部分割抵抗を使用する場合は , 必ず V 端子切換えビット (LCRH:VS0)
は "0" に設定してください。
•
内部分割抵抗を切り離された状態で , LCDC 制御レジスタの表示モード選択ビット
(LCRL:MS1, MS0) に "00B" 以外を書き込むと LCDC 許可トランジスタ (Q1) が ON と
なって外部分割抵抗に電流が流れます。
•
表示モード選択ビット(MS1, MS0)に"00B"を書き込むとLCDC許可トランジスタ(Q1)
が OFF となって外部分割抵抗に電流が流れなくなります。
外部に接続する RX は , 使用する LCD により異なりますので適切な値を選択してく
ださい。
446
第 20 章 LCD コントローラ / ドライバ
20.3
LCD コントローラ / ドライバの端子
LCD コントローラ / ドライバに関連する端子 , 端子のブロックダイヤグラムを示し
ます。
■ LCD コントローラ / ドライバに関連する端子
LCDコントローラ/ドライバに関連する端子は, 4本のコモン出力端子(COM0∼COM3),
48本のセグメント出力端子(SEG0∼SEG47), 4本のLCD駆動用電源端子(V0∼V3)です。
表 20.3-1 LCD コントローラ / ドライバ端子機能 (1 / 2)
端子名
機能
SEG0 ∼
SEG11
LCD セグメント出力専用端子です。
P00/SEG12 ∼
P07/SEG19
汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。
切換えは LCRR レジスタの設定により行います。
P10/SEG20 ∼
P17/SEG27
汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。
切換えは LCRR レジスタの設定により行います。
P20/SEG28 ∼
P23/SEG31
汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。
切換えは LCRR レジスタの設定により行います。
P24/SEG32 ∼
P27/SEG35
汎用入出力ポートと LCD セグメント出力端子としての機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P30/SEG36/
SO3
汎用入出力ポート , LCD セグメント出力端子 , シリアル I/O データ出力端子としての
機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P31/SEG37/
SC3
汎用入出力ポート , LCD セグメント出力端子 , シリアルクロック入出力端子として
の機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P32/SEG38/
SI3
汎用入出力ポート , LCD セグメント出力端子 , シリアル I/O データ入力端子としての
機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P33/SEG39/
TMCK
汎用入出力ポート , LCD セグメント出力端子 , 時計クロック出力端子としての機能
を兼用しています。
切換えは LCRH レジスタの設定により行います。
P34/SEG40/
IC0,
P35/SEG41/
IC1
汎用入出力ポート , LCD セグメント出力端子 , インプットキャプチャの外部トリガ
入力端子としての機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P36/SEG42/
OCU0,
P37/SEG43/
OCU1
汎用入出力ポート , LCD セグメント出力端子 , アウトプットコンペアの出力端子と
しての機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
447
第 20 章 LCD コントローラ / ドライバ
表 20.3-1 LCD コントローラ / ドライバ端子機能 (2 / 2)
端子名
機能
P50/SEG44/
TIN0,
P51/SEG45/
TIN1
汎用入出力ポート , LCD セグメント出力端子 , リロードタイマの外部クロック入力
端子としての機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P52/SEG46/
TIN2/PPG0
汎用入出力ポート , LCD セグメント出力端子 , リロードタイマの外部クロック入力
端子 , PPG タイマ出力端子としての機能を兼用しています。
切換えは LCRH レジスタの設定により行います。
P53/SEG47/
PPG1
汎用入出力ポート , LCD セグメント出力端子 , PPG タイマ出力端子としての機能を
兼用しています。
切換えは LCRH レジスタの設定により行います。
COM0,
COM1
LCD コモン出力専用端子です。
P83/COM2,
P84/COM3
汎用入出力ポートと COM 出力端子としての機能を兼用しています。切換えは LCRH
レジスタの設定により行います。
V3
LCD 駆動用電源専用端子です。
V2/P82 ∼
V0/P80
LCD 駆動用電源端子と汎用入出力ポートとしての機能を兼用しています。切換えは
LCRH レジスタの設定により行います。
448
第 20 章 LCD コントローラ / ドライバ
■ LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
図 20.3-1 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
ポートデータレジスタ(PDR)
内部データバス
PDR リード
出力ラッチ
PDR ライト
端子
ポート方向レジスタ(PDR)
DDR
DDR ライト
DDR リード
スタンバイ制御 (SPL = 1)
LCD出力
端子: P00/SEG12 ~ P07/SEG19
P10/SEG20 ~ P17/SEG27
P20/SEG28 ~ P27/SEG35
P83/COM2, P84/COM3
LCD出力イネーブル
図 20.3-2 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
リソース出力
リソース入力
リソース出力イネーブル
内部データバス
ポートデータレジスタ (PDR)
PDR リード
出力ラッチ
PDR ライト
端子
ポート方向レジスタ (PDR)
DDR
DDR ライト
DDR リード
端子: P30/SEG36/SO3, P31/SEG37/SC3
P32/SEG38/SI3, P33/SEG39/TMCK
P34/SEG40/IC0, P35/SEG41/IC1
P36/SEG42/OCU0, P37/SEG43/OCU1
P50/SEG44/TIN0, P51/SEG45/TIN1
P52/SEG46/TIN2/PPG0
P53/SEG47/PPG1
スタンバイ制御 (SPL = 1)
LCD 出力
LCD 出力イネーブル
449
第 20 章 LCD コントローラ / ドライバ
図 20.3-3 LCD コントローラ / ドライバに関連する端子のブロックダイヤグラム
LCRH
VS
内部データバス
ポートデータレジスタ (PDR)
LCD入力
(V0~V3)
PDR リード
出力ラッチ
PDR ライト
端子
ポート方向レジスタ (PDR)
DDR
DDR ライト
DDR リード
端子: V2/P82 ~ V0/P80
450
スタンバイ制御 (SPL = 1)
第 20 章 LCD コントローラ / ドライバ
20.4
LCD コントローラ / ドライバのレジスタ
LCD コントローラ / ドライバに関連するレジスタを示します。
■ LCD コントローラ / ドライバに関連するレジスタ
図 20.4-1 LCD コントローラ / ドライバに関連するレジスタ
LCRL(LCDC 制御レジスタ下位 )
アドレス
00005CH
bit7
CSS
R/W
bit6
LCEN
R/W
bit5
VSEL
R/W
bit4
BK
R/W
bit3
MS1
R/W
bit2
MS0
R/W
bit1
FP1
R/W
bit0
FP0
R/W
初期値
00010000B
初期値
00000000B
LCRH(LCDC 制御レジスタ上位 )
アドレス
00005DH
bit15
bit14
bit13
bit12
bit11
bit11
bit9
bit8
SS4
R/W
VS0
R/W
CS1
R/W
CS0
R/W
SS3
R/W
SS2
R/W
SS1
R/W
SS0
R/W
LCRR(LCDC 範囲レジスタ )
アドレス
00005EH
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
予約
R/W
予約
R/W
SE4
R/W
SE3
R/W
SE2
R/W
SE1
R/W
SE0
R/W
LCR
R/W
初期値
00000000B
R/W: リード / ライト可能
451
第 20 章 LCD コントローラ / ドライバ
LCDC 制御レジスタ下位 (LCRL)
20.4.1
LCDC 制御レジスタ下位 (LCRL) は , 駆動電源の制御 , 表示ブランキング , 表示モー
ドの選択を行うレジスタです。
■ LCDC 制御レジスタ下位 (LCRL)
図 20.4-2 LCDC レジスタ下位 (LCRL)
アドレス
00005CH
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
CSS
LCEN VSEL
BK
MS1
MS0
FP1
FP0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
FP1 FP0
0
0
1
1
0
1
0
1
初期値
00010000B
フレーム周期選択ビット
CSS=0
CSS=1
Fc/213xN
Fc/25xN
Fc/214xN
Fc/26xN
15
Fc/2 xN
Fc/27xN
Fc/216xN
Fc/28xN
N:時分割数
Fc:原発振
表示モード選択ビット
MS1 MS0
0
0 LCD動作停止
0
1 1/2デューティ出力モード(時分割数 N=2)
1
0 1/3デューティ出力モード(時分割数 N=3)
1
1 1/4デューティ出力モード(時分割数 N=4)
表示ブランキング選択ビット
BK
0 表示
1 表示ブランキング
LCD駆動電源制御ビット
VSEL
0 外部分割抵抗を使用する
1 内部分割抵抗を使用する
タイムベースタイマモード時/時計モード時
LCEN 動作許可ビット
タイムベースタイマモード時/時計モード時
0 動作を停止します。
1
R/W
:リード/ライト可能
:初期値
452
タイムベースタイマモード時/時計モード時
動作を停止しません。
時計モード時は,必ずクロック選択ビット
(CSS)を"1"に設定してください。
クロック選択ビット
CSS
0 メインクロック
1 サブクロック
第 20 章 LCD コントローラ / ドライバ
表 20.4-1 LCDC 制御レジスタ下位 (LCRL) の各ビットの機能説明
ビット名
機能
bit7
CSS:
クロック選択
ビット
プリスケーラ用クロック選択ビットです。
0: メインクロックを選択します。
1: サブクロックを選択します。
bit6
LCEN:
タイムベースタイマ
モード時 / 時計
モード時動作許可
ビット
タイムベースタイマモード時 / 時計モード時の動作許可ビッ
トです。
タイムベースタイマモード時 / 時計モード時では , このビッ
トが "0" のとき LCD 表示が停止し , "1" のとき動作します。
時計モード時は , 必ずクロック選択ビット (CSS) に "1" を設
定してサブクロックを選択してください。
bit5
VSEL:
LCD 駆動電源
制御ビット
内部分割抵抗に通電するかどうかの選択を行うビットです。
VSEL ビットが "0" のとき内部分割抵抗は遮断され , "1" のと
き導通します。外部分割抵抗を接続する場合は , VSEL ビッ
トを "0" にする必要があります。
bit4
BK:
表示ブランキング
選択ビット
LCD の表示 / 非表示を選択します。
表示部ブランキング ( 非表示 , BK=1) では , セグメント出力
は非選択波形 ( 表示条件とならない波形 ) となります。
bit3,
bit2
MS1, MS0:
表示モード
選択ビット
出力波形のデューティを 3 種類の中から選択します。
選択したデューティ出力モードに対応して , 使用するコモン
端子が決まります。
これらのビットが "0" のときは , LCD コントローラ / ドライ
バは表示動作を停止します。
( 注意事項 ) 選択したフレーム周期発生用クロックがストッ
プモードへの移行などで停止する場合は , あら
かじめ表示動作を停止してください。
bit1,
bit0
FP1, FP0:
フレーム周期
選択ビット
LCD 表示のフレーム周期を 4 種類の中から選択します。
( 注意事項 ) 使用する LCD モジュールに応じて最適フレーム
周波数を計算して , レジスタの設定を行ってく
ださい。フレーム周波数は原発振の周波数の影
響を受けます。
453
第 20 章 LCD コントローラ / ドライバ
LCDC 制御レジスタ上位 (LCRH)
20.4.2
LCDC 制御レジスタ上位 (LCRL) は , セグメント出力 (SEG32 ∼ SEG47), V 端子入
力 (V0 ∼ V2), COM 端子出力 (COM2, COM3) と汎用ポートとの切換えを行うレジス
タです。
■ LCDC 制御レジスタ上位 (LCRH)
図 20.4-3 LCDC 制御レジスタ上位 (LCRH)
アドレス bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8
00005DH
SS4
VS0
CS1
CS0
SS3
SS2
SS1
SS0
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
SS4 SS3 SS2 SS1 SS0
:初期値
454
00000000B
SEG32~SEG47出力切換えビット
セグメント出力
汎用ポート
0
X
X
X
X
-
P24~P27,P30~P37,P50~P53
1
0
0
0
0
SEG32
P25~P27,P30~P37,P50~P53
1
0
0
0
1
SEG32,SEG33
P26,P27,P30~P37,P50~P53
1
0
0
1
0
SEG32~SEG34
P27,P30~P37,P50~P53
1
0
0
1
1
SEG32~SEG35
P30~P37,P50~P53
1
0
1
0
0
SEG32~SEG36
P31~P37,P50~P53
1
0
1
0
1
SEG32~SEG37
P32~P37,P50~P53
1
0
1
1
0
SEG32~SEG38
P33~P37,P50~P53
1
0
1
1
1
SEG32~SEG39
P34~P37,P50~P53
1
1
0
0
0
SEG32~SEG40
P35~P37,P50~P53
1
1
0
0
1
SEG32~SEG41
P36,P37,P50~P53
1
1
0
1
0
SEG32~SEG42
P37,P50~P53
1
1
0
1
1
SEG32~SEG43
P50~P53
1
1
1
0
0
SEG32~SEG44
P51~P53
1
1
1
0
1
SEG32~SEG45
P52,P53
1
1
1
1
0
SEG32~SEG46
P53
1
1
1
1
1
SEG32~SEG47
-
VS0
0
1
R/W :リード/ライト可能
初期値
SEG32~SEG47出力切換えビット
V0~V2
P80~P82
CS1 CS0 COM端子切換えビット
0
0 COM0, COM1
0
1 COM0~COM2
1
X COM0~COM3
第 20 章 LCD コントローラ / ドライバ
表 20.4-2 LCDC 制御レジスタ上位 (LCRH) の各ビットの機能説明
ビット名
機能
SS4:
SEG32 ∼ SEG47 出力
切換えビット
P24 ∼ P27, P30 ∼ P37, P50 ∼ P53/SEG32 ∼ SEG47
端子をセグメント出力として使用するか , 汎用ポー
トとして使用するかを切り換えます。
bit 14
VS0:
SEG32 ∼ SEG47 出力
切換えビット
P80 ∼ P82/V0 ∼ V2 端子を V0 ∼ V2 として使用す
るか, 汎用ポートとして使用するかを切り換えます。
( 注意事項 )V 端子を汎用ポートとして使用する場
合 , 必ず内部分割抵抗を有効にする必要
があります。あらかじめ LCD 駆動電源
制御ビット (VSEL) を "1" に設定してく
ださい。
bit 13,
bit 12
CS1, CS0:
COM端子切換えビット
P83/COM2, P84/COM3 端子を COM として使用する
か , 汎用ポートとして使用するかを切り換えます。
bit 11
∼
bit 8
SS3 ∼ SS0:
SEG32 ∼ SEG47 出力
切換えビット
P47/SEG21, P90/SEG22, P91/SEG23 端子をセグメン
ト出力として使用するか , 汎用ポートとして使用す
るかを切り換えます。
bit 15
455
第 20 章 LCD コントローラ / ドライバ
LCDC 範囲レジスタ (LCRR)
20.4.3
LCDC 範囲レジスタ (LCRR) は , セグメント出力 (SEG12 ∼ SEG31) と汎用ポート
との切換え , LCD 駆動電圧発生用の内部分割抵抗の選択を行うレジスタです。
■ LCDC 範囲レジスタ (LCRR)
図 20.4-4 LCDC 範囲レジスタ (LCRR)
bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0
アドレス
00005EH
予約 予約
SE4
SE3
SE2
SE1
SE0
LCR
R/W
R/W
R/W
R/W
R/W
R/W
R/W
R/W
初期値
00000000B
内部分割抵抗選択ビット
LCR
0
内部分割抵抗 約100kΩ(Vcc-V3間は,約200kΩ)が選択されます。
1
外部分割抵抗 約12.5kΩ(Vcc-V3間は,約25kΩ)が選択されます。
SEG12~SEG31出力切換えビット
SE4 SE3 SE2 SE1 SE0
汎用ポート
セグメント出力
0
0
0
0
0
-
P00~P07,P10~P17,P20~P23
0
0
0
0
1
SEG12~SEG15
P04~P07,P10~P17,P20~P23
0
0
0
1
1
SEG12~SEG19
P10~P17,P20~P23
0
0
1
1
1
SEG12~SEG23
P14~P17,P20~P23
0
1
1
1
1
SEG12~SEG27
P20~P23
1
1
1
1
1
SEG12~SEG31
-
予約
0
R/W
予約ビット
必ず"0"を設定してください。
:リード/ライト可能
:初期値
表 20.4-3 LCDC 制御レジスタ上位 (LCRH) の各ビットの機能説明
ビット名
bit 7, bit6
bit 5 ∼ bit1
bit 0
456
機能
予約:
予約ビット
予約ビットです。
必ず "0" を設定してください。
SE4 ∼ SE0:
SEG12 ∼ SEG31 出力
切換えビット
P00/SEG12 ∼ P07/SEG19, P10/SEG20 ∼ P17/SEG27, P20/
SEG28 ∼ P23/SEG31 端子をセグメント出力として使用
するか , 汎用ポートとして使用するかを切り換えます。
LCR:
内部分割抵抗選択ビット
LCD 駆動電源発生用 , 内部分割抵抗の選択を行います。
第 20 章 LCD コントローラ / ドライバ
20.5
LCD コントローラ / ドライバの表示用 RAM
表示用 RAM は , セグメント出力信号発生用の 24 × 8 ビットの表示用データメモリ
です。
■ 表示用 RAM と出力端子
この RAM の内容は , コモン信号の選択タイミングに同期して自動的に読み出され , セ
グメント出力端子より出力されます。
各ビットの内容が "1" であれば選択電圧に変換 (LCD は表示 ) され , "0" であれば非選
択電圧に変換 (LCD は非表示 ) されて出力されます。
LCD 表示動作は CPU の動作とは無関係に行われるので , 表示用 RAM に対しては任意
のタイミングでリード・ライトができます。
SEG0 ∼ SEG47 端子のうち , LCRH レジスタでセグメント出力に指定されなかった端子
は汎用ポートとして , また , 対応する RAM は通常の RAM として使用できます ( 表 20.51 を参照 )。
表 20.5-2 にデューティ , コモン出力と表示用 RAM の関係を示します。
図 20.5-1 に表示用 RAM とコモン出力端子・セグメント出力端子の対応図を示します。
図 20.5-1 表示用 RAM とコモン出力端子・セグメント出力端子の対応 (1 / 2)
アドレス
bit3
bit2
bit1
bit0
SEG0
7900H
bit7
bit6
bit5
bit4
SEG1
bit11
bit10
bit9
bit8
SEG2
bit15
bit14
bit13
bit12
SEG3
bit3
bit2
bit1
bit0
SEG4
bit7
bit6
bit5
bit4
SEG5
bit11
bit10
bit9
bit8
SEG6
bit15
bit14
bit13
bit12
SEG7
bit3
bit2
bit1
bit0
SEG8
bit7
bit6
bit5
bit4
SEG9
bit11
bit10
bit9
bit8
SEG10
bit15
bit14
bit13
bit12
SEG11
bit3
bit2
bit1
bit0
SEG12
bit7
bit6
bit5
bit4
SEG13
bit11
bit10
bit9
bit8
SEG14
bit15
bit14
bit13
bit12
SEG15
bit3
bit2
bit1
bit0
SEG16
7901H
7902H
7903H
7904H
7905H
7906H
7907H
457
第 20 章 LCD コントローラ / ドライバ
図 20.5-1 表示用 RAM とコモン出力端子・セグメント出力端子の対応 (2 / 2)
7908H
7909H
790AH
790BH
790CH
790DH
790EH
790FH
7910H
7911H
7912H
7913H
7914H
7915H
7916H
7917H
458
bit7
bit6
bit5
bit4
SEG17
bit11
bit10
bit9
bit8
SEG18
bit15
bit14
bit13
bit12
SEG19
bit3
bit2
bit1
bit0
SEG20
bit7
bit6
bit5
bit4
SEG21
bit11
bit10
bit9
bit8
SEG22
bit15
bit14
bit13
bit12
SEG23
bit3
bit2
bit1
bit0
SEG24
bit7
bit6
bit5
bit4
SEG25
bit11
bit10
bit9
bit8
SEG26
bit15
bit14
bit13
bit12
SEG27
bit3
bit2
bit1
bit0
SEG28
bit7
bit6
bit5
bit4
SEG29
bit11
bit10
bit9
bit8
SEG30
bit15
bit14
bit13
bit12
SEG31
bit3
bit2
bit1
bit0
SEG32
bit7
bit6
bit5
bit4
SEG33
bit11
bit10
bit9
bit8
SEG34
bit15
bit14
bit13
bit12
SEG35
bit3
bit2
bit1
bit0
SEG36
bit7
bit6
bit5
bit4
SEG37
bit11
bit10
bit9
bit8
SEG38
bit15
bit14
bit13
bit12
SEG39
bit3
bit2
bit1
bit0
SEG40
bit7
bit6
bit5
bit4
SEG41
bit11
bit10
bit9
bit8
SEG42
bit15
bit14
bit13
bit12
SEG43
bit3
bit2
bit1
bit0
SEG44
bit7
bit6
bit5
bit4
SEG45
bit11
bit10
bit9
bit8
SEG46
bit15
bit14
bit13
bit12
SEG47
COM3
COM2
COM1
COM0
第 20 章 LCD コントローラ / ドライバ
表 20.5-1 コモン・セグメントと表示用 RAM の関係および兼用端子
LCRH/LCRR レジスタの
SS4 ∼ SS0, SE4 ∼ SE0
ビット値
使用するセグメント
表示用として
使用される
RAM 領域
汎用ポートに
使用できる端子
SE4 ∼ SE0
SS4 ∼ SS0
00000B
0XXXX B
SEG0∼SEG11 (12本)
7900H ∼ 7905H
P00 ∼P07, P10 ∼P17, P20 ∼P27,
P30 ∼ P37, P50 ∼ P53
00001B
0XXXX B
SEG0∼SEG15 (16本)
7900H ∼ 7907H
P04 ∼P07, P10 ∼P17, P20 ∼P27,
P30 ∼ P37, P50 ∼ P53
00011B
0XXXX B
SEG0∼SEG19 (20本)
7900H ∼ 7909H
P10 ∼P17, P20 ∼P27, P30 ∼P37,
P50 ∼ P53
00111B
0XXXX B
SEG0∼SEG23 (24本)
7900H ∼ 790BH
P14 ∼P17, P20 ∼P27, P30 ∼P37,
P50 ∼ P53
01111B
0XXXX B
SEG0∼SEG27 (28本)
7900H ∼ 790DH
P20 ∼ P27, P30 ∼ P37, P50 ∼ P53
11111B
0XXXX B
SEG0∼SEG31 (32本)
7900H ∼ 790FH
P24 ∼ P27, P30 ∼ P37, P50 ∼ P53
11111B
10000B
SEG0∼SEG32 (33本)
7900H ∼ 7910H
P25 ∼ P27, P30 ∼ P37, P50 ∼ P53
11111B
10001B
SEG0∼SEG33 (34本)
7900H ∼ 7910H
P26, P27, P30 ∼ P37, P50 ∼ P53
11111B
10010B
SEG0∼SEG34 (35本)
7900H ∼ 7911H
P27, P30 ∼ P37, P50 ∼ P53
11111B
10011B
SEG0∼SEG35 (36本)
7900H ∼ 7911H
P30 ∼ P37, P50 ∼ P53
11111B
10100B
SEG0 ∼ SEG36(37 本 )
7900H ∼ 7912H
P31 ∼ P37, P50 ∼ P53
11111B
10101B
SEG0∼SEG37 (38本)
7900H ∼ 7912H
P32 ∼ P37, P50 ∼ P53
11111B
10110B
SEG0 ∼ SEG38(39 本 )
7900H ∼ 7913H
P33 ∼ P37, P50 ∼ P53
11111B
10111B
SEG0∼SEG39 (40本)
7900H ∼ 7913H
P34 ∼ P37, P50 ∼ P53
11111B
11000B
SEG0 ∼ SEG40(41 本 )
7900H ∼ 7914H
P35 ∼ P37, P50 ∼ P53
11111B
11001B
SEG0 ∼ SEG41(42 本 )
7900H ∼ 7914H
P36, P37, P50 ∼ P53
11111B
11010B
SEG0∼SEG42 (43本)
7900H ∼ 7915H
P37, P50 ∼ P53
11111B
11011B
SEG0∼SEG43 (44本)
7900H ∼ 7915H
P50 ∼ P53
11111B
11100B
SEG0∼SEG44 (45本)
7900H ∼ 7916H
P51 ∼ P53
11111B
11101B
SEG0∼SEG45 (46本)
7900H ∼ 7916H
P52, P53
11111B
11110B
SEG0∼SEG46 (47本)
7900H ∼ 7917H
P53
11111B
11111B
SEG0∼SEG47 (48本)
7900H ∼ 7917H
なし
<参考>
表示用として使用されない RAM 領域は , 通常の RAM として使用できます。
ただし , バイトアクセスのみ可能です。
459
第 20 章 LCD コントローラ / ドライバ
表 20.5-2 デューティとコモン出力および表示用 RAM の使用ビットの関係
使用される各表示用データのビット
デューティ
設定値
使用される
コモン出力
bit14
bit13
bit12
bit11
bit10
bit9
bit8
bit7
bit6
bit5
bit4
bit3
bit2
bit1
bit0
1/2
COM0,
COM1(2 本 )
−
−
○
○
−
−
○
○
1/3
COM0 ∼
COM2(3 本 )
−
○
○
○
−
○
○
○
1/4
COM0 ∼
COM3(4 本 )
○
○
○
○
○
○
○
○
○ : 使われる
− : 使われない
460
bit15
第 20 章 LCD コントローラ / ドライバ
20.6
LCD コントローラ / ドライバの動作説明
LCD コントローラ / ドライバは , LCD 表示に必要な制御および駆動を行います。
■ LCD コントローラ / ドライバの動作説明
LCD 表示を行うためには , 以下の設定が必要です。
図 20.6-1 LCD コントローラ / ドライバの設定
LCRL
LCRL
LCRL
表示用 RAM
7900H ∼ 7917H
bit7
CSS
◎
bit6
LCEN
◎
bit5
VSEL
◎
bit4
BK
◎
bit3
MS1
bit15
SS4
◎
bit14
VS0
◎
bit13
CS1
◎
bit12
CS0
◎
bit11
SS3
◎
bit7
bit6
−
0
−
0
bit5
SE4
◎
bit4
SE3
◎
bit3
SE2
◎
bit2
MS0
bit1
FP1
◎
bit0
FP0
◎
bit10
SS2
◎
bit9
SS1
◎
bit8
SS0
◎
bit2
SE1
◎
bit1
SE0
◎
bit0
LCR
◎
00B 以外
表示データ
◎:使用ビット
0 :"0" を設定
以上の設定が行われ , 選択したフレーム周期発生用クロックが発振していれば , 表示用
RAM の内容に従って , コモン・セグメント出力端子 (COM0 ∼ COM3, SEG0 ∼ SEG47)
に LCD パネルの駆動波形を出力します。
LCD 表示動作中であっても , フレーム周期発生用クロックは切り換えることができま
す。た だ し , 切 換 え 時 に 表 示 が ち ら つ く 可 能 性 が あ り ま す の で , ブ ラ ン キ ン グ
(LCRL:BK=1) などで表示を一時的に停止させてから , クロックの切換えを行うように
してください。
表示駆動出力はバイアスおよびデューティの設定によって選択される 2 フレーム交流
化波形です。
1/2 デューティの場合 , COM2, COM3 端子の出力は , 非選択レベルの出力波形となりま
す。同様に , 1/3 デューティの場合 , COM3 端子の出力は , 非選択レベルの出力波形と
なります。
LCD 表示動作を停止 (LCRL:MS1, MS0=00B) した場合 , およびリセット中は , コモン・
セグメント出力端子はともに "L" レベルになります。
<注意事項>
LCD 表示動作中に , 選択したフレーム周期発生用クロックが停止すると , 交流化回路が停
止するため液晶素子に直接電流が印加されます。この場合 , あらかじめ LCD 表示動作を
停止しておく必要があります。原発振クロックが停止する条件は , スタンバイモードの選
択によります。
461
第 20 章 LCD コントローラ / ドライバ
■ LCD の駆動波形
LCDはその性質上, 直流駆動を行うと液晶表示素子に化学変化が生じ, 素子が劣化して
しまいます。このため , LCD コントローラ / ドライバは交流化回路を内蔵し , 2 フレー
ム交流化波形で , LCD を駆動します。出力波形には次の 3 種類があります。
• 1/2 バイアス・1/2 デューティ出力波形
• 1/3 バイアス・1/3 デューティ出力波形
• 1/3 バイアス・1/4 デューティ出力波形
462
第 20 章 LCD コントローラ / ドライバ
20.6.1
LCD コントローラ / ドライバ動作時の出力波形
(1/2 デューティ )
表示駆動出力はマルチプレックス駆動方式の 2 フレーム交流化波形です。
1/2 デューティのとき表示に使用されるのは , COM0, COM1 のみです。COM2,
COM3 は使用されません。
■ 1/2 バイアス・1/2 デューティ出力波形
表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。
表示用 RAM の内容が表 20.6-1 のときの出力波形を図 20.6-2 に示します。
表 20.6-1 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
COM2
COM1
COM0
SEGn
−
−
0
0
SEGn+1
−
−
0
1
− : 使用されない
463
第 20 章 LCD コントローラ / ドライバ
図 20.6-2 1/2 バイアス /1/2 デューティ出力波形例
COM0
V3
V2=V1
V0=Vss
COM1
V3
V2=V1
V0=Vss
COM2
V3
V2=V1
V0=Vss
COM3
V3
V2=V1
V0=Vss
SEGn
V3
V2=V1
V0=Vss
SEGn+1
V3
V2=V1
V0=Vss
COM0とSEGn
の電位差
V3(ON)
V2
V0=Vss
-V2
-V3(ON)
COM1とSEGn
の電位差
V3(ON)
V2
V0=Vss
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
V0=Vss
-V2
-V3(ON)
COM1とSEGn+1
の電位差
V3(ON)
V2
V0=Vss
-V2
-V3(ON)
1フレーム
1周期
V0~V3:V0~V3端子の電圧値
464
第 20 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/2 デューティ駆動方式 )
図 20.6-3 LCD パネル表示データ例
7900
7901
7905
7904
7903
7902
7901
7900
bit2, bit3, bit6, bit7は未使用
465
第 20 章 LCD コントローラ / ドライバ
20.6.2
LCD コントローラ / ドライバ動作時の出力波形
(1/3 デューティ )
1/3 デューティのとき表示に使用されるのは , COM0, COM1 および COM2 です。
COM3 は使用されません。
■ 1/3 バイアス・1/3 デューティ出力波形例
表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。
表示用 RAM の内容が表 20.6-2 のときの出力波形を図 20.6-4 に示します。
表 20.6-2 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
COM2
COM1
COM0
SEGn
−
1
0
0
SEGn+1
−
1
0
1
− : 使用されない
466
第 20 章 LCD コントローラ / ドライバ
図 20.6-4 1/3 バイアス・1/3 デューティ出力波形例
COM0
V3
V2
V1
V0=Vss
COM1
V3
V2
V1
V0=Vss
COM2
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
COM3
SEGn
SEGn+1
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM0とSEGn
の電位差
COM1とSEGn
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM2とSEGn
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM1とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM2とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
1フレーム
1周期
V0~V3:V0~V3端子の電圧値
467
第 20 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/3 デューティ駆動方式 )
図 20.6-5 LCD パネルの表示データ例
7900
7901
7904
7903
7902
7901
7900
7902
1/3デューティは3バイトで2桁の表示を行う
ため,データの配列は第1バイトbit0からと第2
バイトbit4からの2とおりのデータがあります。
468
第 20 章 LCD コントローラ / ドライバ
20.6.3
LCD コントローラ / ドライバ動作時の出力波形
(1/4 デューティ )
1/4 デューティのときは表示用に , COM0, COM1, COM2 および COM3 のすべてが
使用されます。
■ 1/3 バイアス・1/4 デューティ出力波形例
表示はコモン出力とセグメント出力の電位差が最大となる液晶素子が ON となります。
表示用 RAM の内容が表 20.6-3 のときの出力波形を図 20.6-6 に示します。
表 20.6-3 表示用 RAM の内容例
表示用 RAM の内容
セグメント
COM3
COM2
COM1
COM0
SEGn
0
1
0
0
SEGn+1
0
1
0
1
469
第 20 章 LCD コントローラ / ドライバ
図 20.6-6 1/3 バイアス・1/4 デューティ出力波形例
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
COM0
COM1
COM2
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
V3
V2
V1
V0=Vss
COM3
SEGn
SEGn+1
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM0とSEGn
の電位差
COM1とSEGn
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM2とSEGn
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM3とSEGn
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM0とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM1とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM2とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
COM3とSEGn+1
の電位差
V3(ON)
V2
V1
V0=Vss
-V1
-V2
-V3(ON)
1フレーム
1周期
V0~V3:V0~V3端子の電圧値
470
第 20 章 LCD コントローラ / ドライバ
■ LCD パネルの結線例と表示データ例 (1/4 デューティ駆動方式 )
図 20.6-7 LCD パネルの表示データ例
7903
7902
7901
7900
7900
471
第 20 章 LCD コントローラ / ドライバ
472
第 21 章
時計クロック出力
MB90800 シリーズの時計クロック出力の機能と動
作について説明します。
21.1 時計クロック出力回路の概要
21.2 時計クロック出力回路の構成
21.3 時計クロック出力制御レジスタ (TMCS)
473
第 21 章 時計クロック出力
21.1
時計クロック出力回路の概要
時計クロック出力回路は , 発振クロックをタイムベースタイマにて分周し , 設定され
た分周クロックを外部へ出力するものです。
発振クロックの 32/64/128/256 分周より設定できます。
■ 時計クロック出力回路
時計クロック出力回路は , リセットおよびストップモードにおいては無効となります。
PLL クロックモード , メインクロックモード , スリープモード , サブクロックモード時
に有効です。
表 21.1-1 時計クロック出力可能モード
PLL クロック メインクロック
モード
モード
動作状態
○
○
スリープ
モード
サブクロック
モード
ストップ
モード
リセット
○
○
×
×
<注意事項>
時計クロック出力回路を使用中にタイムベースタイマがクリアされた場合は , クロック出
力が正常に行えません。
タイムベースタイマのクリア条件は , 「第 10 章 タイムベースタイマ」を参照してくださ
い。
474
第 21 章 時計クロック出力
時計クロック出力回路の構成
21.2
時計クロック出力回路は , 以下のブロックで構成されています。
・時計クロック選択回路
・時計クロック出力制御レジスタ (TMCS)
■ 時計クロック出力回路のブロックダイヤグラム
図 21.2-1 時計クロック出力回路のブロックダイヤグラム
時計 クロック選択回路
X0
セレクタ
時計クロック出力
発振回路
X1
タイムベース
タイマ
2 分周回路
475
第 21 章 時計クロック出力
21.3
時計クロック出力制御レジスタ (TMCS)
時計クロック出力制御レジスタ (TMCS) は , 時計クロック分周比の設定を行うレジ
スタです。
■ 時計クロック出力制御レジスタ (TMCS)
図 21.3-1 時計クロック出力制御レジスタ (TMCS)
bit
アドレス
0000AFH
15
14
13
12
11
10
9
8
初期値
-
-
-
-
-
TEN
TS1
TS0
XXXXX000B
-
-
-
-
-
R/W
R/W
R/W
TS1
TS0
0
0
1
1
0
1
0
1
時計クロック分周比設定
ビット
32 分周
64 分周
128 分周
256 分周
HCLK=6.25MHz 時の出力
周期
5.12 s
10.24 s
20.48 s
40.96 s
TEN
時計クロック出力許可ビット
0
出力禁止
1
出力許可
R/W:リード/ライト可能
-:未定義ビット
:初期値
HCLK:発振クロック周波数
表 21.3-1 時計クロック出力制御レジスタ (TMCS) の各ビットの機能説明
ビット名
476
機能
bit15
∼
bit11
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit10
TEN:時計クロック
出力許可ビット
時計クロック出力許可ビットです。本機能を使用する場合は ,
必ず ADER0 でポートとし , DDR でポートを出力設定としてく
ださい。
bit9,
bit8
TS1, TS0:
時計クロック
分周比設定ビット
TS1, TS0 を設定し , ポートを出力とすることで時計クロック用
のクロックを出力できます。
第 21 章 時計クロック出力
<注意事項>
TEN 出力許可時の 1 サイクル目の出力波形は , 起動がタイムベースタイマと非同期で行わ
れるため , 実設定出力波形と異なる可能性があります。
時計クロック出力制御レジスタ (TMCS) は , INC/DEC 命令などリードモディファイライト
(RMW) 系命令は使用できません。
477
第 21 章 時計クロック出力
478
第 22 章
遅延割込み発生モジュール
MB90800 シリーズの遅延割込み発生モジュールの
機能と動作について説明します。
22.1 遅延割込み発生モジュールの概要
22.2 遅延割込み要因発生 / 解除レジスタ (DIRR)
22.3 遅延割込み発生モジュールの動作
22.4 遅延割込み発生モジュールの使用上の注意
479
第 22 章 遅延割込み発生モジュール
22.1
遅延割込み発生モジュールの概要
遅延割込み発生モジュールは , タスク切換え用の割込み要求を出力します。遅延割
込み発生モジュールを使用すると , ソフトウェアで MB90800 シリーズ CPU に対し ,
タスク切換えのための割込み要求の出力および解除を行うことができます。
■ 遅延割込み発生モジュールのブロックダイヤグラム
図 22.1-1 遅延割込み発生モジュールのブロックダイヤグラム
内部データバス
遅延割込み要因発生/解除デコーダ
要因ラッチ
480
第 22 章 遅延割込み発生モジュール
遅延割込み要因発生 / 解除レジスタ (DIRR)
22.2
遅延割込み要因発生 / 解除レジスタ (DIRR) について説明します。
■ 遅延割込み要因発生 / 解除レジスタ (DIRR)
図 22.2-1 遅延割込み要因発生 / 解除レジスタ (DIRR)
bit
15
14
13
12
11
10
9
アドレス
−
−
−
−
−
−
−
8
R0
00009FH
−
−
−
−
−
−
−
R/W
初期値
-------0B
R/W :リード / ライト可能
− :未定義ビット
表 22.2-1 遅延割込み要因 / 解除レジスタ (DIRR) の各ビットの機能説明
ビット名
機能
bit15
∼
bit9
−:
未定義ビット
・読出しを行った場合は , 不定値となります。
・設定した値は , 動作に影響しません。
bit8
R0:
遅延割込み
要求出力ビット
・遅延割込み要求の発生 / 解除を設定します。
・"1" を設定した場合は , 遅延割込みの要求を出力します。
・"0" を設定した場合は , 遅延割込み要求をクリアします。
・リセットを設定した場合は , 割込み要因解除状態 ( "0" にクリア )
になります。
481
第 22 章 遅延割込み発生モジュール
22.3
遅延割込み発生モジュールの動作
ソフトウェアにて , 遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力
ビット (R0) に "1" を設定した場合は , 割込みコントローラに遅延割込み要求を出力
します。
■ 遅延割込み発生モジュールの動作
ソフトウェアにて , 遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビッ
ト (R0) に "1" を設定した場合は , 割込みコントローラに割込み要求を出力します。遅
延割込み以外の割込み要求が遅延割込みより優先順位が低い , あるいは遅延割込み以
外の割込み要求がない場合に , 割込みコントローラは CPU に対して割込み要求を出力
します。CPU はプロセッサステータスレジスタ (PS) 内のインタラプトレベルマスクレ
ジスタ (ILM)と割込み要求レベルを比較し, 割込み要求レベルがインタラプトレベルマ
スクレジスタ (ILM) より強い場合には , 現在実行中の命令が終了すると , ハードウェア
割込み処理マイクロプログラムを起動し , 遅延割込み処理ルーチンを実行します。割込
み処理ルーチン内で遅延割込み要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビッ
ト (R0) に "0"を設定した場合 , 遅延割込み要因をクリアし , タスクの切換えを行います。
図 22.3-1 遅延割込み発生モジュールの動作
遅延割込み発生モジュール
割込みコントローラ
書込み
ほかの要求
IL
ICRyy
CMP
DIRR
ICRxx
CMP
ILM
INTA
DIRR:遅延割込み要因発生/解除レジスタ
IL :割込み制御レジスタ(ICR)の割込みレベル設定ビット
ILM :PS内のインタラプトレベルマスクレジスタ
CMP :比較器
ICR :割込み制御レジスタ
482
第 22 章 遅延割込み発生モジュール
22.4
遅延割込み発生モジュールの使用上の注意
遅延割込み発生モジュールを使用する場合の注意点を示します。
■ 遅延割込み発生モジュール使用上の注意
● 遅延割込み要求
割込み処理ルーチンで割込み処理を終了した後 , または割込み処理ルーチンを実行し
ている間に遅延割込み発生要因 / 解除レジスタ (DIRR) の遅延割込み要求出力ビット
(R0) に "0" を設定していない場合は , 割込み処理から復帰できません。
483
第 22 章 遅延割込み発生モジュール
484
第 23 章
アドレス一致検出機能
MB90800 シリーズのアドレス一致検出機能と動作
について説明します。
23.1 アドレス一致検出機能の概要
23.2 アドレス一致検出機能のレジスタ
23.3 アドレス一致検出機能の動作説明
23.4 アドレス一致検出機能の使用例
485
第 23 章 アドレス一致検出機能
23.1
アドレス一致検出機能の概要
プログラムアドレスが , アドレス一致検出レジスタに設定された値と一致した場合
に , CPU に読み出される命令コードを INT9 命令のコードに置き換えます。INT #9
割込みルーチンで処理を行うことにより , プログラムのパッチ当て機能を実現でき
ます。
■ アドレス一致検出機能のブロックダイヤグラム
図 23.1-1 アドレス一致検出機能のブロックダイヤグラム
内部データバス
486
比較
アドレスラッチ
アドレス検出レジスタ
許可ビット
検出ビット
セット
リセット
MB90800
シリーズ
CPUコア
第 23 章 アドレス一致検出機能
23.2
アドレス一致検出機能のレジスタ
アドレス一致検出機能のレジスタ一覧を示します。
■ アドレス一致検出機能のレジスタ一覧
図 23.2-1 アドレス一致検出機能のレジスタ一覧
bit23...........................................................................................................................................................bit0
PADR0( プログラムアドレス検出レジスタ 上位 / 中位 / 下位 )
PADR1( プログラムアドレス検出レジスタ 上位 / 中位 / 下位 )
PACSR( プログラムアドレス検出
コントロールステータスレジスタ )
487
第 23 章 アドレス一致検出機能
23.2.1
プログラムアドレス検出レジスタ (PADR0/PADR1)
プログラムアドレス検出レジスタ (PADR0/PADR1) は , 比較対象となるアドレスを
設定するレジスタです。
■ プログラムアドレス検出レジスタ (PADR0/PADR1)
図 23.2-2 プログラムアドレス検出レジスタ (PADR0/PADR1)
bit23
PADR0
bit16 bit15
上位
R/W
アドレス
bit8 bit7
中位
R/W
bit0
初期値
XXXXXXH
bit0
初期値
XXXXXXH
下位
R/W
001FF0H ∼ 001FF2H
bit23
PADR1
bit16 bit15
上位
R/W
アドレス
bit8 bit7
中位
R/W
下位
R/W
001FF3H ∼ 001FF5H
R/W:リード / ライト可能
X :不定
プログラムアドレス検出コントロールステータスレジスタ (PACSR) の対応する割込み
許可ビットに "1" が設定されている場合は , プログラムアドレス検出レジスタ (PADR0/
PADR1) に設定された値とプログラムアドレスを比較します。プログラムアドレス検出
レジスタ (PADR0/PADR1) 値とプログラムアドレス値 (PC 値 ) が一致した場合は , 対応
する割込みフラグビットに "1" がセットされ , INT9 命令を出力します。割込み許可ビッ
トに "0" が設定されている場合は , INT9 命令を出力しません。
プログラムアドレス検出コントロールステータスレジスタ (PACSR) との対応は以下の
とおりとなります。
488
アドレス検出レジスタ
割込み要求許可ビット
割込み要求フラグビット
PADR0
AD0E
AD0D
PADR1
AD1E
AD1D
第 23 章 アドレス一致検出機能
プログラムアドレス検出コントロールステータス
レジスタ (PACSR)
23.2.2
プログラムアドレス検出コントロールステータスレジスタ (PACSR) は , アドレス一
致検出機能の割込み制御を行うレジスタです。
■ プログラムアドレス検出コントロールステータスレジスタ (PACSR)
図 23.2-3 プログラムアドレス検出コントロールステータスレジスタ (PACSR)
bit
7
6
5
4
アドレス
予約
予約
予約
予約
3
AD1E
2
AD1D
1
AD0E
0
AD0D
00009EH
−
−
−
−
R/W
R/W
R/W
R/W
初期値
00000000B
R/W:リード / ライト可能
− :未定義ビット
表 23.2-1 プログラムアドレス検出コントロールステータスレジスタ (PACSR) の各ビットの機能説明
ビット名
bit7
∼
bit4
bit3
bit2
bit1
bit0
機能
予約 :
予約ビット
必ず "0" を設定してください。
AD1E:
PADR1 の割込み
要求許可ビット
PADR1 の割込みを許可するビットです。
"1" を設定した場合は , プログラムアドレス検出レジスタ (PADR1)
とプログラムアドレスの比較を行い , プログラムアドレス検出レ
ジスタ (PADR1) とプログラムアドレスが一致すると , PADR1 の割
込みフラグビット (AD1D) に "1" がセットされ , INT9 命令を出力
します。
AD1D:
PADR1 の割込み
要求フラグビット
PADR1 の割込み要求のフラグビットです。
プログラムアドレス検出レジスタ (PADR1) とプログラムアドレス
の比較で 一致を検出すると , "1" がセットされます。
PADR1 の要求許可ビット (AD1E) に "1" を設定している場合に , "1"
がセットされると , INT9 命令を出力します。
"0" を設定した場合は , "0" にクリアされます。
"1" を設定した場合は , 動作に影響しません。
AD0E:
PADR0 の割込み
要求許可ビット
PADR0 の割込みを許可するビットです。
"1" を設定した場合は , プログラムアドレス検出レジスタ (PADR0)
とプログラムアドレスの比較を行い , プログラムアドレス検出レ
ジスタ (PADR0) とプログラムアドレスが一致すると , PADR0 の割
込みフラグビット (AD0D) に "1" がセットされ , INT9 命令を出力
します。
AD0D:
PADR0 の割込み
要求フラグビット
PADR0 の割込み要求のフラグビットです。
プログラムアドレス検出レジスタ (PADR1) とプログラムアドレス
の比較で一致を検出すると , "1" がセットされます。
PAD0 の要求許可ビット (AD0E) に "1" を設定している場合に , "1"
がセットされると , INT9 命令を出力します。
"0" を設定した場合は , "0" にクリアされます。
"1" を設定した場合は , 動作に影響しません。
489
第 23 章 アドレス一致検出機能
23.3
アドレス一致検出機能の動作説明
アドレス一致検出機能の動作について説明します。
■ アドレス一致検出機能の動作
プログラムアドレスがアドレス検出レジスタに設定された値と一致した場合 , CPU に
読み出される命令コードを INT9 命令のコード ("01H") に置き換えますので , CPU が設
定されたプログラムアドレスの命令を実行すると , INT9 命令を実行します。INT #9 割
込みルーチンで処理を行うことにより , プログラムのパッチ当て機能を実現できます。
プログラムアドレス検出レジスタ (PADR0/PADR1) は 2 本あり , レジスタごとに割込み
許可ビット (AD1E, AD0E) と割込みフラグビット (AD1D, AD0D) があります。割込み許
可ビット (AD1E, AD0E) に "1" が設定されている場合は , アドレス検出レジスタに設定
された値とプログラムアドレスを比較し, 一致した場合は, 割込みフラグビット(AD1D,
AD0D) に "1" がセットされ , CPU に読み出される命令コードを INT9 命令のコードに置
き換えます。割込みフラグビット (AD1D, AD0D) は "0" を設定することにより "0" にク
リアされます。
<注意事項>
アドレス検出レジスタに, 命令の1バイト目以降のプログラムアドレスを設定した場合は,
アドレス一致検出機能が正しく動作しません。また , アドレス検出レジスタの変更は , 割
込み許可ビットに "0" を設定してから行ってください。割込み許可ビットに "1" が設定さ
れている場合にアドレス検出レジスタの設定を行うと , 設定中に誤ってアドレス検出を
行ってしまうことがあります。
490
第 23 章 アドレス一致検出機能
23.4
アドレス一致検出機能の使用例
アドレス一致検出機能の使用例を示します。
■ システム構成図
図 23.4-1 システム構成例
MCU
MB90800
シリーズ
E2PROM
SIN
■ E2PROM メモリマップ
表 23.4-1 E2PROM メモリマップ
アドレス
意味
0000H
パッチプログラム No.0 バイト数
(0 の場合プログラムミスなし )
0001H
プログラムアドレス No.0 bit7 ∼ bit0
0002H
プログラムアドレス No.0 bit15 ∼ bit8
0003H
プログラムアドレス No.0 bit24 ∼ bit16
0004H
パッチプログラム No.1 バイト数
(0 の場合プログラムミスなし )
0005H
プログラムアドレス No.1 bit7 ∼ bit0
0006H
プログラムアドレス No.1 bit15 ∼ bit8
0007H
プログラムアドレス No.1 bit24 ∼ bit16
0010H ∼
パッチプログラム No.0 本体
■ 初期状態
E2PROM の全ビットは "0" です。
491
第 23 章 アドレス一致検出機能
■ INT9 割込み
割込みルーチンでは , どのアドレス検出要因で割込み要求出力があったかをプログラ
ムアドレス検出コントロールステータスレジスタ (PACSR) の割込みフラグビット
(AD1D, AD0D) で参照し , 割込み要求が出力されたプログラムへ分岐します。プログラ
ムへ分岐した場合は , 割込みでスタックされた情報は無効となり , 割込みフラグビット
(AD1D, AD0D) を "0" にクリアします。
図 23.4-2 プログラムパッチ処理例
FFFFFFH
③
ROM
①
PC=発生アドレス
異常プログラム
外付けE2PROM
プログラムパッチ用
レジスタセット
○ プログラムバイト数
○ 割込み発生アドレス
○ 修正プログラム
UARTを使用してデータ転送
RAM
②
修正プログラム
000000H
492
第 23 章 アドレス一致検出機能
図 23.4-3 プログラムパッチ処理フロー
リセット
INT9
E2PROMの"0000
"0000H"="00H"
H"を読み出す
"0000H"(E2PROM)
パッチプログラムへ
JPM 000400H
"0000H"≠ "00H"
アドレスを読み出す
"0001H"~ "0003H"(E2PROM)
↓MOV
PADR0(MCU)
パッチプログラム実行
"000400H"~"000480H"
パッチプログラムを読み出す
パッチプログラム終了
JMP FF0050H
"0010H"~ "0090H"(E2PROM)
↓MOV
"000400H"~"000480H"(MCU)
パッチ処理を許可
MOV PACSR,#02H
通常プログラム実行
NO
PC=PADR0
YES
INT9
FFFFH
0090H
0010H
0003H
0002H
0001H
0000H
E2PROM
FFFFFFH
ROM
FF8050H
FF8000H
異常プログラム
FF0000H
パッチプログラム
001100H
RAM領域
プログラムアドレス下位:50H
プログラムアドレス中位:80H
プログラムアドレス下位:FFH
パッチプログラムバイト数:80H
スタック領域
RAM
000480H
000400H
000100H
パッチプログラム
RAM/レジスタ領域
I/O領域
000000H
493
第 23 章 アドレス一致検出機能
494
第 24 章
ROM ミラー機能選択
モジュール
MB90800 シリーズの ROM ミラー機能選択モ
ジュールの機能と動作について説明します。
24.1 ROM ミラー機能選択モジュールの概要
24.2 ROM ミラー機能選択レジスタ (ROMM)
495
第 24 章 ROM ミラー機能選択 モジュール
24.1
ROM ミラー機能選択モジュールの概要
ROM ミラー機能選択モジュールは , FF バンクの ROM データを ROM 機能選択モ
ジュールのレジスタを設定することにより 00 バンクから参照できます。
ROM ミラー機能を使用すると , 対象領域 ("FF8000H" ∼ "FFFFFFH") から I/O 領域 ,
RAM 領域へのアクセスがバンクをまたがずにできます。
■ ROM ミラー機能選択モジュールのブロックダイヤグラム
図 24.1-1 ROM ミラー機能選択モジュールのブロックダイヤグラム
ROMミラー機能選択レジスタ
内部データバス
アドレス
アドレス領域
FFバンク
00バンク
データ
ROM
496
第 24 章 ROM ミラー機能選択 モジュール
ROM ミラー機能選択レジスタ (ROMM)
24.2
ROM ミラー機能選択モジュールのレジスタについて説明します。
■ ROM ミラー機能選択レジスタ (ROMM)
図 24.2-1 ROM ミラー機能選択レジスタ (ROMM)
bit
15
14
13
12
11
10
9
アドレス
−
−
−
−
−
−
−
8
MI
00006FH
−
−
−
−
−
−
−
W
初期値
XXXXXXX1B
W :ライトオンリ
X :不定
− :未定義ビット
<注意事項>
ROM ミラー機能選択レジスタはアドレス "008000H" ∼ "00FFFFH" 番地をアクセスしてい
る場合には設定しないでください。
表 24.2-1 ROM ミラー機能選択レジスタ (ROMM) の機能説明
ビット名
機能
bit15
∼
bit9
−:
未定義ビット
読出しを行った場合は , 不定値となります。
設定した値は , 動作に影響しません。
bit8
MI:
ROM ミラー
機能設定
ビット
ROM ミラー機能を設定するビットです。
"1" を設定した場合は , FF バンクの ROM のデータを 00 バンクか
ら読み出すことができます。
"0" を設定した場合は , FF バンクの ROM のデータを 00 バンクか
ら読み出すことはできません。
<注意事項>
ROM ミラー機能では , "008000H" ∼ "00FFFFH" 番地を "FF8000H" ∼ "FFFFFH" 番地から
参照しますので , "FF0000H" ∼ "FF7FFFH" 番地は ROM のミラー機能を設定しても参照で
きません。
MB90803/S
MB90F803/S
MB90F809/S
MB90F804-101/201
MB90V800-101/
201
アドレス 1
FE0000H
FD0000H
FC0000H
FC0000H
アドレス 2
001100H
F002900H
004100H
007100H
497
第 24 章 ROM ミラー機能選択 モジュール
図 24.2-2 メモリ空間
アドレス
FFFFFFH
FF4000H
ROM領域
ROM領域
アドレス1
010000H
004000H
アドレス2
000100H
0000C0H
000000H
498
ROMミラー領域
参照
可能
RAM領域
:内部領域
I/O領域
I/O領域
:外部領域
MI=1の場合
MI=0の場合
RAM領域
第 25 章
2 M ビットフラッシュメモリ
MB90800 シリーズの 2 M ビットフラッシュメモリ
の機能や動作について説明します。
25.1 2 M ビットフラッシュメモリの概要
25.2 フラッシュメモリのレジスタとセクタ構成
25.3 フラッシュメモリ制御ステータスレジスタ (FMCS)
25.4 フラッシュメモリ自動アルゴリズム起動方法
25.5 フラッシュメモリ書込み / 消去の詳細説明
499
第 25 章 2 M ビットフラッシュメモリ
25.1
2 M ビットフラッシュメモリの概要
2 M ビットフラッシュメモリは , CPU メモリマップ上の "FCH" ∼ "FFH" バンクに配
置され , フラッシュメモリインタフェース回路の機能により , マスク ROM と同様に
CPU からのリードアクセスおよびプログラムアクセスが可能です。フラッシュメモ
リへの書込み / 消去は , フラッシュメモリインタフェース回路を介して CPU からの
命令動作で行えます。このため , 内蔵 CPU の制御による実装状態での書換えが可能
となり , プログラムおよびデータの変更を効率よく行えます。
■ フラッシュメモリへのデータ書込み / 消去の方法
フラッシュメモリへのデータ書込み / 消去の方法には , 下記の 3 とおりの方法がありま
す。
• パラレルライタ
( 株式会社ミナトエレクトロニクス製 MODEL 1890A)
• シリアル専用ライタ
( 横河ディジタルコンピュータ株式会社製 AF220)
• プログラム実行による書込み / 消去
ここでは , 「プログラム実行による書込み / 消去」について説明します。
■ 2 M ビットフラッシュメモリの特長
• 256 K ワード× 8/128K ワード× 16 ビット
• (64 K × 3 +32 K × 2 +8 K × 2 +1 K) セクタ構成
• 自動プログラムアルゴリズム (Embedded Algorithm:MBM29F400TA と同様 )
• 消去一時停止 / 消去再開機能の搭載
• CPU 割込みによる書込み / 消去の完了検出
• JEDEC 標準型コマンドと互換
• セクタごとの消去が可能 ( セクタ組合せ自由 )
• 書込み / 消去回数 1 万回保証
■ フラッシュメモリ書込み / 消去の方法
フラッシュメモリは , 書込みと読出しを同時に行うことはできません。フラッシュメモ
リにデータ書込み / 消去動作を行う場合は , フラッシュメモリ上にあるプログラムを
いったん RAM にコピーし , RAM にコピーされたプログラムを実行することにより , フ
ラッシュメモリへの書込み動作を行うことが可能となります。
詳細は , 「25.5.2 フラッシュメモリへデータを書き込む」を参照してください。
500
第 25 章 2 M ビットフラッシュメモリ
フラッシュメモリのレジスタとセクタ構成
25.2
図 25.2-1 に , フラッシュメモリ制御ステータスレジスタ (FMCS) を示します。
■ フラッシュメモリのレジスタ
● フラッシュメモリ制御ステータスレジスタ (FMCS)
図 25.2-1 フラッシュメモリ制御ステータスレジスタ (FMCS)
bit
7
6
5
4
3
2
1
0
アドレス
0000AEH
INTE
R/W
RDYINT
WE
R/W
RDY
R
予約
W
予約
R/W
予約
W
予約
R/W
R/W
初期値
00000000B
R/W :リード / ライト可能
R
:リードオンリ
W :ライトオンリ
■ セクタ構成
図 25.2-2 に , 2 M ビットフラッシュメモリのセクタ構成を示します。図中アドレスは ,
各セクタの上位アドレスと下位アドレスを示します。
図 25.2-2 2 M ビットフラッシュメモリのセクタ構成
フラッシュメモリ
CPUアドレス
上位
SA6(16Kバイト)
下位
上位
SA5(8Kバイト)
下位
上位
SA4(8Kバイト)
下位
上位
SA3(32Kバイト)
下位
上位
SA2(64Kバイト)
下位
上位
SA1(64Kバイト)
下位
上位
SA0(64Kバイト)
下位
FFFFFFH
FFC000H
FFBFFFH
FFA000H
FF9FFFH
FF8000H
FF7FFFH
FF0000H
FEFFFFH
FE0000H
FDFFFFH
FD0000H
FCFFFFH
FC0000H
501
第 25 章 2 M ビットフラッシュメモリ
25.3
フラッシュメモリ制御ステータスレジスタ (FMCS)
フラッシュメモリ制御ステータスレジスタ (FMCS) の機能を以下に示します。
■ フラッシュメモリ制御ステータスレジスタ (FMCS)
図 25.3-1 フラッシュメモリ制御ステータスレジスタ (FMCS)
bit
アドレス
0000AEH
7
6
5
4
3
2
1
0
初期値
INTE
RDYINT
WE
RDY
予約
予約
予約
予約
00000000B
R/W
R/W
R/W
R
W
R/W
W
R/W
予約ビット
予約
必ず"0"を設定してください。
RDY
書込み/消去動作実行中
1
書込み/消去動作終了(書込み/消去動作許可)
WE
書込み/消去動作禁止
1
書込み/消去動作許可
書込み/消去動作終了フラグビット
0
書込み/消去動作実行中
1
書込み/消去動作終了(割込み要求発生)
INTE
502
書込み/消去動作許可ビット
0
RDYINT
R/W :リード/ライト可能
R
:リードオンリ
W
:ライトオンリ
:初期値
書込み/消去ステータスビット
0
割込み要求許可ビット
0
書込み/消去終了での割込み禁止
1
書込み/消去終了での割込み許可
第 25 章 2 M ビットフラッシュメモリ
表 25.3-1 フラッシュメモリ制御ステータスレジスタ (FMCS) の各ビットの機能説明
ビット名
機能
INTE:
割込み要求
許可ビット
・フラッシュメモリの書込み / 消去動作の終了により , CPU への割
込み要求出力を許可するビットです。
・"1" を設定した場合に , RDYINT ビットに "1" がセットされると ,
割込み要求が出力されます。
・"0" を設定した場合に , RDYINT ビットに "1" がセットされても ,
割込み要求は出力されません。
RDYINT:
書込み / 消去
動作終了
フラグビット
・フラッシュメモリの書込み / 消去動作が終了すると , "1" がセット
され , フラッシュメモリへの書込み / 消去動作が可能になります。
・"0" を設定した場合は , "0" にクリアされ , フラッシュメモリへの書
込み / 消去動作はできません。
・"1" を設定した場合は , 動作に影響しません。
・フラッシュメモリ自動アルゴリズム ( 詳細は , 「25.4 フラッシュ
メモリ自動アルゴリズム起動方法」を参照 ) 終了タイミングでも ,
"1" がセットされます。
・リードモディファイライト (RMW) 系命令使用時は , 必ず "1" が読
み出されます。
bit5
WE:
書込み / 消去
動作許可
ビット
・"1" を設定した場合は , FF バンクへの書込み / 消去コマンドシーケ
ンス ( 詳細は , 「25.4 フラッシュメモリ自動アルゴリズム起動方
法」を参照 ) を実行した後 , フラッシュメモリへの書込み / 消去が
できます。
・"0" を設定した場合は , FF バンクへの書込み / 消去コマンドシーケ
ンスを実行しても , 書込み / 消去の信号は発生されません。
・初期値は "0" が設定され , 動作が禁止されていますので , フラッ
シュメモリの書込み / 消去のコマンドを起動する前に必ず "1" を設
定して動作を許可してください。
( 注意事項 ) 書込み / 消去動作を行わない場合は , "0" を設定してく
ださい。
bit4
RDY:
書込み / 消去
ステータス
ビット
・"0" にクリアされている間は , フラッシュメモリへの書込み / 消去
動作はできません。
・"0" にクリアされている場合でも , 読出し / リセットコマンド , セ
クタ消去一時停止コマンドは受け付けられます。
・書込み / 消去動作を終了すると , "1" がセットされます。
bit3 ∼
bit0
予約:
予約ビット
必ず "0" を設定してください。
bit7
bit6
503
第 25 章 2 M ビットフラッシュメモリ
<注意事項>
動作終了フラグビット (RDYINT) と書込み / 消去ステータスビット (RDY) は同時に変化し
ませんので , 動作終了フラグビット (RDYINT) か書込み / 消去ステータスビット (RDY) の
いずれかで書込み / 消去終了判定をするようプログラムを作成してください。
自動アルゴリズム
終了タイミング
RDYINTビット
RDYビット
1マシンサイクル
504
第 25 章 2 M ビットフラッシュメモリ
25.4
フラッシュメモリ自動アルゴリズム起動方法
フラッシュメモリの自動アルゴリズムを起動するコマンドには , 読出し / リセット ,
書込み , チップ消去およびセクタ消去の 4 種類があり , セクタ消去については一時停
止と再開の制御が可能です。
■ コマンドシーケンス表
表 25.4-1 に , コマンドシーケンス表を示します。コマンドレジスタに書き込むデータ
は , すべてバイト長ですが , ワードアクセスで設定してください。ワードアクセスで設
定した場合の上位バイトのデータは無視されます。
表 25.4-1 コマンドシーケンス表
コマンド
シーケンス
バス
ライト
アクセス
1st バスライト
サイクル
アドレス
2nd バスライト
サイクル
3rd バスライト
サイクル
データ アドレス データ アドレス
4th バスライト
サイクル
5th バスライト
サイクル
データ アドレス データ
6th バスライト
サイクル
データ
アドレス
アドレス データ
−
−
−
−
−
−
−
XXF0H
RA
RD
−
−
−
−
PA
(even)
PD
(word)
−
−
−
−
1
FxXXXXH XXF0H
4
FxAAAAH XXAAH Fx5554H XX55H FxAAAAH
書込み
プログラム
4
FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XXA0H
チップ消去
6
FxAAAAH XXAAH Fx5554H XX55H FxAAAAH
XX80H
FxAAAAH XXAAH Fx5554H XX55H FxAAAAH XX10H
セクタ消去
6
FxAAAAH XXAAH Fx5554H XX55H FxAAAAH
XX80H
FxAAAAH XXAAH Fx5554H XX55H
読出し /
リセット *
−
−
−
SA
(even)
セクタ消去一時停止
アドレス "FXXXXXH" データ (XXB0H) の入力で , セクタ消去中の消去一時停止
セクタ消去再開
アドレス "FXXXXXH" データ (XX30H) の入力で , セクタ消去中の消去一時停止後 , 消去開始
XX30H
*:2 種類の読出し / リセットコマンドは , フラッシュメモリを読出しモードにリセットできます。
<注意事項>
• 表中のアドレス Fx は , FC ∼ FF を意味します。アドレスを操作する場合はアクセス対
象バンクの値としてください
• 表中のアドレスは , CPU メモリマップ上の値です。"X" は任意の値です。
• RA: 読出しアドレス
• PA: 書込みアドレス , 偶数アドレスが指定可能です。
• SA: セクタアドレス , 詳細は , 「25.2 フラッシュメモリのレジスタとセクタ構成」を参
照してください。偶数アドレスが指定可能です。
• RD: 読出しデータ
• PD: 書込みデータ , ワードデータが指定可能です。
505
第 25 章 2 M ビットフラッシュメモリ
25.5
フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムを起動するコマンドを設定し , フラッシュメモリに読出し / リセッ
ト , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去再開の動作
を行う手順を説明します。
■ フラッシュメモリ書込み / 消去の詳細説明
自動アルゴリズムは , 読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去
一時停止 , 消去再開の動作がコマンドシーケンス ( 詳細は ,「23.4 アドレス一致検出機
能の使用例」を参照 ) を CPU からフラッシュメモリへ書き込むことにより起動できま
す。CPU からフラッシュメモリへの書込みは , 必ず続けて行ってください。正常終了
した後は , 読出し / リセット状態に戻ります。
読出し / リセット , 書込み , チップ消去 , セクタ消去 , セクタ消去一時停止 , セクタ消去
再開の動作の詳細については , 下記の順に説明します。
• 読出し / リセット状態にする
• データを書き込む
• 全データを消去する ( チップ全消去 )
• 任意のデータを消去する ( セクタ消去 )
• セクタ消去を一時停止する
• セクタ消去を再開する
506
第 25 章 2 M ビットフラッシュメモリ
25.5.1
フラッシュメモリを読出し / リセット状態にする
読出し / リセットコマンドを実行し , フラッシュメモリを読出し / リセット状態にす
る手順について説明します。
■ フラッシュメモリを読出し / リセット状態にする
フラッシュメモリを読出し / リセット状態にするには , コマンドシーケンス表 ( 表 25.41 を参照)の読出し/リセットコマンドをCPUからフラッシュメモリへ続けて送ります。
読出し / リセットコマンドには , 2 とおりのコマンドシーケンスがありますが違いはあ
りません。
読出し / リセット状態は , フラッシュメモリの初期状態ですので , 電源投入直後 , コマ
ンドが正常終了した場合は常に読出し / リセット状態になります。読出し / リセット状
態は , コマンドの入力待ち状態となります。
読出し / リセット状態では , フラッシュメモリへリードアクセスを行うことにより ,
データを読み出すことができます。マスク ROM と同様に , CPU からのプログラムアク
セスが可能です。フラッシュメモリへリードアクセスを行う場合は , 読出し / リセット
コマンドは必要ありません
コマンドが正常に終了しなかった場合は , 自動アルゴリズムを初期化するために , 読出
し / リセットコマンドを使用してください。
507
第 25 章 2 M ビットフラッシュメモリ
25.5.2
フラッシュメモリへデータを書き込む
書込みコマンドを実行し , フラッシュメモリにデータ書込みを行う手順について説
明します。図 25.5-1 にフラッシュメモリ書込み手順の例を示します。
■ フラッシュメモリへデータを書き込む
フラッシュメモリのデータ書込み自動アルゴリズムを起動するには , コマンドシーケ
ンス表 ( 表 25.4-1 を参照 ) の書込みコマンドを CPU からフラッシュメモリへ続けて送
ります。4 サイクル後に目的のアドレスへのデータライトが終了すると , 自動アルゴリ
ズムが起動され自動書込みを開始します。
■ アドレス指定方法
書込みは , アドレスの順番に関係なく , また , セクタの境界を超えても可能ですが , 1 回
の書込みコマンドにて書き込まれるデータは 1 ワードです。
■ データ書込み上の注意
書込みによって , ビットデータを "0" から "1" に戻すことはできません。ビットデータ
"0" にビットデータ "1" を書き込んだ場合は , データポーリングアルゴリズム , トグル
動作が終了せず , フラッシュメモリ素子が不良と判定され , 見かけ上ビットデータに
"1" が書き込まれたようになります。読出し / リセット状態でデータを読み出すとビッ
トデータは "0" です。ビットデータを "0" から "1" に戻すには消去動作を行います。
自動書込み実行中は , すべてのコマンドが無視されます。書込み中にハードウェアリ
セットが起動されると , 書込みアドレスのデータは保証されません。
図 25.5-1 フラッシュメモリ書込み手順の例
書込み開始
FMCS:WE(ビット5)
フラッシュメモリ書込み許可
書込みコマンドシーケンス
①FXAAAAH←XXAAH
②FX5554H←XX55H
③FXAAAAH←XXA0H
④書込みアドレス←書込みデータ
次アドレス
書込み/消去動作終了
フラグビット
"0"
"0"出力が長い
書込みエラー
RDYINT
"1"
最終アドレス
YES
FMCS:WE(ビット5)
フラッシュメモリ書込み禁止
書込み開始
508
NO
第 25 章 2 M ビットフラッシュメモリ
25.5.3
フラッシュメモリの全データを消去する ( チップ消去 )
チップ消去コマンドを実行し , フラッシュメモリの全データ消去を行う手順につい
て説明します。
■ フラッシュメモリのデータを消去する ( チップ消去 )
フラッシュメモリからすべてのデータを消去するには, コマンドシーケンス表(表 25.41 を参照 ) のチップ消去コマンドを CPU からフラッシュメモリへ送ります。
チップ消去コマンドは , 6 サイクル目の書込みが完了した時点でチップ消去動作を開始
します。チップ消去では , 消去を行う前にフラッシュメモリへ書込みを行う必要はあり
ません。自動消去機能処理中に , フラッシュメモリはすべてのビットデータを消去する
前に "0" を書き込んで検証を行います。
509
第 25 章 2 M ビットフラッシュメモリ
25.5.4
フラッシュメモリの任意のデータを消去する ( セクタ
消去 )
セクタ消去コマンドを実行し , フラッシュメモリの任意のデータを消去する ( セクタ
消去 ) 手順について説明します。セクタごとの消去が可能であり , 複数のセクタを同
時に指定することも可能です。図 25.5-2 に , フラッシュメモリのセクタ消去手順の
例を示します。
■ フラッシュメモリの任意のデータを消去する ( セクタ消去 )
フラッシュメモリの任意のセクタを消去するためには, コマンドシーケンス表(表 25.41 を参照 ) のセクタ消去コマンドを CPU からフラッシュメモリへ送ります。
■ セクタ指定方法
セクタ消去コマンドは , 6 サイクル目に目的のセクタ内のアクセス可能な任意の偶数ア
ドレスへセクタ消去コード ("30H") を書き込むことにより , 50 μs のセクタ消去ウェイ
トを開始します。複数のセクタ消去を行う場合は , 引き続き消去する目的のセクタアド
レスに消去コード ("30H") を書き込みます。
■ 複数のセクタを指定する場合の注意
最後のセクタ消去コードの書込みから 50 μs のセクタ消去ウェイト期間終了後に , 消去
を開始します。複数のセクタを同時に消去する場合は , 消去セクタのアドレスと消去
コード ( コマンドシーケンス 6 サイクル目 ) を 50 μs 以内に入力してください。50 μs 以
上では受け付けられません。
510
第 25 章 2 M ビットフラッシュメモリ
図 25.5-2 フラッシュメモリのセクタ消去手順の例
消去開始
FMCS:WE(ビット5)
フラッシュメモリ消去許可
消去コマンドシーケンス
①FXAAAAH←XXAAH
②FX5554H←XX55H
③FXAAAAH←XX80H
④FXAAAAH←XXAAH
⑤FX5554H←XX55H
⑥消去セクタコード入力(30H)
NO
0
書込み/消去動作終了
フラグビット
RDYINT
"0"出力が長い
消去エラー
1
最終セクタ
次セクタ
NO
YES
FMCS:WE(ビット5)
フラッシュメモリ消去禁止
消去完了
511
第 25 章 2 M ビットフラッシュメモリ
25.5.5
フラッシュメモリのセクタ消去を一時停止する
セクタ消去一時停止コマンドを設定し , フラッシュメモリセクタ消去の一時停止を
行う手順について説明します。消去中でないセクタからデータを読み出すことが可
能です。
■ セクタ消去を一時停止する
フラッシュメモリのセクタ消去を一時停止するには , コマンドシーケンス表 ( 表 25.4-1
を参照 ) のセクタ消去一時停止コマンドを CPU からフラッシュメモリに送ります。
セクタ消去一時停止コマンドは , セクタ消去中に消去を一時停止し , 消去中でないセク
タからデータを読み出すことができます。セクタ消去一時停止状態では読出しが可能
で書込みはできません。セクタ消去一時停止コマンドは , 消去ウェイト時間を含むセク
タ消去中のみ有効で , チップ消去中や書込み動作中は無視されます。
セクタ消去一時停止コマンドは , 消去一時停止コード ("B0H") を書き込むことで実行さ
れます。アドレスはフラッシュメモリ内の任意のアドレスを設定します。消去一時停
止中は消去一時停止コマンドを実行しても無視されます。
セクタ消去ウェイト期間中に , セクタ消去一時停止コマンドが入力されると , セクタ消
去ウェイトを終了し , 消去動作を中断して消去停止状態になります。セクタ消去ウェイ
ト期間後のセクタ消去動作中に , 消去一時停止コマンドが入力されると , 最大 20 μs の
時間の後 , 消去一時停止状態に入ります。
セクタ消去一時停止コマンドは , セクタ消去コマンドあるいはセクタ消去再開コマン
ド発行後 , 20 μs 以上後に行ってください。
512
第 25 章 2 M ビットフラッシュメモリ
25.5.6
フラッシュメモリのセクタ消去を再開する
セクタ消去再開コマンドを設定し , 一時停止したフラッシュメモリセクタ消去を再
開する手順について説明します。
■ フラッシュメモリのセクタ消去を再開する
一時停止したセクタ消去を再開させるには , コマンドシーケンス表 ( 表 25.4-1 を参照 )
のセクタ消去再開コマンドを CPU からフラッシュメモリへ送ります。
セクタ消去再開コマンドは , セクタ消去一時停止コマンドによるセクタ消去一時停止
状態からセクタ消去を再開するためのコマンドです。セクタ消去再開コマンドは , 消去
再開コード ("30H") の書込みを行うことで実施されますが , アドレスはフラッシュメモ
リ内の任意のアドレスを設定します。
セクタ消去中のセクタ消去再開コマンドの実行は無視されます。
513
第 25 章 2 M ビットフラッシュメモリ
514
第 26 章
シリアル書込み接続例
横河ディジタルコンピュータ製 AF220 フラッシュ
マイコンプログラマを用いた場合のシリアル書込
み接続例について説明します。
26.1 シリアル書込み接続の基本構成
26.2 シリアル書込み接続例
515
第 26 章 シリアル書込み接続例
26.1
シリアル書込み接続の基本構成
MB90F80x では , フラッシュ ROM のシリアルオンボード書込み ( 富士通標準 ) をサ
ポートしています。MB90F80x 仕様について , 以下に解説します。
■ シリアル書込み接続の基本構成
富士通標準シリアルオンボード書込みには , 横河ディジタルコンピュータ製 AF220 フ
ラッシュマイコンプログラマを使用します。
ホストインタフェースケーブル(AZ201)
汎用共通ケーブル(AZ210)
RS232C
AF220
フラッシュマイ
コンプログラマ
+
メモリカード
CLK 同期シリアル
MB90F80x
ユーザシステム
スタンドアロンで動作可能
<注意事項>
AF220フラッシュマイコンプログラマの機能,操作方法,接続用汎用共通ケーブル(AZ210),
および コネクタにつきましては , 横河ディジタルコンピュータ株式会社へお問い合わせ
ください。
516
第 26 章 シリアル書込み接続例
表 26.1-1 富士通標準シリアルオンボード書込みに使用する端子
端子
MD2, MD1,
MD0
X0, X1
P65, P66
機能
機能説明
モード端子
フラッシュマイコンプログラマから書込みモードに切り換えます。
発振用端子
CPU 内部動作クロックの設定は , PLL クロック 1 逓倍となっており
ますので , 発振クロック周波数が内部動作クロックとなります。シ
リアルオンボード書換えを行う場合に使用する発振クロックは
1 MHz ∼ 25 MHz となります。
書込みプログラム
起動端子
P65 に "L" レベル , P66 に "H" レベルを入力してください。
ただし P66 については、MB90F803/S では使用しません。
RST
リセット端子
−
SI0
シリアルデータ
入力端子
SO0
シリアルデータ
出力端子
SC0
シリアルクロック
入力端子
VSS
電源電圧供給端子
書込み電圧 (3 V ± 10%) をユーザシステムから供給する場合は ,
フラッシュマイコンプログラマとの接続は必要ありません。
接続時にはユーザ側の電源と短絡しないようにしてください。
VCC
GND 端子
フラッシュマイコンプログラマの GND と共通にしてください。
UART を CLK 同期モードとして使用します。
P65, SI0, SO0, SC0 端子をユーザシステムで使用される場合は , 図 26.1-1 に示す制御回
路が必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアルオ
ンボード書込み中は , ユーザ回路を切り離してください。
図 26.1-1 制御回路
MB90F80x
書込み制御端子
AF220書込み制御端子
10k
AF220
/TICS端子
ユーザ回路
「26.2 シリアル書込み接続例」に , 以下の 4 種類のシリアル書込み接続例を示します。
• シリアル書込み接続例 ( ユーザ電源を使用する場合 )
• シリアル書込み接続例 ( ライタから電源を供給する場合 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源を供給する場
合)
517
第 26 章 シリアル書込み接続例
表 26.1-2 AF220 フラッシュマイコンプログラマのシステム構成 ( 横河ディジタルコンピュータ製 )
型格
機能
AF220
アドバンスドフラッシュマイコンプログラマ
AF200 ACP
AC アダプタ ( センタ ) + ( オプション )
AZ201
ホストインタフェースケーブル (PCAT 用 RS232C ケーブル )
AZ210
標準ターゲットプローブ (Type A) 長さ:1 m
FF001
富士通製 F2MC-16LX フラッシュマイコン用コントロールモジュール
FF001 P2
2 M バイト PC Card ( オプション )
FF001 P4
4 M バイト PC Card ( オプション )
問い合わせ先:横河ディジタルコンピュータ株式会社
電話:042-333-6224
518
第 26 章 シリアル書込み接続例
26.2
シリアル書込み接続例
4 種類のシリアル書込み接続例を示します。
• シリアル書込み接続例 ( ユーザ電源を使用する場合 )
• シリアル書込み接続例 ( ライタから電源を供給する場合 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 )
• フラッシュマイコンプログラマとの最小限の接続例 ( ライタから電源を供給する場
合)
■ シリアル書込み接続例 ( ユーザ電源を使用する場合 )
図 26.2-1 に , MB90F80x シリアル書込み接続例 ( ユーザ電源を使用する場合 ) を示しま
す。モード端子はシングルチップモード (MD0=1, MD1=1, MD2=0) に設定します。
図 26.2-1 MB90F80x シリアル書込み接続例 ( ユーザ電源を使用する場合 )
ユーザシステム
AF220
フラッシュマイコン
コネクタ
プログラマ
DX10-28S
TAUX3
MB90F80x
(19)
MD2
10k
10k
MD1
10k
TMODE
MD0
X0
(12)
1MHz ~16MHz
X1
TAUX
(23)
P65
10k
/TICS
(10)
ユーザ
回路
10k
/TRES
(5)
RST
ユーザ
回路
TTXD
TRXD
TCK
10k
(13)
(27)
(6)
TVcc
(2)
GND
(1,7,
8,14,
15,21,
22,28)
P66(MB90F803/Sは対象外)
SI0
SO0
SC0
VCC
ユーザ電源
VSS
14ピン
3,4,9,11,16,17,18,20,24,25,26
ピンは開放
DX10-28:ライトアングルタイプ
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
519
第 26 章 シリアル書込み接続例
• P65, SI0, SO0, SC0 端子をユーザシステムでも使用する場合には , 下図の制御回路が
必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書
込み中はユーザ回路を切り離してください。
図 26.2-2 制御回路
MB90F80x
書込み制御端子
AF220書込み制御端子
10k
AF220
/TICS端子
ユーザ回路
• AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。
520
第 26 章 シリアル書込み接続例
■ シリアル書込み接続例 ( ライタから電源を供給する場合 )
図 26.2-3 に , MB90F80x シリアル書込み接続例 ( ライタ電源を使用する場合 ) を示しま
す。モード端子シングルチップモード (MD0=1, MD1=1, MD2=0) に設定します。
図 26.2-3 MB90F80x シリアル書込み接続例 ( ライタ電源を使用する場合 )
ユーザシステム
AF220
フラッシュマイコン
コネクタ
プログラマ
DX10-28S
TAUX3
MB90F80x
(19)
MD2
10k
10k
MD1
10k
TMODE
MD0
X0
(12)
1MHz ~16MHz
X1
TAUX
(23)
P65
10k
/TICS
(10)
ユーザ
回路
10k
/TRES
(5)
RST
ユーザ
回路
TTXD
TRXD
TCK
TVcc
Vcc
TVPP1
GND
10k
(13)
(27)
(6)
SI0
SO0
SC0
(16)
(1,7,
8,14,
15,21,
22,28)
P66(MB90F803/Sは対象外)
VCC
ユーザ電源
VSS
14ピン
4,9,11,17,18,20,24,25,26
ピンは開放
DX10-28:ライトアングルタイプ
1ピン
DX10-28S
28ピン
15ピン
コネクタ(ヒロセ電機製)のピン配列
521
第 26 章 シリアル書込み接続例
• P65, SI0, SO0, SC0 端子をユーザシステムでも使用する場合には , 下図の制御回路が
必要となります。フラッシュマイコンプログラマの /TICS 信号により , シリアル書
込み中はユーザ回路を切り離してください。
図 26.2-4 制御回路
MB90F80x
書込み制御端子
AF220書込み制御端子
10k
AF220
/TICS端子
ユーザ回路
• AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。
• 書込み電源を AF220 から供給する場合は , ユーザ電源と短絡しないでください。
522
第 26 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源を使用する場合 )
図 26.2-5 に , フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
を示します。
フラッシュメモリへの書込みでは , 各端子を図 26.2-5 に示すように設定した場合 , MD2,
MD1, MD0, P65, P66 とフラッシュマイコンプログラマとの接続の必要はありません。
図 26.2-5 フラッシュマイコンプログラマとの最小限の接続例 ( ユーザ電源使用時 )
AF220
フラッシュマイコン
プログラマ
ユーザシステム
MB90F80x
シリアル書換え時
MD2に"1"を設定
MD2
シリアル書換え時
MD1に"1"を設定
MD1
MD0
シリアル書換え時
MD0に"0"を設定
X0
1MHz~16MHz
X1
P65
シリアル書換え時
P65に"0"を設定
ユーザ回路
シリアル書換え時
P66に"1"を設定
ユーザ回路
P66(MB90F803/Sは対象外)
コネクタ
DX10-28S
/TRES
TTXD
TRXD
TCK
TVcc
GND
(5)
RST
(13)
SI0
SO0
SC0
VCC
(27)
(6)
(2)
(1,7,
8,14,
15,21,
22,28)
ユーザ電源
VSS
14ピン
3,4,9,10,11,12,16,17,18,19,20,23,
24,25,26ピンは開放
DX10-28S:ライトアングル
1ピン
DX10-28S
15ピン
28ピン
コネクタ(ヒロセ電機製)のピン配列
• AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。
523
第 26 章 シリアル書込み接続例
■ フラッシュマイコンプログラマとの最小限の接続例(ライタから電源を供給する場合)
図 26.2-6 に , フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源から供給
時 ) を示します。
フラッシュメモリへの書込みでは , 各端子を図 26.2-6 に示すように設定した場合 , MD2,
MD1, MD0, P65, P66 とフラッシュマイコンプログラマとの接続の必要はありません。
図 26.2-6 フラッシュマイコンプログラマとの最小限の接続例 ( ライタ電源から供給時 )
AF220
フラッシュマイコン
プログラマ
ユーザシステム
MB90F80x
シリアル書換え時
MD2に"1"を設定
シリアル書換え時
MD1に"1"を設定
10k
MD2
10k
10k
MD1
10k
10k
MD0
シリアル書換え時
MD0に"0"を設定
10k
X0
1MHz~16MHz
X1
P65
10k
シリアル書換え時
P65に"0"を設定
10k
ユーザ回路
シリアル書換え時
P66に"1"を設定
ユーザ回路
コネクタ
DX10-28S
/TRES
TTXD
TRXD
TCK
TTXD
TRXD
TVcc
GND
(5)
(13)
(27)
(6)
P66(MB90F803/Sは対象外)
10k
RST
SI0
SO0
SC0
(2)
(3)
(16)
(1,7,
8,14,
15,21,
22,28)
VCC
ユーザ電源
VSS
14ピン
4,9,10,11,12,17,18,19,20,23,
24,25,26ピンは開放
DX10-28S:ライトアングル
1ピン
DX10-28S
15ピン
28ピン
コネクタ(ヒロセ電機製)のピン配列
• AF220 との接続は , ユーザ回路の電源を OFF にしてから行ってください。
• 書込み電源を AF220 から供給する場合は , ユーザ電源と短絡しないでください。
524
付録
メモリマップおよび F2MC-16LX に使用している命
令について説明します。
付録 A I/O マップ
付録 B 命令
525
付録
付録 A
I/O マップ
MB90800 シリーズに内蔵された周辺機能の各レジスタには , 付表 A-1 で示すような
アドレスが割り当てられています。
■ I/O マップ
付表 A-1 I/O マップ (1 / 6)
初期値
周辺機能名
リード/
ライト
ポート 0 データレジスタ
X XX XX XX XB
ポート 0
R/W
PDR1
ポート 1 データレジスタ
X XX XX XX XB
ポート 1
R/W
000002H
PDR2
ポート 2 データレジスタ
X XX XX XX XB
ポート 2
R/W
000003H
PDR3
ポート 3 データレジスタ
X XX XX XX XB
ポート 3
R/W
000004H
PDR4
ポート 4 データレジスタ
X XX XX XX XB
ポート 4
R/W
アドレス
レジスタ
略称
000000H
PDR0
000001H
レジスタ名称
000005H
PDR5
ポート 5 データレジスタ
X XX XX XX XB
ポート 5
R/W
000006H
PDR6
ポート 6 データレジスタ
X XX XX XX XB
ポート 6
R/W
000007H
PDR7
ポート 7 データレジスタ
- X XX XX XXB
ポート 7
R/W
000008H
PDR8
ポート 8 データレジスタ
- - - XX XX XB
ポート 8
R/W
000009H
PDR9
ポート 9 データレジスタ
- - - - - - XXB
ポート 9
R/W
00000AH
00000BH
00000CH
使用禁止
00000DH
00000EH
00000FH
000010H
DDR0
ポート 0 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 0
R/W
000011H
DDR1
ポート 1 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 1
R/W
000012H
DDR2
ポート 2 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 2
R/W
000013H
DDR3
ポート 3 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 3
R/W
000014H
DDR4
ポート 4 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 4
R/W
000015H
DDR5
ポート 5 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 5
R/W
000016H
DDR6
ポート 6 方向レジスタ
0 0 0 0 0 0 0 0B
ポート 6
R/W
000017H
DDR7
ポート 7 方向レジスタ
- 0 0 0 0 0 0 0B
ポート 7
R/W
000018H
DDR8
ポート 8 方向レジスタ
- - - 0 0 0 0 0B
ポート 8
R/W
000019H
DDR9
ポート 9 方向レジスタ
- - - - - - 0 0B
ポート 9
R/W
アナログ入力許可 0
1 1 1 1 1 1 1 1B
ポート 6, A/D
R/W
アナログ入力許可 1
- - - - 1 1 1 1B
ポート 7, A/D
R/W
00001AH
00001BH
使用禁止
00001CH
00001DH
00001EH
00001FH
526
ADER0
ADER1
付録 A I/O マップ
付表 A-1 I/O マップ (2 / 6)
アドレス
レジスタ
略称
000020H
SMR0
00021H
SCR0
000022H
SIDR0/
SODR0
000023H
SSR0
レジスタ名称
モードレジスタ ch.0
0 0 0 0 0 - 0 0B
制御レジスタ ch.0
0 0 0 0 0 1 0 0B
インプット / アウトプットデータレジスタ
ch.0
X XX XX XX XB
ステータスレジスタ ch.0
0 0 0 0 1 0 0 0B
000024H
000025H
初期値
リード/
ライト
R/W
R/W
UART0
R/W
R/W
使用禁止
CDCR0
0 X - - 0 0 0 0B
通信プリスケーラ制御レジスタ ch.0
000026H
プリスケーラ 0
R/W
使用禁止
000027H
000028H
SMR1
モードレジスタ ch.1
0 0 0 0 0 - 0 0B
000029H
SCR1
制御レジスタ ch.1
0 0 0 0 0 1 0 0B
00002AH
SIDR1/
SODR1
00002BH
SSR1
インプット / アウトプットデータレジスタ
ch.1
X XX X XX XX B
ステータスレジスタ ch.1
0 0 0 0 1 0 0 0B
00002CH
00002DH
周辺機能名
R/W
R/W
UART1
R/W
R/W
使用禁止
CDCR1
0 X - - 0 0 0 0B
通信プリスケーラ制御レジスタ ch.1
00002EH
プリスケーラ 1
R/W
外部割込み
使用禁止
00002FH
000030H
ENIR
DTP/ 割込み許可レジスタ
- - - - 0 0 0 0B
R/W
000031H
EIRR
DTP/ 割込み要因レジスタ
- - - - X X XXB
R/W
000032H
ELVR
要求レベル設定レジスタ
0 0 0 0 0 0 0 0B
R/W
00- - - - - -B
R/W
000033H
000034H
使用禁止
ADCS0
A/D 制御ステータスレジスタ 0
000035H
ADCS1
A/D 制御ステータスレジスタ 1
0 0 0 0 0 0 0 0B
000036H
ADCR0
A/D データレジスタ下位
X XX X XX XX B
000037H
ADCR1
A/D データレジスタ上位
00101-XXB
ADMR
A/D 変換チャネル設定レジスタ
CPCLR
コンペアクリアレジスタ
TCDT
タイマデータレジスタ
00003EH
TCCSL
タイマコントロールステータスレジスタ下位
0 0 0 0 0 0 0 0B
R/W
00003FH
TCCSH
タイマコントロールステータスレジスタ上位
0 - - 0 0 0 0 0B
R/W
000038H
000039H
00003AH
00003BH
00003CH
00003DH
R/W, W
A/D コンバータ
R
R, W
使用禁止
0 0 0 0 0 0 0 0B
A/D コンバータ
X XX X XX XX B
R/W
X XX X XX XX B
0 0 0 0 0 0 0 0B
0 0 0 0 0 0 0 0B
R/W
16 ビット
フリーラン
タイマ
R/W
000040H
000041H
使用禁止
000042H
000043H
000044H
000045H
000046H
000047H
000048H
000049H
IPCP0
インプットキャプチャデータレジスタ 0
IPCP1
インプットキャプチャデータレジスタ 1
ICS01
インプットキャプチャコントロール
ステータス 0/1
X XX X XX XX B
X XX X XX XX B
X XX X XX XX B
X XX X XX XX B
0 0 0 0 0 0 0 0B
インプット
キャプチャ 0/1
R
R/W
使用禁止
527
付録
付表 A-1 I/O マップ (3 / 6)
アドレス
00004AH
レジスタ
略称
レジスタ名称
初期値
周辺機能名
リード/
ライト
X XX X XX XX B
アウトプット
コンペア 0
R/W
アウトプット
コンペア 1
R/W
アウトプット
コンペア 0/1
R/W
OCCP0
アウトプットコンペアレジスタ 0
OCCP1
アウトプットコンペアレジスタ 1
00004EH
OCSL
アウトプットコンペア
コントロールステータスレジスタ下位
00004FH
OCSH
アウトプットコンペア
コントロールステータスレジスタ上位
000050H
TMCSR0L
タイマコントロールステータスレジスタ0下位
000051H
TMCSR0H
タイマコントロールステータスレジスタ0上位
- - - - 0 0 0 0B
X XX X XX XX B
00004BH
00004CH
00004DH
000052H
X XX X XX XX B
X XX X XX XX B
XXXXXXXX B
0 0 0 0 - - 0 0B
- - 0 0 0 0 0
R/W
B
0 0 0 0 0 0 0 0B
000053H
TMR0/
TMRLR0
タイマレジスタ 0/
リロードレジスタ 0
000054H
TMCSR1L
タイマコントロールステータスレジスタ 1
下位
00000000
000055H
TMCSR1H
タイマコントロールステータスレジスタ 1
上位
- - - - 0 0 0 0B
000056H
000057H
TMR1/
TMRLR1
タイマレジスタ 1/ リロードレジスタ 1
000058H
TMCSR2L
タイマコントロールステータスレジスタ 2
下位
00000000
000059H
TMCSR2H
タイマコントロールステータスレジスタ 2
上位
- - - - 0 0 0 0B
00005AH
00005BH
TMR2/
TMRLR2
タイマレジスタ 1/
リロードレジスタ 2
X XX X XX XX B
00005CH
LCRL
LCDC 制御レジスタ下位
00010000
B
00005DH
LCRH
LCDC 制御レジスタ上位
00000000
B
00005EH
LCRR
LCDC 範囲レジスタ
00000000
B
00005FH
000060H
000061H
SMCS0
- - - - 0 0 0 0B
シリアルモードコントロールステータスレ
ジスタ (ch.0)
00000010
シリアルデータレジスタ (ch.0)
X XX X XX XX B
B
シリアルモードコントロールステータスレ
ジスタ (ch.1)
- - - - 0 0 0 0B
シリアルシフトデータレジスタ (ch.1)
X XX X XX XX B
SDR1
SDCR1
0 0 0 0 0 0 1 0B
0 - - - 0 0 0 0B
クロック分周制御レジスタ (ch.1)
000068H
R/W
R/W
LCD
コントローラ /
ドライバ
R/W
SIO
( 拡張シリアル
I/O)
R/W
R/W
R/W
通信プリスケーラ
(SIO)
SIO
( 拡張シリアル
I/O)
通信プリスケーラ
(SIO)
R/W
R/W
R/W
R/W
R/W
使用禁止
000069H
IBSR
I2C ステータスレジスタ
0 0 0 0 0 0 0 0B
R
2
0 0 0 0 0 0 0 0B
2
I C クロック選択レジスタ
- - 0 XX XX X B
IADR
I2C アドレスレジスタ
- X XX XX XX B
R/W
IDAR
I2C
X XX X XX XX B
R/W
00006BH
IBCR
00006CH
ICCR
00006DH
528
16 ビットリロード
タイマ 2
使用禁止
SMCS1
00006FH
R/W
X XX X XX XX B
0 - - - 0 0 0 0B
00006EH
R/W
R/W
B
クロック分周制御レジスタ (ch.0)
00006AH
16 ビットリロード
タイマ 1
X XX X XX XX B
SDCR0
000067H
R/W
X XX X XX XX B
000063H
000066H
R/W
R/W
B
SDR0
000065H
16 ビットリロード
タイマ 0
X XX X XX XX B
000062H
000064H
R/W
ROMM
I C コントロールレジスタ
データレジスタ
ROM ミラー機能 選択レジスタ
XX XX X XX 1B
R/W
2
IC
ROM ミラー
R/W
W
付録 A I/O マップ
付表 A-1 I/O マップ (4 / 6)
アドレス
レジスタ
略称
000070H
PDCRL0
000071H
PDCRH0
000072H
PCSRL0
000073H
PCSRH0
000074H
PDUTL0
000075H
PDUTH0
000076H
PCNTL0
000077H
PCNTH0
000078H
PDCRL1
000079H
PDCRH1
00007AH
PCSRL1
00007BH
PCSRH1
00007CH
PDUTL1
00007DH
PDUTH1
00007EH
PCNTL1
00007FH
PCNTH1
レジスタ名称
初期値
周辺機能名
1 1 1 1 1 1 1 1B
PPG0 ダウンカウンタレジスタ
R
1 1 1 1 1 1 1 1B
X XX X XX XX B
PPG0 周期設定レジスタ
X XX X XX XX B
X XX X XX XX B
PPG0 デューティ設定レジスタ
W
16 ビット PPG0
W
X XX X XX XX B
- - 0 0 0 0 0 0B
PPG0 制御ステータスレジスタ
R/W
0 0 0 0 0 0 0 XB
1 1 1 1 1 1 1 1B
PPG1 ダウンカウンタレジスタ
R
1 1 1 1 1 1 1 1B
X XX XX XX XB
PPG1 周期設定レジスタ
X XX X XX XX B
X XX X XX XX B
PPG1 デューティ設定レジスタ
XXXXXXXXB
- - 0 0 0 0 0 0B
PPG1 制御ステータスレジスタ
0 0 0 0 0 0 0 XB
リード/
ライト
W
16 ビット PPG1
W
R/W
000080H
000081H
000082H
000083H
000084H
000085H
000086H
000087H
000088H
000089H
00008AH
00008BH
( 予約領域 )
00008CH
00008DH
00008EH
00008FH
000090H
000091H
000092H
000093H
000094H
000095H
000096H
使用禁止
000097H
( 予約領域 )
529
付録
付表 A-1 I/O マップ (5 / 6)
アドレス
レジスタ
略称
初期値
周辺機能名
リード/
ライト
プログラムアドレス検出コントロール
ステータスレジスタ
0 0 0 0 0 0 0 0B
アドレス一致
検出機能
R/W
遅延割込み
R/W
低消費電力制御
回路
R/W
レジスタ名称
000098H
000099H
00009AH
使用禁止
00009BH
00009CH
00009DH
00009EH
PACSR
00009FH
DIRR
遅延割込み要因発生 / 解除レジスタ
- - - - - - - 0B
0000A0H
LPMCR
低消費電力モードレジスタ
0 0 0 1 1 0 0 0B
0000A1H
CKSCR
クロック選択レジスタ
1 1 1 1 1 1 0 0B
R/W
0000A2H
0000A3H
0000A4H
使用禁止
0000A5H
0000A6H
0000A7H
0000A8H
WDTC
ウォッチドッグタイマ制御 レジスタ
X - X XX1 1 1B
ウォッチドッグ
タイマ
R/W
0000A9H
TBTC
タイムベースタイマ制御 レジスタ
1 - - 0 0 1 0 0B
タイムベース
タイマ
R/W
0000AAH
WTC
時計タイマ制御レジスタ
1 0 0 1 1 0 0 0B
時計タイマ
( サブクロック )
R/W
0000ABH
0000ACH
使用禁止
0000ADH
0000AEH
FMCS
フラッシュメモリ制御ステータスレジスタ
0 0 0 0 0 0 0 0B
フラッシュ I/F
R/W,
R,W
0000AFH
TMCS
時計クロック出力制御レジスタ
X XX X X0 0 0B
時計用クロック
分周
R/W
0000B0H
ICR00
割込み制御レジスタ 00
0 0 0 0 0 1 1 1B
R/W
0000B1H
ICR01
割込み制御レジスタ 01
0 0 0 0 0 1 1 1B
R/W
0000B2H
ICR02
割込み制御レジスタ 02
0 0 0 0 0 1 1 1B
R/W
0000B3H
ICR03
割込み制御レジスタ 03
0 0 0 0 0 1 1 1B
R/W
0000B4H
ICR04
割込み制御レジスタ 04
0 0 0 0 0 1 1 1B
R/W
R/W
R/W
0000B5H
ICR05
割込み制御レジスタ 05
0 0 0 0 0 1 1 1B
0000B6H
ICR06
割込み制御レジスタ 06
0 0 0 0 0 1 1 1B
0000B7H
ICR07
割込み制御レジスタ 07
0 0 0 0 0 1 1 1B
0000B8H
ICR08
割込み制御レジスタ 08
0 0 0 0 0 1 1 1B
0000B9H
ICR09
割込み制御レジスタ 09
0 0 0 0 0 1 1 1B
R/W
0000BAH
ICR10
割込み制御レジスタ 10
0 0 0 0 0 1 1 1B
R/W
0000BBH
ICR11
割込み制御レジスタ 11
0 0 0 0 0 1 1 1B
R/W
0000BCH
ICR12
割込み制御レジスタ 12
0 0 0 0 0 1 1 1B
R/W
R/W
割込み
コントローラ
R/W
R/W
0000BDH
ICR13
割込み制御レジスタ 13
0 0 0 0 0 1 1 1B
0000BEH
ICR14
割込み制御レジスタ 14
0 0 0 0 0 1 1 1B
R/W
0000BFH
ICR15
割込み制御レジスタ 15
0 0 0 0 0 1 1 1B
R/W
530
付録 A I/O マップ
付表 A-1 I/O マップ (6 / 6)
アドレス
レジスタ
略称
レジスタ名称
初期値
001FF0H
001FF1H
PADR0
プログラムアドレス
検出レジスタ 0
001FF3H
001FF4H
R/W
X XX X XX XX B
R/W
X XX XX XX XB
PADR1
プログラムアドレス
検出レジスタ 1
001FF5H
リード/
ライト
X XX X XX XX B
X XX XX XX XB
001FF2H
周辺機能名
アドレス一致
検出機能
R/W
R/W
X XX XX XX XB
R/W
X XX XX XX XB
R/W
- - - - - 007900H
007901H
007902H
007903H
007904H
007905H
007906H
007907H
007908H
007909H
00790AH
00790BH
00790CH
VRAM
LCD 表示用 RAM
X XX X XX XX B
LCD コントローラ /
ドライバ
R/W
00790DH
00790EH
00790FH
007910H
007911H
007912H
007913H
007914H
007915H
007916H
007917H
● リード / ライトについての説明
R/W: リード / ライト可能
R : リードオンリ
W : ライトオンリ
● 初期値についての説明
0 : 初期値は "0" です。
1 : 初期値は "1" です。
X : 初期値は不定です。
531
付録
付録 B
命令
F2MC-16LX に使用している命令について説明します。
B.1 命令の種類
B.2 アドレッシング
B.3 直接アドレッシング
B.4 間接アドレッシング
B.5 実行サイクル数
B.6 実効アドレスフィールド
B.7 命令一覧表の読み方
B.8 F2MC-16LX 命令一覧表
B.9 命令マップ
管理番号 : CM44-00202-3
532
付録 B 命令
B.1
命令の種類
F2MC-16LX には , 以下に示す 351 種類の命令があります。
■ 命令の種類
• 転送系命令 ( バイト ) 41 命令
• 転送系命令 ( ワード , ロングワード ) 38 命令
• 加減算命令 ( バイト , ワード , ロングワード ) 42 命令
• 増減算命令 ( バイト , ワード , ロングワード ) 12 命令
• 比較命令 ( バイト , ワード , ロングワード ) 11 命令
• 符号なし乗除算命令 ( ワード , ロングワード ) 11 命令
• 符号付き乗除算命令 ( ワード , ロングワード ) 11 命令
• 論理演算命令 ( バイト , ワード ) 39 命令
• 論理演算命令 ( ロングワード ) 6 命令
• 符号反転命令 ( バイト , ワード ) 6 命令
• ノーマライズ命令 ( ロングワード ) 1 命令
• シフト命令 ( バイト , ワード , ロングワード ) 18 命令
• 分岐命令 50 命令 ( 分岐命令 1: 31 命令 , 分岐命令 2: 19 命令 )
• アキュムレータ操作命令 ( バイト , ワード ) 6 命令
• その他制御命令 ( バイト , ワード , ロングワード ) 28 命令
• ビット操作命令 21 命令
• ストリング命令 10 命令
533
付録
B.2
アドレッシング
F2MC-16LX では , 命令の実効アドレスフィールドまたは命令コード自体 ( インプラ
イド ) でアドレス形式が決定されます。命令コード自体でアドレス形式が決定する
場合は , 使用する命令コードに合わせてアドレスを指定します。命令によっては , 数
種類のアドレス指定方式から設定できるものがあります。
■ アドレッシング
F2MC-16LX には , 以下に示す 23 種類のアドレッシングがあります。
• 即値 (#imm)
• レジスタ直接
• 直接分岐アドレス (addr16)
• 物理直接分岐アドレス (addr24)
• I/O 直接 (io)
• 短縮直接アドレス (dir)
• 直接アドレス (addr16)
• I/O 直接ビットアドレス (io: bp)
• 短縮直接ビットアドレス (dir: bp)
• 直接ビットアドレス (addr16: bp)
• ベクタアドレス (#vct)
• レジスタ間接 (@RWj j=0 ∼ 3)
• ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3)
• ディスプレースメント付レジスタ間接 (@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3)
• ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3)
• ディスプレースメント付プログラムカウンタ間接 (@PC+disp16)
• ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
• プログラムカウンタ相対分岐アドレス (rel)
• レジスタリスト (rlst)
• アキュムレータ間接 (@A)
• アキュムレータ間接分岐アドレス (@A)
• 間接指定分岐アドレス (@ear)
• 間接指定分岐アドレス (@eam)
534
付録 B 命令
■ 実効アドレスフィールド
実効アドレスフィールドで指定される , アドレス形式を表 B.2-1 に示します。
表 B.2-1 実効アドレスフィールド
コード
表記
アドレス形式
00
R0
RW0
RL0
01
R1
RW1
(RL0)
02
R2
RW2
RL1
03
R3
RW3
(RL1)
04
R4
RW4
RL2
05
R5
RW5
(RL2)
06
R6
RW6
RL3
07
R7
RW7
(RL3)
08
@RW0
09
@RW1
レジスタ直接
ea は左から順に
バイト
ワード
ロングワード
の型に対応する。
デフォルトバンク
なし
DTB
DTB
レジスタ間接
0A
@RW2
0B
@RW3
SPB
0C
@RW0+
DTB
0D
@RW1+
0E
@RW2+
0F
@RW3+
SPB
10
@RW0+disp8
DTB
11
@RW1+disp8
DTB
12
@RW2+disp8
ADB
13
@RW3+disp8
14
@RW4+disp8
15
@RW5+disp8
DTB
16
@RW6+disp8
ADB
17
@RW7+disp8
SPB
18
@RW0+disp16
DTB
19
@RW1+disp16
1A
@RW2+disp16
IB
@RW3+disp16
1C
@RW0+RW7
インデックス付レジスタ間接
DTB
1D
@RW1+RW7
インデックス付レジスタ間接
DTB
1E
@PC+disp16
16 ビットディスプレースメント付 PC 間接
PCB
1F
addr16
直接アドレス
DTB
ポストインクリメント付
レジスタ間接
8 ビットディスプレースメント付
レジスタ間接
16 ビットディスプレースメント付
レジスタ間接
ADB
DTB
ADB
SPB
DTB
DTB
ADB
SPB
535
付録
B.3
直接アドレッシング
直接アドレッシングでは , オペランド値 , レジスタおよびアドレスを直接指定しま
す。
■ 直接アドレッシング
● 即値 (#imm)
オペランドの値を直接指定します。(#imm4/#imm8/#imm16/#imm32) 。
図 B.3-1 に例を示します。
図 B.3-1 即値 (#imm) 例
MOVW A, #01212H (A にオペランドの値を格納する命令 )
実行前
A 2233
4455
実行後
A 4455
1 2 1 2 ( 命令によっては AL → AH に転送が行われる )
● レジスタ直接
オペランドとして , 直接レジスタを指定します。指定できるレジスタを表 B.3-1 に示し
ます。
表 B.3-1 レジスタ直接
汎用レジスタ
専用レジスタ
*:
536
バイト
R0, R1, R2, R3, R4, R5, R6, R7
ワード
RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7
ロングワード
RL0, RL1, RL2, RL3
アキュムレータ
A, AL
ポインタ
SP *
バンク
PCB, DTB, USB, SSB, ADB
ページ
DPR
制御
PS, CCR, RP, ILM
SP は , コンディションコードレジスタ (CCR) 中の S フラグビットの値に応じてユーザス
タックポインタ (USP) またはシステムスタックポインタ (SSP) のどちらか一方が選択さ
れ , 使用されます。分岐系の命令ではプログラムカウンタ (PC) は命令のオペランドには
記述されることなく指定されます。
付録 B 命令
図 B.3-2 に例を示します。
図 B.3-2 レジスタ直接例
MOV R0, A ( 汎用レジスタ R0 に A の下位 8 ビットを転送する命令 )
実行前
A 0716
2534
メモリ空間
R0
実行後
A 0716
2564
??
メモリ空間
R0
34
● 直接分岐アドレス (addr16)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 16 ビットで , 論理空間内での分岐先を示します。無条件分岐命令 , サブ
ルーチンコール命令およびソフトウェア割込み命令に使用します。アドレスの bit23 ∼
bit16 はプログラムカウンタバンクレジスタ (PCB) で指定されます。図 B.3-3 に例を示
します。
図 B.3-3 直接分岐アドレス (addr16) 例
JMP 3B20H ( バンク内で直接分岐アドレス指定で , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
4F3B20H 次の命令
実行後
PC 3 B 2 0
PCB 4 F
4F3C20H
62
4F3C21H
20
4F3C22H
3B
JMP 3B20H
537
付録
● 物理直接分岐アドレス (addr24)
分岐先のアドレスをディスプレースメントで直接指定します。ディスプレースメント
のデータ長は 24 ビットです。無条件分岐命令 , サブルーチンコール命令およびソフト
ウェア割込み命令に使用します。図 B.3-4 に例を示します。
図 B.3-4 物理直接分岐アドレス (addr24) 例
JMPP 333B20H ( 直接分岐アドレス 24 ビット指定で , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
333B20H 次の命令
実行後
PC 3 B 2 0
PCB 3 3
4F3C20H
63
4F3C21H
20
4F3C22H
3B
4F3C23H
33
JMPP 333B20H
● I/O 直接 (io)
オペランドのメモリアドレスを 8 ビットのディスプレースメントで直接指定します。
データバンクレジスタ (DTB) , ダイレクトページレジスタ (DPR) の値にかかわらず ,
物理アドレス "000000H" ∼ "0000FFH" の空間の I/O 空間がアクセスされます。I/O 直接
アドレス指定を使用した命令の前にバンク指定用のバンクセレクトプリフィックスを
記述しても無効です。図 B.3-5 に例を示します。
図 B.3-5 I/O 直接 (io) 例
MOVW A, I:0C0H (I/O 直接で読出しを行い , A に格納する命令 )
実行前
実行後
A 0716
2534
メモリ空間
0000C0H
EE
0000C1H
FF
A 2534 FFEE
( 注意事項 ) I: は , I/O 直接アドレスを示すアドレス規定子です。
538
付録 B 命令
● 短縮直接アドレス (dir)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼
bit8 はダイレクトページレジスタ (DPR) により指定されます。アドレスの bit23 ∼ bit16
はデータバンクレジスタ (DTB) により指定されます。図 B.3-6 に例を示します。
図 B.3-6 短縮直接アドレス (dir) 例
MOV S:20H, A (A の下位 8 ビットの内容を短縮直接アドレス指定方式で書き込む命令 )
A 4455
実行前
DPR 6 6
DTB 7 7
A 4455
実行後
DPR 6 6
1212
メモリ空間
776620H
1212
DTB 7 7
??
メモリ空間
776620H
12
( 注意事項 ) S: は , 短縮直接アドレスを示すアドレス規定子です。
● 直接アドレス (addr16)
オペランドで , メモリアドレス下位 16 ビットを直接指定します。アドレスの bit23 ∼
bit16 はデータバンクレジスタ (DTB) で指定されます。直接アドレスのアドレッシング
に対しては , アクセス空間指定用のプリフィックス命令は無効です。図 B.3-7 に例を示
します。
図 B.3-7 直接アドレス (addr16) 例
MOVW A, 3B20H ( 直接アドレスで読出しを行い , A に格納する命令 )
実行前
実行後
A 2020
A AABB
AABB
0123
DTB 5 5
メモリ空間
553B21H
01
553B20H
23
DTB 5 5
539
付録
● I/O 直接ビットアドレス (io: bp)
物理アドレス "000000H" ∼ "0000FFH" 内のビットを直接指定します。ビットの位置は
": bp" で表され , 数字の大きいほうが最上位ビット (MSB) , 小さい方が最下位ビット
(LSB) となります。図 B.3-8 に例を示します。
図 B.3-8 I/O 直接ビットアドレス (io: bp) 例
SETB I:0C1H:0 (I/O 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
0000C1H
実行前
00
メモリ空間
0000C1H
実行後
01
( 注意事項 ) I: は , I/O 直接ビットアドレスを示すアドレス規定子です。
● 短縮直接ビットアドレス (dir: bp)
オペランドでメモリアドレスの下位 8 ビットを直接指定します。アドレスの bit15 ∼
bit8 はダイレクトページレジスタ (DPR) で指定されます。アドレスの bit23 ∼ bit16 は
データバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の
大きい方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-9 に例を示しま
す。
図 B.3-9 短縮直接ビットアドレス (dir: bp) 例
SETB S:10H:0 ( 短縮直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
実行前
DTB 5 5
DPR 6 6
556610H
00
メモリ空間
実行後
DTB 5 5
DPR 6 6
556610H
( 注意事項 ) S: は , 短縮直接ビットアドレスを示すアドレス規定子です。
540
01
付録 B 命令
● 直接ビットアドレス (addr16: bp)
64K バイト内の任意のビットに対し直接指定します。アドレスの bit23 ∼ bit16 はデー
タバンクレジスタ (DTB) で指定されます。ビットの位置は ": bp" で表され , 数字の大き
い方が最上位ビット , 小さい方が最下位ビットとなります。図 B.3-10 に例を示します。
図 B.3-10 直接ビットアドレス (addr16: bp) 例
SETB 2222H : 0 ( 直接ビットアドレス指定でセットビットを行う命令 )
メモリ空間
DTB 5 5
実行前
00
552222H
メモリ空間
DTB 5 5
実行後
01
552222H
● ベクタアドレス (#vct)
分岐先のアドレスは指定されたベクタの内容となります。ベクタ番号のデータ長には
4 ビットと 8 ビットの 2 種類があります。サブルーチンコール命令 , ソフトウェア割込
み命令に使用します。図 B.3-11 に例を示します。
図 B.3-11 ベクタアドレス (#vct) 例
CALLV #15 ( オペランドで指定した割込みベクタが示すアドレスへ分岐する命令 )
実行前
PC 0 0 0 0
PCB F F
実行後
メモリ空間
FFC000H
EF
FFFFE0H
00
FFFFE1H
D0
CALLV #15
PC D 0 0 0
PCB F F
541
付録
表 B.3-2 CALLV ベクタ一覧表
命令
ベクタアドレス L
ベクタアドレス H
CALLV #0
XXFFFEH
XXFFFFH
CALLV #1
XXFFFCH
XXFFFDH
CALLV #2
XXFFFAH
XXFFFBH
CALLV #3
XXFFF8H
XXFFF9H
CALLV #4
XXFFF6H
XXFFF7H
CALLV #5
XXFFF4H
XXFFF5H
CALLV #6
XXFFF2H
XXFFF3H
CALLV #7
XXFFF0H
XXFFF1H
CALLV #8
XXFFEEH
XXFFEFH
CALLV #9
XXFFECH
XXFFEDH
CALLV #10
XXFFEAH
XXFFEBH
CALLV #11
XXFFE8H
XXFFE9H
CALLV #12
XXFFE6H
XXFFE7H
CALLV #13
XXFFE4H
XXFFE5H
CALLV #14
XXFFE2H
XXFFE3H
CALLV #15
XXFFE0H
XXFFE1H
( 注意事項 ) XX には PCB レジスタの値が入ります。
<注意事項>
プログラムカウンタバンクレジスタ (PCB) が "FFH" の場合ベクタ領域は INT #vct8 (#0 ∼
#7) のベクタ領域と共有しているため , 使用する場合は注意が必要です。( 表 B.3-2 を参照
してください )
542
付録 B 命令
B.4
間接アドレッシング
間接アドレッシングでは , 記述したオペランドが示すアドレスのデータで , 間接的に
アドレスを指定します。
■ 間接アドレッシング
● レジスタ間接 (@RWj j=0 ∼ 3)
汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで
す。アドレスの bit23 ∼ bit16 は , RW0, RW1 を用いた場合はデータバンクレジスタ
(DTB) で示され , RW3 の場合はシステムスタックバンクレジスタ (SSB) またはユーザ
スタックバンクレジスタ (USB) で示され , RW2 の場合はアディショナルデータバンク
レジスタ (ADB) で示されます。図 B.4-1 に例を示します。
図 B.4-1 レジスタ間接 (@RWj j=0 ∼ 3) 例
MOVW A, @RW1 ( レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
RW1 D 3 0 F
実行後
DTB 7 8
78D30FH
EE
78D310H
FF
A 2534 FFEE
RW1 D 3 0 F
DTB 7 8
● ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3)
汎用レジスタ RWj の内容をアドレスとしたメモリをアクセスするアドレッシングで
す。
オペランド操作後RWjはオペランドデータ長 (バイトの場合は1, ワードの場合は2,
ロングワードの場合は 4) 分だけ加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1
を用いた場合はデータバンクレジスタ (DTB) で示され , RW3 の場合はシステムスタッ
クバンクレジスタ (SSB) またはユーザスタックバンクレジスタ (USB) で示され , RW2
の場合はアディショナルデータバンクレジスタ (ADB) で示されます。
ポストインクリメントした結果がインクリメント指定したレジスタ自身のアドレス
だった場合は , 参照される値はインクリメントした値となり , 命令が書込みだった場合
は命令による書込みが優先されるので , インクリメントするはずだったレジスタは書
込みデータとなります。
図 B.4-2 に例を示します。
543
付録
図 B.4-2 ポストインクリメント付レジスタ間接 (@RWj+ j=0 ∼ 3) 例
MOVW A, @RW1+ ( ポストインクリメント付レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
RW1 D 3 0 F
実行後
DTB 7 8
78D30FH
EE
78D310H
FF
A 2534 FFEE
RW1 D 3 1 1
DTB 7 8
● ディスプレースメント付レジスタ間接
(@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3)
汎用レジスタ RWj の内容にディスプレースメントを加算したものをアドレスとしたメ
モリをアクセスするアドレッシングです。ディスプレースメントは , バイトとワードの
2 種類があり , 符号付数値として加算されます。アドレスの bit23 ∼ bit16 は , RW0, RW1,
RW4, RW5 を用いた場合はデータバンクレジスタ (DTB) で示され , RW3, RW7 を用い
た場合はシステムスタックバンクレジスタ (SSB) またはユーザスタックバンクレジス
タ (USB) で示され , RW2, RW6 を用いた場合はアディショナルデータバンクレジスタ
(ADB) で示されます。図 B.4-3 に例を示します。
図 B.4-3 ディスプレースメント付レジスタ間接
(@RWi+disp8 i=0 ∼ 7, @RWj+disp16 j=0 ∼ 3) 例
MOVW A, @RW1+10H (ディスプレースメント付レジスタ間接で読出しを行い, Aに格納する命令)
実行前
A 0716
2534
(+10H)
RW1 D 3 0 F
実行後
A 2534 FFEE
RW1 D 3 0 F
544
DTB 7 8
DTB 7 8
メモリ空間
78D31FH
EE
78D320H
FF
付録 B 命令
● ディスプレースメント付ロングレジスタ間接 (RLi+disp8 i=0 ∼ 3)
汎用レジスタ RLi の内容にディスプレースメントを加算した結果の下位 24 ビットをア
ドレスとしたメモリをアクセスするアドレッシングです。ディスプレースメントは 8
ビットで符号付数値として加算されます。図 B.4-4 に例を示します。
図 B.4-4 ディスプレースメント付ロングレジスタ間接 (@RLi+disp8 i=0 ∼ 3) 例
MOVW A, @RL2+25H (ディスプレースメント付ロングレジスタ間接で読出しを行い, Aに格納する命令)
A 0716
実行前
2534
(+25H)
RL2 F 3 8 2
4B02
メモリ空間
824B27H
EE
824B28H
FF
A 2534 FFEE
実行後
RL2 F 3 8 2
4B02
● ディスプレースメント付プログラムカウンタ間接 (@PC+disp16)
(命令のアドレス+4+disp16) で示されるアドレスのメモリをアクセスするアドレッシン
グです。ディスプレースメントはワード長です。アドレスの bit23 ∼ bit16 はプログラ
ムカウンタバンクレジスタ (PCB) により指定されます。次に示す命令のオペランドア
ドレスは , ( 次の命令のアドレス +disp16) とは , みなしませんので注意してください。
• DBNZ eam, rel
• CBNE eam, #imm8, rel
• MOV eam, #imm8
• DWBNZ eam, rel
• CWBNE eam, #imm16, rel
• MOVW eam, #imm16
図 B.4-5 に例を示します。
図 B.4-5 ディスプレースメント付プログラムカウンタ間接 (@PC+disp16) 例
MOVW A, @PC+20H ( ディスプレースメント付 PC 間接で読出しを行い , A に格納する命令 )
実行前
A 0716
2534
メモリ空間
PCB C 5 PC 4 5 5 6
実行後
A 2534
FFEE
PCB C 5 PC 4 5 5 A
+4
C54556H
73
C54557H
9E
C54558H
20
C54559H
00
MOVW
A, @PC+20H
C5455AH
・
・
・
+20H
C5457AH
EE
C5457BH
FF
545
付録
● ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7)
汎用レジスタ RW7 の内容に , RW0 あるいは RW1 を加算したものをアドレスとしたメ
モリをアクセスするアドレッシングです。アドレスの bit23 ∼ bit16 はデータバンクレ
ジスタ (DTB) で示されます。図 B.4-6 に例を示します。
図 B.4-6 ベースインデックス付レジスタ間接 (@RW0+RW7, @RW1+RW7) 例
MOVW A, @RW1+RW7 ( ベースインデックス付レジスタ間接で読出しを行い , A に格納する命令 )
実行前
A 0716
RW1 D 3 0 F
WR7 0 1 0 1
実行後
A 2534
RW1 D 3 0 F
2534
メモリ空間
+
DTB 7 8
78D410H
EE
78D411H
FF
FFEE
DTB 7 8
WR7 0 1 0 1
● プログラムカウンタ相対分岐アドレス (rel)
分岐先のアドレスはプログラムカウンタ (PC) の値と 8 ビットのオフセットを加算した
値となります。加算の結果が 16 ビットを超えた場合は , バンクレジスタのインクリメ
ントまたはデクレメントをせずに , 超えた分は無視されますので , 64K バイトのバンク
内で閉じたアドレスとなります。プログラムカウンタ相対分岐アドレスによるアド
レッシングは , 無条件 / 条件分岐命令に使用します。アドレスの bit23 ∼ bit16 はプログ
ラムカウンタバンクレジスタ (PCB) で示されます。
図 B.4-7 に例を示します。
図 B.4-7 プログラムカウンタ相対分岐アドレス (rel) 例
BRA 3C32H ( 無条件相対分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
メモリ空間
4F3C32H 次の命令
実行後
546
PC
3 C 32
PCB 4 F
4F3C21H
10
4F3C20H
60
BRA 3C32H
付録 B 命令
● レジスタリスト (rlst)
スタックに対するプッシュ / ポップの対象となるレジスタを指定します。図 B.4-8 にレ
ジスタリストの構成 , 図 B.4-9 に例を示します。
図 B.4-8 レジスタリストの構成
MSB
LSB
RW7 RW6 RW5 RW4 RW3 RW2 RW1 RW0
対応ビットが "1" の場合に設定 , "0" の場合に非設定
MSB: 最上位ビット
LSB: 最下位ビット
図 B.4-9 レジスタリスト (rlst) 例
POPW RW0, RW4 ( レジスタリストで示された複数のワードレジスタに , SP で示されるメモリの
データを転送する命令 )
SP 3 4 F A
SP 3 4 F E
RW0
×× ××
RW0
02 01
RW1
×× ××
RW1
×× ××
RW2
×× ××
RW2
×× ××
RW3
×× ××
RW3
×× ××
RW4
×× ××
RW4
04 03
RW5
×× ××
RW5
×× ××
RW6
×× ××
RW6
×× ××
RW7
×× ××
RW7
×× ××
メモリ空間
SP
01
メモリ空間
34FAH
01
34FAH
02
34FBH
02
34FBH
03
34FCH
03
34FCH
34FDH
04
04
34FEH
実行前
SP
34FDH
34FEH
実行後
547
付録
● アキュムレータ間接 (@A)
アキュムレータの下位バイト (AL) の内容 (16 ビット ) で示されるアドレスのメモリを
アクセスするアドレス方式です。アドレスの bit23 ∼ bit16 はデータバンクレジスタ
(DTB) によりニーモニックで指定されます。図 B.4-10 に例を示します。
図 B.4-10 アキュムレータ間接 (@A) 例
MOVW A, @A ( アキュムレータ間接で読出しを行い , A に格納する命令 )
A
実行前
0716
2534
DTB B B
A
実行後
0716
メモリ空間
BB2534H
EE
BB2535H
FF
FFEE
DTB B B
● アキュムレータ間接分岐アドレス (@A)
分岐先のアドレスは , アキュムレータの下位バイト (AL) の内容 (16 ビット ) となりま
す。バンク空間内での分岐先を示し , アドレスの bit23 ∼ bit16 はプログラムカウンタ
バンクレジスタ (PCB) で指定されますが , JCTX (Jump Context) 命令の場合は , アド
レスの bit23 ∼ bit16 はデータバンクレジスタ (DTB) で指定されます。アキュムレータ
間接分岐アドレスによるアドレッシングは , 無条件分岐命令に使用します。図 B.4-11
に例を示します。
図 B.4-11 アキュムレータ間接分岐アドレス (@A) 例
JMP @A ( アキュムレータ間接分岐アドレスで , 無条件分岐を行う命令 )
実行前
PC 3 C 2 0
A 6677
PCB 4 F
3B20
メモリ空間
4F3B20H 次の命令
4F3C20H
実行後
PC 3 B 2 0
A 6677
548
PCB 4 F
3B20
61
JMP @A
付録 B 命令
● 間接指定分岐アドレス (@ear)
ear で示される番地のワードデータが分岐先アドレスとなります。図 B.4-12 に例を示し
ます。
図 B.4-12 間接指定分岐アドレス (@ear) 例
JMP @@RW0 ( レジスタ間接の間接で無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
RW0 7 F 4 8
DTB 2 1
メモリ空間
217F48H
20
217F49H
3B
4F3B20H 次の命令
実行後
PC 3 B 2 0
PCB 4 F
RW0 7 F 4 8
DTB 2 1
4F3C20H
73
4F3C21H
08
JMP @@RW0
● 間接指定分岐アドレス (@eam)
eam で示される番地のワードデータが分岐先アドレスとなります。図 B.4-13 に例を示
します。
図 B.4-13 間接指定分岐アドレス (@eam) 例
JMP @RW0 ( レジスタ間接で無条件分岐を行う命令 )
実行前
PC 3 C 2 0
PCB 4 F
RW0 3 B 2 0
実行後
PC 3 B 2 0
メモリ空間
4F3B20H 次の命令
PCB 4 F
4F3C20H
73
4F3C21H
00
JMP @RW0
RW0 3 B 2 0
549
付録
B.5
実行サイクル数
命令の実行に要するサイクル数 ( 実行サイクル数 ) は , 各命令の「サイクル数」の値
と , 条件で決まる「補正値」の値およびプログラムフェッチの「サイクル数」の値
を加算することで得られます。
■ 実行サイクル数
内蔵 ROM などの 16 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合には , 実行中の命令がワード境界を越えるごとにプログラムフェッチをするため ,
データのアクセスなどに干渉すると実行サイクル数が増大します。
外部データバスの 8 ビットバスに接続されたメモリ上のプログラムをフェッチする場
合は , 実行中の命令の 1 バイトごとにプログラムフェッチをするため , データのアクセ
スなどに干渉すると実行サイクル数が増大します。
CPU 間欠動作時は , 汎用レジスタ , 内蔵 ROM, 内蔵 RAM, 内蔵 I/O, 外部データバスの
アクセスをすると , 低消費電力モード制御レジスタの CG0, CG1 ビットで指定されるサ
イクル数分 CPU へ供給されるクロックが一時停止しますので , CPU 間欠動作の命令の
実行に要するサイクル数は , 通常の実行サイクル数に , 汎用レジスタ , 内蔵 ROM, 内蔵
RAM, 内蔵 I/O, 外部データバスの「アクセス回数」×一時停止の「サイクル数」の値
を「補正値」として加算してください。
■ 実行サイクル数計算方法
表 B.5-1 , 表 B.5-2 , 表 B.5-3 に命令実行サイクル数および補正値のデータを示します。
表 B.5-1 各種アドレッシングに対する実行サイクル数
(a) *
コード
00 ∼ 07
オペランド
Ri
RWi
RLi
各種アドレッシングに対する
実行サイクル数
各種アドレッシングに
対するレジスタ
アクセス回数
命令一覧表に記載
命令一覧表に記載
08 ∼ 0B
@RWj
2
1
0C ∼ 0F
@RWj+
4
2
10 ∼ 17
@RWi+disp8
2
1
18 ∼ 1B
@RWi+disp16
2
1
1C
1D
1E
1F
@RW0+RW7
@RW1+RW7
@PC+disp16
addr16
4
4
2
1
2
2
0
0
*: (a) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用さ
れています。" ∼ " と "B" の意味については「B.7 命令一覧表の読み方」を参照
してください。
550
付録 B 命令
表 B.5-2 実サイクル数算出用サイクル数の補正値
(b) バイト *1
オペランド
(c) ワード *1
(d) ロング *1
サイクル
数
アクセス
回数
サイクル
数
アクセス
回数
サイクル
数
アクセス
回数
内部レジスタ
+0
1
+0
1
+0
2
内部メモリ
偶数アドレス
+0
1
+0
1
+0
2
内部メモリ
奇数アドレス
+0
1
+2
2
+4
4
外部データバス *2
16 ビット偶数アドレス
+1
1
+1
1
+2
2
外部データバス *2
16 ビット奇数アドレス
+1
1
+4
2
+8
4
外部データバス *2
8 ビット
+1
1
+4
2
+8
4
*1: (b), (c), (d) は「B.8 F2MC-16LX 命令一覧表」の∼ ( サイクル数 ) , B ( 補正値 ) で使用され
ています。
*2: 外部データバスを使用した場合は , レディ入力および自動レディによりウェイトしたサ
イクル数も加算する必要があります。
表 B.5-3 プログラムフェッチサイクル数算出用サイクル数の補正値
命令
バイト境界
ワード境界
内部メモリ
−
+2
外部データバス 16 ビット
−
+3
外部データバス 8 ビット
+3
−
( 注意事項 ) ・ 外部データバスを使用した場合は , レディ入力および自動レディでウェイト
したサイクル数も加算する必要があります。
・ 実際にはすべてのプログラムフェッチで , 命令実行が遅くなるわけではない
ので , この補正値は最悪ケースを算出する場合に使用してください。
551
付録
B.6
実効アドレスフィールド
表 B.6-1 に実効アドレスフィールドを示します。
■ 実効アドレスフィールド
表 B.6-1 実効アドレスフィールド (1 / 2)
コード
552
表記
アドレス形式
00
R0
RW0
RL0
01
R1
RW1
(RL0)
02
R2
RW2
RL1
03
R3
RW3
(RL1)
04
R4
RW4
RL2
05
R5
RW5
(RL2)
06
R6
RW6
RL3
07
R7
RW7
(RL3)
08
@RW0
09
@RW1
0A
@RW2
0B
@RW3
0C
@RW0+
0D
@RW1+
0E
@RW2+
0F
@RW3+
10
@RW0+disp8
11
@RW1+disp8
12
@RW2+disp8
13
@RW3+disp8
14
@RW4+disp8
15
@RW5+disp8
16
@RW6+disp8
17
@RW7+disp8
アドレス拡張部の
バイト数 *
レジスタ直接
ea は左から順に
バイト
ワード
ロングワード
の型に対応する。
−
レジスタ間接
0
ポストインクリメント付
レジスタ間接
0
8 ビットディスプレースメント付
レジスタ間接
1
付録 B 命令
表 B.6-1 実効アドレスフィールド (1 / 2)
コード
*:
表記
18
@RW0+disp16
19
@RW1+disp16
1A
@RW2+disp16
IB
@RW3+disp16
1C
アドレス形式
アドレス拡張部の
バイト数 *
16 ビットディスプレースメント付
レジスタ間接
2
@RW0+RW7
インデックス付レジスタ間接
0
1D
@RW1+RW7
インデックス付レジスタ間接
0
1E
@PC+disp16
16 ビットディスプレースメント付 PC 間接
2
1F
addr16
直接アドレス
2
アドレス拡張部のバイト数は , 「B.8 F2MC-16LX 命令一覧表」の # ( バイト数 ) の "+" に当てはまります。
"#" の意味については「B.7 命令一覧表の読み方」を参照してください。
553
付録
B.7
命令一覧表の読み方
「B.8 F2MC-16LX 命令一覧表」で使用している項目の説明を表 B.7-1 に , 記号の説
明を表 B.7-2 に示します。
■ 命令の表示記号の説明
表 B.7-1 命令一覧表の項目の説明
項目
ニーモニック
説明
英大文字 , 記号 : アセンブラ上もそのまま表記します。
英小文字 : アセンブラ上では , 書き替えて記述します。
英小文字の後の数 : 命令中のビット幅を示します。
#
バイト数を示します。
∼
サイクル数を示します。
RG
命令実行時のレジスタアクセス回数を示します。
CPU 間欠動作時の補正値を算出するのに使用します。
B
オペレーション
LH
AH
命令実行時の実サイクル数の算出用補正値を示します。
命令実行時の実サイクルは∼欄の数値を加算したものとなります。
命令の動作を示します。
アキュムレータの bit15 ∼ bit8 に対する特殊動作を示します。
Z: 0 を転送する。
X: 符号を拡張して転送する。
− : 転送しない。
アキュムレータの上位 16 ビットに対する特殊動作を示します。
*: AL から AH へ転送する。
− : 転送しない。
Z: AH へ 00H を転送する。
X: AL の符号拡張で AH へ 00H または FFH を転送する。
I
I ( 割込み許可 ) , S ( スタック ) , T ( ステッキィビット ) ,
S
N ( ネガティブ ) , Z ( ゼロ ) , V ( オーバフロー ) , C ( キャリー )
T
の各フラグの状態を示します。
N
*: 命令の実行で変化する。
Z
− : 変化しない。
V
S: 命令の実行でセットされる。
C
R: 命令の実行でリセットされる。
RMW
554
リードモディファイライト命令 (1 命令でメモリなどからデータを読
み出し , メモリへ書き込む ) であるかどうか示します。
*: リードモディファイライト命令である。
− : リードモディファイライト命令ではない。
( 注意事項 )
読み書きで意味の異なるアドレスには使用できません。
付録 B 命令
表 B.7-2 命令一覧表の記号の説明 (1 / 2)
表記
A
意味
32 ビットアキュムレータ
命令により , 使用されるビット長が変わります。
バイト : AL の下位 8 ビット
ワード : AL の 16 ビット
ロング : AL: AH の 32 ビット
AH
A の上位 16 ビット
AL
A の下位 16 ビット
SP
スタックポインタ (USP or SSP)
PC
プログラムカウンタ
PCB
プログラムカウンタバンクレジスタ
DTB
データバンクレジスタ
ADB
アディショナルデータバンクレジスタ
SSB
システムスタックバンクレジスタ
USB
ユーザスタックバンクレジスタ
SPB
カレントスタックバンクレジスタ (SSB or USB)
DPR
ダイレクトページレジスタ
brg1
DTB, ADB, SSB, USB, DPR, PCB, SPB
brg2
DTB, ADB, SSB, USB, DPR, SPB
Ri
R0, R1, R2, R3, R4, R5, R6, R7
RWi
RW0, RW1, RW2, RW3, RW4, RW5, RW6, RW7
RWj
RW0, RW1, RW2, RW3
RLi
RL0, RL1, RL2, RL3
dir
短縮直接アドレス指定
addr16
直接アドレス指定
addr24
物理直接アドレス指定
ad24 0 ∼ 15
addr24 の bit0 ∼ bit15
ad24 16 ∼ 23
addr24 の bit16 ∼ bit23
io
I/O 領域 (000000H ∼ 0000FFH)
#imm4
4 ビット即値データ
#imm8
8 ビット即値データ
#imm16
16 ビット即値データ
#imm32
32 ビット即値データ
ext (imm8)
8 ビット即値データを符号拡張した 16 ビットデータ
555
付録
表 B.7-2 命令一覧表の記号の説明 (1 / 2)
表記
556
意味
disp8
8 ビットディスプレースメント
disp16
16 ビットディスプレースメント
bp
ビットオフセット値
vct4
ベクタ番号 (0 ∼ 15)
vct8
ベクタ番号 (0 ∼ 255)
()b
ビットアドレス
rel
PC 相対分岐指定
ear
実効アドレス指定 ( コード 00H ∼ 07H)
eam
実効アドレス指定 ( コード 08H ∼ 1FH)
rlst
レジスタ並び
付録 B 命令
B.8
F2MC-16LX 命令一覧表
F2MC-16LX で使用している命令の一覧を示します。
■ F2MC-16LX 命令一覧表
表 B.8-1 転送系命令 ( バイト ) 41 命令
#
∼
RG
B
LH
AH
I
S
T
N
Z
V
C
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
557
付録
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
558
付録 B 命令
表 B.8-3 加減算命令 ( バイト・ワード・ロングワード ) 42 命令
ニーモニック
#
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
ADD
A,#imm8
2
2
0
0
byte (A) ← (A) + imm8
Z
-
-
-
-
*
*
*
*
-
ADD
A,dir
2
5
0
(b)
byte (A) ← (A) + (dir)
Z
-
-
-
-
*
*
*
*
-
ADD
A,ear
2
3
1
0
byte (A) ← (A) + (ear)
Z
-
-
-
-
*
*
*
*
-
ADD
A,eam
2+
4 + (a)
0
(b)
byte (A) ← (A) + (eam)
Z
-
-
-
-
*
*
*
*
-
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
559
付録
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-5 比較命令 ( バイト・ワード・ロングワード ) 11 命令
ニーモニック
#
∼
RG
B
オペレーション
CMP
A
1
1
0
0
byte (AH) - (AL)
-
-
-
-
-
*
*
*
*
-
CMP
A,ear
2
2
1
0
byte (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMP
A,eam
2+
3+(a)
0
(b)
byte (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMP
A,#imm8
2
2
0
0
byte (A) - imm8
-
-
-
-
-
*
*
*
*
-
CMPW
A
1
1
0
0
word (AH) - (AL)
-
-
-
-
-
*
*
*
*
-
CMPW
A,ear
2
2
1
0
word (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMPW
A,eam
2+
3+(a)
0
(c)
word (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMPW
A,#imm16
3
2
0
0
word (A) - imm16
-
-
-
-
-
*
*
*
*
-
CMPL
A,ear
2
6
2
0
long (A) - (ear)
-
-
-
-
-
*
*
*
*
-
CMPL
A,eam
2+
7+(a)
0
(d)
long (A) - (eam)
-
-
-
-
-
*
*
*
*
-
CMPL
A,#imm32
5
3
0
0
long (A) - imm32
-
-
-
-
-
*
*
*
*
-
( 注意事項 ) 表中の (a) ∼ (d) は , 表 B.5-1 および表 B.5-2 を参照してください。
560
付録 B 命令
表 B.8-6 符号なし乗除算命令 ( ワード・ロングワード ) 11 命令
ニーモニック
#
∼
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
DIVU
A
1
*1
0
0
word (AH) / byte (AL)
商→ byte (AL) 余り→ byte (AH)
-
-
-
-
-
-
-
*
*
-
DIVU
A,ear
2
*2
1
0
word (A) / byte (ear)
商→ byte (A) 余り→ byte (ear)
-
-
-
-
-
-
-
*
*
-
DIVU
A,eam
2+
*3
0
*6
word (A) / byte (eam)
商→ byte (A) 余り→ byte (eam)
-
-
-
-
-
-
-
*
*
-
DIVUW
A,ear
2
*4
1
0
long (A) / word (ear)
商→ word (A) 余り→ word (ear)
-
-
-
-
-
-
-
*
*
-
DIVUW
A,eam
2+
*5
0
*7
long (A) / word (eam)
商→ word (A) 余り→ word (eam)
-
-
-
-
-
-
-
*
*
-
MULU
MULU
A
1
*8
0
0
byte (AH) * byte (AL) → word (A)
-
-
-
-
-
-
-
-
-
-
A,ear
2
*9
1
0
byte (A) * byte (ear) → word (A)
-
-
-
-
-
-
-
-
-
-
MULU
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
561
付録
表 B.8-7 符号付き乗除算命令 ( ワード・ロングワード ) 11 命令
ニーモニック
#
∼
RG
B
LH
AH
I
S
T
N
Z
V
C RMW
DIV
A
2
*1
0
0
word (AH) / byte (AL)
商 --> byte (AL) 余り→ byte (AH)
Z
-
-
-
-
-
-
*
*
-
DIV
A,ear
2
*2
1
0
word (A) / byte (ear)
商 --> byte (A) 余り→ byte (ear)
Z
-
-
-
-
-
-
*
*
-
DIV
A,eam
2+
*3
0
*6
word (A) / byte (eam)
商→ byte (A) 余り→ byte (eam)
Z
-
-
-
-
-
-
*
*
-
DIVW
A,ear
2
*4
1
0
long (A) / word (ear)
商 --> word (A) 余り→ word (ear)
-
-
-
-
-
-
-
*
*
-
DIVW
A,eam
2+
*5
0
*7
long (A) / word (eam)
商→ word (A) 余り→ word (eam)
-
-
-
-
-
-
-
*
*
-
MUL
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
562
付録 B 命令
表 B.8-8 論理 1 命令 ( バイト・ワード ) 39 命令
ニーモニック
#
∼
RG
B
AND
A,#imm8
2
2
0
0
AND
A,ear
2
3
1
0
LH
AH
I
S
T
N
Z
V
C RMW
byte (A) ← (A) and imm8
-
-
-
-
-
*
*
R
-
-
byte (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
オペレーション
AND
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
AND
ear,A
2
3
2
0
byte (ear) ← (ear) and (A)
-
-
-
-
-
*
*
R
-
-
AND
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) and (A)
-
-
-
-
-
*
*
R
-
*
OR
A,#imm8
2
2
0
0
byte (A) ← (A) or imm8
-
-
-
-
-
*
*
R
-
-
OR
A,ear
2
3
1
0
byte (A) ← (A) or (ear)
-
-
-
-
-
*
*
R
-
-
OR
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) or (eam)
-
-
-
-
-
*
*
R
-
-
OR
ear,A
2
3
2
0
byte (ear) ← (ear) or (A)
-
-
-
-
-
*
*
R
-
-
OR
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) or (A)
-
-
-
-
-
*
*
R
-
*
XOR
A,#imm8
2
2
0
0
byte (A) ← (A) xor imm8
-
-
-
-
-
*
*
R
-
-
XOR
A,ear
2
3
1
0
byte (A) ← (A) xor (ear)
-
-
-
-
-
*
*
R
-
-
XOR
A,eam
2+
4+(a)
0
(b)
byte (A) ← (A) xor (eam)
-
-
-
-
-
*
*
R
-
-
XOR
ear,A
2
3
2
0
byte (ear) ← (ear) xor (A)
-
-
-
-
-
*
*
R
-
-
XOR
eam,A
2+
5+(a)
0
2 × (b)
byte (eam) ← (eam) xor (A)
-
-
-
-
-
*
*
R
-
*
NOT
A
1
2
0
0
byte (A) ← not (A)
-
-
-
-
-
*
*
R
-
-
NOT
ear
2
3
2
0
byte (ear) ← not (ear)
-
-
-
-
-
*
*
R
-
-
NOT
eam
2+
5+(a)
0
2 × (b)
byte (eam) ← not (eam)
-
-
-
-
-
*
*
R
-
*
ANDW
A
1
2
0
0
word (A) ← (AH) and (A)
-
-
-
-
-
*
*
R
-
-
ANDW
A,#imm16
3
2
0
0
word (A) ← (A) and imm16
-
-
-
-
-
*
*
R
-
-
ANDW
A,ear
2
3
1
0
word (A) ← (A) and (ear)
-
-
-
-
-
*
*
R
-
-
ANDW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) and (eam)
-
-
-
-
-
*
*
R
-
-
ANDW
ear,A
2
3
2
0
word (ear) ← (ear) and (A)
-
-
-
-
-
*
*
R
-
-
ANDW
eam,A
2+
5+(a)
0
2 × (c)
word (eam) ← (eam) and (A)
-
-
-
-
-
*
*
R
-
*
ORW
A
1
2
0
0
word (A) ← (AH) or (A)
-
-
-
-
-
*
*
R
-
-
ORW
A,#imm16
3
2
0
0
word (A) ← (A) or imm16
-
-
-
-
-
*
*
R
-
-
ORW
A,ear
2
3
1
0
word (A) ← (A) or (ear)
-
-
-
-
-
*
*
R
-
-
ORW
A,eam
2+
4+(a)
0
(c)
word (A) ← (A) or (eam)
-
-
-
-
-
*
*
R
-
-
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
563
付録
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-11 ノーマライズ命令 ( ロングワード ) 1 命令
ニーモニック
NRML
A,R0
#
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
2
*1
1
0
long (A) ← 最初に "1" が立っていた所まで左
シフトする
byte (R0) ← その場合のシフト回数
-
-
-
-
-
-
*
-
-
*1:アキュムレータがすべて "0" であった場合は , 4 "0" 以外であった場合は , 6+(R0)
564
-
付録 B 命令
表 B.8-12 シフト命令 ( バイト・ワード・ロングワード ) 18 命令
ニーモニック
#
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
RORC
A
2
2
0
0
byte (A) ← 右ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
ROLC
A
2
2
0
0
byte (A) ← 左ローテートキャリー付
-
-
-
-
-
*
*
-
*
-
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
565
付録
表 B.8-13 分岐命令 1 31 命令
#
ニーモニック
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
BZ/BEQ
rel
2
*1
0
0
(Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNZ/BNE
rel
2
*1
0
0
(Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BC/BLO
rel
2
*1
0
0
(C) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNC/BHS
rel
2
*1
0
0
(C) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BN
rel
2
*1
0
0
(N) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BP
rel
2
*1
0
0
(N) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BV
rel
2
*1
0
0
(V) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNV
rel
2
*1
0
0
(V) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BT
rel
2
*1
0
0
(T) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BNT
rel
2
*1
0
0
(T) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLT
rel
2
*1
0
0
(V) xor (N) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BGE
rel
2
*1
0
0
(V) xor (N) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLE
rel
2
*1
0
0
((V) xor (N)) or (Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BGT
rel
2
*1
0
0
((V) xor (N)) or (Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BLS
rel
2
*1
0
0
(C) or (Z) = 1 の場合分岐
-
-
-
-
-
-
-
-
-
-
BHI
rel
2
*1
0
0
(C) or (Z) = 0 の場合分岐
-
-
-
-
-
-
-
-
-
-
BRA
rel
2
*1
0
0
無条件分岐
-
-
-
-
-
-
-
-
-
-
JMP
@A
1
2
0
0
word (PC) ← (A)
-
-
-
-
-
-
-
-
-
-
JMP
addr16
3
3
0
0
word (PC) ← addr16
-
-
-
-
-
-
-
-
-
-
JMP
@ear
2
3
1
0
word (PC) ← (ear)
-
-
-
-
-
-
-
-
-
-
JMP
@eam
2+
4+(a)
0
(c)
word (PC) ← (eam)
-
-
-
-
-
-
-
-
-
-
JMPP
@ear
注 1)
2
5
2
0
word (PC) ← (ear), (PCB) ← (ear+2)
-
-
-
-
-
-
-
-
-
-
JMPP
@eam
注 1)
2+
6+(a)
0
(d)
word (PC) ← (eam), (PCB) ← (eam+2)
-
-
-
-
-
-
-
-
-
-
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
566
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
付録 B 命令
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
567
付録
表 B.8-15 その他制御命令 ( バイト・ワード・ロングワード ) 28 命令
ニーモニック
#
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
PUSHW
A
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (A)
-
-
-
-
-
-
-
-
-
-
PUSHW
AH
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (AH)
-
-
-
-
-
-
-
-
-
-
PUSHW
PS
1
4
0
(c)
word (SP) ← (SP) - 2, ((SP)) ← (PS)
-
-
-
-
-
-
-
-
-
-
PUSHW
rlst
2
*3
*5
*4
(SP) ← (SP) - 2n, ((SP)) ← (rlst)
-
-
-
-
-
-
-
-
-
-
POPW
A
1
3
0
(c)
word (A) ← ((SP)), (SP) ← (SP) + 2
-
*
-
-
-
-
-
-
-
-
POPW
AH
1
3
0
(c)
word (AH) ← ((SP)), (SP) ← (SP) + 2
-
-
-
-
-
-
-
-
-
-
POPW
PS
1
4
0
(c)
word (PS) ← ((SP)), (SP) ← (SP) + 2
-
-
*
*
*
*
*
*
*
-
POPW
rlst
2
*2
*5
*4
(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) は , 表 B.5-1 および表 B.5-2 を参照してください。
568
付録 B 命令
表 B.8-16 ビット操作命令 21 命令
#
ニーモニック
∼
RG
B
オペレーション
LH
AH
I
S
T
N
Z
V
C RMW
MOVB
A,dir:bp
3
5
0
(b)
byte (A) ← (dir:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
A,addr16:bp
4
5
0
(b)
byte (A) ← (addr16:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
A,io:bp
3
4
0
(b)
byte (A) ← (io:bp)b
Z
*
-
-
-
*
*
-
-
-
MOVB
dir:bp,A
3
7
0
2 × (b) bit (dir:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
MOVB
addr16:bp,A
4
7
0
2 × (b) bit (addr16:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
MOVB
io:bp,A
3
6
0
2 × (b) bit (io:bp)b ← (A)
-
-
-
-
-
*
*
-
-
*
SETB
dir:bp
3
7
0
2 × (b) bit (dir:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
SETB
addr16:bp
4
7
0
2 × (b) bit (addr16:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
SETB
io:bp
3
7
0
2 × (b) bit (io:bp)b ← 1
-
-
-
-
-
-
-
-
-
*
CLRB
dir:bp
3
7
0
2 × (b) bit (dir:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
CLRB
addr16:bp
4
7
0
2 × (b) bit (addr16:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
CLRB
io:bp
3
7
0
2 × (b) bit (io:bp)b ← 0
-
-
-
-
-
-
-
-
-
*
BBC
dir:bp,rel
4
*1
0
(b)
(dir:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBC
addr16:bp,rel
5
*1
0
(b)
(addr16:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBC
io:bp,rel
4
*2
0
(b)
(io:bp) b = 0 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
dir:bp,rel
4
*1
0
(b)
(dir:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
addr16:bp,rel
5
*1
0
(b)
(addr16:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
BBS
io:bp,rel
4
*2
0
(b)
(io:bp) b = 1 の場合分岐
-
-
-
-
-
-
*
-
-
-
SBBS
addr16:bp,rel
5
*3
0
-
-
-
-
-
-
*
-
-
*
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) は , 表 B.5-1 および表 B.5-2 を参照してください。
表 B.8-17 アキュムレータ操作命令 ( バイト・ワード ) 6 命令
#
∼
RG
B
SWAP
1
3
0
0
byte (A)0-7 ←→ (A)8-15
-
-
-
-
-
-
-
-
-
-
SWAPW
1
2
0
0
word (AH) ←→ (AL)
-
*
-
-
-
-
-
-
-
-
EXT
1
1
0
0
byte 符号拡張
X
-
-
-
-
*
*
-
-
-
ニーモニック
オペレーション
EXTW
1
2
0
0
word 符号拡張
-
X
-
-
-
*
*
-
-
-
ZEXT
1
1
0
0
byte ゼロ拡張
Z
-
-
-
-
R
*
-
-
-
ZEXTW
1
1
0
0
word ゼロ拡張
-
Z
-
-
-
R
*
-
-
-
569
付録
表 B.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) は , 表 B.5-1 および表 B.5-2 を参照してください。
570
付録 B 命令
B.9
命令マップ
F2MC-16LX の命令コードは , 1 ∼ 2 バイトで構成されていますので , 命令マップは
複数のページで構成されています。
F2MC-16LX の命令マップを示します。
■ 命令マップの構造
図 B.9-1 命令マップの構造
基本ページマップ
ビット操作系命令
文字列操作系命令
2 バイト系命令
:第 1 バイト
ea 系命令× 9
:第 2 バイト
1 バイトで終わる命令 (NOP 命令など ) は基本ページで完結し , 2 バイト必要とする命
令 (MOVS 命令など ) は第 1 バイトを参照した段階で第 2 バイト用のマップの存在がわ
かり , 第 2 バイト用のマップを参照して続く 1 バイトを調べることができます。
実際の命令コードと命令マップの対応を図 B.9-2 に示します。
571
付録
図 B.9-2 実際の命令コードと命令マップの対応
命令によっては
ない場合もある
命令によって
長さが異なる
命令コード 第 1 バイト
第 2 バイト
オペランド
オペランド
・・・
[ 基本ページマップ ]
XY
+Z
[ 拡張ページマップ ]*
UV
+W
*:拡張ページマップとはビット操作系命令・文字列操作系命令・2 バイト系命令・ea 系
命令の総称で , 実際は各系列の命令ごとに複数存在します。
命令コードの例を表 B.9-1 に示します。
表 B.9-1 命令コードの例
第 1 バイト
( 基本ページマップより )
第 2 バイト
( 拡張ページマップより )
NOP
00 + 0=00
―
AND A, #8
30 + 4=34
―
MOV A, ADB
60 + F=6F
00 + 0=00
CBNE @RW2+d8, #8, rel
70 + 0=70
F0 + 2=F2
命令
572
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
付録 B 命令
表 B.9-2 基本ページマップ
573
574
+F
+E
+D
+C
+B
+A
+9
+8
+7
+6
+5
+4
+3
+2
+1
+0
10
MOVB
io:bp, A
20
30
CLRB
io:bp
40
50
SETB
io:bp
60
70
BBC
io;bp, rel
80
90
BBS
io:bp, rel
A0
B0
MOVB
MOVB A, MOVB
MOVB
CLRB
CLRB
SETB
SETB
BBC
BBC
BBS
BBS
A, dir:bp addr16:bp
dir:bp, A addr16:bp,A
dir:bp addr16:bp
dir:bp addr16:bp dir:bp, rel addr16:bp,rel dir:bp, rel addr16:bp,rel
MOVB
A, io:bp
00
WBTS
io:bp
C0
D0
WBTC
io:bp
E0
SBBS
addr16:bp
F0
付録
表 B.9-3 ビット操作系命令マップ ( 第 1 バイト =6CH)
MOVSI
MOVSD
PCB, PCB
PCB, DTB
PCB, ADB
PCB, SPB
DTB, PCB
DTB, DTB
DTB, ADB
DTB, SPB
ADB, PCB
ADB, DTB
ADB, ADB
ADB, SPB
SPB, PCB
SPB, DTB
SPB, ADB
SPB, SPB
+1
+2
+3
+4
+5
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
10
+0
00
MOVSWI
20
MOVSWD
30
40
50
60
70
90
A0
B0
C0
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SPB
ADB
DTB
SCEQI
SCEQD
SCWEQI SCWEQD FILSI
PCB
PCB
PCB
PCB
PCB
80
D0
SPB
ADB
DTB
FILSWI
PCB
E0
F0
付録 B 命令
表 B.9-4 文字列操作系命令マップ ( 第 1 バイト =6EH)
575
576
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
付録
表 B.9-5 2 バイト系命令マップ ( 第 1 バイト =6FH)
@PC+d16, CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
使用禁止
使用禁止
+E A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
ADDL
ADDL A, SUBL
SUBL A,
A,@RW3+
addr16 A,@RW3+
addr16
SUBL
SUBL
SUBL A,
SUBL A,
addr16, CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16 A,@RW3+
addr16
@RW1+RW7 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
使用禁止
+D A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
+F
使用禁止
@RW0+RW7 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
使用禁止
+C A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
ADDL A,
@RW3, @RW3+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
+B
ADDL
使用禁止
@RW2, @RW2+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
+A
ADDL A,
@RW1, @RW1+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
+9
ADDL
@RW0+RW7,
#8, rel
使用禁止
@RW0, @RW0+d16 CMPL
CMPL A,
ANDL
ANDL A,
ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
ADDL
ADDL A,
SUBL
SUBL A,
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
+8
SUBL A,
RW7, @RW7+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL3 @RW7+d8
A, RL3 @RW7+d8
A, RL3 @RW7+d8
A, RL3 @RW7+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL3 @RW7+d8
A, RL3 @RW7+d8
+7
SUBL
RW6, @RW6+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL3 @RW6+d8
A, RL3 @RW6+d8
A, RL3 @RW6+d8
A, RL3 @RW6+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL3 @RW6+d8
A, RL3 @RW6+d8
+6
ADDL A,
RW5, @RW5+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL2 @RW5+d8
A, RL2 @RW5+d8
A, RL2 @RW5+d8
A, RL2 @RW5+d8
ADDL
ADDL A, SUBL
SUBL A,
A, RL2 @RW5+d8
A, RL2 @RW5+d8
+5
ADDL
@RW3, @RW3+d16,
#8, rel
#8, rel
RW4, @RW4+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL2 @RW4+d8
A, RL2 @RW4+d8
A, RL2 @RW4+d8
A, RL2 @RW4+d8
使用禁止
addr16,
#8, rel
@PC+d16,
#8, rel
@RW1+RW7,
#8, rel
@RW2, @RW2+d16,
#8, rel
#8, rel
@RW1, @RW1+d16,
#8, rel
#8, rel
@RW0, @RW0+d16,
#8, rel
#8, rel
R7, @RW7+d8,
#8, rel
#8, rel
R6, @RW6+d8,
#8, rel
#8, rel
R5, @RW5+d8,
#8, rel
#8, rel
R4, @RW4+d8,
#8, rel
#8, rel
R3, @RW3+d8,
#8, rel
#8, rel
R2, @RW2+d8,
#8, rel
#8, rel
R1, @RW1+d8,
#8, rel
#8, rel
ADDL
ADDL A, SUBL
SUBL A,
A, RL2 @RW4+d8
A, RL2 @RW4+d8
CBNE↓
F0
R0, @RW0+d8,
#8, rel
#8, rel
CBNE↓
E0
+4
D0
RW3, @RW3+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL1 @RW3+d8
A, RL1 @RW3+d8
A, RL1 @RW3+d8
A, RL1 @RW3+d8
C0
ADDL
ADDL A, SUBL
SUBL A,
A, RL1 @RW3+d8
A, RL1 @RW3+d8
B0
+3
A0
RW2, @RW2+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL1 @RW2+d8
A, RL1 @RW2+d8
A, RL1 @RW2+d8
A, RL1 @RW2+d8
90
ADDL
ADDL A, SUBL
SUBL A,
A, RL1 @RW2+d8
A, RL1 @RW2+d8
80
+2
70
RW1, @RW1+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL0 @RW1+d8
A, RL0 @RW1+d8
A, RL0 @RW1+d8
A, RL0 @RW1+d8
CWBNE↓
CWBNE↓
60
ADDL
ADDL A, SUBL
SUBL A,
A, RL0 @RW1+d8
A, RL0 @RW1+d8
50
40
+1
30
+0
20
RW0, @RW0+d8 CMPL
CMPL A, ANDL
ANDL A, ORL
ORL A,
XORL
XORL A,
#16, rel
#16, rel
A, RL0 @RW0+d8
A, RL0 @RW0+d8
A, RL0 @RW0+d8
A, RL0 @RW0+d8
10
ADDL
ADDL A, SUBL
SUBL A,
A, RL0 @RW0+d8
A, RL0 @RW0+d8
00
付録 B 命令
表 B.9-6 ea 系命令 その 1 ( 第 1 バイト =70H)
577
578
+F @@RW3+
JMPP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW2+ @PC+d16
@RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+,A @PC+d16, A @RW2+, #8 @PC+d16, #8 A,@RW2+ @PC+d16
CALLP
CALLP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@addr16 @@RW3+ @addr16 @RW3+
addr16 @RW3+
addr16 A,@RW3+
addr16 @RW3+,A
addr16, A @RW3+, #8
addr16, #8 A,@RW3+
addr16
JMPP
JMPP
CALLP @
+E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+,A @RW1+RW7,A @RW1+, #8 @RW1+RW7,#8 A,@RW1+ @RW1+RW7
JMPP @
+D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7
JMPP
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+,A @RW0+RW7,A @RW0+, #8 @RW0+RW7,#8 A,@RW0+ @RW0+RW7
CALLP @
JMPP
JMPP @
CALLP
CALLP @
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW3 @RW3+d16 @@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3,A @RW3+d16,A @RW3, #8 @RW3+d16,#8
A,@RW3 @RW3+d16
+B
CALLP
JMPP
JMPP @
CALLP
CALLP @
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW2 @RW2+d16 @@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2,A @RW2+d16,A @RW2, #8 @RW2+d16,#8
A,@RW2 @RW2+d16
+A
JMPP @
JMPP
JMPP @
CALLP
CALLP @
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW1 @RW1+d16 @@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1,A @RW1+d16,A @RW1, #8 @RW1+d16,#8
A,@RW1 @RW1+d16
+9
JMPP
JMPP
JMPP @
CALLP
CALLP @
INCL
INCL
DECL
DECL
MOVL
MOVL A,
MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@@RW0 @RW0+d16 @@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #8 @RW0+d16,#8
A,@RW0 @RW0+d16
+8
+C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL3 @@RW7+d8
@RL3 @@RW7+d8
RL3 @RW7+d8
RL3 @RW7+d8
A, RL3 @RW7+d8
RL3, A @RW7+d8,A
R7, #8 @RW7+d8,#8
A, RW7 @RW7+d8
F0
+7
E0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL3 @@RW6+d8
@RL3 @@RW6+d8
RL3 @RW6+d8
RL3 @RW6+d8
A, RL3 @RW6+d8
RL3, A @RW6+d8,A
R6, #8 @RW6+d8,#8
A, RW6 @RW6+d8
D0
+6
C0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL2 @@RW5+d8
@RL2 @@RW5+d8
RL2 @RW5+d8
RL2 @RW5+d8
A, RL2 @RW5+d8
RL2, A @RW5+d8,A
R5, #8 @RW5+d8,#8
A, RW5 @RW5+d8
B0
+5
A0
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL2 @@RW4+d8
@RL2 @@RW4+d8
RL2 @RW4+d8
RL2 @RW4+d8
A, RL2 @RW4+d8
RL2, A @RW4+d8,A
R4, #8 @RW4+d8,#8
A, RW4 @RW4+d8
90
+4
80
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL1 @@RW3+d8
@RL1 @@RW3+d8
RL1 @RW3+d8
RL1 @RW3+d8
A, RL1 @RW3+d8
RL1, A @RW3+d8,A
R3, #8 @RW3+d8,#8
A, RW3 @RW3+d8
70
+3
60
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL1 @@RW2+d8
@RL1 @@RW2+d8
RL1 @RW2+d8
RL1 @RW2+d8
A, RL1 @RW2+d8
RL1, A @RW2+d8,A
R2, #8 @RW2+d8,#8
A, RW2 @RW2+d8
50
+2
40
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL0 @@RW1+d8
@RL0 @@RW1+d8
RL0 @RW1+d8
RL0 @RW1+d8
A, RL0 @RW1+d8
RL0, A @RW1+d8,A
R1, #8 @RW1+d8,#8
A, RW1 @RW1+d8
30
+1
20
JMPP
JMPP
CALLP
CALLP
INCL
INCL
DECL
DECL
MOVL
MOVL A, MOVL
MOVL
MOV
MOV
MOVEA
MOVEA A,
@RL0 @@RW0+d8
@RL0 @@RW0+d8
RL0 @RW0+d8
RL0 @RW0+d8
A, RL0 @RW0+d8
RL0, A @RW0+d8,A
R0, #8 @RW0+d8,#8
A, RW0 @RW0+d8
10
+0
00
付録
表 B.9-7 ea 系命令 その 2 ( 第 1 バイト =71H)
D0
E0
F0
MOVX
MOVX A,
XCH
XCH A,
A,@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7
MOVX
MOVX A,
XCH
XCH A,
A,@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A,
MOV
MOV
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV A,
MOV
MOV
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A A,@RW2+ @PC+d16 A,@RW2+ @PC+d16
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16 A,@RW3+
addr16 @RW3+, A
addr16, A A,@RW3+
addr16 A,@RW3+
addr16
+D
+E
+F
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R7 @RW7+d8
A, R7 @RW7+d8
R7, A @RW7+d8,A
A, R7 @RW7+d8
A, R7 @RW7+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R6 @RW6+d8
A, R6 @RW6+d8
R6, A @RW6+d8,A
A, R6 @RW6+d8
A, R6 @RW6+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R5 @RW5+d8
A, R5 @RW5+d8
R5, A @RW5+d8,A
A, R5 @RW5+d8
A, R5 @RW5+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R4 @RW4+d8
A, R4 @RW4+d8
R4, A @RW4+d8,A
A, R4 @RW4+d8
A, R4 @RW4+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R3 @RW3+d8
A, R3 @RW3+d8
R3, A @RW3+d8,A
A, R3 @RW3+d8
A, R3 @RW3+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R2 @RW2+d8
A, R2 @RW2+d8
R2, A @RW2+d8,A
A, R2 @RW2+d8
A, R2 @RW2+d8
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R1 @RW1+d8
A, R1 @RW1+d8
R1, A @RW1+d8,A
A, R1 @RW1+d8
A, R1 @RW1+d8
+C
INC
DEC
R7 @RW7+d8
C0
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A
A,@RW3 @RW3+d16 A,@RW3 @RW3+d16
ROLC
RORC
RORC
INC
R7 @RW7+d8
R7 @RW7+d8
ROLC
INC
DEC
R6 @RW6+d8
B0
+B
ROLC
RORC
RORC
INC
R6 @RW6+d8
R6 @RW6+d8
ROLC
INC
DEC
R5 @RW5+d8
A0
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A
A,@RW2 @RW2+d16 A,@RW2 @RW2+d16
ROLC
RORC
RORC
INC
R5 @RW5+d8
R5 @RW5+d8
ROLC
INC
DEC
R4 @RW4+d8
90
+A
ROLC
RORC
RORC
INC
R4 @RW4+d8
R4 @RW4+d8
ROLC
INC
DEC
R3 @RW3+d8
INC
DEC
R2 @RW2+d8
INC
DEC
R1 @RW1+d8
80
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
R0 @RW0+d8
A, R0 @RW0+d8
R0, A @RW0+d8,A
A, R0 @RW0+d8
A, R0 @RW0+d8
70
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A
A,@RW1 @RW1+d16 A,@RW1 @RW1+d16
ROLC
RORC
RORC
INC
R3 @RW3+d8
R3 @RW3+d8
ROLC
60
INC
DEC
R0 @RW0+d8
50
+9
ROLC
RORC
RORC
INC
R2 @RW2+d8
R2 @RW2+d8
ROLC
40
ROLC
ROLC
RORC
RORC
INC
INC
DEC
DEC
MOV
MOV
A, MOV
MOV
MOVX
MOVX A, XCH
XCH
A,
@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0, A @RW0+d16,A
A,@RW0 @RW0+d16 A,@RW0 @RW0+d16
ROLC
RORC
RORC
INC
R1 @RW1+d8
R1 @RW1+d8
ROLC
30
ROLC
RORC
RORC
INC
R0 @RW0+d8
R0 @RW0+d8
20
ROLC
10
+8
+7
+6
+5
+4
+3
+2
+1
+0
00
付録 B 命令
表 B.9-8 ea 系命令 その 3 ( 第 1 バイト =72H)
579
580
+F @@RW3+
JMP
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW2+
@PC+d16 @RW2+ @PC+d16 A,@RW2+ @PC+d16 @RW2+, A @PC+d16, A @RW2+, #16 @PC+d16, #16 A,@RW2+ @PC+d16
CALL
CALL
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@addr16 @@RW3+ @addr16 @RW3+
addr16 @RW3+
addr16 A,@RW3+
addr16 @RW3+, A
addr16, A @RW3+, #16
addr16, #16 A,@RW3+
addr16
JMP
JMP
XCHW
XCHW A,
A,@RW1+ @RW1+RW7
+E @@RW2+ @@PC+d16 @@RW2+ @@PC+d16
CALL @
MOVW
MOVW
@RW1+, #16 @RW1+RW7,#16
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A,
MOVW
MOVW
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 A,@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A
JMP @
JMP
+D @@RW1+ @RW1+RW7 @@RW1+ @RW1+RW7
XCHW
XCHW A,
A,@RW0+ @RW0+RW7
MOVW
MOVW
@RW0+, #16 @RW0+RW7,#16
INCW
INCW
DECW
DECW
MOVW
MOVW A,
MOVW
MOVW
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 A,@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A
CALL @
JMP
JMP @
CALL
CALL @
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW3 @RW3+d16 @@RW3 @RW3+d16
@RW3 @RW3+d16
@RW3 @RW3+d16 A,@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, #16 @RW3+d16,#16
A,@RW3 @RW3+d16
+B
CALL
JMP
JMP @
CALL
CALL @
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW2 @RW2+d16 @@RW2 @RW2+d16
@RW2 @RW2+d16
@RW2 @RW2+d16 A,@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, #16 @RW2+d16,#16
A,@RW2 @RW2+d16
+A
JMP @
JMP
JMP @
CALL
CALL @
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW1 @RW1+d16 @@RW1 @RW1+d16
@RW1 @RW1+d16
@RW1 @RW1+d16 A,@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, #16 @RW1+d16,#16
A,@RW1 @RW1+d16
+9
JMP
JMP
JMP @
CALL
CALL @
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@@RW0 @RW0+d16 @@RW0 @RW0+d16
@RW0 @RW0+d16
@RW0 @RW0+d16 A,@RW0 @RW0+d16 @RW0,A @RW0+d16,A @RW0, #16 @RW0+d16,#16
A,@RW0 @RW0+d16
+8
+C @@RW0+ @RW0+RW7 @@RW0+ @RW0+RW7
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW7 @@RW7+d8
@RW7 @@RW7+d8
RW7 @RW7+d8
RW7 @RW7+d8
A, RW7 @RW7+d8
RW7, A @RW7+d8,A
RW7, #16 @RW7+d8,#16
A, RW7 @RW7+d8
F0
+7
E0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW6 @@RW6+d8
@RW6 @@RW6+d8
RW6 @RW6+d8
RW6 @RW6+d8
A, RW6 @RW6+d8
RW6, A @RW6+d8,A
RW6, #16 @RW6+d8,#16
A, RW6 @RW6+d8
D0
+6
C0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW5 @@RW5+d8
@RW5 @@RW5+d8
RW5 @RW5+d8
RW5 @RW5+d8
A, RW5 @RW5+d8
RW5, A @RW5+d8,A
RW5, #16 @RW5+d8,#16
A, RW5 @RW5+d8
B0
+5
A0
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW4 @@RW4+d8
@RW4 @@RW4+d8
RW4 @RW4+d8
RW4 @RW4+d8
A, RW4 @RW4+d8
RW4, A @RW4+d8,A
RW4, #16 @RW4+d8,#16
A, RW4 @RW4+d8
90
+4
80
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW3 @@RW3+d8
@RW3 @@RW3+d8
RW3 @RW3+d8
RW3 @RW3+d8
A, RW3 @RW3+d8
RW3, A @RW3+d8,A
RW3, #16 @RW3+d8,#16
A, RW3 @RW3+d8
70
+3
60
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW2 @@RW2+d8
@RW2 @@RW2+d8
RW2 @RW2+d8
RW2 @RW2+d8
A, RW2 @RW2+d8
RW2, A @RW2+d8,A
RW2, #16 @RW2+d8,#16
A, RW2 @RW2+d8
50
+2
40
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW1 @@RW1+d8
@RW1 @@RW1+d8
RW1 @RW1+d8
RW1 @RW1+d8
A, RW1 @RW1+d8
RW1, A @RW1+d8,A
RW1, #16 @RW1+d8,#16
A, RW1 @RW1+d8
30
+1
20
JMP
JMP
CALL
CALL
INCW
INCW
DECW
DECW
MOVW
MOVW A, MOVW
MOVW
MOVW
MOVW
XCHW
XCHW A,
@RW0 @@RW0+d8
@RW0 @@RW0+d8
RW0 @RW0+d8
RW0 @RW0+d8
A, RW0 @RW0+d8
RW0, A @RW0+d8,A
RW0, #16 @RW0+d8,#16
A, RW0 @RW0+d8
10
+0
00
付録
表 B.9-9 ea 系命令 その 4 ( 第 1 バイト =73H)
ADD
ADD
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
付録 B 命令
表 B.9-10 ea 系命令 その 5 ( 第 1 バイト =74H)
581
582
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
付録
表 B.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
付録 B 命令
表 B.9-12 ea 系命令 その 7 ( 第 1 バイト =76H)
583
584
ORW
ORW
XORW
XORW
NOTW
NOTW
RW6, A @RW6+d8, A
RW6, A @RW6+d8, A
RW6 @RW6+d8
ORW
ORW
XORW
XORW
NOTW
NOTW
RW7, A @RW7+d8, A
RW7, A @RW7+d8, A
RW7 @RW7+d8
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW6, A @RW6+d8, A
RW6, A @RW6+d8, A
A, RW6 @RW6+d8
RW6 @RW6+d8
RW6, A @RW6+d8, A
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW7, A @RW7+d8, A
RW7, A @RW7+d8, A
A, RW7 @RW7+d8
RW7 @RW7+d8
RW7, A @RW7+d8, A
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW0, A @RW0+d16,A @RW0, A @RW0+d16,A A, @RW0 @RW0+d16
@RW0 @RW0+d16 @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A @RW0, A @RW0+d16,A
@RW0 @RW0+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW1, A @RW1+d16,A @RW1, A @RW1+d16,A A, @RW1 @RW1+d16
@RW1 @RW1+d16 @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A @RW1, A @RW1+d16,A
@RW1 @RW1+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW2, A @RW2+d16,A @RW2, A @RW2+d16,A A, @RW2 @RW2+d16
@RW2 @RW2+d16 @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A @RW2, A @RW2+d16,A
@RW2 @RW2+d16
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW3, A @RW3+d16,A @RW3, A @RW3+d16,A A, @RW3 @RW3+d16
@RW3 @RW3+d16 @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A @RW3, A @RW3+d16,A
@RW3 @RW3+d16
ADDW
ADDW
SUBW
SUBW
SUBCW
SUBCW A,
NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A A,@RW0+ @RW0+RW7
@RW0+ @RW0+RW7 @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A @RW0+, A @RW0+RW7,A
@RW0+ @RW0+RW7
ADDW
ADDW
SUBW
SUBW
SUBCW
SUBCW A,
NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
@RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A A,@RW1+ @RW1+RW7
@RW1+ @RW1+RW7 @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A @RW1+, A @RW1+RW7,A
@RW1+ @RW1+RW7
SUBW
SUBW
@RW2+, A @PC+d16,A
SUBW
SUBW
@RW3+, A addr16, A
ADDW
ADDW
@RW2+, A @PC+d16,A
ADDW
ADDW
@RW3+, A addr16, A
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
SUBCW
SUBCW A, NEGW
NEGW
ANDW
ANDW
A,@RW3+
addr16 @RW3+
addr16 @RW3+, A addr16, A
ORW
ORW
@RW3+, A addr16, A
XORW
XORW
@RW3+, A addr16, A
NOTW
NOTW
@RW3+
addr16
SUBCW
SUBCW A, NEGW
NEGW
ANDW
ANDW
ORW
ORW
XORW
XORW
NOTW
NOTW
A,@RW2+ @PC+d16
@RW2+ @PC+d16 @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A @RW2+, A @PC+d16,A
@RW2+ @PC+d16
ORW
ORW
XORW
XORW
NOTW
NOTW
RW5, A @RW5+d8, A
RW5, A @RW5+d8, A
RW5 @RW5+d8
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW5, A @RW5+d8, A
RW5, A @RW5+d8, A
A, RW5 @RW5+d8
RW5 @RW5+d8
RW5, A @RW5+d8, A
+5
F0
ORW
ORW
XORW
XORW
NOTW
NOTW
RW4, A @RW4+d8, A
RW4, A @RW4+d8, A
RW4 @RW4+d8
E0
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW4, A @RW4+d8, A
RW4, A @RW4+d8, A
A, RW4 @RW4+d8
RW4 @RW4+d8
RW4, A @RW4+d8, A
D0
+4
C0
ORW
ORW
XORW
XORW
NOTW
NOTW
RW3, A @RW3+d8, A
RW3, A @RW3+d8, A
RW3 @RW3+d8
B0
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW3, A @RW3+d8, A
RW3, A @RW3+d8, A
A, RW3 @RW3+d8
RW3 @RW3+d8
RW3, A @RW3+d8, A
A0
+3
90
ORW
ORW
XORW
XORW
NOTW
NOTW
RW2, A @RW2+d8, A
RW2, A @RW2+d8, A
RW2 @RW2+d8
80
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW2, A @RW2+d8, A
RW2, A @RW2+d8, A
A, RW2 @RW2+d8
RW2 @RW2+d8
RW2, A @RW2+d8, A
70
+2
60
ORW
ORW
XORW
XORW
NOTW
NOTW
RW1, A @RW1+d8, A
RW1, A @RW1+d8, A
RW1 @RW1+d8
50
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW1, A @RW1+d8, A
RW1, A @RW1+d8, A
A, RW1 @RW1+d8
RW1 @RW1+d8
RW1, A @RW1+d8, A
40
+1
30
ORW
ORW
XORW
XORW
NOTW
NOTW
RW0, A @RW0+d8, A
RW0, A @RW0+d8, A
RW0 @RW0+d8
20
ADDW
ADDW
SUBW
SUBW
SUBCW SUBCW A, NEGW
NEGW
ANDW
ANDW
RW0, A @RW0+d8, A
RW0, A @RW0+d8, A
A, RW0 @RW0+d8
RW0 @RW0+d8
RW0, A @RW0+d8, A
10
+0
00
付録
表 B.9-13 ea 系命令 その 8 ( 第 1 バイト =77H)
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
付録 B 命令
表 B.9-14 ea 系命令 その 9 ( 第 1 バイト =78H)
585
586
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
[email protected]+ 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
付録
表 B.9-15 MOVEA RWi, ea 命令 ( 第 1 バイト =79H)
MOV R0,
MOV
MOV R1,
MOV
MOV R2,
MOV
MOV R3,
MOV
MOV R4,
MOV
MOV R5,
MOV
MOV R6,
MOV
MOV R7,
MOV R1,
MOV
MOV R2,
MOV
MOV R3,
MOV
MOV R4,
MOV
MOV R5,
MOV
MOV R6,
MOV
MOV R7,
MOV R0, MOV R0,
MOV R1, MOV R1,
MOV R2, MOV R2,
MOV R3, MOV R3,
MOV R4, MOV R4,
MOV R5, MOV R5,
MOV R6, MOV R6,
MOV R7, MOV R7,
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
@RW0+ @RW0+RW7
MOV R0, MOV R0,
MOV R1, MOV R1,
MOV R2, MOV R2,
MOV R3, MOV R3,
MOV R4, MOV R4,
MOV R5, MOV R5,
MOV R6, MOV R6,
MOV R7, MOV R7,
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
@RW1+ @RW1+RW7
MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7,
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
@RW2+ @PC+d16
MOV R0, MOV R0, MOV R1, MOV R1, MOV R2, MOV R2, MOV R3, MOV R3, MOV R4, MOV R4, MOV R5, MOV R5, MOV R6, MOV R6, MOV R7, MOV R7,
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
@RW3+
addr16
+C
+D
+E
+F
+B R0,@RW3 @RW3+d16 R1,@RW3 @RW3+d16 R2,@RW3 @RW3+d16 R3,@RW3 @RW3+d16 R4,@RW3 @RW3+d16 R5,@RW3 @RW3+d16 R6,@RW3 @RW3+d16 R7,@RW3 @RW3+d16
MOV
+A R0,@RW2 @RW2+d16 R1,@RW2 @RW2+d16 R2,@RW2 @RW2+d16 R3,@RW2 @RW2+d16 R4,@RW2 @RW2+d16 R5,@RW2 @RW2+d16 R6,@RW2 @RW2+d16 R7,@RW2 @RW2+d16
MOV
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0,@RW1 @RW1+d16 R1,@RW1 @RW1+d16 R2,@RW1 @RW1+d16 R3,@RW1 @RW1+d16 R4,@RW1 @RW1+d16 R5,@RW1 @RW1+d16 R6,@RW1 @RW1+d16 R7,@RW1 @RW1+d16
+9
MOV R0,
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0,@RW0 @RW0+d16 R1,@RW0 @RW0+d16 R2,@RW0 @RW0+d16 R3,@RW0 @RW0+d16 R4,@RW0 @RW0+d16 R5,@RW0 @RW0+d16 R6,@RW0 @RW0+d16 R7,@RW0 @RW0+d16
+8
MOV
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R7 @RW7+d8
R1, R7 @RW7+d8
R2, R7 @RW7+d8
R3, R7 @RW7+d8
R4, R7 @RW7+d8
R5, R7 @RW7+d8
R6, R7 @RW7+d8
R7, R7 @RW7+d8
F0
+7
E0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R6 @RW6+d8
R1, R6 @RW6+d8
R2, R6 @RW6+d8
R3, R6 @RW6+d8
R4, R6 @RW6+d8
R5, R6 @RW6+d8
R6, R6 @RW6+d8
R7, R6 @RW6+d8
D0
+6
C0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R5 @RW5+d8
R1, R5 @RW5+d8
R2, R5 @RW5+d8
R3, R5 @RW5+d8
R4, R5 @RW5+d8
R5, R5 @RW5+d8
R6, R5 @RW5+d8
R7, R5 @RW5+d8
B0
+5
A0
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R4 @RW4+d8
R1, R4 @RW4+d8
R2, R4 @RW4+d8
R3, R4 @RW4+d8
R4, R4 @RW4+d8
R5, R4 @RW4+d8
R6, R4 @RW4+d8
R7, R4 @RW4+d8
90
+4
80
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R3 @RW3+d8
R1, R3 @RW3+d8
R2, R3 @RW3+d8
R3, R3 @RW3+d8
R4, R3 @RW3+d8
R5, R3 @RW3+d8
R6, R3 @RW3+d8
R7, R3 @RW3+d8
70
+3
60
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R2 @RW2+d8
R1, R2 @RW2+d8
R2, R2 @RW2+d8
R3, R2 @RW2+d8
R4, R2 @RW2+d8
R5, R2 @RW2+d8
R6, R2 @RW2+d8
R7, R2 @RW2+d8
50
+2
40
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R1 @RW1+d8
R1, R1 @RW1+d8
R2, R1 @RW1+d8
R3, R1 @RW1+d8
R4, R1 @RW1+d8
R5, R1 @RW1+d8
R6, R1 @RW1+d8
R7, R1 @RW1+d8
30
+1
20
MOV
MOV R0, MOV
MOV R1, MOV
MOV R2, MOV
MOV R3, MOV
MOV R4, MOV
MOV R5, MOV
MOV R6, MOV
MOV R7,
R0, R0 @RW0+d8
R1, R0 @RW0+d8
R2, R0 @RW0+d8
R3, R0 @RW0+d8
R4, R0 @RW0+d8
R5, R0 @RW0+d8
R6, R0 @RW0+d8
R7, R0 @RW0+d8
10
+0
00
付録 B 命令
表 B.9-16 MOV Ri, ea 命令 ( 第 1 バイト =7AH)
587
588
MOVW
MOVW RW2,
RW2,@RW0 @RW0+d16
MOVW
MOVW RW2,
RW2,@RW1 @RW1+d16
MOVW
MOVW RW2,
RW2,@RW2 @RW2+d16
MOVW
MOVW RW2,
RW2,@RW3 @RW3+d16
MOVW
MOVW RW1,
RW1, RW6 @RW6+d8
MOVW
MOVW RW1,
RW1, RW7 @RW7+d8
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW1 @RW1+d16 RW1,@RW1 @RW1+d16
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW2 @RW2+d16 RW1,@RW2 @RW2+d16
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW3 @RW3+d16 RW1,@RW3 @RW3+d16
MOVW
MOVW
MOVW
MOVW RW1, MOVW
MOVW RW2, MOVW
MOVW RW3, MOVW
MOVW RW4, MOVW
MOVW RW5, MOVW
MOVW RW6, MOVW
MOVW RW7,
RW0,@RW0+ @RW0+RW7 RW1,@RW0+ @RW0+RW7 RW2,@RW0+ @RW0+RW7 RW3,@RW0+ @RW0+RW7 RW4,@RW0+ @RW0+RW7 RW5,@RW0+ @RW0+RW7 RW6,@RW0+ @RW0+RW7 RW7,@RW0+ @RW0+RW7
MOVW
MOVW
RW1, @RW3+ RW1, addr16
MOVW
MOVW
RW0, RW7 @RW7+d8
MOVW
MOVW
MOVW
MOVW RW1,
RW0,@RW0 @RW0+d16 RW1,@RW0 @RW0+d16
MOVW
MOVW RW1,
RW1, @RW2+ @PC+d16
MOVW
MOVW
RW0, RW6 @RW6+d8
MOVW
RW0, @RW1+
MOVW
MOVW
RW0, @RW2+ @PC+d16
MOVW
MOVW
RW0, @RW3+ RW0, addr16
+6
+7
+8
+9
+A
+B
+C
+D
+E
+F
MOVW
MOVW
@RW1+RW7 RW1, @RW1+
MOVW
MOVW RW2,
RW2, RW7 @RW7+d8
MOVW
MOVW RW1,
RW1, RW5 @RW5+d8
MOVW
MOVW
RW0, RW5 @RW5+d8
+5
MOVW
MOVW
RW2, @RW3+ RW2, addr16
MOVW
MOVW
RW3, @RW3+ RW3, addr16
MOVW
MOVW RW3,
RW3, @RW2+ @PC+d16
MOVW
MOVW
RW4, @RW3+ RW4, addr16
MOVW
MOVW RW4,
RW4, @RW2+ @PC+d16
MOVW
MOVW
RW5, @RW3+ RW5, addr16
MOVW
MOVW
RW5, @RW2+ @PC+d16
MOVW
MOVW
RW6, @RW3+ RW6, addr16
MOVW
MOVW RW6,
RW6, @RW2+ @PC+d16
MOVW
MOVW
RW7, @RW3+ RW7, addr16
MOVW
MOVW RW7,
RW7, @RW2+ @PC+d16
MOVW RW7,
@RW1+RW7
MOVW
MOVW RW7,
RW7,@RW3 @RW3+d16
MOVW
MOVW RW7,
RW7,@RW2 @RW2+d16
MOVW
MOVW RW7,
RW7,@RW1 @RW1+d16
MOVW
MOVW RW7,
RW7,@RW0 @RW0+d16
MOVW
MOVW RW7,
RW7, RW7 @RW7+d8
MOVW
MOVW RW7,
RW7, RW6 @RW6+d8
MOVW
MOVW RW7,
RW7, RW5 @RW5+d8
MOVW
MOVW RW7,
RW7, RW4 @RW4+d8
MOVW
MOVW RW7,
RW7, RW3 @RW3+d8
MOVW RW6, MOVW
@RW1+RW7 RW7, @RW1+
MOVW
MOVW RW6,
RW6,@RW3 @RW3+d16
MOVW
MOVW RW6,
RW6,@RW2 @RW2+d16
MOVW
MOVW RW6,
RW6,@RW1 @RW1+d16
MOVW
MOVW RW6,
RW6,@RW0 @RW0+d16
MOVW
MOVW RW6,
RW6, RW7 @RW7+d8
MOVW
MOVW RW6,
RW6, RW6 @RW6+d8
MOVW
MOVW RW6,
RW6, RW5 @RW5+d8
MOVW
MOVW RW6,
RW6, RW4 @RW4+d8
MOVW
MOVW RW6,
RW6, RW3 @RW3+d8
MOVW
MOVW
@RW1+RW7 RW6, @RW1+
MOVW
MOVW RW5,
RW5,@RW3 @RW3+d16
MOVW
MOVW RW5,
RW5,@RW2 @RW2+d16
MOVW
MOVW RW5,
RW5,@RW1 @RW1+d16
MOVW
MOVW RW5,
RW5,@RW0 @RW0+d16
MOVW
MOVW RW5,
RW5, RW7 @RW7+d8
MOVW
MOVW RW5,
RW5, RW6 @RW6+d8
MOVW
MOVW RW5,
RW5, RW5 @RW5+d8
MOVW
MOVW RW5,
RW5, RW4 @RW4+d8
MOVW RW4, MOVW
@RW1+RW7 RW5, @RW1+
MOVW
MOVW RW4,
RW4,@RW3 @RW3+d16
MOVW
MOVW RW4,
RW4,@RW2 @RW2+d16
MOVW
MOVW RW4,
RW4,@RW1 @RW1+d16
MOVW
MOVW RW4,
RW4,@RW0 @RW0+d16
MOVW
MOVW RW4,
RW4, RW7 @RW7+d8
MOVW
MOVW RW4,
RW4, RW6 @RW6+d8
MOVW
MOVW RW4,
RW4, RW5 @RW5+d8
MOVW
MOVW RW4,
RW4, RW4 @RW4+d8
MOVW RW3, MOVW
@RW1+RW7 RW4, @RW1+
MOVW
MOVW RW3,
RW3,@RW3 @RW3+d16
MOVW
MOVW RW3,
RW3,@RW2 @RW2+d16
MOVW
MOVW RW3,
RW3,@RW1 @RW1+d16
MOVW
MOVW RW3,
RW3,@RW0 @RW0+d16
MOVW
MOVW RW3,
RW3, RW7 @RW7+d8
MOVW
MOVW RW3,
RW3, RW6 @RW6+d8
MOVW
MOVW RW3,
RW3, RW5 @RW5+d8
MOVW
MOVW RW3,
RW3, RW4 @RW4+d8
MOVW RW2, MOVW
@RW1+RW7 RW3, @RW1+
MOVW
MOVW RW2,
RW2, @RW2+ @PC+d16
MOVW RW1, MOVW
@RW1+RW7 RW2, @RW1+
MOVW
MOVW RW2,
RW2, RW6 @RW6+d8
MOVW
MOVW RW2,
RW2, RW5 @RW5+d8
MOVW
MOVW RW2,
RW2, RW4 @RW4+d8
MOVW
MOVW RW5,
RW5, RW3 @RW3+d8
MOVW
MOVW RW7,
RW7, RW2 @RW2+d8
MOVW
MOVW RW7,
RW7, RW1 @RW1+d8
MOVW
MOVW RW1,
RW1, RW4 @RW4+d8
MOVW
MOVW RW4,
RW4, RW3 @RW3+d8
MOVW
MOVW RW6,
RW6, RW2 @RW2+d8
MOVW
MOVW RW6,
RW6, RW1 @RW1+d8
MOVW
MOVW
RW0, RW4 @RW4+d8
MOVW
MOVW RW3,
RW3, RW3 @RW3+d8
MOVW
MOVW RW5,
RW5, RW2 @RW2+d8
MOVW
MOVW RW5,
RW5, RW1 @RW1+d8
+4
MOVW
MOVW RW2,
RW2, RW3 @RW3+d8
MOVW
MOVW RW4,
RW4, RW2 @RW2+d8
MOVW
MOVW RW4,
RW4, RW1 @RW1+d8
MOVW
MOVW RW1,
RW1, RW3 @RW3+d8
MOVW
MOVW RW3,
RW3, RW2 @RW2+d8
MOVW
MOVW RW3,
RW3, RW1 @RW1+d8
MOVW
MOVW
RW0, RW3 @RW3+d8
MOVW
MOVW RW2,
RW2, RW2 @RW2+d8
MOVW
MOVW RW2,
RW2, RW1 @RW1+d8
+3
F0
MOVW
MOVW RW7,
RW7, RW0 @RW0+d8
E0
MOVW
MOVW RW1,
RW1, RW2 @RW2+d8
D0
MOVW
MOVW RW6,
RW6, RW0 @RW0+d8
C0
MOVW
MOVW
RW0, RW2 @RW2+d8
B0
MOVW
MOVW RW5,
RW5, RW0 @RW0+d8
A0
+2
90
MOVW
MOVW RW4,
RW4, RW0 @RW0+d8
80
MOVW
MOVW RW1,
RW1, RW1 @RW1+d8
70
MOVW
MOVW RW3,
RW3, RW0 @RW0+d8
60
MOVW
MOVW
RW0, RW1 @RW1+d8
50
MOVW
MOVW RW2,
RW2, RW0 @RW0+d8
40
+1
30
MOVW
MOVW RW1,
RW1, RW0 @RW0+d8
20
MOVW
MOVW
RW0, RW0 @RW0+d8
10
+0
00
付録
表 B.9-17 MOVW RWi, ea 命令 ( 第 1 バイト =7BH)
+F
+E
+D
+C
+B
+A
+9
+8
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
MOV
@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
付録 B 命令
表 B.9-18 MOV Ri, ea 命令 ( 第 1 バイト =7CH)
589
590
MOVW
[email protected]
@RW2, RW1 +d16, RW1
MOVW
[email protected]
@RW3, RW1 +d16, RW1
MOVW
[email protected]
@RW0+, RW1 +RW7,RW1
MOVW
[email protected]
@RW1+, RW1 +RW7,RW1
MOVW
[email protected]
@RW2+, RW1 +d16, RW1
MOVW
MOVW
@RW3+, RW1 addr16, RW1
MOVW
[email protected]
@RW2, RW0 +d16, RW0
MOVW
[email protected]
@RW3, RW0 +d16, RW0
MOVW
[email protected]
@RW0+, RW0 +RW7,RW0
MOVW
[email protected]
@RW1+, RW0 +RW7,RW0
MOVW
[email protected]
@RW2+, RW0 +d16, RW0
MOVW
MOVW
@RW3+, RW0 addr16, RW0
+B
+C
+D
+E
+F
MOVW
MOVW
@RW3+, RW2 addr16, RW2
MOVW
[email protected]
@RW2+, RW2 +d16, RW2
MOVW
[email protected]
@RW1+, RW2 +RW7,RW2
MOVW
[email protected]
@RW0+, RW2 +RW7,RW2
MOVW
[email protected]
@RW3, RW2 +d16, RW2
MOVW
[email protected]
@RW2, RW2 +d16, RW2
MOVW
MOVW
@RW3+, RW3 addr16, RW3
MOVW
[email protected]
@RW2+, RW3 +d16, RW3
MOVW
[email protected]
@RW1+, RW3 -+RW7,RW3
MOVW
[email protected]
@RW0+, RW3 +RW7,RW3
MOVW
[email protected]
@RW3, RW3 +d16, RW3
MOVW
[email protected]
@RW2, RW3 +d16, RW3
MOVW
[email protected]
@RW1, RW3 +d16, RW3
MOVW
MOVW
@RW3+, RW4 addr16, RW4
MOVW
[email protected]
@RW2+, RW4 +d16, RW4
MOVW
[email protected]
@RW1+, RW4 +RW7,RW4
MOVW
[email protected]
@RW0+, RW4 +RW7,RW4
MOVW
[email protected]
@RW3, RW4 +d16, RW4
MOVW
[email protected]
@RW2, RW4 +d16, RW4
MOVW
[email protected]
@RW1, RW4 +d16, RW4
MOVW
MOVW
@RW3+, RW5 addr16, RW5
MOVW
[email protected]
@RW2+, RW5 +d16, RW5
MOVW
[email protected]
@RW1+, RW5 +RW7,RW5
MOVW
[email protected]
@RW0+, RW5 +RW7,RW5
MOVW
[email protected]
@RW3, RW5 +d16, RW5
MOVW
[email protected]
@RW2, RW5 +d16, RW5
MOVW
[email protected]
@RW1, RW5 +d16, RW5
MOVW
MOVW
@RW3+, RW6 addr16, RW6
MOVW
MOVW @PC
@RW2+, RW6 +d16, RW6
MOVW
[email protected]
@RW1+, RW6 +RW7,RW6
MOVW
[email protected]
@RW0+, RW6 +RW7,RW6
MOVW
[email protected]
@RW3, RW6 +d16, RW6
MOVW
[email protected]
@RW2, RW6 +d16, RW6
MOVW
[email protected]
@RW1, RW6 +d16, RW6
MOVW
MOVW
@RW3+, RW7 addr16, RW7
MOVW
[email protected]
@RW2+, RW7 +d16, RW7
MOVW
[email protected]
@RW1+, RW7 +RW7,RW7
MOVW
[email protected]
@RW0+, RW7 +RW7,RW7
MOVW
[email protected]
@RW3, RW7 +d16, RW7
MOVW
[email protected]
@RW2, RW7 +d16, RW7
MOVW
[email protected]
@RW1, RW7 +d16, RW7
MOVW
[email protected]
@RW0, RW7 +d16, RW7
+A
MOVW
[email protected]
@RW1, RW2 +d16, RW2
MOVW
[email protected]
@RW0, RW6 +d16, RW6
MOVW
[email protected]
@RW1, RW1 +d16, RW1
MOVW
[email protected]
@RW0, RW5 +d16, RW5
MOVW
[email protected]
@RW1, RW0 +d16, RW0
MOVW
[email protected]
@RW0, RW4 +d16, RW4
+9
MOVW
[email protected]
@RW0, RW3 +d16, RW3
MOVW